Date: Mon, 13 Oct 2008 11:04:38 +0600 From: Ilgiz Yanuzakov <ilgiz@reid.ru> To: freebsd-acpi@FreeBSD.org Subject: Acer Aspire 3610 Message-ID: <48F2D6E6.4070408@reid.ru>
next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------020602080006010602080704 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Some errors on boot. ######### #dmesg -a ######### $ dmesg -a Copyright (c) 1992-2008 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD is a registered trademark of The FreeBSD Foundation. FreeBSD 7.1-PRERELEASE #0: Fri Sep 19 23:05:06 UTC 2008 root@.ufanet.ru:/usr/obj/usr/src/sys/HOME Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: Intel(R) Celeron(R) M processor 1.50GHz (1496.40-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x6d8 Stepping = 8 Features=0xafe9fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,TM,PBE> AMD Features=0x100000<NX> real memory = 258867200 (246 MB) avail memory = 243437568 (232 MB) ACPI APIC Table: <INTEL ALVISO > ioapic0: Changing APIC ID to 1 ioapic0 <Version 2.0> irqs 0-23 on motherboard kbd1 at kbdmux0 ath_hal: 0.9.20.3 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413) cryptosoft0: <software crypto> on motherboard acpi0: <PTLTD RSDT> on motherboard acpi0: [ITHREAD] acpi0: Power Button (fixed) Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000 acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0 acpi_ec0: <Embedded Controller: GPE 0x17> port 0x62,0x66 on acpi0 acpi_lid0: <Control Method Lid Switch> on acpi0 acpi_button0: <Sleep Button> on acpi0 pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0 pci0: <ACPI PCI bus> on pcib0 vgapci0: <VGA-compatible display> port 0x1800-0x1807 mem 0xb0080000-0xb00fffff,0xc0000000-0xcfffffff,0xb0000000-0xb003ffff irq 16 at device 2.0 on pci0 agp0: <Intel 82915GM (915GM GMCH) SVGA controller> on vgapci0 agp0: detected 7932k stolen memory agp0: aperture size is 256M vgapci1: <VGA-compatible display> at device 2.1 on pci0 uhci0: <Intel 82801FB/FR/FW/FRW (ICH6) USB controller USB-A> port 0x1820-0x183f irq 23 at device 29.0 on pci0 uhci0: [GIANT-LOCKED] uhci0: [ITHREAD] usb0: <Intel 82801FB/FR/FW/FRW (ICH6) USB controller USB-A> on uhci0 usb0: USB revision 1.0 uhub0: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb0 uhub0: 2 ports with 2 removable, self powered uhci1: <Intel 82801FB/FR/FW/FRW (ICH6) USB controller USB-B> port 0x1840-0x185f irq 17 at device 29.1 on pci0 uhci1: [GIANT-LOCKED] uhci1: [ITHREAD] usb1: <Intel 82801FB/FR/FW/FRW (ICH6) USB controller USB-B> on uhci1 usb1: USB revision 1.0 uhub1: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb1 uhub1: 2 ports with 2 removable, self powered uhci2: <Intel 82801FB/FR/FW/FRW (ICH6) USB controller USB-C> port 0x1860-0x187f irq 18 at device 29.2 on pci0 uhci2: [GIANT-LOCKED] uhci2: [ITHREAD] usb2: <Intel 82801FB/FR/FW/FRW (ICH6) USB controller USB-C> on uhci2 usb2: USB revision 1.0 uhub2: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb2 uhub2: 2 ports with 2 removable, self powered uhci3: <Intel 82801FB/FR/FW/FRW (ICH6) USB controller USB-D> port 0x1880-0x189f irq 19 at device 29.3 on pci0 uhci3: [GIANT-LOCKED] uhci3: [ITHREAD] usb3: <Intel 82801FB/FR/FW/FRW (ICH6) USB controller USB-D> on uhci3 usb3: USB revision 1.0 uhub3: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb3 uhub3: 2 ports with 2 removable, self powered ehci0: <Intel 82801FB (ICH6) USB 2.0 controller> mem 0xb0040000-0xb00403ff irq 23 at device 29.7 on pci0 ehci0: [GIANT-LOCKED] ehci0: [ITHREAD] usb4: EHCI version 1.0 usb4: companion controllers, 2 ports each: usb0 usb1 usb2 usb3 usb4: <Intel 82801FB (ICH6) USB 2.0 controller> on ehci0 usb4: USB revision 2.0 uhub4: <Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1> on usb4 uhub4: 8 ports with 8 removable, self powered pcib1: <ACPI PCI-PCI bridge> at device 30.0 on pci0 pci6: <ACPI PCI bus> on pcib1 rl0: <RealTek 8139 10/100BaseTX> port 0x3000-0x30ff mem 0xb0100000-0xb01000ff irq 20 at device 7.0 on pci6 miibus0: <MII bus> on rl0 rlphy0: <RealTek internal media interface> PHY 0 on miibus0 rlphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto rl0: Ethernet address: 00:0a:e4:e4:45:50 rl0: [ITHREAD] cbb0: <ENE CB1410 PCI-CardBus Bridge> at device 9.0 on pci6 cardbus0: <CardBus bus> on cbb0 pccard0: <16-bit PCCard bus> on cbb0 cbb0: [ITHREAD] pcm0: <Intel ICH6 (82801FB)> port 0x1c00-0x1cff,0x18c0-0x18ff mem 0xb0040800-0xb00409ff,0xb0040400-0xb00404ff irq 21 at device 30.2 on pci0 pcm0: [ITHREAD] pcm0: <Avance Logic ALC655 AC97 Codec> pci0: <simple comms, generic modem> at device 30.3 (no driver attached) isab0: <PCI-ISA bridge> at device 31.0 on pci0 isa0: <ISA bus> on isab0 atapci0: <Intel ICH6 UDMA100 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x1810-0x181f irq 16 at device 31.1 on pci0 ata0: <ATA channel 0> on atapci0 ata0: [ITHREAD] ata1: <ATA channel 1> on atapci0 ata1: [ITHREAD] pci0: <serial bus, SMBus> at device 31.3 (no driver attached) acpi_tz0: <Thermal Zone> on acpi0 acpi_tz1: <Thermal Zone> on acpi0 atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0 atkbd0: <AT Keyboard> irq 1 on atkbdc0 kbd0 at atkbd0 atkbd0: [GIANT-LOCKED] atkbd0: [ITHREAD] psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: [GIANT-LOCKED] psm0: [ITHREAD] psm0: model Generic PS/2 mouse, device ID 0 acpi_ec0: EcRead: failed waiting to get data ACPI Exception (evregion-0529): AE_NO_HARDWARE_RESPONSE, Returned by Handler for [EmbeddedControl] [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE acpi_ec0: EcRead: failed waiting to get data ACPI Exception (evregion-0529): AE_NO_HARDWARE_RESPONSE, Returned by Handler for [EmbeddedControl] [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE acpi_ec0: EcRead: failed waiting to get data ACPI Exception (evregion-0529): AE_NO_HARDWARE_RESPONSE, Returned by Handler for [EmbeddedControl] [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE acpi_ec0: EcRead: failed waiting to get data ACPI Exception (evregion-0529): AE_NO_HARDWARE_RESPONSE, Returned by Handler for [EmbeddedControl] [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE acpi_ec0: EcRead: failed waiting to get data ACPI Exception (evregion-0529): AE_NO_HARDWARE_RESPONSE, Returned by Handler for [EmbeddedControl] [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE acpi_ec0: EcRead: failed waiting to get data ACPI Exception (evregion-0529): AE_NO_HARDWARE_RESPONSE, Returned by Handler for [EmbeddedControl] [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE acpi_ec0: EcRead: failed waiting to get data ACPI Exception (evregion-0529): AE_NO_HARDWARE_RESPONSE, Returned by Handler for [EmbeddedControl] [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE acpi_ec0: EcRead: failed waiting to get data ACPI Exception (evregion-0529): AE_NO_HARDWARE_RESPONSE, Returned by Handler for [EmbeddedControl] [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE acpi_ec0: EcRead: failed waiting to get data ACPI Exception (evregion-0529): AE_NO_HARDWARE_RESPONSE, Returned by Handler for [EmbeddedControl] [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE acpi_ec0: EcRead: failed waiting to get data ACPI Exception (evregion-0529): AE_NO_HARDWARE_RESPONSE, Returned by Handler for [EmbeddedControl] [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE acpi_ec0: EcRead: failed waiting to get data ACPI Exception (evregion-0529): AE_NO_HARDWARE_RESPONSE, Returned by Handler for [EmbeddedControl] [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE acpi_ec0: EcRead: failed waiting to get data ACPI Exception (evregion-0529): AE_NO_HARDWARE_RESPONSE, Returned by Handler for [EmbeddedControl] [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE battery0: <ACPI Control Method Battery> on acpi0 acpi_ec0: EcRead: failed waiting to get data ACPI Exception (evregion-0529): AE_NO_HARDWARE_RESPONSE, Returned by Handler for [EmbeddedControl] [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.LPCB.EC0_.BAT0._STA] (Node 0xc1da0900), AE_NO_HARDWARE_RESPONSE acpi_acad0: <AC Adapter> on acpi0 cpu0: <ACPI CPU> on acpi0 p4tcc0: <CPU Frequency Thermal Control> on cpu0 pmtimer0 on isa0 orm0: <ISA Option ROMs> at iomem 0xcf800-0xd07ff,0xdc000-0xdffff,0xe0000-0xe3fff pnpid ORM0000 on isa0 ppc0: parallel port not found. sc0: <System console> at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio0: configured irq 4 not in bitmap of probed irqs 0 sio0: port may not be enabled sio0: configured irq 4 not in bitmap of probed irqs 0 sio0: port may not be enabled sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 8250 or not responding sio0: [FILTER] sio1: configured irq 3 not in bitmap of probed irqs 0 sio1: port may not be enabled vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 ums0: <Logitech Optical USB Mouse, class 0/0, rev 2.00/3.40, addr 2> on uhub0 ums0: 3 buttons and Z dir. Timecounter "TSC" frequency 1496403865 Hz quality 800 Timecounters tick every 1.000 msec IPsec: Initialized Security Association Processing. ad0: 38154MB <WDC WD400UE-22HCT0 09.07D09> at ata0-master UDMA100 acd0: CDRW <TSSTcorpCDW/DVD TS-L462C/AC01> at ata0-slave UDMA33 GEOM_LABEL: Label for provider ad0s1 is ntfs/winxp. acd0: FAILURE - INQUIRY ILLEGAL REQUEST asc=0x24 ascq=0x00 acd0: FAILURE - INQUIRY ILLEGAL REQUEST asc=0x24 ascq=0x00 cd0 at ata0 bus 0 target 1 lun 0 cd0: <TSSTcorp CDW/DVD TS-L462C AC01> Removable CD-ROM SCSI-0 device cd0: 33.000MB/s transfers cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed ######### #dmesg -a ######### ############### #sysctl hw.acpi ############### $ sysctl hw.acpi hw.acpi.supported_sleep_state: S3 S4 S5 hw.acpi.power_button_state: S5 hw.acpi.sleep_button_state: S3 hw.acpi.lid_switch_state: NONE hw.acpi.standby_state: S1 hw.acpi.suspend_state: S3 hw.acpi.sleep_delay: 1 hw.acpi.s4bios: 0 hw.acpi.verbose: 0 hw.acpi.disable_on_reboot: 0 hw.acpi.handle_reboot: 0 hw.acpi.reset_video: 0 hw.acpi.thermal.min_runtime: 0 hw.acpi.thermal.polling_rate: 10 hw.acpi.thermal.user_override: 0 hw.acpi.thermal.tz0.temperature: 47,0C hw.acpi.thermal.tz0.active: -1 hw.acpi.thermal.tz0.passive_cooling: 1 hw.acpi.thermal.tz0.thermal_flags: 0 hw.acpi.thermal.tz0._PSV: 95,0C hw.acpi.thermal.tz0._HOT: -1 hw.acpi.thermal.tz0._CRT: 100,0C hw.acpi.thermal.tz0._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 hw.acpi.thermal.tz0._TC1: 4 hw.acpi.thermal.tz0._TC2: 3 hw.acpi.thermal.tz0._TSP: 150 hw.acpi.thermal.tz1.temperature: 42,0C hw.acpi.thermal.tz1.active: -1 hw.acpi.thermal.tz1.passive_cooling: 0 hw.acpi.thermal.tz1.thermal_flags: 0 hw.acpi.thermal.tz1._PSV: -1 hw.acpi.thermal.tz1._HOT: -1 hw.acpi.thermal.tz1._CRT: 70,0C hw.acpi.thermal.tz1._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 hw.acpi.thermal.tz1._TC1: -1 hw.acpi.thermal.tz1._TC2: -1 hw.acpi.thermal.tz1._TSP: -1 hw.acpi.battery.life: 99 hw.acpi.battery.time: -1 hw.acpi.battery.state: 0 hw.acpi.battery.units: 1 hw.acpi.battery.info_expire: 5 hw.acpi.acline: 1 hw.acpi.cpu.cx_lowest: C1 ############### #sysctl hw.acpi ############### -- С уважением, Ильгиз Янузаков, системный администратор ООО "Рейд". г. Уфа, ул. Индустриальное шоссе, 44/1 Тел./факс: (347) 264-97-15 Сот. тел: 8 901 8107914 E-mail: ilgiz@reid.ru http://www.reid.ru/ ----------------------------- FreeBSD - The Power to Serve! --------------020602080006010602080704 Content-Type: text/plain; name="kegf-AcerAspire3610.asl" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="kegf-AcerAspire3610.asl" LyoKICBSU0QgUFRSOiBPRU09UFRMVEQsIEFDUElfUmV2PTEuMHggKDApCglSU0RUPTB4MGY2 ZTVlMmQsIGNrc3VtPTQ5CiAqLwovKgogIFJTRFQ6IExlbmd0aD02MCwgUmV2aXNpb249MSwg Q2hlY2tzdW09NDQsCglPRU1JRD1QVExURCwgT0VNIFRhYmxlIElEPSAgUlNEVCwgT0VNIFJl dmlzaW9uPTB4NjA0MDAwMCwKCUNyZWF0b3IgSUQ9IExUUCwgQ3JlYXRvciBSZXZpc2lvbj0w eDAKCUVudHJpZXM9eyAweDBmNmU5ZTc4LCAweDBmNmU5ZWZjLCAweDBmNmU5ZmQ4LCAweDBm NmU5ZjljLCAweDBmNmU2MDY0LCAweDBmNmU1ZTY5IH0KICovCi8qCiAgRkFDUDogTGVuZ3Ro PTEzMiwgUmV2aXNpb249MiwgQ2hlY2tzdW09OTcsCglPRU1JRD1JTlRFTCwgT0VNIFRhYmxl IElEPUFMVklTTywgT0VNIFJldmlzaW9uPTB4NjA0MDAwMCwKCUNyZWF0b3IgSUQ9TE9IUiwg Q3JlYXRvciBSZXZpc2lvbj0weDVmCiAJRkFDUz0weGY2ZmFmYzAsIERTRFQ9MHhmNmU2MjQ2 CglJTlRfTU9ERUw9UElDCglQcmVmZXJyZWRfUE1fUHJvZmlsZT1VbnNwZWNpZmllZCAoMCkK CVNDSV9JTlQ9OQoJU01JX0NNRD0weGIyLCBBQ1BJX0VOQUJMRT0weGYwLCBBQ1BJX0RJU0FC TEU9MHhmMSwgUzRCSU9TX1JFUT0weGYyCglQU1RBVEVfQ05UPTB4ODAKCVBNMWFfRVZUX0JM Sz0weDEwMDAtMHgxMDAzCglQTTFhX0NOVF9CTEs9MHgxMDA0LTB4MTAwNQoJUE0yX0NOVF9C TEs9MHgxMDIwLTB4MTAyMAoJUE1fVE1SX0JMSz0weDEwMDgtMHgxMDBiCglHUEUwX0JMSz0w eDEwMjgtMHgxMDJmCglDU1RfQ05UPTB4ODUKCVBfTFZMMl9MQVQ9MSB1cywgUF9MVkwzX0xB VD04NSB1cwoJRkxVU0hfU0laRT0wLCBGTFVTSF9TVFJJREU9MAoJRFVUWV9PRkZTRVQ9MSwg RFVUWV9XSURUSD0zCglEQVlfQUxSTT0xMywgTU9OX0FMUk09MCwgQ0VOVFVSWT01MAoJSUFQ Q19CT09UX0FSQ0g9e0xFR0FDWV9ERVYsODA0Mn0KCUZsYWdzPXtXQklOVkQsUFJPQ19DMSxT TFBfQlVUVE9OLFJUQ19TNCxEQ0tfQ0FQLFJFU0VUX1JFR30KCVJFU0VUX1JFRz0weGNmOTow WzhdIChJTyksIFJFU0VUX1ZBTFVFPTB4NgogKi8KLyoKICBGQUNTOglMZW5ndGg9NjQsIEh3 U2lnPTB4MDAwMDBmN2IsIEZpcm1fV2FrZV9WZWM9MHgwMDAwMDAwMAoJR2xvYmFsX0xvY2s9 CglGbGFncz0KCVZlcnNpb249MAogKi8KLyoKICBEU0RUOiBMZW5ndGg9MTU0MTAsIFJldmlz aW9uPTEsIENoZWNrc3VtPTE2OCwKCU9FTUlEPUlOVEVMLCBPRU0gVGFibGUgSUQ9QUxWSVNP LCBPRU0gUmV2aXNpb249MHg2MDQwMDAwLAoJQ3JlYXRvciBJRD1NU0ZULCBDcmVhdG9yIFJl dmlzaW9uPTB4MTAwMDAwZQogKi8KLyoKICBBUElDOiBMZW5ndGg9MTA0LCBSZXZpc2lvbj0x LCBDaGVja3N1bT0yNiwKCU9FTUlEPUlOVEVMLCBPRU0gVGFibGUgSUQ9QUxWSVNPLCBPRU0g UmV2aXNpb249MHg2MDQwMDAwLAoJQ3JlYXRvciBJRD1MT0hSLCBDcmVhdG9yIFJldmlzaW9u PTB4NWYKCUxvY2FsIEFQSUMgQUREUj0weGZlZTAwMDAwCglGbGFncz17UEMtQVR9CgoJVHlw ZT1Mb2NhbCBBUElDCglBQ1BJIENQVT0wCglGbGFncz17RU5BQkxFRH0KCUFQSUMgSUQ9MAoK CVR5cGU9TG9jYWwgQVBJQwoJQUNQSSBDUFU9MQoJRmxhZ3M9e0RJU0FCTEVEfQoJQVBJQyBJ RD0xCgoJVHlwZT1JTyBBUElDCglBUElDIElEPTEKCUlOVCBCQVNFPTAKCUFERFI9MHgwMDAw MDAwMGZlYzAwMDAwCgoJVHlwZT1JTlQgT3ZlcnJpZGUKCUJVUz0wCglJUlE9MAoJSU5UUj0y CglGbGFncz17UG9sYXJpdHk9Y29uZm9ybWluZywgVHJpZ2dlcj1jb25mb3JtaW5nfQoKCVR5 cGU9SU5UIE92ZXJyaWRlCglCVVM9MAoJSVJRPTkKCUlOVFI9OQoJRmxhZ3M9e1BvbGFyaXR5 PWFjdGl2ZS1oaSwgVHJpZ2dlcj1sZXZlbH0KCglUeXBlPUxvY2FsIE5NSQoJQUNQSSBDUFU9 MAoJTElOVCBQaW49MQoJRmxhZ3M9e1BvbGFyaXR5PWFjdGl2ZS1oaSwgVHJpZ2dlcj1lZGdl fQoKCVR5cGU9TG9jYWwgTk1JCglBQ1BJIENQVT0xCglMSU5UIFBpbj0xCglGbGFncz17UG9s YXJpdHk9YWN0aXZlLWhpLCBUcmlnZ2VyPWVkZ2V9CiAqLwovKgogIEJPT1Q6IExlbmd0aD00 MCwgUmV2aXNpb249MSwgQ2hlY2tzdW09MTY0LAoJT0VNSUQ9UFRMVEQsIE9FTSBUYWJsZSBJ RD0kU0JGVEJMJCwgT0VNIFJldmlzaW9uPTB4NjA0MDAwMCwKCUNyZWF0b3IgSUQ9IExUUCwg Q3JlYXRvciBSZXZpc2lvbj0weDEKICovCi8qCiAgTUNGRzogTGVuZ3RoPTYwLCBSZXZpc2lv bj0xLCBDaGVja3N1bT0xMjcsCglPRU1JRD1JTlRFTCwgT0VNIFRhYmxlIElEPUFMVklTTywg T0VNIFJldmlzaW9uPTB4NjA0MDAwMCwKCUNyZWF0b3IgSUQ9TE9IUiwgQ3JlYXRvciBSZXZp c2lvbj0weDVmCgoJQmFzZSBBZGRyZXNzPSAweDAwMDAwMDAwZTAwMDAwMDAKCVNlZ21lbnQg R3JvdXA9IDB4MDAwMAoJU3RhcnQgQnVzPSAwCglFbmQgQnVzPSAyNTUKICovCi8qCiAgU1NE VDogTGVuZ3RoPTQ3OCwgUmV2aXNpb249MSwgQ2hlY2tzdW09MTI4LAoJT0VNSUQ9UG1SZWYs IE9FTSBUYWJsZSBJRD1DcHUwQ3N0LCBPRU0gUmV2aXNpb249MHgzMDAxLAoJQ3JlYXRvciBJ RD1JTlRMLCBDcmVhdG9yIFJldmlzaW9uPTB4MjAwMzAyMjQKICovCi8qCiAgU1NEVDogTGVu Z3RoPTUwNywgUmV2aXNpb249MSwgQ2hlY2tzdW09MjMxLAoJT0VNSUQ9UG1SZWYsIE9FTSBU YWJsZSBJRD1DcHVQbSwgT0VNIFJldmlzaW9uPTB4MzAwMCwKCUNyZWF0b3IgSUQ9SU5UTCwg Q3JlYXRvciBSZXZpc2lvbj0weDIwMDMwMjI0CiAqLwovKgogKiBJbnRlbCBBQ1BJIENvbXBv bmVudCBBcmNoaXRlY3R1cmUKICogQU1MIERpc2Fzc2VtYmxlciB2ZXJzaW9uIDIwMDcwMzIw CiAqCiAqIERpc2Fzc2VtYmx5IG9mIC90bXAvYWNwaWR1bXAuNkRkdmR5LCBNb24gT2N0IDEz IDEwOjU1OjM0IDIwMDgKICoKICoKICogT3JpZ2luYWwgVGFibGUgSGVhZGVyOgogKiAgICAg U2lnbmF0dXJlICAgICAgICAiRFNEVCIKICogICAgIExlbmd0aCAgICAgICAgICAgMHgwMDAw M0ZDMyAoMTYzMjMpCiAqICAgICBSZXZpc2lvbiAgICAgICAgIDB4MDEKICogICAgIE9FTSBJ RCAgICAgICAgICAgIklOVEVMICIKICogICAgIE9FTSBUYWJsZSBJRCAgICAgIkFMVklTTyAg IgogKiAgICAgT0VNIFJldmlzaW9uICAgICAweDA2MDQwMDAwICgxMDA5MjU0NDApCiAqICAg ICBDcmVhdG9yIElEICAgICAgICJNU0ZUIgogKiAgICAgQ3JlYXRvciBSZXZpc2lvbiAweDAx MDAwMDBFICgxNjc3NzIzMCkKICovCkRlZmluaXRpb25CbG9jayAoIi90bXAvYWNwaWR1bXAu YW1sIiwgIkRTRFQiLCAxLCAiSU5URUwgIiwgIkFMVklTTyAgIiwgMHgwNjA0MDAwMCkKewog ICAgT3BlcmF0aW9uUmVnaW9uIChQT1JULCBTeXN0ZW1JTywgMHg4MCwgMHgwMSkKICAgIEZp ZWxkIChQT1JULCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgewogICAgICAgIFA4 MEgsICAgOAogICAgfQoKICAgIE9wZXJhdGlvblJlZ2lvbiAoSU9fVCwgU3lzdGVtSU8sIDB4 MDgwMCwgMHgxMCkKICAgIEZpZWxkIChJT19ULCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZl KQogICAgewogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDAyKSwgCiAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4MDQpLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwNiksIAogICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDA4KSwgCiAgICAgICAgVFJQMCwgICA4LCAKICAgICAg ICAgICAgICAgIE9mZnNldCAoMHgwQSksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDBC KSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MEMpLCAKICAgICAgICAgICAgICAgIE9m ZnNldCAoMHgwRCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDBFKSwgCiAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4MEYpLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxMCkK ICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKEdQSU8sIFN5c3RlbUlPLCAweDExODAsIDB4 M0MpCiAgICBGaWVsZCAoR1BJTywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgIHsK ICAgICAgICBHVTAwLCAgIDgsIAogICAgICAgIEdVMDEsICAgOCwgCiAgICAgICAgR1UwMiwg ICA4LCAKICAgICAgICBHVTAzLCAgIDgsIAogICAgICAgIEdJTzAsICAgOCwgCiAgICAgICAg R0lPMSwgICA4LCAKICAgICAgICBHSU8yLCAgIDgsIAogICAgICAgIEdJTzMsICAgOCwgCiAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4MEMpLCAKICAgICAgICBHTDAwLCAgIDgsIAogICAg ICAgIEdMMDEsICAgOCwgCiAgICAgICAgICAgICwgICA1LCAKICAgICAgICBHUDIxLCAgIDEs IAogICAgICAgICAgICAsICAgMSwgCiAgICAgICAgR1AyMywgICAxLCAKICAgICAgICAgICAg LCAgIDEsIAogICAgICAgIEdQMjUsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 MTApLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxOCksIAogICAgICAgIEdCMDAsICAg OCwgCiAgICAgICAgR0IwMSwgICA4LCAKICAgICAgICBHQjAyLCAgIDgsIAogICAgICAgIEdC MDMsICAgOCwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MkMpLCAKICAgICAgICBHSVYw LCAgIDgsIAogICAgICAgIEdJVjEsICAgOCwgCiAgICAgICAgR0lWMiwgICA4LCAKICAgICAg ICBHSVYzLCAgIDgsIAogICAgICAgIEdVMDQsICAgOCwgCiAgICAgICAgR1UwNSwgICA4LCAK ICAgICAgICBHVTA2LCAgIDgsIAogICAgICAgIEdVMDcsICAgOCwgCiAgICAgICAgR0lPNCwg ICA4LCAKICAgICAgICBHSU81LCAgIDgsIAogICAgICAgIEdJTzYsICAgOCwgCiAgICAgICAg R0lPNywgICA4LCAKICAgICAgICAgICAgLCAgIDEsIAogICAgICAgIEdQMzMsICAgMSwgCiAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4MzkpLCAKICAgICAgICBHTDA1LCAgIDgsIAogICAg ICAgIEdMMDYsICAgOCwgCiAgICAgICAgR0wwNywgICA4CiAgICB9CgogICAgT3BlcmF0aW9u UmVnaW9uIChNTlZTLCBTeXN0ZW1NZW1vcnksIDB4MEY2RUFFNEQsIDB4MDEwMCkKICAgIEZp ZWxkIChNTlZTLCBBbnlBY2MsIExvY2ssIFByZXNlcnZlKQogICAgewogICAgICAgIE9TWVMs ICAgMTYsIAogICAgICAgIFNNSUYsICAgOCwgCiAgICAgICAgUFJNMCwgICA4LCAKICAgICAg ICBQUk0xLCAgIDgsIAogICAgICAgIFNDSUYsICAgOCwgCiAgICAgICAgUFJNMiwgICA4LCAK ICAgICAgICBQUk0zLCAgIDgsIAogICAgICAgIExDS0YsICAgOCwgCiAgICAgICAgUFJNNCwg ICA4LCAKICAgICAgICBQUk01LCAgIDgsIAogICAgICAgIFA4MEQsICAgMzIsIAogICAgICAg IExJRFMsICAgOCwgCiAgICAgICAgUFdSUywgICA4LCAKICAgICAgICBEQkdTLCAgIDgsIAog ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDI4KSwgCiAgICAgICAgQVBJQywgICA4LCAKICAg ICAgICBDUFVMLCAgIDgsIAogICAgICAgIENQVUgsICAgOCwgCiAgICAgICAgR1YzRSwgICA4 LCAKICAgICAgICBIVFRFLCAgIDgsIAogICAgICAgIFdUSFQsICAgOCwgCiAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4MzIpLCAKICAgICAgICBOQVRQLCAgIDgsIAogICAgICAgIENNQVAs ICAgOCwgCiAgICAgICAgQ01CUCwgICA4LCAKICAgICAgICBMUFRQLCAgIDgsIAogICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDNDKSwgCiAgICAgICAgSUdEUywgICA4LCAKICAgICAgICBU TFNULCAgIDgsIAogICAgICAgIENBREwsICAgOCwgCiAgICAgICAgUEFETCwgICA4LCAKICAg ICAgICBDU1RFLCAgIDE2LCAKICAgICAgICBOU1RFLCAgIDE2LCAKICAgICAgICBTU1RFLCAg IDE2LCAKICAgICAgICBORElELCAgIDgsIAogICAgICAgIERJRDEsICAgMzIsIAogICAgICAg IERJRDIsICAgMzIsIAogICAgICAgIERJRDMsICAgMzIsIAogICAgICAgIERJRDQsICAgMzIs IAogICAgICAgIERJRDUsICAgMzIsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDgyKSwg CiAgICAgICAgR1RGMCwgICA1NiwgCiAgICAgICAgR1RGMiwgICA1NiwgCiAgICAgICAgSURF TSwgICA4LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg5NiksIAogICAgICAgIFdOVkEs ICAgMzIsIAogICAgICAgIFdOVkIsICAgMzIsIAogICAgICAgIFdOVkMsICAgMzIsIAogICAg ICAgIFdOVkQsICAgMzIsIAogICAgICAgIFdGTEcsICAgMzIKICAgIH0KCiAgICBPcGVyYXRp b25SZWdpb24gKFJDUkIsIFN5c3RlbU1lbW9yeSwgMHhGMDAwODAwMCwgMHg0MDAwKQogICAg RmllbGQgKFJDUkIsIERXb3JkQWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICAg ICAgICAgIE9mZnNldCAoMHgxMDAwKSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzAw MCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDM0MDQpLCAKICAgICAgICBIUEFTLCAg IDIsIAogICAgICAgICAgICAsICAgNSwgCiAgICAgICAgSFBBRSwgICAxLCAKICAgICAgICAg ICAgICAgIE9mZnNldCAoMHgzNDE4KSwgCiAgICAgICAgICAgICwgICAxLCAKICAgICAgICBQ QVRELCAgIDEsIAogICAgICAgIFNBVEQsICAgMSwgCiAgICAgICAgU01CRCwgICAxLCAKICAg ICAgICBBWkFELCAgIDEsIAogICAgICAgIEE5N0QsICAgMSwgCiAgICAgICAgICAgICAgICBP ZmZzZXQgKDB4MzQxQSksIAogICAgICAgIFJQMUQsICAgMSwgCiAgICAgICAgUlAyRCwgICAx LCAKICAgICAgICBSUDNELCAgIDEsIAogICAgICAgIFJQNEQsICAgMQogICAgfQoKICAgIE11 dGV4IChNU01JLCAweDA3KQogICAgTWV0aG9kIChQSFNSLCAyLCBOb3RTZXJpYWxpemVkKQog ICAgewogICAgICAgIEFjcXVpcmUgKE1TTUksIDB4RkZGRikKICAgICAgICBTdG9yZSAoQXJn MSwgUFJNMCkKICAgICAgICBTdG9yZSAoQXJnMCwgU01JRikKICAgICAgICBTdG9yZSAoWmVy bywgVFJQMCkKICAgICAgICBTdG9yZSAoUFJNMCwgTG9jYWwwKQogICAgICAgIFJlbGVhc2Ug KE1TTUkpCiAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICB9CgogICAgTWV0aG9kIChIS0VZ LCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIFBIU1IgKDB4MUUsIEFyZzApCiAg ICB9CgogICAgTWV0aG9kIChMQU1OLCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAg IElmIChcX1NCLkFNVzAuV0xNUCkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChBcmcw LCBcX1NCLkFNVzAuV0xJRCkKICAgICAgICAgICAgTm90aWZ5IChcX1NCLkFNVzAsIDB4QjAp CiAgICAgICAgfQogICAgICAgIEVsc2UKICAgICAgICB7CiAgICAgICAgICAgIFBIU1IgKDB4 MUYsIEFyZzApCiAgICAgICAgfQogICAgfQoKICAgIE1ldGhvZCAoUkJFQywgMSwgTm90U2Vy aWFsaXplZCkKICAgIHsKICAgICAgICBSZXR1cm4gKFBIU1IgKDB4MjAsIEFyZzApKQogICAg fQoKICAgIE1ldGhvZCAoV0JFQywgMiwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBB Y3F1aXJlIChNU01JLCAweEZGRkYpCiAgICAgICAgU3RvcmUgKEFyZzEsIFBSTTEpCiAgICAg ICAgU3RvcmUgKEFyZzAsIFBSTTApCiAgICAgICAgU3RvcmUgKDB4MjEsIFNNSUYpCiAgICAg ICAgU3RvcmUgKFplcm8sIFRSUDApCiAgICAgICAgUmVsZWFzZSAoTVNNSSkKICAgIH0KCiAg ICBNZXRob2QgKE1CRUMsIDMsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgQWNxdWly ZSAoTVNNSSwgMHhGRkZGKQogICAgICAgIFN0b3JlIChBcmcyLCBQUk0yKQogICAgICAgIFN0 b3JlIChBcmcxLCBQUk0xKQogICAgICAgIFN0b3JlIChBcmcwLCBQUk0wKQogICAgICAgIFN0 b3JlICgweDIyLCBTTUlGKQogICAgICAgIFN0b3JlIChaZXJvLCBUUlAwKQogICAgICAgIFJl bGVhc2UgKE1TTUkpCiAgICB9CgogICAgTmFtZSAoQjJFRCwgQnVmZmVyICgweDE0KQogICAg ewogICAgICAgIC8qIDAwMDAgKi8gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgCiAgICAgICAgLyogMDAwOCAqLyAgICAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAKICAgICAgICAvKiAwMDEwICov ICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAKICAgIH0pCiAgICBNZXRob2QgKFdIMTUsIDIs IE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgQWNxdWlyZSAoTVNNSSwgMHhGRkZGKQog ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFyZzEsIDB4MDAsIERFQVgpCiAgICAgICAgQ3Jl YXRlRFdvcmRGaWVsZCAoQXJnMSwgMHgwNCwgREVCWCkKICAgICAgICBDcmVhdGVEV29yZEZp ZWxkIChBcmcxLCAweDA4LCBERUNYKQogICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFyZzEs IDB4MEMsIERFRFgpCiAgICAgICAgU3RvcmUgKERFQVgsIFdOVkEpCiAgICAgICAgU3RvcmUg KERFQlgsIFdOVkIpCiAgICAgICAgU3RvcmUgKERFQ1gsIFdOVkMpCiAgICAgICAgU3RvcmUg KERFRFgsIFdOVkQpCiAgICAgICAgU3RvcmUgKDB4MjMsIFNNSUYpCiAgICAgICAgU3RvcmUg KFplcm8sIFRSUDApCiAgICAgICAgQ29uY2F0ZW5hdGUgKFdOVkEsIFdOVkIsIExvY2FsMCkK ICAgICAgICBDb25jYXRlbmF0ZSAoV05WQywgV05WRCwgTG9jYWwxKQogICAgICAgIENvbmNh dGVuYXRlIChMb2NhbDAsIExvY2FsMSwgQjJFRCkKICAgICAgICBTdG9yZSAoV0ZMRywgSW5k ZXggKEIyRUQsIDB4MTApKQogICAgICAgIFJlbGVhc2UgKE1TTUkpCiAgICAgICAgUmV0dXJu IChCMkVEKQogICAgfQoKICAgIE11dGV4IChNVVRYLCAweDAwKQogICAgTmFtZSAoX1MwLCBQ YWNrYWdlICgweDAzKQogICAgewogICAgICAgIDB4MDAsIAogICAgICAgIDB4MDAsIAogICAg ICAgIDB4MDAKICAgIH0pCiAgICBOYW1lIChfUzMsIFBhY2thZ2UgKDB4MDMpCiAgICB7CiAg ICAgICAgMHgwNSwgCiAgICAgICAgMHgwNSwgCiAgICAgICAgMHgwMAogICAgfSkKICAgIE5h bWUgKF9TNCwgUGFja2FnZSAoMHgwMykKICAgIHsKICAgICAgICAweDA2LCAKICAgICAgICAw eDA2LCAKICAgICAgICAweDAwCiAgICB9KQogICAgTmFtZSAoX1M1LCBQYWNrYWdlICgweDAz KQogICAgewogICAgICAgIDB4MDcsIAogICAgICAgIDB4MDcsIAogICAgICAgIDB4MDAKICAg IH0pCiAgICBTY29wZSAoXF9QUikKICAgIHsKICAgICAgICBQcm9jZXNzb3IgKENQVTAsIDB4 MDAsIDB4MDAwMDEwMTAsIDB4MDYpIHt9CiAgICAgICAgUHJvY2Vzc29yIChDUFUxLCAweDAx LCAweDAwMDAxMDEwLCAweDA2KSB7fQogICAgfQoKICAgIE5hbWUgKFxEU0VOLCAweDAxKQog ICAgTmFtZSAoXEVDT04sIDB4MDApCiAgICBOYW1lIChcR1BJQywgMHgwMCkKICAgIE5hbWUg KFxDVFlQLCAweDAwKQogICAgTmFtZSAoXEwwMUMsIDB4MDApCiAgICBNZXRob2QgKFxfUElD LCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIFN0b3JlIChBcmcwLCBHUElDKQog ICAgfQoKICAgIE1ldGhvZCAoX1BUUywgMSwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAg ICBTdG9yZSAoQXJnMCwgUDgwSCkKICAgICAgICBJZiAoTE9yIChMRXF1YWwgKEFyZzAsIDB4 MDMpLCBMRXF1YWwgKEFyZzAsIDB4MDQpKSkKICAgICAgICB7CiAgICAgICAgICAgIFBIU1Ig KDB4MzAsIDB4MDApCiAgICAgICAgfQoKICAgICAgICBJZiAoTEVxdWFsIChBcmcwLCAweDA0 KSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlICgweDAxLCBcX1NCLlBDSTAuTFBDQi5F QzAuQkxOSykKICAgICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4MDUpKQog ICAgICAgIHsKICAgICAgICAgICAgUEhTUiAoMHgzMSwgMHgwMCkKICAgICAgICB9CiAgICB9 CgogICAgTWV0aG9kIChfV0FLLCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIFN0 b3JlIChBcmcwLCBQODBIKQogICAgICAgIFN0b3JlICgweDAwLCBcX1NCLlBDSTAuTFBDQi5F QzAuS1RBRikKICAgICAgICBTdG9yZSAoMHgwMSwgXF9TQi5QQ0kwLkxQQ0IuRUMwLktURUUp CiAgICAgICAgSWYgKExPciAoTEVxdWFsIChBcmcwLCAweDAzKSwgTEVxdWFsIChBcmcwLCAw eDA0KSkpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoMHgwMCwgXF9TQi5QQ0kwLkxQ Q0IuRUMwLk1VVEUpCiAgICAgICAgfQoKICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5MUENC LkVDMC5CQVQwLCAweDgxKQogICAgfQoKICAgIE5hbWUgKEZXU08sICJGV1NPIikKICAgIE5h bWUgKF9QU0MsIDB4MDApCiAgICBNZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICB7CiAgICAgICAgU3RvcmUgKF9QU0MsIExvY2FsMCkKICAgICAgICBTdG9yZSAoMHgwMCwg X1BTQykKICAgIH0KCiAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICB7 CiAgICAgICAgU3RvcmUgKDB4MDMsIF9QU0MpCiAgICB9CgogICAgU2NvcGUgKFxfU0kpCiAg ICB7CiAgICAgICAgTWV0aG9kIChfU1NULCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsK ICAgICAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwMCkpIHt9CiAgICAgICAgICAgIElm IChMT3IgKExFcXVhbCAoQXJnMCwgMHgwMSksIExFcXVhbCAoQXJnMCwgMHgwMikpKSB7fQog ICAgICAgICAgICBJZiAoTEVxdWFsIChBcmcwLCAweDAzKSkge30KICAgICAgICAgICAgSWYg KExFcXVhbCAoQXJnMCwgMHgwNCkpIHt9CiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChc X0dQRSkKICAgIHsKICAgICAgICBNZXRob2QgKF9MMDEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgewogICAgICAgICAgICBBZGQgKEwwMUMsIDB4MDEsIEwwMUMpCiAgICAgICAgfQoK ICAgICAgICBNZXRob2QgKF9MMDMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAg ICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5VU0IxLCAweDAyKQogICAgICAgIH0KCiAgICAg ICAgTWV0aG9kIChfTDA0LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAg ICAgTm90aWZ5IChcX1NCLlBDSTAuVVNCMiwgMHgwMikKICAgICAgICB9CgogICAgICAgIE1l dGhvZCAoX0wwNSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIElm IChBWkFEKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJ MC5NT0RNLCAweDAyKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgewogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9MMDksIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChf TDBCLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTm90aWZ5IChc X1NCLlBDSTAuUENJQiwgMHgwMikKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX0wwQywg MCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5Q Q0kwLlVTQjMsIDB4MDIpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9MMEQsIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5V U0I3LCAweDAyKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfTDBFLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuVVNCNCwg MHgwMikKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX0wxRCwgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlICgweDFELCBQODBIKQogICAgICAgICAg ICBOb3RpZnkgKFxfU0IuU0xQQiwgMHgwMikKICAgICAgICB9CiAgICB9CgogICAgU2NvcGUg KFxfVFopCiAgICB7CiAgICAgICAgTmFtZSAoVEJTRSwgMHgwQUFDKQogICAgICAgIE5hbWUg KENSVDAsIDB4MDApCiAgICAgICAgTmFtZSAoUFNWMCwgMHgwMCkKICAgICAgICBOYW1lIChQ U1ZBLCAweDAwKQogICAgICAgIFRoZXJtYWxab25lIChUWlMwKQogICAgICAgIHsKICAgICAg ICAgICAgTWV0aG9kIChfVE1QLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBJZiAoXEVDT04pCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKFxfU0IuUENJMC5MUENCLkVDMC5USFMwLCBMb2NhbDApCiAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKFxfU0IuUENJMC5MUENCLkVDMC5LQ1NTLCBMb2NhbDEp CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFxfU0IuUENJMC5MUENCLkVDMC5LT1NELCBM b2NhbDIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFJCRUMgKDB4OTIpLCBMb2Nh bDApCiAgICAgICAgICAgICAgICAgICAgQW5kIChMb2NhbDAsIDB4MDEsIExvY2FsMSkKICAg ICAgICAgICAgICAgICAgICBBbmQgKExvY2FsMCwgMHgwOCwgTG9jYWwyKQogICAgICAgICAg ICAgICAgICAgIFN0b3JlIChSQkVDICgweEE4KSwgTG9jYWwwKQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIElmIChMT3IgKExvY2FsMSwgUFNWQSkpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKExHcmVhdGVyRXF1YWwgKFBTVkEsIDB4 MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3Vi dHJhY3QgKENSVDAsIDB4MDIsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKExMZXNzRXF1YWwgKExvY2FsMCwgUFNWMCkpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZCAoUFNWMCwg MHgwMiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChMb2NhbDIp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKExMZXNzRXF1YWwg KExvY2FsMCwgQ1JUMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBBZGQgKENSVDAsIDB4MDIsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChDMksgKExvY2Fs MCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NSVCwgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFxFQ09OKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDIwLCBcX1NCLlBD STAuTFBDQi5FQzAuVElJRCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoXF9TQi5QQ0kw LkxQQ0IuRUMwLlRTQzAsIExvY2FsMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBXQkVDICgw eDAxLCAweDIwKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChSQkVDICgweEQxKSwgTG9j YWwwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChMT3IgKExHcmVh dGVyRXF1YWwgKExvY2FsMCwgMHg4MCksIExMZXNzIChMb2NhbDAsIDB4MUUpKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg3OCwgTG9jYWwwKQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIENSVDAp CiAgICAgICAgICAgICAgICBSZXR1cm4gKEMySyAoTG9jYWwwKSkKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTmFtZSAoX1BTTCwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgXF9QUi5DUFUwCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1l dGhvZCAoX1BTViwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgSWYgKFxFQ09OKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFN0b3JlICgweDIwLCBcX1NCLlBDSTAuTFBDQi5FQzAuVElJRCkKICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoXF9TQi5QQ0kwLkxQQ0IuRUMwLlRTUDAsIExvY2FsMCkKICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBXQkVDICgweDAxLCAweDIwKQogICAgICAgICAgICAgICAgICAgIFN0 b3JlIChSQkVDICgweEQwKSwgTG9jYWwwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIElmIChMT3IgKExHcmVhdGVyRXF1YWwgKExvY2FsMCwgMHg4MCksIExMZXNzIChM b2NhbDAsIDB4MUUpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBT dG9yZSAoMHg1QSwgTG9jYWwwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IFN0b3JlIChMb2NhbDAsIFBTVjApCiAgICAgICAgICAgICAgICBSZXR1cm4gKEMySyAoTG9j YWwwKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoX1RDMSwgMHgwNCkKICAg ICAgICAgICAgTmFtZSAoX1RDMiwgMHgwMykKICAgICAgICAgICAgTmFtZSAoX1RTUCwgMHg5 NikKICAgICAgICB9CgogICAgICAgIFRoZXJtYWxab25lIChUWlMxKQogICAgICAgIHsKICAg ICAgICAgICAgTWV0aG9kIChfVE1QLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBJZiAoXEVDT04pCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKFxfU0IuUENJMC5MUENCLkVDMC5USFMxLCBMb2NhbDApCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFJCRUMgKDB4QTkpLCBMb2NhbDApCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChDMksgKExvY2FsMCkpCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NSVCwgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFxFQ09OKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDIwLCBcX1NCLlBDSTAuTFBD Qi5FQzAuVElJRCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoXF9TQi5QQ0kwLkxQQ0Iu RUMwLlRTQzEsIExvY2FsMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBXQkVDICgweDAxLCAw eDIwKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChSQkVDICgweEQzKSwgTG9jYWwwKQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChMT3IgKExHcmVhdGVyRXF1 YWwgKExvY2FsMCwgMHg4MCksIExMZXNzIChMb2NhbDAsIDB4MUUpKSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg3OCwgTG9jYWwwKQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoQzJLIChMb2NhbDApKQogICAg ICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKEMySywgMSwgTm90U2VyaWFs aXplZCkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChBcmcwLCBMb2NhbDApCiAgICAg ICAgICAgIElmIChMTGVzc0VxdWFsIChMb2NhbDAsIDB4MTApKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBTdG9yZSAoMHgxRSwgTG9jYWwwKQogICAgICAgICAgICB9CgogICAg ICAgICAgICBJZiAoTEdyZWF0ZXJFcXVhbCAoTG9jYWwwLCAweDdGKSkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgU3RvcmUgKDB4MUUsIExvY2FsMCkKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgQWRkIChNdWx0aXBseSAoTG9jYWwwLCAweDBBKSwgVEJTRSwgTG9jYWww KQogICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICB9CgogICAgICAgIE1ldGhv ZCAoU1BTViwgMiwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIFNoaWZ0 TGVmdCAoMHgwMSwgQXJnMCwgTG9jYWwwKQogICAgICAgICAgICBJZiAoQXJnMSkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgT3IgKFBTVkEsIExvY2FsMCwgUFNWQSkKICAgICAg ICAgICAgfQogICAgICAgICAgICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IEFuZCAoUFNWQSwgTm90IChMb2NhbDApLCBQU1ZBKQogICAgICAgICAgICB9CiAgICAgICAg fQogICAgfQoKICAgIE1ldGhvZCAoR0VUUCwgMSwgU2VyaWFsaXplZCkKICAgIHsKICAgICAg ICBJZiAoTEVxdWFsIChBbmQgKEFyZzAsIDB4MDkpLCAweDAwKSkKICAgICAgICB7CiAgICAg ICAgICAgIFJldHVybiAoMHhGRkZGRkZGRikKICAgICAgICB9CgogICAgICAgIElmIChMRXF1 YWwgKEFuZCAoQXJnMCwgMHgwOSksIDB4MDgpKQogICAgICAgIHsKICAgICAgICAgICAgUmV0 dXJuICgweDAzODQpCiAgICAgICAgfQoKICAgICAgICBTaGlmdFJpZ2h0IChBbmQgKEFyZzAs IDB4MDMwMCksIDB4MDgsIExvY2FsMCkKICAgICAgICBTaGlmdFJpZ2h0IChBbmQgKEFyZzAs IDB4MzAwMCksIDB4MEMsIExvY2FsMSkKICAgICAgICBSZXR1cm4gKE11bHRpcGx5ICgweDFF LCBTdWJ0cmFjdCAoMHgwOSwgQWRkIChMb2NhbDAsIExvY2FsMSkpCiAgICAgICAgICAgICkp CiAgICB9CgogICAgTWV0aG9kIChHRE1BLCA1LCBTZXJpYWxpemVkKQogICAgewogICAgICAg IElmIChBcmcwKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKExBbmQgKEFyZzEsIEFyZzQp KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MTQpCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIElmIChMQW5kIChBcmcyLCBBcmc0KSkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgUmV0dXJuIChNdWx0aXBseSAoU3VidHJhY3QgKDB4MDQsIEFy ZzMpLCAweDBGKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChNdWx0aXBs eSAoU3VidHJhY3QgKDB4MDQsIEFyZzMpLCAweDFFKSkKICAgICAgICB9CgogICAgICAgIFJl dHVybiAoMHhGRkZGRkZGRikKICAgIH0KCiAgICBNZXRob2QgKEdFVFQsIDEsIFNlcmlhbGl6 ZWQpCiAgICB7CiAgICAgICAgUmV0dXJuIChNdWx0aXBseSAoMHgxRSwgU3VidHJhY3QgKDB4 MDksIEFkZCAoQW5kIChTaGlmdFJpZ2h0IChBcmcwLCAweDAyCiAgICAgICAgICAgICksIDB4 MDMpLCBBbmQgKEFyZzAsIDB4MDMpKSkpKQogICAgfQoKICAgIE1ldGhvZCAoR0VURiwgMywg U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBOYW1lIChUTVBGLCAweDAwKQogICAgICAgIElm IChBcmcwKQogICAgICAgIHsKICAgICAgICAgICAgT3IgKFRNUEYsIDB4MDEsIFRNUEYpCiAg ICAgICAgfQoKICAgICAgICBJZiAoQW5kIChBcmcyLCAweDAyKSkKICAgICAgICB7CiAgICAg ICAgICAgIE9yIChUTVBGLCAweDAyLCBUTVBGKQogICAgICAgIH0KCiAgICAgICAgSWYgKEFy ZzEpCiAgICAgICAgewogICAgICAgICAgICBPciAoVE1QRiwgMHgwNCwgVE1QRikKICAgICAg ICB9CgogICAgICAgIElmIChBbmQgKEFyZzIsIDB4MjApKQogICAgICAgIHsKICAgICAgICAg ICAgT3IgKFRNUEYsIDB4MDgsIFRNUEYpCiAgICAgICAgfQoKICAgICAgICBJZiAoQW5kIChB cmcyLCAweDQwMDApKQogICAgICAgIHsKICAgICAgICAgICAgT3IgKFRNUEYsIDB4MTAsIFRN UEYpCiAgICAgICAgfQoKICAgICAgICBSZXR1cm4gKFRNUEYpCiAgICB9CgogICAgTWV0aG9k IChTRVRQLCAzLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIElmIChMR3JlYXRlciAoQXJn MCwgMHhGMCkpCiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKDB4MDgpCiAgICAgICAg fQogICAgICAgIEVsc2UKICAgICAgICB7CiAgICAgICAgICAgIElmIChBbmQgKEFyZzEsIDB4 MDIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoTEFuZCAoTExlc3NFcXVh bCAoQXJnMCwgMHg3OCksIEFuZCAoQXJnMiwgMHgwMikpKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgyMzAxKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIElmIChMQW5kIChMTGVzc0VxdWFsIChBcmcwLCAweEI0KSwgQW5k IChBcmcyLCAweDAxKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDIxMDEpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIFJldHVybiAoMHgxMDAxKQogICAgICAgIH0KICAgIH0KCiAgICBNZXRob2QgKFNE TUEsIDEsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgSWYgKExMZXNzRXF1YWwgKEFyZzAs IDB4MTQpKQogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgIH0K CiAgICAgICAgSWYgKExMZXNzRXF1YWwgKEFyZzAsIDB4MUUpKQogICAgICAgIHsKICAgICAg ICAgICAgUmV0dXJuICgweDAyKQogICAgICAgIH0KCiAgICAgICAgSWYgKExMZXNzRXF1YWwg KEFyZzAsIDB4MkQpKQogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAg ICAgIH0KCiAgICAgICAgSWYgKExMZXNzRXF1YWwgKEFyZzAsIDB4M0MpKQogICAgICAgIHsK ICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgIH0KCiAgICAgICAgSWYgKExMZXNz RXF1YWwgKEFyZzAsIDB4NUEpKQogICAgICAgIHsKICAgICAgICAgICAgUmV0dXJuICgweDAx KQogICAgICAgIH0KCiAgICAgICAgUmV0dXJuICgweDAwKQogICAgfQoKICAgIE1ldGhvZCAo U0VUVCwgMywgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBJZiAoQW5kIChBcmcxLCAweDAy KSkKICAgICAgICB7CiAgICAgICAgICAgIElmIChMQW5kIChMTGVzc0VxdWFsIChBcmcwLCAw eDc4KSwgQW5kIChBcmcyLCAweDAyKSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IFJldHVybiAoMHgwQikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKExBbmQgKExM ZXNzRXF1YWwgKEFyZzAsIDB4QjQpLCBBbmQgKEFyZzIsIDB4MDEpKSkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICB9CiAgICAgICAg fQoKICAgICAgICBSZXR1cm4gKDB4MDQpCiAgICB9CgogICAgU2NvcGUgKFxfU0IpCiAgICB7 CiAgICAgICAgRGV2aWNlIChBTVcwKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJ RCwgIipwbnAwYzE0IikKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMCkKICAgICAgICAg ICAgTmFtZSAoV0xJRCwgMHgwMCkKICAgICAgICAgICAgTmFtZSAoV0xNUCwgMHgwMCkKICAg ICAgICAgICAgTmFtZSAoX1dERywgQnVmZmVyICgweDNDKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAvKiAwMDAwICovICAgIDB4ODEsIDB4MTcsIDB4RjQsIDB4RDksIDB4MzMs IDB4RjYsIDB4MDAsIDB4NDQsIAogICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgICAweDkz LCAweDU1LCAweDYwLCAweDE3LCAweDcwLCAweEJFLCAweEM1LCAweDEwLCAKICAgICAgICAg ICAgICAgIC8qIDAwMTAgKi8gICAgMHg0MSwgMHg0MSwgMHgwMSwgMHgwMCwgMHgxRCwgMHgz NywgMHhDMywgMHg2NywgCiAgICAgICAgICAgICAgICAvKiAwMDE4ICovICAgIDB4QTMsIDB4 OTUsIDB4MzcsIDB4NEMsIDB4QkIsIDB4NjEsIDB4REQsIDB4NDcsIAogICAgICAgICAgICAg ICAgLyogMDAyMCAqLyAgICAweEI0LCAweDkxLCAweERBLCAweEFCLCAweDQxLCAweDQyLCAw eDAxLCAweDAyLCAKICAgICAgICAgICAgICAgIC8qIDAwMjggKi8gICAgMHg3MSwgMHhCRiwg MHhEMSwgMHg0MCwgMHgyRCwgMHhBOCwgMHg1OSwgMHg0RSwgCiAgICAgICAgICAgICAgICAv KiAwMDMwICovICAgIDB4QTEsIDB4NjgsIDB4MzksIDB4ODUsIDB4RTAsIDB4M0IsIDB4MkUs IDB4ODcsIAogICAgICAgICAgICAgICAgLyogMDAzOCAqLyAgICAweEIwLCAweDAwLCAweDAx LCAweDA4CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKEIwRUQsIEJ1ZmZlciAo MHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMAogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChCMUVELCBCdWZmZXIgKDB4 MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAKICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChfV0VELCAxLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdG9yZSAoMHhCMCwgUDgw SCkKICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4QjApKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlIChXTElELCBCMEVEKQogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoQjBFRCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChXUUFBLCAxLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBTdG9yZSAoMHhBQSwgUDgwSCkKICAgICAgICAg ICAgICAgIFJldHVybiAoQjFFRCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k IChXU0FBLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBTdG9yZSAoMHhBMSwgUDgwSCkKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQg KEFyZzEsIDB4MDAsIERERDApCiAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChEREQwLCAw eDAxKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBZGQgKERERDAs IDB4MDIsIERERDApCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKERERDAsIEluZGV4IChC MUVELCAweDAwKSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChXTUFCLCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBTdG9yZSAoMHhBQiwgUDgwSCkKICAgICAgICAgICAgICAgIFN0b3JlICgw eDAxLCBXTE1QKQogICAgICAgICAgICAgICAgUmV0dXJuIChXSDE1IChBcmcxLCBBcmcyKSkK ICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChMSUQwKQogICAgICAg IHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRCIpKQogICAgICAg ICAgICBNZXRob2QgKF9MSUQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIElmIChcRUNPTikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoXF9TQi5QQ0kwLkxQQ0IuRUMwLktMSUQsIExvY2FsMCkKICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBBbmQgKFxSQkVDICgweDcwKSwgMHgwMiwgTG9jYWwwKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChMb2NhbDApCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg fQoKICAgICAgICAgICAgTWV0aG9kIChfUFNXLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBJZiAoXEVDT04pCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKEFyZzAsIFxfU0IuUENJMC5MUENCLkVDMC5MSURX KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIElmIChBcmcwKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgXE1CRUMgKDB4NzIsIDB4RUYsIDB4MTApCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFxNQkVDICgweDcyLCAweEVG LCAweDAwKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoX1BSVywgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgMHgxRCwgCiAgICAgICAgICAgICAgICAweDAzCiAg ICAgICAgICAgIH0pCiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKFNMUEIpCiAgICAgICAg ewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBFIikpCiAgICAgICAg ICAgIE5hbWUgKF9QUlcsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIDB4MUQsIAogICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAgICB9KQogICAg ICAgIH0KCiAgICAgICAgRGV2aWNlIChQQ0kwKQogICAgICAgIHsKICAgICAgICAgICAgTWV0 aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBJZiAoQ29uZFJlZk9mIChfT1NJLCBMb2NhbDApKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDA3RDEsIE9TWVMpCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgSWYgKExPciAoTEVxdWFsIChTaXplT2YgKF9PUyksIDB4MTQpLCBMRXF1YWwg KFNpemVPZiAoX09TKSwgMHgwNSkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKDB4MDdEMCwgT1NZUykKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoU2l6ZU9mIChfT1MpLCAweDI3KSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MDdDRiwgT1NZUykKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDA3Q0UsIE9TWVMpCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1MzRCwgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TNEQsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAg ICAgfQoKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEEwOCIpKQogICAg ICAgICAgICBOYW1lIChfQ0lELCAweDAzMEFEMDQxKQogICAgICAgICAgICBOYW1lIChfQURS LCAweDAwKQogICAgICAgICAgICBOYW1lIChfQkJOLCAweDAwKQogICAgICAgICAgICBPcGVy YXRpb25SZWdpb24gKEhCVVMsIFBDSV9Db25maWcsIDB4NDAsIDB4QzApCiAgICAgICAgICAg IEZpZWxkIChIQlVTLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTApLCAKICAgICAgICAgICAg ICAgICAgICAsICAgNCwgCiAgICAgICAgICAgICAgICBQTTBILCAgIDIsIAogICAgICAgICAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4NTEpLCAKICAgICAgICAgICAgICAgIFBNMUwsICAg MiwgCiAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgUE0xSCwg ICAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUyKSwgCiAgICAgICAg ICAgICAgICBQTTJMLCAgIDIsIAogICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAg ICAgICAgICAgIFBNMkgsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHg1MyksIAogICAgICAgICAgICAgICAgUE0zTCwgICAyLCAKICAgICAgICAgICAgICAgICAg ICAsICAgMiwgCiAgICAgICAgICAgICAgICBQTTNILCAgIDIsIAogICAgICAgICAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4NTQpLCAKICAgICAgICAgICAgICAgIFBNNEwsICAgMiwgCiAg ICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgUE00SCwgICAyLCAK ICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDU1KSwgCiAgICAgICAgICAgICAg ICBQTTVMLCAgIDIsIAogICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAg ICAgIFBNNUgsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1Niks IAogICAgICAgICAgICAgICAgUE02TCwgICAyLCAKICAgICAgICAgICAgICAgICAgICAsICAg MiwgCiAgICAgICAgICAgICAgICBQTTZILCAgIDIsIAogICAgICAgICAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4NTcpLCAKICAgICAgICAgICAgICAgICAgICAsICAgNywgCiAgICAgICAg ICAgICAgICBIRU5BLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 NUMpLCAKICAgICAgICAgICAgICAgICAgICAsICAgMywgCiAgICAgICAgICAgICAgICBUT1VE LCAgIDUsIAogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QTQpLCAKICAgICAg ICAgICAgICAgICAgICAsICAgNiwgCiAgICAgICAgICAgICAgICBJR0RELCAgIDEKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoQlVGMCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBXb3JkQnVzTnVtYmVyIChSZXNvdXJjZVBy b2R1Y2VyLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIFBvc0RlY29kZSwKICAgICAgICAgICAgICAg ICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAg ICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAg ICAgICAgICAgMHgwMEZGLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAg ICAgICAgICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQK ICAgICAgICAgICAgICAgICAgICAweDAxMDAsICAgICAgICAgICAgIC8vIExlbmd0aAogICAg ICAgICAgICAgICAgICAgIDB4MDAsLCApCiAgICAgICAgICAgICAgICBEV29yZElPIChSZXNv dXJjZVByb2R1Y2VyLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIFBvc0RlY29kZSwgRW50aXJlUmFu Z2UsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxh cml0eQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gUmFuZ2Ug TWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDRjcsICAgICAgICAgLy8gUmFu Z2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8g VHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMENGOCwgICAg ICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAweDAwLCwgLCBUeXBlU3RhdGlj KQogICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgIDB4 MENGOCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAg IDB4MENGOCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAg ICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAg ICAgMHgwOCwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAp CiAgICAgICAgICAgICAgICBEV29yZElPIChSZXNvdXJjZVByb2R1Y2VyLCBNaW5GaXhlZCwg TWF4Rml4ZWQsIFBvc0RlY29kZSwgRW50aXJlUmFuZ2UsCiAgICAgICAgICAgICAgICAgICAg MHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAg IDB4MDAwMDBEMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAg ICAgIDB4MDAwMEZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAg ICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAg ICAgICAgICAgICAgICAgMHgwMDAwRjMwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAg ICAgICAgICAgICAweDAwLCwgLCBUeXBlU3RhdGljKQogICAgICAgICAgICAgICAgRFdvcmRN ZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4ZWQsIE1heEZpeGVk LCBDYWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw LCAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgMHgwMDBBMDAw MCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDBC RkZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgw MDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAg ICAgICAweDAwMDIwMDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAg IDB4MDAsLCAsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAgICAg ICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVk LCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAg MHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAg IDB4MDAwQzAwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAg ICAgIDB4MDAwQzNGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAg ICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAg ICAgICAgICAgICAgICAgMHgwMDAwNDAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAg ICAgICAgICAgICAweDAwLCwgX1kwMCwgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGlj KQogICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFBvc0Rl Y29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBDYWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAg ICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAg ICAgICAgICAgICAgICAgMHgwMDBDNDAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAg ICAgICAgICAgICAgICAgICAgMHgwMDBDN0ZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhpbXVt CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlv biBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwLCAgICAgICAgIC8vIExl bmd0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsLCBfWTAxLCBBZGRyZXNzUmFuZ2VNZW1v cnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQ cm9kdWNlciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIENhY2hlYWJsZSwgUmVh ZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3Jh bnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAweDAwMEM4MDAwLCAgICAgICAgIC8vIFJh bmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMENCRkZGLCAgICAgICAgIC8v IFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAg IC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDAs ICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwsIF9ZMDIsIEFk ZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVt b3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwg Q2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwg ICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4MDAwQ0MwMDAs ICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwQ0ZG RkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAw MDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAg ICAgMHgwMDAwNDAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAw eDAwLCwgX1kwMywgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAgICAg ICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4 ZWQsIE1heEZpeGVkLCBDYWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAg ICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAg ICAgMHgwMDBEMDAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAg ICAgICAgMHgwMDBEM0ZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAg ICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAg ICAgICAgICAgICAgICAgICAweDAwMDA0MDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAg ICAgICAgICAgICAgIDB4MDAsLCBfWTA0LCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0 aWMpCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgUG9z RGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIENhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAg ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAg ICAgICAgICAgICAgICAgICAweDAwMEQ0MDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0K ICAgICAgICAgICAgICAgICAgICAweDAwMEQ3RkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGlt dW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0 aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDAsICAgICAgICAgLy8g TGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwsIF9ZMDUsIEFkZHJlc3NSYW5nZU1l bW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJj ZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBS ZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBH cmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4MDAwRDgwMDAsICAgICAgICAgLy8g UmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwREJGRkYsICAgICAgICAg Ly8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAg ICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAw MCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAweDAwLCwgX1kwNiwg QWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAgICAgICAgICAgRFdvcmRN ZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4ZWQsIE1heEZpeGVk LCBDYWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw LCAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgMHgwMDBEQzAw MCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDBE RkZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgw MDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAg ICAgICAweDAwMDA0MDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAg IDB4MDAsLCBfWTA3LCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAg ICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgUG9zRGVjb2RlLCBNaW5G aXhlZCwgTWF4Rml4ZWQsIENhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAg ICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAg ICAgICAweDAwMEUwMDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAg ICAgICAgICAweDAwMEUzRkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAg ICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAog ICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDAsICAgICAgICAgLy8gTGVuZ3RoCiAgICAg ICAgICAgICAgICAgICAgMHgwMCwsIF9ZMDgsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0 YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQ b3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAg ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQog ICAgICAgICAgICAgICAgICAgIDB4MDAwRTQwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11 bQogICAgICAgICAgICAgICAgICAgIDB4MDAwRTdGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4 aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNs YXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMCwgICAgICAgICAv LyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAweDAwLCwgX1kwOSwgQWRkcmVzc1Jhbmdl TWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJlc291 cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBDYWNoZWFibGUs IFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8v IEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgMHgwMDBFODAwMCwgICAgICAgICAv LyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDBFQkZGRiwgICAgICAg ICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAg ICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDA0 MDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsLCBfWTBB LCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBEV29y ZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4 ZWQsIENhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw MDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAweDAwMEVD MDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAw MEVGRkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAw eDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAg ICAgICAgIDB4MDAwMDQwMDAsICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAg ICAgMHgwMCwsIF9ZMEIsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAg ICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1p bkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAg ICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAg ICAgICAgIDB4MDAwRjAwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAg ICAgICAgICAgIDB4MDAwRkZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAg ICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0 CiAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMCwgICAgICAgICAvLyBMZW5ndGgKICAg ICAgICAgICAgICAgICAgICAweDAwLCwgX1kwQywgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBl U3RhdGljKQogICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIs IFBvc0RlY29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBDYWNoZWFibGUsIFJlYWRXcml0ZSwK ICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5 CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5p bXVtCiAgICAgICAgICAgICAgICAgICAgMHhGRUJGRkZGRiwgICAgICAgICAvLyBSYW5nZSBN YXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFu c2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAg IC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsLCBfWTBELCBBZGRyZXNzUmFu Z2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhv ZCAoX0NSUywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg SWYgKFBNMUwpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRl RFdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLl9ZMDAuX0xFTiwgQzBMTikKICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoWmVybywgQzBMTikKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBJZiAoTEVxdWFsIChQTTFMLCAweDAxKSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLl9Z MDAuX1JXLCBDMFJXKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBDMFJXKQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChQTTFIKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxf U0IuUENJMC5fWTAxLl9MRU4sIEM0TE4pCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFpl cm8sIEM0TE4pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKExFcXVh bCAoUE0xSCwgMHgwMSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg Q3JlYXRlQml0RmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTAxLl9SVywgQzRSVykKICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoWmVybywgQzRSVykKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBJZiAoUE0yTCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwMi5fTEVOLCBD OExOKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBDOExOKQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFBNMkwsIDB4MDEpKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChCVUYw LCBcX1NCLlBDSTAuX1kwMi5fUlcsIEM4UlcpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUg KFplcm8sIEM4UlcpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKFBN MkgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRG aWVsZCAoQlVGMCwgXF9TQi5QQ0kwLl9ZMDMuX0xFTiwgQ0NMTikKICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoWmVybywgQ0NMTikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBJZiAoTEVxdWFsIChQTTJILCAweDAxKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLl9ZMDMuX1JX LCBDQ1JXKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBDQ1JXKQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChQTTNMKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJ MC5fWTA0Ll9MRU4sIEQwTE4pCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIEQw TE4pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoUE0z TCwgMHgwMSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRl Qml0RmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTA0Ll9SVywgRDBSVykKICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoWmVybywgRDBSVykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBJZiAoUE0zSCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwNS5fTEVOLCBENExOKQog ICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBENExOKQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFBNM0gsIDB4MDEpKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChCVUYwLCBcX1NC LlBDSTAuX1kwNS5fUlcsIEQ0UlcpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8s IEQ0UlcpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKFBNNEwpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAo QlVGMCwgXF9TQi5QQ0kwLl9ZMDYuX0xFTiwgRDhMTikKICAgICAgICAgICAgICAgICAgICBT dG9yZSAoWmVybywgRDhMTikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJ ZiAoTEVxdWFsIChQTTRMLCAweDAxKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBDcmVhdGVCaXRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLl9ZMDYuX1JXLCBEOFJX KQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBEOFJXKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIElmIChQTTRIKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTA3 Ll9MRU4sIERDTE4pCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIERDTE4pCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoUE00SCwgMHgw MSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0Rmll bGQgKEJVRjAsIFxfU0IuUENJMC5fWTA3Ll9SVywgRENSVykKICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoWmVybywgRENSVykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBJZiAoUE01TCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVh dGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwOC5fTEVOLCBFMExOKQogICAgICAg ICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBFMExOKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIElmIChMRXF1YWwgKFBNNUwsIDB4MDEpKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChCVUYwLCBcX1NCLlBDSTAu X1kwOC5fUlcsIEUwUlcpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIEUwUlcp CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKFBNNUgpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwg XF9TQi5QQ0kwLl9ZMDkuX0xFTiwgRTRMTikKICAgICAgICAgICAgICAgICAgICBTdG9yZSAo WmVybywgRTRMTikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoTEVx dWFsIChQTTVILCAweDAxKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBDcmVhdGVCaXRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLl9ZMDkuX1JXLCBFNFJXKQogICAg ICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBFNFJXKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIElmIChQTTZMKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTBBLl9MRU4s IEU4TE4pCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIEU4TE4pCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoUE02TCwgMHgwMSkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKEJV RjAsIFxfU0IuUENJMC5fWTBBLl9SVywgRThSVykKICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoWmVybywgRThSVykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAo UE02SCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29y ZEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwQi5fTEVOLCBFQ0xOKQogICAgICAgICAgICAg ICAgICAgIFN0b3JlIChaZXJvLCBFQ0xOKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIElmIChMRXF1YWwgKFBNNkgsIDB4MDEpKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwQi5f UlcsIEVDUlcpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIEVDUlcpCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKFBNMEgpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9TQi5Q Q0kwLl9ZMEMuX0xFTiwgRjBMTikKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywg RjBMTikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChQ TTBILCAweDAxKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVh dGVCaXRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLl9ZMEMuX1JXLCBGMFJXKQogICAgICAgICAg ICAgICAgICAgIFN0b3JlIChaZXJvLCBGMFJXKQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTBELl9NSU4s IE0xTU4pCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBD STAuX1kwRC5fTUFYLCBNMU1YKQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAo QlVGMCwgXF9TQi5QQ0kwLl9ZMEQuX0xFTiwgTTFMTikKICAgICAgICAgICAgICAgIFNoaWZ0 TGVmdCAoVE9VRCwgMHgxQiwgTTFNTikKICAgICAgICAgICAgICAgIEFkZCAoU3VidHJhY3Qg KE0xTVgsIE0xTU4pLCAweDAxLCBNMUxOKQogICAgICAgICAgICAgICAgUmV0dXJuIChCVUYw KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChHUElDKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgxMSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAwMUZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MTAKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDJGRkZGLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgICAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MDA3RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgxMAogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAxQ0ZGRkYsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgICAgICAgICAgICAgfSwg CgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUNGRkZGLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCiAgICAg ICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMDFDRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAy LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgxMgogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQ0ZGRkYsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMURGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDE3CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMDFERkZGRiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICAgICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxREZGRkYs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKICAg ICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNr YWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwMURGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDEzCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFERkZGRiwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDA3LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNwogICAgICAgICAgICAg ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAxRUZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MTUKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwMUVGRkZGLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDE1CiAgICAgICAgICAgICAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFGRkZG RiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAog ICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAxRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZGRkZGLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgxMSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMUZGRkYsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcX1NCLlBDSTAuTFBDQi5MTktBLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwMDJGRkZGLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQ Q0IuTE5LQSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAg ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMDA3RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUENCLkxOS0EsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9LCAK CiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQ0ZGRkYsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcX1NCLlBDSTAuTFBDQi5MTktCLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwMUNGRkZGLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kw LkxQQ0IuTE5LQSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAg ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDFDRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUENCLkxOS0MsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQ0ZGRkYs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcX1NCLlBDSTAuTFBDQi5MTktELCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMURGRkZGLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5Q Q0kwLkxQQ0IuTE5LSCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAg ICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMDFERkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAx LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUENCLkxOS0IsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxREZG RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDQi5MTktDLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMURGRkZGLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9T Qi5QQ0kwLkxQQ0IuTE5LRCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAg ICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMDFERkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDA3LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUENCLkxOS0gs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAg ICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAx RUZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDQi5MTktGLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUVGRkZGLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg XF9TQi5QQ0kwLkxQQ0IuTE5LRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMDFGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUENCLkxO S0EsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAxRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDQi5MTktCLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUZGRkZGLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgXF9TQi5QQ0kwLkxQQ0IuTE5LQiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFBF R1ApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwMTAw MDApCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKEdQSUMpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDEzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUENCLkxOS0EsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAx LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDQi5MTktC LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQ Q0IuTE5LQywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0Iu UENJMC5MUENCLkxOS0QsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIERldmljZSAoR0ZYMCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgTmFtZSAoX0FEUiwgMHgwMDAyMDAwMCkKICAgICAgICAgICAgICAgIE1ldGhvZCAo X0RPUywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoQW5kIChBcmcwLCAweDAzKSwgRFNFTikKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9ET0QsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgw eDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgw MTAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDEwLCAKICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMjQwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzIwCiAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBE ZXZpY2UgKENSVCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1l IChfQURSLCAweDAxMDApCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRENTLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUEhTUiAoMHgyNSwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFu ZCAoQ1NURSwgMHgwMTAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDFGKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MUQpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ER1MsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoQW5kIChOU1RFLCAweDAxMDEpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTUywg MSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmIChMRXF1YWwgKEFuZCAoQXJnMCwgMHhDMDAwMDAwMCksIDB4QzAwMDAw MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoTlNURSwgQ1NURSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBE ZXZpY2UgKFRWMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1l IChfQURSLCAweDAyNDApCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRENTLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUEhTUiAoMHgyNSwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFu ZCAoQ1NURSwgMHgwMjAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDFGKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MUQpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ER1MsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoQW5kIChOU1RFLCAweDAyMDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTUywg MSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmIChMRXF1YWwgKEFuZCAoQXJnMCwgMHhDMDAwMDAwMCksIDB4QzAwMDAw MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoTlNURSwgQ1NURSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBE ZXZpY2UgKERWSSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1l IChfQURSLCAweDAzMjApCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRENTLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUEhTUiAoMHgyNSwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFu ZCAoQ1NURSwgMHgwNDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDFGKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MUQpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ER1MsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoQW5kIChOU1RFLCAweDA0MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTUywg MSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmIChMRXF1YWwgKEFuZCAoQXJnMCwgMHhDMDAwMDAwMCksIDB4QzAwMDAw MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoTlNURSwgQ1NURSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBE ZXZpY2UgKExDRCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1l IChfQURSLCAweDA0MTApCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRENTLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUEhTUiAoMHgyNSwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFu ZCAoQ1NURSwgMHgwODA4KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDFGKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MUQpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ER1MsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBJZiAoQW5kIChOU1RFLCAweDA4MDgpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTUywg MSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmIChMRXF1YWwgKEFuZCAoQXJnMCwgMHhDMDAwMDAwMCksIDB4QzAwMDAw MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoTlNURSwgQ1NURSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAg ICAgICAgICAgRGV2aWNlIChVU0IxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBO YW1lIChfQURSLCAweDAwMUQwMDAwKQogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9u IChVMUNTLCBQQ0lfQ29uZmlnLCAweEM0LCAweDA0KQogICAgICAgICAgICAgICAgRmllbGQg KFUxQ1MsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFUxRU4sICAgMgogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE5hbWUgKF9QUlcsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgMHgwMwog ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTVywgMSwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo QXJnMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlICgweDAzLCBVMUVOKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoMHgwMCwgVTFFTikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUzNELCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikK ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TNEQsIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICgweDAyKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg ICBEZXZpY2UgKFVTQjIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9B RFIsIDB4MDAxRDAwMDEpCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFUyQ1Ms IFBDSV9Db25maWcsIDB4QzQsIDB4MDQpCiAgICAgICAgICAgICAgICBGaWVsZCAoVTJDUywg RFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgVTJFTiwgICAyCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTmFtZSAoX1BSVywgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAweDA0LCAKICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgTWV0aG9kIChfUFNXLCAxLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChBcmcwKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 MDMsIFUyRU4pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl ICgweDAwLCBVMkVOKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKF9TM0QsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1M0RCwgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MDIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmlj ZSAoVVNCMykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgw MDFEMDAwMikKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVTJDUywgUENJX0Nv bmZpZywgMHhDNCwgMHgwNCkKICAgICAgICAgICAgICAgIEZpZWxkIChVMkNTLCBEV29yZEFj YywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBVM0VOLCAgIDIKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1l IChfUFJXLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIDB4MEMsIAogICAgICAgICAgICAgICAgICAgIDB4MDMKICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QU1csIDEsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKEFyZzApCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgVTNF TikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAs IFUzRU4pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1MzRCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUzRELCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChVU0I0 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMUQwMDAz KQogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChVNENTLCBQQ0lfQ29uZmlnLCAw eEM0LCAweDA0KQogICAgICAgICAgICAgICAgRmllbGQgKFU0Q1MsIERXb3JkQWNjLCBOb0xv Y2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFU0 RU4sICAgMgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKF9QUlcs IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg MHgwRSwgCiAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1BTVywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoQXJnMCkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAzLCBVNEVOKQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgVTRFTikK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTWV0aG9kIChfUzNELCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBNZXRob2QgKF9TNEQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFVTQjcpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxRDAwMDcpCiAgICAg ICAgICAgICAgICBOYW1lIChfUFJXLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIDB4MEQsIAogICAgICAgICAgICAgICAgICAgIDB4MDMK ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAo UENJQikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDFF MDAwMCkKICAgICAgICAgICAgICAgIERldmljZSAoTEFOQikKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMDcwMDAwKQogICAgICAgICAg ICAgICAgICAgIE5hbWUgKF9QUlcsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDBCLCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHgwNQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTWV0aG9kIChfUFJULCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChHUElDKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDA2 KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNUZGRkYsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMDA3RkZGRiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwMDlGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAwOUZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMDA5RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwMDlGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAz LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDE2CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwNikKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwMDVGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDQi5MTktG LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJ MC5MUENCLkxOS0UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA5RkZGRiwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXF9TQi5QQ0kwLkxQQ0IuTE5LRywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDlGRkZGLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDQi5MTktHLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw OUZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUENCLkxOS0csIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDA5RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQ0IuTE5L RywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgRGV2aWNlIChBVUQwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChf QURSLCAweDAwMUUwMDAyKQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKE1P RE0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxRTAw MDMpCiAgICAgICAgICAgICAgICBOYW1lIChfUFJXLCBQYWNrYWdlICgweDAyKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDUsIAogICAgICAgICAgICAgICAg ICAgIDB4MDMKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IERldmljZSAoTFBDQikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FE UiwgMHgwMDFGMDAwMCkKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoTFBDMCwg UENJX0NvbmZpZywgMHg0MCwgMHhDMCkKICAgICAgICAgICAgICAgIEZpZWxkIChMUEMwLCBB bnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjApLCAKICAgICAgICAgICAgICAgICAgICBQ QVJDLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFBCUkMsICAgOCwgCiAgICAgICAgICAg ICAgICAgICAgUENSQywgICA4LCAKICAgICAgICAgICAgICAgICAgICBQRFJDLCAgIDgsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDI4KSwgCiAgICAgICAgICAg ICAgICAgICAgUEVSQywgICA4LCAKICAgICAgICAgICAgICAgICAgICBQRlJDLCAgIDgsIAog ICAgICAgICAgICAgICAgICAgIFBHUkMsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgUEhS QywgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg0MCksIAog ICAgICAgICAgICAgICAgICAgIElPRDAsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgSU9E MSwgICA4CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChMTktB KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVp c2FJZCAoIlBOUDBDMEYiKSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDAx KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDgw LCBQQVJDKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX1BSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsxMCwxMX0KICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFJU TEEsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQs IF9ZMEUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge30KICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk IChSVExBLCBcX1NCLlBDSTAuTFBDQi5MTktBLl9DUlMuX1kwRS5fSU5ULCBJUlEwKQogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgSVJRMCkKICAgICAgICAgICAgICAg ICAgICAgICAgU2hpZnRMZWZ0ICgweDAxLCBBbmQgKFBBUkMsIDB4MEYpLCBJUlEwKQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJUTEEpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKEFyZzAsIDB4MDEsIElSUTApCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbmRT ZXRSaWdodEJpdCAoSVJRMCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBEZWNy ZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwg UEFSQykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChBbmQgKFBBUkMsIDB4ODApKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChMTktC KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVp c2FJZCAoIlBOUDBDMEYiKSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDAy KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDgw LCBQQlJDKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX1BSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsxMCwxMX0KICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFJU TEIsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQs IF9ZMEYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge30KICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk IChSVExCLCBcX1NCLlBDSTAuTFBDQi5MTktCLl9DUlMuX1kwRi5fSU5ULCBJUlEwKQogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgSVJRMCkKICAgICAgICAgICAgICAg ICAgICAgICAgU2hpZnRMZWZ0ICgweDAxLCBBbmQgKFBCUkMsIDB4MEYpLCBJUlEwKQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJUTEIpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKEFyZzAsIDB4MDEsIElSUTApCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbmRT ZXRSaWdodEJpdCAoSVJRMCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBEZWNy ZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwg UEJSQykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChBbmQgKFBCUkMsIDB4ODApKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChMTktD KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVp c2FJZCAoIlBOUDBDMEYiKSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDAz KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDgw LCBQQ1JDKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX1BSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsxMCwxMX0KICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFJU TEMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQs IF9ZMTApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge30KICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk IChSVExDLCBcX1NCLlBDSTAuTFBDQi5MTktDLl9DUlMuX1kxMC5fSU5ULCBJUlEwKQogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgSVJRMCkKICAgICAgICAgICAgICAg ICAgICAgICAgU2hpZnRMZWZ0ICgweDAxLCBBbmQgKFBDUkMsIDB4MEYpLCBJUlEwKQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJUTEMpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKEFyZzAsIDB4MDEsIElSUTApCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbmRT ZXRSaWdodEJpdCAoSVJRMCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBEZWNy ZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwg UENSQykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChBbmQgKFBDUkMsIDB4ODApKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChMTktE KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVp c2FJZCAoIlBOUDBDMEYiKSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDA0 KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDgw LCBQRFJDKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX1BSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsxMCwxMX0KICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFJU TEQsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQs IF9ZMTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge30KICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk IChSVExELCBcX1NCLlBDSTAuTFBDQi5MTktELl9DUlMuX1kxMS5fSU5ULCBJUlEwKQogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgSVJRMCkKICAgICAgICAgICAgICAg ICAgICAgICAgU2hpZnRMZWZ0ICgweDAxLCBBbmQgKFBEUkMsIDB4MEYpLCBJUlEwKQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJUTEQpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKEFyZzAsIDB4MDEsIElSUTApCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbmRT ZXRSaWdodEJpdCAoSVJRMCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBEZWNy ZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwg UERSQykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChBbmQgKFBEUkMsIDB4ODApKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChMTktF KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVp c2FJZCAoIlBOUDBDMEYiKSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDA1 KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDgw LCBQRVJDKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX1BSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsxMCwxMX0KICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFJU TEUsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQs IF9ZMTIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge30KICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk IChSVExFLCBcX1NCLlBDSTAuTFBDQi5MTktFLl9DUlMuX1kxMi5fSU5ULCBJUlEwKQogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgSVJRMCkKICAgICAgICAgICAgICAg ICAgICAgICAgU2hpZnRMZWZ0ICgweDAxLCBBbmQgKFBFUkMsIDB4MEYpLCBJUlEwKQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJUTEUpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKEFyZzAsIDB4MDEsIElSUTApCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbmRT ZXRSaWdodEJpdCAoSVJRMCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBEZWNy ZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwg UEVSQykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChBbmQgKFBFUkMsIDB4ODApKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChMTktG KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVp c2FJZCAoIlBOUDBDMEYiKSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDA2 KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDgw LCBQRlJDKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX1BSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsxMCwxMX0KICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFJU TEYsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQs IF9ZMTMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge30KICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk IChSVExGLCBcX1NCLlBDSTAuTFBDQi5MTktGLl9DUlMuX1kxMy5fSU5ULCBJUlEwKQogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgSVJRMCkKICAgICAgICAgICAgICAg ICAgICAgICAgU2hpZnRMZWZ0ICgweDAxLCBBbmQgKFBGUkMsIDB4MEYpLCBJUlEwKQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJUTEYpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKEFyZzAsIDB4MDEsIElSUTApCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbmRT ZXRSaWdodEJpdCAoSVJRMCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBEZWNy ZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwg UEZSQykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChBbmQgKFBGUkMsIDB4ODApKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChMTktH KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVp c2FJZCAoIlBOUDBDMEYiKSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDA3 KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDgw LCBQR1JDKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX1BSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsxMCwxMX0KICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFJU TEcsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQs IF9ZMTQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge30KICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk IChSVExHLCBcX1NCLlBDSTAuTFBDQi5MTktHLl9DUlMuX1kxNC5fSU5ULCBJUlEwKQogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgSVJRMCkKICAgICAgICAgICAgICAg ICAgICAgICAgU2hpZnRMZWZ0ICgweDAxLCBBbmQgKFBHUkMsIDB4MEYpLCBJUlEwKQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJUTEcpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKEFyZzAsIDB4MDEsIElSUTApCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbmRT ZXRSaWdodEJpdCAoSVJRMCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBEZWNy ZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwg UEdSQykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChBbmQgKFBHUkMsIDB4ODApKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChMTktI KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVp c2FJZCAoIlBOUDBDMEYiKSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDA4 KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgU2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDgw LCBQSFJDKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX1BSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsxMCwxMX0KICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFJU TEgsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQs IF9ZMTUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge30KICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk IChSVExILCBcX1NCLlBDSTAuTFBDQi5MTktILl9DUlMuX1kxNS5fSU5ULCBJUlEwKQogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgSVJRMCkKICAgICAgICAgICAgICAg ICAgICAgICAgU2hpZnRMZWZ0ICgweDAxLCBBbmQgKFBIUkMsIDB4MEYpLCBJUlEwKQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJUTEgpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKEFyZzAsIDB4MDEsIElSUTApCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbmRT ZXRSaWdodEJpdCAoSVJRMCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBEZWNy ZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwg UEhSQykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChBbmQgKFBIUkMsIDB4ODApKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChFQzAp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlz YUlkICgiUE5QMEMwOSIpKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9HUEUsIDB4MTcp CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDBGKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFtZSAo X0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDYyLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwNjIsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxp Z25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAg IC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg ICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwNjYsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDA2NiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVu Z3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKEVDTzEsIFN5c3RlbUlP LCAweDYyLCAweDAxKQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChFQ08xLCBCeXRlQWNj LCBMb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFBYNjIsICAgOAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChFQ08yLCBTeXN0ZW1JTywgMHg2NiwgMHgwMSkK ICAgICAgICAgICAgICAgICAgICBGaWVsZCAoRUNPMiwgQnl0ZUFjYywgTG9jaywgUHJlc2Vy dmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBQWDY2 LCAgIDgKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE9wZXJh dGlvblJlZ2lvbiAoUkFNLCBFbWJlZGRlZENvbnRyb2wsIDB4MDAsIDB4RkYpCiAgICAgICAg ICAgICAgICAgICAgRmllbGQgKFJBTSwgQW55QWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0 ICgweDBBKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgICAgIEJMTkssICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDcwKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEtMSUQsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAsICAgMywgCiAgICAgICAgICAgICAgICAgICAgICAgIEtBQ1MsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDcxKSwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAg ICAgIEVaNEQsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1VVEUsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgICAgIEtCSUQsICAgMywgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDcyKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIEtFWVcsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgICAgIFRQRFcsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIExJ RFcsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJMMlcsICAgMQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKFJBTSwgQW55QWNjLCBM b2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDAxKSwgCiAgICAgICAgICAgICAgICAgICAgICAg IFRJSUQsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgw eDEwKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAg ICAgICAgICAgICAgIEtURUUsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgT2Zmc2V0ICgweDExKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEtQUFMsICAgMSwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDkxKSwgCiAgICAg ICAgICAgICAgICAgICAgICAgIFRUSUQsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAg IEtDU1MsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEtDVFQsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgICAgIEtEVFQsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAg IEtPU0QsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEtWVFAsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEE4KSwgCiAgICAgICAgICAg ICAgICAgICAgICAgIFRIUzAsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFRIUzEs ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFRIUzIsICAgOCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIFRIUzMsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFRIUzQs ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFRIUzUsICAgOCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIFRIUzYsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFRIUzcs ICAgOAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRmllbGQg KFJBTSwgQW55QWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDkyKSwgCiAgICAgICAg ICAgICAgICAgICAgICAgIEtUQUYsICAgOAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgRmllbGQgKFJBTSwgQW55QWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDkyKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFRIU0wsICAgNAogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKFJBTSwgQW55QWNj LCBMb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEQwKSwgCiAgICAgICAgICAgICAgICAgICAg ICAgIFRTUDAsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFRTQzAsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIFRTUDEsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIFRTQzEsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFRTUDIsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIFRTQzIsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIFRTUDMsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFRTQzMsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIFRTUDQsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIFRTQzQsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFRTUDUsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIFRTQzUsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIFRTUDYsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFRTQzYsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIFRTUDcsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIFRTQzcsICAgOAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfUkVHLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwMykpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChBcmcxLCBFQ09OKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgVElOSSAoKQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBNZXRob2QgKFRJTkksIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgS1RB RikKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIEtURUUpCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9RMTYsIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHgxNiwgUDgwSCkKICAgICAgICAgICAgICAgICAgICAgICAgTEFNTiAo MHgwMSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1EyNCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDI0LCBQODBIKQogICAgICAgICAgICAgICAg ICAgICAgICBMQU1OICgweDZBKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfUTI1LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MjUsIFA4MEgpCiAg ICAgICAgICAgICAgICAgICAgICAgIExBTU4gKDB4NkQpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9RMTcsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo MHgxNywgUDgwSCkKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlNMUEIs IDB4ODApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKEhLRFMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsICgweDAwLCBEU0VOKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVh bCAoQXJnMCwgMHgxMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFBIU1IgKDB4MjcsIDB4MDApLCBMb2Nh bDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5jcmVtZW50IChMb2NhbDAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExHcmVhdGVyRXF1YWwgKExv Y2FsMCwgMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo QXJnMCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKExvY2FsMCwgMHgwMCkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MDEwMSwgTlNURSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDAsIDB4MDEpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFN0b3JlICgweDA4MDgsIE5TVEUpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCAw eDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoMHgwOTA5LCBOU1RFKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKExv Y2FsMCwgMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDQwNCwgTlNURSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVx dWFsIChMb2NhbDAsIDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAyMDIsIE5TVEUpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKExFcXVhbCAoTG9jYWwwLCAweDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwQzBDLCBOU1RF KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIChMRXF1YWwgKExvY2FsMCwgMHgwNikpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MEEw QSwgTlNURSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoTEVxdWFsIChcX1NCLlBDSTAuSUdERCwgMHgwMCkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTm90aWZ5IChcX1NCLlBDSTAuR0ZYMCwgMHg4MCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVh bCAoMHgwMSwgRFNFTikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBIU1IgKDB4MjYsIDB4MDApCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1ExOSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDE5LCBQODBIKQogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoTEVxdWFsIChQSFNSICgweDI0LCAweDAwKSwgMHgwMSkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExBTU4gKDB4 MDUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBIS0RTICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9RODAsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoMHg4MCwgUDgwSCkKICAgICAgICAgICAgICAgICAgICAgICAgSEtEUyAoMHgw MCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X1E4MSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDgxLCBQODBIKQogICAgICAgICAgICAgICAgICAg ICAgICBIS0RTICgweDAxKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfUTgyLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4ODIsIFA4MEgpCiAgICAg ICAgICAgICAgICAgICAgICAgIEhLRFMgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9RODMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg4 MywgUDgwSCkKICAgICAgICAgICAgICAgICAgICAgICAgSEtEUyAoMHgwMykKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1E4NCwgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDg0LCBQODBIKQogICAgICAgICAgICAgICAgICAgICAgICBIS0RTICgw eDA0KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfUTg1LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4ODUsIFA4MEgpCiAgICAgICAgICAgICAgICAg ICAgICAgIEhLRFMgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKF9RODYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg4NiwgUDgwSCkKICAg ICAgICAgICAgICAgICAgICAgICAgSEtEUyAoMHgwNikKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1ExQSwgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgw eDFBLCBQODBIKQogICAgICAgICAgICAgICAgICAgICAgICBMQU1OICgweDA2KQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTVDLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKDB4NUMsIFA4MEgpCiAgICAgICAgICAgICAgICAgICAgICAgIEhLRVkg KDB4NUMpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKF9RMUUsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgxRSwgUDgwSCkKICAgICAgICAgICAgICAg ICAgICAgICAgTEFNTiAoMHgyMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1ExRiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDFGLCBQODBIKQog ICAgICAgICAgICAgICAgICAgICAgICBMQU1OICgweDIxKQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTIyLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4MjIsIFA4MEgpCiAgICAgICAgICAgICAgICAgICAgICAgIExBTU4gKDB4MDcpCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9RMTAsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoMHgxMCwgUDgwSCkKICAgICAgICAgICAgICAgICAgICAgICAgTEFN TiAoMHgzMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX1ExMSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDExLCBQODBIKQogICAgICAgICAgICAg ICAgICAgICAgICBMQU1OICgweDM2KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgTWV0aG9kIChfUTEyLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MTIsIFA4MEgp CiAgICAgICAgICAgICAgICAgICAgICAgIExBTU4gKDB4MzEpCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9RMTMsIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoMHgxMywgUDgwSCkKICAgICAgICAgICAgICAgICAgICAgICAgTEFNTiAoMHgxMSkKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1ExNCwg MCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDE0LCBQODBIKQogICAgICAgICAgICAgICAgICAgICAgICBM QU1OICgweDEyKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfUTE1LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MTUsIFA4MEgpCiAgICAgICAgICAg ICAgICAgICAgICAgIExBTU4gKDB4MTMpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBNZXRob2QgKF9RMUIsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgxQiwgUDgw SCkKICAgICAgICAgICAgICAgICAgICAgICAgTEFNTiAoMHgwOCkKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1EyMywgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlICgweDIzLCBQODBIKQogICAgICAgICAgICAgICAgICAgICAgICBMQU1OICgweDQ0KQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTMy LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKDB4MzIsIFA4MEgpCiAgICAgICAgICAgICAgICAgICAgICAg IEhLRVkgKDB4MzIpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBLQ1RU KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf UTMzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKDB4MzMsIFA4MEgpCiAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDAwLCBLQ1NTKQogICAgICAgICAgICAgICAgICAgICAgICBOVE1SICgp CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9R MzQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoMHgzNCwgUDgwSCkKICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKDB4MDEsIEtDU1MpCiAgICAgICAgICAgICAgICAgICAgICAgIE5UTVIgKCkK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1Ez NSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDM1LCBQODBIKQogICAgICAgICAgICAgICAgICAgICAg ICBIS0VZICgweDM1KQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMSwgS0NU VCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X1EzNiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDM2LCBQODBIKQogICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHgwMSwgS09TRCkKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAg KDB4MDFGNCkKICAgICAgICAgICAgICAgICAgICAgICAgTlRNUiAoKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTQwLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4NDAsIFA4MEgpCiAgICAgICAgICAgICAgICAgICAgICAgIEhLRVkgKDB4NDAp CiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLkxQQ0IuRUMwLkJB VDAsIDB4ODEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9RNDEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg0MSwgUDgwSCkKICAgICAgICAgICAg ICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuTFBDQi5FQzAuQkFUMCwgMHg4MSkKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1E0OCwg MCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDQ4LCBQODBIKQogICAgICAgICAgICAgICAgICAgICAgICBI S0VZICgweDQ4KQogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5M UENCLkVDMC5CQVQwLCAweDgwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfUTRDLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4NEMsIFA4MEgpCiAg ICAgICAgICAgICAgICAgICAgICAgIElmIChCMFNUKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5MUENC LkVDMC5CQVQwLCAweDgwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9RNTAsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoMHg1MCwgUDgwSCkKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChc X1NCLlBDSTAuTFBDQi5FQzAuQURQMSwgMHg4MCkKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1E1MSwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDUx LCBQODBIKQogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5MUENC LkVDMC5BRFAxLCAweDgwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfUTUyLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4NTIsIFA4MEgpCiAgICAg ICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5MSUQwLCAweDgwKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTUzLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKDB4NTMsIFA4MEgpCiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAo XF9TQi5MSUQwLCAweDgwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChOVE1SLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1RaLlRaUzAsIDB4ODAp CiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9UWi5UWlMxLCAweDgwKQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKFJBTSwgQW55 QWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDAyKSwgCiAgICAgICAgICAgICAgICAg ICAgICAgIE5CSUQsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDg4KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE5CMEEsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAsICAgMywgCiAgICAgICAgICAgICAgICAgICAgICAg IE5CTDIsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgw eDg5KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE5CMUEsICAgMQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKFJBTSwgQW55QWNjLCBMb2Nr LCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDg4KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE5C MFMsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE5CMVMsICAgOAogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKFJBTSwgQW55QWNjLCBM b2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweEUwKSwgCiAgICAgICAgICAgICAgICAgICAgICAg IEJTUkMsICAgMTYsIAogICAgICAgICAgICAgICAgICAgICAgICBCU0ZDLCAgIDE2LCAKICAg ICAgICAgICAgICAgICAgICAgICAgQlNQRSwgICAxNiwgCiAgICAgICAgICAgICAgICAgICAg ICAgIEJTQUMsICAgMTYsIAogICAgICAgICAgICAgICAgICAgICAgICBCU1ZPLCAgIDE2LCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgICAxNSwgCiAgICAgICAgICAgICAgICAg ICAgICAgIEJTQ00sICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJTQ1UsICAgMTYs IAogICAgICAgICAgICAgICAgICAgICAgICBCU0JTLCAgIDgKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIEZpZWxkIChSQU0sIEFueUFjYywgTG9jaywgUHJl c2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE9mZnNldCAoMHhFMCksIAogICAgICAgICAgICAgICAgICAgICAgICBCU0RDLCAg IDE2LCAKICAgICAgICAgICAgICAgICAgICAgICAgQlNEViwgICAxNiwgCiAgICAgICAgICAg ICAgICAgICAgICAgIEJTU04sICAgMTYKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIEZpZWxkIChSQU0sIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9m ZnNldCAoMHhFMCksIAogICAgICAgICAgICAgICAgICAgICAgICBCU01OLCAgIDEyOAogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKFJBTSwgQnl0 ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEUwKSwgCiAgICAgICAgICAgICAg ICAgICAgICAgIEJTRE4sICAgMTI4CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBGaWVsZCAoUkFNLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4RTApLCAKICAgICAgICAgICAgICAgICAgICAgICAgQlNDSCwgICAxMjgKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE11dGV4IChCQVRNLCAweDA3 KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoR0JJRiwgMywgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUg KEJBVE0sIDB4RkZGRikKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFyZzIpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl ICgweEZGRkZGRkZGLCBJbmRleCAoQXJnMSwgMHgwMSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoMHhGRkZGRkZGRiwgSW5kZXggKEFyZzEsIDB4MDIpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4RkZGRkZGRkYsIEluZGV4IChBcmcxLCAw eDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBJbmRleCAo QXJnMSwgMHgwNSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwg SW5kZXggKEFyZzEsIDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQW5kIChBcmcwLCAweEYwLCBOQklEKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKEJTQ00sIExvY2FsMCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFhPciAoTG9jYWwwLCAweDAxLCBJbmRleCAoQXJnMSwgMHgwMCkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBPciAoQXJnMCwgMHgwMSwgTkJJRCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVsdGlwbHkgKEJT REMsIDB4MEEsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQlNEQywgTG9jYWwx KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFN0b3JlIChMb2NhbDEsIEluZGV4IChBcmcxLCAweDAxKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFuZCAoQXJnMCwgMHhGMCwgTkJJRCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVsdGlwbHkgKEJTRkMsIDB4MEEs IExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQlNGQywgTG9jYWwyKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChMb2NhbDIsIEluZGV4IChBcmcxLCAweDAyKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE9yIChBcmcwLCAweDAxLCBOQklEKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKEJTRFYsIEluZGV4IChBcmcxLCAweDA0KSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERpdmlkZSAoTG9jYWwyLCAweDY0LCBMb2NhbDcsIExvY2FsNikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE11bHRpcGx5IChMb2NhbDYsIDB4MDUsIExvY2FsMykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDMsIEluZGV4IChBcmcx LCAweDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11bHRpcGx5IChMb2NhbDYs IDB4MDMsIExvY2FsNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2Nh bDQsIEluZGV4IChBcmcxLCAweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1 YnRyYWN0IChMb2NhbDMsIExvY2FsNCwgSW5kZXggKEFyZzEsIDB4MDcpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3VidHJhY3QgKExvY2FsMiwgTG9jYWwzLCBJbmRleCAoQXJn MSwgMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQlNTTiwgTG9j YWw3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoU0VSTiwgQnVmZmVyICgw eDA2KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICIgICAgICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwNCwgTG9jYWw2KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKExvY2FsNykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXZpZGUgKExv Y2FsNywgMHgwQSwgTG9jYWw1LCBMb2NhbDcpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQWRkIChMb2NhbDUsIDB4MzAsIEluZGV4IChTRVJOLCBMb2NhbDYpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWw2KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl IChTRVJOLCBJbmRleCAoQXJnMSwgMHgwQSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoTEdyZWF0ZXIgKExvY2FsMSwgMHgxMDAwKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoIkJhdCA4 Q2VsbCIsIEluZGV4IChBcmcxLCAweDA5KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoIkJh dCA0Q2VsbCIsIEluZGV4IChBcmcxLCAweDA5KSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPciAoQXJnMCwgMHgwNCwgTkJJ RCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChCU0NILCBJbmRleCAoQXJn MSwgMHgwQikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoIkFjZXIiLCBJ bmRleCAoQXJnMSwgMHgwQykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIFJlbGVhc2UgKEJBVE0pCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQXJnMSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoR0JTVCwgNCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKEJBVE0sIDB4RkZGRikKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKEFuZCAoQXJnMSwgMHgwMikpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAy LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQW5kIChBcmcxLCAweDA0KSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMSwg TG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIElmIChOQkwyKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPciAoTG9jYWwwLCAweDA0LCBMb2NhbDAp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElm IChBbmQgKEFyZzEsIDB4MDEpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBbmQgKEFyZzAsIDB4RjAsIE5CSUQpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoQlNBQywgTG9jYWwxKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKEFyZzIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVsdGlwbHkgKEJTUkMsIDB4MEEsIExv Y2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQlNSQywgTG9jYWwyKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl IChCU1ZPLCBMb2NhbDMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEdyZWF0 ZXJFcXVhbCAoTG9jYWwxLCAweDgwMDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQgKExvY2FsMCwgMHgw MSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdWJ0cmFjdCAoMHgwMDAxMDAwMCwgTG9jYWwxLCBMb2Nh bDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBMb2Nh bDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmIChMRXF1YWwgKEFuZCAoTG9jYWwwLCAweDAyKSwgMHgwMCkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoMHgwMCwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoQXJnMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBNdWx0aXBseSAoTG9jYWwzLCBMb2NhbDEsIExv Y2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXZpZGUgKExvY2FsMSwg MHgwM0U4LCBMb2NhbDcsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlICgweDAwLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoMHhGRkZGRkZGRiwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKDB4RkZGRkZGRkYsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlICgweEZGRkZGRkZGLCBMb2NhbDMpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIEluZGV4IChBcmczLCAweDAw KSkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMSwgSW5kZXggKEFyZzMs IDB4MDEpKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwyLCBJbmRleCAo QXJnMywgMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDMsIElu ZGV4IChBcmczLCAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoQkFU TSkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBcmczKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQjBTVCwgMHgwMCkKICAgICAg ICAgICAgICAgICAgICBEZXZpY2UgKEJBVDApCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBBIikpCiAg ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDEpCiAgICAgICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1BDTCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChcX1NC KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBO YW1lIChCMElQLCBQYWNrYWdlICgweDBEKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZG RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4NUEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHg1QSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiMTAwIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGlv biIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChCMFNQLCBQYWNrYWdl ICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweEZGRkZGRkZGCiAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKFxFQ09OKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChOQjBBLCBMb2NhbDEpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU2hpZnRSaWdodCAoUkJFQyAoMHg4OCksIDB4MDAsIExvY2FsMCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBbmQgKExvY2FsMCwgMHgwMSwgTG9jYWwxKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChMb2NhbDEsIEIwU1QpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo TG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoMHgxRikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0JJRiwgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKFxFQ09OKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChOQjBBLCBMb2NhbDApCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU2hpZnRSaWdodCAoUkJFQyAoMHg4OCksIDB4MDAsIExvY2FsMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBbmQgKExvY2FsMCwgMHgwMSwgTG9jYWw2KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKDB4MTQsIExvY2FsNykKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFdoaWxlIChMQW5kIChMb2NhbDYsIExvY2FsNykpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFxFQ09OKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKE5CMFMsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKFJCRUMgKDB4ODgpLCBMb2NhbDEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoQW5kIChMb2NhbDEsIDB4MDgpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIExv Y2FsNikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MDFGNCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDcp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoR0JJRiAo MHgwMCwgQjBJUCwgTG9jYWw2KSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQlNULCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBYT3Ig KERlcmVmT2YgKEluZGV4IChCMElQLCAweDAwKSksIDB4MDEsIExvY2FsMCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmIChcRUNPTikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTkIwUywgTG9j YWwxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChSQkVDICgweDg4KSwgTG9jYWwxKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoR0JTVCAoMHgwMCwgTG9jYWwxLCBMb2NhbDAsIEIwU1ApKQogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBOYW1lIChBQ1NULCAweDAxKQogICAgICAgICAgICAgICAgICAgIERldmljZSAoQURQ MSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUg KF9ISUQsICJBQ1BJMDAwMyIpCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BT UiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKEVDT04pCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEtBQ1MsIExv Y2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUkJFQyAoMHg3MCksIExvY2FsMCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbmQgKExvY2FsMCwgMHgyMCwgTG9jYWwx KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIChMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIEFDU1QpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKDB4MDAsIEFDU1QpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBQ1NUKQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9Q Q0wsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoXF9TQikKICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg RGV2aWNlIChETUFDKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5h bWUgKF9ISUQsIEVpc2FJZCAoIlBOUDAyMDAiKSkKICAgICAgICAgICAgICAgICAgICBOYW1l IChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11 bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBB bGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAsICAgICAgICAgICAg ICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg ICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDA4MSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMDgxLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVu dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMSwgICAgICAgICAgICAgICAvLyBM ZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAg ICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDkz LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwOTMsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDBELCAgICAgICAgICAgICAgIC8vIExlbmd0aAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJ TyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAsICAgICAg ICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDBDMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MjAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIERNQSAoQ29t cGF0aWJpbGl0eSwgTm90QnVzTWFzdGVyLCBUcmFuc2ZlcjhfMTYsICkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHs0fQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChGV0hEKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIklOVDA4MDAiKSkK ICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZp eGVkIChSZWFkT25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkY4MDAwMDAs ICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwODAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBEZXZpY2UgKEhQRVQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDEwMyIpKQogICAgICAg ICAgICAgICAgICAgIE5hbWUgKEJVRjAsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHswfQogICAgICAgICAgICAgICAgICAgICAgICBJ UlFOb0ZsYWdzICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7OH0KICAgICAgICAg ICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZE9ubHksCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweEZFRDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMCwgICAgICAgICAvLyBBZGRyZXNz IExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX1kxNikKICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElmIChMR3JlYXRlckVxdWFsIChPU1lTLCAweDA3RDEpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoSFBBRSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoSFBBRSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHgwMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmIChIUEFFKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBc X1NCLlBDSTAuTFBDQi5IUEVULl9ZMTYuX0JBUywgSFBUMCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmIChMRXF1YWwgKEhQQVMsIDB4MDEpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEZF RDAxMDAwLCBIUFQwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEhQQVMsIDB4MDIpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlICgweEZFRDAyMDAwLCBIUFQwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEhQQVMsIDB4MDMpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFN0b3JlICgweEZFRDAzMDAwLCBIUFQwKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEJVRjApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoSVBJQykKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwMDAwIikpCiAg ICAgICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwLCAgICAgICAgICAgICAvLyBS YW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAsICAgICAg ICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwMjQsICAgICAgICAgICAgIC8vIFJhbmdlIE1p bmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNCwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAg ICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAyOCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI4LCAgICAgICAgICAgICAvLyBSYW5n ZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAg ICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAg ICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAg ICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMDJDLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwMkMsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGlt dW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8g QWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAg ICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg ICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwMzAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAzMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1l bnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8g TGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAg ICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAz NCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDM0LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAg SU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4LCAgICAg ICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMzgsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVj b2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0MsICAgICAgICAgICAg IC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzQywg ICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBBMCwgICAgICAgICAgICAgLy8gUmFu Z2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEEwLCAgICAgICAg ICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAx LCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMEE0LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5p bXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQTQsICAgICAgICAgICAgIC8v IFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAg ICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAy LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwQTgsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBBOCwgICAgICAgICAgICAgLy8gUmFuZ2Ug TWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAg ICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAg ICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDBBQywgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMEFDLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVt CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFs aWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAg ICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMEIwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwQjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExl bmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAg ICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQjQs ICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDBCNCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElP IChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBCOCwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MEI4LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29k ZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEJDLCAgICAgICAgICAgICAv LyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQkMsICAg ICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0RDAsICAgICAgICAgICAgIC8vIFJhbmdl IE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDREMCwgICAgICAgICAg ICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwg ICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsyfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChNQVRIKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMDQi KSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVj b2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAsICAgICAgICAgICAg IC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGMCwg ICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsxM30KICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoTUJEMCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQg KCJQTlAwQzAyIikpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMSkKICAg ICAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMkUsICAgICAgICAgICAgIC8vIFJh bmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyRSwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWlu aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYxLCAgICAgICAgICAgICAv LyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAg ICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMDYzLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjMsICAgICAgICAgICAgIC8vIFJhbmdl IE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAg ICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAg ICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAg ICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwNjUsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDA2NSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11 bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBB bGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAg ICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg ICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDA2NywgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMDY3LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVu dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBM ZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAg ICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgw LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwODAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJ TyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTIsICAgICAg ICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDA5MiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNv ZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBCMiwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEIyLCAg ICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwLCAgICAgICAgICAgICAvLyBSYW5n ZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAsICAgICAgICAg ICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEs ICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDEwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDEwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmlt dW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMCwgICAgICAgICAgICAgLy8g UmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAg ICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAs ICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAp CiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MTE4MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgxMTgwLCAgICAgICAgICAgICAvLyBSYW5nZSBN YXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAg IC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MCwgICAgICAg ICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgxMjAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDEyMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxp Z25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAg IC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg ICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDEyMDQsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MTIwNCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVu Z3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAg ICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4RTAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDEwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIE1l bW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 RjAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwMDA0MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeTMy Rml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDQw MDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwMDAxMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQg KFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDUwMDAsICAg ICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw MDAxMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRX cml0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RjAwMDgwMDAsICAgICAgICAg Ly8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAw LCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkVDMTgwMDAsICAgICAgICAgLy8gQWRk cmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwLCAgICAg ICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAg ICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4RkVEMjAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBC YXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDcwMDAwLCAgICAgICAgIC8v IEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZp Y2UgKE1CRDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAo X0hJRCwgRWlzYUlkICgiUE5QMEMwMiIpKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9V SUQsIDB4MDIpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1w bGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg TWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHhGRUMwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAwMDEwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5 MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRUUw MDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAwMDEwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMTGVzc0VxdWFsIChPU1lTLCAw eDA3Q0YpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoTE9yIChBUElDLCBIVFRFKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChSVEMp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlz YUlkICgiUE5QMEIwMCIpKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKEJVRjAsIFJlc291 cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3 MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDcwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBMZW5ndGgK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgIE5hbWUgKEJVRjEsIFJlc291cmNlVGVtcGxhdGUgKCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUx NiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MCwgICAgICAgICAgICAgLy8g UmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwLCAgICAg ICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFncyAoKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgezh9CiAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoSFBBRSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChCVUYwKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEJVRjEpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoVElNUikKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwMTAwIikpCiAg ICAgICAgICAgICAgICAgICAgTmFtZSAoQlVGMCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwLCAgICAgICAgICAgICAvLyBS YW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAsICAgICAg ICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwNTAsICAgICAgICAgICAgIC8vIFJhbmdlIE1p bmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1MCwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAg ICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDQsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChC VUYxLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwNDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDA0MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGln bm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAg Ly8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAg ICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDA1MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMDUwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDEwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBMZW5n dGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAg ICAgSVJRTm9GbGFncyAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgezB9CiAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAs IFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoSFBBRSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChCVUYwKQogICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRjEpCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoS0JE MCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBF aXNhSWQgKCJQTlAwMzAzIikpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVz b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MDYwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwNjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0 aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAg ICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjQsICAg ICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDA2NCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElSUSAo RWRnZSwgQWN0aXZlSGlnaCwgRXhjbHVzaXZlLCApCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7MX0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIERldmljZSAoUFMyTSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJTWU4wMzAyIikpCiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0NJRCwgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMzJFNEYsIAogICAgICAgICAgICAg ICAgICAgICAgICAweDAyMDAyRTRGLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgxMzBG RDA0MQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAo X0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSVJRIChFZGdlLCBBY3RpdmVIaWdoLCBFeGNsdXNpdmUsICkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsxMn0KICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2Ug KFBBVEEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAx RjAwMDEpCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBBQ1MsIFBDSV9Db25m aWcsIDB4NDAsIDB4QzApCiAgICAgICAgICAgICAgICBGaWVsZCAoUEFDUywgRFdvcmRBY2Ms IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgUFJJVCwgICAxNiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 MDQpLCAKICAgICAgICAgICAgICAgICAgICBQU0lULCAgIDQsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDA4KSwgCiAgICAgICAgICAgICAgICAgICAgU1lOQywg ICA0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwQSksIAogICAg ICAgICAgICAgICAgICAgIFNEVDAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICwg ICAyLCAKICAgICAgICAgICAgICAgICAgICBTRFQxLCAgIDIsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDE0KSwgCiAgICAgICAgICAgICAgICAgICAgSUNSMCwg ICA0LCAKICAgICAgICAgICAgICAgICAgICBJQ1IxLCAgIDQsIAogICAgICAgICAgICAgICAg ICAgIElDUjIsICAgNCwgCiAgICAgICAgICAgICAgICAgICAgSUNSMywgICA0LCAKICAgICAg ICAgICAgICAgICAgICBJQ1I0LCAgIDQsIAogICAgICAgICAgICAgICAgICAgIElDUjUsICAg NAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoUFJJRCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwKQog ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0dUTSwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFBCVUYs IEJ1ZmZlciAoMHgxNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAwMDggKi8gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDEwICovICAgIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUEJVRiwgMHgwMCwgUElPMCkKICAg ICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUEJVRiwgMHgwNCwgRE1B MCkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUEJVRiwgMHgw OCwgUElPMSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUEJV RiwgMHgwQywgRE1BMSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoUEJVRiwgMHgxMCwgRkxBRykKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEdF VFAgKFBSSVQpLCBQSU8wKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoR0RNQSAo QW5kIChTWU5DLCAweDAxKSwgQW5kIChJQ1IzLCAweDAxKSwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBbmQgKElDUjAsIDB4MDEpLCBTRFQwLCBBbmQgKElDUjEsIDB4MDEpKSwg RE1BMCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoRE1BMCwgMHhGRkZG RkZGRikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFN0b3JlIChQSU8wLCBETUEwKQogICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChQUklULCAweDQwMDApKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVx dWFsIChBbmQgKFBSSVQsIDB4OTApLCAweDgwKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMzg0LCBQ SU8xKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChHRVRUIChQU0lUKSwgUElPMSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEZGRkZGRkZGLCBQSU8xKQogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo R0RNQSAoQW5kIChTWU5DLCAweDAyKSwgQW5kIChJQ1IzLCAweDAyKSwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBbmQgKElDUjAsIDB4MDIpLCBTRFQxLCBBbmQgKElDUjEsIDB4 MDIpKSwgRE1BMSkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoRE1BMSwg MHhGRkZGRkZGRikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChQSU8xLCBETUExKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoR0VURiAoQW5kIChTWU5DLCAw eDAxKSwgQW5kIChTWU5DLCAweDAyKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ UklUKSwgRkxBRykKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFuZCAoTEVxdWFsIChQ SU8wLCAweEZGRkZGRkZGKSwgTEVxdWFsIChETUEwLCAweEZGRkZGRkZGKSkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgw eDc4LCBQSU8wKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MTQsIERN QTApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgRkxBRykKICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChQQlVGKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfU1RNLCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMCwgMHgwMCwgUElP MCkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMCwgMHgw NCwgRE1BMCkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJn MCwgMHgwOCwgUElPMSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoQXJnMCwgMHgwQywgRE1BMSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdv cmRGaWVsZCAoQXJnMCwgMHgxMCwgRkxBRykKICAgICAgICAgICAgICAgICAgICAgICAgSWYg KExFcXVhbCAoU2l6ZU9mIChBcmcxKSwgMHgwMjAwKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5kIChQUklULCAweDQwRjAsIFBS SVQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbmQgKFNZTkMsIDB4MDIsIFNZTkMp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgU0RUMCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFuZCAoSUNSMCwgMHgwMiwgSUNSMCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFuZCAoSUNSMSwgMHgwMiwgSUNSMSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFuZCAoSUNSMywgMHgwMiwgSUNSMykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFuZCAoSUNSNSwgMHgwMiwgSUNSNSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMSwgMHg2MiwgVzQ5MCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMSwgMHg2QSwgVzUzMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMSwgMHg3 RSwgVzYzMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAo QXJnMSwgMHg4MCwgVzY0MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdv cmRGaWVsZCAoQXJnMSwgMHhCMCwgVzg4MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IENyZWF0ZVdvcmRGaWVsZCAoQXJnMSwgMHhCQSwgVzkzMCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9yIChQUklULCAweDgwMDQsIFBSSVQpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoTEFuZCAoQW5kIChGTEFHLCAweDAyKSwgQW5kIChXNDkwLCAweDA4MDAp KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPciAoUFJJVCwgMHgwMiwgUFJJVCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPciAoUFJJVCwgU0VUUCAo UElPMCwgVzUzMCwgVzY0MCksIFBSSVQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoQW5kIChGTEFHLCAweDAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPciAoU1lOQywgMHgwMSwgU1lOQykKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoU0RNQSAoRE1BMCksIFNEVDAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExMZXNzIChETUEwLCAweDFF KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE9yIChJQ1IzLCAweDAxLCBJQ1IzKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKExMZXNzIChETUEwLCAweDNDKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChJQ1IwLCAweDAx LCBJQ1IwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKEFuZCAoVzkzMCwgMHgyMDAwKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE9yIChJQ1IxLCAweDAxLCBJQ1IxKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoU2l6ZU9m IChBcmcyKSwgMHgwMjAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQW5kIChQUklULCAweDNGMEYsIFBSSVQpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgUFNJVCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFuZCAoU1lOQywgMHgwMSwgU1lOQykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFN0b3JlICgweDAwLCBTRFQxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg QW5kIChJQ1IwLCAweDAxLCBJQ1IwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5k IChJQ1IxLCAweDAxLCBJQ1IxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5kIChJ Q1IzLCAweDAxLCBJQ1IzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5kIChJQ1I1 LCAweDAxLCBJQ1I1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZp ZWxkIChBcmcyLCAweDYyLCBXNDkxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlV29yZEZpZWxkIChBcmcyLCAweDZBLCBXNTMxKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcyLCAweDdFLCBXNjMxKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcyLCAweDgwLCBXNjQxKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcyLCAweEIwLCBX ODgxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcy LCAweEJBLCBXOTMxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3IgKFBSSVQsIDB4 ODA0MCwgUFJJVCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMQW5kIChBbmQg KEZMQUcsIDB4MDgpLCBBbmQgKFc0OTEsIDB4MDgwMCkpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChQUklULCAw eDIwLCBQUklUKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmIChBbmQgKEZMQUcsIDB4MTApKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChQUklU LCAweDQwMDAsIFBSSVQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExH cmVhdGVyIChQSU8xLCAweEYwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChQUklULCAweDgwLCBQ UklUKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPciAoUFJJVCwgMHgxMCwg UFJJVCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFNFVFQg KFBJTzEsIFc1MzEsIFc2NDEpLCBQU0lUKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQW5kIChGTEFHLCAweDA0KSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPciAoU1lOQywgMHgw MiwgU1lOQykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoU0RNQSAo RE1BMSksIFNEVDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExMZXNz IChETUExLCAweDFFKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChJQ1IzLCAweDAyLCBJQ1IzKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKExMZXNzIChETUExLCAweDNDKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9y IChJQ1IwLCAweDAyLCBJQ1IwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFuZCAoVzkzMSwgMHgyMDAw KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE9yIChJQ1IxLCAweDAyLCBJQ1IxKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgRGV2aWNlIChQX0QwKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMCkKICAgICAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfUk1WLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0dURiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoUElCMCwgQnVmZmVyICgweDBFKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAwMDAgKi8gICAgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhB MCwgMHhFRiwgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAw OCAqLyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweEEwLCAweEVGCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRl Qnl0ZUZpZWxkIChQSUIwLCAweDAxLCBQTUQwKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlQnl0ZUZpZWxkIChQSUIwLCAweDA4LCBETUQwKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKEFuZCAoUFJJVCwgMHgwMikpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAo QW5kIChQUklULCAweDA5KSwgMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwOCwg UE1EMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MEEsIFBN RDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0UmlnaHQgKEFu ZCAoUFJJVCwgMHgwMzAwKSwgMHgwOCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTaGlmdFJpZ2h0IChBbmQgKFBSSVQsIDB4MzAwMCksIDB4MEMsIExv Y2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkIChMb2NhbDAs IExvY2FsMSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoTEVxdWFsICgweDAzLCBMb2NhbDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoMHgwQiwgUE1EMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoMHgwNSwg TG9jYWwyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MEMsIFBNRDApCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIFBNRDApCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKEFuZCAoU1lOQywgMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9yIChTRFQwLCAweDQw KSwgRE1EMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChJQ1Ix LCAweDAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQgKElDUjAsIDB4MDEpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBZGQgKERNRDAsIDB4MDIsIERNRDApCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIChBbmQgKElDUjMsIDB4MDEpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoMHg0NSwgRE1EMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP ciAoU3VidHJhY3QgKEFuZCAoUE1EMCwgMHgwNyksIDB4MDIpLCAweDIwLCBETUQwKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoUElCMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChQX0QxKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMSkK ICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfR1RGLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBOYW1lIChQSUIxLCBCdWZmZXIgKDB4MEUpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgICAweDAz LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweEIwLCAweEVGLCAweDAzLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAgIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4QjAsIDB4RUYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKFBJQjEsIDB4MDEsIFBN RDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKFBJQjEs IDB4MDgsIERNRDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChQUklU LCAweDIwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChBbmQgKFBSSVQsIDB4OTApLCAweDgwKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDA4LCBQTUQxKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBZGQgKEFuZCAoUFNJVCwgMHgwMyksIFNoaWZ0UmlnaHQgKEFuZCAo UFNJVCwgMHgwQyksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMiksIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KExFcXVhbCAoMHgwNSwgTG9jYWwwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4MEMsIFBNRDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoTEVxdWFsICgweDAzLCBMb2NhbDApKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDBCLCBQTUQxKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDBB LCBQTUQxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAxLCBQTUQxKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmIChBbmQgKFNZTkMsIDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPciAoU0RUMSwgMHg0MCks IERNRDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFuZCAoSUNSMSwg MHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChJQ1IwLCAweDAyKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQWRkIChETUQxLCAweDAyLCBETUQxKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoQW5kIChJQ1IzLCAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKDB4NDUsIERNRDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3Ig KFN1YnRyYWN0IChBbmQgKFBNRDEsIDB4MDcpLCAweDAyKSwgMHgyMCwgRE1EMSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBJQjEpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERl dmljZSAoU0JVUykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwg MHgwMDFGMDAwMykKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoU01CUCwgUENJ X0NvbmZpZywgMHg0MCwgMHhDMCkKICAgICAgICAgICAgICAgIEZpZWxkIChTTUJQLCBEV29y ZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgICAgIEkyQ0UsICAgMQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoU01CSSwg U3lzdGVtSU8sIDB4MjBBMCwgMHgxMCkKICAgICAgICAgICAgICAgIEZpZWxkIChTTUJJLCBC eXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIEhTVFMsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4MDIpLCAKICAgICAgICAgICAgICAgICAgICBIQ09OLCAgIDgsIAogICAgICAgICAg ICAgICAgICAgIEhDT00sICAgOCwgCiAgICAgICAgICAgICAgICAgICAgVFhTQSwgICA4LCAK ICAgICAgICAgICAgICAgICAgICBEQVQwLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIERB VDEsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgSEJEUiwgICA4LCAKICAgICAgICAgICAg ICAgICAgICBQRUNSLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFJYU0EsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgU0RBVCwgICAxNgogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoU1NYQiwgMiwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBJZiAoU1RSVCAoKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBJMkNFKQogICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweEJGLCBIU1RTKQogICAgICAgICAgICAgICAgICAg IFN0b3JlIChBcmcwLCBUWFNBKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChBcmcxLCBI Q09NKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDQ4LCBIQ09OKQogICAgICAgICAg ICAgICAgICAgIElmIChDT01QICgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgT3IgKEhTVFMsIDB4RkYsIEhTVFMpCiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBNZXRob2QgKFNSWEIsIDEsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSWYgKFNUUlQgKCkpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4RkZGRikKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBJMkNFKQogICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweEJGLCBIU1RTKQogICAgICAgICAgICAgICAgICAgIFN0 b3JlIChPciAoQXJnMCwgMHgwMSksIFRYU0EpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4NDQsIEhDT04pCiAgICAgICAgICAgICAgICAgICAgSWYgKENPTVAgKCkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBPciAoSFNUUywgMHhGRiwg SFNUUykKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEQVQwKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweEZGRkYpCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChTV1JCLCAzLCBTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChTVFJUICgp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu ICgweDAwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKDB4MDAsIEkyQ0UpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4QkYsIEhTVFMp CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEFyZzAsIFRYU0EpCiAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKEFyZzEsIEhDT00pCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEFy ZzIsIERBVDApCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4NDgsIEhDT04pCiAgICAg ICAgICAgICAgICAgICAgSWYgKENPTVAgKCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBPciAoSFNUUywgMHhGRiwgSFNUUykKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoU1JEQiwgMiwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBJZiAoU1RSVCAoKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHhGRkZGKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIEkyQ0UpCiAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4QkYsIEhTVFMpCiAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKE9yIChBcmcwLCAweDAxKSwgVFhTQSkKICAgICAgICAgICAgICAgICAgICBT dG9yZSAoQXJnMSwgSENPTSkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg0OCwgSENP TikKICAgICAgICAgICAgICAgICAgICBJZiAoQ09NUCAoKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9yIChIU1RTLCAweEZGLCBIU1RTKQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERBVDApCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4RkZGRikKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKFNCTFcsIDQsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKFNUUlQgKCkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQXJnMywg STJDRSkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHhCRiwgSFNUUykKICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoQXJnMCwgVFhTQSkKICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoQXJnMSwgSENPTSkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoU2l6ZU9mIChBcmcy KSwgREFUMCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgTG9jYWwxKQogICAg ICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAoQXJnMiwgMHgwMCkpLCBI QkRSKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDU0LCBIQ09OKQogICAgICAgICAg ICAgICAgICAgIFdoaWxlIChMR3JlYXRlciAoU2l6ZU9mIChBcmcyKSwgTG9jYWwxKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDBG QTAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKExBbmQgKExOb3Qg KEFuZCAoSFNUUywgMHg4MCkpLCBMb2NhbDApKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0YWxsICgweDMyKQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTE5vdCAoTG9jYWwwKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgS0lM TCAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg4 MCwgSFNUUykKICAgICAgICAgICAgICAgICAgICAgICAgSW5jcmVtZW50IChMb2NhbDEpCiAg ICAgICAgICAgICAgICAgICAgICAgIElmIChMR3JlYXRlciAoU2l6ZU9mIChBcmcyKSwgTG9j YWwxKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4IChBcmcyLCBMb2NhbDEpKSwgSEJEUikKICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgSWYgKENPTVAgKCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBPciAoSFNUUywgMHhGRiwgSFNUUykKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoU0JMUiwgMywgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBOYW1lIChUQlVGLCBCdWZmZXIgKDB4MDEwMCkge30pCiAg ICAgICAgICAgICAgICAgICAgSWYgKFNUUlQgKCkpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQXJnMiwgSTJDRSkKICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoMHhCRiwgSFNUUykKICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoT3IgKEFyZzAsIDB4MDEpLCBUWFNBKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChB cmcxLCBIQ09NKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDU0LCBIQ09OKQogICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDBGQTAsIExvY2FsMCkKICAgICAgICAgICAgICAg ICAgICBXaGlsZSAoTEFuZCAoTE5vdCAoQW5kIChIU1RTLCAweDgwKSksIExvY2FsMCkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBEZWNyZW1lbnQg KExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RhbGwgKDB4MzIpCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoTE5vdCAoTG9jYWwwKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEtJTEwgKCkK ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKERBVDAsIEluZGV4IChUQlVGLCAw eDAwKSkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg4MCwgSFNUUykKICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoMHgwMSwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIFdo aWxlIChMTGVzcyAoTG9jYWwxLCBEZXJlZk9mIChJbmRleCAoVEJVRiwgMHgwMCkpKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDBG QTAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKExBbmQgKExOb3Qg KEFuZCAoSFNUUywgMHg4MCkpLCBMb2NhbDApKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0YWxsICgweDMyKQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTE5vdCAoTG9jYWwwKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgS0lM TCAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoSEJE UiwgSW5kZXggKFRCVUYsIExvY2FsMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl ICgweDgwLCBIU1RTKQogICAgICAgICAgICAgICAgICAgICAgICBJbmNyZW1lbnQgKExvY2Fs MSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChDT01Q ICgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgT3Ig KEhTVFMsIDB4RkYsIEhTVFMpCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVEJV RikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKFNUUlQs IDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4QzgsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTG9jYWww KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFu ZCAoSFNUUywgMHg0MCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgU2xlZXAgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo TEVxdWFsIChMb2NhbDAsIDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDBGQTAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICBXaGlsZSAo TG9jYWwwKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKEFuZCAoSFNUUywgMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RhbGwgKDB4MzIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoTEVxdWFsIChMb2NhbDAsIDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtJTEwgKCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICgweDAxKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo Q09NUCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHgwRkEwLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgV2hpbGUg KExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElmIChBbmQgKEhTVFMsIDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNyZW1lbnQgKExvY2Fs MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YWxsICgweDMyKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCAweDAwKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBL SUxMICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoMHgwMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KEtJTEwsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgT3IgKEhDT04sIDB4MDIsIEhDT04pCiAgICAgICAgICAgICAgICAgICAgT3IgKEhT VFMsIDB4RkYsIEhTVFMpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAg ICB9CiAgICB9CgogICAgU2NvcGUgKFxfUFIuQ1BVMCkKICAgIHsKICAgICAgICBNZXRob2Qg KF9DU1QsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBJZiAoQW5k IChDRkdELCAweDQwMDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4g KFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg MHgwMSwgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg UmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAxLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDgwOSwgLy8gQWRkcmVzcwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzRTgKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CgogICAg ICAgICAgICBJZiAoTEFuZCAoQW5kIChDRkdELCAweDgwKSwgTE5vdCAoUFdSUykpKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDUpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwNCwgCiAgICAgICAgICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8v IEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAg ICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICwpCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAg ICAgICAgICAgICAgICAgICAgICAweDAzRTgKICAgICAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIg KFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAg ICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMTAxNCwgLy8gQWRkcmVzcwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAxRjQKICAgICAgICAgICAgICAg ICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUg KCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDA4LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMTAxNSwgLy8gQWRkcmVz cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4NTUsIAogICAgICAgICAgICAgICAgICAgICAgICAweEZBCiAgICAg ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJj ZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJlZ2lzdGVyIChTeXN0ZW1JTywgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZz ZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDEwMTYs IC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsKQogICAgICAg ICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAog ICAgICAgICAgICAgICAgICAgICAgICAweEI5LCAKICAgICAgICAgICAgICAgICAgICAgICAg MHg2NAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIElmIChBbmQgKENGR0QsIDB4NDApKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0 aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAg Ly8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw MDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICwpCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAg ICAgICAgICAgICAweDAzRTgKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlP LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAg IC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAg ICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAwMDAwMDAwMDAwMTAxNCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAog ICAgICAgICAgICAgICAgICAgICAgICAweDAxRjQKICAgICAgICAgICAgICAgICAgICB9LCAK CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0 ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4LCAg ICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMTAxNSwgLy8gQWRkcmVzcwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4NTUsIAogICAgICAgICAgICAgICAgICAgICAgICAweEZBCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAg SWYgKEFuZCAoQ0ZHRCwgMHgyMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJl dHVybiAoUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0 ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBBZGRy ZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDNFOAog ICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDA0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmVz b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtSU8sIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQg T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAx MDE0LCAvLyBBZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAg ICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAweDAy LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDFGNAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDA0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJlc291cmNl VGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJlZ2lzdGVyIChGRml4ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAg ICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAg ICAgICAgICAgICAgIDB4MDNFOAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQog ICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXCkKICAgIHsKICAgICAgICBOYW1lIChTU0RU LCBQYWNrYWdlICgweDBDKQogICAgICAgIHsKICAgICAgICAgICAgIkNQVTBJU1QgIiwgCiAg ICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAweEYwMDBGRjUzLCAKICAgICAg ICAgICAgIkNQVTFJU1QgIiwgCiAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAg ICAweEYwMDBGRjUzLCAKICAgICAgICAgICAgIkNQVTBDU1QgIiwgCiAgICAgICAgICAgIDB4 MEY2RTYwNjQsIAogICAgICAgICAgICAweDAwMDAwMURFLCAKICAgICAgICAgICAgIkNQVTFD U1QgIiwgCiAgICAgICAgICAgIDB4MDAwMDAwMDAsIAogICAgICAgICAgICAweEYwMDBGRjUz CiAgICAgICAgfSkKICAgICAgICBOYW1lIChDRkdELCAweDA2RDg4MTc4KQogICAgICAgIE5h bWUgKFxQREMwLCAweDgwMDAwMDAwKQogICAgICAgIE5hbWUgKFxQREMxLCAweDgwMDAwMDAw KQogICAgfQoKICAgIFNjb3BlIChcX1BSLkNQVTApCiAgICB7CiAgICAgICAgTmFtZSAoSEkw LCAweDAwKQogICAgICAgIE5hbWUgKEhDMCwgMHgwMCkKICAgICAgICBNZXRob2QgKF9QREMs IDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBDcmVhdGVEV29yZEZp ZWxkIChBcmcwLCAweDA4LCBDQVAwKQogICAgICAgICAgICBTdG9yZSAoQ0FQMCwgUERDMCkK ICAgICAgICAgICAgSWYgKExBbmQgKEFuZCAoQ0ZHRCwgMHg0MDAwKSwgTEVxdWFsIChBbmQg KFBEQzAsIDB4MEEKICAgICAgICAgICAgICAgICksIDB4MEEpKSkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgSWYgKEFuZCAoQ0ZHRCwgMHgwMykpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChJU1QwLCBTeXN0ZW1NZW1v cnksIERlcmVmT2YgKEluZGV4IChTU0RULCAweDAxKSksIERlcmVmT2YgKEluZGV4IChTU0RU LCAweDAyCiAgICAgICAgICAgICAgICAgICAgICAgICkpKQogICAgICAgICAgICAgICAgICAg IExvYWQgKElTVDAsIEhJMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJ ZiAoQW5kIChDRkdELCAweDEwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBPcGVyYXRpb25SZWdpb24gKENTVDAsIFN5c3RlbU1lbW9yeSwgRGVyZWZPZiAoSW5k ZXggKFNTRFQsIDB4MDcpKSwgRGVyZWZPZiAoSW5kZXggKFNTRFQsIDB4MDgKICAgICAgICAg ICAgICAgICAgICAgICAgKSkpCiAgICAgICAgICAgICAgICAgICAgTG9hZCAoQ1NUMCwgSEMw KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAg IFNjb3BlIChcX1BSLkNQVTEpCiAgICB7CiAgICAgICAgTmFtZSAoSEkxLCAweDAwKQogICAg ICAgIE5hbWUgKEhDMSwgMHgwMCkKICAgICAgICBNZXRob2QgKF9QREMsIDEsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChBcmcwLCAw eDA4LCBDQVAxKQogICAgICAgICAgICBTdG9yZSAoQ0FQMSwgUERDMSkKICAgICAgICAgICAg SWYgKExBbmQgKEFuZCAoQ0ZHRCwgMHg0MDAwKSwgTEVxdWFsIChBbmQgKFBEQzEsIDB4MEEK ICAgICAgICAgICAgICAgICksIDB4MEEpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgSWYgKEFuZCAoQ0ZHRCwgMHgwMykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChJU1QxLCBTeXN0ZW1NZW1vcnksIERlcmVmT2Yg KEluZGV4IChTU0RULCAweDA0KSksIERlcmVmT2YgKEluZGV4IChTU0RULCAweDA1CiAgICAg ICAgICAgICAgICAgICAgICAgICkpKQogICAgICAgICAgICAgICAgICAgIExvYWQgKElTVDEs IEhJMSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoQW5kIChDRkdE LCAweDEwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBPcGVyYXRp b25SZWdpb24gKENTVDEsIFN5c3RlbU1lbW9yeSwgRGVyZWZPZiAoSW5kZXggKFNTRFQsIDB4 MEEpKSwgRGVyZWZPZiAoSW5kZXggKFNTRFQsIDB4MEIKICAgICAgICAgICAgICAgICAgICAg ICAgKSkpCiAgICAgICAgICAgICAgICAgICAgTG9hZCAoQ1NUMSwgSEMxKQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoTEVxdWFsIChBbmQgKFBE QzEsIDB4MEEpLCAweDBBKSkge30KICAgICAgICB9CiAgICB9Cn0KCg== --------------020602080006010602080704--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48F2D6E6.4070408>