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=-9.5 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham 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 55BD3C43603 for ; Mon, 9 Dec 2019 12:00:40 +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 372C62077B for ; Mon, 9 Dec 2019 12:00:40 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 372C62077B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.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 DFA2B6E42D; Mon, 9 Dec 2019 12:00:30 +0000 (UTC) Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3EC406E439; Mon, 9 Dec 2019 12:00:23 +0000 (UTC) Received: by mail-wr1-x443.google.com with SMTP id j42so15831687wrj.12; Mon, 09 Dec 2019 04:00:23 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=TBGvky0NnQZeg63n6Ic4zjBFtsUUkKVRowQY0EPm9HY=; b=PwC9Uv6rl4GSYwpJJyQ5tzglycOanDacbteutdqIPQfJZY7SIkaa0MCVhnmTyUY4NF pwxL3k7dpmdmxg1LqtaC3U2l1EDKJTI+jaBof83vmNdRuYpWrE782LLkYmkfYbIcC7ps n9kCbPCN0m3eF7G4IJjaclIqZYm13542A6oQUjwDA2d/rhyzr5G45pH60+5r0wuVJTxh pq/xwMt3iYyLu8uTJpf0duuHzsd5ySNfnClhw6x4bLnLiEYyjkfPgaHm6NlAu2DkxFen +BTrCQ3NqF+bvu5N/3r4P1lv4EE09owuuOWZ9Axakg8JO/mtHbsBaf1ECaPeZiBg+foG mx/A== X-Gm-Message-State: APjAAAXqTGMHFjHfsdFS97QRjsyLWDcCKPWUbH3sAKomgMxWrJVjR2AC xKEzlZ+MSfqsZ95JDebd6yw= X-Google-Smtp-Source: APXvYqzytMwCEmmroCjnIxnRwY1N1RULw4dxYaOOYQhLaEhCr2hA0MscwsiLqycIIzxLlMmwXaE2Ow== X-Received: by 2002:adf:ee82:: with SMTP id b2mr1867255wro.194.1575892821636; Mon, 09 Dec 2019 04:00:21 -0800 (PST) Received: from localhost (pD9E518ED.dip0.t-ipconnect.de. [217.229.24.237]) by smtp.gmail.com with ESMTPSA id n12sm13434368wmd.1.2019.12.09.04.00.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Dec 2019 04:00:20 -0800 (PST) From: Thierry Reding To: Ben Skeggs Subject: [PATCH v3 7/9] drm/nouveau: secboot: Read WPR configuration from GPU registers Date: Mon, 9 Dec 2019 13:00:03 +0100 Message-Id: <20191209120005.2254786-8-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191209120005.2254786-1-thierry.reding@gmail.com> References: <20191209120005.2254786-1-thierry.reding@gmail.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=TBGvky0NnQZeg63n6Ic4zjBFtsUUkKVRowQY0EPm9HY=; b=R03vguED2s40kktOkojE6I7Y7zUvBMrEZHzQ0pAl0RExJQ9WFqnS8NveKy4px4zSwW zaAApsE+tVeQQQ/0QURLCx9CQCG90IwUCVyDPPltroHtK5FpdWADpUXLB3HZtHiAdhrg PfoEzfHGL6S0SA3umXd+vP9CR3Kv/o/UHCgg3Q/tthDud3B9ehasAZ+3Oggtlfe5NC3H Pu7DMu/TLv963y1mStx0yt1tclCM+Dyqirl0sKiCJA+dQFVhyg2k3B4nCjBoUOMsciHG uZGPbrMIaHD7RuhngsnLxGGpWKMTj3IQ3U5e4C5iX8or5jxRw9PCyVOVV5d3XsUo1Fio OIIA== X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-tegra@vger.kernel.org, nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KClRoZSBHUFVzIGZvdW5k IG9uIFRlZ3JhIFNvQ3MgaGF2ZSByZWdpc3RlcnMgdGhhdCBjYW4gYmUgdXNlZCB0byByZWFkIHRo ZQpXUFIgY29uZmlndXJhdGlvbi4gVXNlIHRoZXNlIHJlZ2lzdGVycyBpbnN0ZWFkIG9mIHJlYWNo aW5nIGludG8gdGhlCm1lbW9yeSBjb250cm9sbGVyJ3MgcmVnaXN0ZXIgc3BhY2UgdG8gcmVhZCB0 aGUgc2FtZSBpbmZvcm1hdGlvbi4KClNpZ25lZC1vZmYtYnk6IFRoaWVycnkgUmVkaW5nIDx0cmVk aW5nQG52aWRpYS5jb20+Ci0tLQogLi4uL2RybS9ub3V2ZWF1L252a20vc3ViZGV2L3NlY2Jvb3Qv Z20yMDAuaCAgIHwgIDIgKy0KIC4uLi9kcm0vbm91dmVhdS9udmttL3N1YmRldi9zZWNib290L2dt MjBiLmMgICB8IDgxICsrKysrKysrKysrKy0tLS0tLS0KIC4uLi9kcm0vbm91dmVhdS9udmttL3N1 YmRldi9zZWNib290L2dwMTBiLmMgICB8ICA0ICstCiAzIGZpbGVzIGNoYW5nZWQsIDUzIGluc2Vy dGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9u b3V2ZWF1L252a20vc3ViZGV2L3NlY2Jvb3QvZ20yMDAuaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L252a20vc3ViZGV2L3NlY2Jvb3QvZ20yMDAuaAppbmRleCA2MmM1ZTE2MjA5OWEuLjI4MGIx NDQ4ZGY4OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYv c2VjYm9vdC9nbTIwMC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2 L3NlY2Jvb3QvZ20yMDAuaApAQCAtNDEsNiArNDEsNiBAQCBpbnQgZ20yMDBfc2VjYm9vdF9ydW5f YmxvYihzdHJ1Y3QgbnZrbV9zZWNib290ICosIHN0cnVjdCBudmttX2dwdW9iaiAqLAogCQkJICAg c3RydWN0IG52a21fZmFsY29uICopOwogCiAvKiBUZWdyYS1vbmx5ICovCi1pbnQgZ20yMGJfc2Vj Ym9vdF90ZWdyYV9yZWFkX3dwcihzdHJ1Y3QgZ20yMDBfc2VjYm9vdCAqLCB1MzIpOworaW50IGdt MjBiX3NlY2Jvb3RfdGVncmFfcmVhZF93cHIoc3RydWN0IGdtMjAwX3NlY2Jvb3QgKik7CiAKICNl bmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvc2Vj Ym9vdC9nbTIwYi5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvc2VjYm9v dC9nbTIwYi5jCmluZGV4IGRmOGI5MTlkY2YwOS4uZjhhNTQzMTIyMjE5IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL3N1YmRldi9zZWNib290L2dtMjBiLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvc2VjYm9vdC9nbTIwYi5jCkBAIC0y MywzOSArMjMsNjUgQEAKICNpbmNsdWRlICJhY3IuaCIKICNpbmNsdWRlICJnbTIwMC5oIgogCi0j ZGVmaW5lIFRFR1JBMjEwX01DX0JBU0UJCQkweDcwMDE5MDAwCi0KICNpZmRlZiBDT05GSUdfQVJD SF9URUdSQQotI2RlZmluZSBNQ19TRUNVUklUWV9DQVJWRU9VVDJfQ0ZHMAkJMHhjNTgKLSNkZWZp bmUgTUNfU0VDVVJJVFlfQ0FSVkVPVVQyX0JPTV8wCQkweGM1YwotI2RlZmluZSBNQ19TRUNVUklU WV9DQVJWRU9VVDJfQk9NX0hJXzAJCTB4YzYwCi0jZGVmaW5lIE1DX1NFQ1VSSVRZX0NBUlZFT1VU Ml9TSVpFXzEyOEsJCTB4YzY0Ci0jZGVmaW5lIFRFR1JBX01DX1NFQ1VSSVRZX0NBUlZFT1VUX0NG R19MT0NLRUQJKDEgPDwgMSkKIC8qKgogICogZ20yMGJfc2VjYm9vdF90ZWdyYV9yZWFkX3dwcigp IC0gcmVhZCB0aGUgV1BSIHJlZ2lzdGVycyBvbiBUZWdyYQogICoKLSAqIE9uIGRHUFUsIHdlIGNh biBtYW5hZ2UgdGhlIFdQUiByZWdpb24gb3Vyc2VsdmVzLCBidXQgb24gVGVncmEgdGhlIFdQUiBy ZWdpb24KLSAqIGlzIHJlc2VydmVkIGZyb20gc3lzdGVtIG1lbW9yeSBieSB0aGUgYm9vdGxvYWRl ciBhbmQgaXJyZXZlcnNpYmx5IGxvY2tlZC4KLSAqIFRoaXMgZnVuY3Rpb24gcmVhZHMgdGhlIGFk ZHJlc3MgYW5kIHNpemUgb2YgdGhlIHByZS1jb25maWd1cmVkIFdQUiByZWdpb24uCisgKiBPbiBk R1BVLCB3ZSBjYW4gbWFuYWdlIHRoZSBXUFIgcmVnaW9uIG91cnNlbHZlcywgYnV0IG9uIFRlZ3Jh IHRoaXMgcmVnaW9uCisgKiBpcyBhbGxvY2F0ZWQgZnJvbSBzeXN0ZW0gbWVtb3J5IGJ5IHRoZSBz ZWN1cmUgZmlybXdhcmUuIFRoZSByZWdpb24gaXMgdGhlbgorICogbWFya2VkIGFzIGEgInNlY3Vy ZSBjYXJ2ZW91dCIgYW5kIGlycmV2ZXJzaWJseSBsb2NrZWQuIEZ1cnRoZXJtb3JlLCB0aGUgV1BS CisgKiBzZWN1cmUgY2FydmVvdXQgaXMgYWxzbyBjb25maWd1cmVkIHRvIGJlIHNlbnQgdG8gdGhl IEdQVSB2aWEgYSBkZWRpY2F0ZWQKKyAqIHNlcmlhbCBidXMgYmV0d2VlbiB0aGUgbWVtb3J5IGNv bnRyb2xsZXIgYW5kIHRoZSBHUFUuIFRoZSBHUFUgcmVxdWVzdHMgdGhpcworICogaW5mb3JtYXRp b24gdXBvbiBsZWF2aW5nIHJlc2V0IGFuZCBleHBvc2VzIGl0IHRocm91Z2ggYSBGSUZPIHJlZ2lz dGVyIGF0CisgKiBvZmZzZXQgMHgxMDBjZDQuCisgKgorICogVGhlIEZJRk8gcmVnaXN0ZXIncyBs b3dlciA0IGJpdHMgY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSByZWFkIGluZGV4IGludG8gdGhlCisg KiBGSUZPLiBBZnRlciBlYWNoIHJlYWQgb2YgdGhlIEZJRk8gcmVnaXN0ZXIsIHRoZSByZWFkIGlu ZGV4IGlzIGluY3JlbWVudGVkLgorICoKKyAqIEluZGljZXMgMiBhbmQgMyBjb250YWluIHRoZSBs b3dlciBhbmQgdXBwZXIgYWRkcmVzc2VzIG9mIHRoZSBXUFIuIFRoZXNlIGFyZQorICogc3RvcmVk IGluIHVuaXRzIG9mIDI1NiBCLiBUaGUgV1BSIGlzIGluY2x1c2l2ZSBvZiBib3RoIGFkZHJlc3Nl cy4KKyAqCisgKiBVbmZvcnR1bmF0ZWx5LCBmb3Igc29tZSByZWFzb24gdGhlIFdQUiBpbmZvIHJl Z2lzdGVyIGRvZXNuJ3QgY29udGFpbiB0aGUKKyAqIGNvcnJlY3QgdmFsdWVzIGZvciB0aGUgc2Vj dXJlIGNhcnZlb3V0LiBJdCBzZWVtcyBsaWtlIHRoZSB1cHBlciBhZGRyZXNzIGlzCisgKiBhbHdh eXMgdG9vIHNtYWxsIGJ5IDEyOCBLaUIgLSAxLiBHaXZlbiB0aGF0IHRoZSBzZWN1cmUgY2Fydm91 dCBzaXplIGluIHRoZQorICogbWVtb3J5IGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBpcyBzcGVj aWZpZWQgaW4gdW5pdHMgb2YgMTI4IEtpQiwgaXQncworICogcG9zc2libGUgdGhhdCB0aGUgY29t cHV0YXRpb24gb2YgdGhlIHVwcGVyIGFkZHJlc3Mgb2YgdGhlIFdQUiBpcyB3cm9uZyBhbmQKKyAq IGNhdXNlcyB0aGlzIGRpZmZlcmVuY2UuCiAgKi8KIGludAotZ20yMGJfc2VjYm9vdF90ZWdyYV9y ZWFkX3dwcihzdHJ1Y3QgZ20yMDBfc2VjYm9vdCAqZ3NiLCB1MzIgbWNfYmFzZSkKK2dtMjBiX3Nl Y2Jvb3RfdGVncmFfcmVhZF93cHIoc3RydWN0IGdtMjAwX3NlY2Jvb3QgKmdzYikKIHsKKwlzdHJ1 Y3QgbnZrbV9kZXZpY2UgKmRldmljZSA9IGdzYi0+YmFzZS5zdWJkZXYuZGV2aWNlOwogCXN0cnVj dCBudmttX3NlY2Jvb3QgKnNiID0gJmdzYi0+YmFzZTsKLQl2b2lkIF9faW9tZW0gKm1jOwotCXUz MiBjZmc7CisJdTY0IGJhc2UsIGxpbWl0OworCXUzMiB2YWx1ZTsKIAotCW1jID0gaW9yZW1hcCht Y19iYXNlLCAweGQwMCk7Ci0JaWYgKCFtYykgewotCQludmttX2Vycm9yKCZzYi0+c3ViZGV2LCAi Q2Fubm90IG1hcCBUZWdyYSBNQyByZWdpc3RlcnNcbiIpOwotCQlyZXR1cm4gLUVOT01FTTsKLQl9 Ci0Jc2ItPndwcl9hZGRyID0gaW9yZWFkMzJfbmF0aXZlKG1jICsgTUNfU0VDVVJJVFlfQ0FSVkVP VVQyX0JPTV8wKSB8Ci0JICAgICAgKCh1NjQpaW9yZWFkMzJfbmF0aXZlKG1jICsgTUNfU0VDVVJJ VFlfQ0FSVkVPVVQyX0JPTV9ISV8wKSA8PCAzMik7Ci0Jc2ItPndwcl9zaXplID0gaW9yZWFkMzJf bmF0aXZlKG1jICsgTUNfU0VDVVJJVFlfQ0FSVkVPVVQyX1NJWkVfMTI4SykKLQkJPDwgMTc7Ci0J Y2ZnID0gaW9yZWFkMzJfbmF0aXZlKG1jICsgTUNfU0VDVVJJVFlfQ0FSVkVPVVQyX0NGRzApOwot CWlvdW5tYXAobWMpOworCS8qIHNldCBXUFIgaW5mbyByZWdpc3RlciB0byBwb2ludCBhdCBXUFIg YmFzZSBhZGRyZXNzIHJlZ2lzdGVyICovCisJdmFsdWUgPSBudmttX3JkMzIoZGV2aWNlLCAweDEw MGNkNCk7CisJdmFsdWUgJj0gfjB4ZjsKKwl2YWx1ZSB8PSAweDI7CisJbnZrbV93cjMyKGRldmlj ZSwgMHgxMDBjZDQsIHZhbHVlKTsKKworCS8qIHJlYWQgYmFzZSBhZGRyZXNzICovCisJdmFsdWUg PSBudmttX3JkMzIoZGV2aWNlLCAweDEwMGNkNCk7CisJYmFzZSA9ICh1NjQpKHZhbHVlID4+IDQp IDw8IDEyOworCisJLyogcmVhZCBsaW1pdCAqLworCXZhbHVlID0gbnZrbV9yZDMyKGRldmljZSwg MHgxMDBjZDQpOworCWxpbWl0ID0gKHU2NCkodmFsdWUgPj4gNCkgPDwgMTI7CisKKwkvKgorCSAq IFRoZSB1cHBlciBhZGRyZXNzIG9mIHRoZSBXUFIgc2VlbXMgdG8gYmUgY29tcHV0ZWQgd3Jvbmds eSBhbmQgaXMKKwkgKiBhY3R1YWxseSBTWl8xMjhLIC0gMSBieXRlcyBsb3dlciB0aGFuIGl0IHNo b3VsZCBiZS4gQWRqdXN0IHRoZQorCSAqIHZhbHVlIGFjY29yZGluZ2x5LgorCSAqLworCWxpbWl0 ICs9IFNaXzEyOEsgLSAxOworCisJc2ItPndwcl9zaXplID0gbGltaXQgLSBiYXNlICsgMTsKKwlz Yi0+d3ByX2FkZHIgPSBiYXNlOworCisJbnZrbV9pbmZvKCZzYi0+c3ViZGV2LCAiV1BSOiAlMDE2 bGx4LSUwMTZsbHhcbiIsIHNiLT53cHJfYWRkciwKKwkJICBzYi0+d3ByX2FkZHIgKyBzYi0+d3By X3NpemUgLSAxKTsKIAogCS8qIENoZWNrIHRoYXQgV1BSIHNldHRpbmdzIGFyZSB2YWxpZCAqLwog CWlmIChzYi0+d3ByX3NpemUgPT0gMCkgewpAQCAtNjMsMTEgKzg5LDYgQEAgZ20yMGJfc2VjYm9v dF90ZWdyYV9yZWFkX3dwcihzdHJ1Y3QgZ20yMDBfc2VjYm9vdCAqZ3NiLCB1MzIgbWNfYmFzZSkK IAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JaWYgKCEoY2ZnICYgVEVHUkFfTUNfU0VDVVJJVFlf Q0FSVkVPVVRfQ0ZHX0xPQ0tFRCkpIHsKLQkJbnZrbV9lcnJvcigmc2ItPnN1YmRldiwgIldQUiBy ZWdpb24gbm90IGxvY2tlZFxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQogCXJldHVybiAw OwogfQogI2Vsc2UKQEAgLTg1LDcgKzEwNiw3IEBAIGdtMjBiX3NlY2Jvb3Rfb25laW5pdChzdHJ1 Y3QgbnZrbV9zZWNib290ICpzYikKIAlzdHJ1Y3QgZ20yMDBfc2VjYm9vdCAqZ3NiID0gZ20yMDBf c2VjYm9vdChzYik7CiAJaW50IHJldDsKIAotCXJldCA9IGdtMjBiX3NlY2Jvb3RfdGVncmFfcmVh ZF93cHIoZ3NiLCBURUdSQTIxMF9NQ19CQVNFKTsKKwlyZXQgPSBnbTIwYl9zZWNib290X3RlZ3Jh X3JlYWRfd3ByKGdzYik7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvc2VjYm9vdC9ncDEwYi5jIGIvZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvc2VjYm9vdC9ncDEwYi5jCmluZGV4IDI4 Y2EyOWQwZWVlZS4uZDg0ZTg1ODI1OTk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91 dmVhdS9udmttL3N1YmRldi9zZWNib290L2dwMTBiLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvbnZrbS9zdWJkZXYvc2VjYm9vdC9ncDEwYi5jCkBAIC0yMywxNSArMjMsMTMgQEAKICNp bmNsdWRlICJhY3IuaCIKICNpbmNsdWRlICJnbTIwMC5oIgogCi0jZGVmaW5lIFRFR1JBMTg2X01D X0JBU0UJCQkweDAyYzEwMDAwCi0KIHN0YXRpYyBpbnQKIGdwMTBiX3NlY2Jvb3Rfb25laW5pdChz dHJ1Y3QgbnZrbV9zZWNib290ICpzYikKIHsKIAlzdHJ1Y3QgZ20yMDBfc2VjYm9vdCAqZ3NiID0g Z20yMDBfc2VjYm9vdChzYik7CiAJaW50IHJldDsKIAotCXJldCA9IGdtMjBiX3NlY2Jvb3RfdGVn cmFfcmVhZF93cHIoZ3NiLCBURUdSQTE4Nl9NQ19CQVNFKTsKKwlyZXQgPSBnbTIwYl9zZWNib290 X3RlZ3JhX3JlYWRfd3ByKGdzYik7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotLSAKMi4y My4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=