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=-3.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT 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 5ABC1C54FD1 for ; Tue, 24 Mar 2020 20:11:48 +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 3137920A8B for ; Tue, 24 Mar 2020 20:11:48 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=shipmail.org header.i=@shipmail.org header.b="rsA1aHDO" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3137920A8B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=shipmail.org 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 88DBE6E081; Tue, 24 Mar 2020 20:11:46 +0000 (UTC) Received: from ste-pvt-msa2.bahnhof.se (ste-pvt-msa2.bahnhof.se [213.80.101.71]) by gabe.freedesktop.org (Postfix) with ESMTPS id C310A6E081 for ; Tue, 24 Mar 2020 20:11:44 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by ste-pvt-msa2.bahnhof.se (Postfix) with ESMTP id BEB513FA05; Tue, 24 Mar 2020 21:11:42 +0100 (CET) Authentication-Results: ste-pvt-msa2.bahnhof.se; dkim=pass (1024-bit key; unprotected) header.d=shipmail.org header.i=@shipmail.org header.b=rsA1aHDO; dkim-atps=neutral X-Virus-Scanned: Debian amavisd-new at bahnhof.se Authentication-Results: ste-ftg-msa2.bahnhof.se (amavisd-new); dkim=pass (1024-bit key) header.d=shipmail.org Received: from ste-pvt-msa2.bahnhof.se ([127.0.0.1]) by localhost (ste-ftg-msa2.bahnhof.se [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sP5IkoIP5JqO; Tue, 24 Mar 2020 21:11:41 +0100 (CET) Received: from mail1.shipmail.org (h-205-35.A357.priv.bahnhof.se [155.4.205.35]) (Authenticated sender: mb878879) by ste-pvt-msa2.bahnhof.se (Postfix) with ESMTPA id 4F83B3F5ED; Tue, 24 Mar 2020 21:11:35 +0100 (CET) Received: from localhost.localdomain.localdomain (h-205-35.A357.priv.bahnhof.se [155.4.205.35]) by mail1.shipmail.org (Postfix) with ESMTPSA id 3660C360153; Tue, 24 Mar 2020 21:11:34 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=shipmail.org; s=mail; t=1585080695; bh=o42Pw7ML58AHBwOIBctEXbMEjeehm6RR+xNAMWuMCFk=; h=From:To:Cc:Subject:Date:From; b=rsA1aHDO4MZRDbwy1K+DcPaBoIApYtfAtgzYG4uQ88Zb7SpTVEpsrUBbxuN5uJkdn P0DwARioxZLQjHeQ4zjEAoVCa46vvGF/UWejOv7uVh4Wh/WiM3Xv0zRR2cR2J0vlz0 seUpbQmn4NTSGOl0fT3YDE+HvKj+TT/j3Kg6K3oY= From: =?UTF-8?q?Thomas=20Hellstr=C3=B6m=20=28VMware=29?= To: linux-mm@kvack.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 0/9] Huge page-table entries for TTM Date: Tue, 24 Mar 2020 21:11:14 +0100 Message-Id: <20200324201123.3118-1-thomas_os@shipmail.org> X-Mailer: git-send-email 2.21.1 MIME-Version: 1.0 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: Ralph Campbell , Michal Hocko , pv-drivers@vmware.com, Thomas Hellstrom , Dan Williams , "Matthew Wilcox \(Oracle\)" , =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , linux-graphics-maintainer@vmware.com, Andrew Morton , =?UTF-8?q?Christian=20K=C3=B6nig?= , "Kirill A. Shutemov" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" RnJvbTogVGhvbWFzIEhlbGxzdHJvbSAoVk13YXJlKSA8dGhvbWFzX29zQHNoaXBtYWlsLm9yZz4K CkluIG9yZGVyIHRvIHJlZHVjZSBDUFUgdXNhZ2UgWzFdIGFuZCBpbiB0aGVvcnkgVExCIG1pc3Nl cyB0aGlzIHBhdGNoc2V0IGVuYWJsZXMKaHVnZS0gYW5kIGdpYW50IHBhZ2UtdGFibGUgZW50cmll cyBmb3IgVFRNIGFuZCBUVE0tZW5hYmxlZCBncmFwaGljcyBkcml2ZXJzLgoKUGF0Y2ggMSBhbmQg MiBpbnRyb2R1Y2UgYSB2bWFfaXNfc3BlY2lhbF9odWdlKCkgZnVuY3Rpb24gdG8gbWFrZSB0aGUg bW0gY29kZQp0YWtlIHRoZSBzYW1lIHBhdGggYXMgREFYIHdoZW4gc3BsaXR0aW5nIGh1Z2UtIGFu ZCBnaWFudCBwYWdlIHRhYmxlIGVudHJpZXMsCih3aGljaCBjdXJyZW50bHkgbWVhbnMgemFwcGlu ZyB0aGUgcGFnZS10YWJsZSBlbnRyeSBhbmQgcmVseSBvbiByZS1mYXVsdGluZykuCgpQYXRjaCAz IG1ha2VzIHRoZSBtbSBjb2RlIHNwbGl0IGV4aXN0aW5nIGh1Z2UgcGFnZS10YWJsZSBlbnRyaWVz Cm9uIGh1Z2VfZmF1bHQgZmFsbGJhY2tzLiBUeXBpY2FsbHkgb24gQ09XIG9yIG9uIGJ1ZmZlci1v YmplY3RzIHRoYXQgd2FudAp3cml0ZS1ub3RpZnkuIENPVyBhbmQgd3JpdGUtbm90aWZpY2F0aW9u IGlzIGFsd2F5cyBkb25lIG9uIHRoZSBsb3dlc3QKcGFnZS10YWJsZSBsZXZlbC4gU2VlIHRoZSBw YXRjaCBsb2cgbWVzc2FnZSBmb3IgYWRkaXRpb25hbCBjb25zaWRlcmF0aW9ucy4KClBhdGNoIDQg aW50cm9kdWNlcyBmdW5jdGlvbnMgdG8gYWxsb3cgdGhlIGdyYXBoaWNzIGRyaXZlcnMgdG8gbWFu aXB1bGF0ZQp0aGUgY2FjaGluZy0gYW5kIGVuY3J5cHRpb24gZmxhZ3Mgb2YgaHVnZSBwYWdlLXRh YmxlIGVudHJpZXMgd2l0aG91dCB1Z2x5CmhhY2tzLgoKUGF0Y2ggNSBpbXBsZW1lbnRzIHRoZSBo dWdlX2ZhdWx0IGhhbmRsZXIgaW4gVFRNLgpUaGlzIGVuYWJsZXMgaHVnZSBwYWdlLXRhYmxlIGVu dHJpZXMsIHByb3ZpZGVkIHRoYXQgdGhlIGtlcm5lbCBpcyBjb25maWd1cmVkCnRvIHN1cHBvcnQg dHJhbnNodWdlIHBhZ2VzLCBlaXRoZXIgYnkgZGVmYXVsdCBvciB1c2luZyBtYWR2aXNlKCkuCkhv d2V2ZXIsIHRoZXkgYXJlIHVubGlrZWx5IHRvIGJlIGluc2VydGVkIHVubGVzcyB0aGUga2VybmVs IGJ1ZmZlciBvYmplY3QKcGZucyBhbmQgdXNlci1zcGFjZSBhZGRyZXNzZXMgYWxpZ24gcGVyZmVj dGx5LiBUaGVyZSBhcmUgdmFyaW91cyBvcHRpb25zCmhlcmUsIGJ1dCBzaW5jZSBidWZmZXIgb2Jq ZWN0cyB0aGF0IHJlc2lkZSBpbiBzeXN0ZW0gcGFnZXMgdHlwaWNhbGx5IHN0YXJ0CmF0IGh1Z2Ug cGFnZSBib3VuZGFyaWVzIGlmIHRoZXkgYXJlIGJhY2tlZCBieSBodWdlIHBhZ2VzLCB3ZSB0cnkg dG8gZW5mb3JjZQpidWZmZXIgb2JqZWN0IHN0YXJ0aW5nIHBmbnMgYW5kIHVzZXItc3BhY2UgYWRk cmVzc2VzIHRvIGJlIGh1Z2UgcGFnZS1zaXplCmFsaWduZWQgaWYgdGhlaXIgc2l6ZSBleGNlZWRz IGEgaHVnZSBwYWdlLXNpemUuIElmIHB1ZC1zaXplIHRyYW5zaHVnZQooImdpYW50IikgcGFnZXMg YXJlIGVuYWJsZWQgYnkgdGhlIGFyY2gsIHRoZSBzYW1lIGhvbGRzIGZvciB0aG9zZS4KClBhdGNo IDYgaW1wbGVtZW50cyBhIHNwZWNpYWxpemVkIGh1Z2VfZmF1bHQgaGFuZGxlciBmb3Igdm13Z2Z4 LgpUaGUgdm13Z2Z4IGRyaXZlciBtYXkgcGVyZm9ybSBkaXJ0eS10cmFja2luZyBhbmQgbmVlZHMg c29tZSBzcGVjaWFsIGNvZGUKdG8gaGFuZGxlIHRoYXQgY29ycmVjdGx5LgoKUGF0Y2ggNyBpbXBs ZW1lbnRzIGEgZHJtIGhlbHBlciB0byBhbGlnbiB1c2VyLXNwYWNlIGFkZHJlc3NlcyBhY2NvcmRp bmcKdG8gdGhlIGFib3ZlIHNjaGVtZSwgaWYgcG9zc2libGUuCgpQYXRjaCA4IGltcGxlbWVudHMg YSBUVE0gcmFuZ2UgbWFuYWdlciBmb3Igdm13Z2Z4IHRoYXQgZG9lcyB0aGUgc2FtZSBmb3IKZ3Jh cGhpY3MgSU8gbWVtb3J5LiBUaGlzIG1heSBsYXRlciBiZSByZXVzZWQgYnkgb3RoZXIgZ3JhcGhp Y3MgZHJpdmVycwppZiBuZWNlc3NhcnkuCgpQYXRjaCA5IGZpbmFsbHkgaG9va3MgdXAgdGhlIGhl bHBlcnMgb2YgcGF0Y2ggNyBhbmQgOCB0byB0aGUgdm13Z2Z4IGRyaXZlci4KQSBzaW1pbGFyIGNo YW5nZSBpcyBuZWVkZWQgZm9yIGdyYXBoaWNzIGRyaXZlcnMgdGhhdCB3YW50IGEgcmVhc29uYWJs ZQpsaWtlbHlob29kIG9mIGFjdHVhbGx5IHVzaW5nIGh1Z2UgcGFnZS10YWJsZSBlbnRyaWVzLgoK SWYgYSBidWZmZXIgb2JqZWN0IHNpemUgaXMgbm90IGh1Z2UtcGFnZSBvciBnaWFudC1wYWdlIGFs aWduZWQsCml0cyBzaXplIHdpbGwgTk9UIGJlIGluZmxhdGVkIGJ5IHRoaXMgcGF0Y2hzZXQuIFRo aXMgbWVhbnMgdGhhdCB0aGUgYnVmZmVyCm9iamVjdCB0YWlsIHdpbGwgdXNlIHNtYWxsZXIgc2l6 ZSBwYWdlLXRhYmxlIGVudHJpZXMgYW5kIHRodXMgbm8gbWVtb3J5Cm92ZXJoZWFkIG9jY3Vycy4g RHJpdmVycyB0aGF0IHdhbnQgdG8gcGF5IHRoZSBtZW1vcnkgb3ZlcmhlYWQgcHJpY2UgbmVlZCB0 bwppbXBsZW1lbnQgdGhlaXIgb3duIHNjaGVtZSB0byBpbmZsYXRlIGJ1ZmZlci1vYmplY3Qgc2l6 ZXMuCgpQTUQgc2l6ZSBodWdlIHBhZ2UtdGFibGUtZW50cmllcyBoYXZlIGJlZW4gdGVzdGVkIHdp dGggdm13Z2Z4IGFuZCBmb3VuZCB0bwp3b3JrIHdlbGwgYm90aCB3aXRoIHN5c3RlbSBtZW1vcnkg YmFja2VkIGFuZCBJTyBtZW1vcnkgYmFja2VkIGJ1ZmZlciBvYmplY3RzLgoKUFVEIHNpemUgZ2lh bnQgcGFnZS10YWJsZS1lbnRyaWVzIGhhdmUgc2VlbiBsaW1pdGVkIChmYXVsdCBhbmQgQ09XKSB0 ZXN0aW5nCnVzaW5nIGEgbW9kaWZpZWQga2VybmVsICh0byBzdXBwb3J0IDFHQiBwYWdlIGFsbG9j YXRpb25zKSBhbmQgYSBmYWtlIHZtd2dmeApUVE0gbWVtb3J5IHR5cGUuIFRoZSB2bXdnZnggZHJp dmVyIGRvZXMgb3RoZXJ3aXNlIG5vdCBzdXBwb3J0IDFHQi1zaXplIElPCm1lbW9yeSByZXNvdXJj ZXMuCgpUaGlzIHBhdGNoIHNlcmllcyBpcyBub3cgYWJvdXQgdG8gYmVjb21lIGEgcHVsbCByZXF1 ZXN0LgpUaG9tYXMKCkNoYW5nZXMgc2luY2UgUkZDOgoqIENoZWNrIGZvciBidWZmZXIgb2JqZWN0 cyBwcmVzZW50IGluIGNvbnRpZ291cyBJTyBNZW1vcnkgKENocmlzdGlhbiBLw7ZuaWcpCiogUmVi YXNlZCBvbiB0aGUgdm13Z2Z4IGVtdWxhdGVkIGNvaGVyZW50IG1lbW9yeSBmdW5jdGlvbmFsaXR5 LiBUaGF0IHJlYmFzZQogIGFkZHMgcGF0Y2ggNS4KQ2hhbmdlcyBzaW5jZSB2MToKKiBNYWtlIHRo ZSBuZXcgVFRNIHJhbmdlIG1hbmFnZXIgdm13Z2Z4LXNwZWNpZmljLiAoQ2hyaXN0aWFuIEvDtm5p ZykKKiBNaW5vciBmaXhlcyBmb3IgY29uZmlncyB0aGF0IGRvbid0IHN1cHBvcnQgb3Igb25seSBw YXJ0aWFsbHkgc3VwcG9ydAogIHRyYW5zaHVnZSBwYWdlcy4KQ2hhbmdlcyBzaW5jZSB2MjoKKiBN aW5vciBjb2Rpbmcgc3R5bGUgYW5kIGRvYyBmaXhlcyBpbiBwYXRjaCA1LzkgKENocmlzdGlhbiBL w7ZuaWcpCiogUGF0Y2ggNS85IGRvZXNuJ3QgdG91Y2ggbW0uIFJlbW92ZSBmcm9tIHRoZSBwYXRj aCB0aXRsZS4KQ2hhbmdlcyBzaW5jZSB2MzoKKiBBZGRlZCByZXZpZXdzIGFuZCBhY2tzCiogSW1w bGVtZW50ZWQgdWdseSBidXQgZ2VuZXJpYyB0dG1fcGdwcm90X2lzX3dycHJvdGVjdGluZygpIGlu c3RlYWQgb2YgYXJjaAogIHNwZWNpZmljIGNvZGUuCkNoYW5nZXMgc2luY2UgdjQ6CiogQWRkZWQg dGltaW5ncyAoQW5kcmV3IE1vcnRvbikKKiBVcGRhdGVkIGZ1bmN0aW9uIGRvY3VtZW50YXRpb24g KEFuZHJldyBNb3J0b24pCkNoYW5nZXMgc2luY2UgdjU6CiogRml4IGRybSBidWlsZCBlcnJvciB3 aXRoICFDT05GSUdfTU1VCihSZXBvcnRlZC1ieToga2J1aWxkIHRlc3Qgcm9ib3QgPGxrcEBpbnRl bC5jb20+KQpDaGFuZ2VzIHNpbmNlIHY2OgoqIGRybV9maWxlLmMgbmV3IGluY2x1ZGVzIGFsc28g Y29uZGl0aW9uZWQgb24gQ09ORklHX1RSQU5TUEFSRU5UX0hVR0VQQUdFCiogY2hlY2twYXRjaCBj b21wbGFpbmVkIGFib3V0IGZvcm1hdHRpbmcgb2YgYSBjb21taXQgbWVzc2FnZSAtIGZpeGVkLgoq IFVwZGF0ZWQgVGhvbWFzJyBlbWFpbCBhZGRyZXNzCiogQWRkZWQgYWNrcyBmcm9tIEFuZHJldyBN b3J0b24KClsxXQpUaGUgYmVsb3cgdGVzdCBwcm9ncmFtIGdlbmVyYXRlcyB0aGUgZm9sbG93aW5n IGdudSB0aW1lIG91dHB1dCB3aGVuIHJ1biBvbiBhCnZtd2dmeC1lbmFibGVkIGtlcm5lbCB3aXRo b3V0IHRoZSBwYXRjaCBzZXJpZXM6Cgo0Ljc4dXNlciA2LjAyc3lzdGVtIDA6MTAuOTFlbGFwc2Vk IDk5JUNQVSAoMGF2Z3RleHQrMGF2Z2RhdGEgMTYyNG1heHJlc2lkZW50KWsKMGlucHV0cyswb3V0 cHV0cyAoMG1ham9yKzY0MDA3N21pbm9yKXBhZ2VmYXVsdHMgMHN3YXBzCgphbmQgd2l0aCB0aGUg cGF0Y2ggc2VyaWVzOgoKMS43MXVzZXIgMy42MHN5c3RlbSAwOjA1LjQwZWxhcHNlZCA5OCVDUFUg KDBhdmd0ZXh0KzBhdmdkYXRhIDE2NTZtYXhyZXNpZGVudClrCjBpbnB1dHMrMG91dHB1dHMgKDBt YWpvcisyMDA3OW1pbm9yKXBhZ2VmYXVsdHMgMHN3YXBzCgpBIGNvbnNpc3RlbnQgbnVtYmVyIG9m IHJlZHVjZWQgZ3JhcGhpY3MgcGFnZS1mYXVsdHMgY2FuIGJlIHNlZW4gd2l0aCBub3JtYWwKZ3Jh cGhpY3MgYXBwbGljYXRpb25zLCBidXQgcHJvYmFibHkgZHVlIHRvIHRoZSBhZ2dyZXNzaXZlIGJ1 ZmZlciBvYmplY3QKY2FjaGluZyBpbiB2bXdnZnggdXNlci1zcGFjZSBkcml2ZXJzIHRoZSBDUFUg dGltZSByZWR1Y3Rpb24gaXMgd2l0aGluCmVycm9yIGxpbWl0cy4KCiNpbmNsdWRlIDx1bmlzdGQu aD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8c3lzL21tYW4uaD4KI2luY2x1ZGUgPHhm ODZkcm0uaD4KCnN0YXRpYyB2b2lkIGNoZWNrZXJyKGludCByZXQsIGNvbnN0IGNoYXIgKm5hbWUp CnsKICBpZiAocmV0IDwgMCkgewogICAgcGVycm9yKG5hbWUpOwogICAgZXhpdCgtMSk7CiAgfQp9 CgppbnQgbWFpbihpbnQgYWdjLCBjb25zdCBjaGFyICphcmd2W10pCnsKICAgIHN0cnVjdCBkcm1f bW9kZV9jcmVhdGVfZHVtYiBjX2FyZyA9IHswfTsKICAgIHN0cnVjdCBkcm1fbW9kZV9tYXBfZHVt YiBtX2FyZyA9IHswfTsKICAgIHN0cnVjdCBkcm1fbW9kZV9kZXN0cm95X2R1bWIgZF9hcmcgPSB7 MH07CiAgICBpbnQgcmV0LCBpLCBmZDsKICAgIHZvaWQgKm1hcDsKCiAgICBmZCA9IG9wZW4oIi9k ZXYvZHJpL2NhcmQwIiwgT19SRFdSKTsKICAgIGNoZWNrZXJyKGZkLCBhcmd2WzBdKTsKCiAgICBm b3IgKGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgewogICAgICBjX2FyZy5icHAgPSAzMjsKICAgICAg Y19hcmcud2lkdGggPSAxMDI0OwogICAgICBjX2FyZy5oZWlnaHQgPSAxMDI0OyAgICAgIAogICAg ICByZXQgPSBkcm1Jb2N0bChmZCwgRFJNX0lPQ1RMX01PREVfQ1JFQVRFX0RVTUIsICZjX2FyZyk7 CiAgICAgIGNoZWNrZXJyKGZkLCBhcmd2WzBdKTsKCiAgICAgIG1fYXJnLmhhbmRsZSA9IGNfYXJn LmhhbmRsZTsKICAgICAgcmV0ID0gZHJtSW9jdGwoZmQsIERSTV9JT0NUTF9NT0RFX01BUF9EVU1C LCAmbV9hcmcpOwogICAgICBjaGVja2VycihmZCwgYXJndlswXSk7CiAgICAgIAogICAgICBtYXAg PSBtbWFwKE5VTEwsIGNfYXJnLnNpemUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsIE1BUF9TSEFS RUQsIGZkLAoJICAgICAgIG1fYXJnLm9mZnNldCk7CiAgICAgIGNoZWNrZXJyKG1hcCA9PSBNQVBf RkFJTEVEID8gLTEgOiAwLCBhcmd2WzBdKTsKCiAgICAgICh2b2lkKSBtYWR2aXNlKCh2b2lkICop IG1hcCwgY19hcmcuc2l6ZSwgTUFEVl9IVUdFUEFHRSk7CiAgICAgIG1lbXNldChtYXAsIDB4Njcs IGNfYXJnLnNpemUpOwogICAgICBtdW5tYXAobWFwLCBjX2FyZy5zaXplKTsKCiAgICAgIGRfYXJn LmhhbmRsZSA9IGNfYXJnLmhhbmRsZTsKICAgICAgcmV0ID0gZHJtSW9jdGwoZmQsIERSTV9JT0NU TF9NT0RFX0RFU1RST1lfRFVNQiwgJmRfYXJnKTsKICAgICAgY2hlY2tlcnIocmV0LCBhcmd2WzBd KTsKICAgIH0KICAgIAogICAgY2xvc2UoZmQpOwp9CgpDYzogQW5kcmV3IE1vcnRvbiA8YWtwbUBs aW51eC1mb3VuZGF0aW9uLm9yZz4KQ2M6IE1pY2hhbCBIb2NrbyA8bWhvY2tvQHN1c2UuY29tPgpD YzogIk1hdHRoZXcgV2lsY294IChPcmFjbGUpIiA8d2lsbHlAaW5mcmFkZWFkLm9yZz4KQ2M6ICJL aXJpbGwgQS4gU2h1dGVtb3YiIDxraXJpbGwuc2h1dGVtb3ZAbGludXguaW50ZWwuY29tPgpDYzog UmFscGggQ2FtcGJlbGwgPHJjYW1wYmVsbEBudmlkaWEuY29tPgpDYzogIkrDqXLDtG1lIEdsaXNz ZSIgPGpnbGlzc2VAcmVkaGF0LmNvbT4KQ2M6ICJDaHJpc3RpYW4gS8O2bmlnIiA8Y2hyaXN0aWFu LmtvZW5pZ0BhbWQuY29tPgpDYzogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5j b20+CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==