From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D0895C2D0E2 for ; Tue, 22 Sep 2020 09:22:01 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 93BED2075E for ; Tue, 22 Sep 2020 09:22:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="CMiu6O2C" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 93BED2075E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:36596 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kKeUp-0008Vv-Fo for qemu-devel@archiver.kernel.org; Tue, 22 Sep 2020 05:21:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59064) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kKe8s-00070S-8k for qemu-devel@nongnu.org; Tue, 22 Sep 2020 04:59:19 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:36649) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kKe8m-0002Qi-HC for qemu-devel@nongnu.org; Tue, 22 Sep 2020 04:59:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600765148; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=NsjkbJRUZlrq992UPIRwGA/+zdtROKztSenCxyWjKcM=; b=CMiu6O2CVaRCyzu07Ey+yIlHsC5GSt6YZ8niRkXfXwCYptiG8TtZlZaPXBAdSBJ1naCXhD raEFjYHZh3YTDblnNx4Wd0dDgMsFX6GoleSP6T3w9g9xpgAPAuVMqG/El0onxSW9JZlZtz 9BqyQ/bsxvcabEONgNklXVOU+pv/Rmk= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-575-lgfZASN-PZyX_MZwrQGadg-1; Tue, 22 Sep 2020 04:59:02 -0400 X-MC-Unique: lgfZASN-PZyX_MZwrQGadg-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 20ABE801AE1; Tue, 22 Sep 2020 08:58:57 +0000 (UTC) Received: from localhost (ovpn-115-46.ams2.redhat.com [10.36.115.46]) by smtp.corp.redhat.com (Postfix) with ESMTP id 992ED7881A; Tue, 22 Sep 2020 08:58:39 +0000 (UTC) From: Stefan Hajnoczi To: qemu-devel@nongnu.org Subject: [PATCH v2] qemu/atomic.h: prefix qemu_ to solve collisions Date: Tue, 22 Sep 2020 09:58:38 +0100 Message-Id: <20200922085838.230505-1-stefanha@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: base64 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Received-SPF: pass client-ip=216.205.24.124; envelope-from=stefanha@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/22 00:31:51 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.455, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MIME_BASE64_TEXT=1.741, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng , Peter Maydell , sheepdog@lists.wpkg.org, kvm@vger.kernel.org, "Michael S. Tsirkin" , Jason Wang , David Hildenbrand , Yuval Shaia , Markus Armbruster , Max Filippov , Alistair Francis , Gerd Hoffmann , Huacai Chen , Jiri Slaby , Stefano Stabellini , Alberto Garcia , Sagar Karandikar , Yoshinori Sato , Juan Quintela , Paul Durrant , Michael Roth , Halil Pasic , Christian Borntraeger , Aleksandar Markovic , Anthony Perard , Liu Yuan , Richard Henderson , Matthew Rosato , Thomas Huth , Eduardo Habkost , Stefan Weil , Peter Lieven , "Dr. David Alan Gilbert" , qemu-s390x@nongnu.org, qemu-arm@nongnu.org, Stefan Hajnoczi , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , qemu-riscv@nongnu.org, Sunil Muthuswamy , John Snow , Hailiang Zhang , xen-devel@lists.xenproject.org, Kevin Wolf , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , qemu-block@nongnu.org, Bastian Koppelmann , Cornelia Huck , Laurent Vivier , Max Reitz , Palmer Dabbelt , Paolo Bonzini , Aleksandar Rikalo , Aurelien Jarno Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Y2xhbmcncyBDMTEgYXRvbWljX2ZldGNoXyooKSBmdW5jdGlvbnMgb25seSB0YWtlIGEgQzExIGF0 b21pYyB0eXBlCnBvaW50ZXIgYXJndW1lbnQuIFFFTVUgdXNlcyBkaXJlY3QgdHlwZXMgKGludCwg ZXRjKSBhbmQgdGhpcyBjYXVzZXMgYQpjb21waWxlciBlcnJvciB3aGVuIGEgUUVNVSBjb2RlIGNh bGxzIHRoZXNlIGZ1bmN0aW9ucyBpbiBhIHNvdXJjZSBmaWxlCnRoYXQgYWxzbyBpbmNsdWRlZCA8 c3RkYXRvbWljLmg+IHZpYSBhIHN5c3RlbSBoZWFkZXIgZmlsZToKCiAgJCBDQz1jbGFuZyBDWFg9 Y2xhbmcrKyAuL2NvbmZpZ3VyZSAuLi4gJiYgbWFrZQogIC4uL3V0aWwvYXN5bmMuYzo3OToxNzog ZXJyb3I6IGFkZHJlc3MgYXJndW1lbnQgdG8gYXRvbWljIG9wZXJhdGlvbiBtdXN0IGJlIGEgcG9p bnRlciB0byBfQXRvbWljIHR5cGUgKCd1bnNpZ25lZCBpbnQgKicgaW52YWxpZCkKCkF2b2lkIHVz aW5nIGF0b21pY18qKCkgbmFtZXMgaW4gUUVNVSdzIGF0b21pYy5oIHNpbmNlIHRoYXQgbmFtZXNw YWNlIGlzCnVzZWQgYnkgPHN0ZGF0b21pYy5oPi4gUHJlZml4IFFFTVUncyBBUElzIHdpdGggcWVt dV8gc28gdGhhdCBhdG9taWMuaAphbmQgPHN0ZGF0b21pYy5oPiBjYW4gY28tZXhpc3QuCgpUaGlz IHBhdGNoIHdhcyBnZW5lcmF0ZWQgdXNpbmc6CgogICQgZ2l0IGdyZXAgLWggLW8gJ1w8YXRvbWlj XCg2NFwpXD9fW2EtejAtOV9dXCsnIGluY2x1ZGUvcWVtdS9hdG9taWMuaCB8IFwKICAgIHNvcnQg LXUgPi90bXAvY2hhbmdlZF9pZGVudGlmaWVycwogICQgZm9yIGlkZW50aWZpZXIgaW4gJCg8L3Rt cC9jaGFuZ2VkX2lkZW50aWZpZXJzKTsgZG8KICAgICAgIHNlZCAtaSAicyVcPCRpZGVudGlmaWVy XD4lcWVtdV8kaWRlbnRpZmllciVnIiBcCiAgICAgICAgICAgJChnaXQgZ3JlcCAtSSAtbCAiXDwk aWRlbnRpZmllclw+IikKICAgIGRvbmUKCkkgbWFudWFsbHkgZml4ZWQgbGluZS13cmFwIGlzc3Vl cyBhbmQgbWlzYWxpZ25lZCByU1QgdGFibGVzLgoKU2lnbmVkLW9mZi1ieTogU3RlZmFuIEhham5v Y3ppIDxzdGVmYW5oYUByZWRoYXQuY29tPgotLS0KdjI6CiAqIFRoZSBkaWZmIG9mIG15IG1hbnVh bCBmaXh1cHMgaXMgYXZhaWxhYmxlIGhlcmU6CiAgIGh0dHBzOi8vdm1zcGxpY2UubmV0L35zdGVm YW4vYXRvbWljLW5hbWVzcGFjZS1wcmUtZml4dXBzLmRpZmYKICAgLSBEcm9wcGluZyAjaWZuZGVm IHFlbXVfYXRvbWljX2ZldGNoX2FkZCBpbiBhdG9taWMuaAogICAtIGF0b21pY18jI1goaGFkZHIs IHZhbCkgZ2x1ZSBtYWNyb3Mgbm90IGNhdWdodCBieSBncmVwCiAgIC0gS2VlcCBhdG9taWNfYWRk LWJlbmNoIG5hbWUKICAgLSBDIHByZXByb2Nlc3NvciBiYWNrc2xhc2gtbmV3bGluZSAoJ1wnKSBj b2x1bW4gYWxpZ25tZW50CiAgIC0gTGluZSB3cmFwcGluZwogKiBVc2UgZ3JlcCAtSSB0byBhdm9p ZCBhY2NpZGVudGFsbHkgbW9kaWZ5aW5nIGJpbmFyeSBmaWxlcyAoUklTQy1WCiAgIE9wZW5TQkkg RUxGcykgW0VyaWMgQmxha2VdCiAqIFR3ZWFrIC5naXRvcmRlciB0byBzaG93IGF0b21pYy5oIGNo YW5nZXMgZmlyc3QgW0VyaWMgQmxha2VdCiAqIFVwZGF0ZSBncmVwIGNvbW1hbmRzIGluIGNvbW1p dCBkZXNjcmlwdGlvbiBzbyByZXZpZXdlcnMgY2FuIHJlcHJvZHVjZQogICBtZWNoYW5pY2FsIGNo YW5nZXMgW0VyaWMgQmxha2VdCi0tLQogaW5jbHVkZS9xZW11L2F0b21pYy5oICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMjU4ICsrKysrKystLS0tLS0tCiBkb2NzL2RldmVsL2xvY2tjbnQudHh0 ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKy0KIGRvY3MvZGV2ZWwvcmN1LnR4dCAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICA0MCArLS0KIGFjY2VsL3RjZy9hdG9taWNfdGVtcGxh dGUuaCAgICAgICAgICAgICAgICAgICB8ICAyMCArLQogaW5jbHVkZS9ibG9jay9haW8td2FpdC5o ICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBpbmNsdWRlL2Jsb2NrL2Fpby5oICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIGluY2x1ZGUvZXhlYy9jcHVfbGRzdC5oICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogaW5jbHVkZS9leGVjL2V4ZWMtYWxsLmggICAg ICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBpbmNsdWRlL2V4ZWMvbG9nLmggICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGluY2x1ZGUvZXhlYy9tZW1vcnkuaCAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArLQogaW5jbHVkZS9leGVjL3JhbV9hZGRyLmggICAgICAg ICAgICAgICAgICAgICAgIHwgIDI3ICstCiBpbmNsdWRlL2V4ZWMvcmFtbGlzdC5oICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDIgKy0KIGluY2x1ZGUvZXhlYy90Yi1sb29rdXAuaCAgICAgICAg ICAgICAgICAgICAgICB8ICAgNCArLQogaW5jbHVkZS9ody9jb3JlL2NwdS5oICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAyICstCiBpbmNsdWRlL3FlbXUvYXRvbWljMTI4LmggICAgICAgICAg ICAgICAgICAgICAgfCAgIDYgKy0KIGluY2x1ZGUvcWVtdS9iaXRvcHMuaCAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMiArLQogaW5jbHVkZS9xZW11L2Nvcm91dGluZS5oICAgICAgICAgICAg ICAgICAgICAgIHwgICAyICstCiBpbmNsdWRlL3FlbXUvbG9nLmggICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDYgKy0KIGluY2x1ZGUvcWVtdS9xdWV1ZS5oICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgOCArLQogaW5jbHVkZS9xZW11L3JjdS5oICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDEwICstCiBpbmNsdWRlL3FlbXUvcmN1X3F1ZXVlLmggICAgICAgICAgICAgICAg ICAgICAgfCAxMDkgKysrLS0tCiBpbmNsdWRlL3FlbXUvc2VxbG9jay5oICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDggKy0KIGluY2x1ZGUvcWVtdS9zdGF0czY0LmggICAgICAgICAgICAgICAg ICAgICAgICB8ICAyOCArLQogaW5jbHVkZS9xZW11L3RocmVhZC5oICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDM3ICstCiAuLi4vaW5maW5pYmFuZC9ody92bXdfcHZyZG1hL3B2cmRtYV9yaW5n LmggICAgfCAgMTQgKy0KIGxpbnV4LXVzZXIvcWVtdS5oICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgNCArLQogdGNnL2kzODYvdGNnLXRhcmdldC5oICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAyICstCiB0Y2cvczM5MC90Y2ctdGFyZ2V0LmggICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKy0KIHRjZy90Y2kvdGNnLXRhcmdldC5oICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMiArLQogYWNjZWwva3ZtL2t2bS1hbGwuYyAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDEyICstCiBhY2NlbC90Y2cvY3B1LWV4ZWMuYyAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMTYgKy0KIGFjY2VsL3RjZy9jcHV0bGIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyNCArLQogYWNjZWwvdGNnL3RjZy1hbGwuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAyICstCiBhY2NlbC90Y2cvdHJhbnNsYXRlLWFsbC5jICAgICAgICAgICAgICAgICAgICAgfCAg NTYgKy0tCiBhdWRpby9qYWNrYXVkaW8uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg MjAgKy0KIGJsb2NrLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg NCArLQogYmxvY2svYmxvY2stYmFja2VuZC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE1 ICstCiBibG9jay9pby5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDgg Ky0tCiBibG9jay9uZnMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KIGJsb2NrL3NoZWVwZG9nLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr LQogYmxvY2svdGhyb3R0bGUtZ3JvdXBzLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDEzICst CiBibG9jay90aHJvdHRsZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0K IGJsb2NrZGV2LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog YmxvY2tqb2IuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBj b250cmliL2xpYnZob3N0LXVzZXIvbGlidmhvc3QtdXNlci5jICAgICAgICAgfCAgIDIgKy0KIGNw dXMtY29tbW9uLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyNiArLQogZHVt cC9kdW1wLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBleGVj LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDkgKy0tCiBody9j b3JlL2NwdS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGh3L2Rp c3BsYXkvcXhsLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNyArLQogaHcvaHlw ZXJ2L2h5cGVydi5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDExICstCiBody9oeXBl cnYvdm1idXMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGh3L2kzODYv eGVuL3hlbi1odm0uYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogaHcvaW50Yy9y eF9pY3UuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICstCiBody9pbnRjL3Np Zml2ZV9wbGljLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGh3L21pc2MvZWR1 LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNiArLQogaHcvbmV0L3ZpcnRp by1uZXQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICstCiBody9yZG1hL3JkbWFf YmFja2VuZC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTkgKy0KIGh3L3JkbWEvcmRtYV9y bS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogaHcvcmRtYS92bXcvcHZy ZG1hX2Rldl9yaW5nLmMgICAgICAgICAgICAgICAgIHwgICA0ICstCiBody9zMzkweC9zMzkwLXBj aS1idXMuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGh3L3MzOTB4L3ZpcnRpby1j Y3cuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogaHcvdmlydGlvL3Zob3N0LmMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBody92aXJ0aW8vdmlydGlvLW1t aW8uYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGh3L3ZpcnRpby92aXJ0aW8tcGNp LmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogaHcvdmlydGlvL3ZpcnRpby5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE2ICstCiBody94dGVuc2EvcGljX2NwdS5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGlvdGhyZWFkLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogbGludXgtdXNlci9ocHBhL2NwdV9sb29w LmMgICAgICAgICAgICAgICAgICAgIHwgIDExICstCiBsaW51eC11c2VyL3NpZ25hbC5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIG1pZ3JhdGlvbi9jb2xvLWZhaWxvdmVyLmMg ICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogbWlncmF0aW9uL21pZ3JhdGlvbi5jICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBtaWdyYXRpb24vbXVsdGlmZC5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMTggKy0KIG1pZ3JhdGlvbi9wb3N0Y29weS1yYW0uYyAgICAg ICAgICAgICAgICAgICAgICB8ICAzNSArLQogbWlncmF0aW9uL3JkbWEuYyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDM0ICstCiBtb25pdG9yL2htcC5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDYgKy0KIG1vbml0b3IvbWlzYy5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMiArLQogbW9uaXRvci9tb25pdG9yLmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICA2ICstCiBxZW11LW5iZC5jICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDIgKy0KIHFnYS9jb21tYW5kcy5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAxMiArLQogcW9tL29iamVjdC5jICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIwICstCiBzY3NpL3FlbXUtcHItaGVscGVyLmMgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDQgKy0KIHNvZnRtbXUvY3B1LXRocm90dGxlLmMgICAgICAgICAgICAgICAg ICAgICAgICB8ICAxMCArLQogc29mdG1tdS9jcHVzLmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDQyICstLQogc29mdG1tdS9tZW1vcnkuYyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICA2ICstCiBzb2Z0bW11L3ZsLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIHRhcmdldC9hcm0vbXRlX2hlbHBlci5jICAgICAgICAgICAgICAgICAg ICAgICB8ICAgNiArLQogdGFyZ2V0L2hwcGEvb3BfaGVscGVyLmMgICAgICAgICAgICAgICAgICAg ICAgIHwgICAyICstCiB0YXJnZXQvaTM4Ni9tZW1faGVscGVyLmMgICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKy0KIHRhcmdldC9pMzg2L3docHgtYWxsLmMgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgNiArLQogdGFyZ2V0L3Jpc2N2L2NwdV9oZWxwZXIuYyAgICAgICAgICAgICAgICAgICAg IHwgICAyICstCiB0YXJnZXQvczM5MHgvbWVtX2hlbHBlci5jICAgICAgICAgICAgICAgICAgICAg fCAgIDQgKy0KIHRhcmdldC94dGVuc2EvZXhjX2hlbHBlci5jICAgICAgICAgICAgICAgICAgICB8 ICAgNCArLQogdGFyZ2V0L3h0ZW5zYS9vcF9oZWxwZXIuYyAgICAgICAgICAgICAgICAgICAgIHwg ICAyICstCiB0Y2cvdGNnLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg NTkgKystLQogdGNnL3RjaS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAyICstCiB0ZXN0cy9hdG9taWM2NC1iZW5jaC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAg MTQgKy0KIHRlc3RzL2F0b21pY19hZGQtYmVuY2guYyAgICAgICAgICAgICAgICAgICAgICB8ICAx NCArLQogdGVzdHMvaW90aHJlYWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy ICstCiB0ZXN0cy9xaHQtYmVuY2guYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTIg Ky0KIHRlc3RzL3JjdXRvcnR1cmUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyNCAr LQogdGVzdHMvdGVzdC1haW8tbXVsdGl0aHJlYWQuYyAgICAgICAgICAgICAgICAgIHwgIDUyICst LQogdGVzdHMvdGVzdC1sb2dnaW5nLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICst CiB0ZXN0cy90ZXN0LXJjdS1saXN0LmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzggKy0K IHRlc3RzL3Rlc3QtdGhyZWFkLXBvb2wuYyAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQog dXRpbC9haW8tcG9zaXguYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE1ICstCiB1 dGlsL2Fpby13YWl0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHV0 aWwvYWlvLXdpbjMyLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogdXRp bC9hc3luYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDM3ICstCiB1dGls L2F0b21pYzY0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIHV0aWwv Yml0bWFwLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNCArLQogdXRpbC9j YWNoZWluZm8uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiB1dGlsL2Zk bW9uLWVwb2xsLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHV0aWwvZmRt b24taW9fdXJpbmcuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMyArLQogdXRpbC9sb2Nr Y250LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDU5ICsrLS0KIHV0aWwvbG9n LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQogdXRpbC9xZW11 LWNvcm91dGluZS1sb2NrLmMgICAgICAgICAgICAgICAgICAgIHwgIDE5ICstCiB1dGlsL3FlbXUt Y29yb3V0aW5lLXNsZWVwLmMgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHV0aWwvcWVtdS1j b3JvdXRpbmUuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogdXRpbC9xZW11LXNv Y2tldHMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiB1dGlsL3FlbXUtdGhy ZWFkLXBvc2l4LmMgICAgICAgICAgICAgICAgICAgICAgfCAgMTIgKy0KIHV0aWwvcWVtdS10aHJl YWQtd2luMzIuYyAgICAgICAgICAgICAgICAgICAgICB8ICAxMiArLQogdXRpbC9xZW11LXRpbWVy LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICstCiB1dGlsL3FodC5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNTcgKy0tCiB1dGlsL3FzcC5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNTAgKy0tCiB1dGlsL3JjdS5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzYgKy0KIHV0aWwvc3RhdHM2NC5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzNCArLQogZG9jcy9kZXZlbC9hdG9taWNz LnJzdCAgICAgICAgICAgICAgICAgICAgICAgIHwgMzI4ICsrKysrKysrKy0tLS0tLS0tLQogc2Ny aXB0cy9rZXJuZWwtZG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiB0Y2cv YWFyY2g2NC90Y2ctdGFyZ2V0LmMuaW5jICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHRjZy9t aXBzL3RjZy10YXJnZXQuYy5pbmMgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogdGNnL3Bw Yy90Y2ctdGFyZ2V0LmMuaW5jICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiB0Y2cvc3Bh cmMvdGNnLXRhcmdldC5jLmluYyAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIDEzMyBmaWxl cyBjaGFuZ2VkLCAxMjAwIGluc2VydGlvbnMoKyksIDExMzUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvaW5jbHVkZS9xZW11L2F0b21pYy5oIGIvaW5jbHVkZS9xZW11L2F0b21pYy5oCmluZGV4 IGZmNzJkYjUxMTUuLmYyYzQwNmViNDkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcWVtdS9hdG9taWMu aAorKysgYi9pbmNsdWRlL3FlbXUvYXRvbWljLmgKQEAgLTEyNSw0OSArMTI1LDQ5IEBACiAgKiBu byBlZmZlY3Qgb24gdGhlIGdlbmVyYXRlZCBjb2RlIGJ1dCBub3QgdXNpbmcgdGhlIGF0b21pYyBw cmltaXRpdmVzCiAgKiB3aWxsIGdldCBmbGFnZ2VkIGJ5IHNhbml0aXplcnMgYXMgYSB2aW9sYXRp b24uCiAgKi8KLSNkZWZpbmUgYXRvbWljX3JlYWRfX25vY2hlY2socHRyKSBcCisjZGVmaW5lIHFl bXVfYXRvbWljX3JlYWRfX25vY2hlY2socHRyKSBcCiAgICAgX19hdG9taWNfbG9hZF9uKHB0ciwg X19BVE9NSUNfUkVMQVhFRCkKIAotI2RlZmluZSBhdG9taWNfcmVhZChwdHIpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBxZW11X2F0b21pY19yZWFkKHB0cikgICAgICAg ICAgICAgICAgICAgICAgICAgXAogICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAogICAgIFFFTVVfQlVJTERfQlVHX09OKHNpemVvZigqcHRyKSA+ IEFUT01JQ19SRUdfU0laRSk7IFwKLSAgICBhdG9taWNfcmVhZF9fbm9jaGVjayhwdHIpOyAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgICBxZW11X2F0b21pY19yZWFkX19ub2NoZWNrKHB0cik7 ICAgICAgICAgICAgICAgICAgIFwKICAgICB9KQogCi0jZGVmaW5lIGF0b21pY19zZXRfX25vY2hl Y2socHRyLCBpKSBcCisjZGVmaW5lIHFlbXVfYXRvbWljX3NldF9fbm9jaGVjayhwdHIsIGkpIFwK ICAgICBfX2F0b21pY19zdG9yZV9uKHB0ciwgaSwgX19BVE9NSUNfUkVMQVhFRCkKIAotI2RlZmlu ZSBhdG9taWNfc2V0KHB0ciwgaSkgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgXAorI2RlZmlu ZSBxZW11X2F0b21pY19zZXQocHRyLCBpKSAgZG8geyAgICAgICAgICAgICAgICAgIFwKICAgICBR RU1VX0JVSUxEX0JVR19PTihzaXplb2YoKnB0cikgPiBBVE9NSUNfUkVHX1NJWkUpOyBcCi0gICAg YXRvbWljX3NldF9fbm9jaGVjayhwdHIsIGkpOyAgICAgICAgICAgICAgICAgICAgICBcCisgICAg cWVtdV9hdG9taWNfc2V0X19ub2NoZWNrKHB0ciwgaSk7ICAgICAgICAgICAgICAgICAgXAogfSB3 aGlsZSgwKQogCiAvKiBTZWUgYWJvdmU6IG1vc3QgY29tcGlsZXJzIGN1cnJlbnRseSB0cmVhdCBj b25zdW1lIGFuZCBhY3F1aXJlIHRoZQotICogc2FtZSwgYnV0IHRoaXMgc2xvd3MgZG93biBhdG9t aWNfcmN1X3JlYWQgdW5uZWNlc3NhcmlseS4KKyAqIHNhbWUsIGJ1dCB0aGlzIHNsb3dzIGRvd24g cWVtdV9hdG9taWNfcmN1X3JlYWQgdW5uZWNlc3NhcmlseS4KICAqLwogI2lmZGVmIF9fU0FOSVRJ WkVfVEhSRUFEX18KLSNkZWZpbmUgYXRvbWljX3JjdV9yZWFkX19ub2NoZWNrKHB0ciwgdmFscHRy KSAgICAgICAgICAgXAorI2RlZmluZSBxZW11X2F0b21pY19yY3VfcmVhZF9fbm9jaGVjayhwdHIs IHZhbHB0cikgICAgICBcCiAgICAgX19hdG9taWNfbG9hZChwdHIsIHZhbHB0ciwgX19BVE9NSUNf Q09OU1VNRSk7CiAjZWxzZQotI2RlZmluZSBhdG9taWNfcmN1X3JlYWRfX25vY2hlY2socHRyLCB2 YWxwdHIpICAgICAgICAgICBcCisjZGVmaW5lIHFlbXVfYXRvbWljX3JjdV9yZWFkX19ub2NoZWNr KHB0ciwgdmFscHRyKSAgICAgIFwKICAgICBfX2F0b21pY19sb2FkKHB0ciwgdmFscHRyLCBfX0FU T01JQ19SRUxBWEVEKTsgICAgICAgXAogICAgIHNtcF9yZWFkX2JhcnJpZXJfZGVwZW5kcygpOwog I2VuZGlmCiAKLSNkZWZpbmUgYXRvbWljX3JjdV9yZWFkKHB0cikgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyNkZWZpbmUgcWVtdV9hdG9taWNfcmN1X3JlYWQocHRyKSAgICAgICAgICAgICAg ICAgICAgIFwKICAgICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKICAgICBRRU1VX0JVSUxEX0JVR19PTihzaXplb2YoKnB0cikgPiBBVE9NSUNfUkVH X1NJWkUpOyBcCiAgICAgdHlwZW9mX3N0cmlwX3F1YWwoKnB0cikgX3ZhbDsgICAgICAgICAgICAg ICAgICAgICBcCi0gICAgYXRvbWljX3JjdV9yZWFkX19ub2NoZWNrKHB0ciwgJl92YWwpOyAgICAg ICAgICAgICBcCisgICAgcWVtdV9hdG9taWNfcmN1X3JlYWRfX25vY2hlY2socHRyLCAmX3ZhbCk7 ICAgICAgICBcCiAgICAgX3ZhbDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCiAgICAgfSkKIAotI2RlZmluZSBhdG9taWNfcmN1X3NldChwdHIsIGkpIGRvIHsg ICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBxZW11X2F0b21pY19yY3Vfc2V0KHB0ciwgaSkg ZG8geyAgICAgICAgICAgICAgXAogICAgIFFFTVVfQlVJTERfQlVHX09OKHNpemVvZigqcHRyKSA+ IEFUT01JQ19SRUdfU0laRSk7IFwKICAgICBfX2F0b21pY19zdG9yZV9uKHB0ciwgaSwgX19BVE9N SUNfUkVMRUFTRSk7ICAgICAgIFwKIH0gd2hpbGUoMCkKIAotI2RlZmluZSBhdG9taWNfbG9hZF9h Y3F1aXJlKHB0cikgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIHFlbXVfYXRvbWlj X2xvYWRfYWNxdWlyZShwdHIpICAgICAgICAgICAgICAgICAgIFwKICAgICAoeyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIFFFTVVfQlVJTERf QlVHX09OKHNpemVvZigqcHRyKSA+IEFUT01JQ19SRUdfU0laRSk7ICBcCiAgICAgdHlwZW9mX3N0 cmlwX3F1YWwoKnB0cikgX3ZhbDsgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTE3NSw3ICsx NzUsNyBAQAogICAgIF92YWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCiAgICAgfSkKIAotI2RlZmluZSBhdG9taWNfc3RvcmVfcmVsZWFzZShwdHIsIGkp ICBkbyB7ICAgICAgICAgICAgICBcCisjZGVmaW5lIHFlbXVfYXRvbWljX3N0b3JlX3JlbGVhc2Uo cHRyLCBpKSAgZG8geyAgICAgICAgIFwKICAgICBRRU1VX0JVSUxEX0JVR19PTihzaXplb2YoKnB0 cikgPiBBVE9NSUNfUkVHX1NJWkUpOyAgXAogICAgIF9fYXRvbWljX3N0b3JlX24ocHRyLCBpLCBf X0FUT01JQ19SRUxFQVNFKTsgICAgICAgICBcCiB9IHdoaWxlKDApCkBAIC0xODMsNTYgKzE4Myw3 NSBAQAogCiAvKiBBbGwgdGhlIHJlbWFpbmluZyBvcGVyYXRpb25zIGFyZSBmdWxseSBzZXF1ZW50 aWFsbHkgY29uc2lzdGVudCAqLwogCi0jZGVmaW5lIGF0b21pY194Y2hnX19ub2NoZWNrKHB0ciwg aSkgICAgKHsgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIHFlbXVfYXRvbWljX3hjaGdfX25v Y2hlY2socHRyLCBpKSAgICAoeyAgICAgICAgICAgICBcCiAgICAgX19hdG9taWNfZXhjaGFuZ2Vf bihwdHIsIChpKSwgX19BVE9NSUNfU0VRX0NTVCk7ICAgICAgICBcCiB9KQogCi0jZGVmaW5lIGF0 b21pY194Y2hnKHB0ciwgaSkgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVm aW5lIHFlbXVfYXRvbWljX3hjaGcocHRyLCBpKSAgICAoeyAgICAgICAgICAgICAgICAgICAgICBc CiAgICAgUUVNVV9CVUlMRF9CVUdfT04oc2l6ZW9mKCpwdHIpID4gQVRPTUlDX1JFR19TSVpFKTsg ICAgICBcCi0gICAgYXRvbWljX3hjaGdfX25vY2hlY2socHRyLCBpKTsgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisgICAgcWVtdV9hdG9taWNfeGNoZ19fbm9jaGVjayhwdHIsIGkpOyAgICAg ICAgICAgICAgICAgICAgICBcCiB9KQogCiAvKiBSZXR1cm5zIHRoZSBldmVudHVhbCB2YWx1ZSwg ZmFpbGVkIG9yIG5vdCAqLwotI2RlZmluZSBhdG9taWNfY21weGNoZ19fbm9jaGVjayhwdHIsIG9s ZCwgbmV3KSAgICAoeyAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBxZW11X2F0b21pY19j bXB4Y2hnX19ub2NoZWNrKHB0ciwgb2xkLCBuZXcpICAgICh7ICAgICAgICAgICAgICAgXAogICAg IHR5cGVvZl9zdHJpcF9xdWFsKCpwdHIpIF9vbGQgPSAob2xkKTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAogICAgICh2b2lkKV9fYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2VfbihwdHIs ICZfb2xkLCBuZXcsIGZhbHNlLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgX19BVE9NSUNfU0VRX0NTVCwgX19BVE9NSUNfU0VRX0NTVCk7ICAgICAgXAogICAgIF9v bGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAogfSkKIAotI2RlZmluZSBhdG9taWNfY21weGNoZyhwdHIsIG9sZCwgbmV3KSAg ICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBxZW11X2F0b21pY19j bXB4Y2hnKHB0ciwgb2xkLCBuZXcpICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg IFFFTVVfQlVJTERfQlVHX09OKHNpemVvZigqcHRyKSA+IEFUT01JQ19SRUdfU0laRSk7ICAgICAg ICAgICAgICAgICAgXAotICAgIGF0b21pY19jbXB4Y2hnX19ub2NoZWNrKHB0ciwgb2xkLCBuZXcp OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHFlbXVfYXRvbWljX2NtcHhjaGdf X25vY2hlY2socHRyLCBvbGQsIG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgXAogfSkKIAog LyogUHJvdmlkZSBzaG9ydGVyIG5hbWVzIGZvciBHQ0MgYXRvbWljIGJ1aWx0aW5zLCByZXR1cm4g b2xkIHZhbHVlICovCi0jZGVmaW5lIGF0b21pY19mZXRjaF9pbmMocHRyKSAgX19hdG9taWNfZmV0 Y2hfYWRkKHB0ciwgMSwgX19BVE9NSUNfU0VRX0NTVCkKLSNkZWZpbmUgYXRvbWljX2ZldGNoX2Rl YyhwdHIpICBfX2F0b21pY19mZXRjaF9zdWIocHRyLCAxLCBfX0FUT01JQ19TRVFfQ1NUKQorI2Rl ZmluZSBxZW11X2F0b21pY19mZXRjaF9pbmMocHRyKSBcCisgICAgX19hdG9taWNfZmV0Y2hfYWRk KHB0ciwgMSwgX19BVE9NSUNfU0VRX0NTVCkKKyNkZWZpbmUgcWVtdV9hdG9taWNfZmV0Y2hfZGVj KHB0cikgXAorICAgIF9fYXRvbWljX2ZldGNoX3N1YihwdHIsIDEsIF9fQVRPTUlDX1NFUV9DU1Qp CiAKLSNpZm5kZWYgYXRvbWljX2ZldGNoX2FkZAotI2RlZmluZSBhdG9taWNfZmV0Y2hfYWRkKHB0 ciwgbikgX19hdG9taWNfZmV0Y2hfYWRkKHB0ciwgbiwgX19BVE9NSUNfU0VRX0NTVCkKLSNkZWZp bmUgYXRvbWljX2ZldGNoX3N1YihwdHIsIG4pIF9fYXRvbWljX2ZldGNoX3N1YihwdHIsIG4sIF9f QVRPTUlDX1NFUV9DU1QpCi0jZGVmaW5lIGF0b21pY19mZXRjaF9hbmQocHRyLCBuKSBfX2F0b21p Y19mZXRjaF9hbmQocHRyLCBuLCBfX0FUT01JQ19TRVFfQ1NUKQotI2RlZmluZSBhdG9taWNfZmV0 Y2hfb3IocHRyLCBuKSAgX19hdG9taWNfZmV0Y2hfb3IocHRyLCBuLCBfX0FUT01JQ19TRVFfQ1NU KQotI2RlZmluZSBhdG9taWNfZmV0Y2hfeG9yKHB0ciwgbikgX19hdG9taWNfZmV0Y2hfeG9yKHB0 ciwgbiwgX19BVE9NSUNfU0VRX0NTVCkKLSNlbmRpZgorI2RlZmluZSBxZW11X2F0b21pY19mZXRj aF9hZGQocHRyLCBuKSBcCisgICAgX19hdG9taWNfZmV0Y2hfYWRkKHB0ciwgbiwgX19BVE9NSUNf U0VRX0NTVCkKKyNkZWZpbmUgcWVtdV9hdG9taWNfZmV0Y2hfc3ViKHB0ciwgbikgXAorICAgIF9f YXRvbWljX2ZldGNoX3N1YihwdHIsIG4sIF9fQVRPTUlDX1NFUV9DU1QpCisjZGVmaW5lIHFlbXVf YXRvbWljX2ZldGNoX2FuZChwdHIsIG4pIFwKKyAgICBfX2F0b21pY19mZXRjaF9hbmQocHRyLCBu LCBfX0FUT01JQ19TRVFfQ1NUKQorI2RlZmluZSBxZW11X2F0b21pY19mZXRjaF9vcihwdHIsIG4p IFwKKyAgICBfX2F0b21pY19mZXRjaF9vcihwdHIsIG4sIF9fQVRPTUlDX1NFUV9DU1QpCisjZGVm aW5lIHFlbXVfYXRvbWljX2ZldGNoX3hvcihwdHIsIG4pIFwKKyAgICBfX2F0b21pY19mZXRjaF94 b3IocHRyLCBuLCBfX0FUT01JQ19TRVFfQ1NUKQogCi0jZGVmaW5lIGF0b21pY19pbmNfZmV0Y2go cHRyKSAgICBfX2F0b21pY19hZGRfZmV0Y2gocHRyLCAxLCBfX0FUT01JQ19TRVFfQ1NUKQotI2Rl ZmluZSBhdG9taWNfZGVjX2ZldGNoKHB0cikgICAgX19hdG9taWNfc3ViX2ZldGNoKHB0ciwgMSwg X19BVE9NSUNfU0VRX0NTVCkKLSNkZWZpbmUgYXRvbWljX2FkZF9mZXRjaChwdHIsIG4pIF9fYXRv bWljX2FkZF9mZXRjaChwdHIsIG4sIF9fQVRPTUlDX1NFUV9DU1QpCi0jZGVmaW5lIGF0b21pY19z dWJfZmV0Y2gocHRyLCBuKSBfX2F0b21pY19zdWJfZmV0Y2gocHRyLCBuLCBfX0FUT01JQ19TRVFf Q1NUKQotI2RlZmluZSBhdG9taWNfYW5kX2ZldGNoKHB0ciwgbikgX19hdG9taWNfYW5kX2ZldGNo KHB0ciwgbiwgX19BVE9NSUNfU0VRX0NTVCkKLSNkZWZpbmUgYXRvbWljX29yX2ZldGNoKHB0ciwg bikgIF9fYXRvbWljX29yX2ZldGNoKHB0ciwgbiwgX19BVE9NSUNfU0VRX0NTVCkKLSNkZWZpbmUg YXRvbWljX3hvcl9mZXRjaChwdHIsIG4pIF9fYXRvbWljX3hvcl9mZXRjaChwdHIsIG4sIF9fQVRP TUlDX1NFUV9DU1QpCisjZGVmaW5lIHFlbXVfYXRvbWljX2luY19mZXRjaChwdHIpIFwKKyAgICBf X2F0b21pY19hZGRfZmV0Y2gocHRyLCAxLCBfX0FUT01JQ19TRVFfQ1NUKQorI2RlZmluZSBxZW11 X2F0b21pY19kZWNfZmV0Y2gocHRyKSBcCisgICAgX19hdG9taWNfc3ViX2ZldGNoKHB0ciwgMSwg X19BVE9NSUNfU0VRX0NTVCkKKyNkZWZpbmUgcWVtdV9hdG9taWNfYWRkX2ZldGNoKHB0ciwgbikg XAorICAgIF9fYXRvbWljX2FkZF9mZXRjaChwdHIsIG4sIF9fQVRPTUlDX1NFUV9DU1QpCisjZGVm aW5lIHFlbXVfYXRvbWljX3N1Yl9mZXRjaChwdHIsIG4pIFwKKyAgICBfX2F0b21pY19zdWJfZmV0 Y2gocHRyLCBuLCBfX0FUT01JQ19TRVFfQ1NUKQorI2RlZmluZSBxZW11X2F0b21pY19hbmRfZmV0 Y2gocHRyLCBuKSBcCisgICAgX19hdG9taWNfYW5kX2ZldGNoKHB0ciwgbiwgX19BVE9NSUNfU0VR X0NTVCkKKyNkZWZpbmUgcWVtdV9hdG9taWNfb3JfZmV0Y2gocHRyLCBuKSBcCisgICAgX19hdG9t aWNfb3JfZmV0Y2gocHRyLCBuLCBfX0FUT01JQ19TRVFfQ1NUKQorI2RlZmluZSBxZW11X2F0b21p Y194b3JfZmV0Y2gocHRyLCBuKSBcCisgICAgX19hdG9taWNfeG9yX2ZldGNoKHB0ciwgbiwgX19B VE9NSUNfU0VRX0NTVCkKIAogLyogQW5kIGV2ZW4gc2hvcnRlciBuYW1lcyB0aGF0IHJldHVybiB2 b2lkLiAgKi8KLSNkZWZpbmUgYXRvbWljX2luYyhwdHIpICAgICgodm9pZCkgX19hdG9taWNfZmV0 Y2hfYWRkKHB0ciwgMSwgX19BVE9NSUNfU0VRX0NTVCkpCi0jZGVmaW5lIGF0b21pY19kZWMocHRy KSAgICAoKHZvaWQpIF9fYXRvbWljX2ZldGNoX3N1YihwdHIsIDEsIF9fQVRPTUlDX1NFUV9DU1Qp KQotI2RlZmluZSBhdG9taWNfYWRkKHB0ciwgbikgKCh2b2lkKSBfX2F0b21pY19mZXRjaF9hZGQo cHRyLCBuLCBfX0FUT01JQ19TRVFfQ1NUKSkKLSNkZWZpbmUgYXRvbWljX3N1YihwdHIsIG4pICgo dm9pZCkgX19hdG9taWNfZmV0Y2hfc3ViKHB0ciwgbiwgX19BVE9NSUNfU0VRX0NTVCkpCi0jZGVm aW5lIGF0b21pY19hbmQocHRyLCBuKSAoKHZvaWQpIF9fYXRvbWljX2ZldGNoX2FuZChwdHIsIG4s IF9fQVRPTUlDX1NFUV9DU1QpKQotI2RlZmluZSBhdG9taWNfb3IocHRyLCBuKSAgKCh2b2lkKSBf X2F0b21pY19mZXRjaF9vcihwdHIsIG4sIF9fQVRPTUlDX1NFUV9DU1QpKQotI2RlZmluZSBhdG9t aWNfeG9yKHB0ciwgbikgKCh2b2lkKSBfX2F0b21pY19mZXRjaF94b3IocHRyLCBuLCBfX0FUT01J Q19TRVFfQ1NUKSkKKyNkZWZpbmUgcWVtdV9hdG9taWNfaW5jKHB0cikgXAorICAgICgodm9pZCkg X19hdG9taWNfZmV0Y2hfYWRkKHB0ciwgMSwgX19BVE9NSUNfU0VRX0NTVCkpCisjZGVmaW5lIHFl bXVfYXRvbWljX2RlYyhwdHIpIFwKKyAgICAoKHZvaWQpIF9fYXRvbWljX2ZldGNoX3N1YihwdHIs IDEsIF9fQVRPTUlDX1NFUV9DU1QpKQorI2RlZmluZSBxZW11X2F0b21pY19hZGQocHRyLCBuKSBc CisgICAgKCh2b2lkKSBfX2F0b21pY19mZXRjaF9hZGQocHRyLCBuLCBfX0FUT01JQ19TRVFfQ1NU KSkKKyNkZWZpbmUgcWVtdV9hdG9taWNfc3ViKHB0ciwgbikgXAorICAgICgodm9pZCkgX19hdG9t aWNfZmV0Y2hfc3ViKHB0ciwgbiwgX19BVE9NSUNfU0VRX0NTVCkpCisjZGVmaW5lIHFlbXVfYXRv bWljX2FuZChwdHIsIG4pIFwKKyAgICAoKHZvaWQpIF9fYXRvbWljX2ZldGNoX2FuZChwdHIsIG4s IF9fQVRPTUlDX1NFUV9DU1QpKQorI2RlZmluZSBxZW11X2F0b21pY19vcihwdHIsIG4pIFwKKyAg ICAoKHZvaWQpIF9fYXRvbWljX2ZldGNoX29yKHB0ciwgbiwgX19BVE9NSUNfU0VRX0NTVCkpCisj ZGVmaW5lIHFlbXVfYXRvbWljX3hvcihwdHIsIG4pIFwKKyAgICAoKHZvaWQpIF9fYXRvbWljX2Zl dGNoX3hvcihwdHIsIG4sIF9fQVRPTUlDX1NFUV9DU1QpKQogCiAjZWxzZSAvKiBfX0FUT01JQ19S RUxBWEVEICovCiAKQEAgLTI3Miw3ICsyOTEsNyBAQAogICogYnV0IGl0IGlzIGEgZnVsbCBiYXJy aWVyIGF0IHRoZSBoYXJkd2FyZSBsZXZlbC4gIEFkZCBhIGNvbXBpbGVyIGJhcnJpZXIKICAqIHRv IG1ha2UgaXQgYSBmdWxsIGJhcnJpZXIgYWxzbyBhdCB0aGUgY29tcGlsZXIgbGV2ZWwuCiAgKi8K LSNkZWZpbmUgYXRvbWljX3hjaGcocHRyLCBpKSAgICAoYmFycmllcigpLCBfX3N5bmNfbG9ja190 ZXN0X2FuZF9zZXQocHRyLCBpKSkKKyNkZWZpbmUgcWVtdV9hdG9taWNfeGNoZyhwdHIsIGkpIChi YXJyaWVyKCksIF9fc3luY19sb2NrX3Rlc3RfYW5kX3NldChwdHIsIGkpKQogCiAjZWxpZiBkZWZp bmVkKF9BUkNIX1BQQykKIApAQCAtMzI1LDE0ICszNDQsMTUgQEAKIC8qIFRoZXNlIHdpbGwgb25s eSBiZSBhdG9taWMgaWYgdGhlIHByb2Nlc3NvciBkb2VzIHRoZSBmZXRjaCBvciBzdG9yZQogICog aW4gYSBzaW5nbGUgaXNzdWUgbWVtb3J5IG9wZXJhdGlvbgogICovCi0jZGVmaW5lIGF0b21pY19y ZWFkX19ub2NoZWNrKHApICAgKCooX190eXBlb2ZfXygqKHApKSB2b2xhdGlsZSopIChwKSkKLSNk ZWZpbmUgYXRvbWljX3NldF9fbm9jaGVjayhwLCBpKSAoKCooX190eXBlb2ZfXygqKHApKSB2b2xh dGlsZSopIChwKSkgPSAoaSkpCisjZGVmaW5lIHFlbXVfYXRvbWljX3JlYWRfX25vY2hlY2socCkg KCooX190eXBlb2ZfXygqKHApKSB2b2xhdGlsZSopIChwKSkKKyNkZWZpbmUgcWVtdV9hdG9taWNf c2V0X19ub2NoZWNrKHAsIGkpIFwKKyAgICAoKCooX190eXBlb2ZfXygqKHApKSB2b2xhdGlsZSop IChwKSkgPSAoaSkpCiAKLSNkZWZpbmUgYXRvbWljX3JlYWQocHRyKSAgICAgICBhdG9taWNfcmVh ZF9fbm9jaGVjayhwdHIpCi0jZGVmaW5lIGF0b21pY19zZXQocHRyLCBpKSAgICAgYXRvbWljX3Nl dF9fbm9jaGVjayhwdHIsaSkKKyNkZWZpbmUgcWVtdV9hdG9taWNfcmVhZChwdHIpICAgICAgIHFl bXVfYXRvbWljX3JlYWRfX25vY2hlY2socHRyKQorI2RlZmluZSBxZW11X2F0b21pY19zZXQocHRy LCBpKSAgICAgcWVtdV9hdG9taWNfc2V0X19ub2NoZWNrKHB0cixpKQogCiAvKioKLSAqIGF0b21p Y19yY3VfcmVhZCAtIHJlYWRzIGEgUkNVLXByb3RlY3RlZCBwb2ludGVyIHRvIGEgbG9jYWwgdmFy aWFibGUKKyAqIHFlbXVfYXRvbWljX3JjdV9yZWFkIC0gcmVhZHMgYSBSQ1UtcHJvdGVjdGVkIHBv aW50ZXIgdG8gYSBsb2NhbCB2YXJpYWJsZQogICogaW50byBhIFJDVSByZWFkLXNpZGUgY3JpdGlj YWwgc2VjdGlvbi4gVGhlIHBvaW50ZXIgY2FuIGxhdGVyIGJlIHNhZmVseQogICogZGVyZWZlcmVu Y2VkIHdpdGhpbiB0aGUgY3JpdGljYWwgc2VjdGlvbi4KICAqCkBAIC0zNDIsMjEgKzM2MiwyMiBA QAogICogSW5zZXJ0cyBtZW1vcnkgYmFycmllcnMgb24gYXJjaGl0ZWN0dXJlcyB0aGF0IHJlcXVp cmUgdGhlbSAoY3VycmVudGx5IG9ubHkKICAqIEFscGhhKSBhbmQgZG9jdW1lbnRzIHdoaWNoIHBv aW50ZXJzIGFyZSBwcm90ZWN0ZWQgYnkgUkNVLgogICoKLSAqIGF0b21pY19yY3VfcmVhZCBhbHNv IGluY2x1ZGVzIGEgY29tcGlsZXIgYmFycmllciB0byBlbnN1cmUgdGhhdAorICogcWVtdV9hdG9t aWNfcmN1X3JlYWQgYWxzbyBpbmNsdWRlcyBhIGNvbXBpbGVyIGJhcnJpZXIgdG8gZW5zdXJlIHRo YXQKICAqIHZhbHVlLXNwZWN1bGF0aXZlIG9wdGltaXphdGlvbnMgKGUuZy4gVlNTOiBWYWx1ZSBT cGVjdWxhdGlvbgogICogU2NoZWR1bGluZykgZG9lcyBub3QgcGVyZm9ybSB0aGUgZGF0YSByZWFk IGJlZm9yZSB0aGUgcG9pbnRlciByZWFkCiAgKiBieSBzcGVjdWxhdGluZyB0aGUgdmFsdWUgb2Yg dGhlIHBvaW50ZXIuCiAgKgotICogU2hvdWxkIG1hdGNoIGF0b21pY19yY3Vfc2V0KCksIGF0b21p Y194Y2hnKCksIGF0b21pY19jbXB4Y2hnKCkuCisgKiBTaG91bGQgbWF0Y2ggcWVtdV9hdG9taWNf cmN1X3NldCgpLCBxZW11X2F0b21pY194Y2hnKCksCisgKiBhbmQgcWVtdV9hdG9taWNfY21weGNo ZygpLgogICovCi0jZGVmaW5lIGF0b21pY19yY3VfcmVhZChwdHIpICAgICh7ICAgICAgICAgICAg ICAgIFwKLSAgICB0eXBlb2YoKnB0cikgX3ZhbCA9IGF0b21pY19yZWFkKHB0cik7ICAgICAgICAg XAorI2RlZmluZSBxZW11X2F0b21pY19yY3VfcmVhZChwdHIpICAgICh7ICAgICAgICAgICBcCisg ICAgdHlwZW9mKCpwdHIpIF92YWwgPSBxZW11X2F0b21pY19yZWFkKHB0cik7ICAgIFwKICAgICBz bXBfcmVhZF9iYXJyaWVyX2RlcGVuZHMoKTsgICAgICAgICAgICAgICAgICAgXAogICAgIF92YWw7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiB9KQogCiAvKioKLSAq IGF0b21pY19yY3Vfc2V0IC0gYXNzaWducyAocHVibGljaXplcykgYSBwb2ludGVyIHRvIGEgbmV3 IGRhdGEgc3RydWN0dXJlCisgKiBxZW11X2F0b21pY19yY3Vfc2V0IC0gYXNzaWducyAocHVibGlj aXplcykgYSBwb2ludGVyIHRvIGEgbmV3IGRhdGEgc3RydWN0dXJlCiAgKiBtZWFudCB0byBiZSBy ZWFkIGJ5IFJDVSByZWFkLXNpZGUgY3JpdGljYWwgc2VjdGlvbnMuCiAgKgogICogRG9jdW1lbnRz IHdoaWNoIHBvaW50ZXJzIHdpbGwgYmUgZGVyZWZlcmVuY2VkIGJ5IFJDVSByZWFkLXNpZGUgY3Jp dGljYWwKQEAgLTM2NCw2NSArMzg1LDYzIEBACiAgKiB0aGVtLiBJdCBhbHNvIG1ha2VzIHN1cmUg dGhlIGNvbXBpbGVyIGRvZXMgbm90IHJlb3JkZXIgY29kZSBpbml0aWFsaXppbmcgdGhlCiAgKiBk YXRhIHN0cnVjdHVyZSBiZWZvcmUgaXRzIHB1YmxpY2F0aW9uLgogICoKLSAqIFNob3VsZCBtYXRj aCBhdG9taWNfcmN1X3JlYWQoKS4KKyAqIFNob3VsZCBtYXRjaCBxZW11X2F0b21pY19yY3VfcmVh ZCgpLgogICovCi0jZGVmaW5lIGF0b21pY19yY3Vfc2V0KHB0ciwgaSkgIGRvIHsgICAgICAgICAg ICAgIFwKKyNkZWZpbmUgcWVtdV9hdG9taWNfcmN1X3NldChwdHIsIGkpICBkbyB7ICAgICAgICAg XAogICAgIHNtcF93bWIoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g ICAgYXRvbWljX3NldChwdHIsIGkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBx ZW11X2F0b21pY19zZXQocHRyLCBpKTsgICAgICAgICAgICAgICAgICAgICAgXAogfSB3aGlsZSAo MCkKIAotI2RlZmluZSBhdG9taWNfbG9hZF9hY3F1aXJlKHB0cikgICAgKHsgICAgICBcCi0gICAg dHlwZW9mKCpwdHIpIF92YWwgPSBhdG9taWNfcmVhZChwdHIpOyAgIFwKLSAgICBzbXBfbWJfYWNx dWlyZSgpOyAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIF92YWw7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIHFlbXVfYXRvbWljX2xvYWRfYWNxdWlyZShw dHIpICAgICh7ICAgIFwKKyAgICB0eXBlb2YoKnB0cikgX3ZhbCA9IHFlbXVfYXRvbWljX3JlYWQo cHRyKTsgXAorICAgIHNtcF9tYl9hY3F1aXJlKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgX3ZhbDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIH0pCiAK LSNkZWZpbmUgYXRvbWljX3N0b3JlX3JlbGVhc2UocHRyLCBpKSAgZG8geyAgXAotICAgIHNtcF9t Yl9yZWxlYXNlKCk7ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgYXRvbWljX3NldChwdHIs IGkpOyAgICAgICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgcWVtdV9hdG9taWNfc3RvcmVfcmVs ZWFzZShwdHIsIGkpICBkbyB7ICBcCisgICAgc21wX21iX3JlbGVhc2UoKTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAgIHFlbXVfYXRvbWljX3NldChwdHIsIGkpOyAgICAgICAgICAg ICAgICAgICAgIFwKIH0gd2hpbGUgKDApCiAKLSNpZm5kZWYgYXRvbWljX3hjaGcKICNpZiBkZWZp bmVkKF9fY2xhbmdfXykKLSNkZWZpbmUgYXRvbWljX3hjaGcocHRyLCBpKSAgICBfX3N5bmNfc3dh cChwdHIsIGkpCisjZGVmaW5lIHFlbXVfYXRvbWljX3hjaGcocHRyLCBpKSBfX3N5bmNfc3dhcChw dHIsIGkpCiAjZWxzZQogLyogX19zeW5jX2xvY2tfdGVzdF9hbmRfc2V0KCkgaXMgZG9jdW1lbnRl ZCB0byBiZSBhbiBhY3F1aXJlIGJhcnJpZXIgb25seS4gICovCi0jZGVmaW5lIGF0b21pY194Y2hn KHB0ciwgaSkgICAgKHNtcF9tYigpLCBfX3N5bmNfbG9ja190ZXN0X2FuZF9zZXQocHRyLCBpKSkK KyNkZWZpbmUgcWVtdV9hdG9taWNfeGNoZyhwdHIsIGkpIChzbXBfbWIoKSwgX19zeW5jX2xvY2tf dGVzdF9hbmRfc2V0KHB0ciwgaSkpCiAjZW5kaWYKLSNlbmRpZgotI2RlZmluZSBhdG9taWNfeGNo Z19fbm9jaGVjayAgYXRvbWljX3hjaGcKKyNkZWZpbmUgcWVtdV9hdG9taWNfeGNoZ19fbm9jaGVj ayAgcWVtdV9hdG9taWNfeGNoZwogCiAvKiBQcm92aWRlIHNob3J0ZXIgbmFtZXMgZm9yIEdDQyBh dG9taWMgYnVpbHRpbnMuICAqLwotI2RlZmluZSBhdG9taWNfZmV0Y2hfaW5jKHB0cikgIF9fc3lu Y19mZXRjaF9hbmRfYWRkKHB0ciwgMSkKLSNkZWZpbmUgYXRvbWljX2ZldGNoX2RlYyhwdHIpICBf X3N5bmNfZmV0Y2hfYW5kX2FkZChwdHIsIC0xKQorI2RlZmluZSBxZW11X2F0b21pY19mZXRjaF9p bmMocHRyKSAgX19zeW5jX2ZldGNoX2FuZF9hZGQocHRyLCAxKQorI2RlZmluZSBxZW11X2F0b21p Y19mZXRjaF9kZWMocHRyKSAgX19zeW5jX2ZldGNoX2FuZF9hZGQocHRyLCAtMSkKIAotI2lmbmRl ZiBhdG9taWNfZmV0Y2hfYWRkCi0jZGVmaW5lIGF0b21pY19mZXRjaF9hZGQocHRyLCBuKSBfX3N5 bmNfZmV0Y2hfYW5kX2FkZChwdHIsIG4pCi0jZGVmaW5lIGF0b21pY19mZXRjaF9zdWIocHRyLCBu KSBfX3N5bmNfZmV0Y2hfYW5kX3N1YihwdHIsIG4pCi0jZGVmaW5lIGF0b21pY19mZXRjaF9hbmQo cHRyLCBuKSBfX3N5bmNfZmV0Y2hfYW5kX2FuZChwdHIsIG4pCi0jZGVmaW5lIGF0b21pY19mZXRj aF9vcihwdHIsIG4pIF9fc3luY19mZXRjaF9hbmRfb3IocHRyLCBuKQotI2RlZmluZSBhdG9taWNf ZmV0Y2hfeG9yKHB0ciwgbikgX19zeW5jX2ZldGNoX2FuZF94b3IocHRyLCBuKQotI2VuZGlmCisj ZGVmaW5lIHFlbXVfYXRvbWljX2ZldGNoX2FkZChwdHIsIG4pIF9fc3luY19mZXRjaF9hbmRfYWRk KHB0ciwgbikKKyNkZWZpbmUgcWVtdV9hdG9taWNfZmV0Y2hfc3ViKHB0ciwgbikgX19zeW5jX2Zl dGNoX2FuZF9zdWIocHRyLCBuKQorI2RlZmluZSBxZW11X2F0b21pY19mZXRjaF9hbmQocHRyLCBu KSBfX3N5bmNfZmV0Y2hfYW5kX2FuZChwdHIsIG4pCisjZGVmaW5lIHFlbXVfYXRvbWljX2ZldGNo X29yKHB0ciwgbikgX19zeW5jX2ZldGNoX2FuZF9vcihwdHIsIG4pCisjZGVmaW5lIHFlbXVfYXRv bWljX2ZldGNoX3hvcihwdHIsIG4pIF9fc3luY19mZXRjaF9hbmRfeG9yKHB0ciwgbikKIAotI2Rl ZmluZSBhdG9taWNfaW5jX2ZldGNoKHB0cikgIF9fc3luY19hZGRfYW5kX2ZldGNoKHB0ciwgMSkK LSNkZWZpbmUgYXRvbWljX2RlY19mZXRjaChwdHIpICBfX3N5bmNfYWRkX2FuZF9mZXRjaChwdHIs IC0xKQotI2RlZmluZSBhdG9taWNfYWRkX2ZldGNoKHB0ciwgbikgX19zeW5jX2FkZF9hbmRfZmV0 Y2gocHRyLCBuKQotI2RlZmluZSBhdG9taWNfc3ViX2ZldGNoKHB0ciwgbikgX19zeW5jX3N1Yl9h bmRfZmV0Y2gocHRyLCBuKQotI2RlZmluZSBhdG9taWNfYW5kX2ZldGNoKHB0ciwgbikgX19zeW5j X2FuZF9hbmRfZmV0Y2gocHRyLCBuKQotI2RlZmluZSBhdG9taWNfb3JfZmV0Y2gocHRyLCBuKSBf X3N5bmNfb3JfYW5kX2ZldGNoKHB0ciwgbikKLSNkZWZpbmUgYXRvbWljX3hvcl9mZXRjaChwdHIs IG4pIF9fc3luY194b3JfYW5kX2ZldGNoKHB0ciwgbikKKyNkZWZpbmUgcWVtdV9hdG9taWNfaW5j X2ZldGNoKHB0cikgIF9fc3luY19hZGRfYW5kX2ZldGNoKHB0ciwgMSkKKyNkZWZpbmUgcWVtdV9h dG9taWNfZGVjX2ZldGNoKHB0cikgIF9fc3luY19hZGRfYW5kX2ZldGNoKHB0ciwgLTEpCisjZGVm aW5lIHFlbXVfYXRvbWljX2FkZF9mZXRjaChwdHIsIG4pIF9fc3luY19hZGRfYW5kX2ZldGNoKHB0 ciwgbikKKyNkZWZpbmUgcWVtdV9hdG9taWNfc3ViX2ZldGNoKHB0ciwgbikgX19zeW5jX3N1Yl9h bmRfZmV0Y2gocHRyLCBuKQorI2RlZmluZSBxZW11X2F0b21pY19hbmRfZmV0Y2gocHRyLCBuKSBf X3N5bmNfYW5kX2FuZF9mZXRjaChwdHIsIG4pCisjZGVmaW5lIHFlbXVfYXRvbWljX29yX2ZldGNo KHB0ciwgbikgX19zeW5jX29yX2FuZF9mZXRjaChwdHIsIG4pCisjZGVmaW5lIHFlbXVfYXRvbWlj X3hvcl9mZXRjaChwdHIsIG4pIF9fc3luY194b3JfYW5kX2ZldGNoKHB0ciwgbikKIAotI2RlZmlu ZSBhdG9taWNfY21weGNoZyhwdHIsIG9sZCwgbmV3KSBfX3N5bmNfdmFsX2NvbXBhcmVfYW5kX3N3 YXAocHRyLCBvbGQsIG5ldykKLSNkZWZpbmUgYXRvbWljX2NtcHhjaGdfX25vY2hlY2socHRyLCBv bGQsIG5ldykgIGF0b21pY19jbXB4Y2hnKHB0ciwgb2xkLCBuZXcpCisjZGVmaW5lIHFlbXVfYXRv bWljX2NtcHhjaGcocHRyLCBvbGQsIG5ldykgXAorICAgIF9fc3luY192YWxfY29tcGFyZV9hbmRf c3dhcChwdHIsIG9sZCwgbmV3KQorI2RlZmluZSBxZW11X2F0b21pY19jbXB4Y2hnX19ub2NoZWNr KHB0ciwgb2xkLCBuZXcpIFwKKyAgICBxZW11X2F0b21pY19jbXB4Y2hnKHB0ciwgb2xkLCBuZXcp CiAKIC8qIEFuZCBldmVuIHNob3J0ZXIgbmFtZXMgdGhhdCByZXR1cm4gdm9pZC4gICovCi0jZGVm aW5lIGF0b21pY19pbmMocHRyKSAgICAgICAgKCh2b2lkKSBfX3N5bmNfZmV0Y2hfYW5kX2FkZChw dHIsIDEpKQotI2RlZmluZSBhdG9taWNfZGVjKHB0cikgICAgICAgICgodm9pZCkgX19zeW5jX2Zl dGNoX2FuZF9hZGQocHRyLCAtMSkpCi0jZGVmaW5lIGF0b21pY19hZGQocHRyLCBuKSAgICAgKCh2 b2lkKSBfX3N5bmNfZmV0Y2hfYW5kX2FkZChwdHIsIG4pKQotI2RlZmluZSBhdG9taWNfc3ViKHB0 ciwgbikgICAgICgodm9pZCkgX19zeW5jX2ZldGNoX2FuZF9zdWIocHRyLCBuKSkKLSNkZWZpbmUg YXRvbWljX2FuZChwdHIsIG4pICAgICAoKHZvaWQpIF9fc3luY19mZXRjaF9hbmRfYW5kKHB0ciwg bikpCi0jZGVmaW5lIGF0b21pY19vcihwdHIsIG4pICAgICAgKCh2b2lkKSBfX3N5bmNfZmV0Y2hf YW5kX29yKHB0ciwgbikpCi0jZGVmaW5lIGF0b21pY194b3IocHRyLCBuKSAgICAgKCh2b2lkKSBf X3N5bmNfZmV0Y2hfYW5kX3hvcihwdHIsIG4pKQorI2RlZmluZSBxZW11X2F0b21pY19pbmMocHRy KSAgICAgICAgKCh2b2lkKSBfX3N5bmNfZmV0Y2hfYW5kX2FkZChwdHIsIDEpKQorI2RlZmluZSBx ZW11X2F0b21pY19kZWMocHRyKSAgICAgICAgKCh2b2lkKSBfX3N5bmNfZmV0Y2hfYW5kX2FkZChw dHIsIC0xKSkKKyNkZWZpbmUgcWVtdV9hdG9taWNfYWRkKHB0ciwgbikgICAgICgodm9pZCkgX19z eW5jX2ZldGNoX2FuZF9hZGQocHRyLCBuKSkKKyNkZWZpbmUgcWVtdV9hdG9taWNfc3ViKHB0ciwg bikgICAgICgodm9pZCkgX19zeW5jX2ZldGNoX2FuZF9zdWIocHRyLCBuKSkKKyNkZWZpbmUgcWVt dV9hdG9taWNfYW5kKHB0ciwgbikgICAgICgodm9pZCkgX19zeW5jX2ZldGNoX2FuZF9hbmQocHRy LCBuKSkKKyNkZWZpbmUgcWVtdV9hdG9taWNfb3IocHRyLCBuKSAgICAgICgodm9pZCkgX19zeW5j X2ZldGNoX2FuZF9vcihwdHIsIG4pKQorI2RlZmluZSBxZW11X2F0b21pY194b3IocHRyLCBuKSAg ICAgKCh2b2lkKSBfX3N5bmNfZmV0Y2hfYW5kX3hvcihwdHIsIG4pKQogCiAjZW5kaWYgLyogX19B VE9NSUNfUkVMQVhFRCAqLwogCkBAIC00MzYsMTEgKzQ1NSwxMSBAQAogLyogVGhpcyBpcyBtb3Jl IGVmZmljaWVudCB0aGFuIGEgc3RvcmUgcGx1cyBhIGZlbmNlLiAgKi8KICNpZiAhZGVmaW5lZChf X1NBTklUSVpFX1RIUkVBRF9fKQogI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194 ODZfNjRfXykgfHwgZGVmaW5lZChfX3MzOTB4X18pCi0jZGVmaW5lIGF0b21pY19tYl9zZXQocHRy LCBpKSAgKCh2b2lkKWF0b21pY194Y2hnKHB0ciwgaSkpCisjZGVmaW5lIHFlbXVfYXRvbWljX21i X3NldChwdHIsIGkpICAoKHZvaWQpcWVtdV9hdG9taWNfeGNoZyhwdHIsIGkpKQogI2VuZGlmCiAj ZW5kaWYKIAotLyogYXRvbWljX21iX3JlYWQvc2V0IHNlbWFudGljcyBtYXAgSmF2YSB2b2xhdGls ZSB2YXJpYWJsZXMuIFRoZXkgYXJlCisvKiBxZW11X2F0b21pY19tYl9yZWFkL3NldCBzZW1hbnRp Y3MgbWFwIEphdmEgdm9sYXRpbGUgdmFyaWFibGVzLiBUaGV5IGFyZQogICogbGVzcyBleHBlbnNp dmUgb24gc29tZSBwbGF0Zm9ybXMgKG5vdGFibHkgUE9XRVIpIHRoYW4gZnVsbHkKICAqIHNlcXVl bnRpYWxseSBjb25zaXN0ZW50IG9wZXJhdGlvbnMuCiAgKgpAQCAtNDQ4LDU4ICs0NjcsNTUgQEAK ICAqIHVzZS4gU2VlIGRvY3MvZGV2ZWwvYXRvbWljcy50eHQgZm9yIG1vcmUgZGlzY3Vzc2lvbi4K ICAqLwogCi0jaWZuZGVmIGF0b21pY19tYl9yZWFkCi0jZGVmaW5lIGF0b21pY19tYl9yZWFkKHB0 cikgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBhdG9taWNfbG9hZF9hY3F1aXJl KHB0cikKLSNlbmRpZgorI2RlZmluZSBxZW11X2F0b21pY19tYl9yZWFkKHB0cikgcWVtdV9hdG9t aWNfbG9hZF9hY3F1aXJlKHB0cikKIAotI2lmbmRlZiBhdG9taWNfbWJfc2V0Ci0jZGVmaW5lIGF0 b21pY19tYl9zZXQocHRyLCBpKSAgZG8geyAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBhdG9t aWNfc3RvcmVfcmVsZWFzZShwdHIsIGkpOyAgICAgICAgICAgICAgICAgICAgICAgXAorI2lmbmRl ZiBxZW11X2F0b21pY19tYl9zZXQKKyNkZWZpbmUgcWVtdV9hdG9taWNfbWJfc2V0KHB0ciwgaSkg IGRvIHsgICAgICAgICAgICAgICAgXAorICAgIHFlbXVfYXRvbWljX3N0b3JlX3JlbGVhc2UocHRy LCBpKTsgICAgICAgICAgICAgICAgICBcCiAgICAgc21wX21iKCk7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKIH0gd2hpbGUoMCkKICNlbmRpZgogCi0jZGVmaW5l IGF0b21pY19mZXRjaF9pbmNfbm9uemVybyhwdHIpICh7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCi0gICAgdHlwZW9mX3N0cmlwX3F1YWwoKnB0cikgX29sZG4gPSBhdG9taWNfcmVh ZChwdHIpOyAgICAgICAgICAgICAgICAgICBcCi0gICAgd2hpbGUgKF9vbGRuICYmIGF0b21pY19j bXB4Y2hnKHB0ciwgX29sZG4sIF9vbGRuICsgMSkgIT0gX29sZG4pIHsgICBcCi0gICAgICAgIF9v bGRuID0gYXRvbWljX3JlYWQocHRyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisjZGVmaW5lIHFlbXVfYXRvbWljX2ZldGNoX2luY19ub256ZXJvKHB0cikgKHsgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdHlwZW9mX3N0cmlwX3F1YWwoKnB0cikgX29s ZG4gPSBxZW11X2F0b21pY19yZWFkKHB0cik7ICAgICAgICAgICAgICBcCisgICAgd2hpbGUgKF9v bGRuICYmIHFlbXVfYXRvbWljX2NtcHhjaGcocHRyLCBfb2xkbiwgX29sZG4gKyAxKSAhPSBfb2xk bikgeyBcCisgICAgICAgIF9vbGRuID0gcWVtdV9hdG9taWNfcmVhZChwdHIpOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgX29sZG47ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCiB9KQogCiAvKiBBYnN0cmFjdGlvbnMgdG8gYWNjZXNzIGF0b21pY2FsbHkgKGkuZS4gIm9u Y2UiKSBpNjQvdTY0IHZhcmlhYmxlcyAqLwogI2lmZGVmIENPTkZJR19BVE9NSUM2NAotc3RhdGlj IGlubGluZSBpbnQ2NF90IGF0b21pY19yZWFkX2k2NChjb25zdCBpbnQ2NF90ICpwdHIpCitzdGF0 aWMgaW5saW5lIGludDY0X3QgcWVtdV9hdG9taWNfcmVhZF9pNjQoY29uc3QgaW50NjRfdCAqcHRy KQogewogICAgIC8qIHVzZSBfX25vY2hlY2sgYmVjYXVzZSBzaXplb2Yodm9pZCAqKSBtaWdodCBi ZSA8IHNpemVvZih1NjQpICovCi0gICAgcmV0dXJuIGF0b21pY19yZWFkX19ub2NoZWNrKHB0cik7 CisgICAgcmV0dXJuIHFlbXVfYXRvbWljX3JlYWRfX25vY2hlY2socHRyKTsKIH0KIAotc3RhdGlj IGlubGluZSB1aW50NjRfdCBhdG9taWNfcmVhZF91NjQoY29uc3QgdWludDY0X3QgKnB0cikKK3N0 YXRpYyBpbmxpbmUgdWludDY0X3QgcWVtdV9hdG9taWNfcmVhZF91NjQoY29uc3QgdWludDY0X3Qg KnB0cikKIHsKLSAgICByZXR1cm4gYXRvbWljX3JlYWRfX25vY2hlY2socHRyKTsKKyAgICByZXR1 cm4gcWVtdV9hdG9taWNfcmVhZF9fbm9jaGVjayhwdHIpOwogfQogCi1zdGF0aWMgaW5saW5lIHZv aWQgYXRvbWljX3NldF9pNjQoaW50NjRfdCAqcHRyLCBpbnQ2NF90IHZhbCkKK3N0YXRpYyBpbmxp bmUgdm9pZCBxZW11X2F0b21pY19zZXRfaTY0KGludDY0X3QgKnB0ciwgaW50NjRfdCB2YWwpCiB7 Ci0gICAgYXRvbWljX3NldF9fbm9jaGVjayhwdHIsIHZhbCk7CisgICAgcWVtdV9hdG9taWNfc2V0 X19ub2NoZWNrKHB0ciwgdmFsKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGF0b21pY19zZXRf dTY0KHVpbnQ2NF90ICpwdHIsIHVpbnQ2NF90IHZhbCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBxZW11 X2F0b21pY19zZXRfdTY0KHVpbnQ2NF90ICpwdHIsIHVpbnQ2NF90IHZhbCkKIHsKLSAgICBhdG9t aWNfc2V0X19ub2NoZWNrKHB0ciwgdmFsKTsKKyAgICBxZW11X2F0b21pY19zZXRfX25vY2hlY2so cHRyLCB2YWwpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgYXRvbWljNjRfaW5pdCh2b2lkKQor c3RhdGljIGlubGluZSB2b2lkIHFlbXVfYXRvbWljNjRfaW5pdCh2b2lkKQogewogfQogI2Vsc2Ug LyogIUNPTkZJR19BVE9NSUM2NCAqLwotaW50NjRfdCAgYXRvbWljX3JlYWRfaTY0KGNvbnN0IGlu dDY0X3QgKnB0cik7Ci11aW50NjRfdCBhdG9taWNfcmVhZF91NjQoY29uc3QgdWludDY0X3QgKnB0 cik7Ci12b2lkIGF0b21pY19zZXRfaTY0KGludDY0X3QgKnB0ciwgaW50NjRfdCB2YWwpOwotdm9p ZCBhdG9taWNfc2V0X3U2NCh1aW50NjRfdCAqcHRyLCB1aW50NjRfdCB2YWwpOwotdm9pZCBhdG9t aWM2NF9pbml0KHZvaWQpOworaW50NjRfdCAgcWVtdV9hdG9taWNfcmVhZF9pNjQoY29uc3QgaW50 NjRfdCAqcHRyKTsKK3VpbnQ2NF90IHFlbXVfYXRvbWljX3JlYWRfdTY0KGNvbnN0IHVpbnQ2NF90 ICpwdHIpOwordm9pZCBxZW11X2F0b21pY19zZXRfaTY0KGludDY0X3QgKnB0ciwgaW50NjRfdCB2 YWwpOwordm9pZCBxZW11X2F0b21pY19zZXRfdTY0KHVpbnQ2NF90ICpwdHIsIHVpbnQ2NF90IHZh bCk7Cit2b2lkIHFlbXVfYXRvbWljNjRfaW5pdCh2b2lkKTsKICNlbmRpZiAvKiAhQ09ORklHX0FU T01JQzY0ICovCiAKICNlbmRpZiAvKiBRRU1VX0FUT01JQ19IICovCmRpZmYgLS1naXQgYS9kb2Nz L2RldmVsL2xvY2tjbnQudHh0IGIvZG9jcy9kZXZlbC9sb2NrY250LnR4dAppbmRleCA3YzA5OWJj NmM4Li5kYzkyOGY4NWY5IDEwMDY0NAotLS0gYS9kb2NzL2RldmVsL2xvY2tjbnQudHh0CisrKyBi L2RvY3MvZGV2ZWwvbG9ja2NudC50eHQKQEAgLTk1LDEwICs5NSwxMCBAQCBub3QganVzdCBmcmVl cywgdGhvdWdoIHRoZXJlIGNvdWxkIGJlIGNhc2VzIHdoZXJlIHRoaXMgaXMgbm90IG5lY2Vzc2Fy eS4KIAogUmVhZHMsIGluc3RlYWQsIGNhbiBiZSBkb25lIHdpdGhvdXQgdGFraW5nIHRoZSBtdXRl eCwgYXMgbG9uZyBhcyB0aGUKIHJlYWRlcnMgYW5kIHdyaXRlcnMgdXNlIHRoZSBzYW1lIG1hY3Jv cyB0aGF0IGFyZSB1c2VkIGZvciBSQ1UsIGZvcgotZXhhbXBsZSBhdG9taWNfcmN1X3JlYWQsIGF0 b21pY19yY3Vfc2V0LCBRTElTVF9GT1JFQUNIX1JDVSwgZXRjLiAgVGhpcyBpcwotYmVjYXVzZSB0 aGUgcmVhZHMgYXJlIGRvbmUgb3V0c2lkZSBhIGxvY2sgYW5kIGEgc2V0IG9yIFFMSVNUX0lOU0VS VF9IRUFECi1jYW4gaGFwcGVuIGNvbmN1cnJlbnRseSB3aXRoIHRoZSByZWFkLiAgVGhlIFJDVSBB UEkgZW5zdXJlcyB0aGF0IHRoZQotcHJvY2Vzc29yIGFuZCB0aGUgY29tcGlsZXIgc2VlIGFsbCBy ZXF1aXJlZCBtZW1vcnkgYmFycmllcnMuCitleGFtcGxlIHFlbXVfYXRvbWljX3JjdV9yZWFkLCBx ZW11X2F0b21pY19yY3Vfc2V0LCBRTElTVF9GT1JFQUNIX1JDVSwgZXRjLgorVGhpcyBpcyBiZWNh dXNlIHRoZSByZWFkcyBhcmUgZG9uZSBvdXRzaWRlIGEgbG9jayBhbmQgYSBzZXQgb3IKK1FMSVNU X0lOU0VSVF9IRUFEIGNhbiBoYXBwZW4gY29uY3VycmVudGx5IHdpdGggdGhlIHJlYWQuICBUaGUg UkNVIEFQSSBlbnN1cmVzCit0aGF0IHRoZSBwcm9jZXNzb3IgYW5kIHRoZSBjb21waWxlciBzZWUg YWxsIHJlcXVpcmVkIG1lbW9yeSBiYXJyaWVycy4KIAogVGhpcyBjb3VsZCBiZSBpbXBsZW1lbnRl ZCBzaW1wbHkgYnkgcHJvdGVjdGluZyB0aGUgY291bnRlciB3aXRoIHRoZQogbXV0ZXgsIGZvciBl eGFtcGxlOgpAQCAtMTg5LDcgKzE4OSw3IEBAIHFlbXVfbG9ja2NudF9sb2NrIGFuZCBxZW11X2xv Y2tjbnRfdW5sb2NrOgogICAgIGlmICgheHl6KSB7CiAgICAgICAgIG5ld194eXogPSBnX25ldyhY WVosIDEpOwogICAgICAgICAuLi4KLSAgICAgICAgYXRvbWljX3JjdV9zZXQoJnh5eiwgbmV3X3h5 eik7CisgICAgICAgIHFlbXVfYXRvbWljX3JjdV9zZXQoJnh5eiwgbmV3X3h5eik7CiAgICAgfQog ICAgIHFlbXVfbG9ja2NudF91bmxvY2soJnh5el9sb2NrY250KTsKIApAQCAtMTk4LDcgKzE5OCw3 IEBAIHFlbXVfbG9ja2NudF9kZWM6CiAKICAgICBxZW11X2xvY2tjbnRfaW5jKCZ4eXpfbG9ja2Nu dCk7CiAgICAgaWYgKHh5eikgewotICAgICAgICBYWVogKnAgPSBhdG9taWNfcmN1X3JlYWQoJnh5 eik7CisgICAgICAgIFhZWiAqcCA9IHFlbXVfYXRvbWljX3JjdV9yZWFkKCZ4eXopOwogICAgICAg ICAuLi4KICAgICAgICAgLyogQWNjZXNzZXMgY2FuIG5vdyBiZSBkb25lIHRocm91Z2ggInAiLiAg Ki8KICAgICB9CkBAIC0yMjIsNyArMjIyLDcgQEAgdGhlIGRlY3JlbWVudCwgdGhlIGxvY2tpbmcg YW5kIHRoZSBjaGVjayBvbiBjb3VudCBhcyBmb2xsb3dzOgogCiAgICAgcWVtdV9sb2NrY250X2lu YygmeHl6X2xvY2tjbnQpOwogICAgIGlmICh4eXopIHsKLSAgICAgICAgWFlaICpwID0gYXRvbWlj X3JjdV9yZWFkKCZ4eXopOworICAgICAgICBYWVogKnAgPSBxZW11X2F0b21pY19yY3VfcmVhZCgm eHl6KTsKICAgICAgICAgLi4uCiAgICAgICAgIC8qIEFjY2Vzc2VzIGNhbiBub3cgYmUgZG9uZSB0 aHJvdWdoICJwIi4gICovCiAgICAgfQpkaWZmIC0tZ2l0IGEvZG9jcy9kZXZlbC9yY3UudHh0IGIv ZG9jcy9kZXZlbC9yY3UudHh0CmluZGV4IDBjZTE1YmExOTguLmQwNDc5MWM5MTUgMTAwNjQ0Ci0t LSBhL2RvY3MvZGV2ZWwvcmN1LnR4dAorKysgYi9kb2NzL2RldmVsL3JjdS50eHQKQEAgLTEzMCwx MyArMTMwLDEzIEBAIFRoZSBjb3JlIFJDVSBBUEkgaXMgc21hbGw6CiAKICAgICAgICAgICAgIGdf ZnJlZV9yY3UoJmZvbywgcmN1KTsKIAotICAgICB0eXBlb2YoKnApIGF0b21pY19yY3VfcmVhZChw KTsKKyAgICAgdHlwZW9mKCpwKSBxZW11X2F0b21pY19yY3VfcmVhZChwKTsKIAotICAgICAgICBh dG9taWNfcmN1X3JlYWQoKSBpcyBzaW1pbGFyIHRvIGF0b21pY19sb2FkX2FjcXVpcmUoKSwgYnV0 IGl0IG1ha2VzCi0gICAgICAgIHNvbWUgYXNzdW1wdGlvbnMgb24gdGhlIGNvZGUgdGhhdCBjYWxs cyBpdC4gIFRoaXMgYWxsb3dzIGEgbW9yZQorCXFlbXVfYXRvbWljX3JjdV9yZWFkKCkgaXMgc2lt aWxhciB0byBxZW11X2F0b21pY19sb2FkX2FjcXVpcmUoKSwgYnV0IGl0CisJbWFrZXMgc29tZSBh c3N1bXB0aW9ucyBvbiB0aGUgY29kZSB0aGF0IGNhbGxzIGl0LiAgVGhpcyBhbGxvd3MgYSBtb3Jl CiAgICAgICAgIG9wdGltaXplZCBpbXBsZW1lbnRhdGlvbi4KIAotICAgICAgICBhdG9taWNfcmN1 X3JlYWQgYXNzdW1lcyB0aGF0IHdoZW5ldmVyIGEgc2luZ2xlIFJDVSBjcml0aWNhbAorICAgICAg ICBxZW11X2F0b21pY19yY3VfcmVhZCBhc3N1bWVzIHRoYXQgd2hlbmV2ZXIgYSBzaW5nbGUgUkNV IGNyaXRpY2FsCiAgICAgICAgIHNlY3Rpb24gcmVhZHMgbXVsdGlwbGUgc2hhcmVkIGRhdGEsIHRo ZXNlIHJlYWRzIGFyZSBlaXRoZXIKICAgICAgICAgZGF0YS1kZXBlbmRlbnQgb3IgbmVlZCBubyBv cmRlcmluZy4gIFRoaXMgaXMgYWxtb3N0IGFsd2F5cyB0aGUKICAgICAgICAgY2FzZSB3aGVuIHVz aW5nIFJDVSwgYmVjYXVzZSByZWFkLXNpZGUgY3JpdGljYWwgc2VjdGlvbnMgdHlwaWNhbGx5CkBA IC0xNDQsNyArMTQ0LDcgQEAgVGhlIGNvcmUgUkNVIEFQSSBpcyBzbWFsbDoKICAgICAgICAgZXZl cnkgdXBkYXRlKSB1bnRpbCByZWFjaGluZyBhIGRhdGEgc3RydWN0dXJlIG9mIGludGVyZXN0LAog ICAgICAgICBhbmQgdGhlbiByZWFkIGZyb20gdGhlcmUuCiAKLSAgICAgICAgUkNVIHJlYWQtc2lk ZSBjcml0aWNhbCBzZWN0aW9ucyBtdXN0IHVzZSBhdG9taWNfcmN1X3JlYWQoKSB0bworICAgICAg ICBSQ1UgcmVhZC1zaWRlIGNyaXRpY2FsIHNlY3Rpb25zIG11c3QgdXNlIHFlbXVfYXRvbWljX3Jj dV9yZWFkKCkgdG8KICAgICAgICAgcmVhZCBkYXRhLCB1bmxlc3MgY29uY3VycmVudCB3cml0ZXMg YXJlIHByZXZlbnRlZCBieSBhbm90aGVyCiAgICAgICAgIHN5bmNocm9uaXphdGlvbiBtZWNoYW5p c20uCiAKQEAgLTE1MiwxOCArMTUyLDE4IEBAIFRoZSBjb3JlIFJDVSBBUEkgaXMgc21hbGw6CiAg ICAgICAgIGRhdGEgc3RydWN0dXJlIGluIGEgc2luZ2xlIGRpcmVjdGlvbiwgb3Bwb3NpdGUgdG8g dGhlIGRpcmVjdGlvbgogICAgICAgICBpbiB3aGljaCB0aGUgdXBkYXRlciBpbml0aWFsaXplcyBp dC4KIAotICAgICB2b2lkIGF0b21pY19yY3Vfc2V0KHAsIHR5cGVvZigqcCkgdik7CisgICAgIHZv aWQgcWVtdV9hdG9taWNfcmN1X3NldChwLCB0eXBlb2YoKnApIHYpOwogCi0gICAgICAgIGF0b21p Y19yY3Vfc2V0KCkgaXMgc2ltaWxhciB0byBhdG9taWNfc3RvcmVfcmVsZWFzZSgpLCB0aG91Z2gg aXQgYWxzbwotICAgICAgICBtYWtlcyBhc3N1bXB0aW9ucyBvbiB0aGUgY29kZSB0aGF0IGNhbGxz IGl0IGluIG9yZGVyIHRvIGFsbG93IGEgbW9yZQotICAgICAgICBvcHRpbWl6ZWQgaW1wbGVtZW50 YXRpb24uCisJcWVtdV9hdG9taWNfcmN1X3NldCgpIGlzIHNpbWlsYXIgdG8gcWVtdV9hdG9taWNf c3RvcmVfcmVsZWFzZSgpLCB0aG91Z2gKKwlpdCBhbHNvIG1ha2VzIGFzc3VtcHRpb25zIG9uIHRo ZSBjb2RlIHRoYXQgY2FsbHMgaXQgaW4gb3JkZXIgdG8gYWxsb3cgYQorICAgICAgICBtb3JlIG9w dGltaXplZCBpbXBsZW1lbnRhdGlvbi4KIAotICAgICAgICBJbiBwYXJ0aWN1bGFyLCBhdG9taWNf cmN1X3NldCgpIHN1ZmZpY2VzIGZvciBzeW5jaHJvbml6YXRpb24KKyAgICAgICAgSW4gcGFydGlj dWxhciwgcWVtdV9hdG9taWNfcmN1X3NldCgpIHN1ZmZpY2VzIGZvciBzeW5jaHJvbml6YXRpb24K ICAgICAgICAgd2l0aCByZWFkZXJzLCBpZiB0aGUgdXBkYXRlciBuZXZlciBtdXRhdGVzIGEgZmll bGQgd2l0aGluIGEKICAgICAgICAgZGF0YSBpdGVtIHRoYXQgaXMgYWxyZWFkeSBhY2Nlc3NpYmxl IHRvIHJlYWRlcnMuICBUaGlzIGlzIHRoZQogICAgICAgICBjYXNlIHdoZW4gaW5pdGlhbGl6aW5n IGEgbmV3IGNvcHkgb2YgdGhlIFJDVS1wcm90ZWN0ZWQgZGF0YQogICAgICAgICBzdHJ1Y3R1cmU7 IGp1c3QgZW5zdXJlIHRoYXQgaW5pdGlhbGl6YXRpb24gb2YgKnAgaXMgY2FycmllZCBvdXQKLSAg ICAgICAgYmVmb3JlIGF0b21pY19yY3Vfc2V0KCkgbWFrZXMgdGhlIGRhdGEgaXRlbSB2aXNpYmxl IHRvIHJlYWRlcnMuCisgICAgICAgIGJlZm9yZSBxZW11X2F0b21pY19yY3Vfc2V0KCkgbWFrZXMg dGhlIGRhdGEgaXRlbSB2aXNpYmxlIHRvIHJlYWRlcnMuCiAgICAgICAgIElmIHRoaXMgcnVsZSBp cyBvYnNlcnZlZCwgd3JpdGVzIHdpbGwgaGFwcGVuIGluIHRoZSBvcHBvc2l0ZQogICAgICAgICBv cmRlciBhcyByZWFkcyBpbiB0aGUgUkNVIHJlYWQtc2lkZSBjcml0aWNhbCBzZWN0aW9ucyAob3Ig aWYKICAgICAgICAgdGhlcmUgaXMganVzdCBvbmUgdXBkYXRlKSwgYW5kIHRoZXJlIHdpbGwgYmUg bm8gbmVlZCBmb3Igb3RoZXIKQEAgLTIxMiw3ICsyMTIsNyBAQCBESUZGRVJFTkNFUyBXSVRIIExJ TlVYCiAgIHByb2dyYW1taW5nOyBub3QgYWxsb3dpbmcgdGhpcyB3b3VsZCBwcmV2ZW50IHVwZ3Jh ZGluZyBhbiBSQ1UgcmVhZC1zaWRlCiAgIGNyaXRpY2FsIHNlY3Rpb24gdG8gYmVjb21lIGFuIHVw ZGF0ZXIuCiAKLS0gYXRvbWljX3JjdV9yZWFkIGFuZCBhdG9taWNfcmN1X3NldCByZXBsYWNlIHJj dV9kZXJlZmVyZW5jZSBhbmQKKy0gcWVtdV9hdG9taWNfcmN1X3JlYWQgYW5kIHFlbXVfYXRvbWlj X3JjdV9zZXQgcmVwbGFjZSByY3VfZGVyZWZlcmVuY2UgYW5kCiAgIHJjdV9hc3NpZ25fcG9pbnRl ci4gIFRoZXkgdGFrZSBhIF9wb2ludGVyXyB0byB0aGUgdmFyaWFibGUgYmVpbmcgYWNjZXNzZWQu CiAKIC0gY2FsbF9yY3UgaXMgYSBtYWNybyB0aGF0IGhhcyBhbiBleHRyYSBhcmd1bWVudCAodGhl IG5hbWUgb2YgdGhlIGZpcnN0CkBAIC0yNTcsNyArMjU3LDcgQEAgbWF5IGJlIHVzZWQgYXMgYSBy ZXN0cmljdGVkIHJlZmVyZW5jZS1jb3VudGluZyBtZWNoYW5pc20uICBGb3IgZXhhbXBsZSwKIGNv bnNpZGVyIHRoZSBmb2xsb3dpbmcgY29kZSBmcmFnbWVudDoKIAogICAgIHJjdV9yZWFkX2xvY2so KTsKLSAgICBwID0gYXRvbWljX3JjdV9yZWFkKCZmb28pOworICAgIHAgPSBxZW11X2F0b21pY19y Y3VfcmVhZCgmZm9vKTsKICAgICAvKiBkbyBzb21ldGhpbmcgd2l0aCBwLiAqLwogICAgIHJjdV9y ZWFkX3VubG9jaygpOwogCkBAIC0yNjgsNyArMjY4LDcgQEAgVGhlIHdyaXRlIHNpZGUgbG9va3Mg c2ltcGx5IGxpa2UgdGhpcyAod2l0aCBhcHByb3ByaWF0ZSBsb2NraW5nKToKIAogICAgIHFlbXVf bXV0ZXhfbG9jaygmZm9vX211dGV4KTsKICAgICBvbGQgPSBmb287Ci0gICAgYXRvbWljX3JjdV9z ZXQoJmZvbywgbmV3KTsKKyAgICBxZW11X2F0b21pY19yY3Vfc2V0KCZmb28sIG5ldyk7CiAgICAg cWVtdV9tdXRleF91bmxvY2soJmZvb19tdXRleCk7CiAgICAgc3luY2hyb25pemVfcmN1KCk7CiAg ICAgZnJlZShvbGQpOwpAQCAtMjc3LDcgKzI3Nyw3IEBAIElmIHRoZSBwcm9jZXNzaW5nIGNhbm5v dCBiZSBkb25lIHB1cmVseSB3aXRoaW4gdGhlIGNyaXRpY2FsIHNlY3Rpb24sIGl0CiBpcyBwb3Nz aWJsZSB0byBjb21iaW5lIHRoaXMgaWRpb20gd2l0aCBhICJyZWFsIiByZWZlcmVuY2UgY291bnQ6 CiAKICAgICByY3VfcmVhZF9sb2NrKCk7Ci0gICAgcCA9IGF0b21pY19yY3VfcmVhZCgmZm9vKTsK KyAgICBwID0gcWVtdV9hdG9taWNfcmN1X3JlYWQoJmZvbyk7CiAgICAgZm9vX3JlZihwKTsKICAg ICByY3VfcmVhZF91bmxvY2soKTsKICAgICAvKiBkbyBzb21ldGhpbmcgd2l0aCBwLiAqLwpAQCAt Mjg3LDcgKzI4Nyw3IEBAIFRoZSB3cml0ZSBzaWRlIGNhbiBiZSBsaWtlIHRoaXM6CiAKICAgICBx ZW11X211dGV4X2xvY2soJmZvb19tdXRleCk7CiAgICAgb2xkID0gZm9vOwotICAgIGF0b21pY19y Y3Vfc2V0KCZmb28sIG5ldyk7CisgICAgcWVtdV9hdG9taWNfcmN1X3NldCgmZm9vLCBuZXcpOwog ICAgIHFlbXVfbXV0ZXhfdW5sb2NrKCZmb29fbXV0ZXgpOwogICAgIHN5bmNocm9uaXplX3JjdSgp OwogICAgIGZvb191bnJlZihvbGQpOwpAQCAtMjk2LDcgKzI5Niw3IEBAIG9yIHdpdGggY2FsbF9y Y3U6CiAKICAgICBxZW11X211dGV4X2xvY2soJmZvb19tdXRleCk7CiAgICAgb2xkID0gZm9vOwot ICAgIGF0b21pY19yY3Vfc2V0KCZmb28sIG5ldyk7CisgICAgcWVtdV9hdG9taWNfcmN1X3NldCgm Zm9vLCBuZXcpOwogICAgIHFlbXVfbXV0ZXhfdW5sb2NrKCZmb29fbXV0ZXgpOwogICAgIGNhbGxf cmN1KGZvb191bnJlZiwgb2xkLCByY3UpOwogCkBAIC0zMDcsNyArMzA3LDcgQEAgbGFzdCByZWZl cmVuY2UgbWF5IGJlIGRyb3BwZWQgb24gdGhlIHJlYWQgc2lkZS4gIEhlbmNlIHlvdSBjYW4KIHVz ZSBjYWxsX3JjdSgpIGluc3RlYWQ6CiAKICAgICAgZm9vX3VucmVmKHN0cnVjdCBmb28gKnApIHsK LSAgICAgICAgaWYgKGF0b21pY19mZXRjaF9kZWMoJnAtPnJlZmNvdW50KSA9PSAxKSB7CisgICAg ICAgIGlmIChxZW11X2F0b21pY19mZXRjaF9kZWMoJnAtPnJlZmNvdW50KSA9PSAxKSB7CiAgICAg ICAgICAgICBjYWxsX3JjdShmb29fZGVzdHJveSwgcCwgcmN1KTsKICAgICAgICAgfQogICAgIH0K QEAgLTM3NSw3ICszNzUsNyBAQCBJbnN0ZWFkLCB3ZSBzdG9yZSB0aGUgc2l6ZSBvZiB0aGUgYXJy YXkgd2l0aCB0aGUgYXJyYXkgaXRzZWxmOgogCiAgICAgcmVhZCBzaWRlOgogICAgICAgICByY3Vf cmVhZF9sb2NrKCk7Ci0gICAgICAgIHN0cnVjdCBhcnIgKmFycmF5ID0gYXRvbWljX3JjdV9yZWFk KCZnbG9iYWxfYXJyYXkpOworICAgICAgICBzdHJ1Y3QgYXJyICphcnJheSA9IHFlbXVfYXRvbWlj X3JjdV9yZWFkKCZnbG9iYWxfYXJyYXkpOwogICAgICAgICB4ID0gaSA8IGFycmF5LT5zaXplID8g YXJyYXktPmRhdGFbaV0gOiAtMTsKICAgICAgICAgcmN1X3JlYWRfdW5sb2NrKCk7CiAgICAgICAg IHJldHVybiB4OwpAQCAtMzkyLDcgKzM5Miw3IEBAIEluc3RlYWQsIHdlIHN0b3JlIHRoZSBzaXpl IG9mIHRoZSBhcnJheSB3aXRoIHRoZSBhcnJheSBpdHNlbGY6CiAKICAgICAgICAgICAgIC8qIFJl bW92YWwgcGhhc2UuICAqLwogICAgICAgICAgICAgb2xkX2FycmF5ID0gZ2xvYmFsX2FycmF5Owot ICAgICAgICAgICAgYXRvbWljX3JjdV9zZXQoJm5ld19hcnJheS0+ZGF0YSwgbmV3X2FycmF5KTsK KyAgICAgICAgICAgIHFlbXVfYXRvbWljX3JjdV9zZXQoJm5ld19hcnJheS0+ZGF0YSwgbmV3X2Fy cmF5KTsKICAgICAgICAgICAgIHN5bmNocm9uaXplX3JjdSgpOwogCiAgICAgICAgICAgICAvKiBS ZWNsYW1hdGlvbiBwaGFzZS4gICovCmRpZmYgLS1naXQgYS9hY2NlbC90Y2cvYXRvbWljX3RlbXBs YXRlLmggYi9hY2NlbC90Y2cvYXRvbWljX3RlbXBsYXRlLmgKaW5kZXggMjY5Njk0ODdkNi4uNmU5 ZTIyMWY3OCAxMDA2NDQKLS0tIGEvYWNjZWwvdGNnL2F0b21pY190ZW1wbGF0ZS5oCisrKyBiL2Fj Y2VsL3RjZy9hdG9taWNfdGVtcGxhdGUuaApAQCAtODMsNyArODMsNyBAQCBBQklfVFlQRSBBVE9N SUNfTkFNRShjbXB4Y2hnKShDUFVBcmNoU3RhdGUgKmVudiwgdGFyZ2V0X3Vsb25nIGFkZHIsCiAj aWYgREFUQV9TSVpFID09IDE2CiAgICAgcmV0ID0gYXRvbWljMTZfY21weGNoZyhoYWRkciwgY21w diwgbmV3dik7CiAjZWxzZQotICAgIHJldCA9IGF0b21pY19jbXB4Y2hnX19ub2NoZWNrKGhhZGRy LCBjbXB2LCBuZXd2KTsKKyAgICByZXQgPSBxZW11X2F0b21pY19jbXB4Y2hnX19ub2NoZWNrKGhh ZGRyLCBjbXB2LCBuZXd2KTsKICNlbmRpZgogICAgIEFUT01JQ19NTVVfQ0xFQU5VUDsKICAgICBh dG9taWNfdHJhY2Vfcm13X3Bvc3QoZW52LCBhZGRyLCBpbmZvKTsKQEAgLTEzMSw3ICsxMzEsNyBA QCBBQklfVFlQRSBBVE9NSUNfTkFNRSh4Y2hnKShDUFVBcmNoU3RhdGUgKmVudiwgdGFyZ2V0X3Vs b25nIGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFUT01J Q19NTVVfSURYKTsKIAogICAgIGF0b21pY190cmFjZV9ybXdfcHJlKGVudiwgYWRkciwgaW5mbyk7 Ci0gICAgcmV0ID0gYXRvbWljX3hjaGdfX25vY2hlY2soaGFkZHIsIHZhbCk7CisgICAgcmV0ID0g cWVtdV9hdG9taWNfeGNoZ19fbm9jaGVjayhoYWRkciwgdmFsKTsKICAgICBBVE9NSUNfTU1VX0NM RUFOVVA7CiAgICAgYXRvbWljX3RyYWNlX3Jtd19wb3N0KGVudiwgYWRkciwgaW5mbyk7CiAgICAg cmV0dXJuIHJldDsKQEAgLTE0Nyw3ICsxNDcsNyBAQCBBQklfVFlQRSBBVE9NSUNfTkFNRShYKShD UFVBcmNoU3RhdGUgKmVudiwgdGFyZ2V0X3Vsb25nIGFkZHIsICAgICAgIFwKICAgICB1aW50MTZf dCBpbmZvID0gdHJhY2VfbWVtX2J1aWxkX2luZm8oU0hJRlQsIGZhbHNlLCAwLCBmYWxzZSwgICAg XAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVE9NSUNfTU1VX0lE WCk7ICAgICAgICAgICBcCiAgICAgYXRvbWljX3RyYWNlX3Jtd19wcmUoZW52LCBhZGRyLCBpbmZv KTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICByZXQgPSBhdG9taWNfIyNYKGhhZGRy LCB2YWwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHJldCA9IHFl bXVfYXRvbWljXyMjWChoYWRkciwgdmFsKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CiAgICAgQVRPTUlDX01NVV9DTEVBTlVQOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKICAgICBhdG9taWNfdHJhY2Vfcm13X3Bvc3QoZW52LCBhZGRyLCBpbmZv KTsgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHJldHVybiByZXQ7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0xODIsMTAgKzE4 MiwxMCBAQCBBQklfVFlQRSBBVE9NSUNfTkFNRShYKShDUFVBcmNoU3RhdGUgKmVudiwgdGFyZ2V0 X3Vsb25nIGFkZHIsICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQVRPTUlDX01NVV9JRFgpOyAgICAgICAgICAgXAogICAgIGF0b21pY190cmFjZV9ybXdf cHJlKGVudiwgYWRkciwgaW5mbyk7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgc21w X21iKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKLSAgICBjbXAgPSBhdG9taWNfcmVhZF9fbm9jaGVjayhoYWRkcik7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgIGNtcCA9IHFlbXVfYXRvbWljX3JlYWRfX25vY2hlY2so aGFkZHIpOyAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgZG8geyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAg b2xkID0gY21wOyBuZXcgPSBGTihvbGQsIHZhbCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAotICAgICAgICBjbXAgPSBhdG9taWNfY21weGNoZ19fbm9jaGVjayhoYWRkciwgb2xkLCBu ZXcpOyAgICAgICAgICAgICBcCisgICAgICAgIGNtcCA9IHFlbXVfYXRvbWljX2NtcHhjaGdfX25v Y2hlY2soaGFkZHIsIG9sZCwgbmV3KTsgICAgICAgIFwKICAgICB9IHdoaWxlIChjbXAgIT0gb2xk KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIEFUT01J Q19NTVVfQ0xFQU5VUDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCiAgICAgYXRvbWljX3RyYWNlX3Jtd19wb3N0KGVudiwgYWRkciwgaW5mbyk7ICAgICAgICAg ICAgICAgICAgICAgICAgIFwKQEAgLTIzMCw3ICsyMzAsNyBAQCBBQklfVFlQRSBBVE9NSUNfTkFN RShjbXB4Y2hnKShDUFVBcmNoU3RhdGUgKmVudiwgdGFyZ2V0X3Vsb25nIGFkZHIsCiAjaWYgREFU QV9TSVpFID09IDE2CiAgICAgcmV0ID0gYXRvbWljMTZfY21weGNoZyhoYWRkciwgQlNXQVAoY21w diksIEJTV0FQKG5ld3YpKTsKICNlbHNlCi0gICAgcmV0ID0gYXRvbWljX2NtcHhjaGdfX25vY2hl Y2soaGFkZHIsIEJTV0FQKGNtcHYpLCBCU1dBUChuZXd2KSk7CisgICAgcmV0ID0gcWVtdV9hdG9t aWNfY21weGNoZ19fbm9jaGVjayhoYWRkciwgQlNXQVAoY21wdiksIEJTV0FQKG5ld3YpKTsKICNl bmRpZgogICAgIEFUT01JQ19NTVVfQ0xFQU5VUDsKICAgICBhdG9taWNfdHJhY2Vfcm13X3Bvc3Qo ZW52LCBhZGRyLCBpbmZvKTsKQEAgLTI4MCw3ICsyODAsNyBAQCBBQklfVFlQRSBBVE9NSUNfTkFN RSh4Y2hnKShDUFVBcmNoU3RhdGUgKmVudiwgdGFyZ2V0X3Vsb25nIGFkZHIsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFUT01JQ19NTVVfSURYKTsKIAogICAgIGF0 b21pY190cmFjZV9ybXdfcHJlKGVudiwgYWRkciwgaW5mbyk7Ci0gICAgcmV0ID0gYXRvbWljX3hj aGdfX25vY2hlY2soaGFkZHIsIEJTV0FQKHZhbCkpOworICAgIHJldCA9IHFlbXVfYXRvbWljX3hj aGdfX25vY2hlY2soaGFkZHIsIEJTV0FQKHZhbCkpOwogICAgIEFUT01JQ19NTVVfQ0xFQU5VUDsK ICAgICBhdG9taWNfdHJhY2Vfcm13X3Bvc3QoZW52LCBhZGRyLCBpbmZvKTsKICAgICByZXR1cm4g QlNXQVAocmV0KTsKQEAgLTI5Niw3ICsyOTYsNyBAQCBBQklfVFlQRSBBVE9NSUNfTkFNRShYKShD UFVBcmNoU3RhdGUgKmVudiwgdGFyZ2V0X3Vsb25nIGFkZHIsICAgICAgIFwKICAgICB1aW50MTZf dCBpbmZvID0gdHJhY2VfbWVtX2J1aWxkX2luZm8oU0hJRlQsIGZhbHNlLCBNT19CU1dBUCwgICAg XAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwgQVRPTUlD X01NVV9JRFgpOyAgICBcCiAgICAgYXRvbWljX3RyYWNlX3Jtd19wcmUoZW52LCBhZGRyLCBpbmZv KTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICByZXQgPSBhdG9taWNfIyNYKGhhZGRy LCBCU1dBUCh2YWwpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHJldCA9IHFl bXVfYXRvbWljXyMjWChoYWRkciwgQlNXQVAodmFsKSk7ICAgICAgICAgICAgICAgICAgICAgICBc CiAgICAgQVRPTUlDX01NVV9DTEVBTlVQOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKICAgICBhdG9taWNfdHJhY2Vfcm13X3Bvc3QoZW52LCBhZGRyLCBpbmZv KTsgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHJldHVybiBCU1dBUChyZXQpOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0zMjksMTAgKzMy OSwxMCBAQCBBQklfVFlQRSBBVE9NSUNfTkFNRShYKShDUFVBcmNoU3RhdGUgKmVudiwgdGFyZ2V0 X3Vsb25nIGFkZHIsICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZmFsc2UsIEFUT01JQ19NTVVfSURYKTsgICAgXAogICAgIGF0b21pY190cmFjZV9ybXdf cHJlKGVudiwgYWRkciwgaW5mbyk7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgc21w X21iKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKLSAgICBsZG4gPSBhdG9taWNfcmVhZF9fbm9jaGVjayhoYWRkcik7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgIGxkbiA9IHFlbXVfYXRvbWljX3JlYWRfX25vY2hlY2so aGFkZHIpOyAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgZG8geyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAg bGRvID0gbGRuOyBvbGQgPSBCU1dBUChsZG8pOyBuZXcgPSBGTihvbGQsIHZhbCk7ICAgICAgICAg ICAgXAotICAgICAgICBsZG4gPSBhdG9taWNfY21weGNoZ19fbm9jaGVjayhoYWRkciwgbGRvLCBC U1dBUChuZXcpKTsgICAgICBcCisgICAgICAgIGxkbiA9IHFlbXVfYXRvbWljX2NtcHhjaGdfX25v Y2hlY2soaGFkZHIsIGxkbywgQlNXQVAobmV3KSk7IFwKICAgICB9IHdoaWxlIChsZG8gIT0gbGRu KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIEFUT01J Q19NTVVfQ0xFQU5VUDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCiAgICAgYXRvbWljX3RyYWNlX3Jtd19wb3N0KGVudiwgYWRkciwgaW5mbyk7ICAgICAgICAg ICAgICAgICAgICAgICAgIFwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYmxvY2svYWlvLXdhaXQuaCBi L2luY2x1ZGUvYmxvY2svYWlvLXdhaXQuaAppbmRleCA3MTZkMjYzOWRmLi44ZjVhODkwNjY2IDEw MDY0NAotLS0gYS9pbmNsdWRlL2Jsb2NrL2Fpby13YWl0LmgKKysrIGIvaW5jbHVkZS9ibG9jay9h aW8td2FpdC5oCkBAIC04MCw3ICs4MCw3IEBAIGV4dGVybiBBaW9XYWl0IGdsb2JhbF9haW9fd2Fp dDsKICAgICBBaW9XYWl0ICp3YWl0XyA9ICZnbG9iYWxfYWlvX3dhaXQ7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCiAgICAgQWlvQ29udGV4dCAqY3R4XyA9IChjdHgpOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIC8qIEluY3JlbWVudCB3YWl0Xy0+bnVt X3dhaXRlcnMgYmVmb3JlIGV2YWx1YXRpbmcgY29uZC4gKi8gICAgIFwKLSAgICBhdG9taWNfaW5j KCZ3YWl0Xy0+bnVtX3dhaXRlcnMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgcWVtdV9hdG9taWNfaW5jKCZ3YWl0Xy0+bnVtX3dhaXRlcnMpOyAgICAgICAgICAgICAgICAg ICAgICAgICAgXAogICAgIGlmIChjdHhfICYmIGluX2Fpb19jb250ZXh0X2hvbWVfdGhyZWFkKGN0 eF8pKSB7ICAgICAgICAgICAgICAgIFwKICAgICAgICAgd2hpbGUgKChjb25kKSkgeyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICBhaW9fcG9s bChjdHhfLCB0cnVlKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMTAw LDcgKzEwMCw3IEBAIGV4dGVybiBBaW9XYWl0IGdsb2JhbF9haW9fd2FpdDsKICAgICAgICAgICAg IHdhaXRlZF8gPSB0cnVlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CiAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAogICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBhdG9taWNfZGVjKCZ3YWl0Xy0+bnVtX3dh aXRlcnMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgcWVtdV9hdG9taWNf ZGVjKCZ3YWl0Xy0+bnVtX3dhaXRlcnMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg IHdhaXRlZF87IH0pCiAKIC8qKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ibG9jay9haW8uaCBiL2lu Y2x1ZGUvYmxvY2svYWlvLmgKaW5kZXggYjJmNzAzZmEzZi4uMDU3ZTczYzQ4YyAxMDA2NDQKLS0t IGEvaW5jbHVkZS9ibG9jay9haW8uaAorKysgYi9pbmNsdWRlL2Jsb2NrL2Fpby5oCkBAIC01OTUs NyArNTk1LDcgQEAgaW50NjRfdCBhaW9fY29tcHV0ZV90aW1lb3V0KEFpb0NvbnRleHQgKmN0eCk7 CiAgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBhaW9fZGlzYWJsZV9leHRlcm5hbChBaW9Db250ZXh0 ICpjdHgpCiB7Ci0gICAgYXRvbWljX2luYygmY3R4LT5leHRlcm5hbF9kaXNhYmxlX2NudCk7Cisg ICAgcWVtdV9hdG9taWNfaW5jKCZjdHgtPmV4dGVybmFsX2Rpc2FibGVfY250KTsKIH0KIAogLyoq CkBAIC02MDgsNyArNjA4LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFpb19lbmFibGVfZXh0ZXJu YWwoQWlvQ29udGV4dCAqY3R4KQogewogICAgIGludCBvbGQ7CiAKLSAgICBvbGQgPSBhdG9taWNf ZmV0Y2hfZGVjKCZjdHgtPmV4dGVybmFsX2Rpc2FibGVfY250KTsKKyAgICBvbGQgPSBxZW11X2F0 b21pY19mZXRjaF9kZWMoJmN0eC0+ZXh0ZXJuYWxfZGlzYWJsZV9jbnQpOwogICAgIGFzc2VydChv bGQgPiAwKTsKICAgICBpZiAob2xkID09IDEpIHsKICAgICAgICAgLyogS2ljayBldmVudCBsb29w IHNvIGl0IHJlLWFybXMgZmlsZSBkZXNjcmlwdG9ycyAqLwpAQCAtNjI0LDcgKzYyNCw3IEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCBhaW9fZW5hYmxlX2V4dGVybmFsKEFpb0NvbnRleHQgKmN0eCkKICAq Lwogc3RhdGljIGlubGluZSBib29sIGFpb19leHRlcm5hbF9kaXNhYmxlZChBaW9Db250ZXh0ICpj dHgpCiB7Ci0gICAgcmV0dXJuIGF0b21pY19yZWFkKCZjdHgtPmV4dGVybmFsX2Rpc2FibGVfY250 KTsKKyAgICByZXR1cm4gcWVtdV9hdG9taWNfcmVhZCgmY3R4LT5leHRlcm5hbF9kaXNhYmxlX2Nu dCk7CiB9CiAKIC8qKgpAQCAtNjM3LDcgKzYzNyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBhaW9f ZXh0ZXJuYWxfZGlzYWJsZWQoQWlvQ29udGV4dCAqY3R4KQogICovCiBzdGF0aWMgaW5saW5lIGJv b2wgYWlvX25vZGVfY2hlY2soQWlvQ29udGV4dCAqY3R4LCBib29sIGlzX2V4dGVybmFsKQogewot ICAgIHJldHVybiAhaXNfZXh0ZXJuYWwgfHwgIWF0b21pY19yZWFkKCZjdHgtPmV4dGVybmFsX2Rp c2FibGVfY250KTsKKyAgICByZXR1cm4gIWlzX2V4dGVybmFsIHx8ICFxZW11X2F0b21pY19yZWFk KCZjdHgtPmV4dGVybmFsX2Rpc2FibGVfY250KTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9pbmNs dWRlL2V4ZWMvY3B1X2xkc3QuaCBiL2luY2x1ZGUvZXhlYy9jcHVfbGRzdC5oCmluZGV4IGMxNGE0 OGY2NWUuLjZkY2YxN2YzN2IgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZXhlYy9jcHVfbGRzdC5oCisr KyBiL2luY2x1ZGUvZXhlYy9jcHVfbGRzdC5oCkBAIC0yOTksNyArMjk5LDcgQEAgc3RhdGljIGlu bGluZSB0YXJnZXRfdWxvbmcgdGxiX2FkZHJfd3JpdGUoY29uc3QgQ1BVVExCRW50cnkgKmVudHJ5 KQogI2lmIFRDR19PVkVSU0laRURfR1VFU1QKICAgICByZXR1cm4gZW50cnktPmFkZHJfd3JpdGU7 CiAjZWxzZQotICAgIHJldHVybiBhdG9taWNfcmVhZCgmZW50cnktPmFkZHJfd3JpdGUpOworICAg IHJldHVybiBxZW11X2F0b21pY19yZWFkKCZlbnRyeS0+YWRkcl93cml0ZSk7CiAjZW5kaWYKIH0K IApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9leGVjL2V4ZWMtYWxsLmggYi9pbmNsdWRlL2V4ZWMvZXhl Yy1hbGwuaAppbmRleCAzY2Y4ODI3MmRmLi4wNWFkNjVhNzE0IDEwMDY0NAotLS0gYS9pbmNsdWRl L2V4ZWMvZXhlYy1hbGwuaAorKysgYi9pbmNsdWRlL2V4ZWMvZXhlYy1hbGwuaApAQCAtODksNyAr ODksNyBAQCB2b2lkIFFFTVVfTk9SRVRVUk4gY3B1X2xvb3BfZXhpdF9hdG9taWMoQ1BVU3RhdGUg KmNwdSwgdWludHB0cl90IHBjKTsKICAqLwogc3RhdGljIGlubGluZSBib29sIGNwdV9sb29wX2V4 aXRfcmVxdWVzdGVkKENQVVN0YXRlICpjcHUpCiB7Ci0gICAgcmV0dXJuIChpbnQzMl90KWF0b21p Y19yZWFkKCZjcHVfbmVnKGNwdSktPmljb3VudF9kZWNyLnUzMikgPCAwOworICAgIHJldHVybiAo aW50MzJfdClxZW11X2F0b21pY19yZWFkKCZjcHVfbmVnKGNwdSktPmljb3VudF9kZWNyLnUzMikg PCAwOwogfQogCiAjaWYgIWRlZmluZWQoQ09ORklHX1VTRVJfT05MWSkKQEAgLTQ4NywxMCArNDg3 LDEwIEBAIHN0cnVjdCBUcmFuc2xhdGlvbkJsb2NrIHsKIAogZXh0ZXJuIGJvb2wgcGFyYWxsZWxf Y3B1czsKIAotLyogSGlkZSB0aGUgYXRvbWljX3JlYWQgdG8gbWFrZSBjb2RlIGEgbGl0dGxlIGVh c2llciBvbiB0aGUgZXllcyAqLworLyogSGlkZSB0aGUgcWVtdV9hdG9taWNfcmVhZCB0byBtYWtl IGNvZGUgYSBsaXR0bGUgZWFzaWVyIG9uIHRoZSBleWVzICovCiBzdGF0aWMgaW5saW5lIHVpbnQz Ml90IHRiX2NmbGFncyhjb25zdCBUcmFuc2xhdGlvbkJsb2NrICp0YikKIHsKLSAgICByZXR1cm4g YXRvbWljX3JlYWQoJnRiLT5jZmxhZ3MpOworICAgIHJldHVybiBxZW11X2F0b21pY19yZWFkKCZ0 Yi0+Y2ZsYWdzKTsKIH0KIAogLyogY3VycmVudCBjZmxhZ3MgZm9yIGhhc2hpbmcvY29tcGFyaXNv biAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9leGVjL2xvZy5oIGIvaW5jbHVkZS9leGVjL2xvZy5o CmluZGV4IDNlZDc5N2MxYzguLjJmZjBhYzBmN2YgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZXhlYy9s b2cuaAorKysgYi9pbmNsdWRlL2V4ZWMvbG9nLmgKQEAgLTE5LDcgKzE5LDcgQEAgc3RhdGljIGlu bGluZSB2b2lkIGxvZ19jcHVfc3RhdGUoQ1BVU3RhdGUgKmNwdSwgaW50IGZsYWdzKQogCiAgICAg aWYgKHFlbXVfbG9nX2VuYWJsZWQoKSkgewogICAgICAgICByY3VfcmVhZF9sb2NrKCk7Ci0gICAg ICAgIGxvZ2ZpbGUgPSBhdG9taWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7CisgICAgICAgIGxv Z2ZpbGUgPSBxZW11X2F0b21pY19yY3VfcmVhZCgmcWVtdV9sb2dmaWxlKTsKICAgICAgICAgaWYg KGxvZ2ZpbGUpIHsKICAgICAgICAgICAgIGNwdV9kdW1wX3N0YXRlKGNwdSwgbG9nZmlsZS0+ZmQs IGZsYWdzKTsKICAgICAgICAgfQpAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQg bG9nX3RhcmdldF9kaXNhcyhDUFVTdGF0ZSAqY3B1LCB0YXJnZXRfdWxvbmcgc3RhcnQsCiB7CiAg ICAgUWVtdUxvZ0ZpbGUgKmxvZ2ZpbGU7CiAgICAgcmN1X3JlYWRfbG9jaygpOwotICAgIGxvZ2Zp bGUgPSBhdG9taWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7CisgICAgbG9nZmlsZSA9IHFlbXVf YXRvbWljX3JjdV9yZWFkKCZxZW11X2xvZ2ZpbGUpOwogICAgIGlmIChsb2dmaWxlKSB7CiAgICAg ICAgIHRhcmdldF9kaXNhcyhsb2dmaWxlLT5mZCwgY3B1LCBzdGFydCwgbGVuKTsKICAgICB9CkBA IC02MCw3ICs2MCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBsb2dfZGlzYXModm9pZCAqY29kZSwg dW5zaWduZWQgbG9uZyBzaXplLCBjb25zdCBjaGFyICpub3RlKQogewogICAgIFFlbXVMb2dGaWxl ICpsb2dmaWxlOwogICAgIHJjdV9yZWFkX2xvY2soKTsKLSAgICBsb2dmaWxlID0gYXRvbWljX3Jj dV9yZWFkKCZxZW11X2xvZ2ZpbGUpOworICAgIGxvZ2ZpbGUgPSBxZW11X2F0b21pY19yY3VfcmVh ZCgmcWVtdV9sb2dmaWxlKTsKICAgICBpZiAobG9nZmlsZSkgewogICAgICAgICBkaXNhcyhsb2dm aWxlLT5mZCwgY29kZSwgc2l6ZSwgbm90ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9l eGVjL21lbW9yeS5oIGIvaW5jbHVkZS9leGVjL21lbW9yeS5oCmluZGV4IGYxYmIyYTdkZjUuLmQ4 NzlkODJkMGYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZXhlYy9tZW1vcnkuaAorKysgYi9pbmNsdWRl L2V4ZWMvbWVtb3J5LmgKQEAgLTY4NSw3ICs2ODUsNyBAQCBzdHJ1Y3QgRmxhdFZpZXcgewogCiBz dGF0aWMgaW5saW5lIEZsYXRWaWV3ICphZGRyZXNzX3NwYWNlX3RvX2ZsYXR2aWV3KEFkZHJlc3NT cGFjZSAqYXMpCiB7Ci0gICAgcmV0dXJuIGF0b21pY19yY3VfcmVhZCgmYXMtPmN1cnJlbnRfbWFw KTsKKyAgICByZXR1cm4gcWVtdV9hdG9taWNfcmN1X3JlYWQoJmFzLT5jdXJyZW50X21hcCk7CiB9 CiAKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9leGVjL3JhbV9hZGRyLmggYi9pbmNsdWRlL2V4ZWMv cmFtX2FkZHIuaAppbmRleCAzZWY3MjlhMjNjLi42ZTczMTNkNzM2IDEwMDY0NAotLS0gYS9pbmNs dWRlL2V4ZWMvcmFtX2FkZHIuaAorKysgYi9pbmNsdWRlL2V4ZWMvcmFtX2FkZHIuaApAQCAtMTY0 LDcgKzE2NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjcHVfcGh5c2ljYWxfbWVtb3J5X2dldF9k aXJ0eShyYW1fYWRkcl90IHN0YXJ0LAogICAgIHBhZ2UgPSBzdGFydCA+PiBUQVJHRVRfUEFHRV9C SVRTOwogCiAgICAgV0lUSF9SQ1VfUkVBRF9MT0NLX0dVQVJEKCkgewotICAgICAgICBibG9ja3Mg PSBhdG9taWNfcmN1X3JlYWQoJnJhbV9saXN0LmRpcnR5X21lbW9yeVtjbGllbnRdKTsKKyAgICAg ICAgYmxvY2tzID0gcWVtdV9hdG9taWNfcmN1X3JlYWQoJnJhbV9saXN0LmRpcnR5X21lbW9yeVtj bGllbnRdKTsKIAogICAgICAgICBpZHggPSBwYWdlIC8gRElSVFlfTUVNT1JZX0JMT0NLX1NJWkU7 CiAgICAgICAgIG9mZnNldCA9IHBhZ2UgJSBESVJUWV9NRU1PUllfQkxPQ0tfU0laRTsKQEAgLTIw NSw3ICsyMDUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgY3B1X3BoeXNpY2FsX21lbW9yeV9hbGxf ZGlydHkocmFtX2FkZHJfdCBzdGFydCwKIAogICAgIFJDVV9SRUFEX0xPQ0tfR1VBUkQoKTsKIAot ICAgIGJsb2NrcyA9IGF0b21pY19yY3VfcmVhZCgmcmFtX2xpc3QuZGlydHlfbWVtb3J5W2NsaWVu dF0pOworICAgIGJsb2NrcyA9IHFlbXVfYXRvbWljX3JjdV9yZWFkKCZyYW1fbGlzdC5kaXJ0eV9t ZW1vcnlbY2xpZW50XSk7CiAKICAgICBpZHggPSBwYWdlIC8gRElSVFlfTUVNT1JZX0JMT0NLX1NJ WkU7CiAgICAgb2Zmc2V0ID0gcGFnZSAlIERJUlRZX01FTU9SWV9CTE9DS19TSVpFOwpAQCAtMjc4 LDcgKzI3OCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjcHVfcGh5c2ljYWxfbWVtb3J5X3NldF9k aXJ0eV9mbGFnKHJhbV9hZGRyX3QgYWRkciwKIAogICAgIFJDVV9SRUFEX0xPQ0tfR1VBUkQoKTsK IAotICAgIGJsb2NrcyA9IGF0b21pY19yY3VfcmVhZCgmcmFtX2xpc3QuZGlydHlfbWVtb3J5W2Ns aWVudF0pOworICAgIGJsb2NrcyA9IHFlbXVfYXRvbWljX3JjdV9yZWFkKCZyYW1fbGlzdC5kaXJ0 eV9tZW1vcnlbY2xpZW50XSk7CiAKICAgICBzZXRfYml0X2F0b21pYyhvZmZzZXQsIGJsb2Nrcy0+ YmxvY2tzW2lkeF0pOwogfQpAQCAtMzAxLDcgKzMwMSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBj cHVfcGh5c2ljYWxfbWVtb3J5X3NldF9kaXJ0eV9yYW5nZShyYW1fYWRkcl90IHN0YXJ0LAogCiAg ICAgV0lUSF9SQ1VfUkVBRF9MT0NLX0dVQVJEKCkgewogICAgICAgICBmb3IgKGkgPSAwOyBpIDwg RElSVFlfTUVNT1JZX05VTTsgaSsrKSB7Ci0gICAgICAgICAgICBibG9ja3NbaV0gPSBhdG9taWNf cmN1X3JlYWQoJnJhbV9saXN0LmRpcnR5X21lbW9yeVtpXSk7CisgICAgICAgICAgICBibG9ja3Nb aV0gPSBxZW11X2F0b21pY19yY3VfcmVhZCgmcmFtX2xpc3QuZGlydHlfbWVtb3J5W2ldKTsKICAg ICAgICAgfQogCiAgICAgICAgIGlkeCA9IHBhZ2UgLyBESVJUWV9NRU1PUllfQkxPQ0tfU0laRTsK QEAgLTM2MSwyMyArMzYxLDI2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjcHVfcGh5c2ljYWxfbWVt b3J5X3NldF9kaXJ0eV9sZWJpdG1hcCh1bnNpZ25lZCBsb25nICpiaXRtYXAsCiAKICAgICAgICAg V0lUSF9SQ1VfUkVBRF9MT0NLX0dVQVJEKCkgewogICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8 IERJUlRZX01FTU9SWV9OVU07IGkrKykgewotICAgICAgICAgICAgICAgIGJsb2Nrc1tpXSA9IGF0 b21pY19yY3VfcmVhZCgmcmFtX2xpc3QuZGlydHlfbWVtb3J5W2ldKS0+YmxvY2tzOworICAgICAg ICAgICAgICAgIGJsb2Nrc1tpXSA9CisgICAgICAgICAgICAgICAgICAgIHFlbXVfYXRvbWljX3Jj dV9yZWFkKCZyYW1fbGlzdC5kaXJ0eV9tZW1vcnlbaV0pLT5ibG9ja3M7CiAgICAgICAgICAgICB9 CiAKICAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBucjsgaysrKSB7CiAgICAgICAgICAgICAg ICAgaWYgKGJpdG1hcFtrXSkgewogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHRl bXAgPSBsZXVsX3RvX2NwdShiaXRtYXBba10pOwogCi0gICAgICAgICAgICAgICAgICAgIGF0b21p Y19vcigmYmxvY2tzW0RJUlRZX01FTU9SWV9WR0FdW2lkeF1bb2Zmc2V0XSwgdGVtcCk7CisgICAg ICAgICAgICAgICAgICAgIHFlbXVfYXRvbWljX29yKCZibG9ja3NbRElSVFlfTUVNT1JZX1ZHQV1b aWR4XVtvZmZzZXRdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wKTsK IAogICAgICAgICAgICAgICAgICAgICBpZiAoZ2xvYmFsX2RpcnR5X2xvZykgewotICAgICAgICAg ICAgICAgICAgICAgICAgYXRvbWljX29yKCZibG9ja3NbRElSVFlfTUVNT1JZX01JR1JBVElPTl1b aWR4XVtvZmZzZXRdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXApOwor ICAgICAgICAgICAgICAgICAgICAgICAgcWVtdV9hdG9taWNfb3IoCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJmJsb2Nrc1tESVJUWV9NRU1PUllfTUlHUkFUSU9OXVtpZHhdW29mZnNldF0s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcCk7CiAgICAgICAgICAgICAgICAgICAg IH0KIAogICAgICAgICAgICAgICAgICAgICBpZiAodGNnX2VuYWJsZWQoKSkgewotICAgICAgICAg ICAgICAgICAgICAgICAgYXRvbWljX29yKCZibG9ja3NbRElSVFlfTUVNT1JZX0NPREVdW2lkeF1b b2Zmc2V0XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgIHFlbXVfYXRvbWljX29yKCZibG9ja3NbRElSVFlfTUVNT1JZX0NP REVdW2lkeF1bb2Zmc2V0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRlbXApOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogCkBAIC00 NjEsMTIgKzQ2NCwxMiBAQCB1aW50NjRfdCBjcHVfcGh5c2ljYWxfbWVtb3J5X3N5bmNfZGlydHlf Yml0bWFwKFJBTUJsb2NrICpyYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBESVJUWV9NRU1PUllfQkxPQ0tfU0laRSk7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgcGFn ZSA9IEJJVF9XT1JEKHN0YXJ0ID4+IFRBUkdFVF9QQUdFX0JJVFMpOwogCi0gICAgICAgIHNyYyA9 IGF0b21pY19yY3VfcmVhZCgKKyAgICAgICAgc3JjID0gcWVtdV9hdG9taWNfcmN1X3JlYWQoCiAg ICAgICAgICAgICAgICAgJnJhbV9saXN0LmRpcnR5X21lbW9yeVtESVJUWV9NRU1PUllfTUlHUkFU SU9OXSktPmJsb2NrczsKIAogICAgICAgICBmb3IgKGsgPSBwYWdlOyBrIDwgcGFnZSArIG5yOyBr KyspIHsKICAgICAgICAgICAgIGlmIChzcmNbaWR4XVtvZmZzZXRdKSB7Ci0gICAgICAgICAgICAg ICAgdW5zaWduZWQgbG9uZyBiaXRzID0gYXRvbWljX3hjaGcoJnNyY1tpZHhdW29mZnNldF0sIDAp OworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgYml0cyA9IHFlbXVfYXRvbWljX3hjaGco JnNyY1tpZHhdW29mZnNldF0sIDApOwogICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbmV3 X2RpcnR5OwogICAgICAgICAgICAgICAgIG5ld19kaXJ0eSA9IH5kZXN0W2tdOwogICAgICAgICAg ICAgICAgIGRlc3Rba10gfD0gYml0czsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZXhlYy9yYW1saXN0 LmggYi9pbmNsdWRlL2V4ZWMvcmFtbGlzdC5oCmluZGV4IGJjNGZhYTFiMDAuLmFmNTgwNmYxNDMg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZXhlYy9yYW1saXN0LmgKKysrIGIvaW5jbHVkZS9leGVjL3Jh bWxpc3QuaApAQCAtMTksNyArMTksNyBAQCB0eXBlZGVmIHN0cnVjdCBSQU1CbG9ja05vdGlmaWVy IFJBTUJsb2NrTm90aWZpZXI7CiAgKiAgIHJjdV9yZWFkX2xvY2soKTsKICAqCiAgKiAgIERpcnR5 TWVtb3J5QmxvY2tzICpibG9ja3MgPQotICogICAgICAgYXRvbWljX3JjdV9yZWFkKCZyYW1fbGlz dC5kaXJ0eV9tZW1vcnlbRElSVFlfTUVNT1JZX01JR1JBVElPTl0pOworICogICAgICAgcWVtdV9h dG9taWNfcmN1X3JlYWQoJnJhbV9saXN0LmRpcnR5X21lbW9yeVtESVJUWV9NRU1PUllfTUlHUkFU SU9OXSk7CiAgKgogICogICByYW1fYWRkcl90IGlkeCA9IChhZGRyID4+IFRBUkdFVF9QQUdFX0JJ VFMpIC8gRElSVFlfTUVNT1JZX0JMT0NLX1NJWkU7CiAgKiAgIHVuc2lnbmVkIGxvbmcgKmJsb2Nr ID0gYmxvY2tzLmJsb2Nrc1tpZHhdOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9leGVjL3RiLWxvb2t1 cC5oIGIvaW5jbHVkZS9leGVjL3RiLWxvb2t1cC5oCmluZGV4IDI2OTIxYjZkYWYuLjg1ZWFkZWQy MDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZXhlYy90Yi1sb29rdXAuaAorKysgYi9pbmNsdWRlL2V4 ZWMvdGItbG9va3VwLmgKQEAgLTI3LDcgKzI3LDcgQEAgdGJfbG9va3VwX19jcHVfc3RhdGUoQ1BV U3RhdGUgKmNwdSwgdGFyZ2V0X3Vsb25nICpwYywgdGFyZ2V0X3Vsb25nICpjc19iYXNlLAogCiAg ICAgY3B1X2dldF90Yl9jcHVfc3RhdGUoZW52LCBwYywgY3NfYmFzZSwgZmxhZ3MpOwogICAgIGhh c2ggPSB0Yl9qbXBfY2FjaGVfaGFzaF9mdW5jKCpwYyk7Ci0gICAgdGIgPSBhdG9taWNfcmN1X3Jl YWQoJmNwdS0+dGJfam1wX2NhY2hlW2hhc2hdKTsKKyAgICB0YiA9IHFlbXVfYXRvbWljX3JjdV9y ZWFkKCZjcHUtPnRiX2ptcF9jYWNoZVtoYXNoXSk7CiAKICAgICBjZl9tYXNrICY9IH5DRl9DTFVT VEVSX01BU0s7CiAgICAgY2ZfbWFzayB8PSBjcHUtPmNsdXN0ZXJfaW5kZXggPDwgQ0ZfQ0xVU1RF Ul9TSElGVDsKQEAgLTQ0LDcgKzQ0LDcgQEAgdGJfbG9va3VwX19jcHVfc3RhdGUoQ1BVU3RhdGUg KmNwdSwgdGFyZ2V0X3Vsb25nICpwYywgdGFyZ2V0X3Vsb25nICpjc19iYXNlLAogICAgIGlmICh0 YiA9PSBOVUxMKSB7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBhdG9taWNfc2V0 KCZjcHUtPnRiX2ptcF9jYWNoZVtoYXNoXSwgdGIpOworICAgIHFlbXVfYXRvbWljX3NldCgmY3B1 LT50Yl9qbXBfY2FjaGVbaGFzaF0sIHRiKTsKICAgICByZXR1cm4gdGI7CiB9CiAKZGlmZiAtLWdp dCBhL2luY2x1ZGUvaHcvY29yZS9jcHUuaCBiL2luY2x1ZGUvaHcvY29yZS9jcHUuaAppbmRleCA5 OWRjMzNmZmViLi4zMjMxY2FhODYwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2h3L2NvcmUvY3B1LmgK KysrIGIvaW5jbHVkZS9ody9jb3JlL2NwdS5oCkBAIC00ODIsNyArNDgyLDcgQEAgc3RhdGljIGlu bGluZSB2b2lkIGNwdV90Yl9qbXBfY2FjaGVfY2xlYXIoQ1BVU3RhdGUgKmNwdSkKICAgICB1bnNp Z25lZCBpbnQgaTsKIAogICAgIGZvciAoaSA9IDA7IGkgPCBUQl9KTVBfQ0FDSEVfU0laRTsgaSsr KSB7Ci0gICAgICAgIGF0b21pY19zZXQoJmNwdS0+dGJfam1wX2NhY2hlW2ldLCBOVUxMKTsKKyAg ICAgICAgcWVtdV9hdG9taWNfc2V0KCZjcHUtPnRiX2ptcF9jYWNoZVtpXSwgTlVMTCk7CiAgICAg fQogfQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3FlbXUvYXRvbWljMTI4LmggYi9pbmNsdWRlL3Fl bXUvYXRvbWljMTI4LmgKaW5kZXggNmIzNDQ4NGUxNS4uMWZiYjUxNGM1OSAxMDA2NDQKLS0tIGEv aW5jbHVkZS9xZW11L2F0b21pYzEyOC5oCisrKyBiL2luY2x1ZGUvcWVtdS9hdG9taWMxMjguaApA QCAtNDQsNyArNDQsNyBAQAogI2lmIGRlZmluZWQoQ09ORklHX0FUT01JQzEyOCkKIHN0YXRpYyBp bmxpbmUgSW50MTI4IGF0b21pYzE2X2NtcHhjaGcoSW50MTI4ICpwdHIsIEludDEyOCBjbXAsIElu dDEyOCBuZXcpCiB7Ci0gICAgcmV0dXJuIGF0b21pY19jbXB4Y2hnX19ub2NoZWNrKHB0ciwgY21w LCBuZXcpOworICAgIHJldHVybiBxZW11X2F0b21pY19jbXB4Y2hnX19ub2NoZWNrKHB0ciwgY21w LCBuZXcpOwogfQogIyBkZWZpbmUgSEFWRV9DTVBYQ0hHMTI4IDEKICNlbGlmIGRlZmluZWQoQ09O RklHX0NNUFhDSEcxMjgpCkBAIC04OSwxMiArODksMTIgQEAgSW50MTI4IFFFTVVfRVJST1IoInVu c3VwcG9ydGVkIGF0b21pYyIpCiAjaWYgZGVmaW5lZChDT05GSUdfQVRPTUlDMTI4KQogc3RhdGlj IGlubGluZSBJbnQxMjggYXRvbWljMTZfcmVhZChJbnQxMjggKnB0cikKIHsKLSAgICByZXR1cm4g YXRvbWljX3JlYWRfX25vY2hlY2socHRyKTsKKyAgICByZXR1cm4gcWVtdV9hdG9taWNfcmVhZF9f bm9jaGVjayhwdHIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXRvbWljMTZfc2V0KEludDEy OCAqcHRyLCBJbnQxMjggdmFsKQogewotICAgIGF0b21pY19zZXRfX25vY2hlY2socHRyLCB2YWwp OworICAgIHFlbXVfYXRvbWljX3NldF9fbm9jaGVjayhwdHIsIHZhbCk7CiB9CiAKICMgZGVmaW5l IEhBVkVfQVRPTUlDMTI4IDEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcWVtdS9iaXRvcHMuaCBiL2lu Y2x1ZGUvcWVtdS9iaXRvcHMuaAppbmRleCBmNTVjZThiMzIwLi5mNzQ2MDBkZTkwIDEwMDY0NAot LS0gYS9pbmNsdWRlL3FlbXUvYml0b3BzLmgKKysrIGIvaW5jbHVkZS9xZW11L2JpdG9wcy5oCkBA IC01MSw3ICs1MSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRfYml0X2F0b21pYyhsb25nIG5y LCB1bnNpZ25lZCBsb25nICphZGRyKQogICAgIHVuc2lnbmVkIGxvbmcgbWFzayA9IEJJVF9NQVNL KG5yKTsKICAgICB1bnNpZ25lZCBsb25nICpwID0gYWRkciArIEJJVF9XT1JEKG5yKTsKIAotICAg IGF0b21pY19vcihwLCBtYXNrKTsKKyAgICBxZW11X2F0b21pY19vcihwLCBtYXNrKTsKIH0KIAog LyoqCmRpZmYgLS1naXQgYS9pbmNsdWRlL3FlbXUvY29yb3V0aW5lLmggYi9pbmNsdWRlL3FlbXUv Y29yb3V0aW5lLmgKaW5kZXggZGZkMjYxYzViMS4uNGQ3MDIwZDE4OCAxMDA2NDQKLS0tIGEvaW5j bHVkZS9xZW11L2Nvcm91dGluZS5oCisrKyBiL2luY2x1ZGUvcWVtdS9jb3JvdXRpbmUuaApAQCAt MTc5LDcgKzE3OSw3IEBAIHN0YXRpYyBpbmxpbmUgY29yb3V0aW5lX2ZuIHZvaWQgcWVtdV9jb19t dXRleF9hc3NlcnRfbG9ja2VkKENvTXV0ZXggKm11dGV4KQogICAgICAqIGJlY2F1c2UgdGhlIGNv bmRpdGlvbiB3aWxsIGJlIGZhbHNlIG5vIG1hdHRlciB3aGV0aGVyIHdlIHJlYWQgTlVMTCBvcgog ICAgICAqIHRoZSBwb2ludGVyIGZvciBhbnkgb3RoZXIgY29yb3V0aW5lLgogICAgICAqLwotICAg IGFzc2VydChhdG9taWNfcmVhZCgmbXV0ZXgtPmxvY2tlZCkgJiYKKyAgICBhc3NlcnQocWVtdV9h dG9taWNfcmVhZCgmbXV0ZXgtPmxvY2tlZCkgJiYKICAgICAgICAgICAgbXV0ZXgtPmhvbGRlciA9 PSBxZW11X2Nvcm91dGluZV9zZWxmKCkpOwogfQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3FlbXUv bG9nLmggYi9pbmNsdWRlL3FlbXUvbG9nLmgKaW5kZXggZjQ3MjRmNzMzMC4uZTRkNDU0Y2NmYSAx MDA2NDQKLS0tIGEvaW5jbHVkZS9xZW11L2xvZy5oCisrKyBiL2luY2x1ZGUvcWVtdS9sb2cuaApA QCAtMzYsNyArMzYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcWVtdV9sb2dfc2VwYXJhdGUodm9p ZCkKICAgICBib29sIHJlcyA9IGZhbHNlOwogCiAgICAgcmN1X3JlYWRfbG9jaygpOwotICAgIGxv Z2ZpbGUgPSBhdG9taWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7CisgICAgbG9nZmlsZSA9IHFl bXVfYXRvbWljX3JjdV9yZWFkKCZxZW11X2xvZ2ZpbGUpOwogICAgIGlmIChsb2dmaWxlICYmIGxv Z2ZpbGUtPmZkICE9IHN0ZGVycikgewogICAgICAgICByZXMgPSB0cnVlOwogICAgIH0KQEAgLTc1 LDcgKzc1LDcgQEAgc3RhdGljIGlubGluZSBGSUxFICpxZW11X2xvZ19sb2NrKHZvaWQpCiB7CiAg ICAgUWVtdUxvZ0ZpbGUgKmxvZ2ZpbGU7CiAgICAgcmN1X3JlYWRfbG9jaygpOwotICAgIGxvZ2Zp bGUgPSBhdG9taWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7CisgICAgbG9nZmlsZSA9IHFlbXVf YXRvbWljX3JjdV9yZWFkKCZxZW11X2xvZ2ZpbGUpOwogICAgIGlmIChsb2dmaWxlKSB7CiAgICAg ICAgIHFlbXVfZmxvY2tmaWxlKGxvZ2ZpbGUtPmZkKTsKICAgICAgICAgcmV0dXJuIGxvZ2ZpbGUt PmZkOwpAQCAtMTAyLDcgKzEwMiw3IEBAIHFlbXVfbG9nX3ZwcmludGYoY29uc3QgY2hhciAqZm10 LCB2YV9saXN0IHZhKQogICAgIFFlbXVMb2dGaWxlICpsb2dmaWxlOwogCiAgICAgcmN1X3JlYWRf bG9jaygpOwotICAgIGxvZ2ZpbGUgPSBhdG9taWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7Cisg ICAgbG9nZmlsZSA9IHFlbXVfYXRvbWljX3JjdV9yZWFkKCZxZW11X2xvZ2ZpbGUpOwogICAgIGlm IChsb2dmaWxlKSB7CiAgICAgICAgIHZmcHJpbnRmKGxvZ2ZpbGUtPmZkLCBmbXQsIHZhKTsKICAg ICB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL3FlbXUvcXVldWUuaCBiL2luY2x1ZGUvcWVtdS9xdWV1 ZS5oCmluZGV4IDQ1NmE1YjAxZWUuLjcwN2FlMTAwNjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcWVt dS9xdWV1ZS5oCisrKyBiL2luY2x1ZGUvcWVtdS9xdWV1ZS5oCkBAIC0yMTgsMTIgKzIxOCwxMyBA QCBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCiAgICAgICAgIHR5cGVvZihlbG0pIHNhdmVfc2xlX25leHQ7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgZG8geyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAogICAgICAgICAgICAgc2F2ZV9zbGVfbmV4dCA9IChlbG0pLT5maWVsZC5zbGVfbmV4 dCA9IChoZWFkKS0+c2xoX2ZpcnN0OyAgICAgICBcCi0gICAgICAgIH0gd2hpbGUgKGF0b21pY19j bXB4Y2hnKCYoaGVhZCktPnNsaF9maXJzdCwgc2F2ZV9zbGVfbmV4dCwgKGVsbSkpICE9IFwKKyAg ICAgICAgfSB3aGlsZSAocWVtdV9hdG9taWNfY21weGNoZygmKGhlYWQpLT5zbGhfZmlyc3QsICAg ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNhdmVfc2xlX25leHQsIChlbG0pKSAhPSAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAg ICAgIHNhdmVfc2xlX25leHQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKIH0gd2hpbGUgKC8qQ09OU1RDT05EKi8wKQogCiAjZGVmaW5lIFFTTElTVF9NT1ZF X0FUT01JQyhkZXN0LCBzcmMpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot ICAgICAgICAoZGVzdCktPnNsaF9maXJzdCA9IGF0b21pY194Y2hnKCYoc3JjKS0+c2xoX2ZpcnN0 LCBOVUxMKTsgICAgICAgIFwKKyAgICAgICAgKGRlc3QpLT5zbGhfZmlyc3QgPSBxZW11X2F0b21p Y194Y2hnKCYoc3JjKS0+c2xoX2ZpcnN0LCBOVUxMKTsgICBcCiB9IHdoaWxlICgvKkNPTlNUQ09O RCovMCkKIAogI2RlZmluZSBRU0xJU1RfUkVNT1ZFX0hFQUQoaGVhZCwgZmllbGQpIGRvIHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTM3Niw3ICszNzcsOCBAQCBzdHJ1Y3QgeyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCiAvKgogICogU2ltcGxlIHF1ZXVlIGFjY2VzcyBtZXRob2RzLgogICovCi0jZGVmaW5l IFFTSU1QTEVRX0VNUFRZX0FUT01JQyhoZWFkKSAoYXRvbWljX3JlYWQoJigoaGVhZCktPnNxaF9m aXJzdCkpID09IE5VTEwpCisjZGVmaW5lIFFTSU1QTEVRX0VNUFRZX0FUT01JQyhoZWFkKSBcCisg ICAgKHFlbXVfYXRvbWljX3JlYWQoJigoaGVhZCktPnNxaF9maXJzdCkpID09IE5VTEwpCiAjZGVm aW5lIFFTSU1QTEVRX0VNUFRZKGhlYWQpICAgICAgICAoKGhlYWQpLT5zcWhfZmlyc3QgPT0gTlVM TCkKICNkZWZpbmUgUVNJTVBMRVFfRklSU1QoaGVhZCkgICAgICAgICgoaGVhZCktPnNxaF9maXJz dCkKICNkZWZpbmUgUVNJTVBMRVFfTkVYVChlbG0sIGZpZWxkKSAgICgoZWxtKS0+ZmllbGQuc3Fl X25leHQpCmRpZmYgLS1naXQgYS9pbmNsdWRlL3FlbXUvcmN1LmggYi9pbmNsdWRlL3FlbXUvcmN1 LmgKaW5kZXggMGUzNzVlYmUxMy4uOTZhMWJiOTAzOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9xZW11 L3JjdS5oCisrKyBiL2luY2x1ZGUvcWVtdS9yY3UuaApAQCAtNzksOCArNzksOCBAQCBzdGF0aWMg aW5saW5lIHZvaWQgcmN1X3JlYWRfbG9jayh2b2lkKQogICAgICAgICByZXR1cm47CiAgICAgfQog Ci0gICAgY3RyID0gYXRvbWljX3JlYWQoJnJjdV9ncF9jdHIpOwotICAgIGF0b21pY19zZXQoJnBf cmN1X3JlYWRlci0+Y3RyLCBjdHIpOworICAgIGN0ciA9IHFlbXVfYXRvbWljX3JlYWQoJnJjdV9n cF9jdHIpOworICAgIHFlbXVfYXRvbWljX3NldCgmcF9yY3VfcmVhZGVyLT5jdHIsIGN0cik7CiAK ICAgICAvKiBXcml0ZSBwX3JjdV9yZWFkZXItPmN0ciBiZWZvcmUgcmVhZGluZyBSQ1UtcHJvdGVj dGVkIHBvaW50ZXJzLiAgKi8KICAgICBzbXBfbWJfcGxhY2Vob2xkZXIoKTsKQEAgLTEwMCwxMiAr MTAwLDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCByY3VfcmVhZF91bmxvY2sodm9pZCkKICAgICAg KiBzbXBfbWJfcGxhY2Vob2xkZXIoKSwgdGhpcyBlbnN1cmVzIHdyaXRlcyB0byBwX3JjdV9yZWFk ZXItPmN0cgogICAgICAqIGFyZSBzZXF1ZW50aWFsbHkgY29uc2lzdGVudC4KICAgICAgKi8KLSAg ICBhdG9taWNfc3RvcmVfcmVsZWFzZSgmcF9yY3VfcmVhZGVyLT5jdHIsIDApOworICAgIHFlbXVf YXRvbWljX3N0b3JlX3JlbGVhc2UoJnBfcmN1X3JlYWRlci0+Y3RyLCAwKTsKIAogICAgIC8qIFdy aXRlIHBfcmN1X3JlYWRlci0+Y3RyIGJlZm9yZSByZWFkaW5nIHBfcmN1X3JlYWRlci0+d2FpdGlu Zy4gICovCiAgICAgc21wX21iX3BsYWNlaG9sZGVyKCk7Ci0gICAgaWYgKHVubGlrZWx5KGF0b21p Y19yZWFkKCZwX3JjdV9yZWFkZXItPndhaXRpbmcpKSkgewotICAgICAgICBhdG9taWNfc2V0KCZw X3JjdV9yZWFkZXItPndhaXRpbmcsIGZhbHNlKTsKKyAgICBpZiAodW5saWtlbHkocWVtdV9hdG9t aWNfcmVhZCgmcF9yY3VfcmVhZGVyLT53YWl0aW5nKSkpIHsKKyAgICAgICAgcWVtdV9hdG9taWNf c2V0KCZwX3JjdV9yZWFkZXItPndhaXRpbmcsIGZhbHNlKTsKICAgICAgICAgcWVtdV9ldmVudF9z ZXQoJnJjdV9ncF9ldmVudCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9xZW11L3Jj dV9xdWV1ZS5oIGIvaW5jbHVkZS9xZW11L3JjdV9xdWV1ZS5oCmluZGV4IDU1ODk2MWNjMjcuLjA1 YzkyNGNkZGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcWVtdS9yY3VfcXVldWUuaAorKysgYi9pbmNs dWRlL3FlbXUvcmN1X3F1ZXVlLmgKQEAgLTM2LDkgKzM2LDEwIEBAIGV4dGVybiAiQyIgewogLyoK ICAqIExpc3QgYWNjZXNzIG1ldGhvZHMuCiAgKi8KLSNkZWZpbmUgUUxJU1RfRU1QVFlfUkNVKGhl YWQpIChhdG9taWNfcmVhZCgmKGhlYWQpLT5saF9maXJzdCkgPT0gTlVMTCkKLSNkZWZpbmUgUUxJ U1RfRklSU1RfUkNVKGhlYWQpIChhdG9taWNfcmN1X3JlYWQoJihoZWFkKS0+bGhfZmlyc3QpKQot I2RlZmluZSBRTElTVF9ORVhUX1JDVShlbG0sIGZpZWxkKSAoYXRvbWljX3JjdV9yZWFkKCYoZWxt KS0+ZmllbGQubGVfbmV4dCkpCisjZGVmaW5lIFFMSVNUX0VNUFRZX1JDVShoZWFkKSAocWVtdV9h dG9taWNfcmVhZCgmKGhlYWQpLT5saF9maXJzdCkgPT0gTlVMTCkKKyNkZWZpbmUgUUxJU1RfRklS U1RfUkNVKGhlYWQpIChxZW11X2F0b21pY19yY3VfcmVhZCgmKGhlYWQpLT5saF9maXJzdCkpCisj ZGVmaW5lIFFMSVNUX05FWFRfUkNVKGVsbSwgZmllbGQpIFwKKyAgICAocWVtdV9hdG9taWNfcmN1 X3JlYWQoJihlbG0pLT5maWVsZC5sZV9uZXh0KSkKIAogLyoKICAqIExpc3QgZnVuY3Rpb25zLgpA QCAtNDYsMTMgKzQ3LDEzIEBAIGV4dGVybiAiQyIgewogCiAKIC8qCi0gKiAgVGhlIGRpZmZlcmVu Y2UgYmV0d2VlbiBhdG9taWNfcmVhZC9zZXQgYW5kIGF0b21pY19yY3VfcmVhZC9zZXQKKyAqICBU aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHFlbXVfYXRvbWljX3JlYWQvc2V0IGFuZCBxZW11X2F0b21p Y19yY3VfcmVhZC9zZXQKICAqICBpcyBpbiB0aGUgaW5jbHVkaW5nIG9mIGEgcmVhZC93cml0ZSBt ZW1vcnkgYmFycmllciB0byB0aGUgdm9sYXRpbGUKLSAqICBhY2Nlc3MuIGF0b21pY19yY3VfKiBt YWNyb3MgaW5jbHVkZSB0aGUgbWVtb3J5IGJhcnJpZXIsIHRoZQorICogIGFjY2Vzcy4gcWVtdV9h dG9taWNfcmN1XyogbWFjcm9zIGluY2x1ZGUgdGhlIG1lbW9yeSBiYXJyaWVyLCB0aGUKICAqICBw bGFpbiBhdG9taWMgbWFjcm9zIGRvIG5vdC4gVGhlcmVmb3JlLCBpdCBzaG91bGQgYmUgY29ycmVj dCB0bwogICogIGlzc3VlIGEgc2VyaWVzIG9mIHJlYWRzIG9yIHdyaXRlcyB0byB0aGUgc2FtZSBl bGVtZW50IHVzaW5nIG9ubHkKLSAqICB0aGUgYXRvbWljXyogbWFjcm8sIHVudGlsIHRoZSBsYXN0 IHJlYWQgb3Igd3JpdGUsIHdoaWNoIHNob3VsZCBiZQotICogIGF0b21pY19yY3VfKiB0byBpbnRy b2R1Y2UgYSByZWFkIG9yIHdyaXRlIG1lbW9yeSBiYXJyaWVyIGFzCisgKiAgdGhlIHFlbXVfYXRv bWljXyogbWFjcm8sIHVudGlsIHRoZSBsYXN0IHJlYWQgb3Igd3JpdGUsIHdoaWNoIHNob3VsZCBi ZQorICogIHFlbXVfYXRvbWljX3JjdV8qIHRvIGludHJvZHVjZSBhIHJlYWQgb3Igd3JpdGUgbWVt b3J5IGJhcnJpZXIgYXMKICAqICBhcHByb3ByaWF0ZS4KICAqLwogCkBAIC02Niw3ICs2Nyw3IEBA IGV4dGVybiAiQyIgewogI2RlZmluZSBRTElTVF9JTlNFUlRfQUZURVJfUkNVKGxpc3RlbG0sIGVs bSwgZmllbGQpIGRvIHsgICAgXAogICAgIChlbG0pLT5maWVsZC5sZV9uZXh0ID0gKGxpc3RlbG0p LT5maWVsZC5sZV9uZXh0OyAgICAgICAgXAogICAgIChlbG0pLT5maWVsZC5sZV9wcmV2ID0gJihs aXN0ZWxtKS0+ZmllbGQubGVfbmV4dDsgICAgICAgXAotICAgIGF0b21pY19yY3Vfc2V0KCYobGlz dGVsbSktPmZpZWxkLmxlX25leHQsIChlbG0pKTsgICAgICAgXAorICAgIHFlbXVfYXRvbWljX3Jj dV9zZXQoJihsaXN0ZWxtKS0+ZmllbGQubGVfbmV4dCwgKGVsbSkpOyAgICAgICBcCiAgICAgaWYg KChlbG0pLT5maWVsZC5sZV9uZXh0ICE9IE5VTEwpIHsgICAgICAgICAgICAgICAgICAgICBcCiAg ICAgICAgKGVsbSktPmZpZWxkLmxlX25leHQtPmZpZWxkLmxlX3ByZXYgPSAgICAgICAgICAgICAg ICBcCiAgICAgICAgICYoZWxtKS0+ZmllbGQubGVfbmV4dDsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCkBAIC04Miw3ICs4Myw3IEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBRTElTVF9J TlNFUlRfQkVGT1JFX1JDVShsaXN0ZWxtLCBlbG0sIGZpZWxkKSBkbyB7ICAgXAogICAgIChlbG0p LT5maWVsZC5sZV9wcmV2ID0gKGxpc3RlbG0pLT5maWVsZC5sZV9wcmV2OyAgICAgICAgXAogICAg IChlbG0pLT5maWVsZC5sZV9uZXh0ID0gKGxpc3RlbG0pOyAgICAgICAgICAgICAgICAgICAgICAg XAotICAgIGF0b21pY19yY3Vfc2V0KChsaXN0ZWxtKS0+ZmllbGQubGVfcHJldiwgKGVsbSkpOyAg ICAgICAgXAorICAgIHFlbXVfYXRvbWljX3JjdV9zZXQoKGxpc3RlbG0pLT5maWVsZC5sZV9wcmV2 LCAoZWxtKSk7ICAgICAgICBcCiAgICAgKGxpc3RlbG0pLT5maWVsZC5sZV9wcmV2ID0gJihlbG0p LT5maWVsZC5sZV9uZXh0OyAgICAgICBcCiB9IHdoaWxlICgvKkNPTlNUQ09ORCovMCkKIApAQCAt OTUsNyArOTYsNyBAQCBleHRlcm4gIkMiIHsKICNkZWZpbmUgUUxJU1RfSU5TRVJUX0hFQURfUkNV KGhlYWQsIGVsbSwgZmllbGQpIGRvIHsgICAgXAogICAgIChlbG0pLT5maWVsZC5sZV9wcmV2ID0g JihoZWFkKS0+bGhfZmlyc3Q7ICAgICAgICAgICBcCiAgICAgKGVsbSktPmZpZWxkLmxlX25leHQg PSAoaGVhZCktPmxoX2ZpcnN0OyAgICAgICAgICAgIFwKLSAgICBhdG9taWNfcmN1X3NldCgoJiho ZWFkKS0+bGhfZmlyc3QpLCAoZWxtKSk7ICAgICAgICAgXAorICAgIHFlbXVfYXRvbWljX3JjdV9z ZXQoKCYoaGVhZCktPmxoX2ZpcnN0KSwgKGVsbSkpOyAgICAgICAgIFwKICAgICBpZiAoKGVsbSkt PmZpZWxkLmxlX25leHQgIT0gTlVMTCkgeyAgICAgICAgICAgICAgICAgXAogICAgICAgIChlbG0p LT5maWVsZC5sZV9uZXh0LT5maWVsZC5sZV9wcmV2ID0gICAgICAgICAgICBcCiAgICAgICAgICYo ZWxtKS0+ZmllbGQubGVfbmV4dDsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTExMiwy MCArMTEzLDIwIEBAIGV4dGVybiAiQyIgewogICAgICAgIChlbG0pLT5maWVsZC5sZV9uZXh0LT5m aWVsZC5sZV9wcmV2ID0gICAgICAgIFwKICAgICAgICAgKGVsbSktPmZpZWxkLmxlX3ByZXY7ICAg ICAgICAgICAgICAgICAgICAgICBcCiAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAotICAgIGF0b21pY19zZXQoKGVsbSktPmZpZWxkLmxlX3ByZXYs IChlbG0pLT5maWVsZC5sZV9uZXh0KTsgXAorICAgIHFlbXVfYXRvbWljX3NldCgoZWxtKS0+Zmll bGQubGVfcHJldiwgKGVsbSktPmZpZWxkLmxlX25leHQpOyBcCiB9IHdoaWxlICgvKkNPTlNUQ09O RCovMCkKIAogLyogTGlzdCB0cmF2ZXJzYWwgbXVzdCBvY2N1ciB3aXRoaW4gYW4gUkNVIGNyaXRp Y2FsIHNlY3Rpb24uICAqLwogI2RlZmluZSBRTElTVF9GT1JFQUNIX1JDVSh2YXIsIGhlYWQsIGZp ZWxkKSAgICAgICAgICAgICAgICAgXAotICAgICAgICBmb3IgKCh2YXIpID0gYXRvbWljX3JjdV9y ZWFkKCYoaGVhZCktPmxoX2ZpcnN0KTsgICAgXAorICAgICAgICBmb3IgKCh2YXIpID0gcWVtdV9h dG9taWNfcmN1X3JlYWQoJihoZWFkKS0+bGhfZmlyc3QpOyAgICBcCiAgICAgICAgICAgICAgICAg KHZhcik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAg ICAgICAgKHZhcikgPSBhdG9taWNfcmN1X3JlYWQoJih2YXIpLT5maWVsZC5sZV9uZXh0KSkKKyAg ICAgICAgICAgICAgICAodmFyKSA9IHFlbXVfYXRvbWljX3JjdV9yZWFkKCYodmFyKS0+ZmllbGQu bGVfbmV4dCkpCiAKIC8qIExpc3QgdHJhdmVyc2FsIG11c3Qgb2NjdXIgd2l0aGluIGFuIFJDVSBj cml0aWNhbCBzZWN0aW9uLiAgKi8KICNkZWZpbmUgUUxJU1RfRk9SRUFDSF9TQUZFX1JDVSh2YXIs IGhlYWQsIGZpZWxkLCBuZXh0X3ZhcikgICAgICAgICAgIFwKLSAgICBmb3IgKCh2YXIpID0gKGF0 b21pY19yY3VfcmVhZCgmKGhlYWQpLT5saF9maXJzdCkpOyAgICAgICAgICAgICAgIFwKKyAgICBm b3IgKCh2YXIpID0gKHFlbXVfYXRvbWljX3JjdV9yZWFkKCYoaGVhZCktPmxoX2ZpcnN0KSk7ICAg ICAgICAgICAgICAgXAogICAgICAgKHZhcikgJiYgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICgobmV4dF92YXIpID0gYXRv bWljX3JjdV9yZWFkKCYodmFyKS0+ZmllbGQubGVfbmV4dCksIDEpOyAgXAorICAgICAgICAgICgo bmV4dF92YXIpID0gcWVtdV9hdG9taWNfcmN1X3JlYWQoJih2YXIpLT5maWVsZC5sZV9uZXh0KSwg MSk7ICBcCiAgICAgICAgICAgICh2YXIpID0gKG5leHRfdmFyKSkKIAogLyoKQEAgLTEzMyw5ICsx MzQsMTEgQEAgZXh0ZXJuICJDIiB7CiAgKi8KIAogLyogU2ltcGxlIHF1ZXVlIGFjY2VzcyBtZXRo b2RzICovCi0jZGVmaW5lIFFTSU1QTEVRX0VNUFRZX1JDVShoZWFkKSAgICAgIChhdG9taWNfcmVh ZCgmKGhlYWQpLT5zcWhfZmlyc3QpID09IE5VTEwpCi0jZGVmaW5lIFFTSU1QTEVRX0ZJUlNUX1JD VShoZWFkKSAgICAgICBhdG9taWNfcmN1X3JlYWQoJihoZWFkKS0+c3FoX2ZpcnN0KQotI2RlZmlu ZSBRU0lNUExFUV9ORVhUX1JDVShlbG0sIGZpZWxkKSAgYXRvbWljX3JjdV9yZWFkKCYoZWxtKS0+ ZmllbGQuc3FlX25leHQpCisjZGVmaW5lIFFTSU1QTEVRX0VNUFRZX1JDVShoZWFkKSBcCisgICAg KHFlbXVfYXRvbWljX3JlYWQoJihoZWFkKS0+c3FoX2ZpcnN0KSA9PSBOVUxMKQorI2RlZmluZSBR U0lNUExFUV9GSVJTVF9SQ1UoaGVhZCkgcWVtdV9hdG9taWNfcmN1X3JlYWQoJihoZWFkKS0+c3Fo X2ZpcnN0KQorI2RlZmluZSBRU0lNUExFUV9ORVhUX1JDVShlbG0sIGZpZWxkKSBcCisgICAgcWVt dV9hdG9taWNfcmN1X3JlYWQoJihlbG0pLT5maWVsZC5zcWVfbmV4dCkKIAogLyogU2ltcGxlIHF1 ZXVlIGZ1bmN0aW9ucyAqLwogI2RlZmluZSBRU0lNUExFUV9JTlNFUlRfSEVBRF9SQ1UoaGVhZCwg ZWxtLCBmaWVsZCkgZG8geyAgICAgICAgIFwKQEAgLTE0MywxMiArMTQ2LDEyIEBAIGV4dGVybiAi QyIgewogICAgIGlmICgoZWxtKS0+ZmllbGQuc3FlX25leHQgPT0gTlVMTCkgeyAgICAgICAgICAg ICAgICAgICAgICAgIFwKICAgICAgICAgKGhlYWQpLT5zcWhfbGFzdCA9ICYoZWxtKS0+ZmllbGQu c3FlX25leHQ7ICAgICAgICAgICAgICBcCiAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGF0b21pY19yY3Vfc2V0KCYo aGVhZCktPnNxaF9maXJzdCwgKGVsbSkpOyAgICAgICAgICAgICAgICAgIFwKKyAgICBxZW11X2F0 b21pY19yY3Vfc2V0KCYoaGVhZCktPnNxaF9maXJzdCwgKGVsbSkpOyAgICAgICAgICAgICAgICAg IFwKIH0gd2hpbGUgKC8qQ09OU1RDT05EKi8wKQogCiAjZGVmaW5lIFFTSU1QTEVRX0lOU0VSVF9U QUlMX1JDVShoZWFkLCBlbG0sIGZpZWxkKSBkbyB7ICAgIFwKICAgICAoZWxtKS0+ZmllbGQuc3Fl X25leHQgPSBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGF0b21pY19yY3Vf c2V0KChoZWFkKS0+c3FoX2xhc3QsIChlbG0pKTsgICAgICAgICAgICAgICBcCisgICAgcWVtdV9h dG9taWNfcmN1X3NldCgoaGVhZCktPnNxaF9sYXN0LCAoZWxtKSk7ICAgICAgICAgICAgICAgXAog ICAgIChoZWFkKS0+c3FoX2xhc3QgPSAmKGVsbSktPmZpZWxkLnNxZV9uZXh0OyAgICAgICAgICAg ICBcCiB9IHdoaWxlICgvKkNPTlNUQ09ORCovMCkKIApAQCAtMTU3LDExICsxNjAsMTEgQEAgZXh0 ZXJuICJDIiB7CiAgICAgaWYgKChlbG0pLT5maWVsZC5zcWVfbmV4dCA9PSBOVUxMKSB7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIChoZWFkKS0+c3FoX2xhc3QgPSAm KGVsbSktPmZpZWxkLnNxZV9uZXh0OyAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCi0gICAgYXRvbWljX3JjdV9zZXQoJihsaXN0ZWxtKS0+ZmllbGQuc3FlX25leHQsIChl bG0pKTsgICAgICAgICAgICAgICAgICBcCisgICAgcWVtdV9hdG9taWNfcmN1X3NldCgmKGxpc3Rl bG0pLT5maWVsZC5zcWVfbmV4dCwgKGVsbSkpOyAgICAgICAgICAgICAgICAgIFwKIH0gd2hpbGUg KC8qQ09OU1RDT05EKi8wKQogCiAjZGVmaW5lIFFTSU1QTEVRX1JFTU9WRV9IRUFEX1JDVShoZWFk LCBmaWVsZCkgZG8geyAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBhdG9taWNfc2V0KCYoaGVh ZCktPnNxaF9maXJzdCwgKGhlYWQpLT5zcWhfZmlyc3QtPmZpZWxkLnNxZV9uZXh0KTsgXAorICAg IHFlbXVfYXRvbWljX3NldCgmKGhlYWQpLT5zcWhfZmlyc3QsIChoZWFkKS0+c3FoX2ZpcnN0LT5m aWVsZC5zcWVfbmV4dCk7IFwKICAgICBpZiAoKGhlYWQpLT5zcWhfZmlyc3QgPT0gTlVMTCkgeyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAoaGVhZCktPnNxaF9s YXN0ID0gJihoZWFkKS0+c3FoX2ZpcnN0OyAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAg fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKQEAgLTE3NSw3ICsxNzgsNyBAQCBleHRlcm4gIkMiIHsKICAgICAgICAgd2hp bGUgKGN1cnItPmZpZWxkLnNxZV9uZXh0ICE9IChlbG0pKSB7ICAgICAgICAgICAgICAgICAgICAg XAogICAgICAgICAgICAgY3VyciA9IGN1cnItPmZpZWxkLnNxZV9uZXh0OyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCiAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgYXRvbWljX3NldCgmY3Vyci0+ ZmllbGQuc3FlX25leHQsICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBxZW11 X2F0b21pY19zZXQoJmN1cnItPmZpZWxkLnNxZV9uZXh0LCAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKICAgICAgICAgICAgICAgICAgICBjdXJyLT5maWVsZC5zcWVfbmV4dC0+ZmllbGQuc3Fl X25leHQpOyAgICAgICAgICAgXAogICAgICAgICBpZiAoY3Vyci0+ZmllbGQuc3FlX25leHQgPT0g TlVMTCkgeyAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAoaGVhZCktPnNx aF9sYXN0ID0gJihjdXJyKS0+ZmllbGQuc3FlX25leHQ7ICAgICAgICAgICAgIFwKQEAgLTE4NCwx MyArMTg3LDEzIEBAIGV4dGVybiAiQyIgewogfSB3aGlsZSAoLypDT05TVENPTkQqLzApCiAKICNk ZWZpbmUgUVNJTVBMRVFfRk9SRUFDSF9SQ1UodmFyLCBoZWFkLCBmaWVsZCkgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKLSAgICBmb3IgKCh2YXIpID0gYXRvbWljX3JjdV9yZWFkKCYoaGVhZCkt PnNxaF9maXJzdCk7ICAgICAgICAgICAgICAgICAgIFwKKyAgICBmb3IgKCh2YXIpID0gcWVtdV9h dG9taWNfcmN1X3JlYWQoJihoZWFkKS0+c3FoX2ZpcnN0KTsgICAgICAgICAgICAgICAgICAgXAog ICAgICAgICAgKHZhcik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAotICAgICAgICAgKHZhcikgPSBhdG9taWNfcmN1X3JlYWQoJih2YXIp LT5maWVsZC5zcWVfbmV4dCkpCisgICAgICAgICAodmFyKSA9IHFlbXVfYXRvbWljX3JjdV9yZWFk KCYodmFyKS0+ZmllbGQuc3FlX25leHQpKQogCiAjZGVmaW5lIFFTSU1QTEVRX0ZPUkVBQ0hfU0FG RV9SQ1UodmFyLCBoZWFkLCBmaWVsZCwgbmV4dCkgICAgICAgICAgICAgICAgXAotICAgIGZvciAo KHZhcikgPSBhdG9taWNfcmN1X3JlYWQoJihoZWFkKS0+c3FoX2ZpcnN0KTsgICAgICAgICAgICAg ICAgICAgIFwKLSAgICAgICAgICh2YXIpICYmICgobmV4dCkgPSBhdG9taWNfcmN1X3JlYWQoJih2 YXIpLT5maWVsZC5zcWVfbmV4dCksIDEpOyBcCisgICAgZm9yICgodmFyKSA9IHFlbXVfYXRvbWlj X3JjdV9yZWFkKCYoaGVhZCktPnNxaF9maXJzdCk7ICAgICAgICAgICAgICAgICAgICBcCisgICAg ICAgICAodmFyKSAmJiAoKG5leHQpID0gcWVtdV9hdG9taWNfcmN1X3JlYWQoJih2YXIpLT5maWVs ZC5zcWVfbmV4dCksIDEpOyBcCiAgICAgICAgICAodmFyKSA9IChuZXh0KSkKIAogLyoKQEAgLTE5 OCw5ICsyMDEsMTEgQEAgZXh0ZXJuICJDIiB7CiAgKi8KIAogLyogVGFpbCBxdWV1ZSBhY2Nlc3Mg bWV0aG9kcyAqLwotI2RlZmluZSBRVEFJTFFfRU1QVFlfUkNVKGhlYWQpICAgICAgKGF0b21pY19y ZWFkKCYoaGVhZCktPnRxaF9maXJzdCkgPT0gTlVMTCkKLSNkZWZpbmUgUVRBSUxRX0ZJUlNUX1JD VShoZWFkKSAgICAgICBhdG9taWNfcmN1X3JlYWQoJihoZWFkKS0+dHFoX2ZpcnN0KQotI2RlZmlu ZSBRVEFJTFFfTkVYVF9SQ1UoZWxtLCBmaWVsZCkgIGF0b21pY19yY3VfcmVhZCgmKGVsbSktPmZp ZWxkLnRxZV9uZXh0KQorI2RlZmluZSBRVEFJTFFfRU1QVFlfUkNVKGhlYWQpIFwKKyAgICAocWVt dV9hdG9taWNfcmVhZCgmKGhlYWQpLT50cWhfZmlyc3QpID09IE5VTEwpCisjZGVmaW5lIFFUQUlM UV9GSVJTVF9SQ1UoaGVhZCkgcWVtdV9hdG9taWNfcmN1X3JlYWQoJihoZWFkKS0+dHFoX2ZpcnN0 KQorI2RlZmluZSBRVEFJTFFfTkVYVF9SQ1UoZWxtLCBmaWVsZCkgXAorICAgIHFlbXVfYXRvbWlj X3JjdV9yZWFkKCYoZWxtKS0+ZmllbGQudHFlX25leHQpCiAKIC8qIFRhaWwgcXVldWUgZnVuY3Rp b25zICovCiAjZGVmaW5lIFFUQUlMUV9JTlNFUlRfSEVBRF9SQ1UoaGVhZCwgZWxtLCBmaWVsZCkg ZG8geyAgICAgICAgICAgICAgICAgICBcCkBAIC0yMTEsMTQgKzIxNiwxNCBAQCBleHRlcm4gIkMi IHsKICAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgKGhlYWQpLT50cWhfY2lyYy50cWxfcHJldiA9 ICYoZWxtKS0+ZmllbGQudHFlX2NpcmM7ICAgICAgICAgICAgIFwKICAgICB9ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK LSAgICBhdG9taWNfcmN1X3NldCgmKGhlYWQpLT50cWhfZmlyc3QsIChlbG0pKTsgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgICBxZW11X2F0b21pY19yY3Vfc2V0KCYoaGVhZCktPnRxaF9m aXJzdCwgKGVsbSkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIChlbG0pLT5maWVs ZC50cWVfY2lyYy50cWxfcHJldiA9ICYoaGVhZCktPnRxaF9jaXJjOyAgICAgICAgICAgICAgICAg XAogfSB3aGlsZSAoLypDT05TVENPTkQqLzApCiAKICNkZWZpbmUgUVRBSUxRX0lOU0VSVF9UQUlM X1JDVShoZWFkLCBlbG0sIGZpZWxkKSBkbyB7ICAgICAgICAgICAgICAgICAgIFwKICAgICAoZWxt KS0+ZmllbGQudHFlX25leHQgPSBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKICAgICAoZWxtKS0+ZmllbGQudHFlX2NpcmMudHFsX3ByZXYgPSAoaGVhZCktPnRx aF9jaXJjLnRxbF9wcmV2OyAgICAgICAgIFwKLSAgICBhdG9taWNfcmN1X3NldCgmKGhlYWQpLT50 cWhfY2lyYy50cWxfcHJldi0+dHFsX25leHQsIChlbG0pKTsgICAgICAgIFwKKyAgICBxZW11X2F0 b21pY19yY3Vfc2V0KCYoaGVhZCktPnRxaF9jaXJjLnRxbF9wcmV2LT50cWxfbmV4dCwgKGVsbSkp OyAgICAgICAgXAogICAgIChoZWFkKS0+dHFoX2NpcmMudHFsX3ByZXYgPSAmKGVsbSktPmZpZWxk LnRxZV9jaXJjOyAgICAgICAgICAgICAgICAgXAogfSB3aGlsZSAoLypDT05TVENPTkQqLzApCiAK QEAgLTIzMCwxNCArMjM1LDE1IEBAIGV4dGVybiAiQyIgewogICAgIH0gZWxzZSB7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg ICAgICAoaGVhZCktPnRxaF9jaXJjLnRxbF9wcmV2ID0gJihlbG0pLT5maWVsZC50cWVfY2lyYzsg ICAgICAgICAgICAgXAogICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGF0b21pY19yY3Vfc2V0KCYobGlz dGVsbSktPmZpZWxkLnRxZV9uZXh0LCAoZWxtKSk7ICAgICAgICAgICAgICAgICAgXAorICAgIHFl bXVfYXRvbWljX3JjdV9zZXQoJihsaXN0ZWxtKS0+ZmllbGQudHFlX25leHQsIChlbG0pKTsgICAg ICAgICAgICAgICAgICBcCiAgICAgKGVsbSktPmZpZWxkLnRxZV9jaXJjLnRxbF9wcmV2ID0gJihs aXN0ZWxtKS0+ZmllbGQudHFlX2NpcmM7ICAgICAgICBcCiB9IHdoaWxlICgvKkNPTlNUQ09ORCov MCkKIAogI2RlZmluZSBRVEFJTFFfSU5TRVJUX0JFRk9SRV9SQ1UobGlzdGVsbSwgZWxtLCBmaWVs ZCkgZG8geyAgICAgICAgICAgICAgICBcCiAgICAgKGVsbSktPmZpZWxkLnRxZV9jaXJjLnRxbF9w cmV2ID0gKGxpc3RlbG0pLT5maWVsZC50cWVfY2lyYy50cWxfcHJldjsgIFwKICAgICAoZWxtKS0+ ZmllbGQudHFlX25leHQgPSAobGlzdGVsbSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAotICAgIGF0b21pY19yY3Vfc2V0KCYobGlzdGVsbSktPmZpZWxkLnRxZV9jaXJjLnRx bF9wcmV2LT50cWxfbmV4dCwgKGVsbSkpOyBcCisgICAgcWVtdV9hdG9taWNfcmN1X3NldCgmKGxp c3RlbG0pLT5maWVsZC50cWVfY2lyYy50cWxfcHJldi0+dHFsX25leHQsICAgIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgIChlbG0pKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAogICAgIChsaXN0ZWxtKS0+ZmllbGQudHFlX2NpcmMudHFsX3ByZXYgPSAmKGVs bSktPmZpZWxkLnRxZV9jaXJjOyAgICAgICAgICBcCiB9IHdoaWxlICgvKkNPTlNUQ09ORCovMCkK IApAQCAtMjQ4LDE4ICsyNTQsMTkgQEAgZXh0ZXJuICJDIiB7CiAgICAgfSBlbHNlIHsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg ICAgICAgIChoZWFkKS0+dHFoX2NpcmMudHFsX3ByZXYgPSAoZWxtKS0+ZmllbGQudHFlX2NpcmMu dHFsX3ByZXY7ICAgICBcCiAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgYXRvbWljX3NldCgmKGVsbSkt PmZpZWxkLnRxZV9jaXJjLnRxbF9wcmV2LT50cWxfbmV4dCwgKGVsbSktPmZpZWxkLnRxZV9uZXh0 KTsgXAorICAgIHFlbXVfYXRvbWljX3NldCgmKGVsbSktPmZpZWxkLnRxZV9jaXJjLnRxbF9wcmV2 LT50cWxfbmV4dCwgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAoZWxtKS0+ZmllbGQu dHFlX25leHQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIChlbG0pLT5maWVs ZC50cWVfY2lyYy50cWxfcHJldiA9IE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAogfSB3aGlsZSAoLypDT05TVENPTkQqLzApCiAKICNkZWZpbmUgUVRBSUxRX0ZPUkVBQ0hfUkNV KHZhciwgaGVhZCwgZmllbGQpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBmb3Ig KCh2YXIpID0gYXRvbWljX3JjdV9yZWFkKCYoaGVhZCktPnRxaF9maXJzdCk7ICAgICAgICAgICAg ICAgICAgIFwKKyAgICBmb3IgKCh2YXIpID0gcWVtdV9hdG9taWNfcmN1X3JlYWQoJihoZWFkKS0+ dHFoX2ZpcnN0KTsgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgKHZhcik7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAg ICAgKHZhcikgPSBhdG9taWNfcmN1X3JlYWQoJih2YXIpLT5maWVsZC50cWVfbmV4dCkpCisgICAg ICAgICAodmFyKSA9IHFlbXVfYXRvbWljX3JjdV9yZWFkKCYodmFyKS0+ZmllbGQudHFlX25leHQp KQogCiAjZGVmaW5lIFFUQUlMUV9GT1JFQUNIX1NBRkVfUkNVKHZhciwgaGVhZCwgZmllbGQsIG5l eHQpICAgICAgICAgICAgICAgICAgXAotICAgIGZvciAoKHZhcikgPSBhdG9taWNfcmN1X3JlYWQo JihoZWFkKS0+dHFoX2ZpcnN0KTsgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICh2YXIp ICYmICgobmV4dCkgPSBhdG9taWNfcmN1X3JlYWQoJih2YXIpLT5maWVsZC50cWVfbmV4dCksIDEp OyBcCisgICAgZm9yICgodmFyKSA9IHFlbXVfYXRvbWljX3JjdV9yZWFkKCYoaGVhZCktPnRxaF9m aXJzdCk7ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAodmFyKSAmJiAoKG5leHQpID0g cWVtdV9hdG9taWNfcmN1X3JlYWQoJih2YXIpLT5maWVsZC50cWVfbmV4dCksIDEpOyBcCiAgICAg ICAgICAodmFyKSA9IChuZXh0KSkKIAogLyoKQEAgLTI2NywyMyArMjc0LDI1IEBAIGV4dGVybiAi QyIgewogICovCiAKIC8qIFNpbmdseS1saW5rZWQgbGlzdCBhY2Nlc3MgbWV0aG9kcyAqLwotI2Rl ZmluZSBRU0xJU1RfRU1QVFlfUkNVKGhlYWQpICAgICAgKGF0b21pY19yZWFkKCYoaGVhZCktPnNs aF9maXJzdCkgPT0gTlVMTCkKLSNkZWZpbmUgUVNMSVNUX0ZJUlNUX1JDVShoZWFkKSAgICAgICBh dG9taWNfcmN1X3JlYWQoJihoZWFkKS0+c2xoX2ZpcnN0KQotI2RlZmluZSBRU0xJU1RfTkVYVF9S Q1UoZWxtLCBmaWVsZCkgIGF0b21pY19yY3VfcmVhZCgmKGVsbSktPmZpZWxkLnNsZV9uZXh0KQor I2RlZmluZSBRU0xJU1RfRU1QVFlfUkNVKGhlYWQpIFwKKyAgICAocWVtdV9hdG9taWNfcmVhZCgm KGhlYWQpLT5zbGhfZmlyc3QpID09IE5VTEwpCisjZGVmaW5lIFFTTElTVF9GSVJTVF9SQ1UoaGVh ZCkgcWVtdV9hdG9taWNfcmN1X3JlYWQoJihoZWFkKS0+c2xoX2ZpcnN0KQorI2RlZmluZSBRU0xJ U1RfTkVYVF9SQ1UoZWxtLCBmaWVsZCkgXAorICAgIHFlbXVfYXRvbWljX3JjdV9yZWFkKCYoZWxt KS0+ZmllbGQuc2xlX25leHQpCiAKIC8qIFNpbmdseS1saW5rZWQgbGlzdCBmdW5jdGlvbnMgKi8K ICNkZWZpbmUgUVNMSVNUX0lOU0VSVF9IRUFEX1JDVShoZWFkLCBlbG0sIGZpZWxkKSBkbyB7ICAg ICAgICAgICBcCiAgICAgKGVsbSktPmZpZWxkLnNsZV9uZXh0ID0gKGhlYWQpLT5zbGhfZmlyc3Q7 ICAgICAgICAgICAgICAgICAgXAotICAgIGF0b21pY19yY3Vfc2V0KCYoaGVhZCktPnNsaF9maXJz dCwgKGVsbSkpOyAgICAgICAgICAgICAgICAgIFwKKyAgICBxZW11X2F0b21pY19yY3Vfc2V0KCYo aGVhZCktPnNsaF9maXJzdCwgKGVsbSkpOyAgICAgICAgICAgICAgICAgIFwKIH0gd2hpbGUgKC8q Q09OU1RDT05EKi8wKQogCiAjZGVmaW5lIFFTTElTVF9JTlNFUlRfQUZURVJfUkNVKGhlYWQsIGxp c3RlbG0sIGVsbSwgZmllbGQpIGRvIHsgICAgICAgICBcCiAgICAgKGVsbSktPmZpZWxkLnNsZV9u ZXh0ID0gKGxpc3RlbG0pLT5maWVsZC5zbGVfbmV4dDsgICAgICAgICAgICAgICAgICBcCi0gICAg YXRvbWljX3JjdV9zZXQoJihsaXN0ZWxtKS0+ZmllbGQuc2xlX25leHQsIChlbG0pKTsgICAgICAg ICAgICAgICAgICBcCisgICAgcWVtdV9hdG9taWNfcmN1X3NldCgmKGxpc3RlbG0pLT5maWVsZC5z bGVfbmV4dCwgKGVsbSkpOyAgICAgICAgICAgICAgICAgIFwKIH0gd2hpbGUgKC8qQ09OU1RDT05E Ki8wKQogCiAjZGVmaW5lIFFTTElTVF9SRU1PVkVfSEVBRF9SQ1UoaGVhZCwgZmllbGQpIGRvIHsg ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBhdG9taWNfc2V0KCYoaGVhZCktPnNsaF9maXJz dCwgKGhlYWQpLT5zbGhfZmlyc3QtPmZpZWxkLnNsZV9uZXh0KTsgXAorICAgIHFlbXVfYXRvbWlj X3NldCgmKGhlYWQpLT5zbGhfZmlyc3QsIChoZWFkKS0+c2xoX2ZpcnN0LT5maWVsZC5zbGVfbmV4 dCk7IFwKIH0gd2hpbGUgKC8qQ09OU1RDT05EKi8wKQogCiAjZGVmaW5lIFFTTElTVF9SRU1PVkVf UkNVKGhlYWQsIGVsbSwgdHlwZSwgZmllbGQpIGRvIHsgICAgICAgICAgICAgIFwKQEAgLTI5NCwx OSArMzAzLDE5IEBAIGV4dGVybiAiQyIgewogICAgICAgICB3aGlsZSAoY3Vyci0+ZmllbGQuc2xl X25leHQgIT0gKGVsbSkpIHsgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICBjdXJy ID0gY3Vyci0+ZmllbGQuc2xlX25leHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg ICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAotICAgICAgICBhdG9taWNfc2V0KCZjdXJyLT5maWVsZC5zbGVfbmV4dCwgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHFlbXVfYXRvbWljX3NldCgmY3Vyci0+ ZmllbGQuc2xlX25leHQsICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAg ICAgICAgIGN1cnItPmZpZWxkLnNsZV9uZXh0LT5maWVsZC5zbGVfbmV4dCk7ICAgICAgICAgICBc CiAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKIH0gd2hpbGUgKC8qQ09OU1RDT05EKi8wKQogCiAjZGVmaW5lIFFTTElT VF9GT1JFQUNIX1JDVSh2YXIsIGhlYWQsIGZpZWxkKSAgICAgICAgICAgICAgICAgICAgICAgICAg XAotICAgIGZvciAoKHZhcikgPSBhdG9taWNfcmN1X3JlYWQoJihoZWFkKS0+c2xoX2ZpcnN0KTsg ICAgICAgICAgICAgICAgICAgXAorICAgIGZvciAoKHZhcikgPSBxZW11X2F0b21pY19yY3VfcmVh ZCgmKGhlYWQpLT5zbGhfZmlyc3QpOyAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAodmFy KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCi0gICAgICAgICAodmFyKSA9IGF0b21pY19yY3VfcmVhZCgmKHZhciktPmZpZWxkLnNsZV9u ZXh0KSkKKyAgICAgICAgICh2YXIpID0gcWVtdV9hdG9taWNfcmN1X3JlYWQoJih2YXIpLT5maWVs ZC5zbGVfbmV4dCkpCiAKICNkZWZpbmUgUVNMSVNUX0ZPUkVBQ0hfU0FGRV9SQ1UodmFyLCBoZWFk LCBmaWVsZCwgbmV4dCkgICAgICAgICAgICAgICAgXAotICAgIGZvciAoKHZhcikgPSBhdG9taWNf cmN1X3JlYWQoJihoZWFkKS0+c2xoX2ZpcnN0KTsgICAgICAgICAgICAgICAgICAgIFwKLSAgICAg ICAgICh2YXIpICYmICgobmV4dCkgPSBhdG9taWNfcmN1X3JlYWQoJih2YXIpLT5maWVsZC5zbGVf bmV4dCksIDEpOyBcCisgICAgZm9yICgodmFyKSA9IHFlbXVfYXRvbWljX3JjdV9yZWFkKCYoaGVh ZCktPnNsaF9maXJzdCk7ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAodmFyKSAmJiAo KG5leHQpID0gcWVtdV9hdG9taWNfcmN1X3JlYWQoJih2YXIpLT5maWVsZC5zbGVfbmV4dCksIDEp OyBcCiAgICAgICAgICAodmFyKSA9IChuZXh0KSkKIAogI2lmZGVmIF9fY3BsdXNwbHVzCmRpZmYg LS1naXQgYS9pbmNsdWRlL3FlbXUvc2VxbG9jay5oIGIvaW5jbHVkZS9xZW11L3NlcWxvY2suaApp bmRleCA4YjZiNGVlNGJiLi5iMjgyYWVmMDc4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3FlbXUvc2Vx bG9jay5oCisrKyBiL2luY2x1ZGUvcWVtdS9zZXFsb2NrLmgKQEAgLTMyLDcgKzMyLDcgQEAgc3Rh dGljIGlubGluZSB2b2lkIHNlcWxvY2tfaW5pdChRZW11U2VxTG9jayAqc2wpCiAvKiBMb2NrIG91 dCBvdGhlciB3cml0ZXJzIGFuZCB1cGRhdGUgdGhlIGNvdW50LiAgKi8KIHN0YXRpYyBpbmxpbmUg dm9pZCBzZXFsb2NrX3dyaXRlX2JlZ2luKFFlbXVTZXFMb2NrICpzbCkKIHsKLSAgICBhdG9taWNf c2V0KCZzbC0+c2VxdWVuY2UsIHNsLT5zZXF1ZW5jZSArIDEpOworICAgIHFlbXVfYXRvbWljX3Nl dCgmc2wtPnNlcXVlbmNlLCBzbC0+c2VxdWVuY2UgKyAxKTsKIAogICAgIC8qIFdyaXRlIHNlcXVl bmNlIGJlZm9yZSB1cGRhdGluZyBvdGhlciBmaWVsZHMuICAqLwogICAgIHNtcF93bWIoKTsKQEAg LTQzLDcgKzQzLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNlcWxvY2tfd3JpdGVfZW5kKFFlbXVT ZXFMb2NrICpzbCkKICAgICAvKiBXcml0ZSBvdGhlciBmaWVsZHMgYmVmb3JlIGZpbmFsaXppbmcg c2VxdWVuY2UuICAqLwogICAgIHNtcF93bWIoKTsKIAotICAgIGF0b21pY19zZXQoJnNsLT5zZXF1 ZW5jZSwgc2wtPnNlcXVlbmNlICsgMSk7CisgICAgcWVtdV9hdG9taWNfc2V0KCZzbC0+c2VxdWVu Y2UsIHNsLT5zZXF1ZW5jZSArIDEpOwogfQogCiAvKiBMb2NrIG91dCBvdGhlciB3cml0ZXJzIGFu ZCB1cGRhdGUgdGhlIGNvdW50LiAgKi8KQEAgLTY4LDcgKzY4LDcgQEAgc3RhdGljIGlubGluZSB2 b2lkIHNlcWxvY2tfd3JpdGVfdW5sb2NrX2ltcGwoUWVtdVNlcUxvY2sgKnNsLCBRZW11TG9ja2Fi bGUgKmxvY2sKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgc2VxbG9ja19yZWFkX2JlZ2luKGNvbnN0 IFFlbXVTZXFMb2NrICpzbCkKIHsKICAgICAvKiBBbHdheXMgZmFpbCBpZiBhIHdyaXRlIGlzIGlu IHByb2dyZXNzLiAgKi8KLSAgICB1bnNpZ25lZCByZXQgPSBhdG9taWNfcmVhZCgmc2wtPnNlcXVl bmNlKTsKKyAgICB1bnNpZ25lZCByZXQgPSBxZW11X2F0b21pY19yZWFkKCZzbC0+c2VxdWVuY2Up OwogCiAgICAgLyogUmVhZCBzZXF1ZW5jZSBiZWZvcmUgcmVhZGluZyBvdGhlciBmaWVsZHMuICAq LwogICAgIHNtcF9ybWIoKTsKQEAgLTc5LDcgKzc5LDcgQEAgc3RhdGljIGlubGluZSBpbnQgc2Vx bG9ja19yZWFkX3JldHJ5KGNvbnN0IFFlbXVTZXFMb2NrICpzbCwgdW5zaWduZWQgc3RhcnQpCiB7 CiAgICAgLyogUmVhZCBvdGhlciBmaWVsZHMgYmVmb3JlIHJlYWRpbmcgZmluYWwgc2VxdWVuY2Uu ICAqLwogICAgIHNtcF9ybWIoKTsKLSAgICByZXR1cm4gdW5saWtlbHkoYXRvbWljX3JlYWQoJnNs LT5zZXF1ZW5jZSkgIT0gc3RhcnQpOworICAgIHJldHVybiB1bmxpa2VseShxZW11X2F0b21pY19y ZWFkKCZzbC0+c2VxdWVuY2UpICE9IHN0YXJ0KTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9p bmNsdWRlL3FlbXUvc3RhdHM2NC5oIGIvaW5jbHVkZS9xZW11L3N0YXRzNjQuaAppbmRleCAxOWE1 YWM0YzU2Li5kNDNlY2ExZGQyIDEwMDY0NAotLS0gYS9pbmNsdWRlL3FlbXUvc3RhdHM2NC5oCisr KyBiL2luY2x1ZGUvcWVtdS9zdGF0czY0LmgKQEAgLTM3LDI3ICszNywyNyBAQCBzdGF0aWMgaW5s aW5lIHZvaWQgc3RhdDY0X2luaXQoU3RhdDY0ICpzLCB1aW50NjRfdCB2YWx1ZSkKIAogc3RhdGlj IGlubGluZSB1aW50NjRfdCBzdGF0NjRfZ2V0KGNvbnN0IFN0YXQ2NCAqcykKIHsKLSAgICByZXR1 cm4gYXRvbWljX3JlYWRfX25vY2hlY2soJnMtPnZhbHVlKTsKKyAgICByZXR1cm4gcWVtdV9hdG9t aWNfcmVhZF9fbm9jaGVjaygmcy0+dmFsdWUpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgc3Rh dDY0X2FkZChTdGF0NjQgKnMsIHVpbnQ2NF90IHZhbHVlKQogewotICAgIGF0b21pY19hZGQoJnMt PnZhbHVlLCB2YWx1ZSk7CisgICAgcWVtdV9hdG9taWNfYWRkKCZzLT52YWx1ZSwgdmFsdWUpOwog fQogCiBzdGF0aWMgaW5saW5lIHZvaWQgc3RhdDY0X21pbihTdGF0NjQgKnMsIHVpbnQ2NF90IHZh bHVlKQogewotICAgIHVpbnQ2NF90IG9yaWcgPSBhdG9taWNfcmVhZF9fbm9jaGVjaygmcy0+dmFs dWUpOworICAgIHVpbnQ2NF90IG9yaWcgPSBxZW11X2F0b21pY19yZWFkX19ub2NoZWNrKCZzLT52 YWx1ZSk7CiAgICAgd2hpbGUgKG9yaWcgPiB2YWx1ZSkgewotICAgICAgICBvcmlnID0gYXRvbWlj X2NtcHhjaGdfX25vY2hlY2soJnMtPnZhbHVlLCBvcmlnLCB2YWx1ZSk7CisgICAgICAgIG9yaWcg PSBxZW11X2F0b21pY19jbXB4Y2hnX19ub2NoZWNrKCZzLT52YWx1ZSwgb3JpZywgdmFsdWUpOwog ICAgIH0KIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHN0YXQ2NF9tYXgoU3RhdDY0ICpzLCB1aW50 NjRfdCB2YWx1ZSkKIHsKLSAgICB1aW50NjRfdCBvcmlnID0gYXRvbWljX3JlYWRfX25vY2hlY2so JnMtPnZhbHVlKTsKKyAgICB1aW50NjRfdCBvcmlnID0gcWVtdV9hdG9taWNfcmVhZF9fbm9jaGVj aygmcy0+dmFsdWUpOwogICAgIHdoaWxlIChvcmlnIDwgdmFsdWUpIHsKLSAgICAgICAgb3JpZyA9 IGF0b21pY19jbXB4Y2hnX19ub2NoZWNrKCZzLT52YWx1ZSwgb3JpZywgdmFsdWUpOworICAgICAg ICBvcmlnID0gcWVtdV9hdG9taWNfY21weGNoZ19fbm9jaGVjaygmcy0+dmFsdWUsIG9yaWcsIHZh bHVlKTsKICAgICB9CiB9CiAjZWxzZQpAQCAtNzksNyArNzksNyBAQCBzdGF0aWMgaW5saW5lIHZv aWQgc3RhdDY0X2FkZChTdGF0NjQgKnMsIHVpbnQ2NF90IHZhbHVlKQogICAgIGxvdyA9ICh1aW50 MzJfdCkgdmFsdWU7CiAgICAgaWYgKCFsb3cpIHsKICAgICAgICAgaWYgKGhpZ2gpIHsKLSAgICAg ICAgICAgIGF0b21pY19hZGQoJnMtPmhpZ2gsIGhpZ2gpOworICAgICAgICAgICAgcWVtdV9hdG9t aWNfYWRkKCZzLT5oaWdoLCBoaWdoKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAg fQpAQCAtMTAxLDcgKzEwMSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzdGF0NjRfYWRkKFN0YXQ2 NCAqcywgdWludDY0X3QgdmFsdWUpCiAgICAgICAgICAqIHRoZSBoaWdoIDMyIGJpdHMsIHNvIGl0 IGNhbiByYWNlIGp1c3QgZmluZSB3aXRoIHN0YXQ2NF9hZGQzMl9jYXJyeQogICAgICAgICAgKiBh bmQgZXZlbiBzdGF0NjRfZ2V0IQogICAgICAgICAgKi8KLSAgICAgICAgb2xkID0gYXRvbWljX2Nt cHhjaGcoJnMtPmxvdywgb3JpZywgcmVzdWx0KTsKKyAgICAgICAgb2xkID0gcWVtdV9hdG9taWNf Y21weGNoZygmcy0+bG93LCBvcmlnLCByZXN1bHQpOwogICAgICAgICBpZiAob3JpZyA9PSBvbGQp IHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTE2LDcgKzExNiw3IEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCBzdGF0NjRfbWluKFN0YXQ2NCAqcywgdWludDY0X3QgdmFsdWUpCiAg ICAgaGlnaCA9IHZhbHVlID4+IDMyOwogICAgIGxvdyA9ICh1aW50MzJfdCkgdmFsdWU7CiAgICAg ZG8gewotICAgICAgICBvcmlnX2hpZ2ggPSBhdG9taWNfcmVhZCgmcy0+aGlnaCk7CisgICAgICAg IG9yaWdfaGlnaCA9IHFlbXVfYXRvbWljX3JlYWQoJnMtPmhpZ2gpOwogICAgICAgICBpZiAob3Jp Z19oaWdoIDwgaGlnaCkgewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMjgs NyArMTI4LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHN0YXQ2NF9taW4oU3RhdDY0ICpzLCB1aW50 NjRfdCB2YWx1ZSkKICAgICAgICAgICAgICAqIHRoZSB3cml0ZSBiYXJyaWVyIGluIHN0YXQ2NF9t aW5fc2xvdy4KICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgc21wX3JtYigpOwotICAgICAg ICAgICAgb3JpZ19sb3cgPSBhdG9taWNfcmVhZCgmcy0+bG93KTsKKyAgICAgICAgICAgIG9yaWdf bG93ID0gcWVtdV9hdG9taWNfcmVhZCgmcy0+bG93KTsKICAgICAgICAgICAgIGlmIChvcmlnX2xv dyA8PSBsb3cpIHsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CkBAIC0x MzgsNyArMTM4LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHN0YXQ2NF9taW4oU3RhdDY0ICpzLCB1 aW50NjRfdCB2YWx1ZSkKICAgICAgICAgICAgICAqIHdlIG1heSBtaXNzIGJlaW5nIGx1Y2t5Lgog ICAgICAgICAgICAgICovCiAgICAgICAgICAgICBzbXBfcm1iKCk7Ci0gICAgICAgICAgICBvcmln X2hpZ2ggPSBhdG9taWNfcmVhZCgmcy0+aGlnaCk7CisgICAgICAgICAgICBvcmlnX2hpZ2ggPSBx ZW11X2F0b21pY19yZWFkKCZzLT5oaWdoKTsKICAgICAgICAgICAgIGlmIChvcmlnX2hpZ2ggPCBo aWdoKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpAQCAtMTU2LDcg KzE1Niw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzdGF0NjRfbWF4KFN0YXQ2NCAqcywgdWludDY0 X3QgdmFsdWUpCiAgICAgaGlnaCA9IHZhbHVlID4+IDMyOwogICAgIGxvdyA9ICh1aW50MzJfdCkg dmFsdWU7CiAgICAgZG8gewotICAgICAgICBvcmlnX2hpZ2ggPSBhdG9taWNfcmVhZCgmcy0+aGln aCk7CisgICAgICAgIG9yaWdfaGlnaCA9IHFlbXVfYXRvbWljX3JlYWQoJnMtPmhpZ2gpOwogICAg ICAgICBpZiAob3JpZ19oaWdoID4gaGlnaCkgewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg ICB9CkBAIC0xNjgsNyArMTY4LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHN0YXQ2NF9tYXgoU3Rh dDY0ICpzLCB1aW50NjRfdCB2YWx1ZSkKICAgICAgICAgICAgICAqIHRoZSB3cml0ZSBiYXJyaWVy IGluIHN0YXQ2NF9tYXhfc2xvdy4KICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgc21wX3Jt YigpOwotICAgICAgICAgICAgb3JpZ19sb3cgPSBhdG9taWNfcmVhZCgmcy0+bG93KTsKKyAgICAg ICAgICAgIG9yaWdfbG93ID0gcWVtdV9hdG9taWNfcmVhZCgmcy0+bG93KTsKICAgICAgICAgICAg IGlmIChvcmlnX2xvdyA+PSBsb3cpIHsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg ICAgICB9CkBAIC0xNzgsNyArMTc4LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHN0YXQ2NF9tYXgo U3RhdDY0ICpzLCB1aW50NjRfdCB2YWx1ZSkKICAgICAgICAgICAgICAqIHdlIG1heSBtaXNzIGJl aW5nIGx1Y2t5LgogICAgICAgICAgICAgICovCiAgICAgICAgICAgICBzbXBfcm1iKCk7Ci0gICAg ICAgICAgICBvcmlnX2hpZ2ggPSBhdG9taWNfcmVhZCgmcy0+aGlnaCk7CisgICAgICAgICAgICBv cmlnX2hpZ2ggPSBxZW11X2F0b21pY19yZWFkKCZzLT5oaWdoKTsKICAgICAgICAgICAgIGlmIChv cmlnX2hpZ2ggPiBoaWdoKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9xZW11L3RocmVhZC5oIGIvaW5jbHVkZS9xZW11L3RocmVh ZC5oCmluZGV4IDRiYWY0ZDE3MTUuLjEwNGU4MTEyMzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcWVt dS90aHJlYWQuaAorKysgYi9pbmNsdWRlL3FlbXUvdGhyZWFkLmgKQEAgLTY5LDM1ICs2OSwzOCBA QCBleHRlcm4gUWVtdUNvbmRUaW1lZFdhaXRGdW5jIHFlbXVfY29uZF90aW1lZHdhaXRfZnVuYzsK ICNkZWZpbmUgcWVtdV9jb25kX3RpbWVkd2FpdChjLCBtLCBtcykgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHFlbXVfY29uZF90aW1lZHdhaXRfaW1wbChj LCBtLCBtcywgX19GSUxFX18sIF9fTElORV9fKQogI2Vsc2UKLSNkZWZpbmUgcWVtdV9tdXRleF9s b2NrKG0pICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg ICAgICAgICAgIFFlbXVNdXRleExvY2tGdW5jIF9mID0gYXRvbWljX3JlYWQoJnFlbXVfbXV0ZXhf bG9ja19mdW5jKTsgIFwKLSAgICAgICAgICAgIF9mKG0sIF9fRklMRV9fLCBfX0xJTkVfXyk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgcWVtdV9tdXRleF9sb2Nr KG0pICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgICAgICAgICAgUWVtdU11dGV4TG9ja0Z1bmMgX2YgPSBxZW11X2F0b21pY19yZWFkKCZxZW11 X211dGV4X2xvY2tfZnVuYyk7ICBcCisgICAgICAgICAgICBfZihtLCBfX0ZJTEVfXywgX19MSU5F X18pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgfSkK IAogI2RlZmluZSBxZW11X211dGV4X3RyeWxvY2sobSkgKHsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgUWVtdU11dGV4VHJ5bG9ja0Z1bmMgX2Yg PSBhdG9taWNfcmVhZCgmcWVtdV9tdXRleF90cnlsb2NrX2Z1bmMpOyBcCisgICAgICAgICAgICBR ZW11TXV0ZXhUcnlsb2NrRnVuYyBfZiA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgICAgICAgICAgICAgcWVtdV9hdG9taWNfcmVhZCgmcWVtdV9tdXRleF90cnlsb2Nr X2Z1bmMpOyAgICAgICAgICAgICBcCiAgICAgICAgICAgICBfZihtLCBfX0ZJTEVfXywgX19MSU5F X18pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIH0pCiAKICNk ZWZpbmUgcWVtdV9yZWNfbXV0ZXhfbG9jayhtKSAoeyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIFFlbXVSZWNNdXRleExvY2tGdW5jIF9mID0gYXRv bWljX3JlYWQoJnFlbXVfcmVjX211dGV4X2xvY2tfZnVuYyk7IFwKKyAgICAgICAgICAgIFFlbXVS ZWNNdXRleExvY2tGdW5jIF9mID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICAgICAgICAgICAgICBxZW11X2F0b21pY19yZWFkKCZxZW11X3JlY19tdXRleF9sb2NrX2Z1 bmMpOyAgICAgICAgICAgIFwKICAgICAgICAgICAgIF9mKG0sIF9fRklMRV9fLCBfX0xJTkVfXyk7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgfSkKIAotI2RlZmlu ZSBxZW11X3JlY19tdXRleF90cnlsb2NrKG0pICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKLSAgICAgICAgICAgIFFlbXVSZWNNdXRleFRyeWxvY2tGdW5jIF9mOyAgICAgICAgICAgICAg ICAgICAgICAgICBcCi0gICAgICAgICAgICBfZiA9IGF0b21pY19yZWFkKCZxZW11X3JlY19tdXRl eF90cnlsb2NrX2Z1bmMpOyAgICAgXAotICAgICAgICAgICAgX2YobSwgX19GSUxFX18sIF9fTElO RV9fKTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgcWVtdV9yZWNfbXV0ZXhf dHJ5bG9jayhtKSAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg ICAgIFFlbXVSZWNNdXRleFRyeWxvY2tGdW5jIF9mOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgICAgICAgIF9mID0gcWVtdV9hdG9taWNfcmVhZCgmcWVtdV9yZWNfbXV0ZXhf dHJ5bG9ja19mdW5jKTsgICAgIFwKKyAgICAgICAgICAgIF9mKG0sIF9fRklMRV9fLCBfX0xJTkVf Xyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgfSkKIAotI2RlZmlu ZSBxZW11X2NvbmRfd2FpdChjLCBtKSAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAotICAgICAgICAgICAgUWVtdUNvbmRXYWl0RnVuYyBfZiA9IGF0b21pY19yZWFk KCZxZW11X2NvbmRfd2FpdF9mdW5jKTsgICAgXAotICAgICAgICAgICAgX2YoYywgbSwgX19GSUxF X18sIF9fTElORV9fKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBx ZW11X2NvbmRfd2FpdChjLCBtKSAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisgICAgICAgICAgICBRZW11Q29uZFdhaXRGdW5jIF9mID0gcWVtdV9hdG9t aWNfcmVhZCgmcWVtdV9jb25kX3dhaXRfZnVuYyk7ICAgIFwKKyAgICAgICAgICAgIF9mKGMsIG0s IF9fRklMRV9fLCBfX0xJTkVfXyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAogICAgICAgICB9KQogCi0jZGVmaW5lIHFlbXVfY29uZF90aW1lZHdhaXQoYywgbSwgbXMpICh7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgUWVt dUNvbmRUaW1lZFdhaXRGdW5jIF9mID0gYXRvbWljX3JlYWQoJnFlbXVfY29uZF90aW1lZHdhaXRf ZnVuYyk7IFwKLSAgICAgICAgICAgIF9mKGMsIG0sIG1zLCBfX0ZJTEVfXywgX19MSU5FX18pOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIHFlbXVfY29uZF90aW1l ZHdhaXQoYywgbSwgbXMpICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICAgICAgICAgIFFlbXVDb25kVGltZWRXYWl0RnVuYyBfZiA9ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIHFlbXVfYXRvbWljX3JlYWQo JnFlbXVfY29uZF90aW1lZHdhaXRfZnVuYyk7ICAgICAgICAgICAgICAgICBcCisgICAgICAgICAg ICBfZihjLCBtLCBtcywgX19GSUxFX18sIF9fTElORV9fKTsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKICAgICAgICAgfSkKICNlbmRpZgogCkBAIC0yMzYsNyArMjM5LDcgQEAgc3Rh dGljIGlubGluZSB2b2lkIHFlbXVfc3Bpbl9sb2NrKFFlbXVTcGluICpzcGluKQogICAgIF9fdHNh bl9tdXRleF9wcmVfbG9jayhzcGluLCAwKTsKICNlbmRpZgogICAgIHdoaWxlICh1bmxpa2VseShf X3N5bmNfbG9ja190ZXN0X2FuZF9zZXQoJnNwaW4tPnZhbHVlLCB0cnVlKSkpIHsKLSAgICAgICAg d2hpbGUgKGF0b21pY19yZWFkKCZzcGluLT52YWx1ZSkpIHsKKyAgICAgICAgd2hpbGUgKHFlbXVf YXRvbWljX3JlYWQoJnNwaW4tPnZhbHVlKSkgewogICAgICAgICAgICAgY3B1X3JlbGF4KCk7CiAg ICAgICAgIH0KICAgICB9CkBAIC0yNjEsNyArMjY0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHFl bXVfc3Bpbl90cnlsb2NrKFFlbXVTcGluICpzcGluKQogCiBzdGF0aWMgaW5saW5lIGJvb2wgcWVt dV9zcGluX2xvY2tlZChRZW11U3BpbiAqc3BpbikKIHsKLSAgICByZXR1cm4gYXRvbWljX3JlYWQo JnNwaW4tPnZhbHVlKTsKKyAgICByZXR1cm4gcWVtdV9hdG9taWNfcmVhZCgmc3Bpbi0+dmFsdWUp OwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgcWVtdV9zcGluX3VubG9jayhRZW11U3BpbiAqc3Bp bikKZGlmZiAtLWdpdCBhL2luY2x1ZGUvc3RhbmRhcmQtaGVhZGVycy9kcml2ZXJzL2luZmluaWJh bmQvaHcvdm13X3B2cmRtYS9wdnJkbWFfcmluZy5oIGIvaW5jbHVkZS9zdGFuZGFyZC1oZWFkZXJz L2RyaXZlcnMvaW5maW5pYmFuZC9ody92bXdfcHZyZG1hL3B2cmRtYV9yaW5nLmgKaW5kZXggYWNk NGM4MzQ2ZC4uOGU3MTI5MDRlOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zdGFuZGFyZC1oZWFkZXJz L2RyaXZlcnMvaW5maW5pYmFuZC9ody92bXdfcHZyZG1hL3B2cmRtYV9yaW5nLmgKKysrIGIvaW5j bHVkZS9zdGFuZGFyZC1oZWFkZXJzL2RyaXZlcnMvaW5maW5pYmFuZC9ody92bXdfcHZyZG1hL3B2 cmRtYV9yaW5nLmgKQEAgLTY4LDcgKzY4LDcgQEAgc3RhdGljIGlubGluZSBpbnQgcHZyZG1hX2lk eF92YWxpZCh1aW50MzJfdCBpZHgsIHVpbnQzMl90IG1heF9lbGVtcykKIAogc3RhdGljIGlubGlu ZSBpbnQzMl90IHB2cmRtYV9pZHgoaW50ICp2YXIsIHVpbnQzMl90IG1heF9lbGVtcykKIHsKLQlj b25zdCB1bnNpZ25lZCBpbnQgaWR4ID0gYXRvbWljX3JlYWQodmFyKTsKKwljb25zdCB1bnNpZ25l ZCBpbnQgaWR4ID0gcWVtdV9hdG9taWNfcmVhZCh2YXIpOwogCiAJaWYgKHB2cmRtYV9pZHhfdmFs aWQoaWR4LCBtYXhfZWxlbXMpKQogCQlyZXR1cm4gaWR4ICYgKG1heF9lbGVtcyAtIDEpOwpAQCAt NzcsMTcgKzc3LDE3IEBAIHN0YXRpYyBpbmxpbmUgaW50MzJfdCBwdnJkbWFfaWR4KGludCAqdmFy LCB1aW50MzJfdCBtYXhfZWxlbXMpCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwdnJkbWFfaWR4X3Jp bmdfaW5jKGludCAqdmFyLCB1aW50MzJfdCBtYXhfZWxlbXMpCiB7Ci0JdWludDMyX3QgaWR4ID0g YXRvbWljX3JlYWQodmFyKSArIDE7CS8qIEluY3JlbWVudC4gKi8KKwl1aW50MzJfdCBpZHggPSBx ZW11X2F0b21pY19yZWFkKHZhcikgKyAxOwkvKiBJbmNyZW1lbnQuICovCiAKIAlpZHggJj0gKG1h eF9lbGVtcyA8PCAxKSAtIDE7CQkvKiBNb2R1bG8gc2l6ZSwgZmxpcCBnZW4uICovCi0JYXRvbWlj X3NldCh2YXIsIGlkeCk7CisJcWVtdV9hdG9taWNfc2V0KHZhciwgaWR4KTsKIH0KIAogc3RhdGlj IGlubGluZSBpbnQzMl90IHB2cmRtYV9pZHhfcmluZ19oYXNfc3BhY2UoY29uc3Qgc3RydWN0IHB2 cmRtYV9yaW5nICpyLAogCQkJCQkgICAgICB1aW50MzJfdCBtYXhfZWxlbXMsIHVpbnQzMl90ICpv dXRfdGFpbCkKIHsKLQljb25zdCB1aW50MzJfdCB0YWlsID0gYXRvbWljX3JlYWQoJnItPnByb2Rf dGFpbCk7Ci0JY29uc3QgdWludDMyX3QgaGVhZCA9IGF0b21pY19yZWFkKCZyLT5jb25zX2hlYWQp OworCWNvbnN0IHVpbnQzMl90IHRhaWwgPSBxZW11X2F0b21pY19yZWFkKCZyLT5wcm9kX3RhaWwp OworCWNvbnN0IHVpbnQzMl90IGhlYWQgPSBxZW11X2F0b21pY19yZWFkKCZyLT5jb25zX2hlYWQp OwogCiAJaWYgKHB2cmRtYV9pZHhfdmFsaWQodGFpbCwgbWF4X2VsZW1zKSAmJgogCSAgICBwdnJk bWFfaWR4X3ZhbGlkKGhlYWQsIG1heF9lbGVtcykpIHsKQEAgLTEwMCw4ICsxMDAsOCBAQCBzdGF0 aWMgaW5saW5lIGludDMyX3QgcHZyZG1hX2lkeF9yaW5nX2hhc19zcGFjZShjb25zdCBzdHJ1Y3Qg cHZyZG1hX3JpbmcgKnIsCiBzdGF0aWMgaW5saW5lIGludDMyX3QgcHZyZG1hX2lkeF9yaW5nX2hh c19kYXRhKGNvbnN0IHN0cnVjdCBwdnJkbWFfcmluZyAqciwKIAkJCQkJICAgICB1aW50MzJfdCBt YXhfZWxlbXMsIHVpbnQzMl90ICpvdXRfaGVhZCkKIHsKLQljb25zdCB1aW50MzJfdCB0YWlsID0g YXRvbWljX3JlYWQoJnItPnByb2RfdGFpbCk7Ci0JY29uc3QgdWludDMyX3QgaGVhZCA9IGF0b21p Y19yZWFkKCZyLT5jb25zX2hlYWQpOworCWNvbnN0IHVpbnQzMl90IHRhaWwgPSBxZW11X2F0b21p Y19yZWFkKCZyLT5wcm9kX3RhaWwpOworCWNvbnN0IHVpbnQzMl90IGhlYWQgPSBxZW11X2F0b21p Y19yZWFkKCZyLT5jb25zX2hlYWQpOwogCiAJaWYgKHB2cmRtYV9pZHhfdmFsaWQodGFpbCwgbWF4 X2VsZW1zKSAmJgogCSAgICBwdnJkbWFfaWR4X3ZhbGlkKGhlYWQsIG1heF9lbGVtcykpIHsKZGlm ZiAtLWdpdCBhL2xpbnV4LXVzZXIvcWVtdS5oIGIvbGludXgtdXNlci9xZW11LmgKaW5kZXggYTY5 YTBiZDM0Ny4uZjllODM1ZGU4MCAxMDA2NDQKLS0tIGEvbGludXgtdXNlci9xZW11LmgKKysrIGIv bGludXgtdXNlci9xZW11LmgKQEAgLTE0Niw4ICsxNDYsOCBAQCB0eXBlZGVmIHN0cnVjdCBUYXNr U3RhdGUgewogICAgIC8qIE5vbnplcm8gaWYgcHJvY2Vzc19wZW5kaW5nX3NpZ25hbHMoKSBuZWVk cyB0byBkbyBzb21ldGhpbmcgKGVpdGhlcgogICAgICAqIGhhbmRsZSBhIHBlbmRpbmcgc2lnbmFs IG9yIHVuYmxvY2sgc2lnbmFscykuCiAgICAgICogVGhpcyBmbGFnIGlzIHdyaXR0ZW4gZnJvbSBh IHNpZ25hbCBoYW5kbGVyIHNvIHNob3VsZCBiZSBhY2Nlc3NlZCB2aWEKLSAgICAgKiB0aGUgYXRv bWljX3JlYWQoKSBhbmQgYXRvbWljX3NldCgpIGZ1bmN0aW9ucy4gKEl0IGlzIG5vdCBhY2Nlc3Nl ZAotICAgICAqIGZyb20gbXVsdGlwbGUgdGhyZWFkcy4pCisgICAgICogdGhlIHFlbXVfYXRvbWlj X3JlYWQoKSBhbmQgcWVtdV9hdG9taWNfc2V0KCkgZnVuY3Rpb25zLiAoSXQgaXMgbm90CisgICAg ICogYWNjZXNzZWQgZnJvbSBtdWx0aXBsZSB0aHJlYWRzLikKICAgICAgKi8KICAgICBpbnQgc2ln bmFsX3BlbmRpbmc7CiAKZGlmZiAtLWdpdCBhL3RjZy9pMzg2L3RjZy10YXJnZXQuaCBiL3RjZy9p Mzg2L3RjZy10YXJnZXQuaAppbmRleCA5OWFjMWUzOTU4Li44ZWVkZTI5ZTMyIDEwMDY0NAotLS0g YS90Y2cvaTM4Ni90Y2ctdGFyZ2V0LmgKKysrIGIvdGNnL2kzODYvdGNnLXRhcmdldC5oCkBAIC0y MTUsNyArMjE1LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHRiX3RhcmdldF9zZXRfam1wX3Rhcmdl dCh1aW50cHRyX3QgdGNfcHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1aW50cHRyX3Qgam1wX2FkZHIsIHVpbnRwdHJfdCBhZGRyKQogewogICAgIC8qIHBh dGNoIHRoZSBicmFuY2ggZGVzdGluYXRpb24gKi8KLSAgICBhdG9taWNfc2V0KChpbnQzMl90ICop am1wX2FkZHIsIGFkZHIgLSAoam1wX2FkZHIgKyA0KSk7CisgICAgcWVtdV9hdG9taWNfc2V0KChp bnQzMl90ICopam1wX2FkZHIsIGFkZHIgLSAoam1wX2FkZHIgKyA0KSk7CiAgICAgLyogbm8gbmVl ZCB0byBmbHVzaCBpY2FjaGUgZXhwbGljaXRseSAqLwogfQogCmRpZmYgLS1naXQgYS90Y2cvczM5 MC90Y2ctdGFyZ2V0LmggYi90Y2cvczM5MC90Y2ctdGFyZ2V0LmgKaW5kZXggMDdhY2NhYmJkMS4u YjhhNmI1MTU1NiAxMDA2NDQKLS0tIGEvdGNnL3MzOTAvdGNnLXRhcmdldC5oCisrKyBiL3RjZy9z MzkwL3RjZy10YXJnZXQuaApAQCAtMTU0LDcgKzE1NCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0 Yl90YXJnZXRfc2V0X2ptcF90YXJnZXQodWludHB0cl90IHRjX3B0ciwKIHsKICAgICAvKiBwYXRj aCB0aGUgYnJhbmNoIGRlc3RpbmF0aW9uICovCiAgICAgaW50cHRyX3QgZGlzcCA9IGFkZHIgLSAo am1wX2FkZHIgLSAyKTsKLSAgICBhdG9taWNfc2V0KChpbnQzMl90ICopam1wX2FkZHIsIGRpc3Ag LyAyKTsKKyAgICBxZW11X2F0b21pY19zZXQoKGludDMyX3QgKilqbXBfYWRkciwgZGlzcCAvIDIp OwogICAgIC8qIG5vIG5lZWQgdG8gZmx1c2ggaWNhY2hlIGV4cGxpY2l0bHkgKi8KIH0KIApkaWZm IC0tZ2l0IGEvdGNnL3RjaS90Y2ctdGFyZ2V0LmggYi90Y2cvdGNpL3RjZy10YXJnZXQuaAppbmRl eCA4YjkwYWI3MWNiLi4yZmFjMTE1ZGI2IDEwMDY0NAotLS0gYS90Y2cvdGNpL3RjZy10YXJnZXQu aAorKysgYi90Y2cvdGNpL3RjZy10YXJnZXQuaApAQCAtMjA2LDcgKzIwNiw3IEBAIHN0YXRpYyBp bmxpbmUgdm9pZCB0Yl90YXJnZXRfc2V0X2ptcF90YXJnZXQodWludHB0cl90IHRjX3B0ciwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IGptcF9h ZGRyLCB1aW50cHRyX3QgYWRkcikKIHsKICAgICAvKiBwYXRjaCB0aGUgYnJhbmNoIGRlc3RpbmF0 aW9uICovCi0gICAgYXRvbWljX3NldCgoaW50MzJfdCAqKWptcF9hZGRyLCBhZGRyIC0gKGptcF9h ZGRyICsgNCkpOworICAgIHFlbXVfYXRvbWljX3NldCgoaW50MzJfdCAqKWptcF9hZGRyLCBhZGRy IC0gKGptcF9hZGRyICsgNCkpOwogICAgIC8qIG5vIG5lZWQgdG8gZmx1c2ggaWNhY2hlIGV4cGxp Y2l0bHkgKi8KIH0KIApkaWZmIC0tZ2l0IGEvYWNjZWwva3ZtL2t2bS1hbGwuYyBiL2FjY2VsL2t2 bS9rdm0tYWxsLmMKaW5kZXggYWQ4YjMxNWIzNS4uMDZlNTBiOGFjNiAxMDA2NDQKLS0tIGEvYWNj ZWwva3ZtL2t2bS1hbGwuYworKysgYi9hY2NlbC9rdm0va3ZtLWFsbC5jCkBAIC0yMzc5LDcgKzIz NzksNyBAQCBzdGF0aWMgX190aHJlYWQgYm9vbCBoYXZlX3NpZ2J1c19wZW5kaW5nOwogCiBzdGF0 aWMgdm9pZCBrdm1fY3B1X2tpY2soQ1BVU3RhdGUgKmNwdSkKIHsKLSAgICBhdG9taWNfc2V0KCZj cHUtPmt2bV9ydW4tPmltbWVkaWF0ZV9leGl0LCAxKTsKKyAgICBxZW11X2F0b21pY19zZXQoJmNw dS0+a3ZtX3J1bi0+aW1tZWRpYXRlX2V4aXQsIDEpOwogfQogCiBzdGF0aWMgdm9pZCBrdm1fY3B1 X2tpY2tfc2VsZih2b2lkKQpAQCAtMjQwMCw3ICsyNDAwLDcgQEAgc3RhdGljIHZvaWQga3ZtX2Vh dF9zaWduYWxzKENQVVN0YXRlICpjcHUpCiAgICAgaW50IHI7CiAKICAgICBpZiAoa3ZtX2ltbWVk aWF0ZV9leGl0KSB7Ci0gICAgICAgIGF0b21pY19zZXQoJmNwdS0+a3ZtX3J1bi0+aW1tZWRpYXRl X2V4aXQsIDApOworICAgICAgICBxZW11X2F0b21pY19zZXQoJmNwdS0+a3ZtX3J1bi0+aW1tZWRp YXRlX2V4aXQsIDApOwogICAgICAgICAvKiBXcml0ZSBrdm1fcnVuLT5pbW1lZGlhdGVfZXhpdCBi ZWZvcmUgdGhlIGNwdS0+ZXhpdF9yZXF1ZXN0CiAgICAgICAgICAqIHdyaXRlIGluIGt2bV9jcHVf ZXhlYy4KICAgICAgICAgICovCkBAIC0yNDM0LDcgKzI0MzQsNyBAQCBpbnQga3ZtX2NwdV9leGVj KENQVVN0YXRlICpjcHUpCiAgICAgRFBSSU5URigia3ZtX2NwdV9leGVjKClcbiIpOwogCiAgICAg aWYgKGt2bV9hcmNoX3Byb2Nlc3NfYXN5bmNfZXZlbnRzKGNwdSkpIHsKLSAgICAgICAgYXRvbWlj X3NldCgmY3B1LT5leGl0X3JlcXVlc3QsIDApOworICAgICAgICBxZW11X2F0b21pY19zZXQoJmNw dS0+ZXhpdF9yZXF1ZXN0LCAwKTsKICAgICAgICAgcmV0dXJuIEVYQ1BfSExUOwogICAgIH0KIApA QCAtMjQ1MCw3ICsyNDUwLDcgQEAgaW50IGt2bV9jcHVfZXhlYyhDUFVTdGF0ZSAqY3B1KQogICAg ICAgICB9CiAKICAgICAgICAga3ZtX2FyY2hfcHJlX3J1bihjcHUsIHJ1bik7Ci0gICAgICAgIGlm IChhdG9taWNfcmVhZCgmY3B1LT5leGl0X3JlcXVlc3QpKSB7CisgICAgICAgIGlmIChxZW11X2F0 b21pY19yZWFkKCZjcHUtPmV4aXRfcmVxdWVzdCkpIHsKICAgICAgICAgICAgIERQUklOVEYoImlu dGVycnVwdCBleGl0IHJlcXVlc3RlZFxuIik7CiAgICAgICAgICAgICAvKgogICAgICAgICAgICAg ICogS1ZNIHJlcXVpcmVzIHVzIHRvIHJlZW50ZXIgdGhlIGtlcm5lbCBhZnRlciBJTyBleGl0cyB0 byBjb21wbGV0ZQpAQCAtMjU3Nyw3ICsyNTc3LDcgQEAgaW50IGt2bV9jcHVfZXhlYyhDUFVTdGF0 ZSAqY3B1KQogICAgICAgICB2bV9zdG9wKFJVTl9TVEFURV9JTlRFUk5BTF9FUlJPUik7CiAgICAg fQogCi0gICAgYXRvbWljX3NldCgmY3B1LT5leGl0X3JlcXVlc3QsIDApOworICAgIHFlbXVfYXRv bWljX3NldCgmY3B1LT5leGl0X3JlcXVlc3QsIDApOwogICAgIHJldHVybiByZXQ7CiB9CiAKQEAg LTI5OTQsNyArMjk5NCw3IEBAIGludCBrdm1fb25fc2lnYnVzX3ZjcHUoQ1BVU3RhdGUgKmNwdSwg aW50IGNvZGUsIHZvaWQgKmFkZHIpCiAgICAgaGF2ZV9zaWdidXNfcGVuZGluZyA9IHRydWU7CiAg ICAgcGVuZGluZ19zaWdidXNfYWRkciA9IGFkZHI7CiAgICAgcGVuZGluZ19zaWdidXNfY29kZSA9 IGNvZGU7Ci0gICAgYXRvbWljX3NldCgmY3B1LT5leGl0X3JlcXVlc3QsIDEpOworICAgIHFlbXVf YXRvbWljX3NldCgmY3B1LT5leGl0X3JlcXVlc3QsIDEpOwogICAgIHJldHVybiAwOwogI2Vsc2UK ICAgICByZXR1cm4gMTsKZGlmZiAtLWdpdCBhL2FjY2VsL3RjZy9jcHUtZXhlYy5jIGIvYWNjZWwv dGNnL2NwdS1leGVjLmMKaW5kZXggNjZkMzhmOWQ4NS4uYWJiZDVlOTU4OCAxMDA2NDQKLS0tIGEv YWNjZWwvdGNnL2NwdS1leGVjLmMKKysrIGIvYWNjZWwvdGNnL2NwdS1leGVjLmMKQEAgLTM2Nyw3 ICszNjcsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdGJfYWRkX2p1bXAoVHJhbnNsYXRpb25CbG9j ayAqdGIsIGludCBuLAogICAgICAgICBnb3RvIG91dF91bmxvY2tfbmV4dDsKICAgICB9CiAgICAg LyogQXRvbWljYWxseSBjbGFpbSB0aGUganVtcCBkZXN0aW5hdGlvbiBzbG90IG9ubHkgaWYgaXQg d2FzIE5VTEwgKi8KLSAgICBvbGQgPSBhdG9taWNfY21weGNoZygmdGItPmptcF9kZXN0W25dLCAo dWludHB0cl90KU5VTEwsICh1aW50cHRyX3QpdGJfbmV4dCk7CisgICAgb2xkID0gcWVtdV9hdG9t aWNfY21weGNoZygmdGItPmptcF9kZXN0W25dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHVpbnRwdHJfdClOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVpbnRw dHJfdCl0Yl9uZXh0KTsKICAgICBpZiAob2xkKSB7CiAgICAgICAgIGdvdG8gb3V0X3VubG9ja19u ZXh0OwogICAgIH0KQEAgLTQwNyw3ICs0MDksNyBAQCBzdGF0aWMgaW5saW5lIFRyYW5zbGF0aW9u QmxvY2sgKnRiX2ZpbmQoQ1BVU3RhdGUgKmNwdSwKICAgICAgICAgdGIgPSB0Yl9nZW5fY29kZShj cHUsIHBjLCBjc19iYXNlLCBmbGFncywgY2ZfbWFzayk7CiAgICAgICAgIG1tYXBfdW5sb2NrKCk7 CiAgICAgICAgIC8qIFdlIGFkZCB0aGUgVEIgaW4gdGhlIHZpcnR1YWwgcGMgaGFzaCB0YWJsZSBm b3IgdGhlIGZhc3QgbG9va3VwICovCi0gICAgICAgIGF0b21pY19zZXQoJmNwdS0+dGJfam1wX2Nh Y2hlW3RiX2ptcF9jYWNoZV9oYXNoX2Z1bmMocGMpXSwgdGIpOworICAgICAgICBxZW11X2F0b21p Y19zZXQoJmNwdS0+dGJfam1wX2NhY2hlW3RiX2ptcF9jYWNoZV9oYXNoX2Z1bmMocGMpXSwgdGIp OwogICAgIH0KICNpZm5kZWYgQ09ORklHX1VTRVJfT05MWQogICAgIC8qIFdlIGRvbid0IHRha2Ug Y2FyZSBvZiBkaXJlY3QganVtcHMgd2hlbiBhZGRyZXNzIG1hcHBpbmcgY2hhbmdlcyBpbgpAQCAt NTM2LDkgKzUzOCw5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjcHVfaGFuZGxlX2ludGVycnVwdChD UFVTdGF0ZSAqY3B1LAogICAgICAqIEVuc3VyZSB6ZXJvaW5nIGhhcHBlbnMgYmVmb3JlIHJlYWRp bmcgY3B1LT5leGl0X3JlcXVlc3Qgb3IKICAgICAgKiBjcHUtPmludGVycnVwdF9yZXF1ZXN0IChz ZWUgYWxzbyBzbXBfd21iIGluIGNwdV9leGl0KCkpCiAgICAgICovCi0gICAgYXRvbWljX21iX3Nl dCgmY3B1X25lZyhjcHUpLT5pY291bnRfZGVjci51MTYuaGlnaCwgMCk7CisgICAgcWVtdV9hdG9t aWNfbWJfc2V0KCZjcHVfbmVnKGNwdSktPmljb3VudF9kZWNyLnUxNi5oaWdoLCAwKTsKIAotICAg IGlmICh1bmxpa2VseShhdG9taWNfcmVhZCgmY3B1LT5pbnRlcnJ1cHRfcmVxdWVzdCkpKSB7Cisg ICAgaWYgKHVubGlrZWx5KHFlbXVfYXRvbWljX3JlYWQoJmNwdS0+aW50ZXJydXB0X3JlcXVlc3Qp KSkgewogICAgICAgICBpbnQgaW50ZXJydXB0X3JlcXVlc3Q7CiAgICAgICAgIHFlbXVfbXV0ZXhf bG9ja19pb3RocmVhZCgpOwogICAgICAgICBpbnRlcnJ1cHRfcmVxdWVzdCA9IGNwdS0+aW50ZXJy dXB0X3JlcXVlc3Q7CkBAIC02MTMsMTAgKzYxNSwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgY3B1 X2hhbmRsZV9pbnRlcnJ1cHQoQ1BVU3RhdGUgKmNwdSwKICAgICB9CiAKICAgICAvKiBGaW5hbGx5 LCBjaGVjayBpZiB3ZSBuZWVkIHRvIGV4aXQgdG8gdGhlIG1haW4gbG9vcC4gICovCi0gICAgaWYg KHVubGlrZWx5KGF0b21pY19yZWFkKCZjcHUtPmV4aXRfcmVxdWVzdCkpCisgICAgaWYgKHVubGlr ZWx5KHFlbXVfYXRvbWljX3JlYWQoJmNwdS0+ZXhpdF9yZXF1ZXN0KSkKICAgICAgICAgfHwgKHVz ZV9pY291bnQKICAgICAgICAgICAgICYmIGNwdV9uZWcoY3B1KS0+aWNvdW50X2RlY3IudTE2Lmxv dyArIGNwdS0+aWNvdW50X2V4dHJhID09IDApKSB7Ci0gICAgICAgIGF0b21pY19zZXQoJmNwdS0+ ZXhpdF9yZXF1ZXN0LCAwKTsKKyAgICAgICAgcWVtdV9hdG9taWNfc2V0KCZjcHUtPmV4aXRfcmVx dWVzdCwgMCk7CiAgICAgICAgIGlmIChjcHUtPmV4Y2VwdGlvbl9pbmRleCA9PSAtMSkgewogICAg ICAgICAgICAgY3B1LT5leGNlcHRpb25faW5kZXggPSBFWENQX0lOVEVSUlVQVDsKICAgICAgICAg fQpAQCAtNjQyLDcgKzY0NCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjcHVfbG9vcF9leGVjX3Ri KENQVVN0YXRlICpjcHUsIFRyYW5zbGF0aW9uQmxvY2sgKnRiLAogICAgIH0KIAogICAgICpsYXN0 X3RiID0gTlVMTDsKLSAgICBpbnNuc19sZWZ0ID0gYXRvbWljX3JlYWQoJmNwdV9uZWcoY3B1KS0+ aWNvdW50X2RlY3IudTMyKTsKKyAgICBpbnNuc19sZWZ0ID0gcWVtdV9hdG9taWNfcmVhZCgmY3B1 X25lZyhjcHUpLT5pY291bnRfZGVjci51MzIpOwogICAgIGlmIChpbnNuc19sZWZ0IDwgMCkgewog ICAgICAgICAvKiBTb21ldGhpbmcgYXNrZWQgdXMgdG8gc3RvcCBleGVjdXRpbmcgY2hhaW5lZCBU QnM7IGp1c3QKICAgICAgICAgICogY29udGludWUgcm91bmQgdGhlIG1haW4gbG9vcC4gV2hhdGV2 ZXIgcmVxdWVzdGVkIHRoZSBleGl0CmRpZmYgLS1naXQgYS9hY2NlbC90Y2cvY3B1dGxiLmMgYi9h Y2NlbC90Y2cvY3B1dGxiLmMKaW5kZXggNjQ4OWFiYmY4Yy4uZWFhZjBhZjU3NCAxMDA2NDQKLS0t IGEvYWNjZWwvdGNnL2NwdXRsYi5jCisrKyBiL2FjY2VsL3RjZy9jcHV0bGIuYwpAQCAtMzEyLDkg KzMxMiw5IEBAIHZvaWQgdGxiX2ZsdXNoX2NvdW50cyhzaXplX3QgKnBmdWxsLCBzaXplX3QgKnBw YXJ0LCBzaXplX3QgKnBlbGlkZSkKICAgICBDUFVfRk9SRUFDSChjcHUpIHsKICAgICAgICAgQ1BV QXJjaFN0YXRlICplbnYgPSBjcHUtPmVudl9wdHI7CiAKLSAgICAgICAgZnVsbCArPSBhdG9taWNf cmVhZCgmZW52X3RsYihlbnYpLT5jLmZ1bGxfZmx1c2hfY291bnQpOwotICAgICAgICBwYXJ0ICs9 IGF0b21pY19yZWFkKCZlbnZfdGxiKGVudiktPmMucGFydF9mbHVzaF9jb3VudCk7Ci0gICAgICAg IGVsaWRlICs9IGF0b21pY19yZWFkKCZlbnZfdGxiKGVudiktPmMuZWxpZGVfZmx1c2hfY291bnQp OworICAgICAgICBmdWxsICs9IHFlbXVfYXRvbWljX3JlYWQoJmVudl90bGIoZW52KS0+Yy5mdWxs X2ZsdXNoX2NvdW50KTsKKyAgICAgICAgcGFydCArPSBxZW11X2F0b21pY19yZWFkKCZlbnZfdGxi KGVudiktPmMucGFydF9mbHVzaF9jb3VudCk7CisgICAgICAgIGVsaWRlICs9IHFlbXVfYXRvbWlj X3JlYWQoJmVudl90bGIoZW52KS0+Yy5lbGlkZV9mbHVzaF9jb3VudCk7CiAgICAgfQogICAgICpw ZnVsbCA9IGZ1bGw7CiAgICAgKnBwYXJ0ID0gcGFydDsKQEAgLTM0OSwxMyArMzQ5LDEzIEBAIHN0 YXRpYyB2b2lkIHRsYl9mbHVzaF9ieV9tbXVpZHhfYXN5bmNfd29yayhDUFVTdGF0ZSAqY3B1LCBy dW5fb25fY3B1X2RhdGEgZGF0YSkKICAgICBjcHVfdGJfam1wX2NhY2hlX2NsZWFyKGNwdSk7CiAK ICAgICBpZiAodG9fY2xlYW4gPT0gQUxMX01NVUlEWF9CSVRTKSB7Ci0gICAgICAgIGF0b21pY19z ZXQoJmVudl90bGIoZW52KS0+Yy5mdWxsX2ZsdXNoX2NvdW50LAorICAgICAgICBxZW11X2F0b21p Y19zZXQoJmVudl90bGIoZW52KS0+Yy5mdWxsX2ZsdXNoX2NvdW50LAogICAgICAgICAgICAgICAg ICAgIGVudl90bGIoZW52KS0+Yy5mdWxsX2ZsdXNoX2NvdW50ICsgMSk7CiAgICAgfSBlbHNlIHsK LSAgICAgICAgYXRvbWljX3NldCgmZW52X3RsYihlbnYpLT5jLnBhcnRfZmx1c2hfY291bnQsCisg ICAgICAgIHFlbXVfYXRvbWljX3NldCgmZW52X3RsYihlbnYpLT5jLnBhcnRfZmx1c2hfY291bnQs CiAgICAgICAgICAgICAgICAgICAgZW52X3RsYihlbnYpLT5jLnBhcnRfZmx1c2hfY291bnQgKyBj dHBvcDE2KHRvX2NsZWFuKSk7CiAgICAgICAgIGlmICh0b19jbGVhbiAhPSBhc2tlZCkgewotICAg ICAgICAgICAgYXRvbWljX3NldCgmZW52X3RsYihlbnYpLT5jLmVsaWRlX2ZsdXNoX2NvdW50LAor ICAgICAgICAgICAgcWVtdV9hdG9taWNfc2V0KCZlbnZfdGxiKGVudiktPmMuZWxpZGVfZmx1c2hf Y291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgIGVudl90bGIoZW52KS0+Yy5lbGlkZV9mbHVz aF9jb3VudCArCiAgICAgICAgICAgICAgICAgICAgICAgIGN0cG9wMTYoYXNrZWQgJiB+dG9fY2xl YW4pKTsKICAgICAgICAgfQpAQCAtNjkzLDcgKzY5Myw3IEBAIHZvaWQgdGxiX3VucHJvdGVjdF9j b2RlKHJhbV9hZGRyX3QgcmFtX2FkZHIpCiAgKiBnZW5lcmF0ZWQgY29kZS4KICAqCiAgKiBPdGhl ciB2Q1BVcyBtaWdodCBiZSByZWFkaW5nIHRoZWlyIFRMQnMgZHVyaW5nIGd1ZXN0IGV4ZWN1dGlv biwgc28gd2UgdXBkYXRlCi0gKiB0ZS0+YWRkcl93cml0ZSB3aXRoIGF0b21pY19zZXQuIFdlIGRv bid0IG5lZWQgdG8gd29ycnkgYWJvdXQgdGhpcyBmb3IKKyAqIHRlLT5hZGRyX3dyaXRlIHdpdGgg cWVtdV9hdG9taWNfc2V0LiBXZSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IHRoaXMgZm9yCiAg KiBvdmVyc2l6ZWQgZ3Vlc3RzIGFzIE1UVENHIGlzIGRpc2FibGVkIGZvciB0aGVtLgogICoKICAq IENhbGxlZCB3aXRoIHRsYl9jLmxvY2sgaGVsZC4KQEAgLTcxMSw3ICs3MTEsNyBAQCBzdGF0aWMg dm9pZCB0bGJfcmVzZXRfZGlydHlfcmFuZ2VfbG9ja2VkKENQVVRMQkVudHJ5ICp0bGJfZW50cnks CiAjaWYgVENHX09WRVJTSVpFRF9HVUVTVAogICAgICAgICAgICAgdGxiX2VudHJ5LT5hZGRyX3dy aXRlIHw9IFRMQl9OT1RESVJUWTsKICNlbHNlCi0gICAgICAgICAgICBhdG9taWNfc2V0KCZ0bGJf ZW50cnktPmFkZHJfd3JpdGUsCisgICAgICAgICAgICBxZW11X2F0b21pY19zZXQoJnRsYl9lbnRy eS0+YWRkcl93cml0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgdGxiX2VudHJ5LT5hZGRyX3dy aXRlIHwgVExCX05PVERJUlRZKTsKICNlbmRpZgogICAgICAgICB9CkBAIC0xMTM4LDggKzExMzgs OCBAQCBzdGF0aWMgaW5saW5lIHRhcmdldF91bG9uZyB0bGJfcmVhZF9vZnMoQ1BVVExCRW50cnkg KmVudHJ5LCBzaXplX3Qgb2ZzKQogI2lmIFRDR19PVkVSU0laRURfR1VFU1QKICAgICByZXR1cm4g Kih0YXJnZXRfdWxvbmcgKikoKHVpbnRwdHJfdCllbnRyeSArIG9mcyk7CiAjZWxzZQotICAgIC8q IG9mcyBtaWdodCBjb3JyZXNwb25kIHRvIC5hZGRyX3dyaXRlLCBzbyB1c2UgYXRvbWljX3JlYWQg Ki8KLSAgICByZXR1cm4gYXRvbWljX3JlYWQoKHRhcmdldF91bG9uZyAqKSgodWludHB0cl90KWVu dHJ5ICsgb2ZzKSk7CisgICAgLyogb2ZzIG1pZ2h0IGNvcnJlc3BvbmQgdG8gLmFkZHJfd3JpdGUs IHNvIHVzZSBxZW11X2F0b21pY19yZWFkICovCisgICAgcmV0dXJuIHFlbXVfYXRvbWljX3JlYWQo KHRhcmdldF91bG9uZyAqKSgodWludHB0cl90KWVudHJ5ICsgb2ZzKSk7CiAjZW5kaWYKIH0KIApA QCAtMTE1NSwxMSArMTE1NSwxMSBAQCBzdGF0aWMgYm9vbCB2aWN0aW1fdGxiX2hpdChDUFVBcmNo U3RhdGUgKmVudiwgc2l6ZV90IG1tdV9pZHgsIHNpemVfdCBpbmRleCwKICAgICAgICAgQ1BVVExC RW50cnkgKnZ0bGIgPSAmZW52X3RsYihlbnYpLT5kW21tdV9pZHhdLnZ0YWJsZVt2aWR4XTsKICAg ICAgICAgdGFyZ2V0X3Vsb25nIGNtcDsKIAotICAgICAgICAvKiBlbHRfb2ZzIG1pZ2h0IGNvcnJl c3BvbmQgdG8gLmFkZHJfd3JpdGUsIHNvIHVzZSBhdG9taWNfcmVhZCAqLworICAgICAgICAvKiBl bHRfb2ZzIG1pZ2h0IGNvcnJlc3BvbmQgdG8gLmFkZHJfd3JpdGUsIHNvIHVzZSBxZW11X2F0b21p Y19yZWFkICovCiAjaWYgVENHX09WRVJTSVpFRF9HVUVTVAogICAgICAgICBjbXAgPSAqKHRhcmdl dF91bG9uZyAqKSgodWludHB0cl90KXZ0bGIgKyBlbHRfb2ZzKTsKICNlbHNlCi0gICAgICAgIGNt cCA9IGF0b21pY19yZWFkKCh0YXJnZXRfdWxvbmcgKikoKHVpbnRwdHJfdCl2dGxiICsgZWx0X29m cykpOworICAgICAgICBjbXAgPSBxZW11X2F0b21pY19yZWFkKCh0YXJnZXRfdWxvbmcgKikoKHVp bnRwdHJfdCl2dGxiICsgZWx0X29mcykpOwogI2VuZGlmCiAKICAgICAgICAgaWYgKGNtcCA9PSBw YWdlKSB7CmRpZmYgLS1naXQgYS9hY2NlbC90Y2cvdGNnLWFsbC5jIGIvYWNjZWwvdGNnL3RjZy1h bGwuYwppbmRleCA3MDk4YWQ5NmMzLi4yZDJlYTIxYjc4IDEwMDY0NAotLS0gYS9hY2NlbC90Y2cv dGNnLWFsbC5jCisrKyBiL2FjY2VsL3RjZy90Y2ctYWxsLmMKQEAgLTY1LDcgKzY1LDcgQEAgc3Rh dGljIHZvaWQgdGNnX2hhbmRsZV9pbnRlcnJ1cHQoQ1BVU3RhdGUgKmNwdSwgaW50IG1hc2spCiAg ICAgaWYgKCFxZW11X2NwdV9pc19zZWxmKGNwdSkpIHsKICAgICAgICAgcWVtdV9jcHVfa2ljayhj cHUpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGF0b21pY19zZXQoJmNwdV9uZWcoY3B1KS0+aWNv dW50X2RlY3IudTE2LmhpZ2gsIC0xKTsKKyAgICAgICAgcWVtdV9hdG9taWNfc2V0KCZjcHVfbmVn KGNwdSktPmljb3VudF9kZWNyLnUxNi5oaWdoLCAtMSk7CiAgICAgICAgIGlmICh1c2VfaWNvdW50 ICYmCiAgICAgICAgICAgICAhY3B1LT5jYW5fZG9faW8KICAgICAgICAgICAgICYmIChtYXNrICYg fm9sZF9tYXNrKSAhPSAwKSB7CmRpZmYgLS1naXQgYS9hY2NlbC90Y2cvdHJhbnNsYXRlLWFsbC5j IGIvYWNjZWwvdGNnL3RyYW5zbGF0ZS1hbGwuYwppbmRleCAyZDgzMDEzNjMzLi4yY2NjNDQ2OTRi IDEwMDY0NAotLS0gYS9hY2NlbC90Y2cvdHJhbnNsYXRlLWFsbC5jCisrKyBiL2FjY2VsL3RjZy90 cmFuc2xhdGUtYWxsLmMKQEAgLTM3Nyw5ICszNzcsOSBAQCBzdGF0aWMgaW50IGNwdV9yZXN0b3Jl X3N0YXRlX2Zyb21fdGIoQ1BVU3RhdGUgKmNwdSwgVHJhbnNsYXRpb25CbG9jayAqdGIsCiAgICAg cmVzdG9yZV9zdGF0ZV90b19vcGMoZW52LCB0YiwgZGF0YSk7CiAKICNpZmRlZiBDT05GSUdfUFJP RklMRVIKLSAgICBhdG9taWNfc2V0KCZwcm9mLT5yZXN0b3JlX3RpbWUsCisgICAgcWVtdV9hdG9t aWNfc2V0KCZwcm9mLT5yZXN0b3JlX3RpbWUsCiAgICAgICAgICAgICAgICAgcHJvZi0+cmVzdG9y ZV90aW1lICsgcHJvZmlsZV9nZXRjbG9jaygpIC0gdGkpOwotICAgIGF0b21pY19zZXQoJnByb2Yt PnJlc3RvcmVfY291bnQsIHByb2YtPnJlc3RvcmVfY291bnQgKyAxKTsKKyAgICBxZW11X2F0b21p Y19zZXQoJnByb2YtPnJlc3RvcmVfY291bnQsIHByb2YtPnJlc3RvcmVfY291bnQgKyAxKTsKICNl bmRpZgogICAgIHJldHVybiAwOwogfQpAQCAtNTA5LDcgKzUwOSw3IEBAIHN0YXRpYyBQYWdlRGVz YyAqcGFnZV9maW5kX2FsbG9jKHRiX3BhZ2VfYWRkcl90IGluZGV4LCBpbnQgYWxsb2MpCiAKICAg ICAvKiBMZXZlbCAyLi5OLTEuICAqLwogICAgIGZvciAoaSA9IHZfbDJfbGV2ZWxzOyBpID4gMDsg aS0tKSB7Ci0gICAgICAgIHZvaWQgKipwID0gYXRvbWljX3JjdV9yZWFkKGxwKTsKKyAgICAgICAg dm9pZCAqKnAgPSBxZW11X2F0b21pY19yY3VfcmVhZChscCk7CiAKICAgICAgICAgaWYgKHAgPT0g TlVMTCkgewogICAgICAgICAgICAgdm9pZCAqZXhpc3Rpbmc7CkBAIC01MTgsNyArNTE4LDcgQEAg c3RhdGljIFBhZ2VEZXNjICpwYWdlX2ZpbmRfYWxsb2ModGJfcGFnZV9hZGRyX3QgaW5kZXgsIGlu dCBhbGxvYykKICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgICAgIH0KICAg ICAgICAgICAgIHAgPSBnX25ldzAodm9pZCAqLCBWX0wyX1NJWkUpOwotICAgICAgICAgICAgZXhp c3RpbmcgPSBhdG9taWNfY21weGNoZyhscCwgTlVMTCwgcCk7CisgICAgICAgICAgICBleGlzdGlu ZyA9IHFlbXVfYXRvbWljX2NtcHhjaGcobHAsIE5VTEwsIHApOwogICAgICAgICAgICAgaWYgKHVu bGlrZWx5KGV4aXN0aW5nKSkgewogICAgICAgICAgICAgICAgIGdfZnJlZShwKTsKICAgICAgICAg ICAgICAgICBwID0gZXhpc3Rpbmc7CkBAIC01MjgsNyArNTI4LDcgQEAgc3RhdGljIFBhZ2VEZXNj ICpwYWdlX2ZpbmRfYWxsb2ModGJfcGFnZV9hZGRyX3QgaW5kZXgsIGludCBhbGxvYykKICAgICAg ICAgbHAgPSBwICsgKChpbmRleCA+PiAoaSAqIFZfTDJfQklUUykpICYgKFZfTDJfU0laRSAtIDEp KTsKICAgICB9CiAKLSAgICBwZCA9IGF0b21pY19yY3VfcmVhZChscCk7CisgICAgcGQgPSBxZW11 X2F0b21pY19yY3VfcmVhZChscCk7CiAgICAgaWYgKHBkID09IE5VTEwpIHsKICAgICAgICAgdm9p ZCAqZXhpc3Rpbmc7CiAKQEAgLTU0NSw3ICs1NDUsNyBAQCBzdGF0aWMgUGFnZURlc2MgKnBhZ2Vf ZmluZF9hbGxvYyh0Yl9wYWdlX2FkZHJfdCBpbmRleCwgaW50IGFsbG9jKQogICAgICAgICAgICAg fQogICAgICAgICB9CiAjZW5kaWYKLSAgICAgICAgZXhpc3RpbmcgPSBhdG9taWNfY21weGNoZyhs cCwgTlVMTCwgcGQpOworICAgICAgICBleGlzdGluZyA9IHFlbXVfYXRvbWljX2NtcHhjaGcobHAs IE5VTEwsIHBkKTsKICAgICAgICAgaWYgKHVubGlrZWx5KGV4aXN0aW5nKSkgewogI2lmbmRlZiBD T05GSUdfVVNFUl9PTkxZCiAgICAgICAgICAgICB7CkBAIC0xMjUzLDcgKzEyNTMsNyBAQCBzdGF0 aWMgdm9pZCBkb190Yl9mbHVzaChDUFVTdGF0ZSAqY3B1LCBydW5fb25fY3B1X2RhdGEgdGJfZmx1 c2hfY291bnQpCiAgICAgdGNnX3JlZ2lvbl9yZXNldF9hbGwoKTsKICAgICAvKiBYWFg6IGZsdXNo IHByb2Nlc3NvciBpY2FjaGUgYXQgdGhpcyBwb2ludCBpZiBjYWNoZSBmbHVzaCBpcwogICAgICAg IGV4cGVuc2l2ZSAqLwotICAgIGF0b21pY19tYl9zZXQoJnRiX2N0eC50Yl9mbHVzaF9jb3VudCwg dGJfY3R4LnRiX2ZsdXNoX2NvdW50ICsgMSk7CisgICAgcWVtdV9hdG9taWNfbWJfc2V0KCZ0Yl9j dHgudGJfZmx1c2hfY291bnQsIHRiX2N0eC50Yl9mbHVzaF9jb3VudCArIDEpOwogCiBkb25lOgog ICAgIG1tYXBfdW5sb2NrKCk7CkBAIC0xMjY1LDcgKzEyNjUsNyBAQCBkb25lOgogdm9pZCB0Yl9m bHVzaChDUFVTdGF0ZSAqY3B1KQogewogICAgIGlmICh0Y2dfZW5hYmxlZCgpKSB7Ci0gICAgICAg IHVuc2lnbmVkIHRiX2ZsdXNoX2NvdW50ID0gYXRvbWljX21iX3JlYWQoJnRiX2N0eC50Yl9mbHVz aF9jb3VudCk7CisgICAgICAgIHVuc2lnbmVkIHRiX2ZsdXNoX2NvdW50ID0gcWVtdV9hdG9taWNf bWJfcmVhZCgmdGJfY3R4LnRiX2ZsdXNoX2NvdW50KTsKIAogICAgICAgICBpZiAoY3B1X2luX2V4 Y2x1c2l2ZV9jb250ZXh0KGNwdSkpIHsKICAgICAgICAgICAgIGRvX3RiX2ZsdXNoKGNwdSwgUlVO X09OX0NQVV9IT1NUX0lOVCh0Yl9mbHVzaF9jb3VudCkpOwpAQCAtMTM1OCw3ICsxMzU4LDcgQEAg c3RhdGljIGlubGluZSB2b2lkIHRiX3JlbW92ZV9mcm9tX2ptcF9saXN0KFRyYW5zbGF0aW9uQmxv Y2sgKm9yaWcsIGludCBuX29yaWcpCiAgICAgaW50IG47CiAKICAgICAvKiBtYXJrIHRoZSBMU0Ig b2Ygam1wX2Rlc3RbXSBzbyB0aGF0IG5vIGZ1cnRoZXIganVtcHMgY2FuIGJlIGluc2VydGVkICov Ci0gICAgcHRyID0gYXRvbWljX29yX2ZldGNoKCZvcmlnLT5qbXBfZGVzdFtuX29yaWddLCAxKTsK KyAgICBwdHIgPSBxZW11X2F0b21pY19vcl9mZXRjaCgmb3JpZy0+am1wX2Rlc3Rbbl9vcmlnXSwg MSk7CiAgICAgZGVzdCA9IChUcmFuc2xhdGlvbkJsb2NrICopKHB0ciAmIH4xKTsKICAgICBpZiAo ZGVzdCA9PSBOVUxMKSB7CiAgICAgICAgIHJldHVybjsKQEAgLTEzNjksNyArMTM2OSw3IEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCB0Yl9yZW1vdmVfZnJvbV9qbXBfbGlzdChUcmFuc2xhdGlvbkJsb2Nr ICpvcmlnLCBpbnQgbl9vcmlnKQogICAgICAqIFdoaWxlIGFjcXVpcmluZyB0aGUgbG9jaywgdGhl IGp1bXAgbWlnaHQgaGF2ZSBiZWVuIHJlbW92ZWQgaWYgdGhlCiAgICAgICogZGVzdGluYXRpb24g VEIgd2FzIGludmFsaWRhdGVkOyBjaGVjayBhZ2Fpbi4KICAgICAgKi8KLSAgICBwdHJfbG9ja2Vk ID0gYXRvbWljX3JlYWQoJm9yaWctPmptcF9kZXN0W25fb3JpZ10pOworICAgIHB0cl9sb2NrZWQg PSBxZW11X2F0b21pY19yZWFkKCZvcmlnLT5qbXBfZGVzdFtuX29yaWddKTsKICAgICBpZiAocHRy X2xvY2tlZCAhPSBwdHIpIHsKICAgICAgICAgcWVtdV9zcGluX3VubG9jaygmZGVzdC0+am1wX2xv Y2spOwogICAgICAgICAvKgpAQCAtMTQxNSw3ICsxNDE1LDcgQEAgc3RhdGljIGlubGluZSB2b2lk IHRiX2ptcF91bmxpbmsoVHJhbnNsYXRpb25CbG9jayAqZGVzdCkKIAogICAgIFRCX0ZPUl9FQUNI X0pNUChkZXN0LCB0YiwgbikgewogICAgICAgICB0Yl9yZXNldF9qdW1wKHRiLCBuKTsKLSAgICAg ICAgYXRvbWljX2FuZCgmdGItPmptcF9kZXN0W25dLCAodWludHB0cl90KU5VTEwgfCAxKTsKKyAg ICAgICAgcWVtdV9hdG9taWNfYW5kKCZ0Yi0+am1wX2Rlc3Rbbl0sICh1aW50cHRyX3QpTlVMTCB8 IDEpOwogICAgICAgICAvKiBObyBuZWVkIHRvIGNsZWFyIHRoZSBsaXN0IGVudHJ5OyBzZXR0aW5n IHRoZSBkZXN0IHB0ciBpcyBlbm91Z2ggKi8KICAgICB9CiAgICAgZGVzdC0+am1wX2xpc3RfaGVh ZCA9ICh1aW50cHRyX3QpTlVMTDsKQEAgLTE0MzksNyArMTQzOSw3IEBAIHN0YXRpYyB2b2lkIGRv X3RiX3BoeXNfaW52YWxpZGF0ZShUcmFuc2xhdGlvbkJsb2NrICp0YiwgYm9vbCBybV9mcm9tX3Bh Z2VfbGlzdCkKIAogICAgIC8qIG1ha2Ugc3VyZSBubyBmdXJ0aGVyIGluY29taW5nIGp1bXBzIHdp bGwgYmUgY2hhaW5lZCB0byB0aGlzIFRCICovCiAgICAgcWVtdV9zcGluX2xvY2soJnRiLT5qbXBf bG9jayk7Ci0gICAgYXRvbWljX3NldCgmdGItPmNmbGFncywgdGItPmNmbGFncyB8IENGX0lOVkFM SUQpOworICAgIHFlbXVfYXRvbWljX3NldCgmdGItPmNmbGFncywgdGItPmNmbGFncyB8IENGX0lO VkFMSUQpOwogICAgIHFlbXVfc3Bpbl91bmxvY2soJnRiLT5qbXBfbG9jayk7CiAKICAgICAvKiBy ZW1vdmUgdGhlIFRCIGZyb20gdGhlIGhhc2ggbGlzdCAqLwpAQCAtMTQ2Niw4ICsxNDY2LDggQEAg c3RhdGljIHZvaWQgZG9fdGJfcGh5c19pbnZhbGlkYXRlKFRyYW5zbGF0aW9uQmxvY2sgKnRiLCBi b29sIHJtX2Zyb21fcGFnZV9saXN0KQogICAgIC8qIHJlbW92ZSB0aGUgVEIgZnJvbSB0aGUgaGFz aCBsaXN0ICovCiAgICAgaCA9IHRiX2ptcF9jYWNoZV9oYXNoX2Z1bmModGItPnBjKTsKICAgICBD UFVfRk9SRUFDSChjcHUpIHsKLSAgICAgICAgaWYgKGF0b21pY19yZWFkKCZjcHUtPnRiX2ptcF9j YWNoZVtoXSkgPT0gdGIpIHsKLSAgICAgICAgICAgIGF0b21pY19zZXQoJmNwdS0+dGJfam1wX2Nh Y2hlW2hdLCBOVUxMKTsKKyAgICAgICAgaWYgKHFlbXVfYXRvbWljX3JlYWQoJmNwdS0+dGJfam1w X2NhY2hlW2hdKSA9PSB0YikgeworICAgICAgICAgICAgcWVtdV9hdG9taWNfc2V0KCZjcHUtPnRi X2ptcF9jYWNoZVtoXSwgTlVMTCk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTE0NzgsNyArMTQ3 OCw3IEBAIHN0YXRpYyB2b2lkIGRvX3RiX3BoeXNfaW52YWxpZGF0ZShUcmFuc2xhdGlvbkJsb2Nr ICp0YiwgYm9vbCBybV9mcm9tX3BhZ2VfbGlzdCkKICAgICAvKiBzdXBwcmVzcyBhbnkgcmVtYWlu aW5nIGp1bXBzIHRvIHRoaXMgVEIgKi8KICAgICB0Yl9qbXBfdW5saW5rKHRiKTsKIAotICAgIGF0 b21pY19zZXQoJnRjZ19jdHgtPnRiX3BoeXNfaW52YWxpZGF0ZV9jb3VudCwKKyAgICBxZW11X2F0 b21pY19zZXQoJnRjZ19jdHgtPnRiX3BoeXNfaW52YWxpZGF0ZV9jb3VudCwKICAgICAgICAgICAg ICAgIHRjZ19jdHgtPnRiX3BoeXNfaW52YWxpZGF0ZV9jb3VudCArIDEpOwogfQogCkBAIC0xNzMz LDcgKzE3MzMsNyBAQCBUcmFuc2xhdGlvbkJsb2NrICp0Yl9nZW5fY29kZShDUFVTdGF0ZSAqY3B1 LAogCiAjaWZkZWYgQ09ORklHX1BST0ZJTEVSCiAgICAgLyogaW5jbHVkZXMgYWJvcnRlZCB0cmFu c2xhdGlvbnMgYmVjYXVzZSBvZiBleGNlcHRpb25zICovCi0gICAgYXRvbWljX3NldCgmcHJvZi0+ dGJfY291bnQxLCBwcm9mLT50Yl9jb3VudDEgKyAxKTsKKyAgICBxZW11X2F0b21pY19zZXQoJnBy b2YtPnRiX2NvdW50MSwgcHJvZi0+dGJfY291bnQxICsgMSk7CiAgICAgdGkgPSBwcm9maWxlX2dl dGNsb2NrKCk7CiAjZW5kaWYKIApAQCAtMTc1OCw4ICsxNzU4LDkgQEAgVHJhbnNsYXRpb25CbG9j ayAqdGJfZ2VuX2NvZGUoQ1BVU3RhdGUgKmNwdSwKICAgICB9CiAKICNpZmRlZiBDT05GSUdfUFJP RklMRVIKLSAgICBhdG9taWNfc2V0KCZwcm9mLT50Yl9jb3VudCwgcHJvZi0+dGJfY291bnQgKyAx KTsKLSAgICBhdG9taWNfc2V0KCZwcm9mLT5pbnRlcm1fdGltZSwgcHJvZi0+aW50ZXJtX3RpbWUg KyBwcm9maWxlX2dldGNsb2NrKCkgLSB0aSk7CisgICAgcWVtdV9hdG9taWNfc2V0KCZwcm9mLT50 Yl9jb3VudCwgcHJvZi0+dGJfY291bnQgKyAxKTsKKyAgICBxZW11X2F0b21pY19zZXQoJnByb2Yt PmludGVybV90aW1lLAorICAgICAgICAgICAgICAgICAgICBwcm9mLT5pbnRlcm1fdGltZSArIHBy b2ZpbGVfZ2V0Y2xvY2soKSAtIHRpKTsKICAgICB0aSA9IHByb2ZpbGVfZ2V0Y2xvY2soKTsKICNl bmRpZgogCkBAIC0xODA0LDEwICsxODA1LDExIEBAIFRyYW5zbGF0aW9uQmxvY2sgKnRiX2dlbl9j b2RlKENQVVN0YXRlICpjcHUsCiAgICAgdGItPnRjLnNpemUgPSBnZW5fY29kZV9zaXplOwogCiAj aWZkZWYgQ09ORklHX1BST0ZJTEVSCi0gICAgYXRvbWljX3NldCgmcHJvZi0+Y29kZV90aW1lLCBw cm9mLT5jb2RlX3RpbWUgKyBwcm9maWxlX2dldGNsb2NrKCkgLSB0aSk7Ci0gICAgYXRvbWljX3Nl dCgmcHJvZi0+Y29kZV9pbl9sZW4sIHByb2YtPmNvZGVfaW5fbGVuICsgdGItPnNpemUpOwotICAg IGF0b21pY19zZXQoJnByb2YtPmNvZGVfb3V0X2xlbiwgcHJvZi0+Y29kZV9vdXRfbGVuICsgZ2Vu X2NvZGVfc2l6ZSk7Ci0gICAgYXRvbWljX3NldCgmcHJvZi0+c2VhcmNoX291dF9sZW4sIHByb2Yt PnNlYXJjaF9vdXRfbGVuICsgc2VhcmNoX3NpemUpOworICAgIHFlbXVfYXRvbWljX3NldCgmcHJv Zi0+Y29kZV90aW1lLAorICAgICAgICAgICAgICAgICAgICBwcm9mLT5jb2RlX3RpbWUgKyBwcm9m aWxlX2dldGNsb2NrKCkgLSB0aSk7CisgICAgcWVtdV9hdG9taWNfc2V0KCZwcm9mLT5jb2RlX2lu X2xlbiwgcHJvZi0+Y29kZV9pbl9sZW4gKyB0Yi0+c2l6ZSk7CisgICAgcWVtdV9hdG9taWNfc2V0 KCZwcm9mLT5jb2RlX291dF9sZW4sIHByb2YtPmNvZGVfb3V0X2xlbiArIGdlbl9jb2RlX3NpemUp OworICAgIHFlbXVfYXRvbWljX3NldCgmcHJvZi0+c2VhcmNoX291dF9sZW4sIHByb2YtPnNlYXJj aF9vdXRfbGVuICsgc2VhcmNoX3NpemUpOwogI2VuZGlmCiAKICNpZmRlZiBERUJVR19ESVNBUwpA QCAtMTg2OSw3ICsxODcxLDcgQEAgVHJhbnNsYXRpb25CbG9jayAqdGJfZ2VuX2NvZGUoQ1BVU3Rh dGUgKmNwdSwKICAgICB9CiAjZW5kaWYKIAotICAgIGF0b21pY19zZXQoJnRjZ19jdHgtPmNvZGVf Z2VuX3B0ciwgKHZvaWQgKikKKyAgICBxZW11X2F0b21pY19zZXQoJnRjZ19jdHgtPmNvZGVfZ2Vu X3B0ciwgKHZvaWQgKikKICAgICAgICAgUk9VTkRfVVAoKHVpbnRwdHJfdClnZW5fY29kZV9idWYg KyBnZW5fY29kZV9zaXplICsgc2VhcmNoX3NpemUsCiAgICAgICAgICAgICAgICAgIENPREVfR0VO X0FMSUdOKSk7CiAKQEAgLTE5MDUsNyArMTkwNyw3IEBAIFRyYW5zbGF0aW9uQmxvY2sgKnRiX2dl bl9jb2RlKENQVVN0YXRlICpjcHUsCiAgICAgICAgIHVpbnRwdHJfdCBvcmlnX2FsaWduZWQgPSAo dWludHB0cl90KWdlbl9jb2RlX2J1ZjsKIAogICAgICAgICBvcmlnX2FsaWduZWQgLT0gUk9VTkRf VVAoc2l6ZW9mKCp0YiksIHFlbXVfaWNhY2hlX2xpbmVzaXplKTsKLSAgICAgICAgYXRvbWljX3Nl dCgmdGNnX2N0eC0+Y29kZV9nZW5fcHRyLCAodm9pZCAqKW9yaWdfYWxpZ25lZCk7CisgICAgICAg IHFlbXVfYXRvbWljX3NldCgmdGNnX2N0eC0+Y29kZV9nZW5fcHRyLCAodm9pZCAqKW9yaWdfYWxp Z25lZCk7CiAgICAgICAgIHRiX2Rlc3Ryb3kodGIpOwogICAgICAgICByZXR1cm4gZXhpc3Rpbmdf dGI7CiAgICAgfQpAQCAtMjI3Myw3ICsyMjc1LDcgQEAgc3RhdGljIHZvaWQgdGJfam1wX2NhY2hl X2NsZWFyX3BhZ2UoQ1BVU3RhdGUgKmNwdSwgdGFyZ2V0X3Vsb25nIHBhZ2VfYWRkcikKICAgICB1 bnNpZ25lZCBpbnQgaSwgaTAgPSB0Yl9qbXBfY2FjaGVfaGFzaF9wYWdlKHBhZ2VfYWRkcik7CiAK ICAgICBmb3IgKGkgPSAwOyBpIDwgVEJfSk1QX1BBR0VfU0laRTsgaSsrKSB7Ci0gICAgICAgIGF0 b21pY19zZXQoJmNwdS0+dGJfam1wX2NhY2hlW2kwICsgaV0sIE5VTEwpOworICAgICAgICBxZW11 X2F0b21pY19zZXQoJmNwdS0+dGJfam1wX2NhY2hlW2kwICsgaV0sIE5VTEwpOwogICAgIH0KIH0K IApAQCAtMjM5Myw3ICsyMzk1LDcgQEAgdm9pZCBkdW1wX2V4ZWNfaW5mbyh2b2lkKQogCiAgICAg cWVtdV9wcmludGYoIlxuU3RhdGlzdGljczpcbiIpOwogICAgIHFlbXVfcHJpbnRmKCJUQiBmbHVz aCBjb3VudCAgICAgICV1XG4iLAotICAgICAgICAgICAgICAgIGF0b21pY19yZWFkKCZ0Yl9jdHgu dGJfZmx1c2hfY291bnQpKTsKKyAgICAgICAgICAgICAgICBxZW11X2F0b21pY19yZWFkKCZ0Yl9j dHgudGJfZmx1c2hfY291bnQpKTsKICAgICBxZW11X3ByaW50ZigiVEIgaW52YWxpZGF0ZSBjb3Vu dCAlenVcbiIsCiAgICAgICAgICAgICAgICAgdGNnX3RiX3BoeXNfaW52YWxpZGF0ZV9jb3VudCgp KTsKIApAQCAtMjQxNSw3ICsyNDE3LDcgQEAgdm9pZCBjcHVfaW50ZXJydXB0KENQVVN0YXRlICpj cHUsIGludCBtYXNrKQogewogICAgIGdfYXNzZXJ0KHFlbXVfbXV0ZXhfaW90aHJlYWRfbG9ja2Vk KCkpOwogICAgIGNwdS0+aW50ZXJydXB0X3JlcXVlc3QgfD0gbWFzazsKLSAgICBhdG9taWNfc2V0 KCZjcHVfbmVnKGNwdSktPmljb3VudF9kZWNyLnUxNi5oaWdoLCAtMSk7CisgICAgcWVtdV9hdG9t aWNfc2V0KCZjcHVfbmVnKGNwdSktPmljb3VudF9kZWNyLnUxNi5oaWdoLCAtMSk7CiB9CiAKIC8q CmRpZmYgLS1naXQgYS9hdWRpby9qYWNrYXVkaW8uYyBiL2F1ZGlvL2phY2thdWRpby5jCmluZGV4 IDcyZWQ3YzQ5MjkuLmUwZTllMDA1YjcgMTAwNjQ0Ci0tLSBhL2F1ZGlvL2phY2thdWRpby5jCisr KyBiL2F1ZGlvL2phY2thdWRpby5jCkBAIC0xMDQsNyArMTA0LDcgQEAgc3RhdGljIHZvaWQgcWph Y2tfYnVmZmVyX2NyZWF0ZShRSmFja0J1ZmZlciAqYnVmZmVyLCBpbnQgY2hhbm5lbHMsIGludCBm cmFtZXMpCiBzdGF0aWMgdm9pZCBxamFja19idWZmZXJfY2xlYXIoUUphY2tCdWZmZXIgKmJ1ZmZl cikKIHsKICAgICBhc3NlcnQoYnVmZmVyLT5kYXRhKTsKLSAgICBhdG9taWNfc3RvcmVfcmVsZWFz ZSgmYnVmZmVyLT51c2VkLCAwKTsKKyAgICBxZW11X2F0b21pY19zdG9yZV9yZWxlYXNlKCZidWZm ZXItPnVzZWQsIDApOwogICAgIGJ1ZmZlci0+cnB0ciA9IDA7CiAgICAgYnVmZmVyLT53cHRyID0g MDsKIH0KQEAgLTEyOSw3ICsxMjksOCBAQCBzdGF0aWMgaW50IHFqYWNrX2J1ZmZlcl93cml0ZShR SmFja0J1ZmZlciAqYnVmZmVyLCBmbG9hdCAqZGF0YSwgaW50IHNpemUpCiAgICAgYXNzZXJ0KGJ1 ZmZlci0+ZGF0YSk7CiAgICAgY29uc3QgaW50IHNhbXBsZXMgPSBzaXplIC8gc2l6ZW9mKGZsb2F0 KTsKICAgICBpbnQgZnJhbWVzICAgICAgICA9IHNhbXBsZXMgLyBidWZmZXItPmNoYW5uZWxzOwot ICAgIGNvbnN0IGludCBhdmFpbCAgID0gYnVmZmVyLT5mcmFtZXMgLSBhdG9taWNfbG9hZF9hY3F1 aXJlKCZidWZmZXItPnVzZWQpOworICAgIGNvbnN0IGludCBhdmFpbCAgID0gYnVmZmVyLT5mcmFt ZXMgLQorICAgICAgICAgICAgICAgICAgICAgICAgcWVtdV9hdG9taWNfbG9hZF9hY3F1aXJlKCZi dWZmZXItPnVzZWQpOwogCiAgICAgaWYgKGZyYW1lcyA+IGF2YWlsKSB7CiAgICAgICAgIGZyYW1l cyA9IGF2YWlsOwpAQCAtMTUzLDcgKzE1NCw3IEBAIHN0YXRpYyBpbnQgcWphY2tfYnVmZmVyX3dy aXRlKFFKYWNrQnVmZmVyICpidWZmZXIsIGZsb2F0ICpkYXRhLCBpbnQgc2l6ZSkKIAogICAgIGJ1 ZmZlci0+d3B0ciA9IHdwdHI7CiAKLSAgICBhdG9taWNfYWRkKCZidWZmZXItPnVzZWQsIGZyYW1l cyk7CisgICAgcWVtdV9hdG9taWNfYWRkKCZidWZmZXItPnVzZWQsIGZyYW1lcyk7CiAgICAgcmV0 dXJuIGZyYW1lcyAqIGJ1ZmZlci0+Y2hhbm5lbHMgKiBzaXplb2YoZmxvYXQpOwogfTsKIApAQCAt MTYxLDcgKzE2Miw4IEBAIHN0YXRpYyBpbnQgcWphY2tfYnVmZmVyX3dyaXRlKFFKYWNrQnVmZmVy ICpidWZmZXIsIGZsb2F0ICpkYXRhLCBpbnQgc2l6ZSkKIHN0YXRpYyBpbnQgcWphY2tfYnVmZmVy X3dyaXRlX2woUUphY2tCdWZmZXIgKmJ1ZmZlciwgZmxvYXQgKipkZXN0LCBpbnQgZnJhbWVzKQog ewogICAgIGFzc2VydChidWZmZXItPmRhdGEpOwotICAgIGNvbnN0IGludCBhdmFpbCAgID0gYnVm ZmVyLT5mcmFtZXMgLSBhdG9taWNfbG9hZF9hY3F1aXJlKCZidWZmZXItPnVzZWQpOworICAgIGNv bnN0IGludCBhdmFpbCAgID0gYnVmZmVyLT5mcmFtZXMgLQorICAgICAgICAgICAgICAgICAgICAg ICAgcWVtdV9hdG9taWNfbG9hZF9hY3F1aXJlKCZidWZmZXItPnVzZWQpOwogICAgIGludCB3cHRy ID0gYnVmZmVyLT53cHRyOwogCiAgICAgaWYgKGZyYW1lcyA+IGF2YWlsKSB7CkBAIC0xODUsNyAr MTg3LDcgQEAgc3RhdGljIGludCBxamFja19idWZmZXJfd3JpdGVfbChRSmFja0J1ZmZlciAqYnVm ZmVyLCBmbG9hdCAqKmRlc3QsIGludCBmcmFtZXMpCiAgICAgfQogICAgIGJ1ZmZlci0+d3B0ciA9 IHdwdHI7CiAKLSAgICBhdG9taWNfYWRkKCZidWZmZXItPnVzZWQsIGZyYW1lcyk7CisgICAgcWVt dV9hdG9taWNfYWRkKCZidWZmZXItPnVzZWQsIGZyYW1lcyk7CiAgICAgcmV0dXJuIGZyYW1lczsK IH0KIApAQCAtMTk1LDcgKzE5Nyw3IEBAIHN0YXRpYyBpbnQgcWphY2tfYnVmZmVyX3JlYWQoUUph Y2tCdWZmZXIgKmJ1ZmZlciwgZmxvYXQgKmRlc3QsIGludCBzaXplKQogICAgIGFzc2VydChidWZm ZXItPmRhdGEpOwogICAgIGNvbnN0IGludCBzYW1wbGVzID0gc2l6ZSAvIHNpemVvZihmbG9hdCk7 CiAgICAgaW50IGZyYW1lcyAgICAgICAgPSBzYW1wbGVzIC8gYnVmZmVyLT5jaGFubmVsczsKLSAg ICBjb25zdCBpbnQgYXZhaWwgICA9IGF0b21pY19sb2FkX2FjcXVpcmUoJmJ1ZmZlci0+dXNlZCk7 CisgICAgY29uc3QgaW50IGF2YWlsICAgPSBxZW11X2F0b21pY19sb2FkX2FjcXVpcmUoJmJ1ZmZl ci0+dXNlZCk7CiAKICAgICBpZiAoZnJhbWVzID4gYXZhaWwpIHsKICAgICAgICAgZnJhbWVzID0g YXZhaWw7CkBAIC0yMTksNyArMjIxLDcgQEAgc3RhdGljIGludCBxamFja19idWZmZXJfcmVhZChR SmFja0J1ZmZlciAqYnVmZmVyLCBmbG9hdCAqZGVzdCwgaW50IHNpemUpCiAKICAgICBidWZmZXIt PnJwdHIgPSBycHRyOwogCi0gICAgYXRvbWljX3N1YigmYnVmZmVyLT51c2VkLCBmcmFtZXMpOwor ICAgIHFlbXVfYXRvbWljX3N1YigmYnVmZmVyLT51c2VkLCBmcmFtZXMpOwogICAgIHJldHVybiBm cmFtZXMgKiBidWZmZXItPmNoYW5uZWxzICogc2l6ZW9mKGZsb2F0KTsKIH0KIApAQCAtMjI4LDcg KzIzMCw3IEBAIHN0YXRpYyBpbnQgcWphY2tfYnVmZmVyX3JlYWRfbChRSmFja0J1ZmZlciAqYnVm ZmVyLCBmbG9hdCAqKmRlc3QsIGludCBmcmFtZXMpCiB7CiAgICAgYXNzZXJ0KGJ1ZmZlci0+ZGF0 YSk7CiAgICAgaW50IGNvcHkgICAgICAgPSBmcmFtZXM7Ci0gICAgY29uc3QgaW50IHVzZWQgPSBh dG9taWNfbG9hZF9hY3F1aXJlKCZidWZmZXItPnVzZWQpOworICAgIGNvbnN0IGludCB1c2VkID0g cWVtdV9hdG9taWNfbG9hZF9hY3F1aXJlKCZidWZmZXItPnVzZWQpOwogICAgIGludCBycHRyICAg ICAgID0gYnVmZmVyLT5ycHRyOwogCiAgICAgaWYgKGNvcHkgPiB1c2VkKSB7CkBAIC0yNTIsNyAr MjU0LDcgQEAgc3RhdGljIGludCBxamFja19idWZmZXJfcmVhZF9sKFFKYWNrQnVmZmVyICpidWZm ZXIsIGZsb2F0ICoqZGVzdCwgaW50IGZyYW1lcykKICAgICB9CiAgICAgYnVmZmVyLT5ycHRyID0g cnB0cjsKIAotICAgIGF0b21pY19zdWIoJmJ1ZmZlci0+dXNlZCwgY29weSk7CisgICAgcWVtdV9h dG9taWNfc3ViKCZidWZmZXItPnVzZWQsIGNvcHkpOwogICAgIHJldHVybiBjb3B5OwogfQogCmRp ZmYgLS1naXQgYS9ibG9jay5jIGIvYmxvY2suYwppbmRleCA5NTM4YWY0ODg0Li41NDk4N2IzYWQ1 IDEwMDY0NAotLS0gYS9ibG9jay5jCisrKyBiL2Jsb2NrLmMKQEAgLTE2OTQsNyArMTY5NCw3IEBA IHN0YXRpYyBpbnQgYmRydl9vcGVuX2NvbW1vbihCbG9ja0RyaXZlclN0YXRlICpicywgQmxvY2tC YWNrZW5kICpmaWxlLAogICAgIH0KIAogICAgIC8qIGJkcnZfbmV3KCkgYW5kIGJkcnZfY2xvc2Uo KSBtYWtlIGl0IHNvICovCi0gICAgYXNzZXJ0KGF0b21pY19yZWFkKCZicy0+Y29weV9vbl9yZWFk KSA9PSAwKTsKKyAgICBhc3NlcnQocWVtdV9hdG9taWNfcmVhZCgmYnMtPmNvcHlfb25fcmVhZCkg PT0gMCk7CiAKICAgICBpZiAoYnMtPm9wZW5fZmxhZ3MgJiBCRFJWX09fQ09QWV9PTl9SRUFEKSB7 CiAgICAgICAgIGlmICghYnMtPnJlYWRfb25seSkgewpAQCAtNDQzNiw3ICs0NDM2LDcgQEAgc3Rh dGljIHZvaWQgYmRydl9jbG9zZShCbG9ja0RyaXZlclN0YXRlICpicykKICAgICBicy0+ZmlsZSA9 IE5VTEw7CiAgICAgZ19mcmVlKGJzLT5vcGFxdWUpOwogICAgIGJzLT5vcGFxdWUgPSBOVUxMOwot ICAgIGF0b21pY19zZXQoJmJzLT5jb3B5X29uX3JlYWQsIDApOworICAgIHFlbXVfYXRvbWljX3Nl dCgmYnMtPmNvcHlfb25fcmVhZCwgMCk7CiAgICAgYnMtPmJhY2tpbmdfZmlsZVswXSA9ICdcMCc7 CiAgICAgYnMtPmJhY2tpbmdfZm9ybWF0WzBdID0gJ1wwJzsKICAgICBicy0+dG90YWxfc2VjdG9y cyA9IDA7CmRpZmYgLS1naXQgYS9ibG9jay9ibG9jay1iYWNrZW5kLmMgYi9ibG9jay9ibG9jay1i YWNrZW5kLmMKaW5kZXggMjRkZDA2NzBkMS4uMDUzOTAyMDlhNiAxMDA2NDQKLS0tIGEvYmxvY2sv YmxvY2stYmFja2VuZC5jCisrKyBiL2Jsb2NrL2Jsb2NrLWJhY2tlbmQuYwpAQCAtMTM1MywxMiAr MTM1MywxMiBAQCBpbnQgYmxrX21ha2VfemVybyhCbG9ja0JhY2tlbmQgKmJsaywgQmRydlJlcXVl c3RGbGFncyBmbGFncykKIAogdm9pZCBibGtfaW5jX2luX2ZsaWdodChCbG9ja0JhY2tlbmQgKmJs aykKIHsKLSAgICBhdG9taWNfaW5jKCZibGstPmluX2ZsaWdodCk7CisgICAgcWVtdV9hdG9taWNf aW5jKCZibGstPmluX2ZsaWdodCk7CiB9CiAKIHZvaWQgYmxrX2RlY19pbl9mbGlnaHQoQmxvY2tC YWNrZW5kICpibGspCiB7Ci0gICAgYXRvbWljX2RlYygmYmxrLT5pbl9mbGlnaHQpOworICAgIHFl bXVfYXRvbWljX2RlYygmYmxrLT5pbl9mbGlnaHQpOwogICAgIGFpb193YWl0X2tpY2soKTsKIH0K IApAQCAtMTcyMCw3ICsxNzIwLDcgQEAgdm9pZCBibGtfZHJhaW4oQmxvY2tCYWNrZW5kICpibGsp CiAKICAgICAvKiBXZSBtYXkgaGF2ZSAtRU5PTUVESVVNIGNvbXBsZXRpb25zIGluIGZsaWdodCAq LwogICAgIEFJT19XQUlUX1dISUxFKGJsa19nZXRfYWlvX2NvbnRleHQoYmxrKSwKLSAgICAgICAg ICAgICAgICAgICBhdG9taWNfbWJfcmVhZCgmYmxrLT5pbl9mbGlnaHQpID4gMCk7CisgICAgICAg ICAgICAgICAgICAgcWVtdV9hdG9taWNfbWJfcmVhZCgmYmxrLT5pbl9mbGlnaHQpID4gMCk7CiAK ICAgICBpZiAoYnMpIHsKICAgICAgICAgYmRydl9kcmFpbmVkX2VuZChicyk7CkBAIC0xNzM5LDcg KzE3MzksNyBAQCB2b2lkIGJsa19kcmFpbl9hbGwodm9pZCkKICAgICAgICAgYWlvX2NvbnRleHRf YWNxdWlyZShjdHgpOwogCiAgICAgICAgIC8qIFdlIG1heSBoYXZlIC1FTk9NRURJVU0gY29tcGxl dGlvbnMgaW4gZmxpZ2h0ICovCi0gICAgICAgIEFJT19XQUlUX1dISUxFKGN0eCwgYXRvbWljX21i X3JlYWQoJmJsay0+aW5fZmxpZ2h0KSA+IDApOworICAgICAgICBBSU9fV0FJVF9XSElMRShjdHgs IHFlbXVfYXRvbWljX21iX3JlYWQoJmJsay0+aW5fZmxpZ2h0KSA+IDApOwogCiAgICAgICAgIGFp b19jb250ZXh0X3JlbGVhc2UoY3R4KTsKICAgICB9CkBAIC0yMzQ2LDYgKzIzNDYsNyBAQCB2b2lk IGJsa19pb19saW1pdHNfdXBkYXRlX2dyb3VwKEJsb2NrQmFja2VuZCAqYmxrLCBjb25zdCBjaGFy ICpncm91cCkKIHN0YXRpYyB2b2lkIGJsa19yb290X2RyYWluZWRfYmVnaW4oQmRydkNoaWxkICpj aGlsZCkKIHsKICAgICBCbG9ja0JhY2tlbmQgKmJsayA9IGNoaWxkLT5vcGFxdWU7CisgICAgVGhy b3R0bGVHcm91cE1lbWJlciAqdGdtID0gJmJsay0+cHVibGljLnRocm90dGxlX2dyb3VwX21lbWJl cjsKIAogICAgIGlmICgrK2Jsay0+cXVpZXNjZV9jb3VudGVyID09IDEpIHsKICAgICAgICAgaWYg KGJsay0+ZGV2X29wcyAmJiBibGstPmRldl9vcHMtPmRyYWluZWRfYmVnaW4pIHsKQEAgLTIzNTYs OCArMjM1Nyw4IEBAIHN0YXRpYyB2b2lkIGJsa19yb290X2RyYWluZWRfYmVnaW4oQmRydkNoaWxk ICpjaGlsZCkKICAgICAvKiBOb3RlIHRoYXQgYmxrLT5yb290IG1heSBub3QgYmUgYWNjZXNzaWJs ZSBoZXJlIHlldCBpZiB3ZSBhcmUganVzdAogICAgICAqIGF0dGFjaGluZyB0byBhIEJsb2NrRHJp dmVyU3RhdGUgdGhhdCBpcyBkcmFpbmVkLiBVc2UgY2hpbGQgaW5zdGVhZC4gKi8KIAotICAgIGlm IChhdG9taWNfZmV0Y2hfaW5jKCZibGstPnB1YmxpYy50aHJvdHRsZV9ncm91cF9tZW1iZXIuaW9f bGltaXRzX2Rpc2FibGVkKSA9PSAwKSB7Ci0gICAgICAgIHRocm90dGxlX2dyb3VwX3Jlc3RhcnRf dGdtKCZibGstPnB1YmxpYy50aHJvdHRsZV9ncm91cF9tZW1iZXIpOworICAgIGlmIChxZW11X2F0 b21pY19mZXRjaF9pbmMoJnRnbS0+aW9fbGltaXRzX2Rpc2FibGVkKSA9PSAwKSB7CisgICAgICAg IHRocm90dGxlX2dyb3VwX3Jlc3RhcnRfdGdtKHRnbSk7CiAgICAgfQogfQogCkBAIC0yMzc0LDcg KzIzNzUsNyBAQCBzdGF0aWMgdm9pZCBibGtfcm9vdF9kcmFpbmVkX2VuZChCZHJ2Q2hpbGQgKmNo aWxkLCBpbnQgKmRyYWluZWRfZW5kX2NvdW50ZXIpCiAgICAgYXNzZXJ0KGJsay0+cXVpZXNjZV9j b3VudGVyKTsKIAogICAgIGFzc2VydChibGstPnB1YmxpYy50aHJvdHRsZV9ncm91cF9tZW1iZXIu aW9fbGltaXRzX2Rpc2FibGVkKTsKLSAgICBhdG9taWNfZGVjKCZibGstPnB1YmxpYy50aHJvdHRs ZV9ncm91cF9tZW1iZXIuaW9fbGltaXRzX2Rpc2FibGVkKTsKKyAgICBxZW11X2F0b21pY19kZWMo JmJsay0+cHVibGljLnRocm90dGxlX2dyb3VwX21lbWJlci5pb19saW1pdHNfZGlzYWJsZWQpOwog CiAgICAgaWYgKC0tYmxrLT5xdWllc2NlX2NvdW50ZXIgPT0gMCkgewogICAgICAgICBpZiAoYmxr LT5kZXZfb3BzICYmIGJsay0+ZGV2X29wcy0+ZHJhaW5lZF9lbmQpIHsKZGlmZiAtLWdpdCBhL2Js b2NrL2lvLmMgYi9ibG9jay9pby5jCmluZGV4IGEyMzg5YmIzOGMuLjU4YTE1MmVlNTkgMTAwNjQ0 Ci0tLSBhL2Jsb2NrL2lvLmMKKysrIGIvYmxvY2svaW8uYwpAQCAtNjksNyArNjksNyBAQCB2b2lk IGJkcnZfcGFyZW50X2RyYWluZWRfZW5kX3NpbmdsZShCZHJ2Q2hpbGQgKmMpCiB7CiAgICAgaW50 IGRyYWluZWRfZW5kX2NvdW50ZXIgPSAwOwogICAgIGJkcnZfcGFyZW50X2RyYWluZWRfZW5kX3Np bmdsZV9ub19wb2xsKGMsICZkcmFpbmVkX2VuZF9jb3VudGVyKTsKLSAgICBCRFJWX1BPTExfV0hJ TEUoYy0+YnMsIGF0b21pY19yZWFkKCZkcmFpbmVkX2VuZF9jb3VudGVyKSA+IDApOworICAgIEJE UlZfUE9MTF9XSElMRShjLT5icywgcWVtdV9hdG9taWNfcmVhZCgmZHJhaW5lZF9lbmRfY291bnRl cikgPiAwKTsKIH0KIAogc3RhdGljIHZvaWQgYmRydl9wYXJlbnRfZHJhaW5lZF9lbmQoQmxvY2tE cml2ZXJTdGF0ZSAqYnMsIEJkcnZDaGlsZCAqaWdub3JlLApAQCAtMTg2LDEyICsxODYsMTIgQEAg dm9pZCBiZHJ2X3JlZnJlc2hfbGltaXRzKEJsb2NrRHJpdmVyU3RhdGUgKmJzLCBFcnJvciAqKmVy cnApCiAgKi8KIHZvaWQgYmRydl9lbmFibGVfY29weV9vbl9yZWFkKEJsb2NrRHJpdmVyU3RhdGUg KmJzKQogewotICAgIGF0b21pY19pbmMoJmJzLT5jb3B5X29uX3JlYWQpOworICAgIHFlbXVfYXRv bWljX2luYygmYnMtPmNvcHlfb25fcmVhZCk7CiB9CiAKIHZvaWQgYmRydl9kaXNhYmxlX2NvcHlf b25fcmVhZChCbG9ja0RyaXZlclN0YXRlICpicykKIHsKLSAgICBpbnQgb2xkID0gYXRvbWljX2Zl dGNoX2RlYygmYnMtPmNvcHlfb25fcmVhZCk7CisgICAgaW50IG9sZCA9IHFlbXVfYXRvbWljX2Zl dGNoX2RlYygmYnMtPmNvcHlfb25fcmVhZCk7CiAgICAgYXNzZXJ0KG9sZCA+PSAxKTsKIH0KIApA QCAtMjE5LDkgKzIxOSw5IEBAIHN0YXRpYyB2b2lkIGNvcm91dGluZV9mbiBiZHJ2X2RyYWluX2lu dm9rZV9lbnRyeSh2b2lkICpvcGFxdWUpCiAgICAgfQogCiAgICAgLyogU2V0IGRhdGEtPmRvbmUg YW5kIGRlY3JlbWVudCBkcmFpbmVkX2VuZF9jb3VudGVyIGJlZm9yZSBiZHJ2X3dha2V1cCgpICov Ci0gICAgYXRvbWljX21iX3NldCgmZGF0YS0+ZG9uZSwgdHJ1ZSk7CisgICAgcWVtdV9hdG9taWNf bWJfc2V0KCZkYXRhLT5kb25lLCB0cnVlKTsKICAgICBpZiAoIWRhdGEtPmJlZ2luKSB7Ci0gICAg ICAgIGF0b21pY19kZWMoZGF0YS0+ZHJhaW5lZF9lbmRfY291bnRlcik7CisgICAgICAgIHFlbXVf YXRvbWljX2RlYyhkYXRhLT5kcmFpbmVkX2VuZF9jb3VudGVyKTsKICAgICB9CiAgICAgYmRydl9k ZWNfaW5fZmxpZ2h0KGJzKTsKIApAQCAtMjQ4LDcgKzI0OCw3IEBAIHN0YXRpYyB2b2lkIGJkcnZf ZHJhaW5faW52b2tlKEJsb2NrRHJpdmVyU3RhdGUgKmJzLCBib29sIGJlZ2luLAogICAgIH07CiAK ICAgICBpZiAoIWJlZ2luKSB7Ci0gICAgICAgIGF0b21pY19pbmMoZHJhaW5lZF9lbmRfY291bnRl cik7CisgICAgICAgIHFlbXVfYXRvbWljX2luYyhkcmFpbmVkX2VuZF9jb3VudGVyKTsKICAgICB9 CiAKICAgICAvKiBNYWtlIHN1cmUgdGhlIGRyaXZlciBjYWxsYmFjayBjb21wbGV0ZXMgZHVyaW5n IHRoZSBwb2xsaW5nIHBoYXNlIGZvcgpAQCAtMjY4LDcgKzI2OCw3IEBAIGJvb2wgYmRydl9kcmFp bl9wb2xsKEJsb2NrRHJpdmVyU3RhdGUgKmJzLCBib29sIHJlY3Vyc2l2ZSwKICAgICAgICAgcmV0 dXJuIHRydWU7CiAgICAgfQogCi0gICAgaWYgKGF0b21pY19yZWFkKCZicy0+aW5fZmxpZ2h0KSkg eworICAgIGlmIChxZW11X2F0b21pY19yZWFkKCZicy0+aW5fZmxpZ2h0KSkgewogICAgICAgICBy ZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTM4Miw3ICszODIsNyBAQCB2b2lkIGJkcnZfZG9fZHJh aW5lZF9iZWdpbl9xdWllc2NlKEJsb2NrRHJpdmVyU3RhdGUgKmJzLAogICAgIGFzc2VydCghcWVt dV9pbl9jb3JvdXRpbmUoKSk7CiAKICAgICAvKiBTdG9wIHRoaW5ncyBpbiBwYXJlbnQtdG8tY2hp bGQgb3JkZXIgKi8KLSAgICBpZiAoYXRvbWljX2ZldGNoX2luYygmYnMtPnF1aWVzY2VfY291bnRl cikgPT0gMCkgeworICAgIGlmIChxZW11X2F0b21pY19mZXRjaF9pbmMoJmJzLT5xdWllc2NlX2Nv dW50ZXIpID09IDApIHsKICAgICAgICAgYWlvX2Rpc2FibGVfZXh0ZXJuYWwoYmRydl9nZXRfYWlv X2NvbnRleHQoYnMpKTsKICAgICB9CiAKQEAgLTQ3Myw3ICs0NzMsNyBAQCBzdGF0aWMgdm9pZCBi ZHJ2X2RvX2RyYWluZWRfZW5kKEJsb2NrRHJpdmVyU3RhdGUgKmJzLCBib29sIHJlY3Vyc2l2ZSwK ICAgICBiZHJ2X3BhcmVudF9kcmFpbmVkX2VuZChicywgcGFyZW50LCBpZ25vcmVfYmRzX3BhcmVu dHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhaW5lZF9lbmRfY291bnRlcik7CiAK LSAgICBvbGRfcXVpZXNjZV9jb3VudGVyID0gYXRvbWljX2ZldGNoX2RlYygmYnMtPnF1aWVzY2Vf Y291bnRlcik7CisgICAgb2xkX3F1aWVzY2VfY291bnRlciA9IHFlbXVfYXRvbWljX2ZldGNoX2Rl YygmYnMtPnF1aWVzY2VfY291bnRlcik7CiAgICAgaWYgKG9sZF9xdWllc2NlX2NvdW50ZXIgPT0g MSkgewogICAgICAgICBhaW9fZW5hYmxlX2V4dGVybmFsKGJkcnZfZ2V0X2Fpb19jb250ZXh0KGJz KSk7CiAgICAgfQpAQCAtNDkyLDcgKzQ5Miw3IEBAIHZvaWQgYmRydl9kcmFpbmVkX2VuZChCbG9j a0RyaXZlclN0YXRlICpicykKIHsKICAgICBpbnQgZHJhaW5lZF9lbmRfY291bnRlciA9IDA7CiAg ICAgYmRydl9kb19kcmFpbmVkX2VuZChicywgZmFsc2UsIE5VTEwsIGZhbHNlLCAmZHJhaW5lZF9l bmRfY291bnRlcik7Ci0gICAgQkRSVl9QT0xMX1dISUxFKGJzLCBhdG9taWNfcmVhZCgmZHJhaW5l ZF9lbmRfY291bnRlcikgPiAwKTsKKyAgICBCRFJWX1BPTExfV0hJTEUoYnMsIHFlbXVfYXRvbWlj X3JlYWQoJmRyYWluZWRfZW5kX2NvdW50ZXIpID4gMCk7CiB9CiAKIHZvaWQgYmRydl9kcmFpbmVk X2VuZF9ub19wb2xsKEJsb2NrRHJpdmVyU3RhdGUgKmJzLCBpbnQgKmRyYWluZWRfZW5kX2NvdW50 ZXIpCkBAIC01MDQsNyArNTA0LDcgQEAgdm9pZCBiZHJ2X3N1YnRyZWVfZHJhaW5lZF9lbmQoQmxv Y2tEcml2ZXJTdGF0ZSAqYnMpCiB7CiAgICAgaW50IGRyYWluZWRfZW5kX2NvdW50ZXIgPSAwOwog ICAgIGJkcnZfZG9fZHJhaW5lZF9lbmQoYnMsIHRydWUsIE5VTEwsIGZhbHNlLCAmZHJhaW5lZF9l bmRfY291bnRlcik7Ci0gICAgQkRSVl9QT0xMX1dISUxFKGJzLCBhdG9taWNfcmVhZCgmZHJhaW5l ZF9lbmRfY291bnRlcikgPiAwKTsKKyAgICBCRFJWX1BPTExfV0hJTEUoYnMsIHFlbXVfYXRvbWlj X3JlYWQoJmRyYWluZWRfZW5kX2NvdW50ZXIpID4gMCk7CiB9CiAKIHZvaWQgYmRydl9hcHBseV9z dWJ0cmVlX2RyYWluKEJkcnZDaGlsZCAqY2hpbGQsIEJsb2NrRHJpdmVyU3RhdGUgKm5ld19wYXJl bnQpCkBAIC01MjYsNyArNTI2LDcgQEAgdm9pZCBiZHJ2X3VuYXBwbHlfc3VidHJlZV9kcmFpbihC ZHJ2Q2hpbGQgKmNoaWxkLCBCbG9ja0RyaXZlclN0YXRlICpvbGRfcGFyZW50KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZkcmFpbmVkX2VuZF9jb3VudGVyKTsKICAgICB9CiAKLSAgICBC RFJWX1BPTExfV0hJTEUoY2hpbGQtPmJzLCBhdG9taWNfcmVhZCgmZHJhaW5lZF9lbmRfY291bnRl cikgPiAwKTsKKyAgICBCRFJWX1BPTExfV0hJTEUoY2hpbGQtPmJzLCBxZW11X2F0b21pY19yZWFk KCZkcmFpbmVkX2VuZF9jb3VudGVyKSA+IDApOwogfQogCiAvKgpAQCAtNTUzLDcgKzU1Myw3IEBA IHN0YXRpYyB2b2lkIGJkcnZfZHJhaW5fYXNzZXJ0X2lkbGUoQmxvY2tEcml2ZXJTdGF0ZSAqYnMp CiB7CiAgICAgQmRydkNoaWxkICpjaGlsZCwgKm5leHQ7CiAKLSAgICBhc3NlcnQoYXRvbWljX3Jl YWQoJmJzLT5pbl9mbGlnaHQpID09IDApOworICAgIGFzc2VydChxZW11X2F0b21pY19yZWFkKCZi cy0+aW5fZmxpZ2h0KSA9PSAwKTsKICAgICBRTElTVF9GT1JFQUNIX1NBRkUoY2hpbGQsICZicy0+ Y2hpbGRyZW4sIG5leHQsIG5leHQpIHsKICAgICAgICAgYmRydl9kcmFpbl9hc3NlcnRfaWRsZShj aGlsZC0+YnMpOwogICAgIH0KQEAgLTY1NSw3ICs2NTUsNyBAQCB2b2lkIGJkcnZfZHJhaW5fYWxs X2VuZCh2b2lkKQogICAgIH0KIAogICAgIGFzc2VydChxZW11X2dldF9jdXJyZW50X2Fpb19jb250 ZXh0KCkgPT0gcWVtdV9nZXRfYWlvX2NvbnRleHQoKSk7Ci0gICAgQUlPX1dBSVRfV0hJTEUoTlVM TCwgYXRvbWljX3JlYWQoJmRyYWluZWRfZW5kX2NvdW50ZXIpID4gMCk7CisgICAgQUlPX1dBSVRf V0hJTEUoTlVMTCwgcWVtdV9hdG9taWNfcmVhZCgmZHJhaW5lZF9lbmRfY291bnRlcikgPiAwKTsK IAogICAgIGFzc2VydChiZHJ2X2RyYWluX2FsbF9jb3VudCA+IDApOwogICAgIGJkcnZfZHJhaW5f YWxsX2NvdW50LS07CkBAIC02NzUsNyArNjc1LDcgQEAgdm9pZCBiZHJ2X2RyYWluX2FsbCh2b2lk KQogc3RhdGljIHZvaWQgdHJhY2tlZF9yZXF1ZXN0X2VuZChCZHJ2VHJhY2tlZFJlcXVlc3QgKnJl cSkKIHsKICAgICBpZiAocmVxLT5zZXJpYWxpc2luZykgewotICAgICAgICBhdG9taWNfZGVjKCZy ZXEtPmJzLT5zZXJpYWxpc2luZ19pbl9mbGlnaHQpOworICAgICAgICBxZW11X2F0b21pY19kZWMo JnJlcS0+YnMtPnNlcmlhbGlzaW5nX2luX2ZsaWdodCk7CiAgICAgfQogCiAgICAgcWVtdV9jb19t dXRleF9sb2NrKCZyZXEtPmJzLT5yZXFzX2xvY2spOwpAQCAtNzc3LDcgKzc3Nyw3IEBAIGJvb2wg YmRydl9tYXJrX3JlcXVlc3Rfc2VyaWFsaXNpbmcoQmRydlRyYWNrZWRSZXF1ZXN0ICpyZXEsIHVp bnQ2NF90IGFsaWduKQogCiAgICAgcWVtdV9jb19tdXRleF9sb2NrKCZicy0+cmVxc19sb2NrKTsK ICAgICBpZiAoIXJlcS0+c2VyaWFsaXNpbmcpIHsKLSAgICAgICAgYXRvbWljX2luYygmcmVxLT5i cy0+c2VyaWFsaXNpbmdfaW5fZmxpZ2h0KTsKKyAgICAgICAgcWVtdV9hdG9taWNfaW5jKCZyZXEt PmJzLT5zZXJpYWxpc2luZ19pbl9mbGlnaHQpOwogICAgICAgICByZXEtPnNlcmlhbGlzaW5nID0g dHJ1ZTsKICAgICB9CiAKQEAgLTg0MSw3ICs4NDEsNyBAQCBzdGF0aWMgaW50IGJkcnZfZ2V0X2Ns dXN0ZXJfc2l6ZShCbG9ja0RyaXZlclN0YXRlICpicykKIAogdm9pZCBiZHJ2X2luY19pbl9mbGln aHQoQmxvY2tEcml2ZXJTdGF0ZSAqYnMpCiB7Ci0gICAgYXRvbWljX2luYygmYnMtPmluX2ZsaWdo dCk7CisgICAgcWVtdV9hdG9taWNfaW5jKCZicy0+aW5fZmxpZ2h0KTsKIH0KIAogdm9pZCBiZHJ2 X3dha2V1cChCbG9ja0RyaXZlclN0YXRlICpicykKQEAgLTg1MSw3ICs4NTEsNyBAQCB2b2lkIGJk cnZfd2FrZXVwKEJsb2NrRHJpdmVyU3RhdGUgKmJzKQogCiB2b2lkIGJkcnZfZGVjX2luX2ZsaWdo dChCbG9ja0RyaXZlclN0YXRlICpicykKIHsKLSAgICBhdG9taWNfZGVjKCZicy0+aW5fZmxpZ2h0 KTsKKyAgICBxZW11X2F0b21pY19kZWMoJmJzLT5pbl9mbGlnaHQpOwogICAgIGJkcnZfd2FrZXVw KGJzKTsKIH0KIApAQCAtODYwLDcgKzg2MCw3IEBAIHN0YXRpYyBib29sIGNvcm91dGluZV9mbiBi ZHJ2X3dhaXRfc2VyaWFsaXNpbmdfcmVxdWVzdHMoQmRydlRyYWNrZWRSZXF1ZXN0ICpzZWxmCiAg ICAgQmxvY2tEcml2ZXJTdGF0ZSAqYnMgPSBzZWxmLT5iczsKICAgICBib29sIHdhaXRlZCA9IGZh bHNlOwogCi0gICAgaWYgKCFhdG9taWNfcmVhZCgmYnMtPnNlcmlhbGlzaW5nX2luX2ZsaWdodCkp IHsKKyAgICBpZiAoIXFlbXVfYXRvbWljX3JlYWQoJmJzLT5zZXJpYWxpc2luZ19pbl9mbGlnaHQp KSB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTE3NDcsNyArMTc0Nyw3IEBA IGludCBjb3JvdXRpbmVfZm4gYmRydl9jb19wcmVhZHZfcGFydChCZHJ2Q2hpbGQgKmNoaWxkLAog ICAgIGJkcnZfaW5jX2luX2ZsaWdodChicyk7CiAKICAgICAvKiBEb24ndCBkbyBjb3B5LW9uLXJl YWQgaWYgd2UgcmVhZCBkYXRhIGJlZm9yZSB3cml0ZSBvcGVyYXRpb24gKi8KLSAgICBpZiAoYXRv bWljX3JlYWQoJmJzLT5jb3B5X29uX3JlYWQpKSB7CisgICAgaWYgKHFlbXVfYXRvbWljX3JlYWQo JmJzLT5jb3B5X29uX3JlYWQpKSB7CiAgICAgICAgIGZsYWdzIHw9IEJEUlZfUkVRX0NPUFlfT05f UkVBRDsKICAgICB9CiAKQEAgLTE5MzUsNyArMTkzNSw3IEBAIGJkcnZfY29fd3JpdGVfcmVxX2Zp bmlzaChCZHJ2Q2hpbGQgKmNoaWxkLCBpbnQ2NF90IG9mZnNldCwgdWludDY0X3QgYnl0ZXMsCiAg ICAgaW50NjRfdCBlbmRfc2VjdG9yID0gRElWX1JPVU5EX1VQKG9mZnNldCArIGJ5dGVzLCBCRFJW X1NFQ1RPUl9TSVpFKTsKICAgICBCbG9ja0RyaXZlclN0YXRlICpicyA9IGNoaWxkLT5iczsKIAot ICAgIGF0b21pY19pbmMoJmJzLT53cml0ZV9nZW4pOworICAgIHFlbXVfYXRvbWljX2luYygmYnMt PndyaXRlX2dlbik7CiAKICAgICAvKgogICAgICAqIERpc2NhcmQgY2Fubm90IGV4dGVuZCB0aGUg aW1hZ2UsIGJ1dCBpbiBlcnJvciBoYW5kbGluZyBjYXNlcywgc3VjaCBhcwpAQCAtMjc2OCw3ICsy NzY4LDcgQEAgaW50IGNvcm91dGluZV9mbiBiZHJ2X2NvX2ZsdXNoKEJsb2NrRHJpdmVyU3RhdGUg KmJzKQogICAgIH0KIAogICAgIHFlbXVfY29fbXV0ZXhfbG9jaygmYnMtPnJlcXNfbG9jayk7Ci0g ICAgY3VycmVudF9nZW4gPSBhdG9taWNfcmVhZCgmYnMtPndyaXRlX2dlbik7CisgICAgY3VycmVu dF9nZW4gPSBxZW11X2F0b21pY19yZWFkKCZicy0+d3JpdGVfZ2VuKTsKIAogICAgIC8qIFdhaXQg dW50aWwgYW55IHByZXZpb3VzIGZsdXNoZXMgYXJlIGNvbXBsZXRlZCAqLwogICAgIHdoaWxlIChi cy0+YWN0aXZlX2ZsdXNoX3JlcSkgewpAQCAtMzExNiw3ICszMTE2LDcgQEAgdm9pZCBiZHJ2X2lv X3BsdWcoQmxvY2tEcml2ZXJTdGF0ZSAqYnMpCiAgICAgICAgIGJkcnZfaW9fcGx1ZyhjaGlsZC0+ YnMpOwogICAgIH0KIAotICAgIGlmIChhdG9taWNfZmV0Y2hfaW5jKCZicy0+aW9fcGx1Z2dlZCkg PT0gMCkgeworICAgIGlmIChxZW11X2F0b21pY19mZXRjaF9pbmMoJmJzLT5pb19wbHVnZ2VkKSA9 PSAwKSB7CiAgICAgICAgIEJsb2NrRHJpdmVyICpkcnYgPSBicy0+ZHJ2OwogICAgICAgICBpZiAo ZHJ2ICYmIGRydi0+YmRydl9pb19wbHVnKSB7CiAgICAgICAgICAgICBkcnYtPmJkcnZfaW9fcGx1 Zyhicyk7CkBAIC0zMTI5LDcgKzMxMjksNyBAQCB2b2lkIGJkcnZfaW9fdW5wbHVnKEJsb2NrRHJp dmVyU3RhdGUgKmJzKQogICAgIEJkcnZDaGlsZCAqY2hpbGQ7CiAKICAgICBhc3NlcnQoYnMtPmlv X3BsdWdnZWQpOwotICAgIGlmIChhdG9taWNfZmV0Y2hfZGVjKCZicy0+aW9fcGx1Z2dlZCkgPT0g MSkgeworICAgIGlmIChxZW11X2F0b21pY19mZXRjaF9kZWMoJmJzLT5pb19wbHVnZ2VkKSA9PSAx KSB7CiAgICAgICAgIEJsb2NrRHJpdmVyICpkcnYgPSBicy0+ZHJ2OwogICAgICAgICBpZiAoZHJ2 ICYmIGRydi0+YmRydl9pb191bnBsdWcpIHsKICAgICAgICAgICAgIGRydi0+YmRydl9pb191bnBs dWcoYnMpOwpkaWZmIC0tZ2l0IGEvYmxvY2svbmZzLmMgYi9ibG9jay9uZnMuYwppbmRleCA2MWEy NDlhOWZjLi5kMjY2ZjkzZDhjIDEwMDY0NAotLS0gYS9ibG9jay9uZnMuYworKysgYi9ibG9jay9u ZnMuYwpAQCAtNzIxLDcgKzcyMSw3IEBAIG5mc19nZXRfYWxsb2NhdGVkX2ZpbGVfc2l6ZV9jYihp bnQgcmV0LCBzdHJ1Y3QgbmZzX2NvbnRleHQgKm5mcywgdm9pZCAqZGF0YSwKICAgICB9CiAKICAg ICAvKiBTZXQgdGFzay0+Y29tcGxldGUgYmVmb3JlIHJlYWRpbmcgYnMtPndha2V1cC4gICovCi0g ICAgYXRvbWljX21iX3NldCgmdGFzay0+Y29tcGxldGUsIDEpOworICAgIHFlbXVfYXRvbWljX21i X3NldCgmdGFzay0+Y29tcGxldGUsIDEpOwogICAgIGJkcnZfd2FrZXVwKHRhc2stPmJzKTsKIH0K IApkaWZmIC0tZ2l0IGEvYmxvY2svc2hlZXBkb2cuYyBiL2Jsb2NrL3NoZWVwZG9nLmMKaW5kZXgg Y2JiZWJjMWFhZi4uYjUzNTgzMDc5OSAxMDA2NDQKLS0tIGEvYmxvY2svc2hlZXBkb2cuYworKysg Yi9ibG9jay9zaGVlcGRvZy5jCkBAIC02NjUsNyArNjY1LDcgQEAgb3V0OgogICAgIHNyY28tPmNv ID0gTlVMTDsKICAgICBzcmNvLT5yZXQgPSByZXQ7CiAgICAgLyogU2V0IHNyY28tPmZpbmlzaGVk IGJlZm9yZSByZWFkaW5nIGJzLT53YWtldXAuICAqLwotICAgIGF0b21pY19tYl9zZXQoJnNyY28t PmZpbmlzaGVkLCB0cnVlKTsKKyAgICBxZW11X2F0b21pY19tYl9zZXQoJnNyY28tPmZpbmlzaGVk LCB0cnVlKTsKICAgICBpZiAoc3Jjby0+YnMpIHsKICAgICAgICAgYmRydl93YWtldXAoc3Jjby0+ YnMpOwogICAgIH0KZGlmZiAtLWdpdCBhL2Jsb2NrL3Rocm90dGxlLWdyb3Vwcy5jIGIvYmxvY2sv dGhyb3R0bGUtZ3JvdXBzLmMKaW5kZXggNGUyODM2NWQ4ZC4uOGQ4NGQ3Y2Y2MSAxMDA2NDQKLS0t IGEvYmxvY2svdGhyb3R0bGUtZ3JvdXBzLmMKKysrIGIvYmxvY2svdGhyb3R0bGUtZ3JvdXBzLmMK QEAgLTIyOCw3ICsyMjgsNyBAQCBzdGF0aWMgVGhyb3R0bGVHcm91cE1lbWJlciAqbmV4dF90aHJv dHRsZV90b2tlbihUaHJvdHRsZUdyb3VwTWVtYmVyICp0Z20sCiAgICAgICogaW1tZWRpYXRlbHkg aWYgaXQgaGFzIHBlbmRpbmcgcmVxdWVzdHMuIE90aGVyd2lzZSB3ZSBjb3VsZCBiZQogICAgICAq IGZvcmNpbmcgaXQgdG8gd2FpdCBmb3Igb3RoZXIgbWVtYmVyJ3MgdGhyb3R0bGVkIHJlcXVlc3Rz LiAqLwogICAgIGlmICh0Z21faGFzX3BlbmRpbmdfcmVxcyh0Z20sIGlzX3dyaXRlKSAmJgotICAg ICAgICBhdG9taWNfcmVhZCgmdGdtLT5pb19saW1pdHNfZGlzYWJsZWQpKSB7CisgICAgICAgIHFl bXVfYXRvbWljX3JlYWQoJnRnbS0+aW9fbGltaXRzX2Rpc2FibGVkKSkgewogICAgICAgICByZXR1 cm4gdGdtOwogICAgIH0KIApAQCAtMjcyLDcgKzI3Miw3IEBAIHN0YXRpYyBib29sIHRocm90dGxl X2dyb3VwX3NjaGVkdWxlX3RpbWVyKFRocm90dGxlR3JvdXBNZW1iZXIgKnRnbSwKICAgICBUaHJv dHRsZVRpbWVycyAqdHQgPSAmdGdtLT50aHJvdHRsZV90aW1lcnM7CiAgICAgYm9vbCBtdXN0X3dh aXQ7CiAKLSAgICBpZiAoYXRvbWljX3JlYWQoJnRnbS0+aW9fbGltaXRzX2Rpc2FibGVkKSkgewor ICAgIGlmIChxZW11X2F0b21pY19yZWFkKCZ0Z20tPmlvX2xpbWl0c19kaXNhYmxlZCkpIHsKICAg ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNDE3LDcgKzQxNyw3IEBAIHN0YXRpYyB2 b2lkIGNvcm91dGluZV9mbiB0aHJvdHRsZV9ncm91cF9yZXN0YXJ0X3F1ZXVlX2VudHJ5KHZvaWQg Km9wYXF1ZSkKIAogICAgIGdfZnJlZShkYXRhKTsKIAotICAgIGF0b21pY19kZWMoJnRnbS0+cmVz dGFydF9wZW5kaW5nKTsKKyAgICBxZW11X2F0b21pY19kZWMoJnRnbS0+cmVzdGFydF9wZW5kaW5n KTsKICAgICBhaW9fd2FpdF9raWNrKCk7CiB9CiAKQEAgLTQzNCw3ICs0MzQsNyBAQCBzdGF0aWMg dm9pZCB0aHJvdHRsZV9ncm91cF9yZXN0YXJ0X3F1ZXVlKFRocm90dGxlR3JvdXBNZW1iZXIgKnRn bSwgYm9vbCBpc193cml0ZQogICAgICAqIGJlIG5vIHRpbWVyIHBlbmRpbmcgb24gdGhpcyB0Z20g YXQgdGhpcyBwb2ludCAqLwogICAgIGFzc2VydCghdGltZXJfcGVuZGluZyh0Z20tPnRocm90dGxl X3RpbWVycy50aW1lcnNbaXNfd3JpdGVdKSk7CiAKLSAgICBhdG9taWNfaW5jKCZ0Z20tPnJlc3Rh cnRfcGVuZGluZyk7CisgICAgcWVtdV9hdG9taWNfaW5jKCZ0Z20tPnJlc3RhcnRfcGVuZGluZyk7 CiAKICAgICBjbyA9IHFlbXVfY29yb3V0aW5lX2NyZWF0ZSh0aHJvdHRsZV9ncm91cF9yZXN0YXJ0 X3F1ZXVlX2VudHJ5LCByZCk7CiAgICAgYWlvX2NvX2VudGVyKHRnbS0+YWlvX2NvbnRleHQsIGNv KTsKQEAgLTU0NCw3ICs1NDQsNyBAQCB2b2lkIHRocm90dGxlX2dyb3VwX3JlZ2lzdGVyX3RnbShU aHJvdHRsZUdyb3VwTWVtYmVyICp0Z20sCiAKICAgICB0Z20tPnRocm90dGxlX3N0YXRlID0gdHM7 CiAgICAgdGdtLT5haW9fY29udGV4dCA9IGN0eDsKLSAgICBhdG9taWNfc2V0KCZ0Z20tPnJlc3Rh cnRfcGVuZGluZywgMCk7CisgICAgcWVtdV9hdG9taWNfc2V0KCZ0Z20tPnJlc3RhcnRfcGVuZGlu ZywgMCk7CiAKICAgICBxZW11X211dGV4X2xvY2soJnRnLT5sb2NrKTsKICAgICAvKiBJZiB0aGUg VGhyb3R0bGVHcm91cCBpcyBuZXcgc2V0IHRoaXMgVGhyb3R0bGVHcm91cE1lbWJlciBhcyB0aGUg dG9rZW4gKi8KQEAgLTU5Miw3ICs1OTIsOCBAQCB2b2lkIHRocm90dGxlX2dyb3VwX3VucmVnaXN0 ZXJfdGdtKFRocm90dGxlR3JvdXBNZW1iZXIgKnRnbSkKICAgICB9CiAKICAgICAvKiBXYWl0IGZv ciB0aHJvdHRsZV9ncm91cF9yZXN0YXJ0X3F1ZXVlX2VudHJ5KCkgY29yb3V0aW5lcyB0byBmaW5p c2ggKi8KLSAgICBBSU9fV0FJVF9XSElMRSh0Z20tPmFpb19jb250ZXh0LCBhdG9taWNfcmVhZCgm dGdtLT5yZXN0YXJ0X3BlbmRpbmcpID4gMCk7CisgICAgQUlPX1dBSVRfV0hJTEUodGdtLT5haW9f Y29udGV4dCwKKyAgICAgICAgICAgICAgICAgICBxZW11X2F0b21pY19yZWFkKCZ0Z20tPnJlc3Rh cnRfcGVuZGluZykgPiAwKTsKIAogICAgIHFlbXVfbXV0ZXhfbG9jaygmdGctPmxvY2spOwogICAg IGZvciAoaSA9IDA7IGkgPCAyOyBpKyspIHsKZGlmZiAtLWdpdCBhL2Jsb2NrL3Rocm90dGxlLmMg Yi9ibG9jay90aHJvdHRsZS5jCmluZGV4IDlhMGYzODE0OWEuLjg3OWNkZTY1ZDcgMTAwNjQ0Ci0t LSBhL2Jsb2NrL3Rocm90dGxlLmMKKysrIGIvYmxvY2svdGhyb3R0bGUuYwpAQCAtMjE3LDcgKzIx Nyw3IEBAIHN0YXRpYyB2b2lkIHRocm90dGxlX3Jlb3Blbl9hYm9ydChCRFJWUmVvcGVuU3RhdGUg KnJlb3Blbl9zdGF0ZSkKIHN0YXRpYyB2b2lkIGNvcm91dGluZV9mbiB0aHJvdHRsZV9jb19kcmFp bl9iZWdpbihCbG9ja0RyaXZlclN0YXRlICpicykKIHsKICAgICBUaHJvdHRsZUdyb3VwTWVtYmVy ICp0Z20gPSBicy0+b3BhcXVlOwotICAgIGlmIChhdG9taWNfZmV0Y2hfaW5jKCZ0Z20tPmlvX2xp bWl0c19kaXNhYmxlZCkgPT0gMCkgeworICAgIGlmIChxZW11X2F0b21pY19mZXRjaF9pbmMoJnRn bS0+aW9fbGltaXRzX2Rpc2FibGVkKSA9PSAwKSB7CiAgICAgICAgIHRocm90dGxlX2dyb3VwX3Jl c3RhcnRfdGdtKHRnbSk7CiAgICAgfQogfQpAQCAtMjI2LDcgKzIyNiw3IEBAIHN0YXRpYyB2b2lk IGNvcm91dGluZV9mbiB0aHJvdHRsZV9jb19kcmFpbl9lbmQoQmxvY2tEcml2ZXJTdGF0ZSAqYnMp CiB7CiAgICAgVGhyb3R0bGVHcm91cE1lbWJlciAqdGdtID0gYnMtPm9wYXF1ZTsKICAgICBhc3Nl cnQodGdtLT5pb19saW1pdHNfZGlzYWJsZWQpOwotICAgIGF0b21pY19kZWMoJnRnbS0+aW9fbGlt aXRzX2Rpc2FibGVkKTsKKyAgICBxZW11X2F0b21pY19kZWMoJnRnbS0+aW9fbGltaXRzX2Rpc2Fi bGVkKTsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHRocm90dGxlX3N0cm9uZ19ydW50 aW1lX29wdHNbXSA9IHsKZGlmZiAtLWdpdCBhL2Jsb2NrZGV2LmMgYi9ibG9ja2Rldi5jCmluZGV4 IDdmMjU2MTA4MWUuLjZjNzJhYzQ2ZjQgMTAwNjQ0Ci0tLSBhL2Jsb2NrZGV2LmMKKysrIGIvYmxv Y2tkZXYuYwpAQCAtMTYwNCw3ICsxNjA0LDcgQEAgc3RhdGljIHZvaWQgZXh0ZXJuYWxfc25hcHNo b3RfY29tbWl0KEJsa0FjdGlvblN0YXRlICpjb21tb24pCiAgICAgLyogV2UgZG9uJ3QgbmVlZCAo b3Igd2FudCkgdG8gdXNlIHRoZSB0cmFuc2FjdGlvbmFsCiAgICAgICogYmRydl9yZW9wZW5fbXVs dGlwbGUoKSBhY3Jvc3MgYWxsIHRoZSBlbnRyaWVzIGF0IG9uY2UsIGJlY2F1c2Ugd2UKICAgICAg KiBkb24ndCB3YW50IHRvIGFib3J0IGFsbCBvZiB0aGVtIGlmIG9uZSBvZiB0aGVtIGZhaWxzIHRo ZSByZW9wZW4gKi8KLSAgICBpZiAoIWF0b21pY19yZWFkKCZzdGF0ZS0+b2xkX2JzLT5jb3B5X29u X3JlYWQpKSB7CisgICAgaWYgKCFxZW11X2F0b21pY19yZWFkKCZzdGF0ZS0+b2xkX2JzLT5jb3B5 X29uX3JlYWQpKSB7CiAgICAgICAgIGJkcnZfcmVvcGVuX3NldF9yZWFkX29ubHkoc3RhdGUtPm9s ZF9icywgdHJ1ZSwgTlVMTCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9ibG9ja2pvYi5jIGIvYmxv Y2tqb2IuYwppbmRleCA0NzBmYWNmZDQ3Li5lMjFlMmNlNzdjIDEwMDY0NAotLS0gYS9ibG9ja2pv Yi5jCisrKyBiL2Jsb2Nram9iLmMKQEAgLTI5OCw3ICsyOTgsNyBAQCBCbG9ja0pvYkluZm8gKmJs b2NrX2pvYl9xdWVyeShCbG9ja0pvYiAqam9iLCBFcnJvciAqKmVycnApCiAgICAgaW5mbyA9IGdf bmV3MChCbG9ja0pvYkluZm8sIDEpOwogICAgIGluZm8tPnR5cGUgICAgICA9IGdfc3RyZHVwKGpv Yl90eXBlX3N0cigmam9iLT5qb2IpKTsKICAgICBpbmZvLT5kZXZpY2UgICAgPSBnX3N0cmR1cChq b2ItPmpvYi5pZCk7Ci0gICAgaW5mby0+YnVzeSAgICAgID0gYXRvbWljX3JlYWQoJmpvYi0+am9i LmJ1c3kpOworICAgIGluZm8tPmJ1c3kgICAgICA9IHFlbXVfYXRvbWljX3JlYWQoJmpvYi0+am9i LmJ1c3kpOwogICAgIGluZm8tPnBhdXNlZCAgICA9IGpvYi0+am9iLnBhdXNlX2NvdW50ID4gMDsK ICAgICBpbmZvLT5vZmZzZXQgICAgPSBqb2ItPmpvYi5wcm9ncmVzcy5jdXJyZW50OwogICAgIGlu Zm8tPmxlbiAgICAgICA9IGpvYi0+am9iLnByb2dyZXNzLnRvdGFsOwpkaWZmIC0tZ2l0IGEvY29u dHJpYi9saWJ2aG9zdC11c2VyL2xpYnZob3N0LXVzZXIuYyBiL2NvbnRyaWIvbGlidmhvc3QtdXNl ci9saWJ2aG9zdC11c2VyLmMKaW5kZXggNTNmMTZiZGYwOC4uOGQ5NjIzYmNiYyAxMDA2NDQKLS0t IGEvY29udHJpYi9saWJ2aG9zdC11c2VyL2xpYnZob3N0LXVzZXIuYworKysgYi9jb250cmliL2xp YnZob3N0LXVzZXIvbGlidmhvc3QtdXNlci5jCkBAIC00NDgsNyArNDQ4LDcgQEAgc3RhdGljIHZv aWQKIHZ1X2xvZ19wYWdlKHVpbnQ4X3QgKmxvZ190YWJsZSwgdWludDY0X3QgcGFnZSkKIHsKICAg ICBEUFJJTlQoIkxvZ2dlZCBkaXJ0eSBndWVzdCBwYWdlOiAlIlBSSWQ2NCJcbiIsIHBhZ2UpOwot ICAgIGF0b21pY19vcigmbG9nX3RhYmxlW3BhZ2UgLyA4XSwgMSA8PCAocGFnZSAlIDgpKTsKKyAg ICBxZW11X2F0b21pY19vcigmbG9nX3RhYmxlW3BhZ2UgLyA4XSwgMSA8PCAocGFnZSAlIDgpKTsK IH0KIAogc3RhdGljIHZvaWQKZGlmZiAtLWdpdCBhL2NwdXMtY29tbW9uLmMgYi9jcHVzLWNvbW1v bi5jCmluZGV4IDM0MDQ0ZjRlNGMuLjZhNmI4MmRlNTIgMTAwNjQ0Ci0tLSBhL2NwdXMtY29tbW9u LmMKKysrIGIvY3B1cy1jb21tb24uYwpAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgZG9fcnVuX29u X2NwdShDUFVTdGF0ZSAqY3B1LCBydW5fb25fY3B1X2Z1bmMgZnVuYywgcnVuX29uX2NwdV9kYXRh IGRhdGEsCiAgICAgd2kuZXhjbHVzaXZlID0gZmFsc2U7CiAKICAgICBxdWV1ZV93b3JrX29uX2Nw dShjcHUsICZ3aSk7Ci0gICAgd2hpbGUgKCFhdG9taWNfbWJfcmVhZCgmd2kuZG9uZSkpIHsKKyAg ICB3aGlsZSAoIXFlbXVfYXRvbWljX21iX3JlYWQoJndpLmRvbmUpKSB7CiAgICAgICAgIENQVVN0 YXRlICpzZWxmX2NwdSA9IGN1cnJlbnRfY3B1OwogCiAgICAgICAgIHFlbXVfY29uZF93YWl0KCZx ZW11X3dvcmtfY29uZCwgbXV0ZXgpOwpAQCAtMTg4LDIwICsxODgsMjAgQEAgdm9pZCBzdGFydF9l eGNsdXNpdmUodm9pZCkKICAgICBleGNsdXNpdmVfaWRsZSgpOwogCiAgICAgLyogTWFrZSBhbGwg b3RoZXIgY3B1cyBzdG9wIGV4ZWN1dGluZy4gICovCi0gICAgYXRvbWljX3NldCgmcGVuZGluZ19j cHVzLCAxKTsKKyAgICBxZW11X2F0b21pY19zZXQoJnBlbmRpbmdfY3B1cywgMSk7CiAKICAgICAv KiBXcml0ZSBwZW5kaW5nX2NwdXMgYmVmb3JlIHJlYWRpbmcgb3RoZXJfY3B1LT5ydW5uaW5nLiAg Ki8KICAgICBzbXBfbWIoKTsKICAgICBydW5uaW5nX2NwdXMgPSAwOwogICAgIENQVV9GT1JFQUNI KG90aGVyX2NwdSkgewotICAgICAgICBpZiAoYXRvbWljX3JlYWQoJm90aGVyX2NwdS0+cnVubmlu ZykpIHsKKyAgICAgICAgaWYgKHFlbXVfYXRvbWljX3JlYWQoJm90aGVyX2NwdS0+cnVubmluZykp IHsKICAgICAgICAgICAgIG90aGVyX2NwdS0+aGFzX3dhaXRlciA9IHRydWU7CiAgICAgICAgICAg ICBydW5uaW5nX2NwdXMrKzsKICAgICAgICAgICAgIHFlbXVfY3B1X2tpY2sob3RoZXJfY3B1KTsK ICAgICAgICAgfQogICAgIH0KIAotICAgIGF0b21pY19zZXQoJnBlbmRpbmdfY3B1cywgcnVubmlu Z19jcHVzICsgMSk7CisgICAgcWVtdV9hdG9taWNfc2V0KCZwZW5kaW5nX2NwdXMsIHJ1bm5pbmdf Y3B1cyArIDEpOwogICAgIHdoaWxlIChwZW5kaW5nX2NwdXMgPiAxKSB7CiAgICAgICAgIHFlbXVf Y29uZF93YWl0KCZleGNsdXNpdmVfY29uZCwgJnFlbXVfY3B1X2xpc3RfbG9jayk7CiAgICAgfQpA QCAtMjIwLDcgKzIyMCw3IEBAIHZvaWQgZW5kX2V4Y2x1c2l2ZSh2b2lkKQogICAgIGN1cnJlbnRf Y3B1LT5pbl9leGNsdXNpdmVfY29udGV4dCA9IGZhbHNlOwogCiAgICAgcWVtdV9tdXRleF9sb2Nr KCZxZW11X2NwdV9saXN0X2xvY2spOwotICAgIGF0b21pY19zZXQoJnBlbmRpbmdfY3B1cywgMCk7 CisgICAgcWVtdV9hdG9taWNfc2V0KCZwZW5kaW5nX2NwdXMsIDApOwogICAgIHFlbXVfY29uZF9i cm9hZGNhc3QoJmV4Y2x1c2l2ZV9yZXN1bWUpOwogICAgIHFlbXVfbXV0ZXhfdW5sb2NrKCZxZW11 X2NwdV9saXN0X2xvY2spOwogfQpAQCAtMjI4LDcgKzIyOCw3IEBAIHZvaWQgZW5kX2V4Y2x1c2l2 ZSh2b2lkKQogLyogV2FpdCBmb3IgZXhjbHVzaXZlIG9wcyB0byBmaW5pc2gsIGFuZCBiZWdpbiBj cHUgZXhlY3V0aW9uLiAgKi8KIHZvaWQgY3B1X2V4ZWNfc3RhcnQoQ1BVU3RhdGUgKmNwdSkKIHsK LSAgICBhdG9taWNfc2V0KCZjcHUtPnJ1bm5pbmcsIHRydWUpOworICAgIHFlbXVfYXRvbWljX3Nl dCgmY3B1LT5ydW5uaW5nLCB0cnVlKTsKIAogICAgIC8qIFdyaXRlIGNwdS0+cnVubmluZyBiZWZv cmUgcmVhZGluZyBwZW5kaW5nX2NwdXMuICAqLwogICAgIHNtcF9tYigpOwpAQCAtMjQ2LDE3ICsy NDYsMTcgQEAgdm9pZCBjcHVfZXhlY19zdGFydChDUFVTdGF0ZSAqY3B1KQogICAgICAqIDMuIHBl bmRpbmdfY3B1cyA9PSAwLiAgVGhlbiBzdGFydF9leGNsdXNpdmUgaXMgZGVmaW5pdGVseSBnb2lu ZyB0bwogICAgICAqIHNlZSBjcHUtPnJ1bm5pbmcgPT0gdHJ1ZSwgYW5kIGl0IHdpbGwga2ljayB0 aGUgQ1BVLgogICAgICAqLwotICAgIGlmICh1bmxpa2VseShhdG9taWNfcmVhZCgmcGVuZGluZ19j cHVzKSkpIHsKKyAgICBpZiAodW5saWtlbHkocWVtdV9hdG9taWNfcmVhZCgmcGVuZGluZ19jcHVz KSkpIHsKICAgICAgICAgUUVNVV9MT0NLX0dVQVJEKCZxZW11X2NwdV9saXN0X2xvY2spOwogICAg ICAgICBpZiAoIWNwdS0+aGFzX3dhaXRlcikgewogICAgICAgICAgICAgLyogTm90IGNvdW50ZWQg aW4gcGVuZGluZ19jcHVzLCBsZXQgdGhlIGV4Y2x1c2l2ZSBpdGVtCiAgICAgICAgICAgICAgKiBy dW4uICBTaW5jZSB3ZSBoYXZlIHRoZSBsb2NrLCBqdXN0IHNldCBjcHUtPnJ1bm5pbmcgdG8gdHJ1 ZQogICAgICAgICAgICAgICogd2hpbGUgaG9sZGluZyBpdDsgbm8gbmVlZCB0byBjaGVjayBwZW5k aW5nX2NwdXMgYWdhaW4uCiAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIGF0b21pY19zZXQo JmNwdS0+cnVubmluZywgZmFsc2UpOworICAgICAgICAgICAgcWVtdV9hdG9taWNfc2V0KCZjcHUt PnJ1bm5pbmcsIGZhbHNlKTsKICAgICAgICAgICAgIGV4Y2x1c2l2ZV9pZGxlKCk7CiAgICAgICAg ICAgICAvKiBOb3cgcGVuZGluZ19jcHVzIGlzIHplcm8uICAqLwotICAgICAgICAgICAgYXRvbWlj X3NldCgmY3B1LT5ydW5uaW5nLCB0cnVlKTsKKyAgICAgICAgICAgIHFlbXVfYXRvbWljX3NldCgm Y3B1LT5ydW5uaW5nLCB0cnVlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8qIENv dW50ZWQgaW4gcGVuZGluZ19jcHVzLCBnbyBhaGVhZCBhbmQgcmVsZWFzZSB0aGUKICAgICAgICAg ICAgICAqIHdhaXRlciBhdCBjcHVfZXhlY19lbmQuCkBAIC0yNjgsNyArMjY4LDcgQEAgdm9pZCBj cHVfZXhlY19zdGFydChDUFVTdGF0ZSAqY3B1KQogLyogTWFyayBjcHUgYXMgbm90IGV4ZWN1dGlu ZywgYW5kIHJlbGVhc2UgcGVuZGluZyBleGNsdXNpdmUgb3BzLiAgKi8KIHZvaWQgY3B1X2V4ZWNf ZW5kKENQVVN0YXRlICpjcHUpCiB7Ci0gICAgYXRvbWljX3NldCgmY3B1LT5ydW5uaW5nLCBmYWxz ZSk7CisgICAgcWVtdV9hdG9taWNfc2V0KCZjcHUtPnJ1bm5pbmcsIGZhbHNlKTsKIAogICAgIC8q IFdyaXRlIGNwdS0+cnVubmluZyBiZWZvcmUgcmVhZGluZyBwZW5kaW5nX2NwdXMuICAqLwogICAg IHNtcF9tYigpOwpAQCAtMjg4LDExICsyODgsMTEgQEAgdm9pZCBjcHVfZXhlY19lbmQoQ1BVU3Rh dGUgKmNwdSkKICAgICAgKiBzZWUgY3B1LT5ydW5uaW5nID09IGZhbHNlLCBhbmQgaXQgY2FuIGln bm9yZSB0aGlzIENQVSB1bnRpbCB0aGUKICAgICAgKiBuZXh0IGNwdV9leGVjX3N0YXJ0LgogICAg ICAqLwotICAgIGlmICh1bmxpa2VseShhdG9taWNfcmVhZCgmcGVuZGluZ19jcHVzKSkpIHsKKyAg ICBpZiAodW5saWtlbHkocWVtdV9hdG9taWNfcmVhZCgmcGVuZGluZ19jcHVzKSkpIHsKICAgICAg ICAgUUVNVV9MT0NLX0dVQVJEKCZxZW11X2NwdV9saXN0X2xvY2spOwogICAgICAgICBpZiAoY3B1 LT5oYXNfd2FpdGVyKSB7CiAgICAgICAgICAgICBjcHUtPmhhc193YWl0ZXIgPSBmYWxzZTsKLSAg ICAgICAgICAgIGF0b21pY19zZXQoJnBlbmRpbmdfY3B1cywgcGVuZGluZ19jcHVzIC0gMSk7Cisg ICAgICAgICAgICBxZW11X2F0b21pY19zZXQoJnBlbmRpbmdfY3B1cywgcGVuZGluZ19jcHVzIC0g MSk7CiAgICAgICAgICAgICBpZiAocGVuZGluZ19jcHVzID09IDEpIHsKICAgICAgICAgICAgICAg ICBxZW11X2NvbmRfc2lnbmFsKCZleGNsdXNpdmVfY29uZCk7CiAgICAgICAgICAgICB9CkBAIC0z NDYsNyArMzQ2LDcgQEAgdm9pZCBwcm9jZXNzX3F1ZXVlZF9jcHVfd29yayhDUFVTdGF0ZSAqY3B1 KQogICAgICAgICBpZiAod2ktPmZyZWUpIHsKICAgICAgICAgICAgIGdfZnJlZSh3aSk7CiAgICAg ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdG9taWNfbWJfc2V0KCZ3aS0+ZG9uZSwgdHJ1ZSk7 CisgICAgICAgICAgICBxZW11X2F0b21pY19tYl9zZXQoJndpLT5kb25lLCB0cnVlKTsKICAgICAg ICAgfQogICAgIH0KICAgICBxZW11X211dGV4X3VubG9jaygmY3B1LT53b3JrX211dGV4KTsKZGlm ZiAtLWdpdCBhL2R1bXAvZHVtcC5jIGIvZHVtcC9kdW1wLmMKaW5kZXggMTNmZGE0NDBhNC4uMWIy ZmJiNjQ0MiAxMDA2NDQKLS0tIGEvZHVtcC9kdW1wLmMKKysrIGIvZHVtcC9kdW1wLmMKQEAgLTE1 NzIsNyArMTU3Miw3IEBAIHN0YXRpYyB2b2lkIGR1bXBfc3RhdGVfcHJlcGFyZShEdW1wU3RhdGUg KnMpCiBib29sIGR1bXBfaW5fcHJvZ3Jlc3Modm9pZCkKIHsKICAgICBEdW1wU3RhdGUgKnN0YXRl ID0gJmR1bXBfc3RhdGVfZ2xvYmFsOwotICAgIHJldHVybiAoYXRvbWljX3JlYWQoJnN0YXRlLT5z dGF0dXMpID09IERVTVBfU1RBVFVTX0FDVElWRSk7CisgICAgcmV0dXJuIChxZW11X2F0b21pY19y ZWFkKCZzdGF0ZS0+c3RhdHVzKSA9PSBEVU1QX1NUQVRVU19BQ1RJVkUpOwogfQogCiAvKiBjYWxj dWxhdGUgdG90YWwgc2l6ZSBvZiBtZW1vcnkgdG8gYmUgZHVtcGVkICh0YWtpbmcgZmlsdGVyIGlu dG8KQEAgLTE4ODIsNyArMTg4Miw3IEBAIHN0YXRpYyB2b2lkIGR1bXBfcHJvY2VzcyhEdW1wU3Rh dGUgKnMsIEVycm9yICoqZXJycCkKIAogICAgIC8qIG1ha2Ugc3VyZSBzdGF0dXMgaXMgd3JpdHRl biBhZnRlciB3cml0dGVuX3NpemUgdXBkYXRlcyAqLwogICAgIHNtcF93bWIoKTsKLSAgICBhdG9t aWNfc2V0KCZzLT5zdGF0dXMsCisgICAgcWVtdV9hdG9taWNfc2V0KCZzLT5zdGF0dXMsCiAgICAg ICAgICAgICAgICAobG9jYWxfZXJyID8gRFVNUF9TVEFUVVNfRkFJTEVEIDogRFVNUF9TVEFUVVNf Q09NUExFVEVEKSk7CiAKICAgICAvKiBzZW5kIERVTVBfQ09NUExFVEVEIG1lc3NhZ2UgKHVuY29u ZGl0aW9uYWxseSkgKi8KQEAgLTE5MDgsNyArMTkwOCw3IEBAIER1bXBRdWVyeVJlc3VsdCAqcW1w X3F1ZXJ5X2R1bXAoRXJyb3IgKiplcnJwKQogewogICAgIER1bXBRdWVyeVJlc3VsdCAqcmVzdWx0 ID0gZ19uZXcoRHVtcFF1ZXJ5UmVzdWx0LCAxKTsKICAgICBEdW1wU3RhdGUgKnN0YXRlID0gJmR1 bXBfc3RhdGVfZ2xvYmFsOwotICAgIHJlc3VsdC0+c3RhdHVzID0gYXRvbWljX3JlYWQoJnN0YXRl LT5zdGF0dXMpOworICAgIHJlc3VsdC0+c3RhdHVzID0gcWVtdV9hdG9taWNfcmVhZCgmc3RhdGUt PnN0YXR1cyk7CiAgICAgLyogbWFrZSBzdXJlIHdlIGFyZSByZWFkaW5nIHN0YXR1cyBhbmQgd3Jp dHRlbl9zaXplIGluIG9yZGVyICovCiAgICAgc21wX3JtYigpOwogICAgIHJlc3VsdC0+Y29tcGxl dGVkID0gc3RhdGUtPndyaXR0ZW5fc2l6ZTsKQEAgLTIwMTMsNyArMjAxMyw3IEBAIHZvaWQgcW1w X2R1bXBfZ3Vlc3RfbWVtb3J5KGJvb2wgcGFnaW5nLCBjb25zdCBjaGFyICpmaWxlLAogICAgICAg ICAgICAgICBiZWdpbiwgbGVuZ3RoLCAmbG9jYWxfZXJyKTsKICAgICBpZiAobG9jYWxfZXJyKSB7 CiAgICAgICAgIGVycm9yX3Byb3BhZ2F0ZShlcnJwLCBsb2NhbF9lcnIpOwotICAgICAgICBhdG9t aWNfc2V0KCZzLT5zdGF0dXMsIERVTVBfU1RBVFVTX0ZBSUxFRCk7CisgICAgICAgIHFlbXVfYXRv bWljX3NldCgmcy0+c3RhdHVzLCBEVU1QX1NUQVRVU19GQUlMRUQpOwogICAgICAgICByZXR1cm47 CiAgICAgfQogCmRpZmYgLS1naXQgYS9leGVjLmMgYi9leGVjLmMKaW5kZXggZTM0YjYwMmJkZi4u MjM2ZTllY2ExYSAxMDA2NDQKLS0tIGEvZXhlYy5jCisrKyBiL2V4ZWMuYwpAQCAtMzUzLDEzICsz NTMsMTMgQEAgc3RhdGljIE1lbW9yeVJlZ2lvblNlY3Rpb24gKmFkZHJlc3Nfc3BhY2VfbG9va3Vw X3JlZ2lvbihBZGRyZXNzU3BhY2VEaXNwYXRjaCAqZCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHdhZGRyIGFkZHIsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcmVzb2x2 ZV9zdWJwYWdlKQogewotICAgIE1lbW9yeVJlZ2lvblNlY3Rpb24gKnNlY3Rpb24gPSBhdG9taWNf cmVhZCgmZC0+bXJ1X3NlY3Rpb24pOworICAgIE1lbW9yeVJlZ2lvblNlY3Rpb24gKnNlY3Rpb24g PSBxZW11X2F0b21pY19yZWFkKCZkLT5tcnVfc2VjdGlvbik7CiAgICAgc3VicGFnZV90ICpzdWJw YWdlOwogCiAgICAgaWYgKCFzZWN0aW9uIHx8IHNlY3Rpb24gPT0gJmQtPm1hcC5zZWN0aW9uc1tQ SFlTX1NFQ1RJT05fVU5BU1NJR05FRF0gfHwKICAgICAgICAgIXNlY3Rpb25fY292ZXJzX2FkZHIo c2VjdGlvbiwgYWRkcikpIHsKICAgICAgICAgc2VjdGlvbiA9IHBoeXNfcGFnZV9maW5kKGQsIGFk ZHIpOwotICAgICAgICBhdG9taWNfc2V0KCZkLT5tcnVfc2VjdGlvbiwgc2VjdGlvbik7CisgICAg ICAgIHFlbXVfYXRvbWljX3NldCgmZC0+bXJ1X3NlY3Rpb24sIHNlY3Rpb24pOwogICAgIH0KICAg ICBpZiAocmVzb2x2ZV9zdWJwYWdlICYmIHNlY3Rpb24tPm1yLT5zdWJwYWdlKSB7CiAgICAgICAg IHN1YnBhZ2UgPSBjb250YWluZXJfb2Yoc2VjdGlvbi0+bXIsIHN1YnBhZ2VfdCwgaW9tZW0pOwpA QCAtNjk1LDcgKzY5NSw4IEBAIGFkZHJlc3Nfc3BhY2VfdHJhbnNsYXRlX2Zvcl9pb3RsYihDUFVT dGF0ZSAqY3B1LCBpbnQgYXNpZHgsIGh3YWRkciBhZGRyLAogICAgIElPTU1VTWVtb3J5UmVnaW9u Q2xhc3MgKmltcmM7CiAgICAgSU9NTVVUTEJFbnRyeSBpb3RsYjsKICAgICBpbnQgaW9tbXVfaWR4 OwotICAgIEFkZHJlc3NTcGFjZURpc3BhdGNoICpkID0gYXRvbWljX3JjdV9yZWFkKCZjcHUtPmNw dV9hc2VzW2FzaWR4XS5tZW1vcnlfZGlzcGF0Y2gpOworICAgIEFkZHJlc3NTcGFjZURpc3BhdGNo ICpkID0KKyAgICAgICAgcWVtdV9hdG9taWNfcmN1X3JlYWQoJmNwdS0+Y3B1X2FzZXNbYXNpZHhd Lm1lbW9yeV9kaXNwYXRjaCk7CiAKICAgICBmb3IgKDs7KSB7CiAgICAgICAgIHNlY3Rpb24gPSBh ZGRyZXNzX3NwYWNlX3RyYW5zbGF0ZV9pbnRlcm5hbChkLCBhZGRyLCAmYWRkciwgcGxlbiwgZmFs c2UpOwpAQCAtMTI0Nyw3ICsxMjQ4LDcgQEAgc3RhdGljIFJBTUJsb2NrICpxZW11X2dldF9yYW1f YmxvY2socmFtX2FkZHJfdCBhZGRyKQogewogICAgIFJBTUJsb2NrICpibG9jazsKIAotICAgIGJs b2NrID0gYXRvbWljX3JjdV9yZWFkKCZyYW1fbGlzdC5tcnVfYmxvY2spOworICAgIGJsb2NrID0g cWVtdV9hdG9taWNfcmN1X3JlYWQoJnJhbV9saXN0Lm1ydV9ibG9jayk7CiAgICAgaWYgKGJsb2Nr ICYmIGFkZHIgLSBibG9jay0+b2Zmc2V0IDwgYmxvY2stPm1heF9sZW5ndGgpIHsKICAgICAgICAg cmV0dXJuIGJsb2NrOwogICAgIH0KQEAgLTEyNzMsNyArMTI3NCw3IEBAIGZvdW5kOgogICAgICAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxfcmN1KHJlY2xhaW1f cmFtYmxvY2ssIHh4eCk7CiAgICAgICogICAgICAgICAgICAgICAgICByY3VfcmVhZF91bmxvY2so KQogICAgICAqCi0gICAgICogYXRvbWljX3JjdV9zZXQgaXMgbm90IG5lZWRlZCBoZXJlLiAgVGhl IGJsb2NrIHdhcyBhbHJlYWR5IHB1Ymxpc2hlZAorICAgICAqIHFlbXVfYXRvbWljX3JjdV9zZXQg aXMgbm90IG5lZWRlZCBoZXJlLiAgVGhlIGJsb2NrIHdhcyBhbHJlYWR5IHB1Ymxpc2hlZAogICAg ICAqIHdoZW4gaXQgd2FzIHBsYWNlZCBpbnRvIHRoZSBsaXN0LiAgSGVyZSB3ZSdyZSBqdXN0IG1h a2luZyBhbiBleHRyYQogICAgICAqIGNvcHkgb2YgdGhlIHBvaW50ZXIuCiAgICAgICovCkBAIC0x MzIxLDcgKzEzMjIsNyBAQCBib29sIGNwdV9waHlzaWNhbF9tZW1vcnlfdGVzdF9hbmRfY2xlYXJf ZGlydHkocmFtX2FkZHJfdCBzdGFydCwKICAgICBwYWdlID0gc3RhcnRfcGFnZTsKIAogICAgIFdJ VEhfUkNVX1JFQURfTE9DS19HVUFSRCgpIHsKLSAgICAgICAgYmxvY2tzID0gYXRvbWljX3JjdV9y ZWFkKCZyYW1fbGlzdC5kaXJ0eV9tZW1vcnlbY2xpZW50XSk7CisgICAgICAgIGJsb2NrcyA9IHFl bXVfYXRvbWljX3JjdV9yZWFkKCZyYW1fbGlzdC5kaXJ0eV9tZW1vcnlbY2xpZW50XSk7CiAgICAg ICAgIHJhbWJsb2NrID0gcWVtdV9nZXRfcmFtX2Jsb2NrKHN0YXJ0KTsKICAgICAgICAgLyogUmFu Z2Ugc2FuaXR5IGNoZWNrIG9uIHRoZSByYW1ibG9jayAqLwogICAgICAgICBhc3NlcnQoc3RhcnQg Pj0gcmFtYmxvY2stPm9mZnNldCAmJgpAQCAtMTM3MSw3ICsxMzcyLDcgQEAgRGlydHlCaXRtYXBT bmFwc2hvdCAqY3B1X3BoeXNpY2FsX21lbW9yeV9zbmFwc2hvdF9hbmRfY2xlYXJfZGlydHkKICAg ICBkZXN0ID0gMDsKIAogICAgIFdJVEhfUkNVX1JFQURfTE9DS19HVUFSRCgpIHsKLSAgICAgICAg YmxvY2tzID0gYXRvbWljX3JjdV9yZWFkKCZyYW1fbGlzdC5kaXJ0eV9tZW1vcnlbY2xpZW50XSk7 CisgICAgICAgIGJsb2NrcyA9IHFlbXVfYXRvbWljX3JjdV9yZWFkKCZyYW1fbGlzdC5kaXJ0eV9t ZW1vcnlbY2xpZW50XSk7CiAKICAgICAgICAgd2hpbGUgKHBhZ2UgPCBlbmQpIHsKICAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgaWR4ID0gcGFnZSAvIERJUlRZX01FTU9SWV9CTE9DS19TSVpFOwpA QCAtMjIwNyw3ICsyMjA4LDcgQEAgc3RhdGljIHZvaWQgZGlydHlfbWVtb3J5X2V4dGVuZChyYW1f YWRkcl90IG9sZF9yYW1fc2l6ZSwKICAgICAgICAgRGlydHlNZW1vcnlCbG9ja3MgKm5ld19ibG9j a3M7CiAgICAgICAgIGludCBqOwogCi0gICAgICAgIG9sZF9ibG9ja3MgPSBhdG9taWNfcmN1X3Jl YWQoJnJhbV9saXN0LmRpcnR5X21lbW9yeVtpXSk7CisgICAgICAgIG9sZF9ibG9ja3MgPSBxZW11 X2F0b21pY19yY3VfcmVhZCgmcmFtX2xpc3QuZGlydHlfbWVtb3J5W2ldKTsKICAgICAgICAgbmV3 X2Jsb2NrcyA9IGdfbWFsbG9jKHNpemVvZigqbmV3X2Jsb2NrcykgKwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZW9mKG5ld19ibG9ja3MtPmJsb2Nrc1swXSkgKiBuZXdfbnVtX2Js b2Nrcyk7CiAKQEAgLTIyMjAsNyArMjIyMSw3IEBAIHN0YXRpYyB2b2lkIGRpcnR5X21lbW9yeV9l eHRlbmQocmFtX2FkZHJfdCBvbGRfcmFtX3NpemUsCiAgICAgICAgICAgICBuZXdfYmxvY2tzLT5i bG9ja3Nbal0gPSBiaXRtYXBfbmV3KERJUlRZX01FTU9SWV9CTE9DS19TSVpFKTsKICAgICAgICAg fQogCi0gICAgICAgIGF0b21pY19yY3Vfc2V0KCZyYW1fbGlzdC5kaXJ0eV9tZW1vcnlbaV0sIG5l d19ibG9ja3MpOworICAgICAgICBxZW11X2F0b21pY19yY3Vfc2V0KCZyYW1fbGlzdC5kaXJ0eV9t ZW1vcnlbaV0sIG5ld19ibG9ja3MpOwogCiAgICAgICAgIGlmIChvbGRfYmxvY2tzKSB7CiAgICAg ICAgICAgICBnX2ZyZWVfcmN1KG9sZF9ibG9ja3MsIHJjdSk7CkBAIC0yNjY3LDcgKzI2NjgsNyBA QCBSQU1CbG9jayAqcWVtdV9yYW1fYmxvY2tfZnJvbV9ob3N0KHZvaWQgKnB0ciwgYm9vbCByb3Vu ZF9vZmZzZXQsCiAgICAgfQogCiAgICAgUkNVX1JFQURfTE9DS19HVUFSRCgpOwotICAgIGJsb2Nr ID0gYXRvbWljX3JjdV9yZWFkKCZyYW1fbGlzdC5tcnVfYmxvY2spOworICAgIGJsb2NrID0gcWVt dV9hdG9taWNfcmN1X3JlYWQoJnJhbV9saXN0Lm1ydV9ibG9jayk7CiAgICAgaWYgKGJsb2NrICYm IGJsb2NrLT5ob3N0ICYmIGhvc3QgLSBibG9jay0+aG9zdCA8IGJsb2NrLT5tYXhfbGVuZ3RoKSB7 CiAgICAgICAgIGdvdG8gZm91bmQ7CiAgICAgfQpAQCAtMjkxMiw3ICsyOTEzLDcgQEAgTWVtb3J5 UmVnaW9uU2VjdGlvbiAqaW90bGJfdG9fc2VjdGlvbihDUFVTdGF0ZSAqY3B1LAogewogICAgIGlu dCBhc2lkeCA9IGNwdV9hc2lkeF9mcm9tX2F0dHJzKGNwdSwgYXR0cnMpOwogICAgIENQVUFkZHJl c3NTcGFjZSAqY3B1YXMgPSAmY3B1LT5jcHVfYXNlc1thc2lkeF07Ci0gICAgQWRkcmVzc1NwYWNl RGlzcGF0Y2ggKmQgPSBhdG9taWNfcmN1X3JlYWQoJmNwdWFzLT5tZW1vcnlfZGlzcGF0Y2gpOwor ICAgIEFkZHJlc3NTcGFjZURpc3BhdGNoICpkID0gcWVtdV9hdG9taWNfcmN1X3JlYWQoJmNwdWFz LT5tZW1vcnlfZGlzcGF0Y2gpOwogICAgIE1lbW9yeVJlZ2lvblNlY3Rpb24gKnNlY3Rpb25zID0g ZC0+bWFwLnNlY3Rpb25zOwogCiAgICAgcmV0dXJuICZzZWN0aW9uc1tpbmRleCAmIH5UQVJHRVRf UEFHRV9NQVNLXTsKQEAgLTI5OTYsNyArMjk5Nyw3IEBAIHN0YXRpYyB2b2lkIHRjZ19jb21taXQo TWVtb3J5TGlzdGVuZXIgKmxpc3RlbmVyKQogICAgICAqIG1heSBoYXZlIHNwbGl0IHRoZSBSQ1Ug Y3JpdGljYWwgc2VjdGlvbi4KICAgICAgKi8KICAgICBkID0gYWRkcmVzc19zcGFjZV90b19kaXNw YXRjaChjcHVhcy0+YXMpOwotICAgIGF0b21pY19yY3Vfc2V0KCZjcHVhcy0+bWVtb3J5X2Rpc3Bh dGNoLCBkKTsKKyAgICBxZW11X2F0b21pY19yY3Vfc2V0KCZjcHVhcy0+bWVtb3J5X2Rpc3BhdGNo LCBkKTsKICAgICB0bGJfZmx1c2goY3B1YXMtPmNwdSk7CiB9CiAKQEAgLTM0NDMsNyArMzQ0NCw3 IEBAIHZvaWQgY3B1X3JlZ2lzdGVyX21hcF9jbGllbnQoUUVNVUJIICpiaCkKICAgICBxZW11X211 dGV4X2xvY2soJm1hcF9jbGllbnRfbGlzdF9sb2NrKTsKICAgICBjbGllbnQtPmJoID0gYmg7CiAg ICAgUUxJU1RfSU5TRVJUX0hFQUQoJm1hcF9jbGllbnRfbGlzdCwgY2xpZW50LCBsaW5rKTsKLSAg ICBpZiAoIWF0b21pY19yZWFkKCZib3VuY2UuaW5fdXNlKSkgeworICAgIGlmICghcWVtdV9hdG9t aWNfcmVhZCgmYm91bmNlLmluX3VzZSkpIHsKICAgICAgICAgY3B1X25vdGlmeV9tYXBfY2xpZW50 c19sb2NrZWQoKTsKICAgICB9CiAgICAgcWVtdV9tdXRleF91bmxvY2soJm1hcF9jbGllbnRfbGlz dF9sb2NrKTsKQEAgLTM1NzcsNyArMzU3OCw3IEBAIHZvaWQgKmFkZHJlc3Nfc3BhY2VfbWFwKEFk ZHJlc3NTcGFjZSAqYXMsCiAgICAgbXIgPSBmbGF0dmlld190cmFuc2xhdGUoZnYsIGFkZHIsICZ4 bGF0LCAmbCwgaXNfd3JpdGUsIGF0dHJzKTsKIAogICAgIGlmICghbWVtb3J5X2FjY2Vzc19pc19k aXJlY3QobXIsIGlzX3dyaXRlKSkgewotICAgICAgICBpZiAoYXRvbWljX3hjaGcoJmJvdW5jZS5p bl91c2UsIHRydWUpKSB7CisgICAgICAgIGlmIChxZW11X2F0b21pY194Y2hnKCZib3VuY2UuaW5f dXNlLCB0cnVlKSkgewogICAgICAgICAgICAgKnBsZW4gPSAwOwogICAgICAgICAgICAgcmV0dXJu IE5VTEw7CiAgICAgICAgIH0KQEAgLTM2MzYsNyArMzYzNyw3IEBAIHZvaWQgYWRkcmVzc19zcGFj ZV91bm1hcChBZGRyZXNzU3BhY2UgKmFzLCB2b2lkICpidWZmZXIsIGh3YWRkciBsZW4sCiAgICAg cWVtdV92ZnJlZShib3VuY2UuYnVmZmVyKTsKICAgICBib3VuY2UuYnVmZmVyID0gTlVMTDsKICAg ICBtZW1vcnlfcmVnaW9uX3VucmVmKGJvdW5jZS5tcik7Ci0gICAgYXRvbWljX21iX3NldCgmYm91 bmNlLmluX3VzZSwgZmFsc2UpOworICAgIHFlbXVfYXRvbWljX21iX3NldCgmYm91bmNlLmluX3Vz ZSwgZmFsc2UpOwogICAgIGNwdV9ub3RpZnlfbWFwX2NsaWVudHMoKTsKIH0KIApAQCAtNDEwNSwx NiArNDEwNiwxNyBAQCBpbnQgcmFtX2Jsb2NrX2Rpc2NhcmRfZGlzYWJsZShib29sIHN0YXRlKQog ICAgIGludCBvbGQ7CiAKICAgICBpZiAoIXN0YXRlKSB7Ci0gICAgICAgIGF0b21pY19kZWMoJnJh bV9ibG9ja19kaXNjYXJkX2Rpc2FibGVkKTsKKyAgICAgICAgcWVtdV9hdG9taWNfZGVjKCZyYW1f YmxvY2tfZGlzY2FyZF9kaXNhYmxlZCk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAg IGRvIHsKLSAgICAgICAgb2xkID0gYXRvbWljX3JlYWQoJnJhbV9ibG9ja19kaXNjYXJkX2Rpc2Fi bGVkKTsKKyAgICAgICAgb2xkID0gcWVtdV9hdG9taWNfcmVhZCgmcmFtX2Jsb2NrX2Rpc2NhcmRf ZGlzYWJsZWQpOwogICAgICAgICBpZiAob2xkIDwgMCkgewogICAgICAgICAgICAgcmV0dXJuIC1F QlVTWTsKICAgICAgICAgfQotICAgIH0gd2hpbGUgKGF0b21pY19jbXB4Y2hnKCZyYW1fYmxvY2tf ZGlzY2FyZF9kaXNhYmxlZCwgb2xkLCBvbGQgKyAxKSAhPSBvbGQpOworICAgIH0gd2hpbGUgKHFl bXVfYXRvbWljX2NtcHhjaGcoJnJhbV9ibG9ja19kaXNjYXJkX2Rpc2FibGVkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb2xkLCBvbGQgKyAxKSAhPSBvbGQpOwogICAgIHJldHVy biAwOwogfQogCkBAIC00MTIzLDI3ICs0MTI1LDI4IEBAIGludCByYW1fYmxvY2tfZGlzY2FyZF9y ZXF1aXJlKGJvb2wgc3RhdGUpCiAgICAgaW50IG9sZDsKIAogICAgIGlmICghc3RhdGUpIHsKLSAg ICAgICAgYXRvbWljX2luYygmcmFtX2Jsb2NrX2Rpc2NhcmRfZGlzYWJsZWQpOworICAgICAgICBx ZW11X2F0b21pY19pbmMoJnJhbV9ibG9ja19kaXNjYXJkX2Rpc2FibGVkKTsKICAgICAgICAgcmV0 dXJuIDA7CiAgICAgfQogCiAgICAgZG8gewotICAgICAgICBvbGQgPSBhdG9taWNfcmVhZCgmcmFt X2Jsb2NrX2Rpc2NhcmRfZGlzYWJsZWQpOworICAgICAgICBvbGQgPSBxZW11X2F0b21pY19yZWFk KCZyYW1fYmxvY2tfZGlzY2FyZF9kaXNhYmxlZCk7CiAgICAgICAgIGlmIChvbGQgPiAwKSB7CiAg ICAgICAgICAgICByZXR1cm4gLUVCVVNZOwogICAgICAgICB9Ci0gICAgfSB3aGlsZSAoYXRvbWlj X2NtcHhjaGcoJnJhbV9ibG9ja19kaXNjYXJkX2Rpc2FibGVkLCBvbGQsIG9sZCAtIDEpICE9IG9s ZCk7CisgICAgfSB3aGlsZSAocWVtdV9hdG9taWNfY21weGNoZygmcmFtX2Jsb2NrX2Rpc2NhcmRf ZGlzYWJsZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGQsIG9sZCAtIDEp ICE9IG9sZCk7CiAgICAgcmV0dXJuIDA7CiB9CiAKIGJvb2wgcmFtX2Jsb2NrX2Rpc2NhcmRfaXNf ZGlzYWJsZWQodm9pZCkKIHsKLSAgICByZXR1cm4gYXRvbWljX3JlYWQoJnJhbV9ibG9ja19kaXNj YXJkX2Rpc2FibGVkKSA+IDA7CisgICAgcmV0dXJuIHFlbXVfYXRvbWljX3JlYWQoJnJhbV9ibG9j a19kaXNjYXJkX2Rpc2FibGVkKSA+IDA7CiB9CiAKIGJvb2wgcmFtX2Jsb2NrX2Rpc2NhcmRfaXNf cmVxdWlyZWQodm9pZCkKIHsKLSAgICByZXR1cm4gYXRvbWljX3JlYWQoJnJhbV9ibG9ja19kaXNj YXJkX2Rpc2FibGVkKSA8IDA7CisgICAgcmV0dXJuIHFlbXVfYXRvbWljX3JlYWQoJnJhbV9ibG9j a19kaXNjYXJkX2Rpc2FibGVkKSA8IDA7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaHcvY29y ZS9jcHUuYyBiL2h3L2NvcmUvY3B1LmMKaW5kZXggOGY2NTM4M2ZmYi4uZGRhNDU3NjRmNSAxMDA2 NDQKLS0tIGEvaHcvY29yZS9jcHUuYworKysgYi9ody9jb3JlL2NwdS5jCkBAIC0xMTEsMTAgKzEx MSwxMCBAQCB2b2lkIGNwdV9yZXNldF9pbnRlcnJ1cHQoQ1BVU3RhdGUgKmNwdSwgaW50IG1hc2sp CiAKIHZvaWQgY3B1X2V4aXQoQ1BVU3RhdGUgKmNwdSkKIHsKLSAgICBhdG9taWNfc2V0KCZjcHUt PmV4aXRfcmVxdWVzdCwgMSk7CisgICAgcWVtdV9hdG9taWNfc2V0KCZjcHUtPmV4aXRfcmVxdWVz dCwgMSk7CiAgICAgLyogRW5zdXJlIGNwdV9leGVjIHdpbGwgc2VlIHRoZSBleGl0IHJlcXVlc3Qg YWZ0ZXIgVENHIGhhcyBleGl0ZWQuICAqLwogICAgIHNtcF93bWIoKTsKLSAgICBhdG9taWNfc2V0 KCZjcHUtPmljb3VudF9kZWNyX3B0ci0+dTE2LmhpZ2gsIC0xKTsKKyAgICBxZW11X2F0b21pY19z ZXQoJmNwdS0+aWNvdW50X2RlY3JfcHRyLT51MTYuaGlnaCwgLTEpOwogfQogCiBpbnQgY3B1X3dy aXRlX2VsZjMyX3FlbXVub3RlKFdyaXRlQ29yZUR1bXBGdW5jdGlvbiBmLCBDUFVTdGF0ZSAqY3B1 LApAQCAtMjYxLDcgKzI2MSw3IEBAIHN0YXRpYyB2b2lkIGNwdV9jb21tb25fcmVzZXQoRGV2aWNl U3RhdGUgKmRldikKICAgICBjcHUtPmhhbHRlZCA9IGNwdS0+c3RhcnRfcG93ZXJlZF9vZmY7CiAg ICAgY3B1LT5tZW1faW9fcGMgPSAwOwogICAgIGNwdS0+aWNvdW50X2V4dHJhID0gMDsKLSAgICBh dG9taWNfc2V0KCZjcHUtPmljb3VudF9kZWNyX3B0ci0+dTMyLCAwKTsKKyAgICBxZW11X2F0b21p Y19zZXQoJmNwdS0+aWNvdW50X2RlY3JfcHRyLT51MzIsIDApOwogICAgIGNwdS0+Y2FuX2RvX2lv ID0gMTsKICAgICBjcHUtPmV4Y2VwdGlvbl9pbmRleCA9IC0xOwogICAgIGNwdS0+Y3Jhc2hfb2Nj dXJyZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL2h3L2Rpc3BsYXkvcXhsLmMgYi9ody9kaXNwbGF5 L3F4bC5jCmluZGV4IDExODcxMzQwZTcuLjBhMzMwMjc2ODUgMTAwNjQ0Ci0tLSBhL2h3L2Rpc3Bs YXkvcXhsLmMKKysrIGIvaHcvZGlzcGxheS9xeGwuYwpAQCAtMTkwOCw3ICsxOTA4LDcgQEAgc3Rh dGljIHZvaWQgcXhsX3NlbmRfZXZlbnRzKFBDSVFYTERldmljZSAqZCwgdWludDMyX3QgZXZlbnRz KQogICAgIC8qCiAgICAgICogT2xkZXIgdmVyc2lvbnMgb2YgU3BpY2UgZm9yZ290IHRvIGRlZmlu ZSB0aGUgUVhMUmFtIHN0cnVjdAogICAgICAqIHdpdGggdGhlICdfX2FsaWduZWRfXyg0KScgYXR0 cmlidXRlLiBjbGFuZyA3IGFuZCBuZXdlciB3aWxsCi0gICAgICogdGh1cyB3YXJuIHRoYXQgYXRv bWljX2ZldGNoX29yKCZkLT5yYW0tPmludF9wZW5kaW5nLCAuLi4pCisgICAgICogdGh1cyB3YXJu IHRoYXQgcWVtdV9hdG9taWNfZmV0Y2hfb3IoJmQtPnJhbS0+aW50X3BlbmRpbmcsIC4uLikKICAg ICAgKiBtaWdodCBiZSBhIG1pc2FsaWduZWQgYXRvbWljIGFjY2VzcywgYW5kIHdpbGwgZ2VuZXJh dGUgYW4KICAgICAgKiBvdXQtb2YtbGluZSBjYWxsIGZvciBpdCwgd2hpY2ggcmVzdWx0cyBpbiBh IGxpbmsgZXJyb3Igc2luY2UKICAgICAgKiB3ZSBkb24ndCBjdXJyZW50bHkgbGluayBhZ2FpbnN0 IGxpYmF0b21pYy4KQEAgLTE5MjgsOCArMTkyOCw5IEBAIHN0YXRpYyB2b2lkIHF4bF9zZW5kX2V2 ZW50cyhQQ0lRWExEZXZpY2UgKmQsIHVpbnQzMl90IGV2ZW50cykKICNkZWZpbmUgQUxJR05FRF9V SU5UMzJfUFRSKFApICgodWludDMyX3QgKilQKQogI2VuZGlmCiAKLSAgICBvbGRfcGVuZGluZyA9 IGF0b21pY19mZXRjaF9vcihBTElHTkVEX1VJTlQzMl9QVFIoJmQtPnJhbS0+aW50X3BlbmRpbmcp LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlX2V2ZW50cyk7CisgICAgb2xk X3BlbmRpbmcgPQorICAgICAgICBxZW11X2F0b21pY19mZXRjaF9vcihBTElHTkVEX1VJTlQzMl9Q VFIoJmQtPnJhbS0+aW50X3BlbmRpbmcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZV9ldmVudHMpOwogICAgIGlmICgob2xkX3BlbmRpbmcgJiBsZV9ldmVudHMpID09IGxlX2V2ZW50 cykgewogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvaHcvaHlwZXJ2L2h5cGVy di5jIGIvaHcvaHlwZXJ2L2h5cGVydi5jCmluZGV4IGFhNWEyYTliZDguLmE4MzJiODVhZDAgMTAw NjQ0Ci0tLSBhL2h3L2h5cGVydi9oeXBlcnYuYworKysgYi9ody9oeXBlcnYvaHlwZXJ2LmMKQEAg LTIzMyw3ICsyMzMsNyBAQCBzdGF0aWMgdm9pZCBzaW50X21zZ19iaCh2b2lkICpvcGFxdWUpCiAg ICAgSHZTaW50Um91dGUgKnNpbnRfcm91dGUgPSBvcGFxdWU7CiAgICAgSHZTaW50U3RhZ2VkTWVz c2FnZSAqc3RhZ2VkX21zZyA9IHNpbnRfcm91dGUtPnN0YWdlZF9tc2c7CiAKLSAgICBpZiAoYXRv bWljX3JlYWQoJnN0YWdlZF9tc2ctPnN0YXRlKSAhPSBIVl9TVEFHRURfTVNHX1BPU1RFRCkgewor ICAgIGlmIChxZW11X2F0b21pY19yZWFkKCZzdGFnZWRfbXNnLT5zdGF0ZSkgIT0gSFZfU1RBR0VE X01TR19QT1NURUQpIHsKICAgICAgICAgLyogc3RhdHVzIG5vciByZWFkeSB5ZXQgKHNwdXJpb3Vz IGFjayBmcm9tIGd1ZXN0PyksIGlnbm9yZSAqLwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt MjQyLDcgKzI0Miw3IEBAIHN0YXRpYyB2b2lkIHNpbnRfbXNnX2JoKHZvaWQgKm9wYXF1ZSkKICAg ICBzdGFnZWRfbXNnLT5zdGF0dXMgPSAwOwogCiAgICAgLyogc3RhZ2VkIG1lc3NhZ2UgcHJvY2Vz c2luZyBmaW5pc2hlZCwgcmVhZHkgdG8gc3RhcnQgb3ZlciAqLwotICAgIGF0b21pY19zZXQoJnN0 YWdlZF9tc2ctPnN0YXRlLCBIVl9TVEFHRURfTVNHX0ZSRUUpOworICAgIHFlbXVfYXRvbWljX3Nl dCgmc3RhZ2VkX21zZy0+c3RhdGUsIEhWX1NUQUdFRF9NU0dfRlJFRSk7CiAgICAgLyogZHJvcCB0 aGUgcmVmZXJlbmNlIHRha2VuIGluIGh5cGVydl9wb3N0X21zZyAqLwogICAgIGh5cGVydl9zaW50 X3JvdXRlX3VucmVmKHNpbnRfcm91dGUpOwogfQpAQCAtMjgwLDcgKzI4MCw3IEBAIHN0YXRpYyB2 b2lkIGNwdV9wb3N0X21zZyhDUFVTdGF0ZSAqY3MsIHJ1bl9vbl9jcHVfZGF0YSBkYXRhKQogICAg IG1lbW9yeV9yZWdpb25fc2V0X2RpcnR5KCZzeW5pYy0+bXNnX3BhZ2VfbXIsIDAsIHNpemVvZigq c3luaWMtPm1zZ19wYWdlKSk7CiAKIHBvc3RlZDoKLSAgICBhdG9taWNfc2V0KCZzdGFnZWRfbXNn LT5zdGF0ZSwgSFZfU1RBR0VEX01TR19QT1NURUQpOworICAgIHFlbXVfYXRvbWljX3NldCgmc3Rh Z2VkX21zZy0+c3RhdGUsIEhWX1NUQUdFRF9NU0dfUE9TVEVEKTsKICAgICAvKgogICAgICAqIE5v dGlmeSB0aGUgbXNnIG9yaWdpbmF0b3Igb2YgdGhlIHByb2dyZXNzIG1hZGU7IGlmIHRoZSBzbG90 IHdhcyBidXN5IHdlCiAgICAgICogc2V0IG1zZ19wZW5kaW5nIGZsYWcgaW4gaXQgc28gaXQgd2ls bCBiZSB0aGUgZ3Vlc3Qgd2hvIHdpbGwgZG8gRU9NIGFuZApAQCAtMzAzLDcgKzMwMyw3IEBAIGlu dCBoeXBlcnZfcG9zdF9tc2coSHZTaW50Um91dGUgKnNpbnRfcm91dGUsIHN0cnVjdCBoeXBlcnZf bWVzc2FnZSAqc3JjX21zZykKICAgICBhc3NlcnQoc3RhZ2VkX21zZyk7CiAKICAgICAvKiBncmFi IHRoZSBzdGFnaW5nIGFyZWEgKi8KLSAgICBpZiAoYXRvbWljX2NtcHhjaGcoJnN0YWdlZF9tc2ct PnN0YXRlLCBIVl9TVEFHRURfTVNHX0ZSRUUsCisgICAgaWYgKHFlbXVfYXRvbWljX2NtcHhjaGco JnN0YWdlZF9tc2ctPnN0YXRlLCBIVl9TVEFHRURfTVNHX0ZSRUUsCiAgICAgICAgICAgICAgICAg ICAgICAgIEhWX1NUQUdFRF9NU0dfQlVTWSkgIT0gSFZfU1RBR0VEX01TR19GUkVFKSB7CiAgICAg ICAgIHJldHVybiAtRUFHQUlOOwogICAgIH0KQEAgLTM1Myw3ICszNTMsOCBAQCBpbnQgaHlwZXJ2 X3NldF9ldmVudF9mbGFnKEh2U2ludFJvdXRlICpzaW50X3JvdXRlLCB1bnNpZ25lZCBldmVudG5v KQogICAgIHNldF9tYXNrID0gQklUX01BU0soZXZlbnRubyk7CiAgICAgZmxhZ3MgPSBzeW5pYy0+ ZXZlbnRfcGFnZS0+c2xvdFtzaW50X3JvdXRlLT5zaW50XS5mbGFnczsKIAotICAgIGlmICgoYXRv bWljX2ZldGNoX29yKCZmbGFnc1tzZXRfaWR4XSwgc2V0X21hc2spICYgc2V0X21hc2spICE9IHNl dF9tYXNrKSB7CisgICAgaWYgKChxZW11X2F0b21pY19mZXRjaF9vcigmZmxhZ3Nbc2V0X2lkeF0s IHNldF9tYXNrKSAmIHNldF9tYXNrKSAhPQorICAgICAgICAgICAgc2V0X21hc2spIHsKICAgICAg ICAgbWVtb3J5X3JlZ2lvbl9zZXRfZGlydHkoJnN5bmljLT5ldmVudF9wYWdlX21yLCAwLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoKnN5bmljLT5ldmVudF9wYWdlKSk7 CiAgICAgICAgIHJldCA9IGh5cGVydl9zaW50X3JvdXRlX3NldF9zaW50KHNpbnRfcm91dGUpOwpk aWZmIC0tZ2l0IGEvaHcvaHlwZXJ2L3ZtYnVzLmMgYi9ody9oeXBlcnYvdm1idXMuYwppbmRleCA2 ZWY4OTViYzM1Li5jNWFkMjYxNjAwIDEwMDY0NAotLS0gYS9ody9oeXBlcnYvdm1idXMuYworKysg Yi9ody9oeXBlcnYvdm1idXMuYwpAQCAtNzQ3LDcgKzc0Nyw3IEBAIHN0YXRpYyBpbnQgdm1idXNf Y2hhbm5lbF9ub3RpZnlfZ3Vlc3QoVk1CdXNDaGFubmVsICpjaGFuKQogCiAgICAgaWR4ID0gQklU X1dPUkQoY2hhbi0+aWQpOwogICAgIG1hc2sgPSBCSVRfTUFTSyhjaGFuLT5pZCk7Ci0gICAgaWYg KChhdG9taWNfZmV0Y2hfb3IoJmludF9tYXBbaWR4XSwgbWFzaykgJiBtYXNrKSAhPSBtYXNrKSB7 CisgICAgaWYgKChxZW11X2F0b21pY19mZXRjaF9vcigmaW50X21hcFtpZHhdLCBtYXNrKSAmIG1h c2spICE9IG1hc2spIHsKICAgICAgICAgcmVzID0gaHlwZXJ2X3NpbnRfcm91dGVfc2V0X3NpbnQo Y2hhbi0+bm90aWZ5X3JvdXRlKTsKICAgICAgICAgZGlydHkgPSBsZW47CiAgICAgfQpkaWZmIC0t Z2l0IGEvaHcvaTM4Ni94ZW4veGVuLWh2bS5jIGIvaHcvaTM4Ni94ZW4veGVuLWh2bS5jCmluZGV4 IGNkZTk4MWJhZDYuLmNhNmIzZTI0MDggMTAwNjQ0Ci0tLSBhL2h3L2kzODYveGVuL3hlbi1odm0u YworKysgYi9ody9pMzg2L3hlbi94ZW4taHZtLmMKQEAgLTExNDAsNyArMTE0MCw3IEBAIHN0YXRp YyBpbnQgaGFuZGxlX2J1ZmZlcmVkX2lvcGFnZShYZW5JT1N0YXRlICpzdGF0ZSkKICAgICAgICAg YXNzZXJ0KHJlcS5kaXIgPT0gSU9SRVFfV1JJVEUpOwogICAgICAgICBhc3NlcnQoIXJlcS5kYXRh X2lzX3B0cik7CiAKLSAgICAgICAgYXRvbWljX2FkZCgmYnVmX3BhZ2UtPnJlYWRfcG9pbnRlciwg cXcgKyAxKTsKKyAgICAgICAgcWVtdV9hdG9taWNfYWRkKCZidWZfcGFnZS0+cmVhZF9wb2ludGVy LCBxdyArIDEpOwogICAgIH0KIAogICAgIHJldHVybiByZXEuY291bnQ7CmRpZmYgLS1naXQgYS9o dy9pbnRjL3J4X2ljdS5jIGIvaHcvaW50Yy9yeF9pY3UuYwppbmRleCBkZjRiNmE4ZDIyLi40MjIw MTIwNzM5IDEwMDY0NAotLS0gYS9ody9pbnRjL3J4X2ljdS5jCisrKyBiL2h3L2ludGMvcnhfaWN1 LmMKQEAgLTgxLDggKzgxLDggQEAgc3RhdGljIHZvaWQgcnhpY3VfcmVxdWVzdChSWElDVVN0YXRl ICppY3UsIGludCBuX0lSUSkKICAgICBpbnQgZW5hYmxlOwogCiAgICAgZW5hYmxlID0gaWN1LT5p ZXJbbl9JUlEgLyA4XSAmICgxIDw8IChuX0lSUSAmIDcpKTsKLSAgICBpZiAobl9JUlEgPiAwICYm IGVuYWJsZSAhPSAwICYmIGF0b21pY19yZWFkKCZpY3UtPnJlcV9pcnEpIDwgMCkgewotICAgICAg ICBhdG9taWNfc2V0KCZpY3UtPnJlcV9pcnEsIG5fSVJRKTsKKyAgICBpZiAobl9JUlEgPiAwICYm IGVuYWJsZSAhPSAwICYmIHFlbXVfYXRvbWljX3JlYWQoJmljdS0+cmVxX2lycSkgPCAwKSB7Cisg ICAgICAgIHFlbXVfYXRvbWljX3NldCgmaWN1LT5yZXFfaXJxLCBuX0lSUSk7CiAgICAgICAgIHNl dF9pcnEoaWN1LCBuX0lSUSwgcnhpY3VfbGV2ZWwoaWN1LCBuX0lSUSkpOwogICAgIH0KIH0KQEAg LTEyNCwxMCArMTI0LDEwIEBAIHN0YXRpYyB2b2lkIHJ4aWN1X3NldF9pcnEodm9pZCAqb3BhcXVl LCBpbnQgbl9JUlEsIGludCBsZXZlbCkKICAgICB9CiAgICAgaWYgKGlzc3VlID09IDAgJiYgc3Jj LT5zZW5zZSA9PSBUUkdfTEVWRUwpIHsKICAgICAgICAgaWN1LT5pcltuX0lSUV0gPSAwOwotICAg ICAgICBpZiAoYXRvbWljX3JlYWQoJmljdS0+cmVxX2lycSkgPT0gbl9JUlEpIHsKKyAgICAgICAg aWYgKHFlbXVfYXRvbWljX3JlYWQoJmljdS0+cmVxX2lycSkgPT0gbl9JUlEpIHsKICAgICAgICAg ICAgIC8qIGNsZWFyIHJlcXVlc3QgKi8KICAgICAgICAgICAgIHNldF9pcnEoaWN1LCBuX0lSUSwg MCk7Ci0gICAgICAgICAgICBhdG9taWNfc2V0KCZpY3UtPnJlcV9pcnEsIC0xKTsKKyAgICAgICAg ICAgIHFlbXVfYXRvbWljX3NldCgmaWN1LT5yZXFfaXJxLCAtMSk7CiAgICAgICAgIH0KICAgICAg ICAgcmV0dXJuOwogICAgIH0KQEAgLTE0NCwxMSArMTQ0LDExIEBAIHN0YXRpYyB2b2lkIHJ4aWN1 X2Fja19pcnEodm9pZCAqb3BhcXVlLCBpbnQgbm8sIGludCBsZXZlbCkKICAgICBpbnQgbl9JUlE7 CiAgICAgaW50IG1heF9wcmk7CiAKLSAgICBuX0lSUSA9IGF0b21pY19yZWFkKCZpY3UtPnJlcV9p cnEpOworICAgIG5fSVJRID0gcWVtdV9hdG9taWNfcmVhZCgmaWN1LT5yZXFfaXJxKTsKICAgICBp ZiAobl9JUlEgPCAwKSB7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgYXRvbWljX3NldCgm aWN1LT5yZXFfaXJxLCAtMSk7CisgICAgcWVtdV9hdG9taWNfc2V0KCZpY3UtPnJlcV9pcnEsIC0x KTsKICAgICBpZiAoaWN1LT5zcmNbbl9JUlFdLnNlbnNlICE9IFRSR19MRVZFTCkgewogICAgICAg ICBpY3UtPmlyW25fSVJRXSA9IDA7CiAgICAgfQpkaWZmIC0tZ2l0IGEvaHcvaW50Yy9zaWZpdmVf cGxpYy5jIGIvaHcvaW50Yy9zaWZpdmVfcGxpYy5jCmluZGV4IGFmNjExZjhkYjguLjRiOWU0MDFi NzkgMTAwNjQ0Ci0tLSBhL2h3L2ludGMvc2lmaXZlX3BsaWMuYworKysgYi9ody9pbnRjL3NpZml2 ZV9wbGljLmMKQEAgLTg5LDEyICs4OSwxMiBAQCBzdGF0aWMgdm9pZCBzaWZpdmVfcGxpY19wcmlu dF9zdGF0ZShTaUZpdmVQTElDU3RhdGUgKnBsaWMpCiAKIHN0YXRpYyB1aW50MzJfdCBhdG9taWNf c2V0X21hc2tlZCh1aW50MzJfdCAqYSwgdWludDMyX3QgbWFzaywgdWludDMyX3QgdmFsdWUpCiB7 Ci0gICAgdWludDMyX3Qgb2xkLCBuZXcsIGNtcCA9IGF0b21pY19yZWFkKGEpOworICAgIHVpbnQz Ml90IG9sZCwgbmV3LCBjbXAgPSBxZW11X2F0b21pY19yZWFkKGEpOwogCiAgICAgZG8gewogICAg ICAgICBvbGQgPSBjbXA7CiAgICAgICAgIG5ldyA9IChvbGQgJiB+bWFzaykgfCAodmFsdWUgJiBt YXNrKTsKLSAgICAgICAgY21wID0gYXRvbWljX2NtcHhjaGcoYSwgb2xkLCBuZXcpOworICAgICAg ICBjbXAgPSBxZW11X2F0b21pY19jbXB4Y2hnKGEsIG9sZCwgbmV3KTsKICAgICB9IHdoaWxlIChv bGQgIT0gY21wKTsKIAogICAgIHJldHVybiBvbGQ7CmRpZmYgLS1naXQgYS9ody9taXNjL2VkdS5j IGIvaHcvbWlzYy9lZHUuYwppbmRleCAwZmY5ZDFhYzc4Li5jMjE5NmRhZmI1IDEwMDY0NAotLS0g YS9ody9taXNjL2VkdS5jCisrKyBiL2h3L21pc2MvZWR1LmMKQEAgLTIxMiw3ICsyMTIsNyBAQCBz dGF0aWMgdWludDY0X3QgZWR1X21taW9fcmVhZCh2b2lkICpvcGFxdWUsIGh3YWRkciBhZGRyLCB1 bnNpZ25lZCBzaXplKQogICAgICAgICBxZW11X211dGV4X3VubG9jaygmZWR1LT50aHJfbXV0ZXgp OwogICAgICAgICBicmVhazsKICAgICBjYXNlIDB4MjA6Ci0gICAgICAgIHZhbCA9IGF0b21pY19y ZWFkKCZlZHUtPnN0YXR1cyk7CisgICAgICAgIHZhbCA9IHFlbXVfYXRvbWljX3JlYWQoJmVkdS0+ c3RhdHVzKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSAweDI0OgogICAgICAgICB2YWwgPSBl ZHUtPmlycV9zdGF0dXM7CkBAIC0yNTIsNyArMjUyLDcgQEAgc3RhdGljIHZvaWQgZWR1X21taW9f d3JpdGUodm9pZCAqb3BhcXVlLCBod2FkZHIgYWRkciwgdWludDY0X3QgdmFsLAogICAgICAgICBl ZHUtPmFkZHI0ID0gfnZhbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSAweDA4OgotICAgICAg ICBpZiAoYXRvbWljX3JlYWQoJmVkdS0+c3RhdHVzKSAmIEVEVV9TVEFUVVNfQ09NUFVUSU5HKSB7 CisgICAgICAgIGlmIChxZW11X2F0b21pY19yZWFkKCZlZHUtPnN0YXR1cykgJiBFRFVfU1RBVFVT X0NPTVBVVElORykgewogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgLyog RURVX1NUQVRVU19DT01QVVRJTkcgY2Fubm90IGdvIDAtPjEgY29uY3VycmVudGx5LCBiZWNhdXNl IGl0IGlzIG9ubHkKQEAgLTI2MCwxNSArMjYwLDE1IEBAIHN0YXRpYyB2b2lkIGVkdV9tbWlvX3dy aXRlKHZvaWQgKm9wYXF1ZSwgaHdhZGRyIGFkZHIsIHVpbnQ2NF90IHZhbCwKICAgICAgICAgICov CiAgICAgICAgIHFlbXVfbXV0ZXhfbG9jaygmZWR1LT50aHJfbXV0ZXgpOwogICAgICAgICBlZHUt PmZhY3QgPSB2YWw7Ci0gICAgICAgIGF0b21pY19vcigmZWR1LT5zdGF0dXMsIEVEVV9TVEFUVVNf Q09NUFVUSU5HKTsKKyAgICAgICAgcWVtdV9hdG9taWNfb3IoJmVkdS0+c3RhdHVzLCBFRFVfU1RB VFVTX0NPTVBVVElORyk7CiAgICAgICAgIHFlbXVfY29uZF9zaWduYWwoJmVkdS0+dGhyX2NvbmQp OwogICAgICAgICBxZW11X211dGV4X3VubG9jaygmZWR1LT50aHJfbXV0ZXgpOwogICAgICAgICBi cmVhazsKICAgICBjYXNlIDB4MjA6CiAgICAgICAgIGlmICh2YWwgJiBFRFVfU1RBVFVTX0lSUUZB Q1QpIHsKLSAgICAgICAgICAgIGF0b21pY19vcigmZWR1LT5zdGF0dXMsIEVEVV9TVEFUVVNfSVJR RkFDVCk7CisgICAgICAgICAgICBxZW11X2F0b21pY19vcigmZWR1LT5zdGF0dXMsIEVEVV9TVEFU VVNfSVJRRkFDVCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdG9taWNfYW5kKCZl ZHUtPnN0YXR1cywgfkVEVV9TVEFUVVNfSVJRRkFDVCk7CisgICAgICAgICAgICBxZW11X2F0b21p Y19hbmQoJmVkdS0+c3RhdHVzLCB+RURVX1NUQVRVU19JUlFGQUNUKTsKICAgICAgICAgfQogICAg ICAgICBicmVhazsKICAgICBjYXNlIDB4NjA6CkBAIC0zMjIsNyArMzIyLDcgQEAgc3RhdGljIHZv aWQgKmVkdV9mYWN0X3RocmVhZCh2b2lkICpvcGFxdWUpCiAgICAgICAgIHVpbnQzMl90IHZhbCwg cmV0ID0gMTsKIAogICAgICAgICBxZW11X211dGV4X2xvY2soJmVkdS0+dGhyX211dGV4KTsKLSAg ICAgICAgd2hpbGUgKChhdG9taWNfcmVhZCgmZWR1LT5zdGF0dXMpICYgRURVX1NUQVRVU19DT01Q VVRJTkcpID09IDAgJiYKKyAgICAgICAgd2hpbGUgKChxZW11X2F0b21pY19yZWFkKCZlZHUtPnN0 YXR1cykgJiBFRFVfU1RBVFVTX0NPTVBVVElORykgPT0gMCAmJgogICAgICAgICAgICAgICAgICAg ICAgICAgIWVkdS0+c3RvcHBpbmcpIHsKICAgICAgICAgICAgIHFlbXVfY29uZF93YWl0KCZlZHUt PnRocl9jb25kLCAmZWR1LT50aHJfbXV0ZXgpOwogICAgICAgICB9CkBAIC0zNDcsOSArMzQ3LDkg QEAgc3RhdGljIHZvaWQgKmVkdV9mYWN0X3RocmVhZCh2b2lkICpvcGFxdWUpCiAgICAgICAgIHFl bXVfbXV0ZXhfbG9jaygmZWR1LT50aHJfbXV0ZXgpOwogICAgICAgICBlZHUtPmZhY3QgPSByZXQ7 CiAgICAgICAgIHFlbXVfbXV0ZXhfdW5sb2NrKCZlZHUtPnRocl9tdXRleCk7Ci0gICAgICAgIGF0 b21pY19hbmQoJmVkdS0+c3RhdHVzLCB+RURVX1NUQVRVU19DT01QVVRJTkcpOworICAgICAgICBx ZW11X2F0b21pY19hbmQoJmVkdS0+c3RhdHVzLCB+RURVX1NUQVRVU19DT01QVVRJTkcpOwogCi0g ICAgICAgIGlmIChhdG9taWNfcmVhZCgmZWR1LT5zdGF0dXMpICYgRURVX1NUQVRVU19JUlFGQUNU KSB7CisgICAgICAgIGlmIChxZW11X2F0b21pY19yZWFkKCZlZHUtPnN0YXR1cykgJiBFRFVfU1RB VFVTX0lSUUZBQ1QpIHsKICAgICAgICAgICAgIHFlbXVfbXV0ZXhfbG9ja19pb3RocmVhZCgpOwog ICAgICAgICAgICAgZWR1X3JhaXNlX2lycShlZHUsIEZBQ1RfSVJRKTsKICAgICAgICAgICAgIHFl bXVfbXV0ZXhfdW5sb2NrX2lvdGhyZWFkKCk7CmRpZmYgLS1naXQgYS9ody9uZXQvdmlydGlvLW5l dC5jIGIvaHcvbmV0L3ZpcnRpby1uZXQuYwppbmRleCBjYjBkMjcwODRjLi4wYzljMjUzMzY3IDEw MDY0NAotLS0gYS9ody9uZXQvdmlydGlvLW5ldC5jCisrKyBiL2h3L25ldC92aXJ0aW8tbmV0LmMK QEAgLTkzMyw3ICs5MzMsNyBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fbmV0X3NldF9mZWF0dXJlcyhW aXJ0SU9EZXZpY2UgKnZkZXYsIHVpbnQ2NF90IGZlYXR1cmVzKQogCiAgICAgaWYgKHZpcnRpb19o YXNfZmVhdHVyZShmZWF0dXJlcywgVklSVElPX05FVF9GX1NUQU5EQlkpKSB7CiAgICAgICAgIHFh cGlfZXZlbnRfc2VuZF9mYWlsb3Zlcl9uZWdvdGlhdGVkKG4tPm5ldGNsaWVudF9uYW1lKTsKLSAg ICAgICAgYXRvbWljX3NldCgmbi0+cHJpbWFyeV9zaG91bGRfYmVfaGlkZGVuLCBmYWxzZSk7Cisg ICAgICAgIHFlbXVfYXRvbWljX3NldCgmbi0+cHJpbWFyeV9zaG91bGRfYmVfaGlkZGVuLCBmYWxz ZSk7CiAgICAgICAgIGZhaWxvdmVyX2FkZF9wcmltYXJ5KG4sICZlcnIpOwogICAgICAgICBpZiAo ZXJyKSB7CiAgICAgICAgICAgICBuLT5wcmltYXJ5X2RldiA9IHZpcnRpb19jb25uZWN0X2ZhaWxv dmVyX2RldmljZXMobiwgbi0+cWRldiwgJmVycik7CkBAIC0zMTY4LDcgKzMxNjgsNyBAQCBzdGF0 aWMgdm9pZCB2aXJ0aW9fbmV0X2hhbmRsZV9taWdyYXRpb25fcHJpbWFyeShWaXJ0SU9OZXQgKm4s CiAgICAgYm9vbCBzaG91bGRfYmVfaGlkZGVuOwogICAgIEVycm9yICplcnIgPSBOVUxMOwogCi0g ICAgc2hvdWxkX2JlX2hpZGRlbiA9IGF0b21pY19yZWFkKCZuLT5wcmltYXJ5X3Nob3VsZF9iZV9o aWRkZW4pOworICAgIHNob3VsZF9iZV9oaWRkZW4gPSBxZW11X2F0b21pY19yZWFkKCZuLT5wcmlt YXJ5X3Nob3VsZF9iZV9oaWRkZW4pOwogCiAgICAgaWYgKCFuLT5wcmltYXJ5X2RldikgewogICAg ICAgICBuLT5wcmltYXJ5X2RldiA9IHZpcnRpb19jb25uZWN0X2ZhaWxvdmVyX2RldmljZXMobiwg bi0+cWRldiwgJmVycik7CkBAIC0zMTgzLDcgKzMxODMsNyBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9f bmV0X2hhbmRsZV9taWdyYXRpb25fcHJpbWFyeShWaXJ0SU9OZXQgKm4sCiAgICAgICAgICAgICAg ICAgICAgIHFkZXZfZ2V0X3Ztc2Qobi0+cHJpbWFyeV9kZXYpLAogICAgICAgICAgICAgICAgICAg ICBuLT5wcmltYXJ5X2Rldik7CiAgICAgICAgICAgICBxYXBpX2V2ZW50X3NlbmRfdW5wbHVnX3By aW1hcnkobi0+cHJpbWFyeV9kZXZpY2VfaWQpOwotICAgICAgICAgICAgYXRvbWljX3NldCgmbi0+ cHJpbWFyeV9zaG91bGRfYmVfaGlkZGVuLCB0cnVlKTsKKyAgICAgICAgICAgIHFlbXVfYXRvbWlj X3NldCgmbi0+cHJpbWFyeV9zaG91bGRfYmVfaGlkZGVuLCB0cnVlKTsKICAgICAgICAgfSBlbHNl IHsKICAgICAgICAgICAgIHdhcm5fcmVwb3J0KCJjb3VsZG4ndCB1bnBsdWcgcHJpbWFyeSBkZXZp Y2UiKTsKICAgICAgICAgfQpAQCAtMzIzNCw3ICszMjM0LDcgQEAgc3RhdGljIGludCB2aXJ0aW9f bmV0X3ByaW1hcnlfc2hvdWxkX2JlX2hpZGRlbihEZXZpY2VMaXN0ZW5lciAqbGlzdGVuZXIsCiAg ICAgbi0+cHJpbWFyeV9kZXZpY2Vfb3B0cyA9IGRldmljZV9vcHRzOwogCiAgICAgLyogcHJpbWFy eV9zaG91bGRfYmVfaGlkZGVuIGlzIHNldCBkdXJpbmcgZmVhdHVyZSBuZWdvdGlhdGlvbiAqLwot ICAgIGhpZGUgPSBhdG9taWNfcmVhZCgmbi0+cHJpbWFyeV9zaG91bGRfYmVfaGlkZGVuKTsKKyAg ICBoaWRlID0gcWVtdV9hdG9taWNfcmVhZCgmbi0+cHJpbWFyeV9zaG91bGRfYmVfaGlkZGVuKTsK IAogICAgIGlmIChuLT5wcmltYXJ5X2RldmljZV9kaWN0KSB7CiAgICAgICAgIGdfZnJlZShuLT5w cmltYXJ5X2RldmljZV9pZCk7CkBAIC0zMjkxLDcgKzMyOTEsNyBAQCBzdGF0aWMgdm9pZCB2aXJ0 aW9fbmV0X2RldmljZV9yZWFsaXplKERldmljZVN0YXRlICpkZXYsIEVycm9yICoqZXJycCkKICAg ICBpZiAobi0+ZmFpbG92ZXIpIHsKICAgICAgICAgbi0+cHJpbWFyeV9saXN0ZW5lci5zaG91bGRf YmVfaGlkZGVuID0KICAgICAgICAgICAgIHZpcnRpb19uZXRfcHJpbWFyeV9zaG91bGRfYmVfaGlk ZGVuOwotICAgICAgICBhdG9taWNfc2V0KCZuLT5wcmltYXJ5X3Nob3VsZF9iZV9oaWRkZW4sIHRy dWUpOworICAgICAgICBxZW11X2F0b21pY19zZXQoJm4tPnByaW1hcnlfc2hvdWxkX2JlX2hpZGRl biwgdHJ1ZSk7CiAgICAgICAgIGRldmljZV9saXN0ZW5lcl9yZWdpc3Rlcigmbi0+cHJpbWFyeV9s aXN0ZW5lcik7CiAgICAgICAgIG4tPm1pZ3JhdGlvbl9zdGF0ZS5ub3RpZnkgPSB2aXJ0aW9fbmV0 X21pZ3JhdGlvbl9zdGF0ZV9ub3RpZmllcjsKICAgICAgICAgYWRkX21pZ3JhdGlvbl9zdGF0ZV9j aGFuZ2Vfbm90aWZpZXIoJm4tPm1pZ3JhdGlvbl9zdGF0ZSk7CmRpZmYgLS1naXQgYS9ody9yZG1h L3JkbWFfYmFja2VuZC5jIGIvaHcvcmRtYS9yZG1hX2JhY2tlbmQuYwppbmRleCBkYjdlNWM4YmU1 Li44ODZjZTg3NThlIDEwMDY0NAotLS0gYS9ody9yZG1hL3JkbWFfYmFja2VuZC5jCisrKyBiL2h3 L3JkbWEvcmRtYV9iYWNrZW5kLmMKQEAgLTY4LDcgKzY4LDcgQEAgc3RhdGljIHZvaWQgZnJlZV9j cWVfY3R4KGdwb2ludGVyIGRhdGEsIGdwb2ludGVyIHVzZXJfZGF0YSkKICAgICBiY3R4ID0gcmRt YV9ybV9nZXRfY3FlX2N0eChyZG1hX2Rldl9yZXMsIGNxZV9jdHhfaWQpOwogICAgIGlmIChiY3R4 KSB7CiAgICAgICAgIHJkbWFfcm1fZGVhbGxvY19jcWVfY3R4KHJkbWFfZGV2X3JlcywgY3FlX2N0 eF9pZCk7Ci0gICAgICAgIGF0b21pY19kZWMoJnJkbWFfZGV2X3Jlcy0+c3RhdHMubWlzc2luZ19j cWUpOworICAgICAgICBxZW11X2F0b21pY19kZWMoJnJkbWFfZGV2X3Jlcy0+c3RhdHMubWlzc2lu Z19jcWUpOwogICAgIH0KICAgICBnX2ZyZWUoYmN0eCk7CiB9CkBAIC04MSw3ICs4MSw3IEBAIHN0 YXRpYyB2b2lkIGNsZWFuX3JlY3ZfbWFkcyhSZG1hQmFja2VuZERldiAqYmFja2VuZF9kZXYpCiAg ICAgICAgIGNxZV9jdHhfaWQgPSByZG1hX3Byb3RlY3RlZF9xbGlzdF9wb3BfaW50NjQoJmJhY2tl bmRfZGV2LT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZWN2X21hZHNfbGlzdCk7CiAgICAgICAgIGlmIChjcWVfY3R4X2lkICE9IC1FTk9FTlQp IHsKLSAgICAgICAgICAgIGF0b21pY19pbmMoJmJhY2tlbmRfZGV2LT5yZG1hX2Rldl9yZXMtPnN0 YXRzLm1pc3NpbmdfY3FlKTsKKyAgICAgICAgICAgIHFlbXVfYXRvbWljX2luYygmYmFja2VuZF9k ZXYtPnJkbWFfZGV2X3Jlcy0+c3RhdHMubWlzc2luZ19jcWUpOwogICAgICAgICAgICAgZnJlZV9j cWVfY3R4KEdJTlRfVE9fUE9JTlRFUihjcWVfY3R4X2lkKSwKICAgICAgICAgICAgICAgICAgICAg ICAgICBiYWNrZW5kX2Rldi0+cmRtYV9kZXZfcmVzKTsKICAgICAgICAgfQpAQCAtMTIzLDcgKzEy Myw3IEBAIHN0YXRpYyBpbnQgcmRtYV9wb2xsX2NxKFJkbWFEZXZpY2VSZXNvdXJjZXMgKnJkbWFf ZGV2X3Jlcywgc3RydWN0IGlidl9jcSAqaWJjcSkKICAgICAgICAgICAgIH0KICAgICAgICAgICAg IHRvdGFsX25lICs9IG5lOwogICAgICAgICB9IHdoaWxlIChuZSA+IDApOwotICAgICAgICBhdG9t aWNfc3ViKCZyZG1hX2Rldl9yZXMtPnN0YXRzLm1pc3NpbmdfY3FlLCB0b3RhbF9uZSk7CisgICAg ICAgIHFlbXVfYXRvbWljX3N1YigmcmRtYV9kZXZfcmVzLT5zdGF0cy5taXNzaW5nX2NxZSwgdG90 YWxfbmUpOwogICAgIH0KIAogICAgIGlmIChuZSA8IDApIHsKQEAgLTE5NSwxNyArMTk1LDE4IEBA IHN0YXRpYyB2b2lkICpjb21wX2hhbmRsZXJfdGhyZWFkKHZvaWQgKmFyZykKIAogc3RhdGljIGlu bGluZSB2b2lkIGRpc2FibGVfcmRtYWNtX211eF9hc3luYyhSZG1hQmFja2VuZERldiAqYmFja2Vu ZF9kZXYpCiB7Ci0gICAgYXRvbWljX3NldCgmYmFja2VuZF9kZXYtPnJkbWFjbV9tdXguY2FuX3Jl Y2VpdmUsIDApOworICAgIHFlbXVfYXRvbWljX3NldCgmYmFja2VuZF9kZXYtPnJkbWFjbV9tdXgu Y2FuX3JlY2VpdmUsIDApOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZW5hYmxlX3JkbWFjbV9t dXhfYXN5bmMoUmRtYUJhY2tlbmREZXYgKmJhY2tlbmRfZGV2KQogewotICAgIGF0b21pY19zZXQo JmJhY2tlbmRfZGV2LT5yZG1hY21fbXV4LmNhbl9yZWNlaXZlLCBzaXplb2YoUmRtYUNtTXV4TXNn KSk7CisgICAgcWVtdV9hdG9taWNfc2V0KCZiYWNrZW5kX2Rldi0+cmRtYWNtX211eC5jYW5fcmVj ZWl2ZSwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKFJkbWFDbU11eE1zZykpOwogfQogCiBz dGF0aWMgaW5saW5lIGludCByZG1hY21fbXV4X2Nhbl9wcm9jZXNzX2FzeW5jKFJkbWFCYWNrZW5k RGV2ICpiYWNrZW5kX2RldikKIHsKLSAgICByZXR1cm4gYXRvbWljX3JlYWQoJmJhY2tlbmRfZGV2 LT5yZG1hY21fbXV4LmNhbl9yZWNlaXZlKTsKKyAgICByZXR1cm4gcWVtdV9hdG9taWNfcmVhZCgm YmFja2VuZF9kZXYtPnJkbWFjbV9tdXguY2FuX3JlY2VpdmUpOwogfQogCiBzdGF0aWMgaW50IHJk bWFjbV9tdXhfY2hlY2tfb3Bfc3RhdHVzKENoYXJCYWNrZW5kICptYWRfY2hyX2JlKQpAQCAtNTU1 LDcgKzU1Niw3IEBAIHZvaWQgcmRtYV9iYWNrZW5kX3Bvc3Rfc2VuZChSZG1hQmFja2VuZERldiAq YmFja2VuZF9kZXYsCiAgICAgICAgIGdvdG8gZXJyX2RlYWxsb2NfY3FlX2N0eDsKICAgICB9CiAK LSAgICBhdG9taWNfaW5jKCZiYWNrZW5kX2Rldi0+cmRtYV9kZXZfcmVzLT5zdGF0cy5taXNzaW5n X2NxZSk7CisgICAgcWVtdV9hdG9taWNfaW5jKCZiYWNrZW5kX2Rldi0+cmRtYV9kZXZfcmVzLT5z dGF0cy5taXNzaW5nX2NxZSk7CiAgICAgYmFja2VuZF9kZXYtPnJkbWFfZGV2X3Jlcy0+c3RhdHMu dHgrKzsKIAogICAgIHJldHVybjsKQEAgLTY1OCw3ICs2NTksNyBAQCB2b2lkIHJkbWFfYmFja2Vu ZF9wb3N0X3JlY3YoUmRtYUJhY2tlbmREZXYgKmJhY2tlbmRfZGV2LAogICAgICAgICBnb3RvIGVy cl9kZWFsbG9jX2NxZV9jdHg7CiAgICAgfQogCi0gICAgYXRvbWljX2luYygmYmFja2VuZF9kZXYt PnJkbWFfZGV2X3Jlcy0+c3RhdHMubWlzc2luZ19jcWUpOworICAgIHFlbXVfYXRvbWljX2luYygm YmFja2VuZF9kZXYtPnJkbWFfZGV2X3Jlcy0+c3RhdHMubWlzc2luZ19jcWUpOwogICAgIGJhY2tl bmRfZGV2LT5yZG1hX2Rldl9yZXMtPnN0YXRzLnJ4X2J1ZnMrKzsKIAogICAgIHJldHVybjsKQEAg LTcxMCw3ICs3MTEsNyBAQCB2b2lkIHJkbWFfYmFja2VuZF9wb3N0X3NycV9yZWN2KFJkbWFCYWNr ZW5kRGV2ICpiYWNrZW5kX2RldiwKICAgICAgICAgZ290byBlcnJfZGVhbGxvY19jcWVfY3R4Owog ICAgIH0KIAotICAgIGF0b21pY19pbmMoJmJhY2tlbmRfZGV2LT5yZG1hX2Rldl9yZXMtPnN0YXRz Lm1pc3NpbmdfY3FlKTsKKyAgICBxZW11X2F0b21pY19pbmMoJmJhY2tlbmRfZGV2LT5yZG1hX2Rl dl9yZXMtPnN0YXRzLm1pc3NpbmdfY3FlKTsKICAgICBiYWNrZW5kX2Rldi0+cmRtYV9kZXZfcmVz LT5zdGF0cy5yeF9idWZzKys7CiAgICAgYmFja2VuZF9kZXYtPnJkbWFfZGV2X3Jlcy0+c3RhdHMu cnhfc3JxKys7CiAKZGlmZiAtLWdpdCBhL2h3L3JkbWEvcmRtYV9ybS5jIGIvaHcvcmRtYS9yZG1h X3JtLmMKaW5kZXggNjA5NTdmODhkYi4uZDY5NTVkMWQxYiAxMDA2NDQKLS0tIGEvaHcvcmRtYS9y ZG1hX3JtLmMKKysrIGIvaHcvcmRtYS9yZG1hX3JtLmMKQEAgLTc5MCw3ICs3OTAsNyBAQCBpbnQg cmRtYV9ybV9pbml0KFJkbWFEZXZpY2VSZXNvdXJjZXMgKmRldl9yZXMsIHN0cnVjdCBpYnZfZGV2 aWNlX2F0dHIgKmRldl9hdHRyKQogICAgIHFlbXVfbXV0ZXhfaW5pdCgmZGV2X3Jlcy0+bG9jayk7 CiAKICAgICBtZW1zZXQoJmRldl9yZXMtPnN0YXRzLCAwLCBzaXplb2YoZGV2X3Jlcy0+c3RhdHMp KTsKLSAgICBhdG9taWNfc2V0KCZkZXZfcmVzLT5zdGF0cy5taXNzaW5nX2NxZSwgMCk7CisgICAg cWVtdV9hdG9taWNfc2V0KCZkZXZfcmVzLT5zdGF0cy5taXNzaW5nX2NxZSwgMCk7CiAKICAgICBy ZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2h3L3JkbWEvdm13L3B2cmRtYV9kZXZfcmluZy5jIGIv aHcvcmRtYS92bXcvcHZyZG1hX2Rldl9yaW5nLmMKaW5kZXggYzEyMmZlNzAzNS4uNDNjN2RmYmQ1 MiAxMDA2NDQKLS0tIGEvaHcvcmRtYS92bXcvcHZyZG1hX2Rldl9yaW5nLmMKKysrIGIvaHcvcmRt YS92bXcvcHZyZG1hX2Rldl9yaW5nLmMKQEAgLTM4LDggKzM4LDggQEAgaW50IHB2cmRtYV9yaW5n X2luaXQoUHZyZG1hUmluZyAqcmluZywgY29uc3QgY2hhciAqbmFtZSwgUENJRGV2aWNlICpkZXYs CiAgICAgcmluZy0+bWF4X2VsZW1zID0gbWF4X2VsZW1zOwogICAgIHJpbmctPmVsZW1fc3ogPSBl bGVtX3N6OwogICAgIC8qIFRPRE86IEdpdmUgYSBtb21lbnQgdG8gdGhpbmsgaWYgd2Ugd2FudCB0 byByZWRvIGRyaXZlciBzZXR0aW5ncwotICAgIGF0b21pY19zZXQoJnJpbmctPnJpbmdfc3RhdGUt PnByb2RfdGFpbCwgMCk7Ci0gICAgYXRvbWljX3NldCgmcmluZy0+cmluZ19zdGF0ZS0+Y29uc19o ZWFkLCAwKTsKKyAgICBxZW11X2F0b21pY19zZXQoJnJpbmctPnJpbmdfc3RhdGUtPnByb2RfdGFp bCwgMCk7CisgICAgcWVtdV9hdG9taWNfc2V0KCZyaW5nLT5yaW5nX3N0YXRlLT5jb25zX2hlYWQs IDApOwogICAgICovCiAgICAgcmluZy0+bnBhZ2VzID0gbnBhZ2VzOwogICAgIHJpbmctPnBhZ2Vz ID0gZ19tYWxsb2MobnBhZ2VzICogc2l6ZW9mKHZvaWQgKikpOwpkaWZmIC0tZ2l0IGEvaHcvczM5 MHgvczM5MC1wY2ktYnVzLmMgYi9ody9zMzkweC9zMzkwLXBjaS1idXMuYwppbmRleCA5MjE0NmEy MTE5Li44NGU0MGI0Mzk1IDEwMDY0NAotLS0gYS9ody9zMzkweC9zMzkwLXBjaS1idXMuYworKysg Yi9ody9zMzkweC9zMzkwLXBjaS1idXMuYwpAQCAtNjUwLDcgKzY1MCw3IEBAIHN0YXRpYyB1aW50 OF90IHNldF9pbmRfYXRvbWljKHVpbnQ2NF90IGluZF9sb2MsIHVpbnQ4X3QgdG9fYmVfc2V0KQog ICAgIGFjdHVhbCA9ICppbmRfYWRkcjsKICAgICBkbyB7CiAgICAgICAgIGV4cGVjdGVkID0gYWN0 dWFsOwotICAgICAgICBhY3R1YWwgPSBhdG9taWNfY21weGNoZyhpbmRfYWRkciwgZXhwZWN0ZWQs IGV4cGVjdGVkIHwgdG9fYmVfc2V0KTsKKyAgICAgICAgYWN0dWFsID0gcWVtdV9hdG9taWNfY21w eGNoZyhpbmRfYWRkciwgZXhwZWN0ZWQsIGV4cGVjdGVkIHwgdG9fYmVfc2V0KTsKICAgICB9IHdo aWxlIChhY3R1YWwgIT0gZXhwZWN0ZWQpOwogICAgIGNwdV9waHlzaWNhbF9tZW1vcnlfdW5tYXAo KHZvaWQgKilpbmRfYWRkciwgbGVuLCAxLCBsZW4pOwogCmRpZmYgLS1naXQgYS9ody9zMzkweC92 aXJ0aW8tY2N3LmMgYi9ody9zMzkweC92aXJ0aW8tY2N3LmMKaW5kZXggOGZlYjM0NTFhMC4uOGFl ZjJjYzhhMSAxMDA2NDQKLS0tIGEvaHcvczM5MHgvdmlydGlvLWNjdy5jCisrKyBiL2h3L3MzOTB4 L3ZpcnRpby1jY3cuYwpAQCAtODAwLDcgKzgwMCw3IEBAIHN0YXRpYyB1aW50OF90IHZpcnRpb19z ZXRfaW5kX2F0b21pYyhTdWJjaERldiAqc2NoLCB1aW50NjRfdCBpbmRfbG9jLAogICAgIGFjdHVh bCA9ICppbmRfYWRkcjsKICAgICBkbyB7CiAgICAgICAgIGV4cGVjdGVkID0gYWN0dWFsOwotICAg ICAgICBhY3R1YWwgPSBhdG9taWNfY21weGNoZyhpbmRfYWRkciwgZXhwZWN0ZWQsIGV4cGVjdGVk IHwgdG9fYmVfc2V0KTsKKyAgICAgICAgYWN0dWFsID0gcWVtdV9hdG9taWNfY21weGNoZyhpbmRf YWRkciwgZXhwZWN0ZWQsIGV4cGVjdGVkIHwgdG9fYmVfc2V0KTsKICAgICB9IHdoaWxlIChhY3R1 YWwgIT0gZXhwZWN0ZWQpOwogICAgIHRyYWNlX3ZpcnRpb19jY3dfc2V0X2luZChpbmRfbG9jLCBh Y3R1YWwsIGFjdHVhbCB8IHRvX2JlX3NldCk7CiAgICAgY3B1X3BoeXNpY2FsX21lbW9yeV91bm1h cCgodm9pZCAqKWluZF9hZGRyLCBsZW4sIDEsIGxlbik7CmRpZmYgLS1naXQgYS9ody92aXJ0aW8v dmhvc3QuYyBiL2h3L3ZpcnRpby92aG9zdC5jCmluZGV4IDFhMTM4NGU3YTYuLjY3OGM0YzM1ZTUg MTAwNjQ0Ci0tLSBhL2h3L3ZpcnRpby92aG9zdC5jCisrKyBiL2h3L3ZpcnRpby92aG9zdC5jCkBA IC04OSw4ICs4OSw4IEBAIHN0YXRpYyB2b2lkIHZob3N0X2Rldl9zeW5jX3JlZ2lvbihzdHJ1Y3Qg dmhvc3RfZGV2ICpkZXYsCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAgICAg ICAvKiBEYXRhIG11c3QgYmUgcmVhZCBhdG9taWNhbGx5LiBXZSBkb24ndCByZWFsbHkgbmVlZCBi YXJyaWVyIHNlbWFudGljcwotICAgICAgICAgKiBidXQgaXQncyBlYXNpZXIgdG8gdXNlIGF0b21p Y18qIHRoYW4gcm9sbCBvdXIgb3duLiAqLwotICAgICAgICBsb2cgPSBhdG9taWNfeGNoZyhmcm9t LCAwKTsKKyAgICAgICAgICogYnV0IGl0J3MgZWFzaWVyIHRvIHVzZSBxZW11X2F0b21pY18qIHRo YW4gcm9sbCBvdXIgb3duLiAqLworICAgICAgICBsb2cgPSBxZW11X2F0b21pY194Y2hnKGZyb20s IDApOwogICAgICAgICB3aGlsZSAobG9nKSB7CiAgICAgICAgICAgICBpbnQgYml0ID0gY3R6bChs b2cpOwogICAgICAgICAgICAgaHdhZGRyIHBhZ2VfYWRkcjsKZGlmZiAtLWdpdCBhL2h3L3ZpcnRp by92aXJ0aW8tbW1pby5jIGIvaHcvdmlydGlvL3ZpcnRpby1tbWlvLmMKaW5kZXggZjEyZDE1OTVh YS4uZDAxMTdhMGI2ZiAxMDA2NDQKLS0tIGEvaHcvdmlydGlvL3ZpcnRpby1tbWlvLmMKKysrIGIv aHcvdmlydGlvL3ZpcnRpby1tbWlvLmMKQEAgLTE3OSw3ICsxNzksNyBAQCBzdGF0aWMgdWludDY0 X3QgdmlydGlvX21taW9fcmVhZCh2b2lkICpvcGFxdWUsIGh3YWRkciBvZmZzZXQsIHVuc2lnbmVk IHNpemUpCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHByb3h5LT52cXNbdmRldi0+cXVldWVf c2VsXS5lbmFibGVkOwogICAgIGNhc2UgVklSVElPX01NSU9fSU5URVJSVVBUX1NUQVRVUzoKLSAg ICAgICAgcmV0dXJuIGF0b21pY19yZWFkKCZ2ZGV2LT5pc3IpOworICAgICAgICByZXR1cm4gcWVt dV9hdG9taWNfcmVhZCgmdmRldi0+aXNyKTsKICAgICBjYXNlIFZJUlRJT19NTUlPX1NUQVRVUzoK ICAgICAgICAgcmV0dXJuIHZkZXYtPnN0YXR1czsKICAgICBjYXNlIFZJUlRJT19NTUlPX0NPTkZJ R19HRU5FUkFUSU9OOgpAQCAtMzcwLDcgKzM3MCw3IEBAIHN0YXRpYyB2b2lkIHZpcnRpb19tbWlv X3dyaXRlKHZvaWQgKm9wYXF1ZSwgaHdhZGRyIG9mZnNldCwgdWludDY0X3QgdmFsdWUsCiAgICAg ICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBWSVJUSU9fTU1JT19JTlRFUlJVUFRfQUNL OgotICAgICAgICBhdG9taWNfYW5kKCZ2ZGV2LT5pc3IsIH52YWx1ZSk7CisgICAgICAgIHFlbXVf YXRvbWljX2FuZCgmdmRldi0+aXNyLCB+dmFsdWUpOwogICAgICAgICB2aXJ0aW9fdXBkYXRlX2ly cSh2ZGV2KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBWSVJUSU9fTU1JT19TVEFUVVM6CkBA IC00OTYsNyArNDk2LDcgQEAgc3RhdGljIHZvaWQgdmlydGlvX21taW9fdXBkYXRlX2lycShEZXZp Y2VTdGF0ZSAqb3BhcXVlLCB1aW50MTZfdCB2ZWN0b3IpCiAgICAgaWYgKCF2ZGV2KSB7CiAgICAg ICAgIHJldHVybjsKICAgICB9Ci0gICAgbGV2ZWwgPSAoYXRvbWljX3JlYWQoJnZkZXYtPmlzcikg IT0gMCk7CisgICAgbGV2ZWwgPSAocWVtdV9hdG9taWNfcmVhZCgmdmRldi0+aXNyKSAhPSAwKTsK ICAgICB0cmFjZV92aXJ0aW9fbW1pb19zZXR0aW5nX2lycShsZXZlbCk7CiAgICAgcWVtdV9zZXRf aXJxKHByb3h5LT5pcnEsIGxldmVsKTsKIH0KZGlmZiAtLWdpdCBhL2h3L3ZpcnRpby92aXJ0aW8t cGNpLmMgYi9ody92aXJ0aW8vdmlydGlvLXBjaS5jCmluZGV4IDViYzc2OWY2ODUuLjhkZDZhMDBl ZTUgMTAwNjQ0Ci0tLSBhL2h3L3ZpcnRpby92aXJ0aW8tcGNpLmMKKysrIGIvaHcvdmlydGlvL3Zp cnRpby1wY2kuYwpAQCAtNzIsNyArNzIsNyBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fcGNpX25vdGlm eShEZXZpY2VTdGF0ZSAqZCwgdWludDE2X3QgdmVjdG9yKQogICAgICAgICBtc2l4X25vdGlmeSgm cHJveHktPnBjaV9kZXYsIHZlY3Rvcik7CiAgICAgZWxzZSB7CiAgICAgICAgIFZpcnRJT0Rldmlj ZSAqdmRldiA9IHZpcnRpb19idXNfZ2V0X2RldmljZSgmcHJveHktPmJ1cyk7Ci0gICAgICAgIHBj aV9zZXRfaXJxKCZwcm94eS0+cGNpX2RldiwgYXRvbWljX3JlYWQoJnZkZXYtPmlzcikgJiAxKTsK KyAgICAgICAgcGNpX3NldF9pcnEoJnByb3h5LT5wY2lfZGV2LCBxZW11X2F0b21pY19yZWFkKCZ2 ZGV2LT5pc3IpICYgMSk7CiAgICAgfQogfQogCkBAIC0zOTgsNyArMzk4LDcgQEAgc3RhdGljIHVp bnQzMl90IHZpcnRpb19pb3BvcnRfcmVhZChWaXJ0SU9QQ0lQcm94eSAqcHJveHksIHVpbnQzMl90 IGFkZHIpCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVklSVElPX1BDSV9JU1I6CiAgICAgICAg IC8qIHJlYWRpbmcgZnJvbSB0aGUgSVNSIGFsc28gY2xlYXJzIGl0LiAqLwotICAgICAgICByZXQg PSBhdG9taWNfeGNoZygmdmRldi0+aXNyLCAwKTsKKyAgICAgICAgcmV0ID0gcWVtdV9hdG9taWNf eGNoZygmdmRldi0+aXNyLCAwKTsKICAgICAgICAgcGNpX2lycV9kZWFzc2VydCgmcHJveHktPnBj aV9kZXYpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZJUlRJT19NU0lfQ09ORklHX1ZFQ1RP UjoKQEAgLTEzNjIsNyArMTM2Miw3IEBAIHN0YXRpYyB1aW50NjRfdCB2aXJ0aW9fcGNpX2lzcl9y ZWFkKHZvaWQgKm9wYXF1ZSwgaHdhZGRyIGFkZHIsCiB7CiAgICAgVmlydElPUENJUHJveHkgKnBy b3h5ID0gb3BhcXVlOwogICAgIFZpcnRJT0RldmljZSAqdmRldiA9IHZpcnRpb19idXNfZ2V0X2Rl dmljZSgmcHJveHktPmJ1cyk7Ci0gICAgdWludDY0X3QgdmFsID0gYXRvbWljX3hjaGcoJnZkZXYt PmlzciwgMCk7CisgICAgdWludDY0X3QgdmFsID0gcWVtdV9hdG9taWNfeGNoZygmdmRldi0+aXNy LCAwKTsKICAgICBwY2lfaXJxX2RlYXNzZXJ0KCZwcm94eS0+cGNpX2Rldik7CiAKICAgICByZXR1 cm4gdmFsOwpkaWZmIC0tZ2l0IGEvaHcvdmlydGlvL3ZpcnRpby5jIGIvaHcvdmlydGlvL3ZpcnRp by5jCmluZGV4IGU5ODMwMjUyMTcuLjA4ZjNjMWNkZDcgMTAwNjQ0Ci0tLSBhL2h3L3ZpcnRpby92 aXJ0aW8uYworKysgYi9ody92aXJ0aW8vdmlydGlvLmMKQEAgLTE0OSw4ICsxNDksOCBAQCBzdGF0 aWMgdm9pZCB2aXJ0aW9fdmlydHF1ZXVlX3Jlc2V0X3JlZ2lvbl9jYWNoZShzdHJ1Y3QgVmlydFF1 ZXVlICp2cSkKIHsKICAgICBWUmluZ01lbW9yeVJlZ2lvbkNhY2hlcyAqY2FjaGVzOwogCi0gICAg Y2FjaGVzID0gYXRvbWljX3JlYWQoJnZxLT52cmluZy5jYWNoZXMpOwotICAgIGF0b21pY19yY3Vf c2V0KCZ2cS0+dnJpbmcuY2FjaGVzLCBOVUxMKTsKKyAgICBjYWNoZXMgPSBxZW11X2F0b21pY19y ZWFkKCZ2cS0+dnJpbmcuY2FjaGVzKTsKKyAgICBxZW11X2F0b21pY19yY3Vfc2V0KCZ2cS0+dnJp bmcuY2FjaGVzLCBOVUxMKTsKICAgICBpZiAoY2FjaGVzKSB7CiAgICAgICAgIGNhbGxfcmN1KGNh Y2hlcywgdmlydGlvX2ZyZWVfcmVnaW9uX2NhY2hlLCByY3UpOwogICAgIH0KQEAgLTE5Nyw3ICsx OTcsNyBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9faW5pdF9yZWdpb25fY2FjaGUoVmlydElPRGV2aWNl ICp2ZGV2LCBpbnQgbikKICAgICAgICAgZ290byBlcnJfYXZhaWw7CiAgICAgfQogCi0gICAgYXRv bWljX3JjdV9zZXQoJnZxLT52cmluZy5jYWNoZXMsIG5ldyk7CisgICAgcWVtdV9hdG9taWNfcmN1 X3NldCgmdnEtPnZyaW5nLmNhY2hlcywgbmV3KTsKICAgICBpZiAob2xkKSB7CiAgICAgICAgIGNh bGxfcmN1KG9sZCwgdmlydGlvX2ZyZWVfcmVnaW9uX2NhY2hlLCByY3UpOwogICAgIH0KQEAgLTI4 Myw3ICsyODMsNyBAQCBzdGF0aWMgdm9pZCB2cmluZ19wYWNrZWRfZmxhZ3Nfd3JpdGUoVmlydElP RGV2aWNlICp2ZGV2LAogLyogQ2FsbGVkIHdpdGhpbiByY3VfcmVhZF9sb2NrKCkuICAqLwogc3Rh dGljIFZSaW5nTWVtb3J5UmVnaW9uQ2FjaGVzICp2cmluZ19nZXRfcmVnaW9uX2NhY2hlcyhzdHJ1 Y3QgVmlydFF1ZXVlICp2cSkKIHsKLSAgICByZXR1cm4gYXRvbWljX3JjdV9yZWFkKCZ2cS0+dnJp bmcuY2FjaGVzKTsKKyAgICByZXR1cm4gcWVtdV9hdG9taWNfcmN1X3JlYWQoJnZxLT52cmluZy5j YWNoZXMpOwogfQogCiAvKiBDYWxsZWQgd2l0aGluIHJjdV9yZWFkX2xvY2soKS4gICovCkBAIC0y MDA3LDcgKzIwMDcsNyBAQCB2b2lkIHZpcnRpb19yZXNldCh2b2lkICpvcGFxdWUpCiAgICAgdmRl di0+cXVldWVfc2VsID0gMDsKICAgICB2ZGV2LT5zdGF0dXMgPSAwOwogICAgIHZkZXYtPmRpc2Fi bGVkID0gZmFsc2U7Ci0gICAgYXRvbWljX3NldCgmdmRldi0+aXNyLCAwKTsKKyAgICBxZW11X2F0 b21pY19zZXQoJnZkZXYtPmlzciwgMCk7CiAgICAgdmRldi0+Y29uZmlnX3ZlY3RvciA9IFZJUlRJ T19OT19WRUNUT1I7CiAgICAgdmlydGlvX25vdGlmeV92ZWN0b3IodmRldiwgdmRldi0+Y29uZmln X3ZlY3Rvcik7CiAKQEAgLTI0MzksMTMgKzI0MzksMTMgQEAgdm9pZCB2aXJ0aW9fZGVsX3F1ZXVl KFZpcnRJT0RldmljZSAqdmRldiwgaW50IG4pCiAKIHN0YXRpYyB2b2lkIHZpcnRpb19zZXRfaXNy KFZpcnRJT0RldmljZSAqdmRldiwgaW50IHZhbHVlKQogewotICAgIHVpbnQ4X3Qgb2xkID0gYXRv bWljX3JlYWQoJnZkZXYtPmlzcik7CisgICAgdWludDhfdCBvbGQgPSBxZW11X2F0b21pY19yZWFk KCZ2ZGV2LT5pc3IpOwogCiAgICAgLyogRG8gbm90IHdyaXRlIElTUiBpZiBpdCBkb2VzIG5vdCBj aGFuZ2UsIHNvIHRoYXQgaXRzIGNhY2hlbGluZSByZW1haW5zCiAgICAgICogc2hhcmVkIGluIHRo ZSBjb21tb24gY2FzZSB3aGVyZSB0aGUgZ3Vlc3QgZG9lcyBub3QgcmVhZCBpdC4KICAgICAgKi8K ICAgICBpZiAoKG9sZCAmIHZhbHVlKSAhPSB2YWx1ZSkgewotICAgICAgICBhdG9taWNfb3IoJnZk ZXYtPmlzciwgdmFsdWUpOworICAgICAgICBxZW11X2F0b21pY19vcigmdmRldi0+aXNyLCB2YWx1 ZSk7CiAgICAgfQogfQogCkBAIC0zMjU0LDcgKzMyNTQsNyBAQCB2b2lkIHZpcnRpb19pbml0KFZp cnRJT0RldmljZSAqdmRldiwgY29uc3QgY2hhciAqbmFtZSwKICAgICB2ZGV2LT5zdGFydGVkID0g ZmFsc2U7CiAgICAgdmRldi0+ZGV2aWNlX2lkID0gZGV2aWNlX2lkOwogICAgIHZkZXYtPnN0YXR1 cyA9IDA7Ci0gICAgYXRvbWljX3NldCgmdmRldi0+aXNyLCAwKTsKKyAgICBxZW11X2F0b21pY19z ZXQoJnZkZXYtPmlzciwgMCk7CiAgICAgdmRldi0+cXVldWVfc2VsID0gMDsKICAgICB2ZGV2LT5j b25maWdfdmVjdG9yID0gVklSVElPX05PX1ZFQ1RPUjsKICAgICB2ZGV2LT52cSA9IGdfbWFsbG9j MChzaXplb2YoVmlydFF1ZXVlKSAqIFZJUlRJT19RVUVVRV9NQVgpOwpkaWZmIC0tZ2l0IGEvaHcv eHRlbnNhL3BpY19jcHUuYyBiL2h3L3h0ZW5zYS9waWNfY3B1LmMKaW5kZXggMWQ1OTgyYTllNC4u MmQyODM5MmI3YSAxMDA2NDQKLS0tIGEvaHcveHRlbnNhL3BpY19jcHUuYworKysgYi9ody94dGVu c2EvcGljX2NwdS5jCkBAIC03Miw5ICs3Miw5IEBAIHN0YXRpYyB2b2lkIHh0ZW5zYV9zZXRfaXJx KHZvaWQgKm9wYXF1ZSwgaW50IGlycSwgaW50IGFjdGl2ZSkKICAgICAgICAgdWludDMyX3QgaXJx X2JpdCA9IDEgPDwgaXJxOwogCiAgICAgICAgIGlmIChhY3RpdmUpIHsKLSAgICAgICAgICAgIGF0 b21pY19vcigmZW52LT5zcmVnc1tJTlRTRVRdLCBpcnFfYml0KTsKKyAgICAgICAgICAgIHFlbXVf YXRvbWljX29yKCZlbnYtPnNyZWdzW0lOVFNFVF0sIGlycV9iaXQpOwogICAgICAgICB9IGVsc2Ug aWYgKGVudi0+Y29uZmlnLT5pbnRlcnJ1cHRbaXJxXS5pbnR0eXBlID09IElOVFRZUEVfTEVWRUwp IHsKLSAgICAgICAgICAgIGF0b21pY19hbmQoJmVudi0+c3JlZ3NbSU5UU0VUXSwgfmlycV9iaXQp OworICAgICAgICAgICAgcWVtdV9hdG9taWNfYW5kKCZlbnYtPnNyZWdzW0lOVFNFVF0sIH5pcnFf Yml0KTsKICAgICAgICAgfQogCiAgICAgICAgIGNoZWNrX2ludGVycnVwdHMoZW52KTsKZGlmZiAt LWdpdCBhL2lvdGhyZWFkLmMgYi9pb3RocmVhZC5jCmluZGV4IDNhMzg2MGEwOWMuLjU0ZTJkMzBj M2QgMTAwNjQ0Ci0tLSBhL2lvdGhyZWFkLmMKKysrIGIvaW90aHJlYWQuYwpAQCAtNzYsNyArNzYs NyBAQCBzdGF0aWMgdm9pZCAqaW90aHJlYWRfcnVuKHZvaWQgKm9wYXF1ZSkKICAgICAgICAgICog V2UgbXVzdCBjaGVjayB0aGUgcnVubmluZyBzdGF0ZSBhZ2FpbiBpbiBjYXNlIGl0IHdhcwogICAg ICAgICAgKiBjaGFuZ2VkIGluIHByZXZpb3VzIGFpb19wb2xsKCkKICAgICAgICAgICovCi0gICAg ICAgIGlmIChpb3RocmVhZC0+cnVubmluZyAmJiBhdG9taWNfcmVhZCgmaW90aHJlYWQtPnJ1bl9n Y29udGV4dCkpIHsKKyAgICAgICAgaWYgKGlvdGhyZWFkLT5ydW5uaW5nICYmIHFlbXVfYXRvbWlj X3JlYWQoJmlvdGhyZWFkLT5ydW5fZ2NvbnRleHQpKSB7CiAgICAgICAgICAgICBnX21haW5fbG9v cF9ydW4oaW90aHJlYWQtPm1haW5fbG9vcCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMTYsNyAr MTE2LDcgQEAgc3RhdGljIHZvaWQgaW90aHJlYWRfaW5zdGFuY2VfaW5pdChPYmplY3QgKm9iaikK ICAgICBpb3RocmVhZC0+dGhyZWFkX2lkID0gLTE7CiAgICAgcWVtdV9zZW1faW5pdCgmaW90aHJl YWQtPmluaXRfZG9uZV9zZW0sIDApOwogICAgIC8qIEJ5IGRlZmF1bHQsIHdlIGRvbid0IHJ1biBn Y29udGV4dCAqLwotICAgIGF0b21pY19zZXQoJmlvdGhyZWFkLT5ydW5fZ2NvbnRleHQsIDApOwor ICAgIHFlbXVfYXRvbWljX3NldCgmaW90aHJlYWQtPnJ1bl9nY29udGV4dCwgMCk7CiB9CiAKIHN0 YXRpYyB2b2lkIGlvdGhyZWFkX2luc3RhbmNlX2ZpbmFsaXplKE9iamVjdCAqb2JqKQpAQCAtMzQ4 LDcgKzM0OCw3IEBAIElPVGhyZWFkSW5mb0xpc3QgKnFtcF9xdWVyeV9pb3RocmVhZHMoRXJyb3Ig KiplcnJwKQogCiBHTWFpbkNvbnRleHQgKmlvdGhyZWFkX2dldF9nX21haW5fY29udGV4dChJT1Ro cmVhZCAqaW90aHJlYWQpCiB7Ci0gICAgYXRvbWljX3NldCgmaW90aHJlYWQtPnJ1bl9nY29udGV4 dCwgMSk7CisgICAgcWVtdV9hdG9taWNfc2V0KCZpb3RocmVhZC0+cnVuX2djb250ZXh0LCAxKTsK ICAgICBhaW9fbm90aWZ5KGlvdGhyZWFkLT5jdHgpOwogICAgIHJldHVybiBpb3RocmVhZC0+d29y a2VyX2NvbnRleHQ7CiB9CmRpZmYgLS1naXQgYS9saW51eC11c2VyL2hwcGEvY3B1X2xvb3AuYyBi L2xpbnV4LXVzZXIvaHBwYS9jcHVfbG9vcC5jCmluZGV4IDk5MTU0NTZhMWQuLjdlZjMxM2MzMjUg MTAwNjQ0Ci0tLSBhL2xpbnV4LXVzZXIvaHBwYS9jcHVfbG9vcC5jCisrKyBiL2xpbnV4LXVzZXIv aHBwYS9jcHVfbG9vcC5jCkBAIC0zOSw3ICszOSw3IEBAIHN0YXRpYyBhYmlfdWxvbmcgaHBwYV9s d3MoQ1BVSFBQQVN0YXRlICplbnYpCiAgICAgICAgIH0KICAgICAgICAgb2xkID0gdHN3YXAzMihv bGQpOwogICAgICAgICBuZXcgPSB0c3dhcDMyKG5ldyk7Ci0gICAgICAgIHJldCA9IGF0b21pY19j bXB4Y2hnKCh1aW50MzJfdCAqKWcyaChhZGRyKSwgb2xkLCBuZXcpOworICAgICAgICByZXQgPSBx ZW11X2F0b21pY19jbXB4Y2hnKCh1aW50MzJfdCAqKWcyaChhZGRyKSwgb2xkLCBuZXcpOwogICAg ICAgICByZXQgPSB0c3dhcDMyKHJldCk7CiAgICAgICAgIGJyZWFrOwogCkBAIC02MCwxOSArNjAs MTkgQEAgc3RhdGljIGFiaV91bG9uZyBocHBhX2x3cyhDUFVIUFBBU3RhdGUgKmVudikKICAgICAg ICAgY2FzZSAwOgogICAgICAgICAgICAgb2xkID0gKih1aW50OF90ICopZzJoKG9sZCk7CiAgICAg ICAgICAgICBuZXcgPSAqKHVpbnQ4X3QgKilnMmgobmV3KTsKLSAgICAgICAgICAgIHJldCA9IGF0 b21pY19jbXB4Y2hnKCh1aW50OF90ICopZzJoKGFkZHIpLCBvbGQsIG5ldyk7CisgICAgICAgICAg ICByZXQgPSBxZW11X2F0b21pY19jbXB4Y2hnKCh1aW50OF90ICopZzJoKGFkZHIpLCBvbGQsIG5l dyk7CiAgICAgICAgICAgICByZXQgPSByZXQgIT0gb2xkOwogICAgICAgICAgICAgYnJlYWs7CiAg ICAgICAgIGNhc2UgMToKICAgICAgICAgICAgIG9sZCA9ICoodWludDE2X3QgKilnMmgob2xkKTsK ICAgICAgICAgICAgIG5ldyA9ICoodWludDE2X3QgKilnMmgobmV3KTsKLSAgICAgICAgICAgIHJl dCA9IGF0b21pY19jbXB4Y2hnKCh1aW50MTZfdCAqKWcyaChhZGRyKSwgb2xkLCBuZXcpOworICAg ICAgICAgICAgcmV0ID0gcWVtdV9hdG9taWNfY21weGNoZygodWludDE2X3QgKilnMmgoYWRkciks IG9sZCwgbmV3KTsKICAgICAgICAgICAgIHJldCA9IHJldCAhPSBvbGQ7CiAgICAgICAgICAgICBi cmVhazsKICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgb2xkID0gKih1aW50MzJfdCAqKWcy aChvbGQpOwogICAgICAgICAgICAgbmV3ID0gKih1aW50MzJfdCAqKWcyaChuZXcpOwotICAgICAg ICAgICAgcmV0ID0gYXRvbWljX2NtcHhjaGcoKHVpbnQzMl90ICopZzJoKGFkZHIpLCBvbGQsIG5l dyk7CisgICAgICAgICAgICByZXQgPSBxZW11X2F0b21pY19jbXB4Y2hnKCh1aW50MzJfdCAqKWcy aChhZGRyKSwgb2xkLCBuZXcpOwogICAgICAgICAgICAgcmV0ID0gcmV0ICE9IG9sZDsKICAgICAg ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIDM6CkBAIC04MSw3ICs4MSw4IEBAIHN0YXRpYyBh YmlfdWxvbmcgaHBwYV9sd3MoQ1BVSFBQQVN0YXRlICplbnYpCiAgICAgICAgICAgICAgICAgbzY0 ID0gKih1aW50NjRfdCAqKWcyaChvbGQpOwogICAgICAgICAgICAgICAgIG42NCA9ICoodWludDY0 X3QgKilnMmgobmV3KTsKICNpZmRlZiBDT05GSUdfQVRPTUlDNjQKLSAgICAgICAgICAgICAgICBy NjQgPSBhdG9taWNfY21weGNoZ19fbm9jaGVjaygodWludDY0X3QgKilnMmgoYWRkciksIG82NCwg bjY0KTsKKyAgICAgICAgICAgICAgICByNjQgPSBxZW11X2F0b21pY19jbXB4Y2hnX19ub2NoZWNr KCh1aW50NjRfdCAqKWcyaChhZGRyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG82NCwgbjY0KTsKICAgICAgICAgICAgICAgICByZXQgPSByNjQg IT0gbzY0OwogI2Vsc2UKICAgICAgICAgICAgICAgICBzdGFydF9leGNsdXNpdmUoKTsKZGlmZiAt LWdpdCBhL2xpbnV4LXVzZXIvc2lnbmFsLmMgYi9saW51eC11c2VyL3NpZ25hbC5jCmluZGV4IDhj ZjUxZmZlY2QuLmFjNGVlZTczZjAgMTAwNjQ0Ci0tLSBhL2xpbnV4LXVzZXIvc2lnbmFsLmMKKysr IGIvbGludXgtdXNlci9zaWduYWwuYwpAQCAtMTk1LDcgKzE5NSw3IEBAIGludCBibG9ja19zaWdu YWxzKHZvaWQpCiAgICAgc2lnZmlsbHNldCgmc2V0KTsKICAgICBzaWdwcm9jbWFzayhTSUdfU0VU TUFTSywgJnNldCwgMCk7CiAKLSAgICByZXR1cm4gYXRvbWljX3hjaGcoJnRzLT5zaWduYWxfcGVu ZGluZywgMSk7CisgICAgcmV0dXJuIHFlbXVfYXRvbWljX3hjaGcoJnRzLT5zaWduYWxfcGVuZGlu ZywgMSk7CiB9CiAKIC8qIFdyYXBwZXIgZm9yIHNpZ3Byb2NtYXNrIGZ1bmN0aW9uCkBAIC02ODgs NyArNjg4LDcgQEAgaW50IHF1ZXVlX3NpZ25hbChDUFVBcmNoU3RhdGUgKmVudiwgaW50IHNpZywg aW50IHNpX3R5cGUsCiAgICAgdHMtPnN5bmNfc2lnbmFsLmluZm8gPSAqaW5mbzsKICAgICB0cy0+ c3luY19zaWduYWwucGVuZGluZyA9IHNpZzsKICAgICAvKiBzaWduYWwgdGhhdCBhIG5ldyBzaWdu YWwgaXMgcGVuZGluZyAqLwotICAgIGF0b21pY19zZXQoJnRzLT5zaWduYWxfcGVuZGluZywgMSk7 CisgICAgcWVtdV9hdG9taWNfc2V0KCZ0cy0+c2lnbmFsX3BlbmRpbmcsIDEpOwogICAgIHJldHVy biAxOyAvKiBpbmRpY2F0ZXMgdGhhdCB0aGUgc2lnbmFsIHdhcyBxdWV1ZWQgKi8KIH0KIApAQCAt MTAwNSw3ICsxMDA1LDcgQEAgdm9pZCBwcm9jZXNzX3BlbmRpbmdfc2lnbmFscyhDUFVBcmNoU3Rh dGUgKmNwdV9lbnYpCiAgICAgc2lnc2V0X3Qgc2V0OwogICAgIHNpZ3NldF90ICpibG9ja2VkX3Nl dDsKIAotICAgIHdoaWxlIChhdG9taWNfcmVhZCgmdHMtPnNpZ25hbF9wZW5kaW5nKSkgeworICAg IHdoaWxlIChxZW11X2F0b21pY19yZWFkKCZ0cy0+c2lnbmFsX3BlbmRpbmcpKSB7CiAgICAgICAg IC8qIEZJWE1FOiBUaGlzIGlzIG5vdCB0aHJlYWRzYWZlLiAgKi8KICAgICAgICAgc2lnZmlsbHNl dCgmc2V0KTsKICAgICAgICAgc2lncHJvY21hc2soU0lHX1NFVE1BU0ssICZzZXQsIDApOwpAQCAt MTA0OSw3ICsxMDQ5LDcgQEAgdm9pZCBwcm9jZXNzX3BlbmRpbmdfc2lnbmFscyhDUFVBcmNoU3Rh dGUgKmNwdV9lbnYpCiAgICAgICAgICAqIG9mIHVuYmxvY2tpbmcgbWlnaHQgY2F1c2UgdXMgdG8g dGFrZSBhbm90aGVyIGhvc3Qgc2lnbmFsIHdoaWNoCiAgICAgICAgICAqIHdpbGwgc2V0IHNpZ25h bF9wZW5kaW5nIGFnYWluKS4KICAgICAgICAgICovCi0gICAgICAgIGF0b21pY19zZXQoJnRzLT5z aWduYWxfcGVuZGluZywgMCk7CisgICAgICAgIHFlbXVfYXRvbWljX3NldCgmdHMtPnNpZ25hbF9w ZW5kaW5nLCAwKTsKICAgICAgICAgdHMtPmluX3NpZ3N1c3BlbmQgPSAwOwogICAgICAgICBzZXQg PSB0cy0+c2lnbmFsX21hc2s7CiAgICAgICAgIHNpZ2RlbHNldCgmc2V0LCBTSUdTRUdWKTsKZGlm ZiAtLWdpdCBhL21pZ3JhdGlvbi9jb2xvLWZhaWxvdmVyLmMgYi9taWdyYXRpb24vY29sby1mYWls b3Zlci5jCmluZGV4IGU5Y2EwYjQ3NzQuLmI5NjFkMjUxZmEgMTAwNjQ0Ci0tLSBhL21pZ3JhdGlv bi9jb2xvLWZhaWxvdmVyLmMKKysrIGIvbWlncmF0aW9uL2NvbG8tZmFpbG92ZXIuYwpAQCAtNjMs NyArNjMsNyBAQCBGYWlsb3ZlclN0YXR1cyBmYWlsb3Zlcl9zZXRfc3RhdGUoRmFpbG92ZXJTdGF0 dXMgb2xkX3N0YXRlLAogewogICAgIEZhaWxvdmVyU3RhdHVzIG9sZDsKIAotICAgIG9sZCA9IGF0 b21pY19jbXB4Y2hnKCZmYWlsb3Zlcl9zdGF0ZSwgb2xkX3N0YXRlLCBuZXdfc3RhdGUpOworICAg IG9sZCA9IHFlbXVfYXRvbWljX2NtcHhjaGcoJmZhaWxvdmVyX3N0YXRlLCBvbGRfc3RhdGUsIG5l d19zdGF0ZSk7CiAgICAgaWYgKG9sZCA9PSBvbGRfc3RhdGUpIHsKICAgICAgICAgdHJhY2VfY29s b19mYWlsb3Zlcl9zZXRfc3RhdGUoRmFpbG92ZXJTdGF0dXNfc3RyKG5ld19zdGF0ZSkpOwogICAg IH0KQEAgLTcyLDcgKzcyLDcgQEAgRmFpbG92ZXJTdGF0dXMgZmFpbG92ZXJfc2V0X3N0YXRlKEZh aWxvdmVyU3RhdHVzIG9sZF9zdGF0ZSwKIAogRmFpbG92ZXJTdGF0dXMgZmFpbG92ZXJfZ2V0X3N0 YXRlKHZvaWQpCiB7Ci0gICAgcmV0dXJuIGF0b21pY19yZWFkKCZmYWlsb3Zlcl9zdGF0ZSk7Cisg ICAgcmV0dXJuIHFlbXVfYXRvbWljX3JlYWQoJmZhaWxvdmVyX3N0YXRlKTsKIH0KIAogdm9pZCBx bXBfeF9jb2xvX2xvc3RfaGVhcnRiZWF0KEVycm9yICoqZXJycCkKZGlmZiAtLWdpdCBhL21pZ3Jh dGlvbi9taWdyYXRpb24uYyBiL21pZ3JhdGlvbi9taWdyYXRpb24uYwppbmRleCA1OGE1NDUyNDcx Li4wNDRlN2MxZmU3IDEwMDY0NAotLS0gYS9taWdyYXRpb24vbWlncmF0aW9uLmMKKysrIGIvbWln cmF0aW9uL21pZ3JhdGlvbi5jCkBAIC0xNTk1LDcgKzE1OTUsNyBAQCB2b2lkIHFtcF9taWdyYXRl X3N0YXJ0X3Bvc3Rjb3B5KEVycm9yICoqZXJycCkKICAgICAgKiB3ZSBkb24ndCBlcnJvciBpZiBt aWdyYXRpb24gaGFzIGZpbmlzaGVkIHNpbmNlIHRoYXQgd291bGQgYmUgcmFjeQogICAgICAqIHdp dGggaXNzdWluZyB0aGlzIGNvbW1hbmQuCiAgICAgICovCi0gICAgYXRvbWljX3NldCgmcy0+c3Rh cnRfcG9zdGNvcHksIHRydWUpOworICAgIHFlbXVfYXRvbWljX3NldCgmcy0+c3RhcnRfcG9zdGNv cHksIHRydWUpOwogfQogCiAvKiBzaGFyZWQgbWlncmF0aW9uIGhlbHBlcnMgKi8KQEAgLTE2MDMs NyArMTYwMyw3IEBAIHZvaWQgcW1wX21pZ3JhdGVfc3RhcnRfcG9zdGNvcHkoRXJyb3IgKiplcnJw KQogdm9pZCBtaWdyYXRlX3NldF9zdGF0ZShpbnQgKnN0YXRlLCBpbnQgb2xkX3N0YXRlLCBpbnQg bmV3X3N0YXRlKQogewogICAgIGFzc2VydChuZXdfc3RhdGUgPCBNSUdSQVRJT05fU1RBVFVTX19N QVgpOwotICAgIGlmIChhdG9taWNfY21weGNoZyhzdGF0ZSwgb2xkX3N0YXRlLCBuZXdfc3RhdGUp ID09IG9sZF9zdGF0ZSkgeworICAgIGlmIChxZW11X2F0b21pY19jbXB4Y2hnKHN0YXRlLCBvbGRf c3RhdGUsIG5ld19zdGF0ZSkgPT0gb2xkX3N0YXRlKSB7CiAgICAgICAgIHRyYWNlX21pZ3JhdGVf c2V0X3N0YXRlKE1pZ3JhdGlvblN0YXR1c19zdHIobmV3X3N0YXRlKSk7CiAgICAgICAgIG1pZ3Jh dGVfZ2VuZXJhdGVfZXZlbnQobmV3X3N0YXRlKTsKICAgICB9CkBAIC0xOTU0LDcgKzE5NTQsNyBA QCB2b2lkIHFtcF9taWdyYXRlX3JlY292ZXIoY29uc3QgY2hhciAqdXJpLCBFcnJvciAqKmVycnAp CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoYXRvbWljX2NtcHhjaGcoJm1pcy0+ cG9zdGNvcHlfcmVjb3Zlcl90cmlnZ2VyZWQsCisgICAgaWYgKHFlbXVfYXRvbWljX2NtcHhjaGco Jm1pcy0+cG9zdGNvcHlfcmVjb3Zlcl90cmlnZ2VyZWQsCiAgICAgICAgICAgICAgICAgICAgICAg IGZhbHNlLCB0cnVlKSA9PSB0cnVlKSB7CiAgICAgICAgIGVycm9yX3NldGcoZXJycCwgIk1pZ3Jh dGUgcmVjb3ZlcnkgaXMgdHJpZ2dlcmVkIGFscmVhZHkiKTsKICAgICAgICAgcmV0dXJuOwpAQCAt MzMyOSw3ICszMzI5LDcgQEAgc3RhdGljIE1pZ0l0ZXJhdGVTdGF0ZSBtaWdyYXRpb25faXRlcmF0 aW9uX3J1bihNaWdyYXRpb25TdGF0ZSAqcykKICAgICBpZiAocGVuZGluZ19zaXplICYmIHBlbmRp bmdfc2l6ZSA+PSBzLT50aHJlc2hvbGRfc2l6ZSkgewogICAgICAgICAvKiBTdGlsbCBhIHNpZ25p ZmljYW50IGFtb3VudCB0byB0cmFuc2ZlciAqLwogICAgICAgICBpZiAoIWluX3Bvc3Rjb3B5ICYm IHBlbmRfcHJlIDw9IHMtPnRocmVzaG9sZF9zaXplICYmCi0gICAgICAgICAgICBhdG9taWNfcmVh ZCgmcy0+c3RhcnRfcG9zdGNvcHkpKSB7CisgICAgICAgICAgICBxZW11X2F0b21pY19yZWFkKCZz LT5zdGFydF9wb3N0Y29weSkpIHsKICAgICAgICAgICAgIGlmIChwb3N0Y29weV9zdGFydChzKSkg ewogICAgICAgICAgICAgICAgIGVycm9yX3JlcG9ydCgiJXM6IHBvc3Rjb3B5IGZhaWxlZCB0byBz dGFydCIsIF9fZnVuY19fKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL21pZ3JhdGlvbi9t dWx0aWZkLmMgYi9taWdyYXRpb24vbXVsdGlmZC5jCmluZGV4IGQwNDQxMjAyYWEuLjk0Yzk2Nzky NjIgMTAwNjQ0Ci0tLSBhL21pZ3JhdGlvbi9tdWx0aWZkLmMKKysrIGIvbWlncmF0aW9uL211bHRp ZmQuYwpAQCAtNDEwLDcgKzQxMCw3IEBAIHN0YXRpYyBpbnQgbXVsdGlmZF9zZW5kX3BhZ2VzKFFF TVVGaWxlICpmKQogICAgIE11bHRpRkRQYWdlc190ICpwYWdlcyA9IG11bHRpZmRfc2VuZF9zdGF0 ZS0+cGFnZXM7CiAgICAgdWludDY0X3QgdHJhbnNmZXJyZWQ7CiAKLSAgICBpZiAoYXRvbWljX3Jl YWQoJm11bHRpZmRfc2VuZF9zdGF0ZS0+ZXhpdGluZykpIHsKKyAgICBpZiAocWVtdV9hdG9taWNf cmVhZCgmbXVsdGlmZF9zZW5kX3N0YXRlLT5leGl0aW5nKSkgewogICAgICAgICByZXR1cm4gLTE7 CiAgICAgfQogCkBAIC01MDgsNyArNTA4LDcgQEAgc3RhdGljIHZvaWQgbXVsdGlmZF9zZW5kX3Rl cm1pbmF0ZV90aHJlYWRzKEVycm9yICplcnIpCiAgICAgICogdGhyZWFkcyBhdCB0aGUgc2FtZSB0 aW1lLCB3ZSBjYW4gZW5kIGNhbGxpbmcgdGhpcyBmdW5jdGlvbgogICAgICAqIHR3aWNlLgogICAg ICAqLwotICAgIGlmIChhdG9taWNfeGNoZygmbXVsdGlmZF9zZW5kX3N0YXRlLT5leGl0aW5nLCAx KSkgeworICAgIGlmIChxZW11X2F0b21pY194Y2hnKCZtdWx0aWZkX3NlbmRfc3RhdGUtPmV4aXRp bmcsIDEpKSB7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTYzMiw3ICs2MzIsNyBAQCBz dGF0aWMgdm9pZCAqbXVsdGlmZF9zZW5kX3RocmVhZCh2b2lkICpvcGFxdWUpCiAgICAgd2hpbGUg KHRydWUpIHsKICAgICAgICAgcWVtdV9zZW1fd2FpdCgmcC0+c2VtKTsKIAotICAgICAgICBpZiAo YXRvbWljX3JlYWQoJm11bHRpZmRfc2VuZF9zdGF0ZS0+ZXhpdGluZykpIHsKKyAgICAgICAgaWYg KHFlbXVfYXRvbWljX3JlYWQoJm11bHRpZmRfc2VuZF9zdGF0ZS0+ZXhpdGluZykpIHsKICAgICAg ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIHFlbXVfbXV0ZXhfbG9jaygmcC0+bXV0 ZXgpOwpAQCAtNzYwLDcgKzc2MCw3IEBAIGludCBtdWx0aWZkX3NhdmVfc2V0dXAoRXJyb3IgKipl cnJwKQogICAgIG11bHRpZmRfc2VuZF9zdGF0ZS0+cGFyYW1zID0gZ19uZXcwKE11bHRpRkRTZW5k UGFyYW1zLCB0aHJlYWRfY291bnQpOwogICAgIG11bHRpZmRfc2VuZF9zdGF0ZS0+cGFnZXMgPSBt dWx0aWZkX3BhZ2VzX2luaXQocGFnZV9jb3VudCk7CiAgICAgcWVtdV9zZW1faW5pdCgmbXVsdGlm ZF9zZW5kX3N0YXRlLT5jaGFubmVsc19yZWFkeSwgMCk7Ci0gICAgYXRvbWljX3NldCgmbXVsdGlm ZF9zZW5kX3N0YXRlLT5leGl0aW5nLCAwKTsKKyAgICBxZW11X2F0b21pY19zZXQoJm11bHRpZmRf c2VuZF9zdGF0ZS0+ZXhpdGluZywgMCk7CiAgICAgbXVsdGlmZF9zZW5kX3N0YXRlLT5vcHMgPSBt dWx0aWZkX29wc1ttaWdyYXRlX211bHRpZmRfY29tcHJlc3Npb24oKV07CiAKICAgICBmb3IgKGkg PSAwOyBpIDwgdGhyZWFkX2NvdW50OyBpKyspIHsKQEAgLTk5Nyw3ICs5OTcsNyBAQCBpbnQgbXVs dGlmZF9sb2FkX3NldHVwKEVycm9yICoqZXJycCkKICAgICB0aHJlYWRfY291bnQgPSBtaWdyYXRl X211bHRpZmRfY2hhbm5lbHMoKTsKICAgICBtdWx0aWZkX3JlY3Zfc3RhdGUgPSBnX21hbGxvYzAo c2l6ZW9mKCptdWx0aWZkX3JlY3Zfc3RhdGUpKTsKICAgICBtdWx0aWZkX3JlY3Zfc3RhdGUtPnBh cmFtcyA9IGdfbmV3MChNdWx0aUZEUmVjdlBhcmFtcywgdGhyZWFkX2NvdW50KTsKLSAgICBhdG9t aWNfc2V0KCZtdWx0aWZkX3JlY3Zfc3RhdGUtPmNvdW50LCAwKTsKKyAgICBxZW11X2F0b21pY19z ZXQoJm11bHRpZmRfcmVjdl9zdGF0ZS0+Y291bnQsIDApOwogICAgIHFlbXVfc2VtX2luaXQoJm11 bHRpZmRfcmVjdl9zdGF0ZS0+c2VtX3N5bmMsIDApOwogICAgIG11bHRpZmRfcmVjdl9zdGF0ZS0+ b3BzID0gbXVsdGlmZF9vcHNbbWlncmF0ZV9tdWx0aWZkX2NvbXByZXNzaW9uKCldOwogCkBAIC0x MDM3LDcgKzEwMzcsNyBAQCBib29sIG11bHRpZmRfcmVjdl9hbGxfY2hhbm5lbHNfY3JlYXRlZCh2 b2lkKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4gdGhyZWFkX2Nv dW50ID09IGF0b21pY19yZWFkKCZtdWx0aWZkX3JlY3Zfc3RhdGUtPmNvdW50KTsKKyAgICByZXR1 cm4gdGhyZWFkX2NvdW50ID09IHFlbXVfYXRvbWljX3JlYWQoJm11bHRpZmRfcmVjdl9zdGF0ZS0+ Y291bnQpOwogfQogCiAvKgpAQCAtMTA1OCw3ICsxMDU4LDcgQEAgYm9vbCBtdWx0aWZkX3JlY3Zf bmV3X2NoYW5uZWwoUUlPQ2hhbm5lbCAqaW9jLCBFcnJvciAqKmVycnApCiAgICAgICAgIGVycm9y X3Byb3BhZ2F0ZV9wcmVwZW5kKGVycnAsIGxvY2FsX2VyciwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgImZhaWxlZCB0byByZWNlaXZlIHBhY2tldCIKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIiB2aWEgbXVsdGlmZCBjaGFubmVsICVkOiAiLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhdG9taWNfcmVhZCgmbXVsdGlmZF9yZWN2X3N0YXRlLT5jb3Vu dCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxZW11X2F0b21pY19yZWFkKCZt dWx0aWZkX3JlY3Zfc3RhdGUtPmNvdW50KSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9 CiAgICAgdHJhY2VfbXVsdGlmZF9yZWN2X25ld19jaGFubmVsKGlkKTsKQEAgLTEwNzksNyArMTA3 OSw3IEBAIGJvb2wgbXVsdGlmZF9yZWN2X25ld19jaGFubmVsKFFJT0NoYW5uZWwgKmlvYywgRXJy b3IgKiplcnJwKQogICAgIHAtPnJ1bm5pbmcgPSB0cnVlOwogICAgIHFlbXVfdGhyZWFkX2NyZWF0 ZSgmcC0+dGhyZWFkLCBwLT5uYW1lLCBtdWx0aWZkX3JlY3ZfdGhyZWFkLCBwLAogICAgICAgICAg ICAgICAgICAgICAgICBRRU1VX1RIUkVBRF9KT0lOQUJMRSk7Ci0gICAgYXRvbWljX2luYygmbXVs dGlmZF9yZWN2X3N0YXRlLT5jb3VudCk7Ci0gICAgcmV0dXJuIGF0b21pY19yZWFkKCZtdWx0aWZk X3JlY3Zfc3RhdGUtPmNvdW50KSA9PQorICAgIHFlbXVfYXRvbWljX2luYygmbXVsdGlmZF9yZWN2 X3N0YXRlLT5jb3VudCk7CisgICAgcmV0dXJuIHFlbXVfYXRvbWljX3JlYWQoJm11bHRpZmRfcmVj dl9zdGF0ZS0+Y291bnQpID09CiAgICAgICAgICAgIG1pZ3JhdGVfbXVsdGlmZF9jaGFubmVscygp OwogfQpkaWZmIC0tZ2l0IGEvbWlncmF0aW9uL3Bvc3Rjb3B5LXJhbS5jIGIvbWlncmF0aW9uL3Bv c3Rjb3B5LXJhbS5jCmluZGV4IDFiYjIyZjJiNmMuLjA4Y2EyNjVkNWEgMTAwNjQ0Ci0tLSBhL21p Z3JhdGlvbi9wb3N0Y29weS1yYW0uYworKysgYi9taWdyYXRpb24vcG9zdGNvcHktcmFtLmMKQEAg LTUzMCw3ICs1MzAsNyBAQCBpbnQgcG9zdGNvcHlfcmFtX2luY29taW5nX2NsZWFudXAoTWlncmF0 aW9uSW5jb21pbmdTdGF0ZSAqbWlzKQogICAgICAgICBFcnJvciAqbG9jYWxfZXJyID0gTlVMTDsK IAogICAgICAgICAvKiBMZXQgdGhlIGZhdWx0IHRocmVhZCBxdWl0ICovCi0gICAgICAgIGF0b21p Y19zZXQoJm1pcy0+ZmF1bHRfdGhyZWFkX3F1aXQsIDEpOworICAgICAgICBxZW11X2F0b21pY19z ZXQoJm1pcy0+ZmF1bHRfdGhyZWFkX3F1aXQsIDEpOwogICAgICAgICBwb3N0Y29weV9mYXVsdF90 aHJlYWRfbm90aWZ5KG1pcyk7CiAgICAgICAgIHRyYWNlX3Bvc3Rjb3B5X3JhbV9pbmNvbWluZ19j bGVhbnVwX2pvaW4oKTsKICAgICAgICAgcWVtdV90aHJlYWRfam9pbigmbWlzLT5mYXVsdF90aHJl YWQpOwpAQCAtNzQyLDEyICs3NDIsMTIgQEAgc3RhdGljIHZvaWQgbWFya19wb3N0Y29weV9ibG9j a3RpbWVfYmVnaW4odWludHB0cl90IGFkZHIsIHVpbnQzMl90IHB0aWQsCiAKICAgICBsb3dfdGlt ZV9vZmZzZXQgPSBnZXRfbG93X3RpbWVfb2Zmc2V0KGRjKTsKICAgICBpZiAoZGMtPnZjcHVfYWRk cltjcHVdID09IDApIHsKLSAgICAgICAgYXRvbWljX2luYygmZGMtPnNtcF9jcHVzX2Rvd24pOwor ICAgICAgICBxZW11X2F0b21pY19pbmMoJmRjLT5zbXBfY3B1c19kb3duKTsKICAgICB9CiAKLSAg ICBhdG9taWNfeGNoZygmZGMtPmxhc3RfYmVnaW4sIGxvd190aW1lX29mZnNldCk7Ci0gICAgYXRv bWljX3hjaGcoJmRjLT5wYWdlX2ZhdWx0X3ZjcHVfdGltZVtjcHVdLCBsb3dfdGltZV9vZmZzZXQp OwotICAgIGF0b21pY194Y2hnKCZkYy0+dmNwdV9hZGRyW2NwdV0sIGFkZHIpOworICAgIHFlbXVf YXRvbWljX3hjaGcoJmRjLT5sYXN0X2JlZ2luLCBsb3dfdGltZV9vZmZzZXQpOworICAgIHFlbXVf YXRvbWljX3hjaGcoJmRjLT5wYWdlX2ZhdWx0X3ZjcHVfdGltZVtjcHVdLCBsb3dfdGltZV9vZmZz ZXQpOworICAgIHFlbXVfYXRvbWljX3hjaGcoJmRjLT52Y3B1X2FkZHJbY3B1XSwgYWRkcik7CiAK ICAgICAvKgogICAgICAqIGNoZWNrIGl0IGhlcmUsIG5vdCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRo ZSBmdW5jdGlvbiwKQEAgLTc1Niw5ICs3NTYsOSBAQCBzdGF0aWMgdm9pZCBtYXJrX3Bvc3Rjb3B5 X2Jsb2NrdGltZV9iZWdpbih1aW50cHRyX3QgYWRkciwgdWludDMyX3QgcHRpZCwKICAgICAgKi8K ICAgICBhbHJlYWR5X3JlY2VpdmVkID0gcmFtYmxvY2tfcmVjdl9iaXRtYXBfdGVzdChyYiwgKHZv aWQgKilhZGRyKTsKICAgICBpZiAoYWxyZWFkeV9yZWNlaXZlZCkgewotICAgICAgICBhdG9taWNf eGNoZygmZGMtPnZjcHVfYWRkcltjcHVdLCAwKTsKLSAgICAgICAgYXRvbWljX3hjaGcoJmRjLT5w YWdlX2ZhdWx0X3ZjcHVfdGltZVtjcHVdLCAwKTsKLSAgICAgICAgYXRvbWljX2RlYygmZGMtPnNt cF9jcHVzX2Rvd24pOworICAgICAgICBxZW11X2F0b21pY194Y2hnKCZkYy0+dmNwdV9hZGRyW2Nw dV0sIDApOworICAgICAgICBxZW11X2F0b21pY194Y2hnKCZkYy0+cGFnZV9mYXVsdF92Y3B1X3Rp bWVbY3B1XSwgMCk7CisgICAgICAgIHFlbXVfYXRvbWljX2RlYygmZGMtPnNtcF9jcHVzX2Rvd24p OwogICAgIH0KICAgICB0cmFjZV9tYXJrX3Bvc3Rjb3B5X2Jsb2NrdGltZV9iZWdpbihhZGRyLCBk YywgZGMtPnBhZ2VfZmF1bHRfdmNwdV90aW1lW2NwdV0sCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY3B1LCBhbHJlYWR5X3JlY2VpdmVkKTsKQEAgLTgxMywyOCArODEz LDI5IEBAIHN0YXRpYyB2b2lkIG1hcmtfcG9zdGNvcHlfYmxvY2t0aW1lX2VuZCh1aW50cHRyX3Qg YWRkcikKICAgICBmb3IgKGkgPSAwOyBpIDwgc21wX2NwdXM7IGkrKykgewogICAgICAgICB1aW50 MzJfdCB2Y3B1X2Jsb2NrdGltZSA9IDA7CiAKLSAgICAgICAgcmVhZF92Y3B1X3RpbWUgPSBhdG9t aWNfZmV0Y2hfYWRkKCZkYy0+cGFnZV9mYXVsdF92Y3B1X3RpbWVbaV0sIDApOwotICAgICAgICBp ZiAoYXRvbWljX2ZldGNoX2FkZCgmZGMtPnZjcHVfYWRkcltpXSwgMCkgIT0gYWRkciB8fAorICAg ICAgICByZWFkX3ZjcHVfdGltZSA9CisgICAgICAgICAgICBxZW11X2F0b21pY19mZXRjaF9hZGQo JmRjLT5wYWdlX2ZhdWx0X3ZjcHVfdGltZVtpXSwgMCk7CisgICAgICAgIGlmIChxZW11X2F0b21p Y19mZXRjaF9hZGQoJmRjLT52Y3B1X2FkZHJbaV0sIDApICE9IGFkZHIgfHwKICAgICAgICAgICAg IHJlYWRfdmNwdV90aW1lID09IDApIHsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9 Ci0gICAgICAgIGF0b21pY194Y2hnKCZkYy0+dmNwdV9hZGRyW2ldLCAwKTsKKyAgICAgICAgcWVt dV9hdG9taWNfeGNoZygmZGMtPnZjcHVfYWRkcltpXSwgMCk7CiAgICAgICAgIHZjcHVfYmxvY2t0 aW1lID0gbG93X3RpbWVfb2Zmc2V0IC0gcmVhZF92Y3B1X3RpbWU7CiAgICAgICAgIGFmZmVjdGVk X2NwdSArPSAxOwogICAgICAgICAvKiB3ZSBuZWVkIHRvIGtub3cgaXMgdGhhdCBtYXJrX3Bvc3Rj b3B5X2VuZCB3YXMgZHVlIHRvCiAgICAgICAgICAqIGZhdWx0ZWQgcGFnZSwgYW5vdGhlciBwb3Nz aWJsZSBjYXNlIGl0J3MgcHJlZmV0Y2hlZAogICAgICAgICAgKiBwYWdlIGFuZCBpbiB0aGF0IGNh c2Ugd2Ugc2hvdWxkbid0IGJlIGhlcmUgKi8KICAgICAgICAgaWYgKCF2Y3B1X3RvdGFsX2Jsb2Nr dGltZSAmJgotICAgICAgICAgICAgYXRvbWljX2ZldGNoX2FkZCgmZGMtPnNtcF9jcHVzX2Rvd24s IDApID09IHNtcF9jcHVzKSB7CisgICAgICAgICAgICBxZW11X2F0b21pY19mZXRjaF9hZGQoJmRj LT5zbXBfY3B1c19kb3duLCAwKSA9PSBzbXBfY3B1cykgewogICAgICAgICAgICAgdmNwdV90b3Rh bF9ibG9ja3RpbWUgPSB0cnVlOwogICAgICAgICB9CiAgICAgICAgIC8qIGNvbnRpbnVlIGN5Y2xl LCBkdWUgdG8gb25lIHBhZ2UgY291bGQgYWZmZWN0IHNldmVyYWwgdkNQVXMgKi8KICAgICAgICAg ZGMtPnZjcHVfYmxvY2t0aW1lW2ldICs9IHZjcHVfYmxvY2t0aW1lOwogICAgIH0KIAotICAgIGF0 b21pY19zdWIoJmRjLT5zbXBfY3B1c19kb3duLCBhZmZlY3RlZF9jcHUpOworICAgIHFlbXVfYXRv bWljX3N1YigmZGMtPnNtcF9jcHVzX2Rvd24sIGFmZmVjdGVkX2NwdSk7CiAgICAgaWYgKHZjcHVf dG90YWxfYmxvY2t0aW1lKSB7Ci0gICAgICAgIGRjLT50b3RhbF9ibG9ja3RpbWUgKz0gbG93X3Rp bWVfb2Zmc2V0IC0gYXRvbWljX2ZldGNoX2FkZCgKKyAgICAgICAgZGMtPnRvdGFsX2Jsb2NrdGlt ZSArPSBsb3dfdGltZV9vZmZzZXQgLSBxZW11X2F0b21pY19mZXRjaF9hZGQoCiAgICAgICAgICAg ICAgICAgJmRjLT5sYXN0X2JlZ2luLCAwKTsKICAgICB9CiAgICAgdHJhY2VfbWFya19wb3N0Y29w eV9ibG9ja3RpbWVfZW5kKGFkZHIsIGRjLCBkYy0+dG90YWxfYmxvY2t0aW1lLApAQCAtOTI4LDcg KzkyOSw3IEBAIHN0YXRpYyB2b2lkICpwb3N0Y29weV9yYW1fZmF1bHRfdGhyZWFkKHZvaWQgKm9w YXF1ZSkKICAgICAgICAgICAgICAgICBlcnJvcl9yZXBvcnQoIiVzOiByZWFkKCkgZmFpbGVkIiwg X19mdW5jX18pOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAoYXRvbWljX3JlYWQo Jm1pcy0+ZmF1bHRfdGhyZWFkX3F1aXQpKSB7CisgICAgICAgICAgICBpZiAocWVtdV9hdG9taWNf cmVhZCgmbWlzLT5mYXVsdF90aHJlYWRfcXVpdCkpIHsKICAgICAgICAgICAgICAgICB0cmFjZV9w b3N0Y29weV9yYW1fZmF1bHRfdGhyZWFkX3F1aXQoKTsKICAgICAgICAgICAgICAgICBicmVhazsK ICAgICAgICAgICAgIH0KQEAgLTE0MTAsMTMgKzE0MTEsMTMgQEAgc3RhdGljIFBvc3Rjb3B5U3Rh dGUgaW5jb21pbmdfcG9zdGNvcHlfc3RhdGU7CiAKIFBvc3Rjb3B5U3RhdGUgIHBvc3Rjb3B5X3N0 YXRlX2dldCh2b2lkKQogewotICAgIHJldHVybiBhdG9taWNfbWJfcmVhZCgmaW5jb21pbmdfcG9z dGNvcHlfc3RhdGUpOworICAgIHJldHVybiBxZW11X2F0b21pY19tYl9yZWFkKCZpbmNvbWluZ19w b3N0Y29weV9zdGF0ZSk7CiB9CiAKIC8qIFNldCB0aGUgc3RhdGUgYW5kIHJldHVybiB0aGUgb2xk IHN0YXRlICovCiBQb3N0Y29weVN0YXRlIHBvc3Rjb3B5X3N0YXRlX3NldChQb3N0Y29weVN0YXRl IG5ld19zdGF0ZSkKIHsKLSAgICByZXR1cm4gYXRvbWljX3hjaGcoJmluY29taW5nX3Bvc3Rjb3B5 X3N0YXRlLCBuZXdfc3RhdGUpOworICAgIHJldHVybiBxZW11X2F0b21pY194Y2hnKCZpbmNvbWlu Z19wb3N0Y29weV9zdGF0ZSwgbmV3X3N0YXRlKTsKIH0KIAogLyogUmVnaXN0ZXIgYSBoYW5kbGVy IGZvciBleHRlcm5hbCBzaGFyZWQgbWVtb3J5IHBvc3Rjb3B5CmRpZmYgLS1naXQgYS9taWdyYXRp b24vcmRtYS5jIGIvbWlncmF0aW9uL3JkbWEuYwppbmRleCAxZGM1NjNlYzNmLi5jNGEzODAzNDhk IDEwMDY0NAotLS0gYS9taWdyYXRpb24vcmRtYS5jCisrKyBiL21pZ3JhdGlvbi9yZG1hLmMKQEAg LTI2ODAsNyArMjY4MCw3IEBAIHN0YXRpYyBzc2l6ZV90IHFpb19jaGFubmVsX3JkbWFfd3JpdGV2 KFFJT0NoYW5uZWwgKmlvYywKICAgICBzaXplX3QgbGVuID0gMDsKIAogICAgIFJDVV9SRUFEX0xP Q0tfR1VBUkQoKTsKLSAgICByZG1hID0gYXRvbWljX3JjdV9yZWFkKCZyaW9jLT5yZG1hb3V0KTsK KyAgICByZG1hID0gcWVtdV9hdG9taWNfcmN1X3JlYWQoJnJpb2MtPnJkbWFvdXQpOwogCiAgICAg aWYgKCFyZG1hKSB7CiAgICAgICAgIHJldHVybiAtRUlPOwpAQCAtMjc2Miw3ICsyNzYyLDcgQEAg c3RhdGljIHNzaXplX3QgcWlvX2NoYW5uZWxfcmRtYV9yZWFkdihRSU9DaGFubmVsICppb2MsCiAg ICAgc2l6ZV90IGRvbmUgPSAwOwogCiAgICAgUkNVX1JFQURfTE9DS19HVUFSRCgpOwotICAgIHJk bWEgPSBhdG9taWNfcmN1X3JlYWQoJnJpb2MtPnJkbWFpbik7CisgICAgcmRtYSA9IHFlbXVfYXRv bWljX3JjdV9yZWFkKCZyaW9jLT5yZG1haW4pOwogCiAgICAgaWYgKCFyZG1hKSB7CiAgICAgICAg IHJldHVybiAtRUlPOwpAQCAtMjg3Nyw5ICsyODc3LDkgQEAgcWlvX2NoYW5uZWxfcmRtYV9zb3Vy Y2VfcHJlcGFyZShHU291cmNlICpzb3VyY2UsCiAKICAgICBSQ1VfUkVBRF9MT0NLX0dVQVJEKCk7 CiAgICAgaWYgKHJzb3VyY2UtPmNvbmRpdGlvbiA9PSBHX0lPX0lOKSB7Ci0gICAgICAgIHJkbWEg PSBhdG9taWNfcmN1X3JlYWQoJnJzb3VyY2UtPnJpb2MtPnJkbWFpbik7CisgICAgICAgIHJkbWEg PSBxZW11X2F0b21pY19yY3VfcmVhZCgmcnNvdXJjZS0+cmlvYy0+cmRtYWluKTsKICAgICB9IGVs c2UgewotICAgICAgICByZG1hID0gYXRvbWljX3JjdV9yZWFkKCZyc291cmNlLT5yaW9jLT5yZG1h b3V0KTsKKyAgICAgICAgcmRtYSA9IHFlbXVfYXRvbWljX3JjdV9yZWFkKCZyc291cmNlLT5yaW9j LT5yZG1hb3V0KTsKICAgICB9CiAKICAgICBpZiAoIXJkbWEpIHsKQEAgLTI5MDQsOSArMjkwNCw5 IEBAIHFpb19jaGFubmVsX3JkbWFfc291cmNlX2NoZWNrKEdTb3VyY2UgKnNvdXJjZSkKIAogICAg IFJDVV9SRUFEX0xPQ0tfR1VBUkQoKTsKICAgICBpZiAocnNvdXJjZS0+Y29uZGl0aW9uID09IEdf SU9fSU4pIHsKLSAgICAgICAgcmRtYSA9IGF0b21pY19yY3VfcmVhZCgmcnNvdXJjZS0+cmlvYy0+ cmRtYWluKTsKKyAgICAgICAgcmRtYSA9IHFlbXVfYXRvbWljX3JjdV9yZWFkKCZyc291cmNlLT5y aW9jLT5yZG1haW4pOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHJkbWEgPSBhdG9taWNfcmN1X3Jl YWQoJnJzb3VyY2UtPnJpb2MtPnJkbWFvdXQpOworICAgICAgICByZG1hID0gcWVtdV9hdG9taWNf cmN1X3JlYWQoJnJzb3VyY2UtPnJpb2MtPnJkbWFvdXQpOwogICAgIH0KIAogICAgIGlmICghcmRt YSkgewpAQCAtMjkzNCw5ICsyOTM0LDkgQEAgcWlvX2NoYW5uZWxfcmRtYV9zb3VyY2VfZGlzcGF0 Y2goR1NvdXJjZSAqc291cmNlLAogCiAgICAgUkNVX1JFQURfTE9DS19HVUFSRCgpOwogICAgIGlm IChyc291cmNlLT5jb25kaXRpb24gPT0gR19JT19JTikgewotICAgICAgICByZG1hID0gYXRvbWlj X3JjdV9yZWFkKCZyc291cmNlLT5yaW9jLT5yZG1haW4pOworICAgICAgICByZG1hID0gcWVtdV9h dG9taWNfcmN1X3JlYWQoJnJzb3VyY2UtPnJpb2MtPnJkbWFpbik7CiAgICAgfSBlbHNlIHsKLSAg ICAgICAgcmRtYSA9IGF0b21pY19yY3VfcmVhZCgmcnNvdXJjZS0+cmlvYy0+cmRtYW91dCk7Cisg ICAgICAgIHJkbWEgPSBxZW11X2F0b21pY19yY3VfcmVhZCgmcnNvdXJjZS0+cmlvYy0+cmRtYW91 dCk7CiAgICAgfQogCiAgICAgaWYgKCFyZG1hKSB7CkBAIC0zMDM3LDEyICszMDM3LDEyIEBAIHN0 YXRpYyBpbnQgcWlvX2NoYW5uZWxfcmRtYV9jbG9zZShRSU9DaGFubmVsICppb2MsCiAKICAgICBy ZG1haW4gPSByaW9jLT5yZG1haW47CiAgICAgaWYgKHJkbWFpbikgewotICAgICAgICBhdG9taWNf cmN1X3NldCgmcmlvYy0+cmRtYWluLCBOVUxMKTsKKyAgICAgICAgcWVtdV9hdG9taWNfcmN1X3Nl dCgmcmlvYy0+cmRtYWluLCBOVUxMKTsKICAgICB9CiAKICAgICByZG1hb3V0ID0gcmlvYy0+cmRt YW91dDsKICAgICBpZiAocmRtYW91dCkgewotICAgICAgICBhdG9taWNfcmN1X3NldCgmcmlvYy0+ cmRtYW91dCwgTlVMTCk7CisgICAgICAgIHFlbXVfYXRvbWljX3JjdV9zZXQoJnJpb2MtPnJkbWFv dXQsIE5VTEwpOwogICAgIH0KIAogICAgIHJjdS0+cmRtYWluID0gcmRtYWluOwpAQCAtMzA2Miw4 ICszMDYyLDggQEAgcWlvX2NoYW5uZWxfcmRtYV9zaHV0ZG93bihRSU9DaGFubmVsICppb2MsCiAK ICAgICBSQ1VfUkVBRF9MT0NLX0dVQVJEKCk7CiAKLSAgICByZG1haW4gPSBhdG9taWNfcmN1X3Jl YWQoJnJpb2MtPnJkbWFpbik7Ci0gICAgcmRtYW91dCA9IGF0b21pY19yY3VfcmVhZCgmcmlvYy0+ cmRtYWluKTsKKyAgICByZG1haW4gPSBxZW11X2F0b21pY19yY3VfcmVhZCgmcmlvYy0+cmRtYWlu KTsKKyAgICByZG1hb3V0ID0gcWVtdV9hdG9taWNfcmN1X3JlYWQoJnJpb2MtPnJkbWFpbik7CiAK ICAgICBzd2l0Y2ggKGhvdykgewogICAgIGNhc2UgUUlPX0NIQU5ORUxfU0hVVERPV05fUkVBRDoK QEAgLTMxMzMsNyArMzEzMyw3IEBAIHN0YXRpYyBzaXplX3QgcWVtdV9yZG1hX3NhdmVfcGFnZShR RU1VRmlsZSAqZiwgdm9pZCAqb3BhcXVlLAogICAgIGludCByZXQ7CiAKICAgICBSQ1VfUkVBRF9M T0NLX0dVQVJEKCk7Ci0gICAgcmRtYSA9IGF0b21pY19yY3VfcmVhZCgmcmlvYy0+cmRtYW91dCk7 CisgICAgcmRtYSA9IHFlbXVfYXRvbWljX3JjdV9yZWFkKCZyaW9jLT5yZG1hb3V0KTsKIAogICAg IGlmICghcmRtYSkgewogICAgICAgICByZXR1cm4gLUVJTzsKQEAgLTM0NTMsNyArMzQ1Myw3IEBA IHN0YXRpYyBpbnQgcWVtdV9yZG1hX3JlZ2lzdHJhdGlvbl9oYW5kbGUoUUVNVUZpbGUgKmYsIHZv aWQgKm9wYXF1ZSkKICAgICBpbnQgaSA9IDA7CiAKICAgICBSQ1VfUkVBRF9MT0NLX0dVQVJEKCk7 Ci0gICAgcmRtYSA9IGF0b21pY19yY3VfcmVhZCgmcmlvYy0+cmRtYWluKTsKKyAgICByZG1hID0g cWVtdV9hdG9taWNfcmN1X3JlYWQoJnJpb2MtPnJkbWFpbik7CiAKICAgICBpZiAoIXJkbWEpIHsK ICAgICAgICAgcmV0dXJuIC1FSU87CkBAIC0zNzE2LDcgKzM3MTYsNyBAQCByZG1hX2Jsb2NrX25v dGlmaWNhdGlvbl9oYW5kbGUoUUlPQ2hhbm5lbFJETUEgKnJpb2MsIGNvbnN0IGNoYXIgKm5hbWUp CiAgICAgaW50IGZvdW5kID0gLTE7CiAKICAgICBSQ1VfUkVBRF9MT0NLX0dVQVJEKCk7Ci0gICAg cmRtYSA9IGF0b21pY19yY3VfcmVhZCgmcmlvYy0+cmRtYWluKTsKKyAgICByZG1hID0gcWVtdV9h dG9taWNfcmN1X3JlYWQoJnJpb2MtPnJkbWFpbik7CiAKICAgICBpZiAoIXJkbWEpIHsKICAgICAg ICAgcmV0dXJuIC1FSU87CkBAIC0zNzY0LDcgKzM3NjQsNyBAQCBzdGF0aWMgaW50IHFlbXVfcmRt YV9yZWdpc3RyYXRpb25fc3RhcnQoUUVNVUZpbGUgKmYsIHZvaWQgKm9wYXF1ZSwKICAgICBSRE1B Q29udGV4dCAqcmRtYTsKIAogICAgIFJDVV9SRUFEX0xPQ0tfR1VBUkQoKTsKLSAgICByZG1hID0g YXRvbWljX3JjdV9yZWFkKCZyaW9jLT5yZG1hb3V0KTsKKyAgICByZG1hID0gcWVtdV9hdG9taWNf cmN1X3JlYWQoJnJpb2MtPnJkbWFvdXQpOwogICAgIGlmICghcmRtYSkgewogICAgICAgICByZXR1 cm4gLUVJTzsKICAgICB9CkBAIC0zNzk1LDcgKzM3OTUsNyBAQCBzdGF0aWMgaW50IHFlbXVfcmRt YV9yZWdpc3RyYXRpb25fc3RvcChRRU1VRmlsZSAqZiwgdm9pZCAqb3BhcXVlLAogICAgIGludCBy ZXQgPSAwOwogCiAgICAgUkNVX1JFQURfTE9DS19HVUFSRCgpOwotICAgIHJkbWEgPSBhdG9taWNf cmN1X3JlYWQoJnJpb2MtPnJkbWFvdXQpOworICAgIHJkbWEgPSBxZW11X2F0b21pY19yY3VfcmVh ZCgmcmlvYy0+cmRtYW91dCk7CiAgICAgaWYgKCFyZG1hKSB7CiAgICAgICAgIHJldHVybiAtRUlP OwogICAgIH0KZGlmZiAtLWdpdCBhL21vbml0b3IvaG1wLmMgYi9tb25pdG9yL2htcC5jCmluZGV4 IGQ1OThkZDAyYmIuLmE0MjY1M2U1NzMgMTAwNjQ0Ci0tLSBhL21vbml0b3IvaG1wLmMKKysrIGIv bW9uaXRvci9obXAuYwpAQCAtMTMzNywxOSArMTMzNywxOSBAQCBzdGF0aWMgdm9pZCBtb25pdG9y X2V2ZW50KHZvaWQgKm9wYXF1ZSwgUUVNVUNockV2ZW50IGV2ZW50KQogICAgICAgICAgICAgbW9u aXRvcl9yZXN1bWUobW9uKTsKICAgICAgICAgICAgIG1vbml0b3JfZmx1c2gobW9uKTsKICAgICAg ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGF0b21pY19tYl9zZXQoJm1vbi0+c3VzcGVuZF9jbnQs IDApOworICAgICAgICAgICAgcWVtdV9hdG9taWNfbWJfc2V0KCZtb24tPnN1c3BlbmRfY250LCAw KTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ0hSX0VWRU5UX01VWF9P VVQ6CiAgICAgICAgIGlmIChtb24tPnJlc2V0X3NlZW4pIHsKLSAgICAgICAgICAgIGlmIChhdG9t aWNfbWJfcmVhZCgmbW9uLT5zdXNwZW5kX2NudCkgPT0gMCkgeworICAgICAgICAgICAgaWYgKHFl bXVfYXRvbWljX21iX3JlYWQoJm1vbi0+c3VzcGVuZF9jbnQpID09IDApIHsKICAgICAgICAgICAg ICAgICBtb25pdG9yX3ByaW50Zihtb24sICJcbiIpOwogICAgICAgICAgICAgfQogICAgICAgICAg ICAgbW9uaXRvcl9mbHVzaChtb24pOwogICAgICAgICAgICAgbW9uaXRvcl9zdXNwZW5kKG1vbik7 CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdG9taWNfaW5jKCZtb24tPnN1c3BlbmRf Y250KTsKKyAgICAgICAgICAgIHFlbXVfYXRvbWljX2luYygmbW9uLT5zdXNwZW5kX2NudCk7CiAg ICAgICAgIH0KICAgICAgICAgcWVtdV9tdXRleF9sb2NrKCZtb24tPm1vbl9sb2NrKTsKICAgICAg ICAgbW9uLT5tdXhfb3V0ID0gMTsKZGlmZiAtLWdpdCBhL21vbml0b3IvbWlzYy5jIGIvbW9uaXRv ci9taXNjLmMKaW5kZXggMGIxYjliMTk2Yy4uYzA1MmIwNmYxMiAxMDA2NDQKLS0tIGEvbW9uaXRv ci9taXNjLmMKKysrIGIvbW9uaXRvci9taXNjLmMKQEAgLTc1MSw3ICs3NTEsNyBAQCBzdGF0aWMg dWludDY0X3QgdnRvcCh2b2lkICpwdHIsIEVycm9yICoqZXJycCkKICAgICB9CiAKICAgICAvKiBG b3JjZSBjb3B5LW9uLXdyaXRlIGlmIG5lY2Vzc2FyeS4gICovCi0gICAgYXRvbWljX2FkZCgodWlu dDhfdCAqKXB0ciwgMCk7CisgICAgcWVtdV9hdG9taWNfYWRkKCh1aW50OF90ICopcHRyLCAwKTsK IAogICAgIGlmIChwcmVhZChmZCwgJnBpbmZvLCBzaXplb2YocGluZm8pLCBvZmZzZXQpICE9IHNp emVvZihwaW5mbykpIHsKICAgICAgICAgZXJyb3Jfc2V0Z19lcnJubyhlcnJwLCBlcnJubywgIkNh bm5vdCByZWFkIHBhZ2VtYXAiKTsKZGlmZiAtLWdpdCBhL21vbml0b3IvbW9uaXRvci5jIGIvbW9u aXRvci9tb25pdG9yLmMKaW5kZXggYjM4NWEzZDU2OS4uNzFmYTliZWE2ZSAxMDA2NDQKLS0tIGEv bW9uaXRvci9tb25pdG9yLmMKKysrIGIvbW9uaXRvci9tb25pdG9yLmMKQEAgLTQ0OSw3ICs0NDks NyBAQCBpbnQgbW9uaXRvcl9zdXNwZW5kKE1vbml0b3IgKm1vbikKICAgICAgICAgcmV0dXJuIC1F Tk9UVFk7CiAgICAgfQogCi0gICAgYXRvbWljX2luYygmbW9uLT5zdXNwZW5kX2NudCk7CisgICAg cWVtdV9hdG9taWNfaW5jKCZtb24tPnN1c3BlbmRfY250KTsKIAogICAgIGlmIChtb24tPnVzZV9p b190aHJlYWQpIHsKICAgICAgICAgLyoKQEAgLTQ3Niw3ICs0NzYsNyBAQCB2b2lkIG1vbml0b3Jf cmVzdW1lKE1vbml0b3IgKm1vbikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChh dG9taWNfZGVjX2ZldGNoKCZtb24tPnN1c3BlbmRfY250KSA9PSAwKSB7CisgICAgaWYgKHFlbXVf YXRvbWljX2RlY19mZXRjaCgmbW9uLT5zdXNwZW5kX2NudCkgPT0gMCkgewogICAgICAgICBBaW9D b250ZXh0ICpjdHg7CiAKICAgICAgICAgaWYgKG1vbi0+dXNlX2lvX3RocmVhZCkgewpAQCAtNTAx LDcgKzUwMSw3IEBAIGludCBtb25pdG9yX2Nhbl9yZWFkKHZvaWQgKm9wYXF1ZSkKIHsKICAgICBN b25pdG9yICptb24gPSBvcGFxdWU7CiAKLSAgICByZXR1cm4gIWF0b21pY19tYl9yZWFkKCZtb24t PnN1c3BlbmRfY250KTsKKyAgICByZXR1cm4gIXFlbXVfYXRvbWljX21iX3JlYWQoJm1vbi0+c3Vz cGVuZF9jbnQpOwogfQogCiB2b2lkIG1vbml0b3JfbGlzdF9hcHBlbmQoTW9uaXRvciAqbW9uKQpk aWZmIC0tZ2l0IGEvcWVtdS1uYmQuYyBiL3FlbXUtbmJkLmMKaW5kZXggMzM0NzZhMTAwMC4uYjYz YTc1YzNmOCAxMDA2NDQKLS0tIGEvcWVtdS1uYmQuYworKysgYi9xZW11LW5iZC5jCkBAIC0xNTgs NyArMTU4LDcgQEAgUUVNVV9DT1BZUklHSFQgIlxuIgogI2lmIEhBVkVfTkJEX0RFVklDRQogc3Rh dGljIHZvaWQgdGVybXNpZ19oYW5kbGVyKGludCBzaWdudW0pCiB7Ci0gICAgYXRvbWljX2NtcHhj aGcoJnN0YXRlLCBSVU5OSU5HLCBURVJNSU5BVEUpOworICAgIHFlbXVfYXRvbWljX2NtcHhjaGco JnN0YXRlLCBSVU5OSU5HLCBURVJNSU5BVEUpOwogICAgIHFlbXVfbm90aWZ5X2V2ZW50KCk7CiB9 CiAjZW5kaWYgLyogSEFWRV9OQkRfREVWSUNFICovCmRpZmYgLS1naXQgYS9xZ2EvY29tbWFuZHMu YyBiL3FnYS9jb21tYW5kcy5jCmluZGV4IGQzZmVjODA3YzEuLjgzZjNhNTRkMTUgMTAwNjQ0Ci0t LSBhL3FnYS9jb21tYW5kcy5jCisrKyBiL3FnYS9jb21tYW5kcy5jCkBAIC0xNjYsMTMgKzE2Niwx MyBAQCBHdWVzdEV4ZWNTdGF0dXMgKnFtcF9ndWVzdF9leGVjX3N0YXR1cyhpbnQ2NF90IHBpZCwg RXJyb3IgKiplcnJwKQogCiAgICAgZ2VzID0gZ19uZXcwKEd1ZXN0RXhlY1N0YXR1cywgMSk7CiAK LSAgICBib29sIGZpbmlzaGVkID0gYXRvbWljX21iX3JlYWQoJmdlaS0+ZmluaXNoZWQpOworICAg IGJvb2wgZmluaXNoZWQgPSBxZW11X2F0b21pY19tYl9yZWFkKCZnZWktPmZpbmlzaGVkKTsKIAog ICAgIC8qIG5lZWQgdG8gd2FpdCB0aWxsIG91dHB1dCBjaGFubmVscyBhcmUgY2xvc2VkCiAgICAg ICogdG8gYmUgc3VyZSB3ZSBjYXB0dXJlZCBhbGwgb3V0cHV0IGF0IHRoaXMgcG9pbnQgKi8KICAg ICBpZiAoZ2VpLT5oYXNfb3V0cHV0KSB7Ci0gICAgICAgIGZpbmlzaGVkID0gZmluaXNoZWQgJiYg YXRvbWljX21iX3JlYWQoJmdlaS0+b3V0LmNsb3NlZCk7Ci0gICAgICAgIGZpbmlzaGVkID0gZmlu aXNoZWQgJiYgYXRvbWljX21iX3JlYWQoJmdlaS0+ZXJyLmNsb3NlZCk7CisgICAgICAgIGZpbmlz aGVkID0gZmluaXNoZWQgJiYgcWVtdV9hdG9taWNfbWJfcmVhZCgmZ2VpLT5vdXQuY2xvc2VkKTsK KyAgICAgICAgZmluaXNoZWQgPSBmaW5pc2hlZCAmJiBxZW11X2F0b21pY19tYl9yZWFkKCZnZWkt PmVyci5jbG9zZWQpOwogICAgIH0KIAogICAgIGdlcy0+ZXhpdGVkID0gZmluaXNoZWQ7CkBAIC0y NzQsNyArMjc0LDcgQEAgc3RhdGljIHZvaWQgZ3Vlc3RfZXhlY19jaGlsZF93YXRjaChHUGlkIHBp ZCwgZ2ludCBzdGF0dXMsIGdwb2ludGVyIGRhdGEpCiAgICAgICAgICAgICAoaW50MzJfdClncGlk X3RvX2ludDY0KHBpZCksICh1aW50MzJfdClzdGF0dXMpOwogCiAgICAgZ2VpLT5zdGF0dXMgPSBz dGF0dXM7Ci0gICAgYXRvbWljX21iX3NldCgmZ2VpLT5maW5pc2hlZCwgdHJ1ZSk7CisgICAgcWVt dV9hdG9taWNfbWJfc2V0KCZnZWktPmZpbmlzaGVkLCB0cnVlKTsKIAogICAgIGdfc3Bhd25fY2xv c2VfcGlkKHBpZCk7CiB9CkBAIC0zMzAsNyArMzMwLDcgQEAgc3RhdGljIGdib29sZWFuIGd1ZXN0 X2V4ZWNfaW5wdXRfd2F0Y2goR0lPQ2hhbm5lbCAqY2gsCiBkb25lOgogICAgIGdfaW9fY2hhbm5l bF9zaHV0ZG93bihjaCwgdHJ1ZSwgTlVMTCk7CiAgICAgZ19pb19jaGFubmVsX3VucmVmKGNoKTsK LSAgICBhdG9taWNfbWJfc2V0KCZwLT5jbG9zZWQsIHRydWUpOworICAgIHFlbXVfYXRvbWljX21i X3NldCgmcC0+Y2xvc2VkLCB0cnVlKTsKICAgICBnX2ZyZWUocC0+ZGF0YSk7CiAKICAgICByZXR1 cm4gZmFsc2U7CkBAIC0zODQsNyArMzg0LDcgQEAgc3RhdGljIGdib29sZWFuIGd1ZXN0X2V4ZWNf b3V0cHV0X3dhdGNoKEdJT0NoYW5uZWwgKmNoLAogY2xvc2U6CiAgICAgZ19pb19jaGFubmVsX3No dXRkb3duKGNoLCB0cnVlLCBOVUxMKTsKICAgICBnX2lvX2NoYW5uZWxfdW5yZWYoY2gpOwotICAg IGF0b21pY19tYl9zZXQoJnAtPmNsb3NlZCwgdHJ1ZSk7CisgICAgcWVtdV9hdG9taWNfbWJfc2V0 KCZwLT5jbG9zZWQsIHRydWUpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEv cW9tL29iamVjdC5jIGIvcW9tL29iamVjdC5jCmluZGV4IDM4N2VmYjI1ZWIuLjM2YzFmZjE0Yzgg MTAwNjQ0Ci0tLSBhL3FvbS9vYmplY3QuYworKysgYi9xb20vb2JqZWN0LmMKQEAgLTgzNyw3ICs4 MzcsNyBAQCBPYmplY3QgKm9iamVjdF9keW5hbWljX2Nhc3RfYXNzZXJ0KE9iamVjdCAqb2JqLCBj b25zdCBjaGFyICp0eXBlbmFtZSwKICAgICBPYmplY3QgKmluc3Q7CiAKICAgICBmb3IgKGkgPSAw OyBvYmogJiYgaSA8IE9CSkVDVF9DTEFTU19DQVNUX0NBQ0hFOyBpKyspIHsKLSAgICAgICAgaWYg KGF0b21pY19yZWFkKCZvYmotPmNsYXNzLT5vYmplY3RfY2FzdF9jYWNoZVtpXSkgPT0gdHlwZW5h bWUpIHsKKyAgICAgICAgaWYgKHFlbXVfYXRvbWljX3JlYWQoJm9iai0+Y2xhc3MtPm9iamVjdF9j YXN0X2NhY2hlW2ldKSA9PSB0eXBlbmFtZSkgewogICAgICAgICAgICAgZ290byBvdXQ7CiAgICAg ICAgIH0KICAgICB9CkBAIC04NTQsMTAgKzg1NCwxMCBAQCBPYmplY3QgKm9iamVjdF9keW5hbWlj X2Nhc3RfYXNzZXJ0KE9iamVjdCAqb2JqLCBjb25zdCBjaGFyICp0eXBlbmFtZSwKIAogICAgIGlm IChvYmogJiYgb2JqID09IGluc3QpIHsKICAgICAgICAgZm9yIChpID0gMTsgaSA8IE9CSkVDVF9D TEFTU19DQVNUX0NBQ0hFOyBpKyspIHsKLSAgICAgICAgICAgIGF0b21pY19zZXQoJm9iai0+Y2xh c3MtPm9iamVjdF9jYXN0X2NhY2hlW2kgLSAxXSwKLSAgICAgICAgICAgICAgICAgICAgICAgYXRv bWljX3JlYWQoJm9iai0+Y2xhc3MtPm9iamVjdF9jYXN0X2NhY2hlW2ldKSk7CisgICAgICAgICAg ICBxZW11X2F0b21pY19zZXQoJm9iai0+Y2xhc3MtPm9iamVjdF9jYXN0X2NhY2hlW2kgLSAxXSwK KyAgICAgICAgICAgICAgICAgICAgICAgcWVtdV9hdG9taWNfcmVhZCgmb2JqLT5jbGFzcy0+b2Jq ZWN0X2Nhc3RfY2FjaGVbaV0pKTsKICAgICAgICAgfQotICAgICAgICBhdG9taWNfc2V0KCZvYmot PmNsYXNzLT5vYmplY3RfY2FzdF9jYWNoZVtpIC0gMV0sIHR5cGVuYW1lKTsKKyAgICAgICAgcWVt dV9hdG9taWNfc2V0KCZvYmotPmNsYXNzLT5vYmplY3RfY2FzdF9jYWNoZVtpIC0gMV0sIHR5cGVu YW1lKTsKICAgICB9CiAKIG91dDoKQEAgLTkyNyw3ICs5MjcsNyBAQCBPYmplY3RDbGFzcyAqb2Jq ZWN0X2NsYXNzX2R5bmFtaWNfY2FzdF9hc3NlcnQoT2JqZWN0Q2xhc3MgKmNsYXNzLAogICAgIGlu dCBpOwogCiAgICAgZm9yIChpID0gMDsgY2xhc3MgJiYgaSA8IE9CSkVDVF9DTEFTU19DQVNUX0NB Q0hFOyBpKyspIHsKLSAgICAgICAgaWYgKGF0b21pY19yZWFkKCZjbGFzcy0+Y2xhc3NfY2FzdF9j YWNoZVtpXSkgPT0gdHlwZW5hbWUpIHsKKyAgICAgICAgaWYgKHFlbXVfYXRvbWljX3JlYWQoJmNs YXNzLT5jbGFzc19jYXN0X2NhY2hlW2ldKSA9PSB0eXBlbmFtZSkgewogICAgICAgICAgICAgcmV0 ID0gY2xhc3M7CiAgICAgICAgICAgICBnb3RvIG91dDsKICAgICAgICAgfQpAQCAtOTQ4LDEwICs5 NDgsMTAgQEAgT2JqZWN0Q2xhc3MgKm9iamVjdF9jbGFzc19keW5hbWljX2Nhc3RfYXNzZXJ0KE9i amVjdENsYXNzICpjbGFzcywKICNpZmRlZiBDT05GSUdfUU9NX0NBU1RfREVCVUcKICAgICBpZiAo Y2xhc3MgJiYgcmV0ID09IGNsYXNzKSB7CiAgICAgICAgIGZvciAoaSA9IDE7IGkgPCBPQkpFQ1Rf Q0xBU1NfQ0FTVF9DQUNIRTsgaSsrKSB7Ci0gICAgICAgICAgICBhdG9taWNfc2V0KCZjbGFzcy0+ Y2xhc3NfY2FzdF9jYWNoZVtpIC0gMV0sCi0gICAgICAgICAgICAgICAgICAgICAgIGF0b21pY19y ZWFkKCZjbGFzcy0+Y2xhc3NfY2FzdF9jYWNoZVtpXSkpOworICAgICAgICAgICAgcWVtdV9hdG9t aWNfc2V0KCZjbGFzcy0+Y2xhc3NfY2FzdF9jYWNoZVtpIC0gMV0sCisgICAgICAgICAgICAgICAg ICAgICAgIHFlbXVfYXRvbWljX3JlYWQoJmNsYXNzLT5jbGFzc19jYXN0X2NhY2hlW2ldKSk7CiAg ICAgICAgIH0KLSAgICAgICAgYXRvbWljX3NldCgmY2xhc3MtPmNsYXNzX2Nhc3RfY2FjaGVbaSAt IDFdLCB0eXBlbmFtZSk7CisgICAgICAgIHFlbXVfYXRvbWljX3NldCgmY2xhc3MtPmNsYXNzX2Nh c3RfY2FjaGVbaSAtIDFdLCB0eXBlbmFtZSk7CiAgICAgfQogb3V0OgogI2VuZGlmCkBAIC0xMTM2 LDcgKzExMzYsNyBAQCBPYmplY3QgKm9iamVjdF9yZWYodm9pZCAqb2JqcHRyKQogICAgIGlmICgh b2JqKSB7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBhdG9taWNfaW5jKCZvYmot PnJlZik7CisgICAgcWVtdV9hdG9taWNfaW5jKCZvYmotPnJlZik7CiAgICAgcmV0dXJuIG9iajsK IH0KIApAQCAtMTE0OSw3ICsxMTQ5LDcgQEAgdm9pZCBvYmplY3RfdW5yZWYodm9pZCAqb2JqcHRy KQogICAgIGdfYXNzZXJ0KG9iai0+cmVmID4gMCk7CiAKICAgICAvKiBwYXJlbnQgYWx3YXlzIGhv bGRzIGEgcmVmZXJlbmNlIHRvIGl0cyBjaGlsZHJlbiAqLwotICAgIGlmIChhdG9taWNfZmV0Y2hf ZGVjKCZvYmotPnJlZikgPT0gMSkgeworICAgIGlmIChxZW11X2F0b21pY19mZXRjaF9kZWMoJm9i ai0+cmVmKSA9PSAxKSB7CiAgICAgICAgIG9iamVjdF9maW5hbGl6ZShvYmopOwogICAgIH0KIH0K ZGlmZiAtLWdpdCBhL3Njc2kvcWVtdS1wci1oZWxwZXIuYyBiL3Njc2kvcWVtdS1wci1oZWxwZXIu YwppbmRleCA1N2FkODMwZDU0Li45NWViZTg5MmZmIDEwMDY0NAotLS0gYS9zY3NpL3FlbXUtcHIt aGVscGVyLmMKKysrIGIvc2NzaS9xZW11LXByLWhlbHBlci5jCkBAIC03NDcsNyArNzQ3LDcgQEAg c3RhdGljIHZvaWQgY29yb3V0aW5lX2ZuIHByaF9jb19lbnRyeSh2b2lkICpvcGFxdWUpCiAgICAg ICAgIGdvdG8gb3V0OwogICAgIH0KIAotICAgIHdoaWxlIChhdG9taWNfcmVhZCgmc3RhdGUpID09 IFJVTk5JTkcpIHsKKyAgICB3aGlsZSAocWVtdV9hdG9taWNfcmVhZCgmc3RhdGUpID09IFJVTk5J TkcpIHsKICAgICAgICAgUFJIZWxwZXJSZXF1ZXN0IHJlcTsKICAgICAgICAgUFJIZWxwZXJSZXNw b25zZSByZXNwOwogICAgICAgICBpbnQgc3o7CkBAIC04MTYsNyArODE2LDcgQEAgc3RhdGljIGdi b29sZWFuIGFjY2VwdF9jbGllbnQoUUlPQ2hhbm5lbCAqaW9jLCBHSU9Db25kaXRpb24gY29uZCwg Z3BvaW50ZXIgb3BhcXUKIAogc3RhdGljIHZvaWQgdGVybXNpZ19oYW5kbGVyKGludCBzaWdudW0p CiB7Ci0gICAgYXRvbWljX2NtcHhjaGcoJnN0YXRlLCBSVU5OSU5HLCBURVJNSU5BVEUpOworICAg IHFlbXVfYXRvbWljX2NtcHhjaGcoJnN0YXRlLCBSVU5OSU5HLCBURVJNSU5BVEUpOwogICAgIHFl bXVfbm90aWZ5X2V2ZW50KCk7CiB9CiAKZGlmZiAtLWdpdCBhL3NvZnRtbXUvY3B1LXRocm90dGxl LmMgYi9zb2Z0bW11L2NwdS10aHJvdHRsZS5jCmluZGV4IDRlNmIyODE4Y2EuLjdiN2RiY2M5ZGMg MTAwNjQ0Ci0tLSBhL3NvZnRtbXUvY3B1LXRocm90dGxlLmMKKysrIGIvc29mdG1tdS9jcHUtdGhy b3R0bGUuYwpAQCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgdm9pZCBjcHVfdGhyb3R0bGVfdGhyZWFk KENQVVN0YXRlICpjcHUsIHJ1bl9vbl9jcHVfZGF0YSBvcGFxdWUpCiAgICAgICAgIH0KICAgICAg ICAgc2xlZXB0aW1lX25zID0gZW5kdGltZV9ucyAtIHFlbXVfY2xvY2tfZ2V0X25zKFFFTVVfQ0xP Q0tfUkVBTFRJTUUpOwogICAgIH0KLSAgICBhdG9taWNfc2V0KCZjcHUtPnRocm90dGxlX3RocmVh ZF9zY2hlZHVsZWQsIDApOworICAgIHFlbXVfYXRvbWljX3NldCgmY3B1LT50aHJvdHRsZV90aHJl YWRfc2NoZWR1bGVkLCAwKTsKIH0KIAogc3RhdGljIHZvaWQgY3B1X3Rocm90dGxlX3RpbWVyX3Rp Y2sodm9pZCAqb3BhcXVlKQpAQCAtNzcsNyArNzcsNyBAQCBzdGF0aWMgdm9pZCBjcHVfdGhyb3R0 bGVfdGltZXJfdGljayh2b2lkICpvcGFxdWUpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg Q1BVX0ZPUkVBQ0goY3B1KSB7Ci0gICAgICAgIGlmICghYXRvbWljX3hjaGcoJmNwdS0+dGhyb3R0 bGVfdGhyZWFkX3NjaGVkdWxlZCwgMSkpIHsKKyAgICAgICAgaWYgKCFxZW11X2F0b21pY194Y2hn KCZjcHUtPnRocm90dGxlX3RocmVhZF9zY2hlZHVsZWQsIDEpKSB7CiAgICAgICAgICAgICBhc3lu Y19ydW5fb25fY3B1KGNwdSwgY3B1X3Rocm90dGxlX3RocmVhZCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUlVOX09OX0NQVV9OVUxMKTsKICAgICAgICAgfQpAQCAtOTQsNyArOTQsNyBA QCB2b2lkIGNwdV90aHJvdHRsZV9zZXQoaW50IG5ld190aHJvdHRsZV9wY3QpCiAgICAgbmV3X3Ro cm90dGxlX3BjdCA9IE1JTihuZXdfdGhyb3R0bGVfcGN0LCBDUFVfVEhST1RUTEVfUENUX01BWCk7 CiAgICAgbmV3X3Rocm90dGxlX3BjdCA9IE1BWChuZXdfdGhyb3R0bGVfcGN0LCBDUFVfVEhST1RU TEVfUENUX01JTik7CiAKLSAgICBhdG9taWNfc2V0KCZ0aHJvdHRsZV9wZXJjZW50YWdlLCBuZXdf dGhyb3R0bGVfcGN0KTsKKyAgICBxZW11X2F0b21pY19zZXQoJnRocm90dGxlX3BlcmNlbnRhZ2Us IG5ld190aHJvdHRsZV9wY3QpOwogCiAgICAgdGltZXJfbW9kKHRocm90dGxlX3RpbWVyLCBxZW11 X2Nsb2NrX2dldF9ucyhRRU1VX0NMT0NLX1ZJUlRVQUxfUlQpICsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENQVV9USFJPVFRMRV9USU1FU0xJQ0VfTlMpOwpAQCAtMTAy LDcgKzEwMiw3IEBAIHZvaWQgY3B1X3Rocm90dGxlX3NldChpbnQgbmV3X3Rocm90dGxlX3BjdCkK IAogdm9pZCBjcHVfdGhyb3R0bGVfc3RvcCh2b2lkKQogewotICAgIGF0b21pY19zZXQoJnRocm90 dGxlX3BlcmNlbnRhZ2UsIDApOworICAgIHFlbXVfYXRvbWljX3NldCgmdGhyb3R0bGVfcGVyY2Vu dGFnZSwgMCk7CiB9CiAKIGJvb2wgY3B1X3Rocm90dGxlX2FjdGl2ZSh2b2lkKQpAQCAtMTEyLDcg KzExMiw3IEBAIGJvb2wgY3B1X3Rocm90dGxlX2FjdGl2ZSh2b2lkKQogCiBpbnQgY3B1X3Rocm90 dGxlX2dldF9wZXJjZW50YWdlKHZvaWQpCiB7Ci0gICAgcmV0dXJuIGF0b21pY19yZWFkKCZ0aHJv dHRsZV9wZXJjZW50YWdlKTsKKyAgICByZXR1cm4gcWVtdV9hdG9taWNfcmVhZCgmdGhyb3R0bGVf cGVyY2VudGFnZSk7CiB9CiAKIHZvaWQgY3B1X3Rocm90dGxlX2luaXQodm9pZCkKZGlmZiAtLWdp dCBhL3NvZnRtbXUvY3B1cy5jIGIvc29mdG1tdS9jcHVzLmMKaW5kZXggZTNiOTgwNjVjOS4uOTRm Y2FkZWE0YSAxMDA2NDQKLS0tIGEvc29mdG1tdS9jcHVzLmMKKysrIGIvc29mdG1tdS9jcHVzLmMK QEAgLTE5Miw3ICsxOTIsNyBAQCBzdGF0aWMgdm9pZCBjcHVfdXBkYXRlX2ljb3VudF9sb2NrZWQo Q1BVU3RhdGUgKmNwdSkKICAgICBpbnQ2NF90IGV4ZWN1dGVkID0gY3B1X2dldF9pY291bnRfZXhl Y3V0ZWQoY3B1KTsKICAgICBjcHUtPmljb3VudF9idWRnZXQgLT0gZXhlY3V0ZWQ7CiAKLSAgICBh dG9taWNfc2V0X2k2NCgmdGltZXJzX3N0YXRlLnFlbXVfaWNvdW50LAorICAgIHFlbXVfYXRvbWlj X3NldF9pNjQoJnRpbWVyc19zdGF0ZS5xZW11X2ljb3VudCwKICAgICAgICAgICAgICAgICAgICB0 aW1lcnNfc3RhdGUucWVtdV9pY291bnQgKyBleGVjdXRlZCk7CiB9CiAKQEAgLTIyMywxMyArMjIz LDEzIEBAIHN0YXRpYyBpbnQ2NF90IGNwdV9nZXRfaWNvdW50X3Jhd19sb2NrZWQodm9pZCkKICAg ICAgICAgY3B1X3VwZGF0ZV9pY291bnRfbG9ja2VkKGNwdSk7CiAgICAgfQogICAgIC8qIFRoZSBy ZWFkIGlzIHByb3RlY3RlZCBieSB0aGUgc2VxbG9jaywgYnV0IG5lZWRzIGF0b21pYzY0IHRvIGF2 b2lkIFVCICovCi0gICAgcmV0dXJuIGF0b21pY19yZWFkX2k2NCgmdGltZXJzX3N0YXRlLnFlbXVf aWNvdW50KTsKKyAgICByZXR1cm4gcWVtdV9hdG9taWNfcmVhZF9pNjQoJnRpbWVyc19zdGF0ZS5x ZW11X2ljb3VudCk7CiB9CiAKIHN0YXRpYyBpbnQ2NF90IGNwdV9nZXRfaWNvdW50X2xvY2tlZCh2 b2lkKQogewogICAgIGludDY0X3QgaWNvdW50ID0gY3B1X2dldF9pY291bnRfcmF3X2xvY2tlZCgp OwotICAgIHJldHVybiBhdG9taWNfcmVhZF9pNjQoJnRpbWVyc19zdGF0ZS5xZW11X2ljb3VudF9i aWFzKSArCisgICAgcmV0dXJuIHFlbXVfYXRvbWljX3JlYWRfaTY0KCZ0aW1lcnNfc3RhdGUucWVt dV9pY291bnRfYmlhcykgKwogICAgICAgICBjcHVfaWNvdW50X3RvX25zKGljb3VudCk7CiB9CiAK QEAgLTI2Miw3ICsyNjIsNyBAQCBpbnQ2NF90IGNwdV9nZXRfaWNvdW50KHZvaWQpCiAKIGludDY0 X3QgY3B1X2ljb3VudF90b19ucyhpbnQ2NF90IGljb3VudCkKIHsKLSAgICByZXR1cm4gaWNvdW50 IDw8IGF0b21pY19yZWFkKCZ0aW1lcnNfc3RhdGUuaWNvdW50X3RpbWVfc2hpZnQpOworICAgIHJl dHVybiBpY291bnQgPDwgcWVtdV9hdG9taWNfcmVhZCgmdGltZXJzX3N0YXRlLmljb3VudF90aW1l X3NoaWZ0KTsKIH0KIAogc3RhdGljIGludDY0X3QgY3B1X2dldF90aWNrc19sb2NrZWQodm9pZCkK QEAgLTM5MywxOCArMzkzLDE4IEBAIHN0YXRpYyB2b2lkIGljb3VudF9hZGp1c3Qodm9pZCkKICAg ICAgICAgJiYgbGFzdF9kZWx0YSArIElDT1VOVF9XT0JCTEUgPCBkZWx0YSAqIDIKICAgICAgICAg JiYgdGltZXJzX3N0YXRlLmljb3VudF90aW1lX3NoaWZ0ID4gMCkgewogICAgICAgICAvKiBUaGUg Z3Vlc3QgaXMgZ2V0dGluZyB0b28gZmFyIGFoZWFkLiAgU2xvdyB0aW1lIGRvd24uICAqLwotICAg ICAgICBhdG9taWNfc2V0KCZ0aW1lcnNfc3RhdGUuaWNvdW50X3RpbWVfc2hpZnQsCisgICAgICAg IHFlbXVfYXRvbWljX3NldCgmdGltZXJzX3N0YXRlLmljb3VudF90aW1lX3NoaWZ0LAogICAgICAg ICAgICAgICAgICAgIHRpbWVyc19zdGF0ZS5pY291bnRfdGltZV9zaGlmdCAtIDEpOwogICAgIH0K ICAgICBpZiAoZGVsdGEgPCAwCiAgICAgICAgICYmIGxhc3RfZGVsdGEgLSBJQ09VTlRfV09CQkxF ID4gZGVsdGEgKiAyCiAgICAgICAgICYmIHRpbWVyc19zdGF0ZS5pY291bnRfdGltZV9zaGlmdCA8 IE1BWF9JQ09VTlRfU0hJRlQpIHsKICAgICAgICAgLyogVGhlIGd1ZXN0IGlzIGdldHRpbmcgdG9v IGZhciBiZWhpbmQuICBTcGVlZCB0aW1lIHVwLiAgKi8KLSAgICAgICAgYXRvbWljX3NldCgmdGlt ZXJzX3N0YXRlLmljb3VudF90aW1lX3NoaWZ0LAorICAgICAgICBxZW11X2F0b21pY19zZXQoJnRp bWVyc19zdGF0ZS5pY291bnRfdGltZV9zaGlmdCwKICAgICAgICAgICAgICAgICAgICB0aW1lcnNf c3RhdGUuaWNvdW50X3RpbWVfc2hpZnQgKyAxKTsKICAgICB9CiAgICAgbGFzdF9kZWx0YSA9IGRl bHRhOwotICAgIGF0b21pY19zZXRfaTY0KCZ0aW1lcnNfc3RhdGUucWVtdV9pY291bnRfYmlhcywK KyAgICBxZW11X2F0b21pY19zZXRfaTY0KCZ0aW1lcnNfc3RhdGUucWVtdV9pY291bnRfYmlhcywK ICAgICAgICAgICAgICAgICAgICBjdXJfaWNvdW50IC0gKHRpbWVyc19zdGF0ZS5xZW11X2ljb3Vu dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgdGltZXJzX3N0YXRlLmljb3Vu dF90aW1lX3NoaWZ0KSk7CiAgICAgc2VxbG9ja193cml0ZV91bmxvY2soJnRpbWVyc19zdGF0ZS52 bV9jbG9ja19zZXFsb2NrLApAQCAtNDI4LDcgKzQyOCw3IEBAIHN0YXRpYyB2b2lkIGljb3VudF9h ZGp1c3Rfdm0odm9pZCAqb3BhcXVlKQogCiBzdGF0aWMgaW50NjRfdCBxZW11X2ljb3VudF9yb3Vu ZChpbnQ2NF90IGNvdW50KQogewotICAgIGludCBzaGlmdCA9IGF0b21pY19yZWFkKCZ0aW1lcnNf c3RhdGUuaWNvdW50X3RpbWVfc2hpZnQpOworICAgIGludCBzaGlmdCA9IHFlbXVfYXRvbWljX3Jl YWQoJnRpbWVyc19zdGF0ZS5pY291bnRfdGltZV9zaGlmdCk7CiAgICAgcmV0dXJuIChjb3VudCAr ICgxIDw8IHNoaWZ0KSAtIDEpID4+IHNoaWZ0OwogfQogCkBAIC00NjYsNyArNDY2LDcgQEAgc3Rh dGljIHZvaWQgaWNvdW50X3dhcnBfcnQodm9pZCkKICAgICAgICAgICAgIGludDY0X3QgZGVsdGEg PSBjbG9jayAtIGN1cl9pY291bnQ7CiAgICAgICAgICAgICB3YXJwX2RlbHRhID0gTUlOKHdhcnBf ZGVsdGEsIGRlbHRhKTsKICAgICAgICAgfQotICAgICAgICBhdG9taWNfc2V0X2k2NCgmdGltZXJz X3N0YXRlLnFlbXVfaWNvdW50X2JpYXMsCisgICAgICAgIHFlbXVfYXRvbWljX3NldF9pNjQoJnRp bWVyc19zdGF0ZS5xZW11X2ljb3VudF9iaWFzLAogICAgICAgICAgICAgICAgICAgICAgICB0aW1l cnNfc3RhdGUucWVtdV9pY291bnRfYmlhcyArIHdhcnBfZGVsdGEpOwogICAgIH0KICAgICB0aW1l cnNfc3RhdGUudm1fY2xvY2tfd2FycF9zdGFydCA9IC0xOwpAQCAtNDk5LDcgKzQ5OSw3IEBAIHZv aWQgcXRlc3RfY2xvY2tfd2FycChpbnQ2NF90IGRlc3QpCiAKICAgICAgICAgc2VxbG9ja193cml0 ZV9sb2NrKCZ0aW1lcnNfc3RhdGUudm1fY2xvY2tfc2VxbG9jaywKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZ0aW1lcnNfc3RhdGUudm1fY2xvY2tfbG9jayk7Ci0gICAgICAgIGF0b21pY19z ZXRfaTY0KCZ0aW1lcnNfc3RhdGUucWVtdV9pY291bnRfYmlhcywKKyAgICAgICAgcWVtdV9hdG9t aWNfc2V0X2k2NCgmdGltZXJzX3N0YXRlLnFlbXVfaWNvdW50X2JpYXMsCiAgICAgICAgICAgICAg ICAgICAgICAgIHRpbWVyc19zdGF0ZS5xZW11X2ljb3VudF9iaWFzICsgd2FycCk7CiAgICAgICAg IHNlcWxvY2tfd3JpdGVfdW5sb2NrKCZ0aW1lcnNfc3RhdGUudm1fY2xvY2tfc2VxbG9jaywKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRpbWVyc19zdGF0ZS52bV9jbG9ja19sb2NrKTsK QEAgLTU4Myw3ICs1ODMsNyBAQCB2b2lkIHFlbXVfc3RhcnRfd2FycF90aW1lcih2b2lkKQogICAg ICAgICAgICAgICovCiAgICAgICAgICAgICBzZXFsb2NrX3dyaXRlX2xvY2soJnRpbWVyc19zdGF0 ZS52bV9jbG9ja19zZXFsb2NrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0aW1l cnNfc3RhdGUudm1fY2xvY2tfbG9jayk7Ci0gICAgICAgICAgICBhdG9taWNfc2V0X2k2NCgmdGlt ZXJzX3N0YXRlLnFlbXVfaWNvdW50X2JpYXMsCisgICAgICAgICAgICBxZW11X2F0b21pY19zZXRf aTY0KCZ0aW1lcnNfc3RhdGUucWVtdV9pY291bnRfYmlhcywKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRpbWVyc19zdGF0ZS5xZW11X2ljb3VudF9iaWFzICsgZGVhZGxpbmUpOwogICAgICAg ICAgICAgc2VxbG9ja193cml0ZV91bmxvY2soJnRpbWVyc19zdGF0ZS52bV9jbG9ja19zZXFsb2Nr LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRpbWVyc19zdGF0ZS52bV9jbG9j a19sb2NrKTsKQEAgLTgzNywxMSArODM3LDExIEBAIHN0YXRpYyB2b2lkIHFlbXVfY3B1X2tpY2tf cnJfbmV4dF9jcHUodm9pZCkKIHsKICAgICBDUFVTdGF0ZSAqY3B1OwogICAgIGRvIHsKLSAgICAg ICAgY3B1ID0gYXRvbWljX21iX3JlYWQoJnRjZ19jdXJyZW50X3JyX2NwdSk7CisgICAgICAgIGNw dSA9IHFlbXVfYXRvbWljX21iX3JlYWQoJnRjZ19jdXJyZW50X3JyX2NwdSk7CiAgICAgICAgIGlm IChjcHUpIHsKICAgICAgICAgICAgIGNwdV9leGl0KGNwdSk7CiAgICAgICAgIH0KLSAgICB9IHdo aWxlIChjcHUgIT0gYXRvbWljX21iX3JlYWQoJnRjZ19jdXJyZW50X3JyX2NwdSkpOworICAgIH0g d2hpbGUgKGNwdSAhPSBxZW11X2F0b21pY19tYl9yZWFkKCZ0Y2dfY3VycmVudF9ycl9jcHUpKTsK IH0KIAogLyogS2ljayBhbGwgUlIgdkNQVXMgKi8KQEAgLTExMTAsNyArMTExMCw3IEBAIHN0YXRp YyB2b2lkIHFlbXVfY3B1X3N0b3AoQ1BVU3RhdGUgKmNwdSwgYm9vbCBleGl0KQogCiBzdGF0aWMg dm9pZCBxZW11X3dhaXRfaW9fZXZlbnRfY29tbW9uKENQVVN0YXRlICpjcHUpCiB7Ci0gICAgYXRv bWljX21iX3NldCgmY3B1LT50aHJlYWRfa2lja2VkLCBmYWxzZSk7CisgICAgcWVtdV9hdG9taWNf bWJfc2V0KCZjcHUtPnRocmVhZF9raWNrZWQsIGZhbHNlKTsKICAgICBpZiAoY3B1LT5zdG9wKSB7 CiAgICAgICAgIHFlbXVfY3B1X3N0b3AoY3B1LCBmYWxzZSk7CiAgICAgfQpAQCAtMTM1Niw3ICsx MzU2LDcgQEAgc3RhdGljIGludCB0Y2dfY3B1X2V4ZWMoQ1BVU3RhdGUgKmNwdSkKICAgICByZXQg PSBjcHVfZXhlYyhjcHUpOwogICAgIGNwdV9leGVjX2VuZChjcHUpOwogI2lmZGVmIENPTkZJR19Q Uk9GSUxFUgotICAgIGF0b21pY19zZXQoJnRjZ19jdHgtPnByb2YuY3B1X2V4ZWNfdGltZSwKKyAg ICBxZW11X2F0b21pY19zZXQoJnRjZ19jdHgtPnByb2YuY3B1X2V4ZWNfdGltZSwKICAgICAgICAg ICAgICAgIHRjZ19jdHgtPnByb2YuY3B1X2V4ZWNfdGltZSArIHByb2ZpbGVfZ2V0Y2xvY2soKSAt IHRpKTsKICNlbmRpZgogICAgIHJldHVybiByZXQ7CkBAIC0xNDQzLDcgKzE0NDMsNyBAQCBzdGF0 aWMgdm9pZCAqcWVtdV90Y2dfcnJfY3B1X3RocmVhZF9mbih2b2lkICphcmcpCiAKICAgICAgICAg d2hpbGUgKGNwdSAmJiBjcHVfd29ya19saXN0X2VtcHR5KGNwdSkgJiYgIWNwdS0+ZXhpdF9yZXF1 ZXN0KSB7CiAKLSAgICAgICAgICAgIGF0b21pY19tYl9zZXQoJnRjZ19jdXJyZW50X3JyX2NwdSwg Y3B1KTsKKyAgICAgICAgICAgIHFlbXVfYXRvbWljX21iX3NldCgmdGNnX2N1cnJlbnRfcnJfY3B1 LCBjcHUpOwogICAgICAgICAgICAgY3VycmVudF9jcHUgPSBjcHU7CiAKICAgICAgICAgICAgIHFl bXVfY2xvY2tfZW5hYmxlKFFFTVVfQ0xPQ0tfVklSVFVBTCwKQEAgLTE0NzksMTEgKzE0NzksMTEg QEAgc3RhdGljIHZvaWQgKnFlbXVfdGNnX3JyX2NwdV90aHJlYWRfZm4odm9pZCAqYXJnKQogICAg ICAgICAgICAgY3B1ID0gQ1BVX05FWFQoY3B1KTsKICAgICAgICAgfSAvKiB3aGlsZSAoY3B1ICYm ICFjcHUtPmV4aXRfcmVxdWVzdCkuLiAqLwogCi0gICAgICAgIC8qIERvZXMgbm90IG5lZWQgYXRv bWljX21iX3NldCBiZWNhdXNlIGEgc3B1cmlvdXMgd2FrZXVwIGlzIG9rYXkuICAqLwotICAgICAg ICBhdG9taWNfc2V0KCZ0Y2dfY3VycmVudF9ycl9jcHUsIE5VTEwpOworICAgICAgICAvKiBEb2Vz bid0IG5lZWQgcWVtdV9hdG9taWNfbWJfc2V0IGJlY2F1c2UgYSBzcHVyaW91cyB3YWtldXAgaXMg b2theSAqLworICAgICAgICBxZW11X2F0b21pY19zZXQoJnRjZ19jdXJyZW50X3JyX2NwdSwgTlVM TCk7CiAKICAgICAgICAgaWYgKGNwdSAmJiBjcHUtPmV4aXRfcmVxdWVzdCkgewotICAgICAgICAg ICAgYXRvbWljX21iX3NldCgmY3B1LT5leGl0X3JlcXVlc3QsIDApOworICAgICAgICAgICAgcWVt dV9hdG9taWNfbWJfc2V0KCZjcHUtPmV4aXRfcmVxdWVzdCwgMCk7CiAgICAgICAgIH0KIAogICAg ICAgICBpZiAodXNlX2ljb3VudCAmJiBhbGxfY3B1X3RocmVhZHNfaWRsZSgpKSB7CkBAIC0xNjg3 LDcgKzE2ODcsNyBAQCBzdGF0aWMgdm9pZCAqcWVtdV90Y2dfY3B1X3RocmVhZF9mbih2b2lkICph cmcpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBhdG9taWNfbWJfc2V0KCZj cHUtPmV4aXRfcmVxdWVzdCwgMCk7CisgICAgICAgIHFlbXVfYXRvbWljX21iX3NldCgmY3B1LT5l eGl0X3JlcXVlc3QsIDApOwogICAgICAgICBxZW11X3dhaXRfaW9fZXZlbnQoY3B1KTsKICAgICB9 IHdoaWxlICghY3B1LT51bnBsdWcgfHwgY3B1X2Nhbl9ydW4oY3B1KSk7CiAKQEAgLTE3NzYsNyAr MTc3Niw3IEBAIGJvb2wgcWVtdV9tdXRleF9pb3RocmVhZF9sb2NrZWQodm9pZCkKICAqLwogdm9p ZCBxZW11X211dGV4X2xvY2tfaW90aHJlYWRfaW1wbChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGlu ZSkKIHsKLSAgICBRZW11TXV0ZXhMb2NrRnVuYyBicWxfbG9jayA9IGF0b21pY19yZWFkKCZxZW11 X2JxbF9tdXRleF9sb2NrX2Z1bmMpOworICAgIFFlbXVNdXRleExvY2tGdW5jIGJxbF9sb2NrID0g cWVtdV9hdG9taWNfcmVhZCgmcWVtdV9icWxfbXV0ZXhfbG9ja19mdW5jKTsKIAogICAgIGdfYXNz ZXJ0KCFxZW11X211dGV4X2lvdGhyZWFkX2xvY2tlZCgpKTsKICAgICBicWxfbG9jaygmcWVtdV9n bG9iYWxfbXV0ZXgsIGZpbGUsIGxpbmUpOwpkaWZmIC0tZ2l0IGEvc29mdG1tdS9tZW1vcnkuYyBi L3NvZnRtbXUvbWVtb3J5LmMKaW5kZXggZDAzMGViNmY3Yy4uY2FiYmQ0ZWEzYSAxMDA2NDQKLS0t IGEvc29mdG1tdS9tZW1vcnkuYworKysgYi9zb2Z0bW11L21lbW9yeS5jCkBAIC0yOTQsMTIgKzI5 NCwxMiBAQCBzdGF0aWMgdm9pZCBmbGF0dmlld19kZXN0cm95KEZsYXRWaWV3ICp2aWV3KQogCiBz dGF0aWMgYm9vbCBmbGF0dmlld19yZWYoRmxhdFZpZXcgKnZpZXcpCiB7Ci0gICAgcmV0dXJuIGF0 b21pY19mZXRjaF9pbmNfbm9uemVybygmdmlldy0+cmVmKSA+IDA7CisgICAgcmV0dXJuIHFlbXVf YXRvbWljX2ZldGNoX2luY19ub256ZXJvKCZ2aWV3LT5yZWYpID4gMDsKIH0KIAogdm9pZCBmbGF0 dmlld191bnJlZihGbGF0VmlldyAqdmlldykKIHsKLSAgICBpZiAoYXRvbWljX2ZldGNoX2RlYygm dmlldy0+cmVmKSA9PSAxKSB7CisgICAgaWYgKHFlbXVfYXRvbWljX2ZldGNoX2RlYygmdmlldy0+ cmVmKSA9PSAxKSB7CiAgICAgICAgIHRyYWNlX2ZsYXR2aWV3X2Rlc3Ryb3lfcmN1KHZpZXcsIHZp ZXctPnJvb3QpOwogICAgICAgICBhc3NlcnQodmlldy0+cm9vdCk7CiAgICAgICAgIGNhbGxfcmN1 KHZpZXcsIGZsYXR2aWV3X2Rlc3Ryb3ksIHJjdSk7CkBAIC0xMDI3LDcgKzEwMjcsNyBAQCBzdGF0 aWMgdm9pZCBhZGRyZXNzX3NwYWNlX3NldF9mbGF0dmlldyhBZGRyZXNzU3BhY2UgKmFzKQogICAg IH0KIAogICAgIC8qIFdyaXRlcyBhcmUgcHJvdGVjdGVkIGJ5IHRoZSBCUUwuICAqLwotICAgIGF0 b21pY19yY3Vfc2V0KCZhcy0+Y3VycmVudF9tYXAsIG5ld192aWV3KTsKKyAgICBxZW11X2F0b21p Y19yY3Vfc2V0KCZhcy0+Y3VycmVudF9tYXAsIG5ld192aWV3KTsKICAgICBpZiAob2xkX3ZpZXcp IHsKICAgICAgICAgZmxhdHZpZXdfdW5yZWYob2xkX3ZpZXcpOwogICAgIH0KZGlmZiAtLWdpdCBh L3NvZnRtbXUvdmwuYyBiL3NvZnRtbXUvdmwuYwppbmRleCBmN2IxMDM0NjdjLi4zNmFjNTVjYjkx IDEwMDY0NAotLS0gYS9zb2Z0bW11L3ZsLmMKKysrIGIvc29mdG1tdS92bC5jCkBAIC0xMzIwLDcg KzEzMjAsNyBAQCBTaHV0ZG93bkNhdXNlIHFlbXVfcmVzZXRfcmVxdWVzdGVkX2dldCh2b2lkKQog CiBzdGF0aWMgaW50IHFlbXVfc2h1dGRvd25fcmVxdWVzdGVkKHZvaWQpCiB7Ci0gICAgcmV0dXJu IGF0b21pY194Y2hnKCZzaHV0ZG93bl9yZXF1ZXN0ZWQsIFNIVVRET1dOX0NBVVNFX05PTkUpOwor ICAgIHJldHVybiBxZW11X2F0b21pY194Y2hnKCZzaHV0ZG93bl9yZXF1ZXN0ZWQsIFNIVVRET1dO X0NBVVNFX05PTkUpOwogfQogCiBzdGF0aWMgdm9pZCBxZW11X2tpbGxfcmVwb3J0KHZvaWQpCmRp ZmYgLS1naXQgYS90YXJnZXQvYXJtL210ZV9oZWxwZXIuYyBiL3RhcmdldC9hcm0vbXRlX2hlbHBl ci5jCmluZGV4IDg5MTMwNmY1YjAuLmUxYWRmNWFlMzMgMTAwNjQ0Ci0tLSBhL3RhcmdldC9hcm0v bXRlX2hlbHBlci5jCisrKyBiL3RhcmdldC9hcm0vbXRlX2hlbHBlci5jCkBAIC0zMTMsMTEgKzMx MywxMSBAQCBzdGF0aWMgdm9pZCBzdG9yZV90YWcxKHVpbnQ2NF90IHB0ciwgdWludDhfdCAqbWVt LCBpbnQgdGFnKQogc3RhdGljIHZvaWQgc3RvcmVfdGFnMV9wYXJhbGxlbCh1aW50NjRfdCBwdHIs IHVpbnQ4X3QgKm1lbSwgaW50IHRhZykKIHsKICAgICBpbnQgb2ZzID0gZXh0cmFjdDMyKHB0ciwg TE9HMl9UQUdfR1JBTlVMRSwgMSkgKiA0OwotICAgIHVpbnQ4X3Qgb2xkID0gYXRvbWljX3JlYWQo bWVtKTsKKyAgICB1aW50OF90IG9sZCA9IHFlbXVfYXRvbWljX3JlYWQobWVtKTsKIAogICAgIHdo aWxlICgxKSB7CiAgICAgICAgIHVpbnQ4X3QgbmV3ID0gZGVwb3NpdDMyKG9sZCwgb2ZzLCA0LCB0 YWcpOwotICAgICAgICB1aW50OF90IGNtcCA9IGF0b21pY19jbXB4Y2hnKG1lbSwgb2xkLCBuZXcp OworICAgICAgICB1aW50OF90IGNtcCA9IHFlbXVfYXRvbWljX2NtcHhjaGcobWVtLCBvbGQsIG5l dyk7CiAgICAgICAgIGlmIChsaWtlbHkoY21wID09IG9sZCkpIHsKICAgICAgICAgICAgIHJldHVy bjsKICAgICAgICAgfQpAQCAtMzk4LDcgKzM5OCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkb19z dDJnKENQVUFSTVN0YXRlICplbnYsIHVpbnQ2NF90IHB0ciwgdWludDY0X3QgeHQsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMiAqIFRBR19HUkFOVUxFLCBNTVVfREFUQV9TVE9S RSwgMSwgcmEpOwogICAgICAgICBpZiAobWVtMSkgewogICAgICAgICAgICAgdGFnIHw9IHRhZyA8 PCA0OwotICAgICAgICAgICAgYXRvbWljX3NldChtZW0xLCB0YWcpOworICAgICAgICAgICAgcWVt dV9hdG9taWNfc2V0KG1lbTEsIHRhZyk7CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQg YS90YXJnZXQvaHBwYS9vcF9oZWxwZXIuYyBiL3RhcmdldC9ocHBhL29wX2hlbHBlci5jCmluZGV4 IDU2ODVlMzAzYWIuLmJhMzNjYmEyN2MgMTAwNjQ0Ci0tLSBhL3RhcmdldC9ocHBhL29wX2hlbHBl ci5jCisrKyBiL3RhcmdldC9ocHBhL29wX2hlbHBlci5jCkBAIC02Nyw3ICs2Nyw3IEBAIHN0YXRp YyB2b2lkIGF0b21pY19zdG9yZV8zKENQVUhQUEFTdGF0ZSAqZW52LCB0YXJnZXRfdWxvbmcgYWRk ciwgdWludDMyX3QgdmFsLAogICAgIG9sZCA9ICpoYWRkcjsKICAgICB3aGlsZSAoMSkgewogICAg ICAgICBuZXcgPSAob2xkICYgfm1hc2spIHwgKHZhbCAmIG1hc2spOwotICAgICAgICBjbXAgPSBh dG9taWNfY21weGNoZyhoYWRkciwgb2xkLCBuZXcpOworICAgICAgICBjbXAgPSBxZW11X2F0b21p Y19jbXB4Y2hnKGhhZGRyLCBvbGQsIG5ldyk7CiAgICAgICAgIGlmIChjbXAgPT0gb2xkKSB7CiAg ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL3RhcmdldC9pMzg2L21l bV9oZWxwZXIuYyBiL3RhcmdldC9pMzg2L21lbV9oZWxwZXIuYwppbmRleCBhY2Y0MWY4ODg1Li5k YTdiNGQ2ZDY3IDEwMDY0NAotLS0gYS90YXJnZXQvaTM4Ni9tZW1faGVscGVyLmMKKysrIGIvdGFy Z2V0L2kzODYvbWVtX2hlbHBlci5jCkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgaGVscGVyX2NtcHhj aGc4YihDUFVYODZTdGF0ZSAqZW52LCB0YXJnZXRfdWxvbmcgYTApCiAgICAgICAgIHVpbnQ2NF90 ICpoYWRkciA9IGcyaChhMCk7CiAgICAgICAgIGNtcHYgPSBjcHVfdG9fbGU2NChjbXB2KTsKICAg ICAgICAgbmV3diA9IGNwdV90b19sZTY0KG5ld3YpOwotICAgICAgICBvbGR2ID0gYXRvbWljX2Nt cHhjaGdfX25vY2hlY2soaGFkZHIsIGNtcHYsIG5ld3YpOworICAgICAgICBvbGR2ID0gcWVtdV9h dG9taWNfY21weGNoZ19fbm9jaGVjayhoYWRkciwgY21wdiwgbmV3dik7CiAgICAgICAgIG9sZHYg PSBsZTY0X3RvX2NwdShvbGR2KTsKICAgICB9CiAjZWxzZQpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2kz ODYvd2hweC1hbGwuYyBiL3RhcmdldC9pMzg2L3docHgtYWxsLmMKaW5kZXggYzc4YmFhYzZkZi4u NTdkNTZkMzgzMSAxMDA2NDQKLS0tIGEvdGFyZ2V0L2kzODYvd2hweC1hbGwuYworKysgYi90YXJn ZXQvaTM4Ni93aHB4LWFsbC5jCkBAIC05NDYsNyArOTQ2LDcgQEAgc3RhdGljIGludCB3aHB4X3Zj cHVfcnVuKENQVVN0YXRlICpjcHUpCiAgICAgd2hweF92Y3B1X3Byb2Nlc3NfYXN5bmNfZXZlbnRz KGNwdSk7CiAgICAgaWYgKGNwdS0+aGFsdGVkKSB7CiAgICAgICAgIGNwdS0+ZXhjZXB0aW9uX2lu ZGV4ID0gRVhDUF9ITFQ7Ci0gICAgICAgIGF0b21pY19zZXQoJmNwdS0+ZXhpdF9yZXF1ZXN0LCBm YWxzZSk7CisgICAgICAgIHFlbXVfYXRvbWljX3NldCgmY3B1LT5leGl0X3JlcXVlc3QsIGZhbHNl KTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCkBAIC05NjEsNyArOTYxLDcgQEAgc3RhdGlj IGludCB3aHB4X3ZjcHVfcnVuKENQVVN0YXRlICpjcHUpCiAKICAgICAgICAgd2hweF92Y3B1X3By ZV9ydW4oY3B1KTsKIAotICAgICAgICBpZiAoYXRvbWljX3JlYWQoJmNwdS0+ZXhpdF9yZXF1ZXN0 KSkgeworICAgICAgICBpZiAocWVtdV9hdG9taWNfcmVhZCgmY3B1LT5leGl0X3JlcXVlc3QpKSB7 CiAgICAgICAgICAgICB3aHB4X3ZjcHVfa2ljayhjcHUpOwogICAgICAgICB9CiAKQEAgLTExMTMs NyArMTExMyw3IEBAIHN0YXRpYyBpbnQgd2hweF92Y3B1X3J1bihDUFVTdGF0ZSAqY3B1KQogICAg IHFlbXVfbXV0ZXhfbG9ja19pb3RocmVhZCgpOwogICAgIGN1cnJlbnRfY3B1ID0gY3B1OwogCi0g ICAgYXRvbWljX3NldCgmY3B1LT5leGl0X3JlcXVlc3QsIGZhbHNlKTsKKyAgICBxZW11X2F0b21p Y19zZXQoJmNwdS0+ZXhpdF9yZXF1ZXN0LCBmYWxzZSk7CiAKICAgICByZXR1cm4gcmV0IDwgMDsK IH0KZGlmZiAtLWdpdCBhL3RhcmdldC9yaXNjdi9jcHVfaGVscGVyLmMgYi90YXJnZXQvcmlzY3Yv Y3B1X2hlbHBlci5jCmluZGV4IGY0YzQxMTE1MzYuLjQxNzc5ZTMwNjggMTAwNjQ0Ci0tLSBhL3Rh cmdldC9yaXNjdi9jcHVfaGVscGVyLmMKKysrIGIvdGFyZ2V0L3Jpc2N2L2NwdV9oZWxwZXIuYwpA QCAtNTM3LDcgKzUzNyw3IEBAIHJlc3RhcnQ6CiAgICAgICAgICAgICAgICAgICAgICpwdGVfcGEg PSBwdGUgPSB1cGRhdGVkX3B0ZTsKICNlbHNlCiAgICAgICAgICAgICAgICAgICAgIHRhcmdldF91 bG9uZyBvbGRfcHRlID0KLSAgICAgICAgICAgICAgICAgICAgICAgIGF0b21pY19jbXB4Y2hnKHB0 ZV9wYSwgcHRlLCB1cGRhdGVkX3B0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBxZW11X2F0 b21pY19jbXB4Y2hnKHB0ZV9wYSwgcHRlLCB1cGRhdGVkX3B0ZSk7CiAgICAgICAgICAgICAgICAg ICAgIGlmIChvbGRfcHRlICE9IHB0ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBy ZXN0YXJ0OwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvdGFyZ2V0 L3MzOTB4L21lbV9oZWxwZXIuYyBiL3RhcmdldC9zMzkweC9tZW1faGVscGVyLmMKaW5kZXggYTIz N2RlYzc1Ny4uMjZkOTdkZDBjNSAxMDA2NDQKLS0tIGEvdGFyZ2V0L3MzOTB4L21lbV9oZWxwZXIu YworKysgYi90YXJnZXQvczM5MHgvbWVtX2hlbHBlci5jCkBAIC0xNzgwLDcgKzE3ODAsNyBAQCBz dGF0aWMgdWludDMyX3QgZG9fY3NzdChDUFVTMzkwWFN0YXRlICplbnYsIHVpbnQzMl90IHIzLCB1 aW50NjRfdCBhMSwKICAgICAgICAgICAgIGlmIChwYXJhbGxlbCkgewogI2lmZGVmIENPTkZJR19V U0VSX09OTFkKICAgICAgICAgICAgICAgICB1aW50MzJfdCAqaGFkZHIgPSBnMmgoYTEpOwotICAg ICAgICAgICAgICAgIG92ID0gYXRvbWljX2NtcHhjaGdfX25vY2hlY2soaGFkZHIsIGN2LCBudik7 CisgICAgICAgICAgICAgICAgb3YgPSBxZW11X2F0b21pY19jbXB4Y2hnX19ub2NoZWNrKGhhZGRy LCBjdiwgbnYpOwogI2Vsc2UKICAgICAgICAgICAgICAgICBUQ0dNZW1PcElkeCBvaSA9IG1ha2Vf bWVtb3BfaWR4KE1PX1RFVUwgfCBNT19BTElHTiwgbWVtX2lkeCk7CiAgICAgICAgICAgICAgICAg b3YgPSBoZWxwZXJfYXRvbWljX2NtcHhjaGdsX2JlX21tdShlbnYsIGExLCBjdiwgbnYsIG9pLCBy YSk7CkBAIC0xODA0LDcgKzE4MDQsNyBAQCBzdGF0aWMgdWludDMyX3QgZG9fY3NzdChDUFVTMzkw WFN0YXRlICplbnYsIHVpbnQzMl90IHIzLCB1aW50NjRfdCBhMSwKICNpZmRlZiBDT05GSUdfQVRP TUlDNjQKICMgaWZkZWYgQ09ORklHX1VTRVJfT05MWQogICAgICAgICAgICAgICAgIHVpbnQ2NF90 ICpoYWRkciA9IGcyaChhMSk7Ci0gICAgICAgICAgICAgICAgb3YgPSBhdG9taWNfY21weGNoZ19f bm9jaGVjayhoYWRkciwgY3YsIG52KTsKKyAgICAgICAgICAgICAgICBvdiA9IHFlbXVfYXRvbWlj X2NtcHhjaGdfX25vY2hlY2soaGFkZHIsIGN2LCBudik7CiAjIGVsc2UKICAgICAgICAgICAgICAg ICBUQ0dNZW1PcElkeCBvaSA9IG1ha2VfbWVtb3BfaWR4KE1PX1RFUSB8IE1PX0FMSUdOLCBtZW1f aWR4KTsKICAgICAgICAgICAgICAgICBvdiA9IGhlbHBlcl9hdG9taWNfY21weGNoZ3FfYmVfbW11 KGVudiwgYTEsIGN2LCBudiwgb2ksIHJhKTsKZGlmZiAtLWdpdCBhL3RhcmdldC94dGVuc2EvZXhj X2hlbHBlci5jIGIvdGFyZ2V0L3h0ZW5zYS9leGNfaGVscGVyLmMKaW5kZXggNThhNjRlNmQ2Mi4u ZGQzZjgyMjZiOSAxMDA2NDQKLS0tIGEvdGFyZ2V0L3h0ZW5zYS9leGNfaGVscGVyLmMKKysrIGIv dGFyZ2V0L3h0ZW5zYS9leGNfaGVscGVyLmMKQEAgLTEyOCwxMyArMTI4LDEzIEBAIHZvaWQgSEVM UEVSKGNoZWNrX2ludGVycnVwdHMpKENQVVh0ZW5zYVN0YXRlICplbnYpCiAKIHZvaWQgSEVMUEVS KGludHNldCkoQ1BVWHRlbnNhU3RhdGUgKmVudiwgdWludDMyX3QgdikKIHsKLSAgICBhdG9taWNf b3IoJmVudi0+c3JlZ3NbSU5UU0VUXSwKKyAgICBxZW11X2F0b21pY19vcigmZW52LT5zcmVnc1tJ TlRTRVRdLAogICAgICAgICAgICAgICB2ICYgZW52LT5jb25maWctPmludHR5cGVfbWFza1tJTlRU WVBFX1NPRlRXQVJFXSk7CiB9CiAKIHN0YXRpYyB2b2lkIGludGNsZWFyKENQVVh0ZW5zYVN0YXRl ICplbnYsIHVpbnQzMl90IHYpCiB7Ci0gICAgYXRvbWljX2FuZCgmZW52LT5zcmVnc1tJTlRTRVRd LCB+dik7CisgICAgcWVtdV9hdG9taWNfYW5kKCZlbnYtPnNyZWdzW0lOVFNFVF0sIH52KTsKIH0K IAogdm9pZCBIRUxQRVIoaW50Y2xlYXIpKENQVVh0ZW5zYVN0YXRlICplbnYsIHVpbnQzMl90IHYp CmRpZmYgLS1naXQgYS90YXJnZXQveHRlbnNhL29wX2hlbHBlci5jIGIvdGFyZ2V0L3h0ZW5zYS9v cF9oZWxwZXIuYwppbmRleCAwOWY0OTYyZDAwLi44YjJiMjZjNjIyIDEwMDY0NAotLS0gYS90YXJn ZXQveHRlbnNhL29wX2hlbHBlci5jCisrKyBiL3RhcmdldC94dGVuc2Evb3BfaGVscGVyLmMKQEAg LTYyLDcgKzYyLDcgQEAgdm9pZCBIRUxQRVIodXBkYXRlX2Njb21wYXJlKShDUFVYdGVuc2FTdGF0 ZSAqZW52LCB1aW50MzJfdCBpKQogewogICAgIHVpbnQ2NF90IGRjYzsKIAotICAgIGF0b21pY19h bmQoJmVudi0+c3JlZ3NbSU5UU0VUXSwKKyAgICBxZW11X2F0b21pY19hbmQoJmVudi0+c3JlZ3Nb SU5UU0VUXSwKICAgICAgICAgICAgICAgIH4oMXUgPDwgZW52LT5jb25maWctPnRpbWVyaW50W2ld KSk7CiAgICAgSEVMUEVSKHVwZGF0ZV9jY291bnQpKGVudik7CiAgICAgZGNjID0gKHVpbnQ2NF90 KShlbnYtPnNyZWdzW0NDT01QQVJFICsgaV0gLSBlbnYtPnNyZWdzW0NDT1VOVF0gLSAxKSArIDE7 CmRpZmYgLS1naXQgYS90Y2cvdGNnLmMgYi90Y2cvdGNnLmMKaW5kZXggNjJmMjk5ZTM2ZS4uODgx NTJhZTRkZiAxMDA2NDQKLS0tIGEvdGNnL3RjZy5jCisrKyBiL3RjZy90Y2cuYwpAQCAtNTk3LDcg KzU5Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB0Y2dfcmVnaW9uX2luaXRpYWxfYWxsb2NfX2xv Y2tlZChUQ0dDb250ZXh0ICpzKQogLyogQ2FsbCBmcm9tIGEgc2FmZS13b3JrIGNvbnRleHQgKi8K IHZvaWQgdGNnX3JlZ2lvbl9yZXNldF9hbGwodm9pZCkKIHsKLSAgICB1bnNpZ25lZCBpbnQgbl9j dHhzID0gYXRvbWljX3JlYWQoJm5fdGNnX2N0eHMpOworICAgIHVuc2lnbmVkIGludCBuX2N0eHMg PSBxZW11X2F0b21pY19yZWFkKCZuX3RjZ19jdHhzKTsKICAgICB1bnNpZ25lZCBpbnQgaTsKIAog ICAgIHFlbXVfbXV0ZXhfbG9jaygmcmVnaW9uLmxvY2spOwpAQCAtNjA1LDcgKzYwNSw3IEBAIHZv aWQgdGNnX3JlZ2lvbl9yZXNldF9hbGwodm9pZCkKICAgICByZWdpb24uYWdnX3NpemVfZnVsbCA9 IDA7CiAKICAgICBmb3IgKGkgPSAwOyBpIDwgbl9jdHhzOyBpKyspIHsKLSAgICAgICAgVENHQ29u dGV4dCAqcyA9IGF0b21pY19yZWFkKCZ0Y2dfY3R4c1tpXSk7CisgICAgICAgIFRDR0NvbnRleHQg KnMgPSBxZW11X2F0b21pY19yZWFkKCZ0Y2dfY3R4c1tpXSk7CiAgICAgICAgIGJvb2wgZXJyID0g dGNnX3JlZ2lvbl9pbml0aWFsX2FsbG9jX19sb2NrZWQocyk7CiAKICAgICAgICAgZ19hc3NlcnQo IWVycik7CkBAIC03OTQsOSArNzk0LDkgQEAgdm9pZCB0Y2dfcmVnaXN0ZXJfdGhyZWFkKHZvaWQp CiAgICAgfQogCiAgICAgLyogQ2xhaW0gYW4gZW50cnkgaW4gdGNnX2N0eHMgKi8KLSAgICBuID0g YXRvbWljX2ZldGNoX2luYygmbl90Y2dfY3R4cyk7CisgICAgbiA9IHFlbXVfYXRvbWljX2ZldGNo X2luYygmbl90Y2dfY3R4cyk7CiAgICAgZ19hc3NlcnQobiA8IG1zLT5zbXAubWF4X2NwdXMpOwot ICAgIGF0b21pY19zZXQoJnRjZ19jdHhzW25dLCBzKTsKKyAgICBxZW11X2F0b21pY19zZXQoJnRj Z19jdHhzW25dLCBzKTsKIAogICAgIGlmIChuID4gMCkgewogICAgICAgICBhbGxvY190Y2dfcGx1 Z2luX2NvbnRleHQocyk7CkBAIC04MTksMTcgKzgxOSwxNyBAQCB2b2lkIHRjZ19yZWdpc3Rlcl90 aHJlYWQodm9pZCkKICAqLwogc2l6ZV90IHRjZ19jb2RlX3NpemUodm9pZCkKIHsKLSAgICB1bnNp Z25lZCBpbnQgbl9jdHhzID0gYXRvbWljX3JlYWQoJm5fdGNnX2N0eHMpOworICAgIHVuc2lnbmVk IGludCBuX2N0eHMgPSBxZW11X2F0b21pY19yZWFkKCZuX3RjZ19jdHhzKTsKICAgICB1bnNpZ25l ZCBpbnQgaTsKICAgICBzaXplX3QgdG90YWw7CiAKICAgICBxZW11X211dGV4X2xvY2soJnJlZ2lv bi5sb2NrKTsKICAgICB0b3RhbCA9IHJlZ2lvbi5hZ2dfc2l6ZV9mdWxsOwogICAgIGZvciAoaSA9 IDA7IGkgPCBuX2N0eHM7IGkrKykgewotICAgICAgICBjb25zdCBUQ0dDb250ZXh0ICpzID0gYXRv bWljX3JlYWQoJnRjZ19jdHhzW2ldKTsKKyAgICAgICAgY29uc3QgVENHQ29udGV4dCAqcyA9IHFl bXVfYXRvbWljX3JlYWQoJnRjZ19jdHhzW2ldKTsKICAgICAgICAgc2l6ZV90IHNpemU7CiAKLSAg ICAgICAgc2l6ZSA9IGF0b21pY19yZWFkKCZzLT5jb2RlX2dlbl9wdHIpIC0gcy0+Y29kZV9nZW5f YnVmZmVyOworICAgICAgICBzaXplID0gcWVtdV9hdG9taWNfcmVhZCgmcy0+Y29kZV9nZW5fcHRy KSAtIHMtPmNvZGVfZ2VuX2J1ZmZlcjsKICAgICAgICAgZ19hc3NlcnQoc2l6ZSA8PSBzLT5jb2Rl X2dlbl9idWZmZXJfc2l6ZSk7CiAgICAgICAgIHRvdGFsICs9IHNpemU7CiAgICAgfQpAQCAtODU1 LDE0ICs4NTUsMTQgQEAgc2l6ZV90IHRjZ19jb2RlX2NhcGFjaXR5KHZvaWQpCiAKIHNpemVfdCB0 Y2dfdGJfcGh5c19pbnZhbGlkYXRlX2NvdW50KHZvaWQpCiB7Ci0gICAgdW5zaWduZWQgaW50IG5f Y3R4cyA9IGF0b21pY19yZWFkKCZuX3RjZ19jdHhzKTsKKyAgICB1bnNpZ25lZCBpbnQgbl9jdHhz ID0gcWVtdV9hdG9taWNfcmVhZCgmbl90Y2dfY3R4cyk7CiAgICAgdW5zaWduZWQgaW50IGk7CiAg ICAgc2l6ZV90IHRvdGFsID0gMDsKIAogICAgIGZvciAoaSA9IDA7IGkgPCBuX2N0eHM7IGkrKykg ewotICAgICAgICBjb25zdCBUQ0dDb250ZXh0ICpzID0gYXRvbWljX3JlYWQoJnRjZ19jdHhzW2ld KTsKKyAgICAgICAgY29uc3QgVENHQ29udGV4dCAqcyA9IHFlbXVfYXRvbWljX3JlYWQoJnRjZ19j dHhzW2ldKTsKIAotICAgICAgICB0b3RhbCArPSBhdG9taWNfcmVhZCgmcy0+dGJfcGh5c19pbnZh bGlkYXRlX2NvdW50KTsKKyAgICAgICAgdG90YWwgKz0gcWVtdV9hdG9taWNfcmVhZCgmcy0+dGJf cGh5c19pbnZhbGlkYXRlX2NvdW50KTsKICAgICB9CiAgICAgcmV0dXJuIHRvdGFsOwogfQpAQCAt MTA0MSw3ICsxMDQxLDcgQEAgVHJhbnNsYXRpb25CbG9jayAqdGNnX3RiX2FsbG9jKFRDR0NvbnRl eHQgKnMpCiAgICAgICAgIH0KICAgICAgICAgZ290byByZXRyeTsKICAgICB9Ci0gICAgYXRvbWlj X3NldCgmcy0+Y29kZV9nZW5fcHRyLCBuZXh0KTsKKyAgICBxZW11X2F0b21pY19zZXQoJnMtPmNv ZGVfZ2VuX3B0ciwgbmV4dCk7CiAgICAgcy0+ZGF0YV9nZW5fcHRyID0gTlVMTDsKICAgICByZXR1 cm4gdGI7CiB9CkBAIC0yMTM0LDcgKzIxMzQsNyBAQCBzdGF0aWMgdm9pZCB0Y2dfZHVtcF9vcHMo VENHQ29udGV4dCAqcywgYm9vbCBoYXZlX3ByZWZzKQogICAgICAgICAgICAgUWVtdUxvZ0ZpbGUg KmxvZ2ZpbGU7CiAKICAgICAgICAgICAgIHJjdV9yZWFkX2xvY2soKTsKLSAgICAgICAgICAgIGxv Z2ZpbGUgPSBhdG9taWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7CisgICAgICAgICAgICBsb2dm aWxlID0gcWVtdV9hdG9taWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7CiAgICAgICAgICAgICBp ZiAobG9nZmlsZSkgewogICAgICAgICAgICAgICAgIGZvciAoOyBjb2wgPCA0MDsgKytjb2wpIHsK ICAgICAgICAgICAgICAgICAgICAgcHV0YygnICcsIGxvZ2ZpbGUtPmZkKTsKQEAgLTIzNDEsNyAr MjM0MSw3IEBAIHZvaWQgdGNnX29wX3JlbW92ZShUQ0dDb250ZXh0ICpzLCBUQ0dPcCAqb3ApCiAg ICAgcy0+bmJfb3BzLS07CiAKICNpZmRlZiBDT05GSUdfUFJPRklMRVIKLSAgICBhdG9taWNfc2V0 KCZzLT5wcm9mLmRlbF9vcF9jb3VudCwgcy0+cHJvZi5kZWxfb3BfY291bnQgKyAxKTsKKyAgICBx ZW11X2F0b21pY19zZXQoJnMtPnByb2YuZGVsX29wX2NvdW50LCBzLT5wcm9mLmRlbF9vcF9jb3Vu dCArIDEpOwogI2VuZGlmCiB9CiAKQEAgLTM5NjQsMTIgKzM5NjQsMTIgQEAgc3RhdGljIHZvaWQg dGNnX3JlZ19hbGxvY19jYWxsKFRDR0NvbnRleHQgKnMsIFRDR09wICpvcCkKIC8qIGF2b2lkIGNv cHkvcGFzdGUgZXJyb3JzICovCiAjZGVmaW5lIFBST0ZfQUREKHRvLCBmcm9tLCBmaWVsZCkgICAg ICAgICAgICAgICAgICAgICAgIFwKICAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAodG8pLT5maWVsZCArPSBhdG9taWNfcmVh ZCgmKChmcm9tKS0+ZmllbGQpKTsgICBcCisgICAgICAgICh0byktPmZpZWxkICs9IHFlbXVfYXRv bWljX3JlYWQoJigoZnJvbSktPmZpZWxkKSk7ICAgXAogICAgIH0gd2hpbGUgKDApCiAKICNkZWZp bmUgUFJPRl9NQVgodG8sIGZyb20sIGZpZWxkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKICAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgdHlwZW9mKChmcm9tKS0+Zmll bGQpIHZhbF9fID0gYXRvbWljX3JlYWQoJigoZnJvbSktPmZpZWxkKSk7ICAgIFwKKyAgICAgICAg dHlwZW9mKChmcm9tKS0+ZmllbGQpIHZhbF9fID0gcWVtdV9hdG9taWNfcmVhZCgmKChmcm9tKS0+ ZmllbGQpKTsgICAgXAogICAgICAgICBpZiAodmFsX18gPiAodG8pLT5maWVsZCkgeyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgKHRvKS0+ZmllbGQg PSB2YWxfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAg ICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXApAQCAtMzk3OSwxMSArMzk3OSwxMSBAQCBzdGF0aWMgdm9pZCB0Y2dfcmVnX2Fs bG9jX2NhbGwoVENHQ29udGV4dCAqcywgVENHT3AgKm9wKQogc3RhdGljIGlubGluZQogdm9pZCB0 Y2dfcHJvZmlsZV9zbmFwc2hvdChUQ0dQcm9maWxlICpwcm9mLCBib29sIGNvdW50ZXJzLCBib29s IHRhYmxlKQogewotICAgIHVuc2lnbmVkIGludCBuX2N0eHMgPSBhdG9taWNfcmVhZCgmbl90Y2df Y3R4cyk7CisgICAgdW5zaWduZWQgaW50IG5fY3R4cyA9IHFlbXVfYXRvbWljX3JlYWQoJm5fdGNn X2N0eHMpOwogICAgIHVuc2lnbmVkIGludCBpOwogCiAgICAgZm9yIChpID0gMDsgaSA8IG5fY3R4 czsgaSsrKSB7Ci0gICAgICAgIFRDR0NvbnRleHQgKnMgPSBhdG9taWNfcmVhZCgmdGNnX2N0eHNb aV0pOworICAgICAgICBUQ0dDb250ZXh0ICpzID0gcWVtdV9hdG9taWNfcmVhZCgmdGNnX2N0eHNb aV0pOwogICAgICAgICBjb25zdCBUQ0dQcm9maWxlICpvcmlnID0gJnMtPnByb2Y7CiAKICAgICAg ICAgaWYgKGNvdW50ZXJzKSB7CkBAIC00MDQyLDE1ICs0MDQyLDE1IEBAIHZvaWQgdGNnX2R1bXBf b3BfY291bnQodm9pZCkKIAogaW50NjRfdCB0Y2dfY3B1X2V4ZWNfdGltZSh2b2lkKQogewotICAg IHVuc2lnbmVkIGludCBuX2N0eHMgPSBhdG9taWNfcmVhZCgmbl90Y2dfY3R4cyk7CisgICAgdW5z aWduZWQgaW50IG5fY3R4cyA9IHFlbXVfYXRvbWljX3JlYWQoJm5fdGNnX2N0eHMpOwogICAgIHVu c2lnbmVkIGludCBpOwogICAgIGludDY0X3QgcmV0ID0gMDsKIAogICAgIGZvciAoaSA9IDA7IGkg PCBuX2N0eHM7IGkrKykgewotICAgICAgICBjb25zdCBUQ0dDb250ZXh0ICpzID0gYXRvbWljX3Jl YWQoJnRjZ19jdHhzW2ldKTsKKyAgICAgICAgY29uc3QgVENHQ29udGV4dCAqcyA9IHFlbXVfYXRv bWljX3JlYWQoJnRjZ19jdHhzW2ldKTsKICAgICAgICAgY29uc3QgVENHUHJvZmlsZSAqcHJvZiA9 ICZzLT5wcm9mOwogCi0gICAgICAgIHJldCArPSBhdG9taWNfcmVhZCgmcHJvZi0+Y3B1X2V4ZWNf dGltZSk7CisgICAgICAgIHJldCArPSBxZW11X2F0b21pY19yZWFkKCZwcm9mLT5jcHVfZXhlY190 aW1lKTsKICAgICB9CiAgICAgcmV0dXJuIHJldDsKIH0KQEAgLTQwODMsMTUgKzQwODMsMTUgQEAg aW50IHRjZ19nZW5fY29kZShUQ0dDb250ZXh0ICpzLCBUcmFuc2xhdGlvbkJsb2NrICp0YikKICAg ICAgICAgUVRBSUxRX0ZPUkVBQ0gob3AsICZzLT5vcHMsIGxpbmspIHsKICAgICAgICAgICAgIG4r KzsKICAgICAgICAgfQotICAgICAgICBhdG9taWNfc2V0KCZwcm9mLT5vcF9jb3VudCwgcHJvZi0+ b3BfY291bnQgKyBuKTsKKyAgICAgICAgcWVtdV9hdG9taWNfc2V0KCZwcm9mLT5vcF9jb3VudCwg cHJvZi0+b3BfY291bnQgKyBuKTsKICAgICAgICAgaWYgKG4gPiBwcm9mLT5vcF9jb3VudF9tYXgp IHsKLSAgICAgICAgICAgIGF0b21pY19zZXQoJnByb2YtPm9wX2NvdW50X21heCwgbik7CisgICAg ICAgICAgICBxZW11X2F0b21pY19zZXQoJnByb2YtPm9wX2NvdW50X21heCwgbik7CiAgICAgICAg IH0KIAogICAgICAgICBuID0gcy0+bmJfdGVtcHM7Ci0gICAgICAgIGF0b21pY19zZXQoJnByb2Yt PnRlbXBfY291bnQsIHByb2YtPnRlbXBfY291bnQgKyBuKTsKKyAgICAgICAgcWVtdV9hdG9taWNf c2V0KCZwcm9mLT50ZW1wX2NvdW50LCBwcm9mLT50ZW1wX2NvdW50ICsgbik7CiAgICAgICAgIGlm IChuID4gcHJvZi0+dGVtcF9jb3VudF9tYXgpIHsKLSAgICAgICAgICAgIGF0b21pY19zZXQoJnBy b2YtPnRlbXBfY291bnRfbWF4LCBuKTsKKyAgICAgICAgICAgIHFlbXVfYXRvbWljX3NldCgmcHJv Zi0+dGVtcF9jb3VudF9tYXgsIG4pOwogICAgICAgICB9CiAgICAgfQogI2VuZGlmCkBAIC00MTI1 LDcgKzQxMjUsNyBAQCBpbnQgdGNnX2dlbl9jb2RlKFRDR0NvbnRleHQgKnMsIFRyYW5zbGF0aW9u QmxvY2sgKnRiKQogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfUFJPRklMRVIKLSAgICBhdG9taWNf c2V0KCZwcm9mLT5vcHRfdGltZSwgcHJvZi0+b3B0X3RpbWUgLSBwcm9maWxlX2dldGNsb2NrKCkp OworICAgIHFlbXVfYXRvbWljX3NldCgmcHJvZi0+b3B0X3RpbWUsIHByb2YtPm9wdF90aW1lIC0g cHJvZmlsZV9nZXRjbG9jaygpKTsKICNlbmRpZgogCiAjaWZkZWYgVVNFX1RDR19PUFRJTUlaQVRJ T05TCkBAIC00MTMzLDggKzQxMzMsOCBAQCBpbnQgdGNnX2dlbl9jb2RlKFRDR0NvbnRleHQgKnMs IFRyYW5zbGF0aW9uQmxvY2sgKnRiKQogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfUFJPRklMRVIK LSAgICBhdG9taWNfc2V0KCZwcm9mLT5vcHRfdGltZSwgcHJvZi0+b3B0X3RpbWUgKyBwcm9maWxl X2dldGNsb2NrKCkpOwotICAgIGF0b21pY19zZXQoJnByb2YtPmxhX3RpbWUsIHByb2YtPmxhX3Rp bWUgLSBwcm9maWxlX2dldGNsb2NrKCkpOworICAgIHFlbXVfYXRvbWljX3NldCgmcHJvZi0+b3B0 X3RpbWUsIHByb2YtPm9wdF90aW1lICsgcHJvZmlsZV9nZXRjbG9jaygpKTsKKyAgICBxZW11X2F0 b21pY19zZXQoJnByb2YtPmxhX3RpbWUsIHByb2YtPmxhX3RpbWUgLSBwcm9maWxlX2dldGNsb2Nr KCkpOwogI2VuZGlmCiAKICAgICByZWFjaGFibGVfY29kZV9wYXNzKHMpOwpAQCAtNDE1OSw3ICs0 MTU5LDcgQEAgaW50IHRjZ19nZW5fY29kZShUQ0dDb250ZXh0ICpzLCBUcmFuc2xhdGlvbkJsb2Nr ICp0YikKICAgICB9CiAKICNpZmRlZiBDT05GSUdfUFJPRklMRVIKLSAgICBhdG9taWNfc2V0KCZw cm9mLT5sYV90aW1lLCBwcm9mLT5sYV90aW1lICsgcHJvZmlsZV9nZXRjbG9jaygpKTsKKyAgICBx ZW11X2F0b21pY19zZXQoJnByb2YtPmxhX3RpbWUsIHByb2YtPmxhX3RpbWUgKyBwcm9maWxlX2dl dGNsb2NrKCkpOwogI2VuZGlmCiAKICNpZmRlZiBERUJVR19ESVNBUwpAQCAtNDE5MCw3ICs0MTkw LDggQEAgaW50IHRjZ19nZW5fY29kZShUQ0dDb250ZXh0ICpzLCBUcmFuc2xhdGlvbkJsb2NrICp0 YikKICAgICAgICAgVENHT3Bjb2RlIG9wYyA9IG9wLT5vcGM7CiAKICNpZmRlZiBDT05GSUdfUFJP RklMRVIKLSAgICAgICAgYXRvbWljX3NldCgmcHJvZi0+dGFibGVfb3BfY291bnRbb3BjXSwgcHJv Zi0+dGFibGVfb3BfY291bnRbb3BjXSArIDEpOworICAgICAgICBxZW11X2F0b21pY19zZXQoJnBy b2YtPnRhYmxlX29wX2NvdW50W29wY10sCisgICAgICAgICAgICAgICAgICAgICAgICBwcm9mLT50 YWJsZV9vcF9jb3VudFtvcGNdICsgMSk7CiAjZW5kaWYKIAogICAgICAgICBzd2l0Y2ggKG9wYykg ewpkaWZmIC0tZ2l0IGEvdGNnL3RjaS5jIGIvdGNnL3RjaS5jCmluZGV4IDQ2ZmU5Y2U2M2YuLmUw ZmVkOTAyYjIgMTAwNjQ0Ci0tLSBhL3RjZy90Y2kuYworKysgYi90Y2cvdGNpLmMKQEAgLTExMTUs NyArMTExNSw3IEBAIHVpbnRwdHJfdCB0Y2dfcWVtdV90Yl9leGVjKENQVUFyY2hTdGF0ZSAqZW52 LCB1aW50OF90ICp0Yl9wdHIpCiAgICAgICAgIGNhc2UgSU5ERVhfb3BfZ290b190YjoKICAgICAg ICAgICAgIC8qIEp1bXAgYWRkcmVzcyBpcyBhbGlnbmVkICovCiAgICAgICAgICAgICB0Yl9wdHIg PSBRRU1VX0FMSUdOX1BUUl9VUCh0Yl9wdHIsIDQpOwotICAgICAgICAgICAgdDAgPSBhdG9taWNf cmVhZCgoaW50MzJfdCAqKXRiX3B0cik7CisgICAgICAgICAgICB0MCA9IHFlbXVfYXRvbWljX3Jl YWQoKGludDMyX3QgKil0Yl9wdHIpOwogICAgICAgICAgICAgdGJfcHRyICs9IHNpemVvZihpbnQz Ml90KTsKICAgICAgICAgICAgIHRjaV9hc3NlcnQodGJfcHRyID09IG9sZF9jb2RlX3B0ciArIG9w X3NpemUpOwogICAgICAgICAgICAgdGJfcHRyICs9IChpbnQzMl90KXQwOwpkaWZmIC0tZ2l0IGEv dGVzdHMvYXRvbWljNjQtYmVuY2guYyBiL3Rlc3RzL2F0b21pYzY0LWJlbmNoLmMKaW5kZXggMTIx YThjMTRmNC4uNmY1NmFlMmVjNSAxMDA2NDQKLS0tIGEvdGVzdHMvYXRvbWljNjQtYmVuY2guYwor KysgYi90ZXN0cy9hdG9taWM2NC1iZW5jaC5jCkBAIC01NiwxNyArNTYsMTcgQEAgc3RhdGljIHZv aWQgKnRocmVhZF9mdW5jKHZvaWQgKmFyZykKIHsKICAgICBzdHJ1Y3QgdGhyZWFkX2luZm8gKmlu Zm8gPSBhcmc7CiAKLSAgICBhdG9taWNfaW5jKCZuX3JlYWR5X3RocmVhZHMpOwotICAgIHdoaWxl ICghYXRvbWljX3JlYWQoJnRlc3Rfc3RhcnQpKSB7CisgICAgcWVtdV9hdG9taWNfaW5jKCZuX3Jl YWR5X3RocmVhZHMpOworICAgIHdoaWxlICghcWVtdV9hdG9taWNfcmVhZCgmdGVzdF9zdGFydCkp IHsKICAgICAgICAgY3B1X3JlbGF4KCk7CiAgICAgfQogCi0gICAgd2hpbGUgKCFhdG9taWNfcmVh ZCgmdGVzdF9zdG9wKSkgeworICAgIHdoaWxlICghcWVtdV9hdG9taWNfcmVhZCgmdGVzdF9zdG9w KSkgewogICAgICAgICB1bnNpZ25lZCBpbnQgaW5kZXg7CiAKICAgICAgICAgaW5mby0+ciA9IHhv cnNoaWZ0NjRzdGFyKGluZm8tPnIpOwogICAgICAgICBpbmRleCA9IGluZm8tPnIgJiAocmFuZ2Ug LSAxKTsKLSAgICAgICAgYXRvbWljX3JlYWRfaTY0KCZjb3VudHNbaW5kZXhdLmk2NCk7CisgICAg ICAgIHFlbXVfYXRvbWljX3JlYWRfaTY0KCZjb3VudHNbaW5kZXhdLmk2NCk7CiAgICAgICAgIGlu Zm8tPmFjY2Vzc2VzKys7CiAgICAgfQogICAgIHJldHVybiBOVUxMOwpAQCAtNzYsMTMgKzc2LDEz IEBAIHN0YXRpYyB2b2lkIHJ1bl90ZXN0KHZvaWQpCiB7CiAgICAgdW5zaWduZWQgaW50IGk7CiAK LSAgICB3aGlsZSAoYXRvbWljX3JlYWQoJm5fcmVhZHlfdGhyZWFkcykgIT0gbl90aHJlYWRzKSB7 CisgICAgd2hpbGUgKHFlbXVfYXRvbWljX3JlYWQoJm5fcmVhZHlfdGhyZWFkcykgIT0gbl90aHJl YWRzKSB7CiAgICAgICAgIGNwdV9yZWxheCgpOwogICAgIH0KIAotICAgIGF0b21pY19zZXQoJnRl c3Rfc3RhcnQsIHRydWUpOworICAgIHFlbXVfYXRvbWljX3NldCgmdGVzdF9zdGFydCwgdHJ1ZSk7 CiAgICAgZ191c2xlZXAoZHVyYXRpb24gKiBHX1VTRUNfUEVSX1NFQyk7Ci0gICAgYXRvbWljX3Nl dCgmdGVzdF9zdG9wLCB0cnVlKTsKKyAgICBxZW11X2F0b21pY19zZXQoJnRlc3Rfc3RvcCwgdHJ1 ZSk7CiAKICAgICBmb3IgKGkgPSAwOyBpIDwgbl90aHJlYWRzOyBpKyspIHsKICAgICAgICAgcWVt dV90aHJlYWRfam9pbigmdGhyZWFkc1tpXSk7CmRpZmYgLS1naXQgYS90ZXN0cy9hdG9taWNfYWRk LWJlbmNoLmMgYi90ZXN0cy9hdG9taWNfYWRkLWJlbmNoLmMKaW5kZXggNTY2NmY2YmJmZi4uOGQw OTViODk4OCAxMDA2NDQKLS0tIGEvdGVzdHMvYXRvbWljX2FkZC1iZW5jaC5jCisrKyBiL3Rlc3Rz L2F0b21pY19hZGQtYmVuY2guYwpAQCAtNTMsMTIgKzUzLDEyIEBAIHN0YXRpYyB2b2lkICp0aHJl YWRfZnVuYyh2b2lkICphcmcpCiB7CiAgICAgc3RydWN0IHRocmVhZF9pbmZvICppbmZvID0gYXJn OwogCi0gICAgYXRvbWljX2luYygmbl9yZWFkeV90aHJlYWRzKTsKLSAgICB3aGlsZSAoIWF0b21p Y19yZWFkKCZ0ZXN0X3N0YXJ0KSkgeworICAgIHFlbXVfYXRvbWljX2luYygmbl9yZWFkeV90aHJl YWRzKTsKKyAgICB3aGlsZSAoIXFlbXVfYXRvbWljX3JlYWQoJnRlc3Rfc3RhcnQpKSB7CiAgICAg ICAgIGNwdV9yZWxheCgpOwogICAgIH0KIAotICAgIHdoaWxlICghYXRvbWljX3JlYWQoJnRlc3Rf c3RvcCkpIHsKKyAgICB3aGlsZSAoIXFlbXVfYXRvbWljX3JlYWQoJnRlc3Rfc3RvcCkpIHsKICAg ICAgICAgdW5zaWduZWQgaW50IGluZGV4OwogCiAgICAgICAgIGluZm8tPnIgPSB4b3JzaGlmdDY0 c3RhcihpbmZvLT5yKTsKQEAgLTY4LDcgKzY4LDcgQEAgc3RhdGljIHZvaWQgKnRocmVhZF9mdW5j KHZvaWQgKmFyZykKICAgICAgICAgICAgIGNvdW50c1tpbmRleF0udmFsICs9IDE7CiAgICAgICAg ICAgICBxZW11X211dGV4X3VubG9jaygmY291bnRzW2luZGV4XS5sb2NrKTsKICAgICAgICAgfSBl bHNlIHsKLSAgICAgICAgICAgIGF0b21pY19pbmMoJmNvdW50c1tpbmRleF0udmFsKTsKKyAgICAg ICAgICAgIHFlbXVfYXRvbWljX2luYygmY291bnRzW2luZGV4XS52YWwpOwogICAgICAgICB9CiAg ICAgfQogICAgIHJldHVybiBOVUxMOwpAQCAtNzgsMTMgKzc4LDEzIEBAIHN0YXRpYyB2b2lkIHJ1 bl90ZXN0KHZvaWQpCiB7CiAgICAgdW5zaWduZWQgaW50IGk7CiAKLSAgICB3aGlsZSAoYXRvbWlj X3JlYWQoJm5fcmVhZHlfdGhyZWFkcykgIT0gbl90aHJlYWRzKSB7CisgICAgd2hpbGUgKHFlbXVf YXRvbWljX3JlYWQoJm5fcmVhZHlfdGhyZWFkcykgIT0gbl90aHJlYWRzKSB7CiAgICAgICAgIGNw dV9yZWxheCgpOwogICAgIH0KIAotICAgIGF0b21pY19zZXQoJnRlc3Rfc3RhcnQsIHRydWUpOwor ICAgIHFlbXVfYXRvbWljX3NldCgmdGVzdF9zdGFydCwgdHJ1ZSk7CiAgICAgZ191c2xlZXAoZHVy YXRpb24gKiBHX1VTRUNfUEVSX1NFQyk7Ci0gICAgYXRvbWljX3NldCgmdGVzdF9zdG9wLCB0cnVl KTsKKyAgICBxZW11X2F0b21pY19zZXQoJnRlc3Rfc3RvcCwgdHJ1ZSk7CiAKICAgICBmb3IgKGkg PSAwOyBpIDwgbl90aHJlYWRzOyBpKyspIHsKICAgICAgICAgcWVtdV90aHJlYWRfam9pbigmdGhy ZWFkc1tpXSk7CmRpZmYgLS1naXQgYS90ZXN0cy9pb3RocmVhZC5jIGIvdGVzdHMvaW90aHJlYWQu YwppbmRleCBkM2EyZWU5YTAxLi42ZDg2ZDdjYTI0IDEwMDY0NAotLS0gYS90ZXN0cy9pb3RocmVh ZC5jCisrKyBiL3Rlc3RzL2lvdGhyZWFkLmMKQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIHZvaWQg KmlvdGhyZWFkX3J1bih2b2lkICpvcGFxdWUpCiAgICAgcWVtdV9jb25kX3NpZ25hbCgmaW90aHJl YWQtPmluaXRfZG9uZV9jb25kKTsKICAgICBxZW11X211dGV4X3VubG9jaygmaW90aHJlYWQtPmlu aXRfZG9uZV9sb2NrKTsKIAotICAgIHdoaWxlICghYXRvbWljX3JlYWQoJmlvdGhyZWFkLT5zdG9w cGluZykpIHsKKyAgICB3aGlsZSAoIXFlbXVfYXRvbWljX3JlYWQoJmlvdGhyZWFkLT5zdG9wcGlu ZykpIHsKICAgICAgICAgYWlvX3BvbGwoaW90aHJlYWQtPmN0eCwgdHJ1ZSk7CiAgICAgfQogCmRp ZmYgLS1naXQgYS90ZXN0cy9xaHQtYmVuY2guYyBiL3Rlc3RzL3FodC1iZW5jaC5jCmluZGV4IDM2 MmYwM2NiMDMuLmNmMjk5MGIzNTMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3FodC1iZW5jaC5jCisrKyBi L3Rlc3RzL3FodC1iZW5jaC5jCkBAIC0yMDksMTMgKzIwOSwxMyBAQCBzdGF0aWMgdm9pZCAqdGhy ZWFkX2Z1bmModm9pZCAqcCkKIAogICAgIHJjdV9yZWdpc3Rlcl90aHJlYWQoKTsKIAotICAgIGF0 b21pY19pbmMoJm5fcmVhZHlfdGhyZWFkcyk7Ci0gICAgd2hpbGUgKCFhdG9taWNfcmVhZCgmdGVz dF9zdGFydCkpIHsKKyAgICBxZW11X2F0b21pY19pbmMoJm5fcmVhZHlfdGhyZWFkcyk7CisgICAg d2hpbGUgKCFxZW11X2F0b21pY19yZWFkKCZ0ZXN0X3N0YXJ0KSkgewogICAgICAgICBjcHVfcmVs YXgoKTsKICAgICB9CiAKICAgICByY3VfcmVhZF9sb2NrKCk7Ci0gICAgd2hpbGUgKCFhdG9taWNf cmVhZCgmdGVzdF9zdG9wKSkgeworICAgIHdoaWxlICghcWVtdV9hdG9taWNfcmVhZCgmdGVzdF9z dG9wKSkgewogICAgICAgICBpbmZvLT5zZWVkID0geG9yc2hpZnQ2NHN0YXIoaW5mby0+c2VlZCk7 CiAgICAgICAgIGluZm8tPmZ1bmMoaW5mbyk7CiAgICAgfQpAQCAtNDIzLDEzICs0MjMsMTMgQEAg c3RhdGljIHZvaWQgcnVuX3Rlc3Qodm9pZCkKIHsKICAgICBpbnQgaTsKIAotICAgIHdoaWxlIChh dG9taWNfcmVhZCgmbl9yZWFkeV90aHJlYWRzKSAhPSBuX3J3X3RocmVhZHMgKyBuX3J6X3RocmVh ZHMpIHsKKyAgICB3aGlsZSAocWVtdV9hdG9taWNfcmVhZCgmbl9yZWFkeV90aHJlYWRzKSAhPSBu X3J3X3RocmVhZHMgKyBuX3J6X3RocmVhZHMpIHsKICAgICAgICAgY3B1X3JlbGF4KCk7CiAgICAg fQogCi0gICAgYXRvbWljX3NldCgmdGVzdF9zdGFydCwgdHJ1ZSk7CisgICAgcWVtdV9hdG9taWNf c2V0KCZ0ZXN0X3N0YXJ0LCB0cnVlKTsKICAgICBnX3VzbGVlcChkdXJhdGlvbiAqIEdfVVNFQ19Q RVJfU0VDKTsKLSAgICBhdG9taWNfc2V0KCZ0ZXN0X3N0b3AsIHRydWUpOworICAgIHFlbXVfYXRv bWljX3NldCgmdGVzdF9zdG9wLCB0cnVlKTsKIAogICAgIGZvciAoaSA9IDA7IGkgPCBuX3J3X3Ro cmVhZHM7IGkrKykgewogICAgICAgICBxZW11X3RocmVhZF9qb2luKCZyd190aHJlYWRzW2ldKTsK ZGlmZiAtLWdpdCBhL3Rlc3RzL3JjdXRvcnR1cmUuYyBiL3Rlc3RzL3JjdXRvcnR1cmUuYwppbmRl eCA3MzJmMDNhYmRhLi43ODE0ODE0MGQ3IDEwMDY0NAotLS0gYS90ZXN0cy9yY3V0b3J0dXJlLmMK KysrIGIvdGVzdHMvcmN1dG9ydHVyZS5jCkBAIC0xMjMsNyArMTIzLDcgQEAgc3RhdGljIHZvaWQg KnJjdV9yZWFkX3BlcmZfdGVzdCh2b2lkICphcmcpCiAgICAgcmN1X3JlZ2lzdGVyX3RocmVhZCgp OwogCiAgICAgKihzdHJ1Y3QgcmN1X3JlYWRlcl9kYXRhICoqKWFyZyA9ICZyY3VfcmVhZGVyOwot ICAgIGF0b21pY19pbmMoJm50aHJlYWRzcnVubmluZyk7CisgICAgcWVtdV9hdG9taWNfaW5jKCZu dGhyZWFkc3J1bm5pbmcpOwogICAgIHdoaWxlIChnb2ZsYWcgPT0gR09GTEFHX0lOSVQpIHsKICAg ICAgICAgZ191c2xlZXAoMTAwMCk7CiAgICAgfQpAQCAtMTQ5LDcgKzE0OSw3IEBAIHN0YXRpYyB2 b2lkICpyY3VfdXBkYXRlX3BlcmZfdGVzdCh2b2lkICphcmcpCiAgICAgcmN1X3JlZ2lzdGVyX3Ro cmVhZCgpOwogCiAgICAgKihzdHJ1Y3QgcmN1X3JlYWRlcl9kYXRhICoqKWFyZyA9ICZyY3VfcmVh ZGVyOwotICAgIGF0b21pY19pbmMoJm50aHJlYWRzcnVubmluZyk7CisgICAgcWVtdV9hdG9taWNf aW5jKCZudGhyZWFkc3J1bm5pbmcpOwogICAgIHdoaWxlIChnb2ZsYWcgPT0gR09GTEFHX0lOSVQp IHsKICAgICAgICAgZ191c2xlZXAoMTAwMCk7CiAgICAgfQpAQCAtMTcyLDcgKzE3Miw3IEBAIHN0 YXRpYyB2b2lkIHBlcmZ0ZXN0aW5pdCh2b2lkKQogCiBzdGF0aWMgdm9pZCBwZXJmdGVzdHJ1bihp bnQgbnRocmVhZHMsIGludCBkdXJhdGlvbiwgaW50IG5yZWFkZXJzLCBpbnQgbnVwZGF0ZXJzKQog ewotICAgIHdoaWxlIChhdG9taWNfcmVhZCgmbnRocmVhZHNydW5uaW5nKSA8IG50aHJlYWRzKSB7 CisgICAgd2hpbGUgKHFlbXVfYXRvbWljX3JlYWQoJm50aHJlYWRzcnVubmluZykgPCBudGhyZWFk cykgewogICAgICAgICBnX3VzbGVlcCgxMDAwKTsKICAgICB9CiAgICAgZ29mbGFnID0gR09GTEFH X1JVTjsKQEAgLTI1OSw4ICsyNTksOCBAQCBzdGF0aWMgdm9pZCAqcmN1X3JlYWRfc3RyZXNzX3Rl c3Qodm9pZCAqYXJnKQogICAgIH0KICAgICB3aGlsZSAoZ29mbGFnID09IEdPRkxBR19SVU4pIHsK ICAgICAgICAgcmN1X3JlYWRfbG9jaygpOwotICAgICAgICBwID0gYXRvbWljX3JjdV9yZWFkKCZy Y3Vfc3RyZXNzX2N1cnJlbnQpOwotICAgICAgICBpZiAoYXRvbWljX3JlYWQoJnAtPm1idGVzdCkg PT0gMCkgeworICAgICAgICBwID0gcWVtdV9hdG9taWNfcmN1X3JlYWQoJnJjdV9zdHJlc3NfY3Vy cmVudCk7CisgICAgICAgIGlmIChxZW11X2F0b21pY19yZWFkKCZwLT5tYnRlc3QpID09IDApIHsK ICAgICAgICAgICAgIG5fbWJlcnJvcisrOwogICAgICAgICB9CiAgICAgICAgIHJjdV9yZWFkX2xv Y2soKTsKQEAgLTI2OCw3ICsyNjgsNyBAQCBzdGF0aWMgdm9pZCAqcmN1X3JlYWRfc3RyZXNzX3Rl c3Qodm9pZCAqYXJnKQogICAgICAgICAgICAgZ2FyYmFnZSsrOwogICAgICAgICB9CiAgICAgICAg IHJjdV9yZWFkX3VubG9jaygpOwotICAgICAgICBwYyA9IGF0b21pY19yZWFkKCZwLT5hZ2UpOwor ICAgICAgICBwYyA9IHFlbXVfYXRvbWljX3JlYWQoJnAtPmFnZSk7CiAgICAgICAgIHJjdV9yZWFk X3VubG9jaygpOwogICAgICAgICBpZiAoKHBjID4gUkNVX1NUUkVTU19QSVBFX0xFTikgfHwgKHBj IDwgMCkpIHsKICAgICAgICAgICAgIHBjID0gUkNVX1NUUkVTU19QSVBFX0xFTjsKQEAgLTMwMSw3 ICszMDEsNyBAQCBzdGF0aWMgdm9pZCAqcmN1X3JlYWRfc3RyZXNzX3Rlc3Qodm9pZCAqYXJnKQog c3RhdGljIHZvaWQgKnJjdV91cGRhdGVfc3RyZXNzX3Rlc3Qodm9pZCAqYXJnKQogewogICAgIGlu dCBpLCByY3Vfc3RyZXNzX2lkeCA9IDA7Ci0gICAgc3RydWN0IHJjdV9zdHJlc3MgKmNwID0gYXRv bWljX3JlYWQoJnJjdV9zdHJlc3NfY3VycmVudCk7CisgICAgc3RydWN0IHJjdV9zdHJlc3MgKmNw ID0gcWVtdV9hdG9taWNfcmVhZCgmcmN1X3N0cmVzc19jdXJyZW50KTsKIAogICAgIHJjdV9yZWdp c3Rlcl90aHJlYWQoKTsKICAgICAqKHN0cnVjdCByY3VfcmVhZGVyX2RhdGEgKiopYXJnID0gJnJj dV9yZWFkZXI7CkBAIC0zMTksMTEgKzMxOSwxMSBAQCBzdGF0aWMgdm9pZCAqcmN1X3VwZGF0ZV9z dHJlc3NfdGVzdCh2b2lkICphcmcpCiAgICAgICAgIHAgPSAmcmN1X3N0cmVzc19hcnJheVtyY3Vf c3RyZXNzX2lkeF07CiAgICAgICAgIC8qIGNhdGNoaW5nIHVwIHdpdGggb3Vyc2VsdmVzIHdvdWxk IGJlIGEgYnVnICovCiAgICAgICAgIGFzc2VydChwICE9IGNwKTsKLSAgICAgICAgYXRvbWljX3Nl dCgmcC0+bWJ0ZXN0LCAwKTsKKyAgICAgICAgcWVtdV9hdG9taWNfc2V0KCZwLT5tYnRlc3QsIDAp OwogICAgICAgICBzbXBfbWIoKTsKLSAgICAgICAgYXRvbWljX3NldCgmcC0+YWdlLCAwKTsKLSAg ICAgICAgYXRvbWljX3NldCgmcC0+bWJ0ZXN0LCAxKTsKLSAgICAgICAgYXRvbWljX3JjdV9zZXQo JnJjdV9zdHJlc3NfY3VycmVudCwgcCk7CisgICAgICAgIHFlbXVfYXRvbWljX3NldCgmcC0+YWdl LCAwKTsKKyAgICAgICAgcWVtdV9hdG9taWNfc2V0KCZwLT5tYnRlc3QsIDEpOworICAgICAgICBx ZW11X2F0b21pY19yY3Vfc2V0KCZyY3Vfc3RyZXNzX2N1cnJlbnQsIHApOwogICAgICAgICBjcCA9 IHA7CiAgICAgICAgIC8qCiAgICAgICAgICAqIE5ldyBSQ1Ugc3RydWN0dXJlIGlzIG5vdyBsaXZl LCB1cGRhdGUgcGlwZSBjb3VudHMgb24gb2xkCkBAIC0zMzEsNyArMzMxLDcgQEAgc3RhdGljIHZv aWQgKnJjdV91cGRhdGVfc3RyZXNzX3Rlc3Qodm9pZCAqYXJnKQogICAgICAgICAgKi8KICAgICAg ICAgZm9yIChpID0gMDsgaSA8IFJDVV9TVFJFU1NfUElQRV9MRU47IGkrKykgewogICAgICAgICAg ICAgaWYgKGkgIT0gcmN1X3N0cmVzc19pZHgpIHsKLSAgICAgICAgICAgICAgICBhdG9taWNfc2V0 KCZyY3Vfc3RyZXNzX2FycmF5W2ldLmFnZSwKKyAgICAgICAgICAgICAgICBxZW11X2F0b21pY19z ZXQoJnJjdV9zdHJlc3NfYXJyYXlbaV0uYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg cmN1X3N0cmVzc19hcnJheVtpXS5hZ2UgKyAxKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpk aWZmIC0tZ2l0IGEvdGVzdHMvdGVzdC1haW8tbXVsdGl0aHJlYWQuYyBiL3Rlc3RzL3Rlc3QtYWlv LW11bHRpdGhyZWFkLmMKaW5kZXggZDMxNDRiZTdlMC4uZDg2NGNhMDdjZCAxMDA2NDQKLS0tIGEv dGVzdHMvdGVzdC1haW8tbXVsdGl0aHJlYWQuYworKysgYi90ZXN0cy90ZXN0LWFpby1tdWx0aXRo cmVhZC5jCkBAIC0xMTgsMTYgKzExOCwxNiBAQCBzdGF0aWMgYm9vbCBzY2hlZHVsZV9uZXh0KGlu dCBuKQogewogICAgIENvcm91dGluZSAqY287CiAKLSAgICBjbyA9IGF0b21pY194Y2hnKCZ0b19z Y2hlZHVsZVtuXSwgTlVMTCk7CisgICAgY28gPSBxZW11X2F0b21pY194Y2hnKCZ0b19zY2hlZHVs ZVtuXSwgTlVMTCk7CiAgICAgaWYgKCFjbykgewotICAgICAgICBhdG9taWNfaW5jKCZjb3VudF9y ZXRyeSk7CisgICAgICAgIHFlbXVfYXRvbWljX2luYygmY291bnRfcmV0cnkpOwogICAgICAgICBy ZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgaWYgKG4gPT0gaWQpIHsKLSAgICAgICAgYXRvbWlj X2luYygmY291bnRfaGVyZSk7CisgICAgICAgIHFlbXVfYXRvbWljX2luYygmY291bnRfaGVyZSk7 CiAgICAgfSBlbHNlIHsKLSAgICAgICAgYXRvbWljX2luYygmY291bnRfb3RoZXIpOworICAgICAg ICBxZW11X2F0b21pY19pbmMoJmNvdW50X290aGVyKTsKICAgICB9CiAKICAgICBhaW9fY29fc2No ZWR1bGUoY3R4W25dLCBjbyk7CkBAIC0xNDMsMTMgKzE0MywxMyBAQCBzdGF0aWMgY29yb3V0aW5l X2ZuIHZvaWQgdGVzdF9tdWx0aV9jb19zY2hlZHVsZV9lbnRyeSh2b2lkICpvcGFxdWUpCiB7CiAg ICAgZ19hc3NlcnQodG9fc2NoZWR1bGVbaWRdID09IE5VTEwpOwogCi0gICAgd2hpbGUgKCFhdG9t aWNfbWJfcmVhZCgmbm93X3N0b3BwaW5nKSkgeworICAgIHdoaWxlICghcWVtdV9hdG9taWNfbWJf cmVhZCgmbm93X3N0b3BwaW5nKSkgewogICAgICAgICBpbnQgbjsKIAogICAgICAgICBuID0gZ190 ZXN0X3JhbmRfaW50X3JhbmdlKDAsIE5VTV9DT05URVhUUyk7CiAgICAgICAgIHNjaGVkdWxlX25l eHQobik7CiAKLSAgICAgICAgYXRvbWljX21iX3NldCgmdG9fc2NoZWR1bGVbaWRdLCBxZW11X2Nv cm91dGluZV9zZWxmKCkpOworICAgICAgICBxZW11X2F0b21pY19tYl9zZXQoJnRvX3NjaGVkdWxl W2lkXSwgcWVtdV9jb3JvdXRpbmVfc2VsZigpKTsKICAgICAgICAgcWVtdV9jb3JvdXRpbmVfeWll bGQoKTsKICAgICAgICAgZ19hc3NlcnQodG9fc2NoZWR1bGVbaWRdID09IE5VTEwpOwogICAgIH0K QEAgLTE3MSw3ICsxNzEsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X211bHRpX2NvX3NjaGVkdWxlKGlu dCBzZWNvbmRzKQogCiAgICAgZ191c2xlZXAoc2Vjb25kcyAqIDEwMDAwMDApOwogCi0gICAgYXRv bWljX21iX3NldCgmbm93X3N0b3BwaW5nLCB0cnVlKTsKKyAgICBxZW11X2F0b21pY19tYl9zZXQo Jm5vd19zdG9wcGluZywgdHJ1ZSk7CiAgICAgZm9yIChpID0gMDsgaSA8IE5VTV9DT05URVhUUzsg aSsrKSB7CiAgICAgICAgIGN0eF9ydW4oaSwgZmluaXNoX2NiLCBOVUxMKTsKICAgICAgICAgdG9f c2NoZWR1bGVbaV0gPSBOVUxMOwpAQCAtMjAyLDcgKzIwMiw3IEBAIHN0YXRpYyBDb011dGV4IGNv bXV0ZXg7CiAKIHN0YXRpYyB2b2lkIGNvcm91dGluZV9mbiB0ZXN0X211bHRpX2NvX211dGV4X2Vu dHJ5KHZvaWQgKm9wYXF1ZSkKIHsKLSAgICB3aGlsZSAoIWF0b21pY19tYl9yZWFkKCZub3dfc3Rv cHBpbmcpKSB7CisgICAgd2hpbGUgKCFxZW11X2F0b21pY19tYl9yZWFkKCZub3dfc3RvcHBpbmcp KSB7CiAgICAgICAgIHFlbXVfY29fbXV0ZXhfbG9jaygmY29tdXRleCk7CiAgICAgICAgIGNvdW50 ZXIrKzsKICAgICAgICAgcWVtdV9jb19tdXRleF91bmxvY2soJmNvbXV0ZXgpOwpAQCAtMjEyLDkg KzIxMiw5IEBAIHN0YXRpYyB2b2lkIGNvcm91dGluZV9mbiB0ZXN0X211bHRpX2NvX211dGV4X2Vu dHJ5KHZvaWQgKm9wYXF1ZSkKICAgICAgICAgICogZXhpdHMgYmVmb3JlIHRoZSBjb3JvdXRpbmUg aXMgd29rZW4gdXAsIGNhdXNpbmcgYSBzcHVyaW91cwogICAgICAgICAgKiBhc3NlcnRpb24gZmFp bHVyZS4KICAgICAgICAgICovCi0gICAgICAgIGF0b21pY19pbmMoJmF0b21pY19jb3VudGVyKTsK KyAgICAgICAgcWVtdV9hdG9taWNfaW5jKCZhdG9taWNfY291bnRlcik7CiAgICAgfQotICAgIGF0 b21pY19kZWMoJnJ1bm5pbmcpOworICAgIHFlbXVfYXRvbWljX2RlYygmcnVubmluZyk7CiB9CiAK IHN0YXRpYyB2b2lkIHRlc3RfbXVsdGlfY29fbXV0ZXgoaW50IHRocmVhZHMsIGludCBzZWNvbmRz KQpAQCAtMjM2LDcgKzIzNiw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfbXVsdGlfY29fbXV0ZXgoaW50 IHRocmVhZHMsIGludCBzZWNvbmRzKQogCiAgICAgZ191c2xlZXAoc2Vjb25kcyAqIDEwMDAwMDAp OwogCi0gICAgYXRvbWljX21iX3NldCgmbm93X3N0b3BwaW5nLCB0cnVlKTsKKyAgICBxZW11X2F0 b21pY19tYl9zZXQoJm5vd19zdG9wcGluZywgdHJ1ZSk7CiAgICAgd2hpbGUgKHJ1bm5pbmcgPiAw KSB7CiAgICAgICAgIGdfdXNsZWVwKDEwMDAwMCk7CiAgICAgfQpAQCAtMjk2LDkgKzI5Niw5IEBA IHN0YXRpYyB2b2lkIG1jc19tdXRleF9sb2NrKHZvaWQpCiAKICAgICBub2Rlc1tpZF0ubmV4dCA9 IC0xOwogICAgIG5vZGVzW2lkXS5sb2NrZWQgPSAxOwotICAgIHByZXYgPSBhdG9taWNfeGNoZygm bXV0ZXhfaGVhZCwgaWQpOworICAgIHByZXYgPSBxZW11X2F0b21pY194Y2hnKCZtdXRleF9oZWFk LCBpZCk7CiAgICAgaWYgKHByZXYgIT0gLTEpIHsKLSAgICAgICAgYXRvbWljX3NldCgmbm9kZXNb cHJldl0ubmV4dCwgaWQpOworICAgICAgICBxZW11X2F0b21pY19zZXQoJm5vZGVzW3ByZXZdLm5l eHQsIGlkKTsKICAgICAgICAgcWVtdV9mdXRleF93YWl0KCZub2Rlc1tpZF0ubG9ja2VkLCAxKTsK ICAgICB9CiB9CkBAIC0zMDYsMTMgKzMwNiwxMyBAQCBzdGF0aWMgdm9pZCBtY3NfbXV0ZXhfbG9j ayh2b2lkKQogc3RhdGljIHZvaWQgbWNzX211dGV4X3VubG9jayh2b2lkKQogewogICAgIGludCBu ZXh0OwotICAgIGlmIChhdG9taWNfcmVhZCgmbm9kZXNbaWRdLm5leHQpID09IC0xKSB7Ci0gICAg ICAgIGlmIChhdG9taWNfcmVhZCgmbXV0ZXhfaGVhZCkgPT0gaWQgJiYKLSAgICAgICAgICAgIGF0 b21pY19jbXB4Y2hnKCZtdXRleF9oZWFkLCBpZCwgLTEpID09IGlkKSB7CisgICAgaWYgKHFlbXVf YXRvbWljX3JlYWQoJm5vZGVzW2lkXS5uZXh0KSA9PSAtMSkgeworICAgICAgICBpZiAocWVtdV9h dG9taWNfcmVhZCgmbXV0ZXhfaGVhZCkgPT0gaWQgJiYKKyAgICAgICAgICAgIHFlbXVfYXRvbWlj X2NtcHhjaGcoJm11dGV4X2hlYWQsIGlkLCAtMSkgPT0gaWQpIHsKICAgICAgICAgICAgIC8qIExh c3QgaXRlbSBpbiB0aGUgbGlzdCwgZXhpdC4gICovCiAgICAgICAgICAgICByZXR1cm47CiAgICAg ICAgIH0KLSAgICAgICAgd2hpbGUgKGF0b21pY19yZWFkKCZub2Rlc1tpZF0ubmV4dCkgPT0gLTEp IHsKKyAgICAgICAgd2hpbGUgKHFlbXVfYXRvbWljX3JlYWQoJm5vZGVzW2lkXS5uZXh0KSA9PSAt MSkgewogICAgICAgICAgICAgLyogbWNzX211dGV4X2xvY2sgZGlkIHRoZSB4Y2hnLCBidXQgaGFz IG5vdCB1cGRhdGVkCiAgICAgICAgICAgICAgKiBub2Rlc1twcmV2XS5uZXh0IHlldC4KICAgICAg ICAgICAgICAqLwpAQCAtMzIwLDIwICszMjAsMjAgQEAgc3RhdGljIHZvaWQgbWNzX211dGV4X3Vu bG9jayh2b2lkKQogICAgIH0KIAogICAgIC8qIFdha2UgdXAgdGhlIG5leHQgaW4gbGluZS4gICov Ci0gICAgbmV4dCA9IGF0b21pY19yZWFkKCZub2Rlc1tpZF0ubmV4dCk7CisgICAgbmV4dCA9IHFl bXVfYXRvbWljX3JlYWQoJm5vZGVzW2lkXS5uZXh0KTsKICAgICBub2Rlc1tuZXh0XS5sb2NrZWQg PSAwOwogICAgIHFlbXVfZnV0ZXhfd2FrZSgmbm9kZXNbbmV4dF0ubG9ja2VkLCAxKTsKIH0KIAog c3RhdGljIHZvaWQgdGVzdF9tdWx0aV9mYWlyX211dGV4X2VudHJ5KHZvaWQgKm9wYXF1ZSkKIHsK LSAgICB3aGlsZSAoIWF0b21pY19tYl9yZWFkKCZub3dfc3RvcHBpbmcpKSB7CisgICAgd2hpbGUg KCFxZW11X2F0b21pY19tYl9yZWFkKCZub3dfc3RvcHBpbmcpKSB7CiAgICAgICAgIG1jc19tdXRl eF9sb2NrKCk7CiAgICAgICAgIGNvdW50ZXIrKzsKICAgICAgICAgbWNzX211dGV4X3VubG9jaygp OwotICAgICAgICBhdG9taWNfaW5jKCZhdG9taWNfY291bnRlcik7CisgICAgICAgIHFlbXVfYXRv bWljX2luYygmYXRvbWljX2NvdW50ZXIpOwogICAgIH0KLSAgICBhdG9taWNfZGVjKCZydW5uaW5n KTsKKyAgICBxZW11X2F0b21pY19kZWMoJnJ1bm5pbmcpOwogfQogCiBzdGF0aWMgdm9pZCB0ZXN0 X211bHRpX2ZhaXJfbXV0ZXgoaW50IHRocmVhZHMsIGludCBzZWNvbmRzKQpAQCAtMzU1LDcgKzM1 NSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfbXVsdGlfZmFpcl9tdXRleChpbnQgdGhyZWFkcywgaW50 IHNlY29uZHMpCiAKICAgICBnX3VzbGVlcChzZWNvbmRzICogMTAwMDAwMCk7CiAKLSAgICBhdG9t aWNfbWJfc2V0KCZub3dfc3RvcHBpbmcsIHRydWUpOworICAgIHFlbXVfYXRvbWljX21iX3NldCgm bm93X3N0b3BwaW5nLCB0cnVlKTsKICAgICB3aGlsZSAocnVubmluZyA+IDApIHsKICAgICAgICAg Z191c2xlZXAoMTAwMDAwKTsKICAgICB9CkBAIC0zODMsMTMgKzM4MywxMyBAQCBzdGF0aWMgUWVt dU11dGV4IG11dGV4OwogCiBzdGF0aWMgdm9pZCB0ZXN0X211bHRpX211dGV4X2VudHJ5KHZvaWQg Km9wYXF1ZSkKIHsKLSAgICB3aGlsZSAoIWF0b21pY19tYl9yZWFkKCZub3dfc3RvcHBpbmcpKSB7 CisgICAgd2hpbGUgKCFxZW11X2F0b21pY19tYl9yZWFkKCZub3dfc3RvcHBpbmcpKSB7CiAgICAg ICAgIHFlbXVfbXV0ZXhfbG9jaygmbXV0ZXgpOwogICAgICAgICBjb3VudGVyKys7CiAgICAgICAg IHFlbXVfbXV0ZXhfdW5sb2NrKCZtdXRleCk7Ci0gICAgICAgIGF0b21pY19pbmMoJmF0b21pY19j b3VudGVyKTsKKyAgICAgICAgcWVtdV9hdG9taWNfaW5jKCZhdG9taWNfY291bnRlcik7CiAgICAg fQotICAgIGF0b21pY19kZWMoJnJ1bm5pbmcpOworICAgIHFlbXVfYXRvbWljX2RlYygmcnVubmlu Zyk7CiB9CiAKIHN0YXRpYyB2b2lkIHRlc3RfbXVsdGlfbXV0ZXgoaW50IHRocmVhZHMsIGludCBz ZWNvbmRzKQpAQCAtNDExLDcgKzQxMSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfbXVsdGlfbXV0ZXgo aW50IHRocmVhZHMsIGludCBzZWNvbmRzKQogCiAgICAgZ191c2xlZXAoc2Vjb25kcyAqIDEwMDAw MDApOwogCi0gICAgYXRvbWljX21iX3NldCgmbm93X3N0b3BwaW5nLCB0cnVlKTsKKyAgICBxZW11 X2F0b21pY19tYl9zZXQoJm5vd19zdG9wcGluZywgdHJ1ZSk7CiAgICAgd2hpbGUgKHJ1bm5pbmcg PiAwKSB7CiAgICAgICAgIGdfdXNsZWVwKDEwMDAwMCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvdGVz dHMvdGVzdC1sb2dnaW5nLmMgYi90ZXN0cy90ZXN0LWxvZ2dpbmcuYwppbmRleCA4YjE1MjJjZmVk Li4zMmQ0YTI3MGFjIDEwMDY0NAotLS0gYS90ZXN0cy90ZXN0LWxvZ2dpbmcuYworKysgYi90ZXN0 cy90ZXN0LWxvZ2dpbmcuYwpAQCAtMTMzLDcgKzEzMyw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfbG9n ZmlsZV93cml0ZShnY29uc3Rwb2ludGVyIGRhdGEpCiAgICAgICovCiAgICAgcWVtdV9zZXRfbG9n X2ZpbGVuYW1lKGZpbGVfcGF0aCwgJmVycm9yX2Fib3J0KTsKICAgICByY3VfcmVhZF9sb2NrKCk7 Ci0gICAgbG9nZmlsZSA9IGF0b21pY19yY3VfcmVhZCgmcWVtdV9sb2dmaWxlKTsKKyAgICBsb2dm aWxlID0gcWVtdV9hdG9taWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7CiAgICAgb3JpZ19mZCA9 IGxvZ2ZpbGUtPmZkOwogICAgIGdfYXNzZXJ0KGxvZ2ZpbGUgJiYgbG9nZmlsZS0+ZmQpOwogICAg IGZwcmludGYobG9nZmlsZS0+ZmQsICIlcyAxc3Qgd3JpdGUgdG8gZmlsZVxuIiwgX19mdW5jX18p OwpAQCAtMTQxLDcgKzE0MSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfbG9nZmlsZV93cml0ZShnY29u c3Rwb2ludGVyIGRhdGEpCiAKICAgICAvKiBDaGFuZ2UgdGhlIGxvZ2ZpbGUgYW5kIGVuc3VyZSB0 aGF0IHRoZSBoYW5kbGUgaXMgc3RpbGwgdmFsaWQuICovCiAgICAgcWVtdV9zZXRfbG9nX2ZpbGVu YW1lKGZpbGVfcGF0aDEsICZlcnJvcl9hYm9ydCk7Ci0gICAgbG9nZmlsZTIgPSBhdG9taWNfcmN1 X3JlYWQoJnFlbXVfbG9nZmlsZSk7CisgICAgbG9nZmlsZTIgPSBxZW11X2F0b21pY19yY3VfcmVh ZCgmcWVtdV9sb2dmaWxlKTsKICAgICBnX2Fzc2VydChsb2dmaWxlLT5mZCA9PSBvcmlnX2ZkKTsK ICAgICBnX2Fzc2VydChsb2dmaWxlMi0+ZmQgIT0gbG9nZmlsZS0+ZmQpOwogICAgIGZwcmludGYo bG9nZmlsZS0+ZmQsICIlcyAybmQgd3JpdGUgdG8gZmlsZVxuIiwgX19mdW5jX18pOwpkaWZmIC0t Z2l0IGEvdGVzdHMvdGVzdC1yY3UtbGlzdC5jIGIvdGVzdHMvdGVzdC1yY3UtbGlzdC5jCmluZGV4 IDkyYmU1MWVjNTAuLmQwMTRlM2YyMWIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3Rlc3QtcmN1LWxpc3Qu YworKysgYi90ZXN0cy90ZXN0LXJjdS1saXN0LmMKQEAgLTEwNiw3ICsxMDYsNyBAQCBzdGF0aWMg dm9pZCByZWNsYWltX2xpc3RfZWwoc3RydWN0IHJjdV9oZWFkICpwcmN1KQogICAgIHN0cnVjdCBs aXN0X2VsZW1lbnQgKmVsID0gY29udGFpbmVyX29mKHByY3UsIHN0cnVjdCBsaXN0X2VsZW1lbnQs IHJjdSk7CiAgICAgZ19mcmVlKGVsKTsKICAgICAvKiBBY2Nlc3NlZCBvbmx5IGZyb20gY2FsbF9y Y3UgdGhyZWFkLiAgKi8KLSAgICBhdG9taWNfc2V0X2k2NCgmbl9yZWNsYWltcywgbl9yZWNsYWlt cyArIDEpOworICAgIHFlbXVfYXRvbWljX3NldF9pNjQoJm5fcmVjbGFpbXMsIG5fcmVjbGFpbXMg KyAxKTsKIH0KIAogI2lmIFRFU1RfTElTVF9UWVBFID09IDEKQEAgLTE3MiwxNiArMTcyLDE2IEBA IHN0YXRpYyB2b2lkICpyY3VfcV9yZWFkZXIodm9pZCAqYXJnKQogICAgIHJjdV9yZWdpc3Rlcl90 aHJlYWQoKTsKIAogICAgICooc3RydWN0IHJjdV9yZWFkZXJfZGF0YSAqKilhcmcgPSAmcmN1X3Jl YWRlcjsKLSAgICBhdG9taWNfaW5jKCZudGhyZWFkc3J1bm5pbmcpOwotICAgIHdoaWxlIChhdG9t aWNfcmVhZCgmZ29mbGFnKSA9PSBHT0ZMQUdfSU5JVCkgeworICAgIHFlbXVfYXRvbWljX2luYygm bnRocmVhZHNydW5uaW5nKTsKKyAgICB3aGlsZSAocWVtdV9hdG9taWNfcmVhZCgmZ29mbGFnKSA9 PSBHT0ZMQUdfSU5JVCkgewogICAgICAgICBnX3VzbGVlcCgxMDAwKTsKICAgICB9CiAKLSAgICB3 aGlsZSAoYXRvbWljX3JlYWQoJmdvZmxhZykgPT0gR09GTEFHX1JVTikgeworICAgIHdoaWxlIChx ZW11X2F0b21pY19yZWFkKCZnb2ZsYWcpID09IEdPRkxBR19SVU4pIHsKICAgICAgICAgcmN1X3Jl YWRfbG9jaygpOwogICAgICAgICBURVNUX0xJU1RfRk9SRUFDSF9SQ1UoZWwsICZRX2xpc3RfaGVh ZCwgZW50cnkpIHsKICAgICAgICAgICAgIG5fcmVhZHNfbG9jYWwrKzsKLSAgICAgICAgICAgIGlm IChhdG9taWNfcmVhZCgmZ29mbGFnKSA9PSBHT0ZMQUdfU1RPUCkgeworICAgICAgICAgICAgaWYg KHFlbXVfYXRvbWljX3JlYWQoJmdvZmxhZykgPT0gR09GTEFHX1NUT1ApIHsKICAgICAgICAgICAg ICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjA3LDEyICsyMDcsMTIg QEAgc3RhdGljIHZvaWQgKnJjdV9xX3VwZGF0ZXIodm9pZCAqYXJnKQogICAgIHN0cnVjdCBsaXN0 X2VsZW1lbnQgKmVsLCAqcHJldl9lbDsKIAogICAgICooc3RydWN0IHJjdV9yZWFkZXJfZGF0YSAq KilhcmcgPSAmcmN1X3JlYWRlcjsKLSAgICBhdG9taWNfaW5jKCZudGhyZWFkc3J1bm5pbmcpOwot ICAgIHdoaWxlIChhdG9taWNfcmVhZCgmZ29mbGFnKSA9PSBHT0ZMQUdfSU5JVCkgeworICAgIHFl bXVfYXRvbWljX2luYygmbnRocmVhZHNydW5uaW5nKTsKKyAgICB3aGlsZSAocWVtdV9hdG9taWNf cmVhZCgmZ29mbGFnKSA9PSBHT0ZMQUdfSU5JVCkgewogICAgICAgICBnX3VzbGVlcCgxMDAwKTsK ICAgICB9CiAKLSAgICB3aGlsZSAoYXRvbWljX3JlYWQoJmdvZmxhZykgPT0gR09GTEFHX1JVTikg eworICAgIHdoaWxlIChxZW11X2F0b21pY19yZWFkKCZnb2ZsYWcpID09IEdPRkxBR19SVU4pIHsK ICAgICAgICAgdGFyZ2V0X2VsID0gc2VsZWN0X3JhbmRvbV9lbChSQ1VfUV9MRU4pOwogICAgICAg ICBqID0gMDsKICAgICAgICAgLyogRk9SRUFDSF9SQ1UgY291bGQgd29yayBoZXJlIGJ1dCBsZXQn cyB1c2UgYm90aCBtYWNyb3MgKi8KQEAgLTIyNiw3ICsyMjYsNyBAQCBzdGF0aWMgdm9pZCAqcmN1 X3FfdXBkYXRlcih2b2lkICphcmcpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg ICB9CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGF0b21pY19yZWFkKCZnb2ZsYWcpID09IEdPRkxB R19TVE9QKSB7CisgICAgICAgIGlmIChxZW11X2F0b21pY19yZWFkKCZnb2ZsYWcpID09IEdPRkxB R19TVE9QKSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICB0YXJnZXRf ZWwgPSBzZWxlY3RfcmFuZG9tX2VsKFJDVV9RX0xFTik7CkBAIC0yNDgsNyArMjQ4LDcgQEAgc3Rh dGljIHZvaWQgKnJjdV9xX3VwZGF0ZXIodm9pZCAqYXJnKQogICAgIHFlbXVfbXV0ZXhfbG9jaygm Y291bnRzX211dGV4KTsKICAgICBuX25vZGVzICs9IG5fbm9kZXNfbG9jYWw7CiAgICAgbl91cGRh dGVzICs9IG5fdXBkYXRlc19sb2NhbDsKLSAgICBhdG9taWNfc2V0X2k2NCgmbl9ub2Rlc19yZW1v dmVkLCBuX25vZGVzX3JlbW92ZWQgKyBuX3JlbW92ZWRfbG9jYWwpOworICAgIHFlbXVfYXRvbWlj X3NldF9pNjQoJm5fbm9kZXNfcmVtb3ZlZCwgbl9ub2Rlc19yZW1vdmVkICsgbl9yZW1vdmVkX2xv Y2FsKTsKICAgICBxZW11X211dGV4X3VubG9jaygmY291bnRzX211dGV4KTsKICAgICByZXR1cm4g TlVMTDsKIH0KQEAgLTI3MSwxMyArMjcxLDEzIEBAIHN0YXRpYyB2b2lkIHJjdV9xdGVzdF9pbml0 KHZvaWQpCiBzdGF0aWMgdm9pZCByY3VfcXRlc3RfcnVuKGludCBkdXJhdGlvbiwgaW50IG5yZWFk ZXJzKQogewogICAgIGludCBudGhyZWFkcyA9IG5yZWFkZXJzICsgMTsKLSAgICB3aGlsZSAoYXRv bWljX3JlYWQoJm50aHJlYWRzcnVubmluZykgPCBudGhyZWFkcykgeworICAgIHdoaWxlIChxZW11 X2F0b21pY19yZWFkKCZudGhyZWFkc3J1bm5pbmcpIDwgbnRocmVhZHMpIHsKICAgICAgICAgZ191 c2xlZXAoMTAwMCk7CiAgICAgfQogCi0gICAgYXRvbWljX3NldCgmZ29mbGFnLCBHT0ZMQUdfUlVO KTsKKyAgICBxZW11X2F0b21pY19zZXQoJmdvZmxhZywgR09GTEFHX1JVTik7CiAgICAgc2xlZXAo ZHVyYXRpb24pOwotICAgIGF0b21pY19zZXQoJmdvZmxhZywgR09GTEFHX1NUT1ApOworICAgIHFl bXVfYXRvbWljX3NldCgmZ29mbGFnLCBHT0ZMQUdfU1RPUCk7CiAgICAgd2FpdF9hbGxfdGhyZWFk cygpOwogfQogCkBAIC0zMDIsMjEgKzMwMiwyMyBAQCBzdGF0aWMgdm9pZCByY3VfcXRlc3QoY29u c3QgY2hhciAqdGVzdCwgaW50IGR1cmF0aW9uLCBpbnQgbnJlYWRlcnMpCiAgICAgICAgIG5fcmVt b3ZlZF9sb2NhbCsrOwogICAgIH0KICAgICBxZW11X211dGV4X2xvY2soJmNvdW50c19tdXRleCk7 Ci0gICAgYXRvbWljX3NldF9pNjQoJm5fbm9kZXNfcmVtb3ZlZCwgbl9ub2Rlc19yZW1vdmVkICsg bl9yZW1vdmVkX2xvY2FsKTsKKyAgICBxZW11X2F0b21pY19zZXRfaTY0KCZuX25vZGVzX3JlbW92 ZWQsIG5fbm9kZXNfcmVtb3ZlZCArIG5fcmVtb3ZlZF9sb2NhbCk7CiAgICAgcWVtdV9tdXRleF91 bmxvY2soJmNvdW50c19tdXRleCk7CiAgICAgc3luY2hyb25pemVfcmN1KCk7Ci0gICAgd2hpbGUg KGF0b21pY19yZWFkX2k2NCgmbl9ub2Rlc19yZW1vdmVkKSA+IGF0b21pY19yZWFkX2k2NCgmbl9y ZWNsYWltcykpIHsKKyAgICB3aGlsZSAocWVtdV9hdG9taWNfcmVhZF9pNjQoJm5fbm9kZXNfcmVt b3ZlZCkgPgorICAgICAgICAgICBxZW11X2F0b21pY19yZWFkX2k2NCgmbl9yZWNsYWltcykpIHsK ICAgICAgICAgZ191c2xlZXAoMTAwKTsKICAgICAgICAgc3luY2hyb25pemVfcmN1KCk7CiAgICAg fQogICAgIGlmIChnX3Rlc3RfaW5fY2hhcmdlKSB7Ci0gICAgICAgIGdfYXNzZXJ0X2NtcGludChh dG9taWNfcmVhZF9pNjQoJm5fbm9kZXNfcmVtb3ZlZCksID09LAotICAgICAgICAgICAgICAgICAg ICAgICAgYXRvbWljX3JlYWRfaTY0KCZuX3JlY2xhaW1zKSk7CisgICAgICAgIGdfYXNzZXJ0X2Nt cGludChxZW11X2F0b21pY19yZWFkX2k2NCgmbl9ub2Rlc19yZW1vdmVkKSwgPT0sCisgICAgICAg ICAgICAgICAgICAgICAgICBxZW11X2F0b21pY19yZWFkX2k2NCgmbl9yZWNsYWltcykpOwogICAg IH0gZWxzZSB7CiAgICAgICAgIHByaW50ZigiJXM6ICVkIHJlYWRlcnM7IDEgdXBkYXRlcjsgbm9k ZXMgcmVhZDogIiAgXAogICAgICAgICAgICAgICAgIiVsbGQsIG5vZGVzIHJlbW92ZWQ6ICUiUFJJ aTY0Ijsgbm9kZXMgcmVjbGFpbWVkOiAlIlBSSWk2NCJcbiIsCiAgICAgICAgICAgICAgICB0ZXN0 LCBudGhyZWFkc3J1bm5pbmcgLSAxLCBuX3JlYWRzLAotICAgICAgICAgICAgICAgYXRvbWljX3Jl YWRfaTY0KCZuX25vZGVzX3JlbW92ZWQpLCBhdG9taWNfcmVhZF9pNjQoJm5fcmVjbGFpbXMpKTsK KyAgICAgICAgICAgICAgIHFlbXVfYXRvbWljX3JlYWRfaTY0KCZuX25vZGVzX3JlbW92ZWQpLAor ICAgICAgICAgICAgICAgcWVtdV9hdG9taWNfcmVhZF9pNjQoJm5fcmVjbGFpbXMpKTsKICAgICAg ICAgZXhpdCgwKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS90ZXN0cy90ZXN0LXRocmVhZC1wb29s LmMgYi90ZXN0cy90ZXN0LXRocmVhZC1wb29sLmMKaW5kZXggMGI2NzU5MjNmNi4uMGU1M2U4Njdk OSAxMDA2NDQKLS0tIGEvdGVzdHMvdGVzdC10aHJlYWQtcG9vbC5jCisrKyBiL3Rlc3RzL3Rlc3Qt dGhyZWFkLXBvb2wuYwpAQCAtMjEsMTUgKzIxLDE1IEBAIHR5cGVkZWYgc3RydWN0IHsKIHN0YXRp YyBpbnQgd29ya2VyX2NiKHZvaWQgKm9wYXF1ZSkKIHsKICAgICBXb3JrZXJUZXN0RGF0YSAqZGF0 YSA9IG9wYXF1ZTsKLSAgICByZXR1cm4gYXRvbWljX2ZldGNoX2luYygmZGF0YS0+bik7CisgICAg cmV0dXJuIHFlbXVfYXRvbWljX2ZldGNoX2luYygmZGF0YS0+bik7CiB9CiAKIHN0YXRpYyBpbnQg bG9uZ19jYih2b2lkICpvcGFxdWUpCiB7CiAgICAgV29ya2VyVGVzdERhdGEgKmRhdGEgPSBvcGFx dWU7Ci0gICAgaWYgKGF0b21pY19jbXB4Y2hnKCZkYXRhLT5uLCAwLCAxKSA9PSAwKSB7CisgICAg aWYgKHFlbXVfYXRvbWljX2NtcHhjaGcoJmRhdGEtPm4sIDAsIDEpID09IDApIHsKICAgICAgICAg Z191c2xlZXAoMjAwMDAwMCk7Ci0gICAgICAgIGF0b21pY19vcigmZGF0YS0+biwgMik7CisgICAg ICAgIHFlbXVfYXRvbWljX29yKCZkYXRhLT5uLCAyKTsKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9 CkBAIC0xNzIsNyArMTcyLDcgQEAgc3RhdGljIHZvaWQgZG9fdGVzdF9jYW5jZWwoYm9vbCBzeW5j KQogICAgIC8qIENhbmNlbCB0aGUgam9icyB0aGF0IGhhdmVuJ3QgYmVlbiBzdGFydGVkIHlldC4g ICovCiAgICAgbnVtX2NhbmNlbGVkID0gMDsKICAgICBmb3IgKGkgPSAwOyBpIDwgMTAwOyBpKysp IHsKLSAgICAgICAgaWYgKGF0b21pY19jbXB4Y2hnKCZkYXRhW2ldLm4sIDAsIDQpID09IDApIHsK KyAgICAgICAgaWYgKHFlbXVfYXRvbWljX2NtcHhjaGcoJmRhdGFbaV0ubiwgMCwgNCkgPT0gMCkg ewogICAgICAgICAgICAgZGF0YVtpXS5yZXQgPSAtRUNBTkNFTEVEOwogICAgICAgICAgICAgaWYg KHN5bmMpIHsKICAgICAgICAgICAgICAgICBiZHJ2X2Fpb19jYW5jZWwoZGF0YVtpXS5haW9jYik7 CkBAIC0xODYsNyArMTg2LDcgQEAgc3RhdGljIHZvaWQgZG9fdGVzdF9jYW5jZWwoYm9vbCBzeW5j KQogICAgIGdfYXNzZXJ0X2NtcGludChudW1fY2FuY2VsZWQsIDwsIDEwMCk7CiAKICAgICBmb3Ig KGkgPSAwOyBpIDwgMTAwOyBpKyspIHsKLSAgICAgICAgaWYgKGRhdGFbaV0uYWlvY2IgJiYgYXRv bWljX3JlYWQoJmRhdGFbaV0ubikgPCA0KSB7CisgICAgICAgIGlmIChkYXRhW2ldLmFpb2NiICYm IHFlbXVfYXRvbWljX3JlYWQoJmRhdGFbaV0ubikgPCA0KSB7CiAgICAgICAgICAgICBpZiAoc3lu YykgewogICAgICAgICAgICAgICAgIC8qIENhbmNlbGluZyB0aGUgb3RoZXJzIHdpbGwgYmUgYSBi bG9ja2luZyBvcGVyYXRpb24uICAqLwogICAgICAgICAgICAgICAgIGJkcnZfYWlvX2NhbmNlbChk YXRhW2ldLmFpb2NiKTsKZGlmZiAtLWdpdCBhL3V0aWwvYWlvLXBvc2l4LmMgYi91dGlsL2Fpby1w b3NpeC5jCmluZGV4IGY3ZjEzZWJmYzIuLjc3N2VhZTRkMWQgMTAwNjQ0Ci0tLSBhL3V0aWwvYWlv LXBvc2l4LmMKKysrIGIvdXRpbC9haW8tcG9zaXguYwpAQCAtMjcsNyArMjcsNyBAQAogCiBib29s IGFpb19wb2xsX2Rpc2FibGVkKEFpb0NvbnRleHQgKmN0eCkKIHsKLSAgICByZXR1cm4gYXRvbWlj X3JlYWQoJmN0eC0+cG9sbF9kaXNhYmxlX2NudCk7CisgICAgcmV0dXJuIHFlbXVfYXRvbWljX3Jl YWQoJmN0eC0+cG9sbF9kaXNhYmxlX2NudCk7CiB9CiAKIHZvaWQgYWlvX2FkZF9yZWFkeV9oYW5k bGVyKEFpb0hhbmRsZXJMaXN0ICpyZWFkeV9saXN0LApAQCAtMTQ4LDggKzE0OCw4IEBAIHZvaWQg YWlvX3NldF9mZF9oYW5kbGVyKEFpb0NvbnRleHQgKmN0eCwKICAgICAgKiBDaGFuZ2luZyBoYW5k bGVycyBpcyBhIHJhcmUgZXZlbnQsIGFuZCBhIGxpdHRsZSB3YXN0ZWQgcG9sbGluZyB1bnRpbAog ICAgICAqIHRoZSBhaW9fbm90aWZ5IGJlbG93IGlzIG5vdCBhbiBpc3N1ZS4KICAgICAgKi8KLSAg ICBhdG9taWNfc2V0KCZjdHgtPnBvbGxfZGlzYWJsZV9jbnQsCi0gICAgICAgICAgICAgICBhdG9t aWNfcmVhZCgmY3R4LT5wb2xsX2Rpc2FibGVfY250KSArIHBvbGxfZGlzYWJsZV9jaGFuZ2UpOwor ICAgIHFlbXVfYXRvbWljX3NldCgmY3R4LT5wb2xsX2Rpc2FibGVfY250LAorICAgICAgICAgICAg ICAgcWVtdV9hdG9taWNfcmVhZCgmY3R4LT5wb2xsX2Rpc2FibGVfY250KSArIHBvbGxfZGlzYWJs ZV9jaGFuZ2UpOwogCiAgICAgY3R4LT5mZG1vbl9vcHMtPnVwZGF0ZShjdHgsIG5vZGUsIG5ld19u b2RlKTsKICAgICBpZiAobm9kZSkgewpAQCAtNTgxLDcgKzU4MSw4IEBAIGJvb2wgYWlvX3BvbGwo QWlvQ29udGV4dCAqY3R4LCBib29sIGJsb2NraW5nKQogICAgICAqLwogICAgIHVzZV9ub3RpZnlf bWUgPSB0aW1lb3V0ICE9IDA7CiAgICAgaWYgKHVzZV9ub3RpZnlfbWUpIHsKLSAgICAgICAgYXRv bWljX3NldCgmY3R4LT5ub3RpZnlfbWUsIGF0b21pY19yZWFkKCZjdHgtPm5vdGlmeV9tZSkgKyAy KTsKKyAgICAgICAgcWVtdV9hdG9taWNfc2V0KCZjdHgtPm5vdGlmeV9tZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgIHFlbXVfYXRvbWljX3JlYWQoJmN0eC0+bm90aWZ5X21lKSArIDIpOwogICAg ICAgICAvKgogICAgICAgICAgKiBXcml0ZSBjdHgtPm5vdGlmeV9tZSBiZWZvcmUgcmVhZGluZyBj dHgtPm5vdGlmaWVkLiAgUGFpcnMgd2l0aAogICAgICAgICAgKiBzbXBfbWIgaW4gYWlvX25vdGlm eSgpLgpAQCAtNTg5LDcgKzU5MCw3IEBAIGJvb2wgYWlvX3BvbGwoQWlvQ29udGV4dCAqY3R4LCBi b29sIGJsb2NraW5nKQogICAgICAgICBzbXBfbWIoKTsKIAogICAgICAgICAvKiBEb24ndCBibG9j ayBpZiBhaW9fbm90aWZ5KCkgd2FzIGNhbGxlZCAqLwotICAgICAgICBpZiAoYXRvbWljX3JlYWQo JmN0eC0+bm90aWZpZWQpKSB7CisgICAgICAgIGlmIChxZW11X2F0b21pY19yZWFkKCZjdHgtPm5v dGlmaWVkKSkgewogICAgICAgICAgICAgdGltZW91dCA9IDA7CiAgICAgICAgIH0KICAgICB9CkBA IC02MDMsOCArNjA0LDggQEAgYm9vbCBhaW9fcG9sbChBaW9Db250ZXh0ICpjdHgsIGJvb2wgYmxv Y2tpbmcpCiAKICAgICBpZiAodXNlX25vdGlmeV9tZSkgewogICAgICAgICAvKiBGaW5pc2ggdGhl IHBvbGwgYmVmb3JlIGNsZWFyaW5nIHRoZSBmbGFnLiAgKi8KLSAgICAgICAgYXRvbWljX3N0b3Jl X3JlbGVhc2UoJmN0eC0+bm90aWZ5X21lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh dG9taWNfcmVhZCgmY3R4LT5ub3RpZnlfbWUpIC0gMik7CisgICAgICAgIHFlbXVfYXRvbWljX3N0 b3JlX3JlbGVhc2UoJmN0eC0+bm90aWZ5X21lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBxZW11X2F0b21pY19yZWFkKCZjdHgtPm5vdGlmeV9tZSkgLSAyKTsKICAgICB9CiAKICAgICBh aW9fbm90aWZ5X2FjY2VwdChjdHgpOwpkaWZmIC0tZ2l0IGEvdXRpbC9haW8td2FpdC5jIGIvdXRp bC9haW8td2FpdC5jCmluZGV4IGI0ODc3NDkzZjguLjFhZWE2ZTdmYTAgMTAwNjQ0Ci0tLSBhL3V0 aWwvYWlvLXdhaXQuYworKysgYi91dGlsL2Fpby13YWl0LmMKQEAgLTM2LDcgKzM2LDcgQEAgc3Rh dGljIHZvaWQgZHVtbXlfYmhfY2Iodm9pZCAqb3BhcXVlKQogdm9pZCBhaW9fd2FpdF9raWNrKHZv aWQpCiB7CiAgICAgLyogVGhlIGJhcnJpZXIgKG9yIGFuIGF0b21pYyBvcCkgaXMgaW4gdGhlIGNh bGxlci4gICovCi0gICAgaWYgKGF0b21pY19yZWFkKCZnbG9iYWxfYWlvX3dhaXQubnVtX3dhaXRl cnMpKSB7CisgICAgaWYgKHFlbXVfYXRvbWljX3JlYWQoJmdsb2JhbF9haW9fd2FpdC5udW1fd2Fp dGVycykpIHsKICAgICAgICAgYWlvX2JoX3NjaGVkdWxlX29uZXNob3QocWVtdV9nZXRfYWlvX2Nv bnRleHQoKSwgZHVtbXlfYmhfY2IsIE5VTEwpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL3V0aWwv YWlvLXdpbjMyLmMgYi91dGlsL2Fpby13aW4zMi5jCmluZGV4IDQ5YmQ5MGU2MmUuLmNmYTgxYzYy MTcgMTAwNjQ0Ci0tLSBhL3V0aWwvYWlvLXdpbjMyLmMKKysrIGIvdXRpbC9haW8td2luMzIuYwpA QCAtMzQ1LDcgKzM0NSw4IEBAIGJvb2wgYWlvX3BvbGwoQWlvQ29udGV4dCAqY3R4LCBib29sIGJs b2NraW5nKQogICAgICAqIHNvIGRpc2FibGUgdGhlIG9wdGltaXphdGlvbiBub3cuCiAgICAgICov CiAgICAgaWYgKGJsb2NraW5nKSB7Ci0gICAgICAgIGF0b21pY19zZXQoJmN0eC0+bm90aWZ5X21l LCBhdG9taWNfcmVhZCgmY3R4LT5ub3RpZnlfbWUpICsgMik7CisgICAgICAgIHFlbXVfYXRvbWlj X3NldCgmY3R4LT5ub3RpZnlfbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBxZW11X2F0b21p Y19yZWFkKCZjdHgtPm5vdGlmeV9tZSkgKyAyKTsKICAgICAgICAgLyoKICAgICAgICAgICogV3Jp dGUgY3R4LT5ub3RpZnlfbWUgYmVmb3JlIGNvbXB1dGluZyB0aGUgdGltZW91dAogICAgICAgICAg KiAocmVhZGluZyBib3R0b20gaGFsZiBmbGFncywgZXRjLikuICBQYWlycyB3aXRoCkBAIC0zODQs NyArMzg1LDggQEAgYm9vbCBhaW9fcG9sbChBaW9Db250ZXh0ICpjdHgsIGJvb2wgYmxvY2tpbmcp CiAgICAgICAgIHJldCA9IFdhaXRGb3JNdWx0aXBsZU9iamVjdHMoY291bnQsIGV2ZW50cywgRkFM U0UsIHRpbWVvdXQpOwogICAgICAgICBpZiAoYmxvY2tpbmcpIHsKICAgICAgICAgICAgIGFzc2Vy dChmaXJzdCk7Ci0gICAgICAgICAgICBhdG9taWNfc3RvcmVfcmVsZWFzZSgmY3R4LT5ub3RpZnlf bWUsIGF0b21pY19yZWFkKCZjdHgtPm5vdGlmeV9tZSkgLSAyKTsKKyAgICAgICAgICAgIHFlbXVf YXRvbWljX3N0b3JlX3JlbGVhc2UoJmN0eC0+bm90aWZ5X21lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBxZW11X2F0b21pY19yZWFkKCZjdHgtPm5vdGlmeV9tZSkgLSAy KTsKICAgICAgICAgICAgIGFpb19ub3RpZnlfYWNjZXB0KGN0eCk7CiAgICAgICAgIH0KIApkaWZm IC0tZ2l0IGEvdXRpbC9hc3luYy5jIGIvdXRpbC9hc3luYy5jCmluZGV4IDQyNjY3NDVkZWUuLjkz NDFhYWNkY2QgMTAwNjQ0Ci0tLSBhL3V0aWwvYXN5bmMuYworKysgYi91dGlsL2FzeW5jLmMKQEAg LTcwLDEzICs3MCwxMyBAQCBzdGF0aWMgdm9pZCBhaW9fYmhfZW5xdWV1ZShRRU1VQkggKmJoLCB1 bnNpZ25lZCBuZXdfZmxhZ3MpCiAgICAgdW5zaWduZWQgb2xkX2ZsYWdzOwogCiAgICAgLyoKLSAg ICAgKiBUaGUgbWVtb3J5IGJhcnJpZXIgaW1wbGljaXQgaW4gYXRvbWljX2ZldGNoX29yIG1ha2Vz IHN1cmUgdGhhdDoKKyAgICAgKiBUaGUgbWVtb3J5IGJhcnJpZXIgaW1wbGljaXQgaW4gcWVtdV9h dG9taWNfZmV0Y2hfb3IgbWFrZXMgc3VyZSB0aGF0OgogICAgICAqIDEuIGlkbGUgJiBhbnkgd3Jp dGVzIG5lZWRlZCBieSB0aGUgY2FsbGJhY2sgYXJlIGRvbmUgYmVmb3JlIHRoZQogICAgICAqICAg IGxvY2F0aW9ucyBhcmUgcmVhZCBpbiB0aGUgYWlvX2JoX3BvbGwuCiAgICAgICogMi4gY3R4IGlz IGxvYWRlZCBiZWZvcmUgdGhlIGNhbGxiYWNrIGhhcyBhIGNoYW5jZSB0byBleGVjdXRlIGFuZCBi aAogICAgICAqICAgIGNvdWxkIGJlIGZyZWVkLgogICAgICAqLwotICAgIG9sZF9mbGFncyA9IGF0 b21pY19mZXRjaF9vcigmYmgtPmZsYWdzLCBCSF9QRU5ESU5HIHwgbmV3X2ZsYWdzKTsKKyAgICBv bGRfZmxhZ3MgPSBxZW11X2F0b21pY19mZXRjaF9vcigmYmgtPmZsYWdzLCBCSF9QRU5ESU5HIHwg bmV3X2ZsYWdzKTsKICAgICBpZiAoIShvbGRfZmxhZ3MgJiBCSF9QRU5ESU5HKSkgewogICAgICAg ICBRU0xJU1RfSU5TRVJUX0hFQURfQVRPTUlDKCZjdHgtPmJoX2xpc3QsIGJoLCBuZXh0KTsKICAg ICB9CkBAIC05NiwxMyArOTYsMTMgQEAgc3RhdGljIFFFTVVCSCAqYWlvX2JoX2RlcXVldWUoQkhM aXN0ICpoZWFkLCB1bnNpZ25lZCAqZmxhZ3MpCiAgICAgUVNMSVNUX1JFTU9WRV9IRUFEKGhlYWQs IG5leHQpOwogCiAgICAgLyoKLSAgICAgKiBUaGUgYXRvbWljX2FuZCBpcyBwYWlyZWQgd2l0aCBh aW9fYmhfZW5xdWV1ZSgpLiAgVGhlIGltcGxpY2l0IG1lbW9yeQotICAgICAqIGJhcnJpZXIgZW5z dXJlcyB0aGF0IHRoZSBjYWxsYmFjayBzZWVzIGFsbCB3cml0ZXMgZG9uZSBieSB0aGUgc2NoZWR1 bGluZwotICAgICAqIHRocmVhZC4gIEl0IGFsc28gZW5zdXJlcyB0aGF0IHRoZSBzY2hlZHVsaW5n IHRocmVhZCBzZWVzIHRoZSBjbGVhcmVkCi0gICAgICogZmxhZyBiZWZvcmUgYmgtPmNiIGhhcyBy dW4sIGFuZCB0aHVzIHdpbGwgY2FsbCBhaW9fbm90aWZ5IGFnYWluIGlmCi0gICAgICogbmVjZXNz YXJ5LgorICAgICAqIFRoZSBxZW11X2F0b21pY19hbmQgaXMgcGFpcmVkIHdpdGggYWlvX2JoX2Vu cXVldWUoKS4gIFRoZSBpbXBsaWNpdAorICAgICAqIG1lbW9yeSBiYXJyaWVyIGVuc3VyZXMgdGhh dCB0aGUgY2FsbGJhY2sgc2VlcyBhbGwgd3JpdGVzIGRvbmUgYnkgdGhlCisgICAgICogc2NoZWR1 bGluZyB0aHJlYWQuICBJdCBhbHNvIGVuc3VyZXMgdGhhdCB0aGUgc2NoZWR1bGluZyB0aHJlYWQg c2VlcyB0aGUKKyAgICAgKiBjbGVhcmVkIGZsYWcgYmVmb3JlIGJoLT5jYiBoYXMgcnVuLCBhbmQg dGh1cyB3aWxsIGNhbGwgYWlvX25vdGlmeSBhZ2FpbgorICAgICAqIGlmIG5lY2Vzc2FyeS4KICAg ICAgKi8KLSAgICAqZmxhZ3MgPSBhdG9taWNfZmV0Y2hfYW5kKCZiaC0+ZmxhZ3MsCisgICAgKmZs YWdzID0gcWVtdV9hdG9taWNfZmV0Y2hfYW5kKCZiaC0+ZmxhZ3MsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB+KEJIX1BFTkRJTkcgfCBCSF9TQ0hFRFVMRUQgfCBCSF9JRExFKSk7CiAg ICAgcmV0dXJuIGJoOwogfQpAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQgcWVtdV9iaF9zY2hlZHVs ZShRRU1VQkggKmJoKQogICovCiB2b2lkIHFlbXVfYmhfY2FuY2VsKFFFTVVCSCAqYmgpCiB7Ci0g ICAgYXRvbWljX2FuZCgmYmgtPmZsYWdzLCB+QkhfU0NIRURVTEVEKTsKKyAgICBxZW11X2F0b21p Y19hbmQoJmJoLT5mbGFncywgfkJIX1NDSEVEVUxFRCk7CiB9CiAKIC8qIFRoaXMgZnVuYyBpcyBh c3luYy5UaGUgYm90dG9tIGhhbGYgd2lsbCBkbyB0aGUgZGVsZXRlIGFjdGlvbiBhdCB0aGUgZmlu aWFsCkBAIC0yNDksNyArMjQ5LDcgQEAgYWlvX2N0eF9wcmVwYXJlKEdTb3VyY2UgKnNvdXJjZSwg Z2ludCAgICAqdGltZW91dCkKIHsKICAgICBBaW9Db250ZXh0ICpjdHggPSAoQWlvQ29udGV4dCAq KSBzb3VyY2U7CiAKLSAgICBhdG9taWNfc2V0KCZjdHgtPm5vdGlmeV9tZSwgYXRvbWljX3JlYWQo JmN0eC0+bm90aWZ5X21lKSB8IDEpOworICAgIHFlbXVfYXRvbWljX3NldCgmY3R4LT5ub3RpZnlf bWUsIHFlbXVfYXRvbWljX3JlYWQoJmN0eC0+bm90aWZ5X21lKSB8IDEpOwogCiAgICAgLyoKICAg ICAgKiBXcml0ZSBjdHgtPm5vdGlmeV9tZSBiZWZvcmUgY29tcHV0aW5nIHRoZSB0aW1lb3V0CkBA IC0yNzYsNyArMjc2LDggQEAgYWlvX2N0eF9jaGVjayhHU291cmNlICpzb3VyY2UpCiAgICAgQkhM aXN0U2xpY2UgKnM7CiAKICAgICAvKiBGaW5pc2ggY29tcHV0aW5nIHRoZSB0aW1lb3V0IGJlZm9y ZSBjbGVhcmluZyB0aGUgZmxhZy4gICovCi0gICAgYXRvbWljX3N0b3JlX3JlbGVhc2UoJmN0eC0+ bm90aWZ5X21lLCBhdG9taWNfcmVhZCgmY3R4LT5ub3RpZnlfbWUpICYgfjEpOworICAgIHFlbXVf YXRvbWljX3N0b3JlX3JlbGVhc2UoJmN0eC0+bm90aWZ5X21lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcWVtdV9hdG9taWNfcmVhZCgmY3R4LT5ub3RpZnlfbWUpICYgfjEpOwogICAg IGFpb19ub3RpZnlfYWNjZXB0KGN0eCk7CiAKICAgICBRU0xJU1RfRk9SRUFDSF9SQ1UoYmgsICZj dHgtPmJoX2xpc3QsIG5leHQpIHsKQEAgLTQyNCwyMSArNDI1LDIxIEBAIHZvaWQgYWlvX25vdGlm eShBaW9Db250ZXh0ICpjdHgpCiAgICAgICogYWlvX25vdGlmeV9hY2NlcHQuCiAgICAgICovCiAg ICAgc21wX3dtYigpOwotICAgIGF0b21pY19zZXQoJmN0eC0+bm90aWZpZWQsIHRydWUpOworICAg IHFlbXVfYXRvbWljX3NldCgmY3R4LT5ub3RpZmllZCwgdHJ1ZSk7CiAKICAgICAvKgogICAgICAq IFdyaXRlIGN0eC0+bm90aWZpZWQgYmVmb3JlIHJlYWRpbmcgY3R4LT5ub3RpZnlfbWUuICBQYWly cwogICAgICAqIHdpdGggc21wX21iIGluIGFpb19jdHhfcHJlcGFyZSBvciBhaW9fcG9sbC4KICAg ICAgKi8KICAgICBzbXBfbWIoKTsKLSAgICBpZiAoYXRvbWljX3JlYWQoJmN0eC0+bm90aWZ5X21l KSkgeworICAgIGlmIChxZW11X2F0b21pY19yZWFkKCZjdHgtPm5vdGlmeV9tZSkpIHsKICAgICAg ICAgZXZlbnRfbm90aWZpZXJfc2V0KCZjdHgtPm5vdGlmaWVyKTsKICAgICB9CiB9CiAKIHZvaWQg YWlvX25vdGlmeV9hY2NlcHQoQWlvQ29udGV4dCAqY3R4KQogewotICAgIGF0b21pY19zZXQoJmN0 eC0+bm90aWZpZWQsIGZhbHNlKTsKKyAgICBxZW11X2F0b21pY19zZXQoJmN0eC0+bm90aWZpZWQs IGZhbHNlKTsKIAogICAgIC8qCiAgICAgICogV3JpdGUgY3R4LT5ub3RpZmllZCBiZWZvcmUgcmVh ZGluZyBlLmcuIGJoLT5mbGFncy4gIFBhaXJzIHdpdGggc21wX3dtYgpAQCAtNDY1LDcgKzQ2Niw3 IEBAIHN0YXRpYyBib29sIGFpb19jb250ZXh0X25vdGlmaWVyX3BvbGwodm9pZCAqb3BhcXVlKQog ICAgIEV2ZW50Tm90aWZpZXIgKmUgPSBvcGFxdWU7CiAgICAgQWlvQ29udGV4dCAqY3R4ID0gY29u dGFpbmVyX29mKGUsIEFpb0NvbnRleHQsIG5vdGlmaWVyKTsKIAotICAgIHJldHVybiBhdG9taWNf cmVhZCgmY3R4LT5ub3RpZmllZCk7CisgICAgcmV0dXJuIHFlbXVfYXRvbWljX3JlYWQoJmN0eC0+ bm90aWZpZWQpOwogfQogCiBzdGF0aWMgdm9pZCBjb19zY2hlZHVsZV9iaF9jYih2b2lkICpvcGFx dWUpCkBAIC00ODksNyArNDkwLDcgQEAgc3RhdGljIHZvaWQgY29fc2NoZWR1bGVfYmhfY2Iodm9p ZCAqb3BhcXVlKQogICAgICAgICBhaW9fY29udGV4dF9hY3F1aXJlKGN0eCk7CiAKICAgICAgICAg LyogUHJvdGVjdGVkIGJ5IHdyaXRlIGJhcnJpZXIgaW4gcWVtdV9haW9fY29yb3V0aW5lX2VudGVy ICovCi0gICAgICAgIGF0b21pY19zZXQoJmNvLT5zY2hlZHVsZWQsIE5VTEwpOworICAgICAgICBx ZW11X2F0b21pY19zZXQoJmNvLT5zY2hlZHVsZWQsIE5VTEwpOwogICAgICAgICBxZW11X2Fpb19j b3JvdXRpbmVfZW50ZXIoY3R4LCBjbyk7CiAgICAgICAgIGFpb19jb250ZXh0X3JlbGVhc2UoY3R4 KTsKICAgICB9CkBAIC01NDYsNyArNTQ3LDcgQEAgZmFpbDoKIHZvaWQgYWlvX2NvX3NjaGVkdWxl KEFpb0NvbnRleHQgKmN0eCwgQ29yb3V0aW5lICpjbykKIHsKICAgICB0cmFjZV9haW9fY29fc2No ZWR1bGUoY3R4LCBjbyk7Ci0gICAgY29uc3QgY2hhciAqc2NoZWR1bGVkID0gYXRvbWljX2NtcHhj aGcoJmNvLT5zY2hlZHVsZWQsIE5VTEwsCisgICAgY29uc3QgY2hhciAqc2NoZWR1bGVkID0gcWVt dV9hdG9taWNfY21weGNoZygmY28tPnNjaGVkdWxlZCwgTlVMTCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXyk7CiAKICAgICBpZiAoc2NoZWR1bGVk KSB7CkBAIC01NzcsNyArNTc4LDcgQEAgdm9pZCBhaW9fY29fd2FrZShzdHJ1Y3QgQ29yb3V0aW5l ICpjbykKICAgICAgKiBxZW11X2Nvcm91dGluZV9lbnRlci4KICAgICAgKi8KICAgICBzbXBfcmVh ZF9iYXJyaWVyX2RlcGVuZHMoKTsKLSAgICBjdHggPSBhdG9taWNfcmVhZCgmY28tPmN0eCk7Cisg ICAgY3R4ID0gcWVtdV9hdG9taWNfcmVhZCgmY28tPmN0eCk7CiAKICAgICBhaW9fY29fZW50ZXIo Y3R4LCBjbyk7CiB9CmRpZmYgLS1naXQgYS91dGlsL2F0b21pYzY0LmMgYi91dGlsL2F0b21pYzY0 LmMKaW5kZXggYjE5OGE2YzljOC4uODdlNTliYmFjMCAxMDA2NDQKLS0tIGEvdXRpbC9hdG9taWM2 NC5jCisrKyBiL3V0aWwvYXRvbWljNjQuYwpAQCAtNTEsOCArNTEsOCBAQCBzdGF0aWMgUWVtdVNw aW4gKmFkZHJfdG9fbG9jayhjb25zdCB2b2lkICphZGRyKQogICAgICAgICByZXR1cm4gcmV0OyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIH0KIAotR0VOX1JFQUQoYXRvbWljX3Jl YWRfaTY0LCBpbnQ2NF90KQotR0VOX1JFQUQoYXRvbWljX3JlYWRfdTY0LCB1aW50NjRfdCkKK0dF Tl9SRUFEKHFlbXVfYXRvbWljX3JlYWRfaTY0LCBpbnQ2NF90KQorR0VOX1JFQUQocWVtdV9hdG9t aWNfcmVhZF91NjQsIHVpbnQ2NF90KQogI3VuZGVmIEdFTl9SRUFECiAKICNkZWZpbmUgR0VOX1NF VChuYW1lLCB0eXBlKSAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTY1LDExICs2NSwxMSBAQCBH RU5fUkVBRChhdG9taWNfcmVhZF91NjQsIHVpbnQ2NF90KQogICAgICAgICBxZW11X3NwaW5fdW5s b2NrKGxvY2spOyAgICAgICAgICAgICAgICAgXAogICAgIH0KIAotR0VOX1NFVChhdG9taWNfc2V0 X2k2NCwgaW50NjRfdCkKLUdFTl9TRVQoYXRvbWljX3NldF91NjQsIHVpbnQ2NF90KQorR0VOX1NF VChxZW11X2F0b21pY19zZXRfaTY0LCBpbnQ2NF90KQorR0VOX1NFVChxZW11X2F0b21pY19zZXRf dTY0LCB1aW50NjRfdCkKICN1bmRlZiBHRU5fU0VUCiAKLXZvaWQgYXRvbWljNjRfaW5pdCh2b2lk KQordm9pZCBxZW11X2F0b21pYzY0X2luaXQodm9pZCkKIHsKICAgICBpbnQgaTsKIApkaWZmIC0t Z2l0IGEvdXRpbC9iaXRtYXAuYyBiL3V0aWwvYml0bWFwLmMKaW5kZXggMTc1M2ZmN2Y1Yi4uZDc5 OTU3NzZhYiAxMDA2NDQKLS0tIGEvdXRpbC9iaXRtYXAuYworKysgYi91dGlsL2JpdG1hcC5jCkBA IC0xOTAsNyArMTkwLDcgQEAgdm9pZCBiaXRtYXBfc2V0X2F0b21pYyh1bnNpZ25lZCBsb25nICpt YXAsIGxvbmcgc3RhcnQsIGxvbmcgbnIpCiAKICAgICAvKiBGaXJzdCB3b3JkICovCiAgICAgaWYg KG5yIC0gYml0c190b19zZXQgPiAwKSB7Ci0gICAgICAgIGF0b21pY19vcihwLCBtYXNrX3RvX3Nl dCk7CisgICAgICAgIHFlbXVfYXRvbWljX29yKHAsIG1hc2tfdG9fc2V0KTsKICAgICAgICAgbnIg LT0gYml0c190b19zZXQ7CiAgICAgICAgIGJpdHNfdG9fc2V0ID0gQklUU19QRVJfTE9ORzsKICAg ICAgICAgbWFza190b19zZXQgPSB+MFVMOwpAQCAtMjA5LDkgKzIwOSw5IEBAIHZvaWQgYml0bWFw X3NldF9hdG9taWModW5zaWduZWQgbG9uZyAqbWFwLCBsb25nIHN0YXJ0LCBsb25nIG5yKQogICAg IC8qIExhc3Qgd29yZCAqLwogICAgIGlmIChucikgewogICAgICAgICBtYXNrX3RvX3NldCAmPSBC SVRNQVBfTEFTVF9XT1JEX01BU0soc2l6ZSk7Ci0gICAgICAgIGF0b21pY19vcihwLCBtYXNrX3Rv X3NldCk7CisgICAgICAgIHFlbXVfYXRvbWljX29yKHAsIG1hc2tfdG9fc2V0KTsKICAgICB9IGVs c2UgewotICAgICAgICAvKiBJZiB3ZSBhdm9pZGVkIHRoZSBmdWxsIGJhcnJpZXIgaW4gYXRvbWlj X29yKCksIGlzc3VlIGEKKyAgICAgICAgLyogSWYgd2UgYXZvaWRlZCB0aGUgZnVsbCBiYXJyaWVy IGluIHFlbXVfYXRvbWljX29yKCksIGlzc3VlIGEKICAgICAgICAgICogYmFycmllciB0byBhY2Nv dW50IGZvciB0aGUgYXNzaWdubWVudHMgaW4gdGhlIHdoaWxlIGxvb3AuCiAgICAgICAgICAqLwog ICAgICAgICBzbXBfbWIoKTsKQEAgLTI1Myw3ICsyNTMsNyBAQCBib29sIGJpdG1hcF90ZXN0X2Fu ZF9jbGVhcl9hdG9taWModW5zaWduZWQgbG9uZyAqbWFwLCBsb25nIHN0YXJ0LCBsb25nIG5yKQog CiAgICAgLyogRmlyc3Qgd29yZCAqLwogICAgIGlmIChuciAtIGJpdHNfdG9fY2xlYXIgPiAwKSB7 Ci0gICAgICAgIG9sZF9iaXRzID0gYXRvbWljX2ZldGNoX2FuZChwLCB+bWFza190b19jbGVhcik7 CisgICAgICAgIG9sZF9iaXRzID0gcWVtdV9hdG9taWNfZmV0Y2hfYW5kKHAsIH5tYXNrX3RvX2Ns ZWFyKTsKICAgICAgICAgZGlydHkgfD0gb2xkX2JpdHMgJiBtYXNrX3RvX2NsZWFyOwogICAgICAg ICBuciAtPSBiaXRzX3RvX2NsZWFyOwogICAgICAgICBiaXRzX3RvX2NsZWFyID0gQklUU19QRVJf TE9ORzsKQEAgLTI2NSw3ICsyNjUsNyBAQCBib29sIGJpdG1hcF90ZXN0X2FuZF9jbGVhcl9hdG9t aWModW5zaWduZWQgbG9uZyAqbWFwLCBsb25nIHN0YXJ0LCBsb25nIG5yKQogICAgIGlmIChiaXRz X3RvX2NsZWFyID09IEJJVFNfUEVSX0xPTkcpIHsKICAgICAgICAgd2hpbGUgKG5yID49IEJJVFNf UEVSX0xPTkcpIHsKICAgICAgICAgICAgIGlmICgqcCkgewotICAgICAgICAgICAgICAgIG9sZF9i aXRzID0gYXRvbWljX3hjaGcocCwgMCk7CisgICAgICAgICAgICAgICAgb2xkX2JpdHMgPSBxZW11 X2F0b21pY194Y2hnKHAsIDApOwogICAgICAgICAgICAgICAgIGRpcnR5IHw9IG9sZF9iaXRzOwog ICAgICAgICAgICAgfQogICAgICAgICAgICAgbnIgLT0gQklUU19QRVJfTE9ORzsKQEAgLTI3Niw3 ICsyNzYsNyBAQCBib29sIGJpdG1hcF90ZXN0X2FuZF9jbGVhcl9hdG9taWModW5zaWduZWQgbG9u ZyAqbWFwLCBsb25nIHN0YXJ0LCBsb25nIG5yKQogICAgIC8qIExhc3Qgd29yZCAqLwogICAgIGlm IChucikgewogICAgICAgICBtYXNrX3RvX2NsZWFyICY9IEJJVE1BUF9MQVNUX1dPUkRfTUFTSyhz aXplKTsKLSAgICAgICAgb2xkX2JpdHMgPSBhdG9taWNfZmV0Y2hfYW5kKHAsIH5tYXNrX3RvX2Ns ZWFyKTsKKyAgICAgICAgb2xkX2JpdHMgPSBxZW11X2F0b21pY19mZXRjaF9hbmQocCwgfm1hc2tf dG9fY2xlYXIpOwogICAgICAgICBkaXJ0eSB8PSBvbGRfYml0cyAmIG1hc2tfdG9fY2xlYXI7CiAg ICAgfSBlbHNlIHsKICAgICAgICAgaWYgKCFkaXJ0eSkgewpAQCAtMjkxLDcgKzI5MSw3IEBAIHZv aWQgYml0bWFwX2NvcHlfYW5kX2NsZWFyX2F0b21pYyh1bnNpZ25lZCBsb25nICpkc3QsIHVuc2ln bmVkIGxvbmcgKnNyYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5y KQogewogICAgIHdoaWxlIChuciA+IDApIHsKLSAgICAgICAgKmRzdCA9IGF0b21pY194Y2hnKHNy YywgMCk7CisgICAgICAgICpkc3QgPSBxZW11X2F0b21pY194Y2hnKHNyYywgMCk7CiAgICAgICAg IGRzdCsrOwogICAgICAgICBzcmMrKzsKICAgICAgICAgbnIgLT0gQklUU19QRVJfTE9ORzsKZGlm ZiAtLWdpdCBhL3V0aWwvY2FjaGVpbmZvLmMgYi91dGlsL2NhY2hlaW5mby5jCmluZGV4IGQ5NGRj NmFkYzguLjQ4ODFmZjM1NjggMTAwNjQ0Ci0tLSBhL3V0aWwvY2FjaGVpbmZvLmMKKysrIGIvdXRp bC9jYWNoZWluZm8uYwpAQCAtMTkzLDUgKzE5Myw1IEBAIHN0YXRpYyB2b2lkIF9fYXR0cmlidXRl X18oKGNvbnN0cnVjdG9yKSkgaW5pdF9jYWNoZV9pbmZvKHZvaWQpCiAgICAgcWVtdV9kY2FjaGVf bGluZXNpemUgPSBkc2l6ZTsKICAgICBxZW11X2RjYWNoZV9saW5lc2l6ZV9sb2cgPSBjdHozMihk c2l6ZSk7CiAKLSAgICBhdG9taWM2NF9pbml0KCk7CisgICAgcWVtdV9hdG9taWM2NF9pbml0KCk7 CiB9CmRpZmYgLS1naXQgYS91dGlsL2ZkbW9uLWVwb2xsLmMgYi91dGlsL2ZkbW9uLWVwb2xsLmMK aW5kZXggZmNkOTg5ZDQ3ZC4uMDI0NDdlYTg5YSAxMDA2NDQKLS0tIGEvdXRpbC9mZG1vbi1lcG9s bC5jCisrKyBiL3V0aWwvZmRtb24tZXBvbGwuYwpAQCAtNjUsNyArNjUsNyBAQCBzdGF0aWMgaW50 IGZkbW9uX2Vwb2xsX3dhaXQoQWlvQ29udGV4dCAqY3R4LCBBaW9IYW5kbGVyTGlzdCAqcmVhZHlf bGlzdCwKICAgICBzdHJ1Y3QgZXBvbGxfZXZlbnQgZXZlbnRzWzEyOF07CiAKICAgICAvKiBGYWxs IGJhY2sgd2hpbGUgZXh0ZXJuYWwgY2xpZW50cyBhcmUgZGlzYWJsZWQgKi8KLSAgICBpZiAoYXRv bWljX3JlYWQoJmN0eC0+ZXh0ZXJuYWxfZGlzYWJsZV9jbnQpKSB7CisgICAgaWYgKHFlbXVfYXRv bWljX3JlYWQoJmN0eC0+ZXh0ZXJuYWxfZGlzYWJsZV9jbnQpKSB7CiAgICAgICAgIHJldHVybiBm ZG1vbl9wb2xsX29wcy53YWl0KGN0eCwgcmVhZHlfbGlzdCwgdGltZW91dCk7CiAgICAgfQogCkBA IC0xMzIsNyArMTMyLDcgQEAgYm9vbCBmZG1vbl9lcG9sbF90cnlfdXBncmFkZShBaW9Db250ZXh0 ICpjdHgsIHVuc2lnbmVkIG5wZmQpCiAgICAgfQogCiAgICAgLyogRG8gbm90IHVwZ3JhZGUgd2hp bGUgZXh0ZXJuYWwgY2xpZW50cyBhcmUgZGlzYWJsZWQgKi8KLSAgICBpZiAoYXRvbWljX3JlYWQo JmN0eC0+ZXh0ZXJuYWxfZGlzYWJsZV9jbnQpKSB7CisgICAgaWYgKHFlbXVfYXRvbWljX3JlYWQo JmN0eC0+ZXh0ZXJuYWxfZGlzYWJsZV9jbnQpKSB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg ICB9CiAKZGlmZiAtLWdpdCBhL3V0aWwvZmRtb24taW9fdXJpbmcuYyBiL3V0aWwvZmRtb24taW9f dXJpbmcuYwppbmRleCAxZDE0MTc3ZGYwLi5iMTIyMmU1MzcwIDEwMDY0NAotLS0gYS91dGlsL2Zk bW9uLWlvX3VyaW5nLmMKKysrIGIvdXRpbC9mZG1vbi1pb191cmluZy5jCkBAIC0xMDMsNyArMTAz LDggQEAgc3RhdGljIHZvaWQgZW5xdWV1ZShBaW9IYW5kbGVyU0xpc3QgKmhlYWQsIEFpb0hhbmRs ZXIgKm5vZGUsIHVuc2lnbmVkIGZsYWdzKQogewogICAgIHVuc2lnbmVkIG9sZF9mbGFnczsKIAot ICAgIG9sZF9mbGFncyA9IGF0b21pY19mZXRjaF9vcigmbm9kZS0+ZmxhZ3MsIEZETU9OX0lPX1VS SU5HX1BFTkRJTkcgfCBmbGFncyk7CisgICAgb2xkX2ZsYWdzID0gcWVtdV9hdG9taWNfZmV0Y2hf b3IoJm5vZGUtPmZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZE TU9OX0lPX1VSSU5HX1BFTkRJTkcgfCBmbGFncyk7CiAgICAgaWYgKCEob2xkX2ZsYWdzICYgRkRN T05fSU9fVVJJTkdfUEVORElORykpIHsKICAgICAgICAgUVNMSVNUX0lOU0VSVF9IRUFEX0FUT01J QyhoZWFkLCBub2RlLCBub2RlX3N1Ym1pdHRlZCk7CiAgICAgfQpAQCAtMTI3LDcgKzEyOCw3IEBA IHN0YXRpYyBBaW9IYW5kbGVyICpkZXF1ZXVlKEFpb0hhbmRsZXJTTGlzdCAqaGVhZCwgdW5zaWdu ZWQgKmZsYWdzKQogICAgICAqIHRlbGxpbmcgcHJvY2Vzc19jcWUoKSB0byBkZWxldGUgdGhlIEFp b0hhbmRsZXIgd2hlbiBpdHMKICAgICAgKiBJT1JJTkdfT1BfUE9MTF9BREQgY29tcGxldGVzLgog ICAgICAqLwotICAgICpmbGFncyA9IGF0b21pY19mZXRjaF9hbmQoJm5vZGUtPmZsYWdzLCB+KEZE TU9OX0lPX1VSSU5HX1BFTkRJTkcgfAorICAgICpmbGFncyA9IHFlbXVfYXRvbWljX2ZldGNoX2Fu ZCgmbm9kZS0+ZmxhZ3MsIH4oRkRNT05fSU9fVVJJTkdfUEVORElORyB8CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkRNT05fSU9fVVJJTkdfQUREKSk7CiAg ICAgcmV0dXJuIG5vZGU7CiB9CkBAIC0yMzMsNyArMjM0LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vz c19jcWUoQWlvQ29udGV4dCAqY3R4LAogICAgICAqIHdpdGggZW5xdWV1ZSgpIGhlcmUgdGhlbiB3 ZSBjYW4gc2FmZWx5IGNsZWFyIHRoZSBGRE1PTl9JT19VUklOR19SRU1PVkUKICAgICAgKiBiaXQg YmVmb3JlIElPUklOR19PUF9QT0xMX1JFTU9WRSBpcyBzdWJtaXR0ZWQuCiAgICAgICovCi0gICAg ZmxhZ3MgPSBhdG9taWNfZmV0Y2hfYW5kKCZub2RlLT5mbGFncywgfkZETU9OX0lPX1VSSU5HX1JF TU9WRSk7CisgICAgZmxhZ3MgPSBxZW11X2F0b21pY19mZXRjaF9hbmQoJm5vZGUtPmZsYWdzLCB+ RkRNT05fSU9fVVJJTkdfUkVNT1ZFKTsKICAgICBpZiAoZmxhZ3MgJiBGRE1PTl9JT19VUklOR19S RU1PVkUpIHsKICAgICAgICAgUUxJU1RfSU5TRVJUX0hFQURfUkNVKCZjdHgtPmRlbGV0ZWRfYWlv X2hhbmRsZXJzLCBub2RlLCBub2RlX2RlbGV0ZWQpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBA IC0yNzMsNyArMjc0LDcgQEAgc3RhdGljIGludCBmZG1vbl9pb191cmluZ193YWl0KEFpb0NvbnRl eHQgKmN0eCwgQWlvSGFuZGxlckxpc3QgKnJlYWR5X2xpc3QsCiAgICAgaW50IHJldDsKIAogICAg IC8qIEZhbGwgYmFjayB3aGlsZSBleHRlcm5hbCBjbGllbnRzIGFyZSBkaXNhYmxlZCAqLwotICAg IGlmIChhdG9taWNfcmVhZCgmY3R4LT5leHRlcm5hbF9kaXNhYmxlX2NudCkpIHsKKyAgICBpZiAo cWVtdV9hdG9taWNfcmVhZCgmY3R4LT5leHRlcm5hbF9kaXNhYmxlX2NudCkpIHsKICAgICAgICAg cmV0dXJuIGZkbW9uX3BvbGxfb3BzLndhaXQoY3R4LCByZWFkeV9saXN0LCB0aW1lb3V0KTsKICAg ICB9CiAKQEAgLTMxMiw3ICszMTMsNyBAQCBzdGF0aWMgYm9vbCBmZG1vbl9pb191cmluZ19uZWVk X3dhaXQoQWlvQ29udGV4dCAqY3R4KQogICAgIH0KIAogICAgIC8qIEFyZSB3ZSBmYWxsaW5nIGJh Y2sgdG8gZmRtb24tcG9sbD8gKi8KLSAgICByZXR1cm4gYXRvbWljX3JlYWQoJmN0eC0+ZXh0ZXJu YWxfZGlzYWJsZV9jbnQpOworICAgIHJldHVybiBxZW11X2F0b21pY19yZWFkKCZjdHgtPmV4dGVy bmFsX2Rpc2FibGVfY250KTsKIH0KIAogc3RhdGljIGNvbnN0IEZETW9uT3BzIGZkbW9uX2lvX3Vy aW5nX29wcyA9IHsKQEAgLTM0NCw3ICszNDUsNyBAQCB2b2lkIGZkbW9uX2lvX3VyaW5nX2Rlc3Ry b3koQWlvQ29udGV4dCAqY3R4KQogCiAgICAgICAgIC8qIE1vdmUgaGFuZGxlcnMgZHVlIHRvIGJl IHJlbW92ZWQgb250byB0aGUgZGVsZXRlZCBsaXN0ICovCiAgICAgICAgIHdoaWxlICgobm9kZSA9 IFFTTElTVF9GSVJTVF9SQ1UoJmN0eC0+c3VibWl0X2xpc3QpKSkgewotICAgICAgICAgICAgdW5z aWduZWQgZmxhZ3MgPSBhdG9taWNfZmV0Y2hfYW5kKCZub2RlLT5mbGFncywKKyAgICAgICAgICAg IHVuc2lnbmVkIGZsYWdzID0gcWVtdV9hdG9taWNfZmV0Y2hfYW5kKCZub2RlLT5mbGFncywKICAg ICAgICAgICAgICAgICAgICAgfihGRE1PTl9JT19VUklOR19QRU5ESU5HIHwKICAgICAgICAgICAg ICAgICAgICAgICBGRE1PTl9JT19VUklOR19BREQgfAogICAgICAgICAgICAgICAgICAgICAgIEZE TU9OX0lPX1VSSU5HX1JFTU9WRSkpOwpkaWZmIC0tZ2l0IGEvdXRpbC9sb2NrY250LmMgYi91dGls L2xvY2tjbnQuYwppbmRleCA0Zjg4ZGNmOGI4Li44NDFkOWRmNjljIDEwMDY0NAotLS0gYS91dGls L2xvY2tjbnQuYworKysgYi91dGlsL2xvY2tjbnQuYwpAQCAtNjEsNyArNjEsNyBAQCBzdGF0aWMg Ym9vbCBxZW11X2xvY2tjbnRfY21weGNoZ19vcl93YWl0KFFlbXVMb2NrQ250ICpsb2NrY250LCBp bnQgKnZhbCwKICAgICAgICAgaW50IGV4cGVjdGVkID0gKnZhbDsKIAogICAgICAgICB0cmFjZV9s b2NrY250X2Zhc3RfcGF0aF9hdHRlbXB0KGxvY2tjbnQsIGV4cGVjdGVkLCBuZXdfaWZfZnJlZSk7 Ci0gICAgICAgICp2YWwgPSBhdG9taWNfY21weGNoZygmbG9ja2NudC0+Y291bnQsIGV4cGVjdGVk LCBuZXdfaWZfZnJlZSk7CisgICAgICAgICp2YWwgPSBxZW11X2F0b21pY19jbXB4Y2hnKCZsb2Nr Y250LT5jb3VudCwgZXhwZWN0ZWQsIG5ld19pZl9mcmVlKTsKICAgICAgICAgaWYgKCp2YWwgPT0g ZXhwZWN0ZWQpIHsKICAgICAgICAgICAgIHRyYWNlX2xvY2tjbnRfZmFzdF9wYXRoX3N1Y2Nlc3Mo bG9ja2NudCwgZXhwZWN0ZWQsIG5ld19pZl9mcmVlKTsKICAgICAgICAgICAgICp2YWwgPSBuZXdf aWZfZnJlZTsKQEAgLTgxLDcgKzgxLDcgQEAgc3RhdGljIGJvb2wgcWVtdV9sb2NrY250X2NtcHhj aGdfb3Jfd2FpdChRZW11TG9ja0NudCAqbG9ja2NudCwgaW50ICp2YWwsCiAgICAgICAgICAgICBp bnQgbmV3ID0gZXhwZWN0ZWQgLSBRRU1VX0xPQ0tDTlRfU1RBVEVfTE9DS0VEICsgUUVNVV9MT0NL Q05UX1NUQVRFX1dBSVRJTkc7CiAKICAgICAgICAgICAgIHRyYWNlX2xvY2tjbnRfZnV0ZXhfd2Fp dF9wcmVwYXJlKGxvY2tjbnQsIGV4cGVjdGVkLCBuZXcpOwotICAgICAgICAgICAgKnZhbCA9IGF0 b21pY19jbXB4Y2hnKCZsb2NrY250LT5jb3VudCwgZXhwZWN0ZWQsIG5ldyk7CisgICAgICAgICAg ICAqdmFsID0gcWVtdV9hdG9taWNfY21weGNoZygmbG9ja2NudC0+Y291bnQsIGV4cGVjdGVkLCBu ZXcpOwogICAgICAgICAgICAgaWYgKCp2YWwgPT0gZXhwZWN0ZWQpIHsKICAgICAgICAgICAgICAg ICAqdmFsID0gbmV3OwogICAgICAgICAgICAgfQpAQCAtOTIsNyArOTIsNyBAQCBzdGF0aWMgYm9v bCBxZW11X2xvY2tjbnRfY21weGNoZ19vcl93YWl0KFFlbXVMb2NrQ250ICpsb2NrY250LCBpbnQg KnZhbCwKICAgICAgICAgICAgICp3YWl0ZWQgPSB0cnVlOwogICAgICAgICAgICAgdHJhY2VfbG9j a2NudF9mdXRleF93YWl0KGxvY2tjbnQsICp2YWwpOwogICAgICAgICAgICAgcWVtdV9mdXRleF93 YWl0KCZsb2NrY250LT5jb3VudCwgKnZhbCk7Ci0gICAgICAgICAgICAqdmFsID0gYXRvbWljX3Jl YWQoJmxvY2tjbnQtPmNvdW50KTsKKyAgICAgICAgICAgICp2YWwgPSBxZW11X2F0b21pY19yZWFk KCZsb2NrY250LT5jb3VudCk7CiAgICAgICAgICAgICB0cmFjZV9sb2NrY250X2Z1dGV4X3dhaXRf cmVzdW1lKGxvY2tjbnQsICp2YWwpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0K QEAgLTExMCwxOSArMTEwLDIyIEBAIHN0YXRpYyB2b2lkIGxvY2tjbnRfd2FrZShRZW11TG9ja0Nu dCAqbG9ja2NudCkKIAogdm9pZCBxZW11X2xvY2tjbnRfaW5jKFFlbXVMb2NrQ250ICpsb2NrY250 KQogewotICAgIGludCB2YWwgPSBhdG9taWNfcmVhZCgmbG9ja2NudC0+Y291bnQpOworICAgIGlu dCB2YWwgPSBxZW11X2F0b21pY19yZWFkKCZsb2NrY250LT5jb3VudCk7CiAgICAgYm9vbCB3YWl0 ZWQgPSBmYWxzZTsKIAogICAgIGZvciAoOzspIHsKICAgICAgICAgaWYgKHZhbCA+PSBRRU1VX0xP Q0tDTlRfQ09VTlRfU1RFUCkgewogICAgICAgICAgICAgaW50IGV4cGVjdGVkID0gdmFsOwotICAg ICAgICAgICAgdmFsID0gYXRvbWljX2NtcHhjaGcoJmxvY2tjbnQtPmNvdW50LCB2YWwsIHZhbCAr IFFFTVVfTE9DS0NOVF9DT1VOVF9TVEVQKTsKKyAgICAgICAgICAgIHZhbCA9IHFlbXVfYXRvbWlj X2NtcHhjaGcoJmxvY2tjbnQtPmNvdW50LCB2YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZhbCArIFFFTVVfTE9DS0NOVF9DT1VOVF9TVEVQKTsKICAgICAgICAgICAg IGlmICh2YWwgPT0gZXhwZWN0ZWQpIHsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg ICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8qIFRoZSBmYXN0IHBhdGggaXMg KDAsIHVubG9ja2VkKS0+KDEsIHVubG9ja2VkKS4gICovCi0gICAgICAgICAgICBpZiAocWVtdV9s b2NrY250X2NtcHhjaGdfb3Jfd2FpdChsb2NrY250LCAmdmFsLCBRRU1VX0xPQ0tDTlRfQ09VTlRf U1RFUCwKKyAgICAgICAgICAgIGlmIChxZW11X2xvY2tjbnRfY21weGNoZ19vcl93YWl0KGxvY2tj bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdmFsLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUUVNVV9MT0NLQ05U X0NPVU5UX1NURVAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmd2FpdGVkKSkgewogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAt MTQyLDcgKzE0NSw3IEBAIHZvaWQgcWVtdV9sb2NrY250X2luYyhRZW11TG9ja0NudCAqbG9ja2Nu dCkKIAogdm9pZCBxZW11X2xvY2tjbnRfZGVjKFFlbXVMb2NrQ250ICpsb2NrY250KQogewotICAg IGF0b21pY19zdWIoJmxvY2tjbnQtPmNvdW50LCBRRU1VX0xPQ0tDTlRfQ09VTlRfU1RFUCk7Cisg ICAgcWVtdV9hdG9taWNfc3ViKCZsb2NrY250LT5jb3VudCwgUUVNVV9MT0NLQ05UX0NPVU5UX1NU RVApOwogfQogCiAvKiBEZWNyZW1lbnQgYSBjb3VudGVyLCBhbmQgcmV0dXJuIGxvY2tlZCBpZiBp dCBpcyBkZWNyZW1lbnRlZCB0byB6ZXJvLgpAQCAtMTUxLDE0ICsxNTQsMTUgQEAgdm9pZCBxZW11 X2xvY2tjbnRfZGVjKFFlbXVMb2NrQ250ICpsb2NrY250KQogICovCiBib29sIHFlbXVfbG9ja2Nu dF9kZWNfYW5kX2xvY2soUWVtdUxvY2tDbnQgKmxvY2tjbnQpCiB7Ci0gICAgaW50IHZhbCA9IGF0 b21pY19yZWFkKCZsb2NrY250LT5jb3VudCk7CisgICAgaW50IHZhbCA9IHFlbXVfYXRvbWljX3Jl YWQoJmxvY2tjbnQtPmNvdW50KTsKICAgICBpbnQgbG9ja2VkX3N0YXRlID0gUUVNVV9MT0NLQ05U X1NUQVRFX0xPQ0tFRDsKICAgICBib29sIHdhaXRlZCA9IGZhbHNlOwogCiAgICAgZm9yICg7Oykg ewogICAgICAgICBpZiAodmFsID49IDIgKiBRRU1VX0xPQ0tDTlRfQ09VTlRfU1RFUCkgewogICAg ICAgICAgICAgaW50IGV4cGVjdGVkID0gdmFsOwotICAgICAgICAgICAgdmFsID0gYXRvbWljX2Nt cHhjaGcoJmxvY2tjbnQtPmNvdW50LCB2YWwsIHZhbCAtIFFFTVVfTE9DS0NOVF9DT1VOVF9TVEVQ KTsKKyAgICAgICAgICAgIHZhbCA9IHFlbXVfYXRvbWljX2NtcHhjaGcoJmxvY2tjbnQtPmNvdW50 LCB2YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCAtIFFFTVVf TE9DS0NOVF9DT1VOVF9TVEVQKTsKICAgICAgICAgICAgIGlmICh2YWwgPT0gZXhwZWN0ZWQpIHsK ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTE2Niw3ICsxNzAsOCBA QCBib29sIHFlbXVfbG9ja2NudF9kZWNfYW5kX2xvY2soUWVtdUxvY2tDbnQgKmxvY2tjbnQpCiAg ICAgICAgICAgICAvKiBJZiBjb3VudCBpcyBnb2luZyAxLT4wLCB0YWtlIHRoZSBsb2NrLiBUaGUg ZmFzdCBwYXRoIGlzCiAgICAgICAgICAgICAgKiAoMSwgdW5sb2NrZWQpLT4oMCwgbG9ja2VkKSBv ciAoMSwgdW5sb2NrZWQpLT4oMCwgd2FpdGluZykuCiAgICAgICAgICAgICAgKi8KLSAgICAgICAg ICAgIGlmIChxZW11X2xvY2tjbnRfY21weGNoZ19vcl93YWl0KGxvY2tjbnQsICZ2YWwsIGxvY2tl ZF9zdGF0ZSwgJndhaXRlZCkpIHsKKyAgICAgICAgICAgIGlmIChxZW11X2xvY2tjbnRfY21weGNo Z19vcl93YWl0KGxvY2tjbnQsICZ2YWwsIGxvY2tlZF9zdGF0ZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ3YWl0ZWQpKSB7CiAgICAgICAgICAgICAgICAg cmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAKQEAgLTE5OSw3ICsyMDQsNyBAQCBib29sIHFl bXVfbG9ja2NudF9kZWNfYW5kX2xvY2soUWVtdUxvY2tDbnQgKmxvY2tjbnQpCiAgKi8KIGJvb2wg cWVtdV9sb2NrY250X2RlY19pZl9sb2NrKFFlbXVMb2NrQ250ICpsb2NrY250KQogewotICAgIGlu dCB2YWwgPSBhdG9taWNfcmVhZCgmbG9ja2NudC0+Y291bnQpOworICAgIGludCB2YWwgPSBxZW11 X2F0b21pY19yZWFkKCZsb2NrY250LT5jb3VudCk7CiAgICAgaW50IGxvY2tlZF9zdGF0ZSA9IFFF TVVfTE9DS0NOVF9TVEFURV9MT0NLRUQ7CiAgICAgYm9vbCB3YWl0ZWQgPSBmYWxzZTsKIApAQCAt MjMzLDcgKzIzOCw3IEBAIGJvb2wgcWVtdV9sb2NrY250X2RlY19pZl9sb2NrKFFlbXVMb2NrQ250 ICpsb2NrY250KQogCiB2b2lkIHFlbXVfbG9ja2NudF9sb2NrKFFlbXVMb2NrQ250ICpsb2NrY250 KQogewotICAgIGludCB2YWwgPSBhdG9taWNfcmVhZCgmbG9ja2NudC0+Y291bnQpOworICAgIGlu dCB2YWwgPSBxZW11X2F0b21pY19yZWFkKCZsb2NrY250LT5jb3VudCk7CiAgICAgaW50IHN0ZXAg PSBRRU1VX0xPQ0tDTlRfU1RBVEVfTE9DS0VEOwogICAgIGJvb2wgd2FpdGVkID0gZmFsc2U7CiAK QEAgLTI1NSwxMiArMjYwLDEyIEBAIHZvaWQgcWVtdV9sb2NrY250X2luY19hbmRfdW5sb2NrKFFl bXVMb2NrQ250ICpsb2NrY250KQogewogICAgIGludCBleHBlY3RlZCwgbmV3LCB2YWw7CiAKLSAg ICB2YWwgPSBhdG9taWNfcmVhZCgmbG9ja2NudC0+Y291bnQpOworICAgIHZhbCA9IHFlbXVfYXRv bWljX3JlYWQoJmxvY2tjbnQtPmNvdW50KTsKICAgICBkbyB7CiAgICAgICAgIGV4cGVjdGVkID0g dmFsOwogICAgICAgICBuZXcgPSAodmFsICsgUUVNVV9MT0NLQ05UX0NPVU5UX1NURVApICYgflFF TVVfTE9DS0NOVF9TVEFURV9NQVNLOwogICAgICAgICB0cmFjZV9sb2NrY250X3VubG9ja19hdHRl bXB0KGxvY2tjbnQsIHZhbCwgbmV3KTsKLSAgICAgICAgdmFsID0gYXRvbWljX2NtcHhjaGcoJmxv Y2tjbnQtPmNvdW50LCB2YWwsIG5ldyk7CisgICAgICAgIHZhbCA9IHFlbXVfYXRvbWljX2NtcHhj aGcoJmxvY2tjbnQtPmNvdW50LCB2YWwsIG5ldyk7CiAgICAgfSB3aGlsZSAodmFsICE9IGV4cGVj dGVkKTsKIAogICAgIHRyYWNlX2xvY2tjbnRfdW5sb2NrX3N1Y2Nlc3MobG9ja2NudCwgdmFsLCBu ZXcpOwpAQCAtMjczLDEyICsyNzgsMTIgQEAgdm9pZCBxZW11X2xvY2tjbnRfdW5sb2NrKFFlbXVM b2NrQ250ICpsb2NrY250KQogewogICAgIGludCBleHBlY3RlZCwgbmV3LCB2YWw7CiAKLSAgICB2 YWwgPSBhdG9taWNfcmVhZCgmbG9ja2NudC0+Y291bnQpOworICAgIHZhbCA9IHFlbXVfYXRvbWlj X3JlYWQoJmxvY2tjbnQtPmNvdW50KTsKICAgICBkbyB7CiAgICAgICAgIGV4cGVjdGVkID0gdmFs OwogICAgICAgICBuZXcgPSB2YWwgJiB+UUVNVV9MT0NLQ05UX1NUQVRFX01BU0s7CiAgICAgICAg IHRyYWNlX2xvY2tjbnRfdW5sb2NrX2F0dGVtcHQobG9ja2NudCwgdmFsLCBuZXcpOwotICAgICAg ICB2YWwgPSBhdG9taWNfY21weGNoZygmbG9ja2NudC0+Y291bnQsIHZhbCwgbmV3KTsKKyAgICAg ICAgdmFsID0gcWVtdV9hdG9taWNfY21weGNoZygmbG9ja2NudC0+Y291bnQsIHZhbCwgbmV3KTsK ICAgICB9IHdoaWxlICh2YWwgIT0gZXhwZWN0ZWQpOwogCiAgICAgdHJhY2VfbG9ja2NudF91bmxv Y2tfc3VjY2Vzcyhsb2NrY250LCB2YWwsIG5ldyk7CkBAIC0yODksNyArMjk0LDcgQEAgdm9pZCBx ZW11X2xvY2tjbnRfdW5sb2NrKFFlbXVMb2NrQ250ICpsb2NrY250KQogCiB1bnNpZ25lZCBxZW11 X2xvY2tjbnRfY291bnQoUWVtdUxvY2tDbnQgKmxvY2tjbnQpCiB7Ci0gICAgcmV0dXJuIGF0b21p Y19yZWFkKCZsb2NrY250LT5jb3VudCkgPj4gUUVNVV9MT0NLQ05UX0NPVU5UX1NISUZUOworICAg IHJldHVybiBxZW11X2F0b21pY19yZWFkKCZsb2NrY250LT5jb3VudCkgPj4gUUVNVV9MT0NLQ05U X0NPVU5UX1NISUZUOwogfQogI2Vsc2UKIHZvaWQgcWVtdV9sb2NrY250X2luaXQoUWVtdUxvY2tD bnQgKmxvY2tjbnQpCkBAIC0zMDcsMTMgKzMxMiwxMyBAQCB2b2lkIHFlbXVfbG9ja2NudF9pbmMo UWVtdUxvY2tDbnQgKmxvY2tjbnQpCiB7CiAgICAgaW50IG9sZDsKICAgICBmb3IgKDs7KSB7Ci0g ICAgICAgIG9sZCA9IGF0b21pY19yZWFkKCZsb2NrY250LT5jb3VudCk7CisgICAgICAgIG9sZCA9 IHFlbXVfYXRvbWljX3JlYWQoJmxvY2tjbnQtPmNvdW50KTsKICAgICAgICAgaWYgKG9sZCA9PSAw KSB7CiAgICAgICAgICAgICBxZW11X2xvY2tjbnRfbG9jayhsb2NrY250KTsKICAgICAgICAgICAg IHFlbXVfbG9ja2NudF9pbmNfYW5kX3VubG9jayhsb2NrY250KTsKICAgICAgICAgICAgIHJldHVy bjsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChhdG9taWNfY21weGNoZygmbG9j a2NudC0+Y291bnQsIG9sZCwgb2xkICsgMSkgPT0gb2xkKSB7CisgICAgICAgICAgICBpZiAocWVt dV9hdG9taWNfY21weGNoZygmbG9ja2NudC0+Y291bnQsIG9sZCwgb2xkICsgMSkgPT0gb2xkKSB7 CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0z MjIsNyArMzI3LDcgQEAgdm9pZCBxZW11X2xvY2tjbnRfaW5jKFFlbXVMb2NrQ250ICpsb2NrY250 KQogCiB2b2lkIHFlbXVfbG9ja2NudF9kZWMoUWVtdUxvY2tDbnQgKmxvY2tjbnQpCiB7Ci0gICAg YXRvbWljX2RlYygmbG9ja2NudC0+Y291bnQpOworICAgIHFlbXVfYXRvbWljX2RlYygmbG9ja2Nu dC0+Y291bnQpOwogfQogCiAvKiBEZWNyZW1lbnQgYSBjb3VudGVyLCBhbmQgcmV0dXJuIGxvY2tl ZCBpZiBpdCBpcyBkZWNyZW1lbnRlZCB0byB6ZXJvLgpAQCAtMzMxLDkgKzMzNiw5IEBAIHZvaWQg cWVtdV9sb2NrY250X2RlYyhRZW11TG9ja0NudCAqbG9ja2NudCkKICAqLwogYm9vbCBxZW11X2xv Y2tjbnRfZGVjX2FuZF9sb2NrKFFlbXVMb2NrQ250ICpsb2NrY250KQogewotICAgIGludCB2YWwg PSBhdG9taWNfcmVhZCgmbG9ja2NudC0+Y291bnQpOworICAgIGludCB2YWwgPSBxZW11X2F0b21p Y19yZWFkKCZsb2NrY250LT5jb3VudCk7CiAgICAgd2hpbGUgKHZhbCA+IDEpIHsKLSAgICAgICAg aW50IG9sZCA9IGF0b21pY19jbXB4Y2hnKCZsb2NrY250LT5jb3VudCwgdmFsLCB2YWwgLSAxKTsK KyAgICAgICAgaW50IG9sZCA9IHFlbXVfYXRvbWljX2NtcHhjaGcoJmxvY2tjbnQtPmNvdW50LCB2 YWwsIHZhbCAtIDEpOwogICAgICAgICBpZiAob2xkICE9IHZhbCkgewogICAgICAgICAgICAgdmFs ID0gb2xkOwogICAgICAgICAgICAgY29udGludWU7CkBAIC0zNDMsNyArMzQ4LDcgQEAgYm9vbCBx ZW11X2xvY2tjbnRfZGVjX2FuZF9sb2NrKFFlbXVMb2NrQ250ICpsb2NrY250KQogICAgIH0KIAog ICAgIHFlbXVfbG9ja2NudF9sb2NrKGxvY2tjbnQpOwotICAgIGlmIChhdG9taWNfZmV0Y2hfZGVj KCZsb2NrY250LT5jb3VudCkgPT0gMSkgeworICAgIGlmIChxZW11X2F0b21pY19mZXRjaF9kZWMo JmxvY2tjbnQtPmNvdW50KSA9PSAxKSB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApA QCAtMzYwLDEzICszNjUsMTMgQEAgYm9vbCBxZW11X2xvY2tjbnRfZGVjX2FuZF9sb2NrKFFlbXVM b2NrQ250ICpsb2NrY250KQogYm9vbCBxZW11X2xvY2tjbnRfZGVjX2lmX2xvY2soUWVtdUxvY2tD bnQgKmxvY2tjbnQpCiB7CiAgICAgLyogTm8gbmVlZCBmb3IgYWNxdWlyZSBzZW1hbnRpY3MgaWYg d2UgcmV0dXJuIGZhbHNlLiAgKi8KLSAgICBpbnQgdmFsID0gYXRvbWljX3JlYWQoJmxvY2tjbnQt PmNvdW50KTsKKyAgICBpbnQgdmFsID0gcWVtdV9hdG9taWNfcmVhZCgmbG9ja2NudC0+Y291bnQp OwogICAgIGlmICh2YWwgPiAxKSB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAg ICBxZW11X2xvY2tjbnRfbG9jayhsb2NrY250KTsKLSAgICBpZiAoYXRvbWljX2ZldGNoX2RlYygm bG9ja2NudC0+Y291bnQpID09IDEpIHsKKyAgICBpZiAocWVtdV9hdG9taWNfZmV0Y2hfZGVjKCZs b2NrY250LT5jb3VudCkgPT0gMSkgewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAg LTM4MSw3ICszODYsNyBAQCB2b2lkIHFlbXVfbG9ja2NudF9sb2NrKFFlbXVMb2NrQ250ICpsb2Nr Y250KQogCiB2b2lkIHFlbXVfbG9ja2NudF9pbmNfYW5kX3VubG9jayhRZW11TG9ja0NudCAqbG9j a2NudCkKIHsKLSAgICBhdG9taWNfaW5jKCZsb2NrY250LT5jb3VudCk7CisgICAgcWVtdV9hdG9t aWNfaW5jKCZsb2NrY250LT5jb3VudCk7CiAgICAgcWVtdV9tdXRleF91bmxvY2soJmxvY2tjbnQt Pm11dGV4KTsKIH0KIApAQCAtMzkyLDYgKzM5Nyw2IEBAIHZvaWQgcWVtdV9sb2NrY250X3VubG9j ayhRZW11TG9ja0NudCAqbG9ja2NudCkKIAogdW5zaWduZWQgcWVtdV9sb2NrY250X2NvdW50KFFl bXVMb2NrQ250ICpsb2NrY250KQogewotICAgIHJldHVybiBhdG9taWNfcmVhZCgmbG9ja2NudC0+ Y291bnQpOworICAgIHJldHVybiBxZW11X2F0b21pY19yZWFkKCZsb2NrY250LT5jb3VudCk7CiB9 CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3V0aWwvbG9nLmMgYi91dGlsL2xvZy5jCmluZGV4IGJkYjNk NzEyZTguLmUyYThlYjRmZWQgMTAwNjQ0Ci0tLSBhL3V0aWwvbG9nLmMKKysrIGIvdXRpbC9sb2cu YwpAQCAtNDEsNyArNDEsNyBAQCBpbnQgcWVtdV9sb2coY29uc3QgY2hhciAqZm10LCAuLi4pCiAg ICAgUWVtdUxvZ0ZpbGUgKmxvZ2ZpbGU7CiAKICAgICByY3VfcmVhZF9sb2NrKCk7Ci0gICAgbG9n ZmlsZSA9IGF0b21pY19yY3VfcmVhZCgmcWVtdV9sb2dmaWxlKTsKKyAgICBsb2dmaWxlID0gcWVt dV9hdG9taWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7CiAgICAgaWYgKGxvZ2ZpbGUpIHsKICAg ICAgICAgdmFfbGlzdCBhcDsKICAgICAgICAgdmFfc3RhcnQoYXAsIGZtdCk7CkBAIC05OCw3ICs5 OCw3IEBAIHZvaWQgcWVtdV9zZXRfbG9nKGludCBsb2dfZmxhZ3MpCiAgICAgUUVNVV9MT0NLX0dV QVJEKCZxZW11X2xvZ2ZpbGVfbXV0ZXgpOwogICAgIGlmIChxZW11X2xvZ2ZpbGUgJiYgIW5lZWRf dG9fb3Blbl9maWxlKSB7CiAgICAgICAgIGxvZ2ZpbGUgPSBxZW11X2xvZ2ZpbGU7Ci0gICAgICAg IGF0b21pY19yY3Vfc2V0KCZxZW11X2xvZ2ZpbGUsIE5VTEwpOworICAgICAgICBxZW11X2F0b21p Y19yY3Vfc2V0KCZxZW11X2xvZ2ZpbGUsIE5VTEwpOwogICAgICAgICBjYWxsX3JjdShsb2dmaWxl LCBxZW11X2xvZ2ZpbGVfZnJlZSwgcmN1KTsKICAgICB9IGVsc2UgaWYgKCFxZW11X2xvZ2ZpbGUg JiYgbmVlZF90b19vcGVuX2ZpbGUpIHsKICAgICAgICAgbG9nZmlsZSA9IGdfbmV3MChRZW11TG9n RmlsZSwgMSk7CkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCBxZW11X3NldF9sb2coaW50IGxvZ19m bGFncykKICNlbmRpZgogICAgICAgICAgICAgbG9nX2FwcGVuZCA9IDE7CiAgICAgICAgIH0KLSAg ICAgICAgYXRvbWljX3JjdV9zZXQoJnFlbXVfbG9nZmlsZSwgbG9nZmlsZSk7CisgICAgICAgIHFl bXVfYXRvbWljX3JjdV9zZXQoJnFlbXVfbG9nZmlsZSwgbG9nZmlsZSk7CiAgICAgfQogfQogCkBA IC0yNzIsNyArMjcyLDcgQEAgdm9pZCBxZW11X2xvZ19mbHVzaCh2b2lkKQogICAgIFFlbXVMb2dG aWxlICpsb2dmaWxlOwogCiAgICAgcmN1X3JlYWRfbG9jaygpOwotICAgIGxvZ2ZpbGUgPSBhdG9t aWNfcmN1X3JlYWQoJnFlbXVfbG9nZmlsZSk7CisgICAgbG9nZmlsZSA9IHFlbXVfYXRvbWljX3Jj dV9yZWFkKCZxZW11X2xvZ2ZpbGUpOwogICAgIGlmIChsb2dmaWxlKSB7CiAgICAgICAgIGZmbHVz aChsb2dmaWxlLT5mZCk7CiAgICAgfQpAQCAtMjg4LDcgKzI4OCw3IEBAIHZvaWQgcWVtdV9sb2df Y2xvc2Uodm9pZCkKICAgICBsb2dmaWxlID0gcWVtdV9sb2dmaWxlOwogCiAgICAgaWYgKGxvZ2Zp bGUpIHsKLSAgICAgICAgYXRvbWljX3JjdV9zZXQoJnFlbXVfbG9nZmlsZSwgTlVMTCk7CisgICAg ICAgIHFlbXVfYXRvbWljX3JjdV9zZXQoJnFlbXVfbG9nZmlsZSwgTlVMTCk7CiAgICAgICAgIGNh bGxfcmN1KGxvZ2ZpbGUsIHFlbXVfbG9nZmlsZV9mcmVlLCByY3UpOwogICAgIH0KICAgICBxZW11 X211dGV4X3VubG9jaygmcWVtdV9sb2dmaWxlX211dGV4KTsKZGlmZiAtLWdpdCBhL3V0aWwvcWVt dS1jb3JvdXRpbmUtbG9jay5jIGIvdXRpbC9xZW11LWNvcm91dGluZS1sb2NrLmMKaW5kZXggNWRh NTIzNDE1NS4uOTQyZjVjNDNmMiAxMDA2NDQKLS0tIGEvdXRpbC9xZW11LWNvcm91dGluZS1sb2Nr LmMKKysrIGIvdXRpbC9xZW11LWNvcm91dGluZS1sb2NrLmMKQEAgLTIxMiwxMCArMjEyLDEwIEBA IHN0YXRpYyB2b2lkIGNvcm91dGluZV9mbiBxZW11X2NvX211dGV4X2xvY2tfc2xvd3BhdGgoQWlv Q29udGV4dCAqY3R4LAogICAgIC8qIFRoaXMgaXMgdGhlICJSZXNwb25zaWJpbGl0eSBIYW5kLU9m ZiIgcHJvdG9jb2w7IGEgbG9jaygpIHBpY2tzIGZyb20KICAgICAgKiBhIGNvbmN1cnJlbnQgdW5s b2NrKCkgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHdha2luZyBzb21lYm9keSB1cC4KICAgICAgKi8K LSAgICBvbGRfaGFuZG9mZiA9IGF0b21pY19tYl9yZWFkKCZtdXRleC0+aGFuZG9mZik7CisgICAg b2xkX2hhbmRvZmYgPSBxZW11X2F0b21pY19tYl9yZWFkKCZtdXRleC0+aGFuZG9mZik7CiAgICAg aWYgKG9sZF9oYW5kb2ZmICYmCiAgICAgICAgIGhhc193YWl0ZXJzKG11dGV4KSAmJgotICAgICAg ICBhdG9taWNfY21weGNoZygmbXV0ZXgtPmhhbmRvZmYsIG9sZF9oYW5kb2ZmLCAwKSA9PSBvbGRf aGFuZG9mZikgeworICAgICAgICBxZW11X2F0b21pY19jbXB4Y2hnKCZtdXRleC0+aGFuZG9mZiwg b2xkX2hhbmRvZmYsIDApID09IG9sZF9oYW5kb2ZmKSB7CiAgICAgICAgIC8qIFRoZXJlIGNhbiBi ZSBubyBjb25jdXJyZW50IHBvcHMsIGJlY2F1c2UgdGhlcmUgY2FuIGJlIG9ubHkKICAgICAgICAg ICogb25lIGFjdGl2ZSBoYW5kb2ZmIGF0IGEgdGltZS4KICAgICAgICAgICovCkBAIC0yNTAsMTgg KzI1MCwxOCBAQCB2b2lkIGNvcm91dGluZV9mbiBxZW11X2NvX211dGV4X2xvY2soQ29NdXRleCAq bXV0ZXgpCiAgICAgICovCiAgICAgaSA9IDA7CiByZXRyeV9mYXN0X3BhdGg6Ci0gICAgd2FpdGVy cyA9IGF0b21pY19jbXB4Y2hnKCZtdXRleC0+bG9ja2VkLCAwLCAxKTsKKyAgICB3YWl0ZXJzID0g cWVtdV9hdG9taWNfY21weGNoZygmbXV0ZXgtPmxvY2tlZCwgMCwgMSk7CiAgICAgaWYgKHdhaXRl cnMgIT0gMCkgewogICAgICAgICB3aGlsZSAod2FpdGVycyA9PSAxICYmICsraSA8IDEwMDApIHsK LSAgICAgICAgICAgIGlmIChhdG9taWNfcmVhZCgmbXV0ZXgtPmN0eCkgPT0gY3R4KSB7CisgICAg ICAgICAgICBpZiAocWVtdV9hdG9taWNfcmVhZCgmbXV0ZXgtPmN0eCkgPT0gY3R4KSB7CiAgICAg ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoYXRvbWlj X3JlYWQoJm11dGV4LT5sb2NrZWQpID09IDApIHsKKyAgICAgICAgICAgIGlmIChxZW11X2F0b21p Y19yZWFkKCZtdXRleC0+bG9ja2VkKSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgZ290byByZXRy eV9mYXN0X3BhdGg7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjcHVfcmVsYXgoKTsKICAg ICAgICAgfQotICAgICAgICB3YWl0ZXJzID0gYXRvbWljX2ZldGNoX2luYygmbXV0ZXgtPmxvY2tl ZCk7CisgICAgICAgIHdhaXRlcnMgPSBxZW11X2F0b21pY19mZXRjaF9pbmMoJm11dGV4LT5sb2Nr ZWQpOwogICAgIH0KIAogICAgIGlmICh3YWl0ZXJzID09IDApIHsKQEAgLTI4OCw3ICsyODgsNyBA QCB2b2lkIGNvcm91dGluZV9mbiBxZW11X2NvX211dGV4X3VubG9jayhDb011dGV4ICptdXRleCkK ICAgICBtdXRleC0+Y3R4ID0gTlVMTDsKICAgICBtdXRleC0+aG9sZGVyID0gTlVMTDsKICAgICBz ZWxmLT5sb2Nrc19oZWxkLS07Ci0gICAgaWYgKGF0b21pY19mZXRjaF9kZWMoJm11dGV4LT5sb2Nr ZWQpID09IDEpIHsKKyAgICBpZiAocWVtdV9hdG9taWNfZmV0Y2hfZGVjKCZtdXRleC0+bG9ja2Vk KSA9PSAxKSB7CiAgICAgICAgIC8qIE5vIHdhaXRpbmcgcWVtdV9jb19tdXRleF9sb2NrKCkuICBQ ZmV3LCB0aGF0IHdhcyBlYXN5ISAgKi8KICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTMxMSw3 ICszMTEsNyBAQCB2b2lkIGNvcm91dGluZV9mbiBxZW11X2NvX211dGV4X3VubG9jayhDb011dGV4 ICptdXRleCkKICAgICAgICAgfQogCiAgICAgICAgIG91cl9oYW5kb2ZmID0gbXV0ZXgtPnNlcXVl bmNlOwotICAgICAgICBhdG9taWNfbWJfc2V0KCZtdXRleC0+aGFuZG9mZiwgb3VyX2hhbmRvZmYp OworICAgICAgICBxZW11X2F0b21pY19tYl9zZXQoJm11dGV4LT5oYW5kb2ZmLCBvdXJfaGFuZG9m Zik7CiAgICAgICAgIGlmICghaGFzX3dhaXRlcnMobXV0ZXgpKSB7CiAgICAgICAgICAgICAvKiBU aGUgY29uY3VycmVudCBsb2NrIGhhcyBub3QgYWRkZWQgaXRzZWxmIHlldCwgc28gaXQKICAgICAg ICAgICAgICAqIHdpbGwgYmUgYWJsZSB0byBwaWNrIG91ciBoYW5kb2ZmLgpAQCAtMzIyLDcgKzMy Miw4IEBAIHZvaWQgY29yb3V0aW5lX2ZuIHFlbXVfY29fbXV0ZXhfdW5sb2NrKENvTXV0ZXggKm11 dGV4KQogICAgICAgICAvKiBUcnkgdG8gZG8gdGhlIGhhbmRvZmYgcHJvdG9jb2wgb3Vyc2VsdmVz OyBpZiBzb21lYm9keSBlbHNlIGhhcwogICAgICAgICAgKiBhbHJlYWR5IHRha2VuIGl0LCBob3dl dmVyLCB3ZSdyZSBkb25lIGFuZCB0aGV5J3JlIHJlc3BvbnNpYmxlLgogICAgICAgICAgKi8KLSAg ICAgICAgaWYgKGF0b21pY19jbXB4Y2hnKCZtdXRleC0+aGFuZG9mZiwgb3VyX2hhbmRvZmYsIDAp ICE9IG91cl9oYW5kb2ZmKSB7CisgICAgICAgIGlmIChxZW11X2F0b21pY19jbXB4Y2hnKCZtdXRl eC0+aGFuZG9mZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3VyX2hhbmRvZmYs IDApICE9IG91cl9oYW5kb2ZmKSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg IH0KZGlmZiAtLWdpdCBhL3V0aWwvcWVtdS1jb3JvdXRpbmUtc2xlZXAuYyBiL3V0aWwvcWVtdS1j b3JvdXRpbmUtc2xlZXAuYwppbmRleCA3NjlhNzZlNTdkLi45YTgxYTdkNmVlIDEwMDY0NAotLS0g YS91dGlsL3FlbXUtY29yb3V0aW5lLXNsZWVwLmMKKysrIGIvdXRpbC9xZW11LWNvcm91dGluZS1z bGVlcC5jCkBAIC0yOCw3ICsyOCw3IEBAIHN0cnVjdCBRZW11Q29TbGVlcFN0YXRlIHsKIHZvaWQg cWVtdV9jb19zbGVlcF93YWtlKFFlbXVDb1NsZWVwU3RhdGUgKnNsZWVwX3N0YXRlKQogewogICAg IC8qIFdyaXRlIG9mIHNjaGVkdWxlIHByb3RlY3RlZCBieSBiYXJyaWVyIHdyaXRlIGluIGFpb19j b19zY2hlZHVsZSAqLwotICAgIGNvbnN0IGNoYXIgKnNjaGVkdWxlZCA9IGF0b21pY19jbXB4Y2hn KCZzbGVlcF9zdGF0ZS0+Y28tPnNjaGVkdWxlZCwKKyAgICBjb25zdCBjaGFyICpzY2hlZHVsZWQg PSBxZW11X2F0b21pY19jbXB4Y2hnKCZzbGVlcF9zdGF0ZS0+Y28tPnNjaGVkdWxlZCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxZW11X2NvX3NsZWVwX25zX19z Y2hlZHVsZWQsIE5VTEwpOwogCiAgICAgYXNzZXJ0KHNjaGVkdWxlZCA9PSBxZW11X2NvX3NsZWVw X25zX19zY2hlZHVsZWQpOwpAQCAtNTQsNyArNTQsNyBAQCB2b2lkIGNvcm91dGluZV9mbiBxZW11 X2NvX3NsZWVwX25zX3dha2VhYmxlKFFFTVVDbG9ja1R5cGUgdHlwZSwgaW50NjRfdCBucywKICAg ICAgICAgLnVzZXJfc3RhdGVfcG9pbnRlciA9IHNsZWVwX3N0YXRlLAogICAgIH07CiAKLSAgICBj b25zdCBjaGFyICpzY2hlZHVsZWQgPSBhdG9taWNfY21weGNoZygmc3RhdGUuY28tPnNjaGVkdWxl ZCwgTlVMTCwKKyAgICBjb25zdCBjaGFyICpzY2hlZHVsZWQgPSBxZW11X2F0b21pY19jbXB4Y2hn KCZzdGF0ZS5jby0+c2NoZWR1bGVkLCBOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHFlbXVfY29fc2xlZXBfbnNfX3NjaGVkdWxlZCk7CiAgICAgaWYgKHNj aGVkdWxlZCkgewogICAgICAgICBmcHJpbnRmKHN0ZGVyciwKZGlmZiAtLWdpdCBhL3V0aWwvcWVt dS1jb3JvdXRpbmUuYyBiL3V0aWwvcWVtdS1jb3JvdXRpbmUuYwppbmRleCBjM2NhYTZjNzcwLi5h ZDI4NjAzYTcxIDEwMDY0NAotLS0gYS91dGlsL3FlbXUtY29yb3V0aW5lLmMKKysrIGIvdXRpbC9x ZW11LWNvcm91dGluZS5jCkBAIC02MCw3ICs2MCw3IEBAIENvcm91dGluZSAqcWVtdV9jb3JvdXRp bmVfY3JlYXRlKENvcm91dGluZUVudHJ5ICplbnRyeSwgdm9pZCAqb3BhcXVlKQogICAgICAgICAg ICAgICAgICAqIHJlbGVhc2VfcG9vbF9zaXplIGFuZCB0aGUgYWN0dWFsIHNpemUgb2YgcmVsZWFz ZV9wb29sLiAgQnV0CiAgICAgICAgICAgICAgICAgICogaXQgaXMganVzdCBhIGhldXJpc3RpYywg aXQgZG9lcyBub3QgbmVlZCB0byBiZSBwZXJmZWN0LgogICAgICAgICAgICAgICAgICAqLwotICAg ICAgICAgICAgICAgIGFsbG9jX3Bvb2xfc2l6ZSA9IGF0b21pY194Y2hnKCZyZWxlYXNlX3Bvb2xf c2l6ZSwgMCk7CisgICAgICAgICAgICAgICAgYWxsb2NfcG9vbF9zaXplID0gcWVtdV9hdG9taWNf eGNoZygmcmVsZWFzZV9wb29sX3NpemUsIDApOwogICAgICAgICAgICAgICAgIFFTTElTVF9NT1ZF X0FUT01JQygmYWxsb2NfcG9vbCwgJnJlbGVhc2VfcG9vbCk7CiAgICAgICAgICAgICAgICAgY28g PSBRU0xJU1RfRklSU1QoJmFsbG9jX3Bvb2wpOwogICAgICAgICAgICAgfQpAQCAtODgsNyArODgs NyBAQCBzdGF0aWMgdm9pZCBjb3JvdXRpbmVfZGVsZXRlKENvcm91dGluZSAqY28pCiAgICAgaWYg KENPTkZJR19DT1JPVVRJTkVfUE9PTCkgewogICAgICAgICBpZiAocmVsZWFzZV9wb29sX3NpemUg PCBQT09MX0JBVENIX1NJWkUgKiAyKSB7CiAgICAgICAgICAgICBRU0xJU1RfSU5TRVJUX0hFQURf QVRPTUlDKCZyZWxlYXNlX3Bvb2wsIGNvLCBwb29sX25leHQpOwotICAgICAgICAgICAgYXRvbWlj X2luYygmcmVsZWFzZV9wb29sX3NpemUpOworICAgICAgICAgICAgcWVtdV9hdG9taWNfaW5jKCZy ZWxlYXNlX3Bvb2xfc2l6ZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAg ICAgaWYgKGFsbG9jX3Bvb2xfc2l6ZSA8IFBPT0xfQkFUQ0hfU0laRSkgewpAQCAtMTE1LDcgKzEx NSw3IEBAIHZvaWQgcWVtdV9haW9fY29yb3V0aW5lX2VudGVyKEFpb0NvbnRleHQgKmN0eCwgQ29y b3V0aW5lICpjbykKIAogICAgICAgICAvKiBDYW5ub3QgcmVseSBvbiB0aGUgcmVhZCBiYXJyaWVy IGZvciB0byBpbiBhaW9fY29fd2FrZSgpLCBhcyB0aGVyZSBhcmUKICAgICAgICAgICogY2FsbGVy cyBvdXRzaWRlIG9mIGFpb19jb193YWtlKCkgKi8KLSAgICAgICAgY29uc3QgY2hhciAqc2NoZWR1 bGVkID0gYXRvbWljX21iX3JlYWQoJnRvLT5zY2hlZHVsZWQpOworICAgICAgICBjb25zdCBjaGFy ICpzY2hlZHVsZWQgPSBxZW11X2F0b21pY19tYl9yZWFkKCZ0by0+c2NoZWR1bGVkKTsKIAogICAg ICAgICBRU0lNUExFUV9SRU1PVkVfSEVBRCgmcGVuZGluZywgY29fcXVldWVfbmV4dCk7CiAKZGlm ZiAtLWdpdCBhL3V0aWwvcWVtdS1zb2NrZXRzLmMgYi91dGlsL3FlbXUtc29ja2V0cy5jCmluZGV4 IGIzN2QyODg4NjYuLjI5NGVhMjE0NDYgMTAwNjQ0Ci0tLSBhL3V0aWwvcWVtdS1zb2NrZXRzLmMK KysrIGIvdXRpbC9xZW11LXNvY2tldHMuYwpAQCAtMzk1LDcgKzM5NSw3IEBAIHN0YXRpYyBzdHJ1 Y3QgYWRkcmluZm8gKmluZXRfcGFyc2VfY29ubmVjdF9zYWRkcihJbmV0U29ja2V0QWRkcmVzcyAq c2FkZHIsCiAgICAgbWVtc2V0KCZhaSwgMCwgc2l6ZW9mKGFpKSk7CiAKICAgICBhaS5haV9mbGFn cyA9IEFJX0NBTk9OTkFNRSB8IEFJX0FERFJDT05GSUc7Ci0gICAgaWYgKGF0b21pY19yZWFkKCZ1 c2VWNE1hcHBlZCkpIHsKKyAgICBpZiAocWVtdV9hdG9taWNfcmVhZCgmdXNlVjRNYXBwZWQpKSB7 CiAgICAgICAgIGFpLmFpX2ZsYWdzIHw9IEFJX1Y0TUFQUEVEOwogICAgIH0KICAgICBhaS5haV9m YW1pbHkgPSBpbmV0X2FpX2ZhbWlseV9mcm9tX2FkZHJlc3Moc2FkZHIsICZlcnIpOwpAQCAtNDIx LDcgKzQyMSw3IEBAIHN0YXRpYyBzdHJ1Y3QgYWRkcmluZm8gKmluZXRfcGFyc2VfY29ubmVjdF9z YWRkcihJbmV0U29ja2V0QWRkcmVzcyAqc2FkZHIsCiAgICAgICovCiAgICAgaWYgKHJjID09IEVB SV9CQURGTEFHUyAmJgogICAgICAgICAoYWkuYWlfZmxhZ3MgJiBBSV9WNE1BUFBFRCkpIHsKLSAg ICAgICAgYXRvbWljX3NldCgmdXNlVjRNYXBwZWQsIDApOworICAgICAgICBxZW11X2F0b21pY19z ZXQoJnVzZVY0TWFwcGVkLCAwKTsKICAgICAgICAgYWkuYWlfZmxhZ3MgJj0gfkFJX1Y0TUFQUEVE OwogICAgICAgICByYyA9IGdldGFkZHJpbmZvKHNhZGRyLT5ob3N0LCBzYWRkci0+cG9ydCwgJmFp LCAmcmVzKTsKICAgICB9CmRpZmYgLS1naXQgYS91dGlsL3FlbXUtdGhyZWFkLXBvc2l4LmMgYi91 dGlsL3FlbXUtdGhyZWFkLXBvc2l4LmMKaW5kZXggYjRjMjM1OTI3Mi4uNjQ1N2ZkYTE2NSAxMDA2 NDQKLS0tIGEvdXRpbC9xZW11LXRocmVhZC1wb3NpeC5jCisrKyBiL3V0aWwvcWVtdS10aHJlYWQt cG9zaXguYwpAQCAtNDE0LDggKzQxNCw4IEBAIHZvaWQgcWVtdV9ldmVudF9zZXQoUWVtdUV2ZW50 ICpldikKICAgICAgKi8KICAgICBhc3NlcnQoZXYtPmluaXRpYWxpemVkKTsKICAgICBzbXBfbWIo KTsKLSAgICBpZiAoYXRvbWljX3JlYWQoJmV2LT52YWx1ZSkgIT0gRVZfU0VUKSB7Ci0gICAgICAg IGlmIChhdG9taWNfeGNoZygmZXYtPnZhbHVlLCBFVl9TRVQpID09IEVWX0JVU1kpIHsKKyAgICBp ZiAocWVtdV9hdG9taWNfcmVhZCgmZXYtPnZhbHVlKSAhPSBFVl9TRVQpIHsKKyAgICAgICAgaWYg KHFlbXVfYXRvbWljX3hjaGcoJmV2LT52YWx1ZSwgRVZfU0VUKSA9PSBFVl9CVVNZKSB7CiAgICAg ICAgICAgICAvKiBUaGVyZSB3ZXJlIHdhaXRlcnMsIHdha2UgdGhlbSB1cC4gICovCiAgICAgICAg ICAgICBxZW11X2Z1dGV4X3dha2UoZXYsIElOVF9NQVgpOwogICAgICAgICB9CkBAIC00MjcsMTQg KzQyNywxNCBAQCB2b2lkIHFlbXVfZXZlbnRfcmVzZXQoUWVtdUV2ZW50ICpldikKICAgICB1bnNp Z25lZCB2YWx1ZTsKIAogICAgIGFzc2VydChldi0+aW5pdGlhbGl6ZWQpOwotICAgIHZhbHVlID0g YXRvbWljX3JlYWQoJmV2LT52YWx1ZSk7CisgICAgdmFsdWUgPSBxZW11X2F0b21pY19yZWFkKCZl di0+dmFsdWUpOwogICAgIHNtcF9tYl9hY3F1aXJlKCk7CiAgICAgaWYgKHZhbHVlID09IEVWX1NF VCkgewogICAgICAgICAvKgogICAgICAgICAgKiBJZiB0aGVyZSB3YXMgYSBjb25jdXJyZW50IHJl c2V0IChvciBldmVuIHJlc2V0K3dhaXQpLAogICAgICAgICAgKiBkbyBub3RoaW5nLiAgT3RoZXJ3 aXNlIGNoYW5nZSBFVl9TRVQtPkVWX0ZSRUUuCiAgICAgICAgICAqLwotICAgICAgICBhdG9taWNf b3IoJmV2LT52YWx1ZSwgRVZfRlJFRSk7CisgICAgICAgIHFlbXVfYXRvbWljX29yKCZldi0+dmFs dWUsIEVWX0ZSRUUpOwogICAgIH0KIH0KIApAQCAtNDQzLDcgKzQ0Myw3IEBAIHZvaWQgcWVtdV9l dmVudF93YWl0KFFlbXVFdmVudCAqZXYpCiAgICAgdW5zaWduZWQgdmFsdWU7CiAKICAgICBhc3Nl cnQoZXYtPmluaXRpYWxpemVkKTsKLSAgICB2YWx1ZSA9IGF0b21pY19yZWFkKCZldi0+dmFsdWUp OworICAgIHZhbHVlID0gcWVtdV9hdG9taWNfcmVhZCgmZXYtPnZhbHVlKTsKICAgICBzbXBfbWJf YWNxdWlyZSgpOwogICAgIGlmICh2YWx1ZSAhPSBFVl9TRVQpIHsKICAgICAgICAgaWYgKHZhbHVl ID09IEVWX0ZSRUUpIHsKQEAgLTQ1Myw3ICs0NTMsNyBAQCB2b2lkIHFlbXVfZXZlbnRfd2FpdChR ZW11RXZlbnQgKmV2KQogICAgICAgICAgICAgICogYSBjb25jdXJyZW50IGJ1c3ktPmZyZWUgdHJh bnNpdGlvbi4gIEFmdGVyIHRoZSBDQVMsIHRoZQogICAgICAgICAgICAgICogZXZlbnQgd2lsbCBi ZSBlaXRoZXIgc2V0IG9yIGJ1c3kuCiAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIGlmIChh dG9taWNfY21weGNoZygmZXYtPnZhbHVlLCBFVl9GUkVFLCBFVl9CVVNZKSA9PSBFVl9TRVQpIHsK KyAgICAgICAgICAgIGlmIChxZW11X2F0b21pY19jbXB4Y2hnKCZldi0+dmFsdWUsIEVWX0ZSRUUs IEVWX0JVU1kpID09IEVWX1NFVCkgewogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg ICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvdXRpbC9xZW11LXRocmVhZC13aW4zMi5jIGIv dXRpbC9xZW11LXRocmVhZC13aW4zMi5jCmluZGV4IDU2YTgzMzMzZGEuLjQwOWIyOGQyMWIgMTAw NjQ0Ci0tLSBhL3V0aWwvcWVtdS10aHJlYWQtd2luMzIuYworKysgYi91dGlsL3FlbXUtdGhyZWFk LXdpbjMyLmMKQEAgLTI1MCw4ICsyNTAsOCBAQCB2b2lkIHFlbXVfZXZlbnRfc2V0KFFlbXVFdmVu dCAqZXYpCiAgICAgICogZXYtPnZhbHVlIHdlIG5lZWQgYSBmdWxsIG1lbW9yeSBiYXJyaWVyIGhl cmUuCiAgICAgICovCiAgICAgc21wX21iKCk7Ci0gICAgaWYgKGF0b21pY19yZWFkKCZldi0+dmFs dWUpICE9IEVWX1NFVCkgewotICAgICAgICBpZiAoYXRvbWljX3hjaGcoJmV2LT52YWx1ZSwgRVZf U0VUKSA9PSBFVl9CVVNZKSB7CisgICAgaWYgKHFlbXVfYXRvbWljX3JlYWQoJmV2LT52YWx1ZSkg IT0gRVZfU0VUKSB7CisgICAgICAgIGlmIChxZW11X2F0b21pY194Y2hnKCZldi0+dmFsdWUsIEVW X1NFVCkgPT0gRVZfQlVTWSkgewogICAgICAgICAgICAgLyogVGhlcmUgd2VyZSB3YWl0ZXJzLCB3 YWtlIHRoZW0gdXAuICAqLwogICAgICAgICAgICAgU2V0RXZlbnQoZXYtPmV2ZW50KTsKICAgICAg ICAgfQpAQCAtMjYzLDEzICsyNjMsMTMgQEAgdm9pZCBxZW11X2V2ZW50X3Jlc2V0KFFlbXVFdmVu dCAqZXYpCiAgICAgdW5zaWduZWQgdmFsdWU7CiAKICAgICBhc3NlcnQoZXYtPmluaXRpYWxpemVk KTsKLSAgICB2YWx1ZSA9IGF0b21pY19yZWFkKCZldi0+dmFsdWUpOworICAgIHZhbHVlID0gcWVt dV9hdG9taWNfcmVhZCgmZXYtPnZhbHVlKTsKICAgICBzbXBfbWJfYWNxdWlyZSgpOwogICAgIGlm ICh2YWx1ZSA9PSBFVl9TRVQpIHsKICAgICAgICAgLyogSWYgdGhlcmUgd2FzIGEgY29uY3VycmVu dCByZXNldCAob3IgZXZlbiByZXNldCt3YWl0KSwKICAgICAgICAgICogZG8gbm90aGluZy4gIE90 aGVyd2lzZSBjaGFuZ2UgRVZfU0VULT5FVl9GUkVFLgogICAgICAgICAgKi8KLSAgICAgICAgYXRv bWljX29yKCZldi0+dmFsdWUsIEVWX0ZSRUUpOworICAgICAgICBxZW11X2F0b21pY19vcigmZXYt PnZhbHVlLCBFVl9GUkVFKTsKICAgICB9CiB9CiAKQEAgLTI3OCw3ICsyNzgsNyBAQCB2b2lkIHFl bXVfZXZlbnRfd2FpdChRZW11RXZlbnQgKmV2KQogICAgIHVuc2lnbmVkIHZhbHVlOwogCiAgICAg YXNzZXJ0KGV2LT5pbml0aWFsaXplZCk7Ci0gICAgdmFsdWUgPSBhdG9taWNfcmVhZCgmZXYtPnZh bHVlKTsKKyAgICB2YWx1ZSA9IHFlbXVfYXRvbWljX3JlYWQoJmV2LT52YWx1ZSk7CiAgICAgc21w X21iX2FjcXVpcmUoKTsKICAgICBpZiAodmFsdWUgIT0gRVZfU0VUKSB7CiAgICAgICAgIGlmICh2 YWx1ZSA9PSBFVl9GUkVFKSB7CkBAIC0yOTIsNyArMjkyLDcgQEAgdm9pZCBxZW11X2V2ZW50X3dh aXQoUWVtdUV2ZW50ICpldikKICAgICAgICAgICAgICAqIGJlY2F1c2UgdGhlcmUgY2Fubm90IGJl IGEgY29uY3VyZW50IGJ1c3ktPmZyZWUgdHJhbnNpdGlvbi4KICAgICAgICAgICAgICAqIEFmdGVy IHRoZSBDQVMsIHRoZSBldmVudCB3aWxsIGJlIGVpdGhlciBzZXQgb3IgYnVzeS4KICAgICAgICAg ICAgICAqLwotICAgICAgICAgICAgaWYgKGF0b21pY19jbXB4Y2hnKCZldi0+dmFsdWUsIEVWX0ZS RUUsIEVWX0JVU1kpID09IEVWX1NFVCkgeworICAgICAgICAgICAgaWYgKHFlbXVfYXRvbWljX2Nt cHhjaGcoJmV2LT52YWx1ZSwgRVZfRlJFRSwgRVZfQlVTWSkgPT0gRVZfU0VUKSB7CiAgICAgICAg ICAgICAgICAgdmFsdWUgPSBFVl9TRVQ7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg ICAgICAgIHZhbHVlID0gRVZfQlVTWTsKZGlmZiAtLWdpdCBhL3V0aWwvcWVtdS10aW1lci5jIGIv dXRpbC9xZW11LXRpbWVyLmMKaW5kZXggODc4ZDgwZmQ1ZS4uYTcwYzAzZmM1OSAxMDA2NDQKLS0t IGEvdXRpbC9xZW11LXRpbWVyLmMKKysrIGIvdXRpbC9xZW11LXRpbWVyLmMKQEAgLTE3MCw3ICsx NzAsNyBAQCB2b2lkIHFlbXVfY2xvY2tfZW5hYmxlKFFFTVVDbG9ja1R5cGUgdHlwZSwgYm9vbCBl bmFibGVkKQogCiBib29sIHRpbWVybGlzdF9oYXNfdGltZXJzKFFFTVVUaW1lckxpc3QgKnRpbWVy X2xpc3QpCiB7Ci0gICAgcmV0dXJuICEhYXRvbWljX3JlYWQoJnRpbWVyX2xpc3QtPmFjdGl2ZV90 aW1lcnMpOworICAgIHJldHVybiAhIXFlbXVfYXRvbWljX3JlYWQoJnRpbWVyX2xpc3QtPmFjdGl2 ZV90aW1lcnMpOwogfQogCiBib29sIHFlbXVfY2xvY2tfaGFzX3RpbWVycyhRRU1VQ2xvY2tUeXBl IHR5cGUpCkBAIC0xODMsNyArMTgzLDcgQEAgYm9vbCB0aW1lcmxpc3RfZXhwaXJlZChRRU1VVGlt ZXJMaXN0ICp0aW1lcl9saXN0KQogewogICAgIGludDY0X3QgZXhwaXJlX3RpbWU7CiAKLSAgICBp ZiAoIWF0b21pY19yZWFkKCZ0aW1lcl9saXN0LT5hY3RpdmVfdGltZXJzKSkgeworICAgIGlmICgh cWVtdV9hdG9taWNfcmVhZCgmdGltZXJfbGlzdC0+YWN0aXZlX3RpbWVycykpIHsKICAgICAgICAg cmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMjEzLDcgKzIxMyw3IEBAIGludDY0X3QgdGltZXJs aXN0X2RlYWRsaW5lX25zKFFFTVVUaW1lckxpc3QgKnRpbWVyX2xpc3QpCiAgICAgaW50NjRfdCBk ZWx0YTsKICAgICBpbnQ2NF90IGV4cGlyZV90aW1lOwogCi0gICAgaWYgKCFhdG9taWNfcmVhZCgm dGltZXJfbGlzdC0+YWN0aXZlX3RpbWVycykpIHsKKyAgICBpZiAoIXFlbXVfYXRvbWljX3JlYWQo JnRpbWVyX2xpc3QtPmFjdGl2ZV90aW1lcnMpKSB7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9 CiAKQEAgLTM4NSw3ICszODUsNyBAQCBzdGF0aWMgdm9pZCB0aW1lcl9kZWxfbG9ja2VkKFFFTVVU aW1lckxpc3QgKnRpbWVyX2xpc3QsIFFFTVVUaW1lciAqdHMpCiAgICAgICAgIGlmICghdCkKICAg ICAgICAgICAgIGJyZWFrOwogICAgICAgICBpZiAodCA9PSB0cykgewotICAgICAgICAgICAgYXRv bWljX3NldChwdCwgdC0+bmV4dCk7CisgICAgICAgICAgICBxZW11X2F0b21pY19zZXQocHQsIHQt Pm5leHQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgcHQgPSAmdC0+ bmV4dDsKQEAgLTQwOCw3ICs0MDgsNyBAQCBzdGF0aWMgYm9vbCB0aW1lcl9tb2RfbnNfbG9ja2Vk KFFFTVVUaW1lckxpc3QgKnRpbWVyX2xpc3QsCiAgICAgfQogICAgIHRzLT5leHBpcmVfdGltZSA9 IE1BWChleHBpcmVfdGltZSwgMCk7CiAgICAgdHMtPm5leHQgPSAqcHQ7Ci0gICAgYXRvbWljX3Nl dChwdCwgdHMpOworICAgIHFlbXVfYXRvbWljX3NldChwdCwgdHMpOwogCiAgICAgcmV0dXJuIHB0 ID09ICZ0aW1lcl9saXN0LT5hY3RpdmVfdGltZXJzOwogfQpAQCAtNTAyLDcgKzUwMiw3IEBAIGJv b2wgdGltZXJsaXN0X3J1bl90aW1lcnMoUUVNVVRpbWVyTGlzdCAqdGltZXJfbGlzdCkKICAgICBR RU1VVGltZXJDQiAqY2I7CiAgICAgdm9pZCAqb3BhcXVlOwogCi0gICAgaWYgKCFhdG9taWNfcmVh ZCgmdGltZXJfbGlzdC0+YWN0aXZlX3RpbWVycykpIHsKKyAgICBpZiAoIXFlbXVfYXRvbWljX3Jl YWQoJnRpbWVyX2xpc3QtPmFjdGl2ZV90aW1lcnMpKSB7CiAgICAgICAgIHJldHVybiBmYWxzZTsK ICAgICB9CiAKZGlmZiAtLWdpdCBhL3V0aWwvcWh0LmMgYi91dGlsL3FodC5jCmluZGV4IDY3ZTVk NWI5MTYuLjJjZWRjMWFlMzUgMTAwNjQ0Ci0tLSBhL3V0aWwvcWh0LmMKKysrIGIvdXRpbC9xaHQu YwpAQCAtMTMxLDExICsxMzEsMTEgQEAgc3RhdGljIGlubGluZSB2b2lkIHFodF91bmxvY2soc3Ry dWN0IHFodCAqaHQpCiAKIC8qCiAgKiBOb3RlOiByZWFkaW5nIHBhcnRpYWxseS11cGRhdGVkIHBv aW50ZXJzIGluIEBwb2ludGVycyBjb3VsZCBsZWFkIHRvCi0gKiBzZWdmYXVsdHMuIFdlIHRodXMg YWNjZXNzIHRoZW0gd2l0aCBhdG9taWNfcmVhZC9zZXQ7IHRoaXMgZ3VhcmFudGVlcworICogc2Vn ZmF1bHRzLiBXZSB0aHVzIGFjY2VzcyB0aGVtIHdpdGggcWVtdV9hdG9taWNfcmVhZC9zZXQ7IHRo aXMgZ3VhcmFudGVlcwogICogdGhhdCB0aGUgY29tcGlsZXIgbWFrZXMgYWxsIHRob3NlIGFjY2Vz c2VzIGF0b21pYy4gV2UgYWxzbyBuZWVkIHRoZQotICogdm9sYXRpbGUtbGlrZSBiZWhhdmlvciBp biBhdG9taWNfcmVhZCwgc2luY2Ugb3RoZXJ3aXNlIHRoZSBjb21waWxlcgorICogdm9sYXRpbGUt bGlrZSBiZWhhdmlvciBpbiBxZW11X2F0b21pY19yZWFkLCBzaW5jZSBvdGhlcndpc2UgdGhlIGNv bXBpbGVyCiAgKiBtaWdodCByZWZldGNoIHRoZSBwb2ludGVyLgotICogYXRvbWljX3JlYWQncyBh cmUgb2YgY291cnNlIG5vdCBuZWNlc3Nhcnkgd2hlbiB0aGUgYnVja2V0IGxvY2sgaXMgaGVsZC4K KyAqIHFlbXVfYXRvbWljX3JlYWQncyBhcmUgb2YgY291cnNlIG5vdCBuZWNlc3Nhcnkgd2hlbiB0 aGUgYnVja2V0IGxvY2sgaXMgaGVsZC4KICAqCiAgKiBJZiBib3RoIGh0LT5sb2NrIGFuZCBiLT5s b2NrIGFyZSBncmFiYmVkLCBodC0+bG9jayBzaG91bGQgYWx3YXlzCiAgKiBiZSBncmFiYmVkIGZp cnN0LgpAQCAtMjg2LDcgKzI4Niw3IEBAIHZvaWQgcWh0X21hcF9sb2NrX2J1Y2tldHNfX25vX3N0 YWxlKHN0cnVjdCBxaHQgKmh0LCBzdHJ1Y3QgcWh0X21hcCAqKnBtYXApCiB7CiAgICAgc3RydWN0 IHFodF9tYXAgKm1hcDsKIAotICAgIG1hcCA9IGF0b21pY19yY3VfcmVhZCgmaHQtPm1hcCk7Cisg ICAgbWFwID0gcWVtdV9hdG9taWNfcmN1X3JlYWQoJmh0LT5tYXApOwogICAgIHFodF9tYXBfbG9j a19idWNrZXRzKG1hcCk7CiAgICAgaWYgKGxpa2VseSghcWh0X21hcF9pc19zdGFsZV9fbG9ja2Vk KGh0LCBtYXApKSkgewogICAgICAgICAqcG1hcCA9IG1hcDsKQEAgLTMxOCw3ICszMTgsNyBAQCBz dHJ1Y3QgcWh0X2J1Y2tldCAqcWh0X2J1Y2tldF9sb2NrX19ub19zdGFsZShzdHJ1Y3QgcWh0ICpo dCwgdWludDMyX3QgaGFzaCwKICAgICBzdHJ1Y3QgcWh0X2J1Y2tldCAqYjsKICAgICBzdHJ1Y3Qg cWh0X21hcCAqbWFwOwogCi0gICAgbWFwID0gYXRvbWljX3JjdV9yZWFkKCZodC0+bWFwKTsKKyAg ICBtYXAgPSBxZW11X2F0b21pY19yY3VfcmVhZCgmaHQtPm1hcCk7CiAgICAgYiA9IHFodF9tYXBf dG9fYnVja2V0KG1hcCwgaGFzaCk7CiAKICAgICBxZW11X3NwaW5fbG9jaygmYi0+bG9jayk7CkBA IC0zNDAsNyArMzQwLDggQEAgc3RydWN0IHFodF9idWNrZXQgKnFodF9idWNrZXRfbG9ja19fbm9f c3RhbGUoc3RydWN0IHFodCAqaHQsIHVpbnQzMl90IGhhc2gsCiAKIHN0YXRpYyBpbmxpbmUgYm9v bCBxaHRfbWFwX25lZWRzX3Jlc2l6ZShjb25zdCBzdHJ1Y3QgcWh0X21hcCAqbWFwKQogewotICAg IHJldHVybiBhdG9taWNfcmVhZCgmbWFwLT5uX2FkZGVkX2J1Y2tldHMpID4gbWFwLT5uX2FkZGVk X2J1Y2tldHNfdGhyZXNob2xkOworICAgIHJldHVybiBxZW11X2F0b21pY19yZWFkKCZtYXAtPm5f YWRkZWRfYnVja2V0cykgPgorICAgICAgICAgICBtYXAtPm5fYWRkZWRfYnVja2V0c190aHJlc2hv bGQ7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBxaHRfY2hhaW5fZGVzdHJveShjb25zdCBzdHJ1 Y3QgcWh0X2J1Y2tldCAqaGVhZCkKQEAgLTQwNCw3ICs0MDUsNyBAQCB2b2lkIHFodF9pbml0KHN0 cnVjdCBxaHQgKmh0LCBxaHRfY21wX2Z1bmNfdCBjbXAsIHNpemVfdCBuX2VsZW1zLAogICAgIGh0 LT5tb2RlID0gbW9kZTsKICAgICBxZW11X211dGV4X2luaXQoJmh0LT5sb2NrKTsKICAgICBtYXAg PSBxaHRfbWFwX2NyZWF0ZShuX2J1Y2tldHMpOwotICAgIGF0b21pY19yY3Vfc2V0KCZodC0+bWFw LCBtYXApOworICAgIHFlbXVfYXRvbWljX3JjdV9zZXQoJmh0LT5tYXAsIG1hcCk7CiB9CiAKIC8q IGNhbGwgb25seSB3aGVuIHRoZXJlIGFyZSBubyByZWFkZXJzL3dyaXRlcnMgbGVmdCAqLwpAQCAt NDI1LDggKzQyNiw4IEBAIHN0YXRpYyB2b2lkIHFodF9idWNrZXRfcmVzZXRfX2xvY2tlZChzdHJ1 Y3QgcWh0X2J1Y2tldCAqaGVhZCkKICAgICAgICAgICAgIGlmIChiLT5wb2ludGVyc1tpXSA9PSBO VUxMKSB7CiAgICAgICAgICAgICAgICAgZ290byBkb25lOwogICAgICAgICAgICAgfQotICAgICAg ICAgICAgYXRvbWljX3NldCgmYi0+aGFzaGVzW2ldLCAwKTsKLSAgICAgICAgICAgIGF0b21pY19z ZXQoJmItPnBvaW50ZXJzW2ldLCBOVUxMKTsKKyAgICAgICAgICAgIHFlbXVfYXRvbWljX3NldCgm Yi0+aGFzaGVzW2ldLCAwKTsKKyAgICAgICAgICAgIHFlbXVfYXRvbWljX3NldCgmYi0+cG9pbnRl cnNbaV0sIE5VTEwpOwogICAgICAgICB9CiAgICAgICAgIGIgPSBiLT5uZXh0OwogICAgIH0gd2hp bGUgKGIpOwpAQCAtNDkyLDE5ICs0OTMsMTkgQEAgdm9pZCAqcWh0X2RvX2xvb2t1cChjb25zdCBz dHJ1Y3QgcWh0X2J1Y2tldCAqaGVhZCwgcWh0X2xvb2t1cF9mdW5jX3QgZnVuYywKIAogICAgIGRv IHsKICAgICAgICAgZm9yIChpID0gMDsgaSA8IFFIVF9CVUNLRVRfRU5UUklFUzsgaSsrKSB7Ci0g ICAgICAgICAgICBpZiAoYXRvbWljX3JlYWQoJmItPmhhc2hlc1tpXSkgPT0gaGFzaCkgeworICAg ICAgICAgICAgaWYgKHFlbXVfYXRvbWljX3JlYWQoJmItPmhhc2hlc1tpXSkgPT0gaGFzaCkgewog ICAgICAgICAgICAgICAgIC8qIFRoZSBwb2ludGVyIGlzIGRlcmVmZXJlbmNlZCBiZWZvcmUgc2Vx bG9ja19yZWFkX3JldHJ5LAogICAgICAgICAgICAgICAgICAqIHNvICh1bmxpa2UgcWh0X2luc2Vy dF9fbG9ja2VkKSB3ZSBuZWVkIHRvIHVzZQotICAgICAgICAgICAgICAgICAqIGF0b21pY19yY3Vf cmVhZCBoZXJlLgorICAgICAgICAgICAgICAgICAqIHFlbXVfYXRvbWljX3JjdV9yZWFkIGhlcmUu CiAgICAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgdm9pZCAqcCA9IGF0b21pY19y Y3VfcmVhZCgmYi0+cG9pbnRlcnNbaV0pOworICAgICAgICAgICAgICAgIHZvaWQgKnAgPSBxZW11 X2F0b21pY19yY3VfcmVhZCgmYi0+cG9pbnRlcnNbaV0pOwogCiAgICAgICAgICAgICAgICAgaWYg KGxpa2VseShwKSAmJiBsaWtlbHkoZnVuYyhwLCB1c2VycCkpKSB7CiAgICAgICAgICAgICAgICAg ICAgIHJldHVybiBwOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAg fQotICAgICAgICBiID0gYXRvbWljX3JjdV9yZWFkKCZiLT5uZXh0KTsKKyAgICAgICAgYiA9IHFl bXVfYXRvbWljX3JjdV9yZWFkKCZiLT5uZXh0KTsKICAgICB9IHdoaWxlIChiKTsKIAogICAgIHJl dHVybiBOVUxMOwpAQCAtNTMyLDcgKzUzMyw3IEBAIHZvaWQgKnFodF9sb29rdXBfY3VzdG9tKGNv bnN0IHN0cnVjdCBxaHQgKmh0LCBjb25zdCB2b2lkICp1c2VycCwgdWludDMyX3QgaGFzaCwKICAg ICB1bnNpZ25lZCBpbnQgdmVyc2lvbjsKICAgICB2b2lkICpyZXQ7CiAKLSAgICBtYXAgPSBhdG9t aWNfcmN1X3JlYWQoJmh0LT5tYXApOworICAgIG1hcCA9IHFlbXVfYXRvbWljX3JjdV9yZWFkKCZo dC0+bWFwKTsKICAgICBiID0gcWh0X21hcF90b19idWNrZXQobWFwLCBoYXNoKTsKIAogICAgIHZl cnNpb24gPSBzZXFsb2NrX3JlYWRfYmVnaW4oJmItPnNlcXVlbmNlKTsKQEAgLTU4NCw3ICs1ODUs NyBAQCBzdGF0aWMgdm9pZCAqcWh0X2luc2VydF9fbG9ja2VkKGNvbnN0IHN0cnVjdCBxaHQgKmh0 LCBzdHJ1Y3QgcWh0X21hcCAqbWFwLAogICAgIG1lbXNldChiLCAwLCBzaXplb2YoKmIpKTsKICAg ICBuZXcgPSBiOwogICAgIGkgPSAwOwotICAgIGF0b21pY19pbmMoJm1hcC0+bl9hZGRlZF9idWNr ZXRzKTsKKyAgICBxZW11X2F0b21pY19pbmMoJm1hcC0+bl9hZGRlZF9idWNrZXRzKTsKICAgICBp ZiAodW5saWtlbHkocWh0X21hcF9uZWVkc19yZXNpemUobWFwKSkgJiYgbmVlZHNfcmVzaXplKSB7 CiAgICAgICAgICpuZWVkc19yZXNpemUgPSB0cnVlOwogICAgIH0KQEAgLTU5MywxMSArNTk0LDEx IEBAIHN0YXRpYyB2b2lkICpxaHRfaW5zZXJ0X19sb2NrZWQoY29uc3Qgc3RydWN0IHFodCAqaHQs IHN0cnVjdCBxaHRfbWFwICptYXAsCiAgICAgLyogZm91bmQgYW4gZW1wdHkga2V5OiBhY3F1aXJl IHRoZSBzZXFsb2NrIGFuZCB3cml0ZSAqLwogICAgIHNlcWxvY2tfd3JpdGVfYmVnaW4oJmhlYWQt PnNlcXVlbmNlKTsKICAgICBpZiAobmV3KSB7Ci0gICAgICAgIGF0b21pY19yY3Vfc2V0KCZwcmV2 LT5uZXh0LCBiKTsKKyAgICAgICAgcWVtdV9hdG9taWNfcmN1X3NldCgmcHJldi0+bmV4dCwgYik7 CiAgICAgfQogICAgIC8qIHNtcF93bWIoKSBpbXBsaWNpdCBpbiBzZXFsb2NrX3dyaXRlX2JlZ2lu LiAgKi8KLSAgICBhdG9taWNfc2V0KCZiLT5oYXNoZXNbaV0sIGhhc2gpOwotICAgIGF0b21pY19z ZXQoJmItPnBvaW50ZXJzW2ldLCBwKTsKKyAgICBxZW11X2F0b21pY19zZXQoJmItPmhhc2hlc1tp XSwgaGFzaCk7CisgICAgcWVtdV9hdG9taWNfc2V0KCZiLT5wb2ludGVyc1tpXSwgcCk7CiAgICAg c2VxbG9ja193cml0ZV9lbmQoJmhlYWQtPnNlcXVlbmNlKTsKICAgICByZXR1cm4gTlVMTDsKIH0K QEAgLTY2OCwxMSArNjY5LDExIEBAIHFodF9lbnRyeV9tb3ZlKHN0cnVjdCBxaHRfYnVja2V0ICp0 bywgaW50IGksIHN0cnVjdCBxaHRfYnVja2V0ICpmcm9tLCBpbnQgaikKICAgICBxaHRfZGVidWdf YXNzZXJ0KHRvLT5wb2ludGVyc1tpXSk7CiAgICAgcWh0X2RlYnVnX2Fzc2VydChmcm9tLT5wb2lu dGVyc1tqXSk7CiAKLSAgICBhdG9taWNfc2V0KCZ0by0+aGFzaGVzW2ldLCBmcm9tLT5oYXNoZXNb al0pOwotICAgIGF0b21pY19zZXQoJnRvLT5wb2ludGVyc1tpXSwgZnJvbS0+cG9pbnRlcnNbal0p OworICAgIHFlbXVfYXRvbWljX3NldCgmdG8tPmhhc2hlc1tpXSwgZnJvbS0+aGFzaGVzW2pdKTsK KyAgICBxZW11X2F0b21pY19zZXQoJnRvLT5wb2ludGVyc1tpXSwgZnJvbS0+cG9pbnRlcnNbal0p OwogCi0gICAgYXRvbWljX3NldCgmZnJvbS0+aGFzaGVzW2pdLCAwKTsKLSAgICBhdG9taWNfc2V0 KCZmcm9tLT5wb2ludGVyc1tqXSwgTlVMTCk7CisgICAgcWVtdV9hdG9taWNfc2V0KCZmcm9tLT5o YXNoZXNbal0sIDApOworICAgIHFlbXVfYXRvbWljX3NldCgmZnJvbS0+cG9pbnRlcnNbal0sIE5V TEwpOwogfQogCiAvKgpAQCAtNjg3LDcgKzY4OCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBxaHRf YnVja2V0X3JlbW92ZV9lbnRyeShzdHJ1Y3QgcWh0X2J1Y2tldCAqb3JpZywgaW50IHBvcykKIAog ICAgIGlmIChxaHRfZW50cnlfaXNfbGFzdChvcmlnLCBwb3MpKSB7CiAgICAgICAgIG9yaWctPmhh c2hlc1twb3NdID0gMDsKLSAgICAgICAgYXRvbWljX3NldCgmb3JpZy0+cG9pbnRlcnNbcG9zXSwg TlVMTCk7CisgICAgICAgIHFlbXVfYXRvbWljX3NldCgmb3JpZy0+cG9pbnRlcnNbcG9zXSwgTlVM TCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgZG8gewpAQCAtODAzLDcgKzgwNCw3IEBA IGRvX3FodF9pdGVyKHN0cnVjdCBxaHQgKmh0LCBjb25zdCBzdHJ1Y3QgcWh0X2l0ZXIgKml0ZXIs IHZvaWQgKnVzZXJwKQogewogICAgIHN0cnVjdCBxaHRfbWFwICptYXA7CiAKLSAgICBtYXAgPSBh dG9taWNfcmN1X3JlYWQoJmh0LT5tYXApOworICAgIG1hcCA9IHFlbXVfYXRvbWljX3JjdV9yZWFk KCZodC0+bWFwKTsKICAgICBxaHRfbWFwX2xvY2tfYnVja2V0cyhtYXApOwogICAgIHFodF9tYXBf aXRlcl9fYWxsX2xvY2tlZChtYXAsIGl0ZXIsIHVzZXJwKTsKICAgICBxaHRfbWFwX3VubG9ja19i dWNrZXRzKG1hcCk7CkBAIC04NzYsNyArODc3LDcgQEAgc3RhdGljIHZvaWQgcWh0X2RvX3Jlc2l6 ZV9yZXNldChzdHJ1Y3QgcWh0ICpodCwgc3RydWN0IHFodF9tYXAgKm5ldywgYm9vbCByZXNldCkK ICAgICBxaHRfbWFwX2l0ZXJfX2FsbF9sb2NrZWQob2xkLCAmaXRlciwgJmRhdGEpOwogICAgIHFo dF9tYXBfZGVidWdfX2FsbF9sb2NrZWQobmV3KTsKIAotICAgIGF0b21pY19yY3Vfc2V0KCZodC0+ bWFwLCBuZXcpOworICAgIHFlbXVfYXRvbWljX3JjdV9zZXQoJmh0LT5tYXAsIG5ldyk7CiAgICAg cWh0X21hcF91bmxvY2tfYnVja2V0cyhvbGQpOwogICAgIGNhbGxfcmN1KG9sZCwgcWh0X21hcF9k ZXN0cm95LCByY3UpOwogfQpAQCAtOTA1LDcgKzkwNiw3IEBAIHZvaWQgcWh0X3N0YXRpc3RpY3Nf aW5pdChjb25zdCBzdHJ1Y3QgcWh0ICpodCwgc3RydWN0IHFodF9zdGF0cyAqc3RhdHMpCiAgICAg Y29uc3Qgc3RydWN0IHFodF9tYXAgKm1hcDsKICAgICBpbnQgaTsKIAotICAgIG1hcCA9IGF0b21p Y19yY3VfcmVhZCgmaHQtPm1hcCk7CisgICAgbWFwID0gcWVtdV9hdG9taWNfcmN1X3JlYWQoJmh0 LT5tYXApOwogCiAgICAgc3RhdHMtPnVzZWRfaGVhZF9idWNrZXRzID0gMDsKICAgICBzdGF0cy0+ ZW50cmllcyA9IDA7CkBAIC05MzMsMTMgKzkzNCwxMyBAQCB2b2lkIHFodF9zdGF0aXN0aWNzX2lu aXQoY29uc3Qgc3RydWN0IHFodCAqaHQsIHN0cnVjdCBxaHRfc3RhdHMgKnN0YXRzKQogICAgICAg ICAgICAgYiA9IGhlYWQ7CiAgICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgICAgZm9yIChq ID0gMDsgaiA8IFFIVF9CVUNLRVRfRU5UUklFUzsgaisrKSB7Ci0gICAgICAgICAgICAgICAgICAg IGlmIChhdG9taWNfcmVhZCgmYi0+cG9pbnRlcnNbal0pID09IE5VTEwpIHsKKyAgICAgICAgICAg ICAgICAgICAgaWYgKHFlbXVfYXRvbWljX3JlYWQoJmItPnBvaW50ZXJzW2pdKSA9PSBOVUxMKSB7 CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICBlbnRyaWVzKys7CiAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgIGJ1Y2tldHMrKzsKLSAgICAgICAgICAgICAgICBiID0gYXRvbWljX3JjdV9yZWFk KCZiLT5uZXh0KTsKKyAgICAgICAgICAgICAgICBiID0gcWVtdV9hdG9taWNfcmN1X3JlYWQoJmIt Pm5leHQpOwogICAgICAgICAgICAgfSB3aGlsZSAoYik7CiAgICAgICAgIH0gd2hpbGUgKHNlcWxv Y2tfcmVhZF9yZXRyeSgmaGVhZC0+c2VxdWVuY2UsIHZlcnNpb24pKTsKIApkaWZmIC0tZ2l0IGEv dXRpbC9xc3AuYyBiL3V0aWwvcXNwLmMKaW5kZXggN2Q1MTQ3ZjFiMi4uMzFlYzJhMjQ4MiAxMDA2 NDQKLS0tIGEvdXRpbC9xc3AuYworKysgYi91dGlsL3FzcC5jCkBAIC0yNDUsMTEgKzI0NSwxMSBA QCBzdGF0aWMgdm9pZCBxc3BfZG9faW5pdCh2b2lkKQogCiBzdGF0aWMgX19hdHRyaWJ1dGVfXygo bm9pbmxpbmUpKSB2b2lkIHFzcF9pbml0X19zbG93cGF0aCh2b2lkKQogewotICAgIGlmIChhdG9t aWNfY21weGNoZygmcXNwX2luaXRpYWxpemluZywgZmFsc2UsIHRydWUpID09IGZhbHNlKSB7Cisg ICAgaWYgKHFlbXVfYXRvbWljX2NtcHhjaGcoJnFzcF9pbml0aWFsaXppbmcsIGZhbHNlLCB0cnVl KSA9PSBmYWxzZSkgewogICAgICAgICBxc3BfZG9faW5pdCgpOwotICAgICAgICBhdG9taWNfc2V0 KCZxc3BfaW5pdGlhbGl6ZWQsIHRydWUpOworICAgICAgICBxZW11X2F0b21pY19zZXQoJnFzcF9p bml0aWFsaXplZCwgdHJ1ZSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgd2hpbGUgKCFhdG9taWNf cmVhZCgmcXNwX2luaXRpYWxpemVkKSkgeworICAgICAgICB3aGlsZSAoIXFlbXVfYXRvbWljX3Jl YWQoJnFzcF9pbml0aWFsaXplZCkpIHsKICAgICAgICAgICAgIGNwdV9yZWxheCgpOwogICAgICAg ICB9CiAgICAgfQpAQCAtMjU4LDcgKzI1OCw3IEBAIHN0YXRpYyBfX2F0dHJpYnV0ZV9fKChub2lu bGluZSkpIHZvaWQgcXNwX2luaXRfX3Nsb3dwYXRoKHZvaWQpCiAvKiBxc3BfaW5pdCgpIG11c3Qg YmUgY2FsbGVkIGZyb20gX2FsbF8gZXhwb3J0ZWQgZnVuY3Rpb25zICovCiBzdGF0aWMgaW5saW5l IHZvaWQgcXNwX2luaXQodm9pZCkKIHsKLSAgICBpZiAobGlrZWx5KGF0b21pY19yZWFkKCZxc3Bf aW5pdGlhbGl6ZWQpKSkgeworICAgIGlmIChsaWtlbHkocWVtdV9hdG9taWNfcmVhZCgmcXNwX2lu aXRpYWxpemVkKSkpIHsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBxc3BfaW5pdF9fc2xv d3BhdGgoKTsKQEAgLTM0Niw5ICszNDYsOSBAQCBzdGF0aWMgUVNQRW50cnkgKnFzcF9lbnRyeV9n ZXQoY29uc3Qgdm9pZCAqb2JqLCBjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwKICAqLwogc3Rh dGljIGlubGluZSB2b2lkIGRvX3FzcF9lbnRyeV9yZWNvcmQoUVNQRW50cnkgKmUsIGludDY0X3Qg ZGVsdGEsIGJvb2wgYWNxKQogewotICAgIGF0b21pY19zZXRfdTY0KCZlLT5ucywgZS0+bnMgKyBk ZWx0YSk7CisgICAgcWVtdV9hdG9taWNfc2V0X3U2NCgmZS0+bnMsIGUtPm5zICsgZGVsdGEpOwog ICAgIGlmIChhY3EpIHsKLSAgICAgICAgYXRvbWljX3NldF91NjQoJmUtPm5fYWNxcywgZS0+bl9h Y3FzICsgMSk7CisgICAgICAgIHFlbXVfYXRvbWljX3NldF91NjQoJmUtPm5fYWNxcywgZS0+bl9h Y3FzICsgMSk7CiAgICAgfQogfQogCkBAIC00MzIsMjkgKzQzMiwyOSBAQCBxc3BfY29uZF90aW1l ZHdhaXQoUWVtdUNvbmQgKmNvbmQsIFFlbXVNdXRleCAqbXV0ZXgsIGludCBtcywKIAogYm9vbCBx c3BfaXNfZW5hYmxlZCh2b2lkKQogewotICAgIHJldHVybiBhdG9taWNfcmVhZCgmcWVtdV9tdXRl eF9sb2NrX2Z1bmMpID09IHFzcF9tdXRleF9sb2NrOworICAgIHJldHVybiBxZW11X2F0b21pY19y ZWFkKCZxZW11X211dGV4X2xvY2tfZnVuYykgPT0gcXNwX211dGV4X2xvY2s7CiB9CiAKIHZvaWQg cXNwX2VuYWJsZSh2b2lkKQogewotICAgIGF0b21pY19zZXQoJnFlbXVfbXV0ZXhfbG9ja19mdW5j LCBxc3BfbXV0ZXhfbG9jayk7Ci0gICAgYXRvbWljX3NldCgmcWVtdV9tdXRleF90cnlsb2NrX2Z1 bmMsIHFzcF9tdXRleF90cnlsb2NrKTsKLSAgICBhdG9taWNfc2V0KCZxZW11X2JxbF9tdXRleF9s b2NrX2Z1bmMsIHFzcF9icWxfbXV0ZXhfbG9jayk7Ci0gICAgYXRvbWljX3NldCgmcWVtdV9yZWNf bXV0ZXhfbG9ja19mdW5jLCBxc3BfcmVjX211dGV4X2xvY2spOwotICAgIGF0b21pY19zZXQoJnFl bXVfcmVjX211dGV4X3RyeWxvY2tfZnVuYywgcXNwX3JlY19tdXRleF90cnlsb2NrKTsKLSAgICBh dG9taWNfc2V0KCZxZW11X2NvbmRfd2FpdF9mdW5jLCBxc3BfY29uZF93YWl0KTsKLSAgICBhdG9t aWNfc2V0KCZxZW11X2NvbmRfdGltZWR3YWl0X2Z1bmMsIHFzcF9jb25kX3RpbWVkd2FpdCk7Cisg ICAgcWVtdV9hdG9taWNfc2V0KCZxZW11X211dGV4X2xvY2tfZnVuYywgcXNwX211dGV4X2xvY2sp OworICAgIHFlbXVfYXRvbWljX3NldCgmcWVtdV9tdXRleF90cnlsb2NrX2Z1bmMsIHFzcF9tdXRl eF90cnlsb2NrKTsKKyAgICBxZW11X2F0b21pY19zZXQoJnFlbXVfYnFsX211dGV4X2xvY2tfZnVu YywgcXNwX2JxbF9tdXRleF9sb2NrKTsKKyAgICBxZW11X2F0b21pY19zZXQoJnFlbXVfcmVjX211 dGV4X2xvY2tfZnVuYywgcXNwX3JlY19tdXRleF9sb2NrKTsKKyAgICBxZW11X2F0b21pY19zZXQo JnFlbXVfcmVjX211dGV4X3RyeWxvY2tfZnVuYywgcXNwX3JlY19tdXRleF90cnlsb2NrKTsKKyAg ICBxZW11X2F0b21pY19zZXQoJnFlbXVfY29uZF93YWl0X2Z1bmMsIHFzcF9jb25kX3dhaXQpOwor ICAgIHFlbXVfYXRvbWljX3NldCgmcWVtdV9jb25kX3RpbWVkd2FpdF9mdW5jLCBxc3BfY29uZF90 aW1lZHdhaXQpOwogfQogCiB2b2lkIHFzcF9kaXNhYmxlKHZvaWQpCiB7Ci0gICAgYXRvbWljX3Nl dCgmcWVtdV9tdXRleF9sb2NrX2Z1bmMsIHFlbXVfbXV0ZXhfbG9ja19pbXBsKTsKLSAgICBhdG9t aWNfc2V0KCZxZW11X211dGV4X3RyeWxvY2tfZnVuYywgcWVtdV9tdXRleF90cnlsb2NrX2ltcGwp OwotICAgIGF0b21pY19zZXQoJnFlbXVfYnFsX211dGV4X2xvY2tfZnVuYywgcWVtdV9tdXRleF9s b2NrX2ltcGwpOwotICAgIGF0b21pY19zZXQoJnFlbXVfcmVjX211dGV4X2xvY2tfZnVuYywgcWVt dV9yZWNfbXV0ZXhfbG9ja19pbXBsKTsKLSAgICBhdG9taWNfc2V0KCZxZW11X3JlY19tdXRleF90 cnlsb2NrX2Z1bmMsIHFlbXVfcmVjX211dGV4X3RyeWxvY2tfaW1wbCk7Ci0gICAgYXRvbWljX3Nl dCgmcWVtdV9jb25kX3dhaXRfZnVuYywgcWVtdV9jb25kX3dhaXRfaW1wbCk7Ci0gICAgYXRvbWlj X3NldCgmcWVtdV9jb25kX3RpbWVkd2FpdF9mdW5jLCBxZW11X2NvbmRfdGltZWR3YWl0X2ltcGwp OworICAgIHFlbXVfYXRvbWljX3NldCgmcWVtdV9tdXRleF9sb2NrX2Z1bmMsIHFlbXVfbXV0ZXhf bG9ja19pbXBsKTsKKyAgICBxZW11X2F0b21pY19zZXQoJnFlbXVfbXV0ZXhfdHJ5bG9ja19mdW5j LCBxZW11X211dGV4X3RyeWxvY2tfaW1wbCk7CisgICAgcWVtdV9hdG9taWNfc2V0KCZxZW11X2Jx bF9tdXRleF9sb2NrX2Z1bmMsIHFlbXVfbXV0ZXhfbG9ja19pbXBsKTsKKyAgICBxZW11X2F0b21p Y19zZXQoJnFlbXVfcmVjX211dGV4X2xvY2tfZnVuYywgcWVtdV9yZWNfbXV0ZXhfbG9ja19pbXBs KTsKKyAgICBxZW11X2F0b21pY19zZXQoJnFlbXVfcmVjX211dGV4X3RyeWxvY2tfZnVuYywgcWVt dV9yZWNfbXV0ZXhfdHJ5bG9ja19pbXBsKTsKKyAgICBxZW11X2F0b21pY19zZXQoJnFlbXVfY29u ZF93YWl0X2Z1bmMsIHFlbXVfY29uZF93YWl0X2ltcGwpOworICAgIHFlbXVfYXRvbWljX3NldCgm cWVtdV9jb25kX3RpbWVkd2FpdF9mdW5jLCBxZW11X2NvbmRfdGltZWR3YWl0X2ltcGwpOwogfQog CiBzdGF0aWMgZ2ludCBxc3BfdHJlZV9jbXAoZ2NvbnN0cG9pbnRlciBhcCwgZ2NvbnN0cG9pbnRl ciBicCwgZ3BvaW50ZXIgdXApCkBAIC01MzgsOCArNTM4LDggQEAgc3RhdGljIHZvaWQgcXNwX2Fn Z3JlZ2F0ZSh2b2lkICpwLCB1aW50MzJfdCBoLCB2b2lkICp1cCkKICAgICAgKiBUaGUgZW50cnkg aXMgaW4gdGhlIGdsb2JhbCBoYXNoIHRhYmxlOyByZWFkIGZyb20gaXQgYXRvbWljYWxseSAoYXMg aW4KICAgICAgKiAicmVhZCBvbmNlIikuCiAgICAgICovCi0gICAgYWdnLT5ucyArPSBhdG9taWNf cmVhZF91NjQoJmUtPm5zKTsKLSAgICBhZ2ctPm5fYWNxcyArPSBhdG9taWNfcmVhZF91NjQoJmUt Pm5fYWNxcyk7CisgICAgYWdnLT5ucyArPSBxZW11X2F0b21pY19yZWFkX3U2NCgmZS0+bnMpOwor ICAgIGFnZy0+bl9hY3FzICs9IHFlbXVfYXRvbWljX3JlYWRfdTY0KCZlLT5uX2FjcXMpOwogfQog CiBzdGF0aWMgdm9pZCBxc3BfaXRlcl9kaWZmKHZvaWQgKnAsIHVpbnQzMl90IGhhc2gsIHZvaWQg Kmh0cCkKQEAgLTYxMCw3ICs2MTAsNyBAQCBzdGF0aWMgdm9pZCBxc3BfbWt0cmVlKEdUcmVlICp0 cmVlLCBib29sIGNhbGxzaXRlX2NvYWxlc2NlKQogICAgICAqIHdpdGggdGhlIHNuYXBzaG90Lgog ICAgICAqLwogICAgIFdJVEhfUkNVX1JFQURfTE9DS19HVUFSRCgpIHsKLSAgICAgICAgUVNQU25h cHNob3QgKnNuYXAgPSBhdG9taWNfcmN1X3JlYWQoJnFzcF9zbmFwc2hvdCk7CisgICAgICAgIFFT UFNuYXBzaG90ICpzbmFwID0gcWVtdV9hdG9taWNfcmN1X3JlYWQoJnFzcF9zbmFwc2hvdCk7CiAK ICAgICAgICAgLyogQWdncmVnYXRlIGFsbCByZXN1bHRzIGZyb20gdGhlIGdsb2JhbCBoYXNoIHRh YmxlIGludG8gYSBsb2NhbCBvbmUgKi8KICAgICAgICAgcWh0X2luaXQoJmh0LCBxc3BfZW50cnlf bm9fdGhyZWFkX2NtcCwgUVNQX0lOSVRJQUxfU0laRSwKQEAgLTgwNiw3ICs4MDYsNyBAQCB2b2lk IHFzcF9yZXNldCh2b2lkKQogICAgIHFodF9pdGVyKCZxc3BfaHQsIHFzcF9hZ2dyZWdhdGUsICZu ZXctPmh0KTsKIAogICAgIC8qIHJlcGxhY2UgdGhlIHByZXZpb3VzIHNuYXBzaG90LCBpZiBhbnkg Ki8KLSAgICBvbGQgPSBhdG9taWNfeGNoZygmcXNwX3NuYXBzaG90LCBuZXcpOworICAgIG9sZCA9 IHFlbXVfYXRvbWljX3hjaGcoJnFzcF9zbmFwc2hvdCwgbmV3KTsKICAgICBpZiAob2xkKSB7CiAg ICAgICAgIGNhbGxfcmN1KG9sZCwgcXNwX3NuYXBzaG90X2Rlc3Ryb3ksIHJjdSk7CiAgICAgfQpk aWZmIC0tZ2l0IGEvdXRpbC9yY3UuYyBiL3V0aWwvcmN1LmMKaW5kZXggYzRmZWZhOTMzMy4uOTJh MTRlMGEwZiAxMDA2NDQKLS0tIGEvdXRpbC9yY3UuYworKysgYi91dGlsL3JjdS5jCkBAIC01Nyw3 ICs1Nyw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHJjdV9ncF9vbmdvaW5nKHVuc2lnbmVkIGxvbmcg KmN0cikKIHsKICAgICB1bnNpZ25lZCBsb25nIHY7CiAKLSAgICB2ID0gYXRvbWljX3JlYWQoY3Ry KTsKKyAgICB2ID0gcWVtdV9hdG9taWNfcmVhZChjdHIpOwogICAgIHJldHVybiB2ICYmICh2ICE9 IHJjdV9ncF9jdHIpOwogfQogCkBAIC04MiwxNCArODIsMTQgQEAgc3RhdGljIHZvaWQgd2FpdF9m b3JfcmVhZGVycyh2b2lkKQogICAgICAgICAgKi8KICAgICAgICAgcWVtdV9ldmVudF9yZXNldCgm cmN1X2dwX2V2ZW50KTsKIAotICAgICAgICAvKiBJbnN0ZWFkIG9mIHVzaW5nIGF0b21pY19tYl9z ZXQgZm9yIGluZGV4LT53YWl0aW5nLCBhbmQKLSAgICAgICAgICogYXRvbWljX21iX3JlYWQgZm9y IGluZGV4LT5jdHIsIG1lbW9yeSBiYXJyaWVycyBhcmUgcGxhY2VkCisgICAgICAgIC8qIEluc3Rl YWQgb2YgdXNpbmcgcWVtdV9hdG9taWNfbWJfc2V0IGZvciBpbmRleC0+d2FpdGluZywgYW5kCisg ICAgICAgICAqIHFlbXVfYXRvbWljX21iX3JlYWQgZm9yIGluZGV4LT5jdHIsIG1lbW9yeSBiYXJy aWVycyBhcmUgcGxhY2VkCiAgICAgICAgICAqIG1hbnVhbGx5IHNpbmNlIHdyaXRlcyB0byBkaWZm ZXJlbnQgdGhyZWFkcyBhcmUgaW5kZXBlbmRlbnQuCiAgICAgICAgICAqIHFlbXVfZXZlbnRfcmVz ZXQgaGFzIGFjcXVpcmUgc2VtYW50aWNzLCBzbyBubyBtZW1vcnkgYmFycmllcgogICAgICAgICAg KiBpcyBuZWVkZWQgaGVyZS4KICAgICAgICAgICovCiAgICAgICAgIFFMSVNUX0ZPUkVBQ0goaW5k ZXgsICZyZWdpc3RyeSwgbm9kZSkgewotICAgICAgICAgICAgYXRvbWljX3NldCgmaW5kZXgtPndh aXRpbmcsIHRydWUpOworICAgICAgICAgICAgcWVtdV9hdG9taWNfc2V0KCZpbmRleC0+d2FpdGlu ZywgdHJ1ZSk7CiAgICAgICAgIH0KIAogICAgICAgICAvKiBIZXJlLCBvcmRlciB0aGUgc3RvcmVz IHRvIGluZGV4LT53YWl0aW5nIGJlZm9yZSB0aGUgbG9hZHMgb2YKQEAgLTEwNiw3ICsxMDYsNyBA QCBzdGF0aWMgdm9pZCB3YWl0X2Zvcl9yZWFkZXJzKHZvaWQpCiAgICAgICAgICAgICAgICAgLyog Tm8gbmVlZCBmb3IgbWJfc2V0IGhlcmUsIHdvcnN0IG9mIGFsbCB3ZQogICAgICAgICAgICAgICAg ICAqIGdldCBzb21lIGV4dHJhIGZ1dGV4IHdha2V1cHMuCiAgICAgICAgICAgICAgICAgICovCi0g ICAgICAgICAgICAgICAgYXRvbWljX3NldCgmaW5kZXgtPndhaXRpbmcsIGZhbHNlKTsKKyAgICAg ICAgICAgICAgICBxZW11X2F0b21pY19zZXQoJmluZGV4LT53YWl0aW5nLCBmYWxzZSk7CiAgICAg ICAgICAgICB9CiAgICAgICAgIH0KIApAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQgc3luY2hyb25p emVfcmN1KHZvaWQpCiAKICAgICBRRU1VX0xPQ0tfR1VBUkQoJnJjdV9yZWdpc3RyeV9sb2NrKTsK ICAgICBpZiAoIVFMSVNUX0VNUFRZKCZyZWdpc3RyeSkpIHsKLSAgICAgICAgLyogSW4gZWl0aGVy IGNhc2UsIHRoZSBhdG9taWNfbWJfc2V0IGJlbG93IGJsb2NrcyBzdG9yZXMgdGhhdCBmcmVlCisg ICAgICAgIC8qIEluIGVpdGhlciBjYXNlLCB0aGUgcWVtdV9hdG9taWNfbWJfc2V0IGJlbG93IGJs b2NrcyBzdG9yZXMgdGhhdCBmcmVlCiAgICAgICAgICAqIG9sZCBSQ1UtcHJvdGVjdGVkIHBvaW50 ZXJzLgogICAgICAgICAgKi8KICAgICAgICAgaWYgKHNpemVvZihyY3VfZ3BfY3RyKSA8IDgpIHsK QEAgLTE2MCwxMiArMTYwLDEyIEBAIHZvaWQgc3luY2hyb25pemVfcmN1KHZvaWQpCiAgICAgICAg ICAgICAgKgogICAgICAgICAgICAgICogU3dpdGNoIHBhcml0eTogMCAtPiAxLCAxIC0+IDAuCiAg ICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIGF0b21pY19tYl9zZXQoJnJjdV9ncF9jdHIsIHJj dV9ncF9jdHIgXiBSQ1VfR1BfQ1RSKTsKKyAgICAgICAgICAgIHFlbXVfYXRvbWljX21iX3NldCgm cmN1X2dwX2N0ciwgcmN1X2dwX2N0ciBeIFJDVV9HUF9DVFIpOwogICAgICAgICAgICAgd2FpdF9m b3JfcmVhZGVycygpOwotICAgICAgICAgICAgYXRvbWljX21iX3NldCgmcmN1X2dwX2N0ciwgcmN1 X2dwX2N0ciBeIFJDVV9HUF9DVFIpOworICAgICAgICAgICAgcWVtdV9hdG9taWNfbWJfc2V0KCZy Y3VfZ3BfY3RyLCByY3VfZ3BfY3RyIF4gUkNVX0dQX0NUUik7CiAgICAgICAgIH0gZWxzZSB7CiAg ICAgICAgICAgICAvKiBJbmNyZW1lbnQgY3VycmVudCBncmFjZSBwZXJpb2QuICAqLwotICAgICAg ICAgICAgYXRvbWljX21iX3NldCgmcmN1X2dwX2N0ciwgcmN1X2dwX2N0ciArIFJDVV9HUF9DVFIp OworICAgICAgICAgICAgcWVtdV9hdG9taWNfbWJfc2V0KCZyY3VfZ3BfY3RyLCByY3VfZ3BfY3Ry ICsgUkNVX0dQX0NUUik7CiAgICAgICAgIH0KIAogICAgICAgICB3YWl0X2Zvcl9yZWFkZXJzKCk7 CkBAIC0xODgsOCArMTg4LDggQEAgc3RhdGljIHZvaWQgZW5xdWV1ZShzdHJ1Y3QgcmN1X2hlYWQg Km5vZGUpCiAgICAgc3RydWN0IHJjdV9oZWFkICoqb2xkX3RhaWw7CiAKICAgICBub2RlLT5uZXh0 ID0gTlVMTDsKLSAgICBvbGRfdGFpbCA9IGF0b21pY194Y2hnKCZ0YWlsLCAmbm9kZS0+bmV4dCk7 Ci0gICAgYXRvbWljX21iX3NldChvbGRfdGFpbCwgbm9kZSk7CisgICAgb2xkX3RhaWwgPSBxZW11 X2F0b21pY194Y2hnKCZ0YWlsLCAmbm9kZS0+bmV4dCk7CisgICAgcWVtdV9hdG9taWNfbWJfc2V0 KG9sZF90YWlsLCBub2RlKTsKIH0KIAogc3RhdGljIHN0cnVjdCByY3VfaGVhZCAqdHJ5X2RlcXVl dWUodm9pZCkKQEAgLTIwMyw3ICsyMDMsNyBAQCByZXRyeToKICAgICAgKiBUaGUgdGFpbCwgYmVj YXVzZSBpdCBpcyB0aGUgZmlyc3Qgc3RlcCBpbiB0aGUgZW5xdWV1aW5nLgogICAgICAqIEl0IGlz IG9ubHkgdGhlIG5leHQgcG9pbnRlcnMgdGhhdCBtaWdodCBiZSBpbmNvbnNpc3RlbnQuCiAgICAg ICovCi0gICAgaWYgKGhlYWQgPT0gJmR1bW15ICYmIGF0b21pY19tYl9yZWFkKCZ0YWlsKSA9PSAm ZHVtbXkubmV4dCkgeworICAgIGlmIChoZWFkID09ICZkdW1teSAmJiBxZW11X2F0b21pY19tYl9y ZWFkKCZ0YWlsKSA9PSAmZHVtbXkubmV4dCkgewogICAgICAgICBhYm9ydCgpOwogICAgIH0KIApA QCAtMjExLDcgKzIxMSw3IEBAIHJldHJ5OgogICAgICAqIHdyb25nIGFuZCB3ZSBuZWVkIHRvIHdh aXQgdW50aWwgaXRzIGVucXVldWVyIGZpbmlzaGVzIHRoZSB1cGRhdGUuCiAgICAgICovCiAgICAg bm9kZSA9IGhlYWQ7Ci0gICAgbmV4dCA9IGF0b21pY19tYl9yZWFkKCZoZWFkLT5uZXh0KTsKKyAg ICBuZXh0ID0gcWVtdV9hdG9taWNfbWJfcmVhZCgmaGVhZC0+bmV4dCk7CiAgICAgaWYgKCFuZXh0 KSB7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KQEAgLTI0MCw3ICsyNDAsNyBAQCBzdGF0 aWMgdm9pZCAqY2FsbF9yY3VfdGhyZWFkKHZvaWQgKm9wYXF1ZSkKIAogICAgIGZvciAoOzspIHsK ICAgICAgICAgaW50IHRyaWVzID0gMDsKLSAgICAgICAgaW50IG4gPSBhdG9taWNfcmVhZCgmcmN1 X2NhbGxfY291bnQpOworICAgICAgICBpbnQgbiA9IHFlbXVfYXRvbWljX3JlYWQoJnJjdV9jYWxs X2NvdW50KTsKIAogICAgICAgICAvKiBIZXVyaXN0aWNhbGx5IHdhaXQgZm9yIGEgZGVjZW50IG51 bWJlciBvZiBjYWxsYmFja3MgdG8gcGlsZSB1cC4KICAgICAgICAgICogRmV0Y2ggcmN1X2NhbGxf Y291bnQgbm93LCB3ZSBvbmx5IG11c3QgcHJvY2VzcyBlbGVtZW50cyB0aGF0IHdlcmUKQEAgLTI1 MCw3ICsyNTAsNyBAQCBzdGF0aWMgdm9pZCAqY2FsbF9yY3VfdGhyZWFkKHZvaWQgKm9wYXF1ZSkK ICAgICAgICAgICAgIGdfdXNsZWVwKDEwMDAwKTsKICAgICAgICAgICAgIGlmIChuID09IDApIHsK ICAgICAgICAgICAgICAgICBxZW11X2V2ZW50X3Jlc2V0KCZyY3VfY2FsbF9yZWFkeV9ldmVudCk7 Ci0gICAgICAgICAgICAgICAgbiA9IGF0b21pY19yZWFkKCZyY3VfY2FsbF9jb3VudCk7CisgICAg ICAgICAgICAgICAgbiA9IHFlbXVfYXRvbWljX3JlYWQoJnJjdV9jYWxsX2NvdW50KTsKICAgICAg ICAgICAgICAgICBpZiAobiA9PSAwKSB7CiAjaWYgZGVmaW5lZChDT05GSUdfTUFMTE9DX1RSSU0p CiAgICAgICAgICAgICAgICAgICAgIG1hbGxvY190cmltKDQgKiAxMDI0ICogMTAyNCk7CkBAIC0y NTgsMTAgKzI1OCwxMCBAQCBzdGF0aWMgdm9pZCAqY2FsbF9yY3VfdGhyZWFkKHZvaWQgKm9wYXF1 ZSkKICAgICAgICAgICAgICAgICAgICAgcWVtdV9ldmVudF93YWl0KCZyY3VfY2FsbF9yZWFkeV9l dmVudCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICAgICAgbiA9 IGF0b21pY19yZWFkKCZyY3VfY2FsbF9jb3VudCk7CisgICAgICAgICAgICBuID0gcWVtdV9hdG9t aWNfcmVhZCgmcmN1X2NhbGxfY291bnQpOwogICAgICAgICB9CiAKLSAgICAgICAgYXRvbWljX3N1 YigmcmN1X2NhbGxfY291bnQsIG4pOworICAgICAgICBxZW11X2F0b21pY19zdWIoJnJjdV9jYWxs X2NvdW50LCBuKTsKICAgICAgICAgc3luY2hyb25pemVfcmN1KCk7CiAgICAgICAgIHFlbXVfbXV0 ZXhfbG9ja19pb3RocmVhZCgpOwogICAgICAgICB3aGlsZSAobiA+IDApIHsKQEAgLTI4OSw3ICsy ODksNyBAQCB2b2lkIGNhbGxfcmN1MShzdHJ1Y3QgcmN1X2hlYWQgKm5vZGUsIHZvaWQgKCpmdW5j KShzdHJ1Y3QgcmN1X2hlYWQgKm5vZGUpKQogewogICAgIG5vZGUtPmZ1bmMgPSBmdW5jOwogICAg IGVucXVldWUobm9kZSk7Ci0gICAgYXRvbWljX2luYygmcmN1X2NhbGxfY291bnQpOworICAgIHFl bXVfYXRvbWljX2luYygmcmN1X2NhbGxfY291bnQpOwogICAgIHFlbXVfZXZlbnRfc2V0KCZyY3Vf Y2FsbF9yZWFkeV9ldmVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL3V0aWwvc3RhdHM2NC5jIGIvdXRp bC9zdGF0czY0LmMKaW5kZXggMzg5YzM2NWE5ZS4uYTkzYzA0ZGNlMCAxMDA2NDQKLS0tIGEvdXRp bC9zdGF0czY0LmMKKysrIGIvdXRpbC9zdGF0czY0LmMKQEAgLTE4LDI3ICsxOCwyNyBAQAogc3Rh dGljIGlubGluZSB2b2lkIHN0YXQ2NF9yZGxvY2soU3RhdDY0ICpzKQogewogICAgIC8qIEtlZXAg b3V0IGluY29taW5nIHdyaXRlcnMgdG8gYXZvaWQgdGhlbSBzdGFydmluZyB1cy4gKi8KLSAgICBh dG9taWNfYWRkKCZzLT5sb2NrLCAyKTsKKyAgICBxZW11X2F0b21pY19hZGQoJnMtPmxvY2ssIDIp OwogCiAgICAgLyogSWYgdGhlcmUgaXMgYSBjb25jdXJyZW50IHdyaXRlciwgd2FpdCBmb3IgaXQu ICAqLwotICAgIHdoaWxlIChhdG9taWNfcmVhZCgmcy0+bG9jaykgJiAxKSB7CisgICAgd2hpbGUg KHFlbXVfYXRvbWljX3JlYWQoJnMtPmxvY2spICYgMSkgewogICAgICAgICBjcHVfcmVsYXgoKTsK ICAgICB9CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzdGF0NjRfcmR1bmxvY2soU3RhdDY0ICpz KQogewotICAgIGF0b21pY19zdWIoJnMtPmxvY2ssIDIpOworICAgIHFlbXVfYXRvbWljX3N1Yigm cy0+bG9jaywgMik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBzdGF0NjRfd3J0cnlsb2NrKFN0 YXQ2NCAqcykKIHsKLSAgICByZXR1cm4gYXRvbWljX2NtcHhjaGcoJnMtPmxvY2ssIDAsIDEpID09 IDA7CisgICAgcmV0dXJuIHFlbXVfYXRvbWljX2NtcHhjaGcoJnMtPmxvY2ssIDAsIDEpID09IDA7 CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzdGF0NjRfd3J1bmxvY2soU3RhdDY0ICpzKQogewot ICAgIGF0b21pY19kZWMoJnMtPmxvY2spOworICAgIHFlbXVfYXRvbWljX2RlYygmcy0+bG9jayk7 CiB9CiAKIHVpbnQ2NF90IHN0YXQ2NF9nZXQoY29uc3QgU3RhdDY0ICpzKQpAQCAtNTAsOCArNTAs OCBAQCB1aW50NjRfdCBzdGF0NjRfZ2V0KGNvbnN0IFN0YXQ2NCAqcykKICAgICAvKiA2NC1iaXQg d3JpdGVzIGFsd2F5cyB0YWtlIHRoZSBsb2NrLCBzbyB3ZSBjYW4gcmVhZCBpbgogICAgICAqIGFu eSBvcmRlci4KICAgICAgKi8KLSAgICBoaWdoID0gYXRvbWljX3JlYWQoJnMtPmhpZ2gpOwotICAg IGxvdyA9IGF0b21pY19yZWFkKCZzLT5sb3cpOworICAgIGhpZ2ggPSBxZW11X2F0b21pY19yZWFk KCZzLT5oaWdoKTsKKyAgICBsb3cgPSBxZW11X2F0b21pY19yZWFkKCZzLT5sb3cpOwogICAgIHN0 YXQ2NF9yZHVubG9jaygoU3RhdDY0ICopcyk7CiAKICAgICByZXR1cm4gKCh1aW50NjRfdCloaWdo IDw8IDMyKSB8IGxvdzsKQEAgLTcwLDkgKzcwLDkgQEAgYm9vbCBzdGF0NjRfYWRkMzJfY2Fycnko U3RhdDY0ICpzLCB1aW50MzJfdCBsb3csIHVpbnQzMl90IGhpZ2gpCiAgICAgICogb3JkZXIgb2Yg b3VyIHVwZGF0ZS4gIEJ5IHVwZGF0aW5nIHMtPmxvdyBmaXJzdCwgd2UgY2FuIGNoZWNrCiAgICAg ICogd2hldGhlciB3ZSBoYXZlIHRvIGNhcnJ5IGludG8gcy0+aGlnaC4KICAgICAgKi8KLSAgICBv bGQgPSBhdG9taWNfZmV0Y2hfYWRkKCZzLT5sb3csIGxvdyk7CisgICAgb2xkID0gcWVtdV9hdG9t aWNfZmV0Y2hfYWRkKCZzLT5sb3csIGxvdyk7CiAgICAgaGlnaCArPSAob2xkICsgbG93KSA8IG9s ZDsKLSAgICBhdG9taWNfYWRkKCZzLT5oaWdoLCBoaWdoKTsKKyAgICBxZW11X2F0b21pY19hZGQo JnMtPmhpZ2gsIGhpZ2gpOwogICAgIHN0YXQ2NF93cnVubG9jayhzKTsKICAgICByZXR1cm4gdHJ1 ZTsKIH0KQEAgLTg3LDggKzg3LDggQEAgYm9vbCBzdGF0NjRfbWluX3Nsb3coU3RhdDY0ICpzLCB1 aW50NjRfdCB2YWx1ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGhpZ2gg PSBhdG9taWNfcmVhZCgmcy0+aGlnaCk7Ci0gICAgbG93ID0gYXRvbWljX3JlYWQoJnMtPmxvdyk7 CisgICAgaGlnaCA9IHFlbXVfYXRvbWljX3JlYWQoJnMtPmhpZ2gpOworICAgIGxvdyA9IHFlbXVf YXRvbWljX3JlYWQoJnMtPmxvdyk7CiAKICAgICBvcmlnID0gKCh1aW50NjRfdCloaWdoIDw8IDMy KSB8IGxvdzsKICAgICBpZiAodmFsdWUgPCBvcmlnKSB7CkBAIC05OCw5ICs5OCw5IEBAIGJvb2wg c3RhdDY0X21pbl9zbG93KFN0YXQ2NCAqcywgdWludDY0X3QgdmFsdWUpCiAgICAgICAgICAqIGVm ZmVjdCBvbiBzdGF0NjRfbWluIGlzIHRoYXQgdGhlIHNsb3cgcGF0aCBtYXkgYmUgdHJpZ2dlcmVk CiAgICAgICAgICAqIHVubmVjZXNzYXJpbHkuCiAgICAgICAgICAqLwotICAgICAgICBhdG9taWNf c2V0KCZzLT5sb3csICh1aW50MzJfdCl2YWx1ZSk7CisgICAgICAgIHFlbXVfYXRvbWljX3NldCgm cy0+bG93LCAodWludDMyX3QpdmFsdWUpOwogICAgICAgICBzbXBfd21iKCk7Ci0gICAgICAgIGF0 b21pY19zZXQoJnMtPmhpZ2gsIHZhbHVlID4+IDMyKTsKKyAgICAgICAgcWVtdV9hdG9taWNfc2V0 KCZzLT5oaWdoLCB2YWx1ZSA+PiAzMik7CiAgICAgfQogICAgIHN0YXQ2NF93cnVubG9jayhzKTsK ICAgICByZXR1cm4gdHJ1ZTsKQEAgLTExNiw4ICsxMTYsOCBAQCBib29sIHN0YXQ2NF9tYXhfc2xv dyhTdGF0NjQgKnMsIHVpbnQ2NF90IHZhbHVlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg fQogCi0gICAgaGlnaCA9IGF0b21pY19yZWFkKCZzLT5oaWdoKTsKLSAgICBsb3cgPSBhdG9taWNf cmVhZCgmcy0+bG93KTsKKyAgICBoaWdoID0gcWVtdV9hdG9taWNfcmVhZCgmcy0+aGlnaCk7Cisg ICAgbG93ID0gcWVtdV9hdG9taWNfcmVhZCgmcy0+bG93KTsKIAogICAgIG9yaWcgPSAoKHVpbnQ2 NF90KWhpZ2ggPDwgMzIpIHwgbG93OwogICAgIGlmICh2YWx1ZSA+IG9yaWcpIHsKQEAgLTEyNyw5 ICsxMjcsOSBAQCBib29sIHN0YXQ2NF9tYXhfc2xvdyhTdGF0NjQgKnMsIHVpbnQ2NF90IHZhbHVl KQogICAgICAgICAgKiBlZmZlY3Qgb24gc3RhdDY0X21heCBpcyB0aGF0IHRoZSBzbG93IHBhdGgg bWF5IGJlIHRyaWdnZXJlZAogICAgICAgICAgKiB1bm5lY2Vzc2FyaWx5LgogICAgICAgICAgKi8K LSAgICAgICAgYXRvbWljX3NldCgmcy0+bG93LCAodWludDMyX3QpdmFsdWUpOworICAgICAgICBx ZW11X2F0b21pY19zZXQoJnMtPmxvdywgKHVpbnQzMl90KXZhbHVlKTsKICAgICAgICAgc21wX3dt YigpOwotICAgICAgICBhdG9taWNfc2V0KCZzLT5oaWdoLCB2YWx1ZSA+PiAzMik7CisgICAgICAg IHFlbXVfYXRvbWljX3NldCgmcy0+aGlnaCwgdmFsdWUgPj4gMzIpOwogICAgIH0KICAgICBzdGF0 NjRfd3J1bmxvY2socyk7CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9kb2NzL2RldmVs L2F0b21pY3MucnN0IGIvZG9jcy9kZXZlbC9hdG9taWNzLnJzdAppbmRleCA0NDVjM2IzNTAzLi4w N2FkOTE2NTRlIDEwMDY0NAotLS0gYS9kb2NzL2RldmVsL2F0b21pY3MucnN0CisrKyBiL2RvY3Mv ZGV2ZWwvYXRvbWljcy5yc3QKQEAgLTIzLDkgKzIzLDkgQEAgcHJvdmlkZXMgbWFjcm9zIHRoYXQg ZmFsbCBpbiB0aHJlZSBjYW1wczoKIAogLSBjb21waWxlciBiYXJyaWVyczogYGBiYXJyaWVyKClg YDsKIAotLSB3ZWFrIGF0b21pYyBhY2Nlc3MgYW5kIG1hbnVhbCBtZW1vcnkgYmFycmllcnM6IGBg YXRvbWljX3JlYWQoKWBgLAotICBgYGF0b21pY19zZXQoKWBgLCBgYHNtcF9ybWIoKWBgLCBgYHNt cF93bWIoKWBgLCBgYHNtcF9tYigpYGAsIGBgc21wX21iX2FjcXVpcmUoKWBgLAotICBgYHNtcF9t Yl9yZWxlYXNlKClgYCwgYGBzbXBfcmVhZF9iYXJyaWVyX2RlcGVuZHMoKWBgOworLSB3ZWFrIGF0 b21pYyBhY2Nlc3MgYW5kIG1hbnVhbCBtZW1vcnkgYmFycmllcnM6IGBgcWVtdV9hdG9taWNfcmVh ZCgpYGAsCisgIGBgcWVtdV9hdG9taWNfc2V0KClgYCwgYGBzbXBfcm1iKClgYCwgYGBzbXBfd21i KClgYCwgYGBzbXBfbWIoKWBgLAorICBgYHNtcF9tYl9hY3F1aXJlKClgYCwgYGBzbXBfbWJfcmVs ZWFzZSgpYGAsIGBgc21wX3JlYWRfYmFycmllcl9kZXBlbmRzKClgYDsKIAogLSBzZXF1ZW50aWFs bHkgY29uc2lzdGVudCBhdG9taWMgYWNjZXNzOiBldmVyeXRoaW5nIGVsc2UuCiAKQEAgLTY3LDIz ICs2NywyMyBAQCBpbiB0aGUgb3JkZXIgc3BlY2lmaWVkIGJ5IGl0cyBwcm9ncmFtIi4KIGBgcWVt dS9hdG9taWMuaGBgIHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcgc2V0IG9mIGF0b21pYyByZWFkLW1v ZGlmeS13cml0ZQogb3BlcmF0aW9uczo6CiAKLSAgICB2b2lkIGF0b21pY19pbmMocHRyKQotICAg IHZvaWQgYXRvbWljX2RlYyhwdHIpCi0gICAgdm9pZCBhdG9taWNfYWRkKHB0ciwgdmFsKQotICAg IHZvaWQgYXRvbWljX3N1YihwdHIsIHZhbCkKLSAgICB2b2lkIGF0b21pY19hbmQocHRyLCB2YWwp Ci0gICAgdm9pZCBhdG9taWNfb3IocHRyLCB2YWwpCisgICAgdm9pZCBxZW11X2F0b21pY19pbmMo cHRyKQorICAgIHZvaWQgcWVtdV9hdG9taWNfZGVjKHB0cikKKyAgICB2b2lkIHFlbXVfYXRvbWlj X2FkZChwdHIsIHZhbCkKKyAgICB2b2lkIHFlbXVfYXRvbWljX3N1YihwdHIsIHZhbCkKKyAgICB2 b2lkIHFlbXVfYXRvbWljX2FuZChwdHIsIHZhbCkKKyAgICB2b2lkIHFlbXVfYXRvbWljX29yKHB0 ciwgdmFsKQogCi0gICAgdHlwZW9mKCpwdHIpIGF0b21pY19mZXRjaF9pbmMocHRyKQotICAgIHR5 cGVvZigqcHRyKSBhdG9taWNfZmV0Y2hfZGVjKHB0cikKLSAgICB0eXBlb2YoKnB0cikgYXRvbWlj X2ZldGNoX2FkZChwdHIsIHZhbCkKLSAgICB0eXBlb2YoKnB0cikgYXRvbWljX2ZldGNoX3N1Yihw dHIsIHZhbCkKLSAgICB0eXBlb2YoKnB0cikgYXRvbWljX2ZldGNoX2FuZChwdHIsIHZhbCkKLSAg ICB0eXBlb2YoKnB0cikgYXRvbWljX2ZldGNoX29yKHB0ciwgdmFsKQotICAgIHR5cGVvZigqcHRy KSBhdG9taWNfZmV0Y2hfeG9yKHB0ciwgdmFsKQotICAgIHR5cGVvZigqcHRyKSBhdG9taWNfZmV0 Y2hfaW5jX25vbnplcm8ocHRyKQotICAgIHR5cGVvZigqcHRyKSBhdG9taWNfeGNoZyhwdHIsIHZh bCkKLSAgICB0eXBlb2YoKnB0cikgYXRvbWljX2NtcHhjaGcocHRyLCBvbGQsIG5ldykKKyAgICB0 eXBlb2YoKnB0cikgcWVtdV9hdG9taWNfZmV0Y2hfaW5jKHB0cikKKyAgICB0eXBlb2YoKnB0cikg cWVtdV9hdG9taWNfZmV0Y2hfZGVjKHB0cikKKyAgICB0eXBlb2YoKnB0cikgcWVtdV9hdG9taWNf ZmV0Y2hfYWRkKHB0ciwgdmFsKQorICAgIHR5cGVvZigqcHRyKSBxZW11X2F0b21pY19mZXRjaF9z dWIocHRyLCB2YWwpCisgICAgdHlwZW9mKCpwdHIpIHFlbXVfYXRvbWljX2ZldGNoX2FuZChwdHIs IHZhbCkKKyAgICB0eXBlb2YoKnB0cikgcWVtdV9hdG9taWNfZmV0Y2hfb3IocHRyLCB2YWwpCisg ICAgdHlwZW9mKCpwdHIpIHFlbXVfYXRvbWljX2ZldGNoX3hvcihwdHIsIHZhbCkKKyAgICB0eXBl b2YoKnB0cikgcWVtdV9hdG9taWNfZmV0Y2hfaW5jX25vbnplcm8ocHRyKQorICAgIHR5cGVvZigq cHRyKSBxZW11X2F0b21pY194Y2hnKHB0ciwgdmFsKQorICAgIHR5cGVvZigqcHRyKSBxZW11X2F0 b21pY19jbXB4Y2hnKHB0ciwgb2xkLCBuZXcpCiAKIGFsbCBvZiB3aGljaCByZXR1cm4gdGhlIG9s ZCB2YWx1ZSBvZiBgYCpwdHJgYC4gIFRoZXNlIG9wZXJhdGlvbnMgYXJlCiBwb2x5bW9ycGhpYzsg dGhleSBvcGVyYXRlIG9uIGFueSB0eXBlIHRoYXQgaXMgYXMgd2lkZSBhcyBhIHBvaW50ZXIgb3IK QEAgLTkxLDE5ICs5MSwxOSBAQCBzbWFsbGVyLgogCiBTaW1pbGFyIG9wZXJhdGlvbnMgcmV0dXJu IHRoZSBuZXcgdmFsdWUgb2YgYGAqcHRyYGA6OgogCi0gICAgdHlwZW9mKCpwdHIpIGF0b21pY19p bmNfZmV0Y2gocHRyKQotICAgIHR5cGVvZigqcHRyKSBhdG9taWNfZGVjX2ZldGNoKHB0cikKLSAg ICB0eXBlb2YoKnB0cikgYXRvbWljX2FkZF9mZXRjaChwdHIsIHZhbCkKLSAgICB0eXBlb2YoKnB0 cikgYXRvbWljX3N1Yl9mZXRjaChwdHIsIHZhbCkKLSAgICB0eXBlb2YoKnB0cikgYXRvbWljX2Fu ZF9mZXRjaChwdHIsIHZhbCkKLSAgICB0eXBlb2YoKnB0cikgYXRvbWljX29yX2ZldGNoKHB0ciwg dmFsKQotICAgIHR5cGVvZigqcHRyKSBhdG9taWNfeG9yX2ZldGNoKHB0ciwgdmFsKQorICAgIHR5 cGVvZigqcHRyKSBxZW11X2F0b21pY19pbmNfZmV0Y2gocHRyKQorICAgIHR5cGVvZigqcHRyKSBx ZW11X2F0b21pY19kZWNfZmV0Y2gocHRyKQorICAgIHR5cGVvZigqcHRyKSBxZW11X2F0b21pY19h ZGRfZmV0Y2gocHRyLCB2YWwpCisgICAgdHlwZW9mKCpwdHIpIHFlbXVfYXRvbWljX3N1Yl9mZXRj aChwdHIsIHZhbCkKKyAgICB0eXBlb2YoKnB0cikgcWVtdV9hdG9taWNfYW5kX2ZldGNoKHB0ciwg dmFsKQorICAgIHR5cGVvZigqcHRyKSBxZW11X2F0b21pY19vcl9mZXRjaChwdHIsIHZhbCkKKyAg ICB0eXBlb2YoKnB0cikgcWVtdV9hdG9taWNfeG9yX2ZldGNoKHB0ciwgdmFsKQogCiBgYHFlbXUv YXRvbWljLmhgYCBhbHNvIHByb3ZpZGVzIGxvYWRzIGFuZCBzdG9yZXMgdGhhdCBjYW5ub3QgYmUg cmVvcmRlcmVkCiB3aXRoIGVhY2ggb3RoZXI6OgogCi0gICAgdHlwZW9mKCpwdHIpIGF0b21pY19t Yl9yZWFkKHB0cikKLSAgICB2b2lkICAgICAgICAgYXRvbWljX21iX3NldChwdHIsIHZhbCkKKyAg ICB0eXBlb2YoKnB0cikgcWVtdV9hdG9taWNfbWJfcmVhZChwdHIpCisgICAgdm9pZCAgICAgICAg IHFlbXVfYXRvbWljX21iX3NldChwdHIsIHZhbCkKIAogSG93ZXZlciB0aGVzZSBkbyBub3QgcHJv dmlkZSBzZXF1ZW50aWFsIGNvbnNpc3RlbmN5IGFuZCwgaW4gcGFydGljdWxhciwKIHRoZXkgZG8g bm90IHBhcnRpY2lwYXRlIGluIHRoZSB0b3RhbCBvcmRlcmluZyBlbmZvcmNlZCBieQpAQCAtMTE1 LDEyICsxMTUsMTIgQEAgZWFzaWVzdCB0byBoYXJkZXN0KToKIAogLSBsaWdodHdlaWdodCBzeW5j aHJvbml6YXRpb24gcHJpbWl0aXZlcyBzdWNoIGFzIGBgUWVtdUV2ZW50YGAKIAotLSBSQ1Ugb3Bl cmF0aW9ucyAoYGBhdG9taWNfcmN1X3JlYWRgYCwgYGBhdG9taWNfcmN1X3NldGBgKSB3aGVuIHB1 Ymxpc2hpbmcKLSAgb3IgYWNjZXNzaW5nIGEgbmV3IHZlcnNpb24gb2YgYSBkYXRhIHN0cnVjdHVy ZQorLSBSQ1Ugb3BlcmF0aW9ucyAoYGBxZW11X2F0b21pY19yY3VfcmVhZGBgLCBgYHFlbXVfYXRv bWljX3JjdV9zZXRgYCkgd2hlbgorICBwdWJsaXNoaW5nIG9yIGFjY2Vzc2luZyBhIG5ldyB2ZXJz aW9uIG9mIGEgZGF0YSBzdHJ1Y3R1cmUKIAotLSBvdGhlciBhdG9taWMgYWNjZXNzZXM6IGBgYXRv bWljX3JlYWRgYCBhbmQgYGBhdG9taWNfbG9hZF9hY3F1aXJlYGAgZm9yCi0gIGxvYWRzLCBgYGF0 b21pY19zZXRgYCBhbmQgYGBhdG9taWNfc3RvcmVfcmVsZWFzZWBgIGZvciBzdG9yZXMsIGBgc21w X21iYGAKLSAgdG8gZm9yYmlkIHJlb3JkZXJpbmcgc3Vic2VxdWVudCBsb2FkcyBiZWZvcmUgYSBz dG9yZS4KKy0gb3RoZXIgYXRvbWljIGFjY2Vzc2VzOiBgYHFlbXVfYXRvbWljX3JlYWRgYCBhbmQg YGBxZW11X2F0b21pY19sb2FkX2FjcXVpcmVgYAorICBmb3IgbG9hZHMsIGBgcWVtdV9hdG9taWNf c2V0YGAgYW5kIGBgcWVtdV9hdG9taWNfc3RvcmVfcmVsZWFzZWBgIGZvciBzdG9yZXMsCisgIGBg c21wX21iYGAgdG8gZm9yYmlkIHJlb3JkZXJpbmcgc3Vic2VxdWVudCBsb2FkcyBiZWZvcmUgYSBz dG9yZS4KIAogCiBXZWFrIGF0b21pYyBhY2Nlc3MgYW5kIG1hbnVhbCBtZW1vcnkgYmFycmllcnMK QEAgLTE0OSwyMiArMTQ5LDIyIEBAIFRoZSBvbmx5IGd1YXJhbnRlZXMgdGhhdCB5b3UgY2FuIHJl bHkgdXBvbiBpbiB0aGlzIGNhc2UgYXJlOgogCiBXaGVuIHVzaW5nIHRoaXMgbW9kZWwsIHZhcmlh YmxlcyBhcmUgYWNjZXNzZWQgd2l0aDoKIAotLSBgYGF0b21pY19yZWFkKClgYCBhbmQgYGBhdG9t aWNfc2V0KClgYDsgdGhlc2UgcHJldmVudCB0aGUgY29tcGlsZXIgZnJvbQotICBvcHRpbWl6aW5n IGFjY2Vzc2VzIG91dCBvZiBleGlzdGVuY2UgYW5kIGNyZWF0aW5nIHVuc29saWNpdGVkCistIGBg cWVtdV9hdG9taWNfcmVhZCgpYGAgYW5kIGBgcWVtdV9hdG9taWNfc2V0KClgYDsgdGhlc2UgcHJl dmVudCB0aGUgY29tcGlsZXIKKyAgZnJvbSBvcHRpbWl6aW5nIGFjY2Vzc2VzIG91dCBvZiBleGlz dGVuY2UgYW5kIGNyZWF0aW5nIHVuc29saWNpdGVkCiAgIGFjY2Vzc2VzLCBidXQgZG8gbm90IG90 aGVyd2lzZSBpbXBvc2UgYW55IG9yZGVyaW5nIG9uIGxvYWRzIGFuZAogICBzdG9yZXM6IGJvdGgg dGhlIGNvbXBpbGVyIGFuZCB0aGUgcHJvY2Vzc29yIGFyZSBmcmVlIHRvIHJlb3JkZXIKICAgdGhl bS4KIAotLSBgYGF0b21pY19sb2FkX2FjcXVpcmUoKWBgLCB3aGljaCBndWFyYW50ZWVzIHRoZSBM T0FEIHRvIGFwcGVhciB0bworLSBgYHFlbXVfYXRvbWljX2xvYWRfYWNxdWlyZSgpYGAsIHdoaWNo IGd1YXJhbnRlZXMgdGhlIExPQUQgdG8gYXBwZWFyIHRvCiAgIGhhcHBlbiwgd2l0aCByZXNwZWN0 IHRvIHRoZSBvdGhlciBjb21wb25lbnRzIG9mIHRoZSBzeXN0ZW0sCiAgIGJlZm9yZSBhbGwgdGhl IExPQUQgb3IgU1RPUkUgb3BlcmF0aW9ucyBzcGVjaWZpZWQgYWZ0ZXJ3YXJkcy4KLSAgT3BlcmF0 aW9ucyBjb21pbmcgYmVmb3JlIGBgYXRvbWljX2xvYWRfYWNxdWlyZSgpYGAgY2FuIHN0aWxsIGJl CisgIE9wZXJhdGlvbnMgY29taW5nIGJlZm9yZSBgYHFlbXVfYXRvbWljX2xvYWRfYWNxdWlyZSgp YGAgY2FuIHN0aWxsIGJlCiAgIHJlb3JkZXJlZCBhZnRlciBpdC4KIAotLSBgYGF0b21pY19zdG9y ZV9yZWxlYXNlKClgYCwgd2hpY2ggZ3VhcmFudGVlcyB0aGUgU1RPUkUgdG8gYXBwZWFyIHRvCist IGBgcWVtdV9hdG9taWNfc3RvcmVfcmVsZWFzZSgpYGAsIHdoaWNoIGd1YXJhbnRlZXMgdGhlIFNU T1JFIHRvIGFwcGVhciB0bwogICBoYXBwZW4sIHdpdGggcmVzcGVjdCB0byB0aGUgb3RoZXIgY29t cG9uZW50cyBvZiB0aGUgc3lzdGVtLAogICBhZnRlciBhbGwgdGhlIExPQUQgb3IgU1RPUkUgb3Bl cmF0aW9ucyBzcGVjaWZpZWQgYmVmb3JlLgotICBPcGVyYXRpb25zIGNvbWluZyBhZnRlciBgYGF0 b21pY19zdG9yZV9yZWxlYXNlKClgYCBjYW4gc3RpbGwgYmUKKyAgT3BlcmF0aW9ucyBjb21pbmcg YWZ0ZXIgYGBxZW11X2F0b21pY19zdG9yZV9yZWxlYXNlKClgYCBjYW4gc3RpbGwgYmUKICAgcmVv cmRlcmVkIGJlZm9yZSBpdC4KIAogUmVzdHJpY3Rpb25zIHRvIHRoZSBvcmRlcmluZyBvZiBhY2Nl c3NlcyBjYW4gYWxzbyBiZSBzcGVjaWZpZWQKQEAgLTIyOSwxOCArMjI5LDE4IEBAIFRoZXkgY29t ZSBpbiBzaXgga2luZHM6CiAgIGRlcGVuZGVuY3kgYW5kIGEgZnVsbCByZWFkIGJhcnJpZXIgb3Ig YmV0dGVyIGlzIHJlcXVpcmVkLgogCiAKLU1lbW9yeSBiYXJyaWVycyBhbmQgYGBhdG9taWNfbG9h ZF9hY3F1aXJlYGAvYGBhdG9taWNfc3RvcmVfcmVsZWFzZWBgIGFyZQotbW9zdGx5IHVzZWQgd2hl biBhIGRhdGEgc3RydWN0dXJlIGhhcyBvbmUgdGhyZWFkIHRoYXQgaXMgYWx3YXlzIGEgd3JpdGVy CitNZW1vcnkgYmFycmllcnMgYW5kIGBgcWVtdV9hdG9taWNfbG9hZF9hY3F1aXJlYGAvYGBxZW11 X2F0b21pY19zdG9yZV9yZWxlYXNlYGAKK2FyZSBtb3N0bHkgdXNlZCB3aGVuIGEgZGF0YSBzdHJ1 Y3R1cmUgaGFzIG9uZSB0aHJlYWQgdGhhdCBpcyBhbHdheXMgYSB3cml0ZXIKIGFuZCBvbmUgdGhy ZWFkIHRoYXQgaXMgYWx3YXlzIGEgcmVhZGVyOgogCi0gICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLSAgICB8 IHRocmVhZCAxICAgICAgICAgICAgICAgICAgICAgICAgIHwgdGhyZWFkIDIgICAgICAgICAgICAg ICAgICAgICAgICAgfAotICAgICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rCi0gICAgfCA6OiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IDo6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLSAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfAotICAgIHwgICBhdG9taWNfc3RvcmVfcmVsZWFzZSgmYSwgeCk7ICAg fCAgIHkgPSBhdG9taWNfbG9hZF9hY3F1aXJlKCZiKTsgICB8Ci0gICAgfCAgIGF0b21pY19zdG9y ZV9yZWxlYXNlKCZiLCB5KTsgICB8ICAgeCA9IGF0b21pY19sb2FkX2FjcXVpcmUoJmEpOyAgIHwK LSAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKworICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgIHwg dGhyZWFkIDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRocmVhZCAyICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfAorICAgICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KworICAg IHwgOjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDo6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAor ICAgIHwgICBxZW11X2F0b21pY19zdG9yZV9yZWxlYXNlKCZhLCB4KTsgICB8ICAgeSA9IHFlbXVf YXRvbWljX2xvYWRfYWNxdWlyZSgmYik7ICAgfAorICAgIHwgICBxZW11X2F0b21pY19zdG9yZV9y ZWxlYXNlKCZiLCB5KTsgICB8ICAgeCA9IHFlbXVfYXRvbWljX2xvYWRfYWNxdWlyZSgmYSk7ICAg fAorICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCiBJbiB0aGlzIGNhc2UsIGNvcnJlY3Ru ZXNzIGlzIGVhc3kgdG8gY2hlY2sgZm9yIHVzaW5nIHRoZSAicGFpcmluZyIKIHRyaWNrIHRoYXQg aXMgZXhwbGFpbmVkIGJlbG93LgpAQCAtMjUxLDU0ICsyNTEsNTQgQEAgdGhyZWFkLCBleGFjdGx5 IG9uZSBvdGhlciB0aHJlYWQgd2lsbCByZWFkIG9yIHdyaXRlIGVhY2ggb2YgdGhlc2UKIHZhcmlh YmxlcykuICBJbiB0aGlzIGNhc2UsIGl0IGlzIHBvc3NpYmxlIHRvICJob2lzdCIgdGhlIGJhcnJp ZXJzCiBvdXRzaWRlIGEgbG9vcC4gIEZvciBleGFtcGxlOgogCi0gICAgKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKwotICAgIHwgYmVmb3JlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IGFmdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLSAgICArPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0rCi0gICAgfCA6OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg OjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwKLSAgICB8ICAgbiA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IG4gPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0gICAgfCAgIGZvciAoaSA9IDA7IGkg PCAxMDsgaSsrKSAgICAgICAgICAgICAgIHwgICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkrKykgICAg ICAgfAotICAgIHwgICAgIG4gKz0gYXRvbWljX2xvYWRfYWNxdWlyZSgmYVtpXSk7ICAgICB8ICAg ICBuICs9IGF0b21pY19yZWFkKCZhW2ldKTsgICAgIHwKLSAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIHNtcF9tYl9hY3F1aXJlKCk7ICAgICAgICAgICAg ICB8Ci0gICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotICAgIHwgOjogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDo6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwKLSAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0gICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICBzbXBfbWJfcmVsZWFzZSgpOyAgICAgICAgICAgICAg fAotICAgIHwgICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkrKykgICAgICAgICAgICAgICB8ICAgZm9y IChpID0gMDsgaSA8IDEwOyBpKyspICAgICAgIHwKLSAgICB8ICAgICBhdG9taWNfc3RvcmVfcmVs ZWFzZSgmYVtpXSwgZmFsc2UpOyAgfCAgICAgYXRvbWljX3NldCgmYVtpXSwgZmFsc2UpOyAgICB8 Ci0gICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rCisgICAgfCBiZWZvcmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCBhZnRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICArPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09KworICAgIHwgOjogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgOjogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8CisgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICB8ICAg biA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgbiA9IDA7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgIHwgICBmb3IgKGkgPSAwOyBpIDwgMTA7 IGkrKykgICAgICAgICAgICAgICAgICAgIHwgICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkrKykgICAg ICAgICAgICB8CisgICAgfCAgICAgbiArPSBxZW11X2F0b21pY19sb2FkX2FjcXVpcmUoJmFbaV0p OyAgICAgfCAgICAgbiArPSBxZW11X2F0b21pY19yZWFkKCZhW2ldKTsgICAgIHwKKyAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgc21wX21iX2Fj cXVpcmUoKTsgICAgICAgICAgICAgICAgICAgfAorICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rCisgICAgfCA6OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCA6OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICBzbXBfbWJfcmVsZWFzZSgpOyAgICAgICAgICAg ICAgICAgICB8CisgICAgfCAgIGZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKSAgICAgICAgICAgICAg ICAgICAgfCAgIGZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKSAgICAgICAgICAgIHwKKyAgICB8ICAg ICBxZW11X2F0b21pY19zdG9yZV9yZWxlYXNlKCZhW2ldLCBmYWxzZSk7ICB8ICAgICBxZW11X2F0 b21pY19zZXQoJmFbaV0sIGZhbHNlKTsgICAgfAorICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rCiAKIFNwbGl0dGluZyBhIGxvb3AgY2FuIGFsc28gYmUgdXNlZnVsIHRvIHJlZHVj ZSB0aGUgbnVtYmVyIG9mIGJhcnJpZXJzOgogCi0gICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwot ICAgIHwgYmVmb3JlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGFmdGVyICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwKLSAgICArPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rCi0g ICAgfCA6OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOjogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfAotICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLSAg ICB8ICAgbiA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgc21wX21i X3JlbGVhc2UoKTsgICAgICAgICAgICB8Ci0gICAgfCAgIGZvciAoaSA9IDA7IGkgPCAxMDsgaSsr KSB7ICAgICAgICAgICAgIHwgICAgIGZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKSAgICAgfAotICAg IHwgICAgIGF0b21pY19zdG9yZV9yZWxlYXNlKCZhW2ldLCBmYWxzZSk7ICB8ICAgICAgIGF0b21p Y19zZXQoJmFbaV0sIGZhbHNlKTsgIHwKLSAgICB8ICAgICBzbXBfbWIoKTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgc21iX21iKCk7ICAgICAgICAgICAgICAgICAgICB8Ci0gICAg fCAgICAgbiArPSBhdG9taWNfcmVhZCgmYltpXSk7ICAgICAgICAgICAgIHwgICAgIG4gPSAwOyAg ICAgICAgICAgICAgICAgICAgICAgfAotICAgIHwgICB9ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkrKykgICAgIHwKLSAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICBuICs9IGF0 b21pY19yZWFkKCZiW2ldKTsgICB8Ci0gICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgfCBiZWZvcmUgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhZnRlciAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwKKyAgICArPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KworICAgIHwg OjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOjogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwKKyAgICB8ICAgbiA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICBzbXBfbWJfcmVsZWFzZSgpOyAgICAgICAgICAgICAgICAgfAorICAgIHwg ICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkrKykgeyAgICAgICAgICAgICAgICAgIHwgICAgIGZvciAo aSA9IDA7IGkgPCAxMDsgaSsrKSAgICAgICAgICB8CisgICAgfCAgICAgcWVtdV9hdG9taWNfc3Rv cmVfcmVsZWFzZSgmYVtpXSwgZmFsc2UpOyAgfCAgICAgICBxZW11X2F0b21pY19zZXQoJmFbaV0s IGZhbHNlKTsgIHwKKyAgICB8ICAgICBzbXBfbWIoKTsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICBzbWJfbWIoKTsgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgIHwg ICAgIG4gKz0gcWVtdV9hdG9taWNfcmVhZCgmYltpXSk7ICAgICAgICAgICAgIHwgICAgIG4gPSAw OyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgfCAgIH0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgZm9yIChpID0gMDsgaSA8IDEwOyBpKysp ICAgICAgICAgIHwKKyAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgIG4gKz0gcWVtdV9hdG9taWNfcmVhZCgmYltpXSk7ICAgfAorICAgICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAKIEluIHRoaXMgY2FzZSwgYSBgYHNtcF9t Yl9yZWxlYXNlKClgYCBpcyBhbHNvIHJlcGxhY2VkIHdpdGggYSAocG9zc2libHkgY2hlYXBlciwg YW5kIGNsZWFyZXIKIGFzIHdlbGwpIGBgc21wX3dtYigpYGA6CiAKLSAgICArLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rCi0gICAgfCBiZWZvcmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgYWZ0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotICAgICs9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PSsKLSAgICB8IDo6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCA6OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0gICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfAotICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICBzbXBfbWJfcmVsZWFzZSgpOyAgICAgICAgICAgIHwKLSAgICB8ICAgZm9yIChpID0gMDsg aSA8IDEwOyBpKyspIHsgICAgICAgICAgICAgfCAgICAgZm9yIChpID0gMDsgaSA8IDEwOyBpKysp ICAgICB8Ci0gICAgfCAgICAgYXRvbWljX3N0b3JlX3JlbGVhc2UoJmFbaV0sIGZhbHNlKTsgIHwg ICAgICAgYXRvbWljX3NldCgmYVtpXSwgZmFsc2UpOyAgfAotICAgIHwgICAgIGF0b21pY19zdG9y ZV9yZWxlYXNlKCZiW2ldLCBmYWxzZSk7ICB8ICAgICBzbWJfd21iKCk7ICAgICAgICAgICAgICAg ICAgIHwKLSAgICB8ICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgZm9yIChpID0gMDsgaSA8IDEwOyBpKyspICAgICB8Ci0gICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgYXRvbWljX3NldCgmYltpXSwgZmFsc2Up OyAgfAotICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICArLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKworICAgIHwgYmVmb3JlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgYWZ0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAg Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsKKyAgICB8IDo6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDo6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfAorICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgc21w X21iX3JlbGVhc2UoKTsgICAgICAgICAgICAgICAgIHwKKyAgICB8ICAgZm9yIChpID0gMDsgaSA8 IDEwOyBpKyspIHsgICAgICAgICAgICAgICAgICB8ICAgICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkr KykgICAgICAgICAgfAorICAgIHwgICAgIHFlbXVfYXRvbWljX3N0b3JlX3JlbGVhc2UoJmFbaV0s IGZhbHNlKTsgIHwgICAgICAgcWVtdV9hdG9taWNfc2V0KCZhW2ldLCBmYWxzZSk7ICB8CisgICAg fCAgICAgcWVtdV9hdG9taWNfc3RvcmVfcmVsZWFzZSgmYltpXSwgZmFsc2UpOyAgfCAgICAgc21i X3dtYigpOyAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICB8ICAgfSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkr KykgICAgICAgICAgfAorICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgcWVtdV9hdG9taWNfc2V0KCZiW2ldLCBmYWxzZSk7ICB8CisgICAg Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIAogCiAuLiBfYWNxcmVsOgpAQCAtMzA2 LDggKzMwNiw4IEBAIGFzIHdlbGwpIGBgc21wX3dtYigpYGA6CiBBY3F1aXJlL3JlbGVhc2UgcGFp cmluZyBhbmQgdGhlICpzeW5jaHJvbml6ZXMtd2l0aCogcmVsYXRpb24KIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1BdG9taWMg b3BlcmF0aW9ucyBvdGhlciB0aGFuIGBgYXRvbWljX3NldCgpYGAgYW5kIGBgYXRvbWljX3JlYWQo KWBgIGhhdmUKLWVpdGhlciAqYWNxdWlyZSogb3IgKnJlbGVhc2UqIHNlbWFudGljcyBbI3Jtd11f LiAgVGhpcyBoYXMgdHdvIGVmZmVjdHM6CitBdG9taWMgb3BlcmF0aW9ucyBvdGhlciB0aGFuIGBg cWVtdV9hdG9taWNfc2V0KClgYCBhbmQgYGBxZW11X2F0b21pY19yZWFkKClgYAoraGF2ZSBlaXRo ZXIgKmFjcXVpcmUqIG9yICpyZWxlYXNlKiBzZW1hbnRpY3MgWyNybXddXy4gIFRoaXMgaGFzIHR3 byBlZmZlY3RzOgogCiAuLiBbI3Jtd10gUmVhZC1tb2RpZnktd3JpdGUgb3BlcmF0aW9ucyBjYW4g aGF2ZSBib3RoLS0tYWNxdWlyZSBhcHBsaWVzIHRvIHRoZQogICAgICAgICAgIHJlYWQgcGFydCwg YW5kIHJlbGVhc2UgdG8gdGhlIHdyaXRlLgpAQCAtMzU3LDMwICszNTcsMzAgQEAgdGhyZWFkIDIg aXMgcmVseWluZyBvbiB0aGUgKnN5bmNocm9uaXplcy13aXRoKiByZWxhdGlvbiBiZXR3ZWVuIGBg cHRocmVhZF9leGl0YGAKIAogU3luY2hyb25pemF0aW9uIGJldHdlZW4gdGhyZWFkcyBiYXNpY2Fs bHkgZGVzY2VuZHMgZnJvbSB0aGlzIHBhaXJpbmcgb2YKIGEgcmVsZWFzZSBvcGVyYXRpb24gYW5k IGFuIGFjcXVpcmUgb3BlcmF0aW9uLiAgVGhlcmVmb3JlLCBhdG9taWMgb3BlcmF0aW9ucwotb3Ro ZXIgdGhhbiBgYGF0b21pY19zZXQoKWBgIGFuZCBgYGF0b21pY19yZWFkKClgYCB3aWxsIGFsbW9z dCBhbHdheXMgYmUKLXBhaXJlZCB3aXRoIGFub3RoZXIgb3BlcmF0aW9uIG9mIHRoZSBvcHBvc2l0 ZSBraW5kOiBhbiBhY3F1aXJlIG9wZXJhdGlvbgorb3RoZXIgdGhhbiBgYHFlbXVfYXRvbWljX3Nl dCgpYGAgYW5kIGBgcWVtdV9hdG9taWNfcmVhZCgpYGAgd2lsbCBhbG1vc3QgYWx3YXlzCitiZSBw YWlyZWQgd2l0aCBhbm90aGVyIG9wZXJhdGlvbiBvZiB0aGUgb3Bwb3NpdGUga2luZDogYW4gYWNx dWlyZSBvcGVyYXRpb24KIHdpbGwgcGFpciB3aXRoIGEgcmVsZWFzZSBvcGVyYXRpb24gYW5kIHZp Y2UgdmVyc2EuICBUaGlzIHJ1bGUgb2YgdGh1bWIgaXMKIGV4dHJlbWVseSB1c2VmdWw7IGluIHRo ZSBjYXNlIG9mIFFFTVUsIGhvd2V2ZXIsIG5vdGUgdGhhdCB0aGUgb3RoZXIKIG9wZXJhdGlvbiBt YXkgYWN0dWFsbHkgYmUgaW4gYSBkcml2ZXIgdGhhdCBydW5zIGluIHRoZSBndWVzdCEKIAogYGBz bXBfcmVhZF9iYXJyaWVyX2RlcGVuZHMoKWBgLCBgYHNtcF9ybWIoKWBgLCBgYHNtcF9tYl9hY3F1 aXJlKClgYCwKLWBgYXRvbWljX2xvYWRfYWNxdWlyZSgpYGAgYW5kIGBgYXRvbWljX3JjdV9yZWFk KClgYCBhbGwgY291bnQKK2BgcWVtdV9hdG9taWNfbG9hZF9hY3F1aXJlKClgYCBhbmQgYGBxZW11 X2F0b21pY19yY3VfcmVhZCgpYGAgYWxsIGNvdW50CiBhcyBhY3F1aXJlIG9wZXJhdGlvbnMuICBg YHNtcF93bWIoKWBgLCBgYHNtcF9tYl9yZWxlYXNlKClgYCwKLWBgYXRvbWljX3N0b3JlX3JlbGVh c2UoKWBgIGFuZCBgYGF0b21pY19yY3Vfc2V0KClgYCBhbGwgY291bnQgYXMgcmVsZWFzZQotb3Bl cmF0aW9ucy4gIGBgc21wX21iKClgYCBjb3VudHMgYXMgYm90aCBhY3F1aXJlIGFuZCByZWxlYXNl LCB0aGVyZWZvcmUKK2BgcWVtdV9hdG9taWNfc3RvcmVfcmVsZWFzZSgpYGAgYW5kIGBgcWVtdV9h dG9taWNfcmN1X3NldCgpYGAgYWxsIGNvdW50IGFzCityZWxlYXNlIG9wZXJhdGlvbnMuICBgYHNt cF9tYigpYGAgY291bnRzIGFzIGJvdGggYWNxdWlyZSBhbmQgcmVsZWFzZSwgdGhlcmVmb3JlCiBp dCBjYW4gcGFpciB3aXRoIGFueSBvdGhlciBhdG9taWMgb3BlcmF0aW9uLiAgSGVyZSBpcyBhbiBl eGFtcGxlOgogCi0gICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rCi0gICAgICB8IHRocmVhZCAxICAgICAgICAgICAgIHwgdGhyZWFkIDIg ICAgICAgICAgICAgICAgICAgICB8Ci0gICAgICArPT09PT09PT09PT09PT09PT09PT09PSs9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0rCi0gICAgICB8IDo6ICAgICAgICAgICAgICAgICAg IHwgOjogICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0gICAgICB8ICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0gICAgICB8ICAgYXRvbWlj X3NldCgmYSwgMSk7IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0gICAgICB8ICAg c21wX3dtYigpOyAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0gICAg ICB8ICAgYXRvbWljX3NldCgmYiwgMik7IHwgICB4ID0gYXRvbWljX3JlYWQoJmIpOyAgICAgICB8 Ci0gICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICBzbXBfcm1iKCk7ICAgICAgICAgICAg ICAgICB8Ci0gICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICB5ID0gYXRvbWljX3JlYWQo JmEpOyAgICAgICB8Ci0gICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rCisgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAgIHwgdGhyZWFkIDEgICAgICAgICAg ICAgICAgICB8IHRocmVhZCAyICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgKz09PT09PT09 PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rCisgICAg ICB8IDo6ICAgICAgICAgICAgICAgICAgICAgICAgfCA6OiAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwKKyAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfAorICAgICAgfCAgIHFlbXVfYXRvbWljX3NldCgmYSwgMSk7IHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICB8ICAgc21wX3dtYigpOyAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgIHwgICBxZW11X2F0 b21pY19zZXQoJmIsIDIpOyB8ICAgeCA9IHFlbXVfYXRvbWljX3JlYWQoJmIpOyAgfAorICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICBzbXBfcm1iKCk7ICAgICAgICAgICAgICAg ICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIHkgPSBxZW11X2F0b21p Y19yZWFkKCZhKTsgIHwKKyAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCiBOb3RlIHRoYXQgYSBsb2FkLXN0b3JlIHBhaXIg b25seSBjb3VudHMgaWYgdGhlIHR3byBvcGVyYXRpb25zIGFjY2VzcyB0aGUKIHNhbWUgdmFyaWFi bGU6IHRoYXQgaXMsIGEgc3RvcmUtcmVsZWFzZSBvbiBhIHZhcmlhYmxlIGBgeGBgICpzeW5jaHJv bml6ZXMKQEAgLTM4OCwxNSArMzg4LDE1IEBAIHdpdGgqIGEgbG9hZC1hY3F1aXJlIG9uIGEgdmFy aWFibGUgYGB4YGAsIHdoaWxlIGEgcmVsZWFzZSBiYXJyaWVyCiBzeW5jaHJvbml6ZXMgd2l0aCBh bnkgYWNxdWlyZSBvcGVyYXRpb24uICBUaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MKIGNvcnJl Y3Qgc3luY2hyb25pemF0aW9uOgogCi0gICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0gICAgICB8IHRocmVhZCAx ICAgICAgICAgICAgICAgICAgICAgICB8IHRocmVhZCAyICAgICAgICAgICAgICAgICAgICAgICB8 Ci0gICAgICArPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0rCi0gICAgICB8IDo6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDo6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0gICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0g ICAgICB8ICAgYXRvbWljX3NldCgmYSwgMSk7ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8Ci0gICAgICB8ICAgYXRvbWljX3N0b3JlX3JlbGVhc2UoJmIsIDIpOyB8 ICAgeCA9IGF0b21pY19sb2FkX2FjcXVpcmUoJmIpOyB8Ci0gICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgeSA9IGF0b21pY19yZWFkKCZhKTsgICAgICAgICB8Ci0gICAg ICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rCisgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgICAgfCB0aHJlYWQg MSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRocmVhZCAyICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwKKyAgICAgICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rCisgICAgICB8IDo6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOjogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfAorICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgIHwgICBxZW11X2F0 b21pY19zZXQoJmEsIDEpOyAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8CisgICAgICB8ICAgcWVtdV9hdG9taWNfc3RvcmVfcmVsZWFzZSgmYiwgMik7IHwg ICB4ID0gcWVtdV9hdG9taWNfbG9hZF9hY3F1aXJlKCZiKTsgfAorICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgeSA9IHFlbXVfYXRvbWljX3JlYWQoJmEpOyAg ICAgICAgIHwKKyAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAKIEFjcXVpcmUgYW5kIHJlbGVh c2Ugc2VtYW50aWNzIG9mIGhpZ2hlci1sZXZlbCBwcmltaXRpdmVzIGNhbiBhbHNvIGJlCiByZWxp ZWQgdXBvbiBmb3IgdGhlIHB1cnBvc2Ugb2YgZXN0YWJsaXNoaW5nIHRoZSAqc3luY2hyb25pemVz IHdpdGgqCkBAIC00MTIsMjEgKzQxMiwyMSBAQCBGaW5hbGx5LCB0aGlzIG1vcmUgY29tcGxleCBl eGFtcGxlIGhhcyBtb3JlIHRoYW4gdHdvIGFjY2Vzc2VzIGFuZCBkYXRhCiBkZXBlbmRlbmN5IGJh cnJpZXJzLiAgSXQgYWxzbyBkb2VzIG5vdCB1c2UgYXRvbWljIGFjY2Vzc2VzIHdoZW5ldmVyIHRo ZXJlCiBjYW5ub3QgYmUgYSBkYXRhIHJhY2U6CiAKLSAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLSAgICAgIHwgdGhyZWFkIDEgICAg ICAgICAgICAgfCB0aHJlYWQgMiAgICAgICAgICAgICAgICAgICAgIHwKLSAgICAgICs9PT09PT09 PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsKLSAgICAgIHwg OjogICAgICAgICAgICAgICAgICAgfCA6OiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLSAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwKLSAgICAgIHwgICBiWzJdID0gMTsgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwKLSAgICAgIHwgICBzbXBfd21iKCk7ICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwKLSAgICAgIHwgICB4LT5pID0gMjsgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKLSAgICAgIHwgICBzbXBfd21iKCk7ICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwKLSAgICAgIHwgICBhdG9taWNfc2V0KCZhLCB4KTsg fCAgeCA9IGF0b21pY19yZWFkKCZhKTsgICAgICAgIHwKLSAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgfCAgc21wX3JlYWRfYmFycmllcl9kZXBlbmRzKCk7IHwKLSAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgfCAgeSA9IHgtPmk7ICAgICAgICAgICAgICAgICAgIHwKLSAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgfCAgc21wX3JlYWRfYmFycmllcl9kZXBlbmRzKCk7IHwKLSAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgfCAgeiA9IGJbeV07ICAgICAgICAgICAgICAgICAgIHwK LSAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSsKKyAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKworICAgICAgfCB0aHJlYWQgMSAgICAgICAgICAgICAgICAgIHwgdGhy ZWFkIDIgICAgICAgICAgICAgICAgICAgICB8CisgICAgICArPT09PT09PT09PT09PT09PT09PT09 PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsKKyAgICAgIHwgOjogICAgICAg ICAgICAgICAgICAgICAgICB8IDo6ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8CisgICAgICB8ICAgYlsyXSA9IDE7ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwKKyAgICAgIHwgICBzbXBfd21iKCk7ICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgfCAgIHgtPmkgPSAyOyAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICB8ICAgc21wX3dtYigp OyAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgIHwg ICBxZW11X2F0b21pY19zZXQoJmEsIHgpOyB8ICB4ID0gcWVtdV9hdG9taWNfcmVhZCgmYSk7ICAg fAorICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHNtcF9yZWFkX2JhcnJpZXJf ZGVwZW5kcygpOyB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgeSA9IHgt Pmk7ICAgICAgICAgICAgICAgICAgIHwKKyAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICBzbXBfcmVhZF9iYXJyaWVyX2RlcGVuZHMoKTsgfAorICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIHogPSBiW3ldOyAgICAgICAgICAgICAgICAgICB8CisgICAgICArLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsK IAogQ29tcGFyaXNvbiB3aXRoIExpbnV4IGtlcm5lbCBwcmltaXRpdmVzCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTQzOCw1MCArNDM4LDUwIEBAIGFuZCBtZW1v cnkgYmFycmllcnMsIGFuZCB0aGUgZXF1aXZhbGVudHMgaW4gUUVNVToKICAgdXNlIGEgYm94ZWQg YGBhdG9taWNfdGBgIHR5cGU7IGF0b21pYyBvcGVyYXRpb25zIGluIFFFTVUgYXJlIHBvbHltb3Jw aGljCiAgIGFuZCB1c2Ugbm9ybWFsIEMgdHlwZXMuCiAKLS0gT3JpZ2luYWxseSwgYGBhdG9taWNf cmVhZGBgIGFuZCBgYGF0b21pY19zZXRgYCBpbiBMaW51eCBnYXZlIG5vIGd1YXJhbnRlZQotICBh dCBhbGwuIExpbnV4IDQuMSB1cGRhdGVkIHRoZW0gdG8gaW1wbGVtZW50IHZvbGF0aWxlCistIE9y aWdpbmFsbHksIGBgcWVtdV9hdG9taWNfcmVhZGBgIGFuZCBgYHFlbXVfYXRvbWljX3NldGBgIGlu IExpbnV4IGdhdmUgbm8KKyAgZ3VhcmFudGVlIGF0IGFsbC4gTGludXggNC4xIHVwZGF0ZWQgdGhl bSB0byBpbXBsZW1lbnQgdm9sYXRpbGUKICAgc2VtYW50aWNzIHZpYSBgYEFDQ0VTU19PTkNFYGAg KG9yIHRoZSBtb3JlIHJlY2VudCBgYFJFQURgYC9gYFdSSVRFX09OQ0VgYCkuCiAKLSAgUUVNVSdz IGBgYXRvbWljX3JlYWRgYCBhbmQgYGBhdG9taWNfc2V0YGAgaW1wbGVtZW50IEMxMSBhdG9taWMg cmVsYXhlZAotICBzZW1hbnRpY3MgaWYgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIGl0LCBhbmQgdm9s YXRpbGUgc2VtYW50aWNzIG90aGVyd2lzZS4KLSAgQm90aCBzZW1hbnRpY3MgcHJldmVudCB0aGUg Y29tcGlsZXIgZnJvbSBkb2luZyBjZXJ0YWluIHRyYW5zZm9ybWF0aW9uczsKLSAgdGhlIGRpZmZl cmVuY2UgaXMgdGhhdCBhdG9taWMgYWNjZXNzZXMgYXJlIGd1YXJhbnRlZWQgdG8gYmUgYXRvbWlj LAotICB3aGlsZSB2b2xhdGlsZSBhY2Nlc3NlcyBhcmVuJ3QuIFRodXMsIGluIHRoZSB2b2xhdGls ZSBjYXNlIHdlIGp1c3QgY3Jvc3MKLSAgb3VyIGZpbmdlcnMgaG9waW5nIHRoYXQgdGhlIGNvbXBp bGVyIHdpbGwgZ2VuZXJhdGUgYXRvbWljIGFjY2Vzc2VzLAotICBzaW5jZSB3ZSBhc3N1bWUgdGhl IHZhcmlhYmxlcyBwYXNzZWQgYXJlIG1hY2hpbmUtd29yZCBzaXplZCBhbmQKLSAgcHJvcGVybHkg YWxpZ25lZC4KKyAgUUVNVSdzIGBgcWVtdV9hdG9taWNfcmVhZGBgIGFuZCBgYHFlbXVfYXRvbWlj X3NldGBgIGltcGxlbWVudCBDMTEgYXRvbWljCisgIHJlbGF4ZWQgc2VtYW50aWNzIGlmIHRoZSBj b21waWxlciBzdXBwb3J0cyBpdCwgYW5kIHZvbGF0aWxlIHNlbWFudGljcworICBvdGhlcndpc2Uu IEJvdGggc2VtYW50aWNzIHByZXZlbnQgdGhlIGNvbXBpbGVyIGZyb20gZG9pbmcgY2VydGFpbgor ICB0cmFuc2Zvcm1hdGlvbnM7IHRoZSBkaWZmZXJlbmNlIGlzIHRoYXQgYXRvbWljIGFjY2Vzc2Vz IGFyZSBndWFyYW50ZWVkIHRvIGJlCisgIGF0b21pYywgd2hpbGUgdm9sYXRpbGUgYWNjZXNzZXMg YXJlbid0LiBUaHVzLCBpbiB0aGUgdm9sYXRpbGUgY2FzZSB3ZSBqdXN0CisgIGNyb3NzIG91ciBm aW5nZXJzIGhvcGluZyB0aGF0IHRoZSBjb21waWxlciB3aWxsIGdlbmVyYXRlIGF0b21pYyBhY2Nl c3NlcywKKyAgc2luY2Ugd2UgYXNzdW1lIHRoZSB2YXJpYWJsZXMgcGFzc2VkIGFyZSBtYWNoaW5l LXdvcmQgc2l6ZWQgYW5kIHByb3Blcmx5CisgIGFsaWduZWQuCiAKLSAgTm8gYmFycmllcnMgYXJl IGltcGxpZWQgYnkgYGBhdG9taWNfcmVhZGBgIGFuZCBgYGF0b21pY19zZXRgYCBpbiBlaXRoZXIg TGludXgKLSAgb3IgUUVNVS4KKyAgTm8gYmFycmllcnMgYXJlIGltcGxpZWQgYnkgYGBxZW11X2F0 b21pY19yZWFkYGAgYW5kIGBgcWVtdV9hdG9taWNfc2V0YGAgaW4KKyAgZWl0aGVyIExpbnV4IG9y IFFFTVUuCiAKIC0gYXRvbWljIHJlYWQtbW9kaWZ5LXdyaXRlIG9wZXJhdGlvbnMgaW4gTGludXgg YXJlIG9mIHRocmVlIGtpbmRzOgogCi0gICAgICAgICA9PT09PT09PT09PT09PT09PT09PT0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICAgICAgIGBgYXRvbWlj X09QYGAgICAgICAgICByZXR1cm5zIHZvaWQKLSAgICAgICAgIGBgYXRvbWljX09QX3JldHVybmBg ICByZXR1cm5zIG5ldyB2YWx1ZSBvZiB0aGUgdmFyaWFibGUKLSAgICAgICAgIGBgYXRvbWljX2Zl dGNoX09QYGAgICByZXR1cm5zIHRoZSBvbGQgdmFsdWUgb2YgdGhlIHZhcmlhYmxlCi0gICAgICAg ICBgYGF0b21pY19jbXB4Y2hnYGAgICAgcmV0dXJucyB0aGUgb2xkIHZhbHVlIG9mIHRoZSB2YXJp YWJsZQotICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09ID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CisgICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgICAgICAgYGBhdG9t aWNfT1BgYCAgICAgICAgICAgcmV0dXJucyB2b2lkCisgICAgICAgICBgYGF0b21pY19PUF9yZXR1 cm5gYCAgICByZXR1cm5zIG5ldyB2YWx1ZSBvZiB0aGUgdmFyaWFibGUKKyAgICAgICAgIGBgYXRv bWljX2ZldGNoX09QYGAgICAgIHJldHVybnMgdGhlIG9sZCB2YWx1ZSBvZiB0aGUgdmFyaWFibGUK KyAgICAgICAgIGBgYXRvbWljX2NtcHhjaGdgYCAgICAgIHJldHVybnMgdGhlIG9sZCB2YWx1ZSBv ZiB0aGUgdmFyaWFibGUKKyAgICAgICAgID09PT09PT09PT09PT09PT09PT09PT09ID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKLSAgSW4gUUVNVSwgdGhlIHNlY29u ZCBraW5kIGlzIG5hbWVkIGBgYXRvbWljX09QX2ZldGNoYGAuCisgIEluIFFFTVUsIHRoZSBzZWNv bmQga2luZCBpcyBuYW1lZCBgYHFlbXVfYXRvbWljX09QX2ZldGNoYGAuCiAKIC0gZGlmZmVyZW50 IGF0b21pYyByZWFkLW1vZGlmeS13cml0ZSBvcGVyYXRpb25zIGluIExpbnV4IGltcGx5CiAgIGEg ZGlmZmVyZW50IHNldCBvZiBtZW1vcnkgYmFycmllcnM7IGluIFFFTVUsIGFsbCBvZiB0aGVtIGVu Zm9yY2UKICAgc2VxdWVudGlhbCBjb25zaXN0ZW5jeS4KIAotLSBpbiBRRU1VLCBgYGF0b21pY19y ZWFkKClgYCBhbmQgYGBhdG9taWNfc2V0KClgYCBkbyBub3QgcGFydGljaXBhdGUgaW4KLSAgdGhl IHRvdGFsIG9yZGVyaW5nIGVuZm9yY2VkIGJ5IHNlcXVlbnRpYWxseS1jb25zaXN0ZW50IG9wZXJh dGlvbnMuCistIGluIFFFTVUsIGBgcWVtdV9hdG9taWNfcmVhZCgpYGAgYW5kIGBgcWVtdV9hdG9t aWNfc2V0KClgYCBkbyBub3QgcGFydGljaXBhdGUKKyAgaW4gdGhlIHRvdGFsIG9yZGVyaW5nIGVu Zm9yY2VkIGJ5IHNlcXVlbnRpYWxseS1jb25zaXN0ZW50IG9wZXJhdGlvbnMuCiAgIFRoaXMgaXMg YmVjYXVzZSBRRU1VIHVzZXMgdGhlIEMxMSBtZW1vcnkgbW9kZWwuICBUaGUgZm9sbG93aW5nIGV4 YW1wbGUKICAgaXMgY29ycmVjdCBpbiBMaW51eCBidXQgbm90IGluIFFFTVU6CiAKLSAgICAgICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKwotICAgICAgfCBMaW51eCAoY29ycmVjdCkgICAgICAgICAgICAgICAgICB8IFFF TVUgKGluY29ycmVjdCkgICAgICAgICAgICAgICB8Ci0gICAgICArPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsKLSAgICAg IHwgOjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA6OiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfAotICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0gICAgICB8ICAgYSA9IGF0b21pY19m ZXRjaF9hZGQoJngsIDIpOyAgIHwgICBhID0gYXRvbWljX2ZldGNoX2FkZCgmeCwgMik7IHwKLSAg ICAgIHwgICBiID0gUkVBRF9PTkNFKCZ5KTsgICAgICAgICAgICAgfCAgIGIgPSBhdG9taWNfcmVh ZCgmeSk7ICAgICAgICAgfAotICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgICArLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKworICAgICAgfCBMaW51eCAoY29ycmVjdCkgICAgICAgICAgICAgICAgICAgICB8IFFF TVUgKGluY29ycmVjdCkgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICs9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0rCisgICAgICB8IDo6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOjog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwKKyAgICAgIHwgICBhID0gcWVtdV9hdG9taWNfZmV0Y2hfYWRkKCZ4LCAyKTsgfCAgIGEg PSBxZW11X2F0b21pY19mZXRjaF9hZGQoJngsIDIpOyB8CisgICAgICB8ICAgYiA9IFJFQURfT05D RSgmeSk7ICAgICAgICAgICAgICAgIHwgICBiID0gcWVtdV9hdG9taWNfcmVhZCgmeSk7ICAgICAg ICAgfAorICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIAogICBiZWNhdXNlIHRoZSByZWFkIG9m IGBgeWBgIGNhbiBiZSBtb3ZlZCAoYnkgZWl0aGVyIHRoZSBwcm9jZXNzb3Igb3IgdGhlCiAgIGNv bXBpbGVyKSBiZWZvcmUgdGhlIHdyaXRlIG9mIGBgeGBgLgpAQCAtNDk1LDEwICs0OTUsMTAgQEAg YW5kIG1lbW9yeSBiYXJyaWVycywgYW5kIHRoZSBlcXVpdmFsZW50cyBpbiBRRU1VOgogICAgICAg Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KwogICAgICAgfCA6OiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfAogICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfAotICAgICAgfCAgIGEgPSBhdG9taWNfcmVhZCgmeCk7ICAgICAgICAgfAotICAgICAgfCAg IGF0b21pY19zZXQoJngsIGEgKyAyKTsgICAgICAgfAorICAgICAgfCAgIGEgPSBxZW11X2F0b21p Y19yZWFkKCZ4KTsgICAgfAorICAgICAgfCAgIHFlbXVfYXRvbWljX3NldCgmeCwgYSArIDIpOyAg fAogICAgICAgfCAgIHNtcF9tYigpOyAgICAgICAgICAgICAgICAgICAgfAotICAgICAgfCAgIGIg PSBhdG9taWNfcmVhZCgmeSk7ICAgICAgICAgfAorICAgICAgfCAgIGIgPSBxZW11X2F0b21pY19y ZWFkKCZ5KTsgICAgfAogICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwog CiBTb3VyY2VzCmRpZmYgLS1naXQgYS9zY3JpcHRzL2tlcm5lbC1kb2MgYi9zY3JpcHRzL2tlcm5l bC1kb2MKaW5kZXggMDMwYjVjODY5MS4uOWVjMzhhMWJmMSAxMDA3NTUKLS0tIGEvc2NyaXB0cy9r ZXJuZWwtZG9jCisrKyBiL3NjcmlwdHMva2VybmVsLWRvYwpAQCAtMTYyNSw3ICsxNjI1LDcgQEAg c3ViIGR1bXBfZnVuY3Rpb24oJCQpIHsKICAgICAjIElmIHlvdSBtZXNzIHdpdGggdGhlc2UgcmVn ZXhwcywgaXQncyBhIGdvb2QgaWRlYSB0byBjaGVjayB0aGF0CiAgICAgIyB0aGUgZm9sbG93aW5n IGZ1bmN0aW9ucycgZG9jdW1lbnRhdGlvbiBzdGlsbCBjb21lcyBvdXQgcmlnaHQ6CiAgICAgIyAt IHBhcnBvcnRfcmVnaXN0ZXJfZGV2aWNlIChmdW5jdGlvbiBwb2ludGVyIHBhcmFtZXRlcnMpCi0g ICAgIyAtIGF0b21pY19zZXQgKG1hY3JvKQorICAgICMgLSBxZW11X2F0b21pY19zZXQgKG1hY3Jv KQogICAgICMgLSBwY2lfbWF0Y2hfZGV2aWNlLCBfX2NvcHlfdG9fdXNlciAobG9uZyByZXR1cm4g dHlwZSkKIAogICAgIGlmICgkZGVmaW5lICYmICRwcm90b3R5cGUgPX4gbS9eKCkoW2EtekEtWjAt OV9+Ol0rKVxzKy8pIHsKZGlmZiAtLWdpdCBhL3RjZy9hYXJjaDY0L3RjZy10YXJnZXQuYy5pbmMg Yi90Y2cvYWFyY2g2NC90Y2ctdGFyZ2V0LmMuaW5jCmluZGV4IDk0OGMzNWQ4MjUuLjMzZDkwYzZk YTMgMTAwNjQ0Ci0tLSBhL3RjZy9hYXJjaDY0L3RjZy10YXJnZXQuYy5pbmMKKysrIGIvdGNnL2Fh cmNoNjQvdGNnLXRhcmdldC5jLmluYwpAQCAtMTM2NSw3ICsxMzY1LDcgQEAgdm9pZCB0Yl90YXJn ZXRfc2V0X2ptcF90YXJnZXQodWludHB0cl90IHRjX3B0ciwgdWludHB0cl90IGptcF9hZGRyLAog ICAgICAgICBpMiA9IEkzNDAxX0FEREkgfCBydCA8PCAzMSB8IChhZGRyICYgMHhmZmYpIDw8IDEw IHwgcmQgPDwgNSB8IHJkOwogICAgIH0KICAgICBwYWlyID0gKHVpbnQ2NF90KWkyIDw8IDMyIHwg aTE7Ci0gICAgYXRvbWljX3NldCgodWludDY0X3QgKilqbXBfYWRkciwgcGFpcik7CisgICAgcWVt dV9hdG9taWNfc2V0KCh1aW50NjRfdCAqKWptcF9hZGRyLCBwYWlyKTsKICAgICBmbHVzaF9pY2Fj aGVfcmFuZ2Uoam1wX2FkZHIsIGptcF9hZGRyICsgOCk7CiB9CiAKZGlmZiAtLWdpdCBhL3RjZy9t aXBzL3RjZy10YXJnZXQuYy5pbmMgYi90Y2cvbWlwcy90Y2ctdGFyZ2V0LmMuaW5jCmluZGV4IGJk NWI4ZTA5YTAuLjM2NGFhMmY2NGEgMTAwNjQ0Ci0tLSBhL3RjZy9taXBzL3RjZy10YXJnZXQuYy5p bmMKKysrIGIvdGNnL21pcHMvdGNnLXRhcmdldC5jLmluYwpAQCAtMjY2Miw3ICsyNjYyLDcgQEAg c3RhdGljIHZvaWQgdGNnX3RhcmdldF9pbml0KFRDR0NvbnRleHQgKnMpCiB2b2lkIHRiX3Rhcmdl dF9zZXRfam1wX3RhcmdldCh1aW50cHRyX3QgdGNfcHRyLCB1aW50cHRyX3Qgam1wX2FkZHIsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3QgYWRkcikKIHsKLSAgICBhdG9t aWNfc2V0KCh1aW50MzJfdCAqKWptcF9hZGRyLCBkZXBvc2l0MzIoT1BDX0osIDAsIDI2LCBhZGRy ID4+IDIpKTsKKyAgICBxZW11X2F0b21pY19zZXQoKHVpbnQzMl90ICopam1wX2FkZHIsIGRlcG9z aXQzMihPUENfSiwgMCwgMjYsIGFkZHIgPj4gMikpOwogICAgIGZsdXNoX2ljYWNoZV9yYW5nZShq bXBfYWRkciwgam1wX2FkZHIgKyA0KTsKIH0KIApkaWZmIC0tZ2l0IGEvdGNnL3BwYy90Y2ctdGFy Z2V0LmMuaW5jIGIvdGNnL3BwYy90Y2ctdGFyZ2V0LmMuaW5jCmluZGV4IDM5M2M0YjMwZTAuLjIx YWNjZjYwZmUgMTAwNjQ0Ci0tLSBhL3RjZy9wcGMvdGNnLXRhcmdldC5jLmluYworKysgYi90Y2cv cHBjL3RjZy10YXJnZXQuYy5pbmMKQEAgLTE3NTYsMTMgKzE3NTYsMTMgQEAgdm9pZCB0Yl90YXJn ZXRfc2V0X2ptcF90YXJnZXQodWludHB0cl90IHRjX3B0ciwgdWludHB0cl90IGptcF9hZGRyLAog I2VuZGlmCiAKICAgICAgICAgLyogQXMgcGVyIHRoZSBlbmNsb3NpbmcgaWYsIHRoaXMgaXMgcHBj NjQuICBBdm9pZCB0aGUgX1N0YXRpY19hc3NlcnQKLSAgICAgICAgICAgd2l0aGluIGF0b21pY19z ZXQgdGhhdCB3b3VsZCBmYWlsIHRvIGJ1aWxkIGEgcHBjMzIgaG9zdC4gICovCi0gICAgICAgIGF0 b21pY19zZXRfX25vY2hlY2soKHVpbnQ2NF90ICopam1wX2FkZHIsIHBhaXIpOworICAgICAgICAg ICB3aXRoaW4gcWVtdV9hdG9taWNfc2V0IHRoYXQgd291bGQgZmFpbCB0byBidWlsZCBhIHBwYzMy IGhvc3QuICAqLworICAgICAgICBxZW11X2F0b21pY19zZXRfX25vY2hlY2soKHVpbnQ2NF90ICop am1wX2FkZHIsIHBhaXIpOwogICAgICAgICBmbHVzaF9pY2FjaGVfcmFuZ2Uoam1wX2FkZHIsIGpt cF9hZGRyICsgOCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaW50cHRyX3QgZGlmZiA9IGFkZHIg LSBqbXBfYWRkcjsKICAgICAgICAgdGNnX2RlYnVnX2Fzc2VydChpbl9yYW5nZV9iKGRpZmYpKTsK LSAgICAgICAgYXRvbWljX3NldCgodWludDMyX3QgKilqbXBfYWRkciwgQiB8IChkaWZmICYgMHgz ZmZmZmZjKSk7CisgICAgICAgIHFlbXVfYXRvbWljX3NldCgodWludDMyX3QgKilqbXBfYWRkciwg QiB8IChkaWZmICYgMHgzZmZmZmZjKSk7CiAgICAgICAgIGZsdXNoX2ljYWNoZV9yYW5nZShqbXBf YWRkciwgam1wX2FkZHIgKyA0KTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS90Y2cvc3BhcmMvdGNn LXRhcmdldC5jLmluYyBiL3RjZy9zcGFyYy90Y2ctdGFyZ2V0LmMuaW5jCmluZGV4IDBmMWQ5MWZj MjEuLmMyNGZiNDAzZGEgMTAwNjQ0Ci0tLSBhL3RjZy9zcGFyYy90Y2ctdGFyZ2V0LmMuaW5jCisr KyBiL3RjZy9zcGFyYy90Y2ctdGFyZ2V0LmMuaW5jCkBAIC0xODM5LDcgKzE4MzksOCBAQCB2b2lk IHRiX3RhcmdldF9zZXRfam1wX3RhcmdldCh1aW50cHRyX3QgdGNfcHRyLCB1aW50cHRyX3Qgam1w X2FkZHIsCiAgICAgdGNnX2RlYnVnX2Fzc2VydChicl9kaXNwID09IChpbnQzMl90KWJyX2Rpc3Ap OwogCiAgICAgaWYgKCFVU0VfUkVHX1RCKSB7Ci0gICAgICAgIGF0b21pY19zZXQoKHVpbnQzMl90 ICopam1wX2FkZHIsIGRlcG9zaXQzMihDQUxMLCAwLCAzMCwgYnJfZGlzcCA+PiAyKSk7CisgICAg ICAgIHFlbXVfYXRvbWljX3NldCgodWludDMyX3QgKilqbXBfYWRkciwKKwkJICAgICAgICBkZXBv c2l0MzIoQ0FMTCwgMCwgMzAsIGJyX2Rpc3AgPj4gMikpOwogICAgICAgICBmbHVzaF9pY2FjaGVf cmFuZ2Uoam1wX2FkZHIsIGptcF9hZGRyICsgNCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA IC0xODYzLDYgKzE4NjQsNiBAQCB2b2lkIHRiX3RhcmdldF9zZXRfam1wX3RhcmdldCh1aW50cHRy X3QgdGNfcHRyLCB1aW50cHRyX3Qgam1wX2FkZHIsCiAgICAgICAgICAgICAgIHwgSU5TTl9JTU0x MygodGJfZGlzcCAmIDB4M2ZmKSB8IC0weDQwMCkpOwogICAgIH0KIAotICAgIGF0b21pY19zZXQo KHVpbnQ2NF90ICopam1wX2FkZHIsIGRlcG9zaXQ2NChpMiwgMzIsIDMyLCBpMSkpOworICAgIHFl bXVfYXRvbWljX3NldCgodWludDY0X3QgKilqbXBfYWRkciwgZGVwb3NpdDY0KGkyLCAzMiwgMzIs IGkxKSk7CiAgICAgZmx1c2hfaWNhY2hlX3JhbmdlKGptcF9hZGRyLCBqbXBfYWRkciArIDgpOwog fQotLSAKMi4yNi4yCgo=