From nobody Mon May 6 04:36:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+83130+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+83130+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=163.com ARC-Seal: i=1; a=rsa-sha256; t=1635857748; cv=none; d=zohomail.com; s=zohoarc; b=iEq5+ZEQNYRineV162Ds/JgbDpjQ2JOWUUzb1Sp61SQXUi7vVkqzAM8cMAyWvSWffSGO2Jx37I1br38W6AnGj5a4BKEVKyTs4qRLCdAzF5AjoINty7wkmkTWHKjJ5kiPylTgGBEb/9hhMV/fABNg9hqNIrX/1tBzGJNvk3tXLWg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1635857748; h=Content-Type:Date:From:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Sender:Subject:To; bh=XuoPiGYDhLj5eg//YlJ23MKmscZKcbuuf5xlBVZBwf0=; b=VzZLZw4XWD++CB535bDw4xKcKSWZr2WY7rmFxpgloO9ETXhz7DHnnpQDScT6tPM5zbklBMLvQ3gTFlG7ZdXmrEuM4vjH9I3HHFDh8DcAYBg+qoct4ds9q7+GfD+N6uO1gOzvjivYtgWiMlY2QCgKMeoHeU/wcy5zmCR5zQ1u5gw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+83130+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1635857748568436.88768266065586; Tue, 2 Nov 2021 05:55:48 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id nlp1YY1788612xvwRZZxV8ih; Tue, 02 Nov 2021 05:55:48 -0700 X-Received: from m1391.mail.163.com (m1391.mail.163.com [220.181.13.91]) by mx.groups.io with SMTP id smtpd.web08.384.1635857745600021338 for ; Tue, 02 Nov 2021 05:55:47 -0700 X-Received: from lange_tang$163.com ( [116.128.244.169] ) by ajax-webmail-wmsvr91 (Coremail) ; Tue, 2 Nov 2021 20:55:39 +0800 (CST) X-Originating-IP: [116.128.244.169] Date: Tue, 2 Nov 2021 20:55:39 +0800 (CST) From: "Lange Tang" To: devel@edk2.groups.io Subject: [edk2-devel] The arm virtual machine displays problems in QXL during the UEFI phase X-Priority: 3 X-CM-CTRLDATA: 66xxv2Zvb3Rlcl9odG09NTA2NDo1Ng== MIME-Version: 1.0 Message-ID: <4914966b.cc0d.17ce0b82fe9.Coremail.lange_tang@163.com> X-Coremail-Locale: zh_CN X-CM-TRANSID: W8GowADHz1NLNYFhuB+GAg--.26521W X-CM-SenderInfo: 5odqwvxbwd0wi6rwjhhfrp/1tbiGgs-LlaD-8sJWAAAsw X-Coremail-Antispam: 1U5529EdanIXcx71UUUUU7vcSsGvfC2KfnxnUU== Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,lange_tang@163.com X-Gm-Message-State: XttkjCTLBhVzPlUp1gc60kpmx1787277AA= Content-Type: multipart/alternative; boundary="----=_Part_190448_1569892984.1635857739753" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1635857748; bh=XuoPiGYDhLj5eg//YlJ23MKmscZKcbuuf5xlBVZBwf0=; h=Content-Type:Date:From:Reply-To:Subject:To; b=lUuXOHUYZjCS07XVC3XlHlkE+Etd3z1QdEjYZg8uEcdS1aLdtToKzr25NlMIv/b2dZj EA5xrjK/I+UqkizO2ZYDXWF6DYIoH4TCrM54osvK0wz+Jvmz70yzgNCBVgVlTLyohK6BC 5Wyfz8sldC/p7Mo6VHc31mBoPZCegt7RWM4= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1635857749341100001 ------=_Part_190448_1569892984.1635857739753 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Hi everyone: In order to support QXL display during the UEFI phase of the arm64 virtual = machine, the modified code is as follows (based on master branch, commit id= :17143c4837393d42c484b42d1789b85b2cff1aaf): diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc index 7ef5e7297b..d73cf6aba0 100644 --- a/ArmVirtPkg/ArmVirtQemu.dsc +++ b/ArmVirtPkg/ArmVirtQemu.dsc @@ -501,6 +501,7 @@ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf OvmfPkg/VirtioGpuDxe/VirtioGpu.inf OvmfPkg/PlatformDxe/Platform.inf + OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf =20 # # USB Support diff --git a/ArmVirtPkg/ArmVirtQemu.fdf b/ArmVirtPkg/ArmVirtQemu.fdf index b5e2253295..289d0c580b 100644 --- a/ArmVirtPkg/ArmVirtQemu.fdf +++ b/ArmVirtPkg/ArmVirtQemu.fdf @@ -126,3 +126,8 @@ READ_LOCK_STATUS =3D TRUE } =20 !include ArmVirtRules.fdf.inc + +# +# VGA Module +# +# INF OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf Compiled it and generate QEMU_EFI.fd, Create virtual machines by qemu, as f= ollows: ./qemu-6.0.0/build/qemu-system-aarch64 \ -machine virt,accel=3Dkvm,usb=3Doff,dump-guest-core=3Doff,gic-version=3D3 \ -cpu host \ -m 8192 \ -smp 16 \ -bios QEMU_EFI.fd \ -vnc 127.0.0.1:19 \ -device pcie-root-port,port=3D0x8,chassis=3D1,id=3Dpci.1,bus=3Dpcie.0,multi= function=3Don,addr=3D0x1 \ -device pcie-root-port,port=3D0x9,chassis=3D2,id=3Dpci.2,bus=3Dpcie.0,addr= =3D0x1.0x1 \ -device pcie-root-port,port=3D0xa,chassis=3D3,id=3Dpci.3,bus=3Dpcie.0,addr= =3D0x1.0x2 \ -device pcie-root-port,port=3D0xb,chassis=3D4,id=3Dpci.4,bus=3Dpcie.0,addr= =3D0x1.0x3 \ -device pcie-root-port,port=3D0xc,chassis=3D5,id=3Dpci.5,bus=3Dpcie.0,addr= =3D0x1.0x4 \ -device pcie-root-port,port=3D0xd,chassis=3D6,id=3Dpci.6,bus=3Dpcie.0,addr= =3D0x1.0x5 \ -device pcie-root-port,port=3D0xe,chassis=3D7,id=3Dpci.7,bus=3Dpcie.0,addr= =3D0x1.0x6 \ -device pcie-root-port,port=3D0xf,chassis=3D8,id=3Dpci.8,bus=3Dpcie.0,addr= =3D0x1.0x7 \ -device pcie-pci-bridge,id=3Dpci.9,bus=3Dpci.6,addr=3D0x0 \ -netdev user,id=3Dhostnet0 \ -device virtio-net-pci,id=3Dhostnet0,mac=3D52:54:00:14:72:20,bus=3Dpci.1,ad= dr=3D0x0 \ -drive file=3D/var/lib/libvirt/images/tlj-kylin.qcow2,format=3Dqcow2,if=3Dn= one,id=3Ddrive-virtio-disk0 \ -device virtio-blk-pci,scsi=3Doff,bus=3Dpcie.0,addr=3D0x6,drive=3Ddrive-vir= tio-disk0,id=3Dvirtio-disk0,bootindex=3D1 \ -device qxl-vga,id=3Dvideo0,bus=3Dpci.7,addr=3D0x0 The test results are as follows: 1. When the QXL device hangs on the bus=3Dpci.9, addr=3D0x1 or bus=3Dpci.7,= addr=3D0x0, there is no display during the UEFI phase, and the following e= rror is found by debug UEFI firmware log: QemuVideo: BochsID mismatch (got 0x0). From the OgmfPkg/QemuVideoDxe/Driv= er .c 2. When the qxl device hangs in the bus=3Dpci.8, addr=3D0x0, it can be disp= layed normally during the UEFI phase. BochsID=3D0xb0c5 The way to read BochsID is PIO, and ARM does not support PIO commands, shou= ld it be changed to MMIO? Or others? Hope to receive your suggestions or comments. Thank you! Best regards -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#83130): https://edk2.groups.io/g/devel/message/83130 Mute This Topic: https://groups.io/mt/86764804/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- ------=_Part_190448_1569892984.1635857739753 Content-Type: text/html; charset=GBK Content-Transfer-Encoding: base64 PGRpdiBzdHlsZT0ibGluZS1oZWlnaHQ6MS43O2NvbG9yOiMwMDAwMDA7Zm9udC1zaXplOjE0cHg7 Zm9udC1mYW1pbHk6QXJpYWwiPjxkaXYgc3R5bGU9Im1hcmdpbjowOyI+SGkgZXZlcnlvbmU6PC9k aXY+PGRpdiBzdHlsZT0ibWFyZ2luOjA7Ij48YnI+PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOjA7 Ij5JbiBvcmRlciB0byBzdXBwb3J0IFFYTCBkaXNwbGF5IGR1cmluZyB0aGUgVUVGSSBwaGFzZSBv ZiB0aGUgYXJtNjQgdmlydHVhbCBtYWNoaW5lLCB0aGUgbW9kaWZpZWQgY29kZSBpcyBhcyBmb2xs b3dzIChiYXNlZCBvbiBtYXN0ZXIgYnJhbmNoLCBjb21taXQgaWQ6MTcxNDNjNDgzNzM5M2Q0MmM0 ODRiNDJkMTc4OWI4NWIyY2ZmMWFhZik6PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOjA7Ij48YnI+ PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOjA7Ij48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsiPmRp ZmYgLS1naXQgYS9Bcm1WaXJ0UGtnL0FybVZpcnRRZW11LmRzYyBiL0FybVZpcnRQa2cvQXJtVmly dFFlbXUuZHNjPC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7Ij5pbmRleCA3ZWY1ZTcyOTdi Li5kNzNjZjZhYmEwIDEwMDY0NDwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyI+LS0tIGEv QXJtVmlydFBrZy9Bcm1WaXJ0UWVtdS5kc2M8L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsi PisrKyBiL0FybVZpcnRQa2cvQXJtVmlydFFlbXUuZHNjPC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2lu OiAwcHg7Ij5AQCAtNTAxLDYgKzUwMSw3IEBAPC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7 Ij4mbmJzcDsgJm5ic3A7T3ZtZlBrZy9RZW11UmFtZmJEeGUvUWVtdVJhbWZiRHhlLmluZjwvZGl2 PjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyI+Jm5ic3A7ICZuYnNwO092bWZQa2cvVmlydGlvR3B1 RHhlL1ZpcnRpb0dwdS5pbmY8L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsiPiZuYnNwOyAm bmJzcDtPdm1mUGtnL1BsYXRmb3JtRHhlL1BsYXRmb3JtLmluZjwvZGl2PjxkaXYgc3R5bGU9Im1h cmdpbjogMHB4OyI+KyZuYnNwOyBPdm1mUGtnL1FlbXVWaWRlb0R4ZS9RZW11VmlkZW9EeGUuaW5m PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7Ij4mbmJzcDs8L2Rpdj48ZGl2IHN0eWxlPSJt YXJnaW46IDBweDsiPiZuYnNwOyAmbmJzcDsjPC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7 Ij4mbmJzcDsgJm5ic3A7IyBVU0IgU3VwcG9ydDwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4 OyI+ZGlmZiAtLWdpdCBhL0FybVZpcnRQa2cvQXJtVmlydFFlbXUuZmRmIGIvQXJtVmlydFBrZy9B cm1WaXJ0UWVtdS5mZGY8L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsiPmluZGV4IGI1ZTIy NTMyOTUuLjI4OWQwYzU4MGIgMTAwNjQ0PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7Ij4t LS0gYS9Bcm1WaXJ0UGtnL0FybVZpcnRRZW11LmZkZjwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbjog MHB4OyI+KysrIGIvQXJtVmlydFBrZy9Bcm1WaXJ0UWVtdS5mZGY8L2Rpdj48ZGl2IHN0eWxlPSJt YXJnaW46IDBweDsiPkBAIC0xMjYsMyArMTI2LDggQEAgUkVBRF9MT0NLX1NUQVRVUyZuYnNwOyAm bmJzcDs9IFRSVUU8L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsiPiZuYnNwOyAmbmJzcDt9 PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7Ij4mbmJzcDs8L2Rpdj48ZGl2IHN0eWxlPSJt YXJnaW46IDBweDsiPiZuYnNwOyFpbmNsdWRlIEFybVZpcnRSdWxlcy5mZGYuaW5jPC9kaXY+PGRp diBzdHlsZT0ibWFyZ2luOiAwcHg7Ij4rPC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7Ij4r IzwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyI+KyMgVkdBIE1vZHVsZTwvZGl2PjxkaXYg c3R5bGU9Im1hcmdpbjogMHB4OyI+KyM8L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsiPisj IElORiBPdm1mUGtnL1FlbXVWaWRlb0R4ZS9RZW11VmlkZW9EeGUuaW5mPC9kaXY+PGRpdiBzdHls ZT0ibWFyZ2luOiAwcHg7Ij48YnI+PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7Ij5Db21w aWxlZCBpdCBhbmQgZ2VuZXJhdGUgUUVNVV9FRkkuZmQsIENyZWF0ZSB2aXJ0dWFsIG1hY2hpbmVz IGJ5IHFlbXUsIGFzIGZvbGxvd3M6PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7Ij48YnI+ PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7Ij48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsi Pi4vcWVtdS02LjAuMC9idWlsZC9xZW11LXN5c3RlbS1hYXJjaDY0IFw8L2Rpdj48ZGl2IHN0eWxl PSJtYXJnaW46IDBweDsiPi1tYWNoaW5lIHZpcnQsYWNjZWw9a3ZtLHVzYj1vZmYsZHVtcC1ndWVz dC1jb3JlPW9mZixnaWMtdmVyc2lvbj0zIFw8L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsi Pi1jcHUgaG9zdCBcPC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7Ij4tbSA4MTkyIFw8L2Rp dj48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsiPi1zbXAgMTYgXDwvZGl2PjxkaXYgc3R5bGU9Im1h cmdpbjogMHB4OyI+LWJpb3MgUUVNVV9FRkkuZmQgXDwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbjog MHB4OyI+LXZuYyAxMjcuMC4wLjE6MTkgXDwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyI+ LWRldmljZSBwY2llLXJvb3QtcG9ydCxwb3J0PTB4OCxjaGFzc2lzPTEsaWQ9cGNpLjEsYnVzPXBj aWUuMCxtdWx0aWZ1bmN0aW9uPW9uLGFkZHI9MHgxIFw8L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW46 IDBweDsiPi1kZXZpY2UgcGNpZS1yb290LXBvcnQscG9ydD0weDksY2hhc3Npcz0yLGlkPXBjaS4y LGJ1cz1wY2llLjAsYWRkcj0weDEuMHgxIFw8L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsi Pi1kZXZpY2UgcGNpZS1yb290LXBvcnQscG9ydD0weGEsY2hhc3Npcz0zLGlkPXBjaS4zLGJ1cz1w Y2llLjAsYWRkcj0weDEuMHgyIFw8L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsiPi1kZXZp Y2UgcGNpZS1yb290LXBvcnQscG9ydD0weGIsY2hhc3Npcz00LGlkPXBjaS40LGJ1cz1wY2llLjAs YWRkcj0weDEuMHgzIFw8L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsiPi1kZXZpY2UgcGNp ZS1yb290LXBvcnQscG9ydD0weGMsY2hhc3Npcz01LGlkPXBjaS41LGJ1cz1wY2llLjAsYWRkcj0w eDEuMHg0IFw8L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsiPi1kZXZpY2UgcGNpZS1yb290 LXBvcnQscG9ydD0weGQsY2hhc3Npcz02LGlkPXBjaS42LGJ1cz1wY2llLjAsYWRkcj0weDEuMHg1 IFw8L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsiPi1kZXZpY2UgcGNpZS1yb290LXBvcnQs cG9ydD0weGUsY2hhc3Npcz03LGlkPXBjaS43LGJ1cz1wY2llLjAsYWRkcj0weDEuMHg2IFw8L2Rp dj48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsiPi1kZXZpY2UgcGNpZS1yb290LXBvcnQscG9ydD0w eGYsY2hhc3Npcz04LGlkPXBjaS44LGJ1cz1wY2llLjAsYWRkcj0weDEuMHg3IFw8L2Rpdj48ZGl2 IHN0eWxlPSJtYXJnaW46IDBweDsiPi1kZXZpY2UgcGNpZS1wY2ktYnJpZGdlLGlkPXBjaS45LGJ1 cz1wY2kuNixhZGRyPTB4MCBcPC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7Ij4tbmV0ZGV2 IHVzZXIsaWQ9aG9zdG5ldDAgXDwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyI+LWRldmlj ZSB2aXJ0aW8tbmV0LXBjaSxpZD1ob3N0bmV0MCxtYWM9NTI6NTQ6MDA6MTQ6NzI6MjAsYnVzPXBj aS4xLGFkZHI9MHgwIFw8L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsiPi1kcml2ZSBmaWxl PS92YXIvbGliL2xpYnZpcnQvaW1hZ2VzL3Rsai1reWxpbi5xY293Mixmb3JtYXQ9cWNvdzIsaWY9 bm9uZSxpZD1kcml2ZS12aXJ0aW8tZGlzazAgXDwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4 OyI+LWRldmljZSB2aXJ0aW8tYmxrLXBjaSxzY3NpPW9mZixidXM9cGNpZS4wLGFkZHI9MHg2LGRy aXZlPWRyaXZlLXZpcnRpby1kaXNrMCxpZD12aXJ0aW8tZGlzazAsYm9vdGluZGV4PTEgXDwvZGl2 PjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyI+LWRldmljZSBxeGwtdmdhLGlkPXZpZGVvMCxidXM9 cGNpLjcsYWRkcj0weDA8L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsiPjxicj48L2Rpdj48 ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsiPlRoZSB0ZXN0IHJlc3VsdHMgYXJlIGFzIGZvbGxvd3M6 PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAwcHg7Ij48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsi PjEuIFdoZW4gdGhlIFFYTCBkZXZpY2UgaGFuZ3Mgb24gdGhlIGJ1cz1wY2kuOSwgYWRkcj0weDEg b3IgYnVzPXBjaS43LCBhZGRyPTB4MCwgdGhlcmUgaXMgbm8gZGlzcGxheSBkdXJpbmcgdGhlIFVF RkkgcGhhc2UsIGFuZCB0aGUgZm9sbG93aW5nIGVycm9yIGlzIGZvdW5kIGJ5IGRlYnVnIFVFRkkg ZmlybXdhcmUgbG9nOjwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyI+Jm5ic3A7IFFlbXVW aWRlbzogQm9jaHNJRCBtaXNtYXRjaCAoZ290IDB4MCkuIEZyb20gdGhlIE9nbWZQa2cvUWVtdVZp ZGVvRHhlL0RyaXZlciAuYzwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyI+Mi4mbmJzcDtX aGVuIHRoZSBxeGwgZGV2aWNlIGhhbmdzIGluIHRoZSBidXM9cGNpLjgsIGFkZHI9MHgwLCBpdCBj YW4gYmUgZGlzcGxheWVkIG5vcm1hbGx5IGR1cmluZyB0aGUgVUVGSSBwaGFzZS4gQm9jaHNJRD0w eGIwYzU8L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsiPjxicj48L2Rpdj48ZGl2IHN0eWxl PSJtYXJnaW46IDBweDsiPlRoZSB3YXkgdG8gcmVhZCBCb2Noc0lEIGlzIFBJTywgYW5kIEFSTSBk b2VzIG5vdCBzdXBwb3J0IFBJTyBjb21tYW5kcywgc2hvdWxkIGl0IGJlIGNoYW5nZWQgdG8gTU1J Tz8gT3Igb3RoZXJzPzwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbjogMHB4OyI+SG9wZSB0byByZWNl aXZlIHlvdXIgc3VnZ2VzdGlvbnMgb3IgY29tbWVudHMuIFRoYW5rIHlvdSE8L2Rpdj48ZGl2IHN0 eWxlPSJtYXJnaW46IDBweDsiPjxicj48L2Rpdj48ZGl2IHN0eWxlPSJtYXJnaW46IDBweDsiPkJl c3QgcmVnYXJkczwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2Pjxicj48YnI+PC9kaXY+PGJyPjxicj48 c3BhbiB0aXRsZT0ibmV0ZWFzZWZvb3RlciI+PHA+Jm5ic3A7PC9wPjwvc3Bhbj4NCgogPGRpdiB3 aWR0aD0iMSIgc3R5bGU9ImNvbG9yOndoaXRlO2NsZWFyOmJvdGgiPl8uXyxfLl8sXzwvZGl2PiA8 aHI+ICAgR3JvdXBzLmlvIExpbmtzOjxwPiAgIFlvdSByZWNlaXZlIGFsbCBtZXNzYWdlcyBzZW50 IHRvIHRoaXMgZ3JvdXAuICAgIDxwPiA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9l ZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvODMxMzAiPlZpZXcvUmVwbHkgT25saW5lICgj ODMxMzApPC9hPiB8ICAgIHwgIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL2dyb3Vw cy5pby9tdC84Njc2NDgwNC8xNzg3Mjc3Ij5NdXRlIFRoaXMgVG9waWM8L2E+ICB8IDxhIGhyZWY9 Imh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9wb3N0Ij5OZXcgVG9waWM8L2E+PGJyPiAg ICA8YSBocmVmPSJodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvZWRpdHN1Yi8xNzg3Mjc3 Ij5Zb3VyIFN1YnNjcmlwdGlvbjwvYT4gfCA8YSBocmVmPSJtYWlsdG86ZGV2ZWwrb3duZXJAZWRr Mi5ncm91cHMuaW8iPkNvbnRhY3QgR3JvdXAgT3duZXI8L2E+IHwgIDxhIGhyZWY9Imh0dHBzOi8v ZWRrMi5ncm91cHMuaW8vZy9kZXZlbC91bnN1YiI+VW5zdWJzY3JpYmU8L2E+ICBbaW1wb3J0ZXJA cGF0Y2hldy5vcmddPGJyPiA8ZGl2IHdpZHRoPSIxIiBzdHlsZT0iY29sb3I6d2hpdGU7Y2xlYXI6 Ym90aCI+Xy5fLF8uXyxfPC9kaXY+IAoNCg== ------=_Part_190448_1569892984.1635857739753--