add GPU shader for NV12->RGBX conversion
authorZhao Halley <halley.zhao@intel.com>
Thu, 12 Jul 2012 08:13:40 +0000 (11:13 +0300)
committerXiang, Haihao <haihao.xiang@intel.com>
Fri, 10 Aug 2012 07:33:33 +0000 (15:33 +0800)
src/shaders/post_processing/gen5_6/Common/NV12_Load_8x4.asm [changed mode: 0644->0755]
src/shaders/post_processing/gen5_6/Common/PL2_Load.inc [changed mode: 0644->0755]
src/shaders/post_processing/gen5_6/Common/YUVX_Save_RGBX_Fix.asm [new file with mode: 0755]
src/shaders/post_processing/gen5_6/Common/YUVX_Save_RGBX_Float.asm [new file with mode: 0755]
src/shaders/post_processing/gen5_6/Common/YUV_to_RGBX_Coef.asm [new file with mode: 0755]
src/shaders/post_processing/gen5_6/Makefile.am
src/shaders/post_processing/gen5_6/nv12_load_save_rgbx.asm [new file with mode: 0755]
src/shaders/post_processing/gen5_6/nv12_load_save_rgbx.g4b.gen5 [new file with mode: 0644]
src/shaders/post_processing/gen5_6/nv12_load_save_rgbx.g6b [new file with mode: 0644]

old mode 100644 (file)
new mode 100755 (executable)
index dbc47d4..5d16a1b
     send (8) udSRC_U(0)<1>      mMSGHDRU    udDUMMY_NULL    nDATAPORT_READ    nDPMR_MSGDSC+nDPR_MSG_SIZE_UV+nBI_CURRENT_SRC_UV:ud
 
 // Convert to word-aligned format ----------------------------------------------
-#if !defined(LOAD_UV_ONLY)
+#if defined(FIX_POINT_CONVERSION) || defined(FLOAT_POINT_CONVERSION)
+    // load NV12 and save it as packed AYUV to dst (64x8)
+
+    $for (nY_NUM_OF_ROWS-1; >-1; -1) {
+        // #### Y
+        mov (8)  ubDEST_Y(0,%1*16*4)<4>             ubSRC_Y(0,%1*16)<0;8,1>
+        mov (8)  ubDEST_Y(0,(%1*16+8)*4)<4>         ubSRC_Y(0,%1*16+8)<0;8,1>
+
+        // #### U/V
+        // error from compile: "Invalid horiz size 8", so I have to repeat UV first
+        // mov (4)  ubDEST_Y(0,%1*16*4+1)<8>                   ubSRC_U(0,%1/2*16)<0;4,2>
+        // mov (4)  ubDEST_Y(0,%1*16*4+1+32)<8>                ubSRC_U(0,%1/2*16+8)<0;4,2>
+       
+        // repeate U/V for each one
+        mov (8)     REG2(r,nTEMP18,0)<2>:uw                uwSRC_U(0,%1/2*8)<0;8,1>
+        mov (8)     REG2(r,nTEMP18,1)<2>:uw                uwSRC_U(0,%1/2*8)<0;8,1>
+        
+        // mov U/V to ubDEST
+        mov (8)    ubDEST_Y(0,%1*16*4+1)<4>             REG2(r,nTEMP18,0)<0;8,2>:ub
+        mov (8)    ubDEST_Y(0,%1*16*4+1+32)<4>          REG2(r,nTEMP18,16)<0;8,2>:ub
+
+        mov (8)    ubDEST_Y(0,%1*16*4+2)<4>             REG2(r,nTEMP18,1)<0;8,2>:ub
+        mov (8)    ubDEST_Y(0,%1*16*4+2+32)<4>          REG2(r,nTEMP18,17)<0;8,2>:ub
+    }
+#else
+  #if !defined(LOAD_UV_ONLY)
     $for (nY_NUM_OF_ROWS-1; >-1; -1) {
         mov (16)  uwDEST_Y(0,%1*16)<1>      ubSRC_Y(0,%1*16)
     }
-#endif
+  #endif
     $for (nUV_NUM_OF_ROWS/2-1; >-1; -1) {
+        // why "mov (16)"? should it be 8?
         mov (16)  uwDEST_U(0,%1*16)<1>      ubSRC_U(0,%1*32)<32;16,2>
         mov (16)  uwDEST_V(0,%1*16)<1>      ubSRC_U(0,%1*32+1)<32;16,2>
     }
 
+#endif    
+
 // End of NV12_Load_8x4
old mode 100644 (file)
new mode 100755 (executable)
index 9feeba6..0003dae
@@ -73,6 +73,9 @@
 #define uwDEST_U          uwTOP_U
 #define uwDEST_V          uwTOP_V
 
+#define ubDEST_Y          ubTOP_Y       // I'd like use them for color conversion
+#define uwSRC_U           uwBOT_U
+
 #define nSRC_REGION       nREGION_1     // REGION_1 will be the source region for first kernel
 
 // End of PL2_Load.inc
