From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by sourceware.org (Postfix) with ESMTPS id B5CEC3858D28 for ; Tue, 18 Apr 2023 09:11:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B5CEC3858D28 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=1681809110; x=1713345110; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=mcLRWyLTxDS3fH2yvpeYzu7DjPXD8DUt13FcDurbnE4=; b=UXdyMnczd+WmTMWl+mN9sEx7wgM3bZER4aMWv86X67vIHFi00IbSf1L9 PQ5QRBvLbyyF+YvZjwLVpG/lQEdkAdP9t43VQL+6Xjc0CYvsGkXqjoSVt j6wdDvAaI2zgYsmHDvq17PT+CKQIse3IHVXj+MkQ/ltk6CQAcR8wNV1cp DamaSGhBOV132ymVkpURu6GCDEQW38fg7J4ugRs4rXRFbDWTBqNENx7cu YQk+qxHGtHQll5Gw09fVAZOhUalZOUJ4EBwVa9wlkWHuRhdklt2C0I+ry uJd49J0c/G0cfIwXGyzCIeTi/SALtA8YwKc+4nzHkKPmJZkyye6VUZ4G/ A==; X-IronPort-AV: E=McAfee;i="6600,9927,10683"; a="345118717" X-IronPort-AV: E=Sophos;i="5.99,206,1677571200"; d="scan'208";a="345118717" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Apr 2023 02:11:35 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10683"; a="760285529" X-IronPort-AV: E=Sophos;i="5.99,206,1677571200"; d="scan'208";a="760285529" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga004.fm.intel.com with ESMTP; 18 Apr 2023 02:11:34 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) 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.2507.23; Tue, 18 Apr 2023 02:11:34 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Tue, 18 Apr 2023 02:11:34 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169) 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.2507.23; Tue, 18 Apr 2023 02:11:33 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SihXlTYXyVYOVkBZVI/n+biXlFiFQrVbOdjoZWn9zXjhjTEhGlawP/gwZn8RoLFV9IMF/tTGfF/fkmdlwwpX6mj1Fkg5MOFVouc+dbQg5OC/D0UDuBZcia5Aq6b+oesr2lea96AGfhvmPSoUks2sWe+LG5C4lZ5fidb13oblTqqrjuYoqpYC1/R5Zbq/Jh0nq1rhOjn2eIqeVXGL/XIMi3r8RPgDeFjCE6UqFi2yxijKLrESvOiWpff1+9D5dfxOGGVyc3IGTCneFzJen4CFLsrHw2wrD+lqmtLmKW7sv9nh/yjaQu6nw7O06oUuhn+cXcguZHkPbG/DwHtSFEBtNg== 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=mcLRWyLTxDS3fH2yvpeYzu7DjPXD8DUt13FcDurbnE4=; b=l6lIgI9rji5lP/YYr+e8ZmgovIY4t2/vUITUff0K6JSZYAHX8iFSsaIARTkJh4ZzhOzU235O03pchixlSUjuYHf2Q4DAVdAlD+hUENXZ9EQxLLnSDKEVAjCD2geESB+iqQqw63nHqu2ML+FcGONOq+HNclmeAz5s8B+5Y772gMqcaLdkErhyyJnx0mT62+UelVBUXWcY5Rtz8xp/kSM/9kxud2eRVfIyUZWUqztZVjJSnRHNl3JIFzAwuyKpYZ6aesYFQ0PzmrbFn7PMMukPJcI7YivWDuPLLeXeBVUCr4pVA+UH7LTT30xJ6MtIyAVW8vnMBis8i5etvm3gapZc4w== 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 IA1PR11MB7270.namprd11.prod.outlook.com (2603:10b6:208:42a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6298.45; Tue, 18 Apr 2023 09:11:31 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::bbc5:f013:1f53:10a9]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::bbc5:f013:1f53:10a9%6]) with mapi id 15.20.6298.045; Tue, 18 Apr 2023 09:11:31 +0000 From: "Li, Pan2" To: "Li, Pan2" , Richard Biener CC: "gcc-patches@gcc.gnu.org" , "juzhe.zhong@rivai.ai" , "kito.cheng@sifive.com" , "rguenther@suse.de" , "Wang, Yanzhang" , "richard.sandiford@arm.com" Subject: RE: [PATCH] RISC-V: Allow Vector IOR(V1, NOT V1) optimiztion Thread-Topic: [PATCH] RISC-V: Allow Vector IOR(V1, NOT V1) optimiztion Thread-Index: AQHZcTwAxHfWo4qJP0Wi4A9KCjJ6ca8wSDNQgABsvoCAAABpgIAABJ0QgAAOq8A= Date: Tue, 18 Apr 2023 09:11:30 +0000 Message-ID: References: <20230417145025.2291874-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_|IA1PR11MB7270:EE_ x-ms-office365-filtering-correlation-id: f336de96-2128-461c-314a-08db3fece636 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: U0wMtxJ2IedHdjntYPj3MxZruq7Z9FVscIUIdhnURo6BmTLDhQSl6UTCVBymVZf+RBJFOabpbxnexDnTZYSwsJ18mgWPZ57NmvxrUkTA5TZ7fMvV46BF3bLXpqpuS662YPFkMeBux9ORtP8nwL/z8q12ZH/ZpUxqseto9YCvzVnSHgjKAb7b3nkoNK8APZFkBFQJ2oyJc9YIPhmJPqlaxeH4MWAVmTkiu/tT3oarzwZoSuAIso9lX4qN9xyAxCr2fOnmMxyHp8JgehzFfduZGjO08nuPqvjH6oq31hbjioYyljIjEA68tIXwDOXW/gBAMN47qWST7GESV26pX2s3GzgTc0vWWulHFWVBsVKj5UlLm95QyjLtejxkeo92l3u6MlU7L1Tqzg1q/SfQN6zU8okLDBCkCRlSS8W1n8fPAS7PvZU8L9RWLUs9MJgBbp9zQcjwzchI+zCeN9WldzXUI1NXS8EHbrNXRwFLA/BK5YpbIfpNEqnow71IxOiy3tQNANR2PtU+reRCsVKiErteRXIkDu8Oi+94RDsdtZTNCFPoOrbu7zuHa0Ct8q88ZuPadJK5pmL+NYf4qhF1Kp5VT9cktGHxkwL7C/QRVGjeqrY= 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)(376002)(366004)(396003)(136003)(39860400002)(346002)(451199021)(33656002)(76116006)(4326008)(110136005)(54906003)(316002)(66446008)(64756008)(66946007)(66556008)(66476007)(966005)(71200400001)(7696005)(478600001)(41300700001)(5660300002)(8676002)(55016003)(8936002)(2906002)(52536014)(38070700005)(86362001)(82960400001)(122000001)(38100700002)(2940100002)(6506007)(9686003)(26005)(186003)(53546011)(83380400001)(84970400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UHpvQkd3SGluSS9sSjk1cXQ0cjhBT0I2TlBCRm1NNE5nTTdtbnR6c2xQUy9H?= =?utf-8?B?YlpJc2dNRzk0bEZVaFRhbTFLNzd1YktjWTZDVnFCekhWRmJ1SHh6VENZUXhi?= =?utf-8?B?a0VWekJ5UGlIeDIrbVBoZFJIb1FIb1VlYTZwWHJHdlowNGpUU1pSTWVMZTFN?= =?utf-8?B?K1hNYUw3WVk4QXF2bXpMWWRjL1YzbHpyM3pxcDhUSmlQME50Y1FLczhxdGE0?= =?utf-8?B?YlIxcFdoUEhkdXBTa0xBRVVEbERicGduQXl0WEN2L1hNN2RTcTJnOU54SVZJ?= =?utf-8?B?WW5xY1R4Yyt5OTE4bEQ2K1lud1EzT1BEMEZDdGExYzlBL3FCc1J5dWo2a1V1?= =?utf-8?B?QVB6TmNHeGxJaE43RFB1MmxVVjdScTUvSHlnUDArN3VoMC8wSm15Q2l6RnpJ?= =?utf-8?B?ZkN4MnpOMGRnTTRUK0dzTVlOQkVqL3NxSDlEbDJERmlqOHIzRVFjVTZsSzI0?= =?utf-8?B?TlNrcjBoUklETUJoWGdqZXl6bXJiZlRlQjYrbHRVblpRYjlSRldwVDJCTlFp?= =?utf-8?B?TkgxdmtmcVlNTkY1R05tKy82Tko3U3VNZnArd3BuaGFaVE5zS2Y3RXMweEp4?= =?utf-8?B?cTBDaDBQWjRDOTFSc2psZ1ZFN0hsL1pzWUlRVUx4UDZDMlBmRWM5eFRNTTlF?= =?utf-8?B?YVlzYWlpT2wyeWxPVUxkY1QrSWNzcXRzcGhudDVXQmR6ZTE1b29GdUZVTVFW?= =?utf-8?B?OEFqWkVjNFFNdjZiZFI5STk1cDNqa2lIbjgvOUIwU3V4ZUdyc29IbENCZlpN?= =?utf-8?B?VVRqcG9tcE5hbVhXL3ZEY1AvOW5hTmZQOFVmd3JkQmFyTUN6R2RQbUxmVWMz?= =?utf-8?B?cFAwMVVxQ3ZpcmFIR1hFRUxtdG1sYWhRUngrY1owSU9lcFV4RFF1aEw0NDlD?= =?utf-8?B?NWpBNXM1cS9tWFFrTzRES09vNldtWmt3ZU9YUUphaU43RnB4VWpFSEdSTXR5?= =?utf-8?B?aXBaR0tsOHYydExFK1lUcDNLQitteXRScW1oL1pqSWhHMnpLb3JFTXl5aHFP?= =?utf-8?B?eEhxaEFDUmlWYlFOUkI2MUJ1VjFPbmpCalMxSzd2RjZhZFQ0aVpWZC9FYVNI?= =?utf-8?B?bnNvNGF4ODBsaThYMmhMalhKWUZCSVRYL1A2WHEwN2FXbjc0OXpvZEFwUjFV?= =?utf-8?B?KytxLzIzVXQydFBtaTdTTVg2bC9ic2Z6cWNxeWN5NWhxb0FwVTJQSjNHcFZx?= =?utf-8?B?bVZsSUplaGZzRm1MSVZmWFdjcE91bUNTWjhSSXBMUlA0WkdtV3AvM1p2YlVP?= =?utf-8?B?VEtYVHdBcDVpSWNtQUVaM20wZ1NRR0tUK0ljYzdJRVgwdXYwT3BQckt6Ulhj?= =?utf-8?B?Nlg5SmVlZFAvWkNIQzYxWjBjamdSclFRTXZpNG1oNEJIMUVTaEFqMHVxbjNP?= =?utf-8?B?a2VpT3l3VjVoOGlOUUpXREJ5NUNBZUcwbnNITFZpRzFoMzdyNUlUd3BKVEd1?= =?utf-8?B?ZXlPejhiSEFyTTNRSElXU3FRYTE0TUhIR2NtVEhBdzViOVc1ZDlhMVU3V0Fl?= =?utf-8?B?dytWQkpiaWdFVHF0K0FpY2cvQ1U2VDRDVTBadUhBYXN5MUNCOGt0cGdLclQw?= =?utf-8?B?aWk5SzQzTmhycEdYdzBFNFNLZk03aWI2L0dZWStaVjFvcXNLWXZJZE9jZ0pm?= =?utf-8?B?ZDl6RHZ4anFrcWRBMmx3MkZVR1A1dUVuK29uc2V3c0N3emZqM091WkErWVlK?= =?utf-8?B?V1NqV3grVXZqNi8wMi9qTG1mSmxRLzZpNVFFS0lxTFZvTWg0WGlubTdmNlBi?= =?utf-8?B?MnRZbVFvTjdKZThmc1BOMTNnTlNFeDR4WEhuN2ZHeG42RWRMa1hpZWhBN0pl?= =?utf-8?B?L09jMnJIQm1qVllpWElOVFRQMmRjWVowbnRVajA2SGpiRTNLUDFPMVk4bU1W?= =?utf-8?B?QVBzcFprbFdQWmRpWGRnVHRVb0tOOU5iQ3Z0M1N6V3VXN21tQ3F2RzVyaStG?= =?utf-8?B?NzlvM0FydHplbjFIZGdEWEovZFZScThEWGMvaGFPOGhnNzNva0grcEZjampH?= =?utf-8?B?Y2hrZVFmV2ZUZWhhK3BpVHkvOG4rR1lPT0lqSWpDdXlOaVFITmhXNXM3YXR3?= =?utf-8?B?N05XYXNqbHVSUXV4QmhWRUI2NFE5dW1YbmRUaE5VcTVFTHFpUk5ybFQrL2dU?= =?utf-8?Q?bx5I=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: f336de96-2128-461c-314a-08db3fece636 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Apr 2023 09:11:31.0008 (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: X9kd6kMtZG7DfilDn0qSCgqi13bep3P4su7dJtY1QsST6fhRtZu7apoDRY+D9P4G6gABID6t9cDeIkcqchBsrQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB7270 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-12.5 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: VXBkYXRlIHRoZSBQQVRDSCB2MiBoZXJlLCBodHRwczovL2djYy5nbnUub3JnL3BpcGVybWFpbC9n Y2MtcGF0Y2hlcy8yMDIzLUFwcmlsLzYxNTkzNy5odG1sLg0KDQpSdW5uaW5nIHRoZSBib29zdHJh cC9yZWdyZXNzaW9uIHRlc3QsIGFuZCBrZWVwIHlvdSBwb3N0ZWQuDQoNClBhbg0KDQotLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogR2NjLXBhdGNoZXMgPGdjYy1wYXRjaGVzLWJvdW5j ZXMrcGFuMi5saT1pbnRlbC5jb21AZ2NjLmdudS5vcmc+IE9uIEJlaGFsZiBPZiBMaSwgUGFuMiB2 aWEgR2NjLXBhdGNoZXMNClNlbnQ6IFR1ZXNkYXksIEFwcmlsIDE4LCAyMDIzIDQ6MjAgUE0NClRv OiBSaWNoYXJkIEJpZW5lciA8cmljaGFyZC5ndWVudGhlckBnbWFpbC5jb20+DQpDYzogZ2NjLXBh dGNoZXNAZ2NjLmdudS5vcmc7IGp1emhlLnpob25nQHJpdmFpLmFpOyBraXRvLmNoZW5nQHNpZml2 ZS5jb207IHJndWVudGhlckBzdXNlLmRlOyBXYW5nLCBZYW56aGFuZyA8eWFuemhhbmcud2FuZ0Bp bnRlbC5jb20+OyByaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tDQpTdWJqZWN0OiBSRTogW1BBVENI XSBSSVNDLVY6IEFsbG93IFZlY3RvciBJT1IoVjEsIE5PVCBWMSkgb3B0aW1penRpb24NCg0KSSBs b29rIGludG8gdGhlIElPUiBzaW1wbGlmaWNhdGlvbiBjb2RlIGZvciB0aGlzIG9wdGltaXphdGlv bi4gTW9zdGx5IEkgdHJ5IHRvIGltcGxlbWVudCB0aGVtIHdpdGggZ2VuZXJpYyB2ZWN0b3Igb3Bl cmF0aW9ucy4NCg0KUGFuDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBSaWNo YXJkIEJpZW5lciA8cmljaGFyZC5ndWVudGhlckBnbWFpbC5jb20+DQpTZW50OiBUdWVzZGF5LCBB cHJpbCAxOCwgMjAyMyA0OjAxIFBNDQpUbzogTGksIFBhbjIgPHBhbjIubGlAaW50ZWwuY29tPg0K Q2M6IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnOyBqdXpoZS56aG9uZ0ByaXZhaS5haTsga2l0by5j aGVuZ0BzaWZpdmUuY29tOyByZ3VlbnRoZXJAc3VzZS5kZTsgV2FuZywgWWFuemhhbmcgPHlhbnpo YW5nLndhbmdAaW50ZWwuY29tPjsgcmljaGFyZC5zYW5kaWZvcmRAYXJtLmNvbQ0KU3ViamVjdDog UmU6IFtQQVRDSF0gUklTQy1WOiBBbGxvdyBWZWN0b3IgSU9SKFYxLCBOT1QgVjEpIG9wdGltaXp0 aW9uDQoNCk9uIFR1ZSwgQXByIDE4LCAyMDIzIGF0IDk6NTnigK9BTSBSaWNoYXJkIEJpZW5lciA8 cmljaGFyZC5ndWVudGhlckBnbWFpbC5jb20+IHdyb3RlOg0KPg0KPiBPbiBUdWUsIEFwciAxOCwg MjAyMyBhdCAzOjMx4oCvQU0gTGksIFBhbjIgdmlhIEdjYy1wYXRjaGVzIA0KPiA8Z2NjLXBhdGNo ZXNAZ2NjLmdudS5vcmc+IHdyb3RlOg0KPiA+DQo+ID4gUGFzc2VkIHRoZSBYODYgYm9vdHN0cmFw IGFuZCByZWdyZXNzaW9uIHRlc3RzLg0KPiA+DQo+ID4gUGFuDQo+ID4NCj4gPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IExpLCBQYW4yIDxwYW4yLmxpQGludGVsLmNvbT4N Cj4gPiBTZW50OiBNb25kYXksIEFwcmlsIDE3LCAyMDIzIDEwOjUwIFBNDQo+ID4gVG86IGdjYy1w YXRjaGVzQGdjYy5nbnUub3JnDQo+ID4gQ2M6IGp1emhlLnpob25nQHJpdmFpLmFpOyBraXRvLmNo ZW5nQHNpZml2ZS5jb207IHJndWVudGhlckBzdXNlLmRlOyANCj4gPiBMaSwgUGFuMiA8cGFuMi5s aUBpbnRlbC5jb20+OyBXYW5nLCBZYW56aGFuZyANCj4gPiA8eWFuemhhbmcud2FuZ0BpbnRlbC5j b20+OyByaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tDQo+ID4gU3ViamVjdDogW1BBVENIXSBSSVND LVY6IEFsbG93IFZlY3RvciBJT1IoVjEsIE5PVCBWMSkgb3B0aW1penRpb24NCj4gPg0KPiA+IEZy b206IFBhbiBMaSA8cGFuMi5saUBpbnRlbC5jb20+DQo+ID4NCj4gPiBUaGlzIHBhdGNoIGFkZCB0 aGUgb3B0aW1pemF0aW9uIGZvciB0aGUgdmVjdG9yIElPUihWMSwgTk9UIFYxKS4gQXNzdW1lIHdl IGhhdmUgYmVsb3cgc2FtcGxlIGNvZGUuDQo+ID4NCj4gPiB2Ym9vbDMyX3QgdGVzdF9zaG9ydGN1 dF9mb3JfcmlzY3Zfdm1vcm5fY2FzZV81KHZib29sMzJfdCB2MSwgc2l6ZV90IHZsKSB7DQo+ID4g ICByZXR1cm4gX19yaXNjdl92bW9ybl9tbV9iMzIodjEsIHYxLCB2bCk7IH0NCg0KQnR3LCB0aGlz IGFsc28gc2hvd3MgeW91IG1pZ2h0IHdhbnQgdG8gY29uc2lkZXIgaW5saW5pbmcgdGhlIGludHJp bnNpY3MgaW4gdGFyZ2V0IHNwZWNpZmljIGZvbGRpbmcgb3IgaW1wbGVtZW50IHRoZW0gd2l0aCBn ZW5lcmljIHZlY3RvciBvcGVyYXRpb25zIGluIHRoZSBoZWFkZXJzLg0KDQo+ID4NCj4gPiBCZWZv cmUgdGhpcyBwYXRjaDoNCj4gPiB2c2V0dmxpICBhNSx6ZXJvLGU4LG1mNCx0YSxtYQ0KPiA+IHZs bS52ICAgIHYyNCwwKGExKQ0KPiA+IHZzZXR2bGkgIHplcm8sYTIsZTgsbWY0LHRhLG1hDQo+ID4g dm1vcm4ubW0gdjI0LHYyNCx2MjQNCj4gPiB2c2V0dmxpICBhNSx6ZXJvLGU4LG1mNCx0YSxtYQ0K PiA+IHZzbS52ICAgIHYyNCwwKGEwKQ0KPiA+IHJldA0KPiA+DQo+ID4gQWZ0ZXIgdGhpcyBwYXRj aDoNCj4gPiB2c2V0dmxpIHplcm8sYTIsZTgsbWY0LHRhLG1hDQo+ID4gdm1zZXQubSB2MjQNCj4g PiB2c2V0dmxpIGE1LHplcm8sZTgsbWY0LHRhLG1hDQo+ID4gdnNtLnYgICB2MjQsMChhMCkNCj4g PiByZXQNCj4gPg0KPiA+IE9yIGluIFJUTCdzIHBlcnNwZWN0aXZlLA0KPiA+IGZyb206DQo+ID4g KGlvcjpWTngyQkkgKHJlZy92OlZOeDJCSSAxMzcgWyB2MSBdKSAobm90OlZOeDJCSSAocmVnL3Y6 Vk54MkJJIDEzNyANCj4gPiBbIHYxIF0pKSkNCj4gPiB0bzoNCj4gPiAoY29uc3RfdmVjdG9yOlZO eDJCSSByZXBlYXQgWyAoY29uc3RfaW50IDEgWzB4MV0pIF0pDQo+ID4NCj4gPiBUaGUgc2ltaWxh ciBvcHRpbWl6YXRpb24gbGlrZSBWTUFORE4gaGFzIGVuYWJsZWQgYWxyZWFkeS4gVGhlcmUgc2hv dWxkIGJlIG5vIGRpZmZlcmVuY2UgZXhlY3B0IHRoZSBvcGVyYXRvciB3aGVuIGNvbXBhcmUgdGhl IFZNT1JOIGFuZCBWTUFORE4gZm9yIHN1Y2gga2luZCBvZiBvcHRpbWl6YXRpb24uIFRoZSBwYXRj aCBhbGxvd3MgdGhlIFZFQ1RPUl9CT09MIElPUihWMSwgTk9UIFYxKSBzaW1wbGlmaWNhdGlvbiBi ZXNpZGVzIHRoZSBleGlzdGluZyBTQ0FMQVJfSU5UIG1vZGUuDQo+ID4NCj4gPiBnY2MvQ2hhbmdl TG9nOg0KPiA+DQo+ID4gICAgICAgICAqIG1hY2htb2RlLmggKFZFQ1RPUl9CT09MX01PREVfUCk6 DQo+ID4gICAgICAgICAqIHNpbXBsaWZ5LXJ0eC5jYyAodmFsaWRfbW9kZV9mb3JfaW9yX3NpbXBs aWZpY2F0aW9uX3ApOg0KPiA+ICAgICAgICAgKHNpbXBsaWZ5X2NvbnRleHQ6OnNpbXBsaWZ5X2Jp bmFyeV9vcGVyYXRpb25fMSk6DQo+ID4NCj4gPiBnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCj4g Pg0KPiA+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL21hc2tfaW5zbl9zaG9y dGN1dC5jOg0KPiA+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3NpbXBsaWZ5X2lvcl9vcHRp bWl6YXRpb24uYzogTmV3IHRlc3QuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBQYW4gTGkgPHBh bjIubGlAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICBnY2MvbWFjaG1vZGUuaCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgNCArKw0KPiA+ICBnY2Mvc2ltcGxpZnktcnR4LmNjICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAxMCArKystDQo+ID4gIC4uLi9yaXNjdi9ydnYvYmFz ZS9tYXNrX2luc25fc2hvcnRjdXQuYyAgICAgICB8ICAzICstDQo+ID4gIC4uLi9yaXNjdi9zaW1w bGlmeV9pb3Jfb3B0aW1pemF0aW9uLmMgICAgICAgICB8IDUwICsrKysrKysrKysrKysrKysrKysN Cj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKSAg Y3JlYXRlIG1vZGUNCj4gPiAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3Np bXBsaWZ5X2lvcl9vcHRpbWl6YXRpb24uYw0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2djYy9tYWNo bW9kZS5oIGIvZ2NjL21hY2htb2RlLmggaW5kZXgNCj4gPiBmMTg2NWMxZWY0Mi4uNzcxYmFlODlj YjcgMTAwNjQ0DQo+ID4gLS0tIGEvZ2NjL21hY2htb2RlLmgNCj4gPiArKysgYi9nY2MvbWFjaG1v ZGUuaA0KPiA+IEBAIC0xMzQsNiArMTM0LDEwIEBAIGV4dGVybiBjb25zdCB1bnNpZ25lZCBjaGFy IG1vZGVfY2xhc3NbTlVNX01BQ0hJTkVfTU9ERVNdOw0KPiA+ICAgICB8fCBHRVRfTU9ERV9DTEFT UyAoTU9ERSkgPT0gTU9ERV9WRUNUT1JfQUNDVU0gICAgICAgXA0KPiA+ICAgICB8fCBHRVRfTU9E RV9DTEFTUyAoTU9ERSkgPT0gTU9ERV9WRUNUT1JfVUFDQ1VNKQ0KPiA+DQo+ID4gKy8qIE5vbnpl cm8gaWYgTU9ERSBpcyBhIHZlY3RvciBib29sIG1vZGUuICAqLw0KPiA+ICsjZGVmaW5lIFZFQ1RP Ul9CT09MX01PREVfUChNT0RFKSAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ICsgIChHRVRf TU9ERV9DTEFTUyAoTU9ERSkgPT0gTU9ERV9WRUNUT1JfQk9PTCkgICAgICAgICAgXA0KPiA+ICsN Cj4gPiAgLyogTm9uemVybyBpZiBNT0RFIGlzIGEgc2NhbGFyIGludGVncmFsIG1vZGUuICAqLw0K PiA+ICAjZGVmaW5lIFNDQUxBUl9JTlRfTU9ERV9QKE1PREUpICAgICAgICAgICAgICAgICAgICAg ICAgXA0KPiA+ICAgIChHRVRfTU9ERV9DTEFTUyAoTU9ERSkgPT0gTU9ERV9JTlQgICAgICAgICAg IFwNCj4gPiBkaWZmIC0tZ2l0IGEvZ2NjL3NpbXBsaWZ5LXJ0eC5jYyBiL2djYy9zaW1wbGlmeS1y dHguY2MgaW5kZXggDQo+ID4gZWU3NTA3OTkxN2YuLmVmZjI3YjgzNWJmIDEwMDY0NA0KPiA+IC0t LSBhL2djYy9zaW1wbGlmeS1ydHguY2MNCj4gPiArKysgYi9nY2Mvc2ltcGxpZnktcnR4LmNjDQo+ ID4gQEAgLTU3LDYgKzU3LDEyIEBAIG5lZ19wb2x5X2ludF9ydHggKG1hY2hpbmVfbW9kZSBtb2Rl LCBjb25zdF9ydHggaSkNCj4gPiAgICByZXR1cm4gaW1tZWRfd2lkZV9pbnRfY29uc3QgKC13aTo6 dG9fcG9seV93aWRlIChpLCBtb2RlKSwgbW9kZSk7IA0KPiA+IH0NCj4gPg0KPiA+ICtzdGF0aWMg Ym9vbA0KPiA+ICt2YWxpZF9tb2RlX2Zvcl9pb3Jfc2ltcGxpZmljYXRpb25fcCAobWFjaGluZV9t b2RlIG1vZGUpIHsNCj4gPiArICByZXR1cm4gU0NBTEFSX0lOVF9NT0RFX1AgKG1vZGUpIHx8IFZF Q1RPUl9CT09MX01PREVfUCAobW9kZSk7IH0NCj4gPiArDQo+ID4gIC8qIFRlc3Qgd2hldGhlciBl eHByZXNzaW9uLCBYLCBpcyBhbiBpbW1lZGlhdGUgY29uc3RhbnQgdGhhdCByZXByZXNlbnRzDQo+ ID4gICAgIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBvZiBtYWNoaW5lIG1vZGUgTU9ERS4gICov DQo+ID4NCj4gPiBAQCAtMzMzMiw4ICszMzM4LDggQEAgc2ltcGxpZnlfY29udGV4dDo6c2ltcGxp ZnlfYmluYXJ5X29wZXJhdGlvbl8xIChydHhfY29kZSBjb2RlLA0KPiA+ICAgICAgICBpZiAoKChH RVRfQ09ERSAob3AwKSA9PSBOT1QgJiYgcnR4X2VxdWFsX3AgKFhFWFAgKG9wMCwgMCksIG9wMSkp DQo+ID4gICAgICAgICAgICB8fCAoR0VUX0NPREUgKG9wMSkgPT0gTk9UICYmIHJ0eF9lcXVhbF9w IChYRVhQIChvcDEsIDApLCBvcDApKSkNCj4gPiAgICAgICAgICAgJiYgISBzaWRlX2VmZmVjdHNf cCAob3AwKQ0KPiA+IC0gICAgICAgICAmJiBTQ0FMQVJfSU5UX01PREVfUCAobW9kZSkpDQo+ID4g LSAgICAgICByZXR1cm4gY29uc3RtMV9ydHg7DQo+ID4gKyAgICAgICAgICYmIHZhbGlkX21vZGVf Zm9yX2lvcl9zaW1wbGlmaWNhdGlvbl9wIChtb2RlKSkNCj4NCj4gZm9yIHNpbXBsZSBwcmVkaWNh dGVzIGxpa2UgdGhpcyBwbGVhc2UgZG8gbm90IHNwbGl0IHRoZW0gb3V0LCBpdCBtYWtlcyANCj4g dW5kZXJzdGFuZGluZyB0aGUgY29kZSBtb3JlIGRpZmZpY3VsdC4NCj4NCj4gPiArICAgICAgIHJl dHVybiBDT05TVDFfUlRYIChtb2RlKTsNCj4NCj4gc2hvdWxkbid0IHRoaXMgYmUgQ09OU1RNMV9S VFggKG1vZGUpPyAgV2h5IGlzIHRoaXMgb25seSB2YWxpZCBmb3IgDQo+IFZFQ1RPUl9CT09MIGFu ZCBub3QgYWxzbyBmb3IgVkVDVE9SX0lOVD8gIFlvdSdyZSBjaXRpbmcgQU5EIGFuZCB0aGF0IA0K PiBkb2VzDQo+DQo+ICAgICAgIC8qIEEgJiAofkEpIC0+IDAgKi8NCj4gICAgICAgaWYgKCgoR0VU X0NPREUgKG9wMCkgPT0gTk9UICYmIHJ0eF9lcXVhbF9wIChYRVhQIChvcDAsIDApLCBvcDEpKQ0K PiAgICAgICAgICAgIHx8IChHRVRfQ09ERSAob3AxKSA9PSBOT1QgJiYgcnR4X2VxdWFsX3AgKFhF WFAgKG9wMSwgMCksIG9wMCkpKQ0KPiAgICAgICAgICAgJiYgISBzaWRlX2VmZmVjdHNfcCAob3Aw KQ0KPiAgICAgICAgICAgJiYgR0VUX01PREVfQ0xBU1MgKG1vZGUpICE9IE1PREVfQ0MpDQo+ICAg ICAgICAgcmV0dXJuIENPTlNUMF9SVFggKG1vZGUpOw0KPg0KPiBzbyB3aHkgZGlmZmVyIGFuZCBu b3QgdXNlIHRoZSBzYW1lIEdFVF9NT0RFX0NMQVNTIChtb2RlKSAhPSBNT0RFX0NDIGNvbmRpdGlv bj8NCj4NCj4gUmljaGFyZC4NCj4NCj4gPg0KPiA+ICAgICAgICAvKiAoaW9yIEEgQykgaXMgQyBp ZiBhbGwgYml0cyBvZiBBIHRoYXQgbWlnaHQgYmUgbm9uemVybyBhcmUgb24gaW4gQy4gICovDQo+ ID4gICAgICAgIGlmIChDT05TVF9JTlRfUCAob3AxKQ0KPiA+IGRpZmYgLS1naXQNCj4gPiBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9tYXNrX2luc25fc2hvcnRjdXQu Yw0KPiA+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL21hc2tfaW5z bl9zaG9ydGN1dC5jDQo+ID4gaW5kZXggODNjYzRhMWI1YTUuLjU3ZDAyNDE2NzVhIDEwMDY0NA0K PiA+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9tYXNrX2lu c25fc2hvcnRjdXQuYw0KPiA+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9tYXNrX2luc25fc2hvcnRjdXQuYw0KPiA+IEBAIC0yMzMsOSArMjMzLDggQEAgdmJv b2w2NF90DQo+ID4gdGVzdF9zaG9ydGN1dF9mb3JfcmlzY3Zfdm14bm9yX2Nhc2VfNih2Ym9vbDY0 X3QgdjEsIHNpemVfdCB2bCkgew0KPiA+ICAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt bm90IHt2bXhvclwubW1ccyt2WzAtOV0rLFxzKnZbMC05XSt9IA0KPiA+IH0gfSAqLw0KPiA+ICAv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHt2bW9yXC5tbVxzK3ZbMC05XSssXHMq dlswLTldK30gDQo+ID4gfSB9ICovDQo+ID4gIC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci1ub3Qge3Ztbm9yXC5tbVxzK3ZbMC05XSssXHMqdlswLTldK30gDQo+ID4gfSB9ICovDQo+ID4g LS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyANCj4gPiB7dm1vcm5cLm1tXHMr dlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDcgfSB9ICovDQo+ID4gIC8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci1ub3QgDQo+ID4ge3ZteG5vclwubW1ccyt2WzAtOV0rLFxzKnZb MC05XSt9IH0gfSAqLw0KPiA+ICAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e3ZtY2xyXC5tXHMrdlswLTldK30gMTQgfSB9ICovDQo+ID4gLS8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dm1zZXRcLm1ccyt2WzAtOV0rfSA3IH0gfSAqLw0KPiA+ICsvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Ztc2V0XC5tXHMrdlswLTldK30gMTQg fSB9ICovDQo+ID4gIC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dm1tdlwu bVxzK3ZbMC05XSssXHMqdlswLTldK30NCj4gPiAxNCB9IH0gKi8NCj4gPiAgLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIA0KPiA+IHt2bW5vdFwubVxzK3ZbMC05XSssXHMqdlsw LTldK30gMTQgfSB9ICovIGRpZmYgLS1naXQgDQo+ID4gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3Yvc2ltcGxpZnlfaW9yX29wdGltaXphdGlvbi5jDQo+ID4gYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3Yvc2ltcGxpZnlfaW9yX29wdGltaXphdGlvbi5jDQo+ID4gbmV3IGZp bGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwMC4uZWMzYmQwYmFmMDMNCj4gPiAt LS0gL2Rldi9udWxsDQo+ID4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3Np bXBsaWZ5X2lvcl9vcHRpbWl6YXRpb24uYw0KPiA+IEBAIC0wLDAgKzEsNTAgQEANCj4gPiArLyog eyBkZy1kbyBjb21waWxlIH0gKi8NCj4gPiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdj IC1tYWJpPWxwNjQgLU8yIiB9ICovDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8c3RkaW50Lmg+DQo+ ID4gKw0KPiA+ICt1aW50OF90IHRlc3Rfc2ltcGxpZnlfaW9yX3NjYWxhcl9jYXNlXzAgKHVpbnQ4 X3QgYSkgew0KPiA+ICsgIHJldHVybiBhIHwgfmE7DQo+ID4gK30NCj4gPiArDQo+ID4gK3VpbnQx Nl90IHRlc3Rfc2ltcGxpZnlfaW9yX3NjYWxhcl9jYXNlXzEgKHVpbnQxNl90IGEpIHsNCj4gPiAr ICByZXR1cm4gYSB8IH5hOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICt1aW50MzJfdCB0ZXN0X3NpbXBs aWZ5X2lvcl9zY2FsYXJfY2FzZV8yICh1aW50MzJfdCBhKSB7DQo+ID4gKyAgcmV0dXJuIGEgfCB+ YTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArdWludDY0X3QgdGVzdF9zaW1wbGlmeV9pb3Jfc2NhbGFy X2Nhc2VfMyAodWludDY0X3QgYSkgew0KPiA+ICsgIHJldHVybiBhIHwgfmE7DQo+ID4gK30NCj4g PiArDQo+ID4gK2ludDhfdCB0ZXN0X3NpbXBsaWZ5X2lvcl9zY2FsYXJfY2FzZV80IChpbnQ4X3Qg YSkgew0KPiA+ICsgIHJldHVybiBhIHwgfmE7DQo+ID4gK30NCj4gPiArDQo+ID4gK2ludDE2X3Qg dGVzdF9zaW1wbGlmeV9pb3Jfc2NhbGFyX2Nhc2VfNSAoaW50MTZfdCBhKSB7DQo+ID4gKyAgcmV0 dXJuIGEgfCB+YTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAraW50MzJfdCB0ZXN0X3NpbXBsaWZ5X2lv cl9zY2FsYXJfY2FzZV82IChpbnQzMl90IGEpIHsNCj4gPiArICByZXR1cm4gYSB8IH5hOw0KPiA+ ICt9DQo+ID4gKw0KPiA+ICtpbnQ2NF90IHRlc3Rfc2ltcGxpZnlfaW9yX3NjYWxhcl9jYXNlXzcg KGludDY0X3QgYSkgew0KPiA+ICsgIHJldHVybiBhIHwgfmE7DQo+ID4gK30NCj4gPiArDQo+ID4g Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7bGlccythWzAtOV0rLFxzKi0x fSA2IH0gfSAqLw0KPiA+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2xp XHMrYVswLTldKyxccyoyNTV9IDEgfSB9ICovDQo+ID4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7bGlccythWzAtOV0rLFxzKjY1NTM2fSAxIH0gfSANCj4gPiArKi8NCj4g PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7b3JccythWzAtOV0rfSB9IH0g Ki8NCj4gPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7bm90XHMrYVswLTld K30gfSB9ICovDQo+ID4gLS0NCj4gPiAyLjM0LjENCj4gPg0K