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 5E26BC369BD for ; Tue, 15 Apr 2025 23:01:52 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u4pHO-0006if-BA; Tue, 15 Apr 2025 19:01:22 -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 1u4pFl-0005Nq-GS for grub-devel@gnu.org; Tue, 15 Apr 2025 18:59:46 -0400 Received: from mail-lj1-x232.google.com ([2a00:1450:4864:20::232]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4pFg-0007sZ-7b for grub-devel@gnu.org; Tue, 15 Apr 2025 18:59:41 -0400 Received: by mail-lj1-x232.google.com with SMTP id 38308e7fff4ca-30ddad694c1so61639691fa.2 for ; Tue, 15 Apr 2025 15:59:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744757973; x=1745362773; 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=tyO76SS/iEgOLg/Yasu0IMIuHrVVw2S7nmqHulg+mJE=; b=ZP8O87y/YKJ0y7f+K6MntH29RM/yUfm0DFtst2+3pW5NKnG9KuOzKFgBLgH/QaLazl svLhCP4ZRgpq/eTBYqsvs5ZKEjAPtPPsoiyOLy9HeTOCHysI9cYJdL/6a5prpBlUsHNC YGfYy5msWzSMx/gArDux812QCdzsL89SqadJXSQnT8QV07QbldLd5i5xkjPFOOLWWvst KU1unegkUYOBLTxHYWtMeAxu/UD7TVDzpMaNmvVBpl40eoDkx6Jyd7/UOXd2JLYvZG6r hCarjbmzgSfojPkGDGwAgCg4cLKkh1IQPwZgtBHMc4QfrmD4Z44SUJbjYI57DNP4ypoG ybfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744757973; x=1745362773; 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=tyO76SS/iEgOLg/Yasu0IMIuHrVVw2S7nmqHulg+mJE=; b=FzEcjITL3ULBZ7aoJm7q7e1v0bea8WZIKcJJy3fPtLEcyMzKT6MwChqAzJ1UsOtmY0 EWHHBQp9Y62IyI+/8cF1rc+QQD6BKTTzpsl1t/WhX6KmAC7fTIkX6ZGJ3lgjcnLPktok AYeUNVfnpo83ZB1Ic2mBCeMF0EqrSg9srEm2DuV4A4r1OQT1ZLkiWn0CoQcpIRMwG7gS yKKVUenhXwpgzGvXH4nG7nYNP5BvM3NN9RmFdBnHpb/P+TumRlpnKu8dDvvaBXktNvSF em+p4sqdKjnoPvpLxGMP0jc9tDE217daOLThKsnR9THyB9Qz27Pwwc8aFwIM10YgQff7 bvzQ== X-Gm-Message-State: AOJu0YwFdM4xbfqZXlQRWOOgYIm+ZBhcJlVtyXn7fES8KpkuvwBed1Po aW1DGkULvy7Lc+U7ALhWUMIxb1aTP/MDRjsBkPBt+YsXNQe5+WPo+DJnAJor X-Gm-Gg: ASbGncvS+Qm3NfU1EEmcvTjb/llxxFvMaGu3TGbhKk8f0Bez8kVqD/WIyL5NgZLTKJG XSAE0envqIBKzDOqx4c6sZOwqEUEjNp981QrqjYGtkDglrpLDn6toN1V4ryHRA15Yllh+xbugGD w80bAGuhPM26j+rlkZ0ZTM1mq4+9iRw6nCM0sNocI63bu57IdZJ2iqXWC1sN79XZ7ALjsf2mUta cAB4uxvTYKmTwB1IjTJio1vIJADn4Kf47DzEjvOftomayWmQQ29PMlWrCWYMhCOWlXITW57x/aa YCQoX/kV6eKqIyCDa88QDvffMcIr8r7Y4E8h6Ea64No0T/2xmbIlf6k= X-Google-Smtp-Source: AGHT+IEOCSAfS3DCNN1KsyAGr/f13rB2t6pZlT0VKFmXtcdDjBKHISnTzMJY4FZiKAjQZ6IrUKC5aQ== X-Received: by 2002:a05:651c:1445:b0:306:10d6:28b0 with SMTP id 38308e7fff4ca-3107c28c9b1mr2577011fa.1.1744757972486; Tue, 15 Apr 2025 15:59:32 -0700 (PDT) Received: from localhost (vds2213055.my-ihor.ru. [94.142.141.192]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-30f465d4ebbsm23131321fa.73.2025.04.15.15.59.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Apr 2025 15:59:31 -0700 (PDT) From: Vladimir Serbinenko To: grub-devel@gnu.org Cc: Vladimir Serbinenko Subject: [PATCH v12 04/13] Adjust import script, definitions and API users for libgcrypt 1.11 Date: Tue, 15 Apr 2025 22:56:59 +0000 Message-ID: <20250415225914.361036-5-phcoder@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250415225914.361036-1-phcoder@gmail.com> References: <20250415225914.361036-1-phcoder@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::232; envelope-from=phcoder@gmail.com; helo=mail-lj1-x232.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 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 VGhpcyBwYXRjaGVzIG1vZGlmaWVzIHRoZSBHUlVCLWxpYmdjcnlwdCBBUEkgdG8gbWF0Y2ggbmV3 IGxpYmdjcnlwdCAxLjExCgpTaWduZWQtb2ZmLWJ5OiBWbGFkaW1pciBTZXJiaW5lbmtvIDxwaGNv ZGVyQGdtYWlsLmNvbT4KLS0tCiBhdXRvZ2VuLnNoICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDUgKwogY29uZi9NYWtlZmlsZS5jb21tb24gICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICA0ICstCiBncnViLWNvcmUvTWFrZWZpbGUuY29yZS5kZWYgICAgICAgICAgICAg ICAgICAgfCAgMjAgKy0KIGdydWItY29yZS9jb21tYW5kcy9oYXNoc3VtLmMgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogZ3J1Yi1jb3JlL2NvbW1hbmRzL2xlZ2FjeWNmZy5jICAgICAgICAgICAg ICAgIHwgICA2ICstCiBncnViLWNvcmUvY29tbWFuZHMvcGdwLmMgICAgICAgICAgICAgICAgICAg ICAgfCAxMTQgKysrLS0tLS0KIGdydWItY29yZS9jb21tYW5kcy94bnVfdXVpZC5jICAgICAgICAg ICAgICAgICB8ICAgMiArLQogZ3J1Yi1jb3JlL2Rpc2svY3J5cHRvZGlzay5jICAgICAgICAgICAg ICAgICAgIHwgICAyICstCiBncnViLWNvcmUvaW8vZ3ppby5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIGdydWItY29yZS9pby9sem9waW8uYyAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogZ3J1Yi1jb3JlL2xpYi9hZGxlcjMyLmMgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIxICstCiBncnViLWNvcmUvbGliL2NyYzY0LmMgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMjQgKy0KIGdydWItY29yZS9saWIvY3J5cHRvLmMgICAgICAgICAgICAgICAgICAgICAg ICB8IDI0NSArKysrKysrKysrKysrKystCiBncnViLWNvcmUvbGliL2xpYmdjcnlwdC1wYXRjaGVz LzAxX21kLnBhdGNoICAgfCAxMjQgKysrKysrKysrCiBncnViLWNvcmUvbGliL2xpYmdjcnlwdC1w YXRjaGVzLzA0X2FyaWEucGF0Y2ggfCAgMjIgKysKIC4uLi8wNV9kaXNhYmxlX3JzYV9zaGFrZS5w YXRjaCAgICAgICAgICAgICAgICB8ICAzNiArKysKIGdydWItY29yZS9saWIvbGliZ2NyeXB0L3Ny Yy9nY3J5cHQtaW50LmggICAgICB8ICA1MSAtLS0tCiBncnViLWNvcmUvbGliL2xpYmdjcnlwdF93 cmFwL2NpcGhlcl93cmFwLmggICAgfCAgMjEgKy0KIGdydWItY29yZS9saWIvbGliZ2NyeXB0X3dy YXAvbWVtLmMgICAgICAgICAgICB8ICA4MyArKysrKy0KIGdydWItY29yZS9saWIvcG9zaXhfd3Jh cC9zeXMvdHlwZXMuaCAgICAgICAgICB8ICAgNCArCiBncnViLWNvcmUvbGliL3h6ZW1iZWQveHpf ZGVjX3N0cmVhbS5jICAgICAgICAgfCAgMTggKy0KIGluY2x1ZGUvZ3J1Yi9jcnlwdG8uaCAgICAg ICAgICAgICAgICAgICAgICAgICB8IDI2MiArKysrKysrKysrKysrKystLS0KIGluY2x1ZGUvZ3J1 Yi9nY3J5cHQvZ3BnLWVycm9yLmggICAgICAgICAgICAgICB8ICAgOSArCiB1dGlsL2dydWItZnN0 ZXN0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHV0aWwvaW1wb3J0X2dj cnkucHkgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE4NiArKysrKysrKystLS0tCiB1dGls L2ltcG9ydF9nY3J5cHRfaW50aC5zZWQgICAgICAgICAgICAgICAgICAgfCAgMTcgKysKIHV0aWwv aW1wb3J0X2djcnlwdGguc2VkICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAtCiAyNyBmaWxl cyBjaGFuZ2VkLCAxMDA0IGluc2VydGlvbnMoKyksIDI4MiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt b2RlIDEwMDY0NCBncnViLWNvcmUvbGliL2xpYmdjcnlwdC1wYXRjaGVzLzAxX21kLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8wNF9hcmlh LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hl cy8wNV9kaXNhYmxlX3JzYV9zaGFrZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHV0aWwvaW1w b3J0X2djcnlwdF9pbnRoLnNlZAoKZGlmZiAtLWdpdCBhL2F1dG9nZW4uc2ggYi9hdXRvZ2VuLnNo CmluZGV4IGViZDYxNDc5Mi4uZmJkYjMzODc5IDEwMDc1NQotLS0gYS9hdXRvZ2VuLnNoCisrKyBi L2F1dG9nZW4uc2gKQEAgLTM1LDYgKzM1LDcgQEAgJHtQWVRIT059IHV0aWwvaW1wb3J0X3VuaWNv ZGUucHkgdW5pY29kZS9Vbmljb2RlRGF0YS50eHQgdW5pY29kZS9CaWRpTWlycm9yaW5nLnQKIGVj aG8gIkltcG9ydGluZyBsaWJnY3J5cHQuLi4iCiAke1BZVEhPTn0gdXRpbC9pbXBvcnRfZ2NyeS5w eSBncnViLWNvcmUvbGliL2xpYmdjcnlwdC8gZ3J1Yi1jb3JlCiBzZWQgLW4gLWYgdXRpbC9pbXBv cnRfZ2NyeXB0aC5zZWQgPCBncnViLWNvcmUvbGliL2xpYmdjcnlwdC9zcmMvZ2NyeXB0LmguaW4g PiBpbmNsdWRlL2dydWIvZ2NyeXB0L2djcnlwdC5oCitzZWQgLW4gLWYgdXRpbC9pbXBvcnRfZ2Ny eXB0X2ludGguc2VkIDwgZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQvc3JjL2djcnlwdC1pbnQuaCA+ PiBpbmNsdWRlL2dydWIvZ2NyeXB0L2djcnlwdC5oCiBpZiBbIC1mIGluY2x1ZGUvZ3J1Yi9nY3J5 cHQvZzEwbGliLmggXTsgdGhlbgogICAgIHJtIGluY2x1ZGUvZ3J1Yi9nY3J5cHQvZzEwbGliLmgK IGZpCkBAIC01MSw2ICs1MiwxMCBAQCBmb3IgeCBpbiBtcGktYXNtLWRlZnMuaCBtcGloLWFkZDEu YyBtcGloLXN1YjEuYyBtcGloLW11bDEuYyBtcGloLW11bDIuYyBtcGloLW11bAogICAgIGNwIGdy dWItY29yZS9saWIvbGliZ2NyeXB0LWdydWIvbXBpL2dlbmVyaWMvIiR4IiBncnViLWNvcmUvbGli L2xpYmdjcnlwdC1ncnViL21waS8iJHgiCiBkb25lCiAKK2ZvciB4IGluIGdydWItY29yZS9saWIv bGliZ2NyeXB0LXBhdGNoZXMvKi5wYXRjaDsgZG8KKyAgICBwYXRjaCAtaSAkeCAtcDEKK2RvbmUK KwogZWNobyAiSW1wb3J0aW5nIGxpYnRhc24xLi4uIgogaWYgWyAtZCBncnViLWNvcmUvbGliL2xp YnRhc24xLWdydWIgXTsgdGhlbgogICBybSAtcmYgZ3J1Yi1jb3JlL2xpYi9saWJ0YXNuMS1ncnVi CmRpZmYgLS1naXQgYS9jb25mL01ha2VmaWxlLmNvbW1vbiBiL2NvbmYvTWFrZWZpbGUuY29tbW9u CmluZGV4IGM2MGY1NTM4Ni4uNWNhZGE0NTY4IDEwMDY0NAotLS0gYS9jb25mL01ha2VmaWxlLmNv bW1vbgorKysgYi9jb25mL01ha2VmaWxlLmNvbW1vbgpAQCAtODEsOCArODEsOCBAQCBDUFBGTEFH U19HTlVMSUIgPSAtSSQodG9wX2J1aWxkZGlyKS9ncnViLWNvcmUvbGliL2dudWxpYiAtSSQodG9w X3NyY2RpcikvZ3J1Yi1jbwogQ0ZMQUdTX1BPU0lYID0gLWZuby1idWlsdGluCiBDUFBGTEFHU19Q T1NJWCA9IC1JJCh0b3Bfc3JjZGlyKS9ncnViLWNvcmUvbGliL3Bvc2l4X3dyYXAKIAotQ0ZMQUdT X0dDUlkgPSAtV25vLWVycm9yIC1Xbm8tbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgLVduby1y ZWR1bmRhbnQtZGVjbHMgLVduby11bmRlZiAkKENGTEFHU19QT1NJWCkKLUNQUEZMQUdTX0dDUlkg PSAtSSQodG9wX3NyY2RpcikvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHRfd3JhcCAkKENQUEZMQUdT X1BPU0lYKSAtRF9HQ1JZUFRfSU5fTElCR0NSWVBUPTEgLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUv Z3J1Yi9nY3J5cHQKK0NGTEFHU19HQ1JZID0gLVduby1lcnJvcj1zaWduLWNvbXBhcmUgLVduby1t aXNzaW5nLWZpZWxkLWluaXRpYWxpemVycyAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXVuZGVm ICQoQ0ZMQUdTX1BPU0lYKQorQ1BQRkxBR1NfR0NSWSA9IC1JJCh0b3Bfc3JjZGlyKS9ncnViLWNv cmUvbGliL2xpYmdjcnlwdF93cmFwICQoQ1BQRkxBR1NfUE9TSVgpIC1EX0dDUllQVF9JTl9MSUJH Q1JZUFQ9MSAtRF9HQ1JZUFRfQ09ORklHX0hfSU5DTFVERUQ9MSAtREhBVkVfU1RSVE9VTD0xIC1J JCh0b3Bfc3JjZGlyKS9pbmNsdWRlL2dydWIvZ2NyeXB0CiAKIENQUEZMQUdTX0VGSUVNVSA9IC1J JCh0b3Bfc3JjZGlyKS9ncnViLWNvcmUvZWZpZW11L3J1bnRpbWUKIApkaWZmIC0tZ2l0IGEvZ3J1 Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmIGIvZ3J1Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmCmlu ZGV4IGY3MGUwMmU2OS4uYzEzOTdmY2YwIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvTWFrZWZpbGUu Y29yZS5kZWYKKysrIGIvZ3J1Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmCkBAIC05NzUsOCArOTc1 LDggQEAgbW9kdWxlID0gewogbW9kdWxlID0gewogICBuYW1lID0gcGdwOwogICBjb21tb24gPSBj b21tYW5kcy9wZ3AuYzsKLSAgY2ZsYWdzID0gJyQoQ0ZMQUdTX1BPU0lYKSc7Ci0gIGNwcGZsYWdz ID0gJy1JJChzcmNkaXIpL2xpYi9wb3NpeF93cmFwJzsKKyAgY2ZsYWdzID0gJyQoQ0ZMQUdTX0dD UlkpIC1Xbm8tcmVkdW5kYW50LWRlY2xzIC1Xbm8tc2lnbi1jb21wYXJlJzsKKyAgY3BwZmxhZ3Mg PSAnJChDUFBGTEFHU19HQ1JZKSc7CiB9OwogCiBtb2R1bGUgPSB7CkBAIC0yNTM0LDcgKzI1MzQs MjMgQEAgbW9kdWxlID0gewogICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdydWIvbXBpL21waWNv ZGVyLmM7CiAgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHQtZ3J1Yi9tcGkvbXBpaC1yc2hpZnQuYzsK ICAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnViL21waS9tcGktaW5saW5lLmM7CisgIGNvbW1v biA9IGxpYi9saWJnY3J5cHQtZ3J1Yi9tcGkvbXBpaC1jb25zdC10aW1lLmM7CisgIGNvbW1vbiA9 IGxpYi9saWJnY3J5cHQtZ3J1Yi9tcGkvbXBpLXNjYW4uYzsKKyAgY29tbW9uID0gbGliL2xpYmdj cnlwdC1ncnViL3NyYy9jb25zdC10aW1lLmM7CiAgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHRfd3Jh cC9tZW0uYzsKKyAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9tZC5jOworCisg IGNmbGFncyA9ICckKENGTEFHU19HQ1JZKSAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXNpZ24t Y29tcGFyZSAtV25vLXVudXNlZC1idXQtc2V0LXZhcmlhYmxlJzsKKyAgY3BwZmxhZ3MgPSAnJChD UFBGTEFHU19HQ1JZKSc7Cit9OworCittb2R1bGUgPSB7CisgIG5hbWUgPSBwdWJrZXk7CisgIGNv bW1vbiA9IGxpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvcHVia2V5LXV0aWwuYzsKKyAgY29tbW9u ID0gbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9yc2EtY29tbW9uLmM7CisgIGNvbW1vbiA9IGxp Yi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvZHNhLWNvbW1vbi5jOworICBjb21tb24gPSBsaWIvbGli Z2NyeXB0LWdydWIvc3JjL3NleHAuYzsKKyAgY29tbW9uID0gbGliL2I2NGRlYy5jOwogCiAgIGNm bGFncyA9ICckKENGTEFHU19HQ1JZKSAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXNpZ24tY29t cGFyZSc7CiAgIGNwcGZsYWdzID0gJyQoQ1BQRkxBR1NfR0NSWSknOwpkaWZmIC0tZ2l0IGEvZ3J1 Yi1jb3JlL2NvbW1hbmRzL2hhc2hzdW0uYyBiL2dydWItY29yZS9jb21tYW5kcy9oYXNoc3VtLmMK aW5kZXggZDU2YjViMGJiLi5iNmY4ZTNkMWEgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9jb21tYW5k cy9oYXNoc3VtLmMKKysrIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL2hhc2hzdW0uYwpAQCAtNzMsNyAr NzMsNyBAQCBoYXNoX2ZpbGUgKGdydWJfZmlsZV90IGZpbGUsIGNvbnN0IGdjcnlfbWRfc3BlY190 ICpoYXNoLCB2b2lkICpyZXN1bHQpCiAgIGlmICghcmVhZGJ1ZiB8fCAhY29udGV4dCkKICAgICBn b3RvIGZhaWw7CiAKLSAgaGFzaC0+aW5pdCAoY29udGV4dCk7CisgIGhhc2gtPmluaXQgKGNvbnRl eHQsIDApOwogICB3aGlsZSAoMSkKICAgICB7CiAgICAgICBncnViX3NzaXplX3QgcjsKZGlmZiAt LWdpdCBhL2dydWItY29yZS9jb21tYW5kcy9sZWdhY3ljZmcuYyBiL2dydWItY29yZS9jb21tYW5k cy9sZWdhY3ljZmcuYwppbmRleCAzYmY5ZmUyZTQuLmE3NjhmYTZlOCAxMDA2NDQKLS0tIGEvZ3J1 Yi1jb3JlL2NvbW1hbmRzL2xlZ2FjeWNmZy5jCisrKyBiL2dydWItY29yZS9jb21tYW5kcy9sZWdh Y3ljZmcuYwpAQCAtNjI0LDcgKzYyNCw3IEBAIGNoZWNrX3Bhc3N3b3JkX21kNV9yZWFsIChjb25z dCBjaGFyICplbnRlcmVkLAogICBpZiAoIWN0eCkKICAgICByZXR1cm4gMDsKIAotICBHUlVCX01E X01ENS0+aW5pdCAoY3R4KTsKKyAgR1JVQl9NRF9NRDUtPmluaXQgKGN0eCwgMCk7CiAgIEdSVUJf TURfTUQ1LT53cml0ZSAoY3R4LCBlbnRlcmVkLCBlbnRlcmVkbGVuKTsKICAgR1JVQl9NRF9NRDUt PndyaXRlIChjdHgsIHB3LT5zYWx0ICsgMywgcHctPnNhbHRsZW4gLSAzKTsKICAgR1JVQl9NRF9N RDUtPndyaXRlIChjdHgsIGVudGVyZWQsIGVudGVyZWRsZW4pOwpAQCAtNjMyLDcgKzYzMiw3IEBA IGNoZWNrX3Bhc3N3b3JkX21kNV9yZWFsIChjb25zdCBjaGFyICplbnRlcmVkLAogICBHUlVCX01E X01ENS0+ZmluYWwgKGN0eCk7CiAgIGdydWJfbWVtY3B5IChhbHRfcmVzdWx0LCBkaWdlc3QsIE1E NV9IQVNITEVOKTsKIAotICBHUlVCX01EX01ENS0+aW5pdCAoY3R4KTsKKyAgR1JVQl9NRF9NRDUt PmluaXQgKGN0eCwgMCk7CiAgIEdSVUJfTURfTUQ1LT53cml0ZSAoY3R4LCBlbnRlcmVkLCBlbnRl cmVkbGVuKTsKICAgR1JVQl9NRF9NRDUtPndyaXRlIChjdHgsIHB3LT5zYWx0LCBwdy0+c2FsdGxl bik7IC8qIGluY2x1ZGUgdGhlICQxJCBoZWFkZXIgKi8KICAgZm9yIChpID0gZW50ZXJlZGxlbjsg aSA+IDE2OyBpIC09IDE2KQpAQCAtNjQ4LDcgKzY0OCw3IEBAIGNoZWNrX3Bhc3N3b3JkX21kNV9y ZWFsIChjb25zdCBjaGFyICplbnRlcmVkLAogICAgIHsKICAgICAgIGdydWJfbWVtY3B5IChhbHRf cmVzdWx0LCBkaWdlc3QsIDE2KTsKIAotICAgICAgR1JVQl9NRF9NRDUtPmluaXQgKGN0eCk7Cisg ICAgICBHUlVCX01EX01ENS0+aW5pdCAoY3R4LCAwKTsKICAgICAgIGlmICgoaSAmIDEpICE9IDAp CiAJR1JVQl9NRF9NRDUtPndyaXRlIChjdHgsIGVudGVyZWQsIGVudGVyZWRsZW4pOwogICAgICAg ZWxzZQpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL3BncC5jIGIvZ3J1Yi1jb3JlL2Nv bW1hbmRzL3BncC5jCmluZGV4IDVmYWRjMzNjNC4uZTYxODg3ODYyIDEwMDY0NAotLS0gYS9ncnVi LWNvcmUvY29tbWFuZHMvcGdwLmMKKysrIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL3BncC5jCkBAIC0x MzYsNDEgKzEzNiwyNyBAQCBzdHJ1Y3Qgc2lnbmF0dXJlX3Y0X2hlYWRlcgogICBncnViX3VpbnQx Nl90IGhhc2hlZF9zdWI7CiB9IEdSVUJfUEFDS0VEOwogCi1jb25zdCBjaGFyICpoYXNoZXNbXSA9 IHsKLSAgWzB4MDFdID0gIm1kNSIsCi0gIFsweDAyXSA9ICJzaGExIiwKLSAgWzB4MDNdID0gInJp cGVtZDE2MCIsCi0gIFsweDA4XSA9ICJzaGEyNTYiLAotICBbMHgwOV0gPSAic2hhMzg0IiwKLSAg WzB4MGFdID0gInNoYTUxMiIsCi0gIFsweDBiXSA9ICJzaGEyMjQiCi19OwotCiBzdHJ1Y3QgZ2Ny eV9wa19zcGVjICpncnViX2NyeXB0b19wa19kc2E7CiBzdHJ1Y3QgZ2NyeV9wa19zcGVjICpncnVi X2NyeXB0b19wa19lY2RzYTsKIHN0cnVjdCBnY3J5X3BrX3NwZWMgKmdydWJfY3J5cHRvX3BrX3Jz YTsKIAotc3RhdGljIGludAotZHNhX3BhZCAoZ2NyeV9tcGlfdCAqaG1waSwgZ3J1Yl91aW50OF90 ICpodmFsLAotCSBjb25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgc3RydWN0IGdydWJfcHVibGlj X3N1YmtleSAqc2spOwotc3RhdGljIGludAotcnNhX3BhZCAoZ2NyeV9tcGlfdCAqaG1waSwgZ3J1 Yl91aW50OF90ICpodmFsLAotCSBjb25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgc3RydWN0IGdy dWJfcHVibGljX3N1YmtleSAqc2spOwotCiBzdHJ1Y3QKIHsKICAgY29uc3QgY2hhciAqbmFtZTsK KyAgY29uc3QgY2hhciAqc2lnc2V4cDsKICAgZ3J1Yl9zaXplX3Qgbm1waXNpZzsKKyAgY29uc3Qg Y2hhciAqcHVic2V4cDsKICAgZ3J1Yl9zaXplX3Qgbm1waXB1YjsKICAgc3RydWN0IGdjcnlfcGtf c3BlYyAqKmFsZ287Ci0gIGludCAoKnBhZCkgKGdjcnlfbXBpX3QgKmhtcGksIGdydWJfdWludDhf dCAqaHZhbCwKLQkgICAgICBjb25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgc3RydWN0IGdydWJf cHVibGljX3N1YmtleSAqc2spOworICBjb25zdCBjaGFyICpwYWRkaW5nOwogICBjb25zdCBjaGFy ICptb2R1bGU7CiB9IHBrYWxnb3NbXSA9CiAgIHsKLSAgICBbMV0gPSB7ICJyc2EiLCAxLCAyLCAm Z3J1Yl9jcnlwdG9fcGtfcnNhLCByc2FfcGFkLCAiZ2NyeV9yc2EiIH0sCi0gICAgWzNdID0geyAi cnNhIiwgMSwgMiwgJmdydWJfY3J5cHRvX3BrX3JzYSwgcnNhX3BhZCwgImdjcnlfcnNhIiB9LAot ICAgIFsxN10gPSB7ICJkc2EiLCAyLCA0LCAmZ3J1Yl9jcnlwdG9fcGtfZHNhLCBkc2FfcGFkLCAi Z2NyeV9kc2EiIH0sCisgICAgWzFdID0geyAicnNhIiwgIihzaWctdmFsIChyc2EgKHMgJU0pKSki LCAxLCAiKHB1YmxpYy1rZXkgKGRzYSAobiAlTSkgKGUgJU0pKSkiLCAyLCAmZ3J1Yl9jcnlwdG9f cGtfcnNhLCAicGtjczEiLCAiZ2NyeV9yc2EiIH0sCisgICAgWzNdID0geyAicnNhIiwgIihzaWct dmFsIChyc2EgKHMgJU0pKSkiLCAxLCAiKHB1YmxpYy1rZXkgKGRzYSAobiAlTSkgKGUgJU0pKSki LCAyLCAmZ3J1Yl9jcnlwdG9fcGtfcnNhLCAicGtjczEiLCAiZ2NyeV9yc2EiIH0sCisgICAgWzE3 XSA9IHsgImRzYSIsICIoc2lnLXZhbCAoZHNhIChyICVNKSAocyAlTSkpKSIsIDIsCisJICAgICAi KHB1YmxpYy1rZXkgKGRzYSAocCAlTSkgKHEgJU0pIChnICVNKSAoeSAlTSkpKSIsCisJICAgICA0 LCAmZ3J1Yl9jcnlwdG9fcGtfZHNhLCAicmF3IiwgImdjcnlfZHNhIiB9LAogICB9OwogCiBzdHJ1 Y3QgZ3J1Yl9wdWJsaWNfa2V5CkBAIC0xOTYsNyArMTgyLDcgQEAgZnJlZV9wayAoc3RydWN0IGdy dWJfcHVibGljX2tleSAqcGspCiAgICAgICBncnViX3NpemVfdCBpOwogICAgICAgZm9yIChpID0g MDsgaSA8IEFSUkFZX1NJWkUgKHNrLT5tcGlzKTsgaSsrKQogCWlmIChzay0+bXBpc1tpXSkKLQkg IGdjcnlfbXBpX3JlbGVhc2UgKHNrLT5tcGlzW2ldKTsKKwkgIF9nY3J5X21waV9yZWxlYXNlIChz ay0+bXBpc1tpXSk7CiAgICAgICBuc2sgPSBzay0+bmV4dDsKICAgICAgIGdydWJfZnJlZSAoc2sp OwogICAgIH0KQEAgLTMwMyw3ICsyODksNyBAQCBncnViX2xvYWRfcHVibGljX2tleSAoZ3J1Yl9m aWxlX3QgZikKIAlnb3RvIGZhaWw7CiAKICAgICAgIGdydWJfbWVtc2V0IChmaW5nZXJwcmludF9j b250ZXh0LCAwLCBHUlVCX01EX1NIQTEtPmNvbnRleHRzaXplKTsKLSAgICAgIEdSVUJfTURfU0hB MS0+aW5pdCAoZmluZ2VycHJpbnRfY29udGV4dCk7CisgICAgICBHUlVCX01EX1NIQTEtPmluaXQg KGZpbmdlcnByaW50X2NvbnRleHQsIDApOwogICAgICAgR1JVQl9NRF9TSEExLT53cml0ZSAoZmlu Z2VycHJpbnRfY29udGV4dCwgIlx4OTkiLCAxKTsKICAgICAgIGxlbl9iZSA9IGdydWJfY3B1X3Rv X2JlMTYgKGxlbik7CiAgICAgICBHUlVCX01EX1NIQTEtPndyaXRlIChmaW5nZXJwcmludF9jb250 ZXh0LCAmbGVuX2JlLCBzaXplb2YgKGxlbl9iZSkpOwpAQCAtMzM2LDcgKzMyMiw3IEBAIGdydWJf bG9hZF9wdWJsaWNfa2V5IChncnViX2ZpbGVfdCBmKQogCiAJICBHUlVCX01EX1NIQTEtPndyaXRl IChmaW5nZXJwcmludF9jb250ZXh0LCBidWZmZXIsIGxiICsgc2l6ZW9mIChncnViX3VpbnQxNl90 KSk7CiAKLQkgIGlmIChnY3J5X21waV9zY2FuICgmc2stPm1waXNbaV0sIEdDUllNUElfRk1UX1BH UCwKKwkgIGlmIChfZ2NyeV9tcGlfc2NhbiAoJnNrLT5tcGlzW2ldLCBHQ1JZTVBJX0ZNVF9QR1As CiAJCQkgICAgIGJ1ZmZlciwgbGIgKyBzaXplb2YgKGdydWJfdWludDE2X3QpLCAwKSkKIAkgICAg ewogCSAgICAgIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9TSUdOQVRVUkUsIE5fKCJiYWQgc2ln bmF0dXJlIikpOwpAQCAtMzk0LDUxICszODAsNiBAQCBncnViX2NyeXB0b19wa19sb2NhdGVfc3Vi a2V5X2luX3RydXN0ZGIgKGdydWJfdWludDY0X3Qga2V5aWQpCiAgIHJldHVybiAwOwogfQogCi0K LXN0YXRpYyBpbnQKLWRzYV9wYWQgKGdjcnlfbXBpX3QgKmhtcGksIGdydWJfdWludDhfdCAqaHZh bCwKLQkgY29uc3QgZ2NyeV9tZF9zcGVjX3QgKmhhc2gsIHN0cnVjdCBncnViX3B1YmxpY19zdWJr ZXkgKnNrKQotewotICB1bnNpZ25lZCBuYml0cyA9IGdjcnlfbXBpX2dldF9uYml0cyAoc2stPm1w aXNbMV0pOwotICBncnViX2RwcmludGYgKCJjcnlwdCIsICJtdXN0IGJlICV1IGJpdHMgZ290ICVk IGJpdHNcbiIsIG5iaXRzLAotCQkoaW50KSg4ICogaGFzaC0+bWRsZW4pKTsKLSAgcmV0dXJuIGdj cnlfbXBpX3NjYW4gKGhtcGksIEdDUllNUElfRk1UX1VTRywgaHZhbCwKLQkJCW5iaXRzIC8gOCA8 ICh1bnNpZ25lZCkgaGFzaC0+bWRsZW4gPyBuYml0cyAvIDgKLQkJCTogKHVuc2lnbmVkKSBoYXNo LT5tZGxlbiwgMCk7Ci19Ci0KLXN0YXRpYyBpbnQKLXJzYV9wYWQgKGdjcnlfbXBpX3QgKmhtcGks IGdydWJfdWludDhfdCAqaHZhbCwKLQkgY29uc3QgZ2NyeV9tZF9zcGVjX3QgKmhhc2gsIHN0cnVj dCBncnViX3B1YmxpY19zdWJrZXkgKnNrKQotewotICBncnViX3NpemVfdCB0bGVuLCBlbWxlbiwg ZmZsZW47Ci0gIGdydWJfdWludDhfdCAqZW0sICplbXB0cjsKLSAgdW5zaWduZWQgbmJpdHMgPSBn Y3J5X21waV9nZXRfbmJpdHMgKHNrLT5tcGlzWzBdKTsKLSAgaW50IHJldDsKLSAgdGxlbiA9IGhh c2gtPm1kbGVuICsgaGFzaC0+YXNubGVuOwotICBlbWxlbiA9IChuYml0cyArIDcpIC8gODsKLSAg aWYgKGVtbGVuIDwgdGxlbiArIDExKQotICAgIHJldHVybiAxOwotCi0gIGVtID0gZ3J1Yl9tYWxs b2MgKGVtbGVuKTsKLSAgaWYgKCFlbSkKLSAgICByZXR1cm4gMTsKLQotICBlbVswXSA9IDB4MDA7 Ci0gIGVtWzFdID0gMHgwMTsKLSAgZmZsZW4gPSBlbWxlbiAtIHRsZW4gLSAzOwotICBmb3IgKGVt cHRyID0gZW0gKyAyOyBlbXB0ciA8IGVtICsgMiArIGZmbGVuOyBlbXB0cisrKQotICAgICplbXB0 ciA9IDB4ZmY7Ci0gICplbXB0cisrID0gMHgwMDsKLSAgZ3J1Yl9tZW1jcHkgKGVtcHRyLCBoYXNo LT5hc25vaWQsIGhhc2gtPmFzbmxlbik7Ci0gIGVtcHRyICs9IGhhc2gtPmFzbmxlbjsKLSAgZ3J1 Yl9tZW1jcHkgKGVtcHRyLCBodmFsLCBoYXNoLT5tZGxlbik7Ci0KLSAgcmV0ID0gZ2NyeV9tcGlf c2NhbiAoaG1waSwgR0NSWU1QSV9GTVRfVVNHLCBlbSwgZW1sZW4sIDApOwotICBncnViX2ZyZWUg KGVtKTsKLSAgcmV0dXJuIHJldDsKLX0KLQogc3RydWN0IGdydWJfcHVia2V5X2NvbnRleHQKIHsK ICAgZ3J1Yl9maWxlX3Qgc2lnOwpAQCAtNDgzLDE1ICs0MjQsMTIgQEAgZ3J1Yl92ZXJpZnlfc2ln bmF0dXJlX2luaXQgKHN0cnVjdCBncnViX3B1YmtleV9jb250ZXh0ICpjdHh0LCBncnViX2ZpbGVf dCBzaWcpCiAgIGlmICh0ICE9IDApCiAgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JB RF9TSUdOQVRVUkUsIE5fKCJiYWQgc2lnbmF0dXJlIikpOwogCi0gIGlmIChoID49IEFSUkFZX1NJ WkUgKGhhc2hlcykgfHwgaGFzaGVzW2hdID09IE5VTEwpCi0gICAgcmV0dXJuIGdydWJfZXJyb3Ig KEdSVUJfRVJSX0JBRF9TSUdOQVRVUkUsICJ1bmtub3duIGhhc2giKTsKLQogICBpZiAocGsgPj0g QVJSQVlfU0laRSAocGthbGdvcykgfHwgcGthbGdvc1twa10ubmFtZSA9PSBOVUxMKQogICAgIHJl dHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9CQURfU0lHTkFUVVJFLCBOXygiYmFkIHNpZ25hdHVy ZSIpKTsKIAotICBjdHh0LT5oYXNoID0gZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X25hbWUgKGhh c2hlc1toXSk7CisgIGN0eHQtPmhhc2ggPSBncnViX2NyeXB0b19sb29rdXBfbWRfYnlfYWxnbyAo aCk7CiAgIGlmICghY3R4dC0+aGFzaCkKLSAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJf QkFEX1NJR05BVFVSRSwgImhhc2ggYCVzJyBub3QgbG9hZGVkIiwgaGFzaGVzW2hdKTsKKyAgICBy ZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX1NJR05BVFVSRSwgImhhc2ggYCVkJyBub3Qg bG9hZGVkIiwgaCk7CiAKICAgZ3J1Yl9kcHJpbnRmICgiY3J5cHQiLCAiYWxpdmVcbiIpOwogCkBA IC00OTksNyArNDM3LDcgQEAgZ3J1Yl92ZXJpZnlfc2lnbmF0dXJlX2luaXQgKHN0cnVjdCBncnVi X3B1YmtleV9jb250ZXh0ICpjdHh0LCBncnViX2ZpbGVfdCBzaWcpCiAgIGlmICghY3R4dC0+aGFz aF9jb250ZXh0KQogICAgIHJldHVybiBncnViX2Vycm5vOwogCi0gIGN0eHQtPmhhc2gtPmluaXQg KGN0eHQtPmhhc2hfY29udGV4dCk7CisgIGN0eHQtPmhhc2gtPmluaXQgKGN0eHQtPmhhc2hfY29u dGV4dCwgMCk7CiAgIGN0eHQtPnNpZyA9IHNpZzsKIAogICByZXR1cm4gR1JVQl9FUlJfTk9ORTsK QEAgLTUyOCw3ICs0NjYsNiBAQCBncnViX3ZlcmlmeV9zaWduYXR1cmVfcmVhbCAoc3RydWN0IGdy dWJfcHVia2V5X2NvbnRleHQgKmN0eHQsCiAgIGdydWJfdWludDE2X3QgdW5oYXNoZWRfc3ViOwog ICBncnViX3NzaXplX3QgcjsKICAgZ3J1Yl91aW50OF90IGhhc2hfc3RhcnRbMl07Ci0gIGdjcnlf bXBpX3QgaG1waTsKICAgZ3J1Yl91aW50NjRfdCBrZXlpZCA9IDA7CiAgIHN0cnVjdCBncnViX3B1 YmxpY19zdWJrZXkgKnNrOwogCkBAIC02MjAsNyArNTU3LDcgQEAgZ3J1Yl92ZXJpZnlfc2lnbmF0 dXJlX3JlYWwgKHN0cnVjdCBncnViX3B1YmtleV9jb250ZXh0ICpjdHh0LAogICAgICAgZ3J1Yl9t ZW1jcHkgKHJlYWRidWYsICZsLCBzaXplb2YgKGwpKTsKICAgICAgIGdydWJfZHByaW50ZiAoImNy eXB0IiwgImFsaXZlXG4iKTsKIAotICAgICAgaWYgKGdjcnlfbXBpX3NjYW4gKCZtcGlzW2ldLCBH Q1JZTVBJX0ZNVF9QR1AsCisgICAgICBpZiAoX2djcnlfbXBpX3NjYW4gKCZtcGlzW2ldLCBHQ1JZ TVBJX0ZNVF9QR1AsCiAJCQkgcmVhZGJ1ZiwgbGIgKyBzaXplb2YgKGdydWJfdWludDE2X3QpLCAw KSkKIAlnb3RvIGZhaWw7CiAgICAgICBncnViX2RwcmludGYgKCJjcnlwdCIsICJhbGl2ZVxuIik7 CkBAIC02MzgsOCArNTc1LDYgQEAgZ3J1Yl92ZXJpZnlfc2lnbmF0dXJlX3JlYWwgKHN0cnVjdCBn cnViX3B1YmtleV9jb250ZXh0ICpjdHh0LAogICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICBp ZiAocGthbGdvc1twa10ucGFkICgmaG1waSwgaHZhbCwgY3R4dC0+aGFzaCwgc2spKQotICAgIGdv dG8gZmFpbDsKICAgaWYgKCEqcGthbGdvc1twa10uYWxnbykKICAgICB7CiAgICAgICBncnViX2Rs X2xvYWQgKHBrYWxnb3NbcGtdLm1vZHVsZSk7CkBAIC02NTIsNyArNTg3LDI0IEBAIGdydWJfdmVy aWZ5X3NpZ25hdHVyZV9yZWFsIChzdHJ1Y3QgZ3J1Yl9wdWJrZXlfY29udGV4dCAqY3R4dCwKIAkJ ICBwa2FsZ29zW3BrXS5tb2R1bGUpOwogICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgaWYgKCgq cGthbGdvc1twa10uYWxnbyktPnZlcmlmeSAoMCwgaG1waSwgbXBpcywgc2stPm1waXMsIDAsIDAp KQorCisgIGdjcnlfc2V4cF90IGhzZXhwLCBwdWJrZXksIHNpZzsKKyAgZ3J1Yl9zaXplX3QgZXJy b2Y7CisKKyAgaWYoX2djcnlfc2V4cF9idWlsZCgmaHNleHAsICZlcnJvZiwgIihkYXRhIChmbGFn cyAlcykgKGhhc2ggJXMgJWIpKSIsIHBrYWxnb3NbcGtdLnBhZGRpbmcsIGN0eHQtPmhhc2gtPm5h bWUsIGN0eHQtPmhhc2gtPm1kbGVuLCBodmFsKSkKKyAgICBnb3RvIGZhaWw7CisKKyAgaWYoX2dj cnlfc2V4cF9idWlsZCgmcHVia2V5LCAmZXJyb2YsIHBrYWxnb3NbcGtdLnB1YnNleHAsIHNrLT5t cGlzWzBdLCBzay0+bXBpc1sxXSwgc2stPm1waXNbMl0sIHNrLT5tcGlzWzNdKSkKKyAgICBnb3Rv IGZhaWw7CisKKyAgaWYoX2djcnlfc2V4cF9idWlsZCgmc2lnLCAmZXJyb2YsIHBrYWxnb3NbcGtd LnNpZ3NleHAsIG1waXNbMF0sIG1waXNbMV0pKQorICAgIGdvdG8gZmFpbDsKKworICBfZ2NyeV9z ZXhwX2R1bXAoc2lnKTsKKyAgX2djcnlfc2V4cF9kdW1wKGhzZXhwKTsKKyAgX2djcnlfc2V4cF9k dW1wKHB1YmtleSk7CisKKyAgaWYgKCgqcGthbGdvc1twa10uYWxnbyktPnZlcmlmeSAoc2lnLCBo c2V4cCwgcHVia2V5KSkKICAgICBnb3RvIGZhaWw7CiAKICAgZ3J1Yl9mcmVlIChyZWFkYnVmKTsK ZGlmZiAtLWdpdCBhL2dydWItY29yZS9jb21tYW5kcy94bnVfdXVpZC5jIGIvZ3J1Yi1jb3JlL2Nv bW1hbmRzL3hudV91dWlkLmMKaW5kZXggYWU0YjNhNDE1Li4xNDA2YzQzZjUgMTAwNjQ0Ci0tLSBh L2dydWItY29yZS9jb21tYW5kcy94bnVfdXVpZC5jCisrKyBiL2dydWItY29yZS9jb21tYW5kcy94 bnVfdXVpZC5jCkBAIC02OCw3ICs2OCw3IEBAIGdydWJfY21kX3hudV91dWlkIChncnViX2NvbW1h bmRfdCBjbWQgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLAogICBjdHggPSBncnViX3phbGxvYyAo R1JVQl9NRF9NRDUtPmNvbnRleHRzaXplKTsKICAgaWYgKCFjdHgpCiAgICAgcmV0dXJuIGdydWJf ZXJybm87Ci0gIEdSVUJfTURfTUQ1LT5pbml0IChjdHgpOworICBHUlVCX01EX01ENS0+aW5pdCAo Y3R4LCAwKTsKICAgR1JVQl9NRF9NRDUtPndyaXRlIChjdHgsIGhhc2hfcHJlZml4LCBzaXplb2Yg KGhhc2hfcHJlZml4KSk7CiAgIEdSVUJfTURfTUQ1LT53cml0ZSAoY3R4LCAmc2VyaWFsLCBzaXpl b2YgKHNlcmlhbCkpOwogICBHUlVCX01EX01ENS0+ZmluYWwgKGN0eCk7CmRpZmYgLS1naXQgYS9n cnViLWNvcmUvZGlzay9jcnlwdG9kaXNrLmMgYi9ncnViLWNvcmUvZGlzay9jcnlwdG9kaXNrLmMK aW5kZXggN2E3ODVhNDljLi45ODM1MmE0MzIgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9kaXNrL2Ny eXB0b2Rpc2suYworKysgYi9ncnViLWNvcmUvZGlzay9jcnlwdG9kaXNrLmMKQEAgLTMwMiw3ICsz MDIsNyBAQCBncnViX2NyeXB0b2Rpc2tfZW5kZWNyeXB0IChzdHJ1Y3QgZ3J1Yl9jcnlwdG9kaXNr ICpkZXYsCiAJICAgICAgcmV0dXJuIEdQR19FUlJfT1VUX09GX01FTU9SWTsKIAogCSAgICB0bXAg PSBncnViX2NwdV90b19sZTY0IChzZWN0b3IgPDwgbG9nX3NlY3Rvcl9zaXplKTsKLQkgICAgZGV2 LT5pdl9oYXNoLT5pbml0IChjdHgpOworCSAgICBkZXYtPml2X2hhc2gtPmluaXQgKGN0eCwgMCk7 CiAJICAgIGRldi0+aXZfaGFzaC0+d3JpdGUgKGN0eCwgZGV2LT5pdl9wcmVmaXgsIGRldi0+aXZf cHJlZml4X2xlbik7CiAJICAgIGRldi0+aXZfaGFzaC0+d3JpdGUgKGN0eCwgJnRtcCwgc2l6ZW9m ICh0bXApKTsKIAkgICAgZGV2LT5pdl9oYXNoLT5maW5hbCAoY3R4KTsKZGlmZiAtLWdpdCBhL2dy dWItY29yZS9pby9nemlvLmMgYi9ncnViLWNvcmUvaW8vZ3ppby5jCmluZGV4IGNiN2ViMWZlMy4u ZmE5ZDk0MmIyIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvaW8vZ3ppby5jCisrKyBiL2dydWItY29y ZS9pby9nemlvLmMKQEAgLTEyMDEsNyArMTIwMSw3IEBAIGluaXRpYWxpemVfdGFibGVzIChncnVi X2d6aW9fdCBnemlvKQogICBnemlvLT50ZCA9IE5VTEw7CiAKICAgaWYgKGd6aW8tPmhjb250ZXh0 KQotICAgIGd6aW8tPmhkZXNjLT5pbml0KGd6aW8tPmhjb250ZXh0KTsKKyAgICBnemlvLT5oZGVz Yy0+aW5pdChnemlvLT5oY29udGV4dCwgMCk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3Jl L2lvL2x6b3Bpby5jIGIvZ3J1Yi1jb3JlL2lvL2x6b3Bpby5jCmluZGV4IGE3ZDQ0MjU0My4uY2Vh OTQyMzA4IDEwMDY0NAotLS0gYS9ncnViLWNvcmUvaW8vbHpvcGlvLmMKKysrIGIvZ3J1Yi1jb3Jl L2lvL2x6b3Bpby5jCkBAIC0zNDUsNyArMzQ1LDcgQEAgdGVzdF9oZWFkZXIgKGdydWJfZmlsZV90 IGZpbGUpCiAgICAgaWYgKCEgY29udGV4dCkKICAgICAgIHJldHVybiAwOwogCi0gICAgaGNoZWNr LT5pbml0KGNvbnRleHQpOworICAgIGhjaGVjay0+aW5pdChjb250ZXh0LCAwKTsKIAogICAgIC8q IE1BR0lDIGlzIG5vdCBpbmNsdWRlZCBpbiBjaGVjayBjYWxjdWxhdGlvbi4gICovCiAgICAgaGNo ZWNrLT53cml0ZShjb250ZXh0LCAmaGVhZGVyLmx6b3BfdmVyc2lvbiwgc2l6ZW9mKGhlYWRlcikt IExaT1BfTUFHSUNfU0laRSk7CmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2FkbGVyMzIuYyBi L2dydWItY29yZS9saWIvYWRsZXIzMi5jCmluZGV4IDQzYjY4YWY2Mi4uZjg0OWNjZWU2IDEwMDY0 NAotLS0gYS9ncnViLWNvcmUvbGliL2FkbGVyMzIuYworKysgYi9ncnViLWNvcmUvbGliL2FkbGVy MzIuYwpAQCAtMjksMTAgKzI5LDEyIEBAIHN0cnVjdCBhZGxlcjMyX2NvbnRleHQKIH07CiAKIHN0 YXRpYyB2b2lkCi1hZGxlcjMyX2luaXQgKHZvaWQgKmNvbnRleHQpCithZGxlcjMyX2luaXQgKHZv aWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCBmbGFncykKIHsKICAgc3RydWN0IGFkbGVyMzJfY29u dGV4dCAqY3R4ID0gY29udGV4dDsKIAorICAodm9pZCkgZmxhZ3M7CisKICAgY3R4LT5hID0gMTsK ICAgY3R4LT5iID0gMDsKIH0KQEAgLTgxLDEzICs4MywyMiBAQCBhZGxlcjMyX3JlYWQgKHZvaWQg KmNvbnRleHQpCiAKIHN0YXRpYyBnY3J5X21kX3NwZWNfdCBzcGVjX2FkbGVyMzIgPQogICB7Ci0g ICAgIkFETEVSMzIiLCAwLCAwLCAwLCA0LAotICAgIGFkbGVyMzJfaW5pdCwgYWRsZXIzMl93cml0 ZSwgYWRsZXIzMl9maW5hbCwgYWRsZXIzMl9yZWFkLAotICAgIHNpemVvZiAoc3RydWN0IGFkbGVy MzJfY29udGV4dCksCisgICAgLmFsZ28gPSBHQ1JZX01EX0FETEVSMzIsCisgICAgLmZsYWdzID0g ey5kaXNhYmxlZCA9IDAsIC5maXBzID0gMH0sCisgICAgLm5hbWUgPSAiQURMRVIzMiIsCisgICAg LmFzbm9pZCA9IE5VTEwsCisgICAgLmFzbmxlbiA9IDAsCisgICAgLm9pZHMgPSBOVUxMLAorICAg IC5tZGxlbiA9IDQsCisgICAgLmluaXQgPSBhZGxlcjMyX2luaXQsCisgICAgLndyaXRlID0gYWRs ZXIzMl93cml0ZSwKKyAgICAuZmluYWwgPSBhZGxlcjMyX2ZpbmFsLAorICAgIC5yZWFkID0gYWRs ZXIzMl9yZWFkLAorICAgIC5jb250ZXh0c2l6ZSA9IHNpemVvZiAoc3RydWN0IGFkbGVyMzJfY29u dGV4dCksCisgICAgLmJsb2Nrc2l6ZSA9IDY0LAogI2lmZGVmIEdSVUJfVVRJTAogICAgIC5tb2Ru YW1lID0gImFkbGVyMzIiLAogI2VuZGlmCi0gICAgLmJsb2Nrc2l6ZSA9IDY0CiAgIH07CiAKIApk aWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi9jcmM2NC5jIGIvZ3J1Yi1jb3JlL2xpYi9jcmM2NC5j CmluZGV4IDQ5NjBmM2Y4OS4uYzIzMWZhOTdjIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvbGliL2Ny YzY0LmMKKysrIGIvZ3J1Yi1jb3JlL2xpYi9jcmM2NC5jCkBAIC02MSw4ICs2MSwxMCBAQCBpbml0 X2NyYzY0X3RhYmxlICh2b2lkKQogfQogCiBzdGF0aWMgdm9pZAotY3JjNjRfaW5pdCAodm9pZCAq Y29udGV4dCkKK2NyYzY0X2luaXQgKHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCBmbGFncykK IHsKKyAgKHZvaWQpIGZsYWdzOworCiAgIGlmICghIGNyYzY0X3RhYmxlWzFdKQogICAgIGluaXRf Y3JjNjRfdGFibGUgKCk7CiAgICooZ3J1Yl91aW50NjRfdCAqKSBjb250ZXh0ID0gMDsKQEAgLTk3 LDEwICs5OSwyMiBAQCBjcmM2NF9maW5hbCAodm9pZCAqY29udGV4dCBfX2F0dHJpYnV0ZV9fICgo dW51c2VkKSkpCiAKIGdjcnlfbWRfc3BlY190IF9nY3J5X2RpZ2VzdF9zcGVjX2NyYzY0ID0KICAg ewotICAgICJDUkM2NCIsIDAsIDAsIDAsIDgsCi0gICAgY3JjNjRfaW5pdCwgY3JjNjRfd3JpdGUs IGNyYzY0X2ZpbmFsLCBjcmM2NF9yZWFkLAotICAgIHNpemVvZiAoZ3J1Yl91aW50NjRfdCksCi0g ICAgLmJsb2Nrc2l6ZSA9IDY0CisgICAgLmFsZ28gPSBHQ1JZX01EX0NSQzY0LAorICAgIC5mbGFn cyA9IHsuZGlzYWJsZWQgPSAwLCAuZmlwcyA9IDB9LAorICAgIC5uYW1lID0gIkNSQzY0IiwKKyAg ICAuYXNub2lkID0gTlVMTCwKKyAgICAuYXNubGVuID0gMCwKKyAgICAub2lkcyA9IE5VTEwsCisg ICAgLm1kbGVuID0gOCwKKyAgICAuaW5pdCA9IGNyYzY0X2luaXQsCisgICAgLndyaXRlID0gY3Jj NjRfd3JpdGUsCisgICAgLmZpbmFsID0gY3JjNjRfZmluYWwsCisgICAgLnJlYWQgPSBjcmM2NF9y ZWFkLAorICAgIC5jb250ZXh0c2l6ZSA9IHNpemVvZiAoZ3J1Yl91aW50NjRfdCksCisgICAgLmJs b2Nrc2l6ZSA9IDY0LAorI2lmZGVmIEdSVUJfVVRJTAorICAgIC5tb2RuYW1lID0gImNyYzY0IiwK KyNlbmRpZgogICB9OwogCiBHUlVCX01PRF9JTklUKGNyYzY0KQpkaWZmIC0tZ2l0IGEvZ3J1Yi1j b3JlL2xpYi9jcnlwdG8uYyBiL2dydWItY29yZS9saWIvY3J5cHRvLmMKaW5kZXggMzk2Zjc2NDEw Li5kZDYwZGQ0YWMgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIvY3J5cHRvLmMKKysrIGIvZ3J1 Yi1jb3JlL2xpYi9jcnlwdG8uYwpAQCAtMzcsNiArMzcsOCBAQCBzdHJ1Y3QgZ3J1Yl9jcnlwdG9f aG1hY19oYW5kbGUKIHN0YXRpYyBnY3J5X2NpcGhlcl9zcGVjX3QgKmdydWJfY2lwaGVycyA9IE5V TEw7CiBzdGF0aWMgZ2NyeV9tZF9zcGVjX3QgKmdydWJfZGlnZXN0cyA9IE5VTEw7CiAKK2ludCBf Z2NyeV9ub19maXBzX21vZGVfcmVxdWlyZWQgPSAxOworCiB2b2lkICgqZ3J1Yl9jcnlwdG9fYXV0 b2xvYWRfaG9vaykgKGNvbnN0IGNoYXIgKm5hbWUpID0gTlVMTDsKIAogLyogQmFzZWQgb24gbGli Z2NyeXB0LTEuNC40L3NyYy9taXNjLmMuICAqLwpAQCAtNTYsNiArNTgsMTcgQEAgX2djcnlfYnVy bl9zdGFjayAoaW50IHNpemUpCiAgIGdydWJfYnVybl9zdGFjayAoc2l6ZSk7CiB9CiAKK3ZvaWQK K19fZ2NyeV9idXJuX3N0YWNrICh1bnNpZ25lZCBpbnQgc2l6ZSkKK3sKKyAgZ3J1Yl9idXJuX3N0 YWNrIChzaXplKTsKK30KKwordm9pZAorX19nY3J5X2J1cm5fc3RhY2tfZHVtbXkgKHZvaWQpCit7 Cit9CisKIHZvaWQgX19hdHRyaWJ1dGVfXyAoKG5vcmV0dXJuKSkKIF9nY3J5X2Fzc2VydF9mYWls ZWQgKGNvbnN0IGNoYXIgKmV4cHIsIGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLAogCQkgICAg IGNvbnN0IGNoYXIgKmZ1bmMpCkBAIC02NCw2ICs3NywxMiBAQCBfZ2NyeV9hc3NlcnRfZmFpbGVk IChjb25zdCBjaGFyICpleHByLCBjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwKICAgZ3J1Yl9m YXRhbCAoImFzc2VydGlvbiAlcyBhdCAlczolZCAoJXMpIGZhaWxlZFxuIiwgZXhwciwgZmlsZSwg bGluZSwgZnVuYyk7CiB9CiAKK3ZvaWQKK19nY3J5X2J1ZyggY29uc3QgY2hhciAqZmlsZSwgaW50 IGxpbmUsIGNvbnN0IGNoYXIgKmZ1bmMgKQoreworICAgIGdydWJfZmF0YWwgKCIuLi4gdGhpcyBp cyBhIGJ1ZyAoJXM6JWQ6JXMpXG4iLCBmaWxlLCBsaW5lLCBmdW5jKTsKK30KKwogCiB2b2lkIF9n Y3J5X2xvZ19lcnJvciAoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CkBAIC04Myw2ICsxMDIsMzYg QEAgdm9pZCBfZ2NyeV9sb2dfZXJyb3IgKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogICAgIH0KIH0K IAordm9pZCBfZ2NyeV9sb2dfaW5mbyAoY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisgIHZhX2xp c3QgYXJnczsKKyAgY29uc3QgY2hhciAqZGVidWcgPSBncnViX2Vudl9nZXQgKCJkZWJ1ZyIpOwor CisgIGlmICghIGRlYnVnKQorICAgIHJldHVybjsKKworICBpZiAoZ3J1Yl9zdHJ3b3JkIChkZWJ1 ZywgImFsbCIpIHx8IGdydWJfc3Ryd29yZCAoZGVidWcsICJnY3J5cHQiKSkKKyAgICB7CisgICAg ICBncnViX3ByaW50ZiAoImdjcnlwdCBpbmZvOiAiKTsKKyAgICAgIHZhX3N0YXJ0IChhcmdzLCBm bXQpOworICAgICAgZ3J1Yl92cHJpbnRmIChmbXQsIGFyZ3MpOworICAgICAgdmFfZW5kIChhcmdz KTsKKyAgICAgIGdydWJfcmVmcmVzaCAoKTsKKyAgICB9Cit9CisKK3ZvaWQKK19nY3J5X2Zhc3Rf d2lwZW1lbW9yeTIgKHZvaWQgKnB0ciwgaW50IHNldCwgZ3J1Yl9zaXplX3QgbGVuKQoreworICBn cnViX21lbXNldChwdHIsIHNldCwgbGVuKTsKK30KKwordm9pZAorX2djcnlfZmFzdF93aXBlbWVt b3J5ICh2b2lkICpwdHIsIGdydWJfc2l6ZV90IGxlbikKK3sKKyAgZ3J1Yl9tZW1zZXQocHRyLCAw LCBsZW4pOworfQorCiB2b2lkCiBncnViX2NpcGhlcl9yZWdpc3RlciAoZ2NyeV9jaXBoZXJfc3Bl Y190ICpjaXBoZXIpCiB7CkBAIC0xMjksNyArMTc4LDcgQEAgZ3J1Yl9jcnlwdG9faGFzaCAoY29u c3QgZ2NyeV9tZF9zcGVjX3QgKmhhc2gsIHZvaWQgKm91dCwgY29uc3Qgdm9pZCAqaW4sCiAKICAg aWYgKGhhc2gtPmNvbnRleHRzaXplID4gc2l6ZW9mIChjdHgpKQogICAgIGdydWJfZmF0YWwgKCJU b28gbGFyZ2UgbWQgY29udGV4dCIpOwotICBoYXNoLT5pbml0ICgmY3R4KTsKKyAgaGFzaC0+aW5p dCAoJmN0eCwgMCk7CiAgIGhhc2gtPndyaXRlICgmY3R4LCBpbiwgaW5sZW4pOwogICBoYXNoLT5m aW5hbCAoJmN0eCk7CiAgIGdydWJfbWVtY3B5IChvdXQsIGhhc2gtPnJlYWQgKCZjdHgpLCBoYXNo LT5tZGxlbik7CkBAIC0xNTMsNiArMjAyLDkxIEBAIGdydWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9u YW1lIChjb25zdCBjaGFyICpuYW1lKQogICAgIH0KIH0KIAorY29uc3QgZ2NyeV9tZF9zcGVjX3Qg KgorZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X29pZCAoY29uc3QgY2hhciAqb2lkKQoreworICBj b25zdCBnY3J5X21kX3NwZWNfdCAqbWQ7CisKKyAgaWYgKCFvaWQpCisgICAgcmV0dXJuIE5VTEw7 CisKKyAgaWYgKGdydWJfc3RybmNtcCAob2lkLCAib2lkLiIsIDQpID09IDAgfHwgZ3J1Yl9zdHJu Y21wIChvaWQsICJPSUQuIiwgNCkgPT0gMCkKKyAgICBvaWQgKz0gNDsKKworCisgIGZvciAobWQg PSBncnViX2RpZ2VzdHM7IG1kOyBtZCA9IG1kLT5uZXh0KQorICAgIHsKKyAgICAgIGNvbnN0IGdj cnlfbWRfb2lkX3NwZWNfdCAqb2lkX3NwZWNzID0gbWQtPm9pZHM7CisgICAgICBpZiAob2lkX3Nw ZWNzKQorICAgICAgICB7CisgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IG9pZF9zcGVjc1tqXS5v aWRzdHJpbmc7IGorKykKKyAgICAgICAgICAgIGlmIChncnViX3N0cmNhc2VjbXAgKG9pZCwgb2lk X3NwZWNzW2pdLm9pZHN0cmluZykgPT0gMCkKKyAgICAgICAgICAgICAgcmV0dXJuIG1kOworICAg ICAgICB9CisgICAgfQorCisgIHJldHVybiBOVUxMOworfQorCitzdGF0aWMgY29uc3QgY2hhciAq bWRfYWxnb3NbXSA9IHsKKyAgICBbMV0gPSAiTUQ1IiwKKyAgICBbMl0gPSAiU0hBMSIsCisgICAg WzNdID0gIlJJUEVNRDE2MCIsCisgICAgWzZdID0gIlRJR0VSIiwKKyAgICBbOF0gPSAiU0hBMjU2 IiwKKyAgICBbOV0gPSAiU0hBMzg0IiwKKyAgICBbMTBdID0gIlNIQTUxMiIsCisgICAgWzExXSA9 ICJTSEEyMjQiLAorCisgICAgWzMwMV0gPSAiTUQ0IiwKKyAgICBbMzAyXSA9ICJDUkMzMiIsCisg ICAgWzMwM10gPSAiQ1JDMzJSRkMxNTEwIiwKKyAgICBbMzA0XSA9ICJDUkMyNFJGQzI0NDAiLAor ICAgIFszMDVdID0gIldISVJMUE9PTCIsCisgICAgWzMwNl0gPSAiVElHRVIxIiwKKyAgICBbMzA3 XSA9ICJUSUdFUjIiLAorICAgIFszMDhdID0gIkdPU1RSMzQxMV85NCIsCisgICAgWzMwOV0gPSAi U1RSSUJPRzI1NiIsCisgICAgWzMxMF0gPSAiU1RSSUJPRzUxMiIsCisgICAgWzMxMV0gPSAiR09T VFIzNDExX0NQIiwKKyAgICBbMzEyXSA9ICJTSEEzLTIyNCIsCisgICAgWzMxM10gPSAiU0hBMy0y NTYiLAorICAgIFszMTRdID0gIlNIQTMtMzg0IiwKKyAgICBbMzE1XSA9ICJTSEEzLTUxMiIsCisg ICAgWzMxNl0gPSAiU0hBS0UxMjgiLAorICAgIFszMTddID0gIlNIQUtFMjU2IiwKKyAgICBbMzE4 XSA9ICJCTEFLRTJCXzUxMiIsCisgICAgWzMxOV0gPSAiQkxBS0UyQl8zODQiLAorICAgIFszMjBd ID0gIkJMQUtFMkJfMjU2IiwKKyAgICBbMzIxXSA9ICJCTEFLRTJCXzE2MCIsCisgICAgWzMyMl0g PSAiQkxBS0UyU18yNTYiLAorICAgIFszMjNdID0gIkJMQUtFMlNfMjI0IiwKKyAgICBbMzI0XSA9 ICJCTEFLRTJTXzE2MCIsCisgICAgWzMyNV0gPSAiQkxBS0UyU18xMjgiLAorICAgIFszMjZdID0g IlNNMyIsCisgICAgWzMyN10gPSAiU0hBNTEyXzI1NiIsCisgICAgWzMyOF0gPSAiU0hBNTEyXzIy NCIsCit9OworCisKK2NvbnN0IGdjcnlfbWRfc3BlY190ICoKK2dydWJfY3J5cHRvX2xvb2t1cF9t ZF9ieV9hbGdvIChpbnQgYWxnbykKK3sKKyAgY29uc3QgZ2NyeV9tZF9zcGVjX3QgKm1kOworICBp bnQgZmlyc3QgPSAxOworICB3aGlsZSAoMSkKKyAgICB7CisgICAgICBmb3IgKG1kID0gZ3J1Yl9k aWdlc3RzOyBtZDsgbWQgPSBtZC0+bmV4dCkKKwlpZiAoYWxnbyA9PSBtZC0+YWxnbykKKwkgIHJl dHVybiBtZDsKKyAgICAgIGlmIChncnViX2NyeXB0b19hdXRvbG9hZF9ob29rICYmIGZpcnN0ICYm IGFsZ28gPiAwICYmIGFsZ28gPCAoaW50KUFSUkFZX1NJWkUobWRfYWxnb3MpICYmIG1kX2FsZ29z W2FsZ29dKSB7CisJZ3J1Yl9jcnlwdG9fYXV0b2xvYWRfaG9vayAobWRfYWxnb3NbYWxnb10pOwor ICAgICAgfSBlbHNlCisJcmV0dXJuIE5VTEw7CisgICAgICBmaXJzdCA9IDA7CisgICAgfQorfQor CiBjb25zdCBnY3J5X2NpcGhlcl9zcGVjX3QgKgogZ3J1Yl9jcnlwdG9fbG9va3VwX2NpcGhlcl9i eV9uYW1lIChjb25zdCBjaGFyICpuYW1lKQogewpAQCAtMTk2LDcgKzMzMCw5IEBAIGdydWJfY3J5 cHRvX2NpcGhlcl9zZXRfa2V5IChncnViX2NyeXB0b19jaXBoZXJfaGFuZGxlX3QgY2lwaGVyLAog CQkJICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKIAkJCSAgICB1bnNpZ25lZCBrZXlsZW4p CiB7Ci0gIHJldHVybiBjaXBoZXItPmNpcGhlci0+c2V0a2V5IChjaXBoZXItPmN0eCwga2V5LCBr ZXlsZW4pOworICAvKiBUT0RPOiBGaXggdGhpcy4gSXQncyB1Z2x5IGFzIGhlbGwuICAqLworICB2 b2lkICpidWxrX29wc1sxMDBdOworICByZXR1cm4gY2lwaGVyLT5jaXBoZXItPnNldGtleSAoY2lw aGVyLT5jdHgsIGtleSwga2V5bGVuLCAodm9pZCAqKSBidWxrX29wcyk7CiB9CiAKIGdjcnlfZXJy X2NvZGVfdApAQCAtMzQzLDcgKzQ3OSw3IEBAIGdydWJfY3J5cHRvX2htYWNfaW5pdCAoY29uc3Qg c3RydWN0IGdjcnlfbWRfc3BlYyAqbWQsCiAgIGdydWJfZnJlZSAoaGVscGtleSk7CiAgIGhlbHBr ZXkgPSBOVUxMOwogCi0gIG1kLT5pbml0IChjdHgpOworICBtZC0+aW5pdCAoY3R4LCAwKTsKIAog ICBtZC0+d3JpdGUgKGN0eCwgaXBhZCwgbWQtPmJsb2Nrc2l6ZSk7IC8qIGlubmVyIHBhZCAqLwog ICBncnViX21lbXNldCAoaXBhZCwgMCwgbWQtPmJsb2Nrc2l6ZSk7CkBAIC0zOTAsNyArNTI2LDcg QEAgZ3J1Yl9jcnlwdG9faG1hY19maW5pIChzdHJ1Y3QgZ3J1Yl9jcnlwdG9faG1hY19oYW5kbGUg KmhuZCwgdm9pZCAqb3V0KQogICBobmQtPm1kLT5yZWFkIChobmQtPmN0eCk7CiAgIHAgPSBobmQt Pm1kLT5yZWFkIChobmQtPmN0eCk7CiAKLSAgaG5kLT5tZC0+aW5pdCAoY3R4Mik7CisgIGhuZC0+ bWQtPmluaXQgKGN0eDIsIDApOwogICBobmQtPm1kLT53cml0ZSAoY3R4MiwgaG5kLT5vcGFkLCBo bmQtPm1kLT5ibG9ja3NpemUpOwogICBobmQtPm1kLT53cml0ZSAoY3R4MiwgcCwgaG5kLT5tZC0+ bWRsZW4pOwogICBobmQtPm1kLT5maW5hbCAoY3R4Mik7CkBAIC00MzMsMTkgKzU2OSwxMDYgQEAg Z3J1Yl9jcnlwdG9fZ2NyeV9lcnJvciAoZ2NyeV9lcnJfY29kZV90IGluKQogICByZXR1cm4gR1JV Ql9BQ0NFU1NfREVOSUVEOwogfQogCisKKy8qCisgKiBDb21wYXJlIGJ5dGUgYXJyYXlzIG9mIGxl bmd0aCBMRU4sIHJldHVybiAxIGlmIGl0J3Mgbm90IHNhbWUsCisgKiAwLCBvdGhlcndpc2UuCisg Ki8KIGludAotZ3J1Yl9jcnlwdG9fbWVtY21wIChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpi LCBncnViX3NpemVfdCBuKQorZ3J1Yl9jcnlwdG9fbWVtY21wIChjb25zdCB2b2lkICpiMSwgY29u c3Qgdm9pZCAqYjIsIGdydWJfc2l6ZV90IGxlbikKIHsKLSAgcmVnaXN0ZXIgZ3J1Yl9zaXplX3Qg Y291bnRlciA9IDA7Ci0gIGNvbnN0IGdydWJfdWludDhfdCAqcGEsICpwYjsKKyAgY29uc3QgZ3J1 Yl91aW50OF90ICphID0gYjE7CisgIGNvbnN0IGdydWJfdWludDhfdCAqYiA9IGIyOworICBpbnQg YWIsIGJhOworICBncnViX3NpemVfdCBpOwogCi0gIGZvciAocGEgPSBhLCBwYiA9IGI7IG47IHBh KyssIHBiKyssIG4tLSkKKyAgLyogQ29uc3RhbnQtdGltZSBjb21wYXJlLiAqLworICBmb3IgKGkg PSAwLCBhYiA9IDAsIGJhID0gMDsgaSA8IGxlbjsgaSsrKQogICAgIHsKLSAgICAgIGlmICgqcGEg IT0gKnBiKQotCWNvdW50ZXIrKzsKKyAgICAgIC8qIElmIGFbaV0gIT0gYltpXSwgZWl0aGVyIGFi IG9yIGJhIHdpbGwgYmUgbmVnYXRpdmUuICovCisgICAgICBhYiB8PSBhW2ldIC0gYltpXTsKKyAg ICAgIGJhIHw9IGJbaV0gLSBhW2ldOwogICAgIH0KIAotICByZXR1cm4gISFjb3VudGVyOworICAv KiAnYWIgfCBiYScgaXMgbmVnYXRpdmUgd2hlbiBidWZmZXJzIGFyZSBub3QgZXF1YWwsIGV4dHJh Y3Qgc2lnbiBiaXQuICAqLworICByZXR1cm4gKCh1bnNpZ25lZCBpbnQpKGFiIHwgYmEpID4+IChz aXplb2YodW5zaWduZWQgaW50KSAqIDggLSAxKSkgJiAxOworfQorCisKK3ZvaWQgKgorX2djcnlf bWFsbG9jX3NlY3VyZSAoZ3J1Yl9zaXplX3QgbikKK3sKKyAgcmV0dXJuIGdydWJfbWFsbG9jKG4p OworfQorCit2b2lkICoKK19nY3J5X21hbGxvYyAoZ3J1Yl9zaXplX3QgbikKK3sKKyAgcmV0dXJu IGdydWJfbWFsbG9jKG4pOworfQorCit2b2lkICoKK19nY3J5X3htYWxsb2MoZ3J1Yl9zaXplX3Qg bikKK3sKKyAgdm9pZCAqcmV0ID0gZ3J1Yl9tYWxsb2Mobik7CisgIGlmIChyZXQgPT0gTlVMTCkK KyAgICBncnViX2ZhdGFsKCJfZ2NyeV94bWFsbG9jIGZhaWxlZCIpOworICByZXR1cm4gcmV0Owor fQorCit2b2lkICoKK19nY3J5X3htYWxsb2Nfc2VjdXJlKGdydWJfc2l6ZV90IG4pCit7CisgIHZv aWQgKnJldCA9IGdydWJfbWFsbG9jKG4pOworICBpZiAocmV0ID09IE5VTEwpCisgICAgZ3J1Yl9m YXRhbCgiX2djcnlfeG1hbGxvY19zZWN1cmUgZmFpbGVkIik7CisgIHJldHVybiByZXQ7Cit9CisK K3ZvaWQgX2djcnlfZnJlZSAodm9pZCAqcCkKK3sKKyAgZ3J1Yl9mcmVlIChwKTsKK30KKwordm9p ZCAqCitfZ2NyeV94cmVhbGxvYyAodm9pZCAqYSwgZ3J1Yl9zaXplX3QgbikKK3sKKyAgdm9pZCAq cmV0ID0gZ3J1Yl9yZWFsbG9jKGEsIG4pOworICBpZiAocmV0ID09IE5VTEwpCisgICAgZ3J1Yl9m YXRhbCgiX2djcnlfeHJlYWxsb2MgZmFpbGVkIik7CisgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQg KgorX2djcnlfeGNhbGxvYyAoZ3J1Yl9zaXplX3QgbiwgZ3J1Yl9zaXplX3QgbSkKK3sKKyAgdm9p ZCAqcmV0ID0gZ3J1Yl9jYWxsb2MobiwgbSk7CisgIGlmIChyZXQgPT0gTlVMTCkKKyAgICBncnVi X2ZhdGFsKCJfZ2NyeV94Y2FsbG9jIGZhaWxlZCIpOworICByZXR1cm4gcmV0OworfQorCit2b2lk ICoKK19nY3J5X3hjYWxsb2Nfc2VjdXJlIChncnViX3NpemVfdCBuLCBncnViX3NpemVfdCBtKQor eworICB2b2lkICpyZXQgPSBncnViX2NhbGxvYyhuLCBtKTsKKyAgaWYgKHJldCA9PSBOVUxMKQor ICAgIGdydWJfZmF0YWwoIl9nY3J5X3hjYWxsb2Nfc2VjdXJlIGZhaWxlZCIpOworICByZXR1cm4g cmV0OworfQorCisKK2ludAorX2djcnlfaXNfc2VjdXJlIChjb25zdCB2b2lkICphKQoreworICAo dm9pZCkgYTsKKworICByZXR1cm4gMDsKK30KKwordm9pZCBfZ2NyeV9kaXZpZGVfYnlfemVybyAo dm9pZCkKK3sKKyAgZ3J1Yl9mYXRhbCgiZ2NyeXB0IGRpdmlzaW9uIGJ5IHplcm8iKTsKIH0KIAog I2lmbmRlZiBHUlVCX1VUSUwKZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvbGliZ2NyeXB0LXBh dGNoZXMvMDFfbWQucGF0Y2ggYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC1wYXRjaGVzLzAxX21k LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNjZlNDQ4NWI4Ci0t LSAvZGV2L251bGwKKysrIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8wMV9tZC5w YXRjaApAQCAtMCwwICsxLDEyNCBAQAorLS0tIGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1 Yi9jaXBoZXIvbWQuYworKysrIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIv bWQuYworQEAgLTIwLDExICsyMCwyNSBAQAorICAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgKiBMaWNlbnNlIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCisgICovCisrI2luY2x1ZGUgPGNvbmZpZy5oPgorKyNpbmNsdWRlIDxzdGRpby5oPgor KyNpbmNsdWRlIDxzdGRsaWIuaD4KKysjaW5jbHVkZSA8c3RyaW5nLmg+CisrI2luY2x1ZGUgPGVy cm5vLmg+CisgCisgCisgI2luY2x1ZGUgImcxMGxpYi5oIgorICNpbmNsdWRlICJjaXBoZXIuaCIK KyAKKysjZGVmaW5lIF9nY3J5X21kX3NlbGZ0ZXN0KGEsYixjKSAwCisrdHlwZWRlZiBzdHJ1Y3Qg Z2NyeV9tZF9saXN0CisreworKyAgY29uc3QgZ2NyeV9tZF9zcGVjX3QgKnNwZWM7CisrICBzdHJ1 Y3QgZ2NyeV9tZF9saXN0ICpuZXh0OworKyAgc2l6ZV90IGFjdHVhbF9zdHJ1Y3Rfc2l6ZTsgICAg IC8qIEFsbG9jYXRlZCBzaXplIG9mIHRoaXMgc3RydWN0dXJlLiAqLworKyAgUFJPUEVSTFlfQUxJ R05FRF9UWVBFIGNvbnRleHRbMV07CisrfSBHY3J5RGlnZXN0RW50cnk7CisrCisgCisgLyogVGhp cyBpcyB0aGUgbGlzdCBvZiB0aGUgZGlnZXN0IGltcGxlbWVudGF0aW9ucyBpbmNsdWRlZCBpbgor ICAgIGxpYmdjcnlwdC4gICovCitAQCAtNTMsNyArNjcsNiBAQAorIHN0YXRpYyB2b2lkIG1kX2Ns b3NlIChnY3J5X21kX2hkX3QgYSk7Cisgc3RhdGljIHZvaWQgbWRfd3JpdGUgKGdjcnlfbWRfaGRf dCBhLCBjb25zdCB2b2lkICppbmJ1Ziwgc2l6ZV90IGlubGVuKTsKKyBzdGF0aWMgYnl0ZSAqbWRf cmVhZCggZ2NyeV9tZF9oZF90IGEsIGludCBhbGdvICk7Cistc3RhdGljIGludCBtZF9nZXRfYWxn byggZ2NyeV9tZF9oZF90IGEgKTsKKyBzdGF0aWMgaW50IG1kX2RpZ2VzdF9sZW5ndGgoIGludCBh bGdvICk7Cisgc3RhdGljIHZvaWQgbWRfc3RhcnRfZGVidWcgKCBnY3J5X21kX2hkX3QgYSwgY29u c3QgY2hhciAqc3VmZml4ICk7Cisgc3RhdGljIHZvaWQgbWRfc3RvcF9kZWJ1ZyAoIGdjcnlfbWRf aGRfdCBhICk7CitAQCAtMTg2LDkgKzE5OSw2IEBACisgCisgICBpZiAoISBlcnIpCisgICAgIHsK Ky0gICAgICAvKiBIbW1tLCBzaG91bGQgd2UgcmVhbGx5IGRvIHRoYXQ/IC0geWVzIFstd2tdICov CistICAgICAgX2djcnlfZmFzdF9yYW5kb21fcG9sbCAoKTsKKy0KKyAgICAgICBpZiAoYWxnbykK KyAJeworIAkgIGVyciA9IG1kX2VuYWJsZSAoaGQsIGFsZ28pOworQEAgLTQzNywxNCArNDQ3LDYg QEAKKyB7CisgICBHY3J5RGlnZXN0RW50cnkgKnI7CisgCistICBpZiAoYS0+Y3R4LT5kZWJ1ZykK Ky0gICAgeworLSAgICAgIGlmIChhLT5idWZwb3MgJiYgZndyaXRlIChhLT5idWYsIGEtPmJ1ZnBv cywgMSwgYS0+Y3R4LT5kZWJ1ZykgIT0gMSkKKy0JQlVHKCk7CistICAgICAgaWYgKGlubGVuICYm IGZ3cml0ZSAoaW5idWYsIGlubGVuLCAxLCBhLT5jdHgtPmRlYnVnKSAhPSAxKQorLQlCVUcoKTsK Ky0gICAgfQorLQorICAgZm9yIChyID0gYS0+Y3R4LT5saXN0OyByOyByID0gci0+bmV4dCkKKyAg ICAgeworICAgICAgIGlmIChhLT5idWZwb3MpCitAQCAtNjk1LDYgKzY5Nyw3IEBACisgICAgICAg cmV0dXJuOworICAgICB9CisgCisrI2lmIDAKKyAgIGlmIChzcGVjLT5oYXNoX2J1ZmZlcnMgIT0g TlVMTCkKKyAgICAgeworICAgICAgIGdjcnlfYnVmZmVyX3QgaW92OworQEAgLTcxMSw2ICs3MTQs NyBAQAorICAgICAgIHNwZWMtPmhhc2hfYnVmZmVycyAoZGlnZXN0LCBzcGVjLT5tZGxlbiwgJmlv diwgMSk7CisgICAgIH0KKyAgIGVsc2UKKysjZW5kaWYKKyAgICAgeworICAgICAgIC8qIEZvciB0 aGUgb3RoZXJzIHdlIGRvIG5vdCBoYXZlIGEgZmFzdCBmdW5jdGlvbiwgc28gd2UgdXNlIHRoZQor ICAgICAgICAgIG5vcm1hbCBmdW5jdGlvbnMuICovCitAQCAtODk0LDQzICs4OTcsMTUgQEAKKyBz dGF0aWMgdm9pZAorIG1kX3N0YXJ0X2RlYnVnICggZ2NyeV9tZF9oZF90IG1kLCBjb25zdCBjaGFy ICpzdWZmaXggKQorIHsKKy0gIHN0YXRpYyBpbnQgaWR4PTA7CistICBjaGFyIGJ1Zls1MF07Cist CistICBpZiAoZmlwc19tb2RlICgpKQorLSAgICByZXR1cm47CistCistICBpZiAoIG1kLT5jdHgt PmRlYnVnICkKKy0gICAgeworLSAgICAgIGxvZ19kZWJ1ZygiT29wczogbWQgZGVidWcgYWxyZWFk eSBzdGFydGVkXG4iKTsKKy0gICAgICByZXR1cm47CistICAgIH0KKy0gIGlkeCsrOworLSAgc25w cmludGYgKGJ1ZiwgRElNKGJ1ZiktMSwgImRiZ21kLSUwNWQuJS4xMHMiLCBpZHgsIHN1ZmZpeCAp OworLSAgbWQtPmN0eC0+ZGVidWcgPSBmb3BlbihidWYsICJ3Iik7CistICBpZiAoICFtZC0+Y3R4 LT5kZWJ1ZyApCistICAgIGxvZ19kZWJ1ZygibWQgZGVidWc6IGNhbid0IG9wZW4gJXNcbiIsIGJ1 ZiApOworKyAgKHZvaWQpIG1kOworKyAgKHZvaWQpIHN1ZmZpeDsKKyB9CisgCisgCisgc3RhdGlj IHZvaWQKKyBtZF9zdG9wX2RlYnVnKCBnY3J5X21kX2hkX3QgbWQgKQorIHsKKy0gIGlmICggbWQt PmN0eC0+ZGVidWcgKQorLSAgICB7CistICAgICAgaWYgKCBtZC0+YnVmcG9zICkKKy0gICAgICAg IG1kX3dyaXRlICggbWQsIE5VTEwsIDAgKTsKKy0gICAgICBmY2xvc2UgKG1kLT5jdHgtPmRlYnVn KTsKKy0gICAgICBtZC0+Y3R4LT5kZWJ1ZyA9IE5VTEw7CistICAgIH0KKy0KKy0gIHsgIC8qIGEg a2x1ZGdlIHRvIHB1bGwgaW4gdGhlIF9fbXVsZGkzIGZvciBTb2xhcmlzICovCistICAgIHZvbGF0 aWxlIHUzMiBhID0gKHUzMikodWludHB0cl90KW1kOworLSAgICB2b2xhdGlsZSB1NjQgYiA9IDQy OworLSAgICB2b2xhdGlsZSB1NjQgYzsKKy0gICAgYyA9IGEgKiBiOworLSAgICAodm9pZCljOwor LSAgfQorKyAgKHZvaWQpIG1kOworIH0KKyAKKyAKZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIv bGliZ2NyeXB0LXBhdGNoZXMvMDRfYXJpYS5wYXRjaCBiL2dydWItY29yZS9saWIvbGliZ2NyeXB0 LXBhdGNoZXMvMDRfYXJpYS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAuLmIyZjZlODg0ZgotLS0gL2Rldi9udWxsCisrKyBiL2dydWItY29yZS9saWIvbGliZ2NyeXB0 LXBhdGNoZXMvMDRfYXJpYS5wYXRjaApAQCAtMCwwICsxLDIyIEBACitkaWZmIC0tZ2l0IGEvZ3J1 Yi1jb3JlL2xpYi9saWJnY3J5cHQvY2lwaGVyL2FyaWEuYyBiL2dydWItY29yZS9saWIvbGliZ2Ny eXB0L2NpcGhlci9hcmlhLmMKK2luZGV4IGJjMmQ0Mzg0MS4uY2ZjNWE3NGYyIDEwMDY0NAorLS0t IGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvYXJpYS5jCisrKysgYi9ncnVi LWNvcmUvbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9hcmlhLmMKK0BAIC0xMDEzLDcgKzEwMTMs NyBAQCBhcmlhX2NyeXB0KEFSSUFfY29udGV4dCAqY3R4LCBieXRlICpvdXQsIGNvbnN0IGJ5dGUg KmluLAorICAgcmV0dXJuIDQgKiBzaXplb2Yodm9pZCAqKSArIDQgKiBzaXplb2YodTMyKTsgLyog c3RhY2sgYnVybiBkZXB0aCAqLworIH0KKyAKKy11bnNpZ25lZCBpbnQKKytzdGF0aWMgdW5zaWdu ZWQgaW50CisgYXJpYV9lbmNyeXB0KHZvaWQgKmMsIGJ5dGUgKm91dGJ1ZiwgY29uc3QgYnl0ZSAq aW5idWYpCisgeworICAgQVJJQV9jb250ZXh0ICpjdHggPSAoQVJJQV9jb250ZXh0ICopYzsKK0BA IC0xMDIzLDcgKzEwMjMsNyBAQCBhcmlhX2VuY3J5cHQodm9pZCAqYywgYnl0ZSAqb3V0YnVmLCBj b25zdCBieXRlICppbmJ1ZikKKyAgIHJldHVybiBhcmlhX2NyeXB0IChjdHgsIG91dGJ1ZiwgaW5i dWYsIGN0eC0+ZW5jX2tleSk7CisgfQorIAorLXVuc2lnbmVkIGludAorK3N0YXRpYyB1bnNpZ25l ZCBpbnQKKyBhcmlhX2RlY3J5cHQodm9pZCAqYywgYnl0ZSAqb3V0YnVmLCBjb25zdCBieXRlICpp bmJ1ZikKKyB7CisgICBBUklBX2NvbnRleHQgKmN0eCA9IChBUklBX2NvbnRleHQgKiljOwpkaWZm IC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8wNV9kaXNhYmxlX3JzYV9z aGFrZS5wYXRjaCBiL2dydWItY29yZS9saWIvbGliZ2NyeXB0LXBhdGNoZXMvMDVfZGlzYWJsZV9y c2Ffc2hha2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5jOTkx MWQ0YWQKLS0tIC9kZXYvbnVsbAorKysgYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC1wYXRjaGVz LzA1X2Rpc2FibGVfcnNhX3NoYWtlLnBhdGNoCkBAIC0wLDAgKzEsMzYgQEAKK2RpZmYgLS1naXQg YS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC9jaXBoZXIvcnNhLWNvbW1vbi5jIGIvZ3J1Yi1jb3Jl L2xpYi9saWJnY3J5cHQvY2lwaGVyL3JzYS1jb21tb24uYworaW5kZXggMTkyMGVlZGQ4Li5jNDgx OTIwOGIgMTAwNjQ0CistLS0gYS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9y c2EtY29tbW9uLmMKKysrKyBiL2dydWItY29yZS9saWIvbGliZ2NyeXB0LWdydWIvY2lwaGVyL3Jz YS1jb21tb24uYworQEAgLTkxMiw2ICs5MTIsNyBAQCBfZ2NyeV9yc2FfcHNzX2VuY29kZSAoZ2Ny eV9tcGlfdCAqcl9yZXN1bHQsIHVuc2lnbmVkIGludCBuYml0cywgaW50IGFsZ28sCisgICBtZW1j cHkgKHAsIHNhbHQsIHNhbHRsZW4pOworIAorICAgLyogU3RlcCA5OiBkYm1hc2sgPSBNR0YoSCwg ZW1sZW4gLSBobGVuIC0gMSkuICAqLworKyNpZiAwCisgICBpZiAoYWxnbyA9PSBHQ1JZX01EX1NI QUtFMTI4IHx8IGFsZ28gPT0gR0NSWV9NRF9TSEFLRTI1NikKKyAgICAgeworICAgICAgIGdjcnlf YnVmZmVyX3QgaW92OworQEAgLTkyNSw2ICs5MjYsNyBAQCBfZ2NyeV9yc2FfcHNzX2VuY29kZSAo Z2NyeV9tcGlfdCAqcl9yZXN1bHQsIHVuc2lnbmVkIGludCBuYml0cywgaW50IGFsZ28sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpb3YsIDEpOworICAgICB9CisgICBl bHNlCisrI2VuZGlmCisgICAgIG1nZjEgKGRibWFzaywgZW1sZW4gLSBobGVuIC0gMSwgaCwgaGxl biwgYWxnbyk7CisgCisgICAvKiBTdGVwIDEwOiBtYXNrZWREQiA9IERCIF4gZGJNYXNrICovCitA QCAtMTA4Niw2ICsxMDg4LDcgQEAgX2djcnlfcnNhX3Bzc192ZXJpZnkgKGdjcnlfbXBpX3QgdmFs dWUsIGludCBoYXNoZWRfYWxyZWFkeSwKKyAgICAgfQorIAorICAgLyogU3RlcCA3OiBkYm1hc2sg PSBNR0YoSCwgZW1sZW4gLSBobGVuIC0gMSkuICAqLworKyNpZiAwCisgICBpZiAoYWxnbyA9PSBH Q1JZX01EX1NIQUtFMTI4IHx8IGFsZ28gPT0gR0NSWV9NRF9TSEFLRTI1NikKKyAgICAgeworICAg ICAgIGdjcnlfYnVmZmVyX3QgaW92OworQEAgLTk5OSw2ICsxMTAyLDcgQEAgX2djcnlfcnNhX3Bz c192ZXJpZnkgKGdjcnlfbXBpX3QgdmFsdWUsIGludCBoYXNoZWRfYWxyZWFkeSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmlvdiwgMSk7CisgICAgIH0KKyAgIGVsc2UK KysjZW5kaWYKKyAgICAgbWdmMSAoZGJtYXNrLCBlbWxlbiAtIGhsZW4gLSAxLCBoLCBobGVuLCBh bGdvKTsKKyAKKyAgIC8qIFN0ZXAgODogbWFza2VkREIgPSBEQiBeIGRiTWFzay4gICovCmRpZmYg LS1naXQgYS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC9zcmMvZ2NyeXB0LWludC5oIGIvZ3J1Yi1j b3JlL2xpYi9saWJnY3J5cHQvc3JjL2djcnlwdC1pbnQuaAppbmRleCAxYjQ0OTI4MTguLjcwMTA4 MTY4MCAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQvc3JjL2djcnlwdC1pbnQu aAorKysgYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC9zcmMvZ2NyeXB0LWludC5oCkBAIC0yOTcs NTcgKzI5Nyw2IEBAIHZvaWQgX2djcnlfc2V0X2xvZ19oYW5kbGVyIChnY3J5X2hhbmRsZXJfbG9n X3QgZiwgdm9pZCAqb3BhcXVlKTsKIHZvaWQgX2djcnlfc2V0X2dldHRleHRfaGFuZGxlciAoY29u c3QgY2hhciAqKCpmKShjb25zdCBjaGFyKikpOwogdm9pZCBfZ2NyeV9zZXRfcHJvZ3Jlc3NfaGFu ZGxlciAoZ2NyeV9oYW5kbGVyX3Byb2dyZXNzX3QgY2IsIHZvaWQgKmNiX2RhdGEpOwogCi0MCi0v KiBSZXR1cm4gYSBwb2ludGVyIHRvIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSBkZXNjcmlwdGlvbiBv ZiB0aGUgZXJyb3IKLSAgIGNvZGUgaW4gdGhlIGVycm9yIHZhbHVlIEVSUi4gICovCi1zdGF0aWMg aW5saW5lIGNvbnN0IGNoYXIgKgotX2djcnlfc3RyZXJyb3IgKGdjcnlfZXJyb3JfdCBlcnIpCi17 Ci0gIHJldHVybiBncGdfc3RyZXJyb3IgKGVycik7Ci19Ci0KLS8qIFJldHVybiBhIHBvaW50ZXIg dG8gYSBzdHJpbmcgY29udGFpbmluZyBhIGRlc2NyaXB0aW9uIG9mIHRoZSBlcnJvcgotICAgc291 cmNlIGluIHRoZSBlcnJvciB2YWx1ZSBFUlIuICAqLwotc3RhdGljIGlubGluZSBjb25zdCBjaGFy ICoKLV9nY3J5X3N0cnNvdXJjZSAoZ2NyeV9lcnJvcl90IGVycikKLXsKLSAgcmV0dXJuIGdwZ19z dHJzb3VyY2UgKGVycik7Ci19Ci0KLS8qIFJldHJpZXZlIHRoZSBlcnJvciBjb2RlIGZvciB0aGUg c3lzdGVtIGVycm9yIEVSUi4gIFRoaXMgcmV0dXJucwotICAgR1BHX0VSUl9VTktOT1dOX0VSUk5P IGlmIHRoZSBzeXN0ZW0gZXJyb3IgaXMgbm90IG1hcHBlZCAocmVwb3J0Ci0gICB0aGlzKS4gICov Ci1zdGF0aWMgaW5saW5lIGdjcnlfZXJyX2NvZGVfdAotX2djcnlfZXJyX2NvZGVfZnJvbV9lcnJu byAoaW50IGVycikKLXsKLSAgcmV0dXJuIGdwZ19lcnJfY29kZV9mcm9tX2Vycm5vIChlcnIpOwot fQotCi0vKiBSZXRyaWV2ZSB0aGUgc3lzdGVtIGVycm9yIGZvciB0aGUgZXJyb3IgY29kZSBDT0RF LiAgVGhpcyByZXR1cm5zIDAKLSAgIGlmIENPREUgaXMgbm90IGEgc3lzdGVtIGVycm9yIGNvZGUu ICAqLwotc3RhdGljIGlubGluZSBpbnQKLV9nY3J5X2Vycl9jb2RlX3RvX2Vycm5vIChnY3J5X2Vy cl9jb2RlX3QgY29kZSkKLXsKLSAgcmV0dXJuIGdwZ19lcnJfY29kZV90b19lcnJubyAoY29kZSk7 Ci19Ci0KLS8qIFJldHVybiBhbiBlcnJvciB2YWx1ZSB3aXRoIHRoZSBlcnJvciBzb3VyY2UgU09V UkNFIGFuZCB0aGUgc3lzdGVtCi0gICBlcnJvciBFUlIuICAqLwotc3RhdGljIGlubGluZSBnY3J5 X2Vycm9yX3QKLV9nY3J5X2Vycl9tYWtlX2Zyb21fZXJybm8gKGdwZ19lcnJfc291cmNlX3Qgc291 cmNlLCBpbnQgZXJyKQotewotICByZXR1cm4gZ3BnX2Vycl9tYWtlX2Zyb21fZXJybm8gKHNvdXJj ZSwgZXJyKTsKLX0KLQotCi0vKiBSZXR1cm4gYW4gZXJyb3IgdmFsdWUgd2l0aCB0aGUgc3lzdGVt IGVycm9yIEVSUi4gICovCi1zdGF0aWMgaW5saW5lIGdjcnlfZXJyb3JfdAotX2djcnlfZXJyb3Jf ZnJvbV9lcnJubyAoaW50IGVycikKLXsKLSAgcmV0dXJuIGdwZ19lcnJvciAoZ3BnX2Vycl9jb2Rl X2Zyb21fZXJybm8gKGVycikpOwotfQotCi0KIAwKIGdwZ19lcnJfY29kZV90IF9nY3J5X3NleHBf bmV3IChnY3J5X3NleHBfdCAqcmV0c2V4cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCB2b2lkICpidWZmZXIsIHNpemVfdCBsZW5ndGgsCmRpZmYgLS1naXQgYS9ncnViLWNv cmUvbGliL2xpYmdjcnlwdF93cmFwL2NpcGhlcl93cmFwLmggYi9ncnViLWNvcmUvbGliL2xpYmdj cnlwdF93cmFwL2NpcGhlcl93cmFwLmgKaW5kZXggNDI4MzU0OTNkLi4zMGJhNjk4MWIgMTAwNjQ0 Ci0tLSBhL2dydWItY29yZS9saWIvbGliZ2NyeXB0X3dyYXAvY2lwaGVyX3dyYXAuaAorKysgYi9n cnViLWNvcmUvbGliL2xpYmdjcnlwdF93cmFwL2NpcGhlcl93cmFwLmgKQEAgLTE5LDYgKzE5LDgg QEAKICNpZm5kZWYgR1JVQl9HQ1JZX1dSQVBfSEVBREVSCiAjZGVmaW5lIEdSVUJfR0NSWV9XUkFQ X0hFQURFUiAxCiAKKyNkZWZpbmUgVVNFX1NIQTUxMiAxCisKICNpbmNsdWRlIDxncnViL3R5cGVz Lmg+CiAjaW5jbHVkZSA8Z3J1Yi9tbS5oPgogI2luY2x1ZGUgPGdydWIvbWlzYy5oPgpAQCAtMzUs MTAgKzM3LDEyIEBACiAjdW5kZWYgX19HTlVfTElCUkFSWV9fCiAjZGVmaW5lIF9fR05VX0xJQlJB UllfXyAxCiAKKyN1bmRlZiBIQVZFX1U2NAorI3VuZGVmIFU2NF9DCisjZGVmaW5lIEhBVkVfVTY0 IDEKKyNkZWZpbmUgVUlOVDY0X0MoYykgKGMgIyMgVUxMKQogI2RlZmluZSBVNjRfQyhjKSAoYyAj IyBVTEwpCiAKLSNkZWZpbmUgUFVCS0VZX0ZMQUdfTk9fQkxJTkRJTkcgICAgKDEgPDwgMCkKLQog I2RlZmluZSBDSVBIRVJfSU5GT19OT19XRUFLX0tFWSAgICAxCiAKICNkZWZpbmUgSEFWRV9VNjRf VFlQRURFRiAxCkBAIC03NCw0ICs3OCwxNyBAQCBfZ2NyeV9maXBzX21vZGUgKHZvaWQpCiAKICNk ZWZpbmUgZ2NyeV9tcGlfbW9kIF9nY3J5X21waV9tb2QKIAorI2RlZmluZSBzdHJ0b2wgZ3J1Yl9z dHJ0b2wKKyNkZWZpbmUgc3RydG91bCBncnViX3N0cnRvdWwKKyNkZWZpbmUgYXRvaShucHRyKSAo c3RydG9sKChucHRyKSwgTlVMTCwgMTApKQorCisjZGVmaW5lIHN0cGNweSBncnViX3N0cGNweQor CisjZGVmaW5lIHNwZWNfZnJvbV9hbGdvIGdydWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9hbGdvCisK K3N0cnVjdCBnY3J5X2NzaGFrZV9jdXN0b21pemF0aW9uOworCitncGdfZXJyX2NvZGVfdAorX2dj cnlfY3NoYWtlX2N1c3RvbWl6ZSAodm9pZCAqY29udGV4dCwgc3RydWN0IGdjcnlfY3NoYWtlX2N1 c3RvbWl6YXRpb24gKnApOworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvbGli Z2NyeXB0X3dyYXAvbWVtLmMgYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdF93cmFwL21lbS5jCmlu ZGV4IDc0YzZlYWZlNS4uZTk0N2RjOTk4IDEwMDY0NAotLS0gYS9ncnViLWNvcmUvbGliL2xpYmdj cnlwdF93cmFwL21lbS5jCisrKyBiL2dydWItY29yZS9saWIvbGliZ2NyeXB0X3dyYXAvbWVtLmMK QEAgLTQ2LDYgKzQ2LDE1IEBAIGdjcnlfeGNhbGxvYyAoc2l6ZV90IG4sIHNpemVfdCBtKQogICBy ZXR1cm4gcmV0OwogfQogCit2b2lkICoKK19nY3J5X2NhbGxvYyAoc2l6ZV90IG4sIHNpemVfdCBt KQoreworICBzaXplX3Qgc3o7CisgIGlmIChncnViX211bCAobiwgbSwgJnN6KSkKKyAgICByZXR1 cm4gTlVMTDsKKyAgcmV0dXJuIGdydWJfemFsbG9jIChzeik7Cit9CisKIHZvaWQgKgogZ2NyeV94 bWFsbG9jX3NlY3VyZSAoc2l6ZV90IG4pCiB7CkBAIC02OSw2ICs3OCwxNSBAQCBnY3J5X3hjYWxs b2Nfc2VjdXJlIChzaXplX3Qgbiwgc2l6ZV90IG0pCiAgIHJldHVybiByZXQ7CiB9CiAKK3ZvaWQg KgorX2djcnlfY2FsbG9jX3NlY3VyZSAoc2l6ZV90IG4sIHNpemVfdCBtKQoreworICBzaXplX3Qg c3o7CisgIGlmIChncnViX211bCAobiwgbSwgJnN6KSkKKyAgICByZXR1cm4gTlVMTDsKKyAgcmV0 dXJuIGdydWJfemFsbG9jIChzeik7Cit9CisKIHZvaWQgKgogZ2NyeV94bWFsbG9jIChzaXplX3Qg bikKIHsKQEAgLTg5LDEwICsxMDcsMTAgQEAgZ2NyeV94cmVhbGxvYyAodm9pZCAqYSwgc2l6ZV90 IG4pCiAgIHJldHVybiByZXQ7CiB9CiAKLXZvaWQKLV9nY3J5X2NoZWNrX2hlYXAgKGNvbnN0IHZv aWQgKmEgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpKQordm9pZCAqCitfZ2NyeV9yZWFsbG9jICh2 b2lkICphLCBzaXplX3QgbikKIHsKLQorICByZXR1cm4gZ3J1Yl9yZWFsbG9jIChhLCBuKTsKIH0K IAogdm9pZCBfZ2NyeV9sb2dfcHJpbnRmIChjb25zdCBjaGFyICpmbXQsIC4uLikKQEAgLTExMyw2 ICsxMzEsMjQgQEAgdm9pZCBfZ2NyeV9sb2dfcHJpbnRmIChjb25zdCBjaGFyICpmbXQsIC4uLikK ICAgICB9CiB9CiAKK3ZvaWQgX2djcnlfbG9nX2RlYnVnIChjb25zdCBjaGFyICpmbXQsIC4uLikK K3sKKyAgdmFfbGlzdCBhcmdzOworICBjb25zdCBjaGFyICpkZWJ1ZyA9IGdydWJfZW52X2dldCAo ImRlYnVnIik7CisKKyAgaWYgKCEgZGVidWcpCisgICAgcmV0dXJuOworCisgIGlmIChncnViX3N0 cndvcmQgKGRlYnVnLCAiYWxsIikgfHwgZ3J1Yl9zdHJ3b3JkIChkZWJ1ZywgImdjcnlwdCIpKQor ICAgIHsKKyAgICAgIGdydWJfcHJpbnRmICgiZ2NyeXB0OiAiKTsKKyAgICAgIHZhX3N0YXJ0IChh cmdzLCBmbXQpOworICAgICAgZ3J1Yl92cHJpbnRmIChmbXQsIGFyZ3MpOworICAgICAgdmFfZW5k IChhcmdzKTsKKyAgICAgIGdydWJfcmVmcmVzaCAoKTsKKyAgICB9Cit9CisKIHZvaWQgX2djcnlf bG9nX2J1ZyAoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAgIHZhX2xpc3QgYXJnczsKQEAgLTEy Niw5ICsxNjIsOSBAQCB2b2lkIF9nY3J5X2xvZ19idWcgKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQog fQogCiBnY3J5X2Vycl9jb2RlX3QKLWdwZ19lcnJvcl9mcm9tX3N5c2Vycm9yICh2b2lkKQorZ3Bn X2Vycl9jb2RlX2Zyb21fZXJybm8gKGludCBlcnIpCiB7Ci0gIHN3aXRjaCAoZ3J1Yl9lcnJubykK KyAgc3dpdGNoIChlcnIpCiAgICAgewogICAgIGNhc2UgR1JVQl9FUlJfTk9ORToKICAgICAgIHJl dHVybiBHUEdfRVJSX05PX0VSUk9SOwpAQCAtMTM4LDMgKzE3NCw0MCBAQCBncGdfZXJyb3JfZnJv bV9zeXNlcnJvciAodm9pZCkKICAgICAgIHJldHVybiBHUEdfRVJSX0dFTkVSQUw7CiAgICAgfQog fQorCitnY3J5X2Vycl9jb2RlX3QKK2dwZ19lcnJvcl9mcm9tX3N5c2Vycm9yICh2b2lkKQorewor ICByZXR1cm4gZ3BnX2Vycl9jb2RlX2Zyb21fZXJybm8oZ3J1Yl9lcnJubyk7Cit9CisKK2djcnlf ZXJyX2NvZGVfdAorZ3BnX2Vycl9jb2RlX2Zyb21fc3lzZXJyb3IgKHZvaWQpCit7CisgIHJldHVy biBncGdfZXJyb3JfZnJvbV9zeXNlcnJvciAoKTsKK30KKwordm9pZCBfZ2NyeV9mYXRhbF9lcnJv cihpbnQgcmMsIGNvbnN0IGNoYXIgKnRleHQgKQoreworICBncnViX2ZhdGFsKCJnY3J5IGZhdGFs ICVkOiAlcyIsIHJjLCB0ZXh0KTsKK30KKworCit2b2lkIF9nY3J5X3JhbmRvbWl6ZSAodm9pZCAq YnVmZmVyIF9fYXR0cmlidXRlX18oKHVudXNlZCkpLCBzaXplX3QgbGVuZ3RoIF9fYXR0cmlidXRl X18oKHVudXNlZCkpLAorICAgICAgICAgICAgICAgICAgICAgIGVudW0gZ2NyeV9yYW5kb21fbGV2 ZWwgbGV2ZWwgX19hdHRyaWJ1dGVfXygodW51c2VkKSkpCit7CisgIGdydWJfZmF0YWwoIkF0dGVt cHQgdG8gZ2V0IHNlY3VyZSByYW5kb20gbnVtYmVycyIpOworfQorCisKK3ZvaWQgKl9nY3J5X3Jh bmRvbV9ieXRlc19zZWN1cmUgKHNpemVfdCBuYnl0ZXMgX19hdHRyaWJ1dGVfXygodW51c2VkKSks IGVudW0gZ2NyeV9yYW5kb21fbGV2ZWwgbGV2ZWwgX19hdHRyaWJ1dGVfXygodW51c2VkKSkpCit7 CisgIGdydWJfZmF0YWwoIkF0dGVtcHQgdG8gZ2V0IHNlY3VyZSByYW5kb20gbnVtYmVycyIpOwor fQorCitjb25zdCBjaGFyICpncGdfc3RyZXJyb3IgKGdwZ19lcnJvcl90IGVycikKK3sKKyAgc3Rh dGljIGNoYXIgYnVmWzI1Nl07CisgIGdydWJfc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSAtIDUs ICJncGcgZXJyb3IgJWRcbiIsIGVycik7CisgIHJldHVybiBidWY7Cit9CmRpZmYgLS1naXQgYS9n cnViLWNvcmUvbGliL3Bvc2l4X3dyYXAvc3lzL3R5cGVzLmggYi9ncnViLWNvcmUvbGliL3Bvc2l4 X3dyYXAvc3lzL3R5cGVzLmgKaW5kZXggMmYzZTg2NTQ5Li43Mzc3NWM5Y2EgMTAwNjQ0Ci0tLSBh L2dydWItY29yZS9saWIvcG9zaXhfd3JhcC9zeXMvdHlwZXMuaAorKysgYi9ncnViLWNvcmUvbGli L3Bvc2l4X3dyYXAvc3lzL3R5cGVzLmgKQEAgLTM5LDEyICszOSwxNiBAQCB0eXBlZGVmIGdydWJf aW50MzJfdCBpbnQzMl90OwogdHlwZWRlZiBncnViX2ludDY0X3QgaW50NjRfdDsKIAogI2RlZmlu ZSBIQVZFX1U2NF9UWVBFREVGIDEKKyNkZWZpbmUgSEFWRV9UWVBFX1U2NCAxCiB0eXBlZGVmIGdy dWJfdWludDY0X3QgdTY0OwogI2RlZmluZSBIQVZFX1UzMl9UWVBFREVGIDEKKyNkZWZpbmUgSEFW RV9UWVBFX1UzMiAxCiB0eXBlZGVmIGdydWJfdWludDMyX3QgdTMyOwogI2RlZmluZSBIQVZFX1Ux Nl9UWVBFREVGIDEKKyNkZWZpbmUgSEFWRV9UWVBFX1UxNiAxCiB0eXBlZGVmIGdydWJfdWludDE2 X3QgdTE2OwogI2RlZmluZSBIQVZFX0JZVEVfVFlQRURFRiAxCisjZGVmaW5lIEhBVkVfVFlQRV9C WVRFIDEKIHR5cGVkZWYgZ3J1Yl91aW50OF90IGJ5dGU7CiAKIHR5cGVkZWYgZ3J1Yl9hZGRyX3Qg dWludHB0cl90OwpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi94emVtYmVkL3h6X2RlY19zdHJl YW0uYyBiL2dydWItY29yZS9saWIveHplbWJlZC94el9kZWNfc3RyZWFtLmMKaW5kZXggODMyZDhh ZjlhLi5mMmRkNDJkYzIgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIveHplbWJlZC94el9kZWNf c3RyZWFtLmMKKysrIGIvZ3J1Yi1jb3JlL2xpYi94emVtYmVkL3h6X2RlY19zdHJlYW0uYwpAQCAt NDI1LDkgKzQyNSw5IEBAIHN0YXRpYyBlbnVtIHh6X3JldCBoYXNoX3ZhbGlkYXRlKHN0cnVjdCB4 el9kZWMgKnMsIHN0cnVjdCB4el9idWYgKmIsCiAKICNpZm5kZWYgR1JVQl9FTUJFRF9ERUNPTVBS RVNTT1IKIAlpZiAocy0+aGFzaCkKLQkJcy0+aGFzaC0+aW5pdChzLT5oYXNoX2NvbnRleHQpOwor CQlzLT5oYXNoLT5pbml0KHMtPmhhc2hfY29udGV4dCwgMCk7CiAJaWYgKHMtPmNyYzMyKQotCQlz LT5jcmMzMi0+aW5pdChzLT5jcmMzMl9jb250ZXh0KTsKKwkJcy0+Y3JjMzItPmluaXQocy0+Y3Jj MzJfY29udGV4dCwgMCk7CiAjZW5kaWYKIAlzLT5oYXZlX2hhc2hfdmFsdWUgPSAwOwogCXMtPnBv cyA9IDA7CkBAIC00OTMsNyArNDkzLDcgQEAgc3RhdGljIGVudW0geHpfcmV0IGRlY19zdHJlYW1f aGVhZGVyKHN0cnVjdCB4el9kZWMgKnMpCiAJCXMtPmNyYzMyX2NvbnRleHQgPSBrbWFsbG9jKHMt PmNyYzMyLT5jb250ZXh0c2l6ZSwgR0ZQX0tFUk5FTCk7CiAJCWlmIChzLT5jcmMzMl9jb250ZXh0 ID09IE5VTEwpCiAJCQlyZXR1cm4gWFpfTUVNTElNSVRfRVJST1I7Ci0JCXMtPmNyYzMyLT5pbml0 KHMtPmNyYzMyX2NvbnRleHQpOworCQlzLT5jcmMzMi0+aW5pdChzLT5jcmMzMl9jb250ZXh0LCAw KTsKIAl9CiAjZW5kaWYKIApAQCAtNTMxLDkgKzUzMSw5IEBAIHN0YXRpYyBlbnVtIHh6X3JldCBk ZWNfc3RyZWFtX2hlYWRlcihzdHJ1Y3QgeHpfZGVjICpzKQogCQkJCXJldHVybiBYWl9NRU1MSU1J VF9FUlJPUjsKIAkJCX0KIAotCQkJcy0+aGFzaC0+aW5pdChzLT5oYXNoX2NvbnRleHQpOwotCQkJ cy0+aGFzaC0+aW5pdChzLT5pbmRleC5oYXNoLmhhc2hfY29udGV4dCk7Ci0gCQkJcy0+aGFzaC0+ aW5pdChzLT5ibG9jay5oYXNoLmhhc2hfY29udGV4dCk7CisJCQlzLT5oYXNoLT5pbml0KHMtPmhh c2hfY29udGV4dCwgMCk7CisJCQlzLT5oYXNoLT5pbml0KHMtPmluZGV4Lmhhc2guaGFzaF9jb250 ZXh0LCAwKTsKKyAJCQlzLT5oYXNoLT5pbml0KHMtPmJsb2NrLmhhc2guaGFzaF9jb250ZXh0LCAw KTsKIAkJfQogI2VuZGlmCiAJfQpAQCAtMTAxNCw5ICsxMDE0LDkgQEAgdm9pZCB4el9kZWNfcmVz ZXQoc3RydWN0IHh6X2RlYyAqcykKICNpZm5kZWYgR1JVQl9FTUJFRF9ERUNPTVBSRVNTT1IKIAlp ZiAocy0+aGFzaCkKIAl7Ci0JCXMtPmhhc2gtPmluaXQocy0+aGFzaF9jb250ZXh0KTsKLQkJcy0+ aGFzaC0+aW5pdChzLT5pbmRleC5oYXNoLmhhc2hfY29udGV4dCk7Ci0JCXMtPmhhc2gtPmluaXQo cy0+YmxvY2suaGFzaC5oYXNoX2NvbnRleHQpOworCQlzLT5oYXNoLT5pbml0KHMtPmhhc2hfY29u dGV4dCwgMCk7CisJCXMtPmhhc2gtPmluaXQocy0+aW5kZXguaGFzaC5oYXNoX2NvbnRleHQsIDAp OworCQlzLT5oYXNoLT5pbml0KHMtPmJsb2NrLmhhc2guaGFzaF9jb250ZXh0LCAwKTsKIAl9CiAj ZW5kaWYKIAlzLT5oYXZlX2hhc2hfdmFsdWUgPSAwOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ncnVi L2NyeXB0by5oIGIvaW5jbHVkZS9ncnViL2NyeXB0by5oCmluZGV4IDMxYzg3YzMwMi4uMjViMTE4 ODk4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2dydWIvY3J5cHRvLmgKKysrIGIvaW5jbHVkZS9ncnVi L2NyeXB0by5oCkBAIC02NSw3ICs2NSwzMiBAQCB0eXBlZGVmIGVudW0KICAgICBHUEdfRVJSX1dS T05HX1BVQktFWV9BTEdPLAogICAgIEdQR19FUlJfT1VUX09GX01FTU9SWSwKICAgICBHUEdfRVJS X1RPT19MQVJHRSwKLSAgICBHUEdfRVJSX0VOT01FTQorICAgIEdQR19FUlJfRU5PTUVNLAorICAg IEdQR19FUlJfQ0hFQ0tTVU0sCisgICAgR1BHX0VSUl9JTlZfTEVOR1RILAorICAgIEdQR19FUlJf VkFMVUVfTk9UX0ZPVU5ELAorICAgIEdQR19FUlJfRVJBTkdFLAorICAgIEdQR19FUlJfSU5WX0RB VEEsCisgICAgR1BHX0VSUl9FTkNPRElOR19QUk9CTEVNLAorICAgIEdQR19FUlJfQlVGRkVSX1RP T19TSE9SVCwKKyAgICBHUEdfRVJSX1NZTlRBWCwKKyAgICBHUEdfRVJSX1NFWFBfSU5WX0xFTl9T UEVDLAorICAgIEdQR19FUlJfU0VYUF9VTk1BVENIRURfREgsCisgICAgR1BHX0VSUl9TRVhQX1VO TUFUQ0hFRF9QQVJFTiwKKyAgICBHUEdfRVJSX1NFWFBfWkVST19QUkVGSVgsCisgICAgR1BHX0VS Ul9TRVhQX05FU1RFRF9ESCwKKyAgICBHUEdfRVJSX1NFWFBfVU5FWFBFQ1RFRF9QVU5DLAorICAg IEdQR19FUlJfU0VYUF9CQURfQ0hBUkFDVEVSLAorICAgIEdQR19FUlJfU0VYUF9OT1RfQ0FOT05J Q0FMLAorICAgIEdQR19FUlJfU0VYUF9TVFJJTkdfVE9PX0xPTkcsCisgICAgR1BHX0VSUl9TRVhQ X0JBRF9RVU9UQVRJT04sCisgICAgR1BHX0VSUl9TRVhQX09ERF9IRVhfTlVNQkVSUywKKyAgICBH UEdfRVJSX1NFWFBfQkFEX0hFWF9DSEFSLAorICAgIEdQR19FUlJfTElNSVRfUkVBQ0hFRCwKKyAg ICBHUEdfRVJSX0VPRiwKKyAgICBHUEdfRVJSX0JBRF9EQVRBLAorICAgIEdQR19FUlJfRUlOVkFM LAorICAgIEdQR19FUlJfSU5WX1NUQVRFLAogICB9IGdwZ19lcnJfY29kZV90OwogdHlwZWRlZiBn cGdfZXJyX2NvZGVfdCBncGdfZXJyb3JfdDsKIHR5cGVkZWYgZ3BnX2Vycm9yX3QgZ2NyeV9lcnJv cl90OwpAQCAtODQsMzcgKzEwOSw2MCBAQCBlbnVtIGdjcnlfY2lwaGVyX21vZGVzCiAgIH07CiAj ZW5kaWYKIAorLyogRXh0cmEgYWxnbyBJRHMgbm90IGNvbWluZyBmcm9tIGdjcnlwdC4gICovCisj ZGVmaW5lIEdDUllfTURfQURMRVIzMiAxMDMwMQorI2RlZmluZSBHQ1JZX01EX0NSQzY0IDEwMzAy CisKIC8qIERvbid0IHJlbHkgb24gdGhpcy4gQ2hlY2shICAqLwogI2RlZmluZSBHUlVCX0NSWVBU T19NQVhfTURMRU4gNjQKICNkZWZpbmUgR1JVQl9DUllQVE9fTUFYX0NJUEhFUl9CTE9DS1NJWkUg MTYKICNkZWZpbmUgR1JVQl9DUllQVE9fTUFYX01EX0NPTlRFWFRfU0laRSAyNTYKIAogLyogVHlw ZSBmb3IgdGhlIGNpcGhlcl9zZXRrZXkgZnVuY3Rpb24uICAqLworc3RydWN0IGNpcGhlcl9idWxr X29wczsKKwogdHlwZWRlZiBnY3J5X2Vycl9jb2RlX3QgKCpnY3J5X2NpcGhlcl9zZXRrZXlfdCkg KHZvaWQgKmMsCiAJCQkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAotCQkJCQkJIHVuc2ln bmVkIGtleWxlbik7CisJCQkJCQkgdW5zaWduZWQga2V5bGVuLAorCQkJCQkJIHN0cnVjdCBjaXBo ZXJfYnVsa19vcHMgKmJ1bGtfb3BzKTsKIAogLyogVHlwZSBmb3IgdGhlIGNpcGhlcl9lbmNyeXB0 IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgdm9pZCAoKmdjcnlfY2lwaGVyX2VuY3J5cHRfdCkgKHZv aWQgKmMsCi0JCQkJICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dGJ1ZiwKLQkJCQkgICAgICAgY29u c3QgdW5zaWduZWQgY2hhciAqaW5idWYpOwordHlwZWRlZiB1bnNpZ25lZCBpbnQgKCpnY3J5X2Np cGhlcl9lbmNyeXB0X3QpICh2b2lkICpjLAorCQkJCQkgICAgICAgdW5zaWduZWQgY2hhciAqb3V0 YnVmLAorCQkJCQkgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5idWYpOwogCiAvKiBUeXBl IGZvciB0aGUgY2lwaGVyX2RlY3J5cHQgZnVuY3Rpb24uICAqLwotdHlwZWRlZiB2b2lkICgqZ2Ny eV9jaXBoZXJfZGVjcnlwdF90KSAodm9pZCAqYywKLQkJCQkgICAgICAgdW5zaWduZWQgY2hhciAq b3V0YnVmLAotCQkJCSAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbmJ1Zik7Cit0eXBlZGVm IHVuc2lnbmVkIGludCAoKmdjcnlfY2lwaGVyX2RlY3J5cHRfdCkgKHZvaWQgKmMsCisJCQkJCSAg ICAgICB1bnNpZ25lZCBjaGFyICpvdXRidWYsCisJCQkJCSAgICAgICBjb25zdCB1bnNpZ25lZCBj aGFyICppbmJ1Zik7CiAKIC8qIFR5cGUgZm9yIHRoZSBjaXBoZXJfc3RlbmNyeXB0IGZ1bmN0aW9u LiAgKi8KIHR5cGVkZWYgdm9pZCAoKmdjcnlfY2lwaGVyX3N0ZW5jcnlwdF90KSAodm9pZCAqYywK IAkJCQkJIHVuc2lnbmVkIGNoYXIgKm91dGJ1ZiwKIAkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIg KmluYnVmLAotCQkJCQkgdW5zaWduZWQgaW50IG4pOworCQkJCQkgZ3J1Yl9zaXplX3Qgbik7CiAK IC8qIFR5cGUgZm9yIHRoZSBjaXBoZXJfc3RkZWNyeXB0IGZ1bmN0aW9uLiAgKi8KIHR5cGVkZWYg dm9pZCAoKmdjcnlfY2lwaGVyX3N0ZGVjcnlwdF90KSAodm9pZCAqYywKIAkJCQkJIHVuc2lnbmVk IGNoYXIgKm91dGJ1ZiwKIAkJCQkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmluYnVmLAotCQkJCQkg dW5zaWduZWQgaW50IG4pOworCQkJCQkgZ3J1Yl9zaXplX3Qgbik7CisKK3R5cGVkZWYgdm9pZCAo KnNlbGZ0ZXN0X3JlcG9ydF9mdW5jX3QpKGNvbnN0IGNoYXIgKmRvbWFpbiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBhbGdvLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqd2hhdCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycmRlc2MpOworCisvKiBUaGUgdHlw ZSB1c2VkIHRvIGNvbnZleSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIGEgY2lwaGVyLiAgKi8K K3R5cGVkZWYgZ3BnX2Vycl9jb2RlX3QgKCpnY3J5X2NpcGhlcl9zZXRfZXh0cmFfaW5mb190KQor ICAgICAodm9pZCAqYywgaW50IHdoYXQsIGNvbnN0IHZvaWQgKmJ1ZmZlciwgZ3J1Yl9zaXplX3Qg YnVmbGVuKTsKKworLyogVGhlIHR5cGUgdXNlZCB0byBzZXQgYW4gSVYgZGlyZWN0bHkgaW4gdGhl IGFsZ29yaXRobSBtb2R1bGUuICAqLwordHlwZWRlZiB2b2lkICgqZ2NyeV9jaXBoZXJfc2V0aXZf ZnVuY190KSh2b2lkICpjLCBjb25zdCBncnViX3VpbnQ4X3QgKml2LCBncnViX3NpemVfdCBpdmxl bik7CisKKy8qIERlZmluaXRpb24gb2YgdGhlIHNlbGZ0ZXN0IGZ1bmN0aW9ucy4gICovCit0eXBl ZGVmIGdwZ19lcnJfY29kZV90ICgqZ2NyeV9zZWxmdGVzdF9mdW5jX3QpCisgICAgIChpbnQgYWxn bywgaW50IGV4dGVuZGVkLCBzZWxmdGVzdF9yZXBvcnRfZnVuY190IHJlcG9ydCk7CiAKIHR5cGVk ZWYgc3RydWN0IGdjcnlfY2lwaGVyX29pZF9zcGVjCiB7CkBAIC0xMjUsOSArMTczLDE0IEBAIHR5 cGVkZWYgc3RydWN0IGdjcnlfY2lwaGVyX29pZF9zcGVjCiAvKiBNb2R1bGUgc3BlY2lmaWNhdGlv biBzdHJ1Y3R1cmUgZm9yIGNpcGhlcnMuICAqLwogdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9jaXBoZXJf c3BlYwogeworICBpbnQgYWxnbzsKKyAgc3RydWN0IHsKKyAgICB1bnNpZ25lZCBpbnQgZGlzYWJs ZWQ6MTsKKyAgICB1bnNpZ25lZCBpbnQgZmlwczoxOworICB9IGZsYWdzOwogICBjb25zdCBjaGFy ICpuYW1lOwogICBjb25zdCBjaGFyICoqYWxpYXNlczsKLSAgZ2NyeV9jaXBoZXJfb2lkX3NwZWNf dCAqb2lkczsKKyAgY29uc3QgZ2NyeV9jaXBoZXJfb2lkX3NwZWNfdCAqb2lkczsKICAgZ3J1Yl9z aXplX3QgYmxvY2tzaXplOwogICBncnViX3NpemVfdCBrZXlsZW47CiAgIGdydWJfc2l6ZV90IGNv bnRleHRzaXplOwpAQCAtMTM2LDYgKzE4OSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBnY3J5X2NpcGhl cl9zcGVjCiAgIGdjcnlfY2lwaGVyX2RlY3J5cHRfdCBkZWNyeXB0OwogICBnY3J5X2NpcGhlcl9z dGVuY3J5cHRfdCBzdGVuY3J5cHQ7CiAgIGdjcnlfY2lwaGVyX3N0ZGVjcnlwdF90IHN0ZGVjcnlw dDsKKyAgZ2NyeV9zZWxmdGVzdF9mdW5jX3Qgc2VsZnRlc3Q7CisgIGdjcnlfY2lwaGVyX3NldF9l eHRyYV9pbmZvX3Qgc2V0X2V4dHJhX2luZm87CisgIGdjcnlfY2lwaGVyX3NldGl2X2Z1bmNfdCBz ZXRpdjsKKwogI2lmZGVmIEdSVUJfVVRJTAogICBjb25zdCBjaGFyICptb2RuYW1lOwogI2VuZGlm CkBAIC0xNDMsNyArMjAwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9jaXBoZXJfc3BlYwogfSBn Y3J5X2NpcGhlcl9zcGVjX3Q7CiAKIC8qIFR5cGUgZm9yIHRoZSBtZF9pbml0IGZ1bmN0aW9uLiAg Ki8KLXR5cGVkZWYgdm9pZCAoKmdjcnlfbWRfaW5pdF90KSAodm9pZCAqYyk7Cit0eXBlZGVmIHZv aWQgKCpnY3J5X21kX2luaXRfdCkgKHZvaWQgKmMsIHVuc2lnbmVkIGludCBmbGFncyk7CiAKIC8q IFR5cGUgZm9yIHRoZSBtZF93cml0ZSBmdW5jdGlvbi4gICovCiB0eXBlZGVmIHZvaWQgKCpnY3J5 X21kX3dyaXRlX3QpICh2b2lkICpjLCBjb25zdCB2b2lkICpidWYsIGdydWJfc2l6ZV90IG5ieXRl cyk7CkBAIC0xNjIsMTYgKzIxOSwyNCBAQCB0eXBlZGVmIHN0cnVjdCBnY3J5X21kX29pZF9zcGVj CiAvKiBNb2R1bGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUgZm9yIG1lc3NhZ2UgZGlnZXN0cy4g ICovCiB0eXBlZGVmIHN0cnVjdCBnY3J5X21kX3NwZWMKIHsKKyAgaW50IGFsZ287CisgIHN0cnVj dCB7CisgICAgdW5zaWduZWQgaW50IGRpc2FibGVkOjE7CisgICAgdW5zaWduZWQgaW50IGZpcHM6 MTsKKyAgfSBmbGFnczsKICAgY29uc3QgY2hhciAqbmFtZTsKLSAgdW5zaWduZWQgY2hhciAqYXNu b2lkOworICBjb25zdCB1bnNpZ25lZCBjaGFyICphc25vaWQ7CiAgIGludCBhc25sZW47Ci0gIGdj cnlfbWRfb2lkX3NwZWNfdCAqb2lkczsKKyAgY29uc3QgZ2NyeV9tZF9vaWRfc3BlY190ICpvaWRz OwogICBncnViX3NpemVfdCBtZGxlbjsKICAgZ2NyeV9tZF9pbml0X3QgaW5pdDsKICAgZ2NyeV9t ZF93cml0ZV90IHdyaXRlOwogICBnY3J5X21kX2ZpbmFsX3QgZmluYWw7CiAgIGdjcnlfbWRfcmVh ZF90IHJlYWQ7CisgIHZvaWQgKmV4dHJhY3Q7CisgIHZvaWQgKmhhc2hfYnVmZmVyczsKICAgZ3J1 Yl9zaXplX3QgY29udGV4dHNpemU7IC8qIGFsbG9jYXRlIHRoaXMgYW1vdW50IG9mIGNvbnRleHQg Ki8KKwogICAvKiBCbG9jayBzaXplLCBuZWVkZWQgZm9yIEhNQUMuICAqLwogICBncnViX3NpemVf dCBibG9ja3NpemU7CiAjaWZkZWYgR1JVQl9VVElMCkBAIC0xODAsNTQgKzI0NSwxMjMgQEAgdHlw ZWRlZiBzdHJ1Y3QgZ2NyeV9tZF9zcGVjCiAgIHN0cnVjdCBnY3J5X21kX3NwZWMgKm5leHQ7CiB9 IGdjcnlfbWRfc3BlY190OwogCit0eXBlZGVmIHN0cnVjdCBnY3J5X21kX2hhbmRsZSpnY3J5X21k X2hkX3Q7CisKIHN0cnVjdCBnY3J5X21waTsKIHR5cGVkZWYgc3RydWN0IGdjcnlfbXBpICpnY3J5 X21waV90OwogCitzdHJ1Y3QgZ2NyeV9zZXhwOwordHlwZWRlZiBzdHJ1Y3QgZ2NyeV9zZXhwICpn Y3J5X3NleHBfdDsKKworCisjZGVmaW5lIFBVQktFWV9GTEFHX05PX0JMSU5ESU5HICAgICgxIDw8 IDApCisjZGVmaW5lIFBVQktFWV9GTEFHX1JGQzY5NzkgICAgICAgICgxIDw8IDEpCisjZGVmaW5l IFBVQktFWV9GTEFHX0ZJWEVETEVOICAgICAgICgxIDw8IDIpCisjZGVmaW5lIFBVQktFWV9GTEFH X0xFR0FDWVJFU1VMVCAgICgxIDw8IDMpCisjZGVmaW5lIFBVQktFWV9GTEFHX1JBV19GTEFHICAg ICAgICgxIDw8IDQpCisjZGVmaW5lIFBVQktFWV9GTEFHX1RSQU5TSUVOVF9LRVkgICgxIDw8IDUp CisjZGVmaW5lIFBVQktFWV9GTEFHX1VTRV9YOTMxICAgICAgICgxIDw8IDYpCisjZGVmaW5lIFBV QktFWV9GTEFHX1VTRV9GSVBTMTg2ICAgICgxIDw8IDcpCisjZGVmaW5lIFBVQktFWV9GTEFHX1VT RV9GSVBTMTg2XzIgICgxIDw8IDgpCisjZGVmaW5lIFBVQktFWV9GTEFHX1BBUkFNICAgICAgICAg ICgxIDw8IDkpCisjZGVmaW5lIFBVQktFWV9GTEFHX0NPTVAgICAgICAgICAgICgxIDw8IDEwKQor I2RlZmluZSBQVUJLRVlfRkxBR19OT0NPTVAgICAgICAgICAoMSA8PCAxMSkKKyNkZWZpbmUgUFVC S0VZX0ZMQUdfRUREU0EgICAgICAgICAgKDEgPDwgMTIpCisjZGVmaW5lIFBVQktFWV9GTEFHX0dP U1QgICAgICAgICAgICgxIDw8IDEzKQorI2RlZmluZSBQVUJLRVlfRkxBR19OT19LRVlURVNUICAg ICAoMSA8PCAxNCkKKyNkZWZpbmUgUFVCS0VZX0ZMQUdfREpCX1RXRUFLICAgICAgKDEgPDwgMTUp CisjZGVmaW5lIFBVQktFWV9GTEFHX1NNMiAgICAgICAgICAgICgxIDw8IDE2KQorI2RlZmluZSBQ VUJLRVlfRkxBR19QUkVIQVNIICAgICAgICAoMSA8PCAxNykKKworZW51bSBwa19vcGVyYXRpb24K KyAgeworICAgIFBVQktFWV9PUF9FTkNSWVBULAorICAgIFBVQktFWV9PUF9ERUNSWVBULAorICAg IFBVQktFWV9PUF9TSUdOLAorICAgIFBVQktFWV9PUF9WRVJJRlkKKyAgfTsKKworZW51bSBwa19l bmNvZGluZworICB7CisgICAgUFVCS0VZX0VOQ19SQVcsCisgICAgUFVCS0VZX0VOQ19QS0NTMSwK KyAgICBQVUJLRVlfRU5DX1BLQ1MxX1JBVywKKyAgICBQVUJLRVlfRU5DX09BRVAsCisgICAgUFVC S0VZX0VOQ19QU1MsCisgICAgUFVCS0VZX0VOQ19VTktOT1dOCisgIH07CisKK3N0cnVjdCBwa19l bmNvZGluZ19jdHgKK3sKKyAgZW51bSBwa19vcGVyYXRpb24gb3A7CisgIHVuc2lnbmVkIGludCBu Yml0czsKKworICBlbnVtIHBrX2VuY29kaW5nIGVuY29kaW5nOworICBpbnQgZmxhZ3M7CisKKyAg aW50IGhhc2hfYWxnbzsKKworICAvKiBmb3IgT0FFUCAqLworICB1bnNpZ25lZCBjaGFyICpsYWJl bDsKKyAgZ3J1Yl9zaXplX3QgbGFiZWxsZW47CisKKyAgLyogZm9yIFBTUyAqLworICBncnViX3Np emVfdCBzYWx0bGVuOworCisgIGludCAoKiB2ZXJpZnlfY21wKSAodm9pZCAqb3BhcXVlLCBnY3J5 X21waV90IHRtcCk7CisgIHZvaWQgKnZlcmlmeV9hcmc7Cit9OworCiAvKiBUeXBlIGZvciB0aGUg cGtfZ2VuZXJhdGUgZnVuY3Rpb24uICAqLwotdHlwZWRlZiBnY3J5X2Vycl9jb2RlX3QgKCpnY3J5 X3BrX2dlbmVyYXRlX3QpIChpbnQgYWxnbywKLQkJCQkJICAgICAgIHVuc2lnbmVkIGludCBuYml0 cywKLQkJCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgdXNlX2UsCi0JCQkJCSAgICAgICBnY3J5X21w aV90ICpza2V5LAotCQkJCQkgICAgICAgZ2NyeV9tcGlfdCAqKnJldGZhY3RvcnMpOwordHlwZWRl ZiBnY3J5X2Vycl9jb2RlX3QgKCpnY3J5X3BrX2dlbmVyYXRlX3QpIChnY3J5X3NleHBfdCBnZW5w YXJtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Ny eV9zZXhwX3QgKnJfc2tleSk7CiAKIC8qIFR5cGUgZm9yIHRoZSBwa19jaGVja19zZWNyZXRfa2V5 IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2NyeV9wa19jaGVja19z ZWNyZXRfa2V5X3QpIChpbnQgYWxnbywKLQkJCQkJCSAgICAgICBnY3J5X21waV90ICpza2V5KTsK K3R5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2NyeV9wa19jaGVja19zZWNyZXRfa2V5X3QpIChn Y3J5X3NleHBfdCBrZXlwYXJtcyk7CiAKIC8qIFR5cGUgZm9yIHRoZSBwa19lbmNyeXB0IGZ1bmN0 aW9uLiAgKi8KLXR5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2NyeV9wa19lbmNyeXB0X3QpIChp bnQgYWxnbywKLQkJCQkJICAgICAgZ2NyeV9tcGlfdCAqcmVzYXJyLAotCQkJCQkgICAgICBnY3J5 X21waV90IGRhdGEsCi0JCQkJCSAgICAgIGdjcnlfbXBpX3QgKnBrZXksCi0JCQkJCSAgICAgIGlu dCBmbGFncyk7Cit0eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfZW5jcnlwdF90KSAo Z2NyeV9zZXhwX3QgKnJfY2lwaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBnY3J5X3NleHBfdCBzX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ2NyeV9zZXhwX3Qga2V5cGFybXMpOwogCiAvKiBUeXBlIGZv ciB0aGUgcGtfZGVjcnlwdCBmdW5jdGlvbi4gICovCi10eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAo KmdjcnlfcGtfZGVjcnlwdF90KSAoaW50IGFsZ28sCi0JCQkJCSAgICAgIGdjcnlfbXBpX3QgKnJl c3VsdCwKLQkJCQkJICAgICAgZ2NyeV9tcGlfdCAqZGF0YSwKLQkJCQkJICAgICAgZ2NyeV9tcGlf dCAqc2tleSwKLQkJCQkJICAgICAgaW50IGZsYWdzKTsKK3R5cGVkZWYgZ2NyeV9lcnJfY29kZV90 ICgqZ2NyeV9wa19kZWNyeXB0X3QpIChnY3J5X3NleHBfdCAqcl9wbGFpbiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY3J5X3NleHBfdCBzX2RhdGEsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NyeV9zZXhwX3Qg a2V5cGFybXMpOwogCiAvKiBUeXBlIGZvciB0aGUgcGtfc2lnbiBmdW5jdGlvbi4gICovCi10eXBl ZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfc2lnbl90KSAoaW50IGFsZ28sCi0JCQkJCSAg IGdjcnlfbXBpX3QgKnJlc2FyciwKLQkJCQkJICAgZ2NyeV9tcGlfdCBkYXRhLAotCQkJCQkgICBn Y3J5X21waV90ICpza2V5KTsKK3R5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2NyeV9wa19zaWdu X3QpIChnY3J5X3NleHBfdCAqcl9zaWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ2NyeV9zZXhwX3Qgc19kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90IGtleXBhcm1zKTsKIAogLyogVHlwZSBmb3Ig dGhlIHBrX3ZlcmlmeSBmdW5jdGlvbi4gICovCi10eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdj cnlfcGtfdmVyaWZ5X3QpIChpbnQgYWxnbywKLQkJCQkJICAgICBnY3J5X21waV90IGhhc2gsCi0J CQkJCSAgICAgZ2NyeV9tcGlfdCAqZGF0YSwKLQkJCQkJICAgICBnY3J5X21waV90ICpwa2V5LAot CQkJCQkgICAgIGludCAoKmNtcCkgKHZvaWQgKiwgZ2NyeV9tcGlfdCksCi0JCQkJCSAgICAgdm9p ZCAqb3BhcXVldik7Cit0eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfdmVyaWZ5X3Qp IChnY3J5X3NleHBfdCBzX3NpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdjcnlfc2V4cF90IHNfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90IGtleXBhcm1zKTsKIAogLyogVHlwZSBmb3Ig dGhlIHBrX2dldF9uYml0cyBmdW5jdGlvbi4gICovCi10eXBlZGVmIHVuc2lnbmVkICgqZ2NyeV9w a19nZXRfbmJpdHNfdCkgKGludCBhbGdvLCBnY3J5X21waV90ICpwa2V5KTsKK3R5cGVkZWYgdW5z aWduZWQgKCpnY3J5X3BrX2dldF9uYml0c190KSAoZ2NyeV9zZXhwX3Qga2V5cGFybXMpOworCisv KiBUaGUgdHlwZSB1c2VkIHRvIGNvbXB1dGUgdGhlIGtleWdyaXAuICAqLwordHlwZWRlZiBncGdf ZXJyX2NvZGVfdCAoKnBrX2NvbXBfa2V5Z3JpcF90KSAoZ2NyeV9tZF9oZF90IG1kLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NyeV9zZXhwX3Qga2V5cGFy bSk7CisKKy8qIFRoZSB0eXBlIHVzZWQgdG8gcXVlcnkgYW4gRUNDIGN1cnZlIG5hbWUuICAqLwor dHlwZWRlZiBjb25zdCBjaGFyICooKnBrX2dldF9jdXJ2ZV90KShnY3J5X3NleHBfdCBrZXlwYXJt cywgaW50IGl0ZXJhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgKnJfbmJpdHMpOworCisvKiBUaGUgdHlwZSB1c2VkIHRvIHF1ZXJ5IEVDQyBj dXJ2ZSBwYXJhbWV0ZXJzIGJ5IG5hbWUuICAqLwordHlwZWRlZiBnY3J5X3NleHBfdCAoKnBrX2dl dF9jdXJ2ZV9wYXJhbV90KShjb25zdCBjaGFyICpuYW1lKTsKIAogLyogTW9kdWxlIHNwZWNpZmlj YXRpb24gc3RydWN0dXJlIGZvciBtZXNzYWdlIGRpZ2VzdHMuICAqLwogdHlwZWRlZiBzdHJ1Y3Qg Z2NyeV9wa19zcGVjCiB7CisgIGludCBhbGdvOworICBzdHJ1Y3QgeworICAgIHVuc2lnbmVkIGlu dCBkaXNhYmxlZDoxOworICAgIHVuc2lnbmVkIGludCBmaXBzOjE7CisgIH0gZmxhZ3M7CisgIGlu dCB1c2U7CiAgIGNvbnN0IGNoYXIgKm5hbWU7CiAgIGNvbnN0IGNoYXIgKiphbGlhc2VzOwogICBj b25zdCBjaGFyICplbGVtZW50c19wa2V5OwpAQCAtMjM1LDcgKzM2OSw2IEBAIHR5cGVkZWYgc3Ry dWN0IGdjcnlfcGtfc3BlYwogICBjb25zdCBjaGFyICplbGVtZW50c19lbmM7CiAgIGNvbnN0IGNo YXIgKmVsZW1lbnRzX3NpZzsKICAgY29uc3QgY2hhciAqZWxlbWVudHNfZ3JpcDsKLSAgaW50IHVz ZTsKICAgZ2NyeV9wa19nZW5lcmF0ZV90IGdlbmVyYXRlOwogICBnY3J5X3BrX2NoZWNrX3NlY3Jl dF9rZXlfdCBjaGVja19zZWNyZXRfa2V5OwogICBnY3J5X3BrX2VuY3J5cHRfdCBlbmNyeXB0OwpA QCAtMjQzLDYgKzM3NiwxMCBAQCB0eXBlZGVmIHN0cnVjdCBnY3J5X3BrX3NwZWMKICAgZ2NyeV9w a19zaWduX3Qgc2lnbjsKICAgZ2NyeV9wa192ZXJpZnlfdCB2ZXJpZnk7CiAgIGdjcnlfcGtfZ2V0 X25iaXRzX3QgZ2V0X25iaXRzOworICBwa19jb21wX2tleWdyaXBfdCBjb21wX2tleWdyaXA7Cisg IHBrX2dldF9jdXJ2ZV90IGdldF9jdXJ2ZTsKKyAgcGtfZ2V0X2N1cnZlX3BhcmFtX3QgZ2V0X2N1 cnZlX3BhcmFtOworCiAjaWZkZWYgR1JVQl9VVElMCiAgIGNvbnN0IGNoYXIgKm1vZG5hbWU7CiAj ZW5kaWYKQEAgLTM0NSw2ICs0ODIsMTAgQEAgZ3J1Yl9jcnlwdG9faGFzaCAoY29uc3QgZ2NyeV9t ZF9zcGVjX3QgKmhhc2gsIHZvaWQgKm91dCwgY29uc3Qgdm9pZCAqaW4sCiAJCSAgZ3J1Yl9zaXpl X3QgaW5sZW4pOwogY29uc3QgZ2NyeV9tZF9zcGVjX3QgKgogZ3J1Yl9jcnlwdG9fbG9va3VwX21k X2J5X25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpOworY29uc3QgZ2NyeV9tZF9zcGVjX3QgKgorZ3J1 Yl9jcnlwdG9fbG9va3VwX21kX2J5X2FsZ28gKGludCBhbGdvKTsKK2NvbnN0IGdjcnlfbWRfc3Bl Y190ICoKK2dydWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9vaWQgKGNvbnN0IGNoYXIgKm9pZCk7CiAK IGdydWJfZXJyX3QKIGdydWJfY3J5cHRvX2djcnlfZXJyb3IgKGdjcnlfZXJyX2NvZGVfdCBpbik7 CkBAIC00MDgsNyArNTQ5LDM1IEBAIHZvaWQgX2djcnlfYXNzZXJ0X2ZhaWxlZCAoY29uc3QgY2hh ciAqZXhwciwgY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsCiAKIHZvaWQgX2djcnlfYnVybl9z dGFjayAoaW50IGJ5dGVzKTsKIHZvaWQgX2djcnlfbG9nX2Vycm9yKCBjb25zdCBjaGFyICpmbXQs IC4uLiApICBfX2F0dHJpYnV0ZV9fICgoZm9ybWF0IChfX3ByaW50Zl9fLCAxLCAyKSkpOwordm9p ZCBfZ2NyeV9sb2dfaW5mbyAoY29uc3QgY2hhciAqZm10LCAuLi4pOwordm9pZCBfX2djcnlfYnVy bl9zdGFjayAodW5zaWduZWQgaW50IHNpemUpOwordm9pZCBfX2djcnlfYnVybl9zdGFja19kdW1t eSAodm9pZCk7Cit2b2lkIF9nY3J5X2J1ZyggY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsIGNv bnN0IGNoYXIgKmZ1bmMgKTsKK3ZvaWQKK19nY3J5X2Zhc3Rfd2lwZW1lbW9yeSAodm9pZCAqcHRy LCBncnViX3NpemVfdCBsZW4pOwordm9pZAorX2djcnlfZmFzdF93aXBlbWVtb3J5MiAodm9pZCAq cHRyLCBpbnQgc2V0LCBncnViX3NpemVfdCBsZW4pOwordW5zaWduZWQgaW50CitfZ2NyeV9jdF9t ZW1lcXVhbCAoY29uc3Qgdm9pZCAqYjEsIGNvbnN0IHZvaWQgKmIyLCBncnViX3NpemVfdCBsZW4p OwordW5zaWduZWQgaW50CitfZ2NyeV9jdF9ub3RfbWVtZXF1YWwgKGNvbnN0IHZvaWQgKmIxLCBj b25zdCB2b2lkICpiMiwgZ3J1Yl9zaXplX3QgbGVuKTsKKworCitzdGF0aWMgaW5saW5lIHVuc2ln bmVkIGludCBfZ2NyeV9nZXRfaHdfZmVhdHVyZXModm9pZCkKK3sKKyAgcmV0dXJuIDA7Cit9CiAK K3ZvaWQgKl9nY3J5X21hbGxvYyhncnViX3NpemVfdCBuKTsKK3ZvaWQgKl9nY3J5X21hbGxvY19z ZWN1cmUoZ3J1Yl9zaXplX3Qgbik7Cit2b2lkICpfZ2NyeV94bWFsbG9jKGdydWJfc2l6ZV90IG4p Owordm9pZCAqX2djcnlfeG1hbGxvY19zZWN1cmUoZ3J1Yl9zaXplX3Qgbik7Cit2b2lkIF9nY3J5 X2ZyZWUgKHZvaWQgKnApOwordm9pZCAqX2djcnlfeHJlYWxsb2MgKHZvaWQgKmEsIGdydWJfc2l6 ZV90IG4pOworaW50IF9nY3J5X2lzX3NlY3VyZSAoY29uc3Qgdm9pZCAqYSk7Cit2b2lkICpfZ2Ny eV94Y2FsbG9jIChncnViX3NpemVfdCBuLCBncnViX3NpemVfdCBtKTsKK3ZvaWQgKl9nY3J5X3hj YWxsb2Nfc2VjdXJlIChncnViX3NpemVfdCBuLCBncnViX3NpemVfdCBtKTsKK3ZvaWQgX2djcnlf ZGl2aWRlX2J5X3plcm8gKHZvaWQpOwogCiAjaWZkZWYgR1JVQl9VVElMCiB2b2lkIGdydWJfZ2Ny eV9pbml0X2FsbCAodm9pZCk7CkBAIC00MTksNCArNTg4LDExIEBAIGdydWJfZ2V0X3JhbmRvbSAo dm9pZCAqb3V0LCBncnViX3NpemVfdCBsZW4pOwogCiAjZW5kaWYKIAordHlwZWRlZiBzdHJ1Y3Qg X2dwZ3J0X2I2NHN0YXRlICpncGdydF9iNjRzdGF0ZV90OworZ3BncnRfYjY0c3RhdGVfdCBncGdy dF9iNjRkZWNfc3RhcnQgKGNvbnN0IGNoYXIgKnRpdGxlKTsKK2dwZ19lcnJvcl90ICAgICAgZ3Bn cnRfYjY0ZGVjX3Byb2MgKGdwZ3J0X2I2NHN0YXRlX3Qgc3RhdGUsCisJCQkJICAgIHZvaWQgKmJ1 ZmZlciwgZ3J1Yl9zaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ3J1Yl9zaXplX3QgKnJfbmJ5dGVzKTsKK2dwZ19lcnJvcl90ICAgICAgZ3BncnRfYjY0 ZGVjX2ZpbmlzaCAoZ3BncnRfYjY0c3RhdGVfdCBzdGF0ZSk7Citjb25zdCBjaGFyICpncGdfc3Ry ZXJyb3IgKGdwZ19lcnJvcl90IGVycik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ3J1 Yi9nY3J5cHQvZ3BnLWVycm9yLmggYi9pbmNsdWRlL2dydWIvZ2NyeXB0L2dwZy1lcnJvci5oCmlu ZGV4IDFlNDI1MDI4NC4uNDQ0YmVmMjIxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2dydWIvZ2NyeXB0 L2dwZy1lcnJvci5oCisrKyBiL2luY2x1ZGUvZ3J1Yi9nY3J5cHQvZ3BnLWVycm9yLmgKQEAgLTI5 LDQgKzI5LDEzIEBAIGdwZ19lcnJfc291cmNlIChncGdfZXJyb3JfdCBlcnIgX19hdHRyaWJ1dGVf XyAoKHVudXNlZCkpKQogZ2NyeV9lcnJfY29kZV90CiBncGdfZXJyb3JfZnJvbV9zeXNlcnJvciAo dm9pZCk7CiAKK2djcnlfZXJyX2NvZGVfdAorZ3BnX2Vycl9jb2RlX2Zyb21fc3lzZXJyb3IgKHZv aWQpOworCitnY3J5X2Vycl9jb2RlX3QKK2dwZ19lcnJvcl9mcm9tX2Vycm5vIChpbnQgZXJyKTsK KworZ2NyeV9lcnJfY29kZV90CitncGdfZXJyX2NvZGVfZnJvbV9lcnJubyAoaW50IGVycik7CisK ICNlbmRpZgpkaWZmIC0tZ2l0IGEvdXRpbC9ncnViLWZzdGVzdC5jIGIvdXRpbC9ncnViLWZzdGVz dC5jCmluZGV4IDdmZjkwMzdiOC4uMjRiMjBhYjkxIDEwMDY0NAotLS0gYS91dGlsL2dydWItZnN0 ZXN0LmMKKysrIGIvdXRpbC9ncnViLWZzdGVzdC5jCkBAIC0zNjUsNyArMzY1LDcgQEAgc3RhdGlj IHZvaWQKIGNtZF9jcmMgKGNoYXIgKnBhdGhuYW1lKQogewogICBncnViX3VpbnQ4X3QgKmNyYzMy X2NvbnRleHQgPSB4bWFsbG9jIChHUlVCX01EX0NSQzMyLT5jb250ZXh0c2l6ZSk7Ci0gIEdSVUJf TURfQ1JDMzItPmluaXQoY3JjMzJfY29udGV4dCk7CisgIEdSVUJfTURfQ1JDMzItPmluaXQoY3Jj MzJfY29udGV4dCwgMCk7CiAKICAgcmVhZF9maWxlIChwYXRobmFtZSwgY3JjX2hvb2ssIGNyYzMy X2NvbnRleHQpOwogICBHUlVCX01EX0NSQzMyLT5maW5hbChjcmMzMl9jb250ZXh0KTsKZGlmZiAt LWdpdCBhL3V0aWwvaW1wb3J0X2djcnkucHkgYi91dGlsL2ltcG9ydF9nY3J5LnB5CmluZGV4IDJi MzMyMmQzYS4uNDg5MzU2ZDM3IDEwMDY0NAotLS0gYS91dGlsL2ltcG9ydF9nY3J5LnB5CisrKyBi L3V0aWwvaW1wb3J0X2djcnkucHkKQEAgLTIyLDYgKzIyLDIzIEBAIGltcG9ydCBvcwogaW1wb3J0 IGRhdGV0aW1lCiBpbXBvcnQgY29kZWNzCiAKK2RlZiByZW1vdmVzdWZmaXgoYmFzZTogc3RyLCBz dWZmaXg6IHN0cikgLT4gc3RyOgorICAgICIiIiBCYWNrcG9ydCBvZiBgcmVtb3Zlc3VmZml4YCBm cm9tIFBFUC02MTYgKFB5dGhvbiAzLjkrKSAiIiIKKworICAgIGlmIGJhc2UuZW5kc3dpdGgoc3Vm Zml4KToKKyAgICAgICAgcmV0dXJuIGJhc2VbOi1sZW4oc3VmZml4KV0KKyAgICBlbHNlOgorICAg ICAgICByZXR1cm4gYmFzZQorCisKK2RlZiByZW1vdmVwcmVmaXgoYmFzZTogc3RyLCBwcmVmaXg6 IHN0cikgLT4gc3RyOgorICAgICIiIiBCYWNrcG9ydCBvZiBgcmVtb3ZlcHJlZml4YCBmcm9tIFBF UC02MTYgKFB5dGhvbiAzLjkrKSAiIiIKKworICAgIGlmIGJhc2Uuc3RhcnRzd2l0aChwcmVmaXgp OgorICAgICAgICByZXR1cm4gYmFzZVtsZW4ocHJlZml4KTpdCisgICAgZWxzZToKKyAgICAgICAg cmV0dXJuIGJhc2UKKwogaWYgbGVuIChzeXMuYXJndikgPCAzOgogICAgIHByaW50ICgiVXNhZ2U6 ICVzIFNPVVJDRSBERVNUSU5BVElPTiIgJSBzeXMuYXJndlswXSkKICAgICBleGl0ICgwKQpAQCAt NjIsNiArNzksMTIgQEAgY29uZnV0aWwud3JpdGUgKCIgIGNmbGFncyA9ICckKENGTEFHU19HQ1JZ KSc7XG4iKTsKIGNvbmZ1dGlsLndyaXRlICgiICBjcHBmbGFncyA9ICckKENQUEZMQUdTX0dDUlkp JztcbiIpOwogY29uZnV0aWwud3JpdGUgKCIgIGV4dHJhX2Rpc3QgPSBncnViLWNvcmUvbGliL2xp YmdjcnlwdC1ncnViL2NpcGhlci9DaGFuZ2VMb2c7XG4iKTsKIGNvbmZ1dGlsLndyaXRlICgiXG4i KTsKKworZm9yIHNyYyBpbiBbJ3NyYy9jb25zdC10aW1lLmMnXToKKyAgICBjb25mdXRpbC53cml0 ZSAoIiAgY29tbW9uID0gZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi8lcztcbiIgJSBzcmMp CisKK2NvbmZ1dGlsLndyaXRlICgiXG4iKTsKKwogY2hsb2cgPSAiIgogbW9kdWxlc19zeW1fbWQg PSBbXQogCkBAIC03OSwxMCArMTAyLDI1IEBAIG1kYmxvY2tzaXplcyA9IHsiX2djcnlfZGlnZXN0 X3NwZWNfY3JjMzIiIDogNjQsCiAgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3No YTI1NiIgOiA2NCwKICAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hhMzg0IiA6 IDEyOCwKICAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hhNTEyIiA6IDEyOCwK KyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hhNTEyXzI1NiI6IDEyOCwKKyAg ICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hhNTEyXzIyNCI6IDEyOCwKICAgICAg ICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfdGlnZXIiIDogNjQsCiAgICAgICAgICAgICAg ICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3RpZ2VyMSIgOiA2NCwKICAgICAgICAgICAgICAgICAiX2dj cnlfZGlnZXN0X3NwZWNfdGlnZXIyIiA6IDY0LAotICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdl c3Rfc3BlY193aGlybHBvb2wiIDogNjR9CisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9z cGVjX3doaXJscG9vbCIgOiA2NCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNf c2hha2UxMjgiOiA2NCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hha2Uy NTYiOiA2NCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc20zIjogNjQsCisg ICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3N0cmlib2dfMjU2IjogNjQsCisgICAg ICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3N0cmlib2dfNTEyIjogNjQsCisgICAgICAg ICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTNfMjI0IjogMTE1MiAvIDgsCisgICAgICAg ICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTNfMjU2IjogMTA4OCAvIDgsCisgICAgICAg ICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTNfMzg0IjogODMyIC8gOCwKKyAgICAgICAg ICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfc2hhM181MTIiOiA1NzYgLyA4LAorICAgICAgICAg ICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19nb3N0MzQxMV85NCI6IDMyLAorICAgICAgICAgICAg ICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19nb3N0MzQxMV9jcCI6IDMyLAorICAgICAgICAgICAgICAg ICJfZ2NyeV9kaWdlc3Rfc3BlY19jc2hha2UxMjgiOiA2NCwKKyAgICAgICAgICAgICAgICAiX2dj cnlfZGlnZXN0X3NwZWNfY3NoYWtlMjU2IjogNjR9CiAKIGNyeXB0b2xpc3QgPSBjb2RlY3Mub3Bl biAob3MucGF0aC5qb2luIChjaXBoZXJfZGlyX291dCwgImNyeXB0by5sc3QiKSwgInciLCAidXRm LTgiKQogCkBAIC05OSwyNiArMTM3LDU0IEBAIGNyeXB0b2xpc3Qud3JpdGUgKCJBRVMtMjU2OiBn Y3J5X3Jpam5kYWVsXG4iKTsKIGNyeXB0b2xpc3Qud3JpdGUgKCJBRExFUjMyOiBhZGxlcjMyXG4i KTsKIGNyeXB0b2xpc3Qud3JpdGUgKCJDUkM2NDogY3JjNjRcbiIpOwogCitleHRyYV9maWxlcyA9 IHsKKyAgICAiZ2NyeV9jYW1lbGxpYSI6IFsiY2FtZWxsaWEuYyJdLCAjIE1haW4gZmlsZSBpcyBj YW1lbGxpYS1nbHVlLmMKKyAgICAiZ2NyeV9zaGE1MTIiICA6IFsiaGFzaC1jb21tb24uYyJdLAor fQorZXh0cmFfZmlsZXNfbGlzdCA9IFt4IGZvciB4cyBpbiBleHRyYV9maWxlcy52YWx1ZXMoKSBm b3IgeCBpbiB4c10gKyBbInB1YmtleS11dGlsLmMiLCAicnNhLWNvbW1vbi5jIiwgImRzYS1jb21t b24uYyIsICJtZC5jIl0KKwogZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICBp bmZpbGUgPSBvcy5wYXRoLmpvaW4gKGNpcGhlcl9kaXJfaW4sIGNpcGhlcl9maWxlKQogICAgIG91 dGZpbGUgPSBvcy5wYXRoLmpvaW4gKGNpcGhlcl9kaXJfb3V0LCBjaXBoZXJfZmlsZSkKICAgICBp ZiBjaXBoZXJfZmlsZSA9PSAiQ2hhbmdlTG9nIiBvciBjaXBoZXJfZmlsZSA9PSAiQ2hhbmdlTG9n LTIwMTEiOgogICAgICAgICBjb250aW51ZQogICAgIGNobG9nbmV3ID0gIgkqICVzIiAlIGNpcGhl cl9maWxlCi0gICAgaWYgcmUubWF0Y2ggKCIoTWFuaWZlc3R8TWFrZWZpbGVcLmFtfGFjXC5jfGNp cGhlclwuY3xoYXNoLWNvbW1vblwuY3xobWFjLXRlc3RzXC5jfG1kXC5jfHB1YmtleVwuYykkIiwg Y2lwaGVyX2ZpbGUpIG9yIGNpcGhlcl9maWxlID09ICJrZGYuYyIgb3IgY2lwaGVyX2ZpbGUgPT0g ImVsZ2FtYWwuYyIgb3IgY2lwaGVyX2ZpbGUgPT0gInByaW1lZ2VuLmMiIG9yIGNpcGhlcl9maWxl ID09ICJlY2MuYyIgb3IgY2lwaGVyX2ZpbGUgPT0gInRlc3QtZ2V0cnVzYWdlLmMiOgorICAgICMg VW51c2VkIGdlbmVyaWMgc3VwcG9ydCBmaWxlcworICAgIGlmIHJlLm1hdGNoIChyIihNYWtlZmls ZVwuYW18cHJpbWVnZW5cLmN8Y2lwaGVyXC5jfGNpcGhlci0uKlwuY3xtYWMtLipcLmN8bWFjXC5j fHB1YmtleVwuYykkIiwgY2lwaGVyX2ZpbGUpOgorICAgICAgICBjaGxvZyA9ICIlcyVzOiBSZW1v dmVkXG4iICUgKGNobG9nLCBjaGxvZ25ldykKKyAgICAgICAgY29udGludWUKKyAgICAjIFRPRE86 IFN1cHBvcnQgS0RGCisgICAgaWYgcmUubWF0Y2ggKHIiKGtkZlwuY3xzY3J5cHRcLmMpJCIsIGNp cGhlcl9maWxlKToKKyAgICAgICAgY2hsb2cgPSAiJXMlczogUmVtb3ZlZFxuIiAlIChjaGxvZywg Y2hsb2duZXcpCisgICAgICAgIGNvbnRpbnVlCisgICAgIyBUT0RPOiBTdXBwb3J0IGNoYWNoYTIw IGFuZCBwb2x5MTMwNQorICAgICMgVE9ETzogU3VwcG9ydCBFQ0MKKyAgICAjIFRPRE86IFN1cHBv cnQgcXVhbnR1bS1yZXNpc3RhbnQKKyAgICBpZiBjaXBoZXJfZmlsZSBpbiBbInBvbHkxMzA1LmMi LCAiY2hhY2hhMjAuYyIsICJlY2MuYyIsICJlbGdhbWFsLmMiLAorICAgICAgICAgICAgICAgICAg ICAgICAic250cnVwNzYxLmMiLCAibWNlbGllY2U2Njg4MTI4Zi5jIiwgImt5YmVyLWNvbW1vbi5j IiwgImt5YmVyLmMiLCAia3liZXIta2RlcC5jIiwgImtlbS1lY2MuYyIsICJrZW0uYyJdIG9yIHJl Lm1hdGNoIChyIl5lY2MtLipcLmMkIiwgY2lwaGVyX2ZpbGUpOgorICAgICAgICBjaGxvZyA9ICIl cyVzOiBSZW1vdmVkXG4iICUgKGNobG9nLCBjaGxvZ25ldykKKyAgICAgICAgY29udGludWUKKyAg ICAjIFRPRE86IFVzZSBvcHRpbWl6ZWQgdmVyc2lvbnMKKyAgICBpZiByZS5tYXRjaCAociIoLipc LltzU118LiotaW50ZWwtc2hhZXh0XC5jfC4qLXNzc2UzLWkzODZcLmN8LiotcHBjXC5jfC4qLXNz c2UzLWFtZDY0XC5jfC4qLXMzOTB4XC5jfHJpam5kYWVsLWFlc25pXC5jfGNyYy1pbnRlbC1wY2xt dWxcLmN8LiotYXJtdjgtY2UuY3wuKi1hYXJjaDY0LWNlXC5jfC4qLXAxMGxlXC5jfHJpam5kYWVs LXBhZGxvY2suY3wuKi1wcGNbODldbGUuY3xyaWpuZGFlbC12YWVzLmN8cmlqbmRhZWwtdmFlcy1p Mzg2LmN8c2VycGVudC1hdng1MTIteDg2LmMpJCIsIGNpcGhlcl9maWxlKToKKyAgICAgICAgY2hs b2cgPSAiJXMlczogUmVtb3ZlZFxuIiAlIChjaGxvZywgY2hsb2duZXcpCisgICAgICAgIGNvbnRp bnVlCisgICAgIyBXZSB1c2UgcHJlZ2VuZXJhdGVkIHZlcnNpb24KKyAgICBpZiBjaXBoZXJfZmls ZSA9PSAiZ29zdC1zLWJveC5jIjoKICAgICAgICAgY2hsb2cgPSAiJXMlczogUmVtb3ZlZFxuIiAl IChjaGxvZywgY2hsb2duZXcpCiAgICAgICAgIGNvbnRpbnVlCiAgICAgIyBBdXRvZ2VuZXJhdGVk IGZpbGVzLiBOb3QgZXZlbiB3b3J0aCBtZW50aW9ubmluZyBpbiBDaGFuZ2VMb2cKLSAgICBpZiBy ZS5tYXRjaCAoIk1ha2VmaWxlXC5pbiQiLCBjaXBoZXJfZmlsZSk6CisgICAgaWYgcmUubWF0Y2gg KHIiTWFrZWZpbGVcLmluJCIsIGNpcGhlcl9maWxlKToKICAgICAgICAgY29udGludWUKICAgICBu Y2ggPSBGYWxzZQotICAgIGlmIHJlLm1hdGNoICgiLipcLltjaF0kIiwgY2lwaGVyX2ZpbGUpOgot ICAgICAgICBpc2MgPSByZS5tYXRjaCAoIi4qXC5jJCIsIGNpcGhlcl9maWxlKQorICAgIGlmIHJl Lm1hdGNoIChyIi4qXC5bY2hdJCIsIGNpcGhlcl9maWxlKToKKyAgICAgICAgaXNjID0gcmUubWF0 Y2ggKHIiLipcLmMkIiwgY2lwaGVyX2ZpbGUpCiAgICAgICAgIGYgPSBjb2RlY3Mub3BlbiAoaW5m aWxlLCAiciIsICJ1dGYtOCIpCiAgICAgICAgIGZ3ID0gY29kZWNzLm9wZW4gKG91dGZpbGUsICJ3 IiwgInV0Zi04IikKICAgICAgICAgZncud3JpdGUgKCIvKiBUaGlzIGZpbGUgd2FzIGF1dG9tYXRp Y2FsbHkgaW1wb3J0ZWQgd2l0aCBcbiIpCiAgICAgICAgIGZ3LndyaXRlICgiICAgaW1wb3J0X2dj cnkucHkuIFBsZWFzZSBkb24ndCBtb2RpZnkgaXQgKi9cbiIpCi0gICAgICAgIGZ3LndyaXRlICgi I2luY2x1ZGUgPGdydWIvZGwuaD5cbiIpCisgICAgICAgIGFkZF9saWNlbnNlID0gY2lwaGVyX2Zp bGUgPT0gInB1YmtleS11dGlsLmMiIG9yIChpc2MgYW5kIG5vdCBjaXBoZXJfZmlsZSBpbiBleHRy YV9maWxlc19saXN0KQorICAgICAgICBpZiBhZGRfbGljZW5zZToKKyAgICAgICAgICAgIGZ3Lndy aXRlICgiI2luY2x1ZGUgPGdydWIvZGwuaD5cbiIpCiAgICAgICAgIGlmIGNpcGhlcl9maWxlID09 ICJjYW1lbGxpYS5oIjoKICAgICAgICAgICAgIGZ3LndyaXRlICgiI2luY2x1ZGUgPGdydWIvbWlz Yy5oPlxuIikKICAgICAgICAgICAgIGZ3LndyaXRlICgidm9pZCBjYW1lbGxpYV9zZXR1cDEyOChj b25zdCB1bnNpZ25lZCBjaGFyICprZXksIGdydWJfdWludDMyX3QgKnN1YmtleSk7XG4iKQpAQCAt MTMyLDcgKzE5OCw3IEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAg ICAgICBmdy53cml0ZSAoInZvaWQgY2FtZWxsaWFfZGVjcnlwdDI1Nihjb25zdCBncnViX3VpbnQz Ml90ICpzdWJrZXksIGdydWJfdWludDMyX3QgKmlvKTtcbiIpICAgICAgICAgICAgICAgICAgICAg IAogICAgICAgICAgICAgZncud3JpdGUgKCIjZGVmaW5lIG1lbWNweSBncnViX21lbWNweVxuIikK ICAgICAgICAgIyBXaG9sZSBsaWJnY3J5cHQgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgR1BMdjMrIG9y IGNvbXBhdGlibGUKLSAgICAgICAgaWYgaXNjOgorICAgICAgICBpZiBhZGRfbGljZW5zZToKICAg ICAgICAgICAgIGZ3LndyaXRlICgiR1JVQl9NT0RfTElDRU5TRSAoXCJHUEx2MytcIik7XG4iKQog CiAgICAgICAgIGNpcGhlcm5hbWVzID0gW10KQEAgLTE0OCwxNCArMjE0LDEwIEBAIGZvciBjaXBo ZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgIGlzY2lwaGVyID0gRmFsc2UKICAgICAg ICAgaXNjcnlwdG9zdGFydCA9IEZhbHNlCiAgICAgICAgIGlzY29tbWEgPSBGYWxzZQotICAgICAg ICBpc2dsdWUgPSBGYWxzZQogICAgICAgICBza2lwX3N0YXRlbWVudCA9IEZhbHNlCisgICAgICAg IHNraXBfY29tbWEgPSBGYWxzZQogICAgICAgICBpZiBpc2M6Ci0gICAgICAgICAgICBtb2RuYW1l ID0gY2lwaGVyX2ZpbGUgWzA6bGVuKGNpcGhlcl9maWxlKSAtIDJdCi0gICAgICAgICAgICBpZiBy ZS5tYXRjaCAoIi4qLWdsdWUkIiwgbW9kbmFtZSk6Ci0gICAgICAgICAgICAgICAgbW9kbmFtZSA9 IG1vZG5hbWUucmVwbGFjZSAoIi1nbHVlIiwgIiIpCi0gICAgICAgICAgICAgICAgaXNnbHVlID0g VHJ1ZQotICAgICAgICAgICAgbW9kbmFtZSA9ICJnY3J5XyVzIiAlIG1vZG5hbWUKKyAgICAgICAg ICAgIG1vZG5hbWUgPSAiZ2NyeV8lcyIgJSByZW1vdmVzdWZmaXgocmVtb3Zlc3VmZml4KGNpcGhl cl9maWxlLCAiLmMiKSwgIi1nbHVlIikucmVwbGFjZSgiLSIsICJfIikKICAgICAgICAgZm9yIGxp bmUgaW4gZjoKICAgICAgICAgICAgIGxpbmUgPSBsaW5lCiAgICAgICAgICAgICBpZiBza2lwX3N0 YXRlbWVudDoKQEAgLTE3MSw3ICsyMzMsNyBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2Zp bGVzOgogICAgICAgICAgICAgICAgICAgICBza2lwMiA9IEZhbHNlCiAgICAgICAgICAgICAgICAg Y29udGludWUKICAgICAgICAgICAgIGlmIGlzY3J5cHRvc3RhcnQ6Ci0gICAgICAgICAgICAgICAg cyA9IHJlLnNlYXJjaCAoIiAqXCIoW0EtWjAtOV9hLXpdKilcIiIsIGxpbmUpCisgICAgICAgICAg ICAgICAgcyA9IHJlLnNlYXJjaCAoIiAqXCIoW0EtWjAtOV9hLXotXSopXCIiLCBsaW5lKQogICAg ICAgICAgICAgICAgIGlmIG5vdCBzIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgICAgIHNnID0g cy5ncm91cHMoKVswXQogICAgICAgICAgICAgICAgICAgICBjcnlwdG9saXN0LndyaXRlICgoIiVz OiAlc1xuIikgJSAoc2csIG1vZG5hbWUpKQpAQCAtMjAxLDcgKzI2Myw3IEBAIGZvciBjaXBoZXJf ZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICAgICAgICAgIGlzcGsgPSBGYWxzZQog ICAgICAgICAgICAgICAgIGlzY29tbWEgPSBub3QgcmUuc2VhcmNoICgiLCQiLCBsaW5lKSBpcyBO b25lCiAgICAgICAgICAgICAjIFVzZWQgb25seSBmb3Igc2VsZnRlc3RzLgotICAgICAgICAgICAg bSA9IHJlLm1hdGNoICgiKHN0YXRpYyBieXRlfHN0YXRpYyB1bnNpZ25lZCBjaGFyKSAod2Vha19r ZXlzX2Noa3N1bSlcW1swLTldKlxdID0iLCBsaW5lKQorICAgICAgICAgICAgbSA9IHJlLm1hdGNo IChyIihzdGF0aWMgYnl0ZXxzdGF0aWMgdW5zaWduZWQgY2hhcnxzdGF0aWMgY29uc3QgZ2NyeV9t ZF9zcGVjX3QgXCogY29uc3QpICh3ZWFrX2tleXNfY2hrc3VtfGRpZ2VzdF9saXN0KVxbWzAtOV0q XF0gPSIsIGxpbmUpCiAgICAgICAgICAgICBpZiBub3QgbSBpcyBOb25lOgogICAgICAgICAgICAg ICAgIHNraXAgPSAxCiAgICAgICAgICAgICAgICAgZm5hbWUgPSBtLmdyb3VwcyAoKVsxXQpAQCAt MjEyLDExICsyNzQsMTQgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAg ICAgICAgICAgICAgICAgY2hsb2duZXcgPSAiJXMgJXMiICUgKGNobG9nbmV3LCBjaG1zZykKICAg ICAgICAgICAgICAgICAgICAgbmNoID0gVHJ1ZQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCisg ICAgICAgICAgICBpZiAobm90IGhvbGQpIGFuZCAocmUubWF0Y2ggKHIiWyBcdF0qKHJ1bl9zZWxm dGVzdHN8ZG9fdHJpcGxlZGVzX3NldF9leHRyYV9pbmZvKSw/IiwgbGluZSkgaXMgbm90IE5vbmUp OgorICAgICAgICAgICAgICAgIGlzY29tbWEgPSBUcnVlCisgICAgICAgICAgICAgICAgbGluZSA9 ICIiCiAgICAgICAgICAgICBpZiBob2xkOgogICAgICAgICAgICAgICAgIGhvbGQgPSBGYWxzZQog ICAgICAgICAgICAgICAgICMgV2UncmUgb3B0aW1pc2luZyBmb3Igc2l6ZSBhbmQgZXhjbHVkZSBh bnl0aGluZyBuZWVkaW5nIGdvb2QKICAgICAgICAgICAgICAgICAjIHJhbmRvbW5lc3MuCi0gICAg ICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgiKHJ1bl9zZWxmdGVzdHN8c2VsZnRlc3R8X2dj cnlfYWVzX2MuLl8uLmN8X2djcnlfW2EtejAtOV0qX2hhc2hfYnVmZmVyfHRyaXBsZWRlc19zZXQy a2V5c3xkb190cmlwbGVkZXNfc2V0X2V4dHJhX2luZm98X2djcnlfcm1kMTYwX21peGJsb2NrfHNl cnBlbnRfdGVzdHxkc2FfZ2VuZXJhdGVfZXh0fHRlc3Rfa2V5c3xnZW5fa3xzaWdufGdlbl94OTMx X3Bhcm1feHB8Z2VuZXJhdGVfeDkzMXxnZW5lcmF0ZV9rZXl8ZHNhX2dlbmVyYXRlfGRzYV9zaWdu fGVjY19zaWdufGdlbmVyYXRlfGdlbmVyYXRlX2ZpcHMxODZ8X2djcnlfcmVnaXN0ZXJfcGtfZHNh X3Byb2dyZXNzfF9nY3J5X3JlZ2lzdGVyX3BrX2VjY19wcm9ncmVzc3xwcm9ncmVzc3xzY2FudmFs fGVjMm9zfGVjY19nZW5lcmF0ZV9leHR8ZWNjX2dlbmVyYXRlfGNvbXB1dGVfa2V5Z3JpcHxlY2Nf Z2V0X3BhcmFtfF9nY3J5X3JlZ2lzdGVyX3BrX2RzYV9wcm9ncmVzc3xnZW5feDkzMV9wYXJtX3hw fGdlbl94OTMxX3Bhcm1feGl8cnNhX2RlY3J5cHR8cnNhX3NpZ258cnNhX2dlbmVyYXRlX2V4dHxy c2FfZ2VuZXJhdGV8c2VjcmV0fGNoZWNrX2V4cG9uZW50fHJzYV9ibGluZHxyc2FfdW5ibGluZHxl eHRyYWN0X2FfZnJvbV9zZXhwfGN1cnZlX2ZyZWV8Y3VydmVfY29weXxwb2ludF9zZXQpIiwgbGlu ZSkgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBpZiByZS5tYXRjaCAoIihfZ2NyeV9oYXNoX3Nl bGZ0ZXN0X2NoZWNrX29uZXxidWxrX3NlbGZ0ZXN0X3NldGtleXxydW5fc2VsZnRlc3RzfGRvX3Ry aXBsZWRlc19zZXRfZXh0cmFfaW5mb3xzZWxmdGVzdHxzbTRfc2VsZnRlc3R8X2djcnlfW2EtejAt OV9dKl9oYXNoX2J1ZmZlcnN8X2djcnlfc2hhMV9oYXNoX2J1ZmZlcnx0cmlwbGVkZXNfc2V0Mmtl eXN8X2djcnlfcm1kMTYwX21peGJsb2NrfHNlcnBlbnRfdGVzdHxkc2FfZ2VuZXJhdGVfZXh0fHRl c3Rfa2V5c3xnZW5fa3xzaWdufGdlbl94OTMxX3Bhcm1feHB8Z2VuZXJhdGVfeDkzMXxnZW5lcmF0 ZV9rZXl8ZHNhX2dlbmVyYXRlfGRzYV9zaWdufGVjY19zaWdufGdlbmVyYXRlfGdlbmVyYXRlX2Zp cHMxODZ8X2djcnlfcmVnaXN0ZXJfcGtfZHNhX3Byb2dyZXNzfF9nY3J5X3JlZ2lzdGVyX3BrX2Vj Y19wcm9ncmVzc3xwcm9ncmVzc3xzY2FudmFsfGVjMm9zfGVjY19nZW5lcmF0ZV9leHR8ZWNjX2dl bmVyYXRlfGVjY19nZXRfcGFyYW18X2djcnlfcmVnaXN0ZXJfcGtfZHNhX3Byb2dyZXNzfGdlbl94 OTMxX3Bhcm1feHB8Z2VuX3g5MzFfcGFybV94aXxyc2FfZGVjcnlwdHxyc2Ffc2lnbnxyc2FfZ2Vu ZXJhdGVfZXh0fHJzYV9nZW5lcmF0ZXxzZWNyZXR8Y2hlY2tfZXhwb25lbnR8cnNhX2JsaW5kfHJz YV91bmJsaW5kfGV4dHJhY3RfYV9mcm9tX3NleHB8Y3VydmVfZnJlZXxjdXJ2ZV9jb3B5fHBvaW50 X3NldHxfZ2NyeV9kc2FfZ2VuX3JmYzY5Nzlfa3xiaXRzMm9jdGV0c3xpbnQyb2N0ZXRzfF9nY3J5 X21kX2RlYnVnfF9nY3J5X21kX3NlbGZ0ZXN0fF9nY3J5X21kX2lzX2VuYWJsZWR8X2djcnlfbWRf aXNfc2VjdXJlfF9nY3J5X21kX2luaXR8X2djcnlfbWRfaW5mb3xtZF9nZXRfYWxnb3xtZF9leHRy YWN0fF9nY3J5X21kX2dldCB8X2djcnlfbWRfZ2V0X2FsZ28gfF9nY3J5X21kX2V4dHJhY3R8X2dj cnlfbWRfc2V0a2V5fG1kX3NldGtleXxwcmVwYXJlX21hY3BhZHN8X2djcnlfbWRfYWxnb19uYW1l fHNlYXJjaF9vaWR8c3BlY19mcm9tX29pZHxzcGVjX2Zyb21fbmFtZXxzcGVjX2Zyb21fYWxnb3xt YXBfYWxnb3xjc2hha2VfaGFzaF9idWZmZXJzKSIsIGxpbmUpIGlzIG5vdCBOb25lOgogCiAgICAg ICAgICAgICAgICAgICAgIHNraXAgPSAxCiAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCByZS5t YXRjaCAoInNlbGZ0ZXN0IiwgbGluZSkgaXMgTm9uZSBhbmQgY2lwaGVyX2ZpbGUgPT0gImlkZWEu YyI6CkBAIC0yMjQsNiArMjg5LDExIEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6 CiAKICAgICAgICAgICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgic2VycGVudF90ZXN0Iiwg bGluZSkgaXMgTm9uZToKICAgICAgICAgICAgICAgICAgICAgICAgIGZ3LndyaXRlICgic3RhdGlj IGNvbnN0IGNoYXIgKnNlcnBlbnRfdGVzdCAodm9pZCkgeyByZXR1cm4gMDsgfVxuIik7CisgICAg ICAgICAgICAgICAgICAgIGlmIG5vdCByZS5tYXRjaCAoInNtNF9zZWxmdGVzdCIsIGxpbmUpIGlz IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBmdy53cml0ZSAoInN0YXRpYyBjb25zdCBj aGFyICpzbTRfc2VsZnRlc3QgKHZvaWQpIHsgcmV0dXJuIDA7IH1cbiIpOworICAgICAgICAgICAg ICAgICAgICBoYXNoX2J1ZiA9IHJlLm1hdGNoICgiKF9nY3J5X1thLXowLTlfXSpfaGFzaF9idWZm ZXJzKSIsIGxpbmUpCisgICAgICAgICAgICAgICAgICAgIGlmIGhhc2hfYnVmIGlzIG5vdCBOb25l OgorICAgICAgICAgICAgICAgICAgICAgICAgZncud3JpdGUgKCIjZGVmaW5lICVzIDAiICUgKGhh c2hfYnVmLmdyb3VwKDApKSkKICAgICAgICAgICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgi ZHNhX2dlbmVyYXRlIiwgbGluZSkgaXMgTm9uZToKICAgICAgICAgICAgICAgICAgICAgICAgIGZ3 LndyaXRlICgiI2RlZmluZSBkc2FfZ2VuZXJhdGUgMCIpOwogICAgICAgICAgICAgICAgICAgICBp ZiBub3QgcmUubWF0Y2ggKCJlY2NfZ2VuZXJhdGUiLCBsaW5lKSBpcyBOb25lOgpAQCAtMjM4LDYg KzMwOCwxMCBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAg ICAgICAgICAgICAgZncud3JpdGUgKCIjZGVmaW5lIGRzYV9zaWduIDAiKTsKICAgICAgICAgICAg ICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgiZWNjX3NpZ24iLCBsaW5lKSBpcyBOb25lOgogICAg ICAgICAgICAgICAgICAgICAgICAgZncud3JpdGUgKCIjZGVmaW5lIGVjY19zaWduIDAiKTsKKyAg ICAgICAgICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgic2VhcmNoX29pZCIsIGxpbmUpIGlz IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiNkZWZpbmUgc2VhcmNo X29pZChhLGIpIGdydWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9vaWQoYSkiKQorICAgICAgICAgICAg ICAgICAgICBpZiBub3QgcmUubWF0Y2ggKCJzcGVjX2Zyb21fbmFtZSIsIGxpbmUpIGlzIE5vbmU6 CisgICAgICAgICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiNkZWZpbmUgc3BlY19mcm9tX25h bWUgZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X25hbWUiKQogICAgICAgICAgICAgICAgICAgICBm bmFtZSA9IHJlLm1hdGNoICgiW2EtekEtWjAtOV9dKiIsIGxpbmUpLmdyb3VwICgpCiAgICAgICAg ICAgICAgICAgICAgIGNobXNnID0gIiglcyk6IFJlbW92ZWQuIiAlIGZuYW1lCiAgICAgICAgICAg ICAgICAgICAgIGlmIG5jaDoKQEAgLTI1Nyw0NSArMzMxLDQ2IEBAIGZvciBjaXBoZXJfZmlsZSBp biBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICAgICAgICAgIGNobG9nbmV3ID0gIiVzOiAlcyIg JSAoY2hsb2duZXcsIGNobXNnKQogICAgICAgICAgICAgICAgICAgICBuY2ggPSBUcnVlCiAgICAg ICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoImdjcnlfY2lw aGVyX3NwZWNfdCIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0Y2ggKCIoY29uc3QgKT9n Y3J5X2NpcGhlcl9zcGVjX3QiLCBsaW5lKQogICAgICAgICAgICAgaWYgaXNjIGFuZCBub3QgbSBp cyBOb25lOgogICAgICAgICAgICAgICAgIGFzc2VydCAobm90IGlzbWQpCiAgICAgICAgICAgICAg ICAgYXNzZXJ0IChub3QgaXNwaykKICAgICAgICAgICAgICAgICBhc3NlcnQgKG5vdCBpc2NpcGhl cikKICAgICAgICAgICAgICAgICBhc3NlcnQgKG5vdCBpc2NyeXB0b3N0YXJ0KQotICAgICAgICAg ICAgICAgIGNpcGhlcm5hbWUgPSBsaW5lIFtsZW4gKCJnY3J5X2NpcGhlcl9zcGVjX3QiKTpdLnN0 cmlwICgpCisgICAgICAgICAgICAgICAgY2lwaGVybmFtZSA9IHJlbW92ZXByZWZpeChyZW1vdmVw cmVmaXgobGluZSwgImNvbnN0ICIpLCAiZ2NyeV9jaXBoZXJfc3BlY190Iikuc3RyaXAgKCkKICAg ICAgICAgICAgICAgICBjaXBoZXJuYW1lID0gcmUubWF0Y2goIlthLXpBLVowLTlfXSoiLGNpcGhl cm5hbWUpLmdyb3VwICgpCiAgICAgICAgICAgICAgICAgY2lwaGVybmFtZXMuYXBwZW5kIChjaXBo ZXJuYW1lKQogICAgICAgICAgICAgICAgIGlzY2lwaGVyID0gVHJ1ZQogICAgICAgICAgICAgICAg IGlzY3J5cHRvc3RhcnQgPSBUcnVlCiAKLSAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoImdjcnlf cGtfc3BlY190IiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoIihjb25zdCApP2dj cnlfcGtfc3BlY190IiwgbGluZSkKICAgICAgICAgICAgIGlmIGlzYyBhbmQgbm90IG0gaXMgTm9u ZToKICAgICAgICAgICAgICAgICBhc3NlcnQgKG5vdCBpc21kKQogICAgICAgICAgICAgICAgIGFz c2VydCAobm90IGlzcGspCiAgICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNjaXBoZXIpCiAg ICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNjcnlwdG9zdGFydCkKLSAgICAgICAgICAgICAg ICBwa25hbWUgPSBsaW5lIFtsZW4gKCJnY3J5X3BrX3NwZWNfdCIpOl0uc3RyaXAgKCkKKyAgICAg ICAgICAgICAgICBwa25hbWUgPSByZW1vdmVwcmVmaXgocmVtb3ZlcHJlZml4KGxpbmUsICJjb25z dCAiKSwgImdjcnlfcGtfc3BlY190Iikuc3RyaXAgKCkKICAgICAgICAgICAgICAgICBwa25hbWUg PSByZS5tYXRjaCgiW2EtekEtWjAtOV9dKiIscGtuYW1lKS5ncm91cCAoKQogICAgICAgICAgICAg ICAgIHBrbmFtZXMuYXBwZW5kIChwa25hbWUpCiAgICAgICAgICAgICAgICAgaXNwayA9IFRydWUK ICAgICAgICAgICAgICAgICBpc2NyeXB0b3N0YXJ0ID0gVHJ1ZQogCi0gICAgICAgICAgICBtID0g cmUubWF0Y2ggKCJnY3J5X21kX3NwZWNfdCIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0 Y2ggKCIoY29uc3QgKT9nY3J5X21kX3NwZWNfdCIsIGxpbmUpCiAgICAgICAgICAgICBpZiBpc2Mg YW5kIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNtZCkKICAg ICAgICAgICAgICAgICBhc3NlcnQgKG5vdCBpc3BrKQogICAgICAgICAgICAgICAgIGFzc2VydCAo bm90IGlzY2lwaGVyKQogICAgICAgICAgICAgICAgIGFzc2VydCAobm90IGlzY3J5cHRvc3RhcnQp Ci0gICAgICAgICAgICAgICAgbWRuYW1lID0gbGluZSBbbGVuICgiZ2NyeV9tZF9zcGVjX3QiKTpd LnN0cmlwICgpCisgICAgICAgICAgICAgICAgbGluZSA9IHJlbW92ZXByZWZpeChsaW5lLCAiY29u c3QgIikKKyAgICAgICAgICAgICAgICBtZG5hbWUgPSByZW1vdmVwcmVmaXgocmVtb3ZlcHJlZml4 KGxpbmUsICJjb25zdCAiKSwgImdjcnlfbWRfc3BlY190Iikuc3RyaXAgKCkKICAgICAgICAgICAg ICAgICBtZG5hbWUgPSByZS5tYXRjaCgiW2EtekEtWjAtOV9dKiIsbWRuYW1lKS5ncm91cCAoKQog ICAgICAgICAgICAgICAgIG1kbmFtZXMuYXBwZW5kIChtZG5hbWUpCiAgICAgICAgICAgICAgICAg aXNtZCA9IFRydWUKICAgICAgICAgICAgICAgICBtZGFyZyA9IDAKICAgICAgICAgICAgICAgICBp c2NyeXB0b3N0YXJ0ID0gVHJ1ZQotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgic3RhdGljIGNv bnN0IGNoYXIgXCpzZWxmdGVzdC4qOyQiLCBsaW5lKQorICAgICAgICAgICAgbSA9IHJlLm1hdGNo IChyInN0YXRpYyBjb25zdCBjaGFyIFwqc2VsZnRlc3QuKjskIiwgbGluZSkKICAgICAgICAgICAg IGlmIG5vdCBtIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgZm5hbWUgPSBsaW5lW2xlbiAoInN0 YXRpYyBjb25zdCBjaGFyIFwqIik6XQorICAgICAgICAgICAgICAgIGZuYW1lID0gbGluZVtsZW4g KHIic3RhdGljIGNvbnN0IGNoYXIgXCoiKTpdCiAgICAgICAgICAgICAgICAgZm5hbWUgPSByZS5t YXRjaCAoIlthLXpBLVowLTlfXSoiLCBmbmFtZSkuZ3JvdXAgKCkKICAgICAgICAgICAgICAgICBj aG1zZyA9ICIoJXMpOiBSZW1vdmVkIGRlY2xhcmF0aW9uLiIgJSBmbmFtZQogICAgICAgICAgICAg ICAgIGlmIG5jaDoKQEAgLTMzMSw3ICs0MDYsNyBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVy X2ZpbGVzOgogICAgICAgICAgICAgICAgICAgICBjaGxvZ25ldyA9ICIlcyAlcyIgJSAoY2hsb2du ZXcsIGNobXNnKQogICAgICAgICAgICAgICAgICAgICBuY2ggPSBUcnVlCiAgICAgICAgICAgICAg ICAgY29udGludWUKLSAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoInN0YXRpYyB2b2lkIFwoXCpw cm9ncmVzc19jYlwpLio7JCIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0Y2ggKHIic3Rh dGljIHZvaWQgXChcKnByb2dyZXNzX2NiXCkuKjskIiwgbGluZSkKICAgICAgICAgICAgIGlmIG5v dCBtIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgY2htc2cgPSAiKHByb2dyZXNzX2NiKTogUmVt b3ZlZCBkZWNsYXJhdGlvbi4iCiAgICAgICAgICAgICAgICAgaWYgbmNoOgpAQCAtMzQwLDcgKzQx NSw3IEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICAgICAg ICAgIGNobG9nbmV3ID0gIiVzICVzIiAlIChjaGxvZ25ldywgY2htc2cpCiAgICAgICAgICAgICAg ICAgICAgIG5jaCA9IFRydWUKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAg bSA9IHJlLm1hdGNoICgic3RhdGljIHZvaWQgXCpwcm9ncmVzc19jYl9kYXRhLio7JCIsIGxpbmUp CisgICAgICAgICAgICBtID0gcmUubWF0Y2ggKHIic3RhdGljIHZvaWQgXCpwcm9ncmVzc19jYl9k YXRhLio7JCIsIGxpbmUpCiAgICAgICAgICAgICBpZiBub3QgbSBpcyBOb25lOgogICAgICAgICAg ICAgICAgIGNobXNnID0gIihwcm9ncmVzc19jYik6IFJlbW92ZWQgZGVjbGFyYXRpb24uIgogICAg ICAgICAgICAgICAgIGlmIG5jaDoKQEAgLTM1MCwyMiArNDI1LDIyIEBAIGZvciBjaXBoZXJfZmls ZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICAgICAgICAgIG5jaCA9IFRydWUKICAgICAg ICAgICAgICAgICBjb250aW51ZQogCi0gICAgICAgICAgICBtID0gcmUubWF0Y2ggKCIoc3RhdGlj IGNvbnN0IGNoYXIoIHwpXCp8c3RhdGljIGdwZ19lcnJfY29kZV90fHZvaWR8c3RhdGljIGludHxz dGF0aWMgZ2NyeV9lcnJfY29kZV90fHN0YXRpYyBnY3J5X21waV90fHN0YXRpYyB2b2lkfHZvaWR8 c3RhdGljIGVsbGlwdGljX2N1cnZlX3QpICokIiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5t YXRjaCAociIoKHN0YXRpYyApP2NvbnN0IGNoYXIoIHwpXCp8c3RhdGljIGNvbnN0IGdjcnlfbWRf c3BlY190IFwqfChzdGF0aWMgKT9ncGdfZXJyX2NvZGVfdHxncGdfZXJyb3JfdHx2b2lkfChzdGF0 aWMgKT9pbnR8KHN0YXRpYyApP3Vuc2lnbmVkIGludHwoc3RhdGljICk/Z2NyeV9lcnJfY29kZV90 fHN0YXRpYyBnY3J5X21waV90fHN0YXRpYyB2b2lkfHZvaWR8c3RhdGljIGVsbGlwdGljX2N1cnZl X3QpICokIiwgbGluZSkKICAgICAgICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAg ICAgICAgaG9sZCA9IFRydWUKICAgICAgICAgICAgICAgICBob2xkbGluZSA9IGxpbmUKICAgICAg ICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgic3RhdGljIGlu dCB0cmlwbGVkZXNfc2V0MmtleXMgXCguKlwpOyIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUu bWF0Y2ggKHIic3RhdGljIGludCB0cmlwbGVkZXNfc2V0MmtleXMgXCguKlwpOyIsIGxpbmUpCiAg ICAgICAgICAgICBpZiBub3QgbSBpcyBOb25lOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0g ICAgICAgICAgICBtID0gcmUubWF0Y2ggKCJzdGF0aWMgaW50IHRyaXBsZWRlc19zZXQza2V5cyBc KC4qXCk7IiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaCAociJzdGF0aWMgaW50IHRy aXBsZWRlc19zZXQza2V5cyBcKC4qXCk7IiwgbGluZSkKICAgICAgICAgICAgIGlmIG5vdCBtIGlz IE5vbmU6CiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIG0gPSByZS5tYXRj aCAoInN0YXRpYyBpbnQgdHJpcGxlZGVzX3NldDJrZXlzIFwoIiwgbGluZSkKKyAgICAgICAgICAg IG0gPSByZS5tYXRjaCAociJzdGF0aWMgaW50IHRyaXBsZWRlc19zZXQya2V5cyBcKCIsIGxpbmUp CiAgICAgICAgICAgICBpZiBub3QgbSBpcyBOb25lOgogICAgICAgICAgICAgICAgIHNraXBfc3Rh dGVtZW50ID0gVHJ1ZQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBtID0g cmUubWF0Y2ggKCJzdGF0aWMgaW50IHRyaXBsZWRlc19zZXQza2V5cyBcKCIsIGxpbmUpCisgICAg ICAgICAgICBtID0gcmUubWF0Y2ggKHIic3RhdGljIGludCB0cmlwbGVkZXNfc2V0M2tleXMgXCgi LCBsaW5lKQogICAgICAgICAgICAgaWYgbm90IG0gaXMgTm9uZToKICAgICAgICAgICAgICAgICBz a2lwX3N0YXRlbWVudCA9IFRydWUKICAgICAgICAgICAgICAgICBjb250aW51ZQpAQCAtNDIxLDEx ICs0OTYsOSBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAg ICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBmdy53cml0ZSAobGluZSkKICAgICAgICAgaWYgbGVu IChjaXBoZXJuYW1lcykgPiAwIG9yIGxlbiAobWRuYW1lcykgPiAwIG9yIGxlbiAocGtuYW1lcykg PiAwOgotICAgICAgICAgICAgaWYgaXNnbHVlOgotICAgICAgICAgICAgICAgIG1vZGZpbGVzID0g ImxpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIvJXMgbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci8l cyIgXAotICAgICAgICAgICAgICAgICAgICAlIChjaXBoZXJfZmlsZSwgY2lwaGVyX2ZpbGUucmVw bGFjZSAoIi1nbHVlLmMiLCAiLmMiKSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg ICAgbW9kZmlsZXMgPSAibGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci8lcyIgJSBjaXBoZXJfZmls ZQorICAgICAgICAgICAgbW9kZmlsZXMgPSBbY2lwaGVyX2ZpbGVdCisgICAgICAgICAgICBpZiBt b2RuYW1lIGluIGV4dHJhX2ZpbGVzLmtleXMoKToKKyAgICAgICAgICAgICAgICBtb2RmaWxlcyAr PSBleHRyYV9maWxlc1ttb2RuYW1lXQogICAgICAgICAgICAgaWYgbGVuIChjaXBoZXJuYW1lcykg PiAwIG9yIGxlbiAobWRuYW1lcykgPiAwOgogICAgICAgICAgICAgICAgIG1vZHVsZXNfc3ltX21k LmFwcGVuZCAobW9kbmFtZSkKICAgICAgICAgICAgIGNobXNnID0gIihHUlVCX01PRF9JTklUKCVz KSk6IE5ldyBmdW5jdGlvblxuIiAlIG1vZG5hbWUKQEAgLTQ0Nyw3ICs1MjAsNyBAQCBmb3IgY2lw aGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAgICAgIGNobG9nbmV3ID0gIiVz XG4JJXMiICUgKGNobG9nbmV3LCBjaG1zZykKICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiAg Z3J1Yl9tZF9yZWdpc3RlciAoJiVzKTtcbiIgJSBtZG5hbWUpCiAgICAgICAgICAgICBmb3IgcGtu YW1lIGluIHBrbmFtZXM6Ci0gICAgICAgICAgICAgICAgY2htc2cgPSAiUmVnaXN0ZXIgcGsgJXMi ICUgbWRuYW1lCisgICAgICAgICAgICAgICAgY2htc2cgPSAiUmVnaXN0ZXIgcGsgJXMiICUgcGtu YW1lCiAgICAgICAgICAgICAgICAgY2hsb2duZXcgPSAiJXNcbgklcyIgJSAoY2hsb2duZXcsIGNo bXNnKQogICAgICAgICAgICAgICAgIGZ3LndyaXRlICgiICBncnViX2NyeXB0b19wa18lcyA9ICYl cztcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAocGtuYW1lLnJlcGxhY2UgKCJfZ2Ny eV9wdWJrZXlfc3BlY18iLCAiIiksIHBrbmFtZSkpCkBAIC00NjUsMTcgKzUzOCwxNyBAQCBmb3Ig Y2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAgICAgIGNobG9nbmV3ID0g IiVzXG4JJXMiICUgKGNobG9nbmV3LCBjaG1zZykKICAgICAgICAgICAgICAgICBmdy53cml0ZSAo IiAgZ3J1Yl9tZF91bnJlZ2lzdGVyICgmJXMpO1xuIiAlIG1kbmFtZSkKICAgICAgICAgICAgIGZv ciBwa25hbWUgaW4gcGtuYW1lczoKLSAgICAgICAgICAgICAgICBjaG1zZyA9ICJVbnJlZ2lzdGVy IHBrICVzIiAlIG1kbmFtZQorICAgICAgICAgICAgICAgIGNobXNnID0gIlVucmVnaXN0ZXIgcGsg JXMiICUgcGtuYW1lCiAgICAgICAgICAgICAgICAgY2hsb2duZXcgPSAiJXNcbgklcyIgJSAoY2hs b2duZXcsIGNobXNnKQogICAgICAgICAgICAgICAgIGZ3LndyaXRlICgiICBncnViX2NyeXB0b19w a18lcyA9IDA7XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKHBrbmFtZS5yZXBsYWNl ICgiX2djcnlfcHVia2V5X3NwZWNfIiwgIiIpKSkKICAgICAgICAgICAgIGZ3LndyaXRlICgifVxu IikKICAgICAgICAgICAgIGNvbmYud3JpdGUgKCJtb2R1bGUgPSB7XG4iKQogICAgICAgICAgICAg Y29uZi53cml0ZSAoIiAgbmFtZSA9ICVzO1xuIiAlIG1vZG5hbWUpCi0gICAgICAgICAgICBmb3Ig c3JjIGluIG1vZGZpbGVzLnNwbGl0KCk6Ci0gICAgICAgICAgICAgICAgY29uZi53cml0ZSAoIiAg Y29tbW9uID0gJXM7XG4iICUgc3JjKQorICAgICAgICAgICAgZm9yIHNyYyBpbiBtb2RmaWxlczoK KyAgICAgICAgICAgICAgICBjb25mLndyaXRlICgiICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdy dWIvY2lwaGVyLyVzO1xuIiAlIHNyYykKICAgICAgICAgICAgICAgICBpZiBsZW4gKGNpcGhlcm5h bWVzKSA+IDAgb3IgbGVuIChtZG5hbWVzKSA+IDA6Ci0gICAgICAgICAgICAgICAgICAgIGNvbmZ1 dGlsLndyaXRlICgiICBjb21tb24gPSBncnViLWNvcmUvJXM7XG4iICUgc3JjKQorICAgICAgICAg ICAgICAgICAgICBjb25mdXRpbC53cml0ZSAoIiAgY29tbW9uID0gZ3J1Yi1jb3JlL2xpYi9saWJn Y3J5cHQtZ3J1Yi9jaXBoZXIvJXM7XG4iICUgc3JjKQogICAgICAgICAgICAgaWYgbW9kbmFtZSA9 PSAiZ2NyeV9lY2MiOgogICAgICAgICAgICAgICAgIGNvbmYud3JpdGUgKCIgIGNvbW1vbiA9IGxp Yi9saWJnY3J5cHQtZ3J1Yi9tcGkvZWMuYztcbiIpCiAgICAgICAgICAgICAgICAgY29uZi53cml0 ZSAoIiAgY2ZsYWdzID0gJyQoQ0ZMQUdTX0dDUlkpIC1Xbm8tcmVkdW5kYW50LWRlY2xzIC1Xbm8t c2lnbi1jb21wYXJlJztcbiIpCkBAIC00OTAsNyArNTYzLDcgQEAgZm9yIGNpcGhlcl9maWxlIGlu IGNpcGhlcl9maWxlczoKICAgICAgICAgICAgIGZ3LmNsb3NlICgpCiAgICAgICAgICAgICBpZiBu Y2g6CiAgICAgICAgICAgICAgICAgY2hsb2cgPSAiJXMlc1xuIiAlIChjaGxvZywgY2hsb2duZXcp Ci0gICAgICAgIGVsaWYgaXNjIGFuZCBjaXBoZXJfZmlsZSAhPSAiY2FtZWxsaWEuYyI6CisgICAg ICAgIGVsaWYgaXNjIGFuZCBjaXBoZXJfZmlsZSBub3QgaW4gZXh0cmFfZmlsZXNfbGlzdDoKICAg ICAgICAgICAgIHByaW50ICgiV0FSTklORzogQyBmaWxlIGlzbid0IGEgbW9kdWxlOiAlcyIgJSBj aXBoZXJfZmlsZSkKICAgICAgICAgICAgIGYuY2xvc2UgKCkKICAgICAgICAgICAgIGZ3LmNsb3Nl ICgpCkBAIC01MTIsNyArNTg1LDcgQEAgZm9yIHNyYyBpbiBzb3J0ZWQgKG9zLmxpc3RkaXIgKG9z LnBhdGguam9pbiAoaW5kaXIsICJzcmMiKSkpOgogICAgICAgICAgICAgb3Igc3JjID09ICJsaWJn Y3J5cHQudmVycyIgb3Igc3JjID09ICJNYWtlZmlsZS5hbSIgXAogICAgICAgICAgICAgb3Igc3Jj ID09ICJNYW5pZmVzdCIgb3Igc3JjID09ICJtaXNjLmMiIFwKICAgICAgICAgICAgIG9yIHNyYyA9 PSAibWlzc2luZy1zdHJpbmcuYyIgb3Igc3JjID09ICJtb2R1bGUuYyIgXAotICAgICAgICAgICAg b3Igc3JjID09ICJzZWNtZW0uYyIgb3Igc3JjID09ICJzZXhwLmMiIFwKKyAgICAgICAgICAgIG9y IHNyYyA9PSAic2VjbWVtLmMiIFwKICAgICAgICAgICAgIG9yIHNyYyA9PSAic3RkbWVtLmMiIG9y IHNyYyA9PSAidmlzaWJpbGl0eS5jIjoKICAgICAgICAgY29udGludWUKICAgICBvdXRmaWxlID0g b3MucGF0aC5qb2luIChiYXNlZGlyLCAic3JjIiwgc3JjKQpAQCAtNTM0LDggKzYwNywxNyBAQCBm b3Igc3JjIGluIHNvcnRlZCAob3MubGlzdGRpciAob3MucGF0aC5qb2luIChpbmRpciwgInNyYyIp KSk6CiAgICAgICAgIGZ3LmNsb3NlICgpCiAgICAgICAgIGNvbnRpbnVlCiAKKyAgICBpZiBzcmMg PT0gImNpcGhlci1wcm90by5oIjoKKyAgICAgICAgZncud3JpdGUoIiNpbmNsdWRlIDxncnViL2Ny eXB0by5oPlxuIikKKyAgICAgICAgZncud3JpdGUoInR5cGVkZWYgZ2NyeV9zZWxmdGVzdF9mdW5j X3Qgc2VsZnRlc3RfZnVuY190OyIpCisgICAgICAgIGYuY2xvc2UgKCkKKyAgICAgICAgZncuY2xv c2UgKCkKKyAgICAgICAgY29udGludWUKKwogICAgIGlmIHNyYyA9PSAiZzEwbGliLmgiOgotICAg ICAgICBmdy53cml0ZSAoZi5yZWFkICgpLnJlcGxhY2UgKCIocHJpbnRmLGYsYSkiLCAiKF9fcHJp bnRmX18sZixhKSIpKQorICAgICAgICBmdy53cml0ZSgiI2luY2x1ZGUgPGNpcGhlcl93cmFwLmg+ XG4iKQorICAgICAgICBmdy53cml0ZSgiI2luY2x1ZGUgPGdydWIvY3J5cHRvLmg+XG4iKQorICAg ICAgICBmdy53cml0ZSAoZi5yZWFkICgpLnJlcGxhY2UgKCIocHJpbnRmLGYsYSkiLCAiKF9fcHJp bnRmX18sZixhKSIpLnJlcGxhY2UgKCIjaW5jbHVkZSBcIi4uL2NvbXBhdC9saWJjb21wYXQuaFwi IiwgIiIpLnJlcGxhY2UoIiNkZWZpbmUgTl8oYSkgKGEpIiwgIiIpKQogICAgICAgICBmLmNsb3Nl ICgpCiAgICAgICAgIGZ3LmNsb3NlICgpCiAgICAgICAgIGNvbnRpbnVlCkBAIC01NDYsNyArNjI4 LDcgQEAgZm9yIHNyYyBpbiBzb3J0ZWQgKG9zLmxpc3RkaXIgKG9zLnBhdGguam9pbiAoaW5kaXIs ICJzcmMiKSkpOgogCiBmb3Igc3JjIGluIHNvcnRlZCAob3MubGlzdGRpciAob3MucGF0aC5qb2lu IChpbmRpciwgIm1waSIpKSk6CiAgICAgaWYgc3JjID09ICJjb25maWcubGlua3MiIG9yIHNyYyA9 PSAiQ2hhbmdlTG9nLTIwMTEiIFwKLSAgICAgICAgICAgIG9yIHNyYyA9PSAibXBpLXNjYW4uYyIg b3Igc3JjID09ICJNYW5pZmVzdCIgXAorICAgICAgICAgICAgb3Igc3JjID09ICJNYW5pZmVzdCIg XAogICAgICAgICAgICAgb3Igc3JjID09ICJNYWtlZmlsZS5hbSI6CiAgICAgICAgIGNvbnRpbnVl CiAgICAgaW5maWxlID0gb3MucGF0aC5qb2luIChpbmRpciwgIm1waSIsIHNyYykKQEAgLTU2OCwx NyArNjUwLDE3IEBAIGZvciBzcmMgaW4gc29ydGVkIChvcy5saXN0ZGlyIChvcy5wYXRoLmpvaW4g KGluZGlyLCAibXBpIikpKToKICAgICAgICAgICAgIGhvbGQgPSBGYWxzZQogICAgICAgICAgICAg IyBXZSdyZSBvcHRpbWlzaW5nIGZvciBzaXplIGFuZCBleGNsdWRlIGFueXRoaW5nIG5lZWRpbmcg Z29vZAogICAgICAgICAgICAgIyByYW5kb21uZXNzLgotICAgICAgICAgICAgaWYgbm90IHJlLm1h dGNoICgiKF9nY3J5X21waV9nZXRfaHdfY29uZmlnfGdjcnlfbXBpX3JhbmRvbWl6ZSkiLCBsaW5l KSBpcyBOb25lOgorICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgiKF9nY3J5X21waV9nZXRf aHdfY29uZmlnfGdjcnlfbXBpX3JhbmRvbWl6ZXxfZ2NyeV9tcGlfcmFuZG9taXplKSIsIGxpbmUp IGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgc2tpcCA9IDEKICAgICAgICAgICAgICAgICBjb250 aW51ZQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBmdy53cml0ZSAoaG9sZGxp bmUpCi0gICAgICAgIG0gPSByZS5tYXRjaCAoIihjb25zdCBjaGFyKCB8KVwqfHZvaWQpICokIiwg bGluZSkKKyAgICAgICAgbSA9IHJlLm1hdGNoIChyIihjb25zdCBjaGFyKCB8KVwqfHZvaWQpICok IiwgbGluZSkKICAgICAgICAgaWYgbm90IG0gaXMgTm9uZToKICAgICAgICAgICAgIGhvbGQgPSBU cnVlCiAgICAgICAgICAgICBob2xkbGluZSA9IGxpbmUKICAgICAgICAgICAgIGNvbnRpbnVlCi0g ICAgICAgIG0gPSByZS5tYXRjaCAoIiNpbmNsdWRlIFwibW9kLXNvdXJjZS1pbmZvXC5oXCIiLCBs aW5lKQorICAgICAgICBtID0gcmUubWF0Y2ggKHIiI2luY2x1ZGUgXCJtb2Qtc291cmNlLWluZm9c LmhcIiIsIGxpbmUpCiAgICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICBjb250 aW51ZQogICAgICAgICBmdy53cml0ZSAobGluZSkKQEAgLTYxMiw5ICs2OTQsNiBAQCBmdy53cml0 ZSAoIiNpbmNsdWRlIDxjaXBoZXJfd3JhcC5oPlxuIikKIGNobG9nID0gIiVzCSogZzEwbGliLmg6 IExpa2V3aXNlLlxuIiAlIGNobG9nCiBmdy5jbG9zZSAoKQogCi1pbmZpbGUgPSBvcy5wYXRoLmpv aW4gKGNpcGhlcl9kaXJfaW4sICJDaGFuZ2VMb2ciKQotb3V0ZmlsZSA9IG9zLnBhdGguam9pbiAo Y2lwaGVyX2Rpcl9vdXQsICJDaGFuZ2VMb2ciKQotCiBjb25mLmNsb3NlICgpOwogCiBpbml0Zmls ZSA9IGNvZGVjcy5vcGVuIChvcy5wYXRoLmpvaW4gKGNpcGhlcl9kaXJfb3V0LCAiaW5pdC5jIiks ICJ3IiwgInV0Zi04IikKQEAgLTY0Myw3ICs3MjIsNyBAQCBjb25mdXRpbC53cml0ZSAoIn07XG4i KTsKIGNvbmZ1dGlsLmNsb3NlICgpOwogCiAKLWY9Y29kZWNzLm9wZW4gKGluZmlsZSwgInIiLCAi dXRmLTgiKQorb3V0ZmlsZSA9IG9zLnBhdGguam9pbiAoY2lwaGVyX2Rpcl9vdXQsICJDaGFuZ2VM b2ciKQogZnc9Y29kZWNzLm9wZW4gKG91dGZpbGUsICJ3IiwgInV0Zi04IikKIGR0ID0gZGF0ZXRp bWUuZGF0ZS50b2RheSAoKQogZncud3JpdGUgKCIlMDRkLSUwMmQtJTAyZCAgQXV0b21hdGljIGlt cG9ydCB0b29sXG4iICUgXApAQCAtNjUzLDcgKzczMiw0IEBAIGZ3LndyaXRlICgiCUltcG9ydGVk IGNpcGhlcnMgdG8gR1JVQlxuIikKIGZ3LndyaXRlICgiXG4iKQogZncud3JpdGUgKGNobG9nKQog Zncud3JpdGUgKCJcbiIpCi1mb3IgbGluZSBpbiBmOgotICAgIGZ3LndyaXRlIChsaW5lKQotZi5j bG9zZSAoKQogZncuY2xvc2UgKCkKZGlmZiAtLWdpdCBhL3V0aWwvaW1wb3J0X2djcnlwdF9pbnRo LnNlZCBiL3V0aWwvaW1wb3J0X2djcnlwdF9pbnRoLnNlZApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAuLmViZTkzNzFlZQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwvaW1wb3J0 X2djcnlwdF9pbnRoLnNlZApAQCAtMCwwICsxLDE3IEBACisvXiNASU5TRVJUX1NZU19TRUxFQ1Rf SEAvIGQKKy9eQEZBTExCQUNLX1NPQ0tMRU5fVEAvIGQKKy9eIyAqaW5jbHVkZSA8c3RkbGliXC5o Pi8gZAorL14jICppbmNsdWRlIDxzdHJpbmdcLmg+LyBkCisvXiMgKmluY2x1ZGUgPHdpbnNvY2sy XC5oPi8gZAorL14jICppbmNsdWRlIDx3czJ0Y3BpcFwuaD4vIGQKKy9eIyAqaW5jbHVkZSA8dGlt ZVwuaD4vIGQKKy9eIyAqaW5jbHVkZSA8c3lzXC9zb2NrZXRcLmg+LyBkCisvXiMgKmluY2x1ZGUg PHN5c1wvdGltZVwuaD4vIGQKKy9eICB0eXBlZGVmIGxvbmcgc3NpemVfdDsvIGQKKy9eICB0eXBl ZGVmIGludCAgcGlkX3Q7LyBkCisvXiMgKmluY2x1ZGUgPGdwZy1lcnJvclwuaD4vIHMsI2luY2x1 ZGUgPGdwZy1lcnJvci5oPiwjaW5jbHVkZSA8Z3J1Yi9nY3J5cHQvZ3BnLWVycm9yLmg+LAorL150 eXBlZGVmIGdwZ19lcnJvcl90IGdjcnlfZXJyb3JfdDsvIGQKKy9edHlwZWRlZiBncGdfZXJyX2Nv ZGVfdCBnY3J5X2Vycl9jb2RlX3Q7LyBkCisvXnR5cGVkZWYgc3RydWN0IGdjcnlfbXBpIFwqZ2Ny eV9tcGlfdDsvIGQKKy9eI2Vycm9yICBnY3J5cHQuaCBhbHJlYWR5IGluY2x1ZGVkLyBkCitwCmRp ZmYgLS1naXQgYS91dGlsL2ltcG9ydF9nY3J5cHRoLnNlZCBiL3V0aWwvaW1wb3J0X2djcnlwdGgu c2VkCmluZGV4IGZlNmQxYTA3Mi4uNTAzYjRiNTQ3IDEwMDY0NAotLS0gYS91dGlsL2ltcG9ydF9n Y3J5cHRoLnNlZAorKysgYi91dGlsL2ltcG9ydF9nY3J5cHRoLnNlZApAQCAtMTMsNiArMTMsNCBA QAogL150eXBlZGVmIGdwZ19lcnJvcl90IGdjcnlfZXJyb3JfdDsvIGQKIC9edHlwZWRlZiBncGdf ZXJyX2NvZGVfdCBnY3J5X2Vycl9jb2RlX3Q7LyBkCiAvXnR5cGVkZWYgc3RydWN0IGdjcnlfbXBp IFwqZ2NyeV9tcGlfdDsvIGQKLS9ec3RydWN0IGdjcnlfdGhyZWFkX2Nicy8gZAotcyxfZ2NyeV9t cGlfaW52bSxnY3J5X21waV9pbnZtLGcKIHAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0t IAoyLjQ5LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpHcnViLWRldmVsIG1haWxpbmcgbGlzdApHcnViLWRldmVsQGdudS5vcmcKaHR0cHM6Ly9saXN0 cy5nbnUub3JnL21haWxtYW4vbGlzdGluZm8vZ3J1Yi1kZXZlbAo=