diff --git a/src/shaders/post_processing/gen5_6/Common/YUVX_Save_RGBX_Fix.asm b/src/shaders/post_processing/gen5_6/Common/YUVX_Save_RGBX_Fix.asm
new file mode 100755 (executable)
index 0000000..a7900ea
--- /dev/null
@@ -0,0 +1,170 @@
+/*
+ * All Video Processing kernels 
+ * Copyright © <2010>, Intel Corporation.
+ *
+ * This program is licensed under the terms and conditions of the
+ * Eclipse Public License (EPL), version 1.0.  The full text of the EPL is at
+ * http://www.opensource.org/licenses/eclipse-1.0.php.
+ *
+ * Authors:
+ *    Halley Zhao <halley.zhao@intel.com>
+ */
+
+// Module name: YUVX_Save_RGBX_Fix.asm
+//----------------------------------------------------------------
+
+#include "RGBX_Load_16x8.inc"
+
+#if (0)
+    #define nTEMP0          34        // transformation coefficient
+    #define nTEMP1          35        // one row of R (first half register is used)
+    #define nTEMP2          36        // one row of G (first half register is used)
+    #define nTEMP3          37        // one row of B (first half register is used)
+    #define nTEMP4          38        // mul and add
+    #define nTEMP5          39        // mul and add
+    #define nTEMP6          40        // mul and add
+    #define nTEMP7          41        // mul and add
+    #define nTEMP8          42        // sum of mul
+    #define nTEMP10         44        
+    #define nTEMP10         44        // split ub pixel to word width 1st quarter
+    #define nTEMP12         46        // split ub pixel to word width 2nd quarter
+    #define nTEMP14         48        // split ub pixel to word width 3rd quarter
+    #define nTEMP16         50        // split ub pixel to word width 4th quarter
+    #define nTEMP17         51
+    #define nTEMP18         52
+    
+    #define nTEMP24         58        // temp using for repeat U/V in NV12_Load_8x4.asm
+#endif
+
+#define ONE_ROW_DEBUG                      0
+
+#if (ONE_ROW_DEBUG)
+    #define ROW_NUM                        0
+    #define DBG_ROWNUM_BASE                1
+    CHANNEL_2                              2
+#else
+    #define ROW_NUM                        %1
+    $for(0; <nY_NUM_OF_ROWS; 1) {
+#endif    
+    // C = Y' - 16          D = U - 128         E = V - 128
+    add (16)     REG2(r,nTEMP10,0)<1>:w           ubDEST_RGBX(0,ROW_NUM*64   )<0;16,1>           bYUV_OFF<0;4,1>:b
+    add (16)     REG2(r,nTEMP12,0)<1>:w           ubDEST_RGBX(0,ROW_NUM*64+16)<0;16,1>           bYUV_OFF<0;4,1>:b
+    add (16)     REG2(r,nTEMP14,0)<1>:w           ubDEST_RGBX(0,ROW_NUM*64+32)<0;16,1>           bYUV_OFF<0;4,1>:b
+    add (16)     REG2(r,nTEMP16,0)<1>:w           ubDEST_RGBX(0,ROW_NUM*64+48)<0;16,1>           bYUV_OFF<0;4,1>:b
+
+#if (ONE_ROW_DEBUG)
+    mov (16) ubDEST_RGBX(0,(DBG_ROWNUM_BASE)*64   )<1>  REG2(r,nTEMP10, 0)<0;16,2>:ub
+    mov (16) ubDEST_RGBX(0,(DBG_ROWNUM_BASE)*64+16)<1>  REG2(r,nTEMP12, 0)<0;16,2>:ub
+    mov (16) ubDEST_RGBX(0,(DBG_ROWNUM_BASE)*64+32)<1>  REG2(r,nTEMP14, 0)<0;16,2>:ub
+    mov (16) ubDEST_RGBX(0,(DBG_ROWNUM_BASE)*64+48)<1>  REG2(r,nTEMP16, 0)<0;16,2>:ub
+#endif
+    
+    // |Y|U|V|X|==>|R|G|B|X|  
+    // ###### do one row for R
+    // #### mul and add
+    mul.sat (16)  REG2(r, nTEMP4, 0)<1>:w      REG2(r,nTEMP10,0)<0;16,1>:w        wYUV_to_RGB_CH2_Coef_Fix<0;4,1>:w
+    mul.sat (16)  REG2(r, nTEMP5, 0)<1>:w      REG2(r,nTEMP12,0)<0;16,1>:w        wYUV_to_RGB_CH2_Coef_Fix<0;4,1>:w
+    mul.sat (16)  REG2(r, nTEMP6, 0)<1>:w      REG2(r,nTEMP14,0)<0;16,1>:w        wYUV_to_RGB_CH2_Coef_Fix<0;4,1>:w
+    mul.sat (16)  REG2(r, nTEMP7, 0)<1>:w      REG2(r,nTEMP16,0)<0;16,1>:w        wYUV_to_RGB_CH2_Coef_Fix<0;4,1>:w
+
+  #if (ONE_ROW_DEBUG)
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+1)*64+CHANNEL_2   )<4>  bYUV_to_RGB_CH2_Coef_Fix<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+1)*64+CHANNEL_2+32)<4>  bYUV_to_RGB_CH2_Coef_Fix<0;8,1>:ub
+
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+2)*64+CHANNEL_2   )<4>  REG2(r,nTEMP4, 0)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+2)*64+CHANNEL_2+32)<4>  REG2(r,nTEMP4, 8)<0;8,1>:ub
+  #endif
+
+    add.sat (4)   REG2(r, nTEMP4, 0)<4>:uw      REG2(r, nTEMP4, 0)<0;4,4>:w      REG2(r, nTEMP4, 1)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP5, 0)<4>:uw      REG2(r, nTEMP5, 0)<0;4,4>:w      REG2(r, nTEMP5, 1)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP6, 0)<4>:uw      REG2(r, nTEMP6, 0)<0;4,4>:w      REG2(r, nTEMP6, 1)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP7, 0)<4>:uw      REG2(r, nTEMP7, 0)<0;4,4>:w      REG2(r, nTEMP7, 1)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP4, 0)<4>:uw      REG2(r, nTEMP4, 0)<0;4,4>:uw      REG2(r, nTEMP4, 2)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP5, 0)<4>:uw      REG2(r, nTEMP5, 0)<0;4,4>:uw      REG2(r, nTEMP5, 2)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP6, 0)<4>:uw      REG2(r, nTEMP6, 0)<0;4,4>:uw      REG2(r, nTEMP6, 2)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP7, 0)<4>:uw      REG2(r, nTEMP7, 0)<0;4,4>:uw      REG2(r, nTEMP7, 2)<0;4,4>:w      
+
+    // ####  write one row of R to rnTEMP1
+    mov (4)  REG2(r, nTEMP8,  0)<1>:uw    REG2(r, nTEMP4, 0)<0; 4, 4>:uw
+    mov (4)  REG2(r, nTEMP8,  4)<1>:uw    REG2(r, nTEMP5, 0)<0; 4, 4>:uw
+    mov (4)  REG2(r, nTEMP8,  8)<1>:uw    REG2(r, nTEMP6, 0)<0; 4, 4>:uw
+    mov (4)  REG2(r, nTEMP8, 12)<1>:uw    REG2(r, nTEMP7, 0)<0; 4, 4>:uw
+
+  #if (ONE_ROW_DEBUG)
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+3)*64+CHANNEL_2   )<4>  REG2(r,nTEMP8, 0)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+3)*64+CHANNEL_2+32)<4>  REG2(r,nTEMP8, 8)<0;8,1>:ub
+  #endif    
+
+    add.sat (16) REG2(r, nTEMP8,  0)<1>:uw    REG2(r, nTEMP8, 0)<0; 16, 1>:uw    0x80:uw 
+    shl.sat (16) REG2(r, nTEMP8,  0)<1>:uw    REG2(r, nTEMP8, 0)<0; 16, 1>:uw    1:w
+    mov (16) REG2(r, nTEMP1,  0)<1>:ub   REG2(r, nTEMP8, 1)<0; 16, 2>:ub
+    
+  #if (ONE_ROW_DEBUG)
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+4)*64+CHANNEL_2   )<4>  REG2(r,nTEMP8, 0)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+4)*64+CHANNEL_2+32)<4>  REG2(r,nTEMP8, 8)<0;8,1>:ub
+  #endif    
+    // ###### do one row for G
+    // #### mul and add
+    mul.sat (16)  REG2(r, nTEMP4, 0)<1>:w      REG2(r,nTEMP10,0)<0;16,1>:w        wYUV_to_RGB_CH1_Coef_Fix<0;4,1>:w
+    mul.sat (16)  REG2(r, nTEMP5, 0)<1>:w      REG2(r,nTEMP12,0)<0;16,1>:w        wYUV_to_RGB_CH1_Coef_Fix<0;4,1>:w
+    mul.sat (16)  REG2(r, nTEMP6, 0)<1>:w      REG2(r,nTEMP14,0)<0;16,1>:w        wYUV_to_RGB_CH1_Coef_Fix<0;4,1>:w
+    mul.sat (16)  REG2(r, nTEMP7, 0)<1>:w      REG2(r,nTEMP16,0)<0;16,1>:w        wYUV_to_RGB_CH1_Coef_Fix<0;4,1>:w
+
+    add.sat (4)   REG2(r, nTEMP4, 0)<4>:uw      REG2(r, nTEMP4, 0)<0;4,4>:w      REG2(r, nTEMP4, 1)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP5, 0)<4>:uw      REG2(r, nTEMP5, 0)<0;4,4>:w      REG2(r, nTEMP5, 1)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP6, 0)<4>:uw      REG2(r, nTEMP6, 0)<0;4,4>:w      REG2(r, nTEMP6, 1)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP7, 0)<4>:uw      REG2(r, nTEMP7, 0)<0;4,4>:w      REG2(r, nTEMP7, 1)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP4, 0)<4>:uw      REG2(r, nTEMP4, 0)<0;4,4>:uw      REG2(r, nTEMP4, 2)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP5, 0)<4>:uw      REG2(r, nTEMP5, 0)<0;4,4>:uw      REG2(r, nTEMP5, 2)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP6, 0)<4>:uw      REG2(r, nTEMP6, 0)<0;4,4>:uw      REG2(r, nTEMP6, 2)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP7, 0)<4>:uw      REG2(r, nTEMP7, 0)<0;4,4>:uw      REG2(r, nTEMP7, 2)<0;4,4>:w      
+
+    // ####  write one row of G to rnTEMP2
+    mov (4)  REG2(r, nTEMP8,  0)<1>:uw    REG2(r, nTEMP4, 0)<0; 4, 4>:uw
+    mov (4)  REG2(r, nTEMP8,  4)<1>:uw    REG2(r, nTEMP5, 0)<0; 4, 4>:uw
+    mov (4)  REG2(r, nTEMP8,  8)<1>:uw    REG2(r, nTEMP6, 0)<0; 4, 4>:uw
+    mov (4)  REG2(r, nTEMP8, 12)<1>:uw    REG2(r, nTEMP7, 0)<0; 4, 4>:uw
+    
+    add (16) REG2(r, nTEMP8,  0)<1>:uw    REG2(r, nTEMP8, 0)<0; 16, 1>:uw    0x80:uw // saturation
+    shl.sat (16) REG2(r, nTEMP8,  0)<1>:uw    REG2(r, nTEMP8, 0)<0; 16, 1>:uw    1:w
+    mov (16) REG2(r, nTEMP2,  0)<1>:ub   REG2(r, nTEMP8, 1)<0; 16, 2>:ub
+
+    // ###### do one row for B
+    // #### mul and add
+    mul.sat (16)  REG2(r, nTEMP4, 0)<1>:w      REG2(r,nTEMP10,0)<0;16,1>:w        wYUV_to_RGB_CH0_Coef_Fix<0;4,1>:w
+    mul.sat (16)  REG2(r, nTEMP5, 0)<1>:w      REG2(r,nTEMP12,0)<0;16,1>:w        wYUV_to_RGB_CH0_Coef_Fix<0;4,1>:w
+    mul.sat (16)  REG2(r, nTEMP6, 0)<1>:w      REG2(r,nTEMP14,0)<0;16,1>:w        wYUV_to_RGB_CH0_Coef_Fix<0;4,1>:w
+    mul.sat (16)  REG2(r, nTEMP7, 0)<1>:w      REG2(r,nTEMP16,0)<0;16,1>:w        wYUV_to_RGB_CH0_Coef_Fix<0;4,1>:w
+
+    // I had reduced the following add because U coef is zero for B; but in order to support BGR/RGB at the same time, I have to add it back.
+    add.sat (4)   REG2(r, nTEMP4, 0)<4>:uw      REG2(r, nTEMP4, 0)<0;4,4>:w      REG2(r, nTEMP4, 1)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP5, 0)<4>:uw      REG2(r, nTEMP5, 0)<0;4,4>:w      REG2(r, nTEMP5, 1)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP6, 0)<4>:uw      REG2(r, nTEMP6, 0)<0;4,4>:w      REG2(r, nTEMP6, 1)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP7, 0)<4>:uw      REG2(r, nTEMP7, 0)<0;4,4>:w      REG2(r, nTEMP7, 1)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP4, 0)<4>:uw      REG2(r, nTEMP4, 0)<0;4,4>:uw      REG2(r, nTEMP4, 2)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP5, 0)<4>:uw      REG2(r, nTEMP5, 0)<0;4,4>:uw      REG2(r, nTEMP5, 2)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP6, 0)<4>:uw      REG2(r, nTEMP6, 0)<0;4,4>:uw      REG2(r, nTEMP6, 2)<0;4,4>:w      
+    add.sat (4)   REG2(r, nTEMP7, 0)<4>:uw      REG2(r, nTEMP7, 0)<0;4,4>:uw      REG2(r, nTEMP7, 2)<0;4,4>:w      
+
+    // ####  write one row of B to rnTEMP3
+    mov (4)  REG2(r, nTEMP8,  0)<1>:uw    REG2(r, nTEMP4, 0)<0; 4, 4>:uw
+    mov (4)  REG2(r, nTEMP8,  4)<1>:uw    REG2(r, nTEMP5, 0)<0; 4, 4>:uw
+    mov (4)  REG2(r, nTEMP8,  8)<1>:uw    REG2(r, nTEMP6, 0)<0; 4, 4>:uw
+    mov (4)  REG2(r, nTEMP8, 12)<1>:uw    REG2(r, nTEMP7, 0)<0; 4, 4>:uw
+
+    add.sat (16) REG2(r, nTEMP8,  0)<1>:uw    REG2(r, nTEMP8, 0)<0; 16, 1>:uw    0x80:uw // saturation
+    shl.sat (16) REG2(r, nTEMP8,  0)<1>:uw    REG2(r, nTEMP8, 0)<0; 16, 1>:uw    1:w
+    mov (16) REG2(r, nTEMP3,  0)<1>:ub   REG2(r, nTEMP8, 1)<0; 16, 2>:ub
+
+    // B
+    mov (8) ubDEST_RGBX(0,ROW_NUM*64   )<4>  REG2(r,nTEMP3, 0)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,ROW_NUM*64+32)<4>  REG2(r,nTEMP3, 8)<0;8,1>:ub
+    // G
+    mov (8) ubDEST_RGBX(0,ROW_NUM*64+1   )<4>  REG2(r,nTEMP2, 0)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,ROW_NUM*64+1+32)<4>  REG2(r,nTEMP2, 8)<0;8,1>:ub
+    // R
+    mov (8) ubDEST_RGBX(0,ROW_NUM*64+2   )<4>  REG2(r,nTEMP1, 0)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,ROW_NUM*64+2+32)<4>  REG2(r,nTEMP1, 8)<0;8,1>:ub
+#if (!ONE_ROW_DEBUG)    
+    }
+#endif
diff --git a/src/shaders/post_processing/gen5_6/Common/YUVX_Save_RGBX_Float.asm b/src/shaders/post_processing/gen5_6/Common/YUVX_Save_RGBX_Float.asm
new file mode 100755 (executable)
index 0000000..d90ef59
--- /dev/null
@@ -0,0 +1,287 @@
+/*
+ * All Video Processing kernels 
+ * Copyright © <2010>, Intel Corporation.
+ *
+ * This program is licensed under the terms and conditions of the
+ * Eclipse Public License (EPL), version 1.0.  The full text of the EPL is at
+ * http://www.opensource.org/licenses/eclipse-1.0.php.
+ *
+ * Authors:
+ *    Halley Zhao <halley.zhao@intel.com>
+ */
+
+// Module name: YUVX_Save_RGBX_Float.asm
+//----------------------------------------------------------------
+
+#include "RGBX_Load_16x8.inc"
+
+#if (0)
+    // 8 grf reg for one row of pixel (2 pixel per grf)
+    #define nTEMP0          34
+    #define nTEMP1          35
+    #define nTEMP2          36
+    #define nTEMP3          37
+    #define nTEMP4          38
+    #define nTEMP5          39
+    #define nTEMP6          40
+    #define nTEMP7          41
+    
+    #define nTEMP8          42        // transformation coefficient
+    #define nTEMP10         44        // transformation coefficient
+    
+    #define nTEMP12         46        // save Y/U/V in ub format
+    #define nTEMP14         48        // save YUV in ud format
+    #define nTEMP16         50        // dp4 result
+    #define nTEMP17         51        
+    #define nTEMP18         52       // temp used for repeat U/V in NV12_Load_8x4.asm
+    
+    #define nTEMP24         58       // it is not safe to use in my case. I try to use it for repeat U/V in NV12_Load_8x4.asm, Y data is taint in row 4/5
+#endif
+
+#define ONE_ROW_DEBUG                      0
+
+#if (ONE_ROW_DEBUG)
+    // if you want to debug a row which is not the first one, try the following:
+    // 1. define ROW_NUM_READ to the row you want to debug
+    // 2. ROW_NUM_WRITE can be same to DBG_ROWNUM_READ to overwrite original YUV data, or define it to a new row
+    // 3. change (DBG_ROWNUM_BASE+?)=ROW_NUM_READ or ROW_NUM_WRITE to DBG_ROWNUM_0, to not conflict with others
+    #define ROW_NUM_READ                   0
+    #define ROW_NUM_WRITE                  0
+    #define DBG_ROWNUM_BASE                1
+    #define DBG_ROWNUM_0                   0
+#else
+    #define ROW_NUM_READ                   %1
+    #define ROW_NUM_WRITE                  %1
+    $for(0; <nY_NUM_OF_ROWS; 1) {
+#endif    
+    // YUVX | Y | U | V | X |
+    // XRGB | B | G | R | X |
+    // ###### save one row of pixel to temp grf with float format (required by dp4)
+    // C = Y' - 16          D = U - 128         E = V - 128
+
+    // the follow sentence doesn't work, I have to split it into two step
+    // add (4) REG(r, nTEMP0)<1>:f       r[SRC_RGBA_OFFSET_1,ROW_NUM_READ*32 +  0]<4,1>:ub           REG2(r, nTEMP10,  16)<0;4,1>:b
+
+    add (16)     REG2(r,nTEMP12,0)<1>:w           ubDEST_RGBX(0,ROW_NUM_READ*64   )<0;16,1>           bYUV_OFF<0;4,1>:b
+    add (16)     REG2(r,nTEMP14,0)<1>:w           ubDEST_RGBX(0,ROW_NUM_READ*64+16)<0;16,1>           bYUV_OFF<0;4,1>:b
+    add (16)     REG2(r,nTEMP16,0)<1>:w           ubDEST_RGBX(0,ROW_NUM_READ*64+32)<0;16,1>           bYUV_OFF<0;4,1>:b
+    add (16)     REG2(r,nTEMP17,0)<1>:w           ubDEST_RGBX(0,ROW_NUM_READ*64+48)<0;16,1>           bYUV_OFF<0;4,1>:b
+    
+    mov (8)      fROW_YUVA(0,0)<1>            REG2(r, nTEMP12, 0)<0;8,1>:w
+    mov (8)      fROW_YUVA(1,0)<1>            REG2(r, nTEMP12, 8)<0;8,1>:w
+    mov (8)      fROW_YUVA(2,0)<1>            REG2(r, nTEMP14, 0)<0;8,1>:w
+    mov (8)      fROW_YUVA(3,0)<1>            REG2(r, nTEMP14, 8)<0;8,1>:w
+    mov (8)      fROW_YUVA(4,0)<1>            REG2(r, nTEMP16, 0)<0;8,1>:w
+    mov (8)      fROW_YUVA(5,0)<1>            REG2(r, nTEMP16, 8)<0;8,1>:w
+    mov (8)      fROW_YUVA(6,0)<1>            REG2(r, nTEMP17, 0)<0;8,1>:w
+    mov (8)      fROW_YUVA(7,0)<1>            REG2(r, nTEMP17, 8)<0;8,1>:w
+
+  #if (ONE_ROW_DEBUG)
+    mov.sat (8)  REG2(r, nTEMP14,  0)<1>:ud     fROW_YUVA(0,0)<0;8,1>:f
+    mov (8)  REG2(r, nTEMP12,   0)<1>:ub        REG2(r, nTEMP14, 0)<0;8,4>:ub
+    
+        // write Y-16, U-128, V-128 to the 2nd row of RGB (convert float to int first, write whole ud): 1st half, 2 pixels
+        mov (16) ubDEST_RGBX(0,(DBG_ROWNUM_BASE)*64   )<1>  REG2(r,nTEMP14,  0)<0;16,1>:ub
+        mov (16) ubDEST_RGBX(0,(DBG_ROWNUM_BASE)*64+16)<1>  REG2(r,nTEMP14, 16)<0;16,1>:ub
+
+    mov.sat (8)  REG2(r, nTEMP14,  0)<1>:ud     fROW_YUVA(1,0)<0;8,1>:f
+    mov (8)  REG2(r, nTEMP12,   8)<1>:ub        REG2(r, nTEMP14, 0)<0;8,4>:ub
+    
+        // write Y-16, U-128, V-128 to the 2nd row of RGB (convert float to int first, write whole ud): 2nd half, 2 pixels
+        mov (16) ubDEST_RGBX(0,(DBG_ROWNUM_BASE)*64+32)<1>  REG2(r,nTEMP14,  0)<0;16,1>:ub
+        mov (16) ubDEST_RGBX(0,(DBG_ROWNUM_BASE)*64+48)<1>  REG2(r,nTEMP14, 16)<0;16,1>:ub
+
+    mov.sat (8)  REG2(r, nTEMP14,  0)<1>:ud     fROW_YUVA(2,0)<0;8,1>:f
+    mov (8)  REG2(r, nTEMP12,  16)<1>:ub        REG2(r, nTEMP14, 0)<0;8,4>:ub
+    
+    mov.sat (8)  REG2(r, nTEMP14,  0)<1>:ud     fROW_YUVA(3,0)<0;8,1>:f
+    mov (8)  REG2(r, nTEMP12,  24)<1>:ub        REG2(r, nTEMP14, 0)<0;8,4>:ub
+
+        // write Y-16, U-128, V-128 to the 3rd row of RGB (convert float to int first, only LSB is used): 1st half, 8 pixels
+        mov (16) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+1)*64   )<1>  REG2(r,nTEMP12,  0)<0;16,1>:ub
+        mov (16) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+1)*64+16)<1>  REG2(r,nTEMP12, 16)<0;16,1>:ub
+    
+    mov.sat (8)  REG2(r, nTEMP14,  0)<1>:ud     fROW_YUVA(4,0)<0;8,1>:f
+    mov (8)  REG2(r, nTEMP12,   0)<1>:ub        REG2(r, nTEMP14, 0)<0;8,4>:ub
+    
+    mov.sat (8)  REG2(r, nTEMP14,  0)<1>:ud     fROW_YUVA(5,0)<0;8,1>:f
+    mov (8)  REG2(r, nTEMP12,   8)<1>:ub        REG2(r, nTEMP14, 0)<0;8,4>:ub
+
+    mov.sat (8)  REG2(r, nTEMP14,  0)<1>:ud     fROW_YUVA(6,0)<0;8,1>:f
+    mov (8)  REG2(r, nTEMP12,  16)<1>:ub        REG2(r, nTEMP14, 0)<0;8,4>:ub
+    
+    mov.sat (8)  REG2(r, nTEMP14,  0)<1>:ud     fROW_YUVA(7,0)<0;8,1>:f
+    mov (8)  REG2(r, nTEMP12,  24)<1>:ub        REG2(r, nTEMP14, 0)<0;8,4>:ub
+
+        // write Y-16, U-128, V-128 to the 3rd row of RGB (convert float to int first, only LSB is used): 2nd half, 8 pixels
+        mov (16) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+1)*64+32)<1>  REG2(r,nTEMP12,  0)<0;16,1>:ub
+        mov (16) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+1)*64+48)<1>  REG2(r,nTEMP12, 16)<0;16,1>:ub
+  #endif
+
+        // ######## do one row for Red ########
+    #define fCOEF_REG  fYUV_to_RGB_CH2_Coef_Float
+    #define CHANNEL   2
+    // ##### dp4(nTEMP16) and save result to uw format(nTEMP12)
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(0, 0)<0;8,1>   fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12,  0)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+
+  #if (ONE_ROW_DEBUG)
+    // write dp4 (raw float) of 2 pixel to the 4/5th row
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+2)*64+CHANNEL   )<4>  REG2(r,nTEMP16,  0)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+2)*64+CHANNEL+32)<4>  REG2(r,nTEMP16,  8)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+3)*64+CHANNEL   )<4>  REG2(r,nTEMP16, 16)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+3)*64+CHANNEL+32)<4>  REG2(r,nTEMP16, 24)<0;8,1>:ub
+
+    // write dp4 (convert float to ud first, write whole ud) of 2 pixel to the 6/7th row
+    mov (8)  REG2(r, nTEMP17,  0)<1>:d     REG2(r, nTEMP16, 0)<0;8,1>:f
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+4)*64+CHANNEL   )<4>  REG2(r,nTEMP17,  0)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+4)*64+CHANNEL+32)<4>  REG2(r,nTEMP17,  8)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+5)*64+CHANNEL   )<4>  REG2(r,nTEMP17, 16)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+5)*64+CHANNEL+32)<4>  REG2(r,nTEMP17, 24)<0;8,1>:ub
+  #endif    
+
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(1, 0)<0;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12,  2)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+    
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(2, 0)<0;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12,  4)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+    
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(3, 0)<0;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12,  6)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+    
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(4, 0)<0;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12,  8)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+    
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(5, 0)<5;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12, 10)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+    
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(6, 0)<6;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12, 12)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+    
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(7, 0)<0;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12, 14)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+
+    // ####  write this channel
+    mov (8) ubDEST_RGBX(0,ROW_NUM_WRITE*64+CHANNEL   )<4>  REG2(r,nTEMP12, 0)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,ROW_NUM_WRITE*64+CHANNEL+32)<4>  REG2(r,nTEMP12, 8)<0;8,1>:ub
+    
+        // ######## do one row for Green ########
+    #define fCOEF_REG  fYUV_to_RGB_CH1_Coef_Float  // reg for green coefficient
+    #define CHANNEL   1
+    // ##### dp4(nTEMP16) and save result to uw format(nTEMP12)
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(0, 0)<0;8,1>   fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12,  0)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+
+  #if (ONE_ROW_DEBUG)
+    // write dp4 (raw float) of 2 pixel to the 4/5th row
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+2)*64+CHANNEL   )<4>  REG2(r,nTEMP16,  0)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+2)*64+CHANNEL+32)<4>  REG2(r,nTEMP16,  8)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+3)*64+CHANNEL   )<4>  REG2(r,nTEMP16, 16)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+3)*64+CHANNEL+32)<4>  REG2(r,nTEMP16, 24)<0;8,1>:ub
+
+    // write dp4 (convert float to ud first, write whole ud) of 2 pixel to the 6/7th row
+    mov (8)  REG2(r, nTEMP17,  0)<1>:d     REG2(r, nTEMP16, 0)<0;8,1>:f
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+4)*64+CHANNEL   )<4>  REG2(r,nTEMP17,  0)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+4)*64+CHANNEL+32)<4>  REG2(r,nTEMP17,  8)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+5)*64+CHANNEL   )<4>  REG2(r,nTEMP17, 16)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+5)*64+CHANNEL+32)<4>  REG2(r,nTEMP17, 24)<0;8,1>:ub
+  #endif    
+
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(1, 0)<0;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12,  2)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+    
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(2, 0)<0;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12,  4)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+    
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(3, 0)<0;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12,  6)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+    
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(4, 0)<0;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12,  8)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+    
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(5, 0)<5;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12, 10)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+    
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(6, 0)<6;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12, 12)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+    
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(7, 0)<0;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12, 14)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+
+    // ####  write this channel
+    mov (8) ubDEST_RGBX(0,ROW_NUM_WRITE*64+CHANNEL   )<4>  REG2(r,nTEMP12, 0)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,ROW_NUM_WRITE*64+CHANNEL+32)<4>  REG2(r,nTEMP12, 8)<0;8,1>:ub
+    
+    // ###### do one row for Blue channel
+    #define fCOEF_REG  fYUV_to_RGB_CH0_Coef_Float  // reg for Blue coefficient
+    #define CHANNEL   0
+    // ##### dp4(nTEMP16) and save result to uw format(nTEMP12)
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(0, 0)<0;8,1>   fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12,  0)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+
+  #if (ONE_ROW_DEBUG)
+    // write dp4 (raw float) of 2 pixel to the 4/5th row
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+2)*64+CHANNEL   )<4>  REG2(r,nTEMP16,  0)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+2)*64+CHANNEL+32)<4>  REG2(r,nTEMP16,  8)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+3)*64+CHANNEL   )<4>  REG2(r,nTEMP16, 16)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+3)*64+CHANNEL+32)<4>  REG2(r,nTEMP16, 24)<0;8,1>:ub
+
+    // write dp4 (convert float to ud first, write whole ud) of 2 pixel to the 6/7th row
+    mov (8)  REG2(r, nTEMP17,  0)<1>:d     REG2(r, nTEMP16, 0)<0;8,1>:f
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+4)*64+CHANNEL   )<4>  REG2(r,nTEMP17,  0)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+4)*64+CHANNEL+32)<4>  REG2(r,nTEMP17,  8)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+5)*64+CHANNEL   )<4>  REG2(r,nTEMP17, 16)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,(DBG_ROWNUM_BASE+5)*64+CHANNEL+32)<4>  REG2(r,nTEMP17, 24)<0;8,1>:ub
+  #endif    
+
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(1, 0)<0;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12,  2)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+    
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(2, 0)<0;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12,  4)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+    
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(3, 0)<0;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12,  6)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+    
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(4, 0)<0;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12,  8)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+    
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(5, 0)<5;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12, 10)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+    
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(6, 0)<6;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12, 12)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+    
+    dp4 (8)  REG2(r, nTEMP16,  0)<1>:f          fROW_YUVA(7, 0)<0;8,1>         fCOEF_REG<0;4,1>:f 
+    mov.sat (2)  REG2(r, nTEMP14,  0)<1>:ud     REG2(r, nTEMP16, 0)<0;2,4>:f
+    mov (2)  REG2(r, nTEMP12, 14)<1>:ub         REG2(r, nTEMP14, 0)<0;2,4>:ub
+
+    // ####  write this channel
+    mov (8) ubDEST_RGBX(0,ROW_NUM_WRITE*64+CHANNEL   )<4>  REG2(r,nTEMP12, 0)<0;8,1>:ub
+    mov (8) ubDEST_RGBX(0,ROW_NUM_WRITE*64+CHANNEL+32)<4>  REG2(r,nTEMP12, 8)<0;8,1>:ub
+#if (!ONE_ROW_DEBUG)
+    }
+#endif    
diff --git a/src/shaders/post_processing/gen5_6/Common/YUV_to_RGBX_Coef.asm b/src/shaders/post_processing/gen5_6/Common/YUV_to_RGBX_Coef.asm
new file mode 100755 (executable)
index 0000000..c1a80c1
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+ * All Video Processing kernels 
+ * Copyright © <2010>, Intel Corporation.
+ *
+ * This program is licensed under the terms and conditions of the
+ * Eclipse Public License (EPL), version 1.0.  The full text of the EPL is at
+ * http://www.opensource.org/licenses/eclipse-1.0.php.
+ *
+ * Authors:
+ *    Halley Zhao <halley.zhao@intel.com>
+ */
+
+// Module name: YUV_to_RGBX_Coef.asm
+//----------------------------------------------------------------
+#define ubDEST_RGBX          ubTOP_Y       // I'd like use them for color conversion
+
+// is dst surface |R|G|B|X| layout? otherwise, it is |B|G|R|X| layout
+and.nz.f0.1 (1) dNULLREG     r1.2:ud         0xFF000000:ud      
+#ifdef FIX_POINT_CONVERSION
+    // ###### set up transformation coefficient
+        // R = clip((   298 * C +   0 * D +    409 * E + 128) >> 8)
+        // R = clip((0x012A * C +   0 * D + 0x0199 * E + 128) >> 8)
+    (-f0.1) mov (1) REG2(r, nTEMP0, 0):ud       0x0000012A:ud      
+    (-f0.1) mov (1) REG2(r, nTEMP0, 1):ud       0x00000199:ud      
+    ( f0.1) mov (1) REG2(r, nTEMP0, 4):ud       0x0000012A:ud      
+    ( f0.1) mov (1) REG2(r, nTEMP0, 5):ud       0x00000199:ud      
+
+        // G = clip((    298 * C -    100 * D -    208 * E + 128) >> 8)
+        // G = clip(( 0x012A * C -   0x64 * D -   0xD0 * E + 128) >> 8)
+        // G = clip(( 0x012A * C + 0xFF9C * D + 0xFF30 * E + 128) >> 8)
+    mov (1) REG2(r, nTEMP0, 2):ud       0xFF9C012A:ud      
+    mov (1) REG2(r, nTEMP0, 3):ud       0x0000FF30:ud      
+
+        // B = clip((  298 * C +    516 * D +   0 * E + 128) >> 8) 
+        // B = clip((0x012A* C + 0x0204 * D +   0 * E + 128) >> 8) 
+    (-f0.1) mov (1) REG2(r, nTEMP0, 4):ud       0x0204012A:ud
+    (-f0.1) mov (1) REG2(r, nTEMP0, 5):ud       0x00000000:ud
+    ( f0.1) mov (1) REG2(r, nTEMP0, 0):ud       0x0204012A:ud
+    ( f0.1) mov (1) REG2(r, nTEMP0, 1):ud       0x00000000:ud
+
+    // asr.sat (24) REG2(r,nTEMP0,0)<1>    REG2(r,nTEMP0,0)<0;24,1>    1:w
+    asr.sat (8) REG2(r,nTEMP0, 0)<1>:w    REG2(r,nTEMP0, 0)<0;8,1>:w    1:w
+    asr.sat (4)  REG2(r,nTEMP0,8)<1>:w    REG2(r,nTEMP0,8)<0;4,1>:w    1:w
+    
+        // C = Y' - 16          D = U - 128         E = V - 128
+    mov (1) REG2(r, nTEMP0, 6):ud       0x008080F0:ud
+
+    #define wYUV_to_RGB_CH2_Coef_Fix        REG2(r, nTEMP0, 0)
+    #define wYUV_to_RGB_CH1_Coef_Fix        REG2(r, nTEMP0, 4)
+    #define wYUV_to_RGB_CH0_Coef_Fix        REG2(r, nTEMP0, 8)
+    #define bYUV_OFF                        REG2(r,nTEMP0,24)
+
+    // debug use
+    #define bYUV_to_RGB_CH2_Coef_Fix        REG2(r, nTEMP0, 0)
+    #define bYUV_to_RGB_CH1_Coef_Fix        REG2(r, nTEMP0, 8)
+    #define bYUV_to_RGB_CH0_Coef_Fix        REG2(r, nTEMP0, 16)
+
+#else
+        // R = Y             + 1.13983*V
+        // R = clip( Y                  + 1.402*(Cr-128))  // ITU-R
+    (-f0.1) mov (1) REG2(r, nTEMP8, 3):f       0.000f       // A coef
+    (-f0.1) mov (1) REG2(r, nTEMP8, 2):f       1.402f       // V coef
+    (-f0.1) mov (1) REG2(r, nTEMP8, 1):f       0.0f         // U coef
+    (-f0.1) mov (1) REG2(r, nTEMP8, 0):f       1.0f         // Y coef
+
+    ( f0.1) mov (1) REG2(r, nTEMP10, 3):f       0.000f       // A coef
+    ( f0.1) mov (1) REG2(r, nTEMP10, 2):f       1.402f       // V coef
+    ( f0.1) mov (1) REG2(r, nTEMP10, 1):f       0.0f         // U coef
+    ( f0.1) mov (1) REG2(r, nTEMP10, 0):f       1.0f         // Y coef
+    
+        // G = Y - 0.39465*U - 0.58060*V
+        // G = clip( Y - 0.344*(Cb-128) - 0.714*(Cr-128))
+    mov (1) REG2(r, nTEMP8, 7):f       0.000f       // A coef
+    mov (1) REG2(r, nTEMP8, 6):f      -0.714f       // V coef
+    mov (1) REG2(r, nTEMP8, 5):f      -0.344f       // U coef
+    mov (1) REG2(r, nTEMP8, 4):f       1.0f         // Y coef
+
+        // B = Y + 2.03211*U
+        // B = clip( Y + 1.772*(Cb-128))
+    (-f0.1) mov (1) REG2(r, nTEMP10, 3):f       0.000f      // A coef
+    (-f0.1) mov (1) REG2(r, nTEMP10, 2):f       0.0f        // V coef
+    (-f0.1) mov (1) REG2(r, nTEMP10, 1):f       1.772f      // U coef
+    (-f0.1) mov (1) REG2(r, nTEMP10, 0):f       1.0f        // Y coef
+
+    ( f0.1) mov (1) REG2(r, nTEMP8, 3):f       0.000f      // A coef
+    ( f0.1) mov (1) REG2(r, nTEMP8, 2):f       0.0f        // V coef
+    ( f0.1) mov (1) REG2(r, nTEMP8, 1):f       1.772f      // U coef
+    ( f0.1) mov (1) REG2(r, nTEMP8, 0):f       1.0f        // Y coef
+
+    mov (1) REG2(r, nTEMP10,  4):ud         0x008080F0:ud
+
+    #define fYUV_to_RGB_CH2_Coef_Float          REG2(r, nTEMP8, 0)
+    #define fYUV_to_RGB_CH1_Coef_Float          REG2(r, nTEMP8, 4)
+    #define fYUV_to_RGB_CH0_Coef_Float          REG2(r, nTEMP10, 0)
+    #define bYUV_OFF                            REG2(r,nTEMP10,16)
+
+    .declare fROW_YUVA       Base=REG(r,nTEMP0) ElementSize=4 SrcRegion=REGION(8,8) Type=f    // r nTEMP0 - r nTEMP7
+
+#endif
index 8658938..052ee53 100755 (executable)
@@ -21,6 +21,7 @@ INTEL_PP_G4B_GEN5 = \
        pa_load_save_nv12.g4b.gen5                              \
        pa_load_save_pl3.g4b.gen5                               \
        rgbx_load_save_nv12.g4b.gen5                            \
