From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-VI1-obe.outbound.protection.outlook.com (mail-vi1eur03on2068.outbound.protection.outlook.com [40.107.103.68]) by sourceware.org (Postfix) with ESMTPS id EB4B73858D39 for ; Mon, 6 Mar 2023 11:24:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EB4B73858D39 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ClK9KOR2XqOQioWsJ0EOGez/molNuU8zm9BuPzZLw3w=; b=HTxN+bZPvzvrWkW0yFvKQkN7hhTf3ORkF/gEf21lFUWqdto3jQWiw1svKpkeZIHFdd/dYNOiAizqYDUwqjn7oCJzRsioZh3fgjRUAXA9XfBQ859vZhYp0l7zcgXWxr7nA1fIByqzX2bx+LL5GLCfCncOrUSO/sYQT58wv4D9O2E= Received: from ZR0P278CA0033.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1c::20) by AM8PR08MB6322.eurprd08.prod.outlook.com (2603:10a6:20b:361::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.28; Mon, 6 Mar 2023 11:23:58 +0000 Received: from VI1EUR03FT016.eop-EUR03.prod.protection.outlook.com (2603:10a6:910:1c:cafe::33) by ZR0P278CA0033.outlook.office365.com (2603:10a6:910:1c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.28 via Frontend Transport; Mon, 6 Mar 2023 11:23:58 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VI1EUR03FT016.mail.protection.outlook.com (100.127.144.158) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.28 via Frontend Transport; Mon, 6 Mar 2023 11:23:57 +0000 Received: ("Tessian outbound fcd8b5fba459:v135"); Mon, 06 Mar 2023 11:23:57 +0000 X-CR-MTA-TID: 64aa7808 Received: from 2be812915e4b.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 92270F71-B20D-4B8C-95DC-6635646387EF.1; Mon, 06 Mar 2023 11:23:52 +0000 Received: from EUR03-DBA-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 2be812915e4b.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 06 Mar 2023 11:23:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PzA5jKPipEGYkIYEkXAz5jU36tDo0ftL31/HyD/+FD0fCVZUhbvdC8Vg1sao/mVPHSco6gkca4q/4nhBKbLcYX1UYNnQB4NDpgqWWsZ5o2T3kUmzk+vEtomvc4SVrO7jf4srgaIZz8oLk4Zi4X1E/zNYTo5EsZb3Ke82tjOd7olghJusu4NFubrikjwqeRMBLtuk7Zs92LtoKNANb1joStsMMsVuwGX9Oatk+yt45BEpocxOyvrO0Dgd4xoIIwGuSJfKRu5P6kmk8cX0e2ddMAPJqfNlbX9Jg0XMrZoYyFaeZrFnCF+ow2JO5Eg2jaQMpDnbQ5Qea85LyAGQSQgiCA== 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=ClK9KOR2XqOQioWsJ0EOGez/molNuU8zm9BuPzZLw3w=; b=nJ7Lh3sO/pYqJ7p4/JEO6AljLD0iXqBcvUqJOb2ODDF8DK6Owgk6JE+VnYzWd7B7VHxL4j1Iec1LdlmmrJ1dDdbioa1CVnVCQLEN3adNK78AbM7XeMWL0zOaQ4iZBid48r8Bq94DnJVzooTyNizODkK0x/+uMe14aBTrrevMLUtYQ1UABArfLdWgBj25BL2Ei9NLrhhpzKXmMWzmfMwR8QbTXpAtFVcSWx5bNNi4v9Av9574jRBpgyaGQaHvbHUb64PQ7LUV1sGQF0vR2CSYCMzrf9cG8Tx80DTUnKHGcCbHsTXBWgWdLuC4NKBRL9JALdayiQsXFH6KQ8Wyq+Opqw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ClK9KOR2XqOQioWsJ0EOGez/molNuU8zm9BuPzZLw3w=; b=HTxN+bZPvzvrWkW0yFvKQkN7hhTf3ORkF/gEf21lFUWqdto3jQWiw1svKpkeZIHFdd/dYNOiAizqYDUwqjn7oCJzRsioZh3fgjRUAXA9XfBQ859vZhYp0l7zcgXWxr7nA1fIByqzX2bx+LL5GLCfCncOrUSO/sYQT58wv4D9O2E= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by AS8PR08MB7322.eurprd08.prod.outlook.com (2603:10a6:20b:441::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.28; Mon, 6 Mar 2023 11:23:50 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::210c:d369:23f7:84fe]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::210c:d369:23f7:84fe%9]) with mapi id 15.20.6156.028; Mon, 6 Mar 2023 11:23:49 +0000 From: Tamar Christina To: "gcc-patches@gcc.gnu.org" CC: nd , "rguenther@suse.de" , Richard Sandiford Subject: RE: [PATCH 3/4]middle-end: Implement preferred_div_as_shifts_over_mult [PR108583] Thread-Topic: [PATCH 3/4]middle-end: Implement preferred_div_as_shifts_over_mult [PR108583] Thread-Index: AQHZSqfDc/rjwUnMRkKs4yRy4zE8EK7tppTQ Date: Mon, 6 Mar 2023 11:23:49 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ts-tracking-id: 6A1058B7685C8744A39D82AA98E1C1CE.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: VI1PR08MB5325:EE_|AS8PR08MB7322:EE_|VI1EUR03FT016:EE_|AM8PR08MB6322:EE_ X-MS-Office365-Filtering-Correlation-Id: d4d76d11-f8a7-4798-1beb-08db1e354727 x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: IJFtJj823NFrrbQ/DVs4UPbT1VCUftdSqQwy034jnoKxcSYH31Iw3LHIZAll1k1v5QTuI8DKNvBC2cGW6uQAHvPGZgrAHvGLPDGB5TFhcQIin0dXFMKt4JNKoywKeMGFbZgneChxGHY18+ozzePBUC0H5aPmdHkYHlegmdYRvjyrPyGothoYV3Fad36BVH5vamrp7tVxtLI4uVQfWTmcxXLdYhUnuIDe+q5a/1pwu56T3OfzoMUJaJ9Pg88vhvEJ5yxvxbjNGXuHfGv2ZsD04lv7qdidA344qmX7xDh9RzoeYsYrq/9XvBPzZc10hnGcrQ0lwhkaagPLdezrogVPPZre3zLOVKVL+c5xUXwSjYyJ19cHcC5fo91c1V0yabgE1ijgycBLvqoBFlpMyC88/G9amhtTptU5Tp1Yc/acYhA9i0QGqj6QQ1DSjvj9ZM23WtGOxlGCb4pObtnRbm7ygfIBhFil4Df+9uvUdThxYEc14du+shhTurdPPijJOWAqmh5rVwM6o5K3RUwGyQKsPR18uOGKGw4XKqonIZNKoaV/71KpbBe+hxCq+vmQucLK/gZ5qB2nEXcD0JtxOJLn6av32QOu1UFrHpumYAjL+zkZZPGMh5cLuBVlYErRFhQMBwo/D3W6AcKGM20p0BNbXHNXM6vMpUU7eziKmukVp53No8JTfMY06E9EaFs4NgD29lRBfUoyjbIP0AB3EyP8xz5r9amdYkKJqCXsrKcYBjQ= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR08MB5325.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(366004)(39860400002)(136003)(376002)(346002)(396003)(451199018)(6506007)(38070700005)(83380400001)(86362001)(33656002)(99936003)(122000001)(38100700002)(9686003)(186003)(55016003)(4743002)(26005)(41300700001)(66946007)(76116006)(66556008)(66446008)(66476007)(64756008)(6916009)(8676002)(4326008)(2906002)(8936002)(52536014)(30864003)(5660300002)(478600001)(7696005)(71200400001)(316002)(84970400001)(54906003);DIR:OUT;SFP:1101; Content-Type: multipart/mixed; boundary="_002_VI1PR08MB53258008DADE449698F19184FFB69VI1PR08MB5325eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7322 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VI1EUR03FT016.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 59cd6b27-d278-41f4-dc7e-08db1e354254 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: A693W447fG8S8PFGhLc+x5nRg8xKoi7n9UDWzkenLGUVZnoK1adr9jc3AEeBKpfARJ3gol2WcjmbxQHy7EGna3MZrx4nrcS98WsdEQENx9wwyDoFoaG6Dv9HbSwmc/qFjIACCBETkHBftuevmC5CM66VzcYpxmAmImAtSGPOnSEm3OSPdDDIzYurqjet6oWj/8i8NsuUKC3dE2Bm/HXeNCPj+9O3XxRvJhPyL5evUhrdRvpw9gVGi3N63vgr3CbjMFLlFdEkfxjARvLb5OYHRhR+4MhkXDWcA16fIZFEJkzLJFICYSvWpptIcznvAh2sKz4hh9LxgdpdFe8LPHZfOizP90BrUW5etBYZuElEbZDRvdk9okJA33BwSdnfg9dYWchgEZ6KaJ8tGDVoY3P43XHf7VIlX6BkMC1h9ebn2LAqJ5sIn67YUycedhiLLOh7JQcNXpbm8HNWbdPBbdkwHb+3WFUVupCUg+45rvevBcBCaldcymlPEikqtaqo1+0vIGY2N372BAAgFHHrU/aivZZcpYvFVEAURHmWngg78FQ34p6vjXTkzDVe8v9YEieQAehDvlXbdzAgAtqA+AgzBHjHgzWSVIBW2eaQ8fmyl9h/i+IWeX2YEyfokeZGsvxzoQii1kyB+0ZjCtnnexe030i8TQ+3lQLyjJT3B6fkkDg8tIj5KLDtVylChfItE4mM032jp7gthYUy0m3WIYmsNpraHN3zE1hQTOAPHxrN4UA= X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230025)(4636009)(39860400002)(136003)(376002)(346002)(396003)(451199018)(46966006)(36840700001)(40470700004)(6506007)(33964004)(36860700001)(47076005)(82310400005)(356005)(40460700003)(83380400001)(86362001)(33656002)(81166007)(99936003)(40480700001)(82740400003)(9686003)(336012)(186003)(55016003)(4743002)(26005)(41300700001)(70206006)(70586007)(6916009)(8676002)(4326008)(2906002)(8936002)(52536014)(30864003)(5660300002)(235185007)(478600001)(7696005)(316002)(84970400001)(54906003);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2023 11:23:57.7340 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d4d76d11-f8a7-4798-1beb-08db1e354727 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VI1EUR03FT016.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6322 X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,KAM_LOTSOFHASH,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,UNPARSEABLE_RELAY 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: --_002_VI1PR08MB53258008DADE449698F19184FFB69VI1PR08MB5325eurp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UGluZywNCg0KQW5kIHVwZGF0ZWQgdGhlIGhvb2sgdG8gYWxsb3cgdG8gZGlmZmVyZW50aWF0ZSBi ZXR3ZWVuIElTQXMuDQoNCkFzIEFuZHkgc2FpZCBiZWZvcmUgaW5pdGlhbGl6aW5nIGEgcmFuZ2Vy IGluc3RhbmNlIGlzIGNoZWFwIGJ1dCBub3QgZnJlZSwgYW5kIGlmDQp0aGUgaW50ZW50aW9uIGlz IHRvIGNhbGwgaXQgb2Z0ZW4gZHVyaW5nIGEgcGFzcyBpdCBzaG91bGQgYmUgaW5zdGFudGlhdGVk IGF0DQpwYXNzIHN0YXJ0dXAgYW5kIHBhc3NlZCBhbG9uZyB0byB0aGUgcGxhY2VzIHRoYXQgbmVl ZCBpdC4gIFRoaXMgaXMgYSBiaWcNCnJlZmFjdG9yaW5nIGFuZCBkb2Vzbid0IHNlZW0gcmlnaHQg dG8gZG8gaW4gdGhpcyBQUi4gIEJ1dCB3ZSBzaG91bGQgaW4gR0NDIDE0Lg0KDQpDdXJyZW50bHkg d2Ugb25seSBpbnN0YW50aWF0ZSBpdCBhZnRlciBhIGxvbmcgc2VyaWVzIG9mIG11Y2ggY2hlYXBl ciBjaGVja3MuDQoNCkJvb3RzdHJhcHBlZCBSZWd0ZXN0ZWQgb24gYWFyY2g2NC1ub25lLWxpbnV4 LWdudSBhbmQgbm8gaXNzdWVzLg0KDQpPayBmb3IgbWFzdGVyPw0KDQpUaGFua3MsDQpUYW1hcg0K DQpnY2MvQ2hhbmdlTG9nOg0KDQoJUFIgdGFyZ2V0LzEwODU4Mw0KCSogdGFyZ2V0LmRlZiAocHJl ZmVycmVkX2Rpdl9hc19zaGlmdHNfb3Zlcl9tdWx0KTogTmV3Lg0KCSogZG9jL3RtLnRleGkuaW46 IERvY3VtZW50IGl0Lg0KCSogZG9jL3RtLnRleGk6IFJlZ2VuZXJhdGUuDQoJKiB0YXJnaG9va3Mu Y2MgKGRlZmF1bHRfcHJlZmVycmVkX2Rpdl9hc19zaGlmdHNfb3Zlcl9tdWx0KTogTmV3Lg0KCSog dGFyZ2hvb2tzLmggKGRlZmF1bHRfcHJlZmVycmVkX2Rpdl9hc19zaGlmdHNfb3Zlcl9tdWx0KTog TmV3Lg0KCSogdHJlZS12ZWN0LXBhdHRlcm5zLmNjICh2ZWN0X3JlY29nX2Rpdm1vZF9wYXR0ZXJu KTogVXNlIGl0Lg0KDQpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCg0KCVBSIHRhcmdldC8xMDg1 ODMNCgkqIGdjYy5kZy92ZWN0L3ZlY3QtZGl2LWJpdG1hc2stNC5jOiBOZXcgdGVzdC4NCgkqIGdj Yy5kZy92ZWN0L3ZlY3QtZGl2LWJpdG1hc2stNS5jOiBOZXcgdGVzdC4NCg0KLS0tIGlubGluZSBj b3B5IG9mIHBhdGNoIC0tLQ0KDQpkaWZmIC0tZ2l0IGEvZ2NjL2RvYy90bS50ZXhpIGIvZ2NjL2Rv Yy90bS50ZXhpDQppbmRleCA1MGE4ODcyYTY2OTViMThiOWJlZDBkMzkzYmFjZjczMzgzMzYzM2Ri Li5mNjlmN2YwMzYyNzJlODY3ZWExYzNmZWU4NTFiMTE3ZjA1N2Y2OGM1IDEwMDY0NA0KLS0tIGEv Z2NjL2RvYy90bS50ZXhpDQorKysgYi9nY2MvZG9jL3RtLnRleGkNCkBAIC02MTM3LDYgKzYxMzcs MTAgQEAgaW5zdHJ1Y3Rpb24gcGF0dGVybi4gIFRoZXJlIGlzIG5vIG5lZWQgZm9yIHRoZSBob29r IHRvIGhhbmRsZSB0aGVzZSB0d28NCiBpbXBsZW1lbnRhdGlvbiBhcHByb2FjaGVzIGl0c2VsZi4N CiBAZW5kIGRlZnR5cGVmbg0KIA0KK0BkZWZ0eXBlZm4ge1RhcmdldCBIb29rfSBib29sIFRBUkdF VF9WRUNUT1JJWkVfUFJFRkVSUkVEX0RJVl9BU19TSElGVFNfT1ZFUl9NVUxUIChjb25zdF90cmVl IEB2YXJ7dHlwZX0pDQorSWYgcG9zc2libGUsIHdoZW4gZGVjb21wb3NpbmcgYSBkaXZpc2lvbiBv cGVyYXRpb24gb2YgdmVjdG9ycyBvZg0KK3R5cGUgQHZhcnt0eXBlfSBkdXJpbmcgdmVjdG9yaXph dGlvbiwgcHJlZmVyIHRvIHVzZSBzaGlmdHMgcmF0aGVyIHRoYW4NCittdWx0aXBsaWNhdGlvbiBi eSBtYWdpYyBjb25zdGFudHMuDQogQGVuZCBkZWZ0eXBlZm4NCiANCiBAZGVmdHlwZWZuIHtUYXJn ZXQgSG9va30gdHJlZSBUQVJHRVRfVkVDVE9SSVpFX0JVSUxUSU5fVkVDVE9SSVpFRF9GVU5DVElP TiAodW5zaWduZWQgQHZhcntjb2RlfSwgdHJlZSBAdmFye3ZlY190eXBlX291dH0sIHRyZWUgQHZh cnt2ZWNfdHlwZV9pbn0pDQpkaWZmIC0tZ2l0IGEvZ2NjL2RvYy90bS50ZXhpLmluIGIvZ2NjL2Rv Yy90bS50ZXhpLmluDQppbmRleCAzZTA3OTc4YTAyZjRlNjA3N2FkYWU2Y2FkYzkzZWE0MjczMjk1 ZjFmLi4wMDUxMDE3YTdmZDY3NjkxYTM0MzQ3MGYzNmFkNGZjMzJjOGU3ZTE1IDEwMDY0NA0KLS0t IGEvZ2NjL2RvYy90bS50ZXhpLmluDQorKysgYi9nY2MvZG9jL3RtLnRleGkuaW4NCkBAIC00MTcz LDYgKzQxNzMsNyBAQCBhZGRyZXNzOyAgYnV0IG9mdGVuIGEgbWFjaGluZS1kZXBlbmRlbnQgc3Ry YXRlZ3kgY2FuIGdlbmVyYXRlIGJldHRlciBjb2RlLg0KIA0KIEBob29rIFRBUkdFVF9WRUNUT1JJ WkVfVkVDX1BFUk1fQ09OU1QNCiANCitAaG9vayBUQVJHRVRfVkVDVE9SSVpFX1BSRUZFUlJFRF9E SVZfQVNfU0hJRlRTX09WRVJfTVVMVA0KIA0KIEBob29rIFRBUkdFVF9WRUNUT1JJWkVfQlVJTFRJ Tl9WRUNUT1JJWkVEX0ZVTkNUSU9ODQogDQpkaWZmIC0tZ2l0IGEvZ2NjL3RhcmdldC5kZWYgYi9n Y2MvdGFyZ2V0LmRlZg0KaW5kZXggZTBhNWM3YWRiZDk2MmY1ZDA4ZWQwOGQxZDgxYWZhMmMyYmFh NjRhNS4uYmRlZTliN2Y5Yzk0MTUwODczOGZhYzQ5NTkzYjViYWE1MjVlMjkxNSAxMDA2NDQNCi0t LSBhL2djYy90YXJnZXQuZGVmDQorKysgYi9nY2MvdGFyZ2V0LmRlZg0KQEAgLTE4NjgsNiArMTg2 OCwxNiBAQCBjb3JyZWN0IGZvciBtb3N0IHRhcmdldHMuIiwNCiAgcG9seV91aW50NjQsIChjb25z dF90cmVlIHR5cGUpLA0KICBkZWZhdWx0X3ByZWZlcnJlZF92ZWN0b3JfYWxpZ25tZW50KQ0KIA0K Ky8qIFJldHVybnMgd2hldGhlciB0aGUgdGFyZ2V0IGhhcyBhIHByZWZlcmVuY2UgZm9yIGRlY29t cG9zaW5nIGRpdmlzaW9ucyB1c2luZw0KKyAgIHNoaWZ0cyByYXRoZXIgdGhhbiBtdWx0aXBsaWVz LiAgKi8NCitERUZIT09LDQorKHByZWZlcnJlZF9kaXZfYXNfc2hpZnRzX292ZXJfbXVsdCwNCisg IklmIHBvc3NpYmxlLCB3aGVuIGRlY29tcG9zaW5nIGEgZGl2aXNpb24gb3BlcmF0aW9uIG9mIHZl Y3RvcnMgb2ZcblwNCit0eXBlIEB2YXJ7dHlwZX0gZHVyaW5nIHZlY3Rvcml6YXRpb24sIHByZWZl ciB0byB1c2Ugc2hpZnRzIHJhdGhlciB0aGFuXG5cDQorbXVsdGlwbGljYXRpb24gYnkgbWFnaWMg Y29uc3RhbnRzLiIsDQorIGJvb2wsIChjb25zdF90cmVlIHR5cGUpLA0KKyBkZWZhdWx0X3ByZWZl cnJlZF9kaXZfYXNfc2hpZnRzX292ZXJfbXVsdCkNCisNCiAvKiBSZXR1cm4gdHJ1ZSBpZiB2ZWN0 b3IgYWxpZ25tZW50IGlzIHJlYWNoYWJsZSAoYnkgcGVlbGluZyBODQogICAgaXRlcmF0aW9ucykg Zm9yIHRoZSBnaXZlbiBzY2FsYXIgdHlwZS4gICovDQogREVGSE9PSw0KZGlmZiAtLWdpdCBhL2dj Yy90YXJnaG9va3MuaCBiL2djYy90YXJnaG9va3MuaA0KaW5kZXggYTZhNDgwOWNhOTFiYWE1ZDdm YWQyMjQ0NTQ5MzE3YTMxMzkwZjBjMi4uYTIwNzk2M2I5ZTZlYjkzMDBkZjAwNDNlMWI3OWFhNmM5 NDFkMGY3ZiAxMDA2NDQNCi0tLSBhL2djYy90YXJnaG9va3MuaA0KKysrIGIvZ2NjL3Rhcmdob29r cy5oDQpAQCAtNTMsNiArNTMsOCBAQCBleHRlcm4gc2NhbGFyX2ludF9tb2RlIGRlZmF1bHRfdW53 aW5kX3dvcmRfbW9kZSAodm9pZCk7DQogZXh0ZXJuIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQgZGVm YXVsdF9zaGlmdF90cnVuY2F0aW9uX21hc2sNCiAgIChtYWNoaW5lX21vZGUpOw0KIGV4dGVybiB1 bnNpZ25lZCBpbnQgZGVmYXVsdF9taW5fZGl2aXNpb25zX2Zvcl9yZWNpcF9tdWwgKG1hY2hpbmVf bW9kZSk7DQorZXh0ZXJuIGJvb2wgZGVmYXVsdF9wcmVmZXJyZWRfZGl2X2FzX3NoaWZ0c19vdmVy X211bHQNCisgIChjb25zdF90cmVlKTsNCiBleHRlcm4gaW50IGRlZmF1bHRfbW9kZV9yZXBfZXh0 ZW5kZWQgKHNjYWxhcl9pbnRfbW9kZSwgc2NhbGFyX2ludF9tb2RlKTsNCiANCiBleHRlcm4gdHJl ZSBkZWZhdWx0X3N0YWNrX3Byb3RlY3RfZ3VhcmQgKHZvaWQpOw0KZGlmZiAtLWdpdCBhL2djYy90 YXJnaG9va3MuY2MgYi9nY2MvdGFyZ2hvb2tzLmNjDQppbmRleCAyMTE1MjU3MjBhNjIwZDZmNTMz ZTJkYTkxZTAzODc3MzM3YTkzMWU3Li5iZWNlYTZlZjRiNjMyOWNmYTBiNjc2ZjhkODQ0NjMwZmJk Yzk3ZjIwIDEwMDY0NA0KLS0tIGEvZ2NjL3Rhcmdob29rcy5jYw0KKysrIGIvZ2NjL3Rhcmdob29r cy5jYw0KQEAgLTE0ODMsNiArMTQ4MywxNSBAQCBkZWZhdWx0X3ByZWZlcnJlZF92ZWN0b3JfYWxp Z25tZW50IChjb25zdF90cmVlIHR5cGUpDQogICByZXR1cm4gVFlQRV9BTElHTiAodHlwZSk7DQog fQ0KIA0KKy8qIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mDQorICAgVEFSR0VUX1ZFQ1RP UklaRV9QUkVGRVJSRURfRElWX0FTX1NISUZUU19PVkVSX01VTFQuICAqLw0KKw0KK2Jvb2wNCitk ZWZhdWx0X3ByZWZlcnJlZF9kaXZfYXNfc2hpZnRzX292ZXJfbXVsdCAoY29uc3RfdHJlZSAvKiB0 eXBlICovKQ0KK3sNCisgIHJldHVybiBmYWxzZTsNCit9DQorDQogLyogQnkgZGVmYXVsdCBhc3N1 bWUgdmVjdG9ycyBvZiBlbGVtZW50IFRZUEUgcmVxdWlyZSBhIG11bHRpcGxlIG9mIHRoZSBuYXR1 cmFsDQogICAgYWxpZ25tZW50IG9mIFRZUEUuICBUWVBFIGlzIG5hdHVyYWxseSBhbGlnbmVkIGlm IElTX1BBQ0tFRCBpcyBmYWxzZS4gICovDQogYm9vbA0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLmRnL3ZlY3QvdmVjdC1kaXYtYml0bWFzay00LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5k Zy92ZWN0L3ZlY3QtZGl2LWJpdG1hc2stNC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzgxZjg5NDY5MjIyNTAy MzRiZjc1OWUwYTBhMDRlYThjMWY3M2UzYw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvdmVjdC92ZWN0LWRpdi1iaXRtYXNrLTQuYw0KQEAgLTAsMCArMSwyNSBAQA0K Ky8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IHZlY3RfaW50IH0gKi8NCisNCisjaW5j bHVkZSA8c3RkaW50Lmg+DQorI2luY2x1ZGUgInRyZWUtdmVjdC5oIg0KKw0KK3R5cGVkZWYgdW5z aWduZWQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fICgxNikpKSBWOw0KKw0KK3N0YXRp YyBfX2F0dHJpYnV0ZV9fKChfX25vaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX25vY2xvbmVf XykpIFYNCitmb28gKFYgdiwgdW5zaWduZWQgc2hvcnQgaSkNCit7DQorICB2IC89IGk7DQorICBy ZXR1cm4gdjsNCit9DQorDQoraW50DQorbWFpbiAodm9pZCkNCit7DQorICBWIHYgPSBmb28gKChW KSB7IDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYgfSwgMHhm ZmZmKTsNCisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplb2YgKHYpIC8gc2l6ZW9mICh2 WzBdKTsgaSsrKQ0KKyAgICBpZiAodltpXSAhPSAweDAwMDEwMDAxKQ0KKyAgICAgIF9fYnVpbHRp bl9hYm9ydCAoKTsNCisgIHJldHVybiAwOw0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10 cmVlLWR1bXAtbm90ICJ2ZWN0X3JlY29nX2Rpdm1vZF9wYXR0ZXJuOiBkZXRlY3RlZCIgInZlY3Qi IHsgdGFyZ2V0IGFhcmNoNjQqLSotKiB9IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLmRnL3ZlY3QvdmVjdC1kaXYtYml0bWFzay01LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5k Zy92ZWN0L3ZlY3QtZGl2LWJpdG1hc2stNS5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRlYjFhNGRhY2JhNDgx ZTYzMDZiNDk5MTRkMmEyOWI5MzNkZTYyNQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvdmVjdC92ZWN0LWRpdi1iaXRtYXNrLTUuYw0KQEAgLTAsMCArMSw1OCBAQA0K Ky8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IHZlY3RfaW50IH0gKi8NCisNCisjaW5j bHVkZSA8c3RkaW50Lmg+DQorI2luY2x1ZGUgPHN0ZGlvLmg+DQorI2luY2x1ZGUgInRyZWUtdmVj dC5oIg0KKw0KKyNkZWZpbmUgTiA1MA0KKyNkZWZpbmUgVFlQRSB1aW50OF90IA0KKw0KKyNpZm5k ZWYgREVCVUcNCisjZGVmaW5lIERFQlVHIDANCisjZW5kaWYNCisNCisjZGVmaW5lIEJBU0UgKChU WVBFKSAtMSA8IDAgPyAtMTI2IDogNCkNCisNCisNCitfX2F0dHJpYnV0ZV9fKChub2lwYSwgbm9p bmxpbmUsIG9wdGltaXplKCJPMSIpKSkNCit2b2lkIGZ1bjEoVFlQRSogcmVzdHJpY3QgcGl4ZWws IFRZUEUgbGV2ZWwsIGludCBuKQ0KK3sNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSs9MSkN CisgICAgcGl4ZWxbaV0gPSAocGl4ZWxbaV0gKyBsZXZlbCkgLyAweGZmOw0KK30NCisNCitfX2F0 dHJpYnV0ZV9fKChub2lwYSwgbm9pbmxpbmUsIG9wdGltaXplKCJPMyIpKSkNCit2b2lkIGZ1bjIo VFlQRSogcmVzdHJpY3QgcGl4ZWwsIFRZUEUgbGV2ZWwsIGludCBuKQ0KK3sNCisgIGZvciAoaW50 IGkgPSAwOyBpIDwgbjsgaSs9MSkNCisgICAgcGl4ZWxbaV0gPSAocGl4ZWxbaV0gKyBsZXZlbCkg LyAweGZmOw0KK30NCisNCitpbnQgbWFpbiAoKQ0KK3sNCisgIFRZUEUgYVtOXTsNCisgIFRZUEUg YltOXTsNCisNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKQ0KKyAgICB7DQorICAgICAg YVtpXSA9IEJBU0UgKyBpICogMTM7DQorICAgICAgYltpXSA9IEJBU0UgKyBpICogMTM7DQorICAg ICAgaWYgKERFQlVHKQ0KKyAgICAgICAgcHJpbnRmICgiJWQ6IDB4JXhcbiIsIGksIGFbaV0pOw0K KyAgICB9DQorDQorICBmdW4xIChhLCBOIC8gMiwgTik7DQorICBmdW4yIChiLCBOIC8gMiwgTik7 DQorDQorICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSkNCisgICAgew0KKyAgICAgIGlmIChE RUJVRykNCisgICAgICAgIHByaW50ZiAoIiVkID0gMHgleCA9PSAweCV4XG4iLCBpLCBhW2ldLCBi W2ldKTsNCisNCisgICAgICBpZiAoYVtpXSAhPSBiW2ldKQ0KKyAgICAgICAgX19idWlsdGluX2Fi b3J0ICgpOw0KKyAgICB9DQorICByZXR1cm4gMDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNj YW4tdHJlZS1kdW1wICJkaXZtb2QgcGF0dGVybiByZWNvZ25pemVkIiAidmVjdCIgeyB0YXJnZXQg YWFyY2g2NCotKi0qIH0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtc3NhLW1hdGgtb3B0 cy5jYyBiL2djYy90cmVlLXNzYS1tYXRoLW9wdHMuY2MNCmluZGV4IDVhYjViOTQ0YTU3M2FkMjRj ZTg0MjdhZmYyNGZjNTIxNWJmMDVkYWMuLjI2ZWQ5MWQ1OGZhNDcwOWE2N2M5MDNhZDQ0NmQyNjdh MzExM2MxNzIgMTAwNjQ0DQotLS0gYS9nY2MvdHJlZS1zc2EtbWF0aC1vcHRzLmNjDQorKysgYi9n Y2MvdHJlZS1zc2EtbWF0aC1vcHRzLmNjDQpAQCAtMzM0Niw2ICszMzQ2LDIwIEBAIGNvbnZlcnRf bXVsdF90b19mbWEgKGdpbXBsZSAqbXVsX3N0bXQsIHRyZWUgb3AxLCB0cmVlIG9wMiwNCiAJCSAg ICBwYXJhbV9hdm9pZF9mbWFfbWF4X2JpdHMpKTsNCiAgIGJvb2wgZGVmZXIgPSBjaGVja19kZWZl cjsNCiAgIGJvb2wgc2Vlbl9uZWdhdGVfcCA9IGZhbHNlOw0KKw0KKyAgLyogVGhlcmUgaXMgbm8g bnVtZXJpY2FsIGRpZmZlcmVuY2UgYmV0d2VlbiBmdXNlZCBhbmQgdW5mdXNlZCBpbnRlZ2VyIEZN QXMsDQorICAgICBhbmQgdGhlIGFzc3VtcHRpb24gYmVsb3cgdGhhdCBGTUEgaXMgYXMgY2hlYXAg YXMgYWRkaXRpb24gaXMgdW5saWtlbHkNCisgICAgIHRvIGJlIHRydWUsIGVzcGVjaWFsbHkgaWYg dGhlIG11bHRpcGxpY2F0aW9uIG9jY3VycyBtdWx0aXBsZSB0aW1lcyBvbg0KKyAgICAgdGhlIHNh bWUgY2hhaW4uICBFLmcuLCBmb3Igc29tZXRoaW5nIGxpa2U6DQorDQorCSAoKChhICogYikgKyBj KSA+PiAxKSArIChhICogYikNCisNCisgICAgIHdlIGRvIG5vdCB3YW50IHRvIGR1cGxpY2F0ZSB0 aGUgYSAqIGIgaW50byB0d28gYWRkaXRpb25zLCBub3QgbGVhc3QNCisgICAgIGJlY2F1c2UgdGhl IHJlc3VsdCBpcyBub3QgYSBuYXR1cmFsIEZNQSBjaGFpbi4gICovDQorICBpZiAoQU5ZX0lOVEVH UkFMX1RZUEVfUCAodHlwZSkNCisgICAgICAmJiAhaGFzX3NpbmdsZV91c2UgKG11bF9yZXN1bHQp KQ0KKyAgICByZXR1cm4gZmFsc2U7DQorDQogICAvKiBNYWtlIHN1cmUgdGhhdCB0aGUgbXVsdGlw bGljYXRpb24gc3RhdGVtZW50IGJlY29tZXMgZGVhZCBhZnRlcg0KICAgICAgdGhlIHRyYW5zZm9y bWF0aW9uLCB0aHVzIHRoYXQgYWxsIHVzZXMgYXJlIHRyYW5zZm9ybWVkIHRvIEZNQXMuDQogICAg ICBUaGlzIG1lYW5zIHdlIGFzc3VtZSB0aGF0IGFuIEZNQSBvcGVyYXRpb24gaGFzIHRoZSBzYW1l IGNvc3QNCmRpZmYgLS1naXQgYS9nY2MvdHJlZS12ZWN0LXBhdHRlcm5zLmNjIGIvZ2NjL3RyZWUt dmVjdC1wYXR0ZXJucy5jYw0KaW5kZXggMTc2NmNlMjc3ZDZiODhkOGFhM2JlNzdlN2M4YWJiNTA0 YTEwYTczNS4uMjdmYjRjNmE1OWYwMTgyYzRhODM2Zjk2YWI2YjVlMmU0MDVhMThhMCAxMDA2NDQN Ci0tLSBhL2djYy90cmVlLXZlY3QtcGF0dGVybnMuY2MNCisrKyBiL2djYy90cmVlLXZlY3QtcGF0 dGVybnMuY2MNCkBAIC0zOTEzLDYgKzM5MTMsODQgQEAgdmVjdF9yZWNvZ19kaXZtb2RfcGF0dGVy biAodmVjX2luZm8gKnZpbmZvLA0KIA0KICAgICAgIHJldHVybiBwYXR0ZXJuX3N0bXQ7DQogICAg IH0NCisgIGVsc2UgaWYgKChjc3QgPSB1bmlmb3JtX2ludGVnZXJfY3N0X3AgKG9wcm5kMSkpDQor CSAgICYmIFRZUEVfVU5TSUdORUQgKGl0eXBlKQ0KKwkgICAmJiByaHNfY29kZSA9PSBUUlVOQ19E SVZfRVhQUg0KKwkgICAmJiB2ZWN0eXBlDQorCSAgICYmIHRhcmdldG0udmVjdG9yaXplLnByZWZl cnJlZF9kaXZfYXNfc2hpZnRzX292ZXJfbXVsdCAodmVjdHlwZSkpDQorICAgIHsNCisgICAgICAv KiBkaXYgb3B0aW1pemF0aW9ucyB1c2luZyBuYXJyb3dpbmdzDQorICAgICAgIHdlIGNhbiBkbyB0 aGUgZGl2aXNpb24gZS5nLiBzaG9ydHMgYnkgMjU1IGZhc3RlciBieSBjYWxjdWxhdGluZyBpdCBh cw0KKyAgICAgICAoeCArICgoeCArIDI1NykgPj4gOCkpID4+IDggYXNzdW1pbmcgdGhlIG9wZXJh dGlvbiBpcyBkb25lIGluDQorICAgICAgIGRvdWJsZSB0aGUgcHJlY2lzaW9uIG9mIHguDQorDQor ICAgICAgIElmIHdlIGltYWdpbmUgYSBzaG9ydCBhcyBiZWluZyBjb21wb3NlZCBvZiB0d28gYmxv Y2tzIG9mIGJ5dGVzIHRoZW4NCisgICAgICAgYWRkaW5nIDI1NyBvciAwYjAwMDBfMDAwMV8wMDAw XzAwMDEgdG8gdGhlIG51bWJlciBpcyBlcXVpdmFsZW50IHRvDQorICAgICAgIGFkZGluZyAxIHRv IGVhY2ggc3ViIGNvbXBvbmVudDoNCisNCisJICAgIHNob3J0IHZhbHVlIG9mIDE2LWJpdHMNCisg ICAgICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQDQorICAgICAg IOKUgiAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgIOKUgg0KKyAgICAgICDilJTilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilLTilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJgNCisJIDgtYml0IHBhcnQxIOKWsiAg OC1iaXQgcGFydDIgICDilrINCisJCSAgICAg4pSCICAgICAgICAgICAgICAgIOKUgg0KKwkJICAg ICDilIIgICAgICAgICAgICAgICAg4pSCDQorCQkgICAgKzEgICAgICAgICAgICAgICArMQ0KKw0K KyAgICAgICBhZnRlciB0aGUgZmlyc3QgYWRkaXRpb24sIHdlIGhhdmUgdG8gc2hpZnQgcmlnaHQg YnkgOCwgYW5kIG5hcnJvdyB0aGUNCisgICAgICAgcmVzdWx0cyBiYWNrIHRvIGEgYnl0ZS4gIFJl bWVtYmVyIHRoYXQgdGhlIGFkZGl0aW9uIG11c3QgYmUgZG9uZSBpbg0KKyAgICAgICBkb3VibGUg dGhlIHByZWNpc2lvbiBvZiB0aGUgaW5wdXQuICBIb3dldmVyIGlmIHdlIGtub3cgdGhhdCB0aGUg YWRkaXRpb24NCisgICAgICAgYHggKyAyNTdgIGRvZXMgbm90IG92ZXJmbG93IHRoZW4gd2UgY2Fu IGRvIHRoZSBvcGVyYXRpb24gaW4gdGhlIGN1cnJlbnQNCisgICAgICAgcHJlY2lzaW9uLiAgSW4g d2hpY2ggY2FzZSB3ZSBkb24ndCBuZWVkIHRoZSBwYWNrIGFuZCB1bnBhY2tzLiAgKi8NCisgICAg ICBhdXRvIHdjc3QgPSB3aTo6dG9fd2lkZSAoY3N0KTsNCisgICAgICBpbnQgcG93ID0gd2k6OmV4 YWN0X2xvZzIgKHdjc3QgKyAxKTsNCisgICAgICBpZiAocG93ID09IChpbnQpIChlbGVtZW50X3By ZWNpc2lvbiAodmVjdHlwZSkgLyAyKSkNCisJew0KKwkgIGdpbXBsZSAqc3RtdCA9IFNTQV9OQU1F X0RFRl9TVE1UIChvcHJuZDApOw0KKw0KKwkgIGdpbXBsZV9yYW5nZXIgcmFuZ2VyOw0KKwkgIGlu dF9yYW5nZV9tYXggcjsNCisNCisJICAvKiBDaGVjayB0aGF0IG5vIG92ZXJmbG93IHdpbGwgb2Nj dXIuICBJZiB3ZSBkb24ndCBoYXZlIHJhbmdlDQorCSAgICAgaW5mb3JtYXRpb24gd2UgY2FuJ3Qg cGVyZm9ybSB0aGUgb3B0aW1pemF0aW9uLiAgKi8NCisNCisJICBpZiAocmFuZ2VyLnJhbmdlX29m X2V4cHIgKHIsIG9wcm5kMCwgc3RtdCkpDQorCSAgICB7DQorCSAgICAgIHdpZGVfaW50IG1heCA9 IHIudXBwZXJfYm91bmQgKCk7DQorCSAgICAgIHdpZGVfaW50IG9uZSA9IHdpOjp0b193aWRlIChi dWlsZF9vbmVfY3N0IChpdHlwZSkpOw0KKwkgICAgICB3aWRlX2ludCBhZGRlciA9IHdpOjphZGQg KG9uZSwgd2k6OmxzaGlmdCAob25lLCBwb3cpKTsNCisJICAgICAgd2k6Om92ZXJmbG93X3R5cGUg b3ZmOw0KKwkgICAgICB3aTo6YWRkIChtYXgsIGFkZGVyLCBVTlNJR05FRCwgJm92Zik7DQorCSAg ICAgIGlmIChvdmYgPT0gd2k6Ok9WRl9OT05FKQ0KKwkJew0KKwkJICAqdHlwZV9vdXQgPSB2ZWN0 eXBlOw0KKwkJICB0cmVlIHRhZGRlciA9IHdpZGVfaW50X3RvX3RyZWUgKGl0eXBlLCBhZGRlcik7 DQorCQkgIHRyZWUgcnNoaWZ0ID0gd2lkZV9pbnRfdG9fdHJlZSAoaXR5cGUsIHBvdyk7DQorDQor CQkgIHRyZWUgbmV3X2xoczEgPSB2ZWN0X3JlY29nX3RlbXBfc3NhX3ZhciAoaXR5cGUsIE5VTEwp Ow0KKwkJICBnYXNzaWduICpwYXR0MQ0KKwkJICAgID0gZ2ltcGxlX2J1aWxkX2Fzc2lnbiAobmV3 X2xoczEsIFBMVVNfRVhQUiwgb3BybmQwLCB0YWRkZXIpOw0KKwkJICBhcHBlbmRfcGF0dGVybl9k ZWZfc2VxICh2aW5mbywgc3RtdF92aW5mbywgcGF0dDEsIHZlY3R5cGUpOw0KKw0KKwkJICB0cmVl IG5ld19saHMyID0gdmVjdF9yZWNvZ190ZW1wX3NzYV92YXIgKGl0eXBlLCBOVUxMKTsNCisJCSAg cGF0dDEgPSBnaW1wbGVfYnVpbGRfYXNzaWduIChuZXdfbGhzMiwgUlNISUZUX0VYUFIsIG5ld19s aHMxLA0KKwkJCQkJICAgICAgIHJzaGlmdCk7DQorCQkgIGFwcGVuZF9wYXR0ZXJuX2RlZl9zZXEg KHZpbmZvLCBzdG10X3ZpbmZvLCBwYXR0MSwgdmVjdHlwZSk7DQorDQorCQkgIHRyZWUgbmV3X2xo czMgPSB2ZWN0X3JlY29nX3RlbXBfc3NhX3ZhciAoaXR5cGUsIE5VTEwpOw0KKwkJICBwYXR0MSA9 IGdpbXBsZV9idWlsZF9hc3NpZ24gKG5ld19saHMzLCBQTFVTX0VYUFIsIG5ld19saHMyLA0KKwkJ CQkJICAgICAgIG9wcm5kMCk7DQorCQkgIGFwcGVuZF9wYXR0ZXJuX2RlZl9zZXEgKHZpbmZvLCBz dG10X3ZpbmZvLCBwYXR0MSwgdmVjdHlwZSk7DQorDQorCQkgIHRyZWUgbmV3X2xoczQgPSB2ZWN0 X3JlY29nX3RlbXBfc3NhX3ZhciAoaXR5cGUsIE5VTEwpOw0KKwkJICBwYXR0ZXJuX3N0bXQgPSBn aW1wbGVfYnVpbGRfYXNzaWduIChuZXdfbGhzNCwgUlNISUZUX0VYUFIsDQorCQkJCQkJICAgICAg bmV3X2xoczMsIHJzaGlmdCk7DQorDQorCQkgIHJldHVybiBwYXR0ZXJuX3N0bXQ7DQorCQl9DQor CSAgICB9DQorCX0NCisgICAgfQ0KIA0KICAgaWYgKHByZWMgPiBIT1NUX0JJVFNfUEVSX1dJREVf SU5UDQogICAgICAgfHwgaW50ZWdlcl96ZXJvcCAob3BybmQxKSkNCg== --_002_VI1PR08MB53258008DADE449698F19184FFB69VI1PR08MB5325eurp_ Content-Type: application/octet-stream; name="rb16930.patch" Content-Description: rb16930.patch Content-Disposition: attachment; filename="rb16930.patch"; size=10446; creation-date="Mon, 06 Mar 2023 11:23:30 GMT"; modification-date="Mon, 06 Mar 2023 11:23:49 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9kb2MvdG0udGV4aSBiL2djYy9kb2MvdG0udGV4aQppbmRleCA1MGE4 ODcyYTY2OTViMThiOWJlZDBkMzkzYmFjZjczMzgzMzYzM2RiLi5mNjlmN2YwMzYyNzJlODY3ZWEx YzNmZWU4NTFiMTE3ZjA1N2Y2OGM1IDEwMDY0NAotLS0gYS9nY2MvZG9jL3RtLnRleGkKKysrIGIv Z2NjL2RvYy90bS50ZXhpCkBAIC02MTM3LDYgKzYxMzcsMTAgQEAgaW5zdHJ1Y3Rpb24gcGF0dGVy bi4gIFRoZXJlIGlzIG5vIG5lZWQgZm9yIHRoZSBob29rIHRvIGhhbmRsZSB0aGVzZSB0d28KIGlt cGxlbWVudGF0aW9uIGFwcHJvYWNoZXMgaXRzZWxmLgogQGVuZCBkZWZ0eXBlZm4KIAorQGRlZnR5 cGVmbiB7VGFyZ2V0IEhvb2t9IGJvb2wgVEFSR0VUX1ZFQ1RPUklaRV9QUkVGRVJSRURfRElWX0FT X1NISUZUU19PVkVSX01VTFQgKGNvbnN0X3RyZWUgQHZhcnt0eXBlfSkKK0lmIHBvc3NpYmxlLCB3 aGVuIGRlY29tcG9zaW5nIGEgZGl2aXNpb24gb3BlcmF0aW9uIG9mIHZlY3RvcnMgb2YKK3R5cGUg QHZhcnt0eXBlfSBkdXJpbmcgdmVjdG9yaXphdGlvbiwgcHJlZmVyIHRvIHVzZSBzaGlmdHMgcmF0 aGVyIHRoYW4KK211bHRpcGxpY2F0aW9uIGJ5IG1hZ2ljIGNvbnN0YW50cy4KIEBlbmQgZGVmdHlw ZWZuCiAKIEBkZWZ0eXBlZm4ge1RhcmdldCBIb29rfSB0cmVlIFRBUkdFVF9WRUNUT1JJWkVfQlVJ TFRJTl9WRUNUT1JJWkVEX0ZVTkNUSU9OICh1bnNpZ25lZCBAdmFye2NvZGV9LCB0cmVlIEB2YXJ7 dmVjX3R5cGVfb3V0fSwgdHJlZSBAdmFye3ZlY190eXBlX2lufSkKZGlmZiAtLWdpdCBhL2djYy9k b2MvdG0udGV4aS5pbiBiL2djYy9kb2MvdG0udGV4aS5pbgppbmRleCAzZTA3OTc4YTAyZjRlNjA3 N2FkYWU2Y2FkYzkzZWE0MjczMjk1ZjFmLi4wMDUxMDE3YTdmZDY3NjkxYTM0MzQ3MGYzNmFkNGZj MzJjOGU3ZTE1IDEwMDY0NAotLS0gYS9nY2MvZG9jL3RtLnRleGkuaW4KKysrIGIvZ2NjL2RvYy90 bS50ZXhpLmluCkBAIC00MTczLDYgKzQxNzMsNyBAQCBhZGRyZXNzOyAgYnV0IG9mdGVuIGEgbWFj aGluZS1kZXBlbmRlbnQgc3RyYXRlZ3kgY2FuIGdlbmVyYXRlIGJldHRlciBjb2RlLgogCiBAaG9v ayBUQVJHRVRfVkVDVE9SSVpFX1ZFQ19QRVJNX0NPTlNUCiAKK0Bob29rIFRBUkdFVF9WRUNUT1JJ WkVfUFJFRkVSUkVEX0RJVl9BU19TSElGVFNfT1ZFUl9NVUxUCiAKIEBob29rIFRBUkdFVF9WRUNU T1JJWkVfQlVJTFRJTl9WRUNUT1JJWkVEX0ZVTkNUSU9OCiAKZGlmZiAtLWdpdCBhL2djYy90YXJn ZXQuZGVmIGIvZ2NjL3RhcmdldC5kZWYKaW5kZXggZTBhNWM3YWRiZDk2MmY1ZDA4ZWQwOGQxZDgx YWZhMmMyYmFhNjRhNS4uYmRlZTliN2Y5Yzk0MTUwODczOGZhYzQ5NTkzYjViYWE1MjVlMjkxNSAx MDA2NDQKLS0tIGEvZ2NjL3RhcmdldC5kZWYKKysrIGIvZ2NjL3RhcmdldC5kZWYKQEAgLTE4Njgs NiArMTg2OCwxNiBAQCBjb3JyZWN0IGZvciBtb3N0IHRhcmdldHMuIiwKICBwb2x5X3VpbnQ2NCwg KGNvbnN0X3RyZWUgdHlwZSksCiAgZGVmYXVsdF9wcmVmZXJyZWRfdmVjdG9yX2FsaWdubWVudCkK IAorLyogUmV0dXJucyB3aGV0aGVyIHRoZSB0YXJnZXQgaGFzIGEgcHJlZmVyZW5jZSBmb3IgZGVj b21wb3NpbmcgZGl2aXNpb25zIHVzaW5nCisgICBzaGlmdHMgcmF0aGVyIHRoYW4gbXVsdGlwbGll cy4gICovCitERUZIT09LCisocHJlZmVycmVkX2Rpdl9hc19zaGlmdHNfb3Zlcl9tdWx0LAorICJJ ZiBwb3NzaWJsZSwgd2hlbiBkZWNvbXBvc2luZyBhIGRpdmlzaW9uIG9wZXJhdGlvbiBvZiB2ZWN0 b3JzIG9mXG5cCit0eXBlIEB2YXJ7dHlwZX0gZHVyaW5nIHZlY3Rvcml6YXRpb24sIHByZWZlciB0 byB1c2Ugc2hpZnRzIHJhdGhlciB0aGFuXG5cCittdWx0aXBsaWNhdGlvbiBieSBtYWdpYyBjb25z dGFudHMuIiwKKyBib29sLCAoY29uc3RfdHJlZSB0eXBlKSwKKyBkZWZhdWx0X3ByZWZlcnJlZF9k aXZfYXNfc2hpZnRzX292ZXJfbXVsdCkKKwogLyogUmV0dXJuIHRydWUgaWYgdmVjdG9yIGFsaWdu bWVudCBpcyByZWFjaGFibGUgKGJ5IHBlZWxpbmcgTgogICAgaXRlcmF0aW9ucykgZm9yIHRoZSBn aXZlbiBzY2FsYXIgdHlwZS4gICovCiBERUZIT09LCmRpZmYgLS1naXQgYS9nY2MvdGFyZ2hvb2tz LmggYi9nY2MvdGFyZ2hvb2tzLmgKaW5kZXggYTZhNDgwOWNhOTFiYWE1ZDdmYWQyMjQ0NTQ5MzE3 YTMxMzkwZjBjMi4uYTIwNzk2M2I5ZTZlYjkzMDBkZjAwNDNlMWI3OWFhNmM5NDFkMGY3ZiAxMDA2 NDQKLS0tIGEvZ2NjL3Rhcmdob29rcy5oCisrKyBiL2djYy90YXJnaG9va3MuaApAQCAtNTMsNiAr NTMsOCBAQCBleHRlcm4gc2NhbGFyX2ludF9tb2RlIGRlZmF1bHRfdW53aW5kX3dvcmRfbW9kZSAo dm9pZCk7CiBleHRlcm4gdW5zaWduZWQgSE9TVF9XSURFX0lOVCBkZWZhdWx0X3NoaWZ0X3RydW5j YXRpb25fbWFzawogICAobWFjaGluZV9tb2RlKTsKIGV4dGVybiB1bnNpZ25lZCBpbnQgZGVmYXVs dF9taW5fZGl2aXNpb25zX2Zvcl9yZWNpcF9tdWwgKG1hY2hpbmVfbW9kZSk7CitleHRlcm4gYm9v bCBkZWZhdWx0X3ByZWZlcnJlZF9kaXZfYXNfc2hpZnRzX292ZXJfbXVsdAorICAoY29uc3RfdHJl ZSk7CiBleHRlcm4gaW50IGRlZmF1bHRfbW9kZV9yZXBfZXh0ZW5kZWQgKHNjYWxhcl9pbnRfbW9k ZSwgc2NhbGFyX2ludF9tb2RlKTsKIAogZXh0ZXJuIHRyZWUgZGVmYXVsdF9zdGFja19wcm90ZWN0 X2d1YXJkICh2b2lkKTsKZGlmZiAtLWdpdCBhL2djYy90YXJnaG9va3MuY2MgYi9nY2MvdGFyZ2hv b2tzLmNjCmluZGV4IDIxMTUyNTcyMGE2MjBkNmY1MzNlMmRhOTFlMDM4NzczMzdhOTMxZTcuLmJl Y2VhNmVmNGI2MzI5Y2ZhMGI2NzZmOGQ4NDQ2MzBmYmRjOTdmMjAgMTAwNjQ0Ci0tLSBhL2djYy90 YXJnaG9va3MuY2MKKysrIGIvZ2NjL3Rhcmdob29rcy5jYwpAQCAtMTQ4Myw2ICsxNDgzLDE1IEBA IGRlZmF1bHRfcHJlZmVycmVkX3ZlY3Rvcl9hbGlnbm1lbnQgKGNvbnN0X3RyZWUgdHlwZSkKICAg cmV0dXJuIFRZUEVfQUxJR04gKHR5cGUpOwogfQogCisvKiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRh dGlvbiBvZgorICAgVEFSR0VUX1ZFQ1RPUklaRV9QUkVGRVJSRURfRElWX0FTX1NISUZUU19PVkVS X01VTFQuICAqLworCitib29sCitkZWZhdWx0X3ByZWZlcnJlZF9kaXZfYXNfc2hpZnRzX292ZXJf bXVsdCAoY29uc3RfdHJlZSAvKiB0eXBlICovKQoreworICByZXR1cm4gZmFsc2U7Cit9CisKIC8q IEJ5IGRlZmF1bHQgYXNzdW1lIHZlY3RvcnMgb2YgZWxlbWVudCBUWVBFIHJlcXVpcmUgYSBtdWx0 aXBsZSBvZiB0aGUgbmF0dXJhbAogICAgYWxpZ25tZW50IG9mIFRZUEUuICBUWVBFIGlzIG5hdHVy YWxseSBhbGlnbmVkIGlmIElTX1BBQ0tFRCBpcyBmYWxzZS4gICovCiBib29sCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtZGl2LWJpdG1hc2stNC5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0LWRpdi1iaXRtYXNrLTQuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODFm ODk0NjkyMjI1MDIzNGJmNzU5ZTBhMGEwNGVhOGMxZjczZTNjCi0tLSAvZGV2L251bGwKKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0LWRpdi1iaXRtYXNrLTQuYwpAQCAtMCwwICsx LDI1IEBACisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCB2ZWN0X2ludCB9ICovCisK KyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlICJ0cmVlLXZlY3QuaCIKKwordHlwZWRlZiB1 bnNpZ25lZCBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18gKDE2KSkpIFY7CisKK3N0YXRp YyBfX2F0dHJpYnV0ZV9fKChfX25vaW5saW5lX18pKSBfX2F0dHJpYnV0ZV9fKChfX25vY2xvbmVf XykpIFYKK2ZvbyAoViB2LCB1bnNpZ25lZCBzaG9ydCBpKQoreworICB2IC89IGk7CisgIHJldHVy biB2OworfQorCitpbnQKK21haW4gKHZvaWQpCit7CisgIFYgdiA9IGZvbyAoKFYpIHsgMHhmZmZm ZmZmZiwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiB9LCAweGZmZmYpOworICBm b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZW9mICh2KSAvIHNpemVvZiAodlswXSk7IGkrKykK KyAgICBpZiAodltpXSAhPSAweDAwMDEwMDAxKQorICAgICAgX19idWlsdGluX2Fib3J0ICgpOwor ICByZXR1cm4gMDsKK30KKworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5vdCAidmVj dF9yZWNvZ19kaXZtb2RfcGF0dGVybjogZGV0ZWN0ZWQiICJ2ZWN0IiB7IHRhcmdldCBhYXJjaDY0 Ki0qLSogfSB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvdmVj dC1kaXYtYml0bWFzay01LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtZGl2LWJp dG1hc2stNS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0ZWIxYTRkYWNiYTQ4MWU2MzA2YjQ5OTE0ZDJhMjliOTMz ZGU2MjUKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3Qt ZGl2LWJpdG1hc2stNS5jCkBAIC0wLDAgKzEsNTggQEAKKy8qIHsgZGctcmVxdWlyZS1lZmZlY3Rp dmUtdGFyZ2V0IHZlY3RfaW50IH0gKi8KKworI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUg PHN0ZGlvLmg+CisjaW5jbHVkZSAidHJlZS12ZWN0LmgiCisKKyNkZWZpbmUgTiA1MAorI2RlZmlu ZSBUWVBFIHVpbnQ4X3QgCisKKyNpZm5kZWYgREVCVUcKKyNkZWZpbmUgREVCVUcgMAorI2VuZGlm CisKKyNkZWZpbmUgQkFTRSAoKFRZUEUpIC0xIDwgMCA/IC0xMjYgOiA0KQorCisKK19fYXR0cmli dXRlX18oKG5vaXBhLCBub2lubGluZSwgb3B0aW1pemUoIk8xIikpKQordm9pZCBmdW4xKFRZUEUq IHJlc3RyaWN0IHBpeGVsLCBUWVBFIGxldmVsLCBpbnQgbikKK3sKKyAgZm9yIChpbnQgaSA9IDA7 IGkgPCBuOyBpKz0xKQorICAgIHBpeGVsW2ldID0gKHBpeGVsW2ldICsgbGV2ZWwpIC8gMHhmZjsK K30KKworX19hdHRyaWJ1dGVfXygobm9pcGEsIG5vaW5saW5lLCBvcHRpbWl6ZSgiTzMiKSkpCit2 b2lkIGZ1bjIoVFlQRSogcmVzdHJpY3QgcGl4ZWwsIFRZUEUgbGV2ZWwsIGludCBuKQoreworICBm b3IgKGludCBpID0gMDsgaSA8IG47IGkrPTEpCisgICAgcGl4ZWxbaV0gPSAocGl4ZWxbaV0gKyBs ZXZlbCkgLyAweGZmOworfQorCitpbnQgbWFpbiAoKQoreworICBUWVBFIGFbTl07CisgIFRZUEUg YltOXTsKKworICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSkKKyAgICB7CisgICAgICBhW2ld ID0gQkFTRSArIGkgKiAxMzsKKyAgICAgIGJbaV0gPSBCQVNFICsgaSAqIDEzOworICAgICAgaWYg KERFQlVHKQorICAgICAgICBwcmludGYgKCIlZDogMHgleFxuIiwgaSwgYVtpXSk7CisgICAgfQor CisgIGZ1bjEgKGEsIE4gLyAyLCBOKTsKKyAgZnVuMiAoYiwgTiAvIDIsIE4pOworCisgIGZvciAo aW50IGkgPSAwOyBpIDwgTjsgKytpKQorICAgIHsKKyAgICAgIGlmIChERUJVRykKKyAgICAgICAg cHJpbnRmICgiJWQgPSAweCV4ID09IDB4JXhcbiIsIGksIGFbaV0sIGJbaV0pOworCisgICAgICBp ZiAoYVtpXSAhPSBiW2ldKQorICAgICAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisgICAgfQorICBy ZXR1cm4gMDsKK30KKworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJkaXZtb2QgcGF0 dGVybiByZWNvZ25pemVkIiAidmVjdCIgeyB0YXJnZXQgYWFyY2g2NCotKi0qIH0gfSB9ICovCmRp ZmYgLS1naXQgYS9nY2MvdHJlZS1zc2EtbWF0aC1vcHRzLmNjIGIvZ2NjL3RyZWUtc3NhLW1hdGgt b3B0cy5jYwppbmRleCA1YWI1Yjk0NGE1NzNhZDI0Y2U4NDI3YWZmMjRmYzUyMTViZjA1ZGFjLi4y NmVkOTFkNThmYTQ3MDlhNjdjOTAzYWQ0NDZkMjY3YTMxMTNjMTcyIDEwMDY0NAotLS0gYS9nY2Mv dHJlZS1zc2EtbWF0aC1vcHRzLmNjCisrKyBiL2djYy90cmVlLXNzYS1tYXRoLW9wdHMuY2MKQEAg LTMzNDYsNiArMzM0NiwyMCBAQCBjb252ZXJ0X211bHRfdG9fZm1hIChnaW1wbGUgKm11bF9zdG10 LCB0cmVlIG9wMSwgdHJlZSBvcDIsCiAJCSAgICBwYXJhbV9hdm9pZF9mbWFfbWF4X2JpdHMpKTsK ICAgYm9vbCBkZWZlciA9IGNoZWNrX2RlZmVyOwogICBib29sIHNlZW5fbmVnYXRlX3AgPSBmYWxz ZTsKKworICAvKiBUaGVyZSBpcyBubyBudW1lcmljYWwgZGlmZmVyZW5jZSBiZXR3ZWVuIGZ1c2Vk IGFuZCB1bmZ1c2VkIGludGVnZXIgRk1BcywKKyAgICAgYW5kIHRoZSBhc3N1bXB0aW9uIGJlbG93 IHRoYXQgRk1BIGlzIGFzIGNoZWFwIGFzIGFkZGl0aW9uIGlzIHVubGlrZWx5CisgICAgIHRvIGJl IHRydWUsIGVzcGVjaWFsbHkgaWYgdGhlIG11bHRpcGxpY2F0aW9uIG9jY3VycyBtdWx0aXBsZSB0 aW1lcyBvbgorICAgICB0aGUgc2FtZSBjaGFpbi4gIEUuZy4sIGZvciBzb21ldGhpbmcgbGlrZToK KworCSAoKChhICogYikgKyBjKSA+PiAxKSArIChhICogYikKKworICAgICB3ZSBkbyBub3Qgd2Fu dCB0byBkdXBsaWNhdGUgdGhlIGEgKiBiIGludG8gdHdvIGFkZGl0aW9ucywgbm90IGxlYXN0Cisg ICAgIGJlY2F1c2UgdGhlIHJlc3VsdCBpcyBub3QgYSBuYXR1cmFsIEZNQSBjaGFpbi4gICovCisg IGlmIChBTllfSU5URUdSQUxfVFlQRV9QICh0eXBlKQorICAgICAgJiYgIWhhc19zaW5nbGVfdXNl IChtdWxfcmVzdWx0KSkKKyAgICByZXR1cm4gZmFsc2U7CisKICAgLyogTWFrZSBzdXJlIHRoYXQg dGhlIG11bHRpcGxpY2F0aW9uIHN0YXRlbWVudCBiZWNvbWVzIGRlYWQgYWZ0ZXIKICAgICAgdGhl IHRyYW5zZm9ybWF0aW9uLCB0aHVzIHRoYXQgYWxsIHVzZXMgYXJlIHRyYW5zZm9ybWVkIHRvIEZN QXMuCiAgICAgIFRoaXMgbWVhbnMgd2UgYXNzdW1lIHRoYXQgYW4gRk1BIG9wZXJhdGlvbiBoYXMg dGhlIHNhbWUgY29zdApkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtdmVjdC1wYXR0ZXJucy5jYyBiL2dj Yy90cmVlLXZlY3QtcGF0dGVybnMuY2MKaW5kZXggMTc2NmNlMjc3ZDZiODhkOGFhM2JlNzdlN2M4 YWJiNTA0YTEwYTczNS4uMjdmYjRjNmE1OWYwMTgyYzRhODM2Zjk2YWI2YjVlMmU0MDVhMThhMCAx MDA2NDQKLS0tIGEvZ2NjL3RyZWUtdmVjdC1wYXR0ZXJucy5jYworKysgYi9nY2MvdHJlZS12ZWN0 LXBhdHRlcm5zLmNjCkBAIC0zOTEzLDYgKzM5MTMsODQgQEAgdmVjdF9yZWNvZ19kaXZtb2RfcGF0 dGVybiAodmVjX2luZm8gKnZpbmZvLAogCiAgICAgICByZXR1cm4gcGF0dGVybl9zdG10OwogICAg IH0KKyAgZWxzZSBpZiAoKGNzdCA9IHVuaWZvcm1faW50ZWdlcl9jc3RfcCAob3BybmQxKSkKKwkg ICAmJiBUWVBFX1VOU0lHTkVEIChpdHlwZSkKKwkgICAmJiByaHNfY29kZSA9PSBUUlVOQ19ESVZf RVhQUgorCSAgICYmIHZlY3R5cGUKKwkgICAmJiB0YXJnZXRtLnZlY3Rvcml6ZS5wcmVmZXJyZWRf ZGl2X2FzX3NoaWZ0c19vdmVyX211bHQgKHZlY3R5cGUpKQorICAgIHsKKyAgICAgIC8qIGRpdiBv cHRpbWl6YXRpb25zIHVzaW5nIG5hcnJvd2luZ3MKKyAgICAgICB3ZSBjYW4gZG8gdGhlIGRpdmlz aW9uIGUuZy4gc2hvcnRzIGJ5IDI1NSBmYXN0ZXIgYnkgY2FsY3VsYXRpbmcgaXQgYXMKKyAgICAg ICAoeCArICgoeCArIDI1NykgPj4gOCkpID4+IDggYXNzdW1pbmcgdGhlIG9wZXJhdGlvbiBpcyBk b25lIGluCisgICAgICAgZG91YmxlIHRoZSBwcmVjaXNpb24gb2YgeC4KKworICAgICAgIElmIHdl IGltYWdpbmUgYSBzaG9ydCBhcyBiZWluZyBjb21wb3NlZCBvZiB0d28gYmxvY2tzIG9mIGJ5dGVz IHRoZW4KKyAgICAgICBhZGRpbmcgMjU3IG9yIDBiMDAwMF8wMDAxXzAwMDBfMDAwMSB0byB0aGUg bnVtYmVyIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgICBhZGRpbmcgMSB0byBlYWNoIHN1YiBjb21w b25lbnQ6CisKKwkgICAgc2hvcnQgdmFsdWUgb2YgMTYtYml0cworICAgICAgIOKUjOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorICAgICAgIOKUgiAgICAgICAgICAgICAg 4pSCICAgICAgICAgICAgICAgIOKUggorICAgICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUtOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUmAorCSA4LWJpdCBwYXJ0MSDilrIgIDgtYml0IHBhcnQyICAg4payCisJ CSAgICAg4pSCICAgICAgICAgICAgICAgIOKUggorCQkgICAgIOKUgiAgICAgICAgICAgICAgICDi lIIKKwkJICAgICsxICAgICAgICAgICAgICAgKzEKKworICAgICAgIGFmdGVyIHRoZSBmaXJzdCBh ZGRpdGlvbiwgd2UgaGF2ZSB0byBzaGlmdCByaWdodCBieSA4LCBhbmQgbmFycm93IHRoZQorICAg ICAgIHJlc3VsdHMgYmFjayB0byBhIGJ5dGUuICBSZW1lbWJlciB0aGF0IHRoZSBhZGRpdGlvbiBt dXN0IGJlIGRvbmUgaW4KKyAgICAgICBkb3VibGUgdGhlIHByZWNpc2lvbiBvZiB0aGUgaW5wdXQu ICBIb3dldmVyIGlmIHdlIGtub3cgdGhhdCB0aGUgYWRkaXRpb24KKyAgICAgICBgeCArIDI1N2Ag ZG9lcyBub3Qgb3ZlcmZsb3cgdGhlbiB3ZSBjYW4gZG8gdGhlIG9wZXJhdGlvbiBpbiB0aGUgY3Vy cmVudAorICAgICAgIHByZWNpc2lvbi4gIEluIHdoaWNoIGNhc2Ugd2UgZG9uJ3QgbmVlZCB0aGUg cGFjayBhbmQgdW5wYWNrcy4gICovCisgICAgICBhdXRvIHdjc3QgPSB3aTo6dG9fd2lkZSAoY3N0 KTsKKyAgICAgIGludCBwb3cgPSB3aTo6ZXhhY3RfbG9nMiAod2NzdCArIDEpOworICAgICAgaWYg KHBvdyA9PSAoaW50KSAoZWxlbWVudF9wcmVjaXNpb24gKHZlY3R5cGUpIC8gMikpCisJeworCSAg Z2ltcGxlICpzdG10ID0gU1NBX05BTUVfREVGX1NUTVQgKG9wcm5kMCk7CisKKwkgIGdpbXBsZV9y YW5nZXIgcmFuZ2VyOworCSAgaW50X3JhbmdlX21heCByOworCisJICAvKiBDaGVjayB0aGF0IG5v IG92ZXJmbG93IHdpbGwgb2NjdXIuICBJZiB3ZSBkb24ndCBoYXZlIHJhbmdlCisJICAgICBpbmZv cm1hdGlvbiB3ZSBjYW4ndCBwZXJmb3JtIHRoZSBvcHRpbWl6YXRpb24uICAqLworCisJICBpZiAo cmFuZ2VyLnJhbmdlX29mX2V4cHIgKHIsIG9wcm5kMCwgc3RtdCkpCisJICAgIHsKKwkgICAgICB3 aWRlX2ludCBtYXggPSByLnVwcGVyX2JvdW5kICgpOworCSAgICAgIHdpZGVfaW50IG9uZSA9IHdp Ojp0b193aWRlIChidWlsZF9vbmVfY3N0IChpdHlwZSkpOworCSAgICAgIHdpZGVfaW50IGFkZGVy ID0gd2k6OmFkZCAob25lLCB3aTo6bHNoaWZ0IChvbmUsIHBvdykpOworCSAgICAgIHdpOjpvdmVy Zmxvd190eXBlIG92ZjsKKwkgICAgICB3aTo6YWRkIChtYXgsIGFkZGVyLCBVTlNJR05FRCwgJm92 Zik7CisJICAgICAgaWYgKG92ZiA9PSB3aTo6T1ZGX05PTkUpCisJCXsKKwkJICAqdHlwZV9vdXQg PSB2ZWN0eXBlOworCQkgIHRyZWUgdGFkZGVyID0gd2lkZV9pbnRfdG9fdHJlZSAoaXR5cGUsIGFk ZGVyKTsKKwkJICB0cmVlIHJzaGlmdCA9IHdpZGVfaW50X3RvX3RyZWUgKGl0eXBlLCBwb3cpOwor CisJCSAgdHJlZSBuZXdfbGhzMSA9IHZlY3RfcmVjb2dfdGVtcF9zc2FfdmFyIChpdHlwZSwgTlVM TCk7CisJCSAgZ2Fzc2lnbiAqcGF0dDEKKwkJICAgID0gZ2ltcGxlX2J1aWxkX2Fzc2lnbiAobmV3 X2xoczEsIFBMVVNfRVhQUiwgb3BybmQwLCB0YWRkZXIpOworCQkgIGFwcGVuZF9wYXR0ZXJuX2Rl Zl9zZXEgKHZpbmZvLCBzdG10X3ZpbmZvLCBwYXR0MSwgdmVjdHlwZSk7CisKKwkJICB0cmVlIG5l d19saHMyID0gdmVjdF9yZWNvZ190ZW1wX3NzYV92YXIgKGl0eXBlLCBOVUxMKTsKKwkJICBwYXR0 MSA9IGdpbXBsZV9idWlsZF9hc3NpZ24gKG5ld19saHMyLCBSU0hJRlRfRVhQUiwgbmV3X2xoczEs CisJCQkJCSAgICAgICByc2hpZnQpOworCQkgIGFwcGVuZF9wYXR0ZXJuX2RlZl9zZXEgKHZpbmZv LCBzdG10X3ZpbmZvLCBwYXR0MSwgdmVjdHlwZSk7CisKKwkJICB0cmVlIG5ld19saHMzID0gdmVj dF9yZWNvZ190ZW1wX3NzYV92YXIgKGl0eXBlLCBOVUxMKTsKKwkJICBwYXR0MSA9IGdpbXBsZV9i dWlsZF9hc3NpZ24gKG5ld19saHMzLCBQTFVTX0VYUFIsIG5ld19saHMyLAorCQkJCQkgICAgICAg b3BybmQwKTsKKwkJICBhcHBlbmRfcGF0dGVybl9kZWZfc2VxICh2aW5mbywgc3RtdF92aW5mbywg cGF0dDEsIHZlY3R5cGUpOworCisJCSAgdHJlZSBuZXdfbGhzNCA9IHZlY3RfcmVjb2dfdGVtcF9z c2FfdmFyIChpdHlwZSwgTlVMTCk7CisJCSAgcGF0dGVybl9zdG10ID0gZ2ltcGxlX2J1aWxkX2Fz c2lnbiAobmV3X2xoczQsIFJTSElGVF9FWFBSLAorCQkJCQkJICAgICAgbmV3X2xoczMsIHJzaGlm dCk7CisKKwkJICByZXR1cm4gcGF0dGVybl9zdG10OworCQl9CisJICAgIH0KKwl9CisgICAgfQog CiAgIGlmIChwcmVjID4gSE9TVF9CSVRTX1BFUl9XSURFX0lOVAogICAgICAgfHwgaW50ZWdlcl96 ZXJvcCAob3BybmQxKSkK --_002_VI1PR08MB53258008DADE449698F19184FFB69VI1PR08MB5325eurp_--