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 19C5EC4727E for ; Sat, 3 Oct 2020 09:42:08 +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 AC7E8206C9 for ; Sat, 3 Oct 2020 09:42:07 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="fHOZACyf"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="GL35iCc9" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AC7E8206C9 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch 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:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=psj/3Q5GrJoSXQxyaf9Fe459k5KK3dpKdS/MOZIzGTc=; b=fHOZACyfEuqcr48Vrn0w1J7vq QmGGrUaH6rCYbYNf0J5s/XZhXOFHN29P293uTZgN178mU1dCm5w/9DyvPQHwrj1APiZQzh4Ah0T4w FGLZdSqlBSihwL4JYMmLIY5DVyuoNf4AblpejwUXQ3pOWakezdpZ1pVlShDTeXu5UIPhSVjY41//z U6sU39Wa8eGBxbBDZ6Av7Hn0BHu4B+VMVYJgYvEkOVMjKSOaRYZBdHso46i6C0rchdLhNDjs/vdq7 wJCZwdE6xC+ULeZiTalxrUwv9hryg6WvhH1U0Hz/+g1bNegCmeTE0zSExXI7hKp8cksHLQODV9spZ z5X+t76dw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kOe1v-00017p-CL; Sat, 03 Oct 2020 09:40:39 +0000 Received: from mail-ot1-x342.google.com ([2607:f8b0:4864:20::342]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kOe1s-00016Q-0W for linux-arm-kernel@lists.infradead.org; Sat, 03 Oct 2020 09:40:37 +0000 Received: by mail-ot1-x342.google.com with SMTP id s66so3852955otb.2 for ; Sat, 03 Oct 2020 02:40:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=1IZAi5s6+kebXuKy30pJzhrn3uVlK6wzZN8mckpc+wk=; b=GL35iCc9L9oiUfbl52pEr/agxgzU4rhePYOaPgaSpdvfft2Ih+b6BO9rUrVs+VKESO h3krhGRnnJ87U/QwQ78vNhd79cC2ElpmbWWAUdHmo0V6B+fgotJnWqTv6/OMfhxSBxEB BEX9HN1OATqeSZ+sY31qtk7NPPktObx69lSig= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=1IZAi5s6+kebXuKy30pJzhrn3uVlK6wzZN8mckpc+wk=; b=d2QjywWnO0eAa813mmkR2CBhDHhARrtZjg1oAmaR9dYr8OzG8R3VKQ7hWLXkchJ08w pDFyIuzolQWT8LZVbPpXdikW9hdrEIRwlwWm0SCYeWYpUKMFk5xsDTa+8d144L4ljX13 9IeYoJrYS7r4mjuowb1B+GRSflnnsT4Gw4BqlvE+597JVw/DpvmN9vskoakJW2/uwt0G 4rm38MueeP69viF3evkAsIR9rF5sjqs7AteMzbU4uUNafhsni7I98wfMSdK4yV06yeTF NIhO38U27vjNYPIASRafOtgVgn6dPTyLuLBsmQtTo2fpAvyk9+Ob4Nb25/XoyEciVqT9 PGCA== X-Gm-Message-State: AOAM531+ZdOnbwPexh+eq1WP6zKoSeU2eJEVvy2pKmKP63SXdXlACuiV 6l+6/4G33hBKArMnkzuuNPsGS5ixmzaKSuzr1C5d+Q== X-Google-Smtp-Source: ABdhPJyQ8w5gNa/gr9PqCnmPBfR+rJ2mhoqpvlr+kvRInvo5nifYfALu47116jzszjdcGvv+jDhvijH5X5aOBGv6DWE= X-Received: by 2002:a05:6830:11d8:: with SMTP id v24mr504776otq.188.1601718033491; Sat, 03 Oct 2020 02:40:33 -0700 (PDT) MIME-Version: 1.0 References: <20201002175303.390363-1-daniel.vetter@ffwll.ch> <20201002175303.390363-2-daniel.vetter@ffwll.ch> <20201002180603.GL9916@ziepe.ca> <20201002233118.GM9916@ziepe.ca> In-Reply-To: <20201002233118.GM9916@ziepe.ca> From: Daniel Vetter Date: Sat, 3 Oct 2020 11:40:22 +0200 Message-ID: Subject: Re: [PATCH 2/2] mm/frame-vec: use FOLL_LONGTERM To: Jason Gunthorpe X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201003_054036_283341_C7FA2042 X-CRM114-Status: GOOD ( 46.73 ) 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?SsOpcsO0bWUgR2xpc3Nl?= , 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 T24gU2F0LCBPY3QgMywgMjAyMCBhdCAxOjMxIEFNIEphc29uIEd1bnRob3JwZSA8amdnQHppZXBl LmNhPiB3cm90ZToKPgo+IE9uIEZyaSwgT2N0IDAyLCAyMDIwIGF0IDA4OjE2OjQ4UE0gKzAyMDAs IERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiBPbiBGcmksIE9jdCAyLCAyMDIwIGF0IDg6MDYgUE0g SmFzb24gR3VudGhvcnBlIDxqZ2dAemllcGUuY2E+IHdyb3RlOgo+ID4gPiBPbiBGcmksIE9jdCAw MiwgMjAyMCBhdCAwNzo1MzowM1BNICswMjAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiA+ IEZvciAkcmVhc29ucyBJJ3ZlIHN0dW1ibGVkIG92ZXIgdGhpcyBjb2RlIGFuZCBJJ20gbm90IHN1 cmUgdGhlIGNoYW5nZQo+ID4gPiA+IHRvIHRoZSBuZXcgZ3VwIGZ1bmN0aW9ucyBpbiA1NWE2NTBj MzVmZWEgKCJtbS9ndXA6IGZyYW1lX3ZlY3RvcjoKPiA+ID4gPiBjb252ZXJ0IGdldF91c2VyX3Bh Z2VzKCkgLS0+IHBpbl91c2VyX3BhZ2VzKCkiKSB3YXMgZW50aXJlbHkgY29ycmVjdC4KPiA+ID4g Pgo+ID4gPiA+IFRoaXMgaGVyZSBpcyB1c2VkIGZvciBsb25nIHRlcm0gYnVmZmVycyAobm90IGp1 c3QgcXVpY2sgSS9PKSBsaWtlCj4gPiA+ID4gUkRNQSwgYW5kIEpvaG4gbm90ZXMgdGhpcyBpbiBo aXMgcGF0Y2guIEJ1dCBJIHRob3VnaHQgdGhlIHJ1bGUgZm9yCj4gPiA+ID4gdGhlc2UgaXMgdGhh dCB0aGV5IG5lZWQgdG8gYWRkIEZPTExfTE9OR1RFUk0sIHdoaWNoIEpvaG4ncyBwYXRjaAo+ID4g PiA+IGRpZG4ndCBkby4KPiA+ID4gPgo+ID4gPiA+IFRoZXJlIGlzIGFscmVhZHkgYSBkYXggc3Bl Y2lmaWMgY2hlY2sgKGFkZGVkIGluIGI3ZjA1NTRhNTZmMiAoIm1tOgo+ID4gPiA+IGZhaWwgZ2V0 X3ZhZGRyX2ZyYW1lcygpIGZvciBmaWxlc3lzdGVtLWRheCBtYXBwaW5ncyIpKSwgc28gdGhpcyBz ZWVtcwo+ID4gPiA+IGxpa2UgdGhlIHBydWRlbnQgdGhpbmcgdG8gZG8uCj4gPiA+ID4KPiA+ID4g PiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4K PiA+ID4gPiBDYzogQW5kcmV3IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KPiA+ ID4gPiBDYzogSm9obiBIdWJiYXJkIDxqaHViYmFyZEBudmlkaWEuY29tPgo+ID4gPiA+IENjOiBK w6lyw7RtZSBHbGlzc2UgPGpnbGlzc2VAcmVkaGF0LmNvbT4KPiA+ID4gPiBDYzogSmFuIEthcmEg PGphY2tAc3VzZS5jej4KPiA+ID4gPiBDYzogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0Bp bnRlbC5jb20+Cj4gPiA+ID4gQ2M6IGxpbnV4LW1tQGt2YWNrLm9yZwo+ID4gPiA+IENjOiBsaW51 eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPiA+ID4gPiBDYzogbGludXgtc2Ftc3Vu Zy1zb2NAdmdlci5rZXJuZWwub3JnCj4gPiA+ID4gQ2M6IGxpbnV4LW1lZGlhQHZnZXIua2VybmVs Lm9yZwo+ID4gPiA+IEhpIGFsbCwKPiA+ID4gPgo+ID4gPiA+IEkgc3R1bWJsZWQgb3ZlciB0aGlz IGFuZCBmaWd1cmVkIHR5cGluZyB0aGlzIHBhdGNoIGNhbid0IGh1cnQuIFJlYWxseQo+ID4gPiA+ IGp1c3QgdG8gbWF5YmUgbGVhcm4gYSBmZXcgdGhpbmdzIGFib3V0IGhvdyBndXAvcHVwIGlzIHN1 cHBvc2VkIHRvIGJlCj4gPiA+ID4gdXNlZCAod2UgaGF2ZSBhIGJpdCBvZiB0aGF0IGluIGRyaXZl cnMvZ3B1KSwgdGhpcyBoZXJlIGlzbid0IHJlYWxseQo+ID4gPiA+IHJhbGF0ZWQgdG8gYW55dGhp bmcgSSdtIGRvaW5nLgo+ID4gPgo+ID4gPiBGT0xMX0ZPUkNFIGlzIGEgcHJldHR5IGJpZyBjbHVl IGl0IHNob3VsZCBiZSBGT0xMX0xPTkdURVJNLCBJTUhPCj4gPgo+ID4gU2luY2UgeW91J3JlIGhl cmUgLi4uIEkndmUgbm90aWNlZCB0aGF0IGliIHNldHMgRk9MTF9GT1JDRSB3aGVuIHRoZSBpYgo+ ID4gdmVyYiBhY2Nlc3MgbW9kZSBpbmRpY2F0ZXMgcG9zc2libGUgd3JpdGVzLiBJJ20gbm90IHJl YWxseSBjbGVhciBvbgo+ID4gd2h5IEZPTExfV1JJVEUgaXNuJ3QgZW5vdWdoIGFueSB3aHkgeW91 IG5lZWQgdG8gYmUgYWJsZSB0byB3cml0ZQo+ID4gdGhyb3VnaCBhIHZtYSB0aGF0J3Mgd3JpdGUg cHJvdGVjdGVkIGN1cnJlbnRseS4KPgo+IEFoLCBGT0xMX0ZPUkNFIHwgRk9MTF9XUklURSBtZWFu cyAqcmVhZCogY29uZnVzaW5nbHkgZW5vdWdoLCBhbmQgdGhlCj4gb25seSByZWFzb24geW91J2Qg d2FudCB0aGlzIHZlcnNpb24gZm9yIHJlYWQgaXMgaWYgeW91IGFyZSBkb2luZwo+IGxvbmd0ZXJt IHN0dWZmLiBJIHdyb3RlIGFib3V0IHRoaXMgcmVjZW50bHk6Cj4KPiBodHRwczovL2xvcmUua2Vy bmVsLm9yZy9saW51eC1tbS8yMDIwMDkyODIzNTczOS5HVTk5MTZAemllcGUuY2EvCgpBaCwgc28g ZXNzZW50aWFsbHkgaXQgc2VydmVzIGFzIGEgRk9MTF9HRVRfQ09XX0lTU1VFU19PVVRfT0ZfTVlf V0FZLiBJCnRoaW5rIGRvY3VtZW50YXRpb24gZm9yIHRoaXMsIGFuZC9vciBqdXN0IGF1dG9tYXRp Y2FsbHkgYWRkaW5nIHRoZQpmbGFnIHNldCBjb21iaW5hdGlvbiB3b3VsZCBiZSByZWFsbHkgZ29v ZC4gQnV0IEkgc2VlIEpvaG4gaXMgYWxyZWFkeQpvbiB0b3Agb2YgdGhhdCBpdCBzZWVtcy4KClRo YW5rcyBmb3IgdGhlIGV4cGxhaW5lci4KCj4gPiA+IFNpbmNlIGV2ZXJ5IGRyaXZlciBkb2VzIHRo aXMgd3JvbmcgYW55dGhpbmcgdGhhdCB1c2VzIHRoaXMgaXMgY3JlYXRpbmcKPiA+ID4gdGVycmlm eWluZyBzZWN1cml0eSBpc3N1ZXMuCj4gPiA+Cj4gPiA+IElNSE8gdGhpcyB3aG9sZSBBUEkgc2hv dWxkIGJlIGRlbGV0ZWQgOigKPiA+Cj4gPiBZZWFoIHRoYXQgcGFydCBJIGp1c3QgdHJpZWQgdG8g Y29udmVuaWVudGx5IGlnbm9yZS4gSSBndWVzcyB0aGlzIGRhdGVzCj4gPiBiYWNrIHRvIGEgdGlt ZSB3aGVuIGlvcmVtYXBzIHdoZXJlIGF0IGJlc3QgZml4ZWQsIGFuZCB0aGVyZSB3YXNuJ3QKPiA+ IGFueXRoaW5nIGxpa2UgYSBncHUgZHJpdmVyIGR5bmFtaWNhbGx5IG1hbmFnaW5nIHZyYW0gYXJv dW5kLCByZXN1bHRpbmcKPiA+IGluIHJhbmRvbSBlbnRpcmVseSB1bnJlbGF0ZWQgdGhpbmdzIHBv c3NpYmx5IGJlaW5nIG1hcHBlZCB0byB0aGF0IHNldAo+ID4gb2YgcGZucy4KPgo+IE5vLCBpdCB3 YXMgYWx3YXlzIHdyb25nLiBQcmlvciB0byBHUFUgbGlrZSBjYXNlcyB0aGUgbGlmZXRpbWUgb2Yg dGhlCj4gUFRFIHdhcyB0aWVkIHRvIHRoZSB2bWEgYW5kIHdoZW4gdGhlIHZtYSBiZWNvbWVzIGZy ZWUgdGhlIGRyaXZlciBjYW4KPiBtb3ZlIHRoZSB0aGluZ3MgaW4gdGhlIFBURXMgdG8gJ2ZyZWUn LiBFYXN5IHRvIHRyaWdnZXIgdXNlLWFmdGVyLWZyZWUKPiBpc3N1ZXMgYW5kIGRldmljZXMgbGlr ZSBSRE1BIGhhdmUgc2VjdXJpdHkgY29udGV4dHMgYXR0YWNoZWQgdG8gdGhlc2UKPiBQVEVzIHNv IGl0IGJlY29tZXMgYSBzZXJpb3VzIHNlY3VyaXR5IGJ1ZyB0byBkbyBzb21ldGhpbmcgbGlrZSB0 aGlzLgo+Cj4gPiBUaGUgdW5kZXJseWluZyBmb2xsb3dfcGZuIGlzIGFsc28gdXNlZCBpbiBvdGhl ciBwbGFjZXMgd2l0aGluCj4gPiBkcml2ZXJzL21lZGlhLCBzbyB0aGlzIGRvZXNuJ3Qgc2VlbSB0 byBiZSBhbiBhY2NpZGVudCwgYnV0IGFjdHVhbGx5Cj4gPiBpbnRlbnRpb25hbC4KPgo+IExvb2tp bmcgY2xvc2VseSwgdGhlcmUgYXJlIHZlcnkgZmV3IHVzZXJzLCBtb3N0ICpzZWVtKiBwb2ludGxl c3MsIGJ1dAo+IG1heWJlIHRoZXJlIGlzIGEgY3JhenkgcmVhc29uPwo+Cj4gVGhlIHNlcXVlbmNl Cj4gICBnZXRfdmFkZHJfZnJhbWVzKCk7Cj4gICBmcmFtZV92ZWN0b3JfdG9fcGFnZXMoKTsKPiAg IHNnX2FsbG9jX3RhYmxlX2Zyb21fcGFnZXMoKTsKPgo+IFNob3VsZCBiZSB3cml0dGVuCj4gICBw aW5fdXNlcl9wYWdlc19mYXN0KEZPTExfTE9OR1RFUk0pOwo+ICAgc2dfYWxsb2NfdGFibGVfZnJv bV9wYWdlcygpCgpPaywgdGhhdCB0YWtlcyBjYXJlIG9mIGV4eW5vcyBhbmQgaGFiYW5hbGFicy4g SSdsbCB0cnkgYW5kIHdhY2sKdG9nZXRoZXIgYSBwYXRjaCBmb3IgZXh5bm9zLCB0aGF0IGRyaXZl ciBpcyBhIGJpdCBzcGVjaWFsIC0gZmlyc3QgYXJtCnNvYyBkcml2ZXIgYW5kIHdlIG1lcmdlZCBp dCBmdWxseSB3ZWxsIGF3YXJlIHRoYXQgaXQncyBmdWxsIG9mIHdhcnRzLApqdXN0IGFzIGEgc2hv dyB0byBtYWtlIGl0IGNsZWFyIHRoYXQgZHJpdmVycy9ncHUgaXMgYWxzbyBpbnRlcmVzdGVkIGlu CnNtYWxsIGdwdSBkcml2ZXJzIC4uLgoKPiBUaGVyZSBpcyBzb21lICdzcGVjaWFsJyBjb2RlIGlu IGZyYW1lX3ZlY3Rvcl90b19wYWdlcygpIHRoYXQgdHJpZXMgdG8KPiBnZXQgYSBzdHJ1Y3QgcGFn ZSBmb3IgdGhpbmdzIGZyb20gYSBWTV9JTyBvciBWTV9QRk5NQVAuLi4KPgo+IE9oIHNuYXAsIHRo YXQgaXMgKmNvbXBsZXRlbHkqIGJyb2tlbiEgSWYgdGhlIGZpcnN0IFZNQSBpcyBJT3xQRk5NQVAK PiB0aGVuIGdldF92YWRkcl9mcmFtZXMoKSBpdGVyYXRlcyBvdmVyIGFsbCBWTUFzIGluIHRoZSBy YW5nZSwgb2YgYW55Cj4ga2luZCBhbmQgZXh0cmFjdHMgdGhlIFBURXMgdGhlbiBibGluZGx5IHJl ZmVyZW5jZXMgdGhlbSEgVGhpcyBtZWFucyBpdAo+IGNhbiBiZSB1c2VkIHRvIHVzZSBhZnRlciBm cmVlIG5vcm1hbCBSQU0gc3RydWN0IHBhZ2VzISEgR2FoIQo+Cj4gV293LiBPa2F5LiBUaGF0IGhh cyB0byBnby4KPgo+IFNvLCBJICp0aGluayogd2UgY2FuIGFzc3VtZSB0aGVyZSBpcyBubyBzYW5l IGNhc2VzIHdoZXJlCj4gZnJhbWVfdmVjdG9yX3RvX3BhZ2VzKCkgc3VjY2VlZHMgYnV0IHBpbl91 c2VyX3BhZ2VzKCkgd2Fzbid0IGNhbGxlZC4KPgo+IFRoYXQgbWVhbnMgdGhlIHVzZXJzIGhlcmU6 Cj4gIC0gaGFiYW5hbGFiczogIEhleSBPZGVkIGNhbiB5b3UgZml4IHRoaXMgdXA/Cj4KPiAgLSBn cHUvZXh5bm9zOiBEYW5pZWwgY2FuIHlvdSBnZXQgc29tZW9uZSB0aGVyZSB0byBzdG9wIHVzaW5n IGl0Pwo+Cj4gIC0gbWVkaWEvdmlkZW9idWYgdmlhIHZiMl9kbWFfc2dfZ2V0X3VzZXJwdHIoKQo+ Cj4gU2hvdWxkIGFsbCBiZSBzd2l0Y2hlZCB0byB0aGUgc3RhbmRhcmQgcGluX3VzZXJfcGFnZXMg c2VxdWVuY2UKPiBhYm92ZS4KPgo+IFRoYXQgbGVhdmVzIHRoZSBvbmx5IGludGVyZXN0aW5nIHBs YWNlcyBhcyB2YjJfZGNfZ2V0X3VzZXJwdHIoKSBhbmQKPiB2YjJfdm1hbGxvY19nZXRfdXNlcnB0 cigpIHdoaWNoIGJvdGggY29tcGxldGVseSBmYWlsIHRvIGZvbGxvdyB0aGUKPiBSRVFVSVJFRCBi ZWhhdmlvciBpbiB0aGUgZnVuY3Rpb24ncyBjb21tZW50IGFib3V0IGNoZWNraW5nIFBURXMuIEl0 Cj4ganVzdCBETUEgbWFwcyB0aGVtLiBCYWRseSBicm9rZW4uCj4KPiBHdWVzc2luZyB0aGlzIGhh Y2tlcnkgaXMgZm9yIHNvbWUgZW1iZWRkZWQgUDJQIERNQSB0cmFuc2Zlcj8KClllYWgsIHNlZSBh bHNvIHRoZSBmb2xsb3dfcGZuIHRyaWNrZXJ5IGluCnZpZGVvYnVmX2RtYV9jb250aWdfdXNlcl9n ZXQoKSwgSSB0aGluayB0aGlzIGlzIGZ1bGx5IGludGVudGlvbmFsIGFuZAp1c2Vyc3BhY2UgYWJp IHdlIGNhbid0IGJyZWFrIDotLwoKSXQncyBtaWxkbHkgYmV0dGVyIHRoYW4ganVzdCBzaGFyaW5n IHBoeXNfYWRkcl90IHRocm91Z2ggdXNlcnNwYWNlIGFuZApibGluZGx5IHRydXN0aW5nIGl0LCB3 aGljaCBpcyB3aGF0IGFsbCB0aGUgb3V0LW9mLXRyZWUgY3JhcCBkaWQsIGJ1dApvbmx5IG1pbGRs eS4KCj4gQWZ0ZXIgaGUgdGhyZWUgcGxhY2VzIGFib3ZlIHNob3VsZCB1c2UgcGluX3VzZXJfcGFn ZXNfZmFzdCgpLCB0aGVuCj4gdGhpcyB3aG9sZSBicm9rZW4gQVBJIHNob3VsZCBiZSBtb3ZlZCBp bnRvIHZpZGVvYnVmMi1tZW1vcHMuYyBhbmQgYQo+IGJpZyBmYXQgIlRISVMgRE9FU04nVCBXT1JL IiBzdHVjayBvbiBpdC4KPgo+IHZpZGVvYnVmMiBzaG91bGQgcHJvYmFibHkgdXNlIFAyUCBETUEg YnVmIGZvciB0aGlzIGluc3RlYWQuCgpZdXAgdGhpcyBzaG91bGQgYmUgZG9uZSB3aXRoIGRtYV9i dWYgaW5zdGVhZCwgYW5kIHY0bCBoYXMgdGhhdC4gQnV0Cm9sZCB1YXBpIGFuZCBhbGwgdGhhdC4g VGhpcyBpcyB3aHkgSSBzYWlkIHdlIG1pZ2h0IG5lZWQgYSBuZXcKVk1fRFlOQU1JQ19QRk5NQVAg b3Igc28sIHRvIG1ha2UgZm9sbG93X3BmbiBub3QgcmVzb2x2ZSB0aGlzIGluIHRoZQpjYXNlIHdo ZXJlIHRoZSBkcml2ZXIgbWFuYWdlcyB0aGUgdW5kZXJseWluZyBpb21lbSByYW5nZSAob3Igd2hh dGV2ZXIKaXQgaXMpIGR5bmFtaWNhbGx5IGFuZCBtb3ZlcyBidWZmZXIgb2JqZWN0cyBhcm91bmQs IGxpa2UgZHJtIGRyaXZlcnMKZG8uIEJ1dCBJIGxvb2tlZCwgYW5kIHdlJ3ZlIHJ1biBvdXQgb2Yg dm1hLT52bV9mbGFncyA6LSgKClRoZSBvdGhlciBwcm9ibGVtIGlzIHRoYXQgSSBhbHNvIGhhdmUg bm8gcmVhbCB3b3JraW5nIGNsdWUgYWJvdXQgYWxsCnRoZSBWTV8qIGZsYWdzIGFuZCB3aGF0IHRo ZXkgYWxsIG1lYW4sIGFuZCB3aGV0aGVyIGRybSBkcml2ZXJzIHNldCB0aGUKcmlnaHQgb25lcyBp biBhbGwgY2FzZXMgKHRoZXkgcHJvYmFibHkgZG9uJ3QsIGJ1dCBvaCB3ZWxsKS4KRG9jdW1lbnRh dGlvbiBmb3IgdGhpcyBzdHVmZiBpbiBoZWFkZXJzIGlzIGEgYml0IHRoaW4gYXQgdGltZXMuCi1E YW5pZWwKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0 aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0t a2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==