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 X-Spam-Level: X-Spam-Status: No, score=-2.1 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2C898C4BA3B for ; Thu, 27 Feb 2020 09:20:32 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 0276424688 for ; Thu, 27 Feb 2020 09:20:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="kNhqJW+W" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0276424688 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 20AA96EC72; Thu, 27 Feb 2020 09:20:31 +0000 (UTC) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2041.outbound.protection.outlook.com [40.107.220.41]) by gabe.freedesktop.org (Postfix) with ESMTPS id A9CA16EC71; Thu, 27 Feb 2020 09:20:29 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eBTEWHAQbm8pViuYNAHxVhLii76KsLfpIwKIq6QdBgQaaXoMEwaOaXGisiUUqLAElv/vsR262ADkjfbJ0KKTMtqdThyxRaMeBSMdlTixaPbenVIA68blhy+Vx8frtVncVXH/L8Mt+RwFshdSaMUV8rc7TvwzII+yG/QHDD9IGtGOgpOFkiyy07FE1PkV6BbWMbdksiG5R3f1/WdJ5fB3Veses1iPFd9Yl2LGEgtr/v8UOv7KfIFW3HbUA40pEcfrveJZQmJKr3Yyoml0z04RZD1iPtzxjbwlwtSYpbMhZA+0AfuW18yV3LrLQoqSP14tkQ2BzeBadWzrtl3jOd0g+g== 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=DWWt0TInnhngvOkOpWn5frj8f4eOHK4vBIz7zq5TBCQ=; b=A3JEthK5joqpUv+qfrXSUx+m5VSbsA0GOXBtV6EIY2C+zP9ZIhMnxm6VOXtsF0jJPBlvdGyl7iO3ZOWpsm/1FqvqT6mOoTtKJ6IO20ibLTYRsNrFr+1m3tnxVRAsv3/Mrg0WjFZvC6g78ff5OOADcm5/IWit4hI+aHFuwW3kVDuijWPd9XYhq9WjjxQYQJso/mLGNaguC0yzKrGSTI1Buy4iNTSCj8jyyQl8zGTd3Q7o19Sv3kKEQ5lVuOAHdUWN6Z4TmRr/jdFxN0oLcCfXeS+B2huB0R+BHA+9Yxf8zMd44TKvkbUkKxEujAH8F9WLD0NL34gW6eof7nGmCtmFWw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DWWt0TInnhngvOkOpWn5frj8f4eOHK4vBIz7zq5TBCQ=; b=kNhqJW+WGpayOITUFsuFs7G2oGyvPhUH9XN2bueBApbM+icjV7DiyZttRa20FMqXA3cQWkIqP6pJCtzI+uUovxghsB17KUzrS+2H8VeSgT5nVQuiX0lUZmLHjT2WaaqNy0XHdxSrJEuixbenc8ucPNmCDVHGafH1wy9FT8fKRuo= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Christian.Koenig@amd.com; Received: from DM5PR12MB1705.namprd12.prod.outlook.com (2603:10b6:3:10c::22) by DM5PR12MB1833.namprd12.prod.outlook.com (2603:10b6:3:111::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2750.21; Thu, 27 Feb 2020 09:20:27 +0000 Received: from DM5PR12MB1705.namprd12.prod.outlook.com ([fe80::d40e:7339:8605:bc92]) by DM5PR12MB1705.namprd12.prod.outlook.com ([fe80::d40e:7339:8605:bc92%11]) with mapi id 15.20.2750.021; Thu, 27 Feb 2020 09:20:26 +0000 Subject: Re: [PATCH 5/5] drm/amdgpu: implement amdgpu_gem_prime_move_notify v2 To: Daniel Vetter References: <79a0d79f-91bd-2481-740c-20e6c819c7c9@shipmail.org> <20200220180459.GS2363188@phenom.ffwll.local> <20200220200831.GA2363188@phenom.ffwll.local> <501bf409-e4fe-a318-17b4-d5d050b09529@shipmail.org> <20200221171217.GD2363188@phenom.ffwll.local> <8f29b152-9c7b-3427-efa2-4a39f0daced8@shipmail.org> <7d73bdfa-63d0-11af-7029-382ad1015c4c@amd.com> <20200225171608.GN2363188@phenom.ffwll.local> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: Date: Thu, 27 Feb 2020 10:20:19 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 In-Reply-To: Content-Language: en-US X-ClientProxiedBy: AM3PR05CA0108.eurprd05.prod.outlook.com (2603:10a6:207:1::34) To DM5PR12MB1705.namprd12.prod.outlook.com (2603:10b6:3:10c::22) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2a02:908:1252:fb60:30c0:4f14:1c46:c226] (2a02:908:1252:fb60:30c0:4f14:1c46:c226) by AM3PR05CA0108.eurprd05.prod.outlook.com (2603:10a6:207:1::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2772.14 via Frontend Transport; Thu, 27 Feb 2020 09:20:25 +0000 X-Originating-IP: [2a02:908:1252:fb60:30c0:4f14:1c46:c226] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 359a54d6-a330-4f6b-5f1d-08d7bb6647f7 X-MS-TrafficTypeDiagnostic: DM5PR12MB1833: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1850; X-Forefront-PRVS: 03264AEA72 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4636009)(136003)(376002)(346002)(366004)(39860400002)(396003)(189003)(199004)(31686004)(66946007)(6666004)(186003)(8676002)(81156014)(8936002)(86362001)(81166006)(31696002)(16526019)(2616005)(36756003)(5660300002)(6486002)(66476007)(66556008)(316002)(478600001)(54906003)(2906002)(53546011)(52116002)(6916009)(4326008)(66574012); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR12MB1833; H:DM5PR12MB1705.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: m3RlwRJRgHSZaVzdRWoxZGdlyxgTjBxJKvEc8LFIPFGIPWhlxh2F1GWqWSyuOIicGfatcORQyj/CPfv06Tcj+7f2gGDvwecIJRYFCzBCMmpYPkQhzlYmqbqDurXWjWn/dUjqvfblzsljDZ+ac30UsB1wfyvp2ZPXSdR/yHh+YylKo17crsVVotfTPj/6BYEU4faVwX/2iJDu4bJjbN4wT/c4wbgVyluevLsIIMOmZTmISTV3VaH/OYB+q76gc4W5zhKnlf/EJv1recJwHrodOuxQ9+6ca35tBnfTv9t3uI6GY2+OETF8IfxxkFsxlg8lqMWHVXiFxUrtIdjKXIK9VR/G0XaDKhI2AzS8lxsHQiq5Ii9cgfVB/ELj743MAz9dgS7AxQcpRqp4cHNrsJiikTls5i7nMTCyQ2pkefPoprmHzxf3/jWxHp6Ic8C69SN/ X-MS-Exchange-AntiSpam-MessageData: mCVv9lGCJnenkf8GfswbmwQgbZks3BVB4l7IiPa2StseOUlJIQiIix5xwvStLpuvMlZw5qn/VqGTpVQ+B+NccRJpkRB/QEX+LW44w/uVSpEbRroI4cMs2nlZwk67l9Z7HgNtMmmZJhuXIYUxot41/50VpdNoodUK1aiSxBdJgRDu6hv9ceS3TiXvc+SVqjdccWEmwvrWsrAcw4yJf99a4Q== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 359a54d6-a330-4f6b-5f1d-08d7bb6647f7 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Feb 2020 09:20:26.7785 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: U0XDtpKf9uhy7myYfa0uvkdSueczdkybXEuFFcjZ2uur84sPQzX4ZSP2sNMKZzsF X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1833 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "moderated list:DMA BUFFER SHARING FRAMEWORK" , =?UTF-8?Q?Thomas_Hellstr=c3=b6m_=28VMware=29?= , intel-gfx , dri-devel , "open list:DMA BUFFER SHARING FRAMEWORK" Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QW0gMjYuMDIuMjAgdW0gMTc6MzIgc2NocmllYiBEYW5pZWwgVmV0dGVyOgo+IE9uIFR1ZSwgRmVi IDI1LCAyMDIwIGF0IDY6MTYgUE0gRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPiB3cm90 ZToKPj4gT24gTW9uLCBGZWIgMjQsIDIwMjAgYXQgMDc6NDY6NTlQTSArMDEwMCwgQ2hyaXN0aWFu IEvDtm5pZyB3cm90ZToKPj4+IEFtIDIzLjAyLjIwIHVtIDE3OjU0IHNjaHJpZWIgVGhvbWFzIEhl bGxzdHLDtm0gKFZNd2FyZSk6Cj4+Pj4gT24gMi8yMy8yMCA0OjQ1IFBNLCBDaHJpc3RpYW4gS8O2 bmlnIHdyb3RlOgo+Pj4+PiBBbSAyMS4wMi4yMCB1bSAxODoxMiBzY2hyaWViIERhbmllbCBWZXR0 ZXI6Cj4+Pj4+PiBbU05JUF0KPj4+Pj4+IFllYWggdGhlIEdyZWF0IFBsYW4gKHRtKSBpcyB0byBm dWxseSByZWx5IG9uIHd3X211dGV4IHNsb3dseQo+Pj4+Pj4gZGVnZW5lcmF0aW5nCj4+Pj4+PiBp bnRvIGVzc2VudGlhbGx5IGEgZ2xvYmFsIGxvY2suIEJ1dCBvbmx5IHdoZW4gdGhlcmUncyBhY3R1 YWwgY29udGVudGlvbgo+Pj4+Pj4gYW5kIHRocmFzaGluZy4KPj4+Pj4gWWVzIGV4YWN0bHkuIEEg cmVhbGx5IGJpZyBwcm9ibGVtIGluIFRUTSBpcyBjdXJyZW50bHkgdGhhdCB3ZSBkcm9wCj4+Pj4+ IHRoZSBsb2NrIGFmdGVyIGV2aWN0aW5nIEJPcyBiZWNhdXNlIHRoZXkgdGVuZCB0byBtb3ZlIGlu IGFnYWluCj4+Pj4+IGRpcmVjdGx5IGFmdGVyIHRoYXQuCj4+Pj4+Cj4+Pj4+ICBGcm9tIHByYWN0 aWNlIEkgY2FuIGFsc28gY29uZmlybSB0aGF0IHRoZXJlIGlzIGV4YWN0bHkgemVybyBiZW5lZml0 Cj4+Pj4+IGZyb20gZHJvcHBpbmcgbG9ja3MgZWFybHkgYW5kIHJlYWNxdWlyZSB0aGVtIGZvciBl eGFtcGxlIGZvciB0aGUgVk0KPj4+Pj4gcGFnZSB0YWJsZXMuIFRoYXQncyBqdXN0IG1ha2VzIGl0 IG1vcmUgbGlrZWx5IHRoYXQgc29tZWJvZHkgbmVlZHMgdG8KPj4+Pj4gcm9sbCBiYWNrIGFuZCB0 aGlzIGlzIHdoYXQgd2UgbmVlZCB0byBhdm9pZCBpbiB0aGUgZmlyc3QgcGxhY2UuCj4+Pj4gSWYg eW91IGhhdmUgYSBiZW5jaG1hcmtpbmcgc2V0dXAgYXZhaWxhYmxlIGl0IHdvdWxkIGJlIHZlcnkg aW50ZXJlc3RpbmcKPj4+PiBmb3IgZnV0dXJlIHJlZmVyZW5jZSB0byBzZWUgaG93IGNoYW5naW5n IGZyb20gV0QgdG8gV1cgbXV0ZXhlcyBhZmZlY3RzCj4+Pj4gdGhlIHJvbGwgYmFjayBmcmVxdWVu Y3kuIFdXIGlzIGtub3duIHRvIGNhdXNlIHJvbGxiYWNrcyBtdWNoIGxlc3MKPj4+PiBmcmVxdWVu dGx5IGJ1dCB0aGVyZSBpcyBtb3JlIHdvcmsgYXNzb2NpYXRlZCB3aXRoIGVhY2ggcm9sbGJhY2su Cj4+PiBOb3Qgb2YgaGFuZC4gVG8gYmUgaG9uZXN0IEkgc3RpbGwgaGF2ZSBhIGhhcmQgdGltZSB0 byBnZXQgYSBncmlwIG9uIHRoZQo+Pj4gZGlmZmVyZW5jZSBiZXR3ZWVuIFdEIGFuZCBXVyBmcm9t IHRoZSBhbGdvcml0aG0gcG9pbnQgb2Ygdmlldy4gU28gSSBjYW4ndAo+Pj4ganVkZ2UgdGhhdCBk aWZmZXJlbmNlIGF0IGFsbC4KPj4+Cj4+Pj4+IENvbnRlbnRpb24gb24gQk8gbG9ja3MgZHVyaW5n IGNvbW1hbmQgc3VibWlzc2lvbiBpcyBwZXJmZWN0bHkgZmluZQo+Pj4+PiBhcyBsb25nIGFzIHRo aXMgaXMgYXMgbGlnaHR3ZWlnaHQgYXMgcG9zc2libGUgd2hpbGUgd2UgZG9uJ3QgaGF2ZQo+Pj4+ PiB0cmFzaGluZy4gV2hlbiB3ZSBoYXZlIHRyYXNoaW5nIG11bHRpIHN1Ym1pc3Npb24gcGVyZm9y bWFuY2UgaXMgYmVzdAo+Pj4+PiBhcmNoaXZlZCB0byBqdXN0IGZhdm9yIGEgc2luZ2xlIHByb2Nl c3MgdG8gZmluaXNoIGl0cyBidXNpbmVzcyBhbmQKPj4+Pj4gYmxvY2sgZXZlcnlib2R5IGVsc2Uu Cj4+Pj4gSG1tLiBTb3VuZHMgbGlrZSB3ZSBuZWVkIGEgcGVyLW1hbmFnZXIgd3dfcndzZW0gcHJv dGVjdGluZyBtYW5hZ2VyCj4+Pj4gYWxsb2NhdGlvbiwgdGFrZW4gaW4gd3JpdGUtbW9kZSB0aGVu IHRoZXJlJ3MgdGhyYXNoaW5nLiBJbiByZWFkLW1vZGUKPj4+PiBvdGhlcndpc2UuIFRoYXQgd291 bGQgbGltaXQgdGhlIGFtb3VudCBvZiAidW5uZWNlc3NhcnkiIGxvY2tzIHdlJ2QgaGF2ZQo+Pj4+ IHRvIGtlZXAgYW5kIHJlZHVjZSB1bndhbnRlZCBzaWRlLWVmZmVjdHMsIChzZWUgYmVsb3cpOgo+ Pj4gV2VsbCBwZXItbWFuYWdlciAoeW91IG1lYW4gcGVyIGRvbWFpbiBoZXJlIGRvbid0IHlvdT8p IGRvZXNuJ3Qgc291bmQgbGlrZQo+Pj4gdGhhdCB1c2VmdWwgYmVjYXVzZSB3ZSByYXJlbHkgdXNl IG9ubHkgb25lIGRvbWFpbiwgYnV0IEknbSBhY3R1YWxseQo+Pj4gcXVlc3Rpb25pbmcgZm9yIHF1 aXRlIGEgd2hpbGUgaWYgdGhlIHBlciBCTyBsb2NrIHNjaGVtZSB3YXMgdGhlIHJpZ2h0Cj4+PiBh cHByb2FjaC4KPj4+Cj4+PiBTZWUgZnJvbSB0aGUgcGVyZm9ybWFuY2UgYXNwZWN0IHRoZSBjbG9z ZXN0IHRvIGlkZWFsIHNvbHV0aW9uIEkgY2FuIHRoaW5rIG9mCj4+PiB3b3VsZCBiZSBhIHd3X3J3 c2VtIHBlciB1c2VyIG9mIGEgcmVzb3VyY2UuCj4+Pgo+Pj4gSW4gb3RoZXIgd29yZHMgd2UgZG9u J3QgbG9jayBCT3MsIGJ1dCBpbnN0ZWFkIGEgbGlzdCBvZiBhbGwgdGhlaXIgdXNlcnMgYW5kCj4+ PiB3aGVuIHlvdSB3YW50IHRvIGV2aWN0IGEgQk8geW91IG5lZWQgdG8gd2FsayB0aGF0IGxpc3Qg YW5kIGluZm9ybSBhbGwgdXNlcnMKPj4+IHRoYXQgdGhlIEJPIHdpbGwgYmUgbW92aW5nLgo+Pj4K Pj4+IER1cmluZyBjb21tYW5kIHN1Ym1pc3Npb24geW91IHRoZW4gaGF2ZSB0aGUgZmFzdCBwYXRo IHdoaWNoIHJhdGhlciBqdXN0Cj4+PiBncmFicyB0aGUgcmVhZCBzaWRlIG9mIHRoZSB1c2VyIGxv Y2sgYW5kIGNoZWNrIGlmIGFsbCBCT3MgYXJlIHN0aWxsIGluIHRoZQo+Pj4gZXhwZWN0ZWQgcGxh Y2UuCj4+Pgo+Pj4gSWYgc29tZSBCT3Mgd2VyZSBldmljdGVkIHlvdSBiYWNrIG9mZiBhbmQgc3Rh cnQgdGhlIHNsb3cgcGF0aCwgZS5nLiBtYXliZQo+Pj4gZXZlbiBjb3B5IGFkZGl0aW9uYWwgZGF0 YSBmcm9tIHVzZXJzcGFjZSB0aGVuIGdyYWIgdGhlIHdyaXRlIHNpZGUgb2YgdGhlCj4+PiBsb2Nr IGV0Yy4uIGV0Yy4uLgo+Pj4KPj4+IFRoYXQgYXBwcm9hY2ggaXMgc2ltaWxhciB0byB3aGF0IHdl IHVzZSBpbiBhbWRncHUgd2l0aCB0aGUgcGVyLVZNIEJPcywgYnV0Cj4+PiBnb2VzIGEgc3RlcCBm dXJ0aGVyLiBQcm9ibGVtIGlzIHRoYXQgd2UgYXJlIHNvIHVzZWQgdG8gcGVyIEJPIGxvY2tzIGlu IHRoZQo+Pj4ga2VybmVsIHRoYXQgdGhpcyBpcyBwcm9iYWJseSBub3QgZG9hYmxlIGFueSBtb3Jl Lgo+PiBZZWFoIEkgdGhpbmsgaXQnZCBiZSBuaWNlIHRvIGhhdmUgdGhlIHNhbWUgYXBwcm9hY2gg Zm9yIHNoYXJlZCBibyB0b28uIEkKPj4gZ3Vlc3Mgd2hhdCB3ZSBjb3VsZCBkbyBpcyBzb21ldGhp bmcgbGlrZSB0aGlzIChzcGlubmluZyB5b3VyIHd3X3J3bXV0ZXgKPj4gaWRlYSBhIGJpdCBmdXJ0 aGVyKToKPj4KPj4gZG1hX2J1Zl9yZWFkX2xvY2soYnVmLCB2bSkKPj4gewo+PiAgICAgICAgICBp ZiAoZW5hYmxlZChDT05GSUdfREVCVUdfV1dfTVVURVhfU0xPV1BBVEgpKQo+PiAgICAgICAgICB7 Cj4+ICAgICAgICAgICAgICAgICAgY2hlY2sgdGhhdCB2bSBpcyBpbmRlZWQgbGlzdGVkIGluIGJ1 ZiBhbmQgc3BsYXQgaWYgbm90Cj4+ICAgICAgICAgIH0KPj4KPj4gICAgICAgICAgLyogZm9yIGEg YnVmIHRoYXQncyBub3Qgc2hhcmVkIGluIG11bHRpcGxlIHZtIHdlJ2QgaGF2ZSBidWYtPnJlc3YK Pj4gICAgICAgICAgICogPT0gdm0tPnJlc3YgaGVyZSAqLwo+PiAgICAgICAgICByZXR1cm4gd3df bXV0ZXhfbG9jayh2bS0+cmVzdik7Cj4+IH0KPj4KPj4gZG1hX2J1Zl93cml0ZV9sb2NrKGJ1ZikK Pj4gewo+PiAgICAgICAgICBmb3JfZWFjaF92bV9pbl9idWYoYnVmLCB2bSkgewo+PiAgICAgICAg ICAgICAgICAgIHd3X211dGV4X2xvY2sodm0tPnJlc3YpOwo+PiAgICAgICAgICB9Cj4+IH0KPj4K Pj4gSWRlYWxseSB3ZSdkIHRyYWNrIGFsbCB0aGVzZSB2bXMgd2l0aCBzb21ldGhpbmcgc2xpZ2h0 bHkgbGVzcyBzaG9kZHkgdGhhbgo+PiBhIGxpbmtlZCBsaXN0IDotKSBSZXNpemVhYmxlIGFycmF5 IGlzIHByb2JhYmx5IHByZXR0eSBnb29kLCBJIHRoaW5rIHdlCj4+IG9ubHkgZXZlciBuZWVkIHRv IGdvIGZyb20gYnVmIC0+IHZtIGxpc3QsIG5vdCB0aGUgb3RoZXIgd2F5IHJvdW5kLiBBdAo+PiBs ZWFzdCBpbiBkbWFfcmVzdi9kbWFfYnVmIGNvZGUsIGRyaXZlciBjb2RlIG9mYyBuZWVkcyB0byBr ZWVwIGEgbGlzdCBvZgo+PiBhbGwgYm8gYm91bmQgdG8gYSB2bSBzb21ld2hlcmUuIEJ1dCB0aGF0 J3MgcHJvYmFibHkgYSBtdWNoIGJpZ2dlcgo+PiBkYXRhc3RydWN0dXJlIGZvciB0cmFja2luZyB2 bWEgb2Zmc2V0cyBhbmQgbWFwcGluZ3MgYW5kIG90aGVyIHRoaW5ncyBvbgo+PiB0b3AuCj4+Cj4+ IE9mYyB0byBldmVuIGp1c3QgZ2V0IHRoZXJlIHdlJ2QgbmVlZCBzb21ldGhpbmcgbGlrZSB0aGUg c3VibG9jayBsaXN0IHRvCj4+IGtlZXAgdHJhY2sgb2YgYWxsIHRoZSBhZGRpdGlvbmFsIGxvY2tz IHdlJ2QgbmVlZCBmb3IgdGhlIHdyaXRlciBsb2NrLiBBbmQKPj4gd2UnZCBuZWVkIHRoZSByZWxl YXNlIGNhbGxiYWNrIGZvciBiYWNrb2ZmLCBzbyB0aGF0IHdlIGNvdWxkIGFsc28gZ28KPj4gdGhy b3VnaCB0aGUgc2xvd3BhdGggb24gYSB2bSBvYmplY3QgdGhhdCB3ZSdyZSBub3QgaG9sZGluZyBh IGZ1bGwKPj4gcmVmZXJlbmNlIG9uLiBUaGF0IGFsc28gbWVhbnMgdm0gbmVlZCB0byBiZSByZWZj b3VudGVkLgo+Pgo+PiBBbmQgdGhlIGxpc3Qgb2Ygdm1zIG9uIGEgYnVmZmVyIG5lZWQgdG8gYmUg cHJvdGVjdGVkIHdpdGggc29tZSBsb2NrIGFuZAo+PiB0aGUgdXN1YWwga3JlZl9nZXRfdW5sZXNz X3plcm8gdHJpY2tlcnkuCj4+Cj4+IEJ1dCB3aXRoIGFsbCB0aGlzIEkgdGhpbmsgd2UgY2FuIG1h a2UgdGhlIGRtYV9idWZfd3JpdGVfbG9jayBsb2NrIDEwMCUKPj4gbGlrZSB0aGUgb2xkIHBlci1i dWZmZXIgbG9jayBmb3IgZXZlcnlvbmUuIEFuZCBleGVjYnVmIGNvdWxkIHN3aXRjaCBvdmVyCj4+ IHRvIGRtYV9idWZfcmVhZF9sb2NrIGZvciBzaGFyZWQgYnVmZmVycy4gQm9udXMgcG9pbnRzIHdo ZW4gdGhlIGdwdSBjb250ZXh0Cj4+IGp1c3Qga2VlcHMgdHJhY2sgb2YgYSBsaXN0IG9mIHNoYXJl ZCB2bSB1c2VkIGJ5IGJ1ZmZlcnMgaW4gdGhhdCBjb250ZXh0Cj4+IC4uLgo+Pgo+PiBUaGF0IHdh eSB3ZSBjb3VsZCBtYWtlIHZtIGZhc3RwYXRoIGxvY2tpbmcgYSBsYSBhbWRncHUgb3B0LWluLCB3 aGlsZQo+PiBrZWVwaW5nIGV2ZXJ5b25lIGVsc2Ugb24gdGhlIHBlci1vYmplY3QgbG9ja2luZyBq dWljZXMuCj4+Cj4+IFRob3VnaHRzPwoKQXQgbGVhc3QgdG8gbWUgdGhhdCBzb3VuZHMgbGlrZSBh IHBsYW4uCgo+IE9uZSB0aGluZyBJIGp1c3QgcmVhbGl6ZWQsIHdoaWNoIGlzIG5hc3R5OiBUaGUg ZnVsbCAod3JpdGUpIGxvY2sgbmVlZHMKPiB3d19hY3F1aXJlX2N0eCB3aXRoIHRoaXMsIGJlY2F1 c2UgaXQgbmVlZHMgdG8gdGFrZSBhIGJ1bmNoIG9mIGxvY2tzLgo+IFJvbGxpbmcgdGhhdCBvdXQg ZXZlcnl3aGVyZSBpcyBnb2luZyB0byBiZSBuYXN0eS4KCldoeT8gVGFrZSBhIHNpbmdsZSB3cml0 ZSBsb2NrIHNob3VsZG4ndCBiZSBkaWZmZXJlbnQgdG8gdGFraW5nIGEgc2luZ2xlIAp3d19tdXRl eCwgb3IgYW0gSSBtaXNzaW5nIHNvbWV0aGluZz8KCj4gSSBndWVzcyB0aG91Z2ggd2UgY291bGQg ZG8gYSBmYWxsYmFjayBhbmQgaGF2ZSBhIGxvY2FsbHkgY3JlYXRlZAo+IHd3X2FjcXVpcmVfY3R4 IGlmIHRoZXJlJ3Mgbm9uZSBwYXNzZWQgaW4sIHdpdGggYmFja29mZiBlbnRpcmVseQo+IGltcGxl bWVudGVkIHdpdGhpbiBkbWFfcmVzdl9sb2NrLgoKSG93IHNob3VsZCB0aGF0IHdvcms/IEFzIGZh ciBhcyBJIHVuZGVyc3RhbmQgaXQgdGhlIHd3X2FjcXVpcmVfY3R4IG11c3QgCmJlIGtlcHQgZXhp c3RpbmcgdW50aWwgYWZ0ZXIgdGhlIGxhc3Qgb2YgdGhlIGxvY2tzIGl0IHdhcyB1c2VkIHdpdGgg aXMgCnVubG9ja2VkLiBPciBkbyBJIHNlZSB0aGlzIGluY29ycmVjdGx5PwoKPiAtRGFuaWVsCj4K Pj4gQ2hlZXJzLCBEYW5pZWwKPj4KPj4gUFM6IE9mIGNvdXJzZSB0aGUgd3JpdGUgbG9jayBmb3Ig dGhlc2UgYnVmZmVycyBpcyBnb2luZyB0byBiZSB0ZXJyaWJsZSwgc28KPj4gZXZlcnkgdGltZSB5 b3UgbmVlZCB0byB1cGRhdGUgZmVuY2VzIGZvciBpbXBsaWNpdCBzeW5jIG9uIHNoYXJlZCBidWZm ZXIKPj4gKHdlbGwgd3JpdGUgZmVuY2UgYXQgbGVhc3QpIGl0J3MgZ29pbmcgdG8gc3Vjay4gV2Ug cHJvYmFibHkgYWxzbyB3YW50IGEKPj4gcmVhZF90b193cml0ZV91cGdyYWRlIGZ1bmN0aW9uLCB3 aGljaCBhbHNvIGNhbiBiZSBkb25lIGVhc2lseSB3aXRoCj4+IHd3X211dGV4IG1hZ2ljLgoKSSdt IHRoaW5raW5nIHRoYXQgd2UgcHJvYmFibHkgc29sZSB3YW50IGEgcmVhZF90b193cml0ZSB1cGdy YWRlIGZ1bmN0aW9uLgoKUmVnYXJkcywKQ2hyaXN0aWFuLgoKPj4gLS0KPj4gRGFuaWVsIFZldHRl cgo+PiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPj4KCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=