Return-Path: Message-ID: <1475702165.5992.4.camel@gmail.com> Subject: Re: Bluetooth not working anymore due to too agressive PM in hci_bcm ? (was: [PATCH v5 5/5] Bluetooth: hci_bcm: Add suspend/resume runtime PM functions) From: =?ISO-8859-1?Q?J=E9r=F4me?= de Bretagne To: Loic Poulain , Marcel Holtmann , linux-bluetooth@vger.kernel.org Cc: Frederic Danis Date: Wed, 05 Oct 2016 23:16:05 +0200 In-Reply-To: References: <1475533357.2947.3.camel@gmail.com> Content-Type: multipart/mixed; boundary="=-EE0PMsployBz1BiWfyGv" Mime-Version: 1.0 List-ID: --=-EE0PMsployBz1BiWfyGv Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit (trying a different email for Frederic as I got a delivery failure) Hi Loic, > Using out-of-band gpio/irq which are retrieved from the ACPI device. > wakeup can be initiated by host or controller depending which one wants > to transfer hci data. Thanks for this explanation. > > I'm going to retry on my T100 and let you know, but used to work. Did you have chance to retry on a T100. Is it a T100TA model by the way, or a T100 Chi (to make the distinction between the 2 bugzilla kernel entries)? > > - What is the state of your interrupt counter ("host_wake") in  > /proc/interrupts when you try to generate host wake-up events (using  > mouse...). Moving the mouse or clicking on it doesn't change the host_wake interrupt counter in /proc/interrupts after the autosleep period. If I manually trigger a new scan, then the counter starts increasing, but it freezes again after the next autosleep. > > - Could you confirm you don't meet the issue if you disable runtime-pm  > via sysfs. You should find the device (BCM43*) as a child node of your  > tty in /sys/class/tty*. (echo on > power/control). I can confirm that with the following command, the mouse keeps working and doesn't suddenly stop after a sleep period. root@thinkpad8:/sys/class/tty/ttyS1/device/BCM2E55:00# echo on > power/control > I remember Frederic had some gpio/irq polarity issues:> 5cebdfea32b89911d4540440c1c2854a1a3d591e > Bluetooth: hci_bcm: Fix IRQ polarity for T100 > Maybe the ACPI table is not correct on some devices. I had seen that patch indeed. I'm attaching the ACPI table I had shared on the list a long time ago for the ThinkPad Tablet 8. Is there anything that looks suspicious in there and that you could link to a similar gpio/irq polarity issue maybe? If you think there is a good chance that this could be the issue as well, I will try to build a similar patch for this ThinkPad product and share my results. Regards, Jérôme --=-EE0PMsployBz1BiWfyGv Content-Disposition: attachment; filename="dsdt.dsl" Content-Type: text/x-dsl; name="dsdt.dsl"; charset="UTF-8" Content-Transfer-Encoding: base64 LyoKICogSW50ZWwgQUNQSSBDb21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTC9BU0wrIERpc2Fz c2VtYmxlciB2ZXJzaW9uIDIwMTYwMjEyLTY0CiAqIENvcHlyaWdodCAoYykgMjAwMCAtIDIwMTYg SW50ZWwgQ29ycG9yYXRpb24KICogCiAqIERpc2Fzc2VtYmxpbmcgdG8gc3ltYm9saWMgQVNMKyBv cGVyYXRvcnMKICoKICogRGlzYXNzZW1ibHkgb2YgZHNkdC5kYXQsIFN1biBGZWIgMjggMjE6MDQ6 NDcgMjAxNgogKgogKiBPcmlnaW5hbCBUYWJsZSBIZWFkZXI6CiAqICAgICBTaWduYXR1cmUgICAg ICAgICJEU0RUIgogKiAgICAgTGVuZ3RoICAgICAgICAgICAweDAwMDBGOUJGICg2MzkzNSkKICog ICAgIFJldmlzaW9uICAgICAgICAgMHgwMgogKiAgICAgQ2hlY2tzdW0gICAgICAgICAweEQ3CiAq ICAgICBPRU0gSUQgICAgICAgICAgICJMRU5PVk8iCiAqICAgICBPRU0gVGFibGUgSUQgICAgICJU UC1HWSAgICIKICogICAgIE9FTSBSZXZpc2lvbiAgICAgMHgwMDAwMTI2MCAoNDcwNCkKICogICAg IENvbXBpbGVyIElEICAgICAgIklOVEwiCiAqICAgICBDb21waWxlciBWZXJzaW9uIDB4MjAxMjA3 MTEgKDUzODA1MjM2OSkKICovCkRlZmluaXRpb25CbG9jayAoImRzZHQuYW1sIiwgIkRTRFQiLCAy LCAiTEVOT1ZPIiwgIlRQLUdZICAgIiwgMHgwMDAwMTI2MCkKewoKICAgIEV4dGVybmFsIChfUFJf LkNQVTAuX1BQQywgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChfU0JfLlBDSTAuTFBDQi5UUE1f LlBUU18sIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMKICAgIEV4dGVybmFsIChDRkdELCBV bmtub3duT2JqKQogICAgRXh0ZXJuYWwgKE5ETjMsIE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVu dHMKICAgIEV4dGVybmFsIChQREMwLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKFBEQzEsIFVu a25vd25PYmopCiAgICBFeHRlcm5hbCAoUERDMiwgVW5rbm93bk9iaikKICAgIEV4dGVybmFsIChQ REMzLCBVbmtub3duT2JqKQogICAgRXh0ZXJuYWwgKFNUUjIsIFVua25vd25PYmopCgogICAgTWV0 aG9kIChBREJHLCAxLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIFJldHVybiAoWmVybykKICAg IH0KCiAgICBOYW1lIChTUDNPLCAweDJFKQogICAgTmFtZSAoSU80QiwgMHgwQTIwKQogICAgTmFt ZSAoSU80TCwgMHgyMCkKICAgIE5hbWUgKFNQMU8sIDB4NEUpCiAgICBOYW1lIChQTUJTLCAweDA0 MDApCiAgICBOYW1lIChTTUlQLCAweEIyKQogICAgTmFtZSAoR1BCUywgMHgwNTAwKQogICAgTmFt ZSAoQVBDQiwgMHhGRUMwMDAwMCkKICAgIE5hbWUgKEFQQ0wsIDB4MTAwMCkKICAgIE5hbWUgKFBG RFIsIDB4RkVEMDMwMzQpCiAgICBOYW1lIChQTUNCLCAweEZFRDAzMDAwKQogICAgTmFtZSAoUENM SywgMHhGRUQwMzA2MCkKICAgIE5hbWUgKFBVTkIsIDB4RkVEMDUwMDApCiAgICBOYW1lIChJQkFT LCAweEZFRDA4MDAwKQogICAgTmFtZSAoU1JDQiwgMHhGRUQxQzAwMCkKICAgIE5hbWUgKFNSQ0ws IDB4MTAwMCkKICAgIE5hbWUgKEhQVEIsIDB4RkVEMDAwMDApCiAgICBOYW1lIChNQ0hCLCAweEZF RDE0MDAwKQogICAgTmFtZSAoTUNITCwgMHg0MDAwKQogICAgTmFtZSAoRUdQQiwgMHhGRUQxOTAw MCkKICAgIE5hbWUgKEVHUEwsIDB4MTAwMCkKICAgIE5hbWUgKERNSUIsIDB4RkVEMTgwMDApCiAg ICBOYW1lIChETUlMLCAweDEwMDApCiAgICBOYW1lIChJRlBCLCAweEZFRDE0MDAwKQogICAgTmFt ZSAoSUZQTCwgMHgxMDAwKQogICAgTmFtZSAoUEVCUywgMHhFMDAwMDAwMCkKICAgIE5hbWUgKFBF TE4sIDB4MTAwMDAwMDApCiAgICBOYW1lIChGTUJMLCBPbmUpCiAgICBOYW1lIChGRFRQLCAweDAy KQogICAgTmFtZSAoR0NERCwgT25lKQogICAgTmFtZSAoRFNUQSwgMHgwQSkKICAgIE5hbWUgKERT TE8sIDB4MDIpCiAgICBOYW1lIChEU0xDLCAweDAzKQogICAgTmFtZSAoUElUUywgMHgxMCkKICAg IE5hbWUgKFNCQ1MsIDB4MTIpCiAgICBOYW1lIChTQUxTLCAweDEzKQogICAgTmFtZSAoTFNTUywg MHgyQSkKICAgIE5hbWUgKFBTU1MsIDB4MkIpCiAgICBOYW1lIChTT09ULCAweDM1KQogICAgTmFt ZSAoRVNDUywgMHg0OCkKICAgIE5hbWUgKFNER1YsIDB4MUMpCiAgICBOYW1lIChBQ1BILCAweERF KQogICAgTmFtZSAoQVNTQiwgWmVybykKICAgIE5hbWUgKEFPVEIsIFplcm8pCiAgICBOYW1lIChB QVhCLCBaZXJvKQogICAgTmFtZSAoUEVIUCwgT25lKQogICAgTmFtZSAoU0hQQywgWmVybykKICAg IE5hbWUgKFBFUE0sIE9uZSkKICAgIE5hbWUgKFBFRVIsIE9uZSkKICAgIE5hbWUgKFBFQ1MsIE9u ZSkKICAgIE5hbWUgKElUS0UsIFplcm8pCiAgICBOYW1lIChGVEJMLCAweDA0KQogICAgT3BlcmF0 aW9uUmVnaW9uIChHTlZTLCBTeXN0ZW1NZW1vcnksIDB4Qjk5NUFBOTgsIDB4MDMzOSkKICAgIEZp ZWxkIChHTlZTLCBBbnlBY2MsIExvY2ssIFByZXNlcnZlKQogICAgewogICAgICAgIE9TWVMsICAg MTYsIAogICAgICAgIFNNSUYsICAgOCwgCiAgICAgICAgUFJNMCwgICA4LCAKICAgICAgICBQUk0x LCAgIDgsIAogICAgICAgIFNDSUYsICAgOCwgCiAgICAgICAgUFJNMiwgICA4LCAKICAgICAgICBQ Uk0zLCAgIDgsIAogICAgICAgIExDS0YsICAgOCwgCiAgICAgICAgUFJNNCwgICA4LCAKICAgICAg ICBQUk01LCAgIDgsIAogICAgICAgIFA4MEQsICAgMzIsIAogICAgICAgIExJRFMsICAgOCwgCiAg ICAgICAgUFdSUywgICA4LCAKICAgICAgICBEQkdTLCAgIDgsIAogICAgICAgIFRIT0YsICAgOCwg CiAgICAgICAgQUNUMSwgICA4LCAKICAgICAgICBBQ1RULCAgIDgsIAogICAgICAgIFBTVlQsICAg OCwgCiAgICAgICAgVEMxViwgICA4LCAKICAgICAgICBUQzJWLCAgIDgsIAogICAgICAgIFRTUFYs ICAgOCwgCiAgICAgICAgQ1JUVCwgICA4LCAKICAgICAgICBEVFNFLCAgIDgsIAogICAgICAgIERU UzEsICAgOCwgCiAgICAgICAgRFRTMiwgICA4LCAKICAgICAgICBEVFNGLCAgIDgsIAogICAgICAg IEJOVU0sICAgOCwgCiAgICAgICAgQjBTQywgICA4LCAKICAgICAgICBCMVNDLCAgIDgsIAogICAg ICAgIEIyU0MsICAgOCwgCiAgICAgICAgQjBTUywgICA4LCAKICAgICAgICBCMVNTLCAgIDgsIAog ICAgICAgIEIyU1MsICAgOCwgCiAgICAgICAgT2Zmc2V0ICgweDI4KSwgCiAgICAgICAgQVBJQywg ICA4LCAKICAgICAgICBNUEVOLCAgIDgsIAogICAgICAgIFBDUDAsICAgOCwgCiAgICAgICAgUENQ MSwgICA4LCAKICAgICAgICBQUENNLCAgIDgsIAogICAgICAgIFBQTUYsICAgMzIsIAogICAgICAg IE9mZnNldCAoMHgzMiksIAogICAgICAgIE5BVFAsICAgOCwgCiAgICAgICAgQ01BUCwgICA4LCAK ICAgICAgICBDTUJQLCAgIDgsIAogICAgICAgIExQVFAsICAgOCwgCiAgICAgICAgRkRDUCwgICA4 LCAKICAgICAgICBDTUNQLCAgIDgsIAogICAgICAgIENJUlAsICAgOCwgCiAgICAgICAgVzM4MSwg ICA4LCAKICAgICAgICBOUENFLCAgIDgsIAogICAgICAgIE9mZnNldCAoMHgzQyksIAogICAgICAg IElHRFMsICAgOCwgCiAgICAgICAgVExTVCwgICA4LCAKICAgICAgICBDQURMLCAgIDgsIAogICAg ICAgIFBBREwsICAgOCwgCiAgICAgICAgQ1NURSwgICAxNiwgCiAgICAgICAgTlNURSwgICAxNiwg CiAgICAgICAgU1NURSwgICAxNiwgCiAgICAgICAgTkRJRCwgICA4LCAKICAgICAgICBESUQxLCAg IDMyLCAKICAgICAgICBESUQyLCAgIDMyLCAKICAgICAgICBESUQzLCAgIDMyLCAKICAgICAgICBE SUQ0LCAgIDMyLCAKICAgICAgICBESUQ1LCAgIDMyLCAKICAgICAgICBLU1YwLCAgIDMyLCAKICAg ICAgICBLU1YxLCAgIDgsIAogICAgICAgIE9mZnNldCAoMHg2NyksIAogICAgICAgIEJMQ1MsICAg OCwgCiAgICAgICAgQlJUTCwgICA4LCAKICAgICAgICBBTFNFLCAgIDgsIAogICAgICAgIEFMQUYs ICAgOCwgCiAgICAgICAgTExPVywgICA4LCAKICAgICAgICBMSElILCAgIDgsIAogICAgICAgIE9m ZnNldCAoMHg2RSksIAogICAgICAgIEVNQUUsICAgOCwgCiAgICAgICAgRU1BUCwgICAxNiwgCiAg ICAgICAgRU1BTCwgICAxNiwgCiAgICAgICAgT2Zmc2V0ICgweDc0KSwgCiAgICAgICAgTUVGRSwg ICA4LCAKICAgICAgICBEU1RTLCAgIDgsIAogICAgICAgIE9mZnNldCAoMHg3OCksIAogICAgICAg IFRQTVAsICAgOCwgCiAgICAgICAgVFBNRSwgICA4LCAKICAgICAgICBNT1JELCAgIDgsIAogICAg ICAgIFRDR1AsICAgOCwgCiAgICAgICAgUFBSUCwgICAzMiwgCiAgICAgICAgUFBSUSwgICA4LCAK ICAgICAgICBMUFBSLCAgIDgsIAogICAgICAgIEdURjAsICAgNTYsIAogICAgICAgIEdURjIsICAg NTYsIAogICAgICAgIElERU0sICAgOCwgCiAgICAgICAgR1RGMSwgICA1NiwgCiAgICAgICAgT2Zm c2V0ICgweEFBKSwgCiAgICAgICAgQVNMQiwgICAzMiwgCiAgICAgICAgSUJUVCwgICA4LCAKICAg ICAgICBJUEFULCAgIDgsIAogICAgICAgIElUVkYsICAgOCwgCiAgICAgICAgSVRWTSwgICA4LCAK ICAgICAgICBJUFNDLCAgIDgsIAogICAgICAgIElCTEMsICAgOCwgCiAgICAgICAgSUJJQSwgICA4 LCAKICAgICAgICBJU1NDLCAgIDgsIAogICAgICAgIEk0MDksICAgOCwgCiAgICAgICAgSTUwOSwg ICA4LCAKICAgICAgICBJNjA5LCAgIDgsIAogICAgICAgIEk3MDksICAgOCwgCiAgICAgICAgSURN TSwgICA4LCAKICAgICAgICBJRE1TLCAgIDgsIAogICAgICAgIElGMUUsICAgOCwgCiAgICAgICAg SFZDTywgICA4LCAKICAgICAgICBOWEQxLCAgIDMyLCAKICAgICAgICBOWEQyLCAgIDMyLCAKICAg ICAgICBOWEQzLCAgIDMyLCAKICAgICAgICBOWEQ0LCAgIDMyLCAKICAgICAgICBOWEQ1LCAgIDMy LCAKICAgICAgICBOWEQ2LCAgIDMyLCAKICAgICAgICBOWEQ3LCAgIDMyLCAKICAgICAgICBOWEQ4 LCAgIDMyLCAKICAgICAgICBHU01JLCAgIDgsIAogICAgICAgIFBBVlAsICAgOCwgCiAgICAgICAg T2Zmc2V0ICgweEUxKSwgCiAgICAgICAgT1NDQywgICA4LCAKICAgICAgICBORVhQLCAgIDgsIAog ICAgICAgIE9mZnNldCAoMHhFQiksIAogICAgICAgIERTRU4sICAgOCwgCiAgICAgICAgRUNPTiwg ICA4LCAKICAgICAgICBHUElDLCAgIDgsIAogICAgICAgIENUWVAsICAgOCwgCiAgICAgICAgTDAx QywgICA4LCAKICAgICAgICBWRk4wLCAgIDgsIAogICAgICAgIFZGTjEsICAgOCwgCiAgICAgICAg T2Zmc2V0ICgweDEwMCksIAogICAgICAgIE5WR0EsICAgMzIsIAogICAgICAgIE5WSEEsICAgMzIs IAogICAgICAgIEFNREEsICAgMzIsIAogICAgICAgIERJRDYsICAgMzIsIAogICAgICAgIERJRDcs ICAgMzIsIAogICAgICAgIERJRDgsICAgMzIsIAogICAgICAgIE9mZnNldCAoMHgxNEMpLCAKICAg ICAgICBVU0VMLCAgIDgsIAogICAgICAgIFBVMUUsICAgOCwgCiAgICAgICAgUFUyRSwgICA4LCAK ICAgICAgICBMUEUwLCAgIDMyLCAKICAgICAgICBMUEUxLCAgIDMyLCAKICAgICAgICBMUEUyLCAg IDMyLCAKICAgICAgICBBQ1NULCAgIDgsIAogICAgICAgIEJUU1QsICAgOCwgCiAgICAgICAgUEZM ViwgICA4LCAKICAgICAgICBPZmZzZXQgKDB4MTVGKSwgCiAgICAgICAgQU9BQywgICA4LCAKICAg ICAgICBYSENJLCAgIDgsIAogICAgICAgIFBNRU4sICAgOCwgCiAgICAgICAgTFBFRSwgICA4LCAK ICAgICAgICBJU1BBLCAgIDMyLCAKICAgICAgICBJU1BELCAgIDgsIAogICAgICAgIFBDSUIsICAg MzIsIAogICAgICAgIFBDSVQsICAgMzIsIAogICAgICAgIEQxMEEsICAgMzIsIAogICAgICAgIEQx MEwsICAgMzIsIAogICAgICAgIEQxMUEsICAgMzIsIAogICAgICAgIEQxMUwsICAgMzIsIAogICAg ICAgIFAxMEEsICAgMzIsIAogICAgICAgIFAxMEwsICAgMzIsIAogICAgICAgIFAxMUEsICAgMzIs IAogICAgICAgIFAxMUwsICAgMzIsIAogICAgICAgIFAyMEEsICAgMzIsIAogICAgICAgIFAyMEws ICAgMzIsIAogICAgICAgIFAyMUEsICAgMzIsIAogICAgICAgIFAyMUwsICAgMzIsIAogICAgICAg IFUxMEEsICAgMzIsIAogICAgICAgIFUxMEwsICAgMzIsIAogICAgICAgIFUxMUEsICAgMzIsIAog ICAgICAgIFUxMUwsICAgMzIsIAogICAgICAgIFUyMEEsICAgMzIsIAogICAgICAgIFUyMEwsICAg MzIsIAogICAgICAgIFUyMUEsICAgMzIsIAogICAgICAgIFUyMUwsICAgMzIsIAogICAgICAgIFNQ MEEsICAgMzIsIAogICAgICAgIFNQMEwsICAgMzIsIAogICAgICAgIFNQMUEsICAgMzIsIAogICAg ICAgIFNQMUwsICAgMzIsIAogICAgICAgIEQyMEEsICAgMzIsIAogICAgICAgIEQyMEwsICAgMzIs IAogICAgICAgIEQyMUEsICAgMzIsIAogICAgICAgIEQyMUwsICAgMzIsIAogICAgICAgIEkxMEEs ICAgMzIsIAogICAgICAgIEkxMEwsICAgMzIsIAogICAgICAgIEkxMUEsICAgMzIsIAogICAgICAg IEkxMUwsICAgMzIsIAogICAgICAgIEkyMEEsICAgMzIsIAogICAgICAgIEkyMEwsICAgMzIsIAog ICAgICAgIEkyMUEsICAgMzIsIAogICAgICAgIEkyMUwsICAgMzIsIAogICAgICAgIEkzMEEsICAg MzIsIAogICAgICAgIEkzMEwsICAgMzIsIAogICAgICAgIEkzMUEsICAgMzIsIAogICAgICAgIEkz MUwsICAgMzIsIAogICAgICAgIEk0MEEsICAgMzIsIAogICAgICAgIEk0MEwsICAgMzIsIAogICAg ICAgIEk0MUEsICAgMzIsIAogICAgICAgIEk0MUwsICAgMzIsIAogICAgICAgIEk1MEEsICAgMzIs IAogICAgICAgIEk1MEwsICAgMzIsIAogICAgICAgIEk1MUEsICAgMzIsIAogICAgICAgIEk1MUws ICAgMzIsIAogICAgICAgIEk2MEEsICAgMzIsIAogICAgICAgIEk2MEwsICAgMzIsIAogICAgICAg IEk2MUEsICAgMzIsIAogICAgICAgIEk2MUwsICAgMzIsIAogICAgICAgIEk3MEEsICAgMzIsIAog ICAgICAgIEk3MEwsICAgMzIsIAogICAgICAgIEk3MUEsICAgMzIsIAogICAgICAgIEk3MUwsICAg MzIsIAogICAgICAgIEVNMEEsICAgMzIsIAogICAgICAgIEVNMEwsICAgMzIsIAogICAgICAgIEVN MUEsICAgMzIsIAogICAgICAgIEVNMUwsICAgMzIsIAogICAgICAgIFNJMEEsICAgMzIsIAogICAg ICAgIFNJMEwsICAgMzIsIAogICAgICAgIFNJMUEsICAgMzIsIAogICAgICAgIFNJMUwsICAgMzIs IAogICAgICAgIFNEMEEsICAgMzIsIAogICAgICAgIFNEMEwsICAgMzIsIAogICAgICAgIFNEMUEs ICAgMzIsIAogICAgICAgIFNEMUwsICAgMzIsIAogICAgICAgIE1IMEEsICAgMzIsIAogICAgICAg IE1IMEwsICAgMzIsIAogICAgICAgIE1IMUEsICAgMzIsIAogICAgICAgIE1IMUwsICAgMzIsIAog ICAgICAgIE9TU0wsICAgOCwgCiAgICAgICAgT2Zmc2V0ICgweDI5NCksIAogICAgICAgIERQVEUs ICAgOCwgCiAgICAgICAgVEhNMCwgICA4LCAKICAgICAgICBUSE0xLCAgIDgsIAogICAgICAgIFRI TTIsICAgOCwgCiAgICAgICAgVEhNMywgICA4LCAKICAgICAgICBUSE00LCAgIDgsIAogICAgICAg IENIR1IsICAgOCwgCiAgICAgICAgRERTUCwgICA4LCAKICAgICAgICBEU09DLCAgIDgsIAogICAg ICAgIERQU1IsICAgOCwgCiAgICAgICAgRFBDVCwgICAzMiwgCiAgICAgICAgRFBQVCwgICAzMiwg CiAgICAgICAgREdDMCwgICAzMiwgCiAgICAgICAgREdQMCwgICAzMiwgCiAgICAgICAgREdDMSwg ICAzMiwgCiAgICAgICAgREdQMSwgICAzMiwgCiAgICAgICAgREdDMiwgICAzMiwgCiAgICAgICAg REdQMiwgICAzMiwgCiAgICAgICAgREdDMywgICAzMiwgCiAgICAgICAgREdQMywgICAzMiwgCiAg ICAgICAgREdDNCwgICAzMiwgCiAgICAgICAgREdQNCwgICAzMiwgCiAgICAgICAgRExQTSwgICA4 LCAKICAgICAgICBEU0MwLCAgIDMyLCAKICAgICAgICBEU0MxLCAgIDMyLCAKICAgICAgICBEU0My LCAgIDMyLCAKICAgICAgICBEU0MzLCAgIDMyLCAKICAgICAgICBEU0M0LCAgIDMyLCAKICAgICAg ICBEREJHLCAgIDgsIAogICAgICAgIExQT0UsICAgMzIsIAogICAgICAgIExQUFMsICAgMzIsIAog ICAgICAgIExQU1QsICAgMzIsIAogICAgICAgIExQUEMsICAgMzIsIAogICAgICAgIExQUEYsICAg MzIsIAogICAgICAgIERQTUUsICAgOCwgCiAgICAgICAgQkNTTCwgICA4LCAKICAgICAgICBORkNT LCAgIDgsIAogICAgICAgIE9mZnNldCAoMHgyRkMpLCAKICAgICAgICBUUE1BLCAgIDMyLCAKICAg ICAgICBUUE1MLCAgIDMyLCAKICAgICAgICBJVFNBLCAgIDgsIAogICAgICAgIFMwSVgsICAgOCwg CiAgICAgICAgU0RNRCwgICA4LCAKICAgICAgICBFTVZSLCAgIDgsIAogICAgICAgIEJNQkQsICAg MzIsIAogICAgICAgIEZTQVMsICAgOCwgCiAgICAgICAgQkRJRCwgICA4LCAKICAgICAgICBGQklE LCAgIDgsIAogICAgICAgIE9UR00sICAgOCwgCiAgICAgICAgU1RFUCwgICA4LCAKICAgICAgICBT T0NTLCAgIDgsIAogICAgICAgIEFNVEUsICAgOCwgCiAgICAgICAgU0NQRSwgICA4LCAKICAgICAg ICBTQVJFLCAgIDgsIAogICAgICAgIFBTU0QsICAgOCwgCiAgICAgICAgRURQViwgICA4LCAKICAg ICAgICBESURYLCAgIDMyLCAKICAgICAgICBDT01QLCAgIDgsIAogICAgICAgIENBTUksICAgOCwg CiAgICAgICAgQ09NQiwgICA4CiAgICB9CgogICAgU2NvcGUgKF9TQikKICAgIHsKICAgICAgICBE ZXZpY2UgKFJUQykKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBO UDBCMDAiKSAvKiBBVCBSZWFsLVRpbWUgQ2xvY2sgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAog ICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpICAvLyBfQ1JTOiBDdXJy ZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElPIChE ZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAweDAwNzAsICAgICAgICAgICAgIC8vIFJhbmdl IE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwNzAsICAgICAgICAgICAgIC8vIFJhbmdl IE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdu bWVudAogICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAg ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICB9KQogICAgICAgIH0KCiAgICAgICAgRGV2 aWNlIChIUEVUKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5Q MDEwMyIpIC8qIEhQRVQgU3lzdGVtIFRpbWVyICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAg ICAgICAgICAgTmFtZSAoX1VJRCwgWmVybykgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAg ICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICB9CgogICAg ICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJl c291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKFJCVUYs IFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkVE MDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAwMDA0MDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAg ICAgKQogICAgICAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2 ZWwsIEFjdGl2ZUhpZ2gsIEV4Y2x1c2l2ZSwgLCwgKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOCwKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgUmV0dXJuIChSQlVGKSAvKiBcX1NCXy5I UEVULl9DUlMuUkJVRiAqLwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBOYW1lIChQ UjAwLCBQYWNrYWdlICgweDEyKQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDEwRkZGRiwgCiAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgIExOS0EsIAogICAgICAgICAgICAgICAgWmVybwogICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIDB4MDAxMUZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAw MTJGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5LQywgCiAg ICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDE0RkZGRiwgCiAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIExOS0UsIAogICAgICAgICAgICAgICAgWmVy bwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4MDAxNUZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICBMTktGLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwg CgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweDAwMTZGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5L RywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDE3RkZGRiwgCiAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIExOS0gsIAogICAgICAgICAgICAg ICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxOEZGRkYsIAogICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAweDAwMThGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAg ICAgTE5LRCwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDE4RkZG RiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIExOS0MsIAogICAgICAg ICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxOEZGRkYsIAogICAgICAgICAgICAg ICAgT25lLCAKICAgICAgICAgICAgICAgIExOS0EsIAogICAgICAgICAgICAgICAgWmVybwogICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIDB4MDAxQUZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICBMTktGLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAw MURGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5LSCwgCiAg ICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDFFRkZGRiwgCiAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIExOS0QsIAogICAgICAgICAgICAgICAgWmVy bwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4MDAxRUZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAg ICAgICAgICAgICAgICBMTktBLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwg CgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweDAwMUVGRkZGLCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBMTktC LCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNr YWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMUVGRkZGLCAKICAg ICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAg ICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAyRkZGRiwgCiAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgIExOS0EsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAg ICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChBUjAwLCBQYWNrYWdlICgweDExKQogICAgICAg IHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgMHgwMDEwRkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgMHgxMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxMUZGRkYsIAog ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgIDB4MTEKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTJGRkZGLCAKICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgMHgwMDE0RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxNAogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxNUZG RkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIDB4MTUKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTZGRkZGLCAKICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDE2CiAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgMHgwMDE4RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4 MDAxOEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdl ICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMThGRkZGLCAKICAgICAg ICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAw eDEyCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgMHgwMDE4RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAog ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgMHgwMDFBRkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgMHgxNQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxREZGRkYsIAog ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgIDB4MTcKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMUVGRkZGLCAKICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEzCiAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgMHgwMDFFRkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMAogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxRUZG RkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgMHgxMQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxRUZGRkYsIAogICAgICAgICAgICAg ICAgMHgwMiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTIKICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAweDAwMDJGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgIH0KICAgICAg ICB9KQogICAgICAgIE5hbWUgKFBSMDQsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAg ICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYs IAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBMTktBLCAKICAgICAgICAg ICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgT25l LCAKICAgICAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExO S0MsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAg ICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIExOS0QsIAogICAgICAgICAgICAgICAg WmVybwogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChBUjA0LCBQYWNrYWdl ICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhG RkZGLCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAg MHgwMiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTIKICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfQogICAgICAgIH0pCiAg ICAgICAgTmFtZSAoUFIwNSwgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICAgICAg WmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAg ICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg MHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgTE5LRCwgCiAg ICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAg ICAgIDB4MDMsIAogICAgICAgICAgICAgICAgTE5LQSwgCiAgICAgICAgICAgICAgICBaZXJvCiAg ICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKEFSMDUsIFBhY2thZ2UgKDB4MDQp CiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAog ICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgMHgxMgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAK ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMwogICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgMHgxMAogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBO YW1lIChQUjA2LCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAg ICAgICBMTktELCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAg ICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYs IAogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBMTktBLCAKICAgICAgICAg ICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgw MywgCiAgICAgICAgICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAg ICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoQVIwNiwgUGFja2FnZSAoMHgwNCkKICAgICAg ICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAg ICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEz CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhG RkZGLCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAweDExCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKFBS MDcsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICBMTktELCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgIExO S0EsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAg ICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICAgICAg WmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAg ICAgICAgICAgICAgIExOS0MsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9CiAg ICAgICAgfSkKICAgICAgICBOYW1lIChBUjA3LCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhG RkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAg IE9uZSwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTAKICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAog ICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgIDB4MTIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoUFIwMSwgUGFj a2FnZSAoMHgxMCkKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAg ICAgICAgICAgICAgIExOS0YsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAK CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IDB4RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgTE5LRywgCiAg ICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAg ICAgIDB4MDIsIAogICAgICAgICAgICAgICAgTE5LSCwgCiAgICAgICAgICAgICAgICBaZXJvCiAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAg ICAgICAgTE5LRSwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAx RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIExOS0csIAogICAg ICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMUZGRkYsIAogICAgICAgICAg ICAgICAgT25lLCAKICAgICAgICAgICAgICAgIExOS0YsIAogICAgICAgICAgICAgICAgWmVybwog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4MDAwMUZGRkYsIAogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAg ICAgICAgICAgICBMTktFLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAw eDAwMDFGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgTE5LSCwg CiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAyRkZGRiwgCiAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIExOS0MsIAogICAgICAgICAgICAgICAg WmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMkZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAK ICAgICAgICAgICAgICAgIExOS0QsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4MDAwMkZGRkYsIAogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBM TktCLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDJGRkZGLCAK ICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgTE5LQSwgCiAgICAgICAgICAg ICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAzRkZGRiwgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIExOS0QsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAg ICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIDB4MDAwM0ZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAg ICAgIExOS0MsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwM0ZG RkYsIAogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBMTktGLCAKICAgICAg ICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDNGRkZGLCAKICAgICAgICAgICAg ICAgIDB4MDMsIAogICAgICAgICAgICAgICAgTE5LRywgCiAgICAgICAgICAgICAgICBaZXJvCiAg ICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKEFSMDEsIFBhY2thZ2UgKDB4MTAp CiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTUKICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAog ICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgMHgxNgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAK ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxNwogICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgMHgxNAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMUZGRkYsIAogICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg IDB4MTYKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDFGRkZGLCAKICAgICAgICAgICAgICAgIE9uZSwg CiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTUKICAgICAgICAgICAg fSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAweDAwMDFGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAweDE0CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAxRkZGRiwg CiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgMHgxNwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMkZGRkYsIAogICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTIKICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAweDAwMDJGRkZGLCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfSwgCgogICAgICAg ICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDJG RkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAweDExCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAyRkZGRiwgCiAgICAgICAgICAg ICAgICAweDAzLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMAog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4MDAwM0ZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAw eDAwMDNGRkZGLCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBaZXJvLCAK ICAgICAgICAgICAgICAgIDB4MTIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdl ICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDNGRkZGLCAKICAgICAg ICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAw eDE1CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgMHgwMDAzRkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAK ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxNgogICAgICAgICAgICB9 CiAgICAgICAgfSkKICAgICAgICBOYW1lIChQUlNBLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAg ICAgewogICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQogICAgICAg ICAgICAgICAgezMsNCw1LDYsMTAsMTEsMTIsMTQsMTV9CiAgICAgICAgfSkKICAgICAgICBBbGlh cyAoUFJTQSwgUFJTQikKICAgICAgICBBbGlhcyAoUFJTQSwgUFJTQykKICAgICAgICBBbGlhcyAo UFJTQSwgUFJTRCkKICAgICAgICBBbGlhcyAoUFJTQSwgUFJTRSkKICAgICAgICBBbGlhcyAoUFJT QSwgUFJTRikKICAgICAgICBBbGlhcyAoUFJTQSwgUFJTRykKICAgICAgICBBbGlhcyAoUFJTQSwg UFJTSCkKICAgICAgICBEZXZpY2UgKFBDSTApCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChf SElELCBFaXNhSWQgKCJQTlAwQTA4IikgLyogUENJIEV4cHJlc3MgQnVzICovKSAgLy8gX0hJRDog SGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX0NJRCwgRWlzYUlkICgiUE5QMEEwMyIpIC8q IFBDSSBCdXMgKi8pICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgIE5hbWUgKF9B RFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgIE1ldGhvZCAoXkJOMDAsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoWmVy bykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfQkJOLCAwLCBOb3RTZXJpYWxp emVkKSAgLy8gX0JCTjogQklPUyBCdXMgTnVtYmVyCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIFJldHVybiAoQk4wMCAoKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoX1VJ RCwgWmVybykgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICBOYW1lIChfREVQLCBQYWNr YWdlICgweDAxKSAgLy8gX0RFUDogRGVwZW5kZW5jaWVzCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIFBFUEQKICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChfUFJULCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX1BSVDogUENJIFJvdXRpbmcgVGFibGUKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChBUjAwKSAvKiBcX1NCXy5BUjAwICovCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgUmV0dXJuIChQUjAwKSAvKiBcX1NCXy5QUjAwICovCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIERldmljZSAoVkxWQykKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoSEJVUywgUENJX0NvbmZpZywgWmVybywgMHhGRikKICAgICAgICAgICAg ICAgIEZpZWxkIChIQlVTLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4RDApLCAKICAgICAgICAgICAgICAg ICAgICBTTUNSLCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBTTURSLCAgIDMyLCAKICAgICAg ICAgICAgICAgICAgICBNQ1JYLCAgIDMyCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTWV0aG9kIChSTUJSLCAyLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIExvY2FsMCA9ICgoQXJnMCA8PCAweDEwKSB8IChBcmcxIDw8IDB4MDgpKQog ICAgICAgICAgICAgICAgICAgIFNNQ1IgPSAoMHgxMDAwMDBGMCB8IExvY2FsMCkKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFNNRFIpIC8qIFxfU0JfLlBDSTAuVkxWQy5TTURSICovCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChXTUJSLCAzLCBTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFNNRFIgPSBBcmcyCiAgICAg ICAgICAgICAgICAgICAgTG9jYWwwID0gKChBcmcwIDw8IDB4MTApIHwgKEFyZzEgPDwgMHgwOCkp CiAgICAgICAgICAgICAgICAgICAgU01DUiA9ICgweDExMDAwMEYwIHwgTG9jYWwwKQogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNl cmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIElmIChUUE1QKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJFUzAsIFxfU0IuUENJMC5fWTAwLl9MRU4sIFRQ TUwpICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgICAgICBUUE1MID0gMHgxMDAwCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkVTMCwg XF9TQi5QQ0kwLl9ZMDEuX01JTiwgSVNNTikgIC8vIF9NSU46IE1pbmltdW0gQmFzZSBBZGRyZXNz CiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSRVMwLCBcX1NCLlBDSTAuX1kwMS5f TUFYLCBJU01YKSAgLy8gX01BWDogTWF4aW11bSBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAg IENyZWF0ZURXb3JkRmllbGQgKFJFUzAsIFxfU0IuUENJMC5fWTAxLl9MRU4sIElTTE4pICAvLyBf TEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgIElmICgoSVNQRCA9PSBPbmUpKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIElTTU4gPSBJU1BBIC8qIFxJU1BBICovCiAgICAg ICAgICAgICAgICAgICAgSVNNWCA9IChJU01OICsgSVNMTikgLyogXF9TQl8uUENJMC5fQ1JTLklT TE4gKi8KICAgICAgICAgICAgICAgICAgICBJU01YIC09IE9uZQogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IElTTU4gPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgSVNNWCA9IFplcm8KICAgICAgICAgICAg ICAgICAgICBJU0xOID0gWmVybwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIENy ZWF0ZURXb3JkRmllbGQgKFJFUzAsIFxfU0IuUENJMC5fWTAyLl9NSU4sIE0xTU4pICAvLyBfTUlO OiBNaW5pbXVtIEJhc2UgQWRkcmVzcwogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAo UkVTMCwgXF9TQi5QQ0kwLl9ZMDIuX01BWCwgTTFNWCkgIC8vIF9NQVg6IE1heGltdW0gQmFzZSBB ZGRyZXNzCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSRVMwLCBcX1NCLlBDSTAu X1kwMi5fTEVOLCBNMUxOKSAgLy8gX0xFTjogTGVuZ3RoCiAgICAgICAgICAgICAgICBNMU1OID0g KEJNQkQgJiAweEZGMDAwMDAwKQogICAgICAgICAgICAgICAgTTFNWCA9IFBDSVQgLyogXFBDSVQg Ki8KICAgICAgICAgICAgICAgIE0xTE4gPSAoKE0xTVggLSBNMU1OKSArIE9uZSkKICAgICAgICAg ICAgICAgIE0xTVggLT0gT25lCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSRVMw LCBcX1NCLlBDSTAuX1kwMy5fTUlOLCBHU01OKSAgLy8gX01JTjogTWluaW11bSBCYXNlIEFkZHJl c3MKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJFUzAsIFxfU0IuUENJMC5fWTAz Ll9NQVgsIEdTTVgpICAvLyBfTUFYOiBNYXhpbXVtIEJhc2UgQWRkcmVzcwogICAgICAgICAgICAg ICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkVTMCwgXF9TQi5QQ0kwLl9ZMDMuX0xFTiwgR1NMTikgIC8v IF9MRU46IExlbmd0aAogICAgICAgICAgICAgICAgR1NNTiA9IF5HRlgwLkdTVE0gLyogXF9TQl8u UENJMC5HRlgwLkdTVE0gKi8KICAgICAgICAgICAgICAgIEdTTE4gPSAoXkdGWDAuR1VNQSA8PCAw eDE5KQogICAgICAgICAgICAgICAgR1NNWCA9IChHU01OICsgR1NMTikgLyogXF9TQl8uUENJMC5f Q1JTLkdTTE4gKi8KICAgICAgICAgICAgICAgIEdTTVggLT0gT25lCiAgICAgICAgICAgICAgICBS ZXR1cm4gKFJFUzApIC8qIFxfU0JfLlBDSTAuUkVTMCAqLwogICAgICAgICAgICB9CgogICAgICAg ICAgICBOYW1lIChSRVMwLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIFdvcmRCdXNOdW1iZXIgKFJlc291cmNlUHJvZHVjZXIsIE1pbkZpeGVkLCBNYXhG aXhlZCwgUG9zRGVjb2RlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMCwgICAgICAgICAgICAg Ly8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8v IFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwRkYsICAgICAgICAgICAgIC8v IFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8v IFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDEwMCwgICAgICAgICAg ICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgLCwgKQogICAgICAgICAgICAgICAgSU8g KERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgIDB4MDA3MCwgICAgICAgICAgICAgLy8gUmFu Z2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDA3NywgICAgICAgICAgICAgLy8gUmFu Z2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxp Z25tZW50CiAgICAgICAgICAgICAgICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBMZW5ndGgK ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAg ICAgICAgICAgICAgICAgMHgwQ0Y4LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAg ICAgICAgICAgICAgICAgMHgwQ0Y4LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg ICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAg ICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgICAgIFdvcmRJTyAoUmVzb3VyY2VQcm9kdWNlciwgTWluRml4ZWQs IE1heEZpeGVkLCBQb3NEZWNvZGUsIEVudGlyZVJhbmdlLAogICAgICAgICAgICAgICAgICAgIDB4 MDAwMCwgICAgICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAweDAw MDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAw NkYsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAw MDAsICAgICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAg IDB4MDA3MCwgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgLCwgLCBU eXBlU3RhdGljKQogICAgICAgICAgICAgICAgV29yZElPIChSZXNvdXJjZVByb2R1Y2VyLCBNaW5G aXhlZCwgTWF4Rml4ZWQsIFBvc0RlY29kZSwgRW50aXJlUmFuZ2UsCiAgICAgICAgICAgICAgICAg ICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAg IDB4MDA3OCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAg IDB4MENGNywgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAg IDB4MDAwMCwgICAgICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAg ICAgICAgMHgwQzgwLCAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAs LCAsIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBXb3JkSU8gKFJlc291cmNlUHJvZHVjZXIs IE1pbkZpeGVkLCBNYXhGaXhlZCwgUG9zRGVjb2RlLCBFbnRpcmVSYW5nZSwKICAgICAgICAgICAg ICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAg ICAgICAgMHgwRDAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAg ICAgICAgMHhGRkZGLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAg ICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAg ICAgICAgICAgICAweEYzMDAsICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAg ICAgICwsICwgVHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJj ZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFk V3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxh cml0eQogICAgICAgICAgICAgICAgICAgIDB4MDAwQTAwMDAsICAgICAgICAgLy8gUmFuZ2UgTWlu aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwQkZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4 aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRp b24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMCwgICAgICAgICAvLyBMZW5n dGgKICAgICAgICAgICAgICAgICAgICAsLCAsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRp YykKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNv ZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAg ICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAg ICAgICAgIDB4MDAwQzAwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAg ICAgICAgIDB4MDAwREZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAg ICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAg ICAgICAgICAgICAgMHgwMDAyMDAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAg ICAgICAsLCAsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAgICAgICAg IERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhG aXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAw MCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4MDAwRTAwMDAs ICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwRkZGRkYs ICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs ICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAy MDAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAsLCAsIEFkZHJlc3NS YW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNv dXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBS ZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFu dWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4N0EwMDAwMDAsICAgICAgICAgLy8gUmFuZ2Ug TWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4N0EzRkZGRkYsICAgICAgICAgLy8gUmFuZ2Ug TWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNs YXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMCwgICAgICAgICAvLyBM ZW5ndGgKICAgICAgICAgICAgICAgICAgICAsLCBfWTAxLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5 cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwg UG9zRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIENhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAg ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAg ICAgICAgICAgICAgICAweDdDMDAwMDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAg ICAgICAgICAgICAgICAweDdGRkZGRkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAg ICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAog ICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDAsICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAg ICAgICAgICAgICAgLCwgX1kwMywgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQogICAg ICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwgTWlu Rml4ZWQsIE1heEZpeGVkLCBDYWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAg ICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAg MHg4MDAwMDAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAg MHhERkZGRkZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAg MHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAg ICAgICAweDYwMDAwMDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICws IF9ZMDIsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIERX b3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhl ZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwg ICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4RkVENDAwMDAsICAg ICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4RkVENDBGRkYsICAg ICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAg ICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAw MCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAsLCBfWTAwLCBBZGRyZXNz UmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUg KEdVSUQsIFRvVVVJRCAoIjMzZGI0ZDViLTFmZjctNDAxYy05NjU3LTc0NDFjMDNkZDc2NiIpIC8q IFBDSSBIb3N0IEJyaWRnZSBEZXZpY2UgKi8pCiAgICAgICAgICAgIE5hbWUgKFNVUFAsIFplcm8p CiAgICAgICAgICAgIE5hbWUgKENUUkwsIFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX09TQywg NCwgU2VyaWFsaXplZCkgIC8vIF9PU0M6IE9wZXJhdGluZyBTeXN0ZW0gQ2FwYWJpbGl0aWVzCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMCA9IEFyZzMKICAgICAgICAgICAgICAg IENyZWF0ZURXb3JkRmllbGQgKExvY2FsMCwgWmVybywgQ0RXMSkKICAgICAgICAgICAgICAgIENy ZWF0ZURXb3JkRmllbGQgKExvY2FsMCwgMHgwNCwgQ0RXMikKICAgICAgICAgICAgICAgIENyZWF0 ZURXb3JkRmllbGQgKExvY2FsMCwgMHgwOCwgQ0RXMykKICAgICAgICAgICAgICAgIElmICgoKEFy ZzAgPT0gR1VJRCkgJiYgTkVYUCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgU1VQUCA9IENEVzIgLyogXF9TQl8uUENJMC5fT1NDLkNEVzIgKi8KICAgICAgICAgICAgICAg ICAgICBDVFJMID0gQ0RXMyAvKiBcX1NCXy5QQ0kwLl9PU0MuQ0RXMyAqLwogICAgICAgICAgICAg ICAgICAgIElmICh+KENEVzEgJiBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChDVFJMICYgMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5IUEcgKCkKICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChDVFJMICYgMHgwNCkpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5QTUUgKCkK ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgSWYgKChBcmcxICE9IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBDRFcxIHw9IDB4MDgKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIElmICgoQ0RXMyAhPSBDVFJMKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENEVzEgfD0gMHgxMAogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgQ0RXMyA9IENUUkwgLyogXF9TQl8uUENJMC5DVFJM ICovCiAgICAgICAgICAgICAgICAgICAgT1NDQyA9IENUUkwgLyogXF9TQl8uUENJMC5DVFJMICov CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg Q0RXMSB8PSAweDA0CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoTFBDQikKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDFGMDAwMCkgIC8vIF9BRFI6 IEFkZHJlc3MKICAgICAgICAgICAgICAgIFNjb3BlIChcX1NCKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoSUxCUiwgU3lzdGVtTWVtb3J5LCBJ QkFTLCAweDhDKQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChJTEJSLCBBbnlBY2MsIE5vTG9j aywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4MDgpLCAKICAgICAgICAgICAgICAgICAgICAgICAgUEFSQywgICA4LCAKICAg ICAgICAgICAgICAgICAgICAgICAgUEJSQywgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAg UENSQywgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgUERSQywgICA4LCAKICAgICAgICAg ICAgICAgICAgICAgICAgUEVSQywgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgUEZSQywg ICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgUEdSQywgICA4LCAKICAgICAgICAgICAgICAg ICAgICAgICAgUEhSQywgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDg4 KSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICAgMywgCiAgICAgICAgICAgICAgICAg ICAgICAgIFVJM0UsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFVJNEUsICAgMQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChMTktBKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlz YUlkICgiUE5QMEMwRiIpIC8qIFBDSSBJbnRlcnJ1cHQgTGluayBEZXZpY2UgKi8pICAvLyBfSElE OiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCBPbmUpICAv LyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRElTLCAw LCBTZXJpYWxpemVkKSAgLy8gX0RJUzogRGlzYWJsZSBEZXZpY2UKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFSQyB8PSAweDgwCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSUywg MCwgU2VyaWFsaXplZCkgIC8vIF9QUlM6IFBvc3NpYmxlIFJlc291cmNlIFNldHRpbmdzCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo UFJTQSkgLyogXF9TQl8uUFJTQSAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBD dXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFJUTEEsIFJlc291cmNlVGVtcGxhdGUgKCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoUlRMQSwgT25lLCBJUlEwKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSVJRMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElSUTAgPSAoT25lIDw8IChQQVJDICYgMHgwRikpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFJUTEEpIC8qIFxfU0JfLkxOS0EuX0NSUy5SVExBICovCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NSUywg MSwgU2VyaWFsaXplZCkgIC8vIF9TUlM6IFNldCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmll bGQgKEFyZzAsIE9uZSwgSVJRMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbmRTZXRS aWdodEJpdCAoSVJRMCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww LS0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBUkMgPSBMb2NhbDAKICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBT ZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUEFSQyAmIDB4ODApKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwOSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIERldmljZSAoTE5LQikKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYiKSAvKiBQQ0kg SW50ZXJydXB0IExpbmsgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAg ICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAg ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfRElT OiBEaXNhYmxlIERldmljZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQQlJDIHw9IDB4ODAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BS UzogUG9zc2libGUgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQUlNCKSAvKiBcX1NCXy5QUlNCICov CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0NSUywgMCwgU2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGlu Z3MKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg TmFtZSAoUlRMQiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxv dywgU2hhcmVkLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlV29yZEZpZWxkIChSVExCLCBPbmUsIElSUTApCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJUlEwID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgSVJRMCA9IChPbmUgPDwg KFBCUkMgJiAweDBGKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUlRMQikg LyogXF9TQl8uTE5LQi5fQ1JTLlJUTEIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBTZXJpYWxpemVkKSAgLy8gX1NS UzogU2V0IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgT25lLCBJUlEwKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChJUlEwLCBMb2NhbDAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAtLQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUEJSQyA9IExvY2FsMAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBT dGF0dXMKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChQQlJDICYgMHg4MCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHgwQikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNl IChMTktDKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRiIpIC8qIFBDSSBJbnRlcnJ1cHQgTGluayBEZXZpY2Ug Ki8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChf VUlELCAweDAzKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX0RJUywgMCwgU2VyaWFsaXplZCkgIC8vIF9ESVM6IERpc2FibGUgRGV2aWNlCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDUkMgfD0g MHg4MAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9QUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFJTOiBQb3NzaWJsZSBSZXNvdXJjZSBT ZXR0aW5ncwogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFBSU0MpIC8qIFxfU0JfLlBSU0MgKi8KICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVk KSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChSVExDLCBSZXNvdXJjZVRl bXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAge30KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFJUTEMsIE9u ZSwgSVJRMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSUTAgPSBaZXJvCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJUlEwID0gKE9uZSA8PCAoUENSQyAmIDB4MEYpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChSVExDKSAvKiBcX1NCXy5MTktDLl9DUlMuUlRM QyAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9TUlMsIDEsIFNlcmlhbGl6ZWQpICAvLyBfU1JTOiBTZXQgUmVzb3VyY2UgU2V0dGlu Z3MKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg Q3JlYXRlV29yZEZpZWxkIChBcmcwLCBPbmUsIElSUTApCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGaW5kU2V0UmlnaHRCaXQgKElSUTAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExvY2FsMC0tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ1JDID0gTG9jYWww CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBDUkMgJiAweDgwKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKExOS0QpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAw QzBGIikgLyogUENJIEludGVycnVwdCBMaW5rIERldmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJl IElECiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDQpICAvLyBfVUlEOiBV bmlxdWUgSUQKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBTZXJpYWxp emVkKSAgLy8gX0RJUzogRGlzYWJsZSBEZXZpY2UKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUERSQyB8PSAweDgwCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSUywgMCwgU2VyaWFs aXplZCkgIC8vIF9QUlM6IFBvc3NpYmxlIFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUFJTRCkgLyog XF9TQl8uUFJTRCAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJl c291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5hbWUgKFJUTEQsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUlEgKExl dmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoUlRMRCwgT25lLCBJUlEwKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSVJRMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIElS UTAgPSAoT25lIDw8IChQRFJDICYgMHgwRikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFJUTEQpIC8qIFxfU0JfLkxOS0QuX0NSUy5SVExEICovCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgU2VyaWFs aXplZCkgIC8vIF9TUlM6IFNldCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAs IE9uZSwgSVJRMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbmRTZXRSaWdodEJpdCAo SVJRMCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwLS0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBEUkMgPSBMb2NhbDAKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBTZXJpYWxpemVk KSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoUERSQyAmIDB4ODApKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIERldmljZSAoTE5LRSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYiKSAvKiBQQ0kgSW50ZXJydXB0 IExpbmsgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX1VJRCwgMHgwNSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfRElTOiBEaXNhYmxl IERldmljZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQRVJDIHw9IDB4ODAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BSUzogUG9zc2li bGUgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChQUlNFKSAvKiBcX1NCXy5QUlNFICovCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywg MCwgU2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoUlRM RSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVk LCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZp ZWxkIChSVExFLCBPbmUsIElSUTApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUlEwID0g WmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgSVJRMCA9IChPbmUgPDwgKFBFUkMgJiAw eDBGKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUlRMRSkgLyogXF9TQl8u TE5LRS5fQ1JTLlJUTEUgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBTZXJpYWxpemVkKSAgLy8gX1NSUzogU2V0IFJl c291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgT25lLCBJUlEwKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChJUlEwLCBMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDAtLQogICAgICAgICAgICAgICAgICAgICAgICAgICAg UEVSQyA9IExvY2FsMAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQ RVJDICYgMHg4MCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwQikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChMTktGKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwg RWlzYUlkICgiUE5QMEMwRiIpIC8qIFBDSSBJbnRlcnJ1cHQgTGluayBEZXZpY2UgKi8pICAvLyBf SElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDA2 KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJ UywgMCwgU2VyaWFsaXplZCkgIC8vIF9ESVM6IERpc2FibGUgRGV2aWNlCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGUkMgfD0gMHg4MAogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9Q UlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFJTOiBQb3NzaWJsZSBSZXNvdXJjZSBTZXR0aW5ncwog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFBSU0YpIC8qIFxfU0JfLlBSU0YgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0NS UzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChSVExGLCBSZXNvdXJjZVRlbXBsYXRlICgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAge30KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFJUTEYsIE9uZSwgSVJRMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSUTAgPSBaZXJvCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJUlEwID0gKE9uZSA8PCAoUEZSQyAmIDB4MEYpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChSVExGKSAvKiBcX1NCXy5MTktGLl9DUlMuUlRMRiAqLwogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9T UlMsIDEsIFNlcmlhbGl6ZWQpICAvLyBfU1JTOiBTZXQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29y ZEZpZWxkIChBcmcwLCBPbmUsIElSUTApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaW5k U2V0UmlnaHRCaXQgKElSUTAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMC0tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQRlJDID0gTG9jYWwwCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwg MCwgU2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBGUkMgJiAweDgwKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKDB4MDkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKExOS0cpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBGIikgLyog UENJIEludGVycnVwdCBMaW5rIERldmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAg ICAgICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDcpICAvLyBfVUlEOiBVbmlxdWUgSUQK ICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBTZXJpYWxpemVkKSAgLy8g X0RJUzogRGlzYWJsZSBEZXZpY2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUEdSQyB8PSAweDgwCiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSUywgMCwgU2VyaWFsaXplZCkgIC8v IF9QUlM6IFBvc3NpYmxlIFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUFJTRykgLyogXF9TQl8uUFJT RyAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNl dHRpbmdzCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5hbWUgKFJUTEcsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUlEgKExldmVsLCBBY3Rp dmVMb3csIFNoYXJlZCwgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7fQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IENyZWF0ZVdvcmRGaWVsZCAoUlRMRywgT25lLCBJUlEwKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSVJRMCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSUTAgPSAoT25l IDw8IChQR1JDICYgMHgwRikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJU TEcpIC8qIFxfU0JfLkxOS0cuX0NSUy5SVExHICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgU2VyaWFsaXplZCkgIC8v IF9TUlM6IFNldCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAsIE9uZSwgSVJR MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbmRTZXRSaWdodEJpdCAoSVJRMCwgTG9j YWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwLS0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBHUkMgPSBMb2NhbDAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBTZXJpYWxpemVkKSAgLy8gX1NU QTogU3RhdHVzCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoUEdSQyAmIDB4ODApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIERl dmljZSAoTE5LSCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYiKSAvKiBQQ0kgSW50ZXJydXB0IExpbmsgRGV2 aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX1VJRCwgMHgwOCkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9ESVMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfRElTOiBEaXNhYmxlIERldmljZQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQSFJD IHw9IDB4ODAKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfUFJTLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BSUzogUG9zc2libGUgUmVzb3Vy Y2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChQUlNIKSAvKiBcX1NCXy5QUlNIICovCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFs aXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoUlRMSCwgUmVzb3Vy Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCApCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChSVExI LCBPbmUsIElSUTApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUlEwID0gWmVybwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSVJRMCA9IChPbmUgPDwgKFBIUkMgJiAweDBGKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUlRMSCkgLyogXF9TQl8uTE5LSC5fQ1JT LlJUTEggKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfU1JTLCAxLCBTZXJpYWxpemVkKSAgLy8gX1NSUzogU2V0IFJlc291cmNlIFNl dHRpbmdzCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgT25lLCBJUlEwKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChJUlEwLCBMb2NhbDApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDAtLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhSQyA9IExv Y2FsMAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChQSFJDICYgMHg4 MCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwQikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBPcGVyYXRpb25S ZWdpb24gKExQQzAsIFBDSV9Db25maWcsIFplcm8sIDB4QzApCiAgICAgICAgICAgICAgICBGaWVs ZCAoTFBDMCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwOCksIAogICAgICAgICAgICAgICAgICAgIFNSSUQs ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDgwKSwgCiAgICAgICAgICAgICAg ICAgICAgQzFFTiwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4ODQpCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChGV0hEKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIklOVDA4MDAiKSAv KiBJbnRlbCA4MjgwMiBGaXJtd2FyZSBIdWIgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUg SUQKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpICAv LyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkT25seSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4RkYwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3Mg TGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKElQSUMpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5Q MDAwMCIpIC8qIDgyNTktY29tcGF0aWJsZSBQcm9ncmFtbWFibGUgSW50ZXJydXB0IENvbnRyb2xs ZXIgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9D UlMsIFJlc291cmNlVGVtcGxhdGUgKCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGlu Z3MKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNv ZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCwgICAgICAgICAgICAgLy8g UmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwLCAgICAgICAg ICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAg ICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkK ICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMDI0LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwMjQsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0 aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJ TyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjgsICAgICAgICAg ICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyOCwg ICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAyQywgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJDLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhp bXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFs aWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAv LyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAg ICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwLCAg ICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMzAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwMzQsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmlt dW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNCwgICAgICAgICAgICAgLy8gUmFu Z2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAg ICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAg ICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg ICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAzOCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDM4LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNDLCAgICAgICAgICAgICAvLyBSYW5n ZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0MsICAgICAgICAgICAg IC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAg ICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAg ICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAg ICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwQTAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDBBMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChE ZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBBNCwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEE0LCAgICAg ICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAx LCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMEE4LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwQTgsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25t ZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExl bmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAg ICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQUMsICAgICAg ICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBB QywgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDBCMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEIwLCAgICAgICAgICAgICAvLyBSYW5nZSBN YXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v IEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAg ICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg ICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEI0 LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwQjQsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQjgsICAgICAgICAgICAgIC8vIFJhbmdlIE1p bmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBCOCwgICAgICAgICAgICAgLy8g UmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAg ICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAg ICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAg ICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDBCQywgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMEJDLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29k ZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNEQwLCAgICAgICAgICAgICAvLyBS YW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0RDAsICAgICAgICAg ICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAg ICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAy LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQog ICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7Mn0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIERldmljZSAoTERSQykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzAyIikgLyogUE5QIE1vdGhlcmJvYXJk IFJlc291cmNlcyAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICAgICAg TmFtZSAoX1VJRCwgMHgwMikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgICAg IE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3Vy Y2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyRSwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJF LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDRFLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNEUsICAgICAgICAgICAgIC8vIFJhbmdlIE1h eGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8g QWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAg IC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAg ICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjEs ICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDA2MSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MywgICAgICAgICAgICAgLy8gUmFuZ2UgTWlu aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYzLCAgICAgICAgICAgICAvLyBS YW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAg ICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAg ICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg ICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMDY1LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwNjUsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2Rl MTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjcsICAgICAgICAgICAgIC8vIFJh bmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NywgICAgICAgICAg ICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAg ICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEs ICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAg ICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDA3MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMDcwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8g KERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwLCAgICAgICAgICAg ICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAsICAg ICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDEwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwOTIsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11 bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGln bm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8g TGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAg ICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBCMiwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MEIyLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwNjgwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVt CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2ODAsICAgICAgICAgICAgIC8vIFJhbmdl IE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAg Ly8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwLCAgICAgICAgICAg ICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg ICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0 MDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDQwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4ODAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUwMCwgICAgICAgICAgICAgLy8gUmFuZ2Ug TWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNTAwLCAgICAgICAgICAgICAv LyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAg ICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgICAg ICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwNjAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDA2MDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDIwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVj b2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2NEUsICAgICAgICAgICAgIC8v IFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTY0RSwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwg ICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAp CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBEZXZpY2UgKFRJTVIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX0hJRCwgRWlzYUlkICgiUE5QMDEwMCIpIC8qIFBDLWNsYXNzIFN5c3RlbSBUaW1lciAqLykg IC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVz b3VyY2VUZW1wbGF0ZSAoKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwLCAgICAgICAgICAgICAvLyBSYW5nZSBN aW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAsICAgICAgICAgICAgIC8v IFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAg ICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAg ICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAg ICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwNTAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDA1MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDQsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElSUU5vRmxh Z3MgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHswfQogICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChJVVIzKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBO UDA1MDEiKSAvKiAxNjU1MEEtY29tcGF0aWJsZSBDT00gU2VyaWFsIFBvcnQgKi8pICAvLyBfSElE OiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8vIF9V SUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgU2VyaWFs aXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChVU0VMID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBVMUUgPT0gT25lKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVSTNF ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUk0RSA9IE9uZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEMxRU4gPSBPbmUKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X0RJUywgMCwgU2VyaWFsaXplZCkgIC8vIF9ESVM6IERpc2FibGUgRGV2aWNlCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBVSTNFID0gWmVybwogICAgICAgICAg ICAgICAgICAgICAgICBVSTRFID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBDMUVOID0g WmVybwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf Q1JTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlVGMCwg UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwM0Y4LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwM0Y4LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGln bm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAgICAgICAg IC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7M30KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg ICAgTmFtZSAoQlVGMSwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwM0Y4LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVt CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0Y4LCAgICAgICAgICAgICAvLyBS YW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAg ICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4 LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7NH0KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChTUklEIDw9IDB4MDQpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRjApIC8qIFxfU0Jf LlBDSTAuTFBDQi5JVVIzLl9DUlMuQlVGMCAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCVUYxKSAvKiBcX1NCXy5QQ0kwLkxQQ0Iu SVVSMy5fQ1JTLkJVRjEgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdp b24gKFBLQlMsIFN5c3RlbUlPLCAweDYwLCAweDA1KQogICAgICAgICAgICAgICAgRmllbGQgKFBL QlMsIEJ5dGVBY2MsIExvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFBLQkQsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDAyKSwg CiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDAzKSwgCiAgICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweDA0KSwgCiAgICAgICAgICAgICAgICAgICAgUEtCQywgICA4CiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChQUzJLKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDAzMDMiKSAvKiBJQk0g RW5oYW5jZWQgS2V5Ym9hcmQgKDEwMS8xMDIta2V5LCBQUy8yIE1vdXNlKSAqLykgIC8vIF9ISUQ6 IEhhcmR3YXJlIElECiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKChQS0JEID09IDB4RkYpICYgKFBLQkMgPT0gMHhGRikpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3Vy Y2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MCwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYw LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDY0LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjQsICAgICAgICAgICAgIC8vIFJhbmdlIE1h eGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8g QWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAg IC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAg ICAgICAgICBJUlEgKEVkZ2UsIEFjdGl2ZUhpZ2gsIEV4Y2x1c2l2ZSwgKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgezF9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICBOYW1lIChfUFJTLCBSZXNvdXJjZVRlbXBsYXRlICgpICAvLyBfUFJTOiBQb3NzaWJsZSBS ZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgU3RhcnREZXBlbmRlbnRGbiAoMHgwMCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRml4ZWRJTyAoCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDYwLCAgICAgICAgICAgICAvLyBBZGRyZXNzCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGaXhlZElPICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjQsICAgICAg ICAgICAgIC8vIEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAg ICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7MX0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICBFbmREZXBlbmRlbnRGbiAoKQogICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChQUzJNKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBGMTMi KSAvKiBQUy8yIE1vdXNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKFBLQkQgPT0g MHhGRikgJiAoUEtCQyA9PSAweEZGKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0 ZSAoKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSVJRIChFZGdlLCBBY3RpdmVIaWdoLCBFeGNs dXNpdmUsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsxMn0KICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9QUlMsIFJlc291cmNlVGVtcGxhdGUg KCkgIC8vIF9QUlM6IFBvc3NpYmxlIFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdGFydERlcGVuZGVudEZuICgweDAwLCAweDAw KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ UlFOb0ZsYWdzICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgezEyfQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVuZERlcGVuZGVudEZu ICgpCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg fQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXCkKICAgIHsKICAgICAgICBPcGVyYXRpb25S ZWdpb24gKFBNSU8sIFN5c3RlbUlPLCBQTUJTLCAweDQ2KQogICAgICAgIEZpZWxkIChQTUlPLCBC eXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgT2Zmc2V0ICgw eDAxKSwgCiAgICAgICAgICAgIFBXQlMsICAgMSwgCiAgICAgICAgICAgIE9mZnNldCAoMHgyMCks IAogICAgICAgICAgICAgICAgLCAgIDEzLCAKICAgICAgICAgICAgUE1FQiwgICAxLCAKICAgICAg ICAgICAgT2Zmc2V0ICgweDMwKSwgCiAgICAgICAgICAgICAgICAsICAgNCwgCiAgICAgICAgICAg IFNMUEUsICAgMSwgCiAgICAgICAgICAgIE9mZnNldCAoMHgzNCksIAogICAgICAgICAgICAgICAg LCAgIDQsIAogICAgICAgICAgICBTTFBTLCAgIDEsIAogICAgICAgICAgICBPZmZzZXQgKDB4MzUp LCAKICAgICAgICAgICAgUE0xUywgICAxLCAKICAgICAgICAgICAgT2Zmc2V0ICgweDQyKSwgCiAg ICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgIEdQRUMsICAgMQogICAgICAgIH0KCiAg ICAgICAgRmllbGQgKFBNSU8sIEJ5dGVBY2MsIE5vTG9jaywgV3JpdGVBc1plcm9zKQogICAgICAg IHsKICAgICAgICAgICAgT2Zmc2V0ICgweDIwKSwgCiAgICAgICAgICAgICAgICAsICAgNCwgCiAg ICAgICAgICAgIFBTQ0ksICAgMSwgCiAgICAgICAgICAgIFNDSVMsICAgMQogICAgICAgIH0KCiAg ICAgICAgT3BlcmF0aW9uUmVnaW9uIChQTUNSLCBTeXN0ZW1NZW1vcnksIFBGRFIsIDB4MDQpCiAg ICAgICAgRmllbGQgKFBNQ1IsIERXb3JkQWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAg ICAgICAgICAgIEwxMEQsICAgMSwgCiAgICAgICAgICAgIEwxMUQsICAgMSwgCiAgICAgICAgICAg IEwxMkQsICAgMSwgCiAgICAgICAgICAgIEwxM0QsICAgMSwgCiAgICAgICAgICAgIEwxNEQsICAg MSwgCiAgICAgICAgICAgIEwxNUQsICAgMSwgCiAgICAgICAgICAgIE9mZnNldCAoMHgwMSksIAog ICAgICAgICAgICBTRDFELCAgIDEsIAogICAgICAgICAgICBTRDJELCAgIDEsIAogICAgICAgICAg ICBTRDNELCAgIDEsIAogICAgICAgICAgICBIU0lELCAgIDEsIAogICAgICAgICAgICAgICAgLCAg IDEsIAogICAgICAgICAgICBMUEVELCAgIDEsIAogICAgICAgICAgICBPVEdELCAgIDEsIAogICAg ICAgICAgICBPZmZzZXQgKDB4MDIpLCAKICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAg ICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgICwg ICAxLCAKICAgICAgICAgICAgUlAxRCwgICAxLCAKICAgICAgICAgICAgUlAyRCwgICAxLCAKICAg ICAgICAgICAgUlAzRCwgICAxLCAKICAgICAgICAgICAgUlA0RCwgICAxLCAKICAgICAgICAgICAg TDIwRCwgICAxLCAKICAgICAgICAgICAgTDIxRCwgICAxLCAKICAgICAgICAgICAgTDIyRCwgICAx LCAKICAgICAgICAgICAgTDIzRCwgICAxLCAKICAgICAgICAgICAgTDI0RCwgICAxLCAKICAgICAg ICAgICAgTDI1RCwgICAxLCAKICAgICAgICAgICAgTDI2RCwgICAxLCAKICAgICAgICAgICAgTDI3 RCwgICAxCiAgICAgICAgfQoKICAgICAgICBPcGVyYXRpb25SZWdpb24gKENMS0MsIFN5c3RlbU1l bW9yeSwgUENMSywgMHgxOCkKICAgICAgICBGaWVsZCAoQ0xLQywgRFdvcmRBY2MsIExvY2ssIFBy ZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgQ0tDMCwgICAyLCAKICAgICAgICAgICAgQ0tG MCwgICAxLCAKICAgICAgICAgICAgT2Zmc2V0ICgweDA0KSwgCiAgICAgICAgICAgIENLQzEsICAg MiwgCiAgICAgICAgICAgIENLRjEsICAgMSwgCiAgICAgICAgICAgIE9mZnNldCAoMHgwOCksIAog ICAgICAgICAgICBDS0MyLCAgIDIsIAogICAgICAgICAgICBDS0YyLCAgIDEsIAogICAgICAgICAg ICBPZmZzZXQgKDB4MEMpLCAKICAgICAgICAgICAgQ0tDMywgICAyLCAKICAgICAgICAgICAgQ0tG MywgICAxLCAKICAgICAgICAgICAgT2Zmc2V0ICgweDEwKSwgCiAgICAgICAgICAgIENLQzQsICAg MiwgCiAgICAgICAgICAgIENLRjQsICAgMSwgCiAgICAgICAgICAgIE9mZnNldCAoMHgxNCksIAog ICAgICAgICAgICBDS0M1LCAgIDIsIAogICAgICAgICAgICBDS0Y1LCAgIDEsIAogICAgICAgICAg ICBPZmZzZXQgKDB4MTgpCiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChfU0IpCiAgICB7CiAg ICAgICAgRGV2aWNlIChMUEVBKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVy bykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIjgwODYwRjI4IiAv KiBJbnRlbCBTU1QgQXVkaW8gRFNQICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAg ICAgTmFtZSAoX0NJRCwgIjgwODYwRjI4IiAvKiBJbnRlbCBTU1QgQXVkaW8gRFNQICovKSAgLy8g X0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICBOYW1lIChfREROLCAiSW50ZWwoUikgTG93 IFBvd2VyIEF1ZGlvIENvbnRyb2xsZXIgLSA4MDg2MEYyOCIpICAvLyBfREROOiBET1MgRGV2aWNl IE5hbWUKICAgICAgICAgICAgTmFtZSAoX1NVQiwgIjIyMUMxN0FBIikgIC8vIF9TVUI6IFN1YnN5 c3RlbSBJRAogICAgICAgICAgICBOYW1lIChfVUlELCBPbmUpICAvLyBfVUlEOiBVbmlxdWUgSUQK ICAgICAgICAgICAgTmFtZSAoX0RFUCwgUGFja2FnZSAoMHgwMikgIC8vIF9ERVA6IERlcGVuZGVu Y2llcwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJMkMyLCAKICAgICAgICAgICAgICAg IF5JMkMyLlJURTIKICAgICAgICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoX1BSMCwgUGFja2Fn ZSAoMHgwMSkgIC8vIF9QUjA6IFBvd2VyIFJlc291cmNlcyBmb3IgRDAKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgUExQRQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKF9T VEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgSWYgKCgoTFBFRSA9PSAweDAyKSAmJiAoTFBFRCA9PSBaZXJvKSkpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RJUzogRGlzYWJs ZSBEZXZpY2UKICAgICAgICAgICAgewogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChS QlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1l bW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweEZFNDAwMDAwLCAg ICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDAsICAg ICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICBfWTA0KQogICAgICAg ICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4 RkU4MzAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgMHgw MDAwMTAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgIF9Z MDUpCiAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAg ICAgICAgICAgMHg1NUFBNTVBQSwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAg ICAgICAgICAweDAwMTAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAg ICAgICAgICAgX1kwNikKICAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1l ciwgTGV2ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlLCAsLCApCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxOCwKICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxvdywgRXhj bHVzaXZlLCAsLCApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMDAw MDAxOSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3Vy Y2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlLCAsLCApCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxQSwKICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2 ZUxvdywgRXhjbHVzaXZlLCAsLCApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgMHgwMDAwMDAxQiwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEludGVycnVw dCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlLCAsLCApCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxQywKICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2 ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlLCAsLCApCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgMHgwMDAwMDAxRCwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IEdwaW9JbnQgKEVkZ2UsIEFjdGl2ZUJvdGgsIEV4Y2x1c2l2ZUFuZFdha2UsIFB1bGxOb25lLCAw eDAwMDAsCiAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQTzIiLCAweDAwLCBSZXNvdXJjZUNv bnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIHsgICAv LyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAweDAwMUMKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkJVRiwgXF9TQi5MUEVBLl9ZMDQu X0JBUywgQjBCQSkgIC8vIF9CQVM6IEJhc2UgQWRkcmVzcwogICAgICAgICAgICAgICAgQjBCQSA9 IExQRTAgLyogXExQRTAgKi8KICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJCVUYs IFxfU0IuTFBFQS5fWTA1Ll9CQVMsIEIxQkEpICAvLyBfQkFTOiBCYXNlIEFkZHJlc3MKICAgICAg ICAgICAgICAgIEIxQkEgPSBMUEUxIC8qIFxMUEUxICovCiAgICAgICAgICAgICAgICBDcmVhdGVE V29yZEZpZWxkIChSQlVGLCBcX1NCLkxQRUEuX1kwNi5fQkFTLCBCMkJBKSAgLy8gX0JBUzogQmFz ZSBBZGRyZXNzCiAgICAgICAgICAgICAgICBCMkJBID0gTFBFMiAvKiBcTFBFMiAqLwogICAgICAg ICAgICAgICAgUmV0dXJuIChSQlVGKSAvKiBcX1NCXy5MUEVBLlJCVUYgKi8KICAgICAgICAgICAg fQoKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChLRVlTLCBTeXN0ZW1NZW1vcnksIExQRTEs IDB4MDEwMCkKICAgICAgICAgICAgRmllbGQgKEtFWVMsIERXb3JkQWNjLCBOb0xvY2ssIFdyaXRl QXNaZXJvcykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDg0KSwgCiAg ICAgICAgICAgICAgICBQU0FULCAgIDMyCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFBvd2Vy UmVzb3VyY2UgKFBMUEUsIDB4MDUsIDB4MDAwMCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfT04sIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfT05fOiBQb3dlciBPbgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBT QVQgJj0gMHhGRkZGRkZGQwogICAgICAgICAgICAgICAgICAgIFBTQVQgfD0gWmVybwogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX09GRiwgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9PRkY6IFBvd2VyIE9mZgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFBTQVQgfD0gMHgwMwogICAgICAgICAgICAgICAgICAgIFBTQVQgfD0gWmVybwogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChfU0Iu UENJMCkKICAgIHsKICAgICAgICBEZXZpY2UgKFhIQzEpCiAgICAgICAgewogICAgICAgICAgICBO YW1lIChfQURSLCAweDAwMTQwMDAwKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICBOYW1l IChfREROLCAiQmF5dHJhaWwgWEhDSSBjb250cm9sbGVyIChDQ0cgY29yZS9Ib3N0IG9ubHkpIikg IC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICBOYW1lIChfREVQLCBQYWNrYWdl ICgweDAxKSAgLy8gX0RFUDogRGVwZW5kZW5jaWVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIFBFUEQKICAgICAgICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoX1NUUiwgVW5pY29kZSAo IkJheXRyYWlsIFhIQ0kgY29udHJvbGxlciAoQ0NHIGNvcmUvSG9zdCBvbmx5KSIpKSAgLy8gX1NU UjogRGVzY3JpcHRpb24gU3RyaW5nCiAgICAgICAgICAgIE5hbWUgKF9TMFcsIDB4MDMpICAvLyBf UzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAgICBOYW1lIChNU0VULCBaZXJvKQog ICAgICAgICAgICBOYW1lIChERFNULCBaZXJvKQogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24g KFBDU0wsIFN5c3RlbU1lbW9yeSwgMHhFMDBBMDA3NCwgT25lKQogICAgICAgICAgICBGaWVsZCAo UENTTCwgQnl0ZUFjYywgTm9Mb2NrLCBXcml0ZUFzWmVyb3MpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIFBNUFMsICAgMgogICAgICAgICAgICB9CgogICAgICAgICAgICBPcGVyYXRpb25S ZWdpb24gKFBDU0gsIFN5c3RlbU1lbW9yeSwgMHhFMDBBMDA3NSwgT25lKQogICAgICAgICAgICBG aWVsZCAoUENTSCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgUE1DSCwgICA4CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE9wZXJhdGlv blJlZ2lvbiAoWE1TRSwgU3lzdGVtTWVtb3J5LCAweEUwMEEwMDAwLCAweDAxMDApCiAgICAgICAg ICAgIEZpZWxkIChYTVNFLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwNCksIAogICAgICAgICAgICAgICAgICAgICwgICAx LCAKICAgICAgICAgICAgICAgIENNU0UsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 MTApLCAKICAgICAgICAgICAgICAgIEJBUjAsICAgMzIsIAogICAgICAgICAgICAgICAgT2Zmc2V0 ICgweDc0KSwgCiAgICAgICAgICAgICAgICBQTUNTLCAgIDE2LCAKICAgICAgICAgICAgICAgIE9m ZnNldCAoMHhCMCksIAogICAgICAgICAgICAgICAgICAgICwgICAxMywgCiAgICAgICAgICAgICAg ICBQSFkyLCAgIDIsIAogICAgICAgICAgICAgICAgICAgICwgICAxMywgCiAgICAgICAgICAgICAg ICBVU0hQLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAg IFNDRkcsICAgMQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFBXT0YsIDAsIFNl cmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFA4WEggKFplcm8sIDB4QUEp CiAgICAgICAgICAgICAgICBTQ0ZHID0gT25lCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l dGhvZCAoUFdPTiwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg UDhYSCAoWmVybywgMHhCQikKICAgICAgICAgICAgICAgIFNDRkcgPSBaZXJvCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoWFBSVCwgU3lzdGVtTWVtb3J5LCAoUEVC UyArIDB4MDAwQTAwMDApLCAweDAxMDApCiAgICAgICAgICAgIEZpZWxkIChYUFJULCBBbnlBY2Ms IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERWSUQsICAg MTYsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDc0KSwgCiAgICAgICAgICAgICAgICBEMEQz LCAgIDIsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDc1KSwgCiAgICAgICAgICAgICAgICBQ TUVFLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICwgICA2LCAKICAgICAgICAgICAgICAgIFBN RVMsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QjApLCAKICAgICAgICAgICAgICAg ICAgICAsICAgMTMsIAogICAgICAgICAgICAgICAgTUIxMywgICAxLCAKICAgICAgICAgICAgICAg IE1CMTQsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QjQpLCAKICAgICAgICAgICAg ICAgIE9mZnNldCAoMHhEMCksIAogICAgICAgICAgICAgICAgUFIyLCAgICAzMiwgCiAgICAgICAg ICAgICAgICBQUjJNLCAgIDMyLCAKICAgICAgICAgICAgICAgIFBSMywgICAgMzIsIAogICAgICAg ICAgICAgICAgUFIzTSwgICAzMgogICAgICAgICAgICB9CgogICAgICAgICAgICBPcGVyYXRpb25S ZWdpb24gKFhIQ1AsIFN5c3RlbU1lbW9yeSwgKFBFQlMgKyAweDAwMEEwMDAwKSwgMHgwMTAwKQog ICAgICAgICAgICBGaWVsZCAoWEhDUCwgQW55QWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA0KSwgCiAgICAgICAgICAgICAgICBQREJN LCAgIDE2LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxMCksIAogICAgICAgICAgICAgICAg TUVNQiwgICAzMgogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChQQ0hTLCBaZXJvKQog ICAgICAgICAgICBOYW1lIChTUk1CLCAweDkwODAwMDAwKQogICAgICAgICAgICBNZXRob2QgKF9Q UzAsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIEFEQkcgKCJYSEMgRDAiKQogICAgICAgICAgICAgICAgUDhYSCAoWmVy bywgMHhBMCkKICAgICAgICAgICAgICAgIElmICgoRFZJRCA9PSAweEZGRkYpKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBTUk1CID0gKE1FTUIgJiAweEZGRkZGRkYwKQogICAgICAgICAg ICAgICAgTG9jYWwyID0gTUVNQiAvKiBcX1NCXy5QQ0kwLlhIQzEuTUVNQiAqLwogICAgICAgICAg ICAgICAgTG9jYWwxID0gUERCTSAvKiBcX1NCXy5QQ0kwLlhIQzEuUERCTSAqLwogICAgICAgICAg ICAgICAgUERCTSAmPSAweEZGRkZGRkZGRkZGRkZGRjkKICAgICAgICAgICAgICAgIE1FTUIgPSBT Uk1CIC8qIFxfU0JfLlBDSTAuWEhDMS5TUk1CICovCiAgICAgICAgICAgICAgICBQREJNIHw9IDB4 MDIKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoTUNBMSwgU3lzdGVtTWVtb3J5LCBT Uk1CLCAweDkwMDApCiAgICAgICAgICAgICAgICBGaWVsZCAoTUNBMSwgRFdvcmRBY2MsIExvY2ss IFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHg1MTApLCAKICAgICAgICAgICAgICAgICAgICBSNTEwLCAgIDMyLCAKICAgICAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4NTIwKSwgCiAgICAgICAgICAgICAgICAgICAgUjUyMCwgICAzMiwgCiAg ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUzMCksIAogICAgICAgICAgICAgICAgICAgIFI1 MzAsICAgMzIsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1NDApLCAKICAgICAgICAg ICAgICAgICAgICBSNTQwLCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4ODA1 OCksIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4MDU5KSwgCiAgICAgICAgICAgICAg ICAgICAgQ0RFUywgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4ODA1QSksIAog ICAgICAgICAgICAgICAgICAgIFNUU1AsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwg ICAzLCAKICAgICAgICAgICAgICAgICAgICBDRkVDLCAgIDEsIAogICAgICAgICAgICAgICAgICAg IE9mZnNldCAoMHg4MDYwKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyNSwgCiAgICAg ICAgICAgICAgICAgICAgRVBSRSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 ODA5NCksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMTQsIAogICAgICAgICAgICAgICAg ICAgIENNTUYsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICA2LCAKICAgICAgICAg ICAgICAgICAgICBFU1NQLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgREFQQSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBPZmZzZXQg KDB4ODBFMCksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMTUsIAogICAgICAgICAgICAg ICAgICAgIEFYMTUsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDgwRkMpLCAK ICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDI1LCAKICAgICAgICAgICAgICAgICAgICBQUEwx LCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4MTEwKSwgCiAgICAgICAgICAg ICAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgICAgICBDUk5DLCAgIDEsIAogICAg ICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4MTExKSwgCiAgICAgICAgICAgICAgICAgICAgRVBU RCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAg ICAgIEhUUFAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICA4LCAKICAgICAgICAg ICAgICAgICAgICBUUk1DLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4MTQw KSwgCiAgICAgICAgICAgICAgICAgICAgTUlEUywgICAxMiwgCiAgICAgICAgICAgICAgICAgICAg QVdQQywgICAxMiwgCiAgICAgICAgICAgICAgICAgICAgRUlIUiwgICA4LCAKICAgICAgICAgICAg ICAgICAgICAgICAgLCAgIDYsIAogICAgICAgICAgICAgICAgICAgIFNTSUksICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgU1NJTywgICAxLCAKICAgICAgICAgICAgICAgICAgICBIU0lJLCAgIDEs IAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4MTU0KSwgCiAgICAgICAgICAgICAgICAg ICAgICAgICwgICAzMSwgCiAgICAgICAgICAgICAgICAgICAgQ0xLMiwgICAxLCAKICAgICAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4ODE2NCksIAogICAgICAgICAgICAgICAgICAgIEVUQkMsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgRVJCQywgICAxLCAKICAgICAgICAgICAgICAgICAgICBF U0FJLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEVUTUEsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgRU9BSSwgICAxLCAKICAgICAgICAgICAgICAgICAgICBFSUFJLCAgIDEsIAogICAgICAg ICAgICAgICAgICAgIFRURUEsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgRUNNQSwgICAxLCAK ICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4ODE2QyksIAogICAgICAgICAgICAgICAgICAg ICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgQ0xLMCwgICAxLCAKICAgICAgICAgICAg ICAgICAgICAgICAgLCAgIDExLCAKICAgICAgICAgICAgICAgICAgICBDTEsxLCAgIDEsIAogICAg ICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4MTg4KSwgCiAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDgxOEIpLCAKICAgICAgICAgICAgICAgICAgICBGSURELCAgIDEsIAogICAgICAgICAg ICAgICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgRlRTUywgICAxCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTG9jYWwzID0gRDBEMyAvKiBcX1NCXy5QQ0kw LlhIQzEuRDBEMyAqLwogICAgICAgICAgICAgICAgSWYgKChMb2NhbDMgPT0gMHgwMykpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRDBEMyA9IFplcm8KICAgICAgICAgICAg ICAgICAgICBTbGVlcCAoMHgwQSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJ ZiAoKFBDSFMgPT0gMHgwMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg TUIxMyA9IFplcm8KICAgICAgICAgICAgICAgICAgICBNQjE0ID0gWmVybwogICAgICAgICAgICAg ICAgICAgIENMSzAgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgQ0xLMSA9IFplcm8KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBDTEsyID0gT25lCiAgICAgICAgICAgICAgICBD REVTID0gT25lCiAgICAgICAgICAgICAgICBTVFNQID0gT25lCiAgICAgICAgICAgICAgICBDRkVD ID0gWmVybwogICAgICAgICAgICAgICAgRVBSRSA9IE9uZQogICAgICAgICAgICAgICAgREFQQSA9 IE9uZQogICAgICAgICAgICAgICAgRVNTUCA9IE9uZQogICAgICAgICAgICAgICAgQ01NRiA9IE9u ZQogICAgICAgICAgICAgICAgUFBMMSA9IE9uZQogICAgICAgICAgICAgICAgQ1JOQyA9IFplcm8K ICAgICAgICAgICAgICAgIEVQVEQgPSBaZXJvCiAgICAgICAgICAgICAgICBIVFBQID0gT25lCiAg ICAgICAgICAgICAgICBUUk1DID0gT25lCiAgICAgICAgICAgICAgICBNSURTID0gMHgzQwogICAg ICAgICAgICAgICAgQVdQQyA9IDB4MEYKICAgICAgICAgICAgICAgIEVJSFIgPSAweEZGCiAgICAg ICAgICAgICAgICBTU0lJID0gT25lCiAgICAgICAgICAgICAgICBTU0lPID0gT25lCiAgICAgICAg ICAgICAgICBIU0lJID0gT25lCiAgICAgICAgICAgICAgICBFUkJDID0gT25lCiAgICAgICAgICAg ICAgICBFVEJDID0gT25lCiAgICAgICAgICAgICAgICBFU0FJID0gT25lCiAgICAgICAgICAgICAg ICBFVE1BID0gT25lCiAgICAgICAgICAgICAgICBFT0FJID0gT25lCiAgICAgICAgICAgICAgICBF SUFJID0gT25lCiAgICAgICAgICAgICAgICBUVEVBID0gT25lCiAgICAgICAgICAgICAgICBFQ01B ID0gT25lCiAgICAgICAgICAgICAgICBGSUREID0gT25lCiAgICAgICAgICAgICAgICBGVFNTID0g T25lCiAgICAgICAgICAgICAgICBVU0hQID0gWmVybwogICAgICAgICAgICAgICAgSWYgKChQQ0hT ID09IDB4MDIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFdoaWxlICgo KCgoUjUxMCAmIDB4MDNGQikgPT0gMHgwMkUwKSB8fCAoKFI1MjAgJiAKICAgICAgICAgICAgICAg ICAgICAgICAgMHgwM0ZCKSA9PSAweDAyRTApKSB8fCAoKChSNTMwICYgMHgwM0ZCKSA9PSAweDAy RTApIHx8ICgoUjU0MCAmIAogICAgICAgICAgICAgICAgICAgICAgICAweDAzRkIpID09IDB4MDJF MCkpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0YWxs ICgweDMyKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWww ID0gUjUxMCAvKiBcX1NCXy5QQ0kwLlhIQzEuX1BTMC5SNTEwICovCiAgICAgICAgICAgICAgICAg ICAgSWYgKCgoTG9jYWwwICYgMHgwMDAyMDNGQikgPT0gMHgwMkEwKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFI1MTAgPSAoTG9jYWwwIHwgMHg4MDAwMDAw MCkKICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKCgoUjUxMCAmIDB4MDAxODAwMDApID09 IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdGFsbCAoMHgzMikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gKFI1MTAgJiAweEZGRkZGRkZGRkZGRkZGRkQpCiAgICAgICAg ICAgICAgICAgICAgICAgIFI1MTAgPSAoTG9jYWwwIHwgMHgwMEZFMDAwMCkKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFI1MjAgLyogXF9TQl8uUENJ MC5YSEMxLl9QUzAuUjUyMCAqLwogICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsMCAmIDB4 MDAwMjAzRkIpID09IDB4MDJBMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSNTIwID0gKExvY2FsMCB8IDB4ODAwMDAwMDApCiAgICAgICAgICAgICAgICAg ICAgICAgIFdoaWxlICgoKFI1MjAgJiAweDAwMTgwMDAwKSA9PSBaZXJvKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhbGwgKDB4MzIpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IChSNTIwICYgMHhGRkZGRkZGRkZGRkZGRkZEKQogICAgICAgICAgICAgICAgICAgICAgICBSNTIw ID0gKExvY2FsMCB8IDB4MDBGRTAwMDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBMb2NhbDAgPSBSNTMwIC8qIFxfU0JfLlBDSTAuWEhDMS5fUFMwLlI1MzAgKi8K ICAgICAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDAgJiAweDAwMDIwM0ZCKSA9PSAweDAyQTAp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUjUzMCA9IChM b2NhbDAgfCAweDgwMDAwMDAwKQogICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKChSNTMw ICYgMHgwMDE4MDAwMCkgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0YWxsICgweDMyKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoUjUzMCAmIDB4RkZGRkZGRkZG RkZGRkZGRCkKICAgICAgICAgICAgICAgICAgICAgICAgUjUzMCA9IChMb2NhbDAgfCAweDAwRkUw MDAwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g UjU0MCAvKiBcX1NCXy5QQ0kwLlhIQzEuX1BTMC5SNTQwICovCiAgICAgICAgICAgICAgICAgICAg SWYgKCgoTG9jYWwwICYgMHgwMDAyMDNGQikgPT0gMHgwMkEwKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFI1NDAgPSAoTG9jYWwwIHwgMHg4MDAwMDAwMCkK ICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKCgoUjU0MCAmIDB4MDAxODAwMDApID09IFpl cm8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdGFsbCAoMHgzMikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgTG9jYWwwID0gKFI1NDAgJiAweEZGRkZGRkZGRkZGRkZGRkQpCiAgICAgICAgICAg ICAgICAgICAgICAgIFI1NDAgPSAoTG9jYWwwIHwgMHgwMEZFMDAwMCkKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIEFYMTUgPSBPbmUKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMyA9PSAweDAzKSkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBBREJHICgiUFMwLT5EMyIpCiAgICAgICAgICAgICAgICAgICAg UDhYSCAoWmVybywgMHhBMSkKICAgICAgICAgICAgICAgICAgICBEMEQzID0gMHgwMwogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFA4WEggKFplcm8sIDB4QTIpCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgUERCTSAmPSAweEZGRkZGRkZGRkZGRkZGRkQKICAgICAgICAgICAgICAgIE1FTUIg PSBMb2NhbDIKICAgICAgICAgICAgICAgIFBEQk0gPSBMb2NhbDEKICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3Rh dGUgMwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBREJHICgiWEhDIEQzIikKICAgICAg ICAgICAgICAgIFA4WEggKFplcm8sIDB4QjApCiAgICAgICAgICAgICAgICBJZiAoKERWSUQgPT0g MHhGRkZGKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgU1JNQiA9IChNRU1CICYgMHhG RkZGRkZGMCkKICAgICAgICAgICAgICAgIExvY2FsMiA9IE1FTUIgLyogXF9TQl8uUENJMC5YSEMx Lk1FTUIgKi8KICAgICAgICAgICAgICAgIExvY2FsMSA9IFBEQk0gLyogXF9TQl8uUENJMC5YSEMx LlBEQk0gKi8KICAgICAgICAgICAgICAgIFBEQk0gJj0gMHhGRkZGRkZGRkZGRkZGRkY5CiAgICAg ICAgICAgICAgICBNRU1CID0gU1JNQiAvKiBcX1NCXy5QQ0kwLlhIQzEuU1JNQiAqLwogICAgICAg ICAgICAgICAgUERCTSB8PSAweDAyCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKE1D QTEsIFN5c3RlbU1lbW9yeSwgU1JNQiwgMHg5MDAwKQogICAgICAgICAgICAgICAgRmllbGQgKE1D QTEsIERXb3JkQWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4ODBFMCksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAg MTUsIAogICAgICAgICAgICAgICAgICAgIEFYMTUsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweDgxNTQpLCAKICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDMxLCAKICAgICAg ICAgICAgICAgICAgICBDTEsyLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4 MTZDKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAg ICBDTEswLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMTEsIAogICAgICAgICAg ICAgICAgICAgIENMSzEsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDgxNzAp CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTG9jYWwzID0gRDBEMyAvKiBcX1NC Xy5QQ0kwLlhIQzEuRDBEMyAqLwogICAgICAgICAgICAgICAgSWYgKChMb2NhbDMgPT0gMHgwMykp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRDBEMyA9IFplcm8KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKFBDSFMgPT0gMHgwMikpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTUIxMyA9IE9uZQogICAgICAgICAgICAgICAg ICAgIE1CMTQgPSBPbmUKICAgICAgICAgICAgICAgICAgICBDTEswID0gT25lCiAgICAgICAgICAg ICAgICAgICAgQ0xLMSA9IE9uZQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIENM SzIgPSBaZXJvCiAgICAgICAgICAgICAgICBJZiAoKFBDSFMgPT0gMHgwMikpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgQVgxNSA9IFplcm8KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBJZiAoKFBNRUUgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBVU0hQID0gT25lCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgSWYgKChMb2NhbDMgPT0gMHgwMykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgQURCRyAoIlBTMy0+RDMiKQogICAgICAgICAgICAgICAgICAgIFA4WEggKFplcm8s IDB4QjEpCiAgICAgICAgICAgICAgICAgICAgRDBEMyA9IDB4MDMKICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBQOFhIIChaZXJvLCAweEIyKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFBE Qk0gJj0gMHhGRkZGRkZGRkZGRkZGRkZECiAgICAgICAgICAgICAgICBNRU1CID0gTG9jYWwyCiAg ICAgICAgICAgICAgICBQREJNID0gTG9jYWwxCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l dGhvZCAoX0RTVywgMywgTm90U2VyaWFsaXplZCkgIC8vIF9EU1c6IERldmljZSBTbGVlcCBXYWtl CiAgICAgICAgICAgIHsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUk1WLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX1JNVjogUmVtb3ZhbCBTdGF0dXMKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CgogICAgICAgICAgICBN ZXRob2QgKF9QUjMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFIzOiBQb3dlciBSZXNvdXJjZXMg Zm9yIEQzaG90CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAo MHgwMSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBVU0JDCiAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgSWYgKChYSENJICE9IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoUkhVQikKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFk ZHJlc3MKICAgICAgICAgICAgICAgIERldmljZSAoU1NQMSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA3KSAgLy8gX0FEUjogQWRkcmVzcwogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1VQQywgMCwgU2VyaWFsaXplZCkgIC8vIF9VUEM6IFVT QiBQb3J0IENhcGFiaWxpdGllcwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgTmFtZSAoVVBDUCwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDA2LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFVQQ1ApIC8qIFxfU0JfLlBDSTAuWEhDMS5S SFVCLlNTUDEuX1VQQy5VUENQICovCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQaHlzaWNhbCBM b2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIE5hbWUgKFBMRFAsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgxNCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAw ICovICAweDgyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLyog Li4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAw eDRCLCAweDE5LCAweDAwLCAweDAwLCAweDAzLCAweDAwLCAweDAwLCAweDAwLCAgLyogSy4uLi4u Li4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweEZGLCAw eEZGLCAweEZGLCAweEZGICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLi4uLiAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBMRFApIC8qIFxfU0JfLlBDSTAuWEhDMS5SSFVC LlNTUDEuX1BMRC5QTERQICovCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3Bl Y2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiRFNNMTEiKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9V VUlEICgiY2UyZWUzODUtMDBlNi00OGNiLTlmMDUtMmVkYjkyN2M0ODk5IikgLyogVVNCIENvbnRy b2xsZXIgKi8pKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBREJHICgiRFNNMTIiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcxID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJEU00xMyIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIlNTUDEgUVVF UlkiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWJ1ZyA9ICJNZXRob2Qg X0RTTSBGdW5jdGlvbiBRdWVyeSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBREJHICgiU1NQMSBEU00iKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBEZWJ1ZyA9ICJNZXRob2QgX0RTTSBGdW5jdGlvbiBJbmRleDIiCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgRGV2aWNlIChIUzAxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IE5hbWUgKF9BRFIsIE9uZSkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9VUEMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfVVBDOiBVU0IgUG9ydCBDYXBhYmlsaXRp ZXMKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFVQ Q1AsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChVUENQKSAvKiBcX1NCXy5QQ0kwLlhIQzEuUkhVQi5IUzAxLl9VUEMuVVBD UCAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf UExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNl CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChQTERQ LCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBCdWZmZXIgKDB4MTQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHg4MiwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8qIC4uLi4uLi4uICovCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHg0QiwgMHgxOSwgMHgwMCwg MHgwMCwgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgIC8qIEsuLi4uLi4uICovCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChQTERQKSAvKiBcX1NCXy5QQ0kwLlhIQzEuUkhVQi5IUzAxLl9QTEQuUExEUCAq LwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRFNN LCA0LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkRTTTIxIikK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImNlMmVlMzg1LTAw ZTYtNDhjYi05ZjA1LTJlZGI5MjdjNDg5OSIpIC8qIFVTQiBDb250cm9sbGVyICovKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkRT TTIyIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBaZXJvKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBREJHICgiRFNNMjMiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJn MiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJIUzAxIFFVRVJZIikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRGVidWcgPSAiTWV0aG9kIF9EU00gRnVuY3Rpb24gUXVl cnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChP bmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo IkhTMDEgRFNNIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVidWcgPSAi TWV0aG9kIF9EU00gRnVuY3Rpb24gSW5kZXgyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoSFMw MikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAy KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1VQQywgMCwg U2VyaWFsaXplZCkgIC8vIF9VUEM6IFVTQiBQb3J0IENhcGFiaWxpdGllcwogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoVVBDUCwgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChVUENS LCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQkRJRCA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVUENSKSAvKiBcX1NCXy5QQ0kwLlhIQzEuUkhV Qi5IUzAyLl9VUEMuVVBDUiAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChVUENQKSAvKiBcX1NCXy5QQ0kwLlhIQzEuUkhVQi5IUzAy Ll9VUEMuVVBDUCAqLwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAv LyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFBMRFAsIFBhY2thZ2UgKDB4MDEpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlciAo MHgxNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiAwMDAwICovICAweDgyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiAwMDA4ICovICAweDQzLCAweDA4LCAweDAwLCAweDAwLCAweDAzLCAweDAwLCAweDAw LCAweDAwLCAgLyogQy4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiAwMDEwICovICAweEZGLCAweEZGLCAweEZGLCAweEZGICAgICAgICAgICAgICAgICAgICAgICAg ICAgLyogLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChQTERSLCBQYWNrYWdl ICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBCdWZmZXIgKDB4MTQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHg4MiwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHg0MSwgMHgwOCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8qIEEuLi4uLi4uICovCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogMDAxMCAqLyAgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIC4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChC RElEID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFBMRFIpIC8qIFxfU0JfLlBDSTAuWEhDMS5SSFVCLkhTMDIuX1BM RC5QTERSICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFBMRFApIC8qIFxfU0JfLlBDSTAuWEhDMS5SSFVCLkhTMDIuX1BMRC5QTERQ ICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU006 IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIEFEQkcgKCJEU00zMSIpCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QXJnMCA9PSBUb1VVSUQgKCJjZTJlZTM4NS0wMGU2LTQ4Y2ItOWYwNS0yZWRiOTI3YzQ4OTkiKSAv KiBVU0IgQ29udHJvbGxlciAqLykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFEQkcgKCJEU00zMiIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkRTTTMzIikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJH ICgiSFMwMiBRVUVSWSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlYnVn ID0gIk1ldGhvZCBfRFNNIEZ1bmN0aW9uIFF1ZXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw NSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4gKi8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9 PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJIUzAyIERTTSIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIERlYnVnID0gIk1ldGhvZCBfRFNNIEZ1bmN0aW9uIEluZGV4MiIK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBEZXZpY2UgKEhTMDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAg ICAgICAgICAgICBOYW1lIChfREVQLCBQYWNrYWdlICgweDAxKSAgLy8gX0RFUDogRGVwZW5kZW5j aWVzCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBHUE8yCiAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChQU1RTLCBaZXJv KQogICAgICAgICAgICAgICAgICAgIFBvd2VyUmVzb3VyY2UgKFdXUFIsIDB4MDAsIDB4MDAwMCkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ERVAs IFBhY2thZ2UgKDB4MDEpICAvLyBfREVQOiBEZXBlbmRlbmNpZXMKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgR1BPMgogICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChcX1NCLkdQTzIuQVZCTCA9PSBPbmUpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoXF9TQi5HUE8yLldXRDMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9PTiwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9PTl86IFBvd2VyIE9uCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUFNUUyA9PSBaZXJvKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFxf U0IuR1BPMi5BVkJMID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwMjAwKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLkdQTzIuV1dQMyA9IE9uZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHg1MCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXF9TQi5HUE8yLldXRDMgPSBPbmUKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUFNUUyA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfT0ZGLCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX09GRjogUG93ZXIgT2ZmCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoXF9TQi5HUE8yLkFWQkwgPT0gT25lKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcX1NCLkdQTzIuV1dEMyA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT bGVlcCAoMHgwQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLkdQTzIuV1dQ MyA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQU1RTID0gWmVybwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBOYW1lIChfUzBXLCAweDAyKSAg Ly8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUKICAgICAgICAgICAgICAgICAgICBOYW1lIChf UFIwLCBQYWNrYWdlICgweDAxKSAgLy8gX1BSMDogUG93ZXIgUmVzb3VyY2VzIGZvciBEMAogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgV1dQUgogICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1BSMiwgUGFja2FnZSAoMHgw MSkgIC8vIF9QUjI6IFBvd2VyIFJlc291cmNlcyBmb3IgRDIKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFdXUFIKICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9QUjMsIFBhY2thZ2UgKDB4MDEpICAvLyBfUFIzOiBQb3dl ciBSZXNvdXJjZXMgZm9yIEQzaG90CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBXV1BSCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9VUEMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfVVBDOiBVU0IgUG9ydCBDYXBhYmls aXRpZXMKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUg KFVQQ1AsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhG RiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChVUENQKSAvKiBcX1NCXy5QQ0kwLlhIQzEuUkhVQi5IUzAzLl9VUEMu VVBDUCAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfUExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2 aWNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChQ TERQLCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MTQpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHg4MiwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8qIC4uLi4uLi4uICovCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgzMCwgMHgwOCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8qIDAuLi4uLi4uICovCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHhGRiwgMHhGRiwgMHhGRiwgMHhG RiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4uLi4gKi8KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChQTERQKSAvKiBcX1NCXy5QQ0kwLlhIQzEuUkhVQi5IUzAzLl9QTEQuUExE UCAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf RFNNLCA0LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkRTTTQx IikKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImNlMmVlMzg1 LTAwZTYtNDhjYi05ZjA1LTJlZGI5MjdjNDg5OSIpIC8qIFVTQiBDb250cm9sbGVyICovKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAo IkRTTTQyIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBaZXJvKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBREJHICgiRFNNNDMiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgo QXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJIUzAzIFFVRVJZIikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVidWcgPSAiTWV0aG9kIF9EU00gRnVuY3Rpb24g UXVlcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVy IChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDIpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoIkhTMDMgRFNNIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVidWcg PSAiTWV0aG9kIF9EU00gRnVuY3Rpb24gSW5kZXgyIgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKE1PRE0pCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAzKSAg Ly8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfUFIwLCBQYWNr YWdlICgweDAxKSAgLy8gX1BSMDogUG93ZXIgUmVzb3VyY2VzIGZvciBEMAogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXV1BSCiAgICAgICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9QUjIsIFBhY2th Z2UgKDB4MDEpICAvLyBfUFIyOiBQb3dlciBSZXNvdXJjZXMgZm9yIEQyCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdXUFIKICAgICAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1BSMywgUGFja2Fn ZSAoMHgwMSkgIC8vIF9QUjM6IFBvd2VyIFJlc291cmNlcyBmb3IgRDNob3QKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgV1dQUgogICAgICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBEZXZpY2UgKEhTMDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwNCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKF9VUEMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfVVBDOiBVU0IgUG9y dCBDYXBhYmlsaXRpZXMKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIE5hbWUgKFVQQ1AsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChVUENQKSAvKiBcX1NCXy5QQ0kwLlhIQzEuUkhVQi5I UzA0Ll9VUEMuVVBDUCAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfUExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRp b24gb2YgRGV2aWNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBOYW1lIChQTERQLCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MTQpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAg MHg4MiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8qIC4uLi4u Li4uICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgzMCwg MHgwOCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8qIDAuLi4uLi4uICov CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHhGRiwgMHhGRiwg MHhGRiwgMHhGRiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4uLi4gKi8KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQTERQKSAvKiBcX1NCXy5QQ0kwLlhIQzEuUkhVQi5IUzA0 Ll9QTEQuUExEUCAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfRFNNLCA0LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmlj IE1ldGhvZAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQURC RyAoIkRTTTUxIikKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAo ImNlMmVlMzg1LTAwZTYtNDhjYi05ZjA1LTJlZGI5MjdjNDg5OSIpIC8qIFVTQiBDb250cm9sbGVy ICovKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQURCRyAoIkRTTTUyIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9 PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBREJHICgiRFNNNTMiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJIUzA0IFFVRVJZIikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVidWcgPSAiTWV0aG9kIF9EU00g RnVuY3Rpb24gUXVlcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA1ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDIpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoIkhTMDQgRFNNIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRGVidWcgPSAiTWV0aG9kIF9EU00gRnVuY3Rpb24gSW5kZXgyIgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IERldmljZSAoSFNDMSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1l IChfQURSLCAweDA1KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1VQQywgMCwgU2VyaWFsaXplZCkgIC8vIF9VUEM6IFVTQiBQb3J0IENhcGFiaWxpdGllcwog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoVVBDUCwg UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFVQQ1ApIC8qIFxfU0JfLlBDSTAuWEhDMS5SSFVCLkhTQzEuX1VQQy5VUENQICov CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QTEQs IDAsIFNlcmlhbGl6ZWQpICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFBMRFAsIFBh Y2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEJ1ZmZlciAoMHgxNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDgyLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDMwLCAweDA4LCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLyogMC4uLi4uLi4gKi8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweEZGLCAweEZGLCAweEZGLCAweEZGICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBMRFApIC8qIFxfU0JfLlBDSTAuWEhDMS5SSFVCLkhTQzEuX1BMRC5QTERQICovCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQs IE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiRFNNNjEiKQogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiY2UyZWUzODUtMDBlNi00 OGNiLTlmMDUtMmVkYjkyN2M0ODk5IikgLyogVVNCIENvbnRyb2xsZXIgKi8pKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiRFNNNjIi KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IFplcm8pKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFE QkcgKCJEU002MyIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09 IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkhTSUMxIFFVRVJZIikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRGVidWcgPSAiTWV0aG9kIF9EU00gRnVuY3Rpb24gUXVlcnki CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDA1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkhT SUMxIERTTSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlYnVnID0gIk1l dGhvZCBfRFNNIEZ1bmN0aW9uIEluZGV4MiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoSFNDMikK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA2KSAg Ly8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1VQQywgMCwgU2Vy aWFsaXplZCkgIC8vIF9VUEM6IFVTQiBQb3J0IENhcGFiaWxpdGllcwogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoVVBDUCwgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhG RiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFVQQ1Ap IC8qIFxfU0JfLlBDSTAuWEhDMS5SSFVCLkhTQzIuX1VQQy5VUENQICovCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQp ICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFBMRFAsIFBhY2thZ2UgKDB4MDEpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZl ciAoMHgxNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiAwMDAwICovICAweDgyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiAwMDA4ICovICAweDMwLCAweDA4LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAgLyogMC4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiAwMDEwICovICAweEZGLCAweEZGLCAweEZGLCAweEZGICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBMRFApIC8q IFxfU0JfLlBDSTAuWEhDMS5SSFVCLkhTQzIuX1BMRC5QTERQICovCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiRFNNNzEiKQogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiY2UyZWUzODUtMDBlNi00OGNiLTlmMDUtMmVkYjky N2M0ODk5IikgLyogVVNCIENvbnRyb2xsZXIgKi8pKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiRFNNNzIiKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcxID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJEU003MyIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IFplcm8pKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQURCRyAoIkhTSUMyIFFVRVJZIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRGVidWcgPSAiTWV0aG9kIF9EU00gRnVuY3Rpb24gUXVlcnkiCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDA1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcyID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQURCRyAoIkhTSUMyIERTTSBjYWxsZWQi KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWJ1ZyA9ICJNZXRob2QgX0RT TSBGdW5jdGlvbiBJbmRleDIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNl IChPVEcxKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDE2MDAwMCkgIC8v IF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgTmFtZSAoX0RETiwgIkJheXRyYWlsIFhIQ0kgY29u dHJvbGxlciAoU3lub3BzeXMgY29yZS9PVEcpIikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQog ICAgICAgICAgICBOYW1lIChfU1RSLCBVbmljb2RlICgiQmF5dHJhaWwgWEhDSSBjb250cm9sbGVy IChTeW5vcHN5cyBjb3JlL09URykiKSkgIC8vIF9TVFI6IERlc2NyaXB0aW9uIFN0cmluZwogICAg ICAgICAgICBOYW1lIChfUzBXLCAweDAzKSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUK ICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQTUVCLCBQQ0lfQ29uZmlnLCAweDg0LCAweDA0 KQogICAgICAgICAgICBGaWVsZCAoUE1FQiwgV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDAxKSwgCiAgICAgICAgICAgICAg ICBQTUVFLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICwgICA2LCAKICAgICAgICAgICAgICAg IFBNRVMsICAgMQogICAgICAgICAgICB9CgogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKEdF TlIsIFBDSV9Db25maWcsIDB4QTAsIDB4MTApCiAgICAgICAgICAgIEZpZWxkIChHRU5SLCBXb3Jk QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg LCAgIDE4LCAKICAgICAgICAgICAgICAgIENQTUUsICAgMSwgCiAgICAgICAgICAgICAgICBVMkVO LCAgIDEsIAogICAgICAgICAgICAgICAgVTNFTiwgICAxCiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE1ldGhvZCAoX1BTMywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRl IDMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ1BNRSA9IE9uZQogICAgICAgICAgICAg ICAgVTJFTiA9IE9uZQogICAgICAgICAgICAgICAgVTNFTiA9IE9uZQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dl ciBTdGF0ZSAwCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENQTUUgPSBaZXJvCiAgICAg ICAgICAgICAgICBVMkVOID0gWmVybwogICAgICAgICAgICAgICAgVTNFTiA9IFplcm8KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfRFNXLCAzLCBOb3RTZXJpYWxpemVkKSAgLy8g X0RTVzogRGV2aWNlIFNsZWVwIFdha2UKICAgICAgICAgICAgewogICAgICAgICAgICB9CgogICAg ICAgICAgICBNZXRob2QgKF9STVYsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUk1WOiBSZW1vdmFs IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BSMywgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9QUjM6IFBvd2VyIFJlc291cmNlcyBmb3IgRDNob3QKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFVTQkMKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKE9UR00gIT0gWmVybykpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAg IH0KCiAgICAgICAgU2NvcGUgKFxfU0IpCiAgICAgICAgewogICAgICAgICAgICBQb3dlclJlc291 cmNlIChVU0JDLCAweDAwLCAweDAwMDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1l dGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9PTiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9P Tl86IFBvd2VyIE9uCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChfT0ZGLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX09GRjogUG93ZXIg T2ZmCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAg ICAgICB9CgogICAgICAgIERldmljZSAoRUhDMSkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUg KF9BRFIsIDB4MDAxRDAwMDApICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgIE5hbWUgKF9E RVAsIFBhY2thZ2UgKDB4MDEpICAvLyBfREVQOiBEZXBlbmRlbmNpZXMKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgUEVQRAogICAgICAgICAgICB9KQogICAgICAgICAgICBPcGVyYXRpb25S ZWdpb24gKFBXS0UsIFBDSV9Db25maWcsIDB4NjIsIDB4MDQpCiAgICAgICAgICAgIEZpZWxkIChQ V0tFLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgIFBXVUMsICAgOAogICAgICAgICAgICB9 CgogICAgICAgICAgICBNZXRob2QgKF9QU1csIDEsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFNXOiBQ b3dlciBTdGF0ZSBXYWtlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChBcmcwKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBXVUMgPSBPbmVzCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgUFdVQyA9IFplcm8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgRGV2aWNlIChIVUJOKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBO YW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgRGV2aWNl IChQUjAxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIs IE9uZSkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVVBDLCBQ YWNrYWdlICgweDA0KSAgLy8gX1VQQzogVVNCIFBvcnQgQ2FwYWJpbGl0aWVzCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICBOYW1lIChfUExELCBQYWNrYWdlICgweDAxKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRp b24gb2YgRGV2aWNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBUb1BMRCAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfUmV2aXNpb24gICAgICAg PSAweDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfSWdub3JlQ29sb3IgICAgPSAw eDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfUmVkICAgICAgICAgICAgPSAweDAs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfR3JlZW4gICAgICAgICAgPSAweDAsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfQmx1ZSAgICAgICAgICAgPSAweDAsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQTERfV2lkdGggICAgICAgICAgPSAweDAsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQTERfSGVpZ2h0ICAgICAgICAgPSAweDAsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQTERfVXNlclZpc2libGUgICAgPSAweDAsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQTERfRG9jayAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQTERfTGlkICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQTERfUGFuZWwgICAgICAgICAgPSAiVU5LTk9XTiIsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQTERfVmVydGljYWxQb3NpdGlvbiA9ICJVUFBFUiIsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQTERfSG9yaXpvbnRhbFBvc2l0aW9uID0gIkxFRlQiLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUExEX1NoYXBlICAgICAgICAgID0gIlVOS05PV04iLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUExEX0dyb3VwT3JpZW50YXRpb24gPSAweDAsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBUb2tlbiAgICAgPSAweDAsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQTERfR3JvdXBQb3NpdGlvbiAgPSAweDAsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQTERfQmF5ICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQTERfRWplY3RhYmxlICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQTERfRWplY3RSZXF1aXJlZCAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQTERfQ2FiaW5ldE51bWJlciAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQTERfQ2FyZENhZ2VOdW1iZXIgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ TERfUmVmZXJlbmNlICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERf Um90YXRpb24gICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfT3Jk ZXIgICAgICAgICAgPSAweDApCgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgRGV2aWNlIChQUjExKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0FEUiwgT25lKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAg ICAgICAgICAgICBOYW1lIChfVVBDLCBQYWNrYWdlICgweDA0KSAgLy8gX1VQQzogVVNCIFBvcnQg Q2FwYWJpbGl0aWVzCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAg TmFtZSAoX1BMRCwgUGFja2FnZSAoMHgwMSkgIC8vIF9QTEQ6IFBoeXNpY2FsIExvY2F0aW9uIG9m IERldmljZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUb1BMRCAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1JldmlzaW9u ICAgICAgID0gMHgxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9JZ25vcmVD b2xvciAgICA9IDB4MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfUmVkICAg ICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0dyZWVu ICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9CbHVl ICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfV2lk dGggICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0hl aWdodCAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9V c2VyVmlzaWJsZSAgICA9IDB4MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERf RG9jayAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExE X0xpZCAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBM RF9QYW5lbCAgICAgICAgICA9ICJGUk9OVCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUExEX1ZlcnRpY2FsUG9zaXRpb24gPSAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQTERfSG9yaXpvbnRhbFBvc2l0aW9uID0gIkxFRlQiLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBMRF9TaGFwZSAgICAgICAgICA9ICJVTktOT1dOIiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBPcmllbnRhdGlvbiA9IDB4MCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBUb2tlbiAgICAgPSAweDAsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUExEX0dyb3VwUG9zaXRpb24gID0gMHgwLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9CYXkgICAgICAgICAgICA9IDB4MCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfRWplY3RhYmxlICAgICAgPSAweDAsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0VqZWN0UmVxdWlyZWQgID0gMHgwLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9DYWJpbmV0TnVtYmVyICA9IDB4MCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfQ2FyZENhZ2VOdW1iZXIgPSAweDAsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1JlZmVyZW5jZSAgICAgID0gMHgwLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Sb3RhdGlvbiAgICAgICA9IDB4MCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfT3JkZXIgICAgICAgICAgPSAweDAp CgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgRGV2aWNlIChQUjEyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMikgIC8vIF9BRFI6IEFkZHJlc3MKICAg ICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VQQywgUGFja2FnZSAoMHgwNCkgIC8vIF9VUEM6 IFVTQiBQb3J0IENhcGFiaWxpdGllcwogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgICAgIE5hbWUgKF9QTEQsIFBhY2thZ2UgKDB4MDEpICAvLyBfUExEOiBQaHlzaWNhbCBM b2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgVG9QTEQgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBM RF9SZXZpc2lvbiAgICAgICA9IDB4MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ TERfSWdub3JlQ29sb3IgICAgPSAweDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UExEX1JlZCAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBMRF9HcmVlbiAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQTERfQmx1ZSAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUExEX1dpZHRoICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBMRF9IZWlnaHQgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQTERfVXNlclZpc2libGUgICAgPSAweDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUExEX0RvY2sgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBMRF9MaWQgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQTERfUGFuZWwgICAgICAgICAgPSAiRlJPTlQiLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBMRF9WZXJ0aWNhbFBvc2l0aW9uID0gIiIsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUExEX0hvcml6b250YWxQb3NpdGlvbiA9ICJDRU5URVIiLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9TaGFwZSAgICAgICAgICA9ICJVTktOT1dOIiwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBPcmllbnRhdGlvbiA9IDB4 MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBUb2tlbiAgICAgPSAw eDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0dyb3VwUG9zaXRpb24gID0g MHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9CYXkgICAgICAgICAgICA9 IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfRWplY3RhYmxlICAgICAg PSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0VqZWN0UmVxdWlyZWQg ID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9DYWJpbmV0TnVtYmVy ICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfQ2FyZENhZ2VOdW1i ZXIgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1JlZmVyZW5jZSAg ICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Sb3RhdGlvbiAg ICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfT3JkZXIgICAg ICAgICAgPSAweDApCgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChQUjEzKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMykgIC8vIF9BRFI6 IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VQQywgUGFja2FnZSAoMHgw NCkgIC8vIF9VUEM6IFVTQiBQb3J0IENhcGFiaWxpdGllcwogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9QTEQsIFBhY2thZ2UgKDB4MDEpICAvLyBfUExE OiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9QTEQgKAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBMRF9SZXZpc2lvbiAgICAgICA9IDB4MSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQTERfSWdub3JlQ29sb3IgICAgPSAweDEsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUExEX1JlZCAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBMRF9HcmVlbiAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQTERfQmx1ZSAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUExEX1dpZHRoICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9IZWlnaHQgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQTERfVXNlclZpc2libGUgICAgPSAweDEsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUExEX0RvY2sgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBMRF9MaWQgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQTERfUGFuZWwgICAgICAgICAgPSAiRlJPTlQiLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9WZXJ0aWNhbFBvc2l0aW9uID0gIiIsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0hvcml6b250YWxQb3NpdGlvbiA9ICJDRU5U RVIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9TaGFwZSAgICAgICAgICA9 ICJVTktOT1dOIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBPcmll bnRhdGlvbiA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBU b2tlbiAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0dyb3Vw UG9zaXRpb24gID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9CYXkg ICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfRWpl Y3RhYmxlICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0Vq ZWN0UmVxdWlyZWQgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9D YWJpbmV0TnVtYmVyICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERf Q2FyZENhZ2VOdW1iZXIgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExE X1JlZmVyZW5jZSAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBM RF9Sb3RhdGlvbiAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ TERfT3JkZXIgICAgICAgICAgPSAweDApCgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChQUjE0KQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgw NCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VQQywg UGFja2FnZSAoMHgwNCkgIC8vIF9VUEM6IFVTQiBQb3J0IENhcGFiaWxpdGllcwogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg WmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9QTEQsIFBhY2thZ2UgKDB4 MDEpICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9QTEQgKAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBMRF9SZXZpc2lvbiAgICAgICA9IDB4MSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQTERfSWdub3JlQ29sb3IgICAgPSAweDEsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUExEX1JlZCAgICAgICAgICAgID0gMHgwLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9HcmVlbiAgICAgICAgICA9IDB4MCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfQmx1ZSAgICAgICAgICAgPSAweDAsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1dpZHRoICAgICAgICAgID0gMHgwLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9IZWlnaHQgICAgICAgICA9IDB4MCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfVXNlclZpc2libGUgICAgPSAweDEsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0RvY2sgICAgICAgICAgID0gMHgwLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9MaWQgICAgICAgICAgICA9IDB4MCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfUGFuZWwgICAgICAgICAgPSAiRlJP TlQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9WZXJ0aWNhbFBvc2l0aW9u ID0gIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0hvcml6b250YWxQb3Np dGlvbiA9ICJSSUdIVCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1NoYXBl ICAgICAgICAgID0gIlVOS05PV04iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBM RF9Hcm91cE9yaWVudGF0aW9uID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBMRF9Hcm91cFRva2VuICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQTERfR3JvdXBQb3NpdGlvbiAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUExEX0JheSAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBMRF9FamVjdGFibGUgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQTERfRWplY3RSZXF1aXJlZCAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUExEX0NhYmluZXROdW1iZXIgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBMRF9DYXJkQ2FnZU51bWJlciA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQTERfUmVmZXJlbmNlICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUExEX1JvdGF0aW9uICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBMRF9PcmRlciAgICAgICAgICA9IDB4MCkKCiAgICAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXpl ZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1RfMCwgWmVybykgIC8vIF9U X3g6IEVtaXR0ZWQgYnkgQVNMIENvbXBpbGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEFyZzAgPT0gVG9VVUlEICgiYTVmYzcwOGYtODc3NS00YmE2LWJkMGMtYmE5MGExZWM3MmY4 IikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFdoaWxlIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfVF8wID0gVG9JbnRlZ2VyIChBcmcy KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKF9UXzAgPT0gWmVybykp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBPbmUpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIC4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVsc2VJZiAoKF9UXzAgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTREdWID09 IDB4RkYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFNER1YpIC8qIFxTREdWICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2 aWNlIChQUjE1KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg TmFtZSAoX0FEUiwgMHgwNSkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAg ICAgTmFtZSAoX1VQQywgUGFja2FnZSAoMHgwNCkgIC8vIF9VUEM6IFVTQiBQb3J0IENhcGFiaWxp dGllcwogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAg ICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9Q TEQsIFBhY2thZ2UgKDB4MDEpICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9Q TEQgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9SZXZpc2lvbiAgICAgICA9 IDB4MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfSWdub3JlQ29sb3IgICAg PSAweDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1JlZCAgICAgICAgICAg ID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9HcmVlbiAgICAgICAg ICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfQmx1ZSAgICAgICAg ICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1dpZHRoICAgICAg ICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9IZWlnaHQgICAg ICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfVXNlclZpc2li bGUgICAgPSAweDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0RvY2sgICAg ICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9MaWQgICAg ICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfUGFuZWwg ICAgICAgICAgPSAiVU5LTk9XTiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExE X1ZlcnRpY2FsUG9zaXRpb24gPSAiTE9XRVIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBMRF9Ib3Jpem9udGFsUG9zaXRpb24gPSAiUklHSFQiLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBMRF9TaGFwZSAgICAgICAgICA9ICJVTktOT1dOIiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBPcmllbnRhdGlvbiA9IDB4MCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBUb2tlbiAgICAgPSAweDAsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUExEX0dyb3VwUG9zaXRpb24gID0gMHgwLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9CYXkgICAgICAgICAgICA9IDB4MCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfRWplY3RhYmxlICAgICAgPSAweDAsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0VqZWN0UmVxdWlyZWQgID0gMHgwLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9DYWJpbmV0TnVtYmVyICA9IDB4MCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfQ2FyZENhZ2VOdW1iZXIgPSAweDAsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1JlZmVyZW5jZSAgICAgID0gMHgwLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Sb3RhdGlvbiAgICAgICA9IDB4MCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfT3JkZXIgICAgICAgICAgPSAweDAp CgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9k CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5h bWUgKF9UXzAsIFplcm8pICAvLyBfVF94OiBFbWl0dGVkIGJ5IEFTTCBDb21waWxlcgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImE1ZmM3MDhmLTg3NzUt NGJhNi1iZDBjLWJhOTBhMWVjNzJmOCIpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoT25lKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg X1RfMCA9IFRvSW50ZWdlciAoQXJnMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChfVF8wID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0g T25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDcgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8wID09IE9uZSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoU0RHViA9PSAweEZGKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSAweDAyKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChTREdWKSAvKiBcU0RHViAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIERldmljZSAoUFIxNikKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDYpICAvLyBfQURSOiBBZGRyZXNz CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9VUEMsIFBhY2thZ2UgKDB4MDQpICAvLyBf VVBDOiBVU0IgUG9ydCBDYXBhYmlsaXRpZXMKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgICAgICBOYW1lIChfUExELCBQYWNrYWdlICgweDAxKSAgLy8gX1BMRDogUGh5c2lj YWwgTG9jYXRpb24gb2YgRGV2aWNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRvUExEICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQTERfUmV2aXNpb24gICAgICAgPSAweDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUExEX0lnbm9yZUNvbG9yICAgID0gMHgxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBMRF9SZWQgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQTERfR3JlZW4gICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUExEX0JsdWUgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBMRF9XaWR0aCAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQTERfSGVpZ2h0ICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUExEX1VzZXJWaXNpYmxlICAgID0gMHgxLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBMRF9Eb2NrICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQTERfTGlkICAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUExEX1BhbmVsICAgICAgICAgID0gIlVOS05PV04iLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBMRF9WZXJ0aWNhbFBvc2l0aW9uID0gIkxPV0VSIiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfSG9yaXpvbnRhbFBvc2l0aW9uID0gIlJJR0hU IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfU2hhcGUgICAgICAgICAgPSAi VU5LTk9XTiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0dyb3VwT3JpZW50 YXRpb24gPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0dyb3VwVG9r ZW4gICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Hcm91cFBv c2l0aW9uICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfQmF5ICAg ICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0VqZWN0 YWJsZSAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9FamVj dFJlcXVpcmVkICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfQ2Fi aW5ldE51bWJlciAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0Nh cmRDYWdlTnVtYmVyID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9S ZWZlcmVuY2UgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERf Um90YXRpb24gICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExE X09yZGVyICAgICAgICAgID0gMHgwKQoKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTog RGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOYW1lIChfVF8wLCBaZXJvKSAgLy8gX1RfeDogRW1pdHRlZCBi eSBBU0wgQ29tcGlsZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBU b1VVSUQgKCJhNWZjNzA4Zi04Nzc1LTRiYTYtYmQwYy1iYTkwYTFlYzcyZjgiKSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hp bGUgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF9UXzAgPSBUb0ludGVnZXIgKEFyZzIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoX1RfMCA9PSBaZXJvKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChBcmcxID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDA3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLiAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLiAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1Rf MCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFNER1YgPT0gMHhGRikpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVs c2VJZiAoKF9UXzAgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoU0RHVikg LyogXFNER1YgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKFBSMTcpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAw eDA3KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfVVBD LCBQYWNrYWdlICgweDA0KSAgLy8gX1VQQzogVVNCIFBvcnQgQ2FwYWJpbGl0aWVzCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1BMRCwgUGFja2FnZSAo MHgwMSkgIC8vIF9QTEQ6IFBoeXNpY2FsIExvY2F0aW9uIG9mIERldmljZQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1BMRCAoCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUExEX1JldmlzaW9uICAgICAgID0gMHgxLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9JZ25vcmVDb2xvciAgICA9IDB4MSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfUmVkICAgICAgICAgICAgPSAweDAsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0dyZWVuICAgICAgICAgID0gMHgwLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9CbHVlICAgICAgICAgICA9IDB4MCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfV2lkdGggICAgICAgICAgPSAweDAsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0hlaWdodCAgICAgICAgID0gMHgwLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Vc2VyVmlzaWJsZSAgICA9IDB4MSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfRG9jayAgICAgICAgICAgPSAweDAs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0xpZCAgICAgICAgICAgID0gMHgw LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9QYW5lbCAgICAgICAgICA9ICJV TktOT1dOIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfVmVydGljYWxQb3Np dGlvbiA9ICJMT1dFUiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0hvcml6 b250YWxQb3NpdGlvbiA9ICJSSUdIVCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UExEX1NoYXBlICAgICAgICAgID0gIlVOS05PV04iLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBMRF9Hcm91cE9yaWVudGF0aW9uID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBMRF9Hcm91cFRva2VuICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQTERfR3JvdXBQb3NpdGlvbiAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUExEX0JheSAgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBMRF9FamVjdGFibGUgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQTERfRWplY3RSZXF1aXJlZCAgPSAweDAsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUExEX0NhYmluZXROdW1iZXIgID0gMHgwLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBMRF9DYXJkQ2FnZU51bWJlciA9IDB4MCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQTERfUmVmZXJlbmNlICAgICAgPSAweDAsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUExEX1JvdGF0aW9uICAgICAgID0gMHgwLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBMRF9PcmRlciAgICAgICAgICA9IDB4MCkKCiAgICAgICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwg U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1RfMCwgWmVy bykgIC8vIF9UX3g6IEVtaXR0ZWQgYnkgQVNMIENvbXBpbGVyCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiYTVmYzcwOGYtODc3NS00YmE2LWJkMGMtYmE5 MGExZWM3MmY4IikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFdoaWxlIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfVF8wID0gVG9JbnRl Z2VyIChBcmcyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKF9UXzAg PT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBPbmUpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVsc2VJZiAoKF9UXzAgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChTREdWID09IDB4RkYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVy bykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4MDIpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFNER1YpIC8qIFxTREdWICovCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFr CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgRGV2aWNlIChQUjE4KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0FEUiwgMHgwOCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAg ICAgICAgICAgICAgTmFtZSAoX1VQQywgUGFja2FnZSAoMHgwNCkgIC8vIF9VUEM6IFVTQiBQb3J0 IENhcGFiaWxpdGllcwogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkYsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAg IE5hbWUgKF9QTEQsIFBhY2thZ2UgKDB4MDEpICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBv ZiBEZXZpY2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgVG9QTEQgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9SZXZpc2lv biAgICAgICA9IDB4MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfSWdub3Jl Q29sb3IgICAgPSAweDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1JlZCAg ICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9HcmVl biAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfQmx1 ZSAgICAgICAgICAgPSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1dp ZHRoICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9I ZWlnaHQgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERf VXNlclZpc2libGUgICAgPSAweDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExE X0RvY2sgICAgICAgICAgID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBM RF9MaWQgICAgICAgICAgICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ TERfUGFuZWwgICAgICAgICAgPSAiVU5LTk9XTiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUExEX1ZlcnRpY2FsUG9zaXRpb24gPSAiTE9XRVIiLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBMRF9Ib3Jpem9udGFsUG9zaXRpb24gPSAiUklHSFQiLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBMRF9TaGFwZSAgICAgICAgICA9ICJVTktOT1dOIiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBPcmllbnRhdGlvbiA9IDB4MCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfR3JvdXBUb2tlbiAgICAgPSAweDAs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0dyb3VwUG9zaXRpb24gID0gMHgw LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9CYXkgICAgICAgICAgICA9IDB4 MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfRWplY3RhYmxlICAgICAgPSAw eDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX0VqZWN0UmVxdWlyZWQgID0g MHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9DYWJpbmV0TnVtYmVyICA9 IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfQ2FyZENhZ2VOdW1iZXIg PSAweDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExEX1JlZmVyZW5jZSAgICAg ID0gMHgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMRF9Sb3RhdGlvbiAgICAg ICA9IDB4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTERfT3JkZXIgICAgICAg ICAgPSAweDApCgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoX1Mw VywgMHgwMykgIC8vIF9TMFc6IFMwIERldmljZSBXYWtlIFN0YXRlCiAgICAgICAgICAgIE9wZXJh dGlvblJlZ2lvbiAoVVNCUiwgUENJX0NvbmZpZywgMHg1NCwgMHgwNCkKICAgICAgICAgICAgRmll bGQgKFVTQlIsIFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE9mZnNldCAoMHgwMSksIAogICAgICAgICAgICAgICAgUE1FRSwgICAxLCAKICAg ICAgICAgICAgICAgICAgICAsICAgNiwgCiAgICAgICAgICAgICAgICBQTUVTLCAgIDEKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoWEhDSSA9PSBa ZXJvKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYp CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9EU1csIDMsIE5vdFNlcmlhbGl6ZWQpICAv LyBfRFNXOiBEZXZpY2UgU2xlZXAgV2FrZQogICAgICAgICAgICB7CiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE1ldGhvZCAoX1JNViwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9STVY6IFJlbW92 YWwgU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAg ICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFIzLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX1BSMzogUG93ZXIgUmVzb3VyY2VzIGZvciBEM2hvdAogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgVVNCQwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQogICAgICAg IH0KCiAgICAgICAgRGV2aWNlIChTRUMwKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0FE UiwgMHgwMDFBMDAwMCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgTmFtZSAoX0RFUCwg UGFja2FnZSAoMHgwMSkgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBQRVBECiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKF9TMFcsIDB4 MDMpICAvLyBfUzBXOiBTMCBEZXZpY2UgV2FrZSBTdGF0ZQogICAgICAgICAgICBPcGVyYXRpb25S ZWdpb24gKFBNRUIsIFBDSV9Db25maWcsIDB4ODQsIDB4MDQpCiAgICAgICAgICAgIEZpZWxkIChQ TUVCLCBXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4MDEpLCAKICAgICAgICAgICAgICAgIFBNRUUsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgLCAgIDYsIAogICAgICAgICAgICAgICAgUE1FUywgICAxCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RTVywgMywgTm90U2VyaWFsaXplZCkgIC8vIF9EU1c6 IERldmljZSBTbGVlcCBXYWtlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgfQogICAgICAgIH0K ICAgIH0KCiAgICBTY29wZSAoX1NCLlBDSTApCiAgICB7CiAgICAgICAgRGV2aWNlIChHRlgwKQog ICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDAyMDAwMCkgIC8vIF9BRFI6IEFk ZHJlc3MKICAgICAgICAgICAgTmFtZSAoTkRFUCwgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgUEVQRCwgCiAgICAgICAgICAgICAgICBJMkM3LCAKICAgICAgICAg ICAgICAgIF5eSTJDNy5QTUlDCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKF9ERVAs IFBhY2thZ2UgKDB4MDEpICAvLyBfREVQOiBEZXBlbmRlbmNpZXMKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgUEVQRAogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChfUzBXLCAw eDAzKSAgLy8gX1MwVzogUzAgRGV2aWNlIFdha2UgU3RhdGUKICAgICAgICAgICAgTWV0aG9kIChf RE9TLCAxLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RPUzogRGlzYWJsZSBPdXRwdXQgU3dpdGNoaW5n CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERTRU4gPSAoQXJnMCAmIDB4MDcpCiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RPRCwgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9ET0Q6IERpc3BsYXkgT3V0cHV0IERldmljZXMKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgTkRJRCA9IFplcm8KICAgICAgICAgICAgICAgIElmICgoRElETCAhPSBaZXJvKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBESUQxID0gU0RETCAoRElETCkKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKERETDIgIT0gWmVybykpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRElEMiA9IFNEREwgKERETDIpCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChEREwzICE9IFplcm8pKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIERJRDMgPSBTRERMIChEREwzKQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoRERMNCAhPSBaZXJvKSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBESUQ0ID0gU0RETCAoRERMNCkKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKERETDUgIT0gWmVybykpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgRElENSA9IFNEREwgKERETDUpCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgSWYgKChORElEID09IE9uZSkpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoVE1QMSwgUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAg ICAgICAgICAgICAgICAgICAweEZGRkZGRkZGCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICBUTVAxIFtaZXJvXSA9ICgweDAwMDEwMDAwIHwgRElEMSkKICAgICAgICAg ICAgICAgICAgICBJZiAoKFNPQ1MgPCAweDAyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFRNUDEgW09uZV0gPSAweDAwMDIwRjM5CiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFRNUDEgW09uZV0gPSAweDAwMDIwRjM4CiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRNUDEpIC8qIFxfU0JfLlBD STAuR0ZYMC5fRE9ELlRNUDEgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJ ZiAoKE5ESUQgPT0gMHgwMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg TmFtZSAoVE1QMiwgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweEZG RkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRgogICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgVE1QMiBbWmVyb10gPSAoMHgwMDAxMDAwMCB8 IERJRDEpCiAgICAgICAgICAgICAgICAgICAgVE1QMiBbT25lXSA9ICgweDAwMDEwMDAwIHwgRElE MikKICAgICAgICAgICAgICAgICAgICBJZiAoKFNPQ1MgPCAweDAyKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFRNUDIgWzB4MDJdID0gMHgwMDAyMEYzOQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBUTVAyIFsweDAyXSA9IDB4MDAwMjBG MzgKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoVE1Q MikgLyogXF9TQl8uUENJMC5HRlgwLl9ET0QuVE1QMiAqLwogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIElmICgoTkRJRCA9PSAweDAzKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBOYW1lIChUTVAzLCBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZG LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRgogICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgVE1QMyBbWmVyb10gPSAoMHgwMDAxMDAwMCB8IERJRDEp CiAgICAgICAgICAgICAgICAgICAgVE1QMyBbT25lXSA9ICgweDAwMDEwMDAwIHwgRElEMikKICAg ICAgICAgICAgICAgICAgICBUTVAzIFsweDAyXSA9ICgweDAwMDEwMDAwIHwgRElEMykKICAgICAg ICAgICAgICAgICAgICBJZiAoKFNPQ1MgPCAweDAyKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFRNUDMgWzB4MDNdID0gMHgwMDAyMEYzOQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBUTVAzIFsweDAzXSA9IDB4MDAwMjBGMzgKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoVE1QMykgLyogXF9T Ql8uUENJMC5HRlgwLl9ET0QuVE1QMyAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIElmICgoTkRJRCA9PSAweDA0KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBOYW1lIChUTVA0LCBQYWNrYWdlICgweDA1KQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 RkZGRkZGRkYKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIFRNUDQg W1plcm9dID0gKDB4MDAwMTAwMDAgfCBESUQxKQogICAgICAgICAgICAgICAgICAgIFRNUDQgW09u ZV0gPSAoMHgwMDAxMDAwMCB8IERJRDIpCiAgICAgICAgICAgICAgICAgICAgVE1QNCBbMHgwMl0g PSAoMHgwMDAxMDAwMCB8IERJRDMpCiAgICAgICAgICAgICAgICAgICAgVE1QNCBbMHgwM10gPSAo MHgwMDAxMDAwMCB8IERJRDQpCiAgICAgICAgICAgICAgICAgICAgSWYgKChTT0NTIDwgMHgwMikp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBUTVA0IFsweDA0 XSA9IDB4MDAwMjBGMzkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVE1QNCBb MHgwNF0gPSAweDAwMDIwRjM4CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFRNUDQpIC8qIFxfU0JfLlBDSTAuR0ZYMC5fRE9ELlRNUDQgKi8KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKE5ESUQgPiAweDA0KSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChUTVA1LCBQYWNrYWdlICgweDA2KQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwg CiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAg ICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAg ICAweEZGRkZGRkZGCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBU TVA1IFtaZXJvXSA9ICgweDAwMDEwMDAwIHwgRElEMSkKICAgICAgICAgICAgICAgICAgICBUTVA1 IFtPbmVdID0gKDB4MDAwMTAwMDAgfCBESUQyKQogICAgICAgICAgICAgICAgICAgIFRNUDUgWzB4 MDJdID0gKDB4MDAwMTAwMDAgfCBESUQzKQogICAgICAgICAgICAgICAgICAgIFRNUDUgWzB4MDNd ID0gKDB4MDAwMTAwMDAgfCBESUQ0KQogICAgICAgICAgICAgICAgICAgIFRNUDUgWzB4MDRdID0g KDB4MDAwMTAwMDAgfCBESUQ1KQogICAgICAgICAgICAgICAgICAgIElmICgoU09DUyA8IDB4MDIp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVE1QNSBbMHgw NV0gPSAweDAwMDIwRjM5CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFRNUDUg WzB4MDVdID0gMHgwMDAyMEYzOAogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChUTVA1KSAvKiBcX1NCXy5QQ0kwLkdGWDAuX0RPRC5UTVA1ICovCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChTT0NTIDwgMHgwMikpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDAyMEYzOQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwLCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMDAyMEYzOAogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXl5e STJDMS5CQVQwLkxFRFIgPSBaZXJvCiAgICAgICAgICAgICAgICBJZiAoKF5eXkkyQzEuQkFUMC5M RURSICE9IF5eXkkyQzEuQkFUMC5MRURTKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBOb3RpZnkgKF5eXkkyQzEuQkFUMCwgMHg4MCkgLy8gU3RhdHVzIENoYW5nZQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChERDAxKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRyZXNz CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoMHgwRjAwICYgRElE MSkgPT0gMHgwNDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIEVEUFYgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgRElEWCA9IERJRDEgLyogXERJ RDEgKi8KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKERJRDEgPT0gWmVybykpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgoMHhGRkZGICYgRElEMSkpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoX0RDUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9EQ1M6IERpc3BsYXkgQ3VycmVudCBT dGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENERFMg KERJRDEpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RHUywg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9ER1M6IERpc3BsYXkgR3JhcGhpY3MgU3RhdGUKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE5ERFMgKERJRDEpKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTUywgMSwgTm90U2VyaWFs aXplZCkgIC8vIF9EU1M6IERldmljZSBTZXQgU3RhdGUKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBJZiAoKChBcmcwICYgMHhDMDAwMDAwMCkgPT0gMHhDMDAwMDAwMCkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDU1RFID0gTlNURSAv KiBcTlNURSAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChERDAyKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBNZXRob2QgKF9BRFIsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoMHgwRjAwICYgRElEMikg PT0gMHgwNDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IEVEUFYgPSAweDAyCiAgICAgICAgICAgICAgICAgICAgICAgIERJRFggPSBESUQyIC8qIFxESUQy ICovCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoRElEMiA9PSBaZXJvKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgoMHhGRkZGICYgRElEMikpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoX0RDUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9EQ1M6IERpc3BsYXkgQ3VycmVudCBT dGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENERFMg KERJRDIpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RHUywg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9ER1M6IERpc3BsYXkgR3JhcGhpY3MgU3RhdGUKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE5ERFMgKERJRDIpKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTUywgMSwgTm90U2VyaWFs aXplZCkgIC8vIF9EU1M6IERldmljZSBTZXQgU3RhdGUKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBJZiAoKChBcmcwICYgMHhDMDAwMDAwMCkgPT0gMHhDMDAwMDAwMCkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDU1RFID0gTlNURSAv KiBcTlNURSAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChERDAzKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBNZXRob2QgKF9BRFIsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoMHgwRjAwICYgRElEMykg PT0gMHgwNDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IEVEUFYgPSAweDAzCiAgICAgICAgICAgICAgICAgICAgICAgIERJRFggPSBESUQzIC8qIFxESUQz ICovCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoRElEMyA9PSBaZXJvKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgoMHhGRkZGICYgRElEMykpCiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoX0RDUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9EQ1M6IERpc3BsYXkgQ3VycmVudCBT dGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKERJRDMgPT0g WmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ0RE UyAoRElEMykpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIE1ldGhvZCAoX0RHUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ER1M6IERpc3Bs YXkgR3JhcGhpY3MgU3RhdGUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKE5ERFMgKERJRDMpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoX0RTUywgMSwgTm90U2VyaWFsaXplZCkgIC8vIF9EU1M6IERldmljZSBTZXQgU3RhdGUK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKChBcmcwICYgMHhDMDAw MDAwMCkgPT0gMHhDMDAwMDAwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBDU1RFID0gTlNURSAvKiBcTlNURSAqLwogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChERDA0 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAsIFNlcmlhbGl6 ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgSWYgKCgoMHgwRjAwICYgRElENCkgPT0gMHgwNDAwKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIEVEUFYgPSAweDA0CiAgICAgICAgICAgICAgICAgICAg ICAgIERJRFggPSBESUQ0IC8qIFxESUQ0ICovCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgo RElENCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICgoMHhGRkZGICYgRElENCkpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RDUywgMCwgTm90U2VyaWFsaXplZCkgIC8v IF9EQ1M6IERpc3BsYXkgQ3VycmVudCBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBJZiAoKERJRDQgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoQ0REUyAoRElENCkpCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RHUywgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9ER1M6IERpc3BsYXkgR3JhcGhpY3MgU3RhdGUKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE5ERFMgKERJRDQpKQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTUywgMSwgTm90U2VyaWFsaXplZCkgIC8v IF9EU1M6IERldmljZSBTZXQgU3RhdGUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBJZiAoKChBcmcwICYgMHhDMDAwMDAwMCkgPT0gMHhDMDAwMDAwMCkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDU1RFID0gTlNURSAvKiBcTlNURSAq LwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgRGV2aWNlIChERDA1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBN ZXRob2QgKF9BRFIsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoMHgwRjAwICYgRElENSkgPT0gMHgwNDAw KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEVEUFYgPSAw eDA1CiAgICAgICAgICAgICAgICAgICAgICAgIERJRFggPSBESUQ1IC8qIFxESUQ1ICovCiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwNSkKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIElmICgoRElENSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwNSkKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgoMHhGRkZGICYgRElENSkpCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RD UywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9EQ1M6IERpc3BsYXkgQ3VycmVudCBTdGF0dXMKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKERJRDUgPT0gWmVybykpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIp CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ0REUyAoRElENSkp CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX0RHUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ER1M6IERpc3BsYXkgR3JhcGhp Y3MgU3RhdGUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE5E RFMgKERJRDUpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RT UywgMSwgTm90U2VyaWFsaXplZCkgIC8vIF9EU1M6IERldmljZSBTZXQgU3RhdGUKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKChBcmcwICYgMHhDMDAwMDAwMCkgPT0g MHhDMDAwMDAwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBDU1RFID0gTlNURSAvKiBcTlNURSAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChERDA2KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAsIFNlcmlhbGl6ZWQpICAvLyBf QURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgo MHgwRjAwICYgRElENikgPT0gMHgwNDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIEVEUFYgPSAweDA2CiAgICAgICAgICAgICAgICAgICAgICAgIERJRFgg PSBESUQ2IC8qIFxESUQ2ICovCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwNikK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoRElENiA9PSBa ZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHgwNikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgoMHhG RkZGICYgRElENikpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0RDUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9EQ1M6IERp c3BsYXkgQ3VycmVudCBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBJZiAoKERJRDYgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoQ0REUyAoRElENikpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RHUywgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9ER1M6IERpc3BsYXkgR3JhcGhpY3MgU3RhdGUKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKE5ERFMgKERJRDYpKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0RTUywgMSwgTm90U2VyaWFsaXplZCkgIC8vIF9EU1M6IERl dmljZSBTZXQgU3RhdGUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo KChBcmcwICYgMHhDMDAwMDAwMCkgPT0gMHhDMDAwMDAwMCkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBDU1RFID0gTlNURSAvKiBcTlNURSAqLwogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgRGV2aWNlIChERDA3KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKF9B RFIsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSWYgKCgoMHgwRjAwICYgRElENykgPT0gMHgwNDAwKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEVEUFYgPSAweDA3CiAgICAg ICAgICAgICAgICAgICAgICAgIERJRFggPSBESUQ3IC8qIFxESUQ3ICovCiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwNykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIElmICgoRElENyA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwNykKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgoMHhGRkZGICYgRElENykpCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RDUywgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9EQ1M6IERpc3BsYXkgQ3VycmVudCBTdGF0dXMKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKERJRDcgPT0gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ0REUyAoRElENykpCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo X0RHUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ER1M6IERpc3BsYXkgR3JhcGhpY3MgU3RhdGUK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE5ERFMgKERJRDcp KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTUywgMSwgTm90 U2VyaWFsaXplZCkgIC8vIF9EU1M6IERldmljZSBTZXQgU3RhdGUKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBJZiAoKChBcmcwICYgMHhDMDAwMDAwMCkgPT0gMHhDMDAwMDAw MCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDU1RFID0g TlNURSAvKiBcTlNURSAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChERDA4KQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQURSOiBBZGRy ZXNzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoMHgwRjAwICYg RElEOCkgPT0gMHgwNDAwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIEVEUFYgPSAweDA4CiAgICAgICAgICAgICAgICAgICAgICAgIERJRFggPSBESUQ4IC8q IFxESUQ4ICovCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOCkKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoRElEOCA9PSBaZXJvKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOCkK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgoMHhGRkZGICYgRElE OCkpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0RDUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9EQ1M6IERpc3BsYXkgQ3Vy cmVudCBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKERJ RDggPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MEIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoQ0REUyAoRElEOCkpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RHUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ER1M6 IERpc3BsYXkgR3JhcGhpY3MgU3RhdGUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKE5ERFMgKERJRDgpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0RTUywgMSwgTm90U2VyaWFsaXplZCkgIC8vIF9EU1M6IERldmljZSBTZXQg U3RhdGUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKChBcmcwICYg MHhDMDAwMDAwMCkgPT0gMHhDMDAwMDAwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBDU1RFID0gTlNURSAvKiBcTlNURSAqLwogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNl IChERDFGKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAsIFNl cmlhbGl6ZWQpICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgSWYgKChFRFBWID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDFGKQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKCgweEZGRkYgJiBESURYKSkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRENTLCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX0RDUzogRGlzcGxheSBDdXJyZW50IFN0YXR1cwogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIElmICgoRURQViA9PSBaZXJvKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChDRERTIChESURYKSkKICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChf REdTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0RHUzogRGlzcGxheSBHcmFwaGljcyBTdGF0ZQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTkREUyAoRElEWCkp CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNTLCAxLCBOb3RT ZXJpYWxpemVkKSAgLy8gX0RTUzogRGV2aWNlIFNldCBTdGF0ZQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIElmICgoKEFyZzAgJiAweEMwMDAwMDAwKSA9PSAweEMwMDAwMDAw KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENTVEUgPSBO U1RFIC8qIFxOU1RFICovCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBeXl5eSTJDMS5CQVQwLkxFRFIgPSBPbmUKICAgICAgICAgICAgICAgICAgICBJZiAoKF5eXl5J MkMxLkJBVDAuTEVEUiAhPSBeXl5eSTJDMS5CQVQwLkxFRFMpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5ICheXl5eSTJDMS5CQVQwLCAweDgwKSAv LyBTdGF0dXMgQ2hhbmdlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX0JDTCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9CQ0w6 IEJyaWdodG5lc3MgQ29udHJvbCBMZXZlbHMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4NjcpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAweDUwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgzMiwg CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBP bmUsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQsIAogICAgICAgICAgICAgICAg ICAgICAgICAweDA1LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDcsIAogICAgICAgICAgICAgICAgICAgICAgICAweDA4LCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHgwOSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MEEsIAog ICAgICAgICAgICAgICAgICAgICAgICAweDBCLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgw QywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MEQsIAogICAgICAgICAgICAgICAgICAgICAg ICAweDBFLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwRiwgCiAgICAgICAgICAgICAgICAg ICAgICAgIDB4MTAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDExLCAKICAgICAgICAgICAg ICAgICAgICAgICAgMHgxMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMsIAogICAgICAg ICAgICAgICAgICAgICAgICAweDE0LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgxNSwgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4MTYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDE3 LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgxOCwgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4MTksIAogICAgICAgICAgICAgICAgICAgICAgICAweDFBLCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHgxQiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MUMsIAogICAgICAgICAgICAg ICAgICAgICAgICAweDFELCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgxRSwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4MUYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDIwLCAKICAg ICAgICAgICAgICAgICAgICAgICAgMHgyMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MjIs IAogICAgICAgICAgICAgICAgICAgICAgICAweDIzLCAKICAgICAgICAgICAgICAgICAgICAgICAg MHgyNCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MjUsIAogICAgICAgICAgICAgICAgICAg ICAgICAweDI2LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgyNywgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgICAgICAweDI5LCAKICAgICAgICAg ICAgICAgICAgICAgICAgMHgyQSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MkIsIAogICAg ICAgICAgICAgICAgICAgICAgICAweDJDLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgyRCwg CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MkUsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDJGLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgzMCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MzEsIAogICAgICAgICAgICAgICAgICAgICAgICAweDMyLCAKICAgICAgICAgICAgICAg ICAgICAgICAgMHgzMywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MzQsIAogICAgICAgICAg ICAgICAgICAgICAgICAweDM1LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgzNiwgCiAgICAg ICAgICAgICAgICAgICAgICAgIDB4MzcsIAogICAgICAgICAgICAgICAgICAgICAgICAweDM4LCAK ICAgICAgICAgICAgICAgICAgICAgICAgMHgzOSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 M0EsIAogICAgICAgICAgICAgICAgICAgICAgICAweDNCLCAKICAgICAgICAgICAgICAgICAgICAg ICAgMHgzQywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4M0QsIAogICAgICAgICAgICAgICAg ICAgICAgICAweDNFLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgzRiwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4NDAsIAogICAgICAgICAgICAgICAgICAgICAgICAweDQxLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHg0MiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4NDMsIAog ICAgICAgICAgICAgICAgICAgICAgICAweDQ0LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg0 NSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4NDYsIAogICAgICAgICAgICAgICAgICAgICAg ICAweDQ3LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg0OCwgCiAgICAgICAgICAgICAgICAg ICAgICAgIDB4NDksIAogICAgICAgICAgICAgICAgICAgICAgICAweDRBLCAKICAgICAgICAgICAg ICAgICAgICAgICAgMHg0QiwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4NEMsIAogICAgICAg ICAgICAgICAgICAgICAgICAweDRELCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg0RSwgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4NEYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDUw LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg1MSwgCiAgICAgICAgICAgICAgICAgICAgICAg IDB4NTIsIAogICAgICAgICAgICAgICAgICAgICAgICAweDUzLCAKICAgICAgICAgICAgICAgICAg ICAgICAgMHg1NCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4NTUsIAogICAgICAgICAgICAg ICAgICAgICAgICAweDU2LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg1NywgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4NTgsIAogICAgICAgICAgICAgICAgICAgICAgICAweDU5LCAKICAg ICAgICAgICAgICAgICAgICAgICAgMHg1QSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4NUIs IAogICAgICAgICAgICAgICAgICAgICAgICAweDVDLCAKICAgICAgICAgICAgICAgICAgICAgICAg MHg1RCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4NUUsIAogICAgICAgICAgICAgICAgICAg ICAgICAweDVGLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg2MCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4NjEsIAogICAgICAgICAgICAgICAgICAgICAgICAweDYyLCAKICAgICAgICAg ICAgICAgICAgICAgICAgMHg2MywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4NjQKICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0JDTSwgMSwgTm90U2VyaWFsaXplZCkgIC8vIF9CQ006IEJyaWdodG5lc3MgQ29udHJvbCBN ZXRob2QKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKChBcmcwID49 IFplcm8pICYmIChBcmcwIDw9IDB4NjQpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIEFJTlQgKE9uZSwgQXJnMCkKICAgICAgICAgICAgICAgICAgICAgICAg QlJUTCA9IEFyZzAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgTWV0aG9kIChfQlFDLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0JRQzogQnJp Z2h0bmVzcyBRdWVyeSBDdXJyZW50CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChCUlRMKSAvKiBcQlJUTCAqLwogICAgICAgICAgICAgICAgfQogICAgICAgICAg ICB9CgogICAgICAgICAgICBNZXRob2QgKFNEREwsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIE5ESUQrKwogICAgICAgICAgICAgICAgTG9jYWwwID0gKEFy ZzAgJiAweDBGMEYpCiAgICAgICAgICAgICAgICBMb2NhbDEgPSAoMHg4MDAwMDAwMCB8IExvY2Fs MCkKICAgICAgICAgICAgICAgIElmICgoRElETCA9PSBMb2NhbDApKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIElmICgoRERMMiA9PSBMb2NhbDApKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIElmICgoRERMMyA9PSBMb2NhbDApKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIElmICgoRERMNCA9PSBMb2NhbDApKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIElmICgoRERMNSA9PSBMb2NhbDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIElmICgoRERMNiA9PSBMb2NhbDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IElmICgoRERMNyA9PSBMb2NhbDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoTG9jYWwxKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElm ICgoRERMOCA9PSBMb2NhbDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFJldHVybiAoTG9jYWwxKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChDRERTLCAxLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQXJnMCAm IDB4MEYwRikKICAgICAgICAgICAgICAgIElmICgoWmVybyA9PSBMb2NhbDApKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgxRCkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBJZiAoKENBREwgPT0gTG9jYWwwKSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MUYpCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgSWYgKChDQUwyID09IExvY2FsMCkpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDFGKQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIElmICgoQ0FMMyA9PSBMb2NhbDApKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoMHgxRikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBJZiAoKENBTDQgPT0gTG9jYWwwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MUYpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg SWYgKChDQUw1ID09IExvY2FsMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuICgweDFGKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgo Q0FMNiA9PSBMb2NhbDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoMHgxRikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKENBTDcg PT0gTG9jYWwwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MUYpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChDQUw4ID09IExv Y2FsMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDFG KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoMHgxRCkKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChORERTLCAxLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBMb2NhbDAgPSAoQXJnMCAmIDB4MEYwRikKICAgICAg ICAgICAgICAgIElmICgoWmVybyA9PSBMb2NhbDApKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBJZiAoKE5BREwgPT0gTG9jYWwwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJ ZiAoKE5ETDIgPT0gTG9jYWwwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKE5E TDMgPT0gTG9jYWwwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKE5ETDQgPT0g TG9jYWwwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9u ZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKE5ETDUgPT0gTG9jYWww KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKE5ETDYgPT0gTG9jYWwwKSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKE5ETDcgPT0gTG9jYWwwKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBJZiAoKE5ETDggPT0gTG9jYWwwKSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoSUdEUCwgUENJX0NvbmZpZywgWmVybywgMHgwMTAwKQogICAgICAgICAg ICBGaWVsZCAoSUdEUCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4MTApLCAKICAgICAgICAgICAgICAgIE1BRFIsICAgMzIs IAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUwKSwgCiAgICAgICAgICAgICAgICAgICAgLCAg IDEsIAogICAgICAgICAgICAgICAgR0lWRCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAsICAg MSwgCiAgICAgICAgICAgICAgICBHVU1BLCAgIDUsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgw eDUyKSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTQpLCAKICAgICAgICAgICAgICAgICAg ICAsICAgNCwgCiAgICAgICAgICAgICAgICBHTUZOLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zm c2V0ICgweDU4KSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NUMpLCAKICAgICAgICAgICAg ICAgIEdTVE0sICAgMzIsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweEUwKSwgCiAgICAgICAg ICAgICAgICBHU1NFLCAgIDEsIAogICAgICAgICAgICAgICAgR1NTQiwgICAxNCwgCiAgICAgICAg ICAgICAgICBHU0VTLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweEU0KSwgCiAgICAg ICAgICAgICAgICBBU0xFLCAgIDgsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweEU4KSwgCiAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4RkMpLCAKICAgICAgICAgICAgICAgIEFTTFMsICAgMzIK ICAgICAgICAgICAgfQoKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChJR01NLCBTeXN0ZW1N ZW1vcnksIE1BRFIsIDB4MzAwMCkKICAgICAgICAgICAgRmllbGQgKElHTU0sIEFueUFjYywgTm9M b2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDIw QzgpLCAKICAgICAgICAgICAgICAgICAgICAsICAgNCwgCiAgICAgICAgICAgICAgICBEQ0ZFLCAg IDQKICAgICAgICAgICAgfQoKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChJR0RNLCBTeXN0 ZW1NZW1vcnksIEFTTEIsIDB4MjAwMCkKICAgICAgICAgICAgRmllbGQgKElHRE0sIEFueUFjYywg Tm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU0lHTiwgICAx MjgsIAogICAgICAgICAgICAgICAgU0laRSwgICAzMiwgCiAgICAgICAgICAgICAgICBPVkVSLCAg IDMyLCAKICAgICAgICAgICAgICAgIFNWRVIsICAgMjU2LCAKICAgICAgICAgICAgICAgIFZWRVIs ICAgMTI4LCAKICAgICAgICAgICAgICAgIEdWRVIsICAgMTI4LCAKICAgICAgICAgICAgICAgIE1C T1gsICAgMzIsIAogICAgICAgICAgICAgICAgRE1PRCwgICAzMiwgCiAgICAgICAgICAgICAgICBP ZmZzZXQgKDB4MTAwKSwgCiAgICAgICAgICAgICAgICBEUkRZLCAgIDMyLCAKICAgICAgICAgICAg ICAgIENTVFMsICAgMzIsIAogICAgICAgICAgICAgICAgQ0VWVCwgICAzMiwgCiAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4MTIwKSwgCiAgICAgICAgICAgICAgICBESURMLCAgIDMyLCAKICAgICAg ICAgICAgICAgIERETDIsICAgMzIsIAogICAgICAgICAgICAgICAgRERMMywgICAzMiwgCiAgICAg ICAgICAgICAgICBEREw0LCAgIDMyLCAKICAgICAgICAgICAgICAgIERETDUsICAgMzIsIAogICAg ICAgICAgICAgICAgRERMNiwgICAzMiwgCiAgICAgICAgICAgICAgICBEREw3LCAgIDMyLCAKICAg ICAgICAgICAgICAgIERETDgsICAgMzIsIAogICAgICAgICAgICAgICAgQ1BETCwgICAzMiwgCiAg ICAgICAgICAgICAgICBDUEwyLCAgIDMyLCAKICAgICAgICAgICAgICAgIENQTDMsICAgMzIsIAog ICAgICAgICAgICAgICAgQ1BMNCwgICAzMiwgCiAgICAgICAgICAgICAgICBDUEw1LCAgIDMyLCAK ICAgICAgICAgICAgICAgIENQTDYsICAgMzIsIAogICAgICAgICAgICAgICAgQ1BMNywgICAzMiwg CiAgICAgICAgICAgICAgICBDUEw4LCAgIDMyLCAKICAgICAgICAgICAgICAgIENBRDEsICAgMzIs IAogICAgICAgICAgICAgICAgQ0FMMiwgICAzMiwgCiAgICAgICAgICAgICAgICBDQUwzLCAgIDMy LCAKICAgICAgICAgICAgICAgIENBTDQsICAgMzIsIAogICAgICAgICAgICAgICAgQ0FMNSwgICAz MiwgCiAgICAgICAgICAgICAgICBDQUw2LCAgIDMyLCAKICAgICAgICAgICAgICAgIENBTDcsICAg MzIsIAogICAgICAgICAgICAgICAgQ0FMOCwgICAzMiwgCiAgICAgICAgICAgICAgICBOQURMLCAg IDMyLCAKICAgICAgICAgICAgICAgIE5ETDIsICAgMzIsIAogICAgICAgICAgICAgICAgTkRMMywg ICAzMiwgCiAgICAgICAgICAgICAgICBOREw0LCAgIDMyLCAKICAgICAgICAgICAgICAgIE5ETDUs ICAgMzIsIAogICAgICAgICAgICAgICAgTkRMNiwgICAzMiwgCiAgICAgICAgICAgICAgICBOREw3 LCAgIDMyLCAKICAgICAgICAgICAgICAgIE5ETDgsICAgMzIsIAogICAgICAgICAgICAgICAgQVNM UCwgICAzMiwgCiAgICAgICAgICAgICAgICBUSURYLCAgIDMyLCAKICAgICAgICAgICAgICAgIENI UEQsICAgMzIsIAogICAgICAgICAgICAgICAgQ0xJRCwgICAzMiwgCiAgICAgICAgICAgICAgICBD RENLLCAgIDMyLCAKICAgICAgICAgICAgICAgIFNYU1csICAgMzIsIAogICAgICAgICAgICAgICAg RVZUUywgICAzMiwgCiAgICAgICAgICAgICAgICBDTk9ULCAgIDMyLCAKICAgICAgICAgICAgICAg IE5SRFksICAgMzIsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDIwMCksIAogICAgICAgICAg ICAgICAgU0NJRSwgICAxLCAKICAgICAgICAgICAgICAgIEdFRkMsICAgNCwgCiAgICAgICAgICAg ICAgICBHWEZDLCAgIDMsIAogICAgICAgICAgICAgICAgR0VTRiwgICA4LCAKICAgICAgICAgICAg ICAgIE9mZnNldCAoMHgyMDQpLCAKICAgICAgICAgICAgICAgIFBBUk0sICAgMzIsIAogICAgICAg ICAgICAgICAgRFNMUCwgICAzMiwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzAwKSwgCiAg ICAgICAgICAgICAgICBBUkRZLCAgIDMyLCAKICAgICAgICAgICAgICAgIEFTTEMsICAgMzIsIAog ICAgICAgICAgICAgICAgVENIRSwgICAzMiwgCiAgICAgICAgICAgICAgICBBTFNJLCAgIDMyLCAK ICAgICAgICAgICAgICAgIEJDTFAsICAgMzIsIAogICAgICAgICAgICAgICAgUEZJVCwgICAzMiwg CiAgICAgICAgICAgICAgICBDQkxWLCAgIDMyLCAKICAgICAgICAgICAgICAgIEJDTE0sICAgMzIw LCAKICAgICAgICAgICAgICAgIENQRk0sICAgMzIsIAogICAgICAgICAgICAgICAgRVBGTSwgICAz MiwgCiAgICAgICAgICAgICAgICBQTFVULCAgIDU5MiwgCiAgICAgICAgICAgICAgICBQRk1CLCAg IDMyLCAKICAgICAgICAgICAgICAgIENDRFYsICAgMzIsIAogICAgICAgICAgICAgICAgUENGVCwg ICAzMiwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NDAwKSwgCiAgICAgICAgICAgICAgICBH VkQxLCAgIDQ5MTUyLCAKICAgICAgICAgICAgICAgIFBIRUQsICAgMzIsIAogICAgICAgICAgICAg ICAgQkREQywgICAyMDQ4CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKERCVEIsIFBh Y2thZ2UgKDB4MTUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgMHgwNywgCiAgICAgICAgICAgICAgICAweDM4LCAKICAgICAgICAgICAgICAgIDB4 MDFDMCwgCiAgICAgICAgICAgICAgICAweDBFMDAsIAogICAgICAgICAgICAgICAgMHgzRiwgCiAg ICAgICAgICAgICAgICAweDAxQzcsIAogICAgICAgICAgICAgICAgMHgwRTA3LCAKICAgICAgICAg ICAgICAgIDB4MDFGOCwgCiAgICAgICAgICAgICAgICAweDBFMzgsIAogICAgICAgICAgICAgICAg MHgwRkMwLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAweDcwMDAsIAogICAgICAgICAgICAgICAgMHg3MDA3 LCAKICAgICAgICAgICAgICAgIDB4NzAzOCwgCiAgICAgICAgICAgICAgICAweDcxQzAsIAogICAg ICAgICAgICAgICAgMHg3RTAwCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKENEQ1Qs IFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHhBMAogICAgICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAweEM4CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIDB4MDEwQgogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwMSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAxNDAKICAgICAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwMTY0CiAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIDB4MDE5MAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAg ICAgICBOYW1lIChTVUNDLCBPbmUpCiAgICAgICAgICAgIE5hbWUgKE5WTEQsIDB4MDIpCiAgICAg ICAgICAgIE5hbWUgKENSSVQsIDB4MDQpCiAgICAgICAgICAgIE5hbWUgKE5DUlQsIDB4MDYpCiAg ICAgICAgICAgIE1ldGhvZCAoR1NDSSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgTWV0aG9kIChHQkRBLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIElmICgoR0VTRiA9PSBaZXJvKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBBUk0gPSAweDAyNzkKICAgICAgICAgICAg ICAgICAgICAgICAgR0VTRiA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChT VUNDKSAvKiBcX1NCXy5QQ0kwLkdGWDAuU1VDQyAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgSWYgKChHRVNGID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBQQVJNID0gMHgwMjQwCiAgICAgICAgICAgICAgICAg ICAgICAgIEdFU0YgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoU1VDQykg LyogXF9TQl8uUENJMC5HRlgwLlNVQ0MgKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIElmICgoR0VTRiA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIFBBUk0gJj0gMHhFRkZGMDAwMAogICAgICAgICAgICAgICAg ICAgICAgICBQQVJNICY9IChEZXJlZk9mIChEQlRCIFtJQlRUXSkgPDwgMHgxMCkKICAgICAgICAg ICAgICAgICAgICAgICAgUEFSTSB8PSBJQlRUIC8qIFxfU0JfLlBDSTAuR0ZYMC5QQVJNICovCiAg ICAgICAgICAgICAgICAgICAgICAgIEdFU0YgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoU1VDQykgLyogXF9TQl8uUENJMC5HRlgwLlNVQ0MgKi8KICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoR0VTRiA9PSAweDA1KSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBBUk0gPSBJUFNDIC8qIFxJUFND ICovCiAgICAgICAgICAgICAgICAgICAgICAgIFBBUk0gfD0gKElQQVQgPDwgMHgwOCkKICAgICAg ICAgICAgICAgICAgICAgICAgUEFSTSArPSAweDAxMDAKICAgICAgICAgICAgICAgICAgICAgICAg UEFSTSB8PSAoTElEUyA8PCAweDEwKQogICAgICAgICAgICAgICAgICAgICAgICBQQVJNICs9IDB4 MDAwMTAwMDAKICAgICAgICAgICAgICAgICAgICAgICAgUEFSTSB8PSAoSUJMQyA8PCAweDEyKQog ICAgICAgICAgICAgICAgICAgICAgICBQQVJNIHw9IChJQklBIDw8IDB4MTQpCiAgICAgICAgICAg ICAgICAgICAgICAgIEdFU0YgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo U1VDQykgLyogXF9TQl8uUENJMC5HRlgwLlNVQ0MgKi8KICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIElmICgoR0VTRiA9PSAweDA2KSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFBBUk0gPSBJVFZGIC8qIFxJVFZGICovCiAgICAg ICAgICAgICAgICAgICAgICAgIFBBUk0gfD0gKElUVk0gPDwgMHgwNCkKICAgICAgICAgICAgICAg ICAgICAgICAgR0VTRiA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChTVUND KSAvKiBcX1NCXy5QQ0kwLkdGWDAuU1VDQyAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgSWYgKChHRVNGID09IDB4MDcpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUEFSTSA9IEdJVkQgLyogXF9TQl8uUENJMC5HRlgwLkdJ VkQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgUEFSTSBePSBPbmUKICAgICAgICAgICAgICAg ICAgICAgICAgUEFSTSB8PSAoR01GTiA8PCBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIFBB Uk0gfD0gMHgxODAwCiAgICAgICAgICAgICAgICAgICAgICAgIFBBUk0gfD0gKElETVMgPDwgMHgx MSkKICAgICAgICAgICAgICAgICAgICAgICAgUEFSTSB8PSAoRGVyZWZPZiAoQ0RDVCBbRENGRV0p IDw8IDB4MTUpIC8qIFxfU0JfLlBDSTAuR0ZYMC5QQVJNICovCiAgICAgICAgICAgICAgICAgICAg ICAgIEdFU0YgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChTVUNDKSAvKiBc X1NCXy5QQ0kwLkdGWDAuU1VDQyAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgSWYgKChHRVNGID09IDB4MEEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUEFSTSA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgSWYg KElTU0MpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBBUk0gfD0gMHgwMwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBHRVNGID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFNV Q0MpIC8qIFxfU0JfLlBDSTAuR0ZYMC5TVUNDICovCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBHRVNGID0gWmVybwogICAgICAgICAgICAgICAgICAgIFJldHVybiAo Q1JJVCkgLyogXF9TQl8uUENJMC5HRlgwLkNSSVQgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKFNCQ0IsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgSWYgKChHRVNGID09IFplcm8pKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUEFSTSA9IFplcm8KICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChQRkxWID09IEZNQkwpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQQVJNID0gMHgwMDBGODdGRAogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBGTFYgPT0gRkRUUCkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBB Uk0gPSAweDAwMEY4N0JECiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIEdFU0YgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoU1VD QykgLyogXF9TQl8uUENJMC5HRlgwLlNVQ0MgKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIElmICgoR0VTRiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgR0VTRiA9IFplcm8KICAgICAgICAgICAgICAgICAgICAg ICAgUEFSTSA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChTVUNDKSAvKiBc X1NCXy5QQ0kwLkdGWDAuU1VDQyAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgSWYgKChHRVNGID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgR0VTRiA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgUEFS TSA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChTVUNDKSAvKiBcX1NCXy5Q Q0kwLkdGWDAuU1VDQyAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgSWYgKChHRVNGID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgR0VTRiA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgUEFSTSA9IFpl cm8KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChTVUNDKSAvKiBcX1NCXy5QQ0kwLkdG WDAuU1VDQyAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYg KChHRVNGID09IDB4MDUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgR0VTRiA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgUEFSTSA9IFplcm8KICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChTVUNDKSAvKiBcX1NCXy5QQ0kwLkdGWDAuU1VD QyAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChHRVNG ID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg SVRWRiA9IChQQVJNICYgMHgwRikKICAgICAgICAgICAgICAgICAgICAgICAgSVRWTSA9ICgoUEFS TSAmIDB4RjApID4+IDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIEdFU0YgPSBaZXJvCiAg ICAgICAgICAgICAgICAgICAgICAgIFBBUk0gPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoU1VDQykgLyogXF9TQl8uUENJMC5HRlgwLlNVQ0MgKi8KICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoR0VTRiA9PSAweDA3KSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUEFSTSA9PSBaZXJvKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwwID0gQ0xJRCAvKiBcX1NCXy5QQ0kwLkdGWDAuQ0xJRCAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKCgweDgwMDAwMDAwICYgTG9jYWwwKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTElEICY9IDB4MEYKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTElEIChDTElEKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICBHRVNGID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBQQVJNID0gWmVybwog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFNVQ0MpIC8qIFxfU0JfLlBDSTAuR0ZYMC5T VUNDICovCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEdF U0YgPT0gMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBHRVNGID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBQQVJNID0gWmVybwogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFNVQ0MpIC8qIFxfU0JfLlBDSTAuR0ZYMC5TVUNDICov CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEdFU0YgPT0g MHgwOSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJQlRU ID0gKFBBUk0gJiAweEZGKQogICAgICAgICAgICAgICAgICAgICAgICBHRVNGID0gWmVybwogICAg ICAgICAgICAgICAgICAgICAgICBQQVJNID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFNVQ0MpIC8qIFxfU0JfLlBDSTAuR0ZYMC5TVUNDICovCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEdFU0YgPT0gMHgwQSkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJUFNDID0gKFBBUk0gJiAweEZGKQog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChQQVJNID4+IDB4MDgpICYgMHhGRikpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQVQgPSAo KFBBUk0gPj4gMHgwOCkgJiAweEZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBVC0t CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElCTEMg PSAoKFBBUk0gPj4gMHgxMikgJiAweDAzKQogICAgICAgICAgICAgICAgICAgICAgICBJQklBID0g KChQQVJNID4+IDB4MTQpICYgMHgwNykKICAgICAgICAgICAgICAgICAgICAgICAgR0VTRiA9IFpl cm8KICAgICAgICAgICAgICAgICAgICAgICAgUEFSTSA9IFplcm8KICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChTVUNDKSAvKiBcX1NCXy5QQ0kwLkdGWDAuU1VDQyAqLwogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChHRVNGID09IDB4MEIpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSUYxRSA9ICgoUEFSTSA+ PiBPbmUpICYgT25lKQogICAgICAgICAgICAgICAgICAgICAgICBJRE1TID0gKChQQVJNID4+IDB4 MTEpICYgMHgwRikKICAgICAgICAgICAgICAgICAgICAgICAgR0VTRiA9IFplcm8KICAgICAgICAg ICAgICAgICAgICAgICAgUEFSTSA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChTVUNDKSAvKiBcX1NCXy5QQ0kwLkdGWDAuU1VDQyAqLwogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgSWYgKChHRVNGID09IDB4MTApKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgR0VTRiA9IFplcm8KICAgICAgICAgICAgICAg ICAgICAgICAgUEFSTSA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChTVUND KSAvKiBcX1NCXy5QQ0kwLkdGWDAuU1VDQyAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgSWYgKChHRVNGID09IDB4MTEpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUEFSTSA9IChMSURTIDw8IDB4MDgpCiAgICAgICAgICAg ICAgICAgICAgICAgIFBBUk0gKz0gMHgwMTAwCiAgICAgICAgICAgICAgICAgICAgICAgIEdFU0Yg PSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoU1VDQykgLyogXF9TQl8uUENJ MC5HRlgwLlNVQ0MgKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IElmICgoR0VTRiA9PSAweDEyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoUEFSTSAmIE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKFBBUk0gPj4gT25lKSA9PSBPbmUpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElTU0MgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHRVNGID0gWmVybwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQ1JJVCkgLyogXF9TQl8uUENJMC5HRlgwLkNSSVQgKi8KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElTU0MgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIEdFU0YgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAg ICAgIFBBUk0gPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoU1VDQykgLyog XF9TQl8uUENJMC5HRlgwLlNVQ0MgKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIElmICgoR0VTRiA9PSAweDEzKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIEdFU0YgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIFBB Uk0gPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoU1VDQykgLyogXF9TQl8u UENJMC5HRlgwLlNVQ0MgKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIElmICgoR0VTRiA9PSAweDE0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFBBVlAgPSAoUEFSTSAmIDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAg IEdFU0YgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIFBBUk0gPSBaZXJvCiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoU1VDQykgLyogXF9TQl8uUENJMC5HRlgwLlNVQ0MgKi8K ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEdFU0YgPSBaZXJvCiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChTVUNDKSAvKiBcX1NCXy5QQ0kwLkdGWDAuU1VDQyAq LwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoR0VGQyA9PSAweDA0KSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBHWEZDID0gR0JEQSAoKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmICgoR0VGQyA9PSAweDA2KSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBHWEZDID0gU0JDQiAoKQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIEdFRkMgPSBaZXJvCiAgICAgICAgICAgICAgICBTQ0lT ID0gT25lCiAgICAgICAgICAgICAgICBHU1NFID0gWmVybwogICAgICAgICAgICAgICAgU0NJRSA9 IFplcm8KICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAg ICAgICAgTWV0aG9kIChQRFJELCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBJZiAoIURSRFkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKEFTTFApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJu ICghRFJEWSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChQU1RTLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKENTVFMgPiAweDAy KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoQVNMUCkKICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKChDU1RTID09IDB4MDMpKQog ICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEdOT1QsIDIsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChQRFJEICgpKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIENFVlQgPSBBcmcwCiAgICAgICAgICAgICAgICBDU1RTID0gMHgwMwog ICAgICAgICAgICAgICAgSWYgKCgoQ0hQRCA9PSBaZXJvKSAmJiAoQXJnMSA9PSBaZXJvKSkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCgoT1NZUyA+IDB4MDdEMCkg fHwgKE9TWVMgPCAweDA3RDYpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIE5vdGlmeSAoUENJMCwgQXJnMSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgTm90aWZ5IChHRlgwLCBBcmcxKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOb3RpZnkgKEdGWDAsIDB4ODApIC8vIFN0YXR1 cyBDaGFuZ2UKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTWV0aG9kIChHSERTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBUSURYID0gQXJnMAogICAgICAgICAgICAgICAgUmV0dXJuIChHTk9UIChP bmUsIFplcm8pKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKEdMSUQsIDEsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENMSUQgPSBBcmcwCiAg ICAgICAgICAgICAgICBSZXR1cm4gKEdOT1QgKDB4MDIsIFplcm8pKQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKEdEQ0ssIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIENEQ0sgPSBBcmcwCiAgICAgICAgICAgICAgICBSZXR1cm4gKEdOT1Qg KDB4MDQsIFplcm8pKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFBBUkQsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICghQVJEWSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoQVNMUCkKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKCFBUkRZKQogICAgICAgICAgICB9 CgogICAgICAgICAgICBNZXRob2QgKEFJTlQsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIElmICghKFRDSEUgJiAoT25lIDw8IEFyZzApKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBJZiAoUEFSRCAoKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBJZiAoKEFyZzAgPT0gMHgwMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgSWYgKENQRk0pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDAgPSAoQ1BGTSAmIDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs MSA9IChFUEZNICYgMHgwRikKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0g T25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKChMb2NhbDEgJiAweDA2KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQRklUID0gMHgwNgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoTG9jYWwx ICYgMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUEZJVCA9IDB4MDgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQRklUID0gT25lCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMSAmIDB4MDgpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBGSVQgPSAweDA4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFbHNlSWYgKChMb2NhbDEgJiBPbmUpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGSVQgPSBPbmUK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQRklUID0gMHgwNgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2Fs MCA9PSAweDA4KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKChMb2NhbDEgJiBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGSVQgPSBPbmUKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKExv Y2FsMSAmIDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBGSVQgPSAweDA2CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEZJVCA9IDB4MDgKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBQRklUIF49IDB4MDcKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFBGSVQgfD0gMHg4MDAwMDAwMAogICAgICAg ICAgICAgICAgICAgIEFTTEMgPSAweDA0CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICBFbHNlSWYgKChBcmcwID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgQkNMUCA9ICgoQXJnMSAqIDB4RkYpIC8gMHg2NCkKICAgICAgICAgICAgICAgICAgICBC Q0xQIHw9IDB4ODAwMDAwMDAKICAgICAgICAgICAgICAgICAgICBBU0xDID0gMHgwMgogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMCA9PSBaZXJvKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBTFNJID0gQXJnMQogICAgICAgICAgICAg ICAgICAgIEFTTEMgPSBPbmUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBBU0xFID0gT25lCiAgICAgICAgICAgICAgICBS ZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoU0NJUCwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChPVkVSICE9 IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoIUdT TUkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKElTUDApCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MEYzOCkgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAg ICAgICAgIE5hbWUgKF9ERE4sICJWTFYyIElTUCAtIDgwODYwRjM4IikgIC8vIF9ERE46IERPUyBE ZXZpY2UgTmFtZQogICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5p cXVlIElECiAgICAgICAgICAgICAgICBOYW1lIChfREVQLCBQYWNrYWdlICgweDAxKSAgLy8gX0RF UDogRGVwZW5kZW5jaWVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUEVQ RAogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIElmICgoU09DUyA+PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoSVNQRCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgX0FEUiA9IDB4MEYzOQogICAgICAgICAgICAgICAgICAgICAgICBfREROID0gIlZMVjIg SVNQIC0gODA4NjBGMzkiCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoSVNQRCA9PSBPbmUp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoU0JV RiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgMHhE MEMwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAg MHgwMDQwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAg ICAgICApCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoU0JVRikgLyogXF9TQl8u UENJMC5HRlgwLklTUDAuU0JVRiAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX1NSUywgMSwgTm90U2VyaWFsaXplZCkgIC8vIF9TUlM6IFNldCBSZXNvdXJjZSBT ZXR0aW5ncwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ESVM6IERpc2FibGUgRGV2 aWNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg TWV0aG9kIChfRFNNLCA0LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmlj IE1ldGhvZAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9 PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJ ZiAoKEFyZzAgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9QUikKICAgIHsKICAgICAg ICBQcm9jZXNzb3IgKENQVTAsIDB4MDEsIDB4MDAwMDAwMDAsIDB4MDApIHt9CiAgICAgICAgUHJv Y2Vzc29yIChDUFUxLCAweDAyLCAweDAwMDAwMDAwLCAweDAwKSB7fQogICAgICAgIFByb2Nlc3Nv ciAoQ1BVMiwgMHgwMywgMHgwMDAwMDAwMCwgMHgwMCkge30KICAgICAgICBQcm9jZXNzb3IgKENQ VTMsIDB4MDQsIDB4MDAwMDAwMDAsIDB4MDApIHt9CiAgICB9CgogICAgTXV0ZXggKE1VVFgsIDB4 MDApCiAgICBPcGVyYXRpb25SZWdpb24gKFBSVDAsIFN5c3RlbUlPLCAweDgwLCAweDA0KQogICAg RmllbGQgKFBSVDAsIERXb3JkQWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICBQODBI LCAgIDMyCiAgICB9CgogICAgTWV0aG9kIChQOFhILCAyLCBTZXJpYWxpemVkKQogICAgewogICAg ICAgIElmICgoQXJnMCA9PSBaZXJvKSkKICAgICAgICB7CiAgICAgICAgICAgIFA4MEQgPSAoKFA4 MEQgJiAweEZGRkZGRjAwKSB8IEFyZzEpCiAgICAgICAgfQoKICAgICAgICBJZiAoKEFyZzAgPT0g T25lKSkKICAgICAgICB7CiAgICAgICAgICAgIFA4MEQgPSAoKFA4MEQgJiAweEZGRkYwMEZGKSB8 IChBcmcxIDw8IDB4MDgpKQogICAgICAgIH0KCiAgICAgICAgSWYgKChBcmcwID09IDB4MDIpKQog ICAgICAgIHsKICAgICAgICAgICAgUDgwRCA9ICgoUDgwRCAmIDB4RkYwMEZGRkYpIHwgKEFyZzEg PDwgMHgxMCkpCiAgICAgICAgfQoKICAgICAgICBJZiAoKEFyZzAgPT0gMHgwMykpCiAgICAgICAg ewogICAgICAgICAgICBQODBEID0gKChQODBEICYgMHgwMEZGRkZGRikgfCAoQXJnMSA8PCAweDE4 KSkKICAgICAgICB9CgogICAgICAgIFA4MEggPSBQODBEIC8qIFxQODBEICovCiAgICB9CgogICAg T3BlcmF0aW9uUmVnaW9uIChTUFJULCBTeXN0ZW1JTywgMHhCMiwgMHgwMikKICAgIEZpZWxkIChT UFJULCBCeXRlQWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICBTU01QLCAgIDgKICAg IH0KCiAgICBNZXRob2QgKF9QSUMsIDEsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUElDOiBJbnRlcnJ1 cHQgTW9kZWwKICAgIHsKICAgICAgICBHUElDID0gQXJnMAogICAgICAgIFBJQ00gPSBBcmcwCiAg ICB9CgogICAgT3BlcmF0aW9uUmVnaW9uIChTV0MwLCBTeXN0ZW1JTywgMHgwNjEwLCAweDBGKQog ICAgRmllbGQgKFNXQzAsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAg RzFTLCAgICA4LCAKICAgICAgICBPZmZzZXQgKDB4MDQpLCAKICAgICAgICBHMUUsICAgIDgsIAog ICAgICAgIE9mZnNldCAoMHgwQSksIAogICAgICAgIEcxUzIsICAgOCwgCiAgICAgICAgRzFTMywg ICA4CiAgICB9CgogICAgT3BlcmF0aW9uUmVnaW9uIChTV0MxLCBTeXN0ZW1JTywgUE1CUywgMHgy QykKICAgIEZpZWxkIChTV0MxLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAg ICAgICBPZmZzZXQgKDB4MjApLCAKICAgICAgICBHMFMsICAgIDMyLCAKICAgICAgICBPZmZzZXQg KDB4MjgpLCAKICAgICAgICBHMEVOLCAgIDMyCiAgICB9CgogICAgTWV0aG9kIChfUFRTLCAxLCBO b3RTZXJpYWxpemVkKSAgLy8gX1BUUzogUHJlcGFyZSBUbyBTbGVlcAogICAgewogICAgICAgIFA4 MEQgPSBaZXJvCiAgICAgICAgUDhYSCAoWmVybywgQXJnMCkKICAgICAgICBHMVMzID0gT25lcwog ICAgICAgIEcxUzIgPSBPbmVzCiAgICAgICAgRzFTID0gT25lCiAgICAgICAgRzFFID0gT25lCiAg ICAgICAgRzBTID0gT25lcwogICAgICAgIElmICgoKEFyZzAgPT0gMHgwNCkgfHwgKEFyZzAgPT0g MHgwNSkpKQogICAgICAgIHsKICAgICAgICAgICAgRzBFTiA9IFplcm8KICAgICAgICAgICAgU0xQ UyA9IE9uZQogICAgICAgICAgICBTTFBFID0gWmVybwogICAgICAgICAgICBQV0JTID0gT25lCiAg ICAgICAgICAgIFBNMVMgPSBPbmUKICAgICAgICB9CgogICAgICAgIElmIChDb25kUmVmT2YgKFRD R00pKQogICAgICAgIHsKICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQ0IuVFBNLlBUUyAoQXJnMCkK ICAgICAgICB9CiAgICB9CgogICAgTWV0aG9kIChfV0FLLCAxLCBTZXJpYWxpemVkKSAgLy8gX1dB SzogV2FrZQogICAgewogICAgICAgIFA4WEggKE9uZSwgMHhBQikKICAgICAgICBJZiAoTkVYUCkK ICAgICAgICB7CiAgICAgICAgICAgIElmICgoT1NDQyAmIDB4MDIpKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBcX1NCLlBDSTAuTkhQRyAoKQogICAgICAgICAgICB9CgogICAgICAgICAg ICBJZiAoKE9TQ0MgJiAweDA0KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgXF9TQi5Q Q0kwLk5QTUUgKCkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgSWYgKCgoQXJnMCA9 PSAweDAzKSB8fCAoQXJnMCA9PSAweDA0KSkpCiAgICAgICAgewogICAgICAgICAgICBJZiAoKFBG TFYgPT0gRk1CTCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSAw eDA0KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQTk9UICgpCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgoQ0ZHRCAmIDB4MDEw MDAwMDApKSB7fQogICAgICAgICAgICBJZiAoKE9TWVMgPT0gMHgwN0QyKSkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgSWYgKChDRkdEICYgT25lKSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBJZiAoKFxfUFIuQ1BVMC5fUFBDID4gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBcX1BSLkNQVTAuX1BQQyAtPSBPbmUK ICAgICAgICAgICAgICAgICAgICAgICAgUE5PVCAoKQogICAgICAgICAgICAgICAgICAgICAgICBc X1BSLkNQVTAuX1BQQyArPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgUE5PVCAoKQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBcX1BSLkNQVTAuX1BQQyArPSBPbmUKICAg ICAgICAgICAgICAgICAgICAgICAgUE5PVCAoKQogICAgICAgICAgICAgICAgICAgICAgICBcX1BS LkNQVTAuX1BQQyAtPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgUE5PVCAoKQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0K CiAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQogICAgICAgIHsKICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgIFplcm8KICAgICAgICB9KQogICAgfQoKICAgIE1ldGhvZCAoUE5PVCwg MCwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBJZiAoTVBFTikKICAgICAgICB7CiAgICAgICAg ICAgIElmICgoUERDMCAmIDB4MDgpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOb3Rp ZnkgKFxfUFIuQ1BVMCwgMHg4MCkgLy8gUGVyZm9ybWFuY2UgQ2FwYWJpbGl0eSBDaGFuZ2UKICAg ICAgICAgICAgICAgIElmICgoUERDMCAmIDB4MTApKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFNsZWVwICgweDY0KQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9Q Ui5DUFUwLCAweDgxKSAvLyBDLVN0YXRlIENoYW5nZQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBJZiAoKFBEQzEgJiAweDA4KSkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgTm90aWZ5IChcX1BSLkNQVTEsIDB4ODApIC8vIFBlcmZvcm1hbmNlIENhcGFi aWxpdHkgQ2hhbmdlCiAgICAgICAgICAgICAgICBJZiAoKFBEQzEgJiAweDEwKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHg2NCkKICAgICAgICAgICAgICAg ICAgICBOb3RpZnkgKFxfUFIuQ1BVMSwgMHg4MSkgLy8gQy1TdGF0ZSBDaGFuZ2UKICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKChQREMyICYgMHgwOCkpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5DUFUyLCAweDgwKSAvLyBQ ZXJmb3JtYW5jZSBDYXBhYmlsaXR5IENoYW5nZQogICAgICAgICAgICAgICAgSWYgKChQREMyICYg MHgxMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4NjQp CiAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1BSLkNQVTIsIDB4ODEpIC8vIEMtU3RhdGUg Q2hhbmdlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmICgo UERDMyAmIDB4MDgpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfUFIu Q1BVMywgMHg4MCkgLy8gUGVyZm9ybWFuY2UgQ2FwYWJpbGl0eSBDaGFuZ2UKICAgICAgICAgICAg ICAgIElmICgoUERDMyAmIDB4MTApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFNsZWVwICgweDY0KQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5DUFUzLCAw eDgxKSAvLyBDLVN0YXRlIENoYW5nZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAg ICAgICAgfQogICAgICAgIEVsc2UKICAgICAgICB7CiAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5D UFUwLCAweDgwKSAvLyBQZXJmb3JtYW5jZSBDYXBhYmlsaXR5IENoYW5nZQogICAgICAgICAgICBT bGVlcCAoMHg2NCkKICAgICAgICAgICAgTm90aWZ5IChcX1BSLkNQVTAsIDB4ODEpIC8vIEMtU3Rh dGUgQ2hhbmdlCiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChfU0IpCiAgICB7CiAgICAgICAg TmFtZSAoQ1JUVCwgMHg2RSkKICAgICAgICBOYW1lIChBQ1RULCAweDU1KQogICAgICAgIE5hbWUg KFNDUjAsIDB4MDEwMikKICAgICAgICBOYW1lIChTQ1IxLCAweDAxMDIpCiAgICAgICAgTmFtZSAo U0NSMiwgMHgwMTAyKQogICAgICAgIE5hbWUgKFNDUjMsIDB4MDEwMikKICAgICAgICBOYW1lIChH Q1IwLCAweDQ2KQogICAgICAgIE5hbWUgKEdDUjEsIDB4NDYpCiAgICAgICAgTmFtZSAoR0NSMiwg MHg0NikKICAgICAgICBOYW1lIChHQ1IzLCAweDQ2KQogICAgICAgIE5hbWUgKEdDUjQsIDB4NDYp CiAgICAgICAgTmFtZSAoUFNUMCwgMHgzQykKICAgICAgICBOYW1lIChQU1QxLCAweDNDKQogICAg ICAgIE5hbWUgKFBTVDIsIDB4M0MpCiAgICAgICAgTmFtZSAoUFNUMywgMHgzQykKICAgICAgICBO YW1lIChQU1Q0LCAweDNDKQogICAgICAgIE5hbWUgKExQTVYsIDB4MDMpCiAgICAgICAgTmFtZSAo UERCRywgWmVybykKICAgICAgICBOYW1lIChQRFBNLCBPbmUpCiAgICAgICAgTmFtZSAoUERCUCwg T25lKQogICAgICAgIE5hbWUgKERMUE8sIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgewogICAgICAg ICAgICBPbmUsIAogICAgICAgICAgICBPbmUsIAogICAgICAgICAgICBPbmUsIAogICAgICAgICAg ICAweDE5LCAKICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgT25lCiAgICAgICAgfSkKICAg ICAgICBOYW1lIChCUlFELCBaZXJvKQogICAgICAgIE5hbWUgKFBTQzEsIFplcm8pCiAgICAgICAg TmFtZSAoUFNDMiwgWmVybykKICAgICAgICBOYW1lIChQU0MzLCBaZXJvKQogICAgICAgIE5hbWUg KFBTQTEsIFplcm8pCiAgICAgICAgTmFtZSAoUFNBMiwgWmVybykKICAgICAgICBOYW1lIChQU0Ez LCBaZXJvKQogICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9JTkk6 IEluaXRpYWxpemUKICAgICAgICB7CiAgICAgICAgICAgIENSVFQgPSBEUENUIC8qIFxEUENUICov CiAgICAgICAgICAgIEFDVFQgPSBEUFBUIC8qIFxEUFBUICovCiAgICAgICAgICAgIEdDUjAgPSBE R0MwIC8qIFxER0MwICovCiAgICAgICAgICAgIEdDUjEgPSBER0MxIC8qIFxER0MxICovCiAgICAg ICAgICAgIEdDUjIgPSBER0MyIC8qIFxER0MyICovCiAgICAgICAgICAgIEdDUjMgPSBER0MzIC8q IFxER0MzICovCiAgICAgICAgICAgIEdDUjQgPSBER0M0IC8qIFxER0M0ICovCiAgICAgICAgICAg IFBTVDAgPSBER1AwIC8qIFxER1AwICovCiAgICAgICAgICAgIFBTVDEgPSBER1AxIC8qIFxER1Ax ICovCiAgICAgICAgICAgIFBTVDIgPSBER1AyIC8qIFxER1AyICovCiAgICAgICAgICAgIFBTVDMg PSBER1AzIC8qIFxER1AzICovCiAgICAgICAgICAgIFBTVDQgPSBER1A0IC8qIFxER1A0ICovCiAg ICAgICAgICAgIFNDUjAgPSBEU0MwIC8qIFxEU0MwICovCiAgICAgICAgICAgIFNDUjEgPSBEU0Mx IC8qIFxEU0MxICovCiAgICAgICAgICAgIFNDUjIgPSBEU0MyIC8qIFxEU0MyICovCiAgICAgICAg ICAgIFNDUjMgPSBEU0MzIC8qIFxEU0MzICovCiAgICAgICAgICAgIExQTVYgPSBETFBNIC8qIFxE TFBNICovCiAgICAgICAgICAgIFBEQkcgPSBEREJHIC8qIFxEREJHICovCiAgICAgICAgICAgIERM UE8gW09uZV0gPSBMUE9FIC8qIFxMUE9FICovCiAgICAgICAgICAgIERMUE8gWzB4MDJdID0gTFBQ UyAvKiBcTFBQUyAqLwogICAgICAgICAgICBETFBPIFsweDAzXSA9IExQU1QgLyogXExQU1QgKi8K ICAgICAgICAgICAgRExQTyBbMHgwNF0gPSBMUFBDIC8qIFxMUFBDICovCiAgICAgICAgICAgIERM UE8gWzB4MDVdID0gTFBQRiAvKiBcTFBQRiAqLwogICAgICAgICAgICBQRFBNID0gRFBNRSAvKiBc RFBNRSAqLwogICAgICAgIH0KCiAgICAgICAgU2NvcGUgKFBDSTApCiAgICAgICAgewogICAgICAg ICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXpl CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9TWVMgPSAweDA3RDAKICAgICAgICAgICAg ICAgIElmIChDb25kUmVmT2YgKFxfT1NJLCBMb2NhbDApKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIElmIChfT1NJICgiV2luZG93cyAyMDAxIikpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBPU1lTID0gMHgwN0QxCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoX09TSSAoIldpbmRvd3MgMjAwMSBT UDEiKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9TWVMg PSAweDA3RDEKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChf T1NJICgiV2luZG93cyAyMDAxIFNQMiIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgT1NZUyA9IDB4MDdEMgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgSWYgKF9PU0kgKCJXaW5kb3dzIDIwMDYiKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9TWVMgPSAweDA3RDYKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChfT1NJICgiV2luZG93cyAyMDA5Iikp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBPU1lTID0gMHgw N0Q5CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoX09TSSAo IldpbmRvd3MgMjAxMiIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgT1NZUyA9IDB4MDdEQwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgSWYgKF9PU0kgKCJXaW5kb3dzIDIwMTMiKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIE9TWVMgPSAweDA3REQKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoTkhQ RywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICB9CgogICAgICAgICAg ICBNZXRob2QgKE5QTUUsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg fQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChHUEVEKQogICAgICAgIHsKICAgICAgICAgICAg TmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgTmFtZSAoX0hJ RCwgIklOVDAwMDIiIC8qIFZpcnR1YWwgR1BJTyBDb250cm9sbGVyICovKSAgLy8gX0hJRDogSGFy ZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX0NJRCwgIklOVDAwMDIiIC8qIFZpcnR1YWwgR1BJ TyBDb250cm9sbGVyICovKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICBOYW1l IChfREROLCAiVmlydHVhbCBHUElPIGNvbnRyb2xsZXIiKSAgLy8gX0RETjogRE9TIERldmljZSBO YW1lCiAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAg ICAgICAgICBOYW1lIChJTlNULCBPbmUpCiAgICAgICAgICAgIE5hbWUgKFhUTVAsIFplcm8pCiAg ICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoU0NJUywgU3lzdGVtTWVtb3J5LCAweEZFRDAzMEMw LCAweDA0KQogICAgICAgICAgICBGaWVsZCAoU0NJUywgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2Vy dmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExHQkUsICAgMSwgCiAgICAgICAgICAg ICAgICBMSEFELCAgIDEsIAogICAgICAgICAgICAgICAgTEFUQSwgICAxLCAKICAgICAgICAgICAg ICAgIExESU8sICAgMSwgCiAgICAgICAgICAgICAgICBMQVJELCAgIDEsIAogICAgICAgICAgICAg ICAgTElPMSwgICAxLCAKICAgICAgICAgICAgICAgIExDRVAsICAgMSwgCiAgICAgICAgICAgICAg ICBMQU5CLCAgIDEsIAogICAgICAgICAgICAgICAgTEhDSSwgICAxLCAKICAgICAgICAgICAgICAg IExPVEcsICAgMSwgCiAgICAgICAgICAgICAgICBMRUNJLCAgIDEsIAogICAgICAgICAgICAgICAg TEhTSSwgICAxCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0hSViwgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9IUlY6IEhhcmR3YXJlIFJldmlzaW9uCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIFJldHVybiAoU09DUykgLyogXFNPQ1MgKi8KICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNl LVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFyZzAg PT0gVG9VVUlEICgiOGIzOGI0NjktNmY5NS00YjA4LTliMDItMmRlZmNjMmQyYzM1IikpKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBP bmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKChQTUJTICsgMHgyMCkpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChCdWZmZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgTmFtZSAoUkJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwg TGV2ZWwsIEFjdGl2ZUhpZ2gsIFNoYXJlZCwgLCwgKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOSwKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgUmV0dXJuIChSQlVGKSAvKiBcX1NCXy5H UEVELl9DUlMuUkJVRiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEs IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2Qg KF9BRUksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQUVJOiBBQ1BJIEV2ZW50IEludGVycnVwdHMK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoUkJVRiwgUmVzb3VyY2VUZW1wbGF0 ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdwaW9JbnQgKExldmVs LCBBY3RpdmVIaWdoLCBFeGNsdXNpdmVBbmRXYWtlLCBQdWxsRG93biwgMHgwMDAwLAogICAgICAg ICAgICAgICAgICAgICAgICAiXFxfU0IuR1BFRCIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwK ICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8g UGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgUmV0dXJuIChS QlVGKSAvKiBcX1NCXy5HUEVELl9BRUkuUkJVRiAqLwogICAgICAgICAgICB9CgogICAgICAgICAg ICBNZXRob2QgKF9MMDIsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfTHh4OiBMZXZlbC1UcmlnZ2Vy ZWQgR1BFCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoWEhDSSA9PSBaZXJvKSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKF5eUENJMC5FSEMxLlBN RVMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IF5eUENJMC5FSEMxLlBNRUUgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IF5eUENJMC5FSEMxLlBNRUUgLyogXF9TQl8uUENJMC5FSEMxLlBNRUUgKi8KICAgICAgICAgICAg ICAgICAgICAgICAgTm90aWZ5ICheXlBDSTAuRUhDMSwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNl SWYgKChTT0NTID4gMHgwNSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg WFRNUCA9ICheXlBDSTAuWEhDMS5QTUNTICYgMHg4MDAwKQogICAgICAgICAgICAgICAgICAgIElm ICgoWFRNUCA9PSAweDgwMDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgTm90aWZ5ICheXlBDSTAuWEhDMSwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlSWYg KChTT0NTID4gMHgwMikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgWFRN UCA9ICheXlBDSTAuWEhDMS5QTUNTICYgMHg4MDAwKQogICAgICAgICAgICAgICAgICAgIElmICgo WFRNUCA9PSAweDgwMDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgXl5QQ0kwLlhIQzEuUE1DSCA9IDB4ODEKICAgICAgICAgICAgICAgICAgICAgICAgTm90 aWZ5ICheXlBDSTAuWEhDMSwgMHgwMikgLy8gRGV2aWNlIFdha2UKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgWFRNUCA9ICheXlBDSTAuWEhDMS5QTUNTICYgMHgwMTAz KQogICAgICAgICAgICAgICAgICAgIElmICgoWFRNUCA9PSAweDAxMDMpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgXl5QQ0kwLlhIQzEuUE1DUyA9IDB4MDEw MAogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwQSkKICAgICAgICAgICAgICAgICAg ICAgICAgWFRNUCA9ICheXlBDSTAuWEhDMS5QTUNTICYgMHg4MDAwKQogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKFhUTVAgPT0gMHg4MDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5QQ0kwLlhIQzEuUE1DSCA9IDB4ODEKICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eUENJMC5YSEMx LlBNQ1MgPSAweDAxMDMKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgU2xlZXAgKDB4MEEpCiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXl5Q Q0kwLlhIQzEsIDB4MDIpIC8vIERldmljZSBXYWtlCiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIF5eUENJMC5YSEMxLlBNQ0ggPSAweDgxCiAgICAgICAgICAgICAgICAgICAgICAg IFNsZWVwICgweDBBKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBJZiAoKE9UR00gIT0gWmVybykpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgSWYgKCheXlBDSTAuT1RHMS5QTUVTID09IE9uZSkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBREJHICgiT1RHIHdha2UiKQogICAg ICAgICAgICAgICAgICAgICAgICBeXlBDSTAuT1RHMS5QTUVFID0gWmVybwogICAgICAgICAgICAg ICAgICAgICAgICBeXlBDSTAuT1RHMS5DUE1FID0gWmVybwogICAgICAgICAgICAgICAgICAgICAg ICBeXlBDSTAuT1RHMS5VMkVOID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBeXlBDSTAu T1RHMS5VM0VOID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKF5eUENJMC5P VEcxLCAweDAyKSAvLyBEZXZpY2UgV2FrZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKF5eUENJMC5TRUMwLlBNRVMgPT0gT25lKSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBeXlBDSTAuU0VDMC5QTUVFID0g WmVybwogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IF5eUENJMC5TRUMwLlBNRUUgLyogXF9T Ql8uUENJMC5TRUMwLlBNRUUgKi8KICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKF5eUENJMC5T RUMwLCAweDAyKSAvLyBEZXZpY2UgV2FrZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKEdQTzApCiAgICAgICAgewogICAgICAgICAgICBO YW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICBOYW1lIChfSElE LCAiSU5UMzNGQyIgLyogSW50ZWwgQmF5dHJhaWwgR1BJTyBDb250cm9sbGVyICovKSAgLy8gX0hJ RDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX0NJRCwgIklOVDMzRkMiIC8qIEludGVs IEJheXRyYWlsIEdQSU8gQ29udHJvbGxlciAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAg ICAgICAgICAgTmFtZSAoX0RETiwgIlZhbGxleVZpZXcgR2VuZXJhbCBQdXJwb3NlIElucHV0L091 dHB1dCAoR1BJTykgY29udHJvbGxlciIpICAvLyBfREROOiBET1MgRGV2aWNlIE5hbWUKICAgICAg ICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE1l dGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2Ug U2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoUkJVRiwgUmVzb3Vy Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE1lbW9y eTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRUQwQzAwMCwg ICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAw MCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICApCiAg ICAgICAgICAgICAgICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0 aXZlTG93LCBTaGFyZWQsICwsICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAwMDAwMzEsCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgIFJldHVybiAoUkJVRikgLyogXF9TQl8uR1BPMC5fQ1JTLlJC VUYgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChHUDBNLCBT eXN0ZW1NZW1vcnksIDB4RkVEMEMwMDAsIDB4MDEwMCkKICAgICAgICAgICAgRmllbGQgKEdQME0s IERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4QTgpLCAKICAgICAgICAgICAgICAgIERQUlMsICAgMQogICAgICAgICAgICB9 CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBT dGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9BRUksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf QUVJOiBBQ1BJIEV2ZW50IEludGVycnVwdHMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg TmFtZSAoUEJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIEdwaW9JbnQgKEVkZ2UsIEFjdGl2ZUJvdGgsIFNoYXJlZEFuZFdha2UsIFB1 bGxEZWZhdWx0LCAweDAwMDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUE8wIiwg MHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDVFCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBCVUYpIC8qIFxfU0JfLkdQTzAuX0FFSS5QQlVGICov CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0U1RSwgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9FeHg6IEVkZ2UtVHJpZ2dlcmVkIEdQRQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBOb3RpZnkgKExXTUksIDB4QTApIC8vIERldmljZS1TcGVjaWZpYwogICAgICAgICAgICB9 CgogICAgICAgICAgICBOYW1lIChBVkJMLCBaZXJvKQogICAgICAgICAgICBNZXRob2QgKF9SRUcs IDIsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUkVHOiBSZWdpb24gQXZhaWxhYmlsaXR5CiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDA4KSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBBVkJMID0gQXJnMQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKEdQT1AsIEdlbmVyYWxQdXJw b3NlSW8sIFplcm8sIDB4MEMpCiAgICAgICAgICAgIEZpZWxkIChHUE9QLCBCeXRlQWNjLCBOb0xv Y2ssIFByZXNlcnZlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDb25uZWN0aW9uICgK ICAgICAgICAgICAgICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERlZmF1bHQsIDB4MDAw MCwgMHgwMDAwLCBJb1Jlc3RyaWN0aW9uT3V0cHV0T25seSwKICAgICAgICAgICAgICAgICAgICAg ICAgIlxcX1NCLkdQTzAiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAg ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwMzUKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgKSwgCiAgICAgICAgICAgICAgICBCVEQzLCAgIDEsIAogICAgICAgICAg ICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgR3Bpb0lvIChFeGNsdXNpdmUs IFB1bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAwMCwgSW9SZXN0cmljdGlvbk91dHB1dE9ubHksCiAg ICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUE8wIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1l ciwgLAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHsg ICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDNBCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgU1VT QiwgICAxLCAKICAgICAgICAgICAgICAgIENvbm5lY3Rpb24gKAogICAgICAgICAgICAgICAgICAg IEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJp Y3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BPMCIsIDB4 MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAg ICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAzQgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApLCAK ICAgICAgICAgICAgICAgIFNIRDMsICAgMSwgCiAgICAgICAgICAgICAgICBDb25uZWN0aW9uICgK ICAgICAgICAgICAgICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERlZmF1bHQsIDB4MDAw MCwgMHgwMDAwLCBJb1Jlc3RyaWN0aW9uT3V0cHV0T25seSwKICAgICAgICAgICAgICAgICAgICAg ICAgIlxcX1NCLkdQTzAiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAg ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwM0MKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgKSwgCiAgICAgICAgICAgICAgICBUQ0QzLCAgIDEKICAgICAgICAgICAg fQoKICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2 aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChf VF8wLCBaZXJvKSAgLy8gX1RfeDogRW1pdHRlZCBieSBBU0wgQ29tcGlsZXIKICAgICAgICAgICAg ICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI0ZjI0OGY0MC1kNWUyLTQ5OWYtODM0Yy0yNzc1OGVh MWNkM2YiKSAvKiBHUElPIENvbnRyb2xsZXIgKi8pKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFdoaWxlIChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBfVF8wID0gVG9JbnRlZ2VyIChBcmcyKQogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoKF9UXzAgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzAgPT0gT25lKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAx KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChHUE8xKQog ICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MK ICAgICAgICAgICAgTmFtZSAoX0hJRCwgIklOVDMzRkMiIC8qIEludGVsIEJheXRyYWlsIEdQSU8g Q29udHJvbGxlciAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9D SUQsICJJTlQzM0ZDIiAvKiBJbnRlbCBCYXl0cmFpbCBHUElPIENvbnRyb2xsZXIgKi8pICAvLyBf Q0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgIE5hbWUgKF9ERE4sICJWYWxsZXlWaWV3IEdQ TkNPUkUgY29udHJvbGxlciIpICAvLyBfREROOiBET1MgRGV2aWNlIE5hbWUKICAgICAgICAgICAg TmFtZSAoX1VJRCwgMHgwMikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICBNZXRob2Qg KF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRp bmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKFJCVUYsIFJlc291cmNlVGVt cGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZp eGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkVEMEQwMDAsICAgICAg ICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDAsICAg ICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAg ICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxv dywgU2hhcmVkLCAsLCApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAweDAwMDAwMDMwLAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICBSZXR1cm4gKFJCVUYpIC8qIFxfU0JfLkdQTzEuX0NSUy5SQlVGICov CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MEYpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmljZSAoR1BPMikKICAg ICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNzCiAg ICAgICAgICAgIE5hbWUgKF9ISUQsICJJTlQzM0ZDIiAvKiBJbnRlbCBCYXl0cmFpbCBHUElPIENv bnRyb2xsZXIgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfQ0lE LCAiSU5UMzNGQyIgLyogSW50ZWwgQmF5dHJhaWwgR1BJTyBDb250cm9sbGVyICovKSAgLy8gX0NJ RDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICBOYW1lIChfREROLCAiVmFsbGV5VmlldyBHUFNV UyBjb250cm9sbGVyIikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICBOYW1l IChfVUlELCAweDAzKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE9wZXJhdGlvblJl Z2lvbiAoR1AyTSwgU3lzdGVtTWVtb3J5LCAweEZFRDBFMDAwLCAweDAzMDApCiAgICAgICAgICAg IEZpZWxkIChHUDJNLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDExOCksIAogICAgICAgICAgICAgICAgTElESSwgICAx LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgyNTgpLCAKICAgICAgICAgICAgICAgIENMSUQs ICAgMQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlh bGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIE5hbWUgKFJCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4RkVEMEUwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNl CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDAsICAgICAgICAgLy8gQWRkcmVzcyBM ZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIEludGVy cnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCAsLCApCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDMyLAog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBS ZXR1cm4gKFJCVUYpIC8qIFxfU0JfLkdQTzIuX0NSUy5SQlVGICovCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1 cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0FFSSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9BRUk6 IEFDUEkgRXZlbnQgSW50ZXJydXB0cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1l IChSQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgR3Bpb0ludCAoTGV2ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlQW5kV2FrZSwgUHVs bFVwLCAweDAwMDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUE8yIiwgMHgwMCwg UmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg ICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMDEyCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBHcGlv SW50IChFZGdlLCBBY3RpdmVCb3RoLCBTaGFyZWRBbmRXYWtlLCBQdWxsVXAsIDB4MDAwMCwKICAg ICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQTzIiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVy LCAsCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgeyAg IC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEUKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE5hbWUg KEZCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBHcGlvSW50IChMZXZlbCwgQWN0aXZlTG93LCBFeGNsdXNpdmVBbmRXYWtlLCBQdWxs VXAsIDB4MDAwMCwKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQTzIiLCAweDAwLCBS ZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMTIKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEdwaW9J bnQgKEVkZ2UsIEFjdGl2ZUJvdGgsIFNoYXJlZEFuZFdha2UsIFB1bGxVcCwgMHgwMDAwLAogICAg ICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BPMiIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIs ICwKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB7ICAg Ly8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRQogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgR3Bpb0ludCAoRWRnZSwgQWN0aXZl Qm90aCwgU2hhcmVkQW5kV2FrZSwgUHVsbFVwLCAweDAwMDAsCiAgICAgICAgICAgICAgICAgICAg ICAgICJcXF9TQi5HUE8yIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAg ICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA5CiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBJZiAoKEZTQVMgPT0gT25lKSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEZCVUYpIC8qIFxfU0Jf LkdQTzIuX0FFSS5GQlVGICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0 dXJuIChSQlVGKSAvKiBcX1NCXy5HUE8yLl9BRUkuUkJVRiAqLwogICAgICAgICAgICB9CgogICAg ICAgICAgICBOYW1lIChCRlNBLCBCdWZmZXIgKDB4MDMpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAweDAwLCAweDAxLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogLi4uICovCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQkZT QSwgWmVybywgQllZWSkKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCRlNBLCAweDAyLCBE QVRUKQogICAgICAgICAgICBOYW1lIChCRlNCLCBCdWZmZXIgKDB4MDMpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAweDAwLCAweDAxLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLyogLi4uICovCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIENyZWF0ZUJ5dGVG aWVsZCAoQkZTQiwgWmVybywgWVlZWSkKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCRlNC LCAweDAyLCBEVFRUKQogICAgICAgICAgICBOYW1lIChCVUZGLCBCdWZmZXIgKDB4MDcpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAweEZGICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAgICB9KQogICAgICAgICAgICBDcmVh dGVCeXRlRmllbGQgKEJVRkYsIFplcm8sIFNUQVQpCiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVs ZCAoQlVGRiwgT25lLCBMRU4pCiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGRiwgMHgw MiwgVE1QMCkKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUZGLCAweDAzLCBBWDAwKQog ICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRkYsIDB4MDQsIEFYMDEpCiAgICAgICAgICAg IENyZWF0ZUJ5dGVGaWVsZCAoQlVGRiwgMHgwNSwgQVgxMCkKICAgICAgICAgICAgQ3JlYXRlQnl0 ZUZpZWxkIChCVUZGLCAweDA2LCBBWDExKQogICAgICAgICAgICBNZXRob2QgKF9MMTIsIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfTHh4OiBMZXZlbC1UcmlnZ2VyZWQgR1BFCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIExvY2FsMCA9IF5eSTJDMS5CQVQwLkVWRU4gKCkKICAgICAgICAgICAg ICAgIEFEQkcgKCJFQyBJTlRSIikKICAgICAgICAgICAgICAgIE5vdGlmeSAoQURQMSwgMHg4MCkg Ly8gU3RhdHVzIENoYW5nZQogICAgICAgICAgICAgICAgTm90aWZ5ICheXkkyQzEuQkFUMCwgMHg4 MCkgLy8gU3RhdHVzIENoYW5nZQogICAgICAgICAgICAgICAgTm90aWZ5ICheXkkyQzEuQkFUMCwg MHg4MSkgLy8gSW5mb3JtYXRpb24gQ2hhbmdlCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1l dGhvZCAoX0UwRSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9FeHg6IEVkZ2UtVHJpZ2dlcmVkIEdQ RQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoTERXSykKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBeXkxJRDAuX0xJRCAoKQogICAgICAgICAg ICAgICAgICAgIElmICgoTG9jYWwwID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChMSUQwLCAweDgwKSAvLyBTdGF0dXMgQ2hhbmdl CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoTElEMCwg MHg4MCkgLy8gU3RhdHVzIENoYW5nZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKF9FMDksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRXh4OiBFZGdl LVRyaWdnZXJlZCBHUEUKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gV1NU QSAvKiBcV1NUQSAqLwogICAgICAgICAgICAgICAgTG9jYWwwIDw8PSBPbmUKICAgICAgICAgICAg ICAgIExvY2FsMCAmPSAweDA2CiAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCAmIDB4MDIpKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwICYgMHgwNCkp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKExJ RDAsIDB4ODApIC8vIFN0YXR1cyBDaGFuZ2UKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIF5eSEtFWS5NSEtRICgweDUwMjApCiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKEFWQkwsIFplcm8pCiAgICAgICAgICAgIE1ldGhv ZCAoX1JFRywgMiwgTm90U2VyaWFsaXplZCkgIC8vIF9SRUc6IFJlZ2lvbiBBdmFpbGFiaWxpdHkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDgpKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFWQkwgPSBBcmcxCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoR1BPUCwgR2Vu ZXJhbFB1cnBvc2VJbywgWmVybywgMHgwQykKICAgICAgICAgICAgRmllbGQgKEdQT1AsIEJ5dGVB Y2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENvbm5l Y3Rpb24gKAogICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVs dCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAg ICAgICAgICAgICAiXFxfU0IuR1BPMiIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAg ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxp c3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNgogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICApLCAKICAgICAgICAgICAgICAgIFdXUDMsICAgMSwgCiAg ICAgICAgICAgICAgICBDb25uZWN0aW9uICgKICAgICAgICAgICAgICAgICAgICBHcGlvSW8gKEV4 Y2x1c2l2ZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwgMHgwMDAwLCBJb1Jlc3RyaWN0aW9uT3V0cHV0 T25seSwKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQTzIiLCAweDAwLCBSZXNvdXJj ZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAg ICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMEEK ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKSwgCiAgICAgICAgICAg ICAgICBXRkQzLCAgIDEsIAogICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAg ICAgICAgICAgR3Bpb0lvIChFeGNsdXNpdmUsIFB1bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAwMCwg SW9SZXN0cmljdGlvbk91dHB1dE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5H UE8yIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICAp CiAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMDE2CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICksIAogICAgICAgICAgICAgICAgV1dEMywgICAxLCAKICAgICAgICAgICAgICAgIENvbm5l Y3Rpb24gKAogICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVs dCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAg ICAgICAgICAgICAiXFxfU0IuR1BPMiIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAg ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxp c3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRAogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICApLCAKICAgICAgICAgICAgICAgIFdXUjMsICAgMQogICAg ICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKFBFUEQpCiAgICAgICAgewogICAg ICAgICAgICBOYW1lIChfSElELCAiSU5UMzM5NiIgLyogU3RhbmRhcmQgUG93ZXIgTWFuYWdlbWVu dCBDb250cm9sbGVyICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAo X0NJRCwgRWlzYUlkICgiUE5QMEQ4MCIpIC8qIFdpbmRvd3MtY29tcGF0aWJsZSBTeXN0ZW0gUG93 ZXIgTWFuYWdlbWVudCBDb250cm9sbGVyICovKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAg ICAgICAgICBOYW1lIChfVUlELCBPbmUpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAg TmFtZSAoUEVQUCwgWmVybykKICAgICAgICAgICAgTmFtZSAoREVWUywgUGFja2FnZSAoMHgwMSkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9KQogICAgICAg ICAgICBOYW1lIChERVZYLCBQYWNrYWdlICgweDEyKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICJcXF9TQi5QQ0kwLlhIQzEiLCAKICAgICAgICAgICAgICAgICAgICBPbmUKICAgICAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlBDSTAuRUhDMSIsIAogICAgICAgICAgICAgICAg ICAgIE9uZQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiXFxfU0IuUENJMC5HRlgw IiwgCiAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICJcXF9TQi5QQ0kwLkdGWDAuSVNQMCIsIAogICAgICAgICAgICAgICAgICAgIE9uZQogICAg ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiXFxfU0IuUENJMC5TRUMwIiwgCiAgICAgICAg ICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJcXF9TQi5J MkMxIiwgCiAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICJcXF9TQi5JMkMyIiwgCiAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAg ICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICJcXF9TQi5JMkMzIiwgCiAgICAgICAgICAgICAgICAgICAg T25lCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJcXF9TQi5JMkM0IiwgCiAgICAg ICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJcXF9T Qi5JMkM1IiwgCiAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICJcXF9TQi5JMkM2IiwgCiAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICJcXF9TQi5JMkM3IiwgCiAgICAgICAgICAgICAgICAg ICAgT25lCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAy KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJcXF9TQi5TREhBIiwgCiAg ICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJc XF9TQi5TREhCIiwgCiAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICB9LCAK CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICJcXF9TQi5TREhDIiwgCiAgICAgICAgICAgICAgICAgICAgT25lCiAgICAg ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICJcXF9TQi5TUEkxIiwgCiAgICAgICAgICAgICAg ICAgICAgT25lCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJcXF9TQi5VUlQxIiwg CiAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICJcXF9TQi5VUlQyIiwgCiAgICAgICAgICAgICAgICAgICAgT25lCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKENETVAsIFBhY2thZ2UgKDB4MDIpIHt9 KQogICAgICAgICAgICBOYW1lIChERVZZLCBQYWNrYWdlICgweDE2KQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICJcXF9QUi5DUFUwIiwgCiAgICAgICAgICAgICAgICAgICAgT25lLCAKICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAiXFxfUFIuQ1BVMSIsIAogICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweEZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgIlxcX1BSLkNQVTIiLCAKICAgICAgICAgICAgICAgICAgICBPbmUsIAogICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAK CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICJcXF9QUi5DUFUzIiwgCiAgICAgICAgICAgICAgICAgICAgT25lLCAKICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwg CgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAiXFxfU0IuUENJMC5HRlgwIiwgCiAgICAgICAgICAgICAgICAgICAgT25l LCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAiXFxfU0IuUENJMC5HRlgwLklTUDAiLCAKICAgICAgICAgICAg ICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAzCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJcXF9TQi5JMkMxIiwgCiAgICAgICAgICAg ICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAg ICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAg ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICJcXF9TQi5JMkMyIiwgCiAgICAgICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAgICAg ICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJcXF9TQi5JMkMzIiwgCiAgICAgICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MwogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAg ICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAiXFxfU0IuSTJDNCIsIAogICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwNSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAgICAgICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiXFxfU0IuSTJDNSIsIAogICAg ICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMwogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAg ICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAiXFxfU0IuSTJDNiIsIAogICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAg ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAgICAgICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiXFxfU0IuSTJDNyIsIAog ICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw NSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMwogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwog ICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwg CgogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAiXFxfU0IuUENJMC5YSEMxIiwgCiAgICAgICAgICAgICAgICAgICAgT25l LCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAg ICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNr YWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJcXF9TQi5Q Q0kwLlNFQzAiLCAKICAgICAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDMKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDMKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDMKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkxQRUEiLCAKICAgICAgICAgICAgICAg ICAgICBPbmUsIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBa ZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8KICAgICAg ICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMKICAgICAgICAgICAgICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg IlxcX1NCLlNESEEiLCAKICAgICAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDMKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDMKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDMKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlNESEIiLCAKICAgICAgICAgICAg ICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDUpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMKICAg ICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMKICAgICAgICAgICAg ICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAz LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMKICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgIlxcX1NCLlNESEMiLCAKICAgICAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgT25lLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDMKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDMKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDMKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDMpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIlxcX1NCLlNQSTEiLCAKICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA1KQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgWmVybwogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAz CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAg ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICJcXF9TQi5VUlQxIiwgCiAgICAgICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICAgICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAzCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAzKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJcXF9TQi5VUlQyIiwgCiAgICAg ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAg ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMwogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAg ICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChCQ0NELCBQYWNrYWdlICgweDAxKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICJcXF9TQi5TREhBIiwgCiAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgyMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgT25lcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwMykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZD LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDA0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAg ICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1 cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgU2VyaWFsaXplZCkgIC8vIF9EU006IERl dmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChB cmcwID09IFRvVVVJRCAoImI4ZmViZmUwLWJhZjgtNDU0Yi1hZWNkLTQ5ZmI5MTEzN2IyMSIpKSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1 ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIC4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUEVQUCA9IE9uZQogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoREVWUykgLyogXF9TQl8u UEVQRC5ERVZTICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoQXJnMSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERFVlgpIC8qIFxfU0JfLlBFUEQuREVWWCAq LwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBDRE1QIFtaZXJvXSA9ICJcXF9TQi5TREhBIgogICAgICAg ICAgICAgICAgICAgICAgICBDRE1QIFtPbmVdID0gRU0xQSAvKiBcRU0xQSAqLwogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKENETVApIC8qIFxfU0JfLlBFUEQuQ0RNUCAqLwogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFy ZzAgPT0gVG9VVUlEICgiYzRlYjQwYTAtNmNkMi0xMWUyLWJjZmQtMDgwMDIwMGM5YTY2IikpKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBaZXJvKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVm ZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDA3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogLiAqLwogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKChJNDBBID09IFplcm8pIHx8IChMMjRE ID09IE9uZSkpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBEZXJlZk9mIChERVZZIFsweDA5XSkgW09uZV0gPSBaZXJvCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoKFNJMEEgPT0gWmVybykg fHwgKFNEMkQgPT0gT25lKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERlcmVmT2YgKERFVlkgWzB4MTFdKSBbT25lXSA9IFplcm8KICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoU0QwQSA9 PSBaZXJvKSB8fCAoU0QzRCA9PSBPbmUpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAoREVWWSBbMHgxMl0pIFtPbmVdID0gWmVy bwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KChTUDBBID09IFplcm8pIHx8IChMMTVEID09IE9uZSkpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChERVZZIFsweDEzXSkgW09u ZV0gPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoKFUxMEEgPT0gWmVybykgfHwgKEwxM0QgPT0gT25lKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlcmVmT2YgKERFVlkgWzB4 MTRdKSBbT25lXSA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKCgoVTIwQSA9PSBaZXJvKSB8fCAoTDE0RCA9PSBPbmUpKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVyZWZPZiAo REVWWSBbMHgxNV0pIFtPbmVdID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKERFVlkpIC8qIFxfU0JfLlBFUEQuREVWWSAqLwog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4 MDIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww ID0gRU0xQSAvKiBcRU0xQSAqLwogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgKz0gMHg4 NAogICAgICAgICAgICAgICAgICAgICAgICBEZXJlZk9mIChEZXJlZk9mIChEZXJlZk9mIChEZXJl Zk9mIChCQ0NEIFtaZXJvXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBbT25lXSkgW1pl cm9dKSBbWmVyb10pIFsweDA0XSA9IExvY2FsMAogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEJDQ0QpIC8qIFxfU0JfLlBFUEQuQkNDRCAqLwogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAg fQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChTREhBKQogICAgICAgIHsKICAgICAgICAgICAg TmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgTmFtZSAoX0hJ RCwgIjgwODYwRjE0IiAvKiBJbnRlbCBCYXl0cmFpbCBTRElPL01NQyBIb3N0IENvbnRyb2xsZXIg Ki8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfQ0lELCAiUE5QMEQ0 MCIgLyogU0RBIFN0YW5kYXJkIENvbXBsaWFudCBTRCBIb3N0IENvbnRyb2xsZXIgKi8pICAvLyBf Q0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgIE5hbWUgKF9ERE4sICJJbnRlbChSKSBlTU1D IENvbnRyb2xsZXIgLSA4MDg2MEYxNCIpICAvLyBfREROOiBET1MgRGV2aWNlIE5hbWUKICAgICAg ICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE5h bWUgKF9ERVAsIFBhY2thZ2UgKDB4MDEpICAvLyBfREVQOiBEZXBlbmRlbmNpZXMKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgUEVQRAogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1l IChSQkYxLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw LCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDAs ICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICBfWTA3KQogICAg ICAgICAgICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlTG93 LCBFeGNsdXNpdmUsICwsICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAw eDAwMDAwMDJELAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICBO YW1lIChSQkYyLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAw MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDEw MDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICBfWTA4KQog ICAgICAgICAgICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZl TG93LCBFeGNsdXNpdmUsICwsICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAweDAwMDAwMDJDLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAg ICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291 cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmll bGQgKFJCRjEsIFxfU0IuU0RIQS5fWTA3Ll9CQVMsIEIwQjEpICAvLyBfQkFTOiBCYXNlIEFkZHJl c3MKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJCRjEsIFxfU0IuU0RIQS5fWTA3 Ll9MRU4sIEIwTDEpICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgIEIwQjEgPSBFTTBB IC8qIFxFTTBBICovCiAgICAgICAgICAgICAgICBCMEwxID0gRU0wTCAvKiBcRU0wTCAqLwogICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkJGMiwgXF9TQi5TREhBLl9ZMDguX0JBUywg QjBCMikgIC8vIF9CQVM6IEJhc2UgQWRkcmVzcwogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRG aWVsZCAoUkJGMiwgXF9TQi5TREhBLl9ZMDguX0xFTiwgQjBMMikgIC8vIF9MRU46IExlbmd0aAog ICAgICAgICAgICAgICAgQjBCMiA9IEVNMEEgLyogXEVNMEEgKi8KICAgICAgICAgICAgICAgIEIw TDIgPSBFTTBMIC8qIFxFTTBMICovCiAgICAgICAgICAgICAgICBJZiAoKEVNVlIgPT0gT25lKSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJCRjIpIC8qIFxf U0JfLlNESEEuUkJGMiAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVy biAoUkJGMSkgLyogXF9TQl8uU0RIQS5SQkYxICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIE1ldGhvZCAoX1BTMywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0 YXRlIDMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUFNBVCB8PSAweDAzCiAgICAgICAg ICAgICAgICBQU0FUIHw9IFplcm8KICAgICAgICAgICAgICAgIElmICgoKFNPQ1MgPCAweDAyKSB8 fCAoKFNPQ1MgPT0gMHgwMikgJiYgKEVNVlIgPT0gT25lKSkpKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDAyKQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf UFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBTQVQgJj0g MHhGRkZGRkZGQwogICAgICAgICAgICAgICAgUFNBVCB8PSBaZXJvCiAgICAgICAgICAgICAgICBJ ZiAoKChTT0NTIDwgMHgwMikgfHwgKChTT0NTID09IDB4MDIpICYmIChFTVZSID09IE9uZSkpKSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwMikKICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChL RVlTLCBTeXN0ZW1NZW1vcnksIEVNMUEsIDB4MDEwMCkKICAgICAgICAgICAgRmllbGQgKEtFWVMs IERXb3JkQWNjLCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDg0KSwgCiAgICAgICAgICAgICAgICBQU0FULCAgIDMyCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9E SVM6IERpc2FibGUgRGV2aWNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgRGV2aWNlIChFTU1EKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURS LCAweDA4KSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgTWV0aG9kIChfUk1WLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX1JNVjogUmVtb3ZhbCBTdGF0dXMKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmljZSAoU0RIQikKICAgICAgICB7CiAg ICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAg IE5hbWUgKF9ISUQsICJJTlQzM0JCIiAvKiBJbnRlbCBCYXl0cmFpbCBTRCBIb3N0IENvbnRyb2xs ZXIgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfQ0lELCAiUE5Q MEQ0MCIgLyogU0RBIFN0YW5kYXJkIENvbXBsaWFudCBTRCBIb3N0IENvbnRyb2xsZXIgKi8pICAv LyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgIE5hbWUgKF9ERE4sICJJbnRlbChSKSBT RElPIENvbnRyb2xsZXIgLSA4MDg2MEYxNSIpICAvLyBfREROOiBET1MgRGV2aWNlIE5hbWUKICAg ICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMikgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAg ICBOYW1lIChfSFJWLCAweDAyKSAgLy8gX0hSVjogSGFyZHdhcmUgUmV2aXNpb24KICAgICAgICAg ICAgTmFtZSAoX0RFUCwgUGFja2FnZSAoMHgwMikgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBQRVBELCAKICAgICAgICAgICAgICAgIEdQTzIKICAg ICAgICAgICAgfSkKICAgICAgICAgICAgTmFtZSAoUFNUUywgWmVybykKICAgICAgICAgICAgTmFt ZSAoUkJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAw MCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAw LCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgX1kwOSkKICAg ICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxv dywgRXhjbHVzaXZlLCAsLCApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg MHgwMDAwMDAyRSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgICAg TWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJj ZSBTZXR0aW5ncwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxk IChSQlVGLCBcX1NCLlNESEIuX1kwOS5fQkFTLCBCMEJBKSAgLy8gX0JBUzogQmFzZSBBZGRyZXNz CiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSQlVGLCBcX1NCLlNESEIuX1kwOS5f TEVOLCBCMExOKSAgLy8gX0xFTjogTGVuZ3RoCiAgICAgICAgICAgICAgICBCMEJBID0gU0kwQSAv KiBcU0kwQSAqLwogICAgICAgICAgICAgICAgQjBMTiA9IFNJMEwgLyogXFNJMEwgKi8KICAgICAg ICAgICAgICAgIFJldHVybiAoUkJVRikgLyogXF9TQl8uU0RIQi5SQlVGICovCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6 IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKFNURVAgPD0gMHgwNCkp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgX0hSViA9IFNETUQgLyogXFNE TUQgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKChTSTBBID09IFpl cm8pIHx8IChTRDJEID09IE9uZSkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1 cm4gKDB4MEYpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90 U2VyaWFsaXplZCkgIC8vIF9ESVM6IERpc2FibGUgRGV2aWNlCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQU0FUIHw9 IDB4MDMKICAgICAgICAgICAgICAgIFBTQVQgfD0gWmVybwogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0 ZSAwCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBTQVQgJj0gMHhGRkZGRkZGQwogICAg ICAgICAgICAgICAgUFNBVCB8PSBaZXJvCiAgICAgICAgICAgICAgICBJZiAoKFBTVFMgPT0gWmVy bykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCheXkdQTzIuQVZC TCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg Xl5HUE8yLldGRDMgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgUFNUUyA9IE9uZQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAg ICAgICAgT3BlcmF0aW9uUmVnaW9uIChLRVlTLCBTeXN0ZW1NZW1vcnksIFNJMUEsIDB4MDEwMCkK ICAgICAgICAgICAgRmllbGQgKEtFWVMsIERXb3JkQWNjLCBOb0xvY2ssIFdyaXRlQXNaZXJvcykK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDg0KSwgCiAgICAgICAgICAg ICAgICBQU0FULCAgIDMyCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoQlJDTSkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgT25lKSAgLy8gX0FEUjog QWRkcmVzcwogICAgICAgICAgICAgICAgTmFtZSAoX0RFUCwgUGFja2FnZSAoMHgwMSkgIC8vIF9E RVA6IERlcGVuZGVuY2llcwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdQ TzIKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKF9STVYsIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfUk1WOiBSZW1vdmFsIFN0YXR1cwogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBOYW1lIChfUzRXLCAweDAyKSAgLy8gX1M0VzogUzQgRGV2aWNlIFdha2UgU3Rh dGUKICAgICAgICAgICAgICAgIE5hbWUgKF9TMFcsIDB4MDIpICAvLyBfUzBXOiBTMCBEZXZpY2Ug V2FrZSBTdGF0ZQogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIE5hbWUgKFJCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3Vy Y2VDb25zdW1lciwgRWRnZSwgQWN0aXZlSGlnaCwgRXhjbHVzaXZlQW5kV2FrZSwgLCwgKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAw MDQ5LAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFJCVUYpIC8qIFxfU0JfLlNESEIuQlJDTS5fQ1JTLlJC VUYgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgSWYgKCheXl5HUE8yLkFWQkwgPT0gT25lKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIF5eXkdQTzIuV0ZEMyA9IFplcm8K ICAgICAgICAgICAgICAgICAgICAgICAgUFNUUyA9IFplcm8KICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIElmICgoUFNUUyA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoXl5eR1BPMi5BVkJMID09IE9uZSkpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXkdQTzIu V0ZEMyA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNUUyA9IE9uZQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKEJSQzIpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDIpICAvLyBfQURSOiBBZGRyZXNzCiAgICAg ICAgICAgICAgICBOYW1lIChfU1RBLCAweDBGKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAg ICAgICBNZXRob2QgKF9STVYsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUk1WOiBSZW1vdmFsIFN0 YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoTkFNLCBCdWZmZXIgKDB4MEYpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuU0RIQi5CUkNN IgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoU1BCLCBC dWZmZXIgKDB4MEMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAvKiAwMDAwICovICAweDhFLCAweDE4LCAweDAwLCAweDAxLCAweDAwLCAweEMwLCAweDAyLCAw eDAwLCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAg MHgwMCwgMHgwMSwgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4uLi4g Ki8KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKEVORCwg UmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlIChTUEIsIE5BTSwgTG9jYWww KQogICAgICAgICAgICAgICAgICAgIENvbmNhdGVuYXRlIChMb2NhbDAsIEVORCwgTG9jYWwxKQog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwxKQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKFNESEMpCiAgICAgICAgewogICAg ICAgICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICBO YW1lIChfSElELCAiODA4NjBGMTQiIC8qIEludGVsIEJheXRyYWlsIFNESU8vTU1DIEhvc3QgQ29u dHJvbGxlciAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9DSUQs ICJQTlAwRDQwIiAvKiBTREEgU3RhbmRhcmQgQ29tcGxpYW50IFNEIEhvc3QgQ29udHJvbGxlciAq LykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgTmFtZSAoX0RETiwgIkludGVs KFIpIFNEIENhcmQgQ29udHJvbGxlciAtIDgwODYwRjE2IikgIC8vIF9ERE46IERPUyBEZXZpY2Ug TmFtZQogICAgICAgICAgICBOYW1lIChfVUlELCAweDAzKSAgLy8gX1VJRDogVW5pcXVlIElECiAg ICAgICAgICAgIE5hbWUgKF9ERVAsIFBhY2thZ2UgKDB4MDIpICAvLyBfREVQOiBEZXBlbmRlbmNp ZXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUEVQRCwgCiAgICAgICAgICAgICAgICBH UE8wCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKFJCVUYsIFJlc291cmNlVGVtcGxh dGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdy aXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBC YXNlCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMCwgICAgICAgICAvLyBBZGRyZXNzIExl bmd0aAogICAgICAgICAgICAgICAgICAgIF9ZMEEpCiAgICAgICAgICAgICAgICBJbnRlcnJ1cHQg KFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVMb3csIEV4Y2x1c2l2ZSwgLCwgKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMkYsCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICBHcGlvSW50IChFZGdlLCBBY3RpdmVCb3RoLCBTaGFyZWRB bmRXYWtlLCBQdWxsTm9uZSwgMHgyNzEwLAogICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUE8w IiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgMHgw MDI2CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgR3Bpb0lvIChTaGFyZWQs IFB1bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAwMCwgSW9SZXN0cmljdGlvbklucHV0T25seSwKICAg ICAgICAgICAgICAgICAgICAiXFxfU0IuR1BPMCIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwK ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0 CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNgogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSQlVGLCBcX1NCLlNESEMuX1kwQS5fQkFTLCBCMEJB KSAgLy8gX0JBUzogQmFzZSBBZGRyZXNzCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxk IChSQlVGLCBcX1NCLlNESEMuX1kwQS5fTEVOLCBCMExOKSAgLy8gX0xFTjogTGVuZ3RoCiAgICAg ICAgICAgICAgICBCMEJBID0gU0QwQSAvKiBcU0QwQSAqLwogICAgICAgICAgICAgICAgQjBMTiA9 IFNEMEwgLyogXFNEMEwgKi8KICAgICAgICAgICAgICAgIFJldHVybiAoUkJVRikgLyogXF9TQl8u U0RIQy5SQlVGICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwg Tm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBJZiAoKChTRDBBID09IFplcm8pIHx8IChTRDNEID09IE9uZSkpKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoX1BTMywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUFNBVCB8PSAweDAzCiAgICAgICAgICAgICAg ICBQU0FUIHw9IFplcm8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBQU0FUICY9IDB4RkZGRkZGRkMKICAgICAgICAgICAgICAgIFBTQVQgfD0g WmVybwogICAgICAgICAgICB9CgogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKEtFWVMsIFN5 c3RlbU1lbW9yeSwgU0QxQSwgMHgwMTAwKQogICAgICAgICAgICBGaWVsZCAoS0VZUywgRFdvcmRB Y2MsIE5vTG9jaywgV3JpdGVBc1plcm9zKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBP ZmZzZXQgKDB4ODQpLCAKICAgICAgICAgICAgICAgIFBTQVQsICAgMzIKICAgICAgICAgICAgfQog ICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChHRE0xKQogICAgICAgIHsKICAgICAgICAgICAgTmFt ZSAoX0hJRCwgIklOVEw5QzYwIiAvKiBJbnRlbCBCYXl0cmFpbCBTT0MgRE1BIENvbnRyb2xsZXIg Ki8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfREROLCAiSW50ZWwo UikgRE1BIENvbnRyb2xsZXIgIzEgLSBJTlRMOUM2MCIpICAvLyBfREROOiBET1MgRGV2aWNlIE5h bWUKICAgICAgICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAg ICAgICAgIE5hbWUgKFJCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAg IDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAg MHgwMDAwNDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAg IF9ZMEIpCiAgICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVs LCBBY3RpdmVMb3csIEV4Y2x1c2l2ZSwgLCwgKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIDB4MDAwMDAwMkEsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAg ICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJl bnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRl RFdvcmRGaWVsZCAoUkJVRiwgXF9TQi5HRE0xLl9ZMEIuX0JBUywgQjBCQSkgIC8vIF9CQVM6IEJh c2UgQWRkcmVzcwogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkJVRiwgXF9TQi5H RE0xLl9ZMEIuX0xFTiwgQjBMTikgIC8vIF9MRU46IExlbmd0aAogICAgICAgICAgICAgICAgQjBC QSA9IEQxMEEgLyogXEQxMEEgKi8KICAgICAgICAgICAgICAgIEIwTE4gPSBEMTBMIC8qIFxEMTBM ICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFJCVUYpIC8qIFxfU0JfLkdETTEuUkJVRiAqLwog ICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKCgoRDEw QSA9PSBaZXJvKSB8fCAoTDEwRCA9PSBPbmUpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2Ug KEdETTIpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCAiSU5UTDlDNjAiIC8qIElu dGVsIEJheXRyYWlsIFNPQyBETUEgQ29udHJvbGxlciAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElE CiAgICAgICAgICAgIE5hbWUgKF9ERE4sICJJbnRlbChSKSBETUEgQ29udHJvbGxlciAjMiAtIElO VEw5QzYwIikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICBOYW1lIChfVUlE LCAweDAyKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE5hbWUgKFJCVUYsIFJlc291 cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhl ZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8g QWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMCwgICAgICAgICAvLyBB ZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgIF9ZMEMpCiAgICAgICAgICAgICAgICBJ bnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVMb3csIEV4Y2x1c2l2ZSwg LCwgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMkIsCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkJVRiwgXF9TQi5H RE0yLl9ZMEMuX0JBUywgQjBCQSkgIC8vIF9CQVM6IEJhc2UgQWRkcmVzcwogICAgICAgICAgICAg ICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkJVRiwgXF9TQi5HRE0yLl9ZMEMuX0xFTiwgQjBMTikgIC8v IF9MRU46IExlbmd0aAogICAgICAgICAgICAgICAgQjBCQSA9IEQyMEEgLyogXEQyMEEgKi8KICAg ICAgICAgICAgICAgIEIwTE4gPSBEMjBMIC8qIFxEMjBMICovCiAgICAgICAgICAgICAgICBSZXR1 cm4gKFJCVUYpIC8qIFxfU0JfLkdETTIuUkJVRiAqLwogICAgICAgICAgICB9CgogICAgICAgICAg ICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgSWYgKCgoRDIwQSA9PSBaZXJvKSB8fCAoTDIwRCA9PSBP bmUpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAg ICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKFBXTTEpCiAgICAgICAgewogICAgICAg ICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICBOYW1l IChfSElELCAiODA4NjBGMDkiIC8qIEludGVsIFBXTSBDb250cm9sbGVyICovKSAgLy8gX0hJRDog SGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX0NJRCwgIjgwODYwRjA5IiAvKiBJbnRlbCBQ V00gQ29udHJvbGxlciAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgTmFt ZSAoX0RETiwgIkludGVsKFIpIFBXTSBDb250cm9sbGVyICMxIC0gODA4NjBGMDgiKSAgLy8gX0RE TjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6 IFVuaXF1ZSBJRAogICAgICAgICAgICBOYW1lIChSQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAg ICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAg ICAgICAgICAgICAgICAgIDB4MDAwMDEwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAg ICAgICAgICAgICAgICAgICBfWTBEKQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2Qg KF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRp bmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJCVUYs IFxfU0IuUFdNMS5fWTBELl9CQVMsIEIwQkEpICAvLyBfQkFTOiBCYXNlIEFkZHJlc3MKICAgICAg ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJCVUYsIFxfU0IuUFdNMS5fWTBELl9MRU4sIEIw TE4pICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgIEIwQkEgPSBQMTBBIC8qIFxQMTBB ICovCiAgICAgICAgICAgICAgICBCMExOID0gUDEwTCAvKiBcUDEwTCAqLwogICAgICAgICAgICAg ICAgUmV0dXJuIChSQlVGKSAvKiBcX1NCXy5QV00xLlJCVUYgKi8KICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVz CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoKFAxMEEgPT0gWmVybykgfHwgKEwx MUQgPT0gT25lKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikK ICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChQV00yKQogICAgICAgIHsK ICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAg ICAgTmFtZSAoX0hJRCwgIjgwODYwRjA5IiAvKiBJbnRlbCBQV00gQ29udHJvbGxlciAqLykgIC8v IF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9DSUQsICI4MDg2MEYwOSIgLyog SW50ZWwgUFdNIENvbnRyb2xsZXIgKi8pICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAg ICAgIE5hbWUgKF9ERE4sICJJbnRlbChSKSBQV00gQ29udHJvbGxlciAjMiAtIDgwODYwRjA5Iikg IC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICBOYW1lIChfVUlELCAweDAyKSAg Ly8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE5hbWUgKFJCVUYsIFJlc291cmNlVGVtcGxh dGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdy aXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBC YXNlCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMCwgICAgICAgICAvLyBBZGRyZXNzIExl bmd0aAogICAgICAgICAgICAgICAgICAgIF9ZMEUpCiAgICAgICAgICAgIH0pCiAgICAgICAgICAg IE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3Vy Y2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoUkJVRiwgXF9TQi5QV00yLl9ZMEUuX0JBUywgQjBCQSkgIC8vIF9CQVM6IEJhc2UgQWRkcmVz cwogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkJVRiwgXF9TQi5QV00yLl9ZMEUu X0xFTiwgQjBMTikgIC8vIF9MRU46IExlbmd0aAogICAgICAgICAgICAgICAgQjBCQSA9IFAyMEEg LyogXFAyMEEgKi8KICAgICAgICAgICAgICAgIEIwTE4gPSBQMjBMIC8qIFxQMjBMICovCiAgICAg ICAgICAgICAgICBSZXR1cm4gKFJCVUYpIC8qIFxfU0JfLlBXTTIuUkJVRiAqLwogICAgICAgICAg ICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RB OiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKCgoUDIwQSA9PSBaZXJv KSB8fCAoTDEyRCA9PSBPbmUpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJu ICgweDBGKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKFVSVDEpCiAg ICAgICAgewogICAgICAgICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwog ICAgICAgICAgICBOYW1lIChfSElELCAiODA4NjBGMEEiIC8qIEludGVsIEF0b20gVUFSVCBDb250 cm9sbGVyICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX0NJRCwg IjgwODYwRjBBIiAvKiBJbnRlbCBBdG9tIFVBUlQgQ29udHJvbGxlciAqLykgIC8vIF9DSUQ6IENv bXBhdGlibGUgSUQKICAgICAgICAgICAgTmFtZSAoX0RETiwgIkludGVsKFIpIEhTLVVBUlQgQ29u dHJvbGxlciAjMSAtIDgwODYwRjBBIikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAg ICAgICBOYW1lIChfVUlELCBPbmUpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgTmFt ZSAoX0RFUCwgUGFja2FnZSAoMHgwMSkgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBQRVBECiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUg KFJCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg TWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs ICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMCwg ICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgIF9ZMEYpCiAgICAg ICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVMb3cs IEV4Y2x1c2l2ZSwgLCwgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4 MDAwMDAwMjcsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBGaXhlZERNQSAoMHgw MDAyLCAweDAwMDIsIFdpZHRoMzJiaXQsICkKICAgICAgICAgICAgICAgIEZpeGVkRE1BICgweDAw MDMsIDB4MDAwMywgV2lkdGgzMmJpdCwgKQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRo b2QgKF9IUlYsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSFJWOiBIYXJkd2FyZSBSZXZpc2lvbgog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFNPQ1MpIC8qIFxTT0NTICovCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkJVRiwgXF9TQi5VUlQxLl9ZMEYuX0JBUywgQjBC QSkgIC8vIF9CQVM6IEJhc2UgQWRkcmVzcwogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoUkJVRiwgXF9TQi5VUlQxLl9ZMEYuX0xFTiwgQjBMTikgIC8vIF9MRU46IExlbmd0aAogICAg ICAgICAgICAgICAgQjBCQSA9IFUxMEEgLyogXFUxMEEgKi8KICAgICAgICAgICAgICAgIEIwTE4g PSBVMTBMIC8qIFxVMTBMICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFJCVUYpIC8qIFxfU0Jf LlVSVDEuUkJVRiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgSWYgKCgoVTEwQSA9PSBaZXJvKSB8fCAoTDEzRCA9PSBPbmUpKSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICB9CgogICAgICAgICAg ICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAz CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBTQVQgfD0gMHgwMwogICAgICAgICAgICAg ICAgUFNBVCB8PSBaZXJvCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgUFNBVCAmPSAweEZGRkZGRkZDCiAgICAgICAgICAgICAgICBQU0FUIHw9 IFplcm8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChLRVlTLCBT eXN0ZW1NZW1vcnksIFUxMUEsIDB4MDEwMCkKICAgICAgICAgICAgRmllbGQgKEtFWVMsIERXb3Jk QWNjLCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg T2Zmc2V0ICgweDg0KSwgCiAgICAgICAgICAgICAgICBQU0FULCAgIDMyCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIERldmljZSAoQlRIMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg TmFtZSAoX0hJRCwgIkJDTTJFM0MiKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgTmFtZSAoVUJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgVWFydFNlcmlhbEJ1cyAoMHgw MDAxQzIwMCwgRGF0YUJpdHNFaWdodCwgU3RvcEJpdHNPbmUsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweEZDLCBMaXR0bGVFbmRpYW4sIFBhcml0eVR5cGVOb25lLCBGbG93Q29udHJvbE5v bmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAsIDB4MDAyMCwgIlxcX1NCLlVS VDEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwg LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJ bnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIEVkZ2UsIEFjdGl2ZUhpZ2gsIEV4Y2x1c2l2ZUFu ZFdha2UsICwsICkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMDAwMDA0NiwKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwgMHgw MDAwLCBJb1Jlc3RyaWN0aW9uT3V0cHV0T25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJcXF9TQi5HUE8wIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM0CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQ dWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQTzAiLCAweDAwLCBSZXNvdXJjZUNvbnN1 bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMzUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKFBCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFVhcnRTZXJpYWxCdXMg KDB4MDAwMUMyMDAsIERhdGFCaXRzRWlnaHQsIFN0b3BCaXRzT25lLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhGQywgTGl0dGxlRW5kaWFuLCBQYXJpdHlUeXBlTm9uZSwgRmxvd0NvbnRy b2xOb25lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwLCAweDAwMjAsICJcXF9T Qi5VUlQxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3Vt ZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAg ICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBFZGdlLCBBY3RpdmVIaWdoLCBFeGNsdXNp dmVBbmRXYWtlLCAsLCApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAwMDAwNDYsCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgR3Bpb0lvIChFeGNsdXNpdmUsIFB1bGxEZWZhdWx0LCAweDAwMDAs IDB4MDAwMCwgSW9SZXN0cmljdGlvbk91dHB1dE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiXFxfU0IuR1BPMCIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4g bGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzNQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2 ZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwgMHgwMDAwLCBJb1Jlc3RyaWN0aW9uT3V0cHV0T25seSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUE8wIiwgMHgwMCwgUmVzb3VyY2VD b25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMDM0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICBJZiAoKEJESUQgPT0gMHgwNCkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEZCSUQgPT0gWmVybykpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoUEJVRikgLyogXF9TQl8uVVJUMS5CVEgwLl9DUlMuUEJVRiAqLwogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFVCVUYpIC8qIFxfU0JfLlVSVDEuQlRIMC5fQ1JTLlVCVUYgKi8KICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChCVEgxKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBOYW1lIChfSElELCAiQkNNMkU1NSIpICAvLyBfSElEOiBIYXJkd2Fy ZSBJRAogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJu ICgweDBGKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChVQlVGLCBSZXNvdXJjZVRl bXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBV YXJ0U2VyaWFsQnVzICgweDAwMDFDMjAwLCBEYXRhQml0c0VpZ2h0LCBTdG9wQml0c09uZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkMsIExpdHRsZUVuZGlhbiwgUGFyaXR5VHlwZU5v bmUsIEZsb3dDb250cm9sTm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCwg MHgwMDIwLCAiXFxfU0IuVVJUMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBS ZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAg ICAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgRWRnZSwgQWN0aXZl SGlnaCwgRXhjbHVzaXZlQW5kV2FrZSwgLCwgKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQ2LAogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVm YXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQTzAiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzQK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgR3Bp b0lvIChFeGNsdXNpdmUsIFB1bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAwMCwgSW9SZXN0cmljdGlv bk91dHB1dE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BPMCIsIDB4 MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAzNQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoUEJVRiwgUmVzb3Vy Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgVWFydFNlcmlhbEJ1cyAoMHgwMDAxQzIwMCwgRGF0YUJpdHNFaWdodCwgU3RvcEJpdHNPbmUs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZDLCBMaXR0bGVFbmRpYW4sIFBhcml0eVR5 cGVOb25lLCBGbG93Q29udHJvbE5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw MjAsIDB4MDAyMCwgIlxcX1NCLlVSVDEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAg ICAgICAgICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIEVkZ2UsIEFj dGl2ZUhpZ2gsIEV4Y2x1c2l2ZUFuZFdha2UsICwsICkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0NiwKICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2ZSwgUHVs bERlZmF1bHQsIDB4MDAwMCwgMHgwMDAwLCBJb1Jlc3RyaWN0aW9uT3V0cHV0T25seSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUE8wIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1l ciwgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MDM1CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJp Y3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQTzAi LCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwMzQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIElmICgoQkRJRCA9PSAw eDA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgo RkJJRCA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChQQlVGKSAvKiBcX1NCXy5VUlQxLkJUSDEuX0NSUy5QQlVGICov CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoVUJVRikgLyogXF9TQl8uVVJUMS5CVEgxLl9DUlMuVUJVRiAq LwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZp Y2UgKFVSVDIpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FE UjogQWRkcmVzcwogICAgICAgICAgICBOYW1lIChfSElELCAiODA4NjBGMEEiIC8qIEludGVsIEF0 b20gVUFSVCBDb250cm9sbGVyICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAg TmFtZSAoX0NJRCwgIjgwODYwRjBBIiAvKiBJbnRlbCBBdG9tIFVBUlQgQ29udHJvbGxlciAqLykg IC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgTmFtZSAoX0RETiwgIkludGVsKFIp IEhTLVVBUlQgQ29udHJvbGxlciAjMiAtIDgwODYwRjBDIikgIC8vIF9ERE46IERPUyBEZXZpY2Ug TmFtZQogICAgICAgICAgICBOYW1lIChfVUlELCAweDAyKSAgLy8gX1VJRDogVW5pcXVlIElECiAg ICAgICAgICAgIE5hbWUgKF9ERVAsIFBhY2thZ2UgKDB4MDEpICAvLyBfREVQOiBEZXBlbmRlbmNp ZXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUEVQRAogICAgICAgICAgICB9KQogICAg ICAgICAgICBOYW1lIChSQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAg ICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAg IDB4MDAwMDEwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAg ICBfWTEwKQogICAgICAgICAgICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZl bCwgQWN0aXZlTG93LCBFeGNsdXNpdmUsICwsICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAweDAwMDAwMDI4LAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg Rml4ZWRETUEgKDB4MDAwNCwgMHgwMDA0LCBXaWR0aDMyYml0LCApCiAgICAgICAgICAgICAgICBG aXhlZERNQSAoMHgwMDA1LCAweDAwMDUsIFdpZHRoMzJiaXQsICkKICAgICAgICAgICAgfSkKICAg ICAgICAgICAgTWV0aG9kIChfSFJWLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0hSVjogSGFyZHdh cmUgUmV2aXNpb24KICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChTT0NTKSAv KiBcU09DUyAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJCVUYsIFxfU0IuVVJUMi5f WTEwLl9CQVMsIEIwQkEpICAvLyBfQkFTOiBCYXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgIENy ZWF0ZURXb3JkRmllbGQgKFJCVUYsIFxfU0IuVVJUMi5fWTEwLl9MRU4sIEIwTE4pICAvLyBfTEVO OiBMZW5ndGgKICAgICAgICAgICAgICAgIEIwQkEgPSBVMjBBIC8qIFxVMjBBICovCiAgICAgICAg ICAgICAgICBCMExOID0gVTIwTCAvKiBcVTIwTCAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChS QlVGKSAvKiBcX1NCXy5VUlQyLlJCVUYgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0 aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIElmICgoKFUyMEEgPT0gWmVybykgfHwgKEwxNEQgPT0gT25lKSkp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAg fQoKICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMzog UG93ZXIgU3RhdGUgMwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQU0FUIHw9IDB4MDMK ICAgICAgICAgICAgICAgIFBTQVQgfD0gWmVybwogICAgICAgICAgICB9CgogICAgICAgICAgICBN ZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBTQVQgJj0gMHhGRkZGRkZGQwogICAgICAgICAg ICAgICAgUFNBVCB8PSBaZXJvCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE9wZXJhdGlvblJl Z2lvbiAoS0VZUywgU3lzdGVtTWVtb3J5LCBVMjFBLCAweDAxMDApCiAgICAgICAgICAgIEZpZWxk IChLRVlTLCBEV29yZEFjYywgTm9Mb2NrLCBXcml0ZUFzWmVyb3MpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIE9mZnNldCAoMHg4NCksIAogICAgICAgICAgICAgICAgUFNBVCwgICAzMgog ICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKFNQSTEpCiAgICAgICAgewog ICAgICAgICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAg ICBOYW1lIChfSElELCAiODA4NjBGMEUiIC8qIEludGVsIFNQSSBDb250cm9sbGVyICovKSAgLy8g X0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX0NJRCwgIjgwODYwRjBFIiAvKiBJ bnRlbCBTUEkgQ29udHJvbGxlciAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAg ICAgTmFtZSAoX0RFUCwgUGFja2FnZSAoMHgwMSkgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBQRVBECiAgICAgICAgICAgIH0pCiAgICAgICAgICAg IE5hbWUgKF9ERE4sICJJbnRlbChSKSBTUEkgQ29udHJvbGxlciAtIDgwODYwRjBFIikgIC8vIF9E RE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICBOYW1lIChSQlVGLCBSZXNvdXJjZVRlbXBs YXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRX cml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3Mg QmFzZQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDAsICAgICAgICAgLy8gQWRkcmVzcyBM ZW5ndGgKICAgICAgICAgICAgICAgICAgICBfWTExKQogICAgICAgICAgICAgICAgSW50ZXJydXB0 IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlTG93LCBFeGNsdXNpdmUsICwsICkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDI5LAogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgRml4ZWRETUEgKDB4MDAwMCwgMHgwMDAwLCBXaWR0aDMy Yml0LCApCiAgICAgICAgICAgICAgICBGaXhlZERNQSAoMHgwMDAxLCAweDAwMDEsIFdpZHRoMzJi aXQsICkKICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChfSFJWLCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX0hSVjogSGFyZHdhcmUgUmV2aXNpb24KICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgUmV0dXJuIChTT0NTKSAvKiBcU09DUyAqLwogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJl c291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZURXb3Jk RmllbGQgKFJCVUYsIFxfU0IuU1BJMS5fWTExLl9CQVMsIEIwQkEpICAvLyBfQkFTOiBCYXNlIEFk ZHJlc3MKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJCVUYsIFxfU0IuU1BJMS5f WTExLl9MRU4sIEIwTE4pICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgIEIwQkEgPSBT UDBBIC8qIFxTUDBBICovCiAgICAgICAgICAgICAgICBCMExOID0gU1AwTCAvKiBcU1AwTCAqLwog ICAgICAgICAgICAgICAgUmV0dXJuIChSQlVGKSAvKiBcX1NCXy5TUEkxLlJCVUYgKi8KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8g X1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoKFNQMEEgPT0g WmVybykgfHwgKEwxNUQgPT0gT25lKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJl dHVybiAoMHgwRikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBQU0FUIHw9IDB4MDMKICAgICAgICAgICAgICAgIFBTQVQgfD0gWmVybwogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBTQVQg Jj0gMHhGRkZGRkZGQwogICAgICAgICAgICAgICAgUFNBVCB8PSBaZXJvCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoS0VZUywgU3lzdGVtTWVtb3J5LCBTUDFBLCAw eDAxMDApCiAgICAgICAgICAgIEZpZWxkIChLRVlTLCBEV29yZEFjYywgTm9Mb2NrLCBXcml0ZUFz WmVyb3MpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4NCksIAogICAg ICAgICAgICAgICAgUFNBVCwgICAzMgogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2Ug KEZQTlQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJBVVRIMjc1 MCIgLyogQXV0aGVuVGVjIEFFUzI3NTAgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAg ICAgICAgICAgTmFtZSAoX0RETiwgIkF1dGhlblRlYyBBRVMyNzUwIikgIC8vIF9ERE46IERPUyBE ZXZpY2UgTmFtZQogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIE5hbWUgKFVCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFNwaVNlcmlhbEJ1cyAoMHgw MDAxLCBQb2xhcml0eUxvdywgRm91cldpcmVNb2RlLCAweDA4LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDdBMTIwMCwgQ2xvY2tQb2xhcml0eUxv dywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb2NrUGhhc2VTZWNvbmQsICJcXF9TQi5T UEkxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIs ICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAg SW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBFZGdlLCBBY3RpdmVIaWdoLCBFeGNsdXNpdmUs ICwsICkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMDAwMDA0OCwKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChVQlVGKSAvKiBcX1NCXy5TUEkxLkZQ TlQuX0NSUy5VQlVGICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9k IChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKEkyQzEpCiAgICAgICAgewog ICAgICAgICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAg ICBOYW1lIChfSElELCAiODA4NjBGNDEiIC8qIEludGVsIEJheXRyYWlsIEkyQyBIb3N0IENvbnRy b2xsZXIgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfQ0lELCAi ODA4NjBGNDEiIC8qIEludGVsIEJheXRyYWlsIEkyQyBIb3N0IENvbnRyb2xsZXIgKi8pICAvLyBf Q0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgIE5hbWUgKF9ERVAsIFBhY2thZ2UgKDB4MDEp ICAvLyBfREVQOiBEZXBlbmRlbmNpZXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUEVQ RAogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChfREROLCAiSW50ZWwoUikgSTJDIENv bnRyb2xsZXIgIzEgLSA4MDg2MEY0MSIpICAvLyBfREROOiBET1MgRGV2aWNlIE5hbWUKICAgICAg ICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE5h bWUgKEkyQ1AsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKFJCVUYsIFJlc291cmNlVGVtcGxhdGUg KCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRl LAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNl CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0 aAogICAgICAgICAgICAgICAgICAgIF9ZMTIpCiAgICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJl c291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVMb3csIEV4Y2x1c2l2ZSwgLCwgKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjAsCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICBGaXhlZERNQSAoMHgwMDEwLCAweDAwMDAsIFdpZHRoMzJiaXQs ICkKICAgICAgICAgICAgICAgIEZpeGVkRE1BICgweDAwMTEsIDB4MDAwMSwgV2lkdGgzMmJpdCwg KQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKF9IUlYsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfSFJWOiBIYXJkd2FyZSBSZXZpc2lvbgogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBSZXR1cm4gKFNPQ1MpIC8qIFxTT0NTICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3Vy Y2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoUkJVRiwgXF9TQi5JMkMxLl9ZMTIuX0JBUywgQjBCQSkgIC8vIF9CQVM6IEJhc2UgQWRkcmVz cwogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkJVRiwgXF9TQi5JMkMxLl9ZMTIu X0xFTiwgQjBMTikgIC8vIF9MRU46IExlbmd0aAogICAgICAgICAgICAgICAgQjBCQSA9IEkxMEEg LyogXEkxMEEgKi8KICAgICAgICAgICAgICAgIEIwTE4gPSBJMTBMIC8qIFxJMTBMICovCiAgICAg ICAgICAgICAgICBSZXR1cm4gKFJCVUYpIC8qIFxfU0JfLkkyQzEuUkJVRiAqLwogICAgICAgICAg ICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RB OiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKCgoSTEwQSA9PSBaZXJv KSB8fCAoTDIxRCA9PSBPbmUpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJu ICgweDBGKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIEFWQjIgPSBaZXJvCiAgICAgICAgICAgICAgICBJZiAoKEFWQjEgPT0gWmVybykpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUFNBVCB8PSAweDAzCiAgICAgICAg ICAgICAgICAgICAgUFNBVCB8PSBaZXJvCiAgICAgICAgICAgICAgICAgICAgSTJDUCA9IE9uZQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDA2KQogICAgICAgICAgICAgICAgICAgIElmICgo QVZCMSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFBTQVQgfD0gMHgwMwogICAgICAgICAgICAgICAgICAgICAgICBQU0FUIHw9IFplcm8KICAg ICAgICAgICAgICAgICAgICAgICAgSTJDUCA9IE9uZQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMAogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBJZiAoKEkyQ1AgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBQU0FUICY9IDB4RkZGRkZGRkMKICAgICAgICAgICAgICAgICAgICBQU0FU IHw9IFplcm8KICAgICAgICAgICAgICAgICAgICBJMkNQID0gWmVybwogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIEFWQjIgPSBPbmUKICAgICAgICAgICAgfQoKICAgICAgICAgICAg T3BlcmF0aW9uUmVnaW9uIChLRVlTLCBTeXN0ZW1NZW1vcnksIEkxMUEsIDB4MDEwMCkKICAgICAg ICAgICAgRmllbGQgKEtFWVMsIERXb3JkQWNjLCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDg0KSwgCiAgICAgICAgICAgICAgICBQ U0FULCAgIDMyCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmljZSAoSTJDMikK ICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNz CiAgICAgICAgICAgIE5hbWUgKF9ISUQsICI4MDg2MEY0MSIgLyogSW50ZWwgQmF5dHJhaWwgSTJD IEhvc3QgQ29udHJvbGxlciAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5h bWUgKF9DSUQsICI4MDg2MEY0MSIgLyogSW50ZWwgQmF5dHJhaWwgSTJDIEhvc3QgQ29udHJvbGxl ciAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgTmFtZSAoX0RFUCwgUGFj a2FnZSAoMHgwMSkgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBQRVBECiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKF9ERE4sICJJbnRl bChSKSBJMkMgQ29udHJvbGxlciAjMiAtIDgwODYwRjQyIikgIC8vIF9ERE46IERPUyBEZXZpY2Ug TmFtZQogICAgICAgICAgICBOYW1lIChfVUlELCAweDAyKSAgLy8gX1VJRDogVW5pcXVlIElECiAg ICAgICAgICAgIE5hbWUgKFJCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAg ICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAg ICAgMHgwMDAwMTAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAg ICAgIF9ZMTMpCiAgICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExl dmVsLCBBY3RpdmVMb3csIEV4Y2x1c2l2ZSwgLCwgKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIDB4MDAwMDAwMjEsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICBGaXhlZERNQSAoMHgwMDEyLCAweDAwMDIsIFdpZHRoMzJiaXQsICkKICAgICAgICAgICAgICAg IEZpeGVkRE1BICgweDAwMTMsIDB4MDAwMywgV2lkdGgzMmJpdCwgKQogICAgICAgICAgICB9KQog ICAgICAgICAgICBNZXRob2QgKF9IUlYsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSFJWOiBIYXJk d2FyZSBSZXZpc2lvbgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFNPQ1Mp IC8qIFxTT0NTICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwg Tm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkJVRiwgXF9TQi5JMkMy Ll9ZMTMuX0JBUywgQjBCQSkgIC8vIF9CQVM6IEJhc2UgQWRkcmVzcwogICAgICAgICAgICAgICAg Q3JlYXRlRFdvcmRGaWVsZCAoUkJVRiwgXF9TQi5JMkMyLl9ZMTMuX0xFTiwgQjBMTikgIC8vIF9M RU46IExlbmd0aAogICAgICAgICAgICAgICAgQjBCQSA9IEkyMEEgLyogXEkyMEEgKi8KICAgICAg ICAgICAgICAgIEIwTE4gPSBJMjBMIC8qIFxJMjBMICovCiAgICAgICAgICAgICAgICBSZXR1cm4g KFJCVUYpIC8qIFxfU0JfLkkyQzIuUkJVRiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBN ZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgSWYgKCgoSTIwQSA9PSBaZXJvKSB8fCAoTDIyRCA9PSBPbmUp KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAg ICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMz OiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBTQVQgfD0gMHgw MwogICAgICAgICAgICAgICAgUFNBVCB8PSBaZXJvCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUFNBVCAmPSAweEZGRkZGRkZDCiAgICAgICAg ICAgICAgICBQU0FUIHw9IFplcm8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgT3BlcmF0aW9u UmVnaW9uIChLRVlTLCBTeXN0ZW1NZW1vcnksIEkyMUEsIDB4MDEwMCkKICAgICAgICAgICAgRmll bGQgKEtFWVMsIERXb3JkQWNjLCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDg0KSwgCiAgICAgICAgICAgICAgICBQU0FULCAgIDMy CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoUlRFSykKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAg ICAgICAgICAgIE5hbWUgKF9ISUQsICIxMEVDNTY0MCIgLyogUmVhbHRlayBJMlMgQXVkaW8gQ29k ZWMgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX0NJRCwg IjEwRUM1NjQwIiAvKiBSZWFsdGVrIEkyUyBBdWRpbyBDb2RlYyAqLykgIC8vIF9DSUQ6IENvbXBh dGlibGUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9ERE4sICJSVEVLIENvZGVjIENvbnRyb2xs ZXIgIikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICAgICAgTmFtZSAoX1NV QiwgIjIyMUMxN0FBIikgIC8vIF9TVUI6IFN1YnN5c3RlbSBJRAogICAgICAgICAgICAgICAgTmFt ZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICBNZXRob2Qg KF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRp bmdzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoU0JVRiwgUmVz b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSTJjU2VyaWFsQnVzICgweDAwMUEsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFB ODAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9T Qi5JMkMyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3Vt ZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAg ICAgR3Bpb0ludCAoRWRnZSwgQWN0aXZlSGlnaCwgRXhjbHVzaXZlQW5kV2FrZSwgUHVsbE5vbmUs IDB4MDAwMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUE8yIiwgMHgwMCwg UmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMDA0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFNCVUYpIC8qIFxfU0Jf LkkyQzIuUlRFSy5fQ1JTLlNCVUYgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBNZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMg TWV0aG9kCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1RfMSwg WmVybykgIC8vIF9UX3g6IEVtaXR0ZWQgYnkgQVNMIENvbXBpbGVyCiAgICAgICAgICAgICAgICAg ICAgTmFtZSAoX1RfMCwgWmVybykgIC8vIF9UX3g6IEVtaXR0ZWQgYnkgQVNMIENvbXBpbGVyCiAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImE5MjQwYzQ0LWYwMzItNDU0 ZC04MGU1LTdhZWVkODBlOTU1MSIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMywgWmVybywgRkFSRykKICAgICAgICAg ICAgICAgICAgICAgICAgV2hpbGUgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgX1RfMCA9IEFyZzIKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoX1RfMCA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoT25lKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg X1RfMSA9IEFyZzMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChfVF8x ID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDdERCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFbHNlSWYgKChfVF8xID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEJ1ZmZlciAoMHg1NCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICov ICAweDBBLCAweDAwLCAweDAwLCAweENFLCAweDI4LCAweDAwLCAweDAxLCAweDAwLCAgLyogLi4u LiguLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAw MDA4ICovICAweDNGLCAweDAwLCAweDAwLCAweDAwLCAweDIyLCAweDAwLCAweDAxLCAweDAwLCAg LyogPy4uLiIuLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiAwMDEwICovICAweDA0LCAweDAwLCAweEFBLCAweDE3LCAweDJDLCAweDAwLCAweDAxLCAw eDAwLCAgLyogLi4uLiwuLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiAwMDE4ICovICAweDYyLCAweDAxLCAweDAwLCAweDAwLCAweDFELCAweDAwLCAw eDAxLCAweDAwLCAgLyogYi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiAwMDIwICovICAweDhBLCAweDhBLCAweDAyLCAweDAwLCAweDFELCAw eDAwLCAweDAxLCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiAwMDI4ICovICAweDBBLCAweEEwLCAweDQ1LCAweDAwLCAw eDE0LCAweDAwLCAweDAxLCAweDAwLCAgLyogLi5FLi4uLi4gKi8KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDMwICovICAweENDLCAweDRDLCAweDA3LCAw eDAwLCAweDJBLCAweDAwLCAweDAxLCAweDAwLCAgLyogLkwuLiouLi4gKi8KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDM4ICovICAweDAwLCAweDAwLCAw eDE4LCAweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDQwICovICAweDAwLCAw eDAwLCAweEZBLCAweEZGLCAweDFELCAweDAwLCAweDAxLCAweDAwLCAgLyogLi4uLi4uLi4gKi8K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDQ4ICovICAw eDAwLCAweDQwLCAweEU2LCAweDAwLCAweDFELCAweDAwLCAweDAxLCAweDAwLCAgLyogLkAuLi4u Li4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDUw ICovICAweDAxLCAweDVGLCAweDMxLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog Ll8xLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFbHNlSWYgKChfVF8xID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEJ1ZmZlciAoMHgwM0NDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAw MDAgKi8gIDB4MDMsIDB4MzAsIDB4NzIsIDB4NTYsIDB4MUUsIDB4MDAsIDB4MDEsIDB4MDAsICAv KiAuMHJWLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAwMDggKi8gIDB4QTQsIDB4MDAsIDB4RTYsIDB4MUUsIDB4MDEsIDB4MDAsIDB4QTUsIDB4 MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAwMTAgKi8gIDB4MDAsIDB4RjksIDB4MDEsIDB4MDAsIDB4RUIsIDB4MDAsIDB4 RUIsIDB4MDMsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIDAwMTggKi8gIDB4MDEsIDB4MDAsIDB4RUMsIDB4MDAsIDB4RkMsIDB4 ODIsIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAwMjAgKi8gIDB4RUQsIDB4MDAsIDB4MTMsIDB4MUUsIDB4 MDEsIDB4MDAsIDB4RUUsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMjggKi8gIDB4Q0IsIDB4QjYsIDB4MDEsIDB4 MDAsIDB4RTcsIDB4MDAsIDB4MUYsIDB4MUMsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMzAgKi8gIDB4MDEsIDB4MDAsIDB4 RTgsIDB4MDAsIDB4OTUsIDB4QTksIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMzggKi8gIDB4RTksIDB4 MDAsIDB4RTEsIDB4MDEsIDB4MDEsIDB4MDAsIDB4RUEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNDAgKi8gIDB4 NkUsIDB4MUEsIDB4MDEsIDB4MDAsIDB4RTUsIDB4MDAsIDB4MDUsIDB4MDIsICAvKiBuLi4uLi4u LiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNDgg Ki8gIDB4MDEsIDB4MDAsIDB4RTYsIDB4MDAsIDB4RUMsIDB4QzMsIDB4MDEsIDB4MDAsICAvKiAu Li4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAwNTAgKi8gIDB4QUUsIDB4MDAsIDB4MDYsIDB4Q0YsIDB4MDEsIDB4MDAsIDB4QUYsIDB4MDAs ICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwNTggKi8gIDB4OEQsIDB4MTgsIDB4MDEsIDB4MDAsIDB4QjAsIDB4MDAsIDB4NzMs IDB4MEMsICAvKiAuLi4uLi5zLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAwNjAgKi8gIDB4MDEsIDB4MDAsIDB4QjQsIDB4MDAsIDB4MjEsIDB4QzEs IDB4MDEsIDB4MDAsICAvKiAuLi4uIS4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAwNjggKi8gIDB4QjUsIDB4MDAsIDB4NjksIDB4MUYsIDB4MDEs IDB4MDAsIDB4QjYsIDB4MDAsICAvKiAuLmkuLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNzAgKi8gIDB4NTQsIDB4RkIsIDB4MDEsIDB4MDAs IDB4QkEsIDB4MDAsIDB4QzUsIDB4QzEsICAvKiBULi4uLi4uLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNzggKi8gIDB4MDEsIDB4MDAsIDB4QkIs IDB4MDAsIDB4NUQsIDB4MUUsIDB4MDEsIDB4MDAsICAvKiAuLi4uXS4uLiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwODAgKi8gIDB4QkMsIDB4MDAs IDB4OTksIDB4MDYsIDB4MDEsIDB4MDAsIDB4QzAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwODggKi8gIDB4Rjgs IDB4MUUsIDB4MDEsIDB4MDAsIDB4QzEsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwOTAgKi8g IDB4MDEsIDB4MDAsIDB4QzQsIDB4MDAsIDB4NjgsIDB4MUYsIDB4MDEsIDB4MDAsICAvKiAuLi4u aC4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAw OTggKi8gIDB4QzUsIDB4MDAsIDB4OTQsIDB4MDAsIDB4MDEsIDB4MDAsIDB4QzYsIDB4MDAsICAv KiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAwQTAgKi8gIDB4NjksIDB4MUYsIDB4MDEsIDB4MDAsIDB4Q0EsIDB4MDAsIDB4RDYsIDB4 MDIsICAvKiBpLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAwQTggKi8gIDB4MDEsIDB4MDAsIDB4Q0MsIDB4MDAsIDB4MTgsIDB4MTQsIDB4 MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIDAwQjAgKi8gIDB4QjEsIDB4MDAsIDB4MkUsIDB4MDMsIDB4MDAsIDB4 MDAsIDB4QjAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAwQjggKi8gIDB4MDAsIDB4NjAsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuYC4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwQzAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwQzggKi8gIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwRDAgKi8gIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwRDggKi8gIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4u LiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwRTAg Ki8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAu Li4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAwRTggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs ICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwRjAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4MUMs IDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAwRjggKi8gIDB4MDEsIDB4MDAsIDB4QTYsIDB4MDAsIDB4RTYsIDB4MUUs IDB4MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAxMDAgKi8gIDB4QTcsIDB4MDAsIDB4MDAsIDB4RjksIDB4MDEs IDB4MDAsIDB4RjUsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAxMDggKi8gIDB4RUIsIDB4MDMsIDB4MDEsIDB4MDAs IDB4RjYsIDB4MDAsIDB4RkMsIDB4ODIsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxMTAgKi8gIDB4MDEsIDB4MDAsIDB4Rjcs IDB4MDAsIDB4MTMsIDB4MUUsIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxMTggKi8gIDB4RjgsIDB4MDAs IDB4Q0IsIDB4QjYsIDB4MDEsIDB4MDAsIDB4RjEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxMjAgKi8gIDB4MUYs IDB4MUMsIDB4MDEsIDB4MDAsIDB4RjIsIDB4MDAsIDB4OTUsIDB4QTksICAvKiAuLi4uLi4uLiAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxMjggKi8g IDB4MDEsIDB4MDAsIDB4RjMsIDB4MDAsIDB4RTEsIDB4MDEsIDB4MDEsIDB4MDAsICAvKiAuLi4u Li4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAx MzAgKi8gIDB4RjQsIDB4MDAsIDB4NkUsIDB4MUEsIDB4MDEsIDB4MDAsIDB4RUYsIDB4MDAsICAv KiAuLm4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAxMzggKi8gIDB4MDUsIDB4MDIsIDB4MDEsIDB4MDAsIDB4RjAsIDB4MDAsIDB4RUMsIDB4 QzMsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAxNDAgKi8gIDB4MDEsIDB4MDAsIDB4QjEsIDB4MDAsIDB4MDYsIDB4Q0YsIDB4 MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIDAxNDggKi8gIDB4QjIsIDB4MDAsIDB4OEQsIDB4MTgsIDB4MDEsIDB4 MDAsIDB4QjMsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAxNTAgKi8gIDB4NzMsIDB4MEMsIDB4MDEsIDB4MDAsIDB4 QjcsIDB4MDAsIDB4MjEsIDB4QzEsICAvKiBzLi4uLi4hLiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxNTggKi8gIDB4MDEsIDB4MDAsIDB4QjgsIDB4 MDAsIDB4NjksIDB4MUYsIDB4MDEsIDB4MDAsICAvKiAuLi4uaS4uLiAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxNjAgKi8gIDB4QjksIDB4MDAsIDB4 NTQsIDB4RkIsIDB4MDEsIDB4MDAsIDB4QkQsIDB4MDAsICAvKiAuLlQuLi4uLiAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxNjggKi8gIDB4QzUsIDB4 QzEsIDB4MDEsIDB4MDAsIDB4QkUsIDB4MDAsIDB4NUQsIDB4MUUsICAvKiAuLi4uLi5dLiAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxNzAgKi8gIDB4 MDEsIDB4MDAsIDB4QkYsIDB4MDAsIDB4OTksIDB4MDYsIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4u LiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxNzgg Ki8gIDB4QzIsIDB4MDAsIDB4RjgsIDB4MUUsIDB4MDEsIDB4MDAsIDB4QzMsIDB4MDAsICAvKiAu Li4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAxODAgKi8gIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4QzcsIDB4MDAsIDB4NjgsIDB4MUYs ICAvKiAuLi4uLi5oLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAxODggKi8gIDB4MDEsIDB4MDAsIDB4QzgsIDB4MDAsIDB4OTQsIDB4MDAsIDB4MDEs IDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAxOTAgKi8gIDB4QzksIDB4MDAsIDB4NjksIDB4MUYsIDB4MDEsIDB4MDAs IDB4Q0IsIDB4MDAsICAvKiAuLmkuLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAxOTggKi8gIDB4RDYsIDB4MDIsIDB4MDEsIDB4MDAsIDB4Q0Qs IDB4MDAsIDB4MTgsIDB4MTQsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAxQTAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxQTggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxQjAgKi8gIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxQjggKi8gIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxQzAgKi8g IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4u Li4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAx QzggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAv KiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAxRDAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAxRDggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIDAxRTAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAxRTggKi8gIDB4MTQsIDB4MDAsIDB4MDEsIDB4MDAsIDB4 Q0UsIDB4MDAsIDB4MTAsIDB4MUMsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxRjAgKi8gIDB4MDEsIDB4MDAsIDB4Q0YsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxRjggKi8gIDB4RDAsIDB4MDAsIDB4 MjQsIDB4REYsIDB4MDEsIDB4MDAsIDB4RDEsIDB4MDAsICAvKiAuLiQuLi4uLiAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyMDAgKi8gIDB4RjcsIDB4 NjIsIDB4MDEsIDB4MDAsIDB4RDIsIDB4MDAsIDB4MTAsIDB4NDgsICAvKiAuYi4uLi4uSCAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyMDggKi8gIDB4 MDEsIDB4MDAsIDB4RDMsIDB4MDAsIDB4ODcsIDB4REIsIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4u LiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyMTAg Ki8gIDB4RDQsIDB4MDAsIDB4RjksIDB4MEQsIDB4MDEsIDB4MDAsIDB4RDUsIDB4MDAsICAvKiAu Li4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAyMTggKi8gIDB4MDUsIDB4RjQsIDB4MDEsIDB4MDAsIDB4RDYsIDB4MDAsIDB4NUYsIDB4QzIs ICAvKiAuLi4uLi5fLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAyMjAgKi8gIDB4MDEsIDB4MDAsIDB4RDcsIDB4MDAsIDB4RjgsIDB4MUQsIDB4MDEs IDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAyMjggKi8gIDB4RDgsIDB4MDAsIDB4RUMsIDB4MEYsIDB4MDEsIDB4MDAs IDB4RDksIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAyMzAgKi8gIDB4ODIsIDB4QzQsIDB4MDEsIDB4MDAsIDB4REEs IDB4MDAsIDB4RDIsIDB4MUMsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAyMzggKi8gIDB4MDEsIDB4MDAsIDB4REIsIDB4MDAs IDB4MDUsIDB4RjgsIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyNDAgKi8gIDB4REMsIDB4MDAsIDB4MzYs IDB4MDQsIDB4MDEsIDB4MDAsIDB4REQsIDB4MDAsICAvKiAuLjYuLi4uLiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyNDggKi8gIDB4MDAsIDB4MDAs IDB4MDEsIDB4MDAsIDB4RTEsIDB4MDAsIDB4OTIsIDB4MDMsICAvKiAuLi4uLi4uLiAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyNTAgKi8gIDB4MDEs IDB4MDAsIDB4RTIsIDB4MDAsIDB4RTgsIDB4MTEsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyNTggKi8g IDB4QUYsIDB4MDAsIDB4M0QsIDB4MDAsIDB4MDAsIDB4MDAsIDB4QUUsIDB4MDAsICAvKiAuLj0u Li4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAy NjAgKi8gIDB4MDAsIDB4NjAsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAv KiAuYC4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAyNjggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAyNzAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIDAyNzggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAyODAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyODggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyOTAgKi8gIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyOTggKi8gIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyQTAgKi8gIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4u LiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyQTgg Ki8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAu Li4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAyQjAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs ICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAyQjggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAyQzAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAyQzggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAyRDAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyRDggKi8gIDB4Q0QsIDB4Q0QsIDB4MTQs IDB4MDAsIDB4MDEsIDB4MDAsIDB4Q0UsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyRTAgKi8gIDB4MDAsIDB4MDAs IDB4MDEsIDB4MDAsIDB4Q0YsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyRTggKi8gIDB4MDEs IDB4MDAsIDB4RDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyRjAgKi8g IDB4RDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4RDIsIDB4MDAsICAvKiAuLi4u Li4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAy RjggKi8gIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4RDMsIDB4MDAsIDB4MDAsIDB4MDAsICAv KiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAzMDAgKi8gIDB4MDEsIDB4MDAsIDB4RDQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4 MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAzMDggKi8gIDB4RDUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4 RDYsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIDAzMTAgKi8gIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4RDcsIDB4 MDAsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAzMTggKi8gIDB4MDEsIDB4MDAsIDB4RDgsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzMjAgKi8gIDB4RDksIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDEsIDB4MDAsIDB4REEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzMjggKi8gIDB4MDAsIDB4MDAsIDB4 MDEsIDB4MDAsIDB4REIsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzMzAgKi8gIDB4MDEsIDB4 MDAsIDB4REMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzMzggKi8gIDB4 REQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4RTEsIDB4MDAsICAvKiAuLi4uLi4u LiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzNDAg Ki8gIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4RTIsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAu Li4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAzNDggKi8gIDB4MDAsIDB4MDAsIDB4QUYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs ICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAzNTAgKi8gIDB4QUUsIDB4MDAsIDB4MDAsIDB4NjAsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsICAvKiAuLi5gLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAzNTggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAzNjAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAzNjggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzNzAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzNzggKi8gIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzODAgKi8gIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzODggKi8g IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4u Li4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAz OTAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAv KiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAzOTggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAzQTAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIDAzQTggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAzQjAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzQjggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzQzAgKi8gIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzQzggKi8gIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuLi4uICovCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVs c2VJZiAoKF9UXzEgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVy ICgweDQyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDAsIDB4 MjAsIDB4NzIsIDB4NTYsIDB4MDYsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuIHJWLi4uLiAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4 QjIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4RUYsIDB4QjMsIDB4MDAsICAvKiAuLi4uLi4u LiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMTAg Ki8gIDB4NUYsIDB4MjIsIDB4MDAsIDB4MDAsIDB4QjQsIDB4MDAsIDB4MkMsIDB4NDIsICAvKiBf Ii4uLi4sQiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAwMTggKi8gIDB4MDAsIDB4MDAsIDB4QjUsIDB4MDAsIDB4MDAsIDB4MUYsIDB4MDAsIDB4MDAs ICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwMjAgKi8gIDB4QjYsIDB4MDAsIDB4MUYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4Qjcs IDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAwMjggKi8gIDB4MTAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAwMzAgKi8gIDB4RjAsIDB4RTksIDB4MDksIDB4MDEsIDB4Rjgs IDB4RTksIDB4MDksIDB4MDEsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMzggKi8gIDB4MDgsIDB4MDAsIDB4MDAsIDB4MDAs IDB4N0EsIDB4RTIsIDB4QTcsIDB4NzcsICAvKiAuLi4uei4udyAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNDAgKi8gIDB4RDIsIDB4RDUgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8x ID09IDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoMHgyRSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDA3LCAweDQxLCAweDQwLCAw eDU2LCAweDAwLCAweDAwLCAweDFDLCAweDAwLCAgLyogLkFAVi4uLi4gKi8KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDRCLCAweDRCLCAw eDAyLCAweDAwLCAweDA0LCAweDIzLCAweDAwLCAweDAwLCAgLyogS0suLi4jLi4gKi8KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweDAyLCAw eDAwLCAweEE4LCAweDIzLCAweDAwLCAweDE4LCAweDAyLCAweDAwLCAgLyogLi4uIy4uLi4gKi8K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDE4ICovICAw eEFCLCAweDIzLCAweDAwLCAweDcwLCAweDAyLCAweDAwLCAweEM0LCAweDIzLCAgLyogLiMucC4u LiMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDIw ICovICAweDAwLCAweDQwLCAweDAyLCAweDAwLCAweDcwLCAweDIzLCAweDBBLCAweDAwLCAgLyog LkAuLnAjLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiAwMDI4ICovICAweDAyLCAweDAwLCAweEM2LCAweDIzLCAweDBBLCAweDAwICAgICAgICAgICAg ICAgLyogLi4uIy4uICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzEgPT0gMHgwNykpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoQnVmZmVyICgweDUyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAwMDAgKi8gIDB4MEQsIDB4NDIsIDB4NDAsIDB4NTYsIDB4MDAsIDB4MDAsIDB4MUMsIDB4 MDAsICAvKiAuQkBWLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAwMDggKi8gIDB4NEIsIDB4NEIsIDB4MDIsIDB4MDAsIDB4MkYsIDB4MjMsIDB4 NzAsIDB4MDAsICAvKiBLSy4uLyNwLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4MDIsIDB4MDAsIDB4RkMsIDB4MjIsIDB4MDAsIDB4 NjAsIDB4MDIsIDB4MDAsICAvKiAuLi4iLmAuLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAwMTggKi8gIDB4MkIsIDB4MjMsIDB4ODAsIDB4MDAsIDB4 MDIsIDB4MDAsIDB4OTgsIDB4MjIsICAvKiArIy4uLi4uIiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMjAgKi8gIDB4MDAsIDB4NDAsIDB4MDIsIDB4 MDAsIDB4MDksIDB4MjMsIDB4MDAsIDB4MDQsICAvKiAuQC4uLiMuLiAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMjggKi8gIDB4MDIsIDB4MDAsIDB4 MEMsIDB4MjMsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsICAvKiAuLi4jLi4uLiAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMzAgKi8gIDB4MEQsIDB4 MjMsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4OEEsIDB4MjMsICAvKiAuIy4uLi4uIyAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMzggKi8gIDB4 MDAsIDB4MjAsIDB4MDIsIDB4MDAsIDB4RTcsIDB4MjMsIDB4MDAsIDB4MkMsICAvKiAuIC4uLiMu LCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNDAg Ki8gIDB4MDIsIDB4MDAsIDB4RTgsIDB4MjMsIDB4MDAsIDB4M0MsIDB4MDIsIDB4MDAsICAvKiAu Li4jLjwuLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAwNDggKi8gIDB4RTksIDB4MjMsIDB4MDAsIDB4NDAsIDB4MDIsIDB4MDAsIDB4RUEsIDB4MjMs ICAvKiAuIy5ALi4uIyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwNTAgKi8gIDB4MDAsIDB4NzggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiAueCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8xID09IDB4MDgpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoMHg1MikKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiAwMDAwICovICAweDBELCAweDQzLCAweDQwLCAweDU2LCAweDAwLCAweDAwLCAweDFDLCAw eDAwLCAgLyogLkNAVi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiAwMDA4ICovICAweDRCLCAweDRCLCAweDAyLCAweDAwLCAweDJGLCAweDIzLCAw eDcwLCAweDAwLCAgLyogS0suLi8jcC4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiAwMDEwICovICAweDAyLCAweDAwLCAweEZDLCAweDIyLCAweDAwLCAw eDYwLCAweDAyLCAweDAwLCAgLyogLi4uIi5gLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiAwMDE4ICovICAweDJCLCAweDIzLCAweDgwLCAweDAwLCAw eDAyLCAweDAwLCAweDk4LCAweDIyLCAgLyogKyMuLi4uLiIgKi8KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDIwICovICAweDAwLCAweDQwLCAweDAyLCAw eDAwLCAweDA5LCAweDIzLCAweDAwLCAweDA0LCAgLyogLkAuLi4jLi4gKi8KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDI4ICovICAweDAyLCAweDAwLCAw eDBDLCAweDIzLCAweDAwLCAweDAxLCAweDAyLCAweDAwLCAgLyogLi4uIy4uLi4gKi8KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDMwICovICAweDBELCAw eDIzLCAweDAwLCAweDAxLCAweDAyLCAweDAwLCAweDhBLCAweDIzLCAgLyogLiMuLi4uLiMgKi8K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDM4ICovICAw eDAwLCAweDIwLCAweDAyLCAweDAwLCAweEU3LCAweDIzLCAweDAwLCAweDJDLCAgLyogLiAuLi4j LiwgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDQw ICovICAweDAyLCAweDAwLCAweEU4LCAweDIzLCAweDAwLCAweDNDLCAweDAyLCAweDAwLCAgLyog Li4uIy48Li4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiAwMDQ4ICovICAweEU5LCAweDIzLCAweDAwLCAweDQwLCAweDAyLCAweDAwLCAweEVBLCAweDIz LCAgLyogLiMuQC4uLiMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiAwMDUwICovICAweDAwLCAweDc4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLyogLnggKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMSA9PSAweDA5KSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MzQpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLyogMDAwMCAqLyAgMHgwOCwgMHg0NCwgMHg0MCwgMHg1NiwgMHgwMCwgMHgwMCwgMHgxQywg MHgwMCwgIC8qIC5EQFYuLi4uICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLyogMDAwOCAqLyAgMHg2QywgMHg2QywgMHgwMCwgMHgwMCwgMHgyRSwgMHgwMCwg MHgyRiwgMHgyRiwgIC8qIGxsLi4uLi8vICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHgwMiwgMHgwMCwgMHgwQywgMHgyMywgMHgwMCwg MHgwMSwgMHgwMiwgMHgwMCwgIC8qIC4uLiMuLi4uICovCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogMDAxOCAqLyAgMHhBOCwgMHgyMywgMHgwMCwgMHgxOCwg MHgwMiwgMHgwMCwgMHhBQiwgMHgyMywgIC8qIC4jLi4uLi4jICovCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAyMCAqLyAgMHgwMCwgMHg3MCwgMHgwMiwg MHgwMCwgMHhDNCwgMHgyMywgMHgwMCwgMHg0MCwgIC8qIC5wLi4uIy5AICovCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAyOCAqLyAgMHgwMiwgMHgwMCwg MHg3MCwgMHgyMywgMHgwQSwgMHgwMCwgMHgwMiwgMHgwMCwgIC8qIC4ucCMuLi4uICovCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAzMCAqLyAgMHhDNiwg MHgyMywgMHgwQSwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4jLi4gKi8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RWxzZUlmICgoX1RfMSA9PSAweDBBKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZm ZXIgKDB4NDYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgwQiwg MHg0NSwgMHg0MCwgMHg1NiwgMHgwMCwgMHgwMCwgMHgxQywgMHgwMCwgIC8qIC5FQFYuLi4uICov CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAg MHg0QiwgMHg0QiwgMHgwMiwgMHgwMCwgMHhGRCwgMHgyMiwgMHgxQSwgMHgwMCwgIC8qIEtLLi4u Ii4uICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAx MCAqLyAgMHgwMiwgMHgwMCwgMHhGMiwgMHgyMiwgMHg1MCwgMHgwMCwgMHgwMiwgMHgwMCwgIC8q IC4uLiJQLi4uICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogMDAxOCAqLyAgMHgwOSwgMHgyMywgMHgwMCwgMHgwMiwgMHgwMiwgMHgwMCwgMHgyRiwgMHgy MywgIC8qIC4jLi4uLi8jICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogMDAyMCAqLyAgMHg0MCwgMHgwMCwgMHgwMiwgMHgwMCwgMHg3MSwgMHgyMywgMHgw RCwgMHgwMCwgIC8qIEAuLi5xIy4uICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogMDAyOCAqLyAgMHgwMiwgMHgwMCwgMHg4QiwgMHgyMywgMHgwMCwgMHgy OCwgMHgwMiwgMHgwMCwgIC8qIC4uLiMuKC4uICovCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogMDAzMCAqLyAgMHg4QywgMHgyMywgMHgwMCwgMHgyOCwgMHgw MiwgMHgwMCwgMHhDNCwgMHgyMywgIC8qIC4jLiguLi4jICovCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAzOCAqLyAgMHhGRiwgMHg3RiwgMHgwMiwgMHgw MCwgMHhGQywgMHgyMiwgMHgwMCwgMHg2MCwgIC8qIC4uLi4uIi5gICovCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDA0MCAqLyAgMHgwMiwgMHgwMCwgMHgy QiwgMHgyMywgMHg4MCwgMHgwMCAgICAgICAgICAgICAgIC8qIC4uKyMuLiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHg4MDAwMDAwMikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuICgweDgwMDAwMDAyKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgQ0tDMyA9IFplcm8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ0tDMyA9IE9uZQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9E SVM6IERpc2FibGUgRGV2aWNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoUlRFMikKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAg ICAgICAgIE5hbWUgKF9ISUQsICIxMEVDNTY0MCIgLyogUmVhbHRlayBJMlMgQXVkaW8gQ29kZWMg Ki8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX0NJRCwgIjEw RUM1NjQwIiAvKiBSZWFsdGVrIEkyUyBBdWRpbyBDb2RlYyAqLykgIC8vIF9DSUQ6IENvbXBhdGli bGUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9ERE4sICJSVEVLIENvZGVjIENvbnRyb2xsZXIg IikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICAgICAgTmFtZSAoX1NVQiwg IjIyMUMxN0FBIikgIC8vIF9TVUI6IFN1YnN5c3RlbSBJRAogICAgICAgICAgICAgICAgTmFtZSAo X1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICBNZXRob2QgKF9D UlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdz CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoU0JVRiwgUmVzb3Vy Y2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgSTJjU2VyaWFsQnVzICgweDAwMUMsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5J MkMyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIs ICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAg R3Bpb0ludCAoRWRnZSwgQWN0aXZlSGlnaCwgRXhjbHVzaXZlQW5kV2FrZSwgUHVsbE5vbmUsIDB4 MDAwMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUE8yIiwgMHgwMCwgUmVz b3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMDA0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFNCVUYpIC8qIFxfU0JfLkky QzIuUlRFMi5fQ1JTLlNCVUYgKi8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0 aG9kCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1RfMSwgWmVy bykgIC8vIF9UX3g6IEVtaXR0ZWQgYnkgQVNMIENvbXBpbGVyCiAgICAgICAgICAgICAgICAgICAg TmFtZSAoX1RfMCwgWmVybykgIC8vIF9UX3g6IEVtaXR0ZWQgYnkgQVNMIENvbXBpbGVyCiAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImE5MjQwYzQ0LWYwMzItNDU0ZC04 MGU1LTdhZWVkODBlOTU1MSIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMywgWmVybywgRkFSRykKICAgICAgICAgICAg ICAgICAgICAgICAgV2hpbGUgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgX1RfMCA9IEFyZzIKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoX1RfMCA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoT25lKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX1Rf MSA9IEFyZzMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChfVF8xID09 IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDdERCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlSWYgKChfVF8xID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEJ1ZmZlciAoMHg1NCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAw eDBBLCAweDAwLCAweDAwLCAweENFLCAweDI4LCAweDAwLCAweDAxLCAweDAwLCAgLyogLi4uLigu Li4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4 ICovICAweDNGLCAweDAwLCAweDAwLCAweDAwLCAweDIyLCAweDAwLCAweDAxLCAweDAwLCAgLyog Py4uLiIuLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiAwMDEwICovICAweDA0LCAweDAwLCAweEFBLCAweDE3LCAweDJDLCAweDAwLCAweDAxLCAweDAw LCAgLyogLi4uLiwuLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiAwMDE4ICovICAweDYyLCAweDAxLCAweDAwLCAweDAwLCAweDFELCAweDAwLCAweDAx LCAweDAwLCAgLyogYi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiAwMDIwICovICAweDhBLCAweDhBLCAweDAyLCAweDAwLCAweDFELCAweDAw LCAweDAxLCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvKiAwMDI4ICovICAweDBBLCAweEEwLCAweDQ1LCAweDAwLCAweDE0 LCAweDAwLCAweDAxLCAweDAwLCAgLyogLi5FLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDMwICovICAweENDLCAweDRDLCAweDA3LCAweDAw LCAweDJBLCAweDAwLCAweDAxLCAweDAwLCAgLyogLkwuLiouLi4gKi8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDM4ICovICAweDAwLCAweDAwLCAweDE4 LCAweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDQwICovICAweDAwLCAweDAw LCAweEZBLCAweEZGLCAweDFELCAweDAwLCAweDAxLCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDQ4ICovICAweDAw LCAweDQwLCAweEU2LCAweDAwLCAweDFELCAweDAwLCAweDAxLCAweDAwLCAgLyogLkAuLi4uLi4g Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDUwICov ICAweDAxLCAweDVGLCAweDMxLCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLl8x LiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFbHNlSWYgKChfVF8xID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEJ1ZmZlciAoMHgwM0NDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAg Ki8gIDB4MDMsIDB4MzAsIDB4NzIsIDB4NTYsIDB4MUUsIDB4MDAsIDB4MDEsIDB4MDAsICAvKiAu MHJWLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAwMDggKi8gIDB4QTQsIDB4MDAsIDB4RTYsIDB4MUUsIDB4MDEsIDB4MDAsIDB4QTUsIDB4MDAs ICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwMTAgKi8gIDB4MDAsIDB4RjksIDB4MDEsIDB4MDAsIDB4RUIsIDB4MDAsIDB4RUIs IDB4MDMsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAwMTggKi8gIDB4MDEsIDB4MDAsIDB4RUMsIDB4MDAsIDB4RkMsIDB4ODIs IDB4MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAwMjAgKi8gIDB4RUQsIDB4MDAsIDB4MTMsIDB4MUUsIDB4MDEs IDB4MDAsIDB4RUUsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMjggKi8gIDB4Q0IsIDB4QjYsIDB4MDEsIDB4MDAs IDB4RTcsIDB4MDAsIDB4MUYsIDB4MUMsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMzAgKi8gIDB4MDEsIDB4MDAsIDB4RTgs IDB4MDAsIDB4OTUsIDB4QTksIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMzggKi8gIDB4RTksIDB4MDAs IDB4RTEsIDB4MDEsIDB4MDEsIDB4MDAsIDB4RUEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNDAgKi8gIDB4NkUs IDB4MUEsIDB4MDEsIDB4MDAsIDB4RTUsIDB4MDAsIDB4MDUsIDB4MDIsICAvKiBuLi4uLi4uLiAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNDggKi8g IDB4MDEsIDB4MDAsIDB4RTYsIDB4MDAsIDB4RUMsIDB4QzMsIDB4MDEsIDB4MDAsICAvKiAuLi4u Li4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAw NTAgKi8gIDB4QUUsIDB4MDAsIDB4MDYsIDB4Q0YsIDB4MDEsIDB4MDAsIDB4QUYsIDB4MDAsICAv KiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAwNTggKi8gIDB4OEQsIDB4MTgsIDB4MDEsIDB4MDAsIDB4QjAsIDB4MDAsIDB4NzMsIDB4 MEMsICAvKiAuLi4uLi5zLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAwNjAgKi8gIDB4MDEsIDB4MDAsIDB4QjQsIDB4MDAsIDB4MjEsIDB4QzEsIDB4 MDEsIDB4MDAsICAvKiAuLi4uIS4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIDAwNjggKi8gIDB4QjUsIDB4MDAsIDB4NjksIDB4MUYsIDB4MDEsIDB4 MDAsIDB4QjYsIDB4MDAsICAvKiAuLmkuLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAwNzAgKi8gIDB4NTQsIDB4RkIsIDB4MDEsIDB4MDAsIDB4 QkEsIDB4MDAsIDB4QzUsIDB4QzEsICAvKiBULi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNzggKi8gIDB4MDEsIDB4MDAsIDB4QkIsIDB4 MDAsIDB4NUQsIDB4MUUsIDB4MDEsIDB4MDAsICAvKiAuLi4uXS4uLiAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwODAgKi8gIDB4QkMsIDB4MDAsIDB4 OTksIDB4MDYsIDB4MDEsIDB4MDAsIDB4QzAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwODggKi8gIDB4RjgsIDB4 MUUsIDB4MDEsIDB4MDAsIDB4QzEsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwOTAgKi8gIDB4 MDEsIDB4MDAsIDB4QzQsIDB4MDAsIDB4NjgsIDB4MUYsIDB4MDEsIDB4MDAsICAvKiAuLi4uaC4u LiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwOTgg Ki8gIDB4QzUsIDB4MDAsIDB4OTQsIDB4MDAsIDB4MDEsIDB4MDAsIDB4QzYsIDB4MDAsICAvKiAu Li4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAwQTAgKi8gIDB4NjksIDB4MUYsIDB4MDEsIDB4MDAsIDB4Q0EsIDB4MDAsIDB4RDYsIDB4MDIs ICAvKiBpLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwQTggKi8gIDB4MDEsIDB4MDAsIDB4Q0MsIDB4MDAsIDB4MTgsIDB4MTQsIDB4MDAs IDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAwQjAgKi8gIDB4QjEsIDB4MDAsIDB4MkUsIDB4MDMsIDB4MDAsIDB4MDAs IDB4QjAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAwQjggKi8gIDB4MDAsIDB4NjAsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuYC4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAwQzAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwQzggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwRDAgKi8gIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwRDggKi8gIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwRTAgKi8g IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4u Li4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAw RTggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAv KiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAwRjAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4MUMsIDB4 MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAwRjggKi8gIDB4MDEsIDB4MDAsIDB4QTYsIDB4MDAsIDB4RTYsIDB4MUUsIDB4 MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIDAxMDAgKi8gIDB4QTcsIDB4MDAsIDB4MDAsIDB4RjksIDB4MDEsIDB4 MDAsIDB4RjUsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAxMDggKi8gIDB4RUIsIDB4MDMsIDB4MDEsIDB4MDAsIDB4 RjYsIDB4MDAsIDB4RkMsIDB4ODIsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxMTAgKi8gIDB4MDEsIDB4MDAsIDB4RjcsIDB4 MDAsIDB4MTMsIDB4MUUsIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxMTggKi8gIDB4RjgsIDB4MDAsIDB4 Q0IsIDB4QjYsIDB4MDEsIDB4MDAsIDB4RjEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxMjAgKi8gIDB4MUYsIDB4 MUMsIDB4MDEsIDB4MDAsIDB4RjIsIDB4MDAsIDB4OTUsIDB4QTksICAvKiAuLi4uLi4uLiAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxMjggKi8gIDB4 MDEsIDB4MDAsIDB4RjMsIDB4MDAsIDB4RTEsIDB4MDEsIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4u LiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxMzAg Ki8gIDB4RjQsIDB4MDAsIDB4NkUsIDB4MUEsIDB4MDEsIDB4MDAsIDB4RUYsIDB4MDAsICAvKiAu Lm4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAxMzggKi8gIDB4MDUsIDB4MDIsIDB4MDEsIDB4MDAsIDB4RjAsIDB4MDAsIDB4RUMsIDB4QzMs ICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAxNDAgKi8gIDB4MDEsIDB4MDAsIDB4QjEsIDB4MDAsIDB4MDYsIDB4Q0YsIDB4MDEs IDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAxNDggKi8gIDB4QjIsIDB4MDAsIDB4OEQsIDB4MTgsIDB4MDEsIDB4MDAs IDB4QjMsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAxNTAgKi8gIDB4NzMsIDB4MEMsIDB4MDEsIDB4MDAsIDB4Qjcs IDB4MDAsIDB4MjEsIDB4QzEsICAvKiBzLi4uLi4hLiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAxNTggKi8gIDB4MDEsIDB4MDAsIDB4QjgsIDB4MDAs IDB4NjksIDB4MUYsIDB4MDEsIDB4MDAsICAvKiAuLi4uaS4uLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxNjAgKi8gIDB4QjksIDB4MDAsIDB4NTQs IDB4RkIsIDB4MDEsIDB4MDAsIDB4QkQsIDB4MDAsICAvKiAuLlQuLi4uLiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxNjggKi8gIDB4QzUsIDB4QzEs IDB4MDEsIDB4MDAsIDB4QkUsIDB4MDAsIDB4NUQsIDB4MUUsICAvKiAuLi4uLi5dLiAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxNzAgKi8gIDB4MDEs IDB4MDAsIDB4QkYsIDB4MDAsIDB4OTksIDB4MDYsIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxNzggKi8g IDB4QzIsIDB4MDAsIDB4RjgsIDB4MUUsIDB4MDEsIDB4MDAsIDB4QzMsIDB4MDAsICAvKiAuLi4u Li4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAx ODAgKi8gIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4QzcsIDB4MDAsIDB4NjgsIDB4MUYsICAv KiAuLi4uLi5oLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAxODggKi8gIDB4MDEsIDB4MDAsIDB4QzgsIDB4MDAsIDB4OTQsIDB4MDAsIDB4MDEsIDB4 MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAxOTAgKi8gIDB4QzksIDB4MDAsIDB4NjksIDB4MUYsIDB4MDEsIDB4MDAsIDB4 Q0IsIDB4MDAsICAvKiAuLmkuLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIDAxOTggKi8gIDB4RDYsIDB4MDIsIDB4MDEsIDB4MDAsIDB4Q0QsIDB4 MDAsIDB4MTgsIDB4MTQsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAxQTAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxQTggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxQjAgKi8gIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxQjggKi8gIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxQzAgKi8gIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4u LiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxQzgg Ki8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAu Li4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAxRDAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs ICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAxRDggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAxRTAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAxRTggKi8gIDB4MTQsIDB4MDAsIDB4MDEsIDB4MDAsIDB4Q0Us IDB4MDAsIDB4MTAsIDB4MUMsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAxRjAgKi8gIDB4MDEsIDB4MDAsIDB4Q0YsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxRjggKi8gIDB4RDAsIDB4MDAsIDB4MjQs IDB4REYsIDB4MDEsIDB4MDAsIDB4RDEsIDB4MDAsICAvKiAuLiQuLi4uLiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyMDAgKi8gIDB4RjcsIDB4NjIs IDB4MDEsIDB4MDAsIDB4RDIsIDB4MDAsIDB4MTAsIDB4NDgsICAvKiAuYi4uLi4uSCAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyMDggKi8gIDB4MDEs IDB4MDAsIDB4RDMsIDB4MDAsIDB4ODcsIDB4REIsIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyMTAgKi8g IDB4RDQsIDB4MDAsIDB4RjksIDB4MEQsIDB4MDEsIDB4MDAsIDB4RDUsIDB4MDAsICAvKiAuLi4u Li4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAy MTggKi8gIDB4MDUsIDB4RjQsIDB4MDEsIDB4MDAsIDB4RDYsIDB4MDAsIDB4NUYsIDB4QzIsICAv KiAuLi4uLi5fLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAyMjAgKi8gIDB4MDEsIDB4MDAsIDB4RDcsIDB4MDAsIDB4RjgsIDB4MUQsIDB4MDEsIDB4 MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAyMjggKi8gIDB4RDgsIDB4MDAsIDB4RUMsIDB4MEYsIDB4MDEsIDB4MDAsIDB4 RDksIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIDAyMzAgKi8gIDB4ODIsIDB4QzQsIDB4MDEsIDB4MDAsIDB4REEsIDB4 MDAsIDB4RDIsIDB4MUMsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAyMzggKi8gIDB4MDEsIDB4MDAsIDB4REIsIDB4MDAsIDB4 MDUsIDB4RjgsIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyNDAgKi8gIDB4REMsIDB4MDAsIDB4MzYsIDB4 MDQsIDB4MDEsIDB4MDAsIDB4REQsIDB4MDAsICAvKiAuLjYuLi4uLiAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyNDggKi8gIDB4MDAsIDB4MDAsIDB4 MDEsIDB4MDAsIDB4RTEsIDB4MDAsIDB4OTIsIDB4MDMsICAvKiAuLi4uLi4uLiAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyNTAgKi8gIDB4MDEsIDB4 MDAsIDB4RTIsIDB4MDAsIDB4RTgsIDB4MTEsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyNTggKi8gIDB4 QUYsIDB4MDAsIDB4M0QsIDB4MDAsIDB4MDAsIDB4MDAsIDB4QUUsIDB4MDAsICAvKiAuLj0uLi4u LiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyNjAg Ki8gIDB4MDAsIDB4NjAsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAu YC4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAyNjggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs ICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAyNzAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAyNzggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAyODAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAyODggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyOTAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyOTggKi8gIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyQTAgKi8gIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyQTggKi8g IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4u Li4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAy QjAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAv KiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAyQjggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAyQzAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIDAyQzggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAyRDAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyRDggKi8gIDB4Q0QsIDB4Q0QsIDB4MTQsIDB4 MDAsIDB4MDEsIDB4MDAsIDB4Q0UsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyRTAgKi8gIDB4MDAsIDB4MDAsIDB4 MDEsIDB4MDAsIDB4Q0YsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyRTggKi8gIDB4MDEsIDB4 MDAsIDB4RDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyRjAgKi8gIDB4 RDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4RDIsIDB4MDAsICAvKiAuLi4uLi4u LiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAyRjgg Ki8gIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4RDMsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAu Li4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAzMDAgKi8gIDB4MDEsIDB4MDAsIDB4RDQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAs ICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAzMDggKi8gIDB4RDUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4RDYs IDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAzMTAgKi8gIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4RDcsIDB4MDAs IDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAzMTggKi8gIDB4MDEsIDB4MDAsIDB4RDgsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAzMjAgKi8gIDB4RDksIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDEsIDB4MDAsIDB4REEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzMjggKi8gIDB4MDAsIDB4MDAsIDB4MDEs IDB4MDAsIDB4REIsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzMzAgKi8gIDB4MDEsIDB4MDAs IDB4REMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzMzggKi8gIDB4REQs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4RTEsIDB4MDAsICAvKiAuLi4uLi4uLiAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzNDAgKi8g IDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4RTIsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuLi4u Li4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAz NDggKi8gIDB4MDAsIDB4MDAsIDB4QUYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAv KiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAzNTAgKi8gIDB4QUUsIDB4MDAsIDB4MDAsIDB4NjAsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsICAvKiAuLi5gLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAzNTggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIDAzNjAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAzNjggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzNzAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzNzggKi8gIDB4Q0QsIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzODAgKi8gIDB4Q0QsIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzODggKi8gIDB4 Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4u LiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzOTAg Ki8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAu Li4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAzOTggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs ICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAzQTAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAzQTggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAzQjAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAzQjggKi8gIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzQzAgKi8gIDB4Q0QsIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsIDB4Q0QsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAzQzggKi8gIDB4Q0QsIDB4Q0Qs IDB4Q0QsIDB4Q0QgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuLi4uICovCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJ ZiAoKF9UXzEgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyICgw eDQyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4MDAsIDB4MjAs IDB4NzIsIDB4NTYsIDB4MDYsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuIHJWLi4uLiAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4QjIs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4RUYsIDB4QjMsIDB4MDAsICAvKiAuLi4uLi4uLiAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8g IDB4NUYsIDB4MjIsIDB4MDAsIDB4MDAsIDB4QjQsIDB4MDAsIDB4MkMsIDB4NDIsICAvKiBfIi4u Li4sQiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAw MTggKi8gIDB4MDAsIDB4MDAsIDB4QjUsIDB4MDAsIDB4MDAsIDB4MUYsIDB4MDAsIDB4MDAsICAv KiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAwMjAgKi8gIDB4QjYsIDB4MDAsIDB4MUYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4QjcsIDB4 MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIDAwMjggKi8gIDB4MTAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIDAwMzAgKi8gIDB4RjAsIDB4RTksIDB4MDksIDB4MDEsIDB4RjgsIDB4 RTksIDB4MDksIDB4MDEsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAwMzggKi8gIDB4MDgsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 N0EsIDB4RTIsIDB4QTcsIDB4NzcsICAvKiAuLi4uei4udyAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNDAgKi8gIDB4RDIsIDB4RDUgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuLiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8xID09 IDB4MDYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoMHgyRSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAweDA3LCAweDQxLCAweDQwLCAweDU2 LCAweDAwLCAweDAwLCAweDFDLCAweDAwLCAgLyogLkFAVi4uLi4gKi8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAweDRCLCAweDRCLCAweDAy LCAweDAwLCAweDA0LCAweDIzLCAweDAwLCAweDAwLCAgLyogS0suLi4jLi4gKi8KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDEwICovICAweDAyLCAweDAw LCAweEE4LCAweDIzLCAweDAwLCAweDE4LCAweDAyLCAweDAwLCAgLyogLi4uIy4uLi4gKi8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDE4ICovICAweEFC LCAweDIzLCAweDAwLCAweDcwLCAweDAyLCAweDAwLCAweEM0LCAweDIzLCAgLyogLiMucC4uLiMg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDIwICov ICAweDAwLCAweDQwLCAweDAyLCAweDAwLCAweDcwLCAweDIzLCAweDBBLCAweDAwLCAgLyogLkAu LnAjLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAw MDI4ICovICAweDAyLCAweDAwLCAweEM2LCAweDIzLCAweDBBLCAweDAwICAgICAgICAgICAgICAg LyogLi4uIy4uICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzEgPT0gMHgwNykpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoQnVmZmVyICgweDUyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IDAwMDAgKi8gIDB4MEQsIDB4NDIsIDB4NDAsIDB4NTYsIDB4MDAsIDB4MDAsIDB4MUMsIDB4MDAs ICAvKiAuQkBWLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwMDggKi8gIDB4NEIsIDB4NEIsIDB4MDIsIDB4MDAsIDB4MkYsIDB4MjMsIDB4NzAs IDB4MDAsICAvKiBLSy4uLyNwLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIDAwMTAgKi8gIDB4MDIsIDB4MDAsIDB4RkMsIDB4MjIsIDB4MDAsIDB4NjAs IDB4MDIsIDB4MDAsICAvKiAuLi4iLmAuLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIDAwMTggKi8gIDB4MkIsIDB4MjMsIDB4ODAsIDB4MDAsIDB4MDIs IDB4MDAsIDB4OTgsIDB4MjIsICAvKiArIy4uLi4uIiAqLwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMjAgKi8gIDB4MDAsIDB4NDAsIDB4MDIsIDB4MDAs IDB4MDksIDB4MjMsIDB4MDAsIDB4MDQsICAvKiAuQC4uLiMuLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMjggKi8gIDB4MDIsIDB4MDAsIDB4MEMs IDB4MjMsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsICAvKiAuLi4jLi4uLiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMzAgKi8gIDB4MEQsIDB4MjMs IDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4OEEsIDB4MjMsICAvKiAuIy4uLi4uIyAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMzggKi8gIDB4MDAs IDB4MjAsIDB4MDIsIDB4MDAsIDB4RTcsIDB4MjMsIDB4MDAsIDB4MkMsICAvKiAuIC4uLiMuLCAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNDAgKi8g IDB4MDIsIDB4MDAsIDB4RTgsIDB4MjMsIDB4MDAsIDB4M0MsIDB4MDIsIDB4MDAsICAvKiAuLi4j LjwuLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAw NDggKi8gIDB4RTksIDB4MjMsIDB4MDAsIDB4NDAsIDB4MDIsIDB4MDAsIDB4RUEsIDB4MjMsICAv KiAuIy5ALi4uIyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAwNTAgKi8gIDB4MDAsIDB4NzggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiAueCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8xID09IDB4MDgpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEJ1ZmZlciAoMHg1MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiAwMDAwICovICAweDBELCAweDQzLCAweDQwLCAweDU2LCAweDAwLCAweDAwLCAweDFDLCAweDAw LCAgLyogLkNAVi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiAwMDA4ICovICAweDRCLCAweDRCLCAweDAyLCAweDAwLCAweDJGLCAweDIzLCAweDcw LCAweDAwLCAgLyogS0suLi8jcC4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiAwMDEwICovICAweDAyLCAweDAwLCAweEZDLCAweDIyLCAweDAwLCAweDYw LCAweDAyLCAweDAwLCAgLyogLi4uIi5gLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvKiAwMDE4ICovICAweDJCLCAweDIzLCAweDgwLCAweDAwLCAweDAy LCAweDAwLCAweDk4LCAweDIyLCAgLyogKyMuLi4uLiIgKi8KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDIwICovICAweDAwLCAweDQwLCAweDAyLCAweDAw LCAweDA5LCAweDIzLCAweDAwLCAweDA0LCAgLyogLkAuLi4jLi4gKi8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDI4ICovICAweDAyLCAweDAwLCAweDBD LCAweDIzLCAweDAwLCAweDAxLCAweDAyLCAweDAwLCAgLyogLi4uIy4uLi4gKi8KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDMwICovICAweDBELCAweDIz LCAweDAwLCAweDAxLCAweDAyLCAweDAwLCAweDhBLCAweDIzLCAgLyogLiMuLi4uLiMgKi8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDM4ICovICAweDAw LCAweDIwLCAweDAyLCAweDAwLCAweEU3LCAweDIzLCAweDAwLCAweDJDLCAgLyogLiAuLi4jLiwg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDQwICov ICAweDAyLCAweDAwLCAweEU4LCAweDIzLCAweDAwLCAweDNDLCAweDAyLCAweDAwLCAgLyogLi4u Iy48Li4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAw MDQ4ICovICAweEU5LCAweDIzLCAweDAwLCAweDQwLCAweDAyLCAweDAwLCAweEVBLCAweDIzLCAg LyogLiMuQC4uLiMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiAwMDUwICovICAweDAwLCAweDc4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogLnggKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMSA9PSAweDA5KSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChCdWZmZXIgKDB4MzQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogMDAwMCAqLyAgMHgwOCwgMHg0NCwgMHg0MCwgMHg1NiwgMHgwMCwgMHgwMCwgMHgxQywgMHgw MCwgIC8qIC5EQFYuLi4uICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogMDAwOCAqLyAgMHg2QywgMHg2QywgMHgwMCwgMHgwMCwgMHgyRSwgMHgwMCwgMHgy RiwgMHgyRiwgIC8qIGxsLi4uLi8vICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogMDAxMCAqLyAgMHgwMiwgMHgwMCwgMHgwQywgMHgyMywgMHgwMCwgMHgw MSwgMHgwMiwgMHgwMCwgIC8qIC4uLiMuLi4uICovCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogMDAxOCAqLyAgMHhBOCwgMHgyMywgMHgwMCwgMHgxOCwgMHgw MiwgMHgwMCwgMHhBQiwgMHgyMywgIC8qIC4jLi4uLi4jICovCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAyMCAqLyAgMHgwMCwgMHg3MCwgMHgwMiwgMHgw MCwgMHhDNCwgMHgyMywgMHgwMCwgMHg0MCwgIC8qIC5wLi4uIy5AICovCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAyOCAqLyAgMHgwMiwgMHgwMCwgMHg3 MCwgMHgyMywgMHgwQSwgMHgwMCwgMHgwMiwgMHgwMCwgIC8qIC4ucCMuLi4uICovCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAzMCAqLyAgMHhDNiwgMHgy MywgMHgwQSwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4jLi4gKi8KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxz ZUlmICgoX1RfMSA9PSAweDBBKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIg KDB4NDYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgwQiwgMHg0 NSwgMHg0MCwgMHg1NiwgMHgwMCwgMHgwMCwgMHgxQywgMHgwMCwgIC8qIC5FQFYuLi4uICovCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgMHg0 QiwgMHg0QiwgMHgwMiwgMHgwMCwgMHhGRCwgMHgyMiwgMHgxQSwgMHgwMCwgIC8qIEtLLi4uIi4u ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAxMCAq LyAgMHgwMiwgMHgwMCwgMHhGMiwgMHgyMiwgMHg1MCwgMHgwMCwgMHgwMiwgMHgwMCwgIC8qIC4u LiJQLi4uICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog MDAxOCAqLyAgMHgwOSwgMHgyMywgMHgwMCwgMHgwMiwgMHgwMiwgMHgwMCwgMHgyRiwgMHgyMywg IC8qIC4jLi4uLi8jICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLyogMDAyMCAqLyAgMHg0MCwgMHgwMCwgMHgwMiwgMHgwMCwgMHg3MSwgMHgyMywgMHgwRCwg MHgwMCwgIC8qIEAuLi5xIy4uICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLyogMDAyOCAqLyAgMHgwMiwgMHgwMCwgMHg4QiwgMHgyMywgMHgwMCwgMHgyOCwg MHgwMiwgMHgwMCwgIC8qIC4uLiMuKC4uICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogMDAzMCAqLyAgMHg4QywgMHgyMywgMHgwMCwgMHgyOCwgMHgwMiwg MHgwMCwgMHhDNCwgMHgyMywgIC8qIC4jLiguLi4jICovCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogMDAzOCAqLyAgMHhGRiwgMHg3RiwgMHgwMiwgMHgwMCwg MHhGQywgMHgyMiwgMHgwMCwgMHg2MCwgIC8qIC4uLi4uIi5gICovCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDA0MCAqLyAgMHgwMiwgMHgwMCwgMHgyQiwg MHgyMywgMHg4MCwgMHgwMCAgICAgICAgICAgICAgIC8qIC4uKyMuLiAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoMHg4MDAwMDAwMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJl YWsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsKICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDgwMDAwMDAyKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf UFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg Q0tDMyA9IFplcm8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9Q UzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ0tDMyA9IE9uZQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ESVM6 IERpc2FibGUgRGV2aWNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmljZSAoSTJDMykKICAgICAgICB7CiAgICAg ICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgIE5h bWUgKF9ISUQsICI4MDg2MEY0MSIgLyogSW50ZWwgQmF5dHJhaWwgSTJDIEhvc3QgQ29udHJvbGxl ciAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9DSUQsICI4MDg2 MEY0MSIgLyogSW50ZWwgQmF5dHJhaWwgSTJDIEhvc3QgQ29udHJvbGxlciAqLykgIC8vIF9DSUQ6 IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgTmFtZSAoX0RETiwgIkludGVsKFIpIEkyQyBDb250 cm9sbGVyICMzIC0gODA4NjBGNDMiKSAgLy8gX0RETjogRE9TIERldmljZSBOYW1lCiAgICAgICAg ICAgIE5hbWUgKF9VSUQsIDB4MDMpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgTmFt ZSAoX0RFUCwgUGFja2FnZSAoMHgwMSkgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBQRVBECiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUg KFJCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg TWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs ICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMCwg ICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgIF9ZMTQpCiAgICAg ICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVMb3cs IEV4Y2x1c2l2ZSwgLCwgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4 MDAwMDAwMjIsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBGaXhlZERNQSAoMHgw MDE0LCAweDAwMDQsIFdpZHRoMzJiaXQsICkKICAgICAgICAgICAgICAgIEZpeGVkRE1BICgweDAw MTUsIDB4MDAwNSwgV2lkdGgzMmJpdCwgKQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRo b2QgKF9IUlYsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSFJWOiBIYXJkd2FyZSBSZXZpc2lvbgog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFNPQ1MpIC8qIFxTT0NTICovCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkJVRiwgXF9TQi5JMkMzLl9ZMTQuX0JBUywgQjBC QSkgIC8vIF9CQVM6IEJhc2UgQWRkcmVzcwogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoUkJVRiwgXF9TQi5JMkMzLl9ZMTQuX0xFTiwgQjBMTikgIC8vIF9MRU46IExlbmd0aAogICAg ICAgICAgICAgICAgQjBCQSA9IEkzMEEgLyogXEkzMEEgKi8KICAgICAgICAgICAgICAgIEIwTE4g PSBJMzBMIC8qIFxJMzBMICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFJCVUYpIC8qIFxfU0Jf LkkyQzMuUkJVRiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgSWYgKCgoSTMwQSA9PSBaZXJvKSB8fCAoTDIzRCA9PSBPbmUpKSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICB9CgogICAgICAgICAg ICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAz CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBTQVQgfD0gMHgwMwogICAgICAgICAgICAg ICAgUFNBVCB8PSBaZXJvCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgUFNBVCAmPSAweEZGRkZGRkZDCiAgICAgICAgICAgICAgICBQU0FUIHw9 IFplcm8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChLRVlTLCBT eXN0ZW1NZW1vcnksIEkzMUEsIDB4MDEwMCkKICAgICAgICAgICAgRmllbGQgKEtFWVMsIERXb3Jk QWNjLCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg T2Zmc2V0ICgweDg0KSwgCiAgICAgICAgICAgICAgICBQU0FULCAgIDMyCiAgICAgICAgICAgIH0K ICAgICAgICB9CgogICAgICAgIERldmljZSAoSTJDNCkKICAgICAgICB7CiAgICAgICAgICAgIE5h bWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNzCiAgICAgICAgICAgIE5hbWUgKF9ISUQs ICI4MDg2MEY0MSIgLyogSW50ZWwgQmF5dHJhaWwgSTJDIEhvc3QgQ29udHJvbGxlciAqLykgIC8v IF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9DSUQsICI4MDg2MEY0MSIgLyog SW50ZWwgQmF5dHJhaWwgSTJDIEhvc3QgQ29udHJvbGxlciAqLykgIC8vIF9DSUQ6IENvbXBhdGli bGUgSUQKICAgICAgICAgICAgTmFtZSAoX0RETiwgIkludGVsKFIpIEkyQyBDb250cm9sbGVyICM0 IC0gODA4NjBGNDQiKSAgLy8gX0RETjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAgIE5hbWUg KF9VSUQsIDB4MDQpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgTmFtZSAoX0RFUCwg UGFja2FnZSAoMHgwMSkgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBQRVBECiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKFJCVUYsIFJl c291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTWVtb3J5MzJG aXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAg Ly8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMCwgICAgICAgICAv LyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgIF9ZMTUpCiAgICAgICAgICAgICAg ICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVMb3csIEV4Y2x1c2l2 ZSwgLCwgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjMs CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBGaXhlZERNQSAoMHgwMDE2LCAweDAw MDYsIFdpZHRoMzJiaXQsICkKICAgICAgICAgICAgICAgIEZpeGVkRE1BICgweDAwMTcsIDB4MDAw NywgV2lkdGgzMmJpdCwgKQogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKF9IUlYs IDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSFJWOiBIYXJkd2FyZSBSZXZpc2lvbgogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFNPQ1MpIC8qIFxTT0NTICovCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6 IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg Q3JlYXRlRFdvcmRGaWVsZCAoUkJVRiwgXF9TQi5JMkM0Ll9ZMTUuX0JBUywgQjBCQSkgIC8vIF9C QVM6IEJhc2UgQWRkcmVzcwogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkJVRiwg XF9TQi5JMkM0Ll9ZMTUuX0xFTiwgQjBMTikgIC8vIF9MRU46IExlbmd0aAogICAgICAgICAgICAg ICAgQjBCQSA9IEk0MEEgLyogXEk0MEEgKi8KICAgICAgICAgICAgICAgIEIwTE4gPSBJNDBMIC8q IFxJNDBMICovCiAgICAgICAgICAgICAgICBSZXR1cm4gKFJCVUYpIC8qIFxfU0JfLkkyQzQuUkJV RiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlh bGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYg KCgoSTQwQSA9PSBaZXJvKSB8fCAoTDI0RCA9PSBPbmUpKSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2Qg KF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIFBTQVQgfD0gMHgwMwogICAgICAgICAgICAgICAgUFNBVCB8 PSBaZXJvCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRlIDAKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgUFNBVCAmPSAweEZGRkZGRkZDCiAgICAgICAgICAgICAgICBQU0FUIHw9IFplcm8KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChLRVlTLCBTeXN0ZW1NZW1v cnksIEk0MUEsIDB4MDEwMCkKICAgICAgICAgICAgRmllbGQgKEtFWVMsIERXb3JkQWNjLCBOb0xv Y2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgT2Zmc2V0ICgw eDg0KSwgCiAgICAgICAgICAgICAgICBQU0FULCAgIDMyCiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIFBvd2VyUmVzb3VyY2UgKENMSzAsIDB4MDAsIDB4MDAwMCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3Rh dHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChDS0MwKSAv KiBcQ0tDMCAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX09O LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX09OXzogUG93ZXIgT24KICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBDS0MwID0gT25lCiAgICAgICAgICAgICAgICAgICAgQ0tGMCA9 IE9uZQogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDIwKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX09GRiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9PRkY6 IFBvd2VyIE9mZgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENLQzAgPSAw eDAyCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFBvd2VyUmVz b3VyY2UgKENMSzEsIDB4MDAsIDB4MDAwMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg TWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChDS0MxKSAvKiBcQ0tDMSAqLwog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX09OLCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX09OXzogUG93ZXIgT24KICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBDS0MxID0gT25lCiAgICAgICAgICAgICAgICAgICAgQ0tGMSA9IE9uZQogICAgICAg ICAgICAgICAgICAgIFNsZWVwICgweDIwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX09GRiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9PRkY6IFBvd2VyIE9mZgog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENLQzEgPSAweDAyCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoQ0FNMCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJl c3MKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJJTlRDRjBCIikgIC8vIF9ISUQ6IEhhcmR3 YXJlIElECiAgICAgICAgICAgICAgICBOYW1lIChfQ0lELCAiSU5UQ0YwQiIpICAvLyBfQ0lEOiBD b21wYXRpYmxlIElECiAgICAgICAgICAgICAgICBOYW1lIChfU1VCLCAiMjIxQzE3QUEiKSAgLy8g X1NVQjogU3Vic3lzdGVtIElECiAgICAgICAgICAgICAgICBOYW1lIChfREROLCAiT1YyNzIwIikg IC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgT25l KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICBOYW1lIChfREVQLCBQYWNrYWdl ICgweDAyKSAgLy8gX0RFUDogRGVwZW5kZW5jaWVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSTJDNywgCiAgICAgICAgICAgICAgICAgICAgXl5JMkM3LlBNSUMKICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChfUFIwLCBQYWNrYWdlICgweDAzKSAg Ly8gX1BSMDogUG93ZXIgUmVzb3VyY2VzIGZvciBEMAogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFAyOFgsIAogICAgICAgICAgICAgICAgICAgIFAxOFgsIAogICAgICAgICAg ICAgICAgICAgIENMSzEKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChQ TERCLCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IEJ1ZmZlciAoMHgxNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwMDAgKi8gIDB4ODIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICov ICAweDYxLCAweDRDLCAweDAwLCAweDAwLCAweDAzLCAweDAwLCAweDAwLCAweDAwLCAgLyogYUwu Li4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHhGRiwgMHhGRiwg MHhGRiwgMHhGRiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4uLi4gKi8KICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTWV0aG9kIChf UExELCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNl CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQTERCKSAvKiBc X1NCXy5JMkM0LkNBTTAuUExEQiAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQkRJRCA9PSAweDA0KSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRkJJRCA9PSAweDAy KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEZCSUQgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu ICgweDBGKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywg MCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChTQlVGLCBSZXNvdXJjZVRl bXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBH cGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwgMHgwMDAwLCBJb1Jlc3RyaWN0 aW9uT3V0cHV0T25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUE8xIiwg MHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDE2CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgw MDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIlxcX1NCLkdQTzEiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8g UGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVz ICgweDAwMzYsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5JMkM0IiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoU0JVRikgLyogXF9TQl8uSTJDNC5DQU0wLl9DUlMuU0JVRiAqLwogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiMzc3YmE3NmEtZjM5MC00YWZm LWFiMzgtOWIxYmYzM2EzMDE1IikpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgiSU5UQ0YwQiIpCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiM2M2MmFhYWEtZDhlMC00MDFh LTg0YzMtZmMwNTY1NmZhMjhjIikpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgiT1YyNzIwIikKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI4MjJhY2U4Zi0yODE0LTQxNzQt YTU2Yi01ZjAyOWZlMDc5ZWUiKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKCIxMVAyU0YyMDgiKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjI5NTk1MTJhLTAyOGMtNDY0 Ni1iNzNkLTRkMWI1NjcyZmFkOCIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQkRJRCA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChGQklEID09IDB4MDIpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoIklOVEVMX0ZGUkQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoRkJJRCA9PSAweDAzKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJJ TlRFTF9GRlJEIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgiSU5URUxfUlZQIikK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBU b1VVSUQgKCI5MThhYjI0Mi1jMzdjLTQ1MGEtOWQwZi1mNDdhYjk3YzNkZWEiKSkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEwMSkKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VV SUQgKCJlYTNiN2JkOC1lMDliLTQyMzktYWQ2ZS1lZDUyNWYzZjI2YWIiKSkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgi YjY1YWM0OTItOWUzMC00ZDYwLWI1YjItZjQ5N2M3OTBkOWNmIikpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImU3NzBh YjBmLTI2NDQtNGJhYi04NjI4LWQ2MmYxNjgzZmI5ZCIpKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCIxZWE1NGFiMi1j ZDg0LTQ4Y2MtOWRkNC03ZjU5NGVjM2IwMTUiKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiOGRiZTI2NTEtNzBjMS00 YzZmLWFjODctYTM3Y2I0NmU0YWY2IikpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiNzVjOWE2MzktNWM4YS00YTAwLTlm NDgtYTljM2I1ZGE3ODlmIikpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjI2MjU3NTQ5LTkyNzEtNGNhNC1iYjQzLWM0 ODk5ZDVhNDg4MSIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDIpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDQw MDM2MDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI3OTIzNDY0MC05ZTEwLTRm ZWEtYTVjMS1iNWFhOGIxOTc1NmYiKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoMHgwMTAwMTYwMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEwMDE5MDEpCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAg ICAgICAgRGV2aWNlIChDQU0xKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChf QURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwg IklOVENGMUEiIC8qIFNvbnkgSU1YMTc1IENhbWVyYSBTZW5zb3IgKi8pICAvLyBfSElEOiBIYXJk d2FyZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX0NJRCwgIklOVENGMUEiIC8qIFNvbnkgSU1Y MTc1IENhbWVyYSBTZW5zb3IgKi8pICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAg ICAgICBOYW1lIChfU1VCLCAiMjIxQzE3QUEiKSAgLy8gX1NVQjogU3Vic3lzdGVtIElECiAgICAg ICAgICAgICAgICBOYW1lIChfREROLCAiU29ueSBJTVgxNzUiKSAgLy8gX0RETjogRE9TIERldmlj ZSBOYW1lCiAgICAgICAgICAgICAgICBOYW1lIChfVUlELCBPbmUpICAvLyBfVUlEOiBVbmlxdWUg SUQKICAgICAgICAgICAgICAgIE5hbWUgKF9ERVAsIFBhY2thZ2UgKDB4MDIpICAvLyBfREVQOiBE ZXBlbmRlbmNpZXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJMkM3LCAK ICAgICAgICAgICAgICAgICAgICBeXkkyQzcuUE1JQwogICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgIE5hbWUgKF9QUjAsIFBhY2thZ2UgKDB4MDMpICAvLyBfUFIwOiBQb3dlciBSZXNv dXJjZXMgZm9yIEQwCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUDI4WCwg CiAgICAgICAgICAgICAgICAgICAgUDE4WCwgCiAgICAgICAgICAgICAgICAgICAgQ0xLMAogICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKFBMREIsIFBhY2thZ2UgKDB4MDEp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQnVmZmVyICgweDE0KQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHg4 MiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8qIC4uLi4uLi4u ICovCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4NjksIDB4NEMsIDB4MDAs IDB4MDAsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiBpTC4uLi4uLiAqLwogICAgICAgICAg ICAgICAgICAgICAgICAvKiAwMDEwICovICAweEZGLCAweEZGLCAweEZGLCAweEZGICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogLi4uLiAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQp ICAvLyBfUExEOiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBMREIpIC8qIFxfU0JfLkkyQzQuQ0FNMS5QTERC ICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKChCRElEID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1 cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBOYW1lIChTQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERlZmF1bHQs IDB4MDAwMCwgMHgwMDAwLCBJb1Jlc3RyaWN0aW9uT3V0cHV0T25seSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJcXF9TQi5HUE8xIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAg IC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE4CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEkyY1Nlcmlh bEJ1cyAoMHgwMDEwLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuSTJDNCIsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1 cyAoMHgwMDBDLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuSTJDNCIsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1cyAo MHgwMDU0LCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuSTJDNCIsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFNCVUYpIC8qIFxfU0JfLkkyQzQuQ0FNMS5fQ1JTLlNCVUYgKi8KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjM3N2JhNzZhLWYzOTAtNGFmZi1h YjM4LTliMWJmMzNhMzAxNSIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoIklOVENGMUEiKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjNjNjJhYWFhLWQ4ZTAtNDAxYS04 NGMzLWZjMDU2NTZmYTI4YyIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoIklNWDE3NSIpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiODIyYWNlOGYtMjgxNC00MTc0LWE1 NmItNWYwMjlmZTA3OWVlIikpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgiMTNQMkJBODMyQSIpCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiMjk1OTUxMmEtMDI4Yy00NjQ2 LWI3M2QtNGQxYjU2NzJmYWQ4IikpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChCRElEID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEZCSUQgPT0gMHgwMikpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICgiSU5URUxfRkZSRCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChGQklEID09IDB4MDMpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoIklO VEVMX0ZGUkQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJJTlRFTF9SVlAiKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRv VVVJRCAoIjkxOGFiMjQyLWMzN2MtNDUwYS05ZDBmLWY0N2FiOTdjM2RlYSIpKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMTA0KQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJ RCAoImVhM2I3YmQ4LWUwOWItNDIzOS1hZDZlLWVkNTI1ZjNmMjZhYiIpKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImI2 NWFjNDkyLTllMzAtNGQ2MC1iNWIyLWY0OTdjNzkwZDljZiIpKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQ0FNSSA9PSBPbmUpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkK ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImU3NzBhYjBmLTI2NDQt NGJhYi04NjI4LWQ2MmYxNjgzZmI5ZCIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCIxZWE1NGFiMi1jZDg0LTQ4Y2Mt OWRkNC03ZjU5NGVjM2IwMTUiKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiOGRiZTI2NTEtNzBjMS00YzZmLWFjODct YTM3Y2I0NmU0YWY2IikpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjc1YzlhNjM5LTVjOGEtNGEwMC05ZjQ4LWE5YzNi NWRhNzg5ZiIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IElmICgoQXJnMCA9PSBUb1VVSUQgKCIyNjI1NzU0OS05MjcxLTRjYTQtYmI0My1jNDg5OWQ1YTQ4 ODEiKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzIgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgweDAzKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwNDAwMTAwMCkK ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcyID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MDQwMDBDMDEpCiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDA0KSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA0MDA1 NDAyKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiNzkyMzQ2NDAtOWUxMC00ZmVh LWE1YzEtYjVhYThiMTk3NTZmIikpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHgwMTAwMTgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKENBTTMpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNzCiAgICAg ICAgICAgICAgICBOYW1lIChfSElELCAiSU5UQ0YxQiIpICAvLyBfSElEOiBIYXJkd2FyZSBJRAog ICAgICAgICAgICAgICAgTmFtZSAoX0NJRCwgIklOVENGMUIiKSAgLy8gX0NJRDogQ29tcGF0aWJs ZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX1NVQiwgIklOVEwwMDAwIikgIC8vIF9TVUI6IFN1 YnN5c3RlbSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX0RETiwgIlNvbnkgSU1YMTM0IikgIC8v IF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgT25lKSAg Ly8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgICAgICBOYW1lIChfREVQLCBQYWNrYWdlICgw eDAyKSAgLy8gX0RFUDogRGVwZW5kZW5jaWVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgSTJDNywgCiAgICAgICAgICAgICAgICAgICAgXl5JMkM3LlBNSUMKICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChfUFIwLCBQYWNrYWdlICgweDAzKSAgLy8g X1BSMDogUG93ZXIgUmVzb3VyY2VzIGZvciBEMAogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFAyOFgsIAogICAgICAgICAgICAgICAgICAgIFAxOFgsIAogICAgICAgICAgICAg ICAgICAgIENMSzAKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChQTERC LCBQYWNrYWdlICgweDAxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEJ1 ZmZlciAoMHgxNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAwMDAgKi8gIDB4ODIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAw eDY5LCAweDBDLCAweDAwLCAweDAwLCAweDAzLCAweDAwLCAweDAwLCAweDAwLCAgLyogaS4uLi4u Li4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgMHhGRiwgMHhGRiwgMHhG RiwgMHhGRiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4uLi4gKi8KICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgTWV0aG9kIChfUExE LCAwLCBTZXJpYWxpemVkKSAgLy8gX1BMRDogUGh5c2ljYWwgTG9jYXRpb24gb2YgRGV2aWNlCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQTERCKSAvKiBcX1NC Xy5JMkM0LkNBTTMuUExEQiAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQkRJRCA9PSAweDAzKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoU0JVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgR3Bpb0lvIChFeGNsdXNp dmUsIFB1bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAwMCwgSW9SZXN0cmljdGlvbk91dHB1dE9ubHks CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BPMSIsIDB4MDAsIFJlc291cmNl Q29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAxOAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICBJMmNTZXJpYWxCdXMgKDB4MDAxMCwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2 MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxc X1NCLkkyQzQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25z dW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAg ICAgICBJMmNTZXJpYWxCdXMgKDB4MDAwQywgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4 MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NC LkkyQzQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1l ciwgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAg ICBJMmNTZXJpYWxCdXMgKDB4MDA1NCwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwgIlxcX1NCLkky QzQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwg LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChTQlVGKSAvKiBcX1NCXy5JMkM0LkNBTTMuX0NSUy5T QlVGICovCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0 LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCIzNzdi YTc2YS1mMzkwLTRhZmYtYWIzOC05YjFiZjMzYTMwMTUiKSkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJJTlRDRjFBIikKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCIzYzYy YWFhYS1kOGUwLTQwMWEtODRjMy1mYzA1NjU2ZmEyOGMiKSkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJJTVgxNzUiKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjgyMmFj ZThmLTI4MTQtNDE3NC1hNTZiLTVmMDI5ZmUwNzllZSIpKSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoIjEzUDJCQTgwNyIpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiMjk1 OTUxMmEtMDI4Yy00NjQ2LWI3M2QtNGQxYjU2NzJmYWQ4IikpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCRElEID09IDB4MDQpKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEZCSUQgPT0g MHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgiSU5URUxfRkZSRCIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChGQklEID09IDB4MDMpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoIklOVEVMX0ZGUkQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KCJJTlRFTF9SVlAiKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcwID09IFRvVVVJRCAoIjkxOGFiMjQyLWMzN2MtNDUwYS05ZDBmLWY0N2FiOTdjM2Rl YSIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHgwMTA0KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYg KChBcmcwID09IFRvVVVJRCAoImVhM2I3YmQ4LWUwOWItNDIzOS1hZDZlLWVkNTI1ZjNmMjZhYiIp KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo T25lKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcw ID09IFRvVVVJRCAoImI2NWFjNDkyLTllMzAtNGQ2MC1iNWIyLWY0OTdjNzkwZDljZiIpKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBU b1VVSUQgKCJlNzcwYWIwZi0yNjQ0LTRiYWItODYyOC1kNjJmMTY4M2ZiOWQiKSkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlE ICgiMWVhNTRhYjItY2Q4NC00OGNjLTlkZDQtN2Y1OTRlYzNiMDE1IikpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjhk YmUyNjUxLTcwYzEtNGM2Zi1hYzg3LWEzN2NiNDZlNGFmNiIpKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI3NWM5YTYz OS01YzhhLTRhMDAtOWY0OC1hOWMzYjVkYTc4OWYiKSkpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiMjYyNTc1NDktOTI3 MS00Y2E0LWJiNDMtYzQ4OTlkNWE0ODgxIikpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4 MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MDQwMDEwMDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA0MDAwQzAxKQogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIg PT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwNDAwNTQwMikKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJ RCAoIjc5MjM0NjQwLTllMTAtNGZlYS1hNWMxLWI1YWE4YjE5NzU2ZiIpKSkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChBcmcyID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEwMDE4MDApCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNl IChDQU0yKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCBaZXJvKSAg Ly8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIklOVDMzRkIiIC8q IE1JUEktQ1NJIENhbWVyYSBTZW5zb3IgT1YyNzIyICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQK ICAgICAgICAgICAgICAgIE5hbWUgKF9DSUQsICJJTlQzM0ZCIiAvKiBNSVBJLUNTSSBDYW1lcmEg U2Vuc29yIE9WMjcyMiAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgICAg IE5hbWUgKF9TVUIsICIyMjFDMTdBQSIpICAvLyBfU1VCOiBTdWJzeXN0ZW0gSUQKICAgICAgICAg ICAgICAgIE5hbWUgKF9ERE4sICJPVjI3MjIiKSAgLy8gX0RETjogRE9TIERldmljZSBOYW1lCiAg ICAgICAgICAgICAgICBOYW1lIChfVUlELCBPbmUpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAg ICAgICAgICAgIE5hbWUgKF9ERVAsIFBhY2thZ2UgKDB4MDIpICAvLyBfREVQOiBEZXBlbmRlbmNp ZXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJMkM3LCAKICAgICAgICAg ICAgICAgICAgICBeXkkyQzcuUE1JQwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg IE5hbWUgKF9QUjAsIFBhY2thZ2UgKDB4MDMpICAvLyBfUFIwOiBQb3dlciBSZXNvdXJjZXMgZm9y IEQwCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUDI4WCwgCiAgICAgICAg ICAgICAgICAgICAgUDE4WCwgCiAgICAgICAgICAgICAgICAgICAgQ0xLMQogICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKFBMREIsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQnVmZmVyICgweDE0KQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHg4MiwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgIC8qIC4uLi4uLi4uICovCiAgICAg ICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4NjEsIDB4NEMsIDB4MDAsIDB4MDAsIDB4 MDMsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiBhTC4uLi4uLiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAvKiAwMDEwICovICAweEZGLCAweEZGLCAweEZGLCAweEZGICAgICAgICAgICAgICAgICAg ICAgICAgICAgLyogLi4uLiAqLwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QTEQsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUExE OiBQaHlzaWNhbCBMb2NhdGlvbiBvZiBEZXZpY2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFBMREIpIC8qIFxfU0JfLkkyQzQuQ0FNMi5QTERCICovCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxp emVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgSWYgKChCRElEID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVz b3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1l IChTQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwg MHgwMDAwLCBJb1Jlc3RyaWN0aW9uT3V0cHV0T25seSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJcXF9TQi5HUE8xIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBs aXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE2CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZl LCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQTzEiLCAweDAwLCBSZXNvdXJjZUNv bnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwMTkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgSTJjU2VyaWFsQnVzICgweDAwMzYsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFB ODAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9T Qi5JMkM0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3Vt ZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoU0JVRikgLyogXF9TQl8uSTJDNC5DQU0yLl9D UlMuU0JVRiAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RT TSwgNCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgi Mzc3YmE3NmEtZjM5MC00YWZmLWFiMzgtOWIxYmYzM2EzMDE1IikpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgiSU5UMzNGQiIpCiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgi M2M2MmFhYWEtZDhlMC00MDFhLTg0YzMtZmMwNTY1NmZhMjhjIikpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgiT1YyNzIyIikKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI4 MjJhY2U4Zi0yODE0LTQxNzQtYTU2Yi01ZjAyOWZlMDc5ZWUiKSkpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCIxM1AyU0YyMjMiKQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAo IjI5NTk1MTJhLTAyOGMtNDY0Ni1iNzNkLTRkMWI1NjcyZmFkOCIpKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQkRJRCA9PSAweDA0KSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChGQklE ID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoIklOVEVMX0ZGUkQiKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRkJJRCA9PSAweDAz KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKCJJTlRFTF9GRlJEIikKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICgiSU5URUxfUlZQIikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI5MThhYjI0Mi1jMzdjLTQ1MGEtOWQwZi1mNDdhYjk3 YzNkZWEiKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MDEwMSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IElmICgoQXJnMCA9PSBUb1VVSUQgKCJlYTNiN2JkOC1lMDliLTQyMzktYWQ2ZS1lZDUyNWYzZjI2 YWIiKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzAgPT0gVG9VVUlEICgiYjY1YWM0OTItOWUzMC00ZDYwLWI1YjItZjQ5N2M3OTBkOWNmIikp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChP bmUpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAg PT0gVG9VVUlEICgiZTc3MGFiMGYtMjY0NC00YmFiLTg2MjgtZDYyZjE2ODNmYjlkIikpKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRv VVVJRCAoIjFlYTU0YWIyLWNkODQtNDhjYy05ZGQ0LTdmNTk0ZWMzYjAxNSIpKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQg KCI4ZGJlMjY1MS03MGMxLTRjNmYtYWM4Ny1hMzdjYjQ2ZTRhZjYiKSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCI3NWM5 YTYzOS01YzhhLTRhMDAtOWY0OC1hOWMzYjVkYTc4OWYiKSkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiMjYyNTc1NDkt OTI3MS00Y2E0LWJiNDMtYzQ4OTlkNWE0ODgxIikpKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0g MHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoMHgwNDAwMzYwMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAo Ijc5MjM0NjQwLTllMTAtNGZlYS1hNWMxLWI1YWE4YjE5NzU2ZiIpKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSBPbmUpKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MDIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDAxMDAxNjAwKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMykpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQkRJRCA9 PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MTkwMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEwMDE5MDEpCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAg ICAgICAgICAgRGV2aWNlIChTVFJBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1l IChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICAgICAgTmFtZSAoX0hJ RCwgIklOVENGMUMiKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgICAgIE5hbWUg KF9DSUQsICJJTlRDRjFDIikgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgICAg IE5hbWUgKF9TVUIsICIyMjFDMTdBQSIpICAvLyBfU1VCOiBTdWJzeXN0ZW0gSUQKICAgICAgICAg ICAgICAgIE5hbWUgKF9ERE4sICJGbGFzaCBMTTM1NTQiKSAgLy8gX0RETjogRE9TIERldmljZSBO YW1lCiAgICAgICAgICAgICAgICBOYW1lIChfVUlELCBPbmUpICAvLyBfVUlEOiBVbmlxdWUgSUQK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6 IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw RikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5v dFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoU0JVRiwgUmVzb3VyY2VUZW1wbGF0 ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgR3Bpb0lv IChFeGNsdXNpdmUsIFB1bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAwMCwgSW9SZXN0cmljdGlvbk91 dHB1dE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BPMSIsIDB4MDAs IFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAxMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERlZmF1bHQsIDB4MDAwMCwg MHgwMDAwLCBJb1Jlc3RyaWN0aW9uT3V0cHV0T25seSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJcXF9TQi5HUE8xIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBs aXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDE0CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZl LCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQTzEiLCAweDAwLCBSZXNvdXJjZUNv bnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwMTAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgR3Bpb0lvIChFeGNsdXNpdmUsIFB1bGxEZWZhdWx0LCAweDAwMDAsIDB4MDAwMCwgSW9S ZXN0cmljdGlvbk91dHB1dE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0Iu R1BPMSIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERlZmF1 bHQsIDB4MDAwMCwgMHgwMDAwLCBJb1Jlc3RyaWN0aW9uT3V0cHV0T25seSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJcXF9TQi5HUE8xIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg eyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBGCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEkyY1Nl cmlhbEJ1cyAoMHgwMDUzLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYxQTgwLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuSTJDNCIsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFNCVUYpIC8qIFxfU0JfLkkyQzQuU1RSQS5fQ1JTLlNCVUYgKi8K ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNl cmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjM3N2JhNzZhLWYz OTAtNGFmZi1hYjM4LTliMWJmMzNhMzAxNSIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoIklOVENGMUMiKQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoIjgyMmFjZThmLTI4 MTQtNDE3NC1hNTZiLTVmMDI5ZmUwNzllZSIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoIkxNMzU1NCIpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiMjk1OTUxMmEtMDI4 Yy00NjQ2LWI3M2QtNGQxYjU2NzJmYWQ4IikpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChCRElEID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEZCSUQgPT0gMHgwMikpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuICgiSU5URUxfRkZSRCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChGQklEID09IDB4MDMpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoIklOVEVMX0ZGUkQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKCJJTlRFTF9S VlAiKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcw ID09IFRvVVVJRCAoIjc1YzlhNjM5LTVjOGEtNGEwMC05ZjQ4LWE5YzNiNWRhNzg5ZiIpKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBU b1VVSUQgKCIyNjI1NzU0OS05MjcxLTRjYTQtYmI0My1jNDg5OWQ1YTQ4ODEiKSkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA0MDA1MzAwKQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzAgPT0gVG9VVUlEICgiNzkyMzQ2NDAtOWUxMC00ZmVhLWE1YzEtYjVhYThiMTk3NTZmIikp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcy ID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcyID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEwMDEzMDIpCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9 PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDAxMDAxNDAzKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMTAwMTAwMSkK ICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcyID09IDB4MDUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MDEwMDExMDQpCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykK ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNl IChJMkM1KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6 IEFkZHJlc3MKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIjgwODYwRjQxIiAvKiBJbnRlbCBCYXl0 cmFpbCBJMkMgSG9zdCBDb250cm9sbGVyICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAg ICAgICAgTmFtZSAoX0NJRCwgIjgwODYwRjQxIiAvKiBJbnRlbCBCYXl0cmFpbCBJMkMgSG9zdCBD b250cm9sbGVyICovKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICBOYW1lIChf REROLCAiSW50ZWwoUikgSTJDIENvbnRyb2xsZXIgIzUgLSA4MDg2MEY0NSIpICAvLyBfREROOiBE T1MgRGV2aWNlIE5hbWUKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwNSkgIC8vIF9VSUQ6IFVu aXF1ZSBJRAogICAgICAgICAgICBOYW1lIChfREVQLCBQYWNrYWdlICgweDAxKSAgLy8gX0RFUDog RGVwZW5kZW5jaWVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFBFUEQKICAgICAgICAg ICAgfSkKICAgICAgICAgICAgTmFtZSAoUkJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAg ICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAg ICAgICAgICAgICAweDAwMDAxMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAg ICAgICAgICAgICAgX1kxNikKICAgICAgICAgICAgICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25z dW1lciwgTGV2ZWwsIEFjdGl2ZUxvdywgRXhjbHVzaXZlLCAsLCApCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyNCwKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIEZpeGVkRE1BICgweDAwMTgsIDB4MDAwMCwgV2lkdGgzMmJpdCwgKQogICAgICAg ICAgICAgICAgRml4ZWRETUEgKDB4MDAxOSwgMHgwMDAxLCBXaWR0aDMyYml0LCApCiAgICAgICAg ICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoX0hSViwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9I UlY6IEhhcmR3YXJlIFJldmlzaW9uCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVy biAoU09DUykgLyogXFNPQ1MgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChf Q1JTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5n cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSQlVGLCBc X1NCLkkyQzUuX1kxNi5fQkFTLCBCMEJBKSAgLy8gX0JBUzogQmFzZSBBZGRyZXNzCiAgICAgICAg ICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSQlVGLCBcX1NCLkkyQzUuX1kxNi5fTEVOLCBCMExO KSAgLy8gX0xFTjogTGVuZ3RoCiAgICAgICAgICAgICAgICBCMEJBID0gSTUwQSAvKiBcSTUwQSAq LwogICAgICAgICAgICAgICAgQjBMTiA9IEk1MEwgLyogXEk1MEwgKi8KICAgICAgICAgICAgICAg IFJldHVybiAoUkJVRikgLyogXF9TQl8uSTJDNS5SQlVGICovCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKChJNTBBID09IFplcm8pIHx8IChMMjVE ID09IE9uZSkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAo WmVybykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUFNB VCB8PSAweDAzCiAgICAgICAgICAgICAgICBQU0FUIHw9IFplcm8KICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIg U3RhdGUgMAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQU0FUICY9IDB4RkZGRkZGRkMK ICAgICAgICAgICAgICAgIFBTQVQgfD0gWmVybwogICAgICAgICAgICB9CgogICAgICAgICAgICBP cGVyYXRpb25SZWdpb24gKEtFWVMsIFN5c3RlbU1lbW9yeSwgSTUxQSwgMHgwMTAwKQogICAgICAg ICAgICBGaWVsZCAoS0VZUywgRFdvcmRBY2MsIE5vTG9jaywgV3JpdGVBc1plcm9zKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4ODQpLCAKICAgICAgICAgICAgICAgIFBT QVQsICAgMzIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChTSFVCKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVz cwogICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIklOVjYwNTAiKSAgLy8gX0hJRDogSGFyZHdh cmUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9DSUQsICJQTlAwQzUwIiAvKiBISUQgUHJvdG9j b2wgRGV2aWNlIChJMkMgYnVzKSAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAg ICAgICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAg ICAgTWV0aG9kIChfRFNNLCA0LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNp ZmljIE1ldGhvZAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoQXJn MCA9PSBUb1VVSUQgKCIzY2RmZjZmNy00MjY3LTQ1NTUtYWQwNS1iMzBhM2Q4OTM4ZGUiKSAvKiBI SUQgSTJDIERldmljZSAqLykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzIgPT0gWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBPbmUpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo QnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gT25lKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZm ZXIgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiAuICovCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBN ZXRob2QgKF9QUzMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCheXl5HUE8wLkFWQkwgPT0gT25l KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIF5eXkdQTzAu U0hEMyA9IFplcm8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIg U3RhdGUgMAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoXl5eR1BP MC5BVkJMID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBeXl5HUE8wLlNIRDMgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4 MzIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVz b3VyY2UgU2V0dGluZ3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1l IChTQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBJMmNTZXJpYWxCdXMgKDB4MDA3MCwgQ29udHJvbGxlckluaXRpYXRl ZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2Rl N0JpdCwgIlxcX1NCLkkyQzUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVz b3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg ICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNlQ29uc3VtZXIsIExldmVsLCBBY3RpdmVI aWdoLCBFeGNsdXNpdmUsICwsICkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0NCwKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICBHcGlvSW8gKEV4Y2x1c2l2ZSwgUHVsbERlZmF1bHQsIDB4 MDAwMCwgMHgwMDAwLCBJb1Jlc3RyaWN0aW9uT3V0cHV0T25seSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJcXF9TQi5HUE8wIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8v IFBpbiBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDVGCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhj bHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRP bmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQTzAiLCAweDAwLCBSZXNv dXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwM0IKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoU0JVRikgLyogXF9TQl8uSTJD NS5TSFVCLl9DUlMuU0JVRiAqLwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAg ICAgfQoKICAgICAgICBEZXZpY2UgKEkyQzYpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChf QURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAgICBOYW1lIChfSElELCAiODA4 NjBGNDEiIC8qIEludGVsIEJheXRyYWlsIEkyQyBIb3N0IENvbnRyb2xsZXIgKi8pICAvLyBfSElE OiBIYXJkd2FyZSBJRAogICAgICAgICAgICBOYW1lIChfQ0lELCAiODA4NjBGNDEiIC8qIEludGVs IEJheXRyYWlsIEkyQyBIb3N0IENvbnRyb2xsZXIgKi8pICAvLyBfQ0lEOiBDb21wYXRpYmxlIElE CiAgICAgICAgICAgIE5hbWUgKF9ERE4sICJJbnRlbChSKSBJMkMgQ29udHJvbGxlciAjNiAtIDgw ODYwRjQ2IikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFtZQogICAgICAgICAgICBOYW1lIChfVUlE LCAweDA2KSAgLy8gX1VJRDogVW5pcXVlIElECiAgICAgICAgICAgIE5hbWUgKF9ERVAsIFBhY2th Z2UgKDB4MDEpICAvLyBfREVQOiBEZXBlbmRlbmNpZXMKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgUEVQRAogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChSQlVGLCBSZXNvdXJj ZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQg KFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFk ZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDAsICAgICAgICAgLy8gQWRk cmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICBfWTE3KQogICAgICAgICAgICAgICAgSW50 ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlTG93LCBFeGNsdXNpdmUsICws ICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDI1LAogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRml4ZWRETUEgKDB4MDAxQSwgMHgwMDAyLCBX aWR0aDMyYml0LCApCiAgICAgICAgICAgICAgICBGaXhlZERNQSAoMHgwMDFCLCAweDAwMDMsIFdp ZHRoMzJiaXQsICkKICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChfSFJWLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX0hSVjogSGFyZHdhcmUgUmV2aXNpb24KICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgUmV0dXJuIChTT0NTKSAvKiBcU09DUyAqLwogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJy ZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0 ZURXb3JkRmllbGQgKFJCVUYsIFxfU0IuSTJDNi5fWTE3Ll9CQVMsIEIwQkEpICAvLyBfQkFTOiBC YXNlIEFkZHJlc3MKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJCVUYsIFxfU0Iu STJDNi5fWTE3Ll9MRU4sIEIwTE4pICAvLyBfTEVOOiBMZW5ndGgKICAgICAgICAgICAgICAgIEIw QkEgPSBJNjBBIC8qIFxJNjBBICovCiAgICAgICAgICAgICAgICBCMExOID0gSTYwTCAvKiBcSTYw TCAqLwogICAgICAgICAgICAgICAgUmV0dXJuIChSQlVGKSAvKiBcX1NCXy5JMkM2LlJCVUYgKi8K ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoKEk2 MEEgPT0gWmVybykgfHwgKEwyNkQgPT0gT25lKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFMz LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMwogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBQU0FUIHw9IDB4MDMKICAgICAgICAgICAgICAgIFBTQVQgfD0gWmVy bwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IFBTQVQgJj0gMHhGRkZGRkZGQwogICAgICAgICAgICAgICAgUFNBVCB8PSBaZXJvCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoS0VZUywgU3lzdGVtTWVtb3J5LCBJ NjFBLCAweDAxMDApCiAgICAgICAgICAgIEZpZWxkIChLRVlTLCBEV29yZEFjYywgTm9Mb2NrLCBX cml0ZUFzWmVyb3MpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4NCks IAogICAgICAgICAgICAgICAgUFNBVCwgICAzMgogICAgICAgICAgICB9CgogICAgICAgICAgICBQ b3dlclJlc291cmNlIChUQ1BSLCAweDAwLCAweDAwMDApCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIE5hbWUgKF9ERVAsIFBhY2thZ2UgKDB4MDIpICAvLyBfREVQOiBEZXBlbmRlbmNpZXMK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJMkM3LCAKICAgICAgICAgICAg ICAgICAgICBeXkkyQzcuUE1JQwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE1l dGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmICgoXl5eSTJDNy5QTUlDLkFWQkwgPT0gT25l KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo Xl5eSTJDNy5QTUlDLlRDT04pIC8qIFxfU0JfLkkyQzcuUE1JQy5UQ09OICovCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfT04sIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfT05fOiBQb3dlciBPbgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm ICgoXl5eR1BPMC5BVkJMID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBeXl5HUE8wLlRDRDMgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwNSkKICAgICAgICAgICAgICAgICAgICBJZiAo KF5eXkkyQzcuUE1JQy5BVkJHID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBeXl5JMkM3LlBNSUMuVENPTiA9IE9uZQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MEEpCiAgICAgICAgICAgICAgICAg ICAgSWYgKCheXl5HUE8wLkFWQkwgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIF5eXkdQTzAuVENEMyA9IE9uZQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4NTApCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgTWV0aG9kIChfT0ZGLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX09GRjog UG93ZXIgT2ZmCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCheXl5J MkM3LlBNSUMuQVZCRyA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgXl5eSTJDNy5QTUlDLlRDT04gPSBaZXJvCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFRD UzApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBf QURSOiBBZGRyZXNzCiAgICAgICAgICAgICAgICBOYW1lIChfSElELCAiQVRNTDEwMDAiIC8qIEF0 bWVsIFRvdWNoc2NyZWVuIENvbnRyb2xsZXIgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAg ICAgICAgICAgICAgTmFtZSAoX0NJRCwgIlBOUDBDNTAiIC8qIEhJRCBQcm90b2NvbCBEZXZpY2Ug KEkyQyBidXMpICovKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAgICAgICAgICAgICAgTmFt ZSAoX1MwVywgWmVybykgIC8vIF9TMFc6IFMwIERldmljZSBXYWtlIFN0YXRlCiAgICAgICAgICAg ICAgICBOYW1lIChfREVQLCBQYWNrYWdlICgweDA0KSAgLy8gX0RFUDogRGVwZW5kZW5jaWVzCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgR1BPMCwgCiAgICAgICAgICAgICAg ICAgICAgSTJDNywgCiAgICAgICAgICAgICAgICAgICAgXl5JMkM3LlBNSUMsIAogICAgICAgICAg ICAgICAgICAgIEkyQzEKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUzMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCheXl5JMkM3LlBNSUMuQVZCRyA9PSBPbmUp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgXl5eSTJDNy5Q TUlDLlRDT04gPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzA6IFBv d2VyIFN0YXRlIDAKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKF5e XkdQTzAuQVZCTCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgXl5eR1BPMC5UQ0QzID0gWmVybwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgU2xlZXAgKDB4MEEpCiAgICAgICAgICAgICAgICAgICAgSWYgKCheXl5J MkM3LlBNSUMuQVZCRyA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgXl5eSTJDNy5QTUlDLlRDT04gPSBaZXJvCiAgICAgICAgICAgICAgICAgICAg ICAgIFNsZWVwICgweDMyKQogICAgICAgICAgICAgICAgICAgICAgICBeXl5JMkM3LlBNSUMuVENP TiA9IE9uZQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU2xlZXAg KDB4MjgpCiAgICAgICAgICAgICAgICAgICAgSWYgKCheXl5HUE8wLkFWQkwgPT0gT25lKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIF5eXkdQTzAuVENEMyA9 IE9uZQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4 NzgpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBO b3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKFJCVUYsIFJlc291cmNlVGVtcGxh dGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEkyY1Nl cmlhbEJ1cyAoMHgwMDRBLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMTlGMEEwLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuSTJDNiIsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIEludGVycnVw dCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUhpZ2gsIEV4Y2x1c2l2ZSwgLCwgKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw MDAwMDQ1LAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJp Y3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkdQTzAi LCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwM0MKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKFBCVUYsIFJl c291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIEkyY1NlcmlhbEJ1cyAoMHgwMDRCLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDYx QTgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxf U0IuSTJDNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1 bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAg ICAgIEludGVycnVwdCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUhpZ2gsIEV4Y2x1 c2l2ZSwgLCwgKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwMDAwMDQ1LAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAw MDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg IlxcX1NCLkdQTzAiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0MKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIElm ICgoSVRTQSA9PSAweDRCKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoUEJVRikgLyogXF9TQl8uSTJDNi5UQ1MwLl9DUlMuUEJVRiAqLwogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJCVUYpIC8qIFxfU0JfLkky QzYuVENTMC5fQ1JTLlJCVUYgKi8KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBTZXJpYWxpemVkKSAgLy8gX0RT TTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIE5hbWUgKF9UXzEsIFplcm8pICAvLyBfVF94OiBFbWl0dGVkIGJ5IEFTTCBDb21waWxl cgogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9UXzAsIFplcm8pICAvLyBfVF94OiBFbWl0dGVk IGJ5IEFTTCBDb21waWxlcgogICAgICAgICAgICAgICAgICAgIERlYnVnID0gIk1ldGhvZCBfRFNN IGJlZ2luIgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCIzY2RmZjZm Ny00MjY3LTQ1NTUtYWQwNS1iMzBhM2Q4OTM4ZGUiKSAvKiBISUQgSTJDIERldmljZSAqLykpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoT25lKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfVF8w ID0gVG9JbnRlZ2VyIChBcmcyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChfVF8w ID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFdoaWxlIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfVF8xID0gVG9JbnRlZ2Vy IChBcmcxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKF9UXzEgPT0g T25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVidWcgPSAiTWV0aG9kIF9EU00gRnVuY3Rpb24g UXVlcnkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJ1 ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiAuICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJ ZiAoKF9UXzAgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBEZWJ1ZyA9ICJNZXRob2QgX0RTTSBGdW5jdGlvbiBISUQi CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAg ICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RB OiBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MEYpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERl dmljZSAoSTJDNykKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBf QURSOiBBZGRyZXNzCiAgICAgICAgICAgIE5hbWUgKF9ISUQsICI4MDg2MEY0MSIgLyogSW50ZWwg QmF5dHJhaWwgSTJDIEhvc3QgQ29udHJvbGxlciAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAg ICAgICAgICAgIE5hbWUgKF9DSUQsICI4MDg2MEY0MSIgLyogSW50ZWwgQmF5dHJhaWwgSTJDIEhv c3QgQ29udHJvbGxlciAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgTmFt ZSAoX0RETiwgIkludGVsKFIpIEkyQyBDb250cm9sbGVyICM3IC0gODA4NjBGNDciKSAgLy8gX0RE TjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDcpICAvLyBfVUlE OiBVbmlxdWUgSUQKICAgICAgICAgICAgTmFtZSAoX0RFUCwgUGFja2FnZSAoMHgwMSkgIC8vIF9E RVA6IERlcGVuZGVuY2llcwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQRVBECiAgICAg ICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKFJCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAg ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAg ICAgICAgICAgICAgICAgMHgwMDAwMTAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAg ICAgICAgICAgICAgICAgIF9ZMTgpCiAgICAgICAgICAgICAgICBJbnRlcnJ1cHQgKFJlc291cmNl Q29uc3VtZXIsIExldmVsLCBBY3RpdmVMb3csIEV4Y2x1c2l2ZSwgLCwgKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjYsCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICBGaXhlZERNQSAoMHgwMDFDLCAweDAwMDQsIFdpZHRoMzJiaXQsICkKICAg ICAgICAgICAgICAgIEZpeGVkRE1BICgweDAwMUQsIDB4MDAwNSwgV2lkdGgzMmJpdCwgKQogICAg ICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKF9IUlYsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfSFJWOiBIYXJkd2FyZSBSZXZpc2lvbgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS ZXR1cm4gKFNPQ1MpIC8qIFxTT0NTICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhv ZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0 dGluZ3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkJV RiwgXF9TQi5JMkM3Ll9ZMTguX0JBUywgQjBCQSkgIC8vIF9CQVM6IEJhc2UgQWRkcmVzcwogICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUkJVRiwgXF9TQi5JMkM3Ll9ZMTguX0xFTiwg QjBMTikgIC8vIF9MRU46IExlbmd0aAogICAgICAgICAgICAgICAgQjBCQSA9IEk3MEEgLyogXEk3 MEEgKi8KICAgICAgICAgICAgICAgIEIwTE4gPSBJNzBMIC8qIFxJNzBMICovCiAgICAgICAgICAg ICAgICBSZXR1cm4gKFJCVUYpIC8qIFxfU0JfLkkyQzcuUkJVRiAqLwogICAgICAgICAgICB9Cgog ICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0 dXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKCgoSTcwQSA9PSBaZXJvKSB8fCAo TDI3RCA9PSBPbmUpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuICgweDBG KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfUFMzOiBQb3dlciBTdGF0ZSAzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IFBTQVQgfD0gMHgwMwogICAgICAgICAgICAgICAgUFNBVCB8PSBaZXJvCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzA6IFBv d2VyIFN0YXRlIDAKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUFNBVCAmPSAweEZGRkZG RkZDCiAgICAgICAgICAgICAgICBQU0FUIHw9IFplcm8KICAgICAgICAgICAgfQoKICAgICAgICAg ICAgT3BlcmF0aW9uUmVnaW9uIChLRVlTLCBTeXN0ZW1NZW1vcnksIEk3MUEsIDB4MDEwMCkKICAg ICAgICAgICAgRmllbGQgKEtFWVMsIERXb3JkQWNjLCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDg0KSwgCiAgICAgICAgICAgICAg ICBQU0FULCAgIDMyCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFNjb3BlIChJMkM3 KQogICAgICAgIHsKICAgICAgICAgICAgRGV2aWNlIChQTUlDKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAgICAgICAg ICAgICAgTmFtZSAoX0hJRCwgIklOVDMzRkQiIC8qIEludGVsIEJheXRyYWlsIFBvd2VyIE1hbmFn ZW1lbnQgSUMgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgTmFtZSAo X0NJRCwgIklOVDMzRkQiIC8qIEludGVsIEJheXRyYWlsIFBvd2VyIE1hbmFnZW1lbnQgSUMgKi8p ICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgICAgICBOYW1lIChfREROLCAiUE1J QyBHUElPIENvbnRyb2xsZXIiKSAgLy8gX0RETjogRE9TIERldmljZSBOYW1lCiAgICAgICAgICAg ICAgICBOYW1lIChfSFJWLCAweDAyKSAgLy8gX0hSVjogSGFyZHdhcmUgUmV2aXNpb24KICAgICAg ICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAg ICAgICAgTmFtZSAoX0RFUCwgUGFja2FnZSAoMHgwMSkgIC8vIF9ERVA6IERlcGVuZGVuY2llcwog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEkyQzcKICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf Q1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgTmFtZSAoU0JVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSTJjU2VyaWFsQnVzICgweDAwNkUsIENv bnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwRjQyNDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5JMkM3IiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVy LCBMZXZlbCwgQWN0aXZlSGlnaCwgU2hhcmVkLCAsLCApCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDMsCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNv bnN1bWVyLCBMZXZlbCwgQWN0aXZlSGlnaCwgU2hhcmVkLCAsLCApCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDMsCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJydXB0IChSZXNv dXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlSGlnaCwgU2hhcmVkLCAsLCApCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDMsCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoU0JVRikgLyogXF9TQl8uSTJDNy5QTUlDLl9DUlMuU0JVRiAqLwog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2Vy aWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIElmICgoUE1FTiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBPcGVyYXRpb25SZWdpb24gKERQVEYsIDB4OEMsIFplcm8sIDB4MDEwMCkKICAgICAg ICAgICAgICAgIEZpZWxkIChEUFRGLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBUTVAwLCAgIDMyLCAKICAgICAgICAgICAg ICAgICAgICBBWDAwLCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBBWDAxLCAgIDMyLCAKICAg ICAgICAgICAgICAgICAgICBUTVAxLCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBBWDEwLCAg IDMyLCAKICAgICAgICAgICAgICAgICAgICBBWDExLCAgIDMyLCAKICAgICAgICAgICAgICAgICAg ICBUTVAyLCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBBWDIwLCAgIDMyLCAKICAgICAgICAg ICAgICAgICAgICBBWDIxLCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBUTVAzLCAgIDMyLCAK ICAgICAgICAgICAgICAgICAgICBBWDMwLCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBBWDMx LCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBUTVA0LCAgIDMyLCAKICAgICAgICAgICAgICAg ICAgICBBWDQwLCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBBWDQxLCAgIDMyLCAKICAgICAg ICAgICAgICAgICAgICBUTVA1LCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBBWDUwLCAgIDMy LCAKICAgICAgICAgICAgICAgICAgICBBWDUxLCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBQ RU4wLCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBQRU4xLCAgIDMyLCAKICAgICAgICAgICAg ICAgICAgICBQRU4yLCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBQRU4zLCAgIDMyLCAKICAg ICAgICAgICAgICAgICAgICBQRU40LCAgIDMyLCAKICAgICAgICAgICAgICAgICAgICBQRU41LCAg IDMyCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQ TU9QLCAweDhELCBaZXJvLCAweDAxMDApCiAgICAgICAgICAgICAgICBGaWVsZCAoUE1PUCwgRFdv cmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgVlNZUywgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgU1lTWCwgICAzMiwgCiAgICAg ICAgICAgICAgICAgICAgU1lTVSwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgU1lTUywgICAz MiwgCiAgICAgICAgICAgICAgICAgICAgVjUwUywgICAzMiwgCiAgICAgICAgICAgICAgICAgICAg SE9TVCwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgVkJVUywgICAzMiwgCiAgICAgICAgICAg ICAgICAgICAgSERNSSwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgUzI4NSwgICAzMiwgCiAg ICAgICAgICAgICAgICAgICAgWDI4NSwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgVjMzQSwg ICAzMiwgCiAgICAgICAgICAgICAgICAgICAgVjMzUywgICAzMiwgCiAgICAgICAgICAgICAgICAg ICAgVjMzVSwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgVjMzSSwgICAzMiwgCiAgICAgICAg ICAgICAgICAgICAgVjE4QSwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgUkVGUSwgICAzMiwg CiAgICAgICAgICAgICAgICAgICAgVjEyQSwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgVjE4 UywgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgVjE4WCwgICAzMiwgCiAgICAgICAgICAgICAg ICAgICAgVjE4VSwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgVjEyWCwgICAzMiwgCiAgICAg ICAgICAgICAgICAgICAgVjEyUywgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgVjEwQSwgICAz MiwgCiAgICAgICAgICAgICAgICAgICAgVjEwUywgICAzMiwgCiAgICAgICAgICAgICAgICAgICAg VjEwWCwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgVjEwNSwgICAzMgogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoR1BPUCwgR2VuZXJhbFB1cnBv c2VJbywgWmVybywgMHgwMTAwKQogICAgICAgICAgICAgICAgRmllbGQgKEdQT1AsIEJ5dGVBY2Ms IE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg Q29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQ dWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNl Q29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAyMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICksIAogICAgICAgICAgICAgICAgICAgIEdNUDAsICAgMSwgCiAgICAgICAgICAgICAgICAg ICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZl LCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291 cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAyMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEdYMDAsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVz aXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJl c291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAyMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEdYMDEsICAgMSwgCiAgICAgICAgICAg ICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhj bHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRP bmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAs IFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAyMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEdNUDEsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAo RXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRw dXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4 MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAyNAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEdYMTAsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9J byAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25P dXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIs IDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAyNQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEdYMTEsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdw aW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rp b25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1J QyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNgogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEdNUDIsICAgMSwg CiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAg IEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJp Y3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcu UE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyNwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEdYMjAsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAg ICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVz dHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkky QzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyOAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEdYMjEs ICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAg ICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElv UmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NC LkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyOQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEdN UDMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAg ICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAs IElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxc X1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlz dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyQQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAg IEdYMzAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAg ICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAw MDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg IlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4g bGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyQgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAg ICAgIEdYMzEsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAg ICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAw eDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQ aW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyQwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAg ICAgICAgIEdNUDQsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAg ICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAw LCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAv LyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyRAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAg ICAgICAgICAgIEdYNDAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAg ICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgw MDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg ICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyRQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAg ICAgICAgICAgICAgIEdYNDEsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAo CiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwg MHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyRgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAg ICAgICAgICAgICAgICAgIEdNUDUsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlv biAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVs dCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIs ICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAz MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAog ICAgICAgICAgICAgICAgICAgIEdYNTAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVj dGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVm YXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3Vt ZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAzMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICks IAogICAgICAgICAgICAgICAgICAgIEdYNTEsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29u bmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxs RGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29u c3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAzMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICksIAogICAgICAgICAgICAgICAgICAgIEdFTjAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg Q29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQ dWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNl Q29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAzMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICksIAogICAgICAgICAgICAgICAgICAgIEdFTjEsICAgMSwgCiAgICAgICAgICAgICAgICAg ICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZl LCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291 cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAzNAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEdFTjIsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVz aXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJl c291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAzNQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEdFTjMsICAgMSwgCiAgICAgICAgICAg ICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhj bHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRP bmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAs IFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAzNgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEdFTjQsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAo RXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRw dXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4 MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAzNwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEdFTjUsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9J byAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25P dXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIs IDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDA0MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEdTWVMsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdw aW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rp b25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1J QyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEdZU1gsICAgMSwg CiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAg IEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJp Y3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcu UE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEdZU1UsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAg ICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVz dHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkky QzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEdZU1Ms ICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAg ICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElv UmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NC LkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0NAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEc1 MFMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAg ICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAs IElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxc X1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlz dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0NQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAg IEdPU1QsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAg ICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAw MDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg IlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4g bGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0NgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAg ICAgIEdCVVMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAg ICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAw eDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQ aW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0NwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAg ICAgICAgIEdETUksICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAg ICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAw LCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAv LyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0OAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAg ICAgICAgICAgIEcyOFMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAg ICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgw MDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg ICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0OQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAg ICAgICAgICAgICAgIEcyOFgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAo CiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwg MHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0QQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAg ICAgICAgICAgICAgICAgIEczM0EsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlv biAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVs dCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIs ICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0 QgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAog ICAgICAgICAgICAgICAgICAgIEczM1MsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVj dGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVm YXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3Vt ZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDA0QwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICks IAogICAgICAgICAgICAgICAgICAgIEczM1UsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29u bmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxs RGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29u c3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDA0RAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICksIAogICAgICAgICAgICAgICAgICAgIEczM0ksICAgMSwgCiAgICAgICAgICAgICAgICAgICAg Q29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQ dWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNl Q29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDA0RQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICksIAogICAgICAgICAgICAgICAgICAgIEcxOEEsICAgMSwgCiAgICAgICAgICAgICAgICAg ICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZl LCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291 cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDA0RgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEdFRlEsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVz aXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJl c291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDA1MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEcxMkEsICAgMSwgCiAgICAgICAgICAg ICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhj bHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRP bmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAs IFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDA1MQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEcxOFMsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9JbyAo RXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRw dXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4 MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDA1MgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEcxOFgsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdwaW9J byAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rpb25P dXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIs IDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDA1MwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEcxOFUsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAgIEdw aW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJpY3Rp b25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1J QyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NAogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEcxMlgsICAgMSwg CiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAgICAg IEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVzdHJp Y3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcu UE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEcxMlMsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAgICAg ICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElvUmVz dHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkky QzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEcxMEEs ICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAgICAg ICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAsIElv UmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NC LkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1NwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAgIEcx MFMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAgICAg ICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAwMDAs IElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxc X1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlz dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1OAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAgICAg IEcxMFgsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAgICAg ICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAweDAw MDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg IlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4g bGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1OQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAgICAg ICAgIEcxMDUsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAgICAg ICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLCAw eDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQ aW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA1RQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAgICAg ICAgICAgIEZDT1QsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbiAoCiAgICAg ICAgICAgICAgICAgICAgICAgIEdwaW9JbyAoRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAw LCAweDAwMDAsIElvUmVzdHJpY3Rpb25PdXRwdXRPbmx5LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAv LyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICksIAogICAgICAgICAg ICAgICAgICAgIFRDT04sICAgMQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5h bWUgKEFWQkwsIFplcm8pCiAgICAgICAgICAgICAgICBOYW1lIChBVkJELCBaZXJvKQogICAgICAg ICAgICAgICAgTmFtZSAoQVZCRywgWmVybykKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1JFRywg MiwgTm90U2VyaWFsaXplZCkgIC8vIF9SRUc6IFJlZ2lvbiBBdmFpbGFiaWxpdHkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gMHgwOCkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBBVkJHID0gQXJnMQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4OEQpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQVZCTCA9IEFyZzEK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSAw eDhDKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFWQkQg PSBBcmcxCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE5hbWUgKExQQVQsIFBhY2thZ2UgKDB4MzApCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgMHgwOUUzLCAKICAgICAgICAgICAgICAgICAgICAweDAzRDEsIAogICAg ICAgICAgICAgICAgICAgIDB4MEExNSwgCiAgICAgICAgICAgICAgICAgICAgMHgwM0MxLCAKICAg ICAgICAgICAgICAgICAgICAweDBBNDcsIAogICAgICAgICAgICAgICAgICAgIDB4MDNBRCwgCiAg ICAgICAgICAgICAgICAgICAgMHgwQTc5LCAKICAgICAgICAgICAgICAgICAgICAweDAzOTUsIAog ICAgICAgICAgICAgICAgICAgIDB4MEFBQiwgCiAgICAgICAgICAgICAgICAgICAgMHgwMzc3LCAK ICAgICAgICAgICAgICAgICAgICAweDBBREQsIAogICAgICAgICAgICAgICAgICAgIDB4MDM1NSwg CiAgICAgICAgICAgICAgICAgICAgMHgwQjBGLCAKICAgICAgICAgICAgICAgICAgICAweDAzMkQs IAogICAgICAgICAgICAgICAgICAgIDB4MEI0MSwgCiAgICAgICAgICAgICAgICAgICAgMHgwMzAx LCAKICAgICAgICAgICAgICAgICAgICAweDBCNzMsIAogICAgICAgICAgICAgICAgICAgIDB4MDJE MCwgCiAgICAgICAgICAgICAgICAgICAgMHgwQkE1LCAKICAgICAgICAgICAgICAgICAgICAweDAy OUQsIAogICAgICAgICAgICAgICAgICAgIDB4MEJENywgCiAgICAgICAgICAgICAgICAgICAgMHgw MjY3LCAKICAgICAgICAgICAgICAgICAgICAweDBDMDksIAogICAgICAgICAgICAgICAgICAgIDB4 MDIzMSwgCiAgICAgICAgICAgICAgICAgICAgMHgwQzNCLCAKICAgICAgICAgICAgICAgICAgICAw eDAxRkMsIAogICAgICAgICAgICAgICAgICAgIDB4MEM2RCwgCiAgICAgICAgICAgICAgICAgICAg MHgwMUM4LCAKICAgICAgICAgICAgICAgICAgICAweDBDOUYsIAogICAgICAgICAgICAgICAgICAg IDB4MDE5NywgCiAgICAgICAgICAgICAgICAgICAgMHgwQ0QxLCAKICAgICAgICAgICAgICAgICAg ICAweDAxNjUsIAogICAgICAgICAgICAgICAgICAgIDB4MEQwMywgCiAgICAgICAgICAgICAgICAg ICAgMHgwMTNCLCAKICAgICAgICAgICAgICAgICAgICAweDBEMzUsIAogICAgICAgICAgICAgICAg ICAgIDB4MDExNSwgCiAgICAgICAgICAgICAgICAgICAgMHgwRDY3LCAKICAgICAgICAgICAgICAg ICAgICAweEYzLCAKICAgICAgICAgICAgICAgICAgICAweDBEOTksIAogICAgICAgICAgICAgICAg ICAgIDB4RDQsIAogICAgICAgICAgICAgICAgICAgIDB4MERDQiwgCiAgICAgICAgICAgICAgICAg ICAgMHhCQSwgCiAgICAgICAgICAgICAgICAgICAgMHgwREZELCAKICAgICAgICAgICAgICAgICAg ICAweEEyLCAKICAgICAgICAgICAgICAgICAgICAweDBFMkYsIAogICAgICAgICAgICAgICAgICAg IDB4OEMsIAogICAgICAgICAgICAgICAgICAgIDB4MEU5MywgCiAgICAgICAgICAgICAgICAgICAg MHg2QgogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAg U2NvcGUgKEkyQzEpCiAgICAgICAgewogICAgICAgICAgICBEZXZpY2UgKElNUDEpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNz CiAgICAgICAgICAgICAgICBOYW1lIChfSElELCAiSU1QSjAwMDEiKSAgLy8gX0hJRDogSGFyZHdh cmUgSUQKICAgICAgICAgICAgICAgIE5hbWUgKF9DSUQsICJJTVBKMDAwMSIpICAvLyBfQ0lEOiBD b21wYXRpYmxlIElECiAgICAgICAgICAgICAgICBOYW1lIChfVUlELCBPbmUpICAvLyBfVUlEOiBV bmlxdWUgSUQKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm ICgoUFNTRCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2Ug U2V0dGluZ3MKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChTQlVG LCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBJMmNTZXJpYWxCdXMgKDB4MDA2RSwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgw MDAxODZBMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3NpbmdNb2RlN0JpdCwg IlxcX1NCLkkyQzEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgUmVzb3VyY2VD b25zdW1lciwgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChTQlVGKSAvKiBcX1NCXy5JMkMxLklN UDEuX0NSUy5TQlVGICovCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIERldmljZSAoSU1QMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FE UiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJJ TVBKMDAwMiIpICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX0NJ RCwgIklNUEowMDAyIikgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQKICAgICAgICAgICAgICAgIE5h bWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICAgICAgTWV0aG9k IChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKChQU1NEID09IE9uZSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAg Ly8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncwogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIE5hbWUgKFNCVUYsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEkyY1NlcmlhbEJ1cyAoMHgwMDZG LCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDE4NkEwLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuSTJDMSIsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFNCVUYpIC8qIFxfU0JfLkkyQzEuSU1QMi5fQ1JTLlNCVUYgKi8KICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChJTVAzKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcwogICAg ICAgICAgICAgICAgTmFtZSAoX0hJRCwgIklNUEowMDAzIikgIC8vIF9ISUQ6IEhhcmR3YXJlIElE CiAgICAgICAgICAgICAgICBOYW1lIChfQ0lELCAiSU1QSjAwMDMiKSAgLy8gX0NJRDogQ29tcGF0 aWJsZSBJRAogICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5pcXVl IElECiAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBf U1RBOiBTdGF0dXMKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKFBT U0QgPT0gMHgwMikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9k IChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0 aW5ncwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKFNCVUYsIFJl c291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIEkyY1NlcmlhbEJ1cyAoMHgwMDZFLCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDE4 NkEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxf U0IuSTJDMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1 bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAg fSkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFNCVUYpIC8qIFxfU0JfLkkyQzEuSU1QMy5f Q1JTLlNCVUYgKi8KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAg ICAgICAgUG93ZXJSZXNvdXJjZSAoUDI4WCwgMHgwNSwgMHgwMDAwKQogICAgICAgIHsKICAgICAg ICAgICAgTmFtZSAoX0RFUCwgUGFja2FnZSAoMHgwMikgIC8vIF9ERVA6IERlcGVuZGVuY2llcwog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJMkM3LCAKICAgICAgICAgICAgICAgIF5JMkM3 LlBNSUMKICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElm ICgoXl5JMkM3LlBNSUMuQVZCRyA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIF5eSTJDNy5QTUlDLkcyOFggPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgSWYg KCheXkkyQzcuUE1JQy5BVkJMID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKF5eSTJDNy5QTUlDLlgyODUpIC8qIFxfU0JfLkkyQzcu UE1JQy5YMjg1ICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0 aG9kIChfT04sIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfT05fOiBQb3dlciBPbgogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBJZiAoKF5eSTJDNy5QTUlDLkFWQkwgPT0gT25lKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBeXkkyQzcuUE1JQy5YMjg1ID0gT25lCiAg ICAgICAgICAgICAgICAgICAgSWYgKCheXkkyQzcuUE1JQy5BVkJHID09IE9uZSkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBeXkkyQzcuUE1JQy5HMjhYID0g T25lCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDFFKQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9k IChfT0ZGLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX09GRjogUG93ZXIgT2ZmCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIElmICgoXl5JMkM3LlBNSUMuQVZCTCA9PSBPbmUpKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIF5eSTJDNy5QTUlDLlgyODUgPSBaZXJvCiAg ICAgICAgICAgICAgICAgICAgSWYgKCheXkkyQzcuUE1JQy5BVkJHID09IE9uZSkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBeXkkyQzcuUE1JQy5HMjhYID0g T25lCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDFFKQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAg UG93ZXJSZXNvdXJjZSAoUDE4WCwgMHgwNSwgMHgwMDAwKQogICAgICAgIHsKICAgICAgICAgICAg TmFtZSAoX0RFUCwgUGFja2FnZSAoMHgwMikgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBJMkM3LCAKICAgICAgICAgICAgICAgIF5JMkM3LlBNSUMK ICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX1NUQTogU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoXl5J MkM3LlBNSUMuQVZCRyA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIF5eSTJDNy5QTUlDLkcxOFggPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgSWYgKCheXkky QzcuUE1JQy5BVkJMID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKF5eSTJDNy5QTUlDLlYxOFgpIC8qIFxfU0JfLkkyQzcuUE1JQy5W MThYICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChf T04sIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfT05fOiBQb3dlciBPbgogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBJZiAoKF5eSTJDNy5QTUlDLkFWQkwgPT0gT25lKSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBeXkkyQzcuUE1JQy5WMThYID0gT25lCiAgICAgICAg ICAgICAgICAgICAgSWYgKCheXkkyQzcuUE1JQy5BVkJHID09IE9uZSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBeXkkyQzcuUE1JQy5HMThYID0gT25lCiAg ICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDFFKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfT0ZG LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX09GRjogUG93ZXIgT2ZmCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIElmICgoXl5JMkM3LlBNSUMuQVZCTCA9PSBPbmUpKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIF5eSTJDNy5QTUlDLlYxOFggPSBaZXJvCiAgICAgICAg ICAgICAgICAgICAgSWYgKCheXkkyQzcuUE1JQy5BVkJHID09IE9uZSkpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBeXkkyQzcuUE1JQy5HMThYID0gT25lCiAg ICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDFFKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNl IChUQkFEKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgIklOVENGRDkiIC8qIElu dGVsIEJheXRyYWlsIFNPQyBHUElPIENvbnRyb2xsZXIgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJ RAogICAgICAgICAgICBOYW1lIChfQ0lELCAiUE5QMEM0MCIgLyogU3RhbmRhcmQgQnV0dG9uIENv bnRyb2xsZXIgKi8pICAvLyBfQ0lEOiBDb21wYXRpYmxlIElECiAgICAgICAgICAgIE5hbWUgKF9E RE4sICJLZXlib2FyZCBsZXNzIHN5c3RlbSAtIDUgQnV0dG9uIEFycmF5IERldmljZSIpICAvLyBf REROOiBET1MgRGV2aWNlIE5hbWUKICAgICAgICAgICAgTmFtZSAoX0RFUCwgUGFja2FnZSAoMHgw NCkgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBH UE8wLCAKICAgICAgICAgICAgICAgIEdQTzIsIAogICAgICAgICAgICAgICAgSTJDNywgCiAgICAg ICAgICAgICAgICBeSTJDNy5QTUlDCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAo X0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGlu Z3MKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoUkJVRiwgUmVzb3VyY2VUZW1w bGF0ZSAoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEdwaW9JbnQgKEVk Z2UsIEFjdGl2ZUJvdGgsIEV4Y2x1c2l2ZUFuZFdha2UsIFB1bGxEZWZhdWx0LCAweDAwMDAsCiAg ICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5HUE8yIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1l ciwgLAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHsg ICAvLyBQaW4gbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBHcGlvSW50IChFZGdlLCBBY3Rp dmVCb3RoLCBFeGNsdXNpdmVBbmRXYWtlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLAogICAgICAgICAg ICAgICAgICAgICAgICAiXFxfU0IuR1BPMCIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAg ICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGlu IGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNgogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgR3Bpb0ludCAoRWRnZSwgQWN0aXZlQm90aCwg RXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLAogICAgICAgICAgICAgICAgICAgICAgICAi XFxfU0IuSTJDNy5QTUlDIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAg ICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICBHcGlvSW50IChFZGdlLCBBY3RpdmVCb3RoLCBFeGNsdXNpdmUs IFB1bGxEZWZhdWx0LCAweDAwMDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJcXF9TQi5JMkM3 LlBNSUMiLCAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgICAgICAgICAgeyAgIC8vIFBpbiBsaXN0CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwMDEKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgIEdwaW9JbnQgKEVkZ2UsIEFjdGl2ZUJvdGgsIEV4Y2x1c2l2ZSwgUHVsbERlZmF1 bHQsIDB4MDAwMCwKICAgICAgICAgICAgICAgICAgICAgICAgIlxcX1NCLkkyQzcuUE1JQyIsIDB4 MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAg ICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAwNwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgTmFtZSAoUEJVRiwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIEdwaW9JbnQgKEVkZ2UsIEFjdGl2ZUJvdGgsIEV4 Y2x1c2l2ZUFuZFdha2UsIFB1bGxEZWZhdWx0LCAweDAwMDAsCiAgICAgICAgICAgICAgICAgICAg ICAgICJcXF9TQi5HUE8yIiwgMHgwMCwgUmVzb3VyY2VDb25zdW1lciwgLAogICAgICAgICAgICAg ICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIHsgICAvLyBQaW4gbGlzdAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICBHcGlvSW50IChFZGdlLCBBY3RpdmVCb3RoLCBFeGNsdXNpdmVB bmRXYWtlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLAogICAgICAgICAgICAgICAgICAgICAgICAiXFxf U0IuR1BPMCIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAg ICAgKQogICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAwNgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgR3Bpb0ludCAoRWRnZSwgQWN0aXZlQm90aCwgRXhjbHVzaXZlLCBQdWxsRGVm YXVsdCwgMHgwMDAwLAogICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BPMCIsIDB4MDAs IFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg ICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAwNQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgR3Bp b0ludCAoRWRnZSwgQWN0aXZlQm90aCwgRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLAog ICAgICAgICAgICAgICAgICAgICAgICAiXFxfU0IuR1BPMCIsIDB4MDAsIFJlc291cmNlQ29uc3Vt ZXIsICwKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB7 ICAgLy8gUGluIGxpc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNAogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgR3Bpb0ludCAoRWRnZSwgQWN0 aXZlQm90aCwgRXhjbHVzaXZlLCBQdWxsRGVmYXVsdCwgMHgwMDAwLAogICAgICAgICAgICAgICAg ICAgICAgICAiXFxfU0IuR1BPMCIsIDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAg ICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB7ICAgLy8gUGluIGxpc3QK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMgogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgUmV0dXJuIChQQlVGKSAvKiBc X1NCXy5UQkFELl9DUlMuUEJVRiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2Qg KF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICB9CgogICAgICAgICAgICBN ZXRob2QgKF9EU00sIDQsIFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0 aG9kCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9UXzAsIFplcm8pICAvLyBf VF94OiBFbWl0dGVkIGJ5IEFTTCBDb21waWxlcgogICAgICAgICAgICAgICAgSWYgKChPU1lTID09 IDB4MDdERCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgXl5JMkM3LlBN SUMuRkNPVCA9IE9uZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIF5eSTJDNy5QTUlDLkZDT1QgPSBaZXJv CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAo ImRmYmNmM2M1LWU3YTUtNDRlNi05YzFmLTI5Yzc2ZjZlMDU5YyIpIC8qIFBvd2VyIEJ1dHRvbiBE ZXZpY2UgKi8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFdoaWxlIChP bmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBfVF8wID0g VG9JbnRlZ2VyIChBcmcyKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKF9UXzAgPT0gWmVy bykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJ ZiAoKF9UXzAgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDA3KQogICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoT25lKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KICAg ICAgICB9CgogICAgICAgIERldmljZSAoTUJJRCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUg KF9ISUQsICJJTlQzM0JEIiAvKiBJbnRlbCBCYXl0cmFpbCBNYWlsYm94IERldmljZSAqLykgIC8v IF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9DSUQsICJJTlQzM0JEIiAvKiBJ bnRlbCBCYXl0cmFpbCBNYWlsYm94IERldmljZSAqLykgIC8vIF9DSUQ6IENvbXBhdGlibGUgSUQK ICAgICAgICAgICAgTmFtZSAoX0hSViwgMHgwMikgIC8vIF9IUlY6IEhhcmR3YXJlIFJldmlzaW9u CiAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAg ICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291 cmNlIFNldHRpbmdzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKFJCVUYsIFJl c291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBN ZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RTAwMDAw RDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw MDAwMEMsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIFJldHVybiAoUkJVRikgLyogXF9T Ql8uTUJJRC5fQ1JTLlJCVUYgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgT3BlcmF0aW9u UmVnaW9uIChSRUdTLCAweDg3LCBaZXJvLCAweDMwKQogICAgICAgICAgICBGaWVsZCAoUkVHUywg RFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IFBPUlQsICAgMzIsIAogICAgICAgICAgICAgICAgUkVHLCAgICAzMiwgCiAgICAgICAgICAgICAg ICBEQVRBLCAgIDMyLCAKICAgICAgICAgICAgICAgIE1BU0ssICAgMzIsIAogICAgICAgICAgICAg ICAgQkUsICAgICAzMiwgCiAgICAgICAgICAgICAgICBPUCwgICAgIDMyCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE5hbWUgKEFWQkwsIFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX1JFRywg MiwgTm90U2VyaWFsaXplZCkgIC8vIF9SRUc6IFJlZ2lvbiBBdmFpbGFiaWxpdHkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcwID09IDB4ODcpKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIEFWQkwgPSBBcmcxCiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoUkVBRCwgMywgU2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gMHhGRkZGRkZGRgogICAgICAgICAgICAg ICAgSWYgKChBVkJMID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgT1AgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgUE9SVCA9IEFyZzAKICAgICAgICAgICAg ICAgICAgICBSRUcgPSBBcmcxCiAgICAgICAgICAgICAgICAgICAgQkUgPSBBcmcyCiAgICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gREFUQSAvKiBcX1NCXy5NQklELkRBVEEgKi8KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTWV0aG9kIChXUklULCA0LCBTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBJZiAoKEFWQkwgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBPUCA9IE9uZQogICAgICAgICAgICAgICAgICAgIFBPUlQgPSBBcmcwCiAg ICAgICAgICAgICAgICAgICAgUkVHID0gQXJnMQogICAgICAgICAgICAgICAgICAgIEJFID0gQXJn MgogICAgICAgICAgICAgICAgICAgIERBVEEgPSBBcmczCiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoTU9ESSwgNSwgU2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgSWYgKChBVkJMID09IE9uZSkpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgT1AgPSAweDAyCiAgICAgICAgICAgICAgICAgICAgUE9S VCA9IEFyZzAKICAgICAgICAgICAgICAgICAgICBSRUcgPSBBcmcxCiAgICAgICAgICAgICAgICAg ICAgQkUgPSBBcmcyCiAgICAgICAgICAgICAgICAgICAgREFUQSA9IEFyZzMKICAgICAgICAgICAg ICAgICAgICBNQVNLID0gQXJnNAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAg ICAgfQoKICAgICAgICBEZXZpY2UgKFBBR0QpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChf SElELCAiQUNQSTAwMEMiIC8qIFByb2Nlc3NvciBBZ2dyZWdhdG9yIERldmljZSAqLykgIC8vIF9I SUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9DSUQsICJBQ1BJMDAwQyIgLyogUHJv Y2Vzc29yIEFnZ3JlZ2F0b3IgRGV2aWNlICovKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRAogICAg ICAgICAgICBOYW1lIChJRENOLCBaZXJvKQogICAgICAgICAgICBOYW1lIChQVVJQLCBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAg ICAgWmVybwogICAgICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKF9QVVIsIDAsIFNlcmlh bGl6ZWQpICAvLyBfUFVSOiBQcm9jZXNzb3IgVXRpbGl6YXRpb24gUmVxdWVzdAogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBQVVJQIFtPbmVdID0gSURDTiAvKiBcX1NCXy5QQUdELklEQ04g Ki8KICAgICAgICAgICAgICAgIFJldHVybiAoUFVSUCkgLyogXF9TQl8uUEFHRC5QVVJQICovCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX09TVCwgMywgU2VyaWFsaXplZCkgIC8v IF9PU1Q6IE9TUE0gU3RhdHVzIEluZGljYXRpb24KICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgRGVidWcgPSAiX09TVCBpcyBpbnZva2VkIgogICAgICAgICAgICB9CiAgICAgICAgfQogICAg fQoKICAgIE5hbWUgKFBJQ00sIFplcm8pCiAgICBTY29wZSAoX1RaKQogICAgewogICAgICAgIFRo ZXJtYWxab25lIChUWjAwKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0RFUCwgUGFja2Fn ZSAoMHgwMikgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBcX1NCLkkyQzcsIAogICAgICAgICAgICAgICAgXF9TQi5JMkM3LlBNSUMKICAgICAgICAg ICAgfSkKICAgICAgICAgICAgTWV0aG9kIChfVE1QLCAwLCBTZXJpYWxpemVkKSAgLy8gX1RNUDog VGVtcGVyYXR1cmUKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChcX1NCLkkyQzcu UE1JQy5BVkJHID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg XF9TQi5JMkM3LlBNSUMuR01QMiA9IFplcm8KICAgICAgICAgICAgICAgICAgICBJZiAoKFxfU0Iu STJDNy5QTUlDLkFWQkQgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoXF9TQi5JMkM3LlBNSUMuVE1QMikKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuICgweDBBQUMp CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQi5QQ0kwKQogICAg ewogICAgICAgIERldmljZSAoUERSQykKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQs IEVpc2FJZCAoIlBOUDBDMDIiKSAvKiBQTlAgTW90aGVyYm9hcmQgUmVzb3VyY2VzICovKSAgLy8g X0hJRDogSGFyZHdhcmUgSUQKICAgICAgICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDog VW5pcXVlIElECiAgICAgICAgICAgIE5hbWUgKEJVRjAsIFJlc291cmNlVGVtcGxhdGUgKCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAg ICAgICAgICAgICAgICAgIDB4RTAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAg ICAgICAgICAgICAgICAgMHgxMDAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAg ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0 ZSwKICAgICAgICAgICAgICAgICAgICAweEZFRDAxMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFz ZQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5n dGgKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChS ZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHhGRUQwMzAwMCwgICAgICAgICAvLyBBZGRy ZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwLCAgICAgICAgIC8vIEFkZHJl c3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgTWVtb3J5MzJG aXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4RkVEMDQwMDAsICAgICAgICAg Ly8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMCwgICAgICAgICAv LyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIE1l bW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweEZFRDBDMDAwLCAg ICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDAsICAg ICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg ICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHhGRUQw ODAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAweDAwMDAx MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgKQogICAg ICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAg IDB4RkVEMUMwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAg MHgwMDAwMTAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRPbmx5LAogICAgICAgICAgICAg ICAgICAgIDB4RkVFMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAg ICAgICAgMHgwMDEwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAg ICAgICAgICkKICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAg ICAgICAgICAgICAgICAweEZFRjAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAg ICAgICAgICAgICAgIDB4MDAxMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgIH0pCiAgICAgICAgfQogICAgfQoKICAgIE1ldGhv ZCAoQlJUTiwgMSwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBJZiAoKChESUQxICYgMHgwRjAw KSA9PSAweDA0MDApKQogICAgICAgIHsKICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuR0ZY MC5ERDAxLCBBcmcwKQogICAgICAgIH0KCiAgICAgICAgSWYgKCgoRElEMiAmIDB4MEYwMCkgPT0g MHgwNDAwKSkKICAgICAgICB7CiAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLkdGWDAuREQw MiwgQXJnMCkKICAgICAgICB9CgogICAgICAgIElmICgoKERJRDMgJiAweDBGMDApID09IDB4MDQw MCkpCiAgICAgICAgewogICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5HRlgwLkREMDMsIEFy ZzApCiAgICAgICAgfQoKICAgICAgICBJZiAoKChESUQ0ICYgMHgwRjAwKSA9PSAweDA0MDApKQog ICAgICAgIHsKICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuR0ZYMC5ERDA0LCBBcmcwKQog ICAgICAgIH0KCiAgICAgICAgSWYgKCgoRElENSAmIDB4MEYwMCkgPT0gMHgwNDAwKSkKICAgICAg ICB7CiAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLkdGWDAuREQwNSwgQXJnMCkKICAgICAg ICB9CgogICAgICAgIElmIChDb25kUmVmT2YgKE5ETjMpKQogICAgICAgIHsKICAgICAgICAgICAg TkROMyAoQXJnMCkKICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQi5JMkMzKQogICAgewog ICAgICAgIE5hbWUgKEFWQkwsIFplcm8pCiAgICAgICAgTWV0aG9kIChfUkVHLCAyLCBOb3RTZXJp YWxpemVkKSAgLy8gX1JFRzogUmVnaW9uIEF2YWlsYWJpbGl0eQogICAgICAgIHsKICAgICAgICAg ICAgSWYgKChBcmcwID09IDB4MDkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBBVkJM ID0gQXJnMQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBOYW1lIChTRlNBLCBSZXNv dXJjZVRlbXBsYXRlICgpCiAgICAgICAgewogICAgICAgICAgICBJMmNTZXJpYWxCdXMgKDB4MDAy NSwgQ29udHJvbGxlckluaXRpYXRlZCwgMHgwMDA2MUE4MCwKICAgICAgICAgICAgICAgIEFkZHJl c3NpbmdNb2RlN0JpdCwgIlxcX1NCLkkyQzMiLAogICAgICAgICAgICAgICAgMHgwMCwgUmVzb3Vy Y2VDb25zdW1lciwgLAogICAgICAgICAgICAgICAgKQogICAgICAgIH0pCiAgICAgICAgT3BlcmF0 aW9uUmVnaW9uIChGU0FPLCBHZW5lcmljU2VyaWFsQnVzLCBaZXJvLCAweDAxMDApCiAgICAgICAg RmllbGQgKEZTQU8sIEJ1ZmZlckFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAg ICAgICAgIENvbm5lY3Rpb24gKFNGU0EpLCAKICAgICAgICAgICAgT2Zmc2V0ICgweDAyKSwgCiAg ICAgICAgICAgIEFjY2Vzc0FzIChCdWZmZXJBY2MsIEF0dHJpYkJ5dGUpLCAKICAgICAgICAgICAg RlNJTSwgICA4CiAgICAgICAgfQoKICAgICAgICBGaWVsZCAoRlNBTywgQnVmZmVyQWNjLCBOb0xv Y2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgQ29ubmVjdGlvbiAoU0ZTQSksIAog ICAgICAgICAgICBPZmZzZXQgKDB4MDMpLCAKICAgICAgICAgICAgQWNjZXNzQXMgKEJ1ZmZlckFj YywgQXR0cmliQnl0ZSksIAogICAgICAgICAgICBGU0lOLCAgIDgKICAgICAgICB9CgogICAgICAg IEZpZWxkIChGU0FPLCBCdWZmZXJBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAg ICAgICAgICBDb25uZWN0aW9uIChTRlNBKSwgCiAgICAgICAgICAgIE9mZnNldCAoMHgwNyksIAog ICAgICAgICAgICBBY2Nlc3NBcyAoQnVmZmVyQWNjLCBBdHRyaWJCeXRlKSwgCiAgICAgICAgICAg IEZTUkMsICAgOAogICAgICAgIH0KCiAgICAgICAgRmllbGQgKEZTQU8sIEJ1ZmZlckFjYywgTm9M b2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIENvbm5lY3Rpb24gKFNGU0EpLCAK ICAgICAgICAgICAgT2Zmc2V0ICgweDBBKSwgCiAgICAgICAgICAgIEFjY2Vzc0FzIChCdWZmZXJB Y2MsIEF0dHJpYkJ5dGUpLCAKICAgICAgICAgICAgRlNEVCwgICA4CiAgICAgICAgfQoKICAgICAg ICBGaWVsZCAoRlNBTywgQnVmZmVyQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAg ICAgICAgICAgQ29ubmVjdGlvbiAoU0ZTQSksIAogICAgICAgICAgICBPZmZzZXQgKDB4MTMpLCAK ICAgICAgICAgICAgQWNjZXNzQXMgKEJ1ZmZlckFjYywgQXR0cmliQnl0ZSksIAogICAgICAgICAg ICBGU01TLCAgIDgKICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQi5JMkMxKQogICAgewog ICAgICAgIE5hbWUgKFVNUEMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICB7CiAgICAgICAg ICAgIEkyY1NlcmlhbEJ1cyAoMHgwMDc4LCBDb250cm9sbGVySW5pdGlhdGVkLCAweDAwMDE4NkEw LAogICAgICAgICAgICAgICAgQWRkcmVzc2luZ01vZGU3Qml0LCAiXFxfU0IuSTJDMSIsCiAgICAg ICAgICAgICAgICAweDAwLCBSZXNvdXJjZUNvbnN1bWVyLCAsCiAgICAgICAgICAgICAgICApCiAg ICAgICAgfSkKICAgICAgICBOYW1lIChBVkIxLCBaZXJvKQogICAgICAgIE5hbWUgKEFWQjIsIFpl cm8pCiAgICAgICAgTmFtZSAoQVZCTCwgWmVybykKICAgICAgICBNZXRob2QgKF9SRUcsIDIsIE5v dFNlcmlhbGl6ZWQpICAvLyBfUkVHOiBSZWdpb24gQXZhaWxhYmlsaXR5CiAgICAgICAgewogICAg ICAgICAgICBJZiAoKEFyZzAgPT0gMHgwOSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IEFWQkwgPSBBcmcxCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE9wZXJhdGlvblJl Z2lvbiAoRFZVTSwgR2VuZXJpY1NlcmlhbEJ1cywgWmVybywgMHgwMTAwKQogICAgICAgIEZpZWxk IChEVlVNLCBCdWZmZXJBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAg ICBDb25uZWN0aW9uIChVTVBDKSwgCiAgICAgICAgICAgIEFjY2Vzc0FzIChCdWZmZXJBY2MsIEF0 dHJpYkJ5dGVzICgweDM5KSksIAogICAgICAgICAgICBGR0MwLCAgIDgKICAgICAgICB9CgogICAg ICAgIEZpZWxkIChEVlVNLCBCdWZmZXJBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewog ICAgICAgICAgICBDb25uZWN0aW9uIChVTVBDKSwgCiAgICAgICAgICAgIE9mZnNldCAoMHgyRiks IAogICAgICAgICAgICBBY2Nlc3NBcyAoQnVmZmVyQWNjLCBBdHRyaWJCeXRlKSwgCiAgICAgICAg ICAgIEZMMkYsICAgOAogICAgICAgIH0KCiAgICAgICAgRmllbGQgKERWVU0sIEJ1ZmZlckFjYywg Tm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIENvbm5lY3Rpb24gKFVNUEMp LCAKICAgICAgICAgICAgT2Zmc2V0ICgweDMwKSwgCiAgICAgICAgICAgIEFjY2Vzc0FzIChCdWZm ZXJBY2MsIEF0dHJpYkJ5dGVzICgweDA0KSksIAogICAgICAgICAgICBGTDMwLCAgIDgKICAgICAg ICB9CgogICAgICAgIEZpZWxkIChEVlVNLCBCdWZmZXJBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAg ICAgICAgewogICAgICAgICAgICBDb25uZWN0aW9uIChVTVBDKSwgCiAgICAgICAgICAgIE9mZnNl dCAoMHg0RSksIAogICAgICAgICAgICBBY2Nlc3NBcyAoQnVmZmVyQWNjLCBBdHRyaWJCeXRlKSwg CiAgICAgICAgICAgIEZMNEUsICAgOAogICAgICAgIH0KCiAgICAgICAgRmllbGQgKERWVU0sIEJ1 ZmZlckFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICB7CiAgICAgICAgICAgIENvbm5lY3Rp b24gKFVNUEMpLCAKICAgICAgICAgICAgT2Zmc2V0ICgweDRGKSwgCiAgICAgICAgICAgIEFjY2Vz c0FzIChCdWZmZXJBY2MsIEF0dHJpYkJ5dGUpLCAKICAgICAgICAgICAgRkw0RiwgICA4CiAgICAg ICAgfQoKICAgICAgICBGaWVsZCAoRFZVTSwgQnVmZmVyQWNjLCBOb0xvY2ssIFByZXNlcnZlKQog ICAgICAgIHsKICAgICAgICAgICAgQ29ubmVjdGlvbiAoVU1QQyksIAogICAgICAgICAgICBPZmZz ZXQgKDB4NTApLCAKICAgICAgICAgICAgQWNjZXNzQXMgKEJ1ZmZlckFjYywgQXR0cmliQnl0ZSks IAogICAgICAgICAgICBGTDUwLCAgIDgsIAogICAgICAgICAgICBGTDUxLCAgIDgsIAogICAgICAg ICAgICBGTDUyLCAgIDgsIAogICAgICAgICAgICBGTDUzLCAgIDgKICAgICAgICB9CgogICAgICAg IEZpZWxkIChEVlVNLCBCdWZmZXJBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAg ICAgICAgICBDb25uZWN0aW9uIChVTVBDKSwgCiAgICAgICAgICAgIE9mZnNldCAoMHgzNCksIAog ICAgICAgICAgICBBY2Nlc3NBcyAoQnVmZmVyQWNjLCBBdHRyaWJCeXRlcyAoMHgwNSkpLCAKICAg ICAgICAgICAgVEhSTSwgICA4CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKEJBVEMpCiAgICAg ICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBBIikgLyogQ29udHJv bCBNZXRob2QgQmF0dGVyeSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5h bWUgKF9VSUQsIE9uZSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRAogICAgICAgICAgICBOYW1lIChCQ0ND LCAweDgwKQogICAgICAgICAgICBOYW1lIChCQ0NFLCBPbmUpCiAgICAgICAgICAgIE5hbWUgKEJD Q1YsIDB4MzcpCiAgICAgICAgICAgIE5hbWUgKEJDQ0wsIDB4RkZGRkZGRkYpCiAgICAgICAgICAg IE5hbWUgKEJDTFAsIDB4MTAwNCkKICAgICAgICAgICAgTmFtZSAoRFNDUCwgMHgxMDA0KQogICAg ICAgICAgICBOYW1lIChEU1ZPLCAweDBFQTYpCiAgICAgICAgICAgIE5hbWUgKEJUUEMsIFplcm8p CiAgICAgICAgICAgIE5hbWUgKFNPQ0MsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKF9ERVAsIFBh Y2thZ2UgKDB4MDEpICAvLyBfREVQOiBEZXBlbmRlbmNpZXMKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgSTJDMQogICAgICAgICAgICB9KQogICAgICAgICAgICBOYW1lIChCRkZHLCBCdWZm ZXIgKDB4NDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAweEZGICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAgICAgICB9KQog ICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJGRkcsIFplcm8sIFNUQVQpCiAgICAgICAgICAg IENyZWF0ZUJ5dGVGaWVsZCAoQkZGRywgT25lLCBMRU4pCiAgICAgICAgICAgIENyZWF0ZVdvcmRG aWVsZCAoQkZGRywgMHgwMiwgQ05UTCkKICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCRkZH LCAweDA0LCBBVFJBKQogICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJGRkcsIDB4MDYsIEFS VEUpCiAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQkZGRywgMHgwOCwgVEVNUCkKICAgICAg ICAgICAgQ3JlYXRlV29yZEZpZWxkIChCRkZHLCAweDBBLCBWT0xUKQogICAgICAgICAgICBDcmVh dGVXb3JkRmllbGQgKEJGRkcsIDB4MEMsIEZMQUcpCiAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVs ZCAoQkZGRywgMHgwRSwgTkFDVCkKICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCRkZHLCAw eDEwLCBGQUNUKQogICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJGRkcsIDB4MTIsIFJFQ1Qp CiAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQkZGRywgMHgxNCwgRkNDVCkKICAgICAgICAg ICAgQ3JlYXRlV29yZEZpZWxkIChCRkZHLCAweDE2LCBBVlJDKQogICAgICAgICAgICBDcmVhdGVX b3JkRmllbGQgKEJGRkcsIDB4MTgsIFRURVQpCiAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAo QkZGRywgMHgxQSwgVFRGTCkKICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCRkZHLCAweDFD LCBTVERDKQogICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJGRkcsIDB4MUUsIFNUVEUpCiAg ICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQkZGRywgMHgyMCwgTUFMQykKICAgICAgICAgICAg Q3JlYXRlV29yZEZpZWxkIChCRkZHLCAweDIyLCBNTFRFKQogICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKEJGRkcsIDB4MjQsIEFWRUUpCiAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQkZG RywgMHgyNiwgQVZFUCkKICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCRkZHLCAweDI4LCBU RUNQKQogICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJGRkcsIDB4MkEsIERTU1ApCiAgICAg ICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQkZGRywgMHgyQywgQ1lMQykKICAgICAgICAgICAgQ3Jl YXRlV29yZEZpZWxkIChCRkZHLCAweDJFLCBTT0NIKQogICAgICAgICAgICBDcmVhdGVCeXRlRmll bGQgKEJGRkcsIDB4MzAsIENIU1QpCiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQkZGRywg MHgzMSwgQ0hDVSkKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQkZGRywgMHgzMiwgQlRS UCkKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCRkZHLCAweDM2LCBTS1QwKQogICAgICAg ICAgICBDcmVhdGVXb3JkRmllbGQgKEJGRkcsIDB4MzcsIFNUMDApCiAgICAgICAgICAgIENyZWF0 ZVdvcmRGaWVsZCAoQkZGRywgMHgzOSwgU1QwMSkKICAgICAgICAgICAgTmFtZSAoQlVGRiwgQnVm ZmVyICgweDAzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMSwgMHgw MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4uLiAqLwogICAgICAgICAgICB9 KQogICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRkYsIFplcm8sIEJZQVQpCiAgICAgICAg ICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGRiwgMHgwMiwgREFUQSkKICAgICAgICAgICAgTmFtZSAo QlVGMSwgQnVmZmVyICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgICAgICAgICAgICAgIC8qIC4uLi4uLiAqLwog ICAgICAgICAgICB9KQogICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRjEsIFplcm8sIEJT VEEpCiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGMSwgT25lLCBCTEVOKQogICAgICAg ICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYxLCAweDAyLCBEQVQxKQogICAgICAgICAgICBOYW1l IChCSVhQLCBQYWNrYWdlICgweDE0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAg ICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAg ICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHgwQSwgCiAgICAgICAgICAgICAg ICAweDA0LCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgwMDAxNzMx OCwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgIDB4RkZGRkZG RkYsIAogICAgICAgICAgICAgICAgMHg4OEI4LCAKICAgICAgICAgICAgICAgIDB4NjFBOCwgCiAg ICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAg ICJTUiBSZWFsIEJhdHRlcnkiLCAKICAgICAgICAgICAgICAgICIxMjM0NTY3ODkiLCAKICAgICAg ICAgICAgICAgICJMSU9OIiwgCiAgICAgICAgICAgICAgICAiSW50ZWwgU1IgMSIKICAgICAgICAg ICAgfSkKICAgICAgICAgICAgTmFtZSAoQlNUUCwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAg ICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgMHhGRkZGRkZGRgogICAg ICAgICAgICB9KQogICAgICAgICAgICBNZXRob2QgKF9CSVgsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfQklYOiBCYXR0ZXJ5IEluZm9ybWF0aW9uIEV4dGVuZGVkCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIElmICgoQVZCTCA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIEJGRkcgPSBGR0MwIC8qIFxfU0JfLkkyQzEuRkdDMCAqLwogICAgICAgICAgICAg ICAgICAgIElmICgoU1RBVCAhPSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChDWUxDICE9IEJDQ0wpKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCQ0NMID0gQ1lMQyAvKiBcX1NCXy5JMkMx LkJBVEMuQ1lMQyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQkNMUCA9IEZDQ1QgLyog XF9TQl8uSTJDMS5CQVRDLkZDQ1QgKi8KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgQklYUCBbMHgwM10gPSBCQ0xQIC8qIFxfU0JfLkkyQzEuQkFUQy5C Q0xQICovCiAgICAgICAgICAgICAgICAgICAgICAgIEJJWFAgWzB4MDhdID0gQ1lMQyAvKiBcX1NC Xy5JMkMxLkJBVEMuQ1lMQyAqLwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgSWYgKChEU1NQICE9IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgRFNDUCA9IERTU1AgLyogXF9TQl8uSTJDMS5CQVRDLkRTU1AgKi8KICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgQklY UCBbMHgwMl0gPSBEU0NQIC8qIFxfU0JfLkkyQzEuQkFUQy5EU0NQICovCiAgICAgICAgICAgICAg ICBCSVhQIFsweDA1XSA9IERTVk8gLyogXF9TQl8uSTJDMS5CQVRDLkRTVk8gKi8KICAgICAgICAg ICAgICAgIERpdmlkZSAoRFNDUCwgMHgwQSwgTG9jYWwwLCBMb2NhbDEpCiAgICAgICAgICAgICAg ICBCSVhQIFsweDA2XSA9IExvY2FsMQogICAgICAgICAgICAgICAgRGl2aWRlIChEU0NQLCAweDE0 LCBMb2NhbDAsIExvY2FsMSkKICAgICAgICAgICAgICAgIEJJWFAgWzB4MDddID0gTG9jYWwxCiAg ICAgICAgICAgICAgICBSZXR1cm4gKEJJWFApIC8qIFxfU0JfLkkyQzEuQkFUQy5CSVhQICovCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0JTVCwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9CU1Q6IEJhdHRlcnkgU3RhdHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElm ICgoQVZCTCA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEJG RkcgPSBGR0MwIC8qIFxfU0JfLkkyQzEuRkdDMCAqLwogICAgICAgICAgICAgICAgICAgIElmICgo U1RBVCAhPSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwwID0gKENIU1QgPj4gMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww ICY9IDB4MDMKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKCgoTG9jYWwwID09IE9uZSkgfHwg KExvY2FsMCA9PSAweDAyKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDIKICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gWmVybykpCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IE9uZQog ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExv Y2FsMCA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwxID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICBCU1RQIFtaZXJvXSA9IExvY2FsMQogICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDEgPSBBVlJDIC8qIFxfU0JfLkkyQzEuQkFUQy5BVlJDICovCiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoTG9jYWwxICYgMHg4MDAwKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gKDB4RkZGRiAtIExv Y2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg QlNUUCBbT25lXSA9IExvY2FsMQogICAgICAgICAgICAgICAgICAgICAgICBCU1RQIFsweDAyXSA9 IFJFQ1QgLyogXF9TQl8uSTJDMS5CQVRDLlJFQ1QgKi8KICAgICAgICAgICAgICAgICAgICAgICAg QlNUUCBbMHgwM10gPSBWT0xUIC8qIFxfU0JfLkkyQzEuQkFUQy5WT0xUICovCiAgICAgICAgICAg ICAgICAgICAgICAgIFNPQ0MgPSBTT0NIIC8qIFxfU0JfLkkyQzEuQkFUQy5TT0NIICovCiAgICAg ICAgICAgICAgICAgICAgICAgIEJVRkYgPSBGTDUzIC8qIFxfU0JfLkkyQzEuRkw1MyAqLwogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEJZQVQgIT0gT25lKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCQ0NFID09IE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgREFUQSB8PSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGTDUzID0gQlVG RiAvKiBcX1NCXy5JMkMxLkJBVEMuQlVGRiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERBVEEgJj0gMHhGRQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZMNTMgPSBCVUZGIC8qIFxfU0JfLkkyQzEuQkFU Qy5CVUZGICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIERBVEEgPSBCQ0NDIC8qIFxfU0JfLkky QzEuQkFUQy5CQ0NDICovCiAgICAgICAgICAgICAgICAgICAgICAgIEZMMkYgPSBCVUZGIC8qIFxf U0JfLkkyQzEuQkFUQy5CVUZGICovCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoQlNUUCkgLyogXF9TQl8uSTJDMS5CQVRDLkJT VFAgKi8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChJTlRSLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFWQkwgPT0gT25lKSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBCVUZGID0gRkw0RiAvKiBcX1NC Xy5JMkMxLkZMNEYgKi8KICAgICAgICAgICAgICAgICAgICBJZiAoKEJZQVQgIT0gT25lKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoREFUQSkg LyogXF9TQl8uSTJDMS5CQVRDLkRBVEEgKi8KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoMHhGRikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBSZXR1cm4gKDB4RkYpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0JU UCwgMSwgTm90U2VyaWFsaXplZCkgIC8vIF9CVFA6IEJhdHRlcnkgVHJpcCBQb2ludAogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBCVFBDID0gQXJnMAogICAgICAgICAgICAgICAgQURCRyAo IkJUUCIpCiAgICAgICAgICAgICAgICBBREJHIChBcmcwKQogICAgICAgICAgICAgICAgSWYgKChB VkJMID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgREFUMSA9 IEFyZzAKICAgICAgICAgICAgICAgICAgICBCTEVOID0gMHgwNAogICAgICAgICAgICAgICAgICAg IEZMMzAgPSBCVUYxIC8qIFxfU0JfLkkyQzEuQkFUQy5CVUYxICovCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgQkZGRyA9IEZHQzAgLyogXF9TQl8uSTJDMS5GR0MwICovCiAgICAg ICAgICAgICAgICBBREJHIChSRUNUKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2Qg KF9CVE0sIDEsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQlRNOiBCYXR0ZXJ5IFRpbWUKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgSWYgKChBcmcwID4gMHg3NTMwKSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgSWYgKChBVkJMID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgQkZGRyA9IEZHQzAgLyogXF9TQl8uSTJDMS5GR0MwICovCiAgICAgICAg ICAgICAgICAgICAgSWYgKChTVEFUICE9IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gWmVybykpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChUVEVUICogMHgz QykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoUkVDVCAq IDB4MEUxMCkKICAgICAgICAgICAgICAgICAgICAgICAgRGl2aWRlIChMb2NhbDAsIEFyZzAsIExv Y2FsMSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMikKICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0 dXJuICgweEZGRkZGRkZGKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9CQ1Qs IDEsIE5vdFNlcmlhbGl6ZWQpICAvLyBfQkNUOiBCYXR0ZXJ5IENoYXJnZSBUaW1lCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIElmICgoKEFyZzAgPiAweDY0KSB8fCAoQXJnMCA8IE9uZSkp KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoKEFWQkwgPT0gT25lKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBCRkZHID0gRkdDMCAvKiBcX1NCXy5JMkMx LkZHQzAgKi8KICAgICAgICAgICAgICAgICAgICBJZiAoKFNUQVQgIT0gT25lKSkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA8IFJFQ1QpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIExvY2FsMSA9IEFWUkMgLyogXF9TQl8uSTJDMS5CQVRDLkFWUkMgKi8KICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChMb2NhbDEgJiAweDgwMDApKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IChCQ0xQICog QXJnMCkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwIC09IFJFQ1QgLyogXF9TQl8uSTJD MS5CQVRDLlJFQ1QgKi8KICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwICo9IDB4MEUxMAog ICAgICAgICAgICAgICAgICAgICAgICBEaXZpZGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIsIExv Y2FsMykKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDMpCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoMHhG RkZGRkZGRikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBOb3RT ZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZAogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgiNGMyMDY3ZTMtODg3ZC00NzVj LTk3MjAtNGFmMWQzZWQ2MDJlIikgLyogQmF0dGVyeSBUaGVybWFsIExpbWl0ICovKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzIgPT0gMHgwMikpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gWmVy bykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3Rh dHVzCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQVZCTCA9PSBPbmUpKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEJGRkcgPSBGR0MwIC8qIFxfU0JfLkky QzEuRkdDMCAqLwogICAgICAgICAgICAgICAgICAgIElmICgoU1RBVCAhPSBaZXJvKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmICgoQkRJRCA9PSAweDA0 KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoRkJJ RCA8IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MUYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEJVRkYgPSBGTDRFIC8qIFxfU0JfLkky QzEuRkw0RSAqLwogICAgICAgICAgICAgICAgICAgIElmICgoQllBVCA9PSBaZXJvKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoREFUQSA9PSAweDAy KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDFGKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QQ0wsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfUENMOiBQb3dlciBDb25zdW1lciBMaXN0CiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIFJldHVybiAoX1NCKSAvKiBcX1NCXyAqLwogICAgICAgICAgICB9 CgogICAgICAgICAgICBNZXRob2QgKFBTT0MsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIFJldHVybiAoU09DQykgLyogXF9TQl8uSTJDMS5CQVRDLlNPQ0Mg Ki8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChQTUFYLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKEFWQkwgPT0gT25lKSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBCRkZHID0gRkdDMCAvKiBcX1NCXy5J MkMxLkZHQzAgKi8KICAgICAgICAgICAgICAgICAgICBJZiAoKFNUQVQgIT0gT25lKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IE1BTEMgLyog XF9TQl8uSTJDMS5CQVRDLk1BTEMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2Nh bDEgJiAweDgwMDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDEgPSAoMHhGRkZGIC0gTG9jYWwxKQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgKj0gRFNWTwogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9 CgogICAgICAgICAgICBNZXRob2QgKFZNSU4sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIFJldHVybiAoMHgwREFDKQogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKEFQV1IsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwMzY1QzA0MCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAg TWV0aG9kIChOUFdSLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBMb2NhbDAgPSBBUFdSICgpCiAgICAgICAgICAgICAgICBJZiAoKEFWQkwgPT0gT25lKSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBCRkZHID0gRkdDMCAvKiBcX1NC Xy5JMkMxLkZHQzAgKi8KICAgICAgICAgICAgICAgICAgICBJZiAoKFNUQVQgIT0gT25lKSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IEFWUkMg LyogXF9TQl8uSTJDMS5CQVRDLkFWUkMgKi8KICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChM b2NhbDEgJiAweDgwMDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDEgPSAoMHhGRkZGIC0gTG9jYWwxKQogICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAoVk9MVCAqIExvY2Fs MSkKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwIC09IExvY2FsMgogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIE1ldGhvZCAoUFNSQywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgSWYgKChBVkJMID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgQkZGRyA9IEZHQzAgLyogXF9TQl8uSTJDMS5GR0MwICovCiAgICAg ICAgICAgICAgICAgICAgSWYgKChTVEFUICE9IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBDSFNUIC8qIFxfU0JfLkkyQzEuQkFUQy5D SFNUICovCiAgICAgICAgICAgICAgICAgICAgICAgIEFEQkcgKCJCQVRDLlBTUkMiKQogICAgICAg ICAgICAgICAgICAgICAgICBBREJHIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMCA+Pj0gMHgwNgogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgJj0gMHgwMwogICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA9PSBaZXJvKSkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2Fs MCA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0g MHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkK ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChDVFlQLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoQVJURywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgUmV0dXJuICgweDAzNjVDMDQwKQogICAgICAgICAgICB9CiAg ICAgICAgfQogICAgfQoKICAgIFNjb3BlIChfU0IuSTJDMS5CQVRDKQogICAgewogICAgICAgIE5h bWUgKFRXUjAsIEJ1ZmZlciAoMHgwMTAwKQogICAgICAgIHsKICAgICAgICAgICAgIDB4MDAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAg fSkKICAgICAgICBDcmVhdGVCeXRlRmllbGQgKFRXUjAsIFplcm8sIFRXMDApCiAgICAgICAgQ3Jl YXRlQnl0ZUZpZWxkIChUV1IwLCBPbmUsIFRXMDEpCiAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChU V1IwLCAweDAyLCBUVzAyKQogICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoVFdSMCwgMHgwMywgVFcw MykKICAgICAgICBDcmVhdGVCeXRlRmllbGQgKFRXUjAsIDB4MDQsIFRXMDQpCiAgICAgICAgQ3Jl YXRlQnl0ZUZpZWxkIChUV1IwLCAweDA1LCBUVzA1KQogICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAo VFdSMCwgMHgxMCwgVFcxMCkKICAgICAgICBDcmVhdGVCeXRlRmllbGQgKFRXUjAsIDB4MTEsIFRX MTEpCiAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChUV1IwLCAweDEyLCBUVzEyKQogICAgICAgIENy ZWF0ZVdvcmRGaWVsZCAoVFdSMCwgMHgxNCwgVFcxNCkKICAgICAgICBDcmVhdGVXb3JkRmllbGQg KFRXUjAsIDB4MTYsIFRXMTYpCiAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChUV1IwLCAweDE4LCBU VzE4KQogICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoVFdSMCwgMHgxQSwgVFcxQSkKICAgICAgICBD cmVhdGVXb3JkRmllbGQgKFRXUjAsIDB4MUMsIFRXMUMpCiAgICAgICAgQ3JlYXRlV29yZEZpZWxk IChUV1IwLCAweDFFLCBUVzFFKQogICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoVFdSMCwgMHgyMCwg VFcyMCkKICAgICAgICBDcmVhdGVCeXRlRmllbGQgKFRXUjAsIDB4MjEsIFRXMjEpCiAgICAgICAg Q3JlYXRlV29yZEZpZWxkIChUV1IwLCAweDIyLCBUVzIyKQogICAgICAgIENyZWF0ZVdvcmRGaWVs ZCAoVFdSMCwgMHgyNCwgVFcyNCkKICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFRXUjAsIDB4MjYs IFRXMjYpCiAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChUV1IwLCAweDI4LCBUVzI4KQogICAgICAg IENyZWF0ZVdvcmRGaWVsZCAoVFdSMCwgMHgyQSwgVFcyQSkKICAgICAgICBDcmVhdGVXb3JkRmll bGQgKFRXUjAsIDB4MkMsIFRXMkMpCiAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChUV1IwLCAweDJF LCBUVzJFKQogICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoVFdSMCwgMHgzMCwgVFczMCkKICAgICAg ICBDcmVhdGVCeXRlRmllbGQgKFRXUjAsIDB4MzEsIFRXMzEpCiAgICAgICAgQ3JlYXRlV29yZEZp ZWxkIChUV1IwLCAweDMyLCBUVzMyKQogICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoVFdSMCwgMHgz NCwgVFczNCkKICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFRXUjAsIDB4MzYsIFRXMzYpCiAgICAg ICAgQ3JlYXRlV29yZEZpZWxkIChUV1IwLCAweDM4LCBUVzM4KQogICAgICAgIENyZWF0ZVdvcmRG aWVsZCAoVFdSMCwgMHgzQSwgVFczQSkKICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFRXUjAsIDB4 M0MsIFRXM0MpCiAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChUV1IwLCAweDQwLCBUVzQwKQogICAg ICAgIENyZWF0ZUJ5dGVGaWVsZCAoVFdSMCwgMHg0MSwgVFc0MSkKICAgICAgICBDcmVhdGVGaWVs ZCAoVFdSMCwgMHgwMjEwLCAweDcwLCBUVzQyKQogICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoVFdS MCwgMHg1MCwgVFc1MCkKICAgICAgICBDcmVhdGVCeXRlRmllbGQgKFRXUjAsIDB4NTEsIFRXNTEp CiAgICAgICAgQ3JlYXRlRmllbGQgKFRXUjAsIDB4MDI5MCwgMHg3MCwgVFc1MikKICAgICAgICBD cmVhdGVCeXRlRmllbGQgKFRXUjAsIDB4NjAsIFRXNjApCiAgICAgICAgQ3JlYXRlQnl0ZUZpZWxk IChUV1IwLCAweDYxLCBUVzYxKQogICAgICAgIENyZWF0ZUZpZWxkIChUV1IwLCAweDAzMTAsIDB4 NzAsIFRXNjIpCiAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChUV1IwLCAweDcwLCBUVzcwKQogICAg ICAgIENyZWF0ZUJ5dGVGaWVsZCAoVFdSMCwgMHg3MSwgVFc3MSkKICAgICAgICBDcmVhdGVGaWVs ZCAoVFdSMCwgMHgwMzkwLCAweDcwLCBUVzcyKQogICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoVFdS MCwgMHg4MCwgVFc4MCkKICAgICAgICBDcmVhdGVCeXRlRmllbGQgKFRXUjAsIDB4ODEsIFRXODEp CiAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChUV1IwLCAweDgyLCBUVzgyKQogICAgICAgIENyZWF0 ZVdvcmRGaWVsZCAoVFdSMCwgMHg4NCwgVFc4NCkKICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFRX UjAsIDB4ODYsIFRXODYpCiAgICAgICAgQ3JlYXRlRmllbGQgKFRXUjAsIDB4MDQ0MCwgMHg0MCwg VFc4OCkKICAgICAgICBDcmVhdGVCeXRlRmllbGQgKFRXUjAsIDB4OTAsIFRXOTApCiAgICAgICAg Q3JlYXRlQnl0ZUZpZWxkIChUV1IwLCAweDkxLCBUVzkxKQogICAgICAgIENyZWF0ZVdvcmRGaWVs ZCAoVFdSMCwgMHg5MiwgVFc5MikKICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFRXUjAsIDB4OTQs IFRXOTQpCiAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChUV1IwLCAweDk2LCBUVzk2KQogICAgICAg IENyZWF0ZVdvcmRGaWVsZCAoVFdSMCwgMHg5OCwgVFc5OCkKICAgICAgICBDcmVhdGVCeXRlRmll bGQgKFRXUjAsIDB4QTAsIFRXQTApCiAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChUV1IwLCAweEEx LCBUV0ExKQogICAgICAgIENyZWF0ZUZpZWxkIChUV1IwLCAweDA1MTAsIDB4NzAsIFRXQTIpCiAg ICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChUV1IwLCAweEIwLCBUV0IwKQogICAgICAgIENyZWF0ZUJ5 dGVGaWVsZCAoVFdSMCwgMHhCMSwgVFdCMSkKICAgICAgICBDcmVhdGVGaWVsZCAoVFdSMCwgMHgw NTkwLCAweDcwLCBUV0IyKQogICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoVFdSMCwgMHhDMCwgVFdD MCkKICAgICAgICBDcmVhdGVCeXRlRmllbGQgKFRXUjAsIDB4QzEsIFRXQzEpCiAgICAgICAgQ3Jl YXRlQnl0ZUZpZWxkIChUV1IwLCAweEQwLCBUV0QwKQogICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAo VFdSMCwgMHhEMSwgVFdEMSkKICAgICAgICBOYW1lIChCRkZJLCBCdWZmZXIgKDB4MjQpIHt9KQog ICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQkZGSSwgWmVybywgU1RBSSkKICAgICAgICBDcmVhdGVC eXRlRmllbGQgKEJGRkksIE9uZSwgTEVOSSkKICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJGRkks IDB4MDIsIExFTkopCiAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCRkZJLCAweDAyLCBEQVRJKQog ICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQkZGSSwgMHgwNCwgUEVDSSkKICAgICAgICBDcmVhdGVC eXRlRmllbGQgKEJGRkksIDB4MjMsIFBFQ0opCiAgICAgICAgQ3JlYXRlRmllbGQgKEJGRkksIDB4 MTgsIDB4NzAsIERBVEopCiAgICAgICAgQ3JlYXRlRmllbGQgKEJGRkksIDB4MTgsIDB4NDAsIERB VEspCiAgICAgICAgQ3JlYXRlRmllbGQgKEJGRkksIDB4MTgsIDB4MDEwMCwgREFUTCkKICAgICAg ICBOYW1lIChTQklGLCBaZXJvKQogICAgICAgIE1ldGhvZCAoU0JJRywgMSwgTm90U2VyaWFsaXpl ZCkKICAgICAgICB7CiAgICAgICAgICAgIElmICgoWmVybyAhPSBBcmcwKSkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgUmV0dXJuIChUV1IwKSAvKiBcX1NCXy5JMkMxLkJBVEMuVFdSMCAq LwogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgU0JJRiA9IE9uZQogICAgICAgICAgICAgICAgUmV0dXJuIChUV1IwKSAvKiBcX1NCXy5J MkMxLkJBVEMuVFdSMCAqLwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBNZXRob2Qg KE1IQ0YsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChCVUYz LCBCdWZmZXIgKDB4MDMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAweDAwLCAweDAx LCAweDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLi4uICovCiAgICAgICAg ICAgIH0pCiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGMywgWmVybywgQllBMykKICAg ICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUYzLCAweDAyLCBEQVQzKQogICAgICAgICAgICBS ZXR1cm4gKEFyZzApCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKE1IUEYsIDEsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBMb2NhbDAgPSBBcmcwCiAgICAgICAgICAgIENy ZWF0ZUJ5dGVGaWVsZCAoTG9jYWwwLCBaZXJvLCBQUlRMKQogICAgICAgICAgICBDcmVhdGVCeXRl RmllbGQgKExvY2FsMCwgT25lLCBTVFMwKQogICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKExv Y2FsMCwgMHgwMywgQ01EMCkKICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChMb2NhbDAsIDB4 MDQsIFdPUjApCiAgICAgICAgICAgIENyZWF0ZUZpZWxkIChMb2NhbDAsIDB4MjAsIDB4MDEwMCwg REEzMikKICAgICAgICAgICAgQ3JlYXRlRmllbGQgKExvY2FsMCwgMHgyMCwgMHg0MCwgREEwOCkK ICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChMb2NhbDAsIDB4MjUsIFBFQzApCiAgICAgICAg ICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChNSElGLCAxLCBO b3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoUkVUQiwgQnVmZmVyICgw eDBBKSB7fSkKICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChSRVRCLCBaZXJvLCBSRTM1KQog ICAgICAgICAgICBDcmVhdGVGaWVsZCAoUkVUQiwgMHgxMCwgMHg0MCwgUkUzNykKICAgICAgICAg ICAgUmV0dXJuIChSRVRCKSAvKiBcX1NCXy5JMkMxLkJBVEMuTUhJRi5SRVRCICovCiAgICAgICAg fQoKICAgICAgICBNZXRob2QgKE1IRE0sIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAg ICAgIH0KICAgIH0KCiAgICBTY29wZSAoX1NCKQogICAgewogICAgICAgIERldmljZSAoSEtFWSkK ICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIkxFTjAxNjgiKSkgIC8v IF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9TVEE6IFN0YXR1cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1 cm4gKDB4MEYpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoTUhLViwgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuICgweDAxMDAp CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKF9ERVAsIFBhY2thZ2UgKDB4MDIpICAv LyBfREVQOiBEZXBlbmRlbmNpZXMKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSTJDMSwg CiAgICAgICAgICAgICAgICBHUE8yCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAo U0JJRywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0 dXJuICheXkkyQzEuQkFUMC5TQklHIChBcmcwKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAg TWV0aG9kIChNSENGLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBMb2NhbDAgPSBBcmcwCiAgICAgICAgICAgICAgICBJZiAoKChMb2NhbDAgJiAweDYwKSA9 PSBaZXJvKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBa ZXJvCiAgICAgICAgICAgICAgICAgICAgXF9QUi5DUFUwLl9QUEMgPSBMb2NhbDEKICAgICAgICAg ICAgICAgICAgICBOb3RpZnkgKFxfUFIuQ1BVMCwgMHg4MCkgLy8gUGVyZm9ybWFuY2UgQ2FwYWJp bGl0eSBDaGFuZ2UKICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfUFIuQ1BVMSwgMHg4MCkg Ly8gUGVyZm9ybWFuY2UgQ2FwYWJpbGl0eSBDaGFuZ2UKICAgICAgICAgICAgICAgICAgICBOb3Rp ZnkgKFxfUFIuQ1BVMiwgMHg4MCkgLy8gUGVyZm9ybWFuY2UgQ2FwYWJpbGl0eSBDaGFuZ2UKICAg ICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfUFIuQ1BVMywgMHg4MCkgLy8gUGVyZm9ybWFuY2Ug Q2FwYWJpbGl0eSBDaGFuZ2UKICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKF5eUENJMC5HRlgw LkREMUYsIDB4ODYpIC8vIERldmljZS1TcGVjaWZpYwogICAgICAgICAgICAgICAgICAgIFNsZWVw ICgweDY0KQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXl5QQ0kwLkdGWDAuREQxRiwgMHg4 NikgLy8gRGV2aWNlLVNwZWNpZmljCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4NjQpCiAg ICAgICAgICAgICAgICAgICAgTm90aWZ5ICheXlBDSTAuR0ZYMC5ERDFGLCAweDg2KSAvLyBEZXZp Y2UtU3BlY2lmaWMKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHg2NCkKICAgICAgICAgICAg ICAgICAgICBOb3RpZnkgKF5eUENJMC5HRlgwLkREMUYsIDB4ODYpIC8vIERldmljZS1TcGVjaWZp YwogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDY0KQogICAgICAgICAgICAgICAgICAgIE5v dGlmeSAoXl5QQ0kwLkdGWDAuREQxRiwgMHg4NikgLy8gRGV2aWNlLVNwZWNpZmljCiAgICAgICAg ICAgICAgICAgICAgU2xlZXAgKDB4NjQpCiAgICAgICAgICAgICAgICAgICAgTm90aWZ5ICheXlBD STAuR0ZYMC5ERDFGLCAweDg2KSAvLyBEZXZpY2UtU3BlY2lmaWMKICAgICAgICAgICAgICAgICAg ICBTbGVlcCAoMHg2NCkKICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKF5eUENJMC5HRlgwLkRE MUYsIDB4ODYpIC8vIERldmljZS1TcGVjaWZpYwogICAgICAgICAgICAgICAgICAgIFNsZWVwICgw eDY0KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDYKICAgICAgICAgICAgICAgICAg ICBcX1BSLkNQVTAuX1BQQyA9IExvY2FsMQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9Q Ui5DUFUwLCAweDgwKSAvLyBQZXJmb3JtYW5jZSBDYXBhYmlsaXR5IENoYW5nZQogICAgICAgICAg ICAgICAgICAgIE5vdGlmeSAoXF9QUi5DUFUxLCAweDgwKSAvLyBQZXJmb3JtYW5jZSBDYXBhYmls aXR5IENoYW5nZQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5DUFUyLCAweDgwKSAv LyBQZXJmb3JtYW5jZSBDYXBhYmlsaXR5IENoYW5nZQogICAgICAgICAgICAgICAgICAgIE5vdGlm eSAoXF9QUi5DUFUzLCAweDgwKSAvLyBQZXJmb3JtYW5jZSBDYXBhYmlsaXR5IENoYW5nZQogICAg ICAgICAgICAgICAgICAgIE5vdGlmeSAoXl5QQ0kwLkdGWDAuREQxRiwgMHg4NykgLy8gRGV2aWNl LVNwZWNpZmljCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4NjQpCiAgICAgICAgICAgICAg ICAgICAgTm90aWZ5ICheXlBDSTAuR0ZYMC5ERDFGLCAweDg3KSAvLyBEZXZpY2UtU3BlY2lmaWMK ICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHg2NCkKICAgICAgICAgICAgICAgICAgICBOb3Rp ZnkgKF5eUENJMC5HRlgwLkREMUYsIDB4ODcpIC8vIERldmljZS1TcGVjaWZpYwogICAgICAgICAg ICAgICAgICAgIFNsZWVwICgweDY0KQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXl5QQ0kw LkdGWDAuREQxRiwgMHg4NykgLy8gRGV2aWNlLVNwZWNpZmljCiAgICAgICAgICAgICAgICAgICAg U2xlZXAgKDB4NjQpCiAgICAgICAgICAgICAgICAgICAgTm90aWZ5ICheXlBDSTAuR0ZYMC5ERDFG LCAweDg3KSAvLyBEZXZpY2UtU3BlY2lmaWMKICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHg2 NCkKICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKF5eUENJMC5HRlgwLkREMUYsIDB4ODcpIC8v IERldmljZS1TcGVjaWZpYwogICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDY0KQogICAgICAg ICAgICAgICAgICAgIE5vdGlmeSAoXl5QQ0kwLkdGWDAuREQxRiwgMHg4NykgLy8gRGV2aWNlLVNw ZWNpZmljCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4NjQpCiAgICAgICAgICAgICAgICAg ICAgTm90aWZ5ICheXlBDSTAuR0ZYMC5ERDFGLCAweDg3KSAvLyBEZXZpY2UtU3BlY2lmaWMKICAg ICAgICAgICAgICAgICAgICBTbGVlcCAoMHg2NCkKICAgICAgICAgICAgICAgICAgICBOb3RpZnkg KF5eUENJMC5HRlgwLkREMUYsIDB4ODcpIC8vIERldmljZS1TcGVjaWZpYwogICAgICAgICAgICAg ICAgICAgIFNsZWVwICgweDY0KQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXl5QQ0kwLkdG WDAuREQxRiwgMHg4NikgLy8gRGV2aWNlLVNwZWNpZmljCiAgICAgICAgICAgICAgICAgICAgU2xl ZXAgKDB4NjQpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgXl5JMkMxLkJBVDAu TUhDRiAoQXJnMCkKICAgICAgICAgICAgICAgIFJldHVybiAoQXJnMCkKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTWV0aG9kIChNSFBGLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBSZXR1cm4gKF5eSTJDMS5CQVQwLk1IUEYgKEFyZzApKQogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKE1ISUYsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoXl5JMkMxLkJBVDAuTUhJRiAoQXJnMCkp CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoTUhETSwgMSwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgewogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKE1IVkYs IDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAo T25lKQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChESEtDLCBaZXJvKQogICAgICAg ICAgICBOYW1lIChESEtCLCBPbmUpCiAgICAgICAgICAgIE5hbWUgKERIS0gsIFplcm8pCiAgICAg ICAgICAgIE5hbWUgKERIS1csIFplcm8pCiAgICAgICAgICAgIE5hbWUgKERIS1MsIFplcm8pCiAg ICAgICAgICAgIE5hbWUgKERIS0QsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKERIS1QsIFplcm8p CiAgICAgICAgICAgIE5hbWUgKERIV1csIFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoTUhLUSwg MSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgREhLSCA9IEFy ZzAKICAgICAgICAgICAgICAgIE5vdGlmeSAoSEtFWSwgMHg4MCkgLy8gU3RhdHVzIENoYW5nZQog ICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKE1IS1AsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIExvY2FsMSA9IERIS0ggLyogXF9TQl8uSEtF WS5ESEtIICovCiAgICAgICAgICAgICAgICBESEtIID0gWmVybwogICAgICAgICAgICAgICAgUmV0 dXJuIChMb2NhbDEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoUURFUywgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKCheXkdQTzIu QVZCTCA9PSBPbmUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2Fs MCA9IFdTVEEgLyogXFdTVEEgKi8KICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPDw9IE9uZQog ICAgICAgICAgICAgICAgICAgIExvY2FsMCAmPSAweDA2CiAgICAgICAgICAgICAgICAgICAgSWYg KCheXkdQTzIuQ0xJRCA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwwICY9IDB4MEUKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgTG9jYWwwIHw9IE9uZQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFNERVMs IDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoXl5H UE8yLkFWQkwgPT0gT25lKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBM b2NhbDAgPSAoQXJnMCAmIDB4MDYpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID4+PSBPbmUK ICAgICAgICAgICAgICAgICAgICBXU1RBID0gTG9jYWwwCiAgICAgICAgICAgICAgICAgICAgVUNN UyAoT25lLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoMHgwNikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg fQoKICAgICAgICAgICAgTWV0aG9kIChNSFFULCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBJZiAoKDB4MDUgPT0gQXJnMCkpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQ01TVCAvKiBcQ01TVCAqLwogICAgICAgICAg ICAgICAgICAgIExvY2FsMCA8PD0gT25lCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwIHw9IE9u ZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAg TWV0aG9kIChNSEFULCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBMb2NhbDAgPSAoQXJnMCAmIDB4MDAwODAwMDApCiAgICAgICAgICAgICAgICBMb2NhbDAg Pj49IDB4MTMKICAgICAgICAgICAgICAgIENNU1QgPSBMb2NhbDAKICAgICAgICAgICAgICAgIFVD TVMgKFplcm8sIExvY2FsMCkKICAgICAgICAgICAgICAgIE5vdGlmeSAoU1RSMiwgMHg5MSkgLy8g RGV2aWNlLVNwZWNpZmljCiAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAg fQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoX1NCLkkyQzEpCiAgICB7CiAgICAgICAgTmFt ZSAoRU5FMywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgIHsKICAgICAgICAgICAgSTJjU2Vy aWFsQnVzICgweDAwNzAsIENvbnRyb2xsZXJJbml0aWF0ZWQsIDB4MDAwNjFBODAsCiAgICAgICAg ICAgICAgICBBZGRyZXNzaW5nTW9kZTdCaXQsICJcXF9TQi5JMkMxIiwKICAgICAgICAgICAgICAg IDB4MDAsIFJlc291cmNlQ29uc3VtZXIsICwKICAgICAgICAgICAgICAgICkKICAgICAgICB9KQog ICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoRVJBTSwgR2VuZXJpY1NlcmlhbEJ1cywgWmVybywgMHgw MTAwKQogICAgICAgIEZpZWxkIChFUkFNLCBCdWZmZXJBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAg ICAgICAgewogICAgICAgICAgICBDb25uZWN0aW9uIChFTkUzKSwgCiAgICAgICAgICAgIE9mZnNl dCAoMHgwMSksIAogICAgICAgICAgICBBY2Nlc3NBcyAoQnVmZmVyQWNjLCBBdHRyaWJCeXRlcyAo MHgwNikpLCAKICAgICAgICAgICAgSTJDUiwgICA4LCAKICAgICAgICAgICAgQWNjZXNzQXMgKEJ1 ZmZlckFjYywgQXR0cmliQnl0ZXMgKDB4MDUpKSwgCiAgICAgICAgICAgIEkyQ1csICAgOAogICAg ICAgIH0KICAgIH0KCiAgICBTY29wZSAoX1NCLkkyQzEpCiAgICB7CiAgICAgICAgRGV2aWNlIChC QVQwKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwQSIp IC8qIENvbnRyb2wgTWV0aG9kIEJhdHRlcnkgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAogICAg ICAgICAgICBOYW1lIChfVUlELCBPbmUpICAvLyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAg TmFtZSAoX0RFUCwgUGFja2FnZSAoMHgwMSkgIC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBJMkMxCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5h bWUgKF9QQ0wsIFBhY2thZ2UgKDB4MDEpICAvLyBfUENMOiBQb3dlciBDb25zdW1lciBMaXN0CiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIF9TQgogICAgICAgICAgICB9KQogICAgICAgICAg ICBOYW1lIChCTURMLCBaZXJvKQogICAgICAgICAgICBOYW1lIChCQVNDLCBPbmUpCiAgICAgICAg ICAgIE5hbWUgKEJGRlcsIFplcm8pCiAgICAgICAgICAgIE11dGV4IChDRk1aLCAweDAwKQogICAg ICAgICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2Ut U3BlY2lmaWMgTWV0aG9kCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9 PSBUb1VVSUQgKCI0YzIwNjdlMy04ODdkLTQ3NWMtOTcyMC00YWYxZDNlZDYwMmUiKSAvKiBCYXR0 ZXJ5IFRoZXJtYWwgTGltaXQgKi8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIElmICgoQXJnMiA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMSA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVidWcgPSAiQmF0dGVyeSBfRFNNIFF1ZXJ5 ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVyIChPbmUpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MEYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAuICov CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0g WmVybykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzIgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgRGVidWcgPSAiU2V0IEJhdHRlcnkgQ2hhcmdlIFRocm90dGxlIgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgRGVidWcgPSBBcmczCiAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMiA9PSAweDAyKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVidWcgPSAiVXNl ci1TZXJ2aWNlYWJsZSBCYXR0ZXJ5IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQXJnMiA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgRGVidWcgPSAiQ2hhcmdpbmcgV2F0Y2hkb2cgIgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDFFKQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQnVmZmVy IChPbmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgMHgw MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4gKi8KICAg ICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAg ICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKEFWQkwpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAoQ0ZNWiwgMHhGRkZGKQogICAgICAgICAgICAg ICAgICAgIEVDTlIgKDB4RjApCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKEVDUjAgJiBP bmUpCiAgICAgICAgICAgICAgICAgICAgSWYgKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKENGTVopCiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgxRikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg U2xlZXAgKDB4MEEpCiAgICAgICAgICAgICAgICAgICAgICAgIEVDTlIgKDB4RjApCiAgICAgICAg ICAgICAgICAgICAgICAgIExvY2FsMCA9IChFQ1IwICYgT25lKQogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZWxlYXNlIChDRk1aKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDFGKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmVsZWFzZSAoQ0ZNWikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHgwRikKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MUYpCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0JJRiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9C SUY6IEJhdHRlcnkgSW5mb3JtYXRpb24KICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0 dXJuIChCSUZYIChaZXJvKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfQklY LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0JJWDogQmF0dGVyeSBJbmZvcm1hdGlvbiBFeHRlbmRl ZAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKEJJRlggKE9uZSkpCiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoQklGWCwgMSwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoU1RBWCwgUGFja2FnZSAoMHgxNCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg ICAgICBPbmUsIAogICAgICAgICAgICAgICAgICAgIDB4MTc3MCwgCiAgICAgICAgICAgICAgICAg ICAgMHgxNzcwLCAKICAgICAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgICAg IDB4MkEzMCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMjU4LCAKICAgICAgICAgICAgICAgICAg ICAweEI0LCAKICAgICAgICAgICAgICAgICAgICAweDA4LCAKICAgICAgICAgICAgICAgICAgICAw eDA5LCAKICAgICAgICAgICAgICAgICAgICAweDBBLCAKICAgICAgICAgICAgICAgICAgICAweDBC LCAKICAgICAgICAgICAgICAgICAgICAweDBDLCAKICAgICAgICAgICAgICAgICAgICAweDBELCAK ICAgICAgICAgICAgICAgICAgICAweDAxMDgsIAogICAgICAgICAgICAgICAgICAgIDB4MEVDNCwg CiAgICAgICAgICAgICAgICAgICAgIlBBQkFTMDI0MTIzMSIsIAogICAgICAgICAgICAgICAgICAg ICI0MTE2NyIsIAogICAgICAgICAgICAgICAgICAgICJMaS1Jb24iLCAKICAgICAgICAgICAgICAg ICAgICAiTEcgQ2hlbSIKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBOYW1lIChT VEFGLCBQYWNrYWdlICgweDBEKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IE9uZSwgCiAgICAgICAgICAgICAgICAgICAgMHgxNzcwLCAKICAgICAgICAgICAgICAgICAgICAw eDE3NzAsIAogICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAgMHgy QTMwLCAKICAgICAgICAgICAgICAgICAgICAweDAyNTgsIAogICAgICAgICAgICAgICAgICAgIDB4 QjQsIAogICAgICAgICAgICAgICAgICAgIDB4MDEwOCwgCiAgICAgICAgICAgICAgICAgICAgMHgw RUM0LCAKICAgICAgICAgICAgICAgICAgICAiUEFCQVMwMjQxMjMxIiwgCiAgICAgICAgICAgICAg ICAgICAgIjQxMTY3IiwgCiAgICAgICAgICAgICAgICAgICAgIkxpLUlvbiIsIAogICAgICAgICAg ICAgICAgICAgICJMRyBDaGVtIgogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE5h bWUgKEJUTkEsIEJ1ZmZlciAoMHgwRSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAvKiAwMDAwICovICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAgLyogLi4uLi4uLi4gKi8KICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgICAgICAgICAgICAgLyogLi4uLi4u ICovCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgSWYgKEFWQkwpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAoQ0ZNWiwgMHhGRkZGKQogICAg ICAgICAgICAgICAgICAgIEVDTlIgKDB4QzApCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0g KEVDUjAgJiAweDAyKQogICAgICAgICAgICAgICAgICAgIFNUQVggW09uZV0gPSBMb2NhbDAKICAg ICAgICAgICAgICAgICAgICBFQ05SICgweENCKQogICAgICAgICAgICAgICAgICAgIExvY2FsNSA9 IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICBFQ05S ICgweENBKQogICAgICAgICAgICAgICAgICAgIExvY2FsNiA9IChFQ1IwIHwgKExvY2FsNSA8PCAw eDA4KSkKICAgICAgICAgICAgICAgICAgICBMb2NhbDYgKj0gMHgwQQogICAgICAgICAgICAgICAg ICAgIFNUQVggWzB4MDJdID0gTG9jYWw2CiAgICAgICAgICAgICAgICAgICAgRUNOUiAoMHhGQykK ICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1Iw ICovCiAgICAgICAgICAgICAgICAgICAgRUNOUiAoMHhGQikKICAgICAgICAgICAgICAgICAgICBM b2NhbDIgPSAoRUNSMCB8IChMb2NhbDAgPDwgMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgTG9j YWwyICo9IDB4MEEKICAgICAgICAgICAgICAgICAgICBTVEFYIFsweDAzXSA9IExvY2FsMgogICAg ICAgICAgICAgICAgICAgIEVDTlIgKDB4QzkpCiAgICAgICAgICAgICAgICAgICAgTG9jYWw0ID0g RUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgIEVDTlIg KDB4QzgpCiAgICAgICAgICAgICAgICAgICAgTG9jYWw1ID0gKEVDUjAgfCAoTG9jYWw0IDw8IDB4 MDgpKQogICAgICAgICAgICAgICAgICAgIFNUQVggWzB4MDVdID0gTG9jYWw1CiAgICAgICAgICAg ICAgICAgICAgRGl2aWRlIChMb2NhbDIsIDB4NjQsIExvY2FsMCwgTG9jYWwxKQogICAgICAgICAg ICAgICAgICAgIExvY2FsMSAqPSAweDBBCiAgICAgICAgICAgICAgICAgICAgU1RBWCBbMHgwNl0g PSBMb2NhbDEKICAgICAgICAgICAgICAgICAgICBEaXZpZGUgKExvY2FsMiwgMHg2NCwgTG9jYWww LCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxICo9IDB4MDMKICAgICAgICAgICAg ICAgICAgICBTVEFYIFsweDA3XSA9IExvY2FsMQogICAgICAgICAgICAgICAgICAgIEVDTlIgKDB4 Q0YpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAu RUNSMCAqLwogICAgICAgICAgICAgICAgICAgIFNUQVggWzB4MDhdID0gTG9jYWwwCiAgICAgICAg ICAgICAgICAgICAgRUNOUiAoMHhGRikKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBFQ1Iw IC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgU1RBWCBbMHgw OV0gPSBMb2NhbDAKICAgICAgICAgICAgICAgICAgICBTVEFYIFsweDBBXSA9IDB4RkEKICAgICAg ICAgICAgICAgICAgICBTVEFYIFsweDBCXSA9IDB4RkEKICAgICAgICAgICAgICAgICAgICBTVEFY IFsweDBDXSA9IDB4MDNFOAogICAgICAgICAgICAgICAgICAgIFNUQVggWzB4MERdID0gMHgwM0U4 CiAgICAgICAgICAgICAgICAgICAgRUNOUiAoMHhDNSkKICAgICAgICAgICAgICAgICAgICBMb2Nh bDAgPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAg RUNOUiAoMHhDNCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoRUNSMCB8IChMb2NhbDAg PDwgMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgVG9EZWNpbWFsU3RyaW5nIChMb2NhbDAsIExv Y2FsMSkKICAgICAgICAgICAgICAgICAgICBTVEFYIFsweDExXSA9IExvY2FsMQogICAgICAgICAg ICAgICAgICAgIEVDQlIgKDB4ODMsIDB4NTIpCiAgICAgICAgICAgICAgICAgICAgQlROQSBbWmVy b10gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAg RUNCUiAoMHg4MywgMHg1MykKICAgICAgICAgICAgICAgICAgICBCVE5BIFtPbmVdID0gRUNSMCAv KiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMs IDB4NTQpCiAgICAgICAgICAgICAgICAgICAgQlROQSBbMHgwMl0gPSBFQ1IwIC8qIFxfU0JfLkky QzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgRUNCUiAoMHg4MywgMHg1NSkKICAg ICAgICAgICAgICAgICAgICBCVE5BIFsweDAzXSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVD UjAgKi8KICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAweDU2KQogICAgICAgICAgICAg ICAgICAgIEJUTkEgWzB4MDRdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAg ICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4NTcpCiAgICAgICAgICAgICAgICAgICAgQlRO QSBbMHgwNV0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAg ICAgICAgRUNCUiAoMHg4MywgMHg1OCkKICAgICAgICAgICAgICAgICAgICBCVE5BIFsweDA2XSA9 IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICBFQ0JS ICgweDgzLCAweDU5KQogICAgICAgICAgICAgICAgICAgIEJUTkEgWzB4MDddID0gRUNSMCAvKiBc X1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4 NUEpCiAgICAgICAgICAgICAgICAgICAgQlROQSBbMHgwOF0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEu QkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgRUNCUiAoMHg4MywgMHg1QikKICAgICAg ICAgICAgICAgICAgICBCVE5BIFsweDA5XSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAg Ki8KICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAweDVDKQogICAgICAgICAgICAgICAg ICAgIEJUTkEgWzB4MEFdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAg ICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4NUQpCiAgICAgICAgICAgICAgICAgICAgQlROQSBb MHgwQl0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAg ICAgRUNCUiAoMHg4MywgMHg1RSkKICAgICAgICAgICAgICAgICAgICBCVE5BIFsweDBDXSA9IEVD UjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICBFQ0JSICgw eDgzLCAweDVGKQogICAgICAgICAgICAgICAgICAgIEJUTkEgWzB4MERdID0gRUNSMCAvKiBcX1NC Xy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgIFNUQVggWzB4MTBdID0gQlRO QSAvKiBcX1NCXy5JMkMxLkJBVDAuQklGWC5CVE5BICovCiAgICAgICAgICAgICAgICAgICAgRUNC UiAoMHg4MywgMHg2MikKICAgICAgICAgICAgICAgICAgICBCVE5BIFtaZXJvXSA9IEVDUjAgLyog XF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAw eDYzKQogICAgICAgICAgICAgICAgICAgIEJUTkEgW09uZV0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEu QkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgRUNCUiAoMHg4MywgMHg2NCkKICAgICAg ICAgICAgICAgICAgICBCVE5BIFsweDAyXSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAg Ki8KICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAweDY1KQogICAgICAgICAgICAgICAg ICAgIEJUTkEgWzB4MDNdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAg ICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4NjYpCiAgICAgICAgICAgICAgICAgICAgQlROQSBb MHgwNF0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAg ICAgRUNCUiAoMHg4MywgMHg2NykKICAgICAgICAgICAgICAgICAgICBCVE5BIFsweDA1XSA9IEVD UjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICBFQ0JSICgw eDgzLCAweDY4KQogICAgICAgICAgICAgICAgICAgIEJUTkEgWzB4MDZdID0gRUNSMCAvKiBcX1NC Xy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4Njkp CiAgICAgICAgICAgICAgICAgICAgQlROQSBbMHgwN10gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFU MC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgRUNCUiAoMHg4MywgMHg2QSkKICAgICAgICAg ICAgICAgICAgICBCVE5BIFsweDA4XSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8K ICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAweDZCKQogICAgICAgICAgICAgICAgICAg IEJUTkEgWzB4MDldID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAg ICAgICAgICAgIEVDQlIgKDB4ODMsIDB4NkMpCiAgICAgICAgICAgICAgICAgICAgQlROQSBbMHgw QV0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAg RUNCUiAoMHg4MywgMHg2RCkKICAgICAgICAgICAgICAgICAgICBCVE5BIFsweDBCXSA9IEVDUjAg LyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgz LCAweDZFKQogICAgICAgICAgICAgICAgICAgIEJUTkEgWzB4MENdID0gRUNSMCAvKiBcX1NCXy5J MkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4NkYpCiAg ICAgICAgICAgICAgICAgICAgQlROQSBbMHgwRF0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5F Q1IwICovCiAgICAgICAgICAgICAgICAgICAgU1RBWCBbMHgxMl0gPSBCVE5BIC8qIFxfU0JfLkky QzEuQkFUMC5CSUZYLkJUTkEgKi8KICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAweDQy KQogICAgICAgICAgICAgICAgICAgIEJUTkEgW1plcm9dID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJB VDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4NDMpCiAgICAgICAg ICAgICAgICAgICAgQlROQSBbT25lXSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8K ICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAweDQ0KQogICAgICAgICAgICAgICAgICAg IEJUTkEgWzB4MDJdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAg ICAgICAgICAgIEVDQlIgKDB4ODMsIDB4NDUpCiAgICAgICAgICAgICAgICAgICAgQlROQSBbMHgw M10gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAg RUNCUiAoMHg4MywgMHg0NikKICAgICAgICAgICAgICAgICAgICBCVE5BIFsweDA0XSA9IEVDUjAg LyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgz LCAweDQ3KQogICAgICAgICAgICAgICAgICAgIEJUTkEgWzB4MDVdID0gRUNSMCAvKiBcX1NCXy5J MkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4NDgpCiAg ICAgICAgICAgICAgICAgICAgQlROQSBbMHgwNl0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5F Q1IwICovCiAgICAgICAgICAgICAgICAgICAgRUNCUiAoMHg4MywgMHg0OSkKICAgICAgICAgICAg ICAgICAgICBCVE5BIFsweDA3XSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAg ICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAweDRBKQogICAgICAgICAgICAgICAgICAgIEJU TkEgWzB4MDhdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAg ICAgICAgIEVDQlIgKDB4ODMsIDB4NEIpCiAgICAgICAgICAgICAgICAgICAgQlROQSBbMHgwOV0g PSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgRUNC UiAoMHg4MywgMHg0QykKICAgICAgICAgICAgICAgICAgICBCVE5BIFsweDBBXSA9IEVDUjAgLyog XF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAw eDREKQogICAgICAgICAgICAgICAgICAgIEJUTkEgWzB4MEJdID0gRUNSMCAvKiBcX1NCXy5JMkMx LkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4NEUpCiAgICAg ICAgICAgICAgICAgICAgQlROQSBbMHgwQ10gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1Iw ICovCiAgICAgICAgICAgICAgICAgICAgRUNCUiAoMHg4MywgMHg0RikKICAgICAgICAgICAgICAg ICAgICBCVE5BIFsweDBEXSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAg ICAgICAgICAgICAgICBTVEFYIFsweDEzXSA9IEJUTkEgLyogXF9TQl8uSTJDMS5CQVQwLkJJRlgu QlROQSAqLwogICAgICAgICAgICAgICAgICAgIFNUQUYgW1plcm9dID0gRGVyZWZPZiAoU1RBWCBb T25lXSkKICAgICAgICAgICAgICAgICAgICBTVEFGIFtPbmVdID0gRGVyZWZPZiAoU1RBWCBbMHgw Ml0pCiAgICAgICAgICAgICAgICAgICAgU1RBRiBbMHgwMl0gPSBEZXJlZk9mIChTVEFYIFsweDAz XSkKICAgICAgICAgICAgICAgICAgICBTVEFGIFsweDAzXSA9IERlcmVmT2YgKFNUQVggWzB4MDRd KQogICAgICAgICAgICAgICAgICAgIFNUQUYgWzB4MDRdID0gRGVyZWZPZiAoU1RBWCBbMHgwNV0p CiAgICAgICAgICAgICAgICAgICAgU1RBRiBbMHgwNV0gPSBEZXJlZk9mIChTVEFYIFsweDA2XSkK ICAgICAgICAgICAgICAgICAgICBTVEFGIFsweDA2XSA9IERlcmVmT2YgKFNUQVggWzB4MDddKQog ICAgICAgICAgICAgICAgICAgIFNUQUYgWzB4MDddID0gRGVyZWZPZiAoU1RBWCBbMHgwRV0pCiAg ICAgICAgICAgICAgICAgICAgU1RBRiBbMHgwOF0gPSBEZXJlZk9mIChTVEFYIFsweDBGXSkKICAg ICAgICAgICAgICAgICAgICBTVEFGIFsweDA5XSA9IERlcmVmT2YgKFNUQVggWzB4MTBdKQogICAg ICAgICAgICAgICAgICAgIFNUQUYgWzB4MEFdID0gRGVyZWZPZiAoU1RBWCBbMHgxMV0pCiAgICAg ICAgICAgICAgICAgICAgU1RBRiBbMHgwQl0gPSBEZXJlZk9mIChTVEFYIFsweDEyXSkKICAgICAg ICAgICAgICAgICAgICBTVEFGIFsweDBDXSA9IERlcmVmT2YgKFNUQVggWzB4MTNdKQogICAgICAg ICAgICAgICAgICAgIFJlbGVhc2UgKENGTVopCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgSWYgKChBcmcwID09IE9uZSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChTVEFYKSAvKiBcX1NCXy5JMkMxLkJBVDAuQklGWC5TVEFYICovCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChTVEFGKSAvKiBcX1NCXy5JMkMxLkJBVDAuQklGWC5TVEFG ICovCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFBC U1QsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAK ICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYKICAgICAgICAgICAgfSkKICAgICAgICAgICAgTWV0 aG9kIChfQlNULCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0JTVDogQmF0dGVyeSBTdGF0dXMKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKEFWQkwpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgQWNxdWlyZSAoQ0ZNWiwgMHhGRkZGKQogICAgICAgICAgICAgICAg ICAgIEVDTlIgKDB4QzEpCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gRUNSMCAvKiBcX1NC Xy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgIFBCU1QgW1plcm9dID0gTG9j YWwwCiAgICAgICAgICAgICAgICAgICAgRUNOUiAoMHhEMSkKICAgICAgICAgICAgICAgICAgICBM b2NhbDEgPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAg ICAgRUNOUiAoMHhEMCkKICAgICAgICAgICAgICAgICAgICBMb2NhbDIgPSAoRUNSMCB8IChMb2Nh bDEgPDwgMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDIgPiAweDdGRkYpKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwyID0gKDB4 MDAwMTAwMDAgLSBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBFQ05SICgweEM3KQogICAgICAgICAgICAgICAgICAgIExvY2FsNSA9IEVDUjAgLyogXF9T Ql8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICBFQ05SICgweEM2KQogICAg ICAgICAgICAgICAgICAgIExvY2FsNiA9IChFQ1IwIHwgKExvY2FsNSA8PCAweDA4KSkKICAgICAg ICAgICAgICAgICAgICBMb2NhbDIgKj0gTG9jYWw2CiAgICAgICAgICAgICAgICAgICAgRGl2aWRl IChMb2NhbDIsIDB4MDNFOCwgTG9jYWw3LCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAgUEJT VCBbT25lXSA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgIEVDTlIgKDB4QzMpCiAgICAgICAg ICAgICAgICAgICAgTG9jYWwzID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAg ICAgICAgICAgICAgICAgIEVDTlIgKDB4QzIpCiAgICAgICAgICAgICAgICAgICAgTG9jYWw0ID0g KEVDUjAgfCAoTG9jYWwzIDw8IDB4MDgpKQogICAgICAgICAgICAgICAgICAgIExvY2FsNCAqPSAw eDBBCiAgICAgICAgICAgICAgICAgICAgUEJTVCBbMHgwMl0gPSBMb2NhbDQKICAgICAgICAgICAg ICAgICAgICBQQlNUIFsweDAzXSA9IExvY2FsNgogICAgICAgICAgICAgICAgICAgIExFREMgKCkK ICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChDRk1aKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIFJldHVybiAoUEJTVCkgLyogXF9TQl8uSTJDMS5CQVQwLlBCU1QgKi8KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfQlRQLCAxLCBOb3RTZXJpYWxpemVkKSAg Ly8gX0JUUDogQmF0dGVyeSBUcmlwIFBvaW50CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IERpdmlkZSAoQXJnMCwgMHgwQSwgTG9jYWwwLCBBcmcwKQogICAgICAgICAgICAgICAgSWYgKEFW QkwpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRUNOVyAoMHhGRCwgQXJn MCkKICAgICAgICAgICAgICAgICAgICBFQ05XICgweEZFLCAoQXJnMCA+PiAweDA4KSkKICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChQU1JDLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKChBVkJMID09 IE9uZSkgJiYgKEFWQjIgPT0gT25lKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgQVZCMSA9IE9uZQogICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKENGTVosIDB4RkZG RikKICAgICAgICAgICAgICAgICAgICBFQ05SICgweEE0KQogICAgICAgICAgICAgICAgICAgIExv Y2FsMiA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAg ICBSZWxlYXNlIChDRk1aKQogICAgICAgICAgICAgICAgICAgIEFWQjEgPSBaZXJvCiAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChMb2NhbDIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICha ZXJvKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChC VUZGLCBCdWZmZXIgKDB4MjUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAweDAwICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogLiAqLwogICAgICAg ICAgICB9KQogICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRkYsIFplcm8sIERBVDApCiAg ICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGRiwgT25lLCBEQVQxKQogICAgICAgICAgICBD cmVhdGVCeXRlRmllbGQgKEJVRkYsIDB4MDIsIERBVDIpCiAgICAgICAgICAgIENyZWF0ZUJ5dGVG aWVsZCAoQlVGRiwgMHgwMywgREFUMykKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUZG LCAweDA0LCBEQVQ0KQogICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRkYsIDB4MDUsIERB VDUpCiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGRiwgMHgwNiwgREFUNikKICAgICAg ICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUZGLCAweDA3LCBEQVQ3KQogICAgICAgICAgICBDcmVh dGVCeXRlRmllbGQgKEJVRkYsIDB4MDgsIERBVDgpCiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVs ZCAoQlVGRiwgMHgwOSwgREFUOSkKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUZGLCAw eDBBLCBEQVRBKQogICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRkYsIDB4MEIsIERBVEIp CiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGRiwgMHgwQywgREFUQykKICAgICAgICAg ICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUZGLCAweDBELCBEQVREKQogICAgICAgICAgICBDcmVhdGVC eXRlRmllbGQgKEJVRkYsIDB4MEUsIERBVEUpCiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAo QlVGRiwgMHgwRiwgREFURikKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUZGLCAweDEw LCBEQVRHKQogICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRkYsIDB4MTEsIERBVEgpCiAg ICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGRiwgMHgxMiwgREFUSSkKICAgICAgICAgICAg Q3JlYXRlQnl0ZUZpZWxkIChCVUZGLCAweDEzLCBEQVRKKQogICAgICAgICAgICBDcmVhdGVCeXRl RmllbGQgKEJVRkYsIDB4MTQsIERBVEspCiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVG RiwgMHgxNSwgREFUTCkKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUZGLCAweDE2LCBE QVRNKQogICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRkYsIDB4MTcsIERBVE4pCiAgICAg ICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGRiwgMHgxOCwgREFUTykKICAgICAgICAgICAgQ3Jl YXRlQnl0ZUZpZWxkIChCVUZGLCAweDE5LCBEQVRQKQogICAgICAgICAgICBDcmVhdGVCeXRlRmll bGQgKEJVRkYsIDB4MUEsIERBVFEpCiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGRiwg MHgxQiwgREFUUikKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUZGLCAweDFDLCBEQVRT KQogICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRkYsIDB4MUQsIERBVFQpCiAgICAgICAg ICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGRiwgMHgxRSwgREFUVSkKICAgICAgICAgICAgQ3JlYXRl Qnl0ZUZpZWxkIChCVUZGLCAweDFGLCBEQVRWKQogICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQg KEJVRkYsIDB4MjAsIERBVFcpCiAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQlVGRiwgMHgy MSwgREFUWCkKICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUZGLCAweDIyLCBEQVRZKQog ICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRkYsIDB4MjMsIERBVFopCiAgICAgICAgICAg IENyZWF0ZUJ5dGVGaWVsZCAoQlVGRiwgMHgyNCwgUEVDRCkKICAgICAgICAgICAgTWV0aG9kIChN SFBGLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBCVUZG ID0gQXJnMAogICAgICAgICAgICAgICAgSWYgKCgoQVZCTCA9PSBPbmUpICYmIChBVkIyID09IE9u ZSkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFWQjEgPSBPbmUKICAg ICAgICAgICAgICAgICAgICBFQ05XICgweDYyLCBEQVQyKQogICAgICAgICAgICAgICAgICAgIEVD TlcgKDB4NjMsIERBVDMpCiAgICAgICAgICAgICAgICAgICAgRUNOVyAoMHg2NCwgREFUNCkKICAg ICAgICAgICAgICAgICAgICBFQ05XICgweDY1LCBEQVQ1KQogICAgICAgICAgICAgICAgICAgIEVD TlcgKDB4NjYsIERBVDYpCiAgICAgICAgICAgICAgICAgICAgRUNOVyAoMHg2NywgREFUNykKICAg ICAgICAgICAgICAgICAgICBFQ05XICgweDY4LCBEQVQ4KQogICAgICAgICAgICAgICAgICAgIEVD TlcgKDB4NjksIERBVDkpCiAgICAgICAgICAgICAgICAgICAgRUNOVyAoMHg2QSwgREFUQSkKICAg ICAgICAgICAgICAgICAgICBFQ05XICgweDZCLCBEQVRCKQogICAgICAgICAgICAgICAgICAgIEVD TlcgKDB4NkMsIERBVEMpCiAgICAgICAgICAgICAgICAgICAgRUNOVyAoMHg2RCwgREFURCkKICAg ICAgICAgICAgICAgICAgICBFQ05XICgweDZFLCBEQVRFKQogICAgICAgICAgICAgICAgICAgIEVD TlcgKDB4NkYsIERBVEYpCiAgICAgICAgICAgICAgICAgICAgRUNOVyAoMHg3MCwgREFURykKICAg ICAgICAgICAgICAgICAgICBFQ05XICgweDcxLCBEQVRIKQogICAgICAgICAgICAgICAgICAgIEVD TlcgKDB4NzIsIERBVEkpCiAgICAgICAgICAgICAgICAgICAgRUNOVyAoMHg3MywgREFUSikKICAg ICAgICAgICAgICAgICAgICBFQ05XICgweDc0LCBEQVRLKQogICAgICAgICAgICAgICAgICAgIEVD TlcgKDB4NzUsIERBVEwpCiAgICAgICAgICAgICAgICAgICAgRUNOVyAoMHg3NiwgREFUTSkKICAg ICAgICAgICAgICAgICAgICBFQ05XICgweDc3LCBEQVROKQogICAgICAgICAgICAgICAgICAgIEVD TlcgKDB4NzgsIERBVE8pCiAgICAgICAgICAgICAgICAgICAgRUNOVyAoMHg3OSwgREFUUCkKICAg ICAgICAgICAgICAgICAgICBFQ05XICgweDdBLCBEQVRRKQogICAgICAgICAgICAgICAgICAgIEVD TlcgKDB4N0IsIERBVFIpCiAgICAgICAgICAgICAgICAgICAgRUNOVyAoMHg3QywgREFUUykKICAg ICAgICAgICAgICAgICAgICBFQ05XICgweDdELCBEQVRUKQogICAgICAgICAgICAgICAgICAgIEVD TlcgKDB4N0UsIERBVFUpCiAgICAgICAgICAgICAgICAgICAgRUNOVyAoMHg3RiwgREFUVikKICAg ICAgICAgICAgICAgICAgICBFQ05XICgweDgwLCBEQVRXKQogICAgICAgICAgICAgICAgICAgIEVD TlcgKDB4ODEsIERBVFgpCiAgICAgICAgICAgICAgICAgICAgRUNOVyAoMHg4MiwgREFUWSkKICAg ICAgICAgICAgICAgICAgICBFQ05XICgweDgzLCBEQVRaKQogICAgICAgICAgICAgICAgICAgIEVD TlcgKDB4ODQsIFBFQ0QpCiAgICAgICAgICAgICAgICAgICAgRUNOVyAoMHg2MCwgREFUMCkKICAg ICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwQSkKICAgICAgICAgICAgICAgICAgICBBY3F1aXJl IChDRk1aLCAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgRUNOUiAoMHg2MCkKICAgICAgICAg ICAgICAgICAgICBEQVQwID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAg ICAgICAgICAgICAgIEVDTlIgKDB4NjEpCiAgICAgICAgICAgICAgICAgICAgREFUMSA9IEVDUjAg LyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICBFQ05SICgweDYy KQogICAgICAgICAgICAgICAgICAgIERBVDIgPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1Iw ICovCiAgICAgICAgICAgICAgICAgICAgRUNOUiAoMHg2MykKICAgICAgICAgICAgICAgICAgICBE QVQzID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAg IEVDTlIgKDB4NjQpCiAgICAgICAgICAgICAgICAgICAgREFUNCA9IEVDUjAgLyogXF9TQl8uSTJD MS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICBFQ05SICgweDY1KQogICAgICAgICAg ICAgICAgICAgIERBVDUgPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAg ICAgICAgICAgICAgRUNOUiAoMHg2NikKICAgICAgICAgICAgICAgICAgICBEQVQ2ID0gRUNSMCAv KiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgIEVDTlIgKDB4Njcp CiAgICAgICAgICAgICAgICAgICAgREFUNyA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAg Ki8KICAgICAgICAgICAgICAgICAgICBFQ05SICgweDY4KQogICAgICAgICAgICAgICAgICAgIERB VDggPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAg RUNOUiAoMHg2OSkKICAgICAgICAgICAgICAgICAgICBEQVQ5ID0gRUNSMCAvKiBcX1NCXy5JMkMx LkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgIEVDTlIgKDB4NkEpCiAgICAgICAgICAg ICAgICAgICAgREFUQSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAg ICAgICAgICAgICBFQ05SICgweDZCKQogICAgICAgICAgICAgICAgICAgIERBVEIgPSBFQ1IwIC8q IFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgRUNOUiAoMHg2QykK ICAgICAgICAgICAgICAgICAgICBEQVRDID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAq LwogICAgICAgICAgICAgICAgICAgIEVDTlIgKDB4NkQpCiAgICAgICAgICAgICAgICAgICAgREFU RCA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICBF Q05SICgweDZFKQogICAgICAgICAgICAgICAgICAgIERBVEUgPSBFQ1IwIC8qIFxfU0JfLkkyQzEu QkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgRUNOUiAoMHg2RikKICAgICAgICAgICAg ICAgICAgICBEQVRGID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAg ICAgICAgICAgIEVDTlIgKDB4NzApCiAgICAgICAgICAgICAgICAgICAgREFURyA9IEVDUjAgLyog XF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICBFQ05SICgweDcxKQog ICAgICAgICAgICAgICAgICAgIERBVEggPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICov CiAgICAgICAgICAgICAgICAgICAgRUNOUiAoMHg3MikKICAgICAgICAgICAgICAgICAgICBEQVRJ ID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgIEVD TlIgKDB4NzMpCiAgICAgICAgICAgICAgICAgICAgREFUSiA9IEVDUjAgLyogXF9TQl8uSTJDMS5C QVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICBFQ05SICgweDc0KQogICAgICAgICAgICAg ICAgICAgIERBVEsgPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAg ICAgICAgICAgRUNOUiAoMHg3NSkKICAgICAgICAgICAgICAgICAgICBEQVRMID0gRUNSMCAvKiBc X1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgIEVDTlIgKDB4NzYpCiAg ICAgICAgICAgICAgICAgICAgREFUTSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8K ICAgICAgICAgICAgICAgICAgICBFQ05SICgweDc3KQogICAgICAgICAgICAgICAgICAgIERBVE4g PSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgRUNO UiAoMHg3OCkKICAgICAgICAgICAgICAgICAgICBEQVRPID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJB VDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgIEVDTlIgKDB4NzkpCiAgICAgICAgICAgICAg ICAgICAgREFUUCA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAg ICAgICAgICBFQ05SICgweDdBKQogICAgICAgICAgICAgICAgICAgIERBVFEgPSBFQ1IwIC8qIFxf U0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgRUNOUiAoMHg3QikKICAg ICAgICAgICAgICAgICAgICBEQVRSID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwog ICAgICAgICAgICAgICAgICAgIEVDTlIgKDB4N0MpCiAgICAgICAgICAgICAgICAgICAgREFUUyA9 IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICBFQ05S ICgweDdEKQogICAgICAgICAgICAgICAgICAgIERBVFQgPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFU MC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgRUNOUiAoMHg3RSkKICAgICAgICAgICAgICAg ICAgICBEQVRVID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAg ICAgICAgIEVDTlIgKDB4N0YpCiAgICAgICAgICAgICAgICAgICAgREFUViA9IEVDUjAgLyogXF9T Ql8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICBFQ05SICgweDgwKQogICAg ICAgICAgICAgICAgICAgIERBVFcgPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAg ICAgICAgICAgICAgICAgICAgRUNOUiAoMHg4MSkKICAgICAgICAgICAgICAgICAgICBEQVRYID0g RUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgIEVDTlIg KDB4ODIpCiAgICAgICAgICAgICAgICAgICAgREFUWSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQw LkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICBFQ05SICgweDgzKQogICAgICAgICAgICAgICAg ICAgIERBVFogPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAg ICAgICAgRUNOUiAoMHg4NCkKICAgICAgICAgICAgICAgICAgICBQRUNEID0gRUNSMCAvKiBcX1NC Xy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKENGTVopCiAg ICAgICAgICAgICAgICAgICAgQVZCMSA9IFplcm8KICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEJVRkYpIC8qIFxfU0JfLkkyQzEuQkFUMC5CVUZGICovCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgUmV0dXJuIChCVUZGKSAvKiBcX1NCXy5JMkMxLkJBVDAuQlVGRiAqLwogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKE1ISUYsIDEsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKFJFVEIsIEJ1ZmZlciAoMHgwQSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIC4gKi8KICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICBJZiAoKChBVkJMID09IE9uZSkgJiYgKEFWQjIgPT0gT25lKSkpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQVZCMSA9IE9uZQogICAgICAgICAgICAg ICAgICAgIEFjcXVpcmUgKENGTVosIDB4RkZGRikKICAgICAgICAgICAgICAgICAgICBFQ0JSICgw eDgzLCAweDg2KQogICAgICAgICAgICAgICAgICAgIFJFVEIgW1plcm9dID0gRUNSMCAvKiBcX1NC Xy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4ODcp CiAgICAgICAgICAgICAgICAgICAgUkVUQiBbT25lXSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQw LkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAweDg4KQogICAgICAgICAg ICAgICAgICAgIFJFVEIgWzB4MDJdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwog ICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4ODkpCiAgICAgICAgICAgICAgICAgICAg UkVUQiBbMHgwM10gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAg ICAgICAgICAgRUNCUiAoMHg4MywgMHg4QSkKICAgICAgICAgICAgICAgICAgICBSRVRCIFsweDA0 XSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICBF Q0JSICgweDgzLCAweDhCKQogICAgICAgICAgICAgICAgICAgIFJFVEIgWzB4MDVdID0gRUNSMCAv KiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMs IDB4OEMpCiAgICAgICAgICAgICAgICAgICAgUkVUQiBbMHgwNl0gPSBFQ1IwIC8qIFxfU0JfLkky QzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgRUNCUiAoMHg4MywgMHg4RCkKICAg ICAgICAgICAgICAgICAgICBSRVRCIFsweDA3XSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVD UjAgKi8KICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAweDhFKQogICAgICAgICAgICAg ICAgICAgIFJFVEIgWzB4MDhdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAg ICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4OEYpCiAgICAgICAgICAgICAgICAgICAgUkVU QiBbMHgwOV0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAg ICAgICAgUmVsZWFzZSAoQ0ZNWikKICAgICAgICAgICAgICAgICAgICBBVkIxID0gWmVybwogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoUkVUQikgLyogXF9TQl8uSTJDMS5CQVQwLk1ISUYuUkVU QiAqLwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFJldHVybiAoUkVUQikgLyog XF9TQl8uSTJDMS5CQVQwLk1ISUYuUkVUQiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBO YW1lIChTQklGLCBaZXJvKQogICAgICAgICAgICBOYW1lIChUV1JCLCBCdWZmZXIgKDB4MDEwMCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiAuICovCiAgICAgICAgICAgIH0pCiAgICAgICAgICAg IE1ldGhvZCAoU0JJRywgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgQVZCMSA9IE9uZQogICAgICAgICAgICAgICAgSWYgKCgoQVZCTCA9PSBPbmUpICYmIChBVkIy ID09IE9uZSkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IFplcm8KICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChDRk1aLCAweEZGRkYpCiAgICAgICAg ICAgICAgICAgICAgSWYgKChTQklGID09IFplcm8pKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKCgweDAxMDAgIT0gTG9jYWwwKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRUNCUiAoMHg4Mywg TG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgVFdSQiBbTG9jYWwwXSA9IEVDUjAg LyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMCArPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgU0JJRiA9IE9uZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBFQ0JS ICgweDgzLCBaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICBUV1JCIFtaZXJvXSA9IEVDUjAg LyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgVFdSQiBb MHgxMF0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAg ICAgICAgIFRXUkIgWzB4MjBdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAg ICAgICAgICAgICAgICAgICAgICBUV1JCIFsweDMwXSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQw LkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgVFdSQiBbMHg0MF0gPSBFQ1IwIC8qIFxf U0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgICAgIFRXUkIgWzB4NTBd ID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgICAg ICBUV1JCIFsweDYwXSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAg ICAgICAgICAgICAgICAgVFdSQiBbMHg3MF0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1Iw ICovCiAgICAgICAgICAgICAgICAgICAgICAgIFRXUkIgWzB4ODBdID0gRUNSMCAvKiBcX1NCXy5J MkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgICAgICBUV1JCIFsweDkwXSA9IEVD UjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgVFdS QiBbMHhBMF0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAg ICAgICAgICAgIFRXUkIgWzB4QjBdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwog ICAgICAgICAgICAgICAgICAgICAgICBUV1JCIFsweEMwXSA9IEVDUjAgLyogXF9TQl8uSTJDMS5C QVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgVFdSQiBbMHhEMF0gPSBFQ1IwIC8q IFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgICAgIFRXUkIgWzB4 RTBdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAg ICAgICBUV1JCIFsweEYwXSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAg ICAgICAgICAgICAgICAgICAgRUNCUiAoMHg4MywgT25lKQogICAgICAgICAgICAgICAgICAgICAg ICBUV1JCIFtPbmVdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAg ICAgICAgICAgICAgICBUV1JCIFsweDExXSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgVFdSQiBbMHgyMV0gPSBFQ1IwIC8qIFxfU0JfLkky QzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgICAgIFRXUkIgWzB4MzFdID0gRUNS MCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgICAgICBUV1JC IFsweDQxXSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAg ICAgICAgICAgVFdSQiBbMHg1MV0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAg ICAgICAgICAgICAgICAgICAgICAgIFRXUkIgWzB4NjFdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJB VDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgICAgICBUV1JCIFsweDcxXSA9IEVDUjAgLyog XF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgVFdSQiBbMHg4 MV0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAg ICAgIFRXUkIgWzB4OTFdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAg ICAgICAgICAgICAgICAgICBUV1JCIFsweEExXSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVD UjAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgVFdSQiBbMHhCMV0gPSBFQ1IwIC8qIFxfU0Jf LkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgICAgIFRXUkIgWzB4QzFdID0g RUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgICAgICBU V1JCIFsweEQxXSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAg ICAgICAgICAgICAgVFdSQiBbMHhFMV0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICov CiAgICAgICAgICAgICAgICAgICAgICAgIFRXUkIgWzB4RjFdID0gRUNSMCAvKiBcX1NCXy5JMkMx LkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAweDEyKQog ICAgICAgICAgICAgICAgICAgICAgICBUV1JCIFsweDEyXSA9IEVDUjAgLyogXF9TQl8uSTJDMS5C QVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgRUNCUiAoMHg4MywgMHgxMykKICAg ICAgICAgICAgICAgICAgICAgICAgVFdSQiBbMHgxM10gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFU MC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4MTQpCiAgICAg ICAgICAgICAgICAgICAgICAgIFRXUkIgWzB4MTRdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAu RUNSMCAqLwogICAgICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAweDE1KQogICAgICAg ICAgICAgICAgICAgICAgICBUV1JCIFsweDE1XSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVD UjAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgRUNCUiAoMHg4MywgMHgxNikKICAgICAgICAg ICAgICAgICAgICAgICAgVFdSQiBbMHgxNl0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1Iw ICovCiAgICAgICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4MTcpCiAgICAgICAgICAg ICAgICAgICAgICAgIFRXUkIgWzB4MTddID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAq LwogICAgICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAweDE4KQogICAgICAgICAgICAg ICAgICAgICAgICBUV1JCIFsweDE4XSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8K ICAgICAgICAgICAgICAgICAgICAgICAgRUNCUiAoMHg4MywgMHgxOSkKICAgICAgICAgICAgICAg ICAgICAgICAgVFdSQiBbMHgxOV0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAg ICAgICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4MUEpCiAgICAgICAgICAgICAgICAg ICAgICAgIFRXUkIgWzB4MUFdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAg ICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAweDFCKQogICAgICAgICAgICAgICAgICAg ICAgICBUV1JCIFsweDFCXSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAg ICAgICAgICAgICAgICAgICAgRUNCUiAoMHg4MywgMHgxQykKICAgICAgICAgICAgICAgICAgICAg ICAgVFdSQiBbMHgxQ10gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAg ICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4MUMpCiAgICAgICAgICAgICAgICAgICAgICAg IFRXUkIgWzB4MUNdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAg ICAgICAgICAgICAgICBFQ0JSICgweDgzLCAweDFFKQogICAgICAgICAgICAgICAgICAgICAgICBU V1JCIFsweDFFXSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAg ICAgICAgICAgICAgRUNCUiAoMHg4MywgMHgxRikKICAgICAgICAgICAgICAgICAgICAgICAgVFdS QiBbMHgxRl0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAg ICAgICAgICAgIEVDQlIgKDB4ODMsIDB4MjIpCiAgICAgICAgICAgICAgICAgICAgICAgIFRXUkIg WzB4MjJdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAg ICAgICAgICBFQ0JSICgweDgzLCAweDIzKQogICAgICAgICAgICAgICAgICAgICAgICBUV1JCIFsw eDIzXSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAg ICAgICAgRUNCUiAoMHg4MywgMHgyNCkKICAgICAgICAgICAgICAgICAgICAgICAgVFdSQiBbMHgy NF0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAg ICAgIEVDQlIgKDB4ODMsIDB4MjUpCiAgICAgICAgICAgICAgICAgICAgICAgIFRXUkIgWzB4MjVd ID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgICAg ICBFQ0JSICgweDgzLCAweDI2KQogICAgICAgICAgICAgICAgICAgICAgICBUV1JCIFsweDI2XSA9 IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICAgICAg RUNCUiAoMHg4MywgMHgyNykKICAgICAgICAgICAgICAgICAgICAgICAgVFdSQiBbMHgyN10gPSBF Q1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgICAgIEVD QlIgKDB4ODMsIDB4MjgpCiAgICAgICAgICAgICAgICAgICAgICAgIFRXUkIgWzB4MjhdID0gRUNS MCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgICAgICBFQ0JS ICgweDgzLCAweDI5KQogICAgICAgICAgICAgICAgICAgICAgICBUV1JCIFsweDI5XSA9IEVDUjAg LyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgRUNCUiAo MHg4MywgMHgyQSkKICAgICAgICAgICAgICAgICAgICAgICAgVFdSQiBbMHgyQV0gPSBFQ1IwIC8q IFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4 ODMsIDB4MkIpCiAgICAgICAgICAgICAgICAgICAgICAgIFRXUkIgWzB4MkJdID0gRUNSMCAvKiBc X1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgz LCAweDJDKQogICAgICAgICAgICAgICAgICAgICAgICBUV1JCIFsweDJDXSA9IEVDUjAgLyogXF9T Ql8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgRUNCUiAoMHg4Mywg MHgyRCkKICAgICAgICAgICAgICAgICAgICAgICAgVFdSQiBbMHgyRF0gPSBFQ1IwIC8qIFxfU0Jf LkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4 MkUpCiAgICAgICAgICAgICAgICAgICAgICAgIFRXUkIgWzB4MkVdID0gRUNSMCAvKiBcX1NCXy5J MkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAweDJG KQogICAgICAgICAgICAgICAgICAgICAgICBUV1JCIFsweDJGXSA9IEVDUjAgLyogXF9TQl8uSTJD MS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgRUNCUiAoMHg4MywgMHgzQykK ICAgICAgICAgICAgICAgICAgICAgICAgVFdSQiBbMHgzQ10gPSBFQ1IwIC8qIFxfU0JfLkkyQzEu QkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4M0QpCiAg ICAgICAgICAgICAgICAgICAgICAgIFRXUkIgWzB4M0RdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJB VDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAweDg2KQogICAg ICAgICAgICAgICAgICAgICAgICBUV1JCIFsweDg2XSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQw LkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgRUNCUiAoMHg4MywgMHg4NykKICAgICAg ICAgICAgICAgICAgICAgICAgVFdSQiBbMHg4N10gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5F Q1IwICovCiAgICAgICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4ODgpCiAgICAgICAg ICAgICAgICAgICAgICAgIFRXUkIgWzB4ODhdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNS MCAqLwogICAgICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAweDg5KQogICAgICAgICAg ICAgICAgICAgICAgICBUV1JCIFsweDg5XSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgRUNCUiAoMHg4MywgMHg5MikKICAgICAgICAgICAg ICAgICAgICAgICAgVFdSQiBbMHg5Ml0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICov CiAgICAgICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4OTMpCiAgICAgICAgICAgICAg ICAgICAgICAgIFRXUkIgWzB4OTNdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwog ICAgICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAweDk0KQogICAgICAgICAgICAgICAg ICAgICAgICBUV1JCIFsweDk0XSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAg ICAgICAgICAgICAgICAgICAgICAgRUNCUiAoMHg4MywgMHg5NSkKICAgICAgICAgICAgICAgICAg ICAgICAgVFdSQiBbMHg5NV0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAg ICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4OTYpCiAgICAgICAgICAgICAgICAgICAg ICAgIFRXUkIgWzB4OTZdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAg ICAgICAgICAgICAgICAgICBFQ0JSICgweDgzLCAweDk3KQogICAgICAgICAgICAgICAgICAgICAg ICBUV1JCIFsweDk3XSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAg ICAgICAgICAgICAgICAgRUNCUiAoMHg4MywgMHg5OCkKICAgICAgICAgICAgICAgICAgICAgICAg VFdSQiBbMHg5OF0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAg ICAgICAgICAgICAgIEVDQlIgKDB4ODMsIDB4OTkpCiAgICAgICAgICAgICAgICAgICAgICAgIFRX UkIgWzB4OTldID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoQ0ZNWikKICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICBBVkIxID0gWmVybwogICAgICAgICAgICAgICAgUmV0dXJu IChUV1JCKSAvKiBcX1NCXy5JMkMxLkJBVDAuVFdSQiAqLwogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKEVWRU4sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIEFWQjEgPSBPbmUKICAgICAgICAgICAgICAgIElmICgoKEFWQkwgPT0gT25lKSAm JiAoQVZCMiA9PSBPbmUpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBB Y3F1aXJlIChDRk1aLCAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgRVZFUiAoKQogICAgICAg ICAgICAgICAgICAgIExvY2FsMCA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAg ICAgICAgICAgICAgICAgICBSZWxlYXNlIChDRk1aKQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIExvY2Fs MCA9IFplcm8KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBBVkIxID0gWmVybwog ICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoTUhDRiwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgQVZCMSA9IE9uZQogICAgICAgICAgICAgICAgSWYgKCgoQVZCTCA9PSBPbmUpICYmIChB VkIyID09IE9uZSkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFjcXVp cmUgKENGTVosIDB4RkZGRikKICAgICAgICAgICAgICAgICAgICBFQ05XICgweDhGLCBBcmcwKQog ICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKENGTVopCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgQVZCMSA9IFplcm8KICAgICAgICAgICAgfQoKICAgICAgICAgICAgT3BlcmF0 aW9uUmVnaW9uIChDT01QLCBTeXN0ZW1NZW1vcnksIDB4Qjk5NUJDOTgsIDB4MDIwMCkKICAgICAg ICAgICAgRmllbGQgKENPTVAsIEFueUFjYywgTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIFJTVjAsICAgMzIsIAogICAgICAgICAgICAgICAgQk9JRCwgICA4LCAK ICAgICAgICAgICAgICAgIENQRkIsICAgOCwgCiAgICAgICAgICAgICAgICBQQlRJLCAgIDgsIAog ICAgICAgICAgICAgICAgQlJMViwgICA4LCAKICAgICAgICAgICAgICAgIENBVlIsICAgOCwgCiAg ICAgICAgICAgICAgICBUSk1BLCAgIDE2LCAKICAgICAgICAgICAgICAgIENPUkUsICAgOCwgCiAg ICAgICAgICAgICAgICBDRzEyLCAgIDgsIAogICAgICAgICAgICAgICAgQ0cxMywgICA4LCAKICAg ICAgICAgICAgICAgIENHMTQsICAgOCwgCiAgICAgICAgICAgICAgICBDRzE1LCAgIDgsIAogICAg ICAgICAgICAgICAgQ0cxNiwgICA4LCAKICAgICAgICAgICAgICAgIENHMTcsICAgOCwgCiAgICAg ICAgICAgICAgICBDRzE4LCAgIDgsIAogICAgICAgICAgICAgICAgQ0cxOSwgICA4LCAKICAgICAg ICAgICAgICAgIENHMjAsICAgOCwgCiAgICAgICAgICAgICAgICBDRzIxLCAgIDgsIAogICAgICAg ICAgICAgICAgQ0cyMiwgICA4LCAKICAgICAgICAgICAgICAgIENHMjMsICAgOCwgCiAgICAgICAg ICAgICAgICBDRzI0LCAgIDgsIAogICAgICAgICAgICAgICAgQ0cyNSwgICA4LCAKICAgICAgICAg ICAgICAgIENHMjYsICAgOCwgCiAgICAgICAgICAgICAgICBDRzI3LCAgIDgsIAogICAgICAgICAg ICAgICAgQ0cyOCwgICA4LCAKICAgICAgICAgICAgICAgIENHMjksICAgOCwgCiAgICAgICAgICAg ICAgICBDRzMwLCAgIDgsIAogICAgICAgICAgICAgICAgQ0czMSwgICA4LCAKICAgICAgICAgICAg ICAgIFNGTk8sICAgMTYsIAogICAgICAgICAgICAgICAgU1REVCwgICAxNiwgCiAgICAgICAgICAg ICAgICBCRkRULCAgIDEwMjQsIAogICAgICAgICAgICAgICAgUlNWMSwgICA3MzYsIAogICAgICAg ICAgICAgICAgSURGRCwgICAxMDI0LCAKICAgICAgICAgICAgICAgIFJTVjIsICAgMTAyNAogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKENNRkMsIDQsIFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9UX0MsIFplcm8pICAvLyBfVF94OiBFbWl0 dGVkIGJ5IEFTTCBDb21waWxlcgogICAgICAgICAgICAgICAgTmFtZSAoX1RfQiwgWmVybykgIC8v IF9UX3g6IEVtaXR0ZWQgYnkgQVNMIENvbXBpbGVyCiAgICAgICAgICAgICAgICBOYW1lIChfVF9B LCBaZXJvKSAgLy8gX1RfeDogRW1pdHRlZCBieSBBU0wgQ29tcGlsZXIKICAgICAgICAgICAgICAg IE5hbWUgKF9UXzksIFplcm8pICAvLyBfVF94OiBFbWl0dGVkIGJ5IEFTTCBDb21waWxlcgogICAg ICAgICAgICAgICAgTmFtZSAoX1RfOCwgWmVybykgIC8vIF9UX3g6IEVtaXR0ZWQgYnkgQVNMIENv bXBpbGVyCiAgICAgICAgICAgICAgICBOYW1lIChfVF83LCBaZXJvKSAgLy8gX1RfeDogRW1pdHRl ZCBieSBBU0wgQ29tcGlsZXIKICAgICAgICAgICAgICAgIE5hbWUgKF9UXzYsIFplcm8pICAvLyBf VF94OiBFbWl0dGVkIGJ5IEFTTCBDb21waWxlcgogICAgICAgICAgICAgICAgTmFtZSAoX1RfNSwg WmVybykgIC8vIF9UX3g6IEVtaXR0ZWQgYnkgQVNMIENvbXBpbGVyCiAgICAgICAgICAgICAgICBO YW1lIChfVF80LCBaZXJvKSAgLy8gX1RfeDogRW1pdHRlZCBieSBBU0wgQ29tcGlsZXIKICAgICAg ICAgICAgICAgIE5hbWUgKF9UXzMsIFplcm8pICAvLyBfVF94OiBFbWl0dGVkIGJ5IEFTTCBDb21w aWxlcgogICAgICAgICAgICAgICAgTmFtZSAoX1RfMiwgWmVybykgIC8vIF9UX3g6IEVtaXR0ZWQg YnkgQVNMIENvbXBpbGVyCiAgICAgICAgICAgICAgICBOYW1lIChfVF8xLCBaZXJvKSAgLy8gX1Rf eDogRW1pdHRlZCBieSBBU0wgQ29tcGlsZXIKICAgICAgICAgICAgICAgIE5hbWUgKF9UXzAsIFpl cm8pICAvLyBfVF94OiBFbWl0dGVkIGJ5IEFTTCBDb21waWxlcgogICAgICAgICAgICAgICAgTG9j YWwwID0gQnVmZmVyICgweDgyKSB7fQogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChM b2NhbDAsIFplcm8sIFJUU1QpCiAgICAgICAgICAgICAgICBDcmVhdGVGaWVsZCAoTG9jYWwwLCAw eDEwLCAweDA0MDAsIFJURFQpCiAgICAgICAgICAgICAgICBXaGlsZSAoT25lKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIF9UXzAgPSBUb0ludGVnZXIgKEFyZzApCiAgICAg ICAgICAgICAgICAgICAgSWYgKChfVF8wID09IDB4MTApKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUlRTVCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAg ICBSVERUID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSAw eDE0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEFQTUMg PSAweDc4CiAgICAgICAgICAgICAgICAgICAgICAgIFJURFQgPSBaZXJvCiAgICAgICAgICAgICAg ICAgICAgICAgIFJUU1QgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2Nh bDApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9U XzAgPT0gMHgyMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBXaGlsZSAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBfVF8xID0gVG9JbnRlZ2VyIChBcmcxKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChfVF8xID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQTUMgPSAweDc5CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUlREVCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSVFNUID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChM b2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUlRTVCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSVERUID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo TG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSAweDIzKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJUU1QgPSBPbmUKICAgICAg ICAgICAgICAgICAgICAgICAgUlREVCA9IDB4MDYKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVs c2VJZiAoKF9UXzAgPT0gMHgyNykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBXaGlsZSAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBfVF8yID0gVG9JbnRlZ2VyIChBcmcxKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKChfVF8yID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChB cmcyLCBaZXJvLCBFQ1NUKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5 dGVGaWVsZCAoQXJnMiwgT25lLCBNT0RFKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IENyZWF0ZUJ5dGVGaWVsZCAoQXJnMiwgMHgwMiwgQ01MTikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEFyZzIsIDB4MDMsIEVDQ00pCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmcyLCAweDA0LCBFQ0QwKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMiwgMHgw NSwgRUNEMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQg KEFyZzIsIDB4MDYsIEVDRDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRl Qnl0ZUZpZWxkIChBcmcyLCAweDA3LCBFQ0QzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENyZWF0ZUZpZWxkIChFQ1JELCAweDA4LCAweDM4LCBCVUZGKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNURFQgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQkZEVCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFQ1JXIChFQ0NN LCBFQ0QwLCBFQ0QxLCBFQ0QyLCBFQ0QzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEJGRFQgPSBCVUZGIC8qIFxfU0JfLkkyQzEuQkFUMC5DTUZDLkJVRkYgKi8KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTVERUID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUlRTVCA9IFNURFQgLyogXF9TQl8uSTJDMS5CQVQwLlNURFQgKi8KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSVERUID0gQkZEVCAvKiBcX1NCXy5JMkMxLkJBVDAuQkZEVCAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlm ICgoX1RfMiA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTVERUID0gWmVybwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEJGRFQgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkZE VCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNURFQgPSBPbmUKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSVFNUID0gU1REVCAvKiBcX1NCXy5JMkMxLkJBVDAu U1REVCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJURFQgPSBCRkRUIC8qIFxf U0JfLkkyQzEuQkFUMC5CRkRUICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUlRTVCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSVERUID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSAweDgwKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxlIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9U XzMgPSBUb0ludGVnZXIgKEFyZzEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKF9U XzMgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBY3F1aXJlIChDRk1aLCAweEZGRkYpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTUZDQyAoMHg0NywgMHg4MikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSVFNUID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlREVCA9 IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChDRk1aKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1Rf MyA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBY3F1aXJlIChDRk1aLCAweEZGRkYpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTUZDQyAoMHg0NywgMHg4MykKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSVFNUID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlREVCA9 IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChDRk1aKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1Rf MyA9PSAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBY3F1aXJlIChDRk1aLCAweEZGRkYpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTUZDQyAoMHg0NywgMHg4OCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSVFNUID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlREVCA9 IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChDRk1aKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1Rf MyA9PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBY3F1aXJlIChDRk1aLCAweEZGRkYpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTUZDQyAoMHg0NywgMHg4MCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSVFNUID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlREVCA9 IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChDRk1aKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1Rf MyA9PSAweDA1KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBY3F1aXJlIChDRk1aLCAweEZGRkYpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTUZDQyAoMHg0NywgMHg4NSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSVFNUID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlREVCA9 IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChDRk1aKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJU U1QgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlREVCA9IFplcm8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhawogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIEVsc2VJZiAoKF9UXzAgPT0gMHg4MSkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBXaGlsZSAoT25lKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfVF80ID0gVG9JbnRlZ2VyIChBcmcxKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChfVF80ID09IE9uZSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAo Q0ZNWiwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1GQ0MgKDB4NTks IDB4OUEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRTVCA9IE9uZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJURFQgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmVsZWFzZSAoQ0ZNWikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzQgPT0gMHgwMikpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAo Q0ZNWiwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1GQ0MgKDB4NTks IDB4OUIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRTVCA9IE9uZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJURFQgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmVsZWFzZSAoQ0ZNWikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzQgPT0gMHgwMykpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAo Q0ZNWiwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1GQ1IgKDB4ODAs IDB4QTQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRTVCA9IE9uZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IChFQ1IwID4+IDB4MDcpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUlREVCA9IExvY2FsMQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJlbGVhc2UgKENGTVopCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRTVCA9IFplcm8KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSVERUID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMCA9PSAw eDgyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxl IChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF9UXzUgPSBUb0ludGVnZXIgKEFyZzEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKF9UXzUgPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChDRk1aLCAweEZGRkYpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRUNWUiAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJUU1QgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgWzB4 MDJdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMCBbMHgwM10gPSBFQ1IxIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1Ix ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwIFsweDA0XSA9IEVDUjIg LyogXF9TQl8uSTJDMS5CQVQwLkVDUjIgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDAgWzB4MDVdID0gRUNSMyAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMyAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKENGTVopCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF81ID09IDB4MDIpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFjcXVpcmUgKENGTVosIDB4RkZGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBFQ0JSICgweDgyLCAweEYwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs MCBbMHgwMl0gPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRUNCUiAoMHg4MiwgMHhGMSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDAgWzB4MDNdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAq LwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODIsIDB4RjIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwIFsweDA0XSA9IEVDUjAgLyogXF9TQl8u STJDMS5CQVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFQ0JSICgw eDgyLCAweEYzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCBbMHgwNV0g PSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRUNCUiAoMHg4MiwgMHhGNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDAgWzB4MDZdID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEVDQlIgKDB4ODIsIDB4RjUpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwwIFsweDA3XSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQw LkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDgyLCAweEY2 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCBbMHgwOF0gPSBFQ1IwIC8q IFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RUNCUiAoMHg4MiwgMHhGNykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAg WzB4MDldID0gRUNSMCAvKiBcX1NCXy5JMkMxLkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJUU1QgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZWxlYXNlIChDRk1aKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo TG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJUU1QgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUlREVCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzAgPT0gMHg4MykpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoT25lKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfVF82ID0g VG9JbnRlZ2VyIChBcmcxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChfVF82ID09 IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQWNxdWlyZSAoQ0ZNWiwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1GQ0MgKDB4NDUsIDB4QkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUlRTVCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJURFQgPSBaZXJv CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoQ0ZNWikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzYgPT0g MHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQWNxdWlyZSAoQ0ZNWiwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1GQ1QgKDB4NTksIDB4ODEsIFRvSW50ZWdlciAoQXJnMikpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUlRTVCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJURFQgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFz ZSAoQ0ZNWikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVsc2VJZiAoKF9UXzYgPT0gMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAoQ0ZNWiwgMHhGRkZGKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1GQ0MgKDB4NDUsIDB4RUUpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUlRTVCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJURFQgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFz ZSAoQ0ZNWikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVsc2VJZiAoKF9UXzYgPT0gMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAoQ0ZNWiwgMHhGRkZGKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1GQ0MgKDB4NTksIDB4ODIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUlRTVCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJURFQgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFz ZSAoQ0ZNWikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSVFNUID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJU RFQgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4ODQpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKE9uZSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgX1RfNyA9IFRvSW50ZWdl ciAoQXJnMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoX1RfNyA9PSBPbmUpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFjcXVpcmUgKENGTVosIDB4RkZGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBFQ05SICgweEMwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUU1QgPSBPbmUK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVERUID0gRUNSMCAvKiBcX1NCXy5JMkMx LkJBVDAuRUNSMCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKENG TVopCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNl SWYgKChfVF83ID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKENGTVosIDB4RkZGRikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBFQ05SICgweENCKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExvY2FsNSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAgKi8KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBFQ05SICgweENBKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsNiA9IChFQ1IwIHwgKExvY2FsNSA8PCAweDA4KSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSVFNUID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUlREVCA9IExvY2FsNgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl bGVhc2UgKENGTVopCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2Nh bDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlSWYgKChfVF83ID09IDB4MDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKENGTVosIDB4RkZGRikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFQ05SICgweEZDKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IEVDUjAgLyogXF9TQl8uSTJDMS5CQVQwLkVDUjAg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFQ05SICgweEZCKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMiA9IChFQ1IwIHwgKExvY2FsMSA8PCAweDA4KSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFNUID0gT25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUlREVCA9IExvY2FsMgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJlbGVhc2UgKENGTVopCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFbHNlSWYgKChfVF83ID09IDB4MDQpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKENGTVos IDB4RkZGRikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFQ05SICgweEMzKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMyA9IEVDUjAgLyogXF9TQl8uSTJDMS5C QVQwLkVDUjAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFQ05SICgweEMyKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsNCA9IChFQ1IwIHwgKExvY2FsMyA8 PCAweDA4KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFNUID0gT25lCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUlREVCA9IExvY2FsNAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJlbGVhc2UgKENGTVopCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRTVCA9IFplcm8KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSVERUID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfMCA9 PSAweDg1KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFdo aWxlIChPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF9UXzggPSBUb0ludGVnZXIgKEFyZzEpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoKF9UXzggPT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChDRk1aLCAweEZGRkYpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTUZDQyAoMHg0NSwgMHhFMCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSVFNUID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUlREVCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChD Rk1aKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxz ZUlmICgoX1RfOCA9PSAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChDRk1aLCAweEZGRkYpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTUZDQyAoMHg0NSwgMHhFMSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSVFNUID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUlREVCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChD Rk1aKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJUU1QgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlREVCA9 IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBC cmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzAgPT0gMHg4NikpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBQODBIID0gMHg4Njg2CiAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoXl5eR1BPMC5BVkJMID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoXl5eR1BPMC5EUFJTID09IFpl cm8pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJUU1QgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVERU ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUlRTVCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJURFQg PSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIFJUU1QgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAg IFJURFQgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4 ODcpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUg KE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgX1RfOSA9IFRvSW50ZWdlciAoQXJnMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm ICgoX1RfOSA9PSBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKENGTVosIDB4RkZGRikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFQ0JSICgweDg3LCAweDI3KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJURFQgPSBFQ1IwIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1IwICovCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRTVCA9IE9uZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJlbGVhc2UgKENGTVopCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF85ID09IDB4MDIpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoXl5e R1BPMi5BVkJMID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKF5eXkdQTzIuTElESSA9PSBPbmUp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSVFNUID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSVERUID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSVFNUID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSVERUID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUU1QgPSBaZXJvCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJURFQgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSVFNUID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJU RFQgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4ODgpKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKE9uZSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgX1RfQSA9IFRvSW50ZWdl ciAoQXJnMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoX1RfQSA9PSBPbmUpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJUU1QgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVERUID0gIns3 M2UwYzYzZC04ZmI5LTQxZDEtOTc0MS1lMTMyM2U4MzBiMGN9IgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfQSA9PSAweDAyKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSVFNUID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlREVCA9IFplcm8K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSVFNUID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJURFQgPSBaZXJv CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsK ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICBFbHNlSWYgKChfVF8wID09IDB4ODkpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKE9uZSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgX1RfQiA9IFRvSW50ZWdlciAoQXJnMSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoX1RfQiA9PSBPbmUpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUU1Qg PSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVERUID0gIkVMTEFDT05GSUci CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYg KChfVF9CID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJUU1QgPSBPbmUKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSVERUID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJUU1QgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUlREVCA9IFplcm8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBCcmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKF9UXzAgPT0gMHg4QSkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoT25lKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfVF9D ID0gVG9JbnRlZ2VyIChBcmcxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChfVF9D ID09IE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUlRTVCA9IE9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJURFQgPSAweDAyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2Nh bDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlSWYgKChfVF9DID09IDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUU1QgPSBPbmUKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSVERUID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfQyA9PSAweDAzKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFNU ID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlREVCA9IE9uZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoX1RfQyA9 PSAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSVFNUID0gT25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UlREVCA9IDB4MDcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2Fs MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSVFNUID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJURFQgPSBaZXJvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2Nh bDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgQnJlYWsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBSVFNUID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBSVERU ID0gWmVybwogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIEJyZWFrCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQikKICAgIHsKICAg ICAgICBEZXZpY2UgKEFEUDEpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCAiQUNQ STAwMDMiIC8qIFBvd2VyIFNvdXJjZSBEZXZpY2UgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRAog ICAgICAgICAgICBNZXRob2QgKF9QU1IsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFNSOiBQb3dl ciBTb3VyY2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTG9jYWwwID0gXl5JMkMxLkJB VDAuUFNSQyAoKQogICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgJiYgMHg4MCkpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAg ICAgICAgICBNZXRob2QgKF9QQ0wsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUENMOiBQb3dlciBD b25zdW1lciBMaXN0CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoX1NCKSAv KiBcX1NCXyAqLwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIFNjb3BlIChfU0Iu STJDMS5CQVQwKQogICAgewogICAgICAgIE11dGV4IChDRk1YLCAweDAwKQogICAgICAgIE5hbWUg KEVDUkQsIEJ1ZmZlciAoMHgwQSkKICAgICAgICB7CiAgICAgICAgICAgIC8qIDAwMDAgKi8gIDB4 MDAsIDB4MDYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4u LiAqLwogICAgICAgICAgICAvKiAwMDA4ICovICAweDAwLCAweDAwICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogLi4gKi8KICAgICAgICB9KQogICAgICAgIENyZWF0ZUJ5 dGVGaWVsZCAoRUNSRCwgWmVybywgRVJTVCkKICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEVDUkQs IE9uZSwgRVJMTikKICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEVDUkQsIDB4MDIsIEVDUjApCiAg ICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChFQ1JELCAweDAzLCBFQ1IxKQogICAgICAgIENyZWF0ZUJ5 dGVGaWVsZCAoRUNSRCwgMHgwNCwgRUNSMikKICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEVDUkQs IDB4MDUsIEVDUjMpCiAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChFQ1JELCAweDA2LCBFQ1I0KQog ICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoRUNSRCwgMHgwNywgRUNSNSkKICAgICAgICBOYW1lIChF Q1dSLCBCdWZmZXIgKDB4MEEpCiAgICAgICAgewogICAgICAgICAgICAvKiAwMDAwICovICAweDAw LCAweDA1LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgLyogLi4uLi4uLi4g Ki8KICAgICAgICAgICAgLyogMDAwOCAqLyAgMHgwMCwgMHgwMCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIC4uICovCiAgICAgICAgfSkKICAgICAgICBDcmVhdGVCeXRl RmllbGQgKEVDV1IsIFplcm8sIEVDU1QpCiAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChFQ1dSLCBP bmUsIEVDTE4pCiAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChFQ1dSLCAweDAyLCBFQ0QwKQogICAg ICAgIENyZWF0ZUJ5dGVGaWVsZCAoRUNXUiwgMHgwMywgRUNEMSkKICAgICAgICBDcmVhdGVCeXRl RmllbGQgKEVDV1IsIDB4MDQsIEVDRDIpCiAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChFQ1dSLCAw eDA1LCBFQ0QzKQogICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoRUNXUiwgMHgwNiwgRUNENCkKICAg ICAgICBNZXRob2QgKEVDMDAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAg ICBFQ0QwID0gWmVybwogICAgICAgICAgICBFQ0QxID0gWmVybwogICAgICAgICAgICBFQ0QyID0g WmVybwogICAgICAgICAgICBFQ0QzID0gWmVybwogICAgICAgICAgICBFQ0Q0ID0gWmVybwogICAg ICAgICAgICBFQ1IwID0gWmVybwogICAgICAgICAgICBFQ1IxID0gWmVybwogICAgICAgICAgICBF Q1IyID0gWmVybwogICAgICAgICAgICBFQ1IzID0gWmVybwogICAgICAgICAgICBFQ1I0ID0gWmVy bwogICAgICAgICAgICBFQ1I1ID0gWmVybwogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChFQ05S LCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQWNxdWlyZSAoQ0ZNWCwg MHhGRkZGKQogICAgICAgICAgICBFQzAwICgpCiAgICAgICAgICAgIEVDRDAgPSAweDgwCiAgICAg ICAgICAgIEVDRDEgPSBBcmcwCiAgICAgICAgICAgIEVDV1IgPSBJMkNXID0gRUNXUiAvKiBcX1NC Xy5JMkMxLkJBVDAuRUNXUiAqLwogICAgICAgICAgICBJZiAoKEVDU1QgPT0gWmVybykpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIEVDUkQgPSBJMkNSIC8qIFxfU0JfLkkyQzEuSTJDUiAq LwogICAgICAgICAgICB9CgogICAgICAgICAgICBSZWxlYXNlIChDRk1YKQogICAgICAgICAgICBT bGVlcCAoMHgwMikKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoRUNOVywgMiwgTm90U2VyaWFs aXplZCkKICAgICAgICB7CiAgICAgICAgICAgIEFWQjEgPSBPbmUKICAgICAgICAgICAgQWNxdWly ZSAoQ0ZNWCwgMHhGRkZGKQogICAgICAgICAgICBFQzAwICgpCiAgICAgICAgICAgIEVDRDAgPSAw eDgxCiAgICAgICAgICAgIEVDRDEgPSBBcmcwCiAgICAgICAgICAgIEVDRDIgPSBBcmcxCiAgICAg ICAgICAgIEVDV1IgPSBJMkNXID0gRUNXUiAvKiBcX1NCXy5JMkMxLkJBVDAuRUNXUiAqLwogICAg ICAgICAgICBBVkIxID0gWmVybwogICAgICAgICAgICBSZWxlYXNlIChDRk1YKQogICAgICAgIH0K CiAgICAgICAgTWV0aG9kIChFQ0JSLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAg ICAgICAgQWNxdWlyZSAoQ0ZNWCwgMHhGRkZGKQogICAgICAgICAgICBFQzAwICgpCiAgICAgICAg ICAgIEVDRDAgPSAweEIzCiAgICAgICAgICAgIEVDRDEgPSBBcmcwCiAgICAgICAgICAgIEVDRDIg PSBBcmcxCiAgICAgICAgICAgIEVDV1IgPSBJMkNXID0gRUNXUiAvKiBcX1NCXy5JMkMxLkJBVDAu RUNXUiAqLwogICAgICAgICAgICBJZiAoKEVDU1QgPT0gWmVybykpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIEVDUkQgPSBJMkNSIC8qIFxfU0JfLkkyQzEuSTJDUiAqLwogICAgICAgICAg ICB9CgogICAgICAgICAgICBSZWxlYXNlIChDRk1YKQogICAgICAgICAgICBTbGVlcCAoMHgwMikK ICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoRUNCVywgMywgTm90U2VyaWFsaXplZCkKICAgICAg ICB7CiAgICAgICAgICAgIEFjcXVpcmUgKENGTVgsIDB4RkZGRikKICAgICAgICAgICAgRUMwMCAo KQogICAgICAgICAgICBFQ0QwID0gMHhCMgogICAgICAgICAgICBFQ0QxID0gQXJnMAogICAgICAg ICAgICBFQ0QyID0gQXJnMQogICAgICAgICAgICBFQ0QzID0gQXJnMgogICAgICAgICAgICBFQ1dS ID0gSTJDVyA9IEVDV1IgLyogXF9TQl8uSTJDMS5CQVQwLkVDV1IgKi8KICAgICAgICAgICAgUmVs ZWFzZSAoQ0ZNWCkKICAgICAgICAgICAgU2xlZXAgKDB4MDIpCiAgICAgICAgfQoKICAgICAgICBN ZXRob2QgKEVWRVIsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBBY3F1 aXJlIChDRk1YLCAweEZGRkYpCiAgICAgICAgICAgIEVDMDAgKCkKICAgICAgICAgICAgRUNEMCA9 IDB4ODQKICAgICAgICAgICAgRUNXUiA9IEkyQ1cgPSBFQ1dSIC8qIFxfU0JfLkkyQzEuQkFUMC5F Q1dSICovCiAgICAgICAgICAgIElmICgoRUNTVCA9PSBaZXJvKSkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgRUNSRCA9IEkyQ1IgLyogXF9TQl8uSTJDMS5JMkNSICovCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIFJlbGVhc2UgKENGTVgpCiAgICAgICAgICAgIFNsZWVwICgweDAyKQog ICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChFQ1ZSLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg IHsKICAgICAgICAgICAgQWNxdWlyZSAoQ0ZNWCwgMHhGRkZGKQogICAgICAgICAgICBFQzAwICgp CiAgICAgICAgICAgIEVDRDAgPSAweDUxCiAgICAgICAgICAgIEVDV1IgPSBJMkNXID0gRUNXUiAv KiBcX1NCXy5JMkMxLkJBVDAuRUNXUiAqLwogICAgICAgICAgICBJZiAoKEVDU1QgPT0gWmVybykp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEVDUkQgPSBJMkNSIC8qIFxfU0JfLkkyQzEu STJDUiAqLwogICAgICAgICAgICB9CgogICAgICAgICAgICBSZWxlYXNlIChDRk1YKQogICAgICAg ICAgICBTbGVlcCAoMHgwMikKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoTUZDQywgMiwgTm90 U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIEFjcXVpcmUgKENGTVgsIDB4RkZGRikK ICAgICAgICAgICAgRUMwMCAoKQogICAgICAgICAgICBFQ0QwID0gQXJnMAogICAgICAgICAgICBF Q0QxID0gQXJnMQogICAgICAgICAgICBFQ1dSID0gSTJDVyA9IEVDV1IgLyogXF9TQl8uSTJDMS5C QVQwLkVDV1IgKi8KICAgICAgICAgICAgUmVsZWFzZSAoQ0ZNWCkKICAgICAgICAgICAgU2xlZXAg KDB4MDIpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKE1GQ1IsIDIsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgewogICAgICAgICAgICBBY3F1aXJlIChDRk1YLCAweEZGRkYpCiAgICAgICAgICAg IEVDMDAgKCkKICAgICAgICAgICAgRUNEMCA9IEFyZzAKICAgICAgICAgICAgRUNEMSA9IEFyZzEK ICAgICAgICAgICAgRUNXUiA9IEkyQ1cgPSBFQ1dSIC8qIFxfU0JfLkkyQzEuQkFUMC5FQ1dSICov CiAgICAgICAgICAgIElmICgoRUNTVCA9PSBaZXJvKSkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgRUNSRCA9IEkyQ1IgLyogXF9TQl8uSTJDMS5JMkNSICovCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIFJlbGVhc2UgKENGTVgpCiAgICAgICAgICAgIFNsZWVwICgweDAyKQogICAgICAg IH0KCiAgICAgICAgTWV0aG9kIChNRkNULCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAg ICAgICAgICAgQWNxdWlyZSAoQ0ZNWCwgMHhGRkZGKQogICAgICAgICAgICBFQzAwICgpCiAgICAg ICAgICAgIEVDRDAgPSBBcmcwCiAgICAgICAgICAgIEVDRDEgPSBBcmcxCiAgICAgICAgICAgIEVD RDIgPSBBcmcyCiAgICAgICAgICAgIEVDV1IgPSBJMkNXID0gRUNXUiAvKiBcX1NCXy5JMkMxLkJB VDAuRUNXUiAqLwogICAgICAgICAgICBSZWxlYXNlIChDRk1YKQogICAgICAgICAgICBTbGVlcCAo MHgwMikKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoRUNSVywgNSwgTm90U2VyaWFsaXplZCkK ICAgICAgICB7CiAgICAgICAgICAgIEFjcXVpcmUgKENGTVgsIDB4RkZGRikKICAgICAgICAgICAg RUMwMCAoKQogICAgICAgICAgICBFQ0QwID0gQXJnMAogICAgICAgICAgICBFQ0QxID0gQXJnMQog ICAgICAgICAgICBFQ0QyID0gQXJnMgogICAgICAgICAgICBFQ0QzID0gQXJnMwogICAgICAgICAg ICBFQ0Q0ID0gQXJnNAogICAgICAgICAgICBFQ1dSID0gSTJDVyA9IEVDV1IgLyogXF9TQl8uSTJD MS5CQVQwLkVDV1IgKi8KICAgICAgICAgICAgSWYgKChFQ1NUID09IFplcm8pKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBFQ1JEID0gSTJDUiAvKiBcX1NCXy5JMkMxLkkyQ1IgKi8KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgUmVsZWFzZSAoQ0ZNWCkKICAgICAgICB9CgogICAgICAg IE5hbWUgKExFRFMsIFplcm8pCiAgICAgICAgTmFtZSAoTEVEUiwgT25lKQogICAgICAgIE1ldGhv ZCAoTEVEQywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIElmICgoTEVE UiAhPSBMRURTKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTEVEUyA9IExFRFIgLyog XF9TQl8uSTJDMS5CQVQwLkxFRFIgKi8KICAgICAgICAgICAgICAgIElmICgoTEVEUyA9PSBaZXJv KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBFQ05XICgweDAzLCBaZXJv KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIEVDTlcgKDB4MDMsIE9uZSkKICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuIChMRURTKSAvKiBcX1NCXy5JMkMxLkJB VDAuTEVEUyAqLwogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoX1NCKQogICAgewogICAgICAg IERldmljZSAoTElEMCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAo IlBOUDBDMEQiKSAvKiBMaWQgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQKICAgICAg ICAgICAgTWV0aG9kIChfTElELCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX0xJRDogTGlkIFN0YXR1 cwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKF5eR1BPMi5BVkJMID09IE9uZSkp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCheXkdQTzIuTElESSA9 PSBPbmUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChPbmUpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVy bykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJv KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9Q U1csIDEsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFNXOiBQb3dlciBTdGF0ZSBXYWtlCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoX1NCKQogICAg ewogICAgICAgIERldmljZSAoTFdNSSkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQs ICJQTlAwQzE0IiAvKiBXaW5kb3dzIE1hbmFnZW1lbnQgSW5zdHJ1bWVudGF0aW9uIERldmljZSAq LykgIC8vIF9ISUQ6IEhhcmR3YXJlIElECiAgICAgICAgICAgIE5hbWUgKF9VSUQsIFplcm8pICAv LyBfVUlEOiBVbmlxdWUgSUQKICAgICAgICAgICAgTmFtZSAoX0RFUCwgUGFja2FnZSAoMHgwMSkg IC8vIF9ERVA6IERlcGVuZGVuY2llcwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBHUE8w CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE5hbWUgKF9XREcsIEJ1ZmZlciAoMHg1MCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgMHgwRiwgMHgzMiwgMHg2NCwg MHg1OSwgMHhENywgMHhBMSwgMHg0QiwgMHg0MCwgIC8qIC4yZFkuLktAICovCiAgICAgICAgICAg ICAgICAvKiAwMDA4ICovICAweEExLCAweDMxLCAweDFFLCAweDVDLCAweEZFLCAweDQ2LCAweEZB LCAweDQ3LCAgLyogLjEuXC5GLkcgKi8KICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gIDB4NDEs IDB4NDEsIDB4MDEsIDB4MDAsIDB4N0UsIDB4MDQsIDB4QTEsIDB4QkUsICAvKiBBQS4ufi4uLiAq LwogICAgICAgICAgICAgICAgLyogMDAxOCAqLyAgMHg4NiwgMHg3RSwgMHhFQywgMHg0OSwgMHhB NiwgMHg4QiwgMHg4MCwgMHhCNiwgIC8qIC5+LkkuLi4uICovCiAgICAgICAgICAgICAgICAvKiAw MDIwICovICAweEU3LCAweDU2LCAweDc4LCAweDVFLCAweDQyLCAweDQyLCAweDAxLCAweDAyLCAg LyogLlZ4XkJCLi4gKi8KICAgICAgICAgICAgICAgIC8qIDAwMjggKi8gIDB4NDYsIDB4NzEsIDB4 M0MsIDB4RjEsIDB4RjMsIDB4Q0MsIDB4MkQsIDB4NDYsICAvKiBGcTwuLi4tRiAqLwogICAgICAg ICAgICAgICAgLyogMDAzMCAqLyAgMHhBQiwgMHhCOSwgMHgxNSwgMHgwMiwgMHgzOCwgMHhCRSwg MHgwMywgMHhCNSwgIC8qIC4uLi44Li4uICovCiAgICAgICAgICAgICAgICAvKiAwMDM4ICovICAw eEEwLCAweDAwLCAweDAxLCAweDA4LCAweDIxLCAweDEyLCAweDkwLCAweDA1LCAgLyogLi4uLiEu Li4gKi8KICAgICAgICAgICAgICAgIC8qIDAwNDAgKi8gIDB4NjYsIDB4RDUsIDB4RDEsIDB4MTEs IDB4QjIsIDB4RjAsIDB4MDAsIDB4QTAsICAvKiBmLi4uLi4uLiAqLwogICAgICAgICAgICAgICAg LyogMDA0OCAqLyAgMHhDOSwgMHgwNiwgMHgyOSwgMHgxMCwgMHg0RCwgMHg0RiwgMHgwMSwgMHgw MCAgIC8qIC4uKS5NTy4uICovCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoV1FB QSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKChB cmcwID09IFplcm8pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVy biAoUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICJaSUpJMSIKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKFdNQkIsIDMsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBaZXJvKSkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gT25lKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoXl5HUE8wLkFWQkwg PT0gT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKCheXkdQTzAuRFBSUyA9PSBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MTEpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChfV0VELCAxLCBOb3RTZXJpYWxpemVkKSAgLy8gX1d4eDogV2FrZSBFdmVudAog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoKF5eR1BPMC5BVkJMID09IE9uZSkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKCheXkdQTzAuRFBSUyA9PSBa ZXJvKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHgxMSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDEw KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKFdRTU8sIEJ1 ZmZlciAoMHgwNDI2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvKiAwMDAwICovICAw eDQ2LCAweDRGLCAweDRELCAweDQyLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAgLyogRk9NQi4u Li4gKi8KICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gIDB4MTYsIDB4MDQsIDB4MDAsIDB4MDAs IDB4REMsIDB4MEYsIDB4MDAsIDB4MDAsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAg LyogMDAxMCAqLyAgMHg0NCwgMHg1MywgMHgwMCwgMHgwMSwgMHgxQSwgMHg3RCwgMHhEQSwgMHg1 NCwgIC8qIERTLi4ufS5UICovCiAgICAgICAgICAgICAgICAvKiAwMDE4ICovICAweDI4LCAweERF LCAweDg3LCAweDAwLCAweDAxLCAweDA2LCAweDE4LCAweDQyLCAgLyogKC4uLi4uLkIgKi8KICAg ICAgICAgICAgICAgIC8qIDAwMjAgKi8gIDB4MTAsIDB4MDksIDB4MTAsIDB4MjIsIDB4MjEsIDB4 MDQsIDB4MTIsIDB4MDEsICAvKiAuLi4iIS4uLiAqLwogICAgICAgICAgICAgICAgLyogMDAyOCAq LyAgMHhBMSwgMHhDOCwgMHgyQywgMHgwQywgMHg4NiwgMHgxMCwgMHgzOCwgMHgyRSwgIC8qIC4u LC4uLjguICovCiAgICAgICAgICAgICAgICAvKiAwMDMwICovICAweDg0LCAweDFDLCAweDQwLCAw eDQ4LCAweDFDLCAweDE0LCAweDRBLCAweDA4LCAgLyogLi5ASC4uSi4gKi8KICAgICAgICAgICAg ICAgIC8qIDAwMzggKi8gIDB4ODQsIDB4RkEsIDB4MTMsIDB4QzgsIDB4QUYsIDB4MDAsIDB4ODQs IDB4MEUsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgLyogMDA0MCAqLyAgMHgwNSwg MHhDOCwgMHgxNCwgMHg2MCwgMHg1MCwgMHg4MCwgMHg1MywgMHgwNCwgIC8qIC4uLmBQLlMuICov CiAgICAgICAgICAgICAgICAvKiAwMDQ4ICovICAweDExLCAweEY0LCAweDJBLCAweEMwLCAweEE2 LCAweDAwLCAweDkzLCAweDAyLCAgLyogLi4qLi4uLi4gKi8KICAgICAgICAgICAgICAgIC8qIDAw NTAgKi8gIDB4MkMsIDB4MEEsIDB4RDAsIDB4MkUsIDB4QzAsIDB4QjIsIDB4MDAsIDB4REQsICAv KiAsLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgLyogMDA1OCAqLyAgMHgwMiwgMHhBNCwgMHhD MywgMHgxMiwgMHg5MSwgMHhFMCwgMHgyOCwgMHgzMSwgIC8qIC4uLi4uLigxICovCiAgICAgICAg ICAgICAgICAvKiAwMDYwICovICAweEUwLCAweDI4LCAweDlELCAweEQ4LCAweEMyLCAweDBELCAw eDFCLCAweEJDLCAgLyogLiguLi4uLi4gKi8KICAgICAgICAgICAgICAgIC8qIDAwNjggKi8gIDB4 NTAsIDB4MTQsIDB4Q0QsIDB4MjAsIDB4NEEsIDB4ODIsIDB4Q0EsIDB4MDUsICAvKiBQLi4gSi4u LiAqLwogICAgICAgICAgICAgICAgLyogMDA3MCAqLyAgMHhGOCwgMHg0NiwgMHgxMCwgMHg3OCwg MHhCOSwgMHgwMiwgMHgyNCwgMHg0RiwgIC8qIC5GLnguLiRPICovCiAgICAgICAgICAgICAgICAv KiAwMDc4ICovICAweDQwLCAweDlBLCAweDA1LCAweDE4LCAweDE2LCAweDYwLCAweDVELCAweDgw LCAgLyogQC4uLi5gXS4gKi8KICAgICAgICAgICAgICAgIC8qIDAwODAgKi8gIDB4RUMsIDB4MjEs IDB4NTAsIDB4QTksIDB4NDMsIDB4NDAsIDB4QzksIDB4MTksICAvKiAuIVAuQ0AuLiAqLwogICAg ICAgICAgICAgICAgLyogMDA4OCAqLyAgMHgwMiwgMHg2QSwgMHgwMCwgMHhBRCwgMHg0RSwgMHg0 MCwgMHhGOCwgMHg5NSwgIC8qIC5qLi5OQC4uICovCiAgICAgICAgICAgICAgICAvKiAwMDkwICov ICAweDRFLCAweDA5LCAweDQ5LCAweDEwLCAweENFLCAweDU4LCAweEM1LCAweEUzLCAgLyogTi5J Li5YLi4gKi8KICAgICAgICAgICAgICAgIC8qIDAwOTggKi8gIDB4NkIsIDB4MTYsIDB4NEQsIDB4 Q0YsIDB4NDksIDB4Q0UsIDB4MzEsIDB4RTQsICAvKiBrLk0uSS4xLiAqLwogICAgICAgICAgICAg ICAgLyogMDBBMCAqLyAgMHg3OCwgMHg1QywgMHhFOCwgMHg0MSwgMHg3MCwgMHg2OSwgMHgyQiwg MHgyNiwgIC8qIHhcLkFwaSsmICovCiAgICAgICAgICAgICAgICAvKiAwMEE4ICovICAweDA0LCAw eEE1LCAweDBGLCAweDU5LCAweDYyLCAweDYwLCAweDUwLCAweDFBLCAgLyogLi4uWWJgUC4gKi8K ICAgICAgICAgICAgICAgIC8qIDAwQjAgKi8gIDB4QzYsIDB4NDIsIDB4NUQsIDB4OEMsIDB4MUEs IDB4MzUsIDB4NTIsIDB4MzYsICAvKiAuQl0uLjVSNiAqLwogICAgICAgICAgICAgICAgLyogMDBC OCAqLyAgMHgyMCwgMHg0MywgMHg5NCwgMHgwNCwgMHg4NywgMHgxQSwgMHhCNSwgMHgyNSwgIC8q ICBDLi4uLi4lICovCiAgICAgICAgICAgICAgICAvKiAwMEMwICovICAweDBBLCAweDMwLCAweDNG LCAweDBFLCAweENELCAweEFFLCAweEVELCAweEIxLCAgLyogLjA/Li4uLi4gKi8KICAgICAgICAg ICAgICAgIC8qIDAwQzggKi8gIDB4MTAsIDB4NDgsIDB4MjYsIDB4NkQsIDB4MjgsIDB4MjgsIDB4 MjksIDB4MTAsICAvKiAuSCZtKCgpLiAqLwogICAgICAgICAgICAgICAgLyogMDBEMCAqLyAgMHgx QSwgMHhEQiwgMHg5OSwgMHg3QSwgMHg0NiwgMHgxMSwgMHg4RiwgMHhENCwgIC8qIC4uLnpGLi4u ICovCiAgICAgICAgICAgICAgICAvKiAwMEQ4ICovICAweDMwLCAweDA5LCAweDNDLCAweDBBLCAw eDg2LCAweEM2LCAweDA5LCAweDhBLCAgLyogMC48Li4uLi4gKi8KICAgICAgICAgICAgICAgIC8q IDAwRTAgKi8gIDB4MUQsIDB4M0QsIDB4N0EsIDB4MTgsIDB4NTEsIDB4MEYsIDB4RjAsIDB4MjQs ICAvKiAuPXouUS4uJCAqLwogICAgICAgICAgICAgICAgLyogMDBFOCAqLyAgMHg0RSwgMHhEMSwg MHhDMiwgMHhDNywgMHgyNywgMHg4QywgMHhBMCwgMHg4NywgIC8qIE4uLi4nLi4uICovCiAgICAg ICAgICAgICAgICAvKiAwMEYwICovICAweDkyLCAweEUwLCAweDY0LCAweENGLCAweEZCLCAweDVD LCAweEEyLCAweDQ1LCAgLyogLi5kLi5cLkUgKi8KICAgICAgICAgICAgICAgIC8qIDAwRjggKi8g IDB4MjgsIDB4MDgsIDB4NDksIDB4ODMsIDB4OEYsIDB4NzEsIDB4MDQsIDB4NkQsICAvKiAoLkku LnEubSAqLwogICAgICAgICAgICAgICAgLyogMDEwMCAqLyAgMHgwRCwgMHg1OCwgMHgxMywgMHgz NSwgMHg1NCwgMHhBNCwgMHhDMCwgMHg5MSwgIC8qIC5YLjVULi4uICovCiAgICAgICAgICAgICAg ICAvKiAwMTA4ICovICAweENFLCAweDI0LCAweDYyLCAweEU0LCAweDEwLCAweDA5LCAweDhDLCAw eDlCLCAgLyogLiRiLi4uLi4gKi8KICAgICAgICAgICAgICAgIC8qIDAxMTAgKi8gIDB4RTAsIDB4 RkYsIDB4N0YsIDB4MTgsIDB4NUMsIDB4MDYsIDB4ODQsIDB4M0MsICAvKiAuLi4uXC4uPCAqLwog ICAgICAgICAgICAgICAgLyogMDExOCAqLyAgMHg4RSwgMHg1RiwgMHhDMywgMHgzOSwgMHg4Riwg MHgwNCwgMHg3NiwgMHgyRiwgIC8qIC5fLjkuLnYvICovCiAgICAgICAgICAgICAgICAvKiAwMTIw ICovICAweEMwLCAweDlBLCAweDAwLCAweDczLCAweDAyLCAweEI0LCAweDBELCAweDRFLCAgLyog Li4ucy4uLk4gKi8KICAgICAgICAgICAgICAgIC8qIDAxMjggKi8gIDB4Q0UsIDB4MDQsIDB4Mjgs IDB4MTMsIDB4MjAsIDB4NEMsIDB4ODAsIDB4QzYsICAvKiAuLiguIEwuLiAqLwogICAgICAgICAg ICAgICAgLyogMDEzMCAqLyAgMHgyOSwgMHhFOCwgMHgwRSwgMHhEMCwgMHgxOCwgMHg5RSwgMHhC QywgMHhBMSwgIC8qICkuLi4uLi4uICovCiAgICAgICAgICAgICAgICAvKiAwMTM4ICovICAweDA4 LCAweDJCLCAweDUyLCAweDg4LCAweDBBLCAweEExLCAweDI4LCAweDYyLCAgLyogLitSLi4uKGIg Ki8KICAgICAgICAgICAgICAgIC8qIDAxNDAgKi8gIDB4ODgsIDB4MjgsIDB4MjEsIDB4REUsIDB4 MDEsIDB4NDIsIDB4MUYsIDB4NTEsICAvKiAuKCEuLkIuUSAqLwogICAgICAgICAgICAgICAgLyog MDE0OCAqLyAgMHhENCwgMHgyMCwgMHhFMSwgMHhBMiwgMHgwNywgMHgwOSwgMHgxNywgMHgyNCwg IC8qIC4gLi4uLi4kICovCiAgICAgICAgICAgICAgICAvKiAwMTUwICovICAweDZFLCAweEZCLCAw eEE3LCAweDAwLCAweDc2LCAweDc4LCAweDQwLCAweDhGLCAgLyogbi4uLnZ4QC4gKi8KICAgICAg ICAgICAgICAgIC8qIDAxNTggKi8gIDB4RTcsIDB4QTAsIDB4NEUsIDB4RjAsIDB4OTAsIDB4ODIs IDB4OUMsIDB4NTcsICAvKiAuLk4uLi4uVyAqLwogICAgICAgICAgICAgICAgLyogMDE2MCAqLyAg MHgwMiwgMHg0RiwgMHhGNiwgMHhEMCwgMHgxRSwgMHgxNSwgMHhDRSwgMHhFMiwgIC8qIC5PLi4u Li4uICovCiAgICAgICAgICAgICAgICAvKiAwMTY4ICovICAweEM1LCAweEUwLCAweDM4LCAweDND LCAweDlELCAweDA0LCAweDhFLCAweEE0LCAgLyogLi44PC4uLi4gKi8KICAgICAgICAgICAgICAg IC8qIDAxNzAgKi8gIDB4MDAsIDB4QTIsIDB4MDUsIDB4MTAsIDB4QzMsIDB4QTMsIDB4OEUsIDB4 MEEsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgLyogMDE3OCAqLyAgMHgzRSwgMHgx MSwgMHg3OCwgMHg2OCwgMHg0NywgMHhFOSwgMHgyOSwgMHgxQSwgIC8qID4ueGhHLikuICovCiAg ICAgICAgICAgICAgICAvKiAwMTgwICovICAweEU0LCAweDEwLCAweDhFLCAweEUwLCAweDAxLCAw eEUyLCAweDUxLCAweEMwLCAgLyogLi4uLi4uUS4gKi8KICAgICAgICAgICAgICAgIC8qIDAxODgg Ki8gIDB4NjMsIDB4NjAsIDB4NzcsIDB4MDQsIDB4OUYsIDB4MkMsIDB4N0MsIDB4MzYsICAvKiBj YHcuLix8NiAqLwogICAgICAgICAgICAgICAgLyogMDE5MCAqLyAgMHhDMCwgMHhCQiwgMHgwNiwg MHhENCwgMHhBNSwgMHhFMCwgMHg5MSwgMHg4MCwgIC8qIC4uLi4uLi4uICovCiAgICAgICAgICAg ICAgICAvKiAwMTk4ICovICAweDRELCAweDM5LCAweDFDLCAweDY2LCAweEJDLCAweDNFLCAweDND LCAweDg0LCAgLyogTTkuZi4+PC4gKi8KICAgICAgICAgICAgICAgIC8qIDAxQTAgKi8gIDB4M0Is IDB4ODEsIDB4RjMsIDB4M0UsIDB4MTIsIDB4MDYsIDB4NzEsIDB4NDQsICAvKiA7Li4+Li5xRCAq LwogICAgICAgICAgICAgICAgLyogMDFBOCAqLyAgMHgwNywgMHg4NywgMHgxRCwgMHhFNiwgMHhD OSwgMHgxQywgMHhEOSwgMHhEQiwgIC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgICAgICAvKiAw MUIwICovICAweDQ0LCAweEIzLCAweEY3LCAweDA4LCAweDQyLCAweDcwLCAweDNDLCAweEJFLCAg LyogRC4uLkJwPC4gKi8KICAgICAgICAgICAgICAgIC8qIDAxQjggKi8gIDB4NDIsIDB4MzAsIDB4 Q0YsIDB4OTAsIDB4NDQsIDB4RkUsIDB4MjAsIDB4NTAsICAvKiBCMC4uRC4gUCAqLwogICAgICAg ICAgICAgICAgLyogMDFDMCAqLyAgMHgyMywgMHgzMywgMHhCNCwgMHgwNywgMHg3QywgMHg1QSwg MHhFRiwgMHgwNSwgIC8qICMzLi58Wi4uICovCiAgICAgICAgICAgICAgICAvKiAwMUM4ICovICAw eDNFLCAweDQ5LCAweDk4LCAweEMwLCAweDQ3LCAweDA0LCAweDZGLCAweDUyLCAgLyogPkkuLkcu b1IgKi8KICAgICAgICAgICAgICAgIC8qIDAxRDAgKi8gIDB4RTMsIDB4MDEsIDB4MDIsIDB4OEEs IDB4OEYsIDB4MUQsIDB4NjQsIDB4RkEsICAvKiAuLi4uLi5kLiAqLwogICAgICAgICAgICAgICAg LyogMDFEOCAqLyAgMHg5RSwgMHhBRiwgMHgwOSwgMHg4NiwgMHgxRiwgMHgzOCwgMHgxQSwgMHhE QSwgIC8qIC4uLi4uOC4uICovCiAgICAgICAgICAgICAgICAvKiAwMUUwICovICAweEY3LCAweDA3 LCAweEE2LCAweDFBLCAweDUyLCAweDIzLCAweDMyLCAweEMxLCAgLyogLi4uLlIjMi4gKi8KICAg ICAgICAgICAgICAgIC8qIDAxRTggKi8gIDB4QTgsIDB4RTcsIDB4MTQsIDB4MkEsIDB4NkEsIDB4 REMsIDB4RjQsIDB4NDAsICAvKiAuLi4qai4uQCAqLwogICAgICAgICAgICAgICAgLyogMDFGMCAq LyAgMHhDMSwgMHhGRiwgMHhGRiwgMHg2NywgMHg4OSwgMHhGNywgMHgwQSwgMHhERiwgIC8qIC4u LmcuLi4uICovCiAgICAgICAgICAgICAgICAvKiAwMUY4ICovICAweDEyLCAweERFLCAweDFBLCAw eEQ4LCAweDUwLCAweENFLCAweEM4LCAweEZGLCAgLyogLi4uLlAuLi4gKi8KICAgICAgICAgICAg ICAgIC8qIDAyMDAgKi8gIDB4MTUsIDB4OEYsIDB4MEMsIDB4RkUsIDB4ODEsIDB4MDQsIDB4Nzcs IDB4QUEsICAvKiAuLi4uLi53LiAqLwogICAgICAgICAgICAgICAgLyogMDIwOCAqLyAgMHg4MCwg MHgwQiwgMHg2RSwgMHhCMCwgMHhENywgMHgwQywgMHhDRiwgMHhEOCwgIC8qIC4ubi4uLi4uICov CiAgICAgICAgICAgICAgICAvKiAwMjEwICovICAweDAzLCAweDc4LCAweEFBLCAweEYwLCAweEI0 LCAweDcwLCAweDQwLCAweDJGLCAgLyogLnguLi5wQC8gKi8KICAgICAgICAgICAgICAgIC8qIDAy MTggKi8gIDB4MUUsIDB4NkMsIDB4RTIsIDB4M0UsIDB4MEQsIDB4ODAsIDB4NEYsIDB4REUsICAv KiAubC4+Li5PLiAqLwogICAgICAgICAgICAgICAgLyogMDIyMCAqLyAgMHg4OSwgMHgwNiwgMHgx NCwgMHhFOCwgMHgwRiwgMHgxQywgMHhCOCwgMHhBMSwgIC8qIC4uLi4uLi4uICovCiAgICAgICAg ICAgICAgICAvKiAwMjI4ICovICAweEYyLCAweDIzLCAweDBELCAweDMwLCAweDE5LCAweDAxLCAw eDhGLCAweEY3LCAgLyogLiMuMC4uLi4gKi8KICAgICAgICAgICAgICAgIC8qIDAyMzAgKi8gIDB4 QjQsIDB4MzAsIDB4ODEsIDB4QzQsIDB4QUYsIDB4NUYsIDB4QTIsIDB4MUUsICAvKiAuMC4uLl8u LiAqLwogICAgICAgICAgICAgICAgLyogMDIzOCAqLyAgMHgwMiwgMHgxNCwgMHhDNiwgMHhBNywg MHgxNywgMHhFMCwgMHgzRCwgMHhCNiwgIC8qIC4uLi4uLj0uICovCiAgICAgICAgICAgICAgICAv KiAwMjQwICovICAweDA3LCAweDAzLCAweEIwLCAweEZDLCAweEZGLCAweDRGLCAweDJGLCAweEUw LCAgLyogLi4uLi5PLy4gKi8KICAgICAgICAgICAgICAgIC8qIDAyNDggKi8gIDB4QjgsIDB4MTcs IDB4MTgsIDB4QjksIDB4NjgsIDB4MUMsIDB4MUQsIDB4MTgsICAvKiAuLi4uaC4uLiAqLwogICAg ICAgICAgICAgICAgLyogMDI1MCAqLyAgMHhEOCwgMHhGMSwgMHgwNSwgMHhGNiwgMHhBRCwgMHhF NSwgMHhFOCwgMHhERiwgIC8qIC4uLi4uLi4uICovCiAgICAgICAgICAgICAgICAvKiAwMjU4ICov ICAweDVBLCAweDdDLCAweDcxLCAweEYxLCAweDdELCAweDI1LCAweENDLCAweDM5LCAgLyogWnxx Ln0lLjkgKi8KICAgICAgICAgICAgICAgIC8qIDAyNjAgKi8gIDB4QzQsIDB4RjAsIDB4RTEsIDB4 RTksIDB4QTUsIDB4RTUsIDB4RjEsIDB4QzUsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAg ICAgLyogMDI2OCAqLyAgMHhENywgMHg5NCwgMHgzMCwgMHg0NywgMHhGMywgMHhGOCwgMHg2Miwg MHhBMCwgIC8qIC4uMEcuLmIuICovCiAgICAgICAgICAgICAgICAvKiAwMjcwICovICAweDUwLCAw eDJGLCAweDMwLCAweEM2LCAweDg4LCAweDFBLCAweDI0LCAweDRFLCAgLyogUC8wLi4uJE4gKi8K ICAgICAgICAgICAgICAgIC8qIDAyNzggKi8gIDB4QjAsIDB4QTAsIDB4MEYsIDB4MzAsIDB4NDEs IDB4NjIsIDB4NDQsIDB4MEEsICAvKiAuLi4wQWJELiAqLwogICAgICAgICAgICAgICAgLyogMDI4 MCAqLyAgMHgxMiwgMHhFNywgMHhGMSwgMHgwNSwgMHhDQywgMHhDMSwgMHg4RSwgMHgwMywgIC8q IC4uLi4uLi4uICovCiAgICAgICAgICAgICAgICAvKiAwMjg4ICovICAweDNBLCAweDZCLCAweEY4 LCAweEY4LCAweDAyLCAweEYwLCAweDQzLCAweDIwLCAgLyogOmsuLi4uQyAgKi8KICAgICAgICAg ICAgICAgIC8qIDAyOTAgKi8gIDB4ODQsIDB4RkUsIDB4RkYsIDB4MDcsIDB4MTAsIDB4QjAsIDB4 Q0QsIDB4RTEsICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgLyogMDI5OCAqLyAgMHg5 NSwgMHgwMSwgMHg3NywgMHgwMiwgMHgwMSwgMHgxRSwgMHgwMSwgMHhENiwgIC8qIC4udy4uLi4u ICovCiAgICAgICAgICAgICAgICAvKiAwMkEwICovICAweEE5LCAweEQzLCAweDhDLCAweEM1LCAw eDgzLCAweEM4LCAweEM2LCAweDRBLCAgLyogLi4uLi4uLkogKi8KICAgICAgICAgICAgICAgIC8q IDAyQTggKi8gIDB4M0QsIDB4MjgsIDB4MkEsIDB4OTYsIDB4NEEsIDB4RTcsIDB4ODgsIDB4OTMs ICAvKiA9KCouSi4uLiAqLwogICAgICAgICAgICAgICAgLyogMDJCMCAqLyAgMHhGMSwgMHhGMSwg MHgwNCwgMHgwNSwgMHhBNSwgMHhCMywgMHgxRCwgMHg5NywgIC8qIC4uLi4uLi4uICovCiAgICAg ICAgICAgICAgICAvKiAwMkI4ICovICAweDQ3LCAweDIxLCAweDcxLCAweDEwLCAweDFBLCAweDhF LCAweDhGLCAweDZDLCAgLyogRyFxLi4uLmwgKi8KICAgICAgICAgICAgICAgIC8qIDAyQzAgKi8g IDB4MDQsIDB4OEUsIDB4ODIsIDB4NzgsIDB4RjAsIDB4M0UsIDB4RUQsIDB4RDgsICAvKiAuLi54 Lj4uLiAqLwogICAgICAgICAgICAgICAgLyogMDJDOCAqLyAgMHhDOSwgMHgzOSwgMHgwMCwgMHgz NSwgMHg3QSwgMHhDRiwgMHhFNiwgMHgxOCwgIC8qIC45LjV6Li4uICovCiAgICAgICAgICAgICAg ICAvKiAwMkQwICovICAweDMwLCAweEQxLCAweDRFLCAweDNELCAweEY0LCAweEIwLCAweDgwLCAw eDFGLCAgLyogMC5OPS4uLi4gKi8KICAgICAgICAgICAgICAgIC8qIDAyRDggKi8gIDB4NUEsIDB4 Q0MsIDB4RDMsIDB4RjIsIDB4MkMsIDB4N0MsIDB4Q0IsIDB4RjAsICAvKiBaLi4uLHwuLiAqLwog ICAgICAgICAgICAgICAgLyogMDJFMCAqLyAgMHgxMSwgMHgwNCwgMHgxQywgMHgzRSwgMHhBMSwg MHgwOSwgMHg1MiwgMHgwQywgIC8qIC4uLj4uLlIuICovCiAgICAgICAgICAgICAgICAvKiAwMkU4 ICovICAweDZGLCAweDMwLCAweEM2LCAweDhCLCAweDgyLCAweDUxLCAweDlFLCAweEJGLCAgLyog bzAuLi5RLi4gKi8KICAgICAgICAgICAgICAgIC8qIDAyRjAgKi8gIDB4M0MsIDB4MTAsIDB4NzYs IDB4MUEsIDB4RTIsIDB4NjMsIDB4RjAsIDB4RDksICAvKiA8LnYuLmMuLiAqLwogICAgICAgICAg ICAgICAgLyogMDJGOCAqLyAgMHg4MywgMHgxMywgMHhGOCwgMHg3NCwgMHgwMCwgMHg3RiwgMHgw QSwgMHhEOCwgIC8qIC4uLnQuLi4uICovCiAgICAgICAgICAgICAgICAvKiAwMzAwICovICAweEQz LCAweDAxLCAweDU4LCAweDgwLCAweDdDLCAweDFELCAweEYwLCAweEMxLCAgLyogLi5YLnwuLi4g Ki8KICAgICAgICAgICAgICAgIC8qIDAzMDggKi8gIDB4RTEsIDB4OTEsIDB4ODAsIDB4Q0QsIDB4 RTEsIDB4QTEsIDB4Q0YsIDB4NDcsICAvKiAuLi4uLi4uRyAqLwogICAgICAgICAgICAgICAgLyog MDMxMCAqLyAgMHgzRSwgMHg3NiwgMHgzQywgMHg0MSwgMHg4QywgMHg1QywgMHg5RiwgMHgxQiwg IC8qID52PEEuXC4uICovCiAgICAgICAgICAgICAgICAvKiAwMzE4ICovICAweEZGLCAweEZGLCAw eDY1LCAweDhELCAweDBCLCAweDM1LCAweDUwLCAweDFGLCAgLyogLi5lLi41UC4gKi8KICAgICAg ICAgICAgICAgIC8qIDAzMjAgKi8gIDB4OUEsIDB4RDgsIDB4NTEsIDB4MDEsIDB4NzcsIDB4NkEs IDB4QzIsIDB4QzAsICAvKiAuLlEud2ouLiAqLwogICAgICAgICAgICAgICAgLyogMDMyOCAqLyAg MHg3QSwgMHhFOCwgMHgxQywgMHhENiwgMHg2OCwgMHg2MSwgMHg0RiwgMHhGNiwgIC8qIHouLi5o YU8uICovCiAgICAgICAgICAgICAgICAvKiAwMzMwICovICAweDIxLCAweEMyLCAweDE3LCAweDEw LCAweENGLCAweENDLCAweDE3LCAweDI1LCAgLyogIS4uLi4uLiUgKi8KICAgICAgICAgICAgICAg IC8qIDAzMzggKi8gIDB4MUYsIDB4M0QsIDB4QzAsIDB4MDIsIDB4ODgsIDB4MUYsIDB4Q0UsIDB4 NEIsICAvKiAuPS4uLi4uSyAqLwogICAgICAgICAgICAgICAgLyogMDM0MCAqLyAgMHg4MCwgMHgy NywgMHg2MCwgMHg0MCwgMHg3NiwgMHg5MiwgMHhDMSwgMHgxRCwgIC8qIC4nYEB2Li4uICovCiAg ICAgICAgICAgICAgICAvKiAwMzQ4ICovICAweEE0LCAweEMwLCAweDc2LCAweEI3LCAweEMxLCAw eEUxLCAweEJDLCAweDRBLCAgLyogLi52Li4uLkogKi8KICAgICAgICAgICAgICAgIC8qIDAzNTAg Ki8gIDB4M0MsIDB4RTEsIDB4QjAsIDB4QkIsIDB4NDgsIDB4MkMsIDB4ODMsIDB4M0MsICAvKiA8 Li4uSCwuPCAqLwogICAgICAgICAgICAgICAgLyogMDM1OCAqLyAgMHg2MiwgMHgxOCwgMHg5MSwg MHhERiwgMHg0OCwgMHhCOCwgMHhGNCwgMHg5MywgIC8qIGIuLi5ILi4uICovCiAgICAgICAgICAg ICAgICAvKiAwMzYwICovICAweDIyLCAweDRBLCAweEVDLCAweDYxLCAweDExLCAweEQwLCAweDA5 LCAweEYzLCAgLyogIkouYS4uLi4gKi8KICAgICAgICAgICAgICAgIC8qIDAzNjggKi8gIDB4QTIs IDB4ODksIDB4MzksIDB4MUUsIDB4QzEsIDB4RjksIDB4RkYsIDB4MUYsICAvKiAuLjkuLi4uLiAq LwogICAgICAgICAgICAgICAgLyogMDM3MCAqLyAgMHg4RiwgMHgzMCwgMHg4NywgMHhDMywgMHg1 NywgMHg0NCwgMHg4RiwgMHhFMiwgIC8qIC4wLi5XRC4uICovCiAgICAgICAgICAgICAgICAvKiAw Mzc4ICovICAweDgxLCAweDI4LCAweEM4LCAweDAzLCAweEEyLCAweEE3LCAweDEwLCAweEU2LCAg LyogLiguLi4uLi4gKi8KICAgICAgICAgICAgICAgIC8qIDAzODAgKi8gIDB4MUQsIDB4RDEsIDB4 NTAsIDB4OEYsIDB4NDcsIDB4MDYsIDB4N0EsIDB4QTAsICAvKiAuLlAuRy56LiAqLwogICAgICAg ICAgICAgICAgLyogMDM4OCAqLyAgMHg4OCwgMHhGQSwgMHg3OCwgMHhFNCwgMHhCMywgMHg1MSwg MHg4NCwgMHg0NywgIC8qIC4ueC4uUS5HICovCiAgICAgICAgICAgICAgICAvKiAwMzkwICovICAw eEExLCAweDg3LCAweDQ1LCAweERGLCAweDhDLCAweERFLCAweDJGLCAweDYyLCAgLyogLi5FLi4u L2IgKi8KICAgICAgICAgICAgICAgIC8qIDAzOTggKi8gIDB4MDUsIDB4N0MsIDB4NDQsIDB4RjIs IDB4NDUsIDB4MjIsIDB4NEMsIDB4OTQsICAvKiAufEQuRSJMLiAqLwogICAgICAgICAgICAgICAg LyogMDNBMCAqLyAgMHgyMCwgMHhBMSwgMHgxRSwgMHg4RiwgMHhDMCwgMHgxQywgMHhGOSwgMHg3 NSwgIC8qICAuLi4uLi51ICovCiAgICAgICAgICAgICAgICAvKiAwM0E4ICovICAweEEyLCAweEQz LCAweDgwLCAweDhGLCAweDQ3LCAweEMwLCAweEMzLCAweEU1LCAgLyogLi4uLkcuLi4gKi8KICAg ICAgICAgICAgICAgIC8qIDAzQjAgKi8gIDB4RjEsIDB4MDgsIDB4RDAsIDB4MUEsIDB4RkMsIDB4 OTgsIDB4MDMsIDB4MDksICAvKiAuLi4uLi4uLiAqLwogICAgICAgICAgICAgICAgLyogMDNCOCAq LyAgMHhGOCwgMHg1OCwgMHhERiwgMHgxQiwgMHg0RSwgMHhDNywgMHg0MSwgMHhDRiwgIC8qIC5Y Li5OLkEuICovCiAgICAgICAgICAgICAgICAvKiAwM0MwICovICAweDhBLCAweEEwLCAweEZBLCAw eEZGLCAweDlGLCAweDE1LCAweEMxLCAweDMxLCAgLyogLi4uLi4uLjEgKi8KICAgICAgICAgICAg ICAgIC8qIDAzQzggKi8gIDB4QTMsIDB4ODcsIDB4MEEsIDB4QjAsIDB4REMsIDB4MjcsIDB4RTAs IDB4QzIsICAvKiAuLi4uLicuLiAqLwogICAgICAgICAgICAgICAgLyogMDNEMCAqLyAgMHg4NCwg MHgzOCwgMHgzMCwgMHg3RSwgMHhEQSwgMHgwMSwgMHg0RSwgMHg0NywgIC8qIC44MH4uLk5HICov CiAgICAgICAgICAgICAgICAvKiAwM0Q4ICovICAweDJCLCAweEVDLCAweDY5LCAweDFBLCAweDU4 LCAweDlELCAweDk5LCAweDcwLCAgLyogKy5pLlguLnAgKi8KICAgICAgICAgICAgICAgIC8qIDAz RTAgKi8gIDB4QTcsIDB4NjksIDB4NzAsIDB4MUMsIDB4QjgsIDB4RTEsIDB4MEMsIDB4ODAsICAv KiAuaXAuLi4uLiAqLwogICAgICAgICAgICAgICAgLyogMDNFOCAqLyAgMHgyQiwgMHhCNCwgMHhF OSwgMHg1MywgMHhBMywgMHg1MSwgMHhBQiwgMHgwNiwgIC8qICsuLlMuUS4uICovCiAgICAgICAg ICAgICAgICAvKiAwM0YwICovICAweDY1LCAweDZBLCAweDk0LCAweDY5LCAweDUwLCAweEFCLCAw eDRGLCAweEE1LCAgLyogZWouaVAuTy4gKi8KICAgICAgICAgICAgICAgIC8qIDAzRjggKi8gIDB4 QzYsIDB4OEMsIDB4QTksIDB4MTgsIDB4OTcsIDB4REYsIDB4MDYsIDB4M0EsICAvKiAuLi4uLi4u OiAqLwogICAgICAgICAgICAgICAgLyogMDQwMCAqLyAgMHgxQywgMHgzOCwgMHgwQSwgMHgwOCwg MHg4RCwgMHhGMSwgMHg0MiwgMHgxMCwgIC8qIC44Li4uLkIuICovCiAgICAgICAgICAgICAgICAv KiAwNDA4ICovICAweDg4LCAweDg1LCAweDdBLCAweDAwLCAweDYxLCAweDMxLCAweDQxLCAweEE4 LCAgLyogLi56LmExQS4gKi8KICAgICAgICAgICAgICAgIC8qIDA0MTAgKi8gIDB4NjQsIDB4MTMs IDB4MTAsIDB4OEQsIDB4MUMsIDB4QkYsIDB4MEMsIDB4MjIsICAvKiBkLi4uLi4uIiAqLwogICAg ICAgICAgICAgICAgLyogMDQxOCAqLyAgMHgyMCwgMHg4QiwgMHhCMCwgMHgwMSwgMHhDMiwgMHgy MiwgMHg4MCwgMHg1MCwgIC8qICAuLi4uIi5QICovCiAgICAgICAgICAgICAgICAvKiAwNDIwICov ICAweEU5LCAweDNBLCAweDQwLCAweEQ4LCAweEZGLCAweDFGICAgICAgICAgICAgICAgLyogLjpA Li4uICovCiAgICAgICAgICAgIH0pCiAgICAgICAgfQogICAgfQoKICAgIE9wZXJhdGlvblJlZ2lv biAoTU5WUywgU3lzdGVtTWVtb3J5LCAweEI5OUMxMDE4LCAweDEwMDApCiAgICBGaWVsZCAoTU5W UywgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgT2Zmc2V0ICgweEQw MCksIAogICAgICAgIEdBUEEsICAgMzIsIAogICAgICAgIEdBUEwsICAgMzIsIAogICAgICAgIERD S0ksICAgMzIsIAogICAgICAgIERDS1MsICAgMzIsIAogICAgICAgIFZDREwsICAgMSwgCiAgICAg ICAgVkNEQywgICAxLCAKICAgICAgICBWQ0RULCAgIDEsIAogICAgICAgIFZDREQsICAgMSwgCiAg ICAgICAgICAgICwgICAxLCAKICAgICAgICBWQ1NTLCAgIDEsIAogICAgICAgIFZDREIsICAgMSwg CiAgICAgICAgVkNJTiwgICAxLCAKICAgICAgICBWVlBPLCAgIDgsIAogICAgICAgIE9mZnNldCAo MHhEMTMpLCAKICAgICAgICBCUkxWLCAgIDgsIAogICAgICAgIENERkwsICAgOCwgCiAgICAgICAg Q0RBSCwgICA4LCAKICAgICAgICBQTU9ELCAgIDIsIAogICAgICAgIFBESVIsICAgMSwgCiAgICAg ICAgUERNQSwgICAxLCAKICAgICAgICBPZmZzZXQgKDB4RDE3KSwgCiAgICAgICAgTEZEQywgICAx LCAKICAgICAgICBPZmZzZXQgKDB4RDE4KSwgCiAgICAgICAgQzJOQSwgICAxLCAKICAgICAgICBD M05BLCAgIDEsIAogICAgICAgIEM0TkEsICAgMSwgCiAgICAgICAgQzZOQSwgICAxLCAKICAgICAg ICBDN05BLCAgIDEsIAogICAgICAgIE9mZnNldCAoMHhEMTkpLCAKICAgICAgICBPZmZzZXQgKDB4 RDFBKSwgCiAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgLCAgIDEsIAogICAgICAgIE5I UFMsICAgMSwgCiAgICAgICAgTlBNRSwgICAxLCAKICAgICAgICBPZmZzZXQgKDB4RDFCKSwgCiAg ICAgICAgVU9QVCwgICA4LCAKICAgICAgICBCVElELCAgIDMyLCAKICAgICAgICBEUFAwLCAgIDEs IAogICAgICAgIERQUDEsICAgMSwgCiAgICAgICAgRFBQMiwgICAxLCAKICAgICAgICBEUFAzLCAg IDEsIAogICAgICAgIERQUDQsICAgMSwgCiAgICAgICAgRFBQNSwgICAxLCAKICAgICAgICBPZmZz ZXQgKDB4RDIxKSwgCiAgICAgICAgT2Zmc2V0ICgweEQyMiksIAogICAgICAgIFRDUlQsICAgMTYs IAogICAgICAgIFRQU1YsICAgMTYsIAogICAgICAgIFRUQzEsICAgMTYsIAogICAgICAgIFRUQzIs ICAgMTYsIAogICAgICAgIFRUU1AsICAgMTYsIAogICAgICAgIFNSQUgsICAgOCwgCiAgICAgICAg U1JIRSwgICA4LCAKICAgICAgICBTUkUxLCAgIDgsIAogICAgICAgIFNSRTIsICAgOCwgCiAgICAg ICAgU1JFMywgICA4LCAKICAgICAgICBTUkU0LCAgIDgsIAogICAgICAgIFNSRTUsICAgOCwgCiAg ICAgICAgU1JFNiwgICA4LCAKICAgICAgICBTUlUxLCAgIDgsIAogICAgICAgIFNSVTIsICAgOCwg CiAgICAgICAgU1JVMywgICA4LCAKICAgICAgICBTUlU3LCAgIDgsIAogICAgICAgIFNSVTQsICAg OCwgCiAgICAgICAgU1JVNSwgICA4LCAKICAgICAgICBTUlU4LCAgIDgsIAogICAgICAgIFNSUEIs ICAgOCwgCiAgICAgICAgU1JMUCwgICA4LCAKICAgICAgICBTUlNBLCAgIDgsIAogICAgICAgIFNS U00sICAgOCwgCiAgICAgICAgQ1dBQywgICAxLCAKICAgICAgICBDV0FTLCAgIDEsIAogICAgICAg IENXVUUsICAgMSwgCiAgICAgICAgQ1dVUywgICAxLCAKICAgICAgICBPZmZzZXQgKDB4RDQwKSwg CiAgICAgICAgQ1dBUCwgICAxNiwgCiAgICAgICAgQ1dBVCwgICAxNiwgCiAgICAgICAgREJHQywg ICAxLCAKICAgICAgICBPZmZzZXQgKDB4RDQ1KSwgCiAgICAgICAgRlMxTCwgICAxNiwgCiAgICAg ICAgRlMxTSwgICAxNiwgCiAgICAgICAgRlMxSCwgICAxNiwgCiAgICAgICAgRlMyTCwgICAxNiwg CiAgICAgICAgRlMyTSwgICAxNiwgCiAgICAgICAgRlMySCwgICAxNiwgCiAgICAgICAgRlMzTCwg ICAxNiwgCiAgICAgICAgRlMzTSwgICAxNiwgCiAgICAgICAgRlMzSCwgICAxNiwgCiAgICAgICAg VEFUQywgICAxLCAKICAgICAgICAgICAgLCAgIDYsIAogICAgICAgIFRBVEwsICAgMSwgCiAgICAg ICAgVEFUVywgICA4LCAKICAgICAgICBUTkZULCAgIDQsIAogICAgICAgIFROVFQsICAgNCwgCiAg ICAgICAgVERGQSwgICA0LCAKICAgICAgICBURFRBLCAgIDQsIAogICAgICAgIFRERkQsICAgNCwg CiAgICAgICAgVERURCwgICA0LCAKICAgICAgICBUQ0ZBLCAgIDQsIAogICAgICAgIFRDVEEsICAg NCwgCiAgICAgICAgVENGRCwgICA0LCAKICAgICAgICBUQ1RELCAgIDQsIAogICAgICAgIFRTRlQs ICAgNCwgCiAgICAgICAgVFNUVCwgICA0LCAKICAgICAgICBUSVQwLCAgIDgsIAogICAgICAgIFRD UjAsICAgMTYsIAogICAgICAgIFRQUzAsICAgMTYsIAogICAgICAgIFRJVDEsICAgOCwgCiAgICAg ICAgVENSMSwgICAxNiwgCiAgICAgICAgVFBTMSwgICAxNiwgCiAgICAgICAgVElUMiwgICA4LCAK ICAgICAgICBUQ1IyLCAgIDE2LCAKICAgICAgICBUUFMyLCAgIDE2LCAKICAgICAgICBUSUYwLCAg IDgsIAogICAgICAgIFRJRjEsICAgOCwgCiAgICAgICAgVElGMiwgICA4LCAKICAgICAgICBPZmZz ZXQgKDB4RDc4KSwgCiAgICAgICAgQlRISSwgICAxLCAKICAgICAgICBPZmZzZXQgKDB4RDc5KSwg CiAgICAgICAgSERJUiwgICAxLCAKICAgICAgICBIREVILCAgIDEsIAogICAgICAgIEhEU1AsICAg MSwgCiAgICAgICAgSERQUCwgICAxLCAKICAgICAgICBIRFVCLCAgIDEsIAogICAgICAgIEhETUMs ICAgMSwgCiAgICAgICAgTkZDRiwgICAxLCAKICAgICAgICBPZmZzZXQgKDB4RDdBKSwgCiAgICAg ICAgT2Zmc2V0ICgweEQ3QiksIAogICAgICAgIEJJREUsICAgNCwgCiAgICAgICAgSURFVCwgICA0 LCAKICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAsICAgMSwgCiAgICAgICAgT2Zmc2V0 ICgweEQ3RCksIAogICAgICAgIERUUzAsICAgOCwgCiAgICAgICAgT2Zmc2V0ICgweEQ3RiksIAog ICAgICAgIERUMDAsICAgMSwgCiAgICAgICAgRFQwMSwgICAxLCAKICAgICAgICBEVDAyLCAgIDEs IAogICAgICAgIERUMDMsICAgMSwgCiAgICAgICAgT2Zmc2V0ICgweEQ4MCksIAogICAgICAgIExJ REIsICAgMSwgCiAgICAgICAgQzRXUiwgICAxLCAKICAgICAgICBDNEFDLCAgIDEsIAogICAgICAg IE9ERFgsICAgMSwgCiAgICAgICAgQ01QUiwgICAxLCAKICAgICAgICBJTE5GLCAgIDEsIAogICAg ICAgIFBMVVgsICAgMSwgCiAgICAgICAgT2Zmc2V0ICgweEQ4MSksIAogICAgICAgIE9mZnNldCAo MHhEOEMpLCAKICAgICAgICAgICAgLCAgIDQsIAogICAgICAgICAgICAsICAgMSwgCiAgICAgICAg ICAgICwgICAxLCAKICAgICAgICBPZmZzZXQgKDB4RDhEKSwgCiAgICAgICAgICAgICwgICAzLCAK ICAgICAgICAgICAgLCAgIDEsIAogICAgICAgICAgICAsICAgMSwgCiAgICAgICAgICAgICwgICAx LCAKICAgICAgICBPZmZzZXQgKDB4RDhFKSwgCiAgICAgICAgT2Zmc2V0ICgweEQ4RiksIAogICAg ICAgICAgICAsICAgNCwgCiAgICAgICAgT2Zmc2V0ICgweEQ5MCksIAogICAgICAgIE9mZnNldCAo MHhEOTEpLCAKICAgICAgICBTV0dQLCAgIDgsIAogICAgICAgIElQTVMsICAgOCwgCiAgICAgICAg SVBNQiwgICAxMjAsIAogICAgICAgIElQTVIsICAgMjQsIAogICAgICAgIElQTU8sICAgMjQsIAog ICAgICAgIElQTUEsICAgOCwgCiAgICAgICAgVklHRCwgICAxLCAKICAgICAgICBWRFNDLCAgIDEs IAogICAgICAgICAgICAsICAgMiwgCiAgICAgICAgVkRTUCwgICAxLCAKICAgICAgICBPZmZzZXQg KDB4REFBKSwgCiAgICAgICAgT2Zmc2V0ICgweERBRCksIAogICAgICAgIEFTRlQsICAgOCwgCiAg ICAgICAgUEwxTCwgICA4LCAKICAgICAgICBQTDFNLCAgIDgsIAogICAgICAgIENIS0MsICAgMzIs IAogICAgICAgIENIS0UsICAgMzIsIAogICAgICAgIEFUUkIsICAgMzIsIAogICAgICAgIE9mZnNl dCAoMHhEQkQpLCAKICAgICAgICBQUENSLCAgIDgsIAogICAgICAgIFRQQ1IsICAgNSwgCiAgICAg ICAgT2Zmc2V0ICgweERCRiksIAogICAgICAgIE9mZnNldCAoMHhEQ0UpLCAKICAgICAgICBDVERQ LCAgIDgsIAogICAgICAgIFBQQ0EsICAgOCwgCiAgICAgICAgVFBDQSwgICA1LCAKICAgICAgICBP ZmZzZXQgKDB4REQxKSwgCiAgICAgICAgQkZXQiwgICAyOTYsIAogICAgICAgIE9TUFgsICAgMSwg CiAgICAgICAgT1NDNCwgICAxLCAKICAgICAgICBPZmZzZXQgKDB4REY3KSwgCiAgICAgICAgU1BF TiwgICAxLCAKICAgICAgICBTQ1JNLCAgIDEsIAogICAgICAgIEdGUEwsICAgMSwgCiAgICAgICAg RVRBVSwgICAxLCAKICAgICAgICBJSEJDLCAgIDEsIAogICAgICAgIEFQTUQsICAgMSwgCiAgICAg ICAgQVBNRiwgICAxLCAKICAgICAgICBPZmZzZXQgKDB4REY4KSwgCiAgICAgICAgRlRQUywgICA4 LCAKICAgICAgICBISVNULCAgIDgsIAogICAgICAgIE9mZnNldCAoMHhERkIpLCAKICAgICAgICBM V1NULCAgIDgsIAogICAgICAgIE9mZnNldCAoMHhERkYpLCAKICAgICAgICBNVEFVLCAgIDgsIAog ICAgICAgIE9mZnNldCAoMHhFMjApLCAKICAgICAgICBIUEVULCAgIDMyLCAKICAgICAgICBQS0xJ LCAgIDE2LCAKICAgICAgICBWTENYLCAgIDE2LCAKICAgICAgICBWTklULCAgIDgsIAogICAgICAg IFZCRDAsICAgOCwgCiAgICAgICAgVkJEVCwgICAxMjgsIAogICAgICAgIFZCUEwsICAgMTYsIAog ICAgICAgIFZCUEgsICAgMTYsIAogICAgICAgIFZCTUwsICAgOCwgCiAgICAgICAgVkJNSCwgICA4 LCAKICAgICAgICBWRURJLCAgIDEwMjQsIAogICAgICAgIFBEQ0ksICAgMTYsIAogICAgICAgIElT Q0csICAgMzIsIAogICAgICAgIElTU1AsICAgMSwgCiAgICAgICAgSVNXSywgICAyLCAKICAgICAg ICBPZmZzZXQgKDB4RUM3KSwgCiAgICAgICAgU0hBMSwgICAxNjAsIAogICAgICAgIEZGRFQsICAg MSwgCiAgICAgICAgT2Zmc2V0ICgweEVEQyksIAogICAgICAgIExXQ1AsICAgMSwgCiAgICAgICAg TFdFTiwgICAxLCAKICAgICAgICBJT0NQLCAgIDEsIAogICAgICAgIElPRU4sICAgMSwgCiAgICAg ICAgSU9TVCwgICAxLCAKICAgICAgICBPZmZzZXQgKDB4RUREKSwgCiAgICAgICAgVVNCUiwgICAx LCAKICAgICAgICBPZmZzZXQgKDB4RURFKSwgCiAgICAgICAgT2Zmc2V0ICgweEVERiksIAogICAg ICAgIE9mZnNldCAoMHhFRTEpLCAKICAgICAgICBCVDJULCAgIDEsIAogICAgICAgIE9mZnNldCAo MHhFRTIpLCAKICAgICAgICBUUFBQLCAgIDgsIAogICAgICAgIFRQUEMsICAgOCwgCiAgICAgICAg V0tSUywgICA4LCAKICAgICAgICBGTldLLCAgIDgsIAogICAgICAgIFVTQkMsICAgOCwgCiAgICAg ICAgQ01TVCwgICA4LCAKICAgICAgICBXU1RBLCAgIDgsIAogICAgICAgIExEV0ssICAgOAogICAg fQoKICAgIEZpZWxkIChNTlZTLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgewogICAg ICAgIE9mZnNldCAoMHhCMDApLCAKICAgICAgICBXSVRNLCAgIDgsIAogICAgICAgIFdTRUwsICAg OCwgCiAgICAgICAgV0xTMCwgICA4LCAKICAgICAgICBXTFMxLCAgIDgsIAogICAgICAgIFdMUzIs ICAgOCwgCiAgICAgICAgV0xTMywgICA4LCAKICAgICAgICBXTFM0LCAgIDgsIAogICAgICAgIFdM UzUsICAgOCwgCiAgICAgICAgV0xTNiwgICA4LCAKICAgICAgICBXTFM3LCAgIDgsIAogICAgICAg IFdMUzgsICAgOCwgCiAgICAgICAgV0xTOSwgICA4LCAKICAgICAgICBXTFNBLCAgIDgsIAogICAg ICAgIFdMU0IsICAgOCwgCiAgICAgICAgV0xTQywgICA4LCAKICAgICAgICBXTFNELCAgIDgsIAog ICAgICAgIFdFTkMsICAgOCwgCiAgICAgICAgV0tCRCwgICA4LCAKICAgICAgICBXUFRZLCAgIDgs IAogICAgICAgIFdQQVMsICAgMTAzMiwgCiAgICAgICAgV1BOVywgICAxMDMyLCAKICAgICAgICBX U1BNLCAgIDgsIAogICAgICAgIFdTUFMsICAgOCwgCiAgICAgICAgV1NNTiwgICA4LCAKICAgICAg ICBXU01YLCAgIDgsIAogICAgICAgIFdTRU4sICAgOCwgCiAgICAgICAgV1NLQiwgICA4LCAKICAg ICAgICBXQVNCLCAgIDgsIAogICAgICAgIFdBU0ksICAgMTYsIAogICAgICAgIFdBU0QsICAgOCwg CiAgICAgICAgV0FTUywgICAzMgogICAgfQoKICAgIEZpZWxkIChNTlZTLCBCeXRlQWNjLCBOb0xv Y2ssIFByZXNlcnZlKQogICAgewogICAgICAgIE9mZnNldCAoMHhBMDApLCAKICAgICAgICBEQkdM LCAgIDEwMjQKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKFNNSTAsIFN5c3RlbUlPLCAweEIy LCBPbmUpCiAgICBGaWVsZCAoU01JMCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgIHsK ICAgICAgICBBUE1DLCAgIDgKICAgIH0KCiAgICBGaWVsZCAoTU5WUywgQW55QWNjLCBOb0xvY2ss IFByZXNlcnZlKQogICAgewogICAgICAgIE9mZnNldCAoMHhGQzApLCAKICAgICAgICBDTUQsICAg IDgsIAogICAgICAgIEVSUiwgICAgMzIsIAogICAgICAgIFBBUjAsICAgMzIsIAogICAgICAgIFBB UjEsICAgMzIsIAogICAgICAgIFBBUjIsICAgMzIsIAogICAgICAgIFBBUjMsICAgMzIKICAgIH0K CiAgICBNdXRleCAoTVNNSSwgMHgwNykKICAgIE1ldGhvZCAoU01JLCA1LCBOb3RTZXJpYWxpemVk KQogICAgewogICAgICAgIEFjcXVpcmUgKE1TTUksIDB4RkZGRikKICAgICAgICBDTUQgPSBBcmcw CiAgICAgICAgRVJSID0gT25lCiAgICAgICAgUEFSMCA9IEFyZzEKICAgICAgICBQQVIxID0gQXJn MgogICAgICAgIFBBUjIgPSBBcmczCiAgICAgICAgUEFSMyA9IEFyZzQKICAgICAgICBBUE1DID0g MHhGNQogICAgICAgIFdoaWxlICgoRVJSID09IE9uZSkpCiAgICAgICAgewogICAgICAgICAgICBT bGVlcCAoT25lKQogICAgICAgICAgICBBUE1DID0gMHhGNQogICAgICAgIH0KCiAgICAgICAgTG9j YWwwID0gUEFSMCAvKiBcUEFSMCAqLwogICAgICAgIFJlbGVhc2UgKE1TTUkpCiAgICAgICAgUmV0 dXJuIChMb2NhbDApCiAgICB9CgogICAgTWV0aG9kIChVQ01TLCAyLCBOb3RTZXJpYWxpemVkKQog ICAgewogICAgICAgIFJldHVybiAoU01JICgweDAyLCBBcmcwLCBBcmcxLCBaZXJvLCBaZXJvKSkK ICAgIH0KCiAgICBNZXRob2QgKFdNSVMsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAg UmV0dXJuIChTTUkgKDB4MTAsIEFyZzAsIEFyZzEsIFplcm8sIFplcm8pKQogICAgfQoKICAgIE5h bWUgKF9TMCwgUGFja2FnZSAoMHgwNCkgIC8vIF9TMF86IFMwIFN5c3RlbSBTdGF0ZQogICAgewog ICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8sIAogICAgICAgIFplcm8K ICAgIH0pCiAgICBOYW1lIChfUzQsIFBhY2thZ2UgKDB4MDQpICAvLyBfUzRfOiBTNCBTeXN0ZW0g U3RhdGUKICAgIHsKICAgICAgICAweDA2LCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAK ICAgICAgICBaZXJvCiAgICB9KQogICAgTmFtZSAoX1M1LCBQYWNrYWdlICgweDA0KSAgLy8gX1M1 XzogUzUgU3lzdGVtIFN0YXRlCiAgICB7CiAgICAgICAgMHgwNywgCiAgICAgICAgWmVybywgCiAg ICAgICAgWmVybywgCiAgICAgICAgWmVybwogICAgfSkKfQoK --=-EE0PMsployBz1BiWfyGv--