From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from na01-obe.outbound.protection.outlook.com (mail-cusazon11021021.outbound.protection.outlook.com [52.101.62.21]) by sourceware.org (Postfix) with ESMTPS id 9A7B03858406 for ; Fri, 19 Nov 2021 22:33:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 9A7B03858406 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Bkp7SUUfq6ThJvdnjEuSqRyKVTkWM89oGflwnQDYgO+7mN8jqsWqE7rEBe0pf/+J+qwlQhNoybY9c4ISS7xMP2hrJMb8s+F13IJHKGoy+IlJjh7kPyHAOZClXxuUVj+bNAAM3vjLGjKgFP35TGXppUZqKesJEEwyb4Kl7C+cTgB1udFUDhh4aXTrAoO5HwIBh1RrqGo2YADeWuhaveF2vgqmFAFadCeODCm0JEXW2NrUyOIP1N1rkUUdlwoQz8LuIu13wLnTqniDmdhnGT5K8vgg/eKQ8VxkV+tlW2/J6UF9tcHHEMrT0IjwM45CoCTQ+bSqJIPrWp6/innMxuk4rw== 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=VPodlr/eqpmuCBIIZ0rwJS2ccvlh/ltFztRghkO6y0w=; b=LluJKr3SO2NU/HyzaL35EHqGneXP0jHTKk9oBs9glPIoS30GGUAL2fagTXqdPDjL5O+iA2e901OJ+vnm/DPejAsohqC0IEtMyzrS8dtMNOsIHq4MwOkRmYR4Uj0kqsfDst1f+H8L2PQrpzOVT3iLQ6iGVrZywiUtCpFUjNpbM5F+hYD26MAkdua+m4kbe+m3rxA8Sz9VwIyOV12/SOyrnsWFpW9oFD9UM7RfWzAlpgGqA25lTEfNTPdHJqn22s0ULQmvPnMvSoktG3XWIi7tSd3ZCuRuxGqvA3uL3oHYwx2Ds75Ol4Xm/Sxkrmz0OR8ZvY9rCUeS3/ChD5uYzxXOdQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none Received: from BN6PR21MB0162.namprd21.prod.outlook.com (2603:10b6:404:94::8) by BN6PR21MB0147.namprd21.prod.outlook.com (2603:10b6:404:93::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.2; Fri, 19 Nov 2021 22:33:40 +0000 Received: from BN6PR21MB0162.namprd21.prod.outlook.com ([fe80::c5fd:4e4:96cc:b150]) by BN6PR21MB0162.namprd21.prod.outlook.com ([fe80::c5fd:4e4:96cc:b150%10]) with mapi id 15.20.4755.000; Fri, 19 Nov 2021 22:33:40 +0000 From: Navid Rahimi To: Richard Biener CC: Navid Rahimi via Gcc-patches Subject: Re: [EXTERNAL] Re: [PATCH] PR tree-optimization/96779 Adding a missing pattern to match.pd Thread-Topic: [EXTERNAL] Re: [PATCH] PR tree-optimization/96779 Adding a missing pattern to match.pd Thread-Index: AQHX2zuOMJHwboeAIUijbERftFB5sKwKvugAgACv2B8= Date: Fri, 19 Nov 2021 22:33:40 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=True; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2021-11-19T22:33:38.752Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=General; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e2db3145-4c1c-4cce-5395-08d9abaca300 x-ms-traffictypediagnostic: BN6PR21MB0147: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ZmiEiXi4W8raSlT6Yvld0hWUwWMgumbVtraakDkkqIsXKTyPHJK3dKOMssuBGEbBXqaWbVotdI+qvMGqgX3FlNu7C5JF+Uqe9pyUHk+L2a5OS2E7nnxi0D0DEfVOTnrH9zZV6NYPWSQLd4fiJtfNydSSHL5yL4NcZa+IlTVhGUJRVfB716PMvmx+BYdDSXhHr50ouAkxYBnKzwyJRzpnQ4bcn+o8JQSlo/h17+vaNvFWpw8WfeazqdDTd7cyez96UA/PPonCHe/eVsoDy2bmLsJcTWrtHVarRcJvP8lY2Fg5x4T8F+Mqarab6Voa/P58K9y65rr4+peaLMHZ/CEjTHATLcEDUOLzYNEvIeEZX8e2j9vuCbHmBqEWxxoDL2JGNtN9b7yDq/23fowuRfXaQa/Jcpc84E3XkvomHbQmy9gMicbbmca+zZmcSXwjhwnBOey2LCRTcwWm6h5avpN9s8SqBtxDxoWuQePIlz0gRDIG7ITNteBvVPbxhJ+XiPzuOAdyl3uizGcbjAkZQGtPYmZEeuJyr8CEeaE+xyKN3h6EuvgPFk7yRVFMgvoAbnhITwrHPs82uXAbvzTRZPVaC6R04wO5Cp3r5jPSAFFMrcEbOgKp3aYn0sPpWGFQsebnFgarSbcV/ck3KM1+3fNHEaz6MsFauT4+7ZHTz0tLQQbzVlQh3CA1RcttaoMubbdDNJQrsC/jpkPxA79fgTn1b06LSSr6gGaoZzZY06fQaSc/o7pbKTUIVW0Owk5buVWLNl47VZY4Ykmxjzp8FoZkez+IXG/G9uEzNNLbLcHLN07RkbzAFXC6gaRSn1DJVwHIWP+S0k2juzAumdWrdnLJrPiluXiTPbpFZ2/o0T9fkQQ= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN6PR21MB0162.namprd21.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(66446008)(91956017)(66556008)(76116006)(66946007)(84970400001)(6506007)(8936002)(55016002)(8990500004)(53546011)(66476007)(4326008)(316002)(508600001)(7696005)(71200400001)(186003)(64756008)(9686003)(2906002)(99936003)(5660300002)(82960400001)(8676002)(38100700002)(86362001)(122000001)(82950400001)(38070700005)(83380400001)(10290500003)(6916009)(52536014)(966005)(33656002)(10090945008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?5hoKlneBkAM7AO4xtKvQlAy7naoTEGkNFPNKD53nYn/GpYXT7GA6ITnlwnp9?= =?us-ascii?Q?C4vl1Ciz0vnmfKYjVkLHEw51SMj4SODy+t3ShgF5yZimMcMPvP8rC3uorGAD?= =?us-ascii?Q?2BQP/hk3PfQx5mqWJZRDt1LSwE5sdvO7vjSZbbpVE6if9KS/c0AjaFpWwMO4?= =?us-ascii?Q?7n+3Tth+l1azSBYIMZ6PlTSgW5/1GHQr+dtnT4ysZ8EBL8GPGrIWWmPQ7y5l?= =?us-ascii?Q?42OeiQQAupAf2WqMQD+Gnv2wOCk6T1CdrcdlqmqELZlLjqxFs5uzVVyhodpk?= =?us-ascii?Q?PWRb9ATUcGenB4DQU9KoQM5+dzRrsa8W0fkcEijJzwEq/jSSZXd2k/yxE0Z1?= =?us-ascii?Q?ryFE+PsWP7p1vnztnczyaZVJCdbx5bna8JBaUshaMYOrwW7loAJMZpV0VB3H?= =?us-ascii?Q?AiZKfFoAgSrrGtbarFGSMs4EwJACioNugAJoeU6WtFZv7AIlHToDO1l3jYOJ?= =?us-ascii?Q?/GeBw7S/dgDibx1VqWJpTgz4ziY2h13csyy7JULq0Q7gqMtyoCS253I6K4XR?= =?us-ascii?Q?pgvOaBshNSkYWRCtxmfhrRGXnWMpHGE/CHqMiBAjFS3MNEllm6alnwf5qhpO?= =?us-ascii?Q?F8n5uRzk0f3Te0radI1q7OfwTtBVu+RfPYu5s8DYyj/yYYYkvu1Bpa3PvvzM?= =?us-ascii?Q?RrEneuSyAENlnEtYZzyZBhWY8R0B16/znDvmiUUNZtTz40F2DHPAcv4Q5cRu?= =?us-ascii?Q?xtM/orLgkepddhGc4+nczXvwzTZw91CjAO4k6QlOfCArvRbNTO0bB7NFejWu?= =?us-ascii?Q?F6g6HqBNpXLw/ICW5Mum6o972WH9devlsJ7VRIJcQf1NnT6ztcQckNR97Ect?= =?us-ascii?Q?15In48qPKGapZW+Qy/78RvxBoD9Grbo4SbYUwSIigXCi0owSyRggU49up5P3?= =?us-ascii?Q?wqL7xfMrmqKaB+XuhPJk2Pe3g3ucearIxPaWX7MtVQXzYTeihfwteSgJnuDl?= =?us-ascii?Q?V8AkGj/fEXfc19m6109dYZEHv02KowXWkdxFoClZTr3mGKgniV7UOR7uXzf3?= =?us-ascii?Q?uSxsjoLSUOovIe6ArWBvMrJ+utZv1gSQaq51lftahtyVLDXHPR60sA39vWvX?= =?us-ascii?Q?Ud1ptj2ckRK4XDixoiFA3LL5TVVN/9nMhgKzfOALceF8XpoYwkjybx2HhldU?= =?us-ascii?Q?8aun79sgsJrsVrBc2k5wB8bsLw5d52aZzPvpEH7F8utU9w9sDTFjImA3o2cW?= =?us-ascii?Q?g1Vr6IpiZvT3GiG+oGI/RAQozjDo/P3Npyp/pnM5mxJyBO5lcaa6ylA8QDrT?= =?us-ascii?Q?bwFo66WlMYzi2RcE/TSa06OO8xINcYlT1g2mL3sWFSJ0TnZMMOHmaTXC5vsj?= =?us-ascii?Q?IXuxzvhARKLgdQZ/K6kw6Gbnt9G7P7QIBsVRTdXExkwX2dqLeNL430WbZccF?= =?us-ascii?Q?o82fczDuJNiBH7gBBUVEIrIFb61z72S+fJS8u/SirEkl6DQlCTyWB5tm4JOm?= =?us-ascii?Q?IYUAm19+Tz/HQ/pRa2O8MnvYX5V/vba2qSHheKOHdQkcBgYtav74oieUJi4P?= =?us-ascii?Q?OMggxXBQqnuIJUzwHL3Tg+Nh2HSzyfjN14OnYA6jdryckpkXA44KOklKHbgO?= =?us-ascii?Q?Lu1TIbWoAjNNvW4NmQ857zkvoLazOojY/o8DLGmX35zeqOIg8USQywccSGpB?= =?us-ascii?Q?pAt3sn/aeYCyn6pE5u2a0NiquPhXpP/ZVwHak0phaOth?= Content-Type: multipart/mixed; boundary="_002_BN6PR21MB01627C04EC749895E301B218A39C9BN6PR21MB0162namp_" MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN6PR21MB0162.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e2db3145-4c1c-4cce-5395-08d9abaca300 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2021 22:33:40.2350 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: CsiQY3B4cjrXVo93b2SMXRl+5lLuFLhGyePXms6MqzJY53cXEMr34SLjhBzNfpY6+GBKsOxxWYh6YZiK2uReYBhcsMU6T3krsomhUIJeoEI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR21MB0147 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP autolearn=no 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: Fri, 19 Nov 2021 22:33:47 -0000 --_002_BN6PR21MB01627C04EC749895E301B218A39C9BN6PR21MB0162namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Richard, Thanks for the detailed comment. I am attaching a newer version of the patc= h which does have required fixes included. Bellow you can see my response t= o your feedbacks: > you need to check TYPE_OVERFLOW_WRAPS on TREE_TYPE (@0), > otherwise you check on boolean. Fixed it. > no need for :c on the result pattern. Otherwise it looks OK, but how > did you check the patch? Fixed it. For checking the patch, I have script which builds and runs make = check for 1) trunk and 2) trunk+patch in a separate directory and diffs the= test results from each directory. My test script did had a subtle problem.= The bug was, because of a typo in the path I introduced few days ago, it w= as diffing same trunk+patch test results against trunk+patch test results. That was a good reminder to setup an account for myself here asap [1]. 1) https://gcc.gnu.org/wiki/CompileFarm Best wishes, Navid. ________________________________________ From: Richard Biener Sent: Friday, November 19, 2021 03:43 To: Navid Rahimi Cc: Navid Rahimi via Gcc-patches Subject: [EXTERNAL] Re: [PATCH] PR tree-optimization/96779 Adding a missing= pattern to match.pd [You don't often get email from richard.guenther@gmail.com. Learn why this = is important at http://aka.ms/LearnAboutSenderIdentification.] On Tue, Nov 16, 2021 at 11:51 PM Navid Rahimi via Gcc-patches wrote: > > Hi GCC community, > > This patch will add the missed pattern described in bug 102232 [1] to the= match.pd. > > Tree-optimization/96779: Adding new optimization to match.pd: > > * match.pd (-x =3D=3D x) -> (x =3D=3D 0): New optimization. > * gcc.dg/tree-ssa/pr96779.c: testcase for this optimization. > * gcc.dg/tree-ssa/pr96779-disabled.c: testcase for this optim= ization when -fwrapv passed. > > 1) https://nam06.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fgc= c.gnu.org%2Fbugzilla%2Fshow_bug.cgi%3Fid%3D96779&data=3D04%7C01%7Cnavid= rahimi%40microsoft.com%7C11c3214ef8164af4d50008d9ab51d9bc%7C72f988bf86f141a= f91ab2d7cd011db47%7C1%7C0%7C637729190792397989%7CUnknown%7CTWFpbGZsb3d8eyJW= IjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&s= data=3DmxYBk6rex%2Bq5UMot%2BWfJqXeTYEYuM16hrvLGyp4PGeI%3D&reserved=3D0 +/* -x =3D=3D x -> x =3D=3D 0 */ +(for cmp (eq ne) + (simplify + (cmp:c @0 (negate @0)) + (if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (@0)) + && !TYPE_OVERFLOW_WRAPS (type)) you need to check TYPE_OVERFLOW_WRAPS on TREE_TYPE (@0), otherwise you check on boolean. + (cmp:c @0 { build_zero_cst (TREE_TYPE(@0)); })))) + no need for :c on the result pattern. Otherwise it looks OK, but how did you check the patch? Thanks, Richard. > Best wishes, > Navid. --_002_BN6PR21MB01627C04EC749895E301B218A39C9BN6PR21MB0162namp_ Content-Type: application/octet-stream; name="0001-tree-optimization-96779-v2.patch" Content-Description: 0001-tree-optimization-96779-v2.patch Content-Disposition: attachment; filename="0001-tree-optimization-96779-v2.patch"; size=4714; creation-date="Fri, 19 Nov 2021 22:24:53 GMT"; modification-date="Fri, 19 Nov 2021 22:24:53 GMT" Content-Transfer-Encoding: base64 RnJvbSA1YTA5Y2VmZDAyY2M4NTlkM2I2Zjc4NDMyNGMzZDA5ZGZhYjExYTMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOYXZpZCBSYWhpbWkgPG5hdmlkcmFoaW1pQG1pY3Jvc29mdC5j b20+CkRhdGU6IE1vbiwgMTUgTm92IDIwMjEgMjE6MDg6MTYgLTA4MDAKU3ViamVjdDogW1BBVENI XSB0cmVlLW9wdGltaXphdGlvbi85Njc3OTogQWRkaW5nIG5ldyBvcHRpbWl6YXRpb24gdG8gbWF0 Y2gucGQ6CgogICAgICAgICogbWF0Y2gucGQgKC14ID09IHgpIC0+ICh4ID09IDApOiBOZXcgb3B0 aW1pemF0aW9uLgogICAgICAgICogZ2NjLmRnL3RyZWUtc3NhL3ByOTY3NzkuYzogdGVzdGNhc2Ug Zm9yIHRoaXMgb3B0aW1pemF0aW9uLgogICAgICAgICogZ2NjLmRnL3RyZWUtc3NhL3ByOTY3Nzkt ZGlzYWJsZWQuYzogdGVzdGNhc2UgZm9yIHRoaXMgb3B0aW1pemF0aW9uIHdoZW4gLWZ3cmFwdiBw YXNzZWQuCi0tLQogZ2NjL21hdGNoLnBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDggKysKIC4uLi9nY2MuZGcvdHJlZS1zc2EvcHI5Njc3OS1kaXNhYmxlZC5jICAgICAgICB8 IDg0ICsrKysrKysrKysrKysrKysrKysKIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL3By OTY3NzkuYyAgICAgICB8IDc5ICsrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDE3 MSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcv dHJlZS1zc2EvcHI5Njc3OS1kaXNhYmxlZC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvdHJlZS1zc2EvcHI5Njc3OS5jCgpkaWZmIC0tZ2l0IGEvZ2NjL21hdGNoLnBk IGIvZ2NjL21hdGNoLnBkCmluZGV4IGEzMTlhZWZhODA4Li40ZTAxNzEwOTdjYyAxMDA2NDQKLS0t IGEvZ2NjL21hdGNoLnBkCisrKyBiL2djYy9tYXRjaC5wZApAQCAtMjQwLDYgKzI0MCwxNCBAQCBE RUZJTkVfSU5UX0FORF9GTE9BVF9ST1VORF9GTiAoUklOVCkKICAobXVsdCBAMCBpbnRlZ2VyX3pl cm9wQDEpCiAgQDEpCiAKKy8qIC14ID09IHggLT4geCA9PSAwICovCisoZm9yIGNtcCAoZXEgbmUp CisgKHNpbXBsaWZ5CisgIChjbXA6YyBAMCAobmVnYXRlIEAwKSkKKyAgIChpZiAoQU5ZX0lOVEVH UkFMX1RZUEVfUCAoVFJFRV9UWVBFIChAMCkpCisgICAgICAgICYmICFUWVBFX09WRVJGTE9XX1dS QVBTIChUUkVFX1RZUEUoQDApKSkKKyAgICAoY21wIEAwIHsgYnVpbGRfemVyb19jc3QgKFRSRUVf VFlQRShAMCkpOyB9KSkpKQorCiAvKiBNYXliZSBmb2xkIHggKiAwIHRvIDAuICBUaGUgZXhwcmVz c2lvbnMgYXJlbid0IHRoZSBzYW1lCiAgICB3aGVuIHggaXMgTmFOLCBzaW5jZSB4ICogMCBpcyBh bHNvIE5hTi4gIE5vciBhcmUgdGhleSB0aGUKICAgIHNhbWUgaW4gbW9kZXMgd2l0aCBzaWduZWQg emVyb3MsIHNpbmNlIG11bHRpcGx5aW5nIGEKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LmRnL3RyZWUtc3NhL3ByOTY3NzktZGlzYWJsZWQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3Ry ZWUtc3NhL3ByOTY3NzktZGlzYWJsZWQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uMjA1MTMzZDhlMGMKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy5kZy90cmVlLXNzYS9wcjk2Nzc5LWRpc2FibGVkLmMKQEAgLTAsMCArMSw4NCBAQAorLyogUFIg dHJlZS1vcHRpbWl6YXRpb24vOTY3NzkgKi8KKy8qIHsgZGctZG8gcnVuIH0gKi8KKy8qIHsgZGct b3B0aW9ucyAiLU8gLWZkdW1wLXRyZWUtb3B0aW1pemVkIC1md3JhcHYiIH0gKi8KKworI2luY2x1 ZGUgPHN0ZGJvb2wuaD4KKworYm9vbCBfX2F0dHJpYnV0ZV9fICgobm9pcGEpKSBmX2Z1bmMoaW50 IGEpCit7CisgICAgcmV0dXJuIC1hID09IGE7Cit9CisKK2Jvb2wgX19hdHRyaWJ1dGVfXyAoKG5v aXBhKSkgZ19mdW5jKHVuc2lnbmVkIGludCBhKQoreworICAgIHJldHVybiAtYSA9PSBhOworfQor Citib29sIF9fYXR0cmlidXRlX18gKChub2lwYSkpIGhfZnVuYyhzaG9ydCBhKQoreworICAgIHJl dHVybiAtYSA9PSBhOworfQorCitib29sIF9fYXR0cmlidXRlX18gKChub2lwYSkpIGtfZnVuYyhs b25nIGEpCit7CisgICAgcmV0dXJuIC1hID09IGE7Cit9CisKK2ludAorbWFpbiAodm9pZCkKK3sK KyAgLy8gZmV3IHJhbmRvbWx5IGdlbmVyYXRlZCB0ZXN0IGNhc2VzCisgIGlmIChmX2Z1bmMgKDcx ODU2MDM0KSkKKyAgICB7CisgICAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisgICAgfQorICBpZiAo Z19mdW5jICg3MTg1NjAzNCkpCisgICAgeworICAgICAgX19idWlsdGluX2Fib3J0ICgpOworICAg IH0KKyAgaWYgKGhfZnVuYyAoMTc0NCkpCisgICAgeworICAgICAgX19idWlsdGluX2Fib3J0ICgp OworICAgIH0KKyAgaWYgKGtfZnVuYyAoNjgyNjgzODYpKQorICAgIHsKKyAgICAgIF9fYnVpbHRp bl9hYm9ydCAoKTsKKyAgICB9CisgIGlmIChmX2Z1bmMgKC0xMTIyMzcpKQorICAgIHsKKyAgICAg IF9fYnVpbHRpbl9hYm9ydCAoKTsKKyAgICB9CisgIGlmIChnX2Z1bmMgKC03ODcxMTYpKQorICAg IHsKKyAgICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsKKyAgICB9CisgIGlmIChoX2Z1bmMgKC04NjMp KQorICAgIHsKKyAgICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsKKyAgICB9CisgIGlmIChrX2Z1bmMg KC03ODcxMTYpKQorICAgIHsKKyAgICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsKKyAgICB9CisgIGlm ICghZl9mdW5jICgwKSkKKyAgICB7CisgICAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisgICAgfQor ICBpZiAoIWdfZnVuYyAoMCkpCisgICAgeworICAgICAgX19idWlsdGluX2Fib3J0ICgpOworICAg IH0KKyAgaWYgKCFoX2Z1bmMgKDApKQorICAgIHsKKyAgICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsK KyAgICB9CisgIGlmICgha19mdW5jICgwKSkKKyAgICB7CisgICAgICBfX2J1aWx0aW5fYWJvcnQg KCk7CisgICAgfQorCisgIHJldHVybiAwOworfQorCisvKiBWZXJpZnkgdGhhdCB3ZSBoYXZlICpu b3QqIHRyYW5zZmVyZWQgIj0gLSIgcGF0dGVybiBpbiBhbnkgb2YgdGhvc2UgZnVuY3Rpb25zLiAg Ki8KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiPSAtIiA0ICJvcHRpbWl6 ZWQiIH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvcHI5 Njc3OS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvcHI5Njc3OS5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZDQ2ZThlZWIxNQotLS0gL2Rldi9udWxs CisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL3ByOTY3NzkuYwpAQCAtMCwwICsx LDc5IEBACisvKiBQUiB0cmVlLW9wdGltaXphdGlvbi85Njc3OSAqLworLyogeyBkZy1kbyBydW4g fSAqLworLyogeyBkZy1vcHRpb25zICItTyAtZmR1bXAtdHJlZS1vcHRpbWl6ZWQiIH0gKi8KKwor I2luY2x1ZGUgPHN0ZGJvb2wuaD4KKworYm9vbCBfX2F0dHJpYnV0ZV9fICgobm9pcGEpKSBmX2Z1 bmMoaW50IGEpCit7CisgICAgcmV0dXJuIC1hID09IGE7Cit9CisKK2Jvb2wgX19hdHRyaWJ1dGVf XyAoKG5vaXBhKSkgaF9mdW5jKHNob3J0IGEpCit7CisgICAgcmV0dXJuIC1hID09IGE7Cit9CisK K2Jvb2wgX19hdHRyaWJ1dGVfXyAoKG5vaXBhKSkga19mdW5jKGxvbmcgYSkKK3sKKyAgICByZXR1 cm4gLWEgPT0gYTsKK30KKworaW50CittYWluICh2b2lkKQoreworICAvLyBmZXcgcmFuZG9tbHkg Z2VuZXJhdGVkIHRlc3QgY2FzZXMKKyAgaWYgKGZfZnVuYyAoNzE4NTYwMzQpKQorICAgIHsKKyAg ICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsKKyAgICB9CisgIGlmIChmX2Z1bmMgKDcxODU2MDM0KSkK KyAgICB7CisgICAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisgICAgfQorICBpZiAoaF9mdW5jICgx NzQ0KSkKKyAgICB7CisgICAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisgICAgfQorICBpZiAoa19m dW5jICg2ODI2ODM4NikpCisgICAgeworICAgICAgX19idWlsdGluX2Fib3J0ICgpOworICAgIH0K KyAgaWYgKGZfZnVuYyAoLTExMjIzNykpCisgICAgeworICAgICAgX19idWlsdGluX2Fib3J0ICgp OworICAgIH0KKyAgaWYgKGZfZnVuYyAoLTc4NzExNikpCisgICAgeworICAgICAgX19idWlsdGlu X2Fib3J0ICgpOworICAgIH0KKyAgaWYgKGhfZnVuYyAoLTg2MykpCisgICAgeworICAgICAgX19i dWlsdGluX2Fib3J0ICgpOworICAgIH0KKyAgaWYgKGtfZnVuYyAoLTc4NzExNikpCisgICAgewor ICAgICAgX19idWlsdGluX2Fib3J0ICgpOworICAgIH0KKyAgaWYgKCFmX2Z1bmMgKDApKQorICAg IHsKKyAgICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsKKyAgICB9CisgIGlmICghZl9mdW5jICgwKSkK KyAgICB7CisgICAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisgICAgfQorICBpZiAoIWhfZnVuYyAo MCkpCisgICAgeworICAgICAgX19idWlsdGluX2Fib3J0ICgpOworICAgIH0KKyAgaWYgKCFrX2Z1 bmMgKDApKQorICAgIHsKKyAgICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsKKyAgICB9CisKKyAgcmV0 dXJuIDA7Cit9CisKKy8qIFZlcmlmeSB0aGF0IHdlIHRyYW5zZmVyZWQgdG8gIj0gLSIgcGF0dGVy biBmcm9tICJfMiA9IC1fMTsiLiAgKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1u b3QgIj0gLSIgIm9wdGltaXplZCIgfSB9ICovCi0tIAoyLjI1LjEKCg== --_002_BN6PR21MB01627C04EC749895E301B218A39C9BN6PR21MB0162namp_--