hamishcoleman / thinkpad-ec

Infrastructure for examining and patching Thinkpad embedded controller firmware
GNU General Public License v2.0
1.07k stars 115 forks source link

L430 with BIOS G3ET68WW (2.07) / EC G3HT39WW (1.13) #203

Open q60 opened 3 years ago

q60 commented 3 years ago

any way this works w/ my machine? i am interested in using 42T4235 battery.

leecher1337 commented 2 years ago

I'm unsure if the Embedded controller chip in chips.txt is really correct. The L420 / L520 had a ITE8502 EC, but not the L430/L530. I have a L530 here, which should be the same hardware, and it actually contains a Nuvoton NPCE885G EC (also according to the schematics: http://laptop-schematics.com/view/8924/ ). This would be a controller with CR16CPlus CPU (CompactRISC), which also matches the detected architecture of the EC code in the $01D4000.FL1 BIOS flash file. Firmware starts at offset 0x4081D0 in BIOS image file starting with "IN", shortly followed by the Copyright string "Copyright 1996-1999, all rights reserved Insyde Software Corp.".

There seems to be a thread a Thinkpad forum about the X210 EC, which seems to be the same model: https://forum.thinkpads.com/viewtopic.php?p=837219#p837219 There are 2 repositories with tools for EC patching and Checksum calculation for X210:

https://github.com/harrykipper/x210 https://github.com/jwise/x2100-ec

Maybe these informations are helpful for someone knowledgeable enough to patch the firmware. Some docs about battery authentication: https://www.ti.com/lit/pdf/slua346

leecher1337 commented 2 years ago

Some more information: The BIOS Check for Battery is in Section_PE32_image_CC71B046-CF07-4DAE-AEAD-7046845BCD8A_LenovoVideoInitDxe.efi_body.bin Maybe useful for reversing to know command?

  if (EcIoDxe->Command(EcIoDxe, 0x88) & 1)
  {
    v3 = EcIoDxe->Command(EcIoDxe, 0xC2);
    if ( v3 < 0 && !(v3 & 0x20) )
    {
      ((void (__fastcall *)(EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *))EfiHandle->ConOut->ClearScreen)(EfiHandle->ConOut);
      sub_2850(15i64);
      sub_2864(0i64, 0i64);
      v5 = L"This system does not support batteries that are not genuine Lenovo-made or \n"
            "\rauthorized. The system will continue to boot, but may not charge unauthorized \n"
            "\rbatteries. \n"
            "\r\n"
            "ATTENTION: Lenovo has no responsibility for the performance or safety of \n"
            "\runauthorized batteries, and provides no warranties for failures or damage \n"
            "\rarising out of their use. \n"
            "\r\n"
            "Press the ESC key to continue.";
      if ( v3 & 0x50 )
        v5 = L"The battery installed is not supported by this system and will not charge.\n"
              "\rPlease replace the battery with the correct Lenovo battery for this system. \n"
              "\rPress the ESC key to continue.";
      sub_287C(v5);

For better understanding of Command sequence, here is what EcIoDxe (Section_PE32_image_114CA60C-D965-4C13-BEF7-C4062248E1FA_EcIoDxe.efi_body.bin) does:

#define EC_OEM_DATA 0x68
#define EC_OEM_SC   0x6c

/* EC_SC input */
#define   EC_SMI_EVT    (1 << 6) // 1: SMI event pending
#define   EC_SCI_EVT    (1 << 5) // 1: SCI event pending
#define   EC_BURST  (1 << 4) // controller is in burst mode
#define   EC_CMD    (1 << 3) // 1: byte in data register is command
                 // 0: byte in data register is data
#define   EC_IBF    (1 << 1) // 1: input buffer full (data ready for ec)
#define   EC_OBF    (1 << 0) // 1: output buffer full (data ready for host)
/* EC_SC output */
#define   RD_EC     0x80 // Read Embedded Controller
#define   WR_EC     0x81 // Write Embedded Controller
#define   BE_EC     0x82 // Burst Enable Embedded Controller
#define   BD_EC     0x83 // Burst Disable Embedded Controller
#define   QR_EC     0x84 // Query Embedded Controller

EFI_STATUS __fastcall FlushInput(BYTE ecsc, BYTE ecdata)
{
  BYTE buf;
  EFI_STATUS ret;

  while (1)
  {
    ret = CpuIo->Io->Read(NULL, EfiCpuIoWidthUint8, ecsc, 1, &buf);
    if (!(buf & EC_OBF)) break;
    CpuIo->Io->Read(NULL, EfiCpuIoWidthUint8, ecdata, 1, &buf);
  }
  return ret;
}

EFI_STATUS __fastcall WaitReady(BYTE ecsc)
{
  int i;
  BYTE buf;
  EFI_STATUS ret;

  for(i = 33; i; i--)
  {
    ret = CpuIo->Io->Read(NULL, EfiCpuIoWidthUint8, ecsc, 1, &buf);
    if (!(buf & EC_OBF)) break;
    gBootSvc->Stall(30);
  }
  return ret;
}

EFI_STATUS __fastcall WaitForAnswer(BYTE ecsc)
{
  int i;
  BYTE buf;
  EFI_STATUS ret;

  for(i = 33; i; i--)
  {
    ret = CpuIo->Io->Read(NULL, EfiCpuIoWidthUint8, ecsc, 1, &buf);
    if (!(buf & EC_IBF)) break;
    gBootSvc->Stall(30);
  }
  return ret;
}

BYTE __fastcall EcOemRead(BYTE ecsc, BYTE ecdata, BYTE cmd)
{
  BYTE buf;

  FlushInput(ecsc, ecdata);
  WaitReady(ecsc);
  buf = RD_EC;
  CpuIo->Io->Write(NULL, EfiCpuIoWidthUint8, ecsc, 1, &buf);
  WaitForAnswer(ecsc);
  CpuIo->Io->Write(NULL, EfiCpuIoWidthUint8, ecdata, 1, &cmd);
  WaitForAnswer(ecsc);
  CpuIo->Io->Read(NULL, EfiCpuIoWidthUint8, ecdata, 1, &buf);
  return buf;
}

BYTE __fastcall Command(void *this, BYTE cmd)
{
    return EcOemRead(EC_OEM_SC, EC_OEM_DATA, cmd);
}
leecher1337 commented 2 years ago

As I'm not experienced with Firmware Reverse engineering, Ghidra and embedded stuff, I was unable to find the battery functions in the L530 firmware. I tried to find some clues in the firmware in order to find out where these battery authentication functions are, but they seem to work differently compared to X210 firmware. In X210 firmware, there are command packets for battery communication (struct BATT_REQ_QUERY, see bat_state_Queries and bat_prop_queries) that get sent via SMBUS. But in L530 firmware, I unfortunately cannot find such a mechanism. There also isn't much documentation on how the keyboard scancodes should map (to fix INS/DEL/POS1 etc. keys with 7-row keyboard). I found some tables referenced in scancode_do_trans, but I don't know how to map the values. So as I don't have the expertise, I'm dumping my ghidra DB in the hope that someone can pick it up and fix keyboard and battery.

Interestingly, there are 2 firmware images in the BIOS image: 1 starts at 0 (containing String G3HT40WW(1.14)) and one starting at 0x8000 (NB: Load address 20100 !). I guess the second one is the real one, even though, they seem somewhat similar. Would be interesting what the first one is...?

In Ghidra project, there are various parts. The Project is derived from https://github.com/jwise/x2100-ec/blob/master/notes/x2100-ec.gar by @jwise and I added the 2 firmware images from the dump:

File Description
ec.bin This is the second Firmware from L530. This should be worked on.
fw-top.bin This is the first Firmware from L530. Don't know much about it.
x2100-ec.bin-patched This is the x2100 firmware similar to L530, which I was comparing with
x2100-ec.bin x2100 Working base, can be ignored
newec-gpe-patch.bin New x2100 embedded controller FW? Not similar to L530 FW

Hopefully, someone can find out the inner workings. Project: x2100-ec_2021_12_20.zip Firmware: fw.zip

jwise commented 2 years ago

Probably worth finding the EC command entry point and figuring out where it handles 0x88 and 0xC2. If you can replicate those results using something like https://github.com/exander77/x2100-ec-sys then you can pretty easily figure out what those entry points read, and then patch out whatever checks generate them (and whatever else refers to that memory...).

leecher1337 commented 2 years ago

Updated Ghidra project, see bat_authenticated function

My guess is that battery authentication routine is right before main():

                             **************************************************************
                             *                          FUNCTION                          *
                             **************************************************************
                             long __ptrcall2 bat_authenticated(uint * param_1, uint *
             long              R1R0:4         <RETURN>
             uint *            R3R2:4         param_1
             uint *            R5R4:4         param_2
             undefined4        Stack[0x0]:4   param_1_00                              XREF[1]:     00031960(*)  
                             bat_authenticated                               XREF[1]:     FUN_0003161a:0003176e(c)  
        00031950 e7 01           push       $0x7, R7, ra
        00031952 bf 60 ea ff     ADDD       $0xffea,SP
        00031956 00 05 28 00     MOVD       $0x28,R1R0
        0003195a f0 61           ADDD       SP,R1R0
        0003195c 27 55           MOVD       param_1,R8R7
...

So maybe just patching it to:

        00031950 e7 01           push       $0x7, R7, ra
        00031952 10 5a           MOVW       $0x1,R0
        00031954 e7 03           popret     $0x7, R7, ra

works. Any volunteers? ;-)

leecher1337 commented 2 years ago

Patching L430/530 for a classic 7-row Keyboard

So I had a look at the Keyboard handling routines and found out where they keyboard layout table lies and how to edit it. The results are plenty tables that might become handy for you to patch your own keyboard layout.

Location of the keyboard table

In Firmware G3HT40WW(1.14) there are 4 layout tables located at offset 0x39916. They each have the following format (I don't count the prefix length byte in offset so that you have a "clean" keyboard layout offset matrix for the following tables):

Table format

Offset Length Description
Prefix 0x01 length of table at offset 0xa2 in bytes
0x00 0x90 Mapping table for the keys 0-144
0x90 0x12 bitfield, specify whether to map a key via following Fn Mapping-table or not
0xa2 Fn-Modifiers enabled in mask at offset 0x90, Array of 2 bytes per entry: [Keypress, Fn-Keypress]

Table 0 Unknown, maybe key table used on BIOS start screen..? Table 1 is the default table and the one we are interested in. It starts at offset 366BC Table 2 Unknown, can be selected with command 91h, C2h Table 3 Unknown

Here is the default layout:

Prefix: 54
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

00000000   0E 05 0A 2E 36 55 16 4E  18 00 A2 A1 00 00 00 8C 
00000010   16 1E 26 25 3D 3E 46 45  1A 1E 1C A0 A3 00 00 00
00000020   15 1D 24 2D 3C 43 44 28  6A 00 04 00 00 00 00 00
00000030   0D 58 0C 2C 35 5B 14 54  66 82 02 00 00 00 88 00
00000040   1C 24 23 2B 3B 26 4B 4C  5D 00 00 9D 00 00 00 00
00000050   76 61 0E 34 33 12 64 52  10 00 08 00 A7 8A 00 00 
00000060   1A 22 21 2A 3A 41 49 5D  5A 00 06 A4 00 00 89 8D
00000070   67 8E 00 22 31 51 13 4A  20 A9 A8 A5 A6 8B 00 00
00000080   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00000090   44 01 00 07 80 04 44 04  22 04 24 05 00 04 08 01
000000A0   00 00 C1 C1 10 B0 C3 C3  30 B1 C5 C5 30 B2 C7 C7
000000B0   10 B3 C9 C9 30 B4 06 CB  10 C2 04 CD 10 C3 0C CF
000000C0   10 C4 03 D1 10 C5 0B D3  10 C6 80 D5 10 C7 0A D7
000000D0   30 BB 01 D9 30 BC 09 DB  30 B9 78 DD 10 B8 07 DF
000000E0   30 BA 29 E1 10 B6 32 E3  10 D0 1B E5 10 D1 42 E7
000000F0   10 D2 4D E9 10 D3 00

Per default, a key in the table (assignment HW-scancode of 7-row Keyboard to keycode location in table will be shown in the following table) is roughly assigned to the specified scancode of Set 2. The EC contains the standard translation table to Set 1 and the CPU-Translation table. For details on the tables, see here. Thsi is pretty much standard stuff, EC will take care of Make and Break codes accordingly. For codes >=80, there is a mapping table at offset 35f7c which contains of 2 bytes per entry. First byte is scancode and second byte is index in function pointer table at 34e6c which specifies on how to translate the table entry into a keycode. For you to create your keyboard layout, here is a list of some important "special" keycodes that are provided by this table:

Int. Code Set 2 Scancode Description Keycode
80 83 F7 80
81 E0 5A Keypad Enter 81
82 E0 1F Left GUI 82
83 E0 27 Right GUI 83
84 E0 2F App 84
85 E0 37 Keyboard Power 85
86 E0 3F System Sleep 86
87 E0 5E System Wake 87
91 E1 14 77 E1 F0 14 F0 77 Pause 9E
92 E0 7E E0 F0 7E Ctrl+Pause 9E
93 84 Alt+SysRq 9D
94 E0 7C KP-* 9C
95   KP-* 9C
96 E0 4A KP-/ 9F
97   KP-/ 9F
98 E0 70 Insert A0
99   Insert A0
9A   Insert A0
9B E0 71 Delete A1
9C   Delete A1
9D   Delete A1
9E E0 6C Home A2
9F   Home A2
A0   Home A2
A1 E0 69 End A3
A2   End A3
A3   End A3
A4 E0 7D PgUp A4
A5   PgUp A4
A6   PgUp A4
A7 E0 7A PgDn A5
A8   PgDn A5
A9   PgDn A5
AA E0 6B Left A6
AB   Left A6
AC   Left A6
AD E0 75 Up A7
AE   Up A7
AF   Up A7
B0 E0 72 Down A8
B1   Down A8
B2   Down A8
B3 E0 74 Right A9
B4   Right A9
B5   Right A9
B6 E0 41 Reply  
B7 E0 49 ?  
B8 E0 3B Stop  
B9 E0 34 Play/Pause  
BA E0 23 Mute  
BB E0 32 Volume up  
BC E0 21 Volume down
BD E0 48 Mail  
BE E0 10 Scan prev. Track
BF E0 3A WWW Home
C0 E0 38 WWW Back  
C1 E0 30 WWW Forward
C2 E0 28 WWW Stop  
C3 E0 20 WWW Refresh
C4 E0 18 WWW Favorites
C5 E0 2B Calculator  
C6 E0 40 My Computer
C7 E0 50 Media select

Please note that the Int. Code is used only internally. Codes >9B are sent through another mapping table at offset 34e88. So as a user, the Keycode column is significant, because it incorporates said mapping table. The codes are only valid up to A9, because at AA, there starts another table for the NumLock assignments which can be found at offset 35f4a:

Keycode No-NL-Key No-NL Scancode NL-Key NL Scancode
AA 7 3D KP-7 / Home 6C
AB 8 3E KP-8 / Up 75
AC 9 46 KP-9 / PgUp 7D
AD U 3C KP-4 / Left 6B
AE I 43 KP-5 73
AF O 44 KP-6 / Right 74
B0 J 3B KP-1 / End 69
B1 K 42 KP-2 / Down 72
B2 L 4B KP-3 / PgDn 7A
B3 M 3A KP-0 / Ins 70
B4 .> 49 KP-. / Del 71
B5 /? 4A KP-/ 9F
B6 ;: 4C KP-+ 79
B7 0 ) 45 KP-* 7C
B8 P 4D KP-- 7B
B9 ENTER 5A KP Enter 81
BA - _ 4E KP-- 7B
BB [{ 54 KP Enter 81
BC /? 4A KP-+ 79
BD ;: 4C KP-- 7B
BE 0 ) 45 KP-/ 9F
BF P 4D KP-* 7C

Now in case that there is a "special" command needed that cannot be covered by a scancode above or if there is a FN-Key combination, the key cannot be identified by 1 byte in the first table. In this case, a bit is set in the long bitfield at offset 0x90 in the key table. Each bit corresponds to a key, so bit 1 is the first key from the table, bit 2 the second, etc. So the bit is determined by: scancode_table[0x90+(offset>>3)], i.e. to set a bit in this table: scancode_table[0x90+(offset>>3)]|=(1<<(offset&7)) If this bit is set, the number in the first table isn't the scancode but an index into the table at offset A2. As written, a table entry in the table at A2 consists of 2 bytes: 1) Scancode for normal keypress 2) Scancode for FN + key combination

Now there is a special handling in this table for keycodes >C0. If a code is >C0, the specified entry minus C0 is an index into the same table at A2 which then specifies a "command" code, as I call it. Command codes are identified by the first entry & 0x1F being 0x10 and the second being the command. The "commands" are the following (table not complete, if you feel like it, please complete empty/unknown entries):

Break Command codes: Command Description Set 2 Scancode
B0 Mute E0 F0 23
B1 Vol Down E0 F0 21
B2 Vol Up E0 F0 32
B3 Mic Shut
B4 ThinkVantage
B7 Stop E0 F0 3B
B8 Play/Pause E0 F0 34
B9 Scan prev. track E0 F0 15
BA Scan next track E0 F0 4D
BD Num Lock F0 77
D1 SysReq F0 84 F0 11
D2 ScrLk F0 7E
Make Command codes: Command Description Set 2 Scancode
B0 Mute E0 23
B1 Vol Down E0 21
B2 Vol Up E0 32
B3 Mic Shut
B4 Thinkvantage
B5 ?
B7 Stop E0 3B
B8 Play/Pause E0 34
B9 Scan prev. track E0 15
BA Scan next track E0 4D
BB Brightness down
BC Brightness up
BD Num Lock 77
C2 ?
C3 Screen Lock
C4 Sleep
C5 WiFi on/off
C6 Lenovo Settings
C7 Switch video mode
C8 ?
CC ?
D0 CtrlBrk 14 E0 7E E0 F0 7E F0 14
D1 SysReq 11 84
D2 ScrLk 7E
D3 Pause E1 14 77 E1 F0 14 F0 77

Current layout

So analyzing the current layout and checking a 7-row keyboard gives us the following layout:

Key Offset Keycode Hw-Code Scancode Set2 Make Fn Mapping
` ~ 0 0E 00 10 0e  
1 ! 10 16 00 11 16  
2 @ 11 1E 01 11 1e  
3 # 12 26 02 11 26  
4 $ 13 25 03 11 25  
5 % 3 2E 03 10 2e  
6 ^ 4 36 04 10 36  
7 & 14 3D 04 11 3d  
8 * 15 3E 05 11 3e  
9 ( 16 46 06 11 46  
0 ) 17 45 07 11 45  
- _ 7 4E 07 10 4e  
= + 5 55 05 10 55  
Backspace 38 66 08 13 66  
Tab 30 0D 00 13 0d  
Q 20 15 00 12 15  
W 21 1D 01 12 1d  
E 22 24 02 12 24  
R 23 2D 03 12 2d  
T 33 2C 03 13 2c  
Y 34 35 04 13 35  
U 24 3C 04 12 3c  
I 25 43 05 12 43  
O 26 44 06 12 44  
P 27 28 07 12 4d Y
[ { 37 54 07 13 54  
] } 35 5B 05 13 5b  
\ | 51 61 01 15 5d  
CapsLock 31 58 01 13 58  
A 40 1C 00 14 1c  
S 41 24 01 14 1b Y
D 42 23 02 14 23  
F 43 2B 03 14 2b  
G 53 34 03 15 34  
H 54 33 04 15 33  
J 44 3B 04 14 3b  
K 45 26 05 14 42 Y
L 46 4B 06 14 4b  
; : 47 4C 07 14 4c  
' " 57 52 07 15 52  
non-US-1 67 5D 07 16 0  
Enter 68 5A 08 16 5a  
LShift 3E 88 0E 13 12  
Z 60 1A 00 16 1a  
X 61 22 01 16 22  
C 62 21 02 16 21  
V 63 2A 03 16 2a  
B 73 22 03 17 32 Y
N 74 31 04 17 31  
M 64 3A 04 16 3a  
, < 65 41 05 16 41  
. > 66 49 06 16 49  
/ ? 77 4A 07 17 4a  
RShift 6E 89 0E 16 59  
LCtrl 0F 8C 0F 10 14  
LAlt 5D 8A 0D 15 11  
space 78 20 08 17 29 Y
RAlt 7D 8B 0D 17 e0-11  
RCtrl 6F 8D 0F 16 e0-14  
Insert 09 A0 09 10 E0 70  
Delete 0A A1 0A 10 E0 71  
Home 0C A2 0C 10 E0 6C  
End 1C A3 0C 11 E9 69  
PgUp 0B A4 0B 10 E0 7D  
PgDn 1B A5 0B 11 E0 7A  
Left 7C A6 0C 17 e0-6b  
Up 5C A7 0C 15 e0-75  
Down 7A A8 0A 17 e0-72  
Right 79 A9 09 17 e0-74  
Esc 50 76 00 15 76  
F1 01 05 01 10 05  
F2 02 0A 02 10 06 Y
F3 32 0C 02 13 04 Y
F4 52 0E 02 15 0c Y
F5 58 10 08 15 03 Y
F6 55 12 05 15 0b Y
F7 36 14 06 13 83 Y
F8 06 16 06 10 0a Y
F9 08 18 08 10 01 Y
F10 18 1A 08 11 09 Y
F11 1A 1C 0A 11 78 Y
F12 19 1E 09 11 07 Y
WWW-Back 6B   0B 16 E0 38  
WWw-Fwd 7B   0B 17 E0 30  
PrtScr 1D   0D 11 E0 7C  
ScrLock 2D   0D 12 7E  
Pause 6C   0C 16 E1 14 77 E1 F0 14 F0 77  
Vol Up 2A 04 0A 12 E0 32 Y
Vol Down 3A 02 0A 13 E0 21 Y
Mute 4A 00 0A 14 E0 23 Y
ThinkVantage 5A 08 0A 15   Y
Mic Shut 6A 06 0A 16   Y
Left GUI(WIN) 39 82 09 13 E0 1F  
Right GUI (Menu) 4B   0B 14 E0 27  

You may have noticed that offset is just Hw-Code byte2 << 4 | byte1 If you want to watch for HW key codes i.e. to implement another keyboard, use watch -n 2 with: dd if=/sys/kernel/debug/ec/ec0/ram bs=1 count=8 skip=68382 2>/dev/null | hexdump -C

Looking at the FN-Table that gets referenced by the keys in the table above when "Fn Mapping" is Y:

Mapping Normal Descr FN Descr
0 C1 -> Mapping 1 C1 -> Mapping 01
1 10 Command B0 Mute
2 C3 -> Mapping 3 C3 -> Mapping 03
3 30 Command B1 Volume Down
4 C5 -> Mapping 5 C5 -> Mapping 05
5 30 Command B2 Volume Up
6 C7 -> Mapping 7 C7 -> Mapping 07
7 10 Command B3 Mic Shut
8 C9 -> Mapping 9 C9 -> Mapping 09
9 30 Command B4 ThinkVantage
0A 06 F2 CB -> Mapping 0B
0B 10 Command C2  
0C 04 F3 CD -> Mapping 0D
0D 10 Command C3 Screen Lock
0E 0C F4 CF -> Mapping 0F
0F 10 Command C4 Sleep
10 03 F5 D1 -> Mapping 11
11 10 Command C5 WIFI on/off
12 0B F6 D3 -> Mapping 13
13 10 Command C6 Lenovo settings
14 80 F7 via transtbl. D5 -> Mapping 15
15 10 Command C7 Switch video mode
16 0A F8 D7 -> Mapping 17
17 30 Command BB Brightness down
18 01 F9 D9 -> Mapping 19
19 30 Command BC Brightness up
1A 09 F10 DB -> Mapping 1B
1B 30 Command B9 Scan prev. Track
1C 78 F11 DD -> Mapping 1D
1D 10 Command B8 Play/Pause
1E 07 F12 DF -> Mapping 1F
1F 30 Command BA Scan next track
20 29 Space E1 -> Mapping 21
21 10 Command B6 Enable keyboard backlight?
22 32 B E3 -> Mapping 23
23 10 Command D0 Ctrl+Break
24 1B S E5 -> Mapping 25
25 10 Command D1 SysReq
26 42 K E7 -> Mapping 27
27 10 Command D2 ScrollLock
28 4D P E9 -> Mapping 29
29 10 Command D3 Pause

Patching the keyboard layout

Now that we know how the table is composed, we can re-assign the keys to the classic 7-row keyboard layout by moving some function keys around and fixing some wrong table entries (i.e. Pos1, Home, Del, PgUp, ...) also enabling NumLock. However, there is a problem with the WW-Forward and WWW-Back keys, because their entry in the internal Mapping table cannot be reached due to the key ranges assigned mentioned above. However, we see that Pause and Ctrl+Break are already mapped via the "Special" Tables for Fn, so the key codes 91 and 92 aren't really used. Therefore, we update the table at offset 35f7c at the entry for 91 to use WWW-Fwd and WWW-Back instead: These 2 entries are at offset 35f9e. Each entry consists of a Scancode and an Index to a function pointer. 01 is index for the function that just generates the E0 Make-code. So we change the table as follows:

Int. Code Old Scanc. Old FuncID New Scanc. New FuncID
91 00 04 38 01
92 01 04 30 01

After creating these 2 Keycodes, we can update the Keyboard layout table:

Key Offset Keycode Fn Mapping New Keycode New Fn Mapping
WWW-Back 6B 00 N 91  
WWw-Fwd 7B 00 N 92  
PrtScr 1D 00 N 24 Y
ScrLock 2D 00 N 0C Y
Pause 6C 00 N 22 Y
Right GUI (Menu) 4B 9D N 84  
7 & 14 3D N AA  
8 * 15 3E N AB  
9 ( 16 46 N AC  
0 ) 17 45 N BE  
U 24 3C N AD  
I 25 43 N AE  
O 26 44 N AF  
P 27 28 Y BF N
S 41 24 Y 1B N
J 44 3B N B0  
K 45 26 Y B1 N
L 46 4B N B2  
; : 47 4C N BD  
B 73 22 Y 32 N
M 64 3A N B3  
. > 66 49 N B4  
/ ? 77 4A N BC  
space 78 20 Y 29 N
Insert 09 00 N A0  
Delete 0A A2 N A1  
Home 0C 00 N 18 Y
End 1C A3 N 16 Y
PgUp 0B A1 N 20 Y
PgDn 1B A0 N A5  
Left 7C A6 N 1A Y
Up 5C A7 N 26 Y
Down 7A A8 N 1C Y
Right 79 A9 N 1E Y
F3 32 0C Y 04 N
F8 06 16 Y 0A N
F9 08 18 Y 01 N
F10 18 1A Y 09 N
F11 1A 1C Y 78 N
F12 19 1E Y 07 N

And the FN-Table:

Mapping Normal FN New Key New FN
0B 10 C2   C3
0C 04 CD E7  
0D 10 C3   BD
16 0A D7 A3  
18 01 D9 A2  
1A 09 DB A6  
1C 78 DD A8  
1E 07 DF A9  
20 29 E1 A4  
22 32 E3 E9  
24 1B E5 9D  
26 42 E7 A7 E8
28 4D E9 10 B7

This finally leads us to the new keyboard layout

Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

00000000   0E 05 0A 2E 36 55 0A 4E  01 A0 A1 20 18 00 00 8C
00000010   16 1E 26 25 AA AB AC BE  09 07 78 A5 16 24 00 00
00000020   15 1D 24 2D AD AE AF BF  6A 00 04 00 00 0C 00 00
00000030   0D 58 04 2C 35 5B 14 54  66 82 02 00 00 00 88 00
00000040   1C 1B 23 2B B0 B1 B2 BD  5D 00 00 84 00 00 00 00
00000050   76 61 0E 34 33 12 64 52  10 00 08 00 26 8A 00 00
00000060   1A 22 21 2A B3 41 B4 5D  5A 00 06 91 22 00 89 8D
00000070   67 8E 00 32 31 51 13 BC  29 1E 1C 92 1A 8B 00 00
00000080   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                   
00000090   04 18 00 30 00 24 40 04  00 04 24 15 00 14 00 16
000000A0   00 00 C1 C1 10 B0 C3 C3  30 B1 C5 C5 30 B2 C7 C7
000000B0   10 B3 C9 C9 30 B4 06 CB  10 C3 E7 CD 10 BD 0C CF
000000C0   10 C4 03 D1 10 C5 0B D3  10 C6 80 D5 10 C7 A3 D7
000000D0   30 BB A2 D9 30 BC A6 DB  30 B9 A8 DD 10 B8 A9 DF
000000E0   30 BA A4 E1 10 B6 E9 E3  10 D0 9D E5 10 D1 A7 E8
000000F0   10 D2 10 B7 10 D3 00

You can try it out by compiling https://github.com/exander77/x2100-ec-sys and loading it with write support: modprobe x2100_ec_sys write_support=1

Then verify that you have the correct firmware and the original table in place: dd if=/sys/kernel/debug/ec/ec0/ram bs=1 count=247 skip=$[0x366BD] 2>/dev/null | hexdump -C

If it is the correct table from the top of this document, then you can patch the attached scancode.map in its place:

dd if=scancode.map of=/sys/kernel/debug/ec/ec0/ram bs=1 seek=$[0x366BD]

and assign the WWW-Keys accordingly:

echo -ne "\x38\x01\x30\x01" | dd of=/sys/kernel/debug/ec/ec0/ram bs=1 seek=$[0x35f9e]

Keyboard map should be in place until you remove battery and power, to make it permanent, you need to reflash bios with patched EC firmware.

Have fun.

jwise commented 2 years ago

Oh wow, wait, does the EC hotpatch stuff work out of the box without having to first patch the EC firmware? That's crazy, if so. And a serious security problem.

Anyway, this would be good news for you, since it means you can try hotpatching what you suspect to be the battery authentication routine without worrying about bricking your machine.

leecher1337 commented 2 years ago

Yes, hotpatching works out of the box :-) Anyway, I do have a genuine battery, just wrong "model", so It's not "just" the auth check to patch, I shall have a look at the battery state machine later.

jwise commented 2 years ago

Well, someone particularly daring could probably use this to write software for the EC that overwrites the flash descriptor, and therefore would allow you to me_cleaner the machine...

leecher1337 commented 2 years ago

When updating EC firmware, is this just a matter of Checksumming new firmware with checksum.c and placing it in the previously dumped BIOS firmware image with dd and flashing it back with flashrom or are there any other checksums to consider?

leecher1337 commented 2 years ago

I would like to ask if it is possible that someone with an programmer that is capable to do recovery can test if updating the EC Firmware would cause problems possibly with some checksums, or if it is enough to just apply the patched EC firmware to the BIOS image and reflash via flashrom. This would be very helpful. In order to carry out the test, I'd request you to do a harmless patch of the EC keyboard map, which doesn't have an effect on the proper operation of the keyboard, but shows if changing EC firmware would cause some CRC error to go off.

The EC firmware is divided into 2 parts. The first part is the loader that loads attached real firmware image to address 20100. As only the loader-Part of the firmware is checksummed, it is not necessary needed to recalculate the checksum of the loader part.

So for testing, the following steps should be carried out.

1) Flash most recent stock firmware with EC Firmware version Firmware G3HT40WW(1.14) 2) Dump BIOS with:

flashrom -p internal -r current-bios.bin --ifd -i bios

3) Check BIOS image so verify that we are patching the correct region

dd if=current-bios.bin bs=1 count=16 skip=$[0x41E5BD] 2>/dev/null | hexdump -C

This should result in the first row of the keyboard map:

00000000 0e 05 0a 2e 36 55 16 4e 18 00 a2 a1 00 00 00 8c |....6U.N........|

4) Patch an empty key mapping at offset C for test purposes:

   cp current-bios.bin new-bios.bin
   echo -ne "\x18" | dd conv=notrunc of=new-bios.bin bs=1 seek=$[0x41E5C9]

5) Flash back BIOS to machine

flashrom -p internal -w new-bios.bin --ifd -i bios

6) Shutdown machine, remove power connection and battery for at least 30 seconds so that embedded controller is forced to reinitialize

7) Power up machine, install and load https://github.com/exander77/x2100-ec-sys

modprobe x2100_ec_sys

8) Check memory region if the byte at offset C has changed:

dd if=/sys/kernel/debug/ec/ec0/ram bs=1 count=16 skip=$[0x366BD] 2>/dev/null | hexdump -C

Output should now read:

00000000 0e 05 0a 2e 36 55 16 4e 18 00 a2 a1 18 00 00 8c |....6U.N........|

I would be very grateful if someone can check this so that I can permanently install the 7-row keyboard firmware fix then. Thank you very much in advance!

valpackett commented 2 years ago

I can test this! Can you give me a test patch that swaps some keys around (e.g. Z and X) for a visible effect rather than having to check the memory?

write software for the EC that overwrites the flash descriptor, and therefore would allow you to me_cleaner the machine

No need for that when 1vyrain exists. (Note: DO NOT use disable bits in me_cleaner like -S, that fails to boot, only do the cleaning)

leecher1337 commented 2 years ago

@unrelentingtech Thank you for your help! Sure, we can change something significant too, so to swap Z and X:

1) Flash most recent stock firmware with EC Firmware version Firmware G3HT40WW(1.14)

2) Create file named layout with the following contents:

00000000:00000fff fd
00400000:007fffff bios
00400000:0041ffff ec
00001000:003fffff me 

Then read ec firmware with:

flashrom -p internal -l layout -r current-bios.bin -i ec

3) Check BIOS image to verify that we are patching the correct region

dd if=current-bios.bin bs=1 count=16 skip=$[0x41E61D] 2>/dev/null | hexdump -C

This should result in the 6th row of the keyboard map:

1a 22 21 2a 3a 41 49 5d 5a 00 06 a4 00 00 89 8d |."!*:AI]Z.......|

4) Swap Z and X at offset 60:

cp current-bios.bin new-bios.bin
echo -ne "\x22\x1a" | dd conv=notrunc of=new-bios.bin bs=1 seek=$[0x41E61D]

5) Flash back BIOS to machine

flashrom -p internal -l layout -w new-bios.bin -i ec

In case it doesn't load the new EC fw, maybe we need to change FW version in header, but I will give instructions for this just in case that it doesn't work that way.

valpackett commented 2 years ago

Yes, it worked! \o/

i don't like flashrom's region handling / padded format, here's how i patched the whole rom with ifdtool ``` % ifdtool -x ~/l430.updated.rom % cp flashregion_1_bios.bin bios_swapped.bin % echo -ne "\x22\x1a" | dd conv=notrunc of=bios_swapped.bin bs=1 seek=$[0x41E61D-0x400000] % ifdtool -O l430.kbtest.rom -i bios:bios_swapped.bin ~/l430.updated.rom ```

BTW, I don't think there's even a way for it to "not load" anything. Looks like this EC does not have its own flash, it's all always loaded from the main SPI flash: first, flashing the stock 2.04 bios also reverts the EC version to 1.13 (as shown by the setup screen), and also there is no "flashing the EC" step after any update (just flashed from stock to 2.76 from the official bootable ISO, that seems equivalent to what my manual updates did).

leecher1337 commented 2 years ago

Thank you very much for testing, this is indeed good news!

As far as I understand, you only did ifdtool splitting because of your personal preference (i.e. to have clean offsets for patching the firmware), so the method oulined by me would still work, I guess? Basically I'd do it that way to not have a dependency on ifdtool (the same could also be accomplished by just using plain dd on the flashrom file, I guess).

The keyboard patch documentation may also be usable for non-7-row keyboard users, i.e. to enable numlock functionality on their keyboards.

Battery authentication is another interesting topic with this firmware, as OP asked for it, but there are so many weird state machines in there all sending undocumented commands to the Battery controller, I fear I'm unable to understand all this stuff, I guess someone more experienced needs to have a look at it. ACPI tables also don't really enlighten me regarding all the memory locations on the communication interface to the EC.

Well, at least we have a keyboard fix, will try it out myself soon.

valpackett commented 2 years ago

you only did ifdtool splitting because of your personal preference

Yes, mostly because I do the modifications on my desktop, while flashrom is on a raspberry pi.

Battery authentication is another interesting topic with this firmware

Indeed. Is there any info from other machines with a similar EC that have already been patched?

leecher1337 commented 2 years ago

Now took a closer look

echo -ne "\x0c\x60\x02" | dd of=/sys/kernel/debug/ec/ec0/ram bs=1 seek=$[0x1004a]

Should temporarily enable the battery. Will try to make a patch so that it permanently accepts any battery tomorrow (will need to modify some code of the state machine)

leecher1337 commented 2 years ago

Patching Thinkpad L430/L530 battery check

The Problem

The xx30 Series of Thinkpads unfortunately incorporate some kind of battery check that makes it impossible to use an aftermarket and/or xx20 series battery, even though i.e. T420 battery will perfectly fit into L530 and also works. The reason is some kind of challenge/response battery athentication mechanism in the embedded controller. This was discovered by Dr. Matthew Chapman for his X230T Thinkpad and very well documented in his blog. Unfortunately, the Thinkpad L430 and L530 series use a different embededd controller (Nuvoton NPCE885G), so work had to be done to also patch this type of controller.

The authentication routine

The authentication routine for battery authentication as pretty similar to the one that is described by ZMatt. Mainly just the order of steps is different. In Firmware G3HT40WW(1.14) the state machine routine is at 288ac. The state of the state machine including various flags is a 3 byte array at 1004a. The first 2 bytes can be seen as a little endian word, the 3rd as a byte. However, to avoid confusion, I will address each byte seperately in my description, so "byte 1" is at 1004a, "byte 2" is at 1004b, etc. The lower 5 bits of the first word are indicating the state of the autentication state machine which I partly will describe here, the other bits are various flags.

State Description
1 Init
2 Wait for challenge to be constructed. The state machine for challenge construction and validation is at 3161a. Start write command 0x27 (with 17-byte challenge)
3 check success, retry if necessary
4 start read command 0x28
5 check success, retry if necessary
6 start write command 0x3c (with 4-byte challenge)
7 check success, retry if necessary
8 start read command 0x3c
9 check success, retry if necessary. Challenge is validated at state machine in 3161a. If it succeeds, bit 0x40 in byte 2 of our 3 byte array at 1004a is set.
12 validate battery response

There are more states, but they are not interesting to us for our purpose. The 4byte challenge, that gets written in Step 6, seems to be partly composed of current system date in bytes 3 and 4. The system date can be set by BIOS with the following 91h commands:

Command Description
5Dh xx Set current day
5Eh xx Set current month
5Fh xx Set current year

If there is a failure in communicating with the Battery via SMbus, there is a error recovery handler at 282c0 which resets the state machine back to state 1 and saves the prvious state in 1004a byte 2.

If communication fails 5 times in a row, there is a failure handler at 286d4 that clears some bits of 1004a byte 2 (described later):

The state changes are: States Description
2, 4 Clear bit 6 in byte 2
6, 8 Clear bit 5, 7 in byte 2
19,21,23 Reset state machine to 0

In States 2-8, it sets bit 4 in 1004a byte 3 to indicate failure.

1004a Byte 2 flags (Bit numbers are zero-based, little endian): Bit Description
7 ?
6 Battery authenticated
5 Allow charging of battery?
0-4 Previous state machine state on retry
1004a Byte 3 flags: Bit Description
5-7 Ununsed
4 Battery auth comm. failed, handler at 286d4 got executed
3 State 4 success, 17byte challenge read, check authentication
2 State 2 success
1 Current date has been set by BIOS with call to 91h 5Fh
0 State 12 check performed

Now let's have a look at the state transition in each 3 described bytes when inserting a battery that doesn't support authentication.

State Byte 1 Byte 2 Byte 3
Battery in 00 22 13
Battery removed 00 02 02
Battery inserted 01 06 02
02 26 02
01 22 02
02 22 02
01 22 02
00 22 13

So battery gets plugged in, state machine starts at 1, progresses to State 2, cryptographic challenge got prepared, 0x027 command is sent and then fails. It retries 5 times and then it finally sets error flag in byte 3 and resets state machine back to 0.

Writing a patch for the authentication routine

Judging from the states above, we want to

So we can simply write these bytes to the state machine field and have a temporary patch for an inserted battery. But as swapping the battery etc. would reset back to the not-authenticated state, having a permanent patch would be more desirable. In order to do this, we have to skip from state 2 to state 12 and ensure that Bits 5 and 6 in byte 2 get set. Byte 3 doesn't interest us, as we can just skip over the check in state 12. So the following patch should be enough:

Address Old instruction Old instr. bytes New instr. New instr. bytes State Comment
28a72 BReq 0002915e 00 18 ec 06 BR *0x00028ac6 e0 18 54 00 2 Do net send battery auth challenge
28ade ORW 0x03, R0 30 26 ORW 0x0C, R0 c0 26 2 Skip directly to state 12
28c68 BRfs 0002915 80 18 f6 04 BR 00028cc2 e0 18 5a 00 12 Always execute step (ignore byte 3 bit 0) and do not go back to state 6
28cea TBITB $0x06,*0x1(R1R0) 60 7b 01 00 SBITB $0x06,*0x1(R1R0) 60 73 01 00 12 Set battery authenticated bit
BRfc 00028d26 9c 11 SBITB $0x05,*0x1(R1R0) 50 73 01 00 12 Set battery charging enable bit
BR *0x28d1e e0 18 2c 00 12 Now go on to code where both bits were enabled

The addresses are based on RAM offset of firmware. If you want to calculate the address in firmware image, use the following calculation:

Op Offset Description
400000 Offset of EC firmware in BIOS image
+ 8000 Offset of code that gets loaded at memory location 20100
- 20100 Memory location of code

So the offset to add to the addresses above is 3e7f00 when patching firmware images.

Patching the authentication routine

You MUST ensure that you have the correct EC firmware version in use!! Firmware version must be: G3HT40WW(1.14) If unsure, you can check i.e. in BIOS.

Hotpatch memory at runtime

The easiest method is to just modify the state of the state machine at runtime.

Advantage: Minimal invasive, just change EC memory

Disadvantage: It only lasts as long as the battery is inserted in the machine and there is enough power so the EC doesn't shut down

How to patch: 1) Compile x2100-ec-sys kernel module 2) If already installed, remove kernel module and reload it with write support:

rmmod x2100-ec-sys
modprobe x2100_ec_sys write_support=1

3) Ensure that battery is already inserted. 4) echo -ne "\x0c\x60\x02" | dd of=/sys/kernel/debug/ec/ec0/ram bs=1 seek=$[0x1004a]

Now battery should become ready and if not full start to charge.

Hotpatch firmware code

Advantage: No permanent changes to EC firmware, if it causes bad side effects, you just need to remove battery and power to reset EC back to stock firmware. Unlike memory hotpatch, also survives battery pack change.

Disadvantage: It only lasts as long as there is enough power so the EC doesn't shut down

How to patch: 1) Compile x2100-ec-sys kernel module 2) If already installed, remove kernel module and reload it with write support:

rmmod x2100-ec-sys
modprobe x2100_ec_sys write_support=1

3) Patch the code from down to up so that it doesn't accidentally get jumped to while you are still patching, if it is still active during patching:

echo -ne "\x60\x73\x01\x00\x50\x73\x01\x00\xe0\x18\x2c\x00" | dd of=/sys/kernel/debug/ec/ec0/ram bs=1 seek=$((0x28cea))
echo -ne "\xe0\x18\x5a\x00" | dd of=/sys/kernel/debug/ec/ec0/ram bs=1 seek=$((0x28c68))
echo -ne "\xc0" | dd of=/sys/kernel/debug/ec/ec0/ram bs=1 seek=$((0x28ade))
echo -ne "\xe0\x18\x54\x00" | dd of=/sys/kernel/debug/ec/ec0/ram bs=1 seek=$((0x28a72))

4) If a battery is already inserted, kick off that state machine to rerun:

echo -ne "\x02" | dd of=/sys/kernel/debug/ec/ec0/ram bs=1 seek=$((0x1004a))

Now battery should become ready and if not full start to charge. Swapping the battery also works.

Permanently patch firmware

Advantage: Survives even power-off and battery removal, so loads again on EC-reinitialization

Disadvantage: You have to re-flash your EC firmware. If something goes wrong, you may end up with a bricked machine. Do this at your own risk. If something goes wrong, do not complain!

How to patch:

1) Flash most recent stock firmware with EC Firmware version G3HT40WW(1.14) so that you are at the current Firmware level and verify that stock FW works and is OK.

2) Create file named layout with the following contents:

00000000:00000fff fd
00400000:007fffff bios
00400000:0041ffff ec
00001000:003fffff me 

Then read ec firmware with:

flashrom -p internal -l layout -r current-bios.bin -i ec

3) Check BIOS image to verify that we are patching the correct region

dd if=current-bios.bin bs=1 count=16 skip=$((0x3e7f00+0x28cea)) 2>/dev/null | hexdump -C

This should result in the following original code:

60 7b 01 00 9c 11 72 5d 22 5f 20 55 20 4c 20 61 |{....r]"_ U L a| `

4) Apply patches to image

echo -ne "\x60\x73\x01\x00\x50\x73\x01\x00\xe0\x18\x2c\x00" | dd conv=notrunc of=current-bios.bin bs=1 seek=$((0x3e7f00+0x28cea))
echo -ne "\xe0\x18\x5a\x00" | dd conv=notrunc of=current-bios.bin bs=1 seek=$((0x3e7f00+0x28c68))
echo -ne "\xc0" | dd conv=notrunc of=current-bios.bin bs=1 seek=$((0x3e7f00+0x28ade))
echo -ne "\xe0\x18\x54\x00" | dd conv=notrunc of=current-bios.bin bs=1 seek=$((0x3e7f00+0x28a72))

5) Flash back BIOS to machine

flashrom -p internal -l layout -w new-bios.bin -i ec

6) Power down machine, force reload of EC firmware by removing battery and AC power for 30 seconds

