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 3020A383DF95 for ; Thu, 23 Nov 2023 01:20:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3020A383DF95 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3020A383DF95 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=192.55.52.115 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1700702456; cv=pass; b=ikWZFjbL2JiqRhpugHPASVFslkOE+A4lyAWHmh9gr9XiB2wWl5lTQBIrzFtiNX48ZUABIYs/jT6ntiwH0vOjlIZr1qfhv5KLBysIs6/uB/C1M1NB8QYoxDcTrqsM8om921U0KtN0UmSXV1Bw1HA6zMuerJMFfbALuk7852omSBs= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1700702456; c=relaxed/simple; bh=NceV4WObvwgEWQ04LFfa8sEOsFVwa1EuaC+cUNYwf3E=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=MMVDJwy9fYEY0RwUCOA/lfrN6xs831YXwiTUzpzkdMjhjL8MF2iSpWedyWWyYUEk4DheMBHKea4DX4iXJZSofW5I7K/4fLkn8cl0JMGijgo+Q6GN/xJUaiY+L/RH6sNWcxTJKRbxdYZl1f7uUqo+I4vlWxXhLCykKI2UePG7yNU= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1700702453; x=1732238453; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=NceV4WObvwgEWQ04LFfa8sEOsFVwa1EuaC+cUNYwf3E=; b=oIGGixB2RAn/Dr8afnQ0DtzM575IcEAQFr606Wj0pem3+2ZIKYPWECmj +Nf9xs/S71ZrFlpB71pmRvdIMywZLDAO5N0AIK1euakQnQYQWw+uEeOTl uzBQLw/XNpLKXn0x4gI3PtGN3aK4f+ZYl1zrLpYcyXh1D5EtlNTUJuxrP 7XMaYLvqPSiTWaj8OGryovvmMryd84QcYPPsHJAdkvEZNF+bIpt0oLyyM U1cArBQVG6UXC3keQ/t61PYmw4rq4T91Q6dVBxWVxSKodEZOP/ncPMhTx OKH3sDZzIvzsJQgH+Y3PN91NvWDLM0W/5teR9Ia2RRJ/hBKM/dFi4pJHt g==; X-IronPort-AV: E=McAfee;i="6600,9927,10902"; a="391948049" X-IronPort-AV: E=Sophos;i="6.04,220,1695711600"; d="scan'208";a="391948049" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Nov 2023 17:20:51 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10902"; a="1098634333" X-IronPort-AV: E=Sophos;i="6.04,220,1695711600"; d="scan'208";a="1098634333" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga005.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 22 Nov 2023 17:20:51 -0800 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.34; Wed, 22 Nov 2023 17:20:51 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) 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.34; Wed, 22 Nov 2023 17:20:51 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) 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.34 via Frontend Transport; Wed, 22 Nov 2023 17:20:51 -0800 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Wed, 22 Nov 2023 17:20:46 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iiQLqiJDHx/QxSRugOwva6xmEIvYvtW4tQxA9jEGURu7A452DxPjpi6Hqu/qr731xYb/U/HeBAkN4rvU8yEMa2pKtWOiIEjx+hNDGvuwPhRAcRPup013Yw6AwVl435WNdVO1odEMhA/mgHPcydHrCyTUyJKmfe0wBBgfQduUib8taw48QrJoAfiL+DTgVu4m+B0MRJmvduUJVpu0pWVuqPBqB+VCUVZcy1uhLqq0PyRx87TiDiFeeC0dY2QSL9G9i7nMLpOSG18qVnOD2miaurLadqoAWSqSKleB4lKcr2K+1GK4sJyp67DL71hBcApJxjqG2y+BgFRe7dk9Qhb4Dg== 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=NceV4WObvwgEWQ04LFfa8sEOsFVwa1EuaC+cUNYwf3E=; b=BHwSp9wRWjKJKOTZ/7ThEVz2KdlJaOvH1N5bAX8sd+ofZVVglQLit8H3ibXBZUfUbnYcHnD6Z1LOUGZDnoY4Mhzq4RgNq71tUjF4B5pToY2Vyt37kkF/1ULvi7UKTMt5N5YcvnaO2zoKJb8GtV+0WOmt8SYeaZNI2u2OlTSYeCS8Cvj3m7g1oFT6af0ihsrHVy75I39FFJbvn/MWe1Jz6V+xQ/fYbla2Ljbme45VzFplKCutXGj5VFOyGS/NQOfi4uUSsEUQrY8r/bhh98yF1NmKdEXQ2uH7Azpymf0T85BqrvVMzEEFVkEyCvahS3kESi+qg5DtT2woHdhyYXMc5g== 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 PH0PR11MB5175.namprd11.prod.outlook.com (2603:10b6:510:3d::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.19; Thu, 23 Nov 2023 01:20:43 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::4317:53a0:2638:358c]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::4317:53a0:2638:358c%5]) with mapi id 15.20.7025.017; Thu, 23 Nov 2023 01:20:43 +0000 From: "Li, Pan2" To: Richard Sandiford CC: Richard Biener , "juzhe.zhong@rivai.ai" , "Wang, Yanzhang" , "kito.cheng@gmail.com" , Jeff Law , "gcc-patches@gcc.gnu.org" Subject: RE: [PATCH v4] DSE: Allow vector type for get_stored_val when read < store Thread-Topic: [PATCH v4] DSE: Allow vector type for get_stored_val when read < store Thread-Index: AQHaFeCtiILIvA/cUE6pVff5ehr+7bB4r4EAgAHWGDCAAAJoYIALIQ+AgABfoACAADqikIAAd86WgABvoEA= Date: Thu, 23 Nov 2023 01:20:43 +0000 Message-ID: References: <20231102031423.3751965-1-pan2.li@intel.com> <20231113032237.1379330-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_|PH0PR11MB5175:EE_ x-ms-office365-filtering-correlation-id: cbf042e3-96f3-4c32-1f49-08dbebc269bb x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: xhMOd6RjK5NkMEUkgOVgXbsJv1ZqmgvsHlbIDfmKaKrHctCGAhUJrUtUYyrqHdmEApeONtNZrSVxPIt+qpzmd8dOz5MJxdyPO761ESSojh0g2lMJuo/idVES3z5fmdh66jhNfiUf2GSNZcWxhcMdP1htGWF+odtSGuIx6HGyFvZO2vBmVdb7+nS6FWkYWl/xgIlqVp/zQXdMl7Ssn4wstMcy5SbULExLnSQBK/vxcXv+YBzbi3gXLLnbRAuHAkj+naNLS+60PLvbHAONTIwLfycxUdvn1QHARJhT7KRVrc2FshejlTB/mU7JiDa6opSzgf5+kXhoOt3aIKCYB988V5a8zOgq70mEm3sJt1XO2LMrukZh4p2IET7hi2yufiq4Va0uk1tkcVtQMD+50k8ESmjXBsNDUbnSEvuaRrNcZAhEGSRWP9pgYIgcReLxalC/3I5t2gBU6P8jSQGKh7YSzmjUrgWSkJN5AkkKjIcQN+7vnR3iYjSKlArrJfzOGmt5z/J7cpA/F9EXC/HVI0hxFxUnDJFwob9slZeoxL1+cpebPEHSqdraCk+RcS3VLQD/Q1K18xjMxfdzd6RBQfDJHcVdzYKeNfsw0WZf1rqWexcHHc+qvmei2imXv5NJWSW2OF5h9X3e4BhYGsO+kvtjKw== 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)(396003)(346002)(376002)(136003)(366004)(39860400002)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(52536014)(4326008)(9686003)(53546011)(71200400001)(82960400001)(7696005)(6506007)(26005)(6916009)(478600001)(64756008)(66946007)(66556008)(66476007)(66446008)(54906003)(316002)(86362001)(33656002)(76116006)(83380400001)(122000001)(38100700002)(8936002)(8676002)(38070700009)(41300700001)(2906002)(55016003)(84970400001)(5660300002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SW5vR3diVGw5Q0JnTXJ4RE9BUUI5NUZYU3dXTUI3MVdPaUFjR1hGU1ZneDRQ?= =?utf-8?B?QkNUeWh0WjhmWVpyeUhJWmQ4ejJ3QjJHRG52bEprQnBzS1AwMVZ4TGRqUHBR?= =?utf-8?B?V1J5UGI5Sks0WjBNQUc1UVNCTVE2c3hMVzRjTHk3N0lVTkZLRjA5NGRSdXdG?= =?utf-8?B?ZzZWM0ZqMTR2aWVxd1M3TWhheGRYYnkyMUUvdmtydjBYM0VDekYvb1U4M1dm?= =?utf-8?B?YmtWNGJIQUhnKytBSExDTnVLaXgzK3ZrNDdZK3U1S2xJd2xvTTlOZWJwYnBR?= =?utf-8?B?VmtrZHRtWHpYSGZKTFNqMTE2emRrREcxVzY3aVhuZGhyQWpDL0J5QUNKTjhN?= =?utf-8?B?ZGN2b3pwcFZRdG80Ti9mMFhJcll0MjMxTGhqTUt1QW9PNGM3WGsyUDB2Sk9I?= =?utf-8?B?cGxnRjZIUkZYenZobW5wL3lwODUzdEtLTUN0L1dRalh3b3loNWtGa0t6VDQ3?= =?utf-8?B?emhuc1VNZEtMTFJxdnROZG5MQlJkT1FhOGlEc3NBSmVML2hpRWNSNjNiYXN2?= =?utf-8?B?SGsvVXlhcXdXS21sVCs3UUlJamNSb2pBZGUzRE5KME9nZVZiOCsyenArZTlI?= =?utf-8?B?M1Y5dkhwck1tU1lEekxXQXNHQlpYTVUwaW9YSkFnRzhYVU1aZm90b21oaSti?= =?utf-8?B?MTdkM0Q5VzN0UlB3VXdMVVVCVmlsakxWVVBlUzJWQU5xWjdGa3Z4ekppRFhh?= =?utf-8?B?YmFBNWJYUkZYUTlnOUM3UUFma09DYURER0kyQmZPK21xWmpFTHMrNWhWd3Fh?= =?utf-8?B?U3ZROEJ6MldiWWtuOXU0UjlqbDdRaW1OWWJpcitIY1pNYUpzNEVCVUpEVERm?= =?utf-8?B?cWJRZjhwVWhubTRvZmdWNFBaTUtybnhFRjNXTk44enQ1OE1henlQN0JMQlVh?= =?utf-8?B?TE5Lc2JVMk8wWlJNQmVVeUh0RWZhMGZEV3pYSytnS0YxMkFpdC83cjkvUmtp?= =?utf-8?B?Y21TSytKZnNiTDZSN1RYenA5UFZMQ2xxZUpQZitHZC9OUlN1SmhmaHdTdUlk?= =?utf-8?B?VTdvQnpiaWFDMjVlOFRVMEFONVNIcVg1bTZxSmttYUk2WXNKOTIvaEV4VUt6?= =?utf-8?B?eis1VjZIajYzUGgwYjVBbE4wRVpoazQxZUo4M1ZySUtTMmRGS1R4SG9IUXZx?= =?utf-8?B?SHBodWxtN3M1R2VLWXp1UkpnSHlNTWg5ZDRtRG81bGljVU9wbTh6RWRmR0xq?= =?utf-8?B?cmx0NmxzSldWM214ckF2MnRNMUY2RmlXbmJDaHpJNDZ1MXBuRStYb2NMUzFD?= =?utf-8?B?SjNCb0RwMGwwS2pVVStOVkdobXdHV3ErTERZZ2RtTFE4dy95d3Jxa1VHNXlQ?= =?utf-8?B?VXdRbjMrZWNmRW56YnRza3daRE5XbXRrU0lBSjZMK1k3QVdxOFQwSkNiR0N2?= =?utf-8?B?OUZuaWlPRnFhVWxzZ3NhSFpGNVUrZWJ3cVZrVXl6Ni8ycHdFY2RKaWpwZFZm?= =?utf-8?B?N3RKQlpLK01OMkMvVEdqdlBoYVQ2UVVDNXh0UlpuU3BScTJySlZTTExTZGRQ?= =?utf-8?B?ejV6Q0Q5Q0lXUEtxUTVXVU90WGJsTmtrVERRbkNFVnhDZDV2SXhyOTM2RDlQ?= =?utf-8?B?K1JDU1J3My84aU5PTWVaQTJEbnExMDRwbmlsMTByZWFyY2tiam5CcndHaW5l?= =?utf-8?B?cG9HOUo0aU5JZkZIS21BeC9JQlJnY0VTWE9SZFA0Uy81YlVzanZURVcvQXp2?= =?utf-8?B?c1A5cVAxc1NlQjFHTldKc1RIQlZsN3cvU251NzhkRWhGanJVMDA3NmRtWXpj?= =?utf-8?B?SnJRWFBsc3Yydlhidzd4b1VvMWpkZmpiejZ2eURXQnFldnQ0UXBkdVpPay9p?= =?utf-8?B?dll0WjNJbHlFcVFxSURaLzRydlJUdUNqWTdmYlQ2amFIcnZTZ1ZNUCtZZ3Ri?= =?utf-8?B?RTY2aG9Tb0tEb1FwSWJuTVdXVllYQW1EcEZ2TzNOb3Rhb2VuRFg0R0RWRXFE?= =?utf-8?B?RDZhay9ISlc3cUVqdldiNmtWeURPendNKzAxcGFKTktabGlUaW5qamVRMEN2?= =?utf-8?B?ZE45akd4TW1wUXcweTdDZmFvL1JSL3VPVitnb2FXaVQxQll5Wk8xU09URlMz?= =?utf-8?B?SkhmUlZjS3U3c3FJVklyNTVzUjQzdWdlaEdkSlZ6KzAvYnlDRDNtbUxwK294?= =?utf-8?Q?gwWU=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: cbf042e3-96f3-4c32-1f49-08dbebc269bb X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2023 01:20:43.3039 (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: C6pWkcQU3wGTr/njg1OMPU3euQT8Ejh1cRrkeqnnGBDAEUrwh6IHv5wthl3NFTIzNLa5QlxRqUfPZ7ZFyLuVuA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5175 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-6.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,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: Q29tbWl0dGVkLCB0aGFua3MgYWxsLg0KDQpQYW4NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCkZyb206IFJpY2hhcmQgU2FuZGlmb3JkIDxyaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tPiAN ClNlbnQ6IFRodXJzZGF5LCBOb3ZlbWJlciAyMywgMjAyMyAyOjM5IEFNDQpUbzogTGksIFBhbjIg PHBhbjIubGlAaW50ZWwuY29tPg0KQ2M6IFJpY2hhcmQgQmllbmVyIDxyaWNoYXJkLmd1ZW50aGVy QGdtYWlsLmNvbT47IGp1emhlLnpob25nQHJpdmFpLmFpOyBXYW5nLCBZYW56aGFuZyA8eWFuemhh bmcud2FuZ0BpbnRlbC5jb20+OyBraXRvLmNoZW5nQGdtYWlsLmNvbTsgSmVmZiBMYXcgPGplZmZy ZXlhbGF3QGdtYWlsLmNvbT47IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnDQpTdWJqZWN0OiBSZTog W1BBVENIIHY0XSBEU0U6IEFsbG93IHZlY3RvciB0eXBlIGZvciBnZXRfc3RvcmVkX3ZhbCB3aGVu IHJlYWQgPCBzdG9yZQ0KDQoiTGksIFBhbjIiIDxwYW4yLmxpQGludGVsLmNvbT4gd3JpdGVzOg0K Pj4gSXQgbG9va3MgbGlrZSBKZWZmIGFwcHJvdmVkIHRoZSBwYXRjaD8NCj4NCj4gWWVzLCBqdXN0 IHdvdWxkIGxpa2UgdG8gZG91YmxlIGNoZWNrIHRoZSB3YXkgb2YgdGhpcyBwYXRjaCBpcyBleHBl Y3RlZCBhcyBmb2xsb3dpbmcgdGhlIHN1Z2dlc3Rpb24gb2YgUmljaGFyZCBTLg0KDQpZZWFoLCBp dCBsb29rcyBnb29kIHRvIG1lLCB0aGFua3MuDQoNClJpY2hhcmQNCg0KPiBQYW4NCj4NCj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUmljaGFyZCBCaWVuZXIgPHJpY2hhcmQu Z3VlbnRoZXJAZ21haWwuY29tPiANCj4gU2VudDogV2VkbmVzZGF5LCBOb3ZlbWJlciAyMiwgMjAy MyA0OjAyIFBNDQo+IFRvOiBMaSwgUGFuMiA8cGFuMi5saUBpbnRlbC5jb20+DQo+IENjOiByaWNo YXJkLnNhbmRpZm9yZEBhcm0uY29tOyBqdXpoZS56aG9uZ0ByaXZhaS5haTsgV2FuZywgWWFuemhh bmcgPHlhbnpoYW5nLndhbmdAaW50ZWwuY29tPjsga2l0by5jaGVuZ0BnbWFpbC5jb207IEplZmYg TGF3IDxqZWZmcmV5YWxhd0BnbWFpbC5jb20+OyBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZw0KPiBT dWJqZWN0OiBSZTogW1BBVENIIHY0XSBEU0U6IEFsbG93IHZlY3RvciB0eXBlIGZvciBnZXRfc3Rv cmVkX3ZhbCB3aGVuIHJlYWQgPCBzdG9yZQ0KPg0KPiBPbiBXZWQsIE5vdiAyMiwgMjAyMyBhdCAz OjMw4oCvQU0gTGksIFBhbjIgPHBhbjIubGlAaW50ZWwuY29tPiB3cm90ZToNCj4+DQo+PiBIaSBS aWNoYXJkIFMsDQo+Pg0KPj4gVGhhbmtzIGEgbG90IGZvciByZXZpZXdpbmcgYW5kIGNvbW1lbnRz LiBNYXkgSSBrbm93IGlzIHRoZXJlIGFueSBjb25jZXJuIG9yIGZ1cnRoZXIgY29tbWVudHMgZm9y IGxhbmRpbmcgdGhpcyBwYXRjaCB0byBHQ0MtMTQ/DQo+DQo+IEl0IGxvb2tzIGxpa2UgSmVmZiBh cHByb3ZlZCB0aGUgcGF0Y2g/DQo+DQo+IFJpY2hhcmQuDQo+DQo+PiBQYW4NCj4+DQo+PiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4gRnJvbTogTGksIFBhbjINCj4+IFNlbnQ6IFdlZG5l c2RheSwgTm92ZW1iZXIgMTUsIDIwMjMgODoyNSBBTQ0KPj4gVG86IGdjYy1wYXRjaGVzQGdjYy5n bnUub3JnDQo+PiBDYzoganV6aGUuemhvbmdAcml2YWkuYWk7IFdhbmcsIFlhbnpoYW5nIDx5YW56 aGFuZy53YW5nQGludGVsLmNvbT47IGtpdG8uY2hlbmdAZ21haWwuY29tOyByaWNoYXJkLmd1ZW50 aGVyQGdtYWlsLmNvbTsgcmljaGFyZC5zYW5kaWZvcmRAYXJtLmNvbTsgSmVmZiBMYXcgPGplZmZy ZXlhbGF3QGdtYWlsLmNvbT4NCj4+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggdjRdIERTRTogQWxsb3cg dmVjdG9yIHR5cGUgZm9yIGdldF9zdG9yZWRfdmFsIHdoZW4gcmVhZCA8IHN0b3JlDQo+Pg0KPj4g U29ycnkgZm9yIGRpc3R1cmJpbmcsIGxvb2tzIEkgaGF2ZSBhIHR5cG8gZm9yIFJpY2hhcmQgUydz IGVtYWlsIGFkZHJlc3MsIGNjIHRoZSByaWdodCBlbWFpbCBhZGRyZXNzIGZvciBhd2FyZW5lc3Mu DQo+Pg0KPj4gUGFuDQo+Pg0KPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+IEZyb206 IExpLCBQYW4yDQo+PiBTZW50OiBXZWRuZXNkYXksIE5vdmVtYmVyIDE1LCAyMDIzIDg6MTggQU0N Cj4+IFRvOiBKZWZmIExhdyA8amVmZnJleWFsYXdAZ21haWwuY29tPjsgZ2NjLXBhdGNoZXNAZ2Nj LmdudS5vcmcNCj4+IENjOiBqdXpoZS56aG9uZ0ByaXZhaS5haTsgV2FuZywgWWFuemhhbmcgPHlh bnpoYW5nLndhbmdAaW50ZWwuY29tPjsga2l0by5jaGVuZ0BnbWFpbC5jb207IHJpY2hhcmQuZ3Vl bnRoZXJAZ21haWwuY29tOyByaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tMg0KPj4gU3ViamVjdDog UkU6IFtQQVRDSCB2NF0gRFNFOiBBbGxvdyB2ZWN0b3IgdHlwZSBmb3IgZ2V0X3N0b3JlZF92YWwg d2hlbiByZWFkIDwgc3RvcmUNCj4+DQo+PiA+IEkgd291bGRuJ3QgdHJ5IHRvIGhhbmRsZSB0aGF0 IGNhc2UgdW5sZXNzIHdlIGhhZCBhY3R1YWwgZXZpZGVuY2UgaXQgd2FzDQo+PiA+IHVzZWZ1bCB0 byBkbyBzby4gIEp1c3Qgd2FudGVkIHRvIHBvaW50IG91dCB0aGF0IHVubGlrZSBwc2V1ZG9zIHdl IGNhbg0KPj4gPiBoYXZlIG11bHRpcGxlIG1vZGVzIHJlZmVyZW5jaW5nIHRoZSBzYW1lIG1lbW9y eSBsb2NhdGlvbi4NCj4+DQo+PiBHb3QgdGhlIHBvaW50IGhlcmUsIHRoYW5rcyBKZWZmIGZvciBl bXBoYXNpemluZyB0aGlzLCDwn5iJLg0KPj4NCj4+IFBhbg0KPj4NCj4+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+PiBGcm9tOiBKZWZmIExhdyA8amVmZnJleWFsYXdAZ21haWwuY29tPg0K Pj4gU2VudDogVHVlc2RheSwgTm92ZW1iZXIgMTQsIDIwMjMgNDoxMiBBTQ0KPj4gVG86IExpLCBQ YW4yIDxwYW4yLmxpQGludGVsLmNvbT47IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnDQo+PiBDYzog anV6aGUuemhvbmdAcml2YWkuYWk7IFdhbmcsIFlhbnpoYW5nIDx5YW56aGFuZy53YW5nQGludGVs LmNvbT47IGtpdG8uY2hlbmdAZ21haWwuY29tOyByaWNoYXJkLmd1ZW50aGVyQGdtYWlsLmNvbTsg cmljaGFyZC5zYW5kaWZvcmRAYXJtLmNvbTINCj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjRdIERT RTogQWxsb3cgdmVjdG9yIHR5cGUgZm9yIGdldF9zdG9yZWRfdmFsIHdoZW4gcmVhZCA8IHN0b3Jl DQo+Pg0KPj4NCj4+DQo+PiBPbiAxMS8xMi8yMyAyMDoyMiwgcGFuMi5saUBpbnRlbC5jb20gd3Jv dGU6DQo+PiA+IEZyb206IFBhbiBMaSA8cGFuMi5saUBpbnRlbC5jb20+DQo+PiA+DQo+PiA+IFVw ZGF0ZSBpbiB2NDoNCj4+ID4gKiBNZXJnZSB1cHN0cmVhbSBhbmQgcmVtb3ZlZCBzb21lIGluZGVw ZW5kZW50IGNoYW5nZXMuDQo+PiA+DQo+PiA+IFVwZGF0ZSBpbiB2MzoNCj4+ID4gKiBUYWtlIGtu b3duX2xlIGluc3RlYWQgb2Yga25vd25fbHQgZm9yIHZlY3RvciBzaXplLg0KPj4gPiAqIFJldHVy biBOVUxMX1JUWCB3aGVuIGdhcCBpcyBub3QgZXF1YWwgMCBhbmQgbm90IGNvbnN0YW50Lg0KPj4g Pg0KPj4gPiBVcGRhdGUgaW4gdjI6DQo+PiA+ICogTW92ZSB2ZWN0b3IgdHlwZSBzdXBwb3J0IHRv IGdldF9zdG9yZWRfdmFsLg0KPj4gPg0KPj4gPiBPcmlnaW5hbCBsb2c6DQo+PiA+DQo+PiA+IFRo aXMgcGF0Y2ggd291bGQgbGlrZSB0byBhbGxvdyB0aGUgdmVjdG9yIG1vZGUgaW4gdGhlDQo+PiA+ IGdldF9zdG9yZWRfdmFsIGluIHRoZSBEU0UuIEl0IGlzIHZhbGlkIGZvciB0aGUgcmVhZA0KPj4g PiBydHggaWYgYW5kIG9ubHkgaWYgdGhlIHJlYWQgYml0c2l6ZSBpcyBsZXNzIHRoYW4gdGhlDQo+ PiA+IHN0b3JlZCBiaXRzaXplLg0KPj4gPg0KPj4gPiBHaXZlbiBiZWxvdyBleGFtcGxlIGNvZGUg d2l0aA0KPj4gPiAtLXBhcmFtPXJpc2N2LWF1dG92ZWMtcHJlZmVyZW5jZT1maXhlZC12bG1heC4N Cj4+ID4NCj4+ID4gdnVpbnQ4bTFfdCB0ZXN0ICgpIHsNCj4+ID4gICAgdWludDhfdCBhcnJbMzJd ID0gew0KPj4gPiAgICAgIDEsIDIsIDcsIDEsIDMsIDQsIDUsIDMsIDEsIDAsIDEsIDIsIDQsIDQs IDksIDksDQo+PiA+ICAgICAgMSwgMiwgNywgMSwgMywgNCwgNSwgMywgMSwgMCwgMSwgMiwgNCwg NCwgOSwgOSwNCj4+ID4gICAgfTsNCj4+ID4NCj4+ID4gICAgcmV0dXJuIF9fcmlzY3ZfdmxlOF92 X3U4bTEoYXJyLCAzMik7DQo+PiA+IH0NCj4+ID4NCj4+ID4gQmVmb3JlIHRoaXMgcGF0Y2g6DQo+ PiA+IHRlc3Q6DQo+PiA+ICAgIGx1aSAgICAgYTUsJWhpKC5MQU5DSE9SMCkNCj4+ID4gICAgYWRk aSAgICBzcCxzcCwtMzINCj4+ID4gICAgYWRkaSAgICBhNSxhNSwlbG8oLkxBTkNIT1IwKQ0KPj4g PiAgICBsaSAgICAgIGEzLDMyDQo+PiA+ICAgIHZsMnJlNjQudiAgICAgICB2MiwwKGE1KQ0KPj4g PiAgICB2c2V0dmxpIHplcm8sYTMsZTgsbTEsdGEsbWENCj4+ID4gICAgdnMyci52ICB2MiwwKHNw KSAgICAgICAgICAgICA8PT0gVW5uZWNlc3Nhcnkgc3RvcmUgdG8gc3RhY2sNCj4+ID4gICAgdmxl OC52ICB2MSwwKHNwKSAgICAgICAgICAgICA8PT0gRGl0dG8NCj4+ID4gICAgdnMxci52ICB2MSww KGEwKQ0KPj4gPiAgICBhZGRpICAgIHNwLHNwLDMyDQo+PiA+ICAgIGpyICAgICAgcmENCj4+ID4N Cj4+ID4gQWZ0ZXIgdGhpcyBwYXRjaDoNCj4+ID4gdGVzdDoNCj4+ID4gICAgbHVpICAgICBhNSwl aGkoLkxBTkNIT1IwKQ0KPj4gPiAgICBhZGRpICAgIGE1LGE1LCVsbyguTEFOQ0hPUjApDQo+PiA+ ICAgIGxpICAgICAgYTQsMzINCj4+ID4gICAgYWRkaSAgICBzcCxzcCwtMzINCj4+ID4gICAgdnNl dHZsaSB6ZXJvLGE0LGU4LG0xLHRhLG1hDQo+PiA+ICAgIHZsZTgudiAgdjEsMChhNSkNCj4+ID4g ICAgdnMxci52ICB2MSwwKGEwKQ0KPj4gPiAgICBhZGRpICAgIHNwLHNwLDMyDQo+PiA+ICAgIGpy ICAgICAgcmENCj4+ID4NCj4+ID4gQmVsb3cgdGVzdHMgYXJlIHBhc3NlZCB3aXRoaW4gdGhpcyBw YXRjaDoNCj4+ID4gKiBUaGUgcmlzYy12IHJlZ3Jlc3Npb24gdGVzdC4NCj4+ID4gKiBUaGUgeDg2 IGJvb3RzdHJhcCBhbmQgcmVncmVzc2lvbiB0ZXN0Lg0KPj4gPiAqIFRoZSBhYXJjaDY0IHJlZ3Jl c3Npb24gdGVzdC4NCj4+ID4NCj4+ID4gICAgICAgUFIgdGFyZ2V0LzExMTcyMA0KPj4gPg0KPj4g PiBnY2MvQ2hhbmdlTG9nOg0KPj4gPg0KPj4gPiAgICAgICAqIGRzZS5jYyAoZ2V0X3N0b3JlZF92 YWwpOiBBbGxvdyB2ZWN0b3IgbW9kZSBpZiByZWFkIHNpemUgaXMNCj4+ID4gICAgICAgbGVzcyB0 aGFuIG9yIGVxdWFsIHRvIHN0b3JlZCBzaXplLg0KPj4gPg0KPj4gPiBnY2MvdGVzdHN1aXRlL0No YW5nZUxvZzoNCj4+ID4NCj4+ID4gICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL3By MTExNzIwLTAuYzogTmV3IHRlc3QuDQo+PiA+ICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9wcjExMTcyMC0xLmM6IE5ldyB0ZXN0Lg0KPj4gPiAgICAgICAqIGdjYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvcHIxMTE3MjAtMTAuYzogTmV3IHRlc3QuDQo+PiA+ICAgICAgICogZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9wcjExMTcyMC0yLmM6IE5ldyB0ZXN0Lg0KPj4gPiAgICAgICAq IGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvcHIxMTE3MjAtMy5jOiBOZXcgdGVzdC4NCj4+ID4g ICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL3ByMTExNzIwLTQuYzogTmV3IHRlc3Qu DQo+PiA+ICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9wcjExMTcyMC01LmM6IE5l dyB0ZXN0Lg0KPj4gPiAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvcHIxMTE3MjAt Ni5jOiBOZXcgdGVzdC4NCj4+ID4gICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL3By MTExNzIwLTcuYzogTmV3IHRlc3QuDQo+PiA+ICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9wcjExMTcyMC04LmM6IE5ldyB0ZXN0Lg0KPj4gPiAgICAgICAqIGdjYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvcHIxMTE3MjAtOS5jOiBOZXcgdGVzdC4NCj4+IE9LIGZvciB0aGUgdHJ1bmsu DQo+Pg0KPj4NCj4+ID4NCj4+DQo+PiA+ICsgIGVsc2UgaWYgKFZFQ1RPUl9NT0RFX1AgKHJlYWRf bW9kZSkgJiYgVkVDVE9SX01PREVfUCAoc3RvcmVfbW9kZSkNCj4+ID4gKyAgICAmJiBrbm93bl9s ZSAoR0VUX01PREVfQklUU0laRSAocmVhZF9tb2RlKSwgR0VUX01PREVfQklUU0laRSAoc3RvcmVf bW9kZSkpDQo+PiA+ICsgICAgJiYgdGFyZ2V0bS5tb2Rlc190aWVhYmxlX3AgKHJlYWRfbW9kZSwg c3RvcmVfbW9kZSkpDQo+PiA+ICsgICAgcmVhZF9yZWcgPSBnZW5fbG93cGFydCAocmVhZF9tb2Rl LCBjb3B5X3J0eCAoc3RvcmVfaW5mby0+cmhzKSk7DQo+PiA+ICAgICBlbHNlDQo+PiA+ICAgICAg IHJlYWRfcmVnID0gZXh0cmFjdF9sb3dfYml0cyAocmVhZF9tb2RlLCBzdG9yZV9tb2RlLA0KPj4g PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weV9ydHggKHN0b3JlX2luZm8tPnJo cykpOw0KPj4gSXQgbWF5IG5vdCBtYXR0ZXIsIGVzcGVjaWFsbHkgZm9yIFJWLCBidXQgd2UgY291 bGQgcG9zc2libHkgaGF2ZSBhDQo+PiBtaXh0dXJlIG9mIHNjYWxhciBhbmQgdmVjdG9yIG1vZGVz IGluIHRoZSBSVEwuICBTYXkgYSB2ZWN0b3Igc3RvcmUNCj4+IGZvbGxvd2VkIGJ5IGEgc2NhbGFy IHJlYWQgb3IgdmljZS12ZXJzYS4NCj4+DQo+PiBJIHdvdWxkbid0IHRyeSB0byBoYW5kbGUgdGhh dCBjYXNlIHVubGVzcyB3ZSBoYWQgYWN0dWFsIGV2aWRlbmNlIGl0IHdhcw0KPj4gdXNlZnVsIHRv IGRvIHNvLiAgSnVzdCB3YW50ZWQgdG8gcG9pbnQgb3V0IHRoYXQgdW5saWtlIHBzZXVkb3Mgd2Ug Y2FuDQo+PiBoYXZlIG11bHRpcGxlIG1vZGVzIHJlZmVyZW5jaW5nIHRoZSBzYW1lIG1lbW9yeSBs b2NhdGlvbi4NCj4+DQo+PiBKZWZmDQo=