[D3D12] Decompress textures if their size is not 4x4-aligned

This commit is contained in:
Triang3l 2018-09-22 19:03:25 +03:00
parent bb24521c2b
commit 133604f249
19 changed files with 5728 additions and 510 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,524 @@
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//
// Buffer Definitions:
//
// cbuffer XeTextureCopyConstants
// {
//
// uint xe_texture_copy_guest_base; // Offset: 0 Size: 4
// uint xe_texture_copy_guest_pitch; // Offset: 4 Size: 4
// uint xe_texture_copy_host_base; // Offset: 8 Size: 4
// uint xe_texture_copy_host_pitch; // Offset: 12 Size: 4
// uint3 xe_texture_copy_size_texels; // Offset: 16 Size: 12
// bool xe_texture_copy_is_3d; // Offset: 28 Size: 4
// uint3 xe_texture_copy_size_blocks; // Offset: 32 Size: 12
// uint xe_texture_copy_endianness; // Offset: 44 Size: 4
// uint3 xe_texture_copy_guest_mip_offset;// Offset: 48 Size: 12
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim ID HLSL Bind Count
// ------------------------------ ---------- ------- ----------- ------- -------------- ------
// xe_texture_copy_source texture byte r/o T0 t0 1
// xe_texture_copy_dest UAV byte r/w U0 u0 1
// XeTextureCopyConstants cbuffer NA NA CB0 cb0 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Input
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
cs_5_1
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB0[0:0][4], immediateIndexed, space=0
dcl_resource_raw T0[0:0], space=0
dcl_uav_raw U0[0:0], space=0
dcl_input vThreadID.xyz
dcl_temps 28
dcl_thread_group 8, 32, 1
ishl r0.x, vThreadID.x, l(2)
mov r0.yz, vThreadID.yyzy
uge r1.xyz, r0.xyzx, CB0[0][2].xyzx
or r0.w, r1.y, r1.x
or r0.w, r1.z, r0.w
if_nz r0.w
ret
endif
iadd r1.xyz, r0.xyzx, CB0[0][3].xyzx
ieq r0.z, CB0[0][0].y, l(-1)
if_nz r0.z
if_nz CB0[0][1].w
iadd r2.xyzw, r1.xxxx, l(0, 1, 2, 3)
iadd r0.zw, CB0[0][2].yyyx, l(0, 0, 31, 31)
ushr r3.xyz, r1.zyyz, l(2, 4, 3, 0)
ushr r0.zw, r0.zzzw, l(0, 0, 4, 5)
and r0.z, r0.z, l(0x0ffffffe)
imad r0.z, r3.x, r0.z, r3.y
iadd r1.w, r3.z, r3.x
bfi r3.x, l(1), l(1), r1.w, l(0)
ushr r4.xyzw, r2.xyzw, l(3, 3, 3, 3)
iadd r3.xyzw, r3.xxxx, r4.xyzw
bfi r3.xyzw, l(2, 2, 2, 2), l(1, 1, 1, 1), r3.xyzw, l(0, 0, 0, 0)
bfi r3.xyzw, l(1, 1, 1, 1), l(0, 0, 0, 0), r1.wwww, r3.xyzw
ishl r1.w, r1.y, l(12)
and r1.w, r1.w, l(0x00006000)
bfi r4.xyzw, l(3, 3, 3, 3), l(10, 10, 10, 10), r2.xyzw, r1.wwww
ushr r4.xyzw, r4.xyzw, l(6, 6, 6, 6)
ushr r2.xyzw, r2.xyzw, l(5, 5, 5, 5)
imad r2.xyzw, r0.zzzz, r0.wwww, r2.xyzw
bfi r5.xyzw, l(18, 18, 18, 18), l(12, 12, 12, 12), r2.xyzw, l(0, 0, 0, 0)
imad r5.xyzw, r4.xyzw, l(2, 2, 2, 2), r5.xyzw
bfi r5.xyzw, l(2, 2, 2, 2), l(10, 10, 10, 10), r1.zzzz, r5.xyzw
bfi r0.z, l(1), l(4), r1.y, l(0)
iadd r6.xyzw, r5.xyzw, r0.zzzz
ubfe r5.xyzw, l(3, 3, 3, 3), l(6, 6, 6, 6), r5.xyzw
and r7.xyzw, r3.xyzw, l(6, 6, 6, 6)
bfi r3.xyzw, l(1, 1, 1, 1), l(8, 8, 8, 8), r3.xyzw, l(0, 0, 0, 0)
imad r3.xyzw, r5.xyzw, l(32, 32, 32, 32), r3.xyzw
imad r3.xyzw, r7.xyzw, l(4, 4, 4, 4), r3.xyzw
bfi r2.xyzw, l(18, 18, 18, 18), l(15, 15, 15, 15), r2.xyzw, l(0, 0, 0, 0)
imad r2.xyzw, r4.xyzw, l(16, 16, 16, 16), r2.xyzw
bfi r2.xyzw, l(2, 2, 2, 2), l(13, 13, 13, 13), r1.zzzz, r2.xyzw
imad r2.xyzw, r0.zzzz, l(8, 8, 8, 8), r2.xyzw
bfi r2.xyzw, l(9, 9, 9, 9), l(3, 3, 3, 3), r3.xyzw, r2.xyzw
bfi r2.xyzw, l(6, 6, 6, 6), l(0, 0, 0, 0), r6.xyzw, r2.xyzw
else
iadd r3.xyzw, r1.xxxx, l(0, 1, 2, 3)
ushr r4.xyzw, r3.xyzw, l(5, 5, 5, 5)
ushr r0.zw, r1.yyyy, l(0, 0, 5, 2)
iadd r1.w, CB0[0][2].x, l(31)
ushr r1.w, r1.w, l(5)
imad r4.xyzw, r0.zzzz, r1.wwww, r4.xyzw
ishl r0.z, r1.y, l(7)
and r5.xy, r0.zzzz, l(1792, 2048, 0, 0)
bfi r6.xyzw, l(3, 3, 3, 3), l(5, 5, 5, 5), r3.xyzw, r5.xxxx
bfi r6.xyzw, l(21, 21, 21, 21), l(11, 11, 11, 11), r4.xyzw, r6.xyzw
bfi r0.z, l(1), l(4), r1.y, l(0)
iadd r6.xyzw, r6.xyzw, r0.zzzz
ishl r5.xz, r5.xxxx, l(3, 0, 2, 0)
bfi r7.xyzw, l(3, 3, 3, 3), l(8, 8, 8, 8), r3.xyzw, r5.xxxx
bfi r7.xyzw, l(21, 21, 21, 21), l(14, 14, 14, 14), r4.xyzw, r7.xyzw
imad r7.xyzw, r0.zzzz, l(8, 8, 8, 8), r7.xyzw
bfi r7.xyzw, l(12, 12, 12, 12), l(0, 0, 0, 0), r5.yyyy, r7.xyzw
bfi r5.xyzw, l(3, 3, 3, 3), l(7, 7, 7, 7), r3.xyzw, r5.zzzz
bfi r4.xyzw, l(21, 21, 21, 21), l(13, 13, 13, 13), r4.xyzw, r5.xyzw
imad r4.xyzw, r0.zzzz, l(4, 4, 4, 4), r4.xyzw
and r4.xyzw, r4.xyzw, l(1792, 1792, 1792, 1792)
iadd r4.xyzw, r7.xyzw, r4.xyzw
ushr r3.xyzw, r3.xyzw, l(3, 3, 3, 3)
and r0.z, r0.w, l(2)
iadd r3.xyzw, r0.zzzz, r3.xyzw
bfi r3.xyzw, l(2, 2, 2, 2), l(6, 6, 6, 6), r3.xyzw, l(0, 0, 0, 0)
iadd r3.xyzw, r4.xyzw, r3.xyzw
bfi r2.xyzw, l(6, 6, 6, 6), l(0, 0, 0, 0), r6.xyzw, r3.xyzw
endif
else
ishl r0.z, r1.x, l(4)
iadd r0.w, CB0[0][2].y, l(31)
and r0.w, r0.w, l(-32)
imad r0.w, r1.z, r0.w, r1.y
imad r0.z, r0.w, CB0[0][0].y, r0.z
iadd r2.xyzw, r0.zzzz, l(0, 16, 32, 48)
endif
iadd r1.xyzw, r2.xyzw, CB0[0][0].xxxx
ld_raw r2.xyzw, r1.x, T0[0].wxyz
ld_raw r3.xyzw, r1.y, T0[0].xyzw
ld_raw r4.xyzw, r1.z, T0[0].xyzw
ld_raw r1.xyzw, r1.w, T0[0].xyzw
ushr r0.z, CB0[0][2].w, l(1)
xor r0.z, r0.z, CB0[0][2].w
and r0.z, r0.z, l(1)
if_nz r0.z
ishl r5.xyzw, r2.yzwx, l(8, 8, 8, 8)
and r5.xyzw, r5.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
ushr r6.xyzw, r2.yzwx, l(8, 8, 8, 8)
and r6.xyzw, r6.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
iadd r2.xyzw, r5.wxyz, r6.wxyz
endif
and r0.w, CB0[0][2].w, l(2)
if_nz r0.w
ushr r5.xyzw, r2.yzwx, l(16, 16, 16, 16)
bfi r2.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r2.xyzw, r5.wxyz
mov r5.x, r2.y
mov r6.x, r2.z
mov r7.x, r2.w
else
mov r5.x, r2.y
mov r6.x, r2.z
mov r7.x, r2.w
endif
if_nz r0.z
ishl r8.xyzw, r3.xyzw, l(8, 8, 8, 8)
and r8.xyzw, r8.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
ushr r9.xyzw, r3.xyzw, l(8, 8, 8, 8)
and r9.xyzw, r9.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
iadd r3.xyzw, r8.xyzw, r9.xyzw
endif
if_nz r0.w
ushr r8.xyzw, r3.xyzw, l(16, 16, 16, 16)
bfi r8.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r3.xyzw, r8.xyzw
mov r5.y, r8.x
mov r6.y, r8.y
mov r7.y, r8.z
mov r2.y, r8.w
else
mov r5.y, r3.x
mov r6.y, r3.y
mov r7.y, r3.z
mov r2.y, r3.w
endif
if_nz r0.z
ishl r3.xyzw, r4.xyzw, l(8, 8, 8, 8)
and r3.xyzw, r3.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
ushr r8.xyzw, r4.xyzw, l(8, 8, 8, 8)
and r8.xyzw, r8.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
iadd r4.xyzw, r3.xyzw, r8.xyzw
endif
if_nz r0.w
ushr r3.xyzw, r4.xyzw, l(16, 16, 16, 16)
bfi r3.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r4.xyzw, r3.xyzw
mov r5.z, r3.x
mov r6.z, r3.y
mov r7.z, r3.z
mov r2.z, r3.w
else
mov r5.z, r4.x
mov r6.z, r4.y
mov r7.z, r4.z
mov r2.z, r4.w
endif
if_nz r0.z
ishl r3.xyzw, r1.xyzw, l(8, 8, 8, 8)
and r3.xyzw, r3.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
ushr r4.xyzw, r1.xyzw, l(8, 8, 8, 8)
and r4.xyzw, r4.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
iadd r1.xyzw, r3.xyzw, r4.xyzw
endif
if_nz r0.w
ushr r3.xyzw, r1.xyzw, l(16, 16, 16, 16)
bfi r3.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r1.xyzw, r3.xyzw
mov r5.w, r3.x
mov r6.w, r3.y
mov r7.w, r3.z
mov r2.w, r3.w
else
mov r5.w, r1.x
mov r6.w, r1.y
mov r7.w, r1.z
mov r2.w, r1.w
endif
ushr r1.xyzw, r5.xyzw, l(16, 16, 16, 16)
bfi r3.xyzw, l(8, 8, 8, 8), l(16, 16, 16, 16), r6.xyzw, l(0, 0, 0, 0)
iadd r1.xyzw, r1.xyzw, r3.xyzw
ushr r3.xyzw, r6.xyzw, l(8, 8, 8, 8)
and r4.xyzw, r1.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
ushr r6.xyzw, r1.xyzw, l(1, 1, 1, 1)
and r8.xyzw, r6.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
or r9.xyzw, r1.xyzw, r6.xyzw
ushr r10.xyzw, r1.xyzw, l(2, 2, 2, 2)
and r11.xyzw, r10.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
or r9.xyzw, r9.xyzw, r10.xyzw
and r9.xyzw, r9.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
xor r9.xyzw, r9.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
not r8.xyzw, r8.xyzw
and r8.xyzw, r4.xyzw, r8.xyzw
not r10.xyzw, r11.xyzw
and r8.xyzw, r8.xyzw, r10.xyzw
or r9.xyzw, r1.xyzw, r9.xyzw
iadd r9.xyzw, r9.xyzw, l(0xffdb6db7, 0xffdb6db7, 0xffdb6db7, 0xffdb6db7)
or r9.xyzw, r8.xyzw, r9.xyzw
ishl r10.xyzw, r8.xyzw, l(1, 1, 1, 1)
or r10.xyzw, r9.xyzw, r10.xyzw
ishl r8.xyzw, r8.xyzw, l(2, 2, 2, 2)
or r10.xyzw, r8.xyzw, r10.xyzw
and r11.xyzw, r3.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
ushr r12.xyzw, r3.xyzw, l(1, 1, 1, 1)
and r13.xyzw, r12.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
or r14.xyzw, r3.xyzw, r12.xyzw
ushr r15.xyzw, r3.xyzw, l(2, 2, 2, 2)
and r16.xyzw, r15.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
or r14.xyzw, r14.xyzw, r15.xyzw
and r14.xyzw, r14.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
xor r14.xyzw, r14.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
not r13.xyzw, r13.xyzw
and r13.xyzw, r11.xyzw, r13.xyzw
not r15.xyzw, r16.xyzw
and r13.xyzw, r13.xyzw, r15.xyzw
or r14.xyzw, r3.xyzw, r14.xyzw
iadd r14.xyzw, r14.xyzw, l(0xffdb6db7, 0xffdb6db7, 0xffdb6db7, 0xffdb6db7)
or r14.xyzw, r13.xyzw, r14.xyzw
ishl r15.xyzw, r13.xyzw, l(1, 1, 1, 1)
or r15.xyzw, r14.xyzw, r15.xyzw
ishl r13.xyzw, r13.xyzw, l(2, 2, 2, 2)
or r15.xyzw, r13.xyzw, r15.xyzw
and r1.xyzw, r1.xyzw, r6.xyzw
and r1.xyzw, r1.xyzw, l(0x00492492, 0x00492492, 0x00492492, 0x00492492)
ishl r6.xyzw, r1.xyzw, l(1, 1, 1, 1)
ushr r16.xyzw, r1.xyzw, l(1, 1, 1, 1)
iadd r1.xyzw, r1.xyzw, r6.xyzw
iadd r1.xyzw, r1.xyzw, r16.xyzw
iadd r4.xyzw, r4.xyzw, l(0x00db6db6, 0x00db6db6, 0x00db6db6, 0x00db6db6)
and r4.xyzw, r1.xyzw, r4.xyzw
or r6.xyzw, r8.xyzw, r9.xyzw
not r1.xyzw, r1.xyzw
and r1.xyzw, r1.xyzw, r6.xyzw
or r1.xyzw, r4.xyzw, r1.xyzw
and r3.xyzw, r3.xyzw, r12.xyzw
and r3.xyzw, r3.xyzw, l(0x00492492, 0x00492492, 0x00492492, 0x00492492)
ishl r4.xyzw, r3.xyzw, l(1, 1, 1, 1)
ushr r6.xyzw, r3.xyzw, l(1, 1, 1, 1)
iadd r3.xyzw, r3.xyzw, r4.xyzw
iadd r3.xyzw, r3.xyzw, r6.xyzw
iadd r4.xyzw, r11.xyzw, l(0x00db6db6, 0x00db6db6, 0x00db6db6, 0x00db6db6)
and r4.xyzw, r3.xyzw, r4.xyzw
or r6.xyzw, r13.xyzw, r14.xyzw
not r3.xyzw, r3.xyzw
and r3.xyzw, r3.xyzw, r6.xyzw
or r3.xyzw, r4.xyzw, r3.xyzw
ushr r4.xyzw, r7.xyzw, l(16, 16, 16, 16)
bfi r6.xyzw, l(8, 8, 8, 8), l(16, 16, 16, 16), r2.xyzw, l(0, 0, 0, 0)
iadd r4.xyzw, r4.xyzw, r6.xyzw
ushr r2.xyzw, r2.xyzw, l(8, 8, 8, 8)
and r6.xyzw, r4.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
ushr r8.xyzw, r4.xyzw, l(1, 1, 1, 1)
and r9.xyzw, r8.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
or r11.xyzw, r4.xyzw, r8.xyzw
ushr r12.xyzw, r4.xyzw, l(2, 2, 2, 2)
and r13.xyzw, r12.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
or r11.xyzw, r11.xyzw, r12.xyzw
and r11.xyzw, r11.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
xor r11.xyzw, r11.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
not r9.xyzw, r9.xyzw
and r9.xyzw, r6.xyzw, r9.xyzw
not r12.xyzw, r13.xyzw
and r9.xyzw, r9.xyzw, r12.xyzw
or r11.xyzw, r4.xyzw, r11.xyzw
iadd r11.xyzw, r11.xyzw, l(0xffdb6db7, 0xffdb6db7, 0xffdb6db7, 0xffdb6db7)
or r11.xyzw, r9.xyzw, r11.xyzw
ishl r12.xyzw, r9.xyzw, l(1, 1, 1, 1)
or r12.xyzw, r11.xyzw, r12.xyzw
ishl r9.xyzw, r9.xyzw, l(2, 2, 2, 2)
or r12.xyzw, r9.xyzw, r12.xyzw
and r13.xyzw, r2.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
ushr r14.xyzw, r2.xyzw, l(1, 1, 1, 1)
and r16.xyzw, r14.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
or r17.xyzw, r2.xyzw, r14.xyzw
ushr r18.xyzw, r2.xyzw, l(2, 2, 2, 2)
and r19.xyzw, r18.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
or r17.xyzw, r17.xyzw, r18.xyzw
and r17.xyzw, r17.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
xor r17.xyzw, r17.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
not r16.xyzw, r16.xyzw
and r16.xyzw, r13.xyzw, r16.xyzw
not r18.xyzw, r19.xyzw
and r16.xyzw, r16.xyzw, r18.xyzw
or r17.xyzw, r2.xyzw, r17.xyzw
iadd r17.xyzw, r17.xyzw, l(0xffdb6db7, 0xffdb6db7, 0xffdb6db7, 0xffdb6db7)
or r17.xyzw, r16.xyzw, r17.xyzw
ishl r18.xyzw, r16.xyzw, l(1, 1, 1, 1)
or r18.xyzw, r17.xyzw, r18.xyzw
ishl r16.xyzw, r16.xyzw, l(2, 2, 2, 2)
or r18.xyzw, r16.xyzw, r18.xyzw
and r4.xyzw, r4.xyzw, r8.xyzw
and r4.xyzw, r4.xyzw, l(0x00492492, 0x00492492, 0x00492492, 0x00492492)
ishl r8.xyzw, r4.xyzw, l(1, 1, 1, 1)
ushr r19.xyzw, r4.xyzw, l(1, 1, 1, 1)
iadd r4.xyzw, r4.xyzw, r8.xyzw
iadd r4.xyzw, r4.xyzw, r19.xyzw
iadd r6.xyzw, r6.xyzw, l(0x00db6db6, 0x00db6db6, 0x00db6db6, 0x00db6db6)
and r6.xyzw, r4.xyzw, r6.xyzw
or r8.xyzw, r9.xyzw, r11.xyzw
not r4.xyzw, r4.xyzw
and r4.xyzw, r4.xyzw, r8.xyzw
or r4.xyzw, r6.xyzw, r4.xyzw
and r2.xyzw, r2.xyzw, r14.xyzw
and r2.xyzw, r2.xyzw, l(0x00492492, 0x00492492, 0x00492492, 0x00492492)
ishl r6.xyzw, r2.xyzw, l(1, 1, 1, 1)
ushr r8.xyzw, r2.xyzw, l(1, 1, 1, 1)
iadd r2.xyzw, r2.xyzw, r6.xyzw
iadd r2.xyzw, r2.xyzw, r8.xyzw
iadd r6.xyzw, r13.xyzw, l(0x00db6db6, 0x00db6db6, 0x00db6db6, 0x00db6db6)
and r6.xyzw, r2.xyzw, r6.xyzw
or r8.xyzw, r16.xyzw, r17.xyzw
not r2.xyzw, r2.xyzw
and r2.xyzw, r2.xyzw, r8.xyzw
or r2.xyzw, r6.xyzw, r2.xyzw
and r6.xyzw, r5.xyzw, l(255, 255, 255, 255)
ubfe r5.xyzw, l(8, 8, 8, 8), l(8, 8, 8, 8), r5.xyzw
and r8.xyzw, r7.xyzw, l(255, 255, 255, 255)
ubfe r7.xyzw, l(8, 8, 8, 8), l(8, 8, 8, 8), r7.xyzw
ishl r0.xy, r0.xyxx, l(2, 2, 0, 0)
ishl r0.x, r0.x, l(1)
imad r0.z, vThreadID.z, CB0[0][1].y, r0.y
imad r0.x, r0.z, CB0[0][0].w, r0.x
iadd r0.x, r0.x, CB0[0][0].z
uge r9.xyzw, r5.xyzw, r6.xyzw
movc r11.xyzw, r9.xyzw, l(5,5,5,5), l(7,7,7,7)
movc r13.xyzw, r9.xyzw, l(2925,2925,2925,2925), l(4095,4095,4095,4095)
uge r14.xyzw, r7.xyzw, r8.xyzw
movc r16.xyzw, r14.xyzw, l(5,5,5,5), l(7,7,7,7)
movc r17.xyzw, r14.xyzw, l(2925,2925,2925,2925), l(4095,4095,4095,4095)
mov r0.z, CB0[0][1].y
mov r0.w, r0.y
mov r19.x, r0.x
mov r19.y, l(0)
loop
uge r19.z, r19.y, l(4)
breakc_nz r19.z
ult r19.z, r19.y, l(2)
movc r20.xyzw, r19.zzzz, r10.xyzw, r15.xyzw
and r19.w, r19.y, l(1)
imul null, r19.w, r19.w, l(12)
ushr r20.xyzw, r20.xyzw, r19.wwww
movc r21.xyzw, r19.zzzz, r1.xyzw, r3.xyzw
ushr r21.xyzw, r21.xyzw, r19.wwww
movc r20.xyzw, r9.xyzw, r21.xyzw, r20.xyzw
ushr r22.xyzw, r21.xyzw, l(1, 1, 1, 1)
and r22.xyzw, r21.xyzw, r22.xyzw
and r22.xyzw, r9.xyzw, r22.xyzw
and r22.xyzw, r22.xyzw, l(1170, 1170, 1170, 1170)
ishl r23.xyzw, r22.xyzw, l(1, 1, 1, 1)
ushr r24.xyzw, r22.xyzw, l(1, 1, 1, 1)
iadd r22.xyzw, r22.xyzw, r23.xyzw
iadd r22.xyzw, r22.xyzw, r24.xyzw
not r23.xyzw, r22.xyzw
and r20.xyzw, r20.xyzw, r23.xyzw
iadd r24.xyzw, r13.xyzw, -r20.xyzw
and r23.xyzw, r23.xyzw, r24.xyzw
and r24.xyzw, r23.xyzw, l(7, 7, 7, 7)
and r25.xyzw, r20.xyzw, l(7, 7, 7, 7)
imul null, r25.xyzw, r5.xyzw, r25.xyzw
imad r24.xyzw, r6.xyzw, r24.xyzw, r25.xyzw
udiv r24.xyzw, null, r24.xyzw, r11.xyzw
ubfe r25.xyzw, l(3, 3, 3, 3), l(3, 3, 3, 3), r23.xyzw
ubfe r26.xyzw, l(3, 3, 3, 3), l(3, 3, 3, 3), r20.xyzw
imul null, r26.xyzw, r5.xyzw, r26.xyzw
imad r25.xyzw, r6.xyzw, r25.xyzw, r26.xyzw
udiv r25.xyzw, null, r25.xyzw, r11.xyzw
ishl r25.xyzw, r25.xyzw, l(8, 8, 8, 8)
or r24.xyzw, r24.xyzw, r25.xyzw
ubfe r25.xyzw, l(3, 3, 3, 3), l(6, 6, 6, 6), r23.xyzw
ubfe r26.xyzw, l(3, 3, 3, 3), l(6, 6, 6, 6), r20.xyzw
imul null, r26.xyzw, r5.xyzw, r26.xyzw
imad r25.xyzw, r6.xyzw, r25.xyzw, r26.xyzw
udiv r25.xyzw, null, r25.xyzw, r11.xyzw
ishl r25.xyzw, r25.xyzw, l(16, 16, 16, 16)
or r24.xyzw, r24.xyzw, r25.xyzw
ubfe r23.xyzw, l(3, 3, 3, 3), l(9, 9, 9, 9), r23.xyzw
ubfe r20.xyzw, l(3, 3, 3, 3), l(9, 9, 9, 9), r20.xyzw
imul null, r20.xyzw, r5.xyzw, r20.xyzw
imad r20.xyzw, r6.xyzw, r23.xyzw, r20.xyzw
udiv r20.xyzw, null, r20.xyzw, r11.xyzw
ishl r20.xyzw, r20.xyzw, l(24, 24, 24, 24)
or r20.xyzw, r20.xyzw, r24.xyzw
and r21.xyzw, r21.xyzw, r22.xyzw
ishl r22.xyzw, r21.xyzw, l(5, 5, 5, 5)
and r22.xyzw, r22.xyzw, l(256, 256, 256, 256)
bfi r22.xyzw, l(1, 1, 1, 1), l(0, 0, 0, 0), r21.xyzw, r22.xyzw
ishl r23.xyzw, r21.xyzw, l(10, 10, 10, 10)
and r23.xyzw, r23.xyzw, l(0x00010000, 0x00010000, 0x00010000, 0x00010000)
iadd r22.xyzw, r22.xyzw, r23.xyzw
ishl r21.xyzw, r21.xyzw, l(15, 15, 15, 15)
and r21.xyzw, r21.xyzw, l(0x01000000, 0x01000000, 0x01000000, 0x01000000)
iadd r21.xyzw, r21.xyzw, r22.xyzw
imad r20.xyzw, r21.xyzw, l(255, 255, 255, 255), r20.xyzw
movc r21.xyzw, r19.zzzz, r12.xyzw, r18.xyzw
ushr r21.xyzw, r21.xyzw, r19.wwww
movc r22.xyzw, r19.zzzz, r4.xyzw, r2.xyzw
ushr r22.xyzw, r22.xyzw, r19.wwww
movc r21.xyzw, r14.xyzw, r22.xyzw, r21.xyzw
ushr r23.xyzw, r22.xyzw, l(1, 1, 1, 1)
and r23.xyzw, r22.xyzw, r23.xyzw
and r23.xyzw, r14.xyzw, r23.xyzw
and r23.xyzw, r23.xyzw, l(1170, 1170, 1170, 1170)
ishl r24.xyzw, r23.xyzw, l(1, 1, 1, 1)
ushr r25.xyzw, r23.xyzw, l(1, 1, 1, 1)
iadd r23.xyzw, r23.xyzw, r24.xyzw
iadd r23.xyzw, r23.xyzw, r25.xyzw
not r24.xyzw, r23.xyzw
and r21.xyzw, r21.xyzw, r24.xyzw
iadd r25.xyzw, r17.xyzw, -r21.xyzw
and r24.xyzw, r24.xyzw, r25.xyzw
and r25.xyzw, r24.xyzw, l(7, 7, 7, 7)
and r26.xyzw, r21.xyzw, l(7, 7, 7, 7)
imul null, r26.xyzw, r7.xyzw, r26.xyzw
imad r25.xyzw, r8.xyzw, r25.xyzw, r26.xyzw
udiv r25.xyzw, null, r25.xyzw, r16.xyzw
ubfe r26.xyzw, l(3, 3, 3, 3), l(3, 3, 3, 3), r24.xyzw
ubfe r27.xyzw, l(3, 3, 3, 3), l(3, 3, 3, 3), r21.xyzw
imul null, r27.xyzw, r7.xyzw, r27.xyzw
imad r26.xyzw, r8.xyzw, r26.xyzw, r27.xyzw
udiv r26.xyzw, null, r26.xyzw, r16.xyzw
ishl r26.xyzw, r26.xyzw, l(8, 8, 8, 8)
or r25.xyzw, r25.xyzw, r26.xyzw
ubfe r26.xyzw, l(3, 3, 3, 3), l(6, 6, 6, 6), r24.xyzw
ubfe r27.xyzw, l(3, 3, 3, 3), l(6, 6, 6, 6), r21.xyzw
imul null, r27.xyzw, r7.xyzw, r27.xyzw
imad r26.xyzw, r8.xyzw, r26.xyzw, r27.xyzw
udiv r26.xyzw, null, r26.xyzw, r16.xyzw
ishl r26.xyzw, r26.xyzw, l(16, 16, 16, 16)
or r25.xyzw, r25.xyzw, r26.xyzw
ubfe r24.xyzw, l(3, 3, 3, 3), l(9, 9, 9, 9), r24.xyzw
ubfe r21.xyzw, l(3, 3, 3, 3), l(9, 9, 9, 9), r21.xyzw
imul null, r21.xyzw, r7.xyzw, r21.xyzw
imad r21.xyzw, r8.xyzw, r24.xyzw, r21.xyzw
udiv r21.xyzw, null, r21.xyzw, r16.xyzw
ishl r21.xyzw, r21.xyzw, l(24, 24, 24, 24)
or r21.xyzw, r21.xyzw, r25.xyzw
and r22.xyzw, r22.xyzw, r23.xyzw
ishl r23.xyzw, r22.xyzw, l(5, 5, 5, 5)
and r23.xyzw, r23.xyzw, l(256, 256, 256, 256)
bfi r23.xyzw, l(1, 1, 1, 1), l(0, 0, 0, 0), r22.xyzw, r23.xyzw
ishl r24.xyzw, r22.xyzw, l(10, 10, 10, 10)
and r24.xyzw, r24.xyzw, l(0x00010000, 0x00010000, 0x00010000, 0x00010000)
iadd r23.xyzw, r23.xyzw, r24.xyzw
ishl r22.xyzw, r22.xyzw, l(15, 15, 15, 15)
and r22.xyzw, r22.xyzw, l(0x01000000, 0x01000000, 0x01000000, 0x01000000)
iadd r22.xyzw, r22.xyzw, r23.xyzw
imad r21.xyzw, r22.xyzw, l(255, 255, 255, 255), r21.xyzw
ushr r22.xyzw, r20.xzyw, l(16, 16, 16, 16)
ushr r23.xyzw, r20.xxyy, l(8, 24, 8, 24)
bfi r23.xyzw, l(8, 16, 8, 16), l(16, 16, 16, 16), r23.xyzw, l(0, 0, 0, 0)
mov r24.xz, r20.xxyx
mov r24.yw, r22.xxxz
bfi r23.xyzw, l(8, 8, 8, 8), l(0, 0, 0, 0), r24.xyzw, r23.xyzw
ushr r24.xyzw, r21.xzyw, l(16, 16, 16, 16)
mov r25.xz, r21.xxyx
mov r25.yw, r24.xxxz
bfi r23.xyzw, l(8, 8, 8, 8), l(8, 8, 8, 8), r25.xyzw, r23.xyzw
ushr r25.xyzw, r21.xxyy, l(8, 24, 8, 24)
bfi r23.xyzw, l(8, 8, 8, 8), l(24, 24, 24, 24), r25.xyzw, r23.xyzw
store_raw U0[0].xyzw, r19.x, r23.xyzw
ushr r23.xyzw, r20.zzww, l(8, 24, 8, 24)
bfi r23.xyzw, l(8, 16, 8, 16), l(16, 16, 16, 16), r23.xyzw, l(0, 0, 0, 0)
mov r22.xz, r20.zzwz
bfi r20.xyzw, l(8, 8, 8, 8), l(0, 0, 0, 0), r22.xyzw, r23.xyzw
mov r24.xz, r21.zzwz
bfi r20.xyzw, l(8, 8, 8, 8), l(8, 8, 8, 8), r24.xyzw, r20.xyzw
ushr r21.xyzw, r21.zzww, l(8, 24, 8, 24)
bfi r20.xyzw, l(8, 8, 8, 8), l(24, 24, 24, 24), r21.xyzw, r20.xyzw
iadd r19.z, r19.x, l(16)
store_raw U0[0].xyzw, r19.z, r20.xyzw
iadd r0.w, r0.w, l(1)
uge r19.z, r0.w, r0.z
if_nz r19.z
ret
endif
iadd r19.x, r19.x, CB0[0][0].w
iadd r19.y, r19.y, l(1)
endloop
ret
// Approximately 472 instruction slots used

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,393 @@
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//
// Buffer Definitions:
//
// cbuffer XeTextureCopyConstants
// {
//
// uint xe_texture_copy_guest_base; // Offset: 0 Size: 4
// uint xe_texture_copy_guest_pitch; // Offset: 4 Size: 4
// uint xe_texture_copy_host_base; // Offset: 8 Size: 4
// uint xe_texture_copy_host_pitch; // Offset: 12 Size: 4
// uint3 xe_texture_copy_size_texels; // Offset: 16 Size: 12
// bool xe_texture_copy_is_3d; // Offset: 28 Size: 4
// uint3 xe_texture_copy_size_blocks; // Offset: 32 Size: 12
// uint xe_texture_copy_endianness; // Offset: 44 Size: 4
// uint3 xe_texture_copy_guest_mip_offset;// Offset: 48 Size: 12
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim ID HLSL Bind Count
// ------------------------------ ---------- ------- ----------- ------- -------------- ------
// xe_texture_copy_source texture byte r/o T0 t0 1
// xe_texture_copy_dest UAV byte r/w U0 u0 1
// XeTextureCopyConstants cbuffer NA NA CB0 cb0 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Input
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
cs_5_1
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB0[0:0][4], immediateIndexed, space=0
dcl_resource_raw T0[0:0], space=0
dcl_uav_raw U0[0:0], space=0
dcl_input vThreadID.xyz
dcl_temps 15
dcl_thread_group 8, 32, 1
ishl r0.x, vThreadID.x, l(2)
mov r0.yz, vThreadID.yyzy
uge r1.xyz, r0.xyzx, CB0[0][2].xyzx
or r0.w, r1.y, r1.x
or r0.w, r1.z, r0.w
if_nz r0.w
ret
endif
iadd r1.xyz, r0.xyzx, CB0[0][3].xyzx
ieq r0.z, CB0[0][0].y, l(-1)
if_nz r0.z
if_nz CB0[0][1].w
iadd r2.xyzw, r1.xxxx, l(0, 1, 2, 3)
iadd r0.zw, CB0[0][2].yyyx, l(0, 0, 31, 31)
ushr r3.xyz, r1.zyyz, l(2, 4, 3, 0)
ushr r0.zw, r0.zzzw, l(0, 0, 4, 5)
and r0.z, r0.z, l(0x0ffffffe)
imad r0.z, r3.x, r0.z, r3.y
iadd r1.w, r3.z, r3.x
bfi r3.x, l(1), l(1), r1.w, l(0)
ushr r4.xyzw, r2.xyzw, l(3, 3, 3, 3)
iadd r3.xyzw, r3.xxxx, r4.xyzw
bfi r3.xyzw, l(2, 2, 2, 2), l(1, 1, 1, 1), r3.xyzw, l(0, 0, 0, 0)
bfi r3.xyzw, l(1, 1, 1, 1), l(0, 0, 0, 0), r1.wwww, r3.xyzw
ishl r1.w, r1.y, l(12)
and r1.w, r1.w, l(0x00006000)
bfi r4.xyzw, l(3, 3, 3, 3), l(10, 10, 10, 10), r2.xyzw, r1.wwww
ushr r4.xyzw, r4.xyzw, l(6, 6, 6, 6)
ushr r2.xyzw, r2.xyzw, l(5, 5, 5, 5)
imad r2.xyzw, r0.zzzz, r0.wwww, r2.xyzw
bfi r5.xyzw, l(18, 18, 18, 18), l(12, 12, 12, 12), r2.xyzw, l(0, 0, 0, 0)
imad r5.xyzw, r4.xyzw, l(2, 2, 2, 2), r5.xyzw
bfi r5.xyzw, l(2, 2, 2, 2), l(10, 10, 10, 10), r1.zzzz, r5.xyzw
bfi r0.z, l(1), l(4), r1.y, l(0)
iadd r6.xyzw, r5.xyzw, r0.zzzz
ubfe r5.xyzw, l(3, 3, 3, 3), l(6, 6, 6, 6), r5.xyzw
and r7.xyzw, r3.xyzw, l(6, 6, 6, 6)
bfi r3.xyzw, l(1, 1, 1, 1), l(8, 8, 8, 8), r3.xyzw, l(0, 0, 0, 0)
imad r3.xyzw, r5.xyzw, l(32, 32, 32, 32), r3.xyzw
imad r3.xyzw, r7.xyzw, l(4, 4, 4, 4), r3.xyzw
bfi r2.xyzw, l(18, 18, 18, 18), l(15, 15, 15, 15), r2.xyzw, l(0, 0, 0, 0)
imad r2.xyzw, r4.xyzw, l(16, 16, 16, 16), r2.xyzw
bfi r2.xyzw, l(2, 2, 2, 2), l(13, 13, 13, 13), r1.zzzz, r2.xyzw
imad r2.xyzw, r0.zzzz, l(8, 8, 8, 8), r2.xyzw
bfi r2.xyzw, l(9, 9, 9, 9), l(3, 3, 3, 3), r3.xyzw, r2.xyzw
bfi r2.xyzw, l(6, 6, 6, 6), l(0, 0, 0, 0), r6.xyzw, r2.xyzw
else
iadd r3.xyzw, r1.xxxx, l(0, 1, 2, 3)
ushr r4.xyzw, r3.xyzw, l(5, 5, 5, 5)
ushr r0.zw, r1.yyyy, l(0, 0, 5, 2)
iadd r1.w, CB0[0][2].x, l(31)
ushr r1.w, r1.w, l(5)
imad r4.xyzw, r0.zzzz, r1.wwww, r4.xyzw
ishl r0.z, r1.y, l(7)
and r5.xy, r0.zzzz, l(1792, 2048, 0, 0)
bfi r6.xyzw, l(3, 3, 3, 3), l(5, 5, 5, 5), r3.xyzw, r5.xxxx
bfi r6.xyzw, l(21, 21, 21, 21), l(11, 11, 11, 11), r4.xyzw, r6.xyzw
bfi r0.z, l(1), l(4), r1.y, l(0)
iadd r6.xyzw, r6.xyzw, r0.zzzz
ishl r5.xz, r5.xxxx, l(3, 0, 2, 0)
bfi r7.xyzw, l(3, 3, 3, 3), l(8, 8, 8, 8), r3.xyzw, r5.xxxx
bfi r7.xyzw, l(21, 21, 21, 21), l(14, 14, 14, 14), r4.xyzw, r7.xyzw
imad r7.xyzw, r0.zzzz, l(8, 8, 8, 8), r7.xyzw
bfi r7.xyzw, l(12, 12, 12, 12), l(0, 0, 0, 0), r5.yyyy, r7.xyzw
bfi r5.xyzw, l(3, 3, 3, 3), l(7, 7, 7, 7), r3.xyzw, r5.zzzz
bfi r4.xyzw, l(21, 21, 21, 21), l(13, 13, 13, 13), r4.xyzw, r5.xyzw
imad r4.xyzw, r0.zzzz, l(4, 4, 4, 4), r4.xyzw
and r4.xyzw, r4.xyzw, l(1792, 1792, 1792, 1792)
iadd r4.xyzw, r7.xyzw, r4.xyzw
ushr r3.xyzw, r3.xyzw, l(3, 3, 3, 3)
and r0.z, r0.w, l(2)
iadd r3.xyzw, r0.zzzz, r3.xyzw
bfi r3.xyzw, l(2, 2, 2, 2), l(6, 6, 6, 6), r3.xyzw, l(0, 0, 0, 0)
iadd r3.xyzw, r4.xyzw, r3.xyzw
bfi r2.xyzw, l(6, 6, 6, 6), l(0, 0, 0, 0), r6.xyzw, r3.xyzw
endif
else
ishl r0.z, r1.x, l(4)
iadd r0.w, CB0[0][2].y, l(31)
and r0.w, r0.w, l(-32)
imad r0.w, r1.z, r0.w, r1.y
imad r0.z, r0.w, CB0[0][0].y, r0.z
iadd r2.xyzw, r0.zzzz, l(0, 16, 32, 48)
endif
iadd r1.xyzw, r2.xyzw, CB0[0][0].xxxx
ld_raw r2.xyzw, r1.x, T0[0].wxyz
ld_raw r3.xyzw, r1.y, T0[0].xyzw
ld_raw r4.xyzw, r1.z, T0[0].xyzw
ld_raw r1.xyzw, r1.w, T0[0].xyzw
ushr r0.z, CB0[0][2].w, l(1)
xor r0.z, r0.z, CB0[0][2].w
and r0.z, r0.z, l(1)
if_nz r0.z
ishl r5.xyzw, r2.yzwx, l(8, 8, 8, 8)
and r5.xyzw, r5.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
ushr r6.xyzw, r2.yzwx, l(8, 8, 8, 8)
and r6.xyzw, r6.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
iadd r2.xyzw, r5.wxyz, r6.wxyz
endif
and r0.w, CB0[0][2].w, l(2)
if_nz r0.w
ushr r5.xyzw, r2.yzwx, l(16, 16, 16, 16)
bfi r2.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r2.xyzw, r5.wxyz
mov r5.x, r2.y
mov r6.x, r2.z
mov r7.x, r2.w
else
mov r5.x, r2.y
mov r6.x, r2.z
mov r7.x, r2.w
endif
if_nz r0.z
ishl r8.xyzw, r3.xyzw, l(8, 8, 8, 8)
and r8.xyzw, r8.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
ushr r9.xyzw, r3.xyzw, l(8, 8, 8, 8)
and r9.xyzw, r9.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
iadd r3.xyzw, r8.xyzw, r9.xyzw
endif
if_nz r0.w
ushr r8.xyzw, r3.xyzw, l(16, 16, 16, 16)
bfi r8.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r3.xyzw, r8.xyzw
mov r5.y, r8.x
mov r6.y, r8.y
mov r7.y, r8.z
mov r2.y, r8.w
else
mov r5.y, r3.x
mov r6.y, r3.y
mov r7.y, r3.z
mov r2.y, r3.w
endif
if_nz r0.z
ishl r3.xyzw, r4.xyzw, l(8, 8, 8, 8)
and r3.xyzw, r3.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
ushr r8.xyzw, r4.xyzw, l(8, 8, 8, 8)
and r8.xyzw, r8.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
iadd r4.xyzw, r3.xyzw, r8.xyzw
endif
if_nz r0.w
ushr r3.xyzw, r4.xyzw, l(16, 16, 16, 16)
bfi r3.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r4.xyzw, r3.xyzw
mov r5.z, r3.x
mov r6.z, r3.y
mov r7.z, r3.z
mov r2.z, r3.w
else
mov r5.z, r4.x
mov r6.z, r4.y
mov r7.z, r4.z
mov r2.z, r4.w
endif
if_nz r0.z
ishl r3.xyzw, r1.xyzw, l(8, 8, 8, 8)
and r3.xyzw, r3.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
ushr r4.xyzw, r1.xyzw, l(8, 8, 8, 8)
and r4.xyzw, r4.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
iadd r1.xyzw, r3.xyzw, r4.xyzw
endif
if_nz r0.w
ushr r3.xyzw, r1.xyzw, l(16, 16, 16, 16)
bfi r3.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r1.xyzw, r3.xyzw
mov r5.w, r3.x
mov r6.w, r3.y
mov r7.w, r3.z
mov r2.w, r3.w
else
mov r5.w, r1.x
mov r6.w, r1.y
mov r7.w, r1.z
mov r2.w, r1.w
endif
ishl r1.xyzw, r2.xyzw, l(1, 1, 1, 1)
and r1.xyzw, r1.xyzw, l(0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa)
ushr r2.xyzw, r2.xyzw, l(1, 1, 1, 1)
and r2.xyzw, r2.xyzw, l(0x55555555, 0x55555555, 0x55555555, 0x55555555)
iadd r1.xyzw, r1.xyzw, r2.xyzw
ushr r2.xyzw, r1.xyzw, l(1, 1, 1, 1)
and r2.xyzw, r2.xyzw, l(0x55555555, 0x55555555, 0x55555555, 0x55555555)
xor r1.xyzw, r1.xyzw, r2.xyzw
bfi r2.xyzw, l(5, 5, 5, 5), l(23, 23, 23, 23), r7.xyzw, l(0, 0, 0, 0)
ishl r3.xyzw, r7.xyzw, l(18, 18, 18, 18)
and r3.xyzw, r3.xyzw, l(0x00700000, 0x00700000, 0x00700000, 0x00700000)
iadd r2.xyzw, r2.xyzw, r3.xyzw
ishl r3.xyzw, r7.xyzw, l(7, 7, 7, 7)
and r4.xyzw, r3.xyzw, l(0x0003f000, 0x0003f000, 0x0003f000, 0x0003f000)
iadd r2.xyzw, r2.xyzw, r4.xyzw
ishl r4.xyzw, r7.xyzw, l(1, 1, 1, 1)
and r4.xyzw, r4.xyzw, l(3072, 3072, 3072, 3072)
iadd r2.xyzw, r2.xyzw, r4.xyzw
ushr r4.xyzw, r7.xyzw, l(8, 8, 8, 8)
and r4.xyzw, r4.xyzw, l(248, 248, 248, 248)
iadd r2.xyzw, r2.xyzw, r4.xyzw
ubfe r4.xyzw, l(3, 3, 3, 3), l(13, 13, 13, 13), r7.xyzw
iadd r2.xyzw, r2.xyzw, r4.xyzw
and r3.xyzw, r3.xyzw, l(0x0f800000, 0x0f800000, 0x0f800000, 0x0f800000)
ishl r4.xyzw, r7.xyzw, l(2, 2, 2, 2)
and r4.xyzw, r4.xyzw, l(0x00700000, 0x00700000, 0x00700000, 0x00700000)
iadd r3.xyzw, r3.xyzw, r4.xyzw
ushr r4.xyzw, r7.xyzw, l(9, 9, 9, 9)
and r4.xyzw, r4.xyzw, l(0x0003f000, 0x0003f000, 0x0003f000, 0x0003f000)
iadd r3.xyzw, r3.xyzw, r4.xyzw
ushr r4.xyzw, r7.xyzw, l(15, 15, 15, 15)
and r4.xyzw, r4.xyzw, l(3072, 3072, 3072, 3072)
iadd r3.xyzw, r3.xyzw, r4.xyzw
ushr r4.xyzw, r7.xyzw, l(24, 24, 24, 24)
and r4.xyzw, r4.xyzw, l(248, 248, 248, 248)
iadd r3.xyzw, r3.xyzw, r4.xyzw
ushr r4.xyzw, r7.xyzw, l(29, 29, 29, 29)
iadd r3.xyzw, r3.xyzw, r4.xyzw
ishl r0.xy, r0.xyxx, l(2, 2, 0, 0)
ishl r0.x, r0.x, l(2)
imad r0.z, vThreadID.z, CB0[0][1].y, r0.y
imad r0.x, r0.z, CB0[0][0].w, r0.x
iadd r0.x, r0.x, CB0[0][0].z
mov r0.z, CB0[0][1].y
mov r0.w, r0.y
mov r4.x, r0.x
mov r4.y, l(0)
loop
uge r4.z, r4.y, l(4)
breakc_nz r4.z
ishl r4.z, r4.y, l(3)
ushr r7.xyzw, r1.wxyz, r4.zzzz
not r8.xyzw, r7.xyzw
ushr r9.yzw, r8.yyyy, l(0, 2, 4, 6)
mov r9.x, r8.y
and r9.xyzw, r9.xyzw, l(3, 3, 3, 3)
ushr r10.yzw, r7.yyyy, l(0, 2, 4, 6)
mov r10.x, r7.y
and r10.xyzw, r10.xyzw, l(3, 3, 3, 3)
imul null, r10.xyzw, r3.xxxx, r10.xyzw
imad r9.xyzw, r9.xyzw, r2.xxxx, r10.xyzw
and r10.xyzw, r9.xyzw, l(1023, 1023, 1023, 1023)
udiv r10.xyzw, null, r10.xyzw, l(3, 3, 3, 3)
ubfe r11.xyzw, l(10, 10, 10, 10), l(10, 10, 10, 10), r9.xyzw
udiv r11.xyzw, null, r11.xyzw, l(3, 3, 3, 3)
ishl r11.xyzw, r11.xyzw, l(8, 8, 8, 8)
or r10.xyzw, r10.xyzw, r11.xyzw
ushr r9.xyzw, r9.xyzw, l(20, 20, 20, 20)
udiv r9.xyzw, null, r9.xyzw, l(3, 3, 3, 3)
ishl r9.xyzw, r9.xyzw, l(16, 16, 16, 16)
or r9.xyzw, r9.xyzw, r10.xyzw
ushr r10.yzw, r8.zzzz, l(0, 2, 4, 6)
mov r10.x, r8.z
and r10.xyzw, r10.xyzw, l(3, 3, 3, 3)
ushr r11.yzw, r7.zzzz, l(0, 2, 4, 6)
mov r11.x, r7.z
and r11.xyzw, r11.xyzw, l(3, 3, 3, 3)
imul null, r11.xyzw, r3.yyyy, r11.xyzw
imad r10.xyzw, r10.xyzw, r2.yyyy, r11.xyzw
and r11.xyzw, r10.xyzw, l(1023, 1023, 1023, 1023)
udiv r11.xyzw, null, r11.xyzw, l(3, 3, 3, 3)
ubfe r12.xyzw, l(10, 10, 10, 10), l(10, 10, 10, 10), r10.xyzw
udiv r12.xyzw, null, r12.xyzw, l(3, 3, 3, 3)
ishl r12.xyzw, r12.xyzw, l(8, 8, 8, 8)
or r11.xyzw, r11.xyzw, r12.xyzw
ushr r10.xyzw, r10.xyzw, l(20, 20, 20, 20)
udiv r10.xyzw, null, r10.xyzw, l(3, 3, 3, 3)
ishl r10.xyzw, r10.xyzw, l(16, 16, 16, 16)
or r10.xyzw, r10.xyzw, r11.xyzw
ushr r11.yzw, r8.wwww, l(0, 2, 4, 6)
mov r11.x, r8.w
and r11.xyzw, r11.xyzw, l(3, 3, 3, 3)
ushr r12.yzw, r7.wwww, l(0, 2, 4, 6)
mov r12.x, r7.w
and r12.xyzw, r12.xyzw, l(3, 3, 3, 3)
imul null, r12.xyzw, r3.zzzz, r12.xyzw
imad r11.xyzw, r11.xyzw, r2.zzzz, r12.xyzw
and r12.xyzw, r11.xyzw, l(1023, 1023, 1023, 1023)
udiv r12.xyzw, null, r12.xyzw, l(3, 3, 3, 3)
ubfe r13.xyzw, l(10, 10, 10, 10), l(10, 10, 10, 10), r11.xyzw
udiv r13.xyzw, null, r13.xyzw, l(3, 3, 3, 3)
ishl r13.xyzw, r13.xyzw, l(8, 8, 8, 8)
or r12.xyzw, r12.xyzw, r13.xyzw
ushr r11.xyzw, r11.xyzw, l(20, 20, 20, 20)
udiv r11.xyzw, null, r11.xyzw, l(3, 3, 3, 3)
ishl r11.xyzw, r11.xyzw, l(16, 16, 16, 16)
or r11.xyzw, r11.xyzw, r12.xyzw
ushr r8.yzw, r8.xxxx, l(0, 2, 4, 6)
and r8.xyzw, r8.xyzw, l(3, 3, 3, 3)
ushr r7.yzw, r7.xxxx, l(0, 2, 4, 6)
and r7.xyzw, r7.xyzw, l(3, 3, 3, 3)
imul null, r7.xyzw, r3.wwww, r7.xyzw
imad r7.xyzw, r8.xyzw, r2.wwww, r7.xyzw
and r8.xyzw, r7.xyzw, l(1023, 1023, 1023, 1023)
udiv r8.xyzw, null, r8.xyzw, l(3, 3, 3, 3)
ubfe r12.xyzw, l(10, 10, 10, 10), l(10, 10, 10, 10), r7.xyzw
udiv r12.xyzw, null, r12.xyzw, l(3, 3, 3, 3)
ishl r12.xyzw, r12.xyzw, l(8, 8, 8, 8)
or r8.xyzw, r8.xyzw, r12.xyzw
ushr r7.xyzw, r7.xyzw, l(20, 20, 20, 20)
udiv r7.xyzw, null, r7.xyzw, l(3, 3, 3, 3)
ishl r7.xyzw, r7.xyzw, l(16, 16, 16, 16)
or r7.xyzw, r7.xyzw, r8.xyzw
ult r4.z, r4.y, l(2)
movc r8.xyzw, r4.zzzz, r5.xyzw, r6.xyzw
bfi r4.z, l(1), l(4), r4.y, l(0)
ushr r8.xyzw, r8.xyzw, r4.zzzz
bfi r12.xyzw, l(8, 8, 8, 8), l(4, 4, 4, 4), r8.xyzw, l(0, 0, 0, 0)
bfi r12.xyzw, l(4, 4, 4, 4), l(0, 0, 0, 0), r8.xyzw, r12.xyzw
ishl r13.xyzw, r8.xyzw, l(8, 8, 8, 8)
and r13.xyzw, r13.xyzw, l(0x000ff000, 0x000ff000, 0x000ff000, 0x000ff000)
iadd r12.xyzw, r12.xyzw, r13.xyzw
ishl r13.xyzw, r8.xyzw, l(12, 12, 12, 12)
and r13.xyzw, r13.xyzw, l(0x0ff00000, 0x0ff00000, 0x0ff00000, 0x0ff00000)
iadd r14.xyzw, r12.xyzw, r13.xyzw
ishl r8.xyzw, r8.xyzw, l(16, 16, 16, 16)
bfi r8.xyzw, l(28, 28, 28, 28), l(0, 0, 0, 0), r14.xyzw, r8.xyzw
ishl r14.xyz, r13.xxxx, l(24, 16, 8, 0)
imad r14.xyz, r12.xxxx, l(0x01000000, 0x00010000, 256, 0), r14.xyzx
mov r14.w, r8.x
and r14.xyzw, r14.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000)
or r9.xyzw, r9.xyzw, r14.xyzw
store_raw U0[0].xyzw, r4.x, r9.xyzw
iadd r9.xyz, r4.xxxx, l(16, 32, 48, 0)
ishl r14.xyz, r13.yyyy, l(24, 16, 8, 0)
imad r14.xyz, r12.yyyy, l(0x01000000, 0x00010000, 256, 0), r14.xyzx
mov r14.w, r8.y
and r14.xyzw, r14.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000)
or r10.xyzw, r10.xyzw, r14.xyzw
store_raw U0[0].xyzw, r9.x, r10.xyzw
ishl r10.xyz, r13.zzzz, l(24, 16, 8, 0)
imad r10.xyz, r12.zzzz, l(0x01000000, 0x00010000, 256, 0), r10.xyzx
mov r10.w, r8.z
and r10.xyzw, r10.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000)
or r10.xyzw, r10.xyzw, r11.xyzw
store_raw U0[0].xyzw, r9.y, r10.xyzw
ishl r9.xyw, r13.wwww, l(24, 16, 0, 8)
imad r8.xyz, r12.wwww, l(0x01000000, 0x00010000, 256, 0), r9.xywx
and r8.xyzw, r8.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000)
or r7.xyzw, r7.xyzw, r8.xyzw
store_raw U0[0].xyzw, r9.z, r7.xyzw
iadd r0.w, r0.w, l(1)
uge r4.z, r0.w, r0.z
if_nz r4.z
ret
endif
iadd r4.x, r4.x, CB0[0][0].w
iadd r4.y, r4.y, l(1)
endloop
ret
// Approximately 341 instruction slots used

