From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by sourceware.org (Postfix) with ESMTPS id 945ED3858C53 for ; Sat, 7 May 2022 01:20:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 945ED3858C53 X-IronPort-AV: E=McAfee;i="6400,9594,10339"; a="250631120" X-IronPort-AV: E=Sophos;i="5.91,205,1647327600"; d="scan'208";a="250631120" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 May 2022 18:20:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,205,1647327600"; d="scan'208";a="622064108" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga008.fm.intel.com with ESMTP; 06 May 2022 18:20:46 -0700 Received: from fmsmsx605.amr.corp.intel.com (10.18.126.85) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Fri, 6 May 2022 18:20:46 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Fri, 6 May 2022 18:20:46 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.108) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Fri, 6 May 2022 18:20:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OSuzGMqt6aChbWwqlZr4N75WKdnO5fe8JZygdkf3Cg/z/0MI3vtQSv+SAN2XjSwZIKQT4/0J4xCcrD3zmU629qfK9PeEKzFGgGpjIoHX1lz1PlVDbVUDZp3KAN7VEuDR5gI2q+QQhMTMfQYFB0NTH8PCHw4EmWTnLhaVJKmhBiWId92u5f/A3K5cjPFLiBUdwAqaJIKfsBpCNeai8knzCkwOq7UfTOj2GQP6X7n6OMMvXNNRm6n120t3vftn6kj1J6j5wsi/pnO8+y4srt0b8xa1Qny1AT3zaqXEwHY56QqwdAzC9032lhlxdAaGXceTCU4dEEgb2OS/3GLwojY/oA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=paZhTiAfJVIYei4t24k5ei+XxPR5zojkToM04zTmbTg=; b=gXBZG0/cuwtNYg/6MPd6CT1MZb8HSW1sTF+cnh/3jkNDmhMu1tLwmVTajxAA3xYqOsQeeiqoUjpC+x2oJcikiA2f1QaTwhom9H+HJm4Z3LoyK3drXBtXWlDFcMIVmobGkJ1EsDsM0brYb/WzyAIQ9YSUplBAmg542Iwiy29B9bZp9RlQ568MJkDNgYq4QLZHF1XYKgYdUMtyRS5I2coAfVxFahsefsC5Atwazq/oAOc9GGVh+yVe7GwVnw42LAfMbG3EbZUgXcGQ/7zKloF3hf7bvjHSCWQcK8DCvKuW+hE10I7JAlgoyssAFWLn6zA1tgFcrKz2IoU/dUNgC7ss5A== 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 Received: from MN2PR11MB3678.namprd11.prod.outlook.com (2603:10b6:208:f8::11) by PH0PR11MB4935.namprd11.prod.outlook.com (2603:10b6:510:35::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Sat, 7 May 2022 01:20:44 +0000 Received: from MN2PR11MB3678.namprd11.prod.outlook.com ([fe80::8bd:9b56:630b:aec0]) by MN2PR11MB3678.namprd11.prod.outlook.com ([fe80::8bd:9b56:630b:aec0%6]) with mapi id 15.20.5206.025; Sat, 7 May 2022 01:20:43 +0000 From: "Jiang, Haochen" To: Uros Bizjak , Hongyu Wang CC: "Liu, Hongtao" , "gcc-patches@gcc.gnu.org" Subject: RE: [PATCH] Reconstruct i386 testsuite with __builtin_cpu_supports Thread-Topic: [PATCH] Reconstruct i386 testsuite with __builtin_cpu_supports Thread-Index: AQHYYSMUmd/zVdx2kk2uKrWtoCaiya0RjSOAgAAEvACAAQq6oA== Date: Sat, 7 May 2022 01:20:43 +0000 Message-ID: References: <20220506075708.84250-1-haochen.jiang@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.401.20 dlp-reaction: no-action x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8d5587e4-92e8-402a-001a-08da2fc7ce99 x-ms-traffictypediagnostic: PH0PR11MB4935:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MPYZMf6AqIuIF/hhfbl4pGk0hDfJVnnNuH/hfVkB6U2DNAG2Sd2FWqz8Y8EIKytdLDarolL45y4yHotrdPoCBzVH9BcT6U2/aEFMMr2WPrc7CSV/4M9dqeBX52DtKih88roTKfZRF/l+XZ7Rh1RHdnKbYdYRh77jIBn+O6WBojrqw72SsLJrGi4OZl4JsDHD9r8jyqLNHUAKIqhq+NMJywgAWaVTpVw0mKo/PLg2L8RH3z4ybboEudhtBOsDGnwXGYY+K45aoanF12oc64PziPoEUUMhNfYJYQl6LvZ8DOumhWIKfVqlfOknWsf19pFihOswptyrj+K6hr0hyFfLtEIMR0Y/4PAEj72R2NyDwFZoe/Kp+X+oWbR8mk45kcv+iCcXPHdPWOsShTufxxc/WlA4QhJpHhYxvhU70fS/7+2b/xTPkp7xFKKroj79+mL37RyjPU60+Wa0iaBRxDqoFd7SqQq6x5+DlHrCu89itFXxukqEzJWFN2V64pVdWwp+h5Jot9GFKR2i6zHzUDmtOqwumMyc6mXBpWpqGL66JuQLHkmTQSMT/x5USVCamqFIy994tgbVxUSebT+ZCnlt/4mUPff/kv6FYoeHxzfAO1HiR9WWoH9zWXEyVjrHCeGMReVofk0vP11QClUCKHdIHGtagbPhHYNRmDG3L44bDqysCnOaEiEmL5jqTyiRmoOvHg6EFsEFbnaPX6AqYlN4acZcpZLfWYxq1zxcJsZ8jpCS3f82CO9TpSqLyGct+G0ZLZLQTe9s8LB3XW6xLOj86epbu1rXDWUVSw+mkD1gU/g= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB3678.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(66946007)(66476007)(66446008)(86362001)(9686003)(7696005)(186003)(2906002)(8676002)(64756008)(5660300002)(76116006)(26005)(4326008)(66556008)(8936002)(83380400001)(6506007)(53546011)(30864003)(52536014)(84970400001)(71200400001)(508600001)(55016003)(33656002)(316002)(122000001)(82960400001)(110136005)(54906003)(38100700002)(38070700005)(579004)(559001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?d0RwREdxS3RhcnUyL0hId1d4SXJYV3NCZVNpYVlTQ2JyY0l2c3hTa0Y5K3VF?= =?utf-8?B?bEIzTTVLb2Y4UWtaRzJrQjhQN0gzSXVRSDJpbkNUWFRIaCtpSFdZQmZ6cHl1?= =?utf-8?B?T21iSUM5M05WNzRKSjVEMnhaVXBqSzZrTUo3NWRnT2h4dEw4ZzIvYy8wQ05F?= =?utf-8?B?REZqN2RvME56RjJZZjhRK1IzYlVFZmNRMFQ4RXJhYkg4SjFlT0VwMkkzN1o3?= =?utf-8?B?QjZYTFMwbE42WFpaYlFnODJRQkRmajBqa2RTTXZCcjFsQjlyYTUzTTdwQ3Ir?= =?utf-8?B?NzhIVmlVektLL2hWbjd5UW9jRU5DZ0tLS3VqQUJSYkJMeVBrWkQzK0hHZlUx?= =?utf-8?B?VGxwMWM3RjhjQldRRlhFWnVkZ2ZqeFVRc2wrZEVBZ0xQQzMzTFJCVHFnREM2?= =?utf-8?B?SUVRSEFyTU5NdnZjZUV4YklvR3dreHIzTjAyaFVZdWxCcXpSTnNiZis3Q3M1?= =?utf-8?B?RE9sR3p0S1dxYWNtdmtCd0tGTEQzRkNUdFJPZXZGL2F3WkhEeDJOWlN2UDB0?= =?utf-8?B?d0Q4bW1OQ01OSjArT29iQWlFVUVVN0trSm5qT2hIb0JoSjV1K3VxU1RQTmlG?= =?utf-8?B?cUNBVzVML1hROTN2czkySW9FUGQ1ZTNHUXdqK0ZmelRVcnZOVmdyRlYzVk5H?= =?utf-8?B?UFl3R1NvdVJjd21JaG1ac3lxSnk4Z1YybmVNR1YwVjVIZzdrYTM4VWpxenEv?= =?utf-8?B?OVl0NTZrNTJLMTduRDk4RXE5aTFsbld6a21pQmNkbDJES25PTVBKQzF1Rkwz?= =?utf-8?B?VmRJM2dzY1FmLzVYMk8wVSszZSsycWo4eDJhQkdpN1Z1eUNoSU40N3JKdStG?= =?utf-8?B?QmVxbDhQTVZ1STJLOU83V2xOc3cxM1d6RTRaY1dSS0UzR2dvSHBsRytmMDhN?= =?utf-8?B?c2t6eXk2RlQ0Uno3RmNrQmFvbmZETmlleTdCdEdENDNmang2dU4zNUM2NzBW?= =?utf-8?B?UGQxRFNGREg1Y25naVJnYVNIQ2I5UldXZDlyR2Vkc0ErNERqUWlrWDU5SEpW?= =?utf-8?B?Szk1dXZGS092VmRpc0JwdUJ6U0p1M2pKVWJUazhvdXlPU0hib1ltaWg1dyt6?= =?utf-8?B?OUVrSE5hbVAxWFdJbEhIUU9ROGJOc2ZuMjh1QVB5b25MbElEZ3NBK0MrdU1r?= =?utf-8?B?WGxaZ0ptTlBzSnY5ODI5bVZaTWtkSVNmd3JiT1RRbU5mcHAzRHlzbmxnYm81?= =?utf-8?B?T0YrV201NTk3YnJWems4Y2lOTitXRG44UGxSVDlDbGtDTkZMWHhsdEZrbUFM?= =?utf-8?B?MytCMUVnclZTeWRWOWZwNkRJdlFxeDVud0kwa25RY3E5dFhsODNhZmMyaFFz?= =?utf-8?B?MjQrNVRnSFZyR0xrczFxd0VJakFQQVd4dU13VW5vRFdnT05naVRVSTNwRUs4?= =?utf-8?B?aE5mTjlkb000MHdXanFUdzB0QjZzeEIyU2hSWDJBem5ObDNXRC8wY0EycVBu?= =?utf-8?B?d3BuczBsbFpKb2RjYmtiWGdneW9JYUM2eWNqakN6MmVxNFhocUlEc04wSmxN?= =?utf-8?B?Yjk4SXVNNE03QkRKWVJabHJ2Qm9NV2RsbFhFVUdHL1p2QjlJcnhoUjR3UFRY?= =?utf-8?B?SGdWdEdFbS93NHRoRFh3Wmt1L0hROEV6V05kTGpHY2FNRThsM2toWG1RY2Vm?= =?utf-8?B?elRpVG9mc0dNYmZBYW9BQnkrNGNINDlPQ1FmYm5Kai9zNFRnNmJ6Wk4xZmhG?= =?utf-8?B?ZzdJYXM2bEQ4V1FLS2ljMG1DV0hxMkZBVStHYSttU3QyKzRtTWd2dUlHNVNM?= =?utf-8?B?S0h0SGZlb1UwQ201QUtLTmZJM3F0RkZTMG9wY3Zhc3BZN05WbGNxUGJJK3d4?= =?utf-8?B?aEtRVmFPSkZLTTAvdEpCTURWU2t6MmNpWUdIeVRDTXZtUzF5cTFDK3hocFNn?= =?utf-8?B?dnNIMHRPV2pXbWJDYnhSYnVUa2EzZnQ1dGFIQ2llNFpjVTZzN3pBeHVLdzFT?= =?utf-8?B?NTBpRmhhdGl5Q3hUclFlUk5nM3hwZkptdkFaT2ZpQ1E4eGw5RVFTK3UyaWo5?= =?utf-8?B?emE1eXcrSGJTT09nVWNmbkhXUXQwQ1FaRjhISzFmaU14TnMyYWJXV21Hd3NX?= =?utf-8?B?cnZsYmZBcTc5MkhjT3h4Q0tRKzBJZFE4cCtNOHFtbGRUTVp5OHcwcHZtL20r?= =?utf-8?B?aDFvaWx6cm1ZaFJLWjNORTlRcVo2OVhvdGxSSHlBVldGN1kvL0FZYlBsQzA1?= =?utf-8?B?ZGJkK1RBUVNES1dkY2lKV1BmS2xjWWpBWXJMNVpFbjFZd05ZODY3Vk1HSWJ5?= =?utf-8?B?eGdHb2tXb3duK01NOVlUNmI3VkJ3MWJTQy81aXdiZWdDZFNVaFlxb2dYcHBx?= =?utf-8?B?bncwM1FOOSs2S2J0djRlc3NoTUc0ME5YVVlLcWVScE85TDlNVDVpdz09?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB3678.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8d5587e4-92e8-402a-001a-08da2fc7ce99 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 May 2022 01:20:43.7008 (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: PnKUJNrRwyzSoyCOA+ClMvT2uBb5R7aY/LVuzw/DUoS1TLcIZpLuZcrXeM8OA2p11G2tK/YjTDEgZxljs/TF/Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4935 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00, BODY_8BITS, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2022 01:20:55 -0000 SGkgVXJvcywNCg0KSSB1bmRlcnN0YW5kIHRoYXQgd2UgYWx3YXlzIGtlZXAgdGhlIG9sZCB0ZXN0 Y2FzZXMgdGhlcmUuIEl0IGlzIGFsd2F5cyBzYWZlIHRvIGRvIHRoYXQuDQoNCkJ1dCBJIGhhdmUg YW5vdGhlciBxdWVzdGlvbiwgaWYgd2UgYWRkIHNvbWV0aGluZyBuZXcgaW4gb25lIG9mIHRoZSBl eGlzdGluZyBmaWxlcyBpbiB0aGUgZnV0dXJlLA0Kc2hvdWxkIHdlIHVzZSBfX2J1aWx0aW5fY3B1 X3N1cHBvcnRzIHRvIGtlZXAgdGhlIGNvZGUgY2xlYXJlciBvciBzdGljayB0byBjcHVpZHM/DQoN CkkgYmVsaWV2ZSBfX2J1aWx0aW5fY3B1X3N1cHBvcnRzIHdpbGwgYmUgYSBjbGVhcmVyIHdheSBm b3IgYSBjb2RlciB0byB1bmRlcnN0YW5kIHVuZGVyIGN1cnJlbnQgY2lyY3Vtc3RhbmNlLg0KU28g aWYgd2UgdXNlIHRoYXQgaW4gZnV0dXJlIHVzZSwgd2h5IGRvbid0IHdlIGNoYW5nZSBldmVyeXRo aW5nIHRvIHRoZSBzYW1lIHdheT8NCg0KQlJzLA0KSGFvY2hlbiANCg0KLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCkZyb206IFVyb3MgQml6amFrIDx1Yml6amFrQGdtYWlsLmNvbT4gDQpTZW50 OiBGcmlkYXksIE1heSA2LCAyMDIyIDU6MTcgUE0NClRvOiBIb25neXUgV2FuZyA8d3d3aGhoeXl5 MzMzQGdtYWlsLmNvbT4NCkNjOiBKaWFuZywgSGFvY2hlbiA8aGFvY2hlbi5qaWFuZ0BpbnRlbC5j b20+OyBMaXUsIEhvbmd0YW8gPGhvbmd0YW8ubGl1QGludGVsLmNvbT47IGdjYy1wYXRjaGVzQGdj Yy5nbnUub3JnDQpTdWJqZWN0OiBSZTogW1BBVENIXSBSZWNvbnN0cnVjdCBpMzg2IHRlc3RzdWl0 ZSB3aXRoIF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMNCg0KT24gRnJpLCBNYXkgNiwgMjAyMiBhdCAx MTowMCBBTSBIb25neXUgV2FuZyA8d3d3aGhoeXl5MzMzQGdtYWlsLmNvbT4gd3JvdGU6DQo+DQo+ ID4gSSBkb24ndCB0aGluayAqX29zX3N1cHBvcnQgY2FsbHMgc2hvdWxkIGJlIHJlbW92ZWQuIElJ UkMsDQo+ID4gX19idWlsdGluX2NwdV9zdXBwb3J0cyBmdW5jdGlvbiBjaGVja3MgaWYgdGhlIGZl YXR1cmUgaXMgc3VwcG9ydGVkIGJ5DQo+ID4gQ1BVLCB3aGVyZWFzICpfb3Nfc3VwcG9ydHMgY2Fs bHMgY2hlY2sgdmlhIHhnZXRidiBpZiBPUyBzdXBwb3J0cw0KPiA+IGhhbmRsaW5nIG9mIG5ldyBy ZWdpc3RlcnMuDQo+DQo+IGF2eF9vc19zdXBwb3J0IGlzIGxpa2UNCj4NCj4gYXZ4X29zX3N1cHBv cnQgKHZvaWQpDQo+IHsNCj4gICB1bnNpZ25lZCBpbnQgZWF4LCBlZHg7DQo+ICAgdW5zaWduZWQg aW50IGVjeCA9IFhDUl9YRkVBVFVSRV9FTkFCTEVEX01BU0s7DQo+DQo+ICAgX19hc21fXyAoInhn ZXRidiIgOiAiPWEiIChlYXgpLCAiPWQiIChlZHgpIDogImMiIChlY3gpKTsNCj4NCj4gICByZXR1 cm4gKGVheCAmIChYU1RBVEVfU1NFIHwgWFNUQVRFX1lNTSkpID09IChYU1RBVEVfU1NFIHwgWFNU QVRFX1lNTSk7DQo+IH0NCj4NCj4gV2hpbGUgaW4gZ2V0X2F2YWxpYWJsZV9mZWF0dXJlcyB3ZSBo YXZlDQo+DQo+ICNkZWZpbmUgWENSX0FWWF9FTkFCTEVEX01BU0sgXA0KPiAgIChYU1RBVEVfU1NF IHwgWFNUQVRFX1lNTSkNCj4gICBpZiAoKGVjeCAmIGJpdF9PU1hTQVZFKSkNCj4gICAgIHsNCj4g ICAgICAgLyogQ2hlY2sgaWYgWE1NLCBZTU0sIE9QTUFTSywgdXBwZXIgMjU2IGJpdHMgb2YgWk1N MC1aTU0xNSBhbmQNCj4gWk1NMTYtWk1NMzEgc3RhdGVzIGFyZSBzdXBwb3J0ZWQgYnkgT1NYU0FW RS4gICovDQo+ICAgICAgIHVuc2lnbmVkIGludCB4Y3Jsb3c7DQo+ICAgICAgIHVuc2lnbmVkIGlu dCB4Y3JoaWdoOw0KPiAgICAgICBfX2FzbV9fICgiLmJ5dGUgMHgwZiwgMHgwMSwgMHhkMCIgLyog eGdldGJ2ICAqLw0KPiAgICAgICAgOiAiPWEiICh4Y3Jsb3cpLCAiPWQiICh4Y3JoaWdoKQ0KPiAg ICAgICAgOiAiYyIgKFhDUl9YRkVBVFVSRV9FTkFCTEVEX01BU0spKTsNCj4gICAgICAgaWYgKCh4 Y3Jsb3cgJiBYQ1JfQVZYX0VOQUJMRURfTUFTSykgPT0gWENSX0FWWF9FTkFCTEVEX01BU0spDQo+ IHsNCj4gICBhdnhfdXNhYmxlID0gMTsNCj4NCj4gU28gX19idWlsdGluX2NwdV9zdXBwb3J0cyBh bHJlYWR5IGluaGVyaXRzIHNhbWUgY2hlY2sNCg0KSW5kZWVkLCB0aGFua3MgZm9yIHRoZSBleHBs YW5hdGlvbi4NCg0KT1RPSCwgd2UgZG9uJ3QgY2hhbmdlIHRoZSBleGlzdGluZyB0ZXN0cyAocGVy aGFwcyBvbmx5IGRnLSBkaXJlY3RpdmVzDQp3aGVuIGluZnJhc3RydWN0dXJlIGltcHJvdmVzKSwg c28gSSB3b3VsZCBsZWF2ZSB0aGUgZXhpc3RpbmcgdGVzdGNhc2VzDQphcyB0aGV5IGFyZS4gSW4g ZnV0dXJlLCBuZXcgaGVscGVyIGZ1bmN0aW9ucyBzaG91bGQgYmUgaW1wbGVtZW50ZWQNCndpdGgg X19idWlsdGluX2NwdV9zdXBwb3J0cywgYnV0IGxldCdzIGxlYXZlIGV4aXN0aW5nIG9uZXMgYXMg dGhleQ0KYXJlLg0KDQpVcm9zLg0KDQo+IFVyb3MgQml6amFrIHZpYSBHY2MtcGF0Y2hlcyA8Z2Nj LXBhdGNoZXNAZ2NjLmdudS5vcmc+IOS6jjIwMjLlubQ15pyINuaXpeWRqOS6lCAxNjoyN+WGmemB k++8mg0KPiA+DQo+ID4gT24gRnJpLCBNYXkgNiwgMjAyMiBhdCA5OjU3IEFNIEhhb2NoZW4gSmlh bmcgPGhhb2NoZW4uamlhbmdAaW50ZWwuY29tPiB3cm90ZToNCj4gPiA+DQo+ID4gPiBIaSBhbGws DQo+ID4gPg0KPiA+ID4gVGhlcmUgYXJlIHNvbWUgY2hlY2sgZmlsZXMgaW4gaTM4NiB0ZXN0c3Vp dGUgYXJlIHdyaXR0ZW4gYmVmb3JlIHRoZSBmdW5jdGlvbiBfX2J1aWx0aW5fY3B1X3N1cHBvcnRz IGlzIGludHJvZHVjZWQuIEFsbCBvZiB0aGVtIGFyZSB1c2luZyBfX2dldF9jcHVpZF9jb3VudC4g VGhpcyBwYXRjaCBhaW1zIHRvIHJlY29uc3RydWN0IHRoZSBpMzg2IHRlc3RzdWl0ZSB3aXRoIF9f YnVpbHRpbl9jcHVfc3VwcG9ydHMgc28gdGhhdCB3ZSBjYW4gaGF2ZSBhIG11Y2ggY2xlYXJlciBj b2RlLg0KPiA+ID4NCj4gPiA+IFJlZ3Rlc3RlZCBvbiB4ODZfNjQtcGMtbGludXgtZ251LiBPayBm b3IgdHJ1bms/DQo+ID4NCj4gPiBJIGRvbid0IHRoaW5rICpfb3Nfc3VwcG9ydCBjYWxscyBzaG91 bGQgYmUgcmVtb3ZlZC4gSUlSQywNCj4gPiBfX2J1aWx0aW5fY3B1X3N1cHBvcnRzIGZ1bmN0aW9u IGNoZWNrcyBpZiB0aGUgZmVhdHVyZSBpcyBzdXBwb3J0ZWQgYnkNCj4gPiBDUFUsIHdoZXJlYXMg Kl9vc19zdXBwb3J0cyBjYWxscyBjaGVjayB2aWEgeGdldGJ2IGlmIE9TIHN1cHBvcnRzDQo+ID4g aGFuZGxpbmcgb2YgbmV3IHJlZ2lzdGVycy4NCj4gPg0KPiA+IFVyb3MuDQo+ID4NCj4gPiA+DQo+ ID4gPiBBbHNvIHdoZW4gd3JpdHRpbmcgdGhpcyBwYXRjaCwgSSBhbHNvIGZpbmQgc29tZSBmaWxl cyBpbiB0ZXN0c3VpdGUgdGhhdCBtaWdodCBiZSB1c2VsZXNzIGN1cnJlbnRseS4gRm9yIGV4YW1w bGUsIGluIHRoZSBmaWxlIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZS1vcy1zdXBw b3J0LmgsIGl0IGFsd2F5cyByZXR1cm4gMS4gQW5kIHRoZXJlIGFyZSBhbHNvIHNvbWUgZmlsZXMg d2lsbCBubyBsb25nZXIgYmUgaW5jbHVkZWQgYXQgYWxsIHdpdGggdGhpcyBwYXRjaC4gU2hvdWxk IHdlIHJlbW92ZSB0aG9zZSBmaWxlcyB3aGVuIHdlIGhhdmUgdGltZT8NCj4gPiA+DQo+ID4gPiBC UnMsDQo+ID4gPiBIYW9jaGVuDQo+ID4gPg0KPiA+ID4gZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6 DQo+ID4gPg0KPiA+ID4gICAgICAgICAqIGdjYy50YXJnZXQvaTM4Ni9hZHgtY2hlY2suaDogQ2hh bmdlIGJpdCBjaGVjayB0bw0KPiA+ID4gICAgICAgICBfX2J1aWx0aW5fY3B1X3N1cHBvcnRzLg0K PiA+ID4gICAgICAgICAqIGdjYy50YXJnZXQvaTM4Ni9hZXMtYXZ4LWNoZWNrLmg6IERpdHRvLg0K PiA+ID4gICAgICAgICAqIGdjYy50YXJnZXQvaTM4Ni9hZXMtY2hlY2suaDogRGl0dG8uDQo+ID4g PiAgICAgICAgICogZ2NjLnRhcmdldC9pMzg2L2F2eC1jaGVjay5oOiBEaXR0by4NCj4gPiA+ICAg ICAgICAgKiBnY2MudGFyZ2V0L2kzODYvYXZ4Mi1jaGVjay5oOiBEaXR0by4NCj4gPiA+ICAgICAg ICAgKiBnY2MudGFyZ2V0L2kzODYvYXZ4NTEyLWNoZWNrLmg6IERpdHRvLg0KPiA+ID4gICAgICAg ICAqIGdjYy50YXJnZXQvaTM4Ni9ibWktY2hlY2suaDogRGl0dG8uDQo+ID4gPiAgICAgICAgICog Z2NjLnRhcmdldC9pMzg2L2JtaTItY2hlY2suaDogRGl0dG8uDQo+ID4gPiAgICAgICAgICogZ2Nj LnRhcmdldC9pMzg2L2YxNmMtY2hlY2suaDogRGl0dG8uDQo+ID4gPiAgICAgICAgICogZ2NjLnRh cmdldC9pMzg2L2ZtYS1jaGVjay5oOiBEaXR0by4NCj4gPiA+ICAgICAgICAgKiBnY2MudGFyZ2V0 L2kzODYvZm1hNC1jaGVjay5oOiBEaXR0by4NCj4gPiA+ICAgICAgICAgKiBnY2MudGFyZ2V0L2kz ODYvbHpjbnQtY2hlY2suaDogRGl0dG8uDQo+ID4gPiAgICAgICAgICogZ2NjLnRhcmdldC9pMzg2 L21teC0zZG5vdy1jaGVjay5oOiBEaXR0by4NCj4gPiA+ICAgICAgICAgKiBnY2MudGFyZ2V0L2kz ODYvbW14LWNoZWNrLmg6IERpdHRvLg0KPiA+ID4gICAgICAgICAqIGdjYy50YXJnZXQvaTM4Ni9w Y2xtdWwtYXZ4LWNoZWNrLmg6IERpdHRvLg0KPiA+ID4gICAgICAgICAqIGdjYy50YXJnZXQvaTM4 Ni9wY2xtdWwtY2hlY2suaDogRGl0dG8uDQo+ID4gPiAgICAgICAgICogZ2NjLnRhcmdldC9pMzg2 L3J0bS1jaGVjay5oOiBEaXR0by4NCj4gPiA+ICAgICAgICAgKiBnY2MudGFyZ2V0L2kzODYvc2hh LWNoZWNrLmg6IERpdHRvLg0KPiA+ID4gICAgICAgICAqIGdjYy50YXJnZXQvaTM4Ni9zc2UtY2hl Y2suaDogRGl0dG8uDQo+ID4gPiAgICAgICAgICogZ2NjLnRhcmdldC9pMzg2L3NzZTItY2hlY2su aDogRGl0dG8uDQo+ID4gPiAgICAgICAgICogZ2NjLnRhcmdldC9pMzg2L3NzZTMtY2hlY2suaDog RGl0dG8uDQo+ID4gPiAgICAgICAgICogZ2NjLnRhcmdldC9pMzg2L3NzZTRfMS1jaGVjay5oOiBE aXR0by4NCj4gPiA+ICAgICAgICAgKiBnY2MudGFyZ2V0L2kzODYvc3NlNF8yLWNoZWNrLmg6IERp dHRvLg0KPiA+ID4gICAgICAgICAqIGdjYy50YXJnZXQvaTM4Ni9zc2U0YS1jaGVjay5oOiBEaXR0 by4NCj4gPiA+ICAgICAgICAgKiBnY2MudGFyZ2V0L2kzODYvc3NzZTMtY2hlY2suaDogRGl0dG8u DQo+ID4gPiAgICAgICAgICogZ2NjLnRhcmdldC9pMzg2L3hvcC1jaGVjay5oOiBEaXR0by4NCj4g PiA+IC0tLQ0KPiA+ID4gIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2FkeC1jaGVjay5o ICAgICB8IDEwICstLS0NCj4gPiA+ICBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hZXMt YXZ4LWNoZWNrLmggfCAxNCArLS0tLQ0KPiA+ID4gIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9p Mzg2L2Flcy1jaGVjay5oICAgICB8IDExICstLS0NCj4gPiA+ICBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvaTM4Ni9hdngtY2hlY2suaCAgICAgfCAxMiArLS0tDQo+ID4gPiAgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2kzODYvYXZ4Mi1jaGVjay5oICAgIHwgMjAgKy0tLS0tLQ0KPiA+ID4gIGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMi1jaGVjay5oICB8IDU5ICsrKysrKyst LS0tLS0tLS0tLS0NCj4gPiA+ICBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9ibWktY2hl Y2suaCAgICAgfCAxMSArLS0tDQo+ID4gPiAgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYv Ym1pMi1jaGVjay5oICAgIHwgMTAgKy0tLQ0KPiA+ID4gIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9pMzg2L2YxNmMtY2hlY2suaCAgICB8IDEwICstLS0NCj4gPiA+ICBnY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni9mbWEtY2hlY2suaCAgICAgfCAxMSArLS0tDQo+ID4gPiAgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2kzODYvZm1hNC1jaGVjay5oICAgIHwgMTEgKy0tLQ0KPiA+ID4gIGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2x6Y250LWNoZWNrLmggICB8IDExICstLS0NCj4g PiA+ICAuLi4vZ2NjLnRhcmdldC9pMzg2L21teC0zZG5vdy1jaGVjay5oICAgICAgICAgfCAxMSAr LS0tDQo+ID4gPiAgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvbW14LWNoZWNrLmggICAg IHwgMTEgKy0tLQ0KPiA+ID4gIC4uLi9nY2MudGFyZ2V0L2kzODYvcGNsbXVsLWF2eC1jaGVjay5o ICAgICAgICB8IDE0ICstLS0tDQo+ID4gPiAgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYv cGNsbXVsLWNoZWNrLmggIHwgMTEgKy0tLQ0KPiA+ID4gIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9pMzg2L3J0bS1jaGVjay5oICAgICB8IDEwICstLS0NCj4gPiA+ICBnY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni9zaGEtY2hlY2suaCAgICAgfCAxMCArLS0tDQo+ID4gPiAgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLWNoZWNrLmggICAgIHwgMTEgKy0tLQ0KPiA+ID4gIGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZTItY2hlY2suaCAgICB8IDExICstLS0NCj4g PiA+ICBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2UzLWNoZWNrLmggICAgfCAxMSAr LS0tDQo+ID4gPiAgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlNF8xLWNoZWNrLmgg IHwgMTEgKy0tLQ0KPiA+ID4gIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZTRfMi1j aGVjay5oICB8IDExICstLS0NCj4gPiA+ICBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9z c2U0YS1jaGVjay5oICAgfCAxMSArLS0tDQo+ID4gPiAgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2kzODYvc3NzZTMtY2hlY2suaCAgIHwgMTEgKy0tLQ0KPiA+ID4gIGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9pMzg2L3hvcC1jaGVjay5oICAgICB8IDExICstLS0NCj4gPiA+ICAyNiBmaWxlcyBj aGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspLCAyNzIgZGVsZXRpb25zKC0pDQo+ID4gPg0KPiA+ID4g ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2FkeC1jaGVjay5oIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYWR4LWNoZWNrLmgNCj4gPiA+IGluZGV4IGNm ZWQxYTM4NDgzLi5iZWQ1ZGNjYTM4NSAxMDA2NDQNCj4gPiA+IC0tLSBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9pMzg2L2FkeC1jaGVjay5oDQo+ID4gPiArKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni9hZHgtY2hlY2suaA0KPiA+ID4gQEAgLTEsNSArMSw0IEBADQo+ID4gPiAg I2luY2x1ZGUgPHN0ZGxpYi5oPg0KPiA+ID4gLSNpbmNsdWRlICJjcHVpZC5oIg0KPiA+ID4NCj4g PiA+ICBzdGF0aWMgdm9pZCBhZHhfdGVzdCAodm9pZCk7DQo+ID4gPg0KPiA+ID4gQEAgLTExLDEz ICsxMCw4IEBAIHN0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18gKChub2lubGluZSkpIGRvX3Rlc3Qg KHZvaWQpDQo+ID4gPiAgaW50DQo+ID4gPiAgbWFpbiAoKQ0KPiA+ID4gIHsNCj4gPiA+IC0gIHVu c2lnbmVkIGludCBlYXgsIGVieCwgZWN4LCBlZHg7DQo+ID4gPiAtDQo+ID4gPiAtICBpZiAoIV9f Z2V0X2NwdWlkX2NvdW50ICg3LCAwLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KSkNCj4gPiA+IC0g ICAgcmV0dXJuIDA7DQo+ID4gPiAtDQo+ID4gPiAtICAvKiBSdW4gQURYIHRlc3Qgb25seSBpZiBo b3N0IGhhcyBBRFggc3VwcG9ydC4gICovDQo+ID4gPiAtICBpZiAoZWJ4ICYgYml0X0FEWCkNCj4g PiA+ICsgIC8qIENoZWNrIGNwdSBzdXBwb3J0IGZvciBBRFguICAqLw0KPiA+ID4gKyAgaWYgKF9f YnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJhZHgiKSkNCj4gPiA+ICAgICAgew0KPiA+ID4gICAgICAg IGRvX3Rlc3QgKCk7DQo+ID4gPiAgI2lmZGVmIERFQlVHDQo+ID4gPiBkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYWVzLWF2eC1jaGVjay5oIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2kzODYvYWVzLWF2eC1jaGVjay5oDQo+ID4gPiBpbmRleCBmMmE0ZWFkNDAx NC4uNzRiZjU5N2VhZDQgMTAwNjQ0DQo+ID4gPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvaTM4Ni9hZXMtYXZ4LWNoZWNrLmgNCj4gPiA+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9pMzg2L2Flcy1hdngtY2hlY2suaA0KPiA+ID4gQEAgLTIsOCArMiw2IEBADQo+ID4gPiAg I2luY2x1ZGUgPHN0ZGlvLmg+DQo+ID4gPiAgI2VuZGlmDQo+ID4gPiAgI2luY2x1ZGUgPHN0ZGxp Yi5oPg0KPiA+ID4gLSNpbmNsdWRlICJjcHVpZC5oIg0KPiA+ID4gLSNpbmNsdWRlICJhdngtb3Mt c3VwcG9ydC5oIg0KPiA+ID4NCj4gPiA+ICBzdGF0aWMgdm9pZCBhZXNfYXZ4X3Rlc3QgKHZvaWQp Ow0KPiA+ID4NCj4gPiA+IEBAIC0xNywxNSArMTUsOSBAQCBkb190ZXN0ICh2b2lkKQ0KPiA+ID4g IGludA0KPiA+ID4gIG1haW4gKCkNCj4gPiA+ICB7DQo+ID4gPiAtICB1bnNpZ25lZCBpbnQgZWF4 LCBlYngsIGVjeCwgZWR4Ow0KPiA+ID4gLQ0KPiA+ID4gLSAgaWYgKCFfX2dldF9jcHVpZCAoMSwg JmVheCwgJmVieCwgJmVjeCwgJmVkeCkpDQo+ID4gPiAtICAgIHJldHVybiAwOw0KPiA+ID4gLQ0K PiA+ID4gLSAgLyogUnVuIEFFUyArIEFWWCB0ZXN0IG9ubHkgaWYgaG9zdCBoYXMgQUVTICsgQVZY IHN1cHBvcnQuICAqLw0KPiA+ID4gLSAgaWYgKCgoZWN4ICYgKGJpdF9BVlggfCBiaXRfT1NYU0FW RSB8IGJpdF9BRVMpKQ0KPiA+ID4gLSAgICAgICA9PSAoYml0X0FWWCB8IGJpdF9PU1hTQVZFIHwg Yml0X0FFUykpDQo+ID4gPiAtICAgICAgJiYgYXZ4X29zX3N1cHBvcnQgKCkpDQo+ID4gPiArICAv KiBDaGVjayBjcHUgc3VwcG9ydCBmb3IgQUVTIGFuZCBBVlguICAqLw0KPiA+ID4gKyAgaWYgKF9f YnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJhdngiKQ0KPiA+ID4gKyAgICAgICYmIF9fYnVpbHRpbl9j cHVfc3VwcG9ydHMgKCJhZXMiKSkNCj4gPiA+ICAgICAgew0KPiA+ID4gICAgICAgIGRvX3Rlc3Qg KCk7DQo+ID4gPiAgI2lmZGVmIERFQlVHDQo+ID4gPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2kzODYvYWVzLWNoZWNrLmggYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv aTM4Ni9hZXMtY2hlY2suaA0KPiA+ID4gaW5kZXggN2U3OTQ0MjNlNDcuLjdjM2EzYjMyNGE3IDEw MDY0NA0KPiA+ID4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYWVzLWNoZWNr LmgNCj4gPiA+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2Flcy1jaGVjay5o DQo+ID4gPiBAQCAtMSw4ICsxLDYgQEANCj4gPiA+ICAjaW5jbHVkZSA8c3RkaW8uaD4NCj4gPiA+ ICAjaW5jbHVkZSA8c3RkbGliLmg+DQo+ID4gPg0KPiA+ID4gLSNpbmNsdWRlICJjcHVpZC5oIg0K PiA+ID4gLQ0KPiA+ID4gIHN0YXRpYyB2b2lkIGFlc190ZXN0ICh2b2lkKTsNCj4gPiA+DQo+ID4g PiAgc3RhdGljIHZvaWQNCj4gPiA+IEBAIC0xNSwxMyArMTMsOCBAQCBkb190ZXN0ICh2b2lkKQ0K PiA+ID4gIGludA0KPiA+ID4gIG1haW4gKCkNCj4gPiA+ICB7DQo+ID4gPiAtICB1bnNpZ25lZCBp bnQgZWF4LCBlYngsIGVjeCwgZWR4Ow0KPiA+ID4gLQ0KPiA+ID4gLSAgaWYgKCFfX2dldF9jcHVp ZCAoMSwgJmVheCwgJmVieCwgJmVjeCwgJmVkeCkpDQo+ID4gPiAtICAgIHJldHVybiAwOw0KPiA+ ID4gLQ0KPiA+ID4gLSAgLyogUnVuIEFFUyB0ZXN0IG9ubHkgaWYgaG9zdCBoYXMgQUVTIHN1cHBv cnQuICAqLw0KPiA+ID4gLSAgaWYgKGVjeCAmIGJpdF9BRVMpDQo+ID4gPiArICAvKiBDaGVjayBj cHUgc3VwcG9ydCBmb3IgQUVTLiAgKi8NCj4gPiA+ICsgIGlmIChfX2J1aWx0aW5fY3B1X3N1cHBv cnRzICgiYWVzIikpDQo+ID4gPiAgICAgIHsNCj4gPiA+ICAgICAgICBkb190ZXN0ICgpOw0KPiA+ ID4gICNpZmRlZiBERUJVRw0KPiA+ID4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9pMzg2L2F2eC1jaGVjay5oIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4 LWNoZWNrLmgNCj4gPiA+IGluZGV4IDdkZGNhOWQ3YjgwLi40YTNkYmMyNTdiYyAxMDA2NDQNCj4g PiA+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eC1jaGVjay5oDQo+ID4g PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdngtY2hlY2suaA0KPiA+ID4g QEAgLTEsNyArMSw1IEBADQo+ID4gPiAgI2luY2x1ZGUgPHN0ZGxpYi5oPg0KPiA+ID4gLSNpbmNs dWRlICJjcHVpZC5oIg0KPiA+ID4gICNpbmNsdWRlICJtMjU2LWNoZWNrLmgiDQo+ID4gPiAtI2lu Y2x1ZGUgImF2eC1vcy1zdXBwb3J0LmgiDQo+ID4gPg0KPiA+ID4gIHN0YXRpYyB2b2lkIGF2eF90 ZXN0ICh2b2lkKTsNCj4gPiA+DQo+ID4gPiBAQCAtMTUsMTQgKzEzLDggQEAgZG9fdGVzdCAodm9p ZCkNCj4gPiA+ICBpbnQNCj4gPiA+ICBtYWluICgpDQo+ID4gPiAgew0KPiA+ID4gLSAgdW5zaWdu ZWQgaW50IGVheCwgZWJ4LCBlY3gsIGVkeDsNCj4gPiA+IC0NCj4gPiA+IC0gIGlmICghX19nZXRf Y3B1aWQgKDEsICZlYXgsICZlYngsICZlY3gsICZlZHgpKQ0KPiA+ID4gLSAgICByZXR1cm4gMDsN Cj4gPiA+IC0NCj4gPiA+IC0gIC8qIFJ1biBBVlggdGVzdCBvbmx5IGlmIGhvc3QgaGFzIEFWWCBz dXBwb3J0LiAgKi8NCj4gPiA+IC0gIGlmICgoKGVjeCAmIChiaXRfQVZYIHwgYml0X09TWFNBVkUp KSA9PSAoYml0X0FWWCB8IGJpdF9PU1hTQVZFKSkNCj4gPiA+IC0gICAgICAmJiBhdnhfb3Nfc3Vw cG9ydCAoKSkNCj4gPiA+ICsgIC8qIENoZWNrIGNwdSBzdXBwb3J0IGZvciBBVlguICAqLw0KPiA+ ID4gKyAgaWYgKF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJhdngiKSkNCj4gPiA+ICAgICAgew0K PiA+ID4gICAgICAgIGRvX3Rlc3QgKCk7DQo+ID4gPiAgI2lmZGVmIERFQlVHDQo+ID4gPiBkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4Mi1jaGVjay5oIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4Mi1jaGVjay5oDQo+ID4gPiBpbmRleCAyNWJl ZDVlMGRhNi4uMmJjM2M0NDI1YmIgMTAwNjQ0DQo+ID4gPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni9hdngyLWNoZWNrLmgNCj4gPiA+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9pMzg2L2F2eDItY2hlY2suaA0KPiA+ID4gQEAgLTEsNyArMSw1IEBADQo+ID4gPiAg I2luY2x1ZGUgPHN0ZGxpYi5oPg0KPiA+ID4gLSNpbmNsdWRlICJjcHVpZC5oIg0KPiA+ID4gICNp bmNsdWRlICJtMjU2LWNoZWNrLmgiDQo+ID4gPiAtI2luY2x1ZGUgImF2eC1vcy1zdXBwb3J0Lmgi DQo+ID4gPg0KPiA+ID4gIHN0YXRpYyB2b2lkIGF2eDJfdGVzdCAodm9pZCk7DQo+ID4gPg0KPiA+ ID4gQEAgLTEwLDI1ICs4LDExIEBAIHN0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18gKChub2lubGlu ZSkpIGRvX3Rlc3QgKHZvaWQpDQo+ID4gPiAgICBhdngyX3Rlc3QgKCk7DQo+ID4gPiAgfQ0KPiA+ ID4NCj4gPiA+IC1zdGF0aWMgaW50DQo+ID4gPiAtY2hlY2tfb3N4c2F2ZSAodm9pZCkNCj4gPiA+ IC17DQo+ID4gPiAtICB1bnNpZ25lZCBpbnQgZWF4LCBlYngsIGVjeCwgZWR4Ow0KPiA+ID4gLQ0K PiA+ID4gLSAgX19jcHVpZCAoMSwgZWF4LCBlYngsIGVjeCwgZWR4KTsNCj4gPiA+IC0gIHJldHVy biAoZWN4ICYgYml0X09TWFNBVkUpICE9IDA7DQo+ID4gPiAtfQ0KPiA+ID4gLQ0KPiA+ID4gIGlu dA0KPiA+ID4gIG1haW4gKCkNCj4gPiA+ICB7DQo+ID4gPiAtICB1bnNpZ25lZCBpbnQgZWF4LCBl YngsIGVjeCwgZWR4Ow0KPiA+ID4gLQ0KPiA+ID4gLSAgaWYgKCFfX2dldF9jcHVpZF9jb3VudCAo NywgMCwgJmVheCwgJmVieCwgJmVjeCwgJmVkeCkpDQo+ID4gPiAtICAgIHJldHVybiAwOw0KPiA+ ID4gLQ0KPiA+ID4gLSAgLyogUnVuIEFWWDIgdGVzdCBvbmx5IGlmIGhvc3QgaGFzIEFWWDIgc3Vw cG9ydC4gICovDQo+ID4gPiAtICBpZiAoY2hlY2tfb3N4c2F2ZSAoKSAmJiAoZWJ4ICYgYml0X0FW WDIpICYmIGF2eF9vc19zdXBwb3J0ICgpKQ0KPiA+ID4gKyAgLyogQ2hlY2sgY3B1IHN1cHBvcnQg Zm9yIEFWWDIuICAqLw0KPiA+ID4gKyAgaWYgKF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJhdngy IikpDQo+ID4gPiAgICAgIHsNCj4gPiA+ICAgICAgICBkb190ZXN0ICgpOw0KPiA+ID4gICNpZmRl ZiBERUJVRw0KPiA+ID4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2 L2F2eDUxMi1jaGVjay5oIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEyLWNo ZWNrLmgNCj4gPiA+IGluZGV4IDBhZDkwNjRmNjM3Li4zMzljNzkwNzBjOSAxMDA2NDQNCj4gPiA+ IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMi1jaGVjay5oDQo+ID4g PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTItY2hlY2suaA0KPiA+ ID4gQEAgLTEsNyArMSw1IEBADQo+ID4gPiAgI2luY2x1ZGUgPHN0ZGxpYi5oPg0KPiA+ID4gLSNp bmNsdWRlICJjcHVpZC5oIg0KPiA+ID4gICNpbmNsdWRlICJtNTEyLWNoZWNrLmgiDQo+ID4gPiAt I2luY2x1ZGUgImF2eDUxMmYtb3Mtc3VwcG9ydC5oIg0KPiA+ID4NCj4gPiA+ICAjaWZuZGVmIERP X1RFU1QNCj4gPiA+ICAjZGVmaW5lIERPX1RFU1QgZG9fdGVzdA0KPiA+ID4gQEAgLTI1LDgxICsy Myw2NiBAQCBkb190ZXN0ICh2b2lkKQ0KPiA+ID4gIH0NCj4gPiA+ICAjZW5kaWYNCj4gPiA+DQo+ ID4gPiAtc3RhdGljIGludA0KPiA+ID4gLWNoZWNrX29zeHNhdmUgKHZvaWQpDQo+ID4gPiAtew0K PiA+ID4gLSAgdW5zaWduZWQgaW50IGVheCwgZWJ4LCBlY3gsIGVkeDsNCj4gPiA+IC0NCj4gPiA+ IC0gIF9fY3B1aWQgKDEsIGVheCwgZWJ4LCBlY3gsIGVkeCk7DQo+ID4gPiAtICByZXR1cm4gKGVj eCAmIGJpdF9PU1hTQVZFKSAhPSAwOw0KPiA+ID4gLX0NCj4gPiA+IC0NCj4gPiA+ICBpbnQNCj4g PiA+ICBtYWluICgpDQo+ID4gPiAgew0KPiA+ID4gLSAgdW5zaWduZWQgaW50IGVheCwgZWJ4LCBl Y3gsIGVkeDsNCj4gPiA+IC0NCj4gPiA+IC0gIGlmICghX19nZXRfY3B1aWRfY291bnQgKDcsIDAs ICZlYXgsICZlYngsICZlY3gsICZlZHgpKQ0KPiA+ID4gLSAgICByZXR1cm4gMDsNCj4gPiA+IC0N Cj4gPiA+IC0gIC8qIFJ1biBBVlg1MTIgdGVzdCBvbmx5IGlmIGhvc3QgaGFzIElTQSBzdXBwb3J0 LiAgKi8NCj4gPiA+IC0gIGlmIChjaGVja19vc3hzYXZlICgpDQo+ID4gPiAtICAgICAgJiYgKGVi eCAmIGJpdF9BVlg1MTJGKQ0KPiA+ID4gKyAgLyogQ2hlY2sgY3B1IHN1cHBvcnQgZm9yIEFWWDUx Mi4gICovDQo+ID4gPiArICBpZiAoX19idWlsdGluX2NwdV9zdXBwb3J0cyAoImF2eDUxMmYiKQ0K PiA+ID4gICNpZmRlZiBBVlg1MTJWTA0KPiA+ID4gLSAgICAgICYmIChlYnggJiBiaXRfQVZYNTEy VkwpDQo+ID4gPiArICAgICAgJiYgX19idWlsdGluX2NwdV9zdXBwb3J0cyAoImF2eDUxMnZsIikN Cj4gPiA+ICAjZW5kaWYNCj4gPiA+ICAjaWZkZWYgQVZYNTEyRVINCj4gPiA+IC0gICAgICAmJiAo ZWJ4ICYgYml0X0FWWDUxMkVSKQ0KPiA+ID4gKyAgICAgICYmIF9fYnVpbHRpbl9jcHVfc3VwcG9y dHMgKCJhdng1MTJlciIpDQo+ID4gPiAgI2VuZGlmDQo+ID4gPiAgI2lmZGVmIEFWWDUxMkNEDQo+ ID4gPiAtICAgICAgJiYgKGVieCAmIGJpdF9BVlg1MTJDRCkNCj4gPiA+ICsgICAgICAmJiBfX2J1 aWx0aW5fY3B1X3N1cHBvcnRzICgiYXZ4NTEyY2QiKQ0KPiA+ID4gICNlbmRpZg0KPiA+ID4gICNp ZmRlZiBBVlg1MTJEUQ0KPiA+ID4gLSAgICAgICYmIChlYnggJiBiaXRfQVZYNTEyRFEpDQo+ID4g PiArICAgICAgJiYgX19idWlsdGluX2NwdV9zdXBwb3J0cyAoImF2eDUxMmRxIikNCj4gPiA+ICAj ZW5kaWYNCj4gPiA+ICAjaWZkZWYgQVZYNTEyQlcNCj4gPiA+IC0gICAgICAmJiAoZWJ4ICYgYml0 X0FWWDUxMkJXKQ0KPiA+ID4gKyAgICAgICYmIF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJhdng1 MTJidyIpDQo+ID4gPiAgI2VuZGlmDQo+ID4gPiAgI2lmZGVmIEFWWDUxMklGTUENCj4gPiA+IC0g ICAgICAmJiAoZWJ4ICYgYml0X0FWWDUxMklGTUEpDQo+ID4gPiArICAgICAgJiYgX19idWlsdGlu X2NwdV9zdXBwb3J0cyAoImF2eDUxMmlmbWEiKQ0KPiA+ID4gICNlbmRpZg0KPiA+ID4gICNpZmRl ZiBBVlg1MTJWQk1JDQo+ID4gPiAtICAgICAgJiYgKGVjeCAmIGJpdF9BVlg1MTJWQk1JKQ0KPiA+ ID4gKyAgICAgICYmIF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJhdng1MTJ2Ym1pIikNCj4gPiA+ ICAjZW5kaWYNCj4gPiA+ICAjaWZkZWYgQVZYNTEyNEZNQVBTDQo+ID4gPiAtICAgICAgJiYgKGVk eCAmIGJpdF9BVlg1MTI0Rk1BUFMpDQo+ID4gPiArICAgICAgJiYgX19idWlsdGluX2NwdV9zdXBw b3J0cyAoImF2eDUxMjRmbWFwcyIpDQo+ID4gPiAgI2VuZGlmDQo+ID4gPiAgI2lmZGVmIEFWWDUx MjRWTk5JVw0KPiA+ID4gLSAgICAgICYmIChlZHggJiBiaXRfQVZYNTEyNFZOTklXKQ0KPiA+ID4g KyAgICAgICYmIF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJhdng1MTI0dm5uaXciKQ0KPiA+ID4g ICNlbmRpZg0KPiA+ID4gICNpZmRlZiBBVlg1MTJWUE9QQ05URFENCj4gPiA+IC0gICAgICAmJiAo ZWN4ICYgYml0X0FWWDUxMlZQT1BDTlREUSkNCj4gPiA+ICsgICAgICAmJiBfX2J1aWx0aW5fY3B1 X3N1cHBvcnRzICgiYXZ4NTEydnBvcGNudGRxIikNCj4gPiA+ICAjZW5kaWYNCj4gPiA+ICAjaWZk ZWYgQVZYNTEyQklUQUxHDQo+ID4gPiAtICAgICAgJiYgKGVjeCAmIGJpdF9BVlg1MTJCSVRBTEcp DQo+ID4gPiArICAgICAgJiYgX19idWlsdGluX2NwdV9zdXBwb3J0cyAoImF2eDUxMmJpdGFsZyIp DQo+ID4gPiAgI2VuZGlmDQo+ID4gPiAgI2lmZGVmIEdGTkkNCj4gPiA+IC0gICAgICAmJiAoZWN4 ICYgYml0X0dGTkkpDQo+ID4gPiArICAgICAgJiYgX19idWlsdGluX2NwdV9zdXBwb3J0cyAoImdm bmkiKQ0KPiA+ID4gICNlbmRpZg0KPiA+ID4gICNpZmRlZiBBVlg1MTJWQk1JMg0KPiA+ID4gLSAg ICAgICYmIChlY3ggJiBiaXRfQVZYNTEyVkJNSTIpDQo+ID4gPiArICAgICAgJiYgX19idWlsdGlu X2NwdV9zdXBwb3J0cyAoImF2eDUxMnZibWkyIikNCj4gPiA+ICAjZW5kaWYNCj4gPiA+ICAjaWZk ZWYgQVZYNTEyVk5OSQ0KPiA+ID4gLSAgICAgICYmIChlY3ggJiBiaXRfQVZYNTEyVk5OSSkNCj4g PiA+ICsgICAgICAmJiBfX2J1aWx0aW5fY3B1X3N1cHBvcnRzICgiYXZ4NTEydm5uaSIpDQo+ID4g PiAgI2VuZGlmDQo+ID4gPiAgI2lmZGVmIEFWWDUxMkZQMTYNCj4gPiA+IC0gICAgICAmJiAoZWR4 ICYgYml0X0FWWDUxMkZQMTYpDQo+ID4gPiArICAgICAgJiYgX19idWlsdGluX2NwdV9zdXBwb3J0 cyAoImF2eDUxMmZwMTYiKQ0KPiA+ID4gICNlbmRpZg0KPiA+ID4gICNpZmRlZiBWQUVTDQo+ID4g PiAtICAgICAgJiYgKGVjeCAmIGJpdF9WQUVTKQ0KPiA+ID4gKyAgICAgICYmIF9fYnVpbHRpbl9j cHVfc3VwcG9ydHMgKCJ2YWVzIikNCj4gPiA+ICAjZW5kaWYNCj4gPiA+ICAjaWZkZWYgVlBDTE1V TFFEUQ0KPiA+ID4gLSAgICAgICYmIChlY3ggJiBiaXRfVlBDTE1VTFFEUSkNCj4gPiA+ICsgICAg ICAmJiBfX2J1aWx0aW5fY3B1X3N1cHBvcnRzICgidnBjbG11bHFkcSIpDQo+ID4gPiAgI2VuZGlm DQo+ID4gPiAgI2lmZGVmIEFWWDUxMlZQMklOVEVSU0VDVA0KPiA+ID4gLSAgICAgICYmIChlZHgg JiBiaXRfQVZYNTEyVlAySU5URVJTRUNUKQ0KPiA+ID4gKyAgICAgICYmIF9fYnVpbHRpbl9jcHVf c3VwcG9ydHMgKCJhdng1MTJ2cDJpbnRlcnNlY3QiKQ0KPiA+ID4gICNlbmRpZg0KPiA+ID4gLSAg ICAgICYmIGF2eDUxMmZfb3Nfc3VwcG9ydCAoKSkNCj4gPiA+ICsgICAgICApDQo+ID4gPiAgICAg IHsNCj4gPiA+ICAgICAgICBET19URVNUICgpOw0KPiA+ID4gICNpZmRlZiBERUJVRw0KPiA+ID4g ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2JtaS1jaGVjay5oIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYm1pLWNoZWNrLmgNCj4gPiA+IGluZGV4IDE5 NzNmM2I2NDY4Li42YWYwMjkxYTk0NyAxMDA2NDQNCj4gPiA+IC0tLSBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9pMzg2L2JtaS1jaGVjay5oDQo+ID4gPiArKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni9ibWktY2hlY2suaA0KPiA+ID4gQEAgLTEsOCArMSw2IEBADQo+ID4gPiAg I2luY2x1ZGUgPHN0ZGlvLmg+DQo+ID4gPiAgI2luY2x1ZGUgPHN0ZGxpYi5oPg0KPiA+ID4NCj4g PiA+IC0jaW5jbHVkZSAiY3B1aWQuaCINCj4gPiA+IC0NCj4gPiA+ICBzdGF0aWMgdm9pZCBibWlf dGVzdCAodm9pZCk7DQo+ID4gPg0KPiA+ID4gIHN0YXRpYyB2b2lkDQo+ID4gPiBAQCAtMTUsMTMg KzEzLDggQEAgZG9fdGVzdCAodm9pZCkNCj4gPiA+ICBpbnQNCj4gPiA+ICBtYWluICgpDQo+ID4g PiAgew0KPiA+ID4gLSAgdW5zaWduZWQgaW50IGVheCwgZWJ4LCBlY3gsIGVkeDsNCj4gPiA+IC0N Cj4gPiA+IC0gIGlmICghX19nZXRfY3B1aWRfY291bnQgKDcsIDAsICZlYXgsICZlYngsICZlY3gs ICZlZHgpKQ0KPiA+ID4gLSAgICByZXR1cm4gMDsNCj4gPiA+IC0NCj4gPiA+IC0gIC8qIFJ1biBC TUkgdGVzdCBvbmx5IGlmIGhvc3QgaGFzIEJNSSBzdXBwb3J0LiAgKi8NCj4gPiA+IC0gIGlmIChl YnggJiBiaXRfQk1JKQ0KPiA+ID4gKyAgLyogQ2hlY2sgY3B1IHN1cHBvcnQgZm9yIEJNSS4gICov DQo+ID4gPiArICBpZiAoX19idWlsdGluX2NwdV9zdXBwb3J0cyAoImJtaSIpKQ0KPiA+ID4gICAg ICB7DQo+ID4gPiAgICAgICAgZG9fdGVzdCAoKTsNCj4gPiA+ICAjaWZkZWYgREVCVUcNCj4gPiA+ IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9ibWkyLWNoZWNrLmgg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9ibWkyLWNoZWNrLmgNCj4gPiA+IGluZGV4 IGJhOTFlZjliNzgwLi43NWM0ZDhkOTYxNiAxMDA2NDQNCj4gPiA+IC0tLSBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9pMzg2L2JtaTItY2hlY2suaA0KPiA+ID4gKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2kzODYvYm1pMi1jaGVjay5oDQo+ID4gPiBAQCAtMSw2ICsxLDUgQEANCj4g PiA+ICAjaW5jbHVkZSA8c3RkaW8uaD4NCj4gPiA+ICAjaW5jbHVkZSA8c3RkbGliLmg+DQo+ID4g PiAtI2luY2x1ZGUgImNwdWlkLmgiDQo+ID4gPg0KPiA+ID4gIHN0YXRpYyB2b2lkIGJtaTJfdGVz dCAodm9pZCk7DQo+ID4gPg0KPiA+ID4gQEAgLTE0LDEzICsxMyw4IEBAIGRvX3Rlc3QgKHZvaWQp DQo+ID4gPiAgaW50DQo+ID4gPiAgbWFpbiAoKQ0KPiA+ID4gIHsNCj4gPiA+IC0gIHVuc2lnbmVk IGludCBlYXgsIGVieCwgZWN4LCBlZHg7DQo+ID4gPiAtDQo+ID4gPiAtICBpZiAoIV9fZ2V0X2Nw dWlkX2NvdW50ICg3LCAwLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KSkNCj4gPiA+IC0gICAgcmV0 dXJuIDA7DQo+ID4gPiAtDQo+ID4gPiAtICAvKiBSdW4gQk1JMiB0ZXN0IG9ubHkgaWYgaG9zdCBo YXMgQk1JMiBzdXBwb3J0LiAgKi8NCj4gPiA+IC0gIGlmIChlYnggJiBiaXRfQk1JMikNCj4gPiA+ ICsgIC8qIENoZWNrIGNwdSBzdXBwb3J0IGZvciBCTUkyLiAgKi8NCj4gPiA+ICsgIGlmIChfX2J1 aWx0aW5fY3B1X3N1cHBvcnRzICgiYm1pMiIpKQ0KPiA+ID4gICAgICB7DQo+ID4gPiAgICAgICAg ZG9fdGVzdCAoKTsNCj4gPiA+ICAjaWZkZWYgREVCVUcNCj4gPiA+IGRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9mMTZjLWNoZWNrLmggYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni9mMTZjLWNoZWNrLmgNCj4gPiA+IGluZGV4IGFmN2YzMmM1ZjRmLi4yY2Jm MzRhYjUxNiAxMDA2NDQNCj4gPiA+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2 L2YxNmMtY2hlY2suaA0KPiA+ID4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYv ZjE2Yy1jaGVjay5oDQo+ID4gPiBAQCAtMSw2ICsxLDUgQEANCj4gPiA+ICAjaW5jbHVkZSA8c3Rk bGliLmg+DQo+ID4gPiAgI2luY2x1ZGUgPHN0ZGlvLmg+DQo+ID4gPiAtI2luY2x1ZGUgImNwdWlk LmgiDQo+ID4gPiAgI2luY2x1ZGUgIm0yNTYtY2hlY2suaCINCj4gPiA+DQo+ID4gPiAgc3RhdGlj IHZvaWQgZjE2Y190ZXN0ICh2b2lkKTsNCj4gPiA+IEBAIC04LDEzICs3LDggQEAgc3RhdGljIHZv aWQgZjE2Y190ZXN0ICh2b2lkKTsNCj4gPiA+ICBpbnQNCj4gPiA+ICBtYWluICgpDQo+ID4gPiAg ew0KPiA+ID4gLSAgdW5zaWduZWQgaW50IGVheCwgZWJ4LCBlY3gsIGVkeDsNCj4gPiA+IC0NCj4g PiA+IC0gIGlmICghX19nZXRfY3B1aWQgKDEsICZlYXgsICZlYngsICZlY3gsICZlZHgpKQ0KPiA+ ID4gLSAgICByZXR1cm4gMDsNCj4gPiA+IC0NCj4gPiA+IC0gIC8qIFJ1biBGMTZDIHRlc3Qgb25s eSBpZiBob3N0IGhhcyBGMTZDIHN1cHBvcnQuICAqLw0KPiA+ID4gLSAgaWYgKGVjeCAmIGJpdF9G MTZDKQ0KPiA+ID4gKyAgLyogQ2hlY2sgY3B1IHN1cHBvcnQgZm9yIEYxNkMuICAqLw0KPiA+ID4g KyAgaWYgKF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJmMTZjIikpDQo+ID4gPiAgICAgIHsNCj4g PiA+ICAgICAgICBmMTZjX3Rlc3QgKCk7DQo+ID4gPiAgI2lmZGVmIERFQlVHDQo+ID4gPiBkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvZm1hLWNoZWNrLmggYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9mbWEtY2hlY2suaA0KPiA+ID4gaW5kZXggODM5MGY1 MDg4YmQuLjZjMWQzMzcyMjE4IDEwMDY0NA0KPiA+ID4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2kzODYvZm1hLWNoZWNrLmgNCj4gPiA+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9pMzg2L2ZtYS1jaGVjay5oDQo+ID4gPiBAQCAtMSw3ICsxLDUgQEANCj4gPiA+ICAjaW5j bHVkZSA8c3RkbGliLmg+DQo+ID4gPg0KPiA+ID4gLSNpbmNsdWRlICJjcHVpZC5oIg0KPiA+ID4g LQ0KPiA+ID4gIHN0YXRpYyB2b2lkIGZtYV90ZXN0ICh2b2lkKTsNCj4gPiA+DQo+ID4gPiAgc3Rh dGljIHZvaWQgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkgZG9fdGVzdCAodm9pZCkNCj4gPiA+ IEBAIC0xMiwxMyArMTAsOCBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUp KSBkb190ZXN0ICh2b2lkKQ0KPiA+ID4gIGludA0KPiA+ID4gIG1haW4gKCkNCj4gPiA+ICB7DQo+ ID4gPiAtICB1bnNpZ25lZCBpbnQgZWF4LCBlYngsIGVjeCwgZWR4Ow0KPiA+ID4gLQ0KPiA+ID4g LSAgaWYgKCFfX2dldF9jcHVpZCAoMSwgJmVheCwgJmVieCwgJmVjeCwgJmVkeCkpDQo+ID4gPiAt ICAgIHJldHVybiAwOw0KPiA+ID4gLQ0KPiA+ID4gLSAgLyogUnVuIEZNQSB0ZXN0IG9ubHkgaWYg aG9zdCBoYXMgRk1BIHN1cHBvcnQuICAqLw0KPiA+ID4gLSAgaWYgKGVjeCAmIGJpdF9GTUEpDQo+ ID4gPiArICAvKiBDaGVjayBjcHUgc3VwcG9ydCBmb3IgRk1BLiAgKi8NCj4gPiA+ICsgIGlmIChf X2J1aWx0aW5fY3B1X3N1cHBvcnRzICgiZm1hIikpDQo+ID4gPiAgICAgIGRvX3Rlc3QgKCk7DQo+ ID4gPg0KPiA+ID4gICAgcmV0dXJuIDA7DQo+ID4gPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2kzODYvZm1hNC1jaGVjay5oIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2kzODYvZm1hNC1jaGVjay5oDQo+ID4gPiBpbmRleCAzM2NkOTYyOGMwNC4uMmQyYzI3MTgwMjkg MTAwNjQ0DQo+ID4gPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9mbWE0LWNo ZWNrLmgNCj4gPiA+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2ZtYTQtY2hl Y2suaA0KPiA+ID4gQEAgLTEsNyArMSw1IEBADQo+ID4gPiAgI2luY2x1ZGUgPHN0ZGxpYi5oPg0K PiA+ID4NCj4gPiA+IC0jaW5jbHVkZSAiY3B1aWQuaCINCj4gPiA+IC0NCj4gPiA+ICBzdGF0aWMg dm9pZCBmbWE0X3Rlc3QgKHZvaWQpOw0KPiA+ID4NCj4gPiA+ICBzdGF0aWMgdm9pZA0KPiA+ID4g QEAgLTE0LDEzICsxMiw4IEBAIGRvX3Rlc3QgKHZvaWQpDQo+ID4gPiAgaW50DQo+ID4gPiAgbWFp biAoKQ0KPiA+ID4gIHsNCj4gPiA+IC0gIHVuc2lnbmVkIGludCBlYXgsIGVieCwgZWN4LCBlZHg7 DQo+ID4gPiAtDQo+ID4gPiAtICBpZiAoIV9fZ2V0X2NwdWlkICgweDgwMDAwMDAxLCAmZWF4LCAm ZWJ4LCAmZWN4LCAmZWR4KSkNCj4gPiA+IC0gICAgcmV0dXJuIDA7DQo+ID4gPiAtDQo+ID4gPiAt ICAvKiBSdW4gRk1BNCB0ZXN0IG9ubHkgaWYgaG9zdCBoYXMgRk1BNCBzdXBwb3J0LiAgKi8NCj4g PiA+IC0gIGlmIChlY3ggJiBiaXRfRk1BNCkNCj4gPiA+ICsgIC8qIENoZWNrIGNwdSBzdXBwb3J0 IGZvZSBGTUE0LiAgKi8NCj4gPiA+ICsgIGlmIChfX2J1aWx0aW5fY3B1X3N1cHBvcnRzICgiZm1h NCIpKQ0KPiA+ID4gICAgICBkb190ZXN0ICgpOw0KPiA+ID4NCj4gPiA+ICAgIHJldHVybiAwOw0K PiA+ID4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2x6Y250LWNo ZWNrLmggYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9semNudC1jaGVjay5oDQo+ID4g PiBpbmRleCA4YWFkODM0ZDZhZi4uODI0ZjFhM2I1MTMgMTAwNjQ0DQo+ID4gPiAtLS0gYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9semNudC1jaGVjay5oDQo+ID4gPiArKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9semNudC1jaGVjay5oDQo+ID4gPiBAQCAtMSw4ICsx LDYgQEANCj4gPiA+ICAjaW5jbHVkZSA8c3RkaW8uaD4NCj4gPiA+ICAjaW5jbHVkZSA8c3RkbGli Lmg+DQo+ID4gPg0KPiA+ID4gLSNpbmNsdWRlICJjcHVpZC5oIg0KPiA+ID4gLQ0KPiA+ID4gIHN0 YXRpYyB2b2lkIGx6Y250X3Rlc3QgKHZvaWQpOw0KPiA+ID4NCj4gPiA+ICBzdGF0aWMgdm9pZA0K PiA+ID4gQEAgLTE1LDEzICsxMyw4IEBAIGRvX3Rlc3QgKHZvaWQpDQo+ID4gPiAgaW50DQo+ID4g PiAgbWFpbiAoKQ0KPiA+ID4gIHsNCj4gPiA+IC0gIHVuc2lnbmVkIGludCBlYXgsIGVieCwgZWN4 LCBlZHg7DQo+ID4gPiAtDQo+ID4gPiAtICBpZiAoIV9fZ2V0X2NwdWlkICgweDgwMDAwMDAxLCAm ZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KSkNCj4gPiA+IC0gICAgcmV0dXJuIDA7DQo+ID4gPiAtDQo+ ID4gPiAtICAvKiBSdW4gTFpDTlQgdGVzdCBvbmx5IGlmIGhvc3QgaGFzIExaQ05UIHN1cHBvcnQu ICAqLw0KPiA+ID4gLSAgaWYgKGVjeCAmIGJpdF9MWkNOVCkNCj4gPiA+ICsgIC8qIENoZWNrIGNw dSBzdXBwb3J0IGZvciBMWkNOVC4gICovDQo+ID4gPiArICBpZiAoX19idWlsdGluX2NwdV9zdXBw b3J0cyAoImx6Y250IikpDQo+ID4gPiAgICAgIHsNCj4gPiA+ICAgICAgICBkb190ZXN0ICgpOw0K PiA+ID4gICNpZmRlZiBERUJVRw0KPiA+ID4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9pMzg2L21teC0zZG5vdy1jaGVjay5oIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2kzODYvbW14LTNkbm93LWNoZWNrLmgNCj4gPiA+IGluZGV4IDRmMmY3ZjNhYzQwLi4wZWMyZGNh MmUxOSAxMDA2NDQNCj4gPiA+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L21t eC0zZG5vdy1jaGVjay5oDQo+ID4gPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4 Ni9tbXgtM2Rub3ctY2hlY2suaA0KPiA+ID4gQEAgLTEsOCArMSw2IEBADQo+ID4gPiAgI2luY2x1 ZGUgPHN0ZGlvLmg+DQo+ID4gPiAgI2luY2x1ZGUgPHN0ZGxpYi5oPg0KPiA+ID4NCj4gPiA+IC0j aW5jbHVkZSAiY3B1aWQuaCINCj4gPiA+IC0NCj4gPiA+ICBzdGF0aWMgdm9pZCBtbXhfM2Rub3df dGVzdCAodm9pZCk7DQo+ID4gPg0KPiA+ID4gIHN0YXRpYyB2b2lkDQo+ID4gPiBAQCAtMTUsMTMg KzEzLDggQEAgZG9fdGVzdCAodm9pZCkNCj4gPiA+ICBpbnQNCj4gPiA+ICBtYWluICgpDQo+ID4g PiAgew0KPiA+ID4gLSAgdW5zaWduZWQgaW50IGVheCwgZWJ4LCBlY3gsIGVkeDsNCj4gPiA+IC0N Cj4gPiA+IC0gIGlmICghX19nZXRfY3B1aWQgKDB4ODAwMDAwMDEsICZlYXgsICZlYngsICZlY3gs ICZlZHgpKQ0KPiA+ID4gLSAgICByZXR1cm4gMDsNCj4gPiA+IC0NCj4gPiA+IC0gIC8qIFJ1biAz RE5vdyEgdGVzdCBvbmx5IGlmIGhvc3QgaGFzIDNETm93ISBzdXBwb3J0LiAgKi8NCj4gPiA+IC0g IGlmIChlZHggJiBiaXRfM0ROT1cpDQo+ID4gPiArICAvKiBDaGVjayBjcHUgc3VwcG9ydCBmb3Ig M0ROb3chLiAgKi8NCj4gPiA+ICsgIGlmIChfX2J1aWx0aW5fY3B1X3N1cHBvcnRzICgiM2Rub3ci KSkNCj4gPiA+ICAgICAgZG9fdGVzdCAoKTsNCj4gPiA+DQo+ID4gPiAgICByZXR1cm4gMDsNCj4g PiA+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9tbXgtY2hlY2su aCBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L21teC1jaGVjay5oDQo+ID4gPiBpbmRl eCBmYWY5Yjg3NmYzOC4uMmFmZTUxODNiYTIgMTAwNjQ0DQo+ID4gPiAtLS0gYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvaTM4Ni9tbXgtY2hlY2suaA0KPiA+ID4gKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2kzODYvbW14LWNoZWNrLmgNCj4gPiA+IEBAIC0xLDggKzEsNiBAQA0KPiA+ ID4gICNpbmNsdWRlIDxzdGRpby5oPg0KPiA+ID4gICNpbmNsdWRlIDxzdGRsaWIuaD4NCj4gPiA+ DQo+ID4gPiAtI2luY2x1ZGUgImNwdWlkLmgiDQo+ID4gPiAtDQo+ID4gPiAgc3RhdGljIHZvaWQg bW14X3Rlc3QgKHZvaWQpOw0KPiA+ID4NCj4gPiA+ICBzdGF0aWMgdm9pZA0KPiA+ID4gQEAgLTE1 LDEzICsxMyw4IEBAIGRvX3Rlc3QgKHZvaWQpDQo+ID4gPiAgaW50DQo+ID4gPiAgbWFpbiAoKQ0K PiA+ID4gIHsNCj4gPiA+IC0gIHVuc2lnbmVkIGludCBlYXgsIGVieCwgZWN4LCBlZHg7DQo+ID4g PiAtDQo+ID4gPiAtICBpZiAoIV9fZ2V0X2NwdWlkICgxLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4 KSkNCj4gPiA+IC0gICAgcmV0dXJuIDA7DQo+ID4gPiAtDQo+ID4gPiAtICAvKiBSdW4gTU1YIHRl c3Qgb25seSBpZiBob3N0IGhhcyBNTVggc3VwcG9ydC4gICovDQo+ID4gPiAtICBpZiAoZWR4ICYg Yml0X01NWCkNCj4gPiA+ICsgIC8qIENoZWNrIGNwdSBzdXBwb3J0IGZvciBNTVguICAqLw0KPiA+ ID4gKyAgaWYgKF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJtbXgiKSkNCj4gPiA+ICAgICAgZG9f dGVzdCAoKTsNCj4gPiA+DQo+ID4gPiAgICByZXR1cm4gMDsNCj4gPiA+IGRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wY2xtdWwtYXZ4LWNoZWNrLmggYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wY2xtdWwtYXZ4LWNoZWNrLmgNCj4gPiA+IGluZGV4IDVl ZWQyZTIyMDNjLi5iNTA2YjMzMDZlNiAxMDA2NDQNCj4gPiA+IC0tLSBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9pMzg2L3BjbG11bC1hdngtY2hlY2suaA0KPiA+ID4gKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2kzODYvcGNsbXVsLWF2eC1jaGVjay5oDQo+ID4gPiBAQCAtMiw4ICsy LDYgQEANCj4gPiA+ICAjaW5jbHVkZSA8c3RkaW8uaD4NCj4gPiA+ICAjZW5kaWYNCj4gPiA+ICAj aW5jbHVkZSA8c3RkbGliLmg+DQo+ID4gPiAtI2luY2x1ZGUgImNwdWlkLmgiDQo+ID4gPiAtI2lu Y2x1ZGUgImF2eC1vcy1zdXBwb3J0LmgiDQo+ID4gPg0KPiA+ID4gIHN0YXRpYyB2b2lkIHBjbG11 bF9hdnhfdGVzdCAodm9pZCk7DQo+ID4gPg0KPiA+ID4gQEAgLTE3LDE1ICsxNSw5IEBAIGRvX3Rl c3QgKHZvaWQpDQo+ID4gPiAgaW50DQo+ID4gPiAgbWFpbiAoKQ0KPiA+ID4gIHsNCj4gPiA+IC0g IHVuc2lnbmVkIGludCBlYXgsIGVieCwgZWN4LCBlZHg7DQo+ID4gPiAtDQo+ID4gPiAtICBpZiAo IV9fZ2V0X2NwdWlkICgxLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KSkNCj4gPiA+IC0gICAgcmV0 dXJuIDA7DQo+ID4gPiAtDQo+ID4gPiAtICAvKiBSdW4gUENMTVVMICsgQVZYIHRlc3Qgb25seSBp ZiBob3N0IGhhcyBQQ0xNVUwgKyBBVlggc3VwcG9ydC4gICovDQo+ID4gPiAtICBpZiAoKChlY3gg JiAoYml0X0FWWCB8IGJpdF9PU1hTQVZFIHwgYml0X1BDTE1VTCkpDQo+ID4gPiAtICAgICAgID09 IChiaXRfQVZYIHwgYml0X09TWFNBVkUgfCBiaXRfUENMTVVMKSkNCj4gPiA+IC0gICAgICAmJiBh dnhfb3Nfc3VwcG9ydCAoKSkNCj4gPiA+ICsgIC8qIENoZWNrIGNwdSBzdXBwb3J0IGZvciBQQ0xN VUwgYW5kIEFWWC4gICovDQo+ID4gPiArICBpZiAoX19idWlsdGluX2NwdV9zdXBwb3J0cyAoInBj bG11bCIpDQo+ID4gPiArICAgICAgJiYgX19idWlsdGluX2NwdV9zdXBwb3J0cyAoImF2eCIpKQ0K PiA+ID4gICAgICB7DQo+ID4gPiAgICAgICAgZG9fdGVzdCAoKTsNCj4gPiA+ICAjaWZkZWYgREVC VUcNCj4gPiA+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wY2xt dWwtY2hlY2suaCBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3BjbG11bC1jaGVjay5o DQo+ID4gPiBpbmRleCA3NTI2Y2JlMmRkZi4uM2VkMWEwNDQ2MjcgMTAwNjQ0DQo+ID4gPiAtLS0g YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wY2xtdWwtY2hlY2suaA0KPiA+ID4gKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcGNsbXVsLWNoZWNrLmgNCj4gPiA+IEBA IC0xLDggKzEsNiBAQA0KPiA+ID4gICNpbmNsdWRlIDxzdGRpby5oPg0KPiA+ID4gICNpbmNsdWRl IDxzdGRsaWIuaD4NCj4gPiA+DQo+ID4gPiAtI2luY2x1ZGUgImNwdWlkLmgiDQo+ID4gPiAtDQo+ ID4gPiAgc3RhdGljIHZvaWQgcGNsbXVsX3Rlc3QgKHZvaWQpOw0KPiA+ID4NCj4gPiA+ICBzdGF0 aWMgdm9pZA0KPiA+ID4gQEAgLTE1LDEzICsxMyw4IEBAIGRvX3Rlc3QgKHZvaWQpDQo+ID4gPiAg aW50DQo+ID4gPiAgbWFpbiAoKQ0KPiA+ID4gIHsNCj4gPiA+IC0gIHVuc2lnbmVkIGludCBlYXgs IGVieCwgZWN4LCBlZHg7DQo+ID4gPiAtDQo+ID4gPiAtICBpZiAoIV9fZ2V0X2NwdWlkICgxLCAm ZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KSkNCj4gPiA+IC0gICAgcmV0dXJuIDA7DQo+ID4gPiAtDQo+ ID4gPiAtICAvKiBSdW4gUENMTVVMUURRIHRlc3Qgb25seSBpZiBob3N0IGhhcyBQQ0xNVUxRRFEg c3VwcG9ydC4gICovDQo+ID4gPiAtICBpZiAoZWN4ICYgYml0X1BDTE1VTCkNCj4gPiA+ICsgIC8q IENoZWNrIGNwdSBzdXBwb3J0IGZvciBQQ0xNVUwuICAqLw0KPiA+ID4gKyAgaWYgKF9fYnVpbHRp bl9jcHVfc3VwcG9ydHMgKCJwY2xtdWwiKSkNCj4gPiA+ICAgICAgew0KPiA+ID4gICAgICAgIGRv X3Rlc3QgKCk7DQo+ID4gPiAgI2lmZGVmIERFQlVHDQo+ID4gPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcnRtLWNoZWNrLmggYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvaTM4Ni9ydG0tY2hlY2suaA0KPiA+ID4gaW5kZXggYmRiNWE2ZGMwYmYuLjQxMjFlNjAy YTdmIDEwMDY0NA0KPiA+ID4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcnRt LWNoZWNrLmgNCj4gPiA+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3J0bS1j aGVjay5oDQo+ID4gPiBAQCAtMSw1ICsxLDQgQEANCj4gPiA+ICAjaW5jbHVkZSA8c3RkbGliLmg+ DQo+ID4gPiAtI2luY2x1ZGUgImNwdWlkLmgiDQo+ID4gPg0KPiA+ID4gIHN0YXRpYyB2b2lkIHJ0 bV90ZXN0ICh2b2lkKTsNCj4gPiA+DQo+ID4gPiBAQCAtMTEsMTMgKzEwLDggQEAgc3RhdGljIHZv aWQgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkgZG9fdGVzdCAodm9pZCkNCj4gPiA+ICBpbnQN Cj4gPiA+ICBtYWluICgpDQo+ID4gPiAgew0KPiA+ID4gLSAgdW5zaWduZWQgaW50IGVheCwgZWJ4 LCBlY3gsIGVkeDsNCj4gPiA+IC0NCj4gPiA+IC0gIGlmICghX19nZXRfY3B1aWRfY291bnQgKDcs IDAsICZlYXgsICZlYngsICZlY3gsICZlZHgpKQ0KPiA+ID4gLSAgICByZXR1cm4gMDsNCj4gPiA+ IC0NCj4gPiA+IC0gIC8qIFJ1biBSVE0gdGVzdCBvbmx5IGlmIGhvc3QgaGFzIFJUTSBzdXBwb3J0 LiAgKi8NCj4gPiA+IC0gIGlmIChlYnggJiBiaXRfUlRNKQ0KPiA+ID4gKyAgLyogQ2hlY2sgY3B1 IHN1cHBvcnQgZm9yIFJUTS4gICovDQo+ID4gPiArICBpZiAoX19idWlsdGluX2NwdV9zdXBwb3J0 cyAoInJ0bSIpKQ0KPiA+ID4gICAgICB7DQo+ID4gPiAgICAgICAgZG9fdGVzdCAoKTsNCj4gPiA+ ICAjaWZkZWYgREVCVUcNCj4gPiA+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvaTM4Ni9zaGEtY2hlY2suaCBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NoYS1j aGVjay5oDQo+ID4gPiBpbmRleCA1YmM1YTU5YWI4MC4uNjFjZTQzMDUzZjkgMTAwNjQ0DQo+ID4g PiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zaGEtY2hlY2suaA0KPiA+ID4g KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc2hhLWNoZWNrLmgNCj4gPiA+IEBA IC0xLDUgKzEsNCBAQA0KPiA+ID4gICNpbmNsdWRlIDxzdGRsaWIuaD4NCj4gPiA+IC0jaW5jbHVk ZSAiY3B1aWQuaCINCj4gPiA+DQo+ID4gPiAgc3RhdGljIHZvaWQgc2hhX3Rlc3QgKHZvaWQpOw0K PiA+ID4NCj4gPiA+IEBAIC0xMywxMyArMTIsOCBAQCBkb190ZXN0ICh2b2lkKQ0KPiA+ID4gIGlu dA0KPiA+ID4gIG1haW4gKCkNCj4gPiA+ICB7DQo+ID4gPiAtICB1bnNpZ25lZCBpbnQgZWF4LCBl YngsIGVjeCwgZWR4Ow0KPiA+ID4gLQ0KPiA+ID4gLSAgaWYgKCFfX2dldF9jcHVpZF9jb3VudCAo NywgMCwgJmVheCwgJmVieCwgJmVjeCwgJmVkeCkpDQo+ID4gPiAtICAgIHJldHVybiAwOw0KPiA+ ID4gLQ0KPiA+ID4gLSAgLyogUnVuIFNIQSB0ZXN0IG9ubHkgaWYgaG9zdCBoYXMgU0hBIHN1cHBv cnQuICAqLw0KPiA+ID4gLSAgaWYgKGVieCAmIGJpdF9TSEEpDQo+ID4gPiArICAvKiBDaGVjayBj cHUgc3VwcG9ydCBmb3IgU0hBLiAgKi8NCj4gPiA+ICsgIGlmIChfX2J1aWx0aW5fY3B1X3N1cHBv cnRzICgic2hhIikpDQo+ID4gPiAgICAgIHsNCj4gPiA+ICAgICAgICBkb190ZXN0ICgpOw0KPiA+ ID4gICNpZmRlZiBERUJVRw0KPiA+ID4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9pMzg2L3NzZS1jaGVjay5oIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3Nl LWNoZWNrLmgNCj4gPiA+IGluZGV4IDExYjcxYmMzZTk3Li41OGJjODhjNTU5OCAxMDA2NDQNCj4g PiA+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZS1jaGVjay5oDQo+ID4g PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2UtY2hlY2suaA0KPiA+ID4g QEAgLTEsNyArMSw1IEBADQo+ID4gPiAgI2luY2x1ZGUgPHN0ZGxpYi5oPg0KPiA+ID4gICNpbmNs dWRlICJtMTI4LWNoZWNrLmgiDQo+ID4gPiAtI2luY2x1ZGUgImNwdWlkLmgiDQo+ID4gPiAtI2lu Y2x1ZGUgInNzZS1vcy1zdXBwb3J0LmgiDQo+ID4gPg0KPiA+ID4gIHN0YXRpYyB2b2lkIHNzZV90 ZXN0ICh2b2lkKTsNCj4gPiA+DQo+ID4gPiBAQCAtMTUsMTMgKzEzLDggQEAgZG9fdGVzdCAodm9p ZCkNCj4gPiA+ICBpbnQNCj4gPiA+ICBtYWluICgpDQo+ID4gPiAgew0KPiA+ID4gLSAgdW5zaWdu ZWQgaW50IGVheCwgZWJ4LCBlY3gsIGVkeDsNCj4gPiA+IC0NCj4gPiA+IC0gIGlmICghX19nZXRf Y3B1aWQgKDEsICZlYXgsICZlYngsICZlY3gsICZlZHgpKQ0KPiA+ID4gLSAgICByZXR1cm4gMDsN Cj4gPiA+IC0NCj4gPiA+IC0gIC8qIFJ1biBTU0UgdGVzdCBvbmx5IGlmIGhvc3QgaGFzIFNTRSBz dXBwb3J0LiAgKi8NCj4gPiA+IC0gIGlmICgoZWR4ICYgYml0X1NTRSkgJiYgc3NlX29zX3N1cHBv cnQgKCkpDQo+ID4gPiArICAvKiBDaGVjayBjcHUgc3VwcG9ydCBmb3IgU1NFLiAgKi8NCj4gPiA+ ICsgIGlmIChfX2J1aWx0aW5fY3B1X3N1cHBvcnRzICgic3NlIikpDQo+ID4gPiAgICAgIGRvX3Rl c3QgKCk7DQo+ID4gPg0KPiA+ID4gICAgcmV0dXJuIDA7DQo+ID4gPiBkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlMi1jaGVjay5oIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2kzODYvc3NlMi1jaGVjay5oDQo+ID4gPiBpbmRleCBmZDRhNmNlMWRiZi4uNDk3 NmEyNzAyMmQgMTAwNjQ0DQo+ID4gPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4 Ni9zc2UyLWNoZWNrLmgNCj4gPiA+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2 L3NzZTItY2hlY2suaA0KPiA+ID4gQEAgLTEsNyArMSw1IEBADQo+ID4gPiAgI2luY2x1ZGUgPHN0 ZGxpYi5oPg0KPiA+ID4gLSNpbmNsdWRlICJjcHVpZC5oIg0KPiA+ID4gICNpbmNsdWRlICJtMTI4 LWNoZWNrLmgiDQo+ID4gPiAtI2luY2x1ZGUgInNzZS1vcy1zdXBwb3J0LmgiDQo+ID4gPg0KPiA+ ID4gIHN0YXRpYyB2b2lkIHNzZTJfdGVzdCAodm9pZCk7DQo+ID4gPg0KPiA+ID4gQEAgLTE1LDEz ICsxMyw4IEBAIGRvX3Rlc3QgKHZvaWQpDQo+ID4gPiAgaW50DQo+ID4gPiAgbWFpbiAoKQ0KPiA+ ID4gIHsNCj4gPiA+IC0gIHVuc2lnbmVkIGludCBlYXgsIGVieCwgZWN4LCBlZHg7DQo+ID4gPiAt DQo+ID4gPiAtICBpZiAoIV9fZ2V0X2NwdWlkICgxLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KSkN Cj4gPiA+IC0gICAgcmV0dXJuIDA7DQo+ID4gPiAtDQo+ID4gPiAtICAvKiBSdW4gU1NFMiB0ZXN0 IG9ubHkgaWYgaG9zdCBoYXMgU1NFMiBzdXBwb3J0LiAgKi8NCj4gPiA+IC0gIGlmICgoZWR4ICYg Yml0X1NTRTIpICYmIHNzZV9vc19zdXBwb3J0ICgpKQ0KPiA+ID4gKyAgLyogQ2hlY2sgY3B1IHN1 cHBvcnQgZm9yIFNTRTIuICAqLw0KPiA+ID4gKyAgaWYgKF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMg KCJzc2UyIikpDQo+ID4gPiAgICAgIGRvX3Rlc3QgKCk7DQo+ID4gPg0KPiA+ID4gICAgcmV0dXJu IDA7DQo+ID4gPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3Nl My1jaGVjay5oIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlMy1jaGVjay5oDQo+ ID4gPiBpbmRleCA1YTBhMGIxYTAyZS4uM2M1ODM2MWU5MjUgMTAwNjQ0DQo+ID4gPiAtLS0gYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2UzLWNoZWNrLmgNCj4gPiA+ICsrKyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZTMtY2hlY2suaA0KPiA+ID4gQEAgLTEsNyAr MSw1IEBADQo+ID4gPiAgI2luY2x1ZGUgPHN0ZGlvLmg+DQo+ID4gPiAgI2luY2x1ZGUgPHN0ZGxp Yi5oPg0KPiA+ID4gLSNpbmNsdWRlICJjcHVpZC5oIg0KPiA+ID4gLSNpbmNsdWRlICJzc2Utb3Mt c3VwcG9ydC5oIg0KPiA+ID4NCj4gPiA+ICBzdGF0aWMgdm9pZCBzc2UzX3Rlc3QgKHZvaWQpOw0K PiA+ID4NCj4gPiA+IEBAIC0xNSwxMyArMTMsOCBAQCBkb190ZXN0ICh2b2lkKQ0KPiA+ID4gIGlu dA0KPiA+ID4gIG1haW4gKCkNCj4gPiA+ICB7DQo+ID4gPiAtICB1bnNpZ25lZCBpbnQgZWF4LCBl YngsIGVjeCwgZWR4Ow0KPiA+ID4gLQ0KPiA+ID4gLSAgaWYgKCFfX2dldF9jcHVpZCAoMSwgJmVh eCwgJmVieCwgJmVjeCwgJmVkeCkpDQo+ID4gPiAtICAgIHJldHVybiAwOw0KPiA+ID4gLQ0KPiA+ ID4gLSAgLyogUnVuIFNTRTMgdGVzdCBvbmx5IGlmIGhvc3QgaGFzIFNTRTMgc3VwcG9ydC4gICov DQo+ID4gPiAtICBpZiAoKGVjeCAmIGJpdF9TU0UzKSAmJiBzc2Vfb3Nfc3VwcG9ydCAoKSkNCj4g PiA+ICsgIC8qIENoZWNrIGNwdSBzdXBwb3J0IGZvciBTU0UzLiAgKi8NCj4gPiA+ICsgIGlmIChf X2J1aWx0aW5fY3B1X3N1cHBvcnRzICgic3NlMyIpKQ0KPiA+ID4gICAgICBkb190ZXN0ICgpOw0K PiA+ID4NCj4gPiA+ICAgIHJldHVybiAwOw0KPiA+ID4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9pMzg2L3NzZTRfMS1jaGVjay5oIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvc3NlNF8xLWNoZWNrLmgNCj4gPiA+IGluZGV4IDc4OGY2NWQ2MWNiLi42MWQwZDAy ODRhOCAxMDA2NDQNCj4gPiA+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3Nz ZTRfMS1jaGVjay5oDQo+ID4gPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9z c2U0XzEtY2hlY2suaA0KPiA+ID4gQEAgLTEsNiArMSw0IEBADQo+ID4gPiAgI2luY2x1ZGUgPHN0 ZGxpYi5oPg0KPiA+ID4gLQ0KPiA+ID4gLSNpbmNsdWRlICJjcHVpZC5oIg0KPiA+ID4gICNpbmNs dWRlICJtMTI4LWNoZWNrLmgiDQo+ID4gPg0KPiA+ID4gIHN0YXRpYyB2b2lkIHNzZTRfMV90ZXN0 ICh2b2lkKTsNCj4gPiA+IEBAIC0xNywxMyArMTUsOCBAQCBkb190ZXN0ICh2b2lkKQ0KPiA+ID4g IGludA0KPiA+ID4gIG1haW4gKCkNCj4gPiA+ICB7DQo+ID4gPiAtICB1bnNpZ25lZCBpbnQgZWF4 LCBlYngsIGVjeCwgZWR4Ow0KPiA+ID4gLQ0KPiA+ID4gLSAgaWYgKCFfX2dldF9jcHVpZCAoMSwg JmVheCwgJmVieCwgJmVjeCwgJmVkeCkpDQo+ID4gPiAtICAgIHJldHVybiAwOw0KPiA+ID4gLQ0K PiA+ID4gLSAgLyogUnVuIFNTRTQuMSB0ZXN0IG9ubHkgaWYgaG9zdCBoYXMgU1NFNC4xIHN1cHBv cnQuICAqLw0KPiA+ID4gLSAgaWYgKGVjeCAmIGJpdF9TU0U0XzEpDQo+ID4gPiArICAvKiBDaGVj ayBjcHUgc3VwcG9ydCBmb3IgU1NFNC4xLiAgKi8NCj4gPiA+ICsgIGlmIChfX2J1aWx0aW5fY3B1 X3N1cHBvcnRzICgic3NlNC4xIikpDQo+ID4gPiAgICAgIGRvX3Rlc3QgKCk7DQo+ID4gPg0KPiA+ ID4gICAgcmV0dXJuIDA7DQo+ID4gPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvc3NlNF8yLWNoZWNrLmggYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9z c2U0XzItY2hlY2suaA0KPiA+ID4gaW5kZXggYzMzY2QxYjQ5ODYuLjZjOTIxYWM1MmM3IDEwMDY0 NA0KPiA+ID4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlNF8yLWNoZWNr LmgNCj4gPiA+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZTRfMi1jaGVj ay5oDQo+ID4gPiBAQCAtMSw4ICsxLDYgQEANCj4gPiA+ICAjaW5jbHVkZSA8c3RkaW8uaD4NCj4g PiA+ICAjaW5jbHVkZSA8c3RkbGliLmg+DQo+ID4gPiAtDQo+ID4gPiAgI2luY2x1ZGUgIm0xMjgt Y2hlY2suaCINCj4gPiA+IC0jaW5jbHVkZSAiY3B1aWQuaCINCj4gPiA+DQo+ID4gPiAgc3RhdGlj IHZvaWQgc3NlNF8yX3Rlc3QgKHZvaWQpOw0KPiA+ID4NCj4gPiA+IEBAIC0xNiwxMyArMTQsOCBA QCBkb190ZXN0ICh2b2lkKQ0KPiA+ID4gIGludA0KPiA+ID4gIG1haW4gKCkNCj4gPiA+ICB7DQo+ ID4gPiAtICB1bnNpZ25lZCBpbnQgZWF4LCBlYngsIGVjeCwgZWR4Ow0KPiA+ID4gLQ0KPiA+ID4g LSAgaWYgKCFfX2dldF9jcHVpZCAoMSwgJmVheCwgJmVieCwgJmVjeCwgJmVkeCkpDQo+ID4gPiAt ICAgIHJldHVybiAwOw0KPiA+ID4gLQ0KPiA+ID4gLSAgLyogUnVuIFNTRTQuMiB0ZXN0IG9ubHkg aWYgaG9zdCBoYXMgU1NFNC4yIHN1cHBvcnQuICAqLw0KPiA+ID4gLSAgaWYgKGVjeCAmIGJpdF9T U0U0XzIpDQo+ID4gPiArICAvKiBDaGVjayBjcHUgc3VwcG9ydCBmb3IgU1NFNC4yLiAgKi8NCj4g PiA+ICsgIGlmIChfX2J1aWx0aW5fY3B1X3N1cHBvcnRzICgic3NlNC4yIikpDQo+ID4gPiAgICAg IGRvX3Rlc3QgKCk7DQo+ID4gPg0KPiA+ID4gICAgcmV0dXJuIDA7DQo+ID4gPiBkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlNGEtY2hlY2suaCBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZTRhLWNoZWNrLmgNCj4gPiA+IGluZGV4IGQ0M2I0YjIy MmIxLi5hZTcwZmYwYTI2OCAxMDA2NDQNCj4gPiA+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9pMzg2L3NzZTRhLWNoZWNrLmgNCj4gPiA+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9pMzg2L3NzZTRhLWNoZWNrLmgNCj4gPiA+IEBAIC0xLDggKzEsNiBAQA0KPiA+ID4gICNp bmNsdWRlIDxzdGRpby5oPg0KPiA+ID4gICNpbmNsdWRlIDxzdGRsaWIuaD4NCj4gPiA+DQo+ID4g PiAtI2luY2x1ZGUgImNwdWlkLmgiDQo+ID4gPiAtDQo+ID4gPiAgc3RhdGljIHZvaWQgc3NlNGFf dGVzdCAodm9pZCk7DQo+ID4gPg0KPiA+ID4gIHN0YXRpYyB2b2lkDQo+ID4gPiBAQCAtMTUsMTMg KzEzLDggQEAgZG9fdGVzdCAodm9pZCkNCj4gPiA+ICBpbnQNCj4gPiA+ICBtYWluICgpDQo+ID4g PiAgew0KPiA+ID4gLSAgdW5zaWduZWQgaW50IGVheCwgZWJ4LCBlY3gsIGVkeDsNCj4gPiA+IC0N Cj4gPiA+IC0gIGlmICghX19nZXRfY3B1aWQgKDB4ODAwMDAwMDEsICZlYXgsICZlYngsICZlY3gs ICZlZHgpKQ0KPiA+ID4gLSAgICByZXR1cm4gMDsNCj4gPiA+IC0NCj4gPiA+IC0gIC8qIFJ1biBT U0U0YSB0ZXN0IG9ubHkgaWYgaG9zdCBoYXMgU1NFNGEgc3VwcG9ydC4gICovDQo+ID4gPiAtICBp ZiAoZWN4ICYgYml0X1NTRTRhKQ0KPiA+ID4gKyAgLyogQ2hlY2sgY3B1IHN1cHBvcnQgZm9yIFNT RTRhLiAgKi8NCj4gPiA+ICsgIGlmIChfX2J1aWx0aW5fY3B1X3N1cHBvcnRzICgic3NlNGEiKSkN Cj4gPiA+ICAgICAgZG9fdGVzdCAoKTsNCj4gPiA+DQo+ID4gPiAgICByZXR1cm4gMDsNCj4gPiA+ IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc3NlMy1jaGVjay5o IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NzZTMtY2hlY2suaA0KPiA+ID4gaW5k ZXggM2NhNzkzMzNjN2YuLjNlODM0ODExZjJkIDEwMDY0NA0KPiA+ID4gLS0tIGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NzZTMtY2hlY2suaA0KPiA+ID4gKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NzZTMtY2hlY2suaA0KPiA+ID4gQEAgLTEsOCArMSw2IEBA DQo+ID4gPiAgI2luY2x1ZGUgPHN0ZGlvLmg+DQo+ID4gPiAgI2luY2x1ZGUgPHN0ZGxpYi5oPg0K PiA+ID4NCj4gPiA+IC0jaW5jbHVkZSAiY3B1aWQuaCINCj4gPiA+IC0NCj4gPiA+ICBzdGF0aWMg dm9pZCBzc3NlM190ZXN0ICh2b2lkKTsNCj4gPiA+DQo+ID4gPiAgc3RhdGljIHZvaWQNCj4gPiA+ IEBAIC0xNSwxMyArMTMsOCBAQCBkb190ZXN0ICh2b2lkKQ0KPiA+ID4gIGludA0KPiA+ID4gIG1h aW4gKCkNCj4gPiA+ICB7DQo+ID4gPiAtICB1bnNpZ25lZCBpbnQgZWF4LCBlYngsIGVjeCwgZWR4 Ow0KPiA+ID4gLQ0KPiA+ID4gLSAgaWYgKCFfX2dldF9jcHVpZCAoMSwgJmVheCwgJmVieCwgJmVj eCwgJmVkeCkpDQo+ID4gPiAtICAgIHJldHVybiAwOw0KPiA+ID4gLQ0KPiA+ID4gLSAgLyogUnVu IFNTU0UzIHRlc3Qgb25seSBpZiBob3N0IGhhcyBTU1NFMyBzdXBwb3J0LiAgKi8NCj4gPiA+IC0g IGlmIChlY3ggJiBiaXRfU1NTRTMpDQo+ID4gPiArICAvKiBDaGVjayBjcHUgc3VwcG9ydCBmb3Ig U1NTRTMuICAqLw0KPiA+ID4gKyAgaWYgKF9fYnVpbHRpbl9jcHVfc3VwcG9ydHMgKCJzc3NlMyIp KQ0KPiA+ID4gICAgICBkb190ZXN0ICgpOw0KPiA+ID4NCj4gPiA+ICAgIHJldHVybiAwOw0KPiA+ ID4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3hvcC1jaGVjay5o IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYveG9wLWNoZWNrLmgNCj4gPiA+IGluZGV4 IDM5NWFiZTg3NjZkLi5lMWVmMTI3MzExMSAxMDA2NDQNCj4gPiA+IC0tLSBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9pMzg2L3hvcC1jaGVjay5oDQo+ID4gPiArKysgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvaTM4Ni94b3AtY2hlY2suaA0KPiA+ID4gQEAgLTEsNiArMSw0IEBADQo+ID4g PiAgI2luY2x1ZGUgPHN0ZGxpYi5oPg0KPiA+ID4gLQ0KPiA+ID4gLSNpbmNsdWRlICJjcHVpZC5o Ig0KPiA+ID4gICNpbmNsdWRlICJtMjU2LWNoZWNrLmgiDQo+ID4gPg0KPiA+ID4gIHN0YXRpYyB2 b2lkIHhvcF90ZXN0ICh2b2lkKTsNCj4gPiA+IEBAIC0xNSwxMyArMTMsOCBAQCBkb190ZXN0ICh2 b2lkKQ0KPiA+ID4gIGludA0KPiA+ID4gIG1haW4gKCkNCj4gPiA+ICB7DQo+ID4gPiAtICB1bnNp Z25lZCBpbnQgZWF4LCBlYngsIGVjeCwgZWR4Ow0KPiA+ID4gLQ0KPiA+ID4gLSAgaWYgKCFfX2dl dF9jcHVpZCAoMHg4MDAwMDAwMSwgJmVheCwgJmVieCwgJmVjeCwgJmVkeCkpDQo+ID4gPiAtICAg IHJldHVybiAwOw0KPiA+ID4gLQ0KPiA+ID4gLSAgLyogUnVuIFhPUCB0ZXN0IG9ubHkgaWYgaG9z dCBoYXMgWE9QIHN1cHBvcnQuICAqLw0KPiA+ID4gLSAgaWYgKGVjeCAmIGJpdF9YT1ApDQo+ID4g PiArICAvKiBDaGVjayBjcHUgc3VwcG9ydCBmb3IgWE9QLiAgKi8NCj4gPiA+ICsgIGlmIChfX2J1 aWx0aW5fY3B1X3N1cHBvcnRzICgieG9wIikpDQo+ID4gPiAgICAgIGRvX3Rlc3QgKCk7DQo+ID4g Pg0KPiA+ID4gICAgcmV0dXJuIDA7DQo+ID4gPiAtLQ0KPiA+ID4gMi4xOC4xDQo+ID4gPg0K