From owner-freebsd-acpi@FreeBSD.ORG Mon Jun 16 11:06:49 2008 Return-Path: Delivered-To: freebsd-acpi@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ECB28106566B for ; Mon, 16 Jun 2008 11:06:48 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id DCC678FC0A for ; Mon, 16 Jun 2008 11:06:48 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m5GB6m51036623 for ; Mon, 16 Jun 2008 11:06:48 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m5GB6mAe036619 for freebsd-acpi@FreeBSD.org; Mon, 16 Jun 2008 11:06:48 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 16 Jun 2008 11:06:48 GMT Message-Id: <200806161106.m5GB6mAe036619@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-acpi@FreeBSD.org Cc: Subject: Current problem reports assigned to freebsd-acpi@FreeBSD.org X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Jun 2008 11:06:49 -0000 Current FreeBSD problem reports Critical problems Serious problems S Tracker Resp. Description -------------------------------------------------------------------------------- o i386/54756 acpi ACPI suspend/resume problem on CF-W2 laptop o i386/55661 acpi ACPI suspend/resume problem on ARMADA M700 o kern/56024 acpi ACPI suspend drains battery while in S3 o i386/72566 acpi ACPI, FreeBSD disables fan on Compaq Armada 1750 o i386/79081 acpi ACPI suspend/resume not working on HP nx6110 o kern/81000 acpi [apic] Via 8235 sound card worked great with FreeBSD 5 s kern/91038 acpi [panic] [ata] [acpi] 6.0-RELEASE on Fujitsu Siemens Am s i386/91748 acpi acpi problem on Acer TravelMare 4652LMi (nvidia panic, o kern/102252 acpi acpi thermal does not work on Abit AW8D (intel 975) o kern/104625 acpi ACPI on ASUS A8N-32 SLI/ASUS P4P800 does not show ther o kern/106924 acpi [acpi] ACPI resume returns g_vfs_done() errors and ker o kern/108954 acpi [acpi] 'sleep(1)' sleeps >1 seconds when speedstep (Cx o i386/114562 acpi [acpi] cardbus is dead after s3 on Thinkpad T43 with a o kern/116939 acpi [acpi] PCI-to-PCI misconfigured for bus three and can o kern/118973 acpi [acpi]: Kernel panic with acpi boot o kern/119200 acpi [acpi] Lid close switch suspends CPU for 1 second on H o kern/119356 acpi [acpi]: i386 ACPI wakeup not work due resource exhaust o kern/120953 acpi [acpi]: FreeBSD 6.3 Release: acpi_tz0: _TMP value is f kern/121454 acpi [pst] Promise SuperTrak SX6000 does not load during bo 19 problems total. Non-critical problems S Tracker Resp. Description -------------------------------------------------------------------------------- f kern/67309 acpi zzz reboot computer (ACPI S3) o i386/69750 acpi Boot without ACPI failed on ASUS L5 s kern/73823 acpi [request] acpi / power-on by timer support o kern/76950 acpi ACPI wrongly blacklisted on Micron ClientPro 766Xi sys o i386/83018 acpi [install] Installer will not boot on Asus P4S8X BIOS 1 o kern/89411 acpi [acpi] acpiconf bug s kern/90243 acpi Laptop fan doesn't turn off (ACPI enabled) (Packard Be o kern/97383 acpi Volume buttons on IBM Thinkpad crash system with ACPI o kern/105537 acpi [acpi] problems in acpi on HP Compaq nc6320 o kern/108017 acpi [acpi]: Acer Aspire 5600 o kern/108488 acpi [acpi] ACPI-1304: *** Error: Method execution failed o kern/108581 acpi [sysctl] sysctl: hw.acpi.cpu.cx_lowest: Invalid argume o kern/108695 acpi [acpi]: Fatal trap 9: general protection fault when in s kern/112544 acpi [acpi] [patch] Add High Precision Event Timer Driver f o kern/114165 acpi [acpi] Dell C810 - ACPI problem o kern/117605 acpi [acpi] [request] add debug.cpufreq.highest o kern/120515 acpi [acpi] [patch] acpi_alloc_wakeup_handler: can't alloc o kern/121102 acpi [acpi_fujitsu] [patch] update acpi_fujitsu for the P80 o kern/121504 acpi [patch] Correctly set hw.acpi.osname on certain machin f amd64/122521 acpi ACPI Error after upgrade to 7.0 o kern/123039 acpi [acpi] ACPI AML_BUFFER_LIMIT errors during boot o kern/124223 acpi [acpi] [patch] acpi_battery.c -- Notify user-defined c o kern/124412 acpi [acpi] power off error on Toshiba M40 laptop 23 problems total. From owner-freebsd-acpi@FreeBSD.ORG Tue Jun 17 15:16:15 2008 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 21A961065673 for ; Tue, 17 Jun 2008 15:16:15 +0000 (UTC) (envelope-from pisymbol@gmail.com) Received: from gv-out-0910.google.com (gv-out-0910.google.com [216.239.58.189]) by mx1.freebsd.org (Postfix) with ESMTP id 5033C8FC16 for ; Tue, 17 Jun 2008 15:16:13 +0000 (UTC) (envelope-from pisymbol@gmail.com) Received: by gv-out-0910.google.com with SMTP id n8so948605gve.39 for ; Tue, 17 Jun 2008 08:16:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:mime-version:content-type; bh=keBbvJ4no//LO9LYts7XikPYs0p+YtOONDuqzrp/3YQ=; b=sodmWpD3u5IjPb181/RGJ2NmDDHz3fxLEVk0umJvATtwgS0ADutOLARKBNGpkYQkGc nr4FEG48tlAuZZGog0Jq7ASAAQoQWv/XkeP6APCcj7aZE/4DEPYjyGFpuc351nOxiH1C CfMsqAVctBoKueff/aTANXJgNT7BDerbY1x/c= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:mime-version:content-type; b=JRtpGKuuVEt9StkfDr3Kv4qRCTtnrpB9sNcsaV4gGEdn5XMt45hhFgXJXayOrMnr2C kmwz+pxN6fywiZ7d4FuFwwPK43GCtrca5MXoPJQ8lDluv434AtUF3xwl5/1+iKSCoQAe KSb5e+TSABB7lbc72DLiVasTI1OtDb5P/eO1U= Received: by 10.210.37.16 with SMTP id k16mr7745096ebk.194.1213714314157; Tue, 17 Jun 2008 07:51:54 -0700 (PDT) Received: by 10.210.34.1 with HTTP; Tue, 17 Jun 2008 07:51:53 -0700 (PDT) Message-ID: <3c0b01820806170751u28185a6cu361fd9b571dedded@mail.gmail.com> Date: Tue, 17 Jun 2008 10:51:53 -0400 From: "Alexander Sack" To: freebsd-questions@freebsd.org MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_21132_12389965.1213714314136" X-Mailman-Approved-At: Tue, 17 Jun 2008 15:19:49 +0000 Cc: freebsd-acpi@freebsd.org, FreeBSD STABLE Subject: ACPI Embedded Controller (EC) errors on 7.0-STABLE X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Jun 2008 15:16:15 -0000 ------=_Part_21132_12389965.1213714314136 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello: I've just installed FreeBSD-7.0-amd64 on my new MSI-171A (GX710A) notebook (AMD Turon X2 (dual core)/4GB RAM). I have flashed to the latest motherboard BIOS via the MSI website (1.10GA 7/25/2007). I'm seeing some ACPI errors on boot which I believe are relatively harmless but wanted to get confirmation from the list. Here are the pertinent error messages: CPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST After dumping the ASL, it defines an embedded controller (Device EC) with a bunch of methods but ACPI-CA complains that there is no OperationRegion handler for them. I see 7 error messages which I believe correspond to the 7 Method AML calls defined. Is this faulty ASL code on MSI's part or a regression bug? Its DSDT specifies ACPI compliance 1.0 I *think* (I'm a little rusty here). I've attached all the debugging out I can think of (boot -v dmesg, my ASL, and sysctl -a hw.acpi). I do notice that iasl gives me a compiler error but its seem outside the scope of my dmesg error output. I assume based on spec that this is the System Bus, PCI bus 0, south bridge, embedded controller, battery 1 (methods are for status, information, etc. etc.). Any feedback would be much appreciated? Thanks -aps ------=_Part_21132_12389965.1213714314136 Content-Type: application/octet-stream; name=unity-dmesg Content-Transfer-Encoding: base64 X-Attachment-Id: f_fhkm1yhu0 Content-Disposition: attachment; filename=unity-dmesg Q29weXJpZ2h0IChjKSAxOTkyLTIwMDggVGhlIEZyZWVCU0QgUHJvamVjdC4KQ29weXJpZ2h0IChj KSAxOTc5LCAxOTgwLCAxOTgzLCAxOTg2LCAxOTg4LCAxOTg5LCAxOTkxLCAxOTkyLCAxOTkzLCAx OTk0CglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiBBbGwgcmln aHRzIHJlc2VydmVkLgpGcmVlQlNEIGlzIGEgcmVnaXN0ZXJlZCB0cmFkZW1hcmsgb2YgVGhlIEZy ZWVCU0QgRm91bmRhdGlvbi4KRnJlZUJTRCA3LjAtUkVMRUFTRSAjMDogTW9uIEp1biAxNiAxMTow MToyMiBFRFQgMjAwOAogICAgcm9vdEB1bml0eS5sb2NhbGRvbWFpbjovdXNyL29iai91c3Ivc3Jj L3N5cy9VTklUWQpQcmVsb2FkZWQgZWxmIGtlcm5lbCAiL2Jvb3Qva2VybmVsL2tlcm5lbCIgYXQg MHhmZmZmZmZmZjgwODk2MDAwLgpDYWxpYnJhdGluZyBjbG9jayhzKSAuLi4gaTgyNTQgY2xvY2s6 IDExOTMyMDMgSHoKQ0xLX1VTRV9JODI1NF9DQUxJQlJBVElPTiBub3Qgc3BlY2lmaWVkIC0gdXNp bmcgZGVmYXVsdCBmcmVxdWVuY3kKVGltZWNvdW50ZXIgImk4MjU0IiBmcmVxdWVuY3kgMTE5MzE4 MiBIeiBxdWFsaXR5IDAKQ2FsaWJyYXRpbmcgVFNDIGNsb2NrIC4uLiBUU0MgY2xvY2s6IDc5ODAw Mzk4MiBIegpDUFU6IEFNRCBUdXJpb24odG0pIDY0IFgyIE1vYmlsZSBUZWNobm9sb2d5IFRMLTY4 ICg3OTguMDAtTUh6IEs4LWNsYXNzIENQVSkKICBPcmlnaW4gPSAiQXV0aGVudGljQU1EIiAgSWQg PSAweDYwZjgyICBTdGVwcGluZyA9IDIKICBGZWF0dXJlcz0weDE3OGJmYmZmPEZQVSxWTUUsREUs UFNFLFRTQyxNU1IsUEFFLE1DRSxDWDgsQVBJQyxTRVAsTVRSUixQR0UsTUNBLENNT1YsUEFULFBT RTM2LENMRkxVU0gsTU1YLEZYU1IsU1NFLFNTRTIsSFRUPgogIEZlYXR1cmVzMj0weDIwMDE8U1NF MyxDWDE2PgogIEFNRCBGZWF0dXJlcz0weGVhNTAwODAwPFNZU0NBTEwsTlgsTU1YKyxGRlhTUixS RFRTQ1AsTE0sM0ROb3chKywzRE5vdyE+CiAgQU1EIEZlYXR1cmVzMj0weDExZjxMQUhGLENNUCxT Vk0sRXh0QVBJQyxDUjgsUHJlZmV0Y2g+CiAgQ29yZXMgcGVyIHBhY2thZ2U6IDIKTDEgMk1CIGRh dGEgVExCOiA4IGVudHJpZXMsIGZ1bGx5IGFzc29jaWF0aXZlCkwxIDJNQiBpbnN0cnVjdGlvbiBU TEI6IDggZW50cmllcywgZnVsbHkgYXNzb2NpYXRpdmUKTDEgNEtCIGRhdGEgVExCOiAzMiBlbnRy aWVzLCBmdWxseSBhc3NvY2lhdGl2ZQpMMSA0S0IgaW5zdHJ1Y3Rpb24gVExCOiAzMiBlbnRyaWVz LCBmdWxseSBhc3NvY2lhdGl2ZQpMMSBkYXRhIGNhY2hlOiA2NCBrYnl0ZXMsIDY0IGJ5dGVzL2xp bmUsIDEgbGluZXMvdGFnLCAyLXdheSBhc3NvY2lhdGl2ZQpMMSBpbnN0cnVjdGlvbiBjYWNoZTog NjQga2J5dGVzLCA2NCBieXRlcy9saW5lLCAxIGxpbmVzL3RhZywgMi13YXkgYXNzb2NpYXRpdmUK TDIgMk1CIHVuaWZpZWQgVExCOiAwIGVudHJpZXMsIGRpc2FibGVkL25vdCBwcmVzZW50CkwyIDRL QiBkYXRhIFRMQjogNTEyIGVudHJpZXMsIDQtd2F5IGFzc29jaWF0aXZlCkwyIDRLQiBpbnN0cnVj dGlvbiBUTEI6IDUxMiBlbnRyaWVzLCA0LXdheSBhc3NvY2lhdGl2ZQpMMiB1bmlmaWVkIGNhY2hl OiA1MTIga2J5dGVzLCA2NCBieXRlcy9saW5lLCAxIGxpbmVzL3RhZywgMTYtd2F5IGFzc29jaWF0 aXZlCnVzYWJsZSBtZW1vcnkgPSA0Mjg1Mjk2NjQwICg0MDg2IE1CKQpQaHlzaWNhbCBtZW1vcnkg Y2h1bmsocyk6CjB4MDAwMDAwMDAwMDAwMTAwMCAtIDB4MDAwMDAwMDAwMDA5YmZmZiwgNjM0ODgw IGJ5dGVzICgxNTUgcGFnZXMpCjB4MDAwMDAwMDAwMDk5NDAwMCAtIDB4MDAwMDAwMDBjNzBlOWZm ZiwgMzMyOTU4MTA1NiBieXRlcyAoODEyODg2IHBhZ2VzKQoweDAwMDAwMDAxMDAwMDAwMDAgLSAw eDAwMDAwMDAxMmZmZWZmZmYsIDgwNTI0MDgzMiBieXRlcyAoMTk2NTkyIHBhZ2VzKQphdmFpbCBt ZW1vcnkgID0gNDEyMzk4Mzg3MiAoMzkzMiBNQikKQUNQSSBBUElDIFRhYmxlOiA8TVNJX05CIE1F R0FCT09LPgpJTlRSOiBBZGRpbmcgbG9jYWwgQVBJQyAxIGFzIGEgdGFyZ2V0CkZyZWVCU0QvU01Q OiBNdWx0aXByb2Nlc3NvciBTeXN0ZW0gRGV0ZWN0ZWQ6IDIgQ1BVcwogY3B1MCAoQlNQKTogQVBJ QyBJRDogIDAKIGNwdTEgKEFQKTogQVBJQyBJRDogIDEKQVBJQzogQ1BVIDAgaGFzIEFDUEkgSUQg MQpBUElDOiBDUFUgMSBoYXMgQUNQSSBJRCAyCkFDUEk6IFJTRFAgQCAweDB4ZjkyZTAvMHgwMDE0 ICh2ICAwIEFDUElBTSkKQUNQSTogUlNEVCBAIDB4MHhjZmZjMDAwMC8weDAwNDAgKHYgIDEgTVNJ X05CIE1FR0FCT09LIDB4MDcwMDA3MjUgTVNGVCAweDAwMDAwMDk3KQpBQ1BJOiBGQUNQIEAgMHgw eGNmZmMwMjAwLzB4MDA4NCAodiAgMiBNU0lfTkIgTUVHQUJPT0sgMHgwNzAwMDcyNSBNU0ZUIDB4 MDAwMDAwOTcpCkFDUEk6IERTRFQgQCAweDB4Y2ZmYzA1YjAvMHgzRDM2ICh2ICAxICAxQUROSSAx QUROSTAwMCAweDAwMDAwMDAwIElOVEwgMHgyMDA1MTExNykKQUNQSTogRkFDUyBAIDB4MHhjZmZj ZTAwMC8weDAwNDAKQUNQSTogQVBJQyBAIDB4MHhjZmZjMDM5MC8weDAwNUMgKHYgIDEgTVNJX05C IE1FR0FCT09LIDB4MDcwMDA3MjUgTVNGVCAweDAwMDAwMDk3KQpBQ1BJOiBNQ0ZHIEAgMHgweGNm ZmMwM2YwLzB4MDAzQyAodiAgMSBNU0lfTkIgTUVHQUJPT0sgMHgwNzAwMDcyNSBNU0ZUIDB4MDAw MDAwOTcpCkFDUEk6IFNMSUMgQCAweDB4Y2ZmYzA0MzAvMHgwMTc2ICh2ICAxIE1TSV9OQiBNRUdB Qk9PSyAweDA3MDAwNzI1IE1TRlQgMHgwMDAwMDA5NykKQUNQSTogT0VNQiBAIDB4MHhjZmZjZTA0 MC8weDAwNjEgKHYgIDEgTVNJX05CIE1FR0FCT09LIDB4MDcwMDA3MjUgTVNGVCAweDAwMDAwMDk3 KQpBQ1BJOiBIUEVUIEAgMHgweGNmZmM0MmYwLzB4MDAzOCAodiAgMSBNU0lfTkIgT0VNSFBFVCAg MHgwNzAwMDcyNSBNU0ZUIDB4MDAwMDAwOTcpCkFDUEk6IFNTRFQgQCAweDB4Y2ZmYzQzMzAvMHgw MkY0ICh2ICAxIEEgTSBJICBQT1dFUk5PVyAweDAwMDAwMDAxIEFNRCAgMHgwMDAwMDAwMSkKTUFE VDogRm91bmQgSU8gQVBJQyBJRCAyLCBJbnRlcnJ1cHQgMCBhdCAweGZlYzAwMDAwCmlvYXBpYzA6 IFJvdXRpbmcgZXh0ZXJuYWwgODI1OUEncyAtPiBpbnRwaW4gMApNQURUOiBJbnRlcnJ1cHQgb3Zl cnJpZGU6IHNvdXJjZSAwLCBpcnEgMgppb2FwaWMwOiBSb3V0aW5nIElSUSAwIC0+IGludHBpbiAy Ck1BRFQ6IEludGVycnVwdCBvdmVycmlkZTogc291cmNlIDksIGlycSA5CmlvYXBpYzA6IGludHBp biA5IHRyaWdnZXI6IGxldmVsCmlvYXBpYzA6IGludHBpbiA5IHBvbGFyaXR5OiBsb3cKaW9hcGlj MCA8VmVyc2lvbiAyLjE+IGlycXMgMC0yMyBvbiBtb3RoZXJib2FyZApjcHUwIEJTUDoKICAgICBJ RDogMHgwMDAwMDAwMCAgIFZFUjogMHg4MDA1MDAxMCBMRFI6IDB4MDAwMDAwMDAgREZSOiAweGZm ZmZmZmZmCiAgbGludDA6IDB4MDAwMTA3MDAgbGludDE6IDB4MDAwMDA0MDAgVFBSOiAweDAwMDAw MDAwIFNWUjogMHgwMDAwMDFmZgogIHRpbWVyOiAweDAwMDEwMGVmIHRoZXJtOiAweDAwMDEwMDAw IGVycjogMHgwMDAxMDAwZiBwY206IDB4MDAwMTAwMDAKYXRoX3JhdGU6IHZlcnNpb24gMS4yIDxT YW1wbGVSYXRlIGJpdC1yYXRlIHNlbGVjdGlvbiBhbGdvcml0aG0+CndsYW5fYW1ycjogPEFNUlIg VHJhbnNtaXQgUmF0ZSBDb250cm9sIEFsZ29yaXRobT4Kd2xhbjogPDgwMi4xMSBMaW5rIExheWVy PgpyYW5kb206IDxlbnRyb3B5IHNvdXJjZSwgU29mdHdhcmUsIFlhcnJvdz4KbmZzbG9jazogcHNl dWRvLWRldmljZQprYmQ6IG5ldyBhcnJheSBzaXplIDQKa2JkMSBhdCBrYmRtdXgwCm1lbTogPG1l bW9yeT4KbnVsbDogPG51bGwgZGV2aWNlLCB6ZXJvIGRldmljZT4KaW86IDxJL08+CmF0aF9oYWw6 IDAuOS4yMC4zIChBUjUyMTAsIEFSNTIxMSwgQVI1MjEyLCBSRjUxMTEsIFJGNTExMiwgUkYyNDEz LCBSRjU0MTMpCmFjcGkwOiA8TVNJX05CIE1FR0FCT09LPiBvbiBtb3RoZXJib2FyZAppb2FwaWMw OiByb3V0aW5nIGludHBpbiA5IChJU0EgSVJRIDkpIHRvIHZlY3RvciA0OAphY3BpMDogW01QU0FG RV0KYWNwaTA6IFtJVEhSRUFEXQphY3BpMDogUG93ZXIgQnV0dG9uIChmaXhlZCkKQWNwaU9zRGVy aXZlUGNpSWQ6IFxcX1NCXy5QQ0kwLlJTNDguTkIyXyAtPiBidXMgMCBkZXYgMCBmdW5jIDAKQUNQ SSBFcnJvciAoZXZyZWdpb24tMDQyNyk6IE5vIGhhbmRsZXIgZm9yIFJlZ2lvbiBbRUNfX10gKDB4 ZmZmZmZmMDAwMTFjZjY4MCkgW0VtYmVkZGVkQ29udHJvbF0gWzIwMDcwMzIwXQpBQ1BJIEVycm9y IChleGZsZGlvLTAzOTApOiBSZWdpb24gRW1iZWRkZWRDb250cm9sKDMpIGhhcyBubyBoYW5kbGVy IFsyMDA3MDMyMF0KQUNQSSBFcnJvciAocHNwYXJzZS0wNjI2KTogTWV0aG9kIHBhcnNlL2V4ZWN1 dGlvbiBmYWlsZWQgW1xcX1NCXy5QQ0kwLlNCUkcuRUNfXy5CQVQxLl9TVEFdIChOb2RlIDB4ZmZm ZmZmMDAwMTFkMjQ4MCksIEFFX05PVF9FWElTVApBQ1BJIEVycm9yICh1dGV2YWwtMDMwOSk6IE1l dGhvZCBleGVjdXRpb24gZmFpbGVkIFtcXF9TQl8uUENJMC5TQlJHLkVDX18uQkFUMS5fU1RBXSAo Tm9kZSAweGZmZmZmZjAwMDExZDI0ODApLCBBRV9OT1RfRVhJU1QKQUNQSSBFcnJvciAoZXZyZWdp b24tMDQyNyk6IE5vIGhhbmRsZXIgZm9yIFJlZ2lvbiBbRUNfX10gKDB4ZmZmZmZmMDAwMTFjZjY4 MCkgW0VtYmVkZGVkQ29udHJvbF0gWzIwMDcwMzIwXQpBQ1BJIEVycm9yIChleGZsZGlvLTAzOTAp OiBSZWdpb24gRW1iZWRkZWRDb250cm9sKDMpIGhhcyBubyBoYW5kbGVyIFsyMDA3MDMyMF0KQUNQ SSBFcnJvciAocHNwYXJzZS0wNjI2KTogTWV0aG9kIHBhcnNlL2V4ZWN1dGlvbiBmYWlsZWQgW1xc X1NCXy5QQ0kwLlNCUkcuRUNfXy5CQVQxLl9TVEFdIChOb2RlIDB4ZmZmZmZmMDAwMTFkMjQ4MCks IEFFX05PVF9FWElTVApBQ1BJIEVycm9yICh1dGV2YWwtMDMwOSk6IE1ldGhvZCBleGVjdXRpb24g ZmFpbGVkIFtcXF9TQl8uUENJMC5TQlJHLkVDX18uQkFUMS5fU1RBXSAoTm9kZSAweGZmZmZmZjAw MDExZDI0ODApLCBBRV9OT1RfRVhJU1QKQUNQSSBFcnJvciAoZXZyZWdpb24tMDQyNyk6IE5vIGhh bmRsZXIgZm9yIFJlZ2lvbiBbRUNfX10gKDB4ZmZmZmZmMDAwMTFjZjY4MCkgW0VtYmVkZGVkQ29u dHJvbF0gWzIwMDcwMzIwXQpBQ1BJIEVycm9yIChleGZsZGlvLTAzOTApOiBSZWdpb24gRW1iZWRk ZWRDb250cm9sKDMpIGhhcyBubyBoYW5kbGVyIFsyMDA3MDMyMF0KQUNQSSBFcnJvciAocHNwYXJz ZS0wNjI2KTogTWV0aG9kIHBhcnNlL2V4ZWN1dGlvbiBmYWlsZWQgW1xcX1NCXy5QQ0kwLlNCUkcu RUNfXy5CQVQxLl9TVEFdIChOb2RlIDB4ZmZmZmZmMDAwMTFkMjQ4MCksIEFFX05PVF9FWElTVApB Q1BJIEVycm9yICh1dGV2YWwtMDMwOSk6IE1ldGhvZCBleGVjdXRpb24gZmFpbGVkIFtcXF9TQl8u UENJMC5TQlJHLkVDX18uQkFUMS5fU1RBXSAoTm9kZSAweGZmZmZmZjAwMDExZDI0ODApLCBBRV9O T1RfRVhJU1QKQUNQSSBFcnJvciAoZXZyZWdpb24tMDQyNyk6IE5vIGhhbmRsZXIgZm9yIFJlZ2lv biBbRUNfX10gKDB4ZmZmZmZmMDAwMTFjZjY4MCkgW0VtYmVkZGVkQ29udHJvbF0gWzIwMDcwMzIw XQpBQ1BJIEVycm9yIChleGZsZGlvLTAzOTApOiBSZWdpb24gRW1iZWRkZWRDb250cm9sKDMpIGhh cyBubyBoYW5kbGVyIFsyMDA3MDMyMF0KQUNQSSBFcnJvciAocHNwYXJzZS0wNjI2KTogTWV0aG9k IHBhcnNlL2V4ZWN1dGlvbiBmYWlsZWQgW1xcX1NCXy5QQ0kwLlNCUkcuRUNfXy5CQVQxLl9TVEFd IChOb2RlIDB4ZmZmZmZmMDAwMTFkMjQ4MCksIEFFX05PVF9FWElTVApBQ1BJIEVycm9yICh1dGV2 YWwtMDMwOSk6IE1ldGhvZCBleGVjdXRpb24gZmFpbGVkIFtcXF9TQl8uUENJMC5TQlJHLkVDX18u QkFUMS5fU1RBXSAoTm9kZSAweGZmZmZmZjAwMDExZDI0ODApLCBBRV9OT1RfRVhJU1QKQUNQSSBF cnJvciAoZXZyZWdpb24tMDQyNyk6IE5vIGhhbmRsZXIgZm9yIFJlZ2lvbiBbRUNfX10gKDB4ZmZm ZmZmMDAwMTFjZjY4MCkgW0VtYmVkZGVkQ29udHJvbF0gWzIwMDcwMzIwXQpBQ1BJIEVycm9yIChl eGZsZGlvLTAzOTApOiBSZWdpb24gRW1iZWRkZWRDb250cm9sKDMpIGhhcyBubyBoYW5kbGVyIFsy MDA3MDMyMF0KQUNQSSBFcnJvciAocHNwYXJzZS0wNjI2KTogTWV0aG9kIHBhcnNlL2V4ZWN1dGlv biBmYWlsZWQgW1xcX1NCXy5QQ0kwLlNCUkcuRUNfXy5CQVQxLl9TVEFdIChOb2RlIDB4ZmZmZmZm MDAwMTFkMjQ4MCksIEFFX05PVF9FWElTVApBQ1BJIEVycm9yICh1dGV2YWwtMDMwOSk6IE1ldGhv ZCBleGVjdXRpb24gZmFpbGVkIFtcXF9TQl8uUENJMC5TQlJHLkVDX18uQkFUMS5fU1RBXSAoTm9k ZSAweGZmZmZmZjAwMDExZDI0ODApLCBBRV9OT1RfRVhJU1QKQUNQSSBFcnJvciAoZXZyZWdpb24t MDQyNyk6IE5vIGhhbmRsZXIgZm9yIFJlZ2lvbiBbRUNfX10gKDB4ZmZmZmZmMDAwMTFjZjY4MCkg W0VtYmVkZGVkQ29udHJvbF0gWzIwMDcwMzIwXQpBQ1BJIEVycm9yIChleGZsZGlvLTAzOTApOiBS ZWdpb24gRW1iZWRkZWRDb250cm9sKDMpIGhhcyBubyBoYW5kbGVyIFsyMDA3MDMyMF0KQUNQSSBF cnJvciAocHNwYXJzZS0wNjI2KTogTWV0aG9kIHBhcnNlL2V4ZWN1dGlvbiBmYWlsZWQgW1xcX1NC Xy5QQ0kwLlNCUkcuRUNfXy5CQVQxLl9TVEFdIChOb2RlIDB4ZmZmZmZmMDAwMTFkMjQ4MCksIEFF X05PVF9FWElTVApBQ1BJIEVycm9yICh1dGV2YWwtMDMwOSk6IE1ldGhvZCBleGVjdXRpb24gZmFp bGVkIFtcXF9TQl8uUENJMC5TQlJHLkVDX18uQkFUMS5fU1RBXSAoTm9kZSAweGZmZmZmZjAwMDEx ZDI0ODApLCBBRV9OT1RfRVhJU1QKQUNQSSBFcnJvciAoZXZyZWdpb24tMDQyNyk6IE5vIGhhbmRs ZXIgZm9yIFJlZ2lvbiBbRUNfX10gKDB4ZmZmZmZmMDAwMTFjZjY4MCkgW0VtYmVkZGVkQ29udHJv bF0gWzIwMDcwMzIwXQpBQ1BJIEVycm9yIChleGZsZGlvLTAzOTApOiBSZWdpb24gRW1iZWRkZWRD b250cm9sKDMpIGhhcyBubyBoYW5kbGVyIFsyMDA3MDMyMF0KQUNQSSBFcnJvciAocHNwYXJzZS0w NjI2KTogTWV0aG9kIHBhcnNlL2V4ZWN1dGlvbiBmYWlsZWQgW1xcX1NCXy5QQ0kwLlNCUkcuRUNf Xy5CQVQxLl9TVEFdIChOb2RlIDB4ZmZmZmZmMDAwMTFkMjQ4MCksIEFFX05PVF9FWElTVApBQ1BJ IEVycm9yICh1dGV2YWwtMDMwOSk6IE1ldGhvZCBleGVjdXRpb24gZmFpbGVkIFtcXF9TQl8uUENJ MC5TQlJHLkVDX18uQkFUMS5fU1RBXSAoTm9kZSAweGZmZmZmZjAwMDExZDI0ODApLCBBRV9OT1Rf RVhJU1QKYWNwaTA6IHJlc2VydmF0aW9uIG9mIDAsIGEwMDAwICgzKSBmYWlsZWQKYWNwaTA6IHJl c2VydmF0aW9uIG9mIDEwMDAwMCwgY2ZmMDAwMDAgKDMpIGZhaWxlZApBQ1BJIEhQRVQgdGFibGUg d2FybmluZzogU2VxdWVuY2UgaXMgbm9uLXplcm8gKDIpCkFDUEkgdGltZXI6IDAvMTI4NCAwLzEy ODQgMC8xMjgxIDAvMTI3NCAwLzEyODIgMC8xMjgyIDAvMTI4MiAwLzEyODQgMC8xMjc5IDAvMTI4 NCAtPiAwClRpbWVjb3VudGVyICJBQ1BJLXNhZmUiIGZyZXF1ZW5jeSAzNTc5NTQ1IEh6IHF1YWxp dHkgODUwCmFjcGlfdGltZXIwOiA8MzItYml0IHRpbWVyIGF0IDMuNTc5NTQ1TUh6PiBwb3J0IDB4 ODA4LTB4ODBiIG9uIGFjcGkwCmFjcGlfZWMwOiA8RW1iZWRkZWQgQ29udHJvbGxlcjogR1BFIDB4 Nj4gcG9ydCAweDYyLDB4NjYgb24gYWNwaTAKcGNpX2xpbmswOiAgICAgICAgSW5kZXggIElSUSAg UnRkICBSZWYgIElSUXMKICBJbml0aWFsIFByb2JlICAgICAgIDAgIDI1NSAgIE4gICAgIDAgIDMg NCA1IDcgMTAgMTEgMTIgMTQgMTUKICBWYWxpZGF0aW9uICAgICAgICAgIDAgIDI1NSAgIE4gICAg IDAgIDMgNCA1IDcgMTAgMTEgMTIgMTQgMTUKICBBZnRlciBEaXNhYmxlICAgICAgIDAgIDI1NSAg IE4gICAgIDAgIDMgNCA1IDcgMTAgMTEgMTIgMTQgMTUKcGNpX2xpbmsxOiAgICAgICAgSW5kZXgg IElSUSAgUnRkICBSZWYgIElSUXMKICBJbml0aWFsIFByb2JlICAgICAgIDAgIDI1NSAgIE4gICAg IDAgIDMgNCA1IDcgMTAgMTEgMTIgMTQgMTUKICBWYWxpZGF0aW9uICAgICAgICAgIDAgIDI1NSAg IE4gICAgIDAgIDMgNCA1IDcgMTAgMTEgMTIgMTQgMTUKICBBZnRlciBEaXNhYmxlICAgICAgIDAg IDI1NSAgIE4gICAgIDAgIDMgNCA1IDcgMTAgMTEgMTIgMTQgMTUKcGNpX2xpbmsyOiAgICAgICAg SW5kZXggIElSUSAgUnRkICBSZWYgIElSUXMKICBJbml0aWFsIFByb2JlICAgICAgIDAgIDI1NSAg IE4gICAgIDAgIDMgNCA1IDcgMTAgMTEgMTIgMTQgMTUKICBWYWxpZGF0aW9uICAgICAgICAgIDAg IDI1NSAgIE4gICAgIDAgIDMgNCA1IDcgMTAgMTEgMTIgMTQgMTUKICBBZnRlciBEaXNhYmxlICAg ICAgIDAgIDI1NSAgIE4gICAgIDAgIDMgNCA1IDcgMTAgMTEgMTIgMTQgMTUKcGNpX2xpbmszOiAg ICAgICAgSW5kZXggIElSUSAgUnRkICBSZWYgIElSUXMKICBJbml0aWFsIFByb2JlICAgICAgIDAg IDI1NSAgIE4gICAgIDAgIDMgNCA1IDcgMTAgMTEgMTIgMTQgMTUKICBWYWxpZGF0aW9uICAgICAg ICAgIDAgIDI1NSAgIE4gICAgIDAgIDMgNCA1IDcgMTAgMTEgMTIgMTQgMTUKICBBZnRlciBEaXNh YmxlICAgICAgIDAgIDI1NSAgIE4gICAgIDAgIDMgNCA1IDcgMTAgMTEgMTIgMTQgMTUKcGNpX2xp bms0OiAgICAgICAgSW5kZXggIElSUSAgUnRkICBSZWYgIElSUXMKICBJbml0aWFsIFByb2JlICAg ICAgIDAgIDI1NSAgIE4gICAgIDAgIDMgNCA1IDcgMTAgMTEgMTIgMTQgMTUKICBWYWxpZGF0aW9u ICAgICAgICAgIDAgIDI1NSAgIE4gICAgIDAgIDMgNCA1IDcgMTAgMTEgMTIgMTQgMTUKICBBZnRl ciBEaXNhYmxlICAgICAgIDAgIDI1NSAgIE4gICAgIDAgIDMgNCA1IDcgMTAgMTEgMTIgMTQgMTUK cGNpX2xpbms1OiAgICAgICAgSW5kZXggIElSUSAgUnRkICBSZWYgIElSUXMKICBJbml0aWFsIFBy b2JlICAgICAgIDAgIDI1NSAgIE4gICAgIDAgIDkKICBWYWxpZGF0aW9uICAgICAgICAgIDAgIDI1 NSAgIE4gICAgIDAgIDkKICBBZnRlciBEaXNhYmxlICAgICAgIDAgIDI1NSAgIE4gICAgIDAgIDkK cGNpX2xpbms2OiAgICAgICAgSW5kZXggIElSUSAgUnRkICBSZWYgIElSUXMKICBJbml0aWFsIFBy b2JlICAgICAgIDAgIDI1NSAgIE4gICAgIDAgIDMgNCA1IDcgMTAgMTEgMTIgMTQgMTUKICBWYWxp ZGF0aW9uICAgICAgICAgIDAgIDI1NSAgIE4gICAgIDAgIDMgNCA1IDcgMTAgMTEgMTIgMTQgMTUK ICBBZnRlciBEaXNhYmxlICAgICAgIDAgIDI1NSAgIE4gICAgIDAgIDMgNCA1IDcgMTAgMTEgMTIg MTQgMTUKcGNpX2xpbms3OiAgICAgICAgSW5kZXggIElSUSAgUnRkICBSZWYgIElSUXMKICBJbml0 aWFsIFByb2JlICAgICAgIDAgIDI1NSAgIE4gICAgIDAgIDMgNCA1IDcgMTAgMTEgMTIgMTQgMTUK ICBWYWxpZGF0aW9uICAgICAgICAgIDAgIDI1NSAgIE4gICAgIDAgIDMgNCA1IDcgMTAgMTEgMTIg MTQgMTUKICBBZnRlciBEaXNhYmxlICAgICAgIDAgIDI1NSAgIE4gICAgIDAgIDMgNCA1IDcgMTAg MTEgMTIgMTQgMTUKYWNwaV9ocGV0MDogPEhpZ2ggUHJlY2lzaW9uIEV2ZW50IFRpbWVyPiBpb21l bSAweGZlZDAwMDAwLTB4ZmVkMDAzZmYgb24gYWNwaTAKYWNwaV9ocGV0MDogdmVuZDogMHg0MzUz IHJldjogMHgxIG51bTogMyBoejogMTQzMTgxODAgb3B0czogbGVnYWN5X3JvdXRlClRpbWVjb3Vu dGVyICJIUEVUIiBmcmVxdWVuY3kgMTQzMTgxODAgSHogcXVhbGl0eSA5MDAKY3B1MDogPEFDUEkg Q1BVPiBvbiBhY3BpMApjcHUwOiBzd2l0Y2hpbmcgdG8gZ2VuZXJpYyBDeCBtb2RlCmFjcGlfdGhy b3R0bGUwOiA8QUNQSSBDUFUgVGhyb3R0bGluZz4gb24gY3B1MAphY3BpX3Rocm90dGxlMDogQ0xL X1ZBTCBmaWVsZCBvdmVybGFwcyBUSFRfRU4gYml0CmRldmljZV9hdHRhY2g6IGFjcGlfdGhyb3R0 bGUwIGF0dGFjaCByZXR1cm5lZCA2CnBvd2Vybm93MDogPFBvd2VyTm93ISBLOD4gb24gY3B1MApj cHUxOiA8QUNQSSBDUFU+IG9uIGFjcGkwCnBvd2Vybm93MTogPFBvd2VyTm93ISBLOD4gb24gY3B1 MQpwY2liMDogPEFDUEkgSG9zdC1QQ0kgYnJpZGdlPiBwb3J0IDB4Y2Y4LTB4Y2ZmIG9uIGFjcGkw CnBjaTA6IDxBQ1BJIFBDSSBidXM+IG9uIHBjaWIwCnBjaTA6IGRvbWFpbj0wLCBwaHlzaWNhbCBi dXM9MApmb3VuZC0+CXZlbmRvcj0weDEwMDIsIGRldj0weDc5MTAsIHJldmlkPTB4MDAKCWRvbWFp bj0wLCBidXM9MCwgc2xvdD0wLCBmdW5jPTAKCWNsYXNzPTA2LTAwLTAwLCBoZHJ0eXBlPTB4MDAs IG1mZGV2PTAKCWNtZHJlZz0weDAwMDYsIHN0YXRyZWc9MHgyMjIwLCBjYWNoZWxuc3o9MCAoZHdv cmRzKQoJbGF0dGltZXI9MHgwMCAoMCBucyksIG1pbmdudD0weDAwICgwIG5zKSwgbWF4bGF0PTB4 MDAgKDAgbnMpCmZvdW5kLT4JdmVuZG9yPTB4MTAwMiwgZGV2PTB4NzkxMywgcmV2aWQ9MHgwMAoJ ZG9tYWluPTAsIGJ1cz0wLCBzbG90PTIsIGZ1bmM9MAoJY2xhc3M9MDYtMDQtMDAsIGhkcnR5cGU9 MHgwMSwgbWZkZXY9MAoJY21kcmVnPTB4MDEwNywgc3RhdHJlZz0weDQwMTAsIGNhY2hlbG5zej0x NiAoZHdvcmRzKQoJbGF0dGltZXI9MHgwMCAoMCBucyksIG1pbmdudD0weDFiICg2NzUwIG5zKSwg bWF4bGF0PTB4MDAgKDAgbnMpCglwb3dlcnNwZWMgMyAgc3VwcG9ydHMgRDAgRDMgIGN1cnJlbnQg RDAKCU1TSSBzdXBwb3J0cyAxIG1lc3NhZ2UKZm91bmQtPgl2ZW5kb3I9MHgxMDAyLCBkZXY9MHg3 OTE0LCByZXZpZD0weDAwCglkb21haW49MCwgYnVzPTAsIHNsb3Q9NCwgZnVuYz0wCgljbGFzcz0w Ni0wNC0wMCwgaGRydHlwZT0weDAxLCBtZmRldj0wCgljbWRyZWc9MHgwMTA2LCBzdGF0cmVnPTB4 MDAxMCwgY2FjaGVsbnN6PTE2IChkd29yZHMpCglsYXR0aW1lcj0weDAwICgwIG5zKSwgbWluZ250 PTB4MDMgKDc1MCBucyksIG1heGxhdD0weDAwICgwIG5zKQoJcG93ZXJzcGVjIDMgIHN1cHBvcnRz IEQwIEQzICBjdXJyZW50IEQwCglNU0kgc3VwcG9ydHMgMSBtZXNzYWdlCmZvdW5kLT4JdmVuZG9y PTB4MTAwMiwgZGV2PTB4NzkxNiwgcmV2aWQ9MHgwMAoJZG9tYWluPTAsIGJ1cz0wLCBzbG90PTYs IGZ1bmM9MAoJY2xhc3M9MDYtMDQtMDAsIGhkcnR5cGU9MHgwMSwgbWZkZXY9MAoJY21kcmVnPTB4 MDEwNywgc3RhdHJlZz0weDAwMTAsIGNhY2hlbG5zej0xNiAoZHdvcmRzKQoJbGF0dGltZXI9MHgw MCAoMCBucyksIG1pbmdudD0weDAzICg3NTAgbnMpLCBtYXhsYXQ9MHgwMCAoMCBucykKCXBvd2Vy c3BlYyAzICBzdXBwb3J0cyBEMCBEMyAgY3VycmVudCBEMAoJTVNJIHN1cHBvcnRzIDEgbWVzc2Fn ZQpmb3VuZC0+CXZlbmRvcj0weDEwMDIsIGRldj0weDc5MTcsIHJldmlkPTB4MDAKCWRvbWFpbj0w LCBidXM9MCwgc2xvdD03LCBmdW5jPTAKCWNsYXNzPTA2LTA0LTAwLCBoZHJ0eXBlPTB4MDEsIG1m ZGV2PTAKCWNtZHJlZz0weDAxMDcsIHN0YXRyZWc9MHg0MDEwLCBjYWNoZWxuc3o9MTYgKGR3b3Jk cykKCWxhdHRpbWVyPTB4MDAgKDAgbnMpLCBtaW5nbnQ9MHgwMyAoNzUwIG5zKSwgbWF4bGF0PTB4 MDAgKDAgbnMpCglwb3dlcnNwZWMgMyAgc3VwcG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKCU1TSSBz dXBwb3J0cyAxIG1lc3NhZ2UKZm91bmQtPgl2ZW5kb3I9MHgxMDAyLCBkZXY9MHg0MzgwLCByZXZp ZD0weDAwCglkb21haW49MCwgYnVzPTAsIHNsb3Q9MTgsIGZ1bmM9MAoJY2xhc3M9MDEtMDEtOGYs IGhkcnR5cGU9MHgwMCwgbWZkZXY9MAoJY21kcmVnPTB4MDEwNywgc3RhdHJlZz0weDAyMzAsIGNh Y2hlbG5zej0xNiAoZHdvcmRzKQoJbGF0dGltZXI9MHg0MCAoMTkyMCBucyksIG1pbmdudD0weDAw ICgwIG5zKSwgbWF4bGF0PTB4MDAgKDAgbnMpCglpbnRwaW49YSwgaXJxPTExCglwb3dlcnNwZWMg MiAgc3VwcG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKCW1hcFsxMF06IHR5cGUgSS9PIFBvcnQsIHJh bmdlIDMyLCBiYXNlIDB4YTAwMCwgc2l6ZSAgMywgZW5hYmxlZAoJbWFwWzE0XTogdHlwZSBJL08g UG9ydCwgcmFuZ2UgMzIsIGJhc2UgMHg5MDAwLCBzaXplICAyLCBlbmFibGVkCgltYXBbMThdOiB0 eXBlIEkvTyBQb3J0LCByYW5nZSAzMiwgYmFzZSAweDgwMDAsIHNpemUgIDMsIGVuYWJsZWQKCW1h cFsxY106IHR5cGUgSS9PIFBvcnQsIHJhbmdlIDMyLCBiYXNlIDB4NzAwMCwgc2l6ZSAgMiwgZW5h YmxlZAoJbWFwWzIwXTogdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIsIGJhc2UgMHg2MDAwLCBzaXpl ICA0LCBlbmFibGVkCgltYXBbMjRdOiB0eXBlIE1lbW9yeSwgcmFuZ2UgMzIsIGJhc2UgMHhmZDVm ZjgwMCwgc2l6ZSAxMCwgZW5hYmxlZApwY2liMDogbWF0Y2hlZCBlbnRyeSBmb3IgMC4xOC5JTlRB CnBjaWIwOiBzbG90IDE4IElOVEEgaGFyZHdpcmVkIHRvIElSUSAyMgpmb3VuZC0+CXZlbmRvcj0w eDEwMDIsIGRldj0weDQzODcsIHJldmlkPTB4MDAKCWRvbWFpbj0wLCBidXM9MCwgc2xvdD0xOSwg ZnVuYz0wCgljbGFzcz0wYy0wMy0xMCwgaGRydHlwZT0weDAwLCBtZmRldj0xCgljbWRyZWc9MHgw MTE3LCBzdGF0cmVnPTB4MDJhMCwgY2FjaGVsbnN6PTE2IChkd29yZHMpCglsYXR0aW1lcj0weDQw ICgxOTIwIG5zKSwgbWluZ250PTB4MDAgKDAgbnMpLCBtYXhsYXQ9MHgwMCAoMCBucykKCWludHBp bj1hLCBpcnE9NQoJbWFwWzEwXTogdHlwZSBNZW1vcnksIHJhbmdlIDMyLCBiYXNlIDB4ZmQ1ZmUw MDAsIHNpemUgMTIsIGVuYWJsZWQKcGNpYjA6IG1hdGNoZWQgZW50cnkgZm9yIDAuMTkuSU5UQQpw Y2liMDogc2xvdCAxOSBJTlRBIGhhcmR3aXJlZCB0byBJUlEgMTYKZm91bmQtPgl2ZW5kb3I9MHgx MDAyLCBkZXY9MHg0Mzg4LCByZXZpZD0weDAwCglkb21haW49MCwgYnVzPTAsIHNsb3Q9MTksIGZ1 bmM9MQoJY2xhc3M9MGMtMDMtMTAsIGhkcnR5cGU9MHgwMCwgbWZkZXY9MAoJY21kcmVnPTB4MDEx Nywgc3RhdHJlZz0weDAyYTAsIGNhY2hlbG5zej0xNiAoZHdvcmRzKQoJbGF0dGltZXI9MHg0MCAo MTkyMCBucyksIG1pbmdudD0weDAwICgwIG5zKSwgbWF4bGF0PTB4MDAgKDAgbnMpCglpbnRwaW49 YiwgaXJxPTE1CgltYXBbMTBdOiB0eXBlIE1lbW9yeSwgcmFuZ2UgMzIsIGJhc2UgMHhmZDVmZDAw MCwgc2l6ZSAxMiwgZW5hYmxlZApwY2liMDogbWF0Y2hlZCBlbnRyeSBmb3IgMC4xOS5JTlRCCnBj aWIwOiBzbG90IDE5IElOVEIgaGFyZHdpcmVkIHRvIElSUSAxNwpmb3VuZC0+CXZlbmRvcj0weDEw MDIsIGRldj0weDQzODksIHJldmlkPTB4MDAKCWRvbWFpbj0wLCBidXM9MCwgc2xvdD0xOSwgZnVu Yz0yCgljbGFzcz0wYy0wMy0xMCwgaGRydHlwZT0weDAwLCBtZmRldj0wCgljbWRyZWc9MHgwMTE3 LCBzdGF0cmVnPTB4MDJhMCwgY2FjaGVsbnN6PTE2IChkd29yZHMpCglsYXR0aW1lcj0weDQwICgx OTIwIG5zKSwgbWluZ250PTB4MDAgKDAgbnMpLCBtYXhsYXQ9MHgwMCAoMCBucykKCWludHBpbj1j LCBpcnE9MTAKCW1hcFsxMF06IHR5cGUgTWVtb3J5LCByYW5nZSAzMiwgYmFzZSAweGZkNWZjMDAw LCBzaXplIDEyLCBlbmFibGVkCnBjaWIwOiBtYXRjaGVkIGVudHJ5IGZvciAwLjE5LklOVEMKcGNp YjA6IHNsb3QgMTkgSU5UQyBoYXJkd2lyZWQgdG8gSVJRIDE4CmZvdW5kLT4JdmVuZG9yPTB4MTAw MiwgZGV2PTB4NDM4YSwgcmV2aWQ9MHgwMAoJZG9tYWluPTAsIGJ1cz0wLCBzbG90PTE5LCBmdW5j PTMKCWNsYXNzPTBjLTAzLTEwLCBoZHJ0eXBlPTB4MDAsIG1mZGV2PTAKCWNtZHJlZz0weDAxMTcs IHN0YXRyZWc9MHgwMmEwLCBjYWNoZWxuc3o9MTYgKGR3b3JkcykKCWxhdHRpbWVyPTB4NDAgKDE5 MjAgbnMpLCBtaW5nbnQ9MHgwMCAoMCBucyksIG1heGxhdD0weDAwICgwIG5zKQoJaW50cGluPWIs IGlycT0xNQoJbWFwWzEwXTogdHlwZSBNZW1vcnksIHJhbmdlIDMyLCBiYXNlIDB4ZmQ1ZmIwMDAs IHNpemUgMTIsIGVuYWJsZWQKcGNpYjA6IG1hdGNoZWQgZW50cnkgZm9yIDAuMTkuSU5UQgpwY2li MDogc2xvdCAxOSBJTlRCIGhhcmR3aXJlZCB0byBJUlEgMTcKZm91bmQtPgl2ZW5kb3I9MHgxMDAy LCBkZXY9MHg0MzhiLCByZXZpZD0weDAwCglkb21haW49MCwgYnVzPTAsIHNsb3Q9MTksIGZ1bmM9 NAoJY2xhc3M9MGMtMDMtMTAsIGhkcnR5cGU9MHgwMCwgbWZkZXY9MAoJY21kcmVnPTB4MDExNywg c3RhdHJlZz0weDAyYTAsIGNhY2hlbG5zej0xNiAoZHdvcmRzKQoJbGF0dGltZXI9MHg0MCAoMTky MCBucyksIG1pbmdudD0weDAwICgwIG5zKSwgbWF4bGF0PTB4MDAgKDAgbnMpCglpbnRwaW49Yywg aXJxPTEwCgltYXBbMTBdOiB0eXBlIE1lbW9yeSwgcmFuZ2UgMzIsIGJhc2UgMHhmZDVmYTAwMCwg c2l6ZSAxMiwgZW5hYmxlZApwY2liMDogbWF0Y2hlZCBlbnRyeSBmb3IgMC4xOS5JTlRDCnBjaWIw OiBzbG90IDE5IElOVEMgaGFyZHdpcmVkIHRvIElSUSAxOApmb3VuZC0+CXZlbmRvcj0weDEwMDIs IGRldj0weDQzODYsIHJldmlkPTB4MDAKCWRvbWFpbj0wLCBidXM9MCwgc2xvdD0xOSwgZnVuYz01 CgljbGFzcz0wYy0wMy0yMCwgaGRydHlwZT0weDAwLCBtZmRldj0wCgljbWRyZWc9MHgwMTE3LCBz dGF0cmVnPTB4MDJiOCwgY2FjaGVsbnN6PTE2IChkd29yZHMpCglsYXR0aW1lcj0weDQwICgxOTIw IG5zKSwgbWluZ250PTB4MDAgKDAgbnMpLCBtYXhsYXQ9MHgwMCAoMCBucykKCWludHBpbj1kLCBp cnE9MTAKCXBvd2Vyc3BlYyAyICBzdXBwb3J0cyBEMCBEMSBEMiBEMyAgY3VycmVudCBEMAoJbWFw WzEwXTogdHlwZSBNZW1vcnksIHJhbmdlIDMyLCBiYXNlIDB4ZmQ1ZmYwMDAsIHNpemUgIDgsIGVu YWJsZWQKcGNpYjA6IG1hdGNoZWQgZW50cnkgZm9yIDAuMTkuSU5URApwY2liMDogc2xvdCAxOSBJ TlREIGhhcmR3aXJlZCB0byBJUlEgMTkKZm91bmQtPgl2ZW5kb3I9MHgxMDAyLCBkZXY9MHg0Mzg1 LCByZXZpZD0weDE0Cglkb21haW49MCwgYnVzPTAsIHNsb3Q9MjAsIGZ1bmM9MAoJY2xhc3M9MGMt MDUtMDAsIGhkcnR5cGU9MHgwMCwgbWZkZXY9MQoJY21kcmVnPTB4MDQwMSwgc3RhdHJlZz0weDAy MzAsIGNhY2hlbG5zej0wIChkd29yZHMpCglsYXR0aW1lcj0weDAwICgwIG5zKSwgbWluZ250PTB4 MDAgKDAgbnMpLCBtYXhsYXQ9MHgwMCAoMCBucykKCW1hcFsxMF06IHR5cGUgSS9PIFBvcnQsIHJh bmdlIDMyLCBiYXNlIDB4YjAwLCBzaXplICA0LCBlbmFibGVkCmZvdW5kLT4JdmVuZG9yPTB4MTAw MiwgZGV2PTB4NDM4YywgcmV2aWQ9MHgwMAoJZG9tYWluPTAsIGJ1cz0wLCBzbG90PTIwLCBmdW5j PTEKCWNsYXNzPTAxLTAxLThhLCBoZHJ0eXBlPTB4MDAsIG1mZGV2PTAKCWNtZHJlZz0weDAwMDUs IHN0YXRyZWc9MHgwMjIwLCBjYWNoZWxuc3o9MCAoZHdvcmRzKQoJbGF0dGltZXI9MHgwMCAoMCBu cyksIG1pbmdudD0weDAwICgwIG5zKSwgbWF4bGF0PTB4MDAgKDAgbnMpCglpbnRwaW49YSwgaXJx PTI1NQoJbWFwWzIwXTogdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIsIGJhc2UgMHhmZjAwLCBzaXpl ICA0LCBlbmFibGVkCmZvdW5kLT4JdmVuZG9yPTB4MTAwMiwgZGV2PTB4NDM4MywgcmV2aWQ9MHgw MAoJZG9tYWluPTAsIGJ1cz0wLCBzbG90PTIwLCBmdW5jPTIKCWNsYXNzPTA0LTAzLTAwLCBoZHJ0 eXBlPTB4MDAsIG1mZGV2PTAKCWNtZHJlZz0weDAwMDYsIHN0YXRyZWc9MHgwNDEwLCBjYWNoZWxu c3o9MTYgKGR3b3JkcykKCWxhdHRpbWVyPTB4NDAgKDE5MjAgbnMpLCBtaW5nbnQ9MHgwMCAoMCBu cyksIG1heGxhdD0weDAwICgwIG5zKQoJaW50cGluPWEsIGlycT01Cglwb3dlcnNwZWMgMiAgc3Vw cG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKCW1hcFsxMF06IHR5cGUgTWVtb3J5LCByYW5nZSA2NCwg YmFzZSAweGZkNWY0MDAwLCBzaXplIDE0LCBlbmFibGVkCnBjaWIwOiBtYXRjaGVkIGVudHJ5IGZv ciAwLjIwLklOVEEKcGNpYjA6IHNsb3QgMjAgSU5UQSBoYXJkd2lyZWQgdG8gSVJRIDE2CmZvdW5k LT4JdmVuZG9yPTB4MTAwMiwgZGV2PTB4NDM4ZCwgcmV2aWQ9MHgwMAoJZG9tYWluPTAsIGJ1cz0w LCBzbG90PTIwLCBmdW5jPTMKCWNsYXNzPTA2LTAxLTAwLCBoZHJ0eXBlPTB4MDAsIG1mZGV2PTEK CWNtZHJlZz0weDAwMGYsIHN0YXRyZWc9MHgwMjIwLCBjYWNoZWxuc3o9MCAoZHdvcmRzKQoJbGF0 dGltZXI9MHgwMCAoMCBucyksIG1pbmdudD0weDAwICgwIG5zKSwgbWF4bGF0PTB4MDAgKDAgbnMp CmZvdW5kLT4JdmVuZG9yPTB4MTAwMiwgZGV2PTB4NDM4NCwgcmV2aWQ9MHgwMAoJZG9tYWluPTAs IGJ1cz0wLCBzbG90PTIwLCBmdW5jPTQKCWNsYXNzPTA2LTA0LTAxLCBoZHJ0eXBlPTB4MDEsIG1m ZGV2PTEKCWNtZHJlZz0weDAxMDcsIHN0YXRyZWc9MHgwMmEwLCBjYWNoZWxuc3o9MCAoZHdvcmRz KQoJbGF0dGltZXI9MHg0MCAoMTkyMCBucyksIG1pbmdudD0weDAzICg3NTAgbnMpLCBtYXhsYXQ9 MHgwMCAoMCBucykKZm91bmQtPgl2ZW5kb3I9MHgxMDIyLCBkZXY9MHgxMTAwLCByZXZpZD0weDAw Cglkb21haW49MCwgYnVzPTAsIHNsb3Q9MjQsIGZ1bmM9MAoJY2xhc3M9MDYtMDAtMDAsIGhkcnR5 cGU9MHgwMCwgbWZkZXY9MQoJY21kcmVnPTB4MDAwMCwgc3RhdHJlZz0weDAwMTAsIGNhY2hlbG5z ej0wIChkd29yZHMpCglsYXR0aW1lcj0weDAwICgwIG5zKSwgbWluZ250PTB4MDAgKDAgbnMpLCBt YXhsYXQ9MHgwMCAoMCBucykKZm91bmQtPgl2ZW5kb3I9MHgxMDIyLCBkZXY9MHgxMTAxLCByZXZp ZD0weDAwCglkb21haW49MCwgYnVzPTAsIHNsb3Q9MjQsIGZ1bmM9MQoJY2xhc3M9MDYtMDAtMDAs IGhkcnR5cGU9MHgwMCwgbWZkZXY9MQoJY21kcmVnPTB4MDAwMCwgc3RhdHJlZz0weDAwMDAsIGNh Y2hlbG5zej0wIChkd29yZHMpCglsYXR0aW1lcj0weDAwICgwIG5zKSwgbWluZ250PTB4MDAgKDAg bnMpLCBtYXhsYXQ9MHgwMCAoMCBucykKZm91bmQtPgl2ZW5kb3I9MHgxMDIyLCBkZXY9MHgxMTAy LCByZXZpZD0weDAwCglkb21haW49MCwgYnVzPTAsIHNsb3Q9MjQsIGZ1bmM9MgoJY2xhc3M9MDYt MDAtMDAsIGhkcnR5cGU9MHgwMCwgbWZkZXY9MQoJY21kcmVnPTB4MDAwMCwgc3RhdHJlZz0weDAw MDAsIGNhY2hlbG5zej0wIChkd29yZHMpCglsYXR0aW1lcj0weDAwICgwIG5zKSwgbWluZ250PTB4 MDAgKDAgbnMpLCBtYXhsYXQ9MHgwMCAoMCBucykKZm91bmQtPgl2ZW5kb3I9MHgxMDIyLCBkZXY9 MHgxMTAzLCByZXZpZD0weDAwCglkb21haW49MCwgYnVzPTAsIHNsb3Q9MjQsIGZ1bmM9MwoJY2xh c3M9MDYtMDAtMDAsIGhkcnR5cGU9MHgwMCwgbWZkZXY9MQoJY21kcmVnPTB4MDAwMCwgc3RhdHJl Zz0weDAwMTAsIGNhY2hlbG5zej0wIChkd29yZHMpCglsYXR0aW1lcj0weDAwICgwIG5zKSwgbWlu Z250PTB4MDAgKDAgbnMpLCBtYXhsYXQ9MHgwMCAoMCBucykKcGNpYjE6IDxBQ1BJIFBDSS1QQ0kg YnJpZGdlPiBhdCBkZXZpY2UgMi4wIG9uIHBjaTAKcGNpYjE6ICAgZG9tYWluICAgICAgICAgICAg MApwY2liMTogICBzZWNvbmRhcnkgYnVzICAgICAxCnBjaWIxOiAgIHN1Ym9yZGluYXRlIGJ1cyAg IDEKcGNpYjE6ICAgSS9PIGRlY29kZSAgICAgICAgMHhiMDAwLTB4YmZmZgpwY2liMTogICBtZW1v cnkgZGVjb2RlICAgICAweGZkNjAwMDAwLTB4ZmQ2ZmZmZmYKcGNpYjE6ICAgcHJlZmV0Y2hlZCBk ZWNvZGUgMHhkMDAwMDAwMC0weGRmZmZmZmZmCnBjaTE6IDxBQ1BJIFBDSSBidXM+IG9uIHBjaWIx CnBjaTE6IGRvbWFpbj0wLCBwaHlzaWNhbCBidXM9MQpmb3VuZC0+CXZlbmRvcj0weDEwMDIsIGRl dj0weDk1ODEsIHJldmlkPTB4MDAKCWRvbWFpbj0wLCBidXM9MSwgc2xvdD0wLCBmdW5jPTAKCWNs YXNzPTAzLTAwLTAwLCBoZHJ0eXBlPTB4MDAsIG1mZGV2PTEKCWNtZHJlZz0weDAxMDcsIHN0YXRy ZWc9MHg0MDEwLCBjYWNoZWxuc3o9MTYgKGR3b3JkcykKCWxhdHRpbWVyPTB4MDAgKDAgbnMpLCBt aW5nbnQ9MHgwMCAoMCBucyksIG1heGxhdD0weDAwICgwIG5zKQoJaW50cGluPWEsIGlycT0xMAoJ cG93ZXJzcGVjIDMgIHN1cHBvcnRzIEQwIEQxIEQyIEQzICBjdXJyZW50IEQwCglNU0kgc3VwcG9y dHMgMSBtZXNzYWdlLCA2NCBiaXQKCW1hcFsxMF06IHR5cGUgUHJlZmV0Y2hhYmxlIE1lbW9yeSwg cmFuZ2UgNjQsIGJhc2UgMHhkMDAwMDAwMCwgc2l6ZSAyOCwgZW5hYmxlZApwY2liMTogcmVxdWVz dGVkIG1lbW9yeSByYW5nZSAweGQwMDAwMDAwLTB4ZGZmZmZmZmY6IGdvb2QKCW1hcFsxOF06IHR5 cGUgTWVtb3J5LCByYW5nZSA2NCwgYmFzZSAweGZkNmYwMDAwLCBzaXplIDE2LCBlbmFibGVkCnBj aWIxOiByZXF1ZXN0ZWQgbWVtb3J5IHJhbmdlIDB4ZmQ2ZjAwMDAtMHhmZDZmZmZmZjogZ29vZAoJ bWFwWzIwXTogdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIsIGJhc2UgMHhiMDAwLCBzaXplICA4LCBl bmFibGVkCnBjaWIxOiByZXF1ZXN0ZWQgSS9PIHJhbmdlIDB4YjAwMC0weGIwZmY6IGluIHJhbmdl CnBjaWIxOiBtYXRjaGVkIGVudHJ5IGZvciAxLjAuSU5UQQpwY2liMTogc2xvdCAwIElOVEEgaGFy ZHdpcmVkIHRvIElSUSAxOApmb3VuZC0+CXZlbmRvcj0weDEwMDIsIGRldj0weGFhMDgsIHJldmlk PTB4MDAKCWRvbWFpbj0wLCBidXM9MSwgc2xvdD0wLCBmdW5jPTEKCWNsYXNzPTA0LTAzLTAwLCBo ZHJ0eXBlPTB4MDAsIG1mZGV2PTEKCWNtZHJlZz0weDAxMDcsIHN0YXRyZWc9MHg0MDEwLCBjYWNo ZWxuc3o9MTYgKGR3b3JkcykKCWxhdHRpbWVyPTB4MDAgKDAgbnMpLCBtaW5nbnQ9MHgwMCAoMCBu cyksIG1heGxhdD0weDAwICgwIG5zKQoJaW50cGluPWIsIGlycT0xMAoJcG93ZXJzcGVjIDMgIHN1 cHBvcnRzIEQwIEQxIEQyIEQzICBjdXJyZW50IEQwCglNU0kgc3VwcG9ydHMgMSBtZXNzYWdlLCA2 NCBiaXQKCW1hcFsxMF06IHR5cGUgTWVtb3J5LCByYW5nZSA2NCwgYmFzZSAweGZkNmVjMDAwLCBz aXplIDE0LCBlbmFibGVkCnBjaWIxOiByZXF1ZXN0ZWQgbWVtb3J5IHJhbmdlIDB4ZmQ2ZWMwMDAt MHhmZDZlZmZmZjogZ29vZApwY2liMTogbWF0Y2hlZCBlbnRyeSBmb3IgMS4wLklOVEIKcGNpYjE6 IHNsb3QgMCBJTlRCIGhhcmR3aXJlZCB0byBJUlEgMTkKdmdhcGNpMDogPFZHQS1jb21wYXRpYmxl IGRpc3BsYXk+IHBvcnQgMHhiMDAwLTB4YjBmZiBtZW0gMHhkMDAwMDAwMC0weGRmZmZmZmZmLDB4 ZmQ2ZjAwMDAtMHhmZDZmZmZmZiBpcnEgMTggYXQgZGV2aWNlIDAuMCBvbiBwY2kxCnBjaTE6IDxt dWx0aW1lZGlhPiBhdCBkZXZpY2UgMC4xIChubyBkcml2ZXIgYXR0YWNoZWQpCnBjaWIyOiA8QUNQ SSBQQ0ktUENJIGJyaWRnZT4gYXQgZGV2aWNlIDQuMCBvbiBwY2kwCnBjaWIyOiAgIGRvbWFpbiAg ICAgICAgICAgIDAKcGNpYjI6ICAgc2Vjb25kYXJ5IGJ1cyAgICAgMgpwY2liMjogICBzdWJvcmRp bmF0ZSBidXMgICAyCnBjaWIyOiAgIEkvTyBkZWNvZGUgICAgICAgIDB4MC0weDAKcGNpYjI6ICAg bWVtb3J5IGRlY29kZSAgICAgMHhmZDcwMDAwMC0weGZkN2ZmZmZmCnBjaWIyOiAgIG5vIHByZWZl dGNoZWQgZGVjb2RlCnBjaTI6IDxBQ1BJIFBDSSBidXM+IG9uIHBjaWIyCnBjaTI6IGRvbWFpbj0w LCBwaHlzaWNhbCBidXM9Mgpmb3VuZC0+CXZlbmRvcj0weDE2OGMsIGRldj0weDAwMWMsIHJldmlk PTB4MDEKCWRvbWFpbj0wLCBidXM9Miwgc2xvdD0wLCBmdW5jPTAKCWNsYXNzPTAyLTAwLTAwLCBo ZHJ0eXBlPTB4MDAsIG1mZGV2PTAKCWNtZHJlZz0weDAxMDcsIHN0YXRyZWc9MHgwMDEwLCBjYWNo ZWxuc3o9MTYgKGR3b3JkcykKCWxhdHRpbWVyPTB4MDAgKDAgbnMpLCBtaW5nbnQ9MHgwMCAoMCBu cyksIG1heGxhdD0weDAwICgwIG5zKQoJaW50cGluPWEsIGlycT01Cglwb3dlcnNwZWMgMiAgc3Vw cG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKCU1TSSBzdXBwb3J0cyAxIG1lc3NhZ2UKCU1TSS1YIHN1 cHBvcnRzIDEgbWVzc2FnZSBpbiBtYXAgMHgxMAoJbWFwWzEwXTogdHlwZSBNZW1vcnksIHJhbmdl IDY0LCBiYXNlIDB4ZmQ3ZjAwMDAsIHNpemUgMTYsIGVuYWJsZWQKcGNpYjI6IHJlcXVlc3RlZCBt ZW1vcnkgcmFuZ2UgMHhmZDdmMDAwMC0weGZkN2ZmZmZmOiBnb29kCnBjaWIyOiBtYXRjaGVkIGVu dHJ5IGZvciAyLjAuSU5UQQpwY2liMjogc2xvdCAwIElOVEEgaGFyZHdpcmVkIHRvIElSUSAxNgph dGgwOiA8QXRoZXJvcyA1NDI0LzI0MjQ+IG1lbSAweGZkN2YwMDAwLTB4ZmQ3ZmZmZmYgaXJxIDE2 IGF0IGRldmljZSAwLjAgb24gcGNpMgphdGgwOiBSZXNlcnZlZCAweDEwMDAwIGJ5dGVzIGZvciBy aWQgMHgxMCB0eXBlIDMgYXQgMHhmZDdmMDAwMAppb2FwaWMwOiByb3V0aW5nIGludHBpbiAxNiAo UENJIElSUSAxNikgdG8gdmVjdG9yIDQ5CmF0aDA6IFtNUFNBRkVdCmF0aDA6IFtJVEhSRUFEXQph dGgwOiB1bmFibGUgdG8gYXR0YWNoIGhhcmR3YXJlOyBIQUwgc3RhdHVzIDEzCmRldmljZV9hdHRh Y2g6IGF0aDAgYXR0YWNoIHJldHVybmVkIDYKcGNpYjM6IDxBQ1BJIFBDSS1QQ0kgYnJpZGdlPiBh dCBkZXZpY2UgNi4wIG9uIHBjaTAKcGNpYjM6ICAgZG9tYWluICAgICAgICAgICAgMApwY2liMzog ICBzZWNvbmRhcnkgYnVzICAgICAzCnBjaWIzOiAgIHN1Ym9yZGluYXRlIGJ1cyAgIDQKcGNpYjM6 ICAgSS9PIGRlY29kZSAgICAgICAgMHhlMDAwLTB4ZWZmZgpwY2liMzogICBtZW1vcnkgZGVjb2Rl ICAgICAweGZkODAwMDAwLTB4ZmUxZmZmZmYKcGNpYjM6ICAgcHJlZmV0Y2hlZCBkZWNvZGUgMHhm ODAwMDAwMC0weGZhZmZmZmZmCnBjaTM6IDxBQ1BJIFBDSSBidXM+IG9uIHBjaWIzCnBjaTM6IGRv bWFpbj0wLCBwaHlzaWNhbCBidXM9MwpwY2liNDogPEFDUEkgUENJLVBDSSBicmlkZ2U+IGF0IGRl dmljZSA3LjAgb24gcGNpMApwY2liNDogICBkb21haW4gICAgICAgICAgICAwCnBjaWI0OiAgIHNl Y29uZGFyeSBidXMgICAgIDUKcGNpYjQ6ICAgc3Vib3JkaW5hdGUgYnVzICAgNQpwY2liNDogICBJ L08gZGVjb2RlICAgICAgICAweGMwMDAtMHhjZmZmCnBjaWI0OiAgIG1lbW9yeSBkZWNvZGUgICAg IDB4ZmUyMDAwMDAtMHhmZTJmZmZmZgpwY2liNDogICBubyBwcmVmZXRjaGVkIGRlY29kZQpwY2k1 OiA8QUNQSSBQQ0kgYnVzPiBvbiBwY2liNApwY2k1OiBkb21haW49MCwgcGh5c2ljYWwgYnVzPTUK Zm91bmQtPgl2ZW5kb3I9MHgxMGVjLCBkZXY9MHg4MTY4LCByZXZpZD0weDAxCglkb21haW49MCwg YnVzPTUsIHNsb3Q9MCwgZnVuYz0wCgljbGFzcz0wMi0wMC0wMCwgaGRydHlwZT0weDAwLCBtZmRl dj0wCgljbWRyZWc9MHgwMTA3LCBzdGF0cmVnPTB4NDAxMCwgY2FjaGVsbnN6PTE2IChkd29yZHMp CglsYXR0aW1lcj0weDAwICgwIG5zKSwgbWluZ250PTB4MDAgKDAgbnMpLCBtYXhsYXQ9MHgwMCAo MCBucykKCWludHBpbj1hLCBpcnE9MTAKCXBvd2Vyc3BlYyAyICBzdXBwb3J0cyBEMCBEMSBEMiBE MyAgY3VycmVudCBEMAoJTVNJIHN1cHBvcnRzIDIgbWVzc2FnZXMsIDY0IGJpdAoJbWFwWzEwXTog dHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIsIGJhc2UgMHhjODAwLCBzaXplICA4LCBlbmFibGVkCnBj aWI0OiByZXF1ZXN0ZWQgSS9PIHJhbmdlIDB4YzgwMC0weGM4ZmY6IGluIHJhbmdlCgltYXBbMThd OiB0eXBlIE1lbW9yeSwgcmFuZ2UgNjQsIGJhc2UgMHhmZTJmZjAwMCwgc2l6ZSAxMiwgZW5hYmxl ZApwY2liNDogcmVxdWVzdGVkIG1lbW9yeSByYW5nZSAweGZlMmZmMDAwLTB4ZmUyZmZmZmY6IGdv b2QKcGNpYjQ6IG1hdGNoZWQgZW50cnkgZm9yIDUuMC5JTlRBCnBjaWI0OiBzbG90IDAgSU5UQSBo YXJkd2lyZWQgdG8gSVJRIDE5CnJlMDogUmVzZXJ2ZWQgMHgxMDAgYnl0ZXMgZm9yIHJpZCAweDEw IHR5cGUgNCBhdCAweGM4MDAKcGNpYjQ6IHJlMCByZXF1ZXN0ZWQgSS9PIHJhbmdlIDB4YzgwMC0w eGM4ZmY6IGluIHJhbmdlCnBjaWI0OiByZTAgcmVxdWVzdGVkIEkvTyByYW5nZSAweGM4MDAtMHhj OGZmOiBpbiByYW5nZQpwY2liNDogcmUwIHJlcXVlc3RlZCBJL08gcmFuZ2UgMHhjODAwLTB4Yzhm ZjogaW4gcmFuZ2UKcmUwOiA8UmVhbFRlayA4MTY4LzgxMTFCIFBDSWUgR2lnYWJpdCBFdGhlcm5l dD4gcG9ydCAweGM4MDAtMHhjOGZmIG1lbSAweGZlMmZmMDAwLTB4ZmUyZmZmZmYgaXJxIDE5IGF0 IGRldmljZSAwLjAgb24gcGNpNQpwY2liNDogcmUwIHJlcXVlc3RlZCBJL08gcmFuZ2UgMHhjODAw LTB4YzhmZjogaW4gcmFuZ2UKcmUwOiBNU0kgY291bnQgOiAyCnJlMDogYXR0ZW1wdGluZyB0byBh bGxvY2F0ZSAyIE1TSSB2ZWN0b3JzICgyIHN1cHBvcnRlZCkKbXNpOiByb3V0aW5nIE1TSSBJUlEg MjU2IHRvIHZlY3RvciA1MAptc2k6IHJvdXRpbmcgTVNJIElSUSAyNTcgdG8gdmVjdG9yIDUxCnJl MDogdXNpbmcgSVJRcyAyNTYtMjU3IGZvciBNU0kKcmUwOiBVc2luZyAyIE1TSSBtZXNzYWdlcwpt aWlidXMwOiA8TUlJIGJ1cz4gb24gcmUwCnJnZXBoeTA6IDxSVEw4MTY5Uy84MTEwUy84MjExQiBt ZWRpYSBpbnRlcmZhY2U+IFBIWSAxIG9uIG1paWJ1czAKcmdlcGh5MDogIDEwYmFzZVQsIDEwYmFz ZVQtRkRYLCAxMDBiYXNlVFgsIDEwMGJhc2VUWC1GRFgsIDEwMDBiYXNlVCwgMTAwMGJhc2VULUZE WCwgYXV0bwpyZTA6IGJwZiBhdHRhY2hlZApyZTA6IEV0aGVybmV0IGFkZHJlc3M6IDAwOjE5OmRi OjNjOmJjOmQ3CnJlMDogW01QU0FGRV0KcmUwOiBbRklMVEVSXQpyZTA6IFtNUFNBRkVdCnJlMDog W0ZJTFRFUl0KYXRhcGNpMDogPEFUSSBBVEEgY29udHJvbGxlcj4gcG9ydCAweGEwMDAtMHhhMDA3 LDB4OTAwMC0weDkwMDMsMHg4MDAwLTB4ODAwNywweDcwMDAtMHg3MDAzLDB4NjAwMC0weDYwMGYg bWVtIDB4ZmQ1ZmY4MDAtMHhmZDVmZmJmZiBpcnEgMjIgYXQgZGV2aWNlIDE4LjAgb24gcGNpMAph dGFwY2kwOiBSZXNlcnZlZCAweDEwIGJ5dGVzIGZvciByaWQgMHgyMCB0eXBlIDQgYXQgMHg2MDAw CmlvYXBpYzA6IHJvdXRpbmcgaW50cGluIDIyIChQQ0kgSVJRIDIyKSB0byB2ZWN0b3IgNDkKYXRh cGNpMDogW01QU0FGRV0KYXRhcGNpMDogW0lUSFJFQURdCmF0YTI6IDxBVEEgY2hhbm5lbCAwPiBv biBhdGFwY2kwCmF0YXBjaTA6IFJlc2VydmVkIDB4OCBieXRlcyBmb3IgcmlkIDB4MTAgdHlwZSA0 IGF0IDB4YTAwMAphdGFwY2kwOiBSZXNlcnZlZCAweDQgYnl0ZXMgZm9yIHJpZCAweDE0IHR5cGUg NCBhdCAweDkwMDAKYXRhMjogcmVzZXQgdHAxIG1hc2s9MDMgb3N0YXQwPTUwIG9zdGF0MT0wMAph dGEyOiBzdGF0MD0weDUwIGVycj0weDAxIGxzYj0weDAwIG1zYj0weDAwCmF0YTI6IHN0YXQxPTB4 MDAgZXJyPTB4MDAgbHNiPTB4MDAgbXNiPTB4MDAKYXRhMjogcmVzZXQgdHAyIHN0YXQwPTUwIHN0 YXQxPTAwIGRldmljZXM9MHgxPEFUQV9NQVNURVI+CmF0YTI6IFtNUFNBRkVdCmF0YTI6IFtJVEhS RUFEXQphdGEzOiA8QVRBIGNoYW5uZWwgMT4gb24gYXRhcGNpMAphdGFwY2kwOiBSZXNlcnZlZCAw eDggYnl0ZXMgZm9yIHJpZCAweDE4IHR5cGUgNCBhdCAweDgwMDAKYXRhcGNpMDogUmVzZXJ2ZWQg MHg0IGJ5dGVzIGZvciByaWQgMHgxYyB0eXBlIDQgYXQgMHg3MDAwCmF0YTM6IHJlc2V0IHRwMSBt YXNrPTAzIG9zdGF0MD03ZiBvc3RhdDE9N2YKYXRhMzogc3RhdDA9MHg3ZiBlcnI9MHg3ZiBsc2I9 MHg3ZiBtc2I9MHg3ZgphdGEzOiBzdGF0MD0weDdmIGVycj0weDdmIGxzYj0weDdmIG1zYj0weDdm CmF0YTM6IHN0YXQwPTB4N2YgZXJyPTB4N2YgbHNiPTB4N2YgbXNiPTB4N2YKYXRhMzogc3RhdDA9 MHg3ZiBlcnI9MHg3ZiBsc2I9MHg3ZiBtc2I9MHg3ZgphdGEzOiBzdGF0MD0weDdmIGVycj0weDdm IGxzYj0weDdmIG1zYj0weDdmCmF0YTM6IHN0YXQwPTB4N2YgZXJyPTB4N2YgbHNiPTB4N2YgbXNi PTB4N2YKYXRhMzogc3RhdDA9MHg3ZiBlcnI9MHg3ZiBsc2I9MHg3ZiBtc2I9MHg3ZgphdGEzOiBz dGF0MD0weDdmIGVycj0weDdmIGxzYj0weDdmIG1zYj0weDdmCmF0YTM6IHN0YXQwPTB4N2YgZXJy PTB4N2YgbHNiPTB4N2YgbXNiPTB4N2YKYXRhMzogc3RhdDA9MHg3ZiBlcnI9MHg3ZiBsc2I9MHg3 ZiBtc2I9MHg3ZgphdGEzOiBzdGF0MD0weDdmIGVycj0weDdmIGxzYj0weDdmIG1zYj0weDdmCmF0 YTM6IHN0YXQwPTB4N2YgZXJyPTB4N2YgbHNiPTB4N2YgbXNiPTB4N2YKYXRhMzogc3RhdDE9MHg3 ZiBlcnI9MHg3ZiBsc2I9MHg3ZiBtc2I9MHg3ZgphdGEzOiByZXNldCB0cDIgc3RhdDA9ZmYgc3Rh dDE9ZmYgZGV2aWNlcz0weDAKYXRhMzogW01QU0FGRV0KYXRhMzogW0lUSFJFQURdCm9oY2kwOiA8 T0hDSSAoZ2VuZXJpYykgVVNCIGNvbnRyb2xsZXI+IG1lbSAweGZkNWZlMDAwLTB4ZmQ1ZmVmZmYg aXJxIDE2IGF0IGRldmljZSAxOS4wIG9uIHBjaTAKb2hjaTA6IFJlc2VydmVkIDB4MTAwMCBieXRl cyBmb3IgcmlkIDB4MTAgdHlwZSAzIGF0IDB4ZmQ1ZmUwMDAKaW9hcGljMDogcm91dGluZyBpbnRw aW4gMTYgKFBDSSBJUlEgMTYpIHRvIHZlY3RvciA1MgpvaGNpMDogW0dJQU5ULUxPQ0tFRF0Kb2hj aTA6IFtJVEhSRUFEXQp1c2IwOiBPSENJIHZlcnNpb24gMS4wLCBsZWdhY3kgc3VwcG9ydAp1c2Iw OiA8T0hDSSAoZ2VuZXJpYykgVVNCIGNvbnRyb2xsZXI+IG9uIG9oY2kwCnVzYjA6IFVTQiByZXZp c2lvbiAxLjAKdWh1YjA6IDxBVEkgT0hDSSByb290IGh1YiwgY2xhc3MgOS8wLCByZXYgMS4wMC8x LjAwLCBhZGRyIDE+IG9uIHVzYjAKdWh1YjA6IDIgcG9ydHMgd2l0aCAyIHJlbW92YWJsZSwgc2Vs ZiBwb3dlcmVkCm9oY2kxOiA8T0hDSSAoZ2VuZXJpYykgVVNCIGNvbnRyb2xsZXI+IG1lbSAweGZk NWZkMDAwLTB4ZmQ1ZmRmZmYgaXJxIDE3IGF0IGRldmljZSAxOS4xIG9uIHBjaTAKb2hjaTE6IFJl c2VydmVkIDB4MTAwMCBieXRlcyBmb3IgcmlkIDB4MTAgdHlwZSAzIGF0IDB4ZmQ1ZmQwMDAKaW9h cGljMDogcm91dGluZyBpbnRwaW4gMTcgKFBDSSBJUlEgMTcpIHRvIHZlY3RvciA1MwpvaGNpMTog W0dJQU5ULUxPQ0tFRF0Kb2hjaTE6IFtJVEhSRUFEXQp1c2IxOiBPSENJIHZlcnNpb24gMS4wLCBs ZWdhY3kgc3VwcG9ydAp1c2IxOiA8T0hDSSAoZ2VuZXJpYykgVVNCIGNvbnRyb2xsZXI+IG9uIG9o Y2kxCnVzYjE6IFVTQiByZXZpc2lvbiAxLjAKdWh1YjE6IDxBVEkgT0hDSSByb290IGh1YiwgY2xh c3MgOS8wLCByZXYgMS4wMC8xLjAwLCBhZGRyIDE+IG9uIHVzYjEKdWh1YjE6IDIgcG9ydHMgd2l0 aCAyIHJlbW92YWJsZSwgc2VsZiBwb3dlcmVkCm9oY2kyOiA8T0hDSSAoZ2VuZXJpYykgVVNCIGNv bnRyb2xsZXI+IG1lbSAweGZkNWZjMDAwLTB4ZmQ1ZmNmZmYgaXJxIDE4IGF0IGRldmljZSAxOS4y IG9uIHBjaTAKb2hjaTI6IFJlc2VydmVkIDB4MTAwMCBieXRlcyBmb3IgcmlkIDB4MTAgdHlwZSAz IGF0IDB4ZmQ1ZmMwMDAKaW9hcGljMDogcm91dGluZyBpbnRwaW4gMTggKFBDSSBJUlEgMTgpIHRv IHZlY3RvciA1NApvaGNpMjogW0dJQU5ULUxPQ0tFRF0Kb2hjaTI6IFtJVEhSRUFEXQp1c2IyOiBP SENJIHZlcnNpb24gMS4wLCBsZWdhY3kgc3VwcG9ydAp1c2IyOiA8T0hDSSAoZ2VuZXJpYykgVVNC IGNvbnRyb2xsZXI+IG9uIG9oY2kyCnVzYjI6IFVTQiByZXZpc2lvbiAxLjAKdWh1YjI6IDxBVEkg T0hDSSByb290IGh1YiwgY2xhc3MgOS8wLCByZXYgMS4wMC8xLjAwLCBhZGRyIDE+IG9uIHVzYjIK dWh1YjI6IDIgcG9ydHMgd2l0aCAyIHJlbW92YWJsZSwgc2VsZiBwb3dlcmVkCm9oY2kzOiA8T0hD SSAoZ2VuZXJpYykgVVNCIGNvbnRyb2xsZXI+IG1lbSAweGZkNWZiMDAwLTB4ZmQ1ZmJmZmYgaXJx IDE3IGF0IGRldmljZSAxOS4zIG9uIHBjaTAKb2hjaTM6IFJlc2VydmVkIDB4MTAwMCBieXRlcyBm b3IgcmlkIDB4MTAgdHlwZSAzIGF0IDB4ZmQ1ZmIwMDAKb2hjaTM6IFtHSUFOVC1MT0NLRURdCm9o Y2kzOiBbSVRIUkVBRF0KdXNiMzogT0hDSSB2ZXJzaW9uIDEuMCwgbGVnYWN5IHN1cHBvcnQKdXNi MzogPE9IQ0kgKGdlbmVyaWMpIFVTQiBjb250cm9sbGVyPiBvbiBvaGNpMwp1c2IzOiBVU0IgcmV2 aXNpb24gMS4wCnVodWIzOiA8QVRJIE9IQ0kgcm9vdCBodWIsIGNsYXNzIDkvMCwgcmV2IDEuMDAv MS4wMCwgYWRkciAxPiBvbiB1c2IzCnVodWIzOiAyIHBvcnRzIHdpdGggMiByZW1vdmFibGUsIHNl bGYgcG93ZXJlZApvaGNpNDogPE9IQ0kgKGdlbmVyaWMpIFVTQiBjb250cm9sbGVyPiBtZW0gMHhm ZDVmYTAwMC0weGZkNWZhZmZmIGlycSAxOCBhdCBkZXZpY2UgMTkuNCBvbiBwY2kwCm9oY2k0OiBS ZXNlcnZlZCAweDEwMDAgYnl0ZXMgZm9yIHJpZCAweDEwIHR5cGUgMyBhdCAweGZkNWZhMDAwCm9o Y2k0OiBbR0lBTlQtTE9DS0VEXQpvaGNpNDogW0lUSFJFQURdCnVzYjQ6IE9IQ0kgdmVyc2lvbiAx LjAsIGxlZ2FjeSBzdXBwb3J0CnVzYjQ6IDxPSENJIChnZW5lcmljKSBVU0IgY29udHJvbGxlcj4g b24gb2hjaTQKdXNiNDogVVNCIHJldmlzaW9uIDEuMAp1aHViNDogPEFUSSBPSENJIHJvb3QgaHVi LCBjbGFzcyA5LzAsIHJldiAxLjAwLzEuMDAsIGFkZHIgMT4gb24gdXNiNAp1aHViNDogMiBwb3J0 cyB3aXRoIDIgcmVtb3ZhYmxlLCBzZWxmIHBvd2VyZWQKZWhjaTA6IDxFSENJIChnZW5lcmljKSBV U0IgMi4wIGNvbnRyb2xsZXI+IG1lbSAweGZkNWZmMDAwLTB4ZmQ1ZmYwZmYgaXJxIDE5IGF0IGRl dmljZSAxOS41IG9uIHBjaTAKZWhjaTA6IFJlc2VydmVkIDB4MTAwIGJ5dGVzIGZvciByaWQgMHgx MCB0eXBlIDMgYXQgMHhmZDVmZjAwMAppb2FwaWMwOiByb3V0aW5nIGludHBpbiAxOSAoUENJIElS USAxOSkgdG8gdmVjdG9yIDU1CmVoY2kwOiBbR0lBTlQtTE9DS0VEXQplaGNpMDogW0lUSFJFQURd CmVoY2kwOiBEcm9wcGVkIGludGVycnVwdHMgd29ya2Fyb3VuZCBlbmFibGVkCnVzYjU6IEVIQ0kg dmVyc2lvbiAxLjAKdXNiNTogY29tcGFuaW9uIGNvbnRyb2xsZXJzLCAyIHBvcnRzIGVhY2g6IHVz YjAgdXNiMSB1c2IyIHVzYjMgdXNiNAp1c2I1OiA8RUhDSSAoZ2VuZXJpYykgVVNCIDIuMCBjb250 cm9sbGVyPiBvbiBlaGNpMAp1c2I1OiBVU0IgcmV2aXNpb24gMi4wCnVodWI1OiA8QVRJIEVIQ0kg cm9vdCBodWIsIGNsYXNzIDkvMCwgcmV2IDIuMDAvMS4wMCwgYWRkciAxPiBvbiB1c2I1CnVodWI1 OiAxMCBwb3J0cyB3aXRoIDEwIHJlbW92YWJsZSwgc2VsZiBwb3dlcmVkCnBjaTA6IDxzZXJpYWwg YnVzLCBTTUJ1cz4gYXQgZGV2aWNlIDIwLjAgKG5vIGRyaXZlciBhdHRhY2hlZCkKYXRhcGNpMTog PEFUSSBJWFA2MDAgVURNQTEzMyBjb250cm9sbGVyPiBwb3J0IDB4MWYwLTB4MWY3LDB4M2Y2LDB4 MTcwLTB4MTc3LDB4Mzc2LDB4ZmYwMC0weGZmMGYgYXQgZGV2aWNlIDIwLjEgb24gcGNpMAphdGFw Y2kxOiBSZXNlcnZlZCAweDEwIGJ5dGVzIGZvciByaWQgMHgyMCB0eXBlIDQgYXQgMHhmZjAwCmF0 YTA6IDxBVEEgY2hhbm5lbCAwPiBvbiBhdGFwY2kxCmF0YXBjaTE6IFJlc2VydmVkIDB4OCBieXRl cyBmb3IgcmlkIDB4MTAgdHlwZSA0IGF0IDB4MWYwCmF0YXBjaTE6IFJlc2VydmVkIDB4MSBieXRl cyBmb3IgcmlkIDB4MTQgdHlwZSA0IGF0IDB4M2Y2CmF0YTA6IHJlc2V0IHRwMSBtYXNrPTAzIG9z dGF0MD01MCBvc3RhdDE9MDEKYXRhMDogc3RhdDA9MHgxMCBlcnI9MHgwMSBsc2I9MHgxNCBtc2I9 MHhlYgphdGEwOiBzdGF0MT0weDAxIGVycj0weDA0IGxzYj0weDAwIG1zYj0weDAwCmF0YTA6IHJl c2V0IHRwMiBzdGF0MD0xMCBzdGF0MT0wMSBkZXZpY2VzPTB4NDxBVEFQSV9NQVNURVI+CmlvYXBp YzA6IHJvdXRpbmcgaW50cGluIDE0IChJU0EgSVJRIDE0KSB0byB2ZWN0b3IgNTYKYXRhMDogW01Q U0FGRV0KYXRhMDogW0lUSFJFQURdCnBjaTA6IDxtdWx0aW1lZGlhPiBhdCBkZXZpY2UgMjAuMiAo bm8gZHJpdmVyIGF0dGFjaGVkKQppc2FiMDogPFBDSS1JU0EgYnJpZGdlPiBhdCBkZXZpY2UgMjAu MyBvbiBwY2kwCmlzYTA6IDxJU0EgYnVzPiBvbiBpc2FiMApwY2liNTogPEFDUEkgUENJLVBDSSBi cmlkZ2U+IGF0IGRldmljZSAyMC40IG9uIHBjaTAKcGNpYjU6ICAgZG9tYWluICAgICAgICAgICAg MApwY2liNTogICBzZWNvbmRhcnkgYnVzICAgICA2CnBjaWI1OiAgIHN1Ym9yZGluYXRlIGJ1cyAg IDcKcGNpYjU6ICAgSS9PIGRlY29kZSAgICAgICAgMHhkMDAwLTB4ZGZmZgpwY2liNTogICBtZW1v cnkgZGVjb2RlICAgICAweGZlMzAwMDAwLTB4ZmViZmZmZmYKcGNpYjU6ICAgcHJlZmV0Y2hlZCBk ZWNvZGUgMHhmYjAwMDAwMC0weGZjZmZmZmZmCnBjaWI1OiAgIFN1YnRyYWN0aXZlbHkgZGVjb2Rl ZCBicmlkZ2UuCnBjaTY6IDxBQ1BJIFBDSSBidXM+IG9uIHBjaWI1CnBjaTY6IGRvbWFpbj0wLCBw aHlzaWNhbCBidXM9Ngpmb3VuZC0+CXZlbmRvcj0weDEyMTcsIGRldj0weDcxMzQsIHJldmlkPTB4 MjEKCWRvbWFpbj0wLCBidXM9Niwgc2xvdD00LCBmdW5jPTAKCWNsYXNzPTA2LTA3LTAwLCBoZHJ0 eXBlPTB4MDIsIG1mZGV2PTEKCWNtZHJlZz0weDAxMDcsIHN0YXRyZWc9MHgwNDEwLCBjYWNoZWxu c3o9MCAoZHdvcmRzKQoJbGF0dGltZXI9MHg0MCAoMTkyMCBucyksIG1pbmdudD0weDQzICgxNjc1 MCBucyksIG1heGxhdD0weDAwICgwIG5zKQoJaW50cGluPWEsIGlycT0zCglwb3dlcnNwZWMgMiAg c3VwcG9ydHMgRDAgRDEgRDIgRDMgIGN1cnJlbnQgRDAKCW1hcFsxMF06IHR5cGUgTWVtb3J5LCBy YW5nZSAzMiwgYmFzZSAwLCBzaXplIDEyLCBlbmFibGVkCnBjaWI1OiBtYXRjaGVkIGVudHJ5IGZv ciA2LjQuSU5UQQpwY2liNTogc2xvdCA0IElOVEEgaGFyZHdpcmVkIHRvIElSUSAyMApmb3VuZC0+ CXZlbmRvcj0weDEyMTcsIGRldj0weDcxMjAsIHJldmlkPTB4MDEKCWRvbWFpbj0wLCBidXM9Niwg c2xvdD00LCBmdW5jPTIKCWNsYXNzPTA4LTA1LTAwLCBoZHJ0eXBlPTB4MDAsIG1mZGV2PTAKCWNt ZHJlZz0weDAxMDIsIHN0YXRyZWc9MHgwNDEwLCBjYWNoZWxuc3o9MTYgKGR3b3JkcykKCWxhdHRp bWVyPTB4NDAgKDE5MjAgbnMpLCBtaW5nbnQ9MHgwMCAoMCBucyksIG1heGxhdD0weDAwICgwIG5z KQoJaW50cGluPWEsIGlycT0zCglwb3dlcnNwZWMgMiAgc3VwcG9ydHMgRDAgRDEgRDIgRDMgIGN1 cnJlbnQgRDAKCW1hcFsxMF06IHR5cGUgTWVtb3J5LCByYW5nZSAzMiwgYmFzZSAweGZlM2ZmYzAw LCBzaXplICA4LCBlbmFibGVkCnBjaWI1OiByZXF1ZXN0ZWQgbWVtb3J5IHJhbmdlIDB4ZmUzZmZj MDAtMHhmZTNmZmNmZjogZ29vZApwY2liNTogbWF0Y2hlZCBlbnRyeSBmb3IgNi40LklOVEEKcGNp YjU6IHNsb3QgNCBJTlRBIGhhcmR3aXJlZCB0byBJUlEgMjAKZm91bmQtPgl2ZW5kb3I9MHgxMjE3 LCBkZXY9MHg3MTMwLCByZXZpZD0weDAxCglkb21haW49MCwgYnVzPTYsIHNsb3Q9NCwgZnVuYz0z CgljbGFzcz0wNi04MC0wMCwgaGRydHlwZT0weDAwLCBtZmRldj0wCgljbWRyZWc9MHgwMTAyLCBz dGF0cmVnPTB4MDQxMCwgY2FjaGVsbnN6PTE2IChkd29yZHMpCglsYXR0aW1lcj0weDQwICgxOTIw IG5zKSwgbWluZ250PTB4MDAgKDAgbnMpLCBtYXhsYXQ9MHgwMCAoMCBucykKCWludHBpbj1hLCBp cnE9MwoJcG93ZXJzcGVjIDIgIHN1cHBvcnRzIEQwIEQxIEQyIEQzICBjdXJyZW50IEQwCgltYXBb MTBdOiB0eXBlIE1lbW9yeSwgcmFuZ2UgMzIsIGJhc2UgMHhmZTNmZTAwMCwgc2l6ZSAxMiwgZW5h YmxlZApwY2liNTogcmVxdWVzdGVkIG1lbW9yeSByYW5nZSAweGZlM2ZlMDAwLTB4ZmUzZmVmZmY6 IGdvb2QKcGNpYjU6IG1hdGNoZWQgZW50cnkgZm9yIDYuNC5JTlRBCnBjaWI1OiBzbG90IDQgSU5U QSBoYXJkd2lyZWQgdG8gSVJRIDIwCmZvdW5kLT4JdmVuZG9yPTB4MTIxNywgZGV2PTB4MDBmNywg cmV2aWQ9MHgwMgoJZG9tYWluPTAsIGJ1cz02LCBzbG90PTQsIGZ1bmM9NAoJY2xhc3M9MGMtMDAt MTAsIGhkcnR5cGU9MHgwMCwgbWZkZXY9MAoJY21kcmVnPTB4MDExNywgc3RhdHJlZz0weDAyMTAs IGNhY2hlbG5zej0xNiAoZHdvcmRzKQoJbGF0dGltZXI9MHg0MCAoMTkyMCBucyksIG1pbmdudD0w eDAwICgwIG5zKSwgbWF4bGF0PTB4MDAgKDAgbnMpCglpbnRwaW49YSwgaXJxPTMKCXBvd2Vyc3Bl YyAyICBzdXBwb3J0cyBEMCBEMSBEMiBEMyAgY3VycmVudCBEMAoJbWFwWzEwXTogdHlwZSBNZW1v cnksIHJhbmdlIDMyLCBiYXNlIDB4ZmUzZmQwMDAsIHNpemUgMTIsIGVuYWJsZWQKcGNpYjU6IHJl cXVlc3RlZCBtZW1vcnkgcmFuZ2UgMHhmZTNmZDAwMC0weGZlM2ZkZmZmOiBnb29kCgltYXBbMTRd OiB0eXBlIE1lbW9yeSwgcmFuZ2UgMzIsIGJhc2UgMHhmZTNmZjAwMCwgc2l6ZSAxMSwgZW5hYmxl ZApwY2liNTogcmVxdWVzdGVkIG1lbW9yeSByYW5nZSAweGZlM2ZmMDAwLTB4ZmUzZmY3ZmY6IGdv b2QKcGNpYjU6IG1hdGNoZWQgZW50cnkgZm9yIDYuNC5JTlRBCnBjaWI1OiBzbG90IDQgSU5UQSBo YXJkd2lyZWQgdG8gSVJRIDIwCmNiYjA6IDxQQ0ktQ2FyZEJ1cyBCcmlkZ2U+IGlycSAyMCBhdCBk ZXZpY2UgNC4wIG9uIHBjaTYKcGNpYjU6IGNiYjAgcmVxdWVzdGVkIG1lbW9yeSByYW5nZSAweGZl MzAwMDAwLTB4ZmViZmZmZmY6IGdvb2QKY2JiMDogTGF6eSBhbGxvY2F0aW9uIG9mIDB4MTAwMCBi eXRlcyByaWQgMHgxMCB0eXBlIDMgYXQgMHhmZTMwMDAwMApjYXJkYnVzMDogPENhcmRCdXMgYnVz PiBvbiBjYmIwCnBjY2FyZDA6IDwxNi1iaXQgUENDYXJkIGJ1cz4gb24gY2JiMAppb2FwaWMwOiBy b3V0aW5nIGludHBpbiAyMCAoUENJIElSUSAyMCkgdG8gdmVjdG9yIDU3CmNiYjA6IFtNUFNBRkVd CmNiYjA6IFtJVEhSRUFEXQpjYmIwOiBQQ0kgQ29uZmlndXJhdGlvbiBzcGFjZToKICAweDAwOiAw eDcxMzQxMjE3IDB4MDQxMDAxMDcgMHgwNjA3MDAyMSAweDAwODI0MDAwIAogIDB4MTA6IDB4ZmUz MDAwMDAgMHgwMjAwMDBhMCAweDQwMDcwNzA2IDB4ZmZmZmYwMDAgCiAgMHgyMDogMHgwMDAwMDAw MCAweGZmZmZmMDAwIDB4MDAwMDAwMDAgMHgwMDAwZmZmZCAKICAweDMwOiAweDAwMDAwMDAxIDB4 MDAwMGZmZmQgMHgwMDAwMDAwMSAweDA0NDMwMTE0IAogIDB4NDA6IDB4NDJjZDE0NjIgMHgwMDAw MDAwMSAweDAwMDAwMDAwIDB4MDAwMDAwMDAgCiAgMHg1MDogMHgwMDAwMDAwMCAweDAwMDAwMDAw IDB4MDAwMDAwMDAgMHgwMDAwMDAwMCAKICAweDYwOiAweDAwMDAwMDAwIDB4MDAwMDAwMDAgMHgw MDAwMDAwMCAweDAwMDAwMDAwIAogIDB4NzA6IDB4MDAwMDAwMDAgMHgwMDAwMDAwMCAweDAwMDAw MDAwIDB4MDAwMDAwMDAgCiAgMHg4MDogMHgwMDAwMDAwMCAweDAwMDAwMDAwIDB4MDAwMDAwMDAg MHgwMTAwMTAwMiAKICAweDkwOiAweDAwMDUyNDA2IDB4MDAwMDAwMDAgMHgwMDAwMDAwMCAweDAw MDAwMDAwIAogIDB4YTA6IDB4ZmUwMjAwMDEgMHgwMGMwNDAwMCAweDAwMDAwMDAwIDB4MDAwMDAw MWYgCiAgMHhiMDogMHgwMDAwMDAwMCAweDAwMDAwMDAwIDB4MDAwMDAwMDAgMHgwMDAwMDAwMCAK ICAweGMwOiAweDAwMDAwMDAwIDB4MDAwMDAwMDAgMHgwMDAwMDAwMCAweDAwMDAwMDAwIAogIDB4 ZDA6IDB4MDkwMDYxMDAgMHg4MDgyMGJlYSAweDAwMDAwMDAwIDB4MDA0MDAwMTggCiAgMHhlMDog MHgwMDgyMDAwNiAweDAwMDkxMDk5IDB4MDAwMDAwMDAgMHgwMDAwMDAwMCAKICAweGYwOiAweDAw MDAwMDAwIDB4MDAwMDAwMDAgMHgwMDAwMDAwMCAweDAwMDAwMDAwIApwY2k2OiA8YmFzZSBwZXJp cGhlcmFsPiBhdCBkZXZpY2UgNC4yIChubyBkcml2ZXIgYXR0YWNoZWQpCnBjaTY6IDxicmlkZ2U+ IGF0IGRldmljZSA0LjMgKG5vIGRyaXZlciBhdHRhY2hlZCkKZndvaGNpMDogdmVuZG9yPTEyMTcs IGRldj1mNwpmd29oY2kwOiB2ZW5kb3I9MTIxNywgZGV2PWY3CmZ3b2hjaTA6IDwxMzk0IE9wZW4g SG9zdCBDb250cm9sbGVyIEludGVyZmFjZT4gbWVtIDB4ZmUzZmQwMDAtMHhmZTNmZGZmZiwweGZl M2ZmMDAwLTB4ZmUzZmY3ZmYgaXJxIDIwIGF0IGRldmljZSA0LjQgb24gcGNpNgpmd29oY2kwOiBS ZXNlcnZlZCAweDEwMDAgYnl0ZXMgZm9yIHJpZCAweDEwIHR5cGUgMyBhdCAweGZlM2ZkMDAwCmZ3 b2hjaTA6IFtNUFNBRkVdCmZ3b2hjaTA6IFtGSUxURVJdCmZ3b2hjaTA6IE9IQ0kgdmVyc2lvbiAx LjEwIChST009MCkKZndvaGNpMDogTm8uIG9mIElzb2Nocm9ub3VzIGNoYW5uZWxzIGlzIDguCmZ3 b2hjaTA6IEVVSTY0IDAwOmRjOjEwOjAwOmNlOjdiOjFkOjAxCmZ3b2hjaTA6IFBoeSAxMzk0YSBh dmFpbGFibGUgUzQwMCwgMiBwb3J0cy4KZndvaGNpMDogTGluayBTNDAwLCBtYXhfcmVjIDIwNDgg Ynl0ZXMuCmZpcmV3aXJlMDogPElFRUUxMzk0KEZpcmVXaXJlKSBidXM+IG9uIGZ3b2hjaTAKZndl MDogPEV0aGVybmV0IG92ZXIgRmlyZVdpcmU+IG9uIGZpcmV3aXJlMAppZl9md2UwOiBGYWtlIEV0 aGVybmV0IGFkZHJlc3M6IDAyOmRjOjEwOjdiOjFkOjAxCmZ3ZTA6IGJwZiBhdHRhY2hlZApmd2Uw OiBFdGhlcm5ldCBhZGRyZXNzOiAwMjpkYzoxMDo3YjoxZDowMQpmd2lwMDogPElQIG92ZXIgRmly ZVdpcmU+IG9uIGZpcmV3aXJlMApmd2lwMDogYnBmIGF0dGFjaGVkCmZ3aXAwOiBGaXJld2lyZSBh ZGRyZXNzOiAwMDpkYzoxMDowMDpjZTo3YjoxZDowMSBAIDB4ZmZmZTAwMDAwMDAwLCBTNDAwLCBt YXhyZWMgMjA0OApzYnAwOiA8U0JQLTIvU0NTSSBvdmVyIEZpcmVXaXJlPiBvbiBmaXJld2lyZTAK ZGNvbnNfY3JvbTA6IDxkY29ucyBjb25maWd1cmF0aW9uIFJPTT4gb24gZmlyZXdpcmUwCmRjb25z X2Nyb20wOiBidXNfYWRkciAweDEwZmMwMDAKZndvaGNpMDogSW5pdGlhdGUgYnVzIHJlc2V0CmZ3 b2hjaTA6IEJVUyByZXNldApmd29oY2kwOiBub2RlX2lkPTB4YzAwMGZmYzAsIGdlbj0xLCBDWUNM RU1BU1RFUiBtb2RlCmFjcGlfYnV0dG9uMDogPFBvd2VyIEJ1dHRvbj4gb24gYWNwaTAKYWNwaV90 ejA6IDxUaGVybWFsIFpvbmU+IG9uIGFjcGkwCmF0a2JkYzA6IDxLZXlib2FyZCBjb250cm9sbGVy IChpODA0Mik+IHBvcnQgMHg2MCwweDY0IGlycSAxIG9uIGFjcGkwCmF0a2JkMDogPEFUIEtleWJv YXJkPiBpcnEgMSBvbiBhdGtiZGMwCmF0a2JkOiB0aGUgY3VycmVudCBrYmQgY29udHJvbGxlciBj b21tYW5kIGJ5dGUgMDA2NQphdGtiZDoga2V5Ym9hcmQgSUQgMHg0MWFiICgyKQprYmQwIGF0IGF0 a2JkMAprYmQwOiBhdGtiZDAsIEFUIDEwMS8xMDIgKDIpLCBjb25maWc6MHgwLCBmbGFnczoweDNk MDAwMAppb2FwaWMwOiByb3V0aW5nIGludHBpbiAxIChJU0EgSVJRIDEpIHRvIHZlY3RvciA1OAph dGtiZDA6IFtHSUFOVC1MT0NLRURdCmF0a2JkMDogW0lUSFJFQURdCnBzbTA6IHVuYWJsZSB0byBh bGxvY2F0ZSBJUlEKcHNtY3BucDA6IDxQUy8yIG1vdXNlIHBvcnQ+IGlycSAxMiBvbiBhY3BpMApw c20wOiBjdXJyZW50IGNvbW1hbmQgYnl0ZTowMDY1CnBzbTA6IDxQUy8yIE1vdXNlPiBpcnEgMTIg b24gYXRrYmRjMAppb2FwaWMwOiByb3V0aW5nIGludHBpbiAxMiAoSVNBIElSUSAxMikgdG8gdmVj dG9yIDU5CnBzbTA6IFtHSUFOVC1MT0NLRURdCnBzbTA6IFtJVEhSRUFEXQpwc20wOiBtb2RlbCBJ bnRlbGxpTW91c2UsIGRldmljZSBJRCAzLTAwLCAzIGJ1dHRvbnMKcHNtMDogY29uZmlnOjAwMDAw MDAwLCBmbGFnczowMDAwMDAwOCwgcGFja2V0IHNpemU6NApwc20wOiBzeW5jbWFzazowOCwgc3lu Y2JpdHM6MDAKYWNwaV9hY2FkMDogPEFDIEFkYXB0ZXI+IG9uIGFjcGkwCmJhdHRlcnkwOiA8QUNQ SSBDb250cm9sIE1ldGhvZCBCYXR0ZXJ5PiBvbiBhY3BpMAphY3BpX2xpZDA6IDxDb250cm9sIE1l dGhvZCBMaWQgU3dpdGNoPiBvbiBhY3BpMAphdGtiZGM6IGF0a2JkYzAgYWxyZWFkeSBleGlzdHM7 IHNraXBwaW5nIGl0CnNjOiBzYzAgYWxyZWFkeSBleGlzdHM7IHNraXBwaW5nIGl0CnZnYTogdmdh MCBhbHJlYWR5IGV4aXN0czsgc2tpcHBpbmcgaXQKaXNhX3Byb2JlX2NoaWxkcmVuOiBkaXNhYmxp bmcgUG5QIGRldmljZXMKaXNhX3Byb2JlX2NoaWxkcmVuOiBwcm9iaW5nIG5vbi1QblAgZGV2aWNl cwpvcm0wOiA8SVNBIE9wdGlvbiBST00+IGF0IGlvbWVtIDB4Y2YwMDAtMHhjZmZmZiBvbiBpc2Ew CmZkYzAgZmFpbGVkIHRvIHByb2JlIGF0IHBvcnQgMHgzZjAtMHgzZjUsMHgzZjcgaXJxIDYgZHJx IDIgb24gaXNhMApwcGMwOiBjYW5ub3QgcmVzZXJ2ZSBJL08gcG9ydCByYW5nZQpwcGMwOiA8UGFy YWxsZWwgcG9ydD4gZmFpbGVkIHRvIHByb2JlIGF0IGlycSA3IG9uIGlzYTAKc2MwOiA8U3lzdGVt IGNvbnNvbGU+IGF0IGZsYWdzIDB4MTAwIG9uIGlzYTAKc2MwOiBWR0EgPDE2IHZpcnR1YWwgY29u c29sZXMsIGZsYWdzPTB4MzAwPgpzYzA6IGZiMCwga2JkMSwgdGVybWluYWwgZW11bGF0b3I6IHNj IChzeXNjb25zIHRlcm1pbmFsKQpzaW8wOiBjb25maWd1cmVkIGlycSA0IG5vdCBpbiBiaXRtYXAg b2YgcHJvYmVkIGlycXMgMApzaW8wOiBwb3J0IG1heSBub3QgYmUgZW5hYmxlZApzaW8wOiBpcnEg bWFwczogMCAwIDAgMApzaW8wOiBwcm9iZSBmYWlsZWQgdGVzdChzKTogMCAxIDIgNCA2IDcgOQpz aW8wOiBjb25maWd1cmVkIGlycSA0IG5vdCBpbiBiaXRtYXAgb2YgcHJvYmVkIGlycXMgMApzaW8w OiBwb3J0IG1heSBub3QgYmUgZW5hYmxlZApzaW8wOiBpcnEgbWFwczogMCAwIDAgMApzaW8wOiBw cm9iZSBmYWlsZWQgdGVzdChzKTogMCAxIDIgNCA2IDcgOQpzaW8wIGF0IHBvcnQgMHgzZjgtMHgz ZmYgaXJxIDQgZmxhZ3MgMHgxMCBvbiBpc2EwCnNpbzA6IHR5cGUgODI1MCBvciBub3QgcmVzcG9u ZGluZwppb2FwaWMwOiByb3V0aW5nIGludHBpbiA0IChJU0EgSVJRIDQpIHRvIHZlY3RvciA2MApz aW8wOiBbRklMVEVSXQpzaW8xOiBjb25maWd1cmVkIGlycSAzIG5vdCBpbiBiaXRtYXAgb2YgcHJv YmVkIGlycXMgMApzaW8xOiBwb3J0IG1heSBub3QgYmUgZW5hYmxlZApzaW8xOiBpcnEgbWFwczog MCAwIDAgMApzaW8xOiBwcm9iZSBmYWlsZWQgdGVzdChzKTogMCAxIDIgNCA2IDcgOQpzaW8xIGZh aWxlZCB0byBwcm9iZSBhdCBwb3J0IDB4MmY4LTB4MmZmIGlycSAzIG9uIGlzYTAKc2lvMjogbm90 IHByb2JlZCAoZGlzYWJsZWQpCnNpbzM6IG5vdCBwcm9iZWQgKGRpc2FibGVkKQp2Z2EwOiA8R2Vu ZXJpYyBJU0EgVkdBPiBhdCBwb3J0IDB4M2MwLTB4M2RmIGlvbWVtIDB4YTAwMDAtMHhiZmZmZiBv biBpc2EwCmlzYV9wcm9iZV9jaGlsZHJlbjogcHJvYmluZyBQblAgZGV2aWNlcwp1Z2VuMDogPEZv cm1vc2EyMSBTbm93Zmxha2VFbXVsYXRpb24sIGNsYXNzIDAvMCwgcmV2IDIuMDAvMS4zMCwgYWRk ciAyPiBvbiB1aHViMwpEZXZpY2UgY29uZmlndXJhdGlvbiBmaW5pc2hlZC4KUmVkdWNpbmcga2Vy bi5tYXh2bm9kZXMgMjM4MzEyIC0+IDEwMDAwMApwcm9jZnMgcmVnaXN0ZXJlZApsYXBpYzogRGl2 aXNvciAyLCBGcmVxdWVuY3kgOTk3NjM1MjMgaHoKVGltZWNvdW50ZXIgIlRTQyIgZnJlcXVlbmN5 IDc5ODAwMzk4MiBIeiBxdWFsaXR5IC0xMDAKVGltZWNvdW50ZXJzIHRpY2sgZXZlcnkgMS4wMDAg bXNlYwpsbzA6IGJwZiBhdHRhY2hlZApmaXJld2lyZTA6IDEgbm9kZXMsIG1heGhvcCA8PSAwLCBj YWJsZSBJUk0gPSAwIChtZSkKZmlyZXdpcmUwOiBidXMgbWFuYWdlciAwIChtZSkKYWNwaV9hY2Fk MDogYWNsaW5lIGluaXRpYWxpemF0aW9uIHN0YXJ0CmJhdHRlcnkwOiBiYXR0ZXJ5IGluaXRpYWxp emF0aW9uIHN0YXJ0CmF0YTAtbWFzdGVyOiBwaW89UElPNCB3ZG1hPVdETUEyIHVkbWE9VURNQTMz IGNhYmxlPTQwIHdpcmUKYWNkMDogc2V0dGluZyBQSU80IG9uIElYUDYwMCBjaGlwCmFjZDA6IHNl dHRpbmcgVURNQTMzIG9uIElYUDYwMCBjaGlwCmFjZDA6IDxPcHRpYXJjIERWRCBSVyBBRC03NTMw Qi9OWDAyPiBEVkRSIGRyaXZlIGF0IGF0YTAgYXMgbWFzdGVyCmFjZDA6IHJlYWQgNDEzNEtCL3Mg KDQxMzRLQi9zKSB3cml0ZSA0MTM0S0IvcyAoNDEzNEtCL3MpLCAyMDQ4S0IgYnVmZmVyLCBVRE1B MzMKYWNkMDogUmVhZHM6IENEUiwgQ0RSVywgQ0REQSBzdHJlYW0sIERWRFJPTSwgRFZEUiwgRFZE UkFNLCBwYWNrZXQKYWNkMDogV3JpdGVzOiBDRFIsIENEUlcsIERWRFIsIERWRFJBTSwgdGVzdCB3 cml0ZSwgYnVybnByb29mCmFjZDA6IEF1ZGlvOiBwbGF5LCAyNTYgdm9sdW1lIGxldmVscwphY2Qw OiBNZWNoYW5pc206IGVqZWN0YWJsZSB0cmF5LCB1bmxvY2tlZAphY2QwOiBNZWRpdW06IG5vL2Js YW5rIGRpc2MKYXRhMi1tYXN0ZXI6IHBpbz1QSU80IHdkbWE9V0RNQTIgdWRtYT1VRE1BMTMzIGNh YmxlPTQwIHdpcmUKYWQ0OiAxOTA3ODJNQiA8U2VhZ2F0ZSBTVDkyMDA0MjBBU0cgMy5BQUE+IGF0 IGF0YTItbWFzdGVyIFVETUEzMwphZDQ6IDM5MDcyMTk2OCBzZWN0b3JzIFszODc2MjFDLzE2SC82 M1NdIDE2IHNlY3RvcnMvaW50ZXJydXB0IDEgZGVwdGggcXVldWUKR0VPTTogbmV3IGRpc2sgYWQ0 CmFkNDogU2lsaWNvbiBJbWFnZSBjaGVjazMgZmFpbGVkCmFkNDogQWRhcHRlYyBjaGVjazEgZmFp bGVkCmFkNDogTFNJICh2MykgY2hlY2sxIGZhaWxlZAphZDQ6IExTSSAodjIpIGNoZWNrMSBmYWls ZWQKYWQ0OiBGcmVlQlNEIGNoZWNrMSBmYWlsZWQKYWNwaV9lYzA6IHdhaXQgdGltZWQgb3V0IChy ZXNwb25zZSksIGZvcmNpbmcgcG9sbGVkIG1vZGUKYWNwaV9hY2FkMDogT24gTGluZQphY3BpX2Fj YWQwOiBhY2xpbmUgaW5pdGlhbGl6YXRpb24gZG9uZSwgdHJpZWQgMSB0aW1lcwphY3BpX2VjMDog d2FybmluZzogRUMgZG9uZSBiZWZvcmUgc3RhcnRpbmcgZXZlbnQgd2FpdApiYXR0ZXJ5MDogYmF0 dGVyeSBpbml0aWFsaXphdGlvbiBkb25lLCB0cmllZCAxIHRpbWVzCihwcm9iZTA6c2JwMDowOjA6 MCk6IGVycm9yIDIyCihwcm9iZTA6c2JwMDowOjA6MCk6IFVucmV0cnlhYmxlIEVycm9yCihwcm9i ZTE6c2JwMDowOjE6MCk6IGVycm9yIDIyCihwcm9iZTE6c2JwMDowOjE6MCk6IFVucmV0cnlhYmxl IEVycm9yCihwcm9iZTI6c2JwMDowOjI6MCk6IGVycm9yIDIyCihwcm9iZTI6c2JwMDowOjI6MCk6 IFVucmV0cnlhYmxlIEVycm9yCihwcm9iZTM6c2JwMDowOjM6MCk6IGVycm9yIDIyCihwcm9iZTM6 c2JwMDowOjM6MCk6IFVucmV0cnlhYmxlIEVycm9yCihwcm9iZTQ6c2JwMDowOjQ6MCk6IGVycm9y IDIyCihwcm9iZTQ6c2JwMDowOjQ6MCk6IFVucmV0cnlhYmxlIEVycm9yCihwcm9iZTU6c2JwMDow OjU6MCk6IGVycm9yIDIyCihwcm9iZTU6c2JwMDowOjU6MCk6IFVucmV0cnlhYmxlIEVycm9yCihw cm9iZTY6c2JwMDowOjY6MCk6IGVycm9yIDIyCihwcm9iZTY6c2JwMDowOjY6MCk6IFVucmV0cnlh YmxlIEVycm9yCkFUQSBQc2V1ZG9SQUlEIGxvYWRlZApTTVA6IEFQIENQVSAjMSBMYXVuY2hlZCEK Y3B1MSBBUDoKICAgICBJRDogMHgwMTAwMDAwMCAgIFZFUjogMHg4MDA1MDAxMCBMRFI6IDB4MDAw MDAwMDAgREZSOiAweGZmZmZmZmZmCiAgbGludDA6IDB4MDAwMTA3MDAgbGludDE6IDB4MDAwMDA0 MDAgVFBSOiAweDAwMDAwMDAwIFNWUjogMHgwMDAwMDFmZgogIHRpbWVyOiAweDAwMDIwMGVmIHRo ZXJtOiAweDAwMDEwMDAwIGVycjogMHgwMDAxMDAwMCBwY206IDB4MDAwMTAwMDAKaW9hcGljMDog QXNzaWduaW5nIElTQSBJUlEgMSB0byBsb2NhbCBBUElDIDAKaW9hcGljMDogQXNzaWduaW5nIElT QSBJUlEgNCB0byBsb2NhbCBBUElDIDEKaW9hcGljMDogQXNzaWduaW5nIElTQSBJUlEgOSB0byBs b2NhbCBBUElDIDAKaW9hcGljMDogQXNzaWduaW5nIElTQSBJUlEgMTIgdG8gbG9jYWwgQVBJQyAx CmlvYXBpYzA6IEFzc2lnbmluZyBJU0EgSVJRIDE0IHRvIGxvY2FsIEFQSUMgMAppb2FwaWMwOiBB c3NpZ25pbmcgUENJIElSUSAxNiB0byBsb2NhbCBBUElDIDEKaW9hcGljMDogQXNzaWduaW5nIFBD SSBJUlEgMTcgdG8gbG9jYWwgQVBJQyAwCmlvYXBpYzA6IEFzc2lnbmluZyBQQ0kgSVJRIDE4IHRv IGxvY2FsIEFQSUMgMQppb2FwaWMwOiBBc3NpZ25pbmcgUENJIElSUSAxOSB0byBsb2NhbCBBUElD IDAKaW9hcGljMDogQXNzaWduaW5nIFBDSSBJUlEgMjAgdG8gbG9jYWwgQVBJQyAxCmlvYXBpYzA6 IEFzc2lnbmluZyBQQ0kgSVJRIDIyIHRvIGxvY2FsIEFQSUMgMAptc2k6IEFzc2lnbmluZyBNU0kg SVJRIDI1NiB0byBsb2NhbCBBUElDIDEKbXNpOiBBc3NpZ25pbmcgTVNJIElSUSAyNTcgdG8gbG9j YWwgQVBJQyAwClRyeWluZyB0byBtb3VudCByb290IGZyb20gdWZzOi9kZXYvYWQ0czFhCnN0YXJ0 X2luaXQ6IHRyeWluZyAvc2Jpbi9pbml0CnJlMDogbGluayBzdGF0ZSBjaGFuZ2VkIHRvIFVQCg== ------=_Part_21132_12389965.1213714314136 Content-Type: application/octet-stream; name=unity-hw.acpi Content-Transfer-Encoding: base64 X-Attachment-Id: f_fhkm25ia1 Content-Disposition: attachment; filename=unity-hw.acpi aHcuYWNwaS5zdXBwb3J0ZWRfc2xlZXBfc3RhdGU6IFMxIFMzIFM0IFM1Cmh3LmFjcGkucG93ZXJf YnV0dG9uX3N0YXRlOiBTNQpody5hY3BpLnNsZWVwX2J1dHRvbl9zdGF0ZTogUzEKaHcuYWNwaS5s aWRfc3dpdGNoX3N0YXRlOiBOT05FCmh3LmFjcGkuc3RhbmRieV9zdGF0ZTogUzEKaHcuYWNwaS5z dXNwZW5kX3N0YXRlOiBTMwpody5hY3BpLnNsZWVwX2RlbGF5OiAxCmh3LmFjcGkuczRiaW9zOiAw Cmh3LmFjcGkudmVyYm9zZTogMQpody5hY3BpLmRpc2FibGVfb25fcmVib290OiAwCmh3LmFjcGku aGFuZGxlX3JlYm9vdDogMApody5hY3BpLmNwdS5jeF9sb3dlc3Q6IEMxCmh3LmFjcGkudGhlcm1h bC5taW5fcnVudGltZTogMApody5hY3BpLnRoZXJtYWwucG9sbGluZ19yYXRlOiAxMApody5hY3Bp LnRoZXJtYWwudXNlcl9vdmVycmlkZTogMApody5hY3BpLnRoZXJtYWwudHowLnRlbXBlcmF0dXJl OiA0OC4wQwpody5hY3BpLnRoZXJtYWwudHowLmFjdGl2ZTogLTEKaHcuYWNwaS50aGVybWFsLnR6 MC5wYXNzaXZlX2Nvb2xpbmc6IDAKaHcuYWNwaS50aGVybWFsLnR6MC50aGVybWFsX2ZsYWdzOiAw Cmh3LmFjcGkudGhlcm1hbC50ejAuX1BTVjogLTEKaHcuYWNwaS50aGVybWFsLnR6MC5fSE9UOiAt MQpody5hY3BpLnRoZXJtYWwudHowLl9DUlQ6IDEwMC4wQwpody5hY3BpLnRoZXJtYWwudHowLl9B Q3g6IC0xIC0xIC0xIC0xIC0xIC0xIC0xIC0xIC0xIC0xCmh3LmFjcGkuYWNsaW5lOiAxCmh3LmFj cGkuYmF0dGVyeS5saWZlOiAxMDAKaHcuYWNwaS5iYXR0ZXJ5LnRpbWU6IC0xCmh3LmFjcGkuYmF0 dGVyeS5zdGF0ZTogMApody5hY3BpLmJhdHRlcnkudW5pdHM6IDEKaHcuYWNwaS5iYXR0ZXJ5Lmlu Zm9fZXhwaXJlOiA1Cg== ------=_Part_21132_12389965.1213714314136 Content-Type: application/octet-stream; name=unity-msi171a.asl Content-Transfer-Encoding: base64 X-Attachment-Id: f_fhkm28oh2 Content-Disposition: attachment; filename=unity-msi171a.asl LyoKICBSU0QgUFRSOiBPRU09QUNQSUFNLCBBQ1BJX1Jldj0xLjB4ICgwKQoJUlNEVD0weGNmZmMw MDAwLCBja3N1bT0xMDcKICovCi8qCiAgUlNEVDogTGVuZ3RoPTY0LCBSZXZpc2lvbj0xLCBDaGVj a3N1bT04MywKCU9FTUlEPU1TSV9OQiwgT0VNIFRhYmxlIElEPU1FR0FCT09LLCBPRU0gUmV2aXNp b249MHg3MDAwNzI1LAoJQ3JlYXRvciBJRD1NU0ZULCBDcmVhdG9yIFJldmlzaW9uPTB4OTcKCUVu dHJpZXM9eyAweGNmZmMwMjAwLCAweGNmZmMwMzkwLCAweGNmZmMwM2YwLCAweGNmZmMwNDMwLCAw eGNmZmNlMDQwLCAweGNmZmM0MmYwLCAweGNmZmM0MzMwIH0KICovCi8qCiAgRkFDUDogTGVuZ3Ro PTEzMiwgUmV2aXNpb249MiwgQ2hlY2tzdW09NDIsCglPRU1JRD1NU0lfTkIsIE9FTSBUYWJsZSBJ RD1NRUdBQk9PSywgT0VNIFJldmlzaW9uPTB4NzAwMDcyNSwKCUNyZWF0b3IgSUQ9TVNGVCwgQ3Jl YXRvciBSZXZpc2lvbj0weDk3CiAJRkFDUz0weGNmZmNlMDAwLCBEU0RUPTB4Y2ZmYzA1YjAKCUlO VF9NT0RFTD1BUElDCglQcmVmZXJyZWRfUE1fUHJvZmlsZT1VbnNwZWNpZmllZCAoMCkKCVNDSV9J TlQ9OQoJU01JX0NNRD0weGIwLCBBQ1BJX0VOQUJMRT0weGUxLCBBQ1BJX0RJU0FCTEU9MHgxZSwg UzRCSU9TX1JFUT0weDAKCVBTVEFURV9DTlQ9MHhlMgoJUE0xYV9FVlRfQkxLPTB4ODAwLTB4ODAz CglQTTFhX0NOVF9CTEs9MHg4MDQtMHg4MDUKCVBNMl9DTlRfQkxLPTB4OGZmLTB4OGZmCglQTV9U TVJfQkxLPTB4ODA4LTB4ODBiCglHUEUwX0JMSz0weDgyMC0weDgyNwoJUF9MVkwyX0xBVD0xMDEg dXMsIFBfTFZMM19MQVQ9MTAwMSB1cwoJRkxVU0hfU0laRT0xMDI0LCBGTFVTSF9TVFJJREU9MTYK CURVVFlfT0ZGU0VUPTQsIERVVFlfV0lEVEg9MwoJREFZX0FMUk09MTMsIE1PTl9BTFJNPTAsIENF TlRVUlk9NTAKCUlBUENfQk9PVF9BUkNIPXtMRUdBQ1lfREVWLDgwNDJ9CglGbGFncz17V0JJTlZE LFBST0NfQzEsU0xQX0JVVFRPTixSVENfUzQsVE1SX1ZBTF9FWFR9CiAqLwovKgogIEZBQ1M6CUxl bmd0aD02NCwgSHdTaWc9MHgwMDAwMDAwMCwgRmlybV9XYWtlX1ZlYz0weDAwMDAwMDAwCglHbG9i YWxfTG9jaz0KCUZsYWdzPQoJVmVyc2lvbj0xCiAqLwovKgogIERTRFQ6IExlbmd0aD0xNTY3MCwg UmV2aXNpb249MSwgQ2hlY2tzdW09MTE3LAoJT0VNSUQ9MUFETkksIE9FTSBUYWJsZSBJRD0xQURO STAwMCwgT0VNIFJldmlzaW9uPTB4MCwKCUNyZWF0b3IgSUQ9SU5UTCwgQ3JlYXRvciBSZXZpc2lv bj0weDIwMDUxMTE3CiAqLwovKgogIEFQSUM6IExlbmd0aD05MiwgUmV2aXNpb249MSwgQ2hlY2tz dW09MTA0LAoJT0VNSUQ9TVNJX05CLCBPRU0gVGFibGUgSUQ9TUVHQUJPT0ssIE9FTSBSZXZpc2lv bj0weDcwMDA3MjUsCglDcmVhdG9yIElEPU1TRlQsIENyZWF0b3IgUmV2aXNpb249MHg5NwoJTG9j YWwgQVBJQyBBRERSPTB4ZmVlMDAwMDAKCUZsYWdzPXtQQy1BVH0KCglUeXBlPUxvY2FsIEFQSUMK CUFDUEkgQ1BVPTEKCUZsYWdzPXtFTkFCTEVEfQoJQVBJQyBJRD0wCgoJVHlwZT1Mb2NhbCBBUElD CglBQ1BJIENQVT0yCglGbGFncz17RU5BQkxFRH0KCUFQSUMgSUQ9MQoKCVR5cGU9SU8gQVBJQwoJ QVBJQyBJRD0yCglJTlQgQkFTRT0wCglBRERSPTB4MDAwMDAwMDBmZWMwMDAwMAoKCVR5cGU9SU5U IE92ZXJyaWRlCglCVVM9MAoJSVJRPTAKCUlOVFI9MgoJRmxhZ3M9e1BvbGFyaXR5PWNvbmZvcm1p bmcsIFRyaWdnZXI9Y29uZm9ybWluZ30KCglUeXBlPUlOVCBPdmVycmlkZQoJQlVTPTAKCUlSUT05 CglJTlRSPTkKCUZsYWdzPXtQb2xhcml0eT1hY3RpdmUtbG8sIFRyaWdnZXI9bGV2ZWx9CiAqLwov KgogIE1DRkc6IExlbmd0aD02MCwgUmV2aXNpb249MSwgQ2hlY2tzdW09MTY2LAoJT0VNSUQ9TVNJ X05CLCBPRU0gVGFibGUgSUQ9TUVHQUJPT0ssIE9FTSBSZXZpc2lvbj0weDcwMDA3MjUsCglDcmVh dG9yIElEPU1TRlQsIENyZWF0b3IgUmV2aXNpb249MHg5NwoKCUJhc2UgQWRkcmVzcz0gMHgwMDAw MDAwMGUwMDAwMDAwCglTZWdtZW50IEdyb3VwPSAweDAwMDAKCVN0YXJ0IEJ1cz0gMAoJRW5kIEJ1 cz0gMjU1CiAqLwovKgogIFNMSUM6IExlbmd0aD0zNzQsIFJldmlzaW9uPTEsIENoZWNrc3VtPTI0 MiwKCU9FTUlEPU1TSV9OQiwgT0VNIFRhYmxlIElEPU1FR0FCT09LLCBPRU0gUmV2aXNpb249MHg3 MDAwNzI1LAoJQ3JlYXRvciBJRD1NU0ZULCBDcmVhdG9yIFJldmlzaW9uPTB4OTcKICovCi8qCiAg T0VNQjogTGVuZ3RoPTk3LCBSZXZpc2lvbj0xLCBDaGVja3N1bT0xNzIsCglPRU1JRD1NU0lfTkIs IE9FTSBUYWJsZSBJRD1NRUdBQk9PSywgT0VNIFJldmlzaW9uPTB4NzAwMDcyNSwKCUNyZWF0b3Ig SUQ9TVNGVCwgQ3JlYXRvciBSZXZpc2lvbj0weDk3CiAqLwovKgogIEhQRVQ6IExlbmd0aD01Niwg UmV2aXNpb249MSwgQ2hlY2tzdW09MjUsCglPRU1JRD1NU0lfTkIsIE9FTSBUYWJsZSBJRD1PRU1I UEVULCBPRU0gUmV2aXNpb249MHg3MDAwNzI1LAoJQ3JlYXRvciBJRD1NU0ZULCBDcmVhdG9yIFJl dmlzaW9uPTB4OTcKCUhQRVQgTnVtYmVyPTIKCUFERFI9MHhmZWQwMDAwMDowWzhdIChNZW1vcnkp CUhXIFJldj0weDAKCUNvbXBhcml0b3JzPTMKCUNvdW50ZXIgU2l6ZT0wCglMZWdhY3kgSVJRIHJv dXRpbmcgY2FwYWJsZT17VFJVRX0KCVBDSSBWZW5kb3IgSUQ9MHgwMDAwCglNaW5pbWFsIFRpY2s9 MjAKICovCi8qCiAgU1NEVDogTGVuZ3RoPTc1NiwgUmV2aXNpb249MSwgQ2hlY2tzdW09MjMyLAoJ T0VNSUQ9QSBNIEksIE9FTSBUYWJsZSBJRD1QT1dFUk5PVywgT0VNIFJldmlzaW9uPTB4MSwKCUNy ZWF0b3IgSUQ9QU1ELCBDcmVhdG9yIFJldmlzaW9uPTB4MQogKi8KLyoKICogSW50ZWwgQUNQSSBD b21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTCBEaXNhc3NlbWJsZXIgdmVyc2lvbiAyMDA3MDMy MAogKgogKiBEaXNhc3NlbWJseSBvZiAvdG1wL2FjcGlkdW1wLmZiS2VUUCwgVHVlIEp1biAxNyAw NTowODoxOSAyMDA4CiAqCiAqCiAqIE9yaWdpbmFsIFRhYmxlIEhlYWRlcjoKICogICAgIFNpZ25h dHVyZSAgICAgICAgIkRTRFQiCiAqICAgICBMZW5ndGggICAgICAgICAgIDB4MDAwMDQwMDYgKDE2 MzkwKQogKiAgICAgUmV2aXNpb24gICAgICAgICAweDAxCiAqICAgICBPRU0gSUQgICAgICAgICAg ICIxQUROSSIKICogICAgIE9FTSBUYWJsZSBJRCAgICAgIjFBRE5JMDAwIgogKiAgICAgT0VNIFJl dmlzaW9uICAgICAweDAwMDAwMDAwICgwKQogKiAgICAgQ3JlYXRvciBJRCAgICAgICAiSU5UTCIK ICogICAgIENyZWF0b3IgUmV2aXNpb24gMHgyMDA1MTExNyAoNTM3MjAyOTY3KQogKi8KRGVmaW5p dGlvbkJsb2NrICgiL3RtcC9hY3BpZHVtcC5hbWwiLCAiRFNEVCIsIDEsICIxQUROSSIsICIxQURO STAwMCIsIDB4MDAwMDAwMDApCnsKICAgIE9wZXJhdGlvblJlZ2lvbiAoQUNNUywgU3lzdGVtSU8s IDB4NzIsIDB4MDIpCiAgICBGaWVsZCAoQUNNUywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkK ICAgIHsKICAgICAgICBJQ01TLCAgIDgsIAogICAgICAgIERDTVMsICAgOAogICAgfQoKICAgIElu ZGV4RmllbGQgKElDTVMsIERDTVMsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4MDEpLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgw NCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA4KSwgCiAgICAgICAgQlNfQSwgICAzMiwg CiAgICAgICAgUkVWMCwgICA4LCAKICAgICAgICBSRVYxLCAgIDgKICAgIH0KCiAgICBPcGVyYXRp b25SZWdpb24gKEFDQUYsIFN5c3RlbU1lbW9yeSwgQlNfQSwgMHgyMCkKICAgIEZpZWxkIChBQ0FG LCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgT0NDMCwgICAxLCAKICAg ICAgICBPQ0MxLCAgIDEsIAogICAgICAgIE9DQzIsICAgMSwgCiAgICAgICAgT0NDMywgICAxLCAK ICAgICAgICBPQ0M0LCAgIDEsIAogICAgICAgIE9DQzUsICAgMSwgCiAgICAgICAgT0NDNiwgICAx LCAKICAgICAgICBPQ0M3LCAgIDEsIAogICAgICAgIE9DQzgsICAgMSwgCiAgICAgICAgT0NDOSwg ICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwMiksIAogICAgICAgIFRQTVIsICAgMSwg CiAgICAgICAgU1RIUCwgICAxLCAKICAgICAgICBTSFBHLCAgIDEsIAogICAgICAgIE9TQ0YsICAg MSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDQpLCAKICAgICAgICBQQ0lFLCAgIDMyLCAK ICAgICAgICBIUEJTLCAgIDMyLCAKICAgICAgICBPQ00wLCAgIDQsIAogICAgICAgIE9DTTEsICAg NCwgCiAgICAgICAgT0NNMiwgICA0LCAKICAgICAgICBPQ00zLCAgIDQsIAogICAgICAgIE9DTTQs ICAgNCwgCiAgICAgICAgT0NNNSwgICA0LCAKICAgICAgICBPQ002LCAgIDQsIAogICAgICAgIE9D TTcsICAgNCwgCiAgICAgICAgT0NNOCwgICA0LCAKICAgICAgICBPQ005LCAgIDQsIAogICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDE0KSwgCiAgICAgICAgUDkyVCwgICA4CiAgICB9CgogICAgT3Bl cmF0aW9uUmVnaW9uIChDTVBULCBTeXN0ZW1JTywgMHgwQzUwLCAweDAzKQogICAgRmllbGQgKENN UFQsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgQ01JRCwgICA4LCAK ICAgICAgICAgICAgLCAgIDYsIAogICAgICAgIEdQQ1QsICAgMiwgCiAgICAgICAgR1AwSSwgICAx LCAKICAgICAgICBHUDFJLCAgIDEsIAogICAgICAgIEdQMkksICAgMSwgCiAgICAgICAgR1AzSSwg ICAxLCAKICAgICAgICBHUDRJLCAgIDEsIAogICAgICAgIEdQNUksICAgMSwgCiAgICAgICAgR1A2 SSwgICAxLCAKICAgICAgICBHUDdJLCAgIDEKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKFBD RkcsIFN5c3RlbU1lbW9yeSwgUENJRSwgMHgwMjAwMDAwMCkKICAgIEZpZWxkIChQQ0ZHLCBBbnlB Y2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4OTAw MjQpLCAKICAgICAgICBTVEI1LCAgIDMyLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg5ODA0 MiksIAogICAgICAgIFBUMEQsICAgMSwgCiAgICAgICAgUFQxRCwgICAxLCAKICAgICAgICBQVDJE LCAgIDEsIAogICAgICAgIFBUM0QsICAgMSwgCiAgICAgICAgUFQ0RCwgICAxLCAKICAgICAgICBQ VDVELCAgIDEsIAogICAgICAgIFBUNkQsICAgMSwgCiAgICAgICAgUFQ3RCwgICAxLCAKICAgICAg ICBQVDhELCAgIDEsIAogICAgICAgIFBUOUQsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQg KDB4QTAwMDQpLCAKICAgICAgICBTTUlFLCAgIDEsIAogICAgICAgIFNNTUUsICAgMSwgCiAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4QTAwMDgpLCAKICAgICAgICBSVklELCAgIDgsIAogICAgICAg ICAgICAgICAgT2Zmc2V0ICgweEEwMDE0KSwgCiAgICAgICAgU01CMSwgICAzMiwgCiAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4QTAwNzgpLCAKICAgICAgICAgICAgLCAgIDE0LCAKICAgICAgICBQ OTJFLCAgIDEKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKEJBUiwgU3lzdGVtTWVtb3J5LCBT VEI1LCAweDEwMDApCiAgICBGaWVsZCAoQkFSLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAg ICB7CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTIwKSwgCiAgICAgICAgICAgICwgICA3LCAK ICAgICAgICBQTUJZLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEyOCksIAogICAg ICAgIFBNUzAsICAgNCwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTI5KSwgCiAgICAgICAg UE1TMSwgICA0LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxMkMpLCAKICAgICAgICBERVQw LCAgIDQsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEzMCksIAogICAgICAgICAgICAgICAg T2Zmc2V0ICgweDEzMiksIAogICAgICAgIFBSQzAsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4MUEwKSwgCiAgICAgICAgICAgICwgICA3LCAKICAgICAgICBTTUJZLCAgIDEsIAogICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDFBOCksIAogICAgICAgIFNNUzAsICAgNCwgCiAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4MUE5KSwgCiAgICAgICAgU01TMSwgICA0LCAKICAgICAgICAgICAg ICAgIE9mZnNldCAoMHgxQUMpLCAKICAgICAgICBERVQxLCAgIDQsIAogICAgICAgICAgICAgICAg T2Zmc2V0ICgweDFCMCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDFCMiksIAogICAgICAg IFBSQzEsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjIwKSwgCiAgICAgICAgICAg ICwgICA3LCAKICAgICAgICBQU0JZLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDIy OCksIAogICAgICAgIFBTUzAsICAgNCwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjI5KSwg CiAgICAgICAgUFNTMSwgICA0LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgyMkMpLCAKICAg ICAgICBERVQyLCAgIDQsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDIzMCksIAogICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDIzMiksIAogICAgICAgIFBSQzIsICAgMSwgCiAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4MkEwKSwgCiAgICAgICAgICAgICwgICA3LCAKICAgICAgICBTU0JZLCAg IDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDJBOCksIAogICAgICAgIFNTUzAsICAgNCwg CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MkE5KSwgCiAgICAgICAgU1NTMSwgICA0LCAKICAg ICAgICAgICAgICAgIE9mZnNldCAoMHgyQUMpLCAKICAgICAgICBERVQzLCAgIDQsIAogICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDJCMCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDJCMiks IAogICAgICAgIFBSQzMsICAgMQogICAgfQoKICAgIE9wZXJhdGlvblJlZ2lvbiAoUE1JTywgU3lz dGVtSU8sIDB4MENENiwgMHgwMikKICAgIEZpZWxkIChQTUlPLCBCeXRlQWNjLCBOb0xvY2ssIFBy ZXNlcnZlKQogICAgewogICAgICAgIElOUE0sICAgOCwgCiAgICAgICAgREFQTSwgICA4CiAgICB9 CgogICAgSW5kZXhGaWVsZCAoSU5QTSwgREFQTSwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkK ICAgIHsKICAgICAgICAgICAgLCAgIDEsIAogICAgICAgIFRNMUUsICAgMSwgCiAgICAgICAgVE0y RSwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwMSksIAogICAgICAgICAgICAsICAg MSwgCiAgICAgICAgVE0xUywgICAxLCAKICAgICAgICBUTTJTLCAgIDEsIAogICAgICAgICAgICAg ICAgT2Zmc2V0ICgweDA0KSwgCiAgICAgICAgICAgICwgICA3LCAKICAgICAgICBTTFBTLCAgIDEs IAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA3KSwgCiAgICAgICAgICAgICwgICA3LCAKICAg ICAgICBDTFBTLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEwKSwgCiAgICAgICAg ICAgICwgICA2LCAKICAgICAgICBQV0RFLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgw eDFDKSwgCiAgICAgICAgICAgICwgICAzLCAKICAgICAgICBNS01FLCAgIDEsIAogICAgICAgIFBJ M0UsICAgMSwgCiAgICAgICAgUEkyRSwgICAxLCAKICAgICAgICBQSTFFLCAgIDEsIAogICAgICAg IFBJMEUsICAgMSwgCiAgICAgICAgICAgICwgICAzLCAKICAgICAgICBNS01TLCAgIDEsIAogICAg ICAgIFBJM1MsICAgMSwgCiAgICAgICAgUEkyUywgICAxLCAKICAgICAgICBQSTFTLCAgIDEsIAog ICAgICAgIFBJMFMsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjApLCAKICAgICAg ICBQMUVCLCAgIDE2LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgzNiksIAogICAgICAgICAg ICAsICAgNiwgCiAgICAgICAgR1Y2UCwgICAxLCAKICAgICAgICBHVjdQLCAgIDEsIAogICAgICAg ICAgICAsICAgMywgCiAgICAgICAgR00wUCwgICAxLCAKICAgICAgICBHTTFQLCAgIDEsIAogICAg ICAgIEdNMlAsICAgMSwgCiAgICAgICAgR00zUCwgICAxLCAKICAgICAgICBHTThQLCAgIDEsIAog ICAgICAgICAgICAsICAgMSwgCiAgICAgICAgR000UCwgICAxLCAKICAgICAgICBHTTVQLCAgIDEs IAogICAgICAgICAgICAsICAgMSwgCiAgICAgICAgR002UCwgICAxLCAKICAgICAgICBHTTdQLCAg IDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDM5KSwgCiAgICAgICAgR0VWMCwgICAxLCAK ICAgICAgICBHRVYxLCAgIDEsIAogICAgICAgIEdFVjIsICAgMSwgCiAgICAgICAgR0VWMywgICAx LCAKICAgICAgICBHRVY0LCAgIDEsIAogICAgICAgIEdFVjUsICAgMSwgCiAgICAgICAgR0VWNiwg ICAxLCAKICAgICAgICBHRVY3LCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDNCKSwg CiAgICAgICAgR1BYMCwgICAxLCAKICAgICAgICBHUFg0LCAgIDEsIAogICAgICAgIEdQWDUsICAg MSwgCiAgICAgICAgR1BYMSwgICAxLCAKICAgICAgICBHUFg2LCAgIDEsIAogICAgICAgIEdQWDcs ICAgMSwgCiAgICAgICAgR1BYMiwgICAxLCAKICAgICAgICBHUFgzLCAgIDEsIAogICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDU1KSwgCiAgICAgICAgU1BSRSwgICAxLCAKICAgICAgICAgICAgLCAg IDEsIAogICAgICAgICAgICAsICAgMSwgCiAgICAgICAgRVBOTSwgICAxLCAKICAgICAgICBEUFBG LCAgIDEsIAogICAgICAgIEZOR1MsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjEp LCAKICAgICAgICAgICAgLCAgIDcsIAogICAgICAgIFI2MTcsICAgMSwgCiAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4NjUpLCAKICAgICAgICAgICAgLCAgIDQsIAogICAgICAgIFJTVFUsICAgMSwg CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjgpLCAKICAgICAgICAgICAgLCAgIDMsIAogICAg ICAgIFRQREUsICAgMSwgCiAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNl dCAoMHg5MiksIAogICAgICAgICAgICAsICAgNywgCiAgICAgICAgR1Y3UywgICAxLCAKICAgICAg ICAgICAgICAgIE9mZnNldCAoMHg5NiksIAogICAgICAgIEdQOEksICAgMSwgCiAgICAgICAgR1A5 SSwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg5QSksIAogICAgICAgICAgICAsICAg NywgCiAgICAgICAgSEVDTywgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHhBOCksIAog ICAgICAgIFBJNEUsICAgMSwgCiAgICAgICAgUEk1RSwgICAxLCAKICAgICAgICBQSTZFLCAgIDEs IAogICAgICAgIFBJN0UsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QTkpLCAKICAg ICAgICBQSTRTLCAgIDEsIAogICAgICAgIFBJNVMsICAgMSwgCiAgICAgICAgUEk2UywgICAxLCAK ICAgICAgICBQSTdTLCAgIDEKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKFAxRTAsIFN5c3Rl bUlPLCBQMUVCLCAweDA0KQogICAgRmllbGQgKFAxRTAsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2Vy dmUpCiAgICB7CiAgICAgICAgICAgICwgICAxNCwgCiAgICAgICAgUEVXUywgICAxLCAKICAgICAg ICBXU1RBLCAgIDEsIAogICAgICAgICAgICAsICAgMTQsIAogICAgICAgIFBFV0QsICAgMQogICAg fQoKICAgIE1ldGhvZCAoQ19PQywgMCwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBTbGVl cCAoMHgxNCkKICAgICAgICBTdG9yZSAoMHgxMywgQ01JRCkKICAgICAgICBTdG9yZSAoWmVybywg R1BDVCkKICAgIH0KCiAgICBNZXRob2QgKFVfT0MsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAg ICAgICAgSWYgKExFcXVhbCAoT0NNMCwgQXJnMCkpCiAgICAgICAgewogICAgICAgICAgICBTdG9y ZSAoQXJnMSwgUFQwRCkKICAgICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKE9DTTEsIEFyZzAp KQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKEFyZzEsIFBUMUQpCiAgICAgICAgfQoKICAg ICAgICBJZiAoTEVxdWFsIChPQ00yLCBBcmcwKSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3Jl IChBcmcxLCBQVDJEKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoT0NNMywgQXJnMCkp CiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoQXJnMSwgUFQzRCkKICAgICAgICB9CgogICAg ICAgIElmIChMRXF1YWwgKE9DTTQsIEFyZzApKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUg KEFyZzEsIFBUNEQpCiAgICAgICAgfQoKICAgICAgICBJZiAoTEVxdWFsIChPQ001LCBBcmcwKSkK ICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChBcmcxLCBQVDVEKQogICAgICAgIH0KCiAgICAg ICAgSWYgKExFcXVhbCAoT0NNNiwgQXJnMCkpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAo QXJnMSwgUFQ2RCkKICAgICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKE9DTTcsIEFyZzApKQog ICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKEFyZzEsIFBUN0QpCiAgICAgICAgfQoKICAgICAg ICBJZiAoTEVxdWFsIChPQ004LCBBcmcwKSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChB cmcxLCBQVDhEKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoT0NNOSwgQXJnMCkpCiAg ICAgICAgewogICAgICAgICAgICBTdG9yZSAoQXJnMSwgUFQ5RCkKICAgICAgICB9CiAgICB9Cgog ICAgTWV0aG9kIChTUFRTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIElmIChMRXF1 YWwgKEFyZzAsIDB4MDMpKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKFplcm8sIFJTVFUp CiAgICAgICAgfQoKICAgICAgICBTdG9yZSAoT25lLCBDTFBTKQogICAgICAgIFN0b3JlIChPbmUs IFNMUFMpCiAgICAgICAgSWYgKExMZXNzRXF1YWwgKFJWSUQsIDB4MTMpKQogICAgICAgIHsKICAg ICAgICAgICAgU3RvcmUgKFplcm8sIFBXREUpCiAgICAgICAgfQoKICAgICAgICBJZiAoTEVxdWFs IChQOTJULCBaZXJvKSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChaZXJvLCBQSTBFKQog ICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoUDkyVCwgT25lKSkKICAgICAgICB7CiAgICAg ICAgICAgIFN0b3JlIChaZXJvLCBQSTFFKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAo UDkyVCwgMHgwMikpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoWmVybywgUEkyRSkKICAg ICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKFA5MlQsIDB4MDMpKQogICAgICAgIHsKICAgICAg ICAgICAgU3RvcmUgKFplcm8sIFBJM0UpCiAgICAgICAgfQoKICAgICAgICBJZiAoTEVxdWFsIChQ OTJULCAweDA0KSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChaZXJvLCBQSTRFKQogICAg ICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoUDkyVCwgMHgwNSkpCiAgICAgICAgewogICAgICAg ICAgICBTdG9yZSAoWmVybywgUEk1RSkKICAgICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKFA5 MlQsIDB4MDYpKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKFplcm8sIFBJNkUpCiAgICAg ICAgfQoKICAgICAgICBJZiAoTEVxdWFsIChQOTJULCAweDA3KSkKICAgICAgICB7CiAgICAgICAg ICAgIFN0b3JlIChaZXJvLCBQSTdFKQogICAgICAgIH0KCiAgICAgICAgSWYgKExMZXNzRXF1YWwg KFA5MlQsIDB4MDcpKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKE9uZSwgUDkyRSkKICAg ICAgICB9CiAgICB9CgogICAgT3BlcmF0aW9uUmVnaW9uIChDUzcyLCBTeXN0ZW1JTywgMHg3Miwg MHgwMikKICAgIEZpZWxkIChDUzcyLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgewog ICAgICAgIENJNzIsICAgOCwgCiAgICAgICAgQ083MywgICA4CiAgICB9CgogICAgSW5kZXhGaWVs ZCAoQ0k3MiwgQ083MywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICAg ICAgICAgIE9mZnNldCAoMHhGMCksIAogICAgICAgIFJUQ0MsICAgMQogICAgfQoKICAgIE1ldGhv ZCAoU1dBSywgMSwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBTdG9yZSAoT25lLCBIRUNP KQogICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4MDMpKQogICAgICAgIHsKICAgICAgICAgICAg SWYgKFJUQ0MpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlICgweENDLCBEQkc4 KQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgTm90aWZ5IChcX1NCLlBXUkIsIDB4MDIpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IFN0b3JlIChPbmUsIFJTVFUpCiAgICAgICAgfQoKICAgICAgICBTdG9yZSAoUEVXUywgUEVXUykK ICAgICAgICBJZiAoTExlc3NFcXVhbCAoUDkyVCwgMHgwNykpCiAgICAgICAgewogICAgICAgICAg ICBTdG9yZSAoWmVybywgUDkyRSkKICAgICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKFA5MlQs IFplcm8pKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKE9uZSwgUEkwRSkKICAgICAgICB9 CgogICAgICAgIElmIChMRXF1YWwgKFA5MlQsIE9uZSkpCiAgICAgICAgewogICAgICAgICAgICBT dG9yZSAoT25lLCBQSTFFKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoUDkyVCwgMHgw MikpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoT25lLCBQSTJFKQogICAgICAgIH0KCiAg ICAgICAgSWYgKExFcXVhbCAoUDkyVCwgMHgwMykpCiAgICAgICAgewogICAgICAgICAgICBTdG9y ZSAoT25lLCBQSTNFKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoUDkyVCwgMHgwNCkp CiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoT25lLCBQSTRFKQogICAgICAgIH0KCiAgICAg ICAgSWYgKExFcXVhbCAoUDkyVCwgMHgwNSkpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAo T25lLCBQSTVFKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoUDkyVCwgMHgwNikpCiAg ICAgICAgewogICAgICAgICAgICBTdG9yZSAoT25lLCBQSTZFKQogICAgICAgIH0KCiAgICAgICAg SWYgKExFcXVhbCAoUDkyVCwgMHgwNykpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoT25l LCBQSTdFKQogICAgICAgIH0KICAgIH0KCiAgICBNZXRob2QgKFRSTUQsIDEsIE5vdFNlcmlhbGl6 ZWQpCiAgICB7CiAgICAgICAgU3RvcmUgKEFyZzAsIFNQUkUpCiAgICAgICAgU3RvcmUgKEFyZzAs IFRQREUpCiAgICB9CgogICAgSWYgKE9DQzApCiAgICB7CiAgICAgICAgU2NvcGUgKF9HUEUpCiAg ICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9MMTMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIENfT0MgKCkKICAgICAgICAgICAgICAgIElmIChMRXF1 YWwgKEdQMEksIEdNMFApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5v dCAoR00wUCwgR00wUCkKICAgICAgICAgICAgICAgICAgICBVX09DIChaZXJvLCBHTTBQKQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIElmIChPQ0Mx KQogICAgewogICAgICAgIFNjb3BlIChfR1BFKQogICAgICAgIHsKICAgICAgICAgICAgTWV0aG9k IChfTDE0LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBD X09DICgpCiAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChHUDFJLCBHTTFQKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOb3QgKEdNMVAsIEdNMVApCiAgICAgICAgICAg ICAgICAgICAgVV9PQyAoT25lLCBHTTFQKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 CiAgICAgICAgfQogICAgfQoKICAgIElmIChPQ0MyKQogICAgewogICAgICAgIFNjb3BlIChfR1BF KQogICAgICAgIHsKICAgICAgICAgICAgTWV0aG9kIChfTDE1LCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDX09DICgpCiAgICAgICAgICAgICAgICBJZiAo TEVxdWFsIChHUDJJLCBHTTJQKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBOb3QgKEdNMlAsIEdNMlApCiAgICAgICAgICAgICAgICAgICAgVV9PQyAoMHgwMiwgR00yUCkK ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBJZiAo T0NDMykKICAgIHsKICAgICAgICBTY29wZSAoX0dQRSkKICAgICAgICB7CiAgICAgICAgICAgIE1l dGhvZCAoX0wxNiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgQ19PQyAoKQogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoR1AzSSwgR00zUCkpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTm90IChHTTNQLCBHTTNQKQogICAgICAg ICAgICAgICAgICAgIFVfT0MgKDB4MDMsIEdNM1ApCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KICAgICAgICB9CiAgICB9CgogICAgSWYgKE9DQzQpCiAgICB7CiAgICAgICAgU2NvcGUg KF9HUEUpCiAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9MMTksIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENfT0MgKCkKICAgICAgICAgICAgICAg IElmIChMRXF1YWwgKEdQNEksIEdNNFApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIE5vdCAoR000UCwgR000UCkKICAgICAgICAgICAgICAgICAgICBVX09DICgweDA0LCBH TTRQKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAg IElmIChPQ0M1KQogICAgewogICAgICAgIFNjb3BlIChfR1BFKQogICAgICAgIHsKICAgICAgICAg ICAgTWV0aG9kIChfTDFBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBDX09DICgpCiAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChHUDVJLCBHTTVQKSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOb3QgKEdNNVAsIEdNNVApCiAg ICAgICAgICAgICAgICAgICAgVV9PQyAoMHgwNSwgR001UCkKICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBJZiAoT0NDNikKICAgIHsKICAgICAgICBT Y29wZSAoX0dQRSkKICAgICAgICB7CiAgICAgICAgICAgIE1ldGhvZCAoX0wxQywgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ19PQyAoKQogICAgICAgICAg ICAgICAgSWYgKExFcXVhbCAoR1A2SSwgR002UCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgTm90IChHVjZQLCBHVjZQKQogICAgICAgICAgICAgICAgICAgIFVfT0MgKDB4 MDYsIEdWNlApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9 CgogICAgSWYgKE9DQzcpCiAgICB7CiAgICAgICAgU2NvcGUgKF9HUEUpCiAgICAgICAgewogICAg ICAgICAgICBNZXRob2QgKF9MMUQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIENfT0MgKCkKICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEdQN0ksIEdN N1ApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5vdCAoR1Y3UCwgR1Y3 UCkKICAgICAgICAgICAgICAgICAgICBVX09DICgweDA3LCBHVjdQKQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIElmIChPQ0M4KQogICAgewogICAg ICAgIFNjb3BlIChfR1BFKQogICAgICAgIHsKICAgICAgICAgICAgTWV0aG9kIChfTDE3LCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDX09DICgpCiAgICAg ICAgICAgICAgICBJZiAoTEVxdWFsIChHUDhJLCBHTThQKSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBOb3QgKEdNOFAsIEdNOFApCiAgICAgICAgICAgICAgICAgICAgVV9P QyAoMHgwOCwgR004UCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0K ICAgIH0KCiAgICBJZiAoT0NDOSkKICAgIHsKICAgICAgICBTY29wZSAoX0dQRSkKICAgICAgICB7 CiAgICAgICAgICAgIE1ldGhvZCAoX0wwRSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgQ19PQyAoKQogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoR1A5 SSwgWmVybykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVV9PQyAoMHgw OSwgT25lKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoK ICAgIE1ldGhvZCAoTlBUUywgMSwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgIH0KCiAgICBNZXRo b2QgKE5XQUssIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICB9CgogICAgTmFtZSAoRlpURiwg QnVmZmVyICgweDA3KQogICAgewogICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4RjUKICAgIH0pCiAgICBOYW1lIChEUDgwLCAweDgwKQogICAgTmFtZSAoRFA5MCwg MHg5MCkKICAgIE5hbWUgKFVNUlMsIE9uZSkKICAgIE5hbWUgKFBNQlMsIDB4MDgwMCkKICAgIE5h bWUgKFBNTE4sIDB4QTApCiAgICBOYW1lIChHUEJTLCBaZXJvKQogICAgTmFtZSAoR1BMTiwgWmVy bykKICAgIE5hbWUgKFNNQkIsIDB4MEIxMCkKICAgIE5hbWUgKFNNQkwsIDB4MTApCiAgICBOYW1l IChBUElDLCBPbmUpCiAgICBOYW1lIChQQ0lCLCAweEUwMDAwMDAwKQogICAgTmFtZSAoUENJTCwg MHgxMDAwMDAwMCkKICAgIE5hbWUgKEhUVEMsIFplcm8pCiAgICBPcGVyYXRpb25SZWdpb24gKEJJ T1MsIFN5c3RlbU1lbW9yeSwgMHhDRkZDRTA2NCwgMHhGRikKICAgIEZpZWxkIChCSU9TLCBCeXRl QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgewogICAgICAgIFNTMSwgICAgMSwgCiAgICAgICAg U1MyLCAgICAxLCAKICAgICAgICBTUzMsICAgIDEsIAogICAgICAgIFNTNCwgICAgMSwgCiAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4MDEpLCAKICAgICAgICBJT1NULCAgIDE2LCAKICAgICAgICBU T1BNLCAgIDMyLCAKICAgICAgICBST01TLCAgIDMyLCAKICAgICAgICBNRzFCLCAgIDMyLCAKICAg ICAgICBNRzFMLCAgIDMyLCAKICAgICAgICBNRzJCLCAgIDMyLCAKICAgICAgICBNRzJMLCAgIDMy LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxQyksIAogICAgICAgIERNQVgsICAgOCwgCiAg ICAgICAgSFBUQSwgICAzMiwgCiAgICAgICAgQ1BCMCwgICAzMiwgCiAgICAgICAgQ1BCMSwgICAz MiwgCiAgICAgICAgQ1BCMiwgICAzMiwgCiAgICAgICAgQ1BCMywgICAzMiwgCiAgICAgICAgQVNT QiwgICA4LCAKICAgICAgICBBT1RCLCAgIDgsIAogICAgICAgIEFBWEIsICAgMzIsIAogICAgICAg IFNNSUYsICAgOCwgCiAgICAgICAgRFRTRSwgICA4LCAKICAgICAgICBEVFMxLCAgIDgsIAogICAg ICAgIERUUzIsICAgOCwgCiAgICAgICAgTVBFTiwgICA4LCAKICAgICAgICBUUE1GLCAgIDgKICAg IH0KCiAgICBNZXRob2QgKFJSSU8sIDQsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgU3Rv cmUgKCJSUklPIiwgRGVidWcpCiAgICB9CgogICAgTWV0aG9kIChSRE1BLCAzLCBOb3RTZXJpYWxp emVkKQogICAgewogICAgICAgIFN0b3JlICgickRNQSIsIERlYnVnKQogICAgfQoKICAgIE5hbWUg KFBJQ00sIFplcm8pCiAgICBNZXRob2QgKF9QSUMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAg ICAgICAgSWYgKEFyZzApCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoMHhBQSwgREJHOCkK ICAgICAgICAgICAgXF9TQi5JUlFDICgpCiAgICAgICAgfQogICAgICAgIEVsc2UKICAgICAgICB7 CiAgICAgICAgICAgIFN0b3JlICgweEFDLCBEQkc4KQogICAgICAgIH0KCiAgICAgICAgU3RvcmUg KEFyZzAsIFBJQ00pCiAgICB9CgogICAgTmFtZSAoT1NWUiwgT25lcykKICAgIE1ldGhvZCAoT1NG TCwgMCwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBJZiAoTE5vdEVxdWFsIChPU1ZSLCBP bmVzKSkKICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoT1NWUikKICAgICAgICB9CgogICAg ICAgIElmIChMRXF1YWwgKFBJQ00sIFplcm8pKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUg KDB4QUMsIERCRzgpCiAgICAgICAgfQoKICAgICAgICBTdG9yZSAoT25lLCBPU1ZSKQogICAgICAg IElmIChDb25kUmVmT2YgKF9PU0ksIExvY2FsMSkpCiAgICAgICAgewogICAgICAgICAgICBJZiAo X09TSSAoIldpbmRvd3MgMjAwMSIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdG9y ZSAoWmVybywgT1NWUikKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBFbHNlCiAgICAg ICAgewogICAgICAgICAgICBJZiAoTUNUSCAoX09TLCAiTWljcm9zb2Z0IFdpbmRvd3MgTlQiKSkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3RvcmUgKDB4MDQsIE9TVlIpCiAgICAgICAg ICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAo TUNUSCAoX09TLCAiTWljcm9zb2Z0IFdpbmRvd3NNRTogTWlsbGVubml1bSBFZGl0aW9uIikpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDIsIE9TVlIpCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKE1DVEggKF9PUywgIkxpbnV4Iikp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDMsIE9TVlIp CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFJldHVy biAoT1NWUikKICAgIH0KCiAgICBNZXRob2QgKE1DVEgsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICB7 CiAgICAgICAgSWYgKExMZXNzIChTaXplT2YgKEFyZzApLCBTaXplT2YgKEFyZzEpKSkKICAgICAg ICB7CiAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICB9CgogICAgICAgIEFkZCAoU2l6 ZU9mIChBcmcwKSwgT25lLCBMb2NhbDApCiAgICAgICAgTmFtZSAoQlVGMCwgQnVmZmVyIChMb2Nh bDApIHt9KQogICAgICAgIE5hbWUgKEJVRjEsIEJ1ZmZlciAoTG9jYWwwKSB7fSkKICAgICAgICBT dG9yZSAoQXJnMCwgQlVGMCkKICAgICAgICBTdG9yZSAoQXJnMSwgQlVGMSkKICAgICAgICBXaGls ZSAoTG9jYWwwKQogICAgICAgIHsKICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAg ICAgICAgIElmIChMTm90RXF1YWwgKERlcmVmT2YgKEluZGV4IChCVUYwLCBMb2NhbDApKSwgRGVy ZWZPZiAoSW5kZXggKAogICAgICAgICAgICAgICAgQlVGMSwgTG9jYWwwKSkpKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KICAgICAgICB9 CgogICAgICAgIFJldHVybiAoT25lKQogICAgfQoKICAgIE5hbWUgKFBSV1AsIFBhY2thZ2UgKDB4 MDIpCiAgICB7CiAgICAgICAgWmVybywgCiAgICAgICAgWmVybwogICAgfSkKICAgIE1ldGhvZCAo R1BSVywgMiwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBTdG9yZSAoQXJnMCwgSW5kZXgg KFBSV1AsIFplcm8pKQogICAgICAgIFN0b3JlIChTaGlmdExlZnQgKFNTMSwgT25lKSwgTG9jYWww KQogICAgICAgIE9yIChMb2NhbDAsIFNoaWZ0TGVmdCAoU1MyLCAweDAyKSwgTG9jYWwwKQogICAg ICAgIE9yIChMb2NhbDAsIFNoaWZ0TGVmdCAoU1MzLCAweDAzKSwgTG9jYWwwKQogICAgICAgIE9y IChMb2NhbDAsIFNoaWZ0TGVmdCAoU1M0LCAweDA0KSwgTG9jYWwwKQogICAgICAgIElmIChBbmQg KFNoaWZ0TGVmdCAoT25lLCBBcmcxKSwgTG9jYWwwKSkKICAgICAgICB7CiAgICAgICAgICAgIFN0 b3JlIChBcmcxLCBJbmRleCAoUFJXUCwgT25lKSkKICAgICAgICB9CiAgICAgICAgRWxzZQogICAg ICAgIHsKICAgICAgICAgICAgU2hpZnRSaWdodCAoTG9jYWwwLCBPbmUsIExvY2FsMCkKICAgICAg ICAgICAgSWYgKExPciAoTEVxdWFsIChPU0ZMICgpLCBPbmUpLCBMRXF1YWwgKE9TRkwgKCksIDB4 MDIpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRmluZFNldExlZnRCaXQgKExvY2Fs MCwgSW5kZXggKFBSV1AsIE9uZSkpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKExvY2FsMCwgSW5kZXgg KFBSV1AsIE9uZSkpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFJldHVybiAoUFJX UCkKICAgIH0KCiAgICBOYW1lIChXQUtQLCBQYWNrYWdlICgweDAyKQogICAgewogICAgICAgIFpl cm8sIAogICAgICAgIFplcm8KICAgIH0pCiAgICBPcGVyYXRpb25SZWdpb24gKERFQjAsIFN5c3Rl bUlPLCBEUDgwLCBPbmUpCiAgICBGaWVsZCAoREVCMCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2 ZSkKICAgIHsKICAgICAgICBEQkc4LCAgIDgKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKERF QjEsIFN5c3RlbUlPLCBEUDkwLCAweDAyKQogICAgRmllbGQgKERFQjEsIFdvcmRBY2MsIE5vTG9j aywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgREJHOSwgICAxNgogICAgfQoKICAgIFNjb3BlIChf UFIpCiAgICB7CiAgICAgICAgUHJvY2Vzc29yIChQMDAxLCAweDAxLCAweDAwMDAwODEwLCAweDA2 KSB7fQogICAgICAgIFByb2Nlc3NvciAoUDAwMiwgMHgwMiwgMHgwMDAwMDAwMCwgMHgwMCkge30K ICAgICAgICBBbGlhcyAoUDAwMSwgQ1BVMSkKICAgICAgICBBbGlhcyAoUDAwMiwgQ1BVMikKICAg IH0KCiAgICBTY29wZSAoX1NCKQogICAgewogICAgICAgIE5hbWUgKFBSMDAsIFBhY2thZ2UgKDB4 MjEpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAweDAwMDJGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw MDAyRkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgTE5LRCwgCiAg ICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAyRkZGRiwgCiAgICAgICAg ICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0EsIAogICAgICAgICAgICAgICAgWmVy bwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4MDAwMkZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAg ICAgICAgICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwg CgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweDAwMDNGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5L RCwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAzRkZGRiwgCiAg ICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgTE5LQSwgCiAgICAgICAgICAgICAg ICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAzRkZGRiwgCiAgICAgICAgICAgICAgICAweDAy LCAKICAgICAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIDB4MDAwM0ZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAg ICBMTktDLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDRGRkZG LCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5LQSwgCiAgICAgICAg ICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA0RkZGRiwgCiAgICAgICAgICAgICAg ICBPbmUsIAogICAgICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHgwMDA0RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAg ICAgICAgIExOS0MsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAw NEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBMTktELCAKICAg ICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgw eDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDVGRkZGLCAKICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgICAgICBaZXJv CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgMHgwMDA1RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAg ICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg MHgwMDA1RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0Qs IAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNUZGRkYsIAogICAg ICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBMTktBLCAKICAgICAgICAgICAgICAg IFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDZGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgMHgwMDA2RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAg TE5LRCwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA2RkZGRiwg CiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0EsIAogICAgICAgICAg ICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNkZGRkYsIAogICAgICAgICAgICAgICAg MHgwMywgCiAgICAgICAgICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAweDAwMDdGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgTE5LRCwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA3 RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgTE5LQSwgCiAgICAg ICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA3RkZGRiwgCiAgICAgICAgICAg ICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICAgICAgWmVybwog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAg ICAgICAgICAgICBMTktDLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAw eDAwMTRGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5LQSwg CiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDE0RkZGRiwgCiAgICAg ICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgICAgICBa ZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgMHgwMDE0RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAK ICAgICAgICAgICAgICAgIExOS0MsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4MDAxNEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBM TktELCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTNGRkZGLCAK ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5LQSwgCiAgICAgICAgICAg ICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDEzRkZGRiwgCiAgICAgICAgICAgICAgICBP bmUsIAogICAgICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgMHgwMDEzRkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAg ICAgIExOS0MsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxM0ZG RkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBMTktELCAKICAgICAg ICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTJGRkZGLCAKICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5LRywgCiAgICAgICAgICAgICAgICBaZXJvCiAg ICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKEFSMDAsIFBhY2thZ2UgKDB4MjEp CiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAweDAwMDJGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAy RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAyRkZGRiwgCiAgICAgICAgICAg ICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMAog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4MDAwMkZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAw eDAwMDNGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAzRkZGRiwgCiAgICAg ICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAw eDEwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgMHgwMDAzRkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAK ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4MDAwM0ZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIDB4MTIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDRGRkZGLCAK ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA0RkZGRiwgCiAgICAgICAgICAgICAgICBP bmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDExCiAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgMHgwMDA0RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNEZG RkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDVGRkZGLCAKICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDExCiAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgMHgwMDA1RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw MDA1RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgMHgxMwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNUZGRkYsIAogICAgICAg ICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4 MTAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAweDAwMDZGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgMHgwMDA2RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA2RkZGRiwgCiAg ICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgMHgxMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNkZGRkYsIAogICAgICAgICAgICAgICAgMHgw MywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAweDAwMDdGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA3RkZG RiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA3RkZGRiwgCiAgICAgICAgICAgICAg ICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMQogICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIDB4MDAwN0ZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTIKICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAw MTRGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDE0RkZGRiwgCiAgICAgICAg ICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEx CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgMHgwMDE0RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9LCAK CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IDB4MDAxNEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNr YWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTNGRkZGLCAKICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAweDEwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgMHgwMDEzRkZGRiwgCiAgICAgICAgICAgICAgICBPbmUs IAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDExCiAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgMHgwMDEzRkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxM0ZGRkYs IAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgIDB4MTMKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTJGRkZGLCAKICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDE2CiAgICAg ICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKFBSMDEsIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAweDAwMDVGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA1RkZG RiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgTE5LRCwgCiAgICAgICAg ICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA1RkZGRiwgCiAgICAgICAgICAgICAg ICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0EsIAogICAgICAgICAgICAgICAgWmVybwogICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIDB4MDAwNUZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAg ICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfQogICAgICAg IH0pCiAgICAgICAgTmFtZSAoQVIwMSwgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNUZG RkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIDB4MTIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDVGRkZGLCAKICAgICAgICAgICAg ICAgIE9uZSwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTMKICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAweDAwMDVGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw MDA1RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1l IChQUjAyLCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAg ICBMTktELCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAog ICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBMTktBLCAKICAgICAgICAgICAg ICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywg CiAgICAgICAgICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAg fQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoQVIwMiwgUGFja2FnZSAoMHgwNCkKICAgICAgICB7 CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IDB4RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAg ICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEzCiAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZG LCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAweDExCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKFBSMDMs IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICBMTktELCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAg fSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgIExOS0Es IAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAg ICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICAgICAgWmVy bwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAg ICAgICAgICAgIExOS0MsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9CiAgICAg ICAgfSkKICAgICAgICBOYW1lIChBUjAzLCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZG LCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIE9u ZSwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAg ICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg IDB4MTIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoUFIwNCwgUGFja2Fn ZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIExOS0EsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4 RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgTE5LQiwgCiAgICAg ICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAg IDB4MDIsIAogICAgICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAg ICAgTE5LRCwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0KICAgICAgICB9KQog ICAgICAgIE5hbWUgKEFSMDQsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg IDB4MTAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICB9LCAK CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAg ICAgICAweDAzLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMwog ICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChQUjA1LCBQYWNrYWdlICgweDA0 KQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgTE5LQiwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAK ICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBMTktDLCAKICAgICAgICAgICAg ICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMiwg CiAgICAgICAgICAgICAgICBMTktELCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAg fSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBMTktB LCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAg TmFtZSAoQVIwNSwgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMQog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZG LCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4 MDMsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEwCiAgICAgICAg ICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKFBSMDYsIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBMTktD LCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNr YWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAg ICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgIExOS0QsIAogICAgICAgICAgICAgICAgWmVy bwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAg ICAgICAgICAgIExOS0EsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4 RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIExOS0IsIAogICAg ICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChB UjA2LCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAg ICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg IDB4MTAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfQog ICAgICAgIH0pCiAgICAgICAgTmFtZSAoUFIwNywgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4 RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIExOS0QsIAogICAg ICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAg ICBPbmUsIAogICAgICAgICAgICAgICAgTE5LQSwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAg ICAgTE5LQiwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAK ICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAg ICAgICBaZXJvCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKEFSMDcsIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfSwg CgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweEZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgMHgxMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAg ICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMQog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9CiAgICAgICAg fSkKICAgICAgICBOYW1lIChQUjBDLCBQYWNrYWdlICgweDAxKQogICAgICAgIHsKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA0RkZG RiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIExOS0UsIAogICAgICAg ICAgICAgICAgWmVybwogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChBUjBD LCBQYWNrYWdlICgweDAxKQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA0RkZGRiwgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxNAogICAgICAg ICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChQUlNBLCBSZXNvdXJjZVRlbXBsYXRlICgp CiAgICAgICAgewogICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQog ICAgICAgICAgICAgICAgezMsNCw1LDcsMTAsMTEsMTIsMTQsMTV9CiAgICAgICAgfSkKICAgICAg ICBBbGlhcyAoUFJTQSwgUFJTQikKICAgICAgICBBbGlhcyAoUFJTQSwgUFJTQykKICAgICAgICBB bGlhcyAoUFJTQSwgUFJTRCkKICAgICAgICBBbGlhcyAoUFJTQSwgUFJTRSkKICAgICAgICBOYW1l IChQUlNGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgewogICAgICAgICAgICBJUlEgKExl dmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQogICAgICAgICAgICAgICAgezl9CiAgICAgICAgfSkK ICAgICAgICBBbGlhcyAoUFJTQSwgUFJTRykKICAgICAgICBBbGlhcyAoUFJTQSwgUFJTSCkKICAg ICAgICBEZXZpY2UgKFBDSTApCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNh SWQgKCJQTlAwQTAzIikpCiAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxODAwMDApCiAgICAg ICAgICAgIE1ldGhvZCAoXkJOMDAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0 aG9kIChfQkJOLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBSZXR1cm4gKEJOMDAgKCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKF9VSUQs IFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChBUjAwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIFJldHVybiAoUFIwMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChO UFRTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIE1ldGhvZCAoTldBSywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFJTNDgpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdp b24gKE5CMiwgUENJX0NvbmZpZywgWmVybywgMHgwMTAwKQogICAgICAgICAgICAgICAgRmllbGQg KE5CMiwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDkwKSwgCiAgICAgICAgICAgICAgICAgICAg VU1CUywgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4OUIpLCAK ICAgICAgICAgICAgICAgICAgICBVTVNMLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgT2Zmc2V0ICgweEU0KSwgCiAgICAgICAgICAgICAgICAgICAgTUNEQSwgICAzMiwgCiAgICAg ICAgICAgICAgICAgICAgTkNJTiwgICAzMgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIERldmljZSAoVU1BWCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBO YW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzAyIikpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAo X1VJRCwgMHgyNCkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoVU1TTCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUgKENSUywgUmVzb3VyY2VUZW1wbGF0ZSAo KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJG aXhlZCAoUmVhZE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAg ICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAw MDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgX1kwMCkKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLlJTNDguVU1B WC5fWTAwLl9CQVMsIEJBUzEpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmll bGQgKENSUywgXF9TQi5QQ0kwLlJTNDguVU1BWC5fWTAwLl9MRU4sIExFTjEpCiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChVTUJTLCBCQVMxKQogICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoU2hpZnRMZWZ0IChVTVNMLCAweDE4KSwgTEVOMSkKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChDUlMpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFAwUDEpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwMTAwMDApCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKEFSMDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBSMDEpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIERldmljZSAoUENFMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFt ZSAoX0FEUiwgMHgwMDAyMDAwMCkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEdQUlcgKDB4MTgsIDB4MDQpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBJZiAoUElDTSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQVIwMikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoUFIwMikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBEZXZpY2UgKFZHQSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1l IChfQURSLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RPUywgMSwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChBcmcwLCBTV0lUKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgTmFtZSAoX0RPRCwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAwMTAxMDAsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDEwMTEwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDIwMCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAwMTAyMTAKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgIERldmljZSAoQ1JUKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMTAwKQogICAgICAgICAgICAgICAgICAgICAg ICBOYW1lIChfRENTLCAweDFGKQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfREdTLCBa ZXJvKQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU1MsIDEsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChMQ0QpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAw eDAxMTApCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9EQ1MsIDB4MUYpCiAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9ER1MsIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfRFNTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0JDTSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1RfMCwgWmVybykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChBcmcwLCBfVF8wKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKExFcXVhbCAoX1RfMCwgMHgxNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIExvY2FsMCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoTEVxdWFsIChfVF8wLCAweDFFKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmUs IExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoX1RfMCwgMHgy OCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAyLCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChfVF8wLCAweDMyKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChM RXF1YWwgKF9UXzAsIDB4M0MpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MDQsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoX1RfMCwg MHg0NikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl ICgweDA1LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVx dWFsIChfVF8wLCAweDUwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoMHgwNiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKF9UXzAsIDB4NUEpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MDcsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoX1RfMCwgMHg2NCkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDA4LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoMHgwOCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFdoaWxlIChMTm90ICheXl5eU0JSRy5FQy5JUkRZICgpKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoT25l KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDExLCBeXl5eU0JSRy5FQy5DTUQxKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgV2hpbGUgKExOb3QgKF5eXl5TQlJHLkVDLklSRFkgKCkpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKDB4ODAsIF5eXl5TQlJHLkVDLkRBVDEpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBXaGlsZSAoTE5vdCAoXl5eXlNCUkcuRUMuSVJEWSAoKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoTG9jYWwwLCBeXl5eU0JSRy5FQy5EQVQxKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9CUUMsIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlICheXl5eU0JSRy5FQy5HQlFDLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNdWx0aXBseSAoTG9jYWwwLCAweDBBLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBZGQgKExvY2FsMSwgMHgxNCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKFBCQ0wsIFBhY2thZ2UgKDB4MEIpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NTAsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgxNCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0 LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUUsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4M0MsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHg0NiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUwLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4NUEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2NAogICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9C Q0wsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEJDTCkKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChUVikK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIs IDB4MDIwMCkKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0RDUywgMHgxRikKICAgICAg ICAgICAgICAgICAgICAgICAgTmFtZSAoX0RHUywgWmVybykKICAgICAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfRFNTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIERldmljZSAoREZQMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDIxMCkKICAgICAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX0RDUywgMHgxRikKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0RH UywgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRFNTLCAxLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUgKFNXSVQs IFplcm8pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoR0RDUywgMHgwMikKICAgICAgICAgICAg ICAgICAgICBOYW1lIChHREdTLCBPbmUpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoR0RUUywg WmVybykKICAgICAgICAgICAgICAgICAgICBOYW1lIChHREZHLCBPbmUpCiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoQlFGMSwgWmVybykKICAgICAgICAgICAgICAgICAgICBOYW1lIChCUUYyLCBa ZXJvKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2Ug KFBDRTMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwMzAw MDApCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDE4LCAweDA0 KSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKFBJ Q00pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEFSMDMpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBSMDMpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmlj ZSAoUENFNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDA0 MDAwMCkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4MTgsIDB4 MDQpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo UElDTSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoQVIwNCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVy biAoUFIwNCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2 aWNlIChQQ0U1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAw MDUwMDAwKQogICAgICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHgxOCwg MHgwNCkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFJULCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm IChQSUNNKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChBUjA1KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChQUjA1KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBE ZXZpY2UgKFBDRTYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4 MDAwNjAwMDApCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDE4 LCAweDA0KSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQs IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKFBJQ00pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEFSMDYpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBSMDYpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChO RVdDKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIFpl cm8pCiAgICAgICAgICAgICAgICAgICAgU2NvcGUgKFxfR1BFKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfTDA3LCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoR1Y3UywgREJHOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChHVjdTKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChPbmUsIEdFVjcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKFplcm8sIEdWN1ApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgR0VWNykKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBHVjdQKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDY0KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAsIFplcm8pCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1JNViwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgU2NvcGUgKF5eUENFNikKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoTkVTUywgUENJX0Nv bmZpZywgMHg3MiwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICBGaWVsZCAoTkVTUywgQW55 QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDUsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU0xTVCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICAgMQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFBDRTcpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwNzAwMDApCiAgICAgICAgICAgICAg ICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDE4LCAweDA0KSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFSMDcpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBSMDcpCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoU0JBWikKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDE0MDAwMikKICAgICAgICAgICAg ICAgIE9wZXJhdGlvblJlZ2lvbiAoUENJLCBQQ0lfQ29uZmlnLCBaZXJvLCAweDAxMDApCiAgICAg ICAgICAgICAgICBGaWVsZCAoUENJLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NDIpLCAKICAg ICAgICAgICAgICAgICAgICBETlNQLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEROU08sICAg MSwgCiAgICAgICAgICAgICAgICAgICAgRU5TUiwgICAxCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHgxQiwgMHgwNCkpCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoU0JSRykKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDE0MDAwMykKICAgICAg ICAgICAgICAgIERldmljZSAoUElDKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDAwMDAiKSkKICAgICAgICAgICAgICAgICAgICBO YW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwMjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAyMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChE ZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBBMCwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEEwLCAgICAg ICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw LCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFncyAoKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgezJ9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBEZXZpY2UgKERNQUQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDIwMCIpKQogICAgICAgICAgICAg ICAgICAgIE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERNQSAoQ29tcGF0aWJpbGl0eSwgQnVzTWFzdGVy LCBUcmFuc2ZlcjgsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHs0fQogICAgICAgICAg ICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MTAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUx NiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MSwgICAgICAgICAgICAgLy8gUmFu Z2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgxLCAgICAgICAgICAg ICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAg ICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywg ICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAg ICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDg3LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwODcsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAo RGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODksICAgICAgICAgICAg IC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4OSwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDMsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDA4RiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMDhGLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVt CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdu bWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBM ZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAg ICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwLCAgICAg ICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw QzAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDIwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgRGV2aWNlIChUTVIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDEwMCIpKQogICAgICAgICAgICAgICAgICAg IE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDA0MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMDQwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBMZW5ndGgK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSVJR Tm9GbGFncyAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgezB9CiAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKFJUQzAp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlk ICgiUE5QMEIwMCIpKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9DUlMsIFJlc291cmNlVGVt cGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElP IChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MCwgICAgICAgICAg ICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwLCAg ICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFncyAoKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgezh9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKFNQS1IpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDgwMCIpKQogICAgICAgICAg ICAgICAgICAgIE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDA2MSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYxLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhp bXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFs aWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAv LyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoQ09QUikKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQ TlAwQzA0IikpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0 ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERl Y29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwLCAgICAgICAgICAgICAv LyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAsICAgICAg ICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAs ICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDEwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7MTN9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBEZXZpY2UgKEhQRVQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDEwMyIpKQogICAgICAgICAgICAg ICAgICAgIE5hbWUgKENSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZE9ubHksCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweEZFRDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFz ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMCwgICAgICAgICAvLyBBZGRy ZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX1kwMSkKICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChI UEJTKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLlNCUkcuSFBFVC5fWTAxLl9CQVMsIEhQ VCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEhQQlMsIEhQVCkKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChDUlMpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoXlBDSUUpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwMiIpKQogICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MTEpCiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkT25seSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4RTAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3Ro CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfWTAyKQogICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoQ1JTLCBcX1NCLlBDSTAuUENJRS5fWTAyLl9CQVMsIEJBUzEpCiAgICAgICAgICAgICAgICAg ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLlBDSUUuX1kwMi5fTEVOLCBM RU4xKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUENJQiwgQkFTMSkKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKFBDSUwsIExFTjEpCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQ1JTKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBEZXZpY2UgKE9NU0MpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwMiIpKQogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9VSUQsIFplcm8pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQ1JTLCBSZXNv dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBNZW1vcnkzMkZpeGVkIChSZWFkT25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBfWTAzKQogICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZp eGVkIChSZWFkT25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAg ICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAw MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBfWTA0KQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKEFQSUMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLlNC UkcuT01TQy5fWTAzLl9MRU4sIE1MMDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVh dGVEV29yZEZpZWxkIChDUlMsIFxfU0IuUENJMC5TQlJHLk9NU0MuX1kwMy5fQkFTLCBNQjAxKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCBcX1NCLlBD STAuU0JSRy5PTVNDLl9ZMDQuX0xFTiwgTUwwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAg IENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLlNCUkcuT01TQy5fWTA0Ll9CQVMsIE1C MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHhGRUMwMDAwMCwgTUIwMSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDEwMDAsIE1MMDEpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHhGRUUwMDAwMCwgTUIwMikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDEwMDAsIE1MMDIpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ1JTKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKF5eUk1F TSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNh SWQgKCJQTlAwQzAxIikpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgT25lKQogICAg ICAgICAgICAgICAgICAgIE5hbWUgKENSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdy aXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBB ZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQTAwMDAsICAgICAg ICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZE9ubHksCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0 aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX1kwNSkKICAgICAgICAgICAgICAgICAgICAg ICAgTWVtb3J5MzJGaXhlZCAoUmVhZE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMEUwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDAyMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgX1kwNikKICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhl ZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMCwgICAg ICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw MDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAg IF9ZMDcpCiAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRPbmx5LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNz IEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8g QWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ZMDgpCiAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBD cmVhdGVEV29yZEZpZWxkIChDUlMsIFxfU0IuUk1FTS5fWTA1Ll9CQVMsIEJBUzEpCiAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5STUVNLl9ZMDUuX0xF TiwgTEVOMSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCBc X1NCLlJNRU0uX1kwNi5fQkFTLCBCQVMyKQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVE V29yZEZpZWxkIChDUlMsIFxfU0IuUk1FTS5fWTA2Ll9MRU4sIExFTjIpCiAgICAgICAgICAgICAg ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5STUVNLl9ZMDcuX0xFTiwgTEVO MykKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCBcX1NCLlJN RU0uX1kwOC5fQkFTLCBCQVM0KQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZp ZWxkIChDUlMsIFxfU0IuUk1FTS5fWTA4Ll9MRU4sIExFTjQpCiAgICAgICAgICAgICAgICAgICAg ICAgIElmIChPU0ZMICgpKSB7fQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChNRzFCKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmIChMR3JlYXRlciAoTUcxQiwgMHgwMDBDMDAwMCkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo MHgwMDBDMDAwMCwgQkFTMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vi dHJhY3QgKE1HMUIsIEJBUzEsIExFTjEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDAwMEMwMDAwLCBCQVMxKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDAwMDIwMDAwLCBMRU4xKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChBZGQgKE1HMUIsIE1H MUwsIExvY2FsMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwgQkFTMikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdWJ0cmFjdCAoMHgwMDEwMDAwMCwgQkFTMiwgTEVOMikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgU3VidHJhY3QgKE1HMkIsIDB4MDAxMDAwMDAsIExFTjMpCiAgICAgICAg ICAgICAgICAgICAgICAgIEFkZCAoTUcyQiwgTUcyTCwgQkFTNCkKICAgICAgICAgICAgICAgICAg ICAgICAgU3VidHJhY3QgKFplcm8sIEJBUzQsIExFTjQpCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQ1JTKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBEZXZpY2UgKFJNU0MpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwMiIpKQogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9VSUQsIDB4MTApCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQ1JTLCBSZXNv dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAsICAg ICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAxMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MTAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11 bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIyLCAgICAgICAgICAgICAvLyBSYW5n ZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAg IC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRSwgICAgICAgICAg ICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MDYyLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwNjIsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjUsICAgICAgICAgICAgIC8vIFJhbmdl IE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NSwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAg ICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEIsICAg ICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDA3MiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMDcyLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwRSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERl Y29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwLCAgICAgICAgICAgICAv LyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAsICAgICAg ICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAs ICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwODQsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDA4NCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1l bnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsICAgICAgICAgICAgICAgLy8gTGVu Z3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAg IElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4OCwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg4 LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDhDLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOEMsICAgICAgICAgICAgIC8vIFJhbmdlIE1h eGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8g QWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAgICAgICAgICAgICAg IC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAg ICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTAs ICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDA5MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MTAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBBMiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWlu aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEEyLCAgICAgICAgICAgICAvLyBS YW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAg ICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRSwgICAgICAg ICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg ICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMEIxLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwQjEsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2Rl MTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAsICAgICAgICAgICAgIC8vIFJh bmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMCwgICAgICAgICAg ICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAg ICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAs ICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAg ICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDREMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwNEQwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8g KERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDBCLCAgICAgICAgICAg ICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MEIsICAg ICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDA0RDYsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDRENiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11 bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGln bm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8g TGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAg ICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMCwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw QzAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwQzE0LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVt CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMTQsICAgICAgICAgICAgIC8vIFJhbmdl IE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAg Ly8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAg ICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg ICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBD NTAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MEM1MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEM1MiwgICAgICAgICAgICAgLy8gUmFuZ2Ug TWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzUyLCAgICAgICAgICAgICAv LyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg ICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAg ICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwQzZDLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDBDNkMsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVj b2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDNkYsICAgICAgICAgICAgIC8v IFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEM2RiwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg ICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAp CiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MENEMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwQ0QwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVu dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5n dGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAg SU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQ0QyLCAgICAgICAg ICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDRDIs ICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDBDRDQsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MENENCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4 aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBB bGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAg Ly8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAg ICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MENENiwg ICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwQ0Q2LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwQ0Q4LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5p bXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDRDgsICAgICAgICAgICAgIC8vIFJh bmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg ICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAg ICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg ICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBfWTA5KQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVj b2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8v IFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMCwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg ICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBf WTBBKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11 bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGln bm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8g TGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfWTBCKQogICAgICAgICAgICAgICAg ICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MDAs ICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDkwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MTAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkxMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWlu aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTEwLCAgICAgICAgICAgICAvLyBS YW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAg ICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAg ICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg ICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHhGRTAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweEZFMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweEZGLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZp eGVkIChSZWFkT25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZCODAwMDAsICAg ICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgw MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBC YXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFk ZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfWTBDKQogICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlV29yZEZpZWxkIChDUlMsIFxfU0IuUENJMC5TQlJHLlJNU0MuX1kwOS5fTUlOLCBHUDAwKQog ICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLlNC UkcuUk1TQy5fWTA5Ll9NQVgsIEdQMDEpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5 dGVGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9ZMDkuX0xFTiwgR1AwTCkKICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKFBNQlMsIEdQMDApCiAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChQTUJTLCBHUDAxKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUE1M TiwgR1AwTCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFNNQkIpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAo Q1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9ZMEEuX01JTiwgR1AxMCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9Z MEEuX01BWCwgR1AxMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVs ZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9ZMEEuX0xFTiwgR1AxTCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChTTUJCLCBHUDEwKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKFNNQkIsIEdQMTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoU01CTCwgR1AxTCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKEdQQlMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVND Ll9ZMEIuX01JTiwgR1AyMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRG aWVsZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9ZMEIuX01BWCwgR1AyMSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5S TVNDLl9ZMEIuX0xFTiwgR1AyTCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChH UEJTLCBHUDIwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEdQQlMsIEdQMjEp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoR1BMTiwgR1AyTCkKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9ZMEMuX0JBUywgUk9NQikKICAgICAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9Z MEMuX0xFTiwgUk9NTCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFJPTVMsIFJPTUIp CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YnRyYWN0IChaZXJvLCBST01TLCBST01MKQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENSUykKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChQUzJLKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDAzMDMi KSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ0lELCAweDBCMDNEMDQxKQogICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoT25lLCAweDBBLCBMb2Nh bDApCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQgKElPU1QsIExvY2FsMCkpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwRikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg TmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDYwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwNjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAo RGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjQsICAgICAgICAgICAg IC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NCwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsxfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgRGV2aWNlIChQUzJNKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBGMDMiKSkKICAgICAgICAgICAg ICAgICAgICBOYW1lIChfQ0lELCAweDEzMEZEMDQxKQogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoT25lLCAweDBDLCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgIElmIChBbmQgKElPU1QsIExvY2FsMCkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVz b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSVJRTm9GbGFncyAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgezEyfQogICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgU2Nv cGUgKFwpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRmllbGQgKEJJT1Ms IEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgyMiksIAogICAgICAgICAgICAgICAg ICAgICAgICBPU1lTLCAgIDE2LCAKICAgICAgICAgICAgICAgICAgICAgICAgRkxTSCwgICA4LCAK ICAgICAgICAgICAgICAgICAgICAgICAgSU5TVCwgICA4LCAKICAgICAgICAgICAgICAgICAgICAg ICAgQ0FETCwgICAxNiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBBREwsICAgMTYsIAogICAg ICAgICAgICAgICAgICAgICAgICBDU1RFLCAgIDE2LCAKICAgICAgICAgICAgICAgICAgICAgICAg TlNURSwgICAxNgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBTY29wZSAoXF9UWikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKEtFTFYsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBBbmQgKEFyZzAsIDB4RkYsIExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICAgICAgTXVsdGlwbHkgKExvY2FsMCwgMHgwQSwgTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgICAgICBBZGQgKExvY2FsMCwgMHgwQUFDLCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgVGhlcm1hbFpvbmUgKFRIUk0pCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9UTVAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChc X1NCLlBDSTAuU0JSRy5FQy5NWUVDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChcX1NCLlBDSTAuU0JSRy5FQy5DVFNEKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKFplcm8sIFxfU0IuUENJMC5TQlJHLkVDLkNUU0QpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoS0VMViAoMHg2RSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAuU0JSRy5FQy5DUFVULCBMb2NhbDAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZCAoTG9jYWwwLCAweDAyLCBM b2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoS0VMViAo TG9jYWwwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChLRUxWICgweDJEKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JULCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEtFTFYgKDB4NjQpKQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIERldmljZSAoRUMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwOSIpKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9H UEUsIDB4MDYpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQ1RJRCwgWmVybykKICAgICAgICAg ICAgICAgICAgICBOYW1lIChNWUVDLCBPbmUpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQ1RT RCwgWmVybykKICAgICAgICAgICAgICAgICAgICBOYW1lIChUSFJGLCBaZXJvKQogICAgICAgICAg ICAgICAgICAgIE5hbWUgKFBDT1UsIFplcm8pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf UkVHLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwMykpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChBcmcxLCBNWUVDKQogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVy bywgQ1RTRCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUg KF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDA2MiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMDYyLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29k ZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY2LCAgICAgICAgICAgICAvLyBS YW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjYsICAgICAgICAg ICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAg ICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAx LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQog ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9u IChJTywgU3lzdGVtSU8sIDB4NjIsIDB4MDUpCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKElP LCBCeXRlQWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIERBVDEsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgT2Zmc2V0ICgweDA0KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIENNRDEsICAgOAogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKElPLCBCeXRlQWNj LCBMb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA0KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9V VFMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIElOUFMsICAgMQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChJUkRZLCAwLCBTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChM Tm90IChJTlBTKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoT1JEWSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoT1VUUykKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoRUMsIEVtYmVkZGVkQ29udHJvbCwgWmVy bywgMHhGRikKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoRUMsIEJ5dGVBY2MsIE5vTG9jaywg UHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBT TVBSLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBTTVNULCAgIDgsIAogICAgICAgICAg ICAgICAgICAgICAgICBTTUFELCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBTTUNNLCAg IDgsIAogICAgICAgICAgICAgICAgICAgICAgICBTTUQwLCAgIDI2NCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIFNNQUEsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDMwKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBPV1MsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgICAgIExJRFMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEtCQ1Ms ICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMxKSwgCiAg ICAgICAgICAgICAgICAgICAgICAgIE1CVFMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAg IE1CQ1MsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1CRFMsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgICAgIE1CRlMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1CV1Ms ICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1CTFMsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgICAgIE1CQ0wsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1CRkwsICAgMSwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDM4KSwgCiAgICAgICAg ICAgICAgICAgICAgICAgIE1EQ0wsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1EQ0gs ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1EVkwsICAgOCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIE1EVkgsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1DQUwsICAgOCwg CiAgICAgICAgICAgICAgICAgICAgICAgIE1DQUgsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIE1TVEwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1TVEgsICAgOCwgCiAgICAg ICAgICAgICAgICAgICAgICAgIE1DQ0wsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1D Q0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1QT0wsICAgOCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIE1QT0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1GQ0wsICAg OCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1GQ0gsICAgOCwgCiAgICAgICAgICAgICAgICAg ICAgICAgIE1DVUwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1DVUgsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIE1SQ0wsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAg IE1SQ0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1WT0wsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIE1WT0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1URUws ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1URUgsICAgOCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIFJTVjEsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFJTVjIsICAgOCwg CiAgICAgICAgICAgICAgICAgICAgICAgIFNEQ0wsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIFNEQ0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNEVkwsICAgOCwgCiAgICAg ICAgICAgICAgICAgICAgICAgIFNEVkgsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFND QUwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNDQUgsICAgOCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIFNTVEwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNTVEgsICAg OCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNDQ0wsICAgOCwgCiAgICAgICAgICAgICAgICAg ICAgICAgIFNDQ0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNQT0wsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIFNQT0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAg IFNGQ0wsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNGQ0gsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIFNDVUwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNDVUgs ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNSQ0wsICAgOCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIFNSQ0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNWT0wsICAgOCwg CiAgICAgICAgICAgICAgICAgICAgICAgIFNWT0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIFNURUwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNURUgsICAgOCwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDY4KSwgCiAgICAgICAgICAgICAg ICAgICAgICAgIENQVVQsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDcwKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNXQ1QsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDdFKSwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAsICAgMywgCiAgICAgICAgICAgICAgICAgICAgICAgIFRIRkcsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDdGKSwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDgwKSwgCiAgICAgICAgICAgICAgICAgICAg ICAgIFNZU1QsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgw eEYxKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEdCUUMsICAgOAogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChBUE1QLCBTeXN0ZW1J TywgMHhCMCwgMHgwMikKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoQVBNUCwgQnl0ZUFjYywg Tm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIEFQTUMsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEFQTVMsICAgOAogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChBRFAxKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFD UEkwMDAzIikKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoQkZMRywgT25lKQogICAgICAg ICAgICAgICAgICAgICAgICBOYW1lIChBQ1AsIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfUFNSLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoUE9XUykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9Q Q0wsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF9TQgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQklGMCwgUGFja2FnZSAoMHgw RCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4MTEzMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 MTEzMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MzlEMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAg ICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAgICAgICAgIk1TLTF4eHgiLCAK ICAgICAgICAgICAgICAgICAgICAgICAgIjEiLCAKICAgICAgICAgICAgICAgICAgICAgICAgIkxJ T04iLCAKICAgICAgICAgICAgICAgICAgICAgICAgIk1TSSBDb3JwLiIKICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKFNUQVQsIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHgwNTAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAw LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0U4CiAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKEJBVDEpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBBIikpCiAg ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkKICAgICAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX1BDTCwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgX1NCCiAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKE1ZRUMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKE1CVFMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MUYpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9CSUYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChNWUVDKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQQkkgKCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJVkJJICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4OTksIERCRzgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MDNF OCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEJJRjApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0JTVCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE1ZRUMpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VVBCUyAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElWQlMgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFNUQVQpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoSVZCSSwgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKE9uZXMsIEluZGV4IChCSUYwLCBPbmUpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKE9uZXMsIEluZGV4IChCSUYwLCAweDAyKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChPbmVzLCBJbmRleCAoQklGMCwgMHgwNCkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoIldyb25nIiwgSW5kZXggKEJJRjAsIDB4MDkpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCIgIiwgSW5kZXggKEJJRjAsIDB4MEEp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCJXcm9uZyIsIEluZGV4IChCSUYw LCAweDBCKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgiV3JvbmciLCBJbmRl eCAoQklGMCwgMHgwQykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoSVZCUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIEluZGV4 IChTVEFULCBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmVzLCBJ bmRleCAoU1RBVCwgT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmVz LCBJbmRleCAoU1RBVCwgMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo MHgyNzEwLCBJbmRleCAoU1RBVCwgMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoVVBCSSwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KFplcm8sIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBM b2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgTG9jYWwyKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIExvY2FsMykKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChNRENILCBMb2NhbDApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoTURDTCwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU2hpZnRMZWZ0IChMb2NhbDAsIDB4MDgsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE9yIChMb2NhbDAsIExvY2FsMSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKExvY2FsMCwgSW5kZXggKEJJRjAsIE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoTUZDSCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKE1GQ0wsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0 TGVmdCAoTG9jYWwwLCAweDA4LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBP ciAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChMb2NhbDEsIEluZGV4IChCSUYwLCAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChNRFZILCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoTURWTCwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hpZnRMZWZ0IChM b2NhbDAsIDB4MDgsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChMb2Nh bDAsIExvY2FsMiwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExv Y2FsMiwgSW5kZXggKEJJRjAsIDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKCJcbiIsIEluZGV4IChCSUYwLCAweDBBKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlICgiTElPTlxuIiwgSW5kZXggKEJJRjAsIDB4MEIpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKENUSUQsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmIChMRXF1YWwgKExvY2FsMCwgWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCJNUy0xNzFBeFxuIiwgSW5k ZXggKEJJRjAsIDB4MDkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgi TVNJIENvcnAuXG4iLCBJbmRleCAoQklGMCwgMHgwQykpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCI/TU9E RUxcbiIsIEluZGV4IChCSUYwLCAweDA5KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoIj9DVVNUT01FUlxuIiwgSW5kZXggKEJJRjAsIDB4MEMpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKFVQQlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBMb2Nh bDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgTG9jYWwxKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIExvY2FsMikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBMb2NhbDMpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoWmVybywgTG9jYWw0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKFplcm8sIExvY2FsNykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChN QlRTLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChMb2Nh bDAsIE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKFBPV1MsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDAsIE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo TUJDUywgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVx dWFsIChMb2NhbDEsIE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChMb2NhbDQsIDB4MDIs IExvY2FsNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPciAoTG9jYWw0LCBPbmUsIExvY2FsNCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1CTFMsIExvY2FsMCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCBPbmUpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPciAoTG9jYWw0LCAweDA0LCBMb2NhbDQpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQT1dTLCBMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCBPbmUpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKE1CQ1MsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoTUNVSCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKE1DVUwsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNoaWZ0TGVmdCAoTG9jYWwwLCAweDA4LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPciAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKExvY2FsMSwgMHhGRkZG KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lcywgTG9jYWwxKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDEsIEluZGV4IChTVEFULCBPbmUpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIElu ZGV4IChTVEFULCBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNQ1VILCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNQ1VMLCBMb2NhbDEpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoTG9jYWwwLCAweDA4LCBMb2NhbDAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChMb2NhbDAsIExvY2FsMSwg TG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYT3IgKExvY2FsMSwg MHhGRkZGLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChM RXF1YWwgKExvY2FsMSwgWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmVzLCBM b2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDEsIEluZGV4IChTVEFULCBPbmUp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKE1SQ0gsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoTVJDTCwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNoaWZ0TGVmdCAoTG9jYWwwLCAweDA4LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgT3IgKExvY2FsMCwgTG9jYWwyLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMiwgSW5kZXggKFNUQVQsIDB4MDIpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNVk9ILCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1WT0wsIExvY2FsMykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTaGlmdExlZnQgKExvY2FsMCwgMHgwOCwgTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChMb2NhbDAsIExvY2FsMywgTG9jYWwzKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDMsIEluZGV4IChTVEFULCAw eDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWw0LCBJbmRl eCAoU1RBVCwgWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4 NjQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSVZCUyAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBEZXZpY2UgKExJRDApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBEIikpCiAgICAgICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX0xJRCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE1ZRUMpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKExJRFMsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoTVBQQywgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChUSFJGLCBM b2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKExvY2FsMCwgT25lKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChTdWJ0cmFjdCAoUENPVSwgT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQT1dTLCBMb2NhbDApCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDAsIE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDQs IF5eXlNNQlMuSU5ESSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9j YWwwLCBeXl5TTUJTLklORFgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDA0LCBeXl5TTUJTLklOREkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwgXl5eU01CUy5JTkRYKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoU3VidHJhY3QgKFBDT1UsIE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1E4MCwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDgwLCBEQkc4KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfUTgxLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4ODEsIERCRzgpCiAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIFRIRkcpCiAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChPbmUsIFRIUkYpCiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5Q MDAxLCAweDgwKQogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfUFIuUDAwMiwgMHg4 MCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1E4 MiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDgyLCBEQkc4KQogICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoT25lLCBUSEZHKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgVEhSRikK ICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1BSLlAwMDEsIDB4ODApCiAgICAgICAg ICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5QMDAyLCAweDgwKQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTgzLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 ODMsIERCRzgpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBMb2NhbDApCiAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQT1dTLCBMb2NhbDApCiAgICAgICAgICAgICAg ICAgICAgICAgIElmIChMRXF1YWwgKExvY2FsMCwgT25lKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgXkFEUDEuQUNQKQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KFplcm8sIF5BRFAxLkFDUCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgTm90aWZ5IChBRFAxLCAweDgwKQogICAgICAgICAgICAgICAgICAgICAgICBO b3RpZnkgKFxfUFIuUDAwMSwgMHg4MCkKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChc X1BSLlAwMDIsIDB4ODApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9RODQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg4NCwgREJHOCkKICAgICAgICAgICAgICAg ICAgICAgICAgTm90aWZ5IChMSUQwLCAweDgwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfUTg1LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4ODUsIERCRzgpCiAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIENUU0QpCiAgICAgICAgICAgICAgICAg ICAgICAgIE5vdGlmeSAoXF9UWi5USFJNLCAweDgwKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTg2LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4ODYsIERCRzgp CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9RODcs IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoMHg4NywgREJHOCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KFplcm8sIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1CVFMsIExvY2Fs MCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCBPbmUpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo T25lLCBeQURQMS5CRkxHKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChCQVQx LCAweDgwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKFplcm8sIF5BRFAxLkJGTEcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBO b3RpZnkgKEFEUDEsIDB4ODApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgx OSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoQkFUMSwgMHg4MSkKICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChBRFAx LCAweDgwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfUTg4LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKDB4ODgsIERCRzgpCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9RODksIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg4OSwgREJH OCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1E4 QSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDhBLCBEQkc4KQogICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoT25lLCBDVFNEKQogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfVFouVEhSTSwg MHg4MCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X1E4QiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDhCLCBEQkc4KQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUThDLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4OEMsIERCRzgp CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ROTAs IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoMHg5MCwgREJHOCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1FCNCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEI0LCBBUE1DKQogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQVBNUywgTG9jYWwxKQogICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoTG9jYWwxLCBEQkc4KQogICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoQW5kIChMb2NhbDEsIE9uZSksIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKExvY2FsMCwgXl5eUENFMi5WR0EuTENELl9ER1MpCiAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChTaGlmdFJpZ2h0IChMb2NhbDEsIE9uZSksIExvY2FsMSkKICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKEFuZCAoTG9jYWwxLCBPbmUpLCBMb2NhbDApCiAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlIChMb2NhbDAsIF5eXlBDRTIuVkdBLkNSVC5fREdTKQogICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoU2hpZnRSaWdodCAoTG9jYWwxLCBPbmUpLCBMb2NhbDEpCiAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChBbmQgKExvY2FsMSwgT25lKSwgTG9jYWwwKQog ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBeXl5QQ0UyLlZHQS5UVi5fREdT KQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoU2hpZnRSaWdodCAoTG9jYWwxLCBPbmUp LCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChBbmQgKExvY2FsMSwgT25l KSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBeXl5QQ0Uy LlZHQS5ERlAxLl9ER1MpCiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXl5eUENFMi5W R0EsIDB4ODApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKF9RQjUsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoMHhCNSwgREJHOCkKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1FCNiwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEI2LCBE Qkc4KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf UUI3LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKDB4QjcsIERCRzgpCiAgICAgICAgICAgICAgICAgICAgICAgIFdo aWxlIChMTm90IChJUkRZICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MTEsIENNRDEpCiAgICAgICAgICAgICAg ICAgICAgICAgIFdoaWxlIChMTm90IChJUkRZICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4ODIsIERBVDEpCiAg ICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXl5eUENFMi5WR0EuTENELCAweDg3KQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUUI4LCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKDB4QjgsIERCRzgpCiAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxlIChMTm90 IChJUkRZICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKDB4MTEsIENNRDEpCiAgICAgICAgICAgICAgICAgICAgICAg IFdoaWxlIChMTm90IChJUkRZICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4ODEsIERBVDEpCiAgICAgICAgICAg ICAgICAgICAgICAgIE5vdGlmeSAoXl5eUENFMi5WR0EuTENELCAweDg2KQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUUI5LCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4QjksIERCRzgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFAwUEMpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxNDAwMDQpCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChHUFJXICgweDA0LCAweDA0KSkKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFSMEMpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBSMEMpCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoQUM5NykKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDE0MDAwNSkKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKEdQUlcgKDB4MEMsIDB4MDQpKQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKE1DOTcpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxNDAwMDYpCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChHUFJXICgweDBDLCAweDA0KSkKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChVU0IxKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBOYW1lIChfQURSLCAweDAwMTMwMDAwKQogICAgICAgICAgICAgICAgTWV0aG9kIChf UzNELCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIElmIChMT3IgKExFcXVhbCAoT1NGTCAoKSwgT25lKSwgTEVxdWFsIChPU0ZMICgpLCAweDAy KSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MDIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg TWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHgwQiwgMHgwNCkpCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoVVNCMikKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDEzMDAwMSkKICAgICAgICAgICAgICAgIE1l dGhvZCAoX1MzRCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBJZiAoTE9yIChMRXF1YWwgKE9TRkwgKCksIE9uZSksIExFcXVhbCAoT1NGTCAo KSwgMHgwMikpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MDMpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4MEIsIDB4MDQpKQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFVTQjMpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxMzAwMDIpCiAgICAgICAgICAg ICAgICBNZXRob2QgKF9TM0QsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSWYgKExPciAoTEVxdWFsIChPU0ZMICgpLCBPbmUpLCBMRXF1YWwg KE9TRkwgKCksIDB4MDIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDAzKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDBCLCAweDA0KSkKICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChVU0I0KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMTMwMDAzKQogICAg ICAgICAgICAgICAgTWV0aG9kIChfUzNELCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIElmIChMT3IgKExFcXVhbCAoT1NGTCAoKSwgT25lKSwg TEVxdWFsIChPU0ZMICgpLCAweDAyKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwMykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHgwQiwgMHgw NCkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAo VVNCNSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDEzMDAw NCkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1MzRCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoTE9yIChMRXF1YWwgKE9TRkwgKCks IE9uZSksIExFcXVhbCAoT1NGTCAoKSwgMHgwMikpKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4 MEIsIDB4MDQpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBE ZXZpY2UgKEVVU0IpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4 MDAxMzAwMDUpCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TM0QsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKExPciAoTEVxdWFsIChP U0ZMICgpLCBPbmUpLCBMRXF1YWwgKE9TRkwgKCksIDB4MDIpKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAzKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChH UFJXICgweDBCLCAweDA0KSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAg ICAgICAgRGV2aWNlIChTQVRBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChf QURSLCAweDAwMTIwMDAwKQogICAgICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFxfR1BFLl9MMUYg KCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChTUFRNLCBCdWZmZXIg KDB4MTQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAg ICAweDc4LCAweDAwLCAweDAwLCAweDAwLCAweDBGLCAweDAwLCAweDAwLCAweDAwLCAKICAgICAg ICAgICAgICAgICAgICAvKiAwMDA4ICovICAgIDB4NzgsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MEYs IDB4MDAsIDB4MDAsIDB4MDAsIAogICAgICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gICAgMHgx RiwgMHgwMCwgMHgwMCwgMHgwMAogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIERl dmljZSAoUFJJRCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChf QURSLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0dUTSwgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoU1BUTSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUTSwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBOYW1lIChQUklTLCBaZXJvKQogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKE9TRkwgKCks IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHgzMiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hp bGUgKExBbmQgKExFcXVhbCAoUE1CWSwgT25lKSwgTG9jYWwwKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHhGQSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmIChfT1NJICgiV2luZG93cyAyMDA2IikpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4MzIsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTEFu ZCAoTEVxdWFsIChQTUJZLCBPbmUpLCBMb2NhbDApKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4RkEp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWwwKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKFplcm8sIFBSSVMpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgUFJJUykKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTQywgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoUFJJUykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIERldmlj ZSAoUF9EMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5h bWUgKF9BRFIsIFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKE5vdCAoTEVxdWFsIChQTVMxLCBaZXJvKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDBGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTmFt ZSAoUzEyUCwgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoMHgzMiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgV2hpbGUgKExBbmQgKExFcXVhbCAoUE1CWSwgT25lKSwgTG9jYWwwKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAo MHhGQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoWmVybywgUzEyUCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywg UzEyUCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfUFNDLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFMxMlApCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIERl dmljZSAoUF9EMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IE5hbWUgKF9BRFIsIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoTm90IChMRXF1YWwgKFBTUzEsIFplcm8pKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBO YW1lIChTMTJQLCBaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDMyLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBXaGlsZSAoTEFuZCAoTEVxdWFsIChQU0JZLCBPbmUpLCBMb2NhbDApKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVw ICgweEZBKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWww KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChaZXJvLCBTMTJQKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAz LCBTMTJQKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9QU0MsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUzEyUCkKICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBEZXZpY2UgKFNFQ0QpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0FEUiwgT25lKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0dU TSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoU1BUTSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1NUTSwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBOYW1lIChT RUNTLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChM RXF1YWwgKE9TRkwgKCksIDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgzMiwgTG9jYWwwKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgV2hpbGUgKExBbmQgKExFcXVhbCAoU01CWSwgT25lKSwgTG9jYWwwKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTbGVlcCAoMHhGQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNyZW1lbnQg KExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChfT1NJICgiV2luZG93cyAyMDA2 IikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKDB4MzIsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBXaGlsZSAoTEFuZCAoTEVxdWFsIChTTUJZLCBPbmUpLCBMb2NhbDApKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKDB4RkEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlY3Jl bWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFNFQ1MpCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgU0VD UykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BT QywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoU0VDUykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIERldmljZSAoU19EMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE5vdCAoTEVxdWFsIChTTVMxLCBaZXJvKSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgTmFtZSAoUzEyUCwgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfUFMwLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgzMiwgTG9jYWwwKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgV2hpbGUgKExBbmQgKExFcXVhbCAoU01CWSwgT25lKSwgTG9jYWww KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTbGVlcCAoMHhGQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNy ZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgUzEyUCkKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoMHgwMywgUzEyUCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfUFNDLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFMxMlAp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIERldmljZSAoU19EMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTm90IChMRXF1YWwgKFNTUzEsIFplcm8p KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBOYW1lIChTMTJQLCBaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDMyLCBMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTEFuZCAoTEVxdWFsIChTU0JZLCBPbmUpLCBMb2Nh bDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNsZWVwICgweEZBKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERl Y3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBTMTJQKQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDAzLCBTMTJQKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKF9QU0MsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUzEy UCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBTY29wZSAoXF9HUEUpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfTDFGLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFBSQzApCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChO b3QgKExFcXVhbCAoUE1TMSwgWmVybykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDFFKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9T Qi5QQ0kwLlNBVEEuUFJJRC5QX0QwLCBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoT25lLCBQUkMwKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoUFJDMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKE5vdCAoTEVxdWFsIChTTVMxLCBaZXJvKSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xl ZXAgKDB4MUUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuU0FUQS5TRUNELlNfRDAsIE9uZSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIFBSQzEpCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChQUkMyKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTm90IChMRXF1YWwg KFBTUzEsIFplcm8pKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxRSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5TQVRB LlBSSUQuUF9EMSwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwg UFJDMikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKFBSQzMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIChOb3QgKExFcXVhbCAoU1NTMSwgWmVybykpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDFFKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg IE5vdGlmeSAoXF9TQi5QQ0kwLlNBVEEuU0VDRC5TX0QxLCBPbmUpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoT25lLCBQUkMzKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAg ICAgICAgICBEZXZpY2UgKFNNQlMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUg KF9BRFIsIDB4MDAxNDAwMDApCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFNNQlMs IFBDSV9Db25maWcsIFplcm8sIDB4MDEwMCkKICAgICAgICAgICAgICAgIEZpZWxkIChTTUJTLCBB bnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4MDgpLCAKICAgICAgICAgICAgICAgICAgICBSRVYsICAg IDgsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEY4KSwgCiAgICAgICAg ICAgICAgICAgICAgSU5ESSwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4RkYpLCAKICAgICAgICAgICAgICAgICAgICBJTkRYLCAgIDEKICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgU2NvcGUgKFxfR1BFKQogICAgICAg IHsKICAgICAgICAgICAgTWV0aG9kIChfTDE4LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5QQ0UyLCAweDAyKQogICAgICAg ICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuUENFMywgMHgwMikKICAgICAgICAgICAgICAgIE5v dGlmeSAoXF9TQi5QQ0kwLlBDRTQsIDB4MDIpCiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0Iu UENJMC5QQ0U1LCAweDAyKQogICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuUENFNiwg MHgwMikKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlBDRTcsIDB4MDIpCiAgICAg ICAgICAgICAgICBOb3RpZnkgKFxfU0IuUFdSQiwgMHgwMikKICAgICAgICAgICAgfQoKICAgICAg ICAgICAgTWV0aG9kIChfTDFCLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5TQkFaLCAweDAyKQogICAgICAgICAgICAgICAg Tm90aWZ5IChcX1NCLlBXUkIsIDB4MDIpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhv ZCAoX0wwNCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg Tm90aWZ5IChcX1NCLlBDSTAuUDBQQywgMHgwMikKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9T Qi5QV1JCLCAweDAyKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9MMEMsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9T Qi5QQ0kwLkFDOTcsIDB4MDIpCiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5NQzk3 LCAweDAyKQogICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBXUkIsIDB4MDIpCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0wwQiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuVVNCMSwgMHgwMikKICAg ICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlVTQjIsIDB4MDIpCiAgICAgICAgICAgICAg ICBOb3RpZnkgKFxfU0IuUENJMC5VU0IzLCAweDAyKQogICAgICAgICAgICAgICAgTm90aWZ5IChc X1NCLlBDSTAuVVNCNCwgMHgwMikKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlVT QjUsIDB4MDIpCiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5FVVNCLCAweDAyKQog ICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBXUkIsIDB4MDIpCiAgICAgICAgICAgIH0KICAg ICAgICB9CgogICAgICAgIERldmljZSAoUFdSQikKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUg KF9ISUQsIEVpc2FJZCAoIlBOUDBDMEMiKSkKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHhBQSkK ICAgICAgICAgICAgTmFtZSAoX1NUQSwgMHgwQikKICAgICAgICB9CiAgICB9CgogICAgU2NvcGUg KF9TQikKICAgIHsKICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBJUlEsIFN5c3RlbUlPLCAweDBD MDAsIDB4MDIpCiAgICAgICAgRmllbGQgKFBJUlEsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUp CiAgICAgICAgewogICAgICAgICAgICBQSURYLCAgIDgsIAogICAgICAgICAgICBQREFULCAgIDgK ICAgICAgICB9CgogICAgICAgIEluZGV4RmllbGQgKFBJRFgsIFBEQVQsIEJ5dGVBY2MsIE5vTG9j aywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBQSVJBLCAgIDgsIAogICAgICAgICAg ICBQSVJCLCAgIDgsIAogICAgICAgICAgICBQSVJDLCAgIDgsIAogICAgICAgICAgICBQSVJELCAg IDgsIAogICAgICAgICAgICBQSVJTLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHgwOSksIAogICAgICAgICAgICBQSVJFLCAgIDgsIAogICAgICAgICAgICBQSVJGLCAgIDgsIAog ICAgICAgICAgICBQSVJHLCAgIDgsIAogICAgICAgICAgICBQSVJILCAgIDgKICAgICAgICB9Cgog ICAgICAgIE1ldGhvZCAoSVJRQywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAg ICAgIFN0b3JlIChaZXJvLCBQSVJBKQogICAgICAgICAgICBTdG9yZSAoWmVybywgUElSQikKICAg ICAgICAgICAgU3RvcmUgKFplcm8sIFBJUkMpCiAgICAgICAgICAgIFN0b3JlIChaZXJvLCBQSVJE KQogICAgICAgICAgICBTdG9yZSAoWmVybywgUElSRSkKICAgICAgICAgICAgU3RvcmUgKFplcm8s IFBJUkYpCiAgICAgICAgICAgIFN0b3JlIChaZXJvLCBQSVJHKQogICAgICAgICAgICBTdG9yZSAo WmVybywgUElSSCkKICAgICAgICB9CgogICAgICAgIE5hbWUgKEJVRkEsIFJlc291cmNlVGVtcGxh dGUgKCkKICAgICAgICB7CiAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVk LCApCiAgICAgICAgICAgICAgICB7MTV9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChJUFJBLCBS ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgewogICAgICAgICAgICBJUlEgKExldmVsLCBBY3Rp dmVMb3csIFNoYXJlZCwgKQogICAgICAgICAgICAgICAgezUsMTAsMTF9CiAgICAgICAgfSkKICAg ICAgICBOYW1lIChJUFJCLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgewogICAgICAgICAg ICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQogICAgICAgICAgICAgICAgezUsMTAs MTF9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChJUFJDLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAg ICAgICAgewogICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQogICAg ICAgICAgICAgICAgezUsMTAsMTF9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChJUFJELCBSZXNv dXJjZVRlbXBsYXRlICgpCiAgICAgICAgewogICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVM b3csIFNoYXJlZCwgKQogICAgICAgICAgICAgICAgezUsMTAsMTF9CiAgICAgICAgfSkKICAgICAg ICBEZXZpY2UgKExOS0EpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQg KCJQTlAwQzBGIikpCiAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkKICAgICAgICAgICAgTWV0 aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBJZiAoUElSQSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MEIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUlMsIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoUFJTQSkKICAgICAgICAg ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgUElSQSkKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRkEsIE9uZSwgSVJRWCkKICAgICAg ICAgICAgICAgIFNoaWZ0TGVmdCAoT25lLCBQSVJBLCBJUlFYKQogICAgICAgICAgICAgICAgUmV0 dXJuIChCVUZBKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVs ZCAoQXJnMCwgT25lLCBJUkEpCiAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSQSwg TG9jYWwwKQogICAgICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAgICAgICAgICAg ICBTdG9yZSAoTG9jYWwwLCBQSVJBKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBE ZXZpY2UgKExOS0IpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQ TlAwQzBGIikpCiAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDIpCiAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg SWYgKFBJUkIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDBCKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkKICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBSU0IpCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFBJUkIpCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUZBLCBPbmUsIElSUVgpCiAgICAgICAg ICAgICAgICBTaGlmdExlZnQgKE9uZSwgUElSQiwgSVJRWCkKICAgICAgICAgICAgICAgIFJldHVy biAoQlVGQSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQg KEFyZzAsIE9uZSwgSVJBKQogICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChJUkEsIExv Y2FsMCkKICAgICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAg U3RvcmUgKExvY2FsMCwgUElSQikKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2 aWNlIChMTktDKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5Q MEMwRiIpKQogICAgICAgICAgICBOYW1lIChfVUlELCAweDAzKQogICAgICAgICAgICBNZXRob2Qg KF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElm IChQSVJDKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw QikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BSUywgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChQUlNDKQogICAgICAgICAgICB9 CgogICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBQSVJDKQogICAgICAgICAgICB9CgogICAg ICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGQSwgT25lLCBJUlFYKQogICAgICAgICAg ICAgICAgU2hpZnRMZWZ0IChPbmUsIFBJUkMsIElSUVgpCiAgICAgICAgICAgICAgICBSZXR1cm4g KEJVRkEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChB cmcwLCBPbmUsIElSQSkKICAgICAgICAgICAgICAgIEZpbmRTZXRSaWdodEJpdCAoSVJBLCBMb2Nh bDApCiAgICAgICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgIFN0 b3JlIChMb2NhbDAsIFBJUkMpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmlj ZSAoTE5LRCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBD MEYiKSkKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwNCkKICAgICAgICAgICAgTWV0aG9kIChf U1RBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAo UElSRCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIp CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoUFJTRCkKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgUElSRCkKICAgICAgICAgICAgfQoKICAgICAg ICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRkEsIE9uZSwgSVJRWCkKICAgICAgICAgICAg ICAgIFNoaWZ0TGVmdCAoT25lLCBQSVJELCBJUlFYKQogICAgICAgICAgICAgICAgUmV0dXJuIChC VUZBKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJn MCwgT25lLCBJUkEpCiAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSQSwgTG9jYWww KQogICAgICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAgICAgICAgICAgICBTdG9y ZSAoTG9jYWwwLCBQSVJEKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2Ug KExOS0UpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBG IikpCiAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDUpCiAgICAgICAgICAgIE1ldGhvZCAoX1NU QSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFBJ UkUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBSU0UpCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFBJUkUpCiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUZBLCBPbmUsIElSUVgpCiAgICAgICAgICAgICAg ICBTaGlmdExlZnQgKE9uZSwgUElSRSwgSVJRWCkKICAgICAgICAgICAgICAgIFJldHVybiAoQlVG QSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAs IE9uZSwgSVJBKQogICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChQSVJFLCBMb2NhbDAp CiAgICAgICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgIFN0b3Jl IChMb2NhbDAsIFBJUkUpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmljZSAo TE5LRikKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYi KSkKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMikKICAgICAgICAgICAgTWV0aG9kIChfU1RB LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoUElS RikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoUFJTRikKICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBTdG9yZSAoWmVybywgUElSRikKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRkEsIE9uZSwgSVJRWCkKICAgICAgICAgICAgICAg IFNoaWZ0TGVmdCAoT25lLCBQSVJGLCBJUlFYKQogICAgICAgICAgICAgICAgUmV0dXJuIChCVUZB KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwg T25lLCBJUkEpCiAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSQSwgTG9jYWwwKQog ICAgICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAgICAgICAgICAgICBTdG9yZSAo TG9jYWwwLCBQSVJGKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKExO S0cpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBGIikp CiAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDMpCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwg MCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFBJUkcp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBSU0cpCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgU3RvcmUgKFplcm8sIFBJUkcpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUZBLCBPbmUsIElSUVgpCiAgICAgICAgICAgICAgICBT aGlmdExlZnQgKE9uZSwgUElSRywgSVJRWCkKICAgICAgICAgICAgICAgIFJldHVybiAoQlVGQSkK ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAsIE9u ZSwgSVJBKQogICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChJUkEsIExvY2FsMCkKICAg ICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAgU3RvcmUgKExv Y2FsMCwgUElSRykKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChMTktI KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRiIpKQog ICAgICAgICAgICBOYW1lIChfVUlELCAweDA0KQogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChQSVJIKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwQikKICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChQUlNIKQogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKF9ESVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIFN0b3JlIChaZXJvLCBQSVJIKQogICAgICAgICAgICB9CgogICAgICAgICAgICBN ZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGQSwgT25lLCBJUlFYKQogICAgICAgICAgICAgICAgU2hp ZnRMZWZ0IChPbmUsIFBJUkgsIElSUVgpCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRkEpCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCBPbmUs IElSQSkKICAgICAgICAgICAgICAgIEZpbmRTZXRSaWdodEJpdCAoSVJBLCBMb2NhbDApCiAgICAg ICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgIFN0b3JlIChMb2Nh bDAsIFBJUkgpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQikK ICAgIHsKICAgICAgICBOYW1lIChYQ1BELCBaZXJvKQogICAgICAgIE5hbWUgKFhOUFQsIE9uZSkK ICAgICAgICBOYW1lIChYQ0FQLCAweDAyKQogICAgICAgIE5hbWUgKFhEQ1AsIDB4MDQpCiAgICAg ICAgTmFtZSAoWERDVCwgMHgwOCkKICAgICAgICBOYW1lIChYRFNULCAweDBBKQogICAgICAgIE5h bWUgKFhMQ1AsIDB4MEMpCiAgICAgICAgTmFtZSAoWExDVCwgMHgxMCkKICAgICAgICBOYW1lIChY TFNULCAweDEyKQogICAgICAgIE5hbWUgKFhTQ1AsIDB4MTQpCiAgICAgICAgTmFtZSAoWFNDVCwg MHgxOCkKICAgICAgICBOYW1lIChYU1NULCAweDFBKQogICAgICAgIE5hbWUgKFhSQ1QsIDB4MUMp CiAgICAgICAgTXV0ZXggKE1VVEUsIDB4MDApCiAgICAgICAgTWV0aG9kIChSQlBFLCAxLCBOb3RT ZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQWNxdWlyZSAoTVVURSwgMHgwM0U4KQog ICAgICAgICAgICBBZGQgKEFyZzAsIFBDSUIsIExvY2FsMCkKICAgICAgICAgICAgT3BlcmF0aW9u UmVnaW9uIChQQ0ZHLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgT25lKQogICAgICAgICAgICBGaWVs ZCAoUENGRywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgWENGRywgICA4CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJlbGVhc2UgKE1V VEUpCiAgICAgICAgICAgIFJldHVybiAoWENGRykKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAo UldQRSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIEFjcXVpcmUgKE1V VEUsIDB4MDNFOCkKICAgICAgICAgICAgQW5kIChBcmcwLCAweEZGRkZGRkZFLCBBcmcwKQogICAg ICAgICAgICBBZGQgKEFyZzAsIFBDSUIsIExvY2FsMCkKICAgICAgICAgICAgT3BlcmF0aW9uUmVn aW9uIChQQ0ZHLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwMikKICAgICAgICAgICAgRmllbGQg KFBDRkcsIFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIFhDRkcsICAgMTYKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmVsZWFzZSAoTVVU RSkKICAgICAgICAgICAgUmV0dXJuIChYQ0ZHKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChS RFBFLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQWNxdWlyZSAoTVVU RSwgMHgwM0U4KQogICAgICAgICAgICBBbmQgKEFyZzAsIDB4RkZGRkZGRkMsIEFyZzApCiAgICAg ICAgICAgIEFkZCAoQXJnMCwgUENJQiwgTG9jYWwwKQogICAgICAgICAgICBPcGVyYXRpb25SZWdp b24gKFBDRkcsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQogICAgICAgICAgICBGaWVsZCAo UENGRywgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIFhDRkcsICAgMzIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmVsZWFzZSAoTVVU RSkKICAgICAgICAgICAgUmV0dXJuIChYQ0ZHKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChX QlBFLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQWNxdWlyZSAoTVVU RSwgMHgwRkZGKQogICAgICAgICAgICBBZGQgKEFyZzAsIFBDSUIsIExvY2FsMCkKICAgICAgICAg ICAgT3BlcmF0aW9uUmVnaW9uIChQQ0ZHLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgT25lKQogICAg ICAgICAgICBGaWVsZCAoUENGRywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgWENGRywgICA4CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IFN0b3JlIChBcmcxLCBYQ0ZHKQogICAgICAgICAgICBSZWxlYXNlIChNVVRFKQogICAgICAgIH0K CiAgICAgICAgTWV0aG9kIChXV1BFLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAg ICAgICAgQWNxdWlyZSAoTVVURSwgMHgwM0U4KQogICAgICAgICAgICBBbmQgKEFyZzAsIDB4RkZG RkZGRkUsIEFyZzApCiAgICAgICAgICAgIEFkZCAoQXJnMCwgUENJQiwgTG9jYWwwKQogICAgICAg ICAgICBPcGVyYXRpb25SZWdpb24gKFBDRkcsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAyKQog ICAgICAgICAgICBGaWVsZCAoUENGRywgV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgWENGRywgICAxNgogICAgICAgICAgICB9CgogICAgICAg ICAgICBTdG9yZSAoQXJnMSwgWENGRykKICAgICAgICAgICAgUmVsZWFzZSAoTVVURSkKICAgICAg ICB9CgogICAgICAgIE1ldGhvZCAoV0RQRSwgMiwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAg ICAgICAgICAgIEFjcXVpcmUgKE1VVEUsIDB4MDNFOCkKICAgICAgICAgICAgQW5kIChBcmcwLCAw eEZGRkZGRkZDLCBBcmcwKQogICAgICAgICAgICBBZGQgKEFyZzAsIFBDSUIsIExvY2FsMCkKICAg ICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQQ0ZHLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgw NCkKICAgICAgICAgICAgRmllbGQgKFBDRkcsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBYQ0ZHLCAgIDMyCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIFN0b3JlIChBcmcxLCBYQ0ZHKQogICAgICAgICAgICBSZWxlYXNlIChNVVRFKQog ICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChSV0RQLCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAg IHsKICAgICAgICAgICAgQWNxdWlyZSAoTVVURSwgMHgwM0U4KQogICAgICAgICAgICBBbmQgKEFy ZzAsIDB4RkZGRkZGRkMsIEFyZzApCiAgICAgICAgICAgIEFkZCAoQXJnMCwgUENJQiwgTG9jYWww KQogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBDRkcsIFN5c3RlbU1lbW9yeSwgTG9jYWww LCAweDA0KQogICAgICAgICAgICBGaWVsZCAoUENGRywgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2Vy dmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFhDRkcsICAgMzIKICAgICAgICAgICAg fQoKICAgICAgICAgICAgQW5kIChYQ0ZHLCBBcmcyLCBMb2NhbDEpCiAgICAgICAgICAgIE9yIChM b2NhbDEsIEFyZzEsIFhDRkcpCiAgICAgICAgICAgIFJlbGVhc2UgKE1VVEUpCiAgICAgICAgfQoK ICAgICAgICBNZXRob2QgKFJQTUUsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAg ICAgICBBZGQgKEFyZzAsIDB4ODQsIExvY2FsMCkKICAgICAgICAgICAgU3RvcmUgKFJEUEUgKExv Y2FsMCksIExvY2FsMSkKICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwxLCBPbmVzKSkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CiAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKExBbmQgKExv Y2FsMSwgMHgwMDAxMDAwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg V0RQRSAoTG9jYWwwLCBBbmQgKExvY2FsMSwgMHgwMDAxMDAwMCkpCiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIElmIChPU0NGKQogICAg ewogICAgICAgIFNjb3BlIChfU0IuUENJMCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKFNV UFAsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKENUUkwsIFplcm8pCiAgICAgICAgICAgIE1ldGhv ZCAoX09TQywgNCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg SWYgKExFcXVhbCAoQXJnMCwgQnVmZmVyICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAgIDB4NUIsIDB4NEQsIDB4 REIsIDB4MzMsIDB4RjcsIDB4MUYsIDB4MUMsIDB4NDAsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogMDAwOCAqLyAgICAweDk2LCAweDU3LCAweDc0LCAweDQxLCAweEMwLCAweDNELCAw eEQ3LCAweDY2CiAgICAgICAgICAgICAgICAgICAgICAgIH0pKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFyZzMsIFplcm8sIENEVzEpCiAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMywgMHgwNCwgQ0RXMikKICAg ICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChBcmczLCAweDA4LCBDRFczKQogICAg ICAgICAgICAgICAgICAgIFN0b3JlIChDRFcyLCBTVVBQKQogICAgICAgICAgICAgICAgICAgIFN0 b3JlIChDRFczLCBDVFJMKQogICAgICAgICAgICAgICAgICAgIElmIChMTm90RXF1YWwgKEFuZCAo U1VQUCwgMHgxNiksIDB4MTYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgQW5kIChDVFJMLCAweDFFKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgQW5kIChDVFJMLCAweDFELCBDVFJMKQogICAgICAgICAgICAgICAgICAgIElm IChOb3QgKEFuZCAoQ0RXMSwgT25lKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoQW5kIChDVFJMLCBPbmUpKSB7fQogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoQW5kIChDVFJMLCAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgRVBOTSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChPbmUsIERQUEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQgKENUUkwsIDB4MTApKSB7fQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKExOb3RFcXVhbCAoQXJnMSwg T25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9yIChD RFcxLCAweDA4LCBDRFcxKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgSWYgKExOb3RFcXVhbCAoQ0RXMywgQ1RSTCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBPciAoQ0RXMSwgMHgxMCwgQ0RXMSkKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFN0b3JlIChDVFJMLCBDRFczKQogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQXJnMykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBPciAoQ0RXMSwgMHgw NCwgQ0RXMSkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFyZzMpCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQikKICAgIHsK ICAgICAgICBTY29wZSAoUENJMCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKENSUywgUmVz b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBXb3JkQnVzTnVt YmVyIChSZXNvdXJjZVByb2R1Y2VyLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIFBvc0RlY29kZSwKICAg ICAgICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAg ICAgICAgICAgICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAg ICAgICAgICAgICAgICAgMHgwMEZGLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg ICAgICAgICAgICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQK ICAgICAgICAgICAgICAgICAgICAweDAxMDAsICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAg ICAgICAgICAgICAgICwsICkKICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAg ICAgICAgICAgICAweDBDRjgsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAg ICAgICAgICAgICAweDBDRjgsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAg ICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAg ICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgV29yZElPIChSZXNvdXJjZVByb2R1Y2VyLCBNaW5GaXhlZCwgTWF4 Rml4ZWQsIFBvc0RlY29kZSwgRW50aXJlUmFuZ2UsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAw LCAgICAgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4MDAwMCwg ICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MENGNywg ICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMCwg ICAgICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgw Q0Y4LCAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAsLCAsIFR5cGVT dGF0aWMpCiAgICAgICAgICAgICAgICBXb3JkSU8gKFJlc291cmNlUHJvZHVjZXIsIE1pbkZpeGVk LCBNYXhGaXhlZCwgUG9zRGVjb2RlLCBFbnRpcmVSYW5nZSwKICAgICAgICAgICAgICAgICAgICAw eDAwMDAsICAgICAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgMHgw RDAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHhG RkZGLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgw MDAwLCAgICAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAg ICAweEYzMDAsICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICwsICwg VHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2Vy LCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAg ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAg ICAgICAgICAgICAgICAgIDB4MDAwQTAwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAg ICAgICAgICAgICAgICAgIDB4MDAwQkZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAg ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0 CiAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAg ICAgICAgICAgICAgICAsLCAsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAg ICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZp eGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAg MHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4 MDAwQzAwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4 MDAwREZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4 MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAg ICAgMHgwMDAyMDAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAsLCBf WTBELCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBEV29y ZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQs IENhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAg ICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAg ICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAg ICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAg ICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs ICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgLCwgX1kwRSwgQWRkcmVzc1Jh bmdlTWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAgICAgICB9KQogICAgICAgICAgICBDcmVhdGVE V29yZEZpZWxkIChDUlMsIFxfU0IuUENJMC5fWTBELl9NSU4sIE1JTjUpCiAgICAgICAgICAgIENy ZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLl9ZMEQuX01BWCwgTUFYNSkKICAgICAgICAg ICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuX1kwRC5fTEVOLCBMRU41KQogICAg ICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChDUlMsIFxfU0IuUENJMC5fWTBFLl9NSU4sIE1JTjYp CiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLl9ZMEUuX01BWCwg TUFYNikKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuX1kwRS5f TEVOLCBMRU42KQogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlIChNRzFMLCBMb2NhbDApCiAgICAgICAg ICAgICAgICBJZiAoTG9jYWwwKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFN0b3JlIChNRzFCLCBNSU41KQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChNRzFMLCBMRU41 KQogICAgICAgICAgICAgICAgICAgIEFkZCAoTUlONSwgRGVjcmVtZW50IChMb2NhbDApLCBNQVg1 KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFN0b3JlIChNRzJCLCBNSU42KQog ICAgICAgICAgICAgICAgU3RvcmUgKE1HMkwsIExFTjYpCiAgICAgICAgICAgICAgICBTdG9yZSAo TUcyTCwgTG9jYWwwKQogICAgICAgICAgICAgICAgQWRkIChNSU42LCBEZWNyZW1lbnQgKExvY2Fs MCksIE1BWDYpCiAgICAgICAgICAgICAgICBSZXR1cm4gKENSUykKICAgICAgICAgICAgfQogICAg ICAgIH0KICAgIH0KCiAgICBOYW1lIChXT1RCLCBaZXJvKQogICAgTmFtZSAoV1NTQiwgWmVybykK ICAgIE5hbWUgKFdBWEIsIFplcm8pCiAgICBNZXRob2QgKF9QVFMsIDEsIE5vdFNlcmlhbGl6ZWQp CiAgICB7CiAgICAgICAgU3RvcmUgKEFyZzAsIERCRzgpCiAgICAgICAgUFRTIChBcmcwKQogICAg ICAgIFN0b3JlIChaZXJvLCBJbmRleCAoV0FLUCwgWmVybykpCiAgICAgICAgU3RvcmUgKFplcm8s IEluZGV4IChXQUtQLCBPbmUpKQogICAgICAgIElmIChMQW5kIChMRXF1YWwgKEFyZzAsIDB4MDQp LCBMRXF1YWwgKE9TRkwgKCksIDB4MDIpKSkKICAgICAgICB7CiAgICAgICAgICAgIFNsZWVwICgw eDBCQjgpCiAgICAgICAgfQoKICAgICAgICBTdG9yZSAoQVNTQiwgV1NTQikKICAgICAgICBTdG9y ZSAoQU9UQiwgV09UQikKICAgICAgICBTdG9yZSAoQUFYQiwgV0FYQikKICAgICAgICBTdG9yZSAo QXJnMCwgQVNTQikKICAgICAgICBTdG9yZSAoT1NGTCAoKSwgQU9UQikKICAgICAgICBTdG9yZSAo WmVybywgQUFYQikKICAgIH0KCiAgICBNZXRob2QgKF9XQUssIDEsIE5vdFNlcmlhbGl6ZWQpCiAg ICB7CiAgICAgICAgU2hpZnRMZWZ0IChBcmcwLCAweDA0LCBEQkc4KQogICAgICAgIFdBSyAoQXJn MCkKICAgICAgICBJZiAoQVNTQikKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChXU1NCLCBB U1NCKQogICAgICAgICAgICBTdG9yZSAoV09UQiwgQU9UQikKICAgICAgICAgICAgU3RvcmUgKFdB WEIsIEFBWEIpCiAgICAgICAgfQoKICAgICAgICBJZiAoRGVyZWZPZiAoSW5kZXggKFdBS1AsIFpl cm8pKSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChaZXJvLCBJbmRleCAoV0FLUCwgT25l KSkKICAgICAgICB9CiAgICAgICAgRWxzZQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKEFy ZzAsIEluZGV4IChXQUtQLCBPbmUpKQogICAgICAgIH0KCiAgICAgICAgUmV0dXJuIChXQUtQKQog ICAgfQoKICAgIE5hbWUgKF9TMCwgUGFja2FnZSAoMHgwNCkKICAgIHsKICAgICAgICBaZXJvLCAK ICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvCiAgICB9KQogICAgSWYg KFNTMSkKICAgIHsKICAgICAgICBOYW1lIChfUzEsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewog ICAgICAgICAgICBPbmUsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgIFplcm8KICAgICAgICB9KQogICAgfQoKICAgIElmIChTUzMpCiAgICB7CiAgICAg ICAgTmFtZSAoX1MzLCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgMHgwMywg CiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgWmVybwog ICAgICAgIH0pCiAgICB9CgogICAgSWYgKFNTNCkKICAgIHsKICAgICAgICBOYW1lIChfUzQsIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICAweDA0LCAKICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICBaZXJvCiAgICAgICAgfSkKICAgIH0K CiAgICBOYW1lIChfUzUsIFBhY2thZ2UgKDB4MDQpCiAgICB7CiAgICAgICAgMHgwNSwgCiAgICAg ICAgWmVybywgCiAgICAgICAgWmVybywgCiAgICAgICAgWmVybwogICAgfSkKICAgIE1ldGhvZCAo UFRTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIElmIChBcmcwKQogICAgICAgIHsK ICAgICAgICAgICAgTlBUUyAoQXJnMCkKICAgICAgICAgICAgU1BUUyAoQXJnMCkKICAgICAgICB9 CiAgICB9CgogICAgTWV0aG9kIChXQUssIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAg TldBSyAoQXJnMCkKICAgICAgICBTV0FLIChBcmcwKQogICAgfQoKICAgIFNjb3BlIChcX1BSLlAw MDEpCiAgICB7CiAgICAgICAgTmFtZSAoX1BDVCwgUGFja2FnZSAoMHgwMikKICAgICAgICB7CiAg ICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg ICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg ICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwg Ly8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS ZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg ICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAv LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBB ZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgfQogICAgICAgIH0pCiAg ICAgICAgTmFtZSAoX1BTUywgUGFja2FnZSAoMHgwNikKICAgICAgICB7CiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA5NjAsIAog ICAgICAgICAgICAgICAgMHgwMDAwODhCOCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDY0LCAK ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDksIAogICAgICAgICAgICAgICAgMHhFODIwMkM1MCwg CiAgICAgICAgICAgICAgICAweDAwMDAwNDUwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg UGFja2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDg5OCwg CiAgICAgICAgICAgICAgICAweDAwMDA3N0QxLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwNjQs IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwOSwgCiAgICAgICAgICAgICAgICAweEU4MjAyQzhF LCAKICAgICAgICAgICAgICAgIDB4MDAwMDA0OEUKICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwN0Qw LCAKICAgICAgICAgICAgICAgIDB4MDAwMDY4MDcsIAogICAgICAgICAgICAgICAgMHgwMDAwMDA2 NCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDA5LCAKICAgICAgICAgICAgICAgIDB4RTgyMDJD Q0MsIAogICAgICAgICAgICAgICAgMHgwMDAwMDRDQwogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA3 MDgsIAogICAgICAgICAgICAgICAgMHgwMDAwNTk1MiwgCiAgICAgICAgICAgICAgICAweDAwMDAw MDY0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDksIAogICAgICAgICAgICAgICAgMHhFODIw MkQwQSwgCiAgICAgICAgICAgICAgICAweDAwMDAwNTBBCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAw MDY0MCwgCiAgICAgICAgICAgICAgICAweDAwMDA0QkE5LCAKICAgICAgICAgICAgICAgIDB4MDAw MDAwNjQsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwOSwgCiAgICAgICAgICAgICAgICAweEU4 MjAyRDQ4LCAKICAgICAgICAgICAgICAgIDB4MDAwMDA1NDgKICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAw MDAwMzIwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDE3MEIsIAogICAgICAgICAgICAgICAgMHgw MDAwMDA2NCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDA5LCAKICAgICAgICAgICAgICAgIDB4 RTgyMDJGODAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDc4MAogICAgICAgICAgICB9CiAgICAg ICAgfSkKICAgICAgICBNZXRob2QgKF9QUEMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewog ICAgICAgICAgICBTdG9yZSAoU2l6ZU9mIChfUFNTKSwgXF9TQi5QQ0kwLlNCUkcuRUMuUENPVSkK ICAgICAgICAgICAgUmV0dXJuIChcX1NCLlBDSTAuU0JSRy5FQy5NUFBDICgpKQogICAgICAgIH0K CiAgICAgICAgTmFtZSAoX1BTRCwgUGFja2FnZSAoMHgwMSkKICAgICAgICB7CiAgICAgICAgICAg IFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDUsIAogICAg ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAg ICAgICAgIDB4MDAwMDAwRkQsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMgogICAgICAgICAg ICB9CiAgICAgICAgfSkKICAgIH0KCiAgICBTY29wZSAoXF9QUi5QMDAyKQogICAgewogICAgICAg IE5hbWUgKF9QQ1QsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgewogICAgICAgICAgICBSZXNvdXJj ZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4 ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lk dGgKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQK ICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAg ICAgICAgICAgICAgICAsKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVt cGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhX LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAog ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAg ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAg ICAgICAgICAgICwpCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKF9QU1Ms IFBhY2thZ2UgKDB4MDYpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwOTYwLCAKICAgICAgICAgICAgICAgIDB4 MDAwMDg4QjgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDA2NCwgCiAgICAgICAgICAgICAgICAw eDAwMDAwMDA5LCAKICAgICAgICAgICAgICAgIDB4RTgyMDJDNTAsIAogICAgICAgICAgICAgICAg MHgwMDAwMDQ1MAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA4OTgsIAogICAgICAgICAgICAgICAg MHgwMDAwNzdEMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDY0LCAKICAgICAgICAgICAgICAg IDB4MDAwMDAwMDksIAogICAgICAgICAgICAgICAgMHhFODIwMkM4RSwgCiAgICAgICAgICAgICAg ICAweDAwMDAwNDhFCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNikK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDdEMCwgCiAgICAgICAgICAgICAg ICAweDAwMDA2ODA3LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwNjQsIAogICAgICAgICAgICAg ICAgMHgwMDAwMDAwOSwgCiAgICAgICAgICAgICAgICAweEU4MjAyQ0NDLCAKICAgICAgICAgICAg ICAgIDB4MDAwMDA0Q0MKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA2 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwNzA4LCAKICAgICAgICAgICAg ICAgIDB4MDAwMDU5NTIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDA2NCwgCiAgICAgICAgICAg ICAgICAweDAwMDAwMDA5LCAKICAgICAgICAgICAgICAgIDB4RTgyMDJEMEEsIAogICAgICAgICAg ICAgICAgMHgwMDAwMDUwQQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA2NDAsIAogICAgICAgICAg ICAgICAgMHgwMDAwNEJBOSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDY0LCAKICAgICAgICAg ICAgICAgIDB4MDAwMDAwMDksIAogICAgICAgICAgICAgICAgMHhFODIwMkQ0OCwgCiAgICAgICAg ICAgICAgICAweDAwMDAwNTQ4CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAo MHgwNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDMyMCwgCiAgICAgICAg ICAgICAgICAweDAwMDAxNzBCLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwNjQsIAogICAgICAg ICAgICAgICAgMHgwMDAwMDAwOSwgCiAgICAgICAgICAgICAgICAweEU4MjAyRjgwLCAKICAgICAg ICAgICAgICAgIDB4MDAwMDA3ODAKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTWV0 aG9kIChfUFBDLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUg KFNpemVPZiAoX1BTUyksIFxfU0IuUENJMC5TQlJHLkVDLlBDT1UpCiAgICAgICAgICAgIFJldHVy biAoXF9TQi5QQ0kwLlNCUkcuRUMuTVBQQyAoKSkKICAgICAgICB9CgogICAgICAgIE5hbWUgKF9Q U0QsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA1KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDA1LCAKICAgICAgICAgICAgICAgIDB4MDAs IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZE LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAg ICB9Cn0KCg== ------=_Part_21132_12389965.1213714314136-- From owner-freebsd-acpi@FreeBSD.ORG Tue Jun 17 16:07:45 2008 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6762B106568C for ; Tue, 17 Jun 2008 16:07:45 +0000 (UTC) (envelope-from pisymbol@gmail.com) Received: from ik-out-1112.google.com (ik-out-1112.google.com [66.249.90.178]) by mx1.freebsd.org (Postfix) with ESMTP id BD2148FC30 for ; Tue, 17 Jun 2008 16:07:43 +0000 (UTC) (envelope-from pisymbol@gmail.com) Received: by ik-out-1112.google.com with SMTP id c30so5212579ika.3 for ; Tue, 17 Jun 2008 09:07:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:mime-version:content-type; bh=GQjEcBCepF+j1FHlsSNFNah+uzB9uHBfqlcZodUBLO8=; b=WJiQvTVyD8TyqW0Gc9i2pd19ylE+Cy8cmRsjvIm0p08SjL0ssFXsLenyntEY2NozM8 36eAXptnvn2Alg9Q0dOSqNWz2r1feXS+WwxUY+0FFkpYTmaiGKky28D1zYnsIVJx2B3a deJlRSbdV/69L1QoIHB0sgVThF5wgkInpXSA0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:mime-version:content-type; b=kJRPRsBdkOpoiKgt/zEicDx3MGUCZC7TmthzddddM5xldjOWAL2Tn8BfvaOOJTZaP3 a+0QxUgrdLAIlFLQOQjtiFUdh8nfpz7oaydjsRSUgRBLtyignX3odr2LAa/li8vyTFce mFFE32UsW7WUX5jaM4C8PYlJn67WHH6YqiAgE= Received: by 10.210.25.18 with SMTP id 18mr7849995eby.152.1213718862263; Tue, 17 Jun 2008 09:07:42 -0700 (PDT) Received: by 10.210.34.1 with HTTP; Tue, 17 Jun 2008 09:07:42 -0700 (PDT) Message-ID: <3c0b01820806170907h15a9f146nf404b78c82946884@mail.gmail.com> Date: Tue, 17 Jun 2008 12:07:42 -0400 From: "Alexander Sack" To: freebsd-acpi@freebsd.org MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_21357_6821029.1213718862257" X-Mailman-Approved-At: Tue, 17 Jun 2008 16:11:57 +0000 Cc: FreeBSD STABLE Subject: ACPI errors during boot on 7.0.0-RELEASE X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Jun 2008 16:07:45 -0000 ------=_Part_21357_6821029.1213718862257 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello: I've just installed FreeBSD-7.0-amd64 on my new MSI-171A (GX710A) notebook (AMD Turon X2 (dual core)/4GB RAM). I have flashed to the latest motherboard BIOS via the MSI website (1.10GA 7/25/2007). I'm seeing some ACPI errors on boot which I believe are relatively harmless but wanted to get confirmation from the list. Here are the pertinent error messages: CPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST After dumping the ASL, it defines an embedded controller (Device EC) with a bunch of methods but ACPI-CA complains that there is no OperationRegion handler for them. I see 7 error messages which I believe correspond to the 7 Method AML calls defined. Is this faulty ASL code on MSI's part or a regression bug? Its DSDT specifies ACPI compliance 1.0 I *think* (I'm a little rusty here). I've attached the just full ASL dump. I do notice that iasl gives me a compiler error but its seem outside the scope of my dmesg error output. I assume based on spec that this is the System Bus, PCI bus 0, south bridge, embedded controller, battery 1 (methods are for status, information, etc. etc.). Any feedback would be much appreciated? Thanks -aps ------=_Part_21357_6821029.1213718862257 Content-Type: application/octet-stream; name=iasl Content-Transfer-Encoding: base64 X-Attachment-Id: f_fhkot6po0 Content-Disposition: attachment; filename=iasl LyoKICBSU0QgUFRSOiBPRU09QUNQSUFNLCBBQ1BJX1Jldj0xLjB4ICgwKQoJUlNEVD0weGNmZmMw MDAwLCBja3N1bT0xMDcKICovCi8qCiAgUlNEVDogTGVuZ3RoPTY0LCBSZXZpc2lvbj0xLCBDaGVj a3N1bT04MywKCU9FTUlEPU1TSV9OQiwgT0VNIFRhYmxlIElEPU1FR0FCT09LLCBPRU0gUmV2aXNp b249MHg3MDAwNzI1LAoJQ3JlYXRvciBJRD1NU0ZULCBDcmVhdG9yIFJldmlzaW9uPTB4OTcKCUVu dHJpZXM9eyAweGNmZmMwMjAwLCAweGNmZmMwMzkwLCAweGNmZmMwM2YwLCAweGNmZmMwNDMwLCAw eGNmZmNlMDQwLCAweGNmZmM0MmYwLCAweGNmZmM0MzMwIH0KICovCi8qCiAgRkFDUDogTGVuZ3Ro PTEzMiwgUmV2aXNpb249MiwgQ2hlY2tzdW09NDIsCglPRU1JRD1NU0lfTkIsIE9FTSBUYWJsZSBJ RD1NRUdBQk9PSywgT0VNIFJldmlzaW9uPTB4NzAwMDcyNSwKCUNyZWF0b3IgSUQ9TVNGVCwgQ3Jl YXRvciBSZXZpc2lvbj0weDk3CiAJRkFDUz0weGNmZmNlMDAwLCBEU0RUPTB4Y2ZmYzA1YjAKCUlO VF9NT0RFTD1BUElDCglQcmVmZXJyZWRfUE1fUHJvZmlsZT1VbnNwZWNpZmllZCAoMCkKCVNDSV9J TlQ9OQoJU01JX0NNRD0weGIwLCBBQ1BJX0VOQUJMRT0weGUxLCBBQ1BJX0RJU0FCTEU9MHgxZSwg UzRCSU9TX1JFUT0weDAKCVBTVEFURV9DTlQ9MHhlMgoJUE0xYV9FVlRfQkxLPTB4ODAwLTB4ODAz CglQTTFhX0NOVF9CTEs9MHg4MDQtMHg4MDUKCVBNMl9DTlRfQkxLPTB4OGZmLTB4OGZmCglQTV9U TVJfQkxLPTB4ODA4LTB4ODBiCglHUEUwX0JMSz0weDgyMC0weDgyNwoJUF9MVkwyX0xBVD0xMDEg dXMsIFBfTFZMM19MQVQ9MTAwMSB1cwoJRkxVU0hfU0laRT0xMDI0LCBGTFVTSF9TVFJJREU9MTYK CURVVFlfT0ZGU0VUPTQsIERVVFlfV0lEVEg9MwoJREFZX0FMUk09MTMsIE1PTl9BTFJNPTAsIENF TlRVUlk9NTAKCUlBUENfQk9PVF9BUkNIPXtMRUdBQ1lfREVWLDgwNDJ9CglGbGFncz17V0JJTlZE LFBST0NfQzEsU0xQX0JVVFRPTixSVENfUzQsVE1SX1ZBTF9FWFR9CiAqLwovKgogIEZBQ1M6CUxl bmd0aD02NCwgSHdTaWc9MHgwMDAwMDAwMCwgRmlybV9XYWtlX1ZlYz0weDAwMDAwMDAwCglHbG9i YWxfTG9jaz0KCUZsYWdzPQoJVmVyc2lvbj0xCiAqLwovKgogIERTRFQ6IExlbmd0aD0xNTY3MCwg UmV2aXNpb249MSwgQ2hlY2tzdW09MTE3LAoJT0VNSUQ9MUFETkksIE9FTSBUYWJsZSBJRD0xQURO STAwMCwgT0VNIFJldmlzaW9uPTB4MCwKCUNyZWF0b3IgSUQ9SU5UTCwgQ3JlYXRvciBSZXZpc2lv bj0weDIwMDUxMTE3CiAqLwovKgogIEFQSUM6IExlbmd0aD05MiwgUmV2aXNpb249MSwgQ2hlY2tz dW09MTA0LAoJT0VNSUQ9TVNJX05CLCBPRU0gVGFibGUgSUQ9TUVHQUJPT0ssIE9FTSBSZXZpc2lv bj0weDcwMDA3MjUsCglDcmVhdG9yIElEPU1TRlQsIENyZWF0b3IgUmV2aXNpb249MHg5NwoJTG9j YWwgQVBJQyBBRERSPTB4ZmVlMDAwMDAKCUZsYWdzPXtQQy1BVH0KCglUeXBlPUxvY2FsIEFQSUMK CUFDUEkgQ1BVPTEKCUZsYWdzPXtFTkFCTEVEfQoJQVBJQyBJRD0wCgoJVHlwZT1Mb2NhbCBBUElD CglBQ1BJIENQVT0yCglGbGFncz17RU5BQkxFRH0KCUFQSUMgSUQ9MQoKCVR5cGU9SU8gQVBJQwoJ QVBJQyBJRD0yCglJTlQgQkFTRT0wCglBRERSPTB4MDAwMDAwMDBmZWMwMDAwMAoKCVR5cGU9SU5U IE92ZXJyaWRlCglCVVM9MAoJSVJRPTAKCUlOVFI9MgoJRmxhZ3M9e1BvbGFyaXR5PWNvbmZvcm1p bmcsIFRyaWdnZXI9Y29uZm9ybWluZ30KCglUeXBlPUlOVCBPdmVycmlkZQoJQlVTPTAKCUlSUT05 CglJTlRSPTkKCUZsYWdzPXtQb2xhcml0eT1hY3RpdmUtbG8sIFRyaWdnZXI9bGV2ZWx9CiAqLwov KgogIE1DRkc6IExlbmd0aD02MCwgUmV2aXNpb249MSwgQ2hlY2tzdW09MTY2LAoJT0VNSUQ9TVNJ X05CLCBPRU0gVGFibGUgSUQ9TUVHQUJPT0ssIE9FTSBSZXZpc2lvbj0weDcwMDA3MjUsCglDcmVh dG9yIElEPU1TRlQsIENyZWF0b3IgUmV2aXNpb249MHg5NwoKCUJhc2UgQWRkcmVzcz0gMHgwMDAw MDAwMGUwMDAwMDAwCglTZWdtZW50IEdyb3VwPSAweDAwMDAKCVN0YXJ0IEJ1cz0gMAoJRW5kIEJ1 cz0gMjU1CiAqLwovKgogIFNMSUM6IExlbmd0aD0zNzQsIFJldmlzaW9uPTEsIENoZWNrc3VtPTI0 MiwKCU9FTUlEPU1TSV9OQiwgT0VNIFRhYmxlIElEPU1FR0FCT09LLCBPRU0gUmV2aXNpb249MHg3 MDAwNzI1LAoJQ3JlYXRvciBJRD1NU0ZULCBDcmVhdG9yIFJldmlzaW9uPTB4OTcKICovCi8qCiAg T0VNQjogTGVuZ3RoPTk3LCBSZXZpc2lvbj0xLCBDaGVja3N1bT0xNzIsCglPRU1JRD1NU0lfTkIs IE9FTSBUYWJsZSBJRD1NRUdBQk9PSywgT0VNIFJldmlzaW9uPTB4NzAwMDcyNSwKCUNyZWF0b3Ig SUQ9TVNGVCwgQ3JlYXRvciBSZXZpc2lvbj0weDk3CiAqLwovKgogIEhQRVQ6IExlbmd0aD01Niwg UmV2aXNpb249MSwgQ2hlY2tzdW09MjUsCglPRU1JRD1NU0lfTkIsIE9FTSBUYWJsZSBJRD1PRU1I UEVULCBPRU0gUmV2aXNpb249MHg3MDAwNzI1LAoJQ3JlYXRvciBJRD1NU0ZULCBDcmVhdG9yIFJl dmlzaW9uPTB4OTcKCUhQRVQgTnVtYmVyPTIKCUFERFI9MHhmZWQwMDAwMDowWzhdIChNZW1vcnkp CUhXIFJldj0weDAKCUNvbXBhcml0b3JzPTMKCUNvdW50ZXIgU2l6ZT0wCglMZWdhY3kgSVJRIHJv dXRpbmcgY2FwYWJsZT17VFJVRX0KCVBDSSBWZW5kb3IgSUQ9MHgwMDAwCglNaW5pbWFsIFRpY2s9 MjAKICovCi8qCiAgU1NEVDogTGVuZ3RoPTc1NiwgUmV2aXNpb249MSwgQ2hlY2tzdW09MjMyLAoJ T0VNSUQ9QSBNIEksIE9FTSBUYWJsZSBJRD1QT1dFUk5PVywgT0VNIFJldmlzaW9uPTB4MSwKCUNy ZWF0b3IgSUQ9QU1ELCBDcmVhdG9yIFJldmlzaW9uPTB4MQogKi8KLyoKICogSW50ZWwgQUNQSSBD b21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTCBEaXNhc3NlbWJsZXIgdmVyc2lvbiAyMDA3MDMy MAogKgogKiBEaXNhc3NlbWJseSBvZiAvdG1wL2FjcGlkdW1wLjRsMm9MVSwgVHVlIEp1biAxNyAw ODowMToyMyAyMDA4CiAqCiAqCiAqIE9yaWdpbmFsIFRhYmxlIEhlYWRlcjoKICogICAgIFNpZ25h dHVyZSAgICAgICAgIkRTRFQiCiAqICAgICBMZW5ndGggICAgICAgICAgIDB4MDAwMDQwMDYgKDE2 MzkwKQogKiAgICAgUmV2aXNpb24gICAgICAgICAweDAxCiAqICAgICBPRU0gSUQgICAgICAgICAg ICIxQUROSSIKICogICAgIE9FTSBUYWJsZSBJRCAgICAgIjFBRE5JMDAwIgogKiAgICAgT0VNIFJl dmlzaW9uICAgICAweDAwMDAwMDAwICgwKQogKiAgICAgQ3JlYXRvciBJRCAgICAgICAiSU5UTCIK ICogICAgIENyZWF0b3IgUmV2aXNpb24gMHgyMDA1MTExNyAoNTM3MjAyOTY3KQogKi8KRGVmaW5p dGlvbkJsb2NrICgiL3RtcC9hY3BpZHVtcC5hbWwiLCAiRFNEVCIsIDEsICIxQUROSSIsICIxQURO STAwMCIsIDB4MDAwMDAwMDApCnsKICAgIE9wZXJhdGlvblJlZ2lvbiAoQUNNUywgU3lzdGVtSU8s IDB4NzIsIDB4MDIpCiAgICBGaWVsZCAoQUNNUywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkK ICAgIHsKICAgICAgICBJQ01TLCAgIDgsIAogICAgICAgIERDTVMsICAgOAogICAgfQoKICAgIElu ZGV4RmllbGQgKElDTVMsIERDTVMsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4MDEpLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgw NCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA4KSwgCiAgICAgICAgQlNfQSwgICAzMiwg CiAgICAgICAgUkVWMCwgICA4LCAKICAgICAgICBSRVYxLCAgIDgKICAgIH0KCiAgICBPcGVyYXRp b25SZWdpb24gKEFDQUYsIFN5c3RlbU1lbW9yeSwgQlNfQSwgMHgyMCkKICAgIEZpZWxkIChBQ0FG LCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgT0NDMCwgICAxLCAKICAg ICAgICBPQ0MxLCAgIDEsIAogICAgICAgIE9DQzIsICAgMSwgCiAgICAgICAgT0NDMywgICAxLCAK ICAgICAgICBPQ0M0LCAgIDEsIAogICAgICAgIE9DQzUsICAgMSwgCiAgICAgICAgT0NDNiwgICAx LCAKICAgICAgICBPQ0M3LCAgIDEsIAogICAgICAgIE9DQzgsICAgMSwgCiAgICAgICAgT0NDOSwg ICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwMiksIAogICAgICAgIFRQTVIsICAgMSwg CiAgICAgICAgU1RIUCwgICAxLCAKICAgICAgICBTSFBHLCAgIDEsIAogICAgICAgIE9TQ0YsICAg MSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDQpLCAKICAgICAgICBQQ0lFLCAgIDMyLCAK ICAgICAgICBIUEJTLCAgIDMyLCAKICAgICAgICBPQ00wLCAgIDQsIAogICAgICAgIE9DTTEsICAg NCwgCiAgICAgICAgT0NNMiwgICA0LCAKICAgICAgICBPQ00zLCAgIDQsIAogICAgICAgIE9DTTQs ICAgNCwgCiAgICAgICAgT0NNNSwgICA0LCAKICAgICAgICBPQ002LCAgIDQsIAogICAgICAgIE9D TTcsICAgNCwgCiAgICAgICAgT0NNOCwgICA0LCAKICAgICAgICBPQ005LCAgIDQsIAogICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDE0KSwgCiAgICAgICAgUDkyVCwgICA4CiAgICB9CgogICAgT3Bl cmF0aW9uUmVnaW9uIChDTVBULCBTeXN0ZW1JTywgMHgwQzUwLCAweDAzKQogICAgRmllbGQgKENN UFQsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgQ01JRCwgICA4LCAK ICAgICAgICAgICAgLCAgIDYsIAogICAgICAgIEdQQ1QsICAgMiwgCiAgICAgICAgR1AwSSwgICAx LCAKICAgICAgICBHUDFJLCAgIDEsIAogICAgICAgIEdQMkksICAgMSwgCiAgICAgICAgR1AzSSwg ICAxLCAKICAgICAgICBHUDRJLCAgIDEsIAogICAgICAgIEdQNUksICAgMSwgCiAgICAgICAgR1A2 SSwgICAxLCAKICAgICAgICBHUDdJLCAgIDEKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKFBD RkcsIFN5c3RlbU1lbW9yeSwgUENJRSwgMHgwMjAwMDAwMCkKICAgIEZpZWxkIChQQ0ZHLCBBbnlB Y2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4OTAw MjQpLCAKICAgICAgICBTVEI1LCAgIDMyLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg5ODA0 MiksIAogICAgICAgIFBUMEQsICAgMSwgCiAgICAgICAgUFQxRCwgICAxLCAKICAgICAgICBQVDJE LCAgIDEsIAogICAgICAgIFBUM0QsICAgMSwgCiAgICAgICAgUFQ0RCwgICAxLCAKICAgICAgICBQ VDVELCAgIDEsIAogICAgICAgIFBUNkQsICAgMSwgCiAgICAgICAgUFQ3RCwgICAxLCAKICAgICAg ICBQVDhELCAgIDEsIAogICAgICAgIFBUOUQsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQg KDB4QTAwMDQpLCAKICAgICAgICBTTUlFLCAgIDEsIAogICAgICAgIFNNTUUsICAgMSwgCiAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4QTAwMDgpLCAKICAgICAgICBSVklELCAgIDgsIAogICAgICAg ICAgICAgICAgT2Zmc2V0ICgweEEwMDE0KSwgCiAgICAgICAgU01CMSwgICAzMiwgCiAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4QTAwNzgpLCAKICAgICAgICAgICAgLCAgIDE0LCAKICAgICAgICBQ OTJFLCAgIDEKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKEJBUiwgU3lzdGVtTWVtb3J5LCBT VEI1LCAweDEwMDApCiAgICBGaWVsZCAoQkFSLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAg ICB7CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTIwKSwgCiAgICAgICAgICAgICwgICA3LCAK ICAgICAgICBQTUJZLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEyOCksIAogICAg ICAgIFBNUzAsICAgNCwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTI5KSwgCiAgICAgICAg UE1TMSwgICA0LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxMkMpLCAKICAgICAgICBERVQw LCAgIDQsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEzMCksIAogICAgICAgICAgICAgICAg T2Zmc2V0ICgweDEzMiksIAogICAgICAgIFBSQzAsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4MUEwKSwgCiAgICAgICAgICAgICwgICA3LCAKICAgICAgICBTTUJZLCAgIDEsIAogICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDFBOCksIAogICAgICAgIFNNUzAsICAgNCwgCiAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4MUE5KSwgCiAgICAgICAgU01TMSwgICA0LCAKICAgICAgICAgICAg ICAgIE9mZnNldCAoMHgxQUMpLCAKICAgICAgICBERVQxLCAgIDQsIAogICAgICAgICAgICAgICAg T2Zmc2V0ICgweDFCMCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDFCMiksIAogICAgICAg IFBSQzEsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjIwKSwgCiAgICAgICAgICAg ICwgICA3LCAKICAgICAgICBQU0JZLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDIy OCksIAogICAgICAgIFBTUzAsICAgNCwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjI5KSwg CiAgICAgICAgUFNTMSwgICA0LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgyMkMpLCAKICAg ICAgICBERVQyLCAgIDQsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDIzMCksIAogICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDIzMiksIAogICAgICAgIFBSQzIsICAgMSwgCiAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4MkEwKSwgCiAgICAgICAgICAgICwgICA3LCAKICAgICAgICBTU0JZLCAg IDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDJBOCksIAogICAgICAgIFNTUzAsICAgNCwg CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MkE5KSwgCiAgICAgICAgU1NTMSwgICA0LCAKICAg ICAgICAgICAgICAgIE9mZnNldCAoMHgyQUMpLCAKICAgICAgICBERVQzLCAgIDQsIAogICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDJCMCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDJCMiks IAogICAgICAgIFBSQzMsICAgMQogICAgfQoKICAgIE9wZXJhdGlvblJlZ2lvbiAoUE1JTywgU3lz dGVtSU8sIDB4MENENiwgMHgwMikKICAgIEZpZWxkIChQTUlPLCBCeXRlQWNjLCBOb0xvY2ssIFBy ZXNlcnZlKQogICAgewogICAgICAgIElOUE0sICAgOCwgCiAgICAgICAgREFQTSwgICA4CiAgICB9 CgogICAgSW5kZXhGaWVsZCAoSU5QTSwgREFQTSwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkK ICAgIHsKICAgICAgICAgICAgLCAgIDEsIAogICAgICAgIFRNMUUsICAgMSwgCiAgICAgICAgVE0y RSwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwMSksIAogICAgICAgICAgICAsICAg MSwgCiAgICAgICAgVE0xUywgICAxLCAKICAgICAgICBUTTJTLCAgIDEsIAogICAgICAgICAgICAg ICAgT2Zmc2V0ICgweDA0KSwgCiAgICAgICAgICAgICwgICA3LCAKICAgICAgICBTTFBTLCAgIDEs IAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA3KSwgCiAgICAgICAgICAgICwgICA3LCAKICAg ICAgICBDTFBTLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEwKSwgCiAgICAgICAg ICAgICwgICA2LCAKICAgICAgICBQV0RFLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgw eDFDKSwgCiAgICAgICAgICAgICwgICAzLCAKICAgICAgICBNS01FLCAgIDEsIAogICAgICAgIFBJ M0UsICAgMSwgCiAgICAgICAgUEkyRSwgICAxLCAKICAgICAgICBQSTFFLCAgIDEsIAogICAgICAg IFBJMEUsICAgMSwgCiAgICAgICAgICAgICwgICAzLCAKICAgICAgICBNS01TLCAgIDEsIAogICAg ICAgIFBJM1MsICAgMSwgCiAgICAgICAgUEkyUywgICAxLCAKICAgICAgICBQSTFTLCAgIDEsIAog ICAgICAgIFBJMFMsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjApLCAKICAgICAg ICBQMUVCLCAgIDE2LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgzNiksIAogICAgICAgICAg ICAsICAgNiwgCiAgICAgICAgR1Y2UCwgICAxLCAKICAgICAgICBHVjdQLCAgIDEsIAogICAgICAg ICAgICAsICAgMywgCiAgICAgICAgR00wUCwgICAxLCAKICAgICAgICBHTTFQLCAgIDEsIAogICAg ICAgIEdNMlAsICAgMSwgCiAgICAgICAgR00zUCwgICAxLCAKICAgICAgICBHTThQLCAgIDEsIAog ICAgICAgICAgICAsICAgMSwgCiAgICAgICAgR000UCwgICAxLCAKICAgICAgICBHTTVQLCAgIDEs IAogICAgICAgICAgICAsICAgMSwgCiAgICAgICAgR002UCwgICAxLCAKICAgICAgICBHTTdQLCAg IDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDM5KSwgCiAgICAgICAgR0VWMCwgICAxLCAK ICAgICAgICBHRVYxLCAgIDEsIAogICAgICAgIEdFVjIsICAgMSwgCiAgICAgICAgR0VWMywgICAx LCAKICAgICAgICBHRVY0LCAgIDEsIAogICAgICAgIEdFVjUsICAgMSwgCiAgICAgICAgR0VWNiwg ICAxLCAKICAgICAgICBHRVY3LCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDNCKSwg CiAgICAgICAgR1BYMCwgICAxLCAKICAgICAgICBHUFg0LCAgIDEsIAogICAgICAgIEdQWDUsICAg MSwgCiAgICAgICAgR1BYMSwgICAxLCAKICAgICAgICBHUFg2LCAgIDEsIAogICAgICAgIEdQWDcs ICAgMSwgCiAgICAgICAgR1BYMiwgICAxLCAKICAgICAgICBHUFgzLCAgIDEsIAogICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDU1KSwgCiAgICAgICAgU1BSRSwgICAxLCAKICAgICAgICAgICAgLCAg IDEsIAogICAgICAgICAgICAsICAgMSwgCiAgICAgICAgRVBOTSwgICAxLCAKICAgICAgICBEUFBG LCAgIDEsIAogICAgICAgIEZOR1MsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjEp LCAKICAgICAgICAgICAgLCAgIDcsIAogICAgICAgIFI2MTcsICAgMSwgCiAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4NjUpLCAKICAgICAgICAgICAgLCAgIDQsIAogICAgICAgIFJTVFUsICAgMSwg CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjgpLCAKICAgICAgICAgICAgLCAgIDMsIAogICAg ICAgIFRQREUsICAgMSwgCiAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNl dCAoMHg5MiksIAogICAgICAgICAgICAsICAgNywgCiAgICAgICAgR1Y3UywgICAxLCAKICAgICAg ICAgICAgICAgIE9mZnNldCAoMHg5NiksIAogICAgICAgIEdQOEksICAgMSwgCiAgICAgICAgR1A5 SSwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg5QSksIAogICAgICAgICAgICAsICAg NywgCiAgICAgICAgSEVDTywgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHhBOCksIAog ICAgICAgIFBJNEUsICAgMSwgCiAgICAgICAgUEk1RSwgICAxLCAKICAgICAgICBQSTZFLCAgIDEs IAogICAgICAgIFBJN0UsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QTkpLCAKICAg ICAgICBQSTRTLCAgIDEsIAogICAgICAgIFBJNVMsICAgMSwgCiAgICAgICAgUEk2UywgICAxLCAK ICAgICAgICBQSTdTLCAgIDEKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKFAxRTAsIFN5c3Rl bUlPLCBQMUVCLCAweDA0KQogICAgRmllbGQgKFAxRTAsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2Vy dmUpCiAgICB7CiAgICAgICAgICAgICwgICAxNCwgCiAgICAgICAgUEVXUywgICAxLCAKICAgICAg ICBXU1RBLCAgIDEsIAogICAgICAgICAgICAsICAgMTQsIAogICAgICAgIFBFV0QsICAgMQogICAg fQoKICAgIE1ldGhvZCAoQ19PQywgMCwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBTbGVl cCAoMHgxNCkKICAgICAgICBTdG9yZSAoMHgxMywgQ01JRCkKICAgICAgICBTdG9yZSAoWmVybywg R1BDVCkKICAgIH0KCiAgICBNZXRob2QgKFVfT0MsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAg ICAgICAgSWYgKExFcXVhbCAoT0NNMCwgQXJnMCkpCiAgICAgICAgewogICAgICAgICAgICBTdG9y ZSAoQXJnMSwgUFQwRCkKICAgICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKE9DTTEsIEFyZzAp KQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKEFyZzEsIFBUMUQpCiAgICAgICAgfQoKICAg ICAgICBJZiAoTEVxdWFsIChPQ00yLCBBcmcwKSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3Jl IChBcmcxLCBQVDJEKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoT0NNMywgQXJnMCkp CiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoQXJnMSwgUFQzRCkKICAgICAgICB9CgogICAg ICAgIElmIChMRXF1YWwgKE9DTTQsIEFyZzApKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUg KEFyZzEsIFBUNEQpCiAgICAgICAgfQoKICAgICAgICBJZiAoTEVxdWFsIChPQ001LCBBcmcwKSkK ICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChBcmcxLCBQVDVEKQogICAgICAgIH0KCiAgICAg ICAgSWYgKExFcXVhbCAoT0NNNiwgQXJnMCkpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAo QXJnMSwgUFQ2RCkKICAgICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKE9DTTcsIEFyZzApKQog ICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKEFyZzEsIFBUN0QpCiAgICAgICAgfQoKICAgICAg ICBJZiAoTEVxdWFsIChPQ004LCBBcmcwKSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChB cmcxLCBQVDhEKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoT0NNOSwgQXJnMCkpCiAg ICAgICAgewogICAgICAgICAgICBTdG9yZSAoQXJnMSwgUFQ5RCkKICAgICAgICB9CiAgICB9Cgog ICAgTWV0aG9kIChTUFRTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIElmIChMRXF1 YWwgKEFyZzAsIDB4MDMpKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKFplcm8sIFJTVFUp CiAgICAgICAgfQoKICAgICAgICBTdG9yZSAoT25lLCBDTFBTKQogICAgICAgIFN0b3JlIChPbmUs IFNMUFMpCiAgICAgICAgSWYgKExMZXNzRXF1YWwgKFJWSUQsIDB4MTMpKQogICAgICAgIHsKICAg ICAgICAgICAgU3RvcmUgKFplcm8sIFBXREUpCiAgICAgICAgfQoKICAgICAgICBJZiAoTEVxdWFs IChQOTJULCBaZXJvKSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChaZXJvLCBQSTBFKQog ICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoUDkyVCwgT25lKSkKICAgICAgICB7CiAgICAg ICAgICAgIFN0b3JlIChaZXJvLCBQSTFFKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAo UDkyVCwgMHgwMikpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoWmVybywgUEkyRSkKICAg ICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKFA5MlQsIDB4MDMpKQogICAgICAgIHsKICAgICAg ICAgICAgU3RvcmUgKFplcm8sIFBJM0UpCiAgICAgICAgfQoKICAgICAgICBJZiAoTEVxdWFsIChQ OTJULCAweDA0KSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChaZXJvLCBQSTRFKQogICAg ICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoUDkyVCwgMHgwNSkpCiAgICAgICAgewogICAgICAg ICAgICBTdG9yZSAoWmVybywgUEk1RSkKICAgICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKFA5 MlQsIDB4MDYpKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKFplcm8sIFBJNkUpCiAgICAg ICAgfQoKICAgICAgICBJZiAoTEVxdWFsIChQOTJULCAweDA3KSkKICAgICAgICB7CiAgICAgICAg ICAgIFN0b3JlIChaZXJvLCBQSTdFKQogICAgICAgIH0KCiAgICAgICAgSWYgKExMZXNzRXF1YWwg KFA5MlQsIDB4MDcpKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKE9uZSwgUDkyRSkKICAg ICAgICB9CiAgICB9CgogICAgT3BlcmF0aW9uUmVnaW9uIChDUzcyLCBTeXN0ZW1JTywgMHg3Miwg MHgwMikKICAgIEZpZWxkIChDUzcyLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgewog ICAgICAgIENJNzIsICAgOCwgCiAgICAgICAgQ083MywgICA4CiAgICB9CgogICAgSW5kZXhGaWVs ZCAoQ0k3MiwgQ083MywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICAg ICAgICAgIE9mZnNldCAoMHhGMCksIAogICAgICAgIFJUQ0MsICAgMQogICAgfQoKICAgIE1ldGhv ZCAoU1dBSywgMSwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBTdG9yZSAoT25lLCBIRUNP KQogICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4MDMpKQogICAgICAgIHsKICAgICAgICAgICAg SWYgKFJUQ0MpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlICgweENDLCBEQkc4 KQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgTm90aWZ5IChcX1NCLlBXUkIsIDB4MDIpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IFN0b3JlIChPbmUsIFJTVFUpCiAgICAgICAgfQoKICAgICAgICBTdG9yZSAoUEVXUywgUEVXUykK ICAgICAgICBJZiAoTExlc3NFcXVhbCAoUDkyVCwgMHgwNykpCiAgICAgICAgewogICAgICAgICAg ICBTdG9yZSAoWmVybywgUDkyRSkKICAgICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKFA5MlQs IFplcm8pKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKE9uZSwgUEkwRSkKICAgICAgICB9 CgogICAgICAgIElmIChMRXF1YWwgKFA5MlQsIE9uZSkpCiAgICAgICAgewogICAgICAgICAgICBT dG9yZSAoT25lLCBQSTFFKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoUDkyVCwgMHgw MikpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoT25lLCBQSTJFKQogICAgICAgIH0KCiAg ICAgICAgSWYgKExFcXVhbCAoUDkyVCwgMHgwMykpCiAgICAgICAgewogICAgICAgICAgICBTdG9y ZSAoT25lLCBQSTNFKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoUDkyVCwgMHgwNCkp CiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoT25lLCBQSTRFKQogICAgICAgIH0KCiAgICAg ICAgSWYgKExFcXVhbCAoUDkyVCwgMHgwNSkpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAo T25lLCBQSTVFKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoUDkyVCwgMHgwNikpCiAg ICAgICAgewogICAgICAgICAgICBTdG9yZSAoT25lLCBQSTZFKQogICAgICAgIH0KCiAgICAgICAg SWYgKExFcXVhbCAoUDkyVCwgMHgwNykpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoT25l LCBQSTdFKQogICAgICAgIH0KICAgIH0KCiAgICBNZXRob2QgKFRSTUQsIDEsIE5vdFNlcmlhbGl6 ZWQpCiAgICB7CiAgICAgICAgU3RvcmUgKEFyZzAsIFNQUkUpCiAgICAgICAgU3RvcmUgKEFyZzAs IFRQREUpCiAgICB9CgogICAgSWYgKE9DQzApCiAgICB7CiAgICAgICAgU2NvcGUgKF9HUEUpCiAg ICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9MMTMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIENfT0MgKCkKICAgICAgICAgICAgICAgIElmIChMRXF1 YWwgKEdQMEksIEdNMFApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5v dCAoR00wUCwgR00wUCkKICAgICAgICAgICAgICAgICAgICBVX09DIChaZXJvLCBHTTBQKQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIElmIChPQ0Mx KQogICAgewogICAgICAgIFNjb3BlIChfR1BFKQogICAgICAgIHsKICAgICAgICAgICAgTWV0aG9k IChfTDE0LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBD X09DICgpCiAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChHUDFJLCBHTTFQKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOb3QgKEdNMVAsIEdNMVApCiAgICAgICAgICAg ICAgICAgICAgVV9PQyAoT25lLCBHTTFQKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 CiAgICAgICAgfQogICAgfQoKICAgIElmIChPQ0MyKQogICAgewogICAgICAgIFNjb3BlIChfR1BF KQogICAgICAgIHsKICAgICAgICAgICAgTWV0aG9kIChfTDE1LCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDX09DICgpCiAgICAgICAgICAgICAgICBJZiAo TEVxdWFsIChHUDJJLCBHTTJQKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBOb3QgKEdNMlAsIEdNMlApCiAgICAgICAgICAgICAgICAgICAgVV9PQyAoMHgwMiwgR00yUCkK ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBJZiAo T0NDMykKICAgIHsKICAgICAgICBTY29wZSAoX0dQRSkKICAgICAgICB7CiAgICAgICAgICAgIE1l dGhvZCAoX0wxNiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgQ19PQyAoKQogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoR1AzSSwgR00zUCkpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTm90IChHTTNQLCBHTTNQKQogICAgICAg ICAgICAgICAgICAgIFVfT0MgKDB4MDMsIEdNM1ApCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KICAgICAgICB9CiAgICB9CgogICAgSWYgKE9DQzQpCiAgICB7CiAgICAgICAgU2NvcGUg KF9HUEUpCiAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9MMTksIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENfT0MgKCkKICAgICAgICAgICAgICAg IElmIChMRXF1YWwgKEdQNEksIEdNNFApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIE5vdCAoR000UCwgR000UCkKICAgICAgICAgICAgICAgICAgICBVX09DICgweDA0LCBH TTRQKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAg IElmIChPQ0M1KQogICAgewogICAgICAgIFNjb3BlIChfR1BFKQogICAgICAgIHsKICAgICAgICAg ICAgTWV0aG9kIChfTDFBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBDX09DICgpCiAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChHUDVJLCBHTTVQKSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOb3QgKEdNNVAsIEdNNVApCiAg ICAgICAgICAgICAgICAgICAgVV9PQyAoMHgwNSwgR001UCkKICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBJZiAoT0NDNikKICAgIHsKICAgICAgICBT Y29wZSAoX0dQRSkKICAgICAgICB7CiAgICAgICAgICAgIE1ldGhvZCAoX0wxQywgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ19PQyAoKQogICAgICAgICAg ICAgICAgSWYgKExFcXVhbCAoR1A2SSwgR002UCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgTm90IChHVjZQLCBHVjZQKQogICAgICAgICAgICAgICAgICAgIFVfT0MgKDB4 MDYsIEdWNlApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9 CgogICAgSWYgKE9DQzcpCiAgICB7CiAgICAgICAgU2NvcGUgKF9HUEUpCiAgICAgICAgewogICAg ICAgICAgICBNZXRob2QgKF9MMUQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIENfT0MgKCkKICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEdQN0ksIEdN N1ApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5vdCAoR1Y3UCwgR1Y3 UCkKICAgICAgICAgICAgICAgICAgICBVX09DICgweDA3LCBHVjdQKQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIElmIChPQ0M4KQogICAgewogICAg ICAgIFNjb3BlIChfR1BFKQogICAgICAgIHsKICAgICAgICAgICAgTWV0aG9kIChfTDE3LCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDX09DICgpCiAgICAg ICAgICAgICAgICBJZiAoTEVxdWFsIChHUDhJLCBHTThQKSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBOb3QgKEdNOFAsIEdNOFApCiAgICAgICAgICAgICAgICAgICAgVV9P QyAoMHgwOCwgR004UCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0K ICAgIH0KCiAgICBJZiAoT0NDOSkKICAgIHsKICAgICAgICBTY29wZSAoX0dQRSkKICAgICAgICB7 CiAgICAgICAgICAgIE1ldGhvZCAoX0wwRSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgQ19PQyAoKQogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoR1A5 SSwgWmVybykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVV9PQyAoMHgw OSwgT25lKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoK ICAgIE1ldGhvZCAoTlBUUywgMSwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgIH0KCiAgICBNZXRo b2QgKE5XQUssIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICB9CgogICAgTmFtZSAoRlpURiwg QnVmZmVyICgweDA3KQogICAgewogICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4RjUKICAgIH0pCiAgICBOYW1lIChEUDgwLCAweDgwKQogICAgTmFtZSAoRFA5MCwg MHg5MCkKICAgIE5hbWUgKFVNUlMsIE9uZSkKICAgIE5hbWUgKFBNQlMsIDB4MDgwMCkKICAgIE5h bWUgKFBNTE4sIDB4QTApCiAgICBOYW1lIChHUEJTLCBaZXJvKQogICAgTmFtZSAoR1BMTiwgWmVy bykKICAgIE5hbWUgKFNNQkIsIDB4MEIxMCkKICAgIE5hbWUgKFNNQkwsIDB4MTApCiAgICBOYW1l IChBUElDLCBPbmUpCiAgICBOYW1lIChQQ0lCLCAweEUwMDAwMDAwKQogICAgTmFtZSAoUENJTCwg MHgxMDAwMDAwMCkKICAgIE5hbWUgKEhUVEMsIFplcm8pCiAgICBPcGVyYXRpb25SZWdpb24gKEJJ T1MsIFN5c3RlbU1lbW9yeSwgMHhDRkZDRTA2NCwgMHhGRikKICAgIEZpZWxkIChCSU9TLCBCeXRl QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgewogICAgICAgIFNTMSwgICAgMSwgCiAgICAgICAg U1MyLCAgICAxLCAKICAgICAgICBTUzMsICAgIDEsIAogICAgICAgIFNTNCwgICAgMSwgCiAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4MDEpLCAKICAgICAgICBJT1NULCAgIDE2LCAKICAgICAgICBU T1BNLCAgIDMyLCAKICAgICAgICBST01TLCAgIDMyLCAKICAgICAgICBNRzFCLCAgIDMyLCAKICAg ICAgICBNRzFMLCAgIDMyLCAKICAgICAgICBNRzJCLCAgIDMyLCAKICAgICAgICBNRzJMLCAgIDMy LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxQyksIAogICAgICAgIERNQVgsICAgOCwgCiAg ICAgICAgSFBUQSwgICAzMiwgCiAgICAgICAgQ1BCMCwgICAzMiwgCiAgICAgICAgQ1BCMSwgICAz MiwgCiAgICAgICAgQ1BCMiwgICAzMiwgCiAgICAgICAgQ1BCMywgICAzMiwgCiAgICAgICAgQVNT QiwgICA4LCAKICAgICAgICBBT1RCLCAgIDgsIAogICAgICAgIEFBWEIsICAgMzIsIAogICAgICAg IFNNSUYsICAgOCwgCiAgICAgICAgRFRTRSwgICA4LCAKICAgICAgICBEVFMxLCAgIDgsIAogICAg ICAgIERUUzIsICAgOCwgCiAgICAgICAgTVBFTiwgICA4LCAKICAgICAgICBUUE1GLCAgIDgKICAg IH0KCiAgICBNZXRob2QgKFJSSU8sIDQsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgU3Rv cmUgKCJSUklPIiwgRGVidWcpCiAgICB9CgogICAgTWV0aG9kIChSRE1BLCAzLCBOb3RTZXJpYWxp emVkKQogICAgewogICAgICAgIFN0b3JlICgickRNQSIsIERlYnVnKQogICAgfQoKICAgIE5hbWUg KFBJQ00sIFplcm8pCiAgICBNZXRob2QgKF9QSUMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAg ICAgICAgSWYgKEFyZzApCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoMHhBQSwgREJHOCkK ICAgICAgICAgICAgXF9TQi5JUlFDICgpCiAgICAgICAgfQogICAgICAgIEVsc2UKICAgICAgICB7 CiAgICAgICAgICAgIFN0b3JlICgweEFDLCBEQkc4KQogICAgICAgIH0KCiAgICAgICAgU3RvcmUg KEFyZzAsIFBJQ00pCiAgICB9CgogICAgTmFtZSAoT1NWUiwgT25lcykKICAgIE1ldGhvZCAoT1NG TCwgMCwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBJZiAoTE5vdEVxdWFsIChPU1ZSLCBP bmVzKSkKICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoT1NWUikKICAgICAgICB9CgogICAg ICAgIElmIChMRXF1YWwgKFBJQ00sIFplcm8pKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUg KDB4QUMsIERCRzgpCiAgICAgICAgfQoKICAgICAgICBTdG9yZSAoT25lLCBPU1ZSKQogICAgICAg IElmIChDb25kUmVmT2YgKF9PU0ksIExvY2FsMSkpCiAgICAgICAgewogICAgICAgICAgICBJZiAo X09TSSAoIldpbmRvd3MgMjAwMSIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdG9y ZSAoWmVybywgT1NWUikKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBFbHNlCiAgICAg ICAgewogICAgICAgICAgICBJZiAoTUNUSCAoX09TLCAiTWljcm9zb2Z0IFdpbmRvd3MgTlQiKSkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3RvcmUgKDB4MDQsIE9TVlIpCiAgICAgICAg ICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAo TUNUSCAoX09TLCAiTWljcm9zb2Z0IFdpbmRvd3NNRTogTWlsbGVubml1bSBFZGl0aW9uIikpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDIsIE9TVlIpCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKE1DVEggKF9PUywgIkxpbnV4Iikp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDMsIE9TVlIp CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFJldHVy biAoT1NWUikKICAgIH0KCiAgICBNZXRob2QgKE1DVEgsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICB7 CiAgICAgICAgSWYgKExMZXNzIChTaXplT2YgKEFyZzApLCBTaXplT2YgKEFyZzEpKSkKICAgICAg ICB7CiAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICB9CgogICAgICAgIEFkZCAoU2l6 ZU9mIChBcmcwKSwgT25lLCBMb2NhbDApCiAgICAgICAgTmFtZSAoQlVGMCwgQnVmZmVyIChMb2Nh bDApIHt9KQogICAgICAgIE5hbWUgKEJVRjEsIEJ1ZmZlciAoTG9jYWwwKSB7fSkKICAgICAgICBT dG9yZSAoQXJnMCwgQlVGMCkKICAgICAgICBTdG9yZSAoQXJnMSwgQlVGMSkKICAgICAgICBXaGls ZSAoTG9jYWwwKQogICAgICAgIHsKICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAg ICAgICAgIElmIChMTm90RXF1YWwgKERlcmVmT2YgKEluZGV4IChCVUYwLCBMb2NhbDApKSwgRGVy ZWZPZiAoSW5kZXggKAogICAgICAgICAgICAgICAgQlVGMSwgTG9jYWwwKSkpKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KICAgICAgICB9 CgogICAgICAgIFJldHVybiAoT25lKQogICAgfQoKICAgIE5hbWUgKFBSV1AsIFBhY2thZ2UgKDB4 MDIpCiAgICB7CiAgICAgICAgWmVybywgCiAgICAgICAgWmVybwogICAgfSkKICAgIE1ldGhvZCAo R1BSVywgMiwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBTdG9yZSAoQXJnMCwgSW5kZXgg KFBSV1AsIFplcm8pKQogICAgICAgIFN0b3JlIChTaGlmdExlZnQgKFNTMSwgT25lKSwgTG9jYWww KQogICAgICAgIE9yIChMb2NhbDAsIFNoaWZ0TGVmdCAoU1MyLCAweDAyKSwgTG9jYWwwKQogICAg ICAgIE9yIChMb2NhbDAsIFNoaWZ0TGVmdCAoU1MzLCAweDAzKSwgTG9jYWwwKQogICAgICAgIE9y IChMb2NhbDAsIFNoaWZ0TGVmdCAoU1M0LCAweDA0KSwgTG9jYWwwKQogICAgICAgIElmIChBbmQg KFNoaWZ0TGVmdCAoT25lLCBBcmcxKSwgTG9jYWwwKSkKICAgICAgICB7CiAgICAgICAgICAgIFN0 b3JlIChBcmcxLCBJbmRleCAoUFJXUCwgT25lKSkKICAgICAgICB9CiAgICAgICAgRWxzZQogICAg ICAgIHsKICAgICAgICAgICAgU2hpZnRSaWdodCAoTG9jYWwwLCBPbmUsIExvY2FsMCkKICAgICAg ICAgICAgSWYgKExPciAoTEVxdWFsIChPU0ZMICgpLCBPbmUpLCBMRXF1YWwgKE9TRkwgKCksIDB4 MDIpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRmluZFNldExlZnRCaXQgKExvY2Fs MCwgSW5kZXggKFBSV1AsIE9uZSkpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKExvY2FsMCwgSW5kZXgg KFBSV1AsIE9uZSkpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFJldHVybiAoUFJX UCkKICAgIH0KCiAgICBOYW1lIChXQUtQLCBQYWNrYWdlICgweDAyKQogICAgewogICAgICAgIFpl cm8sIAogICAgICAgIFplcm8KICAgIH0pCiAgICBPcGVyYXRpb25SZWdpb24gKERFQjAsIFN5c3Rl bUlPLCBEUDgwLCBPbmUpCiAgICBGaWVsZCAoREVCMCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2 ZSkKICAgIHsKICAgICAgICBEQkc4LCAgIDgKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKERF QjEsIFN5c3RlbUlPLCBEUDkwLCAweDAyKQogICAgRmllbGQgKERFQjEsIFdvcmRBY2MsIE5vTG9j aywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgREJHOSwgICAxNgogICAgfQoKICAgIFNjb3BlIChf UFIpCiAgICB7CiAgICAgICAgUHJvY2Vzc29yIChQMDAxLCAweDAxLCAweDAwMDAwODEwLCAweDA2 KSB7fQogICAgICAgIFByb2Nlc3NvciAoUDAwMiwgMHgwMiwgMHgwMDAwMDAwMCwgMHgwMCkge30K ICAgICAgICBBbGlhcyAoUDAwMSwgQ1BVMSkKICAgICAgICBBbGlhcyAoUDAwMiwgQ1BVMikKICAg IH0KCiAgICBTY29wZSAoX1NCKQogICAgewogICAgICAgIE5hbWUgKFBSMDAsIFBhY2thZ2UgKDB4 MjEpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAweDAwMDJGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw MDAyRkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgTE5LRCwgCiAg ICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAyRkZGRiwgCiAgICAgICAg ICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0EsIAogICAgICAgICAgICAgICAgWmVy bwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4MDAwMkZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAg ICAgICAgICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwg CgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweDAwMDNGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5L RCwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAzRkZGRiwgCiAg ICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgTE5LQSwgCiAgICAgICAgICAgICAg ICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAzRkZGRiwgCiAgICAgICAgICAgICAgICAweDAy LCAKICAgICAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIDB4MDAwM0ZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAg ICBMTktDLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDRGRkZG LCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5LQSwgCiAgICAgICAg ICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA0RkZGRiwgCiAgICAgICAgICAgICAg ICBPbmUsIAogICAgICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHgwMDA0RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAg ICAgICAgIExOS0MsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAw NEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBMTktELCAKICAg ICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgw eDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDVGRkZGLCAKICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgICAgICBaZXJv CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgMHgwMDA1RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAg ICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg MHgwMDA1RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0Qs IAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNUZGRkYsIAogICAg ICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBMTktBLCAKICAgICAgICAgICAgICAg IFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDZGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgMHgwMDA2RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAg TE5LRCwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA2RkZGRiwg CiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0EsIAogICAgICAgICAg ICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNkZGRkYsIAogICAgICAgICAgICAgICAg MHgwMywgCiAgICAgICAgICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAweDAwMDdGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgTE5LRCwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA3 RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgTE5LQSwgCiAgICAg ICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA3RkZGRiwgCiAgICAgICAgICAg ICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICAgICAgWmVybwog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAg ICAgICAgICAgICBMTktDLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAw eDAwMTRGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5LQSwg CiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDE0RkZGRiwgCiAgICAg ICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgICAgICBa ZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgMHgwMDE0RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAK ICAgICAgICAgICAgICAgIExOS0MsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4MDAxNEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBM TktELCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTNGRkZGLCAK ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5LQSwgCiAgICAgICAgICAg ICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDEzRkZGRiwgCiAgICAgICAgICAgICAgICBP bmUsIAogICAgICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgMHgwMDEzRkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAg ICAgIExOS0MsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxM0ZG RkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBMTktELCAKICAgICAg ICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTJGRkZGLCAKICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5LRywgCiAgICAgICAgICAgICAgICBaZXJvCiAg ICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKEFSMDAsIFBhY2thZ2UgKDB4MjEp CiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAweDAwMDJGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAy RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAyRkZGRiwgCiAgICAgICAgICAg ICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMAog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4MDAwMkZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAw eDAwMDNGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAzRkZGRiwgCiAgICAg ICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAw eDEwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgMHgwMDAzRkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAK ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4MDAwM0ZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIDB4MTIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDRGRkZGLCAK ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA0RkZGRiwgCiAgICAgICAgICAgICAgICBP bmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDExCiAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgMHgwMDA0RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNEZG RkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDVGRkZGLCAKICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDExCiAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgMHgwMDA1RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw MDA1RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgMHgxMwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNUZGRkYsIAogICAgICAg ICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4 MTAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAweDAwMDZGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgMHgwMDA2RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA2RkZGRiwgCiAg ICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgMHgxMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNkZGRkYsIAogICAgICAgICAgICAgICAgMHgw MywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAweDAwMDdGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA3RkZG RiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA3RkZGRiwgCiAgICAgICAgICAgICAg ICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMQogICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIDB4MDAwN0ZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTIKICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAw MTRGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDE0RkZGRiwgCiAgICAgICAg ICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEx CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgMHgwMDE0RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9LCAK CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IDB4MDAxNEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNr YWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTNGRkZGLCAKICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAweDEwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgMHgwMDEzRkZGRiwgCiAgICAgICAgICAgICAgICBPbmUs IAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDExCiAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgMHgwMDEzRkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxM0ZGRkYs IAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgIDB4MTMKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTJGRkZGLCAKICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDE2CiAgICAg ICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKFBSMDEsIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAweDAwMDVGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA1RkZG RiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgTE5LRCwgCiAgICAgICAg ICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA1RkZGRiwgCiAgICAgICAgICAgICAg ICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0EsIAogICAgICAgICAgICAgICAgWmVybwogICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIDB4MDAwNUZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAg ICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfQogICAgICAg IH0pCiAgICAgICAgTmFtZSAoQVIwMSwgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNUZG RkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIDB4MTIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDVGRkZGLCAKICAgICAgICAgICAg ICAgIE9uZSwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTMKICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAweDAwMDVGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw MDA1RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1l IChQUjAyLCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAg ICBMTktELCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAog ICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBMTktBLCAKICAgICAgICAgICAg ICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywg CiAgICAgICAgICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAg fQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoQVIwMiwgUGFja2FnZSAoMHgwNCkKICAgICAgICB7 CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IDB4RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAg ICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEzCiAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZG LCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAweDExCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKFBSMDMs IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICBMTktELCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAg fSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgIExOS0Es IAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAg ICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICAgICAgWmVy bwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAg ICAgICAgICAgIExOS0MsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9CiAgICAg ICAgfSkKICAgICAgICBOYW1lIChBUjAzLCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZG LCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIE9u ZSwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAg ICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg IDB4MTIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoUFIwNCwgUGFja2Fn ZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIExOS0EsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4 RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgTE5LQiwgCiAgICAg ICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAg IDB4MDIsIAogICAgICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAg ICAgTE5LRCwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0KICAgICAgICB9KQog ICAgICAgIE5hbWUgKEFSMDQsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg IDB4MTAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICB9LCAK CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAg ICAgICAweDAzLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMwog ICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChQUjA1LCBQYWNrYWdlICgweDA0 KQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgTE5LQiwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAK ICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBMTktDLCAKICAgICAgICAgICAg ICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMiwg CiAgICAgICAgICAgICAgICBMTktELCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAg fSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBMTktB LCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAg TmFtZSAoQVIwNSwgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMQog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZG LCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4 MDMsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEwCiAgICAgICAg ICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKFBSMDYsIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBMTktD LCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNr YWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAg ICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgIExOS0QsIAogICAgICAgICAgICAgICAgWmVy bwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAg ICAgICAgICAgIExOS0EsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4 RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIExOS0IsIAogICAg ICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChB UjA2LCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAg ICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg IDB4MTAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfQog ICAgICAgIH0pCiAgICAgICAgTmFtZSAoUFIwNywgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4 RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIExOS0QsIAogICAg ICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAg ICBPbmUsIAogICAgICAgICAgICAgICAgTE5LQSwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAg ICAgTE5LQiwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAK ICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAg ICAgICBaZXJvCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKEFSMDcsIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfSwg CgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweEZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgMHgxMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAg ICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMQog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9CiAgICAgICAg fSkKICAgICAgICBOYW1lIChQUjBDLCBQYWNrYWdlICgweDAxKQogICAgICAgIHsKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA0RkZG RiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIExOS0UsIAogICAgICAg ICAgICAgICAgWmVybwogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChBUjBD LCBQYWNrYWdlICgweDAxKQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA0RkZGRiwgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxNAogICAgICAg ICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChQUlNBLCBSZXNvdXJjZVRlbXBsYXRlICgp CiAgICAgICAgewogICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQog ICAgICAgICAgICAgICAgezMsNCw1LDcsMTAsMTEsMTIsMTQsMTV9CiAgICAgICAgfSkKICAgICAg ICBBbGlhcyAoUFJTQSwgUFJTQikKICAgICAgICBBbGlhcyAoUFJTQSwgUFJTQykKICAgICAgICBB bGlhcyAoUFJTQSwgUFJTRCkKICAgICAgICBBbGlhcyAoUFJTQSwgUFJTRSkKICAgICAgICBOYW1l IChQUlNGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgewogICAgICAgICAgICBJUlEgKExl dmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQogICAgICAgICAgICAgICAgezl9CiAgICAgICAgfSkK ICAgICAgICBBbGlhcyAoUFJTQSwgUFJTRykKICAgICAgICBBbGlhcyAoUFJTQSwgUFJTSCkKICAg ICAgICBEZXZpY2UgKFBDSTApCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNh SWQgKCJQTlAwQTAzIikpCiAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxODAwMDApCiAgICAg ICAgICAgIE1ldGhvZCAoXkJOMDAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0 aG9kIChfQkJOLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBSZXR1cm4gKEJOMDAgKCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKF9VSUQs IFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChBUjAwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIFJldHVybiAoUFIwMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChO UFRTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIE1ldGhvZCAoTldBSywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFJTNDgpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdp b24gKE5CMiwgUENJX0NvbmZpZywgWmVybywgMHgwMTAwKQogICAgICAgICAgICAgICAgRmllbGQg KE5CMiwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDkwKSwgCiAgICAgICAgICAgICAgICAgICAg VU1CUywgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4OUIpLCAK ICAgICAgICAgICAgICAgICAgICBVTVNMLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgT2Zmc2V0ICgweEU0KSwgCiAgICAgICAgICAgICAgICAgICAgTUNEQSwgICAzMiwgCiAgICAg ICAgICAgICAgICAgICAgTkNJTiwgICAzMgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIERldmljZSAoVU1BWCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBO YW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzAyIikpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAo X1VJRCwgMHgyNCkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoVU1TTCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUgKENSUywgUmVzb3VyY2VUZW1wbGF0ZSAo KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJG aXhlZCAoUmVhZE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAg ICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAw MDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgX1kwMCkKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLlJTNDguVU1B WC5fWTAwLl9CQVMsIEJBUzEpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmll bGQgKENSUywgXF9TQi5QQ0kwLlJTNDguVU1BWC5fWTAwLl9MRU4sIExFTjEpCiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChVTUJTLCBCQVMxKQogICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoU2hpZnRMZWZ0IChVTVNMLCAweDE4KSwgTEVOMSkKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChDUlMpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFAwUDEpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwMTAwMDApCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKEFSMDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBSMDEpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIERldmljZSAoUENFMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFt ZSAoX0FEUiwgMHgwMDAyMDAwMCkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEdQUlcgKDB4MTgsIDB4MDQpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBJZiAoUElDTSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQVIwMikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoUFIwMikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBEZXZpY2UgKFZHQSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1l IChfQURSLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RPUywgMSwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChBcmcwLCBTV0lUKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgTmFtZSAoX0RPRCwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAwMTAxMDAsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDEwMTEwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDIwMCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAwMTAyMTAKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgIERldmljZSAoQ1JUKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMTAwKQogICAgICAgICAgICAgICAgICAgICAg ICBOYW1lIChfRENTLCAweDFGKQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfREdTLCBa ZXJvKQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU1MsIDEsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChMQ0QpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAw eDAxMTApCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9EQ1MsIDB4MUYpCiAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9ER1MsIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfRFNTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0JDTSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1RfMCwgWmVybykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChBcmcwLCBfVF8wKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKExFcXVhbCAoX1RfMCwgMHgxNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIExvY2FsMCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoTEVxdWFsIChfVF8wLCAweDFFKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmUs IExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoX1RfMCwgMHgy OCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAyLCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChfVF8wLCAweDMyKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChM RXF1YWwgKF9UXzAsIDB4M0MpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MDQsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoX1RfMCwg MHg0NikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl ICgweDA1LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVx dWFsIChfVF8wLCAweDUwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoMHgwNiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKF9UXzAsIDB4NUEpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MDcsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoX1RfMCwgMHg2NCkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDA4LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoMHgwOCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFdoaWxlIChMTm90ICheXl5eU0JSRy5FQy5JUkRZICgpKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoT25l KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDExLCBeXl5eU0JSRy5FQy5DTUQxKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgV2hpbGUgKExOb3QgKF5eXl5TQlJHLkVDLklSRFkgKCkpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKDB4ODAsIF5eXl5TQlJHLkVDLkRBVDEpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBXaGlsZSAoTE5vdCAoXl5eXlNCUkcuRUMuSVJEWSAoKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoTG9jYWwwLCBeXl5eU0JSRy5FQy5EQVQxKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9CUUMsIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlICheXl5eU0JSRy5FQy5HQlFDLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNdWx0aXBseSAoTG9jYWwwLCAweDBBLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBZGQgKExvY2FsMSwgMHgxNCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKFBCQ0wsIFBhY2thZ2UgKDB4MEIpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NTAsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgxNCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0 LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUUsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4M0MsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHg0NiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUwLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4NUEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2NAogICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9C Q0wsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEJDTCkKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChUVikK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIs IDB4MDIwMCkKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0RDUywgMHgxRikKICAgICAg ICAgICAgICAgICAgICAgICAgTmFtZSAoX0RHUywgWmVybykKICAgICAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfRFNTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIERldmljZSAoREZQMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDIxMCkKICAgICAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX0RDUywgMHgxRikKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0RH UywgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRFNTLCAxLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUgKFNXSVQs IFplcm8pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoR0RDUywgMHgwMikKICAgICAgICAgICAg ICAgICAgICBOYW1lIChHREdTLCBPbmUpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoR0RUUywg WmVybykKICAgICAgICAgICAgICAgICAgICBOYW1lIChHREZHLCBPbmUpCiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoQlFGMSwgWmVybykKICAgICAgICAgICAgICAgICAgICBOYW1lIChCUUYyLCBa ZXJvKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2Ug KFBDRTMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwMzAw MDApCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDE4LCAweDA0 KSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKFBJ Q00pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEFSMDMpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBSMDMpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmlj ZSAoUENFNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDA0 MDAwMCkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4MTgsIDB4 MDQpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo UElDTSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoQVIwNCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVy biAoUFIwNCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2 aWNlIChQQ0U1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAw MDUwMDAwKQogICAgICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHgxOCwg MHgwNCkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFJULCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm IChQSUNNKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChBUjA1KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChQUjA1KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBE ZXZpY2UgKFBDRTYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4 MDAwNjAwMDApCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDE4 LCAweDA0KSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQs IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKFBJQ00pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEFSMDYpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBSMDYpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChO RVdDKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIFpl cm8pCiAgICAgICAgICAgICAgICAgICAgU2NvcGUgKFxfR1BFKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfTDA3LCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoR1Y3UywgREJHOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChHVjdTKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChPbmUsIEdFVjcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKFplcm8sIEdWN1ApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgR0VWNykKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBHVjdQKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDY0KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAsIFplcm8pCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1JNViwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgU2NvcGUgKF5eUENFNikKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoTkVTUywgUENJX0Nv bmZpZywgMHg3MiwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICBGaWVsZCAoTkVTUywgQW55 QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDUsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU0xTVCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICAgMQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFBDRTcpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwNzAwMDApCiAgICAgICAgICAgICAg ICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDE4LCAweDA0KSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFSMDcpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBSMDcpCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoU0JBWikKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDE0MDAwMikKICAgICAgICAgICAg ICAgIE9wZXJhdGlvblJlZ2lvbiAoUENJLCBQQ0lfQ29uZmlnLCBaZXJvLCAweDAxMDApCiAgICAg ICAgICAgICAgICBGaWVsZCAoUENJLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NDIpLCAKICAg ICAgICAgICAgICAgICAgICBETlNQLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEROU08sICAg MSwgCiAgICAgICAgICAgICAgICAgICAgRU5TUiwgICAxCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHgxQiwgMHgwNCkpCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoU0JSRykKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDE0MDAwMykKICAgICAg ICAgICAgICAgIERldmljZSAoUElDKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDAwMDAiKSkKICAgICAgICAgICAgICAgICAgICBO YW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwMjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAyMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChE ZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBBMCwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEEwLCAgICAg ICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw LCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFncyAoKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgezJ9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBEZXZpY2UgKERNQUQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDIwMCIpKQogICAgICAgICAgICAg ICAgICAgIE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERNQSAoQ29tcGF0aWJpbGl0eSwgQnVzTWFzdGVy LCBUcmFuc2ZlcjgsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHs0fQogICAgICAgICAg ICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MTAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUx NiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MSwgICAgICAgICAgICAgLy8gUmFu Z2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgxLCAgICAgICAgICAg ICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAg ICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywg ICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAg ICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDg3LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwODcsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAo RGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODksICAgICAgICAgICAg IC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4OSwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDMsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDA4RiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMDhGLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVt CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdu bWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBM ZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAg ICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwLCAgICAg ICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw QzAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDIwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgRGV2aWNlIChUTVIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDEwMCIpKQogICAgICAgICAgICAgICAgICAg IE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDA0MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMDQwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBMZW5ndGgK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSVJR Tm9GbGFncyAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgezB9CiAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKFJUQzAp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlk ICgiUE5QMEIwMCIpKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9DUlMsIFJlc291cmNlVGVt cGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElP IChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MCwgICAgICAgICAg ICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwLCAg ICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFncyAoKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgezh9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKFNQS1IpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDgwMCIpKQogICAgICAgICAg ICAgICAgICAgIE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDA2MSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYxLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhp bXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFs aWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAv LyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoQ09QUikKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQ TlAwQzA0IikpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0 ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERl Y29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwLCAgICAgICAgICAgICAv LyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAsICAgICAg ICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAs ICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDEwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7MTN9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBEZXZpY2UgKEhQRVQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDEwMyIpKQogICAgICAgICAgICAg ICAgICAgIE5hbWUgKENSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZE9ubHksCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweEZFRDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFz ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMCwgICAgICAgICAvLyBBZGRy ZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX1kwMSkKICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChI UEJTKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLlNCUkcuSFBFVC5fWTAxLl9CQVMsIEhQ VCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEhQQlMsIEhQVCkKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChDUlMpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoXlBDSUUpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwMiIpKQogICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MTEpCiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkT25seSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4RTAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3Ro CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfWTAyKQogICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoQ1JTLCBcX1NCLlBDSTAuUENJRS5fWTAyLl9CQVMsIEJBUzEpCiAgICAgICAgICAgICAgICAg ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLlBDSUUuX1kwMi5fTEVOLCBM RU4xKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUENJQiwgQkFTMSkKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKFBDSUwsIExFTjEpCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQ1JTKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBEZXZpY2UgKE9NU0MpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwMiIpKQogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9VSUQsIFplcm8pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQ1JTLCBSZXNv dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBNZW1vcnkzMkZpeGVkIChSZWFkT25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBfWTAzKQogICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZp eGVkIChSZWFkT25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAg ICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAw MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBfWTA0KQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKEFQSUMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLlNC UkcuT01TQy5fWTAzLl9MRU4sIE1MMDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVh dGVEV29yZEZpZWxkIChDUlMsIFxfU0IuUENJMC5TQlJHLk9NU0MuX1kwMy5fQkFTLCBNQjAxKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCBcX1NCLlBD STAuU0JSRy5PTVNDLl9ZMDQuX0xFTiwgTUwwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAg IENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLlNCUkcuT01TQy5fWTA0Ll9CQVMsIE1C MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHhGRUMwMDAwMCwgTUIwMSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDEwMDAsIE1MMDEpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHhGRUUwMDAwMCwgTUIwMikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDEwMDAsIE1MMDIpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ1JTKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKF5eUk1F TSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNh SWQgKCJQTlAwQzAxIikpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgT25lKQogICAg ICAgICAgICAgICAgICAgIE5hbWUgKENSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdy aXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBB ZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQTAwMDAsICAgICAg ICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZE9ubHksCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0 aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX1kwNSkKICAgICAgICAgICAgICAgICAgICAg ICAgTWVtb3J5MzJGaXhlZCAoUmVhZE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMEUwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDAyMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgX1kwNikKICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhl ZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMCwgICAg ICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw MDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAg IF9ZMDcpCiAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRPbmx5LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNz IEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8g QWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ZMDgpCiAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBD cmVhdGVEV29yZEZpZWxkIChDUlMsIFxfU0IuUk1FTS5fWTA1Ll9CQVMsIEJBUzEpCiAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5STUVNLl9ZMDUuX0xF TiwgTEVOMSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCBc X1NCLlJNRU0uX1kwNi5fQkFTLCBCQVMyKQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVE V29yZEZpZWxkIChDUlMsIFxfU0IuUk1FTS5fWTA2Ll9MRU4sIExFTjIpCiAgICAgICAgICAgICAg ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5STUVNLl9ZMDcuX0xFTiwgTEVO MykKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCBcX1NCLlJN RU0uX1kwOC5fQkFTLCBCQVM0KQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZp ZWxkIChDUlMsIFxfU0IuUk1FTS5fWTA4Ll9MRU4sIExFTjQpCiAgICAgICAgICAgICAgICAgICAg ICAgIElmIChPU0ZMICgpKSB7fQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChNRzFCKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmIChMR3JlYXRlciAoTUcxQiwgMHgwMDBDMDAwMCkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo MHgwMDBDMDAwMCwgQkFTMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vi dHJhY3QgKE1HMUIsIEJBUzEsIExFTjEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDAwMEMwMDAwLCBCQVMxKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDAwMDIwMDAwLCBMRU4xKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChBZGQgKE1HMUIsIE1H MUwsIExvY2FsMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwgQkFTMikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdWJ0cmFjdCAoMHgwMDEwMDAwMCwgQkFTMiwgTEVOMikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgU3VidHJhY3QgKE1HMkIsIDB4MDAxMDAwMDAsIExFTjMpCiAgICAgICAg ICAgICAgICAgICAgICAgIEFkZCAoTUcyQiwgTUcyTCwgQkFTNCkKICAgICAgICAgICAgICAgICAg ICAgICAgU3VidHJhY3QgKFplcm8sIEJBUzQsIExFTjQpCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQ1JTKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBEZXZpY2UgKFJNU0MpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwMiIpKQogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9VSUQsIDB4MTApCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQ1JTLCBSZXNv dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAsICAg ICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAxMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MTAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11 bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIyLCAgICAgICAgICAgICAvLyBSYW5n ZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAg IC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRSwgICAgICAgICAg ICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MDYyLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwNjIsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjUsICAgICAgICAgICAgIC8vIFJhbmdl IE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NSwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAg ICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEIsICAg ICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDA3MiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMDcyLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwRSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERl Y29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwLCAgICAgICAgICAgICAv LyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAsICAgICAg ICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAs ICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwODQsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDA4NCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1l bnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsICAgICAgICAgICAgICAgLy8gTGVu Z3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAg IElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4OCwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg4 LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDhDLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOEMsICAgICAgICAgICAgIC8vIFJhbmdlIE1h eGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8g QWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAgICAgICAgICAgICAg IC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAg ICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTAs ICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDA5MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MTAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBBMiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWlu aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEEyLCAgICAgICAgICAgICAvLyBS YW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAg ICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRSwgICAgICAg ICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg ICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMEIxLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwQjEsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2Rl MTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAsICAgICAgICAgICAgIC8vIFJh bmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMCwgICAgICAgICAg ICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAg ICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAs ICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAg ICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDREMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwNEQwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8g KERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDBCLCAgICAgICAgICAg ICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MEIsICAg ICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDA0RDYsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDRENiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11 bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGln bm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8g TGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAg ICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMCwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw QzAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwQzE0LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVt CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMTQsICAgICAgICAgICAgIC8vIFJhbmdl IE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAg Ly8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAg ICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg ICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBD NTAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MEM1MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEM1MiwgICAgICAgICAgICAgLy8gUmFuZ2Ug TWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzUyLCAgICAgICAgICAgICAv LyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg ICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAg ICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwQzZDLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDBDNkMsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVj b2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDNkYsICAgICAgICAgICAgIC8v IFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEM2RiwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg ICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAp CiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MENEMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwQ0QwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVu dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5n dGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAg SU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQ0QyLCAgICAgICAg ICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDRDIs ICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDBDRDQsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MENENCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4 aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBB bGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAg Ly8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAg ICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MENENiwg ICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwQ0Q2LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwQ0Q4LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5p bXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDRDgsICAgICAgICAgICAgIC8vIFJh bmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg ICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAg ICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg ICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBfWTA5KQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVj b2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8v IFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMCwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg ICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBf WTBBKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11 bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGln bm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8g TGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfWTBCKQogICAgICAgICAgICAgICAg ICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MDAs ICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDkwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MTAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkxMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWlu aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTEwLCAgICAgICAgICAgICAvLyBS YW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAg ICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAg ICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg ICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHhGRTAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweEZFMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweEZGLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZp eGVkIChSZWFkT25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZCODAwMDAsICAg ICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgw MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBC YXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFk ZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfWTBDKQogICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlV29yZEZpZWxkIChDUlMsIFxfU0IuUENJMC5TQlJHLlJNU0MuX1kwOS5fTUlOLCBHUDAwKQog ICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLlNC UkcuUk1TQy5fWTA5Ll9NQVgsIEdQMDEpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5 dGVGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9ZMDkuX0xFTiwgR1AwTCkKICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKFBNQlMsIEdQMDApCiAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChQTUJTLCBHUDAxKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUE1M TiwgR1AwTCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFNNQkIpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAo Q1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9ZMEEuX01JTiwgR1AxMCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9Z MEEuX01BWCwgR1AxMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVs ZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9ZMEEuX0xFTiwgR1AxTCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChTTUJCLCBHUDEwKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKFNNQkIsIEdQMTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoU01CTCwgR1AxTCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKEdQQlMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVND Ll9ZMEIuX01JTiwgR1AyMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRG aWVsZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9ZMEIuX01BWCwgR1AyMSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5S TVNDLl9ZMEIuX0xFTiwgR1AyTCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChH UEJTLCBHUDIwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEdQQlMsIEdQMjEp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoR1BMTiwgR1AyTCkKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9ZMEMuX0JBUywgUk9NQikKICAgICAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9Z MEMuX0xFTiwgUk9NTCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFJPTVMsIFJPTUIp CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YnRyYWN0IChaZXJvLCBST01TLCBST01MKQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENSUykKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChQUzJLKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDAzMDMi KSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ0lELCAweDBCMDNEMDQxKQogICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoT25lLCAweDBBLCBMb2Nh bDApCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQgKElPU1QsIExvY2FsMCkpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwRikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg TmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDYwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwNjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAo RGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjQsICAgICAgICAgICAg IC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NCwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsxfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgRGV2aWNlIChQUzJNKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBGMDMiKSkKICAgICAgICAgICAg ICAgICAgICBOYW1lIChfQ0lELCAweDEzMEZEMDQxKQogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoT25lLCAweDBDLCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgIElmIChBbmQgKElPU1QsIExvY2FsMCkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVz b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSVJRTm9GbGFncyAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgezEyfQogICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgU2Nv cGUgKFwpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRmllbGQgKEJJT1Ms IEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgyMiksIAogICAgICAgICAgICAgICAg ICAgICAgICBPU1lTLCAgIDE2LCAKICAgICAgICAgICAgICAgICAgICAgICAgRkxTSCwgICA4LCAK ICAgICAgICAgICAgICAgICAgICAgICAgSU5TVCwgICA4LCAKICAgICAgICAgICAgICAgICAgICAg ICAgQ0FETCwgICAxNiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBBREwsICAgMTYsIAogICAg ICAgICAgICAgICAgICAgICAgICBDU1RFLCAgIDE2LCAKICAgICAgICAgICAgICAgICAgICAgICAg TlNURSwgICAxNgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBTY29wZSAoXF9UWikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKEtFTFYsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBBbmQgKEFyZzAsIDB4RkYsIExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICAgICAgTXVsdGlwbHkgKExvY2FsMCwgMHgwQSwgTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgICAgICBBZGQgKExvY2FsMCwgMHgwQUFDLCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgVGhlcm1hbFpvbmUgKFRIUk0pCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9UTVAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChc X1NCLlBDSTAuU0JSRy5FQy5NWUVDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChcX1NCLlBDSTAuU0JSRy5FQy5DVFNEKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKFplcm8sIFxfU0IuUENJMC5TQlJHLkVDLkNUU0QpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoS0VMViAoMHg2RSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAuU0JSRy5FQy5DUFVULCBMb2NhbDAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZCAoTG9jYWwwLCAweDAyLCBM b2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoS0VMViAo TG9jYWwwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChLRUxWICgweDJEKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JULCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEtFTFYgKDB4NjQpKQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIERldmljZSAoRUMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwOSIpKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9H UEUsIDB4MDYpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQ1RJRCwgWmVybykKICAgICAgICAg ICAgICAgICAgICBOYW1lIChNWUVDLCBPbmUpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQ1RT RCwgWmVybykKICAgICAgICAgICAgICAgICAgICBOYW1lIChUSFJGLCBaZXJvKQogICAgICAgICAg ICAgICAgICAgIE5hbWUgKFBDT1UsIFplcm8pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf UkVHLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwMykpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChBcmcxLCBNWUVDKQogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVy bywgQ1RTRCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUg KF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDA2MiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMDYyLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29k ZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY2LCAgICAgICAgICAgICAvLyBS YW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjYsICAgICAgICAg ICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAg ICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAx LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQog ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9u IChJTywgU3lzdGVtSU8sIDB4NjIsIDB4MDUpCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKElP LCBCeXRlQWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIERBVDEsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgT2Zmc2V0ICgweDA0KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIENNRDEsICAgOAogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKElPLCBCeXRlQWNj LCBMb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA0KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9V VFMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIElOUFMsICAgMQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChJUkRZLCAwLCBTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChM Tm90IChJTlBTKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoT1JEWSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoT1VUUykKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoRUMsIEVtYmVkZGVkQ29udHJvbCwgWmVy bywgMHhGRikKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoRUMsIEJ5dGVBY2MsIE5vTG9jaywg UHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBT TVBSLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBTTVNULCAgIDgsIAogICAgICAgICAg ICAgICAgICAgICAgICBTTUFELCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBTTUNNLCAg IDgsIAogICAgICAgICAgICAgICAgICAgICAgICBTTUQwLCAgIDI2NCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIFNNQUEsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDMwKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBPV1MsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgICAgIExJRFMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEtCQ1Ms ICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMxKSwgCiAg ICAgICAgICAgICAgICAgICAgICAgIE1CVFMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAg IE1CQ1MsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1CRFMsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgICAgIE1CRlMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1CV1Ms ICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1CTFMsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgICAgIE1CQ0wsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1CRkwsICAgMSwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDM4KSwgCiAgICAgICAg ICAgICAgICAgICAgICAgIE1EQ0wsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1EQ0gs ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1EVkwsICAgOCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIE1EVkgsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1DQUwsICAgOCwg CiAgICAgICAgICAgICAgICAgICAgICAgIE1DQUgsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIE1TVEwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1TVEgsICAgOCwgCiAgICAg ICAgICAgICAgICAgICAgICAgIE1DQ0wsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1D Q0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1QT0wsICAgOCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIE1QT0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1GQ0wsICAg OCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1GQ0gsICAgOCwgCiAgICAgICAgICAgICAgICAg ICAgICAgIE1DVUwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1DVUgsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIE1SQ0wsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAg IE1SQ0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1WT0wsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIE1WT0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1URUws ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1URUgsICAgOCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIFJTVjEsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFJTVjIsICAgOCwg CiAgICAgICAgICAgICAgICAgICAgICAgIFNEQ0wsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIFNEQ0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNEVkwsICAgOCwgCiAgICAg ICAgICAgICAgICAgICAgICAgIFNEVkgsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFND QUwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNDQUgsICAgOCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIFNTVEwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNTVEgsICAg OCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNDQ0wsICAgOCwgCiAgICAgICAgICAgICAgICAg ICAgICAgIFNDQ0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNQT0wsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIFNQT0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAg IFNGQ0wsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNGQ0gsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIFNDVUwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNDVUgs ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNSQ0wsICAgOCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIFNSQ0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNWT0wsICAgOCwg CiAgICAgICAgICAgICAgICAgICAgICAgIFNWT0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIFNURUwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNURUgsICAgOCwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDY4KSwgCiAgICAgICAgICAgICAg ICAgICAgICAgIENQVVQsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDcwKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNXQ1QsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDdFKSwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAsICAgMywgCiAgICAgICAgICAgICAgICAgICAgICAgIFRIRkcsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDdGKSwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDgwKSwgCiAgICAgICAgICAgICAgICAgICAg ICAgIFNZU1QsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgw eEYxKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEdCUUMsICAgOAogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChBUE1QLCBTeXN0ZW1J TywgMHhCMCwgMHgwMikKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoQVBNUCwgQnl0ZUFjYywg Tm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIEFQTUMsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEFQTVMsICAgOAogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChBRFAxKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFD UEkwMDAzIikKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoQkZMRywgT25lKQogICAgICAg ICAgICAgICAgICAgICAgICBOYW1lIChBQ1AsIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfUFNSLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoUE9XUykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9Q Q0wsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF9TQgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQklGMCwgUGFja2FnZSAoMHgw RCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4MTEzMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 MTEzMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MzlEMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAg ICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAgICAgICAgIk1TLTF4eHgiLCAK ICAgICAgICAgICAgICAgICAgICAgICAgIjEiLCAKICAgICAgICAgICAgICAgICAgICAgICAgIkxJ T04iLCAKICAgICAgICAgICAgICAgICAgICAgICAgIk1TSSBDb3JwLiIKICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKFNUQVQsIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHgwNTAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAw LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0U4CiAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKEJBVDEpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBBIikpCiAg ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkKICAgICAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX1BDTCwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgX1NCCiAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKE1ZRUMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKE1CVFMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MUYpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9CSUYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChNWUVDKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQQkkgKCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJVkJJICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4OTksIERCRzgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MDNF OCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEJJRjApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0JTVCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE1ZRUMpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VVBCUyAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElWQlMgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFNUQVQpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoSVZCSSwgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKE9uZXMsIEluZGV4IChCSUYwLCBPbmUpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKE9uZXMsIEluZGV4IChCSUYwLCAweDAyKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChPbmVzLCBJbmRleCAoQklGMCwgMHgwNCkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoIldyb25nIiwgSW5kZXggKEJJRjAsIDB4MDkpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCIgIiwgSW5kZXggKEJJRjAsIDB4MEEp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCJXcm9uZyIsIEluZGV4IChCSUYw LCAweDBCKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgiV3JvbmciLCBJbmRl eCAoQklGMCwgMHgwQykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoSVZCUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIEluZGV4 IChTVEFULCBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmVzLCBJ bmRleCAoU1RBVCwgT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmVz LCBJbmRleCAoU1RBVCwgMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo MHgyNzEwLCBJbmRleCAoU1RBVCwgMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoVVBCSSwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KFplcm8sIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBM b2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgTG9jYWwyKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIExvY2FsMykKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChNRENILCBMb2NhbDApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoTURDTCwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU2hpZnRMZWZ0IChMb2NhbDAsIDB4MDgsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE9yIChMb2NhbDAsIExvY2FsMSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKExvY2FsMCwgSW5kZXggKEJJRjAsIE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoTUZDSCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKE1GQ0wsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0 TGVmdCAoTG9jYWwwLCAweDA4LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBP ciAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChMb2NhbDEsIEluZGV4IChCSUYwLCAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChNRFZILCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoTURWTCwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hpZnRMZWZ0IChM b2NhbDAsIDB4MDgsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChMb2Nh bDAsIExvY2FsMiwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExv Y2FsMiwgSW5kZXggKEJJRjAsIDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKCJcbiIsIEluZGV4IChCSUYwLCAweDBBKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlICgiTElPTlxuIiwgSW5kZXggKEJJRjAsIDB4MEIpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKENUSUQsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmIChMRXF1YWwgKExvY2FsMCwgWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCJNUy0xNzFBeFxuIiwgSW5k ZXggKEJJRjAsIDB4MDkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgi TVNJIENvcnAuXG4iLCBJbmRleCAoQklGMCwgMHgwQykpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCI/TU9E RUxcbiIsIEluZGV4IChCSUYwLCAweDA5KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoIj9DVVNUT01FUlxuIiwgSW5kZXggKEJJRjAsIDB4MEMpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKFVQQlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBMb2Nh bDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgTG9jYWwxKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIExvY2FsMikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBMb2NhbDMpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoWmVybywgTG9jYWw0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKFplcm8sIExvY2FsNykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChN QlRTLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChMb2Nh bDAsIE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKFBPV1MsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDAsIE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo TUJDUywgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVx dWFsIChMb2NhbDEsIE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChMb2NhbDQsIDB4MDIs IExvY2FsNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPciAoTG9jYWw0LCBPbmUsIExvY2FsNCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1CTFMsIExvY2FsMCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCBPbmUpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPciAoTG9jYWw0LCAweDA0LCBMb2NhbDQpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQT1dTLCBMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCBPbmUpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKE1CQ1MsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoTUNVSCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKE1DVUwsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNoaWZ0TGVmdCAoTG9jYWwwLCAweDA4LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPciAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKExvY2FsMSwgMHhGRkZG KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lcywgTG9jYWwxKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDEsIEluZGV4IChTVEFULCBPbmUpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIElu ZGV4IChTVEFULCBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNQ1VILCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNQ1VMLCBMb2NhbDEpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoTG9jYWwwLCAweDA4LCBMb2NhbDAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChMb2NhbDAsIExvY2FsMSwg TG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYT3IgKExvY2FsMSwg MHhGRkZGLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChM RXF1YWwgKExvY2FsMSwgWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmVzLCBM b2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDEsIEluZGV4IChTVEFULCBPbmUp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKE1SQ0gsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoTVJDTCwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNoaWZ0TGVmdCAoTG9jYWwwLCAweDA4LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgT3IgKExvY2FsMCwgTG9jYWwyLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMiwgSW5kZXggKFNUQVQsIDB4MDIpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNVk9ILCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1WT0wsIExvY2FsMykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTaGlmdExlZnQgKExvY2FsMCwgMHgwOCwgTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChMb2NhbDAsIExvY2FsMywgTG9jYWwzKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDMsIEluZGV4IChTVEFULCAw eDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWw0LCBJbmRl eCAoU1RBVCwgWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4 NjQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSVZCUyAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBEZXZpY2UgKExJRDApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBEIikpCiAgICAgICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX0xJRCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE1ZRUMpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKExJRFMsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoTVBQQywgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChUSFJGLCBM b2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKExvY2FsMCwgT25lKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChTdWJ0cmFjdCAoUENPVSwgT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQT1dTLCBMb2NhbDApCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDAsIE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDQs IF5eXlNNQlMuSU5ESSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9j YWwwLCBeXl5TTUJTLklORFgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDA0LCBeXl5TTUJTLklOREkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwgXl5eU01CUy5JTkRYKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoU3VidHJhY3QgKFBDT1UsIE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1E4MCwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDgwLCBEQkc4KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfUTgxLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4ODEsIERCRzgpCiAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIFRIRkcpCiAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChPbmUsIFRIUkYpCiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5Q MDAxLCAweDgwKQogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfUFIuUDAwMiwgMHg4 MCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1E4 MiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDgyLCBEQkc4KQogICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoT25lLCBUSEZHKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgVEhSRikK ICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1BSLlAwMDEsIDB4ODApCiAgICAgICAg ICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5QMDAyLCAweDgwKQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTgzLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 ODMsIERCRzgpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBMb2NhbDApCiAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQT1dTLCBMb2NhbDApCiAgICAgICAgICAgICAg ICAgICAgICAgIElmIChMRXF1YWwgKExvY2FsMCwgT25lKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgXkFEUDEuQUNQKQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KFplcm8sIF5BRFAxLkFDUCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgTm90aWZ5IChBRFAxLCAweDgwKQogICAgICAgICAgICAgICAgICAgICAgICBO b3RpZnkgKFxfUFIuUDAwMSwgMHg4MCkKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChc X1BSLlAwMDIsIDB4ODApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9RODQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg4NCwgREJHOCkKICAgICAgICAgICAgICAg ICAgICAgICAgTm90aWZ5IChMSUQwLCAweDgwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfUTg1LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4ODUsIERCRzgpCiAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIENUU0QpCiAgICAgICAgICAgICAgICAg ICAgICAgIE5vdGlmeSAoXF9UWi5USFJNLCAweDgwKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTg2LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4ODYsIERCRzgp CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9RODcs IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoMHg4NywgREJHOCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KFplcm8sIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1CVFMsIExvY2Fs MCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCBPbmUpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo T25lLCBeQURQMS5CRkxHKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChCQVQx LCAweDgwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKFplcm8sIF5BRFAxLkJGTEcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBO b3RpZnkgKEFEUDEsIDB4ODApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgx OSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoQkFUMSwgMHg4MSkKICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChBRFAx LCAweDgwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfUTg4LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKDB4ODgsIERCRzgpCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9RODksIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg4OSwgREJH OCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1E4 QSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDhBLCBEQkc4KQogICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoT25lLCBDVFNEKQogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfVFouVEhSTSwg MHg4MCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X1E4QiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDhCLCBEQkc4KQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUThDLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4OEMsIERCRzgp CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ROTAs IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoMHg5MCwgREJHOCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1FCNCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEI0LCBBUE1DKQogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQVBNUywgTG9jYWwxKQogICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoTG9jYWwxLCBEQkc4KQogICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoQW5kIChMb2NhbDEsIE9uZSksIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKExvY2FsMCwgXl5eUENFMi5WR0EuTENELl9ER1MpCiAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChTaGlmdFJpZ2h0IChMb2NhbDEsIE9uZSksIExvY2FsMSkKICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKEFuZCAoTG9jYWwxLCBPbmUpLCBMb2NhbDApCiAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlIChMb2NhbDAsIF5eXlBDRTIuVkdBLkNSVC5fREdTKQogICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoU2hpZnRSaWdodCAoTG9jYWwxLCBPbmUpLCBMb2NhbDEpCiAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChBbmQgKExvY2FsMSwgT25lKSwgTG9jYWwwKQog ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBeXl5QQ0UyLlZHQS5UVi5fREdT KQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoU2hpZnRSaWdodCAoTG9jYWwxLCBPbmUp LCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChBbmQgKExvY2FsMSwgT25l KSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBeXl5QQ0Uy LlZHQS5ERlAxLl9ER1MpCiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXl5eUENFMi5W R0EsIDB4ODApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKF9RQjUsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoMHhCNSwgREJHOCkKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1FCNiwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEI2LCBE Qkc4KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf UUI3LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKDB4QjcsIERCRzgpCiAgICAgICAgICAgICAgICAgICAgICAgIFdo aWxlIChMTm90IChJUkRZICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MTEsIENNRDEpCiAgICAgICAgICAgICAg ICAgICAgICAgIFdoaWxlIChMTm90IChJUkRZICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4ODIsIERBVDEpCiAg ICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXl5eUENFMi5WR0EuTENELCAweDg3KQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUUI4LCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKDB4QjgsIERCRzgpCiAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxlIChMTm90 IChJUkRZICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKDB4MTEsIENNRDEpCiAgICAgICAgICAgICAgICAgICAgICAg IFdoaWxlIChMTm90IChJUkRZICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4ODEsIERBVDEpCiAgICAgICAgICAg ICAgICAgICAgICAgIE5vdGlmeSAoXl5eUENFMi5WR0EuTENELCAweDg2KQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUUI5LCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4QjksIERCRzgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFAwUEMpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxNDAwMDQpCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChHUFJXICgweDA0LCAweDA0KSkKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFSMEMpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBSMEMpCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoQUM5NykKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDE0MDAwNSkKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKEdQUlcgKDB4MEMsIDB4MDQpKQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKE1DOTcpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxNDAwMDYpCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChHUFJXICgweDBDLCAweDA0KSkKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChVU0IxKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBOYW1lIChfQURSLCAweDAwMTMwMDAwKQogICAgICAgICAgICAgICAgTWV0aG9kIChf UzNELCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIElmIChMT3IgKExFcXVhbCAoT1NGTCAoKSwgT25lKSwgTEVxdWFsIChPU0ZMICgpLCAweDAy KSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MDIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg TWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHgwQiwgMHgwNCkpCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoVVNCMikKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDEzMDAwMSkKICAgICAgICAgICAgICAgIE1l dGhvZCAoX1MzRCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBJZiAoTE9yIChMRXF1YWwgKE9TRkwgKCksIE9uZSksIExFcXVhbCAoT1NGTCAo KSwgMHgwMikpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MDMpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4MEIsIDB4MDQpKQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFVTQjMpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxMzAwMDIpCiAgICAgICAgICAg ICAgICBNZXRob2QgKF9TM0QsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSWYgKExPciAoTEVxdWFsIChPU0ZMICgpLCBPbmUpLCBMRXF1YWwg KE9TRkwgKCksIDB4MDIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDAzKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDBCLCAweDA0KSkKICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChVU0I0KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMTMwMDAzKQogICAg ICAgICAgICAgICAgTWV0aG9kIChfUzNELCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIElmIChMT3IgKExFcXVhbCAoT1NGTCAoKSwgT25lKSwg TEVxdWFsIChPU0ZMICgpLCAweDAyKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwMykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHgwQiwgMHgw NCkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAo VVNCNSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDEzMDAw NCkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1MzRCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoTE9yIChMRXF1YWwgKE9TRkwgKCks IE9uZSksIExFcXVhbCAoT1NGTCAoKSwgMHgwMikpKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4 MEIsIDB4MDQpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBE ZXZpY2UgKEVVU0IpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4 MDAxMzAwMDUpCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TM0QsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKExPciAoTEVxdWFsIChP U0ZMICgpLCBPbmUpLCBMRXF1YWwgKE9TRkwgKCksIDB4MDIpKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAzKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChH UFJXICgweDBCLCAweDA0KSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAg ICAgICAgRGV2aWNlIChTQVRBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChf QURSLCAweDAwMTIwMDAwKQogICAgICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFxfR1BFLl9MMUYg KCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChTUFRNLCBCdWZmZXIg KDB4MTQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAg ICAweDc4LCAweDAwLCAweDAwLCAweDAwLCAweDBGLCAweDAwLCAweDAwLCAweDAwLCAKICAgICAg ICAgICAgICAgICAgICAvKiAwMDA4ICovICAgIDB4NzgsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MEYs IDB4MDAsIDB4MDAsIDB4MDAsIAogICAgICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gICAgMHgx RiwgMHgwMCwgMHgwMCwgMHgwMAogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIERl dmljZSAoUFJJRCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChf QURSLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0dUTSwgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoU1BUTSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUTSwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBOYW1lIChQUklTLCBaZXJvKQogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKE9TRkwgKCks IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHgzMiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hp bGUgKExBbmQgKExFcXVhbCAoUE1CWSwgT25lKSwgTG9jYWwwKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHhGQSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmIChfT1NJICgiV2luZG93cyAyMDA2IikpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4MzIsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTEFu ZCAoTEVxdWFsIChQTUJZLCBPbmUpLCBMb2NhbDApKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4RkEp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWwwKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKFplcm8sIFBSSVMpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgUFJJUykKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTQywgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoUFJJUykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIERldmlj ZSAoUF9EMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5h bWUgKF9BRFIsIFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKE5vdCAoTEVxdWFsIChQTVMxLCBaZXJvKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDBGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTmFt ZSAoUzEyUCwgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoMHgzMiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgV2hpbGUgKExBbmQgKExFcXVhbCAoUE1CWSwgT25lKSwgTG9jYWwwKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAo MHhGQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoWmVybywgUzEyUCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywg UzEyUCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfUFNDLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFMxMlApCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIERl dmljZSAoUF9EMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IE5hbWUgKF9BRFIsIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoTm90IChMRXF1YWwgKFBTUzEsIFplcm8pKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBO YW1lIChTMTJQLCBaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDMyLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBXaGlsZSAoTEFuZCAoTEVxdWFsIChQU0JZLCBPbmUpLCBMb2NhbDApKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVw ICgweEZBKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWww KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChaZXJvLCBTMTJQKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAz LCBTMTJQKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9QU0MsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUzEyUCkKICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBEZXZpY2UgKFNFQ0QpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0FEUiwgT25lKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0dU TSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoU1BUTSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1NUTSwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBOYW1lIChT RUNTLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChM RXF1YWwgKE9TRkwgKCksIDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgzMiwgTG9jYWwwKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgV2hpbGUgKExBbmQgKExFcXVhbCAoU01CWSwgT25lKSwgTG9jYWwwKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTbGVlcCAoMHhGQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNyZW1lbnQg KExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChfT1NJICgiV2luZG93cyAyMDA2 IikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKDB4MzIsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBXaGlsZSAoTEFuZCAoTEVxdWFsIChTTUJZLCBPbmUpLCBMb2NhbDApKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKDB4RkEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlY3Jl bWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFNFQ1MpCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgU0VD UykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BT QywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoU0VDUykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIERldmljZSAoU19EMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE5vdCAoTEVxdWFsIChTTVMxLCBaZXJvKSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgTmFtZSAoUzEyUCwgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfUFMwLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgzMiwgTG9jYWwwKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgV2hpbGUgKExBbmQgKExFcXVhbCAoU01CWSwgT25lKSwgTG9jYWww KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTbGVlcCAoMHhGQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNy ZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgUzEyUCkKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoMHgwMywgUzEyUCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfUFNDLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFMxMlAp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIERldmljZSAoU19EMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTm90IChMRXF1YWwgKFNTUzEsIFplcm8p KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBOYW1lIChTMTJQLCBaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDMyLCBMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTEFuZCAoTEVxdWFsIChTU0JZLCBPbmUpLCBMb2Nh bDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNsZWVwICgweEZBKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERl Y3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBTMTJQKQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDAzLCBTMTJQKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKF9QU0MsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUzEy UCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBTY29wZSAoXF9HUEUpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfTDFGLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFBSQzApCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChO b3QgKExFcXVhbCAoUE1TMSwgWmVybykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDFFKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9T Qi5QQ0kwLlNBVEEuUFJJRC5QX0QwLCBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoT25lLCBQUkMwKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoUFJDMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKE5vdCAoTEVxdWFsIChTTVMxLCBaZXJvKSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xl ZXAgKDB4MUUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuU0FUQS5TRUNELlNfRDAsIE9uZSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIFBSQzEpCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChQUkMyKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTm90IChMRXF1YWwg KFBTUzEsIFplcm8pKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxRSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5TQVRB LlBSSUQuUF9EMSwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwg UFJDMikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKFBSQzMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIChOb3QgKExFcXVhbCAoU1NTMSwgWmVybykpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDFFKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg IE5vdGlmeSAoXF9TQi5QQ0kwLlNBVEEuU0VDRC5TX0QxLCBPbmUpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoT25lLCBQUkMzKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAg ICAgICAgICBEZXZpY2UgKFNNQlMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUg KF9BRFIsIDB4MDAxNDAwMDApCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFNNQlMs IFBDSV9Db25maWcsIFplcm8sIDB4MDEwMCkKICAgICAgICAgICAgICAgIEZpZWxkIChTTUJTLCBB bnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4MDgpLCAKICAgICAgICAgICAgICAgICAgICBSRVYsICAg IDgsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEY4KSwgCiAgICAgICAg ICAgICAgICAgICAgSU5ESSwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4RkYpLCAKICAgICAgICAgICAgICAgICAgICBJTkRYLCAgIDEKICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgU2NvcGUgKFxfR1BFKQogICAgICAg IHsKICAgICAgICAgICAgTWV0aG9kIChfTDE4LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5QQ0UyLCAweDAyKQogICAgICAg ICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuUENFMywgMHgwMikKICAgICAgICAgICAgICAgIE5v dGlmeSAoXF9TQi5QQ0kwLlBDRTQsIDB4MDIpCiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0Iu UENJMC5QQ0U1LCAweDAyKQogICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuUENFNiwg MHgwMikKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlBDRTcsIDB4MDIpCiAgICAg ICAgICAgICAgICBOb3RpZnkgKFxfU0IuUFdSQiwgMHgwMikKICAgICAgICAgICAgfQoKICAgICAg ICAgICAgTWV0aG9kIChfTDFCLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5TQkFaLCAweDAyKQogICAgICAgICAgICAgICAg Tm90aWZ5IChcX1NCLlBXUkIsIDB4MDIpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhv ZCAoX0wwNCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg Tm90aWZ5IChcX1NCLlBDSTAuUDBQQywgMHgwMikKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9T Qi5QV1JCLCAweDAyKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9MMEMsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9T Qi5QQ0kwLkFDOTcsIDB4MDIpCiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5NQzk3 LCAweDAyKQogICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBXUkIsIDB4MDIpCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0wwQiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuVVNCMSwgMHgwMikKICAg ICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlVTQjIsIDB4MDIpCiAgICAgICAgICAgICAg ICBOb3RpZnkgKFxfU0IuUENJMC5VU0IzLCAweDAyKQogICAgICAgICAgICAgICAgTm90aWZ5IChc X1NCLlBDSTAuVVNCNCwgMHgwMikKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlVT QjUsIDB4MDIpCiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5FVVNCLCAweDAyKQog ICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBXUkIsIDB4MDIpCiAgICAgICAgICAgIH0KICAg ICAgICB9CgogICAgICAgIERldmljZSAoUFdSQikKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUg KF9ISUQsIEVpc2FJZCAoIlBOUDBDMEMiKSkKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHhBQSkK ICAgICAgICAgICAgTmFtZSAoX1NUQSwgMHgwQikKICAgICAgICB9CiAgICB9CgogICAgU2NvcGUg KF9TQikKICAgIHsKICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBJUlEsIFN5c3RlbUlPLCAweDBD MDAsIDB4MDIpCiAgICAgICAgRmllbGQgKFBJUlEsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUp CiAgICAgICAgewogICAgICAgICAgICBQSURYLCAgIDgsIAogICAgICAgICAgICBQREFULCAgIDgK ICAgICAgICB9CgogICAgICAgIEluZGV4RmllbGQgKFBJRFgsIFBEQVQsIEJ5dGVBY2MsIE5vTG9j aywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBQSVJBLCAgIDgsIAogICAgICAgICAg ICBQSVJCLCAgIDgsIAogICAgICAgICAgICBQSVJDLCAgIDgsIAogICAgICAgICAgICBQSVJELCAg IDgsIAogICAgICAgICAgICBQSVJTLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHgwOSksIAogICAgICAgICAgICBQSVJFLCAgIDgsIAogICAgICAgICAgICBQSVJGLCAgIDgsIAog ICAgICAgICAgICBQSVJHLCAgIDgsIAogICAgICAgICAgICBQSVJILCAgIDgKICAgICAgICB9Cgog ICAgICAgIE1ldGhvZCAoSVJRQywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAg ICAgIFN0b3JlIChaZXJvLCBQSVJBKQogICAgICAgICAgICBTdG9yZSAoWmVybywgUElSQikKICAg ICAgICAgICAgU3RvcmUgKFplcm8sIFBJUkMpCiAgICAgICAgICAgIFN0b3JlIChaZXJvLCBQSVJE KQogICAgICAgICAgICBTdG9yZSAoWmVybywgUElSRSkKICAgICAgICAgICAgU3RvcmUgKFplcm8s IFBJUkYpCiAgICAgICAgICAgIFN0b3JlIChaZXJvLCBQSVJHKQogICAgICAgICAgICBTdG9yZSAo WmVybywgUElSSCkKICAgICAgICB9CgogICAgICAgIE5hbWUgKEJVRkEsIFJlc291cmNlVGVtcGxh dGUgKCkKICAgICAgICB7CiAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVk LCApCiAgICAgICAgICAgICAgICB7MTV9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChJUFJBLCBS ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgewogICAgICAgICAgICBJUlEgKExldmVsLCBBY3Rp dmVMb3csIFNoYXJlZCwgKQogICAgICAgICAgICAgICAgezUsMTAsMTF9CiAgICAgICAgfSkKICAg ICAgICBOYW1lIChJUFJCLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgewogICAgICAgICAg ICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQogICAgICAgICAgICAgICAgezUsMTAs MTF9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChJUFJDLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAg ICAgICAgewogICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQogICAg ICAgICAgICAgICAgezUsMTAsMTF9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChJUFJELCBSZXNv dXJjZVRlbXBsYXRlICgpCiAgICAgICAgewogICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVM b3csIFNoYXJlZCwgKQogICAgICAgICAgICAgICAgezUsMTAsMTF9CiAgICAgICAgfSkKICAgICAg ICBEZXZpY2UgKExOS0EpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQg KCJQTlAwQzBGIikpCiAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkKICAgICAgICAgICAgTWV0 aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBJZiAoUElSQSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MEIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUlMsIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoUFJTQSkKICAgICAgICAg ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgUElSQSkKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRkEsIE9uZSwgSVJRWCkKICAgICAg ICAgICAgICAgIFNoaWZ0TGVmdCAoT25lLCBQSVJBLCBJUlFYKQogICAgICAgICAgICAgICAgUmV0 dXJuIChCVUZBKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVs ZCAoQXJnMCwgT25lLCBJUkEpCiAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSQSwg TG9jYWwwKQogICAgICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAgICAgICAgICAg ICBTdG9yZSAoTG9jYWwwLCBQSVJBKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBE ZXZpY2UgKExOS0IpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQ TlAwQzBGIikpCiAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDIpCiAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg SWYgKFBJUkIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDBCKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkKICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBSU0IpCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFBJUkIpCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUZBLCBPbmUsIElSUVgpCiAgICAgICAg ICAgICAgICBTaGlmdExlZnQgKE9uZSwgUElSQiwgSVJRWCkKICAgICAgICAgICAgICAgIFJldHVy biAoQlVGQSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQg KEFyZzAsIE9uZSwgSVJBKQogICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChJUkEsIExv Y2FsMCkKICAgICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAg U3RvcmUgKExvY2FsMCwgUElSQikKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2 aWNlIChMTktDKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5Q MEMwRiIpKQogICAgICAgICAgICBOYW1lIChfVUlELCAweDAzKQogICAgICAgICAgICBNZXRob2Qg KF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElm IChQSVJDKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw QikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BSUywgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChQUlNDKQogICAgICAgICAgICB9 CgogICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBQSVJDKQogICAgICAgICAgICB9CgogICAg ICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGQSwgT25lLCBJUlFYKQogICAgICAgICAg ICAgICAgU2hpZnRMZWZ0IChPbmUsIFBJUkMsIElSUVgpCiAgICAgICAgICAgICAgICBSZXR1cm4g KEJVRkEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChB cmcwLCBPbmUsIElSQSkKICAgICAgICAgICAgICAgIEZpbmRTZXRSaWdodEJpdCAoSVJBLCBMb2Nh bDApCiAgICAgICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgIFN0 b3JlIChMb2NhbDAsIFBJUkMpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmlj ZSAoTE5LRCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBD MEYiKSkKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwNCkKICAgICAgICAgICAgTWV0aG9kIChf U1RBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAo UElSRCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIp CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoUFJTRCkKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgUElSRCkKICAgICAgICAgICAgfQoKICAgICAg ICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRkEsIE9uZSwgSVJRWCkKICAgICAgICAgICAg ICAgIFNoaWZ0TGVmdCAoT25lLCBQSVJELCBJUlFYKQogICAgICAgICAgICAgICAgUmV0dXJuIChC VUZBKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJn MCwgT25lLCBJUkEpCiAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSQSwgTG9jYWww KQogICAgICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAgICAgICAgICAgICBTdG9y ZSAoTG9jYWwwLCBQSVJEKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2Ug KExOS0UpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBG IikpCiAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDUpCiAgICAgICAgICAgIE1ldGhvZCAoX1NU QSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFBJ UkUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBSU0UpCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFBJUkUpCiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUZBLCBPbmUsIElSUVgpCiAgICAgICAgICAgICAg ICBTaGlmdExlZnQgKE9uZSwgUElSRSwgSVJRWCkKICAgICAgICAgICAgICAgIFJldHVybiAoQlVG QSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAs IE9uZSwgSVJBKQogICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChQSVJFLCBMb2NhbDAp CiAgICAgICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgIFN0b3Jl IChMb2NhbDAsIFBJUkUpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmljZSAo TE5LRikKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYi KSkKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMikKICAgICAgICAgICAgTWV0aG9kIChfU1RB LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoUElS RikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoUFJTRikKICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBTdG9yZSAoWmVybywgUElSRikKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRkEsIE9uZSwgSVJRWCkKICAgICAgICAgICAgICAg IFNoaWZ0TGVmdCAoT25lLCBQSVJGLCBJUlFYKQogICAgICAgICAgICAgICAgUmV0dXJuIChCVUZB KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwg T25lLCBJUkEpCiAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSQSwgTG9jYWwwKQog ICAgICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAgICAgICAgICAgICBTdG9yZSAo TG9jYWwwLCBQSVJGKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKExO S0cpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBGIikp CiAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDMpCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwg MCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFBJUkcp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBSU0cpCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgU3RvcmUgKFplcm8sIFBJUkcpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUZBLCBPbmUsIElSUVgpCiAgICAgICAgICAgICAgICBT aGlmdExlZnQgKE9uZSwgUElSRywgSVJRWCkKICAgICAgICAgICAgICAgIFJldHVybiAoQlVGQSkK ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAsIE9u ZSwgSVJBKQogICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChJUkEsIExvY2FsMCkKICAg ICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAgU3RvcmUgKExv Y2FsMCwgUElSRykKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChMTktI KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRiIpKQog ICAgICAgICAgICBOYW1lIChfVUlELCAweDA0KQogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChQSVJIKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwQikKICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChQUlNIKQogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKF9ESVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIFN0b3JlIChaZXJvLCBQSVJIKQogICAgICAgICAgICB9CgogICAgICAgICAgICBN ZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGQSwgT25lLCBJUlFYKQogICAgICAgICAgICAgICAgU2hp ZnRMZWZ0IChPbmUsIFBJUkgsIElSUVgpCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRkEpCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCBPbmUs IElSQSkKICAgICAgICAgICAgICAgIEZpbmRTZXRSaWdodEJpdCAoSVJBLCBMb2NhbDApCiAgICAg ICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgIFN0b3JlIChMb2Nh bDAsIFBJUkgpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQikK ICAgIHsKICAgICAgICBOYW1lIChYQ1BELCBaZXJvKQogICAgICAgIE5hbWUgKFhOUFQsIE9uZSkK ICAgICAgICBOYW1lIChYQ0FQLCAweDAyKQogICAgICAgIE5hbWUgKFhEQ1AsIDB4MDQpCiAgICAg ICAgTmFtZSAoWERDVCwgMHgwOCkKICAgICAgICBOYW1lIChYRFNULCAweDBBKQogICAgICAgIE5h bWUgKFhMQ1AsIDB4MEMpCiAgICAgICAgTmFtZSAoWExDVCwgMHgxMCkKICAgICAgICBOYW1lIChY TFNULCAweDEyKQogICAgICAgIE5hbWUgKFhTQ1AsIDB4MTQpCiAgICAgICAgTmFtZSAoWFNDVCwg MHgxOCkKICAgICAgICBOYW1lIChYU1NULCAweDFBKQogICAgICAgIE5hbWUgKFhSQ1QsIDB4MUMp CiAgICAgICAgTXV0ZXggKE1VVEUsIDB4MDApCiAgICAgICAgTWV0aG9kIChSQlBFLCAxLCBOb3RT ZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQWNxdWlyZSAoTVVURSwgMHgwM0U4KQog ICAgICAgICAgICBBZGQgKEFyZzAsIFBDSUIsIExvY2FsMCkKICAgICAgICAgICAgT3BlcmF0aW9u UmVnaW9uIChQQ0ZHLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgT25lKQogICAgICAgICAgICBGaWVs ZCAoUENGRywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgWENGRywgICA4CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJlbGVhc2UgKE1V VEUpCiAgICAgICAgICAgIFJldHVybiAoWENGRykKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAo UldQRSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIEFjcXVpcmUgKE1V VEUsIDB4MDNFOCkKICAgICAgICAgICAgQW5kIChBcmcwLCAweEZGRkZGRkZFLCBBcmcwKQogICAg ICAgICAgICBBZGQgKEFyZzAsIFBDSUIsIExvY2FsMCkKICAgICAgICAgICAgT3BlcmF0aW9uUmVn aW9uIChQQ0ZHLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwMikKICAgICAgICAgICAgRmllbGQg KFBDRkcsIFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIFhDRkcsICAgMTYKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmVsZWFzZSAoTVVU RSkKICAgICAgICAgICAgUmV0dXJuIChYQ0ZHKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChS RFBFLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQWNxdWlyZSAoTVVU RSwgMHgwM0U4KQogICAgICAgICAgICBBbmQgKEFyZzAsIDB4RkZGRkZGRkMsIEFyZzApCiAgICAg ICAgICAgIEFkZCAoQXJnMCwgUENJQiwgTG9jYWwwKQogICAgICAgICAgICBPcGVyYXRpb25SZWdp b24gKFBDRkcsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQogICAgICAgICAgICBGaWVsZCAo UENGRywgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIFhDRkcsICAgMzIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmVsZWFzZSAoTVVU RSkKICAgICAgICAgICAgUmV0dXJuIChYQ0ZHKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChX QlBFLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQWNxdWlyZSAoTVVU RSwgMHgwRkZGKQogICAgICAgICAgICBBZGQgKEFyZzAsIFBDSUIsIExvY2FsMCkKICAgICAgICAg ICAgT3BlcmF0aW9uUmVnaW9uIChQQ0ZHLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgT25lKQogICAg ICAgICAgICBGaWVsZCAoUENGRywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgWENGRywgICA4CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IFN0b3JlIChBcmcxLCBYQ0ZHKQogICAgICAgICAgICBSZWxlYXNlIChNVVRFKQogICAgICAgIH0K CiAgICAgICAgTWV0aG9kIChXV1BFLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAg ICAgICAgQWNxdWlyZSAoTVVURSwgMHgwM0U4KQogICAgICAgICAgICBBbmQgKEFyZzAsIDB4RkZG RkZGRkUsIEFyZzApCiAgICAgICAgICAgIEFkZCAoQXJnMCwgUENJQiwgTG9jYWwwKQogICAgICAg ICAgICBPcGVyYXRpb25SZWdpb24gKFBDRkcsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAyKQog ICAgICAgICAgICBGaWVsZCAoUENGRywgV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgWENGRywgICAxNgogICAgICAgICAgICB9CgogICAgICAg ICAgICBTdG9yZSAoQXJnMSwgWENGRykKICAgICAgICAgICAgUmVsZWFzZSAoTVVURSkKICAgICAg ICB9CgogICAgICAgIE1ldGhvZCAoV0RQRSwgMiwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAg ICAgICAgICAgIEFjcXVpcmUgKE1VVEUsIDB4MDNFOCkKICAgICAgICAgICAgQW5kIChBcmcwLCAw eEZGRkZGRkZDLCBBcmcwKQogICAgICAgICAgICBBZGQgKEFyZzAsIFBDSUIsIExvY2FsMCkKICAg ICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQQ0ZHLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgw NCkKICAgICAgICAgICAgRmllbGQgKFBDRkcsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBYQ0ZHLCAgIDMyCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIFN0b3JlIChBcmcxLCBYQ0ZHKQogICAgICAgICAgICBSZWxlYXNlIChNVVRFKQog ICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChSV0RQLCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAg IHsKICAgICAgICAgICAgQWNxdWlyZSAoTVVURSwgMHgwM0U4KQogICAgICAgICAgICBBbmQgKEFy ZzAsIDB4RkZGRkZGRkMsIEFyZzApCiAgICAgICAgICAgIEFkZCAoQXJnMCwgUENJQiwgTG9jYWww KQogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBDRkcsIFN5c3RlbU1lbW9yeSwgTG9jYWww LCAweDA0KQogICAgICAgICAgICBGaWVsZCAoUENGRywgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2Vy dmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFhDRkcsICAgMzIKICAgICAgICAgICAg fQoKICAgICAgICAgICAgQW5kIChYQ0ZHLCBBcmcyLCBMb2NhbDEpCiAgICAgICAgICAgIE9yIChM b2NhbDEsIEFyZzEsIFhDRkcpCiAgICAgICAgICAgIFJlbGVhc2UgKE1VVEUpCiAgICAgICAgfQoK ICAgICAgICBNZXRob2QgKFJQTUUsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAg ICAgICBBZGQgKEFyZzAsIDB4ODQsIExvY2FsMCkKICAgICAgICAgICAgU3RvcmUgKFJEUEUgKExv Y2FsMCksIExvY2FsMSkKICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwxLCBPbmVzKSkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CiAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKExBbmQgKExv Y2FsMSwgMHgwMDAxMDAwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg V0RQRSAoTG9jYWwwLCBBbmQgKExvY2FsMSwgMHgwMDAxMDAwMCkpCiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIElmIChPU0NGKQogICAg ewogICAgICAgIFNjb3BlIChfU0IuUENJMCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKFNV UFAsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKENUUkwsIFplcm8pCiAgICAgICAgICAgIE1ldGhv ZCAoX09TQywgNCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg SWYgKExFcXVhbCAoQXJnMCwgQnVmZmVyICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAgIDB4NUIsIDB4NEQsIDB4 REIsIDB4MzMsIDB4RjcsIDB4MUYsIDB4MUMsIDB4NDAsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogMDAwOCAqLyAgICAweDk2LCAweDU3LCAweDc0LCAweDQxLCAweEMwLCAweDNELCAw eEQ3LCAweDY2CiAgICAgICAgICAgICAgICAgICAgICAgIH0pKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFyZzMsIFplcm8sIENEVzEpCiAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMywgMHgwNCwgQ0RXMikKICAg ICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChBcmczLCAweDA4LCBDRFczKQogICAg ICAgICAgICAgICAgICAgIFN0b3JlIChDRFcyLCBTVVBQKQogICAgICAgICAgICAgICAgICAgIFN0 b3JlIChDRFczLCBDVFJMKQogICAgICAgICAgICAgICAgICAgIElmIChMTm90RXF1YWwgKEFuZCAo U1VQUCwgMHgxNiksIDB4MTYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgQW5kIChDVFJMLCAweDFFKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgQW5kIChDVFJMLCAweDFELCBDVFJMKQogICAgICAgICAgICAgICAgICAgIElm IChOb3QgKEFuZCAoQ0RXMSwgT25lKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoQW5kIChDVFJMLCBPbmUpKSB7fQogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoQW5kIChDVFJMLCAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgRVBOTSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChPbmUsIERQUEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQgKENUUkwsIDB4MTApKSB7fQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKExOb3RFcXVhbCAoQXJnMSwg T25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9yIChD RFcxLCAweDA4LCBDRFcxKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgSWYgKExOb3RFcXVhbCAoQ0RXMywgQ1RSTCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBPciAoQ0RXMSwgMHgxMCwgQ0RXMSkKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFN0b3JlIChDVFJMLCBDRFczKQogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQXJnMykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBPciAoQ0RXMSwgMHgw NCwgQ0RXMSkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFyZzMpCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQikKICAgIHsK ICAgICAgICBTY29wZSAoUENJMCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKENSUywgUmVz b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBXb3JkQnVzTnVt YmVyIChSZXNvdXJjZVByb2R1Y2VyLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIFBvc0RlY29kZSwKICAg ICAgICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAg ICAgICAgICAgICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAg ICAgICAgICAgICAgICAgMHgwMEZGLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg ICAgICAgICAgICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQK ICAgICAgICAgICAgICAgICAgICAweDAxMDAsICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAg ICAgICAgICAgICAgICwsICkKICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAg ICAgICAgICAgICAweDBDRjgsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAg ICAgICAgICAgICAweDBDRjgsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAg ICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAg ICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgV29yZElPIChSZXNvdXJjZVByb2R1Y2VyLCBNaW5GaXhlZCwgTWF4 Rml4ZWQsIFBvc0RlY29kZSwgRW50aXJlUmFuZ2UsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAw LCAgICAgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4MDAwMCwg ICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MENGNywg ICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMCwg ICAgICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgw Q0Y4LCAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAsLCAsIFR5cGVT dGF0aWMpCiAgICAgICAgICAgICAgICBXb3JkSU8gKFJlc291cmNlUHJvZHVjZXIsIE1pbkZpeGVk LCBNYXhGaXhlZCwgUG9zRGVjb2RlLCBFbnRpcmVSYW5nZSwKICAgICAgICAgICAgICAgICAgICAw eDAwMDAsICAgICAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgMHgw RDAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHhG RkZGLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgw MDAwLCAgICAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAg ICAweEYzMDAsICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICwsICwg VHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2Vy LCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAg ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAg ICAgICAgICAgICAgICAgIDB4MDAwQTAwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAg ICAgICAgICAgICAgICAgIDB4MDAwQkZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAg ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0 CiAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAg ICAgICAgICAgICAgICAsLCAsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAg ICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZp eGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAg MHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4 MDAwQzAwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4 MDAwREZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4 MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAg ICAgMHgwMDAyMDAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAsLCBf WTBELCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBEV29y ZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQs IENhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAg ICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAg ICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAg ICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAg ICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs ICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgLCwgX1kwRSwgQWRkcmVzc1Jh bmdlTWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAgICAgICB9KQogICAgICAgICAgICBDcmVhdGVE V29yZEZpZWxkIChDUlMsIFxfU0IuUENJMC5fWTBELl9NSU4sIE1JTjUpCiAgICAgICAgICAgIENy ZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLl9ZMEQuX01BWCwgTUFYNSkKICAgICAgICAg ICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuX1kwRC5fTEVOLCBMRU41KQogICAg ICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChDUlMsIFxfU0IuUENJMC5fWTBFLl9NSU4sIE1JTjYp CiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLl9ZMEUuX01BWCwg TUFYNikKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuX1kwRS5f TEVOLCBMRU42KQogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlIChNRzFMLCBMb2NhbDApCiAgICAgICAg ICAgICAgICBJZiAoTG9jYWwwKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFN0b3JlIChNRzFCLCBNSU41KQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChNRzFMLCBMRU41 KQogICAgICAgICAgICAgICAgICAgIEFkZCAoTUlONSwgRGVjcmVtZW50IChMb2NhbDApLCBNQVg1 KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFN0b3JlIChNRzJCLCBNSU42KQog ICAgICAgICAgICAgICAgU3RvcmUgKE1HMkwsIExFTjYpCiAgICAgICAgICAgICAgICBTdG9yZSAo TUcyTCwgTG9jYWwwKQogICAgICAgICAgICAgICAgQWRkIChNSU42LCBEZWNyZW1lbnQgKExvY2Fs MCksIE1BWDYpCiAgICAgICAgICAgICAgICBSZXR1cm4gKENSUykKICAgICAgICAgICAgfQogICAg ICAgIH0KICAgIH0KCiAgICBOYW1lIChXT1RCLCBaZXJvKQogICAgTmFtZSAoV1NTQiwgWmVybykK ICAgIE5hbWUgKFdBWEIsIFplcm8pCiAgICBNZXRob2QgKF9QVFMsIDEsIE5vdFNlcmlhbGl6ZWQp CiAgICB7CiAgICAgICAgU3RvcmUgKEFyZzAsIERCRzgpCiAgICAgICAgUFRTIChBcmcwKQogICAg ICAgIFN0b3JlIChaZXJvLCBJbmRleCAoV0FLUCwgWmVybykpCiAgICAgICAgU3RvcmUgKFplcm8s IEluZGV4IChXQUtQLCBPbmUpKQogICAgICAgIElmIChMQW5kIChMRXF1YWwgKEFyZzAsIDB4MDQp LCBMRXF1YWwgKE9TRkwgKCksIDB4MDIpKSkKICAgICAgICB7CiAgICAgICAgICAgIFNsZWVwICgw eDBCQjgpCiAgICAgICAgfQoKICAgICAgICBTdG9yZSAoQVNTQiwgV1NTQikKICAgICAgICBTdG9y ZSAoQU9UQiwgV09UQikKICAgICAgICBTdG9yZSAoQUFYQiwgV0FYQikKICAgICAgICBTdG9yZSAo QXJnMCwgQVNTQikKICAgICAgICBTdG9yZSAoT1NGTCAoKSwgQU9UQikKICAgICAgICBTdG9yZSAo WmVybywgQUFYQikKICAgIH0KCiAgICBNZXRob2QgKF9XQUssIDEsIE5vdFNlcmlhbGl6ZWQpCiAg ICB7CiAgICAgICAgU2hpZnRMZWZ0IChBcmcwLCAweDA0LCBEQkc4KQogICAgICAgIFdBSyAoQXJn MCkKICAgICAgICBJZiAoQVNTQikKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChXU1NCLCBB U1NCKQogICAgICAgICAgICBTdG9yZSAoV09UQiwgQU9UQikKICAgICAgICAgICAgU3RvcmUgKFdB WEIsIEFBWEIpCiAgICAgICAgfQoKICAgICAgICBJZiAoRGVyZWZPZiAoSW5kZXggKFdBS1AsIFpl cm8pKSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChaZXJvLCBJbmRleCAoV0FLUCwgT25l KSkKICAgICAgICB9CiAgICAgICAgRWxzZQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKEFy ZzAsIEluZGV4IChXQUtQLCBPbmUpKQogICAgICAgIH0KCiAgICAgICAgUmV0dXJuIChXQUtQKQog ICAgfQoKICAgIE5hbWUgKF9TMCwgUGFja2FnZSAoMHgwNCkKICAgIHsKICAgICAgICBaZXJvLCAK ICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvCiAgICB9KQogICAgSWYg KFNTMSkKICAgIHsKICAgICAgICBOYW1lIChfUzEsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewog ICAgICAgICAgICBPbmUsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgIFplcm8KICAgICAgICB9KQogICAgfQoKICAgIElmIChTUzMpCiAgICB7CiAgICAg ICAgTmFtZSAoX1MzLCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgMHgwMywg CiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgWmVybwog ICAgICAgIH0pCiAgICB9CgogICAgSWYgKFNTNCkKICAgIHsKICAgICAgICBOYW1lIChfUzQsIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICAweDA0LCAKICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICBaZXJvCiAgICAgICAgfSkKICAgIH0K CiAgICBOYW1lIChfUzUsIFBhY2thZ2UgKDB4MDQpCiAgICB7CiAgICAgICAgMHgwNSwgCiAgICAg ICAgWmVybywgCiAgICAgICAgWmVybywgCiAgICAgICAgWmVybwogICAgfSkKICAgIE1ldGhvZCAo UFRTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIElmIChBcmcwKQogICAgICAgIHsK ICAgICAgICAgICAgTlBUUyAoQXJnMCkKICAgICAgICAgICAgU1BUUyAoQXJnMCkKICAgICAgICB9 CiAgICB9CgogICAgTWV0aG9kIChXQUssIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAg TldBSyAoQXJnMCkKICAgICAgICBTV0FLIChBcmcwKQogICAgfQoKICAgIFNjb3BlIChcX1BSLlAw MDEpCiAgICB7CiAgICAgICAgTmFtZSAoX1BDVCwgUGFja2FnZSAoMHgwMikKICAgICAgICB7CiAg ICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg ICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg ICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwg Ly8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS ZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg ICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAv LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBB ZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgfQogICAgICAgIH0pCiAg ICAgICAgTmFtZSAoX1BTUywgUGFja2FnZSAoMHgwNikKICAgICAgICB7CiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA5NjAsIAog ICAgICAgICAgICAgICAgMHgwMDAwODhCOCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDY0LCAK ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDksIAogICAgICAgICAgICAgICAgMHhFODIwMkM1MCwg CiAgICAgICAgICAgICAgICAweDAwMDAwNDUwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg UGFja2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDg5OCwg CiAgICAgICAgICAgICAgICAweDAwMDA3N0QxLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwNjQs IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwOSwgCiAgICAgICAgICAgICAgICAweEU4MjAyQzhF LCAKICAgICAgICAgICAgICAgIDB4MDAwMDA0OEUKICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwN0Qw LCAKICAgICAgICAgICAgICAgIDB4MDAwMDY4MDcsIAogICAgICAgICAgICAgICAgMHgwMDAwMDA2 NCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDA5LCAKICAgICAgICAgICAgICAgIDB4RTgyMDJD Q0MsIAogICAgICAgICAgICAgICAgMHgwMDAwMDRDQwogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA3 MDgsIAogICAgICAgICAgICAgICAgMHgwMDAwNTk1MiwgCiAgICAgICAgICAgICAgICAweDAwMDAw MDY0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDksIAogICAgICAgICAgICAgICAgMHhFODIw MkQwQSwgCiAgICAgICAgICAgICAgICAweDAwMDAwNTBBCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAw MDY0MCwgCiAgICAgICAgICAgICAgICAweDAwMDA0QkE5LCAKICAgICAgICAgICAgICAgIDB4MDAw MDAwNjQsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwOSwgCiAgICAgICAgICAgICAgICAweEU4 MjAyRDQ4LCAKICAgICAgICAgICAgICAgIDB4MDAwMDA1NDgKICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAw MDAwMzIwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDE3MEIsIAogICAgICAgICAgICAgICAgMHgw MDAwMDA2NCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDA5LCAKICAgICAgICAgICAgICAgIDB4 RTgyMDJGODAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDc4MAogICAgICAgICAgICB9CiAgICAg ICAgfSkKICAgICAgICBNZXRob2QgKF9QUEMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewog ICAgICAgICAgICBTdG9yZSAoU2l6ZU9mIChfUFNTKSwgXF9TQi5QQ0kwLlNCUkcuRUMuUENPVSkK ICAgICAgICAgICAgUmV0dXJuIChcX1NCLlBDSTAuU0JSRy5FQy5NUFBDICgpKQogICAgICAgIH0K CiAgICAgICAgTmFtZSAoX1BTRCwgUGFja2FnZSAoMHgwMSkKICAgICAgICB7CiAgICAgICAgICAg IFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDUsIAogICAg ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAg ICAgICAgIDB4MDAwMDAwRkQsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMgogICAgICAgICAg ICB9CiAgICAgICAgfSkKICAgIH0KCiAgICBTY29wZSAoXF9QUi5QMDAyKQogICAgewogICAgICAg IE5hbWUgKF9QQ1QsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgewogICAgICAgICAgICBSZXNvdXJj ZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4 ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lk dGgKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQK ICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAg ICAgICAgICAgICAgICAsKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVt cGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhX LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAog ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAg ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAg ICAgICAgICAgICwpCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKF9QU1Ms IFBhY2thZ2UgKDB4MDYpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwOTYwLCAKICAgICAgICAgICAgICAgIDB4 MDAwMDg4QjgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDA2NCwgCiAgICAgICAgICAgICAgICAw eDAwMDAwMDA5LCAKICAgICAgICAgICAgICAgIDB4RTgyMDJDNTAsIAogICAgICAgICAgICAgICAg MHgwMDAwMDQ1MAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA4OTgsIAogICAgICAgICAgICAgICAg MHgwMDAwNzdEMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDY0LCAKICAgICAgICAgICAgICAg IDB4MDAwMDAwMDksIAogICAgICAgICAgICAgICAgMHhFODIwMkM4RSwgCiAgICAgICAgICAgICAg ICAweDAwMDAwNDhFCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNikK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDdEMCwgCiAgICAgICAgICAgICAg ICAweDAwMDA2ODA3LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwNjQsIAogICAgICAgICAgICAg ICAgMHgwMDAwMDAwOSwgCiAgICAgICAgICAgICAgICAweEU4MjAyQ0NDLCAKICAgICAgICAgICAg ICAgIDB4MDAwMDA0Q0MKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA2 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwNzA4LCAKICAgICAgICAgICAg ICAgIDB4MDAwMDU5NTIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDA2NCwgCiAgICAgICAgICAg ICAgICAweDAwMDAwMDA5LCAKICAgICAgICAgICAgICAgIDB4RTgyMDJEMEEsIAogICAgICAgICAg ICAgICAgMHgwMDAwMDUwQQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA2NDAsIAogICAgICAgICAg ICAgICAgMHgwMDAwNEJBOSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDY0LCAKICAgICAgICAg ICAgICAgIDB4MDAwMDAwMDksIAogICAgICAgICAgICAgICAgMHhFODIwMkQ0OCwgCiAgICAgICAg ICAgICAgICAweDAwMDAwNTQ4CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAo MHgwNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDMyMCwgCiAgICAgICAg ICAgICAgICAweDAwMDAxNzBCLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwNjQsIAogICAgICAg ICAgICAgICAgMHgwMDAwMDAwOSwgCiAgICAgICAgICAgICAgICAweEU4MjAyRjgwLCAKICAgICAg ICAgICAgICAgIDB4MDAwMDA3ODAKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTWV0 aG9kIChfUFBDLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUg KFNpemVPZiAoX1BTUyksIFxfU0IuUENJMC5TQlJHLkVDLlBDT1UpCiAgICAgICAgICAgIFJldHVy biAoXF9TQi5QQ0kwLlNCUkcuRUMuTVBQQyAoKSkKICAgICAgICB9CgogICAgICAgIE5hbWUgKF9Q U0QsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA1KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDA1LCAKICAgICAgICAgICAgICAgIDB4MDAs IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZE LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAg ICB9Cn0KCg== ------=_Part_21357_6821029.1213718862257-- From owner-freebsd-acpi@FreeBSD.ORG Thu Jun 19 06:39:21 2008 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E2A76106566C for ; Thu, 19 Jun 2008 06:39:21 +0000 (UTC) (envelope-from naylor.b.david@gmail.com) Received: from yw-out-2324.google.com (yw-out-2324.google.com [74.125.46.28]) by mx1.freebsd.org (Postfix) with ESMTP id 6E6798FC12 for ; Thu, 19 Jun 2008 06:39:21 +0000 (UTC) (envelope-from naylor.b.david@gmail.com) Received: by yw-out-2324.google.com with SMTP id 9so332092ywe.13 for ; Wed, 18 Jun 2008 23:39:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:organization:to:subject :date:user-agent:mime-version:message-id:content-type :content-transfer-encoding; bh=JO5FLgPYFAo2IKLEPSpqVA32bpamaXlwPuBZSMpatRU=; b=JLLnx3PAh2zh5n1jtSn3UuB5ld9lCBcpWrPE9Ed4YjEk8qD6Fb21CI42NScmzXrNTs eVBBpbZPcBLw3jhtL59nLQKAOKW378dqIoEYtJpSQHKHoNbE1ozWIvOacCNWhyqNugB6 VP39Tzqkur+uJ2cCVDM9m9VGhESaLS6zaWghg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:organization:to:subject:date:user-agent:mime-version :message-id:content-type:content-transfer-encoding; b=mfCpZDx7sePvyqpGMC9C1W4L7DCU5Hi/qnFlstXTbtEpejJYLsoSfncaNUfQj1ojY0 OXJJwFb+0mF33Km2SuJGP+hms9JW1ro0joWFcvPql7IIanyw14KiPnh5bBi8s3OZl4WD ymYqtrBWE4bLufzIWrcfQWdGaF5esrVxX4QzQ= Received: by 10.151.141.8 with SMTP id t8mr2511578ybn.192.1213855924033; Wed, 18 Jun 2008 23:12:04 -0700 (PDT) Received: from ?0.0.0.0? ( [196.34.241.123]) by mx.google.com with ESMTPS id p27sm926195qbp.15.2008.06.18.23.11.39 (version=TLSv1/SSLv3 cipher=RC4-MD5); Wed, 18 Jun 2008 23:12:01 -0700 (PDT) From: David Naylor Organization: Private To: freebsd-current@freebsd.org, freebsd-acpi@freebsd.org Date: Thu, 19 Jun 2008 08:10:40 +0200 User-Agent: KMail/1.9.7 MIME-Version: 1.0 Message-Id: <200806190810.46062.naylor.b.david@gmail.com> Content-Type: multipart/signed; boundary="nextPart1565257.Yrz2gdhkVl"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Subject: Boot failure with APIC (and other unexplained errors) X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Jun 2008 06:39:22 -0000 --nextPart1565257.Yrz2gdhkVl Content-Type: multipart/mixed; boundary="Boundary-01=_hhfWIr2+3jzfIbC" Content-Transfer-Encoding: 7bit Content-Disposition: inline --Boundary-01=_hhfWIr2+3jzfIbC Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi, I have been struggling for a while to get my Gigabyte GA-N650SLI-DS4L (nFor= ce=20 650i chipset) motherboard to play nicely with FreeBSD. Both Windows Vista = and=20 openSUSE 10.3 are able to boot up and run (with SMP) however I am unable to= =20 get SMP to work with FreeBSD as I have to disable APIC to get the hard-driv= es=20 detected. =20 I have finally gotten the dmesg from booting with APIC enabled (via serial)= =2E =20 Trying to boot from CD, flash or external harddrive all failed (with APIC=20 enabled). When APIC is enabled FreeBSD fails to recognise any IDE drives = (2=20 CD-ROMs) or SATA drives (2 hard drives). If I try boot with an external ha= rd=20 drive (via USB) or with a flash stick then FreeBSD freezes hard in mid boot= =20 (again, only with APIC enabled). =20 I have attached the dmesg's from both a non-APIC and an APIC boot and the A= SL=20 from the non-APIC boot. All using a kernel cvsup'ed today (18 June). =20 Also attached "no-apic.log" is a system crash that occurred during a non-AP= IC=20 boot (success boot, the system had been running for a few minutes) that did= =20 not happen before I updated the kernel (previous update was over a month=20 ago). =20 Apparently there was a memory problem. It did not affect system stability,= =20 only left the system in an inconsistent state when halted, or restarted. I= t=20 has been fixed (and explains some of the problems I had been having before)= =2E =20 Your help will be greatly appreciated. =20 Regards David --Boundary-01=_hhfWIr2+3jzfIbC-- --nextPart1565257.Yrz2gdhkVl Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.4 (FreeBSD) iD8DBQBIWfhlUaaFgP9pFrIRAg3kAJ9sG4l2AtLqXUb9XSX7Vi556OICbQCgidZ6 z8xZulyxeFf9WTx35+1xGwc= =hO9p -----END PGP SIGNATURE----- --nextPart1565257.Yrz2gdhkVl-- From owner-freebsd-acpi@FreeBSD.ORG Thu Jun 19 21:06:20 2008 Return-Path: Delivered-To: freebsd-acpi@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7FCE9106566B; Thu, 19 Jun 2008 21:06:20 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 49CB18FC1E; Thu, 19 Jun 2008 21:06:20 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from freefall.freebsd.org (linimon@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m5JL6KJ9047957; Thu, 19 Jun 2008 21:06:20 GMT (envelope-from linimon@freefall.freebsd.org) Received: (from linimon@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m5JL6KPR047953; Thu, 19 Jun 2008 21:06:20 GMT (envelope-from linimon) Date: Thu, 19 Jun 2008 21:06:20 GMT Message-Id: <200806192106.m5JL6KPR047953@freefall.freebsd.org> To: linimon@FreeBSD.org, freebsd-bugs@FreeBSD.org, freebsd-acpi@FreeBSD.org From: linimon@FreeBSD.org Cc: Subject: Re: kern/124744: [acpi] [patch] incorrect _BST result validation for Tosh Satellite P20 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Jun 2008 21:06:20 -0000 Old Synopsis: incorrect _BST result validation for Tosh Satellite P20 New Synopsis: [acpi] [patch] incorrect _BST result validation for Tosh Satellite P20 Responsible-Changed-From-To: freebsd-bugs->freebsd-acpi Responsible-Changed-By: linimon Responsible-Changed-When: Thu Jun 19 21:05:29 UTC 2008 Responsible-Changed-Why: Over to maintainer(s). http://www.freebsd.org/cgi/query-pr.cgi?pr=124744 From owner-freebsd-acpi@FreeBSD.ORG Fri Jun 20 14:43:52 2008 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 23B9A1065679 for ; Fri, 20 Jun 2008 14:43:52 +0000 (UTC) (envelope-from pisymbol@gmail.com) Received: from gv-out-0910.google.com (gv-out-0910.google.com [216.239.58.189]) by mx1.freebsd.org (Postfix) with ESMTP id 96A048FC16 for ; Fri, 20 Jun 2008 14:43:51 +0000 (UTC) (envelope-from pisymbol@gmail.com) Received: by gv-out-0910.google.com with SMTP id n8so198488gve.39 for ; Fri, 20 Jun 2008 07:43:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:mime-version:content-type:content-transfer-encoding :content-disposition; bh=0Azt8FURGFeG8GEUyLPmVt8xoJ5kbG7hazA+5WsG8Wg=; b=Im+8kD8NODBOJVIlZS8WU1mUuq68qNFOIyu0xDF++oH5+TaDysKq4hvbGrWWI8scvF LCcN4TtgthuUnf2WWm2QPcWBrOtkWOG+uOS9gx640mQtJChYwEHWIm/4tZsTJOO5Yq97 wKUc00CCfdQ0B3ARFrIEpXX0XDPe0DnMe4bDM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:mime-version:content-type :content-transfer-encoding:content-disposition; b=oITjmIX/j9qq9YwdLPxMQ60sTDqDjVQnKMpuALgkTkYmZeksjtqS8kPD/rX55O0Cxg H8GAoXYicU2PUA5MFrIXfvg9N1Sa/lM+enbUsmknw+Da8J1WmZPzhw+yXgzjD0GXrAdM a2QigIzmqKS7iplILsc3BQ9JzInb1+T/HFTuA= Received: by 10.210.142.6 with SMTP id p6mr3101738ebd.102.1213973029900; Fri, 20 Jun 2008 07:43:49 -0700 (PDT) Received: by 10.210.22.4 with HTTP; Fri, 20 Jun 2008 07:43:49 -0700 (PDT) Message-ID: <3c0b01820806200743r79a246e9h7500d1d1889c0fb3@mail.gmail.com> Date: Fri, 20 Jun 2008 10:43:49 -0400 From: "Alexander Sack" To: freebsd-acpi@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Cc: freebsd-questions@freebsd.org Subject: ACPI CA Embedded Controller (EC) error messages MSI notebook X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Jun 2008 14:43:52 -0000 Hello Folks: I have a MSI-1710A ("Megabook") which is Athlon X2 Turon based notebook (4GB RAM, Anyway during a 7.0-RELEASE-amd64 boot up I see: ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), AE_NOT_EXIST After looking at my ASL code, I noticed that YES this code was generated by the MSFT devkit which means its probably NOT spec compliant. RSDT: Length=64, Revision=1, Checksum=83, OEMID=MSI_NB, OEM Table ID=MEGABOOK, OEM Revision=0x7000725, Creator ID=MSFT, Creator Revision=0x97 Entries={ 0xcffc0200, 0xcffc0390, 0xcffc03f0, 0xcffc0430, 0xcffce040, 0xcffc42f0, 0xcffc4330 } The pertinent section (DSDT) condensed is: _SB.PCI0.SBRG: Device (EC) { Device (BAT1) { Name (_HID, EisaId ("PNP0C0A")) Name (_UID, One) Name (_PCL, Package (0x01) { _SB }) Method (_STA, 0, NotSerialized) { If (MYEC) { If (MBTS) { Return (0x1F) } Else { Return (0x0F) } } Else { Return (0x0F) } } } I've read http://www.freebsd.org/doc/en/books/handbook/acpi-debug.html which is very helpful. In any event should I attempt to try to rewrite my ASL to make it more spec conforming so Intel's CA likes it OR would it be better to try to work around it in the CA directly. I believe I understand the problem but I'm still reading the spec regarding embedded controller sections (which is a little different). I believe I'm probably not the only MSI FreeBSD owner so I figured I would share! Thanks a lot! -aps From owner-freebsd-acpi@FreeBSD.ORG Fri Jun 20 15:17:51 2008 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1246E106568B; Fri, 20 Jun 2008 15:17:51 +0000 (UTC) (envelope-from gahr@FreeBSD.org) Received: from cpanel03.rubas-s03.net (cpanel03.rubas-s03.net [195.182.222.73]) by mx1.freebsd.org (Postfix) with ESMTP id 9ECD28FC1E; Fri, 20 Jun 2008 15:17:49 +0000 (UTC) (envelope-from gahr@FreeBSD.org) Received: from [213.142.183.219] (helo=gahrtop.localhost) by cpanel03.rubas-s03.net with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.68) (envelope-from ) id 1K9iMv-0000B4-A4; Fri, 20 Jun 2008 17:17:42 +0200 Message-ID: <485BCA10.5010801@FreeBSD.org> Date: Fri, 20 Jun 2008 17:17:36 +0200 From: Pietro Cerutti Organization: The FreeBSD Project User-Agent: Thunderbird 2.0.0.14 (X11/20080610) MIME-Version: 1.0 To: Alexander Sack References: <3c0b01820806200743r79a246e9h7500d1d1889c0fb3@mail.gmail.com> In-Reply-To: <3c0b01820806200743r79a246e9h7500d1d1889c0fb3@mail.gmail.com> X-Enigmail-Version: 0.95.6 OpenPGP: id=9571F78E; url=http://gahr.ch/pgp/ Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cpanel03.rubas-s03.net X-AntiAbuse: Original Domain - freebsd.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - FreeBSD.org X-Source: X-Source-Args: X-Source-Dir: Cc: freebsd-acpi@freebsd.org, freebsd-questions@freebsd.org Subject: Re: ACPI CA Embedded Controller (EC) error messages MSI notebook X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Jun 2008 15:17:51 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Alexander Sack wrote: | Hello Folks: | | I have a MSI-1710A ("Megabook") which is Athlon X2 Turon based | notebook (4GB RAM, | | Anyway during a 7.0-RELEASE-amd64 boot up I see: | | ACPI Error (evregion-0427): No handler for Region [EC__] | (0xffffff00011cf680) [EmbeddedControl] [20070320] | ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] | ACPI Error (psparse-0626): Method parse/execution failed | [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), | AE_NOT_EXIST | ACPI Error (uteval-0309): Method execution failed | [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), | AE_NOT_EXIST | ACPI Error (evregion-0427): No handler for Region [EC__] | (0xffffff00011cf680) [EmbeddedControl] [20070320] | ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] | ACPI Error (psparse-0626): Method parse/execution failed | [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), | AE_NOT_EXIST | ACPI Error (uteval-0309): Method execution failed | [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), | AE_NOT_EXIST | ACPI Error (evregion-0427): No handler for Region [EC__] | (0xffffff00011cf680) [EmbeddedControl] [20070320] | ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] | ACPI Error (psparse-0626): Method parse/execution failed | [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), | AE_NOT_EXIST | ACPI Error (uteval-0309): Method execution failed | [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), | AE_NOT_EXIST | ACPI Error (evregion-0427): No handler for Region [EC__] | (0xffffff00011cf680) [EmbeddedControl] [20070320] | ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] | ACPI Error (psparse-0626): Method parse/execution failed | [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), | AE_NOT_EXIST | ACPI Error (uteval-0309): Method execution failed | [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), | AE_NOT_EXIST | ACPI Error (evregion-0427): No handler for Region [EC__] | (0xffffff00011cf680) [EmbeddedControl] [20070320] | ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] | ACPI Error (psparse-0626): Method parse/execution failed | [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), | AE_NOT_EXIST | ACPI Error (uteval-0309): Method execution failed | [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), | AE_NOT_EXIST | ACPI Error (evregion-0427): No handler for Region [EC__] | (0xffffff00011cf680) [EmbeddedControl] [20070320] | ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] | ACPI Error (psparse-0626): Method parse/execution failed | [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), | AE_NOT_EXIST | ACPI Error (uteval-0309): Method execution failed | [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), | AE_NOT_EXIST | ACPI Error (evregion-0427): No handler for Region [EC__] | (0xffffff00011cf680) [EmbeddedControl] [20070320] | ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] | ACPI Error (psparse-0626): Method parse/execution failed | [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), | AE_NOT_EXIST | ACPI Error (uteval-0309): Method execution failed | [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d24c0), | AE_NOT_EXIST | | After looking at my ASL code, I noticed that YES this code was | generated by the MSFT devkit which means its probably NOT spec | compliant. | | RSDT: Length=64, Revision=1, Checksum=83, | OEMID=MSI_NB, OEM Table ID=MEGABOOK, OEM Revision=0x7000725, | Creator ID=MSFT, Creator Revision=0x97 | Entries={ 0xcffc0200, 0xcffc0390, 0xcffc03f0, 0xcffc0430, | 0xcffce040, 0xcffc42f0, 0xcffc4330 } | | The pertinent section (DSDT) condensed is: | | _SB.PCI0.SBRG: | | Device (EC) { | Device (BAT1) { | Name (_HID, EisaId ("PNP0C0A")) | Name (_UID, One) | Name (_PCL, Package (0x01) | { | _SB | }) | Method (_STA, 0, NotSerialized) | { | If (MYEC) | { | If (MBTS) | { | Return (0x1F) | } | Else | { | Return (0x0F) | } | } | Else | { | Return (0x0F) | } | } | } | | I've read http://www.freebsd.org/doc/en/books/handbook/acpi-debug.html | which is very helpful. In any event should I attempt to try to | rewrite my ASL to make it more spec conforming so Intel's CA likes it | OR would it be better to try to work around it in the CA directly. I | believe I understand the problem but I'm still reading the spec | regarding embedded controller sections (which is a little different). | | I believe I'm probably not the only MSI FreeBSD owner so I figured I | would share! You're not the only one! I have a MSI-1034 (M662) Core2 Duo. Attached is my (patched) asl. Dunno if it can be of any use for you, though... /********* BEGIN MY ASL *********/ /* ~ RSD PTR: OEM=MSI, ACPI_Rev=1.0x (0) RSDT=0x7f7c0000, cksum=157 ~ */ /* ~ RSDT: Length=60, Revision=1, Checksum=212, OEMID=MSI_NB, OEM Table ID=MEGABOOK, OEM Revision=0x3262007, Creator ID=MSFT, Creator Revision=0x97 Entries={ 0x7f7c0200, 0x7f7c0390, 0x7f7c03f0, 0x7f7c0430, 0x7f7ce040, 0x7f7c4670 } ~ */ /* ~ FACP: Length=132, Revision=2, Checksum=98, OEMID=MSI, OEM Table ID=1034, OEM Revision=0x3262007, Creator ID=MSFT, Creator Revision=0x97 ~ FACS=0x7f7ce000, DSDT=0x7f7c05b0 INT_MODEL=APIC Preferred_PM_Profile=Unspecified (0) SCI_INT=9 SMI_CMD=0xb2, ACPI_ENABLE=0xe1, ACPI_DISABLE=0x1e, S4BIOS_REQ=0x0 PSTATE_CNT=0xe2 PM1a_EVT_BLK=0x800-0x803 PM1a_CNT_BLK=0x804-0x805 PM2_CNT_BLK=0x820-0x81f PM_TMR_BLK=0x808-0x80b GPE0_BLK=0x828-0x82f CST_CNT=0xe3 P_LVL2_LAT=1 us, P_LVL3_LAT=85 us FLUSH_SIZE=1024, FLUSH_STRIDE=16 DUTY_OFFSET=1, DUTY_WIDTH=0 DAY_ALRM=13, MON_ALRM=0, CENTURY=0 IAPC_BOOT_ARCH={8042} Flags={WBINVD,PROC_C1,SLP_BUTTON,RTC_S4} ~ */ /* ~ FACS: Length=64, HwSig=0x00000000, Firm_Wake_Vec=0x00000000 Global_Lock= Flags= Version=1 ~ */ /* ~ DSDT: Length=16571, Revision=1, Checksum=254, OEMID=MSI_NB, OEM Table ID=MEGABOOK, OEM Revision=0x3262007, Creator ID=INTL, Creator Revision=0x20051117 ~ */ /* ~ APIC: Length=92, Revision=1, Checksum=3, OEMID=MSI, OEM Table ID=OEMAPIC, OEM Revision=0x3262007, Creator ID=MSFT, Creator Revision=0x97 Local APIC ADDR=0xfee00000 Flags={PC-AT} Type=Local APIC ACPI CPU=1 Flags={ENABLED} APIC ID=0 Type=Local APIC ACPI CPU=2 Flags={ENABLED} APIC ID=1 Type=IO APIC APIC ID=2 INT BASE=0 ADDR=0x00000000fec00000 Type=INT Override BUS=0 IRQ=0 INTR=2 Flags={Polarity=conforming, Trigger=conforming} Type=INT Override BUS=0 IRQ=9 INTR=9 Flags={Polarity=active-hi, Trigger=level} ~ */ /* ~ MCFG: Length=60, Revision=1, Checksum=63, OEMID=MSI, OEM Table ID=OEMMCFG, OEM Revision=0x3262007, Creator ID=MSFT, Creator Revision=0x97 Base Address= 0x00000000e0000000 Segment Group= 0x0000 Start Bus= 0 End Bus= 255 ~ */ /* ~ SLIC: Length=374, Revision=1, Checksum=213, OEMID=MSI_NB, OEM Table ID=MEGABOOK, OEM Revision=0x3262007, Creator ID=MSFT, Creator Revision=0x97 ~ */ /* ~ HPET: Length=56, Revision=1, Checksum=3, OEMID=MSI, OEM Table ID=OEMHPET, OEM Revision=0x3262007, Creator ID=MSFT, Creator Revision=0x97 HPET Number=0 ADDR=0xfed00000:0[8] (Memory) HW Rev=0xff Comparitors=31 Counter Size=1 Legacy IRQ routing capable={TRUE} PCI Vendor ID=0xffff Minimal Tick=14318 ~ */ /* ~ * Intel ACPI Component Architecture ~ * AML Disassembler version 20041119 ~ * ~ */ DefinitionBlock ("DSDT.aml", "DSDT", 1, "MSI_NB", "MEGABOOK", 52830215) { ~ Scope (_PR) ~ { ~ Processor (CPU1, 0x01, 0x00000810, 0x06) ~ { ~ OperationRegion (STBL, SystemMemory, 0x7F7CE0C0, 0x06CA) ~ Name (NCPU, 0x02) ~ Name (TYPE, 0x80000000) ~ Name (HNDL, 0x80000000) ~ Name (CFGD, 0x010061F1) ~ Name (TBLD, 0x80) ~ Method (_PDC, 1, NotSerialized) ~ { ~ CreateDWordField (Arg0, Zero, REVS) ~ CreateDWordField (Arg0, 0x04, SIZE) ~ Store (SizeOf (Arg0), Local0) ~ Store (Subtract (Local0, 0x08), Local1) ~ CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP) ~ Name (STS0, Buffer (0x04) ~ { ~ 0x00, 0x00, 0x00, 0x00 ~ }) ~ Concatenate (STS0, TEMP, Local2) ~ _OSC (Buffer (0x10) ~ { ~ 0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, ~ 0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53 ~ }, REVS, SIZE, Local2) ~ } ~ Method (_OSC, 4, NotSerialized) ~ { ~ CreateDWordField (Arg3, Zero, STS0) ~ CreateDWordField (Arg3, 0x04, CAP0) ~ CreateDWordField (Arg0, Zero, IID0) ~ CreateDWordField (Arg0, 0x04, IID1) ~ CreateDWordField (Arg0, 0x08, IID2) ~ CreateDWordField (Arg0, 0x0C, IID3) ~ Name (UID0, Buffer (0x10) ~ { ~ 0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, ~ 0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53 ~ }) ~ CreateDWordField (UID0, Zero, EID0) ~ CreateDWordField (UID0, 0x04, EID1) ~ CreateDWordField (UID0, 0x08, EID2) ~ CreateDWordField (UID0, 0x0C, EID3) ~ If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3))))) ~ { ~ Store (0x06, STS0) ~ Return (Arg3) ~ } ~ If (LNot (LEqual (Arg1, One))) ~ { ~ Store (0x0A, STS0) ~ Return (Arg3) ~ } ~ Or (And (TYPE, 0x7FFFFFFF), CAP0, TYPE) ~ If (And (CFGD, One)) ~ { ~ If (LAnd (LEqual (And (TYPE, 0x09), 0x09), LNot (And (TBLD, One)))) ~ { ~ Or (TBLD, One, TBLD) ~ Load (STBL, HNDL) ~ } ~ } ~ If (And (CFGD, 0xF0)) ~ { ~ If (LAnd (LAnd (And (CFGD, 0x01000000), And (TYPE, 0x18)), LNot (And (TBLD, 0x02)))) ~ { ~ Or (TBLD, 0x02, TBLD) ~ } ~ } ~ Return (Arg3) ~ } ~ } ~ } ~ Scope (_PR) ~ { ~ Processor (CPU2, 0x02, 0x00000810, 0x06) ~ { ~ OperationRegion (STBL, SystemMemory, 0x7F7CE790, 0x0120) ~ Name (NCPU, 0x02) ~ Name (TYPE, 0x80000000) ~ Name (HNDL, 0x80000000) ~ Name (CFGD, 0x010061F1) ~ Name (TBLD, 0x80) ~ Method (_PDC, 1, NotSerialized) ~ { ~ CreateDWordField (Arg0, Zero, REVS) ~ CreateDWordField (Arg0, 0x04, SIZE) ~ Store (SizeOf (Arg0), Local0) ~ Store (Subtract (Local0, 0x08), Local1) ~ CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP) ~ Name (STS0, Buffer (0x04) ~ { ~ 0x00, 0x00, 0x00, 0x00 ~ }) ~ Concatenate (STS0, TEMP, Local2) ~ _OSC (Buffer (0x10) ~ { ~ 0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, ~ 0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53 ~ }, REVS, SIZE, Local2) ~ } ~ Method (_OSC, 4, NotSerialized) ~ { ~ CreateDWordField (Arg3, Zero, STS0) ~ CreateDWordField (Arg3, 0x04, CAP0) ~ CreateDWordField (Arg0, Zero, IID0) ~ CreateDWordField (Arg0, 0x04, IID1) ~ CreateDWordField (Arg0, 0x08, IID2) ~ CreateDWordField (Arg0, 0x0C, IID3) ~ Name (UID0, Buffer (0x10) ~ { ~ 0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, ~ 0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53 ~ }) ~ CreateDWordField (UID0, Zero, EID0) ~ CreateDWordField (UID0, 0x04, EID1) ~ CreateDWordField (UID0, 0x08, EID2) ~ CreateDWordField (UID0, 0x0C, EID3) ~ If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3))))) ~ { ~ Store (0x06, STS0) ~ Return (Arg3) ~ } ~ If (LNot (LEqual (Arg1, One))) ~ { ~ Store (0x0A, STS0) ~ Return (Arg3) ~ } ~ Or (And (TYPE, 0x7FFFFFFF), CAP0, TYPE) ~ If (And (CFGD, One)) ~ { ~ If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (TYPE, 0x09), 0x09)), LNot (And (TBLD, One)))) ~ { ~ Or (TBLD, One, TBLD) ~ Load (STBL, HNDL) ~ } ~ } ~ If (And (CFGD, 0xF0)) ~ { ~ If (LAnd (LAnd (And (CFGD, 0x01000000), And (TYPE, 0x18)), LNot (And (TBLD, 0x02)))) ~ { ~ Or (TBLD, 0x02, TBLD) ~ } ~ } ~ Return (Arg3) ~ } ~ } ~ } ~ Name (DP80, 0x80) ~ Name (DP90, 0x90) ~ Name (APIC, One) ~ Name (PMBS, 0x0800) ~ Name (PMLN, 0x80) ~ Name (GPBS, 0x0480) ~ Name (GPLN, 0x40) ~ Name (SMBS, Zero) ~ Name (SMBL, Zero) ~ Name (PM30, 0x0830) ~ Name (SUSW, 0xFF) ~ Name (SMIR, 0xB2) ~ Name (TPBA, 0xFED40000) ~ Name (TPBL, Zero) ~ Name (SMIP, 0xB2) ~ Name (PCIB, 0xE0000000) ~ Name (PCIL, 0x04000000) ~ OperationRegion (BIOS, SystemMemory, 0x7F7CE064, 0xFF) ~ Field (BIOS, ByteAcc, NoLock, Preserve) ~ { ~ SS1, 1, ~ SS2, 1, ~ SS3, 1, ~ SS4, 1, ~ Offset (0x01), ~ IOST, 16, ~ TOPM, 32, ~ ROMS, 32, ~ MG1B, 32, ~ MG1L, 32, ~ MG2B, 32, ~ MG2L, 32, ~ SPEE, 8, ~ DMAX, 8, ~ HPTA, 32, ~ CPB0, 32, ~ CPB1, 32, ~ CPB2, 32, ~ CPB3, 32, ~ ASSB, 8, ~ AOTB, 8, ~ AAXB, 32, ~ DTSF, 8, ~ DTSE, 8, ~ DTS1, 8, ~ DTS2, 8, ~ MPEN, 8, ~ TPMF, 8, ~ MG3B, 32, ~ MG3L, 32, ~ MH1B, 32, ~ MH1L, 32 ~ } ~ Method (RRIO, 4, NotSerialized) ~ { ~ Store ("RRIO", Debug) ~ } ~ Method (RDMA, 3, NotSerialized) ~ { ~ Store ("rDMA", Debug) ~ } ~ Name (PICM, Zero) ~ Method (_PIC, 1, NotSerialized) ~ { ~ If (Arg0) ~ { ~ Store (0xAA, DBG8) ~ } ~ Else ~ { ~ Store (0xAC, DBG8) ~ } ~ Store (Arg0, PICM) ~ } ~ Name (OSVR, Ones) ~ Method (OSFL, 0, NotSerialized) ~ { ~ If (LNot (LEqual (OSVR, Ones))) ~ { ~ Return (OSVR) ~ } ~ If (LEqual (PICM, Zero)) ~ { ~ Store (0xAC, DBG8) ~ } ~ Store (One, OSVR) ~ If (CondRefOf (_OSI, Local1)) ~ { ~ If (_OSI ("Windows 2000")) ~ { ~ Store (0x04, OSVR) ~ } ~ If (_OSI ("Windows 2001")) ~ { ~ Store (Zero, OSVR) ~ } ~ If (_OSI ("Windows 2001 SP1")) ~ { ~ Store (Zero, OSVR) ~ } ~ If (_OSI ("Windows 2001 SP2")) ~ { ~ Store (Zero, OSVR) ~ } ~ If (_OSI ("Windows 2001.1")) ~ { ~ Store (Zero, OSVR) ~ } ~ If (_OSI ("Windows 2001.1 SP1")) ~ { ~ Store (Zero, OSVR) ~ } ~ If (_OSI ("Windows 2006")) ~ { ~ Store (Zero, OSVR) ~ } ~ } ~ Else ~ { ~ If (MCTH (_OS, "Microsoft Windows NT")) ~ { ~ Store (0x04, OSVR) ~ } ~ Else ~ { ~ If (MCTH (_OS, "Microsoft WindowsME: Millennium Edition")) ~ { ~ Store (0x02, OSVR) ~ } ~ If (MCTH (_OS, "Linux")) ~ { ~ Store (0x03, OSVR) ~ } ~ } ~ } ~ Return (OSVR) ~ } ~ Method (MCTH, 2, NotSerialized) ~ { ~ If (LLess (SizeOf (Arg0), SizeOf (Arg1))) ~ { ~ Return (Zero) ~ } ~ Add (SizeOf (Arg0), One, Local0) ~ Name (BUF0, Buffer (Local0) {}) ~ Name (BUF1, Buffer (Local0) {}) ~ Store (Arg0, BUF0) ~ Store (Arg1, BUF1) ~ While (Local0) ~ { ~ Decrement (Local0) ~ If (LNot (LEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (BUF1, Local0))))) ~ { ~ Return (Zero) ~ } ~ } ~ Return (One) ~ } ~ Name (PRWP, Package (0x02) ~ { ~ Zero, ~ Zero ~ }) ~ Method (GPRW, 2, NotSerialized) ~ { ~ Store (Arg0, Index (PRWP, Zero)) ~ Store (ShiftLeft (SS1, One), Local0) ~ Or (Local0, ShiftLeft (SS2, 0x02), Local0) ~ Or (Local0, ShiftLeft (SS3, 0x03), Local0) ~ Or (Local0, ShiftLeft (SS4, 0x04), Local0) ~ If (And (ShiftLeft (One, Arg1), Local0)) ~ { ~ Store (Arg1, Index (PRWP, One)) ~ } ~ Else ~ { ~ ShiftRight (Local0, One, Local0) ~ If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02))) ~ { ~ FindSetLeftBit (Local0, Index (PRWP, One)) ~ } ~ Else ~ { ~ FindSetRightBit (Local0, Index (PRWP, One)) ~ } ~ } ~ Return (PRWP) ~ } ~ Name (WAKP, Package (0x02) ~ { ~ Zero, ~ Zero ~ }) ~ OperationRegion (DEB0, SystemIO, DP80, One) ~ Field (DEB0, ByteAcc, NoLock, Preserve) ~ { ~ DBG8, 8 ~ } ~ OperationRegion (DEB1, SystemIO, DP90, 0x02) ~ Field (DEB1, WordAcc, NoLock, Preserve) ~ { ~ DBG9, 16 ~ } ~ Scope (_SB) ~ { ~ Name (PR00, Package (0x12) ~ { ~ Package (0x04) ~ { ~ 0x0001FFFF, ~ Zero, ~ LNKA, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0x0001FFFF, ~ One, ~ LNKB, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0x0001FFFF, ~ 0x02, ~ LNKC, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0x0001FFFF, ~ 0x03, ~ LNKD, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0x001FFFFF, ~ Zero, ~ LNKC, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0x001FFFFF, ~ One, ~ LNKD, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0x001DFFFF, ~ Zero, ~ LNKH, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0x001DFFFF, ~ One, ~ LNKD, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0x001DFFFF, ~ 0x02, ~ LNKC, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0x001DFFFF, ~ 0x03, ~ LNKA, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0x001EFFFF, ~ Zero, ~ LNKB, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0x001EFFFF, ~ One, ~ LNKE, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0x001BFFFF, ~ Zero, ~ LNKA, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0x001CFFFF, ~ Zero, ~ LNKA, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0x001CFFFF, ~ One, ~ LNKB, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0x001CFFFF, ~ 0x02, ~ LNKC, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0x001CFFFF, ~ 0x03, ~ LNKD, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0x0002FFFF, ~ Zero, ~ LNKA, ~ Zero ~ } ~ }) ~ Name (AR00, Package (0x12) ~ { ~ Package (0x04) ~ { ~ 0x0001FFFF, ~ Zero, ~ Zero, ~ 0x10 ~ }, ~ Package (0x04) ~ { ~ 0x0001FFFF, ~ One, ~ Zero, ~ 0x11 ~ }, ~ Package (0x04) ~ { ~ 0x0001FFFF, ~ 0x02, ~ Zero, ~ 0x12 ~ }, ~ Package (0x04) ~ { ~ 0x0001FFFF, ~ 0x03, ~ Zero, ~ 0x13 ~ }, ~ Package (0x04) ~ { ~ 0x001FFFFF, ~ Zero, ~ Zero, ~ 0x12 ~ }, ~ Package (0x04) ~ { ~ 0x001FFFFF, ~ One, ~ Zero, ~ 0x13 ~ }, ~ Package (0x04) ~ { ~ 0x001DFFFF, ~ Zero, ~ Zero, ~ 0x17 ~ }, ~ Package (0x04) ~ { ~ 0x001DFFFF, ~ One, ~ Zero, ~ 0x13 ~ }, ~ Package (0x04) ~ { ~ 0x001DFFFF, ~ 0x02, ~ Zero, ~ 0x12 ~ }, ~ Package (0x04) ~ { ~ 0x001DFFFF, ~ 0x03, ~ Zero, ~ 0x10 ~ }, ~ Package (0x04) ~ { ~ 0x001EFFFF, ~ Zero, ~ Zero, ~ 0x11 ~ }, ~ Package (0x04) ~ { ~ 0x001EFFFF, ~ One, ~ Zero, ~ 0x14 ~ }, ~ Package (0x04) ~ { ~ 0x001BFFFF, ~ Zero, ~ Zero, ~ 0x10 ~ }, ~ Package (0x04) ~ { ~ 0x001CFFFF, ~ Zero, ~ Zero, ~ 0x10 ~ }, ~ Package (0x04) ~ { ~ 0x001CFFFF, ~ One, ~ Zero, ~ 0x11 ~ }, ~ Package (0x04) ~ { ~ 0x001CFFFF, ~ 0x02, ~ Zero, ~ 0x12 ~ }, ~ Package (0x04) ~ { ~ 0x001CFFFF, ~ 0x03, ~ Zero, ~ 0x13 ~ }, ~ Package (0x04) ~ { ~ 0x0002FFFF, ~ Zero, ~ Zero, ~ 0x10 ~ } ~ }) ~ Name (PR04, Package (0x01) ~ { ~ Package (0x04) ~ { ~ 0x0004FFFF, ~ Zero, ~ LNKA, ~ Zero ~ } ~ }) ~ Name (AR04, Package (0x01) ~ { ~ Package (0x04) ~ { ~ 0x0004FFFF, ~ Zero, ~ Zero, ~ 0x10 ~ } ~ }) ~ Name (PR02, Package (0x04) ~ { ~ Package (0x04) ~ { ~ 0xFFFF, ~ Zero, ~ LNKB, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ One, ~ LNKC, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x02, ~ LNKD, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x03, ~ LNKA, ~ Zero ~ } ~ }) ~ Name (AR02, Package (0x04) ~ { ~ Package (0x04) ~ { ~ 0xFFFF, ~ Zero, ~ Zero, ~ 0x11 ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ One, ~ Zero, ~ 0x12 ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x02, ~ Zero, ~ 0x13 ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x03, ~ Zero, ~ 0x10 ~ } ~ }) ~ Name (PR03, Package (0x04) ~ { ~ Package (0x04) ~ { ~ 0xFFFF, ~ Zero, ~ LNKC, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ One, ~ LNKD, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x02, ~ LNKA, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x03, ~ LNKB, ~ Zero ~ } ~ }) ~ Name (AR03, Package (0x04) ~ { ~ Package (0x04) ~ { ~ 0xFFFF, ~ Zero, ~ Zero, ~ 0x12 ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ One, ~ Zero, ~ 0x13 ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x02, ~ Zero, ~ 0x10 ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x03, ~ Zero, ~ 0x11 ~ } ~ }) ~ Name (PR07, Package (0x04) ~ { ~ Package (0x04) ~ { ~ 0xFFFF, ~ Zero, ~ LNKD, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ One, ~ LNKA, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x02, ~ LNKB, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x03, ~ LNKC, ~ Zero ~ } ~ }) ~ Name (AR07, Package (0x04) ~ { ~ Package (0x04) ~ { ~ 0xFFFF, ~ Zero, ~ Zero, ~ 0x13 ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ One, ~ Zero, ~ 0x10 ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x02, ~ Zero, ~ 0x11 ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x03, ~ Zero, ~ 0x12 ~ } ~ }) ~ Name (PR08, Package (0x04) ~ { ~ Package (0x04) ~ { ~ 0xFFFF, ~ Zero, ~ LNKA, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ One, ~ LNKB, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x02, ~ LNKC, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x03, ~ LNKD, ~ Zero ~ } ~ }) ~ Name (AR08, Package (0x04) ~ { ~ Package (0x04) ~ { ~ 0xFFFF, ~ Zero, ~ Zero, ~ 0x10 ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ One, ~ Zero, ~ 0x11 ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x02, ~ Zero, ~ 0x12 ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x03, ~ Zero, ~ 0x13 ~ } ~ }) ~ Name (PR09, Package (0x04) ~ { ~ Package (0x04) ~ { ~ 0xFFFF, ~ Zero, ~ LNKB, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ One, ~ LNKC, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x02, ~ LNKD, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x03, ~ LNKA, ~ Zero ~ } ~ }) ~ Name (AR09, Package (0x04) ~ { ~ Package (0x04) ~ { ~ 0xFFFF, ~ Zero, ~ Zero, ~ 0x11 ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ One, ~ Zero, ~ 0x12 ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x02, ~ Zero, ~ 0x13 ~ }, ~ Package (0x04) ~ { ~ 0xFFFF, ~ 0x03, ~ Zero, ~ 0x10 ~ } ~ }) ~ Name (PRSA, ResourceTemplate () ~ { ~ IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,10,11,12,14,15} ~ }) ~ Alias (PRSA, PRSB) ~ Alias (PRSA, PRSC) ~ Alias (PRSA, PRSD) ~ Alias (PRSA, PRSE) ~ Alias (PRSA, PRSF) ~ Alias (PRSA, PRSG) ~ Alias (PRSA, PRSH) ~ Device (PCI0) ~ { ~ Name (_HID, EisaId ("PNP0A08")) ~ Name (_ADR, Zero) ~ Method (^BN00, 0, NotSerialized) ~ { ~ Return (Zero) ~ } ~ Method (_BBN, 0, NotSerialized) ~ { ~ Return (BN00 ()) ~ } ~ Name (_UID, Zero) ~ Method (_PRT, 0, NotSerialized) ~ { ~ If (PICM) ~ { ~ Return (AR00) ~ } ~ Return (PR00) ~ } ~ Method (_S3D, 0, NotSerialized) ~ { ~ If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02))) ~ { ~ Return (0x02) ~ } ~ Else ~ { ~ Return (0x03) ~ } ~ } ~ Name (_CID, 0x030AD041) ~ Device (MCH) ~ { ~ Name (_HID, EisaId ("PNP0C01")) ~ Name (_UID, 0x0A) ~ Name (_CRS, ResourceTemplate () ~ { ~ Memory32Fixed (ReadWrite, 0xFED13000, 0x00007000) ~ }) ~ } ~ Method (NPTS, 1, NotSerialized) ~ { ~ } ~ Method (NWAK, 1, NotSerialized) ~ { ~ } ~ Device (P0PC) ~ { ~ Name (_ADR, 0x00010000) ~ Method (_PRW, 0, NotSerialized) ~ { ~ Return (GPRW (0x09, 0x04)) ~ } ~ } ~ Device (P0P4) ~ { ~ Name (_ADR, 0x001E0000) ~ Method (_PRW, 0, NotSerialized) ~ { ~ Return (GPRW (0x0B, 0x04)) ~ } ~ Method (_PRT, 0, NotSerialized) ~ { ~ If (PICM) ~ { ~ Return (AR04) ~ } ~ Return (PR04) ~ } ~ Device (CBC0) ~ { ~ Name (_ADR, 0x00040000) ~ OperationRegion (CBR0, PCI_Config, Zero, 0xE4) ~ Field (CBR0, DWordAcc, NoLock, Preserve) ~ { ~ Offset (0x44), ~ C044, 32, ~ Offset (0x91), ~ C091, 8, ~ Offset (0xA4), ~ C0A4, 8, ~ C0A5, 8, ~ Offset (0xE0), ~ C0E0, 8, ~ C0E1, 8 ~ } ~ Method (_STA, 0, NotSerialized) ~ { ~ Return (0x0F) ~ } ~ Method (_S3D, 0, NotSerialized) ~ { ~ Return (0x03) ~ } ~ Method (_INI, 0, NotSerialized) ~ { ~ Or (C0A5, 0x81, C0A5) ~ And (C091, 0x7F, C091) ~ Store (Zero, C0A4) ~ } ~ Method (CEV0, 0, NotSerialized) ~ { ~ And (C0A5, 0x80, Local0) ~ Store (0xCB, DBG8) ~ If (Local0) ~ { ~ Notify (CBC0, 0x02) ~ Sleep (0x0BB8) ~ And (C0A5, 0xFE, Local1) ~ Store (Local1, C0A5) ~ Or (Local1, One, Local1) ~ Store (Local1, C0A5) ~ } ~ } ~ Method (_PRW, 0, NotSerialized) ~ { ~ Return (GPRW (0x0B, 0x03)) ~ } ~ } ~ Device (CBC2) ~ { ~ Name (_ADR, 0x00040002) ~ } ~ Device (CBC3) ~ { ~ Name (_ADR, 0x00040003) ~ } ~ Device (CBC4) ~ { ~ Name (_ADR, 0x00040004) ~ } ~ } ~ Device (SBRG) ~ { ~ Name (_ADR, 0x001F0000) ~ Device (IELK) ~ { ~ Name (_HID, "AWY0001") ~ OperationRegion (RXA0, PCI_Config, 0xA0, 0x20) ~ Field (RXA0, ByteAcc, NoLock, Preserve) ~ { ~ , 9, ~ PBLV, 1, ~ Offset (0x10), ~ , 1, ~ PBMS, 1, ~ , 1, ~ PMCS, 1, ~ ECNS, 1, ~ Offset (0x11), ~ ECT1, 16, ~ ELEN, 1, ~ Offset (0x14) ~ } ~ Method (\_GPE._L0A, 0, NotSerialized) ~ { ~ Notify (\_SB.PCI0.SBRG.IELK, 0x81) ~ Store (One, \_SB.PCI0.SBRG.IELK.PMCS) ~ } ~ Method (_STA, 0, NotSerialized) ~ { ~ If (ELEN) ~ { ~ Return (0x0F) ~ } ~ Else ~ { ~ Return (Zero) ~ } ~ } ~ Method (SMOD, 1, NotSerialized) ~ { ~ } ~ Method (GPBS, 0, NotSerialized) ~ { ~ Return (XOr (PBLV, One)) ~ } ~ } ~ Method (SPTS, 1, NotSerialized) ~ { ~ Store (One, PS1S) ~ Store (One, PS1E) ~ Store (One, SLPS) ~ } ~ Method (SWAK, 1, NotSerialized) ~ { ~ Store (Zero, SLPS) ~ Store (Zero, PS1E) ~ If (BRTC) {} ~ Else ~ { ~ Notify (PWRB, 0x02) ~ } ~ } ~ OperationRegion (APMP, SystemIO, SMIR, 0x02) ~ Field (APMP, ByteAcc, NoLock, Preserve) ~ { ~ APMC, 8, ~ APMS, 8 ~ } ~ Field (APMP, ByteAcc, NoLock, Preserve) ~ { ~ Offset (0x01), ~ , 1, ~ BRTC, 1 ~ } ~ OperationRegion (PMS0, SystemIO, PMBS, 0x04) ~ Field (PMS0, ByteAcc, NoLock, Preserve) ~ { ~ , 10, ~ RTCS, 1, ~ , 4, ~ WAKS, 1, ~ Offset (0x03), ~ PWBT, 1, ~ Offset (0x04) ~ } ~ OperationRegion (SMIE, SystemIO, PM30, 0x08) ~ Field (SMIE, ByteAcc, NoLock, Preserve) ~ { ~ , 4, ~ PS1E, 1, ~ , 31, ~ PS1S, 1, ~ Offset (0x08) ~ } ~ Scope (\_SB) ~ { ~ } ~ Device (PIC) ~ { ~ Name (_HID, EisaId ("PNP0000")) ~ Name (_CRS, ResourceTemplate () ~ { ~ IO (Decode16, 0x0020, 0x0020, 0x00, 0x02) ~ IO (Decode16, 0x00A0, 0x00A0, 0x00, 0x02) ~ IRQNoFlags () {2} ~ }) ~ } ~ Device (DMAD) ~ { ~ Name (_HID, EisaId ("PNP0200")) ~ Name (_CRS, ResourceTemplate () ~ { ~ DMA (Compatibility, BusMaster, Transfer8) {4} ~ IO (Decode16, 0x0000, 0x0000, 0x00, 0x10) ~ IO (Decode16, 0x0081, 0x0081, 0x00, 0x03) ~ IO (Decode16, 0x0087, 0x0087, 0x00, 0x01) ~ IO (Decode16, 0x0089, 0x0089, 0x00, 0x03) ~ IO (Decode16, 0x008F, 0x008F, 0x00, 0x01) ~ IO (Decode16, 0x00C0, 0x00C0, 0x00, 0x20) ~ }) ~ } ~ Device (TMR) ~ { ~ Name (_HID, EisaId ("PNP0100")) ~ Name (_CRS, ResourceTemplate () ~ { ~ IO (Decode16, 0x0040, 0x0040, 0x00, 0x04) ~ IRQNoFlags () {0} ~ }) ~ } ~ Device (RTC0) ~ { ~ Name (_HID, EisaId ("PNP0B00")) ~ Name (_CRS, ResourceTemplate () ~ { ~ IO (Decode16, 0x0070, 0x0070, 0x00, 0x02) ~ IRQNoFlags () {8} ~ }) ~ } ~ Device (PS2K) ~ { ~ Name (_HID, EisaId ("PNP0303")) ~ Name (_CID, 0x0B03D041) ~ Method (_STA, 0, NotSerialized) ~ { ~ ShiftLeft (One, 0x0A, Local0) ~ If (And (IOST, Local0)) ~ { ~ Return (0x0F) ~ } ~ Return (Zero) ~ } ~ Name (_CRS, ResourceTemplate () ~ { ~ IO (Decode16, 0x0060, 0x0060, 0x00, 0x01) ~ IO (Decode16, 0x0064, 0x0064, 0x00, 0x01) ~ IRQNoFlags () {1} ~ }) ~ } ~ Device (PS2M) ~ { ~ Name (_HID, EisaId ("PNP0F03")) ~ Name (_CID, 0x130FD041) ~ Method (_STA, 0, NotSerialized) ~ { ~ ShiftLeft (One, 0x0C, Local0) ~ If (And (IOST, Local0)) ~ { ~ Return (0x0F) ~ } ~ Return (Zero) ~ } ~ Name (_CRS, ResourceTemplate () ~ { ~ IRQNoFlags () {12} ~ }) ~ } ~ Device (SPKR) ~ { ~ Name (_HID, EisaId ("PNP0800")) ~ Name (_CRS, ResourceTemplate () ~ { ~ IO (Decode16, 0x0061, 0x0061, 0x00, 0x01) ~ }) ~ } ~ Device (COPR) ~ { ~ Name (_HID, EisaId ("PNP0C04")) ~ Name (_CRS, ResourceTemplate () ~ { ~ IO (Decode16, 0x00F0, 0x00F0, 0x00, 0x10) ~ IRQNoFlags () {13} ~ }) ~ } ~ Device (RMSC) ~ { ~ Name (_HID, EisaId ("PNP0C02")) ~ Name (_UID, 0x10) ~ Name (CRS, ResourceTemplate () ~ { ~ IO (Decode16, 0x0010, 0x0010, 0x00, 0x10) ~ IO (Decode16, 0x0022, 0x0022, 0x00, 0x1E) ~ IO (Decode16, 0x0044, 0x0044, 0x00, 0x1C) ~ IO (Decode16, 0x0063, 0x0063, 0x00, 0x01) ~ IO (Decode16, 0x0065, 0x0065, 0x00, 0x01) ~ IO (Decode16, 0x0067, 0x0067, 0x00, 0x09) ~ IO (Decode16, 0x0072, 0x0072, 0x00, 0x0E) ~ IO (Decode16, 0x0080, 0x0080, 0x00, 0x01) ~ IO (Decode16, 0x0084, 0x0084, 0x00, 0x03) ~ IO (Decode16, 0x0088, 0x0088, 0x00, 0x01) ~ IO (Decode16, 0x008C, 0x008C, 0x00, 0x03) ~ IO (Decode16, 0x0090, 0x0090, 0x00, 0x10) ~ IO (Decode16, 0x00A2, 0x00A2, 0x00, 0x1E) ~ IO (Decode16, 0x00E0, 0x00E0, 0x00, 0x10) ~ IO (Decode16, 0x04D0, 0x04D0, 0x00, 0x02) ~ IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) ~ IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) ~ IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) ~ Memory32Fixed (ReadOnly, 0xFFF80000, 0x00080000) ~ Memory32Fixed (ReadOnly, 0xFFB80000, 0x0017D000) ~ Memory32Fixed (ReadWrite, 0xFED1C000, 0x00004000) ~ Memory32Fixed (ReadWrite, 0xFED20000, 0x00070000) ~ Memory32Fixed (ReadOnly, 0xFFF80000, 0x00080000) ~ }) ~ Method (_CRS, 0, NotSerialized) ~ { ~ CreateWordField (CRS, 0x7A, GP00) ~ CreateWordField (CRS, 0x7C, GP01) ~ CreateByteField (CRS, 0x7F, GP0L) ~ Store (PMBS, GP00) ~ Store (PMBS, GP01) ~ Store (PMLN, GP0L) ~ If (SMBS) ~ { ~ CreateWordField (CRS, 0x82, GP10) ~ CreateWordField (CRS, 0x84, GP11) ~ CreateByteField (CRS, 0x87, GP1L) ~ Store (SMBS, GP10) ~ Store (SMBS, GP11) ~ Store (SMBL, GP1L) ~ } ~ If (GPBS) ~ { ~ CreateWordField (CRS, 0x8A, GP20) ~ CreateWordField (CRS, 0x8C, GP21) ~ CreateByteField (CRS, 0x8F, GP2L) ~ Store (GPBS, GP20) ~ Store (GPBS, GP21) ~ Store (GPLN, GP2L) ~ } ~ Return (CRS) ~ } ~ } ~ Device (HPET) ~ { ~ Name (_HID, EisaId ("PNP0103")) ~ Name (CRS, ResourceTemplate () ~ { ~ Memory32Fixed (ReadOnly, 0xFED00000, 0x00000400) ~ }) ~ OperationRegion (^LPCR, SystemMemory, 0xFED1F404, 0x04) ~ Field (LPCR, AnyAcc, NoLock, Preserve) ~ { ~ HPTS, 2, ~ , 5, ~ HPTE, 1, ~ Offset (0x04) ~ } ~ Method (_STA, 0, NotSerialized) ~ { ~ If (LEqual (OSFL (), Zero)) ~ { ~ If (HPTE) ~ { ~ Return (0x0F) ~ } ~ } ~ Else ~ { ~ If (HPTE) ~ { ~ Return (0x0B) ~ } ~ } ~ Return (Zero) ~ } ~ Method (_CRS, 0, NotSerialized) ~ { ~ CreateDWordField (CRS, 0x04, HPT) ~ Multiply (HPTS, 0x1000, Local0) ~ Add (Local0, 0xFED00000, HPT) ~ Return (CRS) ~ } ~ } ~ OperationRegion (RX80, PCI_Config, Zero, 0xFF) ~ Field (RX80, ByteAcc, NoLock, Preserve) ~ { ~ Offset (0x80), ~ LPCD, 16, ~ LPCE, 16 ~ } ~ Name (DBPT, Package (0x04) ~ { ~ Package (0x08) ~ { ~ 0x03F8, ~ 0x02F8, ~ 0x0220, ~ 0x0228, ~ 0x0238, ~ 0x02E8, ~ 0x0338, ~ 0x03E8 ~ }, ~ Package (0x08) ~ { ~ 0x03F8, ~ 0x02F8, ~ 0x0220, ~ 0x0228, ~ 0x0238, ~ 0x02E8, ~ 0x0338, ~ 0x03E8 ~ }, ~ Package (0x03) ~ { ~ 0x0378, ~ 0x0278, ~ 0x03BC ~ }, ~ Package (0x02) ~ { ~ 0x03F0, ~ 0x0370 ~ } ~ }) ~ Name (DDLT, Package (0x04) ~ { ~ Package (0x02) ~ { ~ Zero, ~ 0xFFF8 ~ }, ~ Package (0x02) ~ { ~ 0x04, ~ 0xFF8F ~ }, ~ Package (0x02) ~ { ~ 0x08, ~ 0xFCFF ~ }, ~ Package (0x02) ~ { ~ 0x0C, ~ 0xEFFF ~ } ~ }) ~ Method (RRIO, 4, NotSerialized) ~ { ~ If (LAnd (LNot (LGreater (Arg0, 0x03)), LNot (LLess (Arg0, Zero)))) ~ { ~ Store (Match (DerefOf (Index (DBPT, Arg0)), MEQ, Arg2, MTR, Zero, Zero), Local0) ~ If (LNot (LEqual (Local0, Ones))) ~ { ~ Store (DerefOf (Index (DerefOf (Index (DDLT, Arg0)), Zero)), Local1) ~ Store (DerefOf (Index (DerefOf (Index (DDLT, Arg0)), One)), Local2) ~ ShiftLeft (Local0, Local1, Local0) ~ And (LPCD, Local2, LPCD) ~ Or (LPCD, Local0, LPCD) ~ WX82 (Arg0, Arg1) ~ } ~ } ~ If (LEqual (Arg0, 0x08)) ~ { ~ If (LEqual (Arg2, 0x0200)) ~ { ~ WX82 (0x08, Arg0) ~ } ~ Else ~ { ~ If (LEqual (Arg2, 0x0208)) ~ { ~ WX82 (0x09, Arg0) ~ } ~ } ~ } ~ If (LAnd (LNot (LGreater (Arg0, 0x0D)), LNot (LLess (Arg0, 0x0A)))) ~ { ~ WX82 (Arg0, Arg1) ~ } ~ } ~ Method (WX82, 2, NotSerialized) ~ { ~ ShiftLeft (One, Arg0, Local0) ~ If (Arg1) ~ { ~ Or (LPCE, Local0, LPCE) ~ } ~ Else ~ { ~ Not (Local0, Local0) ~ And (LPCE, Local0, LPCE) ~ } ~ } ~ Method (RDMA, 3, NotSerialized) ~ { ~ } ~ Scope (\) ~ { ~ Field (BIOS, ByteAcc, NoLock, Preserve) ~ { ~ Offset (0x22), ~ OSYS, 16, ~ SMIF, 8, ~ BLID, 8, ~ ACPR, 32, ~ CADL, 16, ~ PADL, 16, ~ IGDS, 8, ~ CSTE, 16, ~ NSTE, 16, ~ SSTE, 16, ~ CTID, 8 ~ } ~ } ~ Device (EC) ~ { ~ Name (_HID, EisaId ("PNP0C09")) ~ Name (_GPE, 0x19) ~ Name (MYEC, Zero) ~ Name (CTSD, Zero) ~ Name (\PPCL, Zero) ~ Method (_REG, 2, NotSerialized) ~ { ~ If (LEqual (Arg0, 0x03)) ~ { ~ Store (Arg1, MYEC) ~ } ~ Store (Zero, CTSD) ~ Store (Zero, PPCL) ~ } ~ Name (_CRS, ResourceTemplate () ~ { ~ IO (Decode16, 0x0062, 0x0062, 0x00, 0x01) ~ IO (Decode16, 0x0066, 0x0066, 0x00, 0x01) ~ }) ~ OperationRegion (EC, EmbeddedControl, Zero, 0xFF) ~ Field (EC, ByteAcc, NoLock, Preserve) ~ { ~ SMPR, 8, ~ SMST, 8, ~ SMAD, 8, ~ SMCM, 8, ~ SMD0, 264, ~ SMAA, 8, ~ Offset (0x30), ~ POWS, 1, ~ LIDS, 1, ~ KBCS, 1, ~ Offset (0x31), ~ MBTS, 1, ~ MBCS, 1, ~ MBDS, 1, ~ MBFS, 1, ~ MBWS, 1, ~ MBLS, 1, ~ MBCL, 1, ~ MBFL, 1, ~ Offset (0x38), ~ MDCL, 8, ~ MDCH, 8, ~ MDVL, 8, ~ MDVH, 8, ~ MCAL, 8, ~ MCAH, 8, ~ MSTL, 8, ~ MSTH, 8, ~ MCCL, 8, ~ MCCH, 8, ~ MPOL, 8, ~ MPOH, 8, ~ MFCL, 8, ~ MFCH, 8, ~ MCUL, 8, ~ MCUH, 8, ~ MRCL, 8, ~ MRCH, 8, ~ MVOL, 8, ~ MVOH, 8, ~ MTEL, 8, ~ MTEH, 8, ~ RSV1, 8, ~ RSV2, 8, ~ SDCL, 8, ~ SDCH, 8, ~ SDVL, 8, ~ SDVH, 8, ~ SCAL, 8, ~ SCAH, 8, ~ SSTL, 8, ~ SSTH, 8, ~ SCCL, 8, ~ SCCH, 8, ~ SPOL, 8, ~ SPOH, 8, ~ SFCL, 8, ~ SFCH, 8, ~ SCUL, 8, ~ SCUH, 8, ~ SRCL, 8, ~ SRCH, 8, ~ SVOL, 8, ~ SVOH, 8, ~ STEL, 8, ~ STEH, 8, ~ Offset (0x68), ~ CPUT, 8, ~ Offset (0x7E), ~ RES1, 3, ~ CHET, 1, ~ RES2, 4, ~ Offset (0x80), ~ SYST, 8 ~ } ~ OperationRegion (APMP, SystemIO, 0xB2, 0x02) ~ Field (APMP, ByteAcc, NoLock, Preserve) ~ { ~ APMC, 8, ~ APMS, 8 ~ } ~ Device (ADP1) ~ { ~ Name (_HID, "ACPI0003") ~ Name (BFLG, One) ~ Name (ACP, One) ~ Name (INIT, One) ~ Method (_PSR, 0, NotSerialized) ~ { ~ If (ACP) ~ { ~ Return (One) ~ } ~ Else ~ { ~ Return (Zero) ~ } ~ } ~ Method (_STA, 0, NotSerialized) ~ { ~ If (MYEC) ~ { ~ If (INIT) ~ { ~ Store (MBTS, Local0) ~ If (LEqual (Local0, One)) ~ { ~ Store (One, BFLG) ~ } ~ Else ~ { ~ Store (Zero, BFLG) ~ } ~ Store (POWS, Local0) ~ If (LEqual (Local0, One)) ~ { ~ Store (One, ACP) ~ } ~ Else ~ { ~ Store (Zero, ACP) ~ } ~ } ~ Store (Zero, INIT) ~ } ~ Return (0x0F) ~ } ~ Name (_PCL, Package (0x01) ~ { ~ _SB ~ }) ~ } ~ Name (BIF0, Package (0x0D) ~ { ~ One, ~ 0x1130, ~ 0x1130, ~ One, ~ 0x39D0, ~ Zero, ~ Zero, ~ One, ~ One, ~ "BAT1", ~ "1234", ~ "LION", ~ "MSI Corp." ~ }) ~ Name (STAT, Package (0x04) ~ { ~ 0x02, ~ 0x0500, ~ 0x0800, ~ 0x03E8 ~ }) ~ Device (BAT1) ~ { ~ Name (_HID, EisaId ("PNP0C0A")) ~ Name (_UID, One) ~ Name (_PCL, Package (0x01) ~ { ~ _SB ~ }) ~ Method (_STA, 0, NotSerialized) ~ { ~ If (^^ADP1.BFLG) ~ { ~ Return (0x1F) ~ } ~ Else ~ { ~ Return (0x0F) ~ } ~ } ~ Method (_BIF, 0, NotSerialized) ~ { ~ If (MYEC) ~ { ~ UPBI () ~ } ~ Else ~ { ~ IVBI () ~ Store (0x99, DBG8) ~ Sleep (0x03E8) ~ } ~ Return (BIF0) ~ } ~ Method (_BST, 0, NotSerialized) ~ { ~ If (MYEC) ~ { ~ UPBS () ~ } ~ Else ~ { ~ IVBS () ~ } ~ Return (STAT) ~ } ~ Method (IVBI, 0, NotSerialized) ~ { ~ Store (Ones, Index (BIF0, One)) ~ Store (Ones, Index (BIF0, 0x02)) ~ Store (Ones, Index (BIF0, 0x04)) ~ Store ("Wrong", Index (BIF0, 0x09)) ~ Store (" ", Index (BIF0, 0x0A)) ~ Store ("Wrong", Index (BIF0, 0x0B)) ~ Store ("Wrong", Index (BIF0, 0x0C)) ~ } ~ Method (IVBS, 0, NotSerialized) ~ { ~ Store (Zero, Index (STAT, Zero)) ~ Store (Ones, Index (STAT, One)) ~ Store (Ones, Index (STAT, 0x02)) ~ Store (0x2710, Index (STAT, 0x03)) ~ } ~ Method (UPBI, 0, NotSerialized) ~ { ~ Store (Zero, Local0) ~ Store (Zero, Local1) ~ Store (Zero, Local2) ~ Store (Zero, Local3) ~ Store (MDCH, Local0) ~ Store (MDCL, Local1) ~ ShiftLeft (Local0, 0x08, Local0) ~ Or (Local0, Local1, Local0) ~ Store (Local0, Index (BIF0, One)) ~ Store (MFCH, Local0) ~ Store (MFCL, Local1) ~ ShiftLeft (Local0, 0x08, Local0) ~ Or (Local0, Local1, Local1) ~ Store (Local1, Index (BIF0, 0x02)) ~ Store (MDVH, Local0) ~ Store (MDVL, Local2) ~ ShiftLeft (Local0, 0x08, Local0) ~ Or (Local0, Local2, Local2) ~ Store (Local2, Index (BIF0, 0x04)) ~ If (LEqual (CTID, One)) ~ { ~ Store (CTID, DBG8) ~ Sleep (0x0BB8) ~ Store (" LG ", Index (BIF0, 0x0C)) ~ } ~ } ~ Method (UPBS, 0, NotSerialized) ~ { ~ Store (Zero, Local0) ~ Store (Zero, Local1) ~ Store (Zero, Local2) ~ Store (Zero, Local3) ~ Store (Zero, Local4) ~ Store (Zero, Local7) ~ Store (MBTS, Local0) ~ If (LEqual (Local0, One)) ~ { ~ Store (POWS, Local0) ~ If (LEqual (Local0, One)) ~ { ~ Store (MBCS, Local1) ~ If (LEqual (Local1, One)) ~ { ~ Or (Local4, 0x02, Local4) ~ } ~ } ~ Else ~ { ~ Or (Local4, One, Local4) ~ Store (MBLS, Local0) ~ If (LEqual (Local0, One)) ~ { ~ Or (Local4, 0x04, Local4) ~ } ~ } ~ Store (POWS, Local0) ~ If (LEqual (Local0, One)) ~ { ~ Store (MBCS, Local0) ~ If (LEqual (Local0, One)) ~ { ~ Store (MCUH, Local0) ~ Store (MCUL, Local1) ~ ShiftLeft (Local0, 0x08, Local0) ~ Or (Local0, Local1, Local1) ~ If (LEqual (Local1, 0xFFFF)) ~ { ~ Store (Ones, Local1) ~ } ~ Store (Local1, Index (STAT, One)) ~ } ~ Else ~ { ~ Store (Zero, Index (STAT, One)) ~ } ~ } ~ Else ~ { ~ Store (MCUH, Local0) ~ Store (MCUL, Local1) ~ ShiftLeft (Local0, 0x08, Local0) ~ Or (Local0, Local1, Local1) ~ XOr (Local1, 0xFFFF, Local1) ~ If (LEqual (Local1, Zero)) ~ { ~ Store (Ones, Local1) ~ } ~ Store (Local1, Index (STAT, One)) ~ } ~ Store (MRCH, Local0) ~ Store (MRCL, Local2) ~ ShiftLeft (Local0, 0x08, Local0) ~ Or (Local0, Local2, Local2) ~ Store (Local2, Index (STAT, 0x02)) ~ Store (MVOH, Local0) ~ Store (MVOL, Local3) ~ ShiftLeft (Local0, 0x08, Local0) ~ Or (Local0, Local3, Local3) ~ Store (Local3, Index (STAT, 0x03)) ~ Store (Local4, Index (STAT, Zero)) ~ Sleep (0x64) ~ } ~ Else ~ { ~ IVBS () ~ } ~ } ~ } ~ Method (_Q80, 0, NotSerialized) ~ { ~ Store (0x80, DBG8) ~ } ~ Method (_Q81, 0, NotSerialized) ~ { ~ If (LEqual (SPEE, Zero)) ~ { ~ Store (0x68, DBG8) ~ Store (0x68, APMC) ~ } ~ Else ~ { ~ Store (0x81, DBG8) ~ Or (One, PPCL, PPCL) ~ Notify (\_PR.CPU1, 0x80) ~ Notify (\_PR.CPU2, 0x80) ~ } ~ Store (One, CHET) ~ } ~ Method (_Q82, 0, NotSerialized) ~ { ~ If (LEqual (SPEE, Zero)) ~ { ~ Store (0x69, DBG8) ~ Store (0x69, APMC) ~ } ~ Else ~ { ~ Store (0x82, DBG8) ~ And (0xFE, PPCL, PPCL) ~ Notify (\_PR.CPU1, 0x80) ~ Notify (\_PR.CPU2, 0x80) ~ } ~ Store (One, CHET) ~ } ~ Method (_Q83, 0, NotSerialized) ~ { ~ Store (0x83, DBG8) ~ Store (Zero, Local0) ~ Store (POWS, Local0) ~ If (LEqual (Local0, One)) ~ { ~ Store (One, ^ADP1.ACP) ~ } ~ Else ~ { ~ Store (Zero, ^ADP1.ACP) ~ } ~ Notify (ADP1, 0x80) ~ } ~ Method (_Q84, 0, NotSerialized) ~ { ~ Store (0x84, DBG8) ~ Notify (LID0, 0x80) ~ } ~ Method (_Q85, 0, NotSerialized) ~ { ~ Store (0x85, DBG8) ~ Store (One, CTSD) ~ Notify (\_TZ.THRM, 0x80) ~ } ~ Method (_Q86, 0, NotSerialized) ~ { ~ Store (0x86, DBG8) ~ } ~ Method (_Q87, 0, NotSerialized) ~ { ~ Store (0x87, DBG8) ~ Store (Zero, Local0) ~ Store (MBTS, Local0) ~ If (LEqual (Local0, One)) ~ { ~ Store (One, ^ADP1.BFLG) ~ Notify (BAT1, 0x80) ~ } ~ Else ~ { ~ Store (Zero, ^ADP1.BFLG) ~ Notify (ADP1, 0x80) ~ Sleep (0x19) ~ Notify (BAT1, 0x81) ~ } ~ Notify (ADP1, 0x80) ~ } ~ Method (_Q88, 0, NotSerialized) ~ { ~ Store (0x88, DBG8) ~ } ~ Method (_Q89, 0, NotSerialized) ~ { ~ Store (0x89, DBG8) ~ } ~ Method (_Q8A, 0, NotSerialized) ~ { ~ Store (0x8A, DBG8) ~ Store (One, CTSD) ~ Notify (\_TZ.THRM, 0x80) ~ } ~ Method (_Q8B, 0, NotSerialized) ~ { ~ Store (0x8B, DBG8) ~ } ~ Method (_Q8C, 0, NotSerialized) ~ { ~ Store (0x8C, DBG8) ~ } ~ Method (_Q90, 0, NotSerialized) ~ { ~ Store (0x90, DBG8) ~ } ~ Method (_QB4, 0, NotSerialized) ~ { ~ Store (0xB4, DBG8) ~ If (LEqual (DSEN, Zero)) ~ { ~ Store (0x10, SMIF) ~ Store (0x70, APMC) ~ If (LEqual (SMIF, Zero)) ~ { ~ Store (CADL, PADL) ~ If (LEqual (OSFL (), Zero)) ~ { ~ Notify (PCI0, Zero) ~ } ~ Else ~ { ~ Notify (IGFX, Zero) ~ } ~ Sleep (0x02EE) ~ Notify (IGFX, 0x80) ~ } ~ } ~ If (LEqual (DSEN, One)) ~ { ~ Store (0x11, SMIF) ~ Store (0x70, APMC) ~ If (LEqual (SMIF, Zero)) ~ { ~ Notify (IGFX, 0x81) ~ } ~ } ~ } ~ Method (_QB5, 0, NotSerialized) ~ { ~ Store (0xB5, DBG8) ~ } ~ Method (_QB6, 0, NotSerialized) ~ { ~ Store (0xB6, DBG8) ~ } ~ Method (_QB7, 0, NotSerialized) ~ { ~ Store (0xB7, DBG8) ~ } ~ Method (_QB8, 0, NotSerialized) ~ { ~ Store (0xB8, DBG8) ~ } ~ Method (_QB9, 0, NotSerialized) ~ { ~ Store (0xB9, DBG8) ~ } ~ Scope (\_SB) ~ { ~ Name (SLPS, Zero) ~ Device (SLPB) ~ { ~ Name (_HID, EisaId ("PNP0C0E")) ~ } ~ Device (LID0) ~ { ~ Name (_HID, EisaId ("PNP0C0D")) ~ Method (_LID, 0, NotSerialized) ~ { ~ If (^^PCI0.SBRG.EC.MYEC) ~ { ~ Store (^^PCI0.SBRG.EC.LIDS, Local0) ~ } ~ Else ~ { ~ Store (One, Local0) ~ } ~ Return (Local0) ~ } ~ } ~ } ~ Scope (\_GPE) ~ { ~ Method (_L01, 0, NotSerialized) ~ { ~ Sleep (0xC8) ~ Store (One, \_SB.PCI0.WAWA.PDC1) ~ Store (One, \_SB.PCI0.WAWA.HPCS) ~ } ~ } ~ Scope (^^^PCI0) ~ { ~ Device (WAWA) ~ { ~ Name (_ADR, 0x001C0000) ~ OperationRegion (P1CS, PCI_Config, 0x40, 0x0100) ~ Field (P1CS, AnyAcc, NoLock, WriteAsZeros) ~ { ~ Offset (0x1A), ~ ABP1, 1, ~ , 2, ~ PDC1, 1, ~ , 2, ~ PDS1, 1, ~ Offset (0x20), ~ Offset (0x22), ~ PSP1, 1, ~ Offset (0x9C), ~ , 30, ~ HPCS, 1, ~ PMCS, 1 ~ } ~ Device (PECA) ~ { ~ Name (_ADR, Zero) ~ Method (_RMV, 0, NotSerialized) ~ { ~ Return (One) ~ } ~ } ~ } ~ } ~ } ~ Scope (^^PCI0) ~ { ~ Device (IGFX) ~ { ~ Name (\DSEN, One) ~ Name (_ADR, 0x00020000) ~ OperationRegion (APMP, SystemIO, 0xB2, 0x02) ~ Field (APMP, ByteAcc, NoLock, Preserve) ~ { ~ APMC, 8, ~ APMS, 8 ~ } ~ Method (_DOS, 1, NotSerialized) ~ { ~ Store (And (Arg0, 0x03), DSEN) ~ } ~ Method (_DOD, 0, NotSerialized) ~ { ~ Return (Package (0x03) ~ { ~ 0x00010100, ~ 0x00010240, ~ 0x00010410 ~ }) ~ } ~ Device (CRT) ~ { ~ Name (_ADR, 0x0100) ~ Method (_DCS, 0, NotSerialized) ~ { ~ Store (One, SMIF) ~ Store (0x68, APMC) ~ If (And (CSTE, 0x0101)) ~ { ~ Return (0x1F) ~ } ~ Return (0x1D) ~ } ~ Method (_DGS, 0, NotSerialized) ~ { ~ If (And (NSTE, 0x0101)) ~ { ~ Return (One) ~ } ~ Return (Zero) ~ } ~ Method (_DSS, 1, NotSerialized) ~ { ~ If (LEqual (And (Arg0, 0xC0000000), 0xC0000000)) ~ { ~ Store (NSTE, CSTE) ~ } ~ } ~ } ~ Device (DTV1) ~ { ~ Name (_ADR, 0x0240) ~ Method (_DCS, 0, NotSerialized) ~ { ~ Store (One, SMIF) ~ Store (0x68, APMC) ~ If (And (CSTE, 0x0202)) ~ { ~ Return (0x1F) ~ } ~ Return (0x1D) ~ } ~ Method (_DGS, 0, NotSerialized) ~ { ~ If (And (NSTE, 0x0202)) ~ { ~ Return (One) ~ } ~ Return (Zero) ~ } ~ Method (_DSS, 1, NotSerialized) ~ { ~ If (LEqual (And (Arg0, 0xC0000000), 0xC0000000)) ~ { ~ Store (NSTE, CSTE) ~ } ~ } ~ } ~ Device (LCD) ~ { ~ Name (_ADR, 0x0410) ~ Method (_DCS, 0, NotSerialized) ~ { ~ Store (One, SMIF) ~ Store (0x68, APMC) ~ If (And (CSTE, 0x0808)) ~ { ~ Return (0x1F) ~ } ~ Return (0x1D) ~ } ~ Method (_DGS, 0, NotSerialized) ~ { ~ If (And (NSTE, 0x0808)) ~ { ~ Return (One) ~ } ~ Return (Zero) ~ } ~ Method (_DSS, 1, NotSerialized) ~ { ~ If (LEqual (And (Arg0, 0xC0000000), 0xC0000000)) ~ { ~ Store (NSTE, CSTE) ~ } ~ } ~ } ~ } ~ } ~ Device (^PCIE) ~ { ~ Name (_HID, EisaId ("PNP0C02")) ~ Name (_UID, 0x11) ~ Name (CRS, ResourceTemplate () ~ { ~ Memory32Fixed (ReadOnly, 0xE0000000, 0x10000000) ~ }) ~ Method (_CRS, 0, NotSerialized) ~ { ~ CreateDWordField (CRS, 0x04, BAS1) ~ CreateDWordField (CRS, 0x08, LEN1) ~ Store (PCIB, BAS1) ~ Store (PCIL, LEN1) ~ Return (CRS) ~ } ~ } ~ Scope (\_TZ) ~ { ~ ThermalZone (THRM) ~ { ~ Method (KLV, 1, NotSerialized) ~ { ~ Add (Arg0, 0x0111, Local0) ~ Multiply (Local0, 0x0A, Local0) ~ Return (Local0) ~ } ~ Method (_TMP, 0, NotSerialized) ~ { ~ If (\_SB.PCI0.SBRG.EC.MYEC) ~ { ~ If (\_SB.PCI0.SBRG.EC.CTSD) ~ { ~ Store (Zero, \_SB.PCI0.SBRG.EC.CTSD) ~ Return (KLV (0x6E)) ~ } ~ Else ~ { ~ Store (\_SB.PCI0.SBRG.EC.CPUT, Local0) ~ Store (Local0, DBG8) ~ Return (KLV (Local0)) ~ } ~ } ~ Else ~ { ~ Return (KLV (0x1E)) ~ } ~ } ~ Method (_CRT, 0, NotSerialized) ~ { ~ Return (KLV (0x64)) ~ } ~ Name (_TC1, 0x00) ~ Name (_TC2, 0x0C) ~ Name (_TSP, 0x28) ~ } ~ } ~ Device (OMSC) ~ { ~ Name (_HID, EisaId ("PNP0C02")) ~ Name (_UID, Zero) ~ Name (CRS, ResourceTemplate () ~ { ~ Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) ~ Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) ~ }) ~ Method (_CRS, 0, NotSerialized) ~ { ~ If (APIC) ~ { ~ CreateDWordField (CRS, 0x08, ML01) ~ CreateDWordField (CRS, 0x04, MB01) ~ CreateDWordField (CRS, 0x14, ML02) ~ CreateDWordField (CRS, 0x10, MB02) ~ Store (0xFEC00000, MB01) ~ Store (0x1000, ML01) ~ Store (0xFEE00000, MB02) ~ Store (0x1000, ML02) ~ } ~ Return (CRS) ~ } ~ } ~ Device (^^RMEM) ~ { ~ Name (_HID, EisaId ("PNP0C01")) ~ Name (_UID, One) ~ Name (CRS, ResourceTemplate () ~ { ~ Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000) ~ Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) ~ Memory32Fixed (ReadOnly, 0x000E0000, 0x00020000) ~ Memory32Fixed (ReadWrite, 0x00100000, 0x00000000) ~ Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) ~ }) ~ Method (_CRS, 0, NotSerialized) ~ { ~ CreateDWordField (CRS, 0x10, BAS1) ~ CreateDWordField (CRS, 0x14, LEN1) ~ CreateDWordField (CRS, 0x1C, BAS2) ~ CreateDWordField (CRS, 0x20, LEN2) ~ CreateDWordField (CRS, 0x2C, LEN3) ~ CreateDWordField (CRS, 0x34, BAS4) ~ CreateDWordField (CRS, 0x38, LEN4) ~ If (OSFL ()) {} ~ Else ~ { ~ If (MG1B) ~ { ~ If (LGreater (MG1B, 0x000C0000)) ~ { ~ Store (0x000C0000, BAS1) ~ Subtract (MG1B, BAS1, LEN1) ~ } ~ } ~ Else ~ { ~ Store (0x000C0000, BAS1) ~ Store (0x00020000, LEN1) ~ } ~ If (Add (MG1B, MG1L, Local0)) ~ { ~ Store (Local0, BAS2) ~ Subtract (0x00100000, BAS2, LEN2) ~ } ~ } ~ Subtract (MG2B, 0x00100000, LEN3) ~ Store (MH1B, BAS4) ~ Subtract (Zero, BAS4, LEN4) ~ Return (CRS) ~ } ~ } ~ } ~ Device (IDE0) ~ { ~ Name (_ADR, 0x001F0002) ~ Name (^NATA, Package (0x01) ~ { ~ 0x001F0002 ~ }) ~ Name (REGF, One) ~ Method (_REG, 2, NotSerialized) ~ { ~ If (LEqual (Arg0, 0x02)) ~ { ~ Store (Arg1, REGF) ~ } ~ } ~ Name (TIM0, Package (0x08) ~ { ~ Package (0x04) ~ { ~ 0x78, ~ 0xB4, ~ 0xF0, ~ 0x0384 ~ }, ~ Package (0x04) ~ { ~ 0x23, ~ 0x21, ~ 0x10, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0x0B, ~ 0x09, ~ 0x04, ~ Zero ~ }, ~ Package (0x06) ~ { ~ 0x70, ~ 0x49, ~ 0x36, ~ 0x27, ~ 0x19, ~ 0x0F ~ }, ~ Package (0x06) ~ { ~ Zero, ~ One, ~ 0x02, ~ One, ~ 0x02, ~ One ~ }, ~ Package (0x06) ~ { ~ Zero, ~ Zero, ~ Zero, ~ One, ~ One, ~ One ~ }, ~ Package (0x04) ~ { ~ 0x04, ~ 0x03, ~ 0x02, ~ Zero ~ }, ~ Package (0x04) ~ { ~ 0x02, ~ One, ~ Zero, ~ Zero ~ } ~ }) ~ Name (TMD0, Buffer (0x14) {}) ~ CreateDWordField (TMD0, Zero, PIO0) ~ CreateDWordField (TMD0, 0x04, DMA0) ~ CreateDWordField (TMD0, 0x08, PIO1) ~ CreateDWordField (TMD0, 0x0C, DMA1) ~ CreateDWordField (TMD0, 0x10, CHNF) ~ OperationRegion (CFG2, PCI_Config, 0x40, 0x20) ~ Field (CFG2, DWordAcc, NoLock, Preserve) ~ { ~ PMPT, 4, ~ PSPT, 4, ~ PMRI, 6, ~ Offset (0x02), ~ SMPT, 4, ~ SSPT, 4, ~ SMRI, 6, ~ Offset (0x04), ~ PSRI, 4, ~ SSRI, 4, ~ Offset (0x08), ~ PM3E, 1, ~ PS3E, 1, ~ SM3E, 1, ~ SS3E, 1, ~ Offset (0x0A), ~ PMUT, 2, ~ , 2, ~ PSUT, 2, ~ Offset (0x0B), ~ SMUT, 2, ~ , 2, ~ SSUT, 2, ~ Offset (0x0C), ~ Offset (0x14), ~ PM6E, 1, ~ PS6E, 1, ~ SM6E, 1, ~ SS6E, 1, ~ PMCR, 1, ~ PSCR, 1, ~ SMCR, 1, ~ SSCR, 1, ~ , 4, ~ PMAE, 1, ~ PSAE, 1, ~ SMAE, 1, ~ SSAE, 1 ~ } ~ Name (GMPT, Zero) ~ Name (GMUE, Zero) ~ Name (GMUT, Zero) ~ Name (GMCR, Zero) ~ Name (GSPT, Zero) ~ Name (GSUE, Zero) ~ Name (GSUT, Zero) ~ Name (GSCR, Zero) ~ Device (CHN0) ~ { ~ Name (_ADR, Zero) ~ Method (_GTM, 0, NotSerialized) ~ { ~ ShiftLeft (PSCR, One, Local1) ~ Or (PMCR, Local1, Local0) ~ ShiftLeft (PMAE, 0x02, Local3) ~ ShiftLeft (PM6E, One, Local4) ~ Or (Local3, Local4, Local3) ~ Or (PM3E, Local3, Local1) ~ ShiftLeft (PMPT, 0x04, Local3) ~ Or (Local1, Local3, Local1) ~ ShiftLeft (PSAE, 0x02, Local3) ~ ShiftLeft (PS6E, One, Local4) ~ Or (Local3, Local4, Local3) ~ Or (PS3E, Local3, Local2) ~ ShiftLeft (PSPT, 0x04, Local3) ~ Or (Local2, Local3, Local2) ~ Return (GTM (PMRI, Local1, PMUT, PSRI, Local2, PSUT, Local0)) ~ } ~ Method (_STM, 3, NotSerialized) ~ { ~ Store (Arg0, Debug) ~ Store (Arg0, TMD0) ~ ShiftLeft (PMAE, 0x02, Local3) ~ ShiftLeft (PM6E, One, Local4) ~ Or (Local3, Local4, Local3) ~ Or (PM3E, Local3, Local0) ~ ShiftLeft (PMPT, 0x04, Local3) ~ Or (Local0, Local3, Local0) ~ ShiftLeft (PSAE, 0x02, Local3) ~ ShiftLeft (PS6E, One, Local4) ~ Or (Local3, Local4, Local3) ~ Or (PS3E, Local3, Local1) ~ ShiftLeft (PSPT, 0x04, Local3) ~ Or (Local1, Local3, Local1) ~ Store (PMRI, GMPT) ~ Store (Local0, GMUE) ~ Store (PMUT, GMUT) ~ Store (PMCR, GMCR) ~ Store (PSRI, GSPT) ~ Store (Local1, GSUE) ~ Store (PSUT, GSUT) ~ Store (PSCR, GSCR) ~ STM () ~ Store (GMPT, PMRI) ~ Store (GMUE, Local0) ~ Store (GMUT, PMUT) ~ Store (GMCR, PMCR) ~ Store (GSUE, Local1) ~ Store (GSUT, PSUT) ~ Store (GSCR, PSCR) ~ If (And (Local0, One)) ~ { ~ Store (One, PM3E) ~ } ~ Else ~ { ~ Store (Zero, PM3E) ~ } ~ If (And (Local0, 0x02)) ~ { ~ Store (One, PM6E) ~ } ~ Else ~ { ~ Store (Zero, PM6E) ~ } ~ If (And (Local0, 0x04)) ~ { ~ Store (One, PMAE) ~ } ~ Else ~ { ~ Store (Zero, PMAE) ~ } ~ If (And (Local1, One)) ~ { ~ Store (One, PS3E) ~ } ~ Else ~ { ~ Store (Zero, PS3E) ~ } ~ If (And (Local1, 0x02)) ~ { ~ Store (One, PS6E) ~ } ~ Else ~ { ~ Store (Zero, PS6E) ~ } ~ If (And (Local1, 0x04)) ~ { ~ Store (One, PSAE) ~ } ~ Else ~ { ~ Store (Zero, PSAE) ~ } ~ Store (GTF (Zero, Arg1), ATA0) ~ Store (GTF (One, Arg2), ATA1) ~ } ~ Device (DRV0) ~ { ~ Name (_ADR, Zero) ~ Method (_GTF, 0, NotSerialized) ~ { ~ Return (RATA (ATA0)) ~ } ~ } ~ Device (DRV1) ~ { ~ Name (_ADR, One) ~ Method (_GTF, 0, NotSerialized) ~ { ~ Return (RATA (ATA1)) ~ } ~ } ~ } ~ Device (CHN1) ~ { ~ Name (_ADR, One) ~ Method (_GTM, 0, NotSerialized) ~ { ~ ShiftLeft (SSCR, One, Local1) ~ Or (SMCR, Local1, Local0) ~ ShiftLeft (SMAE, 0x02, Local3) ~ ShiftLeft (SM6E, One, Local4) ~ Or (Local3, Local4, Local3) ~ Or (SM3E, Local3, Local1) ~ ShiftLeft (SMPT, 0x04, Local3) ~ Or (Local1, Local3, Local1) ~ ShiftLeft (SSAE, 0x02, Local3) ~ ShiftLeft (SS6E, One, Local4) ~ Or (Local3, Local4, Local3) ~ Or (SS3E, Local3, Local2) ~ ShiftLeft (SSPT, 0x04, Local3) ~ Or (Local2, Local3, Local2) ~ Return (GTM (SMRI, Local1, SMUT, SSRI, Local2, SSUT, Local0)) ~ } ~ Method (_STM, 3, NotSerialized) ~ { ~ Store (Arg0, Debug) ~ Store (Arg0, TMD0) ~ ShiftLeft (SMAE, 0x02, Local3) ~ ShiftLeft (SM6E, One, Local4) ~ Or (Local3, Local4, Local3) ~ Or (SM3E, Local3, Local0) ~ ShiftLeft (SMPT, 0x04, Local3) ~ Or (Local0, Local3, Local0) ~ ShiftLeft (SSAE, 0x02, Local3) ~ ShiftLeft (SS6E, One, Local4) ~ Or (Local3, Local4, Local3) ~ Or (SS3E, Local3, Local1) ~ ShiftLeft (SSPT, 0x04, Local3) ~ Or (Local1, Local3, Local1) ~ Store (SMRI, GMPT) ~ Store (Local0, GMUE) ~ Store (SMUT, GMUT) ~ Store (SMCR, GMCR) ~ Store (SSRI, GSPT) ~ Store (Local1, GSUE) ~ Store (SSUT, GSUT) ~ Store (SSCR, GSCR) ~ STM () ~ Store (GMPT, SMRI) ~ Store (GMUE, Local0) ~ Store (GMUT, SMUT) ~ Store (GMCR, SMCR) ~ Store (GSUE, Local1) ~ Store (GSUT, SSUT) ~ Store (GSCR, SSCR) ~ If (And (Local0, One)) ~ { ~ Store (One, SM3E) ~ } ~ Else ~ { ~ Store (Zero, SM3E) ~ } ~ If (And (Local0, 0x02)) ~ { ~ Store (One, SM6E) ~ } ~ Else ~ { ~ Store (Zero, SM6E) ~ } ~ If (And (Local0, 0x04)) ~ { ~ Store (One, SMAE) ~ } ~ Else ~ { ~ Store (Zero, SMAE) ~ } ~ If (And (Local1, One)) ~ { ~ Store (One, SS3E) ~ } ~ Else ~ { ~ Store (Zero, SS3E) ~ } ~ If (And (Local1, 0x02)) ~ { ~ Store (One, SS6E) ~ } ~ Else ~ { ~ Store (Zero, SS6E) ~ } ~ If (And (Local1, 0x04)) ~ { ~ Store (One, SSAE) ~ } ~ Else ~ { ~ Store (Zero, SSAE) ~ } ~ Store (GTF (Zero, Arg1), ATA2) ~ Store (GTF (One, Arg2), ATA3) ~ } ~ Device (DRV0) ~ { ~ Name (_ADR, Zero) ~ Method (_GTF, 0, NotSerialized) ~ { ~ Return (RATA (ATA2)) ~ } ~ } ~ Device (DRV1) ~ { ~ Name (_ADR, One) ~ Method (_GTF, 0, NotSerialized) ~ { ~ Return (RATA (ATA3)) ~ } ~ } ~ } ~ Method (GTM, 7, Serialized) ~ { ~ Store (Ones, PIO0) ~ Store (Ones, PIO1) ~ Store (Ones, DMA0) ~ Store (Ones, DMA1) ~ Store (0x10, CHNF) ~ If (REGF) {} ~ Else ~ { ~ Return (TMD0) ~ } ~ If (And (Arg1, 0x20)) ~ { ~ Or (CHNF, 0x02, CHNF) ~ } ~ Store (Match (DerefOf (Index (TIM0, One)), MEQ, Arg0, MTR, Zero, Zero), Local6) ~ Store (DerefOf (Index (DerefOf (Index (TIM0, Zero)), Local6)), Local7) ~ Store (Local7, DMA0) ~ Store (Local7, PIO0) ~ If (And (Arg4, 0x20)) ~ { ~ Or (CHNF, 0x08, CHNF) ~ } ~ Store (Match (DerefOf (Index (TIM0, 0x02)), MEQ, Arg3, MTR, Zero, Zero), Local6) ~ Store (DerefOf (Index (DerefOf (Index (TIM0, Zero)), Local6)), Local7) ~ Store (Local7, DMA1) ~ Store (Local7, PIO1) ~ If (And (Arg1, 0x07)) ~ { ~ Store (Arg2, Local5) ~ If (And (Arg1, 0x02)) ~ { ~ Add (Local5, 0x02, Local5) ~ } ~ If (And (Arg1, 0x04)) ~ { ~ Add (Local5, 0x04, Local5) ~ } ~ Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA0) ~ Or (CHNF, One, CHNF) ~ } ~ If (And (Arg4, 0x07)) ~ { ~ Store (Arg5, Local5) ~ If (And (Arg4, 0x02)) ~ { ~ Add (Local5, 0x02, Local5) ~ } ~ If (And (Arg4, 0x04)) ~ { ~ Add (Local5, 0x04, Local5) ~ } ~ Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA1) ~ Or (CHNF, 0x04, CHNF) ~ } ~ Store (TMD0, Debug) ~ Return (TMD0) ~ } ~ Method (STM, 0, Serialized) ~ { ~ If (REGF) {} ~ Else ~ { ~ Store (Zero, GMUE) ~ Store (Zero, GMUT) ~ Store (Zero, GSUE) ~ Store (Zero, GSUT) ~ If (And (CHNF, One)) ~ { ~ Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA0, MTR, Zero, Zero), Local0) ~ If (LGreater (Local0, 0x05)) ~ { ~ Store (0x05, Local0) ~ } ~ Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), GMUT) ~ Or (GMUE, One, GMUE) ~ If (LGreater (Local0, 0x02)) ~ { ~ Or (GMUE, 0x02, GMUE) ~ } ~ If (LGreater (Local0, 0x04)) ~ { ~ And (GMUE, 0xFD, GMUE) ~ Or (GMUE, 0x04, GMUE) ~ } ~ } ~ Else ~ { ~ If (Or (LEqual (PIO0, Ones), LEqual (PIO0, Zero))) ~ { ~ If (And (LLess (DMA0, Ones), LGreater (DMA0, Zero))) ~ { ~ Store (DMA0, PIO0) ~ Or (GMUE, 0x80, GMUE) ~ } ~ } ~ } ~ If (And (CHNF, 0x04)) ~ { ~ Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA1, MTR, Zero, Zero), Local0) ~ If (LGreater (Local0, 0x05)) ~ { ~ Store (0x05, Local0) ~ } ~ Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), GSUT) ~ Or (GSUE, One, GSUE) ~ If (LGreater (Local0, 0x02)) ~ { ~ Or (GSUE, 0x02, GSUE) ~ } ~ If (LGreater (Local0, 0x04)) ~ { ~ And (GSUE, 0xFD, GSUE) ~ Or (GSUE, 0x04, GSUE) ~ } ~ } ~ Else ~ { ~ If (Or (LEqual (PIO1, Ones), LEqual (PIO1, Zero))) ~ { ~ If (And (LLess (DMA1, Ones), LGreater (DMA1, Zero))) ~ { ~ Store (DMA1, PIO1) ~ Or (GSUE, 0x80, GSUE) ~ } ~ } ~ } ~ If (And (CHNF, 0x02)) ~ { ~ Or (GMUE, 0x20, GMUE) ~ } ~ If (And (CHNF, 0x08)) ~ { ~ Or (GSUE, 0x20, GSUE) ~ } ~ And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIO0, MTR, Zero, Zero), 0x07, Local0) ~ Store (DerefOf (Index (DerefOf (Index (TIM0, One)), Local0)), Local1) ~ Store (Local1, GMPT) ~ If (LLess (Local0, 0x03)) ~ { ~ Or (GMUE, 0x50, GMUE) ~ } ~ And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIO1, MTR, Zero, Zero), 0x07, Local0) ~ Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Local0)), Local1) ~ Store (Local1, GSPT) ~ If (LLess (Local0, 0x03)) ~ { ~ Or (GSUE, 0x50, GSUE) ~ } ~ } ~ } ~ Name (AT01, Buffer (0x07) ~ { ~ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF ~ }) ~ Name (AT02, Buffer (0x07) ~ { ~ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90 ~ }) ~ Name (AT03, Buffer (0x07) ~ { ~ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6 ~ }) ~ Name (AT04, Buffer (0x07) ~ { ~ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91 ~ }) ~ Name (ATA0, Buffer (0x1D) {}) ~ Name (ATA1, Buffer (0x1D) {}) ~ Name (ATA2, Buffer (0x1D) {}) ~ Name (ATA3, Buffer (0x1D) {}) ~ Name (ATAB, Buffer (0x1D) {}) ~ CreateByteField (ATAB, Zero, CMDC) ~ Method (GTFB, 3, Serialized) ~ { ~ Multiply (CMDC, 0x38, Local0) ~ Add (Local0, 0x08, Local1) ~ CreateField (ATAB, Local1, 0x38, CMDX) ~ Multiply (CMDC, 0x07, Local0) ~ CreateByteField (ATAB, Add (Local0, 0x02), A001) ~ CreateByteField (ATAB, Add (Local0, 0x06), A005) ~ Store (Arg0, CMDX) ~ Store (Arg1, A001) ~ Store (Arg2, A005) ~ Increment (CMDC) ~ } ~ Method (GTF, 2, Serialized) ~ { ~ Store (Arg1, Debug) ~ Store (Zero, CMDC) ~ Name (ID49, 0x0C00) ~ Name (ID59, Zero) ~ Name (ID53, 0x04) ~ Name (ID63, 0x0F00) ~ Name (ID88, 0x0F00) ~ Name (IRDY, One) ~ Name (PIOT, Zero) ~ Name (DMAT, Zero) ~ If (LEqual (SizeOf (Arg1), 0x0200)) ~ { ~ CreateWordField (Arg1, 0x62, IW49) ~ Store (IW49, ID49) ~ CreateWordField (Arg1, 0x6A, IW53) ~ Store (IW53, ID53) ~ CreateWordField (Arg1, 0x7E, IW63) ~ Store (IW63, ID63) ~ CreateWordField (Arg1, 0x76, IW59) ~ Store (IW59, ID59) ~ CreateWordField (Arg1, 0xB0, IW88) ~ Store (IW88, ID88) ~ } ~ Store (0xA0, Local7) ~ If (Arg0) ~ { ~ Store (0xB0, Local7) ~ And (CHNF, 0x08, IRDY) ~ If (And (CHNF, 0x10)) ~ { ~ Store (PIO1, PIOT) ~ } ~ Else ~ { ~ Store (PIO0, PIOT) ~ } ~ If (And (CHNF, 0x04)) ~ { ~ If (And (CHNF, 0x10)) ~ { ~ Store (DMA1, DMAT) ~ } ~ Else ~ { ~ Store (DMA0, DMAT) ~ } ~ } ~ } ~ Else ~ { ~ And (CHNF, 0x02, IRDY) ~ Store (PIO0, PIOT) ~ If (And (CHNF, One)) ~ { ~ Store (DMA0, DMAT) ~ } ~ } ~ If (LAnd (LAnd (And (ID53, 0x04), And (ID88, 0xFF00)), DMAT)) ~ { ~ Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMAT, MTR, Zero, Zero), Local1) ~ If (LGreater (Local1, 0x05)) ~ { ~ Store (0x05, Local1) ~ } ~ GTFB (AT01, Or (0x40, Local1), Local7) ~ } ~ Else ~ { ~ If (LAnd (And (ID63, 0xFF00), PIOT)) ~ { ~ And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIOT, MTR, Zero, Zero), 0x03, Local0) ~ Or (0x20, DerefOf (Index (DerefOf (Index (TIM0, 0x07)), Local0)), Local1) ~ GTFB (AT01, Local1, Local7) ~ } ~ } ~ If (IRDY) ~ { ~ And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIOT, MTR, Zero, Zero), 0x07, Local0) ~ Or (0x08, DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0)), Local1) ~ GTFB (AT01, Local1, Local7) ~ } ~ Else ~ { ~ If (And (ID49, 0x0400)) ~ { ~ GTFB (AT01, One, Local7) ~ } ~ } ~ If (LAnd (And (ID59, 0x0100), And (ID59, 0xFF))) ~ { ~ GTFB (AT03, And (ID59, 0xFF), Local7) ~ } ~ Store (ATAB, Debug) ~ Return (ATAB) ~ } ~ Method (RATA, 1, NotSerialized) ~ { ~ CreateByteField (Arg0, Zero, CMDN) ~ Multiply (CMDN, 0x38, Local0) ~ CreateField (Arg0, 0x08, Local0, RETB) ~ Store (RETB, Debug) ~ Concatenate (RETB, FZTF, RETB) ~ Return (RETB) ~ } ~ Name (FZTF, Buffer (0x07) ~ { ~ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5 ~ }) ~ } ~ Device (IDE1) ~ { ~ Name (_ADR, 0x001F0001) ~ } ~ Device (USB0) ~ { ~ Name (_ADR, 0x001D0000) ~ OperationRegion (BAR0, PCI_Config, 0xC4, One) ~ Field (BAR0, ByteAcc, NoLock, Preserve) ~ { ~ USBW, 2, ~ Offset (0x01) ~ } ~ Method (_S3D, 0, NotSerialized) ~ { ~ If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02))) ~ { ~ Return (0x02) ~ } ~ Else ~ { ~ Return (0x03) ~ } ~ } ~ Method (_PSW, 1, NotSerialized) ~ { ~ If (Arg0) ~ { ~ Store (0x03, USBW) ~ } ~ Else ~ { ~ Store (Zero, USBW) ~ } ~ } ~ Method (_PRW, 0, NotSerialized) ~ { ~ Return (GPRW (0x03, 0x03)) ~ } ~ } ~ Device (USB1) ~ { ~ Name (_ADR, 0x001D0001) ~ OperationRegion (BAR0, PCI_Config, 0xC4, One) ~ Field (BAR0, ByteAcc, NoLock, Preserve) ~ { ~ USBW, 2, ~ Offset (0x01) ~ } ~ Method (_S3D, 0, NotSerialized) ~ { ~ If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02))) ~ { ~ Return (0x02) ~ } ~ Else ~ { ~ Return (0x03) ~ } ~ } ~ Method (_PSW, 1, NotSerialized) ~ { ~ If (Arg0) ~ { ~ Store (0x03, USBW) ~ } ~ Else ~ { ~ Store (Zero, USBW) ~ } ~ } ~ Method (_PRW, 0, NotSerialized) ~ { ~ Return (GPRW (0x04, 0x03)) ~ } ~ } ~ Device (USB2) ~ { ~ Name (_ADR, 0x001D0002) ~ OperationRegion (BAR0, PCI_Config, 0xC4, One) ~ Field (BAR0, ByteAcc, NoLock, Preserve) ~ { ~ USBW, 2, ~ Offset (0x01) ~ } ~ Method (_S3D, 0, NotSerialized) ~ { ~ If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02))) ~ { ~ Return (0x02) ~ } ~ Else ~ { ~ Return (0x03) ~ } ~ } ~ Method (_PSW, 1, NotSerialized) ~ { ~ If (Arg0) ~ { ~ Store (0x03, USBW) ~ } ~ Else ~ { ~ Store (Zero, USBW) ~ } ~ } ~ Method (_PRW, 0, NotSerialized) ~ { ~ Return (GPRW (0x0C, 0x03)) ~ } ~ } ~ Device (USB3) ~ { ~ Name (_ADR, 0x001D0003) ~ OperationRegion (BAR0, PCI_Config, 0xC4, One) ~ Field (BAR0, ByteAcc, NoLock, Preserve) ~ { ~ USBW, 2, ~ Offset (0x01) ~ } ~ Method (_S3D, 0, NotSerialized) ~ { ~ If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02))) ~ { ~ Return (0x02) ~ } ~ Else ~ { ~ Return (0x03) ~ } ~ } ~ Method (_PSW, 1, NotSerialized) ~ { ~ If (Arg0) ~ { ~ Store (0x03, USBW) ~ } ~ Else ~ { ~ Store (Zero, USBW) ~ } ~ } ~ } ~ Device (EUSB) ~ { ~ Name (_ADR, 0x001D0007) ~ Method (_PRW, 0, NotSerialized) ~ { ~ Return (GPRW (0x0D, 0x03)) ~ } ~ } ~ Device (MC97) ~ { ~ Name (_ADR, 0x001E0003) ~ } ~ Device (AZAL) ~ { ~ Name (_ADR, 0x001B0000) ~ Method (_PRW, 0, NotSerialized) ~ { ~ Return (GPRW (0x05, 0x04)) ~ } ~ } ~ Device (P0PD) ~ { ~ Name (_ADR, 0x001C0000) ~ } ~ Device (P0P2) ~ { ~ Name (_ADR, 0x001C0001) ~ Method (_PRW, 0, NotSerialized) ~ { ~ Return (GPRW (0x09, 0x04)) ~ } ~ Method (_PRT, 0, NotSerialized) ~ { ~ If (PICM) ~ { ~ Return (AR02) ~ } ~ Return (PR02) ~ } ~ } ~ Device (P0P3) ~ { ~ Name (_ADR, 0x001C0002) ~ Method (_PRT, 0, NotSerialized) ~ { ~ If (PICM) ~ { ~ Return (AR03) ~ } ~ Return (PR03) ~ } ~ } ~ Device (P0P7) ~ { ~ Name (_ADR, 0x001C0003) ~ Method (_PRT, 0, NotSerialized) ~ { ~ If (PICM) ~ { ~ Return (AR07) ~ } ~ Return (PR07) ~ } ~ } ~ Device (P0P8) ~ { ~ Name (_ADR, 0x001C0004) ~ Method (_PRT, 0, NotSerialized) ~ { ~ If (PICM) ~ { ~ Return (AR08) ~ } ~ Return (PR08) ~ } ~ } ~ Device (P0P9) ~ { ~ Name (_ADR, 0x001C0005) ~ Method (_PRT, 0, NotSerialized) ~ { ~ If (PICM) ~ { ~ Return (AR09) ~ } ~ Return (PR09) ~ } ~ } ~ } ~ Scope (\_GPE) ~ { ~ Method (_L09, 0, NotSerialized) ~ { ~ Notify (\_SB.PCI0.P0PC, 0x02) ~ Notify (\_SB.PCI0.P0P2, 0x02) ~ Notify (\_SB.PWRB, 0x02) ~ } ~ Method (_L0B, 0, NotSerialized) ~ { ~ Notify (\_SB.PCI0.P0P4, 0x02) ~ Notify (\_SB.PCI0.P0P4.CBC0, 0x02) ~ Notify (\_SB.PWRB, 0x02) ~ } ~ Method (_L03, 0, NotSerialized) ~ { ~ Notify (\_SB.PCI0.USB0, 0x02) ~ Notify (\_SB.PWRB, 0x02) ~ } ~ Method (_L04, 0, NotSerialized) ~ { ~ Notify (\_SB.PCI0.USB1, 0x02) ~ Notify (\_SB.PWRB, 0x02) ~ } ~ Method (_L0C, 0, NotSerialized) ~ { ~ Notify (\_SB.PCI0.USB2, 0x02) ~ Notify (\_SB.PWRB, 0x02) ~ } ~ Method (_L0D, 0, NotSerialized) ~ { ~ Notify (\_SB.PCI0.EUSB, 0x02) ~ Notify (\_SB.PWRB, 0x02) ~ } ~ Method (_L05, 0, NotSerialized) ~ { ~ Notify (\_SB.PCI0.AZAL, 0x02) ~ Notify (\_SB.PWRB, 0x02) ~ } ~ } ~ Device (PWRB) ~ { ~ Name (_HID, EisaId ("PNP0C0C")) ~ Name (_UID, 0xAA) ~ Name (_STA, 0x0B) ~ } ~ } ~ OperationRegion (_SB.PCI0.SBRG.PIX0, PCI_Config, 0x60, 0x0C) ~ Field (\_SB.PCI0.SBRG.PIX0, ByteAcc, NoLock, Preserve) ~ { ~ PIRA, 8, ~ PIRB, 8, ~ PIRC, 8, ~ PIRD, 8, ~ Offset (0x08), ~ PIRE, 8, ~ PIRF, 8, ~ PIRG, 8, ~ PIRH, 8 ~ } ~ Scope (_SB) ~ { ~ Name (BUFA, ResourceTemplate () ~ { ~ IRQ (Level, ActiveLow, Shared) {15} ~ }) ~ CreateWordField (BUFA, One, IRA0) ~ Device (LNKA) ~ { ~ Name (_HID, EisaId ("PNP0C0F")) ~ Name (_UID, One) ~ Method (_STA, 0, NotSerialized) ~ { ~ And (PIRA, 0x80, Local0) ~ If (Local0) ~ { ~ Return (0x09) ~ } ~ Else ~ { ~ Return (0x0B) ~ } ~ } ~ Method (_PRS, 0, NotSerialized) ~ { ~ Return (PRSA) ~ } ~ Method (_DIS, 0, NotSerialized) ~ { ~ Or (PIRA, 0x80, PIRA) ~ } ~ Method (_CRS, 0, NotSerialized) ~ { ~ And (PIRA, 0x0F, Local0) ~ ShiftLeft (One, Local0, IRA0) ~ Return (BUFA) ~ } ~ Method (_SRS, 1, NotSerialized) ~ { ~ CreateWordField (Arg0, One, IRA) ~ FindSetRightBit (IRA, Local0) ~ Decrement (Local0) ~ Store (Local0, PIRA) ~ } ~ } ~ Device (LNKB) ~ { ~ Name (_HID, EisaId ("PNP0C0F")) ~ Name (_UID, 0x02) ~ Method (_STA, 0, NotSerialized) ~ { ~ And (PIRB, 0x80, Local0) ~ If (Local0) ~ { ~ Return (0x09) ~ } ~ Else ~ { ~ Return (0x0B) ~ } ~ } ~ Method (_PRS, 0, NotSerialized) ~ { ~ Return (PRSB) ~ } ~ Method (_DIS, 0, NotSerialized) ~ { ~ Or (PIRB, 0x80, PIRB) ~ } ~ Method (_CRS, 0, NotSerialized) ~ { ~ And (PIRB, 0x0F, Local0) ~ ShiftLeft (One, Local0, IRA0) ~ Return (BUFA) ~ } ~ Method (_SRS, 1, NotSerialized) ~ { ~ CreateWordField (Arg0, One, IRA) ~ FindSetRightBit (IRA, Local0) ~ Decrement (Local0) ~ Store (Local0, PIRB) ~ } ~ } ~ Device (LNKC) ~ { ~ Name (_HID, EisaId ("PNP0C0F")) ~ Name (_UID, 0x03) ~ Method (_STA, 0, NotSerialized) ~ { ~ And (PIRC, 0x80, Local0) ~ If (Local0) ~ { ~ Return (0x09) ~ } ~ Else ~ { ~ Return (0x0B) ~ } ~ } ~ Method (_PRS, 0, NotSerialized) ~ { ~ Return (PRSC) ~ } ~ Method (_DIS, 0, NotSerialized) ~ { ~ Or (PIRC, 0x80, PIRC) ~ } ~ Method (_CRS, 0, NotSerialized) ~ { ~ And (PIRC, 0x0F, Local0) ~ ShiftLeft (One, Local0, IRA0) ~ Return (BUFA) ~ } ~ Method (_SRS, 1, NotSerialized) ~ { ~ CreateWordField (Arg0, One, IRA) ~ FindSetRightBit (IRA, Local0) ~ Decrement (Local0) ~ Store (Local0, PIRC) ~ } ~ } ~ Device (LNKD) ~ { ~ Name (_HID, EisaId ("PNP0C0F")) ~ Name (_UID, 0x04) ~ Method (_STA, 0, NotSerialized) ~ { ~ And (PIRD, 0x80, Local0) ~ If (Local0) ~ { ~ Return (0x09) ~ } ~ Else ~ { ~ Return (0x0B) ~ } ~ } ~ Method (_PRS, 0, NotSerialized) ~ { ~ Return (PRSD) ~ } ~ Method (_DIS, 0, NotSerialized) ~ { ~ Or (PIRD, 0x80, PIRD) ~ } ~ Method (_CRS, 0, NotSerialized) ~ { ~ And (PIRD, 0x0F, Local0) ~ ShiftLeft (One, Local0, IRA0) ~ Return (BUFA) ~ } ~ Method (_SRS, 1, NotSerialized) ~ { ~ CreateWordField (Arg0, One, IRA) ~ FindSetRightBit (IRA, Local0) ~ Decrement (Local0) ~ Store (Local0, PIRD) ~ } ~ } ~ Device (LNKE) ~ { ~ Name (_HID, EisaId ("PNP0C0F")) ~ Name (_UID, 0x05) ~ Method (_STA, 0, NotSerialized) ~ { ~ And (PIRE, 0x80, Local0) ~ If (Local0) ~ { ~ Return (0x09) ~ } ~ Else ~ { ~ Return (0x0B) ~ } ~ } ~ Method (_PRS, 0, NotSerialized) ~ { ~ Return (PRSE) ~ } ~ Method (_DIS, 0, NotSerialized) ~ { ~ Or (PIRE, 0x80, PIRE) ~ } ~ Method (_CRS, 0, NotSerialized) ~ { ~ And (PIRE, 0x0F, Local0) ~ ShiftLeft (One, Local0, IRA0) ~ Return (BUFA) ~ } ~ Method (_SRS, 1, NotSerialized) ~ { ~ CreateWordField (Arg0, One, IRA) ~ FindSetRightBit (IRA, Local0) ~ Decrement (Local0) ~ Store (Local0, PIRE) ~ } ~ } ~ Device (LNKF) ~ { ~ Name (_HID, EisaId ("PNP0C0F")) ~ Name (_UID, 0x06) ~ Method (_STA, 0, NotSerialized) ~ { ~ And (PIRF, 0x80, Local0) ~ If (Local0) ~ { ~ Return (0x09) ~ } ~ Else ~ { ~ Return (0x0B) ~ } ~ } ~ Method (_PRS, 0, NotSerialized) ~ { ~ Return (PRSF) ~ } ~ Method (_DIS, 0, NotSerialized) ~ { ~ Or (PIRF, 0x80, PIRF) ~ } ~ Method (_CRS, 0, NotSerialized) ~ { ~ And (PIRF, 0x0F, Local0) ~ ShiftLeft (One, Local0, IRA0) ~ Return (BUFA) ~ } ~ Method (_SRS, 1, NotSerialized) ~ { ~ CreateWordField (Arg0, One, IRA) ~ FindSetRightBit (IRA, Local0) ~ Decrement (Local0) ~ Store (Local0, PIRF) ~ } ~ } ~ Device (LNKG) ~ { ~ Name (_HID, EisaId ("PNP0C0F")) ~ Name (_UID, 0x07) ~ Method (_STA, 0, NotSerialized) ~ { ~ And (PIRG, 0x80, Local0) ~ If (Local0) ~ { ~ Return (0x09) ~ } ~ Else ~ { ~ Return (0x0B) ~ } ~ } ~ Method (_PRS, 0, NotSerialized) ~ { ~ Return (PRSG) ~ } ~ Method (_DIS, 0, NotSerialized) ~ { ~ Or (PIRG, 0x80, PIRG) ~ } ~ Method (_CRS, 0, NotSerialized) ~ { ~ And (PIRG, 0x0F, Local0) ~ ShiftLeft (One, Local0, IRA0) ~ Return (BUFA) ~ } ~ Method (_SRS, 1, NotSerialized) ~ { ~ CreateWordField (Arg0, One, IRA) ~ FindSetRightBit (IRA, Local0) ~ Decrement (Local0) ~ Store (Local0, PIRG) ~ } ~ } ~ Device (LNKH) ~ { ~ Name (_HID, EisaId ("PNP0C0F")) ~ Name (_UID, 0x08) ~ Method (_STA, 0, NotSerialized) ~ { ~ And (PIRH, 0x80, Local0) ~ If (Local0) ~ { ~ Return (0x09) ~ } ~ Else ~ { ~ Return (0x0B) ~ } ~ } ~ Method (_PRS, 0, NotSerialized) ~ { ~ Return (PRSH) ~ } ~ Method (_DIS, 0, NotSerialized) ~ { ~ Or (PIRH, 0x80, PIRH) ~ } ~ Method (_CRS, 0, NotSerialized) ~ { ~ And (PIRH, 0x0F, Local0) ~ ShiftLeft (One, Local0, IRA0) ~ Return (BUFA) ~ } ~ Method (_SRS, 1, NotSerialized) ~ { ~ CreateWordField (Arg0, One, IRA) ~ FindSetRightBit (IRA, Local0) ~ Decrement (Local0) ~ Store (Local0, PIRH) ~ } ~ } ~ } ~ Scope (_SB) ~ { ~ Name (XCPD, Zero) ~ Name (XNPT, One) ~ Name (XCAP, 0x02) ~ Name (XDCP, 0x04) ~ Name (XDCT, 0x08) ~ Name (XDST, 0x0A) ~ Name (XLCP, 0x0C) ~ Name (XLCT, 0x10) ~ Name (XLST, 0x12) ~ Name (XSCP, 0x14) ~ Name (XSCT, 0x18) ~ Name (XSST, 0x1A) ~ Name (XRCT, 0x1C) ~ Mutex (MUTE, 0x00) ~ Method (RBPE, 1, NotSerialized) ~ { ~ Acquire (MUTE, 0x03E8) ~ Add (Arg0, PCIB, Local0) ~ OperationRegion (PCFG, SystemMemory, Local0, One) ~ Field (PCFG, ByteAcc, NoLock, Preserve) ~ { ~ XCFG, 8 ~ } ~ Release (MUTE) ~ Return (XCFG) ~ } ~ Method (RWPE, 1, NotSerialized) ~ { ~ Acquire (MUTE, 0x03E8) ~ And (Arg0, 0xFFFFFFFE, Arg0) ~ Add (Arg0, PCIB, Local0) ~ OperationRegion (PCFG, SystemMemory, Local0, 0x02) ~ Field (PCFG, WordAcc, NoLock, Preserve) ~ { ~ XCFG, 16 ~ } ~ Release (MUTE) ~ Return (XCFG) ~ } ~ Method (RDPE, 1, NotSerialized) ~ { ~ Acquire (MUTE, 0x03E8) ~ And (Arg0, 0xFFFFFFFC, Arg0) ~ Add (Arg0, PCIB, Local0) ~ OperationRegion (PCFG, SystemMemory, Local0, 0x04) ~ Field (PCFG, DWordAcc, NoLock, Preserve) ~ { ~ XCFG, 32 ~ } ~ Release (MUTE) ~ Return (XCFG) ~ } ~ Method (WBPE, 2, NotSerialized) ~ { ~ Acquire (MUTE, 0x0FFF) ~ Add (Arg0, PCIB, Local0) ~ OperationRegion (PCFG, SystemMemory, Local0, One) ~ Field (PCFG, ByteAcc, NoLock, Preserve) ~ { ~ XCFG, 8 ~ } ~ Store (Arg1, XCFG) ~ Release (MUTE) ~ } ~ Method (WWPE, 2, NotSerialized) ~ { ~ Acquire (MUTE, 0x03E8) ~ And (Arg0, 0xFFFFFFFE, Arg0) ~ Add (Arg0, PCIB, Local0) ~ OperationRegion (PCFG, SystemMemory, Local0, 0x02) ~ Field (PCFG, WordAcc, NoLock, Preserve) ~ { ~ XCFG, 16 ~ } ~ Store (Arg1, XCFG) ~ Release (MUTE) ~ } ~ Method (WDPE, 2, NotSerialized) ~ { ~ Acquire (MUTE, 0x03E8) ~ And (Arg0, 0xFFFFFFFC, Arg0) ~ Add (Arg0, PCIB, Local0) ~ OperationRegion (PCFG, SystemMemory, Local0, 0x04) ~ Field (PCFG, DWordAcc, NoLock, Preserve) ~ { ~ XCFG, 32 ~ } ~ Store (Arg1, XCFG) ~ Release (MUTE) ~ } ~ Method (RWDP, 3, NotSerialized) ~ { ~ Acquire (MUTE, 0x03E8) ~ And (Arg0, 0xFFFFFFFC, Arg0) ~ Add (Arg0, PCIB, Local0) ~ OperationRegion (PCFG, SystemMemory, Local0, 0x04) ~ Field (PCFG, DWordAcc, NoLock, Preserve) ~ { ~ XCFG, 32 ~ } ~ And (XCFG, Arg2, Local1) ~ Or (Local1, Arg1, XCFG) ~ Release (MUTE) ~ } ~ Method (RPME, 1, NotSerialized) ~ { ~ Add (Arg0, 0x84, Local0) ~ Store (RDPE (Local0), Local1) ~ If (LEqual (Local1, Ones)) ~ { ~ Return (Zero) ~ } ~ Else ~ { ~ If (LAnd (Local1, 0x00010000)) ~ { ~ WDPE (Local0, And (Local1, 0x00010000)) ~ Return (One) ~ } ~ Return (Zero) ~ } ~ } ~ } ~ Scope (_SB) ~ { ~ Scope (PCI0) ~ { ~ Name (CRS, ResourceTemplate () ~ { ~ WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, ~ 0x0000, ~ 0x0000, ~ 0x00FF, ~ 0x0000, ~ 0x0100) ~ IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08) ~ WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, ~ 0x0000, ~ 0x0000, ~ 0x0CF7, ~ 0x0000, ~ 0x0CF8) ~ WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, ~ 0x0000, ~ 0x0D00, ~ 0xFFFF, ~ 0x0000, ~ 0xF300) ~ DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, ~ 0x00000000, ~ 0x000A0000, ~ 0x000BFFFF, ~ 0x00000000, ~ 0x00020000) ~ DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, ~ 0x00000000, ~ 0x000C0000, ~ 0x000DFFFF, ~ 0x00000000, ~ 0x00020000) ~ DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, ~ 0x00000000, ~ 0x00000000, ~ 0x00000000, ~ 0x00000000, ~ 0x00000000) ~ DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, ~ 0x00000000, ~ 0x00000000, ~ 0x00000000, ~ 0x00000000, ~ 0x00000000) ~ }) ~ CreateDWordField (CRS, 0x5C, MIN5) ~ CreateDWordField (CRS, 0x60, MAX5) ~ CreateDWordField (CRS, 0x68, LEN5) ~ CreateDWordField (CRS, 0x76, MIN6) ~ CreateDWordField (CRS, 0x7A, MAX6) ~ CreateDWordField (CRS, 0x82, LEN6) ~ CreateDWordField (CRS, 0x90, MIN7) ~ CreateDWordField (CRS, 0x94, MAX7) ~ CreateDWordField (CRS, 0x9C, LEN7) ~ Method (_CRS, 0, NotSerialized) ~ { ~ Store (MG1L, Local0) ~ If (Local0) ~ { ~ Store (MG1B, MIN5) ~ Store (MG1L, LEN5) ~ Add (MIN5, Decrement (Local0), MAX5) ~ } ~ Store (MG2B, MIN6) ~ Store (MG2L, LEN6) ~ Store (MG2L, Local0) ~ Add (MIN6, Decrement (Local0), MAX6) ~ Store (MG3B, MIN7) ~ Store (MG3L, LEN7) ~ Store (MG3L, Local0) ~ Add (MIN7, Decrement (Local0), MAX7) ~ Return (CRS) ~ } ~ } ~ } ~ Name (WOTB, Zero) ~ Name (WSSB, Zero) ~ Name (WAXB, Zero) ~ Method (_PTS, 1, NotSerialized) ~ { ~ Store (Arg0, DBG8) ~ PTS (Arg0) ~ Store (Zero, Index (WAKP, Zero)) ~ Store (Zero, Index (WAKP, One)) ~ If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02))) ~ { ~ Sleep (0x0BB8) ~ } ~ Store (ASSB, WSSB) ~ Store (AOTB, WOTB) ~ Store (AAXB, WAXB) ~ Store (Arg0, ASSB) ~ Store (OSFL (), AOTB) ~ Store (Zero, AAXB) ~ } ~ Name (SLID, One) ~ Method (_WAK, 1, NotSerialized) ~ { ~ ShiftLeft (Arg0, 0x04, DBG8) ~ Store (One, SLID) ~ WAK (Arg0) ~ If (ASSB) ~ { ~ Store (WSSB, ASSB) ~ Store (WOTB, AOTB) ~ Store (WAXB, AAXB) ~ } ~ If (DerefOf (Index (WAKP, Zero))) ~ { ~ Store (Zero, Index (WAKP, One)) ~ } ~ Else ~ { ~ Store (Arg0, Index (WAKP, One)) ~ } ~ Store (\_SB.PCI0.SBRG.EC.POWS, Local0) ~ If (LEqual (Local0, One)) ~ { ~ Store (One, \_SB.PCI0.SBRG.EC.ADP1.ACP) ~ } ~ Else ~ { ~ Store (Zero, \_SB.PCI0.SBRG.EC.ADP1.ACP) ~ } ~ Store (\_SB.PCI0.SBRG.EC.MBTS, Local0) ~ If (LEqual (Local0, One)) ~ { ~ Store (One, \_SB.PCI0.SBRG.EC.ADP1.BFLG) ~ } ~ Else ~ { ~ Store (Zero, \_SB.PCI0.SBRG.EC.ADP1.BFLG) ~ } ~ Notify (\_SB.PCI0.SBRG.EC.ADP1, Zero) ~ Notify (\_SB.PCI0.SBRG.EC.BAT1, Zero) ~ Store (One, \_SB.PCI0.WAWA.PDC1) ~ Store (One, \_SB.PCI0.WAWA.HPCS) ~ If (MCTH (_OS, "Microsoft Windows")) ~ { ~ If (LEqual (Arg0, 0x04)) ~ { ~ Notify (\_SB.PWRB, 0x02) ~ } ~ } ~ Return (WAKP) ~ } ~ Name (_S0, Package (0x04) ~ { ~ Zero, ~ Zero, ~ Zero, ~ Zero ~ }) ~ /* ~ If (SS1) ~ { ~ */ ~ Name (_S1, Package (0x04) ~ { ~ One, ~ Zero, ~ Zero, ~ Zero ~ }) ~ /* ~ } ~ */ ~ /* ~ If (SS3) ~ { ~ */ ~ Name (_S3, Package (0x04) ~ { ~ 0x05, ~ Zero, ~ Zero, ~ Zero ~ }) ~ /* ~ } ~ */ ~ /* ~ If (SS4) ~ { ~ */ ~ Name (_S4, Package (0x04) ~ { ~ 0x06, ~ Zero, ~ Zero, ~ Zero ~ }) ~ /* ~ } ~ */ ~ Name (_S5, Package (0x04) ~ { ~ 0x07, ~ Zero, ~ Zero, ~ Zero ~ }) ~ Method (PTS, 1, NotSerialized) ~ { ~ If (Arg0) ~ { ~ \_SB.PCI0.NPTS (Arg0) ~ \_SB.PCI0.SBRG.SPTS (Arg0) ~ } ~ } ~ Method (WAK, 1, NotSerialized) ~ { ~ \_SB.PCI0.NWAK (Arg0) ~ \_SB.PCI0.SBRG.SWAK (Arg0) ~ } } /********* END MY ASL *********/ | | Thanks a lot! | | -aps - -- Pietro Cerutti gahr@FreeBSD.org PGP Public Key: http://gahr.ch/pgp -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (FreeBSD) iEYEAREKAAYFAkhbyg4ACgkQwMJqmJVx946zXgCggFO88dF5Xtq+C9fCty37vVdU QxoAn2+xQdCHEuNjM+zC/WR56cL3dP06 =XFU1 -----END PGP SIGNATURE----- From owner-freebsd-acpi@FreeBSD.ORG Sat Jun 21 06:30:08 2008 Return-Path: Delivered-To: freebsd-acpi@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AB4301065682 for ; Sat, 21 Jun 2008 06:30:08 +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 6989C8FC23 for ; Sat, 21 Jun 2008 06:30:08 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m5L6U82D051976 for ; Sat, 21 Jun 2008 06:30:08 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m5L6U8rl051972; Sat, 21 Jun 2008 06:30:08 GMT (envelope-from gnats) Date: Sat, 21 Jun 2008 06:30:08 GMT Message-Id: <200806210630.m5L6U8rl051972@freefall.freebsd.org> To: freebsd-acpi@FreeBSD.org From: Alan Cox Cc: Subject: Re: kern/120515: [acpi] [patch] acpi_alloc_wakeup_handler: can't alloc wake memory X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Alan Cox List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 21 Jun 2008 06:30:08 -0000 The following reply was made to PR kern/120515; it has been noted by GNATS. From: Alan Cox To: bug-followup@FreeBSD.org, arthur.hartwig@nokia.com Cc: Subject: Re: kern/120515: [acpi] [patch] acpi_alloc_wakeup_handler: can't alloc wake memory Date: Sat, 21 Jun 2008 01:28:29 -0500 This patch does not apply to HEAD or RELENG_7 in two senses of "apply". The code affected by the patch has changed and so the patch will not mechanically apply. More importantly, the new physical memory allocator in HEAD and RELENG_7 already addresses this problem in a systematic way. I see no reason not to apply this patch to RELENG_6. Alan