View File

@ -1,11 +1,11 @@
// generated from `xb buildhlsl`
// source: texture_load_dxt3a.cs.hlsl
const uint8_t texture_load_dxt3a_cs[] = {
0x44, 0x58, 0x42, 0x43, 0xE2, 0xC4, 0x7A, 0xEC, 0xA3, 0x17, 0x88, 0xC3,
0xBE, 0x2C, 0x37, 0x6A, 0x3A, 0x6B, 0x12, 0x46, 0x01, 0x00, 0x00, 0x00,
0xAC, 0x1A, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0x44, 0x58, 0x42, 0x43, 0x35, 0x34, 0xAA, 0x0A, 0x4C, 0x05, 0x56, 0x22,
0x80, 0x7C, 0x1C, 0xEB, 0x89, 0x2C, 0x16, 0x4A, 0x01, 0x00, 0x00, 0x00,
0x80, 0x1D, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0x54, 0x04, 0x00, 0x00, 0x64, 0x04, 0x00, 0x00, 0x74, 0x04, 0x00, 0x00,
0x10, 0x1A, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x18, 0x04, 0x00, 0x00,
0xE4, 0x1C, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x18, 0x04, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x3C, 0x00, 0x00, 0x00, 0x01, 0x05, 0x53, 0x43, 0x00, 0x05, 0x00, 0x00,
0xF0, 0x03, 0x00, 0x00, 0x13, 0x13, 0x44, 0x25, 0x3C, 0x00, 0x00, 0x00,
@ -43,7 +43,7 @@ const uint8_t texture_load_dxt3a_cs[] = {
0x9C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0x11, 0x03, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x34, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x34, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x58, 0x03, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x74, 0x03, 0x00, 0x00,
@ -96,8 +96,8 @@ const uint8_t texture_load_dxt3a_cs[] = {
0x30, 0x2E, 0x31, 0x00, 0x49, 0x53, 0x47, 0x4E, 0x08, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x4F, 0x53, 0x47, 0x4E,
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x53, 0x48, 0x45, 0x58, 0x94, 0x15, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
0x65, 0x05, 0x00, 0x00, 0x6A, 0x08, 0x00, 0x01, 0x59, 0x00, 0x00, 0x07,
0x53, 0x48, 0x45, 0x58, 0x68, 0x18, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
0x1A, 0x06, 0x00, 0x00, 0x6A, 0x08, 0x00, 0x01, 0x59, 0x00, 0x00, 0x07,
0x46, 0x8E, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xA1, 0x00, 0x00, 0x06, 0x46, 0x7E, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
@ -105,7 +105,7 @@ const uint8_t texture_load_dxt3a_cs[] = {
0x9D, 0x00, 0x00, 0x06, 0x46, 0xEE, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5F, 0x00, 0x00, 0x02, 0x72, 0x00, 0x02, 0x00, 0x68, 0x00, 0x00, 0x02,
0x09, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x06,
0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x02, 0x00,
0x01, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x04,
@ -119,46 +119,46 @@ const uint8_t texture_load_dxt3a_cs[] = {
0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x04, 0x03,
0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x01,
0x15, 0x00, 0x00, 0x01, 0x1E, 0x00, 0x00, 0x09, 0xE2, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x06, 0x09, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x06, 0x89, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x09, 0x12, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x15, 0x00, 0x00, 0x01, 0x1E, 0x00, 0x00, 0x09, 0x72, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x46, 0x82, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x09, 0x42, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x04, 0x03, 0x0A, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x04, 0x05, 0x3A, 0x80, 0x30, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x04, 0x03, 0x2A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x04, 0x05, 0x3A, 0x80, 0x30, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x56, 0x05, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x06, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0C, 0x32, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x16, 0x85, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0C, 0xC2, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x56, 0x81, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x1F, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A, 0x72, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0xB6, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00,
0x1F, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A, 0x72, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x66, 0x09, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A,
0x32, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0xFE, 0xFF, 0xFF, 0x0F, 0x23, 0x00, 0x00, 0x09, 0x12, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0xC2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0x0E, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x2A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0xFE, 0xFF, 0xFF, 0x0F, 0x23, 0x00, 0x00, 0x09, 0x42, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x2A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x82, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x0B,
0x82, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x12, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x2A, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x3A, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0xF6, 0x0F, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x14, 0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
@ -170,65 +170,65 @@ const uint8_t texture_load_dxt3a_cs[] = {
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xA6, 0x0A, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF6, 0x0F, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x07, 0x82, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07,
0x42, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00,
0x82, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0xA6, 0x0A, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A,
0x09, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0xF6, 0x0F, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x09, 0xF2, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x56, 0x05, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF6, 0x0F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00,
0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x14,
0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x13, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
0x13, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x0C, 0xF2, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0xF6, 0x0F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0xA6, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x56, 0x05, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x14,
0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
@ -238,336 +238,397 @@ const uint8_t texture_load_dxt3a_cs[] = {
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x0C, 0xF2, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x0C, 0xF2, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x14, 0xF2, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
0x13, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00,
0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x0C, 0xF2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x23, 0x00, 0x00, 0x0C, 0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
0xF6, 0x0F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0xA6, 0x0A, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x01, 0x1E, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A, 0x32, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x09,
0x42, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A, 0x80, 0x30, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x07,
0x42, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x09, 0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x06, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x0A, 0x52, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0xA6, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0x52, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x06, 0x02, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x07, 0x12, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00,
0xE0, 0x03, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
0x16, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00,
0x0D, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
0x00, 0x07, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x1A, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x06, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x14,
0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x01, 0x12, 0x00, 0x00, 0x01,
0x29, 0x00, 0x00, 0x07, 0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x09, 0x12, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x1F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07, 0x12, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0x23, 0x00, 0x00, 0x09,
0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x2A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x0B,
0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x01, 0x1E, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A, 0xC2, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x09,
0x82, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x80, 0x30, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x07,
0x82, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x09, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0xA6, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x0F, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x0A, 0x32, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x56, 0x05, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0x32, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x46, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00,
0xE0, 0x03, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
0x16, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00,
0x0D, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
0x00, 0x07, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x14,
0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x01, 0x12, 0x00, 0x00, 0x01,
0x29, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x09, 0x82, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x1F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07, 0x82, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0x23, 0x00, 0x00, 0x09,
0x82, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1A, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x0B,
0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x01,
0x1E, 0x00, 0x00, 0x09, 0xF2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x80, 0x30, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x80, 0x30, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xA5, 0x00, 0x00, 0x08, 0xC2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x74, 0x20, 0x00,
0xA5, 0x00, 0x00, 0x08, 0x52, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x70, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x08,
0x32, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00,
0xA2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x46, 0x70, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x08, 0xC2, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x08, 0x32, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x06, 0x74, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xA5, 0x00, 0x00, 0x08, 0x32, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x3A, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x70, 0x20, 0x00,
0x46, 0x70, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xA5, 0x00, 0x00, 0x08, 0xC2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x3A, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x74, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x09,
0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x80, 0x30, 0x00,
0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x80, 0x30, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x09,
0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00,
0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07,
0x22, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00,
0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x1F, 0x00, 0x04, 0x03, 0x1A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1F, 0x00, 0x04, 0x03, 0x2A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0xE6, 0x04, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x26, 0x07, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF,
0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x55, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0xE6, 0x04, 0x10, 0x00,
0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x26, 0x07, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00,
0xFF, 0x00, 0xFF, 0x00, 0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0xE6, 0x04, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0xE6, 0x04, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x01,
0x01, 0x00, 0x00, 0x09, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0xD6, 0x08, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0xD6, 0x08, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x01,
0x01, 0x00, 0x00, 0x09, 0x82, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x1F, 0x00, 0x04, 0x03, 0x2A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1F, 0x00, 0x04, 0x03, 0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0xE6, 0x04, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x26, 0x07, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0xE6, 0x04, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0xD6, 0x08, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x05, 0x32, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0xE6, 0x0A, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x01,
0x36, 0x00, 0x00, 0x05, 0x32, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0xE6, 0x0A, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x01,
0x1F, 0x00, 0x04, 0x03, 0x1A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1F, 0x00, 0x04, 0x03, 0x2A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0xE6, 0x04, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF,
0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x55, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0xE6, 0x04, 0x10, 0x00,
0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00,
0xFF, 0x00, 0xFF, 0x00, 0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0xE6, 0x04, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0xE6, 0x04, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x01,
0x1F, 0x00, 0x04, 0x03, 0x2A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x01,
0x1F, 0x00, 0x04, 0x03, 0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0xE6, 0x04, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0xE6, 0x04, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x05, 0x32, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0xE6, 0x0A, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x01,
0x36, 0x00, 0x00, 0x05, 0x32, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0xE6, 0x0A, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x01,
0x29, 0x00, 0x00, 0x07, 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x09, 0x22, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x02, 0x00, 0x1A, 0x80, 0x30, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x1A, 0x00, 0x02, 0x00, 0x23, 0x00, 0x00, 0x0B, 0x12, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x09, 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x80, 0x30, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x05, 0xC2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x06, 0x08, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05,
0xC2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x56, 0x0D, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x01, 0x36, 0x00, 0x00, 0x05,
0xC2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x08, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xC2, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x56, 0x0D, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x15, 0x00, 0x00, 0x01, 0x29, 0x00, 0x00, 0x0A, 0x32, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x0A,
0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x02, 0x00,
0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x0B, 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x2A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x80, 0x30, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x05, 0x42, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x08,
0xF2, 0xE0, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0A, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0A, 0xE2, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05,
0x42, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x08, 0xF2, 0xE0, 0x21, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x46, 0x0A, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x05, 0x42, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x08,
0xF2, 0xE0, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x2A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0A, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x42, 0x00, 0x10, 0x00,
0x0A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x09,
0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x2A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x07,
0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x80, 0x30, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x05, 0x82, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05,
0x12, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x22, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xA6, 0x00, 0x00, 0x08, 0xF2, 0xE0, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x46, 0x0A, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x01,
0x53, 0x54, 0x41, 0x54, 0x94, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x30, 0x00, 0x00, 0x01, 0x50, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x04, 0x03,
0x2A, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x07,
0x42, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x37, 0x00, 0x00, 0x09, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0xA6, 0x0A, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x0B, 0x42, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x14, 0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00,
0x00, 0xF0, 0x0F, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0xF0, 0x0F, 0x00,
0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F,
0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0xF0, 0x0F,
0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x1C, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00,
0x1C, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x08, 0xF2, 0xE0, 0x21, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x07, 0x82, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x2A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x04, 0x03,
0x2A, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x01,
0x15, 0x00, 0x00, 0x01, 0x1E, 0x00, 0x00, 0x09, 0x12, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x3A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x22, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x01,
0x3E, 0x00, 0x00, 0x01, 0x53, 0x54, 0x41, 0x54, 0x94, 0x00, 0x00, 0x00,
0xA4, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00,
0x27, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00,
};

View File

@ -11,7 +11,7 @@
// uint xe_texture_copy_guest_pitch; // Offset: 4 Size: 4
// uint xe_texture_copy_host_base; // Offset: 8 Size: 4
// uint xe_texture_copy_host_pitch; // Offset: 12 Size: 4
// uint3 xe_texture_copy_size_texels; // Offset: 16 Size: 12 [unused]
// uint3 xe_texture_copy_size_texels; // Offset: 16 Size: 12
// bool xe_texture_copy_is_3d; // Offset: 28 Size: 4
// uint3 xe_texture_copy_size_blocks; // Offset: 32 Size: 12
// uint xe_texture_copy_endianness; // Offset: 44 Size: 4
@ -47,7 +47,7 @@ dcl_constantbuffer CB0[0:0][4], immediateIndexed, space=0
dcl_resource_raw T0[0:0], space=0
dcl_uav_raw U0[0:0], space=0
dcl_input vThreadID.xyz
dcl_temps 9
dcl_temps 10
dcl_thread_group 8, 32, 1
ishl r0.x, vThreadID.x, l(2)
mov r0.yz, vThreadID.yyzy
@ -57,137 +57,160 @@ or r0.w, r1.z, r0.w
if_nz r0.w
ret
endif
iadd r0.yzw, r0.xxyz, CB0[0][3].xxyz
ieq r1.x, CB0[0][0].y, l(-1)
if_nz r1.x
iadd r1.xyz, r0.xyzx, CB0[0][3].xyzx
ieq r0.z, CB0[0][0].y, l(-1)
if_nz r0.z
if_nz CB0[0][1].w
iadd r1.xyzw, r0.yyyy, l(0, 1, 2, 3)
iadd r2.xy, CB0[0][2].yxyy, l(31, 31, 0, 0)
ushr r3.xyz, r0.wzzw, l(2, 4, 3, 0)
ushr r2.xy, r2.xyxx, l(4, 5, 0, 0)
and r2.x, r2.x, l(0x0ffffffe)
imad r2.x, r3.x, r2.x, r3.y
iadd r2.z, r3.z, r3.x
bfi r2.w, l(1), l(1), r2.z, l(0)
ushr r3.xyzw, r1.xyzw, l(3, 3, 3, 3)
iadd r3.xyzw, r2.wwww, r3.xyzw
iadd r2.xyzw, r1.xxxx, l(0, 1, 2, 3)
iadd r0.zw, CB0[0][2].yyyx, l(0, 0, 31, 31)
ushr r3.xyz, r1.zyyz, l(2, 4, 3, 0)
ushr r0.zw, r0.zzzw, l(0, 0, 4, 5)
and r0.z, r0.z, l(0x0ffffffe)
imad r0.z, r3.x, r0.z, r3.y
iadd r1.w, r3.z, r3.x
bfi r3.x, l(1), l(1), r1.w, l(0)
ushr r4.xyzw, r2.xyzw, l(3, 3, 3, 3)
iadd r3.xyzw, r3.xxxx, r4.xyzw
bfi r3.xyzw, l(2, 2, 2, 2), l(1, 1, 1, 1), r3.xyzw, l(0, 0, 0, 0)
bfi r3.xyzw, l(1, 1, 1, 1), l(0, 0, 0, 0), r2.zzzz, r3.xyzw
ishl r2.z, r0.z, l(11)
and r2.z, r2.z, l(0x00003000)
bfi r4.xyzw, l(3, 3, 3, 3), l(9, 9, 9, 9), r1.xyzw, r2.zzzz
bfi r3.xyzw, l(1, 1, 1, 1), l(0, 0, 0, 0), r1.wwww, r3.xyzw
ishl r1.w, r1.y, l(11)
and r1.w, r1.w, l(0x00003000)
bfi r4.xyzw, l(3, 3, 3, 3), l(9, 9, 9, 9), r2.xyzw, r1.wwww
ushr r4.xyzw, r4.xyzw, l(6, 6, 6, 6)
ushr r1.xyzw, r1.xyzw, l(5, 5, 5, 5)
imad r1.xyzw, r2.xxxx, r2.yyyy, r1.xyzw
and r2.xyzw, r4.xyzw, l(240, 240, 240, 240)
bfi r5.xyzw, l(19, 19, 19, 19), l(11, 11, 11, 11), r1.xyzw, l(0, 0, 0, 0)
imad r5.xyzw, r2.xyzw, l(2, 2, 2, 2), r5.xyzw
bfi r5.xyzw, l(4, 4, 4, 4), l(0, 0, 0, 0), r4.xyzw, r5.xyzw
bfi r5.xyzw, l(2, 2, 2, 2), l(9, 9, 9, 9), r0.wwww, r5.xyzw
bfi r6.xyzw, l(1, 1, 1, 1), l(4, 4, 4, 4), r0.zzzz, r5.xyzw
ubfe r5.xyzw, l(3, 3, 3, 3), l(6, 6, 6, 6), r5.xyzw
and r7.xyzw, r3.xyzw, l(6, 6, 6, 6)
ushr r2.xyzw, r2.xyzw, l(5, 5, 5, 5)
imad r2.xyzw, r0.zzzz, r0.wwww, r2.xyzw
and r5.xyzw, r4.xyzw, l(240, 240, 240, 240)
bfi r6.xyzw, l(19, 19, 19, 19), l(11, 11, 11, 11), r2.xyzw, l(0, 0, 0, 0)
imad r6.xyzw, r5.xyzw, l(2, 2, 2, 2), r6.xyzw
bfi r6.xyzw, l(4, 4, 4, 4), l(0, 0, 0, 0), r4.xyzw, r6.xyzw
bfi r6.xyzw, l(2, 2, 2, 2), l(9, 9, 9, 9), r1.zzzz, r6.xyzw
bfi r7.xyzw, l(1, 1, 1, 1), l(4, 4, 4, 4), r1.yyyy, r6.xyzw
ubfe r6.xyzw, l(3, 3, 3, 3), l(6, 6, 6, 6), r6.xyzw
and r8.xyzw, r3.xyzw, l(6, 6, 6, 6)
bfi r3.xyzw, l(1, 1, 1, 1), l(8, 8, 8, 8), r3.xyzw, l(0, 0, 0, 0)
imad r3.xyzw, r5.xyzw, l(32, 32, 32, 32), r3.xyzw
imad r3.xyzw, r7.xyzw, l(4, 4, 4, 4), r3.xyzw
bfi r1.xyzw, l(19, 19, 19, 19), l(14, 14, 14, 14), r1.xyzw, l(0, 0, 0, 0)
imad r1.xyzw, r2.xyzw, l(16, 16, 16, 16), r1.xyzw
bfi r1.xyzw, l(4, 4, 4, 4), l(3, 3, 3, 3), r4.xyzw, r1.xyzw
bfi r1.xyzw, l(2, 2, 2, 2), l(12, 12, 12, 12), r0.wwww, r1.xyzw
bfi r1.xyzw, l(1, 1, 1, 1), l(7, 7, 7, 7), r0.zzzz, r1.xyzw
bfi r1.xyzw, l(9, 9, 9, 9), l(3, 3, 3, 3), r3.xyzw, r1.xyzw
bfi r1.xyzw, l(6, 6, 6, 6), l(0, 0, 0, 0), r6.xyzw, r1.xyzw
imad r3.xyzw, r6.xyzw, l(32, 32, 32, 32), r3.xyzw
imad r3.xyzw, r8.xyzw, l(4, 4, 4, 4), r3.xyzw
bfi r2.xyzw, l(19, 19, 19, 19), l(14, 14, 14, 14), r2.xyzw, l(0, 0, 0, 0)
imad r2.xyzw, r5.xyzw, l(16, 16, 16, 16), r2.xyzw
bfi r2.xyzw, l(4, 4, 4, 4), l(3, 3, 3, 3), r4.xyzw, r2.xyzw
bfi r2.xyzw, l(2, 2, 2, 2), l(12, 12, 12, 12), r1.zzzz, r2.xyzw
bfi r2.xyzw, l(1, 1, 1, 1), l(7, 7, 7, 7), r1.yyyy, r2.xyzw
bfi r2.xyzw, l(9, 9, 9, 9), l(3, 3, 3, 3), r3.xyzw, r2.xyzw
bfi r2.xyzw, l(6, 6, 6, 6), l(0, 0, 0, 0), r7.xyzw, r2.xyzw
else
iadd r2.xyzw, r0.yyyy, l(0, 1, 2, 3)
ushr r3.xyzw, r2.xyzw, l(5, 5, 5, 5)
ushr r4.xy, r0.zzzz, l(5, 2, 0, 0)
iadd r4.z, CB0[0][2].x, l(31)
ushr r4.z, r4.z, l(5)
imad r3.xyzw, r4.xxxx, r4.zzzz, r3.xyzw
ishl r4.xz, r0.zzzz, l(5, 0, 7, 0)
and r4.xz, r4.xxzx, l(448, 0, 2048, 0)
bfi r5.xyzw, l(3, 3, 3, 3), l(3, 3, 3, 3), r2.xyzw, r4.xxxx
ishl r4.x, r4.x, l(1)
bfi r6.xyzw, l(3, 3, 3, 3), l(4, 4, 4, 4), r2.xyzw, r4.xxxx
and r6.xyzw, r6.xyzw, l(992, 992, 992, 992)
bfi r7.xyzw, l(22, 22, 22, 22), l(10, 10, 10, 10), r3.xyzw, r6.xyzw
bfi r7.xyzw, l(4, 4, 4, 4), l(0, 0, 0, 0), r5.xyzw, r7.xyzw
bfi r7.xyzw, l(1, 1, 1, 1), l(4, 4, 4, 4), r0.zzzz, r7.xyzw
ishl r8.xyzw, r6.xyzw, l(3, 3, 3, 3)
bfi r8.xyzw, l(22, 22, 22, 22), l(13, 13, 13, 13), r3.xyzw, r8.xyzw
bfi r8.xyzw, l(4, 4, 4, 4), l(3, 3, 3, 3), r5.xyzw, r8.xyzw
bfi r8.xyzw, l(1, 1, 1, 1), l(7, 7, 7, 7), r0.zzzz, r8.xyzw
bfi r8.xyzw, l(12, 12, 12, 12), l(0, 0, 0, 0), r4.zzzz, r8.xyzw
ishl r6.xyzw, r6.xyzw, l(2, 2, 2, 2)
bfi r3.xyzw, l(22, 22, 22, 22), l(12, 12, 12, 12), r3.xyzw, r6.xyzw
bfi r3.xyzw, l(4, 4, 4, 4), l(2, 2, 2, 2), r5.xyzw, r3.xyzw
bfi r3.xyzw, l(1, 1, 1, 1), l(6, 6, 6, 6), r0.zzzz, r3.xyzw
and r3.xyzw, r3.xyzw, l(1792, 1792, 1792, 1792)
iadd r3.xyzw, r8.xyzw, r3.xyzw
ushr r2.xyzw, r2.xyzw, l(3, 3, 3, 3)
and r4.x, r4.y, l(2)
iadd r2.xyzw, r2.xyzw, r4.xxxx
bfi r2.xyzw, l(2, 2, 2, 2), l(6, 6, 6, 6), r2.xyzw, l(0, 0, 0, 0)
iadd r2.xyzw, r3.xyzw, r2.xyzw
bfi r1.xyzw, l(6, 6, 6, 6), l(0, 0, 0, 0), r7.xyzw, r2.xyzw
iadd r3.xyzw, r1.xxxx, l(0, 1, 2, 3)
ushr r4.xyzw, r3.xyzw, l(5, 5, 5, 5)
ushr r0.zw, r1.yyyy, l(0, 0, 5, 2)
iadd r1.w, CB0[0][2].x, l(31)
ushr r1.w, r1.w, l(5)
imad r4.xyzw, r0.zzzz, r1.wwww, r4.xyzw
ishl r5.xy, r1.yyyy, l(5, 7, 0, 0)
and r5.xy, r5.xyxx, l(448, 2048, 0, 0)
bfi r6.xyzw, l(3, 3, 3, 3), l(3, 3, 3, 3), r3.xyzw, r5.xxxx
ishl r0.z, r5.x, l(1)
bfi r7.xyzw, l(3, 3, 3, 3), l(4, 4, 4, 4), r3.xyzw, r0.zzzz
and r7.xyzw, r7.xyzw, l(992, 992, 992, 992)
bfi r8.xyzw, l(22, 22, 22, 22), l(10, 10, 10, 10), r4.xyzw, r7.xyzw
bfi r8.xyzw, l(4, 4, 4, 4), l(0, 0, 0, 0), r6.xyzw, r8.xyzw
bfi r8.xyzw, l(1, 1, 1, 1), l(4, 4, 4, 4), r1.yyyy, r8.xyzw
ishl r9.xyzw, r7.xyzw, l(3, 3, 3, 3)
bfi r9.xyzw, l(22, 22, 22, 22), l(13, 13, 13, 13), r4.xyzw, r9.xyzw
bfi r9.xyzw, l(4, 4, 4, 4), l(3, 3, 3, 3), r6.xyzw, r9.xyzw
bfi r9.xyzw, l(1, 1, 1, 1), l(7, 7, 7, 7), r1.yyyy, r9.xyzw
bfi r5.xyzw, l(12, 12, 12, 12), l(0, 0, 0, 0), r5.yyyy, r9.xyzw
ishl r7.xyzw, r7.xyzw, l(2, 2, 2, 2)
bfi r4.xyzw, l(22, 22, 22, 22), l(12, 12, 12, 12), r4.xyzw, r7.xyzw
bfi r4.xyzw, l(4, 4, 4, 4), l(2, 2, 2, 2), r6.xyzw, r4.xyzw
bfi r4.xyzw, l(1, 1, 1, 1), l(6, 6, 6, 6), r1.yyyy, r4.xyzw
and r4.xyzw, r4.xyzw, l(1792, 1792, 1792, 1792)
iadd r4.xyzw, r5.xyzw, r4.xyzw
ushr r3.xyzw, r3.xyzw, l(3, 3, 3, 3)
and r0.z, r0.w, l(2)
iadd r3.xyzw, r0.zzzz, r3.xyzw
bfi r3.xyzw, l(2, 2, 2, 2), l(6, 6, 6, 6), r3.xyzw, l(0, 0, 0, 0)
iadd r3.xyzw, r4.xyzw, r3.xyzw
bfi r2.xyzw, l(6, 6, 6, 6), l(0, 0, 0, 0), r8.xyzw, r3.xyzw
endif
else
ishl r0.y, r0.y, l(3)
iadd r2.x, CB0[0][2].y, l(31)
and r2.x, r2.x, l(-32)
imad r0.z, r0.w, r2.x, r0.z
imad r0.y, r0.z, CB0[0][0].y, r0.y
iadd r1.xyzw, r0.yyyy, l(0, 8, 16, 24)
ishl r0.z, r1.x, l(3)
iadd r0.w, CB0[0][2].y, l(31)
and r0.w, r0.w, l(-32)
imad r0.w, r1.z, r0.w, r1.y
imad r0.z, r0.w, CB0[0][0].y, r0.z
iadd r2.xyzw, r0.zzzz, l(0, 8, 16, 24)
endif
iadd r1.xyzw, r1.xyzw, CB0[0][0].xxxx
ld_raw r2.zw, r1.x, T0[0].xxxy
ld_raw r2.xy, r1.y, T0[0].xyxx
ld_raw r3.zw, r1.z, T0[0].xxxy
ld_raw r3.xy, r1.w, T0[0].xyxx
ushr r0.y, CB0[0][2].w, l(1)
xor r0.y, r0.y, CB0[0][2].w
and r0.y, r0.y, l(1)
if_nz r0.y
ishl r1.xyzw, r2.zwxy, l(8, 8, 8, 8)
iadd r1.xyzw, r2.xyzw, CB0[0][0].xxxx
ld_raw r2.xz, r1.x, T0[0].yxxx
ld_raw r2.yw, r1.y, T0[0].xyxx
ld_raw r3.xy, r1.z, T0[0].xyxx
ld_raw r3.zw, r1.w, T0[0].xxxy
ushr r0.z, CB0[0][2].w, l(1)
xor r0.z, r0.z, CB0[0][2].w
and r0.z, r0.z, l(1)
if_nz r0.z
ishl r1.xyzw, r2.zxwy, l(8, 8, 8, 8)
and r1.xyzw, r1.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
ushr r4.xyzw, r2.zwxy, l(8, 8, 8, 8)
ushr r4.xyzw, r2.zxwy, l(8, 8, 8, 8)
and r4.xyzw, r4.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
iadd r2.xyzw, r1.zwxy, r4.zwxy
iadd r2.xyzw, r1.ywxz, r4.ywxz
endif
and r0.z, CB0[0][2].w, l(2)
if_nz r0.z
ushr r1.xyzw, r2.zwxy, l(16, 16, 16, 16)
bfi r2.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r2.xyzw, r1.zwxy
and r0.w, CB0[0][2].w, l(2)
if_nz r0.w
ushr r1.xyzw, r2.zxwy, l(16, 16, 16, 16)
bfi r2.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r2.xyzw, r1.ywxz
mov r1.xy, r2.zwzz
else
mov r1.xy, r2.zwzz
endif
if_nz r0.y
ishl r4.xyzw, r3.zwxy, l(8, 8, 8, 8)
if_nz r0.z
ishl r4.xyzw, r3.xyzw, l(8, 8, 8, 8)
and r4.xyzw, r4.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
ushr r5.xyzw, r3.zwxy, l(8, 8, 8, 8)
ushr r5.xyzw, r3.xyzw, l(8, 8, 8, 8)
and r5.xyzw, r5.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
iadd r3.xyzw, r4.zwxy, r5.zwxy
iadd r3.xyzw, r4.xyzw, r5.xyzw
endif
if_nz r0.z
ushr r4.xyzw, r3.zwxy, l(16, 16, 16, 16)
bfi r3.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r3.xyzw, r4.zwxy
mov r4.xy, r3.zwzz
if_nz r0.w
ushr r4.xyzw, r3.xyzw, l(16, 16, 16, 16)
bfi r4.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r3.xyzw, r4.xyzw
mov r1.zw, r4.xxxz
mov r2.zw, r4.yyyw
else
mov r4.xy, r3.zwzz
mov r1.zw, r3.xxxz
mov r2.zw, r3.yyyw
endif
ishl r0.x, r0.x, l(4)
imad r0.y, vThreadID.z, CB0[0][2].y, vThreadID.y
imad r0.x, r0.y, CB0[0][0].w, r0.x
ishl r0.xy, r0.xyxx, l(2, 2, 0, 0)
imad r0.z, vThreadID.z, CB0[0][1].y, r0.y
imad r0.x, r0.z, CB0[0][0].w, r0.x
iadd r0.x, r0.x, CB0[0][0].z
mov r1.z, l(0)
store_raw U0[0].xyzw, r0.x, r1.xyzz
iadd r0.yzw, r0.xxxx, l(0, 16, 32, 48)
mov r2.z, l(0)
store_raw U0[0].xyzw, r0.y, r2.xyzz
mov r4.z, l(0)
store_raw U0[0].xyzw, r0.z, r4.xyzz
mov r3.z, l(0)
store_raw U0[0].xyzw, r0.w, r3.xyzz
mov r0.z, CB0[0][1].y
mov r0.w, r0.y
mov r3.x, r0.x
mov r3.y, l(0)
loop
uge r3.z, r3.y, l(4)
breakc_nz r3.z
ult r3.z, r3.y, l(2)
movc r4.xyzw, r3.zzzz, r1.xyzw, r2.xyzw
bfi r3.z, l(1), l(4), r3.y, l(0)
ushr r4.xyzw, r4.xyzw, r3.zzzz
bfi r5.xyzw, l(8, 8, 8, 8), l(4, 4, 4, 4), r4.xyzw, l(0, 0, 0, 0)
bfi r5.xyzw, l(4, 4, 4, 4), l(0, 0, 0, 0), r4.xyzw, r5.xyzw
ishl r6.xyzw, r4.xyzw, l(8, 8, 8, 8)
and r6.xyzw, r6.xyzw, l(0x000ff000, 0x000ff000, 0x000ff000, 0x000ff000)
iadd r5.xyzw, r5.xyzw, r6.xyzw
ishl r6.xyzw, r4.xyzw, l(12, 12, 12, 12)
and r6.xyzw, r6.xyzw, l(0x0ff00000, 0x0ff00000, 0x0ff00000, 0x0ff00000)
iadd r5.xyzw, r5.xyzw, r6.xyzw
ishl r4.xyzw, r4.xyzw, l(16, 16, 16, 16)
bfi r4.xyzw, l(28, 28, 28, 28), l(0, 0, 0, 0), r5.xyzw, r4.xyzw
store_raw U0[0].xyzw, r3.x, r4.xyzw
iadd r0.w, r0.w, l(1)
uge r3.z, r0.w, r0.z
if_nz r3.z
ret
endif
iadd r3.x, r3.x, CB0[0][0].w
iadd r3.y, r3.y, l(1)
endloop
ret
// Approximately 141 instruction slots used
// Approximately 164 instruction slots used

View File

@ -0,0 +1,969 @@
// generated from `xb buildhlsl`
// source: texture_load_dxt5a_r8.cs.hlsl
const uint8_t texture_load_dxt5a_r8_cs[] = {
0x44, 0x58, 0x42, 0x43, 0x7E, 0xEA, 0x07, 0x50, 0xA7, 0x74, 0xF3, 0x45,
0xC5, 0xB0, 0x74, 0x8C, 0xBD, 0x1F, 0xFF, 0x02, 0x01, 0x00, 0x00, 0x00,
0x38, 0x2D, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0x54, 0x04, 0x00, 0x00, 0x64, 0x04, 0x00, 0x00, 0x74, 0x04, 0x00, 0x00,
0x9C, 0x2C, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x18, 0x04, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x3C, 0x00, 0x00, 0x00, 0x01, 0x05, 0x53, 0x43, 0x00, 0x05, 0x00, 0x00,
0xF0, 0x03, 0x00, 0x00, 0x13, 0x13, 0x44, 0x25, 0x3C, 0x00, 0x00, 0x00,
0x18, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
0x24, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xB4, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xCB, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63,
0x6F, 0x70, 0x79, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78,
0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F,
0x70, 0x79, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65,
0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6F, 0x70, 0x79, 0x43, 0x6F, 0x6E,
0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0xAB, 0xE0, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x9C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xC0, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x9C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xDC, 0x02, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x9C, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x02, 0x00, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x9C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0x11, 0x03, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x34, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x58, 0x03, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x74, 0x03, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x98, 0x03, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x34, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xB4, 0x03, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x9C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xCF, 0x03, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x34, 0x03, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x74,
0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F,
0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x64,
0x77, 0x6F, 0x72, 0x64, 0x00, 0xAB, 0xAB, 0xAB, 0x00, 0x00, 0x13, 0x00,
0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x93, 0x02, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x74,
0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F,
0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00,
0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63,
0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73,
0x65, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65,
0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x70,
0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74,
0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x69, 0x7A,
0x65, 0x5F, 0x74, 0x65, 0x78, 0x65, 0x6C, 0x73, 0x00, 0x75, 0x69, 0x6E,
0x74, 0x33, 0x00, 0xAB, 0x01, 0x00, 0x13, 0x00, 0x01, 0x00, 0x03, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x2D, 0x03, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75,
0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x69, 0x73, 0x5F, 0x33,
0x64, 0x00, 0x62, 0x6F, 0x6F, 0x6C, 0x00, 0xAB, 0x00, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x6E, 0x03, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x74,
0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F,
0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x73, 0x00,
0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63,
0x6F, 0x70, 0x79, 0x5F, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x6E, 0x65,
0x73, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72,
0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74,
0x5F, 0x6D, 0x69, 0x70, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00,
0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x28, 0x52,
0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65,
0x72, 0x20, 0x43, 0x6F, 0x6D, 0x70, 0x69, 0x6C, 0x65, 0x72, 0x20, 0x31,
0x30, 0x2E, 0x31, 0x00, 0x49, 0x53, 0x47, 0x4E, 0x08, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x4F, 0x53, 0x47, 0x4E,
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x53, 0x48, 0x45, 0x58, 0x20, 0x28, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
0x08, 0x0A, 0x00, 0x00, 0x6A, 0x08, 0x00, 0x01, 0x59, 0x00, 0x00, 0x07,
0x46, 0x8E, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xA1, 0x00, 0x00, 0x06, 0x46, 0x7E, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x9D, 0x00, 0x00, 0x06, 0x46, 0xEE, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5F, 0x00, 0x00, 0x02, 0x72, 0x00, 0x02, 0x00, 0x68, 0x00, 0x00, 0x02,
0x12, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x06,
0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x02, 0x00,
0x01, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x04,
0x62, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x06, 0x02, 0x00,
0x50, 0x00, 0x00, 0x09, 0x72, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x82, 0x30, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x3C, 0x00, 0x00, 0x07, 0x82, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1A, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07, 0x82, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x04, 0x03,
0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x01,
0x15, 0x00, 0x00, 0x01, 0x1E, 0x00, 0x00, 0x09, 0x72, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x46, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x46, 0x82, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x09, 0x42, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x04, 0x03, 0x2A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x04, 0x05, 0x3A, 0x80, 0x30, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x06, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0C, 0xC2, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x56, 0x81, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00,
0x1F, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A, 0x72, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x66, 0x09, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A,
0xC2, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0x0E, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x2A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0xFE, 0xFF, 0xFF, 0x0F, 0x23, 0x00, 0x00, 0x09, 0x42, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x2A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x82, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x0B,
0x12, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x3A, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x14, 0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF6, 0x0F, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x07, 0x82, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07,
0x82, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0xF6, 0x0F, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x09, 0xF2, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF6, 0x0F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00,
0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x14,
0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x13, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
0x13, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x0C, 0xF2, 0x00, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x56, 0x05, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x14,
0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x0C, 0xF2, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x0C, 0xF2, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x14, 0xF2, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
0x13, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00,
0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x0C, 0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
0xA6, 0x0A, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x01, 0x1E, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A, 0xC2, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x09,
0x82, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x80, 0x30, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x07,
0x82, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x09, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0xA6, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x0F, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x0A, 0x32, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x56, 0x05, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0x32, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x46, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00,
0xE0, 0x03, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
0x16, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00,
0x0D, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
0x16, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
0x00, 0x07, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x14,
0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11,
0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x01, 0x12, 0x00, 0x00, 0x01,
0x29, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x09, 0x82, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x1F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07, 0x82, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0x23, 0x00, 0x00, 0x09,
0x82, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1A, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x0B,
0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x01,
0x1E, 0x00, 0x00, 0x09, 0xF2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x80, 0x30, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xA5, 0x00, 0x00, 0x08, 0x52, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x70, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x08,
0xA2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x46, 0x70, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x08, 0x32, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x46, 0x70, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xA5, 0x00, 0x00, 0x08, 0xC2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x3A, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x74, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x09,
0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x80, 0x30, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x09,
0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07,
0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x1F, 0x00, 0x04, 0x03, 0x2A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x26, 0x07, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF,
0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x55, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x26, 0x07, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00,
0xFF, 0x00, 0xFF, 0x00, 0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0xD6, 0x08, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0xD6, 0x08, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x01,
0x01, 0x00, 0x00, 0x09, 0x82, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x1F, 0x00, 0x04, 0x03, 0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x26, 0x07, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0xD6, 0x08, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x05, 0x32, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0xE6, 0x0A, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x01,
0x36, 0x00, 0x00, 0x05, 0x32, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0xE6, 0x0A, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x01,
0x1F, 0x00, 0x04, 0x03, 0x2A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF,
0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x55, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00,
0xFF, 0x00, 0xFF, 0x00, 0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x01,
0x1F, 0x00, 0x04, 0x03, 0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x05, 0xC2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x06, 0x08, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05,
0xC2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x56, 0x0D, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x01, 0x36, 0x00, 0x00, 0x05,
0xC2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x08, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xC2, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x56, 0x0D, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x15, 0x00, 0x00, 0x01, 0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x14,
0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00,
0x49, 0x92, 0x24, 0x00, 0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x49, 0x92, 0x24, 0x00,
0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00,
0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x49, 0x92, 0x24, 0x00,
0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00,
0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00,
0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00, 0x57, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x49, 0x92, 0x24, 0x00,
0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00,
0x3B, 0x00, 0x00, 0x05, 0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x00, 0x05, 0xF2, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0xB7, 0x6D, 0xDB, 0xFF, 0xB7, 0x6D, 0xDB, 0xFF,
0xB7, 0x6D, 0xDB, 0xFF, 0xB7, 0x6D, 0xDB, 0xFF, 0x3C, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00,
0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00, 0x55, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00,
0x49, 0x92, 0x24, 0x00, 0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x0E, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00,
0x49, 0x92, 0x24, 0x00, 0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x49, 0x92, 0x24, 0x00,
0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00,
0x57, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00, 0x49, 0x92, 0x24, 0x00,
0x49, 0x92, 0x24, 0x00, 0x3B, 0x00, 0x00, 0x05, 0xF2, 0x00, 0x10, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x05, 0xF2, 0x00, 0x10, 0x00,
0x0D, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0E, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0D, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xB7, 0x6D, 0xDB, 0xFF,
0xB7, 0x6D, 0xDB, 0xFF, 0xB7, 0x6D, 0xDB, 0xFF, 0xB7, 0x6D, 0xDB, 0xFF,
0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x0D, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0D, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x0D, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x92, 0x24, 0x49, 0x00, 0x92, 0x24, 0x49, 0x00, 0x92, 0x24, 0x49, 0x00,
0x92, 0x24, 0x49, 0x00, 0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xB6, 0x6D, 0xDB, 0x00,
0xB6, 0x6D, 0xDB, 0x00, 0xB6, 0x6D, 0xDB, 0x00, 0xB6, 0x6D, 0xDB, 0x00,
0x01, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x05,
0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x92, 0x24, 0x49, 0x00, 0x92, 0x24, 0x49, 0x00,
0x92, 0x24, 0x49, 0x00, 0x92, 0x24, 0x49, 0x00, 0x29, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0xB6, 0x6D, 0xDB, 0x00, 0xB6, 0x6D, 0xDB, 0x00, 0xB6, 0x6D, 0xDB, 0x00,
0xB6, 0x6D, 0xDB, 0x00, 0x01, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x00, 0x05, 0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,
0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x0F,
0xF2, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A,
0x32, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x0A, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x2A, 0x00, 0x02, 0x00, 0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x0B, 0x12, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x09, 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x80, 0x30, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x50, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x6D, 0x0B, 0x00, 0x00, 0x6D, 0x0B, 0x00, 0x00,
0x6D, 0x0B, 0x00, 0x00, 0x6D, 0x0B, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00,
0xFF, 0x0F, 0x00, 0x00, 0x36, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05,
0x82, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x12, 0x00, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x05, 0x22, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x01,
0x50, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x1A, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x04, 0x03, 0x2A, 0x00, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x09,
0xF2, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07,
0x82, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x08, 0x00, 0xD0, 0x00, 0x00, 0x82, 0x00, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0xF6, 0x0F, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x37, 0x00, 0x00, 0x09, 0xF2, 0x00, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0xA6, 0x0A, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00, 0xF6, 0x0F, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x09, 0xF2, 0x00, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x92, 0x04, 0x00, 0x00, 0x92, 0x04, 0x00, 0x00,
0x92, 0x04, 0x00, 0x00, 0x92, 0x04, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x0F, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0F, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x00, 0x05, 0xF2, 0x00, 0x10, 0x00, 0x0E, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0E, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x08, 0xF2, 0x00, 0x10, 0x00, 0x0F, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x80,
0x41, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0E, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0F, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x0F, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x10, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x08,
0x00, 0xD0, 0x00, 0x00, 0xF2, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x10, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x09, 0xF2, 0x00, 0x10, 0x00,
0x0F, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x10, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x08, 0xF2, 0x00, 0x10, 0x00,
0x0F, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0F, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x8A, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0E, 0x00, 0x00, 0x00,
0x8A, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x10, 0x00, 0x11, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x08, 0x00, 0xD0, 0x00, 0x00, 0xF2, 0x00, 0x10, 0x00,
0x11, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x11, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x09,
0xF2, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x11, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x08,
0xF2, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x10, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0F, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00,
0x8A, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0E, 0x00, 0x00, 0x00,
0x8A, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x10, 0x00, 0x11, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x08, 0x00, 0xD0, 0x00, 0x00, 0xF2, 0x00, 0x10, 0x00,
0x11, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x11, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x09,
0xF2, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x11, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x08,
0xF2, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x10, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0F, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00,
0x8A, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x10, 0x00, 0x0E, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0E, 0x00, 0x00, 0x00,
0x8A, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x08, 0x00, 0xD0, 0x00, 0x00, 0xF2, 0x00, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x09,
0xF2, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0E, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x08,
0xF2, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0F, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x11, 0xF2, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x0E, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x01, 0x00, 0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0x01, 0x1E, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x0C,
0xF2, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,
0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x08,
0xF2, 0xE0, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x82, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x07,
0x42, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1F, 0x00, 0x04, 0x03, 0x2A, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x00, 0x01, 0x15, 0x00, 0x00, 0x01, 0x1E, 0x00, 0x00, 0x09,
0x12, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x3A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07,
0x22, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x16, 0x00, 0x00, 0x01, 0x3E, 0x00, 0x00, 0x01, 0x53, 0x54, 0x41, 0x54,
0x94, 0x00, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x4E, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
};

View File

@ -0,0 +1,332 @@
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//
// Buffer Definitions:
//
// cbuffer XeTextureCopyConstants
// {
//
// uint xe_texture_copy_guest_base; // Offset: 0 Size: 4
// uint xe_texture_copy_guest_pitch; // Offset: 4 Size: 4
// uint xe_texture_copy_host_base; // Offset: 8 Size: 4
// uint xe_texture_copy_host_pitch; // Offset: 12 Size: 4
// uint3 xe_texture_copy_size_texels; // Offset: 16 Size: 12
// bool xe_texture_copy_is_3d; // Offset: 28 Size: 4
// uint3 xe_texture_copy_size_blocks; // Offset: 32 Size: 12
// uint xe_texture_copy_endianness; // Offset: 44 Size: 4
// uint3 xe_texture_copy_guest_mip_offset;// Offset: 48 Size: 12
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim ID HLSL Bind Count
// ------------------------------ ---------- ------- ----------- ------- -------------- ------
// xe_texture_copy_source texture byte r/o T0 t0 1
// xe_texture_copy_dest UAV byte r/w U0 u0 1
// XeTextureCopyConstants cbuffer NA NA CB0 cb0 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Input
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
cs_5_1
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB0[0:0][4], immediateIndexed, space=0
dcl_resource_raw T0[0:0], space=0
dcl_uav_raw U0[0:0], space=0
dcl_input vThreadID.xyz
dcl_temps 18
dcl_thread_group 8, 32, 1
ishl r0.x, vThreadID.x, l(2)
mov r0.yz, vThreadID.yyzy
uge r1.xyz, r0.xyzx, CB0[0][2].xyzx
or r0.w, r1.y, r1.x
or r0.w, r1.z, r0.w
if_nz r0.w
ret
endif
iadd r1.xyz, r0.xyzx, CB0[0][3].xyzx
ieq r0.z, CB0[0][0].y, l(-1)
if_nz r0.z
if_nz CB0[0][1].w
iadd r2.xyzw, r1.xxxx, l(0, 1, 2, 3)
iadd r0.zw, CB0[0][2].yyyx, l(0, 0, 31, 31)
ushr r3.xyz, r1.zyyz, l(2, 4, 3, 0)
ushr r0.zw, r0.zzzw, l(0, 0, 4, 5)
and r0.z, r0.z, l(0x0ffffffe)
imad r0.z, r3.x, r0.z, r3.y
iadd r1.w, r3.z, r3.x
bfi r3.x, l(1), l(1), r1.w, l(0)
ushr r4.xyzw, r2.xyzw, l(3, 3, 3, 3)
iadd r3.xyzw, r3.xxxx, r4.xyzw
bfi r3.xyzw, l(2, 2, 2, 2), l(1, 1, 1, 1), r3.xyzw, l(0, 0, 0, 0)
bfi r3.xyzw, l(1, 1, 1, 1), l(0, 0, 0, 0), r1.wwww, r3.xyzw
ishl r1.w, r1.y, l(11)
and r1.w, r1.w, l(0x00003000)
bfi r4.xyzw, l(3, 3, 3, 3), l(9, 9, 9, 9), r2.xyzw, r1.wwww
ushr r4.xyzw, r4.xyzw, l(6, 6, 6, 6)
ushr r2.xyzw, r2.xyzw, l(5, 5, 5, 5)
imad r2.xyzw, r0.zzzz, r0.wwww, r2.xyzw
and r5.xyzw, r4.xyzw, l(240, 240, 240, 240)
bfi r6.xyzw, l(19, 19, 19, 19), l(11, 11, 11, 11), r2.xyzw, l(0, 0, 0, 0)
imad r6.xyzw, r5.xyzw, l(2, 2, 2, 2), r6.xyzw
bfi r6.xyzw, l(4, 4, 4, 4), l(0, 0, 0, 0), r4.xyzw, r6.xyzw
bfi r6.xyzw, l(2, 2, 2, 2), l(9, 9, 9, 9), r1.zzzz, r6.xyzw
bfi r7.xyzw, l(1, 1, 1, 1), l(4, 4, 4, 4), r1.yyyy, r6.xyzw
ubfe r6.xyzw, l(3, 3, 3, 3), l(6, 6, 6, 6), r6.xyzw
and r8.xyzw, r3.xyzw, l(6, 6, 6, 6)
bfi r3.xyzw, l(1, 1, 1, 1), l(8, 8, 8, 8), r3.xyzw, l(0, 0, 0, 0)
imad r3.xyzw, r6.xyzw, l(32, 32, 32, 32), r3.xyzw
imad r3.xyzw, r8.xyzw, l(4, 4, 4, 4), r3.xyzw
bfi r2.xyzw, l(19, 19, 19, 19), l(14, 14, 14, 14), r2.xyzw, l(0, 0, 0, 0)
imad r2.xyzw, r5.xyzw, l(16, 16, 16, 16), r2.xyzw
bfi r2.xyzw, l(4, 4, 4, 4), l(3, 3, 3, 3), r4.xyzw, r2.xyzw
bfi r2.xyzw, l(2, 2, 2, 2), l(12, 12, 12, 12), r1.zzzz, r2.xyzw
bfi r2.xyzw, l(1, 1, 1, 1), l(7, 7, 7, 7), r1.yyyy, r2.xyzw
bfi r2.xyzw, l(9, 9, 9, 9), l(3, 3, 3, 3), r3.xyzw, r2.xyzw
bfi r2.xyzw, l(6, 6, 6, 6), l(0, 0, 0, 0), r7.xyzw, r2.xyzw
else
iadd r3.xyzw, r1.xxxx, l(0, 1, 2, 3)
ushr r4.xyzw, r3.xyzw, l(5, 5, 5, 5)
ushr r0.zw, r1.yyyy, l(0, 0, 5, 2)
iadd r1.w, CB0[0][2].x, l(31)
ushr r1.w, r1.w, l(5)
imad r4.xyzw, r0.zzzz, r1.wwww, r4.xyzw
ishl r5.xy, r1.yyyy, l(5, 7, 0, 0)
and r5.xy, r5.xyxx, l(448, 2048, 0, 0)
bfi r6.xyzw, l(3, 3, 3, 3), l(3, 3, 3, 3), r3.xyzw, r5.xxxx
ishl r0.z, r5.x, l(1)
bfi r7.xyzw, l(3, 3, 3, 3), l(4, 4, 4, 4), r3.xyzw, r0.zzzz
and r7.xyzw, r7.xyzw, l(992, 992, 992, 992)
bfi r8.xyzw, l(22, 22, 22, 22), l(10, 10, 10, 10), r4.xyzw, r7.xyzw
bfi r8.xyzw, l(4, 4, 4, 4), l(0, 0, 0, 0), r6.xyzw, r8.xyzw
bfi r8.xyzw, l(1, 1, 1, 1), l(4, 4, 4, 4), r1.yyyy, r8.xyzw
ishl r9.xyzw, r7.xyzw, l(3, 3, 3, 3)
bfi r9.xyzw, l(22, 22, 22, 22), l(13, 13, 13, 13), r4.xyzw, r9.xyzw
bfi r9.xyzw, l(4, 4, 4, 4), l(3, 3, 3, 3), r6.xyzw, r9.xyzw
bfi r9.xyzw, l(1, 1, 1, 1), l(7, 7, 7, 7), r1.yyyy, r9.xyzw
bfi r5.xyzw, l(12, 12, 12, 12), l(0, 0, 0, 0), r5.yyyy, r9.xyzw
ishl r7.xyzw, r7.xyzw, l(2, 2, 2, 2)
bfi r4.xyzw, l(22, 22, 22, 22), l(12, 12, 12, 12), r4.xyzw, r7.xyzw
bfi r4.xyzw, l(4, 4, 4, 4), l(2, 2, 2, 2), r6.xyzw, r4.xyzw
bfi r4.xyzw, l(1, 1, 1, 1), l(6, 6, 6, 6), r1.yyyy, r4.xyzw
and r4.xyzw, r4.xyzw, l(1792, 1792, 1792, 1792)
iadd r4.xyzw, r5.xyzw, r4.xyzw
ushr r3.xyzw, r3.xyzw, l(3, 3, 3, 3)
and r0.z, r0.w, l(2)
iadd r3.xyzw, r0.zzzz, r3.xyzw
bfi r3.xyzw, l(2, 2, 2, 2), l(6, 6, 6, 6), r3.xyzw, l(0, 0, 0, 0)
iadd r3.xyzw, r4.xyzw, r3.xyzw
bfi r2.xyzw, l(6, 6, 6, 6), l(0, 0, 0, 0), r8.xyzw, r3.xyzw
endif
else
ishl r0.z, r1.x, l(3)
iadd r0.w, CB0[0][2].y, l(31)
and r0.w, r0.w, l(-32)
imad r0.w, r1.z, r0.w, r1.y
imad r0.z, r0.w, CB0[0][0].y, r0.z
iadd r2.xyzw, r0.zzzz, l(0, 8, 16, 24)
endif
iadd r1.xyzw, r2.xyzw, CB0[0][0].xxxx
ld_raw r2.xz, r1.x, T0[0].yxxx
ld_raw r2.yw, r1.y, T0[0].xyxx
ld_raw r3.xy, r1.z, T0[0].xyxx
ld_raw r3.zw, r1.w, T0[0].xxxy
ushr r0.z, CB0[0][2].w, l(1)
xor r0.z, r0.z, CB0[0][2].w
and r0.z, r0.z, l(1)
if_nz r0.z
ishl r1.xyzw, r2.zxwy, l(8, 8, 8, 8)
and r1.xyzw, r1.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
ushr r4.xyzw, r2.zxwy, l(8, 8, 8, 8)
and r4.xyzw, r4.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
iadd r2.xyzw, r1.ywxz, r4.ywxz
endif
and r0.w, CB0[0][2].w, l(2)
if_nz r0.w
ushr r1.xyzw, r2.zxwy, l(16, 16, 16, 16)
bfi r2.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r2.xyzw, r1.ywxz
mov r1.xy, r2.zwzz
else
mov r1.xy, r2.zwzz
endif
if_nz r0.z
ishl r4.xyzw, r3.xyzw, l(8, 8, 8, 8)
and r4.xyzw, r4.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
ushr r5.xyzw, r3.xyzw, l(8, 8, 8, 8)
and r5.xyzw, r5.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
iadd r3.xyzw, r4.xyzw, r5.xyzw
endif
if_nz r0.w
ushr r4.xyzw, r3.xyzw, l(16, 16, 16, 16)
bfi r4.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r3.xyzw, r4.xyzw
mov r1.zw, r4.xxxz
mov r2.zw, r4.yyyw
else
mov r1.zw, r3.xxxz
mov r2.zw, r3.yyyw
endif
ushr r3.xyzw, r1.xyzw, l(16, 16, 16, 16)
bfi r4.xyzw, l(8, 8, 8, 8), l(16, 16, 16, 16), r2.xyzw, l(0, 0, 0, 0)
iadd r3.xyzw, r3.xyzw, r4.xyzw
ushr r2.xyzw, r2.xyzw, l(8, 8, 8, 8)
and r4.xyzw, r3.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
ushr r5.xyzw, r3.xyzw, l(1, 1, 1, 1)
and r6.xyzw, r5.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
or r7.xyzw, r3.xyzw, r5.xyzw
ushr r8.xyzw, r3.xyzw, l(2, 2, 2, 2)
and r9.xyzw, r8.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
or r7.xyzw, r7.xyzw, r8.xyzw
and r7.xyzw, r7.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
xor r7.xyzw, r7.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
not r6.xyzw, r6.xyzw
and r6.xyzw, r4.xyzw, r6.xyzw
not r8.xyzw, r9.xyzw
and r6.xyzw, r6.xyzw, r8.xyzw
or r7.xyzw, r3.xyzw, r7.xyzw
iadd r7.xyzw, r7.xyzw, l(0xffdb6db7, 0xffdb6db7, 0xffdb6db7, 0xffdb6db7)
or r7.xyzw, r6.xyzw, r7.xyzw
ishl r8.xyzw, r6.xyzw, l(1, 1, 1, 1)
or r8.xyzw, r7.xyzw, r8.xyzw
ishl r6.xyzw, r6.xyzw, l(2, 2, 2, 2)
or r8.xyzw, r6.xyzw, r8.xyzw
and r9.xyzw, r2.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
ushr r10.xyzw, r2.xyzw, l(1, 1, 1, 1)
and r11.xyzw, r10.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
or r12.xyzw, r2.xyzw, r10.xyzw
ushr r13.xyzw, r2.xyzw, l(2, 2, 2, 2)
and r14.xyzw, r13.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
or r12.xyzw, r12.xyzw, r13.xyzw
and r12.xyzw, r12.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
xor r12.xyzw, r12.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
not r11.xyzw, r11.xyzw
and r11.xyzw, r9.xyzw, r11.xyzw
not r13.xyzw, r14.xyzw
and r11.xyzw, r11.xyzw, r13.xyzw
or r12.xyzw, r2.xyzw, r12.xyzw
iadd r12.xyzw, r12.xyzw, l(0xffdb6db7, 0xffdb6db7, 0xffdb6db7, 0xffdb6db7)
or r12.xyzw, r11.xyzw, r12.xyzw
ishl r13.xyzw, r11.xyzw, l(1, 1, 1, 1)
or r13.xyzw, r12.xyzw, r13.xyzw
ishl r11.xyzw, r11.xyzw, l(2, 2, 2, 2)
or r13.xyzw, r11.xyzw, r13.xyzw
and r3.xyzw, r3.xyzw, r5.xyzw
and r3.xyzw, r3.xyzw, l(0x00492492, 0x00492492, 0x00492492, 0x00492492)
ishl r5.xyzw, r3.xyzw, l(1, 1, 1, 1)
ushr r14.xyzw, r3.xyzw, l(1, 1, 1, 1)
iadd r3.xyzw, r3.xyzw, r5.xyzw
iadd r3.xyzw, r3.xyzw, r14.xyzw
iadd r4.xyzw, r4.xyzw, l(0x00db6db6, 0x00db6db6, 0x00db6db6, 0x00db6db6)
and r4.xyzw, r3.xyzw, r4.xyzw
or r5.xyzw, r6.xyzw, r7.xyzw
not r3.xyzw, r3.xyzw
and r3.xyzw, r3.xyzw, r5.xyzw
or r3.xyzw, r4.xyzw, r3.xyzw
and r2.xyzw, r2.xyzw, r10.xyzw
and r2.xyzw, r2.xyzw, l(0x00492492, 0x00492492, 0x00492492, 0x00492492)
ishl r4.xyzw, r2.xyzw, l(1, 1, 1, 1)
ushr r5.xyzw, r2.xyzw, l(1, 1, 1, 1)
iadd r2.xyzw, r2.xyzw, r4.xyzw
iadd r2.xyzw, r2.xyzw, r5.xyzw
iadd r4.xyzw, r9.xyzw, l(0x00db6db6, 0x00db6db6, 0x00db6db6, 0x00db6db6)
and r4.xyzw, r2.xyzw, r4.xyzw
or r5.xyzw, r11.xyzw, r12.xyzw
not r2.xyzw, r2.xyzw
and r2.xyzw, r2.xyzw, r5.xyzw
or r2.xyzw, r4.xyzw, r2.xyzw
and r4.xyzw, r1.xyzw, l(255, 255, 255, 255)
ubfe r1.xyzw, l(8, 8, 8, 8), l(8, 8, 8, 8), r1.xyzw
ishl r0.xy, r0.xyxx, l(2, 2, 0, 0)
imad r0.z, vThreadID.z, CB0[0][1].y, r0.y
imad r0.x, r0.z, CB0[0][0].w, r0.x
iadd r0.x, r0.x, CB0[0][0].z
uge r5.xyzw, r1.xyzw, r4.xyzw
movc r6.xyzw, r5.xyzw, l(5,5,5,5), l(7,7,7,7)
movc r7.xyzw, r5.xyzw, l(2925,2925,2925,2925), l(4095,4095,4095,4095)
mov r0.z, CB0[0][1].y
mov r0.w, r0.y
mov r9.x, r0.x
mov r9.y, l(0)
loop
uge r9.z, r9.y, l(4)
breakc_nz r9.z
ult r9.z, r9.y, l(2)
movc r10.xyzw, r9.zzzz, r8.xyzw, r13.xyzw
and r9.w, r9.y, l(1)
imul null, r9.w, r9.w, l(12)
ushr r10.xyzw, r10.xyzw, r9.wwww
movc r11.xyzw, r9.zzzz, r3.xyzw, r2.xyzw
ushr r11.xyzw, r11.xyzw, r9.wwww
movc r10.xyzw, r5.xyzw, r11.xyzw, r10.xyzw
ushr r12.xyzw, r11.xyzw, l(1, 1, 1, 1)
and r12.xyzw, r11.xyzw, r12.xyzw
and r12.xyzw, r5.xyzw, r12.xyzw
and r12.xyzw, r12.xyzw, l(1170, 1170, 1170, 1170)
ishl r14.xyzw, r12.xyzw, l(1, 1, 1, 1)
ushr r15.xyzw, r12.xyzw, l(1, 1, 1, 1)
iadd r12.xyzw, r12.xyzw, r14.xyzw
iadd r12.xyzw, r12.xyzw, r15.xyzw
not r14.xyzw, r12.xyzw
and r10.xyzw, r10.xyzw, r14.xyzw
iadd r15.xyzw, r7.xyzw, -r10.xyzw
and r14.xyzw, r14.xyzw, r15.xyzw
and r15.xyzw, r14.xyzw, l(7, 7, 7, 7)
and r16.xyzw, r10.xyzw, l(7, 7, 7, 7)
imul null, r16.xyzw, r1.xyzw, r16.xyzw
imad r15.xyzw, r4.xyzw, r15.xyzw, r16.xyzw
udiv r15.xyzw, null, r15.xyzw, r6.xyzw
ubfe r16.xyzw, l(3, 3, 3, 3), l(3, 3, 3, 3), r14.xyzw
ubfe r17.xyzw, l(3, 3, 3, 3), l(3, 3, 3, 3), r10.xyzw
imul null, r17.xyzw, r1.xyzw, r17.xyzw
imad r16.xyzw, r4.xyzw, r16.xyzw, r17.xyzw
udiv r16.xyzw, null, r16.xyzw, r6.xyzw
ishl r16.xyzw, r16.xyzw, l(8, 8, 8, 8)
or r15.xyzw, r15.xyzw, r16.xyzw
ubfe r16.xyzw, l(3, 3, 3, 3), l(6, 6, 6, 6), r14.xyzw
ubfe r17.xyzw, l(3, 3, 3, 3), l(6, 6, 6, 6), r10.xyzw
imul null, r17.xyzw, r1.xyzw, r17.xyzw
imad r16.xyzw, r4.xyzw, r16.xyzw, r17.xyzw
udiv r16.xyzw, null, r16.xyzw, r6.xyzw
ishl r16.xyzw, r16.xyzw, l(16, 16, 16, 16)
or r15.xyzw, r15.xyzw, r16.xyzw
ubfe r14.xyzw, l(3, 3, 3, 3), l(9, 9, 9, 9), r14.xyzw
ubfe r10.xyzw, l(3, 3, 3, 3), l(9, 9, 9, 9), r10.xyzw
imul null, r10.xyzw, r1.xyzw, r10.xyzw
imad r10.xyzw, r4.xyzw, r14.xyzw, r10.xyzw
udiv r10.xyzw, null, r10.xyzw, r6.xyzw
ishl r10.xyzw, r10.xyzw, l(24, 24, 24, 24)
or r10.xyzw, r10.xyzw, r15.xyzw
and r11.xyzw, r11.xyzw, r12.xyzw
ishl r12.xyzw, r11.xyzw, l(5, 5, 5, 5)
and r12.xyzw, r12.xyzw, l(256, 256, 256, 256)
bfi r12.xyzw, l(1, 1, 1, 1), l(0, 0, 0, 0), r11.xyzw, r12.xyzw
ishl r14.xyzw, r11.xyzw, l(10, 10, 10, 10)
and r14.xyzw, r14.xyzw, l(0x00010000, 0x00010000, 0x00010000, 0x00010000)
iadd r12.xyzw, r12.xyzw, r14.xyzw
ishl r11.xyzw, r11.xyzw, l(15, 15, 15, 15)
and r11.xyzw, r11.xyzw, l(0x01000000, 0x01000000, 0x01000000, 0x01000000)
iadd r11.xyzw, r11.xyzw, r12.xyzw
imad r10.xyzw, r11.xyzw, l(255, 255, 255, 255), r10.xyzw
store_raw U0[0].xyzw, r9.x, r10.xyzw
iadd r0.w, r0.w, l(1)
uge r9.z, r0.w, r0.z
if_nz r9.z
ret
endif
iadd r9.x, r9.x, CB0[0][0].w
iadd r9.y, r9.y, l(1)
endloop
ret
// Approximately 280 instruction slots used

View File

@ -142,6 +142,16 @@ void XeDXTFourBlocksRowToRGB8(
(((block_row_10b_3x >> 20u) / 3u) << 16u);
}
uint4 XeDXT3FourBlocksRowToA8(uint4 alpha4) {
// (alpha4 & 0xFu) | ((alpha4 & 0xFu) << 4u) |
// ((alpha4 & 0xF0u) << (8u - 4u)) | ((alpha4 & 0xF0u) << (12u - 4u)) |
// ((alpha4 & 0xF00u) << (16u - 8u)) | ((alpha4 & 0xF00u) << (20u - 8u)) |
// ((alpha4 & 0xF000u) << (24u - 12u)) | ((alpha4 & 0xF000u) << (28u - 12u))
return (alpha4 & 0xFu) | ((alpha4 & 0xFFu) << 4u) |
((alpha4 & 0xFF0u) << 8u) | ((alpha4 & 0xFF00u) << 12u) |
((alpha4 & 0xF000u) << 16u);
}
// & 0x249249 = bits 0 of 24 bits of DXT5 alpha codes.
// & 0x492492 = bits 1 of 24 bits of DXT5 alpha codes.
// & 0x924924 = bits 2 of 24 bits of DXT5 alpha codes.

View File

@ -0,0 +1,82 @@
#include "pixel_formats.hlsli"
#include "texture_copy.hlsli"
[numthreads(8, 32, 1)]
void main(uint3 xe_thread_id : SV_DispatchThreadID) {
// 1 thread = 4 DXN (16bpb) blocks to 16x4 R8G8 texels.
uint3 block_index = xe_thread_id;
block_index.x <<= 2u;
[branch] if (any(block_index >= xe_texture_copy_size_blocks)) {
return;
}
uint4 block_offsets_guest =
XeTextureCopyGuestBlockOffsets(block_index, 16u, 4u);
uint4 block_0 = xe_texture_copy_source.Load4(block_offsets_guest.x);
uint4 block_1 = xe_texture_copy_source.Load4(block_offsets_guest.y);
uint4 block_2 = xe_texture_copy_source.Load4(block_offsets_guest.z);
uint4 block_3 = xe_texture_copy_source.Load4(block_offsets_guest.w);
block_0 = XeByteSwap(block_0, xe_texture_copy_endianness);
block_1 = XeByteSwap(block_1, xe_texture_copy_endianness);
block_2 = XeByteSwap(block_2, xe_texture_copy_endianness);
block_3 = XeByteSwap(block_3, xe_texture_copy_endianness);
uint4 r_blocks_0 = uint4(block_0.x, block_1.x, block_2.x, block_3.x);
uint4 r_blocks_1 = uint4(block_0.y, block_1.y, block_2.y, block_3.y);
uint4 g_blocks_0 = uint4(block_0.z, block_1.z, block_2.z, block_3.z);
uint4 g_blocks_1 = uint4(block_0.w, block_1.w, block_2.w, block_3.w);
// Sort the codes.
uint4 r_codes_r01 = (r_blocks_0 >> 16u) | ((r_blocks_1 & 0xFFu) << 16u);
uint4 r_codes_r23 = r_blocks_1 >> 8u;
uint4 r_weights_8step_r01 = XeDXT5High8StepAlphaWeights(r_codes_r01);
uint4 r_weights_8step_r23 = XeDXT5High8StepAlphaWeights(r_codes_r23);
uint4 r_weights_6step_r01 = XeDXT5High6StepAlphaWeights(r_codes_r01);
uint4 r_weights_6step_r23 = XeDXT5High6StepAlphaWeights(r_codes_r23);
uint4 g_codes_r01 = (g_blocks_0 >> 16u) | ((g_blocks_1 & 0xFFu) << 16u);
uint4 g_codes_r23 = g_blocks_1 >> 8u;
uint4 g_weights_8step_r01 = XeDXT5High8StepAlphaWeights(g_codes_r01);
uint4 g_weights_8step_r23 = XeDXT5High8StepAlphaWeights(g_codes_r23);
uint4 g_weights_6step_r01 = XeDXT5High6StepAlphaWeights(g_codes_r01);
uint4 g_weights_6step_r23 = XeDXT5High6StepAlphaWeights(g_codes_r23);
// Get the endpoints for mixing.
uint4 r_end_low = r_blocks_0 & 0xFFu;
uint4 r_end_high = (r_blocks_0 >> 8u) & 0xFFu;
uint4 g_end_low = g_blocks_0 & 0xFFu;
uint4 g_end_high = (g_blocks_0 >> 8u) & 0xFFu;
// Uncompress and write the rows.
uint3 texel_index_host = block_index << uint3(2u, 2u, 0u);
uint texel_offset_host = XeTextureHostLinearOffset(
texel_index_host, xe_texture_copy_size_texels.y,
xe_texture_copy_host_pitch, 2u) + xe_texture_copy_host_base;
for (uint i = 0u; i < 4u; ++i) {
uint4 r_row = XeDXT5Four8StepBlocksRowToA8(
r_end_low, r_end_high,
(i < 2u ? r_weights_8step_r01 : r_weights_8step_r23) >>
((i & 1u) * 12u),
(i < 2u ? r_weights_6step_r01 : r_weights_6step_r23) >>
((i & 1u) * 12u));
uint4 g_row = XeDXT5Four8StepBlocksRowToA8(
g_end_low, g_end_high,
(i < 2u ? g_weights_8step_r01 : g_weights_8step_r23) >>
((i & 1u) * 12u),
(i < 2u ? g_weights_6step_r01 : g_weights_6step_r23) >>
((i & 1u) * 12u));
uint4 rg_row_half =
((r_row.xxyy >> uint4(0u, 16u, 0u, 16u)) & 0xFFu) |
(((r_row.xxyy >> uint4(8u, 24u, 8u, 24u)) & 0xFFu) << 16u) |
(((g_row.xxyy >> uint4(0u, 16u, 0u, 16u)) & 0xFFu) << 8u) |
(((g_row.xxyy >> uint4(8u, 24u, 8u, 24u)) & 0xFFu) << 24u);
xe_texture_copy_dest.Store4(texel_offset_host, rg_row_half);
rg_row_half =
((r_row.zzww >> uint4(0u, 16u, 0u, 16u)) & 0xFFu) |
(((r_row.zzww >> uint4(8u, 24u, 8u, 24u)) & 0xFFu) << 16u) |
(((g_row.zzww >> uint4(0u, 16u, 0u, 16u)) & 0xFFu) << 8u) |
(((g_row.zzww >> uint4(8u, 24u, 8u, 24u)) & 0xFFu) << 24u);
xe_texture_copy_dest.Store4(texel_offset_host + 16u, rg_row_half);
if (++texel_index_host.y >= xe_texture_copy_size_texels.y) {
return;
}
texel_offset_host += xe_texture_copy_host_pitch;
}
}

View File

@ -0,0 +1,64 @@
#include "pixel_formats.hlsli"
#include "texture_copy.hlsli"
[numthreads(8, 32, 1)]
void main(uint3 xe_thread_id : SV_DispatchThreadID) {
// 1 thread = 4 DXT3 (16bpb) blocks to 16x4 R8G8B8A8 texels.
uint3 block_index = xe_thread_id;
block_index.x <<= 2u;
[branch] if (any(block_index >= xe_texture_copy_size_blocks)) {
return;
}
uint4 block_offsets_guest =
XeTextureCopyGuestBlockOffsets(block_index, 16u, 4u);
uint4 block_0 = xe_texture_copy_source.Load4(block_offsets_guest.x);
uint4 block_1 = xe_texture_copy_source.Load4(block_offsets_guest.y);
uint4 block_2 = xe_texture_copy_source.Load4(block_offsets_guest.z);
uint4 block_3 = xe_texture_copy_source.Load4(block_offsets_guest.w);
block_0 = XeByteSwap(block_0, xe_texture_copy_endianness);
block_1 = XeByteSwap(block_1, xe_texture_copy_endianness);
block_2 = XeByteSwap(block_2, xe_texture_copy_endianness);
block_3 = XeByteSwap(block_3, xe_texture_copy_endianness);
uint4 alpha4_r01 = uint4(block_0.x, block_1.x, block_2.x, block_3.x);
uint4 alpha4_r23 = uint4(block_0.y, block_1.y, block_2.y, block_3.y);
uint4 rgb_codes = uint4(block_0.w, block_1.w, block_2.w, block_3.w);
// Sort the color indices so they can be used as weights for the second
// endpoint.
uint4 rgb_weights_high = XeDXTHighColorWeights(rgb_codes);
// Get the endpoints for mixing, as 8-bit components in 10-bit sequences.
uint4 rgb_565 = uint4(block_0.z, block_1.z, block_2.z, block_3.z);
uint4 rgb_10b_low, rgb_10b_high;
XeDXTColorEndpointsTo8In10(rgb_565, rgb_10b_low, rgb_10b_high);
// Uncompress and write the rows.
uint3 texel_index_host = block_index << uint3(2u, 2u, 0u);
uint texel_offset_host = XeTextureHostLinearOffset(
texel_index_host, xe_texture_copy_size_texels.y,
xe_texture_copy_host_pitch, 4u) + xe_texture_copy_host_base;
for (uint i = 0u; i < 4u; ++i) {
uint4 row_0, row_1, row_2, row_3;
XeDXTFourBlocksRowToRGB8(rgb_10b_low, rgb_10b_high,
rgb_weights_high >> (i * 8u),
row_0, row_1, row_2, row_3);
uint4 alpha_row = XeDXT3FourBlocksRowToA8(
(i < 2u ? alpha4_r01 : alpha4_r23) >> ((i & 1u) * 16u));
xe_texture_copy_dest.Store4(
texel_offset_host,
row_0 | ((alpha_row.xxxx << uint4(24u, 16u, 8u, 0u)) & 0xFF000000u));
xe_texture_copy_dest.Store4(
texel_offset_host + 16u,
row_1 | ((alpha_row.yyyy << uint4(24u, 16u, 8u, 0u)) & 0xFF000000u));
xe_texture_copy_dest.Store4(
texel_offset_host + 32u,
row_2 | ((alpha_row.zzzz << uint4(24u, 16u, 8u, 0u)) & 0xFF000000u));
xe_texture_copy_dest.Store4(
texel_offset_host + 48u,
row_3 | ((alpha_row.wwww << uint4(24u, 16u, 8u, 0u)) & 0xFF000000u));
if (++texel_index_host.y >= xe_texture_copy_size_texels.y) {
return;
}
texel_offset_host += xe_texture_copy_host_pitch;
}
}

View File

@ -1,8 +1,10 @@
#include "pixel_formats.hlsli"
#include "texture_copy.hlsli"
[numthreads(8, 32, 1)]
void main(uint3 xe_thread_id : SV_DispatchThreadID) {
// 1 thread = 4 DXT3A blocks to 4 DXT3 blocks with zero color.
// 1 thread = 4 DXT3A (8bpb) blocks to 16x4 R8 texels (no need to convert to
// DXT3 because the overhead is the same, 2x, but the size must be 4-aligned).
uint3 block_index = xe_thread_id;
block_index.x <<= 2u;
[branch] if (any(block_index >= xe_texture_copy_size_blocks)) {
@ -16,14 +18,19 @@ void main(uint3 xe_thread_id : SV_DispatchThreadID) {
xe_texture_copy_source.Load2(block_offsets_guest.w));
blocks_01 = XeByteSwap(blocks_01, xe_texture_copy_endianness);
blocks_23 = XeByteSwap(blocks_23, xe_texture_copy_endianness);
uint block_offset_host = XeTextureHostLinearOffset(
block_index, xe_texture_copy_size_blocks.y, xe_texture_copy_host_pitch,
16u) + xe_texture_copy_host_base;
xe_texture_copy_dest.Store4(block_offset_host, uint4(blocks_01.xy, 0u, 0u));
xe_texture_copy_dest.Store4(block_offset_host + 16u,
uint4(blocks_01.zw, 0u, 0u));
xe_texture_copy_dest.Store4(block_offset_host + 32u,
uint4(blocks_23.xy, 0u, 0u));
xe_texture_copy_dest.Store4(block_offset_host + 48u,
uint4(blocks_23.zw, 0u, 0u));
uint4 alpha4_r01 = uint4(blocks_01.xz, blocks_23.xz);
uint4 alpha4_r23 = uint4(blocks_01.yw, blocks_23.yw);
// Uncompress and write the rows.
uint3 texel_index_host = block_index << uint3(2u, 2u, 0u);
uint texel_offset_host = XeTextureHostLinearOffset(
texel_index_host, xe_texture_copy_size_texels.y,
xe_texture_copy_host_pitch, 1u) + xe_texture_copy_host_base;
for (uint i = 0u; i < 4u; ++i) {
xe_texture_copy_dest.Store4(texel_offset_host, XeDXT3FourBlocksRowToA8(
(i < 2u ? alpha4_r01 : alpha4_r23) >> ((i & 1u) * 16u)));
if (++texel_index_host.y >= xe_texture_copy_size_texels.y) {
return;
}
texel_offset_host += xe_texture_copy_host_pitch;
}
}

View File

@ -0,0 +1,52 @@
#include "pixel_formats.hlsli"
#include "texture_copy.hlsli"
[numthreads(8, 32, 1)]
void main(uint3 xe_thread_id : SV_DispatchThreadID) {
// 1 thread = 4 DXT5A (8bpb) blocks to 16x4 R8 texels.
uint3 block_index = xe_thread_id;
block_index.x <<= 2u;
[branch] if (any(block_index >= xe_texture_copy_size_blocks)) {
return;
}
uint4 block_offsets_guest =
XeTextureCopyGuestBlockOffsets(block_index, 8u, 3u);
uint4 blocks_01 = uint4(xe_texture_copy_source.Load2(block_offsets_guest.x),
xe_texture_copy_source.Load2(block_offsets_guest.y));
uint4 blocks_23 = uint4(xe_texture_copy_source.Load2(block_offsets_guest.z),
xe_texture_copy_source.Load2(block_offsets_guest.w));
blocks_01 = XeByteSwap(blocks_01, xe_texture_copy_endianness);
blocks_23 = XeByteSwap(blocks_23, xe_texture_copy_endianness);
uint4 r_blocks_0 = uint4(blocks_01.xz, blocks_23.xz);
uint4 r_blocks_1 = uint4(blocks_01.yw, blocks_23.yw);
// Sort the codes.
uint4 r_codes_r01 = (r_blocks_0 >> 16u) | ((r_blocks_1 & 0xFFu) << 16u);
uint4 r_codes_r23 = r_blocks_1 >> 8u;
uint4 r_weights_8step_r01 = XeDXT5High8StepAlphaWeights(r_codes_r01);
uint4 r_weights_8step_r23 = XeDXT5High8StepAlphaWeights(r_codes_r23);
uint4 r_weights_6step_r01 = XeDXT5High6StepAlphaWeights(r_codes_r01);
uint4 r_weights_6step_r23 = XeDXT5High6StepAlphaWeights(r_codes_r23);
// Get the endpoints for mixing.
uint4 r_end_low = r_blocks_0 & 0xFFu;
uint4 r_end_high = (r_blocks_0 >> 8u) & 0xFFu;
// Uncompress and write the rows.
uint3 texel_index_host = block_index << uint3(2u, 2u, 0u);
uint texel_offset_host = XeTextureHostLinearOffset(
texel_index_host, xe_texture_copy_size_texels.y,
xe_texture_copy_host_pitch, 1u) + xe_texture_copy_host_base;
for (uint i = 0u; i < 4u; ++i) {
xe_texture_copy_dest.Store4(texel_offset_host, XeDXT5Four8StepBlocksRowToA8(
r_end_low, r_end_high,
(i < 2u ? r_weights_8step_r01 : r_weights_8step_r23) >>
((i & 1u) * 12u),
(i < 2u ? r_weights_6step_r01 : r_weights_6step_r23) >>
((i & 1u) * 12u)));
if (++texel_index_host.y >= xe_texture_copy_size_texels.y) {
return;
}
texel_offset_host += xe_texture_copy_host_pitch;
}
}

View File

@ -34,143 +34,210 @@ namespace d3d12 {
#include "xenia/gpu/d3d12/shaders/dxbc/texture_load_ctx1_cs.h"
#include "xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_float_cs.h"
#include "xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_unorm_cs.h"
#include "xenia/gpu/d3d12/shaders/dxbc/texture_load_dxn_rg8_cs.h"
#include "xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt1_rgba8_cs.h"
#include "xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3_rgba8_cs.h"
#include "xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3a_cs.h"
#include "xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5_rgba8_cs.h"
#include "xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5a_r8_cs.h"
#include "xenia/gpu/d3d12/shaders/dxbc/texture_tile_32bpp_cs.h"
#include "xenia/gpu/d3d12/shaders/dxbc/texture_tile_64bpp_cs.h"
const TextureCache::HostFormat TextureCache::host_formats_[64] = {
// k_1_REVERSE
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_1
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_8
{DXGI_FORMAT_R8_UNORM, LoadMode::k8bpb, TileMode::kUnknown},
{DXGI_FORMAT_R8_UNORM, LoadMode::k8bpb, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_1_5_5_5
{DXGI_FORMAT_B5G5R5A1_UNORM, LoadMode::k16bpb, TileMode::kUnknown},
{DXGI_FORMAT_B5G5R5A1_UNORM, LoadMode::k16bpb, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_5_6_5
{DXGI_FORMAT_B5G6R5_UNORM, LoadMode::k16bpb, TileMode::kUnknown},
{DXGI_FORMAT_B5G6R5_UNORM, LoadMode::k16bpb, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_6_5_5
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_8_8_8_8
{DXGI_FORMAT_R8G8B8A8_UNORM, LoadMode::k32bpb, TileMode::k32bpp},
{DXGI_FORMAT_R8G8B8A8_UNORM, LoadMode::k32bpb, TileMode::k32bpp,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_2_10_10_10
{DXGI_FORMAT_R10G10B10A2_UNORM, LoadMode::k32bpb, TileMode::k32bpp},
{DXGI_FORMAT_R10G10B10A2_UNORM, LoadMode::k32bpb, TileMode::k32bpp,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_8_A
{DXGI_FORMAT_R8_UNORM, LoadMode::k8bpb, TileMode::kUnknown},
{DXGI_FORMAT_R8_UNORM, LoadMode::k8bpb, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_8_B
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_8_8
{DXGI_FORMAT_R8G8_UNORM, LoadMode::k16bpb, TileMode::kUnknown},
{DXGI_FORMAT_R8G8_UNORM, LoadMode::k16bpb, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_Cr_Y1_Cb_Y0_REP
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_Y1_Cr_Y0_Cb_REP
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_16_16_EDRAM
{DXGI_FORMAT_R16G16_UNORM, LoadMode::k32bpb, TileMode::k32bpp},
{DXGI_FORMAT_R16G16_UNORM, LoadMode::k32bpb, TileMode::k32bpp,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_8_8_8_8_A
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_4_4_4_4
{DXGI_FORMAT_B4G4R4A4_UNORM, LoadMode::k16bpb, TileMode::kUnknown},
{DXGI_FORMAT_B4G4R4A4_UNORM, LoadMode::k16bpb, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_10_11_11
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_11_11_10
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_DXT1
{DXGI_FORMAT_BC1_UNORM, LoadMode::k64bpb, TileMode::kUnknown},
{DXGI_FORMAT_BC1_UNORM, LoadMode::k64bpb, TileMode::kUnknown,
DXGI_FORMAT_R8G8B8A8_UNORM, LoadMode::kDXT1ToRGBA8},
// k_DXT2_3
{DXGI_FORMAT_BC2_UNORM, LoadMode::k128bpb, TileMode::kUnknown},
{DXGI_FORMAT_BC2_UNORM, LoadMode::k128bpb, TileMode::kUnknown,
DXGI_FORMAT_R8G8B8A8_UNORM, LoadMode::kDXT3ToRGBA8},
// k_DXT4_5
{DXGI_FORMAT_BC3_UNORM, LoadMode::k128bpb, TileMode::kUnknown},
{DXGI_FORMAT_BC3_UNORM, LoadMode::k128bpb, TileMode::kUnknown,
DXGI_FORMAT_R8G8B8A8_UNORM, LoadMode::kDXT5ToRGBA8},
// k_16_16_16_16_EDRAM
{DXGI_FORMAT_R16G16B16A16_UNORM, LoadMode::k64bpb, TileMode::k64bpp},
{DXGI_FORMAT_R16G16B16A16_UNORM, LoadMode::k64bpb, TileMode::k64bpp,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// R32_FLOAT for depth because shaders would require an additional SRV to
// sample stencil, which we don't provide.
// k_24_8
{DXGI_FORMAT_R32_FLOAT, LoadMode::kDepthUnorm, TileMode::kUnknown},
{DXGI_FORMAT_R32_FLOAT, LoadMode::kDepthUnorm, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_24_8_FLOAT
{DXGI_FORMAT_R32_FLOAT, LoadMode::kDepthFloat, TileMode::kUnknown},
{DXGI_FORMAT_R32_FLOAT, LoadMode::kDepthFloat, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_16
{DXGI_FORMAT_R16_UNORM, LoadMode::k16bpb, TileMode::kUnknown},
{DXGI_FORMAT_R16_UNORM, LoadMode::k16bpb, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_16_16
{DXGI_FORMAT_R16G16_UNORM, LoadMode::k32bpb, TileMode::k32bpp},
{DXGI_FORMAT_R16G16_UNORM, LoadMode::k32bpb, TileMode::k32bpp,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_16_16_16_16
{DXGI_FORMAT_R16G16B16A16_UNORM, LoadMode::k64bpb, TileMode::k64bpp},
{DXGI_FORMAT_R16G16B16A16_UNORM, LoadMode::k64bpb, TileMode::k64bpp,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_16_EXPAND
{DXGI_FORMAT_R16_FLOAT, LoadMode::k16bpb, TileMode::kUnknown},
{DXGI_FORMAT_R16_FLOAT, LoadMode::k16bpb, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_16_16_EXPAND
{DXGI_FORMAT_R16G16_FLOAT, LoadMode::k32bpb, TileMode::k32bpp},
{DXGI_FORMAT_R16G16_FLOAT, LoadMode::k32bpb, TileMode::k32bpp,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_16_16_16_16_EXPAND
{DXGI_FORMAT_R16G16B16A16_FLOAT, LoadMode::k64bpb, TileMode::k64bpp},
{DXGI_FORMAT_R16G16B16A16_FLOAT, LoadMode::k64bpb, TileMode::k64bpp,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_16_FLOAT
{DXGI_FORMAT_R16_FLOAT, LoadMode::k16bpb, TileMode::kUnknown},
{DXGI_FORMAT_R16_FLOAT, LoadMode::k16bpb, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_16_16_FLOAT
{DXGI_FORMAT_R16G16_FLOAT, LoadMode::k32bpb, TileMode::k32bpp},
{DXGI_FORMAT_R16G16_FLOAT, LoadMode::k32bpb, TileMode::k32bpp,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_16_16_16_16_FLOAT
{DXGI_FORMAT_R16G16B16A16_FLOAT, LoadMode::k64bpb, TileMode::k64bpp},
{DXGI_FORMAT_R16G16B16A16_FLOAT, LoadMode::k64bpb, TileMode::k64bpp,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_32
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_32_32
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_32_32_32_32
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_32_FLOAT
{DXGI_FORMAT_R32_FLOAT, LoadMode::k32bpb, TileMode::k32bpp},
{DXGI_FORMAT_R32_FLOAT, LoadMode::k32bpb, TileMode::k32bpp,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_32_32_FLOAT
{DXGI_FORMAT_R32G32_FLOAT, LoadMode::k64bpb, TileMode::k64bpp},
{DXGI_FORMAT_R32G32_FLOAT, LoadMode::k64bpb, TileMode::k64bpp,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_32_32_32_32_FLOAT
{DXGI_FORMAT_R32G32B32A32_FLOAT, LoadMode::k128bpb, TileMode::kUnknown},
{DXGI_FORMAT_R32G32B32A32_FLOAT, LoadMode::k128bpb, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_32_AS_8
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_32_AS_8_8
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_16_MPEG
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_16_16_MPEG
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_8_INTERLACED
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_32_AS_8_INTERLACED
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_32_AS_8_8_INTERLACED
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_16_INTERLACED
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_16_MPEG_INTERLACED
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_16_16_MPEG_INTERLACED
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_DXN
{DXGI_FORMAT_BC5_UNORM, LoadMode::k128bpb, TileMode::kUnknown},
{DXGI_FORMAT_BC5_UNORM, LoadMode::k128bpb, TileMode::kUnknown,
DXGI_FORMAT_R8G8_UNORM, LoadMode::kDXNToRG8},
// k_8_8_8_8_AS_16_16_16_16
{DXGI_FORMAT_R8G8B8A8_UNORM, LoadMode::k32bpb, TileMode::k32bpp},
{DXGI_FORMAT_R8G8B8A8_UNORM, LoadMode::k32bpb, TileMode::k32bpp,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_DXT1_AS_16_16_16_16
{DXGI_FORMAT_BC1_UNORM, LoadMode::k64bpb, TileMode::kUnknown},
{DXGI_FORMAT_BC1_UNORM, LoadMode::k64bpb, TileMode::kUnknown,
DXGI_FORMAT_R8G8B8A8_UNORM, LoadMode::kDXT1ToRGBA8},
// k_DXT2_3_AS_16_16_16_16
{DXGI_FORMAT_BC2_UNORM, LoadMode::k128bpb, TileMode::kUnknown},
{DXGI_FORMAT_BC2_UNORM, LoadMode::k128bpb, TileMode::kUnknown,
DXGI_FORMAT_R8G8B8A8_UNORM, LoadMode::kDXT3ToRGBA8},
// k_DXT4_5_AS_16_16_16_16
{DXGI_FORMAT_BC3_UNORM, LoadMode::k128bpb, TileMode::kUnknown},
{DXGI_FORMAT_BC3_UNORM, LoadMode::k128bpb, TileMode::kUnknown,
DXGI_FORMAT_R8G8B8A8_UNORM, LoadMode::kDXT5ToRGBA8},
// k_2_10_10_10_AS_16_16_16_16
{DXGI_FORMAT_R10G10B10A2_UNORM, LoadMode::k32bpb, TileMode::k32bpp},
{DXGI_FORMAT_R10G10B10A2_UNORM, LoadMode::k32bpb, TileMode::k32bpp,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_10_11_11_AS_16_16_16_16
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_11_11_10_AS_16_16_16_16
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_32_32_32_FLOAT
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_DXT3A
{DXGI_FORMAT_BC2_UNORM, LoadMode::kDXT3A, TileMode::kUnknown},
{DXGI_FORMAT_R8_UNORM, LoadMode::kDXT3A, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_DXT5A
{DXGI_FORMAT_BC4_UNORM, LoadMode::k64bpb, TileMode::kUnknown},
{DXGI_FORMAT_BC4_UNORM, LoadMode::k64bpb, TileMode::kUnknown,
DXGI_FORMAT_R8_UNORM, LoadMode::kDXT5AToR8},
// k_CTX1
{DXGI_FORMAT_R8G8_UNORM, LoadMode::kCTX1, TileMode::kUnknown},
{DXGI_FORMAT_R8G8_UNORM, LoadMode::kCTX1, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_DXT3A_AS_1_1_1_1
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_8_8_8_8_GAMMA
{DXGI_FORMAT_R8G8B8A8_UNORM, LoadMode::k32bpb, TileMode::k32bpp},
{DXGI_FORMAT_R8G8B8A8_UNORM, LoadMode::k32bpb, TileMode::k32bpp,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
// k_2_10_10_10_FLOAT_EDRAM
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown},
{DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, TileMode::kUnknown,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown},
};
const char* const TextureCache::dimension_names_[4] = {"1D", "2D", "3D",
@ -183,8 +250,11 @@ const TextureCache::LoadModeInfo TextureCache::load_mode_info_[] = {
{texture_load_64bpb_cs, sizeof(texture_load_64bpb_cs)},
{texture_load_128bpb_cs, sizeof(texture_load_128bpb_cs)},
{texture_load_dxt1_rgba8_cs, sizeof(texture_load_dxt1_rgba8_cs)},
{texture_load_dxt3_rgba8_cs, sizeof(texture_load_dxt3_rgba8_cs)},
{texture_load_dxt5_rgba8_cs, sizeof(texture_load_dxt5_rgba8_cs)},
{texture_load_dxn_rg8_cs, sizeof(texture_load_dxn_rg8_cs)},
{texture_load_dxt3a_cs, sizeof(texture_load_dxt3a_cs)},
{texture_load_dxt5a_r8_cs, sizeof(texture_load_dxt5a_r8_cs)},
{texture_load_ctx1_cs, sizeof(texture_load_ctx1_cs)},
{texture_load_depth_unorm_cs, sizeof(texture_load_depth_unorm_cs)},
{texture_load_depth_float_cs, sizeof(texture_load_depth_float_cs)},
@ -399,7 +469,7 @@ void TextureCache::WriteTextureSRV(uint32_t fetch_constant,
D3D12_CPU_DESCRIPTOR_HANDLE handle) {
const TextureBinding& binding = texture_bindings_[fetch_constant];
D3D12_SHADER_RESOURCE_VIEW_DESC desc;
desc.Format = host_formats_[uint32_t(binding.key.format)].dxgi_format;
desc.Format = GetDXGIFormat(binding.key);
if (desc.Format == DXGI_FORMAT_UNKNOWN) {
// A null descriptor must still have a valid format.
desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
@ -633,7 +703,7 @@ bool TextureCache::RequestSwapTexture(D3D12_CPU_DESCRIPTOR_HANDLE handle) {
D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE);
texture->state = D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE;
D3D12_SHADER_RESOURCE_VIEW_DESC srv_desc;
srv_desc.Format = host_formats_[uint32_t(key.format)].dxgi_format;
srv_desc.Format = GetDXGIFormat(key);
srv_desc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2D;
srv_desc.Shader4ComponentMapping =
swizzle |
@ -648,6 +718,18 @@ bool TextureCache::RequestSwapTexture(D3D12_CPU_DESCRIPTOR_HANDLE handle) {
return true;
}
bool TextureCache::IsDecompressionNeeded(TextureFormat format, uint32_t width,
uint32_t height) {
DXGI_FORMAT dxgi_format_uncompressed =
host_formats_[uint32_t(format)].dxgi_format_uncompressed;
if (dxgi_format_uncompressed == DXGI_FORMAT_UNKNOWN) {
return false;
}
const FormatInfo* format_info = FormatInfo::Get(format);
return (width & (format_info->block_width - 1)) != 0 ||
(height & (format_info->block_height - 1)) != 0;
}
void TextureCache::TextureKeyFromFetchConstant(
const xenos::xe_gpu_texture_fetch_t& fetch, TextureKey& key_out,
uint32_t& swizzle_out) {
@ -750,14 +832,13 @@ void TextureCache::TextureKeyFromFetchConstant(
// Swap red and blue.
swizzle ^= ((~swizzle & (1 | (1 << 3) | (1 << 6) | (1 << 9))) << 1) &
(swizzle_not_constant >> 1);
} else if (format == TextureFormat::k_DXT3A) {
// DXT3A is emulated as DXT3 with zero color, but the alpha should be
// replicated into all channels.
} else if (format == TextureFormat::k_DXT3A ||
format == TextureFormat::k_DXT5A) {
// DXT3A is emulated as R8, DXT5A is emulated as BC4 or (for unaligned size)
// R8, but DXT5 alpha (in the red component of R8 and BC4) should be
// replicated.
// http://fileadmin.cs.lth.se/cs/Personal/Michael_Doggett/talks/unc-xenos-doggett.pdf
// If not 0.0 or 1.0 (if the high bit isn't set), make 3 (alpha).
swizzle |= (swizzle_not_constant >> 1) | (swizzle_not_constant >> 2);
} else if (format == TextureFormat::k_DXT5A) {
// DXT5A is emulated as BC4, but DXT5 alpha (BC4 red) should be replicated.
// If not 0.0 or 1.0 (if the high bit isn't set), make 0 (red).
swizzle &= ~((swizzle_not_constant >> 1) | (swizzle_not_constant >> 2));
}
swizzle_out = swizzle;
@ -803,7 +884,7 @@ TextureCache::Texture* TextureCache::FindOrCreateTexture(TextureKey key) {
// Create the resource. If failed to create one, don't create a texture object
// at all so it won't be in indeterminate state.
D3D12_RESOURCE_DESC desc;
desc.Format = host_formats_[uint32_t(key.format)].dxgi_format;
desc.Format = GetDXGIFormat(key);
if (desc.Format == DXGI_FORMAT_UNKNOWN) {
return nullptr;
}
@ -921,12 +1002,17 @@ bool TextureCache::LoadTextureData(Texture* texture) {
auto device = provider->GetDevice();
// Get the pipeline.
const HostFormat& host_format = host_formats_[uint32_t(texture->key.format)];
if (host_format.load_mode == LoadMode::kUnknown) {
TextureFormat guest_format = texture->key.format;
uint32_t width = texture->key.width;
uint32_t height = texture->key.height;
bool decompress = IsDecompressionNeeded(guest_format, width, height);
const HostFormat& host_format = host_formats_[uint32_t(guest_format)];
LoadMode load_mode =
decompress ? host_format.decompress_mode : host_format.load_mode;
if (load_mode == LoadMode::kUnknown) {
return false;
}
ID3D12PipelineState* pipeline =
load_pipelines_[uint32_t(host_format.load_mode)];
ID3D12PipelineState* pipeline = load_pipelines_[uint32_t(load_mode)];
if (pipeline == nullptr) {
return false;
}
@ -947,11 +1033,8 @@ bool TextureCache::LoadTextureData(Texture* texture) {
// Get the guest layout.
bool is_3d = texture->key.dimension == Dimension::k3D;
uint32_t width = texture->key.width;
uint32_t height = texture->key.height;
uint32_t depth = is_3d ? texture->key.depth : 1;
uint32_t slice_count = is_3d ? 1 : texture->key.depth;
TextureFormat guest_format = texture->key.format;
const FormatInfo* guest_format_info = FormatInfo::Get(guest_format);
uint32_t block_width = guest_format_info->block_width;
uint32_t block_height = guest_format_info->block_height;

View File

@ -99,9 +99,12 @@ class TextureCache {
k32bpb,
k64bpb,
k128bpb,
kDXT1AsRGBA8,
kDXT5AsRGBA8,
kDXT1ToRGBA8,
kDXT3ToRGBA8,
kDXT5ToRGBA8,
kDXNToRG8,
kDXT3A,
kDXT5AToR8,
kCTX1,
kDepthUnorm,
kDepthFloat,
@ -133,9 +136,15 @@ class TextureCache {
};
struct HostFormat {
// Format info for the regular case.
DXGI_FORMAT dxgi_format;
LoadMode load_mode;
TileMode tile_mode;
// Uncompression info for when the regular host format for this texture is
// block-compressed, but the size is not block-aligned, and thus such
// texture cannot be created in Direct3D on PC and needs decompression.
DXGI_FORMAT dxgi_format_uncompressed;
LoadMode decompress_mode;
};
union TextureKey {
@ -274,6 +283,21 @@ class TextureCache {
Texture* texture;
};
// Whether decompression is needed on the host (Direct3D only allows creation
// of block-compressed textures with 4x4-aligned dimensions on PC).
static bool IsDecompressionNeeded(TextureFormat format, uint32_t width,
uint32_t height);
static inline DXGI_FORMAT GetDXGIFormat(TextureFormat format, uint32_t width,
uint32_t height) {
const HostFormat& host_format = host_formats_[uint32_t(format)];
return IsDecompressionNeeded(format, width, height)
? host_format.dxgi_format_uncompressed
: host_format.dxgi_format;
}
static inline DXGI_FORMAT GetDXGIFormat(TextureKey key) {
return GetDXGIFormat(key.format, key.width, key.height);
}
// Converts a texture fetch constant to a texture key, normalizing and
// validating the values, or creating an invalid key.
static void TextureKeyFromFetchConstant(