This has not been tested yet, but should work.

Good luck!

jwise commented 2 years ago

You need to recompute the EC checksum before you flash it. Otherwise the machine won't boot.

Dynamically patching possibly-live code can be tricky. In my x2100 EC patch set I have some tools to build patches and to build a "safe" patch loader that operates atomically. If I remember in the morning I'll try to write more about it...

leecher1337 commented 2 years ago

You need to recompute the EC checksum before you flash it. Otherwise the machine won't boot.

No, I already explained that:

The EC firmware is divided into 2 parts. The first part is the loader that loads attached real firmware image to address 20100. As only the loader-Part of the firmware is checksummed, it is not necessary to recalculate the checksum of the loader part. It will remain the same, when just changing the data that gets loaded. That was the whole point of the test to check whether there is some other hidden checksum in it, but as @unrelentingtech was able to patch it without issues, there doesn't seem to be a second check.

Dynamically patching possibly-live code can be tricky. In my x2100 EC patch set I have some tools to build patches and to build a "safe" patch loader that operates atomically. If I remember in the morning I'll try to write more about it...

I just wrote my own using just bash, dd and hexdump that verifies old contents and allows hot-patching and image patching of files and sequences, I will upload it to a seperate repo soon so that you can also check, if I missed something.

leecher1337 commented 2 years ago

@unrelentingtech How did you flash the firmware on the L530? I tried flashrom -p internal -l layout -w new-bios.bin -i ec and this resulted in:

Found Winbond flash chip "W25Q64.V" (8192 kB, SPI), mapped at physical address 0x00000000ff800000.
Enabling flash write... SPI Configuration is locked down.

Reading old flash chip contents... Transaction error!
FAILED

Maybe this is due to a different flash chip than yours, could it be...?

valpackett commented 2 years ago

@unrelentingtech How did you flash the firmware on the L530?

With a raspberry pi and a chip clip.

You can only do internal with the 1vyrain "jailbreak" (see that thread where I was summoned from :D) on early enough firmware (2.54 or lower)

leecher1337 commented 2 years ago

As 1vyrain FAQ states:

The mod is fully compatible with EC modifications, but it must be flashed before you use 1vyrain to update your BIOS. 

I guess I have to find out how thinkpad-ec modifies the .FL1 files and then patch these to flash with Lenovo FW upgrade program instead of flashrom? It looks to me as the modifications just need to be carried out in the .FL1 file without any additional steps, as EC Firmware is not encrypted on L430 models. I thought that there are some UEFI checksums or stuff like that to consider, but I only find call of mec-tools which are for the encrypted firmware and L430 firmware is not encrypted and doesn't even need to be checksummed, as checksum of loader remains the same. So could it be that it's just patching .FL1 file (FW starts at offset 0x4001d0 in .FL1 file)? Would you be able to try it out?

valpackett commented 2 years ago

The "flashed before" thing is mostly meant for those other models that have internal flash on the EC, or whatever they have. In our case this only means that flashing the pre-baked firmware image that comes on the 1vyrain ISO (for now only on a test version for L430!) will overwrite the EC region.

But I'm not saying to use that image! You can just run the jailbreak and then use flashrom from the command line with your own stuff.

Maybe we can eventually get them to include the EC modifications in their image...

leecher1337 commented 2 years ago

@unrelentingtech Shit, I modified .FL1 file with patched EC Firmware and did:

dosflash /sd /sn /ipf ec /file G3ET94WW\$01D4000.FL1

to update EC firmware. This command is based on what the official Windows update program does: winflash32 /silent /vcpu /sn /sd /v /exit /ipf bios ec /shutdown /file

So I was under the assumption that it can detect EC firmware location within FL1 file, but seems that it didn't. Any hints on how to recover? Seems I need to find someone with a chip clip and RaspPi...? I guess, that it's basically https://github.com/bibanon/Coreboot-ThinkPads/wiki/Hardware-Flashing-with-Raspberry-Pi with a different wiring for the respective BIOS chip Maybe you can guide me through the process of writing back a working BIOS+EC FW so that I don't make another mistake, as you seem to have a working setup for that. First I'd like to know where the chip is located on the board. I guess it's a WinBond W25Q64 and it looks like that

valpackett commented 2 years ago

The chip is.. not in the most convenient location. I've had to modify the bottom case for easy access:

Photo

Also my Pi reboots every time I connect the chip clip, but otherwise it's just standard external flashing.

upd: also the pinout seems standardized for all SOIC-8 flash chips

leecher1337 commented 2 years ago

Thanks for the fast reply! Seems that it will take 1-2 weeks until I can visit someone with a chip clip to try it out.

However I'm very curious what went wrong with flashing. My assumption is that the dosflash utility flashed the start of the FL1 BIOS image to the EC area (as i.e. on other models, it flashes FL2 files which directly only contain EC ROM), as only Power button lights up as soon as I plug in power cord. But on the other hand, why does original flash utility call contain "bios" AND "ec" region as parameters, if it doesn't know the layout of the flash file. I also found code to validate EC images in the flasher that seems to only run for certain machine types (those with seperate FL2, supposedly), and which would warn if image if bogus.

If I understand currectly, the EC always loads its code from BIOS chip, so it's not possible that I bricked the EC, right?

For reproducability, here is what I did: I put this .img onto a stick (dd if=patched.l430.img of=/dev/sdX...) and then modified autoexec.bat to also contain the /sn parameter (als FL1 states these informations are not used anymore and original Flasher update routine also uses this parameter): patched.l430.zip It is worth to mention that in BIOS USB Menu UEFI booting from removable media has to be turned on, even though Legacy Boot has to be used to boot the stick, otherwise, it won't boot. If you dare, you can try it out and analyse what went wrong, but I don't know if there is a risk associated with it, even though you have an external flasher.

valpackett commented 2 years ago

On the L430 there is no EC flash, no "EC region" on the IFD level (EC FW is embedded in the bios) – so no flash tools should ever "know" about "it". Of course these vendor tools get reused between various models, so I'm not surprised that there is functionality that has undefined behavior on some models.

It has probably done something really stupid, I am curious now :) so I will run it soon and dump the result.

leecher1337 commented 2 years ago

@q60 In the meantime, until we analyzed the reason for BIOS Update failure, you can use the hot-patching feature to solve your battery problem. This should be pretty risk-free. I made a repository with a bootable ISO to apply the patches in memory:

https://github.com/leecher1337/thinkpad-Lx30-ec/releases/tag/20211227

valpackett commented 2 years ago

So here's what that did (on top of a clean 2.76 FW):

Relatively long diff of the whole SPI flash ```diff @@ -11337,9 +11337,12 @@ │00032c00│ 0e 1c 02 c8 f0 00 02 00 ┊ ff 40 00 0e 1c 03 c8 f0 │•••××0•0┊×@0•••××│ │00032c10│ 00 2a 00 00 48 00 0e 1d ┊ 00 c8 f0 00 02 00 ff 40 │0*00H0••┊0××0•0×@│ │00032c20│ 00 0e 1d 01 c8 f0 00 2a ┊ 00 00 48 00 0e 1d 02 c8 │0•••××0*┊00H0•••×│ -│00032c30│ f0 00 02 00 ff 40 00 0e ┊ 1d 03 dc f0 00 2a 00 00 │×0•0×@0•┊••××0*00│ -│00032c40│ 48 00 0e 1e 01 dc f0 00 ┊ 02 00 ff 40 00 0e 1e 02 │H0•••××0┊•0×@0•••│ -│00032c50│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ +│00032c30│ f0 00 02 00 ff 40 00 0e ┊ 1d 03 c8 f0 00 2a 00 00 │×0•0×@0•┊••××0*00│ +│00032c40│ 48 00 0e 1e 01 c8 f0 00 ┊ 02 00 ff 40 00 0e 1e 02 │H0•••××0┊•0×@0•••│ +│00032c50│ c8 f0 00 2a 00 00 48 00 ┊ 0e 1e 03 c8 f0 00 02 00 │××0*00H0┊•••××0•0│ +│00032c60│ ff 40 00 0e 1f 01 dc f0 ┊ 00 2a 00 00 48 00 0e 1f │×@0•••××┊0*00H0••│ +│00032c70│ 02 dc f0 00 02 00 ff 40 ┊ 00 0e 1f 03 ff ff ff ff │•××0•0×@┊0•••××××│ +│00032c80│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ │* │ ┊ │ ┊ │ │00034000│ 0c 78 fc ff 00 00 00 00 ┊ ff ff ff ff ff ff ff ff │_x××0000┊××××××××│ │00034010│ ff 1f 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │ו000000┊00000000│ @@ -13283,13 +13286,13 @@ │0003c010│ ff 1f 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │ו000000┊00000000│ │0003c020│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 10 00 00 00 │00000000┊0000•000│ │0003c030│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ -│0003c040│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 f0 ff ff ff │00000000┊0000××××│ +│0003c040│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 ff │00000000┊0000000×│ │0003c050│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ │* │ ┊ │ ┊ │ │0003c090│ 00 01 02 03 04 05 06 07 ┊ 08 09 0a 0b 0c 0d 0e 0f │0•••••••┊•__•__••│ -│0003c0a0│ 10 11 12 13 14 15 16 17 ┊ 18 19 1a 1b 1c 1d 1e ff │••••••••┊•••••••×│ -│0003c0b0│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ -│* │ ┊ │ ┊ │ +│0003c0a0│ 10 11 12 13 14 15 16 17 ┊ 18 19 1a 1b 1c 1d 1e 1f │••••••••┊••••••••│ +│0003c0b0│ 20 ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │ ×××××××┊××××××××│ +│0003c0c0│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ │0003c0d0│ 80 1f 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │ו000000┊00000000│ │0003c0e0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 ff │00000000┊0000000×│ │0003c0f0│ a1 10 0e 01 00 ae ee b8 ┊ 0f 38 01 00 00 00 00 00 │ו••0×××┊•8•00000│ @@ -13747,8 +13750,27 @@ │0003dea0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ │* │ ┊ │ ┊ │ │0003ded0│ 00 00 ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │00××××××┊××××××××│ -│0003dee0│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ +│0003dee0│ a3 20 0e 1f 00 00 01 02 ┊ 03 04 05 06 07 08 09 0a │× ••00••┊••••••__│ +│0003def0│ 0b 0c 0d 0e 0f 06 06 06 ┊ 06 06 06 00 00 00 00 01 │•__•••••┊•••0000•│ +│0003df00│ 80 2f 01 04 04 01 01 00 ┊ 00 00 00 00 00 00 00 00 │×/•••••0┊00000000│ +│0003df10│ 00 00 00 00 00 00 00 00 ┊ 00 04 01 01 10 00 01 00 │00000000┊0••••0•0│ +│0003df20│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 ff │00000000┊0000000×│ +│0003df30│ 81 42 36 5e 27 00 68 00 ┊ 00 00 00 00 00 00 00 00 │×B6^'0h0┊00000000│ +│0003df40│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ │* │ ┊ │ ┊ │ +│0003df70│ 00 00 ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │00××××××┊××××××××│ +│0003df80│ 82 4a 00 01 02 03 04 05 ┊ 06 07 08 09 0a 0b 0c 0d │×J0•••••┊•••__•__│ +│0003df90│ 0e 0f 06 06 06 06 06 06 ┊ 00 00 00 00 00 00 00 00 │••••••••┊00000000│ +│0003dfa0│ 01 01 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │••000000┊00000000│ +│0003dfb0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│0003dfc0│ 00 00 00 00 00 00 00 00 ┊ 00 00 ff ff ff ff ff ff │00000000┊00××××××│ +│0003dfd0│ a3 30 0e 20 00 36 5e 27 ┊ 00 d0 00 00 00 00 00 00 │×0• 06^'┊0×000000│ +│0003dfe0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│0003e000│ 80 17 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │ו000000┊00000000│ +│0003e010│ 00 00 00 00 00 00 00 ff ┊ ff ff ff ff ff ff ff ff │0000000×┊××××××××│ +│0003e020│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ +│* │ ┊ │ ┊ │ │00040000│ ff 78 ff ff 00 00 00 00 ┊ ff ff ff ff ff ff ff ff │×x××0000┊××××××××│ │00040010│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ │* │ ┊ │ ┊ │ @@ -81597,13 +81619,13 @@ │00410940│ 00 18 1e 07 70 5d 00 5f ┊ 04 55 24 4c 04 61 34 4c │0•••p]0_┊•U$L•a4L│ │00410950│ 24 00 01 00 4a 00 14 90 ┊ 81 49 b1 22 1f 00 04 90 │$0•0J0•×┊×I×"•0•×│ │00410960│ b0 22 e0 ff 10 27 04 d0 ┊ e0 18 f6 06 00 c0 a2 8b │×"×ו'•×┊וו0×××│ -│00410970│ 00 50 00 18 ec 06 70 5d ┊ 00 5f 02 55 22 4c 02 61 │0P0•×•p]┊0_•U"L•a│ +│00410970│ 00 50 e0 18 54 00 70 5d ┊ 00 5f 02 55 22 4c 02 61 │0PוT0p]┊0_•U"L•a│ │00410980│ 32 4c 22 00 01 00 4e 00 ┊ 00 c0 84 8e 72 59 ff c0 │2L"0•0N0┊0×××rY××│ │00410990│ 15 fe 00 01 10 58 00 01 ┊ 72 5d 22 5f 20 55 20 4c │•×0••X0•┊r]"_ U L│ │004109a0│ 20 61 30 4c 20 00 01 00 ┊ 4e 00 10 01 b5 58 11 00 │ a0L 0•0┊N0••×X•0│ │004109b0│ b4 58 27 00 b3 58 16 00 ┊ 72 59 ff c0 cd 96 8f 60 │×X'0×X•0┊rY×××××`│ │004109c0│ 00 50 00 18 9c 06 70 5d ┊ 00 5f 02 55 22 4c 02 61 │0P0•×•p]┊0_•U"L•a│ -│004109d0│ 32 4c 22 00 01 00 4a 00 ┊ 02 90 b0 22 e0 ff 30 26 │2L"0•0J0┊•××"××0&│ +│004109d0│ 32 4c 22 00 01 00 4a 00 ┊ 02 90 b0 22 e0 ff c0 26 │2L"0•0J0┊•××"×××&│ │004109e0│ e0 18 7c 06 70 5d 00 5f ┊ 02 55 22 4c 02 61 32 4c │ו|•p]0_┊•U"L•a2L│ │004109f0│ 22 00 01 00 4a 00 b0 58 ┊ 20 00 02 f3 1e 01 72 59 │"0•0J0×X┊ 0•×••rY│ │00410a00│ ff c0 a3 fd 0f f0 72 5d ┊ 22 5f 20 55 20 4c 20 61 │×××ו×r]┊"_ U L a│ @@ -81628,7 +81650,7 @@ │00410b30│ 30 05 70 5d 00 5f 02 55 ┊ 22 4c 02 61 32 4c 22 00 │0•p]0_•U┊"L•a2L"0│ │00410b40│ 01 00 4a 00 02 90 b0 22 ┊ e0 ff b0 26 09 00 e0 18 │•0J0•××"┊×××&_0ו│ │00410b50│ 0e 05 72 5d 22 5f 20 55 ┊ 20 4c 20 61 30 4c 20 00 │••r]"_ U┊ L a0L 0│ -│00410b60│ 01 00 4a 00 30 7b 02 00 ┊ 80 18 f6 04 20 55 22 4c │•0J00{•0┊וו U"L│ +│00410b60│ 01 00 4a 00 30 7b 02 00 ┊ e0 18 5a 00 20 55 22 4c │•0J00{•0┊וZ0 U"L│ │00410b70│ 02 61 32 4c 22 00 01 00 ┊ 6e 00 02 b1 00 50 12 12 │•a2L"0•0┊n0•×0P••│ │00410b80│ 72 59 ff c0 cd f3 00 50 ┊ 1d 11 70 5d 00 5f 02 55 │rY××××0P┊••p]0_•U│ │00410b90│ 22 4c 02 61 32 4c 22 00 ┊ 01 00 4a 00 02 90 b0 22 │"L•a2L"0┊•0J0•××"│ @@ -81636,8 +81658,8 @@ │00410bb0│ 34 4c 24 00 01 00 6e 00 ┊ 04 b1 10 30 04 f1 e0 18 │4L$0•0n0┊•×•0•×ו│ │00410bc0│ a0 04 72 5d 22 5f 20 55 ┊ 20 4c 20 61 30 4c 20 00 │וr]"_ U┊ L a0L 0│ │00410bd0│ 01 00 6e 00 00 83 01 00 ┊ 72 5d 22 5f 20 55 20 4c │•0n00ו0┊r]"_ U L│ -│00410be0│ 20 61 30 4c 20 00 01 00 ┊ 4a 00 60 7b 01 00 9c 11 │ a0L 0•0┊J0`{•0ו│ -│00410bf0│ 72 5d 22 5f 20 55 20 4c ┊ 20 61 30 4c 20 00 01 00 │r]"_ U L┊ a0L 0•0│ +│00410be0│ 20 61 30 4c 20 00 01 00 ┊ 4a 00 60 73 01 00 50 73 │ a0L 0•0┊J0`s•0Ps│ +│00410bf0│ 01 00 e0 18 2c 00 20 4c ┊ 20 61 30 4c 20 00 01 00 │•0ו,0 L┊ a0L 0•0│ │00410c00│ 4a 00 50 7b 01 00 8c 10 ┊ 20 55 22 4c 02 61 32 4c │J0P{•0ו┊ U"L•a2L│ │00410c10│ 22 00 01 00 4a 00 02 90 ┊ 10 49 00 50 05 10 10 00 │"0•0J0•×┊•I0P•••0│ │00410c20│ 00 71 84 04 e4 10 10 00 ┊ 00 b1 84 04 72 5d 22 5f │0qוו•0┊0×וr]"_│ @@ -85004,8 +85026,8 @@ │0041de60│ 4a 9f 4c 79 45 7c 4d 7b ┊ 5a 81 4e 7b 54 81 4a 79 │J×LyE|M{┊Z×N{T×Jy│ │0041de70│ 4c 7b 45 9f 4d 7c 00 00 ┊ 00 00 00 00 83 00 5a 01 │L{E×M|00┊0000×0Z•│ │0041de80│ 1f 01 27 01 2f 01 37 01 ┊ 3f 01 5e 01 02 05 04 05 │••'•/•7•┊?•^•••••│ -│0041de90│ 08 05 08 06 10 05 10 06 ┊ 40 05 20 05 00 00 00 04 │••••••••┊@• •000•│ -│0041dea0│ 01 04 84 00 7c 01 7c 03 ┊ 4a 01 4a 02 70 01 70 02 │••×0|•|•┊J•J•p•p•│ +│0041de90│ 08 05 08 06 10 05 10 06 ┊ 40 05 20 05 00 00 38 01 │••••••••┊@• •008•│ +│0041dea0│ 30 01 84 00 7c 01 7c 03 ┊ 4a 01 4a 02 70 01 70 02 │0•×0|•|•┊J•J•p•p•│ │0041deb0│ 70 03 71 01 71 02 71 03 ┊ 6c 01 6c 02 6c 03 69 01 │p•q•q•q•┊l•l•l•i•│ │0041dec0│ 69 02 69 03 7d 01 7d 02 ┊ 7d 03 7a 01 7a 02 7a 03 │i•i•}•}•┊}•z•z•z•│ │0041ded0│ 6b 01 6b 02 6b 03 75 01 ┊ 75 02 75 03 72 01 72 02 │k•k•k•u•┊u•u•r•r•│ @@ -85119,22 +85141,22 @@ │0041e590│ 2d 36 36 36 36 36 36 36 ┊ 2a 36 36 36 36 36 36 36 │-6666666┊*6666666│ │0041e5a0│ 36 36 36 36 36 36 36 36 ┊ 36 00 00 00 00 00 00 00 │66666666┊60000000│ │0041e5b0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 54 0e 05 0a │00000000┊0000T••_│ -│0041e5c0│ 2e 36 55 16 4e 18 00 a2 ┊ a1 00 00 00 8c 16 1e 26 │.6U•N•0×┊×000ו•&│ -│0041e5d0│ 25 3d 3e 46 45 1a 1e 1c ┊ a0 a3 00 00 00 15 1d 24 │%=>FE•••┊××000••$│ -│0041e5e0│ 2d 3c 43 44 28 6a 00 04 ┊ 00 00 00 00 00 0d 58 0c │-┊×:BSKN×e│ │006f3f40│ b9 69 9b 73 76 ba e2 94 ┊ 20 00 60 00 53 00 79 00 │×i×sv×××┊ 0`0S0y0│ │006f3f50│ 73 00 74 00 65 00 6d 00 ┊ 53 00 65 00 63 00 75 00 │s0t0e0m0┊S0e0c0u0│ │006f3f60│ 72 00 65 00 00 00 e3 31 ┊ 34 00 37 00 60 00 03 00 │r0e000×1┊4070`0•0│ │006f3f70│ 00 00 01 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00•00000┊00000000│ │006f3f80│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ -│006f3f90│ 00 00 00 00 00 00 00 00 ┊ 00 00 e3 3c 10 00 32 00 │00000000┊00×<•020│ +│006f3f90│ 00 00 00 00 00 00 00 00 ┊ 00 00 83 3c 10 00 32 00 │00000000┊00×<•020│ │006f3fa0│ 59 00 07 00 00 00 1e 04 ┊ 00 00 e3 65 f4 0b 33 00 │Y0•000••┊00×eו30│ │006f3fb0│ 5a 00 03 00 00 00 77 67 ┊ 14 00 44 43 14 08 20 22 │Z0•000wg┊•0DC•• "│ │006f3fc0│ 02 0a 8d 55 00 00 00 00 ┊ 00 00 00 00 00 00 05 00 │•_×U0000┊000000•0│ @@ -213238,8 +213260,8 @@ │006f4ba0│ 16 00 39 00 d9 d2 0f 20 ┊ f0 27 55 40 97 7c 8b 3b │•090×ו ┊×'U@×|×;│ │006f4bb0│ 60 0d 79 c4 e2 91 26 00 ┊ 63 00 4d 00 72 00 63 00 │`_y×××&0┊c0M0r0c0│ │006f4bc0│ 53 00 63 00 72 00 61 00 ┊ 6d 00 62 00 6c 00 65 00 │S0c0r0a0┊m0b0l0e0│ -│006f4bd0│ 72 00 56 00 61 00 72 00 ┊ 00 00 e3 36 14 00 39 00 │r0V0a0r0┊00×6•090│ -│006f4be0│ 63 00 03 00 00 00 3e 84 ┊ 00 00 7f d6 00 00 e3 d5 │c0•000>×┊00•×00××│ +│006f4bd0│ 72 00 56 00 61 00 72 00 ┊ 00 00 83 36 14 00 39 00 │r0V0a0r0┊00×6•090│ +│006f4be0│ 63 00 03 00 00 00 3e 84 ┊ 00 00 7f d6 00 00 83 d5 │c0•000>×┊00•×00××│ │006f4bf0│ 78 02 2a 00 50 00 07 00 ┊ 00 00 38 00 2e 00 30 00 │x•*0P0•0┊0080.000│ │006f4c00│ 2e 00 30 00 2e 00 33 00 ┊ 30 00 00 00 b3 cb 31 00 │.000.030┊0000××10│ │006f4c10│ 32 00 30 00 2e 00 30 00 ┊ 20 00 4d 00 48 00 7a 00 │2000.000┊ 0M0H0z0│ @@ -213280,25 +213302,25 @@ │006f4e40│ 2e 00 30 00 00 00 00 00 ┊ 00 00 90 cb 44 c9 00 00 │.0000000┊00××D×00│ │006f4e50│ 00 00 30 00 2e 00 30 00 ┊ 00 00 00 00 00 00 00 00 │0000.000┊00000000│ │006f4e60│ 00 00 40 62 b7 cb 83 5c ┊ 0d 00 34 00 5b 00 07 00 │00@b×××\┊_040[0•0│ -│006f4e70│ 00 00 01 e3 f9 14 00 15 ┊ 00 1e 00 03 00 00 00 98 │00•×ו0•┊0•0•000×│ +│006f4e70│ 00 00 01 83 f9 14 00 15 ┊ 00 1e 00 03 00 00 00 98 │00•×ו0•┊0•0•000×│ │006f4e80│ 81 cb d9 00 00 00 00 e1 ┊ c1 16 00 3a 00 bd fe 3c │×××0000×┊ו0:0××<│ │006f4e90│ 2a e8 27 0a 4d 8b 79 d6 ┊ 88 c2 a3 e1 c0 e2 e5 10 │*×'_M×y×┊××××××ו│ │006f4ea0│ 00 64 00 53 00 6d 00 73 ┊ 00 74 00 00 00 e3 50 1c │0d0S0m0s┊0t000×P•│ │006f4eb0│ 00 3a 00 64 00 03 00 00 ┊ 00 f8 22 00 db 00 00 00 │0:0d0•00┊0×"0×000│ │006f4ec0│ 00 00 23 00 db 00 00 00 ┊ 00 e3 0b 14 00 0b 00 16 │00#0×000┊0ו•0•0•│ -│006f4ed0│ 00 07 00 00 00 b2 00 00 ┊ 00 07 00 00 00 e3 5d 0d │0•000×00┊0•000×]_│ -│006f4ee0│ 00 34 00 5b 00 07 00 00 ┊ 00 00 e3 07 3c 00 31 00 │040[0•00┊00ו<010│ +│006f4ed0│ 00 07 00 00 00 b2 00 00 ┊ 00 07 00 00 00 83 5d 0d │0•000×00┊0•000×]_│ +│006f4ee0│ 00 34 00 5b 00 07 00 00 ┊ 00 00 83 07 3c 00 31 00 │040[0•00┊00ו<010│ │006f4ef0│ 58 00 07 00 00 00 ff ff ┊ ff ff 00 00 00 00 98 82 │X0•000××┊××0000××│ │006f4f00│ d4 ca 00 00 00 00 f8 c2 ┊ 23 d6 00 00 00 00 89 8c │××0000××┊#×0000××│ │006f4f10│ f5 fe 4b f7 a8 4a a9 a5 ┊ 03 b5 ab 82 23 2d 07 00 │××K××J××┊•×××#-•0│ -│006f4f20│ 00 00 00 00 00 00 e3 b7 ┊ 22 00 0b 00 5c 00 07 00 │000000××┊"0•0\0•0│ +│006f4f20│ 00 00 00 00 00 00 83 b7 ┊ 22 00 0b 00 5c 00 07 00 │000000××┊"0•0\0•0│ │006f4f30│ 00 00 02 01 0c 00 d0 41 ┊ 03 0a 00 00 00 00 01 01 │00••_0×A┊•_0000••│ │006f4f40│ 06 00 00 02 7f ff 04 00 ┊ e3 83 48 00 23 00 2d 00 │•00••×•0┊××H0#0-0│ │006f4f50│ 03 00 00 00 4e 00 6f 00 ┊ 74 00 20 00 49 00 6e 00 │•000N0o0┊t0 0I0n0│ │006f4f60│ 73 00 74 00 61 00 6c 00 ┊ 6c 00 65 00 64 00 00 00 │s0t0a0l0┊l0e0d000│ │006f4f70│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 05 01 00 00 │00000000┊0000••00│ │006f4f80│ 00 00 00 00 05 01 00 00 ┊ 00 00 00 00 ac 29 3a d6 │0000••00┊0000×):×│ -│006f4f90│ e3 34 48 00 29 00 2d 00 ┊ 03 00 00 00 4e 00 6f 00 │×4H0)0-0┊•000N0o0│ +│006f4f90│ 83 34 48 00 29 00 2d 00 ┊ 03 00 00 00 4e 00 6f 00 │×4H0)0-0┊•000N0o0│ │006f4fa0│ 74 00 20 00 49 00 6e 00 ┊ 73 00 74 00 61 00 6c 00 │t0 0I0n0┊s0t0a0l0│ │006f4fb0│ 6c 00 65 00 64 00 00 00 ┊ 00 00 00 00 0f 00 00 00 │l0e0d000┊0000•000│ │006f4fc0│ 00 00 00 00 04 00 00 00 ┊ 00 00 00 00 47 00 c0 f5 │0000•000┊0000G0××│ @@ -213307,25 +213329,25 @@ │006f4ff0│ 73 00 74 00 61 00 6c 00 ┊ 6c 00 65 00 64 00 00 00 │s0t0a0l0┊l0e0d000│ │006f5000│ 00 00 00 00 04 00 00 00 ┊ 00 00 00 00 52 08 0f d6 │0000•000┊0000R••×│ │006f5010│ 00 00 00 00 00 b6 02 d6 ┊ 00 00 00 00 43 23 3a d6 │00000ו×┊0000C#:×│ -│006f5020│ e3 2a 48 00 24 00 2d 00 ┊ 03 00 00 00 4e 00 6f 00 │×*H0$0-0┊•000N0o0│ +│006f5020│ 83 2a 48 00 24 00 2d 00 ┊ 03 00 00 00 4e 00 6f 00 │×*H0$0-0┊•000N0o0│ │006f5030│ 74 00 20 00 49 00 6e 00 ┊ 73 00 74 00 61 00 6c 00 │t0 0I0n0┊s0t0a0l0│ │006f5040│ 6c 00 65 00 64 00 00 00 ┊ 00 00 00 00 47 00 c0 f5 │l0e0d000┊0000G0××│ │006f5050│ 0e d6 00 00 03 88 43 d6 ┊ 00 00 00 00 47 00 c0 f5 │•×00•×C×┊0000G0××│ -│006f5060│ 0e d6 00 00 00 00 0f d6 ┊ e3 b2 48 00 2e 00 2d 00 │•×0000•×┊××H0.0-0│ +│006f5060│ 0e d6 00 00 00 00 0f d6 ┊ 83 b2 48 00 2e 00 2d 00 │•×0000•×┊××H0.0-0│ │006f5070│ 03 00 00 00 4b 00 49 00 ┊ 4e 00 47 00 53 00 54 00 │•000K0I0┊N0G0S0T0│ │006f5080│ 4f 00 4e 00 20 00 53 00 ┊ 41 00 34 00 30 00 30 00 │O0N0 0S0┊A0400000│ │006f5090│ 20 00 2d 00 20 00 32 00 ┊ 34 00 30 00 2e 00 30 00 │ 0-0 020┊4000.000│ │006f50a0│ 20 00 47 00 42 00 00 00 ┊ 00 00 00 00 ea b8 7f c8 │ 0G0B000┊0000×ו×│ -│006f50b0│ e3 3a 48 00 2f 00 2d 00 ┊ 03 00 00 00 50 00 4c 00 │×:H0/0-0┊•000P0L0│ +│006f50b0│ 83 3a 48 00 2f 00 2d 00 ┊ 03 00 00 00 50 00 4c 00 │×:H0/0-0┊•000P0L0│ │006f50c0│ 44 00 53 00 20 00 44 00 ┊ 56 00 44 00 2d 00 52 00 │D0S0 0D0┊V0D0-0R0│ │006f50d0│ 57 00 20 00 44 00 53 00 ┊ 20 00 2d 00 20 00 41 00 │W0 0D0S0┊ 0-0 0A0│ │006f50e0│ 54 00 41 00 50 00 49 00 ┊ 00 00 00 00 00 50 d8 c9 │T0A0P0I0┊00000P××│ -│006f50f0│ 00 00 00 00 97 b6 7f c8 ┊ e3 fc 48 00 25 00 2d 00 │0000×ו×┊××H0%0-0│ +│006f50f0│ 00 00 00 00 97 b6 7f c8 ┊ 83 fc 48 00 25 00 2d 00 │0000×ו×┊××H0%0-0│ │006f5100│ 03 00 00 00 4e 00 6f 00 ┊ 74 00 20 00 49 00 6e 00 │•000N0o0┊t0 0I0n0│ │006f5110│ 73 00 74 00 61 00 6c 00 ┊ 6c 00 65 00 64 00 00 00 │s0t0a0l0┊l0e0d000│ │006f5120│ 00 00 00 00 04 00 00 00 ┊ 00 00 00 00 0e 86 43 d6 │0000•000┊0000•×C×│ │006f5130│ 00 00 00 00 47 00 c0 f5 ┊ 0e d6 00 00 00 00 0f d6 │0000G0××┊•×0000•×│ -│006f5140│ e3 15 48 00 1b 00 2d 00 ┊ 03 00 00 00 4e 00 6f 00 │וH0•0-0┊•000N0o0│ +│006f5140│ 83 15 48 00 1b 00 2d 00 ┊ 03 00 00 00 4e 00 6f 00 │וH0•0-0┊•000N0o0│ │006f5150│ 74 00 20 00 49 00 6e 00 ┊ 73 00 74 00 61 00 6c 00 │t0 0I0n0┊s0t0a0l0│ │006f5160│ 6c 00 65 00 64 00 00 00 ┊ 00 00 00 00 30 00 00 00 │l0e0d000┊00000000│ │006f5170│ 00 00 00 00 52 08 0f d6 ┊ 00 00 00 00 04 00 00 00 │0000R••×┊0000•000│ @@ -213334,12 +213356,240 @@ │006f51a0│ 73 00 74 00 61 00 6c 00 ┊ 6c 00 65 00 64 00 00 00 │s0t0a0l0┊l0e0d000│ │006f51b0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 10 c0 e7 d9 │00000000┊0000•×××│ │006f51c0│ 00 00 00 00 f8 b6 02 d6 ┊ 00 00 00 00 43 23 3a d6 │0000×ו×┊0000C#:×│ -│006f51d0│ e3 4f 48 00 30 00 2d 00 ┊ 03 00 00 00 4e 00 6f 00 │×OH000-0┊•000N0o0│ +│006f51d0│ 83 4f 48 00 30 00 2d 00 ┊ 03 00 00 00 4e 00 6f 00 │×OH000-0┊•000N0o0│ │006f51e0│ 74 00 20 00 49 00 6e 00 ┊ 73 00 74 00 61 00 6c 00 │t0 0I0n0┊s0t0a0l0│ │006f51f0│ 6c 00 65 00 64 00 00 00 ┊ 00 00 00 00 d0 c7 44 c9 │l0e0d000┊0000××D×│ │006f5200│ 00 00 00 00 98 c7 44 c9 ┊ 00 00 00 00 18 3c eb c9 │0000××D×┊0000•<××│ -│006f5210│ 00 00 00 00 00 00 00 00 ┊ ff ff ff ff ff ff ff ff │00000000┊××××××××│ -│006f5220│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ +│006f5210│ 00 00 00 00 00 00 00 00 ┊ 83 3b 10 00 32 00 59 00 │00000000┊×;•020Y0│ +│006f5220│ 07 00 00 00 1f 04 00 00 ┊ 83 53 14 00 39 00 63 00 │•000••00┊×S•090c0│ +│006f5230│ 03 00 00 00 dc 5c 00 00 ┊ 3e 84 00 00 83 06 78 02 │•000×\00┊>×00וx•│ +│006f5240│ 2a 00 50 00 07 00 00 00 ┊ 38 00 2e 00 30 00 2e 00 │*0P0•000┊80.000.0│ +│006f5250│ 30 00 2e 00 33 00 30 00 ┊ 00 00 b3 cb 31 00 32 00 │00.03000┊00××1020│ +│006f5260│ 30 00 2e 00 30 00 20 00 ┊ 4d 00 48 00 7a 00 00 00 │00.000 0┊M0H0z000│ +│006f5270│ 31 00 30 00 30 00 2e 00 ┊ 30 00 20 00 4d 00 48 00 │100000.0┊00 0M0H0│ +│006f5280│ 7a 00 00 00 31 00 30 00 ┊ 30 00 2e 00 30 00 20 00 │z0001000┊00.000 0│ +│006f5290│ 4d 00 48 00 7a 00 00 00 ┊ 31 00 32 00 30 00 2e 00 │M0H0z000┊102000.0│ +│006f52a0│ 36 00 36 00 20 00 4d 00 ┊ 48 00 7a 00 31 00 32 00 │6060 0M0┊H0z01020│ +│006f52b0│ 30 00 2e 00 30 00 20 00 ┊ 4d 00 48 00 7a 00 00 00 │00.000 0┊M0H0z000│ +│006f52c0│ 31 00 30 00 30 00 2e 00 ┊ 30 00 20 00 4d 00 48 00 │100000.0┊00 0M0H0│ +│006f52d0│ 7a 00 00 00 31 00 32 00 ┊ 30 00 2e 00 30 00 20 00 │z0001020┊00.000 0│ +│006f52e0│ 4d 00 48 00 7a 00 00 00 ┊ 31 00 30 00 30 00 2e 00 │M0H0z000┊100000.0│ +│006f52f0│ 30 00 20 00 4d 00 48 00 ┊ 7a 00 00 00 31 00 30 00 │00 0M0H0┊z0001000│ +│006f5300│ 30 00 2e 00 30 00 20 00 ┊ 4d 00 48 00 7a 00 00 00 │00.000 0┊M0H0z000│ +│006f5310│ 31 00 31 00 39 00 2e 00 ┊ 33 00 34 00 20 00 4d 00 │101090.0┊3040 0M0│ +│006f5320│ 48 00 7a 00 31 00 32 00 ┊ 30 00 2e 00 30 00 20 00 │H0z01020┊00.000 0│ +│006f5330│ 4d 00 48 00 7a 00 00 00 ┊ 31 00 30 00 30 00 2e 00 │M0H0z000┊100000.0│ +│006f5340│ 30 00 20 00 4d 00 48 00 ┊ 7a 00 00 00 30 00 2e 00 │00 0M0H0┊z00000.0│ +│006f5350│ 35 00 30 00 00 00 00 00 ┊ 90 cb 44 c9 00 00 00 00 │50000000┊××D×0000│ +│006f5360│ 30 00 2e 00 35 00 30 00 ┊ 00 00 00 00 00 00 00 00 │00.05000┊00000000│ +│006f5370│ 02 c1 7f c8 30 00 2e 00 ┊ 35 00 30 00 00 00 00 00 │•×•×00.0┊50000000│ +│006f5380│ 20 cc 44 c9 00 00 00 00 ┊ 30 00 2e 00 35 00 30 00 │ ×D×0000┊00.05000│ +│006f5390│ 00 00 44 c9 00 00 00 00 ┊ 18 e5 57 cd 30 00 2e 00 │00D×0000┊•×W×00.0│ +│006f53a0│ 35 00 30 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │50000000┊00000000│ +│006f53b0│ 30 00 2e 00 35 00 30 00 ┊ 00 00 44 c9 00 00 00 00 │00.05000┊00D×0000│ +│006f53c0│ 90 cb 44 c9 31 00 32 00 ┊ 30 00 2e 00 30 00 20 00 │××D×1020┊00.000 0│ +│006f53d0│ 4d 00 48 00 7a 00 00 00 ┊ 31 00 30 00 30 00 2e 00 │M0H0z000┊100000.0│ +│006f53e0│ 30 00 20 00 4d 00 48 00 ┊ 7a 00 00 00 31 00 30 00 │00 0M0H0┊z0001000│ +│006f53f0│ 30 00 2e 00 30 00 20 00 ┊ 4d 00 48 00 7a 00 00 00 │00.000 0┊M0H0z000│ +│006f5400│ 31 00 31 00 39 00 2e 00 ┊ 39 00 30 00 20 00 4d 00 │101090.0┊9000 0M0│ +│006f5410│ 48 00 7a 00 31 00 32 00 ┊ 30 00 2e 00 30 00 20 00 │H0z01020┊00.000 0│ +│006f5420│ 4d 00 48 00 7a 00 00 00 ┊ 31 00 30 00 30 00 2e 00 │M0H0z000┊100000.0│ +│006f5430│ 30 00 20 00 4d 00 48 00 ┊ 7a 00 00 00 30 00 2e 00 │00 0M0H0┊z00000.0│ +│006f5440│ 35 00 30 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │50000000┊00000000│ +│006f5450│ 30 00 2e 00 35 00 30 00 ┊ 00 00 00 00 00 00 00 00 │00.05000┊00000000│ +│006f5460│ 8e 3c 46 d6 30 00 2e 00 ┊ 30 00 00 00 00 00 00 00 │×0o0M│ +│006f5920│ 00 65 00 6d 00 6f 00 72 ┊ 00 79 00 54 00 79 00 70 │0e0m0o0r┊0y0T0y0p│ +│006f5930│ 00 65 00 49 00 6e 00 66 ┊ 00 6f 00 72 00 6d 00 61 │0e0I0n0f┊0o0r0m0a│ +│006f5940│ 00 74 00 69 00 6f 00 6e ┊ 00 42 00 61 00 63 00 6b │0t0i0o0n┊0B0a0c0k│ +│006f5950│ 00 75 00 70 00 00 00 e3 ┊ 33 5c 00 14 00 6f 00 07 │0u0p000×┊3\0•0o0•│ +│006f5960│ 00 00 00 09 00 00 00 60 ┊ 00 00 00 0a 00 00 00 00 │000_000`┊000_0000│ +│006f5970│ 01 00 00 00 00 00 00 00 ┊ 10 00 00 06 00 00 00 36 │•0000000┊•00•0006│ +│006f5980│ 3a 00 00 05 00 00 00 00 ┊ 02 00 00 03 00 00 00 00 │:00•0000┊•00•0000│ +│006f5990│ 8c 00 00 04 00 00 00 00 ┊ 40 00 00 01 00 00 00 00 │×00•0000┊@00•0000│ +│006f59a0│ 02 00 00 02 00 00 00 00 ┊ 00 00 00 0e 00 00 00 00 │•00•0000┊000•0000│ +│006f59b0│ 00 00 00 e3 4b 5c 00 14 ┊ 00 1d 00 07 00 00 00 09 │000×K\0•┊0•0•000_│ +│006f59c0│ 00 00 00 60 00 00 00 0a ┊ 00 00 00 00 01 00 00 00 │000`000_┊0000•000│ +│006f59d0│ 00 00 00 00 10 00 00 06 ┊ 00 00 00 36 3a 00 00 05 │0000•00•┊0006:00•│ +│006f59e0│ 00 00 00 00 02 00 00 03 ┊ 00 00 00 00 8c 00 00 04 │0000•00•┊0000×00•│ +│006f59f0│ 00 00 00 27 53 00 00 01 ┊ 00 00 00 00 02 00 00 02 │000'S00•┊0000•00•│ +│006f5a00│ 00 00 00 00 00 00 00 0e ┊ 00 00 00 00 00 00 00 83 │0000000•┊0000000×│ +│006f5a10│ 39 10 00 32 00 59 00 07 ┊ 00 00 00 21 04 00 00 e3 │9•020Y0•┊000!•00×│ +│006f5a20│ 71 78 02 2a 00 50 00 07 ┊ 00 00 00 38 00 2e 00 30 │qx•*0P0•┊00080.00│ +│006f5a30│ 00 2e 00 30 00 2e 00 33 ┊ 00 30 00 00 00 b3 cb 31 │0.000.03┊00000××1│ +│006f5a40│ 00 32 00 30 00 2e 00 30 ┊ 00 20 00 4d 00 48 00 7a │02000.00┊0 0M0H0z│ +│006f5a50│ 00 00 00 31 00 30 00 30 ┊ 00 2e 00 30 00 20 00 4d │00010000┊0.000 0M│ +│006f5a60│ 00 48 00 7a 00 00 00 31 ┊ 00 30 00 30 00 2e 00 30 │0H0z0001┊00000.00│ +│006f5a70│ 00 20 00 4d 00 48 00 7a ┊ 00 00 00 31 00 32 00 30 │0 0M0H0z┊00010200│ +│006f5a80│ 00 2e 00 36 00 36 00 20 ┊ 00 4d 00 48 00 7a 00 31 │0.06060 ┊0M0H0z01│ +│006f5a90│ 00 32 00 30 00 2e 00 30 ┊ 00 20 00 4d 00 48 00 7a │02000.00┊0 0M0H0z│ +│006f5aa0│ 00 00 00 31 00 30 00 30 ┊ 00 2e 00 30 00 20 00 4d │00010000┊0.000 0M│ +│006f5ab0│ 00 48 00 7a 00 00 00 31 ┊ 00 32 00 30 00 2e 00 30 │0H0z0001┊02000.00│ +│006f5ac0│ 00 20 00 4d 00 48 00 7a ┊ 00 00 00 31 00 30 00 30 │0 0M0H0z┊00010000│ +│006f5ad0│ 00 2e 00 30 00 20 00 4d ┊ 00 48 00 7a 00 00 00 31 │0.000 0M┊0H0z0001│ +│006f5ae0│ 00 30 00 30 00 2e 00 30 ┊ 00 20 00 4d 00 48 00 7a │00000.00┊0 0M0H0z│ +│006f5af0│ 00 00 00 31 00 31 00 39 ┊ 00 2e 00 33 00 34 00 20 │00010109┊0.03040 │ +│006f5b00│ 00 4d 00 48 00 7a 00 31 ┊ 00 32 00 30 00 2e 00 30 │0M0H0z01┊02000.00│ +│006f5b10│ 00 20 00 4d 00 48 00 7a ┊ 00 00 00 31 00 30 00 30 │0 0M0H0z┊00010000│ +│006f5b20│ 00 2e 00 30 00 20 00 4d ┊ 00 48 00 7a 00 00 00 30 │0.000 0M┊0H0z0000│ +│006f5b30│ 00 2e 00 35 00 30 00 00 ┊ 00 00 00 90 5b 12 c8 00 │0.050000┊000×[•×0│ +│006f5b40│ 00 00 00 30 00 2e 00 35 ┊ 00 30 00 00 00 00 00 00 │00000.05┊00000000│ +│006f5b50│ 00 00 00 02 51 4d c7 30 ┊ 00 2e 00 35 00 30 00 00 │000•QM×0┊0.050000│ +│006f5b60│ 00 00 00 20 5c 12 c8 00 ┊ 00 00 00 30 00 2e 00 35 │000 \•×0┊00000.05│ +│006f5b70│ 00 30 00 00 00 12 c8 00 ┊ 00 00 00 18 e5 57 cd 30 │00000•×0┊000•×W×0│ +│006f5b80│ 00 2e 00 35 00 30 00 00 ┊ 00 00 00 00 00 00 00 00 │0.050000┊00000000│ +│006f5b90│ 00 00 00 30 00 2e 00 35 ┊ 00 30 00 00 00 12 c8 00 │00000.05┊00000•×0│ +│006f5ba0│ 00 00 00 90 5b 12 c8 31 ┊ 00 32 00 30 00 2e 00 30 │000×[•×1┊02000.00│ +│006f5bb0│ 00 20 00 4d 00 48 00 7a ┊ 00 00 00 31 00 30 00 30 │0 0M0H0z┊00010000│ +│006f5bc0│ 00 2e 00 30 00 20 00 4d ┊ 00 48 00 7a 00 00 00 31 │0.000 0M┊0H0z0001│ +│006f5bd0│ 00 30 00 30 00 2e 00 30 ┊ 00 20 00 4d 00 48 00 7a │00000.00┊0 0M0H0z│ +│006f5be0│ 00 00 00 31 00 31 00 39 ┊ 00 2e 00 39 00 30 00 20 │00010109┊0.09000 │ +│006f5bf0│ 00 4d 00 48 00 7a 00 31 ┊ 00 32 00 30 00 2e 00 30 │0M0H0z01┊02000.00│ +│006f5c00│ 00 20 00 4d 00 48 00 7a ┊ 00 00 00 31 00 30 00 30 │0 0M0H0z┊00010000│ +│006f5c10│ 00 2e 00 30 00 20 00 4d ┊ 00 48 00 7a 00 00 00 30 │0.000 0M┊0H0z0000│ +│006f5c20│ 00 2e 00 35 00 30 00 00 ┊ 00 00 00 00 00 00 00 00 │0.050000┊00000000│ +│006f5c30│ 00 00 00 30 00 2e 00 35 ┊ 00 30 00 00 00 00 00 00 │00000.05┊00000000│ +│006f5c40│ 00 00 00 8e 3c 46 d6 30 ┊ 00 2e 00 30 00 00 00 00 │000×

