From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.24]) by sourceware.org (Postfix) with ESMTPS id 52F983858426 for ; Mon, 18 Sep 2023 08:27:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 52F983858426 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=1695025620; x=1726561620; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=VVnevtbEW6C/49gIOb2RVb7VP8B/MrslN9KxSUo/Zag=; b=Bg7v3Y4sTppVzISHfHrkpCTZFy+FzroI1MsmQeOaLpIf03S/NDOn96I4 NFJ9o8bpk9Dp8XNHprYoDP6DZ0EP4pYBOJVEsIvoJvpCc1at7LMScAYt2 QCTz+StmF8FXwbaJAuZN5vtM6TzzdepLH9is6/ljcVohfSQgKontQ27vI BCRBWJuqCttACXaN0E+mLy+SktXE/DUQrneHhM5H+jN+xpRuQ2wo7IwHK GNaFd3pf5ICqcJAwDJ5a8dYKCKmugWzjQ0SMXvTUECnKhP6z9S/CyWhYx F6up6fInu0HGwNcH/q46jMZHYXNtKDdqLM37zdtK90w8UfQgK37ZXb2im g==; X-IronPort-AV: E=McAfee;i="6600,9927,10836"; a="382341975" X-IronPort-AV: E=Sophos;i="6.02,156,1688454000"; d="scan'208";a="382341975" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Sep 2023 01:26:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10836"; a="748935667" X-IronPort-AV: E=Sophos;i="6.02,156,1688454000"; d="scan'208";a="748935667" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga007.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 18 Sep 2023 01:26:41 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) 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.32; Mon, 18 Sep 2023 01:26:41 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) 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.32 via Frontend Transport; Mon, 18 Sep 2023 01:26:41 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.100) 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.32; Mon, 18 Sep 2023 01:26:41 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=boRIMCgBq3FUueFczGXOzy3SMnwefM+cMaU5RXj0T2HXzywqPwFHgbYH0kZrk+aXnpOabgWw2ConqkyXYPYT2FxWYoql63a1cVAwhokbdGVCGWPnqt4iaTePUbllKnp039av+qS89/po5py/pJpL4in8djFW0/FxggyWlt80azHLOJQR4nzWq570W2OsZfKq8tSDJ7zQZfhgxwodUkfN1T25V2xKI3eqZNjE6RVgdnnDS45Y55m5GSBcQ6R+T6ivk2EV3TfvPYK3uEl1RKJ/k1+t8aXEdS0h1H9+TgS5xCyd3bLwKeKibzjcJgG4QK78iCSwKqJyiHp78kZ5y9F51g== 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=VVnevtbEW6C/49gIOb2RVb7VP8B/MrslN9KxSUo/Zag=; b=Aosld0ZamGm3ZSU0Gq+QlN+lI5tB3d+YNHvkIAmnRYf+183D/nRrQAGm7dFHXjJE/93pGVthxYKCBfKeM5TqqLR7SkcaboHpDasw15pJ78qz4QSaL/dHH4nA4XjzOZLTplLo8ysIqQm1N7fx5xLdl/iNgOKggXN+x6P6HL3dMZawF2bkXO3k3zuE8qsu7wWfesEFEu9c2gOBtswgfyHBa8XRalS4bUmED1fzrjZJGT661+m2U3NrlairZRvw45eSrvhv4hJDFEbIa3cZO3hV+n2dZt8a/jn4H3FsGLTq86G50X6aDemfAPTvs/stveXOaPBu2E+GLXSDGpFU5cN2qQ== 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 MW3PR11MB4603.namprd11.prod.outlook.com (2603:10b6:303:5e::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.27; Mon, 18 Sep 2023 08:26:34 +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.6792.024; Mon, 18 Sep 2023 08:26:33 +0000 From: "Li, Pan2" To: Kito Cheng , Juzhe-Zhong CC: "gcc-patches@gcc.gnu.org" , "kito.cheng@gmail.com" , "jeffreyalaw@gmail.com" , "rdapp.gcc@gmail.com" Subject: RE: [PATCH] RISC-V: Remove autovec-vls.md file and clean up VLS move modes[NFC] Thread-Topic: [PATCH] RISC-V: Remove autovec-vls.md file and clean up VLS move modes[NFC] Thread-Index: AQHZ6f7aRs514grWwEeckWh7f2T4X7AgOJWAgAAHDeA= Date: Mon, 18 Sep 2023 08:26:33 +0000 Message-ID: References: <20230918070713.3569601-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_|MW3PR11MB4603:EE_ x-ms-office365-filtering-correlation-id: f96d429a-0ef8-49da-0185-08dbb820f7d4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 6mZusSzsn1pigzeC3Ye6zEG2Z3xr2N3wgEitWXQA5RcXJwJBouCw0cbhs5ZO1fov2AL6DsFNUkuWxqGLeVfTt4PopBw8459lE6jA18XRiUSDT1GxNN2E7Thyll95LjQCs0WPatG5ULWH0Ixg4U7brf2pfPK91D+LPNPWNZFLsdVbpgO3Jr8UZg1wiayBSKC6yW+gKianFCeTnavYCOTY8JuopxDxvv5uQ6LuUaKrGjeOgg0A4e3RRN9yTxTQR9yTbCoIw3XxOFdR/W7BwcFazLepWRse+wCtKPn2z9cNWrOXrfngMoHg/US9+RzkdGJxo2v0SNKH8ata08YRhIRfPIz0Jdp6EBwWIoyc53yHNP0e2Btrn4X6AWauDlYt4lNKWm+ZNcJexM+87R0rxG9qYHWqsSnLjOv0+zX42FRFehmkyz7QRKrthd1Ih1alrsiZW4ggl92GfdnknQb8fZU4MakK3f9Ab2q7vW3hFngz1nsT9LeTLyFXqY7+HmYUM1KPvJuzOd0qseouj7grFaxEhvVyKA73pHd7A2ssrqzrvkNi3gXA5XBBpLKy+4XKgTwYZviqG4pUxysHx71QQGV3+J7wWLY/FB7lLMT1j6IeyS8tToNGA0Qx5tNPClWa+yUInCPqW/AQH3Yma/7UTYx870ud9ym6XDvbffnYNPwUY28= 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)(366004)(376002)(136003)(346002)(39860400002)(186009)(1800799009)(451199024)(55016003)(71200400001)(122000001)(82960400001)(38070700005)(38100700002)(4326008)(8676002)(8936002)(33656002)(76116006)(9686003)(110136005)(53546011)(66946007)(41300700001)(54906003)(64756008)(66446008)(66476007)(66556008)(86362001)(316002)(30864003)(2906002)(5660300002)(83380400001)(26005)(52536014)(7696005)(6506007)(478600001)(2004002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?R3d6aGd5WmIxdE56M2t5Z3JtYjF5aEovL3RGN3FXbFE2cENGN3lOUm1WaHh0?= =?utf-8?B?OTNwSXMwTm9zbkh3c0hWZVd3Rmc5UE5MTlBaaFFIVjdNaU0ybHBxQjUybHNo?= =?utf-8?B?NTV2MXk0NnorUEQydGxyWHU0cmFKRWtydXZmRk5tR3k5UXBRNUV0ak9GQmVJ?= =?utf-8?B?WERzS0EzMCtiWWZGcU54NUp1S2VvS1RzWVNwUTVoK0JuNEpTWVphazBaLzVE?= =?utf-8?B?OUxQRXNWR0U3Z3M1Wko0RkQ4TWh6bFFuV1VZbjVQZWJyRFpVWm90eVFiNTd2?= =?utf-8?B?dDVpUnJjRS9JeWJocnpyUjFOcTM2cUJNVW5wSnJuOUUrWFVFNENuajhEVEhw?= =?utf-8?B?ODM0K1dic2wrMk05UzF2R0ZLdEE5TE9BLyt4WEtEYk8wTUxrZE80aUMycFZi?= =?utf-8?B?eW5uSGdYc050Y2c3S3RMcExTL3pKYkNldkpEbi9vQmRzUExoV0FYZytEdkNI?= =?utf-8?B?Y1dDRmFoVE5aMHJ0c3B1c2pNQ0Q0alFaTnRkTGdBaHo5YS9sUmFGeTdyN2F4?= =?utf-8?B?a0NuNUp0c0d4YmY4Ni9hdnEzZC9EaXVpZEtlWXE0NW1pQURlWEx2NEl3bitE?= =?utf-8?B?dWxaamI0NnJ5a0Rsb0JYZU45b24yRjNrWExkQ0lmYlE4eVJ4RWsrQnYyTXZL?= =?utf-8?B?VzBPZi8wS010ekcvU1Rad1FldXhOeEVRZW1kMFNMWEhRQS9qSXVlWks0Mlcz?= =?utf-8?B?MVkzaVg4OGRhOVRVYmJQSU8yTmZaTkJwZHpKOEhkUE5WTFhxU3ZBVzFnTFNx?= =?utf-8?B?Wll3Ym9aa0VoTDNMR2hRaUlkSDIxRjI1K216NUF5ak1ESXB4T1hITFY5TVpx?= =?utf-8?B?QVZ1RkZNbjRNdXhQRE96bDlRdnQxYnNNRkF4ZHVmQjBtaDZyTk5YN2ZDMFgy?= =?utf-8?B?UVM1UXZCSzErVXhUR1A4Y28wMnZ0K3k4MllSV2VpRU4vU1dSdVJZb3pBc2xh?= =?utf-8?B?Um4rejV6QThxUi83SHY4enMvQUNtYUFuUnAyTWVkSUpXcHZHeDdROVNLcG15?= =?utf-8?B?TjdGMHpvUllCUURWY1FWZzh5VllucHhMd3ZUdGtlbDBuUDNBT0x1SWdMQWpv?= =?utf-8?B?OEVvaWQ1Y2FvV2hzWHg1Z3BvRzdaMEtFNVUwazU2VnYrZWI2VGtzc2NSd2d6?= =?utf-8?B?cmdTQ1ZlQXR4ZGtjQlJsSUVVM3czTjBneXl1Skd6dE5lcGJxOTdCT0pZSUNj?= =?utf-8?B?TkZPeldNVE1GQUVmTlJWOW0wWVg2WHNQZGRXTncxQ20xSEZzSWcxYnY3Vm9V?= =?utf-8?B?eGNsR0NZcGJzZkpLd3l6Y0dycytoTUxBZzh2b0V3VlhzRzZDNzNJdmtGSlh0?= =?utf-8?B?aVJUMkFvWTVCZFk2dllNeXNodVg2ZG1lME91T2NZNDhSSlA2VXYwbE15OWUr?= =?utf-8?B?Y2t4a2o3eUo4WXpmQy9Sd055MWpCeW1Sa0xKbFZ3bGFRZFNpdloyN01EYjVp?= =?utf-8?B?aXVmb3o5b1BvSXpzVnViakFJWXlFK1Nob0g5ek92NFNYQ1dhVloxSlZxYUh3?= =?utf-8?B?SFV0VjJFVS9lWW4xajZ3d1o3MHhSOS9UenliVE1PRU9PejBYc3NmTkxEM2tT?= =?utf-8?B?TUpGUlNRakRMYk5PSXFHRHNXcEwzOTY2aUh2ampTeDFXei9TTDJUMTcvckt4?= =?utf-8?B?VjRTTmhqVS85MUl4YTRJSWFIdGgzeHlHSkM3bGtqMlJnVW1IVGloTExIaXpz?= =?utf-8?B?QjlERkhsT2lwb3Q1MitYaXRSOTlsRjk5blBEVDF2a0pTTHk2VUJNMmdJcG5B?= =?utf-8?B?QzJWNjhadWd3WDJHWEluWnB4TitKemp4RjV5ckoxZWRVOVFkQ1U5RUJyWW9k?= =?utf-8?B?c2Y2cjMrbWtZdXhUSTk3QXdnUUhmTVlzM2lyVTFFbFhOMGtTRzVFYy9VanB3?= =?utf-8?B?WGJOTW9QUGo5U2s4bG1mQ0tYcUxqdDk2VFRUdDRBZ29xVzRhZVNlVDlHYVhp?= =?utf-8?B?SG4yUm5pcXByUGNQb2lMY3lkOGxmWS8rNjQxb0ZDVzh5ZHlSYTVQbExnWU9G?= =?utf-8?B?Rk96SU4xMEJrdnRwZ0JWMG1rTVYvTVJzOFJqeC9Ya0RQWS9haVRhWFZqekVW?= =?utf-8?B?cmVCQ3UzNTNGU1J2R2lCTXUvYUNOeE4zVFNGNmdPMEZneko2Z1BaWU16SkNM?= =?utf-8?Q?UNOc=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: f96d429a-0ef8-49da-0185-08dbb820f7d4 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Sep 2023 08:26:33.8921 (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: CKUi0YSmYWk/vGEq9IYWM93eKAg0aIboSLl30tLRTkph9NiIOGdMYuu0bLvZWEX41+6dPEd9WAhgbUUIQhhJng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4603 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-9.0 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,MEDICAL_SUBJECT,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,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: Q29tbWl0dGVkLCB0aGFua3MgS2l0by4NCg0KUGFuDQoNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCkZyb206IEdjYy1wYXRjaGVzIDxnY2MtcGF0Y2hlcy1ib3VuY2VzK3BhbjIubGk9aW50 ZWwuY29tQGdjYy5nbnUub3JnPiBPbiBCZWhhbGYgT2YgS2l0byBDaGVuZyB2aWEgR2NjLXBhdGNo ZXMNClNlbnQ6IE1vbmRheSwgU2VwdGVtYmVyIDE4LCAyMDIzIDQ6MDEgUE0NClRvOiBKdXpoZS1a aG9uZyA8anV6aGUuemhvbmdAcml2YWkuYWk+DQpDYzogZ2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc7 IGtpdG8uY2hlbmdAZ21haWwuY29tOyBqZWZmcmV5YWxhd0BnbWFpbC5jb207IHJkYXBwLmdjY0Bn bWFpbC5jb20NClN1YmplY3Q6IFJlOiBbUEFUQ0hdIFJJU0MtVjogUmVtb3ZlIGF1dG92ZWMtdmxz Lm1kIGZpbGUgYW5kIGNsZWFuIHVwIFZMUyBtb3ZlIG1vZGVzW05GQ10NCg0KTEdUTSA6KQ0KDQpP biBNb24sIFNlcCAxOCwgMjAyMyBhdCAzOjA34oCvUE0gSnV6aGUtWmhvbmcgPGp1emhlLnpob25n QHJpdmFpLmFpPiB3cm90ZToNCj4NCj4gV2UgaGF2ZSBsYXJnZWx5IHN1cHBvcnR0ZWQgVkxTIG1v ZGVzLiBPbmx5IG1vdmUgcGF0dGVybnMgb2YgVkxTIG1vZGVzIGFyZQ0KPiBkaWZmZXJlbnQgZnJv bSBWTFMgcGF0dGVybnMuIFRoZSByZXN0IG9mIHRoZW0gYXJlIHRoZSBzYW1lLg0KPg0KPiBXZSBh bHdheXMgZXh0ZW5kIHRoZSBjdXJyZW50IFZMQSBwYXR0ZXJucyB3aXRoIFZMU21vZGVzOg0KPg0K PiBWSSAtLT4gVl9WTFNJDQo+IFZGIC0tPiBWX1ZMU0YNCj4NCj4gSXQgbWFrZXMgbm8gc2Vuc2Ug dG8gaGF2ZSBhIHNlcGFyYXRlIGZpbGUgaG9sZGluZyBhIHZlcnkgZmV3IFZMUyBwYXR0ZXJucw0K PiB0aGF0IGNhbiBub3QgYmUgZXh0ZW5kZWQgZnJvbSB0aGUgY3VycmVudCBWTEEgcGF0dGVybnMu DQo+DQo+IFNvIHJlbW92ZSBhdXRvdmVjLXZscy5tZA0KPg0KPiBnY2MvQ2hhbmdlTG9nOg0KPg0K PiAgICAgICAgICogY29uZmlnL3Jpc2N2L3ZlY3Rvci5tZCAobW92PG1vZGU+KTogTmV3IHBhdHRl cm4uDQo+ICAgICAgICAgKCptb3Y8bW9kZT5fbWVtX3RvX21lbSk6IERpdHRvLg0KPiAgICAgICAg ICgqbW92PG1vZGU+KTogRGl0dG8uDQo+ICAgICAgICAgKEBtb3Y8VkxTX0FWTF9SRUc6bW9kZT48 UDptb2RlPl9scmEpOiBEaXR0by4NCj4gICAgICAgICAoKm1vdjxWTFNfQVZMX1JFRzptb2RlPjxQ Om1vZGU+X2xyYSk6IERpdHRvLg0KPiAgICAgICAgICgqbW92PG1vZGU+X3Zscyk6IERpdHRvLg0K PiAgICAgICAgIChtb3ZtaXNhbGlnbjxtb2RlPik6IERpdHRvLg0KPiAgICAgICAgIChAdmVjX2R1 cGxpY2F0ZTxtb2RlPik6IERpdHRvLg0KPiAgICAgICAgICogY29uZmlnL3Jpc2N2L2F1dG92ZWMt dmxzLm1kOiBSZW1vdmVkLg0KPg0KPiAtLS0NCj4gIGdjYy9jb25maWcvcmlzY3YvYXV0b3ZlYy12 bHMubWQgfCAxOTYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gIGdjYy9jb25m aWcvcmlzY3YvdmVjdG9yLm1kICAgICAgfCAxNzIgKysrKysrKysrKysrKysrKysrKysrKysrKysr LQ0KPiAgMiBmaWxlcyBjaGFuZ2VkLCAxNzAgaW5zZXJ0aW9ucygrKSwgMTk4IGRlbGV0aW9ucygt KQ0KPiAgZGVsZXRlIG1vZGUgMTAwNjQ0IGdjYy9jb25maWcvcmlzY3YvYXV0b3ZlYy12bHMubWQN Cj4NCj4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvYXV0b3ZlYy12bHMubWQgYi9nY2Mv Y29uZmlnL3Jpc2N2L2F1dG92ZWMtdmxzLm1kDQo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0K PiBpbmRleCAzNDg4ZjQ1MmU1ZC4uMDAwMDAwMDAwMDANCj4gLS0tIGEvZ2NjL2NvbmZpZy9yaXNj di9hdXRvdmVjLXZscy5tZA0KPiArKysgL2Rldi9udWxsDQo+IEBAIC0xLDE5NiArMCwwIEBADQo+ IC07OyBNYWNoaW5lIGRlc2NyaXB0aW9uIGZvciBWTFMgb2YgUlZWIGF1dG8tdmVjdG9yaXphdGlv bi4NCj4gLTs7IENvcHlyaWdodCAoQykgMjAyMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4NCj4gLTs7IENvbnRyaWJ1dGVkIGJ5IEp1emhlIFpob25nIChqdXpoZS56aG9uZ0ByaXZhaS5h aSksIFJpVkFJIFRlY2hub2xvZ2llcyBMdGQuDQo+IC0NCj4gLTs7IFRoaXMgZmlsZSBpcyBwYXJ0 IG9mIEdDQy4NCj4gLQ0KPiAtOzsgR0NDIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCj4gLTs7IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQo+IC07OyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzLCBvciAoYXQgeW91ciBvcHRp b24pDQo+IC07OyBhbnkgbGF0ZXIgdmVyc2lvbi4NCj4gLQ0KPiAtOzsgR0NDIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQo+IC07OyBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KPiAt OzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQ0KPiAtOzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4NCj4gLQ0KPiAtOzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCj4gLTs7IGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZp bGUgQ09QWUlORzMuICBJZiBub3Qgc2VlDQo+IC07OyA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uDQo+IC0NCj4gLTs7IFdlIGRlZmluZSBWTFMgbW9kZXMgYXMgJ2RlZmluZV9pbnNuX2Fu ZF9zcGxpdCcgd2l0aCBub3JtYWwNCj4gLTs7IFJUWF9DT0RFIG9wZXJhdGlvbiwgc28gd2UgY2Fu IGdhaW4gYmVuZWZpdHMgZnJvbSBDb21iaW5lIG9wdGltaXphdGlvbnMuDQo+IC0NCj4gLTs7IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+IC07OyAtLS0tIE1vdmVzIE9wZXJhdGlvbnMNCj4gLTs7IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IC0N Cj4gLShkZWZpbmVfZXhwYW5kICJtb3Y8bW9kZT4iDQo+IC0gIFsoc2V0IChtYXRjaF9vcGVyYW5k OlZMU19BVkxfSU1NIDAgInJlZ19vcl9tZW1fb3BlcmFuZCIpDQo+IC0gICAgICAgKG1hdGNoX29w ZXJhbmQ6VkxTX0FWTF9JTU0gMSAiZ2VuZXJhbF9vcGVyYW5kIikpXQ0KPiAtICAiVEFSR0VUX1ZF Q1RPUiINCj4gLXsNCj4gLSAgaWYgKHJpc2N2X3ZlY3Rvcjo6bGVnaXRpbWl6ZV9tb3ZlIChvcGVy YW5kc1swXSwgb3BlcmFuZHNbMV0pKQ0KPiAtICAgIERPTkU7DQo+IC19KQ0KPiAtDQo+IC0oZGVm aW5lX2luc25fYW5kX3NwbGl0ICIqbW92PG1vZGU+X21lbV90b19tZW0iDQo+IC0gIFsoc2V0ICht YXRjaF9vcGVyYW5kOlZMU19BVkxfSU1NIDAgIm1lbW9yeV9vcGVyYW5kIikNCj4gLSAgICAgICAo bWF0Y2hfb3BlcmFuZDpWTFNfQVZMX0lNTSAxICJtZW1vcnlfb3BlcmFuZCIpKV0NCj4gLSAgIlRB UkdFVF9WRUNUT1IgJiYgY2FuX2NyZWF0ZV9wc2V1ZG9fcCAoKSINCj4gLSAgIiMiDQo+IC0gICIm JiAxIg0KPiAtICBbKGNvbnN0X2ludCAwKV0NCj4gLSAgew0KPiAtICAgIGlmIChHRVRfTU9ERV9C SVRTSVpFICg8TU9ERT5tb2RlKS50b19jb25zdGFudCAoKSA8PSBNQVhfQklUU19QRVJfV09SRCkN Cj4gLSAgICAgIHsNCj4gLSAgICAgICAgLyogT3BpdG1pemUgdGhlIGZvbGxvd2luZyBjYXNlOg0K PiAtDQo+IC0gICAgICAgICAgIHR5cGVkZWYgaW50OF90IHYycWkgX19hdHRyaWJ1dGVfXyAoKHZl Y3Rvcl9zaXplICgyKSkpOw0KPiAtICAgICAgICAgICB2MnFpIHYgPSAqKHYycWkqKWluOw0KPiAt ICAgICAgICAgICAqKHYycWkqKW91dCA9IHY7DQo+IC0NCj4gLSAgICAgICAgICAgV2UgcHJlZmVy IHNjYWxhciBsb2FkL3N0b3JlIGluc3RlYWQgb2YgdmxlLnYvdnNlLnYgd2hlbg0KPiAtICAgICAg ICAgICB0aGUgVkxTIG1vZGVzIHNpemUgaXMgc21hbGxlciBzY2FsYXIgbW9kZS4gICovDQo+IC0g ICAgICAgIG1hY2hpbmVfbW9kZSBtb2RlOw0KPiAtICAgICAgICB1bnNpZ25lZCBzaXplID0gR0VU X01PREVfQklUU0laRSAoPE1PREU+bW9kZSkudG9fY29uc3RhbnQgKCk7DQo+IC0gICAgICAgIGlm IChGTE9BVF9NT0RFX1AgKDxNT0RFPm1vZGUpKQ0KPiAtICAgICAgICAgbW9kZSA9IG1vZGVfZm9y X3NpemUgKHNpemUsIE1PREVfRkxPQVQsIDApLnJlcXVpcmUgKCk7DQo+IC0gICAgICAgIGVsc2UN Cj4gLSAgICAgICAgIG1vZGUgPSBtb2RlX2Zvcl9zaXplIChzaXplLCBNT0RFX0lOVCwgMCkucmVx dWlyZSAoKTsNCj4gLSAgICAgICAgZW1pdF9tb3ZlX2luc24gKGdlbl9sb3dwYXJ0IChtb2RlLCBv cGVyYW5kc1swXSksDQo+IC0gICAgICAgICAgICAgICAgICAgICAgIGdlbl9sb3dwYXJ0IChtb2Rl LCBvcGVyYW5kc1sxXSkpOw0KPiAtICAgICAgfQ0KPiAtICAgIGVsc2UNCj4gLSAgICAgIHsNCj4g LSAgICAgICBvcGVyYW5kc1sxXSA9IGZvcmNlX3JlZyAoPE1PREU+bW9kZSwgb3BlcmFuZHNbMV0p Ow0KPiAtICAgICAgIGVtaXRfbW92ZV9pbnNuIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pOw0K PiAtICAgICAgfQ0KPiAtICAgIERPTkU7DQo+IC0gIH0NCj4gLSAgWyhzZXRfYXR0ciAidHlwZSIg InZtb3YiKV0NCj4gLSkNCj4gLQ0KPiAtKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKm1vdjxtb2Rl PiINCj4gLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkxTX0FWTF9JTU0gMCAicmVnX29yX21lbV9v cGVyYW5kIiAiPXZyLCBtLCB2ciIpDQo+IC0gICAgICAgKG1hdGNoX29wZXJhbmQ6VkxTX0FWTF9J TU0gMSAicmVnX29yX21lbV9vcGVyYW5kIiAiICBtLHZyLCB2ciIpKV0NCj4gLSAgIlRBUkdFVF9W RUNUT1INCj4gLSAgICYmIChyZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1swXSwgPE1PREU+bW9k ZSkNCj4gLSAgICAgICB8fCByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1sxXSwgPE1PREU+bW9k ZSkpIg0KPiAtICAiQA0KPiAtICAgIw0KPiAtICAgIw0KPiAtICAgdm12JW0xci52XHQlMCwlMSIN Cj4gLSAgIiYmIHJlbG9hZF9jb21wbGV0ZWQNCj4gLSAgICYmICghcmVnaXN0ZXJfb3BlcmFuZCAo b3BlcmFuZHNbMF0sIDxNT0RFPm1vZGUpDQo+IC0gICAgICAgfHwgIXJlZ2lzdGVyX29wZXJhbmQg KG9wZXJhbmRzWzFdLCA8TU9ERT5tb2RlKSkiDQo+IC0gIFsoY29uc3RfaW50IDApXQ0KPiAtICB7 DQo+IC0gICAgYm9vbCBva19wID0gcmlzY3ZfdmVjdG9yOjpsZWdpdGltaXplX21vdmUgKG9wZXJh bmRzWzBdLCBvcGVyYW5kc1sxXSk7DQo+IC0gICAgZ2NjX2Fzc2VydCAob2tfcCk7DQo+IC0gICAg RE9ORTsNCj4gLSAgfQ0KPiAtICBbKHNldF9hdHRyICJ0eXBlIiAidm1vdiIpXQ0KPiAtKQ0KPiAt DQo+IC0oZGVmaW5lX2V4cGFuZCAibW92PG1vZGU+Ig0KPiAtICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpWTFNfQVZMX1JFRyAwICJyZWdfb3JfbWVtX29wZXJhbmQiKQ0KPiAtICAgICAgIChtYXRjaF9v cGVyYW5kOlZMU19BVkxfUkVHIDEgImdlbmVyYWxfb3BlcmFuZCIpKV0NCj4gLSAgIlRBUkdFVF9W RUNUT1IiDQo+IC17DQo+IC0gIGJvb2wgb2tfcCA9IHJpc2N2X3ZlY3Rvcjo6bGVnaXRpbWl6ZV9t b3ZlIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pOw0KPiAtICBnY2NfYXNzZXJ0IChva19wKTsN Cj4gLSAgRE9ORTsNCj4gLX0pDQo+IC0NCj4gLShkZWZpbmVfZXhwYW5kICJAbW92PFZMU19BVkxf UkVHOm1vZGU+PFA6bW9kZT5fbHJhIg0KPiAtICBbKHBhcmFsbGVsDQo+IC0gICAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6VkxTX0FWTF9SRUcgMCAicmVnX29yX21lbV9vcGVyYW5kIikNCj4gLSAgICAg ICAgIChtYXRjaF9vcGVyYW5kOlZMU19BVkxfUkVHIDEgInJlZ19vcl9tZW1fb3BlcmFuZCIpKQ0K PiAtICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6UCAyKSldKV0NCj4gLSAgIlRBUkdFVF9WRUNU T1IgJiYgKGxyYV9pbl9wcm9ncmVzcyB8fCByZWxvYWRfY29tcGxldGVkKSINCj4gLXt9KQ0KPiAt DQo+IC0oZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqbW92PFZMU19BVkxfUkVHOm1vZGU+PFA6bW9k ZT5fbHJhIg0KPiAtICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWTFNfQVZMX1JFRyAwICJyZWdfb3Jf bWVtX29wZXJhbmQiICI9dnIsIG0sdnIiKQ0KPiAtICAgICAgIChtYXRjaF9vcGVyYW5kOlZMU19B VkxfUkVHIDEgInJlZ19vcl9tZW1fb3BlcmFuZCIgIiAgbSx2cix2ciIpKQ0KPiAtICAgKGNsb2Ji ZXIgKG1hdGNoX3NjcmF0Y2g6UCAyICI9JnIsJnIsWCIpKV0NCj4gLSAgIlRBUkdFVF9WRUNUT1Ig JiYgKGxyYV9pbl9wcm9ncmVzcyB8fCByZWxvYWRfY29tcGxldGVkKQ0KPiAtICAgJiYgKHJlZ2lz dGVyX29wZXJhbmQgKG9wZXJhbmRzWzBdLCA8VkxTX0FWTF9SRUc6TU9ERT5tb2RlKQ0KPiAtICAg ICAgIHx8IHJlZ2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzFdLCA8VkxTX0FWTF9SRUc6TU9ERT5t b2RlKSkiDQo+IC0gICIjIg0KPiAtICAiJiYgcmVsb2FkX2NvbXBsZXRlZCINCj4gLSAgWyhjb25z dF9pbnQgMCldDQo+IC17DQo+IC0gIGlmIChSRUdfUCAob3BlcmFuZHNbMF0pICYmIFJFR19QIChv cGVyYW5kc1sxXSkpDQo+IC0gICAgICBlbWl0X2luc24gKGdlbl9ydHhfU0VUIChvcGVyYW5kc1sw XSwgb3BlcmFuZHNbMV0pKTsNCj4gLSAgZWxzZQ0KPiAtICAgIHsNCj4gLSAgICAgIGVtaXRfbW92 ZV9pbnNuIChvcGVyYW5kc1syXSwgZ2VuX2ludF9tb2RlIChHRVRfTU9ERV9OVU5JVFMgKDxWTFNf QVZMX1JFRzpNT0RFPm1vZGUpLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUG1vZGUpKTsNCj4gLSAgICAgIHVuc2lnbmVkIGluc25fZmxhZ3MNCj4g LSAgICAgICAgPSBHRVRfTU9ERV9DTEFTUyAoPFZMU19BVkxfUkVHOk1PREU+bW9kZSkgPT0gTU9E RV9WRUNUT1JfQk9PTA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgID8gcmlzY3ZfdmVjdG9yOjpVTkFSWV9NQVNLX09QDQo+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByaXNjdl92ZWN0b3I6 OlVOQVJZX09QOw0KPiAtICAgICAgcmlzY3ZfdmVjdG9yOjplbWl0X25vbnZsbWF4X2luc24gKGNv ZGVfZm9yX3ByZWRfbW92ICg8VkxTX0FWTF9SRUc6TU9ERT5tb2RlKSwNCj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc25fZmxhZ3MsIG9wZXJhbmRzLCBvcGVyYW5k c1syXSk7DQo+IC0gICAgfQ0KPiAtICBET05FOw0KPiAtfQ0KPiAtICBbKHNldF9hdHRyICJ0eXBl IiAidm1vdiIpXQ0KPiAtKQ0KPiAtDQo+IC0oZGVmaW5lX2luc24gIiptb3Y8bW9kZT5fdmxzIg0K PiAtICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWTFMgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj12ciIp DQo+IC0gICAgICAgKG1hdGNoX29wZXJhbmQ6VkxTIDEgInJlZ2lzdGVyX29wZXJhbmQiICIgdnIi KSldDQo+IC0gICJUQVJHRVRfVkVDVE9SIg0KPiAtICAidm12JW0xci52XHQlMCwlMSINCj4gLSAg WyhzZXRfYXR0ciAidHlwZSIgInZtb3YiKQ0KPiAtICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+ IildKQ0KPiAtDQo+IC0oZGVmaW5lX2luc24gIiptb3Y8bW9kZT5fdmxzIg0KPiAtICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpWTFNCIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9dnIiKQ0KPiAtICAgICAg IChtYXRjaF9vcGVyYW5kOlZMU0IgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiB2ciIpKV0NCj4gLSAg IlRBUkdFVF9WRUNUT1IiDQo+IC0gICJ2bXYxci52XHQlMCwlMSINCj4gLSAgWyhzZXRfYXR0ciAi dHlwZSIgInZtb3YiKQ0KPiAtICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQ0KPiAtDQo+ IC0oZGVmaW5lX2V4cGFuZCAibW92bWlzYWxpZ248bW9kZT4iDQo+IC0gIFsoc2V0IChtYXRjaF9v cGVyYW5kOlZMUyAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIpDQo+IC0gICAgICAgKG1hdGNoX29w ZXJhbmQ6VkxTIDEgImdlbmVyYWxfb3BlcmFuZCIpKV0NCj4gLSAgIlRBUkdFVF9WRUNUT1IiDQo+ IC0gIHsNCj4gLSAgICAvKiBUbyBzdXBwb3J0IG1pc2FsaWduIGRhdGEgbW92ZW1lbnQsIHdlIHNo b3VsZCB1c2UNCj4gLSAgICAgICBtaW5pbXVtIGVsZW1lbnQgYWxpZ25tZW50IGxvYWQvc3RvcmUu ICAqLw0KPiAtICAgIHVuc2lnbmVkIGludCBzaXplID0gR0VUX01PREVfU0laRSAoR0VUX01PREVf SU5ORVIgKDxNT0RFPm1vZGUpKTsNCj4gLSAgICBwb2x5X2ludDY0IG51bml0cyA9IEdFVF9NT0RF X05VTklUUyAoPE1PREU+bW9kZSkgKiBzaXplOw0KPiAtICAgIG1hY2hpbmVfbW9kZSBtb2RlID0g cmlzY3ZfdmVjdG9yOjpnZXRfdmVjdG9yX21vZGUgKFFJbW9kZSwgbnVuaXRzKS5yZXF1aXJlICgp Ow0KPiAtICAgIG9wZXJhbmRzWzBdID0gZ2VuX2xvd3BhcnQgKG1vZGUsIG9wZXJhbmRzWzBdKTsN Cj4gLSAgICBvcGVyYW5kc1sxXSA9IGdlbl9sb3dwYXJ0IChtb2RlLCBvcGVyYW5kc1sxXSk7DQo+ IC0gICAgaWYgKE1FTV9QIChvcGVyYW5kc1swXSkgJiYgIXJlZ2lzdGVyX29wZXJhbmQgKG9wZXJh bmRzWzFdLCBtb2RlKSkNCj4gLSAgICAgIG9wZXJhbmRzWzFdID0gZm9yY2VfcmVnIChtb2RlLCBv cGVyYW5kc1sxXSk7DQo+IC0gICAgcmlzY3ZfdmVjdG9yOjplbWl0X3ZsbWF4X2luc24gKGNvZGVf Zm9yX3ByZWRfbW92IChtb2RlKSwgcmlzY3ZfdmVjdG9yOjpVTkFSWV9PUCwgb3BlcmFuZHMpOw0K PiAtICAgIERPTkU7DQo+IC0gIH0NCj4gLSkNCj4gLQ0KPiAtOzsgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gLTs7IC0t LS0gRHVwbGljYXRlIE9wZXJhdGlvbnMNCj4gLTs7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IC0NCj4gLShkZWZpbmVf aW5zbl9hbmRfc3BsaXQgIkB2ZWNfZHVwbGljYXRlPG1vZGU+Ig0KPiAtICBbKHNldCAobWF0Y2hf b3BlcmFuZDpWTFMgMCAicmVnaXN0ZXJfb3BlcmFuZCIpDQo+IC0gICAgICAgICh2ZWNfZHVwbGlj YXRlOlZMUw0KPiAtICAgICAgICAgIChtYXRjaF9vcGVyYW5kOjxWRUw+IDEgInJlZ19vcl9pbnRf b3BlcmFuZCIpKSldDQo+IC0gICJUQVJHRVRfVkVDVE9SICYmIGNhbl9jcmVhdGVfcHNldWRvX3Ag KCkiDQo+IC0gICIjIg0KPiAtICAiJiYgMSINCj4gLSAgWyhjb25zdF9pbnQgMCldDQo+IC0gIHsN Cj4gLSAgICByaXNjdl92ZWN0b3I6OmVtaXRfdmxtYXhfaW5zbiAoY29kZV9mb3JfcHJlZF9icm9h ZGNhc3QgKDxNT0RFPm1vZGUpLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByaXNjdl92ZWN0b3I6OlVOQVJZX09QLCBvcGVyYW5kcyk7DQo+IC0gICAgRE9ORTsNCj4gLSAg fQ0KPiAtICBbKHNldF9hdHRyICJ0eXBlIiAidmVjdG9yIildDQo+IC0pDQo+IGRpZmYgLS1naXQg YS9nY2MvY29uZmlnL3Jpc2N2L3ZlY3Rvci5tZCBiL2djYy9jb25maWcvcmlzY3YvdmVjdG9yLm1k DQo+IGluZGV4IDkzOWU5OTJjYWQxLi40MDUxMmU4ZDg2NCAxMDA2NDQNCj4gLS0tIGEvZ2NjL2Nv bmZpZy9yaXNjdi92ZWN0b3IubWQNCj4gKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi92ZWN0b3IubWQN Cj4gQEAgLTI1LDcgKzI1LDYgQEANCj4gIDs7IC0gSW50cmluc2ljcyAoaHR0cHM6Ly9naXRodWIu Y29tL3Jpc2N2L3J2di1pbnRyaW5zaWMtZG9jKQ0KPiAgOzsgLSBBdXRvLXZlY3Rvcml6YXRpb24g KGF1dG92ZWMubWQpDQo+ICA7OyAtIE9wdGltaXphdGlvbiAoYXV0b3ZlYy1vcHQubWQpDQo+IC07 OyAtIFZMUyBwYXR0ZXJucyAoYXV0b3ZlYy12bHMubWQpDQo+DQo+ICAoaW5jbHVkZSAidmVjdG9y LWl0ZXJhdG9ycy5tZCIpDQo+DQo+IEBAIC0xMjEwLDYgKzEyMDksMTYwIEBADQo+ICAgIFsoc2V0 X2F0dHIgInR5cGUiICJ2bW92LHZsZGUsdnN0ZSIpDQo+ICAgICAoc2V0X2F0dHIgIm1vZGUiICI8 VlQ6TU9ERT4iKV0pDQo+DQo+ICs7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOzsgLS0tLSBWTFMgTW92ZXMgT3Bl cmF0aW9ucw0KPiArOzsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArKGRlZmluZV9leHBhbmQgIm1vdjxtb2Rl PiINCj4gKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkxTX0FWTF9JTU0gMCAicmVnX29yX21lbV9v cGVyYW5kIikNCj4gKyAgICAgICAobWF0Y2hfb3BlcmFuZDpWTFNfQVZMX0lNTSAxICJnZW5lcmFs X29wZXJhbmQiKSldDQo+ICsgICJUQVJHRVRfVkVDVE9SIg0KPiArew0KPiArICBpZiAocmlzY3Zf dmVjdG9yOjpsZWdpdGltaXplX21vdmUgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSkpDQo+ICsg ICAgRE9ORTsNCj4gK30pDQo+ICsNCj4gKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIiptb3Y8bW9k ZT5fbWVtX3RvX21lbSINCj4gKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkxTX0FWTF9JTU0gMCAi bWVtb3J5X29wZXJhbmQiKQ0KPiArICAgICAgIChtYXRjaF9vcGVyYW5kOlZMU19BVkxfSU1NIDEg Im1lbW9yeV9vcGVyYW5kIikpXQ0KPiArICAiVEFSR0VUX1ZFQ1RPUiAmJiBjYW5fY3JlYXRlX3Bz ZXVkb19wICgpIg0KPiArICAiIyINCj4gKyAgIiYmIDEiDQo+ICsgIFsoY29uc3RfaW50IDApXQ0K PiArICB7DQo+ICsgICAgaWYgKEdFVF9NT0RFX0JJVFNJWkUgKDxNT0RFPm1vZGUpLnRvX2NvbnN0 YW50ICgpIDw9IE1BWF9CSVRTX1BFUl9XT1JEKQ0KPiArICAgICAgew0KPiArICAgICAgICAvKiBP cGl0bWl6ZSB0aGUgZm9sbG93aW5nIGNhc2U6DQo+ICsNCj4gKyAgICAgICAgICAgdHlwZWRlZiBp bnQ4X3QgdjJxaSBfX2F0dHJpYnV0ZV9fICgodmVjdG9yX3NpemUgKDIpKSk7DQo+ICsgICAgICAg ICAgIHYycWkgdiA9ICoodjJxaSopaW47DQo+ICsgICAgICAgICAgICoodjJxaSopb3V0ID0gdjsN Cj4gKw0KPiArICAgICAgICAgICBXZSBwcmVmZXIgc2NhbGFyIGxvYWQvc3RvcmUgaW5zdGVhZCBv ZiB2bGUudi92c2UudiB3aGVuDQo+ICsgICAgICAgICAgIHRoZSBWTFMgbW9kZXMgc2l6ZSBpcyBz bWFsbGVyIHNjYWxhciBtb2RlLiAgKi8NCj4gKyAgICAgICAgbWFjaGluZV9tb2RlIG1vZGU7DQo+ ICsgICAgICAgIHVuc2lnbmVkIHNpemUgPSBHRVRfTU9ERV9CSVRTSVpFICg8TU9ERT5tb2RlKS50 b19jb25zdGFudCAoKTsNCj4gKyAgICAgICAgaWYgKEZMT0FUX01PREVfUCAoPE1PREU+bW9kZSkp DQo+ICsgICAgICAgICBtb2RlID0gbW9kZV9mb3Jfc2l6ZSAoc2l6ZSwgTU9ERV9GTE9BVCwgMCku cmVxdWlyZSAoKTsNCj4gKyAgICAgICAgZWxzZQ0KPiArICAgICAgICAgbW9kZSA9IG1vZGVfZm9y X3NpemUgKHNpemUsIE1PREVfSU5ULCAwKS5yZXF1aXJlICgpOw0KPiArICAgICAgICBlbWl0X21v dmVfaW5zbiAoZ2VuX2xvd3BhcnQgKG1vZGUsIG9wZXJhbmRzWzBdKSwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgZ2VuX2xvd3BhcnQgKG1vZGUsIG9wZXJhbmRzWzFdKSk7DQo+ICsgICAgICB9 DQo+ICsgICAgZWxzZQ0KPiArICAgICAgew0KPiArICAgICAgIG9wZXJhbmRzWzFdID0gZm9yY2Vf cmVnICg8TU9ERT5tb2RlLCBvcGVyYW5kc1sxXSk7DQo+ICsgICAgICAgZW1pdF9tb3ZlX2luc24g KG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSk7DQo+ICsgICAgICB9DQo+ICsgICAgRE9ORTsNCj4g KyAgfQ0KPiArICBbKHNldF9hdHRyICJ0eXBlIiAidm1vdiIpXQ0KPiArKQ0KPiArDQo+ICsoZGVm aW5lX2luc25fYW5kX3NwbGl0ICIqbW92PG1vZGU+Ig0KPiArICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpWTFNfQVZMX0lNTSAwICJyZWdfb3JfbWVtX29wZXJhbmQiICI9dnIsIG0sIHZyIikNCj4gKyAg ICAgICAobWF0Y2hfb3BlcmFuZDpWTFNfQVZMX0lNTSAxICJyZWdfb3JfbWVtX29wZXJhbmQiICIg IG0sdnIsIHZyIikpXQ0KPiArICAiVEFSR0VUX1ZFQ1RPUg0KPiArICAgJiYgKHJlZ2lzdGVyX29w ZXJhbmQgKG9wZXJhbmRzWzBdLCA8TU9ERT5tb2RlKQ0KPiArICAgICAgIHx8IHJlZ2lzdGVyX29w ZXJhbmQgKG9wZXJhbmRzWzFdLCA8TU9ERT5tb2RlKSkiDQo+ICsgICJADQo+ICsgICAjDQo+ICsg ICAjDQo+ICsgICB2bXYlbTFyLnZcdCUwLCUxIg0KPiArICAiJiYgcmVsb2FkX2NvbXBsZXRlZA0K PiArICAgJiYgKCFyZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1swXSwgPE1PREU+bW9kZSkNCj4g KyAgICAgICB8fCAhcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMV0sIDxNT0RFPm1vZGUpKSIN Cj4gKyAgWyhjb25zdF9pbnQgMCldDQo+ICsgIHsNCj4gKyAgICBib29sIG9rX3AgPSByaXNjdl92 ZWN0b3I6OmxlZ2l0aW1pemVfbW92ZSAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKTsNCj4gKyAg ICBnY2NfYXNzZXJ0IChva19wKTsNCj4gKyAgICBET05FOw0KPiArICB9DQo+ICsgIFsoc2V0X2F0 dHIgInR5cGUiICJ2bW92IildDQo+ICspDQo+ICsNCj4gKyhkZWZpbmVfZXhwYW5kICJtb3Y8bW9k ZT4iDQo+ICsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZMU19BVkxfUkVHIDAgInJlZ19vcl9tZW1f b3BlcmFuZCIpDQo+ICsgICAgICAgKG1hdGNoX29wZXJhbmQ6VkxTX0FWTF9SRUcgMSAiZ2VuZXJh bF9vcGVyYW5kIikpXQ0KPiArICAiVEFSR0VUX1ZFQ1RPUiINCj4gK3sNCj4gKyAgYm9vbCBva19w ID0gcmlzY3ZfdmVjdG9yOjpsZWdpdGltaXplX21vdmUgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sx XSk7DQo+ICsgIGdjY19hc3NlcnQgKG9rX3ApOw0KPiArICBET05FOw0KPiArfSkNCj4gKw0KPiAr KGRlZmluZV9leHBhbmQgIkBtb3Y8VkxTX0FWTF9SRUc6bW9kZT48UDptb2RlPl9scmEiDQo+ICsg IFsocGFyYWxsZWwNCj4gKyAgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWTFNfQVZMX1JFRyAwICJy ZWdfb3JfbWVtX29wZXJhbmQiKQ0KPiArICAgICAgICAgKG1hdGNoX29wZXJhbmQ6VkxTX0FWTF9S RUcgMSAicmVnX29yX21lbV9vcGVyYW5kIikpDQo+ICsgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRj aDpQIDIpKV0pXQ0KPiArICAiVEFSR0VUX1ZFQ1RPUiAmJiAobHJhX2luX3Byb2dyZXNzIHx8IHJl bG9hZF9jb21wbGV0ZWQpIg0KPiAre30pDQo+ICsNCj4gKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQg Iiptb3Y8VkxTX0FWTF9SRUc6bW9kZT48UDptb2RlPl9scmEiDQo+ICsgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlZMU19BVkxfUkVHIDAgInJlZ19vcl9tZW1fb3BlcmFuZCIgIj12ciwgbSx2ciIpDQo+ ICsgICAgICAgKG1hdGNoX29wZXJhbmQ6VkxTX0FWTF9SRUcgMSAicmVnX29yX21lbV9vcGVyYW5k IiAiICBtLHZyLHZyIikpDQo+ICsgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpQIDIgIj0mciwm cixYIikpXQ0KPiArICAiVEFSR0VUX1ZFQ1RPUiAmJiAobHJhX2luX3Byb2dyZXNzIHx8IHJlbG9h ZF9jb21wbGV0ZWQpDQo+ICsgICAmJiAocmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMF0sIDxW TFNfQVZMX1JFRzpNT0RFPm1vZGUpDQo+ICsgICAgICAgfHwgcmVnaXN0ZXJfb3BlcmFuZCAob3Bl cmFuZHNbMV0sIDxWTFNfQVZMX1JFRzpNT0RFPm1vZGUpKSINCj4gKyAgIiMiDQo+ICsgICImJiBy ZWxvYWRfY29tcGxldGVkIg0KPiArICBbKGNvbnN0X2ludCAwKV0NCj4gK3sNCj4gKyAgaWYgKFJF R19QIChvcGVyYW5kc1swXSkgJiYgUkVHX1AgKG9wZXJhbmRzWzFdKSkNCj4gKyAgICAgIGVtaXRf aW5zbiAoZ2VuX3J0eF9TRVQgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSkpOw0KPiArICBlbHNl DQo+ICsgICAgew0KPiArICAgICAgZW1pdF9tb3ZlX2luc24gKG9wZXJhbmRzWzJdLCBnZW5faW50 X21vZGUgKEdFVF9NT0RFX05VTklUUyAoPFZMU19BVkxfUkVHOk1PREU+bW9kZSksDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQbW9kZSkpOw0KPiAr ICAgICAgdW5zaWduZWQgaW5zbl9mbGFncw0KPiArICAgICAgICA9IEdFVF9NT0RFX0NMQVNTICg8 VkxTX0FWTF9SRUc6TU9ERT5tb2RlKSA9PSBNT0RFX1ZFQ1RPUl9CT09MDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyByaXNjdl92ZWN0b3I6 OlVOQVJZX01BU0tfT1ANCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA6IHJpc2N2X3ZlY3Rvcjo6VU5BUllfT1A7DQo+ICsgICAgICByaXNjdl92 ZWN0b3I6OmVtaXRfbm9udmxtYXhfaW5zbiAoY29kZV9mb3JfcHJlZF9tb3YgKDxWTFNfQVZMX1JF RzpNT0RFPm1vZGUpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW5zbl9mbGFncywgb3BlcmFuZHMsIG9wZXJhbmRzWzJdKTsNCj4gKyAgICB9DQo+ICsgIERPTkU7 DQo+ICt9DQo+ICsgIFsoc2V0X2F0dHIgInR5cGUiICJ2bW92IildDQo+ICspDQo+ICsNCj4gKyhk ZWZpbmVfaW5zbiAiKm1vdjxtb2RlPl92bHMiDQo+ICsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZM UyAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXZyIikNCj4gKyAgICAgICAobWF0Y2hfb3BlcmFuZDpW TFMgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiB2ciIpKV0NCj4gKyAgIlRBUkdFVF9WRUNUT1IiDQo+ ICsgICJ2bXYlbTFyLnZcdCUwLCUxIg0KPiArICBbKHNldF9hdHRyICJ0eXBlIiAidm1vdiIpDQo+ ICsgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pDQo+ICsNCj4gKyhkZWZpbmVfaW5zbiAi Km1vdjxtb2RlPl92bHMiDQo+ICsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZMU0IgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgIj12ciIpDQo+ICsgICAgICAgKG1hdGNoX29wZXJhbmQ6VkxTQiAxICJyZWdp c3Rlcl9vcGVyYW5kIiAiIHZyIikpXQ0KPiArICAiVEFSR0VUX1ZFQ1RPUiINCj4gKyAgInZtdjFy LnZcdCUwLCUxIg0KPiArICBbKHNldF9hdHRyICJ0eXBlIiAidm1vdiIpDQo+ICsgICAoc2V0X2F0 dHIgIm1vZGUiICI8TU9ERT4iKV0pDQo+ICsNCj4gKyhkZWZpbmVfZXhwYW5kICJtb3ZtaXNhbGln bjxtb2RlPiINCj4gKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkxTIDAgIm5vbmltbWVkaWF0ZV9v cGVyYW5kIikNCj4gKyAgICAgICAobWF0Y2hfb3BlcmFuZDpWTFMgMSAiZ2VuZXJhbF9vcGVyYW5k IikpXQ0KPiArICAiVEFSR0VUX1ZFQ1RPUiINCj4gKyAgew0KPiArICAgIC8qIFRvIHN1cHBvcnQg bWlzYWxpZ24gZGF0YSBtb3ZlbWVudCwgd2Ugc2hvdWxkIHVzZQ0KPiArICAgICAgIG1pbmltdW0g ZWxlbWVudCBhbGlnbm1lbnQgbG9hZC9zdG9yZS4gICovDQo+ICsgICAgdW5zaWduZWQgaW50IHNp emUgPSBHRVRfTU9ERV9TSVpFIChHRVRfTU9ERV9JTk5FUiAoPE1PREU+bW9kZSkpOw0KPiArICAg IHBvbHlfaW50NjQgbnVuaXRzID0gR0VUX01PREVfTlVOSVRTICg8TU9ERT5tb2RlKSAqIHNpemU7 DQo+ICsgICAgbWFjaGluZV9tb2RlIG1vZGUgPSByaXNjdl92ZWN0b3I6OmdldF92ZWN0b3JfbW9k ZSAoUUltb2RlLCBudW5pdHMpLnJlcXVpcmUgKCk7DQo+ICsgICAgb3BlcmFuZHNbMF0gPSBnZW5f bG93cGFydCAobW9kZSwgb3BlcmFuZHNbMF0pOw0KPiArICAgIG9wZXJhbmRzWzFdID0gZ2VuX2xv d3BhcnQgKG1vZGUsIG9wZXJhbmRzWzFdKTsNCj4gKyAgICBpZiAoTUVNX1AgKG9wZXJhbmRzWzBd KSAmJiAhcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMV0sIG1vZGUpKQ0KPiArICAgICAgb3Bl cmFuZHNbMV0gPSBmb3JjZV9yZWcgKG1vZGUsIG9wZXJhbmRzWzFdKTsNCj4gKyAgICByaXNjdl92 ZWN0b3I6OmVtaXRfdmxtYXhfaW5zbiAoY29kZV9mb3JfcHJlZF9tb3YgKG1vZGUpLCByaXNjdl92 ZWN0b3I6OlVOQVJZX09QLCBvcGVyYW5kcyk7DQo+ICsgICAgRE9ORTsNCj4gKyAgfQ0KPiArKQ0K PiArDQo+ICA7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgOzsgLS0tLSBEdXBsaWNhdGUgT3BlcmF0aW9ucw0KPiAg OzsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4gQEAgLTEyMzAsNiArMTM4MywyMiBAQA0KPiAgICB9DQo+ICApDQo+DQo+ ICsoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJAdmVjX2R1cGxpY2F0ZTxtb2RlPiINCj4gKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6VkxTIDAgInJlZ2lzdGVyX29wZXJhbmQiKQ0KPiArICAgICAgICAo dmVjX2R1cGxpY2F0ZTpWTFMNCj4gKyAgICAgICAgICAobWF0Y2hfb3BlcmFuZDo8VkVMPiAxICJy ZWdfb3JfaW50X29wZXJhbmQiKSkpXQ0KPiArICAiVEFSR0VUX1ZFQ1RPUiAmJiBjYW5fY3JlYXRl X3BzZXVkb19wICgpIg0KPiArICAiIyINCj4gKyAgIiYmIDEiDQo+ICsgIFsoY29uc3RfaW50IDAp XQ0KPiArICB7DQo+ICsgICAgcmlzY3ZfdmVjdG9yOjplbWl0X3ZsbWF4X2luc24gKGNvZGVfZm9y X3ByZWRfYnJvYWRjYXN0ICg8TU9ERT5tb2RlKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmlzY3ZfdmVjdG9yOjpVTkFSWV9PUCwgb3BlcmFuZHMpOw0KPiArICAgIERP TkU7DQo+ICsgIH0NCj4gKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3RvciIpXQ0KPiArKQ0KPiAr DQo+ICA7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPiAgOzsgLS0tLSA2LiBDb25maWd1cmF0aW9uLVNldHRpbmcgSW5z dHJ1Y3Rpb25zDQo+ICA7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiBAQCAtODU0MCw0ICs4NzA5LDMgQEANCj4NCj4g IChpbmNsdWRlICJhdXRvdmVjLm1kIikNCj4gIChpbmNsdWRlICJhdXRvdmVjLW9wdC5tZCIpDQo+ IC0oaW5jbHVkZSAiYXV0b3ZlYy12bHMubWQiKQ0KPiAtLQ0KPiAyLjM2LjMNCj4NCg==