+       nv12_load_save_rgbx.g4b.gen5                            \
        $(NULL)
 
 INTEL_PP_G6B = \
@@ -37,6 +38,7 @@ INTEL_PP_G6B = \
        pa_load_save_nv12.g6b                           \
        pa_load_save_pl3.g6b                            \
        rgbx_load_save_nv12.g6b                         \
+       nv12_load_save_rgbx.g6b                         \
        $(NULL)
 
 INTEL_PP_ASM = \
@@ -53,6 +55,7 @@ INTEL_PP_ASM = \
        pa_load_save_nv12.asm                           \
        pa_load_save_pl3.asm                            \
        rgbx_load_save_nv12.asm                         \
+       nv12_load_save_rgbx.asm                         \
        $(NULL)
 
 INTEL_PP_ASM += \
@@ -93,6 +96,9 @@ INTEL_PP_ASM += \
        Common/RGBX_to_YUV_Coef.asm                     \
        Common/RGBX_Save_YUV_Fix.asm            \
        Common/RGBX_Save_YUV_Float.asm          \
+       Common/YUV_to_RGBX_Coef.asm                     \
+       Common/YUVX_Save_RGBX_Fix.asm       \
+       Common/YUVX_Save_RGBX_Float.asm     \
        Common/SetupVPKernel.asm                        \
        Common/readSampler16x1.asm                      \
        Core_Kernels/AVS_SetupFirstBlock.asm            \
