From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8240FC47422 for ; Thu, 25 Jan 2024 18:39:08 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3A32410F06F; Thu, 25 Jan 2024 18:39:08 +0000 (UTC) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) by gabe.freedesktop.org (Postfix) with ESMTPS id A8FB710F06F for ; Thu, 25 Jan 2024 18:39:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1706207947; x=1737743947; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=wMELZjjJ1MCoR/Tyr2+NQ1pY70HZZLP7p4XhXVKvvm4=; b=OHIAWDfbKF4FBNpM9OX5ORO/Mgcm4pQMm/ReGJ3vx5f2PnfMw2OkOFQd vKrWd+to3DaRWfkUfOi4XBa60Oh+emdVbjo9T3E1G59PkOo8kPXQTu8zK N7pK7G5cR2t1loUKGLnbv9AAJUKmDkh3LTxmbvaPHd0d4zrpZXfbIFTe4 MWPotrWMnmnS0h+jVHnLp3rBFSoYnKp1r0D1lo1lk9tPjPFsFwJze46B2 +v7egapihV7tFjklaYD2NTRCEhOlANAZ2fssWeTa2nXt/SCWdtUQcB5i8 7Txv2dSk9Y6BJQtAP6T3q1p6gTrMtBkxOjLDhMPPAL5QaxiuMQAfMGyRh Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10964"; a="2148173" X-IronPort-AV: E=Sophos;i="6.05,216,1701158400"; d="scan'208";a="2148173" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jan 2024 10:39:05 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.05,216,1701158400"; d="scan'208";a="28570111" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orviesa002.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 25 Jan 2024 10:39:06 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 25 Jan 2024 10:39:05 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 25 Jan 2024 10:39:04 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Thu, 25 Jan 2024 10:39:04 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.101) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Thu, 25 Jan 2024 10:39:04 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TjUM9/UVJyJS8BhLfrRlE6HhhR6nBC6FVN1ikMVGahxSlWuusfMBBKhyoJLKgPbzewAuwXcYdRby4yETVAQut53qh029uvoKgUyOabO8LlcoLrqnvU+9jw6+oHaUjf7O3ayPKPBqpBu3soZNpZiEaN0B7sXWQhdwpPpNAbgGRFb4ycboNyavybyN2g9MGSo9NMYXDZ+Rupzxdq1iMfqsOJieCwvekrZidA8XHYX6aEqSdGWFcGFdLLttOq68B9MYDQWOHRKwObmzLiFTfCbgLcwmzMXQI5rJUVAx0gmHYzCEhiAwAtM500zF4zvQo7IK63wRIg82nyvt2GeeN1Gb9w== 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=wMELZjjJ1MCoR/Tyr2+NQ1pY70HZZLP7p4XhXVKvvm4=; b=m9ldl+VBaP1+F+Ha3RNYIxyxIUVKkL+uKKvezdAr5hb2ZE6floXYHVHPYfbpC7zqvpvBg3omdYrOCVsV539WJg9tXikuw8UQkdvpz72ZumtRvD4aD7ABce3WXzVSI5xtLyjZ3Wx4uogvgEpV7r5uBTBuTBaaHhZiP73BI+oMe1iEIfuXB1xXCOEMZipC5fm0a0CRrc/+S1QJNHY7bjX7FRWybENcGvd50d9KCcZWIkb2BZy5LclxHcGE2D4IF6HLsRFzRHAOduhZ1Kvgjze9cU6rFhVeKfTq/ScWckp7wKyla3drrgml5v9FhaXfgnt5CJutQRnrF2nQlGEJdjoN2w== 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 DM4PR11MB8179.namprd11.prod.outlook.com (2603:10b6:8:18e::22) by PH7PR11MB7051.namprd11.prod.outlook.com (2603:10b6:510:20e::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.22; Thu, 25 Jan 2024 18:39:01 +0000 Received: from DM4PR11MB8179.namprd11.prod.outlook.com ([fe80::98c3:e090:252e:7967]) by DM4PR11MB8179.namprd11.prod.outlook.com ([fe80::98c3:e090:252e:7967%4]) with mapi id 15.20.7202.034; Thu, 25 Jan 2024 18:39:01 +0000 From: "Souza, Jose" To: "intel-xe@lists.freedesktop.org" , "maarten.lankhorst@linux.intel.com" Subject: Re: [PATCH 4/4] drm/xe: Implement VM snapshot support for BO's and userptr, v2. Thread-Topic: [PATCH 4/4] drm/xe: Implement VM snapshot support for BO's and userptr, v2. Thread-Index: AQHaTubsjml267hMSkqo2okdo3HxX7Dq3baA Date: Thu, 25 Jan 2024 18:39:01 +0000 Message-ID: References: <20240124165245.2660-1-maarten.lankhorst@linux.intel.com> <20240124165245.2660-4-maarten.lankhorst@linux.intel.com> In-Reply-To: <20240124165245.2660-4-maarten.lankhorst@linux.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR11MB8179:EE_|PH7PR11MB7051:EE_ x-ms-office365-filtering-correlation-id: 77013d16-d63d-4f35-0434-08dc1dd4e670 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: iXJp2WoPT6ZrcpeH0mVUhFVGW7j3+s2WeeOD5nwbJP123cFElo7majpb2GD1IJ+wA6X61inYdyjCJ4YRRcgjoKqmCih+EOnuLOZFUCh9lToQ6kLiCYHWNq1PpRCS0tisVOe2Pf2FFv5XTxE1Sh3vlSRe7wHZ8qxENWESkBmYobb2KjQ5H1zb4uLxudCMcDF2Qo0SXCGc1yEP7cJxrIno9DzpgyZr5D0dtB6W9MaIQIhWqycTzly7dVwOFQkNp9UstfX2ix/oNyyJX3BEKrbmWA2LZ6lRQbtS5bZPopGZcVMiYEC48tcyQMKWLFAkXQp6rz8pSdzrP3Pdm2nu5UUD3geP9l6SDu2tyrd8WCB+AxY807H5PZvF9BVbVRsSHn3M3rQd/WD9zkx8dlxOvfM1wSjV8N2Gp9mKSK4HANWJIXH6E5WHYicyKiniIwCQ0JEb7jeuiF8/aDtYPbvIY/aKTGeERPmfamHSkgKlRQRXU1RQwKgs0jc9LrGbnYM3bqMgVnSwp/8z5+xy2rjX6fejiXdtVXk5ivrRWmeK1tB6tFXN/jdonY8J15lFYnZlqaIVB0nwHV3oTGVWy/N2Xzxf4NJop2X42jvI/FZ5483l+lkh2MlZrcK9tNznZXrV8FP0fDJ38x9U2DXN06/K9uO/NAx7HxbGT9ImhQyFyDaL6cM= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB8179.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(396003)(366004)(39860400002)(376002)(346002)(136003)(230173577357003)(230922051799003)(230273577357003)(64100799003)(186009)(1800799012)(451199024)(66476007)(66556008)(82960400001)(38100700002)(6486002)(122000001)(478600001)(71200400001)(38070700009)(6506007)(86362001)(36756003)(41300700001)(26005)(8676002)(8936002)(2616005)(316002)(76116006)(5660300002)(66946007)(64756008)(66446008)(6512007)(2906002)(83380400001)(30864003)(110136005)(45080400002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TitGVHpCWEQwZVN0Y24xbUgyYmhucHdlT0YzWmc2MHZLMkI4cjIwSk05ejhq?= =?utf-8?B?Mnkrb2FMWGhPUU9samFwcndaZjEreVN1bk5iQzNUN1drbXlURlpEc3hpVmMz?= =?utf-8?B?dkYxNVJlT3hlY1IvOUc1ZS9jVitUcVgzWFhXcU1wZTl6VW5oNFBlVVhlMzNH?= =?utf-8?B?TDBBWUJLcHE5OWFPRVU1eUxvVnJJbjVHWVNRak01STc1MHBqZk1TMTRVbnhO?= =?utf-8?B?cnd4V0hMVXJPWjJzN0p1S3VUaURNUDVPbEYxc1VZd0tXT3o4ODcyUlU5UE9x?= =?utf-8?B?eHQrSDVEODRxR2ZLdGFad2dMMklVcGk3VnNZTTZZdlNTVGlkVkU4bHA4OFM0?= =?utf-8?B?SGkzK1dXUkU1bUI0cEFxUTJTbmx1aDRDOWJvbXNUK3Q2d0VzaVFFN0I0MENk?= =?utf-8?B?L1hqRUMyYkFHUUpSQk9RVFlqa2tYZjNDSi9yd1ByeTQ0OGhJYXV1dWNQUzNo?= =?utf-8?B?SDFLQTNxQ1B6RHN4YmZxc3ZCYnRTUlZTaENtaDd2Ymh2c3F1MDZUd0hFNmZx?= =?utf-8?B?c2pudStYQUpNT3VpVEtEM3Z4YmdablR6UGZYd2VWbEhMSC81WWQ1ZTFPQmNh?= =?utf-8?B?N0lieVZHeExwR2Nib0ZRRzFKcVhCaHNjYXFNK1hxbEtvQlRHbjcvYXp4Z0hT?= =?utf-8?B?U09DaXRwb09NbWNoMEVnWmQzYmp3ZGdvSmxIUzY0OSszMXFmOWlMeFBMTGhj?= =?utf-8?B?TkZiUm9LS3pERUZLa1pNN2pVSy9udmsrVnZxWFF1TGkrWTU2c1YwLzh1OU5u?= =?utf-8?B?ZGMxNVg4cTN4c2dSU3BTVDZ4V0lCaTVSVzZsUWU2MUtmYmR6MU9penEvSU9r?= =?utf-8?B?QXV4c3FtR3pyZDBOYmVSSm14eWZGbldIV1JtUHUydXlDdlloaFZkdVQyc1Zu?= =?utf-8?B?T2JmUGw4NURQalhaa2QzMnVsdmhVVC91WHBlQzNKSUVGMTVhRnM1VzRDVys5?= =?utf-8?B?QVJaSXNjVzZBYWllbkFoU3lPckZ4NERIM1RXTjFFSFNydGppZmYxQkFzRG45?= =?utf-8?B?WlVDdk54aU9QdnkzcGVQeGJ2eTdFVHlJTjZubmpoWWlsNk1IN0dpZHRGa0xz?= =?utf-8?B?V2QxTGVzV01oSDExV04xcGxDaTlyaGVZQUlIcDc2elFtaUR6SUNSL1FaYk5J?= =?utf-8?B?M0tTTHk5YU5HVVBYVDcxeVA2RHR4NjlDNzRrQzhpMHdVc2psallRT0FDc01U?= =?utf-8?B?czRTOWlGdjNkRWFyNytaWEhjUjZxcVBXdFdxUjU4T3E2R2FuQUtBdU9rc2JT?= =?utf-8?B?L1RSNTA4U2U0YTBUbUVhM0JkdHI3cmhlQU1jY09VeWd5NHhiclBvQWE1RVls?= =?utf-8?B?cWtBdDZJZG90bFlCaVdMM3p1MGJDTExHaCtLNldDWXNnano0amdBL3A1RzRK?= =?utf-8?B?V291T3Yrand4dlp0akpyeG9zWXFDaEE2SXdER1hJaWFlTTBkNVI2VXlCZmNM?= =?utf-8?B?SHNPMU5wSFd2OFcxYUVnaDZiU2o2SGhqVmVRbHFZWGNqck13MCtYYVQ4ZCtl?= =?utf-8?B?NkdSM25SOUU1bTdqM3VSbkVMNmYxTldxY1dlR1lQOXRkTlpxVU5DNUErbzdD?= =?utf-8?B?S3JsaEQvNkN3T0FOeURRTVNrVVlIZ1gwRC83MG1zaXpjQzJaZFF4Z3oyZkxr?= =?utf-8?B?d24vWjZoWEt6OVFna3pmZnQxMW0yV25IUi9mNmt1YWpLU3Y4OVNMcllYdUVm?= =?utf-8?B?NFdmOEVjY2R0VmlBQ1lVZjNraGlWdmNBV3hyaHVHalk4TUJBbCtON3J5VGJQ?= =?utf-8?B?RmtaZmlZdFliV0FIdnpHNTNPa2p2VkxSY3htQ1ZpNGVua0FnSTBvQk1Db0l3?= =?utf-8?B?Tjc4RTlTMmd0Y2hUZUcrbDFHQ3Rna09TblRSbzh4MDkvT1ZqMFdGMkNhYVFI?= =?utf-8?B?bU1JTHNvdnNwWEFySG0xNjFXQUljRXdUVVpFRk05TmlGalFyTUlJREhqQlhj?= =?utf-8?B?ZjU1Wm1Wb2ZiR2lzZ2hOSG94aEtFeUFOdDdnRnVqZkNPdGpyckJPZlVzTTZF?= =?utf-8?B?UHNKck1NN2tpNE1MM0dLTXg3UDI2dGx2TWo2RDk5UU9OUzBOdWd1c3hiVjQx?= =?utf-8?B?MUhST1RVaDZyWGVPR25GK3BZWFJRc0EzT3htMEMzOTFTNG9TbXhyeTNhVVNq?= =?utf-8?B?QTRNOU9JcDFPMDlKeDNKNVJ0WUVYcmwyL1lDNXpBZTcxQkxFVWdEUTVQMi80?= =?utf-8?B?cmc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB8179.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 77013d16-d63d-4f35-0434-08dc1dd4e670 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jan 2024 18:39:01.5780 (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: PfLPsjYFcqvnOhjJiz67HVpQefPHvF5EPhz0XlwODqpq+sCqGsSg3SH7wGJ3d/Ur7gPpoUYBwxsVF/s8zbqM3w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB7051 X-OriginatorOrg: intel.com X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" T24gV2VkLCAyMDI0LTAxLTI0IGF0IDE3OjUyICswMTAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90 ZToNCj4gU2luY2Ugd2UgY2Fubm90IGltbWVkaWF0ZWx5IGNhcHR1cmUgdGhlIEJPJ3MgYW5kIHVz ZXJwdHIsIHBlcmZvcm0gaXQgaW4NCj4gMiBzdGFnZXMuIFRoZSBpbW1lZGlhdGUgc3RhZ2UgdGFr ZXMgYSByZWZlcmVuY2UgdG8gZWFjaCBCTyBhbmQgdXNlcnB0ciwNCj4gd2hpbGUgYSBkZWxheWVk IHdvcmtlciBjYXB0dXJlcyB0aGUgY29udGVudHMgYW5kIHRoZW4gZnJlZXMgdGhlDQo+IHJlZmVy ZW5jZS4NCj4gDQo+IFRoaXMgaXMgcmVxdWlyZWQgYmVjYXVzZSBpbiBzaWduYWxpbmcgY29udGV4 dCwgbm8gbG9ja3MgY2FuIGJlIHRha2VuLCBubw0KPiBtZW1vcnkgY2FuIGJlIGFsbG9jYXRlZCwg YW5kIG5vIHdhaXRzIG9uIHVzZXJzcGFjZSBjYW4gYmUgcGVyZm9ybWVkLg0KPiANCj4gV2l0aCB0 aGUgZGVsYXllZCB3b3JrZXIsIGFsbCBvZiB0aGlzIGNhbiBiZSBwZXJmb3JtZWQgdmVyeSBlYXNp bHksDQo+IHdpdGhvdXQgaGF2aW5nIHRvIHJlc29ydCB0byBoYWNrcy4NCj4gDQo+IENoYW5nZXMg c2luY2UgdjE6DQo+IC0gRml4IGNyYXNoIG9uIE5VTEwgY2FwdHVyZWQgdm0uDQo+IC0gVXNlIGFz Y2lpODVfZW5jb2RlIHRvIGNhcHR1cmUgQk8gY29udGVudHMgYW5kIHNhdmUgc29tZSBzcGFjZS4g KEpvc2UNCj4gICBTb3V6YSkNCj4gLSBBZGQgbGVuZ3RoIHRvIGNvcmVkdW1wIG91dHB1dCBmb3Ig ZWFjaCBjYXB0dXJlZCBhcmVhLg0KDQpbICAyMjIuNDc0ODczXSB4ZSAwMDAwOjAwOjAyLjA6IFtk cm06aW50ZWxfcHBzX3ZkZF9vZmZfc3luY191bmxvY2tlZCBbeGVdXSBbRU5DT0RFUjozMDc6RERJ IEEvUEhZIEFdIFBQUyAwIFBQX1NUQVRVUzogMHg4MDAwMDAwOCBQUF9DT05UUk9MOg0KMHgwMDAw MDA2Nw0KWyAgMjY2LjQ2MjM3MV0geGUgMDAwMDowMDowMi4wOiBbZHJtXSBUaW1lZG91dCBqb2I6 IHNlcW5vPTQyOTQ5NjcxNjksIGd1Y19pZD0yLCBmbGFncz0weDgNClsgIDI2Ni40NjI5MTJdIC0t LS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQ0KWyAgMjY2LjQ2MjkxMl0gaXJxIGV2 ZW50IHN0YW1wOiAxODg5OTQNClsgIDI2Ni40NjI5MjNdIGhhcmRpcnFzIGxhc3QgIGVuYWJsZWQg YXQgKDE4ODk5Myk6IFs8ZmZmZmZmZmY4MWQyZTJjYT5dIF9yYXdfcmVhZF91bmxvY2tfaXJxcmVz dG9yZSsweDRhLzB4NzANClsgIDI2Ni40NjI5NDhdIERFQlVHX0xPQ0tTX1dBUk5fT04obG9jay0+ bWFnaWMgIT0gbG9jaykNClsgIDI2Ni40NjI5NTldIGhhcmRpcnFzIGxhc3QgZGlzYWJsZWQgYXQg KDE4ODk5NCk6IFs8ZmZmZmZmZmY4MWQyZGIxYT5dIF9yYXdfc3Bpbl9sb2NrX2lycXNhdmUrMHg0 YS8weDUwDQpbICAyNjYuNDYyOTg4XSBXQVJOSU5HOiBDUFU6IDIgUElEOiA5MTggYXQga2VybmVs L2xvY2tpbmcvbXV0ZXguYzo1ODcgX19tdXRleF9sb2NrKzB4NTBkLzB4YjgwDQpbICAyNjYuNDYz MDAxXSBzb2Z0aXJxcyBsYXN0ICBlbmFibGVkIGF0ICgxODg5ODgpOiBbPGZmZmZmZmZmODFiN2E1 YjQ+XSB0Y3Bfc2VuZG1zZysweDE0LzB4NDANClsgIDI2Ni40NjMwMzFdIE1vZHVsZXMgbGlua2Vk IGluOg0KWyAgMjY2LjQ2MzA1NV0gc29mdGlycXMgbGFzdCBkaXNhYmxlZCBhdCAoMTg4OTg2KTog WzxmZmZmZmZmZjgxYWM0NjA3Pl0gbG9ja19zb2NrX25lc3RlZCsweDQ3LzB4NzANClsgIDI2Ni40 NjMwODNdICB4ZSBkcm1fdHRtX2hlbHBlciBncHVfc2NoZWQgZHJtX3N1YmFsbG9jX2hlbHBlciBk cm1fZ3B1dm0gZHJtX2V4ZWMgaTJjX2FsZ29fYml0IGRybV9idWRkeSB2aWRlbyBkcm1fZGlzcGxh eV9oZWxwZXIgdHRtDQpzbmRfaGRhX2NvZGVjX2hkbWkgc25kX2N0bF9sZWQgbGVkdHJpZ19hdWRp byBzbmRfaGRhX2NvZGVjX3JlYWx0ZWsgc25kX2hkYV9jb2RlY19nZW5lcmljIG1laV9oZGNwIG1l aV9weHAgd21pX2Jtb2Ygc25kX2hkYV9pbnRlbCB4ODZfcGtnX3RlbXBfdGhlcm1hbA0Kc25kX2lu dGVsX2RzcGNmZyBzbmRfaGRhX2NvZGVjIHNuZF9od2RlcCBjb3JldGVtcCBzbmRfaGRhX2NvcmUg ZTEwMDBlIGNyY3QxMGRpZl9wY2xtdWwgY3JjMzJfcGNsbXVsIGdoYXNoX2NsbXVsbmlfaW50ZWwg a3ZtX2ludGVsIHNuZF9wY20gcHRwIG1laV9tZQ0KaTJjX2k4MDEgcHBzX2NvcmUgaTJjX3NtYnVz IG1laSBpbnRlbF9wbWNfY29yZSBpbnRlbF92c2VjIHBtdF90ZWxlbWV0cnkgd21pIHBtdF9jbGFz cyBmdXNlIFtsYXN0IHVubG9hZGVkOiB0dG1dDQpbICAyNjYuNDYzMjk4XSBDUFU6IDIgUElEOiA5 MTggQ29tbToga3dvcmtlci91MTY6NSBOb3QgdGFpbnRlZCA2LjguMC1yYzEtemVoLXhlKyAjMTIx Mg0KWyAgMjY2LjQ2MzMxNV0gSGFyZHdhcmUgbmFtZTogRGVsbCBJbmMuIExhdGl0dWRlIDU0MjAv MDFNM000LCBCSU9TIDEuMjcuMCAwMy8xNy8yMDIzDQpbICAyNjYuNDYzMzI4XSBXb3JrcXVldWU6 IGd0LW9yZGVyZWQtd3EgZHJtX3NjaGVkX2pvYl90aW1lZG91dCBbZ3B1X3NjaGVkXQ0KWyAgMjY2 LjQ2MzM0N10gUklQOiAwMDEwOl9fbXV0ZXhfbG9jaysweDUwZC8weGI4MA0KWyAgMjY2LjQ2MzM2 MF0gQ29kZTogZmYgODUgYzAgMGYgODQgN2QgZmIgZmYgZmYgOGIgMTUgZDIgZWEgYmEgMDAgODUg ZDIgMGYgODUgNmYgZmIgZmYgZmYgNDggYzcgYzYgYjYgNDEgM2EgODIgNDggYzcgYzcgNWYgZDEg MzkgODIgZTggYTMgMWIgNDAgZmYNCjwwZj4gMGIgZTkgNTUgZmIgZmYgZmYgMzEgYzkgMzEgZDIg NGMgODkgZTcgZTggYjAgODAgNDcgZmYgODQgYzAgMGYNClsgIDI2Ni40NjM0MDVdIFJTUDogMDAx ODpmZmZmYzkwMDAyMmJiYzMwIEVGTEFHUzogMDAwMTAyODINClsgIDI2Ni40NjM0MTVdIFJBWDog MDAwMDAwMDAwMDAwMDAwMCBSQlg6IDAwMDAwMDAwMDAwMDAwMDAgUkNYOiAwMDAwMDAwMDAwMDAw MDAwDQpbICAyNjYuNDYzNDI4XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDIgUlNJOiAwMDAwMDAwMDAw MDAwMDI3IFJESTogMDAwMDAwMDBmZmZmZmZmZg0KWyAgMjY2LjQ2MzQ0MF0gUkJQOiBmZmZmYzkw MDAyMmJiY2MwIFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDANClsg IDI2Ni40NjM0NTJdIFIxMDogZmZmZmZmZmY4MTFiZGVkZiBSMTE6IDAwMDAwMDAwMDAwMDAwMDEg UjEyOiBmZmZmODg4MTNmZDg4Y2E4DQpbICAyNjYuNDYzNDY0XSBSMTM6IDAwMDAwMDAwMDAwMDAw MDAgUjE0OiBmZmZmODg4MTNmZDg4ODM4IFIxNTogZmZmZjg4ODE0NDM4ZmEwMA0KWyAgMjY2LjQ2 MzQ3Nl0gRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmY4ODgyODc5MDAwMDAoMDAw MCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMA0KWyAgMjY2LjQ2MzQ4OV0gQ1M6ICAwMDEwIERTOiAw MDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMw0KWyAgMjY2LjQ2MzQ5OV0gQ1IyOiAw MDAwN2Y4NGRhZDlkYmM4IENSMzogMDAwMDAwMDAwNTY0YTAwNSBDUjQ6IDAwMDAwMDAwMDA3NzBl ZjANClsgIDI2Ni40NjM1MTFdIFBLUlU6IDU1NTU1NTU0DQpbICAyNjYuNDYzNTE5XSBDYWxsIFRy YWNlOg0KWyAgMjY2LjQ2MzUyNl0gIDxUQVNLPg0KWyAgMjY2LjQ2MzUzMl0gID8gX19tdXRleF9s b2NrKzB4NTBkLzB4YjgwDQpbICAyNjYuNDYzNTQyXSAgPyBfX3dhcm4rMHg3Yy8weDE3MA0KWyAg MjY2LjQ2MzU1Ml0gID8gX19tdXRleF9sb2NrKzB4NTBkLzB4YjgwDQpbICAyNjYuNDYzNTcyXSAg PyByZXBvcnRfYnVnKzB4MTg5LzB4MWMwDQpbICAyNjYuNDYzNTg4XSAgPyBoYW5kbGVfYnVnKzB4 MzYvMHg3MA0KWyAgMjY2LjQ2MzYwNF0gID8gZXhjX2ludmFsaWRfb3ArMHgxMy8weDYwDQpbICAy NjYuNDYzNjIwXSAgPyBhc21fZXhjX2ludmFsaWRfb3ArMHgxNi8weDIwDQpbICAyNjYuNDYzNjM5 XSAgPyBjb25zb2xlX2ZsdXNoX2FsbCsweDFlZi8weDU0MA0KWyAgMjY2LjQ2MzY1OF0gID8gX19t dXRleF9sb2NrKzB4NTBkLzB4YjgwDQpbICAyNjYuNDYzNjc0XSAgPyBfX3NsYWJfYWxsb2MuaXNy YS4wKzB4NGQvMHg5MA0KWyAgMjY2LjQ2MzY5Nl0gID8gX19zbGFiX2FsbG9jLmlzcmEuMCsweDVh LzB4OTANClsgIDI2Ni40NjM3MTNdICA/IHhlX3ZtX3NuYXBzaG90X2NhcHR1cmUrMHgzNS8weDFm MCBbeGVdDQpbICAyNjYuNDYzODI3XSAgPyByY3VfaXNfd2F0Y2hpbmcrMHhkLzB4NDANClsgIDI2 Ni40NjM4NDZdICA/IF9fa21hbGxvYysweDJiZC8weDQwMA0KWyAgMjY2LjQ2Mzg2NF0gID8geGVf dm1fc25hcHNob3RfY2FwdHVyZSsweDM1LzB4MWYwIFt4ZV0NClsgIDI2Ni40NjM5NzBdICB4ZV92 bV9zbmFwc2hvdF9jYXB0dXJlKzB4MzUvMHgxZjAgW3hlXQ0KWyAgMjY2LjQ2NDA3MV0gID8geGVf c2NoZWRfam9iX3NuYXBzaG90X2NhcHR1cmUrMHg2NC8weDgwIFt4ZV0NClsgIDI2Ni40NjQxNDNd ICB4ZV9kZXZjb3JlZHVtcCsweDFiOS8weDJlMCBbeGVdDQpbICAyNjYuNDY0MTk0XSAgZ3VjX2V4 ZWNfcXVldWVfdGltZWRvdXRfam9iKzB4MWFiLzB4NzMwIFt4ZV0NClsgIDI2Ni40NjQyNTBdICA/ IGZpbmRfaGVsZF9sb2NrKzB4MmIvMHg4MA0KWyAgMjY2LjQ2NDI2Ml0gIGRybV9zY2hlZF9qb2Jf dGltZWRvdXQrMHg3Ny8weGUwIFtncHVfc2NoZWRdDQpbICAyNjYuNDY0Mjc5XSAgPyBwcm9jZXNz X29uZV93b3JrKzB4MThkLzB4NGQwDQpbICAyNjYuNDY0MjkwXSAgcHJvY2Vzc19vbmVfd29yaysw eDFmNC8weDRkMA0KWyAgMjY2LjQ2NDMwMV0gIHdvcmtlcl90aHJlYWQrMHgxZDgvMHgzYzANClsg IDI2Ni40NjQzMTFdICA/IHJlc2N1ZXJfdGhyZWFkKzB4MzkwLzB4MzkwDQpbICAyNjYuNDY0MzIx XSAga3RocmVhZCsweGZiLzB4MTMwDQpbICAyNjYuNDY0MzI5XSAgPyBrdGhyZWFkX2NvbXBsZXRl X2FuZF9leGl0KzB4MjAvMHgyMA0KWyAgMjY2LjQ2NDM0MV0gIHJldF9mcm9tX2ZvcmsrMHgyOC8w eDQwDQpbICAyNjYuNDY0MzUyXSAgPyBrdGhyZWFkX2NvbXBsZXRlX2FuZF9leGl0KzB4MjAvMHgy MA0KWyAgMjY2LjQ2NDM2Ml0gIHJldF9mcm9tX2ZvcmtfYXNtKzB4MTEvMHgyMA0KWyAgMjY2LjQ2 NDM3NV0gIDwvVEFTSz4NClsgIDI2Ni40NjQzODJdIGlycSBldmVudCBzdGFtcDogMTQxMjE5Mw0K WyAgMjY2LjQ2NDM4OV0gaGFyZGlycXMgbGFzdCAgZW5hYmxlZCBhdCAoMTQxMjE5Myk6IFs8ZmZm ZmZmZmY4MWQyZTJjYT5dIF9yYXdfcmVhZF91bmxvY2tfaXJxcmVzdG9yZSsweDRhLzB4NzANClsg IDI2Ni40NjQ0MDhdIGhhcmRpcnFzIGxhc3QgZGlzYWJsZWQgYXQgKDE0MTIxOTIpOiBbPGZmZmZm ZmZmODFkMmRmNTA+XSBfcmF3X3JlYWRfbG9ja19pcnFzYXZlKzB4ODAvMHg5MA0KWyAgMjY2LjQ2 NDQyOF0gc29mdGlycXMgbGFzdCAgZW5hYmxlZCBhdCAoMTQxMjE3MCk6IFs8ZmZmZmZmZmY4MTEz MWMzMj5dIGlycV9leGl0X3JjdSsweDgyLzB4ZTANClsgIDI2Ni40NjU0NjZdIHNvZnRpcnFzIGxh c3QgZGlzYWJsZWQgYXQgKDE0MTIwMjkpOiBbPGZmZmZmZmZmODExMzFjMzI+XSBpcnFfZXhpdF9y Y3UrMHg4Mi8weGUwDQpbICAyNjYuNDY2NTg1XSAtLS1bIGVuZCB0cmFjZSAwMDAwMDAwMDAwMDAw MDAwIF0tLS0NClsgIDI2Ni40Njc1ODVdIHhlIDAwMDA6MDA6MDIuMDogW2RybV0gWGUgZGV2aWNl IGNvcmVkdW1wIGhhcyBiZWVuIGNyZWF0ZWQNClsgIDI2Ni40Njg1NDBdIHhlIDAwMDA6MDA6MDIu MDogW2RybV0gQ2hlY2sgeW91ciAvc3lzL2NsYXNzL2RybS9jYXJkMC9kZXZpY2UvZGV2Y29yZWR1 bXAvZGF0YQ0KWyAgMjY2LjQ3MDU5MF0geGUgMDAwMDowMDowMi4wOiBbZHJtXSBFbmdpbmUgcmVz ZXQ6IGd1Y19pZD0yDQpbICAyNjYuNDcyMDc2XSB4ZSAwMDAwOjAwOjAyLjA6IFtkcm1dIFRpbWVk b3V0IGpvYjogc2Vxbm89NDI5NDk2NzE2OSwgZ3VjX2lkPTMsIGZsYWdzPTB4OA0KWyAgMjY2LjQ3 NDA0NF0geGUgMDAwMDowMDowMi4wOiBbZHJtOmd1Y19leGVjX3F1ZXVlX3RpbWVkb3V0X2pvYiBb eGVdXSBNdWx0aXBsZSBoYW5ncw0KDQoNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFu a2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+DQo+IC0tLQ0KPiAgZHJp dmVycy9ncHUvZHJtL3hlL3hlX2RldmNvcmVkdW1wLmMgICAgICAgfCAgMzIgKysrKy0NCj4gIGRy aXZlcnMvZ3B1L2RybS94ZS94ZV9kZXZjb3JlZHVtcF90eXBlcy5oIHwgICA4ICsrDQo+ICBkcml2 ZXJzL2dwdS9kcm0veGUveGVfdm0uYyAgICAgICAgICAgICAgICB8IDE2NyArKysrKysrKysrKysr KysrKysrKysrDQo+ICBkcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uaCAgICAgICAgICAgICAgICB8 ICAgNSArDQo+ICA0IGZpbGVzIGNoYW5nZWQsIDIxMCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9kZXZjb3JlZHVt cC5jIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2RldmNvcmVkdW1wLmMNCj4gaW5kZXggNjhhYmMw YjE5NWJlLi40YTNiYmNjNGY3YTAgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS94ZS94 ZV9kZXZjb3JlZHVtcC5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9kZXZjb3JlZHVt cC5jDQo+IEBAIC0xNiw2ICsxNiw3IEBADQo+ICAjaW5jbHVkZSAieGVfZ3VjX2N0LmgiDQo+ICAj aW5jbHVkZSAieGVfZ3VjX3N1Ym1pdC5oIg0KPiAgI2luY2x1ZGUgInhlX2h3X2VuZ2luZS5oIg0K PiArI2luY2x1ZGUgInhlX3ZtLmgiDQo+ICANCj4gIC8qKg0KPiAgICogRE9DOiBYZSBkZXZpY2Ug Y29yZWR1bXANCj4gQEAgLTU4LDExICs1OSwyMCBAQCBzdGF0aWMgc3RydWN0IHhlX2d1YyAqZXhl Y19xdWV1ZV90b19ndWMoc3RydWN0IHhlX2V4ZWNfcXVldWUgKnEpDQo+ICAJcmV0dXJuICZxLT5n dC0+dWMuZ3VjOw0KPiAgfQ0KPiAgDQo+ICtzdGF0aWMgdm9pZCB4ZV9kZXZjb3JlZHVtcF9kZWZl cnJlZF9zbmFwX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQ0KPiArew0KPiArCXN0cnVj dCB4ZV9kZXZjb3JlZHVtcF9zbmFwc2hvdCAqc3MgPSBjb250YWluZXJfb2Yod29yaywgdHlwZW9m KCpzcyksIHdvcmspOw0KPiArDQo+ICsJeGVfZm9yY2Vfd2FrZV9nZXQoZ3RfdG9fZncoc3MtPmd0 KSwgWEVfRk9SQ0VXQUtFX0FMTCk7DQo+ICsJeGVfdm1fc25hcHNob3RfY2FwdHVyZV9kZWxheWVk KHNzLT52bSk7DQo+ICsJeGVfZm9yY2Vfd2FrZV9wdXQoZ3RfdG9fZncoc3MtPmd0KSwgWEVfRk9S Q0VXQUtFX0FMTCk7DQo+ICt9DQo+ICsNCj4gIHN0YXRpYyBzc2l6ZV90IHhlX2RldmNvcmVkdW1w X3JlYWQoY2hhciAqYnVmZmVyLCBsb2ZmX3Qgb2Zmc2V0LA0KPiAgCQkJCSAgIHNpemVfdCBjb3Vu dCwgdm9pZCAqZGF0YSwgc2l6ZV90IGRhdGFsZW4pDQo+ICB7DQo+ICAJc3RydWN0IHhlX2RldmNv cmVkdW1wICpjb3JlZHVtcCA9IGRhdGE7DQo+IC0Jc3RydWN0IHhlX2RldmNvcmVkdW1wX3NuYXBz aG90ICpzczsNCj4gKwlzdHJ1Y3QgeGVfZGV2Y29yZWR1bXBfc25hcHNob3QgKnNzID0gJmNvcmVk dW1wLT5zbmFwc2hvdDsNCj4gIAlzdHJ1Y3QgZHJtX3ByaW50ZXIgcDsNCj4gIAlzdHJ1Y3QgZHJt X3ByaW50X2l0ZXJhdG9yIGl0ZXI7DQo+ICAJc3RydWN0IHRpbWVzcGVjNjQgdHM7DQo+IEBAIC03 MiwxMiArODIsMTQgQEAgc3RhdGljIHNzaXplX3QgeGVfZGV2Y29yZWR1bXBfcmVhZChjaGFyICpi dWZmZXIsIGxvZmZfdCBvZmZzZXQsDQo+ICAJaWYgKCFkYXRhIHx8ICFjb3JlZHVtcF90b194ZShj b3JlZHVtcCkpDQo+ICAJCXJldHVybiAtRU5PREVWOw0KPiAgDQo+ICsJLyogRW5zdXJlIGRlbGF5 ZWQgd29yayBpcyBjYXB0dXJlZCBiZWZvcmUgY29udGludWluZyAqLw0KPiArCWZsdXNoX3dvcmso JnNzLT53b3JrKTsNCj4gKw0KPiAgCWl0ZXIuZGF0YSA9IGJ1ZmZlcjsNCj4gIAlpdGVyLm9mZnNl dCA9IDA7DQo+ICAJaXRlci5zdGFydCA9IG9mZnNldDsNCj4gIAlpdGVyLnJlbWFpbiA9IGNvdW50 Ow0KPiAgDQo+IC0Jc3MgPSAmY29yZWR1bXAtPnNuYXBzaG90Ow0KPiAgCXAgPSBkcm1fY29yZWR1 bXBfcHJpbnRlcigmaXRlcik7DQo+ICANCj4gIAlkcm1fcHJpbnRmKCZwLCAiKioqKiBYZSBEZXZp Y2UgQ29yZWR1bXAgKioqKlxuIik7DQo+IEBAIC05OCw2ICsxMTAsMTAgQEAgc3RhdGljIHNzaXpl X3QgeGVfZGV2Y29yZWR1bXBfcmVhZChjaGFyICpidWZmZXIsIGxvZmZfdCBvZmZzZXQsDQo+ICAJ CWlmIChjb3JlZHVtcC0+c25hcHNob3QuaHdlW2ldKQ0KPiAgCQkJeGVfaHdfZW5naW5lX3NuYXBz aG90X3ByaW50KGNvcmVkdW1wLT5zbmFwc2hvdC5od2VbaV0sDQo+ICAJCQkJCQkgICAgJnApOw0K PiArCWlmIChjb3JlZHVtcC0+c25hcHNob3Qudm0pIHsNCj4gKwkJZHJtX3ByaW50ZigmcCwgIlxu KioqKiBWTSBzdGF0ZSAqKioqXG4iKTsNCj4gKwkJeGVfdm1fc25hcHNob3RfcHJpbnQoY29yZWR1 bXAtPnNuYXBzaG90LnZtLCAmcCk7DQo+ICsJfQ0KPiAgDQo+ICAJcmV0dXJuIGNvdW50IC0gaXRl ci5yZW1haW47DQo+ICB9DQo+IEBAIC0xMTEsMTEgKzEyNywxNSBAQCBzdGF0aWMgdm9pZCB4ZV9k ZXZjb3JlZHVtcF9mcmVlKHZvaWQgKmRhdGEpDQo+ICAJaWYgKCFkYXRhIHx8ICFjb3JlZHVtcF90 b194ZShjb3JlZHVtcCkpDQo+ICAJCXJldHVybjsNCj4gIA0KPiArCWNhbmNlbF93b3JrX3N5bmMo JmNvcmVkdW1wLT5zbmFwc2hvdC53b3JrKTsNCj4gKw0KPiAgCXhlX2d1Y19jdF9zbmFwc2hvdF9m cmVlKGNvcmVkdW1wLT5zbmFwc2hvdC5jdCk7DQo+ICAJeGVfZ3VjX2V4ZWNfcXVldWVfc25hcHNo b3RfZnJlZShjb3JlZHVtcC0+c25hcHNob3QuZ2UpOw0KPiAgCWZvciAoaSA9IDA7IGkgPCBYRV9O VU1fSFdfRU5HSU5FUzsgaSsrKQ0KPiAgCQlpZiAoY29yZWR1bXAtPnNuYXBzaG90Lmh3ZVtpXSkN Cj4gIAkJCXhlX2h3X2VuZ2luZV9zbmFwc2hvdF9mcmVlKGNvcmVkdW1wLT5zbmFwc2hvdC5od2Vb aV0pOw0KPiArCXhlX3ZtX3NuYXBzaG90X2ZyZWUoY29yZWR1bXAtPnNuYXBzaG90LnZtKTsNCj4g KwltZW1zZXQoJmNvcmVkdW1wLT5zbmFwc2hvdCwgMCwgc2l6ZW9mKGNvcmVkdW1wLT5zbmFwc2hv dCkpOw0KPiAgDQo+ICAJY29yZWR1bXAtPmNhcHR1cmVkID0gZmFsc2U7DQo+ICAJZHJtX2luZm8o JmNvcmVkdW1wX3RvX3hlKGNvcmVkdW1wKS0+ZHJtLA0KPiBAQCAtMTM3LDYgKzE1Nyw5IEBAIHN0 YXRpYyB2b2lkIGRldmNvcmVkdW1wX3NuYXBzaG90KHN0cnVjdCB4ZV9kZXZjb3JlZHVtcCAqY29y ZWR1bXAsDQo+ICAJc3MtPnNuYXBzaG90X3RpbWUgPSBrdGltZV9nZXRfcmVhbCgpOw0KPiAgCXNz LT5ib290X3RpbWUgPSBrdGltZV9nZXRfYm9vdHRpbWUoKTsNCj4gIA0KPiArCXNzLT5ndCA9IHEt Pmd0Ow0KPiArCUlOSVRfV09SSygmc3MtPndvcmssIHhlX2RldmNvcmVkdW1wX2RlZmVycmVkX3Nu YXBfd29yayk7DQo+ICsNCj4gIAljb29raWUgPSBkbWFfZmVuY2VfYmVnaW5fc2lnbmFsbGluZygp Ow0KPiAgCWZvciAoaSA9IDA7IHEtPndpZHRoID4gMSAmJiBpIDwgWEVfSFdfRU5HSU5FX01BWF9J TlNUQU5DRTspIHsNCj4gIAkJaWYgKGFkal9sb2dpY2FsX21hc2sgJiBCSVQoaSkpIHsNCj4gQEAg LTE1MSw2ICsxNzQsNyBAQCBzdGF0aWMgdm9pZCBkZXZjb3JlZHVtcF9zbmFwc2hvdChzdHJ1Y3Qg eGVfZGV2Y29yZWR1bXAgKmNvcmVkdW1wLA0KPiAgDQo+ICAJY29yZWR1bXAtPnNuYXBzaG90LmN0 ID0geGVfZ3VjX2N0X3NuYXBzaG90X2NhcHR1cmUoJmd1Yy0+Y3QsIHRydWUpOw0KPiAgCWNvcmVk dW1wLT5zbmFwc2hvdC5nZSA9IHhlX2d1Y19leGVjX3F1ZXVlX3NuYXBzaG90X2NhcHR1cmUocSk7 DQo+ICsJY29yZWR1bXAtPnNuYXBzaG90LnZtID0geGVfdm1fc25hcHNob3RfY2FwdHVyZShxLT52 bSk7DQo+ICANCj4gIAlmb3JfZWFjaF9od19lbmdpbmUoaHdlLCBxLT5ndCwgaWQpIHsNCj4gIAkJ aWYgKGh3ZS0+Y2xhc3MgIT0gcS0+aHdlLT5jbGFzcyB8fA0KPiBAQCAtMTYxLDYgKzE4NSw5IEBA IHN0YXRpYyB2b2lkIGRldmNvcmVkdW1wX3NuYXBzaG90KHN0cnVjdCB4ZV9kZXZjb3JlZHVtcCAq Y29yZWR1bXAsDQo+ICAJCWNvcmVkdW1wLT5zbmFwc2hvdC5od2VbaWRdID0geGVfaHdfZW5naW5l X3NuYXBzaG90X2NhcHR1cmUoaHdlKTsNCj4gIAl9DQo+ICANCj4gKwlpZiAoc3MtPnZtKQ0KPiAr CQlxdWV1ZV93b3JrKHN5c3RlbV91bmJvdW5kX3dxLCAmc3MtPndvcmspOw0KPiArDQo+ICAJeGVf Zm9yY2Vfd2FrZV9wdXQoZ3RfdG9fZncocS0+Z3QpLCBYRV9GT1JDRVdBS0VfQUxMKTsNCj4gIAlk bWFfZmVuY2VfZW5kX3NpZ25hbGxpbmcoY29va2llKTsNCj4gIH0NCj4gQEAgLTE5NCwzICsyMjEs NCBAQCB2b2lkIHhlX2RldmNvcmVkdW1wKHN0cnVjdCB4ZV9leGVjX3F1ZXVlICpxKQ0KPiAgCQkg ICAgICB4ZV9kZXZjb3JlZHVtcF9yZWFkLCB4ZV9kZXZjb3JlZHVtcF9mcmVlKTsNCj4gIH0NCj4g ICNlbmRpZg0KPiArDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfZGV2Y29y ZWR1bXBfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9kZXZjb3JlZHVtcF90eXBlcy5o DQo+IGluZGV4IDdmZGFkOWMzZDNkZC4uMTdhZTNlMzU5N2IwIDEwMDY0NA0KPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0veGUveGVfZGV2Y29yZWR1bXBfdHlwZXMuaA0KPiArKysgYi9kcml2ZXJzL2dw dS9kcm0veGUveGVfZGV2Y29yZWR1bXBfdHlwZXMuaA0KPiBAQCAtMTIsNiArMTIsNyBAQA0KPiAg I2luY2x1ZGUgInhlX2h3X2VuZ2luZV90eXBlcy5oIg0KPiAgDQo+ICBzdHJ1Y3QgeGVfZGV2aWNl Ow0KPiArc3RydWN0IHhlX2d0Ow0KPiAgDQo+ICAvKioNCj4gICAqIHN0cnVjdCB4ZV9kZXZjb3Jl ZHVtcF9zbmFwc2hvdCAtIENyYXNoIHNuYXBzaG90DQo+IEBAIC0yNiw2ICsyNywxMSBAQCBzdHJ1 Y3QgeGVfZGV2Y29yZWR1bXBfc25hcHNob3Qgew0KPiAgCS8qKiBAYm9vdF90aW1lOiAgUmVsYXRp dmUgYm9vdCB0aW1lIHNvIHRoZSB1cHRpbWUgY2FuIGJlIGNhbGN1bGF0ZWQuICovDQo+ICAJa3Rp bWVfdCBib290X3RpbWU7DQo+ICANCj4gKwkvKiogQGd0OiBBZmZlY3RlZCBHVCwgdXNlZCBieSBm b3JjZXdha2UgZm9yIGRlbGF5ZWQgY2FwdHVyZSAqLw0KPiArCXN0cnVjdCB4ZV9ndCAqZ3Q7DQo+ ICsJLyoqIEB3b3JrOiBXb3JrcXVldWUgZm9yIGRlZmZlcmVkIGNhcHR1cmUgb3V0c2lkZSBvZiBz aWduYWxpbmcgY29udGV4dCAqLw0KPiArCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOw0KPiArDQo+ ICAJLyogR3VDIHNuYXBzaG90cyAqLw0KPiAgCS8qKiBAY3Q6IEd1QyBDVCBzbmFwc2hvdCAqLw0K PiAgCXN0cnVjdCB4ZV9ndWNfY3Rfc25hcHNob3QgKmN0Ow0KPiBAQCAtMzMsNiArMzksOCBAQCBz dHJ1Y3QgeGVfZGV2Y29yZWR1bXBfc25hcHNob3Qgew0KPiAgCXN0cnVjdCB4ZV9ndWNfc3VibWl0 X2V4ZWNfcXVldWVfc25hcHNob3QgKmdlOw0KPiAgCS8qKiBAaHdlOiBIVyBFbmdpbmUgc25hcHNo b3QgYXJyYXkgKi8NCj4gIAlzdHJ1Y3QgeGVfaHdfZW5naW5lX3NuYXBzaG90ICpod2VbWEVfTlVN X0hXX0VOR0lORVNdOw0KPiArCS8qKiBAdm06IFNuYXBzaG90IG9mIFZNIHN0YXRlICovDQo+ICsJ c3RydWN0IHhlX3ZtX3NuYXBzaG90ICp2bTsNCj4gIH07DQo+ICANCj4gIC8qKg0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVf dm0uYw0KPiBpbmRleCBlOTY3MmRmNzEwODEuLmUyN2NmMmRhM2Y0ZCAxMDA2NDQNCj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hl X3ZtLmMNCj4gQEAgLTEzLDYgKzEzLDcgQEANCj4gICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9leGVj YnVmX3V0aWwuaD4NCj4gICNpbmNsdWRlIDxkcm0vdHRtL3R0bV90dC5oPg0KPiAgI2luY2x1ZGUg PGRybS94ZV9kcm0uaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9hc2NpaTg1Lmg+DQo+ICAjaW5jbHVk ZSA8bGludXgvZGVsYXkuaD4NCj4gICNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+DQo+ICAjaW5j bHVkZSA8bGludXgvbW0uaD4NCj4gQEAgLTMyMzcsMyArMzIzOCwxNjkgQEAgaW50IHhlX2FuYWx5 emVfdm0oc3RydWN0IGRybV9wcmludGVyICpwLCBzdHJ1Y3QgeGVfdm0gKnZtLCBpbnQgZ3RfaWQp DQo+ICANCj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4gKw0KPiArc3RydWN0IHhlX3ZtX3NuYXBzaG90 IHsNCj4gKwl1bnNpZ25lZCBsb25nIG51bV9zbmFwczsNCj4gKwlzdHJ1Y3Qgew0KPiArCQl1aW50 NjRfdCBvZnMsIGJvX29mczsNCj4gKwkJdW5zaWduZWQgbG9uZyBsZW47DQo+ICsJCXN0cnVjdCB4 ZV9ibyAqYm87DQo+ICsJCXZvaWQgKmRhdGE7DQo+ICsJCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tOw0K PiArCX0gc25hcFtdOw0KPiArfTsNCj4gKw0KPiArc3RydWN0IHhlX3ZtX3NuYXBzaG90ICp4ZV92 bV9zbmFwc2hvdF9jYXB0dXJlKHN0cnVjdCB4ZV92bSAqdm0pDQo+ICt7DQo+ICsJdW5zaWduZWQg bG9uZyBudW1fc25hcHMgPSAwLCBpOw0KPiArCXN0cnVjdCB4ZV92bV9zbmFwc2hvdCAqc25hcCA9 IE5VTEw7DQo+ICsJc3RydWN0IGRybV9ncHV2YSAqZ3B1dmE7DQo+ICsNCj4gKwlpZiAoIXZtKQ0K PiArCQlyZXR1cm4gTlVMTDsNCj4gKw0KPiArCW11dGV4X2xvY2soJnZtLT5zbmFwX211dGV4KTsN Cj4gKwlkcm1fZ3B1dm1fZm9yX2VhY2hfdmEoZ3B1dmEsICZ2bS0+Z3B1dm0pIHsNCj4gKwkJaWYg KGdwdXZhLT5mbGFncyAmIFhFX1ZNQV9EVU1QQUJMRSkNCj4gKwkJCW51bV9zbmFwcysrOw0KPiAr CX0NCj4gKw0KPiArCWlmIChudW1fc25hcHMpDQo+ICsJCXNuYXAgPSBrdnphbGxvYyhvZmZzZXRv ZihzdHJ1Y3QgeGVfdm1fc25hcHNob3QsIHNuYXBbbnVtX3NuYXBzXSksIEdGUF9OT1dBSVQpOw0K PiArCWlmICghc25hcCkNCj4gKwkJZ290byBvdXRfdW5sb2NrOw0KPiArDQo+ICsJc25hcC0+bnVt X3NuYXBzID0gbnVtX3NuYXBzOw0KPiArCWkgPSAwOw0KPiArCWRybV9ncHV2bV9mb3JfZWFjaF92 YShncHV2YSwgJnZtLT5ncHV2bSkgew0KPiArCQlzdHJ1Y3QgeGVfdm1hICp2bWEgPSBncHV2YV90 b192bWEoZ3B1dmEpOw0KPiArCQlzdHJ1Y3QgeGVfYm8gKmJvID0gdm1hLT5ncHV2YS5nZW0ub2Jq ID8NCj4gKwkJCWdlbV90b194ZV9ibyh2bWEtPmdwdXZhLmdlbS5vYmopIDogTlVMTDsNCj4gKw0K PiArCQlpZiAoIShncHV2YS0+ZmxhZ3MgJiBYRV9WTUFfRFVNUEFCTEUpKQ0KPiArCQkJY29udGlu dWU7DQo+ICsNCj4gKwkJc25hcC0+c25hcFtpXS5vZnMgPSB4ZV92bWFfc3RhcnQodm1hKTsNCj4g KwkJc25hcC0+c25hcFtpXS5sZW4gPSB4ZV92bWFfc2l6ZSh2bWEpOw0KPiArCQlpZiAoYm8pIHsN Cj4gKwkJCXNuYXAtPnNuYXBbaV0uYm8gPSB4ZV9ib19nZXQoYm8pOw0KPiArCQkJc25hcC0+c25h cFtpXS5ib19vZnMgPSB4ZV92bWFfYm9fb2Zmc2V0KHZtYSk7DQo+ICsJCX0gZWxzZSBpZiAoeGVf dm1hX2lzX3VzZXJwdHIodm1hKSkgew0KPiArCQkJaWYgKG1tZ2V0X25vdF96ZXJvKHZtYS0+dXNl cnB0ci5ub3RpZmllci5tbSkpDQo+ICsJCQkJc25hcC0+c25hcFtpXS5tbSA9IHZtYS0+dXNlcnB0 ci5ub3RpZmllci5tbTsNCj4gKwkJCWVsc2UNCj4gKwkJCQlzbmFwLT5zbmFwW2ldLmRhdGEgPSBF UlJfUFRSKC1FRkFVTFQpOw0KPiArCQkJc25hcC0+c25hcFtpXS5ib19vZnMgPSB4ZV92bWFfdXNl cnB0cih2bWEpOw0KPiArCQl9IGVsc2Ugew0KPiArCQkJc25hcC0+c25hcFtpXS5kYXRhID0gRVJS X1BUUigtRU5PRU5UKTsNCj4gKwkJfQ0KPiArCQlpKys7DQo+ICsJfQ0KPiArDQo+ICtvdXRfdW5s b2NrOg0KPiArCW11dGV4X3VubG9jaygmdm0tPnNuYXBfbXV0ZXgpOw0KPiArCXJldHVybiBzbmFw Ow0KPiArfQ0KPiArDQo+ICt2b2lkIHhlX3ZtX3NuYXBzaG90X2NhcHR1cmVfZGVsYXllZChzdHJ1 Y3QgeGVfdm1fc25hcHNob3QgKnNuYXApDQo+ICt7DQo+ICsJaWYgKCFzbmFwKQ0KPiArCQlyZXR1 cm47DQo+ICsNCj4gKwlmb3IgKGludCBpID0gMDsgaSA8IHNuYXAtPm51bV9zbmFwczsgaSsrKSB7 DQo+ICsJCXN0cnVjdCB4ZV9ibyAqYm8gPSBzbmFwLT5zbmFwW2ldLmJvOw0KPiArCQlzdHJ1Y3Qg aW9zeXNfbWFwIHNyYzsNCj4gKwkJaW50IGVycjsNCj4gKw0KPiArCQlpZiAoSVNfRVJSKHNuYXAt PnNuYXBbaV0uZGF0YSkpDQo+ICsJCQljb250aW51ZTsNCj4gKw0KPiArCQlzbmFwLT5zbmFwW2ld LmRhdGEgPSBrdm1hbGxvYyhzbmFwLT5zbmFwW2ldLmxlbiwgR0ZQX1VTRVIpOw0KPiArCQlpZiAo IXNuYXAtPnNuYXBbaV0uZGF0YSkgew0KPiArCQkJc25hcC0+c25hcFtpXS5kYXRhID0gRVJSX1BU UigtRU5PTUVNKTsNCj4gKwkJCWdvdG8gY2xlYW51cF9ibzsNCj4gKwkJfQ0KPiArDQo+ICsJCWlm IChibykgew0KPiArCQkJZG1hX3Jlc3ZfbG9jayhiby0+dHRtLmJhc2UucmVzdiwgTlVMTCk7DQo+ ICsJCQllcnIgPSB0dG1fYm9fdm1hcCgmYm8tPnR0bSwgJnNyYyk7DQo+ICsJCQlpZiAoIWVycikg ew0KPiArCQkJCXhlX21hcF9tZW1jcHlfZnJvbSh4ZV9ib19kZXZpY2UoYm8pLA0KPiArCQkJCQkJ ICAgc25hcC0+c25hcFtpXS5kYXRhLA0KPiArCQkJCQkJICAgJnNyYywgc25hcC0+c25hcFtpXS5i b19vZnMsDQo+ICsJCQkJCQkgICBzbmFwLT5zbmFwW2ldLmxlbik7DQo+ICsJCQkJdHRtX2JvX3Z1 bm1hcCgmYm8tPnR0bSwgJnNyYyk7DQo+ICsJCQl9DQo+ICsJCQlkbWFfcmVzdl91bmxvY2soYm8t PnR0bS5iYXNlLnJlc3YpOw0KPiArCQl9IGVsc2Ugew0KPiArCQkJdm9pZCBfX3VzZXIgKnVzZXJw dHIgPSAodm9pZCBfX3VzZXIgKikoc2l6ZV90KXNuYXAtPnNuYXBbaV0uYm9fb2ZzOw0KPiArCQkJ a3RocmVhZF91c2VfbW0oc25hcC0+c25hcFtpXS5tbSk7DQo+ICsNCj4gKwkJCWlmICghY29weV9m cm9tX3VzZXIoc25hcC0+c25hcFtpXS5kYXRhLCB1c2VycHRyLCBzbmFwLT5zbmFwW2ldLmxlbikp DQo+ICsJCQkJZXJyID0gMDsNCj4gKwkJCWVsc2UNCj4gKwkJCQllcnIgPSAtRUZBVUxUOw0KPiAr CQkJa3RocmVhZF91bnVzZV9tbShzbmFwLT5zbmFwW2ldLm1tKTsNCj4gKwkJCW1tcHV0KHNuYXAt PnNuYXBbaV0ubW0pOw0KPiArCQkJc25hcC0+c25hcFtpXS5tbSA9IE5VTEw7DQo+ICsJCX0NCj4g Kw0KPiArCQlpZiAoZXJyKSB7DQo+ICsJCQlrdmZyZWUoc25hcC0+c25hcFtpXS5kYXRhKTsNCj4g KwkJCXNuYXAtPnNuYXBbaV0uZGF0YSA9IEVSUl9QVFIoZXJyKTsNCj4gKwkJfQ0KPiArDQo+ICtj bGVhbnVwX2JvOg0KPiArCQl4ZV9ib19wdXQoYm8pOw0KPiArCQlzbmFwLT5zbmFwW2ldLmJvID0g TlVMTDsNCj4gKwl9DQo+ICt9DQo+ICsNCj4gK3ZvaWQgeGVfdm1fc25hcHNob3RfcHJpbnQoc3Ry dWN0IHhlX3ZtX3NuYXBzaG90ICpzbmFwLCBzdHJ1Y3QgZHJtX3ByaW50ZXIgKnApDQo+ICt7DQo+ ICsJdW5zaWduZWQgbG9uZyBpLCBqOw0KPiArDQo+ICsJZm9yIChpID0gMDsgaSA8IHNuYXAtPm51 bV9zbmFwczsgaSsrKSB7DQo+ICsJCWlmIChJU19FUlIoc25hcC0+c25hcFtpXS5kYXRhKSkNCj4g KwkJCWdvdG8gdW5jYXB0dXJlZDsNCj4gKw0KPiArCQlkcm1fcHJpbnRmKHAsICJbJWxseF0ubGVu Z3RoOiAweCVseFxuIiwgc25hcC0+c25hcFtpXS5vZnMsIHNuYXAtPnNuYXBbaV0ubGVuKTsNCj4g Kw0KPiArCQlmb3IgKGogPSAwOyBqIDwgc25hcC0+c25hcFtpXS5sZW47IGogKz0gNjQpIHsNCj4g KwkJCXVpbnQzMl90ICp2YWwgPSBzbmFwLT5zbmFwW2ldLmRhdGEgKyBqOw0KPiArCQkJY2hhciBk dW1wZWRbMTZdW0FTQ0lJODVfQlVGU1pdOw0KPiArCQkJY29uc3QgY2hhciAqeFsxNl07DQo+ICsJ CQl1aW50MzJfdCBrOw0KPiArDQo+ICsJCQlmb3IgKGsgPSAwOyBrIDwgMTY7IGsrKykNCj4gKwkJ CQl4W2tdID0gYXNjaWk4NV9lbmNvZGUodmFsW2tdLCBkdW1wZWRba10pOw0KPiArDQo+ICsJCQlk cm1fcHJpbnRmKHAsICJbJWxseF0uZGF0YTogeyAlcywgJXMsICVzLCAlcywgJXMsICVzLCAlcywg JXMsICVzLCAlcywgJXMsICVzLCAlcywgJXMsICVzLCAlcyB9XG4iLA0KPiArCQkJCSAgIHNuYXAt PnNuYXBbaV0ub2ZzICsgaiwgeFswXSwgeFsxXSwgeFsyXSwgeFszXSwgeFs0XSwgeFs1XSwgeFs2 XSwgeFs3XSwNCj4gKwkJCQkgICB4WzhdLCB4WzldLCB4WzEwXSwgeFsxMV0sIHhbMTJdLCB4WzEz XSwgeFsxNF0sIHhbMTVdKTsNCj4gKwkJfQ0KPiArCQljb250aW51ZTsNCj4gKw0KPiArdW5jYXB0 dXJlZDoNCj4gKwkJZHJtX3ByaW50ZihwLCAiVW5hYmxlIHRvIGNhcHR1cmUgcmFuZ2UgWyVsbHgt JWxseF06ICVsaVxuIiwNCj4gKwkJCSAgIHNuYXAtPnNuYXBbaV0ub2ZzLCBzbmFwLT5zbmFwW2ld Lm9mcyArIHNuYXAtPnNuYXBbaV0ubGVuIC0gMSwNCj4gKwkJCSAgIFBUUl9FUlIoc25hcC0+c25h cFtpXS5kYXRhKSk7DQo+ICsJfQ0KPiArfQ0KPiArDQo+ICt2b2lkIHhlX3ZtX3NuYXBzaG90X2Zy ZWUoc3RydWN0IHhlX3ZtX3NuYXBzaG90ICpzbmFwKQ0KPiArew0KPiArCXVuc2lnbmVkIGxvbmcg aTsNCj4gKw0KPiArCWlmICghc25hcCkNCj4gKwkJcmV0dXJuOw0KPiArDQo+ICsJZm9yIChpID0g MDsgaSA8IHNuYXAtPm51bV9zbmFwczsgaSsrKSB7DQo+ICsJCWlmICghSVNfRVJSKHNuYXAtPnNu YXBbaV0uZGF0YSkpDQo+ICsJCQlrdmZyZWUoc25hcC0+c25hcFtpXS5kYXRhKTsNCj4gKwkJeGVf Ym9fcHV0KHNuYXAtPnNuYXBbaV0uYm8pOw0KPiArCQlpZiAoc25hcC0+c25hcFtpXS5tbSkNCj4g KwkJCW1tcHV0KHNuYXAtPnNuYXBbaV0ubW0pOw0KPiArCX0NCj4gKwlrdmZyZWUoc25hcCk7DQo+ ICt9DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uaCBiL2RyaXZlcnMv Z3B1L2RybS94ZS94ZV92bS5oDQo+IGluZGV4IGU5YzkwN2NiY2Q4OS4uOGIwNjFmMWY3NTNhIDEw MDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uaA0KPiArKysgYi9kcml2ZXJz L2dwdS9kcm0veGUveGVfdm0uaA0KPiBAQCAtMjU5LDMgKzI1OSw4IEBAIHN0YXRpYyBpbmxpbmUg dm9pZCB2bV9kYmcoY29uc3Qgc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCj4gIHsgLyogbm9vcCAq LyB9DQo+ICAjZW5kaWYNCj4gICNlbmRpZg0KPiArDQo+ICtzdHJ1Y3QgeGVfdm1fc25hcHNob3Qg KnhlX3ZtX3NuYXBzaG90X2NhcHR1cmUoc3RydWN0IHhlX3ZtICp2bSk7DQo+ICt2b2lkIHhlX3Zt X3NuYXBzaG90X2NhcHR1cmVfZGVsYXllZChzdHJ1Y3QgeGVfdm1fc25hcHNob3QgKnNuYXApOw0K PiArdm9pZCB4ZV92bV9zbmFwc2hvdF9wcmludChzdHJ1Y3QgeGVfdm1fc25hcHNob3QgKnNuYXAs IHN0cnVjdCBkcm1fcHJpbnRlciAqcCk7DQo+ICt2b2lkIHhlX3ZtX3NuYXBzaG90X2ZyZWUoc3Ry dWN0IHhlX3ZtX3NuYXBzaG90ICpzbmFwKTsNCg0K