Index: trunk/src/VBox/Devices/Graphics/.scm-settings
===================================================================
--- trunk/src/VBox/Devices/Graphics/.scm-settings	(revision 95147)
+++ trunk/src/VBox/Devices/Graphics/.scm-settings	(revision 95148)
@@ -66,4 +66,5 @@
 --filter-out-dirs  "/vmsvga_include/."
 --filter-out-dirs  "/svgadump/."
+--filter-out-dirs  "/shaders/."
 
 /vmsvga_glext/*.h: --external-copyright --no-convert-tabs --no-strip-trailing-blanks
Index: trunk/src/VBox/Devices/Graphics/shaders/Makefile.kmk
===================================================================
--- trunk/src/VBox/Devices/Graphics/shaders/Makefile.kmk	(revision 95148)
+++ trunk/src/VBox/Devices/Graphics/shaders/Makefile.kmk	(revision 95148)
@@ -0,0 +1,40 @@
+# $Id$
+## @file
+# Makefile for D3D11 shader compilation.
+#
+
+#
+# Copyright (C) 2022 Oracle Corporation
+#
+# This file is part of VirtualBox Open Source Edition (OSE), as
+# available from http://www.virtualbox.org. This file is free software;
+# you can redistribute it and/or modify it under the terms of the GNU
+# General Public License (GPL) as published by the Free Software
+# Foundation, in version 2 as it comes in the "COPYING" file of the
+# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+#
+
+SUB_DEPTH = ../../../../..
+include $(KBUILD_PATH)/subheader.kmk
+
+OTHERS        += \
+	$(PATH_SUB_CURRENT)/d3d11blitter.hlsl.vs.h \
+	$(PATH_SUB_CURRENT)/d3d11blitter.hlsl.ps.h
+OTHERS_CLEAN  += \
+	$(PATH_SUB_CURRENT)/d3d11blitter.hlsl.vs.h \
+	$(PATH_SUB_CURRENT)/d3d11blitter.hlsl.ps.h
+
+VBOX_FXC ?= $(PATH_SDK_$(VBOX_WINPSDK)_BIN)/fxc.exe
+
+$(PATH_SUB_CURRENT)/d3d11blitter.hlsl.vs.h: \
+		$(PATH_SUB_CURRENT)/Makefile.kmk \
+		$(PATH_SUB_CURRENT)/d3d11blitter.hlsl
+	$(VBOX_FXC) /nologo /Fhd3d11blitter.hlsl.vs.h /Evs_blitter /Tvs_5_0 d3d11blitter.hlsl
+
+$(PATH_SUB_CURRENT)/d3d11blitter.hlsl.ps.h: \
+		$(PATH_SUB_CURRENT)/Makefile.kmk \
+		$(PATH_SUB_CURRENT)/d3d11blitter.hlsl
+	$(VBOX_FXC) /nologo /Fhd3d11blitter.hlsl.ps.h /Eps_blitter /Tps_5_0 d3d11blitter.hlsl
+
+include $(FILE_KBUILD_SUB_FOOTER)
Index: trunk/src/VBox/Devices/Graphics/shaders/d3d11blitter.hlsl
===================================================================
--- trunk/src/VBox/Devices/Graphics/shaders/d3d11blitter.hlsl	(revision 95148)
+++ trunk/src/VBox/Devices/Graphics/shaders/d3d11blitter.hlsl	(revision 95148)
@@ -0,0 +1,65 @@
+/* $Id$ */
+/*
+ * Blitter for dxgiBlt/SVGA_3D_CMD_DX_PRESENTBLT.
+ *
+ * fxc /nologo /Fhd3d11blitter.hlsl.vs.h /Evs_blitter /Tvs_5_0 d3d11blitter.hlsl
+ * fxc /nologo /Fhd3d11blitter.hlsl.ps.h /Eps_blitter /Tps_5_0 d3d11blitter.hlsl
+ */
+
+/*
+ * Copyright (C) 2022 Oracle Corporation
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ */
+
+Texture2D t;
+sampler s;
+
+cbuffer VSParameters
+{
+    float scaleX;
+    float scaleY;
+    float shiftX;
+    float shiftY;
+};
+
+struct VSInput
+{
+    uint VertexID   : SV_VertexID;
+};
+
+struct VSOutput
+{
+    float4 position : SV_POSITION;
+    float2 texcoord : TEXCOORD0;
+    float2 alpha    : TEXCOORD1;
+};
+
+VSOutput vs_blitter(VSInput input)
+{
+    VSOutput output;
+
+    float x = (input.VertexID & 1) ? 1.0f : -1.0f;
+    float y = (input.VertexID & 2) ? -1.0f : 1.0f;
+    x = x * scaleX + shiftX;
+    y = y * scaleY + shiftY;
+    output.position = float4(x, y, 0.0f, 1.0f);
+
+    output.texcoord.x = (input.VertexID & 1) ? 1.0f : 0.0f;
+    output.texcoord.y = (input.VertexID & 2) ? 1.0f : 0.0f;
+
+    output.alpha = float2(1.0f, 0.0f);
+
+    return output;
+}
+
+float4 ps_blitter(VSOutput input) : SV_TARGET
+{
+    return float4(t.Sample(s, input.texcoord).rgb, input.alpha.x);
+}
Index: trunk/src/VBox/Devices/Graphics/shaders/d3d11blitter.hlsl.ps.h
===================================================================
--- trunk/src/VBox/Devices/Graphics/shaders/d3d11blitter.hlsl.ps.h	(revision 95148)
+++ trunk/src/VBox/Devices/Graphics/shaders/d3d11blitter.hlsl.ps.h	(revision 95148)
@@ -0,0 +1,169 @@
+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 10.1
+//
+//
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim      HLSL Bind  Count
+// ------------------------------ ---------- ------- ----------- -------------- ------
+// s                                 sampler      NA          NA             s0      1 
+// t                                 texture  float4          2d             t0      1 
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float       
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+// TEXCOORD                 1     zw        1     NONE   float     z 
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
+//
+ps_5_0
+dcl_globalFlags refactoringAllowed
+dcl_sampler s0, mode_default
+dcl_resource_texture2d (float,float,float,float) t0
+dcl_input_ps linear v1.xy
+dcl_input_ps linear v1.z
+dcl_output o0.xyzw
+dcl_temps 1
+sample_indexable(texture2d)(float,float,float,float) r0.xyz, v1.xyxx, t0.xyzw, s0
+mov o0.xyz, r0.xyzx
+mov o0.w, v1.z
+ret 
+// Approximately 4 instruction slots used
+#endif
+
+const BYTE g_ps_blitter[] =
+{
+     68,  88,  66,  67,  63, 252, 
+    141, 106,  55,  56, 211,  92, 
+     55, 135,  46, 227, 111, 177, 
+    216, 163,   1,   0,   0,   0, 
+    216,   2,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    228,   0,   0,   0,  84,   1, 
+      0,   0, 136,   1,   0,   0, 
+     60,   2,   0,   0,  82,  68, 
+     69,  70, 168,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     60,   0,   0,   0,   0,   5, 
+    255, 255,   0,   1,   0,   0, 
+    128,   0,   0,   0,  82,  68, 
+     49,  49,  60,   0,   0,   0, 
+     24,   0,   0,   0,  32,   0, 
+      0,   0,  40,   0,   0,   0, 
+     36,   0,   0,   0,  12,   0, 
+      0,   0,   0,   0,   0,   0, 
+    124,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0, 126,   0,   0,   0, 
+      2,   0,   0,   0,   5,   0, 
+      0,   0,   4,   0,   0,   0, 
+    255, 255, 255, 255,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     12,   0,   0,   0, 115,   0, 
+    116,   0,  77, 105,  99, 114, 
+    111, 115, 111, 102, 116,  32, 
+     40,  82,  41,  32,  72,  76, 
+     83,  76,  32,  83, 104,  97, 
+    100, 101, 114,  32,  67, 111, 
+    109, 112, 105, 108, 101, 114, 
+     32,  49,  48,  46,  49,   0, 
+     73,  83,  71,  78, 104,   0, 
+      0,   0,   3,   0,   0,   0, 
+      8,   0,   0,   0,  80,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  92,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   3,   0,   0,  92,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+     12,   4,   0,   0,  83,  86, 
+     95,  80,  79,  83,  73,  84, 
+     73,  79,  78,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 171, 171, 171,  79,  83, 
+     71,  78,  44,   0,   0,   0, 
+      1,   0,   0,   0,   8,   0, 
+      0,   0,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  83,  86,  95,  84, 
+     65,  82,  71,  69,  84,   0, 
+    171, 171,  83,  72,  69,  88, 
+    172,   0,   0,   0,  80,   0, 
+      0,   0,  43,   0,   0,   0, 
+    106,   8,   0,   1,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      0,   0,   0,   0,  88,  24, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  85,  85, 
+      0,   0,  98,  16,   0,   3, 
+     50,  16,  16,   0,   1,   0, 
+      0,   0,  98,  16,   0,   3, 
+     66,  16,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      1,   0,   0,   0,  69,   0, 
+      0, 139, 194,   0,   0, 128, 
+     67,  85,  21,   0, 114,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,  16,  16,   0,   1,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,   0,  96, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5, 114,  32, 
+     16,   0,   0,   0,   0,   0, 
+     70,   2,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   5, 
+    130,  32,  16,   0,   0,   0, 
+      0,   0,  42,  16,  16,   0, 
+      1,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    148,   0,   0,   0,   4,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0
+};
Index: trunk/src/VBox/Devices/Graphics/shaders/d3d11blitter.hlsl.vs.h
===================================================================
--- trunk/src/VBox/Devices/Graphics/shaders/d3d11blitter.hlsl.vs.h	(revision 95148)
+++ trunk/src/VBox/Devices/Graphics/shaders/d3d11blitter.hlsl.vs.h	(revision 95148)
@@ -0,0 +1,249 @@
+#if 0
+//
+// Generated by Microsoft (R) HLSL Shader Compiler 10.1
+//
+//
+// Buffer Definitions: 
+//
+// cbuffer VSParameters
+// {
+//
+//   float scaleX;                      // Offset:    0 Size:     4
+//   float scaleY;                      // Offset:    4 Size:     4
+//   float shiftX;                      // Offset:    8 Size:     4
+//   float shiftY;                      // Offset:   12 Size:     4
+//
+// }
+//
+//
+// Resource Bindings:
+//
+// Name                                 Type  Format         Dim      HLSL Bind  Count
+// ------------------------------ ---------- ------- ----------- -------------- ------
+// VSParameters                      cbuffer      NA          NA            cb0      1 
+//
+//
+//
+// Input signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_VertexID              0   x           0   VERTID    uint   x   
+//
+//
+// Output signature:
+//
+// Name                 Index   Mask Register SysValue  Format   Used
+// -------------------- ----- ------ -------- -------- ------- ------
+// SV_POSITION              0   xyzw        0      POS   float   xyzw
+// TEXCOORD                 0   xy          1     NONE   float   xy  
+// TEXCOORD                 1     zw        1     NONE   float     zw
+//
+vs_5_0
+dcl_globalFlags refactoringAllowed
+dcl_constantbuffer CB0[1], immediateIndexed
+dcl_input_sgv v0.x, vertex_id
+dcl_output_siv o0.xyzw, position
+dcl_output o1.xy
+dcl_output o1.zw
+dcl_temps 1
+and r0.xyzw, v0.xxxx, l(1, 2, 1, 2)
+movc r0.xyzw, r0.xyzw, l(1.000000,-1.000000,1.000000,1.000000), l(-1.000000,1.000000,0,0)
+mad o0.xy, r0.xyxx, cb0[0].xyxx, cb0[0].zwzz
+mov o1.xy, r0.zwzz
+mov o0.zw, l(0,0,0,1.000000)
+mov o1.zw, l(0,0,1.000000,0)
+ret 
+// Approximately 7 instruction slots used
+#endif
+
+const BYTE g_vs_blitter[] =
+{
+     68,  88,  66,  67, 225,  37, 
+    228,   7,  29, 113, 112, 121, 
+     16, 192, 133, 165, 100,  74, 
+    183,  80,   1,   0,   0,   0, 
+     96,   4,   0,   0,   5,   0, 
+      0,   0,  52,   0,   0,   0, 
+    212,   1,   0,   0,   8,   2, 
+      0,   0, 120,   2,   0,   0, 
+    196,   3,   0,   0,  82,  68, 
+     69,  70, 152,   1,   0,   0, 
+      1,   0,   0,   0, 108,   0, 
+      0,   0,   1,   0,   0,   0, 
+     60,   0,   0,   0,   0,   5, 
+    254, 255,   0,   1,   0,   0, 
+    109,   1,   0,   0,  82,  68, 
+     49,  49,  60,   0,   0,   0, 
+     24,   0,   0,   0,  32,   0, 
+      0,   0,  40,   0,   0,   0, 
+     36,   0,   0,   0,  12,   0, 
+      0,   0,   0,   0,   0,   0, 
+     92,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,  86,  83,  80,  97, 
+    114,  97, 109, 101, 116, 101, 
+    114, 115,   0, 171, 171, 171, 
+     92,   0,   0,   0,   4,   0, 
+      0,   0, 132,   0,   0,   0, 
+     16,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     36,   1,   0,   0,   0,   0, 
+      0,   0,   4,   0,   0,   0, 
+      2,   0,   0,   0,  52,   1, 
+      0,   0,   0,   0,   0,   0, 
+    255, 255, 255, 255,   0,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,  88,   1, 
+      0,   0,   4,   0,   0,   0, 
+      4,   0,   0,   0,   2,   0, 
+      0,   0,  52,   1,   0,   0, 
+      0,   0,   0,   0, 255, 255, 
+    255, 255,   0,   0,   0,   0, 
+    255, 255, 255, 255,   0,   0, 
+      0,   0,  95,   1,   0,   0, 
+      8,   0,   0,   0,   4,   0, 
+      0,   0,   2,   0,   0,   0, 
+     52,   1,   0,   0,   0,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0, 255, 255, 
+    255, 255,   0,   0,   0,   0, 
+    102,   1,   0,   0,  12,   0, 
+      0,   0,   4,   0,   0,   0, 
+      2,   0,   0,   0,  52,   1, 
+      0,   0,   0,   0,   0,   0, 
+    255, 255, 255, 255,   0,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0, 115,  99, 
+     97, 108, 101,  88,   0, 102, 
+    108, 111,  97, 116,   0, 171, 
+    171, 171,   0,   0,   3,   0, 
+      1,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  43,   1, 
+      0,   0, 115,  99,  97, 108, 
+    101,  89,   0, 115, 104, 105, 
+    102, 116,  88,   0, 115, 104, 
+    105, 102, 116,  89,   0,  77, 
+    105,  99, 114, 111, 115, 111, 
+    102, 116,  32,  40,  82,  41, 
+     32,  72,  76,  83,  76,  32, 
+     83, 104,  97, 100, 101, 114, 
+     32,  67, 111, 109, 112, 105, 
+    108, 101, 114,  32,  49,  48, 
+     46,  49,   0, 171, 171, 171, 
+     73,  83,  71,  78,  44,   0, 
+      0,   0,   1,   0,   0,   0, 
+      8,   0,   0,   0,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      6,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   1,   0,   0,  83,  86, 
+     95,  86, 101, 114, 116, 101, 
+    120,  73,  68,   0,  79,  83, 
+     71,  78, 104,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0,  80,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  92,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   3,  12, 
+      0,   0,  92,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,  12,   3, 
+      0,   0,  83,  86,  95,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   0, 171, 
+    171, 171,  83,  72,  69,  88, 
+     68,   1,   0,   0,  80,   0, 
+      1,   0,  81,   0,   0,   0, 
+    106,   8,   0,   1,  89,   0, 
+      0,   4,  70, 142,  32,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  96,   0,   0,   4, 
+     18,  16,  16,   0,   0,   0, 
+      0,   0,   6,   0,   0,   0, 
+    103,   0,   0,   4, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3,  50,  32,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3, 194,  32,  16,   0, 
+      1,   0,   0,   0, 104,   0, 
+      0,   2,   1,   0,   0,   0, 
+      1,   0,   0,  10, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+      6,  16,  16,   0,   0,   0, 
+      0,   0,   2,  64,   0,   0, 
+      1,   0,   0,   0,   2,   0, 
+      0,   0,   1,   0,   0,   0, 
+      2,   0,   0,   0,  55,   0, 
+      0,  15, 242,   0,  16,   0, 
+      0,   0,   0,   0,  70,  14, 
+     16,   0,   0,   0,   0,   0, 
+      2,  64,   0,   0,   0,   0, 
+    128,  63,   0,   0, 128, 191, 
+      0,   0, 128,  63,   0,   0, 
+    128,  63,   2,  64,   0,   0, 
+      0,   0, 128, 191,   0,   0, 
+    128,  63,   0,   0,   0,   0, 
+      0,   0,   0,   0,  50,   0, 
+      0,  11,  50,  32,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+    230, 138,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5,  50,  32, 
+     16,   0,   1,   0,   0,   0, 
+    230,  10,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   8, 
+    194,  32,  16,   0,   0,   0, 
+      0,   0,   2,  64,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 128,  63,  54,   0, 
+      0,   8, 194,  32,  16,   0, 
+      1,   0,   0,   0,   2,  64, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+    128,  63,   0,   0,   0,   0, 
+     62,   0,   0,   1,  83,  84, 
+     65,  84, 148,   0,   0,   0, 
+      7,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0
+};