…yeah, look at these changes below 0x3fffff — it has corrupted the ME region!!

This is why I avoid vendor tools as much as possible.

leecher1337 commented 2 years ago

Wow, thank you very much for trying! That is really weird, I suspected that EC code got trashed, but in fact, EC patch looks fine to me. The BIOS version that you were flashing from my Image was 2.54 (G3ET94WW) because it was the BIOS that was in my target machine. I should have told you that, because in theory, maybe the EC program argument was ignored and it flahed the old Firmware as a whole and what we are seeing here are the diffs between the versions. I just didn't expect a change in another area than EC code. But when comparing the FL1 files of both versions (2.76 and 2.54), I saw more diff than in your dump. But these FL1 files are only UEFI-capsules, so I guess I cannot do a straight compare and find the byte patterns in question. The possibility that comes to my mind is, that - at least in theory - it could still be the EC patch, because when you tested the modification of the keyboard table, this change only modified a data table in the file, whereas the battery patch also modifies code and maybe I missed some CRC routine or something that checks code integrity (but not data)?

So in order to check if it's the flash utility to blame or if it's the patched EC code, on restoring Firmware, you could leave out the EC area from flashing and check if machine then comes up again or if it remains broken (until EC area gets restored), which would mean back to reverse engineering for me and find the integrity check routine.

update: I got told that ME area can change on every boot too, and if you look at the end of the diff, these are mostly text strings.

update 2: I also found out that the IN header has a field for size of code and the keyboard table is after code. Size of keyboard map data is hardcoded with 0x3ad bytes.

valpackett commented 2 years ago

There is no way it flashed the whole firmware — the whole "update" happened way too quickly, the log output said "Total blocks of the image = 32".

I'll do more experiments tomorrow, but to determine if it's the battery patch, can you provide it in the same dd-command format as the key test patch? (or as an UEFIPatch)

leecher1337 commented 2 years ago

You can apply it on any file with any offset you like conveniently with this script: https://github.com/leecher1337/thinkpad-Lx30-ec/tree/main/fwpat

It basically does all the dd-ing, you just need to call the "applypat" function with the desired offset and filename, see i.e.:

https://github.com/leecher1337/thinkpad-Lx30-ec/blob/1db880a5f5ee26130dc0a698467a303b67861ebe/fwpat/patchui.sh#L130

patches are the patches to apply, i.e.: "bat kb" would be keyboard and battery, but "bat" would be enough for our test case. Is this OK for you?

valpackett commented 2 years ago

Yes. Initially when I viewed the battery file over there I saw a /sys/kernel/debug path and got scared away :D but yes, the scripts actually make sense.

leecher1337 commented 2 years ago

In case the patch is responsible for EC malfunction, there still could be 2 possibilities:

1) Some hidden function for code integrity check that I cannot find 2) Code patches cause a hang of the EC when called during initialization but work when patching after EC has initialized (as I verified patches do work by writing to EC RAM).

So in order to find this out, here is an additional test case by doing a harmless patch to the code to check if there is some kind of code integrity check that causes the malfunction: Only change 10 50 at offset 31780 to 00 50. This is code that never gets reached with the wrong battery and with a valid battery, it would mark it non-genuine, so just inverses the meaning of batt challenge-response check. If this little change of a compare instruction still causes the EC to malfunction, I guess it must be some kind of hidden code integrity check.

valpackett commented 2 years ago

Today's discoveries:

To confirm, here's what the changes were

the bat patch diff ```diff @@ -81597,13 +81597,13 @@ │00410940│ 00 18 1e 07 70 5d 00 5f ┊ 04 55 24 4c 04 61 34 4c │0•••p]0_┊•U$L•a4L│ │00410950│ 24 00 01 00 4a 00 14 90 ┊ 81 49 b1 22 1f 00 04 90 │$0•0J0•×┊×I×"•0•×│ │00410960│ b0 22 e0 ff 10 27 04 d0 ┊ e0 18 f6 06 00 c0 a2 8b │×"×ו'•×┊וו0×××│ -│00410970│ 00 50 00 18 ec 06 70 5d ┊ 00 5f 02 55 22 4c 02 61 │0P0•×•p]┊0_•U"L•a│ +│00410970│ 00 50 e0 18 54 00 70 5d ┊ 00 5f 02 55 22 4c 02 61 │0PוT0p]┊0_•U"L•a│ │00410980│ 32 4c 22 00 01 00 4e 00 ┊ 00 c0 84 8e 72 59 ff c0 │2L"0•0N0┊0×××rY××│ │00410990│ 15 fe 00 01 10 58 00 01 ┊ 72 5d 22 5f 20 55 20 4c │•×0••X0•┊r]"_ U L│ │004109a0│ 20 61 30 4c 20 00 01 00 ┊ 4e 00 10 01 b5 58 11 00 │ a0L 0•0┊N0••×X•0│ │004109b0│ b4 58 27 00 b3 58 16 00 ┊ 72 59 ff c0 cd 96 8f 60 │×X'0×X•0┊rY×××××`│ │004109c0│ 00 50 00 18 9c 06 70 5d ┊ 00 5f 02 55 22 4c 02 61 │0P0•×•p]┊0_•U"L•a│ -│004109d0│ 32 4c 22 00 01 00 4a 00 ┊ 02 90 b0 22 e0 ff 30 26 │2L"0•0J0┊•××"××0&│ +│004109d0│ 32 4c 22 00 01 00 4a 00 ┊ 02 90 b0 22 e0 ff c0 26 │2L"0•0J0┊•××"×××&│ │004109e0│ e0 18 7c 06 70 5d 00 5f ┊ 02 55 22 4c 02 61 32 4c │ו|•p]0_┊•U"L•a2L│ │004109f0│ 22 00 01 00 4a 00 b0 58 ┊ 20 00 02 f3 1e 01 72 59 │"0•0J0×X┊ 0•×••rY│ │00410a00│ ff c0 a3 fd 0f f0 72 5d ┊ 22 5f 20 55 20 4c 20 61 │×××ו×r]┊"_ U L a│ @@ -81628,7 +81628,7 @@ │00410b30│ 30 05 70 5d 00 5f 02 55 ┊ 22 4c 02 61 32 4c 22 00 │0•p]0_•U┊"L•a2L"0│ │00410b40│ 01 00 4a 00 02 90 b0 22 ┊ e0 ff b0 26 09 00 e0 18 │•0J0•××"┊×××&_0ו│ │00410b50│ 0e 05 72 5d 22 5f 20 55 ┊ 20 4c 20 61 30 4c 20 00 │••r]"_ U┊ L a0L 0│ -│00410b60│ 01 00 4a 00 30 7b 02 00 ┊ 80 18 f6 04 20 55 22 4c │•0J00{•0┊וו U"L│ +│00410b60│ 01 00 4a 00 30 7b 02 00 ┊ e0 18 5a 00 20 55 22 4c │•0J00{•0┊וZ0 U"L│ │00410b70│ 02 61 32 4c 22 00 01 00 ┊ 6e 00 02 b1 00 50 12 12 │•a2L"0•0┊n0•×0P••│ │00410b80│ 72 59 ff c0 cd f3 00 50 ┊ 1d 11 70 5d 00 5f 02 55 │rY××××0P┊••p]0_•U│ │00410b90│ 22 4c 02 61 32 4c 22 00 ┊ 01 00 4a 00 02 90 b0 22 │"L•a2L"0┊•0J0•××"│ @@ -81636,8 +81636,8 @@ │00410bb0│ 34 4c 24 00 01 00 6e 00 ┊ 04 b1 10 30 04 f1 e0 18 │4L$0•0n0┊•×•0•×ו│ │00410bc0│ a0 04 72 5d 22 5f 20 55 ┊ 20 4c 20 61 30 4c 20 00 │וr]"_ U┊ L a0L 0│ │00410bd0│ 01 00 6e 00 00 83 01 00 ┊ 72 5d 22 5f 20 55 20 4c │•0n00ו0┊r]"_ U L│ -│00410be0│ 20 61 30 4c 20 00 01 00 ┊ 4a 00 60 7b 01 00 9c 11 │ a0L 0•0┊J0`{•0ו│ -│00410bf0│ 72 5d 22 5f 20 55 20 4c ┊ 20 61 30 4c 20 00 01 00 │r]"_ U L┊ a0L 0•0│ +│00410be0│ 20 61 30 4c 20 00 01 00 ┊ 4a 00 60 73 01 00 50 73 │ a0L 0•0┊J0`s•0Ps│ +│00410bf0│ 01 00 e0 18 2c 00 20 4c ┊ 20 61 30 4c 20 00 01 00 │•0ו,0 L┊ a0L 0•0│ │00410c00│ 4a 00 50 7b 01 00 8c 10 ┊ 20 55 22 4c 02 61 32 4c │J0P{•0ו┊ U"L•a2L│ │00410c10│ 22 00 01 00 4a 00 02 90 ┊ 10 49 00 50 05 10 10 00 │"0•0J0•×┊•I0P•••0│ │00410c20│ 00 71 84 04 e4 10 10 00 ┊ 00 b1 84 04 72 5d 22 5f │0qוו•0┊0×וr]"_│ ```
the `00 50` diff ```diff @@ -83854,7 +83854,7 @@ │00419650│ 9a 12 12 00 90 31 3a 0a ┊ e6 12 70 00 01 00 bc 09 │ו•0×1:_┊וp0•0×_│ │00419660│ 10 01 74 00 01 00 28 0a ┊ 72 00 01 00 e0 09 00 c0 │••t0•0(_┊r0•0×_0×│ │00419670│ e2 01 4f 60 12 00 20 f1 ┊ 4c 00 12 00 10 f1 4a 00 │וO`•0 ×┊L0•0•×J0│ -│00419680│ 10 50 14 10 b1 26 00 40 ┊ e3 10 b1 22 ff bf 13 00 │•P••×&0@┊ו×"×ו0│ +│00419680│ 00 50 14 10 b1 26 00 40 ┊ e3 10 b1 22 ff bf 13 00 │0P••×&0@┊ו×"×ו0│ │00419690│ 10 f1 4a 00 b2 22 f7 ff ┊ 13 00 20 f1 4c 00 12 00 │•×J0×"××┊•0 ×L0•0│ │004196a0│ 00 31 3a 0a 1e 03 a7 01 ┊ 01 01 12 00 00 f1 74 06 │01:_••×•┊•••00×t•│ │004196b0│ 13 00 00 f1 18 0a 12 00 ┊ 00 f1 76 06 13 00 00 f1 │•00ו_•0┊0×v••00×│ ```

Bonus content:

2.54 capsule diff, looks similar to the 2.76 one ```diff @@ -66,7 +66,8 @@ │00002000│ 46 4c 4f 47 00 00 00 00 ┊ 05 20 00 00 ff ff ff ff │FLOG0000┊• 00××××│ │00002010│ 04 00 01 03 fb c8 18 00 ┊ 03 a4 3b 00 0b 03 45 30 │•0••×ו0┊•×;0••E0│ │00002020│ 04 00 01 03 d5 cd 18 00 ┊ 03 a4 3b 00 0b 03 45 30 │•0••×ו0┊•×;0••E0│ -│00002030│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ +│00002030│ 04 00 01 03 15 aa 28 00 ┊ 03 a4 3b 00 0b 03 45 30 │•0•••×(0┊•×;0••E0│ +│00002040│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ │* │ ┊ │ ┊ │ │00004000│ 0b 78 fc ff 01 00 00 00 ┊ ff ff ff ff ff ff ff ff │•x×ו000┊××××××××│ │00004010│ ff 1f 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │ו000000┊00000000│ @@ -4028,7 +4029,7 @@ │00013fe0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ │00013ff0│ 00 00 00 00 00 00 00 00 ┊ 00 00 ff ff ff ff ff ff │00000000┊00××××××│ │00014000│ 04 78 fc ff 00 00 00 00 ┊ ff ff ff ff ff ff ff ff │•x××0000┊××××××××│ -│00014010│ ff 1f 00 00 00 00 1f 00 ┊ 00 fe ff ff ff ff ff ff │ו0000•0┊0×××××××│ +│00014010│ ff 1f 00 00 00 00 00 00 ┊ 00 fe ff ff ff ff ff ff │ו000000┊0×××××××│ │00014020│ 3f 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │?0000000┊00000000│ │00014030│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ │* │ ┊ │ ┊ │ @@ -10687,7 +10688,7 @@ │00030360│ 03 02 02 5c f0 01 07 00 ┊ 00 10 01 03 04 02 5c f0 │•••\ו•0┊0•••••\×│ │00030370│ 00 50 00 00 b4 01 03 06 ┊ 00 dc b0 00 00 ef 00 34 │0P00ו••┊0××00×04│ │00030380│ 02 03 08 01 34 02 01 3a ┊ 03 5c f0 00 32 00 00 01 │••••4••:┊•\×0200•│ -│00030390│ 00 03 0a 01 dc f0 00 26 ┊ 00 00 44 00 04 03 00 5c │0•_•××0&┊00D0••0\│ +│00030390│ 00 03 0a 01 c8 f0 00 26 ┊ 00 00 44 00 04 03 00 5c │0•_•××0&┊00D0••0\│ │000303a0│ f0 00 03 00 0d 5c 03 04 ┊ 04 02 dc f0 00 01 00 0d │×0•0_\••┊••××0•0_│ │000303b0│ 58 00 04 07 00 c8 f0 00 ┊ 6f 00 06 04 00 0a 24 05 │X0••0××0┊o0••0_$•│ │000303c0│ c8 f0 00 02 00 ff 40 00 ┊ 0a 24 06 c8 f0 00 2a 00 │××0•0×@0┊_$•××0*0│ @@ -11337,9 +11338,14 @@ │00032c00│ 0e 1c 02 c8 f0 00 02 00 ┊ ff 40 00 0e 1c 03 c8 f0 │•••××0•0┊×@0•••××│ │00032c10│ 00 2a 00 00 48 00 0e 1d ┊ 00 c8 f0 00 02 00 ff 40 │0*00H0••┊0××0•0×@│ │00032c20│ 00 0e 1d 01 c8 f0 00 2a ┊ 00 00 48 00 0e 1d 02 c8 │0•••××0*┊00H0•••×│ -│00032c30│ f0 00 02 00 ff 40 00 0e ┊ 1d 03 dc f0 00 2a 00 00 │×0•0×@0•┊••××0*00│ -│00032c40│ 48 00 0e 1e 01 dc f0 00 ┊ 02 00 ff 40 00 0e 1e 02 │H0•••××0┊•0×@0•••│ -│00032c50│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ +│00032c30│ f0 00 02 00 ff 40 00 0e ┊ 1d 03 c8 f0 00 2a 00 00 │×0•0×@0•┊••××0*00│ +│00032c40│ 48 00 0e 1e 01 c8 f0 00 ┊ 02 00 ff 40 00 0e 1e 02 │H0•••××0┊•0×@0•••│ +│00032c50│ dc f0 00 26 00 00 44 00 ┊ 0e 1e 03 c8 f0 00 02 00 │××0&00D0┊•••××0•0│ +│00032c60│ ff 40 00 0e 1f 01 c8 f0 ┊ 00 2a 00 00 48 00 0e 1f │×@0•••××┊0*00H0••│ +│00032c70│ 02 c8 f0 00 02 00 ff 40 ┊ 00 0e 1f 03 dc f0 00 2a │•××0•0×@┊0•••××0*│ +│00032c80│ 00 00 48 00 0e 20 01 dc ┊ f0 00 02 00 ff 40 00 0e │00H0• •×┊×0•0×@0•│ +│00032c90│ 20 02 ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │ •××××××┊××××××××│ +│00032ca0│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ │* │ ┊ │ ┊ │ │00034000│ 0c 78 fc ff 00 00 00 00 ┊ ff ff ff ff ff ff ff ff │_x××0000┊××××××××│ │00034010│ ff 1f 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │ו000000┊00000000│ @@ -13283,13 +13289,14 @@ │0003c010│ ff 1f 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │ו000000┊00000000│ │0003c020│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 10 00 00 00 │00000000┊0000•000│ │0003c030│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ -│0003c040│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 f0 ff ff ff │00000000┊0000××××│ -│0003c050│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ +│0003c040│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 c0 07 00 │00000000┊00000ו0│ +│0003c050│ fc ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ +│0003c060│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ │* │ ┊ │ ┊ │ │0003c090│ 00 01 02 03 04 05 06 07 ┊ 08 09 0a 0b 0c 0d 0e 0f │0•••••••┊•__•__••│ -│0003c0a0│ 10 11 12 13 14 15 16 17 ┊ 18 19 1a 1b 1c 1d 1e ff │••••••••┊•••••••×│ -│0003c0b0│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ -│* │ ┊ │ ┊ │ +│0003c0a0│ 10 11 12 13 14 15 16 17 ┊ 18 19 1a 1b 1c 1d 1e 1f │••••••••┊••••••••│ +│0003c0b0│ 20 ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │ ×××××××┊××××××××│ +│0003c0c0│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ │0003c0d0│ 80 1f 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │ו000000┊00000000│ │0003c0e0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 ff │00000000┊0000000×│ │0003c0f0│ a1 10 0e 01 00 ae ee b8 ┊ 0f 38 01 00 00 00 00 00 │ו••0×××┊•8•00000│ @@ -13747,8 +13754,36 @@ │0003dea0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ │* │ ┊ │ ┊ │ │0003ded0│ 00 00 ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │00××××××┊××××××××│ -│0003dee0│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ +│0003dee0│ a3 20 0e 1f 00 00 00 c0 ┊ 00 00 00 00 00 00 00 00 │× ••000×┊00000000│ +│0003def0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│0003df00│ 80 2b 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │×+000000┊00000000│ +│0003df10│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│0003df20│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 ff ff ff ff ff │00000000┊000×××××│ +│0003df30│ 81 42 15 aa 28 00 64 00 ┊ 00 00 00 00 00 00 00 00 │×B•×(0d0┊00000000│ +│0003df40│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ │* │ ┊ │ ┊ │ +│0003df70│ 00 00 ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │00××××××┊××××××××│ +│0003df80│ 82 4a 00 01 02 03 04 05 ┊ 06 07 08 09 0a 0b 0c 0d │×J0•••••┊•••__•__│ +│0003df90│ 0e 0f 06 06 06 06 06 06 ┊ 00 00 00 00 01 01 04 04 │••••••••┊0000••••│ +│0003dfa0│ 01 01 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │••000000┊00000000│ +│0003dfb0│ 00 00 00 00 04 01 01 10 ┊ 00 01 00 00 00 00 00 00 │0000••••┊0•000000│ +│0003dfc0│ 00 00 00 00 00 00 00 00 ┊ 00 00 ff ff ff ff ff ff │00000000┊00××××××│ +│0003dfd0│ a3 30 0e 20 00 15 aa 28 ┊ 00 cc 00 00 00 00 00 00 │×0• 0•×(┊0×000000│ +│0003dfe0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│0003e000│ 80 17 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │ו000000┊00000000│ +│0003e010│ 00 00 00 00 00 00 00 ff ┊ ff ff ff ff ff ff ff ff │0000000×┊××××××××│ +│0003e020│ 81 4a 00 01 02 03 04 05 ┊ 06 07 08 09 0a 0b 0c 0d │×J0•••••┊•••__•__│ +│0003e030│ 0e 0f 06 06 06 06 06 06 ┊ 00 00 00 00 00 00 00 00 │••••••••┊00000000│ +│0003e040│ 01 01 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │••000000┊00000000│ +│0003e050│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│0003e060│ 00 00 00 00 00 00 00 00 ┊ 00 00 ff ff ff ff ff ff │00000000┊00××××××│ +│0003e070│ 82 42 15 aa 28 00 34 01 ┊ 00 00 00 00 00 00 00 00 │×B•×(04•┊00000000│ +│0003e080│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│0003e0b0│ 00 00 ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │00××××××┊××××××××│ +│0003e0c0│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ +│* │ ┊ │ ┊ │ │00040000│ ff 78 ff ff 00 00 00 00 ┊ ff ff ff ff ff ff ff ff │×x××0000┊××××××××│ │00040010│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ │* │ ┊ │ ┊ │ @@ -81597,13 +81632,13 @@ │00410940│ 00 18 1e 07 70 5d 00 5f ┊ 04 55 24 4c 04 61 34 4c │0•••p]0_┊•U$L•a4L│ │00410950│ 24 00 01 00 4a 00 14 90 ┊ 81 49 b1 22 1f 00 04 90 │$0•0J0•×┊×I×"•0•×│ │00410960│ b0 22 e0 ff 10 27 04 d0 ┊ e0 18 f6 06 00 c0 a2 8b │×"×ו'•×┊וו0×××│ -│00410970│ 00 50 00 18 ec 06 70 5d ┊ 00 5f 02 55 22 4c 02 61 │0P0•×•p]┊0_•U"L•a│ +│00410970│ 00 50 e0 18 54 00 70 5d ┊ 00 5f 02 55 22 4c 02 61 │0PוT0p]┊0_•U"L•a│ │00410980│ 32 4c 22 00 01 00 4e 00 ┊ 00 c0 84 8e 72 59 ff c0 │2L"0•0N0┊0×××rY××│ │00410990│ 15 fe 00 01 10 58 00 01 ┊ 72 5d 22 5f 20 55 20 4c │•×0••X0•┊r]"_ U L│ │004109a0│ 20 61 30 4c 20 00 01 00 ┊ 4e 00 10 01 b5 58 11 00 │ a0L 0•0┊N0••×X•0│ │004109b0│ b4 58 27 00 b3 58 16 00 ┊ 72 59 ff c0 cd 96 8f 60 │×X'0×X•0┊rY×××××`│ │004109c0│ 00 50 00 18 9c 06 70 5d ┊ 00 5f 02 55 22 4c 02 61 │0P0•×•p]┊0_•U"L•a│ -│004109d0│ 32 4c 22 00 01 00 4a 00 ┊ 02 90 b0 22 e0 ff 30 26 │2L"0•0J0┊•××"××0&│ +│004109d0│ 32 4c 22 00 01 00 4a 00 ┊ 02 90 b0 22 e0 ff c0 26 │2L"0•0J0┊•××"×××&│ │004109e0│ e0 18 7c 06 70 5d 00 5f ┊ 02 55 22 4c 02 61 32 4c │ו|•p]0_┊•U"L•a2L│ │004109f0│ 22 00 01 00 4a 00 b0 58 ┊ 20 00 02 f3 1e 01 72 59 │"0•0J0×X┊ 0•×••rY│ │00410a00│ ff c0 a3 fd 0f f0 72 5d ┊ 22 5f 20 55 20 4c 20 61 │×××ו×r]┊"_ U L a│ @@ -81628,7 +81663,7 @@ │00410b30│ 30 05 70 5d 00 5f 02 55 ┊ 22 4c 02 61 32 4c 22 00 │0•p]0_•U┊"L•a2L"0│ │00410b40│ 01 00 4a 00 02 90 b0 22 ┊ e0 ff b0 26 09 00 e0 18 │•0J0•××"┊×××&_0ו│ │00410b50│ 0e 05 72 5d 22 5f 20 55 ┊ 20 4c 20 61 30 4c 20 00 │••r]"_ U┊ L a0L 0│ -│00410b60│ 01 00 4a 00 30 7b 02 00 ┊ 80 18 f6 04 20 55 22 4c │•0J00{•0┊וו U"L│ +│00410b60│ 01 00 4a 00 30 7b 02 00 ┊ e0 18 5a 00 20 55 22 4c │•0J00{•0┊וZ0 U"L│ │00410b70│ 02 61 32 4c 22 00 01 00 ┊ 6e 00 02 b1 00 50 12 12 │•a2L"0•0┊n0•×0P••│ │00410b80│ 72 59 ff c0 cd f3 00 50 ┊ 1d 11 70 5d 00 5f 02 55 │rY××××0P┊••p]0_•U│ │00410b90│ 22 4c 02 61 32 4c 22 00 ┊ 01 00 4a 00 02 90 b0 22 │"L•a2L"0┊•0J0•××"│ @@ -81636,8 +81671,8 @@ │00410bb0│ 34 4c 24 00 01 00 6e 00 ┊ 04 b1 10 30 04 f1 e0 18 │4L$0•0n0┊•×•0•×ו│ │00410bc0│ a0 04 72 5d 22 5f 20 55 ┊ 20 4c 20 61 30 4c 20 00 │וr]"_ U┊ L a0L 0│ │00410bd0│ 01 00 6e 00 00 83 01 00 ┊ 72 5d 22 5f 20 55 20 4c │•0n00ו0┊r]"_ U L│ -│00410be0│ 20 61 30 4c 20 00 01 00 ┊ 4a 00 60 7b 01 00 9c 11 │ a0L 0•0┊J0`{•0ו│ -│00410bf0│ 72 5d 22 5f 20 55 20 4c ┊ 20 61 30 4c 20 00 01 00 │r]"_ U L┊ a0L 0•0│ +│00410be0│ 20 61 30 4c 20 00 01 00 ┊ 4a 00 60 73 01 00 50 73 │ a0L 0•0┊J0`s•0Ps│ +│00410bf0│ 01 00 e0 18 2c 00 20 4c ┊ 20 61 30 4c 20 00 01 00 │•0ו,0 L┊ a0L 0•0│ │00410c00│ 4a 00 50 7b 01 00 8c 10 ┊ 20 55 22 4c 02 61 32 4c │J0P{•0ו┊ U"L•a2L│ │00410c10│ 22 00 01 00 4a 00 02 90 ┊ 10 49 00 50 05 10 10 00 │"0•0J0•×┊•I0P•••0│ │00410c20│ 00 71 84 04 e4 10 10 00 ┊ 00 b1 84 04 72 5d 22 5f │0qוו•0┊0×וr]"_│ @@ -85004,8 +85039,8 @@ │0041de60│ 4a 9f 4c 79 45 7c 4d 7b ┊ 5a 81 4e 7b 54 81 4a 79 │J×LyE|M{┊Z×N{T×Jy│ │0041de70│ 4c 7b 45 9f 4d 7c 00 00 ┊ 00 00 00 00 83 00 5a 01 │L{E×M|00┊0000×0Z•│ │0041de80│ 1f 01 27 01 2f 01 37 01 ┊ 3f 01 5e 01 02 05 04 05 │••'•/•7•┊?•^•••••│ -│0041de90│ 08 05 08 06 10 05 10 06 ┊ 40 05 20 05 00 00 00 04 │••••••••┊@• •000•│ -│0041dea0│ 01 04 84 00 7c 01 7c 03 ┊ 4a 01 4a 02 70 01 70 02 │••×0|•|•┊J•J•p•p•│ +│0041de90│ 08 05 08 06 10 05 10 06 ┊ 40 05 20 05 00 00 38 01 │••••••••┊@• •008•│ +│0041dea0│ 30 01 84 00 7c 01 7c 03 ┊ 4a 01 4a 02 70 01 70 02 │0•×0|•|•┊J•J•p•p•│ │0041deb0│ 70 03 71 01 71 02 71 03 ┊ 6c 01 6c 02 6c 03 69 01 │p•q•q•q•┊l•l•l•i•│ │0041dec0│ 69 02 69 03 7d 01 7d 02 ┊ 7d 03 7a 01 7a 02 7a 03 │i•i•}•}•┊}•z•z•z•│ │0041ded0│ 6b 01 6b 02 6b 03 75 01 ┊ 75 02 75 03 72 01 72 02 │k•k•k•u•┊u•u•r•r•│ @@ -85119,22 +85154,22 @@ │0041e590│ 2d 36 36 36 36 36 36 36 ┊ 2a 36 36 36 36 36 36 36 │-6666666┊*6666666│ │0041e5a0│ 36 36 36 36 36 36 36 36 ┊ 36 00 00 00 00 00 00 00 │66666666┊60000000│ │0041e5b0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 54 0e 05 0a │00000000┊0000T••_│ -│0041e5c0│ 2e 36 55 16 4e 18 00 a2 ┊ a1 00 00 00 8c 16 1e 26 │.6U•N•0×┊×000ו•&│ -│0041e5d0│ 25 3d 3e 46 45 1a 1e 1c ┊ a0 a3 00 00 00 15 1d 24 │%=>FE•••┊××000••$│ -│0041e5e0│ 2d 3c 43 44 28 6a 00 04 ┊ 00 00 00 00 00 0d 58 0c │-×eL××Q^┊r•u××ו0│ +│006f0120│ 0c 00 db ab ae 10 cc bd ┊ 1e 44 88 9b a8 df 33 a9 │_0××ו××┊•D××××3×│ +│006f0130│ c1 6a ed e0 16 00 0d 00 ┊ 1a 9f b9 d1 4b 08 c3 49 │×j×ו0_0┊•×××K•×I│ +│006f0140│ b8 8e 37 8a be fa 11 8b ┊ ed ba 16 00 0e 00 4b 77 │××7××ו×┊×ו0•0Kw│ +│006f0150│ e2 c1 d4 9e 03 41 ae fa ┊ 33 b8 14 9e cc f6 ed ca │×××וA××┊3ו×××××│ +│006f0160│ 16 00 0f 00 cb b2 19 d7 ┊ 3a 3d 96 45 a3 bc da d0 │•0•0×ו×┊:=×E××××│ +│006f0170│ 0e 67 65 6f ed 02 16 00 ┊ 10 00 61 df e4 8b ca 93 │•geoו•0┊•0a×××××│ +│006f0180│ d2 11 aa 0d 00 e0 98 03 ┊ 2b 8c ed f5 16 00 11 00 │ו×_0×ו┊+××ו0•0│ +│006f0190│ 41 90 5b 95 3a 13 cf 4b ┊ 90 d1 97 e1 69 3c 0e 30 │A×[×:•×K┊××××i<•0│ +│006f01a0│ ee 08 0e 00 00 00 55 00 ┊ 43 00 52 00 00 00 ee 66 │ו•000U0┊C0R000×f│ +│006f01b0│ 14 00 01 00 53 00 79 00 ┊ 73 00 74 00 65 00 6d 00 │•0•0S0y0┊s0t0e0m0│ +│006f01c0│ 00 00 ee a9 18 00 02 00 ┊ 54 00 64 00 74 00 53 00 │00×ו0•0┊T0d0t0S0│ +│006f01d0│ 65 00 74 00 75 00 70 00 ┊ 00 00 ee 24 16 00 03 00 │e0t0u0p0┊00×$•0•0│ +│006f01e0│ 4d 00 65 00 53 00 65 00 ┊ 74 00 75 00 70 00 00 00 │M0e0S0e0┊t0u0p000│ +│006f01f0│ ee d9 12 00 04 00 53 00 ┊ 65 00 74 00 75 00 70 00 │×ו0•0S0┊e0t0u0p0│ +│006f0200│ 00 00 ee c2 22 00 05 00 ┊ 53 00 61 00 50 00 70 00 │00××"0•0┊S0a0P0p0│ +│006f0210│ 69 00 53 00 65 00 74 00 ┊ 75 00 70 00 56 00 61 00 │i0S0e0t0┊u0p0V0a0│ +│006f0220│ 72 00 00 00 ee 58 24 00 ┊ 06 00 50 00 63 00 68 00 │r000×X$0┊•0P0c0h0│ +│006f0230│ 50 00 70 00 69 00 53 00 ┊ 65 00 74 00 75 00 70 00 │P0p0i0S0┊e0t0u0p0│ +│006f0240│ 56 00 61 00 72 00 00 00 ┊ ee 17 2e 00 07 00 43 00 │V0a0r000┊ו.0•0C0│ +│006f0250│ 70 00 75 00 50 00 72 00 ┊ 6f 00 74 00 6f 00 63 00 │p0u0P0r0┊o0t0o0c0│ +│006f0260│ 6f 00 6c 00 53 00 65 00 ┊ 74 00 75 00 70 00 56 00 │o0l0S0e0┊t0u0p0V0│ +│006f0270│ 61 00 72 00 00 00 ee 11 ┊ 2e 00 08 00 50 00 70 00 │a0r000ו┊.0•0P0p0│ +│006f0280│ 6d 00 50 00 72 00 6f 00 ┊ 74 00 6f 00 63 00 6f 00 │m0P0r0o0┊t0o0c0o0│ +│006f0290│ 6c 00 53 00 65 00 74 00 ┊ 75 00 70 00 56 00 61 00 │l0S0e0t0┊u0p0V0a0│ +│006f02a0│ 72 00 00 00 ee 22 2e 00 ┊ 09 00 50 00 63 00 68 00 │r000×".0┊_0P0c0h0│ +│006f02b0│ 50 00 72 00 6f 00 74 00 ┊ 6f 00 63 00 6f 00 6c 00 │P0r0o0t0┊o0c0o0l0│ +│006f02c0│ 53 00 65 00 74 00 75 00 ┊ 70 00 56 00 61 00 72 00 │S0e0t0u0┊p0V0a0r0│ +│006f02d0│ 00 00 ee ab 18 00 0a 00 ┊ 41 00 6d 00 74 00 53 00 │00×ו0_0┊A0m0t0S0│ +│006f02e0│ 65 00 74 00 75 00 70 00 ┊ 00 00 ee 89 2c 00 0b 00 │e0t0u0p0┊00××,0•0│ +│006f02f0│ 53 00 61 00 50 00 72 00 ┊ 6f 00 74 00 6f 00 63 00 │S0a0P0r0┊o0t0o0c0│ +│006f0300│ 6f 00 6c 00 53 00 65 00 ┊ 74 00 75 00 70 00 56 00 │o0l0S0e0┊t0u0p0V0│ +│006f0310│ 61 00 72 00 00 00 ee 0f ┊ 2e 00 0c 00 44 00 74 00 │a0r000ו┊.0_0D0t0│ +│006f0320│ 73 00 50 00 72 00 6f 00 ┊ 74 00 6f 00 63 00 6f 00 │s0P0r0o0┊t0o0c0o0│ +│006f0330│ 6c 00 53 00 65 00 74 00 ┊ 75 00 70 00 56 00 61 00 │l0S0e0t0┊u0p0V0a0│ +│006f0340│ 72 00 00 00 ee 44 24 00 ┊ 0d 00 43 00 70 00 75 00 │r000×D$0┊_0C0p0u0│ +│006f0350│ 50 00 70 00 69 00 53 00 ┊ 65 00 74 00 75 00 70 00 │P0p0i0S0┊e0t0u0p0│ +│006f0360│ 56 00 61 00 72 00 00 00 ┊ ee 52 1a 00 0e 00 49 00 │V0a0r000┊×R•0•0I0│ +│006f0370│ 63 00 63 00 53 00 74 00 ┊ 72 00 69 00 6e 00 67 00 │c0c0S0t0┊r0i0n0g0│ +│006f0380│ 00 00 ee 1f 0c 00 0f 00 ┊ 64 00 62 00 00 00 ee a4 │00ו_0•0┊d0b000××│ +│006f0390│ 0e 00 10 00 64 00 62 00 ┊ 78 00 00 00 ee 06 0e 00 │•0•0d0b0┊x000ו•0│ +│006f03a0│ 11 00 4b 00 45 00 4b 00 ┊ 00 00 ee 47 0c 00 12 00 │•0K0E0K0┊00×G_0•0│ +│006f03b0│ 50 00 4b 00 00 00 ee 69 ┊ 14 00 13 00 50 00 6f 00 │P0K000×i┊•0•0P0o0│ +│006f03c0│ 6c 00 69 00 63 00 79 00 ┊ 00 00 ef d9 24 00 00 00 │l0i0c0y0┊00××$000│ +│006f03d0│ 00 00 03 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00•00000┊00000000│ +│006f03e0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 83 9f │00000000┊000000××│ +│006f03f0│ 51 00 01 00 01 00 03 00 ┊ 00 00 00 00 01 01 01 00 │Q0•0•0•0┊0000•••0│ +│006f0400│ 01 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │•0000000┊00000000│ +│006f0410│ 00 00 00 00 01 01 00 00 ┊ 00 01 00 00 00 00 00 00 │0000••00┊0•000000│ +│006f0420│ 00 01 01 01 01 00 00 00 ┊ 00 00 00 00 00 00 00 00 │0••••000┊00000000│ +│006f0430│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 ef │00000000┊0000000×│ +│006f0440│ e4 14 00 02 00 02 00 03 ┊ 00 00 00 01 00 00 00 00 │ו0•0•0•┊000•0000│ +│006f0450│ 00 00 00 ef c3 1d 00 03 ┊ 00 03 00 03 00 00 00 00 │000×ו0•┊0•0•0000│ +│006f0460│ 01 01 00 00 14 00 00 01 ┊ 00 00 00 00 00 00 00 00 │••00•00•┊00000000│ +│006f0470│ 83 c7 11 01 04 00 04 00 ┊ 03 00 00 00 00 00 01 00 │×ו••0•0┊•00000•0│ +│006f0480│ 04 00 00 00 00 00 00 00 ┊ 06 00 00 00 00 02 01 00 │•0000000┊•0000••0│ +│006f0490│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f04d0│ 01 00 00 01 01 00 00 00 ┊ 00 00 00 00 47 37 5f 01 │•00••000┊0000G7_•│ +│006f04e0│ 05 0a 64 01 00 00 00 00 ┊ 00 00 00 00 00 01 00 00 │•_d•0000┊00000•00│ +│006f04f0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 01 │00000000┊0000000•│ +│006f0500│ 01 00 00 00 00 00 00 00 ┊ 00 01 00 00 00 00 02 00 │•0000000┊0•0000•0│ +│006f0510│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f0520│ 00 00 00 00 00 00 02 01 ┊ 04 10 27 04 04 04 32 00 │000000••┊••'•••20│ +│006f0530│ 10 27 02 02 04 32 04 04 ┊ 04 01 01 00 b4 00 00 00 │•'•••2••┊•••0×000│ +│006f0540│ 01 00 01 01 01 00 00 00 ┊ 00 00 00 00 00 00 00 00 │•0•••000┊00000000│ +│006f0550│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f0580│ 00 83 ca c3 00 05 00 05 ┊ 00 03 00 00 00 00 a0 a2 │0×××0•0•┊0•0000××│ +│006f0590│ a4 a6 00 00 d1 fe 00 80 ┊ d1 fe 00 90 d1 fe 00 00 │××00××0×┊××0×××00│ +│006f05a0│ 00 f8 a0 ef 00 00 00 00 ┊ 00 04 00 10 00 00 00 00 │0×××0000┊0•0•0000│ +│006f05b0│ 80 00 00 00 00 01 30 32 ┊ 34 36 00 00 02 00 02 01 │×0000•02┊4600•0••│ +│006f05c0│ 01 02 00 00 00 00 00 00 ┊ 00 00 00 00 00 10 01 00 │••000000┊00000••0│ +│006f05d0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 ff 03 │00000000┊000000ו│ +│006f05e0│ 00 00 00 00 00 01 00 00 ┊ 00 00 02 ff 00 00 01 00 │00000•00┊00•×00•0│ +│006f05f0│ 00 00 00 00 00 00 01 00 ┊ 03 02 80 84 1e 00 00 00 │000000•0┊••×ו000│ +│006f0600│ 00 00 00 37 3a 64 01 01 ┊ 01 02 00 00 00 00 01 08 │0007:d••┊••0000••│ +│006f0610│ 07 02 02 00 00 00 00 00 ┊ 00 00 00 41 00 00 00 00 │•••00000┊000A0000│ +│006f0620│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f0640│ 00 00 00 00 ef 1c 57 00 ┊ 06 00 06 00 03 00 00 00 │0000וW0┊•0•0•000│ +│006f0650│ 00 00 c0 d1 fe 00 04 00 ┊ 05 01 00 80 d0 fe 00 01 │00×××0•0┊••0×××0•│ +│006f0660│ 01 01 00 00 00 00 00 00 ┊ 01 00 00 00 00 00 45 00 │••000000┊•00000E0│ +│006f0670│ 45 00 00 01 01 00 00 00 ┊ 00 00 00 00 00 02 00 00 │E00••000┊00000•00│ +│006f0680│ 01 01 01 01 01 00 00 00 ┊ 00 00 00 00 00 00 00 00 │•••••000┊00000000│ +│006f0690│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 ef 5c 3f 00 07 │00000000┊000×\?0•│ +│006f06a0│ 00 07 00 03 00 00 00 01 ┊ 00 00 01 00 00 01 01 01 │0•0•000•┊00•00•••│ +│006f06b0│ 00 00 00 01 01 00 00 00 ┊ 00 00 00 00 00 00 00 00 │000••000┊00000000│ +│006f06c0│ 00 01 00 00 00 00 00 00 ┊ 00 00 4c 00 00 00 00 00 │0•000000┊00L00000│ +│006f06d0│ 00 00 00 00 00 00 00 00 ┊ 00 00 ef cf b2 00 08 00 │00000000┊00×××0•0│ +│006f06e0│ 08 00 03 00 00 00 01 01 ┊ 01 01 01 01 00 03 00 00 │•0•000••┊••••0•00│ +│006f06f0│ 01 00 01 01 00 00 00 00 ┊ 01 00 01 01 00 01 00 00 │•0••0000┊•0••0•00│ +│006f0700│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f0720│ 00 00 00 00 00 00 00 00 ┊ 1c 00 00 00 00 00 01 01 │00000000┊•00000••│ +│006f0730│ 00 48 00 04 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │0H0•0000┊00000000│ +│006f0740│ 00 00 00 01 00 00 00 01 ┊ 00 00 00 47 00 01 00 00 │000•000•┊000G0•00│ +│006f0750│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f0760│ 00 00 00 00 28 00 32 00 ┊ 1c 14 00 28 00 32 00 1c │0000(020┊••0(020•│ +│006f0770│ 16 01 28 00 32 00 1c 19 ┊ 02 00 00 00 00 00 00 00 │••(020••┊•0000000│ +│006f0780│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 ef d7 30 02 │00000000┊0000××0•│ +│006f0790│ 09 00 09 00 03 00 00 00 ┊ 00 00 02 01 01 01 01 01 │_0_0•000┊00••••••│ +│006f07a0│ 01 01 01 01 01 01 01 01 ┊ 01 01 01 01 00 00 01 01 │••••••••┊••••00••│ +│006f07b0│ 01 01 01 01 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │••••0000┊00000000│ +│006f07c0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f07d0│ 00 02 03 08 01 08 08 08 ┊ 08 07 08 08 08 08 09 01 │0•••••••┊••••••_•│ +│006f07e0│ 01 01 12 01 15 01 15 01 ┊ 27 00 41 00 45 00 07 01 │••••••••┊'0A0E0••│ +│006f07f0│ 05 01 42 00 43 00 31 00 ┊ 29 00 03 00 00 00 01 00 │••B0C010┊)0•000•0│ +│006f0800│ 01 00 01 00 01 00 02 02 ┊ 01 01 01 01 00 00 00 00 │•0•0•0••┊••••0000│ +│006f0810│ 00 00 00 00 00 00 00 00 ┊ 01 01 01 01 01 01 01 01 │00000000┊••••••••│ +│006f0820│ 01 00 01 00 00 00 00 00 ┊ 01 01 01 01 01 01 01 00 │•0•00000┊•••••••0│ +│006f0830│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f0880│ 00 01 02 03 04 05 06 07 ┊ 00 01 02 03 04 05 06 07 │0•••••••┊0•••••••│ +│006f0890│ 00 00 00 00 00 00 00 00 ┊ 04 04 04 04 04 04 04 04 │00000000┊••••••••│ +│006f08a0│ 0c 00 00 00 00 00 00 00 ┊ 00 00 01 00 00 01 01 01 │_0000000┊00•00•••│ +│006f08b0│ 00 01 00 00 01 00 01 01 ┊ 00 00 00 00 00 00 00 00 │0•00•0••┊00000000│ +│006f08c0│ 00 00 01 01 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00••0000┊00000000│ +│006f08d0│ 00 00 00 00 00 00 00 01 ┊ 01 01 01 00 01 01 01 00 │0000000•┊•••0•••0│ +│006f08e0│ 03 00 00 00 01 00 01 01 ┊ 00 00 00 00 00 00 00 00 │•000•0••┊00000000│ +│006f08f0│ 00 00 00 00 00 00 00 00 ┊ 00 2c 01 00 00 01 01 01 │00000000┊0,•00•••│ +│006f0900│ 00 00 00 01 00 02 01 00 ┊ 00 00 00 01 f0 1f 00 00 │000•0••0┊000•×•00│ +│006f0910│ 00 00 00 00 01 00 01 00 ┊ a9 00 00 00 01 01 01 00 │0000•0•0┊×000•••0│ +│006f0920│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f0930│ 00 00 00 00 00 00 00 00 ┊ 01 00 00 00 00 00 00 00 │00000000┊•0000000│ +│006f0940│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f0950│ 01 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │•0000000┊00000000│ +│006f0960│ 01 00 01 f0 f0 f0 f0 f0 ┊ f0 f0 f0 0f 0f 0f 0f 0f │•0•×××××┊××ו••••│ +│006f0970│ 0f 0f 0f 00 00 00 00 00 ┊ 00 00 00 01 01 00 04 00 │•••00000┊000••0•0│ +│006f0980│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f09b0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 ef 77 33 00 │00000000┊0000×w30│ +│006f09c0│ 0a 00 0a 00 03 00 00 00 ┊ 00 00 00 00 00 00 00 00 │_0_0•000┊00000000│ +│006f09d0│ 01 00 00 00 00 3c 00 00 ┊ 00 00 00 00 02 00 00 00 │•0000<00┊0000•000│ +│006f09e0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 ef │00000000┊0000000×│ +│006f09f0│ 51 73 00 0b 00 0b 00 03 ┊ 00 00 00 00 00 00 d9 fe │Qs0•0•0•┊000000××│ +│006f0a00│ 00 10 d9 fe 04 04 00 00 ┊ 20 00 00 00 00 00 00 ff │0•×ו•00┊ 000000×│ +│006f0a10│ ff 00 00 00 00 00 00 00 ┊ 00 00 80 00 00 00 00 ff │×0000000┊00×0000×│ +│006f0a20│ ff ff f7 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │×××00000┊00000000│ +│006f0a30│ 00 00 00 00 00 00 00 00 ┊ 03 00 00 01 a0 a2 a4 a6 │00000000┊•00•××××│ +│006f0a40│ 01 01 00 01 01 00 00 00 ┊ 00 86 80 10 20 01 00 00 │••0••000┊0×ו •00│ +│006f0a50│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f0a60│ 00 00 ef d3 12 00 0c 00 ┊ 0c 00 03 00 00 00 00 00 │00×ו0_0┊_0•00000│ +│006f0a70│ 00 00 00 00 ef 42 2f 00 ┊ 0d 00 0d 00 03 00 00 00 │0000×B/0┊_0_0•000│ +│006f0a80│ 00 00 3f 3f 00 00 80 03 ┊ 70 01 00 00 00 00 00 00 │00??00ו┊p•000000│ +│006f0a90│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f0aa0│ 00 00 00 83 67 78 02 0e ┊ 00 0e 00 03 00 00 00 00 │000×gx••┊0•0•0000│ +│006f0ab0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f0d10│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 ef 05 6c 00 11 │00000000┊000וl0•│ +│006f0d20│ 00 13 00 03 00 00 00 60 ┊ 00 00 00 44 75 6d 6d 79 │0•0•000`┊000Dummy│ +│006f0d30│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f0d40│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 ff ff ff ff 00 │00000000┊000××××0│ +│006f0d50│ 00 00 00 26 16 c4 c1 4c ┊ 50 92 40 ac a9 41 f9 36 │000&•××L┊P×@××A×6│ +│006f0d60│ 93 43 28 20 00 00 00 14 ┊ e6 2a 49 05 e1 91 89 e7 │×C( 000•┊×*I•××××│ +│006f0d70│ 08 28 98 31 65 93 9a fc ┊ 0a 33 1d 0b 41 5f 33 32 │•(×1e×××┊_3••A_32│ +│006f0d80│ b0 e8 18 a8 27 f4 36 e1 ┊ 06 16 00 12 00 ab 14 f0 │×ו×'×6×┊••0•0ו×│ +│006f0d90│ e6 0e cb 6e 45 8a f7 72 ┊ 21 ed b7 02 f7 e2 5a 1a │ו×nE××r┊!×ו××Z•│ +│006f0da0│ 00 14 00 54 00 70 00 41 ┊ 00 63 00 70 00 69 00 4e │0•0T0p0A┊0c0p0i0N│ +│006f0db0│ 00 76 00 73 00 00 00 83 ┊ 28 14 00 12 00 14 00 03 │0v0s000×┊(•0•0•0•│ +│006f0dc0│ 00 00 00 18 d0 f9 ba 00 ┊ 00 00 00 e1 ad 16 00 13 │000•×××0┊000×ו0•│ +│006f0dd0│ 00 11 40 70 eb 02 14 d3 ┊ 11 8e 77 00 a0 c9 69 72 │0•@pו•×┊•×w0××ir│ +│006f0de0│ 3b e2 f9 0e 00 15 00 4d ┊ 00 54 00 43 00 00 00 83 │;×ו0•0M┊0T0C000×│ +│006f0df0│ c0 10 00 13 00 15 00 07 ┊ 00 00 00 01 00 00 00 e2 │ו0•0•0•┊000•000×│ +│006f0e00│ ed 16 00 16 00 54 00 69 ┊ 00 6d 00 65 00 6f 00 75 │ו0•0T0i┊0m0e0o0u│ +│006f0e10│ 00 74 00 00 00 e3 c5 0e ┊ 00 10 00 16 00 07 00 00 │0t000×ו┊0•0•0•00│ +│006f0e20│ 00 00 00 e2 00 20 00 19 ┊ 00 50 00 6c 00 61 00 74 │000×0 0•┊0P0l0a0t│ +│006f0e30│ 00 66 00 6f 00 72 00 6d ┊ 00 4c 00 61 00 6e 00 67 │0f0o0r0m┊0L0a0n0g│ +│006f0e40│ 00 00 00 e3 16 12 00 10 ┊ 00 19 00 07 00 00 00 65 │000ו•0•┊0•0•000e│ +│006f0e50│ 6e 2d 55 53 00 e2 ef 22 ┊ 00 1a 00 44 00 49 00 41 │n-US0××"┊0•0D0I0A│ +│006f0e60│ 00 47 00 53 00 50 00 4c ┊ 00 53 00 48 00 53 00 43 │0G0S0P0L┊0S0H0S0C│ +│006f0e70│ 00 52 00 4e 00 00 00 e3 ┊ 81 0e 00 10 00 1a 00 07 │0R0N000×┊ו0•0•0•│ +│006f0e80│ 00 00 00 a0 a0 e1 eb 16 ┊ 00 15 00 01 c4 50 46 f1 │000×××ו┊0•0•×PF×│ +│006f0e90│ 93 eb 4a b8 7d c8 20 4c ┊ 04 7d ec e2 2d 1a 00 1b │××J×}× L┊•}××-•0•│ +│006f0ea0│ 00 53 00 63 00 74 00 48 ┊ 00 6f 00 74 00 6b 00 65 │0S0c0t0H┊0o0t0k0e│ +│006f0eb0│ 00 79 00 00 00 83 cb 3c ┊ 00 15 00 1b 00 07 00 00 │0y000××<┊0•0•0•00│ +│006f0ec0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f0ed0│ 00 e6 20 4c aa 00 00 00 ┊ 00 89 8c f5 fe 4b f7 a8 │0× L×000┊0××××K××│ +│006f0ee0│ 4a a9 a5 03 b5 ab 82 23 ┊ 2d 07 00 00 00 00 00 00 │J×ו×××#┊-•000000│ +│006f0ef0│ 00 e1 f6 16 00 16 00 67 ┊ fd 9f af 10 ec 8a 48 9d │0×ו0•0g┊××ו××H×│ +│006f0f00│ fc 6c bf 5e e2 2c 2e e2 ┊ c4 2c 00 1c 00 41 00 63 │×l×^×,.×┊×,0•0A0c│ +│006f0f10│ 00 70 00 69 00 47 00 6c ┊ 00 6f 00 62 00 61 00 6c │0p0i0G0l┊0o0b0a0l│ +│006f0f20│ 00 56 00 61 00 72 00 69 ┊ 00 61 00 62 00 6c 00 65 │0V0a0r0i┊0a0b0l0e│ +│006f0f30│ 00 00 00 83 40 14 00 16 ┊ 00 1c 00 07 00 00 00 00 │000×@•0•┊0•0•0000│ +│006f0f40│ d0 e9 ba 00 00 00 00 e1 ┊ e9 16 00 17 00 93 c7 8d │×××0000×┊ו0•0×××│ +│006f0f50│ 60 de 15 7f 4a a0 c5 6c ┊ 29 be af 5d 23 e2 8e 2c │`ו•J××l┊)××]#××,│ +│006f0f60│ 00 1d 00 4d 00 65 00 6d ┊ 00 52 00 65 00 73 00 74 │0•0M0e0m┊0R0e0s0t│ +│006f0f70│ 00 6f 00 72 00 65 00 56 ┊ 00 61 00 72 00 69 00 61 │0o0r0e0V┊0a0r0i0a│ +│006f0f80│ 00 62 00 6c 00 65 00 00 ┊ 00 83 2e fc 0b 17 00 1d │0b0l0e00┊0×.ו•0•│ +│006f0f90│ 00 07 00 00 00 77 67 14 ┊ 00 44 43 14 08 20 22 02 │0•000wg•┊0DC•• "•│ +│006f0fa0│ 0a 8d 55 00 00 00 00 00 ┊ 00 00 00 00 00 05 00 10 │_×U00000┊00000•0•│ +│006f0fb0│ 00 1d 1d 20 20 11 00 0e ┊ 00 00 00 00 00 00 00 00 │0•• •0•┊00000000│ +│006f0fc0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f1000│ 00 40 00 00 01 40 00 00 ┊ 00 40 06 00 00 ff ff ff │0@00•@00┊0@•00×××│ +│006f1010│ ff 00 00 04 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │×00•0000┊00000000│ +│006f1020│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f1030│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 46 │00000000┊0000000F│ +│006f1040│ 01 20 03 00 01 20 03 00 ┊ 01 00 04 06 01 44 02 00 │• •0• •0┊•0•••D•0│ +│006f1050│ 00 42 02 00 00 42 02 00 ┊ 00 40 02 00 00 06 f0 01 │0B•00B•0┊0@•00•×•│ +│006f1060│ 00 01 f2 01 00 05 f1 01 ┊ 00 02 f0 01 00 04 20 28 │0•×•0•×•┊0•×•0• (│ +│006f1070│ 00 64 10 28 08 64 10 28 ┊ 04 01 0c 28 00 00 00 00 │0d•(•d•(┊••_(0000│ +│006f1080│ 00 e3 07 04 00 e3 07 04 ┊ 00 00 00 00 00 00 55 00 │0ו•0ו•┊000000U0│ +│006f1090│ 00 00 00 0c 00 00 00 00 ┊ 00 44 00 00 00 80 40 00 │000_0000┊0D000×@0│ +│006f10a0│ 00 0f 98 00 00 40 10 3b ┊ 48 48 02 00 00 00 62 fa │0•×00@•;┊HH•000b×│ +│006f10b0│ 41 00 00 00 00 aa 0a 00 ┊ 00 ff 7e ff 00 ff 03 70 │A0000×_0┊0×~×0וp│ +│006f10c0│ 5f 19 15 1d 55 00 00 00 ┊ 00 00 00 00 00 00 00 00 │_•••U000┊00000000│ +│006f10d0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 77 │00000000┊0000000w│ +│006f10e0│ 67 14 00 44 43 14 08 20 ┊ 22 02 0a 8d 55 00 00 00 │g•0DC•• ┊"•_×U000│ +│006f10f0│ 00 00 00 00 00 00 00 05 ┊ 00 10 00 1d 1d 20 20 11 │0000000•┊0•0•• •│ +│006f1100│ 00 0e 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │0•000000┊00000000│ +│006f1110│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f1140│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 40 00 00 01 40 │00000000┊000@00•@│ +│006f1150│ 00 00 00 40 06 00 00 ff ┊ ff ff ff 00 00 04 00 00 │000@•00×┊×××00•00│ +│006f1160│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f1180│ 00 00 00 00 00 00 00 00 ┊ 00 46 01 20 03 00 01 20 │00000000┊0F• •0• │ +│006f1190│ 03 00 01 00 04 06 01 44 ┊ 02 00 00 42 02 00 00 42 │•0•0•••D┊•00B•00B│ +│006f11a0│ 02 00 00 40 02 00 00 06 ┊ f0 01 00 01 f2 01 00 05 │•00@•00•┊ו0•×•0•│ +│006f11b0│ f1 01 00 02 f0 01 00 04 ┊ 20 28 00 64 10 28 08 64 │ו0•×•0•┊ (0d•(•d│ +│006f11c0│ 10 28 04 01 0c 28 00 00 ┊ 00 00 00 e3 07 04 00 e3 │•(••_(00┊000ו•0×│ +│006f11d0│ 07 04 00 00 00 00 00 00 ┊ 55 00 00 00 00 0c 00 00 │••000000┊U0000_00│ +│006f11e0│ 00 00 00 44 00 00 00 80 ┊ 40 00 00 0f 98 00 00 40 │000D000×┊@00•×00@│ +│006f11f0│ 10 3b 48 48 02 00 00 00 ┊ 62 fa 41 00 00 00 00 aa │•;HH•000┊b×A0000×│ +│006f1200│ 0a 00 00 ff 7e ff 00 ff ┊ 03 70 5f 19 15 1d 55 00 │_00×~×0×┊•p_•••U0│ +│006f1210│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f1220│ 00 00 00 00 00 00 00 00 ┊ 00 24 00 00 00 08 00 62 │00000000┊0$000•0b│ +│006f1230│ 00 08 00 62 00 00 00 60 ┊ 00 00 00 10 08 00 00 00 │0•0b000`┊000••000│ +│006f1240│ 00 06 00 00 00 00 02 02 ┊ 01 00 00 00 00 00 85 01 │0•0000••┊•00000ו│ +│006f1250│ 00 00 00 00 00 14 ca 0a ┊ 01 fc ce 7c 00 25 dd ac │00000•×_┊•××|0%××│ +│006f1260│ 01 ff 00 01 00 f0 30 03 ┊ 00 10 00 00 00 4c 04 01 │•×0•0×0•┊0•000L••│ +│006f1270│ 00 00 00 00 00 ff ff ff ┊ ff 00 00 00 00 00 00 00 │00000×××┊×0000000│ +│006f1280│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 30 09 00 00 │00000000┊00000_00│ +│006f1290│ 06 00 00 00 1d 1d d0 01 ┊ 1e 1d d0 01 00 00 00 00 │•000••×•┊••×•0000│ +│006f12a0│ 00 00 00 00 1a 3c 09 00 ┊ 15 39 09 00 00 00 00 00 │0000•<_0┊•9_00000│ +│006f12b0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 30 09 │00000000┊0000000_│ +│006f12c0│ 00 00 06 00 00 00 12 1f ┊ e0 01 11 1f e0 01 00 00 │00•000••┊ו••×•00│ +│006f12d0│ 00 00 00 00 00 00 15 3a ┊ 09 00 14 39 09 00 00 00 │000000•:┊_0•9_000│ +│006f12e0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f12f0│ ff ff ff ff ff ff 00 00 ┊ 2c 20 e0 01 2b 20 e0 01 │××××××00┊, ו+ ו│ +│006f1300│ 00 00 00 00 00 00 00 00 ┊ 2a 8e 01 00 2b 8f 01 00 │00000000┊*ו0+ו0│ +│006f1310│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f1320│ 00 00 ff ff ff ff ff ff ┊ 00 00 05 20 f0 01 04 21 │00××××××┊00• ו•!│ +│006f1330│ e0 01 00 00 00 00 00 00 ┊ 00 00 09 2a 09 00 0a 2b │ו000000┊00_*_0_+│ +│006f1340│ 09 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │_0000000┊00000000│ +│006f1350│ 00 00 00 00 ff ff ff ff ┊ 00 00 00 00 25 23 11 02 │0000××××┊0000%#••│ +│006f1360│ 24 22 31 02 00 00 00 00 ┊ 00 00 00 00 2b 0e 02 00 │$"1•0000┊0000+••0│ +│006f1370│ 2a 0f 02 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │*••00000┊00000000│ +│006f1380│ 00 00 00 00 00 00 ff ff ┊ ff ff ff ff 00 00 43 1d │000000××┊××××00C•│ +│006f1390│ 01 02 02 1e 01 02 00 00 ┊ 00 00 00 00 00 00 3e a1 │••••••00┊000000>×│ +│006f13a0│ 01 00 01 a3 09 00 00 00 ┊ 00 00 00 00 00 00 00 00 │•0•×_000┊00000000│ +│006f13b0│ 00 00 00 00 00 00 00 00 ┊ ff ff ff ff ff ff 00 00 │00000000┊××××××00│ +│006f13c0│ 15 1f 11 02 14 1f 11 02 ┊ 00 00 00 00 00 00 00 00 │••••••••┊00000000│ +│006f13d0│ 15 b7 09 00 17 ba 09 00 ┊ 00 00 00 00 00 00 00 00 │•×_0•×_0┊00000000│ +│006f13e0│ 00 00 00 00 00 00 00 00 ┊ 00 00 ff ff ff ff ff ff │00000000┊00××××××│ +│006f13f0│ 00 00 14 21 11 02 15 21 ┊ 21 02 00 00 00 00 00 00 │00•!•••!┊!•000000│ +│006f1400│ 00 00 03 a5 09 00 03 a5 ┊ 09 00 00 00 00 00 00 00 │00•×_0•×┊_0000000│ +│006f1410│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f1440│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 30 09 │00000000┊0000000_│ +│006f1450│ 00 00 06 00 00 00 1b 1e ┊ b0 01 1a 1d c0 01 00 00 │00•000••┊ו••×•00│ +│006f1460│ 00 00 00 00 00 00 12 35 ┊ 09 00 11 33 09 00 00 00 │000000•5┊_0•3_000│ +│006f1470│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f1480│ 30 09 00 00 06 00 00 00 ┊ 13 20 10 02 12 21 e0 01 │0_00•000┊• •••!ו│ +│006f1490│ 00 00 00 00 00 00 00 00 ┊ 11 34 09 00 0f 33 09 00 │00000000┊•4_0•3_0│ +│006f14a0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f14b0│ 00 00 ff ff ff ff ff ff ┊ 00 00 2a 1e d0 01 2b 1f │00××××××┊00*•×•+•│ +│006f14c0│ e0 01 00 00 00 00 00 00 ┊ 00 00 28 8b 01 00 28 8b │ו000000┊00(ו0(×│ +│006f14d0│ 01 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │•0000000┊00000000│ +│006f14e0│ 00 00 00 00 ff ff ff ff ┊ ff ff 00 00 01 20 e0 01 │0000××××┊××00• ו│ +│006f14f0│ 00 21 d0 01 00 00 00 00 ┊ 00 00 00 00 07 29 09 00 │0!ו0000┊0000•)_0│ +│006f1500│ 06 29 09 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │•)_00000┊00000000│ +│006f1510│ 00 00 00 00 00 00 ff ff ┊ ff ff 00 00 00 00 26 22 │000000××┊××0000&"│ +│006f1520│ 11 02 28 22 f1 01 00 00 ┊ 00 00 00 00 00 00 2a 0d │••("ו00┊000000*_│ +│006f1530│ 02 00 2a 0d 02 00 00 00 ┊ 00 00 00 00 00 00 00 00 │•0*_•000┊00000000│ +│006f1540│ 00 00 00 00 00 00 00 00 ┊ ff ff ff ff ff ff 00 00 │00000000┊××××××00│ +│006f1550│ 03 20 01 02 02 1f 21 02 ┊ 00 00 00 00 00 00 00 00 │• ••••!•┊00000000│ +│006f1560│ 3c 9e 01 00 3f a1 01 00 ┊ 00 00 00 00 00 00 00 00 │<ו0?ו0┊00000000│ +│006f1570│ 00 00 00 00 00 00 00 00 ┊ 00 00 ff ff ff ff ff ff │00000000┊00××××××│ +│006f1580│ 00 00 12 1f 01 02 13 1e ┊ 01 02 00 00 00 00 00 00 │00••••••┊••000000│ +│006f1590│ 00 00 15 b7 09 00 14 b7 ┊ 09 00 00 00 00 00 00 00 │00•×_0•×┊_0000000│ +│006f15a0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 ff ff ff ff │00000000┊0000××××│ +│006f15b0│ ff ff 00 00 13 21 f1 01 ┊ 12 20 01 02 00 00 00 00 │××00•!ו┊• ••0000│ +│006f15c0│ 00 00 00 00 01 a3 09 00 ┊ 01 a3 09 00 00 00 00 00 │0000•×_0┊•×_00000│ +│006f15d0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f1600│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 03 00 00 00 │00000000┊0000•000│ +│006f1610│ ab 51 0d 00 0a 72 1c 03 ┊ 00 00 00 00 ff ff 00 00 │×Q_0_r••┊0000××00│ +│006f1620│ 00 00 00 00 00 00 00 00 ┊ 00 00 03 00 00 00 ab 51 │00000000┊00•000×Q│ +│006f1630│ 0d 00 09 72 1c 03 00 00 ┊ 00 00 ff ff 00 00 00 00 │_0_r••00┊00××0000│ +│006f1640│ 00 00 00 00 00 00 00 00 ┊ 03 00 00 00 a3 41 0a 00 │00000000┊•000×A_0│ +│006f1650│ a3 41 0a 00 41 40 fe 01 ┊ ff 3f 00 00 00 00 00 00 │×A_0A@ו┊×?000000│ +│006f1660│ 00 00 00 00 00 00 03 00 ┊ 00 00 a3 41 0a 00 a3 41 │000000•0┊00×A_0×A│ +│006f1670│ 0a 00 05 40 fe 01 ff 3f ┊ 00 00 00 00 00 00 00 00 │_0•@ו×?┊00000000│ +│006f1680│ 00 00 00 00 03 00 00 00 ┊ a3 41 0a 00 a3 41 0a 00 │0000•000┊×A_0×A_0│ +│006f1690│ 41 40 fe 01 ff 3f 00 00 ┊ 00 00 00 00 00 00 00 00 │A@ו×?00┊00000000│ +│006f16a0│ 00 00 03 00 00 00 a3 41 ┊ 0a 00 a3 41 0a 00 05 40 │00•000×A┊_0×A_0•@│ +│006f16b0│ fe 01 ff 3f 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │ו×?0000┊00000000│ +│006f16c0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f16d0│ 24 43 32 0c 4c c3 e7 0c ┊ 00 04 00 00 00 00 00 00 │$C2_L××_┊0•000000│ +│006f16e0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 24 43 32 0c │00000000┊0000$C2_│ +│006f16f0│ 4c c3 e7 0c 00 04 00 00 ┊ 00 00 00 00 00 fa 0b 00 │L××_0•00┊00000ו0│ +│006f1700│ 00 ba 0b 00 00 b8 0b 00 ┊ 00 10 02 00 00 b0 0b 00 │0ו00ו0┊0••00ו0│ +│006f1710│ 00 01 00 00 00 00 10 00 ┊ 00 f5 13 00 00 f6 13 00 │0•0000•0┊0ו00ו0│ +│006f1720│ 00 00 10 00 00 f0 0f 00 ┊ 00 10 00 00 00 00 00 00 │00•00ו0┊0•000000│ +│006f1730│ 00 01 00 00 00 04 00 00 ┊ 00 00 00 00 00 08 02 00 │0•000•00┊00000••0│ +│006f1740│ 02 00 01 00 01 00 00 00 ┊ 00 96 61 80 e2 90 00 00 │•0•0•000┊0×a×××00│ +│006f1750│ 14 80 ce 01 08 36 44 4c ┊ 05 d5 a4 8b 00 00 00 00 │•×ו•6DL┊•×××0000│ +│006f1760│ 00 00 00 00 00 00 00 80 ┊ ce 01 08 36 44 4c 06 3f │0000000×┊ו•6DL•?│ +│006f1770│ a4 8b 00 00 00 00 00 00 ┊ 00 00 00 00 00 1d 31 09 │××000000┊00000•1_│ +│006f1780│ 1e 34 09 1e 33 0a 1f 36 ┊ 08 21 38 0a 20 38 08 21 │•4_•3_•6┊•!8_ 8•!│ +│006f1790│ 38 0b 21 38 0a 00 00 00 ┊ 1d 30 0a 1f 36 09 20 35 │8•!8_000┊•0_•6_ 5│ +│006f17a0│ 0b 20 37 0a 23 3c 0b 1d ┊ 33 08 1f 34 0b 21 38 0a │• 7_#<••┊3••4•!8_│ +│006f17b0│ 00 00 00 1d 32 09 1e 33 ┊ 09 1e 33 0a 1e 35 07 23 │000•2_•3┊_•3_•5•#│ +│006f17c0│ 3c 0a 20 36 0a 21 38 0a ┊ 22 3a 0a 00 00 00 1d 2f │<_ 6_!8_┊":_000•/│ +│006f17d0│ 0b 1f 35 09 20 36 0b 21 ┊ 39 0a 22 38 0c 1e 33 09 │••5_ 6•!┊9_"8_•3_│ +│006f17e0│ 1f 35 0a 21 38 0a 00 00 ┊ 00 00 00 00 00 00 00 00 │•5_!8_00┊00000000│ +│006f17f0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f1850│ 00 00 00 00 00 1b 2f 07 ┊ 21 38 0a 1d 33 08 1e 35 │00000•/•┊!8_•3••5│ +│006f1860│ 08 21 38 0a 20 37 0a 20 ┊ 36 0a 1f 36 09 00 00 00 │•!8_ 7_ ┊6_•6_000│ +│006f1870│ 1e 32 0a 20 35 0b 1e 32 ┊ 0a 20 37 0a 22 39 0c 20 │•2_ 5••2┊_ 7_"9_ │ +│006f1880│ 37 09 1f 34 0b 21 36 0c ┊ 00 00 00 1c 31 08 1e 33 │7_•4•!6_┊000•1••3│ +│006f1890│ 09 1e 33 09 1d 33 07 1f ┊ 36 09 22 3a 0b 20 38 09 │_•3_•3••┊6_":• 8_│ +│006f18a0│ 20 37 0a 00 00 00 1d 31 ┊ 09 21 38 0a 1f 33 0b 21 │ 7_000•1┊_!8_•3•!│ +│006f18b0│ 39 09 22 39 0b 1f 34 0b ┊ 1e 33 0a 20 34 0c 00 00 │9_"9••4•┊•3_ 4_00│ +│006f18c0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f1920│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 5a 71 43 │00000000┊00000ZqC│ +│006f1930│ 55 6e 3d 2a 42 12 49 61 ┊ 31 2b 44 12 3e 57 26 55 │Un=*B•Ia┊1+D•>W&U│ +│006f1940│ 6c 3e 43 5c 2b 00 00 00 ┊ 01 01 00 01 00 00 01 01 │l>C\+000┊••0•00••│ +│006f1950│ 00 55 6c 3f 54 6c 3c 2b ┊ 43 13 4a 63 32 2a 42 12 │0Ul?Tl<+┊C•Jc2*B•│ +│006f1960│ 41 59 29 57 70 3f 43 5c ┊ 2b 00 00 00 01 01 00 01 │AY)Wp?C\┊+000••0•│ +│006f1970│ 00 01 01 01 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │0•••0000┊00000000│ +│006f1980│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f19b0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 52 69 3b │00000000┊00000Ri;│ +│006f19c0│ 51 69 3a 28 40 11 47 5f ┊ 2f 2a 43 11 3c 53 25 55 │Qi:(@•G_┊/*C•0┊•080•000│ +│006f38a0│ 00 01 00 00 18 00 42 00 ┊ 6f 00 6f 00 74 00 20 00 │0•00•0B0┊o0o0t0 0│ +│006f38b0│ 4d 00 65 00 6e 00 75 00 ┊ 00 00 04 06 14 00 2d 76 │M0e0n0u0┊00•••0-v│ +│006f38c0│ 6a 12 58 57 ca 4f 85 31 ┊ 20 1a 7f 57 f8 50 7f ff │j•XW×O×1┊ ••W×P•×│ +│006f38d0│ 04 00 e2 86 18 00 39 00 ┊ 42 00 6f 00 6f 00 74 00 │•0×ו090┊B0o0o0t0│ +│006f38e0│ 4d 00 65 00 6e 00 75 00 ┊ 00 00 e3 a5 0e 00 10 00 │M0e0n0u0┊00×ו0•0│ +│006f38f0│ 39 00 03 00 00 00 01 00 ┊ e2 58 18 00 3a 00 42 00 │90•000•0┊×X•0:0B0│ +│006f3900│ 6f 00 6f 00 74 00 30 00 ┊ 30 00 30 00 32 00 00 00 │o0o0t000┊00002000│ +│006f3910│ e3 7c 5c 00 10 00 3a 00 ┊ 07 00 00 00 00 01 00 00 │×|\0•0:0┊•0000•00│ +│006f3920│ 18 00 44 00 69 00 61 00 ┊ 67 00 6e 00 6f 00 73 00 │•0D0i0a0┊g0n0o0s0│ +│006f3930│ 74 00 69 00 63 00 20 00 ┊ 53 00 70 00 6c 00 61 00 │t0i0c0 0┊S0p0l0a0│ +│006f3940│ 73 00 68 00 20 00 53 00 ┊ 63 00 72 00 65 00 65 00 │s0h0 0S0┊c0r0e0e0│ +│006f3950│ 6e 00 00 00 04 06 14 00 ┊ a6 d9 d8 a7 b0 6a eb 4a │n000•••0┊×××××j×J│ +│006f3960│ ad 9d 16 3e 59 a7 a3 80 ┊ 7f ff 04 00 e2 56 18 00 │×ו>Y×××┊•×•0×V•0│ +│006f3970│ 3b 00 42 00 6f 00 6f 00 ┊ 74 00 30 00 30 00 30 00 │;0B0o0o0┊t0000000│ +│006f3980│ 33 00 00 00 e3 16 50 00 ┊ 10 00 3b 00 07 00 00 00 │3000וP0┊•0;0•000│ +│006f3990│ 00 01 00 00 18 00 4c 00 ┊ 65 00 6e 00 6f 00 76 00 │0•00•0L0┊e0n0o0v0│ +│006f39a0│ 6f 00 20 00 44 00 69 00 ┊ 61 00 67 00 6e 00 6f 00 │o0 0D0i0┊a0g0n0o0│ +│006f39b0│ 73 00 74 00 69 00 63 00 ┊ 73 00 00 00 04 06 14 00 │s0t0i0c0┊s000•••0│ +│006f39c0│ 5b 61 7e 3f 45 0d 80 4f ┊ 88 dc 26 b2 34 95 85 60 │[a~?E_×O┊××&×4××`│ +│006f39d0│ 7f ff 04 00 e2 54 18 00 ┊ 3c 00 42 00 6f 00 6f 00 │•×•0×T•0┊<0B0o0o0│ +│006f39e0│ 74 00 30 00 30 00 30 00 ┊ 34 00 00 00 e3 a6 58 00 │t0000000┊4000××X0│ +│006f39f0│ 10 00 3c 00 07 00 00 00 ┊ 08 01 00 00 18 00 53 00 │•0<0•000┊••00•0S0│ +│006f3a00│ 74 00 61 00 72 00 74 00 ┊ 75 00 70 00 20 00 49 00 │t0a0r0t0┊u0p0 0I0│ +│006f3a10│ 6e 00 74 00 65 00 72 00 ┊ 72 00 75 00 70 00 74 00 │n0t0e0r0┊r0u0p0t0│ +│006f3a20│ 20 00 4d 00 65 00 6e 00 ┊ 75 00 00 00 04 06 14 00 │ 0M0e0n0┊u000•••0│ +│006f3a30│ f4 e6 6e f4 85 47 a3 43 ┊ 92 3d 7f 78 6c 3c 84 79 │××n××G×C┊×=•xl<×y│ +│006f3a40│ 7f ff 04 00 e2 52 18 00 ┊ 3d 00 42 00 6f 00 6f 00 │•×•0×R•0┊=0B0o0o0│ +│006f3a50│ 74 00 30 00 30 00 30 00 ┊ 35 00 00 00 e3 d8 52 00 │t0000000┊5000××R0│ +│006f3a60│ 10 00 3d 00 07 00 00 00 ┊ 08 01 00 00 18 00 52 00 │•0=0•000┊••00•0R0│ +│006f3a70│ 65 00 73 00 63 00 75 00 ┊ 65 00 20 00 61 00 6e 00 │e0s0c0u0┊e0 0a0n0│ +│006f3a80│ 64 00 20 00 52 00 65 00 ┊ 63 00 6f 00 76 00 65 00 │d0 0R0e0┊c0o0v0e0│ +│006f3a90│ 72 00 79 00 00 00 04 06 ┊ 14 00 60 3f 5d 66 3e ad │r0y000••┊•0`?]f>×│ +│006f3aa0│ ad 4c 8e 26 db 46 ee e9 ┊ f1 b5 7f ff 04 00 e2 50 │×L×&×F××┊×וו0×P│ +│006f3ab0│ 18 00 3e 00 42 00 6f 00 ┊ 6f 00 74 00 30 00 30 00 │•0>0B0o0┊o0t00000│ +│006f3ac0│ 30 00 36 00 00 00 e3 e4 ┊ 48 00 10 00 3e 00 07 00 │006000××┊H0•0>0•0│ +│006f3ad0│ 00 00 01 00 00 00 28 00 ┊ 55 00 53 00 42 00 20 00 │00•000(0┊U0S0B0 0│ +│006f3ae0│ 43 00 44 00 00 00 03 0a ┊ 24 00 d2 38 78 bc 82 0f │C0D000•_┊$0×8x×ו│ +│006f3af0│ 60 4d 83 16 c0 68 ee 79 ┊ d2 5b 86 70 12 96 aa 5a │`Mו×h×y┊×[×p•××Z│ +│006f3b00│ 78 48 b6 6c d4 9d d3 ba ┊ 6a 55 7f ff 04 00 e2 4e │xH×l××××┊jU•×•0×N│ +│006f3b10│ 18 00 3f 00 42 00 6f 00 ┊ 6f 00 74 00 30 00 30 00 │•0?0B0o0┊o0t00000│ +│006f3b20│ 30 00 37 00 00 00 e3 8b ┊ 4a 00 10 00 3f 00 07 00 │007000××┊J0•0?0•0│ +│006f3b30│ 00 00 01 00 00 00 28 00 ┊ 55 00 53 00 42 00 20 00 │00•000(0┊U0S0B0 0│ +│006f3b40│ 46 00 44 00 44 00 00 00 ┊ 03 0a 24 00 d2 38 78 bc │F0D0D000┊•_$0×8x×│ +│006f3b50│ 82 0f 60 4d 83 16 c0 68 ┊ ee 79 d2 5b 6f f0 15 a2 │ו`Mו×h┊×y×[oו×│ +│006f3b60│ 88 30 b5 43 a8 b8 64 10 ┊ 09 46 1e 49 7f ff 04 00 │×0×C××d•┊_F•I•×•0│ +│006f3b70│ e2 4c 18 00 40 00 42 00 ┊ 6f 00 6f 00 74 00 30 00 │×L•0@0B0┊o0o0t000│ +│006f3b80│ 30 00 30 00 38 00 00 00 ┊ e3 06 4f 00 10 00 40 00 │00008000┊וO0•0@0│ +│006f3b90│ 07 00 00 00 01 00 00 00 ┊ 29 00 41 00 54 00 41 00 │•000•000┊)0A0T0A0│ +│006f3ba0│ 50 00 49 00 20 00 43 00 ┊ 44 00 30 00 00 00 03 0a │P0I0 0C0┊D00000•_│ +│006f3bb0│ 25 00 d2 38 78 bc 82 0f ┊ 60 4d 83 16 c0 68 ee 79 │%0×8x×ו┊`Mו×h×y│ +│006f3bc0│ d2 5b ae a2 09 0a df de ┊ 21 4e 8b 3a 5e 47 18 56 │×[××__××┊!N×:^G•V│ +│006f3bd0│ a3 54 01 7f ff 04 00 e2 ┊ 4a 18 00 41 00 42 00 6f │×T••×•0×┊J•0A0B0o│ +│006f3be0│ 00 6f 00 74 00 30 00 30 ┊ 00 30 00 39 00 00 00 e3 │0o0t0000┊0009000×│ +│006f3bf0│ 1a 4d 00 10 00 41 00 07 ┊ 00 00 00 01 00 00 00 29 │•M0•0A0•┊000•000)│ +│006f3c00│ 00 41 00 54 00 41 00 20 ┊ 00 48 00 44 00 44 00 30 │0A0T0A0 ┊0H0D0D00│ +│006f3c10│ 00 00 00 03 0a 25 00 d2 ┊ 38 78 bc 82 0f 60 4d 83 │000•_%0×┊8x×ו`M×│ +│006f3c20│ 16 c0 68 ee 79 d2 5b 91 ┊ af 62 59 56 44 9f 41 a7 │•×h×y×[×┊×bYVD×A×│ +│006f3c30│ b9 1f 4f 89 2a b0 f6 00 ┊ 7f ff 04 00 e2 41 18 00 │וO×*××0┊•×•0×A•0│ +│006f3c40│ 42 00 42 00 6f 00 6f 00 ┊ 74 00 30 00 30 00 30 00 │B0B0o0o0┊t0000000│ +│006f3c50│ 41 00 00 00 e3 16 4d 00 ┊ 10 00 42 00 07 00 00 00 │A000וM0┊•0B0•000│ +│006f3c60│ 01 00 00 00 29 00 41 00 ┊ 54 00 41 00 20 00 48 00 │•000)0A0┊T0A0 0H0│ +│006f3c70│ 44 00 44 00 31 00 00 00 ┊ 03 0a 25 00 d2 38 78 bc │D0D01000┊•_%0×8x×│ +│006f3c80│ 82 0f 60 4d 83 16 c0 68 ┊ ee 79 d2 5b 91 af 62 59 │ו`Mו×h┊×y×[××bY│ +│006f3c90│ 56 44 9f 41 a7 b9 1f 4f ┊ 89 2a b0 f6 02 7f ff 04 │VD×A×וO┊×*×ו•×•│ +│006f3ca0│ 00 e2 3f 18 00 43 00 42 ┊ 00 6f 00 6f 00 74 00 30 │0×?•0C0B┊0o0o0t00│ +│006f3cb0│ 00 30 00 30 00 42 00 00 ┊ 00 e3 8c 4a 00 10 00 43 │00000B00┊0××J0•0C│ +│006f3cc0│ 00 07 00 00 00 01 00 00 ┊ 00 28 00 55 00 53 00 42 │0•000•00┊0(0U0S0B│ +│006f3cd0│ 00 20 00 48 00 44 00 44 ┊ 00 00 00 03 0a 24 00 d2 │0 0H0D0D┊000•_$0×│ +│006f3ce0│ 38 78 bc 82 0f 60 4d 83 ┊ 16 c0 68 ee 79 d2 5b 33 │8x×ו`M×┊•×h×y×[3│ +│006f3cf0│ e8 21 aa af 33 bc 47 89 ┊ bd 41 9f 88 c5 08 03 7f │×!××3×G×┊×A××ו••│ +│006f3d00│ ff 04 00 e2 3d 18 00 44 ┊ 00 42 00 6f 00 6f 00 74 │ו0×=•0D┊0B0o0o0t│ +│006f3d10│ 00 30 00 30 00 30 00 43 ┊ 00 00 00 e3 14 4a 00 10 │0000000C┊000וJ0•│ +│006f3d20│ 00 44 00 07 00 00 00 01 ┊ 00 00 00 28 00 50 00 43 │0D0•000•┊000(0P0C│ +│006f3d30│ 00 49 00 20 00 4c 00 41 ┊ 00 4e 00 00 00 03 0a 24 │0I0 0L0A┊0N000•_$│ +│006f3d40│ 00 d2 38 78 bc 82 0f 60 ┊ 4d 83 16 c0 68 ee 79 d2 │0×8x×ו`┊Mו×h×y×│ +│006f3d50│ 5b 78 a8 4a af 2b 2a fc ┊ 4e a7 9c f5 cc 8f 3d 38 │[x×J×+*×┊N×××××=8│ +│006f3d60│ 03 7f ff 04 00 e2 3b 18 ┊ 00 45 00 42 00 6f 00 6f │••×•0×;•┊0E0B0o0o│ +│006f3d70│ 00 74 00 30 00 30 00 30 ┊ 00 44 00 00 00 e3 fd 4f │0t000000┊0D000××O│ +│006f3d80│ 00 10 00 45 00 07 00 00 ┊ 00 01 00 00 00 29 00 41 │0•0E0•00┊0•000)0A│ +│006f3d90│ 00 54 00 41 00 50 00 49 ┊ 00 20 00 43 00 44 00 31 │0T0A0P0I┊0 0C0D01│ +│006f3da0│ 00 00 00 03 0a 25 00 d2 ┊ 38 78 bc 82 0f 60 4d 83 │000•_%0×┊8x×ו`M×│ +│006f3db0│ 16 c0 68 ee 79 d2 5b ae ┊ a2 09 0a df de 21 4e 8b │•×h×y×[×┊×__××!N×│ +│006f3dc0│ 3a 5e 47 18 56 a3 54 04 ┊ 7f ff 04 00 e2 39 18 00 │:^G•V×T•┊•×•0×9•0│ +│006f3dd0│ 46 00 42 00 6f 00 6f 00 ┊ 74 00 30 00 30 00 30 00 │F0B0o0o0┊t0000000│ +│006f3de0│ 45 00 00 00 e3 0f 4d 00 ┊ 10 00 46 00 07 00 00 00 │E000וM0┊•0F0•000│ +│006f3df0│ 01 00 00 00 29 00 41 00 ┊ 54 00 41 00 20 00 48 00 │•000)0A0┊T0A0 0H0│ +│006f3e00│ 44 00 44 00 32 00 00 00 ┊ 03 0a 25 00 d2 38 78 bc │D0D02000┊•_%0×8x×│ +│006f3e10│ 82 0f 60 4d 83 16 c0 68 ┊ ee 79 d2 5b 91 af 62 59 │ו`Mו×h┊×y×[××bY│ +│006f3e20│ 56 44 9f 41 a7 b9 1f 4f ┊ 89 2a b0 f6 04 7f ff 04 │VD×A×וO┊×*×ו•×•│ +│006f3e30│ 00 e2 37 18 00 47 00 42 ┊ 00 6f 00 6f 00 74 00 30 │0×7•0G0B┊0o0o0t00│ +│006f3e40│ 00 30 00 30 00 46 00 00 ┊ 00 e3 9a 4d 00 10 00 47 │00000F00┊0××M0•0G│ +│006f3e50│ 00 07 00 00 00 00 00 00 ┊ 00 29 00 4f 00 74 00 68 │0•000000┊0)0O0t0h│ +│006f3e60│ 00 65 00 72 00 20 00 43 ┊ 00 44 00 00 00 03 0a 25 │0e0r0 0C┊0D000•_%│ +│006f3e70│ 00 d2 38 78 bc 82 0f 60 ┊ 4d 83 16 c0 68 ee 79 d2 │0×8x×ו`┊Mו×h×y×│ +│006f3e80│ 5b ae a2 09 0a df de 21 ┊ 4e 8b 3a 5e 47 18 56 a3 │[××__××!┊N×:^G•V×│ +│006f3e90│ 54 06 7f ff 04 00 e2 4b ┊ 18 00 48 00 42 00 6f 00 │T••×•0×K┊•0H0B0o0│ +│006f3ea0│ 6f 00 74 00 30 00 30 00 ┊ 31 00 30 00 00 00 e3 10 │o0t00000┊100000ו│ +│006f3eb0│ 4f 00 10 00 48 00 07 00 ┊ 00 00 00 00 00 00 29 00 │O0•0H0•0┊000000)0│ +│006f3ec0│ 4f 00 74 00 68 00 65 00 ┊ 72 00 20 00 48 00 44 00 │O0t0h0e0┊r0 0H0D0│ +│006f3ed0│ 44 00 00 00 03 0a 25 00 ┊ d2 38 78 bc 82 0f 60 4d │D000•_%0┊×8x×ו`M│ +│006f3ee0│ 83 16 c0 68 ee 79 d2 5b ┊ 91 af 62 59 56 44 9f 41 │ו×h×y×[┊××bYVD×A│ +│006f3ef0│ a7 b9 1f 4f 89 2a b0 f6 ┊ 06 7f ff 04 00 e2 0d 1a │×וO×*××┊••×•0×_•│ +│006f3f00│ 00 49 00 42 00 6f 00 6f ┊ 00 74 00 4f 00 72 00 64 │0I0B0o0o┊0t0O0r0d│ +│006f3f10│ 00 65 00 72 00 00 00 e3 ┊ f7 2a 00 10 00 49 00 07 │0e0r000×┊×*0•0I0•│ +│006f3f20│ 00 00 00 00 00 01 00 02 ┊ 00 03 00 06 00 07 00 08 │00000•0•┊0•0•0•0•│ +│006f3f30│ 00 09 00 0a 00 0b 00 0c ┊ 00 0d 00 0e 00 0f 00 10 │0_0_0•0_┊0_0•0•0•│ +│006f3f40│ 00 e2 39 28 00 4a 00 42 ┊ 00 6f 00 6f 00 74 00 4f │0×9(0J0B┊0o0o0t0O│ +│006f3f50│ 00 72 00 64 00 65 00 72 ┊ 00 44 00 65 00 66 00 61 │0r0d0e0r┊0D0e0f0a│ +│006f3f60│ 00 75 00 6c 00 74 00 00 ┊ 00 e3 f6 2a 00 10 00 4a │0u0l0t00┊0××*0•0J│ +│006f3f70│ 00 07 00 00 00 00 00 01 ┊ 00 02 00 03 00 06 00 07 │0•00000•┊0•0•0•0•│ +│006f3f80│ 00 08 00 09 00 0a 00 0b ┊ 00 0c 00 0d 00 0e 00 0f │0•0_0_0•┊0_0_0•0•│ +│006f3f90│ 00 10 00 e2 5b 30 00 4b ┊ 00 50 00 72 00 6f 00 74 │0•0×[00K┊0P0r0o0t│ +│006f3fa0│ 00 65 00 63 00 74 00 65 ┊ 00 64 00 42 00 6f 00 6f │0e0c0t0e┊0d0B0o0o│ +│006f3fb0│ 00 74 00 4f 00 70 00 74 ┊ 00 69 00 6f 00 6e 00 73 │0t0O0p0t┊0i0o0n0s│ +│006f3fc0│ 00 00 00 e3 03 22 00 10 ┊ 00 4b 00 07 00 00 00 06 │000ו"0•┊0K0•000•│ +│006f3fd0│ 00 07 00 08 00 09 00 0a ┊ 00 0b 00 0c 00 0d 00 0e │0•0•0_0_┊0•0_0_0•│ +│006f3fe0│ 00 0f 00 10 00 e2 b5 16 ┊ 00 4c 00 4b 00 65 00 79 │0•0•0×ו┊0L0K0e0y│ +│006f3ff0│ 00 30 00 30 00 30 00 30 ┊ 00 00 00 e3 a1 82 00 10 │00000000┊000×××0•│ +│006f4000│ 00 4c 00 07 00 00 00 00 ┊ 00 00 40 2a 45 0a 3f 00 │0L0•0000┊00@*E_?0│ +│006f4010│ 00 0b 00 00 00 00 00 00 ┊ 00 00 00 00 00 56 00 00 │0•000000┊00000V00│ +│006f4020│ 00 00 00 00 00 01 00 00 ┊ 00 00 00 00 00 18 00 00 │00000•00┊00000•00│ +│006f4030│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f4050│ 00 00 00 00 00 00 00 00 ┊ 00 42 00 39 00 45 00 6e │00000000┊0B090E0n│ +│006f4060│ 00 74 00 65 00 72 00 69 ┊ 00 6e 00 67 00 20 00 53 │0t0e0r0i┊0n0g0 0S│ +│006f4070│ 00 65 00 74 00 75 00 70 ┊ 00 20 00 00 00 e2 b3 16 │0e0t0u0p┊0 000×ו│ +│006f4080│ 00 4d 00 4b 00 65 00 79 ┊ 00 30 00 30 00 30 00 31 │0M0K0e0y┊00000001│ +│006f4090│ 00 00 00 e3 00 88 00 10 ┊ 00 4d 00 07 00 00 00 00 │000×0×0•┊0M0•0000│ +│006f40a0│ 00 00 40 33 b4 76 e7 01 ┊ 00 16 00 00 00 00 00 00 │00@3×vו┊0•000000│ +│006f40b0│ 00 00 00 00 00 56 00 00 ┊ 00 00 00 00 00 01 00 00 │00000V00┊00000•00│ +│006f40c0│ 00 00 00 00 00 18 00 00 ┊ 00 00 00 00 00 00 00 00 │00000•00┊00000000│ +│006f40d0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f40f0│ 00 35 00 30 00 45 00 6e ┊ 00 74 00 65 00 72 00 69 │05000E0n┊0t0e0r0i│ +│006f4100│ 00 6e 00 67 00 20 00 42 ┊ 00 6f 00 6f 00 74 00 20 │0n0g0 0B┊0o0o0t0 │ +│006f4110│ 00 4d 00 65 00 6e 00 75 ┊ 00 00 00 e2 b1 16 00 4e │0M0e0n0u┊000×ו0N│ +│006f4120│ 00 4b 00 65 00 79 00 30 ┊ 00 30 00 30 00 32 00 00 │0K0e0y00┊00000200│ +│006f4130│ 00 e3 54 ac 00 10 00 4e ┊ 00 07 00 00 00 00 00 00 │0×T×0•0N┊0•000000│ +│006f4140│ 40 79 a2 44 40 02 00 17 ┊ 00 00 00 00 00 00 00 00 │@y×D@•0•┊00000000│ +│006f4150│ 00 00 00 56 00 00 00 00 ┊ 00 00 00 01 00 00 00 00 │000V0000┊000•0000│ +│006f4160│ 00 00 00 18 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │000•0000┊00000000│ +│006f4170│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f4180│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 38 │00000000┊00000008│ +│006f4190│ 00 30 00 45 00 6e 00 74 ┊ 00 65 00 72 00 69 00 6e │000E0n0t┊0e0r0i0n│ +│006f41a0│ 00 67 00 20 00 44 00 69 ┊ 00 61 00 67 00 6e 00 6f │0g0 0D0i┊0a0g0n0o│ +│006f41b0│ 00 73 00 74 00 69 00 63 ┊ 00 20 00 53 00 70 00 6c │0s0t0i0c┊0 0S0p0l│ +│006f41c0│ 00 61 00 73 00 68 00 20 ┊ 00 53 00 63 00 72 00 65 │0a0s0h0 ┊0S0c0r0e│ +│006f41d0│ 00 65 00 6e 00 20 00 20 ┊ 00 20 00 00 00 e2 af 16 │0e0n0 0 ┊0 000×ו│ +│006f41e0│ 00 4f 00 4b 00 65 00 79 ┊ 00 30 00 30 00 30 00 33 │0O0K0e0y┊00000003│ +│006f41f0│ 00 00 00 e3 5f 9a 00 10 ┊ 00 4f 00 07 00 00 00 00 │000×_×0•┊0O0•0000│ +│006f4200│ 00 00 40 a2 14 48 10 03 ┊ 00 14 00 00 00 00 00 00 │00@וH••┊0•000000│ +│006f4210│ 00 00 00 00 00 56 00 00 ┊ 00 00 00 00 00 01 00 00 │00000V00┊00000•00│ +│006f4220│ 00 00 00 00 00 18 00 00 ┊ 00 00 00 00 00 00 00 00 │00000•00┊00000000│ +│006f4230│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f4250│ 00 36 00 30 00 45 00 6e ┊ 00 74 00 65 00 72 00 69 │06000E0n┊0t0e0r0i│ +│006f4260│ 00 6e 00 67 00 20 00 4c ┊ 00 65 00 6e 00 6f 00 76 │0n0g0 0L┊0e0n0o0v│ +│006f4270│ 00 6f 00 20 00 44 00 69 ┊ 00 61 00 67 00 6e 00 6f │0o0 0D0i┊0a0g0n0o│ +│006f4280│ 00 73 00 74 00 69 00 63 ┊ 00 73 00 00 00 e2 ad 16 │0s0t0i0c┊0s000×ו│ +│006f4290│ 00 50 00 4b 00 65 00 79 ┊ 00 30 00 30 00 30 00 34 │0P0K0e0y┊00000004│ +│006f42a0│ 00 00 00 e3 1d ac 00 10 ┊ 00 50 00 07 00 00 00 00 │000ו×0•┊0P0•0000│ +│006f42b0│ 00 00 40 72 4e 59 db 04 ┊ 00 00 00 0d 00 00 00 00 │00@rNYו┊000_0000│ +│006f42c0│ 00 00 00 00 00 56 00 00 ┊ 00 00 00 00 00 02 00 00 │00000V00┊00000•00│ +│006f42d0│ 00 00 00 00 00 14 00 00 ┊ 00 00 00 00 00 00 00 00 │00000•00┊00000000│ +│006f42e0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f4300│ 00 37 00 39 00 4c 00 61 ┊ 00 75 00 6e 00 63 00 68 │07090L0a┊0u0n0c0h│ +│006f4310│ 00 69 00 6e 00 67 00 20 ┊ 00 74 00 68 00 65 00 20 │0i0n0g0 ┊0t0h0e0 │ +│006f4320│ 00 53 00 74 00 61 00 72 ┊ 00 74 00 75 00 70 00 20 │0S0t0a0r┊0t0u0p0 │ +│006f4330│ 00 49 00 6e 00 74 00 65 ┊ 00 72 00 72 00 75 00 70 │0I0n0t0e┊0r0r0u0p│ +│006f4340│ 00 74 00 20 00 4d 00 65 ┊ 00 6e 00 75 00 00 00 e2 │0t0 0M0e┊0n0u000×│ +│006f4350│ ab 16 00 51 00 4b 00 65 ┊ 00 79 00 30 00 30 00 30 │ו0Q0K0e┊0y000000│ +│006f4360│ 00 35 00 00 00 e3 0f a0 ┊ 00 10 00 51 00 07 00 00 │05000ו×┊0•0Q0•00│ +│006f4370│ 00 00 00 00 40 d2 80 05 ┊ 95 05 00 15 00 00 00 00 │0000@×ו┊ו0•0000│ +│006f4380│ 00 00 00 00 00 00 00 56 ┊ 00 00 00 00 00 00 00 01 │0000000V┊0000000•│ +│006f4390│ 00 00 00 00 00 00 00 18 ┊ 00 00 00 00 00 00 00 00 │0000000•┊00000000│ +│006f43a0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f43c0│ 00 00 00 42 00 35 00 4c ┊ 00 61 00 75 00 6e 00 63 │000B050L┊0a0u0n0c│ +│006f43d0│ 00 68 00 69 00 6e 00 67 ┊ 00 20 00 74 00 68 00 65 │0h0i0n0g┊0 0t0h0e│ +│006f43e0│ 00 20 00 72 00 65 00 63 ┊ 00 6f 00 76 00 65 00 72 │0 0r0e0c┊0o0v0e0r│ +│006f43f0│ 00 79 00 20 00 75 00 74 ┊ 00 69 00 6c 00 69 00 74 │0y0 0u0t┊0i0l0i0t│ +│006f4400│ 00 79 00 00 00 83 b5 3c ┊ 00 15 00 1b 00 07 00 00 │0y000××<┊0•0•0•00│ +│006f4410│ 00 ff ff ff ff 00 00 00 ┊ 00 98 47 a3 cc 00 00 00 │0××××000┊0×G××000│ +│006f4420│ 00 f8 32 c7 d7 00 00 00 ┊ 00 89 8c f5 fe 4b f7 a8 │0×2××000┊0××××K××│ +│006f4430│ 4a a9 a5 03 b5 ab 82 23 ┊ 2d 07 00 00 00 00 00 00 │J×ו×××#┊-•000000│ +│006f4440│ 00 e1 ed 16 00 26 00 2f ┊ f6 0c ec 42 07 78 4c a7 │0×ו0&0/┊×_×B•xL×│ +│006f4450│ 38 8d 66 15 89 69 d4 e2 ┊ ad 2a 00 52 00 4c 00 65 │8×f•×i××┊×*0R0L0e│ +│006f4460│ 00 6e 00 6f 00 76 00 6f ┊ 00 50 00 63 00 69 00 52 │0n0o0v0o┊0P0c0i0R│ +│006f4470│ 00 65 00 73 00 6f 00 75 ┊ 00 72 00 63 00 65 00 00 │0e0s0o0u┊0r0c0e00│ +│006f4480│ 00 e3 da 34 00 26 00 52 ┊ 00 07 00 00 00 00 00 00 │0××40&0R┊0•000000│ +│006f4490│ 00 01 00 00 00 00 00 60 ┊ 12 00 00 00 00 00 00 00 │0•00000`┊•0000000│ +│006f44a0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f44b0│ 00 00 00 00 00 e2 9d 26 ┊ 00 53 00 4f 00 70 00 72 │00000××&┊0S0O0p0r│ +│006f44c0│ 00 6f 00 6d 00 44 00 65 ┊ 00 76 00 69 00 63 00 65 │0o0m0D0e┊0v0i0c0e│ +│006f44d0│ 00 50 00 61 00 74 00 68 ┊ 00 00 00 83 bb 22 00 10 │0P0a0t0h┊000××"0•│ +│006f44e0│ 00 53 00 07 00 00 00 02 ┊ 01 0c 00 d0 41 03 0a 00 │0S0•000•┊•_0×A•_0│ +│006f44f0│ 00 00 00 01 01 06 00 00 ┊ 02 7f ff 04 00 e2 40 14 │000•••00┊••×•0×@•│ +│006f4500│ 00 54 00 43 00 6f 00 6e ┊ 00 4f 00 75 00 74 00 00 │0T0C0o0n┊0O0u0t00│ +│006f4510│ 00 e3 23 2a 00 10 00 54 ┊ 00 07 00 00 00 02 01 0c │0×#*0•0T┊0•000••_│ +│006f4520│ 00 d0 41 03 0a 00 00 00 ┊ 00 01 01 06 00 00 02 02 │0×A•_000┊0•••00••│ +│006f4530│ 03 08 00 00 01 01 80 7f ┊ ff 04 00 e2 c0 12 00 57 │••00••×•┊ו0×ו0W│ +│006f4540│ 00 43 00 6f 00 6e 00 49 ┊ 00 6e 00 00 00 83 2d 3a │0C0o0n0I┊0n000×-:│ +│006f4550│ 00 10 00 57 00 07 00 00 ┊ 00 02 01 0c 00 d0 41 03 │0•0W0•00┊0••_0×A•│ +│006f4560│ 0a 00 00 00 00 01 01 06 ┊ 00 00 1f 02 01 0c 00 d0 │_0000•••┊00•••_0×│ +│006f4570│ 41 05 0a 00 00 00 00 02 ┊ 01 0c 00 d0 41 03 03 00 │A•_0000•┊•_0×A••0│ +│006f4580│ 00 00 00 7f ff 04 00 83 ┊ 7c 49 00 10 00 57 00 07 │000•×•0×┊|I0•0W0•│ +│006f4590│ 00 00 00 02 01 0c 00 d0 ┊ 41 03 0a 00 00 00 00 01 │000••_0×┊A•_0000•│ +│006f45a0│ 01 06 00 00 1f 02 01 0c ┊ 00 d0 41 05 0a 00 00 00 │••00•••_┊0×A•_000│ +│006f45b0│ 00 02 01 0c 00 d0 41 03 ┊ 03 00 00 00 00 7f 01 04 │0••_0×A•┊•0000•••│ +│006f45c0│ 00 03 0f 0b 00 ff ff ff ┊ ff 03 01 01 7f ff 04 00 │0•••0×××┊ו•••×•0│ +│006f45d0│ e3 2d 3a 00 10 00 57 00 ┊ 07 00 00 00 02 01 0c 00 │×-:0•0W0┊•000••_0│ +│006f45e0│ d0 41 03 0a 00 00 00 00 ┊ 01 01 06 00 00 1f 02 01 │×A•_0000┊•••00•••│ +│006f45f0│ 0c 00 d0 41 05 0a 00 00 ┊ 00 00 02 01 0c 00 d0 41 │_0×A•_00┊00••_0×A│ +│006f4600│ 03 03 00 00 00 00 7f ff ┊ 04 00 e3 6f 40 00 1d 00 │••0000•×┊•0×o@0•0│ +│006f4610│ 26 00 07 00 00 00 00 01 ┊ 00 00 00 00 00 00 98 9e │&0•0000•┊000000××│ +│006f4620│ f6 da 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │××000000┊00000000│ +│006f4630│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f4640│ 00 00 00 00 00 00 00 00 ┊ 00 00 83 bf 3e 00 10 00 │00000000┊00××>0•0│ +│006f4650│ 53 00 07 00 00 00 02 01 ┊ 0c 00 d0 41 03 0a 00 00 │S0•000••┊_0×A•_00│ +│006f4660│ 00 00 01 01 06 00 00 02 ┊ 7f 01 04 00 02 01 0c 00 │00•••00•┊•••0••_0│ +│006f4670│ d0 41 03 0a 00 00 00 00 ┊ 01 01 06 00 03 1c 01 01 │×A•_0000┊•••0••••│ +│006f4680│ 06 00 00 00 7f ff 04 00 ┊ e2 73 26 00 5c 00 4c 00 │•000•×•0┊×s&0\0L0│ +│006f4690│ 61 00 73 00 74 00 42 00 ┊ 6f 00 6f 00 74 00 43 00 │a0s0t0B0┊o0o0t0C0│ +│006f46a0│ 75 00 72 00 72 00 65 00 ┊ 6e 00 74 00 00 00 e3 74 │u0r0r0e0┊n0t000×t│ +│006f46b0│ 0e 00 10 00 5c 00 07 00 ┊ 00 00 0b 00 e2 9a 22 00 │•0•0\0•0┊00•0××"0│ +│006f46c0│ 5d 00 53 00 4d 00 42 00 ┊ 49 00 4f 00 53 00 4d 00 │]0S0M0B0┊I0O0S0M0│ +│006f46d0│ 45 00 4d 00 53 00 49 00 ┊ 5a 00 45 00 00 00 e3 70 │E0M0S0I0┊Z0E000×p│ +│006f46e0│ 14 00 1c 00 5d 00 07 00 ┊ 00 00 ff ff ff ff 00 00 │•0•0]0•0┊00××××00│ +│006f46f0│ 00 00 e1 e6 16 00 29 00 ┊ 60 14 3d 94 6e da 9a 49 │00×ו0)0┊`•=×n××I│ +│006f4700│ af 6d 45 93 b1 2b c4 d7 ┊ e2 d3 32 00 5f 00 4c 00 │×mE××+××┊××20_0L0│ +│006f4710│ 65 00 6e 00 6f 00 76 00 ┊ 6f 00 54 00 68 00 65 00 │e0n0o0v0┊o0T0h0e0│ +│006f4720│ 72 00 6d 00 61 00 6c 00 ┊ 53 00 68 00 75 00 74 00 │r0m0a0l0┊S0h0u0t0│ +│006f4730│ 64 00 6f 00 77 00 6e 00 ┊ 00 00 e3 47 2a 00 29 00 │d0o0w0n0┊00×G*0)0│ +│006f4740│ 5f 00 07 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │_0•00000┊00000000│ +│006f4750│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│006f4760│ 00 00 00 00 e1 d7 16 00 ┊ 2a 00 31 b1 f0 f9 46 f3 │0000×ו0┊*01×××F×│ +│006f4770│ 16 4f 80 dd f9 41 07 2b ┊ 3a 7d e2 86 18 00 60 00 │•O×××A•+┊:}×ו0`0│ +│006f4780│ 69 00 46 00 66 00 73 00 ┊ 44 00 61 00 74 00 61 00 │i0F0f0s0┊D0a0t0a0│ +│006f4790│ 00 00 83 68 06 01 2a 00 ┊ 60 00 07 00 00 00 00 00 │00×h••*0┊`0•00000│ +│006f47a0│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f4890│ 00 00 00 00 00 00 00 00 ┊ e1 73 16 00 2b 00 9f 04 │00000000┊×s•0+0ו│ +│006f48a0│ 19 4c 37 41 d3 4d 9c 10 ┊ 8b 97 a8 3f fd fa e2 cc │•L7A×Mו┊×××?××××│ +│006f48b0│ 32 00 61 00 4d 00 65 00 ┊ 6d 00 6f 00 72 00 79 00 │20a0M0e0┊m0o0r0y0│ +│006f48c0│ 54 00 79 00 70 00 65 00 ┊ 49 00 6e 00 66 00 6f 00 │T0y0p0e0┊I0n0f0o0│ +│006f48d0│ 72 00 6d 00 61 00 74 00 ┊ 69 00 6f 00 6e 00 00 00 │r0m0a0t0┊i0o0n000│ +│006f48e0│ e3 03 5c 00 2b 00 61 00 ┊ 07 00 00 00 09 00 00 00 │ו\0+0a0┊•000_000│ +│006f48f0│ 60 00 00 00 0a 00 00 00 ┊ 00 01 00 00 00 00 00 00 │`000_000┊0•000000│ +│006f4900│ 00 10 00 00 06 00 00 00 ┊ 5d 3a 00 00 05 00 00 00 │0•00•000┊]:00•000│ +│006f4910│ 00 02 00 00 03 00 00 00 ┊ 00 8c 00 00 04 00 00 00 │0•00•000┊0×00•000│ +│006f4920│ 00 40 00 00 01 00 00 00 ┊ 00 02 00 00 02 00 00 00 │0@00•000┊0•00•000│ +│006f4930│ 00 00 00 00 0e 00 00 00 ┊ 00 00 00 00 83 be 10 00 │0000•000┊0000×ו0│ +│006f4940│ 13 00 15 00 07 00 00 00 ┊ 03 00 00 00 e3 01 78 02 │•0•0•000┊•000וx•│ +│006f4950│ 0e 00 0e 00 07 00 00 00 ┊ 38 00 2e 00 30 00 2e 00 │•0•0•000┊80.000.0│ +│006f4960│ 30 00 2e 00 33 00 30 00 ┊ 00 00 dd cb 31 00 32 00 │00.03000┊00××1020│ +│006f4970│ 30 00 2e 00 30 00 20 00 ┊ 4d 00 48 00 7a 00 00 00 │00.000 0┊M0H0z000│ +│006f4980│ 31 00 30 00 30 00 2e 00 ┊ 30 00 20 00 4d 00 48 00 │100000.0┊00 0M0H0│ +│006f4990│ 7a 00 00 00 31 00 30 00 ┊ 30 00 2e 00 30 00 20 00 │z0001000┊00.000 0│ +│006f49a0│ 4d 00 48 00 7a 00 00 00 ┊ 31 00 32 00 30 00 2e 00 │M0H0z000┊102000.0│ +│006f49b0│ 36 00 36 00 20 00 4d 00 ┊ 48 00 7a 00 31 00 32 00 │6060 0M0┊H0z01020│ +│006f49c0│ 30 00 2e 00 30 00 20 00 ┊ 4d 00 48 00 7a 00 00 00 │00.000 0┊M0H0z000│ +│006f49d0│ 31 00 30 00 30 00 2e 00 ┊ 30 00 20 00 4d 00 48 00 │100000.0┊00 0M0H0│ +│006f49e0│ 7a 00 00 00 31 00 32 00 ┊ 30 00 2e 00 30 00 20 00 │z0001020┊00.000 0│ +│006f49f0│ 4d 00 48 00 7a 00 00 00 ┊ 31 00 30 00 30 00 2e 00 │M0H0z000┊100000.0│ +│006f4a00│ 30 00 20 00 4d 00 48 00 ┊ 7a 00 00 00 31 00 30 00 │00 0M0H0┊z0001000│ +│006f4a10│ 30 00 2e 00 30 00 20 00 ┊ 4d 00 48 00 7a 00 00 00 │00.000 0┊M0H0z000│ +│006f4a20│ 31 00 31 00 39 00 2e 00 ┊ 33 00 34 00 20 00 4d 00 │101090.0┊3040 0M0│ +│006f4a30│ 48 00 7a 00 31 00 32 00 ┊ 30 00 2e 00 30 00 20 00 │H0z01020┊00.000 0│ +│006f4a40│ 4d 00 48 00 7a 00 00 00 ┊ 31 00 30 00 30 00 2e 00 │M0H0z000┊100000.0│ +│006f4a50│ 30 00 20 00 4d 00 48 00 ┊ 7a 00 00 00 30 00 2e 00 │00 0M0H0┊z00000.0│ +│006f4a60│ 35 00 30 00 00 00 00 00 ┊ 90 5b 42 c9 00 00 00 00 │50000000┊×[B×0000│ +│006f4a70│ 30 00 2e 00 35 00 30 00 ┊ 00 00 00 00 00 00 00 00 │00.05000┊00000000│ +│006f4a80│ e6 50 a6 c8 30 00 2e 00 ┊ 35 00 30 00 00 00 00 00 │×P××00.0┊50000000│ +│006f4a90│ 20 5c 42 c9 00 00 00 00 ┊ 30 00 2e 00 35 00 30 00 │ \B×0000┊00.05000│ +│006f4aa0│ 00 00 42 c9 00 00 00 00 ┊ 18 88 55 cd 30 00 2e 00 │00B×0000┊•×U×00.0│ +│006f4ab0│ 35 00 30 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │50000000┊00000000│ +│006f4ac0│ 30 00 2e 00 35 00 30 00 ┊ 00 00 42 c9 00 00 00 00 │00.05000┊00B×0000│ +│006f4ad0│ 90 5b 42 c9 31 00 32 00 ┊ 30 00 2e 00 30 00 20 00 │×[B×1020┊00.000 0│ +│006f4ae0│ 4d 00 48 00 7a 00 00 00 ┊ 31 00 30 00 30 00 2e 00 │M0H0z000┊100000.0│ +│006f4af0│ 30 00 20 00 4d 00 48 00 ┊ 7a 00 00 00 31 00 30 00 │00 0M0H0┊z0001000│ +│006f4b00│ 30 00 2e 00 30 00 20 00 ┊ 4d 00 48 00 7a 00 00 00 │00.000 0┊M0H0z000│ +│006f4b10│ 31 00 31 00 39 00 2e 00 ┊ 39 00 30 00 20 00 4d 00 │101090.0┊9000 0M0│ +│006f4b20│ 48 00 7a 00 31 00 32 00 ┊ 30 00 2e 00 30 00 20 00 │H0z01020┊00.000 0│ +│006f4b30│ 4d 00 48 00 7a 00 00 00 ┊ 31 00 30 00 30 00 2e 00 │M0H0z000┊100000.0│ +│006f4b40│ 30 00 20 00 4d 00 48 00 ┊ 7a 00 00 00 30 00 2e 00 │00 0M0H0┊z00000.0│ +│006f4b50│ 35 00 30 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │50000000┊00000000│ +│006f4b60│ 30 00 2e 00 35 00 30 00 ┊ 00 00 00 00 00 00 00 00 │00.05000┊00000000│ +│006f4b70│ 8e cc 43 d6 30 00 2e 00 ┊ 30 00 00 00 00 00 00 00 │××C×00.0┊00000000│ +│006f4b80│ 07 64 9e cc 00 00 00 00 ┊ 30 00 2e 00 35 00 30 00 │•d××0000┊00.05000│ +│006f4b90│ 00 00 42 c9 00 00 00 00 ┊ 20 5c 42 c9 30 00 2e 00 │00B×0000┊ \B×00.0│ +│006f4ba0│ 30 00 00 00 00 00 00 00 ┊ 90 5b 42 c9 00 00 00 00 │00000000┊×[B×0000│ +│006f4bb0│ 30 00 2e 00 30 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00.00000┊00000000│ +│006f4bc0│ 40 1e de cb 83 9b 0d 00 ┊ 22 00 2e 00 07 00 00 00 │@•××××_0┊"0.0•000│ +│006f4bd0│ 01 83 9c 0d 00 22 00 2e ┊ 00 07 00 00 00 00 83 34 │•××_0"0.┊0•0000×4│ +│006f4be0│ 3c 00 15 00 1b 00 07 00 ┊ 00 00 ff ff ff ff 00 00 │<0•0•0•0┊00××××00│ +│006f4bf0│ 00 00 18 65 ff ca 00 00 ┊ 00 00 f8 62 21 d6 00 00 │00•e××00┊00×b!×00│ +│006f4c00│ 00 00 89 8c f5 fe 4b f7 ┊ a8 4a a9 a5 03 b5 ab 82 │00××××K×┊×J×ו×××│ +│006f4c10│ 23 2d 07 00 00 00 00 00 ┊ 00 00 83 bb 22 00 10 00 │#-•00000┊00××"0•0│ +│006f4c20│ 53 00 07 00 00 00 02 01 ┊ 0c 00 d0 41 03 0a 00 00 │S0•000••┊_0×A•_00│ +│006f4c30│ 00 00 01 01 06 00 00 02 ┊ 7f ff 04 00 83 bf 3e 00 │00•••00•┊•×•0××>0│ +│006f4c40│ 10 00 53 00 07 00 00 00 ┊ 02 01 0c 00 d0 41 03 0a │•0S0•000┊••_0×A•_│ +│006f4c50│ 00 00 00 00 01 01 06 00 ┊ 00 02 7f 01 04 00 02 01 │0000•••0┊0••••0••│ +│006f4c60│ 0c 00 d0 41 03 0a 00 00 ┊ 00 00 01 01 06 00 03 1c │_0×A•_00┊00•••0••│ +│006f4c70│ 01 01 06 00 00 00 7f ff ┊ 04 00 e1 04 16 00 30 00 │•••000•×┊•0ו•000│ +│006f4c80│ 39 e9 b5 60 cf 0f 27 42 ┊ ba 83 6b be d4 5b c0 e3 │9××`ו'B┊××k××[××│ +│006f4c90│ e2 e5 1a 00 6c 00 42 00 ┊ 6f 00 6f 00 74 00 53 00 │×ו0l0B0┊o0o0t0S0│ +│006f4ca0│ 74 00 61 00 74 00 65 00 ┊ 00 00 e3 50 10 00 30 00 │t0a0t0e0┊00×P•000│ +│006f4cb0│ 6c 00 03 00 00 00 01 00 ┊ 00 00 e3 18 06 01 2a 00 │l0•000•0┊00ו••*0│ +│006f4cc0│ 60 00 07 00 00 00 00 70 ┊ c1 da 00 00 a0 df 18 9f │`0•0000p┊××00×ו×│ +│006f4cd0│ f6 da 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 13 │××000000┊0000000•│ +│006f4ce0│ 00 00 00 00 00 00 00 00 ┊ a0 db 00 00 60 1f 01 00 │00000000┊××00`••0│ +│006f4cf0│ 00 00 00 00 00 fb 00 00 ┊ 00 00 00 50 22 00 00 40 │00000×00┊000P"00@│ +│006f4d00│ 02 00 00 50 00 00 00 00 ┊ a0 df 00 00 00 db 00 00 │•00P0000┊××000×00│ +│006f4d10│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 70 f0 da 00 00 │00000000┊000p××00│ +│006f4d20│ 00 00 00 00 05 00 af d6 ┊ d5 9d dd 4d a4 2a 00 70 │0000•0××┊×××M×*0p│ +│006f4d30│ f5 da 00 00 00 00 00 c0 ┊ e3 da 00 00 00 00 6f 64 │××00000×┊××0000od│ +│006f4d40│ f0 da 00 00 00 00 00 a0 ┊ f6 da 00 00 00 00 b0 09 │××00000×┊××0000×_│ +│006f4d50│ 0e 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 50 │•0000000┊0000000P│ +│006f4d60│ f0 da 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │××000000┊00000000│ +│006f4d70│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│* │ ┊ │ ┊ │ +│006f4dc0│ 83 a4 0d 00 1f 00 28 00 ┊ 07 00 00 00 01 e3 a5 0d │××_0•0(0┊•000•××_│ +│006f4dd0│ 00 1f 00 28 00 07 00 00 ┊ 00 00 e1 ff 16 00 32 00 │0•0(0•00┊00×ו020│ +│006f4de0│ 3f 70 1c 71 85 c2 10 4b ┊ a3 b0 36 ec bd 3c 8b e2 │?p•q×וK┊××6××<××│ +│006f4df0│ e2 bd 2a 00 6f 00 43 00 ┊ 61 00 70 00 73 00 75 00 │××*0o0C0┊a0p0s0u0│ +│006f4e00│ 6c 00 65 00 55 00 70 00 ┊ 64 00 61 00 74 00 65 00 │l0e0U0p0┊d0a0t0e0│ +│006f4e10│ 44 00 61 00 74 00 61 00 ┊ 00 00 83 15 14 00 32 00 │D0a0t0a0┊00ו•020│ +│006f4e20│ 6f 00 07 00 00 00 18 40 ┊ 00 d7 00 00 00 00 83 43 │o0•000•@┊0×0000×C│ +│006f4e30│ 14 00 32 00 6f 00 07 00 ┊ 00 00 00 00 00 01 00 00 │•020o0•0┊00000•00│ +│006f4e40│ 00 00 e1 5b 16 00 33 00 ┊ 28 5a 70 48 4e ff 73 45 │00×[•030┊(ZpHN×sE│ +│006f4e50│ 81 64 a0 26 96 3d 80 1f ┊ e2 9e 2a 00 70 00 4c 00 │×d×&×=ו┊××*0p0L0│ +│006f4e60│ 65 00 6e 00 6f 00 76 00 ┊ 6f 00 53 00 65 00 63 00 │e0n0o0v0┊o0S0e0c0│ +│006f4e70│ 75 00 72 00 65 00 46 00 ┊ 6c 00 61 00 73 00 68 00 │u0r0e0F0┊l0a0s0h0│ +│006f4e80│ 00 00 e3 48 0d 00 33 00 ┊ 70 00 07 00 00 00 01 e3 │00×H_030┊p0•000•×│ +│006f4e90│ bd 10 00 13 00 15 00 07 ┊ 00 00 00 04 00 00 00 83 │ו0•0•0•┊000•000×│ +│006f4ea0│ 9b 0d 00 22 00 2e 00 07 ┊ 00 00 00 01 e3 55 14 00 │×_0"0.0•┊000•×U•0│ +│006f4eb0│ 23 00 2f 00 07 00 00 00 ┊ 18 82 cb d9 00 00 00 00 │#0/0•000┊•×××0000│ +│006f4ec0│ e3 9c 0d 00 22 00 2e 00 ┊ 07 00 00 00 00 e3 b7 3c │××_0"0.0┊•0000××<│ +│006f4ed0│ 00 15 00 1b 00 07 00 00 ┊ 00 ff ff ff ff 00 00 00 │0•0•0•00┊0××××000│ +│006f4ee0│ 00 18 be aa cc 00 00 00 ┊ 00 f8 32 c7 d7 00 00 00 │0•×××000┊0×2××000│ +│006f4ef0│ 00 89 8c f5 fe 4b f7 a8 ┊ 4a a9 a5 03 b5 ab 82 23 │0××××K××┊J×ו×××#│ +│006f4f00│ 2d 07 00 00 00 00 00 00 ┊ 00 e3 bb 22 00 10 00 53 │-•000000┊0××"0•0S│ +│006f4f10│ 00 07 00 00 00 02 01 0c ┊ 00 d0 41 03 0a 00 00 00 │0•000••_┊0×A•_000│ +│006f4f20│ 00 01 01 06 00 00 02 7f ┊ ff 04 00 ff ff ff ff ff │0•••00••┊ו0×××××│ +│006f4f30│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ +│* │ ┊ │ ┊ │ +│00700000│ 00 ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │0×××××××┊××××××××│ +│00700010│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ +│* │ ┊ │ ┊ │ │00710000│ 5f 46 4c 41 53 48 5f 4d ┊ 41 50 15 00 00 00 00 00 │_FLASH_M┊AP•00000│ │00710010│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ │00710020│ 00 00 01 00 00 00 c2 ff ┊ 00 00 00 00 00 00 29 00 │00•000××┊000000)0│ @@ -203650,6 +204835,512 @@ │00711030│ 58 00 32 51 00 00 00 01 ┊ 30 00 00 00 00 10 00 00 │X02Q000•┊00000•00│ │00711040│ 00 00 00 00 00 00 00 00 ┊ ff ff ff ff ff ff ff ff │00000000┊××××××××│ │00711050│ ff ff ff ff ff ff ff ff ┊ ff ff ff ff ff ff ff ff │××××××××┊××××××××│ +│* │ ┊ │ ┊ │ +│00712000│ ec 4a 14 00 45 56 53 41 ┊ 02 00 00 00 00 70 01 00 │×J•0EVSA┊•0000p•0│ +│00712010│ 00 00 00 00 ed ca 16 00 ┊ 0f 00 cb b2 19 d7 3a 3d │0000×ו0┊•0×ו×:=│ +│00712020│ 96 45 a3 bc da d0 0e 67 ┊ 65 6f ed 02 16 00 10 00 │×E×××וg┊eoו•0•0│ +│00712030│ 61 df e4 8b ca 93 d2 11 ┊ aa 0d 00 e0 98 03 2b 8c │a×××××ו┊×_0×ו+×│ +│00712040│ ed f5 16 00 11 00 41 90 ┊ 5b 95 3a 13 cf 4b 90 d1 │×ו0•0A×┊[×:•×K××│ +│00712050│ 97 e1 69 3c 0e 30 ee 1f ┊ 0c 00 0f 00 64 00 62 00 │××i<•0ו┊_0•0d0b0│ +│00712060│ 00 00 ee a4 0e 00 10 00 ┊ 64 00 62 00 78 00 00 00 │00×ו0•0┊d0b0x000│ +│00712070│ ee 06 0e 00 11 00 4b 00 ┊ 45 00 4b 00 00 00 ee 47 │ו•0•0K0┊E0K000×G│ +│00712080│ 0c 00 12 00 50 00 4b 00 ┊ 00 00 ef d8 8d 10 0f 00 │_0•0P0K0┊00××ו•0│ +│00712090│ 0f 00 27 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │•0'00000┊00000000│ +│007120a0│ 00 00 00 00 00 00 26 16 ┊ c4 c1 4c 50 92 40 ac a9 │000000&•┊××LP×@××│ +│007120b0│ 41 f9 36 93 43 28 4c 00 ┊ 00 00 00 00 00 00 30 00 │A×6×C(L0┊00000000│ +│007120c0│ 00 00 b6 c7 ac 7f 7f 12 ┊ 9c 4e 9c 5d 08 0f 98 99 │00××ו••┊×N×]••××│ +│007120d0│ 43 45 14 e6 2a 49 05 e1 ┊ 91 89 e7 08 28 98 31 65 │CE•×*I•×┊××ו(×1e│ +│007120e0│ 93 9a fc 0a 33 1d 0b 41 ┊ 5f 33 32 b0 e8 18 a8 27 │×××_3••A┊_32×ו×'│ +│007120f0│ f4 36 a1 59 c0 a5 e4 94 ┊ a7 4a 87 b5 ab 15 5c 2b │×6×Y××××┊×J××ו\+│ +│00712100│ f0 72 07 06 00 00 00 00 ┊ 00 00 eb 05 00 00 bd 9a │×r••0000┊00ו00××│ +│00712110│ fa 77 59 03 32 4d bd 60 ┊ 28 f4 e7 8f 78 4b 30 82 │×wY•2M×`┊(×××xK0×│ +│00712120│ 05 d7 30 82 03 bf a0 03 ┊ 02 01 02 02 0a 61 07 76 │•×0ו×ו┊••••_a•v│ +│00712130│ 56 00 00 00 00 00 08 30 ┊ 0d 06 09 2a 86 48 86 f7 │V00000•0┊_•_*×H××│ +│00712140│ 0d 01 01 0b 05 00 30 81 ┊ 88 31 0b 30 09 06 03 55 │_••••00×┊×1•0_••U│ +│00712150│ 04 06 13 02 55 53 31 13 ┊ 30 11 06 03 55 04 08 13 │••••US1•┊0•••U•••│ +│00712160│ 0a 57 61 73 68 69 6e 67 ┊ 74 6f 6e 31 10 30 0e 06 │_Washing┊ton1•0••│ +│00712170│ 03 55 04 07 13 07 52 65 ┊ 64 6d 6f 6e 64 31 1e 30 │•U••••Re┊dmond1•0│ +│00712180│ 1c 06 03 55 04 0a 13 15 ┊ 4d 69 63 72 6f 73 6f 66 │•••U•_••┊Microsof│ +│00712190│ 74 20 43 6f 72 70 6f 72 ┊ 61 74 69 6f 6e 31 32 30 │t Corpor┊ation120│ +│007121a0│ 30 06 03 55 04 03 13 29 ┊ 4d 69 63 72 6f 73 6f 66 │0••U•••)┊Microsof│ +│007121b0│ 74 20 52 6f 6f 74 20 43 ┊ 65 72 74 69 66 69 63 61 │t Root C┊ertifica│ +│007121c0│ 74 65 20 41 75 74 68 6f ┊ 72 69 74 79 20 32 30 31 │te Autho┊rity 201│ +│007121d0│ 30 30 1e 17 0d 31 31 31 ┊ 30 31 39 31 38 34 31 34 │00••_111┊01918414│ +│007121e0│ 32 5a 17 0d 32 36 31 30 ┊ 31 39 31 38 35 31 34 32 │2Z•_2610┊19185142│ +│007121f0│ 5a 30 81 84 31 0b 30 09 ┊ 06 03 55 04 06 13 02 55 │Z0××1•0_┊••U••••U│ +│00712200│ 53 31 13 30 11 06 03 55 ┊ 04 08 13 0a 57 61 73 68 │S1•0•••U┊•••_Wash│ +│00712210│ 69 6e 67 74 6f 6e 31 10 ┊ 30 0e 06 03 55 04 07 13 │ington1•┊0•••U•••│ +│00712220│ 07 52 65 64 6d 6f 6e 64 ┊ 31 1e 30 1c 06 03 55 04 │•Redmond┊1•0•••U•│ +│00712230│ 0a 13 15 4d 69 63 72 6f ┊ 73 6f 66 74 20 43 6f 72 │_••Micro┊soft Cor│ +│00712240│ 70 6f 72 61 74 69 6f 6e ┊ 31 2e 30 2c 06 03 55 04 │poration┊1.0,••U•│ +│00712250│ 03 13 25 4d 69 63 72 6f ┊ 73 6f 66 74 20 57 69 6e │••%Micro┊soft Win│ +│00712260│ 64 6f 77 73 20 50 72 6f ┊ 64 75 63 74 69 6f 6e 20 │dows Pro┊duction │ +│00712270│ 50 43 41 20 32 30 31 31 ┊ 30 82 01 22 30 0d 06 09 │PCA 2011┊0ו"0_•_│ +│00712280│ 2a 86 48 86 f7 0d 01 01 ┊ 01 05 00 03 82 01 0f 00 │*×H××_••┊••0•×••0│ +│00712290│ 30 82 01 0a 02 82 01 01 ┊ 00 dd 0c bb a2 e4 2e 09 │0ו_•×••┊0×_×××._│ +│007122a0│ e3 e7 c5 f7 96 69 bc 00 ┊ 21 bd 69 33 33 ef ad 04 │×××××i×0┊!×i33×ו│ +│007122b0│ cb 54 80 ee 06 83 bb c5 ┊ 20 84 d9 f7 d2 8b f3 38 │×T×ו×××┊ ××××××8│ +│007122c0│ b0 ab a4 ad 2d 7c 62 79 ┊ 05 ff e3 4a 3f 04 35 20 │××××-|by┊•××J?•5 │ +│007122d0│ 70 e3 c4 e7 6b e0 9c c0 ┊ 36 75 e9 8a 31 dd 8d 70 │p×××k×××┊6u××1××p│ +│007122e0│ e5 dc 37 b5 74 46 96 28 ┊ 5b 87 60 23 2c bf dc 47 │××7×tF×(┊[×`#,××G│ +│007122f0│ a5 67 f7 51 27 9e 72 eb ┊ 07 a6 c9 b9 1e 3b 53 35 │×g×Q'×r×┊•××ו;S5│ +│00712300│ 7c e5 d3 ec 27 b9 87 1c ┊ fe b9 c9 23 09 6f a8 46 │|×××'×ו┊×××#_o×F│ +│00712310│ 91 c1 6e 96 3c 41 d3 cb ┊ a3 3f 5d 02 6a 4d ec 69 │××n×h┊ttp://ww│ +│007124b0│ 77 2e 6d 69 63 72 6f 73 ┊ 6f 66 74 2e 63 6f 6d 2f │w.micros┊oft.com/│ +│007124c0│ 70 6b 69 2f 63 65 72 74 ┊ 73 2f 4d 69 63 52 6f 6f │pki/cert┊s/MicRoo│ +│007124d0│ 43 65 72 41 75 74 5f 32 ┊ 30 31 30 2d 30 36 2d 32 │CerAut_2┊010-06-2│ +│007124e0│ 33 2e 63 72 74 30 0d 06 ┊ 09 2a 86 48 86 f7 0d 01 │3.crt0_•┊_*×H××_•│ +│007124f0│ 01 0b 05 00 03 82 02 01 ┊ 00 14 fc 7c 71 51 a5 79 │•••0•×••┊0•×|qQ×y│ +│00712500│ c2 6e b2 ef 39 3e bc 3c ┊ 52 0f 6e 2b 3f 10 13 73 │×n××9>×<┊R•n+?••s│ +│00712510│ fe a8 68 d0 48 a6 34 4d ┊ 8a 96 05 26 ee 31 46 90 │××h×H×4M┊×ו&×1F×│ +│00712520│ 61 79 d6 ff 38 2e 45 6b ┊ f4 c0 e5 28 b8 da 1d 8f │ay××8.Ek┊×××(×ו×│ +│00712530│ 8a db 09 d7 1a c7 4c 0a ┊ 36 66 6a 8c ec 1b d7 04 │××_ו×L_┊6fj×וו│ +│00712540│ 90 a8 18 17 a4 9b b9 e2 ┊ 40 32 36 76 c4 c1 5a c6 │×ו•××××┊@26v××Z×│ +│00712550│ bf e4 04 c0 ea 16 d3 ac ┊ c3 68 ef 62 ac dd 54 6c │×ו×ו××┊×h×b××Tl│ +│00712560│ 50 30 58 a6 eb 7c fe 94 ┊ a7 4e 8e f4 ec 7c 86 73 │P0X××|××┊×N×××|×s│ +│00712570│ 57 c2 52 21 73 34 5a f3 ┊ a3 8a 56 c8 04 da 07 09 │W×R!s4Z×┊××Vוו_│ +│00712580│ ed f8 8b e3 ce f4 7e 8e ┊ ae f0 f6 0b 8a 08 fb 3f │××××××~×┊××וו×?│ +│00712590│ c9 1d 72 7f 53 b8 eb be ┊ 63 e0 e3 3d 31 65 b0 81 │וr•S×××┊c××=1e××│ +│007125a0│ e5 f2 ac cd 16 a4 9f 3d ┊ a8 b1 9b c2 42 d0 90 84 │×××ו××=┊××××B×××│ +│007125b0│ 5f 54 1d ff 89 ea ba 1d ┊ 47 90 6f b0 73 4e 41 9f │_T•×××ו┊G×o×sNA×│ +│007125c0│ 40 9f 5f e5 a1 2a b2 11 ┊ 91 73 8a 21 28 f0 ce de │@×_××*ו┊×s×!(×××│ +│007125d0│ 73 39 5f 3e ab 5c 60 ec ┊ df 03 10 a8 d3 09 e9 f4 │s9_>×\`×┊ו•××_××│ +│007125e0│ f6 96 85 b6 7f 51 88 66 ┊ 47 19 8d a2 b0 12 3d 81 │×××וQ×f┊G•××ו=×│ +│007125f0│ 2a 68 05 77 bb 91 4c 62 ┊ 7b b6 c1 07 c7 ba 7a 87 │*h•w××Lb┊{×ו××z×│ +│00712600│ 34 03 0e 4b 62 7a 99 e9 ┊ ca fc ce 4a 37 c9 2d a4 │4••Kbz××┊×××J7×-×│ +│00712610│ 57 7c 1c fe 3d dc b8 0f ┊ 5a fa d6 c4 b3 02 85 02 │W|•×=×ו┊Z×××וו│ +│00712620│ 3a ea b3 d9 6e e4 69 21 ┊ 37 de 81 d1 f6 75 19 05 │:×××n×i!┊7××××u••│ +│00712630│ 67 d3 93 57 5e 29 1b 39 ┊ c8 ee 2d e1 cd e4 45 73 │g××W^)•9┊××-×××Es│ +│00712640│ 5b d0 d2 ce 7a ab 16 19 ┊ 82 46 58 d0 5e 9d 81 b3 │[×××zו•┊×FX×^×××│ +│00712650│ 67 af 6c 35 f2 bc e5 3f ┊ 24 e2 35 a2 0a 75 06 f6 │g×l5×××?┊$×5×_u•×│ +│00712660│ 18 56 99 d4 78 2c d1 05 ┊ 1b eb d0 88 01 9d aa 10 │•V××x,ו┊•××ו×ו│ +│00712670│ f1 05 df ba 7e 2c 63 b7 ┊ 06 9b 23 21 c4 f9 78 6c │ו××~,c×┊•×#!××xl│ +│00712680│ e2 58 17 06 36 2b 91 12 ┊ 03 cc a4 d9 f2 2d ba f9 │×X••6+ו┊•××××-××│ +│00712690│ 94 9d 40 ed 18 45 f1 ce ┊ 8a 5c 6b 3e ab 03 d3 70 │××@וE××┊×\k>ו×p│ +│007126a0│ 18 2a 0a 6a e0 5f 47 d1 ┊ d5 63 0a 32 f2 af d7 36 │•*_j×_G×┊×c_2×××6│ +│007126b0│ 1f 2a 70 5a e5 42 59 08 ┊ 71 4b 57 ba 7e 83 81 f0 │•*pZ×BY•┊qKW×~×××│ +│007126c0│ 21 3c f4 1c c1 c5 b9 90 ┊ 93 0e 88 45 93 86 e9 b1 │!<ו××××┊ו×E××××│ +│007126d0│ 20 99 be 98 cb c5 95 a4 ┊ 5d 62 d6 a0 63 08 20 bd │ ×××××××┊]b××c• ×│ +│007126e0│ 75 10 77 7d 3d f3 45 b9 ┊ 9f 97 9f cb 57 80 6f 33 │u•w}=×E×┊××××W×o3│ +│007126f0│ a9 04 cf 77 a4 62 1c 59 ┊ 7e a1 59 c0 a5 e4 94 a7 │ו×w×b•Y┊~×Y×××××│ +│00712700│ 4a 87 b5 ab 15 5c 2b f0 ┊ 72 40 06 00 00 00 00 00 │J××ו\+×┊r@•00000│ +│00712710│ 00 24 06 00 00 bd 9a fa ┊ 77 59 03 32 4d bd 60 28 │0$•00×××┊wY•2M×`(│ +│00712720│ f4 e7 8f 78 4b 30 82 06 ┊ 10 30 82 03 f8 a0 03 02 │×××xK0ו┊•0ו×ו•│ +│00712730│ 01 02 02 0a 61 08 d3 c4 ┊ 00 00 00 00 00 04 30 0d │•••_a•××┊00000•0_│ +│00712740│ 06 09 2a 86 48 86 f7 0d ┊ 01 01 0b 05 00 30 81 91 │•_*×H××_┊••••00××│ +│00712750│ 31 0b 30 09 06 03 55 04 ┊ 06 13 02 55 53 31 13 30 │1•0_••U•┊•••US1•0│ +│00712760│ 11 06 03 55 04 08 13 0a ┊ 57 61 73 68 69 6e 67 74 │•••U•••_┊Washingt│ +│00712770│ 6f 6e 31 10 30 0e 06 03 ┊ 55 04 07 13 07 52 65 64 │on1•0•••┊U••••Red│ +│00712780│ 6d 6f 6e 64 31 1e 30 1c ┊ 06 03 55 04 0a 13 15 4d │mond1•0•┊••U•_••M│ +│00712790│ 69 63 72 6f 73 6f 66 74 ┊ 20 43 6f 72 70 6f 72 61 │icrosoft┊ Corpora│ +│007127a0│ 74 69 6f 6e 31 3b 30 39 ┊ 06 03 55 04 03 13 32 4d │tion1;09┊••U•••2M│ +│007127b0│ 69 63 72 6f 73 6f 66 74 ┊ 20 43 6f 72 70 6f 72 61 │icrosoft┊ Corpora│ +│007127c0│ 74 69 6f 6e 20 54 68 69 ┊ 72 64 20 50 61 72 74 79 │tion Thi┊rd Party│ +│007127d0│ 20 4d 61 72 6b 65 74 70 ┊ 6c 61 63 65 20 52 6f 6f │ Marketp┊lace Roo│ +│007127e0│ 74 30 1e 17 0d 31 31 30 ┊ 36 32 37 32 31 32 32 34 │t0••_110┊62721224│ +│007127f0│ 35 5a 17 0d 32 36 30 36 ┊ 32 37 32 31 33 32 34 35 │5Z•_2606┊27213245│ +│00712800│ 5a 30 81 81 31 0b 30 09 ┊ 06 03 55 04 06 13 02 55 │Z0××1•0_┊••U••••U│ +│00712810│ 53 31 13 30 11 06 03 55 ┊ 04 08 13 0a 57 61 73 68 │S1•0•••U┊•••_Wash│ +│00712820│ 69 6e 67 74 6f 6e 31 10 ┊ 30 0e 06 03 55 04 07 13 │ington1•┊0•••U•••│ +│00712830│ 07 52 65 64 6d 6f 6e 64 ┊ 31 1e 30 1c 06 03 55 04 │•Redmond┊1•0•••U•│ +│00712840│ 0a 13 15 4d 69 63 72 6f ┊ 73 6f 66 74 20 43 6f 72 │_••Micro┊soft Cor│ +│00712850│ 70 6f 72 61 74 69 6f 6e ┊ 31 2b 30 29 06 03 55 04 │poration┊1+0)••U•│ +│00712860│ 03 13 22 4d 69 63 72 6f ┊ 73 6f 66 74 20 43 6f 72 │••"Micro┊soft Cor│ +│00712870│ 70 6f 72 61 74 69 6f 6e ┊ 20 55 45 46 49 20 43 41 │poration┊ UEFI CA│ +│00712880│ 20 32 30 31 31 30 82 01 ┊ 22 30 0d 06 09 2a 86 48 │ 20110ו┊"0_•_*×H│ +│00712890│ 86 f7 0d 01 01 01 05 00 ┊ 03 82 01 0f 00 30 82 01 │××_••••0┊•×••00ו│ +│007128a0│ 0a 02 82 01 01 00 a5 08 ┊ 6c 4c c7 45 09 6a 4b 0c │_•×••0ו┊lL×E_jK_│ +│007128b0│ a4 c0 87 7f 06 75 0c 43 ┊ 01 54 64 e0 16 7f 07 ed │××ו•u_C┊•Tdו••×│ +│007128c0│ 92 7d 0b b2 73 bf 0c 0a ┊ c6 4a 45 61 a0 c5 16 2d │×}•×s×__┊×JEa×ו-│ +│007128d0│ 96 d3 f5 2b a0 fb 4d 49 ┊ 9b 41 80 90 3c b9 54 fd │×××+××MI┊×A××<×T×│ +│007128e0│ e6 bc d1 9d c4 a4 18 8a ┊ 7f 41 8a 5c 59 83 68 32 │×××××ו×┊•A×\Y×h2│ +│007128f0│ bb 8c 47 c9 ee 71 bc 21 ┊ 4f 9a 8a 7c ff 44 3f 8d │××G××q×!┊O××|×D?×│ +│00712900│ 8f 32 b2 26 48 ae 75 b5 ┊ ee c9 4c 1e 4a 19 7e e4 │×2×&H×u×┊××L•J•~×│ +│00712910│ 82 9a 1d 78 77 4d 0c b0 ┊ bd f6 0f d3 16 d3 bc fa │×וxwM_×┊×וו×××│ +│00712920│ 2b a5 51 38 5d f5 fb ba ┊ db 78 02 db ff ec 0a 1b │+×Q8]×××┊×x•×××_•│ +│00712930│ 96 d5 83 b8 19 13 e9 b6 ┊ c0 7b 40 7b e1 1f 28 27 │×××ו•××┊×{@{ו('│ +│00712940│ c9 fa ef 56 5e 1c e6 7e ┊ 94 7e c0 f0 44 b2 79 39 │×××V^•×~┊×~××D×y9│ +│00712950│ e5 da b2 62 8b 4d bf 38 ┊ 70 e2 68 24 14 c9 33 a4 │×××b×M×8┊p×h$•×3×│ +│00712960│ 08 37 d5 58 69 5e d3 7c ┊ ed c1 04 53 08 e7 4e b0 │•7×Xi^×|┊×וS•×N×│ +│00712970│ 2a 87 63 08 61 6f 63 15 ┊ 59 ea b2 2b 79 d7 0c 61 │*×c•aoc•┊Y××+y×_a│ +│00712980│ 67 8a 5b fd 5e ad 87 7f ┊ ba 86 67 4f 71 58 12 22 │g×[×^×ו┊××gOqX•"│ +│00712990│ 04 22 22 ce 8b ef 54 71 ┊ 00 ce 50 35 58 76 95 08 │•""×××Tq┊0×P5Xvו│ +│007129a0│ ee 6a b1 a2 01 d5 02 03 ┊ 01 00 01 a3 82 01 76 30 │×j×וו•┊•0•×וv0│ +│007129b0│ 82 01 72 30 12 06 09 2b ┊ 06 01 04 01 82 37 15 01 │וr0••_+┊••••×7••│ +│007129c0│ 04 05 02 03 01 00 01 30 ┊ 23 06 09 2b 06 01 04 01 │•••••0•0┊#•_+••••│ +│007129d0│ 82 37 15 02 04 16 04 14 ┊ f8 c1 6b b7 7f 77 53 4a │×7••••••┊××kוwSJ│ +│007129e0│ f3 25 37 1d 4e a1 26 7b ┊ 0f 20 70 80 30 1d 06 03 │×%7•N×&{┊• p×0•••│ +│007129f0│ 55 1d 0e 04 16 04 14 13 ┊ ad bf 43 09 bd 82 70 9c │U•••••••┊××C_××p×│ +│00712a00│ 8c d5 4f 31 6e d5 22 98 ┊ 8a 1b d4 30 19 06 09 2b │××O1n×"×┊ו×0••_+│ +│00712a10│ 06 01 04 01 82 37 14 02 ┊ 04 0c 1e 0a 00 53 00 75 │••••×7••┊•_•_0S0u│ +│00712a20│ 00 62 00 43 00 41 30 0b ┊ 06 03 55 1d 0f 04 04 03 │0b0C0A0•┊••U•••••│ +│00712a30│ 02 01 86 30 0f 06 03 55 ┊ 1d 13 01 01 ff 04 05 30 │••×0•••U┊••••×••0│ +│00712a40│ 03 01 01 ff 30 1f 06 03 ┊ 55 1d 23 04 18 30 16 80 │•••×0•••┊U•#••0•×│ +│00712a50│ 14 45 66 52 43 e1 7e 58 ┊ 11 bf d6 4e 9e 23 55 08 │•EfRC×~X┊•××N×#U•│ +│00712a60│ 3b 3a 22 6a a8 30 5c 06 ┊ 03 55 1d 1f 04 55 30 53 │;:"j×0\•┊•U•••U0S│ +│00712a70│ 30 51 a0 4f a0 4d 86 4b ┊ 68 74 74 70 3a 2f 2f 63 │0Q×O×M×K┊http://c│ +│00712a80│ 72 6c 2e 6d 69 63 72 6f ┊ 73 6f 66 74 2e 63 6f 6d │rl.micro┊soft.com│ +│00712a90│ 2f 70 6b 69 2f 63 72 6c ┊ 2f 70 72 6f 64 75 63 74 │/pki/crl┊/product│ +│00712aa0│ 73 2f 4d 69 63 43 6f 72 ┊ 54 68 69 50 61 72 4d 61 │s/MicCor┊ThiParMa│ +│00712ab0│ 72 52 6f 6f 5f 32 30 31 ┊ 30 2d 31 30 2d 30 35 2e │rRoo_201┊0-10-05.│ +│00712ac0│ 63 72 6c 30 60 06 08 2b ┊ 06 01 05 05 07 01 01 04 │crl0`••+┊••••••••│ +│00712ad0│ 54 30 52 30 50 06 08 2b ┊ 06 01 05 05 07 30 02 86 │T0R0P••+┊•••••0•×│ +│00712ae0│ 44 68 74 74 70 3a 2f 2f ┊ 77 77 77 2e 6d 69 63 72 │Dhttp://┊www.micr│ +│00712af0│ 6f 73 6f 66 74 2e 63 6f ┊ 6d 2f 70 6b 69 2f 63 65 │osoft.co┊m/pki/ce│ +│00712b00│ 72 74 73 2f 4d 69 63 43 ┊ 6f 72 54 68 69 50 61 72 │rts/MicC┊orThiPar│ +│00712b10│ 4d 61 72 52 6f 6f 5f 32 ┊ 30 31 30 2d 31 30 2d 30 │MarRoo_2┊010-10-0│ +│00712b20│ 35 2e 63 72 74 30 0d 06 ┊ 09 2a 86 48 86 f7 0d 01 │5.crt0_•┊_*×H××_•│ +│00712b30│ 01 0b 05 00 03 82 02 01 ┊ 00 35 08 42 ff 30 cc ce │•••0•×••┊05•B×0××│ +│00712b40│ f7 76 0c ad 10 68 58 35 ┊ 29 46 32 76 27 7c ef 12 │×v_וhX5┊)F2v'|ו│ +│00712b50│ 41 27 42 1b 4a aa 6d 81 ┊ 38 48 59 13 55 f3 e9 58 │A'B•J×m×┊8HY•U××X│ +│00712b60│ 34 a6 16 0b 82 aa 5d ad ┊ 82 da 80 83 41 06 8f b4 │4ו•××]×┊××××A•××│ +│00712b70│ 1d f2 03 b9 f3 1a 5d 1b ┊ f1 50 90 f9 b3 55 84 42 │•×•×ו]•┊×P×××U×B│ +│00712b80│ 28 1c 20 bd b2 ae 51 14 ┊ c5 c0 ac 97 95 21 1c 90 │(• ×××Q•┊×××××!•×│ +│00712b90│ db 0f fc 77 9e 95 73 91 ┊ 88 ca bd bd 52 b9 05 50 │ו×w××s×┊××××RוP│ +│00712ba0│ 0d df 57 9e a0 61 ed 0d ┊ e5 6d 25 d9 40 0f 17 40 │_×W××a×_┊×m%×@••@│ +│00712bb0│ c8 ce a3 4a c2 4d af 9a ┊ 12 1d 08 54 8f bd c7 bc │×××J×M××┊•••T××××│ +│00712bc0│ b9 2b 3d 49 2b 1f 32 fc ┊ 6a 21 69 4f 9b c8 7e 42 │×+=I+•2×┊j!iO××~B│ +│00712bd0│ 34 fc 36 06 17 8b 8f 20 ┊ 40 c0 b3 9a 25 75 27 cd │4×6••×× ┊@×××%u'×│ +│00712be0│ c9 03 a3 f6 5d d1 e7 36 ┊ 54 7a b9 50 b5 d3 12 d1 │ו××]××6┊Tz×P×ו×│ +│00712bf0│ 07 bf bb 74 df dc 1e 8f ┊ 80 d5 ed 18 f4 2f 14 16 │•××t×ו×┊××ו×/••│ +│00712c00│ 6b 2f de 66 8c b0 23 e5 ┊ c7 84 d8 ed ea c1 33 82 │k/×f××#×┊××××××3×│ +│00712c10│ ad 56 4b 18 2d f1 68 95 ┊ 07 cd cf f0 72 f0 ae bb │×VK•-×h×┊•×××r×××│ +│00712c20│ dd 86 85 98 2c 21 4c 33 ┊ 2b f0 0f 4a f0 68 87 b5 │××××,!L3┊+וJ×h××│ +│00712c30│ 92 55 32 75 a1 6a 82 6a ┊ 3c a3 25 11 a4 ed ad d7 │×U2u×j×j┊<×%•××××│ +│00712c40│ 04 ae cb d8 40 59 a0 84 ┊ d1 95 4c 62 91 22 1a 74 │•×××@Y××┊××Lb×"•t│ +│00712c50│ 1d 8c 3d 47 0e 44 a6 e4 ┊ b0 9b 34 35 b1 fa b6 53 │•×=G•D××┊××45×××S│ +│00712c60│ a8 2c 81 ec a4 05 71 c8 ┊ 9d b8 ba e8 1b 44 66 e4 │×,××וq×┊×××וDf×│ +│00712c70│ 47 54 0e 8e 56 7f b3 9f ┊ 16 98 b2 86 d0 68 3e 90 │GT•×V•××┊•××××h>×│ +│00712c80│ 23 b5 2f 5e 8f 50 85 8d ┊ c6 8d 82 5f 41 a1 f4 2e │#×/^×P××┊×××_A××.│ +│00712c90│ 0d e0 99 d2 6c 75 e4 b6 ┊ 69 b5 21 86 fa 07 d1 f6 │_×××lu××┊i×!×ו××│ +│00712ca0│ e2 4d d1 da ad 2c 77 53 ┊ 1e 25 32 37 c7 6c 52 72 │×M×××,wS┊•%27×lRr│ +│00712cb0│ 95 86 b0 f1 35 61 6a 19 ┊ f5 b2 3b 81 50 56 a6 32 │××××5aj•┊××;×PV×2│ +│00712cc0│ 2d fe a2 89 f9 42 86 27 ┊ 18 55 a1 82 ca 5a 9b f8 │-××××B×'┊•U×××Z××│ +│00712cd0│ 30 98 54 14 a6 47 96 25 ┊ 2f c8 26 e4 41 94 1a 5c │0×T•×G×%┊/×&×Aו\│ +│00712ce0│ 02 3f e5 96 e3 85 5b 3c ┊ 3e 3f bb 47 16 72 55 e2 │•?××××[<┊>?×G•rU×│ +│00712cf0│ 25 22 b1 d9 7b e7 03 06 ┊ 2a a3 f7 1e 90 46 c3 00 │%"××{ו•┊*×ו×F×0│ +│00712d00│ 0d d6 19 89 e3 0e 35 27 ┊ 62 03 71 15 a6 ef d0 27 │_ו×ו5'┊b•q•×××'│ +│00712d10│ a0 a0 59 37 60 f8 38 94 ┊ b8 e0 78 70 f8 ba 4c 86 │××Y7`×8×┊××xp××L×│ +│00712d20│ 87 94 f6 e0 ae 02 45 ee ┊ 65 c2 b6 a3 7e 69 16 75 │××××וE×┊e×××~i•u│ +│00712d30│ 07 92 9b f5 a6 bc 59 83 ┊ 58 a1 59 c0 a5 e4 94 a7 │•×××××Y×┊X×Y×××××│ +│00712d40│ 4a 87 b5 ab 15 5c 2b f0 ┊ 72 de 03 00 00 00 00 00 │J××ו\+×┊rו00000│ +│00712d50│ 00 c2 03 00 00 b6 c7 ac ┊ 7f 7f 12 9c 4e 9c 5d 08 │0ו00×××┊•••×N×]•│ +│00712d60│ 0f 98 99 43 45 30 82 03 ┊ ae 30 82 02 96 a0 03 02 │•××CE0ו┊×0ו×ו•│ +│00712d70│ 01 02 02 0c 09 45 63 7a ┊ d8 c2 20 df 61 ea 52 44 │•••__Ecz┊×× ×a×RD│ +│00712d80│ 30 0d 06 09 2a 86 48 86 ┊ f7 0d 01 01 0b 05 00 30 │0_•_*×H×┊×_••••00│ +│00712d90│ 6c 31 0b 30 09 06 03 55 ┊ 04 06 13 02 4a 50 31 11 │l1•0_••U┊••••JP1•│ +│00712da0│ 30 0f 06 03 55 04 08 0c ┊ 08 4b 61 6e 61 67 61 77 │0•••U••_┊•Kanagaw│ +│00712db0│ 61 31 11 30 0f 06 03 55 ┊ 04 07 0c 08 59 6f 6b 6f │a1•0•••U┊••_•Yoko│ +│00712dc0│ 68 61 6d 61 31 14 30 12 ┊ 06 03 55 04 0a 0c 0b 4c │hama1•0•┊••U•__•L│ +│00712dd0│ 65 6e 6f 76 6f 20 4c 74 ┊ 64 2e 31 21 30 1f 06 03 │enovo Lt┊d.1!0•••│ +│00712de0│ 55 04 03 0c 18 4c 65 6e ┊ 6f 76 6f 20 4c 74 64 2e │U••_•Len┊ovo Ltd.│ +│00712df0│ 20 52 6f 6f 74 20 43 41 ┊ 20 32 30 31 32 30 1e 17 │ Root CA┊ 20120••│ +│00712e00│ 0d 31 32 30 36 32 39 31 ┊ 30 34 37 33 31 5a 17 0d │_1206291┊04731Z•_│ +│00712e10│ 33 32 30 36 32 34 31 30 ┊ 34 37 33 31 5a 30 6c 31 │32062410┊4731Z0l1│ +│00712e20│ 0b 30 09 06 03 55 04 06 ┊ 13 02 4a 50 31 11 30 0f │•0_••U••┊••JP1•0•│ +│00712e30│ 06 03 55 04 08 0c 08 4b ┊ 61 6e 61 67 61 77 61 31 │••U••_•K┊anagawa1│ +│00712e40│ 11 30 0f 06 03 55 04 07 ┊ 0c 08 59 6f 6b 6f 68 61 │•0•••U••┊_•Yokoha│ +│00712e50│ 6d 61 31 14 30 12 06 03 ┊ 55 04 0a 0c 0b 4c 65 6e │ma1•0•••┊U•__•Len│ +│00712e60│ 6f 76 6f 20 4c 74 64 2e ┊ 31 21 30 1f 06 03 55 04 │ovo Ltd.┊1!0•••U•│ +│00712e70│ 03 0c 18 54 68 69 6e 6b ┊ 50 61 64 20 50 72 6f 64 │•_•Think┊Pad Prod│ +│00712e80│ 75 63 74 20 43 41 20 32 ┊ 30 31 32 30 82 01 22 30 │uct CA 2┊0120ו"0│ +│00712e90│ 0d 06 09 2a 86 48 86 f7 ┊ 0d 01 01 01 05 00 03 82 │_•_*×H××┊_••••0•×│ +│00712ea0│ 01 0f 00 30 82 01 0a 02 ┊ 82 01 01 00 d7 56 37 db │••00ו_•┊ו•0×V7×│ +│00712eb0│ a8 c3 70 67 8e 5f ee 64 ┊ 67 7a 16 04 71 4f 4c c9 │××pg×_×d┊gz••qOL×│ +│00712ec0│ eb 89 2e e9 24 3e eb c7 ┊ e4 a4 74 57 ed d2 5f f3 │××.×$>××┊××tW××_×│ +│00712ed0│ a5 9f 92 8a e3 9f 59 e3 ┊ 98 ae 66 b9 2d 01 fc 75 │××××××Y×┊××f×-•×u│ +│00712ee0│ 47 bb b8 71 b0 b1 e6 64 ┊ 7f 1e 74 16 d6 0a 4c 1d │G××q×××d┊••t•×_L•│ +│00712ef0│ 29 94 e1 61 41 37 37 5e ┊ 17 d0 de 37 6a 4b e4 30 │)××aA77^┊•××7jK×0│ +│00712f00│ 79 62 33 cd a0 da 3e b6 ┊ 62 a0 69 43 27 1a be 51 │yb3×××>×┊b×iC'•×Q│ +│00712f10│ a1 73 61 13 c7 b5 93 0b ┊ 7a b9 25 1f b8 0c e3 fe │×sa•××ו┊z×%•×_××│ +│00712f20│ 14 5b 05 ff 84 58 a2 3b ┊ c0 9e e8 8a 26 49 b9 74 │•[•××X×;┊××××&I×t│ +│00712f30│ 00 0f 5f 1e 12 a3 6a 8b ┊ 73 de 59 35 a4 34 b3 62 │0•_••×j×┊s×Y5×4×b│ +│00712f40│ 70 16 cd 73 87 7c 09 b0 ┊ 77 87 91 e7 99 f7 e5 bc │p•×s×|_×┊w×××××××│ +│00712f50│ 10 52 da d7 57 27 05 54 ┊ 7e 94 62 cc 33 52 1b 5a │•R××W'•T┊~×b×3R•Z│ +│00712f60│ 7b 37 10 14 47 44 2e 13 ┊ 8a d6 62 a5 22 e9 32 54 │{7••GD.•┊××b×"×2T│ +│00712f70│ 66 02 6d 8d 5f f3 82 cf ┊ 48 b0 21 5f ca ca 88 4a │f•m×_×××┊H×!_×××J│ +│00712f80│ 86 5a f1 f6 2d 0b c5 24 ┊ 28 2a 49 90 03 a0 c8 dc │×Z××-•×$┊(*Iו×××│ +│00712f90│ 39 8f 4d 41 d3 8f cb 2b ┊ b9 c5 cf 8c 6e f9 34 2c │9×MA×××+┊××××n×4,│ +│00712fa0│ 13 1f dc c6 c1 db f8 f8 ┊ b5 63 ca ff 02 03 01 00 │••××××××┊×c×ו••0│ +│00712fb0│ 01 a3 50 30 4e 30 1d 06 ┊ 03 55 1d 0e 04 16 04 14 │•×P0N0••┊•U••••••│ +│00712fc0│ 83 8b 1f 54 c1 55 04 63 ┊ f4 5f 98 70 06 40 f1 10 │×וT×U•c┊×_×p•@ו│ +│00712fd0│ 69 26 59 49 30 1f 06 03 ┊ 55 1d 23 04 18 30 16 80 │i&YI0•••┊U•#••0•×│ +│00712fe0│ 14 ef 81 91 f6 cd 17 16 ┊ 41 0a 68 50 6e 54 7e 70 │•××××ו•┊A_hPnT~p│ +│00712ff0│ cd 92 05 61 6b 30 0c 06 ┊ 03 55 1d 13 04 05 30 03 │×וak0_•┊•U••••0•│ +│00713000│ 01 01 ff 30 0d 06 09 2a ┊ 86 48 86 f7 0d 01 01 0b │••×0_•_*┊×H××_•••│ +│00713010│ 05 00 03 82 01 01 00 ab ┊ e4 4e ce fa c2 39 f5 e1 │•0•×••0×┊×N×××9××│ +│00713020│ eb 3c 93 35 a8 a8 9c 95 ┊ 36 18 c4 8e 98 be 47 fd │×<×5××××┊6•××××G×│ +│00713030│ 28 bf 42 28 8b 22 49 9b ┊ 38 23 43 a3 69 05 58 8b │(×B(×"I×┊8#C×i•X×│ +│00713040│ fc 47 f7 81 c5 87 3c 25 ┊ f6 bb db 08 24 b6 9f cd │×G××××<%┊××ו$×××│ +│00713050│ bf 6d 18 d7 22 14 40 01 ┊ 18 73 5f 1f 79 44 cc 74 │×m•×"•@•┊•s_•yD×t│ +│00713060│ fd c8 f9 a9 4b 5b 3b a3 ┊ 80 c4 28 e6 42 15 26 eb │××××K[;×┊××(×B•&×│ +│00713070│ a0 73 ec cb 9a 83 c1 28 ┊ 00 e9 27 ba d0 e6 26 83 │×s×××××(┊0×'×××&×│ +│00713080│ 8a 41 2f 09 2d f4 65 aa ┊ 8b 24 bf d8 c0 8e 12 b8 │×A/_-×e×┊×$×××ו×│ +│00713090│ 01 77 61 f8 9b 61 30 00 ┊ 78 90 5b 23 6c 26 b3 14 │•wa××a00┊x×[#l&ו│ +│007130a0│ b3 24 af 4f a6 a2 ae 43 ┊ 54 8b 3c d6 0c 5b 82 50 │×$×O×××C┊T×<×_[×P│ +│007130b0│ b2 73 27 70 27 4c 6b 40 ┊ 58 d6 e7 24 6a 31 9e 53 │×s'p'Lk@┊X××$j1×S│ +│007130c0│ 0d e8 58 50 42 60 df b7 ┊ 89 da c9 31 00 e0 f3 0f │_×XPB`××┊×××10×ו│ +│007130d0│ 88 c6 d1 9c f3 67 f1 c8 ┊ 4b 36 17 da 04 c6 f8 c4 │×××××g××┊K6•×•×××│ +│007130e0│ 05 89 b3 8f bf 0c 27 55 ┊ df fc da d4 ab 34 9a 0e │•××××_'U┊×××××4ו│ +│007130f0│ 2d 63 1a e2 50 ad c5 5c ┊ 51 ee be ac d7 4a 7d 4d │-c•×P××\┊Q××××J}M│ +│00713100│ dc 51 e1 25 4d 8e cc 46 ┊ 5c 71 d2 46 1b f9 e2 d6 │×Q×%M××F┊\q×F•×××│ +│00713110│ e0 50 64 8a 8e 40 c0 ef ┊ 0a 68 00 0f 00 10 00 27 │×Pd××@××┊_h0•0•0'│ +│00713120│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │00000000┊00000000│ +│00713130│ 00 00 00 26 16 c4 c1 4c ┊ 50 92 40 ac a9 41 f9 36 │000&•××L┊P×@××A×6│ +│00713140│ 93 43 28 4c 00 00 00 00 ┊ 00 00 00 30 00 00 00 b6 │×C(L0000┊0000000×│ +│00713150│ c7 ac 7f 7f 12 9c 4e 9c ┊ 5d 08 0f 98 99 43 45 14 │×ו••×N×┊]••××CE•│ +│00713160│ e6 2a 49 05 e1 91 89 e7 ┊ 08 28 98 31 65 93 9a fc │×*I•××××┊•(×1e×××│ +│00713170│ 0a 33 1d 0b 41 5f 33 32 ┊ b0 e8 18 a8 27 f4 36 ef │_3••A_32┊×ו×'×6×│ +│00713180│ 09 0d 0a 10 00 11 00 27 ┊ 00 00 00 00 00 00 00 00 │___•0•0'┊00000000│ +│00713190│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 a1 59 c0 a5 e4 │00000000┊000×Y×××│ +│007131a0│ 94 a7 4a 87 b5 ab 15 5c ┊ 2b f0 72 d9 03 00 00 00 │××J××ו\┊+×rו000│ +│007131b0│ 00 00 00 bd 03 00 00 b6 ┊ c7 ac 7f 7f 12 9c 4e 9c │000ו00×┊×ו••×N×│ +│007131c0│ 5d 08 0f 98 99 43 45 30 ┊ 82 03 a9 30 82 02 91 a0 │]••××CE0┊ו×0ו××│ +│007131d0│ 03 02 01 02 02 09 00 95 ┊ 52 43 82 8a 5a 65 2e 30 │•••••_0×┊RC××Ze.0│ +│007131e0│ 0d 06 09 2a 86 48 86 f7 ┊ 0d 01 01 0b 05 00 30 6b │_•_*×H××┊_••••00k│ +│007131f0│ 31 0b 30 09 06 03 55 04 ┊ 06 13 02 4a 50 31 11 30 │1•0_••U•┊•••JP1•0│ +│00713200│ 0f 06 03 55 04 08 0c 08 ┊ 4b 61 6e 61 67 61 77 61 │•••U••_•┊Kanagawa│ +│00713210│ 31 11 30 0f 06 03 55 04 ┊ 07 0c 08 59 6f 6b 6f 68 │1•0•••U•┊•_•Yokoh│ +│00713220│ 61 6d 61 31 14 30 12 06 ┊ 03 55 04 0a 0c 0b 4c 65 │ama1•0••┊•U•__•Le│ +│00713230│ 6e 6f 76 6f 20 4c 74 64 ┊ 2e 31 20 30 1e 06 03 55 │novo Ltd┊.1 0•••U│ +│00713240│ 04 03 0c 17 4c 65 6e 6f ┊ 76 6f 20 4c 74 64 2e 20 │••_•Leno┊vo Ltd. │ +│00713250│ 4b 45 4b 20 43 41 20 32 ┊ 30 31 32 30 1e 17 0d 31 │KEK CA 2┊0120••_1│ +│00713260│ 32 30 36 32 39 31 30 33 ┊ 35 33 34 5a 17 0d 33 32 │20629103┊534Z•_32│ +│00713270│ 30 36 32 34 31 30 33 35 ┊ 33 34 5a 30 6b 31 0b 30 │06241035┊34Z0k1•0│ +│00713280│ 09 06 03 55 04 06 13 02 ┊ 4a 50 31 11 30 0f 06 03 │_••U••••┊JP1•0•••│ +│00713290│ 55 04 08 0c 08 4b 61 6e ┊ 61 67 61 77 61 31 11 30 │U••_•Kan┊agawa1•0│ +│007132a0│ 0f 06 03 55 04 07 0c 08 ┊ 59 6f 6b 6f 68 61 6d 61 │•••U••_•┊Yokohama│ +│007132b0│ 31 14 30 12 06 03 55 04 ┊ 0a 0c 0b 4c 65 6e 6f 76 │1•0•••U•┊__•Lenov│ +│007132c0│ 6f 20 4c 74 64 2e 31 20 ┊ 30 1e 06 03 55 04 03 0c │o Ltd.1 ┊0•••U••_│ +│007132d0│ 17 4c 65 6e 6f 76 6f 20 ┊ 4c 74 64 2e 20 4b 45 4b │•Lenovo ┊Ltd. KEK│ +│007132e0│ 20 43 41 20 32 30 31 32 ┊ 30 82 01 22 30 0d 06 09 │ CA 2012┊0ו"0_•_│ +│007132f0│ 2a 86 48 86 f7 0d 01 01 ┊ 01 05 00 03 82 01 0f 00 │*×H××_••┊••0•×••0│ +│00713300│ 30 82 01 0a 02 82 01 01 ┊ 00 e6 a5 3a 22 e6 3f 34 │0ו_•×••┊0××:"×?4│ +│00713310│ 50 8c 4b 1a eb d7 45 ef ┊ 6a 57 7b 0f 1e 3f c2 24 │P×K•××E×┊jW{••?×$│ +│00713320│ fa ba b1 70 43 79 db ad ┊ 01 9e 2e 16 e1 e0 66 fb │×××pCy××┊•×.•××f×│ +│00713330│ 8c b5 81 0f d7 20 84 94 ┊ c7 3b 18 c2 6c 80 21 56 │×××•× ××┊×;•×l×!V│ +│00713340│ 10 55 98 ae 4e 91 34 60 ┊ 37 98 41 79 0d e9 4b 39 │•U××N×4`┊7×Ay_×K9│ +│00713350│ 3c b7 54 c1 50 39 50 fe ┊ 07 cf 9d 22 c4 09 24 d2 │<×T×P9P×┊•××"×_$×│ +│00713360│ 37 6c 64 c0 64 33 37 6e ┊ 87 d2 f0 62 1b 8e b3 6b │7ld×d37n┊×××b•××k│ +│00713370│ 30 f8 c9 f6 cd 4d a8 79 ┊ 02 2c ff 9e a5 6c fd 93 │0××××M×y┊•,×××l××│ +│00713380│ 85 73 6b a0 42 19 6c c7 ┊ eb c7 b3 c4 41 ad 83 94 │×sk×B•l×┊××××A×××│ +│00713390│ 8f 01 d7 0a 4e ef 74 b1 ┊ 06 21 4f 89 37 8d 6a ca │ו×_N×t×┊•!O×7×j×│ +│007133a0│ 5b 92 fa 3c 5c c3 c8 06 ┊ 09 dd c5 02 ce 5f 77 51 │[××<\×ו┊_×ו×_wQ│ +│007133b0│ 6c e9 6d ff 86 8b 44 3d ┊ 07 96 d5 d3 32 17 51 ad │l×m×××D=┊•×××2•Q×│ +│007133c0│ 4f 7c 83 b6 ad e1 21 b3 ┊ a5 70 cf f7 d2 b7 ad df │O|××××!×┊×p××××××│ +│007133d0│ c6 a4 0b c9 ce ea 84 eb ┊ ca 9f e1 5a f9 d8 f9 68 │×ו×××××┊×××Z×××h│ +│007133e0│ d9 b1 e0 29 51 cd 90 a4 ┊ 86 e7 a0 e7 09 0c d7 c4 │×××)Q×××┊××××__××│ +│007133f0│ a0 dd 8b 4c bc ef 89 3f ┊ 8c 76 64 fe 28 15 61 50 │×××L×××?┊×vd×(•aP│ +│00713400│ 07 8b bf 46 eb 0a 61 ba ┊ 65 02 03 01 00 01 a3 50 │•××F×_a×┊e•••0•×P│ +│00713410│ 30 4e 30 1d 06 03 55 1d ┊ 0e 04 16 04 14 80 8e f9 │0N0•••U•┊•••••×××│ +│00713420│ c1 79 96 40 de 41 46 c8 ┊ 0e 7c 4b b4 82 46 3e 7d │×y×@×AF×┊•|K××F>}│ +│00713430│ d4 30 1f 06 03 55 1d 23 ┊ 04 18 30 16 80 14 80 8e │×0•••U•#┊••0•×•××│ +│00713440│ f9 c1 79 96 40 de 41 46 ┊ c8 0e 7c 4b b4 82 46 3e │××y×@×AF┊ו|K××F>│ +│00713450│ 7d d4 30 0c 06 03 55 1d ┊ 13 04 05 30 03 01 01 ff │}×0_••U•┊•••0•••×│ +│00713460│ 30 0d 06 09 2a 86 48 86 ┊ f7 0d 01 01 0b 05 00 03 │0_•_*×H×┊×_••••0•│ +│00713470│ 82 01 01 00 90 fc 18 1c ┊ 1b 6d f0 02 3b 83 44 24 │ו•0×ו•┊•mו;×D$│ +│00713480│ b8 69 ab c8 df 2d 22 aa ┊ 55 da a7 f0 88 5b db 41 │×i×××-"×┊U××××[×A│ +│00713490│ a1 03 4d 4a 9d f9 72 2c ┊ 8d 1a 9d ac 53 89 08 82 │וMJ××r,┊ו××Sו×│ +│007134a0│ 70 f4 f8 93 56 b7 68 ba ┊ 5f 2e 3e e5 b8 84 4b 8d │p×××V×h×┊_.>×××K×│ +│007134b0│ b8 a4 86 a1 a8 7a ab fc ┊ 65 52 71 ae 02 66 49 d4 │×××××z××┊eRqוfI×│ +│007134c0│ 85 bb ed 95 28 05 8d 3a ┊ 5c bb 7f 40 13 d2 42 29 │××××(•×:┊\ו@•×B)│ +│007134d0│ 01 88 92 be a2 0b ba 6a ┊ d3 34 af 3c fb 6a 99 ff │•×××ו×j┊×4×<×j××│ +│007134e0│ 2e 2f be 06 7a 1b 8b 36 ┊ fc 1b 7b 08 ae f6 02 82 │./וz•×6┊ו{•×ו×│ +│007134f0│ 2e e4 83 38 7b 56 ba 23 ┊ 52 fa 6f f0 64 a5 0a 37 │.××8{V×#┊R×o×d×_7│ +│00713500│ f2 5d 9f 22 09 5b bf 5d ┊ 6c 80 fe 8b 73 7d 84 16 │×]×"_[×]┊l×××s}ו│ +│00713510│ f3 6a fb 1a 4a 5b 86 34 ┊ 73 22 0a a7 73 1e 28 4c │×jוJ[×4┊s"_×s•(L│ +│00713520│ f8 76 10 c8 5c 8c fd 6c ┊ 12 90 00 85 b1 e2 3a 66 │×v•×\××l┊•×0×××:f│ +│00713530│ ef 69 16 46 9e 12 45 7e ┊ ec 0b 31 57 cc 3e 06 5f │×i•FוE~┊ו1W×>•_│ +│00713540│ de 4b 72 5e 74 cb bc de ┊ e3 c5 aa 7a a7 82 11 aa │×Kr^t×××┊×××z×ו×│ +│00713550│ b9 65 98 f2 40 ca a7 74 ┊ 54 6d 1a a0 5c 49 26 84 │×e××@××t┊Tm•×\I&×│ +│00713560│ df 2e bd a3 57 1d 13 51 ┊ 8c 5f bb e6 1a 7c 82 a4 │×.××W••Q┊×_×ו|××│ +│00713570│ 57 7c 8b bf a1 59 c0 a5 ┊ e4 94 a7 4a 87 b5 ab 15 │W|×××Y××┊×××J××ו│ +│00713580│ 5c 2b f0 72 18 06 00 00 ┊ 00 00 00 00 fc 05 00 00 │\+×r••00┊0000ו00│ +│00713590│ bd 9a fa 77 59 03 32 4d ┊ bd 60 28 f4 e7 8f 78 4b │×××wY•2M┊×`(×××xK│ +│007135a0│ 30 82 05 e8 30 82 03 d0 ┊ a0 03 02 01 02 02 0a 61 │0ו×0ו×┊ו••••_a│ +│007135b0│ 0a d1 88 00 00 00 00 00 ┊ 03 30 0d 06 09 2a 86 48 │_××00000┊•0_•_*×H│ +│007135c0│ 86 f7 0d 01 01 0b 05 00 ┊ 30 81 91 31 0b 30 09 06 │××_••••0┊0××1•0_•│ +│007135d0│ 03 55 04 06 13 02 55 53 ┊ 31 13 30 11 06 03 55 04 │•U••••US┊1•0•••U•│ +│007135e0│ 08 13 0a 57 61 73 68 69 ┊ 6e 67 74 6f 6e 31 10 30 │••_Washi┊ngton1•0│ +│007135f0│ 0e 06 03 55 04 07 13 07 ┊ 52 65 64 6d 6f 6e 64 31 │•••U••••┊Redmond1│ +│00713600│ 1e 30 1c 06 03 55 04 0a ┊ 13 15 4d 69 63 72 6f 73 │•0•••U•_┊••Micros│ +│00713610│ 6f 66 74 20 43 6f 72 70 ┊ 6f 72 61 74 69 6f 6e 31 │oft Corp┊oration1│ +│00713620│ 3b 30 39 06 03 55 04 03 ┊ 13 32 4d 69 63 72 6f 73 │;09••U••┊•2Micros│ +│00713630│ 6f 66 74 20 43 6f 72 70 ┊ 6f 72 61 74 69 6f 6e 20 │oft Corp┊oration │ +│00713640│ 54 68 69 72 64 20 50 61 ┊ 72 74 79 20 4d 61 72 6b │Third Pa┊rty Mark│ +│00713650│ 65 74 70 6c 61 63 65 20 ┊ 52 6f 6f 74 30 1e 17 0d │etplace ┊Root0••_│ +│00713660│ 31 31 30 36 32 34 32 30 ┊ 34 31 32 39 5a 17 0d 32 │11062420┊4129Z•_2│ +│00713670│ 36 30 36 32 34 32 30 35 ┊ 31 32 39 5a 30 81 80 31 │60624205┊129Z0××1│ +│00713680│ 0b 30 09 06 03 55 04 06 ┊ 13 02 55 53 31 13 30 11 │•0_••U••┊••US1•0•│ +│00713690│ 06 03 55 04 08 13 0a 57 ┊ 61 73 68 69 6e 67 74 6f │••U•••_W┊ashingto│ +│007136a0│ 6e 31 10 30 0e 06 03 55 ┊ 04 07 13 07 52 65 64 6d │n1•0•••U┊••••Redm│ +│007136b0│ 6f 6e 64 31 1e 30 1c 06 ┊ 03 55 04 0a 13 15 4d 69 │ond1•0••┊•U•_••Mi│ +│007136c0│ 63 72 6f 73 6f 66 74 20 ┊ 43 6f 72 70 6f 72 61 74 │crosoft ┊Corporat│ +│007136d0│ 69 6f 6e 31 2a 30 28 06 ┊ 03 55 04 03 13 21 4d 69 │ion1*0(•┊•U•••!Mi│ +│007136e0│ 63 72 6f 73 6f 66 74 20 ┊ 43 6f 72 70 6f 72 61 74 │crosoft ┊Corporat│ +│007136f0│ 69 6f 6e 20 4b 45 4b 20 ┊ 43 41 20 32 30 31 31 30 │ion KEK ┊CA 20110│ +│00713700│ 82 01 22 30 0d 06 09 2a ┊ 86 48 86 f7 0d 01 01 01 │ו"0_•_*┊×H××_•••│ +│00713710│ 05 00 03 82 01 0f 00 30 ┊ 82 01 0a 02 82 01 01 00 │•0•×••00┊ו_•×••0│ +│00713720│ c4 e8 b5 8a bf ad 57 26 ┊ b0 26 c3 ea e7 fb 57 7a │××××××W&┊×&××××Wz│ +│00713730│ 44 02 5d 07 0d da 4a e5 ┊ 74 2a e6 b0 0f ec 6d eb │D•]•_×J×┊t*×ו×m×│ +│00713740│ ec 7f b9 e3 5a 63 32 7c ┊ 11 17 4f 0e e3 0b a7 38 │ו××Zc2|┊••O•×•×8│ +│00713750│ 15
93 8e c6 f5 e0 84 b1 ┊ 9a 9b 2c e7 f5 b7 91 d6 │•×××××××┊××,×××××│ +│00713760│ 09 e1 e2 c0 04 a8 ac 30 ┊ 1c df 48 f3 06 50 9a 64 │_××ו××0┊•×HוP×d│ +│00713770│ a7 51 7f c8 85 4f 8f 20 ┊ 86 ce fe 2f e1 9f ff 82 │×Q•××O× ┊×××/××××│ +│00713780│ c0 ed e9 cd ce f4 53 6a ┊ 62 3a 0b 43 b9 e2 25 fd │××××××Sj┊b:•C××%×│ +│00713790│ fe 05 f9 d4 c4 14 ab 11 ┊ e2 23 89 8d 70 b7 a4 1d │ו××וו┊×#××p×ו│ +│007137a0│ 4d ec ae e5 9c fa 16 c2 ┊ d7 c1 cb d4 e8 c4 2f e5 │M××××ו×┊××××××/×│ +│007137b0│ 99 ee 24 8b 03 ec 8d f2 ┊ 8b ea c3 4a fb 43 11 12 │××$ו×××┊×××J×C••│ +│007137c0│ 0b 7e b5 47 92 6c dc e6 ┊ 04 89 eb f5 33 04 eb 10 │•~×G×l××┊•×××3•×•│ +│007137d0│ 01 2a 71 e5 f9 83 13 3c ┊ ff 25 09 2f 68 76 46 ff │•*q××ו<┊×%_/hvF×│ +│007137e0│ ba 4f be dc ad 71 2a 58 ┊ aa fb 0e d2 79 3d e4 9b │×O×××q*X┊×ו×y=××│ +│007137f0│ 65 3b cc 29 2a 9f fc 72 ┊ 59 a2 eb ae 92 ef f6 35 │e;×)*××r┊Y××××××5│ +│00713800│ 13 80 c6 02 ec e4 5f cc ┊ 9d 76 cd ef 63 92 c1 af │•×ו××_×┊×v××c×××│ +│00713810│ 79 40 84 79 87 7f e3 52 ┊ a8 e8 9d 7b 07 69 8f 15 │y@×yו×R┊×××{•iו│ +│00713820│ 02 03 01 00 01 a3 82 01 ┊ 4f 30 82 01 4b 30 10 06 │•••0•×ו┊O0וK0••│ +│00713830│ 09 2b 06 01 04 01 82 37 ┊ 15 01 04 03 02 01 00 30 │_+••••×7┊••••••00│ +│00713840│ 1d 06 03 55 1d 0e 04 16 ┊ 04 14 62 fc 43 cd a0 3e │•••U••••┊••b×C××>│ +│00713850│ a4 cb 67 12 d2 5b d9 55 ┊ ac 7b cc b6 8a 5f 30 19 │××g•×[×U┊×{×××_0•│ +│00713860│ 06 09 2b 06 01 04 01 82 ┊ 37 14 02 04 0c 1e 0a 00 │•_+••••×┊7•••_•_0│ +│00713870│ 53 00 75 00 62 00 43 00 ┊ 41 30 0b 06 03 55 1d 0f │S0u0b0C0┊A0•••U••│ +│00713880│ 04 04 03 02 01 86 30 0f ┊ 06 03 55 1d 13 01 01 ff │•••••×0•┊••U••••×│ +│00713890│ 04 05 30 03 01 01 ff 30 ┊ 1f 06 03 55 1d 23 04 18 │••0•••×0┊•••U•#••│ +│007138a0│ 30 16 80 14 45 66 52 43 ┊ e1 7e 58 11 bf d6 4e 9e │0•×•EfRC┊×~X•××N×│ +│007138b0│ 23 55 08 3b 3a 22 6a a8 ┊ 30 5c 06 03 55 1d 1f 04 │#U•;:"j×┊0\••U•••│ +│007138c0│ 55 30 53 30 51 a0 4f a0 ┊ 4d 86 4b 68 74 74 70 3a │U0S0Q×O×┊M×Khttp:│ +│007138d0│ 2f 2f 63 72 6c 2e 6d 69 ┊ 63 72 6f 73 6f 66 74 2e │//crl.mi┊crosoft.│ +│007138e0│ 63 6f 6d 2f 70 6b 69 2f ┊ 63 72 6c 2f 70 72 6f 64 │com/pki/┊crl/prod│ +│007138f0│ 75 63 74 73 2f 4d 69 63 ┊ 43 6f 72 54 68 69 50 61 │ucts/Mic┊CorThiPa│ +│00713900│ 72 4d 61 72 52 6f 6f 5f ┊ 32 30 31 30 2d 31 30 2d │rMarRoo_┊2010-10-│ +│00713910│ 30 35 2e 63 72 6c 30 60 ┊ 06 08 2b 06 01 05 05 07 │05.crl0`┊••+•••••│ +│00713920│ 01 01 04 54 30 52 30 50 ┊ 06 08 2b 06 01 05 05 07 │•••T0R0P┊••+•••••│ +│00713930│ 30 02 86 44 68 74 74 70 ┊ 3a 2f 2f 77 77 77 2e 6d │0•×Dhttp┊://www.m│ +│00713940│ 69 63 72 6f 73 6f 66 74 ┊ 2e 63 6f 6d 2f 70 6b 69 │icrosoft┊.com/pki│ +│00713950│ 2f 63 65 72 74 73 2f 4d ┊ 69 63 43 6f 72 54 68 69 │/certs/M┊icCorThi│ +│00713960│ 50 61 72 4d 61 72 52 6f ┊ 6f 5f 32 30 31 30 2d 31 │ParMarRo┊o_2010-1│ +│00713970│ 30 2d 30 35 2e 63 72 74 ┊ 30 0d 06 09 2a 86 48 86 │0-05.crt┊0_•_*×H×│ +│00713980│ f7 0d 01 01 0b 05 00 03 ┊ 82 02 01 00 d4 84 88 f5 │×_••••0•┊ו•0××××│ +│00713990│ 14 94 18 02 ca 2a 3c fb ┊ 2a 92 1c 0c d7 a0 d1 f1 │•×••×*<×┊*ו_××××│ +│007139a0│ e8 52 66 a8 ee a2 b5 75 ┊ 7a 90 00 aa 2d a4 76 5a │×Rf××××u┊z×0×-×vZ│ +│007139b0│ ea 79 b7 b9 37 6a 51 7b ┊ 10 64 f6 e1 64 f2 02 67 │×y××7jQ{┊•d××dוg│ +│007139c0│ be f7 a8 1b 78 bd ba ce ┊ 88 58 64 0c d6 57 c8 19 │××וx×××┊×Xd_×Wו│ +│007139d0│ a3 5f 05 d6 db c6 d0 69 ┊ ce 48 4b 32 b7 eb 5d d2 │×_•××××i┊×HK2××]×│ +│007139e0│ 30 f5 c0 f5 b8 ba 78 07 ┊ a3 2b fe 9b db 34 56 84 │0×××××x•┊×+×××4V×│ +│007139f0│ ec 82 ca ae 41 25 70 9c ┊ 6b e9 fe 90 0f d7 96 1f │××××A%p×┊k××ו×ו│ +│00713a00│ e5 e7 94 1f b2 2a 0c 8d ┊ 4b ff 28 29 10 7b f7 d7 │××ו×*_×┊K×()•{××│ +│00713a10│ 7c a5 d1 76 b9 05 c8 79 ┊ ed 0f 90 92 9c c2 fe df │|××vו×y┊ו××××××│ +│00713a20│ 6f 7e 6c 0f 7b d4 c1 45 ┊ dd 34 51 96 39 0f e5 5e │o~l•{××E┊×4Q×9•×^│ +│00713a30│ 56 d8 18 05 96 f4 07 a6 ┊ 42 b3 a0 77 fd 08 19 f2 │Vו•×ו×┊B××wו•×│ +│00713a40│ 71 56 cc 9f 86 23 a4 87 ┊ cb a6 fd 58 7e d4 69 67 │qV×××#××┊×××X~×ig│ +│00713a50│ 15 91 7e 81 f2 7f 13 e5 ┊ 0d 8b 8a 3c 87 84 eb e3 │•×~×ו•×┊_××<××××│ +│00713a60│ ce bd 43 e5 ad 2d 84 93 ┊ 8e 6a 2b 5a 7c 44 fa 52 │××C××-××┊×j+Z|D×R│ +│00713a70│ aa 81 c8 2d 1c bb e0 52 ┊ df 00 11 f8 9a 3d c1 60 │×××-•××R┊×0•××=×`│ +│00713a80│ b0 e1 33 b5 a3 88 d1 65 ┊ 19 0a 1a e7 ac 7c a4 c1 │××3××××e┊•_•××|××│ +│00713a90│ 82 87 4e 38 b1 2f 0d c5 ┊ 14 87 6f fd 8d 2e bc 39 │××N8×/_×┊•×o××.×9│ +│00713aa0│ b6 e7 e6 c3 e0 e4 cd 27 ┊ 84 ef 94 42 ef 29 8b 90 │×××××××'┊×××B×)××│ +│00713ab0│ 46 41 3b 81 1b 67 d8 f9 ┊ 43 59 65 cb 0d bc fd 00 │FA;וg××┊CYe×_××0│ +│00713ac0│ 92 4f f4 75 3b a7 a9 24 ┊ fc 50 41 40 79 e0 2d 4f │×O×u;××$┊×PA@y×-O│ +│00713ad0│ 0a 6a 27 76 6e 52 ed 96 ┊ 69 7b af 0f f7 87 05 d0 │_j'vnR××┊i{ו×ו×│ +│00713ae0│ 45 c2 ad 53 14 81 1f fb ┊ 30 04 aa 37 36 61 da 4a │E××S•×•×┊0•×76a×J│ +│00713af0│ 69 1b 34 d8 68 ed d6 02 ┊ cf 6c 94 0c d3 cf 6c 22 │i•4×h×ו┊×l×_××l"│ +│00713b00│ 79 ad b1 f0 bc 03 a2 46 ┊ 60 a9 c4 07 c2 21 82 f1 │y×××ו×F┊`×ו×!××│ +│00713b10│ fd f2 e8 79 32 60 bf d8 ┊ ac a5 22 14 4b ca c1 d8 │×××y2`××┊××"•K×××│ +│00713b20│ 4b eb 7d 3f 57 35 b2 e6 ┊ 4f 75 b4 b0 60 03 22 53 │K×}?W5××┊Ou××`•"S│ +│00713b30│ ae 91 79 1d d6 9b 41 1f ┊ 15 86 54 70 b2 de 0d 35 │××y•××A•┊•×Tp××_5│ +│00713b40│ 0f 7c b0 34 72 ba 97 60 ┊ 3b f0 79 eb a2 b2 1c 5d │•|×4r××`┊;×y××ו]│ +│00713b50│ a2 16 b8 87 c5 e9 1b f6 ┊ b5 97 25 6f 38 9f e3 91 │ו×××ו×┊××%o8×××│ +│00713b60│ fa 8a 79 98 c3 69 0e b7 ┊ a3 1c 20 05 97 f8 ca 14 │××y××i•×┊ו •××ו│ +│00713b70│ ae 00 d7 c4 f3 c0 14 10 ┊ 75 6b 34 a0 1b b5 99 60 │×0×××ו•┊uk4ו××`│ +│00713b80│ f3 5c b0 c5 57 4e 36 d2 ┊ 32 84 bf 9e ef 3d f3 03 │×\××WN6×┊2××××=ו│ +│00713b90│ 10 00 12 00 27 00 00 00 ┊ 00 00 00 00 00 00 00 00 │•0•0'000┊00000000│ +│00713ba0│ 00 00 00 00 00 00 00 00 ┊ a1 59 c0 a5 e4 94 a7 4a │00000000┊×Y×××××J│ +│00713bb0│ 87 b5 ab 15 5c 2b f0 72 ┊ d7 03 00 00 00 00 00 00 │××ו\+×r┊ו000000│ +│00713bc0│ bb 03 00 00 96 4e c2 3c ┊ c7 22 d8 41 88 63 8e 39 │ו00×N×<┊×"×A×c×9│ +│00713bd0│ dc dc c2 cf 30 82 03 a7 ┊ 30 82 02 8f a0 03 02 01 │××××0ו×┊0ו×ו••│ +│00713be0│ 02 02 09 00 eb b5 13 d4 ┊ 6b b1 dc 6e 30 0d 06 09 │••_0×ו×┊k××n0_•_│ +│00713bf0│ 2a 86 48 86 f7 0d 01 01 ┊ 0b 05 00 30 6a 31 0b 30 │*×H××_••┊••00j1•0│ +│00713c00│ 09 06 03 55 04 06 13 02 ┊ 4a 50 31 11 30 0f 06 03 │_••U••••┊JP1•0•••│ +│00713c10│ 55 04 08 0c 08 4b 61 6e ┊ 61 67 61 77 61 31 11 30 │U••_•Kan┊agawa1•0│ +│00713c20│ 0f 06 03 55 04 07 0c 08 ┊ 59 6f 6b 6f 68 61 6d 61 │•••U••_•┊Yokohama│ +│00713c30│ 31 14 30 12 06 03 55 04 ┊ 0a 0c 0b 4c 65 6e 6f 76 │1•0•••U•┊__•Lenov│ +│00713c40│ 6f 20 4c 74 64 2e 31 1f ┊ 30 1d 06 03 55 04 03 0c │o Ltd.1•┊0•••U••_│ +│00713c50│ 16 4c 65 6e 6f 76 6f 20 ┊ 4c 74 64 2e 20 50 4b 20 │•Lenovo ┊Ltd. PK │ +│00713c60│ 43 41 20 32 30 31 32 30 ┊ 1e 17 0d 31 32 30 36 32 │CA 20120┊••_12062│ +│00713c70│ 39 31 30 33 34 33 36 5a ┊ 17 0d 33 32 30 36 32 34 │9103436Z┊•_320624│ +│00713c80│ 31 30 33 34 33 36 5a 30 ┊ 6a 31 0b 30 09 06 03 55 │103436Z0┊j1•0_••U│ +│00713c90│ 04 06 13 02 4a 50 31 11 ┊ 30 0f 06 03 55 04 08 0c │••••JP1•┊0•••U••_│ +│00713ca0│ 08 4b 61 6e 61 67 61 77 ┊ 61 31 11 30 0f 06 03 55 │•Kanagaw┊a1•0•••U│ +│00713cb0│ 04 07 0c 08 59 6f 6b 6f ┊ 68 61 6d 61 31 14 30 12 │••_•Yoko┊hama1•0•│ +│00713cc0│ 06 03 55 04 0a 0c 0b 4c ┊ 65 6e 6f 76 6f 20 4c 74 │••U•__•L┊enovo Lt│ +│00713cd0│ 64 2e 31 1f 30 1d 06 03 ┊ 55 04 03 0c 16 4c 65 6e │d.1•0•••┊U••_•Len│ +│00713ce0│ 6f 76 6f 20 4c 74 64 2e ┊ 20 50 4b 20 43 41 20 32 │ovo Ltd.┊ PK CA 2│ +│00713cf0│ 30 31 32 30 82 01 22 30 ┊ 0d 06 09 2a 86 48 86 f7 │0120ו"0┊_•_*×H××│ +│00713d00│ 0d 01 01 01 05 00 03 82 ┊ 01 0f 00 30 82 01 0a 02 │_••••0•×┊••00ו_•│ +│00713d10│ 82 01 01 00 b6 9c 5d 62 ┊ 63 d3 d1 77 52 66 99 5f │ו•0××]b┊c××wRf×_│ +│00713d20│ d8 22 12 86 71 1b 1e ae ┊ 14 3a 18 4b ff 0c 54 fd │×"•×q••×┊•:•K×_T×│ +│00713d30│ fb f2 be 5a 49 d4 a1 a7 ┊ 52 1e 7f 6c 4b c7 60 0a │×××ZI×××┊R••lK×`_│ +│00713d40│ ce c2 bc 7d ab 13 b6 66 ┊ e9 12 c3 7c 75 f3 de c0 │×××}ו×f┊ו×|u×××│ +│00713d50│ f3 32 19 b8 5e f2 9c cb ┊ 58 98 66 d9 73 14 e8 9b │×2•×^×××┊X×f×s•××│ +│00713d60│ 6f 2a b2 64 34 16 3f 07 ┊ 9b b8 19 fa 2c c9 d6 06 │o*×d4•?•┊×ו×,×ו│ +│00713d70│ 55 4e 77 b5 21 e5 73 6c ┊ 02 a5 40 b1 f4 b2 31 87 │UNw×!×sl┊•×@×××1×│ +│00713d80│ d3 53 24 f8 2c aa 6d 42 ┊ aa 5c b4 bb a5 ec ce 05 │×S$×,×mB┊×\××××ו│ +│00713d90│ 29 c5 42 93 5a 1c d4 e7 ┊ ab df 5e 83 70 87 77 a8 │)×B×Z•××┊××^×p×w×│ +│00713da0│ 59 78 33 d4 ca f1 46 6a ┊ c0 9e 9c 04 3f 03 9e 13 │Yx3×××Fj┊××ו?•×•│ +│00713db0│ 52 0f 0a 13 3c db 94 6b ┊ 5d 4c 14 09 73 17 1a 0b │R•_•<××k┊]L•_s•••│ +│00713dc0│ 3a e6 ec a1 45 1d 3a a5 ┊ aa 9a f4 de b4 b3 15 f1 │:×××E•:×┊×××××ו×│ +│00713dd0│ 07 c8 d6 fa e0 a8 30 99 ┊ b7 8e a3 d0 ff 3b f2 c9 │•×××××0×┊×××××;××│ +│00713de0│ f9 88 8b 31 b6 a2 fd 0a ┊ 4d f4 ff 28 ae c5 b5 da │×××1×××_┊M××(××××│ +│00713df0│ 3e 42 93 26 9a 9a bd aa ┊ 0e 54 58 fe 87 af 20 a0 │>B×&××××┊•TX××× ×│ +│00713e00│ 77 cc 3d e1 96 52 f2 98 ┊ 4e 32 14 2e b2 e8 ed 3b │w×=××R××┊N2•.×××;│ +│00713e10│ 01 7a d8 93 02 03 01 00 ┊ 01 a3 50 30 4e 30 1d 06 │•z×ו••0┊•×P0N0••│ +│00713e20│ 03 55 1d 0e 04 16 04 14 ┊ ff 77 df 4b 17 4c 71 8b │•U••••••┊×w×K•Lq×│ +│00713e30│ 74 f9 17 9d ec 34 3d 8d ┊ 19 0e 94 48 30 1f 06 03 │tו××4=×┊••×H0•••│ +│00713e40│ 55 1d 23 04 18 30 16 80 ┊ 14 ff 77 df 4b 17 4c 71 │U•#••0•×┊•×w×K•Lq│ +│00713e50│ 8b 74 f9 17 9d ec 34 3d ┊ 8d 19 0e 94 48 30 0c 06 │×tו××4=┊ו•×H0_•│ +│00713e60│ 03 55 1d 13 04 05 30 03 ┊ 01 01 ff 30 0d 06 09 2a │•U••••0•┊••×0_•_*│ +│00713e70│ 86 48 86 f7 0d 01 01 0b ┊ 05 00 03 82 01 01 00 70 │×H××_•••┊•0•×••0p│ +│00713e80│ 65 af af 90 25 ad 55 d6 ┊ 91 a5 e6 df 91 a0 89 ef │e×××%×U×┊××××××××│ +│00713e90│ 8f 32 4b b5 ee c6 d5 8e ┊ bb 13 8e 43 5d 3d 72 4e │×2K×××××┊ו×C]=rN│ +│00713ea0│ 3a 4f 26 a6 67 b0 28 56 ┊ cf 6a 1c ea 30 ee 08 61 │:O&×g×(V┊×j•×0וa│ +│00713eb0│ 2d 7d 42 8c fa de d6 ee ┊ d5 3b 94 0c 28 61 df 4f │-}B×××××┊×;×_(a×O│ +│00713ec0│ 4f f0 fe 21 db a6 cd 78 ┊ 8a 0f 07 28 5f d5 dd b5 │O××!×××x┊ו•(_×××│ +│00713ed0│ d7 93 72 98 c9 6e 65 88 ┊ f2 a5 b7 a9 c3 75 0e 65 │××r××ne×┊×××××u•e│ +│00713ee0│ 12 bc d5 32 d4 5d ce c2 ┊ d1 65 5e b9 6c 4e a8 00 │•××2×]××┊×e^×lN×0│ +│00713ef0│ 07 ba 28 78 30 8a 0c 70 ┊ b5 54 58 50 b5 22 23 3e │•×(x0×_p┊×TXP×"#>│ +│00713f00│ df 61 4f e0 91 ee 60 1b ┊ 47 84 72 f7 ea 69 a5 28 │×aO×××`•┊G×r××i×(│ +│00713f10│ ca 4f f5 3a b7 18 0e 3e ┊ bf 87 31 87 0a 10 d9 c5 │×O×:ו•>┊××1×_•××│ +│00713f20│ 34 ab 00 7d 10 07 e9 ba ┊ c2 ed 41 a9 41 c0 bf ea │4×0}••××┊××A×A×××│ +│00713f30│ 9e 82 fb 54 9d 85 b9 81 ┊ 36 5f 01 f1 9c 1a b9 b8 │×××T××××┊6_•×ו××│ +│00713f40│ 5c b1 16 c9 e9 4c 80 12 ┊ 78 41 79 07 e8 f9 6d 11 │\ו××Lו┊xAy•××m•│ +│00713f50│ ed 2c 88 8e 3d 0d bd 6c ┊ 23 17 60 1c d6 47 1b f6 │×,××=_×l┊#•`•×G•×│ +│00713f60│ 2b 51 b4 b6 82 51 7c c9 ┊ 5e d2 60 25 59 3c 79 65 │+Q×××Q|×┊^×`%Y

P.S. the EC datasheet link in your readme seems to return a 0-byte file. and honestly I could not find a datasheet for this anywhere on the internet. If you have it, please upload it somewhere!

leecher1337 commented 2 years ago

Thank you for the extensive Tests! As I bricked my ThinkPad, I was unable to validate my 2 Byte Patch, offset calculation looks correct.

Anyway, as patching the EC directly worked (glad to hear that, because I would have been unable to identify CRC Check function), I conclude that your first assumption about the FW flash tool messing up the ME region ist correct then? So options are: 1) Trying to flash patched FL1 with default Tool options to Check If it also corrupts ME 2) Unlock Chip with 1vyrain and Patch EC Region directly 3) Trying to find the bug in the flash tool that causes corruption (looks like a ton of fun ;-) )

Would you agreed with that? And would you bei able to test 1) ? Or did I misinterpret the results?

valpackett commented 2 years ago

Yes, I'll test that. Actually I'm not sure why you've added that option at all? What is that option even for?

leecher1337 commented 2 years ago

You mean the option to specify EC Region? Well, I just took the autoexec template from this project and patched FL1 and it generally makes sense to only patch EC region so that the patch is universal regardless of the installed BIOS version, as long as EC FW version matches. And it is faster than flashing whole BIOS. It is really surprising that flasher uses the correct region from FL1, but still corrupts other areas.

Regarding datasheet: I can download the PDF without issues.

valpackett commented 2 years ago

The ec arg was already there, but you told me to add the /sn flag. What does /sn do?

I can download the PDF without issues

Right, worked fine from a different IP address. Seems like it's just a schematic though, no documentation, but still interesting.

leecher1337 commented 2 years ago

You can get all parameters with dosflash /help /snremoves check for PartNumber. If you try without it, you get an error, that PartNumber does not match. However, if you look at .FL1:

Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

006C61D0   43 4D 44 42 0C 00 00 00  23 00 00 00 42 00 17 42   CMDB....#...B..B
006C61E0   09 05 02 11 42 1E 05 02  29 42 36 05 02 42 42 4F   ....B...)B6..BBO
006C61F0   05 02 57 42 69 6F 73 49  6E 66 6F 00 42 6F 61 72   ..WBiosInfo.Boar
006C6200   64 49 64 00 4E 6F 4C 6F  6E 67 65 72 55 73 65 64   dId.NoLongerUsed
006C6210   00 50 61 72 74 4E 75 6D  62 65 72 00 4E 6F 4C 6F   .PartNumber.NoLo
006C6220   6E 67 65 72 55 73 65 64  00 52 65 6C 65 61 73 65   ngerUsed.Release
006C6230   44 61 74 65 00 4E 6F 4C  6F 6E 67 65 72 55 73 65   Date.NoLongerUse
006C6240   64 00 56 65 72 73 69 6F  6E 00 4E 6F 4C 6F 6E 67   d.Version.NoLong
006C6250   65 72 55 73 65 64 00 FF  FF FF FF FF FF FF FF FF   erUsed.ÿÿÿÿÿÿÿÿÿ

And official call of WinFlash32 also contains this parameter which indicates that it must be ignored. To test DOS flash the 'standard' way, just call command on prompt, it will start a menu that lets you update the FW. You can also try to use the parameters for DosFlash, that I Specified above for winflash32, but there are actually 4 possible WinFlash32 calls in the .exe, so safest bet is to use menu driven commandcall first. (command.com on DOS disk actually isn't the normal command.com interpreter, but the Lenovo menu for flashing)

Anyway, here are 4 possible calls to DosFlash/Winflash32 extracted from WINUPTP.EXE:

/bbl /silent /vcpu /sn /sd /v /exit /ipf bios    /shutdown /file
/bbl /silent /vcpu /sn /sd /v /exit /ipf bios ec /shutdown /file
/bbl /silent /vcpu /sn /sd /v /exit /ipf bios              /file
/bbl /silent /vcpu /sn /sd /v /exit /ipf bios ec           /file

In UEFI updater, the commands are similar and seem to depend on some kind of Machine Type or somehting like that (Phoenix BIOS proprietary 5380h subfunction, Parameters reordered for better comparability):

1603         /bbl /p /vcpu /silent /sn /sd     /v /exit /ipf bios ec /vbl /file
1603(2)      /bbl /p /vcpu /silent /sn /sd     /v /exit /ipf bios    /vbl /file
1608         /bbl /p /vcpu /silent /sn /sd /ss /v /exit /ipf bios ec /vbl /file
1610, 1613   /bbl /p /vcpu /silent /sn /sd        /exit /ipf bios ec /vbl /file
default      /bbl /p       /silent /sn /sd /ss /v /exit /ipf bios ec /vbl /file

From these, the last one looks best for me, but I wouldn't flash boot block (/bbl) and not update microcode (/vcpu).

Parameters: Param Description
/BBL Program the boot block. By default, bootblock is not updated.
/SILENT Silent operation (no beeps)
/VCPU Update variable size CPU microcode. The ROM, BIOS image, and MCUfile (if defined) will be compared. The most recent MCU will be flashed to ROM.
/SN Skip BIOS part number check.
/SD Skip BIOS date check.
/V Verify each block after programming it.
/EXIT Exit without rebooting.
/IPF Flash specific region ([region name] all)
/VBL Show warning for Microsoft Bitlocker
/P Production mode (minimize messages and delays).
/FILE Filename of file to flash

When looking at the diff, it looks like the EVSA (EFI Variable Storage Area) got updated, which would make some sense as I remember that when flashing the EC firmware, the DOSFLASH tool only copied the patch to some location and then machine rebooted to some kind of UEFI shell that did the actual flashing. So maybe, it just copies the flash updater there causing the differences in this area. But this still doesn't explain why the ME/BIOS is in a bricked state after flashing, as overwriting only EC area doesn't cause the same problem according to your research. hmmm

leecher1337 commented 2 years ago

@unrelentingtech I bought a cheap CH341A programmer and fixed it for 3.3V on data lines (seems the schematic has a design flaw and normally uses 5V instead of 3.3V on the data lines!) so that I can fix my broken machine. Do I have to remove the CMOS battery before attaching the chip clip with the programmer to the flash chip?

valpackett commented 2 years ago

Do I have to remove the CMOS battery before attaching the chip clip with the programmer to the flash chip?

I didn't remove anything, often not even the actual laptop battery lol

leecher1337 commented 2 years ago

Hm, crap, the CH431A works fine when attaching a Flash chip directly into the socket (did this to verify that it is working correctly after 3.3V fix), but when attaching the chip clip to the BIOS Chip on the L530, just the Orange RUN-Led lights up (no documentation can be found for this board to find out what this means) and the programmer isn't detected by the host system. I double-checked for the correct wiring, but cannot find a wiring error. Pin1 is connected through properly. Weird. So I guess my only chance is using the RaspPi then, hopefully I haven't ruined anything yet. Arrrgh

valpackett commented 2 years ago

the programmer isn't detected by the host system

hm. Probably the same issue that causes the Pi to reset.

leecher1337 commented 2 years ago

As EC is also connected to SPI flash, maybe CH431A doesn't supply enough power to run both. I also heard that EC jams the SPI flash if it can't find the firmware which makes flashing even more complicated without desoldering and resoldering the chip.

As it seems that it's not easy to fix my machine and carry out some more tests, if would still be interesting if flashing whole BIOS image including patched EC firmware with dosflash also causes these strange corruption problems.

Btw.: I guess the symtpoms that you were experiencing were the same than mine after dosing dosflash with just ec area: Machine just doesn't power on on pressing the power button and when plugging in PSU, Power led lights up but machine does nothing.

I also noticed that you flash chip has a different description on its top than mine, so probably your machine is using another chip, not the WinBond W25Q64.V?

valpackett commented 2 years ago

Flashrom does identify it as a W25Qsomething, so probably not different.

Machine just doesn't power on on pressing the power button

Yes, that's what happens with any kind of non-working firmware (e.g. me_cleaner disable bit too)

leecher1337 commented 2 years ago

Are you powering the Flash Chip (Pin 8 - VCC) via 3.3V Pin 1 of the RaspPi or are you using system battery/AC adapter to power the flash chip and just use the following pinout:

Pin Chip Name Pin RaspPi
1 CS 24
2 MISO 21
3 not used not used
4 GND 25
5 MOSI 19
6 CLK 23
7 not used not used
8 3.3V
valpackett commented 2 years ago

I do connect 3v3 to the Pi. I'm pretty sure the chip won't get any power from the system until the system is on (which requires the EC… so it must be able to turn enough power on without the firmware to be able to even read the firmware…?).

Just tested with a multimeter, no voltage on any pins when the laptop is off.

leecher1337 commented 2 years ago

Hm, weird.. After having no success with the CH431A, I tested chip clip with Raspberry Pi on another broken mainboard with the same flash chip in order to be on the safe side in case I brick something due to bad wiring or something. Triple-checked wiring (also checked clip cabling with pin headers), then put 3.3V on Pin 8, but nothing: Chip not detected. I'm running out of ideas now. Could be that the CH431A bricked both flash chips, but I doubt that when attaching a Flash Chip to the socket of the CH431A programmer works fine without damaging the chip.

I used flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 to detect chip