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 065473858D32 for ; Mon, 15 May 2023 06:16:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 065473858D32 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=1684131380; x=1715667380; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=h4ds201R8+4r2aN2U7xhjjtWr6NkKUVdxFIkTcVOTmc=; b=ja+f0+ooNKjaG7j2IodP5vGJTl6CAf3aF2c95I0Rv8f58mtg7msGAb/q sD2ricMzwg4sOggBV8lshVZgh2dlOHyhzYLwlpPQjY+WwUXRWPOTs/Rzs 0Z1dxBdSeKJSk4zYvRa9fPEi0ZuaotNYePXaECEMCZiBTfvAmdjj76jb9 t5+89f25Hld44Q7vjFHqR992evlCyPbyyfVqvv2bZ6dO3MqGQCMW6YeSb aMDzZTzSQF0cdUNpIlBfCFMqWH0i2kSzsdraO81LjDTL+wUoujTEh+jxo H5qi+1267my4mRftEdMMqO8i+e2J9ACyjQEWP2uaUjTs17NqdWY21uVRZ Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="335655708" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="335655708" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2023 23:16:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10710"; a="875058879" X-IronPort-AV: E=Sophos;i="5.99,275,1677571200"; d="scan'208";a="875058879" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga005.jf.intel.com with ESMTP; 14 May 2023 23:16:18 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Sun, 14 May 2023 23:16:18 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Sun, 14 May 2023 23:16:18 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.168) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Sun, 14 May 2023 23:16:16 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cII6yj/ojQPoY3NAOcVUeZH1HnsYptmj3g8XQBLbtRUyUZWLEb1WdkkIfAubo8Agfixxhs6A1vUAS1cMSJvb3ajjFslcsPxJSfesYCK3QvhNLCbzpnZwO+hGjt5ZYQUxVDFF29sDa37ogHo0Md4qE1eR5qGfY56dcxE1bcYnPBEep2pxk0c2eRbBY7Fz8LfEZr3jIEGl9T4gKO0sPPPuxPKLdUTTzOrwOSO81non5W93viW4t0DzQkUHENluIN6lGJkqZbnOf7cySfsGtIOqbj9/Ikd4ZwX971t4qrvyOMB6oGM8x7R60lt9r5XTFmkBLXyZ8E5CpzdIiIb7vI506Q== 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=h4ds201R8+4r2aN2U7xhjjtWr6NkKUVdxFIkTcVOTmc=; b=S0VubFx96X1Ojesw5Pyjwz7/3NR6z/b30AlTjcSMY4WWmwcGZmOBA6PwePb1go6EhjWtz3qN6LqOYb7ZH1UITtIcO14AaAJu5TNrM7mUhNLY6Qxj6ZAoUfCmWsX2Vvs8xKG1fJTcb36T69+rukOW8pQlHsc7m06d1zFvJYHXVU5y1dcY4607Z/DpEUI3++6+ZQNRXnc8CPQu/9Z4NmcRtgD/vszn+tFkKAIVBBVAJHxLl7hgmME2cAIzkYWZIUuITZcGhI82MoKPNo3n9iRiJlQzLbdJel+efANA3AR+FuopJdBlfId1dQCCWmXridVQp5n45AWbKNnUnnD4pp27FQ== 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 DS7PR11MB7949.namprd11.prod.outlook.com (2603:10b6:8:eb::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Mon, 15 May 2023 06:16:14 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::bbc5:f013:1f53:10a9]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::bbc5:f013:1f53:10a9%3]) with mapi id 15.20.6387.030; Mon, 15 May 2023 06:16:14 +0000 From: "Li, Pan2" To: Kito Cheng , "juzhe.zhong@rivai.ai" CC: "gcc-patches@gcc.gnu.org" , "palmer@dabbelt.com" , "jeffreyalaw@gmail.com" , "rdapp.gcc@gmail.com" Subject: RE: [PATCH] RISC-V: Optimize vsetvl AVL for VLS VLMAX auto-vectorization Thread-Topic: [PATCH] RISC-V: Optimize vsetvl AVL for VLS VLMAX auto-vectorization Thread-Index: AQHZhT/0h9LdrmF0cE61CR+IaXS8+a9Xh2MAgANWfZA= Date: Mon, 15 May 2023 06:16:13 +0000 Message-ID: References: <20230513020859.13485-1-juzhe.zhong@rivai.ai> 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_|DS7PR11MB7949:EE_ x-ms-office365-filtering-correlation-id: c89725d3-ba7f-4860-d50b-08db550be28e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: bZnUQJC1DRF8U1aVjyKPRuREclIBT2jGj4m61384XkkdOPG/cql/2o6wvvbkGeze535oo59Jl6/EGZAKJRcrK/XzOGC7k7IaG+xKOad+jLbmckk5kEE/vLI4HHw9n4hmIgMshdhanoaKfUufDBvYg32W4nbEt3FYn6g4BfBl308skjUkbb5wzRpIS2icKDokZ/CogGHwrvq8nAhVf0K9PnbPPBZ0rSKL8ghqZCEOjQQxyJX6ZjFAZxc0IN/j8lk6G2KqOsUsyfhs2d2QoM0DoSqmp4l2UIKR1aJfQ662UoDB8JK28EAZtxRqQyYuTP+TOktdFKYseiM2evFkzkv7Y7VzNTFdYe6coBR+AkkrJYcKaWqrw3pGzAholryLDsuHrazVxOIvz4y1Y3MditGnlKmoZSv7rG8U/e1nhOf/R5/CRMnZlinLFUPAARouCl2XTAVZG03NeCkvd/Yjbv8FMcHcOzJd4F9YDRttXvK3Oqtw5hAIibSPADBu56p7Y3L7nF5pc8f0KL4e4DEIej8qxVRaipx+FCrUqyw49MWkYNem3mgGOO3ngVNNkZc+cxv8pxxlk0VIPyCHfCkoDlA/NE1Bv3+MvSTmB3EZI/7aLFI= 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:(13230028)(136003)(346002)(39860400002)(366004)(376002)(396003)(451199021)(54906003)(110136005)(478600001)(8676002)(8936002)(5660300002)(52536014)(2906002)(86362001)(38070700005)(33656002)(64756008)(66446008)(66476007)(82960400001)(4326008)(66556008)(66946007)(76116006)(316002)(122000001)(55016003)(41300700001)(38100700002)(83380400001)(6506007)(26005)(84970400001)(53546011)(9686003)(186003)(71200400001)(7696005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?S3ZsdVMwOVV0UURoYW1JZitvMWowYUs3TmxyYkhQSVJkbjJ4OEpYUVNFYjhs?= =?utf-8?B?UE1WZ2dVOUJ5TjFQM05pamVRaUU5eHM5S1o4UnhpYXcwMTNkaVluYVZCR2x4?= =?utf-8?B?NVppUnROUXJiak5IL1hKRkpMZ0VzVkRvQmV6cXhoQTZzMnJ4OGhXd0J5Nzgy?= =?utf-8?B?UnZEc0NKalViRmFFVlJFaXVUdzQwQnFCNjN1STRrNWFNZE0zdnZUa0ZlU1I0?= =?utf-8?B?WkloY04wYWx0emdUWGMyV2NVN2s1NGNUM2ZiWnJSYVJianRMUDNoOWZKYzVs?= =?utf-8?B?Vk1OanQzaGJ5Q0xSOVVWbGdnK2tZamtNbkliWnA3WFVaQ1N4N1dvdTF4SUQ3?= =?utf-8?B?M283THYzaWpDTUVYK3BzRHJpejJZbDBtcEF1R09Za2NSQmh1OFo0RVAzZmJl?= =?utf-8?B?NWdCK1ZvOHRCZERhSFppVmJvcTMydkdyOHc1L2pRUSsvTUt0ckxhd1Nuc2dH?= =?utf-8?B?QkNZS0RxUlFHWno3dlZFWWRzVitsaXFoKzA1YkFZVmp0ZytJSE9pc3c1R0Q5?= =?utf-8?B?cEVsaFROWkFqM0NEbS9BV01GNjRMVE1EcWNBYjZsTEJtamJtb2M5Nmx3bTcv?= =?utf-8?B?cTVzTkJ6ajhmMm1uTlFLZWwzRFNVbUpIRk9GanlIcUlLdGhFNmEzUGNJdnpG?= =?utf-8?B?TjhtM3dhcE16QVBhK0VJRW8vMjNoSWZpU0pHbGs1ZE5WVkY3VkdtU0xpVW1s?= =?utf-8?B?Y2YxMlMyYkZLNHpmWm1JbEJEMU0xOEg3MTRibDdjRlhwZEhyRWp3eGQxd1dT?= =?utf-8?B?Qm00RE1hdklhS25yUVUza3MzcFZ2SlRXQ2Iya2RsN0tkRXkvK1B3cHM4STRW?= =?utf-8?B?TXdBendINTlVNFRoR0RodDRaaU50UmFrS29zeEZBL244RGxIcE1KcjVOdFZu?= =?utf-8?B?MHFXQ1pFTkJPdmhOdGd2SGRzMTJPRE5DZ0pabmdjQW1qNjRYYmNvcmRGYWVO?= =?utf-8?B?VXJTQldJMXpPRFFrS2o3MGx0c0NnNHB6ZDZsOFNVUnVTQXQzMXBMWDVUK0Zn?= =?utf-8?B?M1RscUUrd2NJWjdOeXlyN2pJQm5ha1NLR0pvN3B5WCtROERSdTFNcGhuMUhS?= =?utf-8?B?WjNvQTNiVi85ZnZ0NGdxTWRQNmsxK20rdVZhTk5GdmkvVU8wTHJSK0tFdGNZ?= =?utf-8?B?dzdPRFJtZzhmeHVnU1Y4ek90d0crY05sa096TkZaL2xXUEttTm1oREl3Y3Vn?= =?utf-8?B?UTdSMk1ia3FQa1h4RVU4ZktFcEFmdnpNTlB4VlV2YzM3WjBWS2FiUmtOcmVO?= =?utf-8?B?Z3VzM2w3RHpGVDZnV0pvenpIK2pUMU1LemtEams4T05HWkwzWDNubkN5eFl2?= =?utf-8?B?V2Y3NFhUWEVoMllPYXFXM3dpSk1PdW1xa2lFU0JMTHY0RnpMS0s4Z0M4K1V4?= =?utf-8?B?T2xFUlJzYzBzcFhSN29mbjB6dUhVWkdGbUhmZGRpUG0yazMrR2VTd1BFbmdq?= =?utf-8?B?VFhkdFdvT2UzaitlMlAydXNVVU96Ym5QV29ib0tBUHNTRHZtNjZsRXd5TVla?= =?utf-8?B?R0hNdlJ4QS94TENKZzZSTERoWVMzSUs2SjNtckQ4dmhuZFFSd040SkEvemlS?= =?utf-8?B?dHhQbHk3bkNGcmYzdURLc3JoUzdMQmZxRzZDSU9neUNUMWFjdytTaWhGbEJz?= =?utf-8?B?WCtKUFRoanhqUzhNcVdSV3YxWlFONVh5RjluekdJVmw5cGdDbitYMGR2Q1dX?= =?utf-8?B?VVAxaVkxd0h4QTU0SnVjZHZTRHZ4WXZrcGdoUmhTeUxoWDdSN05DeldYZkMy?= =?utf-8?B?NEVueUxIaHZON25TZ0dSS1l3T3AvL3VHdlBsbWZ1NDllYVFKUkd3TzhtMk4y?= =?utf-8?B?UlA1aHJXT3duZGRYckF5eHE0TEZOTC8xRE9tcncwUVpnRmNabDdhRVF4SGlZ?= =?utf-8?B?ejMxazM0aUEzUDBGK1AyUWhUK2xHcGZoQmk4ejdMYldiUzljVTZpUFRDK0pQ?= =?utf-8?B?L3BOWHVhTmY5aERpM3FxQnpXalVCa1BUYUlWMHFIalBUTStPRXNJcE0xZ2xl?= =?utf-8?B?U3pvVjRLRkIyTVF5dHI1ZytyVFB4K2phbkxJeEQxTU5tMnYyaGxaUVNmbE02?= =?utf-8?B?VnRGN3A4eE9wdnQ3bE5CbHY0TGFWb3JTSk40Tzc5MmFFTmFYTElQNURIQW0y?= =?utf-8?Q?m8UI=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: c89725d3-ba7f-4860-d50b-08db550be28e X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2023 06:16:13.6884 (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: Jv2tielka9faEsCRj0Rp++qgaZMGVfBW8JTStOpoo4PrldIQcQmAWhAF+gXGlQ21VI4v7o1td4o16YE1HNxwOg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB7949 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00,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.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: SGkga2l0bywNCg0KUGVyIG9mZi1saW5lIHN5bmMgd2l0aCBKdXpoZSwgSSBjYW4gaGVscCB0aGUg cmVzdCBwYXJ0IG9mIHRoaXMgUEFUQ0gsIHdpbGwgdHJ5IHRoZSBzdWdnZXN0ZWQgYXBwcm9hY2gg YW5kIGtlZXAgeW91IHBvc3RlZC4NCg0KUGFuDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQpGcm9tOiBHY2MtcGF0Y2hlcyA8Z2NjLXBhdGNoZXMtYm91bmNlcytwYW4yLmxpPWludGVsLmNv bUBnY2MuZ251Lm9yZz4gT24gQmVoYWxmIE9mIEtpdG8gQ2hlbmcgdmlhIEdjYy1wYXRjaGVzDQpT ZW50OiBTYXR1cmRheSwgTWF5IDEzLCAyMDIzIDExOjE0IEFNDQpUbzoganV6aGUuemhvbmdAcml2 YWkuYWkNCkNjOiBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZzsgcGFsbWVyQGRhYmJlbHQuY29tOyBq ZWZmcmV5YWxhd0BnbWFpbC5jb207IHJkYXBwLmdjY0BnbWFpbC5jb20NClN1YmplY3Q6IFJlOiBb UEFUQ0hdIFJJU0MtVjogT3B0aW1pemUgdnNldHZsIEFWTCBmb3IgVkxTIFZMTUFYIGF1dG8tdmVj dG9yaXphdGlvbg0KDQpIbW1tIGhlcmUgaXMgYWx0ZXJuYXRpdmUgYXBwcm9hY2ggZm9yIHRoaXM6 DQoNCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXYuY2MgYi9nY2MvY29uZmln L3Jpc2N2L3Jpc2N2LXYuY2MgaW5kZXggYjhkYzMzM2Y1NGUxLi5jODgwNTYwMjRlN2QgMTAwNjQ0 DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXYuY2MNCisrKyBiL2djYy9jb25maWcvcmlz Y3YvcmlzY3Ytdi5jYw0KQEAgLTUwLDYgKzUwLDIxIEBAIHVzaW5nIG5hbWVzcGFjZSByaXNjdl92 ZWN0b3I7DQoNCm5hbWVzcGFjZSByaXNjdl92ZWN0b3Igew0KDQorLyogUmV0dXJuIHRydWUgaWYg dmxtYXggaXMgY29uc3RhbnQgdmFsdWUgaW5zdGVhZCBhbmQgY2FuIGJlIHVzZWQNCisgICBpbiB2 c2V0aXZsaS4gICovDQorc3RhdGljIGJvb2wNCitjb25zdF92bG1heF9wIChtYWNoaW5lX21vZGUg bW9kZSkNCit7DQorICBwb2x5X3VpbnQ2NCBudW5pdHMgPSBHRVRfTU9ERV9OVU5JVFMgKG1vZGUp Ow0KKw0KKyAgLyogT25seSBhbGxvd2VkIGluIFZMUy1WTE1BWCBtb2RlLiAgKi8gIGlmICghbnVu aXRzLmlzX2NvbnN0YW50ICgpKQ0KKyAgICByZXR1cm4gZmFsc2U7DQorDQorICAvKiB2c2V0aXZs aSBjYW4gb25seSBob2xkIDB+MzEuICAqLw0KKyAgcmV0dXJuIChJTl9SQU5HRSAobnVuaXRzLnRv X2NvbnN0YW50ICgpLCAwLCAzMSkpOyB9DQorDQp0ZW1wbGF0ZSA8aW50IE1BWF9PUEVSQU5EUz4g Y2xhc3MgaW5zbl9leHBhbmRlciB7DQpwdWJsaWM6DQpAQCAtMTAxLDE1ICsxMTYsMjYgQEAgcHVi bGljOg0KDQogIHZvaWQgc2V0X2xlbl9hbmRfcG9saWN5IChydHggbGVuLCBib29sIGZvcmNlX3Zs bWF4ID0gZmFsc2UpDQogICAgew0KLSAgICAgIGJvb2wgdmxtYXhfcCA9IGZvcmNlX3ZsbWF4Ow0K KyAgICAgIGJvb2wgdmxtYXhfcCA9IGZvcmNlX3ZsbWF4IHx8ICFsZW47DQogICAgICBnY2NfYXNz ZXJ0IChoYXNfZGVzdCk7DQoNCi0gICAgICBpZiAoIWxlbikNCisgICAgICBpZiAodmxtYXhfcCkN CiAgICAgICB7DQotICAgICAgICAgdmxtYXhfcCA9IHRydWU7DQotICAgICAgICAgbGVuID0gZ2Vu X3JlZ19ydHggKFBtb2RlKTsNCi0gICAgICAgICBlbWl0X3ZsbWF4X3ZzZXR2bCAoZGVzdF9tb2Rl LCBsZW4pOw0KLSAgICAgICB9DQorICAgICAgICAgaWYgKGNvbnN0X3ZsbWF4X3AgKGRlc3RfbW9k ZSkpDQorICAgICAgICAgICB7DQorICAgICAgICAgICAgIC8qIE9wdGltaXplIFZMUy1WTE1BWCBj b2RlIGdlbiwgd2UgY2FuIHVzZSB2c2V0aXZsaSBpbnN0ZWFkIG9mDQorICAgICAgICAgICAgICAg IHZzZXR2bGkgdG8gb2J0YWluIHRoZSB2YWx1ZSBvZiB2bG1heC4gICovDQorICAgICAgICAgICAg IHBvbHlfdWludDY0IG51bml0cyA9IEdFVF9NT0RFX05VTklUUyAoZGVzdF9tb2RlKTsNCisgICAg ICAgICAgICAgbGVuID0gZ2VuX2ludF9tb2RlIChudW5pdHMsIFBtb2RlKTsNCisgICAgICAgICAg ICAgLyogSXQgaGFzIGJlY29tZSBOT05WTE1BWCBub3cuICovDQorICAgICAgICAgICAgIHZsbWF4 X3AgPSBmYWxzZTsNCisgICAgICAgICAgIH0NCisgICAgICAgICBlbHNlIGlmICghbGVuKQ0KKyAg ICAgICAgICAgew0KKyAgICAgICAgICAgICBsZW4gPSBnZW5fcmVnX3J0eCAoUG1vZGUpOw0KKyAg ICAgICAgICAgICBlbWl0X3ZsbWF4X3ZzZXR2bCAoZGVzdF9tb2RlLCBsZW4pOw0KKyAgICAgICAg ICAgfQ0KKyAgICAgICAgfQ0KDQogICAgICBhZGRfaW5wdXRfb3BlcmFuZCAobGVuLCBQbW9kZSk7 DQoNCi0tIA0KDQoNCg0KT24gU2F0LCBNYXkgMTMsIDIwMjMgYXQgMTA6MDnigK9BTSA8anV6aGUu emhvbmdAcml2YWkuYWk+IHdyb3RlOg0KPg0KPiBGcm9tOiBKdXpoZS1aaG9uZyA8anV6aGUuemhv bmdAcml2YWkuYWk+DQo+DQo+IFRoaXMgcGF0Y2ggaXMgb3B0aW1pemluZyB0aGUgQVZMIGZvciBW TFMgYXV0by12ZWN0b3J6YXRpb24uDQo+DQo+IENvbnNpZGVyIHN1Y2ggY2FzZToNCj4NCj4gdHlw ZWRlZiBpbnQ4X3Qgdm54MnFpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoMikpKTsNCj4N Cj4gX19hdHRyaWJ1dGVfXyAoKG5vaXBhKSkgdm9pZA0KPiBmX3ZueDJxaSAoaW50OF90IGEsIGlu dDhfdCBiLCBpbnQ4X3QgKm91dCkgew0KPiAgIHZueDJxaSB2ID0ge2EsIGJ9Ow0KPiAgICoodm54 MnFpICopIG91dCA9IHY7DQo+IH0NCj4NCj4gQmVmb3JlIHRoaXMgcGF0Y2g6DQo+DQo+IGZfdm54 MnFpOg0KPiAgICAgICAgIHZzZXR2bGkgYTUsemVybyxlOCxtZjgsdGEsbWENCj4gICAgICAgICB2 bXYudi54IHYxLGEwDQo+ICAgICAgICAgdnNsaWRlMWRvd24udnggIHYxLHYxLGExDQo+ICAgICAg ICAgdnNlOC52ICB2MSwwKGEyKQ0KPiAgICAgICAgIHJldA0KPg0KPiBBZnRlciB0aGlzIHBhdGNo Og0KPg0KPiBmX3ZueDJxaToNCj4gICAgICAgICB2c2V0aXZsaSAgICAgICAgemVybywyLGU4LG1m OCx0YSxtYQ0KPiAgICAgICAgIHZtdi52LnggdjEsYTANCj4gICAgICAgICB2c2xpZGUxZG93bi52 eCAgdjEsdjEsYTENCj4gICAgICAgICB2c2U4LnYgIHYxLDAoYTIpDQo+ICAgICAgICAgcmV0DQo+ DQo+IGdjYy9DaGFuZ2VMb2c6DQo+DQo+ICAgICAgICAgKiBjb25maWcvcmlzY3YvcmlzY3YtcHJv dG9zLmggKGVtaXRfdmxtYXhfdnNldHZsKTogQ2hhbmdlIGFyZ3VtZW50IHR5cGUuDQo+ICAgICAg ICAgKiBjb25maWcvcmlzY3YvcmlzY3Ytdi5jYyAoZW1pdF92bG1heF92c2V0dmwpOiBPcHRpbWl6 ZSBBVkwgZm9yIHZsbWF4IFZMUy4NCj4gICAgICAgICAoZW1pdF92bG1heF9yZWdfb3ApOiBEaXR0 by4NCj4gICAgICAgICAqIGNvbmZpZy9yaXNjdi92ZWN0b3IubWQ6IEFkYXB0IGFyZ3VtZW50Lg0K Pg0KPiBnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCj4NCj4gICAgICAgICAqIGdjYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvdmZfYXZsLTEuYzogTmV3IHRlc3QuDQo+DQo+IC0tLQ0KPiAgZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi1wcm90b3MuaCAgICAgICAgICAgICAgIHwgIDIgKy0NCj4gIGdjYy9j b25maWcvcmlzY3YvcmlzY3Ytdi5jYyAgICAgICAgICAgICAgICAgICB8IDI1ICsrKysrKysrKysr KysrKy0tLS0NCj4gIGdjYy9jb25maWcvcmlzY3YvdmVjdG9yLm1kICAgICAgICAgICAgICAgICAg ICB8ICA0ICstLQ0KPiAgLi4uL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvdmZfYXZsLTEuYyAg ICAgIHwgMTUgKysrKysrKysrKysNCj4gIDQgZmlsZXMgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygr KSwgOCBkZWxldGlvbnMoLSkgIGNyZWF0ZSBtb2RlIDEwMDY0NCANCj4gZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL3ZmX2F2bC0xLmMNCj4NCj4gZGlmZiAtLWdpdCBhL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmggDQo+IGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di1wcm90b3MuaCBpbmRleCBiYzcxZjljYmJiYS4uOTA5MzRkNDM0MzAgDQo+IDEwMDY0NA0KPiAt LS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oDQo+ICsrKyBiL2djYy9jb25maWcv cmlzY3YvcmlzY3YtcHJvdG9zLmgNCj4gQEAgLTE2NCw3ICsxNjQsNyBAQCBib29sIGNoZWNrX2J1 aWx0aW5fY2FsbCAobG9jYXRpb25fdCwgdmVjPGxvY2F0aW9uX3Q+LCB1bnNpZ25lZCBpbnQsDQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWUsIHVuc2lnbmVkIGludCwgdHJlZSAqKTsg IGJvb2wgDQo+IGNvbnN0X3ZlY19hbGxfc2FtZV9pbl9yYW5nZV9wIChydHgsIEhPU1RfV0lERV9J TlQsIEhPU1RfV0lERV9JTlQpOyAgDQo+IGJvb2wgbGVnaXRpbWl6ZV9tb3ZlIChydHgsIHJ0eCwg bWFjaGluZV9tb2RlKTsgLXZvaWQgZW1pdF92bG1heF92c2V0dmwgDQo+IChtYWNoaW5lX21vZGUs IHJ0eCk7DQo+ICt2b2lkIGVtaXRfdmxtYXhfdnNldHZsIChtYWNoaW5lX21vZGUsIHJ0eCAqKTsN Cj4gIHZvaWQgZW1pdF9oYXJkX3ZsbWF4X3ZzZXR2bCAobWFjaGluZV9tb2RlLCBydHgpOyAgdm9p ZCBlbWl0X3ZsbWF4X29wIA0KPiAodW5zaWduZWQsIHJ0eCwgcnR4LCBtYWNoaW5lX21vZGUpOyAg dm9pZCBlbWl0X3ZsbWF4X3JlZ19vcCAodW5zaWduZWQsIA0KPiBydHgsIHJ0eCwgcnR4LCBtYWNo aW5lX21vZGUpOyBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12LmNjIA0KPiBi L2djYy9jb25maWcvcmlzY3YvcmlzY3Ytdi5jYyBpbmRleCBkODQ0YzMwNTMyMC4uMzgyY2M0YjYz MTEgMTAwNjQ0DQo+IC0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3Ytdi5jYw0KPiArKysgYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXYuY2MNCj4gQEAgLTEyMCw3ICsxMjAsOSBAQCBwdWJsaWM6 DQo+ICAgICAgICB7DQo+ICAgICAgICAgdmxtYXhfcCA9IHRydWU7DQo+ICAgICAgICAgbGVuID0g Z2VuX3JlZ19ydHggKFBtb2RlKTsNCj4gLSAgICAgICBlbWl0X3ZsbWF4X3ZzZXR2bCAoZGVzdF9t b2RlLCBsZW4pOw0KPiArICAgICAgIGVtaXRfdmxtYXhfdnNldHZsIChkZXN0X21vZGUsICZsZW4p Ow0KPiArICAgICAgIGlmIChDT05TVF9JTlRfUCAobGVuKSkNCj4gKyAgICAgICAgIHZsbWF4X3Ag PSBmYWxzZTsNCj4gICAgICAgIH0NCj4NCj4gICAgICBhZGRfaW5wdXRfb3BlcmFuZCAobGVuLCBQ bW9kZSk7DQo+IEBAIC0xODMsMTYgKzE4NSwyOSBAQCBlbWl0X2hhcmRfdmxtYXhfdnNldHZsICht YWNoaW5lX21vZGUgdm1vZGUsIHJ0eCANCj4gdmwpICB9DQo+DQo+ICB2b2lkDQo+IC1lbWl0X3Zs bWF4X3ZzZXR2bCAobWFjaGluZV9tb2RlIHZtb2RlLCBydHggdmwpDQo+ICtlbWl0X3ZsbWF4X3Zz ZXR2bCAobWFjaGluZV9tb2RlIHZtb2RlLCBydHggKnZsKQ0KPiAgew0KPiAgICB1bnNpZ25lZCBp bnQgc2V3ID0gZ2V0X3NldyAodm1vZGUpOw0KPiAgICBlbnVtIHZsbXVsX3R5cGUgdmxtdWwgPSBn ZXRfdmxtdWwgKHZtb2RlKTsNCj4gICAgdW5zaWduZWQgaW50IHJhdGlvID0gY2FsY3VsYXRlX3Jh dGlvIChzZXcsIHZsbXVsKTsNCj4NCj4gKyAgLyogRm9yIFZMUyBWTE1BWCBhdXRvLXZlY3Rvcml6 YXRpb24sIHdlIGNoYW5nZQ0KPiArICAgICBWTCBpbnRvIGNvbnN0X2ludCB2YWx1ZSBvZiBWRiBz byB0aGF0IHdlDQo+ICsgICAgIHdpbGwgZW1pdCAidnNldGl2bGkgemVybywgQ09OU1RfSU5UIiBp bnN0ZWFkIG9mDQo+ICsgICAgICJ2c2V0dmxpIGE1LCB6ZXJvIi4NCj4gKw0KPiArICAgICBUT0RP OiBTdXBwb3J0IFZMUyBtaW4tbGVuZ3RoIGluIHRoZSBmdXR1cmUuICAqLw0KPiArICBwb2x5X3Vp bnQ2NCBudW5pdHMgPSBHRVRfTU9ERV9OVU5JVFMgKHZtb2RlKTsgIGlmIA0KPiArIChudW5pdHMu aXNfY29uc3RhbnQgKCkgJiYgSU5fUkFOR0UgKG51bml0cy50b19jb25zdGFudCAoKSwgMCwgMzEp KQ0KPiArICAgIHsNCj4gKyAgICAgICp2bCA9IGdlbl9pbnRfbW9kZSAobnVuaXRzLCBQbW9kZSk7 DQo+ICsgICAgICByZXR1cm47DQo+ICsgICAgfQ0KPiArDQo+ICAgIGlmICghb3B0aW1pemUpDQo+ IC0gICAgZW1pdF9oYXJkX3ZsbWF4X3ZzZXR2bCAodm1vZGUsIHZsKTsNCj4gKyAgICBlbWl0X2hh cmRfdmxtYXhfdnNldHZsICh2bW9kZSwgKnZsKTsNCj4gICAgZWxzZQ0KPiAtICAgIGVtaXRfaW5z biAoZ2VuX3ZsbWF4X2F2bCAoUG1vZGUsIHZsLCBnZW5faW50X21vZGUgKHJhdGlvLCBQbW9kZSkp KTsNCj4gKyAgICBlbWl0X2luc24gKGdlbl92bG1heF9hdmwgKFBtb2RlLCAqdmwsIGdlbl9pbnRf bW9kZSAocmF0aW8sIA0KPiArIFBtb2RlKSkpOw0KPiAgfQ0KPg0KPiAgLyogQ2FsY3VsYXRlIFNF Vy9MTVVMIHJhdGlvLiAgKi8NCj4gQEAgLTMyMyw3ICszMzgsNyBAQCBlbWl0X3ZsbWF4X3JlZ19v cCAodW5zaWduZWQgaWNvZGUsIHJ0eCBkZXN0LCBydHggc3JjLCBydHggbGVuLA0KPiAgICAgICAg ICAgICAgICAgICAgbWFjaGluZV9tb2RlIG1hc2tfbW9kZSkgIHsNCj4gICAgZW1pdF9wcmVkX29w IChpY29kZSwgTlVMTF9SVFgsIGRlc3QsIHNyYywgbGVuLCBtYXNrX21vZGUsDQo+IC0gICAgICAg ICAgICAgICAvKiBGb3JjZSBWTE1BWCAqLyB0cnVlKTsNCj4gKyAgICAgICAgICAgICAgIC8qIEZv cmNlIFZMTUFYICovIENPTlNUX0lOVF9QIChsZW4pID8gZmFsc2UgOiB0cnVlKTsNCj4gIH0NCj4N Cj4gIHZvaWQNCj4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvdmVjdG9yLm1kIGIvZ2Nj L2NvbmZpZy9yaXNjdi92ZWN0b3IubWQgDQo+IGluZGV4IDMyOGZjZThkNjMyLi5iMDJlY2Y5MmMw MCAxMDA2NDQNCj4gLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi92ZWN0b3IubWQNCj4gKysrIGIvZ2Nj L2NvbmZpZy9yaXNjdi92ZWN0b3IubWQNCj4gQEAgLTcyMCw3ICs3MjAsNyBAQA0KPiAgICAgICAg ZW1pdF9pbnNuIChnZW5fcnR4X1NFVCAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKSk7DQo+ICAg IGVsc2UNCj4gICAgICB7DQo+IC0gICAgICByaXNjdl92ZWN0b3I6OmVtaXRfdmxtYXhfdnNldHZs ICg8Vl9GUkFDVDpNT0RFPm1vZGUsIG9wZXJhbmRzWzJdKTsNCj4gKyAgICAgIHJpc2N2X3ZlY3Rv cjo6ZW1pdF92bG1heF92c2V0dmwgKDxWX0ZSQUNUOk1PREU+bW9kZSwgDQo+ICsgJm9wZXJhbmRz WzJdKTsNCj4gICAgICAgIHJpc2N2X3ZlY3Rvcjo6ZW1pdF92bG1heF9yZWdfb3AgKGNvZGVfZm9y X3ByZWRfbW92ICg8Vl9GUkFDVDpNT0RFPm1vZGUpLA0KPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzJdLA0K PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Vk0+bW9kZSk7IEBAIC03 NDEsNyArNzQxLDcgQEANCj4gICAgICAgIGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQgKG9wZXJhbmRz WzBdLCBvcGVyYW5kc1sxXSkpOw0KPiAgICBlbHNlDQo+ICAgICAgew0KPiAtICAgICAgcmlzY3Zf dmVjdG9yOjplbWl0X3ZsbWF4X3ZzZXR2bCAoPFZCOk1PREU+bW9kZSwgb3BlcmFuZHNbMl0pOw0K PiArICAgICAgcmlzY3ZfdmVjdG9yOjplbWl0X3ZsbWF4X3ZzZXR2bCAoPFZCOk1PREU+bW9kZSwg Jm9wZXJhbmRzWzJdKTsNCj4gICAgICAgIHJpc2N2X3ZlY3Rvcjo6ZW1pdF92bG1heF9yZWdfb3Ag KGNvZGVfZm9yX3ByZWRfbW92ICg8VkI6TU9ERT5tb2RlKSwNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLCBvcGVyYW5kc1sy XSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFZCOk1PREU+bW9k ZSk7IGRpZmYgLS1naXQgDQo+IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL3ZmX2F2bC0xLmMgDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL3ZmX2F2bC0xLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAw MDAuLjExYWRmNmJjNjExDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL3ZmX2F2bC0xLmMNCj4gQEAgLTAsMCArMSwxNSBAQA0K PiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4gKy8qIHsgZGctb3B0aW9ucyAiLU8zIC1tYXJj aD1ydjMyZ2N2IC1tYWJpPWlscDMyZCAtLXBhcmFtIA0KPiArcmlzY3YtYXV0b3ZlYy1wcmVmZXJl bmNlPWZpeGVkLXZsbWF4IiB9ICovDQo+ICsNCj4gKyNpbmNsdWRlIDxzdGRpbnQtZ2NjLmg+DQo+ ICsNCj4gK3R5cGVkZWYgaW50OF90IHZueDJxaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUg KDIpKSk7DQo+ICsNCj4gK19fYXR0cmlidXRlX18gKChub2lwYSkpIHZvaWQNCj4gK2Zfdm54MnFp IChpbnQ4X3QgYSwgaW50OF90IGIsIGludDhfdCAqb3V0KSB7DQo+ICsgIHZueDJxaSB2ID0ge2Es IGJ9Ow0KPiArICAqKHZueDJxaSAqKSBvdXQgPSB2Ow0KPiArfQ0KPiArDQo+ICsvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dnNldGl2bGlccyt6ZXJvLFxzKjIsXHMq ZTgsXHMqbWY4LFxzKnRbYXVdLFxzKm1bYXVdfSAxIH0gfSAqLw0KPiAtLQ0KPiAyLjM2LjENCj4N Cg==