From owner-freebsd-i386@FreeBSD.ORG Fri Mar 2 22:30:10 2012 Return-Path: Delivered-To: freebsd-i386@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9B4F1106566B for ; Fri, 2 Mar 2012 22:30:10 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 86C018FC13 for ; Fri, 2 Mar 2012 22:30:10 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q22MUA0d039591 for ; Fri, 2 Mar 2012 22:30:10 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q22MUAQf039590; Fri, 2 Mar 2012 22:30:10 GMT (envelope-from gnats) Date: Fri, 2 Mar 2012 22:30:10 GMT Message-Id: <201203022230.q22MUAQf039590@freefall.freebsd.org> To: freebsd-i386@FreeBSD.org From: Byron Young Cc: Subject: Re: i386/165561: K8N890M-M Boot Hang X-BeenThere: freebsd-i386@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Byron Young List-Id: I386-specific issues for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Mar 2012 22:30:10 -0000 The following reply was made to PR i386/165561; it has been noted by GNATS. From: Byron Young To: "bug-followup@FreeBSD.org" Cc: Subject: Re: i386/165561: K8N890M-M Boot Hang Date: Fri, 2 Mar 2012 14:13:05 -0800 (PST) --1993147269-1217604498-1330726385=:22524 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable The hang happens on the boot machine (console=3Dvidconsole) at the instruct= ion as indicated in the listing from the pci_cfgreg.c snippit and the VIDCO= NSOLE OUTPUT. If booting via console=3Dcomconsole only, the boot continues,= as shown in BEGIN COMCONSOLE BOOT CONTINUE listing.=0A=0A=3D=3D=3D=3D=3DBE= GIN VIDCONSOLE OUTPUT=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=0AOK boot -d=0AKDB: debugger backends: ddb=0AKDB: current b= ackend: ddb=0AKDB: enter: Boot flags requested debugger=0A[ thread pid 0 ti= d 0 ]=0AStopped at=A0=A0=A0=A0=A0 kdb_enter+0x3a: movl=A0=A0=A0 $0,kdb_why= =0Adb> b pcib_alloc_window=0Adb> cont=0ACopyright (c) 1992-2012 The FreeBSD= Project.=0ACopyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1= 993, 1994=0A=A0=A0=A0 The Regents of the University of California. All righ= ts reserved.=0AFreeBSD is a registered trademark of The FreeBSD Foundation.= =0AFreeBSD 9.0-RELEASE #2: Thu Mar=A0 1 11:11:06 PST 2012=0A=A0=A0=A0 root@= butler.bkyoung.com:/usr/obj/usr/src/sys/BUTLER i386=0ACPU: AMD Athlon(tm) 6= 4 Processor 3800+ (2394.05-MHz 686-class CPU)=0A=A0 Origin =3D "AuthenticAM= D"=A0 Id =3D 0x50ff2=A0 Family =3D f=A0 Model =3D 5f=A0 Stepping =3D 2=0A= =A0 Features=3D0x78bfbff=0A=A0 Features2=3D0x2001=0A=A0 AMD Features=3D0xea500800=0A=A0 AMD Features2=3D0x1d=0Areal memo= ry=A0 =3D 2147483648 (2048 MB)=0Aavail memory =3D 1822670848 (1738 MB)=0AEv= ent timer "LAPIC" quality 400=0AACPI APIC Table: =0Aioap= ic0 irqs 0-23 on motherboard=0Aioapic1 irqs 24-= 47 on motherboard=0Akbd1 at kbdmux0=0Aacpi0: on motherboard= =0Aacpi0: Power Button (fixed)=0Aacpi0: reservation of 0, a0000 (3) failed= =0Aacpi0: reservation of 100000, 7ff00000 (3) failed=0ATimecounter "ACPI-fa= st" frequency 3579545 Hz quality 900=0Aacpi_timer0: <24-bit timer at 3.5795= 45MHz> port 0x808-0x80b on acpi0=0Acpu0: on acpi0=0Apcib0: port 0xcf8-0xcff on acpi0=0Apci0: on pcib0= =0Apcib1: at device 1.0 on pci0=0A[ thread pid 0 tid = 100000 ]=0ABreakpoint at=A0=A0 pcib_alloc_window:=A0=A0=A0=A0=A0 pushl=A0= =A0 %ebp=0Adb> =0A[ thread pid 0 tid 100000 ]=0ABreakpoint at=A0=A0 pcib_al= loc_window:=A0=A0=A0=A0=A0 pushl=A0=A0 %ebp=0Adb> =0A[ thread pid 0 tid 100= 000 ]=0ABreakpoint at=A0=A0 pcib_alloc_window:=A0=A0=A0=A0=A0 pushl=A0=A0 %= ebp=0Adb> b pci_write_config_method=0Adb> cont=0Apcib1: failed to allocate = initial prefetch window: 0xd0000000-0xdfffffff=0A[ thread pid 0 tid 100000 = ]=0ABreakpoint at=A0=A0 pci_write_config_method:=A0=A0=A0=A0=A0=A0=A0 pushl= =A0=A0 %ebp=0Adb> =0A[ thread pid 0 tid 100000 ]=0ABreakpoint at=A0=A0 pci_= write_config_method:=A0=A0=A0=A0=A0=A0=A0 pushl=A0=A0 %ebp=0Adb> =0Apci1: <= ACPI PCI bus> on pcib1=0A[ thread pid 0 tid 100000 ]=0ABreakpoint at=A0=A0 = pci_write_config_method:=A0=A0=A0=A0=A0=A0=A0 pushl=A0=A0 %ebp=0Adb> =0A[ t= hread pid 0 tid 100000 ]=0ABreakpoint at=A0=A0 pci_write_config_method:=A0= =A0=A0=A0=A0=A0=A0 pushl=A0=A0 %ebp=0Adb> =0A[ thread pid 0 tid 100000 ]=0A= Breakpoint at=A0=A0 pci_write_config_method:=A0=A0=A0=A0=A0=A0=A0 pushl=A0= =A0 %ebp=0Adb> =0A[ thread pid 0 tid 100000 ]=0ABreakpoint at=A0=A0 pci_wri= te_config_method:=A0=A0=A0=A0=A0=A0=A0 pushl=A0=A0 %ebp=0Adb> =0A[ thread p= id 0 tid 100000 ]=0ABreakpoint at=A0=A0 pci_write_config_method:=A0=A0=A0= =A0=A0=A0=A0 pushl=A0=A0 %ebp=0Adb> =0A[ thread pid 0 tid 100000 ]=0ABreakp= oint at=A0=A0 pci_write_config_method:=A0=A0=A0=A0=A0=A0=A0 pushl=A0=A0 %eb= p=0Adb> =0A[ thread pid 0 tid 100000 ]=0ABreakpoint at=A0=A0 pci_write_conf= ig_method:=A0=A0=A0=A0=A0=A0=A0 pushl=A0=A0 %ebp=0Adb> =0A[ thread pid 0 ti= d 100000 ]=0ABreakpoint at=A0=A0 pci_write_config_method:=A0=A0=A0=A0=A0=A0= =A0 pushl=A0=A0 %ebp=0Adb> =0A[ thread pid 0 tid 100000 ]=0ABreakpoint at= =A0=A0 pci_write_config_method:=A0=A0=A0=A0=A0=A0=A0 pushl=A0=A0 %ebp=0Adb>= =0A[ thread pid 0 tid 100000 ]=0ABreakpoint at=A0=A0 pci_write_config_meth= od:=A0=A0=A0=A0=A0=A0=A0 pushl=A0=A0 %ebp=0Adb> b pci_cfgregwrite=0Adb> con= t=0A[ thread pid 0 tid 100000 ]=0ABreakpoint at=A0=A0 pci_cfgregwrite:=A0= =A0=A0=A0=A0=A0=A0 pushl=A0=A0 %ebp=0Adb> s=0A[ thread pid 0 tid 100000 ]= =0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x1:=A0=A0=A0 movl=A0=A0=A0 %e= sp,%ebp=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pc= i_cfgregwrite+0x3:=A0=A0=A0 subl=A0=A0=A0 $0x30,%esp=0Adb> =0A[ thread pid = 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x6:=A0=A0=A0 mo= vl=A0=A0=A0 %ebx,0xfffffff4(%ebp)=0Adb> =0A[ thread pid 0 tid 100000 ]=0ASt= opped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x9:=A0=A0=A0 movl=A0=A0=A0 %esi,0x= fffffff8(%ebp)=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0= =A0=A0 pci_cfgregwrite+0xc:=A0=A0=A0 movl=A0=A0=A0 %edi,0xfffffffc(%ebp)=0A= db> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwr= ite+0xf:=A0=A0=A0 movl=A0=A0=A0 0x8(%ebp),%esi=0Adb> =0A[ thread pid 0 tid = 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x12:=A0=A0 movl=A0=A0= =A0 0x1c(%ebp),%edi=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0= =A0=A0=A0 pci_cfgregwrite+0x15:=A0=A0 cmpl=A0=A0=A0 $0x3,cfgmech=0Adb> =0A[= thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x1c= :=A0=A0 jnz=A0=A0=A0=A0 pci_cfgregwrite+0x1b0=0Adb> =0A[ thread pid 0 tid 1= 00000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x22:=A0=A0 cmpl=A0=A0= =A0 %esi,pcie_minbus=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0= =A0=A0=A0=A0 pci_cfgregwrite+0x28:=A0=A0 jnle=A0=A0=A0 pci_cfgregwrite+0x1b= 0=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgr= egwrite+0x2e:=A0=A0 cmpl=A0=A0=A0 pcie_maxbus,%esi=0Adb> =0A[ thread pid 0 = tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x34:=A0=A0 jnle= =A0=A0=A0 pci_cfgregwrite+0x1b0=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStop= ped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x3a:=A0=A0 testl=A0=A0 %esi,%esi=0Ad= b> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwri= te+0x3c:=A0=A0 jnz=A0=A0=A0=A0 pci_cfgregwrite+0x55=0Adb> =0A[ thread pid 0= tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x55:=A0=A0 cmpl= =A0=A0=A0 $0x1f,0xc(%ebp)=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at= =A0=A0=A0=A0=A0 pci_cfgregwrite+0x59:=A0=A0 jnbe=A0=A0=A0 pci_cfgregwrite+0= x288=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_c= fgregwrite+0x5f:=A0=A0 cmpl=A0=A0=A0 $0x7,0x10(%ebp)=0Adb> =0A[ thread pid = 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x63:=A0=A0 jnbe= =A0=A0=A0 pci_cfgregwrite+0x288=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStop= ped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x69:=A0=A0 cmpl=A0=A0=A0 $0xfff,0x14= (%ebp)=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci= _cfgregwrite+0x70:=A0=A0 jnbe=A0=A0=A0 pci_cfgregwrite+0x288=0Adb> =0A[ thr= ead pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x76:=A0= =A0 call=A0=A0=A0 critical_enter=0Adb> =0A[ thread pid 0 tid 100000 ]=0ASto= pped at=A0=A0=A0=A0=A0 critical_enter: pushl=A0=A0 %ebp=0Adb> n=0AAfter 7 i= nstructions (0 loads, 0 stores),=0A[ thread pid 0 tid 100000 ]=0AStopped at= =A0=A0=A0=A0=A0 critical_enter+0x1a:=A0=A0=A0 ret=0Adb> s=0A[ thread pid 0 = tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x7b:=A0=A0 movl= =A0=A0=A0 %esi,%edx=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0= =A0=A0=A0 pci_cfgregwrite+0x7d:=A0=A0 andl=A0=A0=A0 $0xff,%edx=0Adb> =0A[ t= hread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x83:= =A0=A0 shll=A0=A0=A0 $0x14,%edx=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStop= ped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x86:=A0=A0 orl=A0=A0=A0=A0 pcie_base= ,%edx=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_= cfgregwrite+0x8c:=A0=A0 movl=A0=A0=A0 0xc(%ebp),%eax=0Adb> =0A[ thread pid = 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x8f:=A0=A0 andl= =A0=A0=A0 $0x1f,%eax=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0= =A0=A0=A0=A0 pci_cfgregwrite+0x92:=A0=A0 shll=A0=A0=A0 $0xf,%eax=0Adb> =0A[= thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x95= :=A0=A0 orl=A0=A0=A0=A0 %eax,%edx=0Adb> =0A[ thread pid 0 tid 100000 ]=0ASt= opped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x97:=A0=A0 movl=A0=A0=A0 0x10(%ebp= ),%eax=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci= _cfgregwrite+0x9a:=A0=A0 andl=A0=A0=A0 $0x7,%eax=0Adb> =0A[ thread pid 0 ti= d 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x9d:=A0=A0 shll=A0= =A0=A0 $0xc,%eax=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0= =A0=A0 pci_cfgregwrite+0xa0:=A0=A0 orl=A0=A0=A0=A0 %eax,%edx=0Adb> =0A[ thr= ead pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0xa2:=A0= =A0 movl=A0=A0=A0 0x14(%ebp),%eax=0Adb> =0A[ thread pid 0 tid 100000 ]=0ASt= opped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0xa5:=A0=A0 andl=A0=A0=A0 $0xfff,%e= ax=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfg= regwrite+0xaa:=A0=A0 orl=A0=A0=A0=A0 %eax,%edx=0Adb> =0A[ thread pid 0 tid = 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0xac:=A0=A0 movl=A0=A0= =A0 %edx,0xffffffe4(%ebp)=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at= =A0=A0=A0=A0=A0 pci_cfgregwrite+0xaf:=A0=A0 movl=A0=A0=A0 %edx,%esi=0Adb> = =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+= 0xb1:=A0=A0 andl=A0=A0=A0 $0xfffff000,%esi=0Adb> =0A[ thread pid 0 tid 1000= 00 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0xb7:=A0=A0 movl=A0=A0=A0 = %fs:0x20,%eax=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0= =A0 pci_cfgregwrite+0xbd:=A0=A0 movl=A0=A0=A0 %eax,0xffffffec(%ebp)=0Adb> = =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+= 0xc0:=A0=A0 shll=A0=A0=A0 $0x3,%eax=0Adb> =0A[ thread pid 0 tid 100000 ]=0A= Stopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0xc3:=A0=A0 leal=A0=A0=A0 pcie_li= st(%eax),%edx=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0= =A0 pci_cfgregwrite+0xc9:=A0=A0 movl=A0=A0=A0 %edx,0xffffffe8(%ebp)=0Adb> = =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+= 0xcc:=A0=A0 movl=A0=A0=A0 pcie_list(%eax),%ebx=0Adb> =0A[ thread pid 0 tid = 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0xd2:=A0=A0 testl=A0= =A0 %ebx,%ebx=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0= =A0 pci_cfgregwrite+0xd4:=A0=A0 jz=A0=A0=A0=A0=A0 pci_cfgregwrite+0xeb=0Adb= > =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrit= e+0xd6:=A0=A0 cmpl=A0=A0=A0 0xc(%ebx),%esi=0Adb> =0A[ thread pid 0 tid 1000= 00 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0xd9:=A0=A0 jnz=A0=A0=A0= =A0 pci_cfgregwrite+0xe5=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at= =A0=A0=A0=A0=A0 pci_cfgregwrite+0xdb:=A0=A0 jmp=A0=A0=A0=A0 pci_cfgregwrite= +0x11f=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci= _cfgregwrite+0x11f:=A0 movl=A0=A0=A0 0xffffffe8(%ebp),%eax=0Adb> =0A[ threa= d pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x122:=A0 = cmpl=A0=A0=A0 %ebx,0(%eax)=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped a= t=A0=A0=A0=A0=A0 pci_cfgregwrite+0x124:=A0 jz=A0=A0=A0=A0=A0 pci_cfgregwrit= e+0x164=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pc= i_cfgregwrite+0x164:=A0 movl=A0=A0=A0 0x18(%ebp),%edx=0Adb> =0A[ thread pid= 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x167:=A0 movl= =A0=A0=A0 0xffffffe4(%ebp),%eax=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStop= ped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x16a:=A0 andl=A0=A0=A0 $0xfff,%eax= =0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgre= gwrite+0x16f:=A0 orl=A0=A0=A0=A0 0x8(%ebx),%eax=0Adb> =0A[ thread pid 0 tid= 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x172:=A0 movl=A0=A0= =A0 %eax,0xfffffff0(%ebp)=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at= =A0=A0=A0=A0=A0 pci_cfgregwrite+0x175:=A0 cmpl=A0=A0=A0 $0x2,%edi=0Adb> =0A= [ thread pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x1= 78:=A0 jz=A0=A0=A0=A0=A0 pci_cfgregwrite+0x192=0Adb> =0A[ thread pid 0 tid = 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x192:=A0 movl=A0=A0= =A0 0xfffffff0(%ebp),%eax=0Adb> =0A[ thread pid 0 tid 100000 ]=0AStopped at= =A0=A0=A0=A0=A0 pci_cfgregwrite+0x195:=A0 movw=A0=A0=A0 %dx,0(%eax)=0Adb>= =0A=3D=3D=3D=3D=3DEND VIDCONSOLE OUTPUT=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A=0A=3D=3D=3D=3D=3DBEGIN COMCONSOLE BOOT= CONTINUE=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0Aprint %eax=0Ac0d66855= =0Adb> x/wx 0xc0d66855=0Apci_cfgregwrite+0x195:=A0 eb108966=0Adb> s=0A[ thr= ead pid 0 tid 100000 ]=0AStopped at=A0=A0=A0=A0=A0 pci_cfgregwrite+0x198:= =A0 jmp=A0=A0=A0=A0 pci_cfgregwrite+0x19f=0Adb> pint %dx=0ANo such command= =0Adb> print %dx=0Ac0d66858=0Adb> =0A=3D=3D=3D=3DEND COMCONSOLE BOOT CONTIN= UE=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A=0A=3D=3D=3D=3DBEGIN SNIPPIT F= ROM pci_cfgreg.c=0A00000380 :=0A/* =0A=A0* Write configura= tion space register =0A=A0*/=0Avoid=0Apci_cfgregwrite(int bus, int slot, in= t func, int reg, u_int32_t data, int bytes)=0A{=0A=A0380:=A0=A0=A0 55=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 push=A0=A0 %ebp= =0A=A0381:=A0=A0=A0 89 e5=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0= =A0=A0 mov=A0=A0=A0 %esp,%ebp=0A=A0383:=A0=A0=A0 83 ec 30=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 =A0=A0=A0 sub=A0=A0=A0 $0x30,%esp=0A=A0386:=A0=A0=A0 89 = 5d f4=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 %ebx,-0xc(= %ebp)=0A=A0389:=A0=A0=A0 89 75 f8=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0= =A0=A0 mov=A0=A0=A0 %esi,-0x8(%ebp)=0A=A038c:=A0=A0=A0 89 7d fc=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 %edi,-0x4(%ebp)=0A=A038f:= =A0=A0=A0 8b 75 08=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0= =A0 0x8(%ebp),%esi=0A=A0392:=A0=A0=A0 8b 7d 1c=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 0x1c(%ebp),%edi=0A=0A=A0=A0=A0 if (cfgmech= =3D=3D CFGMECH_PCIE &&=0A=A0395:=A0=A0=A0 83 3d 34 01 00 00 03 =A0=A0=A0 c= mpl=A0=A0 $0x3,0x134=0A=A039c:=A0=A0=A0 0f 85 8e 01 00 00=A0=A0=A0 =A0=A0= =A0 jne=A0=A0=A0 530 =0A=A03a2:=A0=A0=A0 39 35 28 01= 00 00=A0=A0=A0 =A0=A0=A0 cmp=A0=A0=A0 %esi,0x128=0A=A03a8:=A0=A0=A0 0f 8f = 82 01 00 00=A0=A0=A0 =A0=A0=A0 jg=A0=A0=A0=A0 530 = =0A=A03ae:=A0=A0=A0 3b 35 2c 01 00 00=A0=A0=A0 =A0=A0=A0 cmp=A0=A0=A0 0x12c= ,%esi=0A=A03b4:=A0=A0=A0 0f 8f 76 01 00 00=A0=A0=A0 =A0=A0=A0 jg=A0=A0=A0= =A0 530 =0A=A03ba:=A0=A0=A0 85 f6=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 test=A0=A0 %esi,%esi=0A=A03bc:=A0=A0= =A0 75 17=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 jne=A0=A0= =A0 3d5 =0A=A03be:=A0=A0=A0 b8 01 00 00 00=A0=A0=A0= =A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 $0x1,%eax=0A=A03c3:=A0=A0=A0 0f b6 4d 0c= =A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 movzbl 0xc(%ebp),%ecx=0A=A03c7:=A0=A0= =A0 d3 e0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 shl=A0=A0= =A0 %cl,%eax=0A=A03c9:=A0=A0=A0 85 05 30 01 00 00=A0=A0=A0 =A0=A0=A0 test= =A0=A0 %eax,0x130=0A=A03cf:=A0=A0=A0 0f 85 5b 01 00 00=A0=A0=A0 =A0=A0=A0 j= ne=A0=A0=A0 530 =0A{=0A=A0=A0=A0 struct pcie_cfg_ele= m *elem;=0A=A0=A0=A0 volatile vm_offset_t va;=0A=A0=A0=A0 vm_paddr_t pa, pa= page;=0A=0A=A0=A0=A0 if (bus < pcie_minbus || bus > pcie_maxbus || slot > P= CI_SLOTMAX ||=0A=A03d5:=A0=A0=A0 83 7d 0c 1f=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0= =A0=A0 cmpl=A0=A0 $0x1f,0xc(%ebp)=0A=A03d9:=A0=A0=A0 0f 87 29 02 00 00=A0= =A0=A0 =A0=A0=A0 ja=A0=A0=A0=A0 608 =0A=A03df:=A0=A0= =A0 83 7d 10 07=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 cmpl=A0=A0 $0x7,0x10(%= ebp)=0A=A03e3:=A0=A0=A0 0f 87 1f 02 00 00=A0=A0=A0 =A0=A0=A0 ja=A0=A0=A0=A0= 608 =0A=A03e9:=A0=A0=A0 81 7d 14 ff 0f 00 00 =A0=A0= =A0 cmpl=A0=A0 $0xfff,0x14(%ebp)=0A=A03f0:=A0=A0=A0 0f 87 12 02 00 00=A0=A0= =A0 =A0=A0=A0 ja=A0=A0=A0=A0 608 =0A=A0=A0=A0 =A0=A0= =A0 func > PCI_FUNCMAX || reg > PCIE_REGMAX)=0A=A0=A0=A0 =A0=A0=A0 return;= =0A=0A=A0=A0=A0 critical_enter();=0A=A03f6:=A0=A0=A0 e8 fc ff ff ff=A0=A0= =A0=A0=A0=A0 =A0=A0=A0 call=A0=A0 3f7 =0A=A0=A0=A0 pa= =3D PCIE_PADDR(pcie_base, reg, bus, slot, func);=0A=A03fb:=A0=A0=A0 89 f2= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 %esi,%= edx=0A=A03fd:=A0=A0=A0 81 e2 ff 00 00 00=A0=A0=A0 =A0=A0=A0 and=A0=A0=A0 $0= xff,%edx=0A=A0403:=A0=A0=A0 c1 e2 14=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 = =A0=A0=A0 shl=A0=A0=A0 $0x14,%edx=0A=A0406:=A0=A0=A0 0b 15 20 01 00 00=A0= =A0=A0 =A0=A0=A0 or=A0=A0=A0=A0 0x120,%edx=0A=A040c:=A0=A0=A0 8b 45 0c=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 0xc(%ebp),%eax=0A= =A040f:=A0=A0=A0 83 e0 1f=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 and= =A0=A0=A0 $0x1f,%eax=0A=A0412:=A0=A0=A0 c1 e0 0f=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0 =A0=A0=A0 shl=A0=A0=A0 $0xf,%eax=0A=A0415:=A0=A0=A0 09 c2=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 or=A0=A0=A0=A0 %eax,%edx= =0A=A0417:=A0=A0=A0 8b 45 10=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 = mov=A0=A0=A0 0x10(%ebp),%eax=0A=A041a:=A0=A0=A0 83 e0 07=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 =A0=A0=A0 and=A0=A0=A0 $0x7,%eax=0A=A041d:=A0=A0=A0 c1 e= 0 0c=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 shl=A0=A0=A0 $0xc,%eax= =0A=A0420:=A0=A0=A0 09 c2=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0= =A0=A0 or=A0=A0=A0=A0 %eax,%edx=0A=A0422:=A0=A0=A0 8b 45 14=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 0x14(%ebp),%eax=0A=A0425:=A0= =A0=A0 25 ff 0f 00 00=A0=A0=A0=A0=A0=A0 =A0=A0=A0 and=A0=A0=A0 $0xfff,%eax= =0A=A042a:=A0=A0=A0 09 c2=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0= =A0=A0 or=A0=A0=A0=A0 %eax,%edx=0A=A042c:=A0=A0=A0 89 55 e4=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 %edx,-0x1c(%ebp)=0A=A0=A0=A0 p= apage =3D pa & ~PAGE_MASK;=0A=A042f:=A0=A0=A0 89 d6=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 %edx,%esi=0A=A0431:=A0=A0=A0 8= 1 e6 00 f0 ff ff=A0=A0=A0 =A0=A0=A0 and=A0=A0=A0 $0xfffff000,%esi=0Apciereg= _findelem(vm_paddr_t papage)=0A{=0A=A0=A0=A0 struct pcie_cfg_list *pcielist= ;=0A=A0=A0=A0 struct pcie_cfg_elem *elem;=0A=0A=A0=A0=A0 pcielist =3D &pcie= _list[PCPU_GET(cpuid)];=0A=A0437:=A0=A0=A0 64 a1 20 00 00 00=A0=A0=A0 =A0= =A0=A0 mov=A0=A0=A0 %fs:0x20,%eax=0A=A043d:=A0=A0=A0 89 45 ec=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 %eax,-0x14(%ebp)=0A=A0440:= =A0=A0=A0 c1 e0 03=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 shl=A0=A0= =A0 $0x3,%eax=0A=A0443:=A0=A0=A0 8d 90 20 00 00 00=A0=A0=A0 =A0=A0=A0 lea= =A0=A0=A0 0x20(%eax),%edx=0A=A0449:=A0=A0=A0 89 55 e8=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 %edx,-0x18(%ebp)=0A=A0=A0=A0 TAILQ_F= OREACH(elem, pcielist, elem) {=0A=A044c:=A0=A0=A0 8b 98 20 00 00 00=A0=A0= =A0 =A0=A0=A0 mov=A0=A0=A0 0x20(%eax),%ebx=0A=A0452:=A0=A0=A0 85 db=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 test=A0=A0 %ebx,%ebx=0A= =A0454:=A0=A0=A0 74 15=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0= =A0 je=A0=A0=A0=A0 46b =0A=A0=A0=A0 =A0=A0=A0 if (ele= m->papage =3D=3D papage)=0A=A0456:=A0=A0=A0 3b 73 0c=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 =A0=A0=A0 cmp=A0=A0=A0 0xc(%ebx),%esi=0A=A0459:=A0=A0=A0 75= 0a=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 jne=A0=A0=A0 465= =0A=A045b:=A0=A0=A0 eb 42=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 =A0=A0=A0 jmp=A0=A0=A0 49f =0A=A0= 45d:=A0=A0=A0 8d 76 00=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 lea=A0= =A0=A0 0x0(%esi),%esi=0A=A0460:=A0=A0=A0 3b 73 0c=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0 =A0=A0=A0 cmp=A0=A0=A0 0xc(%ebx),%esi=0A=A0463:=A0=A0=A0 74 3a= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 je=A0=A0=A0=A0 49f = =0A{=0A=A0=A0=A0 struct pcie_cfg_list *pcielist;=0A= =A0=A0=A0 struct pcie_cfg_elem *elem;=0A=0A=A0=A0=A0 pcielist =3D &pcie_lis= t[PCPU_GET(cpuid)];=0A=A0=A0=A0 TAILQ_FOREACH(elem, pcielist, elem) {=0A=A0= 465:=A0=A0=A0 8b 1b=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 = mov=A0=A0=A0 (%ebx),%ebx=0A=A0467:=A0=A0=A0 85 db=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 test=A0=A0 %ebx,%ebx=0A=A0469:=A0=A0=A0 75 = f5=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 jne=A0=A0=A0 460 = =0A=A0=A0=A0 =A0=A0=A0 if (elem->papage =3D=3D papage= )=0A=A0=A0=A0 =A0=A0=A0 =A0=A0=A0 break;=0A=A0=A0=A0 }=0A=0A=A0=A0=A0 if (e= lem =3D=3D NULL) {=0A=A0=A0=A0 =A0=A0=A0 elem =3D TAILQ_LAST(pcielist, pcie= _cfg_list);=0A=A046b:=A0=A0=A0 8b 4d e8=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0 mov=A0=A0=A0 -0x18(%ebp),%ecx=0A=A046e:=A0=A0=A0 8b 41 04=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 0x4(%ecx),%eax=0A=A04= 71:=A0=A0=A0 8b 40 04=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0= =A0=A0 0x4(%eax),%eax=0A=A0474:=A0=A0=A0 8b 18=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 (%eax),%ebx=0A=A0=A0=A0 =A0=A0=A0= if (elem->papage !=3D 0) {=0A=A0476:=A0=A0=A0 83 7b 0c 00=A0=A0=A0=A0=A0= =A0=A0=A0=A0 =A0=A0=A0 cmpl=A0=A0 $0x0,0xc(%ebx)=0A=A047a:=A0=A0=A0 74 11= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 je=A0=A0=A0=A0 48d = =0A=A0=A0=A0 =A0=A0=A0 =A0=A0=A0 pmap_kremove(elem->= vapage);=0A=A047c:=A0=A0=A0 8b 43 08=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 = =A0=A0=A0 mov=A0=A0=A0 0x8(%ebx),%eax=0A=A047f:=A0=A0=A0 89 04 24=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 %eax,(%esp)=0A=A0482:=A0= =A0=A0 e8 fc ff ff ff=A0=A0=A0=A0=A0=A0 =A0=A0=A0 call=A0=A0 483 =0A{=0A=0A#ifdef XEN=0A=A0=A0=A0 xen_invlpg(addr);=0A#else=0A= =A0=A0=A0 __asm __volatile("invlpg %0" : : "m" (*(char *)addr) : "memory");= =0A=A0487:=A0=A0=A0 8b 43 08=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 = mov=A0=A0=A0 0x8(%ebx),%eax=0A=A048a:=A0=A0=A0 0f 01 38=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 =A0=A0=A0 invlpg (%eax)=0A=A0=A0=A0 =A0=A0=A0 =A0=A0=A0 = invlpg(elem->vapage);=0A=A0=A0=A0 =A0=A0=A0 }=0A=A0=A0=A0 =A0=A0=A0 pmap_ke= nter(elem->vapage, papage);=0A=A048d:=A0=A0=A0 8b 43 08=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 0x8(%ebx),%eax=0A=A0490:=A0=A0=A0= 89 74 24 04=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 %esi,0x4(%es= p)=0A=A0494:=A0=A0=A0 89 04 24=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0= =A0 mov=A0=A0=A0 %eax,(%esp)=0A=A0497:=A0=A0=A0 e8 fc ff ff ff=A0=A0=A0=A0= =A0=A0 =A0=A0=A0 call=A0=A0 498 =0A=A0=A0=A0 =A0=A0= =A0 elem->papage =3D papage;=0A=A049c:=A0=A0=A0 89 73 0c=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 %esi,0xc(%ebx)=0A=A0=A0=A0 }=0A= =0A=A0=A0=A0 if (elem !=3D TAILQ_FIRST(pcielist)) {=0A=A049f:=A0=A0=A0 8b 4= 5 e8=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 -0x18(%ebp)= ,%eax=0A=A04a2:=A0=A0=A0 39 18=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0 cmp=A0=A0=A0 %ebx,(%eax)=0A=A04a4:=A0=A0=A0 74 3e=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 je=A0=A0=A0=A0 4e4 =0A=A0=A0=A0 =A0=A0=A0 TAILQ_REMOVE(pcielist, elem, elem);=0A=A04a6= :=A0=A0=A0 8b 13=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov= =A0=A0=A0 (%ebx),%edx=0A=A04a8:=A0=A0=A0 85 d2=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 =A0=A0=A0 test=A0=A0 %edx,%edx=0A=A04aa:=A0=A0=A0 74 08= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 je=A0=A0=A0=A0 4b4 = =0A=A04ac:=A0=A0=A0 8b 43 04=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 0x4(%ebx),%eax=0A=A04af:=A0=A0=A0 89 42= 04=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 %eax,0x4(%ed= x)=0A=A04b2:=A0=A0=A0 eb 09=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 = =A0=A0=A0 jmp=A0=A0=A0 4bd =0A=A04b4:=A0=A0=A0 8b 43= 04=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 0x4(%ebx),%e= ax=0A=A04b7:=A0=A0=A0 8b 55 e8=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0= =A0 mov=A0=A0=A0 -0x18(%ebp),%edx=0A=A04ba:=A0=A0=A0 89 42 04=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 %eax,0x4(%edx)=0A=A04bd:=A0= =A0=A0 8b 43 04=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 = 0x4(%ebx),%eax=0A=A04c0:=A0=A0=A0 8b 13=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 (%ebx),%edx=0A=A04c2:=A0=A0=A0 89 10=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 %edx,(%eax)= =0A=A0=A0=A0 =A0=A0=A0 TAILQ_INSERT_HEAD(pcielist, elem, elem);=0A=A04c4:= =A0=A0=A0 8b 4d e8=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0= =A0 -0x18(%ebp),%ecx=0A=A04c7:=A0=A0=A0 8b 01=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 (%ecx),%eax=0A=A04c9:=A0=A0=A0 89 03= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 %eax,(= %ebx)=0A=A04cb:=A0=A0=A0 85 c0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0 test=A0=A0 %eax,%eax=0A=A04cd:=A0=A0=A0 74 07=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 je=A0=A0=A0=A0 4d6 =0A=A04cf:=A0=A0=A0 8b 01=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0 mov=A0=A0=A0 (%ecx),%eax=0A=A04d1:=A0=A0=A0 89 58 04=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 %ebx,0x4(%eax)=0A=A04d4:=A0= =A0=A0 eb 06=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 jmp=A0= =A0=A0 4dc =0A=A04d6:=A0=A0=A0 8b 45 e8=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 -0x18(%ebp),%eax=0A=A04d9:= =A0=A0=A0 89 58 04=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0= =A0 %ebx,0x4(%eax)=0A=A04dc:=A0=A0=A0 8b 55 e8=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 -0x18(%ebp),%edx=0A=A04df:=A0=A0=A0 89 1a= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 %ebx,(= %edx)=0A=A04e1:=A0=A0=A0 89 53 04=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0= =A0=A0 mov=A0=A0=A0 %edx,0x4(%ebx)=0A{=0A=0A=A0=A0=A0 if (cfgmech =3D=3D CF= GMECH_PCIE &&=0A=A0=A0=A0 =A0=A0=A0 (bus >=3D pcie_minbus && bus <=3D pcie_= maxbus) &&=0A=A0=A0=A0 =A0=A0=A0 (bus !=3D 0 || !(1 << slot & pcie_badslots= )))=0A=A0=A0=A0 =A0=A0=A0 pciereg_cfgwrite(bus, slot, func, reg, data, byte= s);=0A=A04e4:=A0=A0=A0 8b 55 18=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0= =A0 mov=A0=A0=A0 0x18(%ebp),%edx=0A=0A=A0=A0=A0 critical_enter();=0A=A0=A0= =A0 pa =3D PCIE_PADDR(pcie_base, reg, bus, slot, func);=0A=A0=A0=A0 papage = =3D pa & ~PAGE_MASK;=0A=A0=A0=A0 elem =3D pciereg_findelem(papage);=0A=A0= =A0=A0 va =3D elem->vapage | (pa & PAGE_MASK);=0A=A04e7:=A0=A0=A0 8b 45 e4= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 -0x1c(%ebp),%ea= x=0A=A04ea:=A0=A0=A0 25 ff 0f 00 00=A0=A0=A0=A0=A0=A0 =A0=A0=A0 and=A0=A0= =A0 $0xfff,%eax=0A=A04ef:=A0=A0=A0 0b 43 08=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0 =A0=A0=A0 or=A0=A0=A0=A0 0x8(%ebx),%eax=0A=A04f2:=A0=A0=A0 89 45 f0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 %eax,-0x10(%ebp= )=0A=0A=A0=A0=A0 switch (bytes) {=0A=A04f5:=A0=A0=A0 83 ff 02=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 cmp=A0=A0=A0 $0x2,%edi=0A=A04f8:=A0=A0= =A0 74 18=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 je=A0=A0= =A0=A0 512 =0A=A04fa:=A0=A0=A0 83 ff 04=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 cmp=A0=A0=A0 $0x4,%edi=0A=A04fd:=A0=A0= =A0 74 07=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 je=A0=A0= =A0=A0 506 =0A=A04ff:=A0=A0=A0 83 ff 01=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 cmp=A0=A0=A0 $0x1,%edi=0A=A0502:=A0=A0= =A0 75 1b=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 jne=A0=A0= =A0 51f =0A=A0504:=A0=A0=A0 eb 14=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 jmp=A0=A0=A0 51a =0A=A0=A0=A0 case 4:=0A=A0=A0=A0 =A0=A0=A0 *(volatile uint32_t *)(va) = =3D data;=0A=A0506:=A0=A0=A0 8b 45 f0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 = =A0=A0=A0 mov=A0=A0=A0 -0x10(%ebp),%eax=0A=A0509:=A0=A0=A0 8b 4d 18=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 0x18(%ebp),%ecx=0A=A0= 50c:=A0=A0=A0 89 08=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 = mov=A0=A0=A0 %ecx,(%eax)=0A=A050e:=A0=A0=A0 66 90=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 xchg=A0=A0 %ax,%ax=0A=A0510:=A0=A0=A0 eb 0d= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 jmp=A0=A0=A0 51f =0A=A0=A0=A0 =A0=A0=A0 break;=0A=A0=A0=A0 case 2:=0A= =A0=A0=A0 =A0=A0=A0 *(volatile uint16_t *)(va) =3D data;=0A=A0512:=A0=A0=A0= 8b 45 f0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 -0x10(= %ebp),%eax=0A=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= =3D=3D VIDCONSOLE BOOT HANGS HERE AT mov %dx,(%eax)=0A=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A=A0515:=A0=A0=A0 66 89 10=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 %dx,(%eax)=0A=A0518:=A0= =A0=A0 eb 05=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 jmp=A0= =A0=A0 51f =0A=A0=A0=A0 =A0=A0=A0 break;=0A=A0=A0=A0= case 1:=0A=A0=A0=A0 =A0=A0=A0 *(volatile uint8_t *)(va) =3D data;=0A=A051a= :=A0=A0=A0 8b 45 f0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0= =A0 -0x10(%ebp),%eax=0A=A051d:=A0=A0=A0 88 10=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 =A0=A0=A0 mov=A0=A0=A0 %dl,(%eax)=0A=A0=A0=A0 =A0=A0=A0 bre= ak;=0A=A0=A0=A0 }=0A=0A=A0=A0=A0 critical_exit();=0A=A051f:=A0=A0=A0 e8 fc = ff ff ff=A0=A0=A0=A0=A0=A0 =A0=A0=A0 call=A0=A0 520 = =0A=A0524:=A0=A0=A0 e9 df 00 00 00=A0=A0=A0=A0=A0=A0 =A0=A0=A0 jmp=A0=A0=A0= 608 =0A=A0529:=A0=A0=A0 8d b4 26 00 00 00 00 =A0=A0= =A0 lea=A0=A0=A0 0x0(%esi),%esi=0A=3D=3D=3D=3DEND SNIPPIT FROM pci_cfgreg.c= =0A --1993147269-1217604498-1330726385=:22524 Content-Type: text/plain; name="out.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="out.txt" PGJ1Zy1mb2xsb3d1cEBGcmVlQlNELm9yZz4KUmU6IGkzODYvMTY1NTYxOiBL OE44OTBNLU0gQm9vdCBIYW5nCgpUaGUgaGFuZyBoYXBwZW5zIG9uIHRoZSBi b290IG1hY2hpbmUgKGNvbnNvbGU9dmlkY29uc29sZSkgYXQgdGhlIGluc3Ry dWN0aW9uIGFzIGluZGljYXRlZCBpbiB0aGUgbGlzdGluZyBmcm9tIHRoZSBw Y2lfY2ZncmVnLmMgc25pcHBpdCBhbmQgdGhlIFZJRENPTlNPTEUgT1VUUFVU LiBJZiBib290aW5nIHZpYSBjb25zb2xlPWNvbWNvbnNvbGUgb25seSwgdGhl IGJvb3QgY29udGludWVzLCBhcyBzaG93biBpbiBCRUdJTiBDT01DT05TT0xF IEJPT1QgQ09OVElOVUUgbGlzdGluZy4KCj09PT09QkVHSU4gVklEQ09OU09M RSBPVVRQVVQ9PT09PT09PT09PT09PT09PT09PT09PQpPSyBib290IC1kCktE QjogZGVidWdnZXIgYmFja2VuZHM6IGRkYgpLREI6IGN1cnJlbnQgYmFja2Vu ZDogZGRiCktEQjogZW50ZXI6IEJvb3QgZmxhZ3MgcmVxdWVzdGVkIGRlYnVn Z2VyClsgdGhyZWFkIHBpZCAwIHRpZCAwIF0KU3RvcHBlZCBhdCAgICAgIGtk Yl9lbnRlcisweDNhOiBtb3ZsICAgICQwLGtkYl93aHkKZGI+IGIgcGNpYl9h bGxvY193aW5kb3cKZGI+IGNvbnQKQ29weXJpZ2h0IChjKSAxOTkyLTIwMTIg VGhlIEZyZWVCU0QgUHJvamVjdC4KQ29weXJpZ2h0IChjKSAxOTc5LCAxOTgw LCAxOTgzLCAxOTg2LCAxOTg4LCAxOTg5LCAxOTkxLCAxOTkyLCAxOTkzLCAx OTk0CglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9y bmlhLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpGcmVlQlNEIGlzIGEgcmVnaXN0 ZXJlZCB0cmFkZW1hcmsgb2YgVGhlIEZyZWVCU0QgRm91bmRhdGlvbi4KRnJl ZUJTRCA5LjAtUkVMRUFTRSAjMjogVGh1IE1hciAgMSAxMToxMTowNiBQU1Qg MjAxMgogICAgcm9vdEBidXRsZXIuYmt5b3VuZy5jb206L3Vzci9vYmovdXNy L3NyYy9zeXMvQlVUTEVSIGkzODYKQ1BVOiBBTUQgQXRobG9uKHRtKSA2NCBQ cm9jZXNzb3IgMzgwMCsgKDIzOTQuMDUtTUh6IDY4Ni1jbGFzcyBDUFUpCiAg T3JpZ2luID0gIkF1dGhlbnRpY0FNRCIgIElkID0gMHg1MGZmMiAgRmFtaWx5 ID0gZiAgTW9kZWwgPSA1ZiAgU3RlcHBpbmcgPSAyCiAgRmVhdHVyZXM9MHg3 OGJmYmZmPEZQVSxWTUUsREUsUFNFLFRTQyxNU1IsUEFFLE1DRSxDWDgsQVBJ QyxTRVAsTVRSUixQR0UsTUNBLENNT1YsUEFULFBTRTM2LENMRkxVU0gsTU1Y LEZYU1IsU1NFLFNTRTI+CiAgRmVhdHVyZXMyPTB4MjAwMTxTU0UzLENYMTY+ CiAgQU1EIEZlYXR1cmVzPTB4ZWE1MDA4MDA8U1lTQ0FMTCxOWCxNTVgrLEZG WFNSLFJEVFNDUCxMTSwzRE5vdyErLDNETm93IT4KICBBTUQgRmVhdHVyZXMy PTB4MWQ8TEFIRixTVk0sRXh0QVBJQyxDUjg+CnJlYWwgbWVtb3J5ICA9IDIx NDc0ODM2NDggKDIwNDggTUIpCmF2YWlsIG1lbW9yeSA9IDE4MjI2NzA4NDgg KDE3MzggTUIpCkV2ZW50IHRpbWVyICJMQVBJQyIgcXVhbGl0eSA0MDAKQUNQ SSBBUElDIFRhYmxlOiA8QSBNIEkgIE9FTUFQSUMgPgppb2FwaWMwIDxWZXJz aW9uIDAuMz4gaXJxcyAwLTIzIG9uIG1vdGhlcmJvYXJkCmlvYXBpYzEgPFZl cnNpb24gMC4zPiBpcnFzIDI0LTQ3IG9uIG1vdGhlcmJvYXJkCmtiZDEgYXQg a2JkbXV4MAphY3BpMDogPEEgTSBJIE9FTVJTRFQ+IG9uIG1vdGhlcmJvYXJk CmFjcGkwOiBQb3dlciBCdXR0b24gKGZpeGVkKQphY3BpMDogcmVzZXJ2YXRp b24gb2YgMCwgYTAwMDAgKDMpIGZhaWxlZAphY3BpMDogcmVzZXJ2YXRpb24g b2YgMTAwMDAwLCA3ZmYwMDAwMCAoMykgZmFpbGVkClRpbWVjb3VudGVyICJB Q1BJLWZhc3QiIGZyZXF1ZW5jeSAzNTc5NTQ1IEh6IHF1YWxpdHkgOTAwCmFj cGlfdGltZXIwOiA8MjQtYml0IHRpbWVyIGF0IDMuNTc5NTQ1TUh6PiBwb3J0 IDB4ODA4LTB4ODBiIG9uIGFjcGkwCmNwdTA6IDxBQ1BJIENQVT4gb24gYWNw aTAKcGNpYjA6IDxBQ1BJIEhvc3QtUENJIGJyaWRnZT4gcG9ydCAweGNmOC0w eGNmZiBvbiBhY3BpMApwY2kwOiA8QUNQSSBQQ0kgYnVzPiBvbiBwY2liMApw Y2liMTogPEFDUEkgUENJLVBDSSBicmlkZ2U+IGF0IGRldmljZSAxLjAgb24g cGNpMApbIHRocmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0KQnJlYWtwb2ludCBh dCAgIHBjaWJfYWxsb2Nfd2luZG93OiAgICAgIHB1c2hsICAgJWVicApkYj4g ClsgdGhyZWFkIHBpZCAwIHRpZCAxMDAwMDAgXQpCcmVha3BvaW50IGF0ICAg cGNpYl9hbGxvY193aW5kb3c6ICAgICAgcHVzaGwgICAlZWJwCmRiPiAKWyB0 aHJlYWQgcGlkIDAgdGlkIDEwMDAwMCBdCkJyZWFrcG9pbnQgYXQgICBwY2li X2FsbG9jX3dpbmRvdzogICAgICBwdXNobCAgICVlYnAKZGI+IGIgcGNpX3dy aXRlX2NvbmZpZ19tZXRob2QKZGI+IGNvbnQKcGNpYjE6IGZhaWxlZCB0byBh bGxvY2F0ZSBpbml0aWFsIHByZWZldGNoIHdpbmRvdzogMHhkMDAwMDAwMC0w eGRmZmZmZmZmClsgdGhyZWFkIHBpZCAwIHRpZCAxMDAwMDAgXQpCcmVha3Bv aW50IGF0ICAgcGNpX3dyaXRlX2NvbmZpZ19tZXRob2Q6ICAgICAgICBwdXNo bCAgICVlYnAKZGI+IApbIHRocmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0KQnJl YWtwb2ludCBhdCAgIHBjaV93cml0ZV9jb25maWdfbWV0aG9kOiAgICAgICAg cHVzaGwgICAlZWJwCmRiPiAKcGNpMTogPEFDUEkgUENJIGJ1cz4gb24gcGNp YjEKWyB0aHJlYWQgcGlkIDAgdGlkIDEwMDAwMCBdCkJyZWFrcG9pbnQgYXQg ICBwY2lfd3JpdGVfY29uZmlnX21ldGhvZDogICAgICAgIHB1c2hsICAgJWVi cApkYj4gClsgdGhyZWFkIHBpZCAwIHRpZCAxMDAwMDAgXQpCcmVha3BvaW50 IGF0ICAgcGNpX3dyaXRlX2NvbmZpZ19tZXRob2Q6ICAgICAgICBwdXNobCAg ICVlYnAKZGI+IApbIHRocmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0KQnJlYWtw b2ludCBhdCAgIHBjaV93cml0ZV9jb25maWdfbWV0aG9kOiAgICAgICAgcHVz aGwgICAlZWJwCmRiPiAKWyB0aHJlYWQgcGlkIDAgdGlkIDEwMDAwMCBdCkJy ZWFrcG9pbnQgYXQgICBwY2lfd3JpdGVfY29uZmlnX21ldGhvZDogICAgICAg IHB1c2hsICAgJWVicApkYj4gClsgdGhyZWFkIHBpZCAwIHRpZCAxMDAwMDAg XQpCcmVha3BvaW50IGF0ICAgcGNpX3dyaXRlX2NvbmZpZ19tZXRob2Q6ICAg ICAgICBwdXNobCAgICVlYnAKZGI+IApbIHRocmVhZCBwaWQgMCB0aWQgMTAw MDAwIF0KQnJlYWtwb2ludCBhdCAgIHBjaV93cml0ZV9jb25maWdfbWV0aG9k OiAgICAgICAgcHVzaGwgICAlZWJwCmRiPiAKWyB0aHJlYWQgcGlkIDAgdGlk IDEwMDAwMCBdCkJyZWFrcG9pbnQgYXQgICBwY2lfd3JpdGVfY29uZmlnX21l dGhvZDogICAgICAgIHB1c2hsICAgJWVicApkYj4gClsgdGhyZWFkIHBpZCAw IHRpZCAxMDAwMDAgXQpCcmVha3BvaW50IGF0ICAgcGNpX3dyaXRlX2NvbmZp Z19tZXRob2Q6ICAgICAgICBwdXNobCAgICVlYnAKZGI+IApbIHRocmVhZCBw aWQgMCB0aWQgMTAwMDAwIF0KQnJlYWtwb2ludCBhdCAgIHBjaV93cml0ZV9j b25maWdfbWV0aG9kOiAgICAgICAgcHVzaGwgICAlZWJwCmRiPiAKWyB0aHJl YWQgcGlkIDAgdGlkIDEwMDAwMCBdCkJyZWFrcG9pbnQgYXQgICBwY2lfd3Jp dGVfY29uZmlnX21ldGhvZDogICAgICAgIHB1c2hsICAgJWVicApkYj4gYiBw Y2lfY2ZncmVnd3JpdGUKZGI+IGNvbnQKWyB0aHJlYWQgcGlkIDAgdGlkIDEw MDAwMCBdCkJyZWFrcG9pbnQgYXQgICBwY2lfY2ZncmVnd3JpdGU6ICAgICAg ICBwdXNobCAgICVlYnAKZGI+IHMKWyB0aHJlYWQgcGlkIDAgdGlkIDEwMDAw MCBdClN0b3BwZWQgYXQgICAgICBwY2lfY2ZncmVnd3JpdGUrMHgxOiAgICBt b3ZsICAgICVlc3AsJWVicApkYj4gClsgdGhyZWFkIHBpZCAwIHRpZCAxMDAw MDAgXQpTdG9wcGVkIGF0ICAgICAgcGNpX2NmZ3JlZ3dyaXRlKzB4MzogICAg c3VibCAgICAkMHgzMCwlZXNwCmRiPiAKWyB0aHJlYWQgcGlkIDAgdGlkIDEw MDAwMCBdClN0b3BwZWQgYXQgICAgICBwY2lfY2ZncmVnd3JpdGUrMHg2OiAg ICBtb3ZsICAgICVlYngsMHhmZmZmZmZmNCglZWJwKQpkYj4gClsgdGhyZWFk IHBpZCAwIHRpZCAxMDAwMDAgXQpTdG9wcGVkIGF0ICAgICAgcGNpX2NmZ3Jl Z3dyaXRlKzB4OTogICAgbW92bCAgICAlZXNpLDB4ZmZmZmZmZjgoJWVicCkK ZGI+IApbIHRocmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0KU3RvcHBlZCBhdCAg ICAgIHBjaV9jZmdyZWd3cml0ZSsweGM6ICAgIG1vdmwgICAgJWVkaSwweGZm ZmZmZmZjKCVlYnApCmRiPiAKWyB0aHJlYWQgcGlkIDAgdGlkIDEwMDAwMCBd ClN0b3BwZWQgYXQgICAgICBwY2lfY2ZncmVnd3JpdGUrMHhmOiAgICBtb3Zs ICAgIDB4OCglZWJwKSwlZXNpCmRiPiAKWyB0aHJlYWQgcGlkIDAgdGlkIDEw MDAwMCBdClN0b3BwZWQgYXQgICAgICBwY2lfY2ZncmVnd3JpdGUrMHgxMjog ICBtb3ZsICAgIDB4MWMoJWVicCksJWVkaQpkYj4gClsgdGhyZWFkIHBpZCAw IHRpZCAxMDAwMDAgXQpTdG9wcGVkIGF0ICAgICAgcGNpX2NmZ3JlZ3dyaXRl KzB4MTU6ICAgY21wbCAgICAkMHgzLGNmZ21lY2gKZGI+IApbIHRocmVhZCBw aWQgMCB0aWQgMTAwMDAwIF0KU3RvcHBlZCBhdCAgICAgIHBjaV9jZmdyZWd3 cml0ZSsweDFjOiAgIGpueiAgICAgcGNpX2NmZ3JlZ3dyaXRlKzB4MWIwCmRi PiAKWyB0aHJlYWQgcGlkIDAgdGlkIDEwMDAwMCBdClN0b3BwZWQgYXQgICAg ICBwY2lfY2ZncmVnd3JpdGUrMHgyMjogICBjbXBsICAgICVlc2kscGNpZV9t aW5idXMKZGI+IApbIHRocmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0KU3RvcHBl ZCBhdCAgICAgIHBjaV9jZmdyZWd3cml0ZSsweDI4OiAgIGpubGUgICAgcGNp X2NmZ3JlZ3dyaXRlKzB4MWIwCmRiPiAKWyB0aHJlYWQgcGlkIDAgdGlkIDEw MDAwMCBdClN0b3BwZWQgYXQgICAgICBwY2lfY2ZncmVnd3JpdGUrMHgyZTog ICBjbXBsICAgIHBjaWVfbWF4YnVzLCVlc2kKZGI+IApbIHRocmVhZCBwaWQg MCB0aWQgMTAwMDAwIF0KU3RvcHBlZCBhdCAgICAgIHBjaV9jZmdyZWd3cml0 ZSsweDM0OiAgIGpubGUgICAgcGNpX2NmZ3JlZ3dyaXRlKzB4MWIwCmRiPiAK WyB0aHJlYWQgcGlkIDAgdGlkIDEwMDAwMCBdClN0b3BwZWQgYXQgICAgICBw Y2lfY2ZncmVnd3JpdGUrMHgzYTogICB0ZXN0bCAgICVlc2ksJWVzaQpkYj4g ClsgdGhyZWFkIHBpZCAwIHRpZCAxMDAwMDAgXQpTdG9wcGVkIGF0ICAgICAg cGNpX2NmZ3JlZ3dyaXRlKzB4M2M6ICAgam56ICAgICBwY2lfY2ZncmVnd3Jp dGUrMHg1NQpkYj4gClsgdGhyZWFkIHBpZCAwIHRpZCAxMDAwMDAgXQpTdG9w cGVkIGF0ICAgICAgcGNpX2NmZ3JlZ3dyaXRlKzB4NTU6ICAgY21wbCAgICAk MHgxZiwweGMoJWVicCkKZGI+IApbIHRocmVhZCBwaWQgMCB0aWQgMTAwMDAw IF0KU3RvcHBlZCBhdCAgICAgIHBjaV9jZmdyZWd3cml0ZSsweDU5OiAgIGpu YmUgICAgcGNpX2NmZ3JlZ3dyaXRlKzB4Mjg4CmRiPiAKWyB0aHJlYWQgcGlk IDAgdGlkIDEwMDAwMCBdClN0b3BwZWQgYXQgICAgICBwY2lfY2ZncmVnd3Jp dGUrMHg1ZjogICBjbXBsICAgICQweDcsMHgxMCglZWJwKQpkYj4gClsgdGhy ZWFkIHBpZCAwIHRpZCAxMDAwMDAgXQpTdG9wcGVkIGF0ICAgICAgcGNpX2Nm Z3JlZ3dyaXRlKzB4NjM6ICAgam5iZSAgICBwY2lfY2ZncmVnd3JpdGUrMHgy ODgKZGI+IApbIHRocmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0KU3RvcHBlZCBh dCAgICAgIHBjaV9jZmdyZWd3cml0ZSsweDY5OiAgIGNtcGwgICAgJDB4ZmZm LDB4MTQoJWVicCkKZGI+IApbIHRocmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0K U3RvcHBlZCBhdCAgICAgIHBjaV9jZmdyZWd3cml0ZSsweDcwOiAgIGpuYmUg ICAgcGNpX2NmZ3JlZ3dyaXRlKzB4Mjg4CmRiPiAKWyB0aHJlYWQgcGlkIDAg dGlkIDEwMDAwMCBdClN0b3BwZWQgYXQgICAgICBwY2lfY2ZncmVnd3JpdGUr MHg3NjogICBjYWxsICAgIGNyaXRpY2FsX2VudGVyCmRiPiAKWyB0aHJlYWQg cGlkIDAgdGlkIDEwMDAwMCBdClN0b3BwZWQgYXQgICAgICBjcml0aWNhbF9l bnRlcjogcHVzaGwgICAlZWJwCmRiPiBuCkFmdGVyIDcgaW5zdHJ1Y3Rpb25z ICgwIGxvYWRzLCAwIHN0b3JlcyksClsgdGhyZWFkIHBpZCAwIHRpZCAxMDAw MDAgXQpTdG9wcGVkIGF0ICAgICAgY3JpdGljYWxfZW50ZXIrMHgxYTogICAg cmV0CmRiPiBzClsgdGhyZWFkIHBpZCAwIHRpZCAxMDAwMDAgXQpTdG9wcGVk IGF0ICAgICAgcGNpX2NmZ3JlZ3dyaXRlKzB4N2I6ICAgbW92bCAgICAlZXNp LCVlZHgKZGI+IApbIHRocmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0KU3RvcHBl ZCBhdCAgICAgIHBjaV9jZmdyZWd3cml0ZSsweDdkOiAgIGFuZGwgICAgJDB4 ZmYsJWVkeApkYj4gClsgdGhyZWFkIHBpZCAwIHRpZCAxMDAwMDAgXQpTdG9w cGVkIGF0ICAgICAgcGNpX2NmZ3JlZ3dyaXRlKzB4ODM6ICAgc2hsbCAgICAk MHgxNCwlZWR4CmRiPiAKWyB0aHJlYWQgcGlkIDAgdGlkIDEwMDAwMCBdClN0 b3BwZWQgYXQgICAgICBwY2lfY2ZncmVnd3JpdGUrMHg4NjogICBvcmwgICAg IHBjaWVfYmFzZSwlZWR4CmRiPiAKWyB0aHJlYWQgcGlkIDAgdGlkIDEwMDAw MCBdClN0b3BwZWQgYXQgICAgICBwY2lfY2ZncmVnd3JpdGUrMHg4YzogICBt b3ZsICAgIDB4YyglZWJwKSwlZWF4CmRiPiAKWyB0aHJlYWQgcGlkIDAgdGlk IDEwMDAwMCBdClN0b3BwZWQgYXQgICAgICBwY2lfY2ZncmVnd3JpdGUrMHg4 ZjogICBhbmRsICAgICQweDFmLCVlYXgKZGI+IApbIHRocmVhZCBwaWQgMCB0 aWQgMTAwMDAwIF0KU3RvcHBlZCBhdCAgICAgIHBjaV9jZmdyZWd3cml0ZSsw eDkyOiAgIHNobGwgICAgJDB4ZiwlZWF4CmRiPiAKWyB0aHJlYWQgcGlkIDAg dGlkIDEwMDAwMCBdClN0b3BwZWQgYXQgICAgICBwY2lfY2ZncmVnd3JpdGUr MHg5NTogICBvcmwgICAgICVlYXgsJWVkeApkYj4gClsgdGhyZWFkIHBpZCAw IHRpZCAxMDAwMDAgXQpTdG9wcGVkIGF0ICAgICAgcGNpX2NmZ3JlZ3dyaXRl KzB4OTc6ICAgbW92bCAgICAweDEwKCVlYnApLCVlYXgKZGI+IApbIHRocmVh ZCBwaWQgMCB0aWQgMTAwMDAwIF0KU3RvcHBlZCBhdCAgICAgIHBjaV9jZmdy ZWd3cml0ZSsweDlhOiAgIGFuZGwgICAgJDB4NywlZWF4CmRiPiAKWyB0aHJl YWQgcGlkIDAgdGlkIDEwMDAwMCBdClN0b3BwZWQgYXQgICAgICBwY2lfY2Zn cmVnd3JpdGUrMHg5ZDogICBzaGxsICAgICQweGMsJWVheApkYj4gClsgdGhy ZWFkIHBpZCAwIHRpZCAxMDAwMDAgXQpTdG9wcGVkIGF0ICAgICAgcGNpX2Nm Z3JlZ3dyaXRlKzB4YTA6ICAgb3JsICAgICAlZWF4LCVlZHgKZGI+IApbIHRo cmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0KU3RvcHBlZCBhdCAgICAgIHBjaV9j ZmdyZWd3cml0ZSsweGEyOiAgIG1vdmwgICAgMHgxNCglZWJwKSwlZWF4CmRi PiAKWyB0aHJlYWQgcGlkIDAgdGlkIDEwMDAwMCBdClN0b3BwZWQgYXQgICAg ICBwY2lfY2ZncmVnd3JpdGUrMHhhNTogICBhbmRsICAgICQweGZmZiwlZWF4 CmRiPiAKWyB0aHJlYWQgcGlkIDAgdGlkIDEwMDAwMCBdClN0b3BwZWQgYXQg ICAgICBwY2lfY2ZncmVnd3JpdGUrMHhhYTogICBvcmwgICAgICVlYXgsJWVk eApkYj4gClsgdGhyZWFkIHBpZCAwIHRpZCAxMDAwMDAgXQpTdG9wcGVkIGF0 ICAgICAgcGNpX2NmZ3JlZ3dyaXRlKzB4YWM6ICAgbW92bCAgICAlZWR4LDB4 ZmZmZmZmZTQoJWVicCkKZGI+IApbIHRocmVhZCBwaWQgMCB0aWQgMTAwMDAw IF0KU3RvcHBlZCBhdCAgICAgIHBjaV9jZmdyZWd3cml0ZSsweGFmOiAgIG1v dmwgICAgJWVkeCwlZXNpCmRiPiAKWyB0aHJlYWQgcGlkIDAgdGlkIDEwMDAw MCBdClN0b3BwZWQgYXQgICAgICBwY2lfY2ZncmVnd3JpdGUrMHhiMTogICBh bmRsICAgICQweGZmZmZmMDAwLCVlc2kKZGI+IApbIHRocmVhZCBwaWQgMCB0 aWQgMTAwMDAwIF0KU3RvcHBlZCBhdCAgICAgIHBjaV9jZmdyZWd3cml0ZSsw eGI3OiAgIG1vdmwgICAgJWZzOjB4MjAsJWVheApkYj4gClsgdGhyZWFkIHBp ZCAwIHRpZCAxMDAwMDAgXQpTdG9wcGVkIGF0ICAgICAgcGNpX2NmZ3JlZ3dy aXRlKzB4YmQ6ICAgbW92bCAgICAlZWF4LDB4ZmZmZmZmZWMoJWVicCkKZGI+ IApbIHRocmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0KU3RvcHBlZCBhdCAgICAg IHBjaV9jZmdyZWd3cml0ZSsweGMwOiAgIHNobGwgICAgJDB4MywlZWF4CmRi PiAKWyB0aHJlYWQgcGlkIDAgdGlkIDEwMDAwMCBdClN0b3BwZWQgYXQgICAg ICBwY2lfY2ZncmVnd3JpdGUrMHhjMzogICBsZWFsICAgIHBjaWVfbGlzdCgl ZWF4KSwlZWR4CmRiPiAKWyB0aHJlYWQgcGlkIDAgdGlkIDEwMDAwMCBdClN0 b3BwZWQgYXQgICAgICBwY2lfY2ZncmVnd3JpdGUrMHhjOTogICBtb3ZsICAg ICVlZHgsMHhmZmZmZmZlOCglZWJwKQpkYj4gClsgdGhyZWFkIHBpZCAwIHRp ZCAxMDAwMDAgXQpTdG9wcGVkIGF0ICAgICAgcGNpX2NmZ3JlZ3dyaXRlKzB4 Y2M6ICAgbW92bCAgICBwY2llX2xpc3QoJWVheCksJWVieApkYj4gClsgdGhy ZWFkIHBpZCAwIHRpZCAxMDAwMDAgXQpTdG9wcGVkIGF0ICAgICAgcGNpX2Nm Z3JlZ3dyaXRlKzB4ZDI6ICAgdGVzdGwgICAlZWJ4LCVlYngKZGI+IApbIHRo cmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0KU3RvcHBlZCBhdCAgICAgIHBjaV9j ZmdyZWd3cml0ZSsweGQ0OiAgIGp6ICAgICAgcGNpX2NmZ3JlZ3dyaXRlKzB4 ZWIKZGI+IApbIHRocmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0KU3RvcHBlZCBh dCAgICAgIHBjaV9jZmdyZWd3cml0ZSsweGQ2OiAgIGNtcGwgICAgMHhjKCVl YngpLCVlc2kKZGI+IApbIHRocmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0KU3Rv cHBlZCBhdCAgICAgIHBjaV9jZmdyZWd3cml0ZSsweGQ5OiAgIGpueiAgICAg cGNpX2NmZ3JlZ3dyaXRlKzB4ZTUKZGI+IApbIHRocmVhZCBwaWQgMCB0aWQg MTAwMDAwIF0KU3RvcHBlZCBhdCAgICAgIHBjaV9jZmdyZWd3cml0ZSsweGRi OiAgIGptcCAgICAgcGNpX2NmZ3JlZ3dyaXRlKzB4MTFmCmRiPiAKWyB0aHJl YWQgcGlkIDAgdGlkIDEwMDAwMCBdClN0b3BwZWQgYXQgICAgICBwY2lfY2Zn cmVnd3JpdGUrMHgxMWY6ICBtb3ZsICAgIDB4ZmZmZmZmZTgoJWVicCksJWVh eApkYj4gClsgdGhyZWFkIHBpZCAwIHRpZCAxMDAwMDAgXQpTdG9wcGVkIGF0 ICAgICAgcGNpX2NmZ3JlZ3dyaXRlKzB4MTIyOiAgY21wbCAgICAlZWJ4LDAo JWVheCkKZGI+IApbIHRocmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0KU3RvcHBl ZCBhdCAgICAgIHBjaV9jZmdyZWd3cml0ZSsweDEyNDogIGp6ICAgICAgcGNp X2NmZ3JlZ3dyaXRlKzB4MTY0CmRiPiAKWyB0aHJlYWQgcGlkIDAgdGlkIDEw MDAwMCBdClN0b3BwZWQgYXQgICAgICBwY2lfY2ZncmVnd3JpdGUrMHgxNjQ6 ICBtb3ZsICAgIDB4MTgoJWVicCksJWVkeApkYj4gClsgdGhyZWFkIHBpZCAw IHRpZCAxMDAwMDAgXQpTdG9wcGVkIGF0ICAgICAgcGNpX2NmZ3JlZ3dyaXRl KzB4MTY3OiAgbW92bCAgICAweGZmZmZmZmU0KCVlYnApLCVlYXgKZGI+IApb IHRocmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0KU3RvcHBlZCBhdCAgICAgIHBj aV9jZmdyZWd3cml0ZSsweDE2YTogIGFuZGwgICAgJDB4ZmZmLCVlYXgKZGI+ IApbIHRocmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0KU3RvcHBlZCBhdCAgICAg IHBjaV9jZmdyZWd3cml0ZSsweDE2ZjogIG9ybCAgICAgMHg4KCVlYngpLCVl YXgKZGI+IApbIHRocmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0KU3RvcHBlZCBh dCAgICAgIHBjaV9jZmdyZWd3cml0ZSsweDE3MjogIG1vdmwgICAgJWVheCww eGZmZmZmZmYwKCVlYnApCmRiPiAKWyB0aHJlYWQgcGlkIDAgdGlkIDEwMDAw MCBdClN0b3BwZWQgYXQgICAgICBwY2lfY2ZncmVnd3JpdGUrMHgxNzU6ICBj bXBsICAgICQweDIsJWVkaQpkYj4gClsgdGhyZWFkIHBpZCAwIHRpZCAxMDAw MDAgXQpTdG9wcGVkIGF0ICAgICAgcGNpX2NmZ3JlZ3dyaXRlKzB4MTc4OiAg anogICAgICBwY2lfY2ZncmVnd3JpdGUrMHgxOTIKZGI+IApbIHRocmVhZCBw aWQgMCB0aWQgMTAwMDAwIF0KU3RvcHBlZCBhdCAgICAgIHBjaV9jZmdyZWd3 cml0ZSsweDE5MjogIG1vdmwgICAgMHhmZmZmZmZmMCglZWJwKSwlZWF4CmRi PiAKWyB0aHJlYWQgcGlkIDAgdGlkIDEwMDAwMCBdClN0b3BwZWQgYXQgICAg ICBwY2lfY2ZncmVnd3JpdGUrMHgxOTU6ICBtb3Z3ICAgICVkeCwwKCVlYXgp CmRiPgo9PT09PUVORCBWSURDT05TT0xFIE9VVFBVVD09PT09PT09PT09PT09 PT09PT09PT09Cgo9PT09PUJFR0lOIENPTUNPTlNPTEUgQk9PVCBDT05USU5V RT09PT09PT09PT09PT09CnByaW50ICVlYXgKYzBkNjY4NTUKZGI+IHgvd3gg MHhjMGQ2Njg1NQpwY2lfY2ZncmVnd3JpdGUrMHgxOTU6ICBlYjEwODk2Ngpk Yj4gcwpbIHRocmVhZCBwaWQgMCB0aWQgMTAwMDAwIF0KU3RvcHBlZCBhdCAg ICAgIHBjaV9jZmdyZWd3cml0ZSsweDE5ODogIGptcCAgICAgcGNpX2NmZ3Jl Z3dyaXRlKzB4MTlmCmRiPiBwaW50ICVkeApObyBzdWNoIGNvbW1hbmQKZGI+ IHByaW50ICVkeApjMGQ2Njg1OApkYj4gCj09PT1FTkQgQ09NQ09OU09MRSBC T09UIENPTlRJTlVFPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KCj09PT1CRUdJTiBTTklQUElUIEZST00gcGNpX2NmZ3JlZy5jCjAw MDAwMzgwIDxwY2lfY2ZncmVnd3JpdGU+OgovKiAKICogV3JpdGUgY29uZmln dXJhdGlvbiBzcGFjZSByZWdpc3RlciAKICovCnZvaWQKcGNpX2NmZ3JlZ3dy aXRlKGludCBidXMsIGludCBzbG90LCBpbnQgZnVuYywgaW50IHJlZywgdV9p bnQzMl90IGRhdGEsIGludCBieXRlcykKewogMzgwOgk1NSAgICAgICAgICAg ICAgICAgICAJcHVzaCAgICVlYnAKIDM4MToJODkgZTUgICAgICAgICAgICAg ICAgCW1vdiAgICAlZXNwLCVlYnAKIDM4MzoJODMgZWMgMzAgICAgICAgICAg ICAgCXN1YiAgICAkMHgzMCwlZXNwCiAzODY6CTg5IDVkIGY0ICAgICAgICAg ICAgIAltb3YgICAgJWVieCwtMHhjKCVlYnApCiAzODk6CTg5IDc1IGY4ICAg ICAgICAgICAgIAltb3YgICAgJWVzaSwtMHg4KCVlYnApCiAzOGM6CTg5IDdk IGZjICAgICAgICAgICAgIAltb3YgICAgJWVkaSwtMHg0KCVlYnApCiAzOGY6 CThiIDc1IDA4ICAgICAgICAgICAgIAltb3YgICAgMHg4KCVlYnApLCVlc2kK IDM5MjoJOGIgN2QgMWMgICAgICAgICAgICAgCW1vdiAgICAweDFjKCVlYnAp LCVlZGkKCglpZiAoY2ZnbWVjaCA9PSBDRkdNRUNIX1BDSUUgJiYKIDM5NToJ ODMgM2QgMzQgMDEgMDAgMDAgMDMgCWNtcGwgICAkMHgzLDB4MTM0CiAzOWM6 CTBmIDg1IDhlIDAxIDAwIDAwICAgIAlqbmUgICAgNTMwIDxwY2lfY2ZncmVn d3JpdGUrMHgxYjA+CiAzYTI6CTM5IDM1IDI4IDAxIDAwIDAwICAgIAljbXAg ICAgJWVzaSwweDEyOAogM2E4OgkwZiA4ZiA4MiAwMSAwMCAwMCAgICAJamcg ICAgIDUzMCA8cGNpX2NmZ3JlZ3dyaXRlKzB4MWIwPgogM2FlOgkzYiAzNSAy YyAwMSAwMCAwMCAgICAJY21wICAgIDB4MTJjLCVlc2kKIDNiNDoJMGYgOGYg NzYgMDEgMDAgMDAgICAgCWpnICAgICA1MzAgPHBjaV9jZmdyZWd3cml0ZSsw eDFiMD4KIDNiYToJODUgZjYgICAgICAgICAgICAgICAgCXRlc3QgICAlZXNp LCVlc2kKIDNiYzoJNzUgMTcgICAgICAgICAgICAgICAgCWpuZSAgICAzZDUg PHBjaV9jZmdyZWd3cml0ZSsweDU1PgogM2JlOgliOCAwMSAwMCAwMCAwMCAg ICAgICAJbW92ICAgICQweDEsJWVheAogM2MzOgkwZiBiNiA0ZCAwYyAgICAg ICAgICAJbW92emJsIDB4YyglZWJwKSwlZWN4CiAzYzc6CWQzIGUwICAgICAg ICAgICAgICAgIAlzaGwgICAgJWNsLCVlYXgKIDNjOToJODUgMDUgMzAgMDEg MDAgMDAgICAgCXRlc3QgICAlZWF4LDB4MTMwCiAzY2Y6CTBmIDg1IDViIDAx IDAwIDAwICAgIAlqbmUgICAgNTMwIDxwY2lfY2ZncmVnd3JpdGUrMHgxYjA+ CnsKCXN0cnVjdCBwY2llX2NmZ19lbGVtICplbGVtOwoJdm9sYXRpbGUgdm1f b2Zmc2V0X3QgdmE7Cgl2bV9wYWRkcl90IHBhLCBwYXBhZ2U7CgoJaWYgKGJ1 cyA8IHBjaWVfbWluYnVzIHx8IGJ1cyA+IHBjaWVfbWF4YnVzIHx8IHNsb3Qg PiBQQ0lfU0xPVE1BWCB8fAogM2Q1Ogk4MyA3ZCAwYyAxZiAgICAgICAgICAJ Y21wbCAgICQweDFmLDB4YyglZWJwKQogM2Q5OgkwZiA4NyAyOSAwMiAwMCAw MCAgICAJamEgICAgIDYwOCA8cGNpX2NmZ3JlZ3dyaXRlKzB4Mjg4PgogM2Rm Ogk4MyA3ZCAxMCAwNyAgICAgICAgICAJY21wbCAgICQweDcsMHgxMCglZWJw KQogM2UzOgkwZiA4NyAxZiAwMiAwMCAwMCAgICAJamEgICAgIDYwOCA8cGNp X2NmZ3JlZ3dyaXRlKzB4Mjg4PgogM2U5Ogk4MSA3ZCAxNCBmZiAwZiAwMCAw MCAJY21wbCAgICQweGZmZiwweDE0KCVlYnApCiAzZjA6CTBmIDg3IDEyIDAy IDAwIDAwICAgIAlqYSAgICAgNjA4IDxwY2lfY2ZncmVnd3JpdGUrMHgyODg+ CgkgICAgZnVuYyA+IFBDSV9GVU5DTUFYIHx8IHJlZyA+IFBDSUVfUkVHTUFY KQoJCXJldHVybjsKCgljcml0aWNhbF9lbnRlcigpOwogM2Y2OgllOCBmYyBm ZiBmZiBmZiAgICAgICAJY2FsbCAgIDNmNyA8cGNpX2NmZ3JlZ3dyaXRlKzB4 Nzc+CglwYSA9IFBDSUVfUEFERFIocGNpZV9iYXNlLCByZWcsIGJ1cywgc2xv dCwgZnVuYyk7CiAzZmI6CTg5IGYyICAgICAgICAgICAgICAgIAltb3YgICAg JWVzaSwlZWR4CiAzZmQ6CTgxIGUyIGZmIDAwIDAwIDAwICAgIAlhbmQgICAg JDB4ZmYsJWVkeAogNDAzOgljMSBlMiAxNCAgICAgICAgICAgICAJc2hsICAg ICQweDE0LCVlZHgKIDQwNjoJMGIgMTUgMjAgMDEgMDAgMDAgICAgCW9yICAg ICAweDEyMCwlZWR4CiA0MGM6CThiIDQ1IDBjICAgICAgICAgICAgIAltb3Yg ICAgMHhjKCVlYnApLCVlYXgKIDQwZjoJODMgZTAgMWYgICAgICAgICAgICAg CWFuZCAgICAkMHgxZiwlZWF4CiA0MTI6CWMxIGUwIDBmICAgICAgICAgICAg IAlzaGwgICAgJDB4ZiwlZWF4CiA0MTU6CTA5IGMyICAgICAgICAgICAgICAg IAlvciAgICAgJWVheCwlZWR4CiA0MTc6CThiIDQ1IDEwICAgICAgICAgICAg IAltb3YgICAgMHgxMCglZWJwKSwlZWF4CiA0MWE6CTgzIGUwIDA3ICAgICAg ICAgICAgIAlhbmQgICAgJDB4NywlZWF4CiA0MWQ6CWMxIGUwIDBjICAgICAg ICAgICAgIAlzaGwgICAgJDB4YywlZWF4CiA0MjA6CTA5IGMyICAgICAgICAg ICAgICAgIAlvciAgICAgJWVheCwlZWR4CiA0MjI6CThiIDQ1IDE0ICAgICAg ICAgICAgIAltb3YgICAgMHgxNCglZWJwKSwlZWF4CiA0MjU6CTI1IGZmIDBm IDAwIDAwICAgICAgIAlhbmQgICAgJDB4ZmZmLCVlYXgKIDQyYToJMDkgYzIg ICAgICAgICAgICAgICAgCW9yICAgICAlZWF4LCVlZHgKIDQyYzoJODkgNTUg ZTQgICAgICAgICAgICAgCW1vdiAgICAlZWR4LC0weDFjKCVlYnApCglwYXBh Z2UgPSBwYSAmIH5QQUdFX01BU0s7CiA0MmY6CTg5IGQ2ICAgICAgICAgICAg ICAgIAltb3YgICAgJWVkeCwlZXNpCiA0MzE6CTgxIGU2IDAwIGYwIGZmIGZm ICAgIAlhbmQgICAgJDB4ZmZmZmYwMDAsJWVzaQpwY2llcmVnX2ZpbmRlbGVt KHZtX3BhZGRyX3QgcGFwYWdlKQp7CglzdHJ1Y3QgcGNpZV9jZmdfbGlzdCAq cGNpZWxpc3Q7CglzdHJ1Y3QgcGNpZV9jZmdfZWxlbSAqZWxlbTsKCglwY2ll bGlzdCA9ICZwY2llX2xpc3RbUENQVV9HRVQoY3B1aWQpXTsKIDQzNzoJNjQg YTEgMjAgMDAgMDAgMDAgICAgCW1vdiAgICAlZnM6MHgyMCwlZWF4CiA0M2Q6 CTg5IDQ1IGVjICAgICAgICAgICAgIAltb3YgICAgJWVheCwtMHgxNCglZWJw KQogNDQwOgljMSBlMCAwMyAgICAgICAgICAgICAJc2hsICAgICQweDMsJWVh eAogNDQzOgk4ZCA5MCAyMCAwMCAwMCAwMCAgICAJbGVhICAgIDB4MjAoJWVh eCksJWVkeAogNDQ5Ogk4OSA1NSBlOCAgICAgICAgICAgICAJbW92ICAgICVl ZHgsLTB4MTgoJWVicCkKCVRBSUxRX0ZPUkVBQ0goZWxlbSwgcGNpZWxpc3Qs IGVsZW0pIHsKIDQ0YzoJOGIgOTggMjAgMDAgMDAgMDAgICAgCW1vdiAgICAw eDIwKCVlYXgpLCVlYngKIDQ1MjoJODUgZGIgICAgICAgICAgICAgICAgCXRl c3QgICAlZWJ4LCVlYngKIDQ1NDoJNzQgMTUgICAgICAgICAgICAgICAgCWpl ICAgICA0NmIgPHBjaV9jZmdyZWd3cml0ZSsweGViPgoJCWlmIChlbGVtLT5w YXBhZ2UgPT0gcGFwYWdlKQogNDU2OgkzYiA3MyAwYyAgICAgICAgICAgICAJ Y21wICAgIDB4YyglZWJ4KSwlZXNpCiA0NTk6CTc1IDBhICAgICAgICAgICAg ICAgIAlqbmUgICAgNDY1IDxwY2lfY2ZncmVnd3JpdGUrMHhlNT4KIDQ1YjoJ ZWIgNDIgICAgICAgICAgICAgICAgCWptcCAgICA0OWYgPHBjaV9jZmdyZWd3 cml0ZSsweDExZj4KIDQ1ZDoJOGQgNzYgMDAgICAgICAgICAgICAgCWxlYSAg ICAweDAoJWVzaSksJWVzaQogNDYwOgkzYiA3MyAwYyAgICAgICAgICAgICAJ Y21wICAgIDB4YyglZWJ4KSwlZXNpCiA0NjM6CTc0IDNhICAgICAgICAgICAg ICAgIAlqZSAgICAgNDlmIDxwY2lfY2ZncmVnd3JpdGUrMHgxMWY+CnsKCXN0 cnVjdCBwY2llX2NmZ19saXN0ICpwY2llbGlzdDsKCXN0cnVjdCBwY2llX2Nm Z19lbGVtICplbGVtOwoKCXBjaWVsaXN0ID0gJnBjaWVfbGlzdFtQQ1BVX0dF VChjcHVpZCldOwoJVEFJTFFfRk9SRUFDSChlbGVtLCBwY2llbGlzdCwgZWxl bSkgewogNDY1Ogk4YiAxYiAgICAgICAgICAgICAgICAJbW92ICAgICglZWJ4 KSwlZWJ4CiA0Njc6CTg1IGRiICAgICAgICAgICAgICAgIAl0ZXN0ICAgJWVi eCwlZWJ4CiA0Njk6CTc1IGY1ICAgICAgICAgICAgICAgIAlqbmUgICAgNDYw IDxwY2lfY2ZncmVnd3JpdGUrMHhlMD4KCQlpZiAoZWxlbS0+cGFwYWdlID09 IHBhcGFnZSkKCQkJYnJlYWs7Cgl9CgoJaWYgKGVsZW0gPT0gTlVMTCkgewoJ CWVsZW0gPSBUQUlMUV9MQVNUKHBjaWVsaXN0LCBwY2llX2NmZ19saXN0KTsK IDQ2YjoJOGIgNGQgZTggICAgICAgICAgICAgCW1vdiAgICAtMHgxOCglZWJw KSwlZWN4CiA0NmU6CThiIDQxIDA0ICAgICAgICAgICAgIAltb3YgICAgMHg0 KCVlY3gpLCVlYXgKIDQ3MToJOGIgNDAgMDQgICAgICAgICAgICAgCW1vdiAg ICAweDQoJWVheCksJWVheAogNDc0Ogk4YiAxOCAgICAgICAgICAgICAgICAJ bW92ICAgICglZWF4KSwlZWJ4CgkJaWYgKGVsZW0tPnBhcGFnZSAhPSAwKSB7 CiA0NzY6CTgzIDdiIDBjIDAwICAgICAgICAgIAljbXBsICAgJDB4MCwweGMo JWVieCkKIDQ3YToJNzQgMTEgICAgICAgICAgICAgICAgCWplICAgICA0OGQg PHBjaV9jZmdyZWd3cml0ZSsweDEwZD4KCQkJcG1hcF9rcmVtb3ZlKGVsZW0t PnZhcGFnZSk7CiA0N2M6CThiIDQzIDA4ICAgICAgICAgICAgIAltb3YgICAg MHg4KCVlYngpLCVlYXgKIDQ3ZjoJODkgMDQgMjQgICAgICAgICAgICAgCW1v diAgICAlZWF4LCglZXNwKQogNDgyOgllOCBmYyBmZiBmZiBmZiAgICAgICAJ Y2FsbCAgIDQ4MyA8cGNpX2NmZ3JlZ3dyaXRlKzB4MTAzPgp7CgojaWZkZWYg WEVOCgl4ZW5faW52bHBnKGFkZHIpOwojZWxzZQoJX19hc20gX192b2xhdGls ZSgiaW52bHBnICUwIiA6IDogIm0iICgqKGNoYXIgKilhZGRyKSA6ICJtZW1v cnkiKTsKIDQ4NzoJOGIgNDMgMDggICAgICAgICAgICAgCW1vdiAgICAweDgo JWVieCksJWVheAogNDhhOgkwZiAwMSAzOCAgICAgICAgICAgICAJaW52bHBn ICglZWF4KQoJCQlpbnZscGcoZWxlbS0+dmFwYWdlKTsKCQl9CgkJcG1hcF9r ZW50ZXIoZWxlbS0+dmFwYWdlLCBwYXBhZ2UpOwogNDhkOgk4YiA0MyAwOCAg ICAgICAgICAgICAJbW92ICAgIDB4OCglZWJ4KSwlZWF4CiA0OTA6CTg5IDc0 IDI0IDA0ICAgICAgICAgIAltb3YgICAgJWVzaSwweDQoJWVzcCkKIDQ5NDoJ ODkgMDQgMjQgICAgICAgICAgICAgCW1vdiAgICAlZWF4LCglZXNwKQogNDk3 OgllOCBmYyBmZiBmZiBmZiAgICAgICAJY2FsbCAgIDQ5OCA8cGNpX2NmZ3Jl Z3dyaXRlKzB4MTE4PgoJCWVsZW0tPnBhcGFnZSA9IHBhcGFnZTsKIDQ5YzoJ ODkgNzMgMGMgICAgICAgICAgICAgCW1vdiAgICAlZXNpLDB4YyglZWJ4KQoJ fQoKCWlmIChlbGVtICE9IFRBSUxRX0ZJUlNUKHBjaWVsaXN0KSkgewogNDlm Ogk4YiA0NSBlOCAgICAgICAgICAgICAJbW92ICAgIC0weDE4KCVlYnApLCVl YXgKIDRhMjoJMzkgMTggICAgICAgICAgICAgICAgCWNtcCAgICAlZWJ4LCgl ZWF4KQogNGE0Ogk3NCAzZSAgICAgICAgICAgICAgICAJamUgICAgIDRlNCA8 cGNpX2NmZ3JlZ3dyaXRlKzB4MTY0PgoJCVRBSUxRX1JFTU9WRShwY2llbGlz dCwgZWxlbSwgZWxlbSk7CiA0YTY6CThiIDEzICAgICAgICAgICAgICAgIAlt b3YgICAgKCVlYngpLCVlZHgKIDRhODoJODUgZDIgICAgICAgICAgICAgICAg CXRlc3QgICAlZWR4LCVlZHgKIDRhYToJNzQgMDggICAgICAgICAgICAgICAg CWplICAgICA0YjQgPHBjaV9jZmdyZWd3cml0ZSsweDEzND4KIDRhYzoJOGIg NDMgMDQgICAgICAgICAgICAgCW1vdiAgICAweDQoJWVieCksJWVheAogNGFm Ogk4OSA0MiAwNCAgICAgICAgICAgICAJbW92ICAgICVlYXgsMHg0KCVlZHgp CiA0YjI6CWViIDA5ICAgICAgICAgICAgICAgIAlqbXAgICAgNGJkIDxwY2lf Y2ZncmVnd3JpdGUrMHgxM2Q+CiA0YjQ6CThiIDQzIDA0ICAgICAgICAgICAg IAltb3YgICAgMHg0KCVlYngpLCVlYXgKIDRiNzoJOGIgNTUgZTggICAgICAg ICAgICAgCW1vdiAgICAtMHgxOCglZWJwKSwlZWR4CiA0YmE6CTg5IDQyIDA0 ICAgICAgICAgICAgIAltb3YgICAgJWVheCwweDQoJWVkeCkKIDRiZDoJOGIg NDMgMDQgICAgICAgICAgICAgCW1vdiAgICAweDQoJWVieCksJWVheAogNGMw Ogk4YiAxMyAgICAgICAgICAgICAgICAJbW92ICAgICglZWJ4KSwlZWR4CiA0 YzI6CTg5IDEwICAgICAgICAgICAgICAgIAltb3YgICAgJWVkeCwoJWVheCkK CQlUQUlMUV9JTlNFUlRfSEVBRChwY2llbGlzdCwgZWxlbSwgZWxlbSk7CiA0 YzQ6CThiIDRkIGU4ICAgICAgICAgICAgIAltb3YgICAgLTB4MTgoJWVicCks JWVjeAogNGM3Ogk4YiAwMSAgICAgICAgICAgICAgICAJbW92ICAgICglZWN4 KSwlZWF4CiA0Yzk6CTg5IDAzICAgICAgICAgICAgICAgIAltb3YgICAgJWVh eCwoJWVieCkKIDRjYjoJODUgYzAgICAgICAgICAgICAgICAgCXRlc3QgICAl ZWF4LCVlYXgKIDRjZDoJNzQgMDcgICAgICAgICAgICAgICAgCWplICAgICA0 ZDYgPHBjaV9jZmdyZWd3cml0ZSsweDE1Nj4KIDRjZjoJOGIgMDEgICAgICAg ICAgICAgICAgCW1vdiAgICAoJWVjeCksJWVheAogNGQxOgk4OSA1OCAwNCAg ICAgICAgICAgICAJbW92ICAgICVlYngsMHg0KCVlYXgpCiA0ZDQ6CWViIDA2 ICAgICAgICAgICAgICAgIAlqbXAgICAgNGRjIDxwY2lfY2ZncmVnd3JpdGUr MHgxNWM+CiA0ZDY6CThiIDQ1IGU4ICAgICAgICAgICAgIAltb3YgICAgLTB4 MTgoJWVicCksJWVheAogNGQ5Ogk4OSA1OCAwNCAgICAgICAgICAgICAJbW92 ICAgICVlYngsMHg0KCVlYXgpCiA0ZGM6CThiIDU1IGU4ICAgICAgICAgICAg IAltb3YgICAgLTB4MTgoJWVicCksJWVkeAogNGRmOgk4OSAxYSAgICAgICAg ICAgICAgICAJbW92ICAgICVlYngsKCVlZHgpCiA0ZTE6CTg5IDUzIDA0ICAg ICAgICAgICAgIAltb3YgICAgJWVkeCwweDQoJWVieCkKewoKCWlmIChjZmdt ZWNoID09IENGR01FQ0hfUENJRSAmJgoJICAgIChidXMgPj0gcGNpZV9taW5i dXMgJiYgYnVzIDw9IHBjaWVfbWF4YnVzKSAmJgoJICAgIChidXMgIT0gMCB8 fCAhKDEgPDwgc2xvdCAmIHBjaWVfYmFkc2xvdHMpKSkKCQlwY2llcmVnX2Nm Z3dyaXRlKGJ1cywgc2xvdCwgZnVuYywgcmVnLCBkYXRhLCBieXRlcyk7CiA0 ZTQ6CThiIDU1IDE4ICAgICAgICAgICAgIAltb3YgICAgMHgxOCglZWJwKSwl ZWR4CgoJY3JpdGljYWxfZW50ZXIoKTsKCXBhID0gUENJRV9QQUREUihwY2ll X2Jhc2UsIHJlZywgYnVzLCBzbG90LCBmdW5jKTsKCXBhcGFnZSA9IHBhICYg flBBR0VfTUFTSzsKCWVsZW0gPSBwY2llcmVnX2ZpbmRlbGVtKHBhcGFnZSk7 Cgl2YSA9IGVsZW0tPnZhcGFnZSB8IChwYSAmIFBBR0VfTUFTSyk7CiA0ZTc6 CThiIDQ1IGU0ICAgICAgICAgICAgIAltb3YgICAgLTB4MWMoJWVicCksJWVh eAogNGVhOgkyNSBmZiAwZiAwMCAwMCAgICAgICAJYW5kICAgICQweGZmZiwl ZWF4CiA0ZWY6CTBiIDQzIDA4ICAgICAgICAgICAgIAlvciAgICAgMHg4KCVl YngpLCVlYXgKIDRmMjoJODkgNDUgZjAgICAgICAgICAgICAgCW1vdiAgICAl ZWF4LC0weDEwKCVlYnApCgoJc3dpdGNoIChieXRlcykgewogNGY1Ogk4MyBm ZiAwMiAgICAgICAgICAgICAJY21wICAgICQweDIsJWVkaQogNGY4Ogk3NCAx OCAgICAgICAgICAgICAgICAJamUgICAgIDUxMiA8cGNpX2NmZ3JlZ3dyaXRl KzB4MTkyPgogNGZhOgk4MyBmZiAwNCAgICAgICAgICAgICAJY21wICAgICQw eDQsJWVkaQogNGZkOgk3NCAwNyAgICAgICAgICAgICAgICAJamUgICAgIDUw NiA8cGNpX2NmZ3JlZ3dyaXRlKzB4MTg2PgogNGZmOgk4MyBmZiAwMSAgICAg ICAgICAgICAJY21wICAgICQweDEsJWVkaQogNTAyOgk3NSAxYiAgICAgICAg ICAgICAgICAJam5lICAgIDUxZiA8cGNpX2NmZ3JlZ3dyaXRlKzB4MTlmPgog NTA0OgllYiAxNCAgICAgICAgICAgICAgICAJam1wICAgIDUxYSA8cGNpX2Nm Z3JlZ3dyaXRlKzB4MTlhPgoJY2FzZSA0OgoJCSoodm9sYXRpbGUgdWludDMy X3QgKikodmEpID0gZGF0YTsKIDUwNjoJOGIgNDUgZjAgICAgICAgICAgICAg CW1vdiAgICAtMHgxMCglZWJwKSwlZWF4CiA1MDk6CThiIDRkIDE4ICAgICAg ICAgICAgIAltb3YgICAgMHgxOCglZWJwKSwlZWN4CiA1MGM6CTg5IDA4ICAg ICAgICAgICAgICAgIAltb3YgICAgJWVjeCwoJWVheCkKIDUwZToJNjYgOTAg ICAgICAgICAgICAgICAgCXhjaGcgICAlYXgsJWF4CiA1MTA6CWViIDBkICAg ICAgICAgICAgICAgIAlqbXAgICAgNTFmIDxwY2lfY2ZncmVnd3JpdGUrMHgx OWY+CgkJYnJlYWs7CgljYXNlIDI6CgkJKih2b2xhdGlsZSB1aW50MTZfdCAq KSh2YSkgPSBkYXRhOwogNTEyOgk4YiA0NSBmMCAgICAgICAgICAgICAJbW92 ICAgIC0weDEwKCVlYnApLCVlYXgKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Cj09IFZJRENPTlNPTEUgQk9PVCBIQU5HUyBIRVJFIEFUIG1vdiAlZHgsKCVl YXgpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogNTE1Ogk2NiA4OSAxMCAg ICAgICAgICAgICAJbW92ICAgICVkeCwoJWVheCkKIDUxODoJZWIgMDUgICAg ICAgICAgICAgICAgCWptcCAgICA1MWYgPHBjaV9jZmdyZWd3cml0ZSsweDE5 Zj4KCQlicmVhazsKCWNhc2UgMToKCQkqKHZvbGF0aWxlIHVpbnQ4X3QgKiko dmEpID0gZGF0YTsKIDUxYToJOGIgNDUgZjAgICAgICAgICAgICAgCW1vdiAg ICAtMHgxMCglZWJwKSwlZWF4CiA1MWQ6CTg4IDEwICAgICAgICAgICAgICAg IAltb3YgICAgJWRsLCglZWF4KQoJCWJyZWFrOwoJfQoKCWNyaXRpY2FsX2V4 aXQoKTsKIDUxZjoJZTggZmMgZmYgZmYgZmYgICAgICAgCWNhbGwgICA1MjAg PHBjaV9jZmdyZWd3cml0ZSsweDFhMD4KIDUyNDoJZTkgZGYgMDAgMDAgMDAg ICAgICAgCWptcCAgICA2MDggPHBjaV9jZmdyZWd3cml0ZSsweDI4OD4KIDUy OToJOGQgYjQgMjYgMDAgMDAgMDAgMDAgCWxlYSAgICAweDAoJWVzaSksJWVz aQo9PT09RU5EIFNOSVBQSVQgRlJPTSBwY2lfY2ZncmVnLmMK --1993147269-1217604498-1330726385=:22524--