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=-6.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 1BDFAC35257 for ; Fri, 2 Oct 2020 23:33:05 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 AD9B8206CD for ; Fri, 2 Oct 2020 23:33:04 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="r7NQ5eDj"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=ziepe.ca header.i=@ziepe.ca header.b="oxHLH0ae" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AD9B8206CD Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ziepe.ca Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=DxWQqCBRBc5kyRy+iaIgTyExj3RX71PVpweJk4d9384=; b=r7NQ5eDjL3z2BGYJjT7KdMm2l Tj8mZ/O72O/EILDswD4A6CnzKmj74bMt7Y/24O3qLqUQd/czwmUUYO7cqy/XBQV8jJ2g0eMc1Wh+h 8IRRN8iOPtVYPOk//eCkyLNlADAh66fc0v7oaiRib3gwXzSFgW9dS9iPJLUj0oWOYtV3dFxWc3LgU Y/ScaHOHpIVEyN5GFVWmBpwYIYGz9t8g61ABdnOE4MepKGU0lZVnyebo3FMQ9SfvMhKGpKb0FGXf9 Y8e3lW3u15cFYPdqJX/3hAKwmBmxjR8S4rkPRxMFKKmAb4+CEDuzM0yhgKlpU8HYcwucCxtx/em0y W8MPF9UNg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kOUWL-000404-8r; Fri, 02 Oct 2020 23:31:25 +0000 Received: from mail-qt1-x841.google.com ([2607:f8b0:4864:20::841]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kOUWH-0003z3-UR for linux-arm-kernel@lists.infradead.org; Fri, 02 Oct 2020 23:31:23 +0000 Received: by mail-qt1-x841.google.com with SMTP id r8so3846509qtp.13 for ; Fri, 02 Oct 2020 16:31:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=4xcf1grYkzZ40GImhx9ArjPi8z+FDDNH4w+3GYnxAtI=; b=oxHLH0aecKU6ZSFsu+X6/4TNPdu3StE5pXI9qUV9DxRCuE184dpQ0MXwZ2wsQgyi3A BeHgomu0MRxtT5tovamRjwv1gaXqsOWdiwq6Dr2SNj7+SnXMMFYW59kRSG36fAnlptpk O1kfWov3RjPY+68hJ8aXdbVaGLlcaS5XsFm5ZfF28+QrLZeec1Fw6RuQckr7wHViAeEX v0TDZuYP0EStRRFiUDRssnUNiOyS+C3zOJ5pOM1FpDYuQaVip0Yr8WBhbFusi6cTAy9T cMp8FvYTN8uds+SM3jPEA3efMzFvwUaz0cYsP1idFX0xfhGK5JJw8mPvicmyBimhGr/a PEAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=4xcf1grYkzZ40GImhx9ArjPi8z+FDDNH4w+3GYnxAtI=; b=bCIqYazHtgjT5KrQY2DslnwvWFXpt+DXDjo+G1lnfxuDlPadwBtHtWwYQWMZ+Tne+e SRK/eQEvy9BUeXifrUMsPGZZSRBzjDSjfuDdNKWWXVn56U+yMWHsIltE3atKIQD8skl+ mOyBE7iqcJcaq/mQg1n8e4bXorCWoXGFKgEWmfLVIKW6MGwCKlUhBT0kpU/4dV261rha yOw5TAg7loXMGXRoA51QwF0AjSewgcCwwEC/A3wUvATKzJKSXLRb9T8kNh9vXrp9Racx D0xB+Jywd7wUUYREkTrjB+1KGU6Eeey8eTnOvvPSIWcnb+5I7838D23ZCqRdPU+thzkF 2V5g== X-Gm-Message-State: AOAM531ieMGgpawj8zsds3BDNGcV5G9kfw999HHfqNBHtGKBCwoX0bgB SGZ5ZTY/97HaP6vQnH4CQN1nQw== X-Google-Smtp-Source: ABdhPJwkYFALi12g4/iJsGmcUFAforjHcaKkRzvToN1BiZXvElpblbnhTQ5Y1FCPdg5berfLazc8AQ== X-Received: by 2002:aed:2794:: with SMTP id a20mr4738490qtd.387.1601681479925; Fri, 02 Oct 2020 16:31:19 -0700 (PDT) Received: from ziepe.ca (hlfxns017vw-156-34-48-30.dhcp-dynamic.fibreop.ns.bellaliant.net. [156.34.48.30]) by smtp.gmail.com with ESMTPSA id d12sm2127103qka.34.2020.10.02.16.31.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Oct 2020 16:31:19 -0700 (PDT) Received: from jgg by mlx with local (Exim 4.94) (envelope-from ) id 1kOUWE-006Mau-Ig; Fri, 02 Oct 2020 20:31:18 -0300 Date: Fri, 2 Oct 2020 20:31:18 -0300 From: Jason Gunthorpe To: Daniel Vetter Subject: Re: [PATCH 2/2] mm/frame-vec: use FOLL_LONGTERM Message-ID: <20201002233118.GM9916@ziepe.ca> References: <20201002175303.390363-1-daniel.vetter@ffwll.ch> <20201002175303.390363-2-daniel.vetter@ffwll.ch> <20201002180603.GL9916@ziepe.ca> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201002_193122_276634_F495847C X-CRM114-Status: GOOD ( 35.27 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Oded Gabbay , Inki Dae , linux-samsung-soc , Jan Kara , Joonyoung Shim , Pawel Osciak , John Hubbard , Seung-Woo Kim , LKML , DRI Development , Tomasz Figa , Kyungmin Park , Linux MM , =?utf-8?B?SsOpcsO0bWU=?= Glisse , Daniel Vetter , Andrew Morton , "open list:DMA BUFFER SHARING FRAMEWORK" , Dan Williams , Linux ARM , Marek Szyprowski Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCBPY3QgMDIsIDIwMjAgYXQgMDg6MTY6NDhQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBGcmksIE9jdCAyLCAyMDIwIGF0IDg6MDYgUE0gSmFzb24gR3VudGhvcnBlIDxq Z2dAemllcGUuY2E+IHdyb3RlOgo+ID4gT24gRnJpLCBPY3QgMDIsIDIwMjAgYXQgMDc6NTM6MDNQ TSArMDIwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+ID4gRm9yICRyZWFzb25zIEkndmUgc3R1 bWJsZWQgb3ZlciB0aGlzIGNvZGUgYW5kIEknbSBub3Qgc3VyZSB0aGUgY2hhbmdlCj4gPiA+IHRv IHRoZSBuZXcgZ3VwIGZ1bmN0aW9ucyBpbiA1NWE2NTBjMzVmZWEgKCJtbS9ndXA6IGZyYW1lX3Zl Y3RvcjoKPiA+ID4gY29udmVydCBnZXRfdXNlcl9wYWdlcygpIC0tPiBwaW5fdXNlcl9wYWdlcygp Iikgd2FzIGVudGlyZWx5IGNvcnJlY3QuCj4gPiA+Cj4gPiA+IFRoaXMgaGVyZSBpcyB1c2VkIGZv ciBsb25nIHRlcm0gYnVmZmVycyAobm90IGp1c3QgcXVpY2sgSS9PKSBsaWtlCj4gPiA+IFJETUEs IGFuZCBKb2huIG5vdGVzIHRoaXMgaW4gaGlzIHBhdGNoLiBCdXQgSSB0aG91Z2h0IHRoZSBydWxl IGZvcgo+ID4gPiB0aGVzZSBpcyB0aGF0IHRoZXkgbmVlZCB0byBhZGQgRk9MTF9MT05HVEVSTSwg d2hpY2ggSm9obidzIHBhdGNoCj4gPiA+IGRpZG4ndCBkby4KPiA+ID4KPiA+ID4gVGhlcmUgaXMg YWxyZWFkeSBhIGRheCBzcGVjaWZpYyBjaGVjayAoYWRkZWQgaW4gYjdmMDU1NGE1NmYyICgibW06 Cj4gPiA+IGZhaWwgZ2V0X3ZhZGRyX2ZyYW1lcygpIGZvciBmaWxlc3lzdGVtLWRheCBtYXBwaW5n cyIpKSwgc28gdGhpcyBzZWVtcwo+ID4gPiBsaWtlIHRoZSBwcnVkZW50IHRoaW5nIHRvIGRvLgo+ ID4gPgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGlu dGVsLmNvbT4KPiA+ID4gQ2M6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5v cmc+Cj4gPiA+IENjOiBKb2huIEh1YmJhcmQgPGpodWJiYXJkQG52aWRpYS5jb20+Cj4gPiA+IENj OiBKw6lyw7RtZSBHbGlzc2UgPGpnbGlzc2VAcmVkaGF0LmNvbT4KPiA+ID4gQ2M6IEphbiBLYXJh IDxqYWNrQHN1c2UuY3o+Cj4gPiA+IENjOiBEYW4gV2lsbGlhbXMgPGRhbi5qLndpbGxpYW1zQGlu dGVsLmNvbT4KPiA+ID4gQ2M6IGxpbnV4LW1tQGt2YWNrLm9yZwo+ID4gPiBDYzogbGludXgtYXJt LWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCj4gPiA+IENjOiBsaW51eC1zYW1zdW5nLXNvY0B2 Z2VyLmtlcm5lbC5vcmcKPiA+ID4gQ2M6IGxpbnV4LW1lZGlhQHZnZXIua2VybmVsLm9yZwo+ID4g PiBIaSBhbGwsCj4gPiA+Cj4gPiA+IEkgc3R1bWJsZWQgb3ZlciB0aGlzIGFuZCBmaWd1cmVkIHR5 cGluZyB0aGlzIHBhdGNoIGNhbid0IGh1cnQuIFJlYWxseQo+ID4gPiBqdXN0IHRvIG1heWJlIGxl YXJuIGEgZmV3IHRoaW5ncyBhYm91dCBob3cgZ3VwL3B1cCBpcyBzdXBwb3NlZCB0byBiZQo+ID4g PiB1c2VkICh3ZSBoYXZlIGEgYml0IG9mIHRoYXQgaW4gZHJpdmVycy9ncHUpLCB0aGlzIGhlcmUg aXNuJ3QgcmVhbGx5Cj4gPiA+IHJhbGF0ZWQgdG8gYW55dGhpbmcgSSdtIGRvaW5nLgo+ID4KPiA+ IEZPTExfRk9SQ0UgaXMgYSBwcmV0dHkgYmlnIGNsdWUgaXQgc2hvdWxkIGJlIEZPTExfTE9OR1RF Uk0sIElNSE8KPiAKPiBTaW5jZSB5b3UncmUgaGVyZSAuLi4gSSd2ZSBub3RpY2VkIHRoYXQgaWIg c2V0cyBGT0xMX0ZPUkNFIHdoZW4gdGhlIGliCj4gdmVyYiBhY2Nlc3MgbW9kZSBpbmRpY2F0ZXMg cG9zc2libGUgd3JpdGVzLiBJJ20gbm90IHJlYWxseSBjbGVhciBvbgo+IHdoeSBGT0xMX1dSSVRF IGlzbid0IGVub3VnaCBhbnkgd2h5IHlvdSBuZWVkIHRvIGJlIGFibGUgdG8gd3JpdGUKPiB0aHJv dWdoIGEgdm1hIHRoYXQncyB3cml0ZSBwcm90ZWN0ZWQgY3VycmVudGx5LgoKQWgsIEZPTExfRk9S Q0UgfCBGT0xMX1dSSVRFIG1lYW5zICpyZWFkKiBjb25mdXNpbmdseSBlbm91Z2gsIGFuZCB0aGUK b25seSByZWFzb24geW91J2Qgd2FudCB0aGlzIHZlcnNpb24gZm9yIHJlYWQgaXMgaWYgeW91IGFy ZSBkb2luZwpsb25ndGVybSBzdHVmZi4gSSB3cm90ZSBhYm91dCB0aGlzIHJlY2VudGx5OgoKaHR0 cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGludXgtbW0vMjAyMDA5MjgyMzU3MzkuR1U5OTE2QHppZXBl LmNhLwoKPiA+IFNpbmNlIGV2ZXJ5IGRyaXZlciBkb2VzIHRoaXMgd3JvbmcgYW55dGhpbmcgdGhh dCB1c2VzIHRoaXMgaXMgY3JlYXRpbmcKPiA+IHRlcnJpZnlpbmcgc2VjdXJpdHkgaXNzdWVzLgo+ ID4KPiA+IElNSE8gdGhpcyB3aG9sZSBBUEkgc2hvdWxkIGJlIGRlbGV0ZWQgOigKPiAKPiBZZWFo IHRoYXQgcGFydCBJIGp1c3QgdHJpZWQgdG8gY29udmVuaWVudGx5IGlnbm9yZS4gSSBndWVzcyB0 aGlzIGRhdGVzCj4gYmFjayB0byBhIHRpbWUgd2hlbiBpb3JlbWFwcyB3aGVyZSBhdCBiZXN0IGZp eGVkLCBhbmQgdGhlcmUgd2Fzbid0Cj4gYW55dGhpbmcgbGlrZSBhIGdwdSBkcml2ZXIgZHluYW1p Y2FsbHkgbWFuYWdpbmcgdnJhbSBhcm91bmQsIHJlc3VsdGluZwo+IGluIHJhbmRvbSBlbnRpcmVs eSB1bnJlbGF0ZWQgdGhpbmdzIHBvc3NpYmx5IGJlaW5nIG1hcHBlZCB0byB0aGF0IHNldAo+IG9m IHBmbnMuCgpObywgaXQgd2FzIGFsd2F5cyB3cm9uZy4gUHJpb3IgdG8gR1BVIGxpa2UgY2FzZXMg dGhlIGxpZmV0aW1lIG9mIHRoZQpQVEUgd2FzIHRpZWQgdG8gdGhlIHZtYSBhbmQgd2hlbiB0aGUg dm1hIGJlY29tZXMgZnJlZSB0aGUgZHJpdmVyIGNhbgptb3ZlIHRoZSB0aGluZ3MgaW4gdGhlIFBU RXMgdG8gJ2ZyZWUnLiBFYXN5IHRvIHRyaWdnZXIgdXNlLWFmdGVyLWZyZWUKaXNzdWVzIGFuZCBk ZXZpY2VzIGxpa2UgUkRNQSBoYXZlIHNlY3VyaXR5IGNvbnRleHRzIGF0dGFjaGVkIHRvIHRoZXNl ClBURXMgc28gaXQgYmVjb21lcyBhIHNlcmlvdXMgc2VjdXJpdHkgYnVnIHRvIGRvIHNvbWV0aGlu ZyBsaWtlIHRoaXMuCgo+IFRoZSB1bmRlcmx5aW5nIGZvbGxvd19wZm4gaXMgYWxzbyB1c2VkIGlu IG90aGVyIHBsYWNlcyB3aXRoaW4KPiBkcml2ZXJzL21lZGlhLCBzbyB0aGlzIGRvZXNuJ3Qgc2Vl bSB0byBiZSBhbiBhY2NpZGVudCwgYnV0IGFjdHVhbGx5Cj4gaW50ZW50aW9uYWwuCgpMb29raW5n IGNsb3NlbHksIHRoZXJlIGFyZSB2ZXJ5IGZldyB1c2VycywgbW9zdCAqc2VlbSogcG9pbnRsZXNz LCBidXQKbWF5YmUgdGhlcmUgaXMgYSBjcmF6eSByZWFzb24/CgpUaGUgc2VxdWVuY2UgCiAgZ2V0 X3ZhZGRyX2ZyYW1lcygpOyAKICBmcmFtZV92ZWN0b3JfdG9fcGFnZXMoKTsKICBzZ19hbGxvY190 YWJsZV9mcm9tX3BhZ2VzKCk7IAoKU2hvdWxkIGJlIHdyaXR0ZW4KICBwaW5fdXNlcl9wYWdlc19m YXN0KEZPTExfTE9OR1RFUk0pOyAKICBzZ19hbGxvY190YWJsZV9mcm9tX3BhZ2VzKCkKClRoZXJl IGlzIHNvbWUgJ3NwZWNpYWwnIGNvZGUgaW4gZnJhbWVfdmVjdG9yX3RvX3BhZ2VzKCkgdGhhdCB0 cmllcyB0bwpnZXQgYSBzdHJ1Y3QgcGFnZSBmb3IgdGhpbmdzIGZyb20gYSBWTV9JTyBvciBWTV9Q Rk5NQVAuLi4KCk9oIHNuYXAsIHRoYXQgaXMgKmNvbXBsZXRlbHkqIGJyb2tlbiEgSWYgdGhlIGZp cnN0IFZNQSBpcyBJT3xQRk5NQVAKdGhlbiBnZXRfdmFkZHJfZnJhbWVzKCkgaXRlcmF0ZXMgb3Zl ciBhbGwgVk1BcyBpbiB0aGUgcmFuZ2UsIG9mIGFueQpraW5kIGFuZCBleHRyYWN0cyB0aGUgUFRF cyB0aGVuIGJsaW5kbHkgcmVmZXJlbmNlcyB0aGVtISBUaGlzIG1lYW5zIGl0CmNhbiBiZSB1c2Vk IHRvIHVzZSBhZnRlciBmcmVlIG5vcm1hbCBSQU0gc3RydWN0IHBhZ2VzISEgR2FoIQoKV293LiBP a2F5LiBUaGF0IGhhcyB0byBnby4KClNvLCBJICp0aGluayogd2UgY2FuIGFzc3VtZSB0aGVyZSBp cyBubyBzYW5lIGNhc2VzIHdoZXJlCmZyYW1lX3ZlY3Rvcl90b19wYWdlcygpIHN1Y2NlZWRzIGJ1 dCBwaW5fdXNlcl9wYWdlcygpIHdhc24ndCBjYWxsZWQuCgpUaGF0IG1lYW5zIHRoZSB1c2VycyBo ZXJlOgogLSBoYWJhbmFsYWJzOiAgSGV5IE9kZWQgY2FuIHlvdSBmaXggdGhpcyB1cD8KCiAtIGdw dS9leHlub3M6IERhbmllbCBjYW4geW91IGdldCBzb21lb25lIHRoZXJlIHRvIHN0b3AgdXNpbmcg aXQ/CgogLSBtZWRpYS92aWRlb2J1ZiB2aWEgdmIyX2RtYV9zZ19nZXRfdXNlcnB0cigpCgpTaG91 bGQgYWxsIGJlIHN3aXRjaGVkIHRvIHRoZSBzdGFuZGFyZCBwaW5fdXNlcl9wYWdlcyBzZXF1ZW5j ZQphYm92ZS4KClRoYXQgbGVhdmVzIHRoZSBvbmx5IGludGVyZXN0aW5nIHBsYWNlcyBhcyB2YjJf ZGNfZ2V0X3VzZXJwdHIoKSBhbmQKdmIyX3ZtYWxsb2NfZ2V0X3VzZXJwdHIoKSB3aGljaCBib3Ro IGNvbXBsZXRlbHkgZmFpbCB0byBmb2xsb3cgdGhlClJFUVVJUkVEIGJlaGF2aW9yIGluIHRoZSBm dW5jdGlvbidzIGNvbW1lbnQgYWJvdXQgY2hlY2tpbmcgUFRFcy4gSXQKanVzdCBETUEgbWFwcyB0 aGVtLiBCYWRseSBicm9rZW4uCgpHdWVzc2luZyB0aGlzIGhhY2tlcnkgaXMgZm9yIHNvbWUgZW1i ZWRkZWQgUDJQIERNQSB0cmFuc2Zlcj8KCkFmdGVyIGhlIHRocmVlIHBsYWNlcyBhYm92ZSBzaG91 bGQgdXNlIHBpbl91c2VyX3BhZ2VzX2Zhc3QoKSwgdGhlbgp0aGlzIHdob2xlIGJyb2tlbiBBUEkg c2hvdWxkIGJlIG1vdmVkIGludG8gdmlkZW9idWYyLW1lbW9wcy5jIGFuZCBhCmJpZyBmYXQgIlRI SVMgRE9FU04nVCBXT1JLIiBzdHVjayBvbiBpdC4KCnZpZGVvYnVmMiBzaG91bGQgcHJvYmFibHkg dXNlIFAyUCBETUEgYnVmIGZvciB0aGlzIGluc3RlYWQuCgpKYXNvbgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5n IGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5p bmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=