2020-11-03 12:01:14 +00:00
|
|
|
From 99da4393139d428baf09d751af3d072229839126 Mon Sep 17 00:00:00 2001
|
2020-04-28 08:50:06 +00:00
|
|
|
From: Laszlo Ersek <lersek@redhat.com>
|
|
|
|
Date: Thu, 12 Jun 2014 00:17:59 +0200
|
|
|
|
Subject: OvmfPkg: QemuVideoDxe: enable debug messages in VbeShim (RHEL only)
|
|
|
|
|
2020-11-03 12:01:14 +00:00
|
|
|
Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] ->
|
|
|
|
RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase:
|
|
|
|
|
|
|
|
- no changes
|
|
|
|
|
2020-04-28 08:50:06 +00:00
|
|
|
Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] ->
|
|
|
|
RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase:
|
|
|
|
|
|
|
|
- no changes
|
|
|
|
|
|
|
|
Notes about the RHEL-8.0/20180508-ee3198e672e2 ->
|
|
|
|
RHEL-8.1/20190308-89910a39dcfd rebase:
|
|
|
|
|
|
|
|
- no changes
|
|
|
|
|
|
|
|
Notes about the RHEL-7.6/ovmf-20180508-2.gitee3198e672e2.el7 ->
|
|
|
|
RHEL-8.0/20180508-ee3198e672e2 rebase:
|
|
|
|
|
|
|
|
- reorder the rebase changelog in the commit message so that it reads like
|
|
|
|
a blog: place more recent entries near the top
|
|
|
|
- no changes to the patch body
|
|
|
|
|
|
|
|
Notes about the 20171011-92d07e48907f -> 20180508-ee3198e672e2 rebase:
|
|
|
|
|
|
|
|
- update commit message as requested in
|
|
|
|
<https://bugzilla.redhat.com/show_bug.cgi?id=1503316#c0>
|
|
|
|
|
|
|
|
Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase:
|
|
|
|
|
|
|
|
- no changes
|
|
|
|
|
|
|
|
Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase:
|
|
|
|
|
|
|
|
- no changes
|
|
|
|
|
|
|
|
The Int10h VBE Shim is capable of emitting short debug messages when the
|
|
|
|
win2k8r2 UEFI guest uses (emulates) the Video BIOS. In upstream the quiet
|
|
|
|
version is preferred; for us debug messages are important as a default.
|
|
|
|
|
|
|
|
For this patch, the DEBUG macro is enabled in the assembly file, and then
|
|
|
|
the header file is regenerated from the assembly, by running
|
|
|
|
"OvmfPkg/QemuVideoDxe/VbeShim.sh".
|
|
|
|
|
|
|
|
"VbeShim.h" is not auto-generated; it is manually generated. The patch
|
|
|
|
does not add "VbeShim.h", it just updates both "VbeShim.asm" and (the
|
|
|
|
manually re-generated) "VbeShim.h" atomically. Doing so helps with local
|
|
|
|
downstream builds, with bisection, and also keeps redhat/README a bit
|
|
|
|
simpler.
|
|
|
|
|
|
|
|
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
|
|
|
|
(cherry picked from commit ccda46526bb2e573d9b54f0db75d27e442b4566f)
|
|
|
|
(cherry picked from commit ed45b26dbeadd63dd8f2edf627290957d8bbb3b2)
|
|
|
|
(cherry picked from commit 9a8a034ebc082f86fdbb54dc1303a5059508e14c)
|
|
|
|
(cherry picked from commit 7046d6040181bb0f76a5ebd680e0dc701c895dba)
|
|
|
|
(cherry picked from commit 4dd1cc745bc9a8c8b32b5810b40743fed1e36d7e)
|
|
|
|
(cherry picked from commit bd264265a99c60f45cadaa4109a9db59ae218471)
|
2020-11-03 12:01:14 +00:00
|
|
|
(cherry picked from commit 3aa0316ea1db5416cb528179a3ba5ce37c1279b7)
|
2020-04-28 08:50:06 +00:00
|
|
|
---
|
|
|
|
OvmfPkg/QemuVideoDxe/VbeShim.asm | 2 +-
|
|
|
|
OvmfPkg/QemuVideoDxe/VbeShim.h | 481 ++++++++++++++++++++-----------
|
|
|
|
2 files changed, 308 insertions(+), 175 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/OvmfPkg/QemuVideoDxe/VbeShim.asm b/OvmfPkg/QemuVideoDxe/VbeShim.asm
|
2020-11-03 12:01:14 +00:00
|
|
|
index 1d284b2641..0d5cfaf1e4 100644
|
2020-04-28 08:50:06 +00:00
|
|
|
--- a/OvmfPkg/QemuVideoDxe/VbeShim.asm
|
|
|
|
+++ b/OvmfPkg/QemuVideoDxe/VbeShim.asm
|
|
|
|
@@ -12,7 +12,7 @@
|
|
|
|
;------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
; enable this macro for debug messages
|
|
|
|
-;%define DEBUG
|
|
|
|
+%define DEBUG
|
|
|
|
|
|
|
|
%macro DebugLog 1
|
|
|
|
%ifdef DEBUG
|
|
|
|
diff --git a/OvmfPkg/QemuVideoDxe/VbeShim.h b/OvmfPkg/QemuVideoDxe/VbeShim.h
|
|
|
|
index cc9b6e14cd..325d6478a1 100644
|
|
|
|
--- a/OvmfPkg/QemuVideoDxe/VbeShim.h
|
|
|
|
+++ b/OvmfPkg/QemuVideoDxe/VbeShim.h
|
|
|
|
@@ -517,185 +517,318 @@ STATIC CONST UINT8 mVbeShim[] = {
|
|
|
|
/* 000001FE nop */ 0x90,
|
|
|
|
/* 000001FF nop */ 0x90,
|
|
|
|
/* 00000200 cmp ax,0x4f00 */ 0x3D, 0x00, 0x4F,
|
|
|
|
- /* 00000203 jz 0x22d */ 0x74, 0x28,
|
|
|
|
+ /* 00000203 jz 0x235 */ 0x74, 0x30,
|
|
|
|
/* 00000205 cmp ax,0x4f01 */ 0x3D, 0x01, 0x4F,
|
|
|
|
- /* 00000208 jz 0x245 */ 0x74, 0x3B,
|
|
|
|
+ /* 00000208 jz 0x255 */ 0x74, 0x4B,
|
|
|
|
/* 0000020A cmp ax,0x4f02 */ 0x3D, 0x02, 0x4F,
|
|
|
|
- /* 0000020D jz 0x269 */ 0x74, 0x5A,
|
|
|
|
+ /* 0000020D jz 0x289 */ 0x74, 0x7A,
|
|
|
|
/* 0000020F cmp ax,0x4f03 */ 0x3D, 0x03, 0x4F,
|
|
|
|
- /* 00000212 jz word 0x331 */ 0x0F, 0x84, 0x1B, 0x01,
|
|
|
|
+ /* 00000212 jz word 0x361 */ 0x0F, 0x84, 0x4B, 0x01,
|
|
|
|
/* 00000216 cmp ax,0x4f10 */ 0x3D, 0x10, 0x4F,
|
|
|
|
- /* 00000219 jz word 0x336 */ 0x0F, 0x84, 0x19, 0x01,
|
|
|
|
+ /* 00000219 jz word 0x36e */ 0x0F, 0x84, 0x51, 0x01,
|
|
|
|
/* 0000021D cmp ax,0x4f15 */ 0x3D, 0x15, 0x4F,
|
|
|
|
- /* 00000220 jz word 0x338 */ 0x0F, 0x84, 0x14, 0x01,
|
|
|
|
+ /* 00000220 jz word 0x378 */ 0x0F, 0x84, 0x54, 0x01,
|
|
|
|
/* 00000224 cmp ah,0x0 */ 0x80, 0xFC, 0x00,
|
|
|
|
- /* 00000227 jz word 0x33a */ 0x0F, 0x84, 0x0F, 0x01,
|
|
|
|
- /* 0000022B jmp short 0x22b */ 0xEB, 0xFE,
|
|
|
|
- /* 0000022D push es */ 0x06,
|
|
|
|
- /* 0000022E push di */ 0x57,
|
|
|
|
- /* 0000022F push ds */ 0x1E,
|
|
|
|
- /* 00000230 push si */ 0x56,
|
|
|
|
- /* 00000231 push cx */ 0x51,
|
|
|
|
- /* 00000232 push cs */ 0x0E,
|
|
|
|
- /* 00000233 pop ds */ 0x1F,
|
|
|
|
- /* 00000234 mov si,0x0 */ 0xBE, 0x00, 0x00,
|
|
|
|
- /* 00000237 mov cx,0x100 */ 0xB9, 0x00, 0x01,
|
|
|
|
- /* 0000023A cld */ 0xFC,
|
|
|
|
- /* 0000023B rep movsb */ 0xF3, 0xA4,
|
|
|
|
- /* 0000023D pop cx */ 0x59,
|
|
|
|
- /* 0000023E pop si */ 0x5E,
|
|
|
|
- /* 0000023F pop ds */ 0x1F,
|
|
|
|
- /* 00000240 pop di */ 0x5F,
|
|
|
|
- /* 00000241 pop es */ 0x07,
|
|
|
|
- /* 00000242 jmp word 0x34c */ 0xE9, 0x07, 0x01,
|
|
|
|
- /* 00000245 push es */ 0x06,
|
|
|
|
- /* 00000246 push di */ 0x57,
|
|
|
|
- /* 00000247 push ds */ 0x1E,
|
|
|
|
- /* 00000248 push si */ 0x56,
|
|
|
|
- /* 00000249 push cx */ 0x51,
|
|
|
|
- /* 0000024A and cx,0xbfff */ 0x81, 0xE1, 0xFF, 0xBF,
|
|
|
|
- /* 0000024E cmp cx,0xf1 */ 0x81, 0xF9, 0xF1, 0x00,
|
|
|
|
- /* 00000252 jz 0x256 */ 0x74, 0x02,
|
|
|
|
- /* 00000254 jmp short 0x22b */ 0xEB, 0xD5,
|
|
|
|
- /* 00000256 push cs */ 0x0E,
|
|
|
|
- /* 00000257 pop ds */ 0x1F,
|
|
|
|
- /* 00000258 mov si,0x100 */ 0xBE, 0x00, 0x01,
|
|
|
|
- /* 0000025B mov cx,0x100 */ 0xB9, 0x00, 0x01,
|
|
|
|
- /* 0000025E cld */ 0xFC,
|
|
|
|
- /* 0000025F rep movsb */ 0xF3, 0xA4,
|
|
|
|
- /* 00000261 pop cx */ 0x59,
|
|
|
|
- /* 00000262 pop si */ 0x5E,
|
|
|
|
- /* 00000263 pop ds */ 0x1F,
|
|
|
|
- /* 00000264 pop di */ 0x5F,
|
|
|
|
- /* 00000265 pop es */ 0x07,
|
|
|
|
- /* 00000266 jmp word 0x34c */ 0xE9, 0xE3, 0x00,
|
|
|
|
- /* 00000269 push dx */ 0x52,
|
|
|
|
- /* 0000026A push ax */ 0x50,
|
|
|
|
- /* 0000026B cmp bx,0x40f1 */ 0x81, 0xFB, 0xF1, 0x40,
|
|
|
|
- /* 0000026F jz 0x273 */ 0x74, 0x02,
|
|
|
|
- /* 00000271 jmp short 0x22b */ 0xEB, 0xB8,
|
|
|
|
- /* 00000273 mov dx,0x3c0 */ 0xBA, 0xC0, 0x03,
|
|
|
|
- /* 00000276 mov al,0x20 */ 0xB0, 0x20,
|
|
|
|
- /* 00000278 out dx,al */ 0xEE,
|
|
|
|
- /* 00000279 push dx */ 0x52,
|
|
|
|
- /* 0000027A push ax */ 0x50,
|
|
|
|
- /* 0000027B mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
- /* 0000027E mov ax,0x4 */ 0xB8, 0x04, 0x00,
|
|
|
|
- /* 00000281 out dx,ax */ 0xEF,
|
|
|
|
- /* 00000282 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
- /* 00000285 mov ax,0x0 */ 0xB8, 0x00, 0x00,
|
|
|
|
- /* 00000288 out dx,ax */ 0xEF,
|
|
|
|
- /* 00000289 pop ax */ 0x58,
|
|
|
|
- /* 0000028A pop dx */ 0x5A,
|
|
|
|
- /* 0000028B push dx */ 0x52,
|
|
|
|
- /* 0000028C push ax */ 0x50,
|
|
|
|
- /* 0000028D mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
- /* 00000290 mov ax,0x5 */ 0xB8, 0x05, 0x00,
|
|
|
|
- /* 00000293 out dx,ax */ 0xEF,
|
|
|
|
- /* 00000294 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
- /* 00000297 mov ax,0x0 */ 0xB8, 0x00, 0x00,
|
|
|
|
- /* 0000029A out dx,ax */ 0xEF,
|
|
|
|
- /* 0000029B pop ax */ 0x58,
|
|
|
|
- /* 0000029C pop dx */ 0x5A,
|
|
|
|
- /* 0000029D push dx */ 0x52,
|
|
|
|
- /* 0000029E push ax */ 0x50,
|
|
|
|
- /* 0000029F mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
- /* 000002A2 mov ax,0x8 */ 0xB8, 0x08, 0x00,
|
|
|
|
- /* 000002A5 out dx,ax */ 0xEF,
|
|
|
|
- /* 000002A6 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
- /* 000002A9 mov ax,0x0 */ 0xB8, 0x00, 0x00,
|
|
|
|
- /* 000002AC out dx,ax */ 0xEF,
|
|
|
|
- /* 000002AD pop ax */ 0x58,
|
|
|
|
- /* 000002AE pop dx */ 0x5A,
|
|
|
|
- /* 000002AF push dx */ 0x52,
|
|
|
|
- /* 000002B0 push ax */ 0x50,
|
|
|
|
- /* 000002B1 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
- /* 000002B4 mov ax,0x9 */ 0xB8, 0x09, 0x00,
|
|
|
|
- /* 000002B7 out dx,ax */ 0xEF,
|
|
|
|
- /* 000002B8 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
- /* 000002BB mov ax,0x0 */ 0xB8, 0x00, 0x00,
|
|
|
|
- /* 000002BE out dx,ax */ 0xEF,
|
|
|
|
- /* 000002BF pop ax */ 0x58,
|
|
|
|
- /* 000002C0 pop dx */ 0x5A,
|
|
|
|
- /* 000002C1 push dx */ 0x52,
|
|
|
|
- /* 000002C2 push ax */ 0x50,
|
|
|
|
- /* 000002C3 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
- /* 000002C6 mov ax,0x3 */ 0xB8, 0x03, 0x00,
|
|
|
|
- /* 000002C9 out dx,ax */ 0xEF,
|
|
|
|
- /* 000002CA mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
- /* 000002CD mov ax,0x20 */ 0xB8, 0x20, 0x00,
|
|
|
|
- /* 000002D0 out dx,ax */ 0xEF,
|
|
|
|
- /* 000002D1 pop ax */ 0x58,
|
|
|
|
- /* 000002D2 pop dx */ 0x5A,
|
|
|
|
- /* 000002D3 push dx */ 0x52,
|
|
|
|
- /* 000002D4 push ax */ 0x50,
|
|
|
|
- /* 000002D5 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
- /* 000002D8 mov ax,0x1 */ 0xB8, 0x01, 0x00,
|
|
|
|
- /* 000002DB out dx,ax */ 0xEF,
|
|
|
|
- /* 000002DC mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
- /* 000002DF mov ax,0x400 */ 0xB8, 0x00, 0x04,
|
|
|
|
- /* 000002E2 out dx,ax */ 0xEF,
|
|
|
|
- /* 000002E3 pop ax */ 0x58,
|
|
|
|
- /* 000002E4 pop dx */ 0x5A,
|
|
|
|
- /* 000002E5 push dx */ 0x52,
|
|
|
|
- /* 000002E6 push ax */ 0x50,
|
|
|
|
- /* 000002E7 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
- /* 000002EA mov ax,0x6 */ 0xB8, 0x06, 0x00,
|
|
|
|
- /* 000002ED out dx,ax */ 0xEF,
|
|
|
|
- /* 000002EE mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
- /* 000002F1 mov ax,0x400 */ 0xB8, 0x00, 0x04,
|
|
|
|
- /* 000002F4 out dx,ax */ 0xEF,
|
|
|
|
- /* 000002F5 pop ax */ 0x58,
|
|
|
|
- /* 000002F6 pop dx */ 0x5A,
|
|
|
|
- /* 000002F7 push dx */ 0x52,
|
|
|
|
- /* 000002F8 push ax */ 0x50,
|
|
|
|
- /* 000002F9 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
- /* 000002FC mov ax,0x2 */ 0xB8, 0x02, 0x00,
|
|
|
|
- /* 000002FF out dx,ax */ 0xEF,
|
|
|
|
- /* 00000300 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
- /* 00000303 mov ax,0x300 */ 0xB8, 0x00, 0x03,
|
|
|
|
- /* 00000306 out dx,ax */ 0xEF,
|
|
|
|
- /* 00000307 pop ax */ 0x58,
|
|
|
|
- /* 00000308 pop dx */ 0x5A,
|
|
|
|
- /* 00000309 push dx */ 0x52,
|
|
|
|
- /* 0000030A push ax */ 0x50,
|
|
|
|
- /* 0000030B mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
- /* 0000030E mov ax,0x7 */ 0xB8, 0x07, 0x00,
|
|
|
|
- /* 00000311 out dx,ax */ 0xEF,
|
|
|
|
- /* 00000312 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
- /* 00000315 mov ax,0x300 */ 0xB8, 0x00, 0x03,
|
|
|
|
- /* 00000318 out dx,ax */ 0xEF,
|
|
|
|
- /* 00000319 pop ax */ 0x58,
|
|
|
|
- /* 0000031A pop dx */ 0x5A,
|
|
|
|
- /* 0000031B push dx */ 0x52,
|
|
|
|
- /* 0000031C push ax */ 0x50,
|
|
|
|
- /* 0000031D mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
- /* 00000320 mov ax,0x4 */ 0xB8, 0x04, 0x00,
|
|
|
|
- /* 00000323 out dx,ax */ 0xEF,
|
|
|
|
- /* 00000324 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
- /* 00000327 mov ax,0x41 */ 0xB8, 0x41, 0x00,
|
|
|
|
- /* 0000032A out dx,ax */ 0xEF,
|
|
|
|
- /* 0000032B pop ax */ 0x58,
|
|
|
|
- /* 0000032C pop dx */ 0x5A,
|
|
|
|
- /* 0000032D pop ax */ 0x58,
|
|
|
|
- /* 0000032E pop dx */ 0x5A,
|
|
|
|
- /* 0000032F jmp short 0x34c */ 0xEB, 0x1B,
|
|
|
|
- /* 00000331 mov bx,0x40f1 */ 0xBB, 0xF1, 0x40,
|
|
|
|
- /* 00000334 jmp short 0x34c */ 0xEB, 0x16,
|
|
|
|
- /* 00000336 jmp short 0x350 */ 0xEB, 0x18,
|
|
|
|
- /* 00000338 jmp short 0x350 */ 0xEB, 0x16,
|
|
|
|
- /* 0000033A cmp al,0x3 */ 0x3C, 0x03,
|
|
|
|
- /* 0000033C jz 0x345 */ 0x74, 0x07,
|
|
|
|
- /* 0000033E cmp al,0x12 */ 0x3C, 0x12,
|
|
|
|
- /* 00000340 jz 0x349 */ 0x74, 0x07,
|
|
|
|
- /* 00000342 jmp word 0x22b */ 0xE9, 0xE6, 0xFE,
|
|
|
|
- /* 00000345 mov al,0x30 */ 0xB0, 0x30,
|
|
|
|
- /* 00000347 jmp short 0x34b */ 0xEB, 0x02,
|
|
|
|
- /* 00000349 mov al,0x20 */ 0xB0, 0x20,
|
|
|
|
- /* 0000034B iretw */ 0xCF,
|
|
|
|
- /* 0000034C mov ax,0x4f */ 0xB8, 0x4F, 0x00,
|
|
|
|
- /* 0000034F iretw */ 0xCF,
|
|
|
|
- /* 00000350 mov ax,0x14f */ 0xB8, 0x4F, 0x01,
|
|
|
|
- /* 00000353 iretw */ 0xCF,
|
|
|
|
+ /* 00000227 jz word 0x382 */ 0x0F, 0x84, 0x57, 0x01,
|
|
|
|
+ /* 0000022B push si */ 0x56,
|
|
|
|
+ /* 0000022C mov si,0x3e9 */ 0xBE, 0xE9, 0x03,
|
|
|
|
+ /* 0000022F call word 0x3c4 */ 0xE8, 0x92, 0x01,
|
|
|
|
+ /* 00000232 pop si */ 0x5E,
|
|
|
|
+ /* 00000233 jmp short 0x233 */ 0xEB, 0xFE,
|
|
|
|
+ /* 00000235 push es */ 0x06,
|
|
|
|
+ /* 00000236 push di */ 0x57,
|
|
|
|
+ /* 00000237 push ds */ 0x1E,
|
|
|
|
+ /* 00000238 push si */ 0x56,
|
|
|
|
+ /* 00000239 push cx */ 0x51,
|
|
|
|
+ /* 0000023A push si */ 0x56,
|
|
|
|
+ /* 0000023B mov si,0x3fb */ 0xBE, 0xFB, 0x03,
|
|
|
|
+ /* 0000023E call word 0x3c4 */ 0xE8, 0x83, 0x01,
|
|
|
|
+ /* 00000241 pop si */ 0x5E,
|
|
|
|
+ /* 00000242 push cs */ 0x0E,
|
|
|
|
+ /* 00000243 pop ds */ 0x1F,
|
|
|
|
+ /* 00000244 mov si,0x0 */ 0xBE, 0x00, 0x00,
|
|
|
|
+ /* 00000247 mov cx,0x100 */ 0xB9, 0x00, 0x01,
|
|
|
|
+ /* 0000024A cld */ 0xFC,
|
|
|
|
+ /* 0000024B rep movsb */ 0xF3, 0xA4,
|
|
|
|
+ /* 0000024D pop cx */ 0x59,
|
|
|
|
+ /* 0000024E pop si */ 0x5E,
|
|
|
|
+ /* 0000024F pop ds */ 0x1F,
|
|
|
|
+ /* 00000250 pop di */ 0x5F,
|
|
|
|
+ /* 00000251 pop es */ 0x07,
|
|
|
|
+ /* 00000252 jmp word 0x3ac */ 0xE9, 0x57, 0x01,
|
|
|
|
+ /* 00000255 push es */ 0x06,
|
|
|
|
+ /* 00000256 push di */ 0x57,
|
|
|
|
+ /* 00000257 push ds */ 0x1E,
|
|
|
|
+ /* 00000258 push si */ 0x56,
|
|
|
|
+ /* 00000259 push cx */ 0x51,
|
|
|
|
+ /* 0000025A push si */ 0x56,
|
|
|
|
+ /* 0000025B mov si,0x404 */ 0xBE, 0x04, 0x04,
|
|
|
|
+ /* 0000025E call word 0x3c4 */ 0xE8, 0x63, 0x01,
|
|
|
|
+ /* 00000261 pop si */ 0x5E,
|
|
|
|
+ /* 00000262 and cx,0xbfff */ 0x81, 0xE1, 0xFF, 0xBF,
|
|
|
|
+ /* 00000266 cmp cx,0xf1 */ 0x81, 0xF9, 0xF1, 0x00,
|
|
|
|
+ /* 0000026A jz 0x276 */ 0x74, 0x0A,
|
|
|
|
+ /* 0000026C push si */ 0x56,
|
|
|
|
+ /* 0000026D mov si,0x432 */ 0xBE, 0x32, 0x04,
|
|
|
|
+ /* 00000270 call word 0x3c4 */ 0xE8, 0x51, 0x01,
|
|
|
|
+ /* 00000273 pop si */ 0x5E,
|
|
|
|
+ /* 00000274 jmp short 0x233 */ 0xEB, 0xBD,
|
|
|
|
+ /* 00000276 push cs */ 0x0E,
|
|
|
|
+ /* 00000277 pop ds */ 0x1F,
|
|
|
|
+ /* 00000278 mov si,0x100 */ 0xBE, 0x00, 0x01,
|
|
|
|
+ /* 0000027B mov cx,0x100 */ 0xB9, 0x00, 0x01,
|
|
|
|
+ /* 0000027E cld */ 0xFC,
|
|
|
|
+ /* 0000027F rep movsb */ 0xF3, 0xA4,
|
|
|
|
+ /* 00000281 pop cx */ 0x59,
|
|
|
|
+ /* 00000282 pop si */ 0x5E,
|
|
|
|
+ /* 00000283 pop ds */ 0x1F,
|
|
|
|
+ /* 00000284 pop di */ 0x5F,
|
|
|
|
+ /* 00000285 pop es */ 0x07,
|
|
|
|
+ /* 00000286 jmp word 0x3ac */ 0xE9, 0x23, 0x01,
|
|
|
|
+ /* 00000289 push dx */ 0x52,
|
|
|
|
+ /* 0000028A push ax */ 0x50,
|
|
|
|
+ /* 0000028B push si */ 0x56,
|
|
|
|
+ /* 0000028C mov si,0x41a */ 0xBE, 0x1A, 0x04,
|
|
|
|
+ /* 0000028F call word 0x3c4 */ 0xE8, 0x32, 0x01,
|
|
|
|
+ /* 00000292 pop si */ 0x5E,
|
|
|
|
+ /* 00000293 cmp bx,0x40f1 */ 0x81, 0xFB, 0xF1, 0x40,
|
|
|
|
+ /* 00000297 jz 0x2a3 */ 0x74, 0x0A,
|
|
|
|
+ /* 00000299 push si */ 0x56,
|
|
|
|
+ /* 0000029A mov si,0x432 */ 0xBE, 0x32, 0x04,
|
|
|
|
+ /* 0000029D call word 0x3c4 */ 0xE8, 0x24, 0x01,
|
|
|
|
+ /* 000002A0 pop si */ 0x5E,
|
|
|
|
+ /* 000002A1 jmp short 0x233 */ 0xEB, 0x90,
|
|
|
|
+ /* 000002A3 mov dx,0x3c0 */ 0xBA, 0xC0, 0x03,
|
|
|
|
+ /* 000002A6 mov al,0x20 */ 0xB0, 0x20,
|
|
|
|
+ /* 000002A8 out dx,al */ 0xEE,
|
|
|
|
+ /* 000002A9 push dx */ 0x52,
|
|
|
|
+ /* 000002AA push ax */ 0x50,
|
|
|
|
+ /* 000002AB mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
+ /* 000002AE mov ax,0x4 */ 0xB8, 0x04, 0x00,
|
|
|
|
+ /* 000002B1 out dx,ax */ 0xEF,
|
|
|
|
+ /* 000002B2 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
+ /* 000002B5 mov ax,0x0 */ 0xB8, 0x00, 0x00,
|
|
|
|
+ /* 000002B8 out dx,ax */ 0xEF,
|
|
|
|
+ /* 000002B9 pop ax */ 0x58,
|
|
|
|
+ /* 000002BA pop dx */ 0x5A,
|
|
|
|
+ /* 000002BB push dx */ 0x52,
|
|
|
|
+ /* 000002BC push ax */ 0x50,
|
|
|
|
+ /* 000002BD mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
+ /* 000002C0 mov ax,0x5 */ 0xB8, 0x05, 0x00,
|
|
|
|
+ /* 000002C3 out dx,ax */ 0xEF,
|
|
|
|
+ /* 000002C4 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
+ /* 000002C7 mov ax,0x0 */ 0xB8, 0x00, 0x00,
|
|
|
|
+ /* 000002CA out dx,ax */ 0xEF,
|
|
|
|
+ /* 000002CB pop ax */ 0x58,
|
|
|
|
+ /* 000002CC pop dx */ 0x5A,
|
|
|
|
+ /* 000002CD push dx */ 0x52,
|
|
|
|
+ /* 000002CE push ax */ 0x50,
|
|
|
|
+ /* 000002CF mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
+ /* 000002D2 mov ax,0x8 */ 0xB8, 0x08, 0x00,
|
|
|
|
+ /* 000002D5 out dx,ax */ 0xEF,
|
|
|
|
+ /* 000002D6 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
+ /* 000002D9 mov ax,0x0 */ 0xB8, 0x00, 0x00,
|
|
|
|
+ /* 000002DC out dx,ax */ 0xEF,
|
|
|
|
+ /* 000002DD pop ax */ 0x58,
|
|
|
|
+ /* 000002DE pop dx */ 0x5A,
|
|
|
|
+ /* 000002DF push dx */ 0x52,
|
|
|
|
+ /* 000002E0 push ax */ 0x50,
|
|
|
|
+ /* 000002E1 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
+ /* 000002E4 mov ax,0x9 */ 0xB8, 0x09, 0x00,
|
|
|
|
+ /* 000002E7 out dx,ax */ 0xEF,
|
|
|
|
+ /* 000002E8 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
+ /* 000002EB mov ax,0x0 */ 0xB8, 0x00, 0x00,
|
|
|
|
+ /* 000002EE out dx,ax */ 0xEF,
|
|
|
|
+ /* 000002EF pop ax */ 0x58,
|
|
|
|
+ /* 000002F0 pop dx */ 0x5A,
|
|
|
|
+ /* 000002F1 push dx */ 0x52,
|
|
|
|
+ /* 000002F2 push ax */ 0x50,
|
|
|
|
+ /* 000002F3 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
+ /* 000002F6 mov ax,0x3 */ 0xB8, 0x03, 0x00,
|
|
|
|
+ /* 000002F9 out dx,ax */ 0xEF,
|
|
|
|
+ /* 000002FA mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
+ /* 000002FD mov ax,0x20 */ 0xB8, 0x20, 0x00,
|
|
|
|
+ /* 00000300 out dx,ax */ 0xEF,
|
|
|
|
+ /* 00000301 pop ax */ 0x58,
|
|
|
|
+ /* 00000302 pop dx */ 0x5A,
|
|
|
|
+ /* 00000303 push dx */ 0x52,
|
|
|
|
+ /* 00000304 push ax */ 0x50,
|
|
|
|
+ /* 00000305 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
+ /* 00000308 mov ax,0x1 */ 0xB8, 0x01, 0x00,
|
|
|
|
+ /* 0000030B out dx,ax */ 0xEF,
|
|
|
|
+ /* 0000030C mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
+ /* 0000030F mov ax,0x400 */ 0xB8, 0x00, 0x04,
|
|
|
|
+ /* 00000312 out dx,ax */ 0xEF,
|
|
|
|
+ /* 00000313 pop ax */ 0x58,
|
|
|
|
+ /* 00000314 pop dx */ 0x5A,
|
|
|
|
+ /* 00000315 push dx */ 0x52,
|
|
|
|
+ /* 00000316 push ax */ 0x50,
|
|
|
|
+ /* 00000317 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
+ /* 0000031A mov ax,0x6 */ 0xB8, 0x06, 0x00,
|
|
|
|
+ /* 0000031D out dx,ax */ 0xEF,
|
|
|
|
+ /* 0000031E mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
+ /* 00000321 mov ax,0x400 */ 0xB8, 0x00, 0x04,
|
|
|
|
+ /* 00000324 out dx,ax */ 0xEF,
|
|
|
|
+ /* 00000325 pop ax */ 0x58,
|
|
|
|
+ /* 00000326 pop dx */ 0x5A,
|
|
|
|
+ /* 00000327 push dx */ 0x52,
|
|
|
|
+ /* 00000328 push ax */ 0x50,
|
|
|
|
+ /* 00000329 mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
+ /* 0000032C mov ax,0x2 */ 0xB8, 0x02, 0x00,
|
|
|
|
+ /* 0000032F out dx,ax */ 0xEF,
|
|
|
|
+ /* 00000330 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
+ /* 00000333 mov ax,0x300 */ 0xB8, 0x00, 0x03,
|
|
|
|
+ /* 00000336 out dx,ax */ 0xEF,
|
|
|
|
+ /* 00000337 pop ax */ 0x58,
|
|
|
|
+ /* 00000338 pop dx */ 0x5A,
|
|
|
|
+ /* 00000339 push dx */ 0x52,
|
|
|
|
+ /* 0000033A push ax */ 0x50,
|
|
|
|
+ /* 0000033B mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
+ /* 0000033E mov ax,0x7 */ 0xB8, 0x07, 0x00,
|
|
|
|
+ /* 00000341 out dx,ax */ 0xEF,
|
|
|
|
+ /* 00000342 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
+ /* 00000345 mov ax,0x300 */ 0xB8, 0x00, 0x03,
|
|
|
|
+ /* 00000348 out dx,ax */ 0xEF,
|
|
|
|
+ /* 00000349 pop ax */ 0x58,
|
|
|
|
+ /* 0000034A pop dx */ 0x5A,
|
|
|
|
+ /* 0000034B push dx */ 0x52,
|
|
|
|
+ /* 0000034C push ax */ 0x50,
|
|
|
|
+ /* 0000034D mov dx,0x1ce */ 0xBA, 0xCE, 0x01,
|
|
|
|
+ /* 00000350 mov ax,0x4 */ 0xB8, 0x04, 0x00,
|
|
|
|
+ /* 00000353 out dx,ax */ 0xEF,
|
|
|
|
+ /* 00000354 mov dx,0x1d0 */ 0xBA, 0xD0, 0x01,
|
|
|
|
+ /* 00000357 mov ax,0x41 */ 0xB8, 0x41, 0x00,
|
|
|
|
+ /* 0000035A out dx,ax */ 0xEF,
|
|
|
|
+ /* 0000035B pop ax */ 0x58,
|
|
|
|
+ /* 0000035C pop dx */ 0x5A,
|
|
|
|
+ /* 0000035D pop ax */ 0x58,
|
|
|
|
+ /* 0000035E pop dx */ 0x5A,
|
|
|
|
+ /* 0000035F jmp short 0x3ac */ 0xEB, 0x4B,
|
|
|
|
+ /* 00000361 push si */ 0x56,
|
|
|
|
+ /* 00000362 mov si,0x411 */ 0xBE, 0x11, 0x04,
|
|
|
|
+ /* 00000365 call word 0x3c4 */ 0xE8, 0x5C, 0x00,
|
|
|
|
+ /* 00000368 pop si */ 0x5E,
|
|
|
|
+ /* 00000369 mov bx,0x40f1 */ 0xBB, 0xF1, 0x40,
|
|
|
|
+ /* 0000036C jmp short 0x3ac */ 0xEB, 0x3E,
|
|
|
|
+ /* 0000036E push si */ 0x56,
|
|
|
|
+ /* 0000036F mov si,0x43f */ 0xBE, 0x3F, 0x04,
|
|
|
|
+ /* 00000372 call word 0x3c4 */ 0xE8, 0x4F, 0x00,
|
|
|
|
+ /* 00000375 pop si */ 0x5E,
|
|
|
|
+ /* 00000376 jmp short 0x3b8 */ 0xEB, 0x40,
|
|
|
|
+ /* 00000378 push si */ 0x56,
|
|
|
|
+ /* 00000379 mov si,0x452 */ 0xBE, 0x52, 0x04,
|
|
|
|
+ /* 0000037C call word 0x3c4 */ 0xE8, 0x45, 0x00,
|
|
|
|
+ /* 0000037F pop si */ 0x5E,
|
|
|
|
+ /* 00000380 jmp short 0x3b8 */ 0xEB, 0x36,
|
|
|
|
+ /* 00000382 push si */ 0x56,
|
|
|
|
+ /* 00000383 mov si,0x423 */ 0xBE, 0x23, 0x04,
|
|
|
|
+ /* 00000386 call word 0x3c4 */ 0xE8, 0x3B, 0x00,
|
|
|
|
+ /* 00000389 pop si */ 0x5E,
|
|
|
|
+ /* 0000038A cmp al,0x3 */ 0x3C, 0x03,
|
|
|
|
+ /* 0000038C jz 0x39d */ 0x74, 0x0F,
|
|
|
|
+ /* 0000038E cmp al,0x12 */ 0x3C, 0x12,
|
|
|
|
+ /* 00000390 jz 0x3a1 */ 0x74, 0x0F,
|
|
|
|
+ /* 00000392 push si */ 0x56,
|
|
|
|
+ /* 00000393 mov si,0x432 */ 0xBE, 0x32, 0x04,
|
|
|
|
+ /* 00000396 call word 0x3c4 */ 0xE8, 0x2B, 0x00,
|
|
|
|
+ /* 00000399 pop si */ 0x5E,
|
|
|
|
+ /* 0000039A jmp word 0x233 */ 0xE9, 0x96, 0xFE,
|
|
|
|
+ /* 0000039D mov al,0x30 */ 0xB0, 0x30,
|
|
|
|
+ /* 0000039F jmp short 0x3a3 */ 0xEB, 0x02,
|
|
|
|
+ /* 000003A1 mov al,0x20 */ 0xB0, 0x20,
|
|
|
|
+ /* 000003A3 push si */ 0x56,
|
|
|
|
+ /* 000003A4 mov si,0x3d6 */ 0xBE, 0xD6, 0x03,
|
|
|
|
+ /* 000003A7 call word 0x3c4 */ 0xE8, 0x1A, 0x00,
|
|
|
|
+ /* 000003AA pop si */ 0x5E,
|
|
|
|
+ /* 000003AB iretw */ 0xCF,
|
|
|
|
+ /* 000003AC push si */ 0x56,
|
|
|
|
+ /* 000003AD mov si,0x3d6 */ 0xBE, 0xD6, 0x03,
|
|
|
|
+ /* 000003B0 call word 0x3c4 */ 0xE8, 0x11, 0x00,
|
|
|
|
+ /* 000003B3 pop si */ 0x5E,
|
|
|
|
+ /* 000003B4 mov ax,0x4f */ 0xB8, 0x4F, 0x00,
|
|
|
|
+ /* 000003B7 iretw */ 0xCF,
|
|
|
|
+ /* 000003B8 push si */ 0x56,
|
|
|
|
+ /* 000003B9 mov si,0x3dc */ 0xBE, 0xDC, 0x03,
|
|
|
|
+ /* 000003BC call word 0x3c4 */ 0xE8, 0x05, 0x00,
|
|
|
|
+ /* 000003BF pop si */ 0x5E,
|
|
|
|
+ /* 000003C0 mov ax,0x14f */ 0xB8, 0x4F, 0x01,
|
|
|
|
+ /* 000003C3 iretw */ 0xCF,
|
|
|
|
+ /* 000003C4 pushaw */ 0x60,
|
|
|
|
+ /* 000003C5 push ds */ 0x1E,
|
|
|
|
+ /* 000003C6 push cs */ 0x0E,
|
|
|
|
+ /* 000003C7 pop ds */ 0x1F,
|
|
|
|
+ /* 000003C8 mov dx,0x402 */ 0xBA, 0x02, 0x04,
|
|
|
|
+ /* 000003CB lodsb */ 0xAC,
|
|
|
|
+ /* 000003CC cmp al,0x0 */ 0x3C, 0x00,
|
|
|
|
+ /* 000003CE jz 0x3d3 */ 0x74, 0x03,
|
|
|
|
+ /* 000003D0 out dx,al */ 0xEE,
|
|
|
|
+ /* 000003D1 jmp short 0x3cb */ 0xEB, 0xF8,
|
|
|
|
+ /* 000003D3 pop ds */ 0x1F,
|
|
|
|
+ /* 000003D4 popaw */ 0x61,
|
|
|
|
+ /* 000003D5 ret */ 0xC3,
|
|
|
|
+ /* 000003D6 inc bp */ 0x45,
|
|
|
|
+ /* 000003D7 js 0x442 */ 0x78, 0x69,
|
|
|
|
+ /* 000003D9 jz 0x3e5 */ 0x74, 0x0A,
|
|
|
|
+ /* 000003DB add [di+0x6e],dl */ 0x00, 0x55, 0x6E,
|
|
|
|
+ /* 000003DE jnc 0x455 */ 0x73, 0x75,
|
|
|
|
+ /* 000003E0 jo 0x452 */ 0x70, 0x70,
|
|
|
|
+ /* 000003E2 outsw */ 0x6F,
|
|
|
|
+ /* 000003E3 jc 0x459 */ 0x72, 0x74,
|
|
|
|
+ /* 000003E5 or al,[fs:bx+si] */ 0x65, 0x64, 0x0A, 0x00,
|
|
|
|
+ /* 000003E9 push bp */ 0x55,
|
|
|
|
+ /* 000003EA outsb */ 0x6E,
|
|
|
|
+ /* 000003EB imul bp,[bp+0x6f],byte +0x77 */ 0x6B, 0x6E, 0x6F, 0x77,
|
|
|
|
+ /* 000003EF outsb */ 0x6E,
|
|
|
|
+ /* 000003F0 and [bp+0x75],al */ 0x20, 0x46, 0x75,
|
|
|
|
+ /* 000003F3 outsb */ 0x6E,
|
|
|
|
+ /* 000003F4 arpl [si+0x69],si */ 0x63, 0x74, 0x69,
|
|
|
|
+ /* 000003F7 outsw */ 0x6F,
|
|
|
|
+ /* 000003F8 outsb */ 0x6E,
|
|
|
|
+ /* 000003F9 or al,[bx+si] */ 0x0A, 0x00,
|
|
|
|
+ /* 000003FB inc di */ 0x47,
|
|
|
|
+ /* 000003FC gs jz 0x448 */ 0x65, 0x74, 0x49,
|
|
|
|
+ /* 000003FF outsb */ 0x6E,
|
|
|
|
+ /* 00000400 outsd */ 0x66, 0x6F,
|
|
|
|
+ /* 00000402 or al,[bx+si] */ 0x0A, 0x00,
|
|
|
|
+ /* 00000404 inc di */ 0x47,
|
|
|
|
+ /* 00000405 gs jz 0x455 */ 0x65, 0x74, 0x4D,
|
|
|
|
+ /* 00000408 outsw */ 0x6F,
|
|
|
|
+ /* 00000409 gs dec cx */ 0x64, 0x65, 0x49,
|
|
|
|
+ /* 0000040C outsb */ 0x6E,
|
|
|
|
+ /* 0000040D outsd */ 0x66, 0x6F,
|
|
|
|
+ /* 0000040F or al,[bx+si] */ 0x0A, 0x00,
|
|
|
|
+ /* 00000411 inc di */ 0x47,
|
|
|
|
+ /* 00000412 gs jz 0x462 */ 0x65, 0x74, 0x4D,
|
|
|
|
+ /* 00000415 outsw */ 0x6F,
|
|
|
|
+ /* 00000416 or al,[gs:bx+si] */ 0x64, 0x65, 0x0A, 0x00,
|
|
|
|
+ /* 0000041A push bx */ 0x53,
|
|
|
|
+ /* 0000041B gs jz 0x46b */ 0x65, 0x74, 0x4D,
|
|
|
|
+ /* 0000041E outsw */ 0x6F,
|
|
|
|
+ /* 0000041F or al,[gs:bx+si] */ 0x64, 0x65, 0x0A, 0x00,
|
|
|
|
+ /* 00000423 push bx */ 0x53,
|
|
|
|
+ /* 00000424 gs jz 0x474 */ 0x65, 0x74, 0x4D,
|
|
|
|
+ /* 00000427 outsw */ 0x6F,
|
|
|
|
+ /* 00000428 gs dec sp */ 0x64, 0x65, 0x4C,
|
|
|
|
+ /* 0000042B gs a32 popaw */ 0x65, 0x67, 0x61,
|
|
|
|
+ /* 0000042E arpl [bx+di+0xa],di */ 0x63, 0x79, 0x0A,
|
|
|
|
+ /* 00000431 add [di+0x6e],dl */ 0x00, 0x55, 0x6E,
|
|
|
|
+ /* 00000434 imul bp,[bx+0x77],byte +0x6e */ 0x6B, 0x6F, 0x77, 0x6E,
|
|
|
|
+ /* 00000438 and [di+0x6f],cl */ 0x20, 0x4D, 0x6F,
|
|
|
|
+ /* 0000043B or al,[gs:bx+si] */ 0x64, 0x65, 0x0A, 0x00,
|
|
|
|
+ /* 0000043F inc di */ 0x47,
|
|
|
|
+ /* 00000440 gs jz 0x493 */ 0x65, 0x74, 0x50,
|
|
|
|
+ /* 00000443 insw */ 0x6D,
|
|
|
|
+ /* 00000444 inc bx */ 0x43,
|
|
|
|
+ /* 00000445 popaw */ 0x61,
|
|
|
|
+ /* 00000446 jo 0x4a9 */ 0x70, 0x61,
|
|
|
|
+ /* 00000448 bound bp,[bx+di+0x6c] */ 0x62, 0x69, 0x6C,
|
|
|
|
+ /* 0000044B imul si,[si+0x69],word 0x7365 */ 0x69, 0x74, 0x69, 0x65, 0x73,
|
|
|
|
+ /* 00000450 or al,[bx+si] */ 0x0A, 0x00,
|
|
|
|
+ /* 00000452 push dx */ 0x52,
|
|
|
|
+ /* 00000453 gs popaw */ 0x65, 0x61,
|
|
|
|
+ /* 00000455 fs inc bp */ 0x64, 0x45,
|
|
|
|
+ /* 00000457 fs */ 0x64,
|
|
|
|
+ /* 00000458 db 0x69 */ 0x69,
|
|
|
|
+ /* 00000459 or al,[fs:bx+si] */ 0x64, 0x0A, 0x00,
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
--
|
|
|
|
2.18.1
|
|
|
|
|