diff --git a/src/shaders/post_processing/gen5_6/nv12_load_save_rgbx.asm b/src/shaders/post_processing/gen5_6/nv12_load_save_rgbx.asm
new file mode 100755 (executable)
index 0000000..72cd96b
--- /dev/null
@@ -0,0 +1,25 @@
+// Module name: NV12_LOAD_SAVE_RGBX
+.kernel NV12_LOAD_SAVE_RGBX
+.code
+#define FIX_POINT_CONVERSION
+// #define FLOAT_POINT_CONVERSION
+
+#include "SetupVPKernel.asm"
+#include "YUV_to_RGBX_Coef.asm"
+#include "Multiple_Loop_Head.asm"
+#include "NV12_Load_8x4.asm"
+#ifdef FIX_POINT_CONVERSION
+  #include "YUVX_Save_RGBX_Fix.asm"
+#else
+  #include "YUVX_Save_RGBX_Float.asm"
+#endif
+#include "RGB16x8_Save_RGB.asm"
+#include "Multiple_Loop.asm"
+
+END_THREAD  // End of Thread
+
+.end_code  
+
+.end_kernel
+
+// end of nv12_load_save_rgbx.asm
diff --git a/src/shaders/post_processing/gen5_6/nv12_load_save_rgbx.g4b.gen5 b/src/shaders/post_processing/gen5_6/nv12_load_save_rgbx.g4b.gen5
new file mode 100644 (file)
index 0000000..da9ca7a
--- /dev/null
@@ -0,0 +1,717 @@
+   { 0x00600001, 0x21000021, 0x008d0000, 0x00000000 },
+   { 0x02000005, 0x20000c24, 0x02000028, 0xff000000 },
+   { 0x00110001, 0x24400061, 0x02000000, 0x0000012a },
+   { 0x00110001, 0x24440061, 0x02000000, 0x00000199 },
+   { 0x00010001, 0x24500061, 0x02000000, 0x0000012a },
+   { 0x00010001, 0x24540061, 0x02000000, 0x00000199 },
+   { 0x00000001, 0x24480061, 0x00000000, 0xff9c012a },
+   { 0x00000001, 0x244c0061, 0x00000000, 0x0000ff30 },
+   { 0x00110001, 0x24500061, 0x02000000, 0x0204012a },
+   { 0x00110001, 0x24540061, 0x02000000, 0x00000000 },
+   { 0x00010001, 0x24400061, 0x02000000, 0x0204012a },
+   { 0x00010001, 0x24440061, 0x02000000, 0x00000000 },
+   { 0x8060000c, 0x24403dad, 0x000d0440, 0x00010001 },
+   { 0x8040000c, 0x24503dad, 0x00090450, 0x00010001 },
+   { 0x00000001, 0x24580061, 0x00000000, 0x008080f0 },
+   { 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 },
+   { 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 },
+   { 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 },
+   { 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 },
+   { 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 },
+   { 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 },
+   { 0x00000001, 0x21080061, 0x00000000, 0x0007000f },
+   { 0x00600001, 0x20200022, 0x008d0100, 0x00000000 },
+   { 0x01600031, 0x27000c01, 0x408d0000, 0x0248a001 },
+   { 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 },
+   { 0x00000001, 0x21080061, 0x00000000, 0x0003000f },
+   { 0x00600001, 0x20400022, 0x008d0100, 0x00000000 },
+   { 0x02600031, 0x28000c01, 0x408d0000, 0x0228a002 },
+   { 0x00600001, 0x63000231, 0x000d0770, 0x00000000 },
+   { 0x00600001, 0x63200231, 0x000d0778, 0x00000000 },
+   { 0x00600001, 0x46800129, 0x000d0830, 0x00000000 },
+   { 0x00600001, 0x46820129, 0x000d0830, 0x00000000 },
+   { 0x00600001, 0x63010231, 0x000e0680, 0x00000000 },
+   { 0x00600001, 0x63210231, 0x000e0690, 0x00000000 },
+   { 0x00600001, 0x63020231, 0x000e0681, 0x00000000 },
+   { 0x00600001, 0x63220231, 0x000e0691, 0x00000000 },
+   { 0x00600001, 0x62c00231, 0x000d0760, 0x00000000 },
+   { 0x00600001, 0x62e00231, 0x000d0768, 0x00000000 },
+   { 0x00600001, 0x46800129, 0x000d0830, 0x00000000 },
+   { 0x00600001, 0x46820129, 0x000d0830, 0x00000000 },
+   { 0x00600001, 0x62c10231, 0x000e0680, 0x00000000 },
+   { 0x00600001, 0x62e10231, 0x000e0690, 0x00000000 },
+   { 0x00600001, 0x62c20231, 0x000e0681, 0x00000000 },
+   { 0x00600001, 0x62e20231, 0x000e0691, 0x00000000 },
+   { 0x00600001, 0x62800231, 0x000d0750, 0x00000000 },
+   { 0x00600001, 0x62a00231, 0x000d0758, 0x00000000 },
+   { 0x00600001, 0x46800129, 0x000d0820, 0x00000000 },
+   { 0x00600001, 0x46820129, 0x000d0820, 0x00000000 },
+   { 0x00600001, 0x62810231, 0x000e0680, 0x00000000 },
+   { 0x00600001, 0x62a10231, 0x000e0690, 0x00000000 },
+   { 0x00600001, 0x62820231, 0x000e0681, 0x00000000 },
+   { 0x00600001, 0x62a20231, 0x000e0691, 0x00000000 },
+   { 0x00600001, 0x62400231, 0x000d0740, 0x00000000 },
+   { 0x00600001, 0x62600231, 0x000d0748, 0x00000000 },
+   { 0x00600001, 0x46800129, 0x000d0820, 0x00000000 },
+   { 0x00600001, 0x46820129, 0x000d0820, 0x00000000 },
+   { 0x00600001, 0x62410231, 0x000e0680, 0x00000000 },
+   { 0x00600001, 0x62610231, 0x000e0690, 0x00000000 },
+   { 0x00600001, 0x62420231, 0x000e0681, 0x00000000 },
+   { 0x00600001, 0x62620231, 0x000e0691, 0x00000000 },
+   { 0x00600001, 0x62000231, 0x000d0730, 0x00000000 },
+   { 0x00600001, 0x62200231, 0x000d0738, 0x00000000 },
+   { 0x00600001, 0x46800129, 0x000d0810, 0x00000000 },
+   { 0x00600001, 0x46820129, 0x000d0810, 0x00000000 },
+   { 0x00600001, 0x62010231, 0x000e0680, 0x00000000 },
+   { 0x00600001, 0x62210231, 0x000e0690, 0x00000000 },
+   { 0x00600001, 0x62020231, 0x000e0681, 0x00000000 },
+   { 0x00600001, 0x62220231, 0x000e0691, 0x00000000 },
+   { 0x00600001, 0x61c00231, 0x000d0720, 0x00000000 },
+   { 0x00600001, 0x61e00231, 0x000d0728, 0x00000000 },
+   { 0x00600001, 0x46800129, 0x000d0810, 0x00000000 },
+   { 0x00600001, 0x46820129, 0x000d0810, 0x00000000 },
+   { 0x00600001, 0x61c10231, 0x000e0680, 0x00000000 },
+   { 0x00600001, 0x61e10231, 0x000e0690, 0x00000000 },
+   { 0x00600001, 0x61c20231, 0x000e0681, 0x00000000 },
+   { 0x00600001, 0x61e20231, 0x000e0691, 0x00000000 },
+   { 0x00600001, 0x61800231, 0x000d0710, 0x00000000 },
+   { 0x00600001, 0x61a00231, 0x000d0718, 0x00000000 },
+   { 0x00600001, 0x46800129, 0x000d0800, 0x00000000 },
+   { 0x00600001, 0x46820129, 0x000d0800, 0x00000000 },
+   { 0x00600001, 0x61810231, 0x000e0680, 0x00000000 },
+   { 0x00600001, 0x61a10231, 0x000e0690, 0x00000000 },
+   { 0x00600001, 0x61820231, 0x000e0681, 0x00000000 },
+   { 0x00600001, 0x61a20231, 0x000e0691, 0x00000000 },
+   { 0x00600001, 0x61400231, 0x000d0700, 0x00000000 },
+   { 0x00600001, 0x61600231, 0x000d0708, 0x00000000 },
+   { 0x00600001, 0x46800129, 0x000d0800, 0x00000000 },
+   { 0x00600001, 0x46820129, 0x000d0800, 0x00000000 },
+   { 0x00600001, 0x61410231, 0x000e0680, 0x00000000 },
+   { 0x00600001, 0x61610231, 0x000e0690, 0x00000000 },
+   { 0x00600001, 0x61420231, 0x000e0681, 0x00000000 },
+   { 0x00600001, 0x61620231, 0x000e0691, 0x00000000 },
+   { 0x00800040, 0x2580562d, 0x00110140, 0x00090458 },
+   { 0x00800040, 0x25c0562d, 0x00110150, 0x00090458 },
+   { 0x00800040, 0x2600562d, 0x00110160, 0x00090458 },
+   { 0x00800040, 0x2640562d, 0x00110170, 0x00090458 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090440 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090440 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090440 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090440 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24600231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090448 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090448 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090448 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090448 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x00800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24800231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090450 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090450 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090450 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090450 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24a00231, 0x00120541, 0x00000000 },
+   { 0x00600001, 0x61400231, 0x000d04a0, 0x00000000 },
+   { 0x00600001, 0x61600231, 0x000d04a8, 0x00000000 },
+   { 0x00600001, 0x61410231, 0x000d0480, 0x00000000 },
+   { 0x00600001, 0x61610231, 0x000d0488, 0x00000000 },
+   { 0x00600001, 0x61420231, 0x000d0460, 0x00000000 },
+   { 0x00600001, 0x61620231, 0x000d0468, 0x00000000 },
+   { 0x00800040, 0x2580562d, 0x00110180, 0x00090458 },
+   { 0x00800040, 0x25c0562d, 0x00110190, 0x00090458 },
+   { 0x00800040, 0x2600562d, 0x001101a0, 0x00090458 },
+   { 0x00800040, 0x2640562d, 0x001101b0, 0x00090458 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090440 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090440 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090440 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090440 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24600231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090448 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090448 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090448 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090448 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x00800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24800231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090450 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090450 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090450 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090450 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24a00231, 0x00120541, 0x00000000 },
+   { 0x00600001, 0x61800231, 0x000d04a0, 0x00000000 },
+   { 0x00600001, 0x61a00231, 0x000d04a8, 0x00000000 },
+   { 0x00600001, 0x61810231, 0x000d0480, 0x00000000 },
+   { 0x00600001, 0x61a10231, 0x000d0488, 0x00000000 },
+   { 0x00600001, 0x61820231, 0x000d0460, 0x00000000 },
+   { 0x00600001, 0x61a20231, 0x000d0468, 0x00000000 },
+   { 0x00800040, 0x2580562d, 0x001101c0, 0x00090458 },
+   { 0x00800040, 0x25c0562d, 0x001101d0, 0x00090458 },
+   { 0x00800040, 0x2600562d, 0x001101e0, 0x00090458 },
+   { 0x00800040, 0x2640562d, 0x001101f0, 0x00090458 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090440 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090440 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090440 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090440 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24600231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090448 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090448 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090448 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090448 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x00800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24800231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090450 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090450 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090450 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090450 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24a00231, 0x00120541, 0x00000000 },
+   { 0x00600001, 0x61c00231, 0x000d04a0, 0x00000000 },
+   { 0x00600001, 0x61e00231, 0x000d04a8, 0x00000000 },
+   { 0x00600001, 0x61c10231, 0x000d0480, 0x00000000 },
+   { 0x00600001, 0x61e10231, 0x000d0488, 0x00000000 },
+   { 0x00600001, 0x61c20231, 0x000d0460, 0x00000000 },
+   { 0x00600001, 0x61e20231, 0x000d0468, 0x00000000 },
+   { 0x00800040, 0x2580562d, 0x00110200, 0x00090458 },
+   { 0x00800040, 0x25c0562d, 0x00110210, 0x00090458 },
+   { 0x00800040, 0x2600562d, 0x00110220, 0x00090458 },
+   { 0x00800040, 0x2640562d, 0x00110230, 0x00090458 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090440 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090440 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090440 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090440 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24600231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090448 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090448 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090448 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090448 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x00800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24800231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090450 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090450 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090450 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090450 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24a00231, 0x00120541, 0x00000000 },
+   { 0x00600001, 0x62000231, 0x000d04a0, 0x00000000 },
+   { 0x00600001, 0x62200231, 0x000d04a8, 0x00000000 },
+   { 0x00600001, 0x62010231, 0x000d0480, 0x00000000 },
+   { 0x00600001, 0x62210231, 0x000d0488, 0x00000000 },
+   { 0x00600001, 0x62020231, 0x000d0460, 0x00000000 },
+   { 0x00600001, 0x62220231, 0x000d0468, 0x00000000 },
+   { 0x00800040, 0x2580562d, 0x00110240, 0x00090458 },
+   { 0x00800040, 0x25c0562d, 0x00110250, 0x00090458 },
+   { 0x00800040, 0x2600562d, 0x00110260, 0x00090458 },
+   { 0x00800040, 0x2640562d, 0x00110270, 0x00090458 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090440 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090440 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090440 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090440 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24600231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090448 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090448 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090448 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090448 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x00800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24800231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090450 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090450 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090450 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090450 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24a00231, 0x00120541, 0x00000000 },
+   { 0x00600001, 0x62400231, 0x000d04a0, 0x00000000 },
+   { 0x00600001, 0x62600231, 0x000d04a8, 0x00000000 },
+   { 0x00600001, 0x62410231, 0x000d0480, 0x00000000 },
+   { 0x00600001, 0x62610231, 0x000d0488, 0x00000000 },
+   { 0x00600001, 0x62420231, 0x000d0460, 0x00000000 },
+   { 0x00600001, 0x62620231, 0x000d0468, 0x00000000 },
+   { 0x00800040, 0x2580562d, 0x00110280, 0x00090458 },
+   { 0x00800040, 0x25c0562d, 0x00110290, 0x00090458 },
+   { 0x00800040, 0x2600562d, 0x001102a0, 0x00090458 },
+   { 0x00800040, 0x2640562d, 0x001102b0, 0x00090458 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090440 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090440 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090440 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090440 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24600231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090448 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090448 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090448 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090448 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x00800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24800231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090450 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090450 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090450 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090450 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24a00231, 0x00120541, 0x00000000 },
+   { 0x00600001, 0x62800231, 0x000d04a0, 0x00000000 },
+   { 0x00600001, 0x62a00231, 0x000d04a8, 0x00000000 },
+   { 0x00600001, 0x62810231, 0x000d0480, 0x00000000 },
+   { 0x00600001, 0x62a10231, 0x000d0488, 0x00000000 },
+   { 0x00600001, 0x62820231, 0x000d0460, 0x00000000 },
+   { 0x00600001, 0x62a20231, 0x000d0468, 0x00000000 },
+   { 0x00800040, 0x2580562d, 0x001102c0, 0x00090458 },
+   { 0x00800040, 0x25c0562d, 0x001102d0, 0x00090458 },
+   { 0x00800040, 0x2600562d, 0x001102e0, 0x00090458 },
+   { 0x00800040, 0x2640562d, 0x001102f0, 0x00090458 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090440 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090440 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090440 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090440 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24600231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090448 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090448 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090448 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090448 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x00800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24800231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090450 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090450 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090450 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090450 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24a00231, 0x00120541, 0x00000000 },
+   { 0x00600001, 0x62c00231, 0x000d04a0, 0x00000000 },
+   { 0x00600001, 0x62e00231, 0x000d04a8, 0x00000000 },
+   { 0x00600001, 0x62c10231, 0x000d0480, 0x00000000 },
+   { 0x00600001, 0x62e10231, 0x000d0488, 0x00000000 },
+   { 0x00600001, 0x62c20231, 0x000d0460, 0x00000000 },
+   { 0x00600001, 0x62e20231, 0x000d0468, 0x00000000 },
+   { 0x00800040, 0x2580562d, 0x00110300, 0x00090458 },
+   { 0x00800040, 0x25c0562d, 0x00110310, 0x00090458 },
+   { 0x00800040, 0x2600562d, 0x00110320, 0x00090458 },
+   { 0x00800040, 0x2640562d, 0x00110330, 0x00090458 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090440 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090440 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090440 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090440 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24600231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090448 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090448 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090448 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090448 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x00800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24800231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090450 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090450 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090450 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090450 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24a00231, 0x00120541, 0x00000000 },
+   { 0x00600001, 0x63000231, 0x000d04a0, 0x00000000 },
+   { 0x00600001, 0x63200231, 0x000d04a8, 0x00000000 },
+   { 0x00600001, 0x63010231, 0x000d0480, 0x00000000 },
+   { 0x00600001, 0x63210231, 0x000d0488, 0x00000000 },
+   { 0x00600001, 0x63020231, 0x000d0460, 0x00000000 },
+   { 0x00600001, 0x63220231, 0x000d0468, 0x00000000 },
+   { 0x00000409, 0x21003da5, 0x000000a0, 0x00020002 },
+   { 0x00000c01, 0x210401a5, 0x000000a2, 0x00000000 },
+   { 0x00000801, 0x21080061, 0x00000000, 0x0007001f },
+   { 0x00600001, 0x20200022, 0x008d0100, 0x00000000 },
+   { 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff },
+   { 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff },
+   { 0x00010220, 0x34001c00, 0x00001400, 0x00000062 },
+   { 0x00000006, 0x24000c20, 0x000000b8, 0xff00ff00 },
+   { 0x01000010, 0x20000c04, 0x00000400, 0xffffffff },
+   { 0x00010220, 0x34001c00, 0x00001400, 0x0000002a },
+   { 0x01600031, 0x27000c01, 0x408d0000, 0x0288a007 },
+   { 0x00600001, 0x20200022, 0x008d0100, 0x00000000 },
+   { 0x00000001, 0x26000228, 0x000000ba, 0x00000000 },
+   { 0x00610001, 0x24400129, 0x000000b8, 0x00000000 },
+   { 0x00710001, 0x24400169, 0x00000000, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000440, 0x00000000 },
+   { 0x00710001, 0x21400021, 0x028d0700, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000442, 0x00000000 },
+   { 0x00710001, 0x21800021, 0x028d0720, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000444, 0x00000000 },
+   { 0x00710001, 0x21c00021, 0x028d0740, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000446, 0x00000000 },
+   { 0x00710001, 0x22000021, 0x028d0760, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000448, 0x00000000 },
+   { 0x00710001, 0x22400021, 0x028d0780, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x0000044a, 0x00000000 },
+   { 0x00710001, 0x22800021, 0x028d07a0, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x0000044c, 0x00000000 },
+   { 0x00710001, 0x22c00021, 0x028d07c0, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x0000044e, 0x00000000 },
+   { 0x00710001, 0x23000021, 0x028d07e0, 0x00000000 },
+   { 0x00000006, 0x24000c20, 0x000000b8, 0xff0000ff },
+   { 0x01000010, 0x20000c04, 0x00000400, 0xffffffff },
+   { 0x00010220, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x00000040, 0x20201ca6, 0x00000100, 0x00000020 },
+   { 0x01600031, 0x27000c01, 0x408d0000, 0x0288a007 },
+   { 0x00600001, 0x20200022, 0x008d0100, 0x00000000 },
+   { 0x00000001, 0x26000228, 0x000000ba, 0x00000000 },
+   { 0x00610008, 0x24402d29, 0x000000b8, 0x00080008 },
+   { 0x00710001, 0x24400169, 0x00000000, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000440, 0x00000000 },
+   { 0x00710001, 0x21600021, 0x028d0700, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000442, 0x00000000 },
+   { 0x00710001, 0x21a00021, 0x028d0720, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000444, 0x00000000 },
+   { 0x00710001, 0x21e00021, 0x028d0740, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000446, 0x00000000 },
+   { 0x00710001, 0x22200021, 0x028d0760, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000448, 0x00000000 },
+   { 0x00710001, 0x22600021, 0x028d0780, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x0000044a, 0x00000000 },
+   { 0x00710001, 0x22a00021, 0x028d07a0, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x0000044c, 0x00000000 },
+   { 0x00710001, 0x22e00021, 0x028d07c0, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x0000044e, 0x00000000 },
+   { 0x00710001, 0x23200021, 0x028d07e0, 0x00000000 },
+   { 0x00600001, 0x20400022, 0x008d0140, 0x00000000 },
+   { 0x00600001, 0x20600022, 0x008d0180, 0x00000000 },
+   { 0x00600001, 0x20800022, 0x008d01c0, 0x00000000 },
+   { 0x00600001, 0x20a00022, 0x008d0200, 0x00000000 },
+   { 0x00600001, 0x20c00022, 0x008d0240, 0x00000000 },
+   { 0x00600001, 0x20e00022, 0x008d0280, 0x00000000 },
+   { 0x00600001, 0x21000022, 0x008d02c0, 0x00000000 },
+   { 0x00600001, 0x21200022, 0x008d0300, 0x00000000 },
+   { 0x01600031, 0x20000c04, 0x508d0000, 0x12082007 },
+   { 0x00600001, 0x20200022, 0x008d0100, 0x00000000 },
+   { 0x00000040, 0x20201ca6, 0x00000100, 0x00000020 },
+   { 0x00600001, 0x20400022, 0x008d0160, 0x00000000 },
+   { 0x00600001, 0x20600022, 0x008d01a0, 0x00000000 },
+   { 0x00600001, 0x20800022, 0x008d01e0, 0x00000000 },
+   { 0x00600001, 0x20a00022, 0x008d0220, 0x00000000 },
+   { 0x00600001, 0x20c00022, 0x008d0260, 0x00000000 },
+   { 0x00600001, 0x20e00022, 0x008d02a0, 0x00000000 },
+   { 0x00600001, 0x21000022, 0x008d02e0, 0x00000000 },
+   { 0x00600001, 0x21200022, 0x008d0320, 0x00000000 },
+   { 0x01600031, 0x20000c04, 0x508d0000, 0x12082007 },
+   { 0x01000040, 0x20863dad, 0x00000086, 0xffffffff },
+   { 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 },
+   { 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 },
+   { 0x00010220, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00010220, 0x34001c00, 0x02001400, 0xfffffa9e },
+   { 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 },
+   { 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 },
+   { 0x00000220, 0x34001c00, 0x00001400, 0xfffffa98 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 },
+   { 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 },
+   { 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 },
+   { 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 },
diff --git a/src/shaders/post_processing/gen5_6/nv12_load_save_rgbx.g6b b/src/shaders/post_processing/gen5_6/nv12_load_save_rgbx.g6b
new file mode 100644 (file)
index 0000000..657e5bf
--- /dev/null
@@ -0,0 +1,790 @@
+   { 0x00600001, 0x20e00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21000061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21200061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21400061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21600061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21800061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21a00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21c00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21e00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22000061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22200061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22400061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22600061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22800061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22a00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22c00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x22e00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x23000061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x23200061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x23400061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x23600061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x23800061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x23a00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x23c00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x23e00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x24000061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x24200061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x24400061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x24600061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x24800061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x24a00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x24c00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x24e00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x25000061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x25200061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x25400061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x25600061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x25800061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x25a00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x25c00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x25e00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x26000061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x26200061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x26400061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x26600061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x26800061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x26a00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x26c00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x26e00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x27000061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x27200061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x27400061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x27600061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x27800061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x27a00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x27c00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x27e00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x28000061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x28200061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x28400061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x28600061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x28800061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x28a00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x28c00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x28e00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x29000061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x29200061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x29400061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x29600061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x29800061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x29a00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x29c00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x29e00061, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21000021, 0x008d0000, 0x00000000 },
+   { 0x02000005, 0x20000c24, 0x02000028, 0xff000000 },
+   { 0x00110001, 0x24400061, 0x02000000, 0x0000012a },
+   { 0x00110001, 0x24440061, 0x02000000, 0x00000199 },
+   { 0x00010001, 0x24500061, 0x02000000, 0x0000012a },
+   { 0x00010001, 0x24540061, 0x02000000, 0x00000199 },
+   { 0x00000001, 0x24480061, 0x00000000, 0xff9c012a },
+   { 0x00000001, 0x244c0061, 0x00000000, 0x0000ff30 },
+   { 0x00110001, 0x24500061, 0x02000000, 0x0204012a },
+   { 0x00110001, 0x24540061, 0x02000000, 0x00000000 },
+   { 0x00010001, 0x24400061, 0x02000000, 0x0204012a },
+   { 0x00010001, 0x24440061, 0x02000000, 0x00000000 },
+   { 0x8060000c, 0x24403dad, 0x000d0440, 0x00010001 },
+   { 0x8040000c, 0x24503dad, 0x00090450, 0x00010001 },
+   { 0x00000001, 0x24580061, 0x00000000, 0x008080f0 },
+   { 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 },
+   { 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 },
+   { 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 },
+   { 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 },
+   { 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 },
+   { 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 },
+   { 0x00000001, 0x21080061, 0x00000000, 0x0007000f },
+   { 0x00600001, 0x20200022, 0x008d0100, 0x00000000 },
+   { 0x04600031, 0x27000cc1, 0x00000020, 0x02498001 },
+   { 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 },
+   { 0x00000001, 0x21080061, 0x00000000, 0x0003000f },
+   { 0x00600001, 0x20400022, 0x008d0100, 0x00000000 },
+   { 0x04600031, 0x28000cc1, 0x00000040, 0x02298002 },
+   { 0x00600001, 0x63000231, 0x000d0770, 0x00000000 },
+   { 0x00600001, 0x63200231, 0x000d0778, 0x00000000 },
+   { 0x00600001, 0x46800129, 0x000d0830, 0x00000000 },
+   { 0x00600001, 0x46820129, 0x000d0830, 0x00000000 },
+   { 0x00600001, 0x63010231, 0x000e0680, 0x00000000 },
+   { 0x00600001, 0x63210231, 0x000e0690, 0x00000000 },
+   { 0x00600001, 0x63020231, 0x000e0681, 0x00000000 },
+   { 0x00600001, 0x63220231, 0x000e0691, 0x00000000 },
+   { 0x00600001, 0x62c00231, 0x000d0760, 0x00000000 },
+   { 0x00600001, 0x62e00231, 0x000d0768, 0x00000000 },
+   { 0x00600001, 0x46800129, 0x000d0830, 0x00000000 },
+   { 0x00600001, 0x46820129, 0x000d0830, 0x00000000 },
+   { 0x00600001, 0x62c10231, 0x000e0680, 0x00000000 },
+   { 0x00600001, 0x62e10231, 0x000e0690, 0x00000000 },
+   { 0x00600001, 0x62c20231, 0x000e0681, 0x00000000 },
+   { 0x00600001, 0x62e20231, 0x000e0691, 0x00000000 },
+   { 0x00600001, 0x62800231, 0x000d0750, 0x00000000 },
+   { 0x00600001, 0x62a00231, 0x000d0758, 0x00000000 },
+   { 0x00600001, 0x46800129, 0x000d0820, 0x00000000 },
+   { 0x00600001, 0x46820129, 0x000d0820, 0x00000000 },
+   { 0x00600001, 0x62810231, 0x000e0680, 0x00000000 },
+   { 0x00600001, 0x62a10231, 0x000e0690, 0x00000000 },
+   { 0x00600001, 0x62820231, 0x000e0681, 0x00000000 },
+   { 0x00600001, 0x62a20231, 0x000e0691, 0x00000000 },
+   { 0x00600001, 0x62400231, 0x000d0740, 0x00000000 },
+   { 0x00600001, 0x62600231, 0x000d0748, 0x00000000 },
+   { 0x00600001, 0x46800129, 0x000d0820, 0x00000000 },
+   { 0x00600001, 0x46820129, 0x000d0820, 0x00000000 },
+   { 0x00600001, 0x62410231, 0x000e0680, 0x00000000 },
+   { 0x00600001, 0x62610231, 0x000e0690, 0x00000000 },
+   { 0x00600001, 0x62420231, 0x000e0681, 0x00000000 },
+   { 0x00600001, 0x62620231, 0x000e0691, 0x00000000 },
+   { 0x00600001, 0x62000231, 0x000d0730, 0x00000000 },
+   { 0x00600001, 0x62200231, 0x000d0738, 0x00000000 },
+   { 0x00600001, 0x46800129, 0x000d0810, 0x00000000 },
+   { 0x00600001, 0x46820129, 0x000d0810, 0x00000000 },
+   { 0x00600001, 0x62010231, 0x000e0680, 0x00000000 },
+   { 0x00600001, 0x62210231, 0x000e0690, 0x00000000 },
+   { 0x00600001, 0x62020231, 0x000e0681, 0x00000000 },
+   { 0x00600001, 0x62220231, 0x000e0691, 0x00000000 },
+   { 0x00600001, 0x61c00231, 0x000d0720, 0x00000000 },
+   { 0x00600001, 0x61e00231, 0x000d0728, 0x00000000 },
+   { 0x00600001, 0x46800129, 0x000d0810, 0x00000000 },
+   { 0x00600001, 0x46820129, 0x000d0810, 0x00000000 },
+   { 0x00600001, 0x61c10231, 0x000e0680, 0x00000000 },
+   { 0x00600001, 0x61e10231, 0x000e0690, 0x00000000 },
+   { 0x00600001, 0x61c20231, 0x000e0681, 0x00000000 },
+   { 0x00600001, 0x61e20231, 0x000e0691, 0x00000000 },
+   { 0x00600001, 0x61800231, 0x000d0710, 0x00000000 },
+   { 0x00600001, 0x61a00231, 0x000d0718, 0x00000000 },
+   { 0x00600001, 0x46800129, 0x000d0800, 0x00000000 },
+   { 0x00600001, 0x46820129, 0x000d0800, 0x00000000 },
+   { 0x00600001, 0x61810231, 0x000e0680, 0x00000000 },
+   { 0x00600001, 0x61a10231, 0x000e0690, 0x00000000 },
+   { 0x00600001, 0x61820231, 0x000e0681, 0x00000000 },
+   { 0x00600001, 0x61a20231, 0x000e0691, 0x00000000 },
+   { 0x00600001, 0x61400231, 0x000d0700, 0x00000000 },
+   { 0x00600001, 0x61600231, 0x000d0708, 0x00000000 },
+   { 0x00600001, 0x46800129, 0x000d0800, 0x00000000 },
+   { 0x00600001, 0x46820129, 0x000d0800, 0x00000000 },
+   { 0x00600001, 0x61410231, 0x000e0680, 0x00000000 },
+   { 0x00600001, 0x61610231, 0x000e0690, 0x00000000 },
+   { 0x00600001, 0x61420231, 0x000e0681, 0x00000000 },
+   { 0x00600001, 0x61620231, 0x000e0691, 0x00000000 },
+   { 0x00800040, 0x2580562d, 0x00110140, 0x00090458 },
+   { 0x00800040, 0x25c0562d, 0x00110150, 0x00090458 },
+   { 0x00800040, 0x2600562d, 0x00110160, 0x00090458 },
+   { 0x00800040, 0x2640562d, 0x00110170, 0x00090458 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090440 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090440 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090440 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090440 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24600231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090448 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090448 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090448 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090448 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x00800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24800231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090450 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090450 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090450 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090450 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24a00231, 0x00120541, 0x00000000 },
+   { 0x00600001, 0x61400231, 0x000d04a0, 0x00000000 },
+   { 0x00600001, 0x61600231, 0x000d04a8, 0x00000000 },
+   { 0x00600001, 0x61410231, 0x000d0480, 0x00000000 },
+   { 0x00600001, 0x61610231, 0x000d0488, 0x00000000 },
+   { 0x00600001, 0x61420231, 0x000d0460, 0x00000000 },
+   { 0x00600001, 0x61620231, 0x000d0468, 0x00000000 },
+   { 0x00800040, 0x2580562d, 0x00110180, 0x00090458 },
+   { 0x00800040, 0x25c0562d, 0x00110190, 0x00090458 },
+   { 0x00800040, 0x2600562d, 0x001101a0, 0x00090458 },
+   { 0x00800040, 0x2640562d, 0x001101b0, 0x00090458 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090440 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090440 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090440 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090440 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24600231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090448 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090448 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090448 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090448 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x00800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24800231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090450 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090450 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090450 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090450 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24a00231, 0x00120541, 0x00000000 },
+   { 0x00600001, 0x61800231, 0x000d04a0, 0x00000000 },
+   { 0x00600001, 0x61a00231, 0x000d04a8, 0x00000000 },
+   { 0x00600001, 0x61810231, 0x000d0480, 0x00000000 },
+   { 0x00600001, 0x61a10231, 0x000d0488, 0x00000000 },
+   { 0x00600001, 0x61820231, 0x000d0460, 0x00000000 },
+   { 0x00600001, 0x61a20231, 0x000d0468, 0x00000000 },
+   { 0x00800040, 0x2580562d, 0x001101c0, 0x00090458 },
+   { 0x00800040, 0x25c0562d, 0x001101d0, 0x00090458 },
+   { 0x00800040, 0x2600562d, 0x001101e0, 0x00090458 },
+   { 0x00800040, 0x2640562d, 0x001101f0, 0x00090458 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090440 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090440 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090440 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090440 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24600231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090448 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090448 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090448 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090448 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x00800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24800231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090450 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090450 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090450 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090450 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24a00231, 0x00120541, 0x00000000 },
+   { 0x00600001, 0x61c00231, 0x000d04a0, 0x00000000 },
+   { 0x00600001, 0x61e00231, 0x000d04a8, 0x00000000 },
+   { 0x00600001, 0x61c10231, 0x000d0480, 0x00000000 },
+   { 0x00600001, 0x61e10231, 0x000d0488, 0x00000000 },
+   { 0x00600001, 0x61c20231, 0x000d0460, 0x00000000 },
+   { 0x00600001, 0x61e20231, 0x000d0468, 0x00000000 },
+   { 0x00800040, 0x2580562d, 0x00110200, 0x00090458 },
+   { 0x00800040, 0x25c0562d, 0x00110210, 0x00090458 },
+   { 0x00800040, 0x2600562d, 0x00110220, 0x00090458 },
+   { 0x00800040, 0x2640562d, 0x00110230, 0x00090458 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090440 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090440 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090440 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090440 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24600231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090448 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090448 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090448 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090448 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x00800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24800231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090450 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090450 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090450 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090450 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24a00231, 0x00120541, 0x00000000 },
+   { 0x00600001, 0x62000231, 0x000d04a0, 0x00000000 },
+   { 0x00600001, 0x62200231, 0x000d04a8, 0x00000000 },
+   { 0x00600001, 0x62010231, 0x000d0480, 0x00000000 },
+   { 0x00600001, 0x62210231, 0x000d0488, 0x00000000 },
+   { 0x00600001, 0x62020231, 0x000d0460, 0x00000000 },
+   { 0x00600001, 0x62220231, 0x000d0468, 0x00000000 },
+   { 0x00800040, 0x2580562d, 0x00110240, 0x00090458 },
+   { 0x00800040, 0x25c0562d, 0x00110250, 0x00090458 },
+   { 0x00800040, 0x2600562d, 0x00110260, 0x00090458 },
+   { 0x00800040, 0x2640562d, 0x00110270, 0x00090458 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090440 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090440 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090440 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090440 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24600231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090448 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090448 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090448 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090448 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x00800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24800231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090450 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090450 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090450 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090450 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24a00231, 0x00120541, 0x00000000 },
+   { 0x00600001, 0x62400231, 0x000d04a0, 0x00000000 },
+   { 0x00600001, 0x62600231, 0x000d04a8, 0x00000000 },
+   { 0x00600001, 0x62410231, 0x000d0480, 0x00000000 },
+   { 0x00600001, 0x62610231, 0x000d0488, 0x00000000 },
+   { 0x00600001, 0x62420231, 0x000d0460, 0x00000000 },
+   { 0x00600001, 0x62620231, 0x000d0468, 0x00000000 },
+   { 0x00800040, 0x2580562d, 0x00110280, 0x00090458 },
+   { 0x00800040, 0x25c0562d, 0x00110290, 0x00090458 },
+   { 0x00800040, 0x2600562d, 0x001102a0, 0x00090458 },
+   { 0x00800040, 0x2640562d, 0x001102b0, 0x00090458 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090440 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090440 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090440 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090440 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24600231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090448 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090448 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090448 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090448 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x00800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24800231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090450 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090450 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090450 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090450 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24a00231, 0x00120541, 0x00000000 },
+   { 0x00600001, 0x62800231, 0x000d04a0, 0x00000000 },
+   { 0x00600001, 0x62a00231, 0x000d04a8, 0x00000000 },
+   { 0x00600001, 0x62810231, 0x000d0480, 0x00000000 },
+   { 0x00600001, 0x62a10231, 0x000d0488, 0x00000000 },
+   { 0x00600001, 0x62820231, 0x000d0460, 0x00000000 },
+   { 0x00600001, 0x62a20231, 0x000d0468, 0x00000000 },
+   { 0x00800040, 0x2580562d, 0x001102c0, 0x00090458 },
+   { 0x00800040, 0x25c0562d, 0x001102d0, 0x00090458 },
+   { 0x00800040, 0x2600562d, 0x001102e0, 0x00090458 },
+   { 0x00800040, 0x2640562d, 0x001102f0, 0x00090458 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090440 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090440 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090440 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090440 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24600231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090448 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090448 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090448 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090448 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x00800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24800231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090450 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090450 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090450 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090450 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24a00231, 0x00120541, 0x00000000 },
+   { 0x00600001, 0x62c00231, 0x000d04a0, 0x00000000 },
+   { 0x00600001, 0x62e00231, 0x000d04a8, 0x00000000 },
+   { 0x00600001, 0x62c10231, 0x000d0480, 0x00000000 },
+   { 0x00600001, 0x62e10231, 0x000d0488, 0x00000000 },
+   { 0x00600001, 0x62c20231, 0x000d0460, 0x00000000 },
+   { 0x00600001, 0x62e20231, 0x000d0468, 0x00000000 },
+   { 0x00800040, 0x2580562d, 0x00110300, 0x00090458 },
+   { 0x00800040, 0x25c0562d, 0x00110310, 0x00090458 },
+   { 0x00800040, 0x2600562d, 0x00110320, 0x00090458 },
+   { 0x00800040, 0x2640562d, 0x00110330, 0x00090458 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090440 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090440 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090440 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090440 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24600231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090448 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090448 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090448 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090448 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x00800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24800231, 0x00120541, 0x00000000 },
+   { 0x80800041, 0x24c035ad, 0x00110580, 0x00090450 },
+   { 0x80800041, 0x24e035ad, 0x001105c0, 0x00090450 },
+   { 0x80800041, 0x250035ad, 0x00110600, 0x00090450 },
+   { 0x80800041, 0x252035ad, 0x00110640, 0x00090450 },
+   { 0x80400040, 0x64c035a9, 0x000b04c0, 0x000b04c2 },
+   { 0x80400040, 0x64e035a9, 0x000b04e0, 0x000b04e2 },
+   { 0x80400040, 0x650035a9, 0x000b0500, 0x000b0502 },
+   { 0x80400040, 0x652035a9, 0x000b0520, 0x000b0522 },
+   { 0x80400040, 0x64c03529, 0x000b04c0, 0x000b04c4 },
+   { 0x80400040, 0x64e03529, 0x000b04e0, 0x000b04e4 },
+   { 0x80400040, 0x65003529, 0x000b0500, 0x000b0504 },
+   { 0x80400040, 0x65203529, 0x000b0520, 0x000b0524 },
+   { 0x00400001, 0x25400129, 0x000b04c0, 0x00000000 },
+   { 0x00400001, 0x25480129, 0x000b04e0, 0x00000000 },
+   { 0x00400001, 0x25500129, 0x000b0500, 0x00000000 },
+   { 0x00400001, 0x25580129, 0x000b0520, 0x00000000 },
+   { 0x80800040, 0x25402d29, 0x00110540, 0x00800080 },
+   { 0x80800009, 0x25403d29, 0x00110540, 0x00010001 },
+   { 0x00800001, 0x24a00231, 0x00120541, 0x00000000 },
+   { 0x00600001, 0x63000231, 0x000d04a0, 0x00000000 },
+   { 0x00600001, 0x63200231, 0x000d04a8, 0x00000000 },
+   { 0x00600001, 0x63010231, 0x000d0480, 0x00000000 },
+   { 0x00600001, 0x63210231, 0x000d0488, 0x00000000 },
+   { 0x00600001, 0x63020231, 0x000d0460, 0x00000000 },
+   { 0x00600001, 0x63220231, 0x000d0468, 0x00000000 },
+   { 0x00000409, 0x21003da5, 0x000000a0, 0x00020002 },
+   { 0x00000c01, 0x210401a5, 0x000000a2, 0x00000000 },
+   { 0x00000801, 0x21080061, 0x00000000, 0x0007001f },
+   { 0x00600001, 0x20200022, 0x008d0100, 0x00000000 },
+   { 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff },
+   { 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff },
+   { 0x00010220, 0x34001c00, 0x00001400, 0x00000062 },
+   { 0x00000006, 0x24000c20, 0x000000b8, 0xff00ff00 },
+   { 0x01000010, 0x20000c04, 0x00000400, 0xffffffff },
+   { 0x00010220, 0x34001c00, 0x00001400, 0x0000002a },
+   { 0x04600031, 0x27000cc1, 0x00000020, 0x02898007 },
+   { 0x00600001, 0x20200022, 0x008d0100, 0x00000000 },
+   { 0x00000001, 0x26000228, 0x000000ba, 0x00000000 },
+   { 0x00610001, 0x24400129, 0x000000b8, 0x00000000 },
+   { 0x00710001, 0x24400169, 0x00000000, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000440, 0x00000000 },
+   { 0x00710001, 0x21400021, 0x028d0700, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000442, 0x00000000 },
+   { 0x00710001, 0x21800021, 0x028d0720, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000444, 0x00000000 },
+   { 0x00710001, 0x21c00021, 0x028d0740, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000446, 0x00000000 },
+   { 0x00710001, 0x22000021, 0x028d0760, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000448, 0x00000000 },
+   { 0x00710001, 0x22400021, 0x028d0780, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x0000044a, 0x00000000 },
+   { 0x00710001, 0x22800021, 0x028d07a0, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x0000044c, 0x00000000 },
+   { 0x00710001, 0x22c00021, 0x028d07c0, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x0000044e, 0x00000000 },
+   { 0x00710001, 0x23000021, 0x028d07e0, 0x00000000 },
+   { 0x00000006, 0x24000c20, 0x000000b8, 0xff0000ff },
+   { 0x01000010, 0x20000c04, 0x00000400, 0xffffffff },
+   { 0x00010220, 0x34001c00, 0x00001400, 0x0000002c },
+   { 0x00000040, 0x20201ca6, 0x00000100, 0x00000020 },
+   { 0x04600031, 0x27000cc1, 0x00000020, 0x02898007 },
+   { 0x00600001, 0x20200022, 0x008d0100, 0x00000000 },
+   { 0x00000001, 0x26000228, 0x000000ba, 0x00000000 },
+   { 0x00610008, 0x24402d29, 0x000000b8, 0x00080008 },
+   { 0x00710001, 0x24400169, 0x00000000, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000440, 0x00000000 },
+   { 0x00710001, 0x21600021, 0x028d0700, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000442, 0x00000000 },
+   { 0x00710001, 0x21a00021, 0x028d0720, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000444, 0x00000000 },
+   { 0x00710001, 0x21e00021, 0x028d0740, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000446, 0x00000000 },
+   { 0x00710001, 0x22200021, 0x028d0760, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x00000448, 0x00000000 },
+   { 0x00710001, 0x22600021, 0x028d0780, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x0000044a, 0x00000000 },
+   { 0x00710001, 0x22a00021, 0x028d07a0, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x0000044c, 0x00000000 },
+   { 0x00710001, 0x22e00021, 0x028d07c0, 0x00000000 },
+   { 0x00000001, 0x26020128, 0x0000044e, 0x00000000 },
+   { 0x00710001, 0x23200021, 0x028d07e0, 0x00000000 },
+   { 0x00600001, 0x20400022, 0x008d0140, 0x00000000 },
+   { 0x00600001, 0x20600022, 0x008d0180, 0x00000000 },
+   { 0x00600001, 0x20800022, 0x008d01c0, 0x00000000 },
+   { 0x00600001, 0x20a00022, 0x008d0200, 0x00000000 },
+   { 0x00600001, 0x20c00022, 0x008d0240, 0x00000000 },
+   { 0x00600001, 0x20e00022, 0x008d0280, 0x00000000 },
+   { 0x00600001, 0x21000022, 0x008d02c0, 0x00000000 },
+   { 0x00600001, 0x21200022, 0x008d0300, 0x00000000 },
+   { 0x05600031, 0x20000cc4, 0x00000020, 0x12094007 },
+   { 0x00600001, 0x20200022, 0x008d0100, 0x00000000 },
+   { 0x00000040, 0x20201ca6, 0x00000100, 0x00000020 },
+   { 0x00600001, 0x20400022, 0x008d0160, 0x00000000 },
+   { 0x00600001, 0x20600022, 0x008d01a0, 0x00000000 },
+   { 0x00600001, 0x20800022, 0x008d01e0, 0x00000000 },
+   { 0x00600001, 0x20a00022, 0x008d0220, 0x00000000 },
+   { 0x00600001, 0x20c00022, 0x008d0260, 0x00000000 },
+   { 0x00600001, 0x20e00022, 0x008d02a0, 0x00000000 },
+   { 0x00600001, 0x21000022, 0x008d02e0, 0x00000000 },
+   { 0x00600001, 0x21200022, 0x008d0320, 0x00000000 },
+   { 0x05600031, 0x20000cc4, 0x00000020, 0x12094007 },
+   { 0x01000040, 0x20863dad, 0x00000086, 0xffffffff },
+   { 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 },
+   { 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 },
+   { 0x00010220, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00010220, 0x34001c00, 0x02001400, 0xfffffa9e },
+   { 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 },
+   { 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 },
+   { 0x00000220, 0x34001c00, 0x00001400, 0xfffffa98 },
+   { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 },
+   { 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 },
+   { 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 },
+   { 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 },