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 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 13D7ECD37A9 for ; Tue, 3 Sep 2024 17:31:46 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1slXLr-0006yZ-RK; Tue, 03 Sep 2024 13:29:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1slXLp-0006qa-S0 for grub-devel@gnu.org; Tue, 03 Sep 2024 13:29:57 -0400 Received: from mail-lj1-x231.google.com ([2a00:1450:4864:20::231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1slXLk-0004bp-Lw for grub-devel@gnu.org; Tue, 03 Sep 2024 13:29:57 -0400 Received: by mail-lj1-x231.google.com with SMTP id 38308e7fff4ca-2f50f1d864fso65187731fa.1 for ; Tue, 03 Sep 2024 10:29:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725384590; x=1725989390; darn=gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Qvs+TobElYGsz3aR798yWK51ybCCAZ3KQT9YxODozCw=; b=deqDXds25+FR1q9pc/q1wB6uNHh3XOfU1jzHXgWGXzeiIC81636OiyahmMfOMILtFL d7FN0nasR15v6z8HT7vFcCxv+1kxvvl90rPrxIu1Wg3cl+qUpkTuDwsIvuCUHYQCQXWZ M31butIDNrPE/NYE6kuTcCXP/Izp/Ep9TVCHyi8Q+aL/hBUB0j4RaWtX9MTYQH0y/W1F mJm9MJ0Cpej124fFcl1ZiV5yNg2S3CaCnbO0cqlCAnYjcmsEtB8bTUTWSH01OBVfkxEF As4c01fBawScVFvbsHQVgxEghWRsKhSZlBSD7Im1PJqoVDZJfrVHX/0WNavGVOd28Ynf HqrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725384590; x=1725989390; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Qvs+TobElYGsz3aR798yWK51ybCCAZ3KQT9YxODozCw=; b=DTp4WPLuR/I5dse/k+W83PD6foqii4GOJQpHz5I3DtUQ467NZVj831Z8HDhnjJfjxZ 51riS6HRjtfqSSDsx5EOVkS2ZpAY577hsi07wl9pd8ZEueGxuQ0LGMoB42hCUpSOKjBl 6mUw5AQH938gQTDkWj0E5lcfjKi1Vh4UBKSkv5I+90DhvVWKIscP+z90YgCT84wDKgD7 R7crcxHeCSgVfJq6R9qYLb9Y2fp+ZtjIakXu8F3XQD0QSm4m9A/r156R4F6hKvq/qHAb OsQ5DEKtONKKAMgvKvvqnwMhF7V1i0vhs19LQA7rBCn4Fodhizr8Cm5WzD2nh9hlu5/I mGzQ== X-Gm-Message-State: AOJu0YyCYPXv/brSnJk5ZWe86vtxpsrBJMZ+QJ/YEX9tdJCb5iUO0q6P 4T+2XGBnTOim2sbX03lRudplmwt4l0+HjOWx9U13iSmtrFPvdeThe/LFxt+W X-Google-Smtp-Source: AGHT+IGxrVq5xBvGbK3PpzVh4bZCmLcb6laDsH2AenD0dC8xjeuRC/l0T+CMw2kV16FtyU5sTRrSfw== X-Received: by 2002:a05:651c:4cb:b0:2f3:ac52:416b with SMTP id 38308e7fff4ca-2f6290bb0fdmr64028461fa.35.1725384588836; Tue, 03 Sep 2024 10:29:48 -0700 (PDT) Received: from localhost ([5.166.20.5]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-2f615171f9dsm22683261fa.97.2024.09.03.10.29.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Sep 2024 10:29:48 -0700 (PDT) From: Vladimir Serbinenko To: grub-devel@gnu.org Cc: Vladimir Serbinenko Subject: [PATCH v5 3/5] Adjust import script, definitions and API users for libgcrypt 1.10 Date: Tue, 3 Sep 2024 20:29:32 +0300 Message-Id: <20240903172934.26772-3-phcoder@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240903172934.26772-1-phcoder@gmail.com> References: <20240903172934.26772-1-phcoder@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::231; envelope-from=phcoder@gmail.com; helo=mail-lj1-x231.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org U2lnbmVkLW9mZi1ieTogVmxhZGltaXIgU2VyYmluZW5rbyA8cGhjb2RlckBnbWFpbC5jb20+Ci0t LQogYXV0b2dlbi5zaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArCiBj b25mL01ha2VmaWxlLmNvbW1vbiAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBncnVi LWNvcmUvTWFrZWZpbGUuY29yZS5kZWYgICAgICAgICAgICAgICAgIHwgIDM2ICsrLQogZ3J1Yi1j b3JlL2NvbW1hbmRzL2hhc2hzdW0uYyAgICAgICAgICAgICAgICB8ICAgMiArLQogZ3J1Yi1jb3Jl L2NvbW1hbmRzL2xlZ2FjeWNmZy5jICAgICAgICAgICAgICB8ICAgNiArLQogZ3J1Yi1jb3JlL2Nv bW1hbmRzL3BncC5jICAgICAgICAgICAgICAgICAgICB8IDExNCArKystLS0tLS0KIGdydWItY29y ZS9jb21tYW5kcy94bnVfdXVpZC5jICAgICAgICAgICAgICAgfCAgIDIgKy0KIGdydWItY29yZS9k aXNrL2NyeXB0b2Rpc2suYyAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGdydWItY29yZS9pby9n emlvLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGdydWItY29yZS9pby9sem9w aW8uYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGdydWItY29yZS9saWIvYWRsZXIz Mi5jICAgICAgICAgICAgICAgICAgICAgfCAgMjEgKy0KIGdydWItY29yZS9saWIvY3JjNjQuYyAg ICAgICAgICAgICAgICAgICAgICAgfCAgMjQgKy0KIGdydWItY29yZS9saWIvY3J5cHRvLmMgICAg ICAgICAgICAgICAgICAgICAgfCAyNDUgKysrKysrKysrKysrKysrKystCiBncnViLWNvcmUvbGli L2xpYmdjcnlwdC1wYXRjaGVzLzAxX21kLnBhdGNoIHwgMTQxICsrKysrKysrKysrCiBncnViLWNv cmUvbGliL2xpYmdjcnlwdC9zcmMvZ2NyeXB0LWludC5oICAgIHwgIDUxIC0tLS0KIGdydWItY29y ZS9saWIvbGliZ2NyeXB0X3dyYXAvY2lwaGVyX3dyYXAuaCAgfCAgMTQgKy0KIGdydWItY29yZS9s aWIvbGliZ2NyeXB0X3dyYXAvbWVtLmMgICAgICAgICAgfCAgODMgKysrKysrLQogZ3J1Yi1jb3Jl L2xpYi94emVtYmVkL3h6X2RlY19zdHJlYW0uYyAgICAgICB8ICAxOCArLQogaW5jbHVkZS9ncnVi L2NyeXB0by5oICAgICAgICAgICAgICAgICAgICAgICB8IDI2MSArKysrKysrKysrKysrKysrLS0t LQogaW5jbHVkZS9ncnViL2djcnlwdC9ncGctZXJyb3IuaCAgICAgICAgICAgICB8ICAgOSArCiB1 dGlsL2dydWItZnN0ZXN0LmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiB1dGls L2ltcG9ydF9nY3J5LnB5ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTc3ICsrKysrKysrLS0t LS0KIHV0aWwvaW1wb3J0X2djcnlwdF9pbnRoLnNlZCAgICAgICAgICAgICAgICAgfCAgMTcgKysK IHV0aWwvaW1wb3J0X2djcnlwdGguc2VkICAgICAgICAgICAgICAgICAgICAgfCAgIDIgLQogMjQg ZmlsZXMgY2hhbmdlZCwgOTYwIGluc2VydGlvbnMoKyksIDI4MCBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvbGliL2xpYmdjcnlwdC1wYXRjaGVzLzAxX21kLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgdXRpbC9pbXBvcnRfZ2NyeXB0X2ludGguc2VkCgpkaWZmIC0t Z2l0IGEvYXV0b2dlbi5zaCBiL2F1dG9nZW4uc2gKaW5kZXggMTk1ZGFhNTQxLi4wNWJjOWIyZjAg MTAwNzU1Ci0tLSBhL2F1dG9nZW4uc2gKKysrIGIvYXV0b2dlbi5zaApAQCAtMzUsNiArMzUsNyBA QCAke1BZVEhPTn0gdXRpbC9pbXBvcnRfdW5pY29kZS5weSB1bmljb2RlL1VuaWNvZGVEYXRhLnR4 dCB1bmljb2RlL0JpZGlNaXJyb3JpbmcudAogZWNobyAiSW1wb3J0aW5nIGxpYmdjcnlwdC4uLiIK ICR7UFlUSE9OfSB1dGlsL2ltcG9ydF9nY3J5LnB5IGdydWItY29yZS9saWIvbGliZ2NyeXB0LyBn cnViLWNvcmUKIHNlZCAtbiAtZiB1dGlsL2ltcG9ydF9nY3J5cHRoLnNlZCA8IGdydWItY29yZS9s aWIvbGliZ2NyeXB0L3NyYy9nY3J5cHQuaC5pbiA+IGluY2x1ZGUvZ3J1Yi9nY3J5cHQvZ2NyeXB0 LmgKK3NlZCAtbiAtZiB1dGlsL2ltcG9ydF9nY3J5cHRfaW50aC5zZWQgPCBncnViLWNvcmUvbGli L2xpYmdjcnlwdC9zcmMvZ2NyeXB0LWludC5oID4+IGluY2x1ZGUvZ3J1Yi9nY3J5cHQvZ2NyeXB0 LmgKIGlmIFsgLWYgaW5jbHVkZS9ncnViL2djcnlwdC9nMTBsaWIuaCBdOyB0aGVuCiAgICAgcm0g aW5jbHVkZS9ncnViL2djcnlwdC9nMTBsaWIuaAogZmkKQEAgLTUxLDYgKzUyLDEwIEBAIGZvciB4 IGluIG1waS1hc20tZGVmcy5oIG1waWgtYWRkMS5jIG1waWgtc3ViMS5jIG1waWgtbXVsMS5jIG1w aWgtbXVsMi5jIG1waWgtbXVsCiAgICAgY3AgZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi9t cGkvZ2VuZXJpYy8iJHgiIGdydWItY29yZS9saWIvbGliZ2NyeXB0LWdydWIvbXBpLyIkeCIKIGRv bmUKIAorZm9yIHggaW4gZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8qLnBhdGNoOyBk bworICAgIHBhdGNoIC1pICR4IC1wMQorZG9uZQorCiBlY2hvICJHZW5lcmF0aW5nIEF1dG9tYWtl IGlucHV0Li4uIgogCiAjIEF1dG9tYWtlIGRvZXNuJ3QgbGlrZSBpbmNsdWRpbmcgZmlsZXMgZnJv bSBhIHBhdGggb3V0c2lkZSB0aGUgcHJvamVjdC4KZGlmZiAtLWdpdCBhL2NvbmYvTWFrZWZpbGUu Y29tbW9uIGIvY29uZi9NYWtlZmlsZS5jb21tb24KaW5kZXggYzYwZjU1Mzg2Li41Y2FkYTQ1Njgg MTAwNjQ0Ci0tLSBhL2NvbmYvTWFrZWZpbGUuY29tbW9uCisrKyBiL2NvbmYvTWFrZWZpbGUuY29t bW9uCkBAIC04MSw4ICs4MSw4IEBAIENQUEZMQUdTX0dOVUxJQiA9IC1JJCh0b3BfYnVpbGRkaXIp L2dydWItY29yZS9saWIvZ251bGliIC1JJCh0b3Bfc3JjZGlyKS9ncnViLWNvCiBDRkxBR1NfUE9T SVggPSAtZm5vLWJ1aWx0aW4KIENQUEZMQUdTX1BPU0lYID0gLUkkKHRvcF9zcmNkaXIpL2dydWIt Y29yZS9saWIvcG9zaXhfd3JhcAogCi1DRkxBR1NfR0NSWSA9IC1Xbm8tZXJyb3IgLVduby1taXNz aW5nLWZpZWxkLWluaXRpYWxpemVycyAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXVuZGVmICQo Q0ZMQUdTX1BPU0lYKQotQ1BQRkxBR1NfR0NSWSA9IC1JJCh0b3Bfc3JjZGlyKS9ncnViLWNvcmUv bGliL2xpYmdjcnlwdF93cmFwICQoQ1BQRkxBR1NfUE9TSVgpIC1EX0dDUllQVF9JTl9MSUJHQ1JZ UFQ9MSAtSSQodG9wX3NyY2RpcikvaW5jbHVkZS9ncnViL2djcnlwdAorQ0ZMQUdTX0dDUlkgPSAt V25vLWVycm9yPXNpZ24tY29tcGFyZSAtV25vLW1pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzIC1X bm8tcmVkdW5kYW50LWRlY2xzIC1Xbm8tdW5kZWYgJChDRkxBR1NfUE9TSVgpCitDUFBGTEFHU19H Q1JZID0gLUkkKHRvcF9zcmNkaXIpL2dydWItY29yZS9saWIvbGliZ2NyeXB0X3dyYXAgJChDUFBG TEFHU19QT1NJWCkgLURfR0NSWVBUX0lOX0xJQkdDUllQVD0xIC1EX0dDUllQVF9DT05GSUdfSF9J TkNMVURFRD0xIC1ESEFWRV9TVFJUT1VMPTEgLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUvZ3J1Yi9n Y3J5cHQKIAogQ1BQRkxBR1NfRUZJRU1VID0gLUkkKHRvcF9zcmNkaXIpL2dydWItY29yZS9lZmll bXUvcnVudGltZQogCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvTWFrZWZpbGUuY29yZS5kZWYgYi9n cnViLWNvcmUvTWFrZWZpbGUuY29yZS5kZWYKaW5kZXggNzA1ZDczZmFiLi43OTllNGQ0NzEgMTAw NjQ0Ci0tLSBhL2dydWItY29yZS9NYWtlZmlsZS5jb3JlLmRlZgorKysgYi9ncnViLWNvcmUvTWFr ZWZpbGUuY29yZS5kZWYKQEAgLTk3NSw4ICs5NzUsOCBAQCBtb2R1bGUgPSB7CiBtb2R1bGUgPSB7 CiAgIG5hbWUgPSBwZ3A7CiAgIGNvbW1vbiA9IGNvbW1hbmRzL3BncC5jOwotICBjZmxhZ3MgPSAn JChDRkxBR1NfUE9TSVgpJzsKLSAgY3BwZmxhZ3MgPSAnLUkkKHNyY2RpcikvbGliL3Bvc2l4X3dy YXAnOworICBjZmxhZ3MgPSAnJChDRkxBR1NfR0NSWSkgLVduby1yZWR1bmRhbnQtZGVjbHMgLVdu by1zaWduLWNvbXBhcmUnOworICBjcHBmbGFncyA9ICckKENQUEZMQUdTX0dDUlkpJzsKIH07CiAK IG1vZHVsZSA9IHsKQEAgLTIxNzUsNiArMjE3NSwyMiBAQCBtb2R1bGUgPSB7CiAgIGNvbW1vbiA9 IHRlc3RzL3NldGptcF90ZXN0LmM7CiB9OwogCittb2R1bGUgPSB7CisgIG5hbWUgPSBkc2Ffc2V4 cF90ZXN0OworICBjb21tb24gPSB0ZXN0cy9kc2Ffc2V4cF90ZXN0LmM7CisKKyAgY2ZsYWdzID0g JyQoQ0ZMQUdTX0dDUlkpIC1Xbm8tcmVkdW5kYW50LWRlY2xzIC1Xbm8tc2lnbi1jb21wYXJlJzsK KyAgY3BwZmxhZ3MgPSAnJChDUFBGTEFHU19HQ1JZKSc7Cit9OworCittb2R1bGUgPSB7CisgIG5h bWUgPSByc2Ffc2V4cF90ZXN0OworICBjb21tb24gPSB0ZXN0cy9yc2Ffc2V4cF90ZXN0LmM7CisK KyAgY2ZsYWdzID0gJyQoQ0ZMQUdTX0dDUlkpIC1Xbm8tcmVkdW5kYW50LWRlY2xzIC1Xbm8tc2ln bi1jb21wYXJlJzsKKyAgY3BwZmxhZ3MgPSAnJChDUFBGTEFHU19HQ1JZKSc7Cit9OworCiBtb2R1 bGUgPSB7CiAgIG5hbWUgPSBzaWduYXR1cmVfdGVzdDsKICAgY29tbW9uID0gdGVzdHMvc2lnbmF0 dXJlX3Rlc3QuYzsKQEAgLTI1MjksNyArMjU0NSwyMyBAQCBtb2R1bGUgPSB7CiAgIGNvbW1vbiA9 IGxpYi9saWJnY3J5cHQtZ3J1Yi9tcGkvbXBpY29kZXIuYzsKICAgY29tbW9uID0gbGliL2xpYmdj cnlwdC1ncnViL21waS9tcGloLXJzaGlmdC5jOwogICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdy dWIvbXBpL21waS1pbmxpbmUuYzsKKyAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnViL21waS9t cGloLWNvbnN0LXRpbWUuYzsKKyAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnViL21waS9tcGkt c2Nhbi5jOworICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdydWIvc3JjL2NvbnN0LXRpbWUuYzsK ICAgY29tbW9uID0gbGliL2xpYmdjcnlwdF93cmFwL21lbS5jOworICBjb21tb24gPSBsaWIvbGli Z2NyeXB0LWdydWIvY2lwaGVyL21kLmM7CisKKyAgY2ZsYWdzID0gJyQoQ0ZMQUdTX0dDUlkpIC1X bm8tcmVkdW5kYW50LWRlY2xzIC1Xbm8tc2lnbi1jb21wYXJlIC1Xbm8tdW51c2VkLWJ1dC1zZXQt dmFyaWFibGUnOworICBjcHBmbGFncyA9ICckKENQUEZMQUdTX0dDUlkpJzsKK307CisKK21vZHVs ZSA9IHsKKyAgbmFtZSA9IHB1YmtleTsKKyAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnViL2Np cGhlci9wdWJrZXktdXRpbC5jOworICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdydWIvY2lwaGVy L3JzYS1jb21tb24uYzsKKyAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9kc2Et Y29tbW9uLmM7CisgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHQtZ3J1Yi9zcmMvc2V4cC5jOworICBj b21tb24gPSBsaWIvYjY0ZGVjLmM7CiAKICAgY2ZsYWdzID0gJyQoQ0ZMQUdTX0dDUlkpIC1Xbm8t cmVkdW5kYW50LWRlY2xzIC1Xbm8tc2lnbi1jb21wYXJlJzsKICAgY3BwZmxhZ3MgPSAnJChDUFBG TEFHU19HQ1JZKSc7CmRpZmYgLS1naXQgYS9ncnViLWNvcmUvY29tbWFuZHMvaGFzaHN1bS5jIGIv Z3J1Yi1jb3JlL2NvbW1hbmRzL2hhc2hzdW0uYwppbmRleCBkNTZiNWIwYmIuLmI2ZjhlM2QxYSAx MDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL2hhc2hzdW0uYworKysgYi9ncnViLWNvcmUv Y29tbWFuZHMvaGFzaHN1bS5jCkBAIC03Myw3ICs3Myw3IEBAIGhhc2hfZmlsZSAoZ3J1Yl9maWxl X3QgZmlsZSwgY29uc3QgZ2NyeV9tZF9zcGVjX3QgKmhhc2gsIHZvaWQgKnJlc3VsdCkKICAgaWYg KCFyZWFkYnVmIHx8ICFjb250ZXh0KQogICAgIGdvdG8gZmFpbDsKIAotICBoYXNoLT5pbml0IChj b250ZXh0KTsKKyAgaGFzaC0+aW5pdCAoY29udGV4dCwgMCk7CiAgIHdoaWxlICgxKQogICAgIHsK ICAgICAgIGdydWJfc3NpemVfdCByOwpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL2xl Z2FjeWNmZy5jIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL2xlZ2FjeWNmZy5jCmluZGV4IGU5ZTlkOTRl Zi4uMDUyYmIxMTBkIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvY29tbWFuZHMvbGVnYWN5Y2ZnLmMK KysrIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL2xlZ2FjeWNmZy5jCkBAIC02MjUsNyArNjI1LDcgQEAg Y2hlY2tfcGFzc3dvcmRfbWQ1X3JlYWwgKGNvbnN0IGNoYXIgKmVudGVyZWQsCiAgIGlmICghY3R4 KQogICAgIHJldHVybiAwOwogCi0gIEdSVUJfTURfTUQ1LT5pbml0IChjdHgpOworICBHUlVCX01E X01ENS0+aW5pdCAoY3R4LCAwKTsKICAgR1JVQl9NRF9NRDUtPndyaXRlIChjdHgsIGVudGVyZWQs IGVudGVyZWRsZW4pOwogICBHUlVCX01EX01ENS0+d3JpdGUgKGN0eCwgcHctPnNhbHQgKyAzLCBw dy0+c2FsdGxlbiAtIDMpOwogICBHUlVCX01EX01ENS0+d3JpdGUgKGN0eCwgZW50ZXJlZCwgZW50 ZXJlZGxlbik7CkBAIC02MzMsNyArNjMzLDcgQEAgY2hlY2tfcGFzc3dvcmRfbWQ1X3JlYWwgKGNv bnN0IGNoYXIgKmVudGVyZWQsCiAgIEdSVUJfTURfTUQ1LT5maW5hbCAoY3R4KTsKICAgZ3J1Yl9t ZW1jcHkgKGFsdF9yZXN1bHQsIGRpZ2VzdCwgTUQ1X0hBU0hMRU4pOwogCi0gIEdSVUJfTURfTUQ1 LT5pbml0IChjdHgpOworICBHUlVCX01EX01ENS0+aW5pdCAoY3R4LCAwKTsKICAgR1JVQl9NRF9N RDUtPndyaXRlIChjdHgsIGVudGVyZWQsIGVudGVyZWRsZW4pOwogICBHUlVCX01EX01ENS0+d3Jp dGUgKGN0eCwgcHctPnNhbHQsIHB3LT5zYWx0bGVuKTsgLyogaW5jbHVkZSB0aGUgJDEkIGhlYWRl ciAqLwogICBmb3IgKGkgPSBlbnRlcmVkbGVuOyBpID4gMTY7IGkgLT0gMTYpCkBAIC02NDksNyAr NjQ5LDcgQEAgY2hlY2tfcGFzc3dvcmRfbWQ1X3JlYWwgKGNvbnN0IGNoYXIgKmVudGVyZWQsCiAg ICAgewogICAgICAgZ3J1Yl9tZW1jcHkgKGFsdF9yZXN1bHQsIGRpZ2VzdCwgMTYpOwogCi0gICAg ICBHUlVCX01EX01ENS0+aW5pdCAoY3R4KTsKKyAgICAgIEdSVUJfTURfTUQ1LT5pbml0IChjdHgs IDApOwogICAgICAgaWYgKChpICYgMSkgIT0gMCkKIAlHUlVCX01EX01ENS0+d3JpdGUgKGN0eCwg ZW50ZXJlZCwgZW50ZXJlZGxlbik7CiAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9ncnViLWNvcmUv Y29tbWFuZHMvcGdwLmMgYi9ncnViLWNvcmUvY29tbWFuZHMvcGdwLmMKaW5kZXggYzY3NjZmMDQ0 Li4yMmVjYTk3ZmYgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9jb21tYW5kcy9wZ3AuYworKysgYi9n cnViLWNvcmUvY29tbWFuZHMvcGdwLmMKQEAgLTEzNiw0MSArMTM2LDI3IEBAIHN0cnVjdCBzaWdu YXR1cmVfdjRfaGVhZGVyCiAgIGdydWJfdWludDE2X3QgaGFzaGVkX3N1YjsKIH0gR1JVQl9QQUNL RUQ7CiAKLWNvbnN0IGNoYXIgKmhhc2hlc1tdID0gewotICBbMHgwMV0gPSAibWQ1IiwKLSAgWzB4 MDJdID0gInNoYTEiLAotICBbMHgwM10gPSAicmlwZW1kMTYwIiwKLSAgWzB4MDhdID0gInNoYTI1 NiIsCi0gIFsweDA5XSA9ICJzaGEzODQiLAotICBbMHgwYV0gPSAic2hhNTEyIiwKLSAgWzB4MGJd ID0gInNoYTIyNCIKLX07Ci0KIHN0cnVjdCBnY3J5X3BrX3NwZWMgKmdydWJfY3J5cHRvX3BrX2Rz YTsKIHN0cnVjdCBnY3J5X3BrX3NwZWMgKmdydWJfY3J5cHRvX3BrX2VjZHNhOwogc3RydWN0IGdj cnlfcGtfc3BlYyAqZ3J1Yl9jcnlwdG9fcGtfcnNhOwogCi1zdGF0aWMgaW50Ci1kc2FfcGFkIChn Y3J5X21waV90ICpobXBpLCBncnViX3VpbnQ4X3QgKmh2YWwsCi0JIGNvbnN0IGdjcnlfbWRfc3Bl Y190ICpoYXNoLCBzdHJ1Y3QgZ3J1Yl9wdWJsaWNfc3Via2V5ICpzayk7Ci1zdGF0aWMgaW50Ci1y c2FfcGFkIChnY3J5X21waV90ICpobXBpLCBncnViX3VpbnQ4X3QgKmh2YWwsCi0JIGNvbnN0IGdj cnlfbWRfc3BlY190ICpoYXNoLCBzdHJ1Y3QgZ3J1Yl9wdWJsaWNfc3Via2V5ICpzayk7Ci0KIHN0 cnVjdAogewogICBjb25zdCBjaGFyICpuYW1lOworICBjb25zdCBjaGFyICpzaWdzZXhwOwogICBn cnViX3NpemVfdCBubXBpc2lnOworICBjb25zdCBjaGFyICpwdWJzZXhwOwogICBncnViX3NpemVf dCBubXBpcHViOwogICBzdHJ1Y3QgZ2NyeV9wa19zcGVjICoqYWxnbzsKLSAgaW50ICgqcGFkKSAo Z2NyeV9tcGlfdCAqaG1waSwgZ3J1Yl91aW50OF90ICpodmFsLAotCSAgICAgIGNvbnN0IGdjcnlf bWRfc3BlY190ICpoYXNoLCBzdHJ1Y3QgZ3J1Yl9wdWJsaWNfc3Via2V5ICpzayk7CisgIGNvbnN0 IGNoYXIgKnBhZGRpbmc7CiAgIGNvbnN0IGNoYXIgKm1vZHVsZTsKIH0gcGthbGdvc1tdID0KICAg ewotICAgIFsxXSA9IHsgInJzYSIsIDEsIDIsICZncnViX2NyeXB0b19wa19yc2EsIHJzYV9wYWQs ICJnY3J5X3JzYSIgfSwKLSAgICBbM10gPSB7ICJyc2EiLCAxLCAyLCAmZ3J1Yl9jcnlwdG9fcGtf cnNhLCByc2FfcGFkLCAiZ2NyeV9yc2EiIH0sCi0gICAgWzE3XSA9IHsgImRzYSIsIDIsIDQsICZn cnViX2NyeXB0b19wa19kc2EsIGRzYV9wYWQsICJnY3J5X2RzYSIgfSwKKyAgICBbMV0gPSB7ICJy c2EiLCAiKHNpZy12YWwgKHJzYSAocyAlTSkpKSIsIDEsICIocHVibGljLWtleSAoZHNhIChuICVN KSAoZSAlTSkpKSIsIDIsICZncnViX2NyeXB0b19wa19yc2EsICJwa2NzMSIsICJnY3J5X3JzYSIg fSwKKyAgICBbM10gPSB7ICJyc2EiLCAiKHNpZy12YWwgKHJzYSAocyAlTSkpKSIsIDEsICIocHVi bGljLWtleSAoZHNhIChuICVNKSAoZSAlTSkpKSIsIDIsICZncnViX2NyeXB0b19wa19yc2EsICJw a2NzMSIsICJnY3J5X3JzYSIgfSwKKyAgICBbMTddID0geyAiZHNhIiwgIihzaWctdmFsIChkc2Eg KHIgJU0pIChzICVNKSkpIiwgMiwKKwkgICAgICIocHVibGljLWtleSAoZHNhIChwICVNKSAocSAl TSkgKGcgJU0pICh5ICVNKSkpIiwKKwkgICAgIDQsICZncnViX2NyeXB0b19wa19kc2EsICJyYXci LCAiZ2NyeV9kc2EiIH0sCiAgIH07CiAKIHN0cnVjdCBncnViX3B1YmxpY19rZXkKQEAgLTE5Niw3 ICsxODIsNyBAQCBmcmVlX3BrIChzdHJ1Y3QgZ3J1Yl9wdWJsaWNfa2V5ICpwaykKICAgICAgIGdy dWJfc2l6ZV90IGk7CiAgICAgICBmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSAoc2stPm1waXMp OyBpKyspCiAJaWYgKHNrLT5tcGlzW2ldKQotCSAgZ2NyeV9tcGlfcmVsZWFzZSAoc2stPm1waXNb aV0pOworCSAgX2djcnlfbXBpX3JlbGVhc2UgKHNrLT5tcGlzW2ldKTsKICAgICAgIG5zayA9IHNr LT5uZXh0OwogICAgICAgZ3J1Yl9mcmVlIChzayk7CiAgICAgfQpAQCAtMzAzLDcgKzI4OSw3IEBA IGdydWJfbG9hZF9wdWJsaWNfa2V5IChncnViX2ZpbGVfdCBmKQogCWdvdG8gZmFpbDsKIAogICAg ICAgZ3J1Yl9tZW1zZXQgKGZpbmdlcnByaW50X2NvbnRleHQsIDAsIEdSVUJfTURfU0hBMS0+Y29u dGV4dHNpemUpOwotICAgICAgR1JVQl9NRF9TSEExLT5pbml0IChmaW5nZXJwcmludF9jb250ZXh0 KTsKKyAgICAgIEdSVUJfTURfU0hBMS0+aW5pdCAoZmluZ2VycHJpbnRfY29udGV4dCwgMCk7CiAg ICAgICBHUlVCX01EX1NIQTEtPndyaXRlIChmaW5nZXJwcmludF9jb250ZXh0LCAiXHg5OSIsIDEp OwogICAgICAgbGVuX2JlID0gZ3J1Yl9jcHVfdG9fYmUxNiAobGVuKTsKICAgICAgIEdSVUJfTURf U0hBMS0+d3JpdGUgKGZpbmdlcnByaW50X2NvbnRleHQsICZsZW5fYmUsIHNpemVvZiAobGVuX2Jl KSk7CkBAIC0zMzYsNyArMzIyLDcgQEAgZ3J1Yl9sb2FkX3B1YmxpY19rZXkgKGdydWJfZmlsZV90 IGYpCiAKIAkgIEdSVUJfTURfU0hBMS0+d3JpdGUgKGZpbmdlcnByaW50X2NvbnRleHQsIGJ1ZmZl ciwgbGIgKyBzaXplb2YgKGdydWJfdWludDE2X3QpKTsKIAotCSAgaWYgKGdjcnlfbXBpX3NjYW4g KCZzay0+bXBpc1tpXSwgR0NSWU1QSV9GTVRfUEdQLAorCSAgaWYgKF9nY3J5X21waV9zY2FuICgm c2stPm1waXNbaV0sIEdDUllNUElfRk1UX1BHUCwKIAkJCSAgICAgYnVmZmVyLCBsYiArIHNpemVv ZiAoZ3J1Yl91aW50MTZfdCksIDApKQogCSAgICB7CiAJICAgICAgZ3J1Yl9lcnJvciAoR1JVQl9F UlJfQkFEX1NJR05BVFVSRSwgTl8oImJhZCBzaWduYXR1cmUiKSk7CkBAIC0zOTQsNTEgKzM4MCw2 IEBAIGdydWJfY3J5cHRvX3BrX2xvY2F0ZV9zdWJrZXlfaW5fdHJ1c3RkYiAoZ3J1Yl91aW50NjRf dCBrZXlpZCkKICAgcmV0dXJuIDA7CiB9CiAKLQotc3RhdGljIGludAotZHNhX3BhZCAoZ2NyeV9t cGlfdCAqaG1waSwgZ3J1Yl91aW50OF90ICpodmFsLAotCSBjb25zdCBnY3J5X21kX3NwZWNfdCAq aGFzaCwgc3RydWN0IGdydWJfcHVibGljX3N1YmtleSAqc2spCi17Ci0gIHVuc2lnbmVkIG5iaXRz ID0gZ2NyeV9tcGlfZ2V0X25iaXRzIChzay0+bXBpc1sxXSk7Ci0gIGdydWJfZHByaW50ZiAoImNy eXB0IiwgIm11c3QgYmUgJXUgYml0cyBnb3QgJWQgYml0c1xuIiwgbmJpdHMsCi0JCShpbnQpKDgg KiBoYXNoLT5tZGxlbikpOwotICByZXR1cm4gZ2NyeV9tcGlfc2NhbiAoaG1waSwgR0NSWU1QSV9G TVRfVVNHLCBodmFsLAotCQkJbmJpdHMgLyA4IDwgKHVuc2lnbmVkKSBoYXNoLT5tZGxlbiA/IG5i aXRzIC8gOAotCQkJOiAodW5zaWduZWQpIGhhc2gtPm1kbGVuLCAwKTsKLX0KLQotc3RhdGljIGlu dAotcnNhX3BhZCAoZ2NyeV9tcGlfdCAqaG1waSwgZ3J1Yl91aW50OF90ICpodmFsLAotCSBjb25z dCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgc3RydWN0IGdydWJfcHVibGljX3N1YmtleSAqc2spCi17 Ci0gIGdydWJfc2l6ZV90IHRsZW4sIGVtbGVuLCBmZmxlbjsKLSAgZ3J1Yl91aW50OF90ICplbSwg KmVtcHRyOwotICB1bnNpZ25lZCBuYml0cyA9IGdjcnlfbXBpX2dldF9uYml0cyAoc2stPm1waXNb MF0pOwotICBpbnQgcmV0OwotICB0bGVuID0gaGFzaC0+bWRsZW4gKyBoYXNoLT5hc25sZW47Ci0g IGVtbGVuID0gKG5iaXRzICsgNykgLyA4OwotICBpZiAoZW1sZW4gPCB0bGVuICsgMTEpCi0gICAg cmV0dXJuIDE7Ci0KLSAgZW0gPSBncnViX21hbGxvYyAoZW1sZW4pOwotICBpZiAoIWVtKQotICAg IHJldHVybiAxOwotCi0gIGVtWzBdID0gMHgwMDsKLSAgZW1bMV0gPSAweDAxOwotICBmZmxlbiA9 IGVtbGVuIC0gdGxlbiAtIDM7Ci0gIGZvciAoZW1wdHIgPSBlbSArIDI7IGVtcHRyIDwgZW0gKyAy ICsgZmZsZW47IGVtcHRyKyspCi0gICAgKmVtcHRyID0gMHhmZjsKLSAgKmVtcHRyKysgPSAweDAw OwotICBncnViX21lbWNweSAoZW1wdHIsIGhhc2gtPmFzbm9pZCwgaGFzaC0+YXNubGVuKTsKLSAg ZW1wdHIgKz0gaGFzaC0+YXNubGVuOwotICBncnViX21lbWNweSAoZW1wdHIsIGh2YWwsIGhhc2gt Pm1kbGVuKTsKLQotICByZXQgPSBnY3J5X21waV9zY2FuIChobXBpLCBHQ1JZTVBJX0ZNVF9VU0cs IGVtLCBlbWxlbiwgMCk7Ci0gIGdydWJfZnJlZSAoZW0pOwotICByZXR1cm4gcmV0OwotfQotCiBz dHJ1Y3QgZ3J1Yl9wdWJrZXlfY29udGV4dAogewogICBncnViX2ZpbGVfdCBzaWc7CkBAIC00ODMs MTUgKzQyNCwxMiBAQCBncnViX3ZlcmlmeV9zaWduYXR1cmVfaW5pdCAoc3RydWN0IGdydWJfcHVi a2V5X2NvbnRleHQgKmN0eHQsIGdydWJfZmlsZV90IHNpZykKICAgaWYgKHQgIT0gMCkKICAgICBy ZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX1NJR05BVFVSRSwgTl8oImJhZCBzaWduYXR1 cmUiKSk7CiAKLSAgaWYgKGggPj0gQVJSQVlfU0laRSAoaGFzaGVzKSB8fCBoYXNoZXNbaF0gPT0g TlVMTCkKLSAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX1NJR05BVFVSRSwgInVu a25vd24gaGFzaCIpOwotCiAgIGlmIChwayA+PSBBUlJBWV9TSVpFIChwa2FsZ29zKSB8fCBwa2Fs Z29zW3BrXS5uYW1lID09IE5VTEwpCiAgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JB RF9TSUdOQVRVUkUsIE5fKCJiYWQgc2lnbmF0dXJlIikpOwogCi0gIGN0eHQtPmhhc2ggPSBncnVi X2NyeXB0b19sb29rdXBfbWRfYnlfbmFtZSAoaGFzaGVzW2hdKTsKKyAgY3R4dC0+aGFzaCA9IGdy dWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9hbGdvIChoKTsKICAgaWYgKCFjdHh0LT5oYXNoKQotICAg IHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9CQURfU0lHTkFUVVJFLCAiaGFzaCBgJXMnIG5v dCBsb2FkZWQiLCBoYXNoZXNbaF0pOworICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9C QURfU0lHTkFUVVJFLCAiaGFzaCBgJWQnIG5vdCBsb2FkZWQiLCBoKTsKIAogICBncnViX2Rwcmlu dGYgKCJjcnlwdCIsICJhbGl2ZVxuIik7CiAKQEAgLTQ5OSw3ICs0MzcsNyBAQCBncnViX3Zlcmlm eV9zaWduYXR1cmVfaW5pdCAoc3RydWN0IGdydWJfcHVia2V5X2NvbnRleHQgKmN0eHQsIGdydWJf ZmlsZV90IHNpZykKICAgaWYgKCFjdHh0LT5oYXNoX2NvbnRleHQpCiAgICAgcmV0dXJuIGdydWJf ZXJybm87CiAKLSAgY3R4dC0+aGFzaC0+aW5pdCAoY3R4dC0+aGFzaF9jb250ZXh0KTsKKyAgY3R4 dC0+aGFzaC0+aW5pdCAoY3R4dC0+aGFzaF9jb250ZXh0LCAwKTsKICAgY3R4dC0+c2lnID0gc2ln OwogCiAgIHJldHVybiBHUlVCX0VSUl9OT05FOwpAQCAtNTI4LDcgKzQ2Niw2IEBAIGdydWJfdmVy aWZ5X3NpZ25hdHVyZV9yZWFsIChzdHJ1Y3QgZ3J1Yl9wdWJrZXlfY29udGV4dCAqY3R4dCwKICAg Z3J1Yl91aW50MTZfdCB1bmhhc2hlZF9zdWI7CiAgIGdydWJfc3NpemVfdCByOwogICBncnViX3Vp bnQ4X3QgaGFzaF9zdGFydFsyXTsKLSAgZ2NyeV9tcGlfdCBobXBpOwogICBncnViX3VpbnQ2NF90 IGtleWlkID0gMDsKICAgc3RydWN0IGdydWJfcHVibGljX3N1YmtleSAqc2s7CiAKQEAgLTYyMCw3 ICs1NTcsNyBAQCBncnViX3ZlcmlmeV9zaWduYXR1cmVfcmVhbCAoc3RydWN0IGdydWJfcHVia2V5 X2NvbnRleHQgKmN0eHQsCiAgICAgICBncnViX21lbWNweSAocmVhZGJ1ZiwgJmwsIHNpemVvZiAo bCkpOwogICAgICAgZ3J1Yl9kcHJpbnRmICgiY3J5cHQiLCAiYWxpdmVcbiIpOwogCi0gICAgICBp ZiAoZ2NyeV9tcGlfc2NhbiAoJm1waXNbaV0sIEdDUllNUElfRk1UX1BHUCwKKyAgICAgIGlmIChf Z2NyeV9tcGlfc2NhbiAoJm1waXNbaV0sIEdDUllNUElfRk1UX1BHUCwKIAkJCSByZWFkYnVmLCBs YiArIHNpemVvZiAoZ3J1Yl91aW50MTZfdCksIDApKQogCWdvdG8gZmFpbDsKICAgICAgIGdydWJf ZHByaW50ZiAoImNyeXB0IiwgImFsaXZlXG4iKTsKQEAgLTYzOCw4ICs1NzUsNiBAQCBncnViX3Zl cmlmeV9zaWduYXR1cmVfcmVhbCAoc3RydWN0IGdydWJfcHVia2V5X2NvbnRleHQgKmN0eHQsCiAg ICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gIGlmIChwa2FsZ29zW3BrXS5wYWQgKCZobXBpLCBo dmFsLCBjdHh0LT5oYXNoLCBzaykpCi0gICAgZ290byBmYWlsOwogICBpZiAoISpwa2FsZ29zW3Br XS5hbGdvKQogICAgIHsKICAgICAgIGdydWJfZGxfbG9hZCAocGthbGdvc1twa10ubW9kdWxlKTsK QEAgLTY1Miw3ICs1ODcsMjQgQEAgZ3J1Yl92ZXJpZnlfc2lnbmF0dXJlX3JlYWwgKHN0cnVjdCBn cnViX3B1YmtleV9jb250ZXh0ICpjdHh0LAogCQkgIHBrYWxnb3NbcGtdLm1vZHVsZSk7CiAgICAg ICBnb3RvIGZhaWw7CiAgICAgfQotICBpZiAoKCpwa2FsZ29zW3BrXS5hbGdvKS0+dmVyaWZ5ICgw LCBobXBpLCBtcGlzLCBzay0+bXBpcywgMCwgMCkpCisKKyAgZ2NyeV9zZXhwX3QgaHNleHAsIHB1 YmtleSwgc2lnOworICBncnViX3NpemVfdCBlcnJvZjsKKworICBpZihfZ2NyeV9zZXhwX2J1aWxk KCZoc2V4cCwgJmVycm9mLCAiKGRhdGEgKGZsYWdzICVzKSAoaGFzaCAlcyAlYikpIiwgcGthbGdv c1twa10ucGFkZGluZywgY3R4dC0+aGFzaC0+bmFtZSwgY3R4dC0+aGFzaC0+bWRsZW4sIGh2YWwp KQorICAgIGdvdG8gZmFpbDsKKworICBpZihfZ2NyeV9zZXhwX2J1aWxkKCZwdWJrZXksICZlcnJv ZiwgcGthbGdvc1twa10ucHVic2V4cCwgc2stPm1waXNbMF0sIHNrLT5tcGlzWzFdLCBzay0+bXBp c1syXSwgc2stPm1waXNbM10pKQorICAgIGdvdG8gZmFpbDsKKworICBpZihfZ2NyeV9zZXhwX2J1 aWxkKCZzaWcsICZlcnJvZiwgcGthbGdvc1twa10uc2lnc2V4cCwgbXBpc1swXSwgbXBpc1sxXSkp CisgICAgZ290byBmYWlsOworCisgIF9nY3J5X3NleHBfZHVtcChzaWcpOworICBfZ2NyeV9zZXhw X2R1bXAoaHNleHApOworICBfZ2NyeV9zZXhwX2R1bXAocHVia2V5KTsKKworICBpZiAoKCpwa2Fs Z29zW3BrXS5hbGdvKS0+dmVyaWZ5IChzaWcsIGhzZXhwLCBwdWJrZXkpKQogICAgIGdvdG8gZmFp bDsKIAogICBncnViX2ZyZWUgKHJlYWRidWYpOwpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1h bmRzL3hudV91dWlkLmMgYi9ncnViLWNvcmUvY29tbWFuZHMveG51X3V1aWQuYwppbmRleCBhZTRi M2E0MTUuLjE0MDZjNDNmNSAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL3hudV91dWlk LmMKKysrIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL3hudV91dWlkLmMKQEAgLTY4LDcgKzY4LDcgQEAg Z3J1Yl9jbWRfeG51X3V1aWQgKGdydWJfY29tbWFuZF90IGNtZCBfX2F0dHJpYnV0ZV9fICgodW51 c2VkKSksCiAgIGN0eCA9IGdydWJfemFsbG9jIChHUlVCX01EX01ENS0+Y29udGV4dHNpemUpOwog ICBpZiAoIWN0eCkKICAgICByZXR1cm4gZ3J1Yl9lcnJubzsKLSAgR1JVQl9NRF9NRDUtPmluaXQg KGN0eCk7CisgIEdSVUJfTURfTUQ1LT5pbml0IChjdHgsIDApOwogICBHUlVCX01EX01ENS0+d3Jp dGUgKGN0eCwgaGFzaF9wcmVmaXgsIHNpemVvZiAoaGFzaF9wcmVmaXgpKTsKICAgR1JVQl9NRF9N RDUtPndyaXRlIChjdHgsICZzZXJpYWwsIHNpemVvZiAoc2VyaWFsKSk7CiAgIEdSVUJfTURfTUQ1 LT5maW5hbCAoY3R4KTsKZGlmZiAtLWdpdCBhL2dydWItY29yZS9kaXNrL2NyeXB0b2Rpc2suYyBi L2dydWItY29yZS9kaXNrL2NyeXB0b2Rpc2suYwppbmRleCA1ZTFlYjI3NDMuLmU1MmE3ZWJiNSAx MDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2Rpc2svY3J5cHRvZGlzay5jCisrKyBiL2dydWItY29yZS9k aXNrL2NyeXB0b2Rpc2suYwpAQCAtMjk3LDcgKzI5Nyw3IEBAIGdydWJfY3J5cHRvZGlza19lbmRl Y3J5cHQgKHN0cnVjdCBncnViX2NyeXB0b2Rpc2sgKmRldiwKIAkgICAgICByZXR1cm4gR1BHX0VS Ul9PVVRfT0ZfTUVNT1JZOwogCiAJICAgIHRtcCA9IGdydWJfY3B1X3RvX2xlNjQgKHNlY3RvciA8 PCBsb2dfc2VjdG9yX3NpemUpOwotCSAgICBkZXYtPml2X2hhc2gtPmluaXQgKGN0eCk7CisJICAg IGRldi0+aXZfaGFzaC0+aW5pdCAoY3R4LCAwKTsKIAkgICAgZGV2LT5pdl9oYXNoLT53cml0ZSAo Y3R4LCBkZXYtPml2X3ByZWZpeCwgZGV2LT5pdl9wcmVmaXhfbGVuKTsKIAkgICAgZGV2LT5pdl9o YXNoLT53cml0ZSAoY3R4LCAmdG1wLCBzaXplb2YgKHRtcCkpOwogCSAgICBkZXYtPml2X2hhc2gt PmZpbmFsIChjdHgpOwpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2lvL2d6aW8uYyBiL2dydWItY29y ZS9pby9nemlvLmMKaW5kZXggY2I3ZWIxZmUzLi5mYTlkOTQyYjIgMTAwNjQ0Ci0tLSBhL2dydWIt Y29yZS9pby9nemlvLmMKKysrIGIvZ3J1Yi1jb3JlL2lvL2d6aW8uYwpAQCAtMTIwMSw3ICsxMjAx LDcgQEAgaW5pdGlhbGl6ZV90YWJsZXMgKGdydWJfZ3ppb190IGd6aW8pCiAgIGd6aW8tPnRkID0g TlVMTDsKIAogICBpZiAoZ3ppby0+aGNvbnRleHQpCi0gICAgZ3ppby0+aGRlc2MtPmluaXQoZ3pp by0+aGNvbnRleHQpOworICAgIGd6aW8tPmhkZXNjLT5pbml0KGd6aW8tPmhjb250ZXh0LCAwKTsK IH0KIAogCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvaW8vbHpvcGlvLmMgYi9ncnViLWNvcmUvaW8v bHpvcGlvLmMKaW5kZXggYTdkNDQyNTQzLi5jZWE5NDIzMDggMTAwNjQ0Ci0tLSBhL2dydWItY29y ZS9pby9sem9waW8uYworKysgYi9ncnViLWNvcmUvaW8vbHpvcGlvLmMKQEAgLTM0NSw3ICszNDUs NyBAQCB0ZXN0X2hlYWRlciAoZ3J1Yl9maWxlX3QgZmlsZSkKICAgICBpZiAoISBjb250ZXh0KQog ICAgICAgcmV0dXJuIDA7CiAKLSAgICBoY2hlY2stPmluaXQoY29udGV4dCk7CisgICAgaGNoZWNr LT5pbml0KGNvbnRleHQsIDApOwogCiAgICAgLyogTUFHSUMgaXMgbm90IGluY2x1ZGVkIGluIGNo ZWNrIGNhbGN1bGF0aW9uLiAgKi8KICAgICBoY2hlY2stPndyaXRlKGNvbnRleHQsICZoZWFkZXIu bHpvcF92ZXJzaW9uLCBzaXplb2YoaGVhZGVyKS0gTFpPUF9NQUdJQ19TSVpFKTsKZGlmZiAtLWdp dCBhL2dydWItY29yZS9saWIvYWRsZXIzMi5jIGIvZ3J1Yi1jb3JlL2xpYi9hZGxlcjMyLmMKaW5k ZXggNDNiNjhhZjYyLi5mODQ5Y2NlZTYgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIvYWRsZXIz Mi5jCisrKyBiL2dydWItY29yZS9saWIvYWRsZXIzMi5jCkBAIC0yOSwxMCArMjksMTIgQEAgc3Ry dWN0IGFkbGVyMzJfY29udGV4dAogfTsKIAogc3RhdGljIHZvaWQKLWFkbGVyMzJfaW5pdCAodm9p ZCAqY29udGV4dCkKK2FkbGVyMzJfaW5pdCAodm9pZCAqY29udGV4dCwgdW5zaWduZWQgaW50IGZs YWdzKQogewogICBzdHJ1Y3QgYWRsZXIzMl9jb250ZXh0ICpjdHggPSBjb250ZXh0OwogCisgICh2 b2lkKSBmbGFnczsKKwogICBjdHgtPmEgPSAxOwogICBjdHgtPmIgPSAwOwogfQpAQCAtODEsMTMg KzgzLDIyIEBAIGFkbGVyMzJfcmVhZCAodm9pZCAqY29udGV4dCkKIAogc3RhdGljIGdjcnlfbWRf c3BlY190IHNwZWNfYWRsZXIzMiA9CiAgIHsKLSAgICAiQURMRVIzMiIsIDAsIDAsIDAsIDQsCi0g ICAgYWRsZXIzMl9pbml0LCBhZGxlcjMyX3dyaXRlLCBhZGxlcjMyX2ZpbmFsLCBhZGxlcjMyX3Jl YWQsCi0gICAgc2l6ZW9mIChzdHJ1Y3QgYWRsZXIzMl9jb250ZXh0KSwKKyAgICAuYWxnbyA9IEdD UllfTURfQURMRVIzMiwKKyAgICAuZmxhZ3MgPSB7LmRpc2FibGVkID0gMCwgLmZpcHMgPSAwfSwK KyAgICAubmFtZSA9ICJBRExFUjMyIiwKKyAgICAuYXNub2lkID0gTlVMTCwKKyAgICAuYXNubGVu ID0gMCwKKyAgICAub2lkcyA9IE5VTEwsCisgICAgLm1kbGVuID0gNCwKKyAgICAuaW5pdCA9IGFk bGVyMzJfaW5pdCwKKyAgICAud3JpdGUgPSBhZGxlcjMyX3dyaXRlLAorICAgIC5maW5hbCA9IGFk bGVyMzJfZmluYWwsCisgICAgLnJlYWQgPSBhZGxlcjMyX3JlYWQsCisgICAgLmNvbnRleHRzaXpl ID0gc2l6ZW9mIChzdHJ1Y3QgYWRsZXIzMl9jb250ZXh0KSwKKyAgICAuYmxvY2tzaXplID0gNjQs CiAjaWZkZWYgR1JVQl9VVElMCiAgICAgLm1vZG5hbWUgPSAiYWRsZXIzMiIsCiAjZW5kaWYKLSAg ICAuYmxvY2tzaXplID0gNjQKICAgfTsKIAogCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2Ny YzY0LmMgYi9ncnViLWNvcmUvbGliL2NyYzY0LmMKaW5kZXggNDk2MGYzZjg5Li5jMjMxZmE5N2Mg MTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIvY3JjNjQuYworKysgYi9ncnViLWNvcmUvbGliL2Ny YzY0LmMKQEAgLTYxLDggKzYxLDEwIEBAIGluaXRfY3JjNjRfdGFibGUgKHZvaWQpCiB9CiAKIHN0 YXRpYyB2b2lkCi1jcmM2NF9pbml0ICh2b2lkICpjb250ZXh0KQorY3JjNjRfaW5pdCAodm9pZCAq Y29udGV4dCwgdW5zaWduZWQgaW50IGZsYWdzKQogeworICAodm9pZCkgZmxhZ3M7CisKICAgaWYg KCEgY3JjNjRfdGFibGVbMV0pCiAgICAgaW5pdF9jcmM2NF90YWJsZSAoKTsKICAgKihncnViX3Vp bnQ2NF90ICopIGNvbnRleHQgPSAwOwpAQCAtOTcsMTAgKzk5LDIyIEBAIGNyYzY0X2ZpbmFsICh2 b2lkICpjb250ZXh0IF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSkKIAogZ2NyeV9tZF9zcGVjX3Qg X2djcnlfZGlnZXN0X3NwZWNfY3JjNjQgPQogICB7Ci0gICAgIkNSQzY0IiwgMCwgMCwgMCwgOCwK LSAgICBjcmM2NF9pbml0LCBjcmM2NF93cml0ZSwgY3JjNjRfZmluYWwsIGNyYzY0X3JlYWQsCi0g ICAgc2l6ZW9mIChncnViX3VpbnQ2NF90KSwKLSAgICAuYmxvY2tzaXplID0gNjQKKyAgICAuYWxn byA9IEdDUllfTURfQ1JDNjQsCisgICAgLmZsYWdzID0gey5kaXNhYmxlZCA9IDAsIC5maXBzID0g MH0sCisgICAgLm5hbWUgPSAiQ1JDNjQiLAorICAgIC5hc25vaWQgPSBOVUxMLAorICAgIC5hc25s ZW4gPSAwLAorICAgIC5vaWRzID0gTlVMTCwKKyAgICAubWRsZW4gPSA4LAorICAgIC5pbml0ID0g Y3JjNjRfaW5pdCwKKyAgICAud3JpdGUgPSBjcmM2NF93cml0ZSwKKyAgICAuZmluYWwgPSBjcmM2 NF9maW5hbCwKKyAgICAucmVhZCA9IGNyYzY0X3JlYWQsCisgICAgLmNvbnRleHRzaXplID0gc2l6 ZW9mIChncnViX3VpbnQ2NF90KSwKKyAgICAuYmxvY2tzaXplID0gNjQsCisjaWZkZWYgR1JVQl9V VElMCisgICAgLm1vZG5hbWUgPSAiY3JjNjQiLAorI2VuZGlmCiAgIH07CiAKIEdSVUJfTU9EX0lO SVQoY3JjNjQpCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2NyeXB0by5jIGIvZ3J1Yi1jb3Jl L2xpYi9jcnlwdG8uYwppbmRleCAzOTZmNzY0MTAuLmRkNjBkZDRhYyAxMDA2NDQKLS0tIGEvZ3J1 Yi1jb3JlL2xpYi9jcnlwdG8uYworKysgYi9ncnViLWNvcmUvbGliL2NyeXB0by5jCkBAIC0zNyw2 ICszNyw4IEBAIHN0cnVjdCBncnViX2NyeXB0b19obWFjX2hhbmRsZQogc3RhdGljIGdjcnlfY2lw aGVyX3NwZWNfdCAqZ3J1Yl9jaXBoZXJzID0gTlVMTDsKIHN0YXRpYyBnY3J5X21kX3NwZWNfdCAq Z3J1Yl9kaWdlc3RzID0gTlVMTDsKIAoraW50IF9nY3J5X25vX2ZpcHNfbW9kZV9yZXF1aXJlZCA9 IDE7CisKIHZvaWQgKCpncnViX2NyeXB0b19hdXRvbG9hZF9ob29rKSAoY29uc3QgY2hhciAqbmFt ZSkgPSBOVUxMOwogCiAvKiBCYXNlZCBvbiBsaWJnY3J5cHQtMS40LjQvc3JjL21pc2MuYy4gICov CkBAIC01Niw2ICs1OCwxNyBAQCBfZ2NyeV9idXJuX3N0YWNrIChpbnQgc2l6ZSkKICAgZ3J1Yl9i dXJuX3N0YWNrIChzaXplKTsKIH0KIAordm9pZAorX19nY3J5X2J1cm5fc3RhY2sgKHVuc2lnbmVk IGludCBzaXplKQoreworICBncnViX2J1cm5fc3RhY2sgKHNpemUpOworfQorCit2b2lkCitfX2dj cnlfYnVybl9zdGFja19kdW1teSAodm9pZCkKK3sKK30KKwogdm9pZCBfX2F0dHJpYnV0ZV9fICgo bm9yZXR1cm4pKQogX2djcnlfYXNzZXJ0X2ZhaWxlZCAoY29uc3QgY2hhciAqZXhwciwgY29uc3Qg Y2hhciAqZmlsZSwgaW50IGxpbmUsCiAJCSAgICAgY29uc3QgY2hhciAqZnVuYykKQEAgLTY0LDYg Kzc3LDEyIEBAIF9nY3J5X2Fzc2VydF9mYWlsZWQgKGNvbnN0IGNoYXIgKmV4cHIsIGNvbnN0IGNo YXIgKmZpbGUsIGludCBsaW5lLAogICBncnViX2ZhdGFsICgiYXNzZXJ0aW9uICVzIGF0ICVzOiVk ICglcykgZmFpbGVkXG4iLCBleHByLCBmaWxlLCBsaW5lLCBmdW5jKTsKIH0KIAordm9pZAorX2dj cnlfYnVnKCBjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciAqZnVuYyApCit7 CisgICAgZ3J1Yl9mYXRhbCAoIi4uLiB0aGlzIGlzIGEgYnVnICglczolZDolcylcbiIsIGZpbGUs IGxpbmUsIGZ1bmMpOworfQorCiAKIHZvaWQgX2djcnlfbG9nX2Vycm9yIChjb25zdCBjaGFyICpm bXQsIC4uLikKIHsKQEAgLTgzLDYgKzEwMiwzNiBAQCB2b2lkIF9nY3J5X2xvZ19lcnJvciAoY29u c3QgY2hhciAqZm10LCAuLi4pCiAgICAgfQogfQogCit2b2lkIF9nY3J5X2xvZ19pbmZvIChjb25z dCBjaGFyICpmbXQsIC4uLikKK3sKKyAgdmFfbGlzdCBhcmdzOworICBjb25zdCBjaGFyICpkZWJ1 ZyA9IGdydWJfZW52X2dldCAoImRlYnVnIik7CisKKyAgaWYgKCEgZGVidWcpCisgICAgcmV0dXJu OworCisgIGlmIChncnViX3N0cndvcmQgKGRlYnVnLCAiYWxsIikgfHwgZ3J1Yl9zdHJ3b3JkIChk ZWJ1ZywgImdjcnlwdCIpKQorICAgIHsKKyAgICAgIGdydWJfcHJpbnRmICgiZ2NyeXB0IGluZm86 ICIpOworICAgICAgdmFfc3RhcnQgKGFyZ3MsIGZtdCk7CisgICAgICBncnViX3ZwcmludGYgKGZt dCwgYXJncyk7CisgICAgICB2YV9lbmQgKGFyZ3MpOworICAgICAgZ3J1Yl9yZWZyZXNoICgpOwor ICAgIH0KK30KKwordm9pZAorX2djcnlfZmFzdF93aXBlbWVtb3J5MiAodm9pZCAqcHRyLCBpbnQg c2V0LCBncnViX3NpemVfdCBsZW4pCit7CisgIGdydWJfbWVtc2V0KHB0ciwgc2V0LCBsZW4pOwor fQorCit2b2lkCitfZ2NyeV9mYXN0X3dpcGVtZW1vcnkgKHZvaWQgKnB0ciwgZ3J1Yl9zaXplX3Qg bGVuKQoreworICBncnViX21lbXNldChwdHIsIDAsIGxlbik7Cit9CisKIHZvaWQKIGdydWJfY2lw aGVyX3JlZ2lzdGVyIChnY3J5X2NpcGhlcl9zcGVjX3QgKmNpcGhlcikKIHsKQEAgLTEyOSw3ICsx NzgsNyBAQCBncnViX2NyeXB0b19oYXNoIChjb25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgdm9p ZCAqb3V0LCBjb25zdCB2b2lkICppbiwKIAogICBpZiAoaGFzaC0+Y29udGV4dHNpemUgPiBzaXpl b2YgKGN0eCkpCiAgICAgZ3J1Yl9mYXRhbCAoIlRvbyBsYXJnZSBtZCBjb250ZXh0Iik7Ci0gIGhh c2gtPmluaXQgKCZjdHgpOworICBoYXNoLT5pbml0ICgmY3R4LCAwKTsKICAgaGFzaC0+d3JpdGUg KCZjdHgsIGluLCBpbmxlbik7CiAgIGhhc2gtPmZpbmFsICgmY3R4KTsKICAgZ3J1Yl9tZW1jcHkg KG91dCwgaGFzaC0+cmVhZCAoJmN0eCksIGhhc2gtPm1kbGVuKTsKQEAgLTE1Myw2ICsyMDIsOTEg QEAgZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCiAgICAg fQogfQogCitjb25zdCBnY3J5X21kX3NwZWNfdCAqCitncnViX2NyeXB0b19sb29rdXBfbWRfYnlf b2lkIChjb25zdCBjaGFyICpvaWQpCit7CisgIGNvbnN0IGdjcnlfbWRfc3BlY190ICptZDsKKwor ICBpZiAoIW9pZCkKKyAgICByZXR1cm4gTlVMTDsKKworICBpZiAoZ3J1Yl9zdHJuY21wIChvaWQs ICJvaWQuIiwgNCkgPT0gMCB8fCBncnViX3N0cm5jbXAgKG9pZCwgIk9JRC4iLCA0KSA9PSAwKQor ICAgIG9pZCArPSA0OworCisKKyAgZm9yIChtZCA9IGdydWJfZGlnZXN0czsgbWQ7IG1kID0gbWQt Pm5leHQpCisgICAgeworICAgICAgY29uc3QgZ2NyeV9tZF9vaWRfc3BlY190ICpvaWRfc3BlY3Mg PSBtZC0+b2lkczsKKyAgICAgIGlmIChvaWRfc3BlY3MpCisgICAgICAgIHsKKyAgICAgICAgICBm b3IgKGludCBqID0gMDsgb2lkX3NwZWNzW2pdLm9pZHN0cmluZzsgaisrKQorICAgICAgICAgICAg aWYgKGdydWJfc3RyY2FzZWNtcCAob2lkLCBvaWRfc3BlY3Nbal0ub2lkc3RyaW5nKSA9PSAwKQor ICAgICAgICAgICAgICByZXR1cm4gbWQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgcmV0dXJuIE5V TEw7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICptZF9hbGdvc1tdID0geworICAgIFsxXSA9ICJN RDUiLAorICAgIFsyXSA9ICJTSEExIiwKKyAgICBbM10gPSAiUklQRU1EMTYwIiwKKyAgICBbNl0g PSAiVElHRVIiLAorICAgIFs4XSA9ICJTSEEyNTYiLAorICAgIFs5XSA9ICJTSEEzODQiLAorICAg IFsxMF0gPSAiU0hBNTEyIiwKKyAgICBbMTFdID0gIlNIQTIyNCIsCisKKyAgICBbMzAxXSA9ICJN RDQiLAorICAgIFszMDJdID0gIkNSQzMyIiwKKyAgICBbMzAzXSA9ICJDUkMzMlJGQzE1MTAiLAor ICAgIFszMDRdID0gIkNSQzI0UkZDMjQ0MCIsCisgICAgWzMwNV0gPSAiV0hJUkxQT09MIiwKKyAg ICBbMzA2XSA9ICJUSUdFUjEiLAorICAgIFszMDddID0gIlRJR0VSMiIsCisgICAgWzMwOF0gPSAi R09TVFIzNDExXzk0IiwKKyAgICBbMzA5XSA9ICJTVFJJQk9HMjU2IiwKKyAgICBbMzEwXSA9ICJT VFJJQk9HNTEyIiwKKyAgICBbMzExXSA9ICJHT1NUUjM0MTFfQ1AiLAorICAgIFszMTJdID0gIlNI QTMtMjI0IiwKKyAgICBbMzEzXSA9ICJTSEEzLTI1NiIsCisgICAgWzMxNF0gPSAiU0hBMy0zODQi LAorICAgIFszMTVdID0gIlNIQTMtNTEyIiwKKyAgICBbMzE2XSA9ICJTSEFLRTEyOCIsCisgICAg WzMxN10gPSAiU0hBS0UyNTYiLAorICAgIFszMThdID0gIkJMQUtFMkJfNTEyIiwKKyAgICBbMzE5 XSA9ICJCTEFLRTJCXzM4NCIsCisgICAgWzMyMF0gPSAiQkxBS0UyQl8yNTYiLAorICAgIFszMjFd ID0gIkJMQUtFMkJfMTYwIiwKKyAgICBbMzIyXSA9ICJCTEFLRTJTXzI1NiIsCisgICAgWzMyM10g PSAiQkxBS0UyU18yMjQiLAorICAgIFszMjRdID0gIkJMQUtFMlNfMTYwIiwKKyAgICBbMzI1XSA9 ICJCTEFLRTJTXzEyOCIsCisgICAgWzMyNl0gPSAiU00zIiwKKyAgICBbMzI3XSA9ICJTSEE1MTJf MjU2IiwKKyAgICBbMzI4XSA9ICJTSEE1MTJfMjI0IiwKK307CisKKworY29uc3QgZ2NyeV9tZF9z cGVjX3QgKgorZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X2FsZ28gKGludCBhbGdvKQoreworICBj b25zdCBnY3J5X21kX3NwZWNfdCAqbWQ7CisgIGludCBmaXJzdCA9IDE7CisgIHdoaWxlICgxKQor ICAgIHsKKyAgICAgIGZvciAobWQgPSBncnViX2RpZ2VzdHM7IG1kOyBtZCA9IG1kLT5uZXh0KQor CWlmIChhbGdvID09IG1kLT5hbGdvKQorCSAgcmV0dXJuIG1kOworICAgICAgaWYgKGdydWJfY3J5 cHRvX2F1dG9sb2FkX2hvb2sgJiYgZmlyc3QgJiYgYWxnbyA+IDAgJiYgYWxnbyA8IChpbnQpQVJS QVlfU0laRShtZF9hbGdvcykgJiYgbWRfYWxnb3NbYWxnb10pIHsKKwlncnViX2NyeXB0b19hdXRv bG9hZF9ob29rIChtZF9hbGdvc1thbGdvXSk7CisgICAgICB9IGVsc2UKKwlyZXR1cm4gTlVMTDsK KyAgICAgIGZpcnN0ID0gMDsKKyAgICB9Cit9CisKIGNvbnN0IGdjcnlfY2lwaGVyX3NwZWNfdCAq CiBncnViX2NyeXB0b19sb29rdXBfY2lwaGVyX2J5X25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCiB7 CkBAIC0xOTYsNyArMzMwLDkgQEAgZ3J1Yl9jcnlwdG9fY2lwaGVyX3NldF9rZXkgKGdydWJfY3J5 cHRvX2NpcGhlcl9oYW5kbGVfdCBjaXBoZXIsCiAJCQkgICAgY29uc3QgdW5zaWduZWQgY2hhciAq a2V5LAogCQkJICAgIHVuc2lnbmVkIGtleWxlbikKIHsKLSAgcmV0dXJuIGNpcGhlci0+Y2lwaGVy LT5zZXRrZXkgKGNpcGhlci0+Y3R4LCBrZXksIGtleWxlbik7CisgIC8qIFRPRE86IEZpeCB0aGlz LiBJdCdzIHVnbHkgYXMgaGVsbC4gICovCisgIHZvaWQgKmJ1bGtfb3BzWzEwMF07CisgIHJldHVy biBjaXBoZXItPmNpcGhlci0+c2V0a2V5IChjaXBoZXItPmN0eCwga2V5LCBrZXlsZW4sICh2b2lk ICopIGJ1bGtfb3BzKTsKIH0KIAogZ2NyeV9lcnJfY29kZV90CkBAIC0zNDMsNyArNDc5LDcgQEAg Z3J1Yl9jcnlwdG9faG1hY19pbml0IChjb25zdCBzdHJ1Y3QgZ2NyeV9tZF9zcGVjICptZCwKICAg Z3J1Yl9mcmVlIChoZWxwa2V5KTsKICAgaGVscGtleSA9IE5VTEw7CiAKLSAgbWQtPmluaXQgKGN0 eCk7CisgIG1kLT5pbml0IChjdHgsIDApOwogCiAgIG1kLT53cml0ZSAoY3R4LCBpcGFkLCBtZC0+ YmxvY2tzaXplKTsgLyogaW5uZXIgcGFkICovCiAgIGdydWJfbWVtc2V0IChpcGFkLCAwLCBtZC0+ YmxvY2tzaXplKTsKQEAgLTM5MCw3ICs1MjYsNyBAQCBncnViX2NyeXB0b19obWFjX2ZpbmkgKHN0 cnVjdCBncnViX2NyeXB0b19obWFjX2hhbmRsZSAqaG5kLCB2b2lkICpvdXQpCiAgIGhuZC0+bWQt PnJlYWQgKGhuZC0+Y3R4KTsKICAgcCA9IGhuZC0+bWQtPnJlYWQgKGhuZC0+Y3R4KTsKIAotICBo bmQtPm1kLT5pbml0IChjdHgyKTsKKyAgaG5kLT5tZC0+aW5pdCAoY3R4MiwgMCk7CiAgIGhuZC0+ bWQtPndyaXRlIChjdHgyLCBobmQtPm9wYWQsIGhuZC0+bWQtPmJsb2Nrc2l6ZSk7CiAgIGhuZC0+ bWQtPndyaXRlIChjdHgyLCBwLCBobmQtPm1kLT5tZGxlbik7CiAgIGhuZC0+bWQtPmZpbmFsIChj dHgyKTsKQEAgLTQzMywxOSArNTY5LDEwNiBAQCBncnViX2NyeXB0b19nY3J5X2Vycm9yIChnY3J5 X2Vycl9jb2RlX3QgaW4pCiAgIHJldHVybiBHUlVCX0FDQ0VTU19ERU5JRUQ7CiB9CiAKKworLyoK KyAqIENvbXBhcmUgYnl0ZSBhcnJheXMgb2YgbGVuZ3RoIExFTiwgcmV0dXJuIDEgaWYgaXQncyBu b3Qgc2FtZSwKKyAqIDAsIG90aGVyd2lzZS4KKyAqLwogaW50Ci1ncnViX2NyeXB0b19tZW1jbXAg KGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIsIGdydWJfc2l6ZV90IG4pCitncnViX2NyeXB0 b19tZW1jbXAgKGNvbnN0IHZvaWQgKmIxLCBjb25zdCB2b2lkICpiMiwgZ3J1Yl9zaXplX3QgbGVu KQogewotICByZWdpc3RlciBncnViX3NpemVfdCBjb3VudGVyID0gMDsKLSAgY29uc3QgZ3J1Yl91 aW50OF90ICpwYSwgKnBiOworICBjb25zdCBncnViX3VpbnQ4X3QgKmEgPSBiMTsKKyAgY29uc3Qg Z3J1Yl91aW50OF90ICpiID0gYjI7CisgIGludCBhYiwgYmE7CisgIGdydWJfc2l6ZV90IGk7CiAK LSAgZm9yIChwYSA9IGEsIHBiID0gYjsgbjsgcGErKywgcGIrKywgbi0tKQorICAvKiBDb25zdGFu dC10aW1lIGNvbXBhcmUuICovCisgIGZvciAoaSA9IDAsIGFiID0gMCwgYmEgPSAwOyBpIDwgbGVu OyBpKyspCiAgICAgewotICAgICAgaWYgKCpwYSAhPSAqcGIpCi0JY291bnRlcisrOworICAgICAg LyogSWYgYVtpXSAhPSBiW2ldLCBlaXRoZXIgYWIgb3IgYmEgd2lsbCBiZSBuZWdhdGl2ZS4gKi8K KyAgICAgIGFiIHw9IGFbaV0gLSBiW2ldOworICAgICAgYmEgfD0gYltpXSAtIGFbaV07CiAgICAg fQogCi0gIHJldHVybiAhIWNvdW50ZXI7CisgIC8qICdhYiB8IGJhJyBpcyBuZWdhdGl2ZSB3aGVu IGJ1ZmZlcnMgYXJlIG5vdCBlcXVhbCwgZXh0cmFjdCBzaWduIGJpdC4gICovCisgIHJldHVybiAo KHVuc2lnbmVkIGludCkoYWIgfCBiYSkgPj4gKHNpemVvZih1bnNpZ25lZCBpbnQpICogOCAtIDEp KSAmIDE7Cit9CisKKwordm9pZCAqCitfZ2NyeV9tYWxsb2Nfc2VjdXJlIChncnViX3NpemVfdCBu KQoreworICByZXR1cm4gZ3J1Yl9tYWxsb2Mobik7Cit9CisKK3ZvaWQgKgorX2djcnlfbWFsbG9j IChncnViX3NpemVfdCBuKQoreworICByZXR1cm4gZ3J1Yl9tYWxsb2Mobik7Cit9CisKK3ZvaWQg KgorX2djcnlfeG1hbGxvYyhncnViX3NpemVfdCBuKQoreworICB2b2lkICpyZXQgPSBncnViX21h bGxvYyhuKTsKKyAgaWYgKHJldCA9PSBOVUxMKQorICAgIGdydWJfZmF0YWwoIl9nY3J5X3htYWxs b2MgZmFpbGVkIik7CisgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQgKgorX2djcnlfeG1hbGxvY19z ZWN1cmUoZ3J1Yl9zaXplX3QgbikKK3sKKyAgdm9pZCAqcmV0ID0gZ3J1Yl9tYWxsb2Mobik7Cisg IGlmIChyZXQgPT0gTlVMTCkKKyAgICBncnViX2ZhdGFsKCJfZ2NyeV94bWFsbG9jX3NlY3VyZSBm YWlsZWQiKTsKKyAgcmV0dXJuIHJldDsKK30KKwordm9pZCBfZ2NyeV9mcmVlICh2b2lkICpwKQor eworICBncnViX2ZyZWUgKHApOworfQorCit2b2lkICoKK19nY3J5X3hyZWFsbG9jICh2b2lkICph LCBncnViX3NpemVfdCBuKQoreworICB2b2lkICpyZXQgPSBncnViX3JlYWxsb2MoYSwgbik7Cisg IGlmIChyZXQgPT0gTlVMTCkKKyAgICBncnViX2ZhdGFsKCJfZ2NyeV94cmVhbGxvYyBmYWlsZWQi KTsKKyAgcmV0dXJuIHJldDsKK30KKwordm9pZCAqCitfZ2NyeV94Y2FsbG9jIChncnViX3NpemVf dCBuLCBncnViX3NpemVfdCBtKQoreworICB2b2lkICpyZXQgPSBncnViX2NhbGxvYyhuLCBtKTsK KyAgaWYgKHJldCA9PSBOVUxMKQorICAgIGdydWJfZmF0YWwoIl9nY3J5X3hjYWxsb2MgZmFpbGVk Iik7CisgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQgKgorX2djcnlfeGNhbGxvY19zZWN1cmUgKGdy dWJfc2l6ZV90IG4sIGdydWJfc2l6ZV90IG0pCit7CisgIHZvaWQgKnJldCA9IGdydWJfY2FsbG9j KG4sIG0pOworICBpZiAocmV0ID09IE5VTEwpCisgICAgZ3J1Yl9mYXRhbCgiX2djcnlfeGNhbGxv Y19zZWN1cmUgZmFpbGVkIik7CisgIHJldHVybiByZXQ7Cit9CisKKworaW50CitfZ2NyeV9pc19z ZWN1cmUgKGNvbnN0IHZvaWQgKmEpCit7CisgICh2b2lkKSBhOworCisgIHJldHVybiAwOworfQor Cit2b2lkIF9nY3J5X2RpdmlkZV9ieV96ZXJvICh2b2lkKQoreworICBncnViX2ZhdGFsKCJnY3J5 cHQgZGl2aXNpb24gYnkgemVybyIpOwogfQogCiAjaWZuZGVmIEdSVUJfVVRJTApkaWZmIC0tZ2l0 IGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8wMV9tZC5wYXRjaCBiL2dydWItY29y ZS9saWIvbGliZ2NyeXB0LXBhdGNoZXMvMDFfbWQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwLi4wOGEwYzJjNTEKLS0tIC9kZXYvbnVsbAorKysgYi9ncnViLWNvcmUv bGliL2xpYmdjcnlwdC1wYXRjaGVzLzAxX21kLnBhdGNoCkBAIC0wLDAgKzEsMTQxIEBACistLS0g YS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9tZC5jCTIwMjQtMDUtMjEgMDE6 MjI6MDQuMjIyMDg0NzczICswMzAwCisrKysgYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC1ncnVi L2NpcGhlci9tZC5jCTIwMjQtMDUtMjEgMDE6MjI6MDcuMzY4MDk5OTYxICswMzAwCitAQCAtMjAs MTEgKzIwLDI1IEBACisgICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW07IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAgKi8K KysjaW5jbHVkZSA8Y29uZmlnLmg+CisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrI2luY2x1ZGUgPHN0 ZGxpYi5oPgorKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysjaW5jbHVkZSA8ZXJybm8uaD4KKyAKKyAK KyAjaW5jbHVkZSAiZzEwbGliLmgiCisgI2luY2x1ZGUgImNpcGhlci5oIgorIAorKyNkZWZpbmUg X2djcnlfbWRfc2VsZnRlc3QoYSxiLGMpIDAKKyt0eXBlZGVmIHN0cnVjdCBnY3J5X21kX2xpc3QK Kyt7CisrICBjb25zdCBnY3J5X21kX3NwZWNfdCAqc3BlYzsKKysgIHN0cnVjdCBnY3J5X21kX2xp c3QgKm5leHQ7CisrICBzaXplX3QgYWN0dWFsX3N0cnVjdF9zaXplOyAgICAgLyogQWxsb2NhdGVk IHNpemUgb2YgdGhpcyBzdHJ1Y3R1cmUuICovCisrICBQUk9QRVJMWV9BTElHTkVEX1RZUEUgY29u dGV4dFsxXTsKKyt9IEdjcnlEaWdlc3RFbnRyeTsKKysKKyAKKyAvKiBUaGlzIGlzIHRoZSBsaXN0 IG9mIHRoZSBkaWdlc3QgaW1wbGVtZW50YXRpb25zIGluY2x1ZGVkIGluCisgICAgbGliZ2NyeXB0 LiAgKi8KK0BAIC01Myw3ICs2Nyw2IEBACisgc3RhdGljIHZvaWQgbWRfY2xvc2UgKGdjcnlfbWRf aGRfdCBhKTsKKyBzdGF0aWMgdm9pZCBtZF93cml0ZSAoZ2NyeV9tZF9oZF90IGEsIGNvbnN0IHZv aWQgKmluYnVmLCBzaXplX3QgaW5sZW4pOworIHN0YXRpYyBieXRlICptZF9yZWFkKCBnY3J5X21k X2hkX3QgYSwgaW50IGFsZ28gKTsKKy1zdGF0aWMgaW50IG1kX2dldF9hbGdvKCBnY3J5X21kX2hk X3QgYSApOworIHN0YXRpYyBpbnQgbWRfZGlnZXN0X2xlbmd0aCggaW50IGFsZ28gKTsKKyBzdGF0 aWMgdm9pZCBtZF9zdGFydF9kZWJ1ZyAoIGdjcnlfbWRfaGRfdCBhLCBjb25zdCBjaGFyICpzdWZm aXggKTsKKyBzdGF0aWMgdm9pZCBtZF9zdG9wX2RlYnVnICggZ2NyeV9tZF9oZF90IGEgKTsKK0BA IC0xODYsOSArMTk5LDYgQEAKKyAKKyAgIGlmICghIGVycikKKyAgICAgeworLSAgICAgIC8qIEht bW0sIHNob3VsZCB3ZSByZWFsbHkgZG8gdGhhdD8gLSB5ZXMgWy13a10gKi8KKy0gICAgICBfZ2Ny eV9mYXN0X3JhbmRvbV9wb2xsICgpOworLQorICAgICAgIGlmIChhbGdvKQorIAl7CisgCSAgZXJy ID0gbWRfZW5hYmxlIChoZCwgYWxnbyk7CitAQCAtNDM3LDE0ICs0NDcsNiBAQAorIHsKKyAgIEdj cnlEaWdlc3RFbnRyeSAqcjsKKyAKKy0gIGlmIChhLT5jdHgtPmRlYnVnKQorLSAgICB7CistICAg ICAgaWYgKGEtPmJ1ZnBvcyAmJiBmd3JpdGUgKGEtPmJ1ZiwgYS0+YnVmcG9zLCAxLCBhLT5jdHgt PmRlYnVnKSAhPSAxKQorLQlCVUcoKTsKKy0gICAgICBpZiAoaW5sZW4gJiYgZndyaXRlIChpbmJ1 ZiwgaW5sZW4sIDEsIGEtPmN0eC0+ZGVidWcpICE9IDEpCistCUJVRygpOworLSAgICB9CistCisg ICBmb3IgKHIgPSBhLT5jdHgtPmxpc3Q7IHI7IHIgPSByLT5uZXh0KQorICAgICB7CisgICAgICAg aWYgKGEtPmJ1ZnBvcykKK0BAIC02NDMsNiArNjQ1LDcgQEAKKyAgICAgICByZXR1cm47CisgICAg IH0KKyAKKysjaWYgMAorICAgaWYgKHNwZWMtPmhhc2hfYnVmZmVycyAhPSBOVUxMKQorICAgICB7 CisgICAgICAgZ2NyeV9idWZmZXJfdCBpb3Y7CitAQCAtNjU5LDYgKzY2Miw3IEBACisgICAgICAg c3BlYy0+aGFzaF9idWZmZXJzIChkaWdlc3QsIHNwZWMtPm1kbGVuLCAmaW92LCAxKTsKKyAgICAg fQorICAgZWxzZQorKyNlbmRpZgorICAgICB7CisgICAgICAgLyogRm9yIHRoZSBvdGhlcnMgd2Ug ZG8gbm90IGhhdmUgYSBmYXN0IGZ1bmN0aW9uLCBzbyB3ZSB1c2UgdGhlCisgICAgICAgICAgbm9y bWFsIGZ1bmN0aW9ucy4gKi8KK0BAIC02OTQsNyArNjk4LDcgQEAKKyAgICBESUdFU1RMRU4gbWF5 IGFsc28gYmUgdGhlIGFwcHJvcHJpYXRlIGxlbmd0aCBvciwgaW4gY2FzZSBvZiBYT0YKKyAgICBh bGdvcml0aG1zLCBESUdFU1RMRU4gaW5kaWNhdGVzIG51bWJlciBieXRlcyB0byBleHRyYWN0IGZy b20gWE9GCisgICAgdG8gRElHRVNULiAgKi8KKy0jZGVmaW5lIF9nY3J5X21kX2hhc2hfYnVmZmVy cyAwCisrCisgCisgLyogU2hvcnRjdXQgZnVuY3Rpb24gdG8gaGFzaCBtdWx0aXBsZSBidWZmZXJz IHdpdGggYSBnaXZlbiBhbGdvLiAgSW4KKyAgICBjb250cmFzdCB0byBnY3J5X21kX2hhc2hfYnVm ZmVyLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgYW4gZXJyb3Igb24KK0BAIC03MTAsNyArNzE0LDYg QEAKKyAgICBPbiBzdWNjZXNzIDAgaXMgcmV0dXJuZWQgYW5kIHJlc3VsdGluZyBoYXNoIG9yIEhN QUMgaXMgc3RvcmVkIGF0CisgICAgRElHRVNUIHdoaWNoIG11c3QgaGF2ZSBiZWVuIHByb3ZpZGVk IGJ5IHRoZSBjYWxsZXIgd2l0aCBhbgorICAgIGFwcHJvcHJpYXRlIGxlbmd0aC4gICovCistI2Rl ZmluZSBfZ2NyeV9tZF9oYXNoX2J1ZmZlcnMgMAorIAorIAorIAorQEAgLTg0MSw0MyArODQ0LDE1 IEBACisgc3RhdGljIHZvaWQKKyBtZF9zdGFydF9kZWJ1ZyAoIGdjcnlfbWRfaGRfdCBtZCwgY29u c3QgY2hhciAqc3VmZml4ICkKKyB7CistICBzdGF0aWMgaW50IGlkeD0wOworLSAgY2hhciBidWZb NTBdOworLQorLSAgaWYgKGZpcHNfbW9kZSAoKSkKKy0gICAgcmV0dXJuOworLQorLSAgaWYgKCBt ZC0+Y3R4LT5kZWJ1ZyApCistICAgIHsKKy0gICAgICBsb2dfZGVidWcoIk9vcHM6IG1kIGRlYnVn IGFscmVhZHkgc3RhcnRlZFxuIik7CistICAgICAgcmV0dXJuOworLSAgICB9CistICBpZHgrKzsK Ky0gIHNucHJpbnRmIChidWYsIERJTShidWYpLTEsICJkYmdtZC0lMDVkLiUuMTBzIiwgaWR4LCBz dWZmaXggKTsKKy0gIG1kLT5jdHgtPmRlYnVnID0gZm9wZW4oYnVmLCAidyIpOworLSAgaWYgKCAh bWQtPmN0eC0+ZGVidWcgKQorLSAgICBsb2dfZGVidWcoIm1kIGRlYnVnOiBjYW4ndCBvcGVuICVz XG4iLCBidWYgKTsKKysgICh2b2lkKSBtZDsKKysgICh2b2lkKSBzdWZmaXg7CisgfQorIAorIAor IHN0YXRpYyB2b2lkCisgbWRfc3RvcF9kZWJ1ZyggZ2NyeV9tZF9oZF90IG1kICkKKyB7CistICBp ZiAoIG1kLT5jdHgtPmRlYnVnICkKKy0gICAgeworLSAgICAgIGlmICggbWQtPmJ1ZnBvcyApCist ICAgICAgICBtZF93cml0ZSAoIG1kLCBOVUxMLCAwICk7CistICAgICAgZmNsb3NlIChtZC0+Y3R4 LT5kZWJ1Zyk7CistICAgICAgbWQtPmN0eC0+ZGVidWcgPSBOVUxMOworLSAgICB9CistCistICB7 ICAvKiBhIGtsdWRnZSB0byBwdWxsIGluIHRoZSBfX211bGRpMyBmb3IgU29sYXJpcyAqLworLSAg ICB2b2xhdGlsZSB1MzIgYSA9ICh1MzIpKHVpbnRwdHJfdCltZDsKKy0gICAgdm9sYXRpbGUgdTY0 IGIgPSA0MjsKKy0gICAgdm9sYXRpbGUgdTY0IGM7CistICAgIGMgPSBhICogYjsKKy0gICAgKHZv aWQpYzsKKy0gIH0KKysgICh2b2lkKSBtZDsKKyB9CisgCisgCmRpZmYgLS1naXQgYS9ncnViLWNv cmUvbGliL2xpYmdjcnlwdC9zcmMvZ2NyeXB0LWludC5oIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5 cHQvc3JjL2djcnlwdC1pbnQuaAppbmRleCAzMDcxYjQyMWUuLjFjYTRmMjFmZSAxMDA2NDQKLS0t IGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQvc3JjL2djcnlwdC1pbnQuaAorKysgYi9ncnViLWNv cmUvbGliL2xpYmdjcnlwdC9zcmMvZ2NyeXB0LWludC5oCkBAIC0yNjUsNTcgKzI2NSw2IEBAIHZv aWQgX2djcnlfc2V0X2xvZ19oYW5kbGVyIChnY3J5X2hhbmRsZXJfbG9nX3QgZiwgdm9pZCAqb3Bh cXVlKTsKIHZvaWQgX2djcnlfc2V0X2dldHRleHRfaGFuZGxlciAoY29uc3QgY2hhciAqKCpmKShj b25zdCBjaGFyKikpOwogdm9pZCBfZ2NyeV9zZXRfcHJvZ3Jlc3NfaGFuZGxlciAoZ2NyeV9oYW5k bGVyX3Byb2dyZXNzX3QgY2IsIHZvaWQgKmNiX2RhdGEpOwogCi0MCi0vKiBSZXR1cm4gYSBwb2lu dGVyIHRvIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSBkZXNjcmlwdGlvbiBvZiB0aGUgZXJyb3IKLSAg IGNvZGUgaW4gdGhlIGVycm9yIHZhbHVlIEVSUi4gICovCi1zdGF0aWMgaW5saW5lIGNvbnN0IGNo YXIgKgotX2djcnlfc3RyZXJyb3IgKGdjcnlfZXJyb3JfdCBlcnIpCi17Ci0gIHJldHVybiBncGdf c3RyZXJyb3IgKGVycik7Ci19Ci0KLS8qIFJldHVybiBhIHBvaW50ZXIgdG8gYSBzdHJpbmcgY29u dGFpbmluZyBhIGRlc2NyaXB0aW9uIG9mIHRoZSBlcnJvcgotICAgc291cmNlIGluIHRoZSBlcnJv ciB2YWx1ZSBFUlIuICAqLwotc3RhdGljIGlubGluZSBjb25zdCBjaGFyICoKLV9nY3J5X3N0cnNv dXJjZSAoZ2NyeV9lcnJvcl90IGVycikKLXsKLSAgcmV0dXJuIGdwZ19zdHJzb3VyY2UgKGVycik7 Ci19Ci0KLS8qIFJldHJpZXZlIHRoZSBlcnJvciBjb2RlIGZvciB0aGUgc3lzdGVtIGVycm9yIEVS Ui4gIFRoaXMgcmV0dXJucwotICAgR1BHX0VSUl9VTktOT1dOX0VSUk5PIGlmIHRoZSBzeXN0ZW0g ZXJyb3IgaXMgbm90IG1hcHBlZCAocmVwb3J0Ci0gICB0aGlzKS4gICovCi1zdGF0aWMgaW5saW5l IGdjcnlfZXJyX2NvZGVfdAotX2djcnlfZXJyX2NvZGVfZnJvbV9lcnJubyAoaW50IGVycikKLXsK LSAgcmV0dXJuIGdwZ19lcnJfY29kZV9mcm9tX2Vycm5vIChlcnIpOwotfQotCi0vKiBSZXRyaWV2 ZSB0aGUgc3lzdGVtIGVycm9yIGZvciB0aGUgZXJyb3IgY29kZSBDT0RFLiAgVGhpcyByZXR1cm5z IDAKLSAgIGlmIENPREUgaXMgbm90IGEgc3lzdGVtIGVycm9yIGNvZGUuICAqLwotc3RhdGljIGlu bGluZSBpbnQKLV9nY3J5X2Vycl9jb2RlX3RvX2Vycm5vIChnY3J5X2Vycl9jb2RlX3QgY29kZSkK LXsKLSAgcmV0dXJuIGdwZ19lcnJfY29kZV90b19lcnJubyAoY29kZSk7Ci19Ci0KLS8qIFJldHVy biBhbiBlcnJvciB2YWx1ZSB3aXRoIHRoZSBlcnJvciBzb3VyY2UgU09VUkNFIGFuZCB0aGUgc3lz dGVtCi0gICBlcnJvciBFUlIuICAqLwotc3RhdGljIGlubGluZSBnY3J5X2Vycm9yX3QKLV9nY3J5 X2Vycl9tYWtlX2Zyb21fZXJybm8gKGdwZ19lcnJfc291cmNlX3Qgc291cmNlLCBpbnQgZXJyKQot ewotICByZXR1cm4gZ3BnX2Vycl9tYWtlX2Zyb21fZXJybm8gKHNvdXJjZSwgZXJyKTsKLX0KLQot Ci0vKiBSZXR1cm4gYW4gZXJyb3IgdmFsdWUgd2l0aCB0aGUgc3lzdGVtIGVycm9yIEVSUi4gICov Ci1zdGF0aWMgaW5saW5lIGdjcnlfZXJyb3JfdAotX2djcnlfZXJyb3JfZnJvbV9lcnJubyAoaW50 IGVycikKLXsKLSAgcmV0dXJuIGdwZ19lcnJvciAoZ3BnX2Vycl9jb2RlX2Zyb21fZXJybm8gKGVy cikpOwotfQotCi0KIAwKIGdwZ19lcnJfY29kZV90IF9nY3J5X3NleHBfbmV3IChnY3J5X3NleHBf dCAqcmV0c2V4cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpi dWZmZXIsIHNpemVfdCBsZW5ndGgsCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2xpYmdjcnlw dF93cmFwL2NpcGhlcl93cmFwLmggYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdF93cmFwL2NpcGhl cl93cmFwLmgKaW5kZXggNDI4MzU0OTNkLi4zNWViM2YzNTUgMTAwNjQ0Ci0tLSBhL2dydWItY29y ZS9saWIvbGliZ2NyeXB0X3dyYXAvY2lwaGVyX3dyYXAuaAorKysgYi9ncnViLWNvcmUvbGliL2xp YmdjcnlwdF93cmFwL2NpcGhlcl93cmFwLmgKQEAgLTE5LDYgKzE5LDggQEAKICNpZm5kZWYgR1JV Ql9HQ1JZX1dSQVBfSEVBREVSCiAjZGVmaW5lIEdSVUJfR0NSWV9XUkFQX0hFQURFUiAxCiAKKyNk ZWZpbmUgVVNFX1NIQTUxMiAxCisKICNpbmNsdWRlIDxncnViL3R5cGVzLmg+CiAjaW5jbHVkZSA8 Z3J1Yi9tbS5oPgogI2luY2x1ZGUgPGdydWIvbWlzYy5oPgpAQCAtMzUsOSArMzcsNyBAQAogI3Vu ZGVmIF9fR05VX0xJQlJBUllfXwogI2RlZmluZSBfX0dOVV9MSUJSQVJZX18gMQogCi0jZGVmaW5l IFU2NF9DKGMpIChjICMjIFVMTCkKLQotI2RlZmluZSBQVUJLRVlfRkxBR19OT19CTElORElORyAg ICAoMSA8PCAwKQorI2RlZmluZSBVSU5UNjRfQyhjKSAoYyAjIyBVTEwpCiAKICNkZWZpbmUgQ0lQ SEVSX0lORk9fTk9fV0VBS19LRVkgICAgMQogCkBAIC03NCw0ICs3NCwxMiBAQCBfZ2NyeV9maXBz X21vZGUgKHZvaWQpCiAKICNkZWZpbmUgZ2NyeV9tcGlfbW9kIF9nY3J5X21waV9tb2QKIAorI2Rl ZmluZSBzdHJ0b2wgZ3J1Yl9zdHJ0b2wKKyNkZWZpbmUgc3RydG91bCBncnViX3N0cnRvdWwKKyNk ZWZpbmUgYXRvaShucHRyKSAoc3RydG9sKChucHRyKSwgTlVMTCwgMTApKQorCisjZGVmaW5lIHN0 cGNweSBncnViX3N0cGNweQorCisjZGVmaW5lIHNwZWNfZnJvbV9hbGdvIGdydWJfY3J5cHRvX2xv b2t1cF9tZF9ieV9hbGdvCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi9saWJn Y3J5cHRfd3JhcC9tZW0uYyBiL2dydWItY29yZS9saWIvbGliZ2NyeXB0X3dyYXAvbWVtLmMKaW5k ZXggNzRjNmVhZmU1Li5hYjBjZjRhZDMgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIvbGliZ2Ny eXB0X3dyYXAvbWVtLmMKKysrIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHRfd3JhcC9tZW0uYwpA QCAtNDYsNiArNDYsMTUgQEAgZ2NyeV94Y2FsbG9jIChzaXplX3Qgbiwgc2l6ZV90IG0pCiAgIHJl dHVybiByZXQ7CiB9CiAKK3ZvaWQgKgorX2djcnlfY2FsbG9jIChzaXplX3Qgbiwgc2l6ZV90IG0p Cit7CisgIHNpemVfdCBzejsKKyAgaWYgKGdydWJfbXVsIChuLCBtLCAmc3opKQorICAgIHJldHVy biBOVUxMOworICByZXR1cm4gZ3J1Yl96YWxsb2MgKHN6KTsKK30KKwogdm9pZCAqCiBnY3J5X3ht YWxsb2Nfc2VjdXJlIChzaXplX3QgbikKIHsKQEAgLTY5LDYgKzc4LDE1IEBAIGdjcnlfeGNhbGxv Y19zZWN1cmUgKHNpemVfdCBuLCBzaXplX3QgbSkKICAgcmV0dXJuIHJldDsKIH0KIAordm9pZCAq CitfZ2NyeV9jYWxsb2Nfc2VjdXJlIChzaXplX3Qgbiwgc2l6ZV90IG0pCit7CisgIHNpemVfdCBz ejsKKyAgaWYgKGdydWJfbXVsIChuLCBtLCAmc3opKQorICAgIHJldHVybiBOVUxMOworICByZXR1 cm4gZ3J1Yl96YWxsb2MgKHN6KTsKK30KKwogdm9pZCAqCiBnY3J5X3htYWxsb2MgKHNpemVfdCBu KQogewpAQCAtODksNiArMTA3LDEyIEBAIGdjcnlfeHJlYWxsb2MgKHZvaWQgKmEsIHNpemVfdCBu KQogICByZXR1cm4gcmV0OwogfQogCit2b2lkICoKK19nY3J5X3JlYWxsb2MgKHZvaWQgKmEsIHNp emVfdCBuKQoreworICByZXR1cm4gZ3J1Yl9yZWFsbG9jIChhLCBuKTsKK30KKwogdm9pZAogX2dj cnlfY2hlY2tfaGVhcCAoY29uc3Qgdm9pZCAqYSBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSkpCiB7 CkBAIC0xMTMsNiArMTM3LDI0IEBAIHZvaWQgX2djcnlfbG9nX3ByaW50ZiAoY29uc3QgY2hhciAq Zm10LCAuLi4pCiAgICAgfQogfQogCit2b2lkIF9nY3J5X2xvZ19kZWJ1ZyAoY29uc3QgY2hhciAq Zm10LCAuLi4pCit7CisgIHZhX2xpc3QgYXJnczsKKyAgY29uc3QgY2hhciAqZGVidWcgPSBncnVi X2Vudl9nZXQgKCJkZWJ1ZyIpOworCisgIGlmICghIGRlYnVnKQorICAgIHJldHVybjsKKworICBp ZiAoZ3J1Yl9zdHJ3b3JkIChkZWJ1ZywgImFsbCIpIHx8IGdydWJfc3Ryd29yZCAoZGVidWcsICJn Y3J5cHQiKSkKKyAgICB7CisgICAgICBncnViX3ByaW50ZiAoImdjcnlwdDogIik7CisgICAgICB2 YV9zdGFydCAoYXJncywgZm10KTsKKyAgICAgIGdydWJfdnByaW50ZiAoZm10LCBhcmdzKTsKKyAg ICAgIHZhX2VuZCAoYXJncyk7CisgICAgICBncnViX3JlZnJlc2ggKCk7CisgICAgfQorfQorCiB2 b2lkIF9nY3J5X2xvZ19idWcgKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogICB2YV9saXN0IGFy Z3M7CkBAIC0xMjYsOSArMTY4LDkgQEAgdm9pZCBfZ2NyeV9sb2dfYnVnIChjb25zdCBjaGFyICpm bXQsIC4uLikKIH0KIAogZ2NyeV9lcnJfY29kZV90Ci1ncGdfZXJyb3JfZnJvbV9zeXNlcnJvciAo dm9pZCkKK2dwZ19lcnJfY29kZV9mcm9tX2Vycm5vIChpbnQgZXJyKQogewotICBzd2l0Y2ggKGdy dWJfZXJybm8pCisgIHN3aXRjaCAoZXJyKQogICAgIHsKICAgICBjYXNlIEdSVUJfRVJSX05PTkU6 CiAgICAgICByZXR1cm4gR1BHX0VSUl9OT19FUlJPUjsKQEAgLTEzOCwzICsxODAsNDAgQEAgZ3Bn X2Vycm9yX2Zyb21fc3lzZXJyb3IgKHZvaWQpCiAgICAgICByZXR1cm4gR1BHX0VSUl9HRU5FUkFM OwogICAgIH0KIH0KKworZ2NyeV9lcnJfY29kZV90CitncGdfZXJyb3JfZnJvbV9zeXNlcnJvciAo dm9pZCkKK3sKKyAgcmV0dXJuIGdwZ19lcnJfY29kZV9mcm9tX2Vycm5vKGdydWJfZXJybm8pOwor fQorCitnY3J5X2Vycl9jb2RlX3QKK2dwZ19lcnJfY29kZV9mcm9tX3N5c2Vycm9yICh2b2lkKQor eworICByZXR1cm4gZ3BnX2Vycm9yX2Zyb21fc3lzZXJyb3IgKCk7Cit9CisKK3ZvaWQgX2djcnlf ZmF0YWxfZXJyb3IoaW50IHJjLCBjb25zdCBjaGFyICp0ZXh0ICkKK3sKKyAgZ3J1Yl9mYXRhbCgi Z2NyeSBmYXRhbCAlZDogJXMiLCByYywgdGV4dCk7Cit9CisKKwordm9pZCBfZ2NyeV9yYW5kb21p emUgKHZvaWQgKmJ1ZmZlciBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSwgc2l6ZV90IGxlbmd0aCBf X2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSwKKyAgICAgICAgICAgICAgICAgICAgICBlbnVtIGdjcnlf cmFuZG9tX2xldmVsIGxldmVsIF9fYXR0cmlidXRlX18oKHVudXNlZCkpKQoreworICBncnViX2Zh dGFsKCJBdHRlbXB0IHRvIGdldCBzZWN1cmUgcmFuZG9tIG51bWJlcnMiKTsKK30KKworCit2b2lk ICpfZ2NyeV9yYW5kb21fYnl0ZXNfc2VjdXJlIChzaXplX3QgbmJ5dGVzIF9fYXR0cmlidXRlX18o KHVudXNlZCkpLCBlbnVtIGdjcnlfcmFuZG9tX2xldmVsIGxldmVsIF9fYXR0cmlidXRlX18oKHVu dXNlZCkpKQoreworICBncnViX2ZhdGFsKCJBdHRlbXB0IHRvIGdldCBzZWN1cmUgcmFuZG9tIG51 bWJlcnMiKTsKK30KKworY29uc3QgY2hhciAqZ3BnX3N0cmVycm9yIChncGdfZXJyb3JfdCBlcnIp Cit7CisgIHN0YXRpYyBjaGFyIGJ1ZlsyNTZdOworICBncnViX3NucHJpbnRmKGJ1Ziwgc2l6ZW9m KGJ1ZikgLSA1LCAiZ3BnIGVycm9yICVkXG4iLCBlcnIpOworICByZXR1cm4gYnVmOworfQpkaWZm IC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi94emVtYmVkL3h6X2RlY19zdHJlYW0uYyBiL2dydWItY29y ZS9saWIveHplbWJlZC94el9kZWNfc3RyZWFtLmMKaW5kZXggODMyZDhhZjlhLi5mMmRkNDJkYzIg MTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIveHplbWJlZC94el9kZWNfc3RyZWFtLmMKKysrIGIv Z3J1Yi1jb3JlL2xpYi94emVtYmVkL3h6X2RlY19zdHJlYW0uYwpAQCAtNDI1LDkgKzQyNSw5IEBA IHN0YXRpYyBlbnVtIHh6X3JldCBoYXNoX3ZhbGlkYXRlKHN0cnVjdCB4el9kZWMgKnMsIHN0cnVj dCB4el9idWYgKmIsCiAKICNpZm5kZWYgR1JVQl9FTUJFRF9ERUNPTVBSRVNTT1IKIAlpZiAocy0+ aGFzaCkKLQkJcy0+aGFzaC0+aW5pdChzLT5oYXNoX2NvbnRleHQpOworCQlzLT5oYXNoLT5pbml0 KHMtPmhhc2hfY29udGV4dCwgMCk7CiAJaWYgKHMtPmNyYzMyKQotCQlzLT5jcmMzMi0+aW5pdChz LT5jcmMzMl9jb250ZXh0KTsKKwkJcy0+Y3JjMzItPmluaXQocy0+Y3JjMzJfY29udGV4dCwgMCk7 CiAjZW5kaWYKIAlzLT5oYXZlX2hhc2hfdmFsdWUgPSAwOwogCXMtPnBvcyA9IDA7CkBAIC00OTMs NyArNDkzLDcgQEAgc3RhdGljIGVudW0geHpfcmV0IGRlY19zdHJlYW1faGVhZGVyKHN0cnVjdCB4 el9kZWMgKnMpCiAJCXMtPmNyYzMyX2NvbnRleHQgPSBrbWFsbG9jKHMtPmNyYzMyLT5jb250ZXh0 c2l6ZSwgR0ZQX0tFUk5FTCk7CiAJCWlmIChzLT5jcmMzMl9jb250ZXh0ID09IE5VTEwpCiAJCQly ZXR1cm4gWFpfTUVNTElNSVRfRVJST1I7Ci0JCXMtPmNyYzMyLT5pbml0KHMtPmNyYzMyX2NvbnRl eHQpOworCQlzLT5jcmMzMi0+aW5pdChzLT5jcmMzMl9jb250ZXh0LCAwKTsKIAl9CiAjZW5kaWYK IApAQCAtNTMxLDkgKzUzMSw5IEBAIHN0YXRpYyBlbnVtIHh6X3JldCBkZWNfc3RyZWFtX2hlYWRl cihzdHJ1Y3QgeHpfZGVjICpzKQogCQkJCXJldHVybiBYWl9NRU1MSU1JVF9FUlJPUjsKIAkJCX0K IAotCQkJcy0+aGFzaC0+aW5pdChzLT5oYXNoX2NvbnRleHQpOwotCQkJcy0+aGFzaC0+aW5pdChz LT5pbmRleC5oYXNoLmhhc2hfY29udGV4dCk7Ci0gCQkJcy0+aGFzaC0+aW5pdChzLT5ibG9jay5o YXNoLmhhc2hfY29udGV4dCk7CisJCQlzLT5oYXNoLT5pbml0KHMtPmhhc2hfY29udGV4dCwgMCk7 CisJCQlzLT5oYXNoLT5pbml0KHMtPmluZGV4Lmhhc2guaGFzaF9jb250ZXh0LCAwKTsKKyAJCQlz LT5oYXNoLT5pbml0KHMtPmJsb2NrLmhhc2guaGFzaF9jb250ZXh0LCAwKTsKIAkJfQogI2VuZGlm CiAJfQpAQCAtMTAxNCw5ICsxMDE0LDkgQEAgdm9pZCB4el9kZWNfcmVzZXQoc3RydWN0IHh6X2Rl YyAqcykKICNpZm5kZWYgR1JVQl9FTUJFRF9ERUNPTVBSRVNTT1IKIAlpZiAocy0+aGFzaCkKIAl7 Ci0JCXMtPmhhc2gtPmluaXQocy0+aGFzaF9jb250ZXh0KTsKLQkJcy0+aGFzaC0+aW5pdChzLT5p bmRleC5oYXNoLmhhc2hfY29udGV4dCk7Ci0JCXMtPmhhc2gtPmluaXQocy0+YmxvY2suaGFzaC5o YXNoX2NvbnRleHQpOworCQlzLT5oYXNoLT5pbml0KHMtPmhhc2hfY29udGV4dCwgMCk7CisJCXMt Pmhhc2gtPmluaXQocy0+aW5kZXguaGFzaC5oYXNoX2NvbnRleHQsIDApOworCQlzLT5oYXNoLT5p bml0KHMtPmJsb2NrLmhhc2guaGFzaF9jb250ZXh0LCAwKTsKIAl9CiAjZW5kaWYKIAlzLT5oYXZl X2hhc2hfdmFsdWUgPSAwOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ncnViL2NyeXB0by5oIGIvaW5j bHVkZS9ncnViL2NyeXB0by5oCmluZGV4IDMxYzg3YzMwMi4uMDFmODZiZTcxIDEwMDY0NAotLS0g YS9pbmNsdWRlL2dydWIvY3J5cHRvLmgKKysrIGIvaW5jbHVkZS9ncnViL2NyeXB0by5oCkBAIC02 NSw3ICs2NSwzMSBAQCB0eXBlZGVmIGVudW0KICAgICBHUEdfRVJSX1dST05HX1BVQktFWV9BTEdP LAogICAgIEdQR19FUlJfT1VUX09GX01FTU9SWSwKICAgICBHUEdfRVJSX1RPT19MQVJHRSwKLSAg ICBHUEdfRVJSX0VOT01FTQorICAgIEdQR19FUlJfRU5PTUVNLAorICAgIEdQR19FUlJfQ0hFQ0tT VU0sCisgICAgR1BHX0VSUl9JTlZfTEVOR1RILAorICAgIEdQR19FUlJfVkFMVUVfTk9UX0ZPVU5E LAorICAgIEdQR19FUlJfRVJBTkdFLAorICAgIEdQR19FUlJfSU5WX0RBVEEsCisgICAgR1BHX0VS Ul9FTkNPRElOR19QUk9CTEVNLAorICAgIEdQR19FUlJfQlVGRkVSX1RPT19TSE9SVCwKKyAgICBH UEdfRVJSX1NZTlRBWCwKKyAgICBHUEdfRVJSX1NFWFBfSU5WX0xFTl9TUEVDLAorICAgIEdQR19F UlJfU0VYUF9VTk1BVENIRURfREgsCisgICAgR1BHX0VSUl9TRVhQX1VOTUFUQ0hFRF9QQVJFTiwK KyAgICBHUEdfRVJSX1NFWFBfWkVST19QUkVGSVgsCisgICAgR1BHX0VSUl9TRVhQX05FU1RFRF9E SCwKKyAgICBHUEdfRVJSX1NFWFBfVU5FWFBFQ1RFRF9QVU5DLAorICAgIEdQR19FUlJfU0VYUF9C QURfQ0hBUkFDVEVSLAorICAgIEdQR19FUlJfU0VYUF9OT1RfQ0FOT05JQ0FMLAorICAgIEdQR19F UlJfU0VYUF9TVFJJTkdfVE9PX0xPTkcsCisgICAgR1BHX0VSUl9TRVhQX0JBRF9RVU9UQVRJT04s CisgICAgR1BHX0VSUl9TRVhQX09ERF9IRVhfTlVNQkVSUywKKyAgICBHUEdfRVJSX1NFWFBfQkFE X0hFWF9DSEFSLAorICAgIEdQR19FUlJfTElNSVRfUkVBQ0hFRCwKKyAgICBHUEdfRVJSX0VPRiwK KyAgICBHUEdfRVJSX0JBRF9EQVRBLAorICAgIEdQR19FUlJfRUlOVkFMLAogICB9IGdwZ19lcnJf Y29kZV90OwogdHlwZWRlZiBncGdfZXJyX2NvZGVfdCBncGdfZXJyb3JfdDsKIHR5cGVkZWYgZ3Bn X2Vycm9yX3QgZ2NyeV9lcnJvcl90OwpAQCAtODQsMzcgKzEwOCw2MCBAQCBlbnVtIGdjcnlfY2lw aGVyX21vZGVzCiAgIH07CiAjZW5kaWYKIAorLyogRXh0cmEgYWxnbyBJRHMgbm90IGNvbWluZyBm cm9tIGdjcnlwdC4gICovCisjZGVmaW5lIEdDUllfTURfQURMRVIzMiAxMDMwMQorI2RlZmluZSBH Q1JZX01EX0NSQzY0IDEwMzAyCisKIC8qIERvbid0IHJlbHkgb24gdGhpcy4gQ2hlY2shICAqLwog I2RlZmluZSBHUlVCX0NSWVBUT19NQVhfTURMRU4gNjQKICNkZWZpbmUgR1JVQl9DUllQVE9fTUFY X0NJUEhFUl9CTE9DS1NJWkUgMTYKICNkZWZpbmUgR1JVQl9DUllQVE9fTUFYX01EX0NPTlRFWFRf U0laRSAyNTYKIAogLyogVHlwZSBmb3IgdGhlIGNpcGhlcl9zZXRrZXkgZnVuY3Rpb24uICAqLwor c3RydWN0IGNpcGhlcl9idWxrX29wczsKKwogdHlwZWRlZiBnY3J5X2Vycl9jb2RlX3QgKCpnY3J5 X2NpcGhlcl9zZXRrZXlfdCkgKHZvaWQgKmMsCiAJCQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAq a2V5LAotCQkJCQkJIHVuc2lnbmVkIGtleWxlbik7CisJCQkJCQkgdW5zaWduZWQga2V5bGVuLAor CQkJCQkJIHN0cnVjdCBjaXBoZXJfYnVsa19vcHMgKmJ1bGtfb3BzKTsKIAogLyogVHlwZSBmb3Ig dGhlIGNpcGhlcl9lbmNyeXB0IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgdm9pZCAoKmdjcnlfY2lw aGVyX2VuY3J5cHRfdCkgKHZvaWQgKmMsCi0JCQkJICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dGJ1 ZiwKLQkJCQkgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5idWYpOwordHlwZWRlZiB1bnNp Z25lZCBpbnQgKCpnY3J5X2NpcGhlcl9lbmNyeXB0X3QpICh2b2lkICpjLAorCQkJCQkgICAgICAg dW5zaWduZWQgY2hhciAqb3V0YnVmLAorCQkJCQkgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAq aW5idWYpOwogCiAvKiBUeXBlIGZvciB0aGUgY2lwaGVyX2RlY3J5cHQgZnVuY3Rpb24uICAqLwot dHlwZWRlZiB2b2lkICgqZ2NyeV9jaXBoZXJfZGVjcnlwdF90KSAodm9pZCAqYywKLQkJCQkgICAg ICAgdW5zaWduZWQgY2hhciAqb3V0YnVmLAotCQkJCSAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFy ICppbmJ1Zik7Cit0eXBlZGVmIHVuc2lnbmVkIGludCAoKmdjcnlfY2lwaGVyX2RlY3J5cHRfdCkg KHZvaWQgKmMsCisJCQkJCSAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRidWYsCisJCQkJCSAgICAg ICBjb25zdCB1bnNpZ25lZCBjaGFyICppbmJ1Zik7CiAKIC8qIFR5cGUgZm9yIHRoZSBjaXBoZXJf c3RlbmNyeXB0IGZ1bmN0aW9uLiAgKi8KIHR5cGVkZWYgdm9pZCAoKmdjcnlfY2lwaGVyX3N0ZW5j cnlwdF90KSAodm9pZCAqYywKIAkJCQkJIHVuc2lnbmVkIGNoYXIgKm91dGJ1ZiwKIAkJCQkJIGNv bnN0IHVuc2lnbmVkIGNoYXIgKmluYnVmLAotCQkJCQkgdW5zaWduZWQgaW50IG4pOworCQkJCQkg Z3J1Yl9zaXplX3Qgbik7CiAKIC8qIFR5cGUgZm9yIHRoZSBjaXBoZXJfc3RkZWNyeXB0IGZ1bmN0 aW9uLiAgKi8KIHR5cGVkZWYgdm9pZCAoKmdjcnlfY2lwaGVyX3N0ZGVjcnlwdF90KSAodm9pZCAq YywKIAkJCQkJIHVuc2lnbmVkIGNoYXIgKm91dGJ1ZiwKIAkJCQkJIGNvbnN0IHVuc2lnbmVkIGNo YXIgKmluYnVmLAotCQkJCQkgdW5zaWduZWQgaW50IG4pOworCQkJCQkgZ3J1Yl9zaXplX3Qgbik7 CisKK3R5cGVkZWYgdm9pZCAoKnNlbGZ0ZXN0X3JlcG9ydF9mdW5jX3QpKGNvbnN0IGNoYXIgKmRv bWFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBhbGdvLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqd2hhdCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycmRl c2MpOworCisvKiBUaGUgdHlwZSB1c2VkIHRvIGNvbnZleSBhZGRpdGlvbmFsIGluZm9ybWF0aW9u IHRvIGEgY2lwaGVyLiAgKi8KK3R5cGVkZWYgZ3BnX2Vycl9jb2RlX3QgKCpnY3J5X2NpcGhlcl9z ZXRfZXh0cmFfaW5mb190KQorICAgICAodm9pZCAqYywgaW50IHdoYXQsIGNvbnN0IHZvaWQgKmJ1 ZmZlciwgZ3J1Yl9zaXplX3QgYnVmbGVuKTsKKworLyogVGhlIHR5cGUgdXNlZCB0byBzZXQgYW4g SVYgZGlyZWN0bHkgaW4gdGhlIGFsZ29yaXRobSBtb2R1bGUuICAqLwordHlwZWRlZiB2b2lkICgq Z2NyeV9jaXBoZXJfc2V0aXZfZnVuY190KSh2b2lkICpjLCBjb25zdCBncnViX3VpbnQ4X3QgKml2 LCBncnViX3NpemVfdCBpdmxlbik7CisKKy8qIERlZmluaXRpb24gb2YgdGhlIHNlbGZ0ZXN0IGZ1 bmN0aW9ucy4gICovCit0eXBlZGVmIGdwZ19lcnJfY29kZV90ICgqZ2NyeV9zZWxmdGVzdF9mdW5j X3QpCisgICAgIChpbnQgYWxnbywgaW50IGV4dGVuZGVkLCBzZWxmdGVzdF9yZXBvcnRfZnVuY190 IHJlcG9ydCk7CiAKIHR5cGVkZWYgc3RydWN0IGdjcnlfY2lwaGVyX29pZF9zcGVjCiB7CkBAIC0x MjUsOSArMTcyLDE0IEBAIHR5cGVkZWYgc3RydWN0IGdjcnlfY2lwaGVyX29pZF9zcGVjCiAvKiBN b2R1bGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUgZm9yIGNpcGhlcnMuICAqLwogdHlwZWRlZiBz dHJ1Y3QgZ2NyeV9jaXBoZXJfc3BlYwogeworICBpbnQgYWxnbzsKKyAgc3RydWN0IHsKKyAgICB1 bnNpZ25lZCBpbnQgZGlzYWJsZWQ6MTsKKyAgICB1bnNpZ25lZCBpbnQgZmlwczoxOworICB9IGZs YWdzOwogICBjb25zdCBjaGFyICpuYW1lOwogICBjb25zdCBjaGFyICoqYWxpYXNlczsKLSAgZ2Ny eV9jaXBoZXJfb2lkX3NwZWNfdCAqb2lkczsKKyAgY29uc3QgZ2NyeV9jaXBoZXJfb2lkX3NwZWNf dCAqb2lkczsKICAgZ3J1Yl9zaXplX3QgYmxvY2tzaXplOwogICBncnViX3NpemVfdCBrZXlsZW47 CiAgIGdydWJfc2l6ZV90IGNvbnRleHRzaXplOwpAQCAtMTM2LDYgKzE4OCwxMCBAQCB0eXBlZGVm IHN0cnVjdCBnY3J5X2NpcGhlcl9zcGVjCiAgIGdjcnlfY2lwaGVyX2RlY3J5cHRfdCBkZWNyeXB0 OwogICBnY3J5X2NpcGhlcl9zdGVuY3J5cHRfdCBzdGVuY3J5cHQ7CiAgIGdjcnlfY2lwaGVyX3N0 ZGVjcnlwdF90IHN0ZGVjcnlwdDsKKyAgZ2NyeV9zZWxmdGVzdF9mdW5jX3Qgc2VsZnRlc3Q7Cisg IGdjcnlfY2lwaGVyX3NldF9leHRyYV9pbmZvX3Qgc2V0X2V4dHJhX2luZm87CisgIGdjcnlfY2lw aGVyX3NldGl2X2Z1bmNfdCBzZXRpdjsKKwogI2lmZGVmIEdSVUJfVVRJTAogICBjb25zdCBjaGFy ICptb2RuYW1lOwogI2VuZGlmCkBAIC0xNDMsNyArMTk5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2Ny eV9jaXBoZXJfc3BlYwogfSBnY3J5X2NpcGhlcl9zcGVjX3Q7CiAKIC8qIFR5cGUgZm9yIHRoZSBt ZF9pbml0IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgdm9pZCAoKmdjcnlfbWRfaW5pdF90KSAodm9p ZCAqYyk7Cit0eXBlZGVmIHZvaWQgKCpnY3J5X21kX2luaXRfdCkgKHZvaWQgKmMsIHVuc2lnbmVk IGludCBmbGFncyk7CiAKIC8qIFR5cGUgZm9yIHRoZSBtZF93cml0ZSBmdW5jdGlvbi4gICovCiB0 eXBlZGVmIHZvaWQgKCpnY3J5X21kX3dyaXRlX3QpICh2b2lkICpjLCBjb25zdCB2b2lkICpidWYs IGdydWJfc2l6ZV90IG5ieXRlcyk7CkBAIC0xNjIsMTYgKzIxOCwyNCBAQCB0eXBlZGVmIHN0cnVj dCBnY3J5X21kX29pZF9zcGVjCiAvKiBNb2R1bGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUgZm9y IG1lc3NhZ2UgZGlnZXN0cy4gICovCiB0eXBlZGVmIHN0cnVjdCBnY3J5X21kX3NwZWMKIHsKKyAg aW50IGFsZ287CisgIHN0cnVjdCB7CisgICAgdW5zaWduZWQgaW50IGRpc2FibGVkOjE7CisgICAg dW5zaWduZWQgaW50IGZpcHM6MTsKKyAgfSBmbGFnczsKICAgY29uc3QgY2hhciAqbmFtZTsKLSAg dW5zaWduZWQgY2hhciAqYXNub2lkOworICBjb25zdCB1bnNpZ25lZCBjaGFyICphc25vaWQ7CiAg IGludCBhc25sZW47Ci0gIGdjcnlfbWRfb2lkX3NwZWNfdCAqb2lkczsKKyAgY29uc3QgZ2NyeV9t ZF9vaWRfc3BlY190ICpvaWRzOwogICBncnViX3NpemVfdCBtZGxlbjsKICAgZ2NyeV9tZF9pbml0 X3QgaW5pdDsKICAgZ2NyeV9tZF93cml0ZV90IHdyaXRlOwogICBnY3J5X21kX2ZpbmFsX3QgZmlu YWw7CiAgIGdjcnlfbWRfcmVhZF90IHJlYWQ7CisgIHZvaWQgKmV4dHJhY3Q7CisgIHZvaWQgKmhh c2hfYnVmZmVyczsKICAgZ3J1Yl9zaXplX3QgY29udGV4dHNpemU7IC8qIGFsbG9jYXRlIHRoaXMg YW1vdW50IG9mIGNvbnRleHQgKi8KKwogICAvKiBCbG9jayBzaXplLCBuZWVkZWQgZm9yIEhNQUMu ICAqLwogICBncnViX3NpemVfdCBibG9ja3NpemU7CiAjaWZkZWYgR1JVQl9VVElMCkBAIC0xODAs NTQgKzI0NCwxMjMgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9tZF9zcGVjCiAgIHN0cnVjdCBnY3J5 X21kX3NwZWMgKm5leHQ7CiB9IGdjcnlfbWRfc3BlY190OwogCit0eXBlZGVmIHN0cnVjdCBnY3J5 X21kX2hhbmRsZSpnY3J5X21kX2hkX3Q7CisKIHN0cnVjdCBnY3J5X21waTsKIHR5cGVkZWYgc3Ry dWN0IGdjcnlfbXBpICpnY3J5X21waV90OwogCitzdHJ1Y3QgZ2NyeV9zZXhwOwordHlwZWRlZiBz dHJ1Y3QgZ2NyeV9zZXhwICpnY3J5X3NleHBfdDsKKworCisjZGVmaW5lIFBVQktFWV9GTEFHX05P X0JMSU5ESU5HICAgICgxIDw8IDApCisjZGVmaW5lIFBVQktFWV9GTEFHX1JGQzY5NzkgICAgICAg ICgxIDw8IDEpCisjZGVmaW5lIFBVQktFWV9GTEFHX0ZJWEVETEVOICAgICAgICgxIDw8IDIpCisj ZGVmaW5lIFBVQktFWV9GTEFHX0xFR0FDWVJFU1VMVCAgICgxIDw8IDMpCisjZGVmaW5lIFBVQktF WV9GTEFHX1JBV19GTEFHICAgICAgICgxIDw8IDQpCisjZGVmaW5lIFBVQktFWV9GTEFHX1RSQU5T SUVOVF9LRVkgICgxIDw8IDUpCisjZGVmaW5lIFBVQktFWV9GTEFHX1VTRV9YOTMxICAgICAgICgx IDw8IDYpCisjZGVmaW5lIFBVQktFWV9GTEFHX1VTRV9GSVBTMTg2ICAgICgxIDw8IDcpCisjZGVm aW5lIFBVQktFWV9GTEFHX1VTRV9GSVBTMTg2XzIgICgxIDw8IDgpCisjZGVmaW5lIFBVQktFWV9G TEFHX1BBUkFNICAgICAgICAgICgxIDw8IDkpCisjZGVmaW5lIFBVQktFWV9GTEFHX0NPTVAgICAg ICAgICAgICgxIDw8IDEwKQorI2RlZmluZSBQVUJLRVlfRkxBR19OT0NPTVAgICAgICAgICAoMSA8 PCAxMSkKKyNkZWZpbmUgUFVCS0VZX0ZMQUdfRUREU0EgICAgICAgICAgKDEgPDwgMTIpCisjZGVm aW5lIFBVQktFWV9GTEFHX0dPU1QgICAgICAgICAgICgxIDw8IDEzKQorI2RlZmluZSBQVUJLRVlf RkxBR19OT19LRVlURVNUICAgICAoMSA8PCAxNCkKKyNkZWZpbmUgUFVCS0VZX0ZMQUdfREpCX1RX RUFLICAgICAgKDEgPDwgMTUpCisjZGVmaW5lIFBVQktFWV9GTEFHX1NNMiAgICAgICAgICAgICgx IDw8IDE2KQorI2RlZmluZSBQVUJLRVlfRkxBR19QUkVIQVNIICAgICAgICAoMSA8PCAxNykKKwor ZW51bSBwa19vcGVyYXRpb24KKyAgeworICAgIFBVQktFWV9PUF9FTkNSWVBULAorICAgIFBVQktF WV9PUF9ERUNSWVBULAorICAgIFBVQktFWV9PUF9TSUdOLAorICAgIFBVQktFWV9PUF9WRVJJRlkK KyAgfTsKKworZW51bSBwa19lbmNvZGluZworICB7CisgICAgUFVCS0VZX0VOQ19SQVcsCisgICAg UFVCS0VZX0VOQ19QS0NTMSwKKyAgICBQVUJLRVlfRU5DX1BLQ1MxX1JBVywKKyAgICBQVUJLRVlf RU5DX09BRVAsCisgICAgUFVCS0VZX0VOQ19QU1MsCisgICAgUFVCS0VZX0VOQ19VTktOT1dOCisg IH07CisKK3N0cnVjdCBwa19lbmNvZGluZ19jdHgKK3sKKyAgZW51bSBwa19vcGVyYXRpb24gb3A7 CisgIHVuc2lnbmVkIGludCBuYml0czsKKworICBlbnVtIHBrX2VuY29kaW5nIGVuY29kaW5nOwor ICBpbnQgZmxhZ3M7CisKKyAgaW50IGhhc2hfYWxnbzsKKworICAvKiBmb3IgT0FFUCAqLworICB1 bnNpZ25lZCBjaGFyICpsYWJlbDsKKyAgZ3J1Yl9zaXplX3QgbGFiZWxsZW47CisKKyAgLyogZm9y IFBTUyAqLworICBncnViX3NpemVfdCBzYWx0bGVuOworCisgIGludCAoKiB2ZXJpZnlfY21wKSAo dm9pZCAqb3BhcXVlLCBnY3J5X21waV90IHRtcCk7CisgIHZvaWQgKnZlcmlmeV9hcmc7Cit9Owor CiAvKiBUeXBlIGZvciB0aGUgcGtfZ2VuZXJhdGUgZnVuY3Rpb24uICAqLwotdHlwZWRlZiBnY3J5 X2Vycl9jb2RlX3QgKCpnY3J5X3BrX2dlbmVyYXRlX3QpIChpbnQgYWxnbywKLQkJCQkJICAgICAg IHVuc2lnbmVkIGludCBuYml0cywKLQkJCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgdXNlX2UsCi0J CQkJCSAgICAgICBnY3J5X21waV90ICpza2V5LAotCQkJCQkgICAgICAgZ2NyeV9tcGlfdCAqKnJl dGZhY3RvcnMpOwordHlwZWRlZiBnY3J5X2Vycl9jb2RlX3QgKCpnY3J5X3BrX2dlbmVyYXRlX3Qp IChnY3J5X3NleHBfdCBnZW5wYXJtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ2NyeV9zZXhwX3QgKnJfc2tleSk7CiAKIC8qIFR5cGUgZm9yIHRoZSBw a19jaGVja19zZWNyZXRfa2V5IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgZ2NyeV9lcnJfY29kZV90 ICgqZ2NyeV9wa19jaGVja19zZWNyZXRfa2V5X3QpIChpbnQgYWxnbywKLQkJCQkJCSAgICAgICBn Y3J5X21waV90ICpza2V5KTsKK3R5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2NyeV9wa19jaGVj a19zZWNyZXRfa2V5X3QpIChnY3J5X3NleHBfdCBrZXlwYXJtcyk7CiAKIC8qIFR5cGUgZm9yIHRo ZSBwa19lbmNyeXB0IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2Ny eV9wa19lbmNyeXB0X3QpIChpbnQgYWxnbywKLQkJCQkJICAgICAgZ2NyeV9tcGlfdCAqcmVzYXJy LAotCQkJCQkgICAgICBnY3J5X21waV90IGRhdGEsCi0JCQkJCSAgICAgIGdjcnlfbXBpX3QgKnBr ZXksCi0JCQkJCSAgICAgIGludCBmbGFncyk7Cit0eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdj cnlfcGtfZW5jcnlwdF90KSAoZ2NyeV9zZXhwX3QgKnJfY2lwaCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY3J5X3NleHBfdCBzX2RhdGEsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NyeV9zZXhwX3Qga2V5cGFy bXMpOwogCiAvKiBUeXBlIGZvciB0aGUgcGtfZGVjcnlwdCBmdW5jdGlvbi4gICovCi10eXBlZGVm IGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfZGVjcnlwdF90KSAoaW50IGFsZ28sCi0JCQkJCSAg ICAgIGdjcnlfbXBpX3QgKnJlc3VsdCwKLQkJCQkJICAgICAgZ2NyeV9tcGlfdCAqZGF0YSwKLQkJ CQkJICAgICAgZ2NyeV9tcGlfdCAqc2tleSwKLQkJCQkJICAgICAgaW50IGZsYWdzKTsKK3R5cGVk ZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2NyeV9wa19kZWNyeXB0X3QpIChnY3J5X3NleHBfdCAqcl9w bGFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY3J5 X3NleHBfdCBzX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ2NyeV9zZXhwX3Qga2V5cGFybXMpOwogCiAvKiBUeXBlIGZvciB0aGUgcGtfc2lnbiBm dW5jdGlvbi4gICovCi10eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfc2lnbl90KSAo aW50IGFsZ28sCi0JCQkJCSAgIGdjcnlfbXBpX3QgKnJlc2FyciwKLQkJCQkJICAgZ2NyeV9tcGlf dCBkYXRhLAotCQkJCQkgICBnY3J5X21waV90ICpza2V5KTsKK3R5cGVkZWYgZ2NyeV9lcnJfY29k ZV90ICgqZ2NyeV9wa19zaWduX3QpIChnY3J5X3NleHBfdCAqcl9zaWcsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NyeV9zZXhwX3Qgc19kYXRhLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90IGtleXBhcm1z KTsKIAogLyogVHlwZSBmb3IgdGhlIHBrX3ZlcmlmeSBmdW5jdGlvbi4gICovCi10eXBlZGVmIGdj cnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfdmVyaWZ5X3QpIChpbnQgYWxnbywKLQkJCQkJICAgICBn Y3J5X21waV90IGhhc2gsCi0JCQkJCSAgICAgZ2NyeV9tcGlfdCAqZGF0YSwKLQkJCQkJICAgICBn Y3J5X21waV90ICpwa2V5LAotCQkJCQkgICAgIGludCAoKmNtcCkgKHZvaWQgKiwgZ2NyeV9tcGlf dCksCi0JCQkJCSAgICAgdm9pZCAqb3BhcXVldik7Cit0eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAo KmdjcnlfcGtfdmVyaWZ5X3QpIChnY3J5X3NleHBfdCBzX3NpZywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90IHNfZGF0YSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90IGtleXBhcm1z KTsKIAogLyogVHlwZSBmb3IgdGhlIHBrX2dldF9uYml0cyBmdW5jdGlvbi4gICovCi10eXBlZGVm IHVuc2lnbmVkICgqZ2NyeV9wa19nZXRfbmJpdHNfdCkgKGludCBhbGdvLCBnY3J5X21waV90ICpw a2V5KTsKK3R5cGVkZWYgdW5zaWduZWQgKCpnY3J5X3BrX2dldF9uYml0c190KSAoZ2NyeV9zZXhw X3Qga2V5cGFybXMpOworCisvKiBUaGUgdHlwZSB1c2VkIHRvIGNvbXB1dGUgdGhlIGtleWdyaXAu ICAqLwordHlwZWRlZiBncGdfZXJyX2NvZGVfdCAoKnBrX2NvbXBfa2V5Z3JpcF90KSAoZ2NyeV9t ZF9oZF90IG1kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z2NyeV9zZXhwX3Qga2V5cGFybSk7CisKKy8qIFRoZSB0eXBlIHVzZWQgdG8gcXVlcnkgYW4gRUND IGN1cnZlIG5hbWUuICAqLwordHlwZWRlZiBjb25zdCBjaGFyICooKnBrX2dldF9jdXJ2ZV90KShn Y3J5X3NleHBfdCBrZXlwYXJtcywgaW50IGl0ZXJhdG9yLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKnJfbmJpdHMpOworCisvKiBUaGUgdHlwZSB1 c2VkIHRvIHF1ZXJ5IEVDQyBjdXJ2ZSBwYXJhbWV0ZXJzIGJ5IG5hbWUuICAqLwordHlwZWRlZiBn Y3J5X3NleHBfdCAoKnBrX2dldF9jdXJ2ZV9wYXJhbV90KShjb25zdCBjaGFyICpuYW1lKTsKIAog LyogTW9kdWxlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlIGZvciBtZXNzYWdlIGRpZ2VzdHMuICAq LwogdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9wa19zcGVjCiB7CisgIGludCBhbGdvOworICBzdHJ1Y3Qg eworICAgIHVuc2lnbmVkIGludCBkaXNhYmxlZDoxOworICAgIHVuc2lnbmVkIGludCBmaXBzOjE7 CisgIH0gZmxhZ3M7CisgIGludCB1c2U7CiAgIGNvbnN0IGNoYXIgKm5hbWU7CiAgIGNvbnN0IGNo YXIgKiphbGlhc2VzOwogICBjb25zdCBjaGFyICplbGVtZW50c19wa2V5OwpAQCAtMjM1LDcgKzM2 OCw2IEBAIHR5cGVkZWYgc3RydWN0IGdjcnlfcGtfc3BlYwogICBjb25zdCBjaGFyICplbGVtZW50 c19lbmM7CiAgIGNvbnN0IGNoYXIgKmVsZW1lbnRzX3NpZzsKICAgY29uc3QgY2hhciAqZWxlbWVu dHNfZ3JpcDsKLSAgaW50IHVzZTsKICAgZ2NyeV9wa19nZW5lcmF0ZV90IGdlbmVyYXRlOwogICBn Y3J5X3BrX2NoZWNrX3NlY3JldF9rZXlfdCBjaGVja19zZWNyZXRfa2V5OwogICBnY3J5X3BrX2Vu Y3J5cHRfdCBlbmNyeXB0OwpAQCAtMjQzLDYgKzM3NSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBnY3J5 X3BrX3NwZWMKICAgZ2NyeV9wa19zaWduX3Qgc2lnbjsKICAgZ2NyeV9wa192ZXJpZnlfdCB2ZXJp Znk7CiAgIGdjcnlfcGtfZ2V0X25iaXRzX3QgZ2V0X25iaXRzOworICBwa19jb21wX2tleWdyaXBf dCBjb21wX2tleWdyaXA7CisgIHBrX2dldF9jdXJ2ZV90IGdldF9jdXJ2ZTsKKyAgcGtfZ2V0X2N1 cnZlX3BhcmFtX3QgZ2V0X2N1cnZlX3BhcmFtOworCiAjaWZkZWYgR1JVQl9VVElMCiAgIGNvbnN0 IGNoYXIgKm1vZG5hbWU7CiAjZW5kaWYKQEAgLTM0NSw2ICs0ODEsMTAgQEAgZ3J1Yl9jcnlwdG9f aGFzaCAoY29uc3QgZ2NyeV9tZF9zcGVjX3QgKmhhc2gsIHZvaWQgKm91dCwgY29uc3Qgdm9pZCAq aW4sCiAJCSAgZ3J1Yl9zaXplX3QgaW5sZW4pOwogY29uc3QgZ2NyeV9tZF9zcGVjX3QgKgogZ3J1 Yl9jcnlwdG9fbG9va3VwX21kX2J5X25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpOworY29uc3QgZ2Ny eV9tZF9zcGVjX3QgKgorZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X2FsZ28gKGludCBhbGdvKTsK K2NvbnN0IGdjcnlfbWRfc3BlY190ICoKK2dydWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9vaWQgKGNv bnN0IGNoYXIgKm9pZCk7CiAKIGdydWJfZXJyX3QKIGdydWJfY3J5cHRvX2djcnlfZXJyb3IgKGdj cnlfZXJyX2NvZGVfdCBpbik7CkBAIC00MDgsNyArNTQ4LDM1IEBAIHZvaWQgX2djcnlfYXNzZXJ0 X2ZhaWxlZCAoY29uc3QgY2hhciAqZXhwciwgY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsCiAK IHZvaWQgX2djcnlfYnVybl9zdGFjayAoaW50IGJ5dGVzKTsKIHZvaWQgX2djcnlfbG9nX2Vycm9y KCBjb25zdCBjaGFyICpmbXQsIC4uLiApICBfX2F0dHJpYnV0ZV9fICgoZm9ybWF0IChfX3ByaW50 Zl9fLCAxLCAyKSkpOwordm9pZCBfZ2NyeV9sb2dfaW5mbyAoY29uc3QgY2hhciAqZm10LCAuLi4p Owordm9pZCBfX2djcnlfYnVybl9zdGFjayAodW5zaWduZWQgaW50IHNpemUpOwordm9pZCBfX2dj cnlfYnVybl9zdGFja19kdW1teSAodm9pZCk7Cit2b2lkIF9nY3J5X2J1ZyggY29uc3QgY2hhciAq ZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIgKmZ1bmMgKTsKK3ZvaWQKK19nY3J5X2Zhc3Rfd2lw ZW1lbW9yeSAodm9pZCAqcHRyLCBncnViX3NpemVfdCBsZW4pOwordm9pZAorX2djcnlfZmFzdF93 aXBlbWVtb3J5MiAodm9pZCAqcHRyLCBpbnQgc2V0LCBncnViX3NpemVfdCBsZW4pOwordW5zaWdu ZWQgaW50CitfZ2NyeV9jdF9tZW1lcXVhbCAoY29uc3Qgdm9pZCAqYjEsIGNvbnN0IHZvaWQgKmIy LCBncnViX3NpemVfdCBsZW4pOwordW5zaWduZWQgaW50CitfZ2NyeV9jdF9ub3RfbWVtZXF1YWwg KGNvbnN0IHZvaWQgKmIxLCBjb25zdCB2b2lkICpiMiwgZ3J1Yl9zaXplX3QgbGVuKTsKKworCitz dGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBfZ2NyeV9nZXRfaHdfZmVhdHVyZXModm9pZCkKK3sK KyAgcmV0dXJuIDA7Cit9CiAKK3ZvaWQgKl9nY3J5X21hbGxvYyhncnViX3NpemVfdCBuKTsKK3Zv aWQgKl9nY3J5X21hbGxvY19zZWN1cmUoZ3J1Yl9zaXplX3Qgbik7Cit2b2lkICpfZ2NyeV94bWFs bG9jKGdydWJfc2l6ZV90IG4pOwordm9pZCAqX2djcnlfeG1hbGxvY19zZWN1cmUoZ3J1Yl9zaXpl X3Qgbik7Cit2b2lkIF9nY3J5X2ZyZWUgKHZvaWQgKnApOwordm9pZCAqX2djcnlfeHJlYWxsb2Mg KHZvaWQgKmEsIGdydWJfc2l6ZV90IG4pOworaW50IF9nY3J5X2lzX3NlY3VyZSAoY29uc3Qgdm9p ZCAqYSk7Cit2b2lkICpfZ2NyeV94Y2FsbG9jIChncnViX3NpemVfdCBuLCBncnViX3NpemVfdCBt KTsKK3ZvaWQgKl9nY3J5X3hjYWxsb2Nfc2VjdXJlIChncnViX3NpemVfdCBuLCBncnViX3NpemVf dCBtKTsKK3ZvaWQgX2djcnlfZGl2aWRlX2J5X3plcm8gKHZvaWQpOwogCiAjaWZkZWYgR1JVQl9V VElMCiB2b2lkIGdydWJfZ2NyeV9pbml0X2FsbCAodm9pZCk7CkBAIC00MTksNCArNTg3LDExIEBA IGdydWJfZ2V0X3JhbmRvbSAodm9pZCAqb3V0LCBncnViX3NpemVfdCBsZW4pOwogCiAjZW5kaWYK IAordHlwZWRlZiBzdHJ1Y3QgX2dwZ3J0X2I2NHN0YXRlICpncGdydF9iNjRzdGF0ZV90OworZ3Bn cnRfYjY0c3RhdGVfdCBncGdydF9iNjRkZWNfc3RhcnQgKGNvbnN0IGNoYXIgKnRpdGxlKTsKK2dw Z19lcnJvcl90ICAgICAgZ3BncnRfYjY0ZGVjX3Byb2MgKGdwZ3J0X2I2NHN0YXRlX3Qgc3RhdGUs CisJCQkJICAgIHZvaWQgKmJ1ZmZlciwgZ3J1Yl9zaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ3J1Yl9zaXplX3QgKnJfbmJ5dGVzKTsKK2dwZ19lcnJv cl90ICAgICAgZ3BncnRfYjY0ZGVjX2ZpbmlzaCAoZ3BncnRfYjY0c3RhdGVfdCBzdGF0ZSk7Citj b25zdCBjaGFyICpncGdfc3RyZXJyb3IgKGdwZ19lcnJvcl90IGVycik7CiAjZW5kaWYKZGlmZiAt LWdpdCBhL2luY2x1ZGUvZ3J1Yi9nY3J5cHQvZ3BnLWVycm9yLmggYi9pbmNsdWRlL2dydWIvZ2Ny eXB0L2dwZy1lcnJvci5oCmluZGV4IDFlNDI1MDI4NC4uNDQ0YmVmMjIxIDEwMDY0NAotLS0gYS9p bmNsdWRlL2dydWIvZ2NyeXB0L2dwZy1lcnJvci5oCisrKyBiL2luY2x1ZGUvZ3J1Yi9nY3J5cHQv Z3BnLWVycm9yLmgKQEAgLTI5LDQgKzI5LDEzIEBAIGdwZ19lcnJfc291cmNlIChncGdfZXJyb3Jf dCBlcnIgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpKQogZ2NyeV9lcnJfY29kZV90CiBncGdfZXJy b3JfZnJvbV9zeXNlcnJvciAodm9pZCk7CiAKK2djcnlfZXJyX2NvZGVfdAorZ3BnX2Vycl9jb2Rl X2Zyb21fc3lzZXJyb3IgKHZvaWQpOworCitnY3J5X2Vycl9jb2RlX3QKK2dwZ19lcnJvcl9mcm9t X2Vycm5vIChpbnQgZXJyKTsKKworZ2NyeV9lcnJfY29kZV90CitncGdfZXJyX2NvZGVfZnJvbV9l cnJubyAoaW50IGVycik7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdXRpbC9ncnViLWZzdGVzdC5j IGIvdXRpbC9ncnViLWZzdGVzdC5jCmluZGV4IDdmZjkwMzdiOC4uMjRiMjBhYjkxIDEwMDY0NAot LS0gYS91dGlsL2dydWItZnN0ZXN0LmMKKysrIGIvdXRpbC9ncnViLWZzdGVzdC5jCkBAIC0zNjUs NyArMzY1LDcgQEAgc3RhdGljIHZvaWQKIGNtZF9jcmMgKGNoYXIgKnBhdGhuYW1lKQogewogICBn cnViX3VpbnQ4X3QgKmNyYzMyX2NvbnRleHQgPSB4bWFsbG9jIChHUlVCX01EX0NSQzMyLT5jb250 ZXh0c2l6ZSk7Ci0gIEdSVUJfTURfQ1JDMzItPmluaXQoY3JjMzJfY29udGV4dCk7CisgIEdSVUJf TURfQ1JDMzItPmluaXQoY3JjMzJfY29udGV4dCwgMCk7CiAKICAgcmVhZF9maWxlIChwYXRobmFt ZSwgY3JjX2hvb2ssIGNyYzMyX2NvbnRleHQpOwogICBHUlVCX01EX0NSQzMyLT5maW5hbChjcmMz Ml9jb250ZXh0KTsKZGlmZiAtLWdpdCBhL3V0aWwvaW1wb3J0X2djcnkucHkgYi91dGlsL2ltcG9y dF9nY3J5LnB5CmluZGV4IDJiMzMyMmQzYS4uMTAyYzdkOGZmIDEwMDY0NAotLS0gYS91dGlsL2lt cG9ydF9nY3J5LnB5CisrKyBiL3V0aWwvaW1wb3J0X2djcnkucHkKQEAgLTIyLDYgKzIyLDIzIEBA IGltcG9ydCBvcwogaW1wb3J0IGRhdGV0aW1lCiBpbXBvcnQgY29kZWNzCiAKK2RlZiByZW1vdmVz dWZmaXgoYmFzZTogc3RyLCBzdWZmaXg6IHN0cikgLT4gc3RyOgorICAgICIiIiBCYWNrcG9ydCBv ZiBgcmVtb3Zlc3VmZml4YCBmcm9tIFBFUC02MTYgKFB5dGhvbiAzLjkrKSAiIiIKKworICAgIGlm IGJhc2UuZW5kc3dpdGgoc3VmZml4KToKKyAgICAgICAgcmV0dXJuIGJhc2VbOi1sZW4oc3VmZml4 KV0KKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gYmFzZQorCisKK2RlZiByZW1vdmVwcmVmaXgo YmFzZTogc3RyLCBwcmVmaXg6IHN0cikgLT4gc3RyOgorICAgICIiIiBCYWNrcG9ydCBvZiBgcmVt b3ZlcHJlZml4YCBmcm9tIFBFUC02MTYgKFB5dGhvbiAzLjkrKSAiIiIKKworICAgIGlmIGJhc2Uu c3RhcnRzd2l0aChwcmVmaXgpOgorICAgICAgICByZXR1cm4gYmFzZVtsZW4ocHJlZml4KTpdCisg ICAgZWxzZToKKyAgICAgICAgcmV0dXJuIGJhc2UKKwogaWYgbGVuIChzeXMuYXJndikgPCAzOgog ICAgIHByaW50ICgiVXNhZ2U6ICVzIFNPVVJDRSBERVNUSU5BVElPTiIgJSBzeXMuYXJndlswXSkK ICAgICBleGl0ICgwKQpAQCAtNjIsNiArNzksMTIgQEAgY29uZnV0aWwud3JpdGUgKCIgIGNmbGFn cyA9ICckKENGTEFHU19HQ1JZKSc7XG4iKTsKIGNvbmZ1dGlsLndyaXRlICgiICBjcHBmbGFncyA9 ICckKENQUEZMQUdTX0dDUlkpJztcbiIpOwogY29uZnV0aWwud3JpdGUgKCIgIGV4dHJhX2Rpc3Qg PSBncnViLWNvcmUvbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9DaGFuZ2VMb2c7XG4iKTsKIGNv bmZ1dGlsLndyaXRlICgiXG4iKTsKKworZm9yIHNyYyBpbiBbJ3NyYy9jb25zdC10aW1lLmMnXToK KyAgICBjb25mdXRpbC53cml0ZSAoIiAgY29tbW9uID0gZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQt Z3J1Yi8lcztcbiIgJSBzcmMpCisKK2NvbmZ1dGlsLndyaXRlICgiXG4iKTsKKwogY2hsb2cgPSAi IgogbW9kdWxlc19zeW1fbWQgPSBbXQogCkBAIC03OSwxMCArMTAyLDIzIEBAIG1kYmxvY2tzaXpl cyA9IHsiX2djcnlfZGlnZXN0X3NwZWNfY3JjMzIiIDogNjQsCiAgICAgICAgICAgICAgICAgIl9n Y3J5X2RpZ2VzdF9zcGVjX3NoYTI1NiIgOiA2NCwKICAgICAgICAgICAgICAgICAiX2djcnlfZGln ZXN0X3NwZWNfc2hhMzg0IiA6IDEyOCwKICAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3Nw ZWNfc2hhNTEyIiA6IDEyOCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hh NTEyXzI1NiI6IDEyOCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hhNTEy XzIyNCI6IDEyOCwKICAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfdGlnZXIiIDog NjQsCiAgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3RpZ2VyMSIgOiA2NCwKICAg ICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfdGlnZXIyIiA6IDY0LAotICAgICAgICAg ICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY193aGlybHBvb2wiIDogNjR9CisgICAgICAgICAgICAg ICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3doaXJscG9vbCIgOiA2NCwKKyAgICAgICAgICAgICAgICAi X2djcnlfZGlnZXN0X3NwZWNfc2hha2UxMjgiOiA2NCwKKyAgICAgICAgICAgICAgICAiX2djcnlf ZGlnZXN0X3NwZWNfc2hha2UyNTYiOiA2NCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0 X3NwZWNfc20zIjogNjQsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3N0cmli b2dfMjU2IjogNjQsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3N0cmlib2df NTEyIjogNjQsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTNfMjI0Ijog MTE1MiAvIDgsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTNfMjU2Ijog MTA4OCAvIDgsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTNfMzg0Ijog ODMyIC8gOCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hhM181MTIiOiA1 NzYgLyA4LAorICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19nb3N0MzQxMV85NCI6 IDMyLAorICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19nb3N0MzQxMV9jcCI6IDMy fQogCiBjcnlwdG9saXN0ID0gY29kZWNzLm9wZW4gKG9zLnBhdGguam9pbiAoY2lwaGVyX2Rpcl9v dXQsICJjcnlwdG8ubHN0IiksICJ3IiwgInV0Zi04IikKIApAQCAtOTksMjYgKzEzNSw0NyBAQCBj cnlwdG9saXN0LndyaXRlICgiQUVTLTI1NjogZ2NyeV9yaWpuZGFlbFxuIik7CiBjcnlwdG9saXN0 LndyaXRlICgiQURMRVIzMjogYWRsZXIzMlxuIik7CiBjcnlwdG9saXN0LndyaXRlICgiQ1JDNjQ6 IGNyYzY0XG4iKTsKIAorZXh0cmFfZmlsZXMgPSB7CisgICAgImdjcnlfY2FtZWxsaWEiOiBbImNh bWVsbGlhLmMiXSwgIyBNYWluIGZpbGUgaXMgY2FtZWxsaWEtZ2x1ZS5jCisgICAgImdjcnlfc2hh NTEyIiAgOiBbImhhc2gtY29tbW9uLmMiXSwKK30KK2V4dHJhX2ZpbGVzX2xpc3QgPSBbeCBmb3Ig eHMgaW4gZXh0cmFfZmlsZXMudmFsdWVzKCkgZm9yIHggaW4geHNdICsgWyJwdWJrZXktdXRpbC5j IiwgInJzYS1jb21tb24uYyIsICJkc2EtY29tbW9uLmMiLCAibWQuYyJdCisKIGZvciBjaXBoZXJf ZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgaW5maWxlID0gb3MucGF0aC5qb2luIChjaXBoZXJf ZGlyX2luLCBjaXBoZXJfZmlsZSkKICAgICBvdXRmaWxlID0gb3MucGF0aC5qb2luIChjaXBoZXJf ZGlyX291dCwgY2lwaGVyX2ZpbGUpCiAgICAgaWYgY2lwaGVyX2ZpbGUgPT0gIkNoYW5nZUxvZyIg b3IgY2lwaGVyX2ZpbGUgPT0gIkNoYW5nZUxvZy0yMDExIjoKICAgICAgICAgY29udGludWUKICAg ICBjaGxvZ25ldyA9ICIJKiAlcyIgJSBjaXBoZXJfZmlsZQotICAgIGlmIHJlLm1hdGNoICgiKE1h bmlmZXN0fE1ha2VmaWxlXC5hbXxhY1wuY3xjaXBoZXJcLmN8aGFzaC1jb21tb25cLmN8aG1hYy10 ZXN0c1wuY3xtZFwuY3xwdWJrZXlcLmMpJCIsIGNpcGhlcl9maWxlKSBvciBjaXBoZXJfZmlsZSA9 PSAia2RmLmMiIG9yIGNpcGhlcl9maWxlID09ICJlbGdhbWFsLmMiIG9yIGNpcGhlcl9maWxlID09 ICJwcmltZWdlbi5jIiBvciBjaXBoZXJfZmlsZSA9PSAiZWNjLmMiIG9yIGNpcGhlcl9maWxlID09 ICJ0ZXN0LWdldHJ1c2FnZS5jIjoKKyAgICAjIFVudXNlZCBnZW5lcmljIHN1cHBvcnQgZmlsZXMK KyAgICBpZiByZS5tYXRjaCAociIoTWFrZWZpbGVcLmFtfGNpcGhlclwuY3xjaXBoZXItLipcLmN8 bWFjLS4qXC5jfG1hY1wuY3xwdWJrZXlcLmMpJCIsIGNpcGhlcl9maWxlKToKKyAgICAgICAgY2hs b2cgPSAiJXMlczogUmVtb3ZlZFxuIiAlIChjaGxvZywgY2hsb2duZXcpCisgICAgICAgIGNvbnRp bnVlCisgICAgIyBUT0RPOiBTdXBwb3J0IEtERgorICAgIGlmIHJlLm1hdGNoIChyIihrZGZcLmN8 c2NyeXB0XC5jKSQiLCBjaXBoZXJfZmlsZSk6CisgICAgICAgIGNobG9nID0gIiVzJXM6IFJlbW92 ZWRcbiIgJSAoY2hsb2csIGNobG9nbmV3KQorICAgICAgICBjb250aW51ZQorICAgICMgVE9ETzog U3VwcG9ydCBjaGFjaGEyMCBhbmQgcG9seTEzMDUKKyAgICBpZiBjaXBoZXJfZmlsZSBpbiBbImNo YWNoYTIwLmMiLCAiZWNjLmMiLCAiZWxnYW1hbC5jIl06CisgICAgICAgIGNobG9nID0gIiVzJXM6 IFJlbW92ZWRcbiIgJSAoY2hsb2csIGNobG9nbmV3KQorICAgICAgICBjb250aW51ZSAgICAgICAg CisgICAgIyBUT0RPOiBVc2Ugb3B0aW1pemVkIHZlcnNpb25zCisgICAgaWYgcmUubWF0Y2ggKHIi KC4qXC5bc1NdfC4qLWludGVsLXNoYWV4dFwuY3wuKi1zc3NlMy1pMzg2XC5jfC4qLXBwY1wuY3wu Ki1zc3NlMy1hbWQ2NFwuY3wuKi1zMzkweFwuY3xyaWpuZGFlbC1hZXNuaVwuY3xjcmMtaW50ZWwt cGNsbXVsXC5jfC4qLWFybXY4LWNlXC5jfC4qLXAxMGxlXC5jfHJpam5kYWVsLXBhZGxvY2suY3xy aWpuZGFlbC1wcGM5bGUuY3xyaWpuZGFlbC12YWVzLmMpJCIsIGNpcGhlcl9maWxlKToKICAgICAg ICAgY2hsb2cgPSAiJXMlczogUmVtb3ZlZFxuIiAlIChjaGxvZywgY2hsb2duZXcpCiAgICAgICAg IGNvbnRpbnVlCiAgICAgIyBBdXRvZ2VuZXJhdGVkIGZpbGVzLiBOb3QgZXZlbiB3b3J0aCBtZW50 aW9ubmluZyBpbiBDaGFuZ2VMb2cKLSAgICBpZiByZS5tYXRjaCAoIk1ha2VmaWxlXC5pbiQiLCBj aXBoZXJfZmlsZSk6CisgICAgaWYgcmUubWF0Y2ggKHIiTWFrZWZpbGVcLmluJCIsIGNpcGhlcl9m aWxlKToKICAgICAgICAgY29udGludWUKICAgICBuY2ggPSBGYWxzZQotICAgIGlmIHJlLm1hdGNo ICgiLipcLltjaF0kIiwgY2lwaGVyX2ZpbGUpOgotICAgICAgICBpc2MgPSByZS5tYXRjaCAoIi4q XC5jJCIsIGNpcGhlcl9maWxlKQorICAgIGlmIHJlLm1hdGNoIChyIi4qXC5bY2hdJCIsIGNpcGhl cl9maWxlKToKKyAgICAgICAgaXNjID0gcmUubWF0Y2ggKHIiLipcLmMkIiwgY2lwaGVyX2ZpbGUp CiAgICAgICAgIGYgPSBjb2RlY3Mub3BlbiAoaW5maWxlLCAiciIsICJ1dGYtOCIpCiAgICAgICAg IGZ3ID0gY29kZWNzLm9wZW4gKG91dGZpbGUsICJ3IiwgInV0Zi04IikKICAgICAgICAgZncud3Jp dGUgKCIvKiBUaGlzIGZpbGUgd2FzIGF1dG9tYXRpY2FsbHkgaW1wb3J0ZWQgd2l0aCBcbiIpCiAg ICAgICAgIGZ3LndyaXRlICgiICAgaW1wb3J0X2djcnkucHkuIFBsZWFzZSBkb24ndCBtb2RpZnkg aXQgKi9cbiIpCi0gICAgICAgIGZ3LndyaXRlICgiI2luY2x1ZGUgPGdydWIvZGwuaD5cbiIpCisg ICAgICAgIGFkZF9saWNlbnNlID0gY2lwaGVyX2ZpbGUgPT0gInB1YmtleS11dGlsLmMiIG9yIChp c2MgYW5kIG5vdCBjaXBoZXJfZmlsZSBpbiBleHRyYV9maWxlc19saXN0KQorICAgICAgICBpZiBh ZGRfbGljZW5zZToKKyAgICAgICAgICAgIGZ3LndyaXRlICgiI2luY2x1ZGUgPGdydWIvZGwuaD5c biIpCiAgICAgICAgIGlmIGNpcGhlcl9maWxlID09ICJjYW1lbGxpYS5oIjoKICAgICAgICAgICAg IGZ3LndyaXRlICgiI2luY2x1ZGUgPGdydWIvbWlzYy5oPlxuIikKICAgICAgICAgICAgIGZ3Lndy aXRlICgidm9pZCBjYW1lbGxpYV9zZXR1cDEyOChjb25zdCB1bnNpZ25lZCBjaGFyICprZXksIGdy dWJfdWludDMyX3QgKnN1YmtleSk7XG4iKQpAQCAtMTMyLDcgKzE4OSw3IEBAIGZvciBjaXBoZXJf ZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICBmdy53cml0ZSAoInZvaWQgY2FtZWxs aWFfZGVjcnlwdDI1Nihjb25zdCBncnViX3VpbnQzMl90ICpzdWJrZXksIGdydWJfdWludDMyX3Qg KmlvKTtcbiIpICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgZncud3JpdGUgKCIj ZGVmaW5lIG1lbWNweSBncnViX21lbWNweVxuIikKICAgICAgICAgIyBXaG9sZSBsaWJnY3J5cHQg aXMgZGlzdHJpYnV0ZWQgdW5kZXIgR1BMdjMrIG9yIGNvbXBhdGlibGUKLSAgICAgICAgaWYgaXNj OgorICAgICAgICBpZiBhZGRfbGljZW5zZToKICAgICAgICAgICAgIGZ3LndyaXRlICgiR1JVQl9N T0RfTElDRU5TRSAoXCJHUEx2MytcIik7XG4iKQogCiAgICAgICAgIGNpcGhlcm5hbWVzID0gW10K QEAgLTE0OCwxNCArMjA1LDEwIEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAg ICAgICAgIGlzY2lwaGVyID0gRmFsc2UKICAgICAgICAgaXNjcnlwdG9zdGFydCA9IEZhbHNlCiAg ICAgICAgIGlzY29tbWEgPSBGYWxzZQotICAgICAgICBpc2dsdWUgPSBGYWxzZQogICAgICAgICBz a2lwX3N0YXRlbWVudCA9IEZhbHNlCisgICAgICAgIHNraXBfY29tbWEgPSBGYWxzZQogICAgICAg ICBpZiBpc2M6Ci0gICAgICAgICAgICBtb2RuYW1lID0gY2lwaGVyX2ZpbGUgWzA6bGVuKGNpcGhl cl9maWxlKSAtIDJdCi0gICAgICAgICAgICBpZiByZS5tYXRjaCAoIi4qLWdsdWUkIiwgbW9kbmFt ZSk6Ci0gICAgICAgICAgICAgICAgbW9kbmFtZSA9IG1vZG5hbWUucmVwbGFjZSAoIi1nbHVlIiwg IiIpCi0gICAgICAgICAgICAgICAgaXNnbHVlID0gVHJ1ZQotICAgICAgICAgICAgbW9kbmFtZSA9 ICJnY3J5XyVzIiAlIG1vZG5hbWUKKyAgICAgICAgICAgIG1vZG5hbWUgPSAiZ2NyeV8lcyIgJSBy ZW1vdmVzdWZmaXgocmVtb3Zlc3VmZml4KGNpcGhlcl9maWxlLCAiLmMiKSwgIi1nbHVlIikucmVw bGFjZSgiLSIsICJfIikKICAgICAgICAgZm9yIGxpbmUgaW4gZjoKICAgICAgICAgICAgIGxpbmUg PSBsaW5lCiAgICAgICAgICAgICBpZiBza2lwX3N0YXRlbWVudDoKQEAgLTE3MSw3ICsyMjQsNyBA QCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAgICAgICAgICBz a2lwMiA9IEZhbHNlCiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGlmIGlz Y3J5cHRvc3RhcnQ6Ci0gICAgICAgICAgICAgICAgcyA9IHJlLnNlYXJjaCAoIiAqXCIoW0EtWjAt OV9hLXpdKilcIiIsIGxpbmUpCisgICAgICAgICAgICAgICAgcyA9IHJlLnNlYXJjaCAoIiAqXCIo W0EtWjAtOV9hLXotXSopXCIiLCBsaW5lKQogICAgICAgICAgICAgICAgIGlmIG5vdCBzIGlzIE5v bmU6CiAgICAgICAgICAgICAgICAgICAgIHNnID0gcy5ncm91cHMoKVswXQogICAgICAgICAgICAg ICAgICAgICBjcnlwdG9saXN0LndyaXRlICgoIiVzOiAlc1xuIikgJSAoc2csIG1vZG5hbWUpKQpA QCAtMjAxLDcgKzI1NCw3IEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAg ICAgICAgICAgICAgICAgIGlzcGsgPSBGYWxzZQogICAgICAgICAgICAgICAgIGlzY29tbWEgPSBu b3QgcmUuc2VhcmNoICgiLCQiLCBsaW5lKSBpcyBOb25lCiAgICAgICAgICAgICAjIFVzZWQgb25s eSBmb3Igc2VsZnRlc3RzLgotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgiKHN0YXRpYyBieXRl fHN0YXRpYyB1bnNpZ25lZCBjaGFyKSAod2Vha19rZXlzX2Noa3N1bSlcW1swLTldKlxdID0iLCBs aW5lKQorICAgICAgICAgICAgbSA9IHJlLm1hdGNoIChyIihzdGF0aWMgYnl0ZXxzdGF0aWMgdW5z aWduZWQgY2hhcnxzdGF0aWMgY29uc3QgZ2NyeV9tZF9zcGVjX3QgXCogY29uc3QpICh3ZWFrX2tl eXNfY2hrc3VtfGRpZ2VzdF9saXN0KVxbWzAtOV0qXF0gPSIsIGxpbmUpCiAgICAgICAgICAgICBp ZiBub3QgbSBpcyBOb25lOgogICAgICAgICAgICAgICAgIHNraXAgPSAxCiAgICAgICAgICAgICAg ICAgZm5hbWUgPSBtLmdyb3VwcyAoKVsxXQpAQCAtMjEyLDExICsyNjUsMTQgQEAgZm9yIGNpcGhl cl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAgICAgICAgICAgICAgY2hsb2duZXcgPSAi JXMgJXMiICUgKGNobG9nbmV3LCBjaG1zZykKICAgICAgICAgICAgICAgICAgICAgbmNoID0gVHJ1 ZQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiAobm90IGhvbGQpIGFu ZCAocmUubWF0Y2ggKHIiWyBcdF0qKHJ1bl9zZWxmdGVzdHN8ZG9fdHJpcGxlZGVzX3NldF9leHRy YV9pbmZvKSw/IiwgbGluZSkgaXMgbm90IE5vbmUpOgorICAgICAgICAgICAgICAgIGlzY29tbWEg PSBUcnVlCisgICAgICAgICAgICAgICAgbGluZSA9ICIiCiAgICAgICAgICAgICBpZiBob2xkOgog ICAgICAgICAgICAgICAgIGhvbGQgPSBGYWxzZQogICAgICAgICAgICAgICAgICMgV2UncmUgb3B0 aW1pc2luZyBmb3Igc2l6ZSBhbmQgZXhjbHVkZSBhbnl0aGluZyBuZWVkaW5nIGdvb2QKICAgICAg ICAgICAgICAgICAjIHJhbmRvbW5lc3MuCi0gICAgICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNo ICgiKHJ1bl9zZWxmdGVzdHN8c2VsZnRlc3R8X2djcnlfYWVzX2MuLl8uLmN8X2djcnlfW2EtejAt OV0qX2hhc2hfYnVmZmVyfHRyaXBsZWRlc19zZXQya2V5c3xkb190cmlwbGVkZXNfc2V0X2V4dHJh X2luZm98X2djcnlfcm1kMTYwX21peGJsb2NrfHNlcnBlbnRfdGVzdHxkc2FfZ2VuZXJhdGVfZXh0 fHRlc3Rfa2V5c3xnZW5fa3xzaWdufGdlbl94OTMxX3Bhcm1feHB8Z2VuZXJhdGVfeDkzMXxnZW5l cmF0ZV9rZXl8ZHNhX2dlbmVyYXRlfGRzYV9zaWdufGVjY19zaWdufGdlbmVyYXRlfGdlbmVyYXRl X2ZpcHMxODZ8X2djcnlfcmVnaXN0ZXJfcGtfZHNhX3Byb2dyZXNzfF9nY3J5X3JlZ2lzdGVyX3Br X2VjY19wcm9ncmVzc3xwcm9ncmVzc3xzY2FudmFsfGVjMm9zfGVjY19nZW5lcmF0ZV9leHR8ZWNj X2dlbmVyYXRlfGNvbXB1dGVfa2V5Z3JpcHxlY2NfZ2V0X3BhcmFtfF9nY3J5X3JlZ2lzdGVyX3Br X2RzYV9wcm9ncmVzc3xnZW5feDkzMV9wYXJtX3hwfGdlbl94OTMxX3Bhcm1feGl8cnNhX2RlY3J5 cHR8cnNhX3NpZ258cnNhX2dlbmVyYXRlX2V4dHxyc2FfZ2VuZXJhdGV8c2VjcmV0fGNoZWNrX2V4 cG9uZW50fHJzYV9ibGluZHxyc2FfdW5ibGluZHxleHRyYWN0X2FfZnJvbV9zZXhwfGN1cnZlX2Zy ZWV8Y3VydmVfY29weXxwb2ludF9zZXQpIiwgbGluZSkgaXMgTm9uZToKKyAgICAgICAgICAgICAg ICBpZiByZS5tYXRjaCAoIihfZ2NyeV9oYXNoX3NlbGZ0ZXN0X2NoZWNrX29uZXxidWxrX3NlbGZ0 ZXN0X3NldGtleXxydW5fc2VsZnRlc3RzfGRvX3RyaXBsZWRlc19zZXRfZXh0cmFfaW5mb3xzZWxm dGVzdHxzbTRfc2VsZnRlc3R8X2djcnlfW2EtejAtOV9dKl9oYXNoX2J1ZmZlcnN8X2djcnlfc2hh MV9oYXNoX2J1ZmZlcnx0cmlwbGVkZXNfc2V0MmtleXN8X2djcnlfcm1kMTYwX21peGJsb2NrfHNl cnBlbnRfdGVzdHxkc2FfZ2VuZXJhdGVfZXh0fHRlc3Rfa2V5c3xnZW5fa3xzaWdufGdlbl94OTMx X3Bhcm1feHB8Z2VuZXJhdGVfeDkzMXxnZW5lcmF0ZV9rZXl8ZHNhX2dlbmVyYXRlfGRzYV9zaWdu fGVjY19zaWdufGdlbmVyYXRlfGdlbmVyYXRlX2ZpcHMxODZ8X2djcnlfcmVnaXN0ZXJfcGtfZHNh X3Byb2dyZXNzfF9nY3J5X3JlZ2lzdGVyX3BrX2VjY19wcm9ncmVzc3xwcm9ncmVzc3xzY2FudmFs fGVjMm9zfGVjY19nZW5lcmF0ZV9leHR8ZWNjX2dlbmVyYXRlfGVjY19nZXRfcGFyYW18X2djcnlf cmVnaXN0ZXJfcGtfZHNhX3Byb2dyZXNzfGdlbl94OTMxX3Bhcm1feHB8Z2VuX3g5MzFfcGFybV94 aXxyc2FfZGVjcnlwdHxyc2Ffc2lnbnxyc2FfZ2VuZXJhdGVfZXh0fHJzYV9nZW5lcmF0ZXxzZWNy ZXR8Y2hlY2tfZXhwb25lbnR8cnNhX2JsaW5kfHJzYV91bmJsaW5kfGV4dHJhY3RfYV9mcm9tX3Nl eHB8Y3VydmVfZnJlZXxjdXJ2ZV9jb3B5fHBvaW50X3NldHxfZ2NyeV9kc2FfZ2VuX3JmYzY5Nzlf a3xiaXRzMm9jdGV0c3xpbnQyb2N0ZXRzfG1kX2V4dHJhY3R8X2djcnlfbWRfZGVidWd8X2djcnlf bWRfc2VsZnRlc3R8X2djcnlfbWRfaXNfZW5hYmxlZHxfZ2NyeV9tZF9pc19zZWN1cmV8X2djcnlf bWRfaW5pdHxfZ2NyeV9tZF9pbmZvfF9nY3J5X21kX2dldF9hbGdvfG1kX2dldF9hbGdvfF9nY3J5 X21kX2dldHxfZ2NyeV9tZF9leHRyYWN0fF9nY3J5X21kX3NldGtleXxtZF9zZXRrZXl8cHJlcGFy ZV9tYWNwYWRzfF9nY3J5X21kX2FsZ29fbmFtZXxzZWFyY2hfb2lkfHNwZWNfZnJvbV9vaWR8c3Bl Y19mcm9tX25hbWV8c3BlY19mcm9tX2FsZ298bWFwX2FsZ28pIiwgbGluZSkgaXMgbm90IE5vbmU6 CiAKICAgICAgICAgICAgICAgICAgICAgc2tpcCA9IDEKICAgICAgICAgICAgICAgICAgICAgaWYg bm90IHJlLm1hdGNoICgic2VsZnRlc3QiLCBsaW5lKSBpcyBOb25lIGFuZCBjaXBoZXJfZmlsZSA9 PSAiaWRlYS5jIjoKQEAgLTIyNCw2ICsyODAsMTEgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhl cl9maWxlczoKIAogICAgICAgICAgICAgICAgICAgICBpZiBub3QgcmUubWF0Y2ggKCJzZXJwZW50 X3Rlc3QiLCBsaW5lKSBpcyBOb25lOgogICAgICAgICAgICAgICAgICAgICAgICAgZncud3JpdGUg KCJzdGF0aWMgY29uc3QgY2hhciAqc2VycGVudF90ZXN0ICh2b2lkKSB7IHJldHVybiAwOyB9XG4i KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgic200X3NlbGZ0ZXN0Iiwg bGluZSkgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ3LndyaXRlICgic3RhdGlj IGNvbnN0IGNoYXIgKnNtNF9zZWxmdGVzdCAodm9pZCkgeyByZXR1cm4gMDsgfVxuIik7CisgICAg ICAgICAgICAgICAgICAgIGhhc2hfYnVmID0gcmUubWF0Y2ggKCIoX2djcnlfW2EtejAtOV9dKl9o YXNoX2J1ZmZlcnMpIiwgbGluZSkKKyAgICAgICAgICAgICAgICAgICAgaWYgaGFzaF9idWYgaXMg bm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiNkZWZpbmUgJXMg MCIgJSAoaGFzaF9idWYuZ3JvdXAoMCkpKQogICAgICAgICAgICAgICAgICAgICBpZiBub3QgcmUu bWF0Y2ggKCJkc2FfZ2VuZXJhdGUiLCBsaW5lKSBpcyBOb25lOgogICAgICAgICAgICAgICAgICAg ICAgICAgZncud3JpdGUgKCIjZGVmaW5lIGRzYV9nZW5lcmF0ZSAwIik7CiAgICAgICAgICAgICAg ICAgICAgIGlmIG5vdCByZS5tYXRjaCAoImVjY19nZW5lcmF0ZSIsIGxpbmUpIGlzIE5vbmU6CkBA IC0yMzgsNiArMjk5LDEwIEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAg ICAgICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiNkZWZpbmUgZHNhX3NpZ24gMCIpOwogICAg ICAgICAgICAgICAgICAgICBpZiBub3QgcmUubWF0Y2ggKCJlY2Nfc2lnbiIsIGxpbmUpIGlzIE5v bmU6CiAgICAgICAgICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiNkZWZpbmUgZWNjX3NpZ24g MCIpOworICAgICAgICAgICAgICAgICAgICBpZiBub3QgcmUubWF0Y2ggKCJzZWFyY2hfb2lkIiwg bGluZSkgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ3LndyaXRlICgiI2RlZmlu ZSBzZWFyY2hfb2lkKGEsYikgZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X29pZChhKSIpCisgICAg ICAgICAgICAgICAgICAgIGlmIG5vdCByZS5tYXRjaCAoInNwZWNfZnJvbV9uYW1lIiwgbGluZSkg aXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ3LndyaXRlICgiI2RlZmluZSBzcGVj X2Zyb21fbmFtZSBncnViX2NyeXB0b19sb29rdXBfbWRfYnlfbmFtZSIpCiAgICAgICAgICAgICAg ICAgICAgIGZuYW1lID0gcmUubWF0Y2ggKCJbYS16QS1aMC05X10qIiwgbGluZSkuZ3JvdXAgKCkK ICAgICAgICAgICAgICAgICAgICAgY2htc2cgPSAiKCVzKTogUmVtb3ZlZC4iICUgZm5hbWUKICAg ICAgICAgICAgICAgICAgICAgaWYgbmNoOgpAQCAtMjU3LDQ1ICszMjIsNDYgQEAgZm9yIGNpcGhl cl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAgICAgICAgICAgICAgY2hsb2duZXcgPSAi JXM6ICVzIiAlIChjaGxvZ25ldywgY2htc2cpCiAgICAgICAgICAgICAgICAgICAgIG5jaCA9IFRy dWUKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgi Z2NyeV9jaXBoZXJfc3BlY190IiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoIihj b25zdCApP2djcnlfY2lwaGVyX3NwZWNfdCIsIGxpbmUpCiAgICAgICAgICAgICBpZiBpc2MgYW5k IG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNtZCkKICAgICAg ICAgICAgICAgICBhc3NlcnQgKG5vdCBpc3BrKQogICAgICAgICAgICAgICAgIGFzc2VydCAobm90 IGlzY2lwaGVyKQogICAgICAgICAgICAgICAgIGFzc2VydCAobm90IGlzY3J5cHRvc3RhcnQpCi0g ICAgICAgICAgICAgICAgY2lwaGVybmFtZSA9IGxpbmUgW2xlbiAoImdjcnlfY2lwaGVyX3NwZWNf dCIpOl0uc3RyaXAgKCkKKyAgICAgICAgICAgICAgICBjaXBoZXJuYW1lID0gcmVtb3ZlcHJlZml4 KHJlbW92ZXByZWZpeChsaW5lLCAiY29uc3QgIiksICJnY3J5X2NpcGhlcl9zcGVjX3QiKS5zdHJp cCAoKQogICAgICAgICAgICAgICAgIGNpcGhlcm5hbWUgPSByZS5tYXRjaCgiW2EtekEtWjAtOV9d KiIsY2lwaGVybmFtZSkuZ3JvdXAgKCkKICAgICAgICAgICAgICAgICBjaXBoZXJuYW1lcy5hcHBl bmQgKGNpcGhlcm5hbWUpCiAgICAgICAgICAgICAgICAgaXNjaXBoZXIgPSBUcnVlCiAgICAgICAg ICAgICAgICAgaXNjcnlwdG9zdGFydCA9IFRydWUKIAotICAgICAgICAgICAgbSA9IHJlLm1hdGNo ICgiZ2NyeV9wa19zcGVjX3QiLCBsaW5lKQorICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgiKGNv bnN0ICk/Z2NyeV9wa19zcGVjX3QiLCBsaW5lKQogICAgICAgICAgICAgaWYgaXNjIGFuZCBub3Qg bSBpcyBOb25lOgogICAgICAgICAgICAgICAgIGFzc2VydCAobm90IGlzbWQpCiAgICAgICAgICAg ICAgICAgYXNzZXJ0IChub3QgaXNwaykKICAgICAgICAgICAgICAgICBhc3NlcnQgKG5vdCBpc2Np cGhlcikKICAgICAgICAgICAgICAgICBhc3NlcnQgKG5vdCBpc2NyeXB0b3N0YXJ0KQotICAgICAg ICAgICAgICAgIHBrbmFtZSA9IGxpbmUgW2xlbiAoImdjcnlfcGtfc3BlY190Iik6XS5zdHJpcCAo KQorICAgICAgICAgICAgICAgIHBrbmFtZSA9IHJlbW92ZXByZWZpeChyZW1vdmVwcmVmaXgobGlu ZSwgImNvbnN0ICIpLCAiZ2NyeV9wa19zcGVjX3QiKS5zdHJpcCAoKQogICAgICAgICAgICAgICAg IHBrbmFtZSA9IHJlLm1hdGNoKCJbYS16QS1aMC05X10qIixwa25hbWUpLmdyb3VwICgpCiAgICAg ICAgICAgICAgICAgcGtuYW1lcy5hcHBlbmQgKHBrbmFtZSkKICAgICAgICAgICAgICAgICBpc3Br ID0gVHJ1ZQogICAgICAgICAgICAgICAgIGlzY3J5cHRvc3RhcnQgPSBUcnVlCiAKLSAgICAgICAg ICAgIG0gPSByZS5tYXRjaCAoImdjcnlfbWRfc3BlY190IiwgbGluZSkKKyAgICAgICAgICAgIG0g PSByZS5tYXRjaCAoIihjb25zdCApP2djcnlfbWRfc3BlY190IiwgbGluZSkKICAgICAgICAgICAg IGlmIGlzYyBhbmQgbm90IG0gaXMgTm9uZToKICAgICAgICAgICAgICAgICBhc3NlcnQgKG5vdCBp c21kKQogICAgICAgICAgICAgICAgIGFzc2VydCAobm90IGlzcGspCiAgICAgICAgICAgICAgICAg YXNzZXJ0IChub3QgaXNjaXBoZXIpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNjcnlw dG9zdGFydCkKLSAgICAgICAgICAgICAgICBtZG5hbWUgPSBsaW5lIFtsZW4gKCJnY3J5X21kX3Nw ZWNfdCIpOl0uc3RyaXAgKCkKKyAgICAgICAgICAgICAgICBsaW5lID0gcmVtb3ZlcHJlZml4KGxp bmUsICJjb25zdCAiKQorICAgICAgICAgICAgICAgIG1kbmFtZSA9IHJlbW92ZXByZWZpeChyZW1v dmVwcmVmaXgobGluZSwgImNvbnN0ICIpLCAiZ2NyeV9tZF9zcGVjX3QiKS5zdHJpcCAoKQogICAg ICAgICAgICAgICAgIG1kbmFtZSA9IHJlLm1hdGNoKCJbYS16QS1aMC05X10qIixtZG5hbWUpLmdy b3VwICgpCiAgICAgICAgICAgICAgICAgbWRuYW1lcy5hcHBlbmQgKG1kbmFtZSkKICAgICAgICAg ICAgICAgICBpc21kID0gVHJ1ZQogICAgICAgICAgICAgICAgIG1kYXJnID0gMAogICAgICAgICAg ICAgICAgIGlzY3J5cHRvc3RhcnQgPSBUcnVlCi0gICAgICAgICAgICBtID0gcmUubWF0Y2ggKCJz dGF0aWMgY29uc3QgY2hhciBcKnNlbGZ0ZXN0Lio7JCIsIGxpbmUpCisgICAgICAgICAgICBtID0g cmUubWF0Y2ggKHIic3RhdGljIGNvbnN0IGNoYXIgXCpzZWxmdGVzdC4qOyQiLCBsaW5lKQogICAg ICAgICAgICAgaWYgbm90IG0gaXMgTm9uZToKLSAgICAgICAgICAgICAgICBmbmFtZSA9IGxpbmVb bGVuICgic3RhdGljIGNvbnN0IGNoYXIgXCoiKTpdCisgICAgICAgICAgICAgICAgZm5hbWUgPSBs aW5lW2xlbiAociJzdGF0aWMgY29uc3QgY2hhciBcKiIpOl0KICAgICAgICAgICAgICAgICBmbmFt ZSA9IHJlLm1hdGNoICgiW2EtekEtWjAtOV9dKiIsIGZuYW1lKS5ncm91cCAoKQogICAgICAgICAg ICAgICAgIGNobXNnID0gIiglcyk6IFJlbW92ZWQgZGVjbGFyYXRpb24uIiAlIGZuYW1lCiAgICAg ICAgICAgICAgICAgaWYgbmNoOgpAQCAtMzMxLDcgKzM5Nyw3IEBAIGZvciBjaXBoZXJfZmlsZSBp biBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICAgICAgICAgIGNobG9nbmV3ID0gIiVzICVzIiAl IChjaGxvZ25ldywgY2htc2cpCiAgICAgICAgICAgICAgICAgICAgIG5jaCA9IFRydWUKICAgICAg ICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgic3RhdGljIHZv aWQgXChcKnByb2dyZXNzX2NiXCkuKjskIiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRj aCAociJzdGF0aWMgdm9pZCBcKFwqcHJvZ3Jlc3NfY2JcKS4qOyQiLCBsaW5lKQogICAgICAgICAg ICAgaWYgbm90IG0gaXMgTm9uZToKICAgICAgICAgICAgICAgICBjaG1zZyA9ICIocHJvZ3Jlc3Nf Y2IpOiBSZW1vdmVkIGRlY2xhcmF0aW9uLiIKICAgICAgICAgICAgICAgICBpZiBuY2g6CkBAIC0z NDAsNyArNDA2LDcgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAg ICAgICAgICAgICAgY2hsb2duZXcgPSAiJXMgJXMiICUgKGNobG9nbmV3LCBjaG1zZykKICAgICAg ICAgICAgICAgICAgICAgbmNoID0gVHJ1ZQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAg ICAgICAgICBtID0gcmUubWF0Y2ggKCJzdGF0aWMgdm9pZCBcKnByb2dyZXNzX2NiX2RhdGEuKjsk IiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaCAociJzdGF0aWMgdm9pZCBcKnByb2dy ZXNzX2NiX2RhdGEuKjskIiwgbGluZSkKICAgICAgICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAg ICAgICAgICAgICAgICAgY2htc2cgPSAiKHByb2dyZXNzX2NiKTogUmVtb3ZlZCBkZWNsYXJhdGlv bi4iCiAgICAgICAgICAgICAgICAgaWYgbmNoOgpAQCAtMzUwLDIyICs0MTYsMjIgQEAgZm9yIGNp cGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAgICAgICAgICAgICAgbmNoID0gVHJ1 ZQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAKLSAgICAgICAgICAgIG0gPSByZS5tYXRjaCAo IihzdGF0aWMgY29uc3QgY2hhciggfClcKnxzdGF0aWMgZ3BnX2Vycl9jb2RlX3R8dm9pZHxzdGF0 aWMgaW50fHN0YXRpYyBnY3J5X2Vycl9jb2RlX3R8c3RhdGljIGdjcnlfbXBpX3R8c3RhdGljIHZv aWR8dm9pZHxzdGF0aWMgZWxsaXB0aWNfY3VydmVfdCkgKiQiLCBsaW5lKQorICAgICAgICAgICAg bSA9IHJlLm1hdGNoIChyIigoc3RhdGljICk/Y29uc3QgY2hhciggfClcKnxzdGF0aWMgY29uc3Qg Z2NyeV9tZF9zcGVjX3QgXCp8KHN0YXRpYyApP2dwZ19lcnJfY29kZV90fGdwZ19lcnJvcl90fHZv aWR8KHN0YXRpYyApP2ludHwoc3RhdGljICk/Z2NyeV9lcnJfY29kZV90fHN0YXRpYyBnY3J5X21w aV90fHN0YXRpYyB2b2lkfHZvaWR8c3RhdGljIGVsbGlwdGljX2N1cnZlX3QpICokIiwgbGluZSkK ICAgICAgICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgaG9sZCA9IFRy dWUKICAgICAgICAgICAgICAgICBob2xkbGluZSA9IGxpbmUKICAgICAgICAgICAgICAgICBjb250 aW51ZQotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgic3RhdGljIGludCB0cmlwbGVkZXNfc2V0 MmtleXMgXCguKlwpOyIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0Y2ggKHIic3RhdGlj IGludCB0cmlwbGVkZXNfc2V0MmtleXMgXCguKlwpOyIsIGxpbmUpCiAgICAgICAgICAgICBpZiBu b3QgbSBpcyBOb25lOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBtID0g cmUubWF0Y2ggKCJzdGF0aWMgaW50IHRyaXBsZWRlc19zZXQza2V5cyBcKC4qXCk7IiwgbGluZSkK KyAgICAgICAgICAgIG0gPSByZS5tYXRjaCAociJzdGF0aWMgaW50IHRyaXBsZWRlc19zZXQza2V5 cyBcKC4qXCk7IiwgbGluZSkKICAgICAgICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAgICAgICAg ICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoInN0YXRpYyBpbnQg dHJpcGxlZGVzX3NldDJrZXlzIFwoIiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaCAo ciJzdGF0aWMgaW50IHRyaXBsZWRlc19zZXQya2V5cyBcKCIsIGxpbmUpCiAgICAgICAgICAgICBp ZiBub3QgbSBpcyBOb25lOgogICAgICAgICAgICAgICAgIHNraXBfc3RhdGVtZW50ID0gVHJ1ZQog ICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBtID0gcmUubWF0Y2ggKCJzdGF0 aWMgaW50IHRyaXBsZWRlc19zZXQza2V5cyBcKCIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUu bWF0Y2ggKHIic3RhdGljIGludCB0cmlwbGVkZXNfc2V0M2tleXMgXCgiLCBsaW5lKQogICAgICAg ICAgICAgaWYgbm90IG0gaXMgTm9uZToKICAgICAgICAgICAgICAgICBza2lwX3N0YXRlbWVudCA9 IFRydWUKICAgICAgICAgICAgICAgICBjb250aW51ZQpAQCAtNDIxLDExICs0ODcsOSBAQCBmb3Ig Y2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAg ICAgICAgICAgICBmdy53cml0ZSAobGluZSkKICAgICAgICAgaWYgbGVuIChjaXBoZXJuYW1lcykg PiAwIG9yIGxlbiAobWRuYW1lcykgPiAwIG9yIGxlbiAocGtuYW1lcykgPiAwOgotICAgICAgICAg ICAgaWYgaXNnbHVlOgotICAgICAgICAgICAgICAgIG1vZGZpbGVzID0gImxpYi9saWJnY3J5cHQt Z3J1Yi9jaXBoZXIvJXMgbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci8lcyIgXAotICAgICAgICAg ICAgICAgICAgICAlIChjaXBoZXJfZmlsZSwgY2lwaGVyX2ZpbGUucmVwbGFjZSAoIi1nbHVlLmMi LCAiLmMiKSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbW9kZmlsZXMgPSAi bGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci8lcyIgJSBjaXBoZXJfZmlsZQorICAgICAgICAgICAg bW9kZmlsZXMgPSBbY2lwaGVyX2ZpbGVdCisgICAgICAgICAgICBpZiBtb2RuYW1lIGluIGV4dHJh X2ZpbGVzLmtleXMoKToKKyAgICAgICAgICAgICAgICBtb2RmaWxlcyArPSBleHRyYV9maWxlc1tt b2RuYW1lXQogICAgICAgICAgICAgaWYgbGVuIChjaXBoZXJuYW1lcykgPiAwIG9yIGxlbiAobWRu YW1lcykgPiAwOgogICAgICAgICAgICAgICAgIG1vZHVsZXNfc3ltX21kLmFwcGVuZCAobW9kbmFt ZSkKICAgICAgICAgICAgIGNobXNnID0gIihHUlVCX01PRF9JTklUKCVzKSk6IE5ldyBmdW5jdGlv blxuIiAlIG1vZG5hbWUKQEAgLTQ0Nyw3ICs1MTEsNyBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lw aGVyX2ZpbGVzOgogICAgICAgICAgICAgICAgIGNobG9nbmV3ID0gIiVzXG4JJXMiICUgKGNobG9n bmV3LCBjaG1zZykKICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiAgZ3J1Yl9tZF9yZWdpc3Rl ciAoJiVzKTtcbiIgJSBtZG5hbWUpCiAgICAgICAgICAgICBmb3IgcGtuYW1lIGluIHBrbmFtZXM6 Ci0gICAgICAgICAgICAgICAgY2htc2cgPSAiUmVnaXN0ZXIgcGsgJXMiICUgbWRuYW1lCisgICAg ICAgICAgICAgICAgY2htc2cgPSAiUmVnaXN0ZXIgcGsgJXMiICUgcGtuYW1lCiAgICAgICAgICAg ICAgICAgY2hsb2duZXcgPSAiJXNcbgklcyIgJSAoY2hsb2duZXcsIGNobXNnKQogICAgICAgICAg ICAgICAgIGZ3LndyaXRlICgiICBncnViX2NyeXB0b19wa18lcyA9ICYlcztcbiIKICAgICAgICAg ICAgICAgICAgICAgICAgICAgJSAocGtuYW1lLnJlcGxhY2UgKCJfZ2NyeV9wdWJrZXlfc3BlY18i LCAiIiksIHBrbmFtZSkpCkBAIC00NjUsMTcgKzUyOSwxNyBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4g Y2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAgICAgIGNobG9nbmV3ID0gIiVzXG4JJXMiICUgKGNo bG9nbmV3LCBjaG1zZykKICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiAgZ3J1Yl9tZF91bnJl Z2lzdGVyICgmJXMpO1xuIiAlIG1kbmFtZSkKICAgICAgICAgICAgIGZvciBwa25hbWUgaW4gcGtu YW1lczoKLSAgICAgICAgICAgICAgICBjaG1zZyA9ICJVbnJlZ2lzdGVyIHBrICVzIiAlIG1kbmFt ZQorICAgICAgICAgICAgICAgIGNobXNnID0gIlVucmVnaXN0ZXIgcGsgJXMiICUgcGtuYW1lCiAg ICAgICAgICAgICAgICAgY2hsb2duZXcgPSAiJXNcbgklcyIgJSAoY2hsb2duZXcsIGNobXNnKQog ICAgICAgICAgICAgICAgIGZ3LndyaXRlICgiICBncnViX2NyeXB0b19wa18lcyA9IDA7XG4iCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICUgKHBrbmFtZS5yZXBsYWNlICgiX2djcnlfcHVia2V5 X3NwZWNfIiwgIiIpKSkKICAgICAgICAgICAgIGZ3LndyaXRlICgifVxuIikKICAgICAgICAgICAg IGNvbmYud3JpdGUgKCJtb2R1bGUgPSB7XG4iKQogICAgICAgICAgICAgY29uZi53cml0ZSAoIiAg bmFtZSA9ICVzO1xuIiAlIG1vZG5hbWUpCi0gICAgICAgICAgICBmb3Igc3JjIGluIG1vZGZpbGVz LnNwbGl0KCk6Ci0gICAgICAgICAgICAgICAgY29uZi53cml0ZSAoIiAgY29tbW9uID0gJXM7XG4i ICUgc3JjKQorICAgICAgICAgICAgZm9yIHNyYyBpbiBtb2RmaWxlczoKKyAgICAgICAgICAgICAg ICBjb25mLndyaXRlICgiICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdydWIvY2lwaGVyLyVzO1xu IiAlIHNyYykKICAgICAgICAgICAgICAgICBpZiBsZW4gKGNpcGhlcm5hbWVzKSA+IDAgb3IgbGVu IChtZG5hbWVzKSA+IDA6Ci0gICAgICAgICAgICAgICAgICAgIGNvbmZ1dGlsLndyaXRlICgiICBj b21tb24gPSBncnViLWNvcmUvJXM7XG4iICUgc3JjKQorICAgICAgICAgICAgICAgICAgICBjb25m dXRpbC53cml0ZSAoIiAgY29tbW9uID0gZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi9jaXBo ZXIvJXM7XG4iICUgc3JjKQogICAgICAgICAgICAgaWYgbW9kbmFtZSA9PSAiZ2NyeV9lY2MiOgog ICAgICAgICAgICAgICAgIGNvbmYud3JpdGUgKCIgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHQtZ3J1 Yi9tcGkvZWMuYztcbiIpCiAgICAgICAgICAgICAgICAgY29uZi53cml0ZSAoIiAgY2ZsYWdzID0g JyQoQ0ZMQUdTX0dDUlkpIC1Xbm8tcmVkdW5kYW50LWRlY2xzIC1Xbm8tc2lnbi1jb21wYXJlJztc biIpCkBAIC00OTAsNyArNTU0LDcgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoK ICAgICAgICAgICAgIGZ3LmNsb3NlICgpCiAgICAgICAgICAgICBpZiBuY2g6CiAgICAgICAgICAg ICAgICAgY2hsb2cgPSAiJXMlc1xuIiAlIChjaGxvZywgY2hsb2duZXcpCi0gICAgICAgIGVsaWYg aXNjIGFuZCBjaXBoZXJfZmlsZSAhPSAiY2FtZWxsaWEuYyI6CisgICAgICAgIGVsaWYgaXNjIGFu ZCBjaXBoZXJfZmlsZSBub3QgaW4gZXh0cmFfZmlsZXNfbGlzdDoKICAgICAgICAgICAgIHByaW50 ICgiV0FSTklORzogQyBmaWxlIGlzbid0IGEgbW9kdWxlOiAlcyIgJSBjaXBoZXJfZmlsZSkKICAg ICAgICAgICAgIGYuY2xvc2UgKCkKICAgICAgICAgICAgIGZ3LmNsb3NlICgpCkBAIC01MTIsNyAr NTc2LDcgQEAgZm9yIHNyYyBpbiBzb3J0ZWQgKG9zLmxpc3RkaXIgKG9zLnBhdGguam9pbiAoaW5k aXIsICJzcmMiKSkpOgogICAgICAgICAgICAgb3Igc3JjID09ICJsaWJnY3J5cHQudmVycyIgb3Ig c3JjID09ICJNYWtlZmlsZS5hbSIgXAogICAgICAgICAgICAgb3Igc3JjID09ICJNYW5pZmVzdCIg b3Igc3JjID09ICJtaXNjLmMiIFwKICAgICAgICAgICAgIG9yIHNyYyA9PSAibWlzc2luZy1zdHJp bmcuYyIgb3Igc3JjID09ICJtb2R1bGUuYyIgXAotICAgICAgICAgICAgb3Igc3JjID09ICJzZWNt ZW0uYyIgb3Igc3JjID09ICJzZXhwLmMiIFwKKyAgICAgICAgICAgIG9yIHNyYyA9PSAic2VjbWVt LmMiIFwKICAgICAgICAgICAgIG9yIHNyYyA9PSAic3RkbWVtLmMiIG9yIHNyYyA9PSAidmlzaWJp bGl0eS5jIjoKICAgICAgICAgY29udGludWUKICAgICBvdXRmaWxlID0gb3MucGF0aC5qb2luIChi YXNlZGlyLCAic3JjIiwgc3JjKQpAQCAtNTM0LDggKzU5OCwxNyBAQCBmb3Igc3JjIGluIHNvcnRl ZCAob3MubGlzdGRpciAob3MucGF0aC5qb2luIChpbmRpciwgInNyYyIpKSk6CiAgICAgICAgIGZ3 LmNsb3NlICgpCiAgICAgICAgIGNvbnRpbnVlCiAKKyAgICBpZiBzcmMgPT0gImNpcGhlci1wcm90 by5oIjoKKyAgICAgICAgZncud3JpdGUoIiNpbmNsdWRlIDxncnViL2NyeXB0by5oPlxuIikKKyAg ICAgICAgZncud3JpdGUoInR5cGVkZWYgZ2NyeV9zZWxmdGVzdF9mdW5jX3Qgc2VsZnRlc3RfZnVu Y190OyIpCisgICAgICAgIGYuY2xvc2UgKCkKKyAgICAgICAgZncuY2xvc2UgKCkKKyAgICAgICAg Y29udGludWUKKwogICAgIGlmIHNyYyA9PSAiZzEwbGliLmgiOgotICAgICAgICBmdy53cml0ZSAo Zi5yZWFkICgpLnJlcGxhY2UgKCIocHJpbnRmLGYsYSkiLCAiKF9fcHJpbnRmX18sZixhKSIpKQor ICAgICAgICBmdy53cml0ZSgiI2luY2x1ZGUgPGNpcGhlcl93cmFwLmg+XG4iKQorICAgICAgICBm dy53cml0ZSgiI2luY2x1ZGUgPGdydWIvY3J5cHRvLmg+XG4iKQorICAgICAgICBmdy53cml0ZSAo Zi5yZWFkICgpLnJlcGxhY2UgKCIocHJpbnRmLGYsYSkiLCAiKF9fcHJpbnRmX18sZixhKSIpLnJl cGxhY2UgKCIjaW5jbHVkZSBcIi4uL2NvbXBhdC9saWJjb21wYXQuaFwiIiwgIiIpLnJlcGxhY2Uo IiNkZWZpbmUgTl8oYSkgKGEpIiwgIiIpKQogICAgICAgICBmLmNsb3NlICgpCiAgICAgICAgIGZ3 LmNsb3NlICgpCiAgICAgICAgIGNvbnRpbnVlCkBAIC01NDYsNyArNjE5LDcgQEAgZm9yIHNyYyBp biBzb3J0ZWQgKG9zLmxpc3RkaXIgKG9zLnBhdGguam9pbiAoaW5kaXIsICJzcmMiKSkpOgogCiBm b3Igc3JjIGluIHNvcnRlZCAob3MubGlzdGRpciAob3MucGF0aC5qb2luIChpbmRpciwgIm1waSIp KSk6CiAgICAgaWYgc3JjID09ICJjb25maWcubGlua3MiIG9yIHNyYyA9PSAiQ2hhbmdlTG9nLTIw MTEiIFwKLSAgICAgICAgICAgIG9yIHNyYyA9PSAibXBpLXNjYW4uYyIgb3Igc3JjID09ICJNYW5p ZmVzdCIgXAorICAgICAgICAgICAgb3Igc3JjID09ICJNYW5pZmVzdCIgXAogICAgICAgICAgICAg b3Igc3JjID09ICJNYWtlZmlsZS5hbSI6CiAgICAgICAgIGNvbnRpbnVlCiAgICAgaW5maWxlID0g b3MucGF0aC5qb2luIChpbmRpciwgIm1waSIsIHNyYykKQEAgLTU2OCwxNyArNjQxLDE3IEBAIGZv ciBzcmMgaW4gc29ydGVkIChvcy5saXN0ZGlyIChvcy5wYXRoLmpvaW4gKGluZGlyLCAibXBpIikp KToKICAgICAgICAgICAgIGhvbGQgPSBGYWxzZQogICAgICAgICAgICAgIyBXZSdyZSBvcHRpbWlz aW5nIGZvciBzaXplIGFuZCBleGNsdWRlIGFueXRoaW5nIG5lZWRpbmcgZ29vZAogICAgICAgICAg ICAgIyByYW5kb21uZXNzLgotICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgiKF9nY3J5X21w aV9nZXRfaHdfY29uZmlnfGdjcnlfbXBpX3JhbmRvbWl6ZSkiLCBsaW5lKSBpcyBOb25lOgorICAg ICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgiKF9nY3J5X21waV9nZXRfaHdfY29uZmlnfGdjcnlf bXBpX3JhbmRvbWl6ZXxfZ2NyeV9tcGlfcmFuZG9taXplKSIsIGxpbmUpIGlzIE5vbmU6CiAgICAg ICAgICAgICAgICAgc2tpcCA9IDEKICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAg ICAgZWxzZToKICAgICAgICAgICAgICAgICBmdy53cml0ZSAoaG9sZGxpbmUpCi0gICAgICAgIG0g PSByZS5tYXRjaCAoIihjb25zdCBjaGFyKCB8KVwqfHZvaWQpICokIiwgbGluZSkKKyAgICAgICAg bSA9IHJlLm1hdGNoIChyIihjb25zdCBjaGFyKCB8KVwqfHZvaWQpICokIiwgbGluZSkKICAgICAg ICAgaWYgbm90IG0gaXMgTm9uZToKICAgICAgICAgICAgIGhvbGQgPSBUcnVlCiAgICAgICAgICAg ICBob2xkbGluZSA9IGxpbmUKICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIG0gPSByZS5t YXRjaCAoIiNpbmNsdWRlIFwibW9kLXNvdXJjZS1pbmZvXC5oXCIiLCBsaW5lKQorICAgICAgICBt ID0gcmUubWF0Y2ggKHIiI2luY2x1ZGUgXCJtb2Qtc291cmNlLWluZm9cLmhcIiIsIGxpbmUpCiAg ICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICBm dy53cml0ZSAobGluZSkKQEAgLTYxMiw5ICs2ODUsNiBAQCBmdy53cml0ZSAoIiNpbmNsdWRlIDxj aXBoZXJfd3JhcC5oPlxuIikKIGNobG9nID0gIiVzCSogZzEwbGliLmg6IExpa2V3aXNlLlxuIiAl IGNobG9nCiBmdy5jbG9zZSAoKQogCi1pbmZpbGUgPSBvcy5wYXRoLmpvaW4gKGNpcGhlcl9kaXJf aW4sICJDaGFuZ2VMb2ciKQotb3V0ZmlsZSA9IG9zLnBhdGguam9pbiAoY2lwaGVyX2Rpcl9vdXQs ICJDaGFuZ2VMb2ciKQotCiBjb25mLmNsb3NlICgpOwogCiBpbml0ZmlsZSA9IGNvZGVjcy5vcGVu IChvcy5wYXRoLmpvaW4gKGNpcGhlcl9kaXJfb3V0LCAiaW5pdC5jIiksICJ3IiwgInV0Zi04IikK QEAgLTY0Myw3ICs3MTMsNyBAQCBjb25mdXRpbC53cml0ZSAoIn07XG4iKTsKIGNvbmZ1dGlsLmNs b3NlICgpOwogCiAKLWY9Y29kZWNzLm9wZW4gKGluZmlsZSwgInIiLCAidXRmLTgiKQorb3V0Zmls ZSA9IG9zLnBhdGguam9pbiAoY2lwaGVyX2Rpcl9vdXQsICJDaGFuZ2VMb2ciKQogZnc9Y29kZWNz Lm9wZW4gKG91dGZpbGUsICJ3IiwgInV0Zi04IikKIGR0ID0gZGF0ZXRpbWUuZGF0ZS50b2RheSAo KQogZncud3JpdGUgKCIlMDRkLSUwMmQtJTAyZCAgQXV0b21hdGljIGltcG9ydCB0b29sXG4iICUg XApAQCAtNjUzLDcgKzcyMyw0IEBAIGZ3LndyaXRlICgiCUltcG9ydGVkIGNpcGhlcnMgdG8gR1JV QlxuIikKIGZ3LndyaXRlICgiXG4iKQogZncud3JpdGUgKGNobG9nKQogZncud3JpdGUgKCJcbiIp Ci1mb3IgbGluZSBpbiBmOgotICAgIGZ3LndyaXRlIChsaW5lKQotZi5jbG9zZSAoKQogZncuY2xv c2UgKCkKZGlmZiAtLWdpdCBhL3V0aWwvaW1wb3J0X2djcnlwdF9pbnRoLnNlZCBiL3V0aWwvaW1w b3J0X2djcnlwdF9pbnRoLnNlZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAu LmViZTkzNzFlZQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwvaW1wb3J0X2djcnlwdF9pbnRoLnNl ZApAQCAtMCwwICsxLDE3IEBACisvXiNASU5TRVJUX1NZU19TRUxFQ1RfSEAvIGQKKy9eQEZBTExC QUNLX1NPQ0tMRU5fVEAvIGQKKy9eIyAqaW5jbHVkZSA8c3RkbGliXC5oPi8gZAorL14jICppbmNs dWRlIDxzdHJpbmdcLmg+LyBkCisvXiMgKmluY2x1ZGUgPHdpbnNvY2syXC5oPi8gZAorL14jICpp bmNsdWRlIDx3czJ0Y3BpcFwuaD4vIGQKKy9eIyAqaW5jbHVkZSA8dGltZVwuaD4vIGQKKy9eIyAq aW5jbHVkZSA8c3lzXC9zb2NrZXRcLmg+LyBkCisvXiMgKmluY2x1ZGUgPHN5c1wvdGltZVwuaD4v IGQKKy9eICB0eXBlZGVmIGxvbmcgc3NpemVfdDsvIGQKKy9eICB0eXBlZGVmIGludCAgcGlkX3Q7 LyBkCisvXiMgKmluY2x1ZGUgPGdwZy1lcnJvclwuaD4vIHMsI2luY2x1ZGUgPGdwZy1lcnJvci5o PiwjaW5jbHVkZSA8Z3J1Yi9nY3J5cHQvZ3BnLWVycm9yLmg+LAorL150eXBlZGVmIGdwZ19lcnJv cl90IGdjcnlfZXJyb3JfdDsvIGQKKy9edHlwZWRlZiBncGdfZXJyX2NvZGVfdCBnY3J5X2Vycl9j b2RlX3Q7LyBkCisvXnR5cGVkZWYgc3RydWN0IGdjcnlfbXBpIFwqZ2NyeV9tcGlfdDsvIGQKKy9e I2Vycm9yICBnY3J5cHQuaCBhbHJlYWR5IGluY2x1ZGVkLyBkCitwCmRpZmYgLS1naXQgYS91dGls L2ltcG9ydF9nY3J5cHRoLnNlZCBiL3V0aWwvaW1wb3J0X2djcnlwdGguc2VkCmluZGV4IGZlNmQx YTA3Mi4uNTAzYjRiNTQ3IDEwMDY0NAotLS0gYS91dGlsL2ltcG9ydF9nY3J5cHRoLnNlZAorKysg Yi91dGlsL2ltcG9ydF9nY3J5cHRoLnNlZApAQCAtMTMsNiArMTMsNCBAQAogL150eXBlZGVmIGdw Z19lcnJvcl90IGdjcnlfZXJyb3JfdDsvIGQKIC9edHlwZWRlZiBncGdfZXJyX2NvZGVfdCBnY3J5 X2Vycl9jb2RlX3Q7LyBkCiAvXnR5cGVkZWYgc3RydWN0IGdjcnlfbXBpIFwqZ2NyeV9tcGlfdDsv IGQKLS9ec3RydWN0IGdjcnlfdGhyZWFkX2Nicy8gZAotcyxfZ2NyeV9tcGlfaW52bSxnY3J5X21w aV9pbnZtLGcKIHAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0tIAoyLjM5LjIKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpHcnViLWRldmVsIG1h aWxpbmcgbGlzdApHcnViLWRldmVsQGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxt YW4vbGlzdGluZm8vZ3J1Yi1kZXZlbAo=