From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D7576CED26C for ; Tue, 8 Oct 2024 06:06:27 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8E8AB10E03E; Tue, 8 Oct 2024 06:06:27 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="dmsMnkZP"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id B50EA10E03E for ; Tue, 8 Oct 2024 06:06:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1728367587; x=1759903587; h=message-id:date:subject:to:cc:references:from: in-reply-to:mime-version:content-transfer-encoding; bh=+o9N7QZILCkq2u/3z1mceTHZlnYHDD1fjSJuNT0AN4c=; b=dmsMnkZPS7jddXaJ+TCHx+IdOddD7fXgzAJDKVZRE4zz8B2EElYQwXfw OHxEB1dbhsnzx/g/wVnwZMeF7S6h1PDhKOSd5UIZHLlQHvGGUAKs1lsMk Y4BJSOiF2aikXkFKKwmjJVB3Pv8m13lYit0+kEOJIBM5dgpJ1kjcENKoC 1LfuZ8ZPGkvLeKqkdFfjEXREonIBLeBvqqIQ50eWJI5x2tRjLnT4NpJLl JrGTRW85117MIYiCy+wmVh/K5KTFq4AmHoKz5rHEhqnIbS1+ouDCu2I8R UQlnsAtvyBwP0TTRbnZL7w/HUjf7e8gVtTRKLulbGiBTVc2s512tojbSC g==; X-CSE-ConnectionGUID: DGZwnLbZSEWNHTrInHgBBw== X-CSE-MsgGUID: khtQ8tc1SDWUyzIAkhZT/w== X-IronPort-AV: E=McAfee;i="6700,10204,11218"; a="27351875" X-IronPort-AV: E=Sophos;i="6.11,186,1725346800"; d="scan'208";a="27351875" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by orvoesa112.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Oct 2024 23:06:26 -0700 X-CSE-ConnectionGUID: Jf/FEQYASfi73nT8Meu82Q== X-CSE-MsgGUID: aZLbg2jTToCHGb7B9E4+qQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.11,186,1725346800"; d="scan'208";a="75965206" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orviesa006.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 07 Oct 2024 23:06:24 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 7 Oct 2024 23:06:23 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 7 Oct 2024 23:06:23 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Mon, 7 Oct 2024 23:06:23 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.176) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Mon, 7 Oct 2024 23:06:22 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aadrUNS8oU3XYgd6wxZ+u4YHfFOVik2DBMv4VgE4DDrOkoJqZaDaeVHOMMQZ/6S6svOg06iDrFAxSKAwkRCpCs8VUKdZ5lVimWAl7evcwMNHc2M57bdnMtgbmFijzz7PjqkjpR+b+bno/z9FhUdWGilx+w0lTmjPR8b+vgttzckjYIcLFIyZk1MWgb3FC+Ops9ZBF3eXJ3UdYlvqI3fmImCvb/ln1g9E/EwKhYzqKkVCpEG0bvRONSihiqtFtYTblJ2fMvCn4PvpS2ojFNuwEOfXCcuCMNwk9aSwUwtiq6lWiW9xlHTzeuMSfCCtdKC9STabpSlnvAVS1weXDlgcVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0GaRC0C/vpFfsKvBp7vL1VJGdsw2r3GHzgyt3mL3+eo=; b=suC9l3wYxvA1cw9ekbwrHgeK3uJljUOWulPYdzuZ95F9XJ9Jo3jNOzkZnJJGAUeW/rg6LSkTpaLM2xqHkwmZ7BZMr+Rba06vRvl67T3HQ/wsiqssa5Ggo9IMfNx63B+CqKcDVsyHOdZuogbCoetYel829utT4MhZDNPPWkPV4/HfKJAPP+FsusTlez51ZbJ8aaFett+rPaWakMZfUTNgtFAIz3X6JfwRs7prsTLs/DVA6qzQQCUNURbgj9fn2kzTTTX6+ziVsrW05pYSFiX7+CGc0780D2UKb1oQ/6gSBSzzYVuCvnAYrZTN1JuEnDF90aqMnDcq4LJH7MSKGvSkfg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from IA1PR11MB7824.namprd11.prod.outlook.com (2603:10b6:208:3f9::15) by BL1PR11MB6028.namprd11.prod.outlook.com (2603:10b6:208:393::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8026.23; Tue, 8 Oct 2024 06:06:19 +0000 Received: from IA1PR11MB7824.namprd11.prod.outlook.com ([fe80::71b1:fad1:6598:f147]) by IA1PR11MB7824.namprd11.prod.outlook.com ([fe80::71b1:fad1:6598:f147%5]) with mapi id 15.20.8026.020; Tue, 8 Oct 2024 06:06:19 +0000 Message-ID: Date: Tue, 8 Oct 2024 08:06:16 +0200 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH i-g-t 2/3] lib/vendor: Add the meow_fft library To: Kamil Konieczny , CC: Ryszard Knop References: <20240913104434.56529-1-kamil.konieczny@linux.intel.com> <20240913104434.56529-3-kamil.konieczny@linux.intel.com> Content-Language: en-US From: Peter Senna Tschudin In-Reply-To: <20240913104434.56529-3-kamil.konieczny@linux.intel.com> X-ClientProxiedBy: DUZPR01CA0202.eurprd01.prod.exchangelabs.com (2603:10a6:10:4b6::13) To IA1PR11MB7824.namprd11.prod.outlook.com (2603:10b6:208:3f9::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA1PR11MB7824:EE_|BL1PR11MB6028:EE_ X-MS-Office365-Filtering-Correlation-Id: 039293fa-e57c-4e86-2267-08dce75f53d2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?R2xwM25uY1RhNHZqYURVUE85dDJLaUk3Q1lTR09pVHpOYXJIS1pSdnlCQUVO?= =?utf-8?B?NzRMSFpiQUl2VDBEeUJBVEdJK3l1VkdxcFM0RVAxeTFMQ1M4dFk4d3BRZ0hK?= =?utf-8?B?TU91UmNhUDMxM0FvU2ptbFRjSWNZM1ZHeDhRcitxZjFkMUZwYzdyL1FuanVP?= =?utf-8?B?SzRBTlJIOENNMHBCYVV1R0IxK1d3bmFUWWExVVNNUlJ0bmxYajNQZXNaOTkr?= =?utf-8?B?M1gvM1JxOHEybHJxMG4zcnROeU5kY3N2VmlQV0dkaFFJOUpzUzJqSi85VjN1?= =?utf-8?B?TExDNndySVMza05jWmNXeVNjLy8rbVYyelFJbUF2TE5wUGM0SkhKVEk1ZzJE?= =?utf-8?B?U08wdTJ4YXpZMXZIS09XdTAvQm81T0h6V1lPd0hFVHE4c2F5ak5jL0JhNmc5?= =?utf-8?B?dHhaZm5sUVJnaDlMc1ZKSDZqNEkvanpMMkRUSlM5eXNUMnYveThnQWVqK00z?= =?utf-8?B?R1RpdnNsMGE1RUhINDl3R0lvaHBuL203OEhYckcrZW1sQWZoY1FlYyt6Y3pX?= =?utf-8?B?Yk5ETjF4cUdmNy92YnoyWU1pTG1BQ2xHNVFGRCtpL293TnlCVm1GZW1sU3Yv?= =?utf-8?B?eG9OQUsvcXpHQW5BZFRzdXBSWnJsNzlTLzk4MGN3SlgxTlhXRExZN2lHRVRl?= =?utf-8?B?Smw4VEQycEFQKzVDYVptZWJYTGlQLzdYOU1MSUdkdnhENmdTbklwVDBVcmYw?= =?utf-8?B?Z0VIYjRoTFNkMUF2RXZMRGlPMU5FUXVDaUVIZ1h2M2ZUdHhpd0orSDluQ0NZ?= =?utf-8?B?Q2kyZEpvQVpEbXJsQ3JkMkNHK3RRNjZUQW5iV2JOeU05ajliaGdSbkU3U2ww?= =?utf-8?B?QnhZRy8wYXJPVGRZc1V2QzFWMDJWRUEzam94ME9tMEFqV3hMR1Z1dE40RGtS?= =?utf-8?B?Q29qOTdFQmk1WmtkSG1oS3o0cE5Vc3RWR1Rlakl6QjBJSEhFejZiQlkvUmVx?= =?utf-8?B?NGdrekpaWmtXWlBwL0IwK1ZTYkM2MkVualRNSmduMzBxbDA2WUZMa3RTL2FG?= =?utf-8?B?RS9MQWJ1NllPbmpLZXk2ZDZZQXRXbFJtWkt0azQ2c2tpU2xIamZuZ094Vjdr?= =?utf-8?B?Slo5eDNKOThmeURGTDcyNTZ6VzA5UzlBQUIyTzlYbXR6VG5kSHIyS3BtdFZJ?= =?utf-8?B?TkMxMWdvV0JhL2pUU1hQR3JUTmt6Zk9GZVNkMk9pa21aZmxSWmQwQnIyN0NF?= =?utf-8?B?RzVTUnA2VVY3RmhjWW51dklWSDFzTHJjQVR3ejBNMjZxRXFEUzBOVFJlblZZ?= =?utf-8?B?NlRvaHF1SE16UmVtMlJEcUttN1htZjNwR1RFdmxGS0NlUDgxZDRJZzNXWXl0?= =?utf-8?B?Um9vQWd5VStDLzQ0Q1A1d053ZHR2ZVNCS09DYmk2a3lLczZwYzNYRGd3SEg3?= =?utf-8?B?T3Blck1hSnA1UUpMQ21Hd2NESkErbDN5bU56TCtTVzArY2lBWHEyU3V3blc4?= =?utf-8?B?ZTdMdDN0U29WTVJtekpMeDF5cERheldzV3dxaEtIbG9sd0h3LzhnTElReGV4?= =?utf-8?B?Q0JUTmNWK3FWb1VGSnZuZ0tyZklqL0NQMDkxMlBGYjAvblNNczNaY0MrRTB6?= =?utf-8?B?TWZIeHlwODViSHpHeFZ1WmtRVWZMcjFCR2RUcjdCT2tOMTNRVmNpZ3QzaXVI?= =?utf-8?Q?DaAL8rWgZ37Qn5wYzF2KHA8COQYRBgljzylkNt/d+vcA=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:IA1PR11MB7824.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(366016)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Z1g3L0dXa3JDMDFveDRleVBkVE9pSzFHM1JQTzN1R0M1TEVvQWVwU3YyUWFi?= =?utf-8?B?MktDLzVHN1RuWkdTWXZwWlhEZG0vNFZsYThLR1ZwN21zY1A5R2ZaN1htQ0Rs?= =?utf-8?B?bHdFdmtISjZTcWFnNU9sdTRHZnJvbUFYc2tiMHNkSG9UQzg0ajRCVXVMclZY?= =?utf-8?B?VVZ0L1pzaEZ2TXNxam5LdjhNYVlsMi83T1BpNjB6akEzT002SHhGZmFFM3NM?= =?utf-8?B?aWUrLzFIZnQ2MzhZNjdzV3g1akhrOVBYWFppN2V1djhXRXdQOGgrRlhZVHJl?= =?utf-8?B?cjZmUXJoNDVrVktobDZmTy9lN1Q2QkdRVVgzT05SaGhYaG5qYU94NlZ6L3I0?= =?utf-8?B?bDdiTEt0dzFtaEErdkEraVZmQTVCU1B4MjVBNHFyVDhobjV0UTlzYTlLZCtW?= =?utf-8?B?T05vZnJPalNRT0YzRHpvdHFYSmpxTkUwT1dsMUJMZG1VRFplV1B0TjRYYzZ5?= =?utf-8?B?Nkg4UVRaVHNvdFhLMzNPTGgrN1FJTXY5STdHTUFHbE1OK2VSdXVPYXk2eHU0?= =?utf-8?B?cFdKQUlWSG02em1rT3VqOTQvWVVMUmNHUGM3ajFpOStVa25mZ3p0eW83d1RJ?= =?utf-8?B?RENURWR6NE1wckVwZ0hWSy9SWk1IcVNxK3M3OHhnckdsMXVUdkRhMWUyS0hr?= =?utf-8?B?OUR2SS81aFE3NklJbFljNXBSd3ZmeE5Vckpac3JzRGNEcUg5SzBPV3NmTURD?= =?utf-8?B?SEZUM3pTNktVZUUwM0IyMFRtN0wzTHdScnNHUkpjWWtNQUVEaWRKZ3JUUnFl?= =?utf-8?B?a1hFMFF5SDR5QXhKbk9uYlh6RlR1YkVRWm9CL3NBSU42ZjRsMFQ3ZXVESUlz?= =?utf-8?B?a0pmUnN3WklIQzFwZ0dsOXZPSklSaUxBclJpMk9YMEV1aXQwNmlLek1Qa3lJ?= =?utf-8?B?Ync0Y0ZTVzJsZ3k3amJCNExtQkd4b090ejFiTXNjSTVzbXhhVnh6dzQ3djA5?= =?utf-8?B?NlRHYVZLS0UrMTBoUHZxRHNmM3NscU1KUmJRbHpvNS9UdHpqcFRpVmdkaStV?= =?utf-8?B?eW9kSWJMektlUDVqUEx5SkFhSUYxaUZObWxkVzR4ZzJOd24wYkZVNkN3WWt2?= =?utf-8?B?bTZSYkZTV3FHME90UkV1RWt1MVQ2ZUR4cXNJckpnWitzZzZqcHMwNFZMMXNR?= =?utf-8?B?Z3dxYjRNcCtubDRqSnFBb2FDR3paazZBWlM1U2I1S1ZFdHdjcXZwVDh4cXZw?= =?utf-8?B?ZksraGJNbjMzdFpKRUYwakRxOWE0OGp1bElNNURvV2RtdGNycHpESnA3cndG?= =?utf-8?B?QXBhSHZXQy9NOE84MTVGN0pVK1F0VHZ1ampNcFdIcTZDSWNtcTJPQUkxL29P?= =?utf-8?B?aW00bitRRC9lQk9IK0tRRXA3Q1lVQWkxd3ppbnFiZkpYZmJFMG5FcURXaGQ1?= =?utf-8?B?SHlrTUJDS0dndHBOTE5kdHRVRytnci8vZHRPUEh6VHZLbTljeTRFZ0hYRm5s?= =?utf-8?B?NVZzN3ViWnNEUkg2SEZlMGFaN0JBc3MyMWp3L0hsakVJeExlOGJ3aGJqTC9D?= =?utf-8?B?Sjh4ZUJrbkQ0Q0Jpcm1wT2lKcWhaWHpWWnY2U1JROUtMVWRUdjZxeEk5RWRs?= =?utf-8?B?MWRla0YyL0owRlUvdjJRa2NsYTkvTFRBcmlzQTQxN2IvWWRoVzF3amFTdzFk?= =?utf-8?B?TjE2S3VxZ1U3Y0hVa3pueTJ4RjVBcXlBZ0lyS3NISTFCWmpiQzRmWE43RVJB?= =?utf-8?B?UFVLMlp5NmNKY3UvYTJZQXgrMHJMTUlRL2tNMXdjc2VRcFZqSngzUG1pOXZF?= =?utf-8?B?Q3JWWGNiTDJpUWJsSjdIZVVCdnhReFlaRkpFTWlPZ3RrcVM1S3VuTlMydjJ5?= =?utf-8?B?UU4zb252SE85UStFbC8ydUVWV2M4UnM3VWZpZTRkWXRpNkVjcTlXdURRM0h3?= =?utf-8?B?LzYxcWJUWmh1b2dxSGo3dktJaGcxL1FQWngxWmNYL25vSnBHNTF2QlF1aFJP?= =?utf-8?B?UHM3MDRPdzVjY01MMWV4MGMwZCtnUE5yS001MnduWnorTWhQcDVrVC9QS20v?= =?utf-8?B?NWFNV3p1dDFJQzdkTS9vQ1hvc2lEWktSZHZDUzc5bmI1MG80MU4xZUVUczVm?= =?utf-8?B?N2tNaGRiZGJxYUdMVmhidzI3Z3QyclVieU81bWVZNWdIZUJORGtoTnlVSHJL?= =?utf-8?B?cVo4Y0dLOGFzRE1ZR01qa3VWaGJtc2dyYlozaTJYZ25jQjN4M3BrZGI2UURK?= =?utf-8?B?cUE9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: 039293fa-e57c-4e86-2267-08dce75f53d2 X-MS-Exchange-CrossTenant-AuthSource: IA1PR11MB7824.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2024 06:06:19.6386 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: EAikJSscn16ot57aX+uel9mjSn/Q7DW8Fz8gQE/O19qjUHMxx6SSXXWFWXQe1dh6niGuXfJ5AaH9OowPMcK9pQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB6028 X-OriginatorOrg: intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-BeenThere: igt-dev@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development mailing list for IGT GPU Tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" CgpPbiAxMy4wOS4yMDI0IDEyOjQ0LCBLYW1pbCBLb25pZWN6bnkgd3JvdGU6Cj4gRnJvbTogUnlz emFyZCBLbm9wIDxyeXN6YXJkLmtub3BAaW50ZWwuY29tPgo+IAo+IFRoZSBtZW93X2ZmdCBsaWJy YXJ5IHByb3ZpZGVzIGEgc2ltcGxlIGFuZCBwZXJtaXNzaXZlbHktbGljZW5zZWQgRmFzdAo+IEZv dXJpZXIgVHJhbnNmb3JtIGltcGxlbWVudGF0aW9uLiBJdCBpcyBhbiBhbHRlcm5hdGl2ZSBmb3Ig R1NMJ3MgRkZULgo+IAo+IFRoZSBsaWJyYXJ5IHdhcyBtb2RpZmllZCB0byBjb25mb3JtIHRvIHRo ZSBJR1QncyBjb21waWxlciB3YXJuaW5nIGZsYWdzCj4gYW5kIHRvIHVzZSBkb3VibGVzIGluc3Rl YWQgb2YgZmxvYXRzIGJ5IGRlZmF1bHQgZm9yIGhpZ2hlciBhY2N1cmFjeS4KPiAKPiB2MjogUmVw bGFjZSBsaWNlbmNlIHdpdGggZXF1aXZhbGVudCBTUERYIDBCU0QgKEthbWlsKQo+IAoKUmV2aWV3 ZWQtYnk6IFBldGVyIFNlbm5hIFRzY2h1ZGluIDxwZXRlci5zZW5uYUBsaW51eC5pbnRlbC5jb20+ Cj4gU2lnbmVkLW9mZi1ieTogUnlzemFyZCBLbm9wIDxyeXN6YXJkLmtub3BAaW50ZWwuY29tPgo+ IFNpZ25lZC1vZmYtYnk6IEthbWlsIEtvbmllY3pueSA8a2FtaWwua29uaWVjem55QGxpbnV4Lmlu dGVsLmNvbT4KPiAtLS0KPiAgbGliL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgIHwgICAgMSAr Cj4gIGxpYi92ZW5kb3IvbWVvd19mZnQvbWVvd19mZnQuYyB8ICAgMTIgKwo+ICBsaWIvdmVuZG9y L21lb3dfZmZ0L21lb3dfZmZ0LmggfCAyNDAyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCj4gIDMgZmlsZXMgY2hhbmdlZCwgMjQxNSBpbnNlcnRpb25zKCspCj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBsaWIvdmVuZG9yL21lb3dfZmZ0L21lb3dfZmZ0LmMKPiAgY3JlYXRlIG1vZGUgMTAw NjQ0IGxpYi92ZW5kb3IvbWVvd19mZnQvbWVvd19mZnQuaAo+IAo+IGRpZmYgLS1naXQgYS9saWIv bWVzb24uYnVpbGQgYi9saWIvbWVzb24uYnVpbGQKPiBpbmRleCBiMTA0MTBjOGEuLmRmZjhiNDcy OCAxMDA2NDQKPiAtLS0gYS9saWIvbWVzb24uYnVpbGQKPiArKysgYi9saWIvbWVzb24uYnVpbGQK PiBAQCAtMTE5LDYgKzExOSw3IEBAIGxpYl9zb3VyY2VzID0gWwo+ICAKPiAgCSMgVmVuZG9yZWQg bGlicmFyaWVzOgo+ICAJJ3ZlbmRvci91d2lsZG1hdC91d2lsZG1hdC5jJywKPiArCSd2ZW5kb3Iv bWVvd19mZnQvbWVvd19mZnQuYycsCj4gIF0KPiAgCj4gIGxpYl9kZXBzID0gWwo+IGRpZmYgLS1n aXQgYS9saWIvdmVuZG9yL21lb3dfZmZ0L21lb3dfZmZ0LmMgYi9saWIvdmVuZG9yL21lb3dfZmZ0 L21lb3dfZmZ0LmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMC4uYTFl YzUwNGNkCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2xpYi92ZW5kb3IvbWVvd19mZnQvbWVvd19m ZnQuYwo+IEBAIC0wLDAgKzEsMTIgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IDBC U0QKPiArCj4gKyNkZWZpbmUgTUVPV19GRlRfSU1QTEVNRU5UQVRJT04KPiArI2RlZmluZSBNRU9X X0ZMT0FUX1RZUEUgZG91YmxlCj4gKyNpbmNsdWRlICJtZW93X2ZmdC5oIgo+ICsKPiArLyoKPiAr ICogVGhpcyBpcyBhIGR1bW15IGZpbGUgdG8gYnVpbGQgdGhlIG9iamVjdCBmaWxlIGNvbnRhaW5p bmcKPiArICogdGhlIG1lb3dfZmZ0IGltcGxlbWVudGF0aW9uLiBBbGwgY29kZSBzaG91bGQgZ28g aW50byB0aGUKPiArICogaGVhZGVyIGl0c2VsZi4gSWYgeW91IHdhbnQgdG8gdXNlIGl0IGluIGFu eSBvdGhlciBmaWxlLAo+ICsgKiBqdXN0ICNpbmNsdWRlIHRoZSBoZWFkZXIgd2l0aG91dCBkZWZp bmluZyBNRU9XX0ZGVF9JTVBMLgo+ICsgKi8KPiBkaWZmIC0tZ2l0IGEvbGliL3ZlbmRvci9tZW93 X2ZmdC9tZW93X2ZmdC5oIGIvbGliL3ZlbmRvci9tZW93X2ZmdC9tZW93X2ZmdC5oCj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAuLjAyNjkyMTFlYQo+IC0tLSAvZGV2L251 bGwKPiArKysgYi9saWIvdmVuZG9yL21lb3dfZmZ0L21lb3dfZmZ0LmgKPiBAQCAtMCwwICsxLDI0 MDIgQEAKPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IDBCU0QgKi8KPiArLyoKPiArICAg IEltcG9ydGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL0pvZGlUaGVUaWdnZXIvbWVvd19mZnQg KyBQdWxsIFJlcXVlc3QgIzExCj4gKwo+ICsgICAgQ2hhbmdlcyBmb3IgaWd0LWdwdS10b29sczoK PiArICAgIC0gRGVmYXVsdCBNRU9XX0ZMT0FUX1RZUEUgaXMgbm93IGRvdWJsZQo+ICsgICAgLSBB ZGRlZCBleHRyYSBmdW5jdGlvbiBwcm90b3R5cGVzIHRvIHNhdGlzZnkgLVdtaXNzaW5nLXByb3Rv dHlwZXMKPiArICAgIC0gSG9pc3RlZCB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgdG8gc2F0aXNmeSAt V2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudAo+ICsqLwo+ICsvKgo+ICsgICAgbWVvd19mZnQu IE15IEVhc3kgT3Jlc29tZSBXb25kZXJmdWwgRmFzdCBGb3VyaWVyIFRyYW5zZm9ybS4KPiArICAg IENvcHlyaWdodCAoQykgMjAxNyBSaWNoYXJkIE1heHdlbGwgPGpvZGkudGhlLnRpZ2dlckBnbWFp bC5jb20+Cj4gKyovCj4gKwo+ICsjaWZuZGVmIE1FT1dfRkZUCj4gKyNkZWZpbmUgTUVPV19GRlQK PiArCj4gKyNpbmNsdWRlIDxzdGRsaWIuaD4KPiArLy8gZm9yIHNpemVfdCwgYWJvcnQKPiArCj4g KyNpZmRlZiBfX2NwbHVzcGx1cwo+ICtleHRlcm4gIkMiIHsKPiArI2VuZGlmCj4gKwo+ICsvLyBD LUFQSSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsKPiArLy8gQ2FuIGJlIGZsb2F0LCBkb3VibGUgb3IgbG9u ZyBkb3VibGUKPiArI2lmbmRlZiBNRU9XX0ZMT0FUX1RZUEUKPiArI2RlZmluZSBNRU9XX0ZMT0FU X1RZUEUgZG91YmxlCj4gKyNlbmRpZgo+ICsKPiArdHlwZWRlZiBNRU9XX0ZMT0FUX1RZUEUgTWVv d19GbG9hdDsKPiArCj4gK3R5cGVkZWYgc3RydWN0IE1lb3dfRkZUX0NvbXBsZXgKPiArewo+ICsg ICAgTWVvd19GbG9hdCByOwo+ICsgICAgTWVvd19GbG9hdCBqOwo+ICt9Cj4gK01lb3dfRkZUX0Nv bXBsZXg7Cj4gKwo+ICtzdHJ1Y3QgTWVvd19GRlRfV29ya3NldDsKPiArc3RydWN0IE1lb3dfRkZU X1dvcmtzZXRfUmVhbDsKPiArCj4gK3NpemVfdCBtZW93X2ZmdF9nZW5lcmF0ZV93b3Jrc2V0Cj4g KygKPiArICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgIE4KPiArICAgICwgc3RydWN0IE1l b3dfRkZUX1dvcmtzZXQqIHdvcmtzZXQKPiArKTsKPiArLy8gcmV0dXJucyB0aGUgc2l6ZSBvZiB0 aGUgd29ya3NldCBpZiBudWxsIGlzIHBhc3NlZC4gMCBpZiBOIGlzIGludmFsaWQuCj4gKwo+ICtz aXplX3QgbWVvd19mZnRfZ2VuZXJhdGVfd29ya3NldF9yZWFsCj4gKygKPiArICAgICAgaW50ICAg ICAgICAgICAgICAgICAgICAgICAgICAgTgo+ICsgICAgLCBzdHJ1Y3QgTWVvd19GRlRfV29ya3Nl dF9SZWFsKiB3b3Jrc2V0Cj4gKyk7Cj4gKy8vIHJldHVybnMgdGhlIHNpemUgb2YgdGhlIHdvcmtz ZXQgaWYgbnVsbCBpcyBwYXNzZWQuIDAgaWYgTiBpcyBpbnZhbGlkLgo+ICsKPiArdW5zaWduZWQg bWVvd19mZnRfaXNfc2xvdyAgICAgKGNvbnN0IHN0cnVjdCBNZW93X0ZGVF9Xb3Jrc2V0KiAgICAg IHdvcmtzZXQpOwo+ICt1bnNpZ25lZCBtZW93X2ZmdF9pc19zbG93X3JlYWwoY29uc3Qgc3RydWN0 IE1lb3dfRkZUX1dvcmtzZXRfUmVhbCogd29ya3NldCk7Cj4gKy8vIHJldHVybnMgbm9uLXplcm8g aWYgdGhlIGZmdCBoYXMgYSBzbG93IGRmdCBpbiBhbnkgb25lIG9mIGl0cyBzdGFnZXMuCj4gKwo+ ICsvLyBDLUFQSSAoZmZ0cykgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsKPiArLy8gTk9URVM6Cj4gKy8vIGNvdW50b2Yo b3V0KSA9PSBjb3VudG9mKGluKS4KPiArLy8gSW4gb3JkZXIgdG8gZG8gdGhhdCBJIGhhdmUgbWl4 ZWQgb3V0WzBdIHdpdGggb3V0W04vMl0uIFRoYXQgaXM6Cj4gKy8vIG91dFswXS5yID09IG91dFsw XS5yLCBvdXRbMF0uaiA9IG91dFtOLzJdLnIKPiArCj4gKwo+ICt2b2lkIG1lb3dfZmZ0X3JlYWwK PiArKAo+ICsgICAgICBjb25zdCBzdHJ1Y3QgTWVvd19GRlRfV29ya3NldF9SZWFsKiB3b3Jrc2V0 Cj4gKyAgICAsIGNvbnN0IE1lb3dfRmxvYXQqICAgICAgICAgICAgICAgICAgIGluCj4gKyAgICAs IE1lb3dfRkZUX0NvbXBsZXgqICAgICAgICAgICAgICAgICAgIG91dAo+ICspOwo+ICsKPiArdm9p ZCBtZW93X2ZmdF9yZWFsX2kKPiArKAo+ICsgICAgICBjb25zdCBzdHJ1Y3QgTWVvd19GRlRfV29y a3NldF9SZWFsKiB3b3Jrc2V0Cj4gKyAgICAsIGNvbnN0IE1lb3dfRkZUX0NvbXBsZXgqICAgICAg ICAgICAgIGluCj4gKyAgICAsIE1lb3dfRkZUX0NvbXBsZXgqICAgICAgICAgICAgICAgICAgIHRl bXAKPiArICAgICwgTWVvd19GbG9hdCogICAgICAgICAgICAgICAgICAgICAgICAgb3V0Cj4gKyk7 Cj4gKwo+ICt2b2lkIG1lb3dfZmZ0Cj4gKygKPiArICAgICAgY29uc3Qgc3RydWN0IE1lb3dfRkZU X1dvcmtzZXQqIGRhdGEKPiArICAgICwgY29uc3QgTWVvd19GRlRfQ29tcGxleCogICAgICAgIGlu Cj4gKyAgICAsIE1lb3dfRkZUX0NvbXBsZXgqICAgICAgICAgICAgICBvdXQKPiArKTsKPiArCj4g K3ZvaWQgbWVvd19mZnRfaQo+ICsoCj4gKyAgICAgIGNvbnN0IHN0cnVjdCBNZW93X0ZGVF9Xb3Jr c2V0KiBkYXRhCj4gKyAgICAsIGNvbnN0IE1lb3dfRkZUX0NvbXBsZXgqICAgICAgICBpbgo+ICsg ICAgLCBNZW93X0ZGVF9Db21wbGV4KiAgICAgICAgICAgICAgb3V0Cj4gKyk7Cj4gKwo+ICsvLyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsKPiArI2lmZGVmIF9fY3BsdXNwbHVzCj4gK30KPiArI2Vu ZGlmCj4gKwo+ICsjZW5kaWYgLy8gTUVPV19GRlQKPiArCj4gKyNpZmRlZiBNRU9XX0ZGVF9JTVBM RU1FTlRBVElPTgo+ICsKPiArLy8gUmVhZGluZyBMaXN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArLy8KPiArLy8gSXQn cyBhIGNpcmNsZSEgLT4gSG93IEZGVHMgX2FjdHVhbGx5XyB3b3JrCj4gKy8vIGh0dHA6Ly9iZXR0 ZXJleHBsYWluZWQuY29tL2FydGljbGVzL2FuLWludGVyYWN0aXZlLWd1aWRlLXRvLXRoZS1mb3Vy aWVyLXRyYW5zZm9ybS8KPiArLy8KPiArLy8gSG93IHRvIGdldCByYWRpeC0yLCAzLCA0LCBhbmQg NSBmb3JtdWxhczoKPiArLy8gaHR0cDovL3d3dy5icmlhbmdvdWdoLmNvbS9mZnRhbGdvcml0aG1z LnBkZiBwYWdlcyAxOCBhbmQgMTkKPiArLy8KPiArLy8gSG93IGRvIG1ha2UgYSBmYXN0ZXIgZmZ0 IHdoZW4gb25seSBkZWFsaW5nIHdpdGggcmVhbCAobm9uLWNvbXBsZXgpIGlucHV0cy4KPiArLy8g KFdhcm5pbmcsIHRoZSBtYXRocyBpcyBjb25mdXNpbmcgZHVlIHRvIGluY29uc2lzdGVuIGZvcm11 bGFzIGFuZCBhc3N1bXB0aW9ucykKPiArLy8gaHR0cDovL3d3dy5lbmdpbmVlcmluZ3Byb2R1Y3Rp dml0eXRvb2xzLmNvbS9zdHVmZi9UMDAwMS9QVDEwLkhUTQo+ICsvLwo+ICsvLyBGaW5hbGx5LCBr bm93IHRoYXQgZmZ0cyBhcmUgcHJldHR5IG11Y2ggYXMgZmFzdCBhcyB5b3UgY2FuIGdldCwgeW91 IG5lZWQKPiArLy8gdG8gc3RhcnQgbWFraW5nIHRoZW0gY2FjaGUgZnJpZW5kbHkgdG8gZ2V0IGFu eSBleHRyYSBzcGVlZC4KPiArLy8gaHR0cHM6Ly9tYXRoLm1pdC5lZHUvfnN0ZXZlbmovMTguMzM1 L0ZGVFctQWxhbi0yMDA4LnBkZgo+ICsvLwo+ICsvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsK PiArI2luY2x1ZGUgPG1hdGguaD4KPiArI2luY2x1ZGUgPHN0ZGludC5oPgo+ICsKPiArdHlwZWRl ZiBjb25zdCBNZW93X0ZGVF9Db21wbGV4IENvbXBsZXg7Cj4gKwo+ICsjZGVmaW5lIE1FT1dfVEFV IDYuMjgzMTg1MzA3MTc5NTg2NDc2OTI1Mjg2NzY2NTU5MDA1NzY4Mzk0MzM4Nzk4NzUwMjExNjQx OTQ5ODg5Cj4gKwo+ICsvLyBQbHVtYmluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsKPiArdHlwZWRlZiBzdHJ1 Y3QgTWVvd19GZnRfU3RhZ2VzCj4gK3sKPiArICAgIHVuc2lnbmVkICBjb3VudDsKPiArICAgIHVu c2lnbmVkKiByYWRpeDsKPiArICAgIHVuc2lnbmVkKiByZW1haW5kZXI7Cj4gKyAgICB1bnNpZ25l ZCogb2Zmc2V0czsKPiArfQo+ICtNZW93X0ZmdF9TdGFnZXM7Cj4gKwo+ICt0eXBlZGVmIHN0cnVj dCBNZW93X0ZGVF9Xb3Jrc2V0Cj4gK3sKPiArICAgIGludCAgICAgICAgICAgICAgIE47Cj4gKwo+ ICsgICAgTWVvd19GRlRfQ29tcGxleCogd247Cj4gKyAgICAvLyBOb24tbnVsbCBvbmx5IGRlZmlu ZWQgaWYgdGhlcmUgaXMgYSBzbG93LWRmdCBhcyBvbmUgb2YgdGhlIHJhZGl4IHN0YWdlcy4KPiAr Cj4gKyAgICBNZW93X0ZGVF9Db21wbGV4KiB3bl9vcmRlcmVkOwo+ICsgICAgLy8gU2VxdWVudGlh bGx5IG9yZGVyZWQgcGVyIHN0YWdlLCB3aWxsIGJlIGR1cGxpY2F0ZXMgYmV0d2VlbiBzdGFnZXMu Cj4gKwo+ICsgICAgTWVvd19GZnRfU3RhZ2VzICAgc3RhZ2VzOwo+ICt9Cj4gK01lb3dfRkZUX1dv cmtzZXQ7Cj4gKwo+ICt0eXBlZGVmIHN0cnVjdCBNZW93X0ZGVF9Xb3Jrc2V0X1JlYWwKPiArewo+ ICsgICAgTWVvd19GRlRfQ29tcGxleCogd18ybjsKPiArICAgIE1lb3dfRkZUX1dvcmtzZXQgIGhh bGY7Cj4gK30KPiArTWVvd19GRlRfV29ya3NldF9SZWFsOwo+ICsKPiArdHlwZWRlZiBzdHJ1Y3Qg TWVvd19TdGFnZV9JbmZvCj4gK3sKPiArICAgIHVuc2lnbmVkIGlzX3Nsb3c7Cj4gKyAgICB1bnNp Z25lZCBzdGFnZV9jb3VudDsKPiArICAgIHVuc2lnbmVkIHdfY291bnQ7Cj4gK30KPiArTWVvd19T dGFnZV9JbmZvOwo+ICsKPiArLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tIElHVCBwcm90b3R5cGUg Y2hhbmdlcyBzdGFydCBoZXJlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsKPiArdW5zaWduZWQg bWVvd19pc19jb2RlbGV0KHVuc2lnbmVkIHJhZGl4KTsKPiArdm9pZCBtZW93X21ha2VfdHdpZGRs ZXModW5zaWduZWQgbiwgdW5zaWduZWQgY291bnQsIE1lb3dfRkZUX0NvbXBsZXgqIHcpOwo+ICt1 bnNpZ25lZCBtZW93X21ha2VfdHdpZGRsZXNfc2VxdWVudGlhbCh1bnNpZ25lZCBuLCBNZW93X0ZG VF9Db21wbGV4KiB3LCBNZW93X0ZmdF9TdGFnZXMqIHN0YWdlcyk7Cj4gK01lb3dfU3RhZ2VfSW5m byBtZW93X2NhbGN1bGF0ZV9zdGFnZXModW5zaWduZWQgbiwgTWVvd19GRlRfV29ya3NldCogd29y a3NldCk7Cj4gKwo+ICt2b2lkIG1lb3dfZGZ0X25fZGl0KGNvbnN0IE1lb3dfRkZUX0NvbXBsZXgq IHdfbiwKPiArICAgICAgICAgICAgICAgICAgICBNZW93X0ZGVF9Db21wbGV4KiBvdXQsCj4gKyAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY291bnQsCj4gKyAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgd19tdWx0aXBsaWVyLAo+ICsgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHJh ZGl4LAo+ICsgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIE4sCj4gKyAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgcmV2ZXJzZSk7Cj4gKwo+ICt2b2lkIG1lb3dfcmFkaXhfMl9kaXQoY29u c3QgTWVvd19GRlRfQ29tcGxleCogd19uLCBNZW93X0ZGVF9Db21wbGV4KiBvdXQsIHVuc2lnbmVk IGNvdW50KTsKPiArdm9pZCBtZW93X3JhZGl4XzNfZGl0KGNvbnN0IE1lb3dfRkZUX0NvbXBsZXgq IHdfbiwgTWVvd19GRlRfQ29tcGxleCogb3V0LCB1bnNpZ25lZCBjb3VudCk7Cj4gK3ZvaWQgbWVv d19yYWRpeF80X2RpdChjb25zdCBNZW93X0ZGVF9Db21wbGV4KiB3X24sIE1lb3dfRkZUX0NvbXBs ZXgqIG91dCwgdW5zaWduZWQgY291bnQpOwo+ICt2b2lkIG1lb3dfcmFkaXhfNV9kaXQoY29uc3Qg TWVvd19GRlRfQ29tcGxleCogd19uLCBNZW93X0ZGVF9Db21wbGV4KiBvdXQsIHVuc2lnbmVkIGNv dW50KTsKPiArCj4gK3ZvaWQgbWVvd19yYWRpeF8yX2RpdF9pKGNvbnN0IE1lb3dfRkZUX0NvbXBs ZXgqIHdfbiwgTWVvd19GRlRfQ29tcGxleCogb3V0LCB1bnNpZ25lZCBjb3VudCk7Cj4gK3ZvaWQg bWVvd19yYWRpeF8zX2RpdF9pKGNvbnN0IE1lb3dfRkZUX0NvbXBsZXgqIHdfbiwgTWVvd19GRlRf Q29tcGxleCogb3V0LCB1bnNpZ25lZCBjb3VudCk7Cj4gK3ZvaWQgbWVvd19yYWRpeF80X2RpdF9p KGNvbnN0IE1lb3dfRkZUX0NvbXBsZXgqIHdfbiwgTWVvd19GRlRfQ29tcGxleCogb3V0LCB1bnNp Z25lZCBjb3VudCk7Cj4gK3ZvaWQgbWVvd19yYWRpeF81X2RpdF9pKGNvbnN0IE1lb3dfRkZUX0Nv bXBsZXgqIHdfbiwgTWVvd19GRlRfQ29tcGxleCogb3V0LCB1bnNpZ25lZCBjb3VudCk7Cj4gKwo+ ICt2b2lkIG1lb3dfcmVjdXJzaXZlX2ZmdF9taXhlZF9tZW93X3JhZGl4X2RpdChjb25zdCBNZW93 X0ZGVF9Xb3Jrc2V0KiBmZnQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIHN0YWdlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDb21wbGV4KiBpbiwKPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTWVvd19GRlRfQ29tcGxleCogb3V0LAo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB3X211bCk7Cj4gKwo+ ICt2b2lkIG1lb3dfcmVjdXJzaXZlX2ZmdF9taXhlZF9tZW93X3JhZGl4X2RpdF9pKGNvbnN0IE1l b3dfRkZUX1dvcmtzZXQqIGZmdCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBzdGFnZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDb21wbGV4KiBpbiwKPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW93X0ZGVF9Db21wbGV4KiBvdXQsCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgd19t dWwpOwo+ICsKPiArLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBJR1QgcHJvdG90eXBlIGNoYW5n ZXMgZW5kIGhlcmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsKPiArdW5zaWduZWQgbWVvd19p c19jb2RlbGV0KHVuc2lnbmVkIHJhZGl4KQo+ICt7Cj4gKyAgICByZXR1cm4gKChyYWRpeCA8PSA1 KSB8fCAocmFkaXggPT0gOCkpOwo+ICt9Cj4gKwo+ICt2b2lkIG1lb3dfbWFrZV90d2lkZGxlcwo+ ICsoCj4gKyAgICAgIHVuc2lnbmVkICAgICAgICAgIG4KPiArICAgICwgdW5zaWduZWQgICAgICAg ICAgY291bnQKPiArICAgICwgTWVvd19GRlRfQ29tcGxleCogdwo+ICspCj4gK3sKPiArICAgIGNv bnN0IGRvdWJsZSBuaSA9IDEuMGYgLyBuOwo+ICsgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8 IGNvdW50OyArK2kpCj4gKyAgICB7Cj4gKyAgICAgICAgd1tpXS5yID0gKE1lb3dfRmxvYXQpIGNv cyhNRU9XX1RBVSAqIGkgKiBuaSk7Cj4gKyAgICAgICAgd1tpXS5qID0gKE1lb3dfRmxvYXQpIHNp bihNRU9XX1RBVSAqIGkgKiBuaSk7Cj4gKyAgICB9Cj4gK30KPiArCj4gK3Vuc2lnbmVkIG1lb3df bWFrZV90d2lkZGxlc19zZXF1ZW50aWFsCj4gKygKPiArICAgICAgdW5zaWduZWQgICAgICAgICAg bgo+ICsgICAgLCBNZW93X0ZGVF9Db21wbGV4KiB3Cj4gKyAgICAsIE1lb3dfRmZ0X1N0YWdlcyog IHN0YWdlcwo+ICspCj4gKy8vIFJldHVybnMgbnVtYmVyIG9mIFcgY29uc3RhbnRzIG5lZWRlZC4K PiArewo+ICsgICAgLy8gRmlndXJlIG91dCB0aGUgdGlkZGxlIG9mZnNldHMuCj4gKyAgICB1bnNp Z25lZCB3X2NvdW50ID0gMDsKPiArICAgIHsKPiArICAgICAgICB1bnNpZ25lZCBvZmZzZXQgPSAw Owo+ICsKPiArICAgICAgICBmb3IgKHVuc2lnbmVkIHMgPSAwOyBzIDwgc3RhZ2VzLT5jb3VudDsg cysrKQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgdW5zaWduZWQgciAgICAgPSBzdGFnZXMt PnJhZGl4W3NdOwo+ICsgICAgICAgICAgICB1bnNpZ25lZCBjb3VudCA9IHN0YWdlcy0+cmVtYWlu ZGVyW3NdOwo+ICsKPiArICAgICAgICAgICAgdW5zaWduZWQgYW1vdW50ID0gbWVvd19pc19jb2Rl bGV0KHIpID8gKHIgLSAxKSAqIChjb3VudCAtIDEpIDogMHU7Cj4gKwo+ICsgICAgICAgICAgICBz dGFnZXMtPm9mZnNldHNbc10gID0gYW1vdW50Owo+ICsgICAgICAgICAgICBvZmZzZXQgICAgICAg ICAgICAgKz0gYW1vdW50Owo+ICsgICAgICAgIH0KPiArCj4gKyAgICAgICAgd19jb3VudCA9IG9m ZnNldDsKPiArCj4gKyAgICAgICAgZm9yICh1bnNpZ25lZCBzID0gMDsgcyA8IHN0YWdlcy0+Y291 bnQ7IHMrKykKPiArICAgICAgICB7Cj4gKyAgICAgICAgICAgIHVuc2lnbmVkIGNvdW50ID0gc3Rh Z2VzLT5vZmZzZXRzW3NdOwo+ICsgICAgICAgICAgICBvZmZzZXQgLT0gY291bnQ7Cj4gKyAgICAg ICAgICAgIHN0YWdlcy0+b2Zmc2V0c1tzXSA9IG9mZnNldDsKPiArICAgICAgICB9Cj4gKyAgICB9 Cj4gKwo+ICsgICAgLy8gRmlsbCBpbiB0aGUgdHdpZGRsZXMgc28gdGhhdCB0aGV5IGFyZSBhY2Nl c3NlZCBzZXF1ZW50aWFsbHkgaW4gdGhlIHJhZGl4Cj4gKyAgICAvLyBjb2RlIGZvciBiZXN0IGNh Y2hlbGluZSB1c2UuCj4gKyAgICBpZiAodykKPiArICAgIHsKPiArICAgICAgICB1bnNpZ25lZCB3 X211bCA9IDE7Cj4gKyAgICAgICAgZG91YmxlICAgbmkgICAgPSAxLjAgLyBuOwo+ICsKPiArICAg ICAgICBmb3IgKHVuc2lnbmVkIHMgPSAwOyBzIDwgc3RhZ2VzLT5jb3VudDsgcysrKQo+ICsgICAg ICAgIHsKPiArICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgcmFkaXggID0gc3RhZ2VzLT5yYWRp eFtzXTsKPiArICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY291bnQgID0gc3RhZ2VzLT5yZW1h aW5kZXJbc107Cj4gKyAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG9mZnNldCA9IHN0YWdlcy0+ b2Zmc2V0c1tzXTsKPiArCj4gKyAgICAgICAgICAgIGlmIChtZW93X2lzX2NvZGVsZXQocmFkaXgp KQo+ICsgICAgICAgICAgICB7Cj4gKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAx IDsgaSA8IGNvdW50OyBpKyspCj4gKyAgICAgICAgICAgICAgICB7Cj4gKyAgICAgICAgICAgICAg ICAgICAgZm9yICh1bnNpZ25lZCBqID0gMTsgaiA8IHJhZGl4OyBqKyspCj4gKyAgICAgICAgICAg ICAgICAgICAgewo+ICsgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCB3X3gg PSBpICogaiAqIHdfbXVsOwo+ICsKPiArICAgICAgICAgICAgICAgICAgICAgICAgd1tvZmZzZXRd LnIgPSAoTWVvd19GbG9hdCkgY29zKE1FT1dfVEFVICogd194ICogbmkpOwo+ICsgICAgICAgICAg ICAgICAgICAgICAgICB3W29mZnNldF0uaiA9IChNZW93X0Zsb2F0KSBzaW4oTUVPV19UQVUgKiB3 X3ggKiBuaSk7Cj4gKwo+ICsgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQrKzsKPiArICAg ICAgICAgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgIH0K PiArCj4gKyAgICAgICAgICAgIHdfbXVsICAqPSByYWRpeDsKPiArICAgICAgICB9Cj4gKyAgICB9 Cj4gKwo+ICsgICAgcmV0dXJuIHdfY291bnQ7Cj4gK30KPiArCj4gK01lb3dfU3RhZ2VfSW5mbyBt ZW93X2NhbGN1bGF0ZV9zdGFnZXModW5zaWduZWQgbiwgTWVvd19GRlRfV29ya3NldCogd29ya3Nl dCkKPiArewo+ICsgICAgdW5zaWduZWQgaXNfc2xvdyA9IDB1Owo+ICsgICAgdW5zaWduZWQgc3Rh Z2UgICA9IDB1Owo+ICsgICAgdW5zaWduZWQgd19jb3VudCA9IDB1Owo+ICsKPiArICAgIHdoaWxl IChuID4gMSkKPiArICAgIHsKPiArICAgICAgICAvLyBwcmVtYWRlIGNvZGVsZXRzIDIsIDMsIDQs IDUsIDgKPiArICAgICAgICB1bnNpZ25lZCBpID0gODsKPiArICAgICAgICBmb3IgKDsgaSA+IDE7 IGktLSkKPiArICAgICAgICB7Cj4gKyAgICAgICAgICAgIGlmICgoaSA9PSA3KSB8fCAoaSA9PSA2 KSkKPiArICAgICAgICAgICAgewo+ICsgICAgICAgICAgICAgICAgLy8gZG9uJ3QgaGF2ZSByYWRp eC03IG9yIHJhZGl4LTYuCj4gKyAgICAgICAgICAgICAgICBjb250aW51ZTsKPiArICAgICAgICAg ICAgfQo+ICsKPiArICAgICAgICAgICAgaWYgKCEobiAlIGkpKQo+ICsgICAgICAgICAgICB7Cj4g KyAgICAgICAgICAgICAgICB3X2NvdW50ICs9ICgoaSAtIDEpICogKG4gLSAxKSk7Cj4gKyAgICAg ICAgICAgICAgICBicmVhazsKPiArICAgICAgICAgICAgfQo+ICsgICAgICAgIH0KPiArCj4gKyAg ICAgICAgLy8gYmFoLCBwbGFpbiBzbG93IGRmdCBpbnN0ZWFkCj4gKyAgICAgICAgaWYgKGkgPT0g MSkKPiArICAgICAgICB7Cj4gKyAgICAgICAgICAgIGlzX3Nsb3cgPSAxOwo+ICsgICAgICAgICAg ICBpICAgICAgID0gNzsKPiArICAgICAgICAgICAgZm9yICg7IGkgPD0gbjsgaSsrKQo+ICsgICAg ICAgICAgICB7Cj4gKyAgICAgICAgICAgICAgICBpZiAoIShuICUgaSkpCj4gKyAgICAgICAgICAg ICAgICB7Cj4gKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgICAgICB9 Cj4gKyAgICAgICAgICAgIH0KPiArICAgICAgICB9Cj4gKwo+ICsgICAgICAgIG4gLz0gaTsKPiAr Cj4gKyAgICAgICAgaWYgKHdvcmtzZXQpCj4gKyAgICAgICAgewo+ICsgICAgICAgICAgICB3b3Jr c2V0LT5zdGFnZXMucmFkaXhbc3RhZ2VdICAgICA9IGk7Cj4gKyAgICAgICAgICAgIHdvcmtzZXQt PnN0YWdlcy5yZW1haW5kZXJbc3RhZ2VdID0gbjsKPiArICAgICAgICB9Cj4gKwo+ICsgICAgICAg IHN0YWdlKys7Cj4gKyAgICB9Cj4gKwo+ICsgICAgewo+ICsgICAgICAgIE1lb3dfU3RhZ2VfSW5m byByZXN1bHQgPQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgICBpc19zbG93Cj4gKyAgICAg ICAgICAgICwgc3RhZ2UKPiArICAgICAgICAgICAgLCB3X2NvdW50Cj4gKyAgICAgICAgfTsKPiAr Cj4gKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKPiArICAgIH0KPiArfQo+ICsKPiArc2l6ZV90IG1l b3dfZmZ0X2dlbmVyYXRlX3dvcmtzZXQoaW50IE4sIE1lb3dfRkZUX1dvcmtzZXQqIHdvcmtzZXQp Cj4gK3sKPiArICAgIHNpemVfdCBzaXplX3dvcmtzZXQsIHNpemVfcmFkaXgsIHNpemVfcmVtYWlu ZGVyLCBzaXplX29mZnNldHM7Cj4gKyAgICBzaXplX3Qgc2l6ZV90d2lkZGxlcywgc2l6ZV90d2lk ZGxlc19vcmRlcmVkLCBzaXplX3RvdGFsOwo+ICsgICAgTWVvd19TdGFnZV9JbmZvIGluZm87Cj4g Kwo+ICsgICAgaWYgKE4gPCAyKQo+ICsgICAgewo+ICsgICAgICAgIC8vIFRvbyBzbWFsbC4KPiAr ICAgICAgICByZXR1cm4gMDsKPiArICAgIH0KPiArCj4gKyAgICBpbmZvID0gbWVvd19jYWxjdWxh dGVfc3RhZ2VzKE4sIE5VTEwpOwo+ICsKPiArICAgIHNpemVfd29ya3NldCAgID0gc2l6ZW9mKE1l b3dfRkZUX1dvcmtzZXQpOwo+ICsgICAgc2l6ZV9yYWRpeCAgICAgPSBpbmZvLnN0YWdlX2NvdW50 ICogc2l6ZW9mKGludCk7Cj4gKyAgICBzaXplX3JlbWFpbmRlciA9IGluZm8uc3RhZ2VfY291bnQg KiBzaXplb2YoaW50KTsKPiArICAgIHNpemVfb2Zmc2V0cyAgID0gaW5mby5zdGFnZV9jb3VudCAq IHNpemVvZihpbnQpOwo+ICsKPiArICAgIHNpemVfdHdpZGRsZXNfb3JkZXJlZCA9Cj4gKyAgICAg ICAgaW5mby53X2NvdW50ICogc2l6ZW9mKE1lb3dfRkZUX0NvbXBsZXgpOwo+ICsKPiArICAgIHNp emVfdHdpZGRsZXMgPQo+ICsgICAgICAgIE4gKiBzaXplb2YoTWVvd19GRlRfQ29tcGxleCkgKiBp bmZvLmlzX3Nsb3c7Cj4gKwo+ICsgICAgc2l6ZV90b3RhbCA9Cj4gKyAgICAgICAgICBzaXplX3dv cmtzZXQKPiArICAgICAgICArIHNpemVfdHdpZGRsZXMKPiArICAgICAgICArIHNpemVfcmFkaXgK PiArICAgICAgICArIHNpemVfcmVtYWluZGVyCj4gKyAgICAgICAgKyBzaXplX29mZnNldHMKPiAr ICAgICAgICArIHNpemVfdHdpZGRsZXNfb3JkZXJlZDsKPiArCj4gKyAgICBpZiAod29ya3NldCkK PiArICAgIHsKPiArICAgICAgICB1aW50OF90KiBkYXRhICAgICAgICAgICAgPSAodWludDhfdCop KHdvcmtzZXQpOwo+ICsKPiArICAgICAgICB1aW50OF90KiBkYXRhX3duICAgICAgICAgPSBkYXRh ICAgICAgICAgICArIHNpemVfd29ya3NldDsKPiArICAgICAgICB1aW50OF90KiBkYXRhX3JhZGl4 ICAgICAgPSBkYXRhX3duICAgICAgICArIHNpemVfdHdpZGRsZXM7Cj4gKyAgICAgICAgdWludDhf dCogZGF0YV9yZW1haW5kZXIgID0gZGF0YV9yYWRpeCAgICAgKyBzaXplX3JhZGl4Owo+ICsgICAg ICAgIHVpbnQ4X3QqIGRhdGFfb2Zmc2V0cyAgICA9IGRhdGFfcmVtYWluZGVyICsgc2l6ZV9vZmZz ZXRzOwo+ICsgICAgICAgIHVpbnQ4X3QqIGRhdGFfd25fb3JkZXJlZCA9IGRhdGFfb2Zmc2V0cyAg ICsgc2l6ZV9yZW1haW5kZXI7Cj4gKwo+ICsgICAgICAgIHdvcmtzZXQtPnduID0KPiArICAgICAg ICAgICAgKGluZm8uaXNfc2xvdykKPiArICAgICAgICAgICAgPyAoTWVvd19GRlRfQ29tcGxleCop KGRhdGFfd24pCj4gKyAgICAgICAgICAgIDogTlVMTDsKPiArCj4gKyAgICAgICAgd29ya3NldC0+ c3RhZ2VzLnJhZGl4ICAgICA9ICh1bnNpZ25lZCopKGRhdGFfcmFkaXgpOwo+ICsgICAgICAgIHdv cmtzZXQtPnN0YWdlcy5yZW1haW5kZXIgPSAodW5zaWduZWQqKShkYXRhX3JlbWFpbmRlcik7Cj4g KyAgICAgICAgd29ya3NldC0+c3RhZ2VzLm9mZnNldHMgICA9ICh1bnNpZ25lZCopKGRhdGFfb2Zm c2V0cyk7Cj4gKyAgICAgICAgd29ya3NldC0+c3RhZ2VzLmNvdW50ICAgICA9IGluZm8uc3RhZ2Vf Y291bnQ7Cj4gKyAgICAgICAgd29ya3NldC0+d25fb3JkZXJlZCAgICAgICA9IChNZW93X0ZGVF9D b21wbGV4KikoZGF0YV93bl9vcmRlcmVkKTsKPiArICAgICAgICB3b3Jrc2V0LT5OICAgICAgICAg ICAgICAgID0gTjsKPiArCj4gKyAgICAgICAgaWYgKHdvcmtzZXQtPnduKQo+ICsgICAgICAgIHsK PiArICAgICAgICAgICAgbWVvd19tYWtlX3R3aWRkbGVzKE4sIE4sIHdvcmtzZXQtPnduKTsKPiAr ICAgICAgICB9Cj4gKwo+ICsgICAgICAgIG1lb3dfY2FsY3VsYXRlX3N0YWdlcyhOLCB3b3Jrc2V0 KTsKPiArCj4gKyAgICAgICAgbWVvd19tYWtlX3R3aWRkbGVzX3NlcXVlbnRpYWwKPiArICAgICAg ICAoCj4gKyAgICAgICAgICAgICAgTgo+ICsgICAgICAgICAgICAsIHdvcmtzZXQtPnduX29yZGVy ZWQKPiArICAgICAgICAgICAgLCAmd29ya3NldC0+c3RhZ2VzCj4gKyAgICAgICAgKTsKPiArICAg IH0KPiArCj4gKyAgICByZXR1cm4gc2l6ZV90b3RhbDsKPiArfQo+ICsKPiArc2l6ZV90IG1lb3df ZmZ0X2dlbmVyYXRlX3dvcmtzZXRfcmVhbAo+ICsoCj4gKyAgICAgIGNvbnN0IGludCAgICAgICAg ICAgICAgTgo+ICsgICAgLCBNZW93X0ZGVF9Xb3Jrc2V0X1JlYWwqIHdvcmtzZXQKPiArKQo+ICt7 Cj4gKyAgICB1bnNpZ25lZCBOXzIsIE5fNDsKPiArICAgIHNpemVfdCBzaXplX3dvcmtzZXQsIHNp emVfd18ybiwgc2l6ZV9oYWxmOwo+ICsKPiArICAgIGlmICgoTiA8IDQpIHx8IChOICUgMikpCj4g KyAgICB7Cj4gKyAgICAgICAgLy8gVG9vIHNtYWxsIG9yIG5vdCBkaXZpc2libGUgYnkgdHdvLgo+ ICsgICAgICAgIHJldHVybiAwOwo+ICsgICAgfQo+ICsKPiArICAgIE5fMiA9IE4gLyAyOwo+ICsg ICAgTl80ID0gTiAvIDQ7Cj4gKwo+ICsgICAgc2l6ZV93b3Jrc2V0ID0gc2l6ZW9mKE1lb3dfRkZU X1dvcmtzZXRfUmVhbCk7Cj4gKyAgICBzaXplX3dfMm4gICAgPSAoTl80ICsgMSkgKiBzaXplb2Yo TWVvd19GRlRfQ29tcGxleCk7Cj4gKyAgICBzaXplX2hhbGYgICAgPSBtZW93X2ZmdF9nZW5lcmF0 ZV93b3Jrc2V0KE5fMiwgTlVMTCk7Cj4gKwo+ICsgICAgaWYgKHdvcmtzZXQpCj4gKyAgICB7Cj4g KyAgICAgICAgdWludDhfdCAqZGF0YSwgKmRhdGFfd18ybjsKPiArCj4gKyAgICAgICAgbWVvd19m ZnRfZ2VuZXJhdGVfd29ya3NldChOXzIsICZ3b3Jrc2V0LT5oYWxmKTsKPiArCj4gKyAgICAgICAg ZGF0YSAgICAgID0gKHVpbnQ4X3QqKSgmd29ya3NldC0+aGFsZik7Cj4gKyAgICAgICAgZGF0YV93 XzJuID0gZGF0YSArIHNpemVfaGFsZjsKPiArCj4gKyAgICAgICAgd29ya3NldC0+d18ybiA9IChN ZW93X0ZGVF9Db21wbGV4KikoZGF0YV93XzJuKTsKPiArCj4gKyAgICAgICAgbWVvd19tYWtlX3R3 aWRkbGVzKE4sIE5fNCArIDEsIHdvcmtzZXQtPndfMm4pOwo+ICsgICAgfQo+ICsKPiArICAgIHJl dHVybiBzaXplX3dvcmtzZXQgKyBzaXplX3dfMm4gKyBzaXplX2hhbGY7Cj4gK30KPiArCj4gKy8v IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKwo+ICt1bnNpZ25lZCBtZW93X2ZmdF9pc19zbG93KGNv bnN0IE1lb3dfRkZUX1dvcmtzZXQqIHdvcmtzZXQpCj4gK3sKPiArICAgIHJldHVybiAhISh3b3Jr c2V0LT53bik7Cj4gK30KPiArCj4gK3Vuc2lnbmVkIG1lb3dfZmZ0X2lzX3Nsb3dfcmVhbChjb25z dCBNZW93X0ZGVF9Xb3Jrc2V0X1JlYWwqIHdvcmtzZXQpCj4gK3sKPiArICAgIHJldHVybiBtZW93 X2ZmdF9pc19zbG93KCZ3b3Jrc2V0LT5oYWxmKTsKPiArfQo+ICsKPiArLy8gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KPiArCj4gK2lubGluZSBNZW93X0ZGVF9Db21wbGV4IG1lb3dfYWRkCj4gKygKPiAr ICAgICAgY29uc3QgTWVvd19GRlRfQ29tcGxleCBsaHMKPiArICAgICwgY29uc3QgTWVvd19GRlRf Q29tcGxleCByaHMKPiArKQo+ICt7Cj4gKyAgICBNZW93X0ZGVF9Db21wbGV4IHJlc3VsdCA9Cj4g KyAgICB7Cj4gKyAgICAgICAgICBsaHMuciArIHJocy5yCj4gKyAgICAgICAgLCBsaHMuaiArIHJo cy5qCj4gKyAgICB9Owo+ICsKPiArICAgIHJldHVybiByZXN1bHQ7Cj4gK30KPiArCj4gK2lubGlu ZSBNZW93X0ZGVF9Db21wbGV4IG1lb3dfc3ViCj4gKygKPiArICAgICAgY29uc3QgTWVvd19GRlRf Q29tcGxleCBsaHMKPiArICAgICwgY29uc3QgTWVvd19GRlRfQ29tcGxleCByaHMKPiArKQo+ICt7 Cj4gKyAgICBNZW93X0ZGVF9Db21wbGV4IHJlc3VsdCA9Cj4gKyAgICB7Cj4gKyAgICAgICAgICBs aHMuciAtIHJocy5yCj4gKyAgICAgICAgLCBsaHMuaiAtIHJocy5qCj4gKyAgICB9Owo+ICsKPiAr ICAgIHJldHVybiByZXN1bHQ7Cj4gK30KPiArCj4gK2lubGluZSBNZW93X0ZGVF9Db21wbGV4IG1l b3dfbmVnYXRlKGNvbnN0IE1lb3dfRkZUX0NvbXBsZXggbGhzKQo+ICt7Cj4gKyAgICBNZW93X0ZG VF9Db21wbGV4IHJlc3VsdCA9Cj4gKyAgICB7Cj4gKyAgICAgICAgICAtbGhzLnIKPiArICAgICAg ICAsIC1saHMuago+ICsgICAgfTsKPiArCj4gKyAgICByZXR1cm4gcmVzdWx0Owo+ICt9Cj4gKwo+ ICtpbmxpbmUgTWVvd19GRlRfQ29tcGxleCBtZW93X2Nvbmp1Z2F0ZShjb25zdCBNZW93X0ZGVF9D b21wbGV4IGxocykKPiArewo+ICsgICAgTWVvd19GRlRfQ29tcGxleCByZXN1bHQgPQo+ICsgICAg ewo+ICsgICAgICAgICAgIGxocy5yCj4gKyAgICAgICAgLCAtbGhzLmoKPiArICAgIH07Cj4gKwo+ ICsgICAgcmV0dXJuIHJlc3VsdDsKPiArfQo+ICsKPiAraW5saW5lIE1lb3dfRkZUX0NvbXBsZXgg bWVvd19tdWwKPiArKAo+ICsgICAgICBjb25zdCBNZW93X0ZGVF9Db21wbGV4IGxocwo+ICsgICAg LCBjb25zdCBNZW93X0ZGVF9Db21wbGV4IHJocwo+ICspCj4gK3sKPiArICAgIE1lb3dfRkZUX0Nv bXBsZXggcmVzdWx0ID0KPiArICAgIHsKPiArICAgICAgICAgIChsaHMuciAqIHJocy5yKSAtIChs aHMuaiAqIHJocy5qKQo+ICsgICAgICAgICwgKGxocy5yICogcmhzLmopICsgKGxocy5qICogcmhz LnIpCj4gKyAgICB9Owo+ICsKPiArICAgIHJldHVybiByZXN1bHQ7Cj4gK30KPiArCj4gK2lubGlu ZSBNZW93X0ZGVF9Db21wbGV4IG1lb3dfbXVsX2J5X2Nvbmp1Z2F0ZQo+ICsoCj4gKyAgICAgIGNv bnN0IE1lb3dfRkZUX0NvbXBsZXggbGhzCj4gKyAgICAsIGNvbnN0IE1lb3dfRkZUX0NvbXBsZXgg cmhzCj4gKykKPiArewo+ICsgICAgTWVvd19GRlRfQ29tcGxleCByZXN1bHQgPQo+ICsgICAgewo+ ICsgICAgICAgICAgKGxocy5yICogcmhzLnIpICsgKGxocy5qICogcmhzLmopCj4gKyAgICAgICAg LCAobGhzLmogKiByaHMucikgLSAobGhzLnIgKiByaHMuaikKPiArICAgIH07Cj4gKwo+ICsgICAg cmV0dXJuIHJlc3VsdDsKPiArfQo+ICsKPiAraW5saW5lIE1lb3dfRkZUX0NvbXBsZXggbWVvd19t dWxfYnlfaihjb25zdCBNZW93X0ZGVF9Db21wbGV4IGxocykKPiArewo+ICsgICAgTWVvd19GRlRf Q29tcGxleCByZXN1bHQgPQo+ICsgICAgewo+ICsgICAgICAgICAgLWxocy5qCj4gKyAgICAgICAg LCAgbGhzLnIKPiArICAgIH07Cj4gKwo+ICsgICAgcmV0dXJuIHJlc3VsdDsKPiArfQo+ICsKPiAr aW5saW5lIE1lb3dfRkZUX0NvbXBsZXggbWVvd19tdWxmCj4gKygKPiArICAgICAgY29uc3QgTWVv d19GRlRfQ29tcGxleCBsaHMKPiArICAgICwgICAgICAgTWVvd19GbG9hdCAgICAgICByaHMKPiAr KQo+ICt7Cj4gKyAgICBNZW93X0ZGVF9Db21wbGV4IHJlc3VsdCA9Cj4gKyAgICB7Cj4gKyAgICAg ICAgICBsaHMuciAqIHJocwo+ICsgICAgICAgICwgbGhzLmogKiByaHMKPiArICAgIH07Cj4gKwo+ ICsgICAgcmV0dXJuIHJlc3VsdDsKPiArfQo+ICsKPiArLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K PiArCj4gKy8vIGh0dHBzOi8vZGV2ZWxvcGVyY29tbXVuaXR5LnZpc3VhbHN0dWRpby5jb20vdC9m YXRhbC1lcnJvci1DMTAwMTotSW50ZXJuYWwtY29tcGlsZXItZXJyLzEzOTA2OTgKPiArLy8gaHR0 cHM6Ly9kZXZlbG9wZXJjb21tdW5pdHkudmlzdWFsc3R1ZGlvLmNvbS90L2J1Zy1pbi12aXN1YWwt Yy0yMDE5LWFuZC1iZWxvdy1pLXRoaW5rLWl0LWlzLXJlbGF0LzExMTk1MDAKPiArLy8gaHR0cHM6 Ly9kZXZlbG9wZXJjb21tdW5pdHkudmlzdWFsc3R1ZGlvLmNvbS90L29wdGltaXplZC1jb21waWxl ci1idWcvODQ2NTk3Cj4gKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPCAxOTMw KQo+ICsjZGVmaW5lIE1TVkNfQlVHRklYIHZvbGF0aWxlCj4gKyNlbHNlCj4gKyNkZWZpbmUgTVNW Q19CVUdGSVgKPiArI2VuZGlmCj4gKwo+ICt2b2lkIG1lb3dfZGZ0X25fZGl0Cj4gKygKPiArICAg ICAgY29uc3QgTWVvd19GRlRfQ29tcGxleCogd19uCj4gKyAgICAsIE1lb3dfRkZUX0NvbXBsZXgq ICAgICAgIG91dAo+ICsgICAgLCB1bnNpZ25lZCAgICAgICAgICAgICAgICBjb3VudAo+ICsgICAg LCB1bnNpZ25lZCAgICAgICAgICAgICAgICB3X211bHRpcGxpZXIKPiArICAgICwgdW5zaWduZWQg ICAgICAgICAgICAgICAgcmFkaXgKPiArICAgICwgdW5zaWduZWQgICAgICAgICAgICAgICAgTgo+ ICsgICAgLCB1bnNpZ25lZCAgICAgICAgICAgICAgICByZXZlcnNlCj4gKykKPiArewo+ICsgICAg TWVvd19GRlRfQ29tcGxleCBzY3JhdGNoWzIwNDhdOwo+ICsgICAgLy8gQ2FuIEkgZG8gc29tZXRo aW5nIHdpdGggdGhlIGtub3dsZWRnZSB0aGF0IG4gaXMgYWx3YXlzIG9kZD8KPiArCj4gKyAgICBp ZiAocmFkaXggPiAyMDQ4KQo+ICsgICAgewo+ICsgICAgICAgIGFib3J0KCk7Cj4gKyAgICAgICAg Ly8gcmVtb3ZpbmcgVkxBcywgc28gc2V0IGEgaGFyZCBsaW1pdCB3ZSBzdXBwb3J0Lgo+ICsgICAg fQo+ICsKPiArICAgIGZvciAodW5zaWduZWQgYnV0dGVyZmx5ID0gMDsgYnV0dGVyZmx5IDwgY291 bnQ7ICsrYnV0dGVyZmx5KQo+ICsgICAgewo+ICsgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7 IGkgPCByYWRpeDsgaSsrKQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgc2NyYXRjaFtpXSA9 IG91dFtpICogY291bnQgKyBidXR0ZXJmbHldOwo+ICsgICAgICAgIH0KPiArCj4gKyAgICAgICAg Zm9yICh1bnNpZ25lZCBpID0gMCA7IGkgPCByYWRpeCA7ICsraSkKPiArICAgICAgICB7Cj4gKyAg ICAgICAgICAgIE1TVkNfQlVHRklYIGNvbnN0IHVuc2lnbmVkIGluZGV4X291dCA9IGkgKiBjb3Vu dCArIGJ1dHRlcmZseTsKPiArCj4gKyAgICAgICAgICAgIC8vIFcwIGlzIGFsd2F5cyAxCj4gKyAg ICAgICAgICAgIE1lb3dfRkZUX0NvbXBsZXggc3VtID0gc2NyYXRjaFswXTsKPiArCj4gKyAgICAg ICAgICAgIGZvciAodW5zaWduZWQgaiA9IDE7IGogPCByYWRpeDsgKytqICkKPiArICAgICAgICAg ICAgewo+ICsgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgd2kgPSAoaiAqIHdfbXVsdGlw bGllciAqIGluZGV4X291dCkgJSBOOwo+ICsgICAgICAgICAgICAgICAgQ29tcGxleCAgICAgICAg dyAgPSB3X25bd2ldOwo+ICsgICAgICAgICAgICAgICAgQ29tcGxleCAgICAgICAgaW4gPSBzY3Jh dGNoW2pdOwo+ICsKPiArICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgcnI7Cj4gKyAgICAgICAg ICAgICAgICBNZW93X0Zsb2F0IGpqOwo+ICsKPiArICAgICAgICAgICAgICAgIGlmIChyZXZlcnNl KQo+ICsgICAgICAgICAgICAgICAgewo+ICsgICAgICAgICAgICAgICAgICAgIHJyID0gKGluLnIg KiB3LnIpIC0gKGluLmogKiB3LmopOwo+ICsgICAgICAgICAgICAgICAgICAgIGpqID0gKGluLnIg KiB3LmopICsgKGluLmogKiB3LnIpOwo+ICsgICAgICAgICAgICAgICAgfQo+ICsgICAgICAgICAg ICAgICAgZWxzZQo+ICsgICAgICAgICAgICAgICAgewo+ICsgICAgICAgICAgICAgICAgICAgIHJy ID0gKGluLnIgKiB3LnIpICsgKGluLmogKiB3LmopOwo+ICsgICAgICAgICAgICAgICAgICAgIGpq ID0gKGluLmogKiB3LnIpIC0gKGluLnIgKiB3LmopOwo+ICsgICAgICAgICAgICAgICAgfQo+ICsK PiArICAgICAgICAgICAgICAgIHN1bS5yICs9IHJyOwo+ICsgICAgICAgICAgICAgICAgc3VtLmog Kz0gamo7Cj4gKyAgICAgICAgICAgIH0KPiArCj4gKyAgICAgICAgICAgIG91dFtpbmRleF9vdXRd ID0gc3VtOwo+ICsgICAgICAgIH0KPiArICAgIH0KPiArfQo+ICsKPiArLy8gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KPiArCj4gKy8vIEFsZ29yaXRobXMgdGFrZW4gZnJvbQo+ICsvLyBodHRwOi8vd3d3 LmJyaWFuZ291Z2guY29tL2ZmdGFsZ29yaXRobXMucGRmCj4gKy8vIChlcXVhdGlvbnMgMTM1IHRv IDE0NikKPiArLy8gaW4sIG91dCBhbmQgdHdpZGRsZSBpbmRpY2llcyB0YWtlbiBmcm9tIGtpc3Nf ZmZ0Cj4gKy8vIEFsbCB0d2lkZGxlcyBhcmUgYXNzdW1lZCB0byBiZSBpZmZ0IGNhbGN1bGF0ZWQu IENvbmp1Z2F0aW9uIGlzIGRvbmUgaW4gdGhlCj4gKy8vIG1hdGhzLgo+ICsvLyBBbGwgdHdpZGRs ZSBpbnB1dCBhcnJheXMgYXJlIGFzc3VtZWQgdG8gYmUgc2VxdWVudGlhbGwgYWNjZXNzZWQuIFR3 aWRkbGUKPiArLy8gaW5kaWNpZXMgYXJlIHByZS1jYWxjdWxhdGVkLgo+ICsKPiArLy8gLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KPiArLy8gRm9yd2FyZAo+ICsvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ ICsKPiArdm9pZCBtZW93X3JhZGl4XzJfZGl0Cj4gKygKPiArICAgICAgY29uc3QgTWVvd19GRlRf Q29tcGxleCogd19uCj4gKyAgICAsIE1lb3dfRkZUX0NvbXBsZXgqICAgICAgIG91dAo+ICsgICAg LCB1bnNpZ25lZCAgICAgICAgICAgICAgICBjb3VudAo+ICspCj4gK3sKPiArICAgIC8vIGJ1dHRl cnlmbHkgMCBhbHdheXMgaGFzIHRoZSB0d2lkZGxlIGZhY3RvciA9PSAxLjBmCj4gKyAgICAvLyBz byBzcGVjaWFsIGNhc2UgdGhhdCBvbmUuCj4gKyAgICB7Cj4gKyAgICAgICAgQ29tcGxleCB6MCAg PSBvdXRbMF07Cj4gKyAgICAgICAgQ29tcGxleCB6MSAgPSBvdXRbY291bnRdOwo+ICsKPiArICAg ICAgICBvdXRbMF0gICAgID0gbWVvd19hZGQoejAsIHoxKTsKPiArICAgICAgICBvdXRbY291bnRd ID0gbWVvd19zdWIoejAsIHoxKTsKPiArICAgIH0KPiArCj4gKyAgICBmb3IgKHVuc2lnbmVkIGJ1 dHRlcmZseSA9IDE7IGJ1dHRlcmZseSA8IGNvdW50OyArK2J1dHRlcmZseSkKPiArICAgIHsKPiAr ICAgICAgICBDb21wbGV4ICB3ICAgPSB3X25bYnV0dGVyZmx5IC0gMV07Cj4gKwo+ICsgICAgICAg IGNvbnN0IHVuc2lnbmVkIGkwICA9IGJ1dHRlcmZseTsKPiArICAgICAgICBjb25zdCB1bnNpZ25l ZCBpMSAgPSBidXR0ZXJmbHkgKyBjb3VudDsKPiArCj4gKyAgICAgICAgQ29tcGxleCB6MCAgPSBv dXRbaTBdOwo+ICsgICAgICAgIENvbXBsZXggejEgID0gbWVvd19tdWxfYnlfY29uanVnYXRlKG91 dFtpMV0sIHcpOwo+ICsKPiArICAgICAgICBvdXRbaTBdID0gbWVvd19hZGQoejAsIHoxKTsKPiAr ICAgICAgICBvdXRbaTFdID0gbWVvd19zdWIoejAsIHoxKTsKPiArICAgICAgICAvLyBFcXVhdGlv biAxMzUKPiArICAgIH0KPiArfQo+ICsKPiArI2RlZmluZSBNRU9XX1NJTl9QSV8zIC0wLjg2NjAy NTQwMzc4NDQzODY0Njc2MzcyMzE3MDc1MjkzNjE4MzQ3MTQwMjYyNjkwNTE5MDMxNGYKPiArCj4g K3ZvaWQgbWVvd19yYWRpeF8zX2RpdAo+ICsoCj4gKyAgICAgIGNvbnN0IE1lb3dfRkZUX0NvbXBs ZXgqIHdfbgo+ICsgICAgLCBNZW93X0ZGVF9Db21wbGV4KiAgICAgICBvdXQKPiArICAgICwgdW5z aWduZWQgICAgICAgICAgICAgICAgY291bnQKPiArKQo+ICt7Cj4gKyAgICB1bnNpZ25lZCB3aSA9 IDA7Cj4gKwo+ICsgICAgLy8gV1swXSBpcyBhbHdheXMgMS4wZjsKPiArICAgIHsKPiArICAgICAg ICBjb25zdCB1bnNpZ25lZCBpMCAgPSAwICogY291bnQ7Cj4gKyAgICAgICAgY29uc3QgdW5zaWdu ZWQgaTEgID0gMSAqIGNvdW50Owo+ICsgICAgICAgIGNvbnN0IHVuc2lnbmVkIGkyICA9IDIgKiBj b3VudDsKPiArCj4gKyAgICAgICAgQ29tcGxleCB6MCAgPSBvdXRbaTBdOwo+ICsgICAgICAgIENv bXBsZXggejEgID0gb3V0W2kxXTsKPiArICAgICAgICBDb21wbGV4IHoyICA9IG91dFtpMl07Cj4g Kwo+ICsgICAgICAgIENvbXBsZXggdDEgID0gbWVvd19hZGQoejEsIHoyKTsKPiArICAgICAgICBD b21wbGV4IHQyICA9IG1lb3dfc3ViKHowLCBtZW93X211bGYodDEsIDAuNSkpOwo+ICsgICAgICAg IENvbXBsZXggdDNqID0gbWVvd19tdWxfYnlfaihtZW93X211bGYobWVvd19zdWIoejEsIHoyKSwg TUVPV19TSU5fUElfMykpOwo+ICsKPiArICAgICAgICBvdXRbaTBdID0gbWVvd19hZGQoejAsIHQx KTsKPiArICAgICAgICBvdXRbaTFdID0gbWVvd19hZGQodDIsIHQzaik7Cj4gKyAgICAgICAgb3V0 W2kyXSA9IG1lb3dfc3ViKHQyLCB0M2opOwo+ICsgICAgfQo+ICsKPiArICAgIGZvciAodW5zaWdu ZWQgYnV0dGVyZmx5ID0gMTsgYnV0dGVyZmx5IDwgY291bnQ7IGJ1dHRlcmZseSsrLCB3aSs9MikK PiArICAgIHsKPiArICAgICAgICBDb21wbGV4IHcxICA9IHdfblt3aSArIDBdOwo+ICsgICAgICAg IENvbXBsZXggdzIgID0gd19uW3dpICsgMV07Cj4gKwo+ICsgICAgICAgIGNvbnN0IHVuc2lnbmVk IGkwICA9IGJ1dHRlcmZseTsKPiArICAgICAgICBjb25zdCB1bnNpZ25lZCBpMSAgPSBidXR0ZXJm bHkgKyBjb3VudDsKPiArICAgICAgICBjb25zdCB1bnNpZ25lZCBpMiAgPSBidXR0ZXJmbHkgKyAy ICogY291bnQ7Cj4gKwo+ICsgICAgICAgIENvbXBsZXggejAgID0gb3V0W2kwXTsKPiArICAgICAg ICBDb21wbGV4IHoxICA9IG1lb3dfbXVsX2J5X2Nvbmp1Z2F0ZShvdXRbaTFdLCB3MSk7Cj4gKyAg ICAgICAgQ29tcGxleCB6MiAgPSBtZW93X211bF9ieV9jb25qdWdhdGUob3V0W2kyXSwgdzIpOwo+ ICsKPiArICAgICAgICBDb21wbGV4IHQxICA9IG1lb3dfYWRkKHoxLCB6Mik7Cj4gKyAgICAgICAg Q29tcGxleCB0MiAgPSBtZW93X3N1Yih6MCwgbWVvd19tdWxmKHQxLCAwLjUpKTsKPiArICAgICAg ICBDb21wbGV4IHQzaiA9IG1lb3dfbXVsX2J5X2oobWVvd19tdWxmKG1lb3dfc3ViKHoxLCB6Miks IE1FT1dfU0lOX1BJXzMpKTsKPiArICAgICAgICAvLyBFcXVhdGlvbiAxMzYKPiArCj4gKyAgICAg ICAgb3V0W2kwXSA9IG1lb3dfYWRkKHowLCB0MSk7Cj4gKyAgICAgICAgb3V0W2kxXSA9IG1lb3df YWRkKHQyLCB0M2opOwo+ICsgICAgICAgIG91dFtpMl0gPSBtZW93X3N1Yih0MiwgdDNqKTsKPiAr ICAgICAgICAvLyBFcXVhdGlvbiAxMzcKPiArICAgIH0KPiArfQo+ICsKPiArdm9pZCBtZW93X3Jh ZGl4XzRfZGl0Cj4gKygKPiArICAgICAgY29uc3QgTWVvd19GRlRfQ29tcGxleCogd19uCj4gKyAg ICAsIE1lb3dfRkZUX0NvbXBsZXgqICAgICAgIG91dAo+ICsgICAgLCB1bnNpZ25lZCAgICAgICAg ICAgICAgICBjb3VudAo+ICspCj4gK3sKPiArICAgIHVuc2lnbmVkIHdpID0gMHU7Cj4gKwo+ICsg ICAgLy8gV1swXSBpcyBhbHdheXMgMS4wZjsKPiArICAgIHsKPiArICAgICAgICBjb25zdCB1bnNp Z25lZCBpMCAgPSAwICogY291bnQ7Cj4gKyAgICAgICAgY29uc3QgdW5zaWduZWQgaTEgID0gMSAq IGNvdW50Owo+ICsgICAgICAgIGNvbnN0IHVuc2lnbmVkIGkyICA9IDIgKiBjb3VudDsKPiArICAg ICAgICBjb25zdCB1bnNpZ25lZCBpMyAgPSAzICogY291bnQ7Cj4gKwo+ICsgICAgICAgIENvbXBs ZXggejAgID0gb3V0W2kwXTsKPiArICAgICAgICBDb21wbGV4IHoxICA9IG91dFtpMV07Cj4gKyAg ICAgICAgQ29tcGxleCB6MiAgPSBvdXRbaTJdOwo+ICsgICAgICAgIENvbXBsZXggejMgID0gb3V0 W2kzXTsKPiArCj4gKyAgICAgICAgQ29tcGxleCB0MSAgPSBtZW93X2FkZCh6MCwgejIpOwo+ICsg ICAgICAgIENvbXBsZXggdDIgID0gbWVvd19hZGQoejEsIHozKTsKPiArICAgICAgICBDb21wbGV4 IHQzICA9IG1lb3dfc3ViKHowLCB6Mik7Cj4gKyAgICAgICAgQ29tcGxleCB0NGogPSBtZW93X25l Z2F0ZShtZW93X211bF9ieV9qKG1lb3dfc3ViKHoxLCB6MykpKTsKPiArCj4gKyAgICAgICAgb3V0 W2kwXSA9IG1lb3dfYWRkKHQxLCB0Mik7Cj4gKyAgICAgICAgb3V0W2kxXSA9IG1lb3dfYWRkKHQz LCB0NGopOwo+ICsgICAgICAgIG91dFtpMl0gPSBtZW93X3N1Yih0MSwgdDIpOwo+ICsgICAgICAg IG91dFtpM10gPSBtZW93X3N1Yih0MywgdDRqKTsKPiArICAgIH0KPiArCj4gKyAgICBmb3IgKHVu c2lnbmVkIGJ1dHRlcmZseSA9IDE7IGJ1dHRlcmZseSA8IGNvdW50OyArK2J1dHRlcmZseSwgd2kr PTMpCj4gKyAgICB7Cj4gKyAgICAgICAgQ29tcGxleCB3MSAgPSB3X25bd2kgKyAwXTsKPiArICAg ICAgICBDb21wbGV4IHcyICA9IHdfblt3aSArIDFdOwo+ICsgICAgICAgIENvbXBsZXggdzMgID0g d19uW3dpICsgMl07Cj4gKwo+ICsgICAgICAgIGNvbnN0IHVuc2lnbmVkIGkwICA9IGJ1dHRlcmZs eSArIDAgKiBjb3VudDsKPiArICAgICAgICBjb25zdCB1bnNpZ25lZCBpMSAgPSBidXR0ZXJmbHkg KyAxICogY291bnQ7Cj4gKyAgICAgICAgY29uc3QgdW5zaWduZWQgaTIgID0gYnV0dGVyZmx5ICsg MiAqIGNvdW50Owo+ICsgICAgICAgIGNvbnN0IHVuc2lnbmVkIGkzICA9IGJ1dHRlcmZseSArIDMg KiBjb3VudDsKPiArCj4gKyAgICAgICAgQ29tcGxleCB6MCAgPSBvdXRbaTBdOwo+ICsgICAgICAg IENvbXBsZXggejEgID0gbWVvd19tdWxfYnlfY29uanVnYXRlKG91dFtpMV0sIHcxKTsKPiArICAg ICAgICBDb21wbGV4IHoyICA9IG1lb3dfbXVsX2J5X2Nvbmp1Z2F0ZShvdXRbaTJdLCB3Mik7Cj4g KyAgICAgICAgQ29tcGxleCB6MyAgPSBtZW93X211bF9ieV9jb25qdWdhdGUob3V0W2kzXSwgdzMp Owo+ICsKPiArICAgICAgICBDb21wbGV4IHQxICA9IG1lb3dfYWRkKHowLCB6Mik7Cj4gKyAgICAg ICAgQ29tcGxleCB0MiAgPSBtZW93X2FkZCh6MSwgejMpOwo+ICsgICAgICAgIENvbXBsZXggdDMg ID0gbWVvd19zdWIoejAsIHoyKTsKPiArICAgICAgICBDb21wbGV4IHQ0aiA9IG1lb3dfbmVnYXRl KG1lb3dfbXVsX2J5X2oobWVvd19zdWIoejEsIHozKSkpOwo+ICsgICAgICAgIC8vIEVxdWF0aW9u cyAxMzgKPiArICAgICAgICAvLyBBbHNvIGluc3RlYWQgb2YgY29uanVnYXRpbmcgdGhlIGlucHV0 IGFuZCBtdWx0cGx5aW5nIHdpdGggdGhlCj4gKyAgICAgICAgLy8gdHdpZGRsZXMgZm9yIHRoZSBp ZmZ0LCB3ZSBpbnZlcnQgdGhlIHR3aWRkbGVzIGluc3RlYWQuIFRoaXMgd29ya3MKPiArICAgICAg ICAvLyBmaW5lIGV4Y2VwdCBoZXJlLCB0aGUgbXVsX2J5X2ogaXMgYXNzdW1pbmcgdGhhdCBpdCdz IHRoZSBmb3J3YXJkCj4gKyAgICAgICAgLy8gZmZ0IHR3aWRkbGUgd2UgYXJlIG11bHRpcGx5aW5n IHdpdGgsIG5vdCB0aGUgY29uanVnYXRlZCBvbmUgd2UKPiArICAgICAgICAvLyBhY3R1YWxseSBo YXZlLiBTbyB3ZSBoYXZlIHRvIGNvbmp1Z2F0ZSBpdCBfYmFja18gaWYgd2UgYXJlIGRvaW5nIHRo ZQo+ICsgICAgICAgIC8vIGlmZnQuCj4gKyAgICAgICAgLy8gQWxzbywgaGFkIHRvIG11bHRpcGx5 IGJ5IC1qLCBub3QgaiBmb3IgcmVhc29ucyBJIGFtIHlldCB0byBncmFzcC4KPiArCj4gKyAgICAg ICAgb3V0W2kwXSA9IG1lb3dfYWRkKHQxLCB0Mik7Cj4gKyAgICAgICAgb3V0W2kxXSA9IG1lb3df YWRkKHQzLCB0NGopOwo+ICsgICAgICAgIG91dFtpMl0gPSBtZW93X3N1Yih0MSwgdDIpOwo+ICsg ICAgICAgIG91dFtpM10gPSBtZW93X3N1Yih0MywgdDRqKTsKPiArICAgICAgICAvLyBFcXVhdGlv bnMgMTM5Cj4gKyAgICB9Cj4gK30KPiArCj4gKyNkZWZpbmUgTUVPV19TUVJfNV9ESVZfNCAwLjU1 OTAxNjk5NDM3NDk0NzQyNDEwMjI5MzQxNzE4MjgxOTA1ODg2MDE1NDU4OTkwMjg4MTRmCj4gKyNk ZWZpbmUgTUVPV19TSU5fMlBJXzUgIC0wLjk1MTA1NjUxNjI5NTE1MzU3MjExNjQzOTMzMzM3OTM4 MjE0MzQwNTY5ODYzNDEyNTc1MDJmCj4gKyNkZWZpbmUgTUVPV19TSU5fMlBJXzEwIC0wLjU4Nzc4 NTI1MjI5MjQ3MzEyOTE2ODcwNTk1NDYzOTA3Mjc2ODU5NzY1MjQzNzY0MzE0NTlmCj4gKwo+ICt2 b2lkIG1lb3dfcmFkaXhfNV9kaXQKPiArKAo+ICsgICAgICBjb25zdCBNZW93X0ZGVF9Db21wbGV4 KiB3X24KPiArICAgICwgTWVvd19GRlRfQ29tcGxleCogICAgICAgb3V0Cj4gKyAgICAsIHVuc2ln bmVkICAgICAgICAgICAgICBjb3VudAo+ICspCj4gK3sKPiArICAgIHVuc2lnbmVkIHdpID0gMHU7 Cj4gKwo+ICsgICAgLy8gV1swXSBpcyBhbHdheXMgMS4wZjsKPiArICAgIHsKPiArICAgICAgICBj b25zdCB1bnNpZ25lZCBpMCAgID0gMCAqIGNvdW50Owo+ICsgICAgICAgIGNvbnN0IHVuc2lnbmVk IGkxICAgPSAxICogY291bnQ7Cj4gKyAgICAgICAgY29uc3QgdW5zaWduZWQgaTIgICA9IDIgKiBj b3VudDsKPiArICAgICAgICBjb25zdCB1bnNpZ25lZCBpMyAgID0gMyAqIGNvdW50Owo+ICsgICAg ICAgIGNvbnN0IHVuc2lnbmVkIGk0ICAgPSA0ICogY291bnQ7Cj4gKwo+ICsgICAgICAgIENvbXBs ZXggejAgICA9IG91dFtpMF07Cj4gKyAgICAgICAgQ29tcGxleCB6MSAgID0gb3V0W2kxXTsKPiAr ICAgICAgICBDb21wbGV4IHoyICAgPSBvdXRbaTJdOwo+ICsgICAgICAgIENvbXBsZXggejMgICA9 IG91dFtpM107Cj4gKyAgICAgICAgQ29tcGxleCB6NCAgID0gb3V0W2k0XTsKPiArCj4gKyAgICAg ICAgQ29tcGxleCB0MSAgID0gbWVvd19hZGQoejEsIHo0KTsKPiArICAgICAgICBDb21wbGV4IHQy ICAgPSBtZW93X2FkZCh6MiwgejMpOwo+ICsgICAgICAgIENvbXBsZXggdDMgICA9IG1lb3dfc3Vi KHoxLCB6NCk7Cj4gKyAgICAgICAgQ29tcGxleCB0NCAgID0gbWVvd19zdWIoejIsIHozKTsKPiAr ICAgICAgICAvLyBFcXVhdGlvbnMgMTQwCj4gKwo+ICsgICAgICAgIENvbXBsZXggdDUgICA9IG1l b3dfYWRkKHQxLCB0Mik7Cj4gKyAgICAgICAgQ29tcGxleCB0NiAgID0gbWVvd19tdWxmKG1lb3df c3ViKHQxLCB0MiksIE1FT1dfU1FSXzVfRElWXzQpOwo+ICsgICAgICAgIENvbXBsZXggdDcgICA9 IG1lb3dfc3ViKHowLCBtZW93X211bGYodDUsIDAuMjVmKSk7Cj4gKyAgICAgICAgLy8gRXF1YXRp b24gMTQxCj4gKwo+ICsgICAgICAgIENvbXBsZXggdDggICA9IG1lb3dfYWRkKHQ3LCB0Nik7Cj4g KyAgICAgICAgQ29tcGxleCB0OSAgID0gbWVvd19zdWIodDcsIHQ2KTsKPiArICAgICAgICAvLyBF cXVhdGlvbiAxNDIKPiArCj4gKyAgICAgICAgQ29tcGxleCB0MTBqID0gbWVvd19tdWxfYnlfago+ ICsgICAgICAgICgKPiArICAgICAgICAgICAgbWVvd19hZGQKPiArICAgICAgICAgICAgKAo+ICsg ICAgICAgICAgICAgICAgICBtZW93X211bGYodDMsIE1FT1dfU0lOXzJQSV81KQo+ICsgICAgICAg ICAgICAgICAgLCBtZW93X211bGYodDQsIE1FT1dfU0lOXzJQSV8xMCkKPiArICAgICAgICAgICAg KQo+ICsgICAgICAgICk7Cj4gKwo+ICsgICAgICAgIENvbXBsZXggdDExaiA9IG1lb3dfbXVsX2J5 X2oKPiArICAgICAgICAoCj4gKyAgICAgICAgICAgIG1lb3dfc3ViCj4gKyAgICAgICAgICAgICgK PiArICAgICAgICAgICAgICAgICAgbWVvd19tdWxmKHQzLCBNRU9XX1NJTl8yUElfMTApCj4gKyAg ICAgICAgICAgICAgICAsIG1lb3dfbXVsZih0NCwgTUVPV19TSU5fMlBJXzUpCj4gKyAgICAgICAg ICAgICkKPiArICAgICAgICApOwo+ICsgICAgICAgIC8vIEVxdWF0aW9uIDE0Mwo+ICsKPiArICAg ICAgICBvdXRbaTBdID0gbWVvd19hZGQoejAsIHQ1KTsKPiArICAgICAgICAvLyBFcXVhdGlvbiAx NDQKPiArCj4gKyAgICAgICAgb3V0W2kxXSA9IG1lb3dfYWRkKHQ4LCB0MTBqKTsKPiArICAgICAg ICBvdXRbaTJdID0gbWVvd19hZGQodDksIHQxMWopOwo+ICsgICAgICAgIC8vIEVxdWF0aW9uIDE0 NQo+ICsKPiArICAgICAgICBvdXRbaTNdID0gbWVvd19zdWIodDksIHQxMWopOwo+ICsgICAgICAg IG91dFtpNF0gPSBtZW93X3N1Yih0OCwgdDEwaik7Cj4gKyAgICAgICAgLy8gRXF1YXRpb24gMTQ2 Cj4gKyAgICB9Cj4gKwo+ICsgICAgZm9yICh1bnNpZ25lZCBidXR0ZXJmbHkgPSAxOyBidXR0ZXJm bHkgPCBjb3VudDsgKytidXR0ZXJmbHksIHdpKz00KQo+ICsgICAgewo+ICsgICAgICAgIENvbXBs ZXggdzEgID0gd19uW3dpICsgMF07Cj4gKyAgICAgICAgQ29tcGxleCB3MiAgPSB3X25bd2kgKyAx XTsKPiArICAgICAgICBDb21wbGV4IHczICA9IHdfblt3aSArIDJdOwo+ICsgICAgICAgIENvbXBs ZXggdzQgID0gd19uW3dpICsgM107Cj4gKwo+ICsgICAgICAgIHVuc2lnbmVkIGkwICAgPSBidXR0 ZXJmbHkgKyAwICogY291bnQ7Cj4gKyAgICAgICAgdW5zaWduZWQgaTEgICA9IGJ1dHRlcmZseSAr IDEgKiBjb3VudDsKPiArICAgICAgICB1bnNpZ25lZCBpMiAgID0gYnV0dGVyZmx5ICsgMiAqIGNv dW50Owo+ICsgICAgICAgIHVuc2lnbmVkIGkzICAgPSBidXR0ZXJmbHkgKyAzICogY291bnQ7Cj4g KyAgICAgICAgdW5zaWduZWQgaTQgICA9IGJ1dHRlcmZseSArIDQgKiBjb3VudDsKPiArCj4gKyAg ICAgICAgQ29tcGxleCB6MCAgID0gb3V0W2kwXTsKPiArICAgICAgICBDb21wbGV4IHoxICAgPSBt ZW93X211bF9ieV9jb25qdWdhdGUob3V0W2kxXSwgdzEpOwo+ICsgICAgICAgIENvbXBsZXggejIg ICA9IG1lb3dfbXVsX2J5X2Nvbmp1Z2F0ZShvdXRbaTJdLCB3Mik7Cj4gKyAgICAgICAgQ29tcGxl eCB6MyAgID0gbWVvd19tdWxfYnlfY29uanVnYXRlKG91dFtpM10sIHczKTsKPiArICAgICAgICBD b21wbGV4IHo0ICAgPSBtZW93X211bF9ieV9jb25qdWdhdGUob3V0W2k0XSwgdzQpOwo+ICsKPiAr ICAgICAgICBDb21wbGV4IHQxICAgPSBtZW93X2FkZCh6MSwgejQpOwo+ICsgICAgICAgIENvbXBs ZXggdDIgICA9IG1lb3dfYWRkKHoyLCB6Myk7Cj4gKyAgICAgICAgQ29tcGxleCB0MyAgID0gbWVv d19zdWIoejEsIHo0KTsKPiArICAgICAgICBDb21wbGV4IHQ0ICAgPSBtZW93X3N1Yih6MiwgejMp Owo+ICsgICAgICAgIC8vIEVxdWF0aW9ucyAxNDAKPiArCj4gKyAgICAgICAgQ29tcGxleCB0NSAg ID0gbWVvd19hZGQodDEsIHQyKTsKPiArICAgICAgICBDb21wbGV4IHQ2ICAgPSBtZW93X211bGYo bWVvd19zdWIodDEsIHQyKSwgTUVPV19TUVJfNV9ESVZfNCk7Cj4gKyAgICAgICAgQ29tcGxleCB0 NyAgID0gbWVvd19zdWIoejAsIG1lb3dfbXVsZih0NSwgMC4yNWYpKTsKPiArICAgICAgICAvLyBF cXVhdGlvbiAxNDEKPiArCj4gKyAgICAgICAgQ29tcGxleCB0OCAgID0gbWVvd19hZGQodDcsIHQ2 KTsKPiArICAgICAgICBDb21wbGV4IHQ5ICAgPSBtZW93X3N1Yih0NywgdDYpOwo+ICsgICAgICAg IC8vIEVxdWF0aW9uIDE0Mgo+ICsKPiArICAgICAgICBDb21wbGV4IHQxMGogPSBtZW93X211bF9i eV9qCj4gKyAgICAgICAgKAo+ICsgICAgICAgICAgICBtZW93X2FkZAo+ICsgICAgICAgICAgICAo Cj4gKyAgICAgICAgICAgICAgICAgIG1lb3dfbXVsZih0MywgTUVPV19TSU5fMlBJXzUpCj4gKyAg ICAgICAgICAgICAgICAsIG1lb3dfbXVsZih0NCwgTUVPV19TSU5fMlBJXzEwKQo+ICsgICAgICAg ICAgICApCj4gKyAgICAgICAgKTsKPiArCj4gKyAgICAgICAgQ29tcGxleCB0MTFqID0gbWVvd19t dWxfYnlfago+ICsgICAgICAgICgKPiArICAgICAgICAgICAgbWVvd19zdWIKPiArICAgICAgICAg ICAgKAo+ICsgICAgICAgICAgICAgICAgICBtZW93X211bGYodDMsIE1FT1dfU0lOXzJQSV8xMCkK PiArICAgICAgICAgICAgICAgICwgbWVvd19tdWxmKHQ0LCBNRU9XX1NJTl8yUElfNSkKPiArICAg ICAgICAgICAgKQo+ICsgICAgICAgICk7Cj4gKyAgICAgICAgLy8gRXF1YXRpb24gMTQzCj4gKwo+ ICsgICAgICAgIG91dFtpMF0gPSBtZW93X2FkZCh6MCwgdDUpOwo+ICsgICAgICAgIC8vIEVxdWF0 aW9uIDE0NAo+ICsKPiArICAgICAgICBvdXRbaTFdID0gbWVvd19hZGQodDgsIHQxMGopOwo+ICsg ICAgICAgIG91dFtpMl0gPSBtZW93X2FkZCh0OSwgdDExaik7Cj4gKyAgICAgICAgLy8gRXF1YXRp b24gMTQ1Cj4gKwo+ICsgICAgICAgIG91dFtpM10gPSBtZW93X3N1Yih0OSwgdDExaik7Cj4gKyAg ICAgICAgb3V0W2k0XSA9IG1lb3dfc3ViKHQ4LCB0MTBqKTsKPiArICAgICAgICAvLyBFcXVhdGlv biAxNDYKPiArICAgIH0KPiArfQo+ICsKPiArI2RlZmluZSBNRU9XXzFfRElWX1NRUl8yIDAuNzA3 MTA2NzgxMTg2NTQ3NTI0NDAwODQ0MzYyMTA0ODQ5MDM5Mjg0ODM1OTM4Zgo+ICsKPiArc3RhdGlj IHZvaWQgbWVvd19yYWRpeF84X2RpdAo+ICsoCj4gKyAgICAgIGNvbnN0IE1lb3dfRkZUX0NvbXBs ZXgqIHdfbgo+ICsgICAgLCBNZW93X0ZGVF9Db21wbGV4KiAgICAgICBvdXQKPiArICAgICwgdW5z aWduZWQgICAgICAgICAgICAgICAgY291bnQKPiArKQo+ICt7Cj4gKyAgICBjb25zdCBNZW93X0Zs b2F0KiBXID0gJndfblswXS5yOwo+ICsKPiArICAgIHsKPiArICAgICAgICBNZW93X0Zsb2F0IFQz Owo+ICsgICAgICAgIE1lb3dfRmxvYXQgVDIzOwo+ICsgICAgICAgIE1lb3dfRmxvYXQgVDE4Owo+ ICsgICAgICAgIE1lb3dfRmxvYXQgVDM4Owo+ICsgICAgICAgIE1lb3dfRmxvYXQgVDY7Cj4gKyAg ICAgICAgTWVvd19GbG9hdCBUMzc7Cj4gKyAgICAgICAgTWVvd19GbG9hdCBUMjE7Cj4gKyAgICAg ICAgTWVvd19GbG9hdCBUMjQ7Cj4gKyAgICAgICAgTWVvd19GbG9hdCBUMTM7Cj4gKyAgICAgICAg TWVvd19GbG9hdCBUNDk7Cj4gKyAgICAgICAgTWVvd19GbG9hdCBUMzU7Cj4gKyAgICAgICAgTWVv d19GbG9hdCBUNDM7Cj4gKyAgICAgICAgTWVvd19GbG9hdCBUMTA7Cj4gKyAgICAgICAgTWVvd19G bG9hdCBUNDg7Cj4gKyAgICAgICAgTWVvd19GbG9hdCBUMzA7Cj4gKyAgICAgICAgTWVvd19GbG9h dCBUNDI7Cj4gKyAgICAgICAgewo+ICsgICAgICAgICAgICBNZW93X0Zsb2F0IFQxOwo+ICsgICAg ICAgICAgICBNZW93X0Zsb2F0IFQyOwo+ICsgICAgICAgICAgICBNZW93X0Zsb2F0IFQxOTsKPiAr ICAgICAgICAgICAgTWVvd19GbG9hdCBUMjA7Cj4gKyAgICAgICAgICAgIFQxID0gb3V0WzBdLnI7 Cj4gKyAgICAgICAgICAgIFQyID0gb3V0W2NvdW50ICogNF0ucjsKPiArICAgICAgICAgICAgVDMg PSBUMSArIFQyOwo+ICsgICAgICAgICAgICBUMjMgPSBUMSAtIFQyOwo+ICsgICAgICAgICAgICB7 Cj4gKyAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQxNjsKPiArICAgICAgICAgICAgICAgIE1l b3dfRmxvYXQgVDE3Owo+ICsgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUNDsKPiArICAgICAg ICAgICAgICAgIE1lb3dfRmxvYXQgVDU7Cj4gKyAgICAgICAgICAgICAgICBUMTYgPSBvdXRbMF0u ajsKPiArICAgICAgICAgICAgICAgIFQxNyA9IG91dFtjb3VudCAqIDRdLmo7Cj4gKyAgICAgICAg ICAgICAgICBUMTggPSBUMTYgKyBUMTc7Cj4gKyAgICAgICAgICAgICAgICBUMzggPSBUMTYgLSBU MTc7Cj4gKyAgICAgICAgICAgICAgICBUNCA9IG91dFtjb3VudCAqIDJdLnI7Cj4gKyAgICAgICAg ICAgICAgICBUNSA9IG91dFtjb3VudCAqIDZdLnI7Cj4gKyAgICAgICAgICAgICAgICBUNiA9IFQ0 ICsgVDU7Cj4gKyAgICAgICAgICAgICAgICBUMzcgPSBUNCAtIFQ1Owo+ICsgICAgICAgICAgICB9 Cj4gKyAgICAgICAgICAgIFQxOSA9IG91dFtjb3VudCAqIDJdLmo7Cj4gKyAgICAgICAgICAgIFQy MCA9IG91dFtjb3VudCAqIDZdLmo7Cj4gKyAgICAgICAgICAgIFQyMSA9IFQxOSArIFQyMDsKPiAr ICAgICAgICAgICAgVDI0ID0gVDE5IC0gVDIwOwo+ICsgICAgICAgICAgICB7Cj4gKyAgICAgICAg ICAgICAgICBNZW93X0Zsb2F0IFQxMTsKPiArICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDEy Owo+ICsgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMzE7Cj4gKyAgICAgICAgICAgICAgICBN ZW93X0Zsb2F0IFQzMjsKPiArICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDMzOwo+ICsgICAg ICAgICAgICAgICAgTWVvd19GbG9hdCBUMzQ7Cj4gKyAgICAgICAgICAgICAgICBUMTEgPSBvdXRb Y291bnQgKiA3XS5yOwo+ICsgICAgICAgICAgICAgICAgVDEyID0gb3V0W2NvdW50ICogM10ucjsK PiArICAgICAgICAgICAgICAgIFQzMSA9IFQxMSAtIFQxMjsKPiArICAgICAgICAgICAgICAgIFQz MiA9IG91dFtjb3VudCAqIDddLmo7Cj4gKyAgICAgICAgICAgICAgICBUMzMgPSBvdXRbY291bnQg KiAzXS5qOwo+ICsgICAgICAgICAgICAgICAgVDM0ID0gVDMyIC0gVDMzOwo+ICsgICAgICAgICAg ICAgICAgVDEzID0gVDExICsgVDEyOwo+ICsgICAgICAgICAgICAgICAgVDQ5ID0gVDMyICsgVDMz Owo+ICsgICAgICAgICAgICAgICAgVDM1ID0gVDMxIC0gVDM0Owo+ICsgICAgICAgICAgICAgICAg VDQzID0gVDMxICsgVDM0Owo+ICsgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgIHsKPiArICAg ICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDg7Cj4gKyAgICAgICAgICAgICAgICBNZW93X0Zsb2F0 IFQ5Owo+ICsgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMjY7Cj4gKyAgICAgICAgICAgICAg ICBNZW93X0Zsb2F0IFQyNzsKPiArICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDI4Owo+ICsg ICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMjk7Cj4gKyAgICAgICAgICAgICAgICBUOCA9IG91 dFtjb3VudCAqIDFdLnI7Cj4gKyAgICAgICAgICAgICAgICBUOSA9IG91dFtjb3VudCAqIDVdLnI7 Cj4gKyAgICAgICAgICAgICAgICBUMjYgPSBUOCAtIFQ5Owo+ICsgICAgICAgICAgICAgICAgVDI3 ID0gb3V0W2NvdW50ICogMV0uajsKPiArICAgICAgICAgICAgICAgIFQyOCA9IG91dFtjb3VudCAq IDVdLmo7Cj4gKyAgICAgICAgICAgICAgICBUMjkgPSBUMjcgLSBUMjg7Cj4gKyAgICAgICAgICAg ICAgICBUMTAgPSBUOCArIFQ5Owo+ICsgICAgICAgICAgICAgICAgVDQ4ID0gVDI3ICsgVDI4Owo+ ICsgICAgICAgICAgICAgICAgVDMwID0gVDI2ICsgVDI5Owo+ICsgICAgICAgICAgICAgICAgVDQy ID0gVDI5IC0gVDI2Owo+ICsgICAgICAgICAgICB9Cj4gKyAgICAgICAgfQo+ICsgICAgICAgIHsK PiArICAgICAgICAgICAgTWVvd19GbG9hdCBUNzsKPiArICAgICAgICAgICAgTWVvd19GbG9hdCBU MTQ7Cj4gKyAgICAgICAgICAgIE1lb3dfRmxvYXQgVDUxOwo+ICsgICAgICAgICAgICBNZW93X0Zs b2F0IFQ1MjsKPiArICAgICAgICAgICAgVDcgPSBUMyArIFQ2Owo+ICsgICAgICAgICAgICBUMTQg PSBUMTAgKyBUMTM7Cj4gKyAgICAgICAgICAgIG91dFtjb3VudCAqIDRdLnIgPSBUNyAtIFQxNDsK PiArICAgICAgICAgICAgb3V0WzBdLnIgPSBUNyArIFQxNDsKPiArICAgICAgICAgICAgVDUxID0g VDE4ICsgVDIxOwo+ICsgICAgICAgICAgICBUNTIgPSBUNDggKyBUNDk7Cj4gKyAgICAgICAgICAg IG91dFtjb3VudCAqIDRdLmogPSBUNTEgLSBUNTI7Cj4gKyAgICAgICAgICAgIG91dFswXS5qID0g VDUxICsgVDUyOwo+ICsgICAgICAgIH0KPiArICAgICAgICB7Cj4gKyAgICAgICAgICAgIE1lb3df RmxvYXQgVDE1Owo+ICsgICAgICAgICAgICBNZW93X0Zsb2F0IFQyMjsKPiArICAgICAgICAgICAg TWVvd19GbG9hdCBUNDc7Cj4gKyAgICAgICAgICAgIE1lb3dfRmxvYXQgVDUwOwo+ICsgICAgICAg ICAgICBUMTUgPSBUMTMgLSBUMTA7Cj4gKyAgICAgICAgICAgIFQyMiA9IFQxOCAtIFQyMTsKPiAr ICAgICAgICAgICAgb3V0W2NvdW50ICogMl0uaiA9IFQxNSArIFQyMjsKPiArICAgICAgICAgICAg b3V0W2NvdW50ICogNl0uaiA9IFQyMiAtIFQxNTsKPiArICAgICAgICAgICAgVDQ3ID0gVDMgLSBU NjsKPiArICAgICAgICAgICAgVDUwID0gVDQ4IC0gVDQ5Owo+ICsgICAgICAgICAgICBvdXRbY291 bnQgKiA2XS5yID0gVDQ3IC0gVDUwOwo+ICsgICAgICAgICAgICBvdXRbY291bnQgKiAyXS5yID0g VDQ3ICsgVDUwOwo+ICsgICAgICAgIH0KPiArICAgICAgICB7Cj4gKyAgICAgICAgICAgIE1lb3df RmxvYXQgVDI1Owo+ICsgICAgICAgICAgICBNZW93X0Zsb2F0IFQzNjsKPiArICAgICAgICAgICAg TWVvd19GbG9hdCBUNDU7Cj4gKyAgICAgICAgICAgIE1lb3dfRmxvYXQgVDQ2Owo+ICsgICAgICAg ICAgICBUMjUgPSBUMjMgKyBUMjQ7Cj4gKyAgICAgICAgICAgIFQzNiA9IE1FT1dfMV9ESVZfU1FS XzIgKiAoVDMwICsgVDM1KTsKPiArICAgICAgICAgICAgb3V0W2NvdW50ICogNV0uciA9IFQyNSAt IFQzNjsKPiArICAgICAgICAgICAgb3V0W2NvdW50ICogMV0uciA9IFQyNSArIFQzNjsKPiArICAg ICAgICAgICAgVDQ1ID0gVDM4IC0gVDM3Owo+ICsgICAgICAgICAgICBUNDYgPSBNRU9XXzFfRElW X1NRUl8yICogKFQ0MiArIFQ0Myk7Cj4gKyAgICAgICAgICAgIG91dFtjb3VudCAqIDVdLmogPSBU NDUgLSBUNDY7Cj4gKyAgICAgICAgICAgIG91dFtjb3VudCAqIDFdLmogPSBUNDUgKyBUNDY7Cj4g KyAgICAgICAgfQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgTWVvd19GbG9hdCBUMzk7Cj4g KyAgICAgICAgICAgIE1lb3dfRmxvYXQgVDQwOwo+ICsgICAgICAgICAgICBNZW93X0Zsb2F0IFQ0 MTsKPiArICAgICAgICAgICAgTWVvd19GbG9hdCBUNDQ7Cj4gKyAgICAgICAgICAgIFQzOSA9IFQz NyArIFQzODsKPiArICAgICAgICAgICAgVDQwID0gTUVPV18xX0RJVl9TUVJfMiAqIChUMzUgLSBU MzApOwo+ICsgICAgICAgICAgICBvdXRbY291bnQgKiA3XS5qID0gVDM5IC0gVDQwOwo+ICsgICAg ICAgICAgICBvdXRbY291bnQgKiAzXS5qID0gVDM5ICsgVDQwOwo+ICsgICAgICAgICAgICBUNDEg PSBUMjMgLSBUMjQ7Cj4gKyAgICAgICAgICAgIFQ0NCA9IE1FT1dfMV9ESVZfU1FSXzIgKiAoVDQy IC0gVDQzKTsKPiArICAgICAgICAgICAgb3V0W2NvdW50ICogN10uciA9IFQ0MSAtIFQ0NDsKPiAr ICAgICAgICAgICAgb3V0W2NvdW50ICogM10uciA9IFQ0MSArIFQ0NDsKPiArICAgICAgICB9Cj4g KyAgICB9Cj4gKwo+ICsgICAgb3V0ID0gb3V0ICsgMTsKPiArCj4gKyAgICB7Cj4gKyAgICAgICAg dW5zaWduZWQgbTsKPiArICAgICAgICBmb3IgKG0gPSAxOyBtIDwgY291bnQ7IG0gPSBtICsgMSwg b3V0ID0gb3V0ICsgMSwgVyA9IFcgKyAxNCkKPiArICAgICAgICB7Cj4gKyAgICAgICAgICAgIE1l b3dfRmxvYXQgVDc7Cj4gKyAgICAgICAgICAgIE1lb3dfRmxvYXQgVDc2Owo+ICsgICAgICAgICAg ICBNZW93X0Zsb2F0IFQ0MzsKPiArICAgICAgICAgICAgTWVvd19GbG9hdCBUNzE7Cj4gKyAgICAg ICAgICAgIE1lb3dfRmxvYXQgVDQxOwo+ICsgICAgICAgICAgICBNZW93X0Zsb2F0IFQ2NTsKPiAr ICAgICAgICAgICAgTWVvd19GbG9hdCBUNTM7Cj4gKyAgICAgICAgICAgIE1lb3dfRmxvYXQgVDU2 Owo+ICsgICAgICAgICAgICBNZW93X0Zsb2F0IFQxODsKPiArICAgICAgICAgICAgTWVvd19GbG9h dCBUNzc7Cj4gKyAgICAgICAgICAgIE1lb3dfRmxvYXQgVDQ2Owo+ICsgICAgICAgICAgICBNZW93 X0Zsb2F0IFQ2ODsKPiArICAgICAgICAgICAgTWVvd19GbG9hdCBUMzA7Cj4gKyAgICAgICAgICAg IE1lb3dfRmxvYXQgVDY0Owo+ICsgICAgICAgICAgICBNZW93X0Zsb2F0IFQ0ODsKPiArICAgICAg ICAgICAgTWVvd19GbG9hdCBUNTE7Cj4gKyAgICAgICAgICAgIHsKPiArICAgICAgICAgICAgICAg IE1lb3dfRmxvYXQgVDE7Cj4gKyAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQ3MDsKPiArICAg ICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDY7Cj4gKyAgICAgICAgICAgICAgICBNZW93X0Zsb2F0 IFQ2OTsKPiArICAgICAgICAgICAgICAgIFQxID0gb3V0WzBdLnI7Cj4gKyAgICAgICAgICAgICAg ICBUNzAgPSBvdXRbMF0uajsKPiArICAgICAgICAgICAgICAgIHsKPiArICAgICAgICAgICAgICAg ICAgICBNZW93X0Zsb2F0IFQzOwo+ICsgICAgICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDU7 Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMjsKPiArICAgICAgICAgICAgICAg ICAgICBNZW93X0Zsb2F0IFQ0Owo+ICsgICAgICAgICAgICAgICAgICAgIFQzID0gb3V0W2NvdW50 ICogNF0ucjsKPiArICAgICAgICAgICAgICAgICAgICBUNSA9IG91dFtjb3VudCAqIDRdLmo7Cj4g KyAgICAgICAgICAgICAgICAgICAgVDIgPSBXWzZdOwo+ICsgICAgICAgICAgICAgICAgICAgIFQ0 ID0gV1s3XTsKPiArICAgICAgICAgICAgICAgICAgICBUNiA9IChUMiAqIFQzKSArIChUNCAqIFQ1 KTsKPiArICAgICAgICAgICAgICAgICAgICBUNjkgPSAoVDIgKiBUNSkgLSAoVDQgKiBUMyk7Cj4g KyAgICAgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgICAgICBUNyA9IFQxICsgVDY7Cj4gKyAg ICAgICAgICAgICAgICBUNzYgPSBUNzAgLSBUNjk7Cj4gKyAgICAgICAgICAgICAgICBUNDMgPSBU MSAtIFQ2Owo+ICsgICAgICAgICAgICAgICAgVDcxID0gVDY5ICsgVDcwOwo+ICsgICAgICAgICAg ICB9Cj4gKyAgICAgICAgICAgIHsKPiArICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDM1Owo+ ICsgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUNTQ7Cj4gKyAgICAgICAgICAgICAgICBNZW93 X0Zsb2F0IFQ0MDsKPiArICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDU1Owo+ICsgICAgICAg ICAgICAgICAgewo+ICsgICAgICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDMyOwo+ICsgICAg ICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDM0Owo+ICsgICAgICAgICAgICAgICAgICAgIE1l b3dfRmxvYXQgVDMxOwo+ICsgICAgICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDMzOwo+ICsg ICAgICAgICAgICAgICAgICAgIFQzMiA9IG91dFtjb3VudCAqIDddLnI7Cj4gKyAgICAgICAgICAg ICAgICAgICAgVDM0ID0gb3V0W2NvdW50ICogN10uajsKPiArICAgICAgICAgICAgICAgICAgICBU MzEgPSBXWzEyXTsKPiArICAgICAgICAgICAgICAgICAgICBUMzMgPSBXWzEzXTsKPiArICAgICAg ICAgICAgICAgICAgICBUMzUgPSAoVDMxICogVDMyKSArIChUMzMgKiBUMzQpOwo+ICsgICAgICAg ICAgICAgICAgICAgIFQ1NCA9IChUMzEgKiBUMzQpIC0gKFQzMyAqIFQzMik7Cj4gKyAgICAgICAg ICAgICAgICB9Cj4gKyAgICAgICAgICAgICAgICB7Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVv d19GbG9hdCBUMzc7Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMzk7Cj4gKyAg ICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMzY7Cj4gKyAgICAgICAgICAgICAgICAgICAg TWVvd19GbG9hdCBUMzg7Cj4gKyAgICAgICAgICAgICAgICAgICAgVDM3ID0gb3V0W2NvdW50ICog M10ucjsKPiArICAgICAgICAgICAgICAgICAgICBUMzkgPSBvdXRbY291bnQgKiAzXS5qOwo+ICsg ICAgICAgICAgICAgICAgICAgIFQzNiA9IFdbNF07Cj4gKyAgICAgICAgICAgICAgICAgICAgVDM4 ID0gV1s1XTsKPiArICAgICAgICAgICAgICAgICAgICBUNDAgPSAoVDM2ICogVDM3KSArIChUMzgg KiBUMzkpOwo+ICsgICAgICAgICAgICAgICAgICAgIFQ1NSA9IChUMzYgKiBUMzkpIC0gKFQzOCAq IFQzNyk7Cj4gKyAgICAgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgICAgICBUNDEgPSBUMzUg KyBUNDA7Cj4gKyAgICAgICAgICAgICAgICBUNjUgPSBUNTQgKyBUNTU7Cj4gKyAgICAgICAgICAg ICAgICBUNTMgPSBUMzUgLSBUNDA7Cj4gKyAgICAgICAgICAgICAgICBUNTYgPSBUNTQgLSBUNTU7 Cj4gKyAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgewo+ICsgICAgICAgICAgICAgICAgTWVv d19GbG9hdCBUMTI7Cj4gKyAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQ0NDsKPiArICAgICAg ICAgICAgICAgIE1lb3dfRmxvYXQgVDE3Owo+ICsgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBU NDU7Cj4gKyAgICAgICAgICAgICAgICB7Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVvd19GbG9h dCBUOTsKPiArICAgICAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQxMTsKPiArICAgICAgICAg ICAgICAgICAgICBNZW93X0Zsb2F0IFQ4Owo+ICsgICAgICAgICAgICAgICAgICAgIE1lb3dfRmxv YXQgVDEwOwo+ICsgICAgICAgICAgICAgICAgICAgIFQ5ID0gb3V0W2NvdW50ICogMl0ucjsKPiAr ICAgICAgICAgICAgICAgICAgICBUMTEgPSBvdXRbY291bnQgKiAyXS5qOwo+ICsgICAgICAgICAg ICAgICAgICAgIFQ4ID0gV1syXTsKPiArICAgICAgICAgICAgICAgICAgICBUMTAgPSBXWzNdOwo+ ICsgICAgICAgICAgICAgICAgICAgIFQxMiA9IChUOCAqIFQ5KSArIChUMTAgKiBUMTEpOwo+ICsg ICAgICAgICAgICAgICAgICAgIFQ0NCA9IChUOCAqIFQxMSkgLSAoVDEwICogVDkpOwo+ICsgICAg ICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICAgICAgewo+ICsgICAgICAgICAgICAgICAgICAg IE1lb3dfRmxvYXQgVDE0Owo+ICsgICAgICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDE2Owo+ ICsgICAgICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDEzOwo+ICsgICAgICAgICAgICAgICAg ICAgIE1lb3dfRmxvYXQgVDE1Owo+ICsgICAgICAgICAgICAgICAgICAgIFQxNCA9IG91dFtjb3Vu dCAqIDZdLnI7Cj4gKyAgICAgICAgICAgICAgICAgICAgVDE2ID0gb3V0W2NvdW50ICogNl0uajsK PiArICAgICAgICAgICAgICAgICAgICBUMTMgPSBXWzEwXTsKPiArICAgICAgICAgICAgICAgICAg ICBUMTUgPSBXWzExXTsKPiArICAgICAgICAgICAgICAgICAgICBUMTcgPSAoVDEzICogVDE0KSAr IChUMTUgKiBUMTYpOwo+ICsgICAgICAgICAgICAgICAgICAgIFQ0NSA9IChUMTMgKiBUMTYpIC0g KFQxNSAqIFQxNCk7Cj4gKyAgICAgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgICAgICBUMTgg PSBUMTIgKyBUMTc7Cj4gKyAgICAgICAgICAgICAgICBUNzcgPSBUMTIgLSBUMTc7Cj4gKyAgICAg ICAgICAgICAgICBUNDYgPSBUNDQgLSBUNDU7Cj4gKyAgICAgICAgICAgICAgICBUNjggPSBUNDQg KyBUNDU7Cj4gKyAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgewo+ICsgICAgICAgICAgICAg ICAgTWVvd19GbG9hdCBUMjQ7Cj4gKyAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQ0OTsKPiAr ICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDI5Owo+ICsgICAgICAgICAgICAgICAgTWVvd19G bG9hdCBUNTA7Cj4gKyAgICAgICAgICAgICAgICB7Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVv d19GbG9hdCBUMjE7Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMjM7Cj4gKyAg ICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMjA7Cj4gKyAgICAgICAgICAgICAgICAgICAg TWVvd19GbG9hdCBUMjI7Cj4gKyAgICAgICAgICAgICAgICAgICAgVDIxID0gb3V0W2NvdW50ICog MV0ucjsKPiArICAgICAgICAgICAgICAgICAgICBUMjMgPSBvdXRbY291bnQgKiAxXS5qOwo+ICsg ICAgICAgICAgICAgICAgICAgIFQyMCA9IFdbMF07Cj4gKyAgICAgICAgICAgICAgICAgICAgVDIy ID0gV1sxXTsKPiArICAgICAgICAgICAgICAgICAgICBUMjQgPSAoVDIwICogVDIxKSArIChUMjIg KiBUMjMpOwo+ICsgICAgICAgICAgICAgICAgICAgIFQ0OSA9IChUMjAgKiBUMjMpIC0gKFQyMiAq IFQyMSk7Cj4gKyAgICAgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgICAgICB7Cj4gKyAgICAg ICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMjY7Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVv d19GbG9hdCBUMjg7Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMjU7Cj4gKyAg ICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMjc7Cj4gKyAgICAgICAgICAgICAgICAgICAg VDI2ID0gb3V0W2NvdW50ICogNV0ucjsKPiArICAgICAgICAgICAgICAgICAgICBUMjggPSBvdXRb Y291bnQgKiA1XS5qOwo+ICsgICAgICAgICAgICAgICAgICAgIFQyNSA9IFdbOF07Cj4gKyAgICAg ICAgICAgICAgICAgICAgVDI3ID0gV1s5XTsKPiArICAgICAgICAgICAgICAgICAgICBUMjkgPSAo VDI1ICogVDI2KSArIChUMjcgKiBUMjgpOwo+ICsgICAgICAgICAgICAgICAgICAgIFQ1MCA9IChU MjUgKiBUMjgpIC0gKFQyNyAqIFQyNik7Cj4gKyAgICAgICAgICAgICAgICB9Cj4gKyAgICAgICAg ICAgICAgICBUMzAgPSBUMjQgKyBUMjk7Cj4gKyAgICAgICAgICAgICAgICBUNjQgPSBUNDkgKyBU NTA7Cj4gKyAgICAgICAgICAgICAgICBUNDggPSBUMjQgLSBUMjk7Cj4gKyAgICAgICAgICAgICAg ICBUNTEgPSBUNDkgLSBUNTA7Cj4gKyAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgewo+ICsg ICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMTk7Cj4gKyAgICAgICAgICAgICAgICBNZW93X0Zs b2F0IFQ0MjsKPiArICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDczOwo+ICsgICAgICAgICAg ICAgICAgTWVvd19GbG9hdCBUNzQ7Cj4gKyAgICAgICAgICAgICAgICBUMTkgPSBUNyArIFQxODsK PiArICAgICAgICAgICAgICAgIFQ0MiA9IFQzMCArIFQ0MTsKPiArICAgICAgICAgICAgICAgIG91 dFtjb3VudCAqIDRdLnIgPSBUMTkgLSBUNDI7Cj4gKyAgICAgICAgICAgICAgICBvdXRbMF0uciA9 IFQxOSArIFQ0MjsKPiArICAgICAgICAgICAgICAgIHsKPiArICAgICAgICAgICAgICAgICAgICBN ZW93X0Zsb2F0IFQ2NzsKPiArICAgICAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQ3MjsKPiAr ICAgICAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQ2MzsKPiArICAgICAgICAgICAgICAgICAg ICBNZW93X0Zsb2F0IFQ2NjsKPiArICAgICAgICAgICAgICAgICAgICBUNjcgPSBUNjQgKyBUNjU7 Cj4gKyAgICAgICAgICAgICAgICAgICAgVDcyID0gVDY4ICsgVDcxOwo+ICsgICAgICAgICAgICAg ICAgICAgIG91dFswXS5qID0gVDY3ICsgVDcyOwo+ICsgICAgICAgICAgICAgICAgICAgIG91dFtj b3VudCAqIDRdLmogPSBUNzIgLSBUNjc7Cj4gKyAgICAgICAgICAgICAgICAgICAgVDYzID0gVDcg LSBUMTg7Cj4gKyAgICAgICAgICAgICAgICAgICAgVDY2ID0gVDY0IC0gVDY1Owo+ICsgICAgICAg ICAgICAgICAgICAgIG91dFtjb3VudCAqIDZdLnIgPSBUNjMgLSBUNjY7Cj4gKyAgICAgICAgICAg ICAgICAgICAgb3V0W2NvdW50ICogMl0uciA9IFQ2MyArIFQ2NjsKPiArICAgICAgICAgICAgICAg IH0KPiArICAgICAgICAgICAgICAgIFQ3MyA9IFQ0MSAtIFQzMDsKPiArICAgICAgICAgICAgICAg IFQ3NCA9IFQ3MSAtIFQ2ODsKPiArICAgICAgICAgICAgICAgIG91dFtjb3VudCAqIDJdLmogPSBU NzMgKyBUNzQ7Cj4gKyAgICAgICAgICAgICAgICBvdXRbY291bnQgKiA2XS5qID0gVDc0IC0gVDcz Owo+ICsgICAgICAgICAgICAgICAgewo+ICsgICAgICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQg VDU5Owo+ICsgICAgICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDc4Owo+ICsgICAgICAgICAg ICAgICAgICAgIE1lb3dfRmxvYXQgVDYyOwo+ICsgICAgICAgICAgICAgICAgICAgIE1lb3dfRmxv YXQgVDc1Owo+ICsgICAgICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDYwOwo+ICsgICAgICAg ICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDYxOwo+ICsgICAgICAgICAgICAgICAgICAgIFQ1OSA9 IFQ0MyAtIFQ0NjsKPiArICAgICAgICAgICAgICAgICAgICBUNzggPSBUNzYgLSBUNzc7Cj4gKyAg ICAgICAgICAgICAgICAgICAgVDYwID0gVDUxIC0gVDQ4Owo+ICsgICAgICAgICAgICAgICAgICAg IFQ2MSA9IFQ1MyArIFQ1NjsKPiArICAgICAgICAgICAgICAgICAgICBUNjIgPSBNRU9XXzFfRElW X1NRUl8yICogKFQ2MCAtIFQ2MSk7Cj4gKyAgICAgICAgICAgICAgICAgICAgVDc1ID0gTUVPV18x X0RJVl9TUVJfMiAqIChUNjAgKyBUNjEpOwo+ICsgICAgICAgICAgICAgICAgICAgIG91dFtjb3Vu dCAqIDddLnIgPSBUNTkgLSBUNjI7Cj4gKyAgICAgICAgICAgICAgICAgICAgb3V0W2NvdW50ICog NV0uaiA9IFQ3OCAtIFQ3NTsKPiArICAgICAgICAgICAgICAgICAgICBvdXRbY291bnQgKiAzXS5y ID0gVDU5ICsgVDYyOwo+ICsgICAgICAgICAgICAgICAgICAgIG91dFtjb3VudCAqIDFdLmogPSBU NzUgKyBUNzg7Cj4gKyAgICAgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgICAgICB7Cj4gKyAg ICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUNDc7Cj4gKyAgICAgICAgICAgICAgICAgICAg TWVvd19GbG9hdCBUODA7Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUNTg7Cj4g KyAgICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUNzk7Cj4gKyAgICAgICAgICAgICAgICAg ICAgTWVvd19GbG9hdCBUNTI7Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUNTc7 Cj4gKyAgICAgICAgICAgICAgICAgICAgVDQ3ID0gVDQzICsgVDQ2Owo+ICsgICAgICAgICAgICAg ICAgICAgIFQ4MCA9IFQ3NyArIFQ3NjsKPiArICAgICAgICAgICAgICAgICAgICBUNTIgPSBUNDgg KyBUNTE7Cj4gKyAgICAgICAgICAgICAgICAgICAgVDU3ID0gVDUzIC0gVDU2Owo+ICsgICAgICAg ICAgICAgICAgICAgIFQ1OCA9IE1FT1dfMV9ESVZfU1FSXzIgKiAoVDUyICsgVDU3KTsKPiArICAg ICAgICAgICAgICAgICAgICBUNzkgPSBNRU9XXzFfRElWX1NRUl8yICogKFQ1NyAtIFQ1Mik7Cj4g KyAgICAgICAgICAgICAgICAgICAgb3V0W2NvdW50ICogNV0uciA9IFQ0NyAtIFQ1ODsKPiArICAg ICAgICAgICAgICAgICAgICBvdXRbY291bnQgKiA3XS5qID0gVDgwIC0gVDc5Owo+ICsgICAgICAg ICAgICAgICAgICAgIG91dFtjb3VudCAqIDFdLnIgPSBUNDcgKyBUNTg7Cj4gKyAgICAgICAgICAg ICAgICAgICAgb3V0W2NvdW50ICogM10uaiA9IFQ3OSArIFQ4MDsKPiArICAgICAgICAgICAgICAg IH0KPiArICAgICAgICAgICAgfQo+ICsgICAgICAgIH0KPiArICAgIH0KPiArfQo+ICsKPiArLy8g LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArLy8gSW52ZXJzZQo+ICsvLyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+ICsKPiArdm9pZCBtZW93X3JhZGl4XzJfZGl0X2kKPiArKAo+ICsgICAgICBjb25zdCBN ZW93X0ZGVF9Db21wbGV4KiB3X24KPiArICAgICwgTWVvd19GRlRfQ29tcGxleCogICAgICAgb3V0 Cj4gKyAgICAsIHVuc2lnbmVkICAgICAgICAgICAgICAgIGNvdW50Cj4gKykKPiArewo+ICsgICAg Ly8gYnV0dGVyeWZseSAwIGFsd2F5cyBoYXMgdGhlIHR3aWRkbGUgZmFjdG9yID09IDEuMGYKPiAr ICAgIC8vIHNvIHNwZWNpYWwgY2FzZSB0aGF0IG9uZS4KPiArICAgIHsKPiArICAgICAgICBDb21w bGV4IHowICA9IG91dFswXTsKPiArICAgICAgICBDb21wbGV4IHoxICA9IG91dFtjb3VudF07Cj4g Kwo+ICsgICAgICAgIG91dFswXSAgICAgPSBtZW93X2FkZCh6MCwgejEpOwo+ICsgICAgICAgIG91 dFtjb3VudF0gPSBtZW93X3N1Yih6MCwgejEpOwo+ICsgICAgfQo+ICsKPiArICAgIGZvciAodW5z aWduZWQgYnV0dGVyZmx5ID0gMTsgYnV0dGVyZmx5IDwgY291bnQ7ICsrYnV0dGVyZmx5KQo+ICsg ICAgewo+ICsgICAgICAgIENvbXBsZXggIHcgICA9IHdfbltidXR0ZXJmbHkgLSAxXTsKPiArCj4g KyAgICAgICAgY29uc3QgdW5zaWduZWQgaTAgID0gYnV0dGVyZmx5Owo+ICsgICAgICAgIGNvbnN0 IHVuc2lnbmVkIGkxICA9IGJ1dHRlcmZseSArIGNvdW50Owo+ICsKPiArICAgICAgICBDb21wbGV4 IHowICA9IG91dFtpMF07Cj4gKyAgICAgICAgQ29tcGxleCB6MSAgPSBtZW93X211bChvdXRbaTFd LCB3KTsKPiArCj4gKyAgICAgICAgb3V0W2kwXSA9IG1lb3dfYWRkKHowLCB6MSk7Cj4gKyAgICAg ICAgb3V0W2kxXSA9IG1lb3dfc3ViKHowLCB6MSk7Cj4gKyAgICAgICAgLy8gRXF1YXRpb24gMTM1 Cj4gKyAgICB9Cj4gK30KPiArCj4gK3ZvaWQgbWVvd19yYWRpeF8zX2RpdF9pCj4gKygKPiArICAg ICAgY29uc3QgTWVvd19GRlRfQ29tcGxleCogd19uCj4gKyAgICAsIE1lb3dfRkZUX0NvbXBsZXgq ICAgICAgIG91dAo+ICsgICAgLCB1bnNpZ25lZCAgICAgICAgICAgICAgICBjb3VudAo+ICspCj4g K3sKPiArICAgIHVuc2lnbmVkIHdpID0gMHU7Cj4gKwo+ICsgICAgLy8gV1swXSBpcyBhbHdheXMg MS4wZjsKPiArICAgIHsKPiArICAgICAgICBjb25zdCB1bnNpZ25lZCBpMCAgPSAwICogY291bnQ7 Cj4gKyAgICAgICAgY29uc3QgdW5zaWduZWQgaTEgID0gMSAqIGNvdW50Owo+ICsgICAgICAgIGNv bnN0IHVuc2lnbmVkIGkyICA9IDIgKiBjb3VudDsKPiArCj4gKyAgICAgICAgQ29tcGxleCB6MCAg PSBvdXRbaTBdOwo+ICsgICAgICAgIENvbXBsZXggejEgID0gb3V0W2kxXTsKPiArICAgICAgICBD b21wbGV4IHoyICA9IG91dFtpMl07Cj4gKwo+ICsgICAgICAgIENvbXBsZXggdDEgID0gbWVvd19h ZGQoejEsIHoyKTsKPiArICAgICAgICBDb21wbGV4IHQyICA9IG1lb3dfc3ViKHowLCBtZW93X211 bGYodDEsIDAuNSkpOwo+ICsgICAgICAgIENvbXBsZXggdDNqID0gbWVvd19tdWxfYnlfago+ICsg ICAgICAgICgKPiArICAgICAgICAgICAgbWVvd19tdWxmKG1lb3dfc3ViKHoxLCB6MiksIC1NRU9X X1NJTl9QSV8zKQo+ICsgICAgICAgICk7Cj4gKwo+ICsgICAgICAgIG91dFtpMF0gPSBtZW93X2Fk ZCh6MCwgdDEpOwo+ICsgICAgICAgIG91dFtpMV0gPSBtZW93X2FkZCh0MiwgdDNqKTsKPiArICAg ICAgICBvdXRbaTJdID0gbWVvd19zdWIodDIsIHQzaik7Cj4gKyAgICB9Cj4gKwo+ICsgICAgZm9y ICh1bnNpZ25lZCBidXR0ZXJmbHkgPSAxOyBidXR0ZXJmbHkgPCBjb3VudDsgYnV0dGVyZmx5Kyss IHdpKz0yKQo+ICsgICAgewo+ICsgICAgICAgIENvbXBsZXggdzEgID0gd19uW3dpICsgMF07Cj4g KyAgICAgICAgQ29tcGxleCB3MiAgPSB3X25bd2kgKyAxXTsKPiArCj4gKyAgICAgICAgY29uc3Qg dW5zaWduZWQgaTAgID0gYnV0dGVyZmx5Owo+ICsgICAgICAgIGNvbnN0IHVuc2lnbmVkIGkxICA9 IGJ1dHRlcmZseSArIGNvdW50Owo+ICsgICAgICAgIGNvbnN0IHVuc2lnbmVkIGkyICA9IGJ1dHRl cmZseSArIDIgKiBjb3VudDsKPiArCj4gKyAgICAgICAgQ29tcGxleCB6MCAgPSAgICAgICAgIG91 dFtpMF07Cj4gKyAgICAgICAgQ29tcGxleCB6MSAgPSBtZW93X211bCh3MSwgb3V0W2kxXSk7Cj4g KyAgICAgICAgQ29tcGxleCB6MiAgPSBtZW93X211bCh3Miwgb3V0W2kyXSk7Cj4gKwo+ICsgICAg ICAgIENvbXBsZXggdDEgID0gbWVvd19hZGQoejEsIHoyKTsKPiArICAgICAgICBDb21wbGV4IHQy ICA9IG1lb3dfc3ViKHowLCBtZW93X211bGYodDEsIDAuNSkpOwo+ICsgICAgICAgIENvbXBsZXgg dDNqID0gbWVvd19tdWxfYnlfago+ICsgICAgICAgICgKPiArICAgICAgICAgICAgbWVvd19tdWxm KG1lb3dfc3ViKHoxLCB6MiksIC1NRU9XX1NJTl9QSV8zKQo+ICsgICAgICAgICk7Cj4gKyAgICAg ICAgLy8gRXF1YXRpb24gMTM2Cj4gKwo+ICsgICAgICAgIG91dFtpMF0gPSBtZW93X2FkZCh6MCwg dDEpOwo+ICsgICAgICAgIG91dFtpMV0gPSBtZW93X2FkZCh0MiwgdDNqKTsKPiArICAgICAgICBv dXRbaTJdID0gbWVvd19zdWIodDIsIHQzaik7Cj4gKyAgICAgICAgLy8gRXF1YXRpb24gMTM3Cj4g KyAgICB9Cj4gK30KPiArCj4gK3ZvaWQgbWVvd19yYWRpeF80X2RpdF9pCj4gKygKPiArICAgICAg Y29uc3QgTWVvd19GRlRfQ29tcGxleCogd19uCj4gKyAgICAsIE1lb3dfRkZUX0NvbXBsZXgqICAg ICAgIG91dAo+ICsgICAgLCB1bnNpZ25lZCAgICAgICAgICAgICAgICBjb3VudAo+ICspCj4gK3sK PiArICAgIHVuc2lnbmVkIHdpID0gMHU7Cj4gKwo+ICsgICAgLy8gV1swXSBpcyBhbHdheXMgMS4w ZjsKPiArICAgIHsKPiArICAgICAgICBjb25zdCB1bnNpZ25lZCBpMCAgPSAwICogY291bnQ7Cj4g KyAgICAgICAgY29uc3QgdW5zaWduZWQgaTEgID0gMSAqIGNvdW50Owo+ICsgICAgICAgIGNvbnN0 IHVuc2lnbmVkIGkyICA9IDIgKiBjb3VudDsKPiArICAgICAgICBjb25zdCB1bnNpZ25lZCBpMyAg PSAzICogY291bnQ7Cj4gKwo+ICsgICAgICAgIENvbXBsZXggejAgID0gb3V0W2kwXTsKPiArICAg ICAgICBDb21wbGV4IHoxICA9IG91dFtpMV07Cj4gKyAgICAgICAgQ29tcGxleCB6MiAgPSBvdXRb aTJdOwo+ICsgICAgICAgIENvbXBsZXggejMgID0gb3V0W2kzXTsKPiArCj4gKyAgICAgICAgQ29t cGxleCB0MSAgPSBtZW93X2FkZCh6MCwgejIpOwo+ICsgICAgICAgIENvbXBsZXggdDIgID0gbWVv d19hZGQoejEsIHozKTsKPiArICAgICAgICBDb21wbGV4IHQzICA9IG1lb3dfc3ViKHowLCB6Mik7 Cj4gKyAgICAgICAgQ29tcGxleCB0NGogPSBtZW93X211bF9ieV9qKG1lb3dfc3ViKHoxLCB6Mykp Owo+ICsKPiArICAgICAgICBvdXRbaTBdID0gbWVvd19hZGQodDEsIHQyKTsKPiArICAgICAgICBv dXRbaTFdID0gbWVvd19hZGQodDMsIHQ0aik7Cj4gKyAgICAgICAgb3V0W2kyXSA9IG1lb3dfc3Vi KHQxLCB0Mik7Cj4gKyAgICAgICAgb3V0W2kzXSA9IG1lb3dfc3ViKHQzLCB0NGopOwo+ICsgICAg fQo+ICsKPiArICAgIGZvciAodW5zaWduZWQgYnV0dGVyZmx5ID0gMTsgYnV0dGVyZmx5IDwgY291 bnQ7ICsrYnV0dGVyZmx5LCB3aSs9MykKPiArICAgIHsKPiArICAgICAgICBDb21wbGV4IHcxICA9 IHdfblt3aSArIDBdOwo+ICsgICAgICAgIENvbXBsZXggdzIgID0gd19uW3dpICsgMV07Cj4gKyAg ICAgICAgQ29tcGxleCB3MyAgPSB3X25bd2kgKyAyXTsKPiArCj4gKyAgICAgICAgY29uc3QgdW5z aWduZWQgaTAgID0gYnV0dGVyZmx5ICsgMCAqIGNvdW50Owo+ICsgICAgICAgIGNvbnN0IHVuc2ln bmVkIGkxICA9IGJ1dHRlcmZseSArIDEgKiBjb3VudDsKPiArICAgICAgICBjb25zdCB1bnNpZ25l ZCBpMiAgPSBidXR0ZXJmbHkgKyAyICogY291bnQ7Cj4gKyAgICAgICAgY29uc3QgdW5zaWduZWQg aTMgID0gYnV0dGVyZmx5ICsgMyAqIGNvdW50Owo+ICsKPiArICAgICAgICBDb21wbGV4IHowICA9 ICAgICAgICAgb3V0W2kwXTsKPiArICAgICAgICBDb21wbGV4IHoxICA9IG1lb3dfbXVsKHcxLCBv dXRbaTFdKTsKPiArICAgICAgICBDb21wbGV4IHoyICA9IG1lb3dfbXVsKHcyLCBvdXRbaTJdKTsK PiArICAgICAgICBDb21wbGV4IHozICA9IG1lb3dfbXVsKHczLCBvdXRbaTNdKTsKPiArCj4gKyAg ICAgICAgQ29tcGxleCB0MSAgPSBtZW93X2FkZCh6MCwgejIpOwo+ICsgICAgICAgIENvbXBsZXgg dDIgID0gbWVvd19hZGQoejEsIHozKTsKPiArICAgICAgICBDb21wbGV4IHQzICA9IG1lb3dfc3Vi KHowLCB6Mik7Cj4gKwo+ICsgICAgICAgIENvbXBsZXggdDRqID0gbWVvd19tdWxfYnlfaihtZW93 X3N1Yih6MSwgejMpKTsKPiArICAgICAgICAvLyBFcXVhdGlvbnMgMTM4Cj4gKyAgICAgICAgLy8g QWxzbyBpbnN0ZWFkIG9mIGNvbmp1Z2F0aW5nIHRoZSBpbnB1dCBhbmQgbXVsdHBseWluZyB3aXRo IHRoZQo+ICsgICAgICAgIC8vIHR3aWRkbGVzIGZvciB0aGUgaWZmdCwgd2UgaW52ZXJ0IHRoZSB0 d2lkZGxlcyBpbnN0ZWFkLiBUaGlzIHdvcmtzCj4gKyAgICAgICAgLy8gZmluZSBleGNlcHQgaGVy ZSwgdGhlIG11bF9ieV9qIGlzIGFzc3VtaW5nIHRoYXQgaXQncyB0aGUgZm9yd2FyZAo+ICsgICAg ICAgIC8vIGZmdCB0d2lkZGxlIHdlIGFyZSBtdWx0aXBseWluZyB3aXRoLCBub3QgdGhlIGNvbmp1 Z2F0ZWQgb25lIHdlCj4gKyAgICAgICAgLy8gYWN0dWFsbHkgaGF2ZS4gU28gd2UgaGF2ZSB0byBj b25qdWdhdGUgaXQgX2JhY2tfIGlmIHdlIGFyZSBkb2luZyB0aGUKPiArICAgICAgICAvLyBpZmZ0 Lgo+ICsgICAgICAgIC8vIEFsc28sIGhhZCB0byBtdWx0aXBseSBieSAtaiwgbm90IGogZm9yIHJl YXNvbnMgSSBhbSB5ZXQgdG8gZ3Jhc3AuCj4gKwo+ICsgICAgICAgIG91dFtpMF0gPSBtZW93X2Fk ZCh0MSwgdDIpOwo+ICsgICAgICAgIG91dFtpMV0gPSBtZW93X2FkZCh0MywgdDRqKTsKPiArICAg ICAgICBvdXRbaTJdID0gbWVvd19zdWIodDEsIHQyKTsKPiArICAgICAgICBvdXRbaTNdID0gbWVv d19zdWIodDMsIHQ0aik7Cj4gKyAgICAgICAgLy8gRXF1YXRpb25zIDEzOQo+ICsgICAgfQo+ICt9 Cj4gKwo+ICt2b2lkIG1lb3dfcmFkaXhfNV9kaXRfaQo+ICsoCj4gKyAgICAgIGNvbnN0IE1lb3df RkZUX0NvbXBsZXgqIHdfbgo+ICsgICAgLCBNZW93X0ZGVF9Db21wbGV4KiAgICAgICBvdXQKPiAr ICAgICwgdW5zaWduZWQgICAgICAgICAgICAgICAgY291bnQKPiArKQo+ICt7Cj4gKyAgICB1bnNp Z25lZCB3aSA9IDB1Owo+ICsKPiArICAgIC8vIFdbMF0gaXMgYWx3YXlzIDEuMGY7Cj4gKyAgICB7 Cj4gKyAgICAgICAgY29uc3QgdW5zaWduZWQgaTAgICA9IDAgKiBjb3VudDsKPiArICAgICAgICBj b25zdCB1bnNpZ25lZCBpMSAgID0gMSAqIGNvdW50Owo+ICsgICAgICAgIGNvbnN0IHVuc2lnbmVk IGkyICAgPSAyICogY291bnQ7Cj4gKyAgICAgICAgY29uc3QgdW5zaWduZWQgaTMgICA9IDMgKiBj b3VudDsKPiArICAgICAgICBjb25zdCB1bnNpZ25lZCBpNCAgID0gNCAqIGNvdW50Owo+ICsKPiAr ICAgICAgICBDb21wbGV4IHowICAgPSBvdXRbaTBdOwo+ICsgICAgICAgIENvbXBsZXggejEgICA9 IG91dFtpMV07Cj4gKyAgICAgICAgQ29tcGxleCB6MiAgID0gb3V0W2kyXTsKPiArICAgICAgICBD b21wbGV4IHozICAgPSBvdXRbaTNdOwo+ICsgICAgICAgIENvbXBsZXggejQgICA9IG91dFtpNF07 Cj4gKwo+ICsgICAgICAgIENvbXBsZXggdDEgICA9IG1lb3dfYWRkKHoxLCB6NCk7Cj4gKyAgICAg ICAgQ29tcGxleCB0MiAgID0gbWVvd19hZGQoejIsIHozKTsKPiArICAgICAgICBDb21wbGV4IHQz ICAgPSBtZW93X3N1Yih6MSwgejQpOwo+ICsgICAgICAgIENvbXBsZXggdDQgICA9IG1lb3dfc3Vi KHoyLCB6Myk7Cj4gKyAgICAgICAgLy8gRXF1YXRpb25zIDE0MAo+ICsKPiArICAgICAgICBDb21w bGV4IHQ1ICAgPSBtZW93X2FkZCh0MSwgdDIpOwo+ICsgICAgICAgIENvbXBsZXggdDYgICA9IG1l b3dfbXVsZihtZW93X3N1Yih0MSwgdDIpLCBNRU9XX1NRUl81X0RJVl80KTsKPiArICAgICAgICBD b21wbGV4IHQ3ICAgPSBtZW93X3N1Yih6MCwgbWVvd19tdWxmKHQ1LCAwLjI1ZikpOwo+ICsgICAg ICAgIC8vIEVxdWF0aW9uIDE0MQo+ICsKPiArICAgICAgICBDb21wbGV4IHQ4ICAgPSBtZW93X2Fk ZCh0NywgdDYpOwo+ICsgICAgICAgIENvbXBsZXggdDkgICA9IG1lb3dfc3ViKHQ3LCB0Nik7Cj4g KyAgICAgICAgLy8gRXF1YXRpb24gMTQyCj4gKwo+ICsgICAgICAgIENvbXBsZXggdDEwaiA9IG1l b3dfbXVsX2J5X2oKPiArICAgICAgICAoCj4gKyAgICAgICAgICAgIG1lb3dfYWRkCj4gKyAgICAg ICAgICAgICgKPiArICAgICAgICAgICAgICAgICAgbWVvd19tdWxmKHQzLCAtTUVPV19TSU5fMlBJ XzUpCj4gKyAgICAgICAgICAgICAgICAsIG1lb3dfbXVsZih0NCwgLU1FT1dfU0lOXzJQSV8xMCkK PiArICAgICAgICAgICAgKQo+ICsgICAgICAgICk7Cj4gKwo+ICsgICAgICAgIENvbXBsZXggdDEx aiA9IG1lb3dfbXVsX2J5X2oKPiArICAgICAgICAoCj4gKyAgICAgICAgICAgIG1lb3dfc3ViCj4g KyAgICAgICAgICAgICgKPiArICAgICAgICAgICAgICAgICAgbWVvd19tdWxmKHQzLCAtTUVPV19T SU5fMlBJXzEwKQo+ICsgICAgICAgICAgICAgICAgLCBtZW93X211bGYodDQsIC1NRU9XX1NJTl8y UElfNSkKPiArICAgICAgICAgICAgKQo+ICsgICAgICAgICk7Cj4gKyAgICAgICAgLy8gRXF1YXRp b24gMTQzCj4gKwo+ICsgICAgICAgIG91dFtpMF0gPSBtZW93X2FkZCh6MCwgdDUpOwo+ICsgICAg ICAgIC8vIEVxdWF0aW9uIDE0NAo+ICsKPiArICAgICAgICBvdXRbaTFdID0gbWVvd19hZGQodDgs IHQxMGopOwo+ICsgICAgICAgIG91dFtpMl0gPSBtZW93X2FkZCh0OSwgdDExaik7Cj4gKyAgICAg ICAgLy8gRXF1YXRpb24gMTQ1Cj4gKwo+ICsgICAgICAgIG91dFtpM10gPSBtZW93X3N1Yih0OSwg dDExaik7Cj4gKyAgICAgICAgb3V0W2k0XSA9IG1lb3dfc3ViKHQ4LCB0MTBqKTsKPiArICAgICAg ICAvLyBFcXVhdGlvbiAxNDYKPiArICAgIH0KPiArCj4gKyAgICBmb3IgKHVuc2lnbmVkIGJ1dHRl cmZseSA9IDE7IGJ1dHRlcmZseSA8IGNvdW50OyArK2J1dHRlcmZseSwgd2krPTQpCj4gKyAgICB7 Cj4gKyAgICAgICAgQ29tcGxleCB3MSAgPSB3X25bd2kgKyAwXTsKPiArICAgICAgICBDb21wbGV4 IHcyICA9IHdfblt3aSArIDFdOwo+ICsgICAgICAgIENvbXBsZXggdzMgID0gd19uW3dpICsgMl07 Cj4gKyAgICAgICAgQ29tcGxleCB3NCAgPSB3X25bd2kgKyAzXTsKPiArCj4gKyAgICAgICAgY29u c3QgdW5zaWduZWQgaTAgICA9IGJ1dHRlcmZseSArIDAgKiBjb3VudDsKPiArICAgICAgICBjb25z dCB1bnNpZ25lZCBpMSAgID0gYnV0dGVyZmx5ICsgMSAqIGNvdW50Owo+ICsgICAgICAgIGNvbnN0 IHVuc2lnbmVkIGkyICAgPSBidXR0ZXJmbHkgKyAyICogY291bnQ7Cj4gKyAgICAgICAgY29uc3Qg dW5zaWduZWQgaTMgICA9IGJ1dHRlcmZseSArIDMgKiBjb3VudDsKPiArICAgICAgICBjb25zdCB1 bnNpZ25lZCBpNCAgID0gYnV0dGVyZmx5ICsgNCAqIGNvdW50Owo+ICsKPiArICAgICAgICBDb21w bGV4IHowICAgPSAgICAgICAgIG91dFtpMF07Cj4gKyAgICAgICAgQ29tcGxleCB6MSAgID0gbWVv d19tdWwodzEsIG91dFtpMV0pOwo+ICsgICAgICAgIENvbXBsZXggejIgICA9IG1lb3dfbXVsKHcy LCBvdXRbaTJdKTsKPiArICAgICAgICBDb21wbGV4IHozICAgPSBtZW93X211bCh3Mywgb3V0W2kz XSk7Cj4gKyAgICAgICAgQ29tcGxleCB6NCAgID0gbWVvd19tdWwodzQsIG91dFtpNF0pOwo+ICsK PiArICAgICAgICBDb21wbGV4IHQxICAgPSBtZW93X2FkZCh6MSwgejQpOwo+ICsgICAgICAgIENv bXBsZXggdDIgICA9IG1lb3dfYWRkKHoyLCB6Myk7Cj4gKyAgICAgICAgQ29tcGxleCB0MyAgID0g bWVvd19zdWIoejEsIHo0KTsKPiArICAgICAgICBDb21wbGV4IHQ0ICAgPSBtZW93X3N1Yih6Miwg ejMpOwo+ICsgICAgICAgIC8vIEVxdWF0aW9ucyAxNDAKPiArCj4gKyAgICAgICAgQ29tcGxleCB0 NSAgID0gbWVvd19hZGQodDEsIHQyKTsKPiArICAgICAgICBDb21wbGV4IHQ2ICAgPSBtZW93X211 bGYobWVvd19zdWIodDEsIHQyKSwgTUVPV19TUVJfNV9ESVZfNCk7Cj4gKyAgICAgICAgQ29tcGxl eCB0NyAgID0gbWVvd19zdWIoejAsIG1lb3dfbXVsZih0NSwgMC4yNWYpKTsKPiArICAgICAgICAv LyBFcXVhdGlvbiAxNDEKPiArCj4gKyAgICAgICAgQ29tcGxleCB0OCAgID0gbWVvd19hZGQodDcs IHQ2KTsKPiArICAgICAgICBDb21wbGV4IHQ5ICAgPSBtZW93X3N1Yih0NywgdDYpOwo+ICsgICAg ICAgIC8vIEVxdWF0aW9uIDE0Mgo+ICsKPiArICAgICAgICBDb21wbGV4IHQxMGogPSBtZW93X211 bF9ieV9qCj4gKyAgICAgICAgKAo+ICsgICAgICAgICAgICBtZW93X2FkZAo+ICsgICAgICAgICAg ICAoCj4gKyAgICAgICAgICAgICAgICAgIG1lb3dfbXVsZih0MywgLU1FT1dfU0lOXzJQSV81KQo+ ICsgICAgICAgICAgICAgICAgLCBtZW93X211bGYodDQsIC1NRU9XX1NJTl8yUElfMTApCj4gKyAg ICAgICAgICAgICkKPiArICAgICAgICApOwo+ICsKPiArICAgICAgICBDb21wbGV4IHQxMWogPSBt ZW93X211bF9ieV9qCj4gKyAgICAgICAgKAo+ICsgICAgICAgICAgICBtZW93X3N1Ygo+ICsgICAg ICAgICAgICAoCj4gKyAgICAgICAgICAgICAgICAgIG1lb3dfbXVsZih0MywgLU1FT1dfU0lOXzJQ SV8xMCkKPiArICAgICAgICAgICAgICAgICwgbWVvd19tdWxmKHQ0LCAtTUVPV19TSU5fMlBJXzUp Cj4gKyAgICAgICAgICAgICkKPiArICAgICAgICApOwo+ICsgICAgICAgIC8vIEVxdWF0aW9uIDE0 Mwo+ICsKPiArICAgICAgICBvdXRbaTBdID0gbWVvd19hZGQoejAsIHQ1KTsKPiArICAgICAgICAv LyBFcXVhdGlvbiAxNDQKPiArCj4gKyAgICAgICAgb3V0W2kxXSA9IG1lb3dfYWRkKHQ4LCB0MTBq KTsKPiArICAgICAgICBvdXRbaTJdID0gbWVvd19hZGQodDksIHQxMWopOwo+ICsgICAgICAgIC8v IEVxdWF0aW9uIDE0NQo+ICsKPiArICAgICAgICBvdXRbaTNdID0gbWVvd19zdWIodDksIHQxMWop Owo+ICsgICAgICAgIG91dFtpNF0gPSBtZW93X3N1Yih0OCwgdDEwaik7Cj4gKyAgICAgICAgLy8g RXF1YXRpb24gMTQ2Cj4gKyAgICB9Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIG1lb3dfcmFkaXhf OF9kaXRfaQo+ICsoCj4gKyAgICAgIGNvbnN0IE1lb3dfRkZUX0NvbXBsZXgqIHdfbgo+ICsgICAg LCBNZW93X0ZGVF9Db21wbGV4KiAgICAgICBvdXQKPiArICAgICwgdW5zaWduZWQgICAgICAgICAg ICAgICAgY291bnQKPiArKQo+ICt7Cj4gKyAgICBjb25zdCBNZW93X0Zsb2F0KiBXID0gJndfblsw XS5yOwo+ICsgICAgewo+ICsgICAgICAgIE1lb3dfRmxvYXQgVDM7Cj4gKyAgICAgICAgTWVvd19G bG9hdCBUMzc7Cj4gKyAgICAgICAgTWVvd19GbG9hdCBUMTg7Cj4gKyAgICAgICAgTWVvd19GbG9h dCBUMjM7Cj4gKyAgICAgICAgTWVvd19GbG9hdCBUNjsKPiArICAgICAgICBNZW93X0Zsb2F0IFQy NDsKPiArICAgICAgICBNZW93X0Zsb2F0IFQyMTsKPiArICAgICAgICBNZW93X0Zsb2F0IFQzODsK PiArICAgICAgICBNZW93X0Zsb2F0IFQxMzsKPiArICAgICAgICBNZW93X0Zsb2F0IFQ0OTsKPiAr ICAgICAgICBNZW93X0Zsb2F0IFQzNTsKPiArICAgICAgICBNZW93X0Zsb2F0IFQ0MzsKPiArICAg ICAgICBNZW93X0Zsb2F0IFQxMDsKPiArICAgICAgICBNZW93X0Zsb2F0IFQ0ODsKPiArICAgICAg ICBNZW93X0Zsb2F0IFQzMDsKPiArICAgICAgICBNZW93X0Zsb2F0IFQ0MjsKPiArICAgICAgICB7 Cj4gKyAgICAgICAgICAgIE1lb3dfRmxvYXQgVDE7Cj4gKyAgICAgICAgICAgIE1lb3dfRmxvYXQg VDI7Cj4gKyAgICAgICAgICAgIE1lb3dfRmxvYXQgVDE5Owo+ICsgICAgICAgICAgICBNZW93X0Zs b2F0IFQyMDsKPiArICAgICAgICAgICAgVDEgPSBvdXRbMF0ucjsKPiArICAgICAgICAgICAgVDIg PSBvdXRbY291bnQgKiA0XS5yOwo+ICsgICAgICAgICAgICBUMyA9IFQxICsgVDI7Cj4gKyAgICAg ICAgICAgIFQzNyA9IFQxIC0gVDI7Cj4gKyAgICAgICAgICAgIHsKPiArICAgICAgICAgICAgICAg IE1lb3dfRmxvYXQgVDE2Owo+ICsgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMTc7Cj4gKyAg ICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQ0Owo+ICsgICAgICAgICAgICAgICAgTWVvd19GbG9h dCBUNTsKPiArICAgICAgICAgICAgICAgIFQxNiA9IG91dFswXS5qOwo+ICsgICAgICAgICAgICAg ICAgVDE3ID0gb3V0W2NvdW50ICogNF0uajsKPiArICAgICAgICAgICAgICAgIFQxOCA9IFQxNiAr IFQxNzsKPiArICAgICAgICAgICAgICAgIFQyMyA9IFQxNiAtIFQxNzsKPiArICAgICAgICAgICAg ICAgIFQ0ID0gb3V0W2NvdW50ICogMl0ucjsKPiArICAgICAgICAgICAgICAgIFQ1ID0gb3V0W2Nv dW50ICogNl0ucjsKPiArICAgICAgICAgICAgICAgIFQ2ID0gVDQgKyBUNTsKPiArICAgICAgICAg ICAgICAgIFQyNCA9IFQ0IC0gVDU7Cj4gKyAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgVDE5 ID0gb3V0W2NvdW50ICogMl0uajsKPiArICAgICAgICAgICAgVDIwID0gb3V0W2NvdW50ICogNl0u ajsKPiArICAgICAgICAgICAgVDIxID0gVDE5ICsgVDIwOwo+ICsgICAgICAgICAgICBUMzggPSBU MTkgLSBUMjA7Cj4gKyAgICAgICAgICAgIHsKPiArICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQg VDExOwo+ICsgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMTI7Cj4gKyAgICAgICAgICAgICAg ICBNZW93X0Zsb2F0IFQzMTsKPiArICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDMyOwo+ICsg ICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMzM7Cj4gKyAgICAgICAgICAgICAgICBNZW93X0Zs b2F0IFQzNDsKPiArICAgICAgICAgICAgICAgIFQxMSA9IG91dFtjb3VudCAqIDddLnI7Cj4gKyAg ICAgICAgICAgICAgICBUMTIgPSBvdXRbY291bnQgKiAzXS5yOwo+ICsgICAgICAgICAgICAgICAg VDMxID0gVDExIC0gVDEyOwo+ICsgICAgICAgICAgICAgICAgVDMyID0gb3V0W2NvdW50ICogN10u ajsKPiArICAgICAgICAgICAgICAgIFQzMyA9IG91dFtjb3VudCAqIDNdLmo7Cj4gKyAgICAgICAg ICAgICAgICBUMzQgPSBUMzIgLSBUMzM7Cj4gKyAgICAgICAgICAgICAgICBUMTMgPSBUMTEgKyBU MTI7Cj4gKyAgICAgICAgICAgICAgICBUNDkgPSBUMzIgKyBUMzM7Cj4gKyAgICAgICAgICAgICAg ICBUMzUgPSBUMzEgKyBUMzQ7Cj4gKyAgICAgICAgICAgICAgICBUNDMgPSBUMzQgLSBUMzE7Cj4g KyAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgewo+ICsgICAgICAgICAgICAgICAgTWVvd19G bG9hdCBUODsKPiArICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDk7Cj4gKyAgICAgICAgICAg ICAgICBNZW93X0Zsb2F0IFQyNjsKPiArICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDI3Owo+ ICsgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMjg7Cj4gKyAgICAgICAgICAgICAgICBNZW93 X0Zsb2F0IFQyOTsKPiArICAgICAgICAgICAgICAgIFQ4ID0gb3V0W2NvdW50ICogMV0ucjsKPiAr ICAgICAgICAgICAgICAgIFQ5ID0gb3V0W2NvdW50ICogNV0ucjsKPiArICAgICAgICAgICAgICAg IFQyNiA9IFQ4IC0gVDk7Cj4gKyAgICAgICAgICAgICAgICBUMjcgPSBvdXRbY291bnQgKiAxXS5q Owo+ICsgICAgICAgICAgICAgICAgVDI4ID0gb3V0W2NvdW50ICogNV0uajsKPiArICAgICAgICAg ICAgICAgIFQyOSA9IFQyNyAtIFQyODsKPiArICAgICAgICAgICAgICAgIFQxMCA9IFQ4ICsgVDk7 Cj4gKyAgICAgICAgICAgICAgICBUNDggPSBUMjcgKyBUMjg7Cj4gKyAgICAgICAgICAgICAgICBU MzAgPSBUMjYgLSBUMjk7Cj4gKyAgICAgICAgICAgICAgICBUNDIgPSBUMjYgKyBUMjk7Cj4gKyAg ICAgICAgICAgIH0KPiArICAgICAgICB9Cj4gKyAgICAgICAgewo+ICsgICAgICAgICAgICBNZW93 X0Zsb2F0IFQ3Owo+ICsgICAgICAgICAgICBNZW93X0Zsb2F0IFQxNDsKPiArICAgICAgICAgICAg TWVvd19GbG9hdCBUNDc7Cj4gKyAgICAgICAgICAgIE1lb3dfRmxvYXQgVDUwOwo+ICsgICAgICAg ICAgICBUNyA9IFQzICsgVDY7Cj4gKyAgICAgICAgICAgIFQxNCA9IFQxMCArIFQxMzsKPiArICAg ICAgICAgICAgb3V0W2NvdW50ICogNF0uciA9IFQ3IC0gVDE0Owo+ICsgICAgICAgICAgICBvdXRb MF0uciA9IFQ3ICsgVDE0Owo+ICsgICAgICAgICAgICBUNDcgPSBUMTggKyBUMjE7Cj4gKyAgICAg ICAgICAgIFQ1MCA9IFQ0OCArIFQ0OTsKPiArICAgICAgICAgICAgb3V0W2NvdW50ICogNF0uaiA9 IFQ0NyAtIFQ1MDsKPiArICAgICAgICAgICAgb3V0WzBdLmogPSBUNDcgKyBUNTA7Cj4gKyAgICAg ICAgfQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgTWVvd19GbG9hdCBUMTU7Cj4gKyAgICAg ICAgICAgIE1lb3dfRmxvYXQgVDIyOwo+ICsgICAgICAgICAgICBNZW93X0Zsb2F0IFQ1MTsKPiAr ICAgICAgICAgICAgTWVvd19GbG9hdCBUNTI7Cj4gKyAgICAgICAgICAgIFQxNSA9IFQxMCAtIFQx MzsKPiArICAgICAgICAgICAgVDIyID0gVDE4IC0gVDIxOwo+ICsgICAgICAgICAgICBvdXRbY291 bnQgKiAyXS5qID0gVDE1ICsgVDIyOwo+ICsgICAgICAgICAgICBvdXRbY291bnQgKiA2XS5qID0g VDIyIC0gVDE1Owo+ICsgICAgICAgICAgICBUNTEgPSBUMyAtIFQ2Owo+ICsgICAgICAgICAgICBU NTIgPSBUNDkgLSBUNDg7Cj4gKyAgICAgICAgICAgIG91dFtjb3VudCAqIDZdLnIgPSBUNTEgLSBU NTI7Cj4gKyAgICAgICAgICAgIG91dFtjb3VudCAqIDJdLnIgPSBUNTEgKyBUNTI7Cj4gKyAgICAg ICAgfQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgTWVvd19GbG9hdCBUMjU7Cj4gKyAgICAg ICAgICAgIE1lb3dfRmxvYXQgVDM2Owo+ICsgICAgICAgICAgICBNZW93X0Zsb2F0IFQ0NTsKPiAr ICAgICAgICAgICAgTWVvd19GbG9hdCBUNDY7Cj4gKyAgICAgICAgICAgIFQyNSA9IFQyMyAtIFQy NDsKPiArICAgICAgICAgICAgVDM2ID0gTUVPV18xX0RJVl9TUVJfMiAqIChUMzAgLSBUMzUpOwo+ ICsgICAgICAgICAgICBvdXRbY291bnQgKiA3XS5qID0gVDI1IC0gVDM2Owo+ICsgICAgICAgICAg ICBvdXRbY291bnQgKiAzXS5qID0gVDI1ICsgVDM2Owo+ICsgICAgICAgICAgICBUNDUgPSBUMzcg KyBUMzg7Cj4gKyAgICAgICAgICAgIFQ0NiA9IE1FT1dfMV9ESVZfU1FSXzIgKiAoVDQzIC0gVDQy KTsKPiArICAgICAgICAgICAgb3V0W2NvdW50ICogN10uciA9IFQ0NSAtIFQ0NjsKPiArICAgICAg ICAgICAgb3V0W2NvdW50ICogM10uciA9IFQ0NSArIFQ0NjsKPiArICAgICAgICB9Cj4gKyAgICAg ICAgewo+ICsgICAgICAgICAgICBNZW93X0Zsb2F0IFQzOTsKPiArICAgICAgICAgICAgTWVvd19G bG9hdCBUNDA7Cj4gKyAgICAgICAgICAgIE1lb3dfRmxvYXQgVDQxOwo+ICsgICAgICAgICAgICBN ZW93X0Zsb2F0IFQ0NDsKPiArICAgICAgICAgICAgVDM5ID0gVDM3IC0gVDM4Owo+ICsgICAgICAg ICAgICBUNDAgPSBNRU9XXzFfRElWX1NRUl8yICogKFQzMCArIFQzNSk7Cj4gKyAgICAgICAgICAg IG91dFtjb3VudCAqIDVdLnIgPSBUMzkgLSBUNDA7Cj4gKyAgICAgICAgICAgIG91dFtjb3VudCAq IDFdLnIgPSBUMzkgKyBUNDA7Cj4gKyAgICAgICAgICAgIFQ0MSA9IFQyNCArIFQyMzsKPiArICAg ICAgICAgICAgVDQ0ID0gTUVPV18xX0RJVl9TUVJfMiAqIChUNDIgKyBUNDMpOwo+ICsgICAgICAg ICAgICBvdXRbY291bnQgKiA1XS5qID0gVDQxIC0gVDQ0Owo+ICsgICAgICAgICAgICBvdXRbY291 bnQgKiAxXS5qID0gVDQxICsgVDQ0Owo+ICsgICAgICAgIH0KPiArICAgIH0KPiArCj4gKyAgICBv dXQgPSBvdXQgKyAxOwo+ICsKPiArICAgIHsKPiArICAgICAgICB1bnNpZ25lZCBtOwo+ICsgICAg ICAgIGZvciAobSA9IDE7IG0gPCBjb3VudDsgbSA9IG0gKyAxLCBvdXQgPSBvdXQgKyAxLCBXID0g VyArIDE0KQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgTWVvd19GbG9hdCBUNzsKPiArICAg ICAgICAgICAgTWVvd19GbG9hdCBUNzc7Cj4gKyAgICAgICAgICAgIE1lb3dfRmxvYXQgVDQzOwo+ ICsgICAgICAgICAgICBNZW93X0Zsb2F0IFQ3MTsKPiArICAgICAgICAgICAgTWVvd19GbG9hdCBU NDE7Cj4gKyAgICAgICAgICAgIE1lb3dfRmxvYXQgVDY0Owo+ICsgICAgICAgICAgICBNZW93X0Zs b2F0IFQ1MzsKPiArICAgICAgICAgICAgTWVvd19GbG9hdCBUNTY7Cj4gKyAgICAgICAgICAgIE1l b3dfRmxvYXQgVDE4Owo+ICsgICAgICAgICAgICBNZW93X0Zsb2F0IFQ3NjsKPiArICAgICAgICAg ICAgTWVvd19GbG9hdCBUNDY7Cj4gKyAgICAgICAgICAgIE1lb3dfRmxvYXQgVDY4Owo+ICsgICAg ICAgICAgICBNZW93X0Zsb2F0IFQzMDsKPiArICAgICAgICAgICAgTWVvd19GbG9hdCBUNjU7Cj4g KyAgICAgICAgICAgIE1lb3dfRmxvYXQgVDQ4Owo+ICsgICAgICAgICAgICBNZW93X0Zsb2F0IFQ1 MTsKPiArICAgICAgICAgICAgewo+ICsgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMTsKPiAr ICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDcwOwo+ICsgICAgICAgICAgICAgICAgTWVvd19G bG9hdCBUNjsKPiArICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDY5Owo+ICsgICAgICAgICAg ICAgICAgVDEgPSBvdXRbMF0ucjsKPiArICAgICAgICAgICAgICAgIFQ3MCA9IG91dFswXS5qOwo+ ICsgICAgICAgICAgICAgICAgewo+ICsgICAgICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDM7 Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUNTsKPiArICAgICAgICAgICAgICAg ICAgICBNZW93X0Zsb2F0IFQyOwo+ICsgICAgICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDQ7 Cj4gKyAgICAgICAgICAgICAgICAgICAgVDMgPSBvdXRbY291bnQgKiA0XS5yOwo+ICsgICAgICAg ICAgICAgICAgICAgIFQ1ID0gb3V0W2NvdW50ICogNF0uajsKPiArICAgICAgICAgICAgICAgICAg ICBUMiA9IFdbNl07Cj4gKyAgICAgICAgICAgICAgICAgICAgVDQgPSBXWzddOwo+ICsgICAgICAg ICAgICAgICAgICAgIFQ2ID0gKFQyICogVDMpIC0gKFQ0ICogVDUpOwo+ICsgICAgICAgICAgICAg ICAgICAgIFQ2OSA9IChUNCAqIFQzKSArIChUMiAqIFQ1KTsKPiArICAgICAgICAgICAgICAgIH0K PiArICAgICAgICAgICAgICAgIFQ3ID0gVDEgKyBUNjsKPiArICAgICAgICAgICAgICAgIFQ3NyA9 IFQ3MCAtIFQ2OTsKPiArICAgICAgICAgICAgICAgIFQ0MyA9IFQxIC0gVDY7Cj4gKyAgICAgICAg ICAgICAgICBUNzEgPSBUNjkgKyBUNzA7Cj4gKyAgICAgICAgICAgIH0KPiArICAgICAgICAgICAg ewo+ICsgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMzU7Cj4gKyAgICAgICAgICAgICAgICBN ZW93X0Zsb2F0IFQ1NDsKPiArICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDQwOwo+ICsgICAg ICAgICAgICAgICAgTWVvd19GbG9hdCBUNTU7Cj4gKyAgICAgICAgICAgICAgICB7Cj4gKyAgICAg ICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMzI7Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVv d19GbG9hdCBUMzQ7Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMzE7Cj4gKyAg ICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMzM7Cj4gKyAgICAgICAgICAgICAgICAgICAg VDMyID0gb3V0W2NvdW50ICogN10ucjsKPiArICAgICAgICAgICAgICAgICAgICBUMzQgPSBvdXRb Y291bnQgKiA3XS5qOwo+ICsgICAgICAgICAgICAgICAgICAgIFQzMSA9IFdbMTJdOwo+ICsgICAg ICAgICAgICAgICAgICAgIFQzMyA9IFdbMTNdOwo+ICsgICAgICAgICAgICAgICAgICAgIFQzNSA9 IChUMzEgKiBUMzIpIC0gKFQzMyAqIFQzNCk7Cj4gKyAgICAgICAgICAgICAgICAgICAgVDU0ID0g KFQzMyAqIFQzMikgKyAoVDMxICogVDM0KTsKPiArICAgICAgICAgICAgICAgIH0KPiArICAgICAg ICAgICAgICAgIHsKPiArICAgICAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQzNzsKPiArICAg ICAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQzOTsKPiArICAgICAgICAgICAgICAgICAgICBN ZW93X0Zsb2F0IFQzNjsKPiArICAgICAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQzODsKPiAr ICAgICAgICAgICAgICAgICAgICBUMzcgPSBvdXRbY291bnQgKiAzXS5yOwo+ICsgICAgICAgICAg ICAgICAgICAgIFQzOSA9IG91dFtjb3VudCAqIDNdLmo7Cj4gKyAgICAgICAgICAgICAgICAgICAg VDM2ID0gV1s0XTsKPiArICAgICAgICAgICAgICAgICAgICBUMzggPSBXWzVdOwo+ICsgICAgICAg ICAgICAgICAgICAgIFQ0MCA9IChUMzYgKiBUMzcpIC0gKFQzOCAqIFQzOSk7Cj4gKyAgICAgICAg ICAgICAgICAgICAgVDU1ID0gKFQzOCAqIFQzNykgKyAoVDM2ICogVDM5KTsKPiArICAgICAgICAg ICAgICAgIH0KPiArICAgICAgICAgICAgICAgIFQ0MSA9IFQzNSArIFQ0MDsKPiArICAgICAgICAg ICAgICAgIFQ2NCA9IFQ1NCArIFQ1NTsKPiArICAgICAgICAgICAgICAgIFQ1MyA9IFQzNSAtIFQ0 MDsKPiArICAgICAgICAgICAgICAgIFQ1NiA9IFQ1NCAtIFQ1NTsKPiArICAgICAgICAgICAgfQo+ ICsgICAgICAgICAgICB7Cj4gKyAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQxMjsKPiArICAg ICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDQ0Owo+ICsgICAgICAgICAgICAgICAgTWVvd19GbG9h dCBUMTc7Cj4gKyAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQ0NTsKPiArICAgICAgICAgICAg ICAgIHsKPiArICAgICAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQ5Owo+ICsgICAgICAgICAg ICAgICAgICAgIE1lb3dfRmxvYXQgVDExOwo+ICsgICAgICAgICAgICAgICAgICAgIE1lb3dfRmxv YXQgVDg7Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMTA7Cj4gKyAgICAgICAg ICAgICAgICAgICAgVDkgPSBvdXRbY291bnQgKiAyXS5yOwo+ICsgICAgICAgICAgICAgICAgICAg IFQxMSA9IG91dFtjb3VudCAqIDJdLmo7Cj4gKyAgICAgICAgICAgICAgICAgICAgVDggPSBXWzJd Owo+ICsgICAgICAgICAgICAgICAgICAgIFQxMCA9IFdbM107Cj4gKyAgICAgICAgICAgICAgICAg ICAgVDEyID0gKFQ4ICogVDkpIC0gKFQxMCAqIFQxMSk7Cj4gKyAgICAgICAgICAgICAgICAgICAg VDQ0ID0gKFQxMCAqIFQ5KSArIChUOCAqIFQxMSk7Cj4gKyAgICAgICAgICAgICAgICB9Cj4gKyAg ICAgICAgICAgICAgICB7Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMTQ7Cj4g KyAgICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMTY7Cj4gKyAgICAgICAgICAgICAgICAg ICAgTWVvd19GbG9hdCBUMTM7Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUMTU7 Cj4gKyAgICAgICAgICAgICAgICAgICAgVDE0ID0gb3V0W2NvdW50ICogNl0ucjsKPiArICAgICAg ICAgICAgICAgICAgICBUMTYgPSBvdXRbY291bnQgKiA2XS5qOwo+ICsgICAgICAgICAgICAgICAg ICAgIFQxMyA9IFdbMTBdOwo+ICsgICAgICAgICAgICAgICAgICAgIFQxNSA9IFdbMTFdOwo+ICsg ICAgICAgICAgICAgICAgICAgIFQxNyA9IChUMTMgKiBUMTQpIC0gKFQxNSAqIFQxNik7Cj4gKyAg ICAgICAgICAgICAgICAgICAgVDQ1ID0gKFQxNSAqIFQxNCkgKyAoVDEzICogVDE2KTsKPiArICAg ICAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgICAgIFQxOCA9IFQxMiArIFQxNzsKPiArICAg ICAgICAgICAgICAgIFQ3NiA9IFQxMiAtIFQxNzsKPiArICAgICAgICAgICAgICAgIFQ0NiA9IFQ0 NCAtIFQ0NTsKPiArICAgICAgICAgICAgICAgIFQ2OCA9IFQ0NCArIFQ0NTsKPiArICAgICAgICAg ICAgfQo+ICsgICAgICAgICAgICB7Cj4gKyAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQyNDsK PiArICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDQ5Owo+ICsgICAgICAgICAgICAgICAgTWVv d19GbG9hdCBUMjk7Cj4gKyAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQ1MDsKPiArICAgICAg ICAgICAgICAgIHsKPiArICAgICAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQyMTsKPiArICAg ICAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQyMzsKPiArICAgICAgICAgICAgICAgICAgICBN ZW93X0Zsb2F0IFQyMDsKPiArICAgICAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQyMjsKPiAr ICAgICAgICAgICAgICAgICAgICBUMjEgPSBvdXRbY291bnQgKiAxXS5yOwo+ICsgICAgICAgICAg ICAgICAgICAgIFQyMyA9IG91dFtjb3VudCAqIDFdLmo7Cj4gKyAgICAgICAgICAgICAgICAgICAg VDIwID0gV1swXTsKPiArICAgICAgICAgICAgICAgICAgICBUMjIgPSBXWzFdOwo+ICsgICAgICAg ICAgICAgICAgICAgIFQyNCA9IChUMjAgKiBUMjEpIC0gKFQyMiAqIFQyMyk7Cj4gKyAgICAgICAg ICAgICAgICAgICAgVDQ5ID0gKFQyMiAqIFQyMSkgKyAoVDIwICogVDIzKTsKPiArICAgICAgICAg ICAgICAgIH0KPiArICAgICAgICAgICAgICAgIHsKPiArICAgICAgICAgICAgICAgICAgICBNZW93 X0Zsb2F0IFQyNjsKPiArICAgICAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQyODsKPiArICAg ICAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQyNTsKPiArICAgICAgICAgICAgICAgICAgICBN ZW93X0Zsb2F0IFQyNzsKPiArICAgICAgICAgICAgICAgICAgICBUMjYgPSBvdXRbY291bnQgKiA1 XS5yOwo+ICsgICAgICAgICAgICAgICAgICAgIFQyOCA9IG91dFtjb3VudCAqIDVdLmo7Cj4gKyAg ICAgICAgICAgICAgICAgICAgVDI1ID0gV1s4XTsKPiArICAgICAgICAgICAgICAgICAgICBUMjcg PSBXWzldOwo+ICsgICAgICAgICAgICAgICAgICAgIFQyOSA9IChUMjUgKiBUMjYpIC0gKFQyNyAq IFQyOCk7Cj4gKyAgICAgICAgICAgICAgICAgICAgVDUwID0gKFQyNyAqIFQyNikgKyAoVDI1ICog VDI4KTsKPiArICAgICAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgICAgIFQzMCA9IFQyNCAr IFQyOTsKPiArICAgICAgICAgICAgICAgIFQ2NSA9IFQ0OSArIFQ1MDsKPiArICAgICAgICAgICAg ICAgIFQ0OCA9IFQyNCAtIFQyOTsKPiArICAgICAgICAgICAgICAgIFQ1MSA9IFQ0OSAtIFQ1MDsK PiArICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICB7Cj4gKyAgICAgICAgICAgICAgICBNZW93 X0Zsb2F0IFQxOTsKPiArICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDQyOwo+ICsgICAgICAg ICAgICAgICAgTWVvd19GbG9hdCBUNzM7Cj4gKyAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQ3 NDsKPiArICAgICAgICAgICAgICAgIFQxOSA9IFQ3ICsgVDE4Owo+ICsgICAgICAgICAgICAgICAg VDQyID0gVDMwICsgVDQxOwo+ICsgICAgICAgICAgICAgICAgb3V0W2NvdW50ICogNF0uciA9IFQx OSAtIFQ0MjsKPiArICAgICAgICAgICAgICAgIG91dFswXS5yID0gVDE5ICsgVDQyOwo+ICsgICAg ICAgICAgICAgICAgewo+ICsgICAgICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDY3Owo+ICsg ICAgICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDcyOwo+ICsgICAgICAgICAgICAgICAgICAg IE1lb3dfRmxvYXQgVDYzOwo+ICsgICAgICAgICAgICAgICAgICAgIE1lb3dfRmxvYXQgVDY2Owo+ ICsgICAgICAgICAgICAgICAgICAgIFQ2NyA9IFQ2NSArIFQ2NDsKPiArICAgICAgICAgICAgICAg ICAgICBUNzIgPSBUNjggKyBUNzE7Cj4gKyAgICAgICAgICAgICAgICAgICAgb3V0WzBdLmogPSBU NjcgKyBUNzI7Cj4gKyAgICAgICAgICAgICAgICAgICAgb3V0W2NvdW50ICogNF0uaiA9IFQ3MiAt IFQ2NzsKPiArICAgICAgICAgICAgICAgICAgICBUNjMgPSBUNyAtIFQxODsKPiArICAgICAgICAg ICAgICAgICAgICBUNjYgPSBUNjQgLSBUNjU7Cj4gKyAgICAgICAgICAgICAgICAgICAgb3V0W2Nv dW50ICogNl0uciA9IFQ2MyAtIFQ2NjsKPiArICAgICAgICAgICAgICAgICAgICBvdXRbY291bnQg KiAyXS5yID0gVDYzICsgVDY2Owo+ICsgICAgICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICAg ICAgVDczID0gVDMwIC0gVDQxOwo+ICsgICAgICAgICAgICAgICAgVDc0ID0gVDcxIC0gVDY4Owo+ ICsgICAgICAgICAgICAgICAgb3V0W2NvdW50ICogMl0uaiA9IFQ3MyArIFQ3NDsKPiArICAgICAg ICAgICAgICAgIG91dFtjb3VudCAqIDZdLmogPSBUNzQgLSBUNzM7Cj4gKyAgICAgICAgICAgICAg ICB7Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUNTk7Cj4gKyAgICAgICAgICAg ICAgICAgICAgTWVvd19GbG9hdCBUNzg7Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVvd19GbG9h dCBUNjI7Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVvd19GbG9hdCBUNzU7Cj4gKyAgICAgICAg ICAgICAgICAgICAgTWVvd19GbG9hdCBUNjA7Cj4gKyAgICAgICAgICAgICAgICAgICAgTWVvd19G bG9hdCBUNjE7Cj4gKyAgICAgICAgICAgICAgICAgICAgVDU5ID0gVDQzICsgVDQ2Owo+ICsgICAg ICAgICAgICAgICAgICAgIFQ3OCA9IFQ3NiArIFQ3NzsKPiArICAgICAgICAgICAgICAgICAgICBU NjAgPSBUNTYgLSBUNTM7Cj4gKyAgICAgICAgICAgICAgICAgICAgVDYxID0gVDQ4ICsgVDUxOwo+ ICsgICAgICAgICAgICAgICAgICAgIFQ2MiA9IE1FT1dfMV9ESVZfU1FSXzIgKiAoVDYwIC0gVDYx KTsKPiArICAgICAgICAgICAgICAgICAgICBUNzUgPSBNRU9XXzFfRElWX1NRUl8yICogKFQ2MSAr IFQ2MCk7Cj4gKyAgICAgICAgICAgICAgICAgICAgb3V0W2NvdW50ICogN10uciA9IFQ1OSAtIFQ2 MjsKPiArICAgICAgICAgICAgICAgICAgICBvdXRbY291bnQgKiA1XS5qID0gVDc4IC0gVDc1Owo+ ICsgICAgICAgICAgICAgICAgICAgIG91dFtjb3VudCAqIDNdLnIgPSBUNTkgKyBUNjI7Cj4gKyAg ICAgICAgICAgICAgICAgICAgb3V0W2NvdW50ICogMV0uaiA9IFQ3NSArIFQ3ODsKPiArICAgICAg ICAgICAgICAgIH0KPiArICAgICAgICAgICAgICAgIHsKPiArICAgICAgICAgICAgICAgICAgICBN ZW93X0Zsb2F0IFQ0NzsKPiArICAgICAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQ4MDsKPiAr ICAgICAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQ1ODsKPiArICAgICAgICAgICAgICAgICAg ICBNZW93X0Zsb2F0IFQ3OTsKPiArICAgICAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQ1MjsK PiArICAgICAgICAgICAgICAgICAgICBNZW93X0Zsb2F0IFQ1NzsKPiArICAgICAgICAgICAgICAg ICAgICBUNDcgPSBUNDMgLSBUNDY7Cj4gKyAgICAgICAgICAgICAgICAgICAgVDgwID0gVDc3IC0g VDc2Owo+ICsgICAgICAgICAgICAgICAgICAgIFQ1MiA9IFQ0OCAtIFQ1MTsKPiArICAgICAgICAg ICAgICAgICAgICBUNTcgPSBUNTMgKyBUNTY7Cj4gKyAgICAgICAgICAgICAgICAgICAgVDU4ID0g TUVPV18xX0RJVl9TUVJfMiAqIChUNTIgKyBUNTcpOwo+ICsgICAgICAgICAgICAgICAgICAgIFQ3 OSA9IE1FT1dfMV9ESVZfU1FSXzIgKiAoVDUyIC0gVDU3KTsKPiArICAgICAgICAgICAgICAgICAg ICBvdXRbY291bnQgKiA1XS5yID0gVDQ3IC0gVDU4Owo+ICsgICAgICAgICAgICAgICAgICAgIG91 dFtjb3VudCAqIDddLmogPSBUODAgLSBUNzk7Cj4gKyAgICAgICAgICAgICAgICAgICAgb3V0W2Nv dW50ICogMV0uciA9IFQ0NyArIFQ1ODsKPiArICAgICAgICAgICAgICAgICAgICBvdXRbY291bnQg KiAzXS5qID0gVDc5ICsgVDgwOwo+ICsgICAgICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICB9 Cj4gKyAgICAgICAgfQo+ICsgICAgfQo+ICt9Cj4gKwo+ICsvLyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQo+ICsKPiArLy8gUGFyYXBocmFzZWQgZnJvbSBraXNzLWZmdAo+ICt2b2lkIG1lb3dfcmVjdXJz aXZlX2ZmdF9taXhlZF9tZW93X3JhZGl4X2RpdAo+ICsoCj4gKyAgICAgIGNvbnN0IE1lb3dfRkZU X1dvcmtzZXQqIGZmdAo+ICsgICAgLCB1bnNpZ25lZCAgICAgICAgICAgICAgICBzdGFnZQo+ICsg ICAgLCBDb21wbGV4KiBpbgo+ICsgICAgLCBNZW93X0ZGVF9Db21wbGV4KiAgICAgICBvdXQKPiAr ICAgICwgdW5zaWduZWQgICAgICAgICAgICAgICAgd19tdWwKPiArKQo+ICt7Cj4gKyAgICBjb25z dCB1bnNpZ25lZCByYWRpeCA9IGZmdC0+c3RhZ2VzLnJhZGl4W3N0YWdlXTsKPiArICAgIGNvbnN0 IHVuc2lnbmVkIGNvdW50ID0gZmZ0LT5zdGFnZXMucmVtYWluZGVyW3N0YWdlXTsKPiArCj4gKyAg ICBDb21wbGV4KiB3ICAgICAgICAgICAgICA9IGZmdC0+d247Cj4gKyAgICBjb25zdCB1bnNpZ25l ZCB3X29mZnNldCA9IGZmdC0+c3RhZ2VzLm9mZnNldHNbc3RhZ2VdOwo+ICsgICAgQ29tcGxleCog d19zZXF1ZW50aWFsICAgPSAmZmZ0LT53bl9vcmRlcmVkW3dfb2Zmc2V0XTsKPiArCj4gKyAgICBp ZiAoY291bnQgPT0gMSkKPiArICAgIHsKPiArICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp IDwgcmFkaXg7IGkrKykKPiArICAgICAgICB7Cj4gKyAgICAgICAgICAgIG91dFtpXSA9IGluW2kg KiB3X211bF07Cj4gKyAgICAgICAgfQo+ICsgICAgfQo+ICsgICAgZWxzZQo+ICsgICAgewo+ICsg ICAgICAgIGNvbnN0IHVuc2lnbmVkIG5ld193X211bHRpcGxpZXIgPSB3X211bCAqIHJhZGl4Owo+ ICsKPiArICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmFkaXg7ICsraSkKPiArICAg ICAgICB7Cj4gKyAgICAgICAgICAgIG1lb3dfcmVjdXJzaXZlX2ZmdF9taXhlZF9tZW93X3JhZGl4 X2RpdAo+ICsgICAgICAgICAgICAoCj4gKyAgICAgICAgICAgICAgICAgIGZmdAo+ICsgICAgICAg ICAgICAgICAgLCBzdGFnZSArIDEKPiArICAgICAgICAgICAgICAgICwgJmluW3dfbXVsICogaV0K PiArICAgICAgICAgICAgICAgICwgJm91dFtjb3VudCAqIGldCj4gKyAgICAgICAgICAgICAgICAs IG5ld193X211bHRpcGxpZXIKPiArICAgICAgICAgICAgKTsKPiArICAgICAgICB9Cj4gKyAgICB9 Cj4gKwo+ICsgICAgc3dpdGNoIChyYWRpeCkKPiArICAgIHsKPiArICAgICAgICBjYXNlICAyOiBt ZW93X3JhZGl4XzJfZGl0KHdfc2VxdWVudGlhbCwgb3V0LCBjb3VudCk7IGJyZWFrOwo+ICsgICAg ICAgIGNhc2UgIDM6IG1lb3dfcmFkaXhfM19kaXQod19zZXF1ZW50aWFsLCBvdXQsIGNvdW50KTsg YnJlYWs7Cj4gKyAgICAgICAgY2FzZSAgNDogbWVvd19yYWRpeF80X2RpdCh3X3NlcXVlbnRpYWws IG91dCwgY291bnQpOyBicmVhazsKPiArICAgICAgICBjYXNlICA1OiBtZW93X3JhZGl4XzVfZGl0 KHdfc2VxdWVudGlhbCwgb3V0LCBjb3VudCk7IGJyZWFrOwo+ICsgICAgICAgIGNhc2UgIDg6IG1l b3dfcmFkaXhfOF9kaXQod19zZXF1ZW50aWFsLCBvdXQsIGNvdW50KTsgYnJlYWs7Cj4gKwo+ICsg ICAgICAgIGRlZmF1bHQ6IG1lb3dfZGZ0X25fZGl0KHcsIG91dCwgY291bnQsIHdfbXVsLCByYWRp eCwgZmZ0LT5OLCAwKTsgYnJlYWs7Cj4gKyAgICB9Cj4gK30KPiArCj4gK3ZvaWQgbWVvd19yZWN1 cnNpdmVfZmZ0X21peGVkX21lb3dfcmFkaXhfZGl0X2kKPiArKAo+ICsgICAgICBjb25zdCBNZW93 X0ZGVF9Xb3Jrc2V0KiBmZnQKPiArICAgICwgdW5zaWduZWQgICAgICAgICAgICAgICAgc3RhZ2UK PiArICAgICwgQ29tcGxleCogaW4KPiArICAgICwgTWVvd19GRlRfQ29tcGxleCogICAgICAgb3V0 Cj4gKyAgICAsIHVuc2lnbmVkICAgICAgICAgICAgICAgIHdfbXVsCj4gKykKPiArewo+ICsgICAg Y29uc3QgdW5zaWduZWQgcmFkaXggPSBmZnQtPnN0YWdlcy5yYWRpeFtzdGFnZV07Cj4gKyAgICBj b25zdCB1bnNpZ25lZCBjb3VudCA9IGZmdC0+c3RhZ2VzLnJlbWFpbmRlcltzdGFnZV07Cj4gKwo+ ICsgICAgQ29tcGxleCogdyAgICAgICAgICAgICAgPSBmZnQtPnduOwo+ICsgICAgY29uc3QgdW5z aWduZWQgd19vZmZzZXQgPSBmZnQtPnN0YWdlcy5vZmZzZXRzW3N0YWdlXTsKPiArICAgIENvbXBs ZXgqIHdfc2VxdWVudGlhbCAgID0gJmZmdC0+d25fb3JkZXJlZFt3X29mZnNldF07Cj4gKwo+ICsg ICAgaWYgKGNvdW50ID09IDEpCj4gKyAgICB7Cj4gKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g MDsgaSA8IHJhZGl4OyBpKyspCj4gKyAgICAgICAgewo+ICsgICAgICAgICAgICBvdXRbaV0gPSBp bltpICogd19tdWxdOwo+ICsgICAgICAgIH0KPiArICAgIH0KPiArICAgIGVsc2UKPiArICAgIHsK PiArICAgICAgICBjb25zdCB1bnNpZ25lZCBuZXdfd19tdWx0aXBsaWVyID0gd19tdWwgKiByYWRp eDsKPiArCj4gKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHJhZGl4OyArK2kpCj4g KyAgICAgICAgewo+ICsgICAgICAgICAgICBtZW93X3JlY3Vyc2l2ZV9mZnRfbWl4ZWRfbWVvd19y YWRpeF9kaXRfaQo+ICsgICAgICAgICAgICAoCj4gKyAgICAgICAgICAgICAgICAgIGZmdAo+ICsg ICAgICAgICAgICAgICAgLCBzdGFnZSArIDEKPiArICAgICAgICAgICAgICAgICwgJmluW3dfbXVs ICogaV0KPiArICAgICAgICAgICAgICAgICwgJm91dFtjb3VudCAqIGldCj4gKyAgICAgICAgICAg ICAgICAsIG5ld193X211bHRpcGxpZXIKPiArICAgICAgICAgICAgKTsKPiArICAgICAgICB9Cj4g KyAgICB9Cj4gKwo+ICsgICAgc3dpdGNoIChyYWRpeCkKPiArICAgIHsKPiArICAgICAgICBjYXNl ICAyOiBtZW93X3JhZGl4XzJfZGl0X2kod19zZXF1ZW50aWFsLCBvdXQsIGNvdW50KTsgYnJlYWs7 Cj4gKyAgICAgICAgY2FzZSAgMzogbWVvd19yYWRpeF8zX2RpdF9pKHdfc2VxdWVudGlhbCwgb3V0 LCBjb3VudCk7IGJyZWFrOwo+ICsgICAgICAgIGNhc2UgIDQ6IG1lb3dfcmFkaXhfNF9kaXRfaSh3 X3NlcXVlbnRpYWwsIG91dCwgY291bnQpOyBicmVhazsKPiArICAgICAgICBjYXNlICA1OiBtZW93 X3JhZGl4XzVfZGl0X2kod19zZXF1ZW50aWFsLCBvdXQsIGNvdW50KTsgYnJlYWs7Cj4gKyAgICAg ICAgY2FzZSAgODogbWVvd19yYWRpeF84X2RpdF9pKHdfc2VxdWVudGlhbCwgb3V0LCBjb3VudCk7 IGJyZWFrOwo+ICsKPiArICAgICAgICBkZWZhdWx0OiBtZW93X2RmdF9uX2RpdCh3LCBvdXQsIGNv dW50LCB3X211bCwgcmFkaXgsIGZmdC0+TiwgMSk7IGJyZWFrOwo+ICsgICAgfQo+ICt9Cj4gKwo+ ICsvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsvLwo+ICsvLyBodHRwOi8vd3d3LmVuZ2luZWVy aW5ncHJvZHVjdGl2aXR5dG9vbHMuY29tL3N0dWZmL1QwMDAxL1BUMTAuSFRNCj4gKy8vIEkgZmlu YWxseSBmaWd1cmVkIG91dCB3aHkgdGhpcyBwYWdlIGNvbmZ1c2VkIG1lIHNvIG11Y2guIEl0IHdh c24ndAo+ICsvLyBfY29uc2lzdGVudF8gd2l0aCBmb3JtdWxhciBjaHVua3MuIFNvbWV0aW1lcyB3 aXRoIHdvdWxkIGluY2x1ZGUgaiwgb3RoZXJ0aW1lcwo+ICsvLyBpdCB3b3VsZG4ndC4gU29tZXRp bWVzIGl0IHdvdWxkIGluY2x1ZGUgV2ssIG90aGVydGltZXMgbm90LiBVZ2guIE5vIHdvbmRlcgo+ ICsvLyBteSBtYXRocyB3YXMgd3JvbmcgYnkgdGhlIHdyb25nIHR3aWRkbGUgb3IgaW5jb3JyZWN0 IHNpZ24uCj4gKy8vCj4gKy8vIFNvIHRoZSBtYWdpYyBmb3J1bWxhciBpczoKPiArLy8KPiArLy8g WigpICAgPT0gdHdvLWZvci1vbmUtZmZ0IHJlc3VsdCB3YWl0aW5nIGZvciBmaW5hbCB0aXdkZGxl Cj4gKy8vIEYoKSAgID09IHJlc3VsdCBmZnQsIHdoYXQgd2Ugd2FudAo+ICsvLyBXbigpICA9PSB0 d2lkZGxlIGZhY3RvciBmb3IgTgo+ICsvLyBXbjIoKSA9PSB0d2lkZGxlIGZhY3RvciBmb3IgTi8y Cj4gKy8vCj4gKy8vIE5vdGUgZm9yIGZmdCAgV24oKSA9PSBlXigtaioyKnBpKmsvTikKPiArLy8g Tm90ZSBmb3IgaWZmdCBXbigpID09IGVeKCBqKjIqcGkqay9OKSAgLy8gPC0tLSBOT1RJQ0UgTUlT U0lORyAnLSchCj4gKwo+ICsvLyBGb3IgRkZUCj4gKy8vIGsgPSAwCj4gKwo+ICsvLyBGKDApICAg PSBaKDApLnJlYWwgKyBaKDApLmltYWcKPiArLy8gRihOLzIpID0gWigwKS5yZWFsIC0gWigwKS5p bWFnCj4gKwo+ICsvLyBrID4gMAo+ICsvLyBGZXZlbl9hKGspID0gWihrKSArIFooTi8yIC0gaykq Cj4gKy8vIEZvZGRfYShrKSAgPSBaKGspIC0gWihOLzIgLSBrKSoKPiArLy8KPiArLy8gRmV2ZW4g PSBGZXZlbl9hKGspCj4gKy8vIEZvZGQgID0gLWogKiBGb2RkX2EoaykKPiArLy8KPiArLy8gRihr KSA9IDAuNSAqIChGZXZlbiArIChXbihrKSAqIEZvZGQpKQo+ICsKPiArLy8gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KPiArCj4gKy8vIEZvciBJRkZUICh0aGluayB0aGUgdHdpZGRsZSBpcyBESUYgaGVu Y2Ugbm90ICogMC41KQo+ICsvLyBrID0gMAo+ICsKPiArLy8gWigwKS5yZWFsID0gRigwKS5yZWFs ICsgRihOLzIpLnJlYWwKPiArLy8gWigwKS5pbWFnID0gRigwKS5yZWFsIC0gRihOLzIpLnJlYWwK PiArCj4gKy8vIGsgPiAwCj4gKy8vIFpldmVuX2EoaykgPSBGKGspICsgRihOLzIgLSBrKSoKPiAr Ly8gWm9kZF9hKGspICA9IEYoaykgLSBGKE4vMiAtIGspKgo+ICsvLwo+ICsvLyBGZXZlbiA9IEZl dmVuX2EoaykKPiArLy8gRm9kZCAgPSAgaiAqIEZvZGRfYShrKSAgICAvLyA8LS0tLSBOT1RJQ0Ug bWlzc2luZyAnLSchCj4gKy8vCj4gKy8vIEYoaykgPSBGZXZlbiArIChXbihrKSAqIEZvZGQpIC8v IDwtLS0tIFJlbWVtYmVyIGlmZnQgdHdpZGRsZXMhLCBubyAqIDAuNS4KPiArCj4gK2lubGluZSB2 b2lkIG1lb3dfbWl4ZXIKPiArKAo+ICsgICAgICB1bnNpZ25lZCAgICAgICAgICAgICAgICBOXzIK PiArICAgICwgQ29tcGxleCogd18ybgo+ICsgICAgLCBDb21wbGV4KiBpbgo+ICsgICAgLCBNZW93 X0ZGVF9Db21wbGV4KiAgICAgICBvdXQKPiArKQo+ICt7Cj4gKyAgICAvLyBsb29raW5nIGF0IGtp c3NfZmZ0IHRoZXkgdXNlIGRvdWJsZSBzeW1tZXRlcnksIHNvIHdlIG9ubHkgbmVlZCB0bwo+ICsg ICAgLy8gYWN0YXVsbHkgZG8gTi80IHR3aWRkbGVzLiBlbmdpbmVlcmluZ3Byb2R1Y3Rpdml0eXRv b2xzIG1lbnRpb25zIHNvbWV0aGluZwo+ICsgICAgLy8gc2ltaWxhciBhcyB3ZWxsLgo+ICsKPiAr ICAgIGNvbnN0IHVuc2lnbmVkIE5fNCA9IE5fMiAvIDJ1Owo+ICsKPiArICAgIGZvciAodW5zaWdu ZWQgayA9IDE7IGsgPD0gTl80OyBrKyspCj4gKyAgICB7Cj4gKyAgICAgICAgQ29tcGxleCB4X2sg ICAgICAgICAgID0gaW5ba107Cj4gKyAgICAgICAgQ29tcGxleCB4X25fMl9taW51c19rID0gbWVv d19jb25qdWdhdGUoaW5bTl8yIC0ga10pOwo+ICsgICAgICAgIENvbXBsZXggd2sgICAgICAgICAg ICA9IG1lb3dfY29uanVnYXRlKHdfMm5ba10pOwo+ICsKPiArICAgICAgICBDb21wbGV4IHphID0g bWVvd19hZGQoeF9rLCB4X25fMl9taW51c19rKTsKPiArICAgICAgICBDb21wbGV4IHpiID0gbWVv d19zdWIoeF9rLCB4X25fMl9taW51c19rKTsKPiArCj4gKyAgICAgICAgQ29tcGxleCB4X2V2ZW4g PSB6YTsKPiArCj4gKyAgICAgICAgQ29tcGxleCB4X29kZCA9IG1lb3dfbmVnYXRlKG1lb3dfbXVs X2J5X2ooemIpKTsKPiArCj4gKyAgICAgICAgQ29tcGxleCB3a194X29kZCAgICAgICAgICA9IG1l b3dfbXVsKHhfb2RkLCB3ayk7Cj4gKyAgICAgICAgQ29tcGxleCB4X2tfc3VtICAgICAgICAgICA9 IG1lb3dfYWRkKHhfZXZlbiwgd2tfeF9vZGQpOwo+ICsgICAgICAgIENvbXBsZXggeF9uXzJfbWlu dXNfa19zdW0gPSBtZW93X2Nvbmp1Z2F0ZShtZW93X3N1Yih4X2V2ZW4sIHdrX3hfb2RkKSk7Cj4g Kwo+ICsgICAgICAgIENvbXBsZXggeF9rX291dCAgICAgICAgICAgPSBtZW93X211bGYoeF9rX3N1 bSAgICAgICAgICAsIDAuNWYpOwo+ICsgICAgICAgIENvbXBsZXggeF9uXzJfbWludXNfa19vdXQg PSBtZW93X211bGYoeF9uXzJfbWludXNfa19zdW0sIDAuNWYpOwo+ICsKPiArICAgICAgICBvdXRb a10gICAgICAgPSB4X2tfb3V0Owo+ICsgICAgICAgIG91dFtOXzIgLSBrXSA9IHhfbl8yX21pbnVz X2tfb3V0Owo+ICsgICAgfQo+ICt9Cj4gKwo+ICtpbmxpbmUgdm9pZCBtZW93X21peGVyX2kKPiAr KAo+ICsgICAgICB1bnNpZ25lZCAgICAgICAgICBOXzIKPiArICAgICwgQ29tcGxleCogICAgICAg ICAgd18ybgo+ICsgICAgLCBDb21wbGV4KiAgICAgICAgICBpbgo+ICsgICAgLCBNZW93X0ZGVF9D b21wbGV4KiBvdXQKPiArKQo+ICt7Cj4gKyAgICBjb25zdCB1bnNpZ25lZCBOXzQgPSBOXzIgLyAy dTsKPiArCj4gKyAgICBmb3IgKHVuc2lnbmVkIGsgPSAxOyBrIDw9IE5fNDsgaysrKQo+ICsgICAg ewo+ICsgICAgICAgIENvbXBsZXggeF9rICAgICAgICAgICA9IGluW2tdOwo+ICsgICAgICAgIENv bXBsZXggeF9uXzJfbWludXNfayA9IG1lb3dfY29uanVnYXRlKGluW05fMiAtIGtdKTsKPiArICAg ICAgICBDb21wbGV4IHdrICAgICAgICAgICAgPSB3XzJuW2tdOwo+ICsKPiArICAgICAgICBDb21w bGV4IHphID0gbWVvd19hZGQoeF9rLCB4X25fMl9taW51c19rKTsKPiArICAgICAgICBDb21wbGV4 IHpiID0gbWVvd19zdWIoeF9rLCB4X25fMl9taW51c19rKTsKPiArCj4gKyAgICAgICAgQ29tcGxl eCB4X2V2ZW4gPSB6YTsKPiArCj4gKyAgICAgICAgQ29tcGxleCB4X29kZCA9IG1lb3dfbXVsX2J5 X2ooemIpOwo+ICsKPiArICAgICAgICBDb21wbGV4IHdrX3hfb2RkICAgICAgICAgID0gbWVvd19t dWwoeF9vZGQsIHdrKTsKPiArICAgICAgICBDb21wbGV4IHhfa19zdW0gICAgICAgICAgID0gbWVv d19hZGQoeF9ldmVuLCB3a194X29kZCk7Cj4gKyAgICAgICAgQ29tcGxleCB4X25fMl9taW51c19r X3N1bSA9IG1lb3dfY29uanVnYXRlKG1lb3dfc3ViKHhfZXZlbiwgd2tfeF9vZGQpKTsKPiArCj4g KyAgICAgICAgQ29tcGxleCB4X2tfb3V0ICAgICAgICAgICA9IHhfa19zdW07Cj4gKyAgICAgICAg Q29tcGxleCB4X25fMl9taW51c19rX291dCA9IHhfbl8yX21pbnVzX2tfc3VtOwo+ICsKPiArICAg ICAgICBvdXRba10gICAgICAgPSB4X2tfb3V0Owo+ICsgICAgICAgIG91dFtOXzIgLSBrXSA9IHhf bl8yX21pbnVzX2tfb3V0Owo+ICsgICAgfQo+ICt9Cj4gKwo+ICsvLyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+ICsKPiArdm9pZCBtZW93X2ZmdF9yZWFsCj4gKygKPiArICAgICAgY29uc3QgTWVvd19G RlRfV29ya3NldF9SZWFsKiBmZnQKPiArICAgICwgY29uc3QgTWVvd19GbG9hdCogICAgICAgICAg ICBpbgo+ICsgICAgLCBNZW93X0ZGVF9Db21wbGV4KiAgICAgICAgICAgIG91dAo+ICspCj4gK3sK PiArICAgIC8vIE5lZWQgdHdvIHNldHMgb2YgdHdpZGRsZXMuIE9uZSBzZXQgZm9yIE4vMiwgYW5k IG9uZSBzZXQgZm9yIE4uCj4gKyAgICAvLyBIb3dldmVyIGZvciB0aGUgTiBzZXQsIHdlIG9ubHkg bmVlZCBOLzQgdHdpZGRsZXMgZHVlIHRvIHN5bW1ldHJ5ICogMi4KPiArCj4gKyAgICBjb25zdCB1 bnNpZ25lZCAgIE5fMiAgID0gZmZ0LT5oYWxmLk47Cj4gKyAgICBDb21wbGV4KiAgICAgICAgIG1h Z2ljID0gZmZ0LT53XzJuOwo+ICsgICAgTWVvd19GRlRfQ29tcGxleCB6MDsKPiArCj4gKyAgICBt ZW93X3JlY3Vyc2l2ZV9mZnRfbWl4ZWRfbWVvd19yYWRpeF9kaXQKPiArICAgICgKPiArICAgICAg ICAgICZmZnQtPmhhbGYKPiArICAgICAgICAsIDAKPiArICAgICAgICAsIChDb21wbGV4KikoaW4p Cj4gKyAgICAgICAgLCBvdXQKPiArICAgICAgICAsIDEKPiArICAgICk7Cj4gKwo+ICsgICAgejAg PSBvdXRbMF07Cj4gKwo+ICsgICAgb3V0WzBdLnIgPSB6MC5yICsgejAuajsKPiArICAgIG91dFsw XS5qID0gejAuciAtIHowLmo7Cj4gKyAgICAvLyBjb21iaW5lIDAsIGFuZCBOXzIgaW50byB0aGUg c2FtZSBudW1iZXIgaW4gb3JkZXIKPiArICAgIC8vIHRvIGtlZXAgdGhlIGFycmF5IHNpemUgTi8y Cj4gKwo+ICsgICAgbWVvd19taXhlcihOXzIsIG1hZ2ljLCBvdXQsIG91dCk7Cj4gK30KPiArCj4g K3ZvaWQgbWVvd19mZnRfcmVhbF9pCj4gKygKPiArICAgICAgY29uc3QgTWVvd19GRlRfV29ya3Nl dF9SZWFsKiBpZmZ0Cj4gKyAgICAsIGNvbnN0IE1lb3dfRkZUX0NvbXBsZXgqICAgICAgaW4KPiAr ICAgICwgTWVvd19GRlRfQ29tcGxleCogICAgICAgICAgICB0ZW1wCj4gKyAgICAsIE1lb3dfRmxv YXQqICAgICAgICAgICAgICAgICAgb3V0Cj4gKykKPiArewo+ICsgICAgY29uc3QgdW5zaWduZWQg Tl8yICAgPSBpZmZ0LT5oYWxmLk47Cj4gKyAgICBDb21wbGV4KiAgICAgICBtYWdpYyA9IGlmZnQt PndfMm47Cj4gKwo+ICsgICAgdGVtcFswXS5yID0gaW5bMF0uciArIGluWzBdLmo7Cj4gKyAgICB0 ZW1wWzBdLmogPSBpblswXS5yIC0gaW5bMF0uajsKPiArCj4gKyAgICBtZW93X21peGVyX2koTl8y LCBtYWdpYywgaW4sIHRlbXApOwo+ICsKPiArICAgIG1lb3dfcmVjdXJzaXZlX2ZmdF9taXhlZF9t ZW93X3JhZGl4X2RpdF9pCj4gKyAgICAoCj4gKyAgICAgICAgICAmaWZmdC0+aGFsZgo+ICsgICAg ICAgICwgMAo+ICsgICAgICAgICwgdGVtcAo+ICsgICAgICAgICwgKE1lb3dfRkZUX0NvbXBsZXgq KShvdXQpCj4gKyAgICAgICAgLCAxCj4gKyAgICApOwo+ICt9Cj4gKwo+ICt2b2lkIG1lb3dfZmZ0 Cj4gKygKPiArICAgICAgY29uc3QgTWVvd19GRlRfV29ya3NldCogZGF0YQo+ICsgICAgLCBjb25z dCBNZW93X0ZGVF9Db21wbGV4KiBpbgo+ICsgICAgLCBNZW93X0ZGVF9Db21wbGV4KiBvdXQKPiAr KQo+ICt7Cj4gKyAgICBtZW93X3JlY3Vyc2l2ZV9mZnRfbWl4ZWRfbWVvd19yYWRpeF9kaXQKPiAr ICAgICgKPiArICAgICAgICAgIGRhdGEKPiArICAgICAgICAsIDAKPiArICAgICAgICAsIGluCj4g KyAgICAgICAgLCBvdXQKPiArICAgICAgICAsIDEKPiArICAgICk7Cj4gK30KPiArCj4gK3ZvaWQg bWVvd19mZnRfaQo+ICsoCj4gKyAgICAgIGNvbnN0IE1lb3dfRkZUX1dvcmtzZXQqIGRhdGEKPiAr ICAgICwgY29uc3QgTWVvd19GRlRfQ29tcGxleCogaW4KPiArICAgICwgTWVvd19GRlRfQ29tcGxl eCogb3V0Cj4gKykKPiArewo+ICsgICAgbWVvd19yZWN1cnNpdmVfZmZ0X21peGVkX21lb3dfcmFk aXhfZGl0X2kKPiArICAgICgKPiArICAgICAgICAgIGRhdGEKPiArICAgICAgICAsIDAKPiArICAg ICAgICAsIGluCj4gKyAgICAgICAgLCBvdXQKPiArICAgICAgICAsIDEKPiArICAgICk7Cj4gK30K PiArCj4gKyNlbmRpZgo+ICsKPiArLy8gYmFzaCBzY3JpcHQgdXNlZCB0byBnZW5lcmF0ZSByYWRp eCBOIGNvZGVsZXRzIGZyb20gZmZ0dyB0aGF0IHN1aXQgdGhpcyBjb2RlLgo+ICsvLyBzaW5jZSBt eSB0ZXN0cyBydW4gc2xvd2VyIHdpdGggPiA4IHJhZGl4LCBJIGhhbmQgbW9kaWZpZWQgdGhlIHJh ZGl4IDgKPiArLy8gZ2VuZXJhdGVkIChmdW5jdGlvbiBzaWduYXR1cmUpIGluc3RlYWQgb2YgdXBk YXRpbmcgdGhpcyBjb2RlLgo+ICsjaWYgMAo+ICsjIS9iaW4vc2gKPiArIyA8Y29tbWFuZD4gTiBb LTF8MV0gW3xfaV0KPiArCj4gK2NhdCA8PCBFT0YKPiArCj4gK3N0YXRpYyB2b2lkIG1lb3dfcmFk aXhfJHsxfV9kaXQkezN9Cj4gKygKPiArICAgICAgbWVvd19mZnRfY29tcGxleCogb3V0Cj4gKyAg ICAsIGNvbnN0IE1lb3dfRmxvYXQqIFcKPiArICAgICwgdW5zaWduZWQgICAgICAgICAgY291bnQK PiArKQo+ICt7Cj4gK0VPRgo+ICsKPiArIy8vIEZpcnN0IGxvb3AgZG9lc24ndCB1c2UgdHdpZGRs ZXMKPiArLi9nZW5fbm90dy5uYXRpdmUgLW4gJHsxfSAtc3RhbmRhbG9uZSAtc2lnbiAkezJ9ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIHwgc2VkICAncy9FIC9NZW93X0Zs b2F0IC9nJyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK PiArICAgIHwgc2VkICcvSU5ULiovZCcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIHwgc2VkIC1yICdzL3JbaW9dXFsoLisp XS9vdXRcW1wxXF0uci9nJyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiAr ICAgIHwgc2VkIC1yICdzL2lbaW9dXFsoLispXS9vdXRcW1wxXF0uai9nJyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIHwgc2VkICcvZm9yICguKikuKi9kJyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAg IHwgc2VkIC1yICdzL1dTXCguLiwgKC4qKVwpL2NvdW50ICogXDEvZycgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKPiArICAgIHwgc2VkIC1yICdzL0ZNQVwoKC4rKSwgKC4rKSwg KC4rKVwpL1woXDEgKiBcMlwpICsgXChcM1wpL2cnICAgICAgICAgICAgICAgIFwKPiArICAgIHwg c2VkIC1yICdzL0ZNU1woKC4rKSwgKC4rKSwgKC4rKVwpL1woXDEgKiBcMlwpIC0gXChcM1wpL2cn ICAgICAgICAgICAgICAgIFwKPiArICAgIHwgc2VkIC1yICdzL0ZOTUFcKCguKyksICguKyksICgu KylcKS8tXChcMSAqIFwyXCkgKyBcKFwzXCkvZycgICAgICAgICAgICAgIFwKPiArICAgIHwgc2Vk IC1yICdzL0ZOTVNcKCguKyksICguKyksICguKylcKS9cKFwzXCkgLSBcKFwxICogXDJcKS9nJyAg ICAgICAgICAgICAgIFwKPiArICAgIHwgc2VkIC1yICdzL0RLXCgoLispLCAoLispXCk7L3N0YXRp YyBjb25zdCBNZW93X0Zsb2F0IFwxICA9IFwyOy9nJyAgICAgICAgIFwKPiArICAgIHwgaGVhZCAt biAtMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKPiArICAgIHwgdGFpbCAtbiArOQo+ICsKPiArZWNobyAiIgo+ICtlY2hvICJv dXQgPSBvdXQgKyAxOyIKPiArZWNobyAiIgo+ICsKPiArLi9nZW5fdHdpZGRsZS5uYXRpdmUgLW4g JHsxfSAtc3RhbmRhbG9uZSAtc2lnbiAkezJ9IC1kaXQgLXdpdGgtbXMgMSAgICAgICAgICAgIFwK PiArICAgIHwgc2VkICAncy9FIC9NZW93X0Zsb2F0IC9nJyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIHwgc2VkICdzL0lOVCAvdW5zaWduZWQg L2cnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiAr ICAgIHwgc2VkIC1yICdzL3JbaW9dXFsoLispXS9vdXRcW1wxXF0uci9nJyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIHwgc2VkIC1yICdzL2lbaW9dXFsoLispXS9v dXRcW1wxXF0uai9nJyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAg IHwgc2VkICdzLywgTUFLRV9WT0xBVElMRV9TVFJJREUoLiopKS8pL2cnICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKPiArICAgIHwgc2VkICdzLywgTUFLRV9WT0xBVElMRV9TVFJJ REUoLiopLy9nJyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIHwg c2VkIC1yICdzL1dTXCguLiwgKC4qKVwpL2NvdW50ICogXDEvZycgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKPiArICAgIHwgc2VkIC1yICdzL0ZNQVwoKC4rKSwgKC4rKSwgKC4r KVwpL1woXDEgKiBcMlwpICsgXChcM1wpL2cnICAgICAgICAgICAgICAgIFwKPiArICAgIHwgc2Vk IC1yICdzL0ZNU1woKC4rKSwgKC4rKSwgKC4rKVwpL1woXDEgKiBcMlwpIC0gXChcM1wpL2cnICAg ICAgICAgICAgICAgIFwKPiArICAgIHwgc2VkIC1yICdzL0ZOTUFcKCguKyksICguKyksICguKylc KS8tXChcMSAqIFwyXCkgKyBcKFwzXCkvZycgICAgICAgICAgICAgIFwKPiArICAgIHwgc2VkIC1y ICdzL0ZOTVNcKCguKyksICguKyksICguKylcKS9cKFwzXCkgLSBcKFwxICogXDJcKS9nJyAgICAg ICAgICAgICAgIFwKPiArICAgIHwgc2VkICcvREsoLiopOy9kJyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIHwgc2VkICdzL3Jp ID0gcmkgKyAxLCBpaSA9IGlpICsgMSwvb3V0ID0gb3V0ICsgMSwvZycgICAgICAgICAgICAgICAg ICAgICAgIFwKPiArICAgIHwgc2VkICdzL20gPSBtYiwgVyA9IFcgKyAobWIgKiAuKik7L20gPSAx Oy9nJyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIHwgc2VkIC1yICdzLyhm b3IgXCguKlwpKS4qL1wxXG57L2cnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKPiArICAgIHwgc2VkICdzL21lL2NvdW50L2cnICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArICAgIHwgaGVhZCAtbiAtMiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKPiArICAgIHwgdGFpbCAtbiArMTAKPiArCj4gKwo+ICtlY2hvICJ9Igo+ICsjZW5kaWYKCklu dGVsIFNlbWljb25kdWN0b3IgQUcNClJlZ2lzdGVyZWQgTm8uIDAyMC4zMC45MTMuNzg2LTcNClJl Z2lzdGVyZWQgT2ZmaWNlOiBEdWZvdXJzdHJhc3NlIDEwMSAsIDgwMDggWnVyaWNoLCBTd2l0emVy bGFuZAo=