From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 1bqxERbQml/iCAAAWB0awg (envelope-from ) for ; Thu, 29 Oct 2020 10:22:14 -0400 Received: by simark.ca (Postfix, from userid 112) id 39A1F1EFC1; Thu, 29 Oct 2020 10:22:14 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,UNPARSEABLE_RELAY,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id D1D661E58E for ; Thu, 29 Oct 2020 10:22:11 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 20D6E3985478; Thu, 29 Oct 2020 14:22:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 20D6E3985478 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1603981331; bh=4+zi2dtHEh2+pUE1UFd/G3k2ixogq+INDbXXSnMkK5k=; h=To:Subject:Date:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=KfH8pPjXy5jQ7CynoJsr4T2nxH72Jo7GSj1H6UNl+AYmw0wEQ682Qf0S+477fPZ8w uvWLjNjvE5p6MnDGouMFPrzP//KZDoZn2ffiTCKAGtXPgNbpsAwL+ujYAYeoha8VSz j7U5XcG758IY2pXS8mAvcyPDSx6alL0r5cDrmAHs= Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80072.outbound.protection.outlook.com [40.107.8.72]) by sourceware.org (Postfix) with ESMTPS id DB546385042A for ; Thu, 29 Oct 2020 14:22:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org DB546385042A Received: from AM6PR08CA0034.eurprd08.prod.outlook.com (2603:10a6:20b:c0::22) by DBBPR08MB5899.eurprd08.prod.outlook.com (2603:10a6:10:208::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.19; Thu, 29 Oct 2020 14:22:02 +0000 Received: from VE1EUR03FT003.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:c0:cafe::fb) by AM6PR08CA0034.outlook.office365.com (2603:10a6:20b:c0::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.18 via Frontend Transport; Thu, 29 Oct 2020 14:22:02 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;sourceware.org; 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; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT003.mail.protection.outlook.com (10.152.18.108) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3520.15 via Frontend Transport; Thu, 29 Oct 2020 14:22:01 +0000 Received: ("Tessian outbound c579d876a324:v64"); Thu, 29 Oct 2020 14:21:58 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: b83b03fc301ca7f8 X-CR-MTA-TID: 64aa7808 Received: from c318a23e9c29.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id E3B3748E-3F5F-4AAF-ACA0-A262CE496350.1; Thu, 29 Oct 2020 14:21:53 +0000 Received: from EUR03-DB5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id c318a23e9c29.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 29 Oct 2020 14:21:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=czP2R4gaMcGFgX9bQjpICIx2Vw0vOaAWisPzuQhmc6oEmGRWMwhtTlXHoanOTJY+m+fqMBLRi9JCRJAwEw0kjGyj/oK1Pt2GAXZFJRs6MvUHQOBJDWJYuIw2dmiamj/mfWZl8yITJECNRtRimjYuDSA8kVRXl/3631qPr7aciIv0RWWw1V8q+6hsLMXXUfmzJTLtVFdJIVza8sgasR2tubZEKWXLAyliuZlrGUgrgTF0JVbn3QWHg1eyraUsMgxpt6m5ebZeuQbfyIJVzBiFPovZzqH0h7whGZWNQ3WwJrIw/U5Me0RuCwJ9W/zMrKrdgu/kEoCkus3zc41I0ZGH3g== 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-SenderADCheck; bh=4+zi2dtHEh2+pUE1UFd/G3k2ixogq+INDbXXSnMkK5k=; b=hmAdOHM6TN1txXWyz+iJG/i16R4HFGP9Mhau9l3c0u+MhQ17y9MoCig7P76IHnBZAU4KxvOMDqIw+A0mOyAm67IAgrcvQ8hpza2Z6QDA+a7Zr8U4jUcg/7Mn9/TJoA0C9lq5yi7aeA/r2ezO3VPq00A+NMCgdFyAIgVY4bT7SRIIa9+mNps24vczhkhLlp6P90sAk/6hUVSaTxuFEQp0+1rRiiYjUnfRRHRIs39OvCEgoYRpaDiUmy2CHQpkI2+T4Fu4Ua8xYp3LBkM5DGEQobNZ6uMuex12IQZ0bqvYYPeu6HsJbF2D/aL2RFETFfYLw688M39pi6BkH2uYPVeHxA== 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 Received: from AM6PR08MB3957.eurprd08.prod.outlook.com (2603:10a6:20b:a2::14) by AS8PR08MB5990.eurprd08.prod.outlook.com (2603:10a6:20b:296::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.18; Thu, 29 Oct 2020 14:21:50 +0000 Received: from AM6PR08MB3957.eurprd08.prod.outlook.com ([fe80::e46d:da11:d7b9:7380]) by AM6PR08MB3957.eurprd08.prod.outlook.com ([fe80::e46d:da11:d7b9:7380%7]) with mapi id 15.20.3499.028; Thu, 29 Oct 2020 14:21:50 +0000 To: Luis Machado Subject: Re: [PATCH v2 12/24] AArch64: Implement memory tagging target methods for AArch64 Thread-Topic: [PATCH v2 12/24] AArch64: Implement memory tagging target methods for AArch64 Thread-Index: AQHWqK5Kk/pjur6HPU2SCgn71k9Y0qmurFIA Date: Thu, 29 Oct 2020 14:21:50 +0000 Message-ID: References: <20201022200014.5189-1-luis.machado@linaro.org> <20201022200014.5189-13-luis.machado@linaro.org> In-Reply-To: <20201022200014.5189-13-luis.machado@linaro.org> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3608.120.23.2.4) Authentication-Results-Original: linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=arm.com; x-originating-ip: [82.23.123.38] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 8448460d-eae0-470c-04e8-08d87c160086 x-ms-traffictypediagnostic: AS8PR08MB5990:|DBBPR08MB5899: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:348;OLM:348; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: hC9Ykr2vysZ0oY23bjlYKKKFvcV40/q2s0uZkjq4Insy5yU2bRdFFMHOM2BDHZvdjbaG0Qq0NTMw28FeHlhigCL5USESGPXy3ywZoYJqWFs9oJJloxdSkZkzzDZhEuOPpP9uzT75Juagrm2sG0yzZCSnqNEhnoj3lAp8IFxFlrc4deEPp8Oc29z7uQlGTogtpJjLAsiwaq7bgXdThAlniETvBJ0MephAQHyaLzhMc8b2O+aM4DhArZG+JXGLjaKV6+GbQSxuTa+gVaGfnvUyFSI0YRPwcqZNauX6JTxpd+mUsfQf1RHfI6dgjsBqbwPeTxFQpvmNyNoyvOXXbnzUwr0Gr9kAQ5YwIs2RnRSPxKxzYVQD6iTz2B+WJomriH78zrEcBNQWWd4NCuQm2MK0IXbupkPpOehG3n/710iOovNX0asHj11Pf/PkWIcPgLZx18nLBJyMRGg/fDL4KgFetw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR08MB3957.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(366004)(396003)(376002)(346002)(39850400004)(26005)(71200400001)(30864003)(8936002)(33656002)(186003)(478600001)(6916009)(2616005)(6486002)(316002)(4326008)(66556008)(83380400001)(36756003)(54906003)(6512007)(86362001)(5660300002)(2906002)(76116006)(91956017)(64756008)(66446008)(66476007)(53546011)(6506007)(66946007)(8676002)(2004002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: HMeQE8TORM2CbqVkWSPO3e2ixAyTL78ZERlh9st8q+7C2avM50NBu6ArWIFoXpmU9W8LUYaB1fqJN+x1NDSQxqyGhOQOcJHAUuIie7o8pXRlL0FJgz+IOTy0av4PHkCZcuGhOIagSLrRRuxhcwf6hp5cbz2eQqAHBcSR9EPrJ2l8sBk8tqyYbkUx5aa7awRCBCRCk5KpgRdJoOPZa+1OA/0sNDegLmYJwCpLbp7JvdbdUQ3VwjoKOjnw0gnhMArq1jJ3kBkbRvUaPYtnocpWtSFBrJtZV+I4kkXg7C9LwyJKFwMXuTqFGn4fvXNV6TgyvCIu/Gvu51X/4vh+pRYkNwOdT1SkskDyQtHO8GQt23Bk3Ofrh4hHS0CB5Xy18a0W+UuvNxpqEoV562aGawIl/1ebLoCkJ1qxQeShPXLCV8PkwTWzBCLjc7jOTSIKF5/nqlRxAlu9aGzMHrnkSR+TNELyXWLNxRFNS89PxCiq8ojodiqoJskc93OgmpETNXAcjL87//adpuVY3zdtr9ZJ36C/0tgAgRhbqxF4zksef+zQLMnHhZu1dKh539jfGKwnHSTlciq+GlZ+Prce/KUYnaibtYW+29uJbPm0xRG8Ywl5WZTwAqcyH08Yw62igoU3731kWA/nexzuVdVS3jD7vg== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <47D0FDFB6276424EB612F8A13654200D@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB5990 Original-Authentication-Results: linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT003.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: d4f7ef07-919a-4b6d-75f9-08d87c15fa4f X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: iIQFA5UbRaD5MacfD5SzdsJ8/11OpEPBaru03chjOLVv6+Z/rq3ytrdfjzX1gVT+zuJ5u0fb2syOMh7KJQvsFbpTs20+ecT8MIBximyffe+qdpHJ8moZyke0hFbgXcCxPg9Fz6zHOdH8GGn+2dqSfu1eVABXBXljQadIpdN4NMkCu+LeTRAVSsEhHooFKqziwUna4sWygGMwSTq37cem651qz27wr4IXMNqS5sbU3uj5hXl3nz4717SH/5RvP13FRspDQywU060kE5f25oFRkWm5WQbYZpBm4AXVHuTnDrw7bgWcXMylbqL3rit5wggOFWnJdfwvi6KFCaqWcB6p1dinkBwSbtQRlmvtksizEW04v4Kwv3NmBpltAyeciBXpQtxi/yKAf9O8Nc2L6VxZOL8sgU58fxVVmh8yRN+MtqGIhbRBYioHIZSsTPhQiUxDX0ZcQ1dQw+82lEU4Jddb8Nppc6/jxGUpyKhC7piefcTZhHsp76Sc7gX9xyrPiB9J 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:(4636009)(346002)(39860400002)(376002)(396003)(136003)(46966005)(4326008)(6862004)(33656002)(36756003)(86362001)(356005)(5660300002)(8676002)(81166007)(47076004)(83380400001)(82310400003)(70206006)(82740400003)(316002)(53546011)(6506007)(36906005)(26005)(6486002)(186003)(70586007)(478600001)(8936002)(2906002)(30864003)(54906003)(6512007)(336012)(2616005)(2004002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Oct 2020 14:22:01.0953 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8448460d-eae0-470c-04e8-08d87c160086 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: VE1EUR03FT003.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB5899 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Alan Hayward via Gdb-patches Reply-To: Alan Hayward Cc: "david.spickett@linaro.org" , nd , "gdb-patches\\@sourceware.org" Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" DQoNCj4gT24gMjIgT2N0IDIwMjAsIGF0IDIxOjAwLCBMdWlzIE1hY2hhZG8gPGx1aXMubWFjaGFk b0BsaW5hcm8ub3JnPiB3cm90ZToNCj4gDQo+IFVwZGF0ZXMgb24gdjI6DQo+IA0KPiAtIEFkZGVk IHR5cGUgcGFyYW1ldGVyIHRvIHRoZSB0YXJnZXQgbWV0aG9kIGltcGxlbWVudGF0aW9ucy4NCj4g DQo+IC0tDQo+IA0KPiBUaGUgcGF0Y2ggaW1wbGVtZW50cyB0aGUgbWVtb3J5IHRhZ2dpbmcgdGFy Z2V0IGhvb2tzIGZvciBBQXJjaDY0LCBzbyB3ZQ0KPiBjYW4gaGFuZGxlIE1URS4NCj4gDQo+IGdk Yi9DaGFuZ2VMb2c6DQo+IA0KPiBZWVlZLU1NLUREICBMdWlzIE1hY2hhZG8gIDxsdWlzLm1hY2hh ZG9AbGluYXJvLm9yZz4NCj4gDQo+IAkqIE1ha2VmaWxlLmluIChBTExfNjRfVEFSR0VUX09CUyk6 IEFkZCBhcmNoL2FhcmNoNjQtbXRlLWxpbnV4Lm8uDQo+IAkoSEZJTEVTX05PX1NSQ0RJUik6IEFk ZCBhcmNoL2FhcmNoNjQtbXRlLWxpbnV4LmggYW5kDQo+IAluYXQvYWFyY2g2NC1tdGUtbGludXgt cHRyYWNlLmguDQo+IAkqIGFhcmNoNjQtbGludXgtbmF0LmM6IEluY2x1ZGUgbmF0L2FhcmNoNjQt bXRlLWxpbnV4LXB0cmFjZS5oLg0KPiAJKGFhcmNoNjRfbGludXhfbmF0X3RhcmdldCkgPHN1cHBv cnRzX21lbW9yeV90YWdnaW5nPjogTmV3IG1ldGhvZA0KPiAJb3ZlcnJpZGUuDQo+IAk8ZmV0Y2hf bWVtdGFncz46IE5ldyBtZXRob2Qgb3ZlcnJpZGUuDQo+IAk8c3RvcmVfbWVtdGFncz46IE5ldyBt ZXRob2Qgb3ZlcnJpZGUuDQo+IAkoYWFyY2g2NF9saW51eF9uYXRfdGFyZ2V0OjpzdXBwb3J0c19t ZW1vcnlfdGFnZ2luZyk6IE5ldyBtZXRob2QuDQo+IAkoYWFyY2g2NF9saW51eF9uYXRfdGFyZ2V0 OjpmZXRjaF9tZW10YWdzKTogTmV3IG1ldGhvZC4NCj4gCShhYXJjaDY0X2xpbnV4X25hdF90YXJn ZXQ6OnN0b3JlX21lbXRhZ3MpOiBOZXcgbWV0aG9kLg0KPiAJKiBhcmNoL2FhcmNoNjQtbXRlLWxp bnV4LmM6IE5ldyBmaWxlLg0KPiAJKiBhcmNoL2FhcmNoNjQtbXRlLWxpbnV4Lmg6IEluY2x1ZGUg Z2Ric3VwcG9ydC9jb21tb24tZGVmcy5oLg0KPiAJKE1URV9HUkFOVUxFX1NJWkUpOiBEZWZpbmUu DQo+IAkoZ2V0X3RhZ19ncmFudWxlcyk6IE5ldyBwcm90b3R5cGUuDQo+IAkqIGNvbmZpZ3VyZS5u YXQgKE5BVERFUEZJTEVTKTogQWRkIG5hdC9hYXJjaDY0LW10ZS1saW51eC1wdHJhY2Uuby4NCj4g CSogY29uZmlndXJlLnRndCAoYWFyY2g2NCotKi1saW51eCopOiBBZGQgYXJjaC9hYXJjaDY0LW10 ZS1saW51eC5vLg0KPiAJKiBuYXQvYWFyY2g2NC1tdGUtbGludXgtcHRyYWNlLmM6IE5ldyBmaWxl Lg0KPiAJKiBuYXQvYWFyY2g2NC1tdGUtbGludXgtcHRyYWNlLmg6IE5ldyBmaWxlLg0KPiAtLS0N Cj4gZ2RiL01ha2VmaWxlLmluICAgICAgICAgICAgICAgICAgICB8ICAgMSArDQo+IGdkYi9hYXJj aDY0LWxpbnV4LW5hdC5jICAgICAgICAgICAgfCAgNTAgKysrKysrKysNCj4gZ2RiL2FyY2gvYWFy Y2g2NC1tdGUtbGludXguYyAgICAgICB8ICAzNCArKysrKw0KPiBnZGIvYXJjaC9hYXJjaDY0LW10 ZS1saW51eC5oICAgICAgIHwgIDEwICsrDQo+IGdkYi9jb25maWd1cmUubmF0ICAgICAgICAgICAg ICAgICAgfCAgIDMgKy0NCj4gZ2RiL2NvbmZpZ3VyZS50Z3QgICAgICAgICAgICAgICAgICB8ICAg MSArDQo+IGdkYi9uYXQvYWFyY2g2NC1tdGUtbGludXgtcHRyYWNlLmMgfCAyMDAgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysNCj4gZ2RiL25hdC9hYXJjaDY0LW10ZS1saW51eC1wdHJhY2Uu aCB8ICAxNyArKysNCj4gOCBmaWxlcyBjaGFuZ2VkLCAzMTUgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQ0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL2FyY2gvYWFyY2g2NC1tdGUtbGludXgu Yw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL25hdC9hYXJjaDY0LW10ZS1saW51eC1wdHJhY2Uu Yw0KPiANCj4gZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbg0K PiBpbmRleCA4YzllNmM5ZjZjLi4zM2EwOGEyMjg4IDEwMDY0NA0KPiAtLS0gYS9nZGIvTWFrZWZp bGUuaW4NCj4gKysrIGIvZ2RiL01ha2VmaWxlLmluDQo+IEBAIC02OTIsNiArNjkyLDcgQEAgQUxM XzY0X1RBUkdFVF9PQlMgPSBcDQo+IAlhbWQ2NC13aW5kb3dzLXRkZXAubyBcDQo+IAlhcmNoL2Fh cmNoNjQubyBcDQo+IAlhcmNoL2FhcmNoNjQtaW5zbi5vIFwNCj4gKwlhcmNoL2FhcmNoNjQtbXRl LWxpbnV4Lm8gXA0KPiAJYXJjaC9hbWQ2NC5vIFwNCj4gCWlhNjQtbGludXgtdGRlcC5vIFwNCj4g CWlhNjQtdGRlcC5vIFwNCj4gZGlmZiAtLWdpdCBhL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jIGIv Z2RiL2FhcmNoNjQtbGludXgtbmF0LmMNCj4gaW5kZXggZGVhMzRkYTY2OS4uNGVkZjVhMDQ1NCAx MDA2NDQNCj4gLS0tIGEvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMNCj4gKysrIGIvZ2RiL2FhcmNo NjQtbGludXgtbmF0LmMNCj4gQEAgLTUyLDYgKzUyLDggQEANCj4gDQo+ICNpbmNsdWRlICJhcmNo L2FhcmNoNjQtbXRlLWxpbnV4LmgiDQo+IA0KPiArI2luY2x1ZGUgIm5hdC9hYXJjaDY0LW10ZS1s aW51eC1wdHJhY2UuaCINCj4gKw0KPiAjaWZuZGVmIFRSQVBfSFdCS1BUDQo+ICNkZWZpbmUgVFJB UF9IV0JLUFQgMHgwMDA0DQo+ICNlbmRpZg0KPiBAQCAtMTAyLDYgKzEwNCwxNiBAQCBjbGFzcyBh YXJjaDY0X2xpbnV4X25hdF90YXJnZXQgZmluYWwgOiBwdWJsaWMgbGludXhfbmF0X3RhcmdldA0K PiAgICAgb3ZlcnJpZGU7DQo+IA0KPiAgIHN0cnVjdCBnZGJhcmNoICp0aHJlYWRfYXJjaGl0ZWN0 dXJlIChwdGlkX3QpIG92ZXJyaWRlOw0KPiArDQo+ICsgIGJvb2wgc3VwcG9ydHNfbWVtb3J5X3Rh Z2dpbmcgKCkgb3ZlcnJpZGU7DQo+ICsNCj4gKyAgLyogUmVhZCBtZW1vcnkgYWxsb2NhdGlvbiB0 YWdzIGZyb20gbWVtb3J5IHZpYSBQVFJBQ0UuICAqLw0KPiArICBpbnQgZmV0Y2hfbWVtdGFncyAo Q09SRV9BRERSIGFkZHJlc3MsIHNpemVfdCBsZW4sDQo+ICsJCSAgICAgZ2RiOjpieXRlX3ZlY3Rv ciAmdGFncywgaW50IHR5cGUpIG92ZXJyaWRlOw0KPiArDQo+ICsgIC8qIFdyaXRlIGFsbG9jYXRp b24gdGFncyB0byBtZW1vcnkgdmlhIFBUUkFDRS4gICovDQo+ICsgIGludCBzdG9yZV9tZW10YWdz IChDT1JFX0FERFIgYWRkcmVzcywgc2l6ZV90IGxlbiwNCj4gKwkJICAgICBjb25zdCBnZGI6OmJ5 dGVfdmVjdG9yICZ0YWdzLCBpbnQgdHlwZSkgb3ZlcnJpZGU7DQo+IH07DQo+IA0KPiBzdGF0aWMg YWFyY2g2NF9saW51eF9uYXRfdGFyZ2V0IHRoZV9hYXJjaDY0X2xpbnV4X25hdF90YXJnZXQ7DQo+ IEBAIC0xMDUwLDYgKzEwNjIsNDQgQEAgYWFyY2g2NF9saW51eF9uYXRfdGFyZ2V0Ojp0aHJlYWRf YXJjaGl0ZWN0dXJlIChwdGlkX3QgcHRpZCkNCj4gICByZXR1cm4gZ2RiYXJjaF9maW5kX2J5X2lu Zm8gKGluZm8pOw0KPiB9DQo+IA0KPiArLyogSW1wbGVtZW50IHRoZSAic3VwcG9ydHNfbWVtb3J5 X3RhZ2dpbmciIHRhcmdldF9vcHMgbWV0aG9kLiAgKi8NCj4gKw0KPiArYm9vbA0KPiArYWFyY2g2 NF9saW51eF9uYXRfdGFyZ2V0OjpzdXBwb3J0c19tZW1vcnlfdGFnZ2luZyAoKQ0KPiArew0KPiAr ICByZXR1cm4gKGxpbnV4X2dldF9od2NhcDIgKHRoaXMpICYgSFdDQVAyX01URSkgIT0gMDsNCj4g K30NCj4gKw0KPiArLyogSW1wbGVtZW50IHRoZSAiZmV0Y2hfbWVtdGFncyIgdGFyZ2V0X29wcyBt ZXRob2QuICAqLw0KPiArDQo+ICtpbnQNCj4gK2FhcmNoNjRfbGludXhfbmF0X3RhcmdldDo6ZmV0 Y2hfbWVtdGFncyAoQ09SRV9BRERSIGFkZHJlc3MsIHNpemVfdCBsZW4sDQo+ICsJCQkJCSBnZGI6 OmJ5dGVfdmVjdG9yICZ0YWdzLCBpbnQgdHlwZSkNCg0KSeKAmW0gYSBsaXR0bGUgdW5zdXJlIGFz IHRvIHdoZXJlIHRoZSB0eXBlIGlzIGNvbWluZyBmcm9tLiBXaG8gaW4gdGhlIGNhbGwgc3RhY2sN CmlzIGV4cGxpY2l0bHkgcGFzc2luZyB0aGUgdmFsdWUgMT8NCkl04oCZcyBkaWZmZXJlbnQgZnJv bSB0aGUgTE9HSUNBTCBhbmQgQUxMT0NBVElPTiBlbnVtIHZhbHVlcyB1c2VkIGVsc2V3aGVyZT8N Cg0KDQo+ICt7DQo+ICsgIGludCB0aWQgPSBpbmZlcmlvcl9wdGlkLmx3cCAoKTsNCj4gKw0KPiAr ICAvKiBBbGxvY2F0aW9uIHRhZ3M/ICAqLw0KPiArICBpZiAodHlwZSA9PSAxKQ0KPiArICAgIHJl dHVybiBhYXJjaDY0X210ZV9mZXRjaF9tZW10YWdzICh0aWQsIGFkZHJlc3MsIGxlbiwgdGFncyk7 DQo+ICsNCj4gKyAgcmV0dXJuIDE7DQo+ICt9DQo+ICsNCj4gKy8qIEltcGxlbWVudCB0aGUgInN0 b3JlX21lbXRhZ3MiIHRhcmdldF9vcHMgbWV0aG9kLiAgKi8NCj4gKw0KPiAraW50DQo+ICthYXJj aDY0X2xpbnV4X25hdF90YXJnZXQ6OnN0b3JlX21lbXRhZ3MgKENPUkVfQUREUiBhZGRyZXNzLCBz aXplX3QgbGVuLA0KPiArCQkJCQkgY29uc3QgZ2RiOjpieXRlX3ZlY3RvciAmdGFncywgaW50IHR5 cGUpDQo+ICt7DQo+ICsgIGludCB0aWQgPSBpbmZlcmlvcl9wdGlkLmx3cCAoKTsNCj4gKw0KPiAr ICAvKiBBbGxvY2F0aW9uIHRhZ3M/ICAqLw0KPiArICBpZiAodHlwZSA9PSAxKQ0KPiArICAgIHJl dHVybiBhYXJjaDY0X210ZV9zdG9yZV9tZW10YWdzICh0aWQsIGFkZHJlc3MsIGxlbiwgdGFncyk7 DQo+ICsNCj4gKyAgcmV0dXJuIDE7DQo+ICt9DQo+ICsNCj4gLyogRGVmaW5lIEFBcmNoNjQgbWFp bnRlbmFuY2UgY29tbWFuZHMuICAqLw0KPiANCj4gc3RhdGljIHZvaWQNCj4gZGlmZiAtLWdpdCBh L2dkYi9hcmNoL2FhcmNoNjQtbXRlLWxpbnV4LmMgYi9nZGIvYXJjaC9hYXJjaDY0LW10ZS1saW51 eC5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLmVlMTYyYWVm MTkNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nZGIvYXJjaC9hYXJjaDY0LW10ZS1saW51eC5j DQo+IEBAIC0wLDAgKzEsMzQgQEANCj4gKy8qIENvbW1vbiBMaW51eCB0YXJnZXQtZGVwZW5kZW50 IGZ1bmN0aW9uYWxpdHkgZm9yIEFBcmNoNjQgTVRFDQo+ICsNCj4gKyAgIENvcHlyaWdodCAoQykg MjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCj4gKw0KPiArICAgVGhpcyBmaWxl IGlzIHBhcnQgb2YgR0RCLg0KPiArDQo+ICsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KPiArICAgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkNCj4gKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yDQo+ICsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLg0KPiArDQo+ICsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCj4gKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQo+ICsgICBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQo+ICsgICBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KPiArDQo+ICsgICBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQ0KPiArICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLw0KPiArDQo+ICsjaW5jbHVkZSAiYXJjaC9h YXJjaDY0LW10ZS1saW51eC5oIg0KPiArDQo+ICsvKiBTZWUgYXJjaC9hYXJjaDY0LW10ZS1saW51 eC5oICovDQo+ICsNCj4gK3NpemVfdA0KPiArZ2V0X3RhZ19ncmFudWxlcyAoQ09SRV9BRERSIGFk ZHIsIHNpemVfdCBsZW4sIHNpemVfdCBncmFudWxlX3NpemUpDQo+ICt7DQo+ICsgIC8qIFN0YXJ0 IGFkZHJlc3MgKi8NCj4gKyAgQ09SRV9BRERSIHNfYWRkciA9IGFsaWduX2Rvd24gKGFkZHIsIGdy YW51bGVfc2l6ZSk7DQo+ICsgIC8qIEVuZCBhZGRyZXNzICovDQo+ICsgIENPUkVfQUREUiBlX2Fk ZHIgPSBhbGlnbl9kb3duIChhZGRyICsgbGVuLCBncmFudWxlX3NpemUpOw0KPiArDQo+ICsgIC8q IFdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IDEgZ3JhbnVsZS4gICovDQo+ICsgIHJldHVybiAxICsg KGVfYWRkciAtIHNfYWRkcikgLyBncmFudWxlX3NpemU7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9n ZGIvYXJjaC9hYXJjaDY0LW10ZS1saW51eC5oIGIvZ2RiL2FyY2gvYWFyY2g2NC1tdGUtbGludXgu aA0KPiBpbmRleCA0MTI0ZTgwNTQzLi5lNTU1ZjBhZjE5IDEwMDY0NA0KPiAtLS0gYS9nZGIvYXJj aC9hYXJjaDY0LW10ZS1saW51eC5oDQo+ICsrKyBiL2dkYi9hcmNoL2FhcmNoNjQtbXRlLWxpbnV4 LmgNCj4gQEAgLTIwLDYgKzIwLDggQEANCj4gI2lmbmRlZiBBUkNIX0FBUkNINjRfTElOVVhfSA0K PiAjZGVmaW5lIEFSQ0hfQUFSQ0g2NF9MSU5VWF9IDQo+IA0KPiArI2luY2x1ZGUgImdkYnN1cHBv cnQvY29tbW9uLWRlZnMuaCINCj4gKw0KPiAvKiBGZWF0dXJlIGNoZWNrIGZvciBNZW1vcnkgVGFn Z2luZyBFeHRlbnNpb24uICAqLw0KPiAjaWZuZGVmIEhXQ0FQMl9NVEUNCj4gI2RlZmluZSBIV0NB UDJfTVRFICAoMSA8PCAxOCkNCj4gQEAgLTI4LDQgKzMwLDEyIEBADQo+IC8qIFRoZSBNVEUgcmVn c2V0IGNvbnNpc3RzIG9mIGEgc2luZ2xlIDY0LWJpdCByZWdpc3Rlci4gICovDQo+ICNkZWZpbmUg QUFSQ0g2NF9MSU5VWF9TSVpFT0ZfTVRFIDgNCj4gDQo+ICsvKiBXZSBoYXZlIG9uZSB0YWcgcGVy IDE2IGJ5dGVzIG9mIG1lbW9yeS4gICovDQo+ICsjZGVmaW5lIE1URV9HUkFOVUxFX1NJWkUgMTYN Cj4gKw0KPiArLyogUmV0dXJuIHRoZSBudW1iZXIgb2YgdGFnIGdyYW51bGVzIGluIHRoZSBtZW1v cnkgcmFuZ2UNCj4gKyAgIFtBRERSLCBBRERSICsgTEVOKSBnaXZlbiBHUkFOVUxFX1NJWkUuICAq Lw0KPiArZXh0ZXJuIHNpemVfdCBnZXRfdGFnX2dyYW51bGVzIChDT1JFX0FERFIgYWRkciwgc2l6 ZV90IGxlbiwNCj4gKwkJCQlzaXplX3QgZ3JhbnVsZV9zaXplKTsNCj4gKw0KPiAjZW5kaWYgLyog QVJDSF9BQVJDSDY0X0xJTlVYX0ggKi8NCj4gZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUubmF0 IGIvZ2RiL2NvbmZpZ3VyZS5uYXQNCj4gaW5kZXggZWYyMjE4ZjBiOC4uZjk3M2NjN2Y5YiAxMDA2 NDQNCj4gLS0tIGEvZ2RiL2NvbmZpZ3VyZS5uYXQNCj4gKysrIGIvZ2RiL2NvbmZpZ3VyZS5uYXQN Cj4gQEAgLTIzNiw3ICsyMzYsOCBAQCBjYXNlICR7Z2RiX2hvc3R9IGluDQo+IAkJTkFUREVQRklM RVM9IiR7TkFUREVQRklMRVN9IGFhcmNoNjQtbGludXgtbmF0Lm8gXA0KPiAJCWFhcmNoMzItbGlu dXgtbmF0Lm8gbmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQubyBcDQo+IAkJbmF0L2FhcmNoNjQt bGludXgubyBcDQo+IC0JCW5hdC9hYXJjaDY0LXN2ZS1saW51eC1wdHJhY2UubyINCj4gKwkJbmF0 L2FhcmNoNjQtc3ZlLWxpbnV4LXB0cmFjZS5vIFwNCj4gKwkJbmF0L2FhcmNoNjQtbXRlLWxpbnV4 LXB0cmFjZS5vIg0KPiAJCTs7DQo+IAkgICAgYXJtKQ0KPiAJCSMgSG9zdDogQVJNIGJhc2VkIG1h Y2hpbmUgcnVubmluZyBHTlUvTGludXgNCj4gZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUudGd0 IGIvZ2RiL2NvbmZpZ3VyZS50Z3QNCj4gaW5kZXggZDg2NWVjZGNiNi4uMTFhMjZiODU1MSAxMDA2 NDQNCj4gLS0tIGEvZ2RiL2NvbmZpZ3VyZS50Z3QNCj4gKysrIGIvZ2RiL2NvbmZpZ3VyZS50Z3QN Cj4gQEAgLTEyNCw2ICsxMjQsNyBAQCBhYXJjaDY0Ki0qLWZyZWVic2QqKQ0KPiBhYXJjaDY0Ki0q LWxpbnV4KikNCj4gCSMgVGFyZ2V0OiBBQXJjaDY0IGxpbnV4DQo+IAlnZGJfdGFyZ2V0X29icz0i YWFyY2g2NC1saW51eC10ZGVwLm8gYXJjaC9hYXJjaDY0Lm9cDQo+ICsJCQlhcmNoL2FhcmNoNjQt bXRlLWxpbnV4Lm8gXA0KPiAJCQlhcmNoL2FybS5vIGFyY2gvYXJtLWxpbnV4Lm8gYXJjaC9hcm0t Z2V0LW5leHQtcGNzLm8gXA0KPiAJCQlhcm0tdGRlcC5vIGFybS1saW51eC10ZGVwLm8gXA0KPiAJ CQlnbGliYy10ZGVwLm8gbGludXgtdGRlcC5vIHNvbGliLXN2cjQubyBcDQo+IGRpZmYgLS1naXQg YS9nZGIvbmF0L2FhcmNoNjQtbXRlLWxpbnV4LXB0cmFjZS5jIGIvZ2RiL25hdC9hYXJjaDY0LW10 ZS1saW51eC1wdHJhY2UuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAw MDAwLi5mOTIwMjgxNzZkDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2RiL25hdC9hYXJjaDY0 LW10ZS1saW51eC1wdHJhY2UuYw0KPiBAQCAtMCwwICsxLDIwMCBAQA0KPiArLyogQ29tbW9uIExp bnV4IG5hdGl2ZSBwdHJhY2UgY29kZSBmb3IgQUFyY2g2NCBNVEUuDQo+ICsNCj4gKyAgIENvcHly aWdodCAoQykgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCj4gKw0KPiArICAg VGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLg0KPiArDQo+ICsgICBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KPiArICAg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkNCj4gKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yDQo+ICsgICAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLg0KPiArDQo+ICsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCj4gKyAgIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQo+ICsgICBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl DQo+ICsgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KPiAr DQo+ICsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQ0KPiArICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLw0KPiArDQo+ICsjaW5jbHVk ZSAiZ2Ric3VwcG9ydC9jb21tb24tZGVmcy5oIg0KPiArI2luY2x1ZGUgImdkYnN1cHBvcnQvYnl0 ZS12ZWN0b3IuaCINCj4gKw0KPiArI2luY2x1ZGUgImFyY2gvYWFyY2g2NC5oIg0KPiArI2luY2x1 ZGUgImFyY2gvYWFyY2g2NC1tdGUtbGludXguaCINCj4gKyNpbmNsdWRlICJuYXQvYWFyY2g2NC1s aW51eC5oIg0KPiArI2luY2x1ZGUgIm5hdC9hYXJjaDY0LW10ZS1saW51eC1wdHJhY2UuaCINCj4g Kw0KPiArI2luY2x1ZGUgImxpbnV4LXB0cmFjZS5oIg0KPiArI2luY2x1ZGUgPHN5cy91aW8uaD4N Cj4gKw0KPiArLyogSGVscGVyIGZ1bmN0aW9uIHRvIGRpc3BsYXkgdmFyaW91cyBwb3NzaWJsZSBl cnJvcnMgd2hlbiByZWFkaW5nDQo+ICsgICBNVEUgdGFncy4gICovDQo+ICsNCj4gK3N0YXRpYyB2 b2lkDQo+ICthYXJjaDY0X210ZV9saW51eF9wZWVrX2Vycm9yIChpbnQgZXJyb3IpDQo+ICt7DQo+ ICsgIHN3aXRjaCAoZXJyb3IpDQo+ICsgICAgew0KPiArICAgIGNhc2UgRUlPOg0KPiArICAgICAg cGVycm9yX3dpdGhfbmFtZSAoXygiUEVFS01URVRBR1Mgbm90IHN1cHBvcnRlZCIpKTsNCj4gKyAg ICAgIGJyZWFrOw0KPiArICAgIGNhc2UgRUZBVUxUOg0KPiArICAgICAgcGVycm9yX3dpdGhfbmFt ZSAoXygiQ291bGRuJ3QgZmV0Y2ggYWxsb2NhdGlvbiB0YWdzIikpOw0KPiArICAgICAgYnJlYWs7 DQo+ICsgICAgY2FzZSBFT1BOT1RTVVBQOg0KPiArICAgICAgcGVycm9yX3dpdGhfbmFtZSAoXygi UFJPVF9NRSBub3QgZW5hYmxlZCBmb3IgcmVxdWVzdGVkIGFkZHJlc3MiKSk7DQo+ICsgICAgZGVm YXVsdDoNCj4gKyAgICAgIHBlcnJvcl93aXRoX25hbWUgKF8oIlVua25vd24gTVRFIGVycm9yIikp Ow0KPiArICAgICAgYnJlYWs7DQo+ICsgICAgfQ0KPiArfQ0KPiArDQo+ICsvKiBIZWxwZXIgZnVu Y3Rpb24gdG8gZGlzcGxheSB2YXJpb3VzIHBvc3NpYmxlIGVycm9ycyB3aGVuIHdyaXRpbmcNCj4g KyAgIE1URSB0YWdzLiAgKi8NCj4gKw0KPiArc3RhdGljIHZvaWQNCj4gK2FhcmNoNjRfbXRlX2xp bnV4X3Bva2VfZXJyb3IgKGludCBlcnJvcikNCj4gK3sNCj4gKyAgc3dpdGNoIChlcnJvcikNCj4g KyAgICB7DQo+ICsgICAgY2FzZSBFSU86DQo+ICsgICAgICBwZXJyb3Jfd2l0aF9uYW1lIChfKCJQ T0tFTVRFVEFHUyBub3Qgc3VwcG9ydGVkIikpOw0KPiArICAgICAgYnJlYWs7DQo+ICsgICAgY2Fz ZSBFRkFVTFQ6DQo+ICsgICAgICBwZXJyb3Jfd2l0aF9uYW1lIChfKCJDb3VsZG4ndCBzdG9yZSBh bGxvY2F0aW9uIHRhZ3MiKSk7DQo+ICsgICAgICBicmVhazsNCj4gKyAgICBjYXNlIEVPUE5PVFNV UFA6DQo+ICsgICAgICBwZXJyb3Jfd2l0aF9uYW1lIChfKCJQUk9UX01FIG5vdCBlbmFibGVkIGZv ciByZXF1ZXN0ZWQgYWRkcmVzcyIpKTsNCj4gKyAgICBkZWZhdWx0Og0KPiArICAgICAgcGVycm9y X3dpdGhfbmFtZSAoXygiVW5rbm93biBNVEUgZXJyb3IiKSk7DQo+ICsgICAgICBicmVhazsNCj4g KyAgICB9DQo+ICt9DQo+ICsNCj4gKy8qIEhlbHBlciB0byBwcmVwYXJlIGEgdmVjdG9yIG9mIHRh Z3MgdG8gYmUgcGFzc2VkIG9uIHRvIHRoZSBrZXJuZWwuICBUaGUNCj4gKyAgIG1haW4gcHVycG9z ZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIHRvIG9wdGltaXplIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8N Cj4gKyAgIHB0cmFjZSBpZiB3ZSdyZSB3cml0aW5nIHRvbyBtYW55IHRhZ3MgYXQgb25jZSwgbGlr ZSBhIHBhdHRlcm4gZmlsbA0KPiArICAgcmVxdWVzdC4NCj4gKw0KPiArICAgUmV0dXJuIGEgdmVj dG9yIG9mIHRhZ3Mgb2YgdXAgdG8gTUFYX1NJWkUgc2l6ZSwgY29udGFpbmluZyB0aGUgdGFncyB0 aGF0DQo+ICsgICBtdXN0IGJlIHBhc3NlZCBvbiB0byB0aGUga2VybmVsLCBleHRyYWN0ZWQgZnJv bSBUQUdTLCBzdGFydGluZyBhdCBQT1MuDQo+ICsgICBHUkFOVUxFUyBpcyB0aGUgbnVtYmVyIG9m IHRhZyBncmFudWxlcyB0byBiZSBtb2RpZmllZC4gICovDQo+ICsNCj4gK3N0YXRpYyBnZGI6OmJ5 dGVfdmVjdG9yDQo+ICtwcmVwYXJlX3RhZ192ZWN0b3IgKHNpemVfdCBncmFudWxlcywgY29uc3Qg Z2RiOjpieXRlX3ZlY3RvciAmdGFncywgc2l6ZV90IHBvcywNCj4gKwkJICAgIHNpemVfdCBtYXhf c2l6ZSkNCj4gK3sNCj4gKyAgZ2RiOjpieXRlX3ZlY3RvciB0Ow0KPiArDQo+ICsgIGlmIChncmFu dWxlcyA9PSAwKQ0KPiArICAgIHsNCj4gKyAgICAgIHQuY2xlYXIgKCk7DQo+ICsgICAgICByZXR1 cm4gdDsNCj4gKyAgICB9DQo+ICsNCj4gKyAgZ2RiX2Fzc2VydCAodGFncy5zaXplICgpID4gMCAm JiBtYXhfc2l6ZSA+IDApOw0KPiArDQo+ICsgIGlmIChncmFudWxlcyA+IFRBR1NfTUFYX1NJWkUp DQo+ICsgICAgdC5yZXNpemUgKFRBR1NfTUFYX1NJWkUpOw0KPiArICBlbHNlDQo+ICsgICAgdC5y ZXNpemUgKGdyYW51bGVzKTsNCj4gKw0KPiArICBzaXplX3QgdGFnX2NvdW50ID0gdGFncy5zaXpl ICgpOw0KPiArDQo+ICsgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdC5zaXplICgpOyBpKyspDQo+ ICsgICAgdFtpXSA9IHRhZ3NbKHBvcyArIGkpICUgdGFnX2NvdW50XTsNCj4gKw0KPiArICByZXR1 cm4gdDsNCj4gK30NCj4gKw0KPiArLyogU2VlIG5hdC9hYXJjaDY0LW10ZS1saW51eC1wdHJhY2Uu aCAqLw0KPiArDQo+ICtpbnQNCj4gK2FhcmNoNjRfbXRlX2ZldGNoX21lbXRhZ3MgKGludCB0aWQs IENPUkVfQUREUiBhZGRyZXNzLCBzaXplX3QgbGVuLA0KPiArCQkJICAgZ2RiOjpieXRlX3ZlY3Rv ciAmdGFncykNCj4gK3sNCj4gKyAgc2l6ZV90IG50YWdzID0gZ2V0X3RhZ19ncmFudWxlcyAoYWRk cmVzcywgbGVuLCBNVEVfR1JBTlVMRV9TSVpFKTsNCj4gKyAgZ2RiX2J5dGUgdGFnYnVmW250YWdz XTsNCj4gKw0KPiArICBzdHJ1Y3QgaW92ZWMgaW92ZWM7DQo+ICsgIGlvdmVjLmlvdl9iYXNlID0g dGFnYnVmOw0KPiArICBpb3ZlYy5pb3ZfbGVuID0gbnRhZ3M7DQo+ICsNCj4gKyAgdGFncy5jbGVh ciAoKTsNCj4gKyAgYm9vbCBkb25lX3JlYWRpbmcgPSBmYWxzZTsNCj4gKw0KPiArICAvKiBUaGUg a2VybmVsIG1heSByZXR1cm4gbGVzcyB0YWdzIHRoYW4gd2UgcmVxdWVzdGVkLiAgTG9vcCB1bnRp bCB3ZSd2ZSByZWFkDQo+ICsgICAgIGFsbCB0aGUgcmVxdWVzdGVkIHRhZ3Mgb3IgdW50aWwgd2Ug Z2V0IGFuIGVycm9yLiAgKi8NCj4gKyAgd2hpbGUgKCFkb25lX3JlYWRpbmcpDQo+ICsgICAgew0K PiArICAgICAgLyogQXR0ZW1wdCB0byByZWFkIG50YWdzIGFsbG9jYXRpb24gdGFncyBmcm9tIHRo ZSBrZXJuZWwuICAqLw0KPiArICAgICAgaWYgKHB0cmFjZSAoUFRSQUNFX1BFRUtNVEVUQUdTLCB0 aWQsIGFkZHJlc3MsICZpb3ZlYykgPCAwKQ0KPiArCWFhcmNoNjRfbXRlX2xpbnV4X3BlZWtfZXJy b3IgKGVycm5vKTsNCj4gKw0KPiArICAgICAgLyogTWFrZSBzdXJlIHRoZSBrZXJuZWwgcmV0dXJu ZWQgYXQgbGVhc3Qgb25lIHRhZy4gICovDQo+ICsgICAgICBpZiAoaW92ZWMuaW92X2xlbiA8PSAw KQ0KPiArCXsNCj4gKwkgIHRhZ3MuY2xlYXIgKCk7DQo+ICsJICByZXR1cm4gMTsNCj4gKwl9DQo+ ICsNCj4gKyAgICAgIC8qIENvcHkgdGhlIHRhZ3MgdGhlIGtlcm5lbCByZXR1cm5lZC4gICovDQo+ ICsgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlvdmVjLmlvdl9sZW47IGkrKykNCj4gKwl0 YWdzLnB1c2hfYmFjayAodGFnYnVmW2ldKTsNCj4gKw0KPiArICAgICAgLyogQXJlIHdlIGRvbmUg cmVhZGluZyB0YWdzPyAgKi8NCj4gKyAgICAgIGlmICh0YWdzLnNpemUgKCkgPT0gbnRhZ3MpDQo+ ICsJZG9uZV9yZWFkaW5nID0gdHJ1ZTsNCj4gKyAgICAgIGVsc2UNCj4gKwl7DQo+ICsJICBhZGRy ZXNzICs9IGlvdmVjLmlvdl9sZW4gKiBNVEVfR1JBTlVMRV9TSVpFOw0KPiArCSAgaW92ZWMuaW92 X2xlbiA9IG50YWdzIC0gaW92ZWMuaW92X2xlbjsNCj4gKwl9DQo+ICsgICAgfQ0KPiArICByZXR1 cm4gMDsNCj4gK30NCj4gKw0KPiArLyogU2VlIG5hdC9hYXJjaDY0LW10ZS1saW51eC1wdHJhY2Uu aCAqLw0KPiArDQo+ICtpbnQNCj4gK2FhcmNoNjRfbXRlX3N0b3JlX21lbXRhZ3MgKGludCB0aWQs IENPUkVfQUREUiBhZGRyZXNzLCBzaXplX3QgbGVuLA0KPiArCQkJICAgY29uc3QgZ2RiOjpieXRl X3ZlY3RvciAmdGFncykNCj4gK3sNCj4gKyAgaWYgKHRhZ3Muc2l6ZSAoKSA9PSAwKQ0KPiArICAg IHJldHVybiAwOw0KPiArDQo+ICsgIC8qIEdldCB0aGUgbnVtYmVyIG9mIHRhZ3Mgd2UgbmVlZCB0 byB3cml0ZS4gICovDQo+ICsgIHNpemVfdCBudGFncyA9IGdldF90YWdfZ3JhbnVsZXMgKGFkZHJl c3MsIGxlbiwgTVRFX0dSQU5VTEVfU0laRSk7DQo+ICsgIGJvb2wgZG9uZV93cml0aW5nID0gZmFs c2U7DQo+ICsgIHNpemVfdCB0YWdzX3dyaXR0ZW4gPSAwOw0KPiArDQo+ICsgIC8qIFdyaXRlIGFs bCB0aGUgdGFncywgVEFHU19NQVhfU0laRSBibG9ja3MgYXQgYSB0aW1lLiAgKi8NCj4gKyAgd2hp bGUgKCFkb25lX3dyaXRpbmcpDQo+ICsgICAgew0KPiArICAgICAgZ2RiOjpieXRlX3ZlY3RvciB0 ID0gcHJlcGFyZV90YWdfdmVjdG9yIChudGFncyAtIHRhZ3Nfd3JpdHRlbiwgdGFncywNCj4gKwkJ CQkJICAgICAgIHRhZ3Nfd3JpdHRlbiwgVEFHU19NQVhfU0laRSk7DQo+ICsNCj4gKyAgICAgIHN0 cnVjdCBpb3ZlYyBpb3ZlYzsNCj4gKyAgICAgIGlvdmVjLmlvdl9iYXNlID0gdC5kYXRhICgpOw0K PiArICAgICAgaW92ZWMuaW92X2xlbiA9IHQuc2l6ZSAoKTsNCj4gKw0KPiArICAgICAgLyogUmVx dWVzdCB0aGUga2VybmVsIHRvIHVwZGF0ZSB0aGUgYWxsb2NhdGlvbiB0YWdzLiAgKi8NCj4gKyAg ICAgIGlmIChwdHJhY2UgKFBUUkFDRV9QT0tFTVRFVEFHUywgdGlkLCBhZGRyZXNzLCAmaW92ZWMp IDwgMCkNCj4gKwlhYXJjaDY0X210ZV9saW51eF9wb2tlX2Vycm9yIChlcnJubyk7DQo+ICsNCj4g KyAgICAgIC8qIE1ha2Ugc3VyZSB0aGUga2VybmVsIHdyb3RlIGF0IGxlYXN0IG9uZSB0YWcuICAq Lw0KPiArICAgICAgaWYgKGlvdmVjLmlvdl9sZW4gPD0gMCkNCj4gKwlyZXR1cm4gMTsNCj4gKw0K PiArICAgICAgdGFnc193cml0dGVuICs9IGlvdmVjLmlvdl9sZW47DQo+ICsNCj4gKyAgICAgIC8q IEFyZSB3ZSBkb25lIHdyaXRpbmcgdGFncz8gICovDQo+ICsgICAgICBpZiAodGFnc193cml0dGVu ID09IG50YWdzKQ0KPiArCWRvbmVfd3JpdGluZyA9IHRydWU7DQo+ICsgICAgICBlbHNlDQo+ICsJ YWRkcmVzcyArPSBpb3ZlYy5pb3ZfbGVuICogTVRFX0dSQU5VTEVfU0laRTsNCj4gKyAgICB9DQo+ ICsNCj4gKyAgcmV0dXJuIDA7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nZGIvbmF0L2FhcmNoNjQt bXRlLWxpbnV4LXB0cmFjZS5oIGIvZ2RiL25hdC9hYXJjaDY0LW10ZS1saW51eC1wdHJhY2UuaA0K PiBpbmRleCAwOTliNjQ0MGNhLi43YmE2ZjAxNGY2IDEwMDY0NA0KPiAtLS0gYS9nZGIvbmF0L2Fh cmNoNjQtbXRlLWxpbnV4LXB0cmFjZS5oDQo+ICsrKyBiL2dkYi9uYXQvYWFyY2g2NC1tdGUtbGlu dXgtcHRyYWNlLmgNCj4gQEAgLTMwLDQgKzMwLDIxIEBADQo+ICNkZWZpbmUgUFRSQUNFX1BPS0VN VEVUQUdTCSAgMzQNCj4gI2VuZGlmDQo+IA0KPiArLyogTWF4aW11bSBudW1iZXIgb2YgdGFncyB0 byBwYXNzIGF0IG9uY2UgdG8gdGhlIGtlcm5lbC4gICovDQo+ICsjZGVmaW5lIFRBR1NfTUFYX1NJ WkUgNDA5Ng0KPiArDQo+ICsvKiBSZWFkIHRoZSBhbGxvY2F0aW9uIHRhZ3MgZnJvbSBtZW1vcnkg cmFuZ2UgW0FERFJFU1MsIEFERFJFU1MgKyBMRU4pDQo+ICsgICBpbnRvIFRBR1MuDQo+ICsNCj4g KyAgIFJldHVybiAwIGlmIHN1Y2Nlc3NmdWwgYW5kIG5vbi16ZXJvIG90aGVyd2lzZS4gICovDQo+ ICtleHRlcm4gaW50IGFhcmNoNjRfbXRlX2ZldGNoX21lbXRhZ3MgKGludCB0aWQsIENPUkVfQURE UiBhZGRyZXNzLCBzaXplX3QgbGVuLA0KPiArCQkJCSAgICAgIGdkYjo6Ynl0ZV92ZWN0b3IgJnRh Z3MpOw0KPiArDQo+ICsvKiBXcml0ZSB0aGUgVEFHUyBhbGxvY2F0aW9uIHRhZ3MgdG8gdGhlIG1l bW9yeSByYW5nZQ0KPiArICAgW0FERFJFU1MsIEFERFJFU1MgKyBMRU4pLg0KPiArDQo+ICsgICBS ZXR1cm4gMCBpZiBzdWNjZXNzZnVsIGFuZCBub24temVybyBvdGhlcndpc2UuICAqLw0KPiArZXh0 ZXJuIGludCBhYXJjaDY0X210ZV9zdG9yZV9tZW10YWdzIChpbnQgdGlkLCBDT1JFX0FERFIgYWRk cmVzcywgc2l6ZV90IGxlbiwNCj4gKwkJCQkgICAgICBjb25zdCBnZGI6OmJ5dGVfdmVjdG9yICZ0 YWdzKTsNCj4gKw0KPiAjZW5kaWYgLyogTkFUX0FBUkNINjRfTVRFX0xJTlVYX1BUUkFDRV9IICov DQo+IC0tIA0KPiAyLjE3LjENCj4gDQoNCg==