From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by sourceware.org (Postfix) with ESMTPS id 2A7CB3858D39 for ; Thu, 13 Jan 2022 01:21:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2A7CB3858D39 X-IronPort-AV: E=McAfee;i="6200,9189,10225"; a="304637046" X-IronPort-AV: E=Sophos;i="5.88,284,1635231600"; d="scan'208";a="304637046" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jan 2022 17:21:46 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,284,1635231600"; d="scan'208";a="691607265" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga005.jf.intel.com with ESMTP; 12 Jan 2022 17:21:46 -0800 Received: from fmsmsx605.amr.corp.intel.com (10.18.126.85) 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.2308.20; Wed, 12 Jan 2022 17:21:46 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Wed, 12 Jan 2022 17:21:46 -0800 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.41) 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.2308.20; Wed, 12 Jan 2022 17:21:45 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P6x/fk25gmA3m/qwuNG4lQuzFd9UY0BhJDppeH7B14L7bccnd5zX1UIn9fsjoUNKgk9seCkZRK78MhG+VOS5f2o/F2J1puL74O8cQjY6Id6wV91j4EcEeKmj2Sg50XgOKIR7UGea8xQXrsm8ry+mASHKDuMTAEFB86nMNvgWfZFKrP+rG5HrJ3DBzHdLXdhiIRV8aE4BZn3gKzqJBlPPiuSamaYoQ5SSluvUn7DLaAz76kPMPo/VU3sOSXNpmgVRggsqz6z0FmRBcxeeLLwgrlDfoCU7ABqJOSdvaBsMIL2Qoa/M0j4UL4DnDCLUWOlQXB+6pnWPGkClj64WrP0YOA== 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=B4m+wuQeninUFNev3uGBFEnwqRPudp7ohfR8jTbSt9A=; b=SM+o3yWKxbVAugDMcRbZCPAO/L3TkQnUyI+wCw9utx5KfBzYr1rfvplZLyrIr5ArQgLEV+1zgUdgeW24/arDvb7TPdPsrnAhtYZezMagz47MiqH6WAtcvmzzeeqt4wibq2sIGSXLtFzXKvP73W0mRmwNYfPUI1KeTOxWR7qnXF9xQAyPVAEGmtC6x1c/7n7FqHGrH+XFMpsyNNMEAj2bghaoDCnagu7BVjGOYFuvXBVajFzC2//Sz+RFPh8UVyP8Xe2i8URC4b4Z+QK/Ar+p+pQzakGEjLNdsENvuw7MO94X/H339F6RWM1omMYP8DdJKedWZosVZkcQYtNnRXfoBA== 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 MN2PR11MB3678.namprd11.prod.outlook.com (2603:10b6:208:f8::11) by BL1PR11MB5461.namprd11.prod.outlook.com (2603:10b6:208:30b::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.9; Thu, 13 Jan 2022 01:21:44 +0000 Received: from MN2PR11MB3678.namprd11.prod.outlook.com ([fe80::f58e:7c5f:f34f:3dcc]) by MN2PR11MB3678.namprd11.prod.outlook.com ([fe80::f58e:7c5f:f34f:3dcc%6]) with mapi id 15.20.4867.012; Thu, 13 Jan 2022 01:21:44 +0000 From: "Jiang, Haochen" To: Uros Bizjak CC: "gcc-patches@gcc.gnu.org" , "Liu, Hongtao" Subject: RE: [PATCH] [i386] Optimize a ^ ((a ^ b) & mask) to (~mask & a) | (b & mask). Thread-Topic: [PATCH] [i386] Optimize a ^ ((a ^ b) & mask) to (~mask & a) | (b & mask). Thread-Index: AQHYB+nGz59DOgeRi0yLvh5oMJ175KxgJ9bg Date: Thu, 13 Jan 2022 01:21:44 +0000 Message-ID: References: <20220112081152.64776-1-haochen.jiang@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.200.16 dlp-reaction: no-action x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f5b79b68-cba4-444a-6af1-08d9d6330ff7 x-ms-traffictypediagnostic: BL1PR11MB5461:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: LwKVoWMXCiauvz1v08ssrm5LGhmV0KXZGDWrNnRvJPjxyvH4QcudX16StGzgWeVxnvw4rXivvzxlgZUbj/KCZBn8/nZ0fq5RXSxdyNZ3t+xxVIezzpNooVhIoQZtUMnjRUp2jbYEPo3FbQteIPIYc9B3lX2X2Bt68djhcJZSVOwDsGu5nZOlS6PrCpp0j6eFEKq/qhRxq2tg+4WSotecw+Ms7F1BPbMDQuU3aFmifWrXb4Dhp79Doztq2LiLbMHMBjPS7jwwnJHh7TwaqEKqcOlj0SJXgB2zYW1hCGQaw0Ku1TL0qqjtlQlbKyFsdOCX8OpA/eTkRDuZ+9vq0My7w3zSmqp57zOzdilmXdIx0SBbDiquTFQkMi4zo1C/dzhofxI24GtKFlfUGSQqg3gma0KfPWht30gSllMaoRL1R9gjOEyAyIgRu3X0OEc6UCl/zP79xJ0QdoY34EXrsHW19PVHiZVSTcHtOGBB93h0AFEekA0tGU0hQ/H9TeKhUXfd0Hl5LCFZQwPUr01ozHyTES2W1nj5xunGu4w7vntUrGwag8HA8CRR6dW+l9Szk7G5bXjHIiMl98Iz8CVsM4tYdFkRoxfPZshYDheBPuHHwmjJhFzeclrfTQukmEj1Br1LbblKSkJV4RaGF1GdyrkNWXTdPXqqSpwCUm//zq+WUbdis35MYDwSevenjzP+AO7IUb0Ya8qBg1vWXtk17pQePrA54clUUiEsv5yFzUVjRk3a0Okok9aK/w7S+TtTVFobM4EZkOcdEWf/LaxIklfnYRHOr1X/4HOQLiIAbKsTU4ouoMgag0YEE407lxdV1/w6 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB3678.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(53546011)(6506007)(4326008)(52536014)(107886003)(71200400001)(7696005)(9686003)(83380400001)(38100700002)(508600001)(82960400001)(86362001)(5660300002)(316002)(55016003)(8936002)(76116006)(54906003)(26005)(66446008)(122000001)(66556008)(66476007)(64756008)(66946007)(84970400001)(33656002)(186003)(38070700005)(2906002)(8676002)(6916009)(81973001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OS9vbUlEcElKVU9McmFDbnFJNllOSUtqamtMSitHVkVyVFg5ajluZTZta0hR?= =?utf-8?B?cUtLWVI2MUZkZTE4Q2ZGeGtrbnlvTjd1UEdRVVNrYnl5d1hqRGVrWldCeWcz?= =?utf-8?B?ZmxhdXVoQXpIQ0p6eVhsRUZFUnV3OXRWWWNJK0VtaUJMYjhZNGFZOGRTSU9M?= =?utf-8?B?cVA0bzNoalVTdkp6R0NLQWlVTVdnVWVBMmpCY2NsYXZtbzB5ZnJjdUZBNkh4?= =?utf-8?B?cVlCelExb2E3MTVwdmVzamZpVHEva3FDOXBJSUFzc05Mc0xxbnhIK3JnUTlw?= =?utf-8?B?bk5uSjdIdkl2N1dGdmZmWmIwQnRJNnozRW1EdVNxR21qcTNsdlRJc1kvTVF6?= =?utf-8?B?MVh3VXdyVTFZODFSRFdIT09EOWllT0pkZnMwZ3ZYeGVaS0wvK3dzTEVKcjdG?= =?utf-8?B?SS9HaTVrSGtDQjlLTzZwbG9kQjNYYnJCQmJUN2RWTkRVKytHSnlZbWhvaDBR?= =?utf-8?B?U2dGemhxMEJBY3VXcnN3eVJSTUtuckU0Q2p2TWgwSXIzVytUWU9GaFgzRndr?= =?utf-8?B?SVlCclhZelBsd1dyQzg0UGFLQjlGK1RITU1HYzI5bjQxbldEK3VaWXBrclAz?= =?utf-8?B?Z2JrL1dmVVRuRVMxNk9wdUVlVzlYbTRoeEJwcVpUS2FKRnpPalRzdzZod2Nw?= =?utf-8?B?QVNISUdJRWUram5qcTRjeDUvaTJFdHBsMkJDU09hQ0dOYjBScnBvclpqQ3ov?= =?utf-8?B?ZGRMTGxBc2YxY3Y0RXIrMGdCL0YyT3BMcCt2dSt0MnRyeFlEb3BYOXVsOFVo?= =?utf-8?B?OVZ5bXJCQ0k1UlZ5ekduaVRYam4zWEdLa1JmNDZSMENFem04VDh0WXFnNXBr?= =?utf-8?B?bHJDNHhtaFo0aGY0NENXR2lFVUdUNTBZMGxJUHFLeTYwTXRoV05jWk8zY3VH?= =?utf-8?B?UHM1b2NYc01ZNThkK3cvbkhDamRRRlV5ZmxUajlxNk41Z0VKZ0cya1JUNkNH?= =?utf-8?B?clZMY0ZrbjZHbGZJM1BzOFRYbC9hY3c4TmFVenlPME5HWHM1Znc3RER3QUlx?= =?utf-8?B?Um41OUUwMmcrcnpESC9QYlVtZ0x6YWI5dzIzeGh2ZWViZWVOZVRaMkJrdXpE?= =?utf-8?B?RXdadFlVaFBLYlZWcEEzQjdHc1I5N2JxYnRxUWRGS3ovaGFSaUJJbjlBRHVN?= =?utf-8?B?Z0JnQ1k5NjEvbE50MHJQYU42K09GRHdUZ3RNT0htNEYyckx3LzBjTXNKNVRZ?= =?utf-8?B?V0FUZm1CSGVOaVpleEV3VG9ka0FQT01wVXNCWWEvcnFxbStTb3FIUW1UYkJn?= =?utf-8?B?MVNMMDc1aStWUHk4NWxCaVNMKzRFSFg4LzlRNTVRbXJSQWdYYTl4YVRVODNx?= =?utf-8?B?STM2WURsTG5WQ2YwWUJoZllGK3FGSUl1b3psN1l6aFhuc1NGUkZwR25BbzFW?= =?utf-8?B?ZVdoMTEzL3A3RkpqSml2bVlkT1dqYTZ6VUM4S1N4d0QxVEpoODN3YVZjSlZJ?= =?utf-8?B?bGxiY3JDV2VEK3NVM3Urdm9kK0V2eEwzVjFqSEx0dWl6bVNsVE4vMnkrcng1?= =?utf-8?B?RkZreHBEVDNKMTJOTHcvQmRuNnNqeGIvdFVLaU1hMG9PKzNXY2N4WE1pb2g2?= =?utf-8?B?L0ZKWkNlMGxlUnpaMHFHY0lGdDdCSnRpMjZpL1l3NnhMRGkrU1UzRFZDSG5H?= =?utf-8?B?S1hrWlJJMk55MTdmRzhJcTZUeFMzNk1kWkxhajN3OG5uZm5LNUViQ2V5azFV?= =?utf-8?B?NFZLYmd3elZwTzYzcFYxODRoK0N0dDdnaVdpM21ncnhnYkwzbHNyT2pmYjh4?= =?utf-8?B?ZmxnQVVrRjZ4OVFFbjVPM3czNWUyVGJKSHkxVTBaTmRqR0xqZDZ4ZHdZMmJu?= =?utf-8?B?NkNRQ0t1V0s1WUZMcDE3anJPdDQrUXBpV1ExYkhTZVl3aWlYT1FkMHF1S1dx?= =?utf-8?B?dzFFZGxWSnRkQXRXY2ZnMktsUVJxUkNMQzVYTlNucDNwS3E5NjZ2RGdGb2lm?= =?utf-8?B?SnhBdjlGUzdOajc3d1lYWXZhL1JLcVEvN081aTFGUjdzNTlOL2FBTVVRY0N6?= =?utf-8?B?NWx6YWhNRDFReGdmd01xaHZsU2ViMWRPMkxnQXBnb1l1ZlJVdytHd2w0alIx?= =?utf-8?B?TnJZSmVyeVZVcUJWQWpYRW5YemVBdVY5a2ZoMVlnY05veUMwcklxbVNJTEZD?= =?utf-8?B?RmkxVzFtYUtlSEQrRUJMcm51QlpvOVRSMkpTNVg4bnJKZFByQzRlZk5XK0I4?= =?utf-8?Q?UwjxT29++og0RgMCjjPyr4g=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: MN2PR11MB3678.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f5b79b68-cba4-444a-6af1-08d9d6330ff7 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jan 2022 01:21:44.8716 (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: OUn4KlULEg4rkLSaEnh3tXenjX8JB3suf8gvz691fmiW9OEDUUPLRG6k5FDKQy3WcHVKl/oeVESA7d70pACyIQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB5461 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-14.3 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 autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Jan 2022 01:21:51 -0000 SGkgVXJvcywNCg0KSSBoYXZlIGFsc28gdGVzdGVkIG9uIC1tMzIuIFRoZXkgZG8gbm90IGZhaWwu DQoNClRoeCwNCkhhb2NoZW4NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IFVy b3MgQml6amFrIDx1Yml6amFrQGdtYWlsLmNvbT4gDQpTZW50OiBUaHVyc2RheSwgSmFudWFyeSAx MywgMjAyMiAzOjIyIEFNDQpUbzogSmlhbmcsIEhhb2NoZW4gPGhhb2NoZW4uamlhbmdAaW50ZWwu Y29tPg0KQ2M6IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnOyBMaXUsIEhvbmd0YW8gPGhvbmd0YW8u bGl1QGludGVsLmNvbT4NClN1YmplY3Q6IFJlOiBbUEFUQ0hdIFtpMzg2XSBPcHRpbWl6ZSBhIF4g KChhIF4gYikgJiBtYXNrKSB0byAofm1hc2sgJiBhKSB8IChiICYgbWFzaykuDQoNCk9uIFdlZCwg SmFuIDEyLCAyMDIyIGF0IDk6MTEgQU0gSGFvY2hlbiBKaWFuZyA8aGFvY2hlbi5qaWFuZ0BpbnRl bC5jb20+IHdyb3RlOg0KPg0KPiBIaSBhbGwsDQo+DQo+IFRoaXMgcGF0Y2ggdGFyZ2V0cyBQUjk0 NzkwLCB3aGljaCBjaGFuZ2UgdGhlIGluc3RydWN0aW9uIHNlbGVjdGlvbiB1bmRlciB0aGUgZm9s bG93aW5nIGNpcmN1bXN0YW5jZS4NCj4NCj4gUmVndGVzdGVkIG9uIHg4Nl82NC1wYy1saW51eC1n bnUuIE9rIGZvciB0cnVuaz8NCg0KUGxlYXNlIGFsc28gdGVzdCB3aXRoIC1tMzIsIGUuZy46DQoN Cm1ha2UgLWogMTIgLWsgY2hlY2sgUlVOVEVTVEZMQUdTPSItLXRhcmdldF9ib2FyZD11bml4XHss LW0zMlx9Ig0KDQpPSyAod2l0aCBhbiBpdCBiZWxvdyksIGlmIG5ldyB0ZXN0Y2FzZXMgZG8gbm90 IEZBSUwgd2l0aCAtbTMyLg0KDQpUaGFua3MsDQpVcm9zLg0KDQo+DQo+IEJScywNCj4gSGFvY2hl bg0KPg0KPiBGcm9tIHRoZSBwZXJzcGVjdGl2ZSBvZiB0aGUgcGlwZWxpbmUsIGBhbmRuICsgYW5k ICsgaW9yYCB2ZXJzaW9uIHRha2UNCj4gMiBjeWNsZXMoQU5EIGFuZCBBTkROIGRvZXNuJ3QgaGF2 ZSBkZXBlbmRlbmNlKSwgYnV0IHhvciArIGFuZCArIHhvciANCj4gd2lsbCB0YWtlIDMgY3ljbGVz Lg0KPg0KPiAtICAgICAgIHhvcmwgICAgJWVkaSwgJWVzaQ0KPiAgICAgICAgIGFuZGwgICAgJWVk eCwgJWVzaQ0KPiAtICAgICAgIG1vdmwgICAgJWVzaSwgJWVheA0KPiAtICAgICAgIHhvcmwgICAg JWVkaSwgJWVheA0KPiArICAgICAgIGFuZG4gICAgJWVkaSwgJWVkeCwgJWVheA0KPiArICAgICAg IG9ybCAgICAgJWVzaSwgJWVheA0KPg0KPiBnY2MvQ2hhbmdlTG9nOg0KPg0KPiAgICAgICAgIFBS IHRhZWdldC85NDc5MA0KPiAgICAgICAgICogY29uZmlnL2kzODYvaTM4Ni5tZCAoKnhvcjJhbmRu KTogTmV3IGRlZmluZV9pbnNuX2FuZF9zcGxpdC4NCj4NCj4gZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VM b2c6DQo+DQo+ICAgICAgICAgUFIgdGFlZ2V0Lzk0NzkwDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0 L2kzODYvcHI5NDc5MC0xLmM6IE5ldyB0ZXN0Lg0KPiAgICAgICAgICogZ2NjLnRhcmdldC9pMzg2 L3ByOTQ3OTAtMi5jOiBEaXR0by4NCj4gLS0tDQo+ICBnY2MvY29uZmlnL2kzODYvaTM4Ni5tZCAg ICAgICAgICAgICAgICAgICB8IDM5ICsrKysrKysrKysrKysrKysrKysrKysrDQo+ICBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjk0NzkwLTEuYyB8IDE0ICsrKysrKysrICANCj4gZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI5NDc5MC0yLmMgfCAgOSArKysrKysNCj4gIDMg ZmlsZXMgY2hhbmdlZCwgNjIgaW5zZXJ0aW9ucygrKQ0KPiAgY3JlYXRlIG1vZGUgMTAwNzU1IGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByOTQ3OTAtMS5jDQo+ICBjcmVhdGUgbW9kZSAx MDA3NTUgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI5NDc5MC0yLmMNCj4NCj4gZGlm ZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9pMzg2Lm1kIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYu bWQgaW5kZXggDQo+IDliNDI0YTM5MzViLi4zOGVmYzZkNTgzNyAxMDA2NDQNCj4gLS0tIGEvZ2Nj L2NvbmZpZy9pMzg2L2kzODYubWQNCj4gKysrIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYubWQNCj4g QEAgLTEwNDUyLDYgKzEwNDUyLDQ1IEBADQo+ICAgICAoc2V0X2F0dHIgInpudmVyMV9kZWNvZGUi ICJkb3VibGUiKQ0KPiAgICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pDQo+DQo+ICs7OyBQUiB0 YXJnZXQvOTQ3OTA6IE9wdGltaXplIGEgXiAoKGEgXiBiKSAmIG1hc2spIHRvICh+bWFzayAmIGEp IHwgKGIgDQo+ICsmIG1hc2spIChkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIip4b3IyYW5kbiINCj4g KyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U1dJMjQ4IDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIikN Cj4gKyAgICAgICAoeG9yOlNXSTI0OA0KPiArICAgICAgICAgKGFuZDpTV0kyNDgNCj4gKyAgICAg ICAgICAgKHhvcjpTV0kyNDgNCj4gKyAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpTV0kyNDgg MSAibm9uaW1tZWRpYXRlX29wZXJhbmQiKQ0KPiArICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5k OlNXSTI0OCAyICJub25pbW1lZGlhdGVfb3BlcmFuZCIpKQ0KPiArICAgICAgICAgICAobWF0Y2hf b3BlcmFuZDpTV0kyNDggMyAibm9uaW1tZWRpYXRlX29wZXJhbmQiKSkNCj4gKyAgICAgICAgICht YXRjaF9kdXAgMSkpKQ0KPiArICAgIChjbG9iYmVyIChyZWc6Q0MgRkxBR1NfUkVHKSldDQo+ICsg ICIoVEFSR0VUX0JNSSB8fCBUQVJHRVRfQVZYNTEyQlcpDQo+ICsgICAmJiBpeDg2X3ByZV9yZWxv YWRfc3BsaXQgKCkiDQo+ICsgICIjIg0KPiArICAiJiYgMSINCj4gKyAgWyhwYXJhbGxlbCBbKHNl dCAobWF0Y2hfZHVwIDQpDQo+ICsgICAgICAgICAgICAgICAoYW5kOlNXSTI0OA0KPiArICAgICAg ICAgICAgICAgICAobm90OlNXSTI0OA0KPiArICAgICAgICAgICAgICAgICAgIChtYXRjaF9kdXAg MykpDQo+ICsgICAgICAgICAgICAgICAgIChtYXRjaF9kdXAgMSkpKQ0KPiArICAgICAgICAgICAg IChjbG9iYmVyIChyZWc6Q0MgRkxBR1NfUkVHKSldKQ0KPiArICAgKHBhcmFsbGVsIFsoc2V0ICht YXRjaF9kdXAgNSkNCj4gKyAgICAgICAgICAgICAgIChhbmQ6U1dJMjQ4DQo+ICsgICAgICAgICAg ICAgICAgIChtYXRjaF9kdXAgMikNCj4gKyAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAzKSkp DQo+ICsgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBGTEFHU19SRUcpKV0pDQo+ICsgICAo cGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQ0KPiArICAgICAgICAgICAgICAgKGlvcjpTV0ky NDgNCj4gKyAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCA0KQ0KPiArICAgICAgICAgICAgICAg ICAobWF0Y2hfZHVwIDUpKSkNCj4gKyAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIEZMQUdT X1JFRykpXSldDQo+ICsgIHsNCj4gKyAgICBvcGVyYW5kc1sxXSA9IGZvcmNlX3JlZyAoPE1PREU+ bW9kZSwgb3BlcmFuZHNbMV0pOw0KPiArICAgIG9wZXJhbmRzWzNdID0gZm9yY2VfcmVnICg8TU9E RT5tb2RlLCBvcGVyYW5kc1szXSk7DQo+ICsgICAgb3BlcmFuZHNbNF0gPSBnZW5fcmVnX3J0eCAo PE1PREU+bW9kZSk7DQo+ICsgICAgb3BlcmFuZHNbNV0gPSBnZW5fcmVnX3J0eCAoPE1PREU+bW9k ZSk7DQo+ICsgIH0NCj4gKykNCg0KUGxlYXNlIHB1dCBicmFjZSBqdXN0IGFmdGVyIHRoZSBjdXJ2 ZWQgYnJhY2UsIHNlZSBudW1lcm91cyBleGFtcGxlcyBpbiAubWQgZmlsZXMuDQoNCj4gKw0KPiAg OzsgU2VlIGNvbW1lbnQgZm9yIGFkZHNpXzFfemV4dCB3aHkgd2UgZG8gdXNlIG5vbmltbWVkaWF0 ZV9vcGVyYW5kICANCj4gKGRlZmluZV9pbnNuICIqPGNvZGU+c2lfMV96ZXh0Ig0KPiAgICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKSBkaWZmIC0tZ2l0 IA0KPiBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByOTQ3OTAtMS5jIA0KPiBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByOTQ3OTAtMS5jDQo+IG5ldyBmaWxlIG1vZGUg MTAwNzU1DQo+IGluZGV4IDAwMDAwMDAwMDAwLi42ZWJiZWMxNWNmZA0KPiAtLS0gL2Rldi9udWxs DQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByOTQ3OTAtMS5jDQo+IEBA IC0wLDAgKzEsMTQgQEANCj4gKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQo+ICsvKiB7IGRnLW9w dGlvbnMgIi1PMiAtbWJtaSIgfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzICJhbmRuXFsgXFx0XF0iIDIgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItbm90ICJ4b3JsXFsgXFx0XF0iIH0gfSAqLw0KPiArDQo+ICt1bnNpZ25lZCByMSh1 bnNpZ25lZCBhLCB1bnNpZ25lZCBiLCB1bnNpZ25lZCBtYXNrKSB7DQo+ICsgIHJldHVybiBhIF4g KChhIF4gYikgJiBtYXNrKTsNCj4gK30NCj4gKw0KPiArdW5zaWduZWQgcjIodW5zaWduZWQgYSwg dW5zaWduZWQgYiwgdW5zaWduZWQgbWFzaykgew0KPiArICByZXR1cm4gKH5tYXNrICYgYSkgfCAo YiAmIG1hc2spOw0KPiArfQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2kzODYvcHI5NDc5MC0yLmMgDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI5 NDc5MC0yLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA3NTUNCj4gaW5kZXggMDAwMDAwMDAwMDAuLmQ3 YjBlZWM1YmVmDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvcHI5NDc5MC0yLmMNCj4gQEAgLTAsMCArMSw5IEBADQo+ICsvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLw0KPiArLyogeyBkZy1vcHRpb25zICItTzIgLW1ibWkiIH0gKi8NCj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3QgImFuZG5cWyBcXHRcXSIgfSB9ICovDQo+ICsv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgInhvcmxcWyBcXHRcXSIgMiB9IH0g Ki8NCj4gKw0KPiArdW5zaWduZWQgcjEodW5zaWduZWQgYSwgdW5zaWduZWQgYiwgdW5zaWduZWQg bWFzaykgew0KPiArICByZXR1cm4gYSBeICgoYSBeIGIpICYgbWFzaykgKyAoYSBeIGIpOyB9DQo+ IC0tDQo+IDIuMTguMQ0KPg0K