From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.115]) by sourceware.org (Postfix) with ESMTPS id 75A283858D20 for ; Thu, 31 Aug 2023 13:30:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 75A283858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1693488605; x=1725024605; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=/kQVUo1gVCpKrMBwe3dGBDAVuHzRz9kKR4p+3pjtu70=; b=VSCYHFtUdDMMoamAQNuF/H1IqgwB4Z8+CRMKk0hVvBN9uTNZTVTK3ham I/vKM5PShiOCjfAlBvhns1Ej6mHcrhehvy7fQIzFe3gT4nnQvOBSH94mM UVueSJ/sF0GHOHzQ+KU+zCvemm3wregxiVJS0hJEQ2ak8ghu8rFW9aKDK q3PJLVGmNuxbIU4bfC9l5xfqAextah8COrUGme79JJiIRG2nebPOOOFdj bpfcZTfAd3p3JwEpr1IpgV48tqFwHoJRD9mYt0/Ov61TLjsws1cZUXYxf FRLd6+Mlo/HQ7XNcbdrWwT7w6piG2FjDFKMFs02i9v5g5gu5ckVLlP0hL Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10818"; a="375885900" X-IronPort-AV: E=Sophos;i="6.02,216,1688454000"; d="scan'208";a="375885900" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Aug 2023 06:29:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10818"; a="733086473" X-IronPort-AV: E=Sophos;i="6.02,216,1688454000"; d="scan'208";a="733086473" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga007.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 31 Aug 2023 06:29:52 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) 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.27; Thu, 31 Aug 2023 06:29:52 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Thu, 31 Aug 2023 06:29:51 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27 via Frontend Transport; Thu, 31 Aug 2023 06:29:51 -0700 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (104.47.51.45) 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.27; Thu, 31 Aug 2023 06:29:51 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TCG2uKmuMyWwV2/V6i9IYjxPlQbt5j/G8otf5tmR6gypg4Yd6ontWb5FHx02Lc+BEW9cXpVG8/nHeNIMOrXTT2RHF3k3zcVv3a2Np5nezOut0MMGA/fkS9OSfm0I/5h5Z+9owDhTv/W1jrTqJbx0SQnbo5+JvmfrqBETwXWvbOgtar6qh35opCepZxBduf+JUrY+K/Q1HCB2f89XUxLIRhIpJVtVKXWrCb6S4EPj+6syhDeGWn8MeeDa5IvGQLuiPjwVdFhnlfAY9O2GiBVqkTAyuR52bpaLQoXBbJoiB1x//vftQhWaYilJL4jSdj9JStrochgHBmCU++j0Na9jWw== 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=/kQVUo1gVCpKrMBwe3dGBDAVuHzRz9kKR4p+3pjtu70=; b=IiBxKF7WvikgknpYk5+A1hNqbV4Y/sssu1ze0EqF4nSwRR7nKKXyM7m5LWKYzMGhckbThUVheCf6YoyozuvyhjJG5H4axK8UZaO1zl+Fku82YSnp/+pvxUwwPYp59bT5S6l0YdqdaHTGbE/dU6NTwu5B3BrQtr3OhjEnypGSSgTndMzk6Z0+D4K78mklH9+IKDHtdPuhv5RrqJFPp4lRM1fj+4aNwI5XY2ysn7y8FZTkolwkoWfxzvzPO+WuSR+tksMwSN2IPXrX1nZIdl5wP5HKL6dDCj0GY3WaaBUaeyXCXuj0Jv/XyaMyleCcV/2fB1LqRZnWf29Xe5EetLl1NQ== 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 MW5PR11MB5908.namprd11.prod.outlook.com (2603:10b6:303:194::10) by MW3PR11MB4683.namprd11.prod.outlook.com (2603:10b6:303:5c::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.21; Thu, 31 Aug 2023 13:29:47 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::6ff9:5a3d:4981:3476]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::6ff9:5a3d:4981:3476%5]) with mapi id 15.20.6699.027; Thu, 31 Aug 2023 13:29:47 +0000 From: "Li, Pan2" To: Kito Cheng CC: "gcc-patches@gcc.gnu.org" , "juzhe.zhong@rivai.ai" , "Wang, Yanzhang" Subject: RE: [PATCH v1] RISC-V: Support rounding mode for VFMADD/VFMACC autovec Thread-Topic: [PATCH v1] RISC-V: Support rounding mode for VFMADD/VFMACC autovec Thread-Index: AQHZ1kZZU/KcQk/Tck6G7KPlWmdKVLAEbEkAgAAFkWA= Date: Thu, 31 Aug 2023 13:29:47 +0000 Message-ID: References: <20230824044907.4078472-1-pan2.li@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW5PR11MB5908:EE_|MW3PR11MB4683:EE_ x-ms-office365-filtering-correlation-id: 87dbed88-5b8e-4432-e618-08dbaa265872 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: tZpgEFPDbSNPu/eQaCdZl2f1TBQ1NuLHCrsUDSwj9pbnS3e56U00ulC8J4FKGPEPvT65Eb3uZmp81sbaU9Yn6tpRG3DrPS5buFqSGNOza3OFFQ8Jf43ID5KHUdrOWbc59yjDZVC6dKft3OUGsI+UXHEthqAXoZAfXmXiPeohn2nojCnhb0R9gQpnTIV9RUqjfCgkZL80zCNSUmE2z4a2ax/xo6xw6pK+6BO8FaZFcZ/Vwk66lJH9fqyBX/UplE9oMq14aIdvppu8BbD36tVmZpTR90j/rUTIaXmbzisYr5x3NNpi+bscsK0NsBSBVw8gO/H4BiqipYTZL5vY3EvM7bX2WHvqxLQO637YXADnTert6BS5PuZUs+9NGQZ3B8xTJWLek0/FZDC2+bk2Pm5Z+0qxcfPthcXUrofkcSMeR7M2ssgIEhLbUr1uCfKDLd136xSO6MFDTaJeLANZ9hmeNYxVR+6kF3/echakEMqa41JWDw/zDr3AnM1bq4cwWWxKzN4vR8LolCU/F7vp0JPh3lV7/QsnHaNoyeJoh+pMvFJzvUMifTyqKX0PQPnTXZ3e+dwuARrxp7B2biM/UzJx24BGVlEFMeufWZkdgT5b4L4= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW5PR11MB5908.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(366004)(346002)(376002)(396003)(136003)(1800799009)(186009)(451199024)(7696005)(6506007)(71200400001)(9686003)(53546011)(478600001)(83380400001)(107886003)(2906002)(26005)(6916009)(66476007)(64756008)(41300700001)(54906003)(66556008)(316002)(66946007)(52536014)(76116006)(5660300002)(66446008)(8676002)(8936002)(4326008)(82960400001)(33656002)(55016003)(86362001)(38100700002)(38070700005)(122000001)(84970400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MVQ5RDZweGtCMkZyME9WbEhMQmdNM3NVVExSRWpHSjNFRDhENUVCd2E5SURo?= =?utf-8?B?SVpjWVN2MmpWM1ZqQjBjLzJRTHljNkJtV0EvOGFYdFpwUHRXSlZrcGVEM3hY?= =?utf-8?B?RVBWeXRSbFVkL0Y5U2JrTW9YV2xGSkpLTy9mVDRaa1BDT2tuMEp0TFpUaklI?= =?utf-8?B?K1RSMFc3OWZyc3htM0ordHoyYXJjRk1MelFHeXBvYld0WEpsdzQvNERqTWxO?= =?utf-8?B?YzIzUUpMY0JNUEpNbjdJSEN3dHJ6bWE4anhUNUcrdkJGM3p4ZXN1LzJCcFBo?= =?utf-8?B?RVRVUlFMMktISEFzbTlMT21EUU5EQkdNYkE0U3dISFYwNXpEVWo1R1E4dlhF?= =?utf-8?B?Nk5QMm5EcHU5L20wYUFDSStXbVJjR2l1R3NoMVR5dU1YdlQ2djh6ZnBBMWVy?= =?utf-8?B?cHlHTDR2UDdTbXJJTDMvekZTRXowcHQrd0RHQmpiR1Y2ZmpENWYrRXcvcDh5?= =?utf-8?B?UDVXQy9DSnd2NUNiMGdZTHBOZFl5WnhJbnQvOUswYTBnN3NOS2toZVpHOTl1?= =?utf-8?B?TGpzNTVYaGRITE95OUFKNXU1WS8zMjlIdG4vR2k2VzNWMVMrN1BwdzNhc2sr?= =?utf-8?B?L2FGbFpuaWtndXVnM2RMOFBudE81V2ZLK0sxSFF1SnozSjlZbnZhNDg1cFJW?= =?utf-8?B?ODhWVDlRRWhtSy9VQmQ4UzBybjNkazhiWks5VEViYzdsTDliWTJOT3RiTk1Z?= =?utf-8?B?N1ZFWlJ1V0ZMVyswY3lYQVRqTjh0V3g2aDkwUm5rN0k2Z1V6d082R1pYT25q?= =?utf-8?B?bmZncW9JdllQekV0Y1h1VXVGSnhpMEx6bm95YW1lVEtlU3dpd3hKS1k2ZGZs?= =?utf-8?B?Q2svMTNjQ29wRi80S2VJMHhPcG5uYTlxVnBTRnFnOWlTcUhGZ0RvUTRJN1ZJ?= =?utf-8?B?ZkNTRHJ4L0xpekJuZG5Va3RucUE3OE5CN08veEUrRnFVZEFMRHRiSHZPS3lp?= =?utf-8?B?R3dJZUdvWnNQcnZDZ1Z6empyZ0JRN2xVckFRV21HZ1ZDSkErMWp5c3krT094?= =?utf-8?B?M3FMVzV1aUZJd1l6c1NVQkNncnJiY3NVUEdKdWZ6MWhmQlpINVg2S21DRno1?= =?utf-8?B?ZHh2eVRiMFRZbHJIQndabnpUdlBYM2VYRERPZEdvYTYvZTlQcEFvTXp4MkVI?= =?utf-8?B?N1A5eUFURC9wMkZYamRVV2hVa3N3UW4rVU9XSXZlMi9FT3EwbTROLzh1K0xL?= =?utf-8?B?d2lhWm5kTTlZYWllT2dPeDlBSW1HZVdzY2dSRjNGaGtlaXNCYjk0c0lzNGxx?= =?utf-8?B?RnBJclJRMStlZU9BUjhkelgvSExwdmxQdEVHelRTZTBNYlVzekxKWWJJWS9Q?= =?utf-8?B?blpldWtwSHZROForTzlHMThkWUdKcHVDcmhmWkE5enc4OUFTT09iUmovY0dt?= =?utf-8?B?dTFQYXZYWHJOWU0zRjhPN1RuckxCNm5tWHNxM0x6bGdodktmL1FhOXorNmlS?= =?utf-8?B?ZEhKYXRIY0R1d2lWQVNkY1dsbkF6Rmhqa1RDOVZHTnhYVWNjSk1QbU93eEhW?= =?utf-8?B?OWpYUWRYRTR0NStCcUtDRVNha09XcDlPbzBYYXBCNlpVV2d0NnFZSzhYbXRU?= =?utf-8?B?ekpOQ21WeVMzbU15eUFYZDBRbHAzZDBMRVBBRkt3SnJJWE5mWnFWMVpmWGdX?= =?utf-8?B?bnJ2ajlFbjR5T1JBZnpReFNJSTVNdi9EdXJVRnVOVXdpUHVEc1JlNnJkUUtQ?= =?utf-8?B?TzFsTVBObXBFb2NzZHFKR1YwWHRGQi9zemtMUDdsc1ZIZW0wK2ZoMkhYdFZT?= =?utf-8?B?NUoyT0lSU29Td21MVFhiN1BOMTVkZS8rMzNOclB6blU2ZnlHajc0STF2M3Rz?= =?utf-8?B?ZncvWjMyQTNsK0tKZjJlKzBpcndibnAwZVhzQjdZQkhNRlNGMG8vUk1JblVp?= =?utf-8?B?Q1VLK3VzVnRUVkNHOGhGOFZRZmhoWHZtMUJ6YVprdTJLTmtOdHlvS1NLYzc3?= =?utf-8?B?bGpmRFYxVHRPZWl2L2xmb1A2QklLeTVzR2JqSjBJNXFUdU90N1BZOGdWa1ph?= =?utf-8?B?VzJjeWZUdWJRaGd0dHN5bW1rMVh2akI4OENacStVdFNNUnNNVGFMbU8rbTM5?= =?utf-8?B?cy96ZERVbTJtYXNuWUNrMHViMmMvZDdCZjREeFpnUTVtSGNrUzIvdFQ0RzhN?= =?utf-8?Q?Ivs4=3D?= 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: MW5PR11MB5908.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 87dbed88-5b8e-4432-e618-08dbaa265872 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Aug 2023 13:29:47.1897 (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: aa03sMXYQ3BBA4y4vazVjlpy9V9Nvblk9xjzVn7H2ZxclpVs/pJHxo6vgpfl013YMyLtnuT7eIWDz1OTSFdcMg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4683 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_ASCII_DIVIDERS,KAM_SHORT,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Q29tbWl0dGVkLCB0aGFua3MgS2l0by4NCg0KUGFuDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQpGcm9tOiBLaXRvIENoZW5nIDxraXRvLmNoZW5nQGdtYWlsLmNvbT4gDQpTZW50OiBUaHVy c2RheSwgQXVndXN0IDMxLCAyMDIzIDk6MTAgUE0NClRvOiBMaSwgUGFuMiA8cGFuMi5saUBpbnRl bC5jb20+DQpDYzogZ2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc7IGp1emhlLnpob25nQHJpdmFpLmFp OyBXYW5nLCBZYW56aGFuZyA8eWFuemhhbmcud2FuZ0BpbnRlbC5jb20+DQpTdWJqZWN0OiBSZTog W1BBVENIIHYxXSBSSVNDLVY6IFN1cHBvcnQgcm91bmRpbmcgbW9kZSBmb3IgVkZNQUREL1ZGTUFD QyBhdXRvdmVjDQoNCkxHVE0NCg0KT24gVGh1LCBBdWcgMjQsIDIwMjMgYXQgMTI6NDnigK9QTSBQ YW4gTGkgdmlhIEdjYy1wYXRjaGVzDQo8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+IHdyb3RlOg0K Pg0KPiBGcm9tOiBQYW4gTGkgPHBhbjIubGlAaW50ZWwuY29tPg0KPg0KPiBUaGVyZSB3aWxsIGJl IGEgY2FzZSBsaWtlIGJlbG93IGZvciBpbnRyaW5zaWMgYW5kIGF1dG92ZWMgY29tYmluYXRpb24N Cj4NCj4gdmZhZGQgUlRaICAgPC0gaW50cmluaXNjIHN0YXRpYyByb3VuZGluZw0KPiB2Zm1hZGQg ICAgICA8LSBhdXRvdmVjL2F1dG92ZWMtb3B0DQo+DQo+IFRoZSBhdXRvdmVjIGdlbmVyYXRlZCB2 Zm1hZGQgc2hvdWxkIHRha2UgRFlOIG1vZGUsIGFuZCB0aGUNCj4gZnJtIG11c3QgYmUgcmVzdG9y ZWQgYmVmb3JlIHRoZSB2Zm1hZGQgaW5zbi4gVGhpcyBwYXRjaA0KPiB3b3VsZCBsaWtlIHRvIGZp eCB0aGlzIGlzc3VlIGJ5Og0KPg0KPiAqIEFkZCB0aGUgZnJtIG9wZXJhbmQgdG8gdGhlIHZmbWFk ZC92Zm1hY2MgYXV0b3ZlYy9hdXRvdmVjLW9wdCBwYXR0ZXJuLg0KPiAqIFNldCB0aGUgZnJtX21v ZGUgYXR0ciB0byBEWU4uDQo+DQo+IFRodXMsIHRoZSBmcm0gZmxvdyB3aGVuIGNvbWJpbmUgYXV0 b3ZlYyBhbmQgaW50cmluc2ljIHNob3VsZCBiZS4NCj4NCj4gKy0tLS0tLS0tLS0tLQ0KPiB8IGZy cm0gIGE1DQo+IHwgLi4uDQo+IHwgZnNybWkgNA0KPiB8IHZmYWRkICAgICAgIDwtIGludHJpbnNp YyBzdGF0aWMgcm91bmRpbmcuDQo+IHwgLi4uDQo+IHwgZnNybSAgYTUNCj4gfCB2Zm1hZGQgICAg ICA8LSBhdXRvdmVjL2F1dG92ZWMtb3B0DQo+IHwgLi4uDQo+ICstLS0tLS0tLS0tLS0NCj4NCj4g SG93ZXZlciwgd2UgbGV2ZXJhZ2UgdW5zcGVjIGluc3RlYWQgb2YgdXNlIHRvIGNvbnN1bWUgdGhl IEZSTSByZWdpc3Rlcg0KPiBiZWNhdXNlIHRoZXJlIGFyZSBzb21lIHJlc3RyaWN0aW9ucyBmcm9t IHRoZSBjb21iaW5lIHBhc3MuIFNvbWUgY29kZQ0KPiBwYXRoIG9mIHRyeV9jb21iaW5lIG1heSBy ZXF1aXJlIHRoZSBYVkVDTEVOKHBhdCwgMCkgPT0gMiBmb3IgdGhlDQo+IHJlY29nX2Zvcl9jb21i aW5lLCBhbmQgYWRkIG5ldyB1c2Ugd2lsbCBtYWtlIHRoZSBYVkVDTEVOKHBhdCwgMCkgPT0gMw0K PiBhbmQgcmVzdWx0IGluIHRoZSB2ZndtYWNjIG9wdGltaXphdGlvbiBmYWlsdXJlLiBGb3IgZXhh bXBsZSwgaW4gdGhlDQo+IHRlc3QgIHdpZGVuLWNvbXBsaWNhdGUtNS5jIGFuZCB3aWRlbi04LmMN Cj4NCj4gRmluYWxseSwgdGhlcmUgd2lsbCBiZSBvdGhlciBmbWEgY2FzZXMgYW5kIHRoZXkgd2ls bCBiZSBjb3ZlcmVkIGluDQo+IHRoZSB1bmRlcmx5aW5nIHBhdGNoZXMuDQo+DQo+IFNpZ25lZC1v ZmYtYnk6IFBhbiBMaSA8cGFuMi5saUBpbnRlbC5jb20+DQo+IENvLUF1dGhvcmVkLUJ5OiBKdS1a aGUgWmhvbmcgPGp1emhlLnpob25nQHJpdmFpLmFpPg0KPg0KPiBnY2MvQ2hhbmdlTG9nOg0KPg0K PiAgICAgICAgICogY29uZmlnL3Jpc2N2L2F1dG92ZWMtb3B0Lm1kOiBBZGQgRlJNX1JFR05VTSB0 byB2Zm1hZGQvdmZtYWNjLg0KPiAgICAgICAgICogY29uZmlnL3Jpc2N2L2F1dG92ZWMubWQ6IERp dHRvLg0KPiAgICAgICAgICogY29uZmlnL3Jpc2N2L3ZlY3Rvci1pdGVyYXRvcnMubWQ6IEFkZCBV TlNQRUNfVkZGTUEuDQo+DQo+IGdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOg0KPg0KPiAgICAgICAg ICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0tYXV0b3ZlYy0xLmM6 IE5ldyB0ZXN0Lg0KPiAtLS0NCj4gIGdjYy9jb25maWcvcmlzY3YvYXV0b3ZlYy1vcHQubWQgICAg ICAgICAgICAgICB8IDMyICsrKystLS0NCj4gIGdjYy9jb25maWcvcmlzY3YvYXV0b3ZlYy5tZCAg ICAgICAgICAgICAgICAgICB8IDI2ICsrKy0tLQ0KPiAgZ2NjL2NvbmZpZy9yaXNjdi92ZWN0b3It aXRlcmF0b3JzLm1kICAgICAgICAgIHwgIDIgKw0KPiAgLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50 LWZybS1hdXRvdmVjLTEuYyAgICAgIHwgODggKysrKysrKysrKysrKysrKysrKw0KPiAgNCBmaWxl cyBjaGFuZ2VkLCAxMjUgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pDQo+ICBjcmVhdGUg bW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWZybS1hdXRvdmVjLTEuYw0KPg0KPiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNj di9hdXRvdmVjLW9wdC5tZCBiL2djYy9jb25maWcvcmlzY3YvYXV0b3ZlYy1vcHQubWQNCj4gaW5k ZXggOTliNjA5YTk5ZDkuLjRiMDdlODBhZDk1IDEwMDY0NA0KPiAtLS0gYS9nY2MvY29uZmlnL3Jp c2N2L2F1dG92ZWMtb3B0Lm1kDQo+ICsrKyBiL2djYy9jb25maWcvcmlzY3YvYXV0b3ZlYy1vcHQu bWQNCj4gQEAgLTQ1OSwxMiArNDU5LDE0IEBAIChkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipwcmVk X3NpbmdsZV93aWRlbl9tdWw8bW9kZT4iDQo+ICA7OyB2ZWN0X18xMy4xODJfMzMgPSAuRk1BICh2 ZWN0X18xMS4xODBfMzUsIHZlY3RfXzguMTc2XzQwLCB2ZWN0X180LjE3Ml80NSk7DQo+ICAoZGVm aW5lX2luc25fYW5kX3NwbGl0ICIqZG91YmxlX3dpZGVuX2ZtYTxtb2RlPiINCj4gICAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6VldFWFRGIDAgInJlZ2lzdGVyX29wZXJhbmQiKQ0KPiAtICAgICAgIChm bWE6VldFWFRGDQo+IC0gICAgICAgICAoZmxvYXRfZXh0ZW5kOlZXRVhURg0KPiAtICAgICAgICAg ICAobWF0Y2hfb3BlcmFuZDo8Vl9ET1VCTEVfVFJVTkM+IDIgInJlZ2lzdGVyX29wZXJhbmQiKSkN Cj4gLSAgICAgICAgIChmbG9hdF9leHRlbmQ6VldFWFRGDQo+IC0gICAgICAgICAgIChtYXRjaF9v cGVyYW5kOjxWX0RPVUJMRV9UUlVOQz4gMyAicmVnaXN0ZXJfb3BlcmFuZCIpKQ0KPiAtICAgICAg ICAgKG1hdGNoX29wZXJhbmQ6VldFWFRGIDEgInJlZ2lzdGVyX29wZXJhbmQiKSkpXQ0KPiArICAg ICAgICh1bnNwZWM6VldFWFRGDQo+ICsgICAgICAgICBbKGZtYTpWV0VYVEYNCj4gKyAgICAgICAg ICAgKGZsb2F0X2V4dGVuZDpWV0VYVEYNCj4gKyAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDo8 Vl9ET1VCTEVfVFJVTkM+IDIgInJlZ2lzdGVyX29wZXJhbmQiKSkNCj4gKyAgICAgICAgICAgKGZs b2F0X2V4dGVuZDpWV0VYVEYNCj4gKyAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDo8Vl9ET1VC TEVfVFJVTkM+IDMgInJlZ2lzdGVyX29wZXJhbmQiKSkNCj4gKyAgICAgICAgICAgKG1hdGNoX29w ZXJhbmQ6VldFWFRGIDEgInJlZ2lzdGVyX29wZXJhbmQiKSkNCj4gKyAgICAgICAgICAocmVnOlNJ IEZSTV9SRUdOVU0pXSBVTlNQRUNfVkZGTUEpKV0NCj4gICAgIlRBUkdFVF9WRUNUT1IgJiYgY2Fu X2NyZWF0ZV9wc2V1ZG9fcCAoKSINCj4gICAgIiMiDQo+ICAgICImJiAxIg0KPiBAQCAtNDc1LDE2 ICs0NzcsMTkgQEAgKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmRvdWJsZV93aWRlbl9mbWE8bW9k ZT4iDQo+ICAgICAgRE9ORTsNCj4gICAgfQ0KPiAgICBbKHNldF9hdHRyICJ0eXBlIiAidmZ3bXVs YWRkIikNCj4gLSAgIChzZXRfYXR0ciAibW9kZSIgIjxWX0RPVUJMRV9UUlVOQz4iKV0pDQo+ICsg ICAoc2V0X2F0dHIgIm1vZGUiICI8Vl9ET1VCTEVfVFJVTkM+IikNCj4gKyAgIChzZXQgKGF0dHIg ImZybV9tb2RlIikgKHN5bWJvbF9yZWYgInJpc2N2X3ZlY3Rvcjo6RlJNX0RZTiIpKV0pDQo+DQo+ ICA7OyBUaGlzIGhlbHBzIHRvIG1hdGNoIGV4dCArIGZtYS4NCj4gIChkZWZpbmVfaW5zbl9hbmRf c3BsaXQgIipzaW5nbGVfd2lkZW5fZm1hPG1vZGU+Ig0KPiAgICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpWV0VYVEYgMCAicmVnaXN0ZXJfb3BlcmFuZCIpDQo+IC0gICAgICAgKGZtYTpWV0VYVEYNCj4g LSAgICAgICAgIChmbG9hdF9leHRlbmQ6VldFWFRGDQo+IC0gICAgICAgICAgIChtYXRjaF9vcGVy YW5kOjxWX0RPVUJMRV9UUlVOQz4gMiAicmVnaXN0ZXJfb3BlcmFuZCIpKQ0KPiAtICAgICAgICAg KG1hdGNoX29wZXJhbmQ6VldFWFRGIDMgInJlZ2lzdGVyX29wZXJhbmQiKQ0KPiAtICAgICAgICAg KG1hdGNoX29wZXJhbmQ6VldFWFRGIDEgInJlZ2lzdGVyX29wZXJhbmQiKSkpXQ0KPiArICAgICAg ICh1bnNwZWM6VldFWFRGDQo+ICsgICAgICAgICBbKGZtYTpWV0VYVEYNCj4gKyAgICAgICAgICAg KGZsb2F0X2V4dGVuZDpWV0VYVEYNCj4gKyAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDo8Vl9E T1VCTEVfVFJVTkM+IDIgInJlZ2lzdGVyX29wZXJhbmQiKSkNCj4gKyAgICAgICAgICAgKG1hdGNo X29wZXJhbmQ6VldFWFRGIDMgInJlZ2lzdGVyX29wZXJhbmQiKQ0KPiArICAgICAgICAgICAobWF0 Y2hfb3BlcmFuZDpWV0VYVEYgMSAicmVnaXN0ZXJfb3BlcmFuZCIpKQ0KPiArICAgICAgICAgIChy ZWc6U0kgRlJNX1JFR05VTSldIFVOU1BFQ19WRkZNQSkpXQ0KPiAgICAiVEFSR0VUX1ZFQ1RPUiAm JiBjYW5fY3JlYXRlX3BzZXVkb19wICgpIg0KPiAgICAiIyINCj4gICAgIiYmIDEiDQo+IEBAIC01 MDEsNyArNTA2LDggQEAgKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKnNpbmdsZV93aWRlbl9mbWE8 bW9kZT4iDQo+ICAgICAgRE9ORTsNCj4gICAgfQ0KPiAgICBbKHNldF9hdHRyICJ0eXBlIiAidmZ3 bXVsYWRkIikNCj4gLSAgIChzZXRfYXR0ciAibW9kZSIgIjxWX0RPVUJMRV9UUlVOQz4iKV0pDQo+ ICsgICAoc2V0X2F0dHIgIm1vZGUiICI8Vl9ET1VCTEVfVFJVTkM+IikNCj4gKyAgIChzZXQgKGF0 dHIgImZybV9tb2RlIikgKHN5bWJvbF9yZWYgInJpc2N2X3ZlY3Rvcjo6RlJNX0RZTiIpKV0pDQo+ DQo+ICA7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICA7OyAtLS0tIFtGUF0gVkZXTk1TQUMNCj4gZGlm ZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvYXV0b3ZlYy5tZCBiL2djYy9jb25maWcvcmlzY3Yv YXV0b3ZlYy5tZA0KPiBpbmRleCBhY2NhNGMyMmI5MC4uNDg5NDk4NmQyYTUgMTAwNjQ0DQo+IC0t LSBhL2djYy9jb25maWcvcmlzY3YvYXV0b3ZlYy5tZA0KPiArKysgYi9nY2MvY29uZmlnL3Jpc2N2 L2F1dG92ZWMubWQNCj4gQEAgLTExMjYsMjIgKzExMjYsMjcgQEAgKGRlZmluZV9pbnNuX2FuZF9z cGxpdCAiKmZubWE8Vkk6bW9kZT48UDptb2RlPiINCj4gIChkZWZpbmVfZXhwYW5kICJmbWE8bW9k ZT40Ig0KPiAgICBbKHBhcmFsbGVsDQo+ICAgICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkYgMCAi cmVnaXN0ZXJfb3BlcmFuZCIpDQo+IC0gICAgICAgICAoZm1hOlZGDQo+IC0gICAgICAgICAgICht YXRjaF9vcGVyYW5kOlZGIDEgInJlZ2lzdGVyX29wZXJhbmQiKQ0KPiAtICAgICAgICAgICAobWF0 Y2hfb3BlcmFuZDpWRiAyICJyZWdpc3Rlcl9vcGVyYW5kIikNCj4gLSAgICAgICAgICAgKG1hdGNo X29wZXJhbmQ6VkYgMyAicmVnaXN0ZXJfb3BlcmFuZCIpKSkNCj4gKyAgICAgICAgICh1bnNwZWM6 VkYNCj4gKyAgICAgICAgICAgWyhmbWE6VkYNCj4gKyAgICAgICAgICAgICAobWF0Y2hfb3BlcmFu ZDpWRiAxICJyZWdpc3Rlcl9vcGVyYW5kIikNCj4gKyAgICAgICAgICAgICAobWF0Y2hfb3BlcmFu ZDpWRiAyICJyZWdpc3Rlcl9vcGVyYW5kIikNCj4gKyAgICAgICAgICAgICAobWF0Y2hfb3BlcmFu ZDpWRiAzICJyZWdpc3Rlcl9vcGVyYW5kIikpDQo+ICsgICAgICAgICAgICAocmVnOlNJIEZSTV9S RUdOVU0pXSBVTlNQRUNfVkZGTUEpKQ0KPiAgICAgICAoY2xvYmJlciAobWF0Y2hfZHVwIDQpKV0p XQ0KPiAgICAiVEFSR0VUX1ZFQ1RPUiINCj4gICAgew0KPiAgICAgIG9wZXJhbmRzWzRdID0gZ2Vu X3JlZ19ydHggKFBtb2RlKTsNCj4gLSAgfSkNCj4gKyAgfQ0KPiArICBbKHNldCAoYXR0ciAiZnJt X21vZGUiKSAoc3ltYm9sX3JlZiAicmlzY3ZfdmVjdG9yOjpGUk1fRFlOIikpXSkNCj4NCj4gIChk ZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipmbWE8VkY6bW9kZT48UDptb2RlPiINCj4gICAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6VkYgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAiPXZyLCB2ciwgPyZ2ciIp DQo+IC0gICAgICAgKGZtYTpWRg0KPiAtICAgICAgICAgKG1hdGNoX29wZXJhbmQ6VkYgMSAicmVn aXN0ZXJfb3BlcmFuZCIgIiAlMCwgdnIsICAgdnIiKQ0KPiAtICAgICAgICAgKG1hdGNoX29wZXJh bmQ6VkYgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIiB2ciwgdnIsICAgdnIiKQ0KPiAtICAgICAgICAg KG1hdGNoX29wZXJhbmQ6VkYgMyAicmVnaXN0ZXJfb3BlcmFuZCIgIiB2ciwgIDAsICAgdnIiKSkp DQo+ICsgICAgICAgKHVuc3BlYzpWRg0KPiArICAgICAgICAgWyhmbWE6VkYNCj4gKyAgICAgICAg ICAgKG1hdGNoX29wZXJhbmQ6VkYgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiAlMCwgdnIsICAgdnIi KQ0KPiArICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpWRiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAi IHZyLCB2ciwgICB2ciIpDQo+ICsgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlZGIDMgInJlZ2lz dGVyX29wZXJhbmQiICIgdnIsICAwLCAgIHZyIikpDQo+ICsgICAgICAgICAgKHJlZzpTSSBGUk1f UkVHTlVNKV0gVU5TUEVDX1ZGRk1BKSkNCj4gICAgIChjbG9iYmVyIChtYXRjaF9vcGVyYW5kOlAg NCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIsciIpKV0NCj4gICAgIlRBUkdFVF9WRUNUT1IiDQo+ ICAgICIjIg0KPiBAQCAtMTE1NSw3ICsxMTYwLDggQEAgKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAi KmZtYTxWRjptb2RlPjxQOm1vZGU+Ig0KPiAgICAgIERPTkU7DQo+ICAgIH0NCj4gICAgWyhzZXRf YXR0ciAidHlwZSIgInZmbXVsYWRkIikNCj4gLSAgIChzZXRfYXR0ciAibW9kZSIgIjxWRjpNT0RF PiIpXSkNCj4gKyAgIChzZXRfYXR0ciAibW9kZSIgIjxWRjpNT0RFPiIpDQo+ICsgICAoc2V0IChh dHRyICJmcm1fbW9kZSIpIChzeW1ib2xfcmVmICJyaXNjdl92ZWN0b3I6OkZSTV9EWU4iKSldKQ0K Pg0KPiAgOzsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgOzsgLS0tLSBbRlBdIFZGTk1TQUMgYW5kIFZG Tk1TVUINCj4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvdmVjdG9yLWl0ZXJhdG9ycy5t ZCBiL2djYy9jb25maWcvcmlzY3YvdmVjdG9yLWl0ZXJhdG9ycy5tZA0KPiBpbmRleCA0MDIzYTAz OGZlOS4uOWIyZmIxMzViZGQgMTAwNjQ0DQo+IC0tLSBhL2djYy9jb25maWcvcmlzY3YvdmVjdG9y LWl0ZXJhdG9ycy5tZA0KPiArKysgYi9nY2MvY29uZmlnL3Jpc2N2L3ZlY3Rvci1pdGVyYXRvcnMu bWQNCj4gQEAgLTgxLDYgKzgxLDggQEAgKGRlZmluZV9jX2VudW0gInVuc3BlYyIgWw0KPiAgICBV TlNQRUNfVkNPTVBSRVNTDQo+ICAgIFVOU1BFQ19WTEVGRg0KPiAgICBVTlNQRUNfTU9ESUZZX1ZM DQo+ICsNCj4gKyAgVU5TUEVDX1ZGRk1BDQo+ICBdKQ0KPg0KPiAgKGRlZmluZV9jX2VudW0gInVu c3BlY3YiIFsNCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1mcm0tYXV0b3ZlYy0xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLWF1dG92ZWMtMS5jDQo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi5mNGYxN2EzMDZkNQ0KPiAtLS0g L2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1mcm0tYXV0b3ZlYy0xLmMNCj4gQEAgLTAsMCArMSw4OCBAQA0KPiArLyog eyBkZy1kbyBjb21waWxlIH0gKi8NCj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3Yg LS1wYXJhbT1yaXNjdi1hdXRvdmVjLXByZWZlcmVuY2U9Zml4ZWQtdmxtYXggLWZmYXN0LW1hdGgg LW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IGNoZWNr LWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLw0KPiArDQo+ICsjaW5jbHVkZSAicmlzY3Zf dmVjdG9yLmgiDQo+ICsNCj4gKy8qDQo+ICsqKnRlc3RfMToNCj4gKyoqICAgICAuLi4NCj4gKyoq ICAgICBmcnJtXHRbYXh0XVswLTldKw0KPiArKiogICAgIC4uLg0KPiArKiogICAgIGZzcm1pXHQx DQo+ICsqKiAgICAgLi4uDQo+ICsqKiAgICAgdmZzdWJcLnZ2XHR2WzAtOV0rLHZbMC05XSssdlsw LTldKw0KPiArKiogICAgIC4uLg0KPiArKiogICAgIGZzcm1cdFtheHRdWzAtOV0rDQo+ICsqKiAg ICAgLi4uDQo+ICsqKiAgICAgdmZtYWRkXC52dlx0dlswLTldKyx2WzAtOV0rLHZbMC05XSsNCj4g KyoqICAgICAuLi4NCj4gKyoqICAgICByZXQNCj4gKyovDQo+ICt2b2lkDQo+ICt0ZXN0XzEgKHZm bG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCAqb3Bfb3V0LCBz aXplX3QgdmwsDQo+ICsgICAgICAgZG91YmxlICppbjEsIGRvdWJsZSAqaW4yLCBkb3VibGUgKm91 dCkNCj4gK3sNCj4gKyAgKm9wX291dCA9IF9fcmlzY3ZfdmZzdWJfdnZfZjMybTFfcm0gKG9wMSwg b3AyLCAxLCB2bCk7DQo+ICsNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyArK2kpDQo+ICsg ICAgb3V0W2ldICs9IGluMVtpXSAqIGluMltpXTsNCj4gK30NCj4gKw0KPiArLyoNCj4gKyoqdGVz dF8yOg0KPiArKiogICAgIC4uLg0KPiArKiogICAgIGZycm1cdFtheHRdWzAtOV0rDQo+ICsqKiAg ICAgLi4uDQo+ICsqKiAgICAgZnNybWlcdDENCj4gKyoqICAgICAuLi4NCj4gKyoqICAgICB2ZnN1 YlwudnZcdHZbMC05XSssdlswLTldKyx2WzAtOV0rDQo+ICsqKiAgICAgLi4uDQo+ICsqKiAgICAg ZnNybVx0W2F4dF1bMC05XSsNCj4gKyoqICAgICAuLi4NCj4gKyoqICAgICB2Zm1hZGRcLnZ2XHR2 WzAtOV0rLHZbMC05XSssdlswLTldKw0KPiArKiogICAgIC4uLg0KPiArKiogICAgIGZzcm1pXHQ0 DQo+ICsqKiAgICAgLi4uDQo+ICsqKiAgICAgdmZzdWJcLnZ2XHR2WzAtOV0rLHZbMC05XSssdlsw LTldKw0KPiArKiogICAgIC4uLg0KPiArKiogICAgIGZzcm1cdFtheHRdWzAtOV0rDQo+ICsqKiAg ICAgLi4uDQo+ICsqKiAgICAgcmV0DQo+ICsqLw0KPiArdm9pZA0KPiArdGVzdF8yICh2ZmxvYXQz Mm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3QgKm9wX291dCwgc2l6ZV90 IHZsLA0KPiArICAgICAgIGRvdWJsZSAqaW4xLCBkb3VibGUgKmluMiwgZG91YmxlICpvdXQpDQo+ ICt7DQo+ICsgIG9wMiA9IF9fcmlzY3ZfdmZzdWJfdnZfZjMybTFfcm0gKG9wMSwgb3AyLCAxLCB2 bCk7DQo+ICsNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyArK2kpDQo+ICsgICAgb3V0W2ld ID0gb3V0W2ldICogaW4xW2ldICsgaW4yW2ldOw0KPiArDQo+ICsgICpvcF9vdXQgPSBfX3Jpc2N2 X3Zmc3ViX3Z2X2YzMm0xX3JtIChvcDEsIG9wMiwgNCwgdmwpOw0KPiArfQ0KPiArDQo+ICsvKg0K PiArKip0ZXN0XzM6DQo+ICsqKiAgICAgLi4uDQo+ICsqKiAgICAgZnJybVx0W2F4dF1bMC05XSsN Cj4gKyoqICAgICAuLi4NCj4gKyoqICAgICB2Zm1hZGRcLnZ2XHR2WzAtOV0rLHZbMC05XSssdlsw LTldKw0KPiArKiogICAgIC4uLg0KPiArKiogICAgIGZzcm1pXHQ0DQo+ICsqKiAgICAgLi4uDQo+ ICsqKiAgICAgdmZzdWJcLnZ2XHR2WzAtOV0rLHZbMC05XSssdlswLTldKw0KPiArKiogICAgIC4u Lg0KPiArKiogICAgIGZzcm1cdFtheHRdWzAtOV0rDQo+ICsqKiAgICAgLi4uDQo+ICsqKiAgICAg cmV0DQo+ICsqLw0KPiArdm9pZA0KPiArdGVzdF8zICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQz Mm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3QgKm9wX291dCwgc2l6ZV90IHZsLA0KPiArICAgICAgIGRv dWJsZSAqaW4xLCBkb3VibGUgKmluMiwgZG91YmxlICppbjMsIGRvdWJsZSAqb3V0KQ0KPiArew0K PiArICBmb3IgKGludCBpID0gMDsgaSA8IDQ7ICsraSkNCj4gKyAgICBvdXRbaV0gPSBpbjFbaV0g KyBpbjJbaV0gKiBvdXRbaV07DQo+ICsNCj4gKyAgKm9wX291dCA9IF9fcmlzY3ZfdmZzdWJfdnZf ZjMybTFfcm0gKG9wMSwgb3AyLCA0LCB2bCk7DQo+ICt9DQo+IC0tDQo+IDIuMzQuMQ0KPg0K