From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54204) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YauqU-0001F2-4V for qemu-devel@nongnu.org; Wed, 25 Mar 2015 19:36:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YauqT-0005Ht-0e for qemu-devel@nongnu.org; Wed, 25 Mar 2015 19:36:22 -0400 Received: from mail-wi0-x231.google.com ([2a00:1450:400c:c05::231]:37559) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YauqS-0005Gt-JB for qemu-devel@nongnu.org; Wed, 25 Mar 2015 19:36:20 -0400 Received: by wixw10 with SMTP id w10so60909925wix.0 for ; Wed, 25 Mar 2015 16:36:19 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <20150325230259.GA29924@morn.localdomain> References: <20150311193337.GA13162@work-vm> <20150311195920.GR2334@work-vm> <20150312095902.GC2330@work-vm> <20150325205439.GA21667@morn.localdomain> <20150325230259.GA29924@morn.localdomain> From: Andrey Korolyov Date: Thu, 26 Mar 2015 02:35:58 +0300 Message-ID: Content-Type: multipart/mixed; boundary=047d7ba974a8c2d6660512255d50 Subject: Re: [Qemu-devel] E5-2620v2 - emulation stop error List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin O'Connor Cc: "kvm@vger.kernel.org" , "qemu-devel@nongnu.org" , "Dr. David Alan Gilbert" , Bandan Das , Gerd Hoffmann , Paolo Bonzini --047d7ba974a8c2d6660512255d50 Content-Type: text/plain; charset=UTF-8 On Thu, Mar 26, 2015 at 2:02 AM, Kevin O'Connor wrote: > On Thu, Mar 26, 2015 at 01:31:11AM +0300, Andrey Korolyov wrote: >> On Wed, Mar 25, 2015 at 11:54 PM, Kevin O'Connor wrote: >> > >> > Can you add something like: >> > >> > -chardev file,path=seabioslog.`date +%s`,id=seabios -device isa-debugcon,iobase=0x402,chardev=seabios >> > >> > to the qemu command line and forward the resulting log from both a >> > succesful boot and a failed one? >> > >> > -Kevin >> >> Of course, logs are attached. > > Thanks. From a diff of the two logs: > > 4: 000000003ffe0000 - 0000000040000000 = 2 RESERVED > 5: 00000000feffc000 - 00000000ff000000 = 2 RESERVED > 6: 00000000fffc0000 - 0000000100000000 = 2 RESERVED > -enter handle_19: > - NULL > -Booting from Hard Disk... > -Booting from 0000:7c00 > > So, it got most of the way through the reboot - there's only a few > function calls between the e820 map being dumped and the handle_19 > call. The fault also seems to show it stopped in the BIOS in 16bit > mode: > >> EIP=0000d331 EFL=00010202 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0 >> ES =0000 00000000 0000ffff 00009300 >> CS =f000 000f0000 0000ffff 00009b00 > > Can you add the patch below, force the fault, and forward the log. > > Also, if you recreate the failure can you take the EIP from the fault > (eg, d331) and search for the corresponding function in the output of: > objdump -m i386 -M i8086 -M suffix -ldr out/rom16.o | less > (That is, search for "d331:".) If that's too much of a pain, just > send me a direct email with the seabios out/rom16.o file and the new > EIP of the fault. (I need the out/rom16.o that was used to build the > version of SeaBIOS that faulted.) > > -Kevin > > > diff --git a/src/post.c b/src/post.c > index 9ea5620..bbd19c0 100644 > --- a/src/post.c > +++ b/src/post.c > @@ -185,21 +185,24 @@ prepareboot(void) > pmm_prepboot(); > malloc_prepboot(); > memmap_prepboot(); > + dprintf(1, "a\n"); > > HaveRunPost = 2; > > // Setup bios checksum. > BiosChecksum -= checksum((u8*)BUILD_BIOS_ADDR, BUILD_BIOS_SIZE); > + dprintf(1, "b\n"); > } > > // Begin the boot process by invoking an int0x19 in 16bit mode. > void VISIBLE32FLAT > startBoot(void) > { > + dprintf(1, "e\n"); > // Clear low-memory allocations (required by PMM spec). > memset((void*)BUILD_STACK_ADDR, 0, BUILD_EBDA_MINIMUM - BUILD_STACK_ADDR); > > - dprintf(3, "Jump to int19\n"); > + dprintf(1, "Jump to int19 (vector=%x)\n", GET_IVT(0x19).segoff); > struct bregs br; > memset(&br, 0, sizeof(br)); > br.flags = F_IF; > @@ -239,9 +242,11 @@ maininit(void) > // Prepare for boot. > prepareboot(); > > + dprintf(1, "c\n"); > // Write protect bios memory. > make_bios_readonly(); > > + dprintf(1, "d\n"); > // Invoke int 19 to start boot process. > startBoot(); > } Thanks, strangely the reboot is always failing now and always reaching seabios greeting. May be prints straightened up a race (e.g. it is not int19 problem really). object file part: 0000d331 : irq_trampoline_0x19(): /root/seabios-1.8.1/src/romlayout.S:195 d331: cd 19 int $0x19 d333: cb lretw --047d7ba974a8c2d6660512255d50 Content-Type: application/octet-stream; name="reboot.failed" Content-Disposition: attachment; filename="reboot.failed" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i7pd8hgz0 U2VhQklPUyAodmVyc2lvbiAxLjguMS0yMDE1MDMyNl8wMjE3NTgtdGVzdG5vZGUpClJ1bm5pbmcg b24gUUVNVSAoaTQ0MGZ4KQpSdW5uaW5nIG9uIEtWTQpSYW1TaXplOiAweDQwMDAwMDAwIFtjbW9z XQpSZWxvY2F0aW5nIGluaXQgZnJvbSAweDAwMGUxMTMwIHRvIDB4M2ZmYWZjZTAgKHNpemUgNjYx NDQpCkZvdW5kIFFFTVUgZndfY2ZnClJhbUJsb2NrOiBhZGRyIDB4MDAwMDAwMDAwMDAwMDAwMCBs ZW4gMHgwMDAwMDAwMDQwMDAwMDAwIFtlODIwXQpNb3ZpbmcgcG1fYmFzZSB0byAweDYwMApib290 IG9yZGVyOgoxOiAvcGNpQGkwY2Y4L3Njc2lANS9kaXNrQDAsMAoyOiBIQUxUCkNQVSBNaHo9MjEw Mwo9PT0gUENJIGJ1cyAmIGJyaWRnZSBpbml0ID09PQpQQ0k6IHBjaV9iaW9zX2luaXRfYnVzX3Jl YyBidXMgPSAweDAKPT09IFBDSSBkZXZpY2UgcHJvYmluZyA9PT0KRm91bmQgNyBQQ0kgZGV2aWNl cyAobWF4IFBDSSBidXMgaXMgMDApCj09PSBQQ0kgbmV3IGFsbG9jYXRpb24gcGFzcyAjMSA9PT0K UENJOiBjaGVjayBkZXZpY2VzCj09PSBQQ0kgbmV3IGFsbG9jYXRpb24gcGFzcyAjMiA9PT0KUENJ OiBJTzogYzAwMCAtIGMwNmYKUENJOiAzMjogMDAwMDAwMDA4MDAwMDAwMCAtIDAwMDAwMDAwZmVj MDAwMDAKUENJOiBtYXAgZGV2aWNlIGJkZj0wMDowNS4wICBiYXIgMCwgYWRkciAwMDAwYzAwMCwg c2l6ZSAwMDAwMDA0MCBbaW9dClBDSTogbWFwIGRldmljZSBiZGY9MDA6MDQuMCAgYmFyIDAsIGFk ZHIgMDAwMGMwNDAsIHNpemUgMDAwMDAwMjAgW2lvXQpQQ0k6IG1hcCBkZXZpY2UgYmRmPTAwOjAx LjEgIGJhciA0LCBhZGRyIDAwMDBjMDYwLCBzaXplIDAwMDAwMDEwIFtpb10KUENJOiBtYXAgZGV2 aWNlIGJkZj0wMDowMy4wICBiYXIgMCwgYWRkciBmZWJmODAwMCwgc2l6ZSAwMDAwNDAwMCBbbWVt XQpQQ0k6IG1hcCBkZXZpY2UgYmRmPTAwOjA0LjAgIGJhciAxLCBhZGRyIGZlYmZjMDAwLCBzaXpl IDAwMDAxMDAwIFttZW1dClBDSTogbWFwIGRldmljZSBiZGY9MDA6MDUuMCAgYmFyIDEsIGFkZHIg ZmViZmQwMDAsIHNpemUgMDAwMDEwMDAgW21lbV0KUENJOiBpbml0IGJkZj0wMDowMC4wIGlkPTgw ODY6MTIzNwpQQ0k6IGluaXQgYmRmPTAwOjAxLjAgaWQ9ODA4Njo3MDAwClBJSVgzL1BJSVg0IGlu aXQ6IGVsY3I9MDAgMGMKUENJOiBpbml0IGJkZj0wMDowMS4xIGlkPTgwODY6NzAxMApQQ0k6IGlu aXQgYmRmPTAwOjAxLjMgaWQ9ODA4Njo3MTEzClVzaW5nIHBtdGltZXIsIGlvcG9ydCAweDYwOApQ Q0k6IGluaXQgYmRmPTAwOjAzLjAgaWQ9MTAzMzowMTk0ClBDSTogaW5pdCBiZGY9MDA6MDQuMCBp ZD0xYWY0OjEwMDMKUENJOiBpbml0IGJkZj0wMDowNS4wIGlkPTFhZjQ6MTAwMQpQQ0k6IE5vIFZH QSBkZXZpY2VzIGZvdW5kCmhhbmRsZV9zbXA6IGFwaWNfaWQ9MTEKaGFuZGxlX3NtcDogYXBpY19p ZD0zCmhhbmRsZV9zbXA6IGFwaWNfaWQ9OApoYW5kbGVfc21wOiBhcGljX2lkPTQKaGFuZGxlX3Nt cDogYXBpY19pZD05CmhhbmRsZV9zbXA6IGFwaWNfaWQ9MQpoYW5kbGVfc21wOiBhcGljX2lkPTIK aGFuZGxlX3NtcDogYXBpY19pZD03CmhhbmRsZV9zbXA6IGFwaWNfaWQ9NgpoYW5kbGVfc21wOiBh cGljX2lkPTEwCmhhbmRsZV9zbXA6IGFwaWNfaWQ9NQpGb3VuZCAxMiBjcHUocykgbWF4IHN1cHBv cnRlZCAxMiBjcHUocykKQ29weWluZyBQSVIgZnJvbSAweDNmZmJmZDA4IHRvIDB4MDAwZjEzMTAK Q29weWluZyBNUFRBQkxFIGZyb20gMHgwMDAwNmQ0OS8zZmZhNmJmMCB0byAweDAwMGYxMjIwCkNv cHlpbmcgU01CSU9TIGVudHJ5IHBvaW50IGZyb20gMHgwMDAwNmQ1OSB0byAweDAwMGYxMDgwClNj YW4gZm9yIFZHQSBvcHRpb24gcm9tClJ1bm5pbmcgb3B0aW9uIHJvbSBhdCBjMDAwOjAwMDMKVHVy bmluZyBvbiB2Z2EgdGV4dCBtb2RlIGNvbnNvbGUKU2VhQklPUyAodmVyc2lvbiAxLjguMS0yMDE1 MDMyNl8wMjE3NTgtdGVzdG5vZGUpCk1hY2hpbmUgVVVJRCAzYzc4NzIxZi03MzE3LTRmODUtYmNi ZS1mNWFkNDZkMjkzYTEKQWxsIHRocmVhZHMgY29tcGxldGUuCkZvdW5kIDAgbHB0IHBvcnRzCkZv dW5kIDEgc2VyaWFsIHBvcnRzCkFUQSBjb250cm9sbGVyIDEgYXQgMWYwLzNmNC8wIChpcnEgMTQg ZGV2IDkpCkFUQSBjb250cm9sbGVyIDIgYXQgMTcwLzM3NC8wIChpcnEgMTUgZGV2IDkpCmZvdW5k IHZpcnRpby1ibGsgYXQgMDo1ClNlYXJjaGluZyBib290b3JkZXIgZm9yOiAvcGNpQGkwY2Y4LypA NQpQUzIga2V5Ym9hcmQgaW5pdGlhbGl6ZWQKQWxsIHRocmVhZHMgY29tcGxldGUuClNjYW4gZm9y IG9wdGlvbiByb21zClNlYXJjaGluZyBib290b3JkZXIgZm9yOiAvcm9tQGdlbnJvbXMva3ZtdmFw aWMuYmluClNlYXJjaGluZyBib290b3JkZXIgZm9yOiBIQUxUCmRyaXZlIDB4MDAwZjEwMDA6IFBD SFM9MTYzODMvMTYvNjMgdHJhbnNsYXRpb249bGJhIExDSFM9MTAyNC8yNTUvNjMgcz0xNjc3NzIx NgpSdW5uaW5nIG9wdGlvbiByb20gYXQgYzEwMDowMDAzClNwYWNlIGF2YWlsYWJsZSBmb3IgVU1C OiBjMzgwMC1lZDgwMCwgZjAwMDAtZjEwMDAKUmV0dXJuZWQgMTMxMDcyIGJ5dGVzIG9mIFpvbmVI aWdoCmU4MjAgbWFwIGhhcyA3IGl0ZW1zOgogIDA6IDAwMDAwMDAwMDAwMDAwMDAgLSAwMDAwMDAw MDAwMDlmODAwID0gMSBSQU0KICAxOiAwMDAwMDAwMDAwMDlmODAwIC0gMDAwMDAwMDAwMDBhMDAw MCA9IDIgUkVTRVJWRUQKICAyOiAwMDAwMDAwMDAwMGYwMDAwIC0gMDAwMDAwMDAwMDEwMDAwMCA9 IDIgUkVTRVJWRUQKICAzOiAwMDAwMDAwMDAwMTAwMDAwIC0gMDAwMDAwMDAzZmZlMDAwMCA9IDEg UkFNCiAgNDogMDAwMDAwMDAzZmZlMDAwMCAtIDAwMDAwMDAwNDAwMDAwMDAgPSAyIFJFU0VSVkVE CiAgNTogMDAwMDAwMDBmZWZmYzAwMCAtIDAwMDAwMDAwZmYwMDAwMDAgPSAyIFJFU0VSVkVECiAg NjogMDAwMDAwMDBmZmZjMDAwMCAtIDAwMDAwMDAxMDAwMDAwMDAgPSAyIFJFU0VSVkVECmEKYgpj CmQKZQpKdW1wIHRvIGludDE5ICh2ZWN0b3I9ZjAwMGU2ZjIpCmVudGVyIGhhbmRsZV8xOToKICBO VUxMCkJvb3RpbmcgZnJvbSBIYXJkIERpc2suLi4KQm9vdGluZyBmcm9tIDAwMDA6N2MwMApJbiBy ZXN1bWUgKHN0YXR1cz0wKQpJbiAzMmJpdCByZXN1bWUKQXR0ZW1wdGluZyBhIGhhcmQgcmVib290 ClNlYUJJT1MgKHZlcnNpb24gMS44LjEtMjAxNTAzMjZfMDIxNzU4LXRlc3Rub2RlKQpSdW5uaW5n IG9uIFFFTVUgKGk0NDBmeCkKUnVubmluZyBvbiBLVk0KUmFtU2l6ZTogMHg0MDAwMDAwMCBbY21v c10KUmVsb2NhdGluZyBpbml0IGZyb20gMHgwMDBlMTEzMCB0byAweDNmZmFmY2UwIChzaXplIDY2 MTQ0KQpGb3VuZCBRRU1VIGZ3X2NmZwpSYW1CbG9jazogYWRkciAweDAwMDAwMDAwMDAwMDAwMDAg bGVuIDB4MDAwMDAwMDA0MDAwMDAwMCBbZTgyMF0KTW92aW5nIHBtX2Jhc2UgdG8gMHg2MDAKYm9v dCBvcmRlcjoKMTogL3BjaUBpMGNmOC9zY3NpQDUvZGlza0AwLDAKMjogSEFMVApDUFUgTWh6PTIx MDgKPT09IFBDSSBidXMgJiBicmlkZ2UgaW5pdCA9PT0KUENJOiBwY2lfYmlvc19pbml0X2J1c19y ZWMgYnVzID0gMHgwCj09PSBQQ0kgZGV2aWNlIHByb2JpbmcgPT09CkZvdW5kIDcgUENJIGRldmlj ZXMgKG1heCBQQ0kgYnVzIGlzIDAwKQo9PT0gUENJIG5ldyBhbGxvY2F0aW9uIHBhc3MgIzEgPT09 ClBDSTogY2hlY2sgZGV2aWNlcwo9PT0gUENJIG5ldyBhbGxvY2F0aW9uIHBhc3MgIzIgPT09ClBD STogSU86IGMwMDAgLSBjMDZmClBDSTogMzI6IDAwMDAwMDAwODAwMDAwMDAgLSAwMDAwMDAwMGZl YzAwMDAwClBDSTogbWFwIGRldmljZSBiZGY9MDA6MDUuMCAgYmFyIDAsIGFkZHIgMDAwMGMwMDAs IHNpemUgMDAwMDAwNDAgW2lvXQpQQ0k6IG1hcCBkZXZpY2UgYmRmPTAwOjA0LjAgIGJhciAwLCBh ZGRyIDAwMDBjMDQwLCBzaXplIDAwMDAwMDIwIFtpb10KUENJOiBtYXAgZGV2aWNlIGJkZj0wMDow MS4xICBiYXIgNCwgYWRkciAwMDAwYzA2MCwgc2l6ZSAwMDAwMDAxMCBbaW9dClBDSTogbWFwIGRl dmljZSBiZGY9MDA6MDMuMCAgYmFyIDAsIGFkZHIgZmViZjgwMDAsIHNpemUgMDAwMDQwMDAgW21l bV0KUENJOiBtYXAgZGV2aWNlIGJkZj0wMDowNC4wICBiYXIgMSwgYWRkciBmZWJmYzAwMCwgc2l6 ZSAwMDAwMTAwMCBbbWVtXQpQQ0k6IG1hcCBkZXZpY2UgYmRmPTAwOjA1LjAgIGJhciAxLCBhZGRy IGZlYmZkMDAwLCBzaXplIDAwMDAxMDAwIFttZW1dClBDSTogaW5pdCBiZGY9MDA6MDAuMCBpZD04 MDg2OjEyMzcKUENJOiBpbml0IGJkZj0wMDowMS4wIGlkPTgwODY6NzAwMApQSUlYMy9QSUlYNCBp bml0OiBlbGNyPTAwIDBjClBDSTogaW5pdCBiZGY9MDA6MDEuMSBpZD04MDg2OjcwMTAKUENJOiBp bml0IGJkZj0wMDowMS4zIGlkPTgwODY6NzExMwpVc2luZyBwbXRpbWVyLCBpb3BvcnQgMHg2MDgK UENJOiBpbml0IGJkZj0wMDowMy4wIGlkPTEwMzM6MDE5NApQQ0k6IGluaXQgYmRmPTAwOjA0LjAg aWQ9MWFmNDoxMDAzClBDSTogaW5pdCBiZGY9MDA6MDUuMCBpZD0xYWY0OjEwMDEKUENJOiBObyBW R0EgZGV2aWNlcyBmb3VuZApoYW5kbGVfc21wOiBhcGljX2lkPTEKaGFuZGxlX3NtcDogYXBpY19p ZD0yCmhhbmRsZV9zbXA6IGFwaWNfaWQ9MwpoYW5kbGVfc21wOiBhcGljX2lkPTQKaGFuZGxlX3Nt cDogYXBpY19pZD01CmhhbmRsZV9zbXA6IGFwaWNfaWQ9NgpoYW5kbGVfc21wOiBhcGljX2lkPTcK aGFuZGxlX3NtcDogYXBpY19pZD04CmhhbmRsZV9zbXA6IGFwaWNfaWQ9OQpoYW5kbGVfc21wOiBh cGljX2lkPTEwCmhhbmRsZV9zbXA6IGFwaWNfaWQ9MTEKRm91bmQgMTIgY3B1KHMpIG1heCBzdXBw b3J0ZWQgMTIgY3B1KHMpCkNvcHlpbmcgUElSIGZyb20gMHgzZmZiZmQwOCB0byAweDAwMGYxMzEw CkNvcHlpbmcgTVBUQUJMRSBmcm9tIDB4MDAwMDZkNDkvM2ZmYTZiZjAgdG8gMHgwMDBmMTIyMApD b3B5aW5nIFNNQklPUyBlbnRyeSBwb2ludCBmcm9tIDB4MDAwMDZkNTkgdG8gMHgwMDBmMTA4MApT Y2FuIGZvciBWR0Egb3B0aW9uIHJvbQpSdW5uaW5nIG9wdGlvbiByb20gYXQgYzAwMDowMDAzClR1 cm5pbmcgb24gdmdhIHRleHQgbW9kZSBjb25zb2xlClNlYUJJT1MgKHZlcnNpb24gMS44LjEtMjAx NTAzMjZfMDIxNzU4LXRlc3Rub2RlKQpNYWNoaW5lIFVVSUQgM2M3ODcyMWYtNzMxNy00Zjg1LWJj YmUtZjVhZDQ2ZDI5M2ExCkFsbCB0aHJlYWRzIGNvbXBsZXRlLgpGb3VuZCAwIGxwdCBwb3J0cwpG b3VuZCAxIHNlcmlhbCBwb3J0cwpBVEEgY29udHJvbGxlciAxIGF0IDFmMC8zZjQvMCAoaXJxIDE0 IGRldiA5KQpBVEEgY29udHJvbGxlciAyIGF0IDE3MC8zNzQvMCAoaXJxIDE1IGRldiA5KQpmb3Vu ZCB2aXJ0aW8tYmxrIGF0IDA6NQpTZWFyY2hpbmcgYm9vdG9yZGVyIGZvcjogL3BjaUBpMGNmOC8q QDUKUFMyIGtleWJvYXJkIGluaXRpYWxpemVkCkFsbCB0aHJlYWRzIGNvbXBsZXRlLgpTY2FuIGZv ciBvcHRpb24gcm9tcwpTZWFyY2hpbmcgYm9vdG9yZGVyIGZvcjogL3JvbUBnZW5yb21zL2t2bXZh cGljLmJpbgpTZWFyY2hpbmcgYm9vdG9yZGVyIGZvcjogSEFMVApkcml2ZSAweDAwMGYxMDAwOiBQ Q0hTPTE2MzgzLzE2LzYzIHRyYW5zbGF0aW9uPWxiYSBMQ0hTPTEwMjQvMjU1LzYzIHM9MTY3Nzcy MTYKUnVubmluZyBvcHRpb24gcm9tIGF0IGMxMDA6MDAwMwpTcGFjZSBhdmFpbGFibGUgZm9yIFVN QjogYzM4MDAtZWQ4MDAsIGYwMDAwLWYxMDAwClJldHVybmVkIDEzMTA3MiBieXRlcyBvZiBab25l SGlnaAplODIwIG1hcCBoYXMgNyBpdGVtczoKICAwOiAwMDAwMDAwMDAwMDAwMDAwIC0gMDAwMDAw MDAwMDA5ZjgwMCA9IDEgUkFNCiAgMTogMDAwMDAwMDAwMDA5ZjgwMCAtIDAwMDAwMDAwMDAwYTAw MDAgPSAyIFJFU0VSVkVECiAgMjogMDAwMDAwMDAwMDBmMDAwMCAtIDAwMDAwMDAwMDAxMDAwMDAg PSAyIFJFU0VSVkVECiAgMzogMDAwMDAwMDAwMDEwMDAwMCAtIDAwMDAwMDAwM2ZmZTAwMDAgPSAx IFJBTQogIDQ6IDAwMDAwMDAwM2ZmZTAwMDAgLSAwMDAwMDAwMDQwMDAwMDAwID0gMiBSRVNFUlZF RAogIDU6IDAwMDAwMDAwZmVmZmMwMDAgLSAwMDAwMDAwMGZmMDAwMDAwID0gMiBSRVNFUlZFRAog IDY6IDAwMDAwMDAwZmZmYzAwMDAgLSAwMDAwMDAwMTAwMDAwMDAwID0gMiBSRVNFUlZFRAphCmIK YwpkCmUKSnVtcCB0byBpbnQxOSAodmVjdG9yPWYwMDBlNmYyKQo= --047d7ba974a8c2d6660512255d50--