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 smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (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 BB0BAC43458 for ; Tue, 30 Jun 2026 20:15:39 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 69F8E6105D; Tue, 30 Jun 2026 20:15:39 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id 9pM0OpgWfOMH; Tue, 30 Jun 2026 20:15:31 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.166.142; helo=lists1.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 55FBE6108A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=buildroot.org; s=default; t=1782850526; bh=oNjk0DbUfTB13KoAkdj9eZP9KC3N7iM2z5fBb6IZoa4=; h=To:Cc:Date:In-Reply-To:References:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=hmrIJQn7vD/0oD9vUcrVA/5vx+GcyM3V0XOKYnIp7F+Y+jHrcqK3MJnFBt5SYx/7i 8w1vQmASXxfoO6g6UPIv7+ReMBtx98VEMn3eNDVECSur+jLNgM7EJD2wvkAOIXZWRD ebuICEHsxaBX66lj4GgcZZ6youCiNhYCmyBjY1BJwq1uT4LduZXxhiT9p9ia8jBDZT iP0pUitx0HYrvu+IqlHGOdKN6uPoQmf8oI9r467BAYGHDfo8v+JCrDbJ3gnULagv1r bMvU5+W/p7VxWIXW+S3rP70g8h8NVsuqag8H9QyhQ0z8ayS+Te09DuILRpi4LznDHP j0ABB+cqoyAig== Received: from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142]) by smtp3.osuosl.org (Postfix) with ESMTP id 55FBE6108A; Tue, 30 Jun 2026 20:15:26 +0000 (UTC) Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by lists1.osuosl.org (Postfix) with ESMTP id 0A7A01344 for ; Tue, 30 Jun 2026 20:15:23 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id F00A08329E for ; Tue, 30 Jun 2026 20:15:22 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id D8DwTSb4OPbB for ; Tue, 30 Jun 2026 20:15:20 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2a00:1450:4864:20::32e; helo=mail-wm1-x32e.google.com; envelope-from=thomas.perale@essensium.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp1.osuosl.org C580A827AA DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org C580A827AA Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) by smtp1.osuosl.org (Postfix) with ESMTPS id C580A827AA for ; Tue, 30 Jun 2026 20:15:19 +0000 (UTC) Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-49241dbf9c1so42719255e9.2 for ; Tue, 30 Jun 2026 13:15:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782850517; x=1783455317; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=c1gU4Eso0UWj+2Y3H4KULZPmAjYu1QHJH5gErxL2Vnk=; b=I/ADqwcxEygdfcYC6LPwrLt/L7F+cDClNMq+KyIkq0Wmj1zx7aHFbqsMqwD06DxaLA PFKbZaASUaGyn7RyNPJJsBkrXP51r6INVn6nM1z20EHIociHObmzMaWTr5I7inpZO1ln AakuzE5pdfAY3/GTWyxYRKR6zjVG/jgww8hPAtpOBdddP7sHF8pkfSX/zTjQyC5vvErH CeW3GG1SSfVie3VyVs99k2WSBbIadpJVaReY/hlN7ptXt85PMNHvMnXlG5ezP88FwXTB VpaCPSTbCsdyWCos0wa7QWDWxcrBRb71kfpAAtaLuwBjy1LaxYcyrVQ6DxLaXIJ116cr /Z5g== X-Gm-Message-State: AOJu0Yx28DQgEcELnjan8OM7TRq3AsUWHz506hY8XuT8wls6Qznfons8 Sj2XoM06aJHyi3AOAyD4HP0+EqWprmid7gX4AnkD9TIdv8EJ2uGhUgrYPWmIj9ZF3O6f+QAabUk X9Rb2 X-Gm-Gg: AfdE7cladmjZveWPthEoM87wYumDelE1dj0XwSBfgjYWErNXd6g3cNh895upwanJF32 xCuSwkWdONAxGYzxbUFgY2kLJUj8ZwaS8c6GNI0TM0CjDbOtwDTVkGCq3wZRZEYV1GwqQzwGq9T VktVaE+RwWrqe772+rQvKd2DsniNsue005iXdAF3I+/qbsX6tGgh847N5AjS+0MexfqiSLqGoUO 6dzTOdI4PGQwZI5xkTAcU/fRw4VjJCJ2q0GXesEqsIJqdBx1UjGauPKemvR7E+/TotGEnssxbYp ynKOfxcbXc2yXtMtMLknHVdqh7lWYV6zdSRkgSajJTUE+ZSPsUrXSxhorCvJ9hKP0h25XeLyI6c +nS0zoTPgsGJO9lRJMU8dy7PS14a5LdGAHpfvHy76fXzxj7MR0qqu/F6EyyZtuICzWr5459LuIr +iTgLn X-Received: by 2002:a05:600c:4ecf:b0:493:b6e1:99f4 with SMTP id 5b1f17b1804b1-493b81471e9mr76980495e9.0.1782850515730; Tue, 30 Jun 2026 13:15:15 -0700 (PDT) Received: from arch ([77.109.126.77]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493be82fd71sm24193855e9.15.2026.06.30.13.15.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Jun 2026 13:15:14 -0700 (PDT) To: buildroot@buildroot.org Cc: Angelo Compagnucci , Danomi Manchego Date: Tue, 30 Jun 2026 22:15:07 +0200 Message-ID: <20260630201512.283396-2-thomas.perale@mind.be> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260630201512.283396-1-thomas.perale@mind.be> References: <20260630201512.283396-1-thomas.perale@mind.be> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mind.be; s=google; t=1782850517; x=1783455317; darn=buildroot.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=c1gU4Eso0UWj+2Y3H4KULZPmAjYu1QHJH5gErxL2Vnk=; b=OeV8N1Nq9B8e53F2wiRvWbVx9hkB0azvtLXgAmI3xgWvqPuTczG1MqiKMnj8Uq/SvI UuHlV8WcXRhuAw5/bGa5R33vjnimoLfnyCB7DdJblV23s3d8mHkIwTq0rjsqhcfn9QMj ikko7Lmh0pJcgiJjAP7/XnSEjVwZ0uCEcnwDRzWIm1eXun5R21bqeO3/weGjpP3PRzp9 zYr4C47YIzAVZ/I3//7b65trdO850OF/NS0nneOVArMttWhML4WVfPfu8v57OKhxPQyZ aXywhwe/YJds5aMaJkksz7NKenS55gDL/dMYNoR53YA/iRcEfrkLOMfOnSqwt76tLRu/ O9XQ== X-Mailman-Original-Authentication-Results: smtp1.osuosl.org; dmarc=pass (p=quarantine dis=none) header.from=mind.be X-Mailman-Original-Authentication-Results: smtp1.osuosl.org; dkim=pass (2048-bit key, unprotected) header.d=mind.be header.i=@mind.be header.a=rsa-sha256 header.s=google header.b=OeV8N1Nq Subject: [Buildroot] [PATCH 2/2] package/jq: security bump to v1.8.2 X-BeenThere: buildroot@buildroot.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Thomas Perale via buildroot Reply-To: Thomas Perale Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" Rm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJlbGVhc2UsIHNlZToKIC0gaHR0cHM6Ly9n aXRodWIuY29tL2pxbGFuZy9qcS9yZWxlYXNlcy90YWcvanEtMS44LjIKCkFsbCB0aGUgQ1ZFcyB3 ZXJlIGFkZHJlc3NlZCBieSBhIHBhdGNoIGJ1dCBub24tQ1ZFcyBzZWN1cml0eSBmaXhlcyBzdWNo CmFzIEdIU0EtZ2Y0Zy05NXdqLTRxNHIgb3IgR0hTQS1oajUyLWoyYzktcjhyNCBhcmUgZml4ZWQg YnkgdGhpcyByZWxlYXNlLgoKU2lnbmVkLW9mZi1ieTogVGhvbWFzIFBlcmFsZSA8dGhvbWFzLnBl cmFsZUBtaW5kLmJlPgotLS0KIC4uLm91dC1vZi1ib3VuZHMtcmVhZC1pbi1qdi1wYXJzZS1zaXpl ZC5wYXRjaCB8ICAgMzAgLQogLi4uaXgtTlVMLXRydW5jYXRpb24taW4tdGhlLUpTT04tcGFyc2Vy LnBhdGNoIHwgICAzNSAtCiAuLi5wYXRoLWRlcHRoLXRvLXByZXZlbnQtc3RhY2stb3ZlcmZsb3cu cGF0Y2ggfCAgIDcyIC0KIC4uLnBlbmQtYW5kLWp2cC1zdHJpbmctY29weS1yZXBsYWNlLWJhZC5w YXRjaCB8ICAgNTMgLQogLi4uLW1pdGlnYXRlLWhhc2gtY29sbGlzaW9uLURvUy1hdHRhY2tzLnBh dGNoIHwgICA5MCAtCiAuLi4wNi1saW1pdC10aGUtY29udGFpbm1lbnQtY2hlY2stZGVwdGgucGF0 Y2ggfCAgMTIwIC0tCiAuLi5hdGlvbi1pbi1wcm9ncmFtLWZpbGVzLWxvYWRlZC13aXRoLWYucGF0 Y2ggfCAgIDM0IC0KIC4uLm5lZC1pbnQtb3ZlcmZsb3ctaW4tc3RhY2stcmVhbGxvY2F0ZS5wYXRj aCB8ICAgNTMgLQogLi4uLWxpdGVyYWxzLWxvbmdlci10aGFuLURFQy1NQVgtRElHSVRTLnBhdGNo IHwgICA1MyAtCiAuLi5kZWQtTlVMLWJ5dGVzLWluLW1vZHVsZS1pbXBvcnQtcGF0aHMucGF0Y2gg fCAxNTEyIC0tLS0tLS0tLS0tLS0tLS0tCiAuLi5lcmdlLWRlcHRoLXRvLXByZXZlbnQtc3RhY2st b3ZlcmZsb3cucGF0Y2ggfCAgIDY2IC0KIC4uLmxlLWltcG9ydHMtdG8tcHJldmVudC1zdGFjay1v dmVyZmxvdy5wYXRjaCB8ICAxNDIgLS0KIC4uLmFsLWVxdWFsaXR5LWFuZC1jb21wYXJpc29uLXJl Y3Vyc2lvbi5wYXRjaCB8ICA0MjMgLS0tLS0KIC4uLi1idWZmZXItb3ZlcmZsb3ctaW4tcmF3LWZp bGUtbG9hZGluZy5wYXRjaCB8ICAgMzIgLQogLi4uLWFuZC1wcm9wYWdhdGUtaW52YWxpZC1qdi1p bi1pbXBsb2RlLnBhdGNoIHwgICA3MyAtCiBwYWNrYWdlL2pxL2pxLmhhc2ggICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAyICstCiBwYWNrYWdlL2pxL2pxLm1rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDQ3ICstCiAxNyBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMo KyksIDI4MzUgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgcGFja2FnZS9qcS8wMDAx LWZpeC1vdXQtb2YtYm91bmRzLXJlYWQtaW4tanYtcGFyc2Utc2l6ZWQucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBwYWNrYWdlL2pxLzAwMDItZml4LU5VTC10cnVuY2F0aW9uLWluLXRoZS1KU09O LXBhcnNlci5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhY2thZ2UvanEvMDAwMy1saW1pdC1w YXRoLWRlcHRoLXRvLXByZXZlbnQtc3RhY2stb3ZlcmZsb3cucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBwYWNrYWdlL2pxLzAwMDQtZml4LWhlYXAtYnVmZmVyLW92ZXJmbG93LWluLWp2cC1zdHJp bmctYXBwZW5kLWFuZC1qdnAtc3RyaW5nLWNvcHktcmVwbGFjZS1iYWQucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBwYWNrYWdlL2pxLzAwMDUtcmFuZG9taXplLWhhc2gtc2VlZC10by1taXRpZ2F0 ZS1oYXNoLWNvbGxpc2lvbi1Eb1MtYXR0YWNrcy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBh Y2thZ2UvanEvMDAwNi1saW1pdC10aGUtY29udGFpbm1lbnQtY2hlY2stZGVwdGgucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBwYWNrYWdlL2pxLzAwMDctZml4LU5VTC10cnVuY2F0aW9uLWluLXBy b2dyYW0tZmlsZXMtbG9hZGVkLXdpdGgtZi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhY2th Z2UvanEvMDAwOC1maXgtc2lnbmVkLWludC1vdmVyZmxvdy1pbi1zdGFjay1yZWFsbG9jYXRlLnBh dGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgcGFja2FnZS9qcS8wMDA5LXJlamVjdC1udW1lcmljLWxp dGVyYWxzLWxvbmdlci10aGFuLURFQy1NQVgtRElHSVRTLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgcGFja2FnZS9qcS8wMDEwLXJlamVjdC1lbWJlZGRlZC1OVUwtYnl0ZXMtaW4tbW9kdWxlLWlt cG9ydC1wYXRocy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhY2thZ2UvanEvMDAxMS1saW1p dC1yZWN1cnNpdmUtb2JqZWN0LW1lcmdlLWRlcHRoLXRvLXByZXZlbnQtc3RhY2stb3ZlcmZsb3cu cGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYWNrYWdlL2pxLzAwMTItZGV0ZWN0LWNpcmN1bGFy LW1vZHVsZS1pbXBvcnRzLXRvLXByZXZlbnQtc3RhY2stb3ZlcmZsb3cucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBwYWNrYWdlL2pxLzAwMTMtZ3VhcmQtZGVlcC1zdHJ1Y3R1cmFsLWVxdWFsaXR5 LWFuZC1jb21wYXJpc29uLXJlY3Vyc2lvbi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhY2th Z2UvanEvMDAxNC1maXgtaGVhcC1idWZmZXItb3ZlcmZsb3ctaW4tcmF3LWZpbGUtbG9hZGluZy5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhY2thZ2UvanEvMDAxNS10aWdodGVuLXN0cmluZy1s ZW5ndGgtYm91bmRzLWFuZC1wcm9wYWdhdGUtaW52YWxpZC1qdi1pbi1pbXBsb2RlLnBhdGNoCgpk aWZmIC0tZ2l0IGEvcGFja2FnZS9qcS8wMDAxLWZpeC1vdXQtb2YtYm91bmRzLXJlYWQtaW4tanYt cGFyc2Utc2l6ZWQucGF0Y2ggYi9wYWNrYWdlL2pxLzAwMDEtZml4LW91dC1vZi1ib3VuZHMtcmVh ZC1pbi1qdi1wYXJzZS1zaXplZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg NzdmZTM1OGU3ZS4uMDAwMDAwMDAwMAotLS0gYS9wYWNrYWdlL2pxLzAwMDEtZml4LW91dC1vZi1i b3VuZHMtcmVhZC1pbi1qdi1wYXJzZS1zaXplZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMw ICswLDAgQEAKLUZyb20gMmYwOTA2MGFmYWIyM2ZlOTM5MGNjZTdjYjg2MGIxMDQxNmUxYmY1ZiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGl0Y2h5bnkgPGl0Y2h5bnlAY3lib3p1LmNv LmpwPgotRGF0ZTogTW9uLCAxMyBBcHIgMjAyNiAxMTowNDo1MiArMDkwMAotU3ViamVjdDogW1BB VENIXSBGaXggb3V0LW9mLWJvdW5kcyByZWFkIGluIGp2X3BhcnNlX3NpemVkKCkKLQotVGhpcyBm aXhlcyBDVkUtMjAyNi0zOTk3OS4KLQotQ28tYXV0aG9yZWQtYnk6IE1hdHRpYXMgV2FkbWFuIDxt YXR0aWFzLndhZG1hbkBnbWFpbC5jb20+Ci1VcHN0cmVhbTogaHR0cHM6Ly9naXRodWIuY29tL2px bGFuZy9qcS9jb21taXQvMmYwOTA2MGFmYWIyM2ZlOTM5MGNjZTdjYjg2MGIxMDQxNmUxYmY1Zgot Q1ZFOiBDVkUtMjAyNi0zOTk3OQotU2lnbmVkLW9mZi1ieTogVGhvbWFzIFBlcmFsZSA8dGhvbWFz LnBlcmFsZUBtaW5kLmJlPgotLS0tCi0gc3JjL2p2X3BhcnNlLmMgfCAzICsrLQotIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3Ny Yy9qdl9wYXJzZS5jIGIvc3JjL2p2X3BhcnNlLmMKLWluZGV4IGFhMjA1NGNjMDkuLjU2ODQ3YjVl YWEgMTAwNjQ0Ci0tLS0gYS9zcmMvanZfcGFyc2UuYwotKysrIGIvc3JjL2p2X3BhcnNlLmMKLUBA IC04OTIsOCArODkyLDkgQEAganYganZfcGFyc2Vfc2l6ZWRfY3VzdG9tX2ZsYWdzKGNvbnN0IGNo YXIqIHN0cmluZywgaW50IGxlbmd0aCwgaW50IGZsYWdzKSB7Ci0gCi0gICBpZiAoIWp2X2lzX3Zh bGlkKHZhbHVlKSAmJiBqdl9pbnZhbGlkX2hhc19tc2coanZfY29weSh2YWx1ZSkpKSB7Ci0gICAg IGp2IG1zZyA9IGp2X2ludmFsaWRfZ2V0X21zZyh2YWx1ZSk7Ci0tICAgIHZhbHVlID0ganZfaW52 YWxpZF93aXRoX21zZyhqdl9zdHJpbmdfZm10KCIlcyAod2hpbGUgcGFyc2luZyAnJXMnKSIsCi0r ICAgIHZhbHVlID0ganZfaW52YWxpZF93aXRoX21zZyhqdl9zdHJpbmdfZm10KCIlcyAod2hpbGUg cGFyc2luZyAnJS4qcycpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAganZfc3RyaW5nX3ZhbHVlKG1zZyksCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RyaW5nKSk7Ci0gICAgIGp2X2ZyZWUobXNnKTsKLSAgIH0K ZGlmZiAtLWdpdCBhL3BhY2thZ2UvanEvMDAwMi1maXgtTlVMLXRydW5jYXRpb24taW4tdGhlLUpT T04tcGFyc2VyLnBhdGNoIGIvcGFja2FnZS9qcS8wMDAyLWZpeC1OVUwtdHJ1bmNhdGlvbi1pbi10 aGUtSlNPTi1wYXJzZXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwZDI2 ZmJkMzQuLjAwMDAwMDAwMDAKLS0tIGEvcGFja2FnZS9qcS8wMDAyLWZpeC1OVUwtdHJ1bmNhdGlv bi1pbi10aGUtSlNPTi1wYXJzZXIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBA Ci1Gcm9tIDYzNzRhZTBiY2RmZTMzYTE4ZWIwYWU2ZGIyODQ5M2IxZjM0YTBhNWIgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCi1Gcm9tOiBpdGNoeW55IDxpdGNoeW55QGN5Ym96dS5jby5qcD4KLURh dGU6IE1vbiwgMTMgQXByIDIwMjYgMDg6NDY6MTEgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4 IE5VTCB0cnVuY2F0aW9uIGluIHRoZSBKU09OIHBhcnNlcgotCi1UaGlzIGZpeGVzIENWRS0yMDI2 LTMzOTQ4LgotCi1VcHN0cmVhbTogaHR0cHM6Ly9naXRodWIuY29tL2pxbGFuZy9qcS9jb21taXQv NjM3NGFlMGJjZGZlMzNhMThlYjBhZTZkYjI4NDkzYjFmMzRhMGE1YgotQ1ZFOiBDVkUtMjAyNi0z Mzk0OAotW3Rob21hczogcmVtb3ZlIHRlc3RzXQotU2lnbmVkLW9mZi1ieTogVGhvbWFzIFBlcmFs ZSA8dGhvbWFzLnBlcmFsZUBtaW5kLmJlPgotLS0tCi0gc3JjL3V0aWwuYyAgIHwgOCArLS0tLS0t LQotIHRlc3RzL3NodGVzdCB8IDYgKysrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlv bnMoKyksIDcgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvdXRpbC5jIGIvc3JjL3V0 aWwuYwotaW5kZXggZmRmZGI5NmQ4OC4uODBkNjVmYzgwOCAxMDA2NDQKLS0tLSBhL3NyYy91dGls LmMKLSsrKyBiL3NyYy91dGlsLmMKLUBAIC0zMDksMTMgKzMwOSw3IEBAIHN0YXRpYyBpbnQganFf dXRpbF9pbnB1dF9yZWFkX21vcmUoanFfdXRpbF9pbnB1dF9zdGF0ZSAqc3RhdGUpIHsKLSAgICAg ICBpZiAocCAhPSBOVUxMKQotICAgICAgICAgc3RhdGUtPmN1cnJlbnRfbGluZSsrOwotIAotLSAg ICAgIGlmIChwID09IE5VTEwgJiYgc3RhdGUtPnBhcnNlciAhPSBOVUxMKSB7Ci0tICAgICAgICAv KgotLSAgICAgICAgICogVGhlcmUgc2hvdWxkIGJlIG5vIE5VTHMgaW4gSlNPTiB0ZXh0cyAoYnV0 IEpTT04gdGV4dAotLSAgICAgICAgICogc2VxdWVuY2VzIGFyZSBhbm90aGVyIHN0b3J5KS4KLS0g ICAgICAgICAqLwotLSAgICAgICAgc3RhdGUtPmJ1Zl92YWxpZF9sZW4gPSBzdHJsZW4oc3RhdGUt PmJ1Zik7Ci0tICAgICAgfSBlbHNlIGlmIChwID09IE5VTEwgJiYgZmVvZihzdGF0ZS0+Y3VycmVu dF9pbnB1dCkpIHsKLSsgICAgICBpZiAocCA9PSBOVUxMICYmIGZlb2Yoc3RhdGUtPmN1cnJlbnRf aW5wdXQpKSB7Ci0gICAgICAgICBzaXplX3QgaTsKLSAKLSAgICAgICAgIC8qCmRpZmYgLS1naXQg YS9wYWNrYWdlL2pxLzAwMDMtbGltaXQtcGF0aC1kZXB0aC10by1wcmV2ZW50LXN0YWNrLW92ZXJm bG93LnBhdGNoIGIvcGFja2FnZS9qcS8wMDAzLWxpbWl0LXBhdGgtZGVwdGgtdG8tcHJldmVudC1z dGFjay1vdmVyZmxvdy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDk4ZDRi ODFmNi4uMDAwMDAwMDAwMAotLS0gYS9wYWNrYWdlL2pxLzAwMDMtbGltaXQtcGF0aC1kZXB0aC10 by1wcmV2ZW50LXN0YWNrLW92ZXJmbG93LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAs MCBAQAotRnJvbSBmYjU5ZjE0OTEwNThkNThiZGMzZThkZDI4ZjE3NzNkMWFjNjkwYTFmIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaXRjaHlueSA8aXRjaHlueUBjeWJvenUuY28uanA+ Ci1EYXRlOiBNb24sIDEzIEFwciAyMDI2IDExOjIzOjQwICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hd IExpbWl0IHBhdGggZGVwdGggdG8gcHJldmVudCBzdGFjayBvdmVyZmxvdwotCi1EZWVwbHkgbmVz dGVkIHBhdGggYXJyYXlzIGNhbiBjYXVzZSB1bmJvdW5kZWQgcmVjdXJzaW9uIGluCi1ganZfc2V0 cGF0aGAsIGBqdl9nZXRwYXRoYCwgYW5kIGBqdl9kZWxwYXRoc2AsIGxlYWRpbmcgdG8KLXN0YWNr IG92ZXJmbG93LiBBZGQgYSBkZXB0aCBsaW1pdCBvZiAxMDAwMCB0byBtYXRjaCB0aGUKLWV4aXN0 aW5nIGB0b2pzb25gIGRlcHRoIGxpbWl0LiBUaGlzIGZpeGVzIENWRS0yMDI2LTMzOTQ3LgotCi1D VkU6IENWRS0yMDI2LTMzOTQ3Ci1VcHN0cmVhbTogaHR0cHM6Ly9naXRodWIuY29tL2pxbGFuZy9q cS9jb21taXQvZmI1OWYxNDkxMDU4ZDU4YmRjM2U4ZGQyOGYxNzczZDFhYzY5MGExZgotW3Rob21h czogcmVtb3ZlIHRlc3RzXQotU2lnbmVkLW9mZi1ieTogVGhvbWFzIFBlcmFsZSA8dGhvbWFzLnBl cmFsZUBtaW5kLmJlPgotLS0tCi0gc3JjL2p2X2F1eC5jICB8IDIxICsrKysrKysrKysrKysrKysr KysrKwotIHRlc3RzL2pxLnRlc3QgfCAyNSArKysrKysrKysrKysrKysrKysrKysrKysrCi0gMiBm aWxlcyBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9zcmMvanZfYXV4 LmMgYi9zcmMvanZfYXV4LmMKLWluZGV4IDAxOGYzODBiMTAuLmZkNWZmOTY2ODQgMTAwNjQ0Ci0t LS0gYS9zcmMvanZfYXV4LmMKLSsrKyBiL3NyYy9qdl9hdXguYwotQEAgLTM3NSw2ICszNzUsMTAg QEAgc3RhdGljIGp2IGp2X2RlbHMoanYgdCwganYga2V5cykgewotICAgcmV0dXJuIHQ7Ci0gfQot IAotKyNpZm5kZWYgTUFYX1BBVEhfREVQVEgKLSsjZGVmaW5lIE1BWF9QQVRIX0RFUFRIICgxMDAw MCkKLSsjZW5kaWYKLSsKLSBqdiBqdl9zZXRwYXRoKGp2IHJvb3QsIGp2IHBhdGgsIGp2IHZhbHVl KSB7Ci0gICBpZiAoanZfZ2V0X2tpbmQocGF0aCkgIT0gSlZfS0lORF9BUlJBWSkgewotICAgICBq dl9mcmVlKHZhbHVlKTsKLUBAIC0zODIsNiArMzg2LDEyIEBAIGp2IGp2X3NldHBhdGgoanYgcm9v dCwganYgcGF0aCwganYgdmFsdWUpIHsKLSAgICAganZfZnJlZShwYXRoKTsKLSAgICAgcmV0dXJu IGp2X2ludmFsaWRfd2l0aF9tc2coanZfc3RyaW5nKCJQYXRoIG11c3QgYmUgc3BlY2lmaWVkIGFz IGFuIGFycmF5IikpOwotICAgfQotKyAgaWYgKGp2X2FycmF5X2xlbmd0aChqdl9jb3B5KHBhdGgp KSA+IE1BWF9QQVRIX0RFUFRIKSB7Ci0rICAgIGp2X2ZyZWUodmFsdWUpOwotKyAgICBqdl9mcmVl KHJvb3QpOwotKyAgICBqdl9mcmVlKHBhdGgpOwotKyAgICByZXR1cm4ganZfaW52YWxpZF93aXRo X21zZyhqdl9zdHJpbmcoIlBhdGggdG9vIGRlZXAiKSk7Ci0rICB9Ci0gICBpZiAoIWp2X2lzX3Zh bGlkKHJvb3QpKXsKLSAgICAganZfZnJlZSh2YWx1ZSk7Ci0gICAgIGp2X2ZyZWUocGF0aCk7Ci1A QCAtNDM0LDYgKzQ0NCwxMSBAQCBqdiBqdl9nZXRwYXRoKGp2IHJvb3QsIGp2IHBhdGgpIHsKLSAg ICAganZfZnJlZShwYXRoKTsKLSAgICAgcmV0dXJuIGp2X2ludmFsaWRfd2l0aF9tc2coanZfc3Ry aW5nKCJQYXRoIG11c3QgYmUgc3BlY2lmaWVkIGFzIGFuIGFycmF5IikpOwotICAgfQotKyAgaWYg KGp2X2FycmF5X2xlbmd0aChqdl9jb3B5KHBhdGgpKSA+IE1BWF9QQVRIX0RFUFRIKSB7Ci0rICAg IGp2X2ZyZWUocm9vdCk7Ci0rICAgIGp2X2ZyZWUocGF0aCk7Ci0rICAgIHJldHVybiBqdl9pbnZh bGlkX3dpdGhfbXNnKGp2X3N0cmluZygiUGF0aCB0b28gZGVlcCIpKTsKLSsgIH0KLSAgIGlmICgh anZfaXNfdmFsaWQocm9vdCkpIHsKLSAgICAganZfZnJlZShwYXRoKTsKLSAgICAgcmV0dXJuIHJv b3Q7Ci1AQCAtNTExLDYgKzUyNiwxMiBAQCBqdiBqdl9kZWxwYXRocyhqdiBvYmplY3QsIGp2IHBh dGhzKSB7Ci0gICAgICAganZfZnJlZShlbGVtKTsKLSAgICAgICByZXR1cm4gZXJyOwotICAgICB9 Ci0rICAgIGlmIChqdl9hcnJheV9sZW5ndGgoanZfY29weShlbGVtKSkgPiBNQVhfUEFUSF9ERVBU SCkgewotKyAgICAgIGp2X2ZyZWUob2JqZWN0KTsKLSsgICAgICBqdl9mcmVlKHBhdGhzKTsKLSsg ICAgICBqdl9mcmVlKGVsZW0pOwotKyAgICAgIHJldHVybiBqdl9pbnZhbGlkX3dpdGhfbXNnKGp2 X3N0cmluZygiUGF0aCB0b28gZGVlcCIpKTsKLSsgICAgfQotICAgICBqdl9mcmVlKGVsZW0pOwot ICAgfQotICAgaWYgKGp2X2FycmF5X2xlbmd0aChqdl9jb3B5KHBhdGhzKSkgPT0gMCkgewpkaWZm IC0tZ2l0IGEvcGFja2FnZS9qcS8wMDA0LWZpeC1oZWFwLWJ1ZmZlci1vdmVyZmxvdy1pbi1qdnAt c3RyaW5nLWFwcGVuZC1hbmQtanZwLXN0cmluZy1jb3B5LXJlcGxhY2UtYmFkLnBhdGNoIGIvcGFj a2FnZS9qcS8wMDA0LWZpeC1oZWFwLWJ1ZmZlci1vdmVyZmxvdy1pbi1qdnAtc3RyaW5nLWFwcGVu ZC1hbmQtanZwLXN0cmluZy1jb3B5LXJlcGxhY2UtYmFkLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBiODM1YzlkMWM4Li4wMDAwMDAwMDAwCi0tLSBhL3BhY2thZ2UvanEvMDAw NC1maXgtaGVhcC1idWZmZXItb3ZlcmZsb3ctaW4tanZwLXN0cmluZy1hcHBlbmQtYW5kLWp2cC1z dHJpbmctY29weS1yZXBsYWNlLWJhZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAg QEAKLUZyb20gZTQ3ZTU2ZDIyNjUxOTYzNTc2OGU2YWFiMmYzOGYwYWIwMzdjMDllNSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGl0Y2h5bnkgPGl0Y2h5bnlAY3lib3p1LmNvLmpwPgot RGF0ZTogVGh1LCAxMiBNYXIgMjAyNiAyMDoyODo0MyArMDkwMAotU3ViamVjdDogW1BBVENIXSBG aXggaGVhcCBidWZmZXIgb3ZlcmZsb3cgaW4gYGp2cF9zdHJpbmdfYXBwZW5kYCBhbmQKLSBganZw X3N0cmluZ19jb3B5X3JlcGxhY2VfYmFkYAotCi1JbiBganZwX3N0cmluZ19hcHBlbmRgLCB0aGUg YWxsb2NhdGlvbiBzaXplIGAoY3VycmxlbiArIGxlbikgKiAyYCBjb3VsZAotb3ZlcmZsb3cgYHVp bnQzMl90YCB3aGVuIGBjdXJybGVuICsgbGVuYCBleGNlZWRzIGBJTlRfTUFYYCwgY2F1c2luZyBh IHNtYWxsCi1hbGxvY2F0aW9uIGZvbGxvd2VkIGJ5IGEgbGFyZ2UgYG1lbWNweWAuCi0KLUluIGBq dnBfc3RyaW5nX2NvcHlfcmVwbGFjZV9iYWRgLCB0aGUgb3V0cHV0IGJ1ZmZlciBzaXplIGNhbGN1 bGF0aW9uCi1gbGVuZ3RoICogMyArIDFgIGNvdWxkIG92ZXJmbG93IGB1aW50MzJfdGAsIGFnYWlu IHJlc3VsdGluZyBpbiBhIHNtYWxsCi1hbGxvY2F0aW9uIGZvbGxvd2VkIGJ5IGEgbGFyZ2Ugd3Jp dGUuCi0KLUFkZCBvdmVyZmxvdyBjaGVja3MgdG8gYm90aCBmdW5jdGlvbnMgdG8gcmV0dXJuIGFu IGVycm9yIGZvciBzdHJpbmdzCi10aGF0IHdvdWxkIGV4Y2VlZCBgSU5UX01BWGAgaW4gbGVuZ3Ro LiBGaXhlcyBDVkUtMjAyNi0zMjMxNi4KLQotQ1ZFOiBDVkUtMjAyNi0zMjMxNgotVXBzdHJlYW06 IGh0dHBzOi8vZ2l0aHViLmNvbS9qcWxhbmcvanEvY29tbWl0L2U0N2U1NmQyMjY1MTk2MzU3Njhl NmFhYjJmMzhmMGFiMDM3YzA5ZTUKLVNpZ25lZC1vZmYtYnk6IFRob21hcyBQZXJhbGUgPHRob21h cy5wZXJhbGVAbWluZC5iZT4KLS0tLQotIHNyYy9qdi5jIHwgMTEgKysrKysrKysrKy0KLSAxIGZp bGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0 IGEvc3JjL2p2LmMgYi9zcmMvanYuYwotaW5kZXggNzIyYTUzOTM5MS4uMmE2MmI0ODQxOSAxMDA2 NDQKLS0tLSBhL3NyYy9qdi5jCi0rKysgYi9zcmMvanYuYwotQEAgLTExMTQsNyArMTExNCwxMiBA QCBzdGF0aWMganYganZwX3N0cmluZ19jb3B5X3JlcGxhY2VfYmFkKGNvbnN0IGNoYXIqIGRhdGEs IHVpbnQzMl90IGxlbmd0aCkgewotICAgY29uc3QgY2hhciogZW5kID0gZGF0YSArIGxlbmd0aDsK LSAgIGNvbnN0IGNoYXIqIGkgPSBkYXRhOwotIAotLSAgdWludDMyX3QgbWF4bGVuZ3RoID0gbGVu Z3RoICogMyArIDE7IC8vIHdvcnN0IGNhc2U6IGFsbCBiYWQgYnl0ZXMsIGVhY2ggYmVjb21lcyBh IDMtYnl0ZSBVK0ZGRkQKLSsgIC8vIHdvcnN0IGNhc2U6IGFsbCBiYWQgYnl0ZXMsIGVhY2ggYmVj b21lcyBhIDMtYnl0ZSBVK0ZGRkQKLSsgIHVpbnQ2NF90IG1heGxlbmd0aCA9ICh1aW50NjRfdCls ZW5ndGggKiAzICsgMTsKLSsgIGlmIChtYXhsZW5ndGggPj0gSU5UX01BWCkgewotKyAgICByZXR1 cm4ganZfaW52YWxpZF93aXRoX21zZyhqdl9zdHJpbmcoIlN0cmluZyB0b28gbG9uZyIpKTsKLSsg IH0KLSsKLSAgIGp2cF9zdHJpbmcqIHMgPSBqdnBfc3RyaW5nX2FsbG9jKG1heGxlbmd0aCk7Ci0g ICBjaGFyKiBvdXQgPSBzLT5kYXRhOwotICAgaW50IGMgPSAwOwotQEAgLTExNzQsNiArMTE3OSwx MCBAQCBzdGF0aWMgdWludDMyX3QganZwX3N0cmluZ19yZW1haW5pbmdfc3BhY2UoanZwX3N0cmlu ZyogcykgewotIHN0YXRpYyBqdiBqdnBfc3RyaW5nX2FwcGVuZChqdiBzdHJpbmcsIGNvbnN0IGNo YXIqIGRhdGEsIHVpbnQzMl90IGxlbikgewotICAganZwX3N0cmluZyogcyA9IGp2cF9zdHJpbmdf cHRyKHN0cmluZyk7Ci0gICB1aW50MzJfdCBjdXJybGVuID0ganZwX3N0cmluZ19sZW5ndGgocyk7 Ci0rICBpZiAoKHVpbnQ2NF90KWN1cnJsZW4gKyBsZW4gPj0gSU5UX01BWCkgewotKyAgICBqdl9m cmVlKHN0cmluZyk7Ci0rICAgIHJldHVybiBqdl9pbnZhbGlkX3dpdGhfbXNnKGp2X3N0cmluZygi U3RyaW5nIHRvbyBsb25nIikpOwotKyAgfQotIAotICAgaWYgKGp2cF9yZWZjbnRfdW5zaGFyZWQo c3RyaW5nLnUucHRyKSAmJgotICAgICAgIGp2cF9zdHJpbmdfcmVtYWluaW5nX3NwYWNlKHMpID49 IGxlbikgewpkaWZmIC0tZ2l0IGEvcGFja2FnZS9qcS8wMDA1LXJhbmRvbWl6ZS1oYXNoLXNlZWQt dG8tbWl0aWdhdGUtaGFzaC1jb2xsaXNpb24tRG9TLWF0dGFja3MucGF0Y2ggYi9wYWNrYWdlL2px LzAwMDUtcmFuZG9taXplLWhhc2gtc2VlZC10by1taXRpZ2F0ZS1oYXNoLWNvbGxpc2lvbi1Eb1Mt YXR0YWNrcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWM0ZDZjNDQ1ZS4u MDAwMDAwMDAwMAotLS0gYS9wYWNrYWdlL2pxLzAwMDUtcmFuZG9taXplLWhhc2gtc2VlZC10by1t aXRpZ2F0ZS1oYXNoLWNvbGxpc2lvbi1Eb1MtYXR0YWNrcy5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDkwICswLDAgQEAKLUZyb20gMGM3ZDEzM2MzYzdlMzdjMDBiNmQ0NmI2NThhMDIyNDRmZGQz Yzc4NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGl0Y2h5bnkgPGl0Y2h5bnlAY3li b3p1LmNvLmpwPgotRGF0ZTogTW9uLCAxMyBBcHIgMjAyNiAwODo1MzoyNiArMDkwMAotU3ViamVj dDogW1BBVENIXSBSYW5kb21pemUgaGFzaCBzZWVkIHRvIG1pdGlnYXRlIGhhc2ggY29sbGlzaW9u IERvUyBhdHRhY2tzCi0KLVRoZSBoYXNoIGZ1bmN0aW9uIHVzZWQgYSBmaXhlZCBzZWVkLCBhbGxv d2luZyBhdHRhY2tlcnMgdG8gY3JhZnQgY29sbGlkaW5nIGtleXMKLWFuZCBjYXVzZSBPKG5eMikg b2JqZWN0IHBhcnNpbmcgcGVyZm9ybWFuY2UuIEluaXRpYWxpemUgdGhlIHNlZWQgZnJvbSBhIHJh bmRvbQotc291cmNlIGF0IHByb2Nlc3Mgc3RhcnR1cCB0byBwcmV2ZW50IHRoZSBhdHRhY2suIFRo aXMgZml4ZXMgQ1ZFLTIwMjYtNDAxNjQuCi0KLUNvLWF1dGhvcmVkLWJ5OiBBc2FmIE1laXpuZXIg PGFzYWZtZWl6bmVyQGdtYWlsLmNvbT4KLUNWRTogQ1ZFLTIwMjYtNDAxNjQKLVVwc3RyZWFtOiBo dHRwczovL2dpdGh1Yi5jb20vanFsYW5nL2pxL2NvbW1pdC8wYzdkMTMzYzNjN2UzN2MwMGI2ZDQ2 YjY1OGEwMjI0NGZkZDNjNzg0Ci1TaWduZWQtb2ZmLWJ5OiBUaG9tYXMgUGVyYWxlIDx0aG9tYXMu cGVyYWxlQG1pbmQuYmU+Ci0tLS0KLSBjb25maWd1cmUuYWMgfCAgMiArKwotIHNyYy9qdi5jICAg ICB8IDM0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KLSAyIGZpbGVzIGNoYW5n ZWQsIDM0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9jb25m aWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4IDVkYWM0MjY1NWEuLmY3MDY3YTQzNDEgMTAw NjQ0Ci0tLS0gYS9jb25maWd1cmUuYWMKLSsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTE0Myw2ICsx NDMsOCBAQCBBQ19DSEVDS19NRU1CRVIoW3N0cnVjdCB0bS50bV9nbXRvZmZdLCBbQUNfREVGSU5F KFtIQVZFX1RNX1RNX0dNVF9PRkZdLDEsW0RlZmluZQotIEFDX0NIRUNLX01FTUJFUihbc3RydWN0 IHRtLl9fdG1fZ210b2ZmXSwgW0FDX0RFRklORShbSEFWRV9UTV9fX1RNX0dNVF9PRkZdLDEsW0Rl ZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSBfX3RtX2dtdF9vZmYgZmllbGQgaW4gc3Ry dWN0IHRtXSldLAotICAgICAgICAgICAgICAgICBbXSwgW1sjaW5jbHVkZSA8dGltZS5oPl1dKQot IEFDX0ZJTkRfRlVOQyhbc2V0bG9jYWxlXSwgW2NdLCBbI2luY2x1ZGUgPGxvY2FsZS5oPl0sIFsw LDBdKQotK0FDX0ZJTkRfRlVOQyhbYXJjNHJhbmRvbV0sIFtjXSwgWyNpbmNsdWRlIDxzdGRsaWIu aD5dLCBbXSkKLStBQ19GSU5EX0ZVTkMoW2dldGVudHJvcHldLCBbY10sIFsjaW5jbHVkZSA8dW5p c3RkLmg+XSwgWzAsIDBdKQotIAotIGRubCBGaWd1cmUgb3V0IGlmIHdlIGhhdmUgdGhlIHB0aHJl YWQgZnVuY3Rpb25zIHdlIGFjdHVhbGx5IG5lZWQKLSBBQ19GSU5EX0ZVTkNfTk9fTElCUyhbcHRo cmVhZF9rZXlfY3JlYXRlXSwgW10sIFsjaW5jbHVkZSA8cHRocmVhZC5oPl0sIFtOVUxMLCBOVUxM XSkKLWRpZmYgLS1naXQgYS9zcmMvanYuYyBiL3NyYy9qdi5jCi1pbmRleCAyYTYyYjQ4NDE5Li42 MDdhYzE3NGY3IDEwMDY0NAotLS0tIGEvc3JjL2p2LmMKLSsrKyBiL3NyYy9qdi5jCi1AQCAtNDAs NiArNDAsMTAgQEAKLSAjaW5jbHVkZSA8bGltaXRzLmg+Ci0gI2luY2x1ZGUgPG1hdGguaD4KLSAj aW5jbHVkZSA8ZmxvYXQuaD4KLSsjaW5jbHVkZSA8dGltZS5oPgotKyNpbmNsdWRlIDx1bmlzdGQu aD4KLSsjaW5jbHVkZSA8ZmNudGwuaD4KLSsjaW5jbHVkZSA8cHRocmVhZC5oPgotIAotICNpbmNs dWRlICJqdl9hbGxvYy5oIgotICNpbmNsdWRlICJqdi5oIgotQEAgLTEyMDYsNyArMTIxMCwzMyBA QCBzdGF0aWMganYganZwX3N0cmluZ19hcHBlbmQoanYgc3RyaW5nLCBjb25zdCBjaGFyKiBkYXRh LCB1aW50MzJfdCBsZW4pIHsKLSAgIH0KLSB9Ci0gCi0tc3RhdGljIGNvbnN0IHVpbnQzMl90IEhB U0hfU0VFRCA9IDB4NDMyQTk4NDM7Ci0rc3RhdGljIHVpbnQzMl90IGhhc2hfc2VlZDsKLStzdGF0 aWMgcHRocmVhZF9vbmNlX3QgaGFzaF9zZWVkX29uY2UgPSBQVEhSRUFEX09OQ0VfSU5JVDsKLSsK LStzdGF0aWMgdm9pZCBqdnBfaGFzaF9zZWVkX2luaXQodm9pZCkgewotKyAgdWludDMyX3Qgc2Vl ZDsKLSsjaWYgZGVmaW5lZChIQVZFX0FSQzRSQU5ET00pCi0rICBzZWVkID0gYXJjNHJhbmRvbSgp OwotKyNlbGlmIGRlZmluZWQoSEFWRV9HRVRFTlRST1BZKQotKyAgaWYgKGdldGVudHJvcHkoJnNl ZWQsIHNpemVvZihzZWVkKSkgIT0gMCkKLSsgICAgc2VlZCA9ICh1aW50MzJfdClnZXRwaWQoKSBe ICh1aW50MzJfdCl0aW1lKE5VTEwpOwotKyNlbHNlCi0rICBpbnQgZmQgPSBvcGVuKCIvZGV2L3Vy YW5kb20iLCBPX1JET05MWSk7Ci0rICBpZiAoZmQgPj0gMCkgewotKyAgICBpZiAocmVhZChmZCwg JnNlZWQsIHNpemVvZihzZWVkKSkgIT0gNCkKLSsgICAgICBzZWVkID0gKHVpbnQzMl90KWdldHBp ZCgpIF4gKHVpbnQzMl90KXRpbWUoTlVMTCk7Ci0rICAgIGNsb3NlKGZkKTsKLSsgIH0gZWxzZSB7 Ci0rICAgIHNlZWQgPSAodWludDMyX3QpZ2V0cGlkKCkgXiAodWludDMyX3QpdGltZShOVUxMKTsK LSsgIH0KLSsjZW5kaWYKLSsgIGhhc2hfc2VlZCA9IHNlZWQ7Ci0rfQotKwotK3N0YXRpYyB1aW50 MzJfdCBqdnBfaGFzaF9zZWVkKHZvaWQpIHsKLSsgIHB0aHJlYWRfb25jZSgmaGFzaF9zZWVkX29u Y2UsIGp2cF9oYXNoX3NlZWRfaW5pdCk7Ci0rICByZXR1cm4gaGFzaF9zZWVkOwotK30KLSAKLSBz dGF0aWMgdWludDMyX3Qgcm90bDMyICh1aW50MzJfdCB4LCBpbnQ4X3Qgcil7Ci0gICByZXR1cm4g KHggPDwgcikgfCAoeCA+PiAoMzIgLSByKSk7Ci1AQCAtMTIyNSw3ICsxMjU1LDcgQEAgc3RhdGlj IHVpbnQzMl90IGp2cF9zdHJpbmdfaGFzaChqdiBqc3RyKSB7Ci0gICBpbnQgbGVuID0gKGludClq dnBfc3RyaW5nX2xlbmd0aChzdHIpOwotICAgY29uc3QgaW50IG5ibG9ja3MgPSBsZW4gLyA0Owot IAotLSAgdWludDMyX3QgaDEgPSBIQVNIX1NFRUQ7Ci0rICB1aW50MzJfdCBoMSA9IGp2cF9oYXNo X3NlZWQoKTsKLSAKLSAgIGNvbnN0IHVpbnQzMl90IGMxID0gMHhjYzllMmQ1MTsKLSAgIGNvbnN0 IHVpbnQzMl90IGMyID0gMHgxYjg3MzU5MzsKZGlmZiAtLWdpdCBhL3BhY2thZ2UvanEvMDAwNi1s aW1pdC10aGUtY29udGFpbm1lbnQtY2hlY2stZGVwdGgucGF0Y2ggYi9wYWNrYWdlL2pxLzAwMDYt bGltaXQtdGhlLWNvbnRhaW5tZW50LWNoZWNrLWRlcHRoLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA3ODM0YjhlZDIzLi4wMDAwMDAwMDAwCi0tLSBhL3BhY2thZ2UvanEvMDAw Ni1saW1pdC10aGUtY29udGFpbm1lbnQtY2hlY2stZGVwdGgucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwxMjAgKzAsMCBAQAotRnJvbSBkMWExMjU2OWQ5MTY0MTEzNTk3NmE4NTM2Nzc2YTRhMzI5 YzAyY2MyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogaXRjaHlueSA8aXRjaHlueUBj eWJvenUuY28uanA+Ci1EYXRlOiBGcmksIDI0IEFwciAyMDI2IDIyOjAyOjI0ICswOTAwCi1TdWJq ZWN0OiBbUEFUQ0hdIExpbWl0IHRoZSBjb250YWlubWVudCBjaGVjayBkZXB0aAotCi1UaGlzIGZp eGVzIENWRS0yMDI2LTQwNjEyLgotCi1DVkU6IENWRS0yMDI2LTQwNjEyCi1VcHN0cmVhbTogaHR0 cHM6Ly9naXRodWIuY29tL2pxbGFuZy9qcS9jb21taXQvZDFhMTI1NjlkOTE2NDExMzU5NzZhODUz Njc3NmE0YTMyOWMwMmNjMgotU2lnbmVkLW9mZi1ieTogVGhvbWFzIFBlcmFsZSA8dGhvbWFzLnBl cmFsZUBtaW5kLmJlPgotLS0tCi0gc3JjL2J1aWx0aW4uYyB8ICA1ICsrKystCi0gc3JjL2p2LmMg ICAgICB8IDQwICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KLSB0ZXN0 cy9qcS50ZXN0IHwgIDkgKysrKysrKysrCi0gMyBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25z KCspLCAxNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9idWlsdGluLmMgYi9zcmMv YnVpbHRpbi5jCi1pbmRleCBkMzNlOWZiMTYyLi4yYjJhMmQ0MGRhIDEwMDY0NAotLS0tIGEvc3Jj L2J1aWx0aW4uYwotKysrIGIvc3JjL2J1aWx0aW4uYwotQEAgLTQxOSw3ICs0MTksMTAgQEAganYg Ymlub3BfZ3JlYXRlcmVxKGp2IGEsIGp2IGIpIHsKLSAKLSBzdGF0aWMganYgZl9jb250YWlucyhq cV9zdGF0ZSAqanEsIGp2IGEsIGp2IGIpIHsKLSAgIGlmIChqdl9nZXRfa2luZChhKSA9PSBqdl9n ZXRfa2luZChiKSkgewotLSAgICByZXR1cm4ganZfYm9vbChqdl9jb250YWlucyhhLCBiKSk7Ci0r ICAgIGludCByID0ganZfY29udGFpbnMoYSwgYik7Ci0rICAgIGlmIChyIDwgMCkKLSsgICAgICBy ZXR1cm4ganZfaW52YWxpZF93aXRoX21zZyhqdl9zdHJpbmcoIkNvbnRhaW5tZW50IGNoZWNrIHRv byBkZWVwIikpOwotKyAgICByZXR1cm4ganZfYm9vbChyKTsKLSAgIH0gZWxzZSB7Ci0gICAgIHJl dHVybiB0eXBlX2Vycm9yMihhLCBiLCAiY2Fubm90IGhhdmUgdGhlaXIgY29udGFpbm1lbnQgY2hl Y2tlZCIpOwotICAgfQotZGlmZiAtLWdpdCBhL3NyYy9qdi5jIGIvc3JjL2p2LmMKLWluZGV4IDYw N2FjMTc0ZjcuLjRiMThjMDBjZjYgMTAwNjQ0Ci0tLS0gYS9zcmMvanYuYwotKysrIGIvc3JjL2p2 LmMKLUBAIC05MzgsMTkgKzkzOCwxOSBAQCBzdGF0aWMgdm9pZCBqdnBfY2xhbXBfc2xpY2VfcGFy YW1zKGludCBsZW4sIGludCAqcHN0YXJ0LCBpbnQgKnBlbmQpCi0gfQotIAotIAotLXN0YXRpYyBp bnQganZwX2FycmF5X2NvbnRhaW5zKGp2IGEsIGp2IGIpIHsKLStzdGF0aWMgaW50IGp2cF9jb250 YWlucyhqdiBhLCBqdiBiLCBpbnQgZGVwdGgpOwotKwotK3N0YXRpYyBpbnQganZwX2FycmF5X2Nv bnRhaW5zKGp2IGEsIGp2IGIsIGludCBkZXB0aCkgewotICAgaW50IHIgPSAxOwotICAganZfYXJy YXlfZm9yZWFjaChiLCBiaSwgYmVsZW0pIHsKLSAgICAgaW50IHJpID0gMDsKLSAgICAganZfYXJy YXlfZm9yZWFjaChhLCBhaSwgYWVsZW0pIHsKLS0gICAgICBpZiAoanZfY29udGFpbnMoYWVsZW0s IGp2X2NvcHkoYmVsZW0pKSkgewotLSAgICAgICAgcmkgPSAxOwotLSAgICAgICAgYnJlYWs7Ci0t ICAgICAgfQotKyAgICAgIHJpID0ganZwX2NvbnRhaW5zKGFlbGVtLCBqdl9jb3B5KGJlbGVtKSwg ZGVwdGgpOwotKyAgICAgIGlmIChyaSkgYnJlYWs7Ci0gICAgIH0KLSAgICAganZfZnJlZShiZWxl bSk7Ci0tICAgIGlmICghcmkpIHsKLS0gICAgICByID0gMDsKLSsgICAgaWYgKHJpIDw9IDApIHsK LSsgICAgICByID0gcmk7Ci0gICAgICAgYnJlYWs7Ci0gICAgIH0KLSAgIH0KLUBAIC0xODQzLDcg KzE4NDMsNyBAQCBzdGF0aWMgaW50IGp2cF9vYmplY3RfZXF1YWwoanYgbzEsIGp2IG8yKSB7Ci0g ICByZXR1cm4gbGVuMSA9PSBsZW4yOwotIH0KLSAKLS1zdGF0aWMgaW50IGp2cF9vYmplY3RfY29u dGFpbnMoanYgYSwganYgYikgewotK3N0YXRpYyBpbnQganZwX29iamVjdF9jb250YWlucyhqdiBh LCBqdiBiLCBpbnQgZGVwdGgpIHsKLSAgIGFzc2VydChKVlBfSEFTX0tJTkQoYSwgSlZfS0lORF9P QkpFQ1QpKTsKLSAgIGFzc2VydChKVlBfSEFTX0tJTkQoYiwgSlZfS0lORF9PQkpFQ1QpKTsKLSAg IGludCByID0gMTsKLUBAIC0xODUxLDkgKzE4NTEsOSBAQCBzdGF0aWMgaW50IGp2cF9vYmplY3Rf Y29udGFpbnMoanYgYSwganYgYikgewotICAganZfb2JqZWN0X2ZvcmVhY2goYiwga2V5LCBiX3Zh bCkgewotICAgICBqdiBhX3ZhbCA9IGp2X29iamVjdF9nZXQoanZfY29weShhKSwga2V5KTsKLSAK LS0gICAgciA9IGp2X2NvbnRhaW5zKGFfdmFsLCBiX3ZhbCk7Ci0rICAgIHIgPSBqdnBfY29udGFp bnMoYV92YWwsIGJfdmFsLCBkZXB0aCk7Ci0gCi0tICAgIGlmICghcikgYnJlYWs7Ci0rICAgIGlm IChyIDw9IDApIGJyZWFrOwotICAgfQotICAgcmV0dXJuIHI7Ci0gfQotQEAgLTIwODQsMTQgKzIw ODQsMjMgQEAgaW50IGp2X2lkZW50aWNhbChqdiBhLCBqdiBiKSB7Ci0gICByZXR1cm4gcjsKLSB9 Ci0gCi0taW50IGp2X2NvbnRhaW5zKGp2IGEsIGp2IGIpIHsKLSsjaWZuZGVmIE1BWF9DT05UQUlO U19ERVBUSAotKyNkZWZpbmUgTUFYX0NPTlRBSU5TX0RFUFRIICgxMDAwMCkKLSsjZW5kaWYKLSsK LStzdGF0aWMgaW50IGp2cF9jb250YWlucyhqdiBhLCBqdiBiLCBpbnQgZGVwdGgpIHsKLSsgIGlm IChkZXB0aCA+IE1BWF9DT05UQUlOU19ERVBUSCkgewotKyAgICBqdl9mcmVlKGEpOwotKyAgICBq dl9mcmVlKGIpOwotKyAgICByZXR1cm4gLTE7Ci0rICB9Ci0gICBpbnQgciA9IDE7Ci0gICBpZiAo anZfZ2V0X2tpbmQoYSkgIT0ganZfZ2V0X2tpbmQoYikpIHsKLSAgICAgciA9IDA7Ci0gICB9IGVs c2UgaWYgKEpWUF9IQVNfS0lORChhLCBKVl9LSU5EX09CSkVDVCkpIHsKLS0gICAgciA9IGp2cF9v YmplY3RfY29udGFpbnMoYSwgYik7Ci0rICAgIHIgPSBqdnBfb2JqZWN0X2NvbnRhaW5zKGEsIGIs IGRlcHRoICsgMSk7Ci0gICB9IGVsc2UgaWYgKEpWUF9IQVNfS0lORChhLCBKVl9LSU5EX0FSUkFZ KSkgewotLSAgICByID0ganZwX2FycmF5X2NvbnRhaW5zKGEsIGIpOwotKyAgICByID0ganZwX2Fy cmF5X2NvbnRhaW5zKGEsIGIsIGRlcHRoICsgMSk7Ci0gICB9IGVsc2UgaWYgKEpWUF9IQVNfS0lO RChhLCBKVl9LSU5EX1NUUklORykpIHsKLSAgICAgaW50IGJfbGVuID0ganZfc3RyaW5nX2xlbmd0 aF9ieXRlcyhqdl9jb3B5KGIpKTsKLSAgICAgaWYgKGJfbGVuICE9IDApIHsKLUBAIC0yMTA3LDMg KzIxMTYsOCBAQCBpbnQganZfY29udGFpbnMoanYgYSwganYgYikgewotICAganZfZnJlZShiKTsK LSAgIHJldHVybiByOwotIH0KLSsKLSsvLyBSZXR1cm5zIDEgKGNvbnRhaW5lZCksIDAgKG5vdCBj b250YWluZWQpLCBvciAtMSAodG9vIGRlZXApCi0raW50IGp2X2NvbnRhaW5zKGp2IGEsIGp2IGIp IHsKLSsgIHJldHVybiBqdnBfY29udGFpbnMoYSwgYiwgMCk7Ci0rfQpkaWZmIC0tZ2l0IGEvcGFj a2FnZS9qcS8wMDA3LWZpeC1OVUwtdHJ1bmNhdGlvbi1pbi1wcm9ncmFtLWZpbGVzLWxvYWRlZC13 aXRoLWYucGF0Y2ggYi9wYWNrYWdlL2pxLzAwMDctZml4LU5VTC10cnVuY2F0aW9uLWluLXByb2dy YW0tZmlsZXMtbG9hZGVkLXdpdGgtZi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggZjY3YTdjOGVkNC4uMDAwMDAwMDAwMAotLS0gYS9wYWNrYWdlL2pxLzAwMDctZml4LU5VTC10 cnVuY2F0aW9uLWluLXByb2dyYW0tZmlsZXMtbG9hZGVkLXdpdGgtZi5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDM0ICswLDAgQEAKLUZyb20gNWEwMTVkZWFlMzVkMTllM2ViYmM2NWRiNmMxNTdh ODBlNzZkZjczOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGl0Y2h5bnkgPGl0Y2h5 bnlAY3lib3p1LmNvLmpwPgotRGF0ZTogRnJpLCAyNCBBcHIgMjAyNiAyMjoxNTowOCArMDkwMAot U3ViamVjdDogW1BBVENIXSBGaXggTlVMIHRydW5jYXRpb24gaW4gcHJvZ3JhbSBmaWxlcyBsb2Fk ZWQgd2l0aCAtZgotCi1UaGlzIGZpeGVzIENWRS0yMDI2LTQxMjU2LgotCi1DVkU6IENWRS0yMDI2 LTQxMjU2Ci1VcHN0cmVhbTogaHR0cHM6Ly9naXRodWIuY29tL2pxbGFuZy9qcS9jb21taXQvNWEw MTVkZWFlMzVkMTllM2ViYmM2NWRiNmMxNTdhODBlNzZkZjczOAotU2lnbmVkLW9mZi1ieTogVGhv bWFzIFBlcmFsZSA8dGhvbWFzLnBlcmFsZUBtaW5kLmJlPgotLS0tCi0gc3JjL21haW4uYyAgIHwg OCArKysrKysrKwotIHRlc3RzL3NodGVzdCB8IDcgKysrKysrKwotIDIgZmlsZXMgY2hhbmdlZCwg MTUgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvc3JjL21haW4uYyBiL3NyYy9tYWluLmMK LWluZGV4IGNlMzYyNjA3ZTIuLmZiNWM3YWI4ZTMgMTAwNjQ0Ci0tLS0gYS9zcmMvbWFpbi5jCi0r KysgYi9zcmMvbWFpbi5jCi1AQCAtNjExLDYgKzYxMSwxNCBAQCBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciogYXJndltdKSB7Ci0gICAgICAgcmV0ID0gSlFfRVJST1JfU1lTVEVNOwotICAgICAgIGdv dG8gb3V0OwotICAgICB9Ci0rICAgIGludCBsZW4gPSBqdl9zdHJpbmdfbGVuZ3RoX2J5dGVzKGp2 X2NvcHkoZGF0YSkpOwotKyAgICBpZiAoKHNpemVfdClsZW4gIT0gc3RybGVuKGp2X3N0cmluZ192 YWx1ZShkYXRhKSkpIHsKLSsgICAgICBmcHJpbnRmKHN0ZGVyciwgImpxOiBwcm9ncmFtIGZpbGUg Y29udGFpbnMgTlVMIGJ5dGVzXG4iKTsKLSsgICAgICBmcmVlKHByb2dyYW1fb3JpZ2luKTsKLSsg ICAgICBqdl9mcmVlKGRhdGEpOwotKyAgICAgIHJldCA9IEpRX0VSUk9SX1NZU1RFTTsKLSsgICAg ICBnb3RvIG91dDsKLSsgICAgfQotICAgICBqcV9zZXRfYXR0cihqcSwganZfc3RyaW5nKCJQUk9H UkFNX09SSUdJTiIpLCBqcV9yZWFscGF0aChqdl9zdHJpbmcoZGlybmFtZShwcm9ncmFtX29yaWdp bikpKSk7Ci0gICAgIEFSR1MgPSBKVl9PQkpFQ1QoanZfc3RyaW5nKCJwb3NpdGlvbmFsIiksIEFS R1MsCi0gICAgICAgICAgICAgICAgICAgICAganZfc3RyaW5nKCJuYW1lZCIpLCBqdl9jb3B5KHBy b2dyYW1fYXJndW1lbnRzKSk7CmRpZmYgLS1naXQgYS9wYWNrYWdlL2pxLzAwMDgtZml4LXNpZ25l ZC1pbnQtb3ZlcmZsb3ctaW4tc3RhY2stcmVhbGxvY2F0ZS5wYXRjaCBiL3BhY2thZ2UvanEvMDAw OC1maXgtc2lnbmVkLWludC1vdmVyZmxvdy1pbi1zdGFjay1yZWFsbG9jYXRlLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMGMzOWVkMjNiLi4wMDAwMDAwMDAwCi0tLSBhL3Bh Y2thZ2UvanEvMDAwOC1maXgtc2lnbmVkLWludC1vdmVyZmxvdy1pbi1zdGFjay1yZWFsbG9jYXRl LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotRnJvbSAwMWIzY2RlZDc2ZGFh Y2JmZGRiN2Y4NzYzNzAwYjA4MDNiY2I1YzZmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogaXRjaHlueSA8aXRjaHlueUBjeWJvenUuY28uanA+Ci1EYXRlOiBGcmksIDI0IEFwciAyMDI2 IDIyOjA5OjQ0ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeCBzaWduZWQtaW50IG92ZXJmbG93 IGluIGBzdGFja19yZWFsbG9jYXRlYAotCi1UaGlzIGZpeGVzIENWRS0yMDI2LTQxMjU3LgotCi1D VkU6IENWRS0yMDI2LTQxMjU3Ci1VcHN0cmVhbTogaHR0cHM6Ly9naXRodWIuY29tL2pxbGFuZy9q cS9jb21taXQvMDFiM2NkZWQ3NmRhYWNiZmRkYjdmODc2MzcwMGIwODAzYmNiNWM2ZgotU2lnbmVk LW9mZi1ieTogVGhvbWFzIFBlcmFsZSA8dGhvbWFzLnBlcmFsZUBtaW5kLmJlPgotLS0tCi0gc3Jj L2V4ZWNfc3RhY2suaCB8IDE0ICsrKysrKysrKystLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDEwIGlu c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvZXhlY19zdGFj ay5oIGIvc3JjL2V4ZWNfc3RhY2suaAotaW5kZXggMmEwNjNlOGNmOS4uMTU5YzU2ZTRmYiAxMDA2 NDQKLS0tLSBhL3NyYy9leGVjX3N0YWNrLmgKLSsrKyBiL3NyYy9leGVjX3N0YWNrLmgKLUBAIC0y LDggKzIsMTAgQEAKLSAjZGVmaW5lIEVYRUNfU1RBQ0tfSAotICNpbmNsdWRlIDxzdGRkZWYuaD4K LSAjaW5jbHVkZSA8c3RkaW50Lmg+Ci0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0gI2luY2x1ZGUgPHN0 ZGxpYi5oPgotICNpbmNsdWRlIDxzdHJpbmcuaD4KLSsjaW5jbHVkZSA8bGltaXRzLmg+Ci0gI2lu Y2x1ZGUgImp2X2FsbG9jLmgiCi0gCi0gLyoKLUBAIC04MSwxNSArODMsMTkgQEAgc3RhdGljIHN0 YWNrX3B0ciogc3RhY2tfYmxvY2tfbmV4dChzdHJ1Y3Qgc3RhY2sqIHMsIHN0YWNrX3B0ciBwKSB7 Ci0gfQotIAotIHN0YXRpYyB2b2lkIHN0YWNrX3JlYWxsb2NhdGUoc3RydWN0IHN0YWNrKiBzLCBz aXplX3Qgc3opIHsKLS0gIGludCBvbGRfbWVtX2xlbmd0aCA9IC0ocy0+Ym91bmQpICsgQUxJR05N RU5UOwotLSAgY2hhciogb2xkX21lbV9zdGFydCA9IChzLT5tZW1fZW5kICE9IE5VTEwpID8gKHMt Pm1lbV9lbmQgLSBvbGRfbWVtX2xlbmd0aCkgOiBOVUxMOwotKyAgc2l6ZV90IG9sZF9tZW1fbGVu Z3RoID0gKHNpemVfdCkoLShzLT5ib3VuZCkpICsgQUxJR05NRU5UOwotKyAgY2hhciogb2xkX21l bV9zdGFydCA9IHMtPm1lbV9lbmQgIT0gTlVMTCA/IHMtPm1lbV9lbmQgLSBvbGRfbWVtX2xlbmd0 aCA6IE5VTEw7Ci0gCi0tICBpbnQgbmV3X21lbV9sZW5ndGggPSBhbGlnbl9yb3VuZF91cCgob2xk X21lbV9sZW5ndGggKyBzeiArIDI1NikgKiAyKTsKLSsgIHNpemVfdCBuZXdfbWVtX2xlbmd0aCA9 IGFsaWduX3JvdW5kX3VwKChvbGRfbWVtX2xlbmd0aCArIHN6ICsgMjU2KSAqIDIpOwotKyAgaWYg KG5ld19tZW1fbGVuZ3RoID4gSU5UX01BWCkgewotKyAgICBmcHJpbnRmKHN0ZGVyciwgImpxOiBl cnJvcjogY2Fubm90IGFsbG9jYXRlIG1lbW9yeVxuIik7Ci0rICAgIGFib3J0KCk7Ci0rICB9Ci0g ICBjaGFyKiBuZXdfbWVtX3N0YXJ0ID0ganZfbWVtX3JlYWxsb2Mob2xkX21lbV9zdGFydCwgbmV3 X21lbV9sZW5ndGgpOwotICAgbWVtbW92ZShuZXdfbWVtX3N0YXJ0ICsgKG5ld19tZW1fbGVuZ3Ro IC0gb2xkX21lbV9sZW5ndGgpLAotICAgICAgICAgICAgIG5ld19tZW1fc3RhcnQsIG9sZF9tZW1f bGVuZ3RoKTsKLSAgIHMtPm1lbV9lbmQgPSBuZXdfbWVtX3N0YXJ0ICsgbmV3X21lbV9sZW5ndGg7 Ci0tICBzLT5ib3VuZCA9IC0obmV3X21lbV9sZW5ndGggLSBBTElHTk1FTlQpOwotKyAgcy0+Ym91 bmQgPSAtKGludCkobmV3X21lbV9sZW5ndGggLSBBTElHTk1FTlQpOwotIH0KLSAKLSBzdGF0aWMg c3RhY2tfcHRyIHN0YWNrX3B1c2hfYmxvY2soc3RydWN0IHN0YWNrKiBzLCBzdGFja19wdHIgcCwg c2l6ZV90IHN6KSB7CmRpZmYgLS1naXQgYS9wYWNrYWdlL2pxLzAwMDktcmVqZWN0LW51bWVyaWMt bGl0ZXJhbHMtbG9uZ2VyLXRoYW4tREVDLU1BWC1ESUdJVFMucGF0Y2ggYi9wYWNrYWdlL2pxLzAw MDktcmVqZWN0LW51bWVyaWMtbGl0ZXJhbHMtbG9uZ2VyLXRoYW4tREVDLU1BWC1ESUdJVFMucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxMDA0ZDQ3MDcuLjAwMDAwMDAwMDAK LS0tIGEvcGFja2FnZS9qcS8wMDA5LXJlamVjdC1udW1lcmljLWxpdGVyYWxzLWxvbmdlci10aGFu LURFQy1NQVgtRElHSVRTLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotRnJv bSA5NzYxY2ViN2Q2Y2M0OGMxNmIyNWYwYWIxYmFhZWYwZTcwMTkyN2U0IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogaXRjaHlueSA8aXRjaHlueUBjeWJvenUuY28uanA+Ci1EYXRlOiBX ZWQsIDYgTWF5IDIwMjYgMTk6NDU6MjQgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gUmVqZWN0IG51 bWVyaWMgbGl0ZXJhbHMgbG9uZ2VyIHRoYW4gREVDX01BWF9ESUdJVFMKLSAoOTk5OTk5OTk5KQot Ci1BIHNpZ25lZC1pbnQgb3ZlcmZsb3cgaW4gZGVjTnVtYmVyJ3MgRDJVIG1hY3JvIGxldHMgaHVn ZSBsaXRlcmFscwotd3JpdGUgYXR0YWNrZXItY29udHJvbGxlZCBieXRlcyBwYXN0IGEgc3RhY2sg YnVmZmVyLiBDYXAgdGhlIGxlbmd0aAotYmVmb3JlIGNhbGxpbmcgZGVjTnVtYmVyRnJvbVN0cmlu ZywgYW5kIHByZS1zbGljZSBsb25nIHN0cmluZ3MgaW4KLWp2X2R1bXBfc3RyaW5nX3RydW5jIHNv IHRoZSByZXN1bHRpbmcgZXJyb3IgbWVzc2FnZSBkb2Vzbid0IGl0c2VsZgotYWxsb2NhdGUgYSBt dWx0aS1HaUIgYnVmZmVyLgotCi1GaXhlcyBDVkUtMjAyNi00Mzg5NC4KLQotQ1ZFOiBDVkUtMjAy Ni00Mzg5NAotVXBzdHJlYW06IGh0dHBzOi8vZ2l0aHViLmNvbS9qcWxhbmcvanEvY29tbWl0Lzk3 NjFjZWI3ZDZjYzQ4YzE2YjI1ZjBhYjFiYWFlZjBlNzAxOTI3ZTQKLVNpZ25lZC1vZmYtYnk6IFRo b21hcyBQZXJhbGUgPHRob21hcy5wZXJhbGVAbWluZC5iZT4KLS0tLQotIHNyYy9qdi5jICAgICAg IHwgNSArKysrLQotIHNyYy9qdl9wcmludC5jIHwgNCArKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCA4 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9qdi5jIGIv c3JjL2p2LmMKLWluZGV4IDg0ZmFmZWY2NjYuLjA3NGVlMzEwYzUgMTAwNjQ0Ci0tLS0gYS9zcmMv anYuYwotKysrIGIvc3JjL2p2LmMKLUBAIC01NzgsNyArNTc4LDEwIEBAIHN0YXRpYyBqdnBfbGl0 ZXJhbF9udW1iZXIqIGp2cF9saXRlcmFsX251bWJlcl9hbGxvYyh1bnNpZ25lZCBsaXRlcmFsX2xl bmd0aCkgewotIH0KLSAKLSBzdGF0aWMganYganZwX2xpdGVyYWxfbnVtYmVyX25ldyhjb25zdCBj aGFyICogbGl0ZXJhbCkgewotLSAganZwX2xpdGVyYWxfbnVtYmVyKiBuID0ganZwX2xpdGVyYWxf bnVtYmVyX2FsbG9jKHN0cmxlbihsaXRlcmFsKSk7Ci0rICBzaXplX3QgbGVuID0gc3RybGVuKGxp dGVyYWwpOwotKyAgaWYgKGxlbiA+IERFQ19NQVhfRElHSVRTKQotKyAgICByZXR1cm4gSlZfSU5W QUxJRDsKLSsgIGp2cF9saXRlcmFsX251bWJlciogbiA9IGp2cF9saXRlcmFsX251bWJlcl9hbGxv YyhsZW4pOwotIAotICAgZGVjQ29udGV4dCAqY3R4ID0gREVDX0NPTlRFWFQoKTsKLSAgIGRlY0Nv bnRleHRDbGVhclN0YXR1cyhjdHgsIERFQ19Db252ZXJzaW9uX3N5bnRheCk7Ci1kaWZmIC0tZ2l0 IGEvc3JjL2p2X3ByaW50LmMgYi9zcmMvanZfcHJpbnQuYwotaW5kZXggNWM4NmM1ZDk3Yy4uYmMy NTEwNzBmNyAxMDA2NDQKLS0tLSBhL3NyYy9qdl9wcmludC5jCi0rKysgYi9zcmMvanZfcHJpbnQu YwotQEAgLTQwOCw2ICs0MDgsMTAgQEAganYganZfZHVtcF9zdHJpbmcoanYgeCwgaW50IGZsYWdz KSB7Ci0gfQotIAotIGNoYXIgKmp2X2R1bXBfc3RyaW5nX3RydW5jKGp2IHgsIGNoYXIgKm91dGJ1 Ziwgc2l6ZV90IGJ1ZnNpemUpIHsKLSsgIGlmIChqdl9nZXRfa2luZCh4KSA9PSBKVl9LSU5EX1NU UklORyAmJgotKyAgICAgIChzaXplX3QpanZfc3RyaW5nX2xlbmd0aF9ieXRlcyhqdl9jb3B5KHgp KSA+IGJ1ZnNpemUpIHsKLSsgICAgeCA9IGp2X3N0cmluZ19zbGljZSh4LCAwLCBidWZzaXplKTsK LSsgIH0KLSAgIHggPSBqdl9kdW1wX3N0cmluZyh4LCAwKTsKLSAgIGNvbnN0IGNoYXIgKnN0ciA9 IGp2X3N0cmluZ192YWx1ZSh4KTsKLSAgIGNvbnN0IHNpemVfdCBsZW4gPSBzdHJsZW4oc3RyKTsK ZGlmZiAtLWdpdCBhL3BhY2thZ2UvanEvMDAxMC1yZWplY3QtZW1iZWRkZWQtTlVMLWJ5dGVzLWlu LW1vZHVsZS1pbXBvcnQtcGF0aHMucGF0Y2ggYi9wYWNrYWdlL2pxLzAwMTAtcmVqZWN0LWVtYmVk ZGVkLU5VTC1ieXRlcy1pbi1tb2R1bGUtaW1wb3J0LXBhdGhzLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAxMTgyNGEyZDQ0Li4wMDAwMDAwMDAwCi0tLSBhL3BhY2thZ2UvanEv MDAxMC1yZWplY3QtZW1iZWRkZWQtTlVMLWJ5dGVzLWluLW1vZHVsZS1pbXBvcnQtcGF0aHMucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNTEyICswLDAgQEAKLUZyb20gOWQyMjNmMTUzYzM2MzJh MjA3ZmEwNzFjYWFhNjI5MmRhMzNhZTM2MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IGl0Y2h5bnkgPGl0Y2h5bnlAY3lib3p1LmNvLmpwPgotRGF0ZTogU2F0LCA5IE1heSAyMDI2IDE3 OjA4OjQzICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIFJlamVjdCBlbWJlZGRlZCBOVUwgYnl0ZXMg aW4gbW9kdWxlIGltcG9ydCBwYXRocwotCi1qcSBhY2NlcHRzIGVtYmVkZGVkIE5VTCBieXRlcyBh dCB0aGUgbGFuZ3VhZ2UgbGV2ZWwgYnV0IHJlc29sdmVzCi1tb2R1bGUgaW1wb3J0IHBhdGhzIHRo cm91Z2ggTlVMLXRlcm1pbmF0ZWQgQyBzdHJpbmdzLCBzbyB0aGUgcGF0aAotdmFsaWRhdGVkIGJ5 IHBvbGljeSBvciBhdWRpdCBjb2RlIGNvdWxkIGRpZmZlciBmcm9tIHRoZSBvbi1kaXNrCi1wYXRo IGpxIGFjdHVhbGx5IG9wZW5zLiBQYXNzIGp2IHRocm91Z2ggZ2VuX2ltcG9ydCBzbyB0aGUgQVNU Ci1wcmVzZXJ2ZXMgdGhlIG9yaWdpbmFsIGJ5dGVzLCBhbmQgcmVqZWN0IGVtYmVkZGVkIE5VTHMg aW4KLXZhbGlkYXRlX3JlbHBhdGguCi0KLUZpeGVzIENWRS0yMDI2LTQzODk1LgotCi1DVkU6IENW RS0yMDI2LTQzODk1Ci1VcHN0cmVhbTogaHR0cHM6Ly9naXRodWIuY29tL2pxbGFuZy9qcS9jb21t aXQvOWQyMjNmMTUzYzM2MzJhMjA3ZmEwNzFjYWFhNjI5MmRhMzNhZTM2MQotU2lnbmVkLW9mZi1i eTogVGhvbWFzIFBlcmFsZSA8dGhvbWFzLnBlcmFsZUBtaW5kLmJlPgotLS0tCi0gc3JjL2NvbXBp bGUuYyB8ICAxMiArLQotIHNyYy9jb21waWxlLmggfCAgIDIgKy0KLSBzcmMvbGlua2VyLmMgIHwg ICA2ICstCi0gc3JjL3BhcnNlci5jICB8IDU1NiArKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHNyYy9wYXJzZXIueSAgfCAgMTYgKy0KLSB0ZXN0cy9z aHRlc3QgIHwgIDE3ICsrCi0gNiBmaWxlcyBjaGFuZ2VkLCAzMDcgaW5zZXJ0aW9ucygrKSwgMzAy IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2NvbXBpbGUuYyBiL3NyYy9jb21waWxl LmMKLWluZGV4IDVlNjQ5NDZiM2UuLjgwYjcyM2MxMTkgMTAwNjQ0Ci0tLS0gYS9zcmMvY29tcGls ZS5jCi0rKysgYi9zcmMvY29tcGlsZS5jCi1AQCAtNTI1LDEzICs1MjUsMTcgQEAganYgYmxvY2tf bW9kdWxlX21ldGEoYmxvY2sgYikgewotICAgcmV0dXJuIGp2X251bGwoKTsKLSB9Ci0gCi0tYmxv Y2sgZ2VuX2ltcG9ydChjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBhcywgaW50IGlzX2Rh dGEpIHsKLStibG9jayBnZW5faW1wb3J0KGp2IG5hbWUsIGp2IGFzLCBpbnQgaXNfZGF0YSkgewot KyAgYXNzZXJ0KGp2X2dldF9raW5kKG5hbWUpID09IEpWX0tJTkRfU1RSSU5HKTsKLSsgIGFzc2Vy dCghanZfaXNfdmFsaWQoYXMpIHx8IGp2X2dldF9raW5kKGFzKSA9PSBKVl9LSU5EX1NUUklORyk7 Ci0gICBpbnN0KiBpID0gaW5zdF9uZXcoREVQUyk7Ci0gICBqdiBtZXRhID0ganZfb2JqZWN0KCk7 Ci0tICBpZiAoYXMgIT0gTlVMTCkKLS0gICAgbWV0YSA9IGp2X29iamVjdF9zZXQobWV0YSwganZf c3RyaW5nKCJhcyIpLCBqdl9zdHJpbmcoYXMpKTsKLSsgIGlmIChqdl9pc192YWxpZChhcykpCi0r ICAgIG1ldGEgPSBqdl9vYmplY3Rfc2V0KG1ldGEsIGp2X3N0cmluZygiYXMiKSwgYXMpOwotKyAg ZWxzZQotKyAgICBqdl9mcmVlKGFzKTsKLSAgIG1ldGEgPSBqdl9vYmplY3Rfc2V0KG1ldGEsIGp2 X3N0cmluZygiaXNfZGF0YSIpLCBpc19kYXRhID8ganZfdHJ1ZSgpIDoganZfZmFsc2UoKSk7Ci0t ICBtZXRhID0ganZfb2JqZWN0X3NldChtZXRhLCBqdl9zdHJpbmcoInJlbHBhdGgiKSwganZfc3Ry aW5nKG5hbWUpKTsKLSsgIG1ldGEgPSBqdl9vYmplY3Rfc2V0KG1ldGEsIGp2X3N0cmluZygicmVs cGF0aCIpLCBuYW1lKTsKLSAgIGktPmltbS5jb25zdGFudCA9IG1ldGE7Ci0gICByZXR1cm4gaW5z dF9ibG9jayhpKTsKLSB9Ci1kaWZmIC0tZ2l0IGEvc3JjL2NvbXBpbGUuaCBiL3NyYy9jb21waWxl LmgKLWluZGV4IGJlZjQ2MzI4YTcuLmQxOTVlOWUyZTggMTAwNjQ0Ci0tLS0gYS9zcmMvY29tcGls ZS5oCi0rKysgYi9zcmMvY29tcGlsZS5oCi1AQCAtMzMsNyArMzMsNyBAQCBibG9jayBnZW5fb3Bf cHVzaGtfdW5kZXIoanYgY29uc3RhbnQpOwotIAotIGJsb2NrIGdlbl9tb2R1bGUoYmxvY2sgbWV0 YWRhdGEpOwotIGp2IGJsb2NrX21vZHVsZV9tZXRhKGJsb2NrIGIpOwotLWJsb2NrIGdlbl9pbXBv cnQoY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciAqYXMsIGludCBpc19kYXRhKTsKLStibG9j ayBnZW5faW1wb3J0KGp2IG5hbWUsIGp2IGFzLCBpbnQgaXNfZGF0YSk7Ci0gYmxvY2sgZ2VuX2lt cG9ydF9tZXRhKGJsb2NrIGltcG9ydCwgYmxvY2sgbWV0YWRhdGEpOwotIGJsb2NrIGdlbl9mdW5j dGlvbihjb25zdCBjaGFyKiBuYW1lLCBibG9jayBmb3JtYWxzLCBibG9jayBib2R5KTsKLSBibG9j ayBnZW5fcGFyYW1fcmVndWxhcihjb25zdCBjaGFyKiBuYW1lKTsKLWRpZmYgLS1naXQgYS9zcmMv bGlua2VyLmMgYi9zcmMvbGlua2VyLmMKLWluZGV4IGNmZDc0ZDFkNDguLmU5MDI3MDA0Y2MgMTAw NjQ0Ci0tLS0gYS9zcmMvbGlua2VyLmMKLSsrKyBiL3NyYy9saW5rZXIuYwotQEAgLTkzLDYgKzkz LDEwIEBAIHN0YXRpYyBqdiBidWlsZF9saWJfc2VhcmNoX2NoYWluKGpxX3N0YXRlICpqcSwganYg c2VhcmNoX3BhdGgsIGp2IGpxX29yaWdpbiwganYKLSAvLyBpbiBiZXR3ZWVuKS4KLSBzdGF0aWMg anYgdmFsaWRhdGVfcmVscGF0aChqdiBuYW1lKSB7Ci0gICBjb25zdCBjaGFyICpzID0ganZfc3Ry aW5nX3ZhbHVlKG5hbWUpOwotKyAgaWYgKHN0cmxlbihzKSAhPSAoc2l6ZV90KWp2X3N0cmluZ19s ZW5ndGhfYnl0ZXMoanZfY29weShuYW1lKSkpIHsKLSsgICAganZfZnJlZShuYW1lKTsKLSsgICAg cmV0dXJuIGp2X2ludmFsaWRfd2l0aF9tc2coanZfc3RyaW5nKCJNb2R1bGUgcGF0aCBjb250YWlu cyBhIE5VTCBieXRlIikpOwotKyAgfQotICAgaWYgKHN0cmNocihzLCAnXFwnKSkgewotICAgICBq diByZXMgPSBqdl9pbnZhbGlkX3dpdGhfbXNnKGp2X3N0cmluZ19mbXQoIk1vZHVsZXMgbXVzdCBi ZSBuYW1lZCBieSByZWxhdGl2ZSBwYXRocyB1c2luZyAnLycsIG5vdCAnXFwnICglcykiLCBzKSk7 Ci0gICAgIGp2X2ZyZWUobmFtZSk7Ci1AQCAtNDIzLDcgKzQyNyw3IEBAIGludCBsb2FkX3Byb2dy YW0oanFfc3RhdGUgKmpxLCBzdHJ1Y3QgbG9jZmlsZSogc3JjLCBibG9jayAqb3V0X2Jsb2NrKSB7 Ci0gICBqdiBob21lID0gZ2V0X2hvbWUoKTsKLSAgIGlmIChqdl9pc192YWxpZChob21lKSkgewot ICAgICAvKiBJbXBvcnQgfi8uanEgYXMgYSBsaWJyYXJ5IG5hbWVkICIiIGZvdW5kIGluICRIT01F IG9yICVVU0VSUFJPRklMRSUgKi8KLS0gICAgYmxvY2sgaW1wb3J0ID0gZ2VuX2ltcG9ydF9tZXRh KGdlbl9pbXBvcnQoIiIsIE5VTEwsIDApLAotKyAgICBibG9jayBpbXBvcnQgPSBnZW5faW1wb3J0 X21ldGEoZ2VuX2ltcG9ydChqdl9zdHJpbmcoIiIpLCBqdl9pbnZhbGlkKCksIDApLAotICAgICAg ICAgZ2VuX2NvbnN0KEpWX09CSkVDVCgKLSAgICAgICAgICAgICBqdl9zdHJpbmcoIm9wdGlvbmFs IiksIGp2X3RydWUoKSwKLSAgICAgICAgICAgICBqdl9zdHJpbmcoInNlYXJjaCIpLCBob21lKSkp OwotZGlmZiAtLWdpdCBhL3NyYy9wYXJzZXIuYyBiL3NyYy9wYXJzZXIuYwotaW5kZXggYzkwZTMx MzQyMC4uOWM2MDE3M2UyNyAxMDA2NDQKLS0tLSBhL3NyYy9wYXJzZXIuYwotKysrIGIvc3JjL3Bh cnNlci5jCi1AQCAtOTM3LDE5ICs5MzcsMTkgQEAgc3RhdGljIGNvbnN0IHl5dHlwZV9pbnQxNiB5 eXJsaW5lW10gPQotICAgICAgMzI1LCAgIDMyOCwgICAzMzEsICAgMzM3LCAgIDM0MCwgICAzNDMs ICAgMzQ5LCAgIDM1MiwgICAzNTUsICAgMzU4LAotICAgICAgMzYxLCAgIDM2NCwgICAzNjcsICAg MzcwLCAgIDM3MywgICAzNzYsICAgMzc5LCAgIDM4MiwgICAzODUsICAgMzg4LAotICAgICAgMzkx LCAgIDM5NCwgICAzOTcsICAgNDAwLCAgIDQwMywgICA0MDYsICAgNDA5LCAgIDQxMiwgICA0MTUs ICAgNDIxLAotLSAgICAgNDI0LCAgIDQ0MSwgICA0NTAsICAgNDU3LCAgIDQ2NSwgICA0NzYsICAg NDgxLCAgIDQ4NywgICA0OTAsICAgNDk1LAotLSAgICAgNDk5LCAgIDUwNiwgICA1MDksICAgNTE1 LCAgIDUyMiwgICA1MjUsICAgNTI4LCAgIDUzNCwgICA1MzcsICAgNTQwLAotLSAgICAgNTQ2LCAg IDU0OSwgICA1NTIsICAgNTYwLCAgIDU2NCwgICA1NjcsICAgNTcwLCAgIDU3MywgICA1NzYsICAg NTc5LAotLSAgICAgNTgyLCAgIDU4NSwgICA1ODgsICAgNTkyLCAgIDU5OCwgICA2MDEsICAgNjA0 LCAgIDYwNywgICA2MTAsICAgNjEzLAotLSAgICAgNjE2LCAgIDYxOSwgICA2MjIsICAgNjI1LCAg IDYyOCwgICA2MzEsICAgNjM0LCAgIDYzNywgICA2NDAsICAgNjQzLAotLSAgICAgNjQ2LCAgIDY0 OSwgICA2NTIsICAgNjU1LCAgIDY1OCwgICA2NjEsICAgNjY0LCAgIDY3MSwgICA2NzQsICAgNjc3 LAotLSAgICAgNjgwLCAgIDY4MywgICA2ODcsICAgNjkwLCAgIDY5NCwgICA3MTIsICAgNzE2LCAg IDcyMCwgICA3MjMsICAgNzM1LAotLSAgICAgNzQwLCAgIDc0MSwgICA3NDIsICAgNzQzLCAgIDc0 NiwgICA3NDksICAgNzU0LCAgIDc1OSwgICA3NjIsICAgNzY3LAotLSAgICAgNzcwLCAgIDc3NSwg ICA3NzksICAgNzgyLCAgIDc4NywgICA3OTAsICAgNzk1LCAgIDc5OCwgICA4MDMsICAgODA2LAot LSAgICAgODA5LCAgIDgxMiwgICA4MTUsICAgODE4LCAgIDgyNiwgICA4MzIsICAgODM1LCAgIDgz OCwgICA4NDEsICAgODQ0LAotLSAgICAgODQ3LCAgIDg1MCwgICA4NTMsICAgODU2LCAgIDg1OSwg ICA4NjIsICAgODY1LCAgIDg2OCwgICA4NzEsICAgODc0LAotLSAgICAgODc3LCAgIDg4MCwgICA4 ODMsICAgODg5LCAgIDg5MiwgICA4OTUsICAgOTAwLCAgIDkwMywgICA5MDYsICAgOTA5LAotLSAg ICAgOTEzLCAgIDkxOCwgICA5MjIsICAgOTI2LCAgIDkzMCwgICA5MzQsICAgOTQyLCAgIDk0OCwg ICA5NTEKLSsgICAgIDQyNCwgICA0NDEsICAgNDQ1LCAgIDQ0OSwgICA0NTUsICAgNDY2LCAgIDQ3 MSwgICA0NzcsICAgNDgwLCAgIDQ4NSwKLSsgICAgIDQ4OSwgICA0OTYsICAgNDk5LCAgIDUwNSwg ICA1MTIsICAgNTE1LCAgIDUxOCwgICA1MjQsICAgNTI3LCAgIDUzMCwKLSsgICAgIDUzNiwgICA1 MzksICAgNTQyLCAgIDU1MCwgICA1NTQsICAgNTU3LCAgIDU2MCwgICA1NjMsICAgNTY2LCAgIDU2 OSwKLSsgICAgIDU3MiwgICA1NzUsICAgNTc4LCAgIDU4MiwgICA1ODgsICAgNTkxLCAgIDU5NCwg ICA1OTcsICAgNjAwLCAgIDYwMywKLSsgICAgIDYwNiwgICA2MDksICAgNjEyLCAgIDYxNSwgICA2 MTgsICAgNjIxLCAgIDYyNCwgICA2MjcsICAgNjMwLCAgIDYzMywKLSsgICAgIDYzNiwgICA2Mzks ICAgNjQyLCAgIDY0NSwgICA2NDgsICAgNjUxLCAgIDY1NCwgICA2NjEsICAgNjY0LCAgIDY2NywK LSsgICAgIDY3MCwgICA2NzMsICAgNjc3LCAgIDY4MCwgICA2ODQsICAgNzAyLCAgIDcwNiwgICA3 MTAsICAgNzEzLCAgIDcyNSwKLSsgICAgIDczMCwgICA3MzEsICAgNzMyLCAgIDczMywgICA3MzYs ICAgNzM5LCAgIDc0NCwgICA3NDksICAgNzUyLCAgIDc1NywKLSsgICAgIDc2MCwgICA3NjUsICAg NzY5LCAgIDc3MiwgICA3NzcsICAgNzgwLCAgIDc4NSwgICA3ODgsICAgNzkzLCAgIDc5NiwKLSsg ICAgIDc5OSwgICA4MDIsICAgODA1LCAgIDgwOCwgICA4MTYsICAgODIyLCAgIDgyNSwgICA4Mjgs ICAgODMxLCAgIDgzNCwKLSsgICAgIDgzNywgICA4NDAsICAgODQzLCAgIDg0NiwgICA4NDksICAg ODUyLCAgIDg1NSwgICA4NTgsICAgODYxLCAgIDg2NCwKLSsgICAgIDg2NywgICA4NzAsICAgODcz LCAgIDg3OSwgICA4ODIsICAgODg1LCAgIDg5MCwgICA4OTMsICAgODk2LCAgIDg5OSwKLSsgICAg IDkwMywgICA5MDgsICAgOTEyLCAgIDkxNiwgICA5MjAsICAgOTI0LCAgIDkzMiwgICA5MzgsICAg OTQxCi0gfTsKLSAjZW5kaWYKLSAKLUBAIC0yODQxLDQyICsyODQxLDMyIEBAIFlZTFRZUEUgeXls bG9jID0geXlsb2NfZGVmYXVsdDsKLSAgIGNhc2UgNDE6IC8qIEltcG9ydFdoYXQ6ICJpbXBvcnQi IEltcG9ydEZyb20gImFzIiBCSU5ESU5HICAqLwotICNsaW5lIDQ0MSAic3JjL3BhcnNlci55Igot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gIGp2IHYgPSBibG9ja19jb25z dCgoeXl2c3BbLTJdLmJsaykpOwotLSAgLy8gWFhYIE1ha2UgZ2VuX2ltcG9ydCB0YWtlIG9ubHkg YmxvY2tzIGFuZCB0aGUgaW50IGlzX2RhdGEgc28gd2UKLS0gIC8vIGRvbid0IGhhdmUgdG8gZnJl ZSBzbyBtdWNoIHN0dWZmIGhlcmUKLS0gICh5eXZhbC5ibGspID0gZ2VuX2ltcG9ydChqdl9zdHJp bmdfdmFsdWUodiksIGp2X3N0cmluZ192YWx1ZSgoeXl2c3BbMF0ubGl0ZXJhbCkpLCAxKTsKLSsg ICh5eXZhbC5ibGspID0gZ2VuX2ltcG9ydChibG9ja19jb25zdCgoeXl2c3BbLTJdLmJsaykpLCAo eXl2c3BbMF0ubGl0ZXJhbCksIDEpOwotICAgYmxvY2tfZnJlZSgoeXl2c3BbLTJdLmJsaykpOwot LSAganZfZnJlZSgoeXl2c3BbMF0ubGl0ZXJhbCkpOwotLSAganZfZnJlZSh2KTsKLSB9Ci0tI2xp bmUgMjg1MyAic3JjL3BhcnNlci5jIgotKyNsaW5lIDI4NDggInNyYy9wYXJzZXIuYyIKLSAgICAg YnJlYWs7Ci0gCi0gICBjYXNlIDQyOiAvKiBJbXBvcnRXaGF0OiAiaW1wb3J0IiBJbXBvcnRGcm9t ICJhcyIgSURFTlQgICovCi0tI2xpbmUgNDUwICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNDQ1ICJz cmMvcGFyc2VyLnkiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gIGp2IHYg PSBibG9ja19jb25zdCgoeXl2c3BbLTJdLmJsaykpOwotLSAgKHl5dmFsLmJsaykgPSBnZW5faW1w b3J0KGp2X3N0cmluZ192YWx1ZSh2KSwganZfc3RyaW5nX3ZhbHVlKCh5eXZzcFswXS5saXRlcmFs KSksIDApOwotKyAgKHl5dmFsLmJsaykgPSBnZW5faW1wb3J0KGJsb2NrX2NvbnN0KCh5eXZzcFst Ml0uYmxrKSksICh5eXZzcFswXS5saXRlcmFsKSwgMCk7Ci0gICBibG9ja19mcmVlKCh5eXZzcFst Ml0uYmxrKSk7Ci0tICBqdl9mcmVlKCh5eXZzcFswXS5saXRlcmFsKSk7Ci0tICBqdl9mcmVlKHYp OwotIH0KLS0jbGluZSAyODY1ICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMjg1NyAic3JjL3BhcnNl ci5jIgotICAgICBicmVhazsKLSAKLSAgIGNhc2UgNDM6IC8qIEltcG9ydFdoYXQ6ICJpbmNsdWRl IiBJbXBvcnRGcm9tICAqLwotLSNsaW5lIDQ1NyAic3JjL3BhcnNlci55IgotKyNsaW5lIDQ0OSAi c3JjL3BhcnNlci55IgotICAgICAgICAgICAgICAgICAgICAgIHsKLS0gIGp2IHYgPSBibG9ja19j b25zdCgoeXl2c3BbMF0uYmxrKSk7Ci0tICAoeXl2YWwuYmxrKSA9IGdlbl9pbXBvcnQoanZfc3Ry aW5nX3ZhbHVlKHYpLCBOVUxMLCAwKTsKLSsgICh5eXZhbC5ibGspID0gZ2VuX2ltcG9ydChibG9j a19jb25zdCgoeXl2c3BbMF0uYmxrKSksIGp2X2ludmFsaWQoKSwgMCk7Ci0gICBibG9ja19mcmVl KCh5eXZzcFswXS5ibGspKTsKLS0gIGp2X2ZyZWUodik7Ci0gfQotLSNsaW5lIDI4NzYgInNyYy9w YXJzZXIuYyIKLSsjbGluZSAyODY2ICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAg Y2FzZSA0NDogLyogSW1wb3J0RnJvbTogU3RyaW5nICAqLwotLSNsaW5lIDQ2NSAic3JjL3BhcnNl ci55IgotKyNsaW5lIDQ1NSAic3JjL3BhcnNlci55IgotICAgICAgICB7Ci0gICBpZiAoIWJsb2Nr X2lzX2NvbnN0KCh5eXZzcFswXS5ibGspKSkgewotICAgICBGQUlMKCh5eWxzcFswXSksICJJbXBv cnQgcGF0aCBtdXN0IGJlIGNvbnN0YW50Iik7Ci1AQCAtMjg4NiwxNTIgKzI4NzYsMTUyIEBAIFlZ TFRZUEUgeXlsbG9jID0geXlsb2NfZGVmYXVsdDsKLSAgICAgKHl5dmFsLmJsaykgPSAoeXl2c3Bb MF0uYmxrKTsKLSAgIH0KLSB9Ci0tI2xpbmUgMjg5MCAic3JjL3BhcnNlci5jIgotKyNsaW5lIDI4 ODAgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDQ1OiAvKiBGdW5jRGVm OiAiZGVmIiBJREVOVCAnOicgUXVlcnkgJzsnICAqLwotLSNsaW5lIDQ3NiAic3JjL3BhcnNlci55 IgotKyNsaW5lIDQ2NiAic3JjL3BhcnNlci55IgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ewotICAgKHl5dmFsLmJsaykgPSBnZW5fZnVuY3Rpb24oanZfc3RyaW5nX3ZhbHVlKCh5eXZzcFst M10ubGl0ZXJhbCkpLCBnZW5fbm9vcCgpLCAoeXl2c3BbLTFdLmJsaykpOwotICAganZfZnJlZSgo eXl2c3BbLTNdLmxpdGVyYWwpKTsKLSB9Ci0tI2xpbmUgMjg5OSAic3JjL3BhcnNlci5jIgotKyNs aW5lIDI4ODkgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDQ2OiAvKiBG dW5jRGVmOiAiZGVmIiBJREVOVCAnKCcgUGFyYW1zICcpJyAnOicgUXVlcnkgJzsnICAqLwotLSNs aW5lIDQ4MSAic3JjL3BhcnNlci55IgotKyNsaW5lIDQ3MSAic3JjL3BhcnNlci55IgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewotICAgKHl5dmFsLmJsaykgPSBn ZW5fZnVuY3Rpb24oanZfc3RyaW5nX3ZhbHVlKCh5eXZzcFstNl0ubGl0ZXJhbCkpLCAoeXl2c3Bb LTRdLmJsayksICh5eXZzcFstMV0uYmxrKSk7Ci0gICBqdl9mcmVlKCh5eXZzcFstNl0ubGl0ZXJh bCkpOwotIH0KLS0jbGluZSAyOTA4ICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMjg5OCAic3JjL3Bh cnNlci5jIgotICAgICBicmVhazsKLSAKLSAgIGNhc2UgNDc6IC8qIFBhcmFtczogUGFyYW0gICov Ci0tI2xpbmUgNDg3ICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNDc3ICJzcmMvcGFyc2VyLnkiCi0g ICAgICAgewotICAgKHl5dmFsLmJsaykgPSAoeXl2c3BbMF0uYmxrKTsKLSB9Ci0tI2xpbmUgMjkx NiAic3JjL3BhcnNlci5jIgotKyNsaW5lIDI5MDYgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7 Ci0gCi0gICBjYXNlIDQ4OiAvKiBQYXJhbXM6IFBhcmFtcyAnOycgUGFyYW0gICovCi0tI2xpbmUg NDkwICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNDgwICJzcmMvcGFyc2VyLnkiCi0gICAgICAgICAg ICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IEJMT0NLKCh5eXZzcFstMl0uYmxrKSwgKHl5dnNw WzBdLmJsaykpOwotIH0KLS0jbGluZSAyOTI0ICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMjkxNCAi c3JjL3BhcnNlci5jIgotICAgICBicmVhazsKLSAKLSAgIGNhc2UgNDk6IC8qIFBhcmFtOiBCSU5E SU5HICAqLwotLSNsaW5lIDQ5NSAic3JjL3BhcnNlci55IgotKyNsaW5lIDQ4NSAic3JjL3BhcnNl ci55IgotICAgICAgICAgewotICAgKHl5dmFsLmJsaykgPSBnZW5fcGFyYW1fcmVndWxhcihqdl9z dHJpbmdfdmFsdWUoKHl5dnNwWzBdLmxpdGVyYWwpKSk7Ci0gICBqdl9mcmVlKCh5eXZzcFswXS5s aXRlcmFsKSk7Ci0gfQotLSNsaW5lIDI5MzMgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAyOTIzICJz cmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSA1MDogLyogUGFyYW06IElERU5U ICAqLwotLSNsaW5lIDQ5OSAic3JjL3BhcnNlci55IgotKyNsaW5lIDQ4OSAic3JjL3BhcnNlci55 IgotICAgICAgIHsKLSAgICh5eXZhbC5ibGspID0gZ2VuX3BhcmFtKGp2X3N0cmluZ192YWx1ZSgo eXl2c3BbMF0ubGl0ZXJhbCkpKTsKLSAgIGp2X2ZyZWUoKHl5dnNwWzBdLmxpdGVyYWwpKTsKLSB9 Ci0tI2xpbmUgMjk0MiAic3JjL3BhcnNlci5jIgotKyNsaW5lIDI5MzIgInNyYy9wYXJzZXIuYyIK LSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDUxOiAvKiBTdHJpbmdTdGFydDogRk9STUFUIFFRU1RS SU5HX1NUQVJUICAqLwotLSNsaW5lIDUwNiAic3JjL3BhcnNlci55IgotKyNsaW5lIDQ5NiAic3Jj L3BhcnNlci55IgotICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAoeXl2YWwubGl0ZXJhbCkg PSAoeXl2c3BbLTFdLmxpdGVyYWwpOwotIH0KLS0jbGluZSAyOTUwICJzcmMvcGFyc2VyLmMiCi0r I2xpbmUgMjk0MCAic3JjL3BhcnNlci5jIgotICAgICBicmVhazsKLSAKLSAgIGNhc2UgNTI6IC8q IFN0cmluZ1N0YXJ0OiBRUVNUUklOR19TVEFSVCAgKi8KLS0jbGluZSA1MDkgInNyYy9wYXJzZXIu eSIKLSsjbGluZSA0OTkgInNyYy9wYXJzZXIueSIKLSAgICAgICAgICAgICAgICB7Ci0gICAoeXl2 YWwubGl0ZXJhbCkgPSBqdl9zdHJpbmcoInRleHQiKTsKLSB9Ci0tI2xpbmUgMjk1OCAic3JjL3Bh cnNlci5jIgotKyNsaW5lIDI5NDggInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBj YXNlIDUzOiAvKiBTdHJpbmc6IFN0cmluZ1N0YXJ0IFFRU3RyaW5nIFFRU1RSSU5HX0VORCAgKi8K LS0jbGluZSA1MTUgInNyYy9wYXJzZXIueSIKLSsjbGluZSA1MDUgInNyYy9wYXJzZXIueSIKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewotICAgKHl5dmFsLmJsaykgPSAoeXl2 c3BbLTFdLmJsayk7Ci0gICBqdl9mcmVlKCh5eXZzcFstMl0ubGl0ZXJhbCkpOwotIH0KLS0jbGlu ZSAyOTY3ICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMjk1NyAic3JjL3BhcnNlci5jIgotICAgICBi cmVhazsKLSAKLSAgIGNhc2UgNTQ6IC8qIFFRU3RyaW5nOiAlZW1wdHkgICovCi0tI2xpbmUgNTIy ICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNTEyICJzcmMvcGFyc2VyLnkiCi0gICAgICAgIHsKLSAg ICh5eXZhbC5ibGspID0gZ2VuX2NvbnN0KGp2X3N0cmluZygiIikpOwotIH0KLS0jbGluZSAyOTc1 ICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMjk2NSAic3JjL3BhcnNlci5jIgotICAgICBicmVhazsK LSAKLSAgIGNhc2UgNTU6IC8qIFFRU3RyaW5nOiBRUVN0cmluZyBRUVNUUklOR19URVhUICAqLwot LSNsaW5lIDUyNSAic3JjL3BhcnNlci55IgotKyNsaW5lIDUxNSAic3JjL3BhcnNlci55IgotICAg ICAgICAgICAgICAgICAgICAgICAgewotICAgKHl5dmFsLmJsaykgPSBnZW5fYmlub3AoKHl5dnNw Wy0xXS5ibGspLCBnZW5fY29uc3QoKHl5dnNwWzBdLmxpdGVyYWwpKSwgJysnKTsKLSB9Ci0tI2xp bmUgMjk4MyAic3JjL3BhcnNlci5jIgotKyNsaW5lIDI5NzMgInNyYy9wYXJzZXIuYyIKLSAgICAg YnJlYWs7Ci0gCi0gICBjYXNlIDU2OiAvKiBRUVN0cmluZzogUVFTdHJpbmcgUVFTVFJJTkdfSU5U RVJQX1NUQVJUIFF1ZXJ5IFFRU1RSSU5HX0lOVEVSUF9FTkQgICovCi0tI2xpbmUgNTI4ICJzcmMv cGFyc2VyLnkiCi0rI2xpbmUgNTE4ICJzcmMvcGFyc2VyLnkiCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewotICAgKHl5dmFsLmJsaykg PSBnZW5fYmlub3AoKHl5dnNwWy0zXS5ibGspLCBnZW5fZm9ybWF0KCh5eXZzcFstMV0uYmxrKSwg anZfY29weSgoeXl2c3BbLTRdLmxpdGVyYWwpKSksICcrJyk7Ci0gfQotLSNsaW5lIDI5OTEgInNy Yy9wYXJzZXIuYyIKLSsjbGluZSAyOTgxICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAot ICAgY2FzZSA1NzogLyogRWxzZUJvZHk6ICJlbGlmIiBRdWVyeSAidGhlbiIgUXVlcnkgRWxzZUJv ZHkgICovCi0tI2xpbmUgNTM0ICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNTI0ICJzcmMvcGFyc2Vy LnkiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAoeXl2YWwuYmxr KSA9IGdlbl9jb25kKCh5eXZzcFstM10uYmxrKSwgKHl5dnNwWy0xXS5ibGspLCAoeXl2c3BbMF0u YmxrKSk7Ci0gfQotLSNsaW5lIDI5OTkgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAyOTg5ICJzcmMv cGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSA1ODogLyogRWxzZUJvZHk6ICJlbHNl IiBRdWVyeSAiZW5kIiAgKi8KLS0jbGluZSA1MzcgInNyYy9wYXJzZXIueSIKLSsjbGluZSA1Mjcg InNyYy9wYXJzZXIueSIKLSAgICAgICAgICAgICAgICAgICAgewotICAgKHl5dmFsLmJsaykgPSAo eXl2c3BbLTFdLmJsayk7Ci0gfQotLSNsaW5lIDMwMDcgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAy OTk3ICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSA1OTogLyogRWxzZUJv ZHk6ICJlbmQiICAqLwotLSNsaW5lIDU0MCAic3JjL3BhcnNlci55IgotKyNsaW5lIDUzMCAic3Jj L3BhcnNlci55IgotICAgICAgIHsKLSAgICh5eXZhbC5ibGspID0gZ2VuX25vb3AoKTsKLSB9Ci0t I2xpbmUgMzAxNSAic3JjL3BhcnNlci5jIgotKyNsaW5lIDMwMDUgInNyYy9wYXJzZXIuYyIKLSAg ICAgYnJlYWs7Ci0gCi0gICBjYXNlIDYwOiAvKiBUZXJtOiAnLicgICovCi0tI2xpbmUgNTQ2ICJz cmMvcGFyc2VyLnkiCi0rI2xpbmUgNTM2ICJzcmMvcGFyc2VyLnkiCi0gICAgIHsKLSAgICh5eXZh bC5ibGspID0gZ2VuX25vb3AoKTsKLSB9Ci0tI2xpbmUgMzAyMyAic3JjL3BhcnNlci5jIgotKyNs aW5lIDMwMTMgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDYxOiAvKiBU ZXJtOiAiLi4iICAqLwotLSNsaW5lIDU0OSAic3JjL3BhcnNlci55IgotKyNsaW5lIDUzOSAic3Jj L3BhcnNlci55IgotICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl9jYWxsKCJyZWN1cnNlIiwg Z2VuX25vb3AoKSk7Ci0gfQotLSNsaW5lIDMwMzEgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzMDIx ICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSA2MjogLyogVGVybTogImJy ZWFrIiBCSU5ESU5HICAqLwotLSNsaW5lIDU1MiAic3JjL3BhcnNlci55IgotKyNsaW5lIDU0MiAi c3JjL3BhcnNlci55IgotICAgICAgICAgICAgICAgewotICAganYgdiA9IGp2X3N0cmluZ19mbXQo IipsYWJlbC0lcyIsIGp2X3N0cmluZ192YWx1ZSgoeXl2c3BbMF0ubGl0ZXJhbCkpKTsgICAgIC8v IGltcG9zc2libGUgc3ltYm9sCi0gICAoeXl2YWwuYmxrKSA9IGdlbl9sb2NhdGlvbigoeXlsb2Mp LCBsb2NhdGlvbnMsCi1AQCAtMzA0MCwyNzkgKzMwMzAsMjc5IEBAIFlZTFRZUEUgeXlsbG9jID0g eXlsb2NfZGVmYXVsdDsKLSAgIGp2X2ZyZWUodik7Ci0gICBqdl9mcmVlKCh5eXZzcFswXS5saXRl cmFsKSk7Ci0gfQotLSNsaW5lIDMwNDQgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzMDM0ICJzcmMv cGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSA2MzogLyogVGVybTogImJyZWFrIiBl cnJvciAgKi8KLS0jbGluZSA1NjAgInNyYy9wYXJzZXIueSIKLSsjbGluZSA1NTAgInNyYy9wYXJz ZXIueSIKLSAgICAgICAgICAgICB7Ci0gICBGQUlMKCh5eWxvYyksICJicmVhayByZXF1aXJlcyBh IGxhYmVsIHRvIGJyZWFrIHRvIik7Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl9ub29wKCk7Ci0gfQot LSNsaW5lIDMwNTMgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzMDQzICJzcmMvcGFyc2VyLmMiCi0g ICAgIGJyZWFrOwotIAotICAgY2FzZSA2NDogLyogVGVybTogVGVybSBGSUVMRCAnPycgICovCi0t I2xpbmUgNTY0ICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNTU0ICJzcmMvcGFyc2VyLnkiCi0gICAg ICAgICAgICAgICAgewotICAgKHl5dmFsLmJsaykgPSBnZW5faW5kZXhfb3B0KCh5eXZzcFstMl0u YmxrKSwgZ2VuX2NvbnN0KCh5eXZzcFstMV0ubGl0ZXJhbCkpKTsKLSB9Ci0tI2xpbmUgMzA2MSAi c3JjL3BhcnNlci5jIgotKyNsaW5lIDMwNTEgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0g Ci0gICBjYXNlIDY1OiAvKiBUZXJtOiBGSUVMRCAnPycgICovCi0tI2xpbmUgNTY3ICJzcmMvcGFy c2VyLnkiCi0rI2xpbmUgNTU3ICJzcmMvcGFyc2VyLnkiCi0gICAgICAgICAgIHsKLSAgICh5eXZh bC5ibGspID0gZ2VuX2luZGV4X29wdChnZW5fbm9vcCgpLCBnZW5fY29uc3QoKHl5dnNwWy0xXS5s aXRlcmFsKSkpOwotIH0KLS0jbGluZSAzMDY5ICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMzA1OSAi c3JjL3BhcnNlci5jIgotICAgICBicmVhazsKLSAKLSAgIGNhc2UgNjY6IC8qIFRlcm06IFRlcm0g Jy4nIFN0cmluZyAnPycgICovCi0tI2xpbmUgNTcwICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNTYw ICJzcmMvcGFyc2VyLnkiCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9 IGdlbl9pbmRleF9vcHQoKHl5dnNwWy0zXS5ibGspLCAoeXl2c3BbLTFdLmJsaykpOwotIH0KLS0j bGluZSAzMDc3ICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMzA2NyAic3JjL3BhcnNlci5jIgotICAg ICBicmVhazsKLSAKLSAgIGNhc2UgNjc6IC8qIFRlcm06ICcuJyBTdHJpbmcgJz8nICAqLwotLSNs aW5lIDU3MyAic3JjL3BhcnNlci55IgotKyNsaW5lIDU2MyAic3JjL3BhcnNlci55IgotICAgICAg ICAgICAgICAgIHsKLSAgICh5eXZhbC5ibGspID0gZ2VuX2luZGV4X29wdChnZW5fbm9vcCgpLCAo eXl2c3BbLTFdLmJsaykpOwotIH0KLS0jbGluZSAzMDg1ICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUg MzA3NSAic3JjL3BhcnNlci5jIgotICAgICBicmVhazsKLSAKLSAgIGNhc2UgNjg6IC8qIFRlcm06 IFRlcm0gRklFTEQgICovCi0tI2xpbmUgNTc2ICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNTY2ICJz cmMvcGFyc2VyLnkiCi0gICAgICAgICAgICAgICAgICAgICAgICAgewotICAgKHl5dmFsLmJsaykg PSBnZW5faW5kZXgoKHl5dnNwWy0xXS5ibGspLCBnZW5fY29uc3QoKHl5dnNwWzBdLmxpdGVyYWwp KSk7Ci0gfQotLSNsaW5lIDMwOTMgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzMDgzICJzcmMvcGFy c2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSA2OTogLyogVGVybTogRklFTEQgICovCi0t I2xpbmUgNTc5ICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNTY5ICJzcmMvcGFyc2VyLnkiCi0gICAg ICAgICAgICAgICAgICAgIHsKLSAgICh5eXZhbC5ibGspID0gZ2VuX2luZGV4KGdlbl9ub29wKCks IGdlbl9jb25zdCgoeXl2c3BbMF0ubGl0ZXJhbCkpKTsKLSB9Ci0tI2xpbmUgMzEwMSAic3JjL3Bh cnNlci5jIgotKyNsaW5lIDMwOTEgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBj YXNlIDcwOiAvKiBUZXJtOiBUZXJtICcuJyBTdHJpbmcgICovCi0tI2xpbmUgNTgyICJzcmMvcGFy c2VyLnkiCi0rI2xpbmUgNTcyICJzcmMvcGFyc2VyLnkiCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl9pbmRleCgoeXl2c3BbLTJdLmJsayksICh5 eXZzcFswXS5ibGspKTsKLSB9Ci0tI2xpbmUgMzEwOSAic3JjL3BhcnNlci5jIgotKyNsaW5lIDMw OTkgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDcxOiAvKiBUZXJtOiAn LicgU3RyaW5nICAqLwotLSNsaW5lIDU4NSAic3JjL3BhcnNlci55IgotKyNsaW5lIDU3NSAic3Jj L3BhcnNlci55IgotICAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICh5eXZhbC5ibGspID0g Z2VuX2luZGV4KGdlbl9ub29wKCksICh5eXZzcFswXS5ibGspKTsKLSB9Ci0tI2xpbmUgMzExNyAi c3JjL3BhcnNlci5jIgotKyNsaW5lIDMxMDcgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0g Ci0gICBjYXNlIDcyOiAvKiBUZXJtOiAnLicgZXJyb3IgICovCi0tI2xpbmUgNTg4ICJzcmMvcGFy c2VyLnkiCi0rI2xpbmUgNTc4ICJzcmMvcGFyc2VyLnkiCi0gICAgICAgICAgIHsKLSAgIEZBSUwo KHl5bG9jKSwgInRyeSAuW1wiZmllbGRcIl0gaW5zdGVhZCBvZiAuZmllbGQgZm9yIHVudXN1YWxs eSBuYW1lZCBmaWVsZHMiKTsKLSAgICh5eXZhbC5ibGspID0gZ2VuX25vb3AoKTsKLSB9Ci0tI2xp bmUgMzEyNiAic3JjL3BhcnNlci5jIgotKyNsaW5lIDMxMTYgInNyYy9wYXJzZXIuYyIKLSAgICAg YnJlYWs7Ci0gCi0gICBjYXNlIDczOiAvKiBUZXJtOiAnLicgSURFTlQgZXJyb3IgICovCi0tI2xp bmUgNTkyICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNTgyICJzcmMvcGFyc2VyLnkiCi0gICAgICAg ICAgICAgICAgIHsKLSAgIGp2X2ZyZWUoKHl5dnNwWy0xXS5saXRlcmFsKSk7Ci0gICBGQUlMKCh5 eWxvYyksICJ0cnkgLltcImZpZWxkXCJdIGluc3RlYWQgb2YgLmZpZWxkIGZvciB1bnVzdWFsbHkg bmFtZWQgZmllbGRzIik7Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl9ub29wKCk7Ci0gfQotLSNsaW5l IDMxMzYgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzMTI2ICJzcmMvcGFyc2VyLmMiCi0gICAgIGJy ZWFrOwotIAotICAgY2FzZSA3NDogLyogVGVybTogVGVybSAnWycgUXVlcnkgJ10nICc/JyAgKi8K LS0jbGluZSA1OTggInNyYy9wYXJzZXIueSIKLSsjbGluZSA1ODggInNyYy9wYXJzZXIueSIKLSAg ICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICh5eXZhbC5ibGspID0gZ2VuX2luZGV4X29wdCgo eXl2c3BbLTRdLmJsayksICh5eXZzcFstMl0uYmxrKSk7Ci0gfQotLSNsaW5lIDMxNDQgInNyYy9w YXJzZXIuYyIKLSsjbGluZSAzMTM0ICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAg Y2FzZSA3NTogLyogVGVybTogVGVybSAnWycgUXVlcnkgJ10nICAqLwotLSNsaW5lIDYwMSAic3Jj L3BhcnNlci55IgotKyNsaW5lIDU5MSAic3JjL3BhcnNlci55IgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewotICAgKHl5dmFsLmJsaykgPSBnZW5faW5kZXgoKHl5dnNwWy0zXS5i bGspLCAoeXl2c3BbLTFdLmJsaykpOwotIH0KLS0jbGluZSAzMTUyICJzcmMvcGFyc2VyLmMiCi0r I2xpbmUgMzE0MiAic3JjL3BhcnNlci5jIgotICAgICBicmVhazsKLSAKLSAgIGNhc2UgNzY6IC8q IFRlcm06IFRlcm0gJy4nICdbJyBRdWVyeSAnXScgJz8nICAqLwotLSNsaW5lIDYwNCAic3JjL3Bh cnNlci55IgotKyNsaW5lIDU5NCAic3JjL3BhcnNlci55IgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKLSAgICh5eXZhbC5ibGspID0gZ2VuX2luZGV4X29wdCgoeXl2c3BbLTVdLmJsayks ICh5eXZzcFstMl0uYmxrKSk7Ci0gfQotLSNsaW5lIDMxNjAgInNyYy9wYXJzZXIuYyIKLSsjbGlu ZSAzMTUwICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSA3NzogLyogVGVy bTogVGVybSAnLicgJ1snIFF1ZXJ5ICddJyAgKi8KLS0jbGluZSA2MDcgInNyYy9wYXJzZXIueSIK LSsjbGluZSA1OTcgInNyYy9wYXJzZXIueSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl9pbmRleCgoeXl2c3BbLTRdLmJsayksICh5 eXZzcFstMV0uYmxrKSk7Ci0gfQotLSNsaW5lIDMxNjggInNyYy9wYXJzZXIuYyIKLSsjbGluZSAz MTU4ICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSA3ODogLyogVGVybTog VGVybSAnWycgJ10nICc/JyAgKi8KLS0jbGluZSA2MTAgInNyYy9wYXJzZXIueSIKLSsjbGluZSA2 MDAgInNyYy9wYXJzZXIueSIKLSAgICAgICAgICAgICAgICAgIHsKLSAgICh5eXZhbC5ibGspID0g YmxvY2tfam9pbigoeXl2c3BbLTNdLmJsayksIGdlbl9vcF9zaW1wbGUoRUFDSF9PUFQpKTsKLSB9 Ci0tI2xpbmUgMzE3NiAic3JjL3BhcnNlci5jIgotKyNsaW5lIDMxNjYgInNyYy9wYXJzZXIuYyIK LSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDc5OiAvKiBUZXJtOiBUZXJtICdbJyAnXScgICovCi0t I2xpbmUgNjEzICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNjAzICJzcmMvcGFyc2VyLnkiCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IGJsb2NrX2pvaW4oKHl5 dnNwWy0yXS5ibGspLCBnZW5fb3Bfc2ltcGxlKEVBQ0gpKTsKLSB9Ci0tI2xpbmUgMzE4NCAic3Jj L3BhcnNlci5jIgotKyNsaW5lIDMxNzQgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0g ICBjYXNlIDgwOiAvKiBUZXJtOiBUZXJtICcuJyAnWycgJ10nICc/JyAgKi8KLS0jbGluZSA2MTYg InNyYy9wYXJzZXIueSIKLSsjbGluZSA2MDYgInNyYy9wYXJzZXIueSIKLSAgICAgICAgICAgICAg ICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IGJsb2NrX2pvaW4oKHl5dnNwWy00XS5ibGspLCBn ZW5fb3Bfc2ltcGxlKEVBQ0hfT1BUKSk7Ci0gfQotLSNsaW5lIDMxOTIgInNyYy9wYXJzZXIuYyIK LSsjbGluZSAzMTgyICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSA4MTog LyogVGVybTogVGVybSAnLicgJ1snICddJyAgKi8KLS0jbGluZSA2MTkgInNyYy9wYXJzZXIueSIK LSsjbGluZSA2MDkgInNyYy9wYXJzZXIueSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7Ci0gICAoeXl2YWwuYmxrKSA9IGJsb2NrX2pvaW4oKHl5dnNwWy0zXS5ibGspLCBnZW5fb3Bf c2ltcGxlKEVBQ0gpKTsKLSB9Ci0tI2xpbmUgMzIwMCAic3JjL3BhcnNlci5jIgotKyNsaW5lIDMx OTAgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDgyOiAvKiBUZXJtOiBU ZXJtICdbJyBRdWVyeSAnOicgUXVlcnkgJ10nICc/JyAgKi8KLS0jbGluZSA2MjIgInNyYy9wYXJz ZXIueSIKLSsjbGluZSA2MTIgInNyYy9wYXJzZXIueSIKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl9zbGljZV9pbmRleCgoeXl2c3BbLTZd LmJsayksICh5eXZzcFstNF0uYmxrKSwgKHl5dnNwWy0yXS5ibGspLCBJTkRFWF9PUFQpOwotIH0K LS0jbGluZSAzMjA4ICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMzE5OCAic3JjL3BhcnNlci5jIgot ICAgICBicmVhazsKLSAKLSAgIGNhc2UgODM6IC8qIFRlcm06IFRlcm0gJ1snIFF1ZXJ5ICc6JyAn XScgJz8nICAqLwotLSNsaW5lIDYyNSAic3JjL3BhcnNlci55IgotKyNsaW5lIDYxNSAic3JjL3Bh cnNlci55IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICh5eXZhbC5ibGspID0g Z2VuX3NsaWNlX2luZGV4KCh5eXZzcFstNV0uYmxrKSwgKHl5dnNwWy0zXS5ibGspLCBnZW5fY29u c3QoanZfbnVsbCgpKSwgSU5ERVhfT1BUKTsKLSB9Ci0tI2xpbmUgMzIxNiAic3JjL3BhcnNlci5j IgotKyNsaW5lIDMyMDYgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDg0 OiAvKiBUZXJtOiBUZXJtICdbJyAnOicgUXVlcnkgJ10nICc/JyAgKi8KLS0jbGluZSA2MjggInNy Yy9wYXJzZXIueSIKLSsjbGluZSA2MTggInNyYy9wYXJzZXIueSIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl9zbGljZV9pbmRleCgoeXl2c3BbLTVd LmJsayksIGdlbl9jb25zdChqdl9udWxsKCkpLCAoeXl2c3BbLTJdLmJsayksIElOREVYX09QVCk7 Ci0gfQotLSNsaW5lIDMyMjQgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzMjE0ICJzcmMvcGFyc2Vy LmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSA4NTogLyogVGVybTogVGVybSAnWycgUXVlcnkg JzonIFF1ZXJ5ICddJyAgKi8KLS0jbGluZSA2MzEgInNyYy9wYXJzZXIueSIKLSsjbGluZSA2MjEg InNyYy9wYXJzZXIueSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl9zbGljZV9pbmRleCgoeXl2c3BbLTVdLmJsayksICh5 eXZzcFstM10uYmxrKSwgKHl5dnNwWy0xXS5ibGspLCBJTkRFWCk7Ci0gfQotLSNsaW5lIDMyMzIg InNyYy9wYXJzZXIuYyIKLSsjbGluZSAzMjIyICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwot IAotICAgY2FzZSA4NjogLyogVGVybTogVGVybSAnWycgUXVlcnkgJzonICddJyAgKi8KLS0jbGlu ZSA2MzQgInNyYy9wYXJzZXIueSIKLSsjbGluZSA2MjQgInNyYy9wYXJzZXIueSIKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl9zbGlj ZV9pbmRleCgoeXl2c3BbLTRdLmJsayksICh5eXZzcFstMl0uYmxrKSwgZ2VuX2NvbnN0KGp2X251 bGwoKSksIElOREVYKTsKLSB9Ci0tI2xpbmUgMzI0MCAic3JjL3BhcnNlci5jIgotKyNsaW5lIDMy MzAgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDg3OiAvKiBUZXJtOiBU ZXJtICdbJyAnOicgUXVlcnkgJ10nICAqLwotLSNsaW5lIDYzNyAic3JjL3BhcnNlci55IgotKyNs aW5lIDYyNyAic3JjL3BhcnNlci55IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKLSAgICh5eXZhbC5ibGspID0gZ2VuX3NsaWNlX2luZGV4KCh5eXZzcFstNF0uYmxrKSwg Z2VuX2NvbnN0KGp2X251bGwoKSksICh5eXZzcFstMV0uYmxrKSwgSU5ERVgpOwotIH0KLS0jbGlu ZSAzMjQ4ICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMzIzOCAic3JjL3BhcnNlci5jIgotICAgICBi cmVhazsKLSAKLSAgIGNhc2UgODg6IC8qIFRlcm06IFRlcm0gJz8nICAqLwotLSNsaW5lIDY0MCAi c3JjL3BhcnNlci55IgotKyNsaW5lIDYzMCAic3JjL3BhcnNlci55IgotICAgICAgICAgIHsKLSAg ICh5eXZhbC5ibGspID0gZ2VuX3RyeSgoeXl2c3BbLTFdLmJsayksIGdlbl9vcF9zaW1wbGUoQkFD S1RSQUNLKSk7Ci0gfQotLSNsaW5lIDMyNTYgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzMjQ2ICJz cmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSA4OTogLyogVGVybTogTElURVJB TCAgKi8KLS0jbGluZSA2NDMgInNyYy9wYXJzZXIueSIKLSsjbGluZSA2MzMgInNyYy9wYXJzZXIu eSIKLSAgICAgICAgIHsKLSAgICh5eXZhbC5ibGspID0gZ2VuX2NvbnN0KCh5eXZzcFswXS5saXRl cmFsKSk7Ci0gfQotLSNsaW5lIDMyNjQgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzMjU0ICJzcmMv cGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSA5MDogLyogVGVybTogU3RyaW5nICAq LwotLSNsaW5lIDY0NiAic3JjL3BhcnNlci55IgotKyNsaW5lIDYzNiAic3JjL3BhcnNlci55Igot ICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9ICh5eXZzcFswXS5ibGspOwotIH0KLS0jbGluZSAz MjcyICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMzI2MiAic3JjL3BhcnNlci5jIgotICAgICBicmVh azsKLSAKLSAgIGNhc2UgOTE6IC8qIFRlcm06IEZPUk1BVCAgKi8KLS0jbGluZSA2NDkgInNyYy9w YXJzZXIueSIKLSsjbGluZSA2MzkgInNyYy9wYXJzZXIueSIKLSAgICAgICAgewotICAgKHl5dmFs LmJsaykgPSBnZW5fZm9ybWF0KGdlbl9ub29wKCksICh5eXZzcFswXS5saXRlcmFsKSk7Ci0gfQot LSNsaW5lIDMyODAgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzMjcwICJzcmMvcGFyc2VyLmMiCi0g ICAgIGJyZWFrOwotIAotICAgY2FzZSA5MjogLyogVGVybTogJy0nIFRlcm0gICovCi0tI2xpbmUg NjUyICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNjQyICJzcmMvcGFyc2VyLnkiCi0gICAgICAgICAg ewotICAgKHl5dmFsLmJsaykgPSBCTE9DSygoeXl2c3BbMF0uYmxrKSwgZ2VuX2NhbGwoIl9uZWdh dGUiLCBnZW5fbm9vcCgpKSk7Ci0gfQotLSNsaW5lIDMyODggInNyYy9wYXJzZXIuYyIKLSsjbGlu ZSAzMjc4ICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSA5MzogLyogVGVy bTogJygnIFF1ZXJ5ICcpJyAgKi8KLS0jbGluZSA2NTUgInNyYy9wYXJzZXIueSIKLSsjbGluZSA2 NDUgInNyYy9wYXJzZXIueSIKLSAgICAgICAgICAgICAgIHsKLSAgICh5eXZhbC5ibGspID0gKHl5 dnNwWy0xXS5ibGspOwotIH0KLS0jbGluZSAzMjk2ICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMzI4 NiAic3JjL3BhcnNlci5jIgotICAgICBicmVhazsKLSAKLSAgIGNhc2UgOTQ6IC8qIFRlcm06ICdb JyBRdWVyeSAnXScgICovCi0tI2xpbmUgNjU4ICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNjQ4ICJz cmMvcGFyc2VyLnkiCi0gICAgICAgICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl9jb2xs ZWN0KCh5eXZzcFstMV0uYmxrKSk7Ci0gfQotLSNsaW5lIDMzMDQgInNyYy9wYXJzZXIuYyIKLSsj bGluZSAzMjk0ICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSA5NTogLyog VGVybTogJ1snICddJyAgKi8KLS0jbGluZSA2NjEgInNyYy9wYXJzZXIueSIKLSsjbGluZSA2NTEg InNyYy9wYXJzZXIueSIKLSAgICAgICAgIHsKLSAgICh5eXZhbC5ibGspID0gZ2VuX2NvbnN0KGp2 X2FycmF5KCkpOwotIH0KLS0jbGluZSAzMzEyICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMzMwMiAi c3JjL3BhcnNlci5jIgotICAgICBicmVhazsKLSAKLSAgIGNhc2UgOTY6IC8qIFRlcm06ICd7JyBE aWN0UGFpcnMgJ30nICAqLwotLSNsaW5lIDY2NCAic3JjL3BhcnNlci55IgotKyNsaW5lIDY1NCAi c3JjL3BhcnNlci55IgotICAgICAgICAgICAgICAgICAgIHsKLSAgIGJsb2NrIG8gPSBnZW5fY29u c3Rfb2JqZWN0KCh5eXZzcFstMV0uYmxrKSk7Ci0gICBpZiAoby5maXJzdCAhPSBOVUxMKQotQEAg LTMzMjAsMTAzICszMzEwLDEwMyBAQCBZWUxUWVBFIHl5bGxvYyA9IHl5bG9jX2RlZmF1bHQ7Ci0g ICBlbHNlCi0gICAgICh5eXZhbC5ibGspID0gQkxPQ0soZ2VuX3N1YmV4cChnZW5fY29uc3QoanZf b2JqZWN0KCkpKSwgKHl5dnNwWy0xXS5ibGspLCBnZW5fb3Bfc2ltcGxlKFBPUCkpOwotIH0KLS0j bGluZSAzMzI0ICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMzMxNCAic3JjL3BhcnNlci5jIgotICAg ICBicmVhazsKLSAKLSAgIGNhc2UgOTc6IC8qIFRlcm06ICJyZWR1Y2UiIEV4cHIgImFzIiBQYXR0 ZXJucyAnKCcgUXVlcnkgJzsnIFF1ZXJ5ICcpJyAgKi8KLS0jbGluZSA2NzEgInNyYy9wYXJzZXIu eSIKLSsjbGluZSA2NjEgInNyYy9wYXJzZXIueSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewotICAgKHl5dmFsLmJsaykgPSBnZW5fcmVkdWNl KCh5eXZzcFstN10uYmxrKSwgKHl5dnNwWy01XS5ibGspLCAoeXl2c3BbLTNdLmJsayksICh5eXZz cFstMV0uYmxrKSk7Ci0gfQotLSNsaW5lIDMzMzIgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzMzIy ICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSA5ODogLyogVGVybTogImZv cmVhY2giIEV4cHIgImFzIiBQYXR0ZXJucyAnKCcgUXVlcnkgJzsnIFF1ZXJ5ICc7JyBRdWVyeSAn KScgICovCi0tI2xpbmUgNjc0ICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNjY0ICJzcmMvcGFyc2Vy LnkiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewotICAgKHl5dmFsLmJsaykgPSBnZW5fZm9yZWFjaCgoeXl2c3BbLTldLmJs ayksICh5eXZzcFstN10uYmxrKSwgKHl5dnNwWy01XS5ibGspLCAoeXl2c3BbLTNdLmJsayksICh5 eXZzcFstMV0uYmxrKSk7Ci0gfQotLSNsaW5lIDMzNDAgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAz MzMwICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSA5OTogLyogVGVybTog ImZvcmVhY2giIEV4cHIgImFzIiBQYXR0ZXJucyAnKCcgUXVlcnkgJzsnIFF1ZXJ5ICcpJyAgKi8K LS0jbGluZSA2NzcgInNyYy9wYXJzZXIueSIKLSsjbGluZSA2NjcgInNyYy9wYXJzZXIueSIKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAg ICh5eXZhbC5ibGspID0gZ2VuX2ZvcmVhY2goKHl5dnNwWy03XS5ibGspLCAoeXl2c3BbLTVdLmJs ayksICh5eXZzcFstM10uYmxrKSwgKHl5dnNwWy0xXS5ibGspLCBnZW5fbm9vcCgpKTsKLSB9Ci0t I2xpbmUgMzM0OCAic3JjL3BhcnNlci5jIgotKyNsaW5lIDMzMzggInNyYy9wYXJzZXIuYyIKLSAg ICAgYnJlYWs7Ci0gCi0gICBjYXNlIDEwMDogLyogVGVybTogImlmIiBRdWVyeSAidGhlbiIgUXVl cnkgRWxzZUJvZHkgICovCi0tI2xpbmUgNjgwICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNjcwICJz cmMvcGFyc2VyLnkiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewotICAgKHl5 dmFsLmJsaykgPSBnZW5fY29uZCgoeXl2c3BbLTNdLmJsayksICh5eXZzcFstMV0uYmxrKSwgKHl5 dnNwWzBdLmJsaykpOwotIH0KLS0jbGluZSAzMzU2ICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMzM0 NiAic3JjL3BhcnNlci5jIgotICAgICBicmVhazsKLSAKLSAgIGNhc2UgMTAxOiAvKiBUZXJtOiAi aWYiIFF1ZXJ5ICJ0aGVuIiBlcnJvciAgKi8KLS0jbGluZSA2ODMgInNyYy9wYXJzZXIueSIKLSsj bGluZSA2NzMgInNyYy9wYXJzZXIueSIKLSAgICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICBG QUlMKCh5eWxvYyksICJQb3NzaWJseSB1bnRlcm1pbmF0ZWQgJ2lmJyBzdGF0ZW1lbnQiKTsKLSAg ICh5eXZhbC5ibGspID0gKHl5dnNwWy0yXS5ibGspOwotIH0KLS0jbGluZSAzMzY1ICJzcmMvcGFy c2VyLmMiCi0rI2xpbmUgMzM1NSAic3JjL3BhcnNlci5jIgotICAgICBicmVhazsKLSAKLSAgIGNh c2UgMTAyOiAvKiBUZXJtOiAidHJ5IiBFeHByICJjYXRjaCIgRXhwciAgKi8KLS0jbGluZSA2ODcg InNyYy9wYXJzZXIueSIKLSsjbGluZSA2NzcgInNyYy9wYXJzZXIueSIKLSAgICAgICAgICAgICAg ICAgICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl90cnkoKHl5dnNwWy0yXS5ibGspLCAo eXl2c3BbMF0uYmxrKSk7Ci0gfQotLSNsaW5lIDMzNzMgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAz MzYzICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSAxMDM6IC8qIFRlcm06 ICJ0cnkiIEV4cHIgImNhdGNoIiBlcnJvciAgKi8KLS0jbGluZSA2OTAgInNyYy9wYXJzZXIueSIK LSsjbGluZSA2ODAgInNyYy9wYXJzZXIueSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgewot ICAgRkFJTCgoeXlsb2MpLCAiUG9zc2libHkgdW50ZXJtaW5hdGVkICd0cnknIHN0YXRlbWVudCIp OwotICAgKHl5dmFsLmJsaykgPSAoeXl2c3BbLTJdLmJsayk7Ci0gfQotLSNsaW5lIDMzODIgInNy Yy9wYXJzZXIuYyIKLSsjbGluZSAzMzcyICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAot ICAgY2FzZSAxMDQ6IC8qIFRlcm06ICJ0cnkiIEV4cHIgICovCi0tI2xpbmUgNjk0ICJzcmMvcGFy c2VyLnkiCi0rI2xpbmUgNjg0ICJzcmMvcGFyc2VyLnkiCi0gICAgICAgICAgICB7Ci0gICAoeXl2 YWwuYmxrKSA9IGdlbl90cnkoKHl5dnNwWzBdLmJsayksIGdlbl9vcF9zaW1wbGUoQkFDS1RSQUNL KSk7Ci0gfQotLSNsaW5lIDMzOTAgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzMzgwICJzcmMvcGFy c2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSAxMDU6IC8qIFRlcm06ICckJyAnJCcgJyQn IEJJTkRJTkcgICovCi0tI2xpbmUgNzEyICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNzAyICJzcmMv cGFyc2VyLnkiCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl9s b2NhdGlvbigoeXlsb2MpLCBsb2NhdGlvbnMsIGdlbl9vcF91bmJvdW5kKExPQURWTiwganZfc3Ry aW5nX3ZhbHVlKCh5eXZzcFswXS5saXRlcmFsKSkpKTsKLSAgIGp2X2ZyZWUoKHl5dnNwWzBdLmxp dGVyYWwpKTsKLSB9Ci0tI2xpbmUgMzM5OSAic3JjL3BhcnNlci5jIgotKyNsaW5lIDMzODkgInNy Yy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDEwNjogLyogVGVybTogQklORElO RyAgKi8KLS0jbGluZSA3MTYgInNyYy9wYXJzZXIueSIKLSsjbGluZSA3MDYgInNyYy9wYXJzZXIu eSIKLSAgICAgICAgIHsKLSAgICh5eXZhbC5ibGspID0gZ2VuX2xvY2F0aW9uKCh5eWxvYyksIGxv Y2F0aW9ucywgZ2VuX29wX3VuYm91bmQoTE9BRFYsIGp2X3N0cmluZ192YWx1ZSgoeXl2c3BbMF0u bGl0ZXJhbCkpKSk7Ci0gICBqdl9mcmVlKCh5eXZzcFswXS5saXRlcmFsKSk7Ci0gfQotLSNsaW5l IDM0MDggInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzMzk4ICJzcmMvcGFyc2VyLmMiCi0gICAgIGJy ZWFrOwotIAotICAgY2FzZSAxMDc6IC8qIFRlcm06ICIkX19sb2NfXyIgICovCi0tI2xpbmUgNzIw ICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNzEwICJzcmMvcGFyc2VyLnkiCi0gICAgICAgICAgICB7 Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl9sb2Nfb2JqZWN0KCYoeXlsb2MpLCBsb2NhdGlvbnMpOwot IH0KLS0jbGluZSAzNDE2ICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMzQwNiAic3JjL3BhcnNlci5j IgotICAgICBicmVhazsKLSAKLSAgIGNhc2UgMTA4OiAvKiBUZXJtOiBJREVOVCAgKi8KLS0jbGlu ZSA3MjMgInNyYy9wYXJzZXIueSIKLSsjbGluZSA3MTMgInNyYy9wYXJzZXIueSIKLSAgICAgICB7 Ci0gICBjb25zdCBjaGFyICpzID0ganZfc3RyaW5nX3ZhbHVlKCh5eXZzcFswXS5saXRlcmFsKSk7 Ci0gICBpZiAoc3RyY21wKHMsICJmYWxzZSIpID09IDApCi1AQCAtMzQyOSwxOTggKzM0MTksMTk4 IEBAIFlZTFRZUEUgeXlsbG9jID0geXlsb2NfZGVmYXVsdDsKLSAgICAgKHl5dmFsLmJsaykgPSBn ZW5fbG9jYXRpb24oKHl5bG9jKSwgbG9jYXRpb25zLCBnZW5fY2FsbChzLCBnZW5fbm9vcCgpKSk7 Ci0gICBqdl9mcmVlKCh5eXZzcFswXS5saXRlcmFsKSk7Ci0gfQotLSNsaW5lIDM0MzMgInNyYy9w YXJzZXIuYyIKLSsjbGluZSAzNDIzICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAg Y2FzZSAxMDk6IC8qIFRlcm06IElERU5UICcoJyBBcmdzICcpJyAgKi8KLS0jbGluZSA3MzUgInNy Yy9wYXJzZXIueSIKLSsjbGluZSA3MjUgInNyYy9wYXJzZXIueSIKLSAgICAgICAgICAgICAgICAg ICAgewotICAgKHl5dmFsLmJsaykgPSBnZW5fY2FsbChqdl9zdHJpbmdfdmFsdWUoKHl5dnNwWy0z XS5saXRlcmFsKSksICh5eXZzcFstMV0uYmxrKSk7Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl9sb2Nh dGlvbigoeXlsc3BbLTNdKSwgbG9jYXRpb25zLCAoeXl2YWwuYmxrKSk7Ci0gICBqdl9mcmVlKCh5 eXZzcFstM10ubGl0ZXJhbCkpOwotIH0KLS0jbGluZSAzNDQzICJzcmMvcGFyc2VyLmMiCi0rI2xp bmUgMzQzMyAic3JjL3BhcnNlci5jIgotICAgICBicmVhazsKLSAKLSAgIGNhc2UgMTEwOiAvKiBU ZXJtOiAnKCcgZXJyb3IgJyknICAqLwotLSNsaW5lIDc0MCAic3JjL3BhcnNlci55IgotKyNsaW5l IDczMCAic3JjL3BhcnNlci55IgotICAgICAgICAgICAgICAgeyAoeXl2YWwuYmxrKSA9IGdlbl9u b29wKCk7IH0KLS0jbGluZSAzNDQ5ICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMzQzOSAic3JjL3Bh cnNlci5jIgotICAgICBicmVhazsKLSAKLSAgIGNhc2UgMTExOiAvKiBUZXJtOiAnWycgZXJyb3Ig J10nICAqLwotLSNsaW5lIDc0MSAic3JjL3BhcnNlci55IgotKyNsaW5lIDczMSAic3JjL3BhcnNl ci55IgotICAgICAgICAgICAgICAgeyAoeXl2YWwuYmxrKSA9IGdlbl9ub29wKCk7IH0KLS0jbGlu ZSAzNDU1ICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMzQ0NSAic3JjL3BhcnNlci5jIgotICAgICBi cmVhazsKLSAKLSAgIGNhc2UgMTEyOiAvKiBUZXJtOiBUZXJtICdbJyBlcnJvciAnXScgICovCi0t I2xpbmUgNzQyICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNzMyICJzcmMvcGFyc2VyLnkiCi0gICAg ICAgICAgICAgICAgICAgIHsgKHl5dmFsLmJsaykgPSAoeXl2c3BbLTNdLmJsayk7IH0KLS0jbGlu ZSAzNDYxICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMzQ1MSAic3JjL3BhcnNlci5jIgotICAgICBi cmVhazsKLSAKLSAgIGNhc2UgMTEzOiAvKiBUZXJtOiAneycgZXJyb3IgJ30nICAqLwotLSNsaW5l IDc0MyAic3JjL3BhcnNlci55IgotKyNsaW5lIDczMyAic3JjL3BhcnNlci55IgotICAgICAgICAg ICAgICAgeyAoeXl2YWwuYmxrKSA9IGdlbl9ub29wKCk7IH0KLS0jbGluZSAzNDY3ICJzcmMvcGFy c2VyLmMiCi0rI2xpbmUgMzQ1NyAic3JjL3BhcnNlci5jIgotICAgICBicmVhazsKLSAKLSAgIGNh c2UgMTE0OiAvKiBBcmdzOiBBcmcgICovCi0tI2xpbmUgNzQ2ICJzcmMvcGFyc2VyLnkiCi0rI2xp bmUgNzM2ICJzcmMvcGFyc2VyLnkiCi0gICAgIHsKLSAgICh5eXZhbC5ibGspID0gKHl5dnNwWzBd LmJsayk7Ci0gfQotLSNsaW5lIDM0NzUgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzNDY1ICJzcmMv cGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSAxMTU6IC8qIEFyZ3M6IEFyZ3MgJzsn IEFyZyAgKi8KLS0jbGluZSA3NDkgInNyYy9wYXJzZXIueSIKLSsjbGluZSA3MzkgInNyYy9wYXJz ZXIueSIKLSAgICAgICAgICAgICAgewotICAgKHl5dmFsLmJsaykgPSBCTE9DSygoeXl2c3BbLTJd LmJsayksICh5eXZzcFswXS5ibGspKTsKLSB9Ci0tI2xpbmUgMzQ4MyAic3JjL3BhcnNlci5jIgot KyNsaW5lIDM0NzMgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDExNjog LyogQXJnOiBRdWVyeSAgKi8KLS0jbGluZSA3NTQgInNyYy9wYXJzZXIueSIKLSsjbGluZSA3NDQg InNyYy9wYXJzZXIueSIKLSAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl9sYW1iZGEoKHl5 dnNwWzBdLmJsaykpOwotIH0KLS0jbGluZSAzNDkxICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMzQ4 MSAic3JjL3BhcnNlci5jIgotICAgICBicmVhazsKLSAKLSAgIGNhc2UgMTE3OiAvKiBSZXBQYXR0 ZXJuczogUmVwUGF0dGVybnMgIj8vLyIgUGF0dGVybiAgKi8KLS0jbGluZSA3NTkgInNyYy9wYXJz ZXIueSIKLSsjbGluZSA3NDkgInNyYy9wYXJzZXIueSIKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKLSAgICh5eXZhbC5ibGspID0gQkxPQ0soKHl5dnNwWy0yXS5ibGspLCBnZW5fZGVzdHJ1 Y3R1cmVfYWx0KCh5eXZzcFswXS5ibGspKSk7Ci0gfQotLSNsaW5lIDM0OTkgInNyYy9wYXJzZXIu YyIKLSsjbGluZSAzNDg5ICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSAx MTg6IC8qIFJlcFBhdHRlcm5zOiBQYXR0ZXJuICAqLwotLSNsaW5lIDc2MiAic3JjL3BhcnNlci55 IgotKyNsaW5lIDc1MiAic3JjL3BhcnNlci55IgotICAgICAgICAgewotICAgKHl5dmFsLmJsaykg PSBnZW5fZGVzdHJ1Y3R1cmVfYWx0KCh5eXZzcFswXS5ibGspKTsKLSB9Ci0tI2xpbmUgMzUwNyAi c3JjL3BhcnNlci5jIgotKyNsaW5lIDM0OTcgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0g Ci0gICBjYXNlIDExOTogLyogUGF0dGVybnM6IFJlcFBhdHRlcm5zICI/Ly8iIFBhdHRlcm4gICov Ci0tI2xpbmUgNzY3ICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNzU3ICJzcmMvcGFyc2VyLnkiCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IEJMT0NLKCh5eXZz cFstMl0uYmxrKSwgKHl5dnNwWzBdLmJsaykpOwotIH0KLS0jbGluZSAzNTE1ICJzcmMvcGFyc2Vy LmMiCi0rI2xpbmUgMzUwNSAic3JjL3BhcnNlci5jIgotICAgICBicmVhazsKLSAKLSAgIGNhc2Ug MTIwOiAvKiBQYXR0ZXJuczogUGF0dGVybiAgKi8KLS0jbGluZSA3NzAgInNyYy9wYXJzZXIueSIK LSsjbGluZSA3NjAgInNyYy9wYXJzZXIueSIKLSAgICAgICAgIHsKLSAgICh5eXZhbC5ibGspID0g KHl5dnNwWzBdLmJsayk7Ci0gfQotLSNsaW5lIDM1MjMgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAz NTEzICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSAxMjE6IC8qIFBhdHRl cm46IEJJTkRJTkcgICovCi0tI2xpbmUgNzc1ICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgNzY1ICJz cmMvcGFyc2VyLnkiCi0gICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl9vcF91bmJvdW5k KFNUT1JFViwganZfc3RyaW5nX3ZhbHVlKCh5eXZzcFswXS5saXRlcmFsKSkpOwotICAganZfZnJl ZSgoeXl2c3BbMF0ubGl0ZXJhbCkpOwotIH0KLS0jbGluZSAzNTMyICJzcmMvcGFyc2VyLmMiCi0r I2xpbmUgMzUyMiAic3JjL3BhcnNlci5jIgotICAgICBicmVhazsKLSAKLSAgIGNhc2UgMTIyOiAv KiBQYXR0ZXJuOiAnWycgQXJyYXlQYXRzICddJyAgKi8KLS0jbGluZSA3NzkgInNyYy9wYXJzZXIu eSIKLSsjbGluZSA3NjkgInNyYy9wYXJzZXIueSIKLSAgICAgICAgICAgICAgICAgICB7Ci0gICAo eXl2YWwuYmxrKSA9IEJMT0NLKCh5eXZzcFstMV0uYmxrKSwgZ2VuX29wX3NpbXBsZShQT1ApKTsK LSB9Ci0tI2xpbmUgMzU0MCAic3JjL3BhcnNlci5jIgotKyNsaW5lIDM1MzAgInNyYy9wYXJzZXIu YyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDEyMzogLyogUGF0dGVybjogJ3snIE9ialBhdHMg J30nICAqLwotLSNsaW5lIDc4MiAic3JjL3BhcnNlci55IgotKyNsaW5lIDc3MiAic3JjL3BhcnNl ci55IgotICAgICAgICAgICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IEJMT0NLKCh5eXZzcFst MV0uYmxrKSwgZ2VuX29wX3NpbXBsZShQT1ApKTsKLSB9Ci0tI2xpbmUgMzU0OCAic3JjL3BhcnNl ci5jIgotKyNsaW5lIDM1MzggInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNl IDEyNDogLyogQXJyYXlQYXRzOiBQYXR0ZXJuICAqLwotLSNsaW5lIDc4NyAic3JjL3BhcnNlci55 IgotKyNsaW5lIDc3NyAic3JjL3BhcnNlci55IgotICAgICAgICAgewotICAgKHl5dmFsLmJsaykg PSBnZW5fYXJyYXlfbWF0Y2hlcihnZW5fbm9vcCgpLCAoeXl2c3BbMF0uYmxrKSk7Ci0gfQotLSNs aW5lIDM1NTYgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzNTQ2ICJzcmMvcGFyc2VyLmMiCi0gICAg IGJyZWFrOwotIAotICAgY2FzZSAxMjU6IC8qIEFycmF5UGF0czogQXJyYXlQYXRzICcsJyBQYXR0 ZXJuICAqLwotLSNsaW5lIDc5MCAic3JjL3BhcnNlci55IgotKyNsaW5lIDc4MCAic3JjL3BhcnNl ci55IgotICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl9hcnJh eV9tYXRjaGVyKCh5eXZzcFstMl0uYmxrKSwgKHl5dnNwWzBdLmJsaykpOwotIH0KLS0jbGluZSAz NTY0ICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMzU1NCAic3JjL3BhcnNlci5jIgotICAgICBicmVh azsKLSAKLSAgIGNhc2UgMTI2OiAvKiBPYmpQYXRzOiBPYmpQYXQgICovCi0tI2xpbmUgNzk1ICJz cmMvcGFyc2VyLnkiCi0rI2xpbmUgNzg1ICJzcmMvcGFyc2VyLnkiCi0gICAgICAgIHsKLSAgICh5 eXZhbC5ibGspID0gKHl5dnNwWzBdLmJsayk7Ci0gfQotLSNsaW5lIDM1NzIgInNyYy9wYXJzZXIu YyIKLSsjbGluZSAzNTYyICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSAx Mjc6IC8qIE9ialBhdHM6IE9ialBhdHMgJywnIE9ialBhdCAgKi8KLS0jbGluZSA3OTggInNyYy9w YXJzZXIueSIKLSsjbGluZSA3ODggInNyYy9wYXJzZXIueSIKLSAgICAgICAgICAgICAgICAgICAg ewotICAgKHl5dmFsLmJsaykgPSBCTE9DSygoeXl2c3BbLTJdLmJsayksICh5eXZzcFswXS5ibGsp KTsKLSB9Ci0tI2xpbmUgMzU4MCAic3JjL3BhcnNlci5jIgotKyNsaW5lIDM1NzAgInNyYy9wYXJz ZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDEyODogLyogT2JqUGF0OiBCSU5ESU5HICAq LwotLSNsaW5lIDgwMyAic3JjL3BhcnNlci55IgotKyNsaW5lIDc5MyAic3JjL3BhcnNlci55Igot ICAgICAgICAgewotICAgKHl5dmFsLmJsaykgPSBnZW5fb2JqZWN0X21hdGNoZXIoZ2VuX2NvbnN0 KCh5eXZzcFswXS5saXRlcmFsKSksIGdlbl9vcF91bmJvdW5kKFNUT1JFViwganZfc3RyaW5nX3Zh bHVlKCh5eXZzcFswXS5saXRlcmFsKSkpKTsKLSB9Ci0tI2xpbmUgMzU4OCAic3JjL3BhcnNlci5j IgotKyNsaW5lIDM1NzggInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDEy OTogLyogT2JqUGF0OiBCSU5ESU5HICc6JyBQYXR0ZXJuICAqLwotLSNsaW5lIDgwNiAic3JjL3Bh cnNlci55IgotKyNsaW5lIDc5NiAic3JjL3BhcnNlci55IgotICAgICAgICAgICAgICAgICAgICAg ewotICAgKHl5dmFsLmJsaykgPSBnZW5fb2JqZWN0X21hdGNoZXIoZ2VuX2NvbnN0KCh5eXZzcFst Ml0ubGl0ZXJhbCkpLCBCTE9DSyhnZW5fb3Bfc2ltcGxlKERVUCksIGdlbl9vcF91bmJvdW5kKFNU T1JFViwganZfc3RyaW5nX3ZhbHVlKCh5eXZzcFstMl0ubGl0ZXJhbCkpKSwgKHl5dnNwWzBdLmJs aykpKTsKLSB9Ci0tI2xpbmUgMzU5NiAic3JjL3BhcnNlci5jIgotKyNsaW5lIDM1ODYgInNyYy9w YXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDEzMDogLyogT2JqUGF0OiBJREVOVCAn OicgUGF0dGVybiAgKi8KLS0jbGluZSA4MDkgInNyYy9wYXJzZXIueSIKLSsjbGluZSA3OTkgInNy Yy9wYXJzZXIueSIKLSAgICAgICAgICAgICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl9v YmplY3RfbWF0Y2hlcihnZW5fY29uc3QoKHl5dnNwWy0yXS5saXRlcmFsKSksICh5eXZzcFswXS5i bGspKTsKLSB9Ci0tI2xpbmUgMzYwNCAic3JjL3BhcnNlci5jIgotKyNsaW5lIDM1OTQgInNyYy9w YXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDEzMTogLyogT2JqUGF0OiBLZXl3b3Jk ICc6JyBQYXR0ZXJuICAqLwotLSNsaW5lIDgxMiAic3JjL3BhcnNlci55IgotKyNsaW5lIDgwMiAi c3JjL3BhcnNlci55IgotICAgICAgICAgICAgICAgICAgICAgewotICAgKHl5dmFsLmJsaykgPSBn ZW5fb2JqZWN0X21hdGNoZXIoZ2VuX2NvbnN0KCh5eXZzcFstMl0ubGl0ZXJhbCkpLCAoeXl2c3Bb MF0uYmxrKSk7Ci0gfQotLSNsaW5lIDM2MTIgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzNjAyICJz cmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSAxMzI6IC8qIE9ialBhdDogU3Ry aW5nICc6JyBQYXR0ZXJuICAqLwotLSNsaW5lIDgxNSAic3JjL3BhcnNlci55IgotKyNsaW5lIDgw NSAic3JjL3BhcnNlci55IgotICAgICAgICAgICAgICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9 IGdlbl9vYmplY3RfbWF0Y2hlcigoeXl2c3BbLTJdLmJsayksICh5eXZzcFswXS5ibGspKTsKLSB9 Ci0tI2xpbmUgMzYyMCAic3JjL3BhcnNlci5jIgotKyNsaW5lIDM2MTAgInNyYy9wYXJzZXIuYyIK LSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDEzMzogLyogT2JqUGF0OiAnKCcgUXVlcnkgJyknICc6 JyBQYXR0ZXJuICAqLwotLSNsaW5lIDgxOCAic3JjL3BhcnNlci55IgotKyNsaW5lIDgwOCAic3Jj L3BhcnNlci55IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgewotICAganYgbXNnID0gY2hl Y2tfb2JqZWN0X2tleSgoeXl2c3BbLTNdLmJsaykpOwotICAgaWYgKGp2X2lzX3ZhbGlkKG1zZykp IHsKLUBAIC0zNjI5LDI2NyArMzYxOSwyNjcgQEAgWVlMVFlQRSB5eWxsb2MgPSB5eWxvY19kZWZh dWx0OwotICAganZfZnJlZShtc2cpOwotICAgKHl5dmFsLmJsaykgPSBnZW5fb2JqZWN0X21hdGNo ZXIoKHl5dnNwWy0zXS5ibGspLCAoeXl2c3BbMF0uYmxrKSk7Ci0gfQotLSNsaW5lIDM2MzMgInNy Yy9wYXJzZXIuYyIKLSsjbGluZSAzNjIzICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAot ICAgY2FzZSAxMzQ6IC8qIE9ialBhdDogZXJyb3IgJzonIFBhdHRlcm4gICovCi0tI2xpbmUgODI2 ICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgODE2ICJzcmMvcGFyc2VyLnkiCi0gICAgICAgICAgICAg ICAgICAgewotICAgRkFJTCgoeXlsb2MpLCAiTWF5IG5lZWQgcGFyZW50aGVzZXMgYXJvdW5kIG9i amVjdCBrZXkgZXhwcmVzc2lvbiIpOwotICAgKHl5dmFsLmJsaykgPSAoeXl2c3BbMF0uYmxrKTsK LSB9Ci0tI2xpbmUgMzY0MiAic3JjL3BhcnNlci5jIgotKyNsaW5lIDM2MzIgInNyYy9wYXJzZXIu YyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDEzNTogLyogS2V5d29yZDogImFzIiAgKi8KLS0j bGluZSA4MzIgInNyYy9wYXJzZXIueSIKLSsjbGluZSA4MjIgInNyYy9wYXJzZXIueSIKLSAgICAg IHsKLSAgICh5eXZhbC5saXRlcmFsKSA9IGp2X3N0cmluZygiYXMiKTsKLSB9Ci0tI2xpbmUgMzY1 MCAic3JjL3BhcnNlci5jIgotKyNsaW5lIDM2NDAgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7 Ci0gCi0gICBjYXNlIDEzNjogLyogS2V5d29yZDogImRlZiIgICovCi0tI2xpbmUgODM1ICJzcmMv cGFyc2VyLnkiCi0rI2xpbmUgODI1ICJzcmMvcGFyc2VyLnkiCi0gICAgICAgewotICAgKHl5dmFs LmxpdGVyYWwpID0ganZfc3RyaW5nKCJkZWYiKTsKLSB9Ci0tI2xpbmUgMzY1OCAic3JjL3BhcnNl ci5jIgotKyNsaW5lIDM2NDggInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNl IDEzNzogLyogS2V5d29yZDogIm1vZHVsZSIgICovCi0tI2xpbmUgODM4ICJzcmMvcGFyc2VyLnki Ci0rI2xpbmUgODI4ICJzcmMvcGFyc2VyLnkiCi0gICAgICAgICAgewotICAgKHl5dmFsLmxpdGVy YWwpID0ganZfc3RyaW5nKCJtb2R1bGUiKTsKLSB9Ci0tI2xpbmUgMzY2NiAic3JjL3BhcnNlci5j IgotKyNsaW5lIDM2NTYgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDEz ODogLyogS2V5d29yZDogImltcG9ydCIgICovCi0tI2xpbmUgODQxICJzcmMvcGFyc2VyLnkiCi0r I2xpbmUgODMxICJzcmMvcGFyc2VyLnkiCi0gICAgICAgICAgewotICAgKHl5dmFsLmxpdGVyYWwp ID0ganZfc3RyaW5nKCJpbXBvcnQiKTsKLSB9Ci0tI2xpbmUgMzY3NCAic3JjL3BhcnNlci5jIgot KyNsaW5lIDM2NjQgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDEzOTog LyogS2V5d29yZDogImluY2x1ZGUiICAqLwotLSNsaW5lIDg0NCAic3JjL3BhcnNlci55IgotKyNs aW5lIDgzNCAic3JjL3BhcnNlci55IgotICAgICAgICAgICB7Ci0gICAoeXl2YWwubGl0ZXJhbCkg PSBqdl9zdHJpbmcoImluY2x1ZGUiKTsKLSB9Ci0tI2xpbmUgMzY4MiAic3JjL3BhcnNlci5jIgot KyNsaW5lIDM2NzIgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDE0MDog LyogS2V5d29yZDogImlmIiAgKi8KLS0jbGluZSA4NDcgInNyYy9wYXJzZXIueSIKLSsjbGluZSA4 MzcgInNyYy9wYXJzZXIueSIKLSAgICAgIHsKLSAgICh5eXZhbC5saXRlcmFsKSA9IGp2X3N0cmlu ZygiaWYiKTsKLSB9Ci0tI2xpbmUgMzY5MCAic3JjL3BhcnNlci5jIgotKyNsaW5lIDM2ODAgInNy Yy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDE0MTogLyogS2V5d29yZDogInRo ZW4iICAqLwotLSNsaW5lIDg1MCAic3JjL3BhcnNlci55IgotKyNsaW5lIDg0MCAic3JjL3BhcnNl ci55IgotICAgICAgICB7Ci0gICAoeXl2YWwubGl0ZXJhbCkgPSBqdl9zdHJpbmcoInRoZW4iKTsK LSB9Ci0tI2xpbmUgMzY5OCAic3JjL3BhcnNlci5jIgotKyNsaW5lIDM2ODggInNyYy9wYXJzZXIu YyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDE0MjogLyogS2V5d29yZDogImVsc2UiICAqLwot LSNsaW5lIDg1MyAic3JjL3BhcnNlci55IgotKyNsaW5lIDg0MyAic3JjL3BhcnNlci55IgotICAg ICAgICB7Ci0gICAoeXl2YWwubGl0ZXJhbCkgPSBqdl9zdHJpbmcoImVsc2UiKTsKLSB9Ci0tI2xp bmUgMzcwNiAic3JjL3BhcnNlci5jIgotKyNsaW5lIDM2OTYgInNyYy9wYXJzZXIuYyIKLSAgICAg YnJlYWs7Ci0gCi0gICBjYXNlIDE0MzogLyogS2V5d29yZDogImVsaWYiICAqLwotLSNsaW5lIDg1 NiAic3JjL3BhcnNlci55IgotKyNsaW5lIDg0NiAic3JjL3BhcnNlci55IgotICAgICAgICB7Ci0g ICAoeXl2YWwubGl0ZXJhbCkgPSBqdl9zdHJpbmcoImVsaWYiKTsKLSB9Ci0tI2xpbmUgMzcxNCAi c3JjL3BhcnNlci5jIgotKyNsaW5lIDM3MDQgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0g Ci0gICBjYXNlIDE0NDogLyogS2V5d29yZDogInJlZHVjZSIgICovCi0tI2xpbmUgODU5ICJzcmMv cGFyc2VyLnkiCi0rI2xpbmUgODQ5ICJzcmMvcGFyc2VyLnkiCi0gICAgICAgICAgewotICAgKHl5 dmFsLmxpdGVyYWwpID0ganZfc3RyaW5nKCJyZWR1Y2UiKTsKLSB9Ci0tI2xpbmUgMzcyMiAic3Jj L3BhcnNlci5jIgotKyNsaW5lIDM3MTIgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0g ICBjYXNlIDE0NTogLyogS2V5d29yZDogImZvcmVhY2giICAqLwotLSNsaW5lIDg2MiAic3JjL3Bh cnNlci55IgotKyNsaW5lIDg1MiAic3JjL3BhcnNlci55IgotICAgICAgICAgICB7Ci0gICAoeXl2 YWwubGl0ZXJhbCkgPSBqdl9zdHJpbmcoImZvcmVhY2giKTsKLSB9Ci0tI2xpbmUgMzczMCAic3Jj L3BhcnNlci5jIgotKyNsaW5lIDM3MjAgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0g ICBjYXNlIDE0NjogLyogS2V5d29yZDogImVuZCIgICovCi0tI2xpbmUgODY1ICJzcmMvcGFyc2Vy LnkiCi0rI2xpbmUgODU1ICJzcmMvcGFyc2VyLnkiCi0gICAgICAgewotICAgKHl5dmFsLmxpdGVy YWwpID0ganZfc3RyaW5nKCJlbmQiKTsKLSB9Ci0tI2xpbmUgMzczOCAic3JjL3BhcnNlci5jIgot KyNsaW5lIDM3MjggInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDE0Nzog LyogS2V5d29yZDogImFuZCIgICovCi0tI2xpbmUgODY4ICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUg ODU4ICJzcmMvcGFyc2VyLnkiCi0gICAgICAgewotICAgKHl5dmFsLmxpdGVyYWwpID0ganZfc3Ry aW5nKCJhbmQiKTsKLSB9Ci0tI2xpbmUgMzc0NiAic3JjL3BhcnNlci5jIgotKyNsaW5lIDM3MzYg InNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDE0ODogLyogS2V5d29yZDog Im9yIiAgKi8KLS0jbGluZSA4NzEgInNyYy9wYXJzZXIueSIKLSsjbGluZSA4NjEgInNyYy9wYXJz ZXIueSIKLSAgICAgIHsKLSAgICh5eXZhbC5saXRlcmFsKSA9IGp2X3N0cmluZygib3IiKTsKLSB9 Ci0tI2xpbmUgMzc1NCAic3JjL3BhcnNlci5jIgotKyNsaW5lIDM3NDQgInNyYy9wYXJzZXIuYyIK LSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDE0OTogLyogS2V5d29yZDogInRyeSIgICovCi0tI2xp bmUgODc0ICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgODY0ICJzcmMvcGFyc2VyLnkiCi0gICAgICAg ewotICAgKHl5dmFsLmxpdGVyYWwpID0ganZfc3RyaW5nKCJ0cnkiKTsKLSB9Ci0tI2xpbmUgMzc2 MiAic3JjL3BhcnNlci5jIgotKyNsaW5lIDM3NTIgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7 Ci0gCi0gICBjYXNlIDE1MDogLyogS2V5d29yZDogImNhdGNoIiAgKi8KLS0jbGluZSA4NzcgInNy Yy9wYXJzZXIueSIKLSsjbGluZSA4NjcgInNyYy9wYXJzZXIueSIKLSAgICAgICAgIHsKLSAgICh5 eXZhbC5saXRlcmFsKSA9IGp2X3N0cmluZygiY2F0Y2giKTsKLSB9Ci0tI2xpbmUgMzc3MCAic3Jj L3BhcnNlci5jIgotKyNsaW5lIDM3NjAgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0g ICBjYXNlIDE1MTogLyogS2V5d29yZDogImxhYmVsIiAgKi8KLS0jbGluZSA4ODAgInNyYy9wYXJz ZXIueSIKLSsjbGluZSA4NzAgInNyYy9wYXJzZXIueSIKLSAgICAgICAgIHsKLSAgICh5eXZhbC5s aXRlcmFsKSA9IGp2X3N0cmluZygibGFiZWwiKTsKLSB9Ci0tI2xpbmUgMzc3OCAic3JjL3BhcnNl ci5jIgotKyNsaW5lIDM3NjggInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNl IDE1MjogLyogS2V5d29yZDogImJyZWFrIiAgKi8KLS0jbGluZSA4ODMgInNyYy9wYXJzZXIueSIK LSsjbGluZSA4NzMgInNyYy9wYXJzZXIueSIKLSAgICAgICAgIHsKLSAgICh5eXZhbC5saXRlcmFs KSA9IGp2X3N0cmluZygiYnJlYWsiKTsKLSB9Ci0tI2xpbmUgMzc4NiAic3JjL3BhcnNlci5jIgot KyNsaW5lIDM3NzYgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDE1Mzog LyogRGljdFBhaXJzOiAlZW1wdHkgICovCi0tI2xpbmUgODg5ICJzcmMvcGFyc2VyLnkiCi0rI2xp bmUgODc5ICJzcmMvcGFyc2VyLnkiCi0gICAgICAgIHsKLSAgICh5eXZhbC5ibGspID0gZ2VuX25v b3AoKTsKLSB9Ci0tI2xpbmUgMzc5NCAic3JjL3BhcnNlci5jIgotKyNsaW5lIDM3ODQgInNyYy9w YXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDE1NDogLyogRGljdFBhaXJzOiBEaWN0 UGFpciAgKi8KLS0jbGluZSA4OTIgInNyYy9wYXJzZXIueSIKLSsjbGluZSA4ODIgInNyYy9wYXJz ZXIueSIKLSAgICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9ICh5eXZzcFswXS5ibGspOwotIH0K LS0jbGluZSAzODAyICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMzc5MiAic3JjL3BhcnNlci5jIgot ICAgICBicmVhazsKLSAKLSAgIGNhc2UgMTU1OiAvKiBEaWN0UGFpcnM6IERpY3RQYWlyICcsJyBE aWN0UGFpcnMgICovCi0tI2xpbmUgODk1ICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgODg1ICJzcmMv cGFyc2VyLnkiCi0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IGJs b2NrX2pvaW4oKHl5dnNwWy0yXS5ibGspLCAoeXl2c3BbMF0uYmxrKSk7Ci0gfQotLSNsaW5lIDM4 MTAgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzODAwICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFr OwotIAotICAgY2FzZSAxNTY6IC8qIERpY3RQYWlyOiBJREVOVCAnOicgRGljdEV4cHIgICovCi0t I2xpbmUgOTAwICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgODkwICJzcmMvcGFyc2VyLnkiCi0gICAg ICAgICAgICAgICAgICAgIHsKLSAgICh5eXZhbC5ibGspID0gZ2VuX2RpY3RwYWlyKGdlbl9jb25z dCgoeXl2c3BbLTJdLmxpdGVyYWwpKSwgKHl5dnNwWzBdLmJsaykpOwotIH0KLS0jbGluZSAzODE4 ICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMzgwOCAic3JjL3BhcnNlci5jIgotICAgICBicmVhazsK LSAKLSAgIGNhc2UgMTU3OiAvKiBEaWN0UGFpcjogS2V5d29yZCAnOicgRGljdEV4cHIgICovCi0t I2xpbmUgOTAzICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgODkzICJzcmMvcGFyc2VyLnkiCi0gICAg ICAgICAgICAgICAgICAgICAgewotICAgKHl5dmFsLmJsaykgPSBnZW5fZGljdHBhaXIoZ2VuX2Nv bnN0KCh5eXZzcFstMl0ubGl0ZXJhbCkpLCAoeXl2c3BbMF0uYmxrKSk7Ci0gfQotLSNsaW5lIDM4 MjYgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzODE2ICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFr OwotIAotICAgY2FzZSAxNTg6IC8qIERpY3RQYWlyOiBTdHJpbmcgJzonIERpY3RFeHByICAqLwot LSNsaW5lIDkwNiAic3JjL3BhcnNlci55IgotKyNsaW5lIDg5NiAic3JjL3BhcnNlci55IgotICAg ICAgICAgICAgICAgICAgICAgewotICAgKHl5dmFsLmJsaykgPSBnZW5fZGljdHBhaXIoKHl5dnNw Wy0yXS5ibGspLCAoeXl2c3BbMF0uYmxrKSk7Ci0gfQotLSNsaW5lIDM4MzQgInNyYy9wYXJzZXIu YyIKLSsjbGluZSAzODI0ICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSAx NTk6IC8qIERpY3RQYWlyOiBTdHJpbmcgICovCi0tI2xpbmUgOTA5ICJzcmMvcGFyc2VyLnkiCi0r I2xpbmUgODk5ICJzcmMvcGFyc2VyLnkiCi0gICAgICAgIHsKLSAgICh5eXZhbC5ibGspID0gZ2Vu X2RpY3RwYWlyKCh5eXZzcFswXS5ibGspLCBCTE9DSyhnZW5fb3Bfc2ltcGxlKFBPUCksIGdlbl9v cF9zaW1wbGUoRFVQMiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuX29wX3Np bXBsZShEVVAyKSwgZ2VuX29wX3NpbXBsZShJTkRFWCkpKTsKLSB9Ci0tI2xpbmUgMzg0MyAic3Jj L3BhcnNlci5jIgotKyNsaW5lIDM4MzMgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0g ICBjYXNlIDE2MDogLyogRGljdFBhaXI6IEJJTkRJTkcgJzonIERpY3RFeHByICAqLwotLSNsaW5l IDkxMyAic3JjL3BhcnNlci55IgotKyNsaW5lIDkwMyAic3JjL3BhcnNlci55IgotICAgICAgICAg ICAgICAgICAgICAgIHsKLSAgICh5eXZhbC5ibGspID0gZ2VuX2RpY3RwYWlyKGdlbl9sb2NhdGlv bigoeXlsb2MpLCBsb2NhdGlvbnMsIGdlbl9vcF91bmJvdW5kKExPQURWLCBqdl9zdHJpbmdfdmFs dWUoKHl5dnNwWy0yXS5saXRlcmFsKSkpKSwKLSAgICAgICAgICAgICAgICAgICAgICh5eXZzcFsw XS5ibGspKTsKLSAgIGp2X2ZyZWUoKHl5dnNwWy0yXS5saXRlcmFsKSk7Ci0gfQotLSNsaW5lIDM4 NTMgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzODQzICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFr OwotIAotICAgY2FzZSAxNjE6IC8qIERpY3RQYWlyOiBCSU5ESU5HICAqLwotLSNsaW5lIDkxOCAi c3JjL3BhcnNlci55IgotKyNsaW5lIDkwOCAic3JjL3BhcnNlci55IgotICAgICAgICAgewotICAg KHl5dmFsLmJsaykgPSBnZW5fZGljdHBhaXIoZ2VuX2NvbnN0KCh5eXZzcFswXS5saXRlcmFsKSks Ci0gICAgICAgICAgICAgICAgICAgICBnZW5fbG9jYXRpb24oKHl5bG9jKSwgbG9jYXRpb25zLCBn ZW5fb3BfdW5ib3VuZChMT0FEViwganZfc3RyaW5nX3ZhbHVlKCh5eXZzcFswXS5saXRlcmFsKSkp KSk7Ci0gfQotLSNsaW5lIDM4NjIgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzODUyICJzcmMvcGFy c2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSAxNjI6IC8qIERpY3RQYWlyOiBJREVOVCAg Ki8KLS0jbGluZSA5MjIgInNyYy9wYXJzZXIueSIKLSsjbGluZSA5MTIgInNyYy9wYXJzZXIueSIK LSAgICAgICB7Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl9kaWN0cGFpcihnZW5fY29uc3QoanZfY29w eSgoeXl2c3BbMF0ubGl0ZXJhbCkpKSwKLSAgICAgICAgICAgICAgICAgICAgIGdlbl9pbmRleChn ZW5fbm9vcCgpLCBnZW5fY29uc3QoKHl5dnNwWzBdLmxpdGVyYWwpKSkpOwotIH0KLS0jbGluZSAz ODcxICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMzg2MSAic3JjL3BhcnNlci5jIgotICAgICBicmVh azsKLSAKLSAgIGNhc2UgMTYzOiAvKiBEaWN0UGFpcjogIiRfX2xvY19fIiAgKi8KLS0jbGluZSA5 MjYgInNyYy9wYXJzZXIueSIKLSsjbGluZSA5MTYgInNyYy9wYXJzZXIueSIKLSAgICAgICAgICAg IHsKLSAgICh5eXZhbC5ibGspID0gZ2VuX2RpY3RwYWlyKGdlbl9jb25zdChqdl9zdHJpbmcoIl9f bG9jX18iKSksCi0gICAgICAgICAgICAgICAgICAgICBnZW5fbG9jX29iamVjdCgmKHl5bG9jKSwg bG9jYXRpb25zKSk7Ci0gfQotLSNsaW5lIDM4ODAgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzODcw ICJzcmMvcGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSAxNjQ6IC8qIERpY3RQYWly OiBLZXl3b3JkICAqLwotLSNsaW5lIDkzMCAic3JjL3BhcnNlci55IgotKyNsaW5lIDkyMCAic3Jj L3BhcnNlci55IgotICAgICAgICAgewotICAgKHl5dmFsLmJsaykgPSBnZW5fZGljdHBhaXIoZ2Vu X2NvbnN0KGp2X2NvcHkoKHl5dnNwWzBdLmxpdGVyYWwpKSksCi0gICAgICAgICAgICAgICAgICAg ICBnZW5faW5kZXgoZ2VuX25vb3AoKSwgZ2VuX2NvbnN0KCh5eXZzcFswXS5saXRlcmFsKSkpKTsK LSB9Ci0tI2xpbmUgMzg4OSAic3JjL3BhcnNlci5jIgotKyNsaW5lIDM4NzkgInNyYy9wYXJzZXIu YyIKLSAgICAgYnJlYWs7Ci0gCi0gICBjYXNlIDE2NTogLyogRGljdFBhaXI6ICcoJyBRdWVyeSAn KScgJzonIERpY3RFeHByICAqLwotLSNsaW5lIDkzNCAic3JjL3BhcnNlci55IgotKyNsaW5lIDky NCAic3JjL3BhcnNlci55IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgIGp2IG1z ZyA9IGNoZWNrX29iamVjdF9rZXkoKHl5dnNwWy0zXS5ibGspKTsKLSAgIGlmIChqdl9pc192YWxp ZChtc2cpKSB7Ci1AQCAtMzg5OCwzNiArMzg4OCwzNiBAQCBZWUxUWVBFIHl5bGxvYyA9IHl5bG9j X2RlZmF1bHQ7Ci0gICBqdl9mcmVlKG1zZyk7Ci0gICAoeXl2YWwuYmxrKSA9IGdlbl9kaWN0cGFp cigoeXl2c3BbLTNdLmJsayksICh5eXZzcFswXS5ibGspKTsKLSB9Ci0tI2xpbmUgMzkwMiAic3Jj L3BhcnNlci5jIgotKyNsaW5lIDM4OTIgInNyYy9wYXJzZXIuYyIKLSAgICAgYnJlYWs7Ci0gCi0g ICBjYXNlIDE2NjogLyogRGljdFBhaXI6IGVycm9yICc6JyBEaWN0RXhwciAgKi8KLS0jbGluZSA5 NDIgInNyYy9wYXJzZXIueSIKLSsjbGluZSA5MzIgInNyYy9wYXJzZXIueSIKLSAgICAgICAgICAg ICAgICAgICAgewotICAgRkFJTCgoeXlsc3BbLTJdKSwgIk1heSBuZWVkIHBhcmVudGhlc2VzIGFy b3VuZCBvYmplY3Qga2V5IGV4cHJlc3Npb24iKTsKLSAgICh5eXZhbC5ibGspID0gKHl5dnNwWzBd LmJsayk7Ci0gfQotLSNsaW5lIDM5MTEgInNyYy9wYXJzZXIuYyIKLSsjbGluZSAzOTAxICJzcmMv cGFyc2VyLmMiCi0gICAgIGJyZWFrOwotIAotICAgY2FzZSAxNjc6IC8qIERpY3RFeHByOiBEaWN0 RXhwciAnfCcgRGljdEV4cHIgICovCi0tI2xpbmUgOTQ4ICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUg OTM4ICJzcmMvcGFyc2VyLnkiCi0gICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICh5eXZhbC5i bGspID0gYmxvY2tfam9pbigoeXl2c3BbLTJdLmJsayksICh5eXZzcFswXS5ibGspKTsKLSB9Ci0t I2xpbmUgMzkxOSAic3JjL3BhcnNlci5jIgotKyNsaW5lIDM5MDkgInNyYy9wYXJzZXIuYyIKLSAg ICAgYnJlYWs7Ci0gCi0gICBjYXNlIDE2ODogLyogRGljdEV4cHI6IEV4cHIgICovCi0tI2xpbmUg OTUxICJzcmMvcGFyc2VyLnkiCi0rI2xpbmUgOTQxICJzcmMvcGFyc2VyLnkiCi0gICAgICB7Ci0g ICAoeXl2YWwuYmxrKSA9ICh5eXZzcFswXS5ibGspOwotIH0KLS0jbGluZSAzOTI3ICJzcmMvcGFy c2VyLmMiCi0rI2xpbmUgMzkxNyAic3JjL3BhcnNlci5jIgotICAgICBicmVhazsKLSAKLSAKLS0j bGluZSAzOTMxICJzcmMvcGFyc2VyLmMiCi0rI2xpbmUgMzkyMSAic3JjL3BhcnNlci5jIgotIAot ICAgICAgIGRlZmF1bHQ6IGJyZWFrOwotICAgICB9Ci1AQCAtNDE1Niw3ICs0MTQ2LDcgQEAgWVlM VFlQRSB5eWxsb2MgPSB5eWxvY19kZWZhdWx0OwotICAgcmV0dXJuIHl5cmVzdWx0OwotIH0KLSAK LS0jbGluZSA5NTQgInNyYy9wYXJzZXIueSIKLSsjbGluZSA5NDQgInNyYy9wYXJzZXIueSIKLSAK LSAKLSBpbnQganFfcGFyc2Uoc3RydWN0IGxvY2ZpbGUqIGxvY2F0aW9ucywgYmxvY2sqIGFuc3dl cikgewotZGlmZiAtLWdpdCBhL3NyYy9wYXJzZXIueSBiL3NyYy9wYXJzZXIueQotaW5kZXggOTg3 YTRlY2FhMy4uZWNkNTc5NjU2MSAxMDA2NDQKLS0tLSBhL3NyYy9wYXJzZXIueQotKysrIGIvc3Jj L3BhcnNlci55Ci1AQCAtNDM5LDI2ICs0MzksMTYgQEAgSW1wb3J0V2hhdCBRdWVyeSAnOycgewot IAotIEltcG9ydFdoYXQ6Ci0gImltcG9ydCIgSW1wb3J0RnJvbSAiYXMiIEJJTkRJTkcgewotLSAg anYgdiA9IGJsb2NrX2NvbnN0KCQyKTsKLS0gIC8vIFhYWCBNYWtlIGdlbl9pbXBvcnQgdGFrZSBv bmx5IGJsb2NrcyBhbmQgdGhlIGludCBpc19kYXRhIHNvIHdlCi0tICAvLyBkb24ndCBoYXZlIHRv IGZyZWUgc28gbXVjaCBzdHVmZiBoZXJlCi0tICAkJCA9IGdlbl9pbXBvcnQoanZfc3RyaW5nX3Zh bHVlKHYpLCBqdl9zdHJpbmdfdmFsdWUoJDQpLCAxKTsKLSsgICQkID0gZ2VuX2ltcG9ydChibG9j a19jb25zdCgkMiksICQ0LCAxKTsKLSAgIGJsb2NrX2ZyZWUoJDIpOwotLSAganZfZnJlZSgkNCk7 Ci0tICBqdl9mcmVlKHYpOwotIH0gfAotICJpbXBvcnQiIEltcG9ydEZyb20gImFzIiBJREVOVCB7 Ci0tICBqdiB2ID0gYmxvY2tfY29uc3QoJDIpOwotLSAgJCQgPSBnZW5faW1wb3J0KGp2X3N0cmlu Z192YWx1ZSh2KSwganZfc3RyaW5nX3ZhbHVlKCQ0KSwgMCk7Ci0rICAkJCA9IGdlbl9pbXBvcnQo YmxvY2tfY29uc3QoJDIpLCAkNCwgMCk7Ci0gICBibG9ja19mcmVlKCQyKTsKLS0gIGp2X2ZyZWUo JDQpOwotLSAganZfZnJlZSh2KTsKLSB9IHwKLSAiaW5jbHVkZSIgSW1wb3J0RnJvbSB7Ci0tICBq diB2ID0gYmxvY2tfY29uc3QoJDIpOwotLSAgJCQgPSBnZW5faW1wb3J0KGp2X3N0cmluZ192YWx1 ZSh2KSwgTlVMTCwgMCk7Ci0rICAkJCA9IGdlbl9pbXBvcnQoYmxvY2tfY29uc3QoJDIpLCBqdl9p bnZhbGlkKCksIDApOwotICAgYmxvY2tfZnJlZSgkMik7Ci0tICBqdl9mcmVlKHYpOwotIH0KLSAK LSBJbXBvcnRGcm9tOgpkaWZmIC0tZ2l0IGEvcGFja2FnZS9qcS8wMDExLWxpbWl0LXJlY3Vyc2l2 ZS1vYmplY3QtbWVyZ2UtZGVwdGgtdG8tcHJldmVudC1zdGFjay1vdmVyZmxvdy5wYXRjaCBiL3Bh Y2thZ2UvanEvMDAxMS1saW1pdC1yZWN1cnNpdmUtb2JqZWN0LW1lcmdlLWRlcHRoLXRvLXByZXZl bnQtc3RhY2stb3ZlcmZsb3cucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVm MmYxMGQ4YWYuLjAwMDAwMDAwMDAKLS0tIGEvcGFja2FnZS9qcS8wMDExLWxpbWl0LXJlY3Vyc2l2 ZS1vYmplY3QtbWVyZ2UtZGVwdGgtdG8tcHJldmVudC1zdGFjay1vdmVyZmxvdy5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLUZyb20gNTMyY2NlYTYwODBlZDY3NThmMzlmZTlm NjIwOGE0NGI2NjUwMjNkMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGl0Y2h5bnkg PGl0Y2h5bnlAY3lib3p1LmNvLmpwPgotRGF0ZTogVHVlLCA1IE1heSAyMDI2IDIyOjQ0OjAyICsw OTAwCi1TdWJqZWN0OiBbUEFUQ0hdIExpbWl0IHJlY3Vyc2l2ZSBvYmplY3QgbWVyZ2UgZGVwdGgg dG8gcHJldmVudCBzdGFjayBvdmVyZmxvdwotCi1UaGlzIGZpeGVzIENWRS0yMDI2LTQzODk2Lgot Ci1DVkU6IENWRS0yMDI2LTQzODk2Ci1VcHN0cmVhbTogaHR0cHM6Ly9naXRodWIuY29tL2pxbGFu Zy9qcS9jb21taXQvNTMyY2NlYTYwODBlZDY3NThmMzlmZTlmNjIwOGE0NGI2NjUwMjNkMgotU2ln bmVkLW9mZi1ieTogVGhvbWFzIFBlcmFsZSA8dGhvbWFzLnBlcmFsZUBtaW5kLmJlPgotLS0tCi0g c3JjL2p2LmMgICAgICB8IDI1ICsrKysrKysrKysrKysrKysrKysrKysrLS0KLSB0ZXN0cy9qcS50 ZXN0IHwgIDkgKysrKysrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2p2LmMgYi9zcmMvanYuYwotaW5kZXgg ZmViNjhkMWExYy4uODRmYWZlZjY2NiAxMDA2NDQKLS0tLSBhL3NyYy9qdi5jCi0rKysgYi9zcmMv anYuYwotQEAgLTE5MzMsMTYgKzE5MzMsMzMgQEAganYganZfb2JqZWN0X21lcmdlKGp2IGEsIGp2 IGIpIHsKLSAgIHJldHVybiBhOwotIH0KLSAKLS1qdiBqdl9vYmplY3RfbWVyZ2VfcmVjdXJzaXZl KGp2IGEsIGp2IGIpIHsKLSsjaWZuZGVmIE1BWF9PQkpFQ1RfTUVSR0VfREVQVEgKLSsjZGVmaW5l IE1BWF9PQkpFQ1RfTUVSR0VfREVQVEggKDEwMDAwKQotKyNlbmRpZgotKwotK3N0YXRpYyBqdiBq dnBfb2JqZWN0X21lcmdlX3JlY3Vyc2l2ZShqdiBhLCBqdiBiLCBpbnQgZGVwdGgpIHsKLSAgIGFz c2VydChKVlBfSEFTX0tJTkQoYSwgSlZfS0lORF9PQkpFQ1QpKTsKLSAgIGFzc2VydChKVlBfSEFT X0tJTkQoYiwgSlZfS0lORF9PQkpFQ1QpKTsKLSAKLSsgIGlmIChkZXB0aCA+IE1BWF9PQkpFQ1Rf TUVSR0VfREVQVEgpIHsKLSsgICAganZfZnJlZShhKTsKLSsgICAganZfZnJlZShiKTsKLSsgICAg cmV0dXJuIGp2X2ludmFsaWRfd2l0aF9tc2coanZfc3RyaW5nKCJPYmplY3QgbWVyZ2UgdG9vIGRl ZXAiKSk7Ci0rICB9Ci0rCi0gICBqdl9vYmplY3RfZm9yZWFjaChiLCBrLCB2KSB7Ci0gICAgIGp2 IGVsZW0gPSBqdl9vYmplY3RfZ2V0KGp2X2NvcHkoYSksIGp2X2NvcHkoaykpOwotICAgICBpZiAo anZfaXNfdmFsaWQoZWxlbSkgJiYKLSAgICAgICAgIEpWUF9IQVNfS0lORChlbGVtLCBKVl9LSU5E X09CSkVDVCkgJiYKLSAgICAgICAgIEpWUF9IQVNfS0lORCh2LCBKVl9LSU5EX09CSkVDVCkpIHsK LS0gICAgICBhID0ganZfb2JqZWN0X3NldChhLCBrLCBqdl9vYmplY3RfbWVyZ2VfcmVjdXJzaXZl KGVsZW0sIHYpKTsKLSsgICAgICBqdiBtZXJnZWQgPSBqdnBfb2JqZWN0X21lcmdlX3JlY3Vyc2l2 ZShlbGVtLCB2LCBkZXB0aCArIDEpOwotKyAgICAgIGlmICghanZfaXNfdmFsaWQobWVyZ2VkKSkg ewotKyAgICAgICAganZfZnJlZShrKTsKLSsgICAgICAgIGp2X2ZyZWUoYSk7Ci0rICAgICAgICBq dl9mcmVlKGIpOwotKyAgICAgICAgcmV0dXJuIG1lcmdlZDsKLSsgICAgICB9Ci0rICAgICAgYSA9 IGp2X29iamVjdF9zZXQoYSwgaywgbWVyZ2VkKTsKLSAgICAgfSBlbHNlIHsKLSAgICAgICBqdl9m cmVlKGVsZW0pOwotICAgICAgIGEgPSBqdl9vYmplY3Rfc2V0KGEsIGssIHYpOwotQEAgLTE5NTMs NiArMTk3MCwxMCBAQCBqdiBqdl9vYmplY3RfbWVyZ2VfcmVjdXJzaXZlKGp2IGEsIGp2IGIpIHsK LSAgIHJldHVybiBhOwotIH0KLSAKLStqdiBqdl9vYmplY3RfbWVyZ2VfcmVjdXJzaXZlKGp2IGEs IGp2IGIpIHsKLSsgIHJldHVybiBqdnBfb2JqZWN0X21lcmdlX3JlY3Vyc2l2ZShhLCBiLCAwKTsK LSt9Ci0rCi0gLyoKLSAgKiBPYmplY3QgaXRlcmF0aW9uIChpbnRlcm5hbCBoZWxwZXJzKQotICAq LwpkaWZmIC0tZ2l0IGEvcGFja2FnZS9qcS8wMDEyLWRldGVjdC1jaXJjdWxhci1tb2R1bGUtaW1w b3J0cy10by1wcmV2ZW50LXN0YWNrLW92ZXJmbG93LnBhdGNoIGIvcGFja2FnZS9qcS8wMDEyLWRl dGVjdC1jaXJjdWxhci1tb2R1bGUtaW1wb3J0cy10by1wcmV2ZW50LXN0YWNrLW92ZXJmbG93LnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTgyYTNhNzQ0Li4wMDAwMDAwMDAw Ci0tLSBhL3BhY2thZ2UvanEvMDAxMi1kZXRlY3QtY2lyY3VsYXItbW9kdWxlLWltcG9ydHMtdG8t cHJldmVudC1zdGFjay1vdmVyZmxvdy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE0MiArMCww IEBACi1Gcm9tIGY1ODc4N2M0MTgzNWQ5YjE3Nzk1NzMwY2IwNDkyNWZkYmEyNWM3MWMgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBpdGNoeW55IDxpdGNoeW55QGN5Ym96dS5jby5qcD4K LURhdGU6IE1vbiwgMTEgTWF5IDIwMjYgMjA6NDE6MzggKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0g RGV0ZWN0IGNpcmN1bGFyIG1vZHVsZSBpbXBvcnRzIHRvIHByZXZlbnQgc3RhY2sgb3ZlcmZsb3cK LQotanEgdXNlZCB0byByZWN1cnNlIHdpdGhvdXQgYm91bmQgb24gbXV0dWFsIG9yIHNlbGYtcmVm ZXJlbnRpYWwKLWBpbXBvcnRgIGRlY2xhcmF0aW9ucywgZXhoYXVzdGluZyB0aGUgc3RhY2suIFRy YWNrIGVhY2ggbGlicmFyeSdzCi1sb2FkIHN0YXRlIHdpdGggYSBgbG9hZGluZ2AgZmxhZyBzZXQg YmVmb3JlIGl0cyBkZXBlbmRlbmNpZXMgYXJlCi1wcm9jZXNzZWQ7IGEgcmVjdXJzaXZlIHJlZmVy ZW5jZSB0byBhbiBpbi1wcm9ncmVzcyBsaWJyYXJ5IG5vdwotcmVwb3J0cyAiY2lyY3VsYXIgaW1w b3J0IG9mIFgiLgotCi1GaXhlcyBDVkUtMjAyNi00NDc3Ny4KLQotQ1ZFOiBDVkUtMjAyNi00NDc3 NwotVXBzdHJlYW06IGh0dHBzOi8vZ2l0aHViLmNvbS9qcWxhbmcvanEvY29tbWl0L2Y1ODc4N2M0 MTgzNWQ5YjE3Nzk1NzMwY2IwNDkyNWZkYmEyNWM3MWMKLVNpZ25lZC1vZmYtYnk6IFRob21hcyBQ ZXJhbGUgPHRob21hcy5wZXJhbGVAbWluZC5iZT4KLS0tLQotIHNyYy9saW5rZXIuYyAgICAgICAg ICAgICAgICB8IDU5ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KLSA2IGZp bGVzIGNoYW5nZWQsIDcwIGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvc3JjL2xpbmtlci5jIGIvc3JjL2xpbmtlci5jCi1pbmRleCBlOTAyNzAwNGNjLi4wM2Y0 NmRiMDVjIDEwMDY0NAotLS0tIGEvc3JjL2xpbmtlci5jCi0rKysgYi9zcmMvbGlua2VyLmMKLUBA IC0yMSw5ICsyMSwxMyBAQAotICNpbmNsdWRlICJjb21waWxlLmgiCi0gI2luY2x1ZGUgImp2X2Fs bG9jLmgiCi0gCi0rc3RydWN0IGxpYl9lbnRyeSB7Ci0rICBjaGFyICpuYW1lOwotKyAgYmxvY2sg ZGVmOwotKyAgaW50IGxvYWRpbmc7Ci0rfTsKLSBzdHJ1Y3QgbGliX2xvYWRpbmdfc3RhdGUgewot LSAgY2hhciAqKm5hbWVzOwotLSAgYmxvY2sgKmRlZnM7Ci0rICBzdHJ1Y3QgbGliX2VudHJ5ICpl bnRyaWVzOwotICAgdWludDY0X3QgY3Q7Ci0gfTsKLSBzdGF0aWMgaW50IGxvYWRfbGlicmFyeShq cV9zdGF0ZSAqanEsIGp2IGxpYl9wYXRoLAotQEAgLTMwMywxNCArMzA3LDI0IEBAIHN0YXRpYyBp bnQgcHJvY2Vzc19kZXBlbmRlbmNpZXMoanFfc3RhdGUgKmpxLCBqdiBqcV9vcmlnaW4sIGp2IGxp Yl9vcmlnaW4sIGJsb2NrCi0gICAgIH0gZWxzZSB7Ci0gICAgICAgdWludDY0X3Qgc3RhdGVfaWR4 ID0gMDsKLSAgICAgICBmb3IgKDsgc3RhdGVfaWR4IDwgbGliX3N0YXRlLT5jdDsgKytzdGF0ZV9p ZHgpIHsKLS0gICAgICAgIGlmIChzdHJjbXAobGliX3N0YXRlLT5uYW1lc1tzdGF0ZV9pZHhdLGp2 X3N0cmluZ192YWx1ZShyZXNvbHZlZCkpID09IDApCi0rICAgICAgICBpZiAoc3RyY21wKGxpYl9z dGF0ZS0+ZW50cmllc1tzdGF0ZV9pZHhdLm5hbWUsIGp2X3N0cmluZ192YWx1ZShyZXNvbHZlZCkp ID09IDApCi0gICAgICAgICAgIGJyZWFrOwotICAgICAgIH0KLSAKLSAgICAgICBpZiAoc3RhdGVf aWR4IDwgbGliX3N0YXRlLT5jdCkgeyAvLyBGb3VuZAotKyAgICAgICAgaWYgKGxpYl9zdGF0ZS0+ ZW50cmllc1tzdGF0ZV9pZHhdLmxvYWRpbmcpIHsKLSsgICAgICAgICAganFfcmVwb3J0X2Vycm9y KGpxLCBqdl9zdHJpbmdfZm10KCJqcTogZXJyb3I6IGNpcmN1bGFyIGltcG9ydCBvZiAlc1xuIiwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp2X3N0cmluZ192 YWx1ZShyZXNvbHZlZCkpKTsKLSsgICAgICAgICAganZfZnJlZShyZXNvbHZlZCk7Ci0rICAgICAg ICAgIGp2X2ZyZWUoYXMpOwotKyAgICAgICAgICBqdl9mcmVlKGRlcHMpOwotKyAgICAgICAgICBq dl9mcmVlKGpxX29yaWdpbik7Ci0rICAgICAgICAgIGp2X2ZyZWUobGliX29yaWdpbik7Ci0rICAg ICAgICAgIHJldHVybiAxOwotKyAgICAgICAgfQotICAgICAgICAganZfZnJlZShyZXNvbHZlZCk7 Ci0gICAgICAgICAvLyBCaW5kIHRoZSBsaWJyYXJ5IHRvIHRoZSBwcm9ncmFtCi0tICAgICAgICBi ayA9IGJsb2NrX2JpbmRfbGlicmFyeShsaWJfc3RhdGUtPmRlZnNbc3RhdGVfaWR4XSwgYmssIE9Q X0lTX0NBTExfUFNFVURPLCBhc19zdHIpOwotKyAgICAgICAgYmsgPSBibG9ja19iaW5kX2xpYnJh cnkobGliX3N0YXRlLT5lbnRyaWVzW3N0YXRlX2lkeF0uZGVmLCBiaywgT1BfSVNfQ0FMTF9QU0VV RE8sIGFzX3N0cik7Ci0gICAgICAgfSBlbHNlIHsgLy8gTm90IGZvdW5kLiAgIEFkZCBpdCB0byB0 aGUgdGFibGUgYmVmb3JlIGJpbmRpbmcuCi0gICAgICAgICBibG9jayBkZXBfZGVmX2Jsb2NrID0g Z2VuX25vb3AoKTsKLSAgICAgICAgIG5lcnJvcnMgKz0gbG9hZF9saWJyYXJ5KGpxLCByZXNvbHZl ZCwgaXNfZGF0YSwgcmF3LCBvcHRpb25hbCwgYXNfc3RyLCAmZGVwX2RlZl9ibG9jaywgbGliX3N0 YXRlKTsKLUBAIC0zNTIsMzAgKzM2NiwzOCBAQCBzdGF0aWMgaW50IGxvYWRfbGlicmFyeShqcV9z dGF0ZSAqanEsIGp2IGxpYl9wYXRoLCBpbnQgaXNfZGF0YSwgaW50IHJhdywgaW50IG9wdAotICAg ICAgIGpxX3JlcG9ydF9lcnJvcihqcSwganZfc3RyaW5nX2ZtdCgianE6IGVycm9yIGxvYWRpbmcg ZGF0YSBmaWxlICVzOiAlc1xuIiwganZfc3RyaW5nX3ZhbHVlKGxpYl9wYXRoKSwganZfc3RyaW5n X3ZhbHVlKGRhdGEpKSk7Ci0gICAgICAgbmVycm9ycysrOwotICAgICB9Ci0tICAgIGdvdG8gb3V0 OwotICAgfSBlbHNlIGlmIChpc19kYXRhKSB7Ci0gICAgIC8vIGltcG9ydCAiZm9vIiBhcyAkYmFy OwotICAgICBwcm9ncmFtID0gZ2VuX2NvbnN0X2dsb2JhbChqdl9jb3B5KGRhdGEpLCBhcyk7Ci0r ICAgIHN0YXRlX2lkeCA9IGxpYl9zdGF0ZS0+Y3QrKzsKLSsgICAgbGliX3N0YXRlLT5lbnRyaWVz ID0ganZfbWVtX3JlYWxsb2MobGliX3N0YXRlLT5lbnRyaWVzLCBsaWJfc3RhdGUtPmN0ICogc2l6 ZW9mKHN0cnVjdCBsaWJfZW50cnkpKTsKLSsgICAgbGliX3N0YXRlLT5lbnRyaWVzW3N0YXRlX2lk eF0ubmFtZSA9IHN0cmR1cChqdl9zdHJpbmdfdmFsdWUobGliX3BhdGgpKTsKLSsgICAgbGliX3N0 YXRlLT5lbnRyaWVzW3N0YXRlX2lkeF0uZGVmID0gcHJvZ3JhbTsKLSsgICAgbGliX3N0YXRlLT5l bnRyaWVzW3N0YXRlX2lkeF0ubG9hZGluZyA9IDA7Ci0gICB9IGVsc2UgewotICAgICAvLyBpbXBv cnQgImZvbyIgYXMgYmFyOwotICAgICBzcmMgPSBsb2NmaWxlX2luaXQoanEsIGp2X3N0cmluZ192 YWx1ZShsaWJfcGF0aCksIGp2X3N0cmluZ192YWx1ZShkYXRhKSwganZfc3RyaW5nX2xlbmd0aF9i eXRlcyhqdl9jb3B5KGRhdGEpKSk7Ci0gICAgIG5lcnJvcnMgKz0ganFfcGFyc2VfbGlicmFyeShz cmMsICZwcm9ncmFtKTsKLSAgICAgbG9jZmlsZV9mcmVlKHNyYyk7Ci0gICAgIGlmIChuZXJyb3Jz ID09IDApIHsKLSsgICAgICAvLyBSZWdpc3RlciB0aGUgbGlicmFyeSBiZWZvcmUgcHJvY2Vzc2lu ZyBpdHMgZGVwZW5kZW5jaWVzIHNvIHRoYXQKLSsgICAgICAvLyBjaXJjdWxhciBpbXBvcnRzIGNh biBiZSBkZXRlY3RlZC4KLSsgICAgICBzdGF0ZV9pZHggPSBsaWJfc3RhdGUtPmN0Kys7Ci0rICAg ICAgbGliX3N0YXRlLT5lbnRyaWVzID0ganZfbWVtX3JlYWxsb2MobGliX3N0YXRlLT5lbnRyaWVz LCBsaWJfc3RhdGUtPmN0ICogc2l6ZW9mKHN0cnVjdCBsaWJfZW50cnkpKTsKLSsgICAgICBsaWJf c3RhdGUtPmVudHJpZXNbc3RhdGVfaWR4XS5uYW1lID0gc3RyZHVwKGp2X3N0cmluZ192YWx1ZShs aWJfcGF0aCkpOwotKyAgICAgIGxpYl9zdGF0ZS0+ZW50cmllc1tzdGF0ZV9pZHhdLmRlZiA9IGdl bl9ub29wKCk7Ci0rICAgICAgbGliX3N0YXRlLT5lbnRyaWVzW3N0YXRlX2lkeF0ubG9hZGluZyA9 IDE7Ci0rCi0gICAgICAgY2hhciAqbGliX29yaWdpbiA9IHN0cmR1cChqdl9zdHJpbmdfdmFsdWUo bGliX3BhdGgpKTsKLSAgICAgICBuZXJyb3JzICs9IHByb2Nlc3NfZGVwZW5kZW5jaWVzKGpxLCBq cV9nZXRfanFfb3JpZ2luKGpxKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGp2X3N0cmluZyhkaXJuYW1lKGxpYl9vcmlnaW4pKSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZwcm9ncmFtLCBsaWJfc3RhdGUpOwotICAgICAgIGZyZWUobGli X29yaWdpbik7Ci0gICAgICAgcHJvZ3JhbSA9IGJsb2NrX2JpbmRfc2VsZihwcm9ncmFtLCBPUF9J U19DQUxMX1BTRVVETyk7Ci0rICAgICAgbGliX3N0YXRlLT5lbnRyaWVzW3N0YXRlX2lkeF0uZGVm ID0gcHJvZ3JhbTsKLSsgICAgICBsaWJfc3RhdGUtPmVudHJpZXNbc3RhdGVfaWR4XS5sb2FkaW5n ID0gMDsKLSAgICAgfQotICAgfQotLSAgc3RhdGVfaWR4ID0gbGliX3N0YXRlLT5jdCsrOwotLSAg bGliX3N0YXRlLT5uYW1lcyA9IGp2X21lbV9yZWFsbG9jKGxpYl9zdGF0ZS0+bmFtZXMsIGxpYl9z dGF0ZS0+Y3QgKiBzaXplb2YoY29uc3QgY2hhciAqKSk7Ci0tICBsaWJfc3RhdGUtPmRlZnMgPSBq dl9tZW1fcmVhbGxvYyhsaWJfc3RhdGUtPmRlZnMsIGxpYl9zdGF0ZS0+Y3QgKiBzaXplb2YoYmxv Y2spKTsKLS0gIGxpYl9zdGF0ZS0+bmFtZXNbc3RhdGVfaWR4XSA9IHN0cmR1cChqdl9zdHJpbmdf dmFsdWUobGliX3BhdGgpKTsKLS0gIGxpYl9zdGF0ZS0+ZGVmc1tzdGF0ZV9pZHhdID0gcHJvZ3Jh bTsKLS1vdXQ6Ci0gICAqb3V0X2Jsb2NrID0gcHJvZ3JhbTsKLSAgIGp2X2ZyZWUobGliX3BhdGgp OwotICAganZfZnJlZShkYXRhKTsKLUBAIC00MTMsNyArNDM1LDcgQEAganYgbG9hZF9tb2R1bGVf bWV0YShqcV9zdGF0ZSAqanEsIGp2IG1vZF9yZWxwYXRoKSB7Ci0gaW50IGxvYWRfcHJvZ3JhbShq cV9zdGF0ZSAqanEsIHN0cnVjdCBsb2NmaWxlKiBzcmMsIGJsb2NrICpvdXRfYmxvY2spIHsKLSAg IGludCBuZXJyb3JzID0gMDsKLSAgIGJsb2NrIHByb2dyYW07Ci0tICBzdHJ1Y3QgbGliX2xvYWRp bmdfc3RhdGUgbGliX3N0YXRlID0gezAsMCwwfTsKLSsgIHN0cnVjdCBsaWJfbG9hZGluZ19zdGF0 ZSBsaWJfc3RhdGUgPSB7MCwwfTsKLSAgIG5lcnJvcnMgPSBqcV9wYXJzZShzcmMsICZwcm9ncmFt KTsKLSAgIGlmIChuZXJyb3JzKQotICAgICByZXR1cm4gbmVycm9yczsKLUBAIC00MzksMTQgKzQ2 MSwxMyBAQCBpbnQgbG9hZF9wcm9ncmFtKGpxX3N0YXRlICpqcSwgc3RydWN0IGxvY2ZpbGUqIHNy YywgYmxvY2sgKm91dF9ibG9jaykgewotICAgbmVycm9ycyA9IHByb2Nlc3NfZGVwZW5kZW5jaWVz KGpxLCBqcV9nZXRfanFfb3JpZ2luKGpxKSwganFfZ2V0X3Byb2dfb3JpZ2luKGpxKSwgJnByb2dy YW0sICZsaWJfc3RhdGUpOwotICAgYmxvY2sgbGlicyA9IGdlbl9ub29wKCk7Ci0gICBmb3IgKHVp bnQ2NF90IGkgPSAwOyBpIDwgbGliX3N0YXRlLmN0OyArK2kpIHsKLS0gICAgZnJlZShsaWJfc3Rh dGUubmFtZXNbaV0pOwotLSAgICBpZiAobmVycm9ycyA9PSAwICYmICFibG9ja19pc19jb25zdChs aWJfc3RhdGUuZGVmc1tpXSkpCi0tICAgICAgbGlicyA9IGJsb2NrX2pvaW4obGlicywgbGliX3N0 YXRlLmRlZnNbaV0pOwotKyAgICBmcmVlKGxpYl9zdGF0ZS5lbnRyaWVzW2ldLm5hbWUpOwotKyAg ICBpZiAobmVycm9ycyA9PSAwICYmICFibG9ja19pc19jb25zdChsaWJfc3RhdGUuZW50cmllc1tp XS5kZWYpKQotKyAgICAgIGxpYnMgPSBibG9ja19qb2luKGxpYnMsIGxpYl9zdGF0ZS5lbnRyaWVz W2ldLmRlZik7Ci0gICAgIGVsc2UKLS0gICAgICBibG9ja19mcmVlKGxpYl9zdGF0ZS5kZWZzW2ld KTsKLSsgICAgICBibG9ja19mcmVlKGxpYl9zdGF0ZS5lbnRyaWVzW2ldLmRlZik7Ci0gICB9Ci0t ICBmcmVlKGxpYl9zdGF0ZS5uYW1lcyk7Ci0tICBmcmVlKGxpYl9zdGF0ZS5kZWZzKTsKLSsgIGZy ZWUobGliX3N0YXRlLmVudHJpZXMpOwotICAgaWYgKG5lcnJvcnMpCi0gICAgIGJsb2NrX2ZyZWUo cHJvZ3JhbSk7Ci0gICBlbHNlCmRpZmYgLS1naXQgYS9wYWNrYWdlL2pxLzAwMTMtZ3VhcmQtZGVl cC1zdHJ1Y3R1cmFsLWVxdWFsaXR5LWFuZC1jb21wYXJpc29uLXJlY3Vyc2lvbi5wYXRjaCBiL3Bh Y2thZ2UvanEvMDAxMy1ndWFyZC1kZWVwLXN0cnVjdHVyYWwtZXF1YWxpdHktYW5kLWNvbXBhcmlz b24tcmVjdXJzaW9uLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZmNiNmEx MmIyLi4wMDAwMDAwMDAwCi0tLSBhL3BhY2thZ2UvanEvMDAxMy1ndWFyZC1kZWVwLXN0cnVjdHVy YWwtZXF1YWxpdHktYW5kLWNvbXBhcmlzb24tcmVjdXJzaW9uLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsNDIzICswLDAgQEAKLUZyb20gNzEyMjg2Njg2OTk2MGI1NWNlYTM2NDZiYzkxMzM0ZWY1 NTc4NzgzMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFl1LUZ1IEZ1IDx5dWZ1QHlm dS50dz4KLURhdGU6IEZyaSwgMjIgTWF5IDIwMjYgMDQ6MDc6MTYgLTA3MDAKLVN1YmplY3Q6IFtQ QVRDSF0gR3VhcmQgZGVlcCBzdHJ1Y3R1cmFsIGVxdWFsaXR5IGFuZCBjb21wYXJpc29uIHJlY3Vy c2lvbgotICgjMzUzOSkKLQotanZfZXF1YWwgYW5kIGp2X2NtcCBvdmVyZmxvd3MgdGhlIEMgc3Rh Y2sgb24gZGVlcGx5IG5lc3RlZAotaW5wdXQuIENhcCByZWN1cnNpb24gYXQgMTAwMDAgd2l0aCAt MSAvIElOVF9NSU4gc2VudGluZWxzOwotb3BlcmF0b3JzIHRoYXQgY29tcG9zZSB1c2VyIGV4cHJl c3Npb25zIHN1cmZhY2UgdGhpcyBhcwotIkVxdWFsaXR5IGNoZWNrIHRvbyBkZWVwIiAvICJDb21w YXJpc29uIHRvbyBkZWVwIi4KLQotRml4ZXMgQ1ZFLTIwMjYtNDc3NzAuCi0KLUNWRTogQ1ZFLTIw MjYtNDc3NzAKLVVwc3RyZWFtOiBodHRwczovL2dpdGh1Yi5jb20vanFsYW5nL2pxL2NvbW1pdC83 MTIyODY2ODY5OTYwYjU1Y2VhMzY0NmJjOTEzMzRlZjU1Nzg3ODMxCi1TaWduZWQtb2ZmLWJ5OiBU aG9tYXMgUGVyYWxlIDx0aG9tYXMucGVyYWxlQG1pbmQuYmU+Ci0tLS0KLSBzcmMvYnVpbHRpbi5j IHwgIDM2ICsrKysrKysrKysrKysrKy0tCi0gc3JjL2p2LmMgICAgICB8ICA0NiArKysrKysrKysr KysrKysrKy0tLS0tCi0gc3JjL2p2X2F1eC5jICB8IDEwNCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLQotIDQgZmlsZXMgY2hhbmdlZCwgMTgwIGluc2Vy dGlvbnMoKyksIDI4IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2J1aWx0aW4uYyBi L3NyYy9idWlsdGluLmMKLWluZGV4IDJiMmEyZDQwZGEuLjhlZTYwNWVkMmIgMTAwNjQ0Ci0tLS0g YS9zcmMvYnVpbHRpbi5jCi0rKysgYi9zcmMvYnVpbHRpbi5jCi1AQCAtMjk1LDcgKzI5NSwxNSBA QCBqdiBiaW5vcF9taW51cyhqdiBhLCBqdiBiKSB7Ci0gICAgIGp2X2FycmF5X2ZvcmVhY2goYSwg aSwgeCkgewotICAgICAgIGludCBpbmNsdWRlID0gMTsKLSAgICAgICBqdl9hcnJheV9mb3JlYWNo KGIsIGosIHkpIHsKLS0gICAgICAgIGlmIChqdl9lcXVhbChqdl9jb3B5KHgpLCB5KSkgewotKyAg ICAgICAgaW50IGVxdWFsID0ganZfZXF1YWwoanZfY29weSh4KSwgeSk7Ci0rICAgICAgICBpZiAo ZXF1YWwgPCAwKSB7Ci0rICAgICAgICAgIGp2X2ZyZWUob3V0KTsKLSsgICAgICAgICAganZfZnJl ZSh4KTsKLSsgICAgICAgICAganZfZnJlZShhKTsKLSsgICAgICAgICAganZfZnJlZShiKTsKLSsg ICAgICAgICAgcmV0dXJuIGp2X2ludmFsaWRfd2l0aF9tc2coanZfc3RyaW5nKCJFcXVhbGl0eSBj aGVjayB0b28gZGVlcCIpKTsKLSsgICAgICAgIH0KLSsgICAgICAgIGlmIChlcXVhbCkgewotICAg ICAgICAgICBpbmNsdWRlID0gMDsKLSAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICB9Ci1AQCAt Mzc5LDExICszODcsMTcgQEAganYgYmlub3BfbW9kKGp2IGEsIGp2IGIpIHsKLSAjdW5kZWYgZHRv aQotIAotIGp2IGJpbm9wX2VxdWFsKGp2IGEsIGp2IGIpIHsKLS0gIHJldHVybiBqdl9ib29sKGp2 X2VxdWFsKGEsIGIpKTsKLSsgIGludCByID0ganZfZXF1YWwoYSwgYik7Ci0rICBpZiAociA8IDAp Ci0rICAgIHJldHVybiBqdl9pbnZhbGlkX3dpdGhfbXNnKGp2X3N0cmluZygiRXF1YWxpdHkgY2hl Y2sgdG9vIGRlZXAiKSk7Ci0rICByZXR1cm4ganZfYm9vbChyKTsKLSB9Ci0gCi0ganYgYmlub3Bf bm90ZXF1YWwoanYgYSwganYgYikgewotLSAgcmV0dXJuIGp2X2Jvb2woIWp2X2VxdWFsKGEsIGIp KTsKLSsgIGludCByID0ganZfZXF1YWwoYSwgYik7Ci0rICBpZiAociA8IDApCi0rICAgIHJldHVy biBqdl9pbnZhbGlkX3dpdGhfbXNnKGp2X3N0cmluZygiRXF1YWxpdHkgY2hlY2sgdG9vIGRlZXAi KSk7Ci0rICByZXR1cm4ganZfYm9vbCghcik7Ci0gfQotIAotIGVudW0gY21wX29wIHsKLUBAIC0z OTUsNiArNDA5LDggQEAgZW51bSBjbXBfb3AgewotIAotIHN0YXRpYyBqdiBvcmRlcl9jbXAoanYg YSwganYgYiwgZW51bSBjbXBfb3Agb3ApIHsKLSAgIGludCByID0ganZfY21wKGEsIGIpOwotKyAg aWYgKHIgPT0gSU5UX01JTikKLSsgICAgcmV0dXJuIGp2X2ludmFsaWRfd2l0aF9tc2coanZfc3Ry aW5nKCJDb21wYXJpc29uIHRvbyBkZWVwIikpOwotICAgcmV0dXJuIGp2X2Jvb2woKG9wID09IENN UF9PUF9MRVNTICYmIHIgPCAwKSB8fAotICAgICAgICAgICAgICAgICAgKG9wID09IENNUF9PUF9M RVNTRVEgJiYgciA8PSAwKSB8fAotICAgICAgICAgICAgICAgICAgKG9wID09IENNUF9PUF9HUkVB VEVSRVEgJiYgciA+PSAwKSB8fAotQEAgLTg0OCw2ICs4NjQsMTIgQEAgc3RhdGljIGp2IGZfYnNl YXJjaChqcV9zdGF0ZSAqanEsIGp2IGlucHV0LCBqdiB0YXJnZXQpIHsKLSAgIHdoaWxlIChzdGFy dCA8IGVuZCkgewotICAgICBpbnQgbWlkID0gc3RhcnQgKyAoZW5kIC0gc3RhcnQpIC8gMjsKLSAg ICAgaW50IHJlc3VsdCA9IGp2X2NtcChqdl9jb3B5KHRhcmdldCksIGp2X2FycmF5X2dldChqdl9j b3B5KGlucHV0KSwgbWlkKSk7Ci0rICAgIGlmIChyZXN1bHQgPT0gSU5UX01JTikgewotKyAgICAg IGp2X2ZyZWUoYW5zd2VyKTsKLSsgICAgICBqdl9mcmVlKGlucHV0KTsKLSsgICAgICBqdl9mcmVl KHRhcmdldCk7Ci0rICAgICAgcmV0dXJuIGp2X2ludmFsaWRfd2l0aF9tc2coanZfc3RyaW5nKCJD b21wYXJpc29uIHRvbyBkZWVwIikpOwotKyAgICB9Ci0gICAgIGlmIChyZXN1bHQgPT0gMCkgewot ICAgICAgIGFuc3dlciA9IGp2X251bWJlcihtaWQpOwotICAgICAgIGJyZWFrOwotQEAgLTExMzks NiArMTE2MSwxNCBAQCBzdGF0aWMganYgbWlubWF4X2J5KGp2IHZhbHVlcywganYga2V5cywgaW50 IGlzX21pbikgewotICAgZm9yIChpbnQgaT0xOyBpPGp2X2FycmF5X2xlbmd0aChqdl9jb3B5KHZh bHVlcykpOyBpKyspIHsKLSAgICAganYgaXRlbSA9IGp2X2FycmF5X2dldChqdl9jb3B5KGtleXMp LCBpKTsKLSAgICAgaW50IGNtcCA9IGp2X2NtcChqdl9jb3B5KGl0ZW0pLCBqdl9jb3B5KHJldGtl eSkpOwotKyAgICBpZiAoY21wID09IElOVF9NSU4pIHsKLSsgICAgICBqdl9mcmVlKGl0ZW0pOwot KyAgICAgIGp2X2ZyZWUodmFsdWVzKTsKLSsgICAgICBqdl9mcmVlKGtleXMpOwotKyAgICAgIGp2 X2ZyZWUocmV0a2V5KTsKLSsgICAgICBqdl9mcmVlKHJldCk7Ci0rICAgICAgcmV0dXJuIGp2X2lu dmFsaWRfd2l0aF9tc2coanZfc3RyaW5nKCJDb21wYXJpc29uIHRvbyBkZWVwIikpOwotKyAgICB9 Ci0gICAgIGlmICgoY21wIDwgMCkgPT0gKGlzX21pbiA9PSAxKSkgewotICAgICAgIGp2X2ZyZWUo cmV0a2V5KTsKLSAgICAgICByZXRrZXkgPSBpdGVtOwotZGlmZiAtLWdpdCBhL3NyYy9qdi5jIGIv c3JjL2p2LmMKLWluZGV4IDA3NGVlMzEwYzUuLmJjZDdjOWI1YjAgMTAwNjQ0Ci0tLS0gYS9zcmMv anYuYwotKysrIGIvc3JjL2p2LmMKLUBAIC05MTUsMTYgKzkxNSwyMCBAQCBzdGF0aWMganYqIGp2 cF9hcnJheV93cml0ZShqdiogYSwgaW50IGkpIHsKLSAgIH0KLSB9Ci0gCi0tc3RhdGljIGludCBq dnBfYXJyYXlfZXF1YWwoanYgYSwganYgYikgewotK3N0YXRpYyBpbnQganZwX2VxdWFsKGp2IGEs IGp2IGIsIGludCBkZXB0aCk7Ci0rCi0rc3RhdGljIGludCBqdnBfYXJyYXlfZXF1YWwoanYgYSwg anYgYiwgaW50IGRlcHRoKSB7Ci0gICBpZiAoanZwX2FycmF5X2xlbmd0aChhKSAhPSBqdnBfYXJy YXlfbGVuZ3RoKGIpKQotICAgICByZXR1cm4gMDsKLSAgIGlmIChqdnBfYXJyYXlfcHRyKGEpID09 IGp2cF9hcnJheV9wdHIoYikgJiYKLSAgICAgICBqdnBfYXJyYXlfb2Zmc2V0KGEpID09IGp2cF9h cnJheV9vZmZzZXQoYikpCi0gICAgIHJldHVybiAxOwotICAgZm9yIChpbnQgaT0wOyBpPGp2cF9h cnJheV9sZW5ndGgoYSk7IGkrKykgewotLSAgICBpZiAoIWp2X2VxdWFsKGp2X2NvcHkoKmp2cF9h cnJheV9yZWFkKGEsIGkpKSwKLS0gICAgICAgICAgICAgICAgICBqdl9jb3B5KCpqdnBfYXJyYXlf cmVhZChiLCBpKSkpKQotLSAgICAgIHJldHVybiAwOwotKyAgICBpbnQgciA9IGp2cF9lcXVhbChq dl9jb3B5KCpqdnBfYXJyYXlfcmVhZChhLCBpKSksCi0rICAgICAgICAgICAgICAgICAgICAgIGp2 X2NvcHkoKmp2cF9hcnJheV9yZWFkKGIsIGkpKSwKLSsgICAgICAgICAgICAgICAgICAgICAgZGVw dGgpOwotKyAgICBpZiAociA8PSAwKQotKyAgICAgIHJldHVybiByOwotICAgfQotICAgcmV0dXJu IDE7Ci0gfQotQEAgLTEwNzQsNyArMTA3OCwxNCBAQCBqdiBqdl9hcnJheV9pbmRleGVzKGp2IGEs IGp2IGIpIHsKLSAgIGludCBhbGVuID0ganZfYXJyYXlfbGVuZ3RoKGp2X2NvcHkoYSkpOwotICAg Zm9yIChpbnQgYWkgPSAwOyBhaSA8IGFsZW47ICsrYWkpIHsKLSAgICAganZfYXJyYXlfZm9yZWFj aChiLCBiaSwgYmVsZW0pIHsKLS0gICAgICBpZiAoIWp2X2VxdWFsKGp2X2FycmF5X2dldChqdl9j b3B5KGEpLCBhaSArIGJpKSwgYmVsZW0pKQotKyAgICAgIGludCBlcXVhbCA9IGp2X2VxdWFsKGp2 X2FycmF5X2dldChqdl9jb3B5KGEpLCBhaSArIGJpKSwgYmVsZW0pOwotKyAgICAgIGlmIChlcXVh bCA8IDApIHsKLSsgICAgICAgIGp2X2ZyZWUocmVzKTsKLSsgICAgICAgIGp2X2ZyZWUoYSk7Ci0r ICAgICAgICBqdl9mcmVlKGIpOwotKyAgICAgICAgcmV0dXJuIGp2X2ludmFsaWRfd2l0aF9tc2co anZfc3RyaW5nKCJFcXVhbGl0eSBjaGVjayB0b28gZGVlcCIpKTsKLSsgICAgICB9Ci0rICAgICAg aWYgKCFlcXVhbCkKLSAgICAgICAgIGlkeCA9IC0xOwotICAgICAgIGVsc2UgaWYgKGJpID09IDAg JiYgaWR4ID09IC0xKQotICAgICAgICAgaWR4ID0gYWk7Ci1AQCAtMTgzMSw3ICsxODQyLDcgQEAg c3RhdGljIGludCBqdnBfb2JqZWN0X2xlbmd0aChqdiBvYmplY3QpIHsKLSAgIHJldHVybiBuOwot IH0KLSAKLS1zdGF0aWMgaW50IGp2cF9vYmplY3RfZXF1YWwoanYgbzEsIGp2IG8yKSB7Ci0rc3Rh dGljIGludCBqdnBfb2JqZWN0X2VxdWFsKGp2IG8xLCBqdiBvMiwgaW50IGRlcHRoKSB7Ci0gICBp bnQgbGVuMiA9IGp2cF9vYmplY3RfbGVuZ3RoKG8yKTsKLSAgIGludCBsZW4xID0gMDsKLSAgIGZv ciAoaW50IGk9MDsgaTxqdnBfb2JqZWN0X3NpemUobzEpOyBpKyspIHsKLUBAIC0xODQwLDcgKzE4 NTEsOCBAQCBzdGF0aWMgaW50IGp2cF9vYmplY3RfZXF1YWwoanYgbzEsIGp2IG8yKSB7Ci0gICAg IGp2KiBzbG90MiA9IGp2cF9vYmplY3RfcmVhZChvMiwgc2xvdC0+c3RyaW5nKTsKLSAgICAgaWYg KCFzbG90MikgcmV0dXJuIDA7Ci0gICAgIC8vIEZJWE1FOiBkbyBsZXNzIHJlZmNvdW50aW5nIGhl cmUKLS0gICAgaWYgKCFqdl9lcXVhbChqdl9jb3B5KHNsb3QtPnZhbHVlKSwganZfY29weSgqc2xv dDIpKSkgcmV0dXJuIDA7Ci0rICAgIGludCByID0ganZwX2VxdWFsKGp2X2NvcHkoc2xvdC0+dmFs dWUpLCBqdl9jb3B5KCpzbG90MiksIGRlcHRoKTsKLSsgICAgaWYgKHIgPD0gMCkgcmV0dXJuIHI7 Ci0gICAgIGxlbjErKzsKLSAgIH0KLSAgIHJldHVybiBsZW4xID09IGxlbjI7Ci1AQCAtMjA1Niw3 ICsyMDY4LDE2IEBAIGludCBqdl9nZXRfcmVmY250KGp2IGopIHsKLSAgKiBIaWdoZXItbGV2ZWwg b3BlcmF0aW9ucwotICAqLwotIAotLWludCBqdl9lcXVhbChqdiBhLCBqdiBiKSB7Ci0rI2lmbmRl ZiBNQVhfRVFVQUxfREVQVEgKLSsjZGVmaW5lIE1BWF9FUVVBTF9ERVBUSCAoMTAwMDApCi0rI2Vu ZGlmCi0rCi0rc3RhdGljIGludCBqdnBfZXF1YWwoanYgYSwganYgYiwgaW50IGRlcHRoKSB7Ci0r ICBpZiAoZGVwdGggPiBNQVhfRVFVQUxfREVQVEgpIHsKLSsgICAganZfZnJlZShhKTsKLSsgICAg anZfZnJlZShiKTsKLSsgICAgcmV0dXJuIC0xOwotKyAgfQotICAgaW50IHI7Ci0gICBpZiAoanZf Z2V0X2tpbmQoYSkgIT0ganZfZ2V0X2tpbmQoYikpIHsKLSAgICAgciA9IDA7Ci1AQCAtMjA3Miwx MyArMjA5MywxMyBAQCBpbnQganZfZXF1YWwoanYgYSwganYgYikgewotICAgICAgIHIgPSBqdnBf bnVtYmVyX2VxdWFsKGEsIGIpOwotICAgICAgIGJyZWFrOwotICAgICBjYXNlIEpWX0tJTkRfQVJS QVk6Ci0tICAgICAgciA9IGp2cF9hcnJheV9lcXVhbChhLCBiKTsKLSsgICAgICByID0ganZwX2Fy cmF5X2VxdWFsKGEsIGIsIGRlcHRoICsgMSk7Ci0gICAgICAgYnJlYWs7Ci0gICAgIGNhc2UgSlZf S0lORF9TVFJJTkc6Ci0gICAgICAgciA9IGp2cF9zdHJpbmdfZXF1YWwoYSwgYik7Ci0gICAgICAg YnJlYWs7Ci0gICAgIGNhc2UgSlZfS0lORF9PQkpFQ1Q6Ci0tICAgICAgciA9IGp2cF9vYmplY3Rf ZXF1YWwoYSwgYik7Ci0rICAgICAgciA9IGp2cF9vYmplY3RfZXF1YWwoYSwgYiwgZGVwdGggKyAx KTsKLSAgICAgICBicmVhazsKLSAgICAgZGVmYXVsdDoKLSAgICAgICByID0gMTsKLUBAIC0yMDkw LDYgKzIxMTEsMTEgQEAgaW50IGp2X2VxdWFsKGp2IGEsIGp2IGIpIHsKLSAgIHJldHVybiByOwot IH0KLSAKLSsvLyBSZXR1cm5zIDEgaWYgZXF1YWwsIDAgaWYgbm90IGVxdWFsLCBvciAtMSBpZiB0 aGUgY29tcGFyaXNvbiBpcyB0b28gZGVlcAotK2ludCBqdl9lcXVhbChqdiBhLCBqdiBiKSB7Ci0r ICByZXR1cm4ganZwX2VxdWFsKGEsIGIsIDApOwotK30KLSsKLSBpbnQganZfaWRlbnRpY2FsKGp2 IGEsIGp2IGIpIHsKLSAgIGludCByOwotICAgaWYgKGEua2luZF9mbGFncyAhPSBiLmtpbmRfZmxh Z3MKLWRpZmYgLS1naXQgYS9zcmMvanZfYXV4LmMgYi9zcmMvanZfYXV4LmMKLWluZGV4IGZkNWZm OTY2ODQuLjRmNWJlMGFiMTQgMTAwNjQ0Ci0tLS0gYS9zcmMvanZfYXV4LmMKLSsrKyBiL3NyYy9q dl9hdXguYwotQEAgLTE2LDYgKzE2LDI0IEBAIHN0YXRpYyBkb3VibGUganZfbnVtYmVyX2dldF92 YWx1ZV9hbmRfY29uc3VtZShqdiBudW1iZXIpIHsKLSAgIHJldHVybiB2YWx1ZTsKLSB9Ci0gCi0r I2lmbmRlZiBNQVhfQ01QX0RFUFRICi0rI2RlZmluZSBNQVhfQ01QX0RFUFRIICgxMDAwMCkKLSsj ZW5kaWYKLSsKLStzdHJ1Y3Qgc29ydF9jbXBfc3RhdGUgewotKyAgaW50IHRvb19kZWVwOwotK307 Ci0rCi0rI2lmZGVmIF9NU0NfVkVSCi0rc3RhdGljIF9fZGVjbHNwZWModGhyZWFkKSBzdHJ1Y3Qg c29ydF9jbXBfc3RhdGUgc29ydF9jbXBfc3RhdGU7Ci0rI2Vsc2UKLSsjaWZkZWYgSEFWRV9fX1RI UkVBRAotK3N0YXRpYyBfX3RocmVhZCBzdHJ1Y3Qgc29ydF9jbXBfc3RhdGUgc29ydF9jbXBfc3Rh dGU7Ci0rI2Vsc2UKLStzdGF0aWMgc3RydWN0IHNvcnRfY21wX3N0YXRlIHNvcnRfY21wX3N0YXRl OwotKyNlbmRpZgotKyNlbmRpZgotKwotIHN0YXRpYyBqdiBwYXJzZV9zbGljZShqdiBqLCBqdiBz bGljZSwgaW50KiBwc3RhcnQsIGludCogcGVuZCkgewotICAgLy8gQXJyYXkgc2xpY2VzCi0gICBq diBzdGFydF9qdiA9IGp2X29iamVjdF9nZXQoanZfY29weShzbGljZSksIGp2X3N0cmluZygic3Rh cnQiKSk7Ci1AQCAtNjA2LDcgKzYyNCwxMyBAQCBqdiBqdl9rZXlzKGp2IHgpIHsKLSAgIH0KLSB9 Ci0gCi0taW50IGp2X2NtcChqdiBhLCBqdiBiKSB7Ci0rc3RhdGljIGludCBqdnBfY21wKGp2IGEs IGp2IGIsIGludCBkZXB0aCkgewotKyAgaWYgKGRlcHRoID4gTUFYX0NNUF9ERVBUSCkgewotKyAg ICBqdl9mcmVlKGEpOwotKyAgICBqdl9mcmVlKGIpOwotKyAgICByZXR1cm4gSU5UX01JTjsKLSsg IH0KLSsKLSAgIGlmIChqdl9nZXRfa2luZChhKSAhPSBqdl9nZXRfa2luZChiKSkgewotICAgICBp bnQgciA9IChpbnQpanZfZ2V0X2tpbmQoYSkgLSAoaW50KWp2X2dldF9raW5kKGIpOwotICAgICBq dl9mcmVlKGEpOwotQEAgLTYyMSwxNCArNjQ1LDEzIEBAIGludCBqdl9jbXAoanYgYSwganYgYikg ewotICAgY2FzZSBKVl9LSU5EX0ZBTFNFOgotICAgY2FzZSBKVl9LSU5EX1RSVUU6Ci0gICAgIC8v IHRoZXJlJ3Mgb25seSBvbmUgb2YgZWFjaCBvZiB0aGVzZSB2YWx1ZXMKLS0gICAgciA9IDA7Ci0g ICAgIGJyZWFrOwotIAotICAgY2FzZSBKVl9LSU5EX05VTUJFUjogewotICAgICBpZiAoanZwX251 bWJlcl9pc19uYW4oYSkpIHsKLS0gICAgICByID0ganZfY21wKGp2X251bGwoKSwganZfY29weShi KSk7Ci0rICAgICAgciA9IGp2cF9jbXAoanZfbnVsbCgpLCBqdl9jb3B5KGIpLCBkZXB0aCk7Ci0g ICAgIH0gZWxzZSBpZiAoanZwX251bWJlcl9pc19uYW4oYikpIHsKLS0gICAgICByID0ganZfY21w KGp2X2NvcHkoYSksIGp2X251bGwoKSk7Ci0rICAgICAgciA9IGp2cF9jbXAoanZfY29weShhKSwg anZfbnVsbCgpLCBkZXB0aCk7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgciA9IGp2cF9udW1iZXJf Y21wKGEsIGIpOwotICAgICB9Ci1AQCAtNjUyLDcgKzY3NSw5IEBAIGludCBqdl9jbXAoanYgYSwg anYgYikgewotICAgICAgIH0KLSAgICAgICBqdiB4YSA9IGp2X2FycmF5X2dldChqdl9jb3B5KGEp LCBpKTsKLSAgICAgICBqdiB4YiA9IGp2X2FycmF5X2dldChqdl9jb3B5KGIpLCBpKTsKLS0gICAg ICByID0ganZfY21wKHhhLCB4Yik7Ci0rICAgICAgciA9IGp2cF9jbXAoeGEsIHhiLCBkZXB0aCAr IDEpOwotKyAgICAgIGlmIChyID09IElOVF9NSU4pCi0rICAgICAgICBicmVhazsKLSAgICAgICBp Kys7Ci0gICAgIH0KLSAgICAgYnJlYWs7Ci1AQCAtNjYxLDEzICs2ODYsMTQgQEAgaW50IGp2X2Nt cChqdiBhLCBqdiBiKSB7Ci0gICBjYXNlIEpWX0tJTkRfT0JKRUNUOiB7Ci0gICAgIGp2IGtleXNf YSA9IGp2X2tleXMoanZfY29weShhKSk7Ci0gICAgIGp2IGtleXNfYiA9IGp2X2tleXMoanZfY29w eShiKSk7Ci0tICAgIHIgPSBqdl9jbXAoanZfY29weShrZXlzX2EpLCBrZXlzX2IpOwotKyAgICBy ID0ganZwX2NtcChqdl9jb3B5KGtleXNfYSksIGtleXNfYiwgZGVwdGggKyAxKTsKLSAgICAgaWYg KHIgPT0gMCkgewotICAgICAgIGp2X2FycmF5X2ZvcmVhY2goa2V5c19hLCBpLCBrZXkpIHsKLSAg ICAgICAgIGp2IHhhID0ganZfb2JqZWN0X2dldChqdl9jb3B5KGEpLCBqdl9jb3B5KGtleSkpOwot ICAgICAgICAganYgeGIgPSBqdl9vYmplY3RfZ2V0KGp2X2NvcHkoYiksIGtleSk7Ci0tICAgICAg ICByID0ganZfY21wKHhhLCB4Yik7Ci0tICAgICAgICBpZiAocikgYnJlYWs7Ci0rICAgICAgICBy ID0ganZwX2NtcCh4YSwgeGIsIGRlcHRoICsgMSk7Ci0rICAgICAgICBpZiAociAhPSAwKQotKyAg ICAgICAgICBicmVhazsKLSAgICAgICB9Ci0gICAgIH0KLSAgICAganZfZnJlZShrZXlzX2EpOwot QEAgLTY4MCw2ICs3MDYsMTEgQEAgaW50IGp2X2NtcChqdiBhLCBqdiBiKSB7Ci0gICByZXR1cm4g cjsKLSB9Ci0gCi0rLy8gUmV0dXJucyA8MCwgMCwgPjAgaWYgYSBpcyBsZXNzIHRoYW4sIGVxdWFs IHRvLCBvciBncmVhdGVyIHRoYW4gYiwgb3IKLSsvLyBJTlRfTUlOIGlmIHRoZSBjb21wYXJpc29u IGlzIHRvbyBkZWVwCi0raW50IGp2X2NtcChqdiBhLCBqdiBiKSB7Ci0rICByZXR1cm4ganZwX2Nt cChhLCBiLCAwKTsKLSt9Ci0gCi0gc3RydWN0IHNvcnRfZW50cnkgewotICAganYgb2JqZWN0Owot QEAgLTY4NywxOSArNzE4LDMyIEBAIHN0cnVjdCBzb3J0X2VudHJ5IHsKLSAgIGludCBpbmRleDsK LSB9OwotIAotK3N0YXRpYyB2b2lkIHNvcnRfZW50cnlfYXJyYXlfZnJlZShzdHJ1Y3Qgc29ydF9l bnRyeSogZW50cmllcywgaW50IHN0YXJ0LCBpbnQgbikgewotKyAgZm9yIChpbnQgaSA9IHN0YXJ0 OyBpIDwgbjsgaSsrKSB7Ci0rICAgIGp2X2ZyZWUoZW50cmllc1tpXS5rZXkpOwotKyAgICBqdl9m cmVlKGVudHJpZXNbaV0ub2JqZWN0KTsKLSsgIH0KLSsgIGp2X21lbV9mcmVlKGVudHJpZXMpOwot K30KLSsKLSBzdGF0aWMgaW50IHNvcnRfY21wKGNvbnN0IHZvaWQqIHBhLCBjb25zdCB2b2lkKiBw YikgewotICAgY29uc3Qgc3RydWN0IHNvcnRfZW50cnkqIGEgPSBwYTsKLSAgIGNvbnN0IHN0cnVj dCBzb3J0X2VudHJ5KiBiID0gcGI7Ci0gICBpbnQgciA9IGp2X2NtcChqdl9jb3B5KGEtPmtleSks IGp2X2NvcHkoYi0+a2V5KSk7Ci0rICBpZiAociA9PSBJTlRfTUlOKSB7Ci0rICAgIHNvcnRfY21w X3N0YXRlLnRvb19kZWVwID0gMTsKLSsgICAgcmV0dXJuIDA7Ci0rICB9Ci0gICAvLyBjb21wYXJp bmcgYnkgaW5kZXggaWYgciA9PSAwIG1ha2VzIHRoZSBzb3J0IHN0YWJsZQotICAgcmV0dXJuIHIg PyByIDogKGEtPmluZGV4IC0gYi0+aW5kZXgpOwotIH0KLSAKLS1zdGF0aWMgc3RydWN0IHNvcnRf ZW50cnkqIHNvcnRfaXRlbXMoanYgb2JqZWN0cywganYga2V5cykgewotK3N0YXRpYyBzdHJ1Y3Qg c29ydF9lbnRyeSogc29ydF9pdGVtcyhqdiBvYmplY3RzLCBqdiBrZXlzLCBpbnQgKnRvb19kZWVw KSB7Ci0gICBhc3NlcnQoanZfZ2V0X2tpbmQob2JqZWN0cykgPT0gSlZfS0lORF9BUlJBWSk7Ci0g ICBhc3NlcnQoanZfZ2V0X2tpbmQoa2V5cykgPT0gSlZfS0lORF9BUlJBWSk7Ci0gICBhc3NlcnQo anZfYXJyYXlfbGVuZ3RoKGp2X2NvcHkob2JqZWN0cykpID09IGp2X2FycmF5X2xlbmd0aChqdl9j b3B5KGtleXMpKSk7Ci0gICBpbnQgbiA9IGp2X2FycmF5X2xlbmd0aChqdl9jb3B5KG9iamVjdHMp KTsKLSsgICp0b29fZGVlcCA9IDA7Ci0gICBpZiAobiA9PSAwKSB7Ci0gICAgIGp2X2ZyZWUob2Jq ZWN0cyk7Ci0gICAgIGp2X2ZyZWUoa2V5cyk7Ci1AQCAtNzEzLDcgKzc1NywxMyBAQCBzdGF0aWMg c3RydWN0IHNvcnRfZW50cnkqIHNvcnRfaXRlbXMoanYgb2JqZWN0cywganYga2V5cykgewotICAg fQotICAganZfZnJlZShvYmplY3RzKTsKLSAgIGp2X2ZyZWUoa2V5cyk7Ci0rICBzb3J0X2NtcF9z dGF0ZS50b29fZGVlcCA9IDA7Ci0gICBxc29ydChlbnRyaWVzLCBuLCBzaXplb2Yoc3RydWN0IHNv cnRfZW50cnkpLCBzb3J0X2NtcCk7Ci0rICBpZiAoc29ydF9jbXBfc3RhdGUudG9vX2RlZXApIHsK LSsgICAgc29ydF9lbnRyeV9hcnJheV9mcmVlKGVudHJpZXMsIDAsIG4pOwotKyAgICAqdG9vX2Rl ZXAgPSAxOwotKyAgICByZXR1cm4gTlVMTDsKLSsgIH0KLSAgIHJldHVybiBlbnRyaWVzOwotIH0K LSAKLUBAIC03MjIsNyArNzcyLDEwIEBAIGp2IGp2X3NvcnQoanYgb2JqZWN0cywganYga2V5cykg ewotICAgYXNzZXJ0KGp2X2dldF9raW5kKGtleXMpID09IEpWX0tJTkRfQVJSQVkpOwotICAgYXNz ZXJ0KGp2X2FycmF5X2xlbmd0aChqdl9jb3B5KG9iamVjdHMpKSA9PSBqdl9hcnJheV9sZW5ndGgo anZfY29weShrZXlzKSkpOwotICAgaW50IG4gPSBqdl9hcnJheV9sZW5ndGgoanZfY29weShvYmpl Y3RzKSk7Ci0tICBzdHJ1Y3Qgc29ydF9lbnRyeSogZW50cmllcyA9IHNvcnRfaXRlbXMob2JqZWN0 cywga2V5cyk7Ci0rICBpbnQgdG9vX2RlZXAgPSAwOwotKyAgc3RydWN0IHNvcnRfZW50cnkqIGVu dHJpZXMgPSBzb3J0X2l0ZW1zKG9iamVjdHMsIGtleXMsICZ0b29fZGVlcCk7Ci0rICBpZiAodG9v X2RlZXApCi0rICAgIHJldHVybiBqdl9pbnZhbGlkX3dpdGhfbXNnKGp2X3N0cmluZygiQ29tcGFy aXNvbiB0b28gZGVlcCIpKTsKLSAgIGp2IHJldCA9IGp2X2FycmF5KCk7Ci0gICBmb3IgKGludCBp PTA7IGk8bjsgaSsrKSB7Ci0gICAgIGp2X2ZyZWUoZW50cmllc1tpXS5rZXkpOwotQEAgLTczNywx MyArNzkwLDI0IEBAIGp2IGp2X2dyb3VwKGp2IG9iamVjdHMsIGp2IGtleXMpIHsKLSAgIGFzc2Vy dChqdl9nZXRfa2luZChrZXlzKSA9PSBKVl9LSU5EX0FSUkFZKTsKLSAgIGFzc2VydChqdl9hcnJh eV9sZW5ndGgoanZfY29weShvYmplY3RzKSkgPT0ganZfYXJyYXlfbGVuZ3RoKGp2X2NvcHkoa2V5 cykpKTsKLSAgIGludCBuID0ganZfYXJyYXlfbGVuZ3RoKGp2X2NvcHkob2JqZWN0cykpOwotLSAg c3RydWN0IHNvcnRfZW50cnkqIGVudHJpZXMgPSBzb3J0X2l0ZW1zKG9iamVjdHMsIGtleXMpOwot KyAgaW50IHRvb19kZWVwID0gMDsKLSsgIHN0cnVjdCBzb3J0X2VudHJ5KiBlbnRyaWVzID0gc29y dF9pdGVtcyhvYmplY3RzLCBrZXlzLCAmdG9vX2RlZXApOwotKyAgaWYgKHRvb19kZWVwKQotKyAg ICByZXR1cm4ganZfaW52YWxpZF93aXRoX21zZyhqdl9zdHJpbmcoIkNvbXBhcmlzb24gdG9vIGRl ZXAiKSk7Ci0gICBqdiByZXQgPSBqdl9hcnJheSgpOwotICAgaWYgKG4gPiAwKSB7Ci0gICAgIGp2 IGN1cnJfa2V5ID0gZW50cmllc1swXS5rZXk7Ci0gICAgIGp2IGdyb3VwID0ganZfYXJyYXlfYXBw ZW5kKGp2X2FycmF5KCksIGVudHJpZXNbMF0ub2JqZWN0KTsKLSAgICAgZm9yIChpbnQgaSA9IDE7 IGkgPCBuOyBpKyspIHsKLS0gICAgICBpZiAoanZfZXF1YWwoanZfY29weShjdXJyX2tleSksIGp2 X2NvcHkoZW50cmllc1tpXS5rZXkpKSkgewotKyAgICAgIGludCBlcXVhbCA9IGp2X2VxdWFsKGp2 X2NvcHkoY3Vycl9rZXkpLCBqdl9jb3B5KGVudHJpZXNbaV0ua2V5KSk7Ci0rICAgICAgaWYgKGVx dWFsIDwgMCkgewotKyAgICAgICAganZfZnJlZShjdXJyX2tleSk7Ci0rICAgICAgICBqdl9mcmVl KGdyb3VwKTsKLSsgICAgICAgIHNvcnRfZW50cnlfYXJyYXlfZnJlZShlbnRyaWVzLCBpLCBuKTsK LSsgICAgICAgIGp2X2ZyZWUocmV0KTsKLSsgICAgICAgIHJldHVybiBqdl9pbnZhbGlkX3dpdGhf bXNnKGp2X3N0cmluZygiRXF1YWxpdHkgY2hlY2sgdG9vIGRlZXAiKSk7Ci0rICAgICAgfQotKyAg ICAgIGlmIChlcXVhbCkgewotICAgICAgICAganZfZnJlZShlbnRyaWVzW2ldLmtleSk7Ci0gICAg ICAgfSBlbHNlIHsKLSAgICAgICAgIGp2X2ZyZWUoY3Vycl9rZXkpOwotQEAgLTc2NSwxMSArODI5 LDIxIEBAIGp2IGp2X3VuaXF1ZShqdiBvYmplY3RzLCBqdiBrZXlzKSB7Ci0gICBhc3NlcnQoanZf Z2V0X2tpbmQoa2V5cykgPT0gSlZfS0lORF9BUlJBWSk7Ci0gICBhc3NlcnQoanZfYXJyYXlfbGVu Z3RoKGp2X2NvcHkob2JqZWN0cykpID09IGp2X2FycmF5X2xlbmd0aChqdl9jb3B5KGtleXMpKSk7 Ci0gICBpbnQgbiA9IGp2X2FycmF5X2xlbmd0aChqdl9jb3B5KG9iamVjdHMpKTsKLS0gIHN0cnVj dCBzb3J0X2VudHJ5KiBlbnRyaWVzID0gc29ydF9pdGVtcyhvYmplY3RzLCBrZXlzKTsKLSsgIGlu dCB0b29fZGVlcCA9IDA7Ci0rICBzdHJ1Y3Qgc29ydF9lbnRyeSogZW50cmllcyA9IHNvcnRfaXRl bXMob2JqZWN0cywga2V5cywgJnRvb19kZWVwKTsKLSsgIGlmICh0b29fZGVlcCkKLSsgICAgcmV0 dXJuIGp2X2ludmFsaWRfd2l0aF9tc2coanZfc3RyaW5nKCJDb21wYXJpc29uIHRvbyBkZWVwIikp OwotICAganYgcmV0ID0ganZfYXJyYXkoKTsKLSAgIGp2IGN1cnJfa2V5ID0ganZfaW52YWxpZCgp OwotICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKLS0gICAgaWYgKGp2X2VxdWFsKGp2 X2NvcHkoY3Vycl9rZXkpLCBqdl9jb3B5KGVudHJpZXNbaV0ua2V5KSkpIHsKLSsgICAgaW50IGVx dWFsID0ganZfZXF1YWwoanZfY29weShjdXJyX2tleSksIGp2X2NvcHkoZW50cmllc1tpXS5rZXkp KTsKLSsgICAgaWYgKGVxdWFsIDwgMCkgewotKyAgICAgIGp2X2ZyZWUoY3Vycl9rZXkpOwotKyAg ICAgIHNvcnRfZW50cnlfYXJyYXlfZnJlZShlbnRyaWVzLCBpLCBuKTsKLSsgICAgICBqdl9mcmVl KHJldCk7Ci0rICAgICAgcmV0dXJuIGp2X2ludmFsaWRfd2l0aF9tc2coanZfc3RyaW5nKCJFcXVh bGl0eSBjaGVjayB0b28gZGVlcCIpKTsKLSsgICAgfQotKyAgICBpZiAoZXF1YWwpIHsKLSAgICAg ICBqdl9mcmVlKGVudHJpZXNbaV0ua2V5KTsKLSAgICAgICBqdl9mcmVlKGVudHJpZXNbaV0ub2Jq ZWN0KTsKLSAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL3BhY2thZ2UvanEvMDAxNC1maXgtaGVh cC1idWZmZXItb3ZlcmZsb3ctaW4tcmF3LWZpbGUtbG9hZGluZy5wYXRjaCBiL3BhY2thZ2UvanEv MDAxNC1maXgtaGVhcC1idWZmZXItb3ZlcmZsb3ctaW4tcmF3LWZpbGUtbG9hZGluZy5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzFiMGRhZGZkYi4uMDAwMDAwMDAwMAotLS0g YS9wYWNrYWdlL2pxLzAwMTQtZml4LWhlYXAtYnVmZmVyLW92ZXJmbG93LWluLXJhdy1maWxlLWxv YWRpbmcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1Gcm9tIGU5ODdkZjBk NDYzZDg1ZmQ3MDgyNWUwNDJhMDgyNDI3ZTgyNzViODYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBpdGNoeW55IDxpdGNoeW55QGN5Ym96dS5jby5qcD4KLURhdGU6IE1vbiwgOCBKdW4g MjAyNiAyMjoxNDo0OCArMDkwMAotU3ViamVjdDogW1BBVENIXSBGaXggaGVhcC1idWZmZXItb3Zl cmZsb3cgaW4gcmF3IGZpbGUgbG9hZGluZwotCi1XaGVuIGBqdl9zdHJpbmdfYXBwZW5kX2J1ZmAg b3ZlcmZsb3dzIHRoZSBzdHJpbmcgbGVuZ3RoIGxpbWl0LAotaXQgcmV0dXJucyBhbiBpbnZhbGlk IGBqdmA7IGBqdl9sb2FkX2ZpbGVgIHRoZW4gcmUtZW50ZXJlZCBpdAotb24gdGhlIGludmFsaWQg dmFsdWUgYW5kIG92ZXJyYW4gdGhlIGhlYXAuIEJyZWFrIG91dCBvZiB0aGUgbG9vcAotb25jZSB0 aGUgdmFsdWUgaXMgaW52YWxpZC4KLQotRml4ZXMgQ1ZFLTIwMjYtNDk4MzkuCi0KLUNWRTogQ1ZF LTIwMjYtNDk4MzkKLVVwc3RyZWFtOiBodHRwczovL2dpdGh1Yi5jb20vanFsYW5nL2pxL2NvbW1p dC9lOTg3ZGYwZDQ2M2Q4NWZkNzA4MjVlMDQyYTA4MjQyN2U4Mjc1Yjg2Ci1TaWduZWQtb2ZmLWJ5 OiBUaG9tYXMgUGVyYWxlIDx0aG9tYXMucGVyYWxlQG1pbmQuYmU+Ci0tLS0KLSBzcmMvanZfZmls ZS5jIHwgMiArKwotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdp dCBhL3NyYy9qdl9maWxlLmMgYi9zcmMvanZfZmlsZS5jCi1pbmRleCA3NzA2YjBlMDZlLi5mYmMx ZTRkNjUzIDEwMDY0NAotLS0tIGEvc3JjL2p2X2ZpbGUuYwotKysrIGIvc3JjL2p2X2ZpbGUuYwot QEAgLTU3LDYgKzU3LDggQEAganYganZfbG9hZF9maWxlKGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBp bnQgcmF3KSB7Ci0gCi0gICAgIGlmIChyYXcpIHsKLSAgICAgICBkYXRhID0ganZfc3RyaW5nX2Fw cGVuZF9idWYoZGF0YSwgYnVmLCBuKTsKLSsgICAgICBpZiAoIWp2X2lzX3ZhbGlkKGRhdGEpKQot KyAgICAgICAgYnJlYWs7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAganZfcGFyc2VyX3NldF9idWYo cGFyc2VyLCBidWYsIG4sICFmZW9mKGZpbGUpKTsKLSAgICAgICBqdiB2YWx1ZTsKZGlmZiAtLWdp dCBhL3BhY2thZ2UvanEvMDAxNS10aWdodGVuLXN0cmluZy1sZW5ndGgtYm91bmRzLWFuZC1wcm9w YWdhdGUtaW52YWxpZC1qdi1pbi1pbXBsb2RlLnBhdGNoIGIvcGFja2FnZS9qcS8wMDE1LXRpZ2h0 ZW4tc3RyaW5nLWxlbmd0aC1ib3VuZHMtYW5kLXByb3BhZ2F0ZS1pbnZhbGlkLWp2LWluLWltcGxv ZGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYwNmM4MThhNDEuLjAwMDAw MDAwMDAKLS0tIGEvcGFja2FnZS9qcS8wMDE1LXRpZ2h0ZW4tc3RyaW5nLWxlbmd0aC1ib3VuZHMt YW5kLXByb3BhZ2F0ZS1pbnZhbGlkLWp2LWluLWltcGxvZGUucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw3MyArMCwwIEBACi1Gcm9tIDQ2ZDFkYTMwOTQ0Y2U5M2RkNjcxYWM3MmI2NTEzZmMwZWI3 NDc4MzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBpdGNoeW55IDxpdGNoeW55QGN5 Ym96dS5jby5qcD4KLURhdGU6IFR1ZSwgMTYgSnVuIDIwMjYgMTQ6MzE6MTQgKzA5MDAKLVN1Ympl Y3Q6IFtQQVRDSF0gVGlnaHRlbiBzdHJpbmcgbGVuZ3RoIGJvdW5kcyBhbmQgcHJvcGFnYXRlIGlu dmFsaWQganYgaW4KLSBpbXBsb2RlCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0 Ci0KLVRoZSBib3VuZCBhZGRlZCBpbiBDVkUtMjAyNi0zMjMxNiAoZTQ3ZTU2ZDIyKSBzdGlsbCBh bGxvd2VkCi1gc2l6ZW9mKGp2cF9zdHJpbmcpICsgKGN1cnJsZW4gKyBsZW4pICogMiArIDFgIHRv IHdyYXAgYHNpemVfdGAgb24KLTMyLWJpdCBwbGF0Zm9ybXMuIFRpZ2h0ZW4gdGhlIHRocmVzaG9s ZCBzbyB0aGUgZmluYWwgYWxsb2NhdGlvbgotZml0cyBpbiAzMi1iaXQgYHNpemVfdGAuCi0KLUFs c28gYnJlYWsgb3V0IG9mIGBqdl9zdHJpbmdfaW1wbG9kZWAgYW5kIGBmX3N0cmluZ19pbXBsb2Rl YCBvbmNlCi1ganZfc3RyaW5nX2FwcGVuZF9jb2RlcG9pbnRgIHJldHVybnMgYW4gaW52YWxpZCBg anZgOyBvdGhlcndpc2UgdGhlCi1uZXh0IGl0ZXJhdGlvbiB0cmlnZ2VycyB0aGUgYXNzZXJ0aW9u IGluIGBqdnBfc3RyaW5nX3B0cmAgKG9yCi1pbnZva2VzIHVuZGVmaW5lZCBiZWhhdmlvciB1bmRl ciBgLUROREVCVUdgKS4KLQotRml4ZXMgQ1ZFLTIwMjYtNTQ2NzkuCi0KLUNvLWF1dGhvcmVkLWJ5 OiBEaXJrIE3DvGxsZXIgPGRpcmtAZG1sbHIuZGU+Ci0KLUNWRTogQ1ZFLTIwMjYtNTQ2NzkKLVVw c3RyZWFtOiBodHRwczovL2dpdGh1Yi5jb20vanFsYW5nL2pxL2NvbW1pdC80NmQxZGEzMDk0NGNl OTNkZDY3MWFjNzJiNjUxM2ZjMGViNzQ3ODM3Ci1TaWduZWQtb2ZmLWJ5OiBUaG9tYXMgUGVyYWxl IDx0aG9tYXMucGVyYWxlQG1pbmQuYmU+Ci0tLS0KLSBzcmMvYnVpbHRpbi5jIHwgMSArCi0gc3Jj L2p2LmMgICAgICB8IDUgKysrLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9idWlsdGluLmMgYi9zcmMvYnVpbHRp bi5jCi1pbmRleCBlZDIwNWQ5OTM1Li5hM2I3YTYxYWU4IDEwMDY0NAotLS0tIGEvc3JjL2J1aWx0 aW4uYwotKysrIGIvc3JjL2J1aWx0aW4uYwotQEAgLTEzOTYsNiArMTM5Niw3IEBAIHN0YXRpYyBq diBmX3N0cmluZ19pbXBsb2RlKGpxX3N0YXRlICpqcSwganYgYSkgewotICAgICBpZiAobnYgPCAw IHx8IG52ID4gMHgxMEZGRkYgfHwgKG52ID49IDB4RDgwMCAmJiBudiA8PSAweERGRkYpKQotICAg ICAgIG52ID0gMHhGRkZEOyAvLyBVK0ZGRkQgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSCi0gICAgIHMg PSBqdl9zdHJpbmdfYXBwZW5kX2NvZGVwb2ludChzLCBudik7Ci0rICAgIGlmICghanZfaXNfdmFs aWQocykpIGJyZWFrOwotICAgfQotIAotICAganZfZnJlZShhKTsKLWRpZmYgLS1naXQgYS9zcmMv anYuYyBiL3NyYy9qdi5jCi1pbmRleCBiY2Q3YzliNWIwLi40OGE2M2U2ZTU1IDEwMDY0NAotLS0t IGEvc3JjL2p2LmMKLSsrKyBiL3NyYy9qdi5jCi1AQCAtMTE5Nyw3ICsxMTk3LDcgQEAgc3RhdGlj IHVpbnQzMl90IGp2cF9zdHJpbmdfcmVtYWluaW5nX3NwYWNlKGp2cF9zdHJpbmcqIHMpIHsKLSBz dGF0aWMganYganZwX3N0cmluZ19hcHBlbmQoanYgc3RyaW5nLCBjb25zdCBjaGFyKiBkYXRhLCB1 aW50MzJfdCBsZW4pIHsKLSAgIGp2cF9zdHJpbmcqIHMgPSBqdnBfc3RyaW5nX3B0cihzdHJpbmcp OwotICAgdWludDMyX3QgY3VycmxlbiA9IGp2cF9zdHJpbmdfbGVuZ3RoKHMpOwotLSAgaWYgKCh1 aW50NjRfdCljdXJybGVuICsgbGVuID49IElOVF9NQVgpIHsKLSsgIGlmICgodWludDY0X3QpY3Vy cmxlbiArIGxlbiA+PSBJTlRfTUFYIC0gc2l6ZW9mKGp2cF9zdHJpbmcpIC8gMikgewotICAgICBq dl9mcmVlKHN0cmluZyk7Ci0gICAgIHJldHVybiBqdl9pbnZhbGlkX3dpdGhfbXNnKGp2X3N0cmlu ZygiU3RyaW5nIHRvbyBsb25nIikpOwotICAgfQotQEAgLTEzOTgsNyArMTM5OCw3IEBAIGp2IGp2 X3N0cmluZ19yZXBlYXQoanYgaiwgaW50IG4pIHsKLSAgIH0KLSAgIGludCBsZW4gPSBqdl9zdHJp bmdfbGVuZ3RoX2J5dGVzKGp2X2NvcHkoaikpOwotICAgaW50NjRfdCByZXNfbGVuID0gKGludDY0 X3QpbGVuICogbjsKLS0gIGlmIChyZXNfbGVuID49IElOVF9NQVgpIHsKLSsgIGlmICgodWludDY0 X3QpcmVzX2xlbiA+PSBJTlRfTUFYIC0gc2l6ZW9mKGp2cF9zdHJpbmcpIC8gMikgewotICAgICBq dl9mcmVlKGopOwotICAgICByZXR1cm4ganZfaW52YWxpZF93aXRoX21zZyhqdl9zdHJpbmcoIlJl cGVhdCBzdHJpbmcgcmVzdWx0IHRvbyBsb25nIikpOwotICAgfQotQEAgLTE0ODMsNiArMTQ4Myw3 IEBAIGp2IGp2X3N0cmluZ19pbXBsb2RlKGp2IGopIHsKLSAgICAgaWYgKG52IDwgMCB8fCBudiA+ IDB4MTBGRkZGIHx8IChudiA+PSAweEQ4MDAgJiYgbnYgPD0gMHhERkZGKSkKLSAgICAgICBudiA9 IDB4RkZGRDsgLy8gVStGRkZEIFJFUExBQ0VNRU5UIENIQVJBQ1RFUgotICAgICBzID0ganZfc3Ry aW5nX2FwcGVuZF9jb2RlcG9pbnQocywgbnYpOwotKyAgICBpZiAoIWp2X2lzX3ZhbGlkKHMpKSBi cmVhazsKLSAgIH0KLSAKLSAgIGp2X2ZyZWUoaik7CmRpZmYgLS1naXQgYS9wYWNrYWdlL2pxL2px Lmhhc2ggYi9wYWNrYWdlL2pxL2pxLmhhc2gKaW5kZXggNDU5NjEzNDYyMC4uZDk2NWEyYWY3OCAx MDA2NDQKLS0tIGEvcGFja2FnZS9qcS9qcS5oYXNoCisrKyBiL3BhY2thZ2UvanEvanEuaGFzaApA QCAtMSwzICsxLDMgQEAKICMgTG9jYWxseSBjYWxjdWxhdGVkCi1zaGEyNTYgIDJiZTY0ZTcxMjlj ZWNiMTFkNTkwNjI5MGViYTEwYWY2OTRmYjllM2U3ZjlmYzIwOGEzMTFkYzMzY2E4MzdlYjAgIGpx LTEuOC4xLnRhci5negorc2hhMjU2ICA3MWI4ZDZlOGY1ZmU4MWY2YzZkMGQxMTBlMzg5MjI1MWY2 Y2U3NmVkMDk1YWJkMzE1ZTI2ZTZlMTE5M2FmM2FmICBqcS0xLjguMi50YXIuZ3oKIHNoYTI1NiAg YWQyYjRhMjY2YjIyNjg5MzljMTQ0Njk3OTc1OTcwNjA3NzQyMWNmOTA2YTIwM2FhMTg4YzZmMzk2 ZThjZmQ3NCAgQ09QWUlORwpkaWZmIC0tZ2l0IGEvcGFja2FnZS9qcS9qcS5tayBiL3BhY2thZ2Uv anEvanEubWsKaW5kZXggZWFhMDQ4NDZlMC4uODNkZmU0MzgxYSAxMDA2NDQKLS0tIGEvcGFja2Fn ZS9qcS9qcS5taworKysgYi9wYWNrYWdlL2pxL2pxLm1rCkBAIC00LDcgKzQsNyBAQAogIwogIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKIAotSlFfVkVSU0lPTiA9IDEuOC4xCitKUV9WRVJTSU9OID0g MS44LjIKIEpRX1NJVEUgPSBodHRwczovL2dpdGh1Yi5jb20vanFsYW5nL2pxL3JlbGVhc2VzL2Rv d25sb2FkL2pxLSQoSlFfVkVSU0lPTikKIEpRX0xJQ0VOU0UgPSBNSVQgKGNvZGUpLCBJQ1UgKGRl Y051bWJlciksIENDLUJZLTMuMCAoZG9jdW1lbnRhdGlvbiksIFwKIAlCU0QtMi1DbGF1c2UgKHN0 cnB0aW1lKQpAQCAtMTIsNTEgKzEyLDYgQEAgSlFfTElDRU5TRV9GSUxFUyA9IENPUFlJTkcKIEpR X0NQRV9JRF9WRU5ET1IgPSBqcWxhbmcKIEpRX0lOU1RBTExfU1RBR0lORyA9IFlFUwogCi0jIDAw MDEtZml4LW91dC1vZi1ib3VuZHMtcmVhZC1pbi1qdi1wYXJzZS1zaXplZC5wYXRjaAotSlFfSUdO T1JFX0NWRVMgKz0gQ1ZFLTIwMjYtMzk5NzkKLQotIyAwMDAyLWZpeC1OVUwtdHJ1bmNhdGlvbi1p bi10aGUtSlNPTi1wYXJzZXIucGF0Y2gKLUpRX0lHTk9SRV9DVkVTICs9IENWRS0yMDI2LTMzOTQ4 Ci0KLSMgMDAwMy1saW1pdC1wYXRoLWRlcHRoLXRvLXByZXZlbnQtc3RhY2stb3ZlcmZsb3cucGF0 Y2gKLUpRX0lHTk9SRV9DVkVTICs9IENWRS0yMDI2LTMzOTQ3Ci0KLSMgMDAwNC1maXgtaGVhcC1i dWZmZXItb3ZlcmZsb3ctaW4tanZwLXN0cmluZy1hcHBlbmQtYW5kLWp2cC1zdHJpbmctY29weS1y ZXBsYWNlLWJhZC5wYXRjaAotSlFfSUdOT1JFX0NWRVMgKz0gQ1ZFLTIwMjYtMzIzMTYKLQotIyAw MDA1LXJhbmRvbWl6ZS1oYXNoLXNlZWQtdG8tbWl0aWdhdGUtaGFzaC1jb2xsaXNpb24tRG9TLWF0 dGFja3MucGF0Y2gKLUpRX0lHTk9SRV9DVkVTICs9IENWRS0yMDI2LTQwMTY0Ci0KLSMgMDAwNi1s aW1pdC10aGUtY29udGFpbm1lbnQtY2hlY2stZGVwdGgucGF0Y2gKLUpRX0lHTk9SRV9DVkVTICs9 IDg6Q1ZFOiBDVkUtMjAyNi00MDYxMgotCi0jIDAwMDctZml4LU5VTC10cnVuY2F0aW9uLWluLXBy b2dyYW0tZmlsZXMtbG9hZGVkLXdpdGgtZi5wYXRjaAotSlFfSUdOT1JFX0NWRVMgKz0gQ1ZFLTIw MjYtNDEyNTYKLQotIyAwMDA4LWZpeC1zaWduZWQtaW50LW92ZXJmbG93LWluLXN0YWNrLXJlYWxs b2NhdGUucGF0Y2gKLUpRX0lHTk9SRV9DVkVTICs9IENWRS0yMDI2LTQxMjU3Ci0KLSMgMDAwOS1y ZWplY3QtbnVtZXJpYy1saXRlcmFscy1sb25nZXItdGhhbi1ERUMtTUFYLURJR0lUUy5wYXRjaAot SlFfSUdOT1JFX0NWRVMgKz0gQ1ZFLTIwMjYtNDM4OTQKLQotIyAwMDEwLXJlamVjdC1lbWJlZGRl ZC1OVUwtYnl0ZXMtaW4tbW9kdWxlLWltcG9ydC1wYXRocy5wYXRjaAotSlFfSUdOT1JFX0NWRVMg Kz0gQ1ZFLTIwMjYtNDM4OTUKLQotIyAwMDExLWxpbWl0LXJlY3Vyc2l2ZS1vYmplY3QtbWVyZ2Ut ZGVwdGgtdG8tcHJldmVudC1zdGFjay1vdmVyZmxvdy5wYXRjaAotSlFfSUdOT1JFX0NWRVMgKz0g Q1ZFLTIwMjYtNDM4OTYKLQotIyAwMDEyLWRldGVjdC1jaXJjdWxhci1tb2R1bGUtaW1wb3J0cy10 by1wcmV2ZW50LXN0YWNrLW92ZXJmbG93LnBhdGNoCi1KUV9JR05PUkVfQ1ZFUyArPSBDVkUtMjAy Ni00NDc3NwotCi0jIDAwMTMtZ3VhcmQtZGVlcC1zdHJ1Y3R1cmFsLWVxdWFsaXR5LWFuZC1jb21w YXJpc29uLXJlY3Vyc2lvbi5wYXRjaAotSlFfSUdOT1JFX0NWRVMgKz0gQ1ZFLTIwMjYtNDc3NzAK LQotIyAwMDE0LWZpeC1oZWFwLWJ1ZmZlci1vdmVyZmxvdy1pbi1yYXctZmlsZS1sb2FkaW5nLnBh dGNoCi1KUV9JR05PUkVfQ1ZFUyArPSBDVkUtMjAyNi00OTgzOQotCi0jIDAwMTUtdGlnaHRlbi1z dHJpbmctbGVuZ3RoLWJvdW5kcy1hbmQtcHJvcGFnYXRlLWludmFsaWQtanYtaW4taW1wbG9kZS5w YXRjaAotSlFfSUdOT1JFX0NWRVMgKz0gQ1ZFLTIwMjYtNTQ2NzkKLQogIyB1c2VzIGM5OSBzcGVj aWZpYyBmZWF0dXJlcwogSlFfQ09ORl9FTlYgKz0gQ0ZMQUdTPSIkKFRBUkdFVF9DRkxBR1MpIC1z dGQ9Yzk5IgogSE9TVF9KUV9DT05GX0VOViArPSBDRkxBR1M9IiQoSE9TVF9DRkxBR1MpIC1zdGQ9 Yzk5IgotLSAKMi41NC4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpidWlsZHJvb3QgbWFpbGluZyBsaXN0CmJ1aWxkcm9vdEBidWlsZHJvb3Qub3JnCmh0 dHBzOi8vbGlzdHMuYnVpbGRyb290Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2J1aWxkcm9vdAo=