Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vujtE-0040cu-2x for pgsql-hackers@arkaria.postgresql.org; Tue, 24 Feb 2026 04:19:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vujtD-00GtqI-2a for pgsql-hackers@arkaria.postgresql.org; Tue, 24 Feb 2026 04:19:15 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vujtC-00Gtq9-2V for pgsql-hackers@lists.postgresql.org; Tue, 24 Feb 2026 04:19:15 +0000 Received: from mail-qk1-x735.google.com ([2607:f8b0:4864:20::735]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vujt8-00000000u1S-3k1H for pgsql-hackers@lists.postgresql.org; Tue, 24 Feb 2026 04:19:13 +0000 Received: by mail-qk1-x735.google.com with SMTP id af79cd13be357-8c710439535so362022085a.1 for ; Mon, 23 Feb 2026 20:19:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1771906751; cv=none; d=google.com; s=arc-20240605; b=FAX+Rpk22dGQJuID1UO+rtQroL2UTyQkLOxlGW0VhOrjvMfuFCYDhzum5o014e9Hhf SGXcZ24RoB83ldmjpDXiVkL/Pt3rEvrp0CAadDaDE3WnP69W5VTtP9KFzJ3DKXVF3bpV FmTmKvOVZnC5f1S2n0th66JQeDWSqrVCLvDyFlZtNC6uYYtei8yois+iWMHRu9B5+5r0 7fX153xxT3xGFprIBTx0cFko0XQHWwZ+mqTsrb2/svWs2SFOmXiS5dp7rDGE2qKdMKrA 7cJQff22teUgm0AYwPJn1LP+XfmfgQKeQ4bPA3LcsGfJ901n08pOXxWBiwdVf2fU7pWy fT3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=/zkZc7XZm81Vq7HLZ4FplMdskRtipWQ73dkqdGDdo+Q=; fh=Py+j8Yu62nXYqCgnH5foF86JikgPxvLmlgGne+qEyIg=; b=GlskLtPGyuqFoGmi8VWnlkxourPuGbxZQ13JLKU6oluBLmATjOppca9wu0bHtdxbnb GHT8J0CAonzyz7UxguZZjcKPJmc81ZqXrf5JT9jcVpGrkjtPMjl5QBKjUH7pXN8mvK9j hn5JdXyoKJEAwT4d0gBSdXGJv+VDhxwAI42NWMkWjdk1YRcWahqctwzy5YpDPQlbeuLV oVu0Fxce7Wkori3LawBVofVizs29VrXVwjZ7/+ai9CDYAWNET4SyrmUKxOO4HqntFIZw GyXBJED8LiFQKazmAJ+n8d7U8lyucuUkewf2xMNAes6KwDIXC3+wpg/+wgNq+e33Prn/ I1Lw==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fittl.com; s=google; t=1771906751; x=1772511551; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=/zkZc7XZm81Vq7HLZ4FplMdskRtipWQ73dkqdGDdo+Q=; b=kMOOkNgmiJ+BLuh6ymPsIAVwh3bwmG9UCKXSX0ghRxsp30opaMX1hhHP78NxxRtiRR HNO7y1pD1p7QBi1CRVwTpF1GqivLOSZljJ2bE9LkKFEO+ACPF/mYG9wiMEwP+P+w2qeJ yP0ZlL8OFKsAyfKJNZp9k/Fk6Q6CXKBaG28L4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771906751; x=1772511551; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=/zkZc7XZm81Vq7HLZ4FplMdskRtipWQ73dkqdGDdo+Q=; b=Ydjrh7usX26w8JPe7V/+j129GDMRCveZXCx34v43XL7Pj1TGWjf0b7y+BaO6SofKac QrOYQACA8xGrDyesKBaiu/m/VU8RowxU97W2GUkbh4BH0FtYavfnwAuL7qDvmXgu9IxM gfg5tCJwFiIpDY1m76F0vovKEfv4RNoOiW/N597vnUwvinlmaSV8asGwINVV0NP5gEN+ WJ9t2kXEW7CoblgJfWhfkenj5IGedOTD/joEgUGWgGgrQZ4lg06ZaT6WO6wsDmrBxMki FHWCJD2nOA+DwLrmqvPnMqQ7OsR3lAgbUxkf3yw5CYN17qGdqmNs2VWt9RW1EcGs/ZoL OxKA== X-Gm-Message-State: AOJu0YxDaaaMrsiZ5HA0DEc/Ka+98yJB8Q1qoGhwpycyo40revqn1Q/o U9zy36/KIeCw2Ihh58xTlgrlhvn36zf9X5Zz8vTEwn08xH+xaCbGsREUHHgKkg7AAQRiv75lFQw is1YktI7W5NQgeGf6/mpjGHuD3Con98Z2HBG9A+GHS5tfcpup0RzE1FMv X-Gm-Gg: AZuq6aJbXHmtO9SZ/1OUbq9k5IHYOx6YZIy7pW+0/d+lbZy17AmIL+y4Dmoyutk1nfb YFb1vozlfRmM92MD74WqDRgaOMc8GL7zCXX7oDjvmdBOGWUskBVq/n7IhtSxpeYG4W62e/h0eO+ qQJJRCIkvcj/GpCWnOArNiK96Qld+HrEe+3WtN9b2z8K0/KTjnJbMxp6TiD6lzVqwIxxYVMEjXt 5dx+9dtWxe88DlynWvIKMEdZwwy4jSed1JAHlEXi9G1zxbPTKv/usu7zlEURQkFDSL/toVdeM02 4geUxNHGPHSD79chvQ0Th8B20SZu0q6hgq/ViKU= X-Received: by 2002:a05:620a:1994:b0:8c6:ee09:5eae with SMTP id af79cd13be357-8cb8c93e6f9mr1437990385a.0.1771906750436; Mon, 23 Feb 2026 20:19:10 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Lukas Fittl Date: Mon, 23 Feb 2026 20:18:34 -0800 X-Gm-Features: AaiRm53zVe-XWG5YLAMV58tmN9pqVBTZV-KOG0r7EmXvFK7tMzDcjgIsqAqKjeo Message-ID: Subject: Re: Stack-based tracking of per-node WAL/buffer usage To: PostgreSQL Hackers , Andres Freund Cc: Peter Smith Content-Type: multipart/mixed; boundary="000000000000702390064b8a3016" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000702390064b8a3016 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, Attached v6: 0001 addresses the issue that Peter raised and corrects the macro name + adds a missing comment. 0002/0003 are the same as in v5 and are preparatory commits that should be in good shape to go. 0004 adds new regression tests that pass on both master and the patched version, and stress test some of the nested instrumentation handling. 0005 is what was previously 0003, and introduces the stack-based instrumentation mechanism. I've made several changes here: - Rename pgInstrStack =3D> CurrentInstrStack - Always initialize a top-level stack (TopInstrStack) to avoid condition when writing to stack - Rename ExecAccumNodeInstrumentation to ExecFinalizeNodeInstrumentation, and skip it for parallel workers to avoid double counting (covered by new test cases). The new InstrFinalizeNode method that accompanies this now also copies the per-node instrumentation into the per-query context when in the regular non-abort case. I think this is necessary when we have a long-running transaction with auto_explain enabled and many fast statements, so we don't want to keep NodeInstrumentation until transaction end (since each NodeInstrumentation is ~288 bytes). - Accumulate unfinalized per-node stacks on abort (so we can rely on accumulated totals to be correct) - note that this requires an additional tree walk in the first ExecutorRun because we lazily initialize the query->totaltime stack - Moved the non-node instr stack allocations to TopMemoryContext - after further testing and review I agree that's necessary because of utility statements. The specific test case that showed that was pgss_ProcessUtility and how it behaves with the new utility.sql test case, as well as VACUUM commands in stream regress. - Combined parallel worker changes into this commit (it didn't really make sense to keep these separate based on some of the edge cases) - Explicit handling of orphaned stack entries when we experience out-of-order cleanup during abort - Added a lot more comments (too many?) to explain different edge cases. 0006 could probably be merged into 0005, and is the existing mechanical change to drop the pgBufferUsage global, but kept separate for easier review for now. 0007 is the stack-mechanism for splitting out "Table Buffers" for Index Scans. This has been changed to: - Report combined index/table buffers as "Buffers" and only show "Table Buffers" broken out. This was suggested off-list by Andres, and I've realized this is also otherwise confusing when there are child nodes below that accumulate up. - Fix a bug relating to parallel query reporting where previously the table stack contents would not be copied from parallel workers to the leader. - Add documentation and update EXPLAIN ANALYZE examples that reference Index Scan nodes. 0008 adds a pg_session_buffer_usage() module for testing the global counters. This helps to verify the handling of aborts behave sanely (and can run on both master and patched), but I don't think we should commit this. --- Two questions on my mind: 1) Should we call this "instrumentation context" (InstrContext?) instead of "instrumentation stack" (InstrStack)? When writing comments I found the difference between "stack entry" and "stack" confusing at times, and "context" feels a bit more clear as a term (e.g. as in "CurrentInstrContext" or "CurrentInstrumentationContext"). 2) For 0007, "Table Buffers" feels a bit inconsistent with "Heap Fetches" and "Heap Blocks" used elsewhere, should we potentially use "Heap Buffers", or change the existing names to "Table ..." instead? And one follow-up on a prior note: On Tue, Jan 13, 2026 at 12:01=E2=80=AFAM Lukas Fittl wrot= e: > Its also worth noting that 2defd0006255 just added a new > "instrument_node.h". We could consider moving the per-node > instrumentation structs and associated functions there (but probably > keep a single "instrument.c" unit file?). Thoughts? I've consider this again and think that's not a good idea, because instrument_node.h seems specifically focused on parallel query - so I've left all new methods/structs in instrument.h for now. Thanks, Lukas --=20 Lukas Fittl --000000000000702390064b8a3016 Content-Type: application/octet-stream; name="v6-0004-instrumentation-Add-additional-regression-tests-c.patch" Content-Disposition: attachment; filename="v6-0004-instrumentation-Add-additional-regression-tests-c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm02xadt3 RnJvbSAzZDliMWE2NTg5YTBjNzBiMzI2YzgyZDIwZjEzZTY0YzE5ZDY5YTJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBT dW4sIDIyIEZlYiAyMDI2IDE2OjEyOjQ4IC0wODAwClN1YmplY3Q6IFtQQVRDSCB2NiA0LzhdIGlu c3RydW1lbnRhdGlvbjogQWRkIGFkZGl0aW9uYWwgcmVncmVzc2lvbiB0ZXN0cwogY292ZXJpbmcg YnVmZmVyIHVzYWdlCgpUaGlzIGFkZHMgcmVncmVzc2lvbiB0ZXN0cyB0aGF0IGNvdmVyIHNvbWUg b2YgdGhlIGV4cGVjdGVkIGJlaGF2aW91cgphcm91bmQgdGhlIGJ1ZmZlciBzdGF0aXN0aWNzIHJl cG9ydGVkIGluIEVYUExBSU4gQU5BTFlaRSwgc3BlY2lmaWNhbGx5CmhvdyB0aGV5IGJlaGF2ZSBp biBwYXJhbGxlbCBxdWVyeSwgbmVzdGVkIGZ1bmN0aW9uIGNhbGxzIGFuZCBhYm9ydApzaXR1YXRp b25zLgoKVGVzdGluZyB0aGlzIGlzIGNoYWxsZW5naW5nIGJlY2F1c2UgdGhlcmUgY2FuIGJlIGRp ZmZlcmVudCBzb3VyY2VzIG9mCmJ1ZmZlciBhY3Rpdml0eSwgc28gd2UgcmVseSBvbiB0ZW1wb3Jh cnkgdGFibGVzIHdoZXJlIHdlIGNhbiB0byBwcm92ZQp0aGF0IGFjdGl2aXR5IHdhcyBjYXB0dXJl ZCBhbmQgbm90IGxvc3QuIFRoaXMgc3VwcG9ydHMgYSBmdXR1cmUgY29tbWl0CnRoYXQgd2lsbCBy ZXdvcmsgc29tZSBvZiB0aGUgaW5zdHJ1bWVudGF0aW9uIGxvZ2ljIHRoYXQgY291bGQgY2F1c2UK YXJlYXMgY292ZXJlZCBieSB0aGVzZSB0ZXN0cyB0byBmYWlsLgoKQXV0aG9yOiBMdWthcyBGaXR0 bCA8bHVrYXNAZml0dGwuY29tPgpSZXZpZXdlZC1ieToKRGlzY3Vzc2lvbjoKLS0tCiAuLi4vcGdf c3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3V0aWxpdHkub3V0ICAgfCAgNzAgKysrKysrKwogY29u dHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQvd2FsLm91dCAgIHwgIDQ4ICsrKysrCiBj b250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvdXRpbGl0eS5zcWwgICAgfCAgNTYgKysrKysK IGNvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3NxbC93YWwuc3FsICAgICAgICB8ICAzMyArKysK IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXhwbGFpbi5vdXQgICAgICAgICB8IDE5NyArKysr KysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2V4cGxhaW4uc3FsICAgICAgICAg ICAgICB8IDE5NCArKysrKysrKysrKysrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCA1OTggaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVk L3V0aWxpdHkub3V0IGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQvdXRpbGl0 eS5vdXQKaW5kZXggZTRkNjU2NGVhNWIuLmNiYTQ4N2Y2YmU1IDEwMDY0NAotLS0gYS9jb250cmli L3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC91dGlsaXR5Lm91dAorKysgYi9jb250cmliL3Bn X3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC91dGlsaXR5Lm91dApAQCAtMjg5LDYgKzI4OSw3NiBA QCBTRUxFQ1QgY2FsbHMsIHJvd3MsIHF1ZXJ5IEZST00gcGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVS IEJZIHF1ZXJ5IENPTExBVEUgIkMiOwogICAgICAxIHwgICAgMSB8IFNFTEVDVCBwZ19zdGF0X3N0 YXRlbWVudHNfcmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0CiAoMyByb3dzKQogCistLSBCdWZmZXIg c3RhdHMgc2hvdWxkIGZsb3cgdGhyb3VnaCBFWFBMQUlOIEFOQUxZWkUKK0NSRUFURSBURU1QIFRB QkxFIGZsb3dfdGhyb3VnaF90ZXN0IChhIGludCwgYiBjaGFyKDIwMCkpOworSU5TRVJUIElOVE8g Zmxvd190aHJvdWdoX3Rlc3QgU0VMRUNUIGksIHJlcGVhdCgneCcsIDIwMCkgRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwgNTAwMCkgQVMgaTsKK0NSRUFURSBGVU5DVElPTiBydW5fZXhwbGFpbl9idWZm ZXJzX3Rlc3QoKSBSRVRVUk5TIHZvaWQgQVMgJCQKK0RFQ0xBUkUKK0JFR0lOCisgICAgRVhFQ1VU RSAnRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUykgU0VMRUNUICogRlJPTSBmbG93X3Rocm91Z2hf dGVzdCc7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIHBnX3N0YXRfc3RhdGVt ZW50c19yZXNldCgpIElTIE5PVCBOVUxMIEFTIHQ7CisgdCAKKy0tLQorIHQKKygxIHJvdykKKwor U0VMRUNUIHJ1bl9leHBsYWluX2J1ZmZlcnNfdGVzdCgpOworIHJ1bl9leHBsYWluX2J1ZmZlcnNf dGVzdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKKy0tIEVYUExB SU4gZW50cmllcyBzaG91bGQgaGF2ZSBub24temVybyBidWZmZXIgc3RhdHMKK1NFTEVDVCBxdWVy eSwgbG9jYWxfYmxrc19oaXQgKyBsb2NhbF9ibGtzX3JlYWQgPiAwIGFzIGhhc19idWZmZXJfc3Rh dHMKK0ZST00gcGdfc3RhdF9zdGF0ZW1lbnRzCitXSEVSRSBxdWVyeSBMSUtFICdTRUxFQ1QgcnVu X2V4cGxhaW5fYnVmZmVyc190ZXN0JScKK09SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiOworICAg ICAgICAgICAgICAgcXVlcnkgICAgICAgICAgICAgICB8IGhhc19idWZmZXJfc3RhdHMgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBTRUxF Q1QgcnVuX2V4cGxhaW5fYnVmZmVyc190ZXN0KCkgfCB0CisoMSByb3cpCisKK0RST1AgRlVOQ1RJ T04gcnVuX2V4cGxhaW5fYnVmZmVyc190ZXN0OworRFJPUCBUQUJMRSBmbG93X3Rocm91Z2hfdGVz dDsKKy0tIFZhbGlkYXRlIGJ1ZmZlci9XQUwgY291bnRpbmcgZHVyaW5nIGFib3J0CitTRVQgcGdf c3RhdF9zdGF0ZW1lbnRzLnRyYWNrID0gJ2FsbCc7CitDUkVBVEUgVEVNUCBUQUJMRSBwZ3NzX2Nh bGxfdGFiIChhIGludCwgYiBjaGFyKDIwKSk7CitDUkVBVEUgVEVNUCBUQUJMRSBwZ3NzX2NhbGxf dGFiMiAoYSBpbnQsIGIgY2hhcigyMCkpOworSU5TRVJUIElOVE8gcGdzc19jYWxsX3RhYiBWQUxV RVMgKDAsICd6enonKTsKK0NSRUFURSBQUk9DRURVUkUgcGdzc19jYWxsX3JvbGxiYWNrX3Byb2Mo KSBBUyAkJAorREVDTEFSRQorICAgIHYgaW50OworQkVHSU4KKyAgICBFWFBMQUlOIEFOQUxZWkUg V0lUSCBpbnMgQVMgKElOU0VSVCBJTlRPIHBnc3NfY2FsbF90YWIyIFNFTEVDVCAqIEZST00gcGdz c19jYWxsX3RhYiBSRVRVUk5JTkcgYSkKKyAgICBTRUxFQ1QgYSAvIDAgSU5UTyB2IEZST00gaW5z OworRVhDRVBUSU9OIFdIRU4gZGl2aXNpb25fYnlfemVybyBUSEVOCitFTkQ7CiskJCBMQU5HVUFH RSBwbHBnc3FsOworU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50c19yZXNldCgpIElTIE5PVCBOVUxM IEFTIHQ7CisgdCAKKy0tLQorIHQKKygxIHJvdykKKworQ0FMTCBwZ3NzX2NhbGxfcm9sbGJhY2tf cHJvYygpOworU0VMRUNUIHF1ZXJ5LCBjYWxscywKK2xvY2FsX2Jsa3NfaGl0ICsgbG9jYWxfYmxr c19yZWFkID4gMCBhcyBsb2NhbF9oaXRyZWFkLAord2FsX2J5dGVzID4gMCBhcyB3YWxfYnl0ZXNf Z2VuZXJhdGVkLAord2FsX3JlY29yZHMgPiAwIGFzIHdhbF9yZWNvcmRzX2dlbmVyYXRlZAorRlJP TSBwZ19zdGF0X3N0YXRlbWVudHMKK1dIRVJFIHF1ZXJ5IExJS0UgJyVwZ3NzX2NhbGxfcm9sbGJh Y2tfcHJvYyUnCitPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKKyAgICAgICAgICAgICBxdWVy eSAgICAgICAgICAgICAgfCBjYWxscyB8IGxvY2FsX2hpdHJlYWQgfCB3YWxfYnl0ZXNfZ2VuZXJh dGVkIHwgd2FsX3JlY29yZHNfZ2VuZXJhdGVkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgQ0FMTCBwZ3NzX2NhbGxfcm9sbGJhY2tfcHJvYygpIHwgICAg IDEgfCB0ICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgICB8IHQKKygxIHJvdykKKwor RFJPUCBUQUJMRSBwZ3NzX2NhbGxfdGFiMjsKK0RST1AgVEFCTEUgcGdzc19jYWxsX3RhYjsKK0RS T1AgUFJPQ0VEVVJFIHBnc3NfY2FsbF9yb2xsYmFja19wcm9jOworU0VUIHBnX3N0YXRfc3RhdGVt ZW50cy50cmFjayA9ICd0b3AnOwogLS0gQ0FMTAogQ1JFQVRFIE9SIFJFUExBQ0UgUFJPQ0VEVVJF IHN1bV9vbmUoaSBpbnQpIEFTICQkCiBERUNMQVJFCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3N0 YXRfc3RhdGVtZW50cy9leHBlY3RlZC93YWwub3V0IGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVu dHMvZXhwZWN0ZWQvd2FsLm91dAppbmRleCA5NzdlMzgyZDg0OC4uNjExMjEzZGFlZjYgMTAwNjQ0 Ci0tLSBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3dhbC5vdXQKKysrIGIv Y29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQvd2FsLm91dApAQCAtMjgsMyArMjgs NTEgQEAgU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50c19yZXNldCgpIElTIE5PVCBOVUxMIEFTIHQ7 CiAgdAogKDEgcm93KQogCistLQorLS0gVmFsaWRhdGUgYnVmZmVyL1dBTCBjb3VudGluZyB3aXRo IGNhdWdodCBleGNlcHRpb24gaW4gUEwvcGdTUUwKKy0tCitDUkVBVEUgVEVNUCBUQUJMRSBwZ3Nz X2Vycm9yX3RhYiAoYSBpbnQsIGIgY2hhcigyMCkpOworSU5TRVJUIElOVE8gcGdzc19lcnJvcl90 YWIgVkFMVUVTICgwLCAnenp6Jyk7CitDUkVBVEUgRlVOQ1RJT04gcGdzc19lcnJvcl9mdW5jKCkg UkVUVVJOUyB2b2lkIEFTICQkCitERUNMQVJFCisgICAgdiBpbnQ7CitCRUdJTgorICAgIFdJVEgg aW5zIEFTIChJTlNFUlQgSU5UTyBwZ3NzX2Vycm9yX3RhYiBWQUxVRVMgKDEsICdhYWEnKSBSRVRV Uk5JTkcgYSkKKyAgICBTRUxFQ1QgYSAvIDAgSU5UTyB2IEZST00gaW5zOworRVhDRVBUSU9OIFdI RU4gZGl2aXNpb25fYnlfemVybyBUSEVOCisgICAgTlVMTDsKK0VORDsKKyQkIExBTkdVQUdFIHBs cGdzcWw7CitTRUxFQ1QgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0KCkgSVMgTk9UIE5VTEwgQVMg dDsKKyB0IAorLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgcGdzc19lcnJvcl9mdW5jKCk7Cisg cGdzc19lcnJvcl9mdW5jIAorLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworLS0gQnVm ZmVyL1dBTCB1c2FnZSBmcm9tIHRoZSB3Q1RFIElOU0VSVCBzaG91bGQgc3Vydml2ZSB0aGUgZXhj ZXB0aW9uCitTRUxFQ1QgcXVlcnksIGNhbGxzLAorbG9jYWxfYmxrc19oaXQgKyBsb2NhbF9ibGtz X3JlYWQgPiAwIGFzIGxvY2FsX2hpdHJlYWQsCit3YWxfYnl0ZXMgPiAwIGFzIHdhbF9ieXRlc19n ZW5lcmF0ZWQsCit3YWxfcmVjb3JkcyA+IDAgYXMgd2FsX3JlY29yZHNfZ2VuZXJhdGVkCitGUk9N IHBnX3N0YXRfc3RhdGVtZW50cworV0hFUkUgcXVlcnkgTElLRSAnJXBnc3NfZXJyb3JfZnVuYyUn CitPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKKyAgICAgICAgICBxdWVyeSAgICAgICAgICAg fCBjYWxscyB8IGxvY2FsX2hpdHJlYWQgfCB3YWxfYnl0ZXNfZ2VuZXJhdGVkIHwgd2FsX3JlY29y ZHNfZ2VuZXJhdGVkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg U0VMRUNUIHBnc3NfZXJyb3JfZnVuYygpIHwgICAgIDEgfCB0ICAgICAgICAgICAgIHwgdCAgICAg ICAgICAgICAgICAgICB8IHQKKygxIHJvdykKKworRFJPUCBUQUJMRSBwZ3NzX2Vycm9yX3RhYjsK K0RST1AgRlVOQ1RJT04gcGdzc19lcnJvcl9mdW5jOworU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50 c19yZXNldCgpIElTIE5PVCBOVUxMIEFTIHQ7CisgdCAKKy0tLQorIHQKKygxIHJvdykKKwpkaWZm IC0tZ2l0IGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvc3FsL3V0aWxpdHkuc3FsIGIvY29u dHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvc3FsL3V0aWxpdHkuc3FsCmluZGV4IGRkOTcyMDNjMjEw Li43NTQwZTQ5YzczYyAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvc3Fs L3V0aWxpdHkuc3FsCisrKyBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3NxbC91dGlsaXR5 LnNxbApAQCAtMTUyLDYgKzE1Miw2MiBAQCBFWFBMQUlOIChjb3N0cyBvZmYpIFNFTEVDVCBhIEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIEFTIHRhYihhKSBXSEVSRSBhID0gNzsKIAogU0VMRUNU IGNhbGxzLCByb3dzLCBxdWVyeSBGUk9NIHBnX3N0YXRfc3RhdGVtZW50cyBPUkRFUiBCWSBxdWVy eSBDT0xMQVRFICJDIjsKIAorLS0gQnVmZmVyIHN0YXRzIHNob3VsZCBmbG93IHRocm91Z2ggRVhQ TEFJTiBBTkFMWVpFCitDUkVBVEUgVEVNUCBUQUJMRSBmbG93X3Rocm91Z2hfdGVzdCAoYSBpbnQs IGIgY2hhcigyMDApKTsKK0lOU0VSVCBJTlRPIGZsb3dfdGhyb3VnaF90ZXN0IFNFTEVDVCBpLCBy ZXBlYXQoJ3gnLCAyMDApIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMDApIEFTIGk7CisKK0NS RUFURSBGVU5DVElPTiBydW5fZXhwbGFpbl9idWZmZXJzX3Rlc3QoKSBSRVRVUk5TIHZvaWQgQVMg JCQKK0RFQ0xBUkUKK0JFR0lOCisgICAgRVhFQ1VURSAnRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVS UykgU0VMRUNUICogRlJPTSBmbG93X3Rocm91Z2hfdGVzdCc7CitFTkQ7CiskJCBMQU5HVUFHRSBw bHBnc3FsOworCitTRUxFQ1QgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0KCkgSVMgTk9UIE5VTEwg QVMgdDsKKworU0VMRUNUIHJ1bl9leHBsYWluX2J1ZmZlcnNfdGVzdCgpOworCistLSBFWFBMQUlO IGVudHJpZXMgc2hvdWxkIGhhdmUgbm9uLXplcm8gYnVmZmVyIHN0YXRzCitTRUxFQ1QgcXVlcnks IGxvY2FsX2Jsa3NfaGl0ICsgbG9jYWxfYmxrc19yZWFkID4gMCBhcyBoYXNfYnVmZmVyX3N0YXRz CitGUk9NIHBnX3N0YXRfc3RhdGVtZW50cworV0hFUkUgcXVlcnkgTElLRSAnU0VMRUNUIHJ1bl9l eHBsYWluX2J1ZmZlcnNfdGVzdCUnCitPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKKworRFJP UCBGVU5DVElPTiBydW5fZXhwbGFpbl9idWZmZXJzX3Rlc3Q7CitEUk9QIFRBQkxFIGZsb3dfdGhy b3VnaF90ZXN0OworCistLSBWYWxpZGF0ZSBidWZmZXIvV0FMIGNvdW50aW5nIGR1cmluZyBhYm9y dAorU0VUIHBnX3N0YXRfc3RhdGVtZW50cy50cmFjayA9ICdhbGwnOworQ1JFQVRFIFRFTVAgVEFC TEUgcGdzc19jYWxsX3RhYiAoYSBpbnQsIGIgY2hhcigyMCkpOworQ1JFQVRFIFRFTVAgVEFCTEUg cGdzc19jYWxsX3RhYjIgKGEgaW50LCBiIGNoYXIoMjApKTsKK0lOU0VSVCBJTlRPIHBnc3NfY2Fs bF90YWIgVkFMVUVTICgwLCAnenp6Jyk7CisKK0NSRUFURSBQUk9DRURVUkUgcGdzc19jYWxsX3Jv bGxiYWNrX3Byb2MoKSBBUyAkJAorREVDTEFSRQorICAgIHYgaW50OworQkVHSU4KKyAgICBFWFBM QUlOIEFOQUxZWkUgV0lUSCBpbnMgQVMgKElOU0VSVCBJTlRPIHBnc3NfY2FsbF90YWIyIFNFTEVD VCAqIEZST00gcGdzc19jYWxsX3RhYiBSRVRVUk5JTkcgYSkKKyAgICBTRUxFQ1QgYSAvIDAgSU5U TyB2IEZST00gaW5zOworRVhDRVBUSU9OIFdIRU4gZGl2aXNpb25fYnlfemVybyBUSEVOCitFTkQ7 CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1QgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0 KCkgSVMgTk9UIE5VTEwgQVMgdDsKK0NBTEwgcGdzc19jYWxsX3JvbGxiYWNrX3Byb2MoKTsKKwor U0VMRUNUIHF1ZXJ5LCBjYWxscywKK2xvY2FsX2Jsa3NfaGl0ICsgbG9jYWxfYmxrc19yZWFkID4g MCBhcyBsb2NhbF9oaXRyZWFkLAord2FsX2J5dGVzID4gMCBhcyB3YWxfYnl0ZXNfZ2VuZXJhdGVk LAord2FsX3JlY29yZHMgPiAwIGFzIHdhbF9yZWNvcmRzX2dlbmVyYXRlZAorRlJPTSBwZ19zdGF0 X3N0YXRlbWVudHMKK1dIRVJFIHF1ZXJ5IExJS0UgJyVwZ3NzX2NhbGxfcm9sbGJhY2tfcHJvYyUn CitPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKKworRFJPUCBUQUJMRSBwZ3NzX2NhbGxfdGFi MjsKK0RST1AgVEFCTEUgcGdzc19jYWxsX3RhYjsKK0RST1AgUFJPQ0VEVVJFIHBnc3NfY2FsbF9y b2xsYmFja19wcm9jOworU0VUIHBnX3N0YXRfc3RhdGVtZW50cy50cmFjayA9ICd0b3AnOworCiAt LSBDQUxMCiBDUkVBVEUgT1IgUkVQTEFDRSBQUk9DRURVUkUgc3VtX29uZShpIGludCkgQVMgJCQK IERFQ0xBUkUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3NxbC93YWwu c3FsIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvc3FsL3dhbC5zcWwKaW5kZXggMWRjMTU1 MmE4MWUuLjQ2N2UzMjFiMjA2IDEwMDY0NAotLS0gYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50 cy9zcWwvd2FsLnNxbAorKysgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvd2FsLnNx bApAQCAtMTgsMyArMTgsMzYgQEAgd2FsX3JlY29yZHMgPiAwIGFzIHdhbF9yZWNvcmRzX2dlbmVy YXRlZCwKIHdhbF9yZWNvcmRzID49IHJvd3MgYXMgd2FsX3JlY29yZHNfZ2Vfcm93cwogRlJPTSBw Z19zdGF0X3N0YXRlbWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CiBTRUxFQ1QgcGdf c3RhdF9zdGF0ZW1lbnRzX3Jlc2V0KCkgSVMgTk9UIE5VTEwgQVMgdDsKKworLS0KKy0tIFZhbGlk YXRlIGJ1ZmZlci9XQUwgY291bnRpbmcgd2l0aCBjYXVnaHQgZXhjZXB0aW9uIGluIFBML3BnU1FM CistLQorQ1JFQVRFIFRFTVAgVEFCTEUgcGdzc19lcnJvcl90YWIgKGEgaW50LCBiIGNoYXIoMjAp KTsKK0lOU0VSVCBJTlRPIHBnc3NfZXJyb3JfdGFiIFZBTFVFUyAoMCwgJ3p6eicpOworCitDUkVB VEUgRlVOQ1RJT04gcGdzc19lcnJvcl9mdW5jKCkgUkVUVVJOUyB2b2lkIEFTICQkCitERUNMQVJF CisgICAgdiBpbnQ7CitCRUdJTgorICAgIFdJVEggaW5zIEFTIChJTlNFUlQgSU5UTyBwZ3NzX2Vy cm9yX3RhYiBWQUxVRVMgKDEsICdhYWEnKSBSRVRVUk5JTkcgYSkKKyAgICBTRUxFQ1QgYSAvIDAg SU5UTyB2IEZST00gaW5zOworRVhDRVBUSU9OIFdIRU4gZGl2aXNpb25fYnlfemVybyBUSEVOCisg ICAgTlVMTDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBwZ19zdGF0X3N0 YXRlbWVudHNfcmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0OworU0VMRUNUIHBnc3NfZXJyb3JfZnVu YygpOworCistLSBCdWZmZXIvV0FMIHVzYWdlIGZyb20gdGhlIHdDVEUgSU5TRVJUIHNob3VsZCBz dXJ2aXZlIHRoZSBleGNlcHRpb24KK1NFTEVDVCBxdWVyeSwgY2FsbHMsCitsb2NhbF9ibGtzX2hp dCArIGxvY2FsX2Jsa3NfcmVhZCA+IDAgYXMgbG9jYWxfaGl0cmVhZCwKK3dhbF9ieXRlcyA+IDAg YXMgd2FsX2J5dGVzX2dlbmVyYXRlZCwKK3dhbF9yZWNvcmRzID4gMCBhcyB3YWxfcmVjb3Jkc19n ZW5lcmF0ZWQKK0ZST00gcGdfc3RhdF9zdGF0ZW1lbnRzCitXSEVSRSBxdWVyeSBMSUtFICclcGdz c19lcnJvcl9mdW5jJScKK09SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiOworCitEUk9QIFRBQkxF IHBnc3NfZXJyb3JfdGFiOworRFJPUCBGVU5DVElPTiBwZ3NzX2Vycm9yX2Z1bmM7CitTRUxFQ1Qg cGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0KCkgSVMgTk9UIE5VTEwgQVMgdDsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXhwbGFpbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2V4cGxhaW4ub3V0CmluZGV4IDdjMWYyNmIxODJjLi5lMjhlNzU0MzY5MyAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9leHBsYWluLm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V4cGxhaW4ub3V0CkBAIC04MjIsMyArODIyLDIwMCBAQCBz ZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsYnVmZmVycyBvZmYsY29zdHMg b2ZmKSBzZWxlY3Qgc3VtKG4pIG92ZQogKDkgcm93cykKIAogcmVzZXQgd29ya19tZW07CistLSBF WFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTKSBzaG91bGQgcmVwb3J0IGJ1ZmZlciB1c2FnZSBmcm9t IFBML3BnU1FMCistLSBFWENFUFRJT04gYmxvY2tzLCBldmVuIGFmdGVyIHN1YnRyYW5zYWN0aW9u IHJvbGxiYWNrLgorQ1JFQVRFIFRFTVAgVEFCTEUgZXhwbGFpbl9leGNfdGFiIChhIGludCwgYiBj aGFyKDIwKSk7CitJTlNFUlQgSU5UTyBleHBsYWluX2V4Y190YWIgVkFMVUVTICgwLCAnenp6Jyk7 CitDUkVBVEUgRlVOQ1RJT04gZXhwbGFpbl9leGNfZnVuYygpIFJFVFVSTlMgdm9pZCBBUyAkJAor REVDTEFSRQorICAgIHYgaW50OworQkVHSU4KKyAgICBXSVRIIGlucyBBUyAoSU5TRVJUIElOVE8g ZXhwbGFpbl9leGNfdGFiIFZBTFVFUyAoMSwgJ2FhYScpIFJFVFVSTklORyBhKQorICAgIFNFTEVD VCBhIC8gMCBJTlRPIHYgRlJPTSBpbnM7CitFWENFUFRJT04gV0hFTiBkaXZpc2lvbl9ieV96ZXJv IFRIRU4KKyAgICBOVUxMOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBGVU5D VElPTiBjaGVja19leHBsYWluX2V4Y2VwdGlvbl9idWZmZXJzKCkgUkVUVVJOUyBib29sZWFuIEFT ICQkCitERUNMQVJFCisgICAgcGxhbl9qc29uIGpzb247CisgICAgbm9kZSBqc29uOworICAgIHRv dGFsX2J1ZmZlcnMgaW50OworQkVHSU4KKyAgICBFWEVDVVRFICdFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTLCBDT1NUUyBPRkYsIEZPUk1BVCBKU09OKQorICAgICAgICBTRUxFQ1QgZXhwbGFpbl9l eGNfZnVuYygpJyBJTlRPIHBsYW5fanNvbjsKKyAgICBub2RlIDo9IHBsYW5fanNvbi0+MC0+J1Bs YW4nOworICAgIHRvdGFsX2J1ZmZlcnMgOj0KKyAgICAgICAgQ09BTEVTQ0UoKG5vZGUtPj4nTG9j YWwgSGl0IEJsb2NrcycpOjppbnQsIDApICsKKyAgICAgICAgQ09BTEVTQ0UoKG5vZGUtPj4nTG9j YWwgUmVhZCBCbG9ja3MnKTo6aW50LCAwKTsKKyAgICBSRVRVUk4gdG90YWxfYnVmZmVycyA+IDA7 CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIGNoZWNrX2V4cGxhaW5fZXhjZXB0 aW9uX2J1ZmZlcnMoKSBBUyBleGNlcHRpb25fYnVmZmVyc192aXNpYmxlOworIGV4Y2VwdGlvbl9i dWZmZXJzX3Zpc2libGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cp CisKKy0tIEFsc28gdGVzdCB3aXRoIG5lc3RlZCBFWFBMQUlOIEFOQUxZWkUgKHR3byBsZXZlbHMg b2YgaW5zdHJ1bWVudGF0aW9uKQorQ1JFQVRFIEZVTkNUSU9OIGNoZWNrX2V4cGxhaW5fZXhjZXB0 aW9uX2J1ZmZlcnNfbmVzdGVkKCkgUkVUVVJOUyBib29sZWFuIEFTICQkCitERUNMQVJFCisgICAg cGxhbl9qc29uIGpzb247CisgICAgbm9kZSBqc29uOworICAgIHRvdGFsX2J1ZmZlcnMgaW50Owor QkVHSU4KKyAgICBFWEVDVVRFICdFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTLCBDT1NUUyBPRkYs IEZPUk1BVCBKU09OKQorICAgICAgICBTRUxFQ1QgY2hlY2tfZXhwbGFpbl9leGNlcHRpb25fYnVm ZmVycygpJyBJTlRPIHBsYW5fanNvbjsKKyAgICBub2RlIDo9IHBsYW5fanNvbi0+MC0+J1BsYW4n OworICAgIHRvdGFsX2J1ZmZlcnMgOj0KKyAgICAgICAgQ09BTEVTQ0UoKG5vZGUtPj4nTG9jYWwg SGl0IEJsb2NrcycpOjppbnQsIDApICsKKyAgICAgICAgQ09BTEVTQ0UoKG5vZGUtPj4nTG9jYWwg UmVhZCBCbG9ja3MnKTo6aW50LCAwKTsKKyAgICBSRVRVUk4gdG90YWxfYnVmZmVycyA+IDA7CitF TkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIGNoZWNrX2V4cGxhaW5fZXhjZXB0aW9u X2J1ZmZlcnNfbmVzdGVkKCkgQVMgZXhjZXB0aW9uX2J1ZmZlcnNfbmVzdGVkX3Zpc2libGU7Cisg ZXhjZXB0aW9uX2J1ZmZlcnNfbmVzdGVkX3Zpc2libGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitEUk9QIEZVTkNUSU9OIGNoZWNrX2V4cGxhaW5f ZXhjZXB0aW9uX2J1ZmZlcnNfbmVzdGVkOworRFJPUCBGVU5DVElPTiBjaGVja19leHBsYWluX2V4 Y2VwdGlvbl9idWZmZXJzOworRFJPUCBGVU5DVElPTiBleHBsYWluX2V4Y19mdW5jOworRFJPUCBU QUJMRSBleHBsYWluX2V4Y190YWI7CistLSBDdXJzb3IgaW5zdHJ1bWVudGF0aW9uIHRlc3QuCist LSBWZXJpZnkgdGhhdCBidWZmZXIgdXNhZ2UgaXMgY29ycmVjdGx5IHRyYWNrZWQgdGhyb3VnaCBj dXJzb3IgZXhlY3V0aW9uIHBhdGhzLgorLS0gTm9uLXNjcm9sbGFibGUgY3Vyc29ycyBleGVyY2lz ZSBFeGVjU2h1dGRvd25Ob2RlIGFmdGVyIGVhY2ggRXhlY3V0b3JSdW4KKy0tIChFWEVDX0ZMQUdf QkFDS1dBUkQgaXMgbm90IHNldCksIHdoaWxlIHNjcm9sbGFibGUgY3Vyc29ycyBvbmx5IHNodXQg ZG93bgorLS0gbm9kZXMgaW4gRXhlY3V0b3JGaW5pc2guIEluIGJvdGggY2FzZXMsIGJ1ZmZlciB1 c2FnZSBmcm9tIHRoZSBpbm5lciBjdXJzb3IKKy0tIHNjYW4gc2hvdWxkIGJlIGNvcnJlY3RseSBh Y2N1bXVsYXRlZC4KK0NSRUFURSBURU1QIFRBQkxFIGN1cnNvcl9idWZfdGVzdCBBUyBTRUxFQ1Qg KiBGUk9NIHRlbmsxOworQ1JFQVRFIEZVTkNUSU9OIGN1cnNvcl9ub3Njcm9sbF9zY2FuKCkgUkVU VVJOUyBiaWdpbnQgQVMgJCQKK0RFQ0xBUkUKKyAgICBjdXIgTk8gU0NST0xMIENVUlNPUiBGT1Ig U0VMRUNUICogRlJPTSBjdXJzb3JfYnVmX3Rlc3Q7CisgICAgcmVjIFJFQ09SRDsKKyAgICBjbnQg YmlnaW50IDo9IDA7CitCRUdJTgorICAgIE9QRU4gY3VyOworICAgIExPT1AKKyAgICAgICAgRkVU Q0ggTkVYVCBGUk9NIGN1ciBJTlRPIHJlYzsKKyAgICAgICAgRVhJVCBXSEVOIE5PVCBGT1VORDsK KyAgICAgICAgY250IDo9IGNudCArIDE7CisgICAgRU5EIExPT1A7CisgICAgQ0xPU0UgY3VyOwor ICAgIFJFVFVSTiBjbnQ7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIEZVTkNU SU9OIGN1cnNvcl9zY3JvbGxfc2NhbigpIFJFVFVSTlMgYmlnaW50IEFTICQkCitERUNMQVJFCisg ICAgY3VyIFNDUk9MTCBDVVJTT1IgRk9SIFNFTEVDVCAqIEZST00gY3Vyc29yX2J1Zl90ZXN0Owor ICAgIHJlYyBSRUNPUkQ7CisgICAgY250IGJpZ2ludCA6PSAwOworQkVHSU4KKyAgICBPUEVOIGN1 cjsKKyAgICBMT09QCisgICAgICAgIEZFVENIIE5FWFQgRlJPTSBjdXIgSU5UTyByZWM7CisgICAg ICAgIEVYSVQgV0hFTiBOT1QgRk9VTkQ7CisgICAgICAgIGNudCA6PSBjbnQgKyAxOworICAgIEVO RCBMT09QOworICAgIENMT1NFIGN1cjsKKyAgICBSRVRVUk4gY250OworRU5EOworJCQgTEFOR1VB R0UgcGxwZ3NxbDsKK0NSRUFURSBGVU5DVElPTiBjaGVja19jdXJzb3JfZXhwbGFpbl9idWZmZXJz KCkgUkVUVVJOUyBUQUJMRShub3Njcm9sbF9vayBib29sZWFuLCBzY3JvbGxfb2sgYm9vbGVhbikg QVMgJCQKK0RFQ0xBUkUKKyAgICBwbGFuX2pzb24ganNvbjsKKyAgICBub2RlIGpzb247CisgICAg ZGlyZWN0X2J1ZiBpbnQ7CisgICAgbm9zY3JvbGxfYnVmIGludDsKKyAgICBzY3JvbGxfYnVmIGlu dDsKK0JFR0lOCisgICAgLS0gRGlyZWN0IHNjYW46IGdldCBsZWFmIFNlcSBTY2FuIG5vZGUgYnVm ZmVycyBhcyBiYXNlbGluZQorICAgIEVYRUNVVEUgJ0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMs IENPU1RTIE9GRiwgRk9STUFUIEpTT04pCisgICAgICAgIFNFTEVDVCAqIEZST00gY3Vyc29yX2J1 Zl90ZXN0JyBJTlRPIHBsYW5fanNvbjsKKyAgICBub2RlIDo9IHBsYW5fanNvbi0+MC0+J1BsYW4n OworICAgIFdISUxFIG5vZGUtPidQbGFucycgSVMgTk9UIE5VTEwgTE9PUAorICAgICAgICBub2Rl IDo9IG5vZGUtPidQbGFucyctPjA7CisgICAgRU5EIExPT1A7CisgICAgZGlyZWN0X2J1ZiA6PQor ICAgICAgICBDT0FMRVNDRSgobm9kZS0+PidMb2NhbCBIaXQgQmxvY2tzJyk6OmludCwgMCkgKwor ICAgICAgICBDT0FMRVNDRSgobm9kZS0+PidMb2NhbCBSZWFkIEJsb2NrcycpOjppbnQsIDApOwor CisgICAgLS0gTm9uLXNjcm9sbGFibGUgY3Vyc29yIHBhdGg6IEV4ZWNTaHV0ZG93bk5vZGUgcnVu cyBhZnRlciBlYWNoIEV4ZWN1dG9yUnVuCisgICAgRVhFQ1VURSAnRVhQTEFJTiAoQU5BTFlaRSwg QlVGRkVSUywgQ09TVFMgT0ZGLCBGT1JNQVQgSlNPTikKKyAgICAgICAgU0VMRUNUIGN1cnNvcl9u b3Njcm9sbF9zY2FuKCknIElOVE8gcGxhbl9qc29uOworICAgIG5vZGUgOj0gcGxhbl9qc29uLT4w LT4nUGxhbic7CisgICAgbm9zY3JvbGxfYnVmIDo9CisgICAgICAgIENPQUxFU0NFKChub2RlLT4+ J0xvY2FsIEhpdCBCbG9ja3MnKTo6aW50LCAwKSArCisgICAgICAgIENPQUxFU0NFKChub2RlLT4+ J0xvY2FsIFJlYWQgQmxvY2tzJyk6OmludCwgMCk7CisKKyAgICAtLSBTY3JvbGxhYmxlIGN1cnNv ciBwYXRoOiBFeGVjU2h1dGRvd25Ob2RlIGlzIHNraXBwZWQKKyAgICBFWEVDVVRFICdFWFBMQUlO IChBTkFMWVpFLCBCVUZGRVJTLCBDT1NUUyBPRkYsIEZPUk1BVCBKU09OKQorICAgICAgICBTRUxF Q1QgY3Vyc29yX3Njcm9sbF9zY2FuKCknIElOVE8gcGxhbl9qc29uOworICAgIG5vZGUgOj0gcGxh bl9qc29uLT4wLT4nUGxhbic7CisgICAgc2Nyb2xsX2J1ZiA6PQorICAgICAgICBDT0FMRVNDRSgo bm9kZS0+PidMb2NhbCBIaXQgQmxvY2tzJyk6OmludCwgMCkgKworICAgICAgICBDT0FMRVNDRSgo bm9kZS0+PidMb2NhbCBSZWFkIEJsb2NrcycpOjppbnQsIDApOworCisgICAgLS0gQm90aCBjdXJz b3IgcGF0aHMgc2hvdWxkIHJlcG9ydCBidWZmZXIgY291bnRzIGFib3V0IGFzIGhpZ2ggYXMKKyAg ICAtLSB0aGUgZGlyZWN0IHNjYW4gKHNhbWUgZGF0YSBwbHVzIG1pbm9yIGNhdGFsb2cgb3Zlcmhl YWQpLCBhbmQgbm90CisgICAgLS0gZG91YmxlLWNvdW50ZWQgKDwgMnggdGhlIGRpcmVjdCBzY2Fu KQorICAgIFJFVFVSTiBRVUVSWSBTRUxFQ1QKKyAgICAgICAgKG5vc2Nyb2xsX2J1ZiA+PSBkaXJl Y3RfYnVmICogMC41IEFORCBub3Njcm9sbF9idWYgPCBkaXJlY3RfYnVmICogMiksCisgICAgICAg IChzY3JvbGxfYnVmID49IGRpcmVjdF9idWYgKiAwLjUgQU5EIHNjcm9sbF9idWYgPCBkaXJlY3Rf YnVmICogMik7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUICogRlJPTSBjaGVj a19jdXJzb3JfZXhwbGFpbl9idWZmZXJzKCk7Cisgbm9zY3JvbGxfb2sgfCBzY3JvbGxfb2sgCist LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgdCAgICAgICAgICAgfCB0CisoMSByb3cpCisKK0RS T1AgRlVOQ1RJT04gY2hlY2tfY3Vyc29yX2V4cGxhaW5fYnVmZmVyczsKK0RST1AgRlVOQ1RJT04g Y3Vyc29yX25vc2Nyb2xsX3NjYW47CitEUk9QIEZVTkNUSU9OIGN1cnNvcl9zY3JvbGxfc2NhbjsK K0RST1AgVEFCTEUgY3Vyc29yX2J1Zl90ZXN0OworLS0gUGFyYWxsZWwgcXVlcnkgYnVmZmVyIGRv dWJsZS1jb3VudGluZyB0ZXN0LgorLS0KKy0tIENvbXBhcmVzIHNlcmlhbCBTZXEgU2NhbiBidWZm ZXJzIHZzIHBhcmFsbGVsIFNlcSBTY2FuIGJ1ZmZlcnMuCistLSBUaGV5IHNjYW4gdGhlIHNhbWUg dGFibGUgc28gdGhlIGJ1ZmZlciBjb3VudCBzaG91bGQgYmUgc2ltaWxhci4KKy0tIERvdWJsZS1j b3VudGluZyB3b3VsZCBtYWtlIHRoZSBwYXJhbGxlbCBjb3VudCB+MnggbGFyZ2VyLgorQ1JFQVRF IEZVTkNUSU9OIGNoZWNrX3BhcmFsbGVsX2V4cGxhaW5fYnVmZmVycygpIFJFVFVSTlMgVEFCTEUo cmF0aW8gbnVtZXJpYykgQVMgJCQKK0RFQ0xBUkUKKyAgICBwbGFuX2pzb24ganNvbjsKKyAgICBz ZXJpYWxfYnVmZmVycyBpbnQ7CisgICAgcGFyYWxsZWxfYnVmZmVycyBpbnQ7CisgICAgbm9kZSBq c29uOworQkVHSU4KKyAgICAtLSBTZXJpYWwgLS0KKyAgICBTRVQgTE9DQUwgbWF4X3BhcmFsbGVs X3dvcmtlcnNfcGVyX2dhdGhlciA9IDA7CisgICAgRVhFQ1VURSAnRVhQTEFJTiAoQU5BTFlaRSwg QlVGRkVSUywgQ09TVFMgT0ZGLCBGT1JNQVQgSlNPTikKKyAgICAgICAgU0VMRUNUIGNvdW50KCop IEZST00gdGVuazEnIElOVE8gcGxhbl9qc29uOworICAgIG5vZGUgOj0gcGxhbl9qc29uLT4wLT4n UGxhbic7CisgICAgc2VyaWFsX2J1ZmZlcnMgOj0KKyAgICAgICAgQ09BTEVTQ0UoKG5vZGUtPj4n U2hhcmVkIEhpdCBCbG9ja3MnKTo6aW50LCAwKSArCisgICAgICAgIENPQUxFU0NFKChub2RlLT4+ J1NoYXJlZCBSZWFkIEJsb2NrcycpOjppbnQsIDApOworCisgICAgLS0gUGFyYWxsZWwgLS0KKyAg ICBTRVQgTE9DQUwgcGFyYWxsZWxfc2V0dXBfY29zdCA9IDA7CisgICAgU0VUIExPQ0FMIHBhcmFs bGVsX3R1cGxlX2Nvc3QgPSAwOworICAgIFNFVCBMT0NBTCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nh bl9zaXplID0gMDsKKyAgICBTRVQgTE9DQUwgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhl ciA9IDI7CisgICAgU0VUIExPQ0FMIHBhcmFsbGVsX2xlYWRlcl9wYXJ0aWNpcGF0aW9uID0gb2Zm OworICAgIEVYRUNVVEUgJ0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMsIENPU1RTIE9GRiwgRk9S TUFUIEpTT04pCisgICAgICAgIFNFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxJyBJTlRPIHBsYW5f anNvbjsKKyAgICBub2RlIDo9IHBsYW5fanNvbi0+MC0+J1BsYW4nOworICAgIHBhcmFsbGVsX2J1 ZmZlcnMgOj0KKyAgICAgICAgQ09BTEVTQ0UoKG5vZGUtPj4nU2hhcmVkIEhpdCBCbG9ja3MnKTo6 aW50LCAwKSArCisgICAgICAgIENPQUxFU0NFKChub2RlLT4+J1NoYXJlZCBSZWFkIEJsb2Nrcycp OjppbnQsIDApOworCisgICAgUkVUVVJOIFFVRVJZIFNFTEVDVCByb3VuZChwYXJhbGxlbF9idWZm ZXJzOjpudW1lcmljIC8gR1JFQVRFU1Qoc2VyaWFsX2J1ZmZlcnMsIDEpKTsKK0VORDsKKyQkIExB TkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgKiBGUk9NIGNoZWNrX3BhcmFsbGVsX2V4cGxhaW5fYnVm ZmVycygpOworIHJhdGlvIAorLS0tLS0tLQorICAgICAxCisoMSByb3cpCisKK0RST1AgRlVOQ1RJ T04gY2hlY2tfcGFyYWxsZWxfZXhwbGFpbl9idWZmZXJzOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZXhwbGFpbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9leHBsYWluLnNx bAppbmRleCBlYmRhYjQyNjA0Yi4uY2Y1YzYzMzVhMTkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2V4cGxhaW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2V4cGxhaW4u c3FsCkBAIC0xODgsMyArMTg4LDE5NyBAQCBzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4g KGFuYWx5emUsYnVmZmVycyBvZmYsY29zdHMgb2ZmKSBzZWxlY3Qgc3VtKG4pIG92ZQogLS0gVGVz dCB0dXBsZXN0b3JlIHN0b3JhZ2UgdXNhZ2UgaW4gV2luZG93IGFnZ3JlZ2F0ZSAobWVtb3J5IGFu ZCBkaXNrIGNhc2UsIGZpbmFsIHJlc3VsdCBpcyBkaXNrKQogc2VsZWN0IGV4cGxhaW5fZmlsdGVy KCdleHBsYWluIChhbmFseXplLGJ1ZmZlcnMgb2ZmLGNvc3RzIG9mZikgc2VsZWN0IHN1bShuKSBv dmVyKHBhcnRpdGlvbiBieSBtKSBmcm9tIChTRUxFQ1QgbiA8IDMgYXMgbSwgbiBmcm9tIGdlbmVy YXRlX3NlcmllcygxLDI1MDApIGEobikpJyk7CiByZXNldCB3b3JrX21lbTsKKworLS0gRVhQTEFJ TiAoQU5BTFlaRSwgQlVGRkVSUykgc2hvdWxkIHJlcG9ydCBidWZmZXIgdXNhZ2UgZnJvbSBQTC9w Z1NRTAorLS0gRVhDRVBUSU9OIGJsb2NrcywgZXZlbiBhZnRlciBzdWJ0cmFuc2FjdGlvbiByb2xs YmFjay4KK0NSRUFURSBURU1QIFRBQkxFIGV4cGxhaW5fZXhjX3RhYiAoYSBpbnQsIGIgY2hhcigy MCkpOworSU5TRVJUIElOVE8gZXhwbGFpbl9leGNfdGFiIFZBTFVFUyAoMCwgJ3p6eicpOworCitD UkVBVEUgRlVOQ1RJT04gZXhwbGFpbl9leGNfZnVuYygpIFJFVFVSTlMgdm9pZCBBUyAkJAorREVD TEFSRQorICAgIHYgaW50OworQkVHSU4KKyAgICBXSVRIIGlucyBBUyAoSU5TRVJUIElOVE8gZXhw bGFpbl9leGNfdGFiIFZBTFVFUyAoMSwgJ2FhYScpIFJFVFVSTklORyBhKQorICAgIFNFTEVDVCBh IC8gMCBJTlRPIHYgRlJPTSBpbnM7CitFWENFUFRJT04gV0hFTiBkaXZpc2lvbl9ieV96ZXJvIFRI RU4KKyAgICBOVUxMOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIEZVTkNU SU9OIGNoZWNrX2V4cGxhaW5fZXhjZXB0aW9uX2J1ZmZlcnMoKSBSRVRVUk5TIGJvb2xlYW4gQVMg JCQKK0RFQ0xBUkUKKyAgICBwbGFuX2pzb24ganNvbjsKKyAgICBub2RlIGpzb247CisgICAgdG90 YWxfYnVmZmVycyBpbnQ7CitCRUdJTgorICAgIEVYRUNVVEUgJ0VYUExBSU4gKEFOQUxZWkUsIEJV RkZFUlMsIENPU1RTIE9GRiwgRk9STUFUIEpTT04pCisgICAgICAgIFNFTEVDVCBleHBsYWluX2V4 Y19mdW5jKCknIElOVE8gcGxhbl9qc29uOworICAgIG5vZGUgOj0gcGxhbl9qc29uLT4wLT4nUGxh bic7CisgICAgdG90YWxfYnVmZmVycyA6PQorICAgICAgICBDT0FMRVNDRSgobm9kZS0+PidMb2Nh bCBIaXQgQmxvY2tzJyk6OmludCwgMCkgKworICAgICAgICBDT0FMRVNDRSgobm9kZS0+PidMb2Nh bCBSZWFkIEJsb2NrcycpOjppbnQsIDApOworICAgIFJFVFVSTiB0b3RhbF9idWZmZXJzID4gMDsK K0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBjaGVja19leHBsYWluX2V4Y2Vw dGlvbl9idWZmZXJzKCkgQVMgZXhjZXB0aW9uX2J1ZmZlcnNfdmlzaWJsZTsKKworLS0gQWxzbyB0 ZXN0IHdpdGggbmVzdGVkIEVYUExBSU4gQU5BTFlaRSAodHdvIGxldmVscyBvZiBpbnN0cnVtZW50 YXRpb24pCitDUkVBVEUgRlVOQ1RJT04gY2hlY2tfZXhwbGFpbl9leGNlcHRpb25fYnVmZmVyc19u ZXN0ZWQoKSBSRVRVUk5TIGJvb2xlYW4gQVMgJCQKK0RFQ0xBUkUKKyAgICBwbGFuX2pzb24ganNv bjsKKyAgICBub2RlIGpzb247CisgICAgdG90YWxfYnVmZmVycyBpbnQ7CitCRUdJTgorICAgIEVY RUNVVEUgJ0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMsIENPU1RTIE9GRiwgRk9STUFUIEpTT04p CisgICAgICAgIFNFTEVDVCBjaGVja19leHBsYWluX2V4Y2VwdGlvbl9idWZmZXJzKCknIElOVE8g cGxhbl9qc29uOworICAgIG5vZGUgOj0gcGxhbl9qc29uLT4wLT4nUGxhbic7CisgICAgdG90YWxf YnVmZmVycyA6PQorICAgICAgICBDT0FMRVNDRSgobm9kZS0+PidMb2NhbCBIaXQgQmxvY2tzJyk6 OmludCwgMCkgKworICAgICAgICBDT0FMRVNDRSgobm9kZS0+PidMb2NhbCBSZWFkIEJsb2Nrcycp OjppbnQsIDApOworICAgIFJFVFVSTiB0b3RhbF9idWZmZXJzID4gMDsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CisKK1NFTEVDVCBjaGVja19leHBsYWluX2V4Y2VwdGlvbl9idWZmZXJzX25l c3RlZCgpIEFTIGV4Y2VwdGlvbl9idWZmZXJzX25lc3RlZF92aXNpYmxlOworCitEUk9QIEZVTkNU SU9OIGNoZWNrX2V4cGxhaW5fZXhjZXB0aW9uX2J1ZmZlcnNfbmVzdGVkOworRFJPUCBGVU5DVElP TiBjaGVja19leHBsYWluX2V4Y2VwdGlvbl9idWZmZXJzOworRFJPUCBGVU5DVElPTiBleHBsYWlu X2V4Y19mdW5jOworRFJPUCBUQUJMRSBleHBsYWluX2V4Y190YWI7CisKKy0tIEN1cnNvciBpbnN0 cnVtZW50YXRpb24gdGVzdC4KKy0tIFZlcmlmeSB0aGF0IGJ1ZmZlciB1c2FnZSBpcyBjb3JyZWN0 bHkgdHJhY2tlZCB0aHJvdWdoIGN1cnNvciBleGVjdXRpb24gcGF0aHMuCistLSBOb24tc2Nyb2xs YWJsZSBjdXJzb3JzIGV4ZXJjaXNlIEV4ZWNTaHV0ZG93bk5vZGUgYWZ0ZXIgZWFjaCBFeGVjdXRv clJ1bgorLS0gKEVYRUNfRkxBR19CQUNLV0FSRCBpcyBub3Qgc2V0KSwgd2hpbGUgc2Nyb2xsYWJs ZSBjdXJzb3JzIG9ubHkgc2h1dCBkb3duCistLSBub2RlcyBpbiBFeGVjdXRvckZpbmlzaC4gSW4g Ym90aCBjYXNlcywgYnVmZmVyIHVzYWdlIGZyb20gdGhlIGlubmVyIGN1cnNvcgorLS0gc2NhbiBz aG91bGQgYmUgY29ycmVjdGx5IGFjY3VtdWxhdGVkLgorCitDUkVBVEUgVEVNUCBUQUJMRSBjdXJz b3JfYnVmX3Rlc3QgQVMgU0VMRUNUICogRlJPTSB0ZW5rMTsKKworQ1JFQVRFIEZVTkNUSU9OIGN1 cnNvcl9ub3Njcm9sbF9zY2FuKCkgUkVUVVJOUyBiaWdpbnQgQVMgJCQKK0RFQ0xBUkUKKyAgICBj dXIgTk8gU0NST0xMIENVUlNPUiBGT1IgU0VMRUNUICogRlJPTSBjdXJzb3JfYnVmX3Rlc3Q7Cisg ICAgcmVjIFJFQ09SRDsKKyAgICBjbnQgYmlnaW50IDo9IDA7CitCRUdJTgorICAgIE9QRU4gY3Vy OworICAgIExPT1AKKyAgICAgICAgRkVUQ0ggTkVYVCBGUk9NIGN1ciBJTlRPIHJlYzsKKyAgICAg ICAgRVhJVCBXSEVOIE5PVCBGT1VORDsKKyAgICAgICAgY250IDo9IGNudCArIDE7CisgICAgRU5E IExPT1A7CisgICAgQ0xPU0UgY3VyOworICAgIFJFVFVSTiBjbnQ7CitFTkQ7CiskJCBMQU5HVUFH RSBwbHBnc3FsOworCitDUkVBVEUgRlVOQ1RJT04gY3Vyc29yX3Njcm9sbF9zY2FuKCkgUkVUVVJO UyBiaWdpbnQgQVMgJCQKK0RFQ0xBUkUKKyAgICBjdXIgU0NST0xMIENVUlNPUiBGT1IgU0VMRUNU ICogRlJPTSBjdXJzb3JfYnVmX3Rlc3Q7CisgICAgcmVjIFJFQ09SRDsKKyAgICBjbnQgYmlnaW50 IDo9IDA7CitCRUdJTgorICAgIE9QRU4gY3VyOworICAgIExPT1AKKyAgICAgICAgRkVUQ0ggTkVY VCBGUk9NIGN1ciBJTlRPIHJlYzsKKyAgICAgICAgRVhJVCBXSEVOIE5PVCBGT1VORDsKKyAgICAg ICAgY250IDo9IGNudCArIDE7CisgICAgRU5EIExPT1A7CisgICAgQ0xPU0UgY3VyOworICAgIFJF VFVSTiBjbnQ7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgRlVOQ1RJT04g Y2hlY2tfY3Vyc29yX2V4cGxhaW5fYnVmZmVycygpIFJFVFVSTlMgVEFCTEUobm9zY3JvbGxfb2sg Ym9vbGVhbiwgc2Nyb2xsX29rIGJvb2xlYW4pIEFTICQkCitERUNMQVJFCisgICAgcGxhbl9qc29u IGpzb247CisgICAgbm9kZSBqc29uOworICAgIGRpcmVjdF9idWYgaW50OworICAgIG5vc2Nyb2xs X2J1ZiBpbnQ7CisgICAgc2Nyb2xsX2J1ZiBpbnQ7CitCRUdJTgorICAgIC0tIERpcmVjdCBzY2Fu OiBnZXQgbGVhZiBTZXEgU2NhbiBub2RlIGJ1ZmZlcnMgYXMgYmFzZWxpbmUKKyAgICBFWEVDVVRF ICdFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTLCBDT1NUUyBPRkYsIEZPUk1BVCBKU09OKQorICAg ICAgICBTRUxFQ1QgKiBGUk9NIGN1cnNvcl9idWZfdGVzdCcgSU5UTyBwbGFuX2pzb247CisgICAg bm9kZSA6PSBwbGFuX2pzb24tPjAtPidQbGFuJzsKKyAgICBXSElMRSBub2RlLT4nUGxhbnMnIElT IE5PVCBOVUxMIExPT1AKKyAgICAgICAgbm9kZSA6PSBub2RlLT4nUGxhbnMnLT4wOworICAgIEVO RCBMT09QOworICAgIGRpcmVjdF9idWYgOj0KKyAgICAgICAgQ09BTEVTQ0UoKG5vZGUtPj4nTG9j YWwgSGl0IEJsb2NrcycpOjppbnQsIDApICsKKyAgICAgICAgQ09BTEVTQ0UoKG5vZGUtPj4nTG9j YWwgUmVhZCBCbG9ja3MnKTo6aW50LCAwKTsKKworICAgIC0tIE5vbi1zY3JvbGxhYmxlIGN1cnNv ciBwYXRoOiBFeGVjU2h1dGRvd25Ob2RlIHJ1bnMgYWZ0ZXIgZWFjaCBFeGVjdXRvclJ1bgorICAg IEVYRUNVVEUgJ0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMsIENPU1RTIE9GRiwgRk9STUFUIEpT T04pCisgICAgICAgIFNFTEVDVCBjdXJzb3Jfbm9zY3JvbGxfc2NhbigpJyBJTlRPIHBsYW5fanNv bjsKKyAgICBub2RlIDo9IHBsYW5fanNvbi0+MC0+J1BsYW4nOworICAgIG5vc2Nyb2xsX2J1ZiA6 PQorICAgICAgICBDT0FMRVNDRSgobm9kZS0+PidMb2NhbCBIaXQgQmxvY2tzJyk6OmludCwgMCkg KworICAgICAgICBDT0FMRVNDRSgobm9kZS0+PidMb2NhbCBSZWFkIEJsb2NrcycpOjppbnQsIDAp OworCisgICAgLS0gU2Nyb2xsYWJsZSBjdXJzb3IgcGF0aDogRXhlY1NodXRkb3duTm9kZSBpcyBz a2lwcGVkCisgICAgRVhFQ1VURSAnRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUywgQ09TVFMgT0ZG LCBGT1JNQVQgSlNPTikKKyAgICAgICAgU0VMRUNUIGN1cnNvcl9zY3JvbGxfc2NhbigpJyBJTlRP IHBsYW5fanNvbjsKKyAgICBub2RlIDo9IHBsYW5fanNvbi0+MC0+J1BsYW4nOworICAgIHNjcm9s bF9idWYgOj0KKyAgICAgICAgQ09BTEVTQ0UoKG5vZGUtPj4nTG9jYWwgSGl0IEJsb2NrcycpOjpp bnQsIDApICsKKyAgICAgICAgQ09BTEVTQ0UoKG5vZGUtPj4nTG9jYWwgUmVhZCBCbG9ja3MnKTo6 aW50LCAwKTsKKworICAgIC0tIEJvdGggY3Vyc29yIHBhdGhzIHNob3VsZCByZXBvcnQgYnVmZmVy IGNvdW50cyBhYm91dCBhcyBoaWdoIGFzCisgICAgLS0gdGhlIGRpcmVjdCBzY2FuIChzYW1lIGRh dGEgcGx1cyBtaW5vciBjYXRhbG9nIG92ZXJoZWFkKSwgYW5kIG5vdAorICAgIC0tIGRvdWJsZS1j b3VudGVkICg8IDJ4IHRoZSBkaXJlY3Qgc2NhbikKKyAgICBSRVRVUk4gUVVFUlkgU0VMRUNUCisg ICAgICAgIChub3Njcm9sbF9idWYgPj0gZGlyZWN0X2J1ZiAqIDAuNSBBTkQgbm9zY3JvbGxfYnVm IDwgZGlyZWN0X2J1ZiAqIDIpLAorICAgICAgICAoc2Nyb2xsX2J1ZiA+PSBkaXJlY3RfYnVmICog MC41IEFORCBzY3JvbGxfYnVmIDwgZGlyZWN0X2J1ZiAqIDIpOworRU5EOworJCQgTEFOR1VBR0Ug cGxwZ3NxbDsKKworU0VMRUNUICogRlJPTSBjaGVja19jdXJzb3JfZXhwbGFpbl9idWZmZXJzKCk7 CisKK0RST1AgRlVOQ1RJT04gY2hlY2tfY3Vyc29yX2V4cGxhaW5fYnVmZmVyczsKK0RST1AgRlVO Q1RJT04gY3Vyc29yX25vc2Nyb2xsX3NjYW47CitEUk9QIEZVTkNUSU9OIGN1cnNvcl9zY3JvbGxf c2NhbjsKK0RST1AgVEFCTEUgY3Vyc29yX2J1Zl90ZXN0OworCistLSBQYXJhbGxlbCBxdWVyeSBi dWZmZXIgZG91YmxlLWNvdW50aW5nIHRlc3QuCistLQorLS0gQ29tcGFyZXMgc2VyaWFsIFNlcSBT Y2FuIGJ1ZmZlcnMgdnMgcGFyYWxsZWwgU2VxIFNjYW4gYnVmZmVycy4KKy0tIFRoZXkgc2NhbiB0 aGUgc2FtZSB0YWJsZSBzbyB0aGUgYnVmZmVyIGNvdW50IHNob3VsZCBiZSBzaW1pbGFyLgorLS0g RG91YmxlLWNvdW50aW5nIHdvdWxkIG1ha2UgdGhlIHBhcmFsbGVsIGNvdW50IH4yeCBsYXJnZXIu CitDUkVBVEUgRlVOQ1RJT04gY2hlY2tfcGFyYWxsZWxfZXhwbGFpbl9idWZmZXJzKCkgUkVUVVJO UyBUQUJMRShyYXRpbyBudW1lcmljKSBBUyAkJAorREVDTEFSRQorICAgIHBsYW5fanNvbiBqc29u OworICAgIHNlcmlhbF9idWZmZXJzIGludDsKKyAgICBwYXJhbGxlbF9idWZmZXJzIGludDsKKyAg ICBub2RlIGpzb247CitCRUdJTgorICAgIC0tIFNlcmlhbCAtLQorICAgIFNFVCBMT0NBTCBtYXhf cGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0gMDsKKyAgICBFWEVDVVRFICdFWFBMQUlOIChB TkFMWVpFLCBCVUZGRVJTLCBDT1NUUyBPRkYsIEZPUk1BVCBKU09OKQorICAgICAgICBTRUxFQ1Qg Y291bnQoKikgRlJPTSB0ZW5rMScgSU5UTyBwbGFuX2pzb247CisgICAgbm9kZSA6PSBwbGFuX2pz b24tPjAtPidQbGFuJzsKKyAgICBzZXJpYWxfYnVmZmVycyA6PQorICAgICAgICBDT0FMRVNDRSgo bm9kZS0+PidTaGFyZWQgSGl0IEJsb2NrcycpOjppbnQsIDApICsKKyAgICAgICAgQ09BTEVTQ0Uo KG5vZGUtPj4nU2hhcmVkIFJlYWQgQmxvY2tzJyk6OmludCwgMCk7CisKKyAgICAtLSBQYXJhbGxl bCAtLQorICAgIFNFVCBMT0NBTCBwYXJhbGxlbF9zZXR1cF9jb3N0ID0gMDsKKyAgICBTRVQgTE9D QUwgcGFyYWxsZWxfdHVwbGVfY29zdCA9IDA7CisgICAgU0VUIExPQ0FMIG1pbl9wYXJhbGxlbF90 YWJsZV9zY2FuX3NpemUgPSAwOworICAgIFNFVCBMT0NBTCBtYXhfcGFyYWxsZWxfd29ya2Vyc19w ZXJfZ2F0aGVyID0gMjsKKyAgICBTRVQgTE9DQUwgcGFyYWxsZWxfbGVhZGVyX3BhcnRpY2lwYXRp b24gPSBvZmY7CisgICAgRVhFQ1VURSAnRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUywgQ09TVFMg T0ZGLCBGT1JNQVQgSlNPTikKKyAgICAgICAgU0VMRUNUIGNvdW50KCopIEZST00gdGVuazEnIElO VE8gcGxhbl9qc29uOworICAgIG5vZGUgOj0gcGxhbl9qc29uLT4wLT4nUGxhbic7CisgICAgcGFy YWxsZWxfYnVmZmVycyA6PQorICAgICAgICBDT0FMRVNDRSgobm9kZS0+PidTaGFyZWQgSGl0IEJs b2NrcycpOjppbnQsIDApICsKKyAgICAgICAgQ09BTEVTQ0UoKG5vZGUtPj4nU2hhcmVkIFJlYWQg QmxvY2tzJyk6OmludCwgMCk7CisKKyAgICBSRVRVUk4gUVVFUlkgU0VMRUNUIHJvdW5kKHBhcmFs bGVsX2J1ZmZlcnM6Om51bWVyaWMgLyBHUkVBVEVTVChzZXJpYWxfYnVmZmVycywgMSkpOworRU5E OworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VMRUNUICogRlJPTSBjaGVja19wYXJhbGxlbF9l eHBsYWluX2J1ZmZlcnMoKTsKKworRFJPUCBGVU5DVElPTiBjaGVja19wYXJhbGxlbF9leHBsYWlu X2J1ZmZlcnM7Ci0tIAoyLjQ3LjEKCg== --000000000000702390064b8a3016 Content-Type: application/octet-stream; name="v6-0003-instrumentation-Separate-per-node-and-trigger-log.patch" Content-Disposition: attachment; filename="v6-0003-instrumentation-Separate-per-node-and-trigger-log.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm02xadr2 RnJvbSAwYmM4M2MwY2FjM2YyYzk5ODdhN2JiNjdjZGIxZTVhMTVlODcwMWI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBT YXQsIDEgTWFyIDIwMjUgMTk6MzE6MzAgLTA4MDAKU3ViamVjdDogW1BBVENIIHY2IDMvOF0gaW5z dHJ1bWVudGF0aW9uOiBTZXBhcmF0ZSBwZXItbm9kZSBhbmQgdHJpZ2dlciBsb2dpYwogZnJvbSBv dGhlciB1c2VzCgpQcmV2aW91c2x5IGRpZmZlcmVudCBwbGFjZXMgKGUuZy4gcXVlcnkgInRvdGFs IHRpbWUiKSB3ZXJlIHJlcHVycG9zaW5nCnRoZSBJbnN0cnVtZW50YXRpb24gc3RydWN0IGluaXRp YWxseSBpbnRyb2R1Y2VkIGZvciBjYXB0dXJpbmcgcGVyLW5vZGUKc3RhdGlzdGljcyBkdXJpbmcg ZXhlY3V0aW9uLiBUaGlzIG92ZXJ1c2Ugb2YgdGhlIHNhbWUgc3RydWN0IGlzIGNvbmZ1c2luZywK ZS5nLiBieSBjbHV0dGVyaW5nIGNhbGxzIG9mIEluc3RyU3RhcnROb2RlL0luc3RyU3RvcE5vZGUg aW4gdW5yZWxhdGVkCmNvZGUgcGF0aHMsIGFuZCBwcmV2ZW50cyBmdXR1cmUgcmVmYWN0b3Jpbmdz LgoKSW5zdGVhZCwgc2ltcGxpZnkgdGhlIEluc3RydW1lbnRhdGlvbiBzdHJ1Y3QgdG8gb25seSB0 cmFjayB0aW1lIGFuZApXQUwvYnVmZmVyIHVzYWdlLiBTaW1pbGFybHksIGRyb3AgdGhlIHVzZSBv ZiBJbnN0ckVuZExvb3Agb3V0c2lkZSBvZgpwZXItbm9kZSBpbnN0cnVtZW50YXRpb24gLSB0aGVz ZSBjYWxscyB3ZXJlIGFkZGVkIHdpdGhvdXQgYW55IGFwcGFyZW50CmJlbmVmaXQgc2luY2UgdGhl IHJlbGV2YW50IGZpZWxkcyB3ZXJlIG5ldmVyIHJlYWQuCgpJbnRyb2R1Y2UgdGhlIE5vZGVJbnN0 cnVtZW50YXRpb24gc3RydWN0IHRvIGNhcnJ5IGZvcndhcmQgdGhlIHBlci1ub2RlCmluc3RydW1l bnRhdGlvbiBpbmZvcm1hdGlvbiwgYW5kIGludHJvZHVjZSBUcmlnZ2VySW5zdHJ1bWVudGF0aW9u IHRvCmNhcHR1cmUgdHJpZ2dlciB0aW1pbmcgYW5kIGZpcmluZ3MgKHByZXZpb3VzbHkgY291bnRl ZCBpbiAibnR1cGxlcyIpLgpXb3JrZXJJbnN0cnVtZW50YXRpb24gaXMgcmVuYW1lZCB0byBXb3Jr ZXJOb2RlSW5zdHJ1bWVudGF0aW9uIGZvciBjbGFyaXR5LgoKSW4gcGFzc2luZywgZHJvcCB0aGUg Im4iIGFyZ3VtZW50IHRvIEluc3RyQWxsb2MsIGFzIGFsbCByZW1haW5pbmcgY2FsbGVycwpuZWVk IGV4YWN0bHkgb25lIEluc3RydW1lbnRhdGlvbiBzdHJ1Y3QuCgpBdXRob3I6IEx1a2FzIEZpdHRs IDxsdWthc0BmaXR0bC5jb20+ClJldmlld2VkLWJ5OgpEaXNjdXNzaW9uOgotLS0KIGNvbnRyaWIv YXV0b19leHBsYWluL2F1dG9fZXhwbGFpbi5jICAgICAgICAgICB8ICAgOCArLQogLi4uL3BnX3N0 YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYyAgIHwgICA4ICstCiBjb250cmliL3Bv c3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuYyAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9iYWNrZW5k L2NvbW1hbmRzL2V4cGxhaW4uYyAgICAgICAgICAgICAgICB8ICAyNyArKy0tCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy90cmlnZ2VyLmMgICAgICAgICAgICAgICAgfCAgMjIgKystLQogc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgIDEwICstCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYyAgICAgICAgICAgfCAgMjQgKystLQogc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY1Byb2Nub2RlLmMgICAgICAgICAgIHwgICA0ICstCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9pbnN0cnVtZW50LmMgICAgICAgICAgICAgfCAxMjMgKysrKysrKysrKysrKyst LS0tCiBzcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmggICAgICAgICAgICAgfCAgNjYg KysrKysrKystLQogc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAgICAgICAg IHwgICA4ICstCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAg fCAgIDQgKy0KIDEyIGZpbGVzIGNoYW5nZWQsIDIxMCBpbnNlcnRpb25zKCspLCA5NiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL2F1dG9fZXhwbGFpbi9hdXRvX2V4cGxhaW4uYyBi L2NvbnRyaWIvYXV0b19leHBsYWluL2F1dG9fZXhwbGFpbi5jCmluZGV4IGU4NTZjZDM1YTZmLi4z OWJmMjU0M2I3MCAxMDA2NDQKLS0tIGEvY29udHJpYi9hdXRvX2V4cGxhaW4vYXV0b19leHBsYWlu LmMKKysrIGIvY29udHJpYi9hdXRvX2V4cGxhaW4vYXV0b19leHBsYWluLmMKQEAgLTMxNSw3ICsz MTUsNyBAQCBleHBsYWluX0V4ZWN1dG9yU3RhcnQoUXVlcnlEZXNjICpxdWVyeURlc2MsIGludCBl ZmxhZ3MpCiAJCQlNZW1vcnlDb250ZXh0IG9sZGN4dDsKIAogCQkJb2xkY3h0ID0gTWVtb3J5Q29u dGV4dFN3aXRjaFRvKHF1ZXJ5RGVzYy0+ZXN0YXRlLT5lc19xdWVyeV9jeHQpOwotCQkJcXVlcnlE ZXNjLT50b3RhbHRpbWUgPSBJbnN0ckFsbG9jKDEsIElOU1RSVU1FTlRfQUxMLCBmYWxzZSk7CisJ CQlxdWVyeURlc2MtPnRvdGFsdGltZSA9IEluc3RyQWxsb2MoSU5TVFJVTUVOVF9BTEwpOwogCQkJ TWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CiAJCX0KIAl9CkBAIC0zODEsMTIgKzM4MSw2 IEBAIGV4cGxhaW5fRXhlY3V0b3JFbmQoUXVlcnlEZXNjICpxdWVyeURlc2MpCiAJCSAqLwogCQlv bGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8ocXVlcnlEZXNjLT5lc3RhdGUtPmVzX3F1ZXJ5 X2N4dCk7CiAKLQkJLyoKLQkJICogTWFrZSBzdXJlIHN0YXRzIGFjY3VtdWxhdGlvbiBpcyBkb25l LiAgKE5vdGU6IGl0J3Mgb2theSBpZiBzZXZlcmFsCi0JCSAqIGxldmVscyBvZiBob29rIGFsbCBk byB0aGlzLikKLQkJICovCi0JCUluc3RyRW5kTG9vcChxdWVyeURlc2MtPnRvdGFsdGltZSk7Ci0K IAkJLyogTG9nIHBsYW4gaWYgZHVyYXRpb24gaXMgZXhjZWVkZWQuICovCiAJCW1zZWMgPSBJTlNU Ul9USU1FX0dFVF9NSUxMSVNFQyhxdWVyeURlc2MtPnRvdGFsdGltZS0+dG90YWwpOwogCQlpZiAo bXNlYyA+PSBhdXRvX2V4cGxhaW5fbG9nX21pbl9kdXJhdGlvbikKZGlmZiAtLWdpdCBhL2NvbnRy aWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jIGIvY29udHJpYi9wZ19z dGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmMKaW5kZXggNGE0Mjc1MzNiZDguLjM4 OGIwNjhjY2VjIDEwMDY0NAotLS0gYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0 X3N0YXRlbWVudHMuYworKysgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0 YXRlbWVudHMuYwpAQCAtMTAyMyw3ICsxMDIzLDcgQEAgcGdzc19FeGVjdXRvclN0YXJ0KFF1ZXJ5 RGVzYyAqcXVlcnlEZXNjLCBpbnQgZWZsYWdzKQogCQkJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CiAK IAkJCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhxdWVyeURlc2MtPmVzdGF0ZS0+ZXNf cXVlcnlfY3h0KTsKLQkJCXF1ZXJ5RGVzYy0+dG90YWx0aW1lID0gSW5zdHJBbGxvYygxLCBJTlNU UlVNRU5UX0FMTCwgZmFsc2UpOworCQkJcXVlcnlEZXNjLT50b3RhbHRpbWUgPSBJbnN0ckFsbG9j KElOU1RSVU1FTlRfQUxMKTsKIAkJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOwogCQl9 CiAJfQpAQCAtMTA4MiwxMiArMTA4Miw2IEBAIHBnc3NfRXhlY3V0b3JFbmQoUXVlcnlEZXNjICpx dWVyeURlc2MpCiAJaWYgKHF1ZXJ5SWQgIT0gSU5UNjRDT05TVCgwKSAmJiBxdWVyeURlc2MtPnRv dGFsdGltZSAmJgogCQlwZ3NzX2VuYWJsZWQobmVzdGluZ19sZXZlbCkpCiAJewotCQkvKgotCQkg KiBNYWtlIHN1cmUgc3RhdHMgYWNjdW11bGF0aW9uIGlzIGRvbmUuICAoTm90ZTogaXQncyBva2F5 IGlmIHNldmVyYWwKLQkJICogbGV2ZWxzIG9mIGhvb2sgYWxsIGRvIHRoaXMuKQotCQkgKi8KLQkJ SW5zdHJFbmRMb29wKHF1ZXJ5RGVzYy0+dG90YWx0aW1lKTsKLQogCQlwZ3NzX3N0b3JlKHF1ZXJ5 RGVzYy0+c291cmNlVGV4dCwKIAkJCQkgICBxdWVyeUlkLAogCQkJCSAgIHF1ZXJ5RGVzYy0+cGxh bm5lZHN0bXQtPnN0bXRfbG9jYXRpb24sCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zk dy9wb3N0Z3Jlc19mZHcuYyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5jCmlu ZGV4IDYwZDkwMzI5YTY1Li42ZjBjYjJhMjg1YiAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jl c19mZHcvcG9zdGdyZXNfZmR3LmMKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNf ZmR3LmMKQEAgLTI3NzgsNyArMjc3OCw3IEBAIHBvc3RncmVzSXRlcmF0ZURpcmVjdE1vZGlmeShG b3JlaWduU2NhblN0YXRlICpub2RlKQogCWlmICghcmVzdWx0UmVsSW5mby0+cmlfcHJvamVjdFJl dHVybmluZykKIAl7CiAJCVR1cGxlVGFibGVTbG90ICpzbG90ID0gbm9kZS0+c3Muc3NfU2NhblR1 cGxlU2xvdDsKLQkJSW5zdHJ1bWVudGF0aW9uICppbnN0ciA9IG5vZGUtPnNzLnBzLmluc3RydW1l bnQ7CisJCU5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RyID0gbm9kZS0+c3MucHMuaW5zdHJ1bWVu dDsKIAogCQlBc3NlcnQoIWRtc3RhdGUtPmhhc19yZXR1cm5pbmcpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBs YWluLmMKaW5kZXggOTM5MThhMjIzYjguLmQ3ZjMzNjQ0ZDc5IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9leHBsYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jCkBAIC0xMDk5LDE4ICsxMDk5LDE1IEBAIHJlcG9ydF90cmlnZ2VycyhSZXN1bHRSZWxJbmZv ICpySW5mbywgYm9vbCBzaG93X3JlbG5hbWUsIEV4cGxhaW5TdGF0ZSAqZXMpCiAJZm9yIChudCA9 IDA7IG50IDwgckluZm8tPnJpX1RyaWdEZXNjLT5udW10cmlnZ2VyczsgbnQrKykKIAl7CiAJCVRy aWdnZXIgICAgKnRyaWcgPSBySW5mby0+cmlfVHJpZ0Rlc2MtPnRyaWdnZXJzICsgbnQ7Ci0JCUlu c3RydW1lbnRhdGlvbiAqaW5zdHIgPSBySW5mby0+cmlfVHJpZ0luc3RydW1lbnQgKyBudDsKKwkJ VHJpZ2dlckluc3RydW1lbnRhdGlvbiAqdGdpbnN0ciA9IHJJbmZvLT5yaV9UcmlnSW5zdHJ1bWVu dCArIG50OwogCQljaGFyCSAgICpyZWxuYW1lOwogCQljaGFyCSAgICpjb25uYW1lID0gTlVMTDsK IAotCQkvKiBNdXN0IGNsZWFuIHVwIGluc3RydW1lbnRhdGlvbiBzdGF0ZSAqLwotCQlJbnN0ckVu ZExvb3AoaW5zdHIpOwotCiAJCS8qCiAJCSAqIFdlIGlnbm9yZSB0cmlnZ2VycyB0aGF0IHdlcmUg bmV2ZXIgaW52b2tlZDsgdGhleSBsaWtlbHkgYXJlbid0CiAJCSAqIHJlbGV2YW50IHRvIHRoZSBj dXJyZW50IHF1ZXJ5IHR5cGUuCiAJCSAqLwotCQlpZiAoaW5zdHItPm50dXBsZXMgPT0gMCkKKwkJ aWYgKHRnaW5zdHItPmZpcmluZ3MgPT0gMCkKIAkJCWNvbnRpbnVlOwogCiAJCUV4cGxhaW5PcGVu R3JvdXAoIlRyaWdnZXIiLCBOVUxMLCB0cnVlLCBlcyk7CkBAIC0xMTM1LDExICsxMTMyLDExIEBA IHJlcG9ydF90cmlnZ2VycyhSZXN1bHRSZWxJbmZvICpySW5mbywgYm9vbCBzaG93X3JlbG5hbWUs IEV4cGxhaW5TdGF0ZSAqZXMpCiAJCQlpZiAoc2hvd19yZWxuYW1lKQogCQkJCWFwcGVuZFN0cmlu Z0luZm8oZXMtPnN0ciwgIiBvbiAlcyIsIHJlbG5hbWUpOwogCQkJaWYgKGVzLT50aW1pbmcpCi0J CQkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLCAiOiB0aW1lPSUuM2YgY2FsbHM9JS4wZlxuIiwK LQkJCQkJCQkJIElOU1RSX1RJTUVfR0VUX01JTExJU0VDKGluc3RyLT50b3RhbCksCi0JCQkJCQkJ CSBpbnN0ci0+bnR1cGxlcyk7CisJCQkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLCAiOiB0aW1l PSUuM2YgY2FsbHM9JWRcbiIsCisJCQkJCQkJCSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyh0Z2lu c3RyLT5pbnN0ci50b3RhbCksCisJCQkJCQkJCSB0Z2luc3RyLT5maXJpbmdzKTsKIAkJCWVsc2UK LQkJCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsICI6IGNhbGxzPSUuMGZcbiIsIGluc3RyLT5u dHVwbGVzKTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsICI6IGNhbGxzPSVkXG4iLCB0 Z2luc3RyLT5maXJpbmdzKTsKIAkJfQogCQllbHNlCiAJCXsKQEAgLTExNDksOSArMTE0Niw5IEBA IHJlcG9ydF90cmlnZ2VycyhSZXN1bHRSZWxJbmZvICpySW5mbywgYm9vbCBzaG93X3JlbG5hbWUs IEV4cGxhaW5TdGF0ZSAqZXMpCiAJCQlFeHBsYWluUHJvcGVydHlUZXh0KCJSZWxhdGlvbiIsIHJl bG5hbWUsIGVzKTsKIAkJCWlmIChlcy0+dGltaW5nKQogCQkJCUV4cGxhaW5Qcm9wZXJ0eUZsb2F0 KCJUaW1lIiwgIm1zIiwKLQkJCQkJCQkJCSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhpbnN0ci0+ dG90YWwpLCAzLAorCQkJCQkJCQkJIElOU1RSX1RJTUVfR0VUX01JTExJU0VDKHRnaW5zdHItPmlu c3RyLnRvdGFsKSwgMywKIAkJCQkJCQkJCSBlcyk7Ci0JCQlFeHBsYWluUHJvcGVydHlGbG9hdCgi Q2FsbHMiLCBOVUxMLCBpbnN0ci0+bnR1cGxlcywgMCwgZXMpOworCQkJRXhwbGFpblByb3BlcnR5 SW50ZWdlcigiQ2FsbHMiLCBOVUxMLCB0Z2luc3RyLT5maXJpbmdzLCBlcyk7CiAJCX0KIAogCQlp ZiAoY29ubmFtZSkKQEAgLTE4OTEsMTEgKzE4ODgsMTEgQEAgRXhwbGFpbk5vZGUoUGxhblN0YXRl ICpwbGFuc3RhdGUsIExpc3QgKmFuY2VzdG9ycywKIAkvKiBwcmVwYXJlIHBlci13b3JrZXIgZ2Vu ZXJhbCBleGVjdXRpb24gZGV0YWlscyAqLwogCWlmIChlcy0+d29ya2Vyc19zdGF0ZSAmJiBlcy0+ dmVyYm9zZSkKIAl7Ci0JCVdvcmtlckluc3RydW1lbnRhdGlvbiAqdyA9IHBsYW5zdGF0ZS0+d29y a2VyX2luc3RydW1lbnQ7CisJCVdvcmtlck5vZGVJbnN0cnVtZW50YXRpb24gKncgPSBwbGFuc3Rh dGUtPndvcmtlcl9pbnN0cnVtZW50OwogCiAJCWZvciAoaW50IG4gPSAwOyBuIDwgdy0+bnVtX3dv cmtlcnM7IG4rKykKIAkJewotCQkJSW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50ID0gJnctPmlu c3RydW1lbnRbbl07CisJCQlOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50ID0gJnctPmlu c3RydW1lbnRbbl07CiAJCQlkb3VibGUJCW5sb29wcyA9IGluc3RydW1lbnQtPm5sb29wczsKIAkJ CWRvdWJsZQkJc3RhcnR1cF9tczsKIAkJCWRvdWJsZQkJdG90YWxfbXM7CkBAIC0yMjk4LDExICsy Mjk1LDExIEBAIEV4cGxhaW5Ob2RlKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBMaXN0ICphbmNlc3Rv cnMsCiAJLyogUHJlcGFyZSBwZXItd29ya2VyIGJ1ZmZlci9XQUwgdXNhZ2UgKi8KIAlpZiAoZXMt PndvcmtlcnNfc3RhdGUgJiYgKGVzLT5idWZmZXJzIHx8IGVzLT53YWwpICYmIGVzLT52ZXJib3Nl KQogCXsKLQkJV29ya2VySW5zdHJ1bWVudGF0aW9uICp3ID0gcGxhbnN0YXRlLT53b3JrZXJfaW5z dHJ1bWVudDsKKwkJV29ya2VyTm9kZUluc3RydW1lbnRhdGlvbiAqdyA9IHBsYW5zdGF0ZS0+d29y a2VyX2luc3RydW1lbnQ7CiAKIAkJZm9yIChpbnQgbiA9IDA7IG4gPCB3LT5udW1fd29ya2Vyczsg bisrKQogCQl7Ci0JCQlJbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQgPSAmdy0+aW5zdHJ1bWVu dFtuXTsKKwkJCU5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQgPSAmdy0+aW5zdHJ1bWVu dFtuXTsKIAkJCWRvdWJsZQkJbmxvb3BzID0gaW5zdHJ1bWVudC0+bmxvb3BzOwogCiAJCQlpZiAo bmxvb3BzIDw9IDApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKaW5kZXggOThkNDAyYzBhM2IuLmMzMzYw MDczMTQxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCkBAIC05MCw3ICs5MCw3IEBAIHN0YXRpYyBi b29sIFRyaWdnZXJFbmFibGVkKEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZv LAogc3RhdGljIEhlYXBUdXBsZSBFeGVjQ2FsbFRyaWdnZXJGdW5jKFRyaWdnZXJEYXRhICp0cmln ZGF0YSwKIAkJCQkJCQkJCSBpbnQgdGdpbmR4LAogCQkJCQkJCQkJIEZtZ3JJbmZvICpmaW5mbywK LQkJCQkJCQkJCSBJbnN0cnVtZW50YXRpb24gKmluc3RyLAorCQkJCQkJCQkJIFRyaWdnZXJJbnN0 cnVtZW50YXRpb24gKmluc3RyLAogCQkJCQkJCQkJIE1lbW9yeUNvbnRleHQgcGVyX3R1cGxlX2Nv bnRleHQpOwogc3RhdGljIHZvaWQgQWZ0ZXJUcmlnZ2VyU2F2ZUV2ZW50KEVTdGF0ZSAqZXN0YXRl LCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLAogCQkJCQkJCQkgIFJlc3VsdFJlbEluZm8gKnNyY19w YXJ0aW5mbywKQEAgLTIzMDksNyArMjMwOSw3IEBAIHN0YXRpYyBIZWFwVHVwbGUKIEV4ZWNDYWxs VHJpZ2dlckZ1bmMoVHJpZ2dlckRhdGEgKnRyaWdkYXRhLAogCQkJCQlpbnQgdGdpbmR4LAogCQkJ CQlGbWdySW5mbyAqZmluZm8sCi0JCQkJCUluc3RydW1lbnRhdGlvbiAqaW5zdHIsCisJCQkJCVRy aWdnZXJJbnN0cnVtZW50YXRpb24gKmluc3RyLAogCQkJCQlNZW1vcnlDb250ZXh0IHBlcl90dXBs ZV9jb250ZXh0KQogewogCUxPQ0FMX0ZDSU5GTyhmY2luZm8sIDApOwpAQCAtMjM0NCw3ICsyMzQ0 LDcgQEAgRXhlY0NhbGxUcmlnZ2VyRnVuYyhUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEsCiAJICogSWYg ZG9pbmcgRVhQTEFJTiBBTkFMWVpFLCBzdGFydCBjaGFyZ2luZyB0aW1lIHRvIHRoaXMgdHJpZ2dl ci4KIAkgKi8KIAlpZiAoaW5zdHIpCi0JCUluc3RyU3RhcnROb2RlKGluc3RyICsgdGdpbmR4KTsK KwkJSW5zdHJTdGFydFRyaWdnZXIoaW5zdHIgKyB0Z2luZHgpOwogCiAJLyoKIAkgKiBEbyB0aGUg ZnVuY3Rpb24gZXZhbHVhdGlvbiBpbiB0aGUgcGVyLXR1cGxlIG1lbW9yeSBjb250ZXh0LCBzbyB0 aGF0CkBAIC0yMzg5LDEwICsyMzg5LDEwIEBAIEV4ZWNDYWxsVHJpZ2dlckZ1bmMoVHJpZ2dlckRh dGEgKnRyaWdkYXRhLAogCiAJLyoKIAkgKiBJZiBkb2luZyBFWFBMQUlOIEFOQUxZWkUsIHN0b3Ag Y2hhcmdpbmcgdGltZSB0byB0aGlzIHRyaWdnZXIsIGFuZCBjb3VudAotCSAqIG9uZSAidHVwbGUg cmV0dXJuZWQiIChyZWFsbHkgdGhlIG51bWJlciBvZiBmaXJpbmdzKS4KKwkgKiB0aGUgZmlyaW5n IG9mIHRoZSB0cmlnZ2VyLgogCSAqLwogCWlmIChpbnN0cikKLQkJSW5zdHJTdG9wTm9kZShpbnN0 ciArIHRnaW5keCwgMSk7CisJCUluc3RyU3RvcFRyaWdnZXIoaW5zdHIgKyB0Z2luZHgsIDEpOwog CiAJcmV0dXJuIChIZWFwVHVwbGUpIERhdHVtR2V0UG9pbnRlcihyZXN1bHQpOwogfQpAQCAtMzkz Niw3ICszOTM2LDcgQEAgc3RhdGljIHZvaWQgQWZ0ZXJUcmlnZ2VyRXhlY3V0ZShFU3RhdGUgKmVz dGF0ZSwKIAkJCQkJCQkJUmVzdWx0UmVsSW5mbyAqZHN0X3JlbEluZm8sCiAJCQkJCQkJCVRyaWdn ZXJEZXNjICp0cmlnZGVzYywKIAkJCQkJCQkJRm1nckluZm8gKmZpbmZvLAotCQkJCQkJCQlJbnN0 cnVtZW50YXRpb24gKmluc3RyLAorCQkJCQkJCQlUcmlnZ2VySW5zdHJ1bWVudGF0aW9uICppbnN0 ciwKIAkJCQkJCQkJTWVtb3J5Q29udGV4dCBwZXJfdHVwbGVfY29udGV4dCwKIAkJCQkJCQkJVHVw bGVUYWJsZVNsb3QgKnRyaWdfdHVwbGVfc2xvdDEsCiAJCQkJCQkJCVR1cGxlVGFibGVTbG90ICp0 cmlnX3R1cGxlX3Nsb3QyKTsKQEAgLTQzMzAsNyArNDMzMCw3IEBAIEFmdGVyVHJpZ2dlckV4ZWN1 dGUoRVN0YXRlICplc3RhdGUsCiAJCQkJCVJlc3VsdFJlbEluZm8gKnNyY19yZWxJbmZvLAogCQkJ CQlSZXN1bHRSZWxJbmZvICpkc3RfcmVsSW5mbywKIAkJCQkJVHJpZ2dlckRlc2MgKnRyaWdkZXNj LAotCQkJCQlGbWdySW5mbyAqZmluZm8sIEluc3RydW1lbnRhdGlvbiAqaW5zdHIsCisJCQkJCUZt Z3JJbmZvICpmaW5mbywgVHJpZ2dlckluc3RydW1lbnRhdGlvbiAqaW5zdHIsCiAJCQkJCU1lbW9y eUNvbnRleHQgcGVyX3R1cGxlX2NvbnRleHQsCiAJCQkJCVR1cGxlVGFibGVTbG90ICp0cmlnX3R1 cGxlX3Nsb3QxLAogCQkJCQlUdXBsZVRhYmxlU2xvdCAqdHJpZ190dXBsZV9zbG90MikKQEAgLTQz NzEsNyArNDM3MSw3IEBAIEFmdGVyVHJpZ2dlckV4ZWN1dGUoRVN0YXRlICplc3RhdGUsCiAJICog dG8gaW5jbHVkZSB0aW1lIHNwZW50IHJlLWZldGNoaW5nIHR1cGxlcyBpbiB0aGUgdHJpZ2dlciBj b3N0LgogCSAqLwogCWlmIChpbnN0cikKLQkJSW5zdHJTdGFydE5vZGUoaW5zdHIgKyB0Z2luZHgp OworCQlJbnN0clN0YXJ0VHJpZ2dlcihpbnN0ciArIHRnaW5keCk7CiAKIAkvKgogCSAqIEZldGNo IHRoZSByZXF1aXJlZCB0dXBsZShzKS4KQEAgLTQ1ODgsMTAgKzQ1ODgsMTAgQEAgQWZ0ZXJUcmln Z2VyRXhlY3V0ZShFU3RhdGUgKmVzdGF0ZSwKIAogCS8qCiAJICogSWYgZG9pbmcgRVhQTEFJTiBB TkFMWVpFLCBzdG9wIGNoYXJnaW5nIHRpbWUgdG8gdGhpcyB0cmlnZ2VyLCBhbmQgY291bnQKLQkg KiBvbmUgInR1cGxlIHJldHVybmVkIiAocmVhbGx5IHRoZSBudW1iZXIgb2YgZmlyaW5ncykuCisJ ICogdGhlIGZpcmluZyBvZiB0aGUgdHJpZ2dlci4KIAkgKi8KIAlpZiAoaW5zdHIpCi0JCUluc3Ry U3RvcE5vZGUoaW5zdHIgKyB0Z2luZHgsIDEpOworCQlJbnN0clN0b3BUcmlnZ2VyKGluc3RyICsg dGdpbmR4LCAxKTsKIH0KIAogCkBAIC00NzA3LDcgKzQ3MDcsNyBAQCBhZnRlclRyaWdnZXJJbnZv a2VFdmVudHMoQWZ0ZXJUcmlnZ2VyRXZlbnRMaXN0ICpldmVudHMsCiAJUmVsYXRpb24JcmVsID0g TlVMTDsKIAlUcmlnZ2VyRGVzYyAqdHJpZ2Rlc2MgPSBOVUxMOwogCUZtZ3JJbmZvICAgKmZpbmZv ID0gTlVMTDsKLQlJbnN0cnVtZW50YXRpb24gKmluc3RyID0gTlVMTDsKKwlUcmlnZ2VySW5zdHJ1 bWVudGF0aW9uICppbnN0ciA9IE5VTEw7CiAJVHVwbGVUYWJsZVNsb3QgKnNsb3QxID0gTlVMTCwK IAkJCSAgICpzbG90MiA9IE5VTEw7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCmluZGV4IGJmZDNl YmM2MDFlLi5jMGIxNzRjZmJjMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y01haW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC0zMzEsNyAr MzMxLDcgQEAgc3RhbmRhcmRfRXhlY3V0b3JSdW4oUXVlcnlEZXNjICpxdWVyeURlc2MsCiAKIAkv KiBBbGxvdyBpbnN0cnVtZW50YXRpb24gb2YgRXhlY3V0b3Igb3ZlcmFsbCBydW50aW1lICovCiAJ aWYgKHF1ZXJ5RGVzYy0+dG90YWx0aW1lKQotCQlJbnN0clN0YXJ0Tm9kZShxdWVyeURlc2MtPnRv dGFsdGltZSk7CisJCUluc3RyU3RhcnQocXVlcnlEZXNjLT50b3RhbHRpbWUpOwogCiAJLyoKIAkg KiBleHRyYWN0IGluZm9ybWF0aW9uIGZyb20gdGhlIHF1ZXJ5IGRlc2NyaXB0b3IgYW5kIHRoZSBx dWVyeSBmZWF0dXJlLgpAQCAtMzgzLDcgKzM4Myw3IEBAIHN0YW5kYXJkX0V4ZWN1dG9yUnVuKFF1 ZXJ5RGVzYyAqcXVlcnlEZXNjLAogCQlkZXN0LT5yU2h1dGRvd24oZGVzdCk7CiAKIAlpZiAocXVl cnlEZXNjLT50b3RhbHRpbWUpCi0JCUluc3RyU3RvcE5vZGUocXVlcnlEZXNjLT50b3RhbHRpbWUs IGVzdGF0ZS0+ZXNfcHJvY2Vzc2VkKTsKKwkJSW5zdHJTdG9wKHF1ZXJ5RGVzYy0+dG90YWx0aW1l KTsKIAogCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKIH0KQEAgLTQzMyw3ICs0 MzMsNyBAQCBzdGFuZGFyZF9FeGVjdXRvckZpbmlzaChRdWVyeURlc2MgKnF1ZXJ5RGVzYykKIAog CS8qIEFsbG93IGluc3RydW1lbnRhdGlvbiBvZiBFeGVjdXRvciBvdmVyYWxsIHJ1bnRpbWUgKi8K IAlpZiAocXVlcnlEZXNjLT50b3RhbHRpbWUpCi0JCUluc3RyU3RhcnROb2RlKHF1ZXJ5RGVzYy0+ dG90YWx0aW1lKTsKKwkJSW5zdHJTdGFydChxdWVyeURlc2MtPnRvdGFsdGltZSk7CiAKIAkvKiBS dW4gTW9kaWZ5VGFibGUgbm9kZXMgdG8gY29tcGxldGlvbiAqLwogCUV4ZWNQb3N0cHJvY2Vzc1Bs YW4oZXN0YXRlKTsKQEAgLTQ0Myw3ICs0NDMsNyBAQCBzdGFuZGFyZF9FeGVjdXRvckZpbmlzaChR dWVyeURlc2MgKnF1ZXJ5RGVzYykKIAkJQWZ0ZXJUcmlnZ2VyRW5kUXVlcnkoZXN0YXRlKTsKIAog CWlmIChxdWVyeURlc2MtPnRvdGFsdGltZSkKLQkJSW5zdHJTdG9wTm9kZShxdWVyeURlc2MtPnRv dGFsdGltZSwgMCk7CisJCUluc3RyU3RvcChxdWVyeURlc2MtPnRvdGFsdGltZSk7CiAKIAlNZW1v cnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CiAKQEAgLTEyNzAsNyArMTI3MCw3IEBAIElu aXRSZXN1bHRSZWxJbmZvKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCXJlc3VsdFJl bEluZm8tPnJpX1RyaWdXaGVuRXhwcnMgPSAoRXhwclN0YXRlICoqKQogCQkJcGFsbG9jMF9hcnJh eShFeHByU3RhdGUgKiwgbik7CiAJCWlmIChpbnN0cnVtZW50X29wdGlvbnMpCi0JCQlyZXN1bHRS ZWxJbmZvLT5yaV9UcmlnSW5zdHJ1bWVudCA9IEluc3RyQWxsb2MobiwgaW5zdHJ1bWVudF9vcHRp b25zLCBmYWxzZSk7CisJCQlyZXN1bHRSZWxJbmZvLT5yaV9UcmlnSW5zdHJ1bWVudCA9IEluc3Ry QWxsb2NUcmlnZ2VyKG4sIGluc3RydW1lbnRfb3B0aW9ucyk7CiAJfQogCWVsc2UKIAl7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCmluZGV4IGY4Nzk3OGMxMzdlLi5mYjlhNGFmYmJmMSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKKysrIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKQEAgLTg2LDcgKzg2LDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgRml4ZWRQYXJhbGxlbEV4ZWN1dG9yU3RhdGUKICAqIGluc3RydW1lbnRfb3B0aW9u czogU2FtZSBtZWFuaW5nIGhlcmUgYXMgaW4gaW5zdHJ1bWVudC5jLgogICoKICAqIGluc3RydW1l bnRfb2Zmc2V0OiBPZmZzZXQsIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZiB0aGlzIHN0cnVjdHVy ZSwKLSAqIG9mIHRoZSBmaXJzdCBJbnN0cnVtZW50YXRpb24gb2JqZWN0LiAgVGhpcyB3aWxsIGRl cGVuZCBvbiB0aGUgbGVuZ3RoIG9mCisgKiBvZiB0aGUgZmlyc3QgTm9kZUluc3RydW1lbnRhdGlv biBvYmplY3QuICBUaGlzIHdpbGwgZGVwZW5kIG9uIHRoZSBsZW5ndGggb2YKICAqIHRoZSBwbGFu X25vZGVfaWQgYXJyYXkuCiAgKgogICogbnVtX3dvcmtlcnM6IE51bWJlciBvZiB3b3JrZXJzLgpA QCAtMTAzLDExICsxMDMsMTUgQEAgc3RydWN0IFNoYXJlZEV4ZWN1dG9ySW5zdHJ1bWVudGF0aW9u CiAJaW50CQkJbnVtX3dvcmtlcnM7CiAJaW50CQkJbnVtX3BsYW5fbm9kZXM7CiAJaW50CQkJcGxh bl9ub2RlX2lkW0ZMRVhJQkxFX0FSUkFZX01FTUJFUl07Ci0JLyogYXJyYXkgb2YgbnVtX3BsYW5f bm9kZXMgKiBudW1fd29ya2VycyBJbnN0cnVtZW50YXRpb24gb2JqZWN0cyBmb2xsb3dzICovCisK KwkvKgorCSAqIGFycmF5IG9mIG51bV9wbGFuX25vZGVzICogbnVtX3dvcmtlcnMgTm9kZUluc3Ry dW1lbnRhdGlvbiBvYmplY3RzCisJICogZm9sbG93cworCSAqLwogfTsKICNkZWZpbmUgR2V0SW5z dHJ1bWVudGF0aW9uQXJyYXkoc2VpKSBcCiAJKFN0YXRpY0Fzc2VydFZhcmlhYmxlSXNPZlR5cGVN YWNybyhzZWksIFNoYXJlZEV4ZWN1dG9ySW5zdHJ1bWVudGF0aW9uICopLCBcCi0JIChJbnN0cnVt ZW50YXRpb24gKikgKCgoY2hhciAqKSBzZWkpICsgc2VpLT5pbnN0cnVtZW50X29mZnNldCkpCisJ IChOb2RlSW5zdHJ1bWVudGF0aW9uICopICgoKGNoYXIgKikgc2VpKSArIHNlaS0+aW5zdHJ1bWVu dF9vZmZzZXQpKQogCiAvKiBDb250ZXh0IG9iamVjdCBmb3IgRXhlY1BhcmFsbGVsRXN0aW1hdGUu ICovCiB0eXBlZGVmIHN0cnVjdCBFeGVjUGFyYWxsZWxFc3RpbWF0ZUNvbnRleHQKQEAgLTcyNCw3 ICs3MjgsNyBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgRVN0 YXRlICplc3RhdGUsCiAJCWluc3RydW1lbnRhdGlvbl9sZW4gPSBNQVhBTElHTihpbnN0cnVtZW50 YXRpb25fbGVuKTsKIAkJaW5zdHJ1bWVudF9vZmZzZXQgPSBpbnN0cnVtZW50YXRpb25fbGVuOwog CQlpbnN0cnVtZW50YXRpb25fbGVuICs9Ci0JCQltdWxfc2l6ZShzaXplb2YoSW5zdHJ1bWVudGF0 aW9uKSwKKwkJCW11bF9zaXplKHNpemVvZihOb2RlSW5zdHJ1bWVudGF0aW9uKSwKIAkJCQkJIG11 bF9zaXplKGUubm5vZGVzLCBud29ya2VycykpOwogCQlzaG1fdG9jX2VzdGltYXRlX2NodW5rKCZw Y3h0LT5lc3RpbWF0b3IsIGluc3RydW1lbnRhdGlvbl9sZW4pOwogCQlzaG1fdG9jX2VzdGltYXRl X2tleXMoJnBjeHQtPmVzdGltYXRvciwgMSk7CkBAIC04MTAsNyArODE0LDcgQEAgRXhlY0luaXRQ YXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVTdGF0ZSAqZXN0YXRlLAogCSAqLwog CWlmIChlc3RhdGUtPmVzX2luc3RydW1lbnQpCiAJewotCQlJbnN0cnVtZW50YXRpb24gKmluc3Ry dW1lbnQ7CisJCU5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQ7CiAJCWludAkJCWk7CiAK IAkJaW5zdHJ1bWVudGF0aW9uID0gc2htX3RvY19hbGxvY2F0ZShwY3h0LT50b2MsIGluc3RydW1l bnRhdGlvbl9sZW4pOwpAQCAtODIwLDcgKzgyNCw3IEBAIEV4ZWNJbml0UGFyYWxsZWxQbGFuKFBs YW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAkJaW5zdHJ1bWVudGF0aW9uLT5u dW1fcGxhbl9ub2RlcyA9IGUubm5vZGVzOwogCQlpbnN0cnVtZW50ID0gR2V0SW5zdHJ1bWVudGF0 aW9uQXJyYXkoaW5zdHJ1bWVudGF0aW9uKTsKIAkJZm9yIChpID0gMDsgaSA8IG53b3JrZXJzICog ZS5ubm9kZXM7ICsraSkKLQkJCUluc3RySW5pdCgmaW5zdHJ1bWVudFtpXSwgZXN0YXRlLT5lc19p bnN0cnVtZW50KTsKKwkJCUluc3RySW5pdE5vZGUoJmluc3RydW1lbnRbaV0sIGVzdGF0ZS0+ZXNf aW5zdHJ1bWVudCk7CiAJCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfS0VZX0lO U1RSVU1FTlRBVElPTiwKIAkJCQkJICAgaW5zdHJ1bWVudGF0aW9uKTsKIAkJcGVpLT5pbnN0cnVt ZW50YXRpb24gPSBpbnN0cnVtZW50YXRpb247CkBAIC0xMDUyLDcgKzEwNTYsNyBAQCBzdGF0aWMg Ym9vbAogRXhlY1BhcmFsbGVsUmV0cmlldmVJbnN0cnVtZW50YXRpb24oUGxhblN0YXRlICpwbGFu c3RhdGUsCiAJCQkJCQkJCQlTaGFyZWRFeGVjdXRvckluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVu dGF0aW9uKQogewotCUluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudDsKKwlOb2RlSW5zdHJ1bWVu dGF0aW9uICppbnN0cnVtZW50OwogCWludAkJCWk7CiAJaW50CQkJbjsKIAlpbnQJCQlpYnl0ZXM7 CkBAIC0xMDgwLDkgKzEwODQsOSBAQCBFeGVjUGFyYWxsZWxSZXRyaWV2ZUluc3RydW1lbnRhdGlv bihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwKIAkgKiBTd2l0Y2ggaW50byBwZXItcXVlcnkgbWVtb3J5 IGNvbnRleHQuCiAJICovCiAJb2xkY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhwbGFu c3RhdGUtPnN0YXRlLT5lc19xdWVyeV9jeHQpOwotCWlieXRlcyA9IG11bF9zaXplKGluc3RydW1l bnRhdGlvbi0+bnVtX3dvcmtlcnMsIHNpemVvZihJbnN0cnVtZW50YXRpb24pKTsKKwlpYnl0ZXMg PSBtdWxfc2l6ZShpbnN0cnVtZW50YXRpb24tPm51bV93b3JrZXJzLCBzaXplb2YoTm9kZUluc3Ry dW1lbnRhdGlvbikpOwogCXBsYW5zdGF0ZS0+d29ya2VyX2luc3RydW1lbnQgPQotCQlwYWxsb2Mo aWJ5dGVzICsgb2Zmc2V0b2YoV29ya2VySW5zdHJ1bWVudGF0aW9uLCBpbnN0cnVtZW50KSk7CisJ CXBhbGxvYyhpYnl0ZXMgKyBvZmZzZXRvZihXb3JrZXJOb2RlSW5zdHJ1bWVudGF0aW9uLCBpbnN0 cnVtZW50KSk7CiAJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwogCiAJcGxhbnN0 YXRlLT53b3JrZXJfaW5zdHJ1bWVudC0+bnVtX3dvcmtlcnMgPSBpbnN0cnVtZW50YXRpb24tPm51 bV93b3JrZXJzOwpAQCAtMTMxMiw3ICsxMzE2LDcgQEAgRXhlY1BhcmFsbGVsUmVwb3J0SW5zdHJ1 bWVudGF0aW9uKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLAogewogCWludAkJCWk7CiAJaW50CQkJcGxh bl9ub2RlX2lkID0gcGxhbnN0YXRlLT5wbGFuLT5wbGFuX25vZGVfaWQ7Ci0JSW5zdHJ1bWVudGF0 aW9uICppbnN0cnVtZW50OworCU5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQ7CiAKIAlJ bnN0ckVuZExvb3AocGxhbnN0YXRlLT5pbnN0cnVtZW50KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY1Byb2Nub2RlLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj UHJvY25vZGUuYwppbmRleCA3ZTQwYjg1MjUxNy4uMTg0NjY2MWI1MDMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQcm9jbm9kZS5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNQcm9jbm9kZS5jCkBAIC00MTMsOCArNDEzLDggQEAgRXhlY0luaXROb2RlKFBsYW4g Km5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCiAJLyogU2V0IHVwIGluc3RydW1l bnRhdGlvbiBmb3IgdGhpcyBub2RlIGlmIHJlcXVlc3RlZCAqLwogCWlmIChlc3RhdGUtPmVzX2lu c3RydW1lbnQpCi0JCXJlc3VsdC0+aW5zdHJ1bWVudCA9IEluc3RyQWxsb2MoMSwgZXN0YXRlLT5l c19pbnN0cnVtZW50LAotCQkJCQkJCQkJCXJlc3VsdC0+YXN5bmNfY2FwYWJsZSk7CisJCXJlc3Vs dC0+aW5zdHJ1bWVudCA9IEluc3RyQWxsb2NOb2RlKGVzdGF0ZS0+ZXNfaW5zdHJ1bWVudCwKKwkJ CQkJCQkJCQkJcmVzdWx0LT5hc3luY19jYXBhYmxlKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9pbnN0cnVtZW50LmMKaW5kZXggNGMzOTMwYTRmODYuLjM0ZGFhZGM4OGZjIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvaW5zdHJ1bWVudC5jCkBAIC0yNiwzOCArMjYsMTE3IEBAIHN0YXRpYyB2 b2lkIEJ1ZmZlclVzYWdlQWRkKEJ1ZmZlclVzYWdlICpkc3QsIGNvbnN0IEJ1ZmZlclVzYWdlICph ZGQpOwogc3RhdGljIHZvaWQgV2FsVXNhZ2VBZGQoV2FsVXNhZ2UgKmRzdCwgV2FsVXNhZ2UgKmFk ZCk7CiAKIAotLyogQWxsb2NhdGUgbmV3IGluc3RydW1lbnRhdGlvbiBzdHJ1Y3R1cmUocykgKi8K Ky8qIEdlbmVyYWwgcHVycG9zZSBpbnN0cnVtZW50YXRpb24gaGFuZGxpbmcgKi8KIEluc3RydW1l bnRhdGlvbiAqCi1JbnN0ckFsbG9jKGludCBuLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zLCBib29s IGFzeW5jX21vZGUpCitJbnN0ckFsbG9jKGludCBpbnN0cnVtZW50X29wdGlvbnMpCiB7CiAJSW5z dHJ1bWVudGF0aW9uICppbnN0cjsKIAogCS8qIGluaXRpYWxpemUgYWxsIGZpZWxkcyB0byB6ZXJv ZXMsIHRoZW4gbW9kaWZ5IGFzIG5lZWRlZCAqLwotCWluc3RyID0gcGFsbG9jMChuICogc2l6ZW9m KEluc3RydW1lbnRhdGlvbikpOworCWluc3RyID0gcGFsbG9jMChzaXplb2YoSW5zdHJ1bWVudGF0 aW9uKSk7CiAJaWYgKGluc3RydW1lbnRfb3B0aW9ucyAmIChJTlNUUlVNRU5UX0JVRkZFUlMgfCBJ TlNUUlVNRU5UX1RJTUVSIHwgSU5TVFJVTUVOVF9XQUwpKQogCXsKLQkJYm9vbAkJbmVlZF9idWZm ZXJzID0gKGluc3RydW1lbnRfb3B0aW9ucyAmIElOU1RSVU1FTlRfQlVGRkVSUykgIT0gMDsKLQkJ Ym9vbAkJbmVlZF93YWwgPSAoaW5zdHJ1bWVudF9vcHRpb25zICYgSU5TVFJVTUVOVF9XQUwpICE9 IDA7Ci0JCWJvb2wJCW5lZWRfdGltZXIgPSAoaW5zdHJ1bWVudF9vcHRpb25zICYgSU5TVFJVTUVO VF9USU1FUikgIT0gMDsKLQkJaW50CQkJaTsKLQotCQlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQot CQl7Ci0JCQlpbnN0cltpXS5uZWVkX2J1ZnVzYWdlID0gbmVlZF9idWZmZXJzOwotCQkJaW5zdHJb aV0ubmVlZF93YWx1c2FnZSA9IG5lZWRfd2FsOwotCQkJaW5zdHJbaV0ubmVlZF90aW1lciA9IG5l ZWRfdGltZXI7Ci0JCQlpbnN0cltpXS5hc3luY19tb2RlID0gYXN5bmNfbW9kZTsKLQkJfQorCQlp bnN0ci0+bmVlZF9idWZ1c2FnZSA9IChpbnN0cnVtZW50X29wdGlvbnMgJiBJTlNUUlVNRU5UX0JV RkZFUlMpICE9IDA7CisJCWluc3RyLT5uZWVkX3dhbHVzYWdlID0gKGluc3RydW1lbnRfb3B0aW9u cyAmIElOU1RSVU1FTlRfV0FMKSAhPSAwOworCQlpbnN0ci0+bmVlZF90aW1lciA9IChpbnN0cnVt ZW50X29wdGlvbnMgJiBJTlNUUlVNRU5UX1RJTUVSKSAhPSAwOwogCX0KIAogCXJldHVybiBpbnN0 cjsKIH0KIAordm9pZAorSW5zdHJTdGFydChJbnN0cnVtZW50YXRpb24gKmluc3RyKQoreworCWlm IChpbnN0ci0+bmVlZF90aW1lciAmJgorCQkhSU5TVFJfVElNRV9TRVRfQ1VSUkVOVF9MQVpZKGlu c3RyLT5zdGFydHRpbWUpKQorCQllbG9nKEVSUk9SLCAiSW5zdHJTdGFydCBjYWxsZWQgdHdpY2Ug aW4gYSByb3ciKTsKKworCWlmIChpbnN0ci0+bmVlZF9idWZ1c2FnZSkKKwkJaW5zdHItPmJ1ZnVz YWdlX3N0YXJ0ID0gcGdCdWZmZXJVc2FnZTsKKworCWlmIChpbnN0ci0+bmVlZF93YWx1c2FnZSkK KwkJaW5zdHItPndhbHVzYWdlX3N0YXJ0ID0gcGdXYWxVc2FnZTsKK30KKwordm9pZAorSW5zdHJT dG9wKEluc3RydW1lbnRhdGlvbiAqaW5zdHIpCit7CisJaW5zdHJfdGltZQllbmR0aW1lOworCisJ LyogbGV0J3MgdXBkYXRlIHRoZSB0aW1lIG9ubHkgaWYgdGhlIHRpbWVyIHdhcyByZXF1ZXN0ZWQg Ki8KKwlpZiAoaW5zdHItPm5lZWRfdGltZXIpCisJeworCQlpZiAoSU5TVFJfVElNRV9JU19aRVJP KGluc3RyLT5zdGFydHRpbWUpKQorCQkJZWxvZyhFUlJPUiwgIkluc3RyU3RvcCBjYWxsZWQgd2l0 aG91dCBzdGFydCIpOworCisJCUlOU1RSX1RJTUVfU0VUX0NVUlJFTlQoZW5kdGltZSk7CisJCUlO U1RSX1RJTUVfQUNDVU1fRElGRihpbnN0ci0+dG90YWwsIGVuZHRpbWUsIGluc3RyLT5zdGFydHRp bWUpOworCisJCUlOU1RSX1RJTUVfU0VUX1pFUk8oaW5zdHItPnN0YXJ0dGltZSk7CisJfQorCisJ LyogQWRkIGRlbHRhIG9mIGJ1ZmZlciB1c2FnZSBzaW5jZSBlbnRyeSB0byBub2RlJ3MgdG90YWxz ICovCisJaWYgKGluc3RyLT5uZWVkX2J1ZnVzYWdlKQorCQlCdWZmZXJVc2FnZUFjY3VtRGlmZigm aW5zdHItPmJ1ZnVzYWdlLAorCQkJCQkJCSAmcGdCdWZmZXJVc2FnZSwgJmluc3RyLT5idWZ1c2Fn ZV9zdGFydCk7CisKKwlpZiAoaW5zdHItPm5lZWRfd2FsdXNhZ2UpCisJCVdhbFVzYWdlQWNjdW1E aWZmKCZpbnN0ci0+d2FsdXNhZ2UsCisJCQkJCQkgICZwZ1dhbFVzYWdlLCAmaW5zdHItPndhbHVz YWdlX3N0YXJ0KTsKK30KKworLyogVHJpZ2dlciBpbnN0cnVtZW50YXRpb24gaGFuZGxpbmcgKi8K K1RyaWdnZXJJbnN0cnVtZW50YXRpb24gKgorSW5zdHJBbGxvY1RyaWdnZXIoaW50IG4sIGludCBp bnN0cnVtZW50X29wdGlvbnMpCit7CisJVHJpZ2dlckluc3RydW1lbnRhdGlvbiAqdGdpbnN0ciA9 IHBhbGxvYzAobiAqIHNpemVvZihUcmlnZ2VySW5zdHJ1bWVudGF0aW9uKSk7CisJYm9vbAkJbmVl ZF9idWZmZXJzID0gKGluc3RydW1lbnRfb3B0aW9ucyAmIElOU1RSVU1FTlRfQlVGRkVSUykgIT0g MDsKKwlib29sCQluZWVkX3dhbCA9IChpbnN0cnVtZW50X29wdGlvbnMgJiBJTlNUUlVNRU5UX1dB TCkgIT0gMDsKKwlib29sCQluZWVkX3RpbWVyID0gKGluc3RydW1lbnRfb3B0aW9ucyAmIElOU1RS VU1FTlRfVElNRVIpICE9IDA7CisJaW50CQkJaTsKKworCWZvciAoaSA9IDA7IGkgPCBuOyBpKysp CisJeworCQl0Z2luc3RyW2ldLmluc3RyLm5lZWRfYnVmdXNhZ2UgPSBuZWVkX2J1ZmZlcnM7CisJ CXRnaW5zdHJbaV0uaW5zdHIubmVlZF93YWx1c2FnZSA9IG5lZWRfd2FsOworCQl0Z2luc3RyW2ld Lmluc3RyLm5lZWRfdGltZXIgPSBuZWVkX3RpbWVyOworCX0KKworCXJldHVybiB0Z2luc3RyOwor fQorCit2b2lkCitJbnN0clN0YXJ0VHJpZ2dlcihUcmlnZ2VySW5zdHJ1bWVudGF0aW9uICp0Z2lu c3RyKQoreworCUluc3RyU3RhcnQoJnRnaW5zdHItPmluc3RyKTsKK30KKwordm9pZAorSW5zdHJT dG9wVHJpZ2dlcihUcmlnZ2VySW5zdHJ1bWVudGF0aW9uICp0Z2luc3RyLCBpbnQgZmlyaW5ncykK K3sKKwlJbnN0clN0b3AoJnRnaW5zdHItPmluc3RyKTsKKwl0Z2luc3RyLT5maXJpbmdzICs9IGZp cmluZ3M7Cit9CisKKy8qIE5vZGUgaW5zdHJ1bWVudGF0aW9uIGhhbmRsaW5nICovCisKKy8qIEFs bG9jYXRlIG5ldyBub2RlIGluc3RydW1lbnRhdGlvbiBzdHJ1Y3R1cmUgKi8KK05vZGVJbnN0cnVt ZW50YXRpb24gKgorSW5zdHJBbGxvY05vZGUoaW50IGluc3RydW1lbnRfb3B0aW9ucywgYm9vbCBh c3luY19tb2RlKQoreworCU5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RyID0gcGFsbG9jKHNpemVv ZihOb2RlSW5zdHJ1bWVudGF0aW9uKSk7CisKKwlJbnN0ckluaXROb2RlKGluc3RyLCBpbnN0cnVt ZW50X29wdGlvbnMpOworCWluc3RyLT5hc3luY19tb2RlID0gYXN5bmNfbW9kZTsKKworCXJldHVy biBpbnN0cjsKK30KKwogLyogSW5pdGlhbGl6ZSBhIHByZS1hbGxvY2F0ZWQgaW5zdHJ1bWVudGF0 aW9uIHN0cnVjdHVyZS4gKi8KIHZvaWQKLUluc3RySW5pdChJbnN0cnVtZW50YXRpb24gKmluc3Ry LCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zKQorSW5zdHJJbml0Tm9kZShOb2RlSW5zdHJ1bWVudGF0 aW9uICppbnN0ciwgaW50IGluc3RydW1lbnRfb3B0aW9ucykKIHsKLQltZW1zZXQoaW5zdHIsIDAs IHNpemVvZihJbnN0cnVtZW50YXRpb24pKTsKKwltZW1zZXQoaW5zdHIsIDAsIHNpemVvZihOb2Rl SW5zdHJ1bWVudGF0aW9uKSk7CiAJaW5zdHItPm5lZWRfYnVmdXNhZ2UgPSAoaW5zdHJ1bWVudF9v cHRpb25zICYgSU5TVFJVTUVOVF9CVUZGRVJTKSAhPSAwOwogCWluc3RyLT5uZWVkX3dhbHVzYWdl ID0gKGluc3RydW1lbnRfb3B0aW9ucyAmIElOU1RSVU1FTlRfV0FMKSAhPSAwOwogCWluc3RyLT5u ZWVkX3RpbWVyID0gKGluc3RydW1lbnRfb3B0aW9ucyAmIElOU1RSVU1FTlRfVElNRVIpICE9IDA7 CkBAIC02NSw3ICsxNDQsNyBAQCBJbnN0ckluaXQoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgaW50 IGluc3RydW1lbnRfb3B0aW9ucykKIAogLyogRW50cnkgdG8gYSBwbGFuIG5vZGUgKi8KIHZvaWQK LUluc3RyU3RhcnROb2RlKEluc3RydW1lbnRhdGlvbiAqaW5zdHIpCitJbnN0clN0YXJ0Tm9kZShO b2RlSW5zdHJ1bWVudGF0aW9uICppbnN0cikKIHsKIAlpZiAoaW5zdHItPm5lZWRfdGltZXIgJiYK IAkJIUlOU1RSX1RJTUVfU0VUX0NVUlJFTlRfTEFaWShpbnN0ci0+c3RhcnR0aW1lKSkKQEAgLTgx LDcgKzE2MCw3IEBAIEluc3RyU3RhcnROb2RlKEluc3RydW1lbnRhdGlvbiAqaW5zdHIpCiAKIC8q IEV4aXQgZnJvbSBhIHBsYW4gbm9kZSAqLwogdm9pZAotSW5zdHJTdG9wTm9kZShJbnN0cnVtZW50 YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcykKK0luc3RyU3RvcE5vZGUoTm9kZUluc3RydW1l bnRhdGlvbiAqaW5zdHIsIGRvdWJsZSBuVHVwbGVzKQogewogCWRvdWJsZQkJc2F2ZV90dXBsZWNv dW50ID0gaW5zdHItPnR1cGxlY291bnQ7CiAJaW5zdHJfdGltZQllbmR0aW1lOwpAQCAtMTI5LDcg KzIwOCw3IEBAIEluc3RyU3RvcE5vZGUoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5U dXBsZXMpCiAKIC8qIFVwZGF0ZSB0dXBsZSBjb3VudCAqLwogdm9pZAotSW5zdHJVcGRhdGVUdXBs ZUNvdW50KEluc3RydW1lbnRhdGlvbiAqaW5zdHIsIGRvdWJsZSBuVHVwbGVzKQorSW5zdHJVcGRh dGVUdXBsZUNvdW50KE5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcykK IHsKIAkvKiBjb3VudCB0aGUgcmV0dXJuZWQgdHVwbGVzICovCiAJaW5zdHItPnR1cGxlY291bnQg Kz0gblR1cGxlczsKQEAgLTEzNyw3ICsyMTYsNyBAQCBJbnN0clVwZGF0ZVR1cGxlQ291bnQoSW5z dHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBsZXMpCiAKIC8qIEZpbmlzaCBhIHJ1biBj eWNsZSBmb3IgYSBwbGFuIG5vZGUgKi8KIHZvaWQKLUluc3RyRW5kTG9vcChJbnN0cnVtZW50YXRp b24gKmluc3RyKQorSW5zdHJFbmRMb29wKE5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RyKQogewog CS8qIFNraXAgaWYgbm90aGluZyBoYXMgaGFwcGVuZWQsIG9yIGFscmVhZHkgc2h1dCBkb3duICov CiAJaWYgKCFpbnN0ci0+cnVubmluZykKQEAgLTE2Miw3ICsyNDEsNyBAQCBJbnN0ckVuZExvb3Ao SW5zdHJ1bWVudGF0aW9uICppbnN0cikKIAogLyogYWdncmVnYXRlIGluc3RydW1lbnRhdGlvbiBp bmZvcm1hdGlvbiAqLwogdm9pZAotSW5zdHJBZ2dOb2RlKEluc3RydW1lbnRhdGlvbiAqZHN0LCBJ bnN0cnVtZW50YXRpb24gKmFkZCkKK0luc3RyQWdnTm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICpk c3QsIE5vZGVJbnN0cnVtZW50YXRpb24gKmFkZCkKIHsKIAlpZiAoIWRzdC0+cnVubmluZyAmJiBh ZGQtPnJ1bm5pbmcpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1 bWVudC5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oCmluZGV4IDY0ZTkxMzcz YjVkLi4xNjY4OGI1ZmRiNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1 bWVudC5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaApAQCAtNjcsNyAr NjcsNDAgQEAgdHlwZWRlZiBlbnVtIEluc3RydW1lbnRPcHRpb24KIAlJTlNUUlVNRU5UX0FMTCA9 IFBHX0lOVDMyX01BWAogfSBJbnN0cnVtZW50T3B0aW9uOwogCisvKgorICogR2VuZXJhbCBwdXJw b3NlIGluc3RydW1lbnRhdGlvbiB0aGF0IGNhbiBjYXB0dXJlIHRpbWUgYW5kIFdBTC9idWZmZXIg dXNhZ2UKKyAqCisgKiBJbml0aWFsaXplZCB0aHJvdWdoIEluc3RyQWxsb2MsIGZvbGxvd2VkIGJ5 IG9uZSBvciBtb3JlIGNhbGxzIHRvIGEgcGFpciBvZgorICogSW5zdHJTdGFydC9JbnN0clN0b3Ag KGFjdGl2aXR5IGlzIG1lYXN1cmVkIGluYmV0d2VlbikuCisgKi8KIHR5cGVkZWYgc3RydWN0IElu c3RydW1lbnRhdGlvbgoreworCS8qIFBhcmFtZXRlcnMgc2V0IGF0IGNyZWF0aW9uOiAqLworCWJv b2wJCW5lZWRfdGltZXI7CQkvKiB0cnVlIGlmIHdlIG5lZWQgdGltZXIgZGF0YSAqLworCWJvb2wJ CW5lZWRfYnVmdXNhZ2U7CS8qIHRydWUgaWYgd2UgbmVlZCBidWZmZXIgdXNhZ2UgZGF0YSAqLwor CWJvb2wJCW5lZWRfd2FsdXNhZ2U7CS8qIHRydWUgaWYgd2UgbmVlZCBXQUwgdXNhZ2UgZGF0YSAq LworCS8qIEludGVybmFsIHN0YXRlIGtlZXBpbmc6ICovCisJaW5zdHJfdGltZQlzdGFydHRpbWU7 CQkvKiBzdGFydCB0aW1lIG9mIGxhc3QgSW5zdHJTdGFydCAqLworCUJ1ZmZlclVzYWdlIGJ1ZnVz YWdlX3N0YXJ0OyAvKiBidWZmZXIgdXNhZ2UgYXQgc3RhcnQgKi8KKwlXYWxVc2FnZQl3YWx1c2Fn ZV9zdGFydDsgLyogV0FMIHVzYWdlIGF0IHN0YXJ0ICovCisJLyogQWNjdW11bGF0ZWQgc3RhdGlz dGljczogKi8KKwlpbnN0cl90aW1lCXRvdGFsOwkJCS8qIHRvdGFsIHJ1bnRpbWUgKi8KKwlCdWZm ZXJVc2FnZSBidWZ1c2FnZTsJCS8qIHRvdGFsIGJ1ZmZlciB1c2FnZSAqLworCVdhbFVzYWdlCXdh bHVzYWdlOwkJLyogdG90YWwgV0FMIHVzYWdlICovCit9IEluc3RydW1lbnRhdGlvbjsKKworLyog VHJpZ2dlciBpbnN0cnVtZW50YXRpb24gKi8KK3R5cGVkZWYgc3RydWN0IFRyaWdnZXJJbnN0cnVt ZW50YXRpb24KK3sKKwlJbnN0cnVtZW50YXRpb24gaW5zdHI7CisJaW50CQkJZmlyaW5nczsJCS8q IG51bWJlciBvZiB0aW1lcyB0aGUgaW5zdHJ1bWVudGVkIHRyaWdnZXIKKwkJCQkJCQkJICogd2Fz IGZpcmVkICovCit9IFRyaWdnZXJJbnN0cnVtZW50YXRpb247CisKKy8qCisgKiBTcGVjaWFsaXpl ZCBpbnN0cnVtZW50YXRpb24gZm9yIHBlci1ub2RlIGV4ZWN1dGlvbiBzdGF0aXN0aWNzCisgKi8K K3R5cGVkZWYgc3RydWN0IE5vZGVJbnN0cnVtZW50YXRpb24KIHsKIAkvKiBQYXJhbWV0ZXJzIHNl dCBhdCBub2RlIGNyZWF0aW9uOiAqLwogCWJvb2wJCW5lZWRfdGltZXI7CQkvKiB0cnVlIGlmIHdl IG5lZWQgdGltZXIgZGF0YSAqLwpAQCAtOTIsMjUgKzEyNSwzNCBAQCB0eXBlZGVmIHN0cnVjdCBJ bnN0cnVtZW50YXRpb24KIAlkb3VibGUJCW5maWx0ZXJlZDI7CQkvKiAjIG9mIHR1cGxlcyByZW1v dmVkIGJ5ICJvdGhlciIgcXVhbHMgKi8KIAlCdWZmZXJVc2FnZSBidWZ1c2FnZTsJCS8qIHRvdGFs IGJ1ZmZlciB1c2FnZSAqLwogCVdhbFVzYWdlCXdhbHVzYWdlOwkJLyogdG90YWwgV0FMIHVzYWdl ICovCi19IEluc3RydW1lbnRhdGlvbjsKK30gTm9kZUluc3RydW1lbnRhdGlvbjsKIAotdHlwZWRl ZiBzdHJ1Y3QgV29ya2VySW5zdHJ1bWVudGF0aW9uCit0eXBlZGVmIHN0cnVjdCBXb3JrZXJOb2Rl SW5zdHJ1bWVudGF0aW9uCiB7CiAJaW50CQkJbnVtX3dvcmtlcnM7CS8qICMgb2Ygc3RydWN0dXJl cyB0aGF0IGZvbGxvdyAqLwotCUluc3RydW1lbnRhdGlvbiBpbnN0cnVtZW50W0ZMRVhJQkxFX0FS UkFZX01FTUJFUl07Ci19IFdvcmtlckluc3RydW1lbnRhdGlvbjsKKwlOb2RlSW5zdHJ1bWVudGF0 aW9uIGluc3RydW1lbnRbRkxFWElCTEVfQVJSQVlfTUVNQkVSXTsKK30gV29ya2VyTm9kZUluc3Ry dW1lbnRhdGlvbjsKIAogZXh0ZXJuIFBHRExMSU1QT1JUIEJ1ZmZlclVzYWdlIHBnQnVmZmVyVXNh Z2U7CiBleHRlcm4gUEdETExJTVBPUlQgV2FsVXNhZ2UgcGdXYWxVc2FnZTsKIAotZXh0ZXJuIElu c3RydW1lbnRhdGlvbiAqSW5zdHJBbGxvYyhpbnQgbiwgaW50IGluc3RydW1lbnRfb3B0aW9ucywK LQkJCQkJCQkJICAgYm9vbCBhc3luY19tb2RlKTsKLWV4dGVybiB2b2lkIEluc3RySW5pdChJbnN0 cnVtZW50YXRpb24gKmluc3RyLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zKTsKLWV4dGVybiB2b2lk IEluc3RyU3RhcnROb2RlKEluc3RydW1lbnRhdGlvbiAqaW5zdHIpOwotZXh0ZXJuIHZvaWQgSW5z dHJTdG9wTm9kZShJbnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcyk7Ci1leHRl cm4gdm9pZCBJbnN0clVwZGF0ZVR1cGxlQ291bnQoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91 YmxlIG5UdXBsZXMpOwotZXh0ZXJuIHZvaWQgSW5zdHJFbmRMb29wKEluc3RydW1lbnRhdGlvbiAq aW5zdHIpOwotZXh0ZXJuIHZvaWQgSW5zdHJBZ2dOb2RlKEluc3RydW1lbnRhdGlvbiAqZHN0LCBJ bnN0cnVtZW50YXRpb24gKmFkZCk7CitleHRlcm4gSW5zdHJ1bWVudGF0aW9uICpJbnN0ckFsbG9j KGludCBpbnN0cnVtZW50X29wdGlvbnMpOworZXh0ZXJuIHZvaWQgSW5zdHJTdGFydChJbnN0cnVt ZW50YXRpb24gKmluc3RyKTsKK2V4dGVybiB2b2lkIEluc3RyU3RvcChJbnN0cnVtZW50YXRpb24g Kmluc3RyKTsKKworZXh0ZXJuIFRyaWdnZXJJbnN0cnVtZW50YXRpb24gKkluc3RyQWxsb2NUcmln Z2VyKGludCBuLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zKTsKK2V4dGVybiB2b2lkIEluc3RyU3Rh cnRUcmlnZ2VyKFRyaWdnZXJJbnN0cnVtZW50YXRpb24gKnRnaW5zdHIpOworZXh0ZXJuIHZvaWQg SW5zdHJTdG9wVHJpZ2dlcihUcmlnZ2VySW5zdHJ1bWVudGF0aW9uICp0Z2luc3RyLCBpbnQgZmly aW5ncyk7CisKK2V4dGVybiBOb2RlSW5zdHJ1bWVudGF0aW9uICpJbnN0ckFsbG9jTm9kZShpbnQg aW5zdHJ1bWVudF9vcHRpb25zLAorCQkJCQkJCQkJCSAgIGJvb2wgYXN5bmNfbW9kZSk7CitleHRl cm4gdm9pZCBJbnN0ckluaXROb2RlKE5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RyLCBpbnQgaW5z dHJ1bWVudF9vcHRpb25zKTsKK2V4dGVybiB2b2lkIEluc3RyU3RhcnROb2RlKE5vZGVJbnN0cnVt ZW50YXRpb24gKmluc3RyKTsKK2V4dGVybiB2b2lkIEluc3RyU3RvcE5vZGUoTm9kZUluc3RydW1l bnRhdGlvbiAqaW5zdHIsIGRvdWJsZSBuVHVwbGVzKTsKK2V4dGVybiB2b2lkIEluc3RyVXBkYXRl VHVwbGVDb3VudChOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBsZXMpOwor ZXh0ZXJuIHZvaWQgSW5zdHJFbmRMb29wKE5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RyKTsKK2V4 dGVybiB2b2lkIEluc3RyQWdnTm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICpkc3QsIE5vZGVJbnN0 cnVtZW50YXRpb24gKmFkZCk7CisKIGV4dGVybiB2b2lkIEluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5 KHZvaWQpOwogZXh0ZXJuIHZvaWQgSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpi dWZ1c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdlKTsKIGV4dGVybiB2b2lkIEluc3RyQWNjdW1QYXJh bGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdlKTsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9k ZXMvZXhlY25vZGVzLmgKaW5kZXggNjNjMDY3ZDVhYWUuLjYwNWM3YTZjYzM5IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9l eGVjbm9kZXMuaApAQCAtNTI0LDcgKzUyNCw3IEBAIHR5cGVkZWYgc3RydWN0IFJlc3VsdFJlbElu Zm8KIAlFeHByU3RhdGUgKipyaV9UcmlnV2hlbkV4cHJzOwogCiAJLyogb3B0aW9uYWwgcnVudGlt ZSBtZWFzdXJlbWVudHMgZm9yIHRyaWdnZXJzICovCi0JSW5zdHJ1bWVudGF0aW9uICpyaV9Ucmln SW5zdHJ1bWVudDsKKwlUcmlnZ2VySW5zdHJ1bWVudGF0aW9uICpyaV9UcmlnSW5zdHJ1bWVudDsK IAogCS8qIE9uLWRlbWFuZCBjcmVhdGVkIHNsb3RzIGZvciB0cmlnZ2VycyAvIHJldHVybmluZyBw cm9jZXNzaW5nICovCiAJVHVwbGVUYWJsZVNsb3QgKnJpX1JldHVybmluZ1Nsb3Q7CS8qIGZvciB0 cmlnZ2VyIG91dHB1dCB0dXBsZXMgKi8KQEAgLTExNzUsOCArMTE3NSwxMCBAQCB0eXBlZGVmIHN0 cnVjdCBQbGFuU3RhdGUKIAlFeGVjUHJvY05vZGVNdGQgRXhlY1Byb2NOb2RlUmVhbDsJLyogYWN0 dWFsIGZ1bmN0aW9uLCBpZiBhYm92ZSBpcyBhCiAJCQkJCQkJCQkJICogd3JhcHBlciAqLwogCi0J SW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50OwkvKiBPcHRpb25hbCBydW50aW1lIHN0YXRzIGZv ciB0aGlzIG5vZGUgKi8KLQlXb3JrZXJJbnN0cnVtZW50YXRpb24gKndvcmtlcl9pbnN0cnVtZW50 OwkvKiBwZXItd29ya2VyIGluc3RydW1lbnRhdGlvbiAqLworCU5vZGVJbnN0cnVtZW50YXRpb24g Kmluc3RydW1lbnQ7CS8qIE9wdGlvbmFsIHJ1bnRpbWUgc3RhdHMgZm9yIHRoaXMKKwkJCQkJCQkJ CQkgKiBub2RlICovCisJV29ya2VyTm9kZUluc3RydW1lbnRhdGlvbiAqd29ya2VyX2luc3RydW1l bnQ7CS8qIHBlci13b3JrZXIKKwkJCQkJCQkJCQkJCQkgKiBpbnN0cnVtZW50YXRpb24gKi8KIAog CS8qIFBlci13b3JrZXIgSklUIGluc3RydW1lbnRhdGlvbiAqLwogCXN0cnVjdCBTaGFyZWRKaXRJ bnN0cnVtZW50YXRpb24gKndvcmtlcl9qaXRfaW5zdHJ1bWVudDsKZGlmZiAtLWdpdCBhL3NyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZz Lmxpc3QKaW5kZXggMjQxOTQ1NzM0ZWMuLmUxMDc1YzcwOWY1IDEwMDY0NAotLS0gYS9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdApAQCAtMTc4NCw2ICsxNzg0LDcgQEAgTmV4dFNhbXBsZUJsb2NrX2Z1bmN0aW9uCiBO ZXh0U2FtcGxlVHVwbGVfZnVuY3Rpb24KIE5leHRWYWx1ZUV4cHIKIE5vZGUKK05vZGVJbnN0cnVt ZW50YXRpb24KIE5vZGVUYWcKIE5vbkVtcHR5UmFuZ2UKIE5vbmVDb21wcmVzc29yU3RhdGUKQEAg LTMxNTUsNiArMzE1Niw3IEBAIFRyaWdnZXJEZXNjCiBUcmlnZ2VyRXZlbnQKIFRyaWdnZXJGbGFn cwogVHJpZ2dlckluZm8KK1RyaWdnZXJJbnN0cnVtZW50YXRpb24KIFRyaWdnZXJUcmFuc2l0aW9u CiBUcnVuY2F0ZVN0bXQKIFRzbVJvdXRpbmUKQEAgLTMzNzUsOSArMzM3Nyw5IEBAIFdvcmtUYWJs ZVNjYW4KIFdvcmtUYWJsZVNjYW5TdGF0ZQogV29ya2VySW5mbwogV29ya2VySW5mb0RhdGEKLVdv cmtlckluc3RydW1lbnRhdGlvbgogV29ya2VySm9iRHVtcFB0clR5cGUKIFdvcmtlckpvYlJlc3Rv cmVQdHJUeXBlCitXb3JrZXJOb2RlSW5zdHJ1bWVudGF0aW9uCiBXb3JraW5nX1N0YXRlCiBXcml0 ZUJ1ZlB0clR5cGUKIFdyaXRlQnl0ZVB0clR5cGUKLS0gCjIuNDcuMQoK --000000000000702390064b8a3016 Content-Type: application/octet-stream; name="v6-0001-instrumentation-Rename-INSTR_TIME_LT-macro-to-INS.patch" Content-Disposition: attachment; filename="v6-0001-instrumentation-Rename-INSTR_TIME_LT-macro-to-INS.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm02xadg0 RnJvbSBlNTQ4YzQxYWIzYzU1ZmE3ZGU4ODU4MWMzNDdiZGFhNGIwNDE1NWE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBT dW4sIDIyIEZlYiAyMDI2IDE2OjM2OjU0IC0wODAwClN1YmplY3Q6IFtQQVRDSCB2NiAxLzhdIGlu c3RydW1lbnRhdGlvbjogUmVuYW1lIElOU1RSX1RJTUVfTFQgbWFjcm8gdG8KIElOU1RSX1RJTUVf R1QKClRoaXMgd2FzIGluY29ycmVjdGx5IG5hbWVkICJMVCIgZm9yICJsYXJnZXIgdGhhbiIgaW4g ZTVhNWUwYTkwNzUwZDY2LCBidXQKdGhhdCBpcyBhZ2FpbnN0IGV4aXN0aW5nIGNvbnZlbnRpb25z LCB3aGVyZSAiTFQiIG1lYW5zICJsZXNzIHRoYW4iLgpDbGFyaWZ5IGJ5IHVzaW5nICJHVCIgZm9y ICJncmVhdGVyIHRoYW4iIGluIG1hY3JvIG5hbWUsIGFuZCBhZGQgYSBtaXNzaW5nCmNvbW1lbnQg YXQgdGhlIHRvcCBvZiBpbnN0cl90aW1lLmggdG8gbm90ZSB0aGUgbWFjcm8ncyBleGlzdGVuY2Uu CgpSZXBvcnRlZCBieTogUGV0ZXIgU21pdGggPHNtaXRocGIyMjUwQGdtYWlsLmNvbT4KQXV0aG9y OiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpSZXZpZXdlZC1ieToKRGlzY3Vzc2lvbjog aHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0L0NBSHV0JTJCUHV0OTRD VHBqUXNxT0pIZEhrZ0oyWlhxJTJCcVZTZk1FY21ES0xpV0xXLWhQZkElNDBtYWlsLmdtYWlsLmNv bSMwNjkwZDk5YmViYzZkZDliMDM1NzI0ZjY2ZDk5ODZjMQotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1 dG9yL2luc3RydW1lbnQuYyAgICB8IDIgKy0KIHNyYy9pbmNsdWRlL3BvcnRhYmlsaXR5L2luc3Ry X3RpbWUuaCB8IDQgKysrLQogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvaW5zdHJ1bWVudC5j IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvaW5zdHJ1bWVudC5jCmluZGV4IGVkYWI5MmEwZWJlLi40 YzM5MzBhNGY4NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvaW5zdHJ1bWVudC5j CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYwpAQCAtMTcwLDcgKzE3MCw3 IEBAIEluc3RyQWdnTm9kZShJbnN0cnVtZW50YXRpb24gKmRzdCwgSW5zdHJ1bWVudGF0aW9uICph ZGQpCiAJCWRzdC0+Zmlyc3R0dXBsZSA9IGFkZC0+Zmlyc3R0dXBsZTsKIAl9CiAJZWxzZSBpZiAo ZHN0LT5ydW5uaW5nICYmIGFkZC0+cnVubmluZyAmJgotCQkJIElOU1RSX1RJTUVfTFQoZHN0LT5m aXJzdHR1cGxlLCBhZGQtPmZpcnN0dHVwbGUpKQorCQkJIElOU1RSX1RJTUVfR1QoZHN0LT5maXJz dHR1cGxlLCBhZGQtPmZpcnN0dHVwbGUpKQogCQlkc3QtPmZpcnN0dHVwbGUgPSBhZGQtPmZpcnN0 dHVwbGU7CiAKIAlJTlNUUl9USU1FX0FERChkc3QtPmNvdW50ZXIsIGFkZC0+Y291bnRlcik7CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90aW1lLmggYi9zcmMvaW5j bHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90aW1lLmgKaW5kZXggNDkwNTkzZDE4MjUuLjg3YjllYzk1 NTMxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90aW1lLmgKKysr IGIvc3JjL2luY2x1ZGUvcG9ydGFiaWxpdHkvaW5zdHJfdGltZS5oCkBAIC0yOCw2ICsyOCw4IEBA CiAgKgogICogSU5TVFJfVElNRV9BQ0NVTV9ESUZGKHgsIHksIHopCXggKz0gKHkgLSB6KQogICoK KyAqIElOU1RSX1RJTUVfR1QoeCwgeSkJCQkJeCA+IHkKKyAqCiAgKiBJTlNUUl9USU1FX0dFVF9E T1VCTEUodCkJCQljb252ZXJ0IHQgdG8gZG91YmxlIChpbiBzZWNvbmRzKQogICoKICAqIElOU1RS X1RJTUVfR0VUX01JTExJU0VDKHQpCQljb252ZXJ0IHQgdG8gZG91YmxlIChpbiBtaWxsaXNlY29u ZHMpCkBAIC0xODQsNyArMTg2LDcgQEAgR2V0VGltZXJGcmVxdWVuY3kodm9pZCkKICNkZWZpbmUg SU5TVFJfVElNRV9BQ0NVTV9ESUZGKHgseSx6KSBcCiAJKCh4KS50aWNrcyArPSAoeSkudGlja3Mg LSAoeikudGlja3MpCiAKLSNkZWZpbmUgSU5TVFJfVElNRV9MVCh4LHkpIFwKKyNkZWZpbmUgSU5T VFJfVElNRV9HVCh4LHkpIFwKIAkoKHgpLnRpY2tzID4gKHkpLnRpY2tzKQogCiAjZGVmaW5lIElO U1RSX1RJTUVfR0VUX0RPVUJMRSh0KSBcCi0tIAoyLjQ3LjEKCg== --000000000000702390064b8a3016 Content-Type: application/octet-stream; name="v6-0005-Optimize-measuring-WAL-buffer-usage-through-stack.patch" Content-Disposition: attachment; filename="v6-0005-Optimize-measuring-WAL-buffer-usage-through-stack.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm02xadv4 RnJvbSA3NzE2MWE2ZjJjMGViNzgxODllODU5NWMwZjI3NmM1ZmU0ZmNmYTJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBU dWUsIDkgU2VwIDIwMjUgMDI6MTY6NTkgLTA3MDAKU3ViamVjdDogW1BBVENIIHY2IDUvOF0gT3B0 aW1pemUgbWVhc3VyaW5nIFdBTC9idWZmZXIgdXNhZ2UgdGhyb3VnaAogc3RhY2stYmFzZWQgaW5z dHJ1bWVudGF0aW9uCgpQcmV2aW91c2x5LCBpbiBvcmRlciB0byBkZXRlcm1pbmUgdGhlIGJ1ZmZl ci9XQUwgdXNhZ2Ugb2YgYSBnaXZlbiBjb2RlCnNlY3Rpb24sIHdlIHV0aWxpemVkIGNvbnRpbnVv dXNseSBpbmNyZW1lbnRpbmcgZ2xvYmFsIGNvdW50ZXJzIHRoYXQgZ2V0CnVwZGF0ZWQgd2hlbiB0 aGUgYWN0dWFsIGFjdGl2aXR5IChlLmcuIHNoYXJlZCBibG9jayByZWFkKSBvY2N1cnJlZCwgYW5k CnRoZW4gY2FsY3VsYXRlZCBhIGRpZmYgd2hlbiB0aGUgY29kZSBzZWN0aW9uIGVuZGVkLiBUaGlz IHJlc3VsdGVkIGluIGEKYm90dGxlbmVjayBmb3IgZXhlY3V0b3Igbm9kZSBpbnN0cnVtZW50YXRp b24gc3BlY2lmaWNhbGx5LCB3aXRoIHRoZQpmdW5jdGlvbiBCdWZmZXJVc2FnZUFjY3VtRGlmZiBz aG93aW5nIHVwIGluIHByb2ZpbGVzIGFuZCBpbiBzb21lIGNhc2VzCmFkZGluZyB1cCB0byAxMCUg b3ZlcmhlYWQgdG8gYW4gRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUykgcnVuLgoKSW5zdGVhZCwg aW50cm9kdWNlIGEgc3RhY2stYmFzZWQgbWVjaGFuaXNtLCB3aGVyZSB0aGUgYWN0dWFsIGFjdGl2 aXR5CndyaXRlcyBpbnRvIHRoZSBjdXJyZW50IHN0YWNrIGVudHJ5LiBJbiB0aGUgY2FzZSBvZiBl eGVjdXRvciBub2RlcywgdGhpcwptZWFucyB0aGF0IGVhY2ggbm9kZSBnZXRzIGl0cyBvd24gc3Rh Y2sgZW50cnkgdGhhdCBpcyBwdXNoZWQgYXQKSW5zdHJTdGFydE5vZGUsIGFuZCBwb3BwZWQgYXQg SW5zdHJFbmROb2RlLiBTdGFjayBlbnRyaWVzIGFyZSB6ZXJvCmluaXRpYWxpemVkIChhdm9pZGlu ZyB0aGUgZGlmZiBtZWNoYW5pc20pIGFuZCBnZXQgYWRkZWQgdG8gdGhlaXIgcGFyZW50CmVudHJ5 IHdoZW4gdGhleSBhcmUgZmluYWxpemVkLCBpLmUuIG5vIG1vcmUgbW9kaWZpY2F0aW9ucyBjYW4g b2NjdXIuCgpUbyBjb3JyZWN0bHkgaGFuZGxlIGFib3J0IHNpdHVhdGlvbnMsIGFueSB1c2Ugb2Yg aW5zdHJ1bWVudGF0aW9uIHN0YWNrcwptdXN0IGludm9sdmUgZWl0aGVyIGEgdG9wLWxldmVsIElu c3RydW1lbnRhdGlvbiBzdHJ1Y3QsIGFuZCBpdHMgYXNzb2NpYXRlZApJbnN0clN0YXJ0L0luc3Ry U3RvcCBoZWxwZXJzICh3aGljaCB1c2UgcmVzb3VyY2Ugb3duZXJzIHRvIGhhbmRsZSBhYm9ydHMp LApvciBkZWRpY2F0ZWQgUEdfVFJZL1BHX0ZJTkFMTFkgY2FsbHMgdGhhdCBlbnN1cmUgdGhlIHN0 YWNrIGlzIGluIGEKY29uc2lzdGVudCBzdGF0ZSBhZnRlciBhbiBhYm9ydC4KCkF1dGhvcjogTHVr YXMgRml0dGwgPGx1a2FzQGZpdHRsLmNvbT4KUmV2aWV3ZWQtYnk6CkRpc2N1c3Npb246Ci0tLQog Li4uL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYyAgIHwgMTA3ICsrKy0t LQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jICAgICAgICAgICAgICAgIHwgICA2ICst CiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jICAgICAgICAgICAgfCAgIDYgKy0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jICAgICAgICAgICB8ICAgNiArLQog c3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jICAgICAgICAgICAgICAgIHwgICA4ICstCiBz cmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jICAgICAgICAgfCAgIDYgKy0KIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8ICA2MCArKy0KIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jICAgICAgICAgICB8ICAgNiArLQogc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY1Byb2Nub2RlLmMgICAgICAgICAgIHwgIDc5ICsrKysKIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYyAgICAgICAgICAgICB8IDM0NiArKysrKysr KysrKysrKystLS0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmggICAgICAgICAgICAg ICB8ICAgMiArCiBzcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmggICAgICAgICAgICAg fCAxMTYgKysrKystCiBzcmMvaW5jbHVkZS91dGlscy9yZXNvd25lci5oICAgICAgICAgICAgICAg ICAgfCAgIDEgKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAg IHwgICAxICsKIDE0IGZpbGVzIGNoYW5nZWQsIDYyMSBpbnNlcnRpb25zKCspLCAxMjkgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9z dGF0ZW1lbnRzLmMgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVu dHMuYwppbmRleCAzODhiMDY4Y2NlYy4uZmUzMjM3ZmM2NjUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIv cGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jCisrKyBiL2NvbnRyaWIvcGdf c3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jCkBAIC05MTEsMjEgKzkxMSwxMyBA QCBwZ3NzX3BsYW5uZXIoUXVlcnkgKnBhcnNlLAogCXsKIAkJaW5zdHJfdGltZQlzdGFydDsKIAkJ aW5zdHJfdGltZQlkdXJhdGlvbjsKLQkJQnVmZmVyVXNhZ2UgYnVmdXNhZ2Vfc3RhcnQsCi0JCQkJ CWJ1ZnVzYWdlOwotCQlXYWxVc2FnZQl3YWx1c2FnZV9zdGFydCwKLQkJCQkJd2FsdXNhZ2U7CisJ CUluc3RyU3RhY2sJc3RhY2sgPSB7MH07CiAKLQkJLyogV2UgbmVlZCB0byB0cmFjayBidWZmZXIg dXNhZ2UgYXMgdGhlIHBsYW5uZXIgY2FuIGFjY2VzcyB0aGVtLiAqLwotCQlidWZ1c2FnZV9zdGFy dCA9IHBnQnVmZmVyVXNhZ2U7Ci0KLQkJLyoKLQkJICogU2ltaWxhcmx5IHRoZSBwbGFubmVyIGNv dWxkIHdyaXRlIHNvbWUgV0FMIHJlY29yZHMgaW4gc29tZSBjYXNlcwotCQkgKiAoZS5nLiBzZXR0 aW5nIGEgaGludCBiaXQgd2l0aCB0aG9zZSBiZWluZyBXQUwtbG9nZ2VkKQotCQkgKi8KLQkJd2Fs dXNhZ2Vfc3RhcnQgPSBwZ1dhbFVzYWdlOwogCQlJTlNUUl9USU1FX1NFVF9DVVJSRU5UKHN0YXJ0 KTsKIAorCQkvKiBXZSBuZWVkIHRvIHRyYWNrIGJ1ZmZlci9XQUwgdXNhZ2UgYXMgdGhlIHBsYW5u ZXIgY2FuIGFjY2VzcyB0aGVtLiAqLworCQlJbnN0clB1c2hTdGFjaygmc3RhY2spOworCiAJCW5l c3RpbmdfbGV2ZWwrKzsKIAkJUEdfVFJZKCk7CiAJCXsKQEAgLTkzOCw2ICs5MzAsNyBAQCBwZ3Nz X3BsYW5uZXIoUXVlcnkgKnBhcnNlLAogCQl9CiAJCVBHX0ZJTkFMTFkoKTsKIAkJeworCQkJSW5z dHJQb3BBbmRGaW5hbGl6ZVN0YWNrKCZzdGFjayk7CiAJCQluZXN0aW5nX2xldmVsLS07CiAJCX0K IAkJUEdfRU5EX1RSWSgpOwpAQCAtOTQ1LDE0ICs5MzgsNiBAQCBwZ3NzX3BsYW5uZXIoUXVlcnkg KnBhcnNlLAogCQlJTlNUUl9USU1FX1NFVF9DVVJSRU5UKGR1cmF0aW9uKTsKIAkJSU5TVFJfVElN RV9TVUJUUkFDVChkdXJhdGlvbiwgc3RhcnQpOwogCi0JCS8qIGNhbGMgZGlmZmVyZW5jZXMgb2Yg YnVmZmVyIGNvdW50ZXJzLiAqLwotCQltZW1zZXQoJmJ1ZnVzYWdlLCAwLCBzaXplb2YoQnVmZmVy VXNhZ2UpKTsKLQkJQnVmZmVyVXNhZ2VBY2N1bURpZmYoJmJ1ZnVzYWdlLCAmcGdCdWZmZXJVc2Fn ZSwgJmJ1ZnVzYWdlX3N0YXJ0KTsKLQotCQkvKiBjYWxjIGRpZmZlcmVuY2VzIG9mIFdBTCBjb3Vu dGVycy4gKi8KLQkJbWVtc2V0KCZ3YWx1c2FnZSwgMCwgc2l6ZW9mKFdhbFVzYWdlKSk7Ci0JCVdh bFVzYWdlQWNjdW1EaWZmKCZ3YWx1c2FnZSwgJnBnV2FsVXNhZ2UsICZ3YWx1c2FnZV9zdGFydCk7 Ci0KIAkJcGdzc19zdG9yZShxdWVyeV9zdHJpbmcsCiAJCQkJICAgcGFyc2UtPnF1ZXJ5SWQsCiAJ CQkJICAgcGFyc2UtPnN0bXRfbG9jYXRpb24sCkBAIC05NjAsOCArOTQ1LDggQEAgcGdzc19wbGFu bmVyKFF1ZXJ5ICpwYXJzZSwKIAkJCQkgICBQR1NTX1BMQU4sCiAJCQkJICAgSU5TVFJfVElNRV9H RVRfTUlMTElTRUMoZHVyYXRpb24pLAogCQkJCSAgIDAsCi0JCQkJICAgJmJ1ZnVzYWdlLAotCQkJ CSAgICZ3YWx1c2FnZSwKKwkJCQkgICAmc3RhY2suYnVmdXNhZ2UsCisJCQkJICAgJnN0YWNrLndh bHVzYWdlLAogCQkJCSAgIE5VTEwsCiAJCQkJICAgTlVMTCwKIAkJCQkgICAwLApAQCAtMTA4Miw2 ICsxMDY3LDEzIEBAIHBnc3NfRXhlY3V0b3JFbmQoUXVlcnlEZXNjICpxdWVyeURlc2MpCiAJaWYg KHF1ZXJ5SWQgIT0gSU5UNjRDT05TVCgwKSAmJiBxdWVyeURlc2MtPnRvdGFsdGltZSAmJgogCQlw Z3NzX2VuYWJsZWQobmVzdGluZ19sZXZlbCkpCiAJeworCQkvKgorCQkgKiBDaGVjayBpZiBzdGFj ayBpcyBpbml0aWFsaXplZCAtIGl0IGlzIG5vdCB3aGVuIEV4ZWN1dG9yUnVuIHdhc24ndAorCQkg KiBjYWxsZWQKKwkJICovCisJCWNvbnN0IEJ1ZmZlclVzYWdlICpidWZ1c2FnZSA9IHF1ZXJ5RGVz Yy0+dG90YWx0aW1lLT5zdGFjayA/ICZxdWVyeURlc2MtPnRvdGFsdGltZS0+c3RhY2stPmJ1ZnVz YWdlIDogTlVMTDsKKwkJY29uc3QgV2FsVXNhZ2UgKndhbHVzYWdlID0gcXVlcnlEZXNjLT50b3Rh bHRpbWUtPnN0YWNrID8gJnF1ZXJ5RGVzYy0+dG90YWx0aW1lLT5zdGFjay0+d2FsdXNhZ2UgOiBO VUxMOworCiAJCXBnc3Nfc3RvcmUocXVlcnlEZXNjLT5zb3VyY2VUZXh0LAogCQkJCSAgIHF1ZXJ5 SWQsCiAJCQkJICAgcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c3RtdF9sb2NhdGlvbiwKQEAgLTEw ODksOCArMTA4MSw4IEBAIHBnc3NfRXhlY3V0b3JFbmQoUXVlcnlEZXNjICpxdWVyeURlc2MpCiAJ CQkJICAgUEdTU19FWEVDLAogCQkJCSAgIElOU1RSX1RJTUVfR0VUX01JTExJU0VDKHF1ZXJ5RGVz Yy0+dG90YWx0aW1lLT50b3RhbCksCiAJCQkJICAgcXVlcnlEZXNjLT5lc3RhdGUtPmVzX3RvdGFs X3Byb2Nlc3NlZCwKLQkJCQkgICAmcXVlcnlEZXNjLT50b3RhbHRpbWUtPmJ1ZnVzYWdlLAotCQkJ CSAgICZxdWVyeURlc2MtPnRvdGFsdGltZS0+d2FsdXNhZ2UsCisJCQkJICAgYnVmdXNhZ2UsCisJ CQkJICAgd2FsdXNhZ2UsCiAJCQkJICAgcXVlcnlEZXNjLT5lc3RhdGUtPmVzX2ppdCA/ICZxdWVy eURlc2MtPmVzdGF0ZS0+ZXNfaml0LT5pbnN0ciA6IE5VTEwsCiAJCQkJICAgTlVMTCwKIAkJCQkg ICBxdWVyeURlc2MtPmVzdGF0ZS0+ZXNfcGFyYWxsZWxfd29ya2Vyc190b19sYXVuY2gsCkBAIC0x MTU3LDE0ICsxMTQ5LDEwIEBAIHBnc3NfUHJvY2Vzc1V0aWxpdHkoUGxhbm5lZFN0bXQgKnBzdG10 LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIAkJaW5zdHJfdGltZQlzdGFydDsKIAkJaW5zdHJf dGltZQlkdXJhdGlvbjsKIAkJdWludDY0CQlyb3dzOwotCQlCdWZmZXJVc2FnZSBidWZ1c2FnZV9z dGFydCwKLQkJCQkJYnVmdXNhZ2U7Ci0JCVdhbFVzYWdlCXdhbHVzYWdlX3N0YXJ0LAotCQkJCQl3 YWx1c2FnZTsKKwkJSW5zdHJTdGFjawlzdGFjayA9IHswfTsKIAotCQlidWZ1c2FnZV9zdGFydCA9 IHBnQnVmZmVyVXNhZ2U7Ci0JCXdhbHVzYWdlX3N0YXJ0ID0gcGdXYWxVc2FnZTsKIAkJSU5TVFJf VElNRV9TRVRfQ1VSUkVOVChzdGFydCk7CisJCUluc3RyUHVzaFN0YWNrKCZzdGFjayk7CiAKIAkJ bmVzdGluZ19sZXZlbCsrOwogCQlQR19UUlkoKTsKQEAgLTExODAsNiArMTE2OCw3IEBAIHBnc3Nf UHJvY2Vzc1V0aWxpdHkoUGxhbm5lZFN0bXQgKnBzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmlu ZywKIAkJfQogCQlQR19GSU5BTExZKCk7CiAJCXsKKwkJCUluc3RyUG9wQW5kRmluYWxpemVTdGFj aygmc3RhY2spOwogCQkJbmVzdGluZ19sZXZlbC0tOwogCQl9CiAJCVBHX0VORF9UUlkoKTsKQEAg LTEyMDgsMTQgKzExOTcsNiBAQCBwZ3NzX1Byb2Nlc3NVdGlsaXR5KFBsYW5uZWRTdG10ICpwc3Rt dCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJCQkJCSAgIHFjLT5jb21tYW5kVGFnID09IENN RFRBR19SRUZSRVNIX01BVEVSSUFMSVpFRF9WSUVXKSkgPwogCQkJcWMtPm5wcm9jZXNzZWQgOiAw OwogCi0JCS8qIGNhbGMgZGlmZmVyZW5jZXMgb2YgYnVmZmVyIGNvdW50ZXJzLiAqLwotCQltZW1z ZXQoJmJ1ZnVzYWdlLCAwLCBzaXplb2YoQnVmZmVyVXNhZ2UpKTsKLQkJQnVmZmVyVXNhZ2VBY2N1 bURpZmYoJmJ1ZnVzYWdlLCAmcGdCdWZmZXJVc2FnZSwgJmJ1ZnVzYWdlX3N0YXJ0KTsKLQotCQkv KiBjYWxjIGRpZmZlcmVuY2VzIG9mIFdBTCBjb3VudGVycy4gKi8KLQkJbWVtc2V0KCZ3YWx1c2Fn ZSwgMCwgc2l6ZW9mKFdhbFVzYWdlKSk7Ci0JCVdhbFVzYWdlQWNjdW1EaWZmKCZ3YWx1c2FnZSwg JnBnV2FsVXNhZ2UsICZ3YWx1c2FnZV9zdGFydCk7Ci0KIAkJcGdzc19zdG9yZShxdWVyeVN0cmlu ZywKIAkJCQkgICBzYXZlZF9xdWVyeUlkLAogCQkJCSAgIHNhdmVkX3N0bXRfbG9jYXRpb24sCkBA IC0xMjIzLDggKzEyMDQsOCBAQCBwZ3NzX1Byb2Nlc3NVdGlsaXR5KFBsYW5uZWRTdG10ICpwc3Rt dCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJCQkJICAgUEdTU19FWEVDLAogCQkJCSAgIElO U1RSX1RJTUVfR0VUX01JTExJU0VDKGR1cmF0aW9uKSwKIAkJCQkgICByb3dzLAotCQkJCSAgICZi dWZ1c2FnZSwKLQkJCQkgICAmd2FsdXNhZ2UsCisJCQkJICAgJnN0YWNrLmJ1ZnVzYWdlLAorCQkJ CSAgICZzdGFjay53YWx1c2FnZSwKIAkJCQkgICBOVUxMLAogCQkJCSAgIE5VTEwsCiAJCQkJICAg MCwKQEAgLTE0NTQsMjcgKzE0MzUsMzMgQEAgcGdzc19zdG9yZShjb25zdCBjaGFyICpxdWVyeSwg aW50NjQgcXVlcnlJZCwKIAkJCX0KIAkJfQogCQllbnRyeS0+Y291bnRlcnMucm93cyArPSByb3dz OwotCQllbnRyeS0+Y291bnRlcnMuc2hhcmVkX2Jsa3NfaGl0ICs9IGJ1ZnVzYWdlLT5zaGFyZWRf Ymxrc19oaXQ7Ci0JCWVudHJ5LT5jb3VudGVycy5zaGFyZWRfYmxrc19yZWFkICs9IGJ1ZnVzYWdl LT5zaGFyZWRfYmxrc19yZWFkOwotCQllbnRyeS0+Y291bnRlcnMuc2hhcmVkX2Jsa3NfZGlydGll ZCArPSBidWZ1c2FnZS0+c2hhcmVkX2Jsa3NfZGlydGllZDsKLQkJZW50cnktPmNvdW50ZXJzLnNo YXJlZF9ibGtzX3dyaXR0ZW4gKz0gYnVmdXNhZ2UtPnNoYXJlZF9ibGtzX3dyaXR0ZW47Ci0JCWVu dHJ5LT5jb3VudGVycy5sb2NhbF9ibGtzX2hpdCArPSBidWZ1c2FnZS0+bG9jYWxfYmxrc19oaXQ7 Ci0JCWVudHJ5LT5jb3VudGVycy5sb2NhbF9ibGtzX3JlYWQgKz0gYnVmdXNhZ2UtPmxvY2FsX2Js a3NfcmVhZDsKLQkJZW50cnktPmNvdW50ZXJzLmxvY2FsX2Jsa3NfZGlydGllZCArPSBidWZ1c2Fn ZS0+bG9jYWxfYmxrc19kaXJ0aWVkOwotCQllbnRyeS0+Y291bnRlcnMubG9jYWxfYmxrc193cml0 dGVuICs9IGJ1ZnVzYWdlLT5sb2NhbF9ibGtzX3dyaXR0ZW47Ci0JCWVudHJ5LT5jb3VudGVycy50 ZW1wX2Jsa3NfcmVhZCArPSBidWZ1c2FnZS0+dGVtcF9ibGtzX3JlYWQ7Ci0JCWVudHJ5LT5jb3Vu dGVycy50ZW1wX2Jsa3Nfd3JpdHRlbiArPSBidWZ1c2FnZS0+dGVtcF9ibGtzX3dyaXR0ZW47Ci0J CWVudHJ5LT5jb3VudGVycy5zaGFyZWRfYmxrX3JlYWRfdGltZSArPSBJTlNUUl9USU1FX0dFVF9N SUxMSVNFQyhidWZ1c2FnZS0+c2hhcmVkX2Jsa19yZWFkX3RpbWUpOwotCQllbnRyeS0+Y291bnRl cnMuc2hhcmVkX2Jsa193cml0ZV90aW1lICs9IElOU1RSX1RJTUVfR0VUX01JTExJU0VDKGJ1ZnVz YWdlLT5zaGFyZWRfYmxrX3dyaXRlX3RpbWUpOwotCQllbnRyeS0+Y291bnRlcnMubG9jYWxfYmxr X3JlYWRfdGltZSArPSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhidWZ1c2FnZS0+bG9jYWxfYmxr X3JlYWRfdGltZSk7Ci0JCWVudHJ5LT5jb3VudGVycy5sb2NhbF9ibGtfd3JpdGVfdGltZSArPSBJ TlNUUl9USU1FX0dFVF9NSUxMSVNFQyhidWZ1c2FnZS0+bG9jYWxfYmxrX3dyaXRlX3RpbWUpOwot CQllbnRyeS0+Y291bnRlcnMudGVtcF9ibGtfcmVhZF90aW1lICs9IElOU1RSX1RJTUVfR0VUX01J TExJU0VDKGJ1ZnVzYWdlLT50ZW1wX2Jsa19yZWFkX3RpbWUpOwotCQllbnRyeS0+Y291bnRlcnMu dGVtcF9ibGtfd3JpdGVfdGltZSArPSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhidWZ1c2FnZS0+ dGVtcF9ibGtfd3JpdGVfdGltZSk7CisJCWlmIChidWZ1c2FnZSkKKwkJeworCQkJZW50cnktPmNv dW50ZXJzLnNoYXJlZF9ibGtzX2hpdCArPSBidWZ1c2FnZS0+c2hhcmVkX2Jsa3NfaGl0OworCQkJ ZW50cnktPmNvdW50ZXJzLnNoYXJlZF9ibGtzX3JlYWQgKz0gYnVmdXNhZ2UtPnNoYXJlZF9ibGtz X3JlYWQ7CisJCQllbnRyeS0+Y291bnRlcnMuc2hhcmVkX2Jsa3NfZGlydGllZCArPSBidWZ1c2Fn ZS0+c2hhcmVkX2Jsa3NfZGlydGllZDsKKwkJCWVudHJ5LT5jb3VudGVycy5zaGFyZWRfYmxrc193 cml0dGVuICs9IGJ1ZnVzYWdlLT5zaGFyZWRfYmxrc193cml0dGVuOworCQkJZW50cnktPmNvdW50 ZXJzLmxvY2FsX2Jsa3NfaGl0ICs9IGJ1ZnVzYWdlLT5sb2NhbF9ibGtzX2hpdDsKKwkJCWVudHJ5 LT5jb3VudGVycy5sb2NhbF9ibGtzX3JlYWQgKz0gYnVmdXNhZ2UtPmxvY2FsX2Jsa3NfcmVhZDsK KwkJCWVudHJ5LT5jb3VudGVycy5sb2NhbF9ibGtzX2RpcnRpZWQgKz0gYnVmdXNhZ2UtPmxvY2Fs X2Jsa3NfZGlydGllZDsKKwkJCWVudHJ5LT5jb3VudGVycy5sb2NhbF9ibGtzX3dyaXR0ZW4gKz0g YnVmdXNhZ2UtPmxvY2FsX2Jsa3Nfd3JpdHRlbjsKKwkJCWVudHJ5LT5jb3VudGVycy50ZW1wX2Js a3NfcmVhZCArPSBidWZ1c2FnZS0+dGVtcF9ibGtzX3JlYWQ7CisJCQllbnRyeS0+Y291bnRlcnMu dGVtcF9ibGtzX3dyaXR0ZW4gKz0gYnVmdXNhZ2UtPnRlbXBfYmxrc193cml0dGVuOworCQkJZW50 cnktPmNvdW50ZXJzLnNoYXJlZF9ibGtfcmVhZF90aW1lICs9IElOU1RSX1RJTUVfR0VUX01JTExJ U0VDKGJ1ZnVzYWdlLT5zaGFyZWRfYmxrX3JlYWRfdGltZSk7CisJCQllbnRyeS0+Y291bnRlcnMu c2hhcmVkX2Jsa193cml0ZV90aW1lICs9IElOU1RSX1RJTUVfR0VUX01JTExJU0VDKGJ1ZnVzYWdl LT5zaGFyZWRfYmxrX3dyaXRlX3RpbWUpOworCQkJZW50cnktPmNvdW50ZXJzLmxvY2FsX2Jsa19y ZWFkX3RpbWUgKz0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoYnVmdXNhZ2UtPmxvY2FsX2Jsa19y ZWFkX3RpbWUpOworCQkJZW50cnktPmNvdW50ZXJzLmxvY2FsX2Jsa193cml0ZV90aW1lICs9IElO U1RSX1RJTUVfR0VUX01JTExJU0VDKGJ1ZnVzYWdlLT5sb2NhbF9ibGtfd3JpdGVfdGltZSk7CisJ CQllbnRyeS0+Y291bnRlcnMudGVtcF9ibGtfcmVhZF90aW1lICs9IElOU1RSX1RJTUVfR0VUX01J TExJU0VDKGJ1ZnVzYWdlLT50ZW1wX2Jsa19yZWFkX3RpbWUpOworCQkJZW50cnktPmNvdW50ZXJz LnRlbXBfYmxrX3dyaXRlX3RpbWUgKz0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoYnVmdXNhZ2Ut PnRlbXBfYmxrX3dyaXRlX3RpbWUpOworCQl9CiAJCWVudHJ5LT5jb3VudGVycy51c2FnZSArPSBV U0FHRV9FWEVDKHRvdGFsX3RpbWUpOwotCQllbnRyeS0+Y291bnRlcnMud2FsX3JlY29yZHMgKz0g d2FsdXNhZ2UtPndhbF9yZWNvcmRzOwotCQllbnRyeS0+Y291bnRlcnMud2FsX2ZwaSArPSB3YWx1 c2FnZS0+d2FsX2ZwaTsKLQkJZW50cnktPmNvdW50ZXJzLndhbF9ieXRlcyArPSB3YWx1c2FnZS0+ d2FsX2J5dGVzOwotCQllbnRyeS0+Y291bnRlcnMud2FsX2J1ZmZlcnNfZnVsbCArPSB3YWx1c2Fn ZS0+d2FsX2J1ZmZlcnNfZnVsbDsKKwkJaWYgKHdhbHVzYWdlKQorCQl7CisJCQllbnRyeS0+Y291 bnRlcnMud2FsX3JlY29yZHMgKz0gd2FsdXNhZ2UtPndhbF9yZWNvcmRzOworCQkJZW50cnktPmNv dW50ZXJzLndhbF9mcGkgKz0gd2FsdXNhZ2UtPndhbF9mcGk7CisJCQllbnRyeS0+Y291bnRlcnMu d2FsX2J5dGVzICs9IHdhbHVzYWdlLT53YWxfYnl0ZXM7CisJCQllbnRyeS0+Y291bnRlcnMud2Fs X2J1ZmZlcnNfZnVsbCArPSB3YWx1c2FnZS0+d2FsX2J1ZmZlcnNfZnVsbDsKKwkJfQogCQlpZiAo aml0dXNhZ2UpCiAJCXsKIAkJCWVudHJ5LT5jb3VudGVycy5qaXRfZnVuY3Rpb25zICs9IGppdHVz YWdlLT5jcmVhdGVkX2Z1bmN0aW9uczsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9i cmluL2JyaW4uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYwppbmRleCA2ODg3ZTQy MTQ0Mi4uYzFjM2QwM2I2ZWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2Jy aW4uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMKQEAgLTI4ODUsNiArMjg4 NSw3IEBAIF9icmluX3BhcmFsbGVsX2J1aWxkX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3Rv YyAqdG9jKQogCVJlbGF0aW9uCWluZGV4UmVsOwogCUxPQ0tNT0RFCWhlYXBMb2NrbW9kZTsKIAlM T0NLTU9ERQlpbmRleExvY2ttb2RlOworCUluc3RydW1lbnRhdGlvbiAqaW5zdHI7CiAJV2FsVXNh Z2UgICAqd2FsdXNhZ2U7CiAJQnVmZmVyVXNhZ2UgKmJ1ZmZlcnVzYWdlOwogCWludAkJCXNvcnRt ZW07CkBAIC0yOTM0LDcgKzI5MzUsNyBAQCBfYnJpbl9wYXJhbGxlbF9idWlsZF9tYWluKGRzbV9z ZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAl0dXBsZXNvcnRfYXR0YWNoX3NoYXJlZChzaGFy ZWRzb3J0LCBzZWcpOwogCiAJLyogUHJlcGFyZSB0byB0cmFjayBidWZmZXIgdXNhZ2UgZHVyaW5n IHBhcmFsbGVsIGV4ZWN1dGlvbiAqLwotCUluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KCk7CisJaW5z dHIgPSBJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSgpOwogCiAJLyoKIAkgKiBNaWdodCBhcyB3ZWxs IHVzZSByZWxpYWJsZSBmaWd1cmUgd2hlbiBkb2xpbmcgb3V0IG1haW50ZW5hbmNlX3dvcmtfbWVt CkBAIC0yOTQ5LDcgKzI5NTAsOCBAQCBfYnJpbl9wYXJhbGxlbF9idWlsZF9tYWluKGRzbV9zZWdt ZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAkvKiBSZXBvcnQgV0FML2J1ZmZlciB1c2FnZSBkdXJp bmcgcGFyYWxsZWwgZXhlY3V0aW9uICovCiAJYnVmZmVydXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0 b2MsIFBBUkFMTEVMX0tFWV9CVUZGRVJfVVNBR0UsIGZhbHNlKTsKIAl3YWx1c2FnZSA9IHNobV90 b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX1dBTF9VU0FHRSwgZmFsc2UpOwotCUluc3RyRW5k UGFyYWxsZWxRdWVyeSgmYnVmZmVydXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLAorCUluc3Ry RW5kUGFyYWxsZWxRdWVyeShpbnN0ciwKKwkJCQkJCSAgJmJ1ZmZlcnVzYWdlW1BhcmFsbGVsV29y a2VyTnVtYmVyXSwKIAkJCQkJCSAgJndhbHVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSk7CiAK IAlpbmRleF9jbG9zZShpbmRleFJlbCwgaW5kZXhMb2NrbW9kZSk7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9n aW5pbnNlcnQuYwppbmRleCAwZDYzZmI0YmEyNy4uOTE0OWQ3MzVkNTkgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2dpbi9naW5pbnNlcnQuYwpAQCAtMjEwOCw2ICsyMTA4LDcgQEAgX2dpbl9wYXJhbGxlbF9idWls ZF9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAlSZWxhdGlvbglpbmRleFJl bDsKIAlMT0NLTU9ERQloZWFwTG9ja21vZGU7CiAJTE9DS01PREUJaW5kZXhMb2NrbW9kZTsKKwlJ bnN0cnVtZW50YXRpb24gKmluc3RyOwogCVdhbFVzYWdlICAgKndhbHVzYWdlOwogCUJ1ZmZlclVz YWdlICpidWZmZXJ1c2FnZTsKIAlpbnQJCQlzb3J0bWVtOwpAQCAtMjE3Niw3ICsyMTc3LDcgQEAg X2dpbl9wYXJhbGxlbF9idWlsZF9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykK IAl0dXBsZXNvcnRfYXR0YWNoX3NoYXJlZChzaGFyZWRzb3J0LCBzZWcpOwogCiAJLyogUHJlcGFy ZSB0byB0cmFjayBidWZmZXIgdXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dGlvbiAqLwotCUlu c3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KCk7CisJaW5zdHIgPSBJbnN0clN0YXJ0UGFyYWxsZWxRdWVy eSgpOwogCiAJLyoKIAkgKiBNaWdodCBhcyB3ZWxsIHVzZSByZWxpYWJsZSBmaWd1cmUgd2hlbiBk b2xpbmcgb3V0IG1haW50ZW5hbmNlX3dvcmtfbWVtCkBAIC0yMTkxLDcgKzIxOTIsOCBAQCBfZ2lu X3BhcmFsbGVsX2J1aWxkX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCS8q IFJlcG9ydCBXQUwvYnVmZmVyIHVzYWdlIGR1cmluZyBwYXJhbGxlbCBleGVjdXRpb24gKi8KIAli dWZmZXJ1c2FnZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX0JVRkZFUl9VU0FH RSwgZmFsc2UpOwogCXdhbHVzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlf V0FMX1VTQUdFLCBmYWxzZSk7Ci0JSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZmZXJ1c2FnZVtQ YXJhbGxlbFdvcmtlck51bWJlcl0sCisJSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KGluc3RyLAorCQkJ CQkJICAmYnVmZmVydXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLAogCQkJCQkJICAmd2FsdXNh Z2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdKTsKIAogCWluZGV4X2Nsb3NlKGluZGV4UmVsLCBpbmRl eExvY2ttb2RlKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29y dC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMKaW5kZXggM2E0NTUwOGY2 MmUuLjYwMGYyM2ZmMmE2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25i dHNvcnQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYwpAQCAtMTc1 MCw2ICsxNzUwLDcgQEAgX2J0X3BhcmFsbGVsX2J1aWxkX21haW4oZHNtX3NlZ21lbnQgKnNlZywg c2htX3RvYyAqdG9jKQogCVJlbGF0aW9uCWluZGV4UmVsOwogCUxPQ0tNT0RFCWhlYXBMb2NrbW9k ZTsKIAlMT0NLTU9ERQlpbmRleExvY2ttb2RlOworCUluc3RydW1lbnRhdGlvbiAqaW5zdHI7CiAJ V2FsVXNhZ2UgICAqd2FsdXNhZ2U7CiAJQnVmZmVyVXNhZ2UgKmJ1ZmZlcnVzYWdlOwogCWludAkJ CXNvcnRtZW07CkBAIC0xODI1LDcgKzE4MjYsNyBAQCBfYnRfcGFyYWxsZWxfYnVpbGRfbWFpbihk c21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJfQogCiAJLyogUHJlcGFyZSB0byB0cmFj ayBidWZmZXIgdXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dGlvbiAqLwotCUluc3RyU3RhcnRQ YXJhbGxlbFF1ZXJ5KCk7CisJaW5zdHIgPSBJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSgpOwogCiAJ LyogUGVyZm9ybSBzb3J0aW5nIG9mIHNwb29sLCBhbmQgcG9zc2libHkgYSBzcG9vbDIgKi8KIAlz b3J0bWVtID0gbWFpbnRlbmFuY2Vfd29ya19tZW0gLyBidHNoYXJlZC0+c2NhbnR1cGxlc29ydHN0 YXRlczsKQEAgLTE4MzUsNyArMTgzNiw4IEBAIF9idF9wYXJhbGxlbF9idWlsZF9tYWluKGRzbV9z ZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAkvKiBSZXBvcnQgV0FML2J1ZmZlciB1c2FnZSBk dXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uICovCiAJYnVmZmVydXNhZ2UgPSBzaG1fdG9jX2xvb2t1 cCh0b2MsIFBBUkFMTEVMX0tFWV9CVUZGRVJfVVNBR0UsIGZhbHNlKTsKIAl3YWx1c2FnZSA9IHNo bV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX1dBTF9VU0FHRSwgZmFsc2UpOwotCUluc3Ry RW5kUGFyYWxsZWxRdWVyeSgmYnVmZmVydXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLAorCUlu c3RyRW5kUGFyYWxsZWxRdWVyeShpbnN0ciwKKwkJCQkJCSAgJmJ1ZmZlcnVzYWdlW1BhcmFsbGVs V29ya2VyTnVtYmVyXSwKIAkJCQkJCSAgJndhbHVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSk7 CiAKICNpZmRlZiBCVFJFRV9CVUlMRF9TVEFUUwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IGQ3 ZjMzNjQ0ZDc5Li4xNzQwNWFhODYyMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZXhwbGFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwpAQCAtMjI4OCw5 ICsyMjg4LDkgQEAgRXhwbGFpbk5vZGUoUGxhblN0YXRlICpwbGFuc3RhdGUsIExpc3QgKmFuY2Vz dG9ycywKIAogCS8qIFNob3cgYnVmZmVyL1dBTCB1c2FnZSAqLwogCWlmIChlcy0+YnVmZmVycyAm JiBwbGFuc3RhdGUtPmluc3RydW1lbnQpCi0JCXNob3dfYnVmZmVyX3VzYWdlKGVzLCAmcGxhbnN0 YXRlLT5pbnN0cnVtZW50LT5idWZ1c2FnZSk7CisJCXNob3dfYnVmZmVyX3VzYWdlKGVzLCAmcGxh bnN0YXRlLT5pbnN0cnVtZW50LT5zdGFjay5idWZ1c2FnZSk7CiAJaWYgKGVzLT53YWwgJiYgcGxh bnN0YXRlLT5pbnN0cnVtZW50KQotCQlzaG93X3dhbF91c2FnZShlcywgJnBsYW5zdGF0ZS0+aW5z dHJ1bWVudC0+d2FsdXNhZ2UpOworCQlzaG93X3dhbF91c2FnZShlcywgJnBsYW5zdGF0ZS0+aW5z dHJ1bWVudC0+c3RhY2sud2FsdXNhZ2UpOwogCiAJLyogUHJlcGFyZSBwZXItd29ya2VyIGJ1ZmZl ci9XQUwgdXNhZ2UgKi8KIAlpZiAoZXMtPndvcmtlcnNfc3RhdGUgJiYgKGVzLT5idWZmZXJzIHx8 IGVzLT53YWwpICYmIGVzLT52ZXJib3NlKQpAQCAtMjMwNyw5ICsyMzA3LDkgQEAgRXhwbGFpbk5v ZGUoUGxhblN0YXRlICpwbGFuc3RhdGUsIExpc3QgKmFuY2VzdG9ycywKIAogCQkJRXhwbGFpbk9w ZW5Xb3JrZXIobiwgZXMpOwogCQkJaWYgKGVzLT5idWZmZXJzKQotCQkJCXNob3dfYnVmZmVyX3Vz YWdlKGVzLCAmaW5zdHJ1bWVudC0+YnVmdXNhZ2UpOworCQkJCXNob3dfYnVmZmVyX3VzYWdlKGVz LCAmaW5zdHJ1bWVudC0+c3RhY2suYnVmdXNhZ2UpOwogCQkJaWYgKGVzLT53YWwpCi0JCQkJc2hv d193YWxfdXNhZ2UoZXMsICZpbnN0cnVtZW50LT53YWx1c2FnZSk7CisJCQkJc2hvd193YWxfdXNh Z2UoZXMsICZpbnN0cnVtZW50LT5zdGFjay53YWx1c2FnZSk7CiAJCQlFeHBsYWluQ2xvc2VXb3Jr ZXIobiwgZXMpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFj dXVtcGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKaW5k ZXggYzNiM2M5ZWEyMWEuLjEwYmE3MTdiYjZiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBh cmFsbGVsLmMKQEAgLTk5NCw2ICs5OTQsNyBAQCBwYXJhbGxlbF92YWN1dW1fbWFpbihkc21fc2Vn bWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJUFZJbmRTdGF0cyAqaW5kc3RhdHM7CiAJUFZTaGFy ZWQgICAqc2hhcmVkOwogCVRpZFN0b3JlICAgKmRlYWRfaXRlbXM7CisJSW5zdHJ1bWVudGF0aW9u ICppbnN0cjsKIAlCdWZmZXJVc2FnZSAqYnVmZmVyX3VzYWdlOwogCVdhbFVzYWdlICAgKndhbF91 c2FnZTsKIAlpbnQJCQluaW5kZXhlczsKQEAgLTEwODMsNyArMTA4NCw3IEBAIHBhcmFsbGVsX3Zh Y3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAllcnJvcl9jb250ZXh0 X3N0YWNrID0gJmVycmNhbGxiYWNrOwogCiAJLyogUHJlcGFyZSB0byB0cmFjayBidWZmZXIgdXNh Z2UgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dGlvbiAqLwotCUluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5 KCk7CisJaW5zdHIgPSBJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSgpOwogCiAJLyogUHJvY2VzcyBp bmRleGVzIHRvIHBlcmZvcm0gdmFjdXVtL2NsZWFudXAgKi8KIAlwYXJhbGxlbF92YWN1dW1fcHJv Y2Vzc19zYWZlX2luZGV4ZXMoJnB2cyk7CkBAIC0xMDkxLDcgKzEwOTIsOCBAQCBwYXJhbGxlbF92 YWN1dW1fbWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJLyogUmVwb3J0IGJ1 ZmZlci9XQUwgdXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dGlvbiAqLwogCWJ1ZmZlcl91c2Fn ZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfVkFDVVVNX0tFWV9CVUZGRVJfVVNBR0Us IGZhbHNlKTsKIAl3YWxfdXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFMTEVMX1ZBQ1VV TV9LRVlfV0FMX1VTQUdFLCBmYWxzZSk7Ci0JSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZmZXJf dXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLAorCUluc3RyRW5kUGFyYWxsZWxRdWVyeShpbnN0 ciwKKwkJCQkJCSAgJmJ1ZmZlcl91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sCiAJCQkJCQkg ICZ3YWxfdXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdKTsKIAogCS8qIFJlcG9ydCBhbnkgcmVt YWluaW5nIGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5IHRpbWUgKi8KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFp bi5jCmluZGV4IGMwYjE3NGNmYmMwLi5mMDFmMWM4NjRjNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFp bi5jCkBAIC03Niw2ICs3Niw3IEBAIEV4ZWN1dG9yQ2hlY2tQZXJtc19ob29rX3R5cGUgRXhlY3V0 b3JDaGVja1Blcm1zX2hvb2sgPSBOVUxMOwogLyogZGVjbHMgZm9yIGxvY2FsIHJvdXRpbmVzIG9u bHkgdXNlZCB3aXRoaW4gdGhpcyBtb2R1bGUgKi8KIHN0YXRpYyB2b2lkIEluaXRQbGFuKFF1ZXJ5 RGVzYyAqcXVlcnlEZXNjLCBpbnQgZWZsYWdzKTsKIHN0YXRpYyB2b2lkIENoZWNrVmFsaWRSb3dN YXJrUmVsKFJlbGF0aW9uIHJlbCwgUm93TWFya1R5cGUgbWFya1R5cGUpOworc3RhdGljIHZvaWQg RXhlY0ZpbmFsaXplVHJpZ2dlckluc3RydW1lbnRhdGlvbihFU3RhdGUgKmVzdGF0ZSk7CiBzdGF0 aWMgdm9pZCBFeGVjUG9zdHByb2Nlc3NQbGFuKEVTdGF0ZSAqZXN0YXRlKTsKIHN0YXRpYyB2b2lk IEV4ZWNFbmRQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSk7CiBzdGF0 aWMgdm9pZCBFeGVjdXRlUGxhbihRdWVyeURlc2MgKnF1ZXJ5RGVzYywKQEAgLTMyOSwxMCArMzMw LDI3IEBAIHN0YW5kYXJkX0V4ZWN1dG9yUnVuKFF1ZXJ5RGVzYyAqcXVlcnlEZXNjLAogCSAqLwog CW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oZXN0YXRlLT5lc19xdWVyeV9jeHQp OwogCi0JLyogQWxsb3cgaW5zdHJ1bWVudGF0aW9uIG9mIEV4ZWN1dG9yIG92ZXJhbGwgcnVudGlt ZSAqLworCS8qCisJICogU3RhcnQgdXAgcmVxdWlyZWQgdG9wLWxldmVsIGluc3RydW1lbnRhdGlv biBzdGFjayBmb3IgV0FML2J1ZmZlcgorCSAqIHRyYWNraW5nCisJICovCisJaWYgKCFxdWVyeURl c2MtPnRvdGFsdGltZSAmJiAoZXN0YXRlLT5lc19pbnN0cnVtZW50ICYgKElOU1RSVU1FTlRfQlVG RkVSUyB8IElOU1RSVU1FTlRfV0FMKSkpCisJCXF1ZXJ5RGVzYy0+dG90YWx0aW1lID0gSW5zdHJB bGxvYyhlc3RhdGUtPmVzX2luc3RydW1lbnQpOworCiAJaWYgKHF1ZXJ5RGVzYy0+dG90YWx0aW1l KQorCXsKKwkJLyogQWxsb3cgaW5zdHJ1bWVudGF0aW9uIG9mIEV4ZWN1dG9yIG92ZXJhbGwgcnVu dGltZSAqLwogCQlJbnN0clN0YXJ0KHF1ZXJ5RGVzYy0+dG90YWx0aW1lKTsKIAorCQkvKgorCQkg KiBSZW1lbWJlciBhbGwgbm9kZSBzdGFja3MgZm9yIGFib3J0IHJlY292ZXJ5LiBXZSBkbyB0aGlz IG9uY2UgaGVyZQorCQkgKiBhZnRlciB0aGUgZmlyc3QgY2FsbCB0byBJbnN0clN0YXJ0IGhhcyBh bGxvY2F0ZWQgdGhlIHBhcmVudCBzdGFjay4KKwkJICovCisJCWlmIChxdWVyeURlc2MtPnRvdGFs dGltZS0+c3RhY2sgJiYgIXF1ZXJ5RGVzYy0+YWxyZWFkeV9leGVjdXRlZCkKKwkJCUV4ZWNSZW1l bWJlck5vZGVJbnN0cnVtZW50YXRpb24ocXVlcnlEZXNjLT5wbGFuc3RhdGUsCisJCQkJCQkJCQkJ CXF1ZXJ5RGVzYy0+dG90YWx0aW1lLT5zdGFjayk7CisJfQorCiAJLyoKIAkgKiBleHRyYWN0IGlu Zm9ybWF0aW9uIGZyb20gdGhlIHF1ZXJ5IGRlc2NyaXB0b3IgYW5kIHRoZSBxdWVyeSBmZWF0dXJl LgogCSAqLwpAQCAtMzgzLDcgKzQwMSw3IEBAIHN0YW5kYXJkX0V4ZWN1dG9yUnVuKFF1ZXJ5RGVz YyAqcXVlcnlEZXNjLAogCQlkZXN0LT5yU2h1dGRvd24oZGVzdCk7CiAKIAlpZiAocXVlcnlEZXNj LT50b3RhbHRpbWUpCi0JCUluc3RyU3RvcChxdWVyeURlc2MtPnRvdGFsdGltZSk7CisJCUluc3Ry U3RvcChxdWVyeURlc2MtPnRvdGFsdGltZSwgZmFsc2UpOwogCiAJTWVtb3J5Q29udGV4dFN3aXRj aFRvKG9sZGNvbnRleHQpOwogfQpAQCAtNDQyLDggKzQ2MCwyNiBAQCBzdGFuZGFyZF9FeGVjdXRv ckZpbmlzaChRdWVyeURlc2MgKnF1ZXJ5RGVzYykKIAlpZiAoIShlc3RhdGUtPmVzX3RvcF9lZmxh Z3MgJiBFWEVDX0ZMQUdfU0tJUF9UUklHR0VSUykpCiAJCUFmdGVyVHJpZ2dlckVuZFF1ZXJ5KGVz dGF0ZSk7CiAKKwkvKgorCSAqIEFjY3VtdWxhdGUgcGVyLW5vZGUgYW5kIHRyaWdnZXIgc3RhdGlz dGljcyB0byB0aGVpciByZXNwZWN0aXZlIHBhcmVudAorCSAqIGluc3RydW1lbnRhdGlvbiBzdGFj a3MuCisJICoKKwkgKiBXZSBza2lwIHRoaXMgaW4gcGFyYWxsZWwgd29ya2VycyBiZWNhdXNlIHRo ZWlyIHBlci1ub2RlIHN0YXRzIGFyZQorCSAqIHJlcG9ydGVkIGluZGl2aWR1YWxseSB2aWEgRXhl Y1BhcmFsbGVsUmVwb3J0SW5zdHJ1bWVudGF0aW9uLCBhbmQgdGhlCisJICogbGVhZGVyJ3Mgb3du IEV4ZWNGaW5hbGl6ZU5vZGVJbnN0cnVtZW50YXRpb24gaGFuZGxlcyBwcm9wYWdhdGlvbi4gIElm CisJICogd2UgYWNjdW11bGF0ZWQgaGVyZSwgdGhlIGxlYWRlciB3b3VsZCBkb3VibGUtY291bnQ6 IHdvcmtlciBwYXJlbnQgbm9kZXMKKwkgKiB3b3VsZCBhbHJlYWR5IGluY2x1ZGUgdGhlaXIgY2hp bGRyZW4ncyBzdGF0cywgYW5kIHRoZW4gdGhlIGxlYWRlcidzCisJICogYWNjdW11bGF0aW9uIHdv dWxkIGFkZCB0aGUgY2hpbGRyZW4gYWdhaW4uCisJICovCisJaWYgKHF1ZXJ5RGVzYy0+dG90YWx0 aW1lICYmIGVzdGF0ZS0+ZXNfaW5zdHJ1bWVudCAmJiAhSXNQYXJhbGxlbFdvcmtlcigpKQorCXsK KwkJRXhlY0ZpbmFsaXplTm9kZUluc3RydW1lbnRhdGlvbihxdWVyeURlc2MtPnBsYW5zdGF0ZSk7 CisKKwkJRXhlY0ZpbmFsaXplVHJpZ2dlckluc3RydW1lbnRhdGlvbihlc3RhdGUpOworCX0KKwog CWlmIChxdWVyeURlc2MtPnRvdGFsdGltZSkKLQkJSW5zdHJTdG9wKHF1ZXJ5RGVzYy0+dG90YWx0 aW1lKTsKKwkJSW5zdHJTdG9wKHF1ZXJ5RGVzYy0+dG90YWx0aW1lLCB0cnVlKTsKIAogCU1lbW9y eUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKIApAQCAtMTQ4NCw2ICsxNTIwLDI0IEBAIEV4 ZWNHZXRBbmNlc3RvclJlc3VsdFJlbHMoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJl c3VsdFJlbEluZm8pCiAJcmV0dXJuIHJlc3VsdFJlbEluZm8tPnJpX2FuY2VzdG9yUmVzdWx0UmVs czsKIH0KIAorc3RhdGljIHZvaWQKK0V4ZWNGaW5hbGl6ZVRyaWdnZXJJbnN0cnVtZW50YXRpb24o RVN0YXRlICplc3RhdGUpCit7CisJTGlzdAkgICAqcmVscyA9IE5JTDsKKworCXJlbHMgPSBsaXN0 X2NvbmNhdChyZWxzLCBlc3RhdGUtPmVzX3R1cGxlX3JvdXRpbmdfcmVzdWx0X3JlbGF0aW9ucyk7 CisJcmVscyA9IGxpc3RfY29uY2F0KHJlbHMsIGVzdGF0ZS0+ZXNfb3BlbmVkX3Jlc3VsdF9yZWxh dGlvbnMpOworCXJlbHMgPSBsaXN0X2NvbmNhdChyZWxzLCBlc3RhdGUtPmVzX3RyaWdfdGFyZ2V0 X3JlbGF0aW9ucyk7CisKKwlmb3JlYWNoX25vZGUoUmVzdWx0UmVsSW5mbywgckluZm8sIHJlbHMp CisJeworCQlUcmlnZ2VySW5zdHJ1bWVudGF0aW9uICp0aSA9IHJJbmZvLT5yaV9UcmlnSW5zdHJ1 bWVudDsKKworCQlpZiAodGkgJiYgdGktPmluc3RyLnN0YWNrKQorCQkJSW5zdHJTdGFja0FkZChD dXJyZW50SW5zdHJTdGFjaywgdGktPmluc3RyLnN0YWNrKTsKKwl9Cit9CisKIC8qIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICAqCQlFeGVjUG9zdHByb2Nlc3NQbGFuCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY1BhcmFsbGVsLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwu YwppbmRleCBmYjlhNGFmYmJmMS4uZGVlOGJmOTljOTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQ YXJhbGxlbC5jCkBAIC0xNDU1LDYgKzE0NTUsNyBAQCB2b2lkCiBQYXJhbGxlbFF1ZXJ5TWFpbihk c21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiB7CiAJRml4ZWRQYXJhbGxlbEV4ZWN1dG9y U3RhdGUgKmZwZXM7CisJSW5zdHJ1bWVudGF0aW9uICppbnN0cjsKIAlCdWZmZXJVc2FnZSAqYnVm ZmVyX3VzYWdlOwogCVdhbFVzYWdlICAgKndhbF91c2FnZTsKIAlEZXN0UmVjZWl2ZXIgKnJlY2Vp dmVyOwpAQCAtMTUxNSw3ICsxNTE2LDcgQEAgUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQg KnNlZywgc2htX3RvYyAqdG9jKQogCSAqIGxlYWRlciwgd2hpY2ggYWxzbyBkb2Vzbid0IGNvdW50 IGJ1ZmZlciBhY2Nlc3NlcyBhbmQgV0FMIGFjdGl2aXR5IHRoYXQKIAkgKiBvY2N1ciBkdXJpbmcg ZXhlY3V0b3Igc3RhcnR1cC4KIAkgKi8KLQlJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSgpOworCWlu c3RyID0gSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoKTsKIAogCS8qCiAJICogUnVuIHRoZSBwbGFu LiAgSWYgd2Ugc3BlY2lmaWVkIGEgdHVwbGUgYm91bmQsIGJlIGNhcmVmdWwgbm90IHRvIGRlbWFu ZApAQCAtMTUzMSw3ICsxNTMyLDggQEAgUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNl Zywgc2htX3RvYyAqdG9jKQogCS8qIFJlcG9ydCBidWZmZXIvV0FMIHVzYWdlIGR1cmluZyBwYXJh bGxlbCBleGVjdXRpb24uICovCiAJYnVmZmVyX3VzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQ QVJBTExFTF9LRVlfQlVGRkVSX1VTQUdFLCBmYWxzZSk7CiAJd2FsX3VzYWdlID0gc2htX3RvY19s b29rdXAodG9jLCBQQVJBTExFTF9LRVlfV0FMX1VTQUdFLCBmYWxzZSk7Ci0JSW5zdHJFbmRQYXJh bGxlbFF1ZXJ5KCZidWZmZXJfdXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLAorCUluc3RyRW5k UGFyYWxsZWxRdWVyeShpbnN0ciwKKwkJCQkJCSAgJmJ1ZmZlcl91c2FnZVtQYXJhbGxlbFdvcmtl ck51bWJlcl0sCiAJCQkJCQkgICZ3YWxfdXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdKTsKIAog CS8qIFJlcG9ydCBpbnN0cnVtZW50YXRpb24gZGF0YSBpZiBhbnkgaW5zdHJ1bWVudGF0aW9uIG9w dGlvbnMgYXJlIHNldC4gKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQ cm9jbm9kZS5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1Byb2Nub2RlLmMKaW5kZXggMTg0 NjY2MWI1MDMuLmUyZTIxYzY2ZGM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjUHJvY25vZGUuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUHJvY25vZGUuYwpA QCAtMTIyLDYgKzEyMiw4IEBACiBzdGF0aWMgVHVwbGVUYWJsZVNsb3QgKkV4ZWNQcm9jTm9kZUZp cnN0KFBsYW5TdGF0ZSAqbm9kZSk7CiBzdGF0aWMgVHVwbGVUYWJsZVNsb3QgKkV4ZWNQcm9jTm9k ZUluc3RyKFBsYW5TdGF0ZSAqbm9kZSk7CiBzdGF0aWMgYm9vbCBFeGVjU2h1dGRvd25Ob2RlX3dh bGtlcihQbGFuU3RhdGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpOworc3RhdGljIGJvb2wgRXhlY1Jl bWVtYmVyTm9kZUluc3RydW1lbnRhdGlvbl93YWxrZXIoUGxhblN0YXRlICpub2RlLCB2b2lkICpj b250ZXh0KTsKK3N0YXRpYyBib29sIEV4ZWNGaW5hbGl6ZU5vZGVJbnN0cnVtZW50YXRpb25fd2Fs a2VyKFBsYW5TdGF0ZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7CiAKIAogLyogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCkBAIC04MjgsNiArODMwLDgzIEBAIEV4ZWNTaHV0ZG93bk5vZGVfd2Fsa2VyKFBsYW5TdGF0 ZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKIAlyZXR1cm4gZmFsc2U7CiB9CiAKKy8qCisgKiBFeGVj UmVtZW1iZXJOb2RlSW5zdHJ1bWVudGF0aW9uCisgKgorICogUmVnaXN0ZXIgYWxsIHBlci1ub2Rl IGluc3RydW1lbnRhdGlvbiBzdGFja3MgYXMgdW5maW5hbGl6ZWQgY2hpbGRyZW4gb2YgdGhlCisg KiBleGVjdXRvcidzIGluc3RydW1lbnRhdGlvbiBzdGFjay4gVGhpcyBpcyBuZWVkZWQgZm9yIGFi b3J0IHJlY292ZXJ5OiBpZiB0aGUKKyAqIGV4ZWN1dG9yIGFib3J0cywgd2UgbmVlZCB0byB3YWxr IGVhY2ggcGVyLW5vZGUgaW5zdHJ1bWVudGF0aW9uIHN0YWNrIHRvCisgKiByZWNvdmVyIGJ1ZmZl ci9XQUwgZGF0YSBmcm9tIG5vZGVzIHRoYXQgbmV2ZXIgZ290IGZpbmFsaXplZCwgdGhhdCBzb21l b25lCisgKiBtaWdodCBiZSBpbnRlcmVzdGVkIGluIGFzIGFuIGFnZ3JlZ2F0ZS4KKyAqLwordm9p ZAorRXhlY1JlbWVtYmVyTm9kZUluc3RydW1lbnRhdGlvbihQbGFuU3RhdGUgKm5vZGUsIEluc3Ry U3RhY2sgKnBhcmVudCkKK3sKKwkodm9pZCkgRXhlY1JlbWVtYmVyTm9kZUluc3RydW1lbnRhdGlv bl93YWxrZXIobm9kZSwgcGFyZW50KTsKK30KKworc3RhdGljIGJvb2wKK0V4ZWNSZW1lbWJlck5v ZGVJbnN0cnVtZW50YXRpb25fd2Fsa2VyKFBsYW5TdGF0ZSAqbm9kZSwgdm9pZCAqY29udGV4dCkK K3sKKwlJbnN0clN0YWNrICpwYXJlbnQgPSAoSW5zdHJTdGFjayAqKSBjb250ZXh0OworCisJQXNz ZXJ0KHBhcmVudCAhPSBOVUxMKTsKKworCWlmIChub2RlID09IE5VTEwpCisJCXJldHVybiBmYWxz ZTsKKworCWlmIChub2RlLT5pbnN0cnVtZW50ICYmIChub2RlLT5pbnN0cnVtZW50LT5uZWVkX2J1 ZnVzYWdlIHx8CisJCQkJCQkJIG5vZGUtPmluc3RydW1lbnQtPm5lZWRfd2FsdXNhZ2UpKQorCXsK KwkJSW5zdHJSZW1lbWJlck5vZGVTdGFjayhwYXJlbnQsICZub2RlLT5pbnN0cnVtZW50LT5zdGFj ayk7CisJfQorCisJcmV0dXJuIHBsYW5zdGF0ZV90cmVlX3dhbGtlcihub2RlLCBFeGVjUmVtZW1i ZXJOb2RlSW5zdHJ1bWVudGF0aW9uX3dhbGtlciwgY29udGV4dCk7Cit9CisKKy8qCisgKiBFeGVj RmluYWxpemVOb2RlSW5zdHJ1bWVudGF0aW9uCisgKgorICogQWNjdW11bGF0ZSBpbnN0cnVtZW50 YXRpb24gc3RhdHMgZnJvbSBhbGwgZXhlY3V0aW9uIG5vZGVzIHRvIHRoZWlyIHJlc3BlY3RpdmUK KyAqIHBhcmVudHMgKG9yIHRoZSBvcmlnaW5hbCBwYXJlbnQgaW5zdHJ1bWVudGF0aW9uIHN0YWNr KS4KKyAqCisgKiBUaGlzIG11c3QgcnVuIGFmdGVyIHRoZSBjbGVhbnVwIGRvbmUgYnkgRXhlY1No dXRkb3duTm9kZSwgYW5kIG5vdCByZWx5IG9uIGFueQorICogcmVzb3VyY2VzIGNsZWFuZWQgdXAg YnkgaXQuIFdlIGFsc28gZXhwZWN0IHNodXRkb3duIGFjdGlvbnMgdG8gaGF2ZSBvY2N1cnJlZCwK KyAqIGUuZy4gcGFyYWxsZWwgd29ya2VyIGluc3RydW1lbnRhdGlvbiB0byBoYXZlIGJlZW4gYWRk ZWQgdG8gdGhlIGxlYWRlci4KKyAqLwordm9pZAorRXhlY0ZpbmFsaXplTm9kZUluc3RydW1lbnRh dGlvbihQbGFuU3RhdGUgKm5vZGUpCit7CisJKHZvaWQpIEV4ZWNGaW5hbGl6ZU5vZGVJbnN0cnVt ZW50YXRpb25fd2Fsa2VyKG5vZGUsIChJbnN0clN0YWNrICopIEN1cnJlbnRJbnN0clN0YWNrKTsK K30KKworc3RhdGljIGJvb2wKK0V4ZWNGaW5hbGl6ZU5vZGVJbnN0cnVtZW50YXRpb25fd2Fsa2Vy KFBsYW5TdGF0ZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKK3sKKwlJbnN0clN0YWNrICpwYXJlbnQg PSAoSW5zdHJTdGFjayAqKSBjb250ZXh0OworCisJQXNzZXJ0KHBhcmVudCAhPSBOVUxMKTsKKwor CWlmIChub2RlID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKworCS8qCisJICogUmVjdXJzZSBp bnRvIGNoaWxkcmVuIGZpcnN0IChib3R0b20tdXAgYWNjdW11bGF0aW9uKSwgcGFzc2luZyBvdXIg c3RhY2sKKwkgKiBhcyB0aGUgcGFyZW50IGNvbnRleHQuICBUaGlzIGVuc3VyZXMgY2hpbGRyZW4g Y2FuIGFjY3VtdWxhdGUgdG8gdXMgZXZlbgorCSAqIGlmIHRoZXkgd2VyZSBuZXZlciBleGVjdXRl ZCBieSB0aGUgbGVhZGVyIChlLmcuIG5vZGVzIGJlbmVhdGggR2F0aGVyCisJICogdGhhdCBvbmx5 IHdvcmtlcnMgcmFuLCB3aGVyZSBzdGFjay5wcmV2aW91cyB3b3VsZCBub3QgYmUgaW5pdGlhbGl6 ZWQpLgorCSAqLworCXBsYW5zdGF0ZV90cmVlX3dhbGtlcihub2RlLCBFeGVjRmluYWxpemVOb2Rl SW5zdHJ1bWVudGF0aW9uX3dhbGtlciwKKwkJCQkJCSAgbm9kZS0+aW5zdHJ1bWVudCA/ICZub2Rl LT5pbnN0cnVtZW50LT5zdGFjayA6IHBhcmVudCk7CisKKwlpZiAoIW5vZGUtPmluc3RydW1lbnQp CisJCXJldHVybiBmYWxzZTsKKworCW5vZGUtPmluc3RydW1lbnQgPSBJbnN0ckZpbmFsaXplTm9k ZShub2RlLT5pbnN0cnVtZW50LCBwYXJlbnQpOworCisJcmV0dXJuIGZhbHNlOworfQorCiAvKgog ICogRXhlY1NldFR1cGxlQm91bmQKICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRv ci9pbnN0cnVtZW50LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKaW5kZXgg MzRkYWFkYzg4ZmMuLjEyMjNhNTk4NzlmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRv ci9pbnN0cnVtZW50LmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvaW5zdHJ1bWVudC5jCkBA IC0xNiwxNSArMTYsMTM5IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAKICNpbmNsdWRlICJleGVj dXRvci9pbnN0cnVtZW50LmgiCisjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKKyNpbmNsdWRl ICJ1dGlscy9yZXNvd25lci5oIgogCiBCdWZmZXJVc2FnZSBwZ0J1ZmZlclVzYWdlOwotc3RhdGlj IEJ1ZmZlclVzYWdlIHNhdmVfcGdCdWZmZXJVc2FnZTsKIFdhbFVzYWdlCXBnV2FsVXNhZ2U7Ci1z dGF0aWMgV2FsVXNhZ2Ugc2F2ZV9wZ1dhbFVzYWdlOworSW5zdHJTdGFjawlUb3BJbnN0clN0YWNr OworSW5zdHJTdGFjayAqQ3VycmVudEluc3RyU3RhY2sgPSAmVG9wSW5zdHJTdGFjazsKIAogc3Rh dGljIHZvaWQgQnVmZmVyVXNhZ2VBZGQoQnVmZmVyVXNhZ2UgKmRzdCwgY29uc3QgQnVmZmVyVXNh Z2UgKmFkZCk7CiBzdGF0aWMgdm9pZCBXYWxVc2FnZUFkZChXYWxVc2FnZSAqZHN0LCBXYWxVc2Fn ZSAqYWRkKTsKIAorc3RhdGljIHZvaWQgSW5zdHJGaW5hbGl6ZU5vZGVzT25BYm9ydChJbnN0clN0 YWNrICpzdGFjayk7CisKKy8qCisgKiBVc2UgUmVzb3VyY2VPd25lciBtZWNoYW5pc20gdG8gY29y cmVjdGx5IHJlc2V0IEN1cnJlbnRJbnN0clN0YWNrIG9uIGFib3J0LgorICovCitzdGF0aWMgdm9p ZCBSZXNPd25lclJlbGVhc2VJbnN0cnVtZW50YXRpb24oRGF0dW0gcmVzKTsKK3N0YXRpYyBjb25z dCBSZXNvdXJjZU93bmVyRGVzYyBpbnN0cnVtZW50YXRpb25fcmVzb3duZXJfZGVzYyA9Cit7CisJ Lm5hbWUgPSAiaW5zdHJ1bWVudGF0aW9uIiwKKwkucmVsZWFzZV9waGFzZSA9IFJFU09VUkNFX1JF TEVBU0VfQUZURVJfTE9DS1MsCisJLnJlbGVhc2VfcHJpb3JpdHkgPSBSRUxFQVNFX1BSSU9fSU5T VFJVTUVOVEFUSU9OLAorCS5SZWxlYXNlUmVzb3VyY2UgPSBSZXNPd25lclJlbGVhc2VJbnN0cnVt ZW50YXRpb24sCisJLkRlYnVnUHJpbnQgPSBOVUxMLAkJCS8qIGRlZmF1bHQgbWVzc2FnZSBpcyBm aW5lICovCit9OworCitzdGF0aWMgaW5saW5lIHZvaWQKK1Jlc291cmNlT3duZXJSZW1lbWJlcklu c3RyU3RhY2soUmVzb3VyY2VPd25lciBvd25lciwgSW5zdHJTdGFjayAqc3RhY2spCit7CisJUmVz b3VyY2VPd25lclJlbWVtYmVyKG93bmVyLCBQb2ludGVyR2V0RGF0dW0oc3RhY2spLCAmaW5zdHJ1 bWVudGF0aW9uX3Jlc293bmVyX2Rlc2MpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK1Jlc291 cmNlT3duZXJGb3JnZXRJbnN0clN0YWNrKFJlc291cmNlT3duZXIgb3duZXIsIEluc3RyU3RhY2sg KnN0YWNrKQoreworCVJlc291cmNlT3duZXJGb3JnZXQob3duZXIsIFBvaW50ZXJHZXREYXR1bShz dGFjayksICZpbnN0cnVtZW50YXRpb25fcmVzb3duZXJfZGVzYyk7Cit9CisKK3N0YXRpYyBib29s CitTdGFja0lzUGFyZW50KEluc3RyU3RhY2sgKnN0YWNrLCBJbnN0clN0YWNrICplbnRyeSkKK3sK KwlpZiAoZW50cnktPnByZXZpb3VzID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKworCWlmIChl bnRyeS0+cHJldmlvdXMgPT0gc3RhY2spCisJCXJldHVybiB0cnVlOworCisJcmV0dXJuIFN0YWNr SXNQYXJlbnQoc3RhY2ssIGVudHJ5LT5wcmV2aW91cyk7Cit9CisKKy8qCisgKiBPcnBoYW5Ta2lw cGVkU3RhY2tzCisgKgorICogT3JwaGFucyBhbGwgc3RhY2sgZW50cmllcyBmcm9tIHRoZSBjdXJy ZW50IHN0YWNrIGVudHJ5IHRvIHRoZSBwcm92aWRlZAorICogc3RhY2sgd2hpY2ggaXMgYXNzdW1l ZCB0byBiZSBhIHBhcmVudCBzdGFjayBvZiB0aGUgY3VycmVudCBzdGFjaywgYW5kCisgKiB0ZXJt aW5hdGVzIG9uY2UgdGhlIGN1cnJlbnQgc3RhY2sgZW50cnkgaGFzIHJlYWNoZWQgdGhlIHByb3Zp ZGVkIHN0YWNrLgorICoKKyAqIFRoaXMgc2V0cyBwcmV2aW91cyBwb2ludGVycyBvZiBpbnRlcm1l ZGlhdGUgc3RhY2sgZW50cmllcyB0byBOVUxMLCBzbyB3ZQorICogZG9uJ3QgaGF2ZSB0byB3b3Jy eSBhYm91dCBjYWxsaW5nIFN0YWNrSXNQYXJlbnQgd2l0aCBhIGJhZCBwb2ludGVyIGluCisgKiBS ZXNPd25lclJlbGVhc2VJbnN0cnVtZW50YXRpb24uCisgKgorICogVGhpcyBtYXR0ZXJzIGJlY2F1 c2Ugd2UgbWF5IHByb2Nlc3Mgc3RhY2sgZW50cmllcyBvdXQgb2Ygb3JkZXIgaW4gYWJvcnRzCisg KiBiZWNhdXNlICgxKSB3ZSBtaWdodCBoYXZlIGEgbWl4IG9mIFJlc093bmVyIGFuZCBQR19GSU5B TExZIG93bmVkIHN0YWNrcworICogKDIpIFJlc093bmVyUmVsZWFzZUluc3RydW1lbnRhdGlvbiBt aWdodCBiZSBjYWxsZWQgb3V0IG9mIG9yZGVyLgorICovCitzdGF0aWMgdm9pZAorT3JwaGFuU2tp cHBlZFN0YWNrcyhJbnN0clN0YWNrICpzdGFjaykKK3sKKwlpZiAoQ3VycmVudEluc3RyU3RhY2sg PT0gc3RhY2sgfHwgIVN0YWNrSXNQYXJlbnQoc3RhY2ssIEN1cnJlbnRJbnN0clN0YWNrKSkKKwkJ cmV0dXJuOworCisJd2hpbGUgKEN1cnJlbnRJbnN0clN0YWNrICE9IHN0YWNrKQorCXsKKwkJSW5z dHJTdGFjayAqcHJldmlvdXMgPSBDdXJyZW50SW5zdHJTdGFjay0+cHJldmlvdXM7CisKKwkJQXNz ZXJ0KHByZXZpb3VzICE9IE5VTEwpOworCQlDdXJyZW50SW5zdHJTdGFjay0+cHJldmlvdXMgPSBO VUxMOworCQlDdXJyZW50SW5zdHJTdGFjayA9IHByZXZpb3VzOworCX0KK30KKworc3RhdGljIHZv aWQKK1Jlc093bmVyUmVsZWFzZUluc3RydW1lbnRhdGlvbihEYXR1bSByZXMpCit7CisJSW5zdHJT dGFjayAqc3RhY2sgPSAoSW5zdHJTdGFjayAqKSBEYXR1bUdldFBvaW50ZXIocmVzKTsKKworCS8q CisJICogQmVjYXVzZSByZWdpc3RlcmVkIHJlc291cmNlcyBhcmUgKm5vdCogY2xlYW5lZCB1cCBp biBhIGd1YXJhbnRlZWQKKwkgKiBvcmRlciwgd2UgbWF5IGdldCBhIGNoaWxkIGNvbnRleHQgYWZ0 ZXIgd2UndmUgcHJvY2Vzc2VkIHRoZSBwYXJlbnQuCisJICogVGh1cywgd2Ugb25seSBwb3AgdGhl IHN0YWNrIGlmIGl0cyBub3QgYWxyZWFkeSBhIHBhcmVudCBvZiB0aGUgc3RhY2sKKwkgKiBiZWlu ZyByZWxlYXNlZC4gTm90ZSB0aGF0IE9ycGhhblNraXBwZWRTdGFja3MgbWF5IGhhdmUgc2V0IG91 ciBwcmV2aW91cworCSAqIHN0YWNrIGVudHJ5IHRvIE5VTEwsIGluIHdoaWNoIGNhc2Ugd2UgZG9u J3QgbW9kaWZ5IHRoZSBzdGFjayBlaXRoZXIuCisJICoKKwkgKiBOb3RlIHRoYXQgU3RhY2tJc1Bh cmVudCB3aWxsIHJlY3Vyc2UgYXMgbmVlZGVkLCBzbyBpdCBpcyBpbmFkdmlzaWJsZSB0bworCSAq IHVzZSBkZWVwbHkgbmVzdGVkIHN0YWNrcy4KKwkgKi8KKwlpZiAoc3RhY2stPnByZXZpb3VzICYm ICFTdGFja0lzUGFyZW50KEN1cnJlbnRJbnN0clN0YWNrLCBzdGFjaykpCisJeworCQlPcnBoYW5T a2lwcGVkU3RhY2tzKHN0YWNrKTsKKwkJSW5zdHJQb3BTdGFjayhzdGFjayk7CisJfQorCisJLyog QWNjdW11bGF0ZSBkYXRhIGZyb20gYWxsIHVuZmluYWxpemVkIGNoaWxkIG5vZGUgc3RhY2tzLiAq LworCUluc3RyRmluYWxpemVOb2Rlc09uQWJvcnQoc3RhY2spOworCisJLyoKKwkgKiBBY2N1bXVs YXRlIHRoZSBzdGFjayBhc3NvY2lhdGVkIHdpdGggdGhlIFJlc093bmVyIHRvIHRoZSBhY3RpdmUg c3RhY2suCisJICoKKwkgKiBOb3RlIHRoYXQgd2UgaW50ZW50aW9uYWxseSBkaXJlY3RseSBhZGQg dG8gdGhlIGN1cnJlbnQgc3RhY2sgaW5zdGVhZCBvZgorCSAqIHRoZSBwYXJlbnQgb2YgdGhlIHN0 YWNrIGJlaW5nIHJlbGVhc2VkLCBiZWNhdXNlIHRoaXMgY2FuIGV4ZWN1dGUgb3V0IG9mCisJICog b3JkZXIuIEV4cGxpY2l0IFBHX0ZJTkFMTFkgYmxvY2tzIG1pZ2h0IGhhdmUgbW9kaWZpZWQgdGhl IHN0YWNrIGFzCisJICogd2VsbC4KKwkgKi8KKwlJbnN0clN0YWNrQWRkKEN1cnJlbnRJbnN0clN0 YWNrLCBzdGFjayk7CisKKwkvKiBGcmVlIHRoZSBzdGFjayBlbnRyeSBub3cgc2luY2UgSW5zdHJT dG9wIHdvbid0IGJlIGNhbGxlZCAqLworCXBmcmVlKHN0YWNrKTsKK30KKworLyoKKyAqIFBvcHMg dGhlIHN0YWNrIGVudHJ5IGFuZCBhY2N1bXVsYXRlcyB0byBpdHMgcGFyZW50LgorICoKKyAqIE5v dGUgdGhhdCB0aGlzIGludGVudGlvbmFsbHkgYWxsb3dzIHBhc3NpbmcgYSBzdGFjayB0aGF0IGlz IG5vdAorICogQ3VycmVudEluc3RyU3RhY2ssIGFzIGNhbiBoYXBwZW4gd2l0aCBQR19GSU5BTExZ LCBhbmQgb3JwaGFucyBhbnkKKyAqIGludGVybWVkaWF0ZSBzdGFja3MgdGhhdCB3ZXJlIHNraXBw ZWQuCisgKi8KK3ZvaWQKK0luc3RyUG9wQW5kRmluYWxpemVTdGFjayhJbnN0clN0YWNrICpzdGFj aykKK3sKKwlPcnBoYW5Ta2lwcGVkU3RhY2tzKHN0YWNrKTsKKwlJbnN0clBvcFN0YWNrKHN0YWNr KTsKKwlJbnN0clN0YWNrQWRkKEN1cnJlbnRJbnN0clN0YWNrLCBzdGFjayk7Cit9CiAKIC8qIEdl bmVyYWwgcHVycG9zZSBpbnN0cnVtZW50YXRpb24gaGFuZGxpbmcgKi8KIEluc3RydW1lbnRhdGlv biAqCkBAIC01MSwxNSArMTc1LDMxIEBAIEluc3RyU3RhcnQoSW5zdHJ1bWVudGF0aW9uICppbnN0 cikKIAkJIUlOU1RSX1RJTUVfU0VUX0NVUlJFTlRfTEFaWShpbnN0ci0+c3RhcnR0aW1lKSkKIAkJ ZWxvZyhFUlJPUiwgIkluc3RyU3RhcnQgY2FsbGVkIHR3aWNlIGluIGEgcm93Iik7CiAKLQlpZiAo aW5zdHItPm5lZWRfYnVmdXNhZ2UpCi0JCWluc3RyLT5idWZ1c2FnZV9zdGFydCA9IHBnQnVmZmVy VXNhZ2U7CisJaWYgKGluc3RyLT5uZWVkX2J1ZnVzYWdlIHx8IGluc3RyLT5uZWVkX3dhbHVzYWdl KQorCXsKKwkJQXNzZXJ0KEN1cnJlbnRSZXNvdXJjZU93bmVyICE9IE5VTEwpOworCQlpbnN0ci0+ b3duZXIgPSBDdXJyZW50UmVzb3VyY2VPd25lcjsKKworCQkvKgorCQkgKiBBbGxvY2F0ZSB0aGUg c3RhY2sgcmVzb3VyY2UgaW4gYSBtZW1vcnkgY29udGV4dCB0aGF0IHN1cnZpdmVzCisJCSAqIGR1 cmluZyBhbiBhYm9ydC4gVGhpcyB3aWxsIGJlIGZyZWVkIGJ5IEluc3RyU3RvcCAocmVndWxhcgor CQkgKiBleGVjdXRpb24pIG9yIFJlc093bmVyUmVsZWFzZUluc3RydW1lbnRhdGlvbiAoYWJvcnQp LgorCQkgKgorCQkgKiBXZSBkb24ndCBkbyB0aGlzIGluIEluc3RyQWxsb2MgdG8gYXZvaWQgYWxs b2NhdGluZyB3aGVuIEluc3RyU3RhcnQKKwkJICogKyBJbnN0clN0b3AgaXNuJ3QgY2FsbGVkLgor CQkgKi8KKwkJaWYgKGluc3RyLT5zdGFjayA9PSBOVUxMKQorCQkJaW5zdHItPnN0YWNrID0gTWVt b3J5Q29udGV4dEFsbG9jWmVybyhUb3BNZW1vcnlDb250ZXh0LCBzaXplb2YoSW5zdHJTdGFjaykp OworCisJCVJlc291cmNlT3duZXJFbmxhcmdlKGluc3RyLT5vd25lcik7CisJCVJlc291cmNlT3du ZXJSZW1lbWJlckluc3RyU3RhY2soaW5zdHItPm93bmVyLCBpbnN0ci0+c3RhY2spOwogCi0JaWYg KGluc3RyLT5uZWVkX3dhbHVzYWdlKQotCQlpbnN0ci0+d2FsdXNhZ2Vfc3RhcnQgPSBwZ1dhbFVz YWdlOworCQlJbnN0clB1c2hTdGFjayhpbnN0ci0+c3RhY2spOworCX0KIH0KIAogdm9pZAotSW5z dHJTdG9wKEluc3RydW1lbnRhdGlvbiAqaW5zdHIpCitJbnN0clN0b3AoSW5zdHJ1bWVudGF0aW9u ICppbnN0ciwgYm9vbCBmaW5hbGl6ZSkKIHsKIAlpbnN0cl90aW1lCWVuZHRpbWU7CiAKQEAgLTc1 LDE0ICsyMTUsMzEgQEAgSW5zdHJTdG9wKEluc3RydW1lbnRhdGlvbiAqaW5zdHIpCiAJCUlOU1RS X1RJTUVfU0VUX1pFUk8oaW5zdHItPnN0YXJ0dGltZSk7CiAJfQogCi0JLyogQWRkIGRlbHRhIG9m IGJ1ZmZlciB1c2FnZSBzaW5jZSBlbnRyeSB0byBub2RlJ3MgdG90YWxzICovCi0JaWYgKGluc3Ry LT5uZWVkX2J1ZnVzYWdlKQotCQlCdWZmZXJVc2FnZUFjY3VtRGlmZigmaW5zdHItPmJ1ZnVzYWdl LAotCQkJCQkJCSAmcGdCdWZmZXJVc2FnZSwgJmluc3RyLT5idWZ1c2FnZV9zdGFydCk7Ci0KLQlp ZiAoaW5zdHItPm5lZWRfd2FsdXNhZ2UpCi0JCVdhbFVzYWdlQWNjdW1EaWZmKCZpbnN0ci0+d2Fs dXNhZ2UsCi0JCQkJCQkgICZwZ1dhbFVzYWdlLCAmaW5zdHItPndhbHVzYWdlX3N0YXJ0KTsKKwlp ZiAoaW5zdHItPm5lZWRfYnVmdXNhZ2UgfHwgaW5zdHItPm5lZWRfd2FsdXNhZ2UpCisJeworCQlJ bnN0clBvcFN0YWNrKGluc3RyLT5zdGFjayk7CisKKwkJaWYgKGZpbmFsaXplKQorCQkJSW5zdHJT dGFja0FkZChDdXJyZW50SW5zdHJTdGFjaywgaW5zdHItPnN0YWNrKTsKKworCQlBc3NlcnQoaW5z dHItPm93bmVyICE9IE5VTEwpOworCQlSZXNvdXJjZU93bmVyRm9yZ2V0SW5zdHJTdGFjayhpbnN0 ci0+b3duZXIsIGluc3RyLT5zdGFjayk7CisJCWluc3RyLT5vd25lciA9IE5VTEw7CisKKwkJaWYg KGZpbmFsaXplKQorCQl7CisJCQkvKgorCQkJICogVG8gYXZvaWQga2VlcGluZyBtZW1vcnkgYWxs b2NhdGVkIGJleW9uZCB3aGVuIGl0cyBuZWVkZWQsIGNvcHkKKwkJCSAqIHRoZSByZXN1bHQgdG8g dGhlIGN1cnJlbnQgbWVtb3J5IGNvbnRleHQsIGFuZCBmcmVlIGl0IGluIHRoZQorCQkJICogdHJh bnNhY3Rpb24gY29udGV4dC4KKwkJCSAqLworCQkJSW5zdHJTdGFjayAqc3RhY2sgPSBwYWxsb2Mo c2l6ZW9mKEluc3RyU3RhY2spKTsKKworCQkJbWVtY3B5KHN0YWNrLCBpbnN0ci0+c3RhY2ssIHNp emVvZihJbnN0clN0YWNrKSk7CisJCQlwZnJlZShpbnN0ci0+c3RhY2spOworCQkJaW5zdHItPnN0 YWNrID0gc3RhY2s7CisJCX0KKwl9CiB9CiAKIC8qIFRyaWdnZXIgaW5zdHJ1bWVudGF0aW9uIGhh bmRsaW5nICovCkBAIC05MCwxNiArMjQ3LDE2IEBAIFRyaWdnZXJJbnN0cnVtZW50YXRpb24gKgog SW5zdHJBbGxvY1RyaWdnZXIoaW50IG4sIGludCBpbnN0cnVtZW50X29wdGlvbnMpCiB7CiAJVHJp Z2dlckluc3RydW1lbnRhdGlvbiAqdGdpbnN0ciA9IHBhbGxvYzAobiAqIHNpemVvZihUcmlnZ2Vy SW5zdHJ1bWVudGF0aW9uKSk7CisJYm9vbAkJbmVlZF90aW1lciA9IChpbnN0cnVtZW50X29wdGlv bnMgJiBJTlNUUlVNRU5UX1RJTUVSKSAhPSAwOwogCWJvb2wJCW5lZWRfYnVmZmVycyA9IChpbnN0 cnVtZW50X29wdGlvbnMgJiBJTlNUUlVNRU5UX0JVRkZFUlMpICE9IDA7CiAJYm9vbAkJbmVlZF93 YWwgPSAoaW5zdHJ1bWVudF9vcHRpb25zICYgSU5TVFJVTUVOVF9XQUwpICE9IDA7Ci0JYm9vbAkJ bmVlZF90aW1lciA9IChpbnN0cnVtZW50X29wdGlvbnMgJiBJTlNUUlVNRU5UX1RJTUVSKSAhPSAw OwogCWludAkJCWk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQogCXsKKwkJdGdpbnN0cltp XS5pbnN0ci5uZWVkX3RpbWVyID0gbmVlZF90aW1lcjsKIAkJdGdpbnN0cltpXS5pbnN0ci5uZWVk X2J1ZnVzYWdlID0gbmVlZF9idWZmZXJzOwogCQl0Z2luc3RyW2ldLmluc3RyLm5lZWRfd2FsdXNh Z2UgPSBuZWVkX3dhbDsKLQkJdGdpbnN0cltpXS5pbnN0ci5uZWVkX3RpbWVyID0gbmVlZF90aW1l cjsKIAl9CiAKIAlyZXR1cm4gdGdpbnN0cjsKQEAgLTExNCw3ICsyNzEsMTIgQEAgSW5zdHJTdGFy dFRyaWdnZXIoVHJpZ2dlckluc3RydW1lbnRhdGlvbiAqdGdpbnN0cikKIHZvaWQKIEluc3RyU3Rv cFRyaWdnZXIoVHJpZ2dlckluc3RydW1lbnRhdGlvbiAqdGdpbnN0ciwgaW50IGZpcmluZ3MpCiB7 Ci0JSW5zdHJTdG9wKCZ0Z2luc3RyLT5pbnN0cik7CisJLyoKKwkgKiBUaGlzIHRyaWdnZXIgbWF5 IGJlIGNhbGxlZCBhZ2Fpbiwgc28gd2UgZG9uJ3QgZmluYWxpemUgaW5zdHJ1bWVudGF0aW9uCisJ ICogaGVyZS4gQWNjdW11bGF0aW9uIHRvIHRoZSBwYXJlbnQgaGFwcGVucyBhdCBFeGVjdXRvckZp bmlzaCB0aHJvdWdoCisJICogRXhlY0ZpbmFsaXplVHJpZ2dlckluc3RydW1lbnRhdGlvbi4KKwkg Ki8KKwlJbnN0clN0b3AoJnRnaW5zdHItPmluc3RyLCBmYWxzZSk7CiAJdGdpbnN0ci0+ZmlyaW5n cyArPSBmaXJpbmdzOwogfQogCkBAIC0xMjQsNyArMjg2LDEzIEBAIEluc3RyU3RvcFRyaWdnZXIo VHJpZ2dlckluc3RydW1lbnRhdGlvbiAqdGdpbnN0ciwgaW50IGZpcmluZ3MpCiBOb2RlSW5zdHJ1 bWVudGF0aW9uICoKIEluc3RyQWxsb2NOb2RlKGludCBpbnN0cnVtZW50X29wdGlvbnMsIGJvb2wg YXN5bmNfbW9kZSkKIHsKLQlOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0ciA9IHBhbGxvYyhzaXpl b2YoTm9kZUluc3RydW1lbnRhdGlvbikpOworCS8qCisJICogV2UgY2FuIHV0aWxpemUgVG9wVHJh bnNhY3Rpb25Db250ZXh0IGluc3RlYWQgb2YgVG9wTWVtb3J5Q29udGV4dCBoZXJlCisJICogKGRl c3BpdGUgdGhlIGlubGluZWQgSW5zdHJTdGFjayBpbiBOb2RlSW5zdHJ1bWVudGF0aW9uKSBiZWNh dXNlIG5vZGVzCisJICogZG9uJ3QgZ2V0IHVzZWQgZm9yIHV0aWxpdHkgY29tbWFuZHMgdGhhdCBy ZXN0YXJ0IHRyYW5zYWN0aW9ucywgd2hpY2gKKwkgKiB3b3VsZCByZXF1aXJlIGEgY29udGV4dCB0 aGF0IHN1cnZpdmVzIGxvbmdlciAoRVhQTEFJTiBBTkFMWVpFIGlzIGZpbmUpLgorCSAqLworCU5v ZGVJbnN0cnVtZW50YXRpb24gKmluc3RyID0gTWVtb3J5Q29udGV4dEFsbG9jKFRvcFRyYW5zYWN0 aW9uQ29udGV4dCwgc2l6ZW9mKE5vZGVJbnN0cnVtZW50YXRpb24pKTsKIAogCUluc3RySW5pdE5v ZGUoaW5zdHIsIGluc3RydW1lbnRfb3B0aW9ucyk7CiAJaW5zdHItPmFzeW5jX21vZGUgPSBhc3lu Y19tb2RlOwpAQCAtMTQyLDYgKzMxMCwzMCBAQCBJbnN0ckluaXROb2RlKE5vZGVJbnN0cnVtZW50 YXRpb24gKmluc3RyLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zKQogCWluc3RyLT5uZWVkX3RpbWVy ID0gKGluc3RydW1lbnRfb3B0aW9ucyAmIElOU1RSVU1FTlRfVElNRVIpICE9IDA7CiB9CiAKKy8q CisgKiBJbnN0clJlbWVtYmVyTm9kZVN0YWNrIC0gcmVnaXN0ZXIgYSBjaGlsZCBub2RlIHN0YWNr IGZvciBhYm9ydCBwcm9jZXNzaW5nLgorICoKKyAqIE9uIGFib3J0LCBJbnN0ckZpbmFsaXplTm9k ZXNPbkFib3J0IHdpbGwgd2FsayB0aGUgcGFyZW50J3MgbGlzdCB0byByZWNvdmVyCisgKiBidWZm ZXIvV0FMIGRhdGEgZnJvbSBzdGFja3MgdGhhdCB3ZXJlIG5ldmVyIGZpbmFsaXplZCwgaW4gb3Jk ZXIgZm9yCisgKiBhZ2dyZWdhdGUgdG90YWxzIHRvIGJlIGFjY3VyYXRlIGRlc3BpdGUgdGhlIHF1 ZXJ5IGVycm9yaW5nIG91dC4KKyAqCisgKiBUaGUgcGFzc2VkIGluIG5vZGUgc3RhY2sgY2FuIGVp dGhlciBiZSB0aGUgTm9kZUluc3RydW1lbnRhdGlvbiBzdGFjayBvciBhbgorICogYWRkaXRpb25h bCBzdGFjayB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCBhIG5vZGUuIFRoaXMgbXVzdCBub3QgYmUg Y2FsbGVkCisgKiB3aXRoIG90aGVyIChub24tbm9kZSkgaW5zdHJ1bWVudGF0aW9uIHN0YWNrcyBh cyB0aGUgY2hpbGQgdGhhdCBwZXJmb3JtIHRoZWlyCisgKiBvd24gY2xlYW51cC4gVGhlIHBhcmVu dCBtdXN0IGJlIGEgbm9uLW5vZGUgc3RhY2sgdGhhdCBjYW4gaGFuZGxlIGFib3J0cy4KKyAqLwor dm9pZAorSW5zdHJSZW1lbWJlck5vZGVTdGFjayhJbnN0clN0YWNrICpwYXJlbnQsIEluc3RyU3Rh Y2sgKm5vZGVfc3RhY2spCit7CisJLyoKKwkgKiBXZSBkbyBub3Qgc3VwcG9ydCBuZXN0aW5nLCB0 byBhdm9pZCByZWN1cnNpb24gaW4KKwkgKiBJbnN0ckZpbmFsaXplTm9kZXNPbkFib3J0CisJICov CisJQXNzZXJ0KHBhcmVudC0+dW5maW5hbGl6ZWRfbm9kZS5uZXh0ID09IE5VTEwpOworCisJc2xp c3RfcHVzaF9oZWFkKCZwYXJlbnQtPnVuZmluYWxpemVkX2NoaWxkcmVuLCAmbm9kZV9zdGFjay0+ dW5maW5hbGl6ZWRfbm9kZSk7Cit9CisKIC8qIEVudHJ5IHRvIGEgcGxhbiBub2RlICovCiB2b2lk CiBJbnN0clN0YXJ0Tm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0cikKQEAgLTE1MCwxMiAr MzQyLDEzIEBAIEluc3RyU3RhcnROb2RlKE5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RyKQogCQkh SU5TVFJfVElNRV9TRVRfQ1VSUkVOVF9MQVpZKGluc3RyLT5zdGFydHRpbWUpKQogCQllbG9nKEVS Uk9SLCAiSW5zdHJTdGFydE5vZGUgY2FsbGVkIHR3aWNlIGluIGEgcm93Iik7CiAKLQkvKiBzYXZl IGJ1ZmZlciB1c2FnZSB0b3RhbHMgYXQgbm9kZSBlbnRyeSwgaWYgbmVlZGVkICovCi0JaWYgKGlu c3RyLT5uZWVkX2J1ZnVzYWdlKQotCQlpbnN0ci0+YnVmdXNhZ2Vfc3RhcnQgPSBwZ0J1ZmZlclVz YWdlOworCWlmIChpbnN0ci0+bmVlZF9idWZ1c2FnZSB8fCBpbnN0ci0+bmVlZF93YWx1c2FnZSkK Kwl7CisJCS8qIEVuc3VyZSB0aGF0IHdlIGFsd2F5cyBoYXZlIGEgcGFyZW50LCBldmVuIGF0IHRo ZSB0b3AgbW9zdCBub2RlICovCisJCUFzc2VydChDdXJyZW50SW5zdHJTdGFjayAhPSAmVG9wSW5z dHJTdGFjayk7CiAKLQlpZiAoaW5zdHItPm5lZWRfd2FsdXNhZ2UpCi0JCWluc3RyLT53YWx1c2Fn ZV9zdGFydCA9IHBnV2FsVXNhZ2U7CisJCUluc3RyUHVzaFN0YWNrKCZpbnN0ci0+c3RhY2spOwor CX0KIH0KIAogLyogRXhpdCBmcm9tIGEgcGxhbiBub2RlICovCkBAIC0xODAsMTQgKzM3MywxNCBA QCBJbnN0clN0b3BOb2RlKE5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxl cykKIAkJSU5TVFJfVElNRV9TRVRfWkVSTyhpbnN0ci0+c3RhcnR0aW1lKTsKIAl9CiAKLQkvKiBB ZGQgZGVsdGEgb2YgYnVmZmVyIHVzYWdlIHNpbmNlIGVudHJ5IHRvIG5vZGUncyB0b3RhbHMgKi8K LQlpZiAoaW5zdHItPm5lZWRfYnVmdXNhZ2UpCi0JCUJ1ZmZlclVzYWdlQWNjdW1EaWZmKCZpbnN0 ci0+YnVmdXNhZ2UsCi0JCQkJCQkJICZwZ0J1ZmZlclVzYWdlLCAmaW5zdHItPmJ1ZnVzYWdlX3N0 YXJ0KTsKKwlpZiAoaW5zdHItPm5lZWRfYnVmdXNhZ2UgfHwgaW5zdHItPm5lZWRfd2FsdXNhZ2Up CisJeworCQkvKiBFbnN1cmUgdGhhdCB3ZSBhbHdheXMgaGF2ZSBhIHBhcmVudCwgZXZlbiBhdCB0 aGUgdG9wIG1vc3Qgbm9kZSAqLworCQlBc3NlcnQoaW5zdHItPnN0YWNrLnByZXZpb3VzICE9IE5V TEwpOwogCi0JaWYgKGluc3RyLT5uZWVkX3dhbHVzYWdlKQotCQlXYWxVc2FnZUFjY3VtRGlmZigm aW5zdHItPndhbHVzYWdlLAotCQkJCQkJICAmcGdXYWxVc2FnZSwgJmluc3RyLT53YWx1c2FnZV9z dGFydCk7CisJCS8qIEFkZGluZyB0byBwYXJlbnQgaXMgaGFuZGxlZCBieSBFeGVjRmluYWxpemVO b2RlSW5zdHJ1bWVudGF0aW9uICovCisJCUluc3RyUG9wU3RhY2soJmluc3RyLT5zdGFjayk7CisJ fQogCiAJLyogSXMgdGhpcyB0aGUgZmlyc3QgdHVwbGUgb2YgdGhpcyBjeWNsZT8gKi8KIAlpZiAo IWluc3RyLT5ydW5uaW5nKQpAQCAtMjA2LDYgKzM5OSw1MCBAQCBJbnN0clN0b3BOb2RlKE5vZGVJ bnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcykKIAl9CiB9CiAKKy8qIEFkZCBw ZXItbm9kZSBpbnN0cnVtZW50YXRpb24gdG8gdGhlIHBhcmVudCBhbmQgbW92ZSBpbnRvIHBlci1x dWVyeSBtZW1vcnkgY29udGV4dCAqLworTm9kZUluc3RydW1lbnRhdGlvbiAqCitJbnN0ckZpbmFs aXplTm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgSW5zdHJTdGFjayAqcGFyZW50KQor eworCU5vZGVJbnN0cnVtZW50YXRpb24gKmRzdCA9IHBhbGxvYyhzaXplb2YoTm9kZUluc3RydW1l bnRhdGlvbikpOworCisJbWVtY3B5KGRzdCwgaW5zdHIsIHNpemVvZihOb2RlSW5zdHJ1bWVudGF0 aW9uKSk7CisJcGZyZWUoaW5zdHIpOworCisJLyogQXZvaWQgc3RhbGUgcG9pbnRlciByZWZlcmVu Y2VzICovCisJZHN0LT5zdGFjay5wcmV2aW91cyA9IE5VTEw7CisKKwlJbnN0clN0YWNrQWRkKHBh cmVudCwgJmRzdC0+c3RhY2spOworCisJcmV0dXJuIGRzdDsKK30KKworLyoKKyAqIEluc3RyRmlu YWxpemVOb2Rlc09uQWJvcnQKKyAqCisgKiBBY2N1bXVsYXRlcyB1bmZpbmFsaXplZCBjaGlsZCBw ZXItbm9kZSBzdGFja3MgaW50byB0aGUgcmVzb3VyY2Ugb3duZXIgc3RhY2ssCisgKiBhbmQgcmVz ZXRzIHRoZSBsaXN0IHNvIGEgdGhlb3JldGljYWwgc2Vjb25kIGNhbGwgaXMgYSBzYWZlIG5vLW9w LgorICovCitzdGF0aWMgdm9pZAorSW5zdHJGaW5hbGl6ZU5vZGVzT25BYm9ydChJbnN0clN0YWNr ICpzdGFjaykKK3sKKwlzbGlzdF9pdGVyCWl0ZXI7CisKKwlzbGlzdF9mb3JlYWNoKGl0ZXIsICZz dGFjay0+dW5maW5hbGl6ZWRfY2hpbGRyZW4pCisJeworCQlJbnN0clN0YWNrICpjaGlsZCA9IHNs aXN0X2NvbnRhaW5lcihJbnN0clN0YWNrLCB1bmZpbmFsaXplZF9ub2RlLCBpdGVyLmN1cik7CisK KwkJSW5zdHJTdGFja0FkZChzdGFjaywgY2hpbGQpOworCisJCS8qCisJCSAqIE5vdGUgd2UgZG9u J3QgZnJlZSB0aGUgY2hpbGQgaGVyZSBzaW5jZSBpdHMgdXN1YWxseSBjb250YWluZWQKKwkJICog d2l0aGluIE5vZGVJbnN0cnVtZW50YXRpb24gYW5kIHdlIGRvbid0IGhhdmUgYW4gZWFzeSB3YXkg dG8gYWNjZXNzCisJCSAqIHRoYXQsIGl0IHdpbGwgYmUgaW5zdGVhZCBiZSBjbGVhbmVkIHVwIGJ5 IHRoZSB0cmFuc2FjdGlvbiBlbmRpbmcuCisJCSAqLworCX0KKworCXNsaXN0X2luaXQoJnN0YWNr LT51bmZpbmFsaXplZF9jaGlsZHJlbik7Cit9CisKIC8qIFVwZGF0ZSB0dXBsZSBjb3VudCAqLwog dm9pZAogSW5zdHJVcGRhdGVUdXBsZUNvdW50KE5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RyLCBk b3VibGUgblR1cGxlcykKQEAgLTI2NSwzOCArNTAyLDY1IEBAIEluc3RyQWdnTm9kZShOb2RlSW5z dHJ1bWVudGF0aW9uICpkc3QsIE5vZGVJbnN0cnVtZW50YXRpb24gKmFkZCkKIAogCS8qIEFkZCBk ZWx0YSBvZiBidWZmZXIgdXNhZ2Ugc2luY2UgZW50cnkgdG8gbm9kZSdzIHRvdGFscyAqLwogCWlm IChkc3QtPm5lZWRfYnVmdXNhZ2UpCi0JCUJ1ZmZlclVzYWdlQWRkKCZkc3QtPmJ1ZnVzYWdlLCAm YWRkLT5idWZ1c2FnZSk7CisJCUJ1ZmZlclVzYWdlQWRkKCZkc3QtPnN0YWNrLmJ1ZnVzYWdlLCAm YWRkLT5zdGFjay5idWZ1c2FnZSk7CiAKIAlpZiAoZHN0LT5uZWVkX3dhbHVzYWdlKQotCQlXYWxV c2FnZUFkZCgmZHN0LT53YWx1c2FnZSwgJmFkZC0+d2FsdXNhZ2UpOworCQlXYWxVc2FnZUFkZCgm ZHN0LT5zdGFjay53YWx1c2FnZSwgJmFkZC0+c3RhY2sud2FsdXNhZ2UpOwogfQogCi0vKiBub3Rl IGN1cnJlbnQgdmFsdWVzIGR1cmluZyBwYXJhbGxlbCBleGVjdXRvciBzdGFydHVwICovCi12b2lk CisvKiBzdGFydCBpbnN0cnVtZW50YXRpb24gZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dG9yIHN0YXJ0 dXAgKi8KK0luc3RydW1lbnRhdGlvbiAqCiBJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSh2b2lkKQog ewotCXNhdmVfcGdCdWZmZXJVc2FnZSA9IHBnQnVmZmVyVXNhZ2U7Ci0Jc2F2ZV9wZ1dhbFVzYWdl ID0gcGdXYWxVc2FnZTsKKwlJbnN0cnVtZW50YXRpb24gKmluc3RyID0gSW5zdHJBbGxvYyhJTlNU UlVNRU5UX0JVRkZFUlMgfCBJTlNUUlVNRU5UX1dBTCk7CisKKwlJbnN0clN0YXJ0KGluc3RyKTsK KwlyZXR1cm4gaW5zdHI7CiB9CiAKIC8qIHJlcG9ydCB1c2FnZSBhZnRlciBwYXJhbGxlbCBleGVj dXRvciBzaHV0ZG93biAqLwogdm9pZAotSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdl ICpidWZ1c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdlKQorSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KElu c3RydW1lbnRhdGlvbiAqaW5zdHIsIEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgV2FsVXNhZ2UgKndh bHVzYWdlKQogeworCUluc3RyU3RvcChpbnN0ciwgdHJ1ZSk7CiAJbWVtc2V0KGJ1ZnVzYWdlLCAw LCBzaXplb2YoQnVmZmVyVXNhZ2UpKTsKLQlCdWZmZXJVc2FnZUFjY3VtRGlmZihidWZ1c2FnZSwg JnBnQnVmZmVyVXNhZ2UsICZzYXZlX3BnQnVmZmVyVXNhZ2UpOworCW1lbWNweShidWZ1c2FnZSwg Jmluc3RyLT5zdGFjay0+YnVmdXNhZ2UsIHNpemVvZihCdWZmZXJVc2FnZSkpOwogCW1lbXNldCh3 YWx1c2FnZSwgMCwgc2l6ZW9mKFdhbFVzYWdlKSk7Ci0JV2FsVXNhZ2VBY2N1bURpZmYod2FsdXNh Z2UsICZwZ1dhbFVzYWdlLCAmc2F2ZV9wZ1dhbFVzYWdlKTsKKwltZW1jcHkod2FsdXNhZ2UsICZp bnN0ci0+c3RhY2stPndhbHVzYWdlLCBzaXplb2YoV2FsVXNhZ2UpKTsKIH0KIAotLyogYWNjdW11 bGF0ZSB3b3JrIGRvbmUgYnkgd29ya2VycyBpbiBsZWFkZXIncyBzdGF0cyAqLworLyoKKyAqIEFj Y3VtdWxhdGUgd29yayBkb25lIGJ5IHBhcmFsbGVsIHdvcmtlcnMgaW4gdGhlIGxlYWRlcidzIHN0 YXRzLgorICoKKyAqIE5vdGUgdGhhdCB3aGF0IGdldHMgYWRkZWQgaGVyZSBlZmZlY3RpdmVseSBk ZXBlbmRzIG9uIHdoZXRoZXIgcGVyLW5vZGUKKyAqIGluc3RydW1lbnRhdGlvbiBpcyBhY3RpdmUu IElmIGl0cyBhY3RpdmUgdGhlIHBhcmFsbGVsIHdvcmtlciBpbnRlbnRpb25hbGx5CisgKiBza2lw cyBFeGVjRmluYWxpemVOb2RlSW5zdHJ1bWVudGF0aW9uIG9uIGV4ZWN1dG9yIHNodXRkb3duLCBi ZWNhdXNlIGl0IHdvdWxkCisgKiBjYXVzZSBkb3VibGUgY291bnRpbmcuIEluc3RlYWQsIHRoaXMg b25seSBhY2N1bXVsYXRlcyBhbnkgZXh0cmEgYWN0aXZpdHkKKyAqIG91dHNpZGUgb2Ygbm9kZXMu CisgKgorICogT3RoZXJ3aXNlIHRoaXMgaXMgcmVzcG9uc2libGUgZm9yIG1ha2luZyBzdXJlIHRo YXQgdGhlIGNvbXBsZXRlIHF1ZXJ5CisgKiBhY3Rpdml0eSBpcyBhY2N1bXVsYXRlZC4KKyAqLwog dm9pZAogSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBXYWxV c2FnZSAqd2FsdXNhZ2UpCiB7CisJQnVmZmVyVXNhZ2VBZGQoJkN1cnJlbnRJbnN0clN0YWNrLT5i dWZ1c2FnZSwgYnVmdXNhZ2UpOworCVdhbFVzYWdlQWRkKCZDdXJyZW50SW5zdHJTdGFjay0+d2Fs dXNhZ2UsIHdhbHVzYWdlKTsKKwogCUJ1ZmZlclVzYWdlQWRkKCZwZ0J1ZmZlclVzYWdlLCBidWZ1 c2FnZSk7CiAJV2FsVXNhZ2VBZGQoJnBnV2FsVXNhZ2UsIHdhbHVzYWdlKTsKIH0KIAordm9pZAor SW5zdHJTdGFja0FkZChJbnN0clN0YWNrICpkc3QsIEluc3RyU3RhY2sgKmFkZCkKK3sKKwlBc3Nl cnQoZHN0ICE9IE5VTEwpOworCUFzc2VydChhZGQgIT0gTlVMTCk7CisKKwlCdWZmZXJVc2FnZUFk ZCgmZHN0LT5idWZ1c2FnZSwgJmFkZC0+YnVmdXNhZ2UpOworCVdhbFVzYWdlQWRkKCZkc3QtPndh bHVzYWdlLCAmYWRkLT53YWx1c2FnZSk7Cit9CisKIC8qIGRzdCArPSBhZGQgKi8KIHN0YXRpYyB2 b2lkCiBCdWZmZXJVc2FnZUFkZChCdWZmZXJVc2FnZSAqZHN0LCBjb25zdCBCdWZmZXJVc2FnZSAq YWRkKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCBiL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKaW5kZXggZDQ2YmE1OTg5NWQuLjQ0MDZiZTllZDdi IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCisrKyBiL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKQEAgLTMwMCw2ICszMDAsOCBAQCBleHRlcm4gdm9p ZCBFeGVjU2V0RXhlY1Byb2NOb2RlKFBsYW5TdGF0ZSAqbm9kZSwgRXhlY1Byb2NOb2RlTXRkIGZ1 bmN0aW9uKTsKIGV4dGVybiBOb2RlICpNdWx0aUV4ZWNQcm9jTm9kZShQbGFuU3RhdGUgKm5vZGUp OwogZXh0ZXJuIHZvaWQgRXhlY0VuZE5vZGUoUGxhblN0YXRlICpub2RlKTsKIGV4dGVybiB2b2lk IEV4ZWNTaHV0ZG93bk5vZGUoUGxhblN0YXRlICpub2RlKTsKK2V4dGVybiB2b2lkIEV4ZWNSZW1l bWJlck5vZGVJbnN0cnVtZW50YXRpb24oUGxhblN0YXRlICpub2RlLCBJbnN0clN0YWNrICpwYXJl bnQpOworZXh0ZXJuIHZvaWQgRXhlY0ZpbmFsaXplTm9kZUluc3RydW1lbnRhdGlvbihQbGFuU3Rh dGUgKm5vZGUpOwogZXh0ZXJuIHZvaWQgRXhlY1NldFR1cGxlQm91bmQoaW50NjQgdHVwbGVzX25l ZWRlZCwgUGxhblN0YXRlICpjaGlsZF9ub2RlKTsKIAogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9leGVjdXRvci9pbnN0cnVtZW50LmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50 LmgKaW5kZXggMTY2ODhiNWZkYjQuLjdiM2U5YTIxNzMzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9leGVjdXRvci9pbnN0cnVtZW50LmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1 bWVudC5oCkBAIC0xMyw2ICsxMyw3IEBACiAjaWZuZGVmIElOU1RSVU1FTlRfSAogI2RlZmluZSBJ TlNUUlVNRU5UX0gKIAorI2luY2x1ZGUgImxpYi9pbGlzdC5oIgogI2luY2x1ZGUgInBvcnRhYmls aXR5L2luc3RyX3RpbWUuaCIKIAogCkBAIC02NywxMiArNjgsMzMgQEAgdHlwZWRlZiBlbnVtIElu c3RydW1lbnRPcHRpb24KIAlJTlNUUlVNRU5UX0FMTCA9IFBHX0lOVDMyX01BWAogfSBJbnN0cnVt ZW50T3B0aW9uOwogCisvKiBTdGFjayBlbnRyeSBmb3IgY3VycmVudCBXQUwvYnVmZmVyIHVzYWdl ICovCit0eXBlZGVmIHN0cnVjdCBJbnN0clN0YWNrCit7CisJc3RydWN0IEluc3RyU3RhY2sgKnBy ZXZpb3VzOworCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdlOworCVdhbFVzYWdlCXdhbHVzYWdlOworCisJ LyoKKwkgKiBUcmFja2luZyBvZiBpbnN0ciBzdGFja3MgdGhhdCBuZWVkIHRvIGJlIGNsZWFuZWQg dXAgb24gYWJvcnQgdGhhdCBhcmUKKwkgKiBub3QgcmVnaXN0ZXJlZCBhcyBhIHJlc291cmNlIG93 bmVyIHRoZW1zZWx2ZXMKKwkgKi8KKwlzbGlzdF9oZWFkCXVuZmluYWxpemVkX2NoaWxkcmVuOwkv KiBoZWFkIG9mIHVuZmluYWxpemVkIGNoaWxkcmVuIGxpc3QgKi8KKwlzbGlzdF9ub2RlCXVuZmlu YWxpemVkX25vZGU7CS8qIG5vZGUgaW4gcGFyZW50J3MgdW5maW5hbGl6ZWQgbGlzdCAqLworfSBJ bnN0clN0YWNrOworCiAvKgogICogR2VuZXJhbCBwdXJwb3NlIGluc3RydW1lbnRhdGlvbiB0aGF0 IGNhbiBjYXB0dXJlIHRpbWUgYW5kIFdBTC9idWZmZXIgdXNhZ2UKICAqCiAgKiBJbml0aWFsaXpl ZCB0aHJvdWdoIEluc3RyQWxsb2MsIGZvbGxvd2VkIGJ5IG9uZSBvciBtb3JlIGNhbGxzIHRvIGEg cGFpciBvZgogICogSW5zdHJTdGFydC9JbnN0clN0b3AgKGFjdGl2aXR5IGlzIG1lYXN1cmVkIGlu YmV0d2VlbikuCisgKgorICogVXNlcyByZXNvdXJjZSBvd25lciBtZWNoYW5pc20gZm9yIGhhbmRs aW5nIGFib3J0cywgYXMgc3VjaCwgdGhlIGNhbGxlcgorICogKm11c3QqIG5vdCBleGl0IG91dCBv ZiB0b3AgbGV2ZWwgdHJhbnNhY3Rpb24gYmV0d2VlbiBJbnN0clN0YXJ0L0luc3RyU3RvcAorICog Y2FsbHMgaW4gcmVndWxhciBleGVjdXRpb24uIElmIHRoaXMgaXMgbmVlZGVkLCBkaXJlY3RseSB1 c2UgSW5zdHJQdXNoU3RhY2sgLworICogSW5zdHJQb3BTdGFjayBpbiBhIFBHX1RSWS9QR19GSU5B TExZIGJsb2NrIGluc3RlYWQuCiAgKi8KK3N0cnVjdCBSZXNvdXJjZU93bmVyRGF0YTsKIHR5cGVk ZWYgc3RydWN0IEluc3RydW1lbnRhdGlvbgogewogCS8qIFBhcmFtZXRlcnMgc2V0IGF0IGNyZWF0 aW9uOiAqLwpAQCAtODEsMTIgKzEwMywxMCBAQCB0eXBlZGVmIHN0cnVjdCBJbnN0cnVtZW50YXRp b24KIAlib29sCQluZWVkX3dhbHVzYWdlOwkvKiB0cnVlIGlmIHdlIG5lZWQgV0FMIHVzYWdlIGRh dGEgKi8KIAkvKiBJbnRlcm5hbCBzdGF0ZSBrZWVwaW5nOiAqLwogCWluc3RyX3RpbWUJc3RhcnR0 aW1lOwkJLyogc3RhcnQgdGltZSBvZiBsYXN0IEluc3RyU3RhcnQgKi8KLQlCdWZmZXJVc2FnZSBi dWZ1c2FnZV9zdGFydDsgLyogYnVmZmVyIHVzYWdlIGF0IHN0YXJ0ICovCi0JV2FsVXNhZ2UJd2Fs dXNhZ2Vfc3RhcnQ7IC8qIFdBTCB1c2FnZSBhdCBzdGFydCAqLwogCS8qIEFjY3VtdWxhdGVkIHN0 YXRpc3RpY3M6ICovCiAJaW5zdHJfdGltZQl0b3RhbDsJCQkvKiB0b3RhbCBydW50aW1lICovCi0J QnVmZmVyVXNhZ2UgYnVmdXNhZ2U7CQkvKiB0b3RhbCBidWZmZXIgdXNhZ2UgKi8KLQlXYWxVc2Fn ZQl3YWx1c2FnZTsJCS8qIHRvdGFsIFdBTCB1c2FnZSAqLworCUluc3RyU3RhY2sgKnN0YWNrOwkJ CS8qIHN0YWNrIHRyYWNraW5nIGJ1ZmZlci9XQUwgdXNhZ2UgKi8KKwlzdHJ1Y3QgUmVzb3VyY2VP d25lckRhdGEgKm93bmVyOwogfSBJbnN0cnVtZW50YXRpb247CiAKIC8qIFRyaWdnZXIgaW5zdHJ1 bWVudGF0aW9uICovCkBAIC05OSw2ICsxMTksMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgVHJpZ2dlcklu c3RydW1lbnRhdGlvbgogCiAvKgogICogU3BlY2lhbGl6ZWQgaW5zdHJ1bWVudGF0aW9uIGZvciBw ZXItbm9kZSBleGVjdXRpb24gc3RhdGlzdGljcworICoKKyAqIFJlcXVpcmVzIHVzZSBvZiBhbiBv dXRlciBJbnN0clN0YXJ0L0luc3RyU3RvcCB0byBoYW5kbGUgdGhlIHN0YWNrIHVzZWQgZm9yCisg KiBXQUwvYnVmZmVyIHVzYWdlIHN0YXRpc3RpY3MsIGFuZCByZWxpZXMgb24gaXQgZm9yIG1hbmFn aW5nIGFib3J0cy4gU29sZWx5CisgKiBpbnRlbmRlZCBmb3IgdGhlIGV4ZWN1dG9yIGFuZCBhbnlv bmUgcmVwb3J0aW5nIGFib3V0IGl0cyBhY3Rpdml0aWVzIChlLmcuCisgKiBFWFBMQUlOIEFOQUxZ WkUpLgogICovCiB0eXBlZGVmIHN0cnVjdCBOb2RlSW5zdHJ1bWVudGF0aW9uCiB7CkBAIC0xMTMs OCArMTM4LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgTm9kZUluc3RydW1lbnRhdGlvbgogCWluc3RyX3Rp bWUJY291bnRlcjsJCS8qIGFjY3VtdWxhdGVkIHJ1bnRpbWUgZm9yIHRoaXMgbm9kZSAqLwogCWlu c3RyX3RpbWUJZmlyc3R0dXBsZTsJCS8qIHRpbWUgZm9yIGZpcnN0IHR1cGxlIG9mIHRoaXMgY3lj bGUgKi8KIAlkb3VibGUJCXR1cGxlY291bnQ7CQkvKiAjIG9mIHR1cGxlcyBlbWl0dGVkIHNvIGZh ciB0aGlzIGN5Y2xlICovCi0JQnVmZmVyVXNhZ2UgYnVmdXNhZ2Vfc3RhcnQ7IC8qIGJ1ZmZlciB1 c2FnZSBhdCBzdGFydCAqLwotCVdhbFVzYWdlCXdhbHVzYWdlX3N0YXJ0OyAvKiBXQUwgdXNhZ2Ug YXQgc3RhcnQgKi8KIAkvKiBBY2N1bXVsYXRlZCBzdGF0aXN0aWNzIGFjcm9zcyBhbGwgY29tcGxl dGVkIGN5Y2xlczogKi8KIAlpbnN0cl90aW1lCXN0YXJ0dXA7CQkvKiB0b3RhbCBzdGFydHVwIHRp bWUgKi8KIAlpbnN0cl90aW1lCXRvdGFsOwkJCS8qIHRvdGFsIHRpbWUgKi8KQEAgLTEyMywxMCAr MTQ2LDEzIEBAIHR5cGVkZWYgc3RydWN0IE5vZGVJbnN0cnVtZW50YXRpb24KIAlkb3VibGUJCW5s b29wczsJCQkvKiAjIG9mIHJ1biBjeWNsZXMgZm9yIHRoaXMgbm9kZSAqLwogCWRvdWJsZQkJbmZp bHRlcmVkMTsJCS8qICMgb2YgdHVwbGVzIHJlbW92ZWQgYnkgc2NhbnF1YWwgb3Igam9pbnF1YWwg Ki8KIAlkb3VibGUJCW5maWx0ZXJlZDI7CQkvKiAjIG9mIHR1cGxlcyByZW1vdmVkIGJ5ICJvdGhl ciIgcXVhbHMgKi8KLQlCdWZmZXJVc2FnZSBidWZ1c2FnZTsJCS8qIHRvdGFsIGJ1ZmZlciB1c2Fn ZSAqLwotCVdhbFVzYWdlCXdhbHVzYWdlOwkJLyogdG90YWwgV0FMIHVzYWdlICovCisJSW5zdHJT dGFjawlzdGFjazsJCQkvKiBzdGFjayB0cmFja2luZyBidWZmZXIvV0FMIHVzYWdlICovCiB9IE5v ZGVJbnN0cnVtZW50YXRpb247CiAKKy8qCisgKiBDYXJlIG11c3QgYmUgdGFrZW4gd2l0aCBhbnkg cG9pbnRlcnMgY29udGFpbmVkIHdpdGhpbiB0aGlzIHN0cnVjdCwgYXMgdGhpcworICogZ2V0cyBj b3BpZWQgYWNyb3NzIHByb2Nlc3NlcyBkdXJpbmcgcGFyYWxsZWwgcXVlcnkgZXhlY3V0aW9uLgor ICovCiB0eXBlZGVmIHN0cnVjdCBXb3JrZXJOb2RlSW5zdHJ1bWVudGF0aW9uCiB7CiAJaW50CQkJ bnVtX3dvcmtlcnM7CS8qICMgb2Ygc3RydWN0dXJlcyB0aGF0IGZvbGxvdyAqLwpAQCAtMTM2LDkg KzE2Miw2OCBAQCB0eXBlZGVmIHN0cnVjdCBXb3JrZXJOb2RlSW5zdHJ1bWVudGF0aW9uCiBleHRl cm4gUEdETExJTVBPUlQgQnVmZmVyVXNhZ2UgcGdCdWZmZXJVc2FnZTsKIGV4dGVybiBQR0RMTElN UE9SVCBXYWxVc2FnZSBwZ1dhbFVzYWdlOwogCisvKgorICogVGhlIHRvcCBpbnN0cnVtZW50YXRp b24gc3RhY2sgcmVwcmVzZW50cyBhIHJ1bm5pbmcgdG90YWwgb2YgdGhlIGN1cnJlbnQKKyAqIGJh Y2tlbmQgV0FML2J1ZmZlciB1c2FnZSBpbmZvcm1hdGlvbi4gVGhpcyB3aWxsIG5vdCBiZSB1cGRh dGVkIGltbWVkaWF0ZWx5LAorICogYnV0IHJhdGhlciB3aGVuIHRoZSBjdXJyZW50IHN0YWNrIGVu dHJ5IGdldHMgYWNjdW11bGF0ZWQgd2hpY2ggdHlwaWNhbGx5CisgKiBoYXBwZW5zIGF0IHF1ZXJ5 IGVuZCAoc2VlIEN1cnJlbnRJbnN0clN0YWNrIGJlbG93KS4KKyAqCisgKiBDYXJlIG11c3QgYmUg dGFrZW4gd2hlbiB1dGlsaXppbmcgdGhpcyBpbiB0aGUgcGFyYWxsZWwgd29ya2VyIGNvbnRleHQ6 CisgKiBQYXJhbGxlbCB3b3JrZXJzIHdpbGwgcmVwb3J0IGJhY2sgdGhlaXIgaW5zdHJ1bWVudGF0 aW9uIHRvIHRoZSBjYWxsZXIsCisgKiBhbmQgdGhpcyBnZXRzIGFkZGVkIHRvIHRoZSBjYWxsZXIn cyBzdGFjay4gSWYgdGhpcyB3ZXJlIHRvIGJlIHVzZWQgaW4gdGhlCisgKiBzaGFyZWQgbWVtb3J5 IHN0YXRzIGluZnJhc3RydWN0dXJlIGl0IHdvdWxkIG5lZWQgdG8gYmUgc2tpcHBlZCBvbiBwYXJh bGxlbAorICogd29ya2VycyB0byBhdm9pZCBkb3VibGUgY291bnRpbmcuCisgKi8KK2V4dGVybiBQ R0RMTElNUE9SVCBJbnN0clN0YWNrIFRvcEluc3RyU3RhY2s7CisKKy8qCisgKiBUaGUgY3VycmVu dGx5IGFjdGl2ZSBzdGFjayBlbnRyeSB0aGF0IGlzIGdldHRpbmcgdXBkYXRlZCBhcyBhY3Rpdml0 eQorICogaGFwcGVucywgYW5kIHdpbGwgYmUgYWNjdW11bGF0ZWQgdG8gcGFyZW50IHN0YWNrcyB3 aGVuIGl0IGdldHMgZmluYWxpemVkCisgKiBieSBJbnN0clN0b3AgKGZvciBub24tZXhlY3V0b3Ig dXNlIGNhc2VzKSwgRXhlY0ZpbmFsaXplTm9kZUluc3RydW1lbnRhdGlvbgorICogKGV4ZWN1dG9y IGZpbmlzaCkgb3IgUmVzT3duZXJSZWxlYXNlSW5zdHJ1bWVudGF0aW9uIG9uIGFib3J0LgorICov CitleHRlcm4gUEdETExJTVBPUlQgSW5zdHJTdGFjayAqQ3VycmVudEluc3RyU3RhY2s7CisKK2V4 dGVybiB2b2lkIEluc3RyU3RhY2tBZGQoSW5zdHJTdGFjayAqZHN0LCBJbnN0clN0YWNrICphZGQp OworCisvKgorICogUHVzaGVzIHRoZSBzdGFjayBzbyB0aGF0IGFsbCBXQUwvYnVmZmVyIHVzYWdl IHVwZGF0ZXMgZ28gdG8gdGhlIHBhc3NlZCBpbgorICogc3RhY2sgZW50cnkuCisgKgorICogQW55 IGNhbGxlciB1c2luZyB0aGlzIGRpcmVjdGx5IG11c3QgbWFuYWdlIHRoZSBwYXNzZWQgaW4gc3Rh Y2sgYW5kIGNhbGwKKyAqIEluc3RyUG9wU3RhY2sgb24gaXRzIG93biBhZ2FpbiwgdHlwaWNhbGx5 IGJ5IHVzaW5nIGEgUEdfRklOQUxMWSBibG9jayB0bworICogZW5zdXJlIHRoZSBzdGFjayBnZXRz IHJlc2V0IHZpYSBJbnN0clBvcFN0YWNrIG9uIGFib3J0LiBVc2UgSW5zdHJTdGFydAorICogaW5z dGVhZCB3aGVuIHlvdSB3YW50IGF1dG9tYXRpYyBoYW5kbGluZyBvZiBhYm9ydCBjYXNlcyB1c2lu ZyB0aGUgcmVzb3VyY2UKKyAqIG93bmVyIGluZnJhc3RydWN0dXJlLgorICovCitzdGF0aWMgaW5s aW5lIHZvaWQKK0luc3RyUHVzaFN0YWNrKEluc3RyU3RhY2sgKnN0YWNrKQoreworCXN0YWNrLT5w cmV2aW91cyA9IEN1cnJlbnRJbnN0clN0YWNrOworCUN1cnJlbnRJbnN0clN0YWNrID0gc3RhY2s7 Cit9CisKKy8qCisgKiBQb3BzIHRoZSBzdGFjayBlbnRyeSBiYWNrIHRvIHRoZSBwcmV2aW91cyBv bmUgdGhhdCB3YXMgZWZmZWN0aXZlIGF0CisgKiBJbnN0clB1c2hTdGFjay4KKyAqCisgKiBDYWxs ZXJzIG11c3QgZW5zdXJlIHRoYXQgbm8gaW50ZXJtZWRpYXRlIHN0YWNrIGVudHJpZXMgYXJlIHNr aXBwZWQsIHRvCisgKiBoYW5kbGUgYWJvcnRzIGNvcnJlY3RseS4gSWYgeW91J3JlIHRoaW5raW5n IG9mIGNhbGxpbmcgdGhpcyBpbiBhIFBHX0ZJTkFMTFkKKyAqIGJsb2NrLCBpbnN0ZWFkIGNhbGwg SW5zdHJQb3BBbmRGaW5hbGl6ZVN0YWNrIHdoaWNoIGNhbiBza2lwIGludGVybWVkaWF0ZQorICog c3RhY2sgZW50cmllcywgb3IgaW5zdGVhZCB1c2UgSW5zdHJTdGFydC9JbnN0clN0b3AuCisgKi8K K3N0YXRpYyBpbmxpbmUgdm9pZAorSW5zdHJQb3BTdGFjayhJbnN0clN0YWNrICpzdGFjaykKK3sK KwlBc3NlcnQoc3RhY2sgIT0gTlVMTCk7CisJQ3VycmVudEluc3RyU3RhY2sgPSBzdGFjay0+cHJl dmlvdXM7Cit9CisKK2V4dGVybiB2b2lkIEluc3RyUG9wQW5kRmluYWxpemVTdGFjayhJbnN0clN0 YWNrICpzdGFjayk7CisKIGV4dGVybiBJbnN0cnVtZW50YXRpb24gKkluc3RyQWxsb2MoaW50IGlu c3RydW1lbnRfb3B0aW9ucyk7CiBleHRlcm4gdm9pZCBJbnN0clN0YXJ0KEluc3RydW1lbnRhdGlv biAqaW5zdHIpOwotZXh0ZXJuIHZvaWQgSW5zdHJTdG9wKEluc3RydW1lbnRhdGlvbiAqaW5zdHIp OworZXh0ZXJuIHZvaWQgSW5zdHJTdG9wKEluc3RydW1lbnRhdGlvbiAqaW5zdHIsIGJvb2wgZmlu YWxpemUpOwogCiBleHRlcm4gVHJpZ2dlckluc3RydW1lbnRhdGlvbiAqSW5zdHJBbGxvY1RyaWdn ZXIoaW50IG4sIGludCBpbnN0cnVtZW50X29wdGlvbnMpOwogZXh0ZXJuIHZvaWQgSW5zdHJTdGFy dFRyaWdnZXIoVHJpZ2dlckluc3RydW1lbnRhdGlvbiAqdGdpbnN0cik7CkBAIC0xNDcsMTQgKzIz MiwxNiBAQCBleHRlcm4gdm9pZCBJbnN0clN0b3BUcmlnZ2VyKFRyaWdnZXJJbnN0cnVtZW50YXRp b24gKnRnaW5zdHIsIGludCBmaXJpbmdzKTsKIGV4dGVybiBOb2RlSW5zdHJ1bWVudGF0aW9uICpJ bnN0ckFsbG9jTm9kZShpbnQgaW5zdHJ1bWVudF9vcHRpb25zLAogCQkJCQkJCQkJCSAgIGJvb2wg YXN5bmNfbW9kZSk7CiBleHRlcm4gdm9pZCBJbnN0ckluaXROb2RlKE5vZGVJbnN0cnVtZW50YXRp b24gKmluc3RyLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zKTsKK2V4dGVybiB2b2lkIEluc3RyUmVt ZW1iZXJOb2RlU3RhY2soSW5zdHJTdGFjayAqcGFyZW50LCBJbnN0clN0YWNrICppbnN0cik7CiBl eHRlcm4gdm9pZCBJbnN0clN0YXJ0Tm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0cik7CiBl eHRlcm4gdm9pZCBJbnN0clN0b3BOb2RlKE5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3Vi bGUgblR1cGxlcyk7CitleHRlcm4gTm9kZUluc3RydW1lbnRhdGlvbiAqSW5zdHJGaW5hbGl6ZU5v ZGUoTm9kZUluc3RydW1lbnRhdGlvbiAqaW5zdHIsIEluc3RyU3RhY2sgKnBhcmVudCk7CiBleHRl cm4gdm9pZCBJbnN0clVwZGF0ZVR1cGxlQ291bnQoTm9kZUluc3RydW1lbnRhdGlvbiAqaW5zdHIs IGRvdWJsZSBuVHVwbGVzKTsKIGV4dGVybiB2b2lkIEluc3RyRW5kTG9vcChOb2RlSW5zdHJ1bWVu dGF0aW9uICppbnN0cik7CiBleHRlcm4gdm9pZCBJbnN0ckFnZ05vZGUoTm9kZUluc3RydW1lbnRh dGlvbiAqZHN0LCBOb2RlSW5zdHJ1bWVudGF0aW9uICphZGQpOwogCi1leHRlcm4gdm9pZCBJbnN0 clN0YXJ0UGFyYWxsZWxRdWVyeSh2b2lkKTsKLWV4dGVybiB2b2lkIEluc3RyRW5kUGFyYWxsZWxR dWVyeShCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSk7CitwZ19ub2Rp c2NhcmQgZXh0ZXJuIEluc3RydW1lbnRhdGlvbiAqSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkodm9p ZCk7CitleHRlcm4gdm9pZCBJbnN0ckVuZFBhcmFsbGVsUXVlcnkoSW5zdHJ1bWVudGF0aW9uICpp bnN0ciwgQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UpOwogZXh0ZXJu IHZvaWQgSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBXYWxV c2FnZSAqd2FsdXNhZ2UpOwogZXh0ZXJuIHZvaWQgQnVmZmVyVXNhZ2VBY2N1bURpZmYoQnVmZmVy VXNhZ2UgKmRzdCwKIAkJCQkJCQkJIGNvbnN0IEJ1ZmZlclVzYWdlICphZGQsIGNvbnN0IEJ1ZmZl clVzYWdlICpzdWIpOwpAQCAtMTYzLDIxICsyNTAsMjggQEAgZXh0ZXJuIHZvaWQgV2FsVXNhZ2VB Y2N1bURpZmYoV2FsVXNhZ2UgKmRzdCwgY29uc3QgV2FsVXNhZ2UgKmFkZCwKIAogI2RlZmluZSBJ TlNUUl9CVUZVU0FHRV9JTkNSKGZsZCkgZG8geyBcCiAJCXBnQnVmZmVyVXNhZ2UuZmxkKys7IFwK KwkJQ3VycmVudEluc3RyU3RhY2stPmJ1ZnVzYWdlLmZsZCsrOyBcCiAJfSB3aGlsZSgwKQogI2Rl ZmluZSBJTlNUUl9CVUZVU0FHRV9BREQoZmxkLHZhbCkgZG8geyBcCiAJCXBnQnVmZmVyVXNhZ2Uu ZmxkICs9IHZhbDsgXAorCQlDdXJyZW50SW5zdHJTdGFjay0+YnVmdXNhZ2UuZmxkICs9IHZhbDsg XAogCX0gd2hpbGUoMCkKICNkZWZpbmUgSU5TVFJfQlVGVVNBR0VfVElNRV9BREQoZmxkLHZhbCkg ZG8geyBcCiAJSU5TVFJfVElNRV9BREQocGdCdWZmZXJVc2FnZS5mbGQsIHZhbCk7IFwKKwlJTlNU Ul9USU1FX0FERChDdXJyZW50SW5zdHJTdGFjay0+YnVmdXNhZ2UuZmxkLCB2YWwpOyBcCiAJfSB3 aGlsZSAoMCkKICNkZWZpbmUgSU5TVFJfQlVGVVNBR0VfVElNRV9BQ0NVTV9ESUZGKGZsZCxlbmR2 YWwsc3RhcnR2YWwpIGRvIHsgXAogCUlOU1RSX1RJTUVfQUNDVU1fRElGRihwZ0J1ZmZlclVzYWdl LmZsZCwgZW5kdmFsLCBzdGFydHZhbCk7IFwKKwlJTlNUUl9USU1FX0FDQ1VNX0RJRkYoQ3VycmVu dEluc3RyU3RhY2stPmJ1ZnVzYWdlLmZsZCwgZW5kdmFsLCBzdGFydHZhbCk7IFwKIAl9IHdoaWxl ICgwKQorCiAjZGVmaW5lIElOU1RSX1dBTFVTQUdFX0lOQ1IoZmxkKSBkbyB7IFwKIAkJcGdXYWxV c2FnZS5mbGQrKzsgXAorCQlDdXJyZW50SW5zdHJTdGFjay0+d2FsdXNhZ2UuZmxkKys7IFwKIAl9 IHdoaWxlKDApCiAjZGVmaW5lIElOU1RSX1dBTFVTQUdFX0FERChmbGQsdmFsKSBkbyB7IFwKIAkJ cGdXYWxVc2FnZS5mbGQgKz0gdmFsOyBcCisJCUN1cnJlbnRJbnN0clN0YWNrLT53YWx1c2FnZS5m bGQgKz0gdmFsOyBcCiAJfSB3aGlsZSgwKQogCiAjZW5kaWYJCQkJCQkJLyogSU5TVFJVTUVOVF9I ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9yZXNvd25lci5oIGIvc3JjL2luY2x1 ZGUvdXRpbHMvcmVzb3duZXIuaAppbmRleCBlYjYwMzNiNGZkYi4uNTQ2M2JjOTIxZjAgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3Jlc293bmVyLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRp bHMvcmVzb3duZXIuaApAQCAtNzUsNiArNzUsNyBAQCB0eXBlZGVmIHVpbnQzMiBSZXNvdXJjZVJl bGVhc2VQcmlvcml0eTsKICNkZWZpbmUgUkVMRUFTRV9QUklPX1NOQVBTSE9UX1JFRlMJCQk1MDAK ICNkZWZpbmUgUkVMRUFTRV9QUklPX0ZJTEVTCQkJCQk2MDAKICNkZWZpbmUgUkVMRUFTRV9QUklP X1dBSVRFVkVOVFNFVFMJCQk3MDAKKyNkZWZpbmUgUkVMRUFTRV9QUklPX0lOU1RSVU1FTlRBVElP TgkJODAwCiAKIC8qIDAgaXMgY29uc2lkZXJlZCBpbnZhbGlkICovCiAjZGVmaW5lIFJFTEVBU0Vf UFJJT19GSVJTVAkJCQkJMQpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZz Lmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCBlMTA3NWM3MDlm NS4uYjMxNDZiMGExNjUgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0xMzE5LDYgKzEz MTksNyBAQCBJbmplY3Rpb25Qb2ludFNoYXJlZFN0YXRlCiBJbmplY3Rpb25Qb2ludHNDdGwKIElu bGluZUNvZGVCbG9jawogSW5zZXJ0U3RtdAorSW5zdHJTdGFjawogSW5zdHJ1bWVudGF0aW9uCiBJ bnQxMjhBZ2dTdGF0ZQogSW50OFRyYW5zVHlwZURhdGEKLS0gCjIuNDcuMQoK --000000000000702390064b8a3016 Content-Type: application/octet-stream; name="v6-0002-instrumentation-Replace-direct-changes-of-pgBuffe.patch" Content-Disposition: attachment; filename="v6-0002-instrumentation-Replace-direct-changes-of-pgBuffe.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm02xado1 RnJvbSAxZDcwY2E3YWZjZjMyNDczMGUzODYwY2ZlYWMzZDEzZmVkZjcxMjk5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBT dW4sIDMxIEF1ZyAyMDI1IDE2OjM0OjQyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2NiAyLzhdIGlu c3RydW1lbnRhdGlvbjogUmVwbGFjZSBkaXJlY3QgY2hhbmdlcyBvZgogcGdCdWZmZXJVc2FnZS9w Z1dhbFVzYWdlIHdpdGggSU5TVFJfKiBtYWNyb3MKClRoaXMgZW5jYXBzdWxhdGVzIHRoZSBvd25l cnNoaXAgb2YgdGhlc2UgZ2xvYmFscyBiZXR0ZXIsIGFuZCB3aWxsIGFsbG93CmEgc3Vic2VxdWVu dCByZWZhY3RvcmluZy4KCkF1dGhvcjogTHVrYXMgRml0dGwgPGx1a2FzQGZpdHRsLmNvbT4KUmV2 aWV3ZWQtYnk6IEFuZHJlcyBGcmV1bmQgPGFuZHJlc0BhbmFyYXplbC5kZT4KRGlzY3Vzc2lvbjog aHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0L0NBUDUzUGt6WjNVb3Ru UnJyblhXQXYlM0RGNGF2UnE5TVE4elUlMkJieG9OOXRwb3ZFdTZmR1ElNDBtYWlsLmdtYWlsLmNv bSNmYzcxNDBlOGFmMjFlMDdhOTBhMDlkN2U3NmIzMDBjNAotLS0KIHNyYy9iYWNrZW5kL2FjY2Vz cy90cmFuc2FtL3hsb2cuYyAgICAgIHwgMTAgKysrKystLS0tLQogc3JjL2JhY2tlbmQvc3RvcmFn ZS9idWZmZXIvYnVmbWdyLmMgICAgfCAyNCArKysrKysrKysrKystLS0tLS0tLS0tLS0KIHNyYy9i YWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2xvY2FsYnVmLmMgIHwgIDYgKysrLS0tCiBzcmMvYmFja2Vu ZC9zdG9yYWdlL2ZpbGUvYnVmZmlsZS5jICAgICB8ICA4ICsrKystLS0tCiBzcmMvYmFja2VuZC91 dGlscy9hY3Rpdml0eS9wZ3N0YXRfaW8uYyB8ICA4ICsrKystLS0tCiBzcmMvaW5jbHVkZS9leGVj dXRvci9pbnN0cnVtZW50LmggICAgICB8IDE5ICsrKysrKysrKysrKysrKysrKysKIDYgZmlsZXMg Y2hhbmdlZCwgNDcgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0veGxvZy5jCmluZGV4IDEzY2NlOWI0OWYxLi42YTYzNWJjZGYxMSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy90cmFuc2FtL3hsb2cuYwpAQCAtMTA4MCwxMCArMTA4MCwxMCBAQCBYTG9nSW5zZXJ0UmVjb3Jk KFhMb2dSZWNEYXRhICpyZGF0YSwKIAkvKiBSZXBvcnQgV0FMIHRyYWZmaWMgdG8gdGhlIGluc3Ry dW1lbnRhdGlvbi4gKi8KIAlpZiAoaW5zZXJ0ZWQpCiAJewotCQlwZ1dhbFVzYWdlLndhbF9ieXRl cyArPSByZWNoZHItPnhsX3RvdF9sZW47Ci0JCXBnV2FsVXNhZ2Uud2FsX3JlY29yZHMrKzsKLQkJ cGdXYWxVc2FnZS53YWxfZnBpICs9IG51bV9mcGk7Ci0JCXBnV2FsVXNhZ2Uud2FsX2ZwaV9ieXRl cyArPSBmcGlfYnl0ZXM7CisJCUlOU1RSX1dBTFVTQUdFX0FERCh3YWxfYnl0ZXMsIHJlY2hkci0+ eGxfdG90X2xlbik7CisJCUlOU1RSX1dBTFVTQUdFX0lOQ1Iod2FsX3JlY29yZHMpOworCQlJTlNU Ul9XQUxVU0FHRV9BREQod2FsX2ZwaSwgbnVtX2ZwaSk7CisJCUlOU1RSX1dBTFVTQUdFX0FERCh3 YWxfZnBpX2J5dGVzLCBmcGlfYnl0ZXMpOwogCiAJCS8qIFJlcXVpcmVkIGZvciB0aGUgZmx1c2gg b2YgcGVuZGluZyBzdGF0cyBXQUwgZGF0YSAqLwogCQlwZ3N0YXRfcmVwb3J0X2ZpeGVkID0gdHJ1 ZTsKQEAgLTIwNjMsNyArMjA2Myw3IEBAIEFkdmFuY2VYTEluc2VydEJ1ZmZlcihYTG9nUmVjUHRy IHVwdG8sIFRpbWVMaW5lSUQgdGxpLCBib29sIG9wcG9ydHVuaXN0aWMpCiAJCQkJCVdyaXRlUnFz dC5GbHVzaCA9IEludmFsaWRYTG9nUmVjUHRyOwogCQkJCQlYTG9nV3JpdGUoV3JpdGVScXN0LCB0 bGksIGZhbHNlKTsKIAkJCQkJTFdMb2NrUmVsZWFzZShXQUxXcml0ZUxvY2spOwotCQkJCQlwZ1dh bFVzYWdlLndhbF9idWZmZXJzX2Z1bGwrKzsKKwkJCQkJSU5TVFJfV0FMVVNBR0VfSU5DUih3YWxf YnVmZmVyc19mdWxsKTsKIAkJCQkJVFJBQ0VfUE9TVEdSRVNRTF9XQUxfQlVGRkVSX1dSSVRFX0RJ UlRZX0RPTkUoKTsKIAogCQkJCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9i dWZmZXIvYnVmbWdyLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYwppbmRl eCBkMWJhYmFmZjAyMy4uNTExZWZhYmE1MTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvYnVmZmVyL2J1Zm1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1n ci5jCkBAIC04MjYsNyArODI2LDcgQEAgUmVhZFJlY2VudEJ1ZmZlcihSZWxGaWxlTG9jYXRvciBy bG9jYXRvciwgRm9ya051bWJlciBmb3JrTnVtLCBCbG9ja051bWJlciBibG9ja04KIAkJewogCQkJ UGluTG9jYWxCdWZmZXIoYnVmSGRyLCB0cnVlKTsKIAotCQkJcGdCdWZmZXJVc2FnZS5sb2NhbF9i bGtzX2hpdCsrOworCQkJSU5TVFJfQlVGVVNBR0VfSU5DUihsb2NhbF9ibGtzX2hpdCk7CiAKIAkJ CXJldHVybiB0cnVlOwogCQl9CkBAIC04NDcsNyArODQ3LDcgQEAgUmVhZFJlY2VudEJ1ZmZlcihS ZWxGaWxlTG9jYXRvciBybG9jYXRvciwgRm9ya051bWJlciBmb3JrTnVtLCBCbG9ja051bWJlciBi bG9ja04KIAkJewogCQkJaWYgKEJ1ZmZlclRhZ3NFcXVhbCgmdGFnLCAmYnVmSGRyLT50YWcpKQog CQkJewotCQkJCXBnQnVmZmVyVXNhZ2Uuc2hhcmVkX2Jsa3NfaGl0Kys7CisJCQkJSU5TVFJfQlVG VVNBR0VfSU5DUihzaGFyZWRfYmxrc19oaXQpOwogCQkJCXJldHVybiB0cnVlOwogCQkJfQogCQkJ VW5waW5CdWZmZXIoYnVmSGRyKTsKQEAgLTEyNDgsMTQgKzEyNDgsMTQgQEAgUGluQnVmZmVyRm9y QmxvY2soUmVsYXRpb24gcmVsLAogCXsKIAkJYnVmSGRyID0gTG9jYWxCdWZmZXJBbGxvYyhzbWdy LCBmb3JrTnVtLCBibG9ja051bSwgZm91bmRQdHIpOwogCQlpZiAoKmZvdW5kUHRyKQotCQkJcGdC dWZmZXJVc2FnZS5sb2NhbF9ibGtzX2hpdCsrOworCQkJSU5TVFJfQlVGVVNBR0VfSU5DUihsb2Nh bF9ibGtzX2hpdCk7CiAJfQogCWVsc2UKIAl7CiAJCWJ1ZkhkciA9IEJ1ZmZlckFsbG9jKHNtZ3Is IHBlcnNpc3RlbmNlLCBmb3JrTnVtLCBibG9ja051bSwKIAkJCQkJCQkgc3RyYXRlZ3ksIGZvdW5k UHRyLCBpb19jb250ZXh0KTsKIAkJaWYgKCpmb3VuZFB0cikKLQkJCXBnQnVmZmVyVXNhZ2Uuc2hh cmVkX2Jsa3NfaGl0Kys7CisJCQlJTlNUUl9CVUZVU0FHRV9JTkNSKHNoYXJlZF9ibGtzX2hpdCk7 CiAJfQogCWlmIChyZWwpCiAJewpAQCAtMTk4OSw5ICsxOTg5LDkgQEAgQXN5bmNSZWFkQnVmZmVy cyhSZWFkQnVmZmVyc09wZXJhdGlvbiAqb3BlcmF0aW9uLCBpbnQgKm5ibG9ja3NfcHJvZ3Jlc3Mp CiAJCQkJCQkJCQkJICB0cnVlKTsKIAogCQlpZiAocGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVO Q0VfVEVNUCkKLQkJCXBnQnVmZmVyVXNhZ2UubG9jYWxfYmxrc19oaXQgKz0gMTsKKwkJCUlOU1RS X0JVRlVTQUdFX0lOQ1IobG9jYWxfYmxrc19oaXQpOwogCQllbHNlCi0JCQlwZ0J1ZmZlclVzYWdl LnNoYXJlZF9ibGtzX2hpdCArPSAxOworCQkJSU5TVFJfQlVGVVNBR0VfSU5DUihzaGFyZWRfYmxr c19oaXQpOwogCiAJCWlmIChvcGVyYXRpb24tPnJlbCkKIAkJCXBnc3RhdF9jb3VudF9idWZmZXJf aGl0KG9wZXJhdGlvbi0+cmVsKTsKQEAgLTIwNTksOSArMjA1OSw5IEBAIEFzeW5jUmVhZEJ1ZmZl cnMoUmVhZEJ1ZmZlcnNPcGVyYXRpb24gKm9wZXJhdGlvbiwgaW50ICpuYmxvY2tzX3Byb2dyZXNz KQogCQkJCQkJCQlpb19zdGFydCwgMSwgaW9fYnVmZmVyc19sZW4gKiBCTENLU1opOwogCiAJCWlm IChwZXJzaXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9URU1QKQotCQkJcGdCdWZmZXJVc2FnZS5s b2NhbF9ibGtzX3JlYWQgKz0gaW9fYnVmZmVyc19sZW47CisJCQlJTlNUUl9CVUZVU0FHRV9BREQo bG9jYWxfYmxrc19yZWFkLCBpb19idWZmZXJzX2xlbik7CiAJCWVsc2UKLQkJCXBnQnVmZmVyVXNh Z2Uuc2hhcmVkX2Jsa3NfcmVhZCArPSBpb19idWZmZXJzX2xlbjsKKwkJCUlOU1RSX0JVRlVTQUdF X0FERChzaGFyZWRfYmxrc19yZWFkLCBpb19idWZmZXJzX2xlbik7CiAKIAkJLyoKIAkJICogVHJh Y2sgdmFjdXVtIGNvc3Qgd2hlbiBpc3N1aW5nIElPLCBub3QgYWZ0ZXIgd2FpdGluZyBmb3IgaXQu CkBAIC0yOTU0LDcgKzI5NTQsNyBAQCBFeHRlbmRCdWZmZXJlZFJlbFNoYXJlZChCdWZmZXJNYW5h Z2VyUmVsYXRpb24gYm1yLAogCQlUZXJtaW5hdGVCdWZmZXJJTyhidWZfaGRyLCBmYWxzZSwgQk1f VkFMSUQsIHRydWUsIGZhbHNlKTsKIAl9CiAKLQlwZ0J1ZmZlclVzYWdlLnNoYXJlZF9ibGtzX3dy aXR0ZW4gKz0gZXh0ZW5kX2J5OworCUlOU1RSX0JVRlVTQUdFX0FERChzaGFyZWRfYmxrc193cml0 dGVuLCBleHRlbmRfYnkpOwogCiAJKmV4dGVuZGVkX2J5ID0gZXh0ZW5kX2J5OwogCkBAIC0zMDk5 LDcgKzMwOTksNyBAQCBNYXJrQnVmZmVyRGlydHkoQnVmZmVyIGJ1ZmZlcikKIAkgKi8KIAlpZiAo IShvbGRfYnVmX3N0YXRlICYgQk1fRElSVFkpKQogCXsKLQkJcGdCdWZmZXJVc2FnZS5zaGFyZWRf Ymxrc19kaXJ0aWVkKys7CisJCUlOU1RSX0JVRlVTQUdFX0lOQ1Ioc2hhcmVkX2Jsa3NfZGlydGll ZCk7CiAJCWlmIChWYWN1dW1Db3N0QWN0aXZlKQogCQkJVmFjdXVtQ29zdEJhbGFuY2UgKz0gVmFj dXVtQ29zdFBhZ2VEaXJ0eTsKIAl9CkBAIC00NTI4LDcgKzQ1MjgsNyBAQCBGbHVzaEJ1ZmZlcihC dWZmZXJEZXNjICpidWYsIFNNZ3JSZWxhdGlvbiByZWxuLCBJT09iamVjdCBpb19vYmplY3QsCiAJ cGdzdGF0X2NvdW50X2lvX29wX3RpbWUoSU9PQkpFQ1RfUkVMQVRJT04sIGlvX2NvbnRleHQsCiAJ CQkJCQkJSU9PUF9XUklURSwgaW9fc3RhcnQsIDEsIEJMQ0tTWik7CiAKLQlwZ0J1ZmZlclVzYWdl LnNoYXJlZF9ibGtzX3dyaXR0ZW4rKzsKKwlJTlNUUl9CVUZVU0FHRV9JTkNSKHNoYXJlZF9ibGtz X3dyaXR0ZW4pOwogCiAJLyoKIAkgKiBNYXJrIHRoZSBidWZmZXIgYXMgY2xlYW4gKHVubGVzcyBC TV9KVVNUX0RJUlRJRUQgaGFzIGJlY29tZSBzZXQpIGFuZApAQCAtNTY4OSw3ICs1Njg5LDcgQEAg TWFya0J1ZmZlckRpcnR5SGludChCdWZmZXIgYnVmZmVyLCBib29sIGJ1ZmZlcl9zdGQpCiAKIAkJ aWYgKGRpcnRpZWQpCiAJCXsKLQkJCXBnQnVmZmVyVXNhZ2Uuc2hhcmVkX2Jsa3NfZGlydGllZCsr OworCQkJSU5TVFJfQlVGVVNBR0VfSU5DUihzaGFyZWRfYmxrc19kaXJ0aWVkKTsKIAkJCWlmIChW YWN1dW1Db3N0QWN0aXZlKQogCQkJCVZhY3V1bUNvc3RCYWxhbmNlICs9IFZhY3V1bUNvc3RQYWdl RGlydHk7CiAJCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2xvY2Fs YnVmLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9sb2NhbGJ1Zi5jCmluZGV4IDA0YTU0 MDM3OWEyLi5lNjA1NGU3NDVlOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZm ZXIvbG9jYWxidWYuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9sb2NhbGJ1Zi5j CkBAIC0yMTcsNyArMjE3LDcgQEAgRmx1c2hMb2NhbEJ1ZmZlcihCdWZmZXJEZXNjICpidWZIZHIs IFNNZ3JSZWxhdGlvbiByZWxuKQogCS8qIE1hcmsgbm90LWRpcnR5ICovCiAJVGVybWluYXRlTG9j YWxCdWZmZXJJTyhidWZIZHIsIHRydWUsIDAsIGZhbHNlKTsKIAotCXBnQnVmZmVyVXNhZ2UubG9j YWxfYmxrc193cml0dGVuKys7CisJSU5TVFJfQlVGVVNBR0VfSU5DUihsb2NhbF9ibGtzX3dyaXR0 ZW4pOwogfQogCiBzdGF0aWMgQnVmZmVyCkBAIC00NzgsNyArNDc4LDcgQEAgRXh0ZW5kQnVmZmVy ZWRSZWxMb2NhbChCdWZmZXJNYW5hZ2VyUmVsYXRpb24gYm1yLAogCiAJKmV4dGVuZGVkX2J5ID0g ZXh0ZW5kX2J5OwogCi0JcGdCdWZmZXJVc2FnZS5sb2NhbF9ibGtzX3dyaXR0ZW4gKz0gZXh0ZW5k X2J5OworCUlOU1RSX0JVRlVTQUdFX0FERChsb2NhbF9ibGtzX3dyaXR0ZW4sIGV4dGVuZF9ieSk7 CiAKIAlyZXR1cm4gZmlyc3RfYmxvY2s7CiB9CkBAIC01MDksNyArNTA5LDcgQEAgTWFya0xvY2Fs QnVmZmVyRGlydHkoQnVmZmVyIGJ1ZmZlcikKIAlidWZfc3RhdGUgPSBwZ19hdG9taWNfcmVhZF91 NjQoJmJ1Zkhkci0+c3RhdGUpOwogCiAJaWYgKCEoYnVmX3N0YXRlICYgQk1fRElSVFkpKQotCQlw Z0J1ZmZlclVzYWdlLmxvY2FsX2Jsa3NfZGlydGllZCsrOworCQlJTlNUUl9CVUZVU0FHRV9JTkNS KGxvY2FsX2Jsa3NfZGlydGllZCk7CiAKIAlidWZfc3RhdGUgfD0gQk1fRElSVFk7CiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9idWZmaWxlLmMgYi9zcmMvYmFja2VuZC9z dG9yYWdlL2ZpbGUvYnVmZmlsZS5jCmluZGV4IGRkZjNhNDEwZDZmLi4xNzI2YjNhM2IzMyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2J1ZmZpbGUuYworKysgYi9zcmMvYmFj a2VuZC9zdG9yYWdlL2ZpbGUvYnVmZmlsZS5jCkBAIC00NzQsMTMgKzQ3NCwxMyBAQCBCdWZGaWxl TG9hZEJ1ZmZlcihCdWZGaWxlICpmaWxlKQogCWlmICh0cmFja19pb190aW1pbmcpCiAJewogCQlJ TlNUUl9USU1FX1NFVF9DVVJSRU5UKGlvX3RpbWUpOwotCQlJTlNUUl9USU1FX0FDQ1VNX0RJRkYo cGdCdWZmZXJVc2FnZS50ZW1wX2Jsa19yZWFkX3RpbWUsIGlvX3RpbWUsIGlvX3N0YXJ0KTsKKwkJ SU5TVFJfQlVGVVNBR0VfVElNRV9BQ0NVTV9ESUZGKHRlbXBfYmxrX3JlYWRfdGltZSwgaW9fdGlt ZSwgaW9fc3RhcnQpOwogCX0KIAogCS8qIHdlIGNob29zZSBub3QgdG8gYWR2YW5jZSBjdXJPZmZz ZXQgaGVyZSAqLwogCiAJaWYgKGZpbGUtPm5ieXRlcyA+IDApCi0JCXBnQnVmZmVyVXNhZ2UudGVt cF9ibGtzX3JlYWQrKzsKKwkJSU5TVFJfQlVGVVNBR0VfSU5DUih0ZW1wX2Jsa3NfcmVhZCk7CiB9 CiAKIC8qCkBAIC01NDgsMTMgKzU0OCwxMyBAQCBCdWZGaWxlRHVtcEJ1ZmZlcihCdWZGaWxlICpm aWxlKQogCQlpZiAodHJhY2tfaW9fdGltaW5nKQogCQl7CiAJCQlJTlNUUl9USU1FX1NFVF9DVVJS RU5UKGlvX3RpbWUpOwotCQkJSU5TVFJfVElNRV9BQ0NVTV9ESUZGKHBnQnVmZmVyVXNhZ2UudGVt cF9ibGtfd3JpdGVfdGltZSwgaW9fdGltZSwgaW9fc3RhcnQpOworCQkJSU5TVFJfQlVGVVNBR0Vf VElNRV9BQ0NVTV9ESUZGKHRlbXBfYmxrX3dyaXRlX3RpbWUsIGlvX3RpbWUsIGlvX3N0YXJ0KTsK IAkJfQogCiAJCWZpbGUtPmN1ck9mZnNldCArPSBieXRlc3Rvd3JpdGU7CiAJCXdwb3MgKz0gYnl0 ZXN0b3dyaXRlOwogCi0JCXBnQnVmZmVyVXNhZ2UudGVtcF9ibGtzX3dyaXR0ZW4rKzsKKwkJSU5T VFJfQlVGVVNBR0VfSU5DUih0ZW1wX2Jsa3Nfd3JpdHRlbik7CiAJfQogCWZpbGUtPmRpcnR5ID0g ZmFsc2U7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9p by5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2lvLmMKaW5kZXggMjhkZTI0 NTM4ZGMuLjllN2E4OGVjMGQwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0 eS9wZ3N0YXRfaW8uYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfaW8u YwpAQCAtMTM1LDE3ICsxMzUsMTcgQEAgcGdzdGF0X2NvdW50X2lvX29wX3RpbWUoSU9PYmplY3Qg aW9fb2JqZWN0LCBJT0NvbnRleHQgaW9fY29udGV4dCwgSU9PcCBpb19vcCwKIAkJCXsKIAkJCQlw Z3N0YXRfY291bnRfYnVmZmVyX3dyaXRlX3RpbWUoSU5TVFJfVElNRV9HRVRfTUlDUk9TRUMoaW9f dGltZSkpOwogCQkJCWlmIChpb19vYmplY3QgPT0gSU9PQkpFQ1RfUkVMQVRJT04pCi0JCQkJCUlO U1RSX1RJTUVfQUREKHBnQnVmZmVyVXNhZ2Uuc2hhcmVkX2Jsa193cml0ZV90aW1lLCBpb190aW1l KTsKKwkJCQkJSU5TVFJfQlVGVVNBR0VfVElNRV9BREQoc2hhcmVkX2Jsa193cml0ZV90aW1lLCBp b190aW1lKTsKIAkJCQllbHNlIGlmIChpb19vYmplY3QgPT0gSU9PQkpFQ1RfVEVNUF9SRUxBVElP TikKLQkJCQkJSU5TVFJfVElNRV9BREQocGdCdWZmZXJVc2FnZS5sb2NhbF9ibGtfd3JpdGVfdGlt ZSwgaW9fdGltZSk7CisJCQkJCUlOU1RSX0JVRlVTQUdFX1RJTUVfQUREKGxvY2FsX2Jsa193cml0 ZV90aW1lLCBpb190aW1lKTsKIAkJCX0KIAkJCWVsc2UgaWYgKGlvX29wID09IElPT1BfUkVBRCkK IAkJCXsKIAkJCQlwZ3N0YXRfY291bnRfYnVmZmVyX3JlYWRfdGltZShJTlNUUl9USU1FX0dFVF9N SUNST1NFQyhpb190aW1lKSk7CiAJCQkJaWYgKGlvX29iamVjdCA9PSBJT09CSkVDVF9SRUxBVElP TikKLQkJCQkJSU5TVFJfVElNRV9BREQocGdCdWZmZXJVc2FnZS5zaGFyZWRfYmxrX3JlYWRfdGlt ZSwgaW9fdGltZSk7CisJCQkJCUlOU1RSX0JVRlVTQUdFX1RJTUVfQUREKHNoYXJlZF9ibGtfcmVh ZF90aW1lLCBpb190aW1lKTsKIAkJCQllbHNlIGlmIChpb19vYmplY3QgPT0gSU9PQkpFQ1RfVEVN UF9SRUxBVElPTikKLQkJCQkJSU5TVFJfVElNRV9BREQocGdCdWZmZXJVc2FnZS5sb2NhbF9ibGtf cmVhZF90aW1lLCBpb190aW1lKTsKKwkJCQkJSU5TVFJfQlVGVVNBR0VfVElNRV9BREQobG9jYWxf YmxrX3JlYWRfdGltZSwgaW9fdGltZSk7CiAJCQl9CiAJCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1 bWVudC5oCmluZGV4IDk3NTlmM2VhNWQ4Li42NGU5MTM3M2I1ZCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2lu c3RydW1lbnQuaApAQCAtMTE5LDQgKzExOSwyMyBAQCBleHRlcm4gdm9pZCBCdWZmZXJVc2FnZUFj Y3VtRGlmZihCdWZmZXJVc2FnZSAqZHN0LAogZXh0ZXJuIHZvaWQgV2FsVXNhZ2VBY2N1bURpZmYo V2FsVXNhZ2UgKmRzdCwgY29uc3QgV2FsVXNhZ2UgKmFkZCwKIAkJCQkJCQkgIGNvbnN0IFdhbFVz YWdlICpzdWIpOwogCisjZGVmaW5lIElOU1RSX0JVRlVTQUdFX0lOQ1IoZmxkKSBkbyB7IFwKKwkJ cGdCdWZmZXJVc2FnZS5mbGQrKzsgXAorCX0gd2hpbGUoMCkKKyNkZWZpbmUgSU5TVFJfQlVGVVNB R0VfQUREKGZsZCx2YWwpIGRvIHsgXAorCQlwZ0J1ZmZlclVzYWdlLmZsZCArPSB2YWw7IFwKKwl9 IHdoaWxlKDApCisjZGVmaW5lIElOU1RSX0JVRlVTQUdFX1RJTUVfQUREKGZsZCx2YWwpIGRvIHsg XAorCUlOU1RSX1RJTUVfQUREKHBnQnVmZmVyVXNhZ2UuZmxkLCB2YWwpOyBcCisJfSB3aGlsZSAo MCkKKyNkZWZpbmUgSU5TVFJfQlVGVVNBR0VfVElNRV9BQ0NVTV9ESUZGKGZsZCxlbmR2YWwsc3Rh cnR2YWwpIGRvIHsgXAorCUlOU1RSX1RJTUVfQUNDVU1fRElGRihwZ0J1ZmZlclVzYWdlLmZsZCwg ZW5kdmFsLCBzdGFydHZhbCk7IFwKKwl9IHdoaWxlICgwKQorI2RlZmluZSBJTlNUUl9XQUxVU0FH RV9JTkNSKGZsZCkgZG8geyBcCisJCXBnV2FsVXNhZ2UuZmxkKys7IFwKKwl9IHdoaWxlKDApCisj ZGVmaW5lIElOU1RSX1dBTFVTQUdFX0FERChmbGQsdmFsKSBkbyB7IFwKKwkJcGdXYWxVc2FnZS5m bGQgKz0gdmFsOyBcCisJfSB3aGlsZSgwKQorCiAjZW5kaWYJCQkJCQkJLyogSU5TVFJVTUVOVF9I ICovCi0tIAoyLjQ3LjEKCg== --000000000000702390064b8a3016 Content-Type: application/octet-stream; name="v6-0006-Convert-remaining-users-of-pgBufferUsage-to-use-I.patch" Content-Disposition: attachment; filename="v6-0006-Convert-remaining-users-of-pgBufferUsage-to-use-I.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm02xadw5 RnJvbSBjNDUyMTIyYzAwZDY3N2QzMjc1MmIyMjI1YjRiYzNkYjUxNzY4NDYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBU dWUsIDkgU2VwIDIwMjUgMDI6MjY6NTYgLTA3MDAKU3ViamVjdDogW1BBVENIIHY2IDYvOF0gQ29u dmVydCByZW1haW5pbmcgdXNlcnMgb2YgcGdCdWZmZXJVc2FnZSB0byB1c2UKIEluc3RyU3RhcnQv SW5zdHJTdG9wLCBkcm9wIHRoZSBnbG9iYWwKCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jIHwgMTUgKysrKysrLS0tLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbmFs eXplLmMgICAgICAgfCAzMSArKysrKysrKysrKystLS0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL2V4cGxhaW4uYyAgICAgICB8IDI2ICsrKysrKystLS0tLS0tLS0tLS0tLQogc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZXhwbGFpbl9kci5jICAgIHwgMzEgKysrKysrKysrKysrKy0tLS0tLS0t LS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMgICAgICAgfCAyNyArKysrKysrKy0t LS0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYyAgICB8IDM1ICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1l bnQuaCAgICB8ICA4ICstLS0tLS0KIDcgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwg MTEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zh Y3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCA0 YmUyNjdmZjY1Ny4uNTFmODZmZjFlZjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMKQEAgLTYzOCw4ICs2MzgsNyBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBjb25z dCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCVRpbWVzdGFtcFR6IHN0YXJ0dGltZSA9IDA7CiAJUGdT dGF0X0NvdW50ZXIgc3RhcnRyZWFkdGltZSA9IDAsCiAJCQkJc3RhcnR3cml0ZXRpbWUgPSAwOwot CVdhbFVzYWdlCXN0YXJ0d2FsdXNhZ2UgPSBwZ1dhbFVzYWdlOwotCUJ1ZmZlclVzYWdlIHN0YXJ0 YnVmZmVydXNhZ2UgPSBwZ0J1ZmZlclVzYWdlOworCUluc3RydW1lbnRhdGlvbiAqaW5zdHIgPSBO VUxMOwogCUVycm9yQ29udGV4dENhbGxiYWNrIGVycmNhbGxiYWNrOwogCWNoYXIJICAqKmluZG5h bWVzID0gTlVMTDsKIAlTaXplCQlkZWFkX2l0ZW1zX21heF9ieXRlcyA9IDA7CkBAIC02NTUsNiAr NjU0LDggQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgY29uc3QgVmFjdXVtUGFyYW1z IHBhcmFtcywKIAkJCXN0YXJ0cmVhZHRpbWUgPSBwZ1N0YXRCbG9ja1JlYWRUaW1lOwogCQkJc3Rh cnR3cml0ZXRpbWUgPSBwZ1N0YXRCbG9ja1dyaXRlVGltZTsKIAkJfQorCQlpbnN0ciA9IEluc3Ry QWxsb2MoSU5TVFJVTUVOVF9CVUZGRVJTIHwgSU5TVFJVTUVOVF9XQUwpOworCQlJbnN0clN0YXJ0 KGluc3RyKTsKIAl9CiAKIAkvKiBVc2VkIGZvciBpbnN0cnVtZW50YXRpb24gYW5kIHN0YXRzIHJl cG9ydCAqLwpAQCAtOTgwLDE0ICs5ODEsMTQgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJl bCwgY29uc3QgVmFjdXVtUGFyYW1zIHBhcmFtcywKIAl7CiAJCVRpbWVzdGFtcFR6IGVuZHRpbWUg PSBHZXRDdXJyZW50VGltZXN0YW1wKCk7CiAKKwkJSW5zdHJTdG9wKGluc3RyLCB0cnVlKTsKKwog CQlpZiAodmVyYm9zZSB8fCBwYXJhbXMubG9nX3ZhY3V1bV9taW5fZHVyYXRpb24gPT0gMCB8fAog CQkJVGltZXN0YW1wRGlmZmVyZW5jZUV4Y2VlZHMoc3RhcnR0aW1lLCBlbmR0aW1lLAogCQkJCQkJ CQkJICAgcGFyYW1zLmxvZ192YWN1dW1fbWluX2R1cmF0aW9uKSkKIAkJewogCQkJbG9uZwkJc2Vj c19kdXI7CiAJCQlpbnQJCQl1c2Vjc19kdXI7Ci0JCQlXYWxVc2FnZQl3YWx1c2FnZTsKLQkJCUJ1 ZmZlclVzYWdlIGJ1ZmZlcnVzYWdlOwogCQkJU3RyaW5nSW5mb0RhdGEgYnVmOwogCQkJY2hhcgkg ICAqbXNnZm10OwogCQkJaW50MzIJCWRpZmY7CkBAIC05OTYsMTIgKzk5NywxMCBAQCBoZWFwX3Zh Y3V1bV9yZWwoUmVsYXRpb24gcmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCQkJaW50 NjQJCXRvdGFsX2Jsa3NfaGl0OwogCQkJaW50NjQJCXRvdGFsX2Jsa3NfcmVhZDsKIAkJCWludDY0 CQl0b3RhbF9ibGtzX2RpcnRpZWQ7CisJCQlCdWZmZXJVc2FnZSBidWZmZXJ1c2FnZSA9IGluc3Ry LT5zdGFjay0+YnVmdXNhZ2U7CisJCQlXYWxVc2FnZQl3YWx1c2FnZSA9IGluc3RyLT5zdGFjay0+ d2FsdXNhZ2U7CiAKIAkJCVRpbWVzdGFtcERpZmZlcmVuY2Uoc3RhcnR0aW1lLCBlbmR0aW1lLCAm c2Vjc19kdXIsICZ1c2Vjc19kdXIpOwotCQkJbWVtc2V0KCZ3YWx1c2FnZSwgMCwgc2l6ZW9mKFdh bFVzYWdlKSk7Ci0JCQlXYWxVc2FnZUFjY3VtRGlmZigmd2FsdXNhZ2UsICZwZ1dhbFVzYWdlLCAm c3RhcnR3YWx1c2FnZSk7Ci0JCQltZW1zZXQoJmJ1ZmZlcnVzYWdlLCAwLCBzaXplb2YoQnVmZmVy VXNhZ2UpKTsKLQkJCUJ1ZmZlclVzYWdlQWNjdW1EaWZmKCZidWZmZXJ1c2FnZSwgJnBnQnVmZmVy VXNhZ2UsICZzdGFydGJ1ZmZlcnVzYWdlKTsKIAogCQkJdG90YWxfYmxrc19oaXQgPSBidWZmZXJ1 c2FnZS5zaGFyZWRfYmxrc19oaXQgKwogCQkJCWJ1ZmZlcnVzYWdlLmxvY2FsX2Jsa3NfaGl0Owpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvYW5hbHl6ZS5jCmluZGV4IGE0ODM0MjQxNTJjLi40N2NhYzc1YmMyMCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2FuYWx5emUuYwpAQCAtMzA4LDkgKzMwOCw3IEBAIGRvX2FuYWx5emVfcmVsKFJlbGF0 aW9uIG9uZXJlbCwgY29uc3QgVmFjdXVtUGFyYW1zIHBhcmFtcywKIAlPaWQJCQlzYXZlX3VzZXJp ZDsKIAlpbnQJCQlzYXZlX3NlY19jb250ZXh0OwogCWludAkJCXNhdmVfbmVzdGxldmVsOwotCVdh bFVzYWdlCXN0YXJ0d2FsdXNhZ2UgPSBwZ1dhbFVzYWdlOwotCUJ1ZmZlclVzYWdlIHN0YXJ0YnVm ZmVydXNhZ2UgPSBwZ0J1ZmZlclVzYWdlOwotCUJ1ZmZlclVzYWdlIGJ1ZmZlcnVzYWdlOworCUlu c3RydW1lbnRhdGlvbiAqaW5zdHIgPSBOVUxMOwogCVBnU3RhdF9Db3VudGVyIHN0YXJ0cmVhZHRp bWUgPSAwOwogCVBnU3RhdF9Db3VudGVyIHN0YXJ0d3JpdGV0aW1lID0gMDsKIApAQCAtMzYxLDYg KzM1OSw5IEBAIGRvX2FuYWx5emVfcmVsKFJlbGF0aW9uIG9uZXJlbCwgY29uc3QgVmFjdXVtUGFy YW1zIHBhcmFtcywKIAkJfQogCiAJCXBnX3J1c2FnZV9pbml0KCZydTApOworCisJCWluc3RyID0g SW5zdHJBbGxvYyhJTlNUUlVNRU5UX0JVRkZFUlMgfCBJTlNUUlVNRU5UX1dBTCk7CisJCUluc3Ry U3RhcnQoaW5zdHIpOwogCX0KIAogCS8qIFVzZWQgZm9yIGluc3RydW1lbnRhdGlvbiBhbmQgc3Rh dHMgcmVwb3J0ICovCkBAIC03NDEsMTIgKzc0MiwxMyBAQCBkb19hbmFseXplX3JlbChSZWxhdGlv biBvbmVyZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJewogCQlUaW1lc3RhbXBUeiBl bmR0aW1lID0gR2V0Q3VycmVudFRpbWVzdGFtcCgpOwogCisJCUluc3RyU3RvcChpbnN0ciwgdHJ1 ZSk7CisKIAkJaWYgKHZlcmJvc2UgfHwgcGFyYW1zLmxvZ19hbmFseXplX21pbl9kdXJhdGlvbiA9 PSAwIHx8CiAJCQlUaW1lc3RhbXBEaWZmZXJlbmNlRXhjZWVkcyhzdGFydHRpbWUsIGVuZHRpbWUs CiAJCQkJCQkJCQkgICBwYXJhbXMubG9nX2FuYWx5emVfbWluX2R1cmF0aW9uKSkKIAkJewogCQkJ bG9uZwkJZGVsYXlfaW5fbXM7Ci0JCQlXYWxVc2FnZQl3YWx1c2FnZTsKIAkJCWRvdWJsZQkJcmVh ZF9yYXRlID0gMDsKIAkJCWRvdWJsZQkJd3JpdGVfcmF0ZSA9IDA7CiAJCQljaGFyCSAgICptc2dm bXQ7CkBAIC03NTQsMTggKzc1NiwxNSBAQCBkb19hbmFseXplX3JlbChSZWxhdGlvbiBvbmVyZWws IGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJCQlpbnQ2NAkJdG90YWxfYmxrc19oaXQ7CiAJ CQlpbnQ2NAkJdG90YWxfYmxrc19yZWFkOwogCQkJaW50NjQJCXRvdGFsX2Jsa3NfZGlydGllZDsK LQotCQkJbWVtc2V0KCZidWZmZXJ1c2FnZSwgMCwgc2l6ZW9mKEJ1ZmZlclVzYWdlKSk7Ci0JCQlC dWZmZXJVc2FnZUFjY3VtRGlmZigmYnVmZmVydXNhZ2UsICZwZ0J1ZmZlclVzYWdlLCAmc3RhcnRi dWZmZXJ1c2FnZSk7Ci0JCQltZW1zZXQoJndhbHVzYWdlLCAwLCBzaXplb2YoV2FsVXNhZ2UpKTsK LQkJCVdhbFVzYWdlQWNjdW1EaWZmKCZ3YWx1c2FnZSwgJnBnV2FsVXNhZ2UsICZzdGFydHdhbHVz YWdlKTsKLQotCQkJdG90YWxfYmxrc19oaXQgPSBidWZmZXJ1c2FnZS5zaGFyZWRfYmxrc19oaXQg KwotCQkJCWJ1ZmZlcnVzYWdlLmxvY2FsX2Jsa3NfaGl0OwotCQkJdG90YWxfYmxrc19yZWFkID0g YnVmZmVydXNhZ2Uuc2hhcmVkX2Jsa3NfcmVhZCArCi0JCQkJYnVmZmVydXNhZ2UubG9jYWxfYmxr c19yZWFkOwotCQkJdG90YWxfYmxrc19kaXJ0aWVkID0gYnVmZmVydXNhZ2Uuc2hhcmVkX2Jsa3Nf ZGlydGllZCArCi0JCQkJYnVmZmVydXNhZ2UubG9jYWxfYmxrc19kaXJ0aWVkOworCQkJQnVmZmVy VXNhZ2UgYnVmdXNhZ2UgPSBpbnN0ci0+c3RhY2stPmJ1ZnVzYWdlOworCQkJV2FsVXNhZ2UJd2Fs dXNhZ2UgPSBpbnN0ci0+c3RhY2stPndhbHVzYWdlOworCisJCQl0b3RhbF9ibGtzX2hpdCA9IGJ1 ZnVzYWdlLnNoYXJlZF9ibGtzX2hpdCArCisJCQkJYnVmdXNhZ2UubG9jYWxfYmxrc19oaXQ7CisJ CQl0b3RhbF9ibGtzX3JlYWQgPSBidWZ1c2FnZS5zaGFyZWRfYmxrc19yZWFkICsKKwkJCQlidWZ1 c2FnZS5sb2NhbF9ibGtzX3JlYWQ7CisJCQl0b3RhbF9ibGtzX2RpcnRpZWQgPSBidWZ1c2FnZS5z aGFyZWRfYmxrc19kaXJ0aWVkICsKKwkJCQlidWZ1c2FnZS5sb2NhbF9ibGtzX2RpcnRpZWQ7CiAK IAkJCS8qCiAJCQkgKiBXZSBkbyBub3QgZXhwZWN0IGFuIGFuYWx5emUgdG8gdGFrZSA+IDI1IGRh eXMgYW5kIGl0IHNpbXBsaWZpZXMKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4 cGxhaW4uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwppbmRleCAxNzQwNWFhODYy MS4uYjM1YWVhMjQ2Y2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4u YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKQEAgLTMyMiwxNCArMzIyLDE2 IEBAIHN0YW5kYXJkX0V4cGxhaW5PbmVRdWVyeShRdWVyeSAqcXVlcnksIGludCBjdXJzb3JPcHRp b25zLAogCQkJCQkJIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52KQogewogCVBsYW5uZWRTdG10 ICpwbGFuOwotCWluc3RyX3RpbWUJcGxhbnN0YXJ0LAotCQkJCXBsYW5kdXJhdGlvbjsKLQlCdWZm ZXJVc2FnZSBidWZ1c2FnZV9zdGFydCwKLQkJCQlidWZ1c2FnZTsKKwlJbnN0cnVtZW50YXRpb24g Kmluc3RyID0gTlVMTDsKIAlNZW1vcnlDb250ZXh0Q291bnRlcnMgbWVtX2NvdW50ZXJzOwogCU1l bW9yeUNvbnRleHQgcGxhbm5lcl9jdHggPSBOVUxMOwogCU1lbW9yeUNvbnRleHQgc2F2ZWRfY3R4 ID0gTlVMTDsKIAorCWlmIChlcy0+YnVmZmVycykKKwkJaW5zdHIgPSBJbnN0ckFsbG9jKElOU1RS VU1FTlRfVElNRVIgfCBJTlNUUlVNRU5UX0JVRkZFUlMpOworCWVsc2UKKwkJaW5zdHIgPSBJbnN0 ckFsbG9jKElOU1RSVU1FTlRfVElNRVIpOworCiAJaWYgKGVzLT5tZW1vcnkpCiAJewogCQkvKgpA QCAtMzQ2LDE1ICszNDgsMTIgQEAgc3RhbmRhcmRfRXhwbGFpbk9uZVF1ZXJ5KFF1ZXJ5ICpxdWVy eSwgaW50IGN1cnNvck9wdGlvbnMsCiAJCXNhdmVkX2N0eCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hU byhwbGFubmVyX2N0eCk7CiAJfQogCi0JaWYgKGVzLT5idWZmZXJzKQotCQlidWZ1c2FnZV9zdGFy dCA9IHBnQnVmZmVyVXNhZ2U7Ci0JSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChwbGFuc3RhcnQpOwor CUluc3RyU3RhcnQoaW5zdHIpOwogCiAJLyogcGxhbiB0aGUgcXVlcnkgKi8KIAlwbGFuID0gcGdf cGxhbl9xdWVyeShxdWVyeSwgcXVlcnlTdHJpbmcsIGN1cnNvck9wdGlvbnMsIHBhcmFtcywgZXMp OwogCi0JSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChwbGFuZHVyYXRpb24pOwotCUlOU1RSX1RJTUVf U1VCVFJBQ1QocGxhbmR1cmF0aW9uLCBwbGFuc3RhcnQpOworCUluc3RyU3RvcChpbnN0ciwgdHJ1 ZSk7CiAKIAlpZiAoZXMtPm1lbW9yeSkKIAl7CkBAIC0zNjIsMTYgKzM2MSw5IEBAIHN0YW5kYXJk X0V4cGxhaW5PbmVRdWVyeShRdWVyeSAqcXVlcnksIGludCBjdXJzb3JPcHRpb25zLAogCQlNZW1v cnlDb250ZXh0TWVtQ29uc3VtZWQocGxhbm5lcl9jdHgsICZtZW1fY291bnRlcnMpOwogCX0KIAot CS8qIGNhbGMgZGlmZmVyZW5jZXMgb2YgYnVmZmVyIGNvdW50ZXJzLiAqLwotCWlmIChlcy0+YnVm ZmVycykKLQl7Ci0JCW1lbXNldCgmYnVmdXNhZ2UsIDAsIHNpemVvZihCdWZmZXJVc2FnZSkpOwot CQlCdWZmZXJVc2FnZUFjY3VtRGlmZigmYnVmdXNhZ2UsICZwZ0J1ZmZlclVzYWdlLCAmYnVmdXNh Z2Vfc3RhcnQpOwotCX0KLQogCS8qIHJ1biBpdCAoaWYgbmVlZGVkKSBhbmQgcHJvZHVjZSBvdXRw dXQgKi8KIAlFeHBsYWluT25lUGxhbihwbGFuLCBpbnRvLCBlcywgcXVlcnlTdHJpbmcsIHBhcmFt cywgcXVlcnlFbnYsCi0JCQkJICAgJnBsYW5kdXJhdGlvbiwgKGVzLT5idWZmZXJzID8gJmJ1ZnVz YWdlIDogTlVMTCksCisJCQkJICAgJmluc3RyLT50b3RhbCwgKGVzLT5idWZmZXJzID8gJmluc3Ry LT5zdGFjay0+YnVmdXNhZ2UgOiBOVUxMKSwKIAkJCQkgICBlcy0+bWVtb3J5ID8gJm1lbV9jb3Vu dGVycyA6IE5VTEwpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBs YWluX2RyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluX2RyLmMKaW5kZXggM2M5NjA2 MWNmMzIuLjllNGNkOGFkN2QwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBs YWluX2RyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbl9kci5jCkBAIC0xMTAs MTUgKzExMCwyMCBAQCBzZXJpYWxpemVBbmFseXplUmVjZWl2ZShUdXBsZVRhYmxlU2xvdCAqc2xv dCwgRGVzdFJlY2VpdmVyICpzZWxmKQogCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKIAlTdHJp bmdJbmZvCWJ1ZiA9ICZteVN0YXRlLT5idWY7CiAJaW50CQkJbmF0dHMgPSB0eXBlaW5mby0+bmF0 dHM7Ci0JaW5zdHJfdGltZQlzdGFydCwKLQkJCQllbmQ7Ci0JQnVmZmVyVXNhZ2UgaW5zdHJfc3Rh cnQ7CisJSW5zdHJ1bWVudGF0aW9uICppbnN0ciA9IE5VTEw7CiAKIAkvKiBvbmx5IG1lYXN1cmUg dGltZSwgYnVmZmVycyBpZiByZXF1ZXN0ZWQgKi8KLQlpZiAobXlTdGF0ZS0+ZXMtPnRpbWluZykK LQkJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChzdGFydCk7Ci0JaWYgKG15U3RhdGUtPmVzLT5idWZm ZXJzKQotCQlpbnN0cl9zdGFydCA9IHBnQnVmZmVyVXNhZ2U7CisJaWYgKG15U3RhdGUtPmVzLT50 aW1pbmcgfHwgbXlTdGF0ZS0+ZXMtPmJ1ZmZlcnMpCisJeworCQlJbnN0cnVtZW50T3B0aW9uIGlu c3RydW1lbnRfb3B0aW9ucyA9IDA7CisKKwkJaWYgKG15U3RhdGUtPmVzLT50aW1pbmcpCisJCQlp bnN0cnVtZW50X29wdGlvbnMgfD0gSU5TVFJVTUVOVF9USU1FUjsKKwkJaWYgKG15U3RhdGUtPmVz LT5idWZmZXJzKQorCQkJaW5zdHJ1bWVudF9vcHRpb25zIHw9IElOU1RSVU1FTlRfQlVGRkVSUzsK KwkJaW5zdHIgPSBJbnN0ckFsbG9jKGluc3RydW1lbnRfb3B0aW9ucyk7CisJCUluc3RyU3RhcnQo aW5zdHIpOworCX0KIAogCS8qIFNldCBvciB1cGRhdGUgbXkgZGVyaXZlZCBhdHRyaWJ1dGUgaW5m bywgaWYgbmVlZGVkICovCiAJaWYgKG15U3RhdGUtPmF0dHJpbmZvICE9IHR5cGVpbmZvIHx8IG15 U3RhdGUtPm5hdHRycyAhPSBuYXR0cykKQEAgLTE4NiwxOCArMTkxLDE2IEBAIHNlcmlhbGl6ZUFu YWx5emVSZWNlaXZlKFR1cGxlVGFibGVTbG90ICpzbG90LCBEZXN0UmVjZWl2ZXIgKnNlbGYpCiAJ TWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwogCU1lbW9yeUNvbnRleHRSZXNldCht eVN0YXRlLT50bXBjb250ZXh0KTsKIAorCWlmIChteVN0YXRlLT5lcy0+dGltaW5nIHx8IG15U3Rh dGUtPmVzLT5idWZmZXJzKQorCQlJbnN0clN0b3AoaW5zdHIsIHRydWUpOworCiAJLyogVXBkYXRl IHRpbWluZyBkYXRhICovCiAJaWYgKG15U3RhdGUtPmVzLT50aW1pbmcpCi0JewotCQlJTlNUUl9U SU1FX1NFVF9DVVJSRU5UKGVuZCk7Ci0JCUlOU1RSX1RJTUVfQUNDVU1fRElGRihteVN0YXRlLT5t ZXRyaWNzLnRpbWVTcGVudCwgZW5kLCBzdGFydCk7Ci0JfQorCQlJTlNUUl9USU1FX0FERChteVN0 YXRlLT5tZXRyaWNzLnRpbWVTcGVudCwgaW5zdHItPnRvdGFsKTsKIAogCS8qIFVwZGF0ZSBidWZm ZXIgbWV0cmljcyAqLwogCWlmIChteVN0YXRlLT5lcy0+YnVmZmVycykKLQkJQnVmZmVyVXNhZ2VB Y2N1bURpZmYoJm15U3RhdGUtPm1ldHJpY3MuYnVmZmVyVXNhZ2UsCi0JCQkJCQkJICZwZ0J1ZmZl clVzYWdlLAotCQkJCQkJCSAmaW5zdHJfc3RhcnQpOworCQlCdWZmZXJVc2FnZUFkZCgmbXlTdGF0 ZS0+bWV0cmljcy5idWZmZXJVc2FnZSwgJmluc3RyLT5zdGFjay0+YnVmdXNhZ2UpOwogCiAJcmV0 dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKaW5kZXggNWI4NmE3Mjc1ODcuLjJhMWE2 ZDFjZjJlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCkBAIC01NzgsMTMgKzU3OCwxNiBAQCBFeHBs YWluRXhlY3V0ZVF1ZXJ5KEV4ZWN1dGVTdG10ICpleGVjc3RtdCwgSW50b0NsYXVzZSAqaW50bywg RXhwbGFpblN0YXRlICplcywKIAlMaXN0Q2VsbCAgICpwOwogCVBhcmFtTGlzdEluZm8gcGFyYW1M SSA9IE5VTEw7CiAJRVN0YXRlCSAgICplc3RhdGUgPSBOVUxMOwotCWluc3RyX3RpbWUJcGxhbnN0 YXJ0OwotCWluc3RyX3RpbWUJcGxhbmR1cmF0aW9uOwotCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdlX3N0 YXJ0LAotCQkJCWJ1ZnVzYWdlOworCUluc3RydW1lbnRhdGlvbiAqaW5zdHIgPSBOVUxMOwogCU1l bW9yeUNvbnRleHRDb3VudGVycyBtZW1fY291bnRlcnM7CiAJTWVtb3J5Q29udGV4dCBwbGFubmVy X2N0eCA9IE5VTEw7CiAJTWVtb3J5Q29udGV4dCBzYXZlZF9jdHggPSBOVUxMOworCWludAkJCWlu c3RydW1lbnRfb3B0aW9ucyA9IElOU1RSVU1FTlRfVElNRVI7CisKKwlpZiAoZXMtPmJ1ZmZlcnMp CisJCWluc3RydW1lbnRfb3B0aW9ucyB8PSBJTlNUUlVNRU5UX0JVRkZFUlM7CisKKwlpbnN0ciA9 IEluc3RyQWxsb2MoaW5zdHJ1bWVudF9vcHRpb25zKTsKIAogCWlmIChlcy0+bWVtb3J5KQogCXsK QEAgLTU5Niw5ICs1OTksNyBAQCBFeHBsYWluRXhlY3V0ZVF1ZXJ5KEV4ZWN1dGVTdG10ICpleGVj c3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICplcywKIAkJc2F2ZWRfY3R4ID0g TWVtb3J5Q29udGV4dFN3aXRjaFRvKHBsYW5uZXJfY3R4KTsKIAl9CiAKLQlpZiAoZXMtPmJ1ZmZl cnMpCi0JCWJ1ZnVzYWdlX3N0YXJ0ID0gcGdCdWZmZXJVc2FnZTsKLQlJTlNUUl9USU1FX1NFVF9D VVJSRU5UKHBsYW5zdGFydCk7CisJSW5zdHJTdGFydChpbnN0cik7CiAKIAkvKiBMb29rIGl0IHVw IGluIHRoZSBoYXNoIHRhYmxlICovCiAJZW50cnkgPSBGZXRjaFByZXBhcmVkU3RhdGVtZW50KGV4 ZWNzdG10LT5uYW1lLCB0cnVlKTsKQEAgLTYzMyw4ICs2MzQsNyBAQCBFeHBsYWluRXhlY3V0ZVF1 ZXJ5KEV4ZWN1dGVTdG10ICpleGVjc3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRl ICplcywKIAljcGxhbiA9IEdldENhY2hlZFBsYW4oZW50cnktPnBsYW5zb3VyY2UsIHBhcmFtTEks CiAJCQkJCQkgIEN1cnJlbnRSZXNvdXJjZU93bmVyLCBwc3RhdGUtPnBfcXVlcnlFbnYpOwogCi0J SU5TVFJfVElNRV9TRVRfQ1VSUkVOVChwbGFuZHVyYXRpb24pOwotCUlOU1RSX1RJTUVfU1VCVFJB Q1QocGxhbmR1cmF0aW9uLCBwbGFuc3RhcnQpOworCUluc3RyU3RvcChpbnN0ciwgdHJ1ZSk7CiAK IAlpZiAoZXMtPm1lbW9yeSkKIAl7CkBAIC02NDIsMTMgKzY0Miw2IEBAIEV4cGxhaW5FeGVjdXRl UXVlcnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3Rh dGUgKmVzLAogCQlNZW1vcnlDb250ZXh0TWVtQ29uc3VtZWQocGxhbm5lcl9jdHgsICZtZW1fY291 bnRlcnMpOwogCX0KIAotCS8qIGNhbGMgZGlmZmVyZW5jZXMgb2YgYnVmZmVyIGNvdW50ZXJzLiAq LwotCWlmIChlcy0+YnVmZmVycykKLQl7Ci0JCW1lbXNldCgmYnVmdXNhZ2UsIDAsIHNpemVvZihC dWZmZXJVc2FnZSkpOwotCQlCdWZmZXJVc2FnZUFjY3VtRGlmZigmYnVmdXNhZ2UsICZwZ0J1ZmZl clVzYWdlLCAmYnVmdXNhZ2Vfc3RhcnQpOwotCX0KLQogCXBsYW5fbGlzdCA9IGNwbGFuLT5zdG10 X2xpc3Q7CiAKIAkvKiBFeHBsYWluIGVhY2ggcXVlcnkgKi8KQEAgLTY1OCw3ICs2NTEsNyBAQCBF eHBsYWluRXhlY3V0ZVF1ZXJ5KEV4ZWN1dGVTdG10ICpleGVjc3RtdCwgSW50b0NsYXVzZSAqaW50 bywgRXhwbGFpblN0YXRlICplcywKIAogCQlpZiAocHN0bXQtPmNvbW1hbmRUeXBlICE9IENNRF9V VElMSVRZKQogCQkJRXhwbGFpbk9uZVBsYW4ocHN0bXQsIGludG8sIGVzLCBxdWVyeV9zdHJpbmcs IHBhcmFtTEksIHBzdGF0ZS0+cF9xdWVyeUVudiwKLQkJCQkJCSAgICZwbGFuZHVyYXRpb24sIChl cy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAorCQkJCQkJICAgJmluc3RyLT50b3RhbCwg KGVzLT5idWZmZXJzID8gJmluc3RyLT5zdGFjay0+YnVmdXNhZ2UgOiBOVUxMKSwKIAkJCQkJCSAg IGVzLT5tZW1vcnkgPyAmbWVtX2NvdW50ZXJzIDogTlVMTCk7CiAJCWVsc2UKIAkJCUV4cGxhaW5P bmVVdGlsaXR5KHBzdG10LT51dGlsaXR5U3RtdCwgaW50bywgZXMsIHBzdGF0ZSwgcGFyYW1MSSk7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKaW5kZXggMTIyM2E1OTg3OWYuLmZjN2FjODU0MzRi IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKKysrIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvaW5zdHJ1bWVudC5jCkBAIC0xOSwxMiArMTksMTAgQEAKICNpbmNs dWRlICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL3Jlc293bmVyLmgiCiAKLUJ1 ZmZlclVzYWdlIHBnQnVmZmVyVXNhZ2U7CiBXYWxVc2FnZQlwZ1dhbFVzYWdlOwogSW5zdHJTdGFj awlUb3BJbnN0clN0YWNrOwogSW5zdHJTdGFjayAqQ3VycmVudEluc3RyU3RhY2sgPSAmVG9wSW5z dHJTdGFjazsKIAotc3RhdGljIHZvaWQgQnVmZmVyVXNhZ2VBZGQoQnVmZmVyVXNhZ2UgKmRzdCwg Y29uc3QgQnVmZmVyVXNhZ2UgKmFkZCk7CiBzdGF0aWMgdm9pZCBXYWxVc2FnZUFkZChXYWxVc2Fn ZSAqZHN0LCBXYWxVc2FnZSAqYWRkKTsKIAogc3RhdGljIHZvaWQgSW5zdHJGaW5hbGl6ZU5vZGVz T25BYm9ydChJbnN0clN0YWNrICpzdGFjayk7CkBAIC01NDcsNyArNTQ1LDYgQEAgSW5zdHJBY2N1 bVBhcmFsbGVsUXVlcnkoQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2Up CiAJQnVmZmVyVXNhZ2VBZGQoJkN1cnJlbnRJbnN0clN0YWNrLT5idWZ1c2FnZSwgYnVmdXNhZ2Up OwogCVdhbFVzYWdlQWRkKCZDdXJyZW50SW5zdHJTdGFjay0+d2FsdXNhZ2UsIHdhbHVzYWdlKTsK IAotCUJ1ZmZlclVzYWdlQWRkKCZwZ0J1ZmZlclVzYWdlLCBidWZ1c2FnZSk7CiAJV2FsVXNhZ2VB ZGQoJnBnV2FsVXNhZ2UsIHdhbHVzYWdlKTsKIH0KIApAQCAtNTYyLDcgKzU1OSw3IEBAIEluc3Ry U3RhY2tBZGQoSW5zdHJTdGFjayAqZHN0LCBJbnN0clN0YWNrICphZGQpCiB9CiAKIC8qIGRzdCAr PSBhZGQgKi8KLXN0YXRpYyB2b2lkCit2b2lkCiBCdWZmZXJVc2FnZUFkZChCdWZmZXJVc2FnZSAq ZHN0LCBjb25zdCBCdWZmZXJVc2FnZSAqYWRkKQogewogCWRzdC0+c2hhcmVkX2Jsa3NfaGl0ICs9 IGFkZC0+c2hhcmVkX2Jsa3NfaGl0OwpAQCAtNTgzLDM2ICs1ODAsNiBAQCBCdWZmZXJVc2FnZUFk ZChCdWZmZXJVc2FnZSAqZHN0LCBjb25zdCBCdWZmZXJVc2FnZSAqYWRkKQogCUlOU1RSX1RJTUVf QUREKGRzdC0+dGVtcF9ibGtfd3JpdGVfdGltZSwgYWRkLT50ZW1wX2Jsa193cml0ZV90aW1lKTsK IH0KIAotLyogZHN0ICs9IGFkZCAtIHN1YiAqLwotdm9pZAotQnVmZmVyVXNhZ2VBY2N1bURpZmYo QnVmZmVyVXNhZ2UgKmRzdCwKLQkJCQkJIGNvbnN0IEJ1ZmZlclVzYWdlICphZGQsCi0JCQkJCSBj b25zdCBCdWZmZXJVc2FnZSAqc3ViKQotewotCWRzdC0+c2hhcmVkX2Jsa3NfaGl0ICs9IGFkZC0+ c2hhcmVkX2Jsa3NfaGl0IC0gc3ViLT5zaGFyZWRfYmxrc19oaXQ7Ci0JZHN0LT5zaGFyZWRfYmxr c19yZWFkICs9IGFkZC0+c2hhcmVkX2Jsa3NfcmVhZCAtIHN1Yi0+c2hhcmVkX2Jsa3NfcmVhZDsK LQlkc3QtPnNoYXJlZF9ibGtzX2RpcnRpZWQgKz0gYWRkLT5zaGFyZWRfYmxrc19kaXJ0aWVkIC0g c3ViLT5zaGFyZWRfYmxrc19kaXJ0aWVkOwotCWRzdC0+c2hhcmVkX2Jsa3Nfd3JpdHRlbiArPSBh ZGQtPnNoYXJlZF9ibGtzX3dyaXR0ZW4gLSBzdWItPnNoYXJlZF9ibGtzX3dyaXR0ZW47Ci0JZHN0 LT5sb2NhbF9ibGtzX2hpdCArPSBhZGQtPmxvY2FsX2Jsa3NfaGl0IC0gc3ViLT5sb2NhbF9ibGtz X2hpdDsKLQlkc3QtPmxvY2FsX2Jsa3NfcmVhZCArPSBhZGQtPmxvY2FsX2Jsa3NfcmVhZCAtIHN1 Yi0+bG9jYWxfYmxrc19yZWFkOwotCWRzdC0+bG9jYWxfYmxrc19kaXJ0aWVkICs9IGFkZC0+bG9j YWxfYmxrc19kaXJ0aWVkIC0gc3ViLT5sb2NhbF9ibGtzX2RpcnRpZWQ7Ci0JZHN0LT5sb2NhbF9i bGtzX3dyaXR0ZW4gKz0gYWRkLT5sb2NhbF9ibGtzX3dyaXR0ZW4gLSBzdWItPmxvY2FsX2Jsa3Nf d3JpdHRlbjsKLQlkc3QtPnRlbXBfYmxrc19yZWFkICs9IGFkZC0+dGVtcF9ibGtzX3JlYWQgLSBz dWItPnRlbXBfYmxrc19yZWFkOwotCWRzdC0+dGVtcF9ibGtzX3dyaXR0ZW4gKz0gYWRkLT50ZW1w X2Jsa3Nfd3JpdHRlbiAtIHN1Yi0+dGVtcF9ibGtzX3dyaXR0ZW47Ci0JSU5TVFJfVElNRV9BQ0NV TV9ESUZGKGRzdC0+c2hhcmVkX2Jsa19yZWFkX3RpbWUsCi0JCQkJCQkgIGFkZC0+c2hhcmVkX2Js a19yZWFkX3RpbWUsIHN1Yi0+c2hhcmVkX2Jsa19yZWFkX3RpbWUpOwotCUlOU1RSX1RJTUVfQUND VU1fRElGRihkc3QtPnNoYXJlZF9ibGtfd3JpdGVfdGltZSwKLQkJCQkJCSAgYWRkLT5zaGFyZWRf YmxrX3dyaXRlX3RpbWUsIHN1Yi0+c2hhcmVkX2Jsa193cml0ZV90aW1lKTsKLQlJTlNUUl9USU1F X0FDQ1VNX0RJRkYoZHN0LT5sb2NhbF9ibGtfcmVhZF90aW1lLAotCQkJCQkJICBhZGQtPmxvY2Fs X2Jsa19yZWFkX3RpbWUsIHN1Yi0+bG9jYWxfYmxrX3JlYWRfdGltZSk7Ci0JSU5TVFJfVElNRV9B Q0NVTV9ESUZGKGRzdC0+bG9jYWxfYmxrX3dyaXRlX3RpbWUsCi0JCQkJCQkgIGFkZC0+bG9jYWxf YmxrX3dyaXRlX3RpbWUsIHN1Yi0+bG9jYWxfYmxrX3dyaXRlX3RpbWUpOwotCUlOU1RSX1RJTUVf QUNDVU1fRElGRihkc3QtPnRlbXBfYmxrX3JlYWRfdGltZSwKLQkJCQkJCSAgYWRkLT50ZW1wX2Js a19yZWFkX3RpbWUsIHN1Yi0+dGVtcF9ibGtfcmVhZF90aW1lKTsKLQlJTlNUUl9USU1FX0FDQ1VN X0RJRkYoZHN0LT50ZW1wX2Jsa193cml0ZV90aW1lLAotCQkJCQkJICBhZGQtPnRlbXBfYmxrX3dy aXRlX3RpbWUsIHN1Yi0+dGVtcF9ibGtfd3JpdGVfdGltZSk7Ci19Ci0KIC8qIGhlbHBlciBmdW5j dGlvbnMgZm9yIFdBTCB1c2FnZSBhY2N1bXVsYXRpb24gKi8KIHN0YXRpYyB2b2lkCiBXYWxVc2Fn ZUFkZChXYWxVc2FnZSAqZHN0LCBXYWxVc2FnZSAqYWRkKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVu dC5oCmluZGV4IDdiM2U5YTIxNzMzLi43YTVkMDU5N2NkNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3Ry dW1lbnQuaApAQCAtMTU5LDcgKzE1OSw2IEBAIHR5cGVkZWYgc3RydWN0IFdvcmtlck5vZGVJbnN0 cnVtZW50YXRpb24KIAlOb2RlSW5zdHJ1bWVudGF0aW9uIGluc3RydW1lbnRbRkxFWElCTEVfQVJS QVlfTUVNQkVSXTsKIH0gV29ya2VyTm9kZUluc3RydW1lbnRhdGlvbjsKIAotZXh0ZXJuIFBHRExM SU1QT1JUIEJ1ZmZlclVzYWdlIHBnQnVmZmVyVXNhZ2U7CiBleHRlcm4gUEdETExJTVBPUlQgV2Fs VXNhZ2UgcGdXYWxVc2FnZTsKIAogLyoKQEAgLTI0MywyNSArMjQyLDIwIEBAIGV4dGVybiB2b2lk IEluc3RyQWdnTm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICpkc3QsIE5vZGVJbnN0cnVtZW50YXRp b24gKmFkZCk7CiBwZ19ub2Rpc2NhcmQgZXh0ZXJuIEluc3RydW1lbnRhdGlvbiAqSW5zdHJTdGFy dFBhcmFsbGVsUXVlcnkodm9pZCk7CiBleHRlcm4gdm9pZCBJbnN0ckVuZFBhcmFsbGVsUXVlcnko SW5zdHJ1bWVudGF0aW9uICppbnN0ciwgQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBXYWxVc2FnZSAq d2FsdXNhZ2UpOwogZXh0ZXJuIHZvaWQgSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoQnVmZmVyVXNh Z2UgKmJ1ZnVzYWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UpOwotZXh0ZXJuIHZvaWQgQnVmZmVyVXNh Z2VBY2N1bURpZmYoQnVmZmVyVXNhZ2UgKmRzdCwKLQkJCQkJCQkJIGNvbnN0IEJ1ZmZlclVzYWdl ICphZGQsIGNvbnN0IEJ1ZmZlclVzYWdlICpzdWIpOworZXh0ZXJuIHZvaWQgQnVmZmVyVXNhZ2VB ZGQoQnVmZmVyVXNhZ2UgKmRzdCwgY29uc3QgQnVmZmVyVXNhZ2UgKmFkZCk7CiBleHRlcm4gdm9p ZCBXYWxVc2FnZUFjY3VtRGlmZihXYWxVc2FnZSAqZHN0LCBjb25zdCBXYWxVc2FnZSAqYWRkLAog CQkJCQkJCSAgY29uc3QgV2FsVXNhZ2UgKnN1Yik7CiAKICNkZWZpbmUgSU5TVFJfQlVGVVNBR0Vf SU5DUihmbGQpIGRvIHsgXAotCQlwZ0J1ZmZlclVzYWdlLmZsZCsrOyBcCiAJCUN1cnJlbnRJbnN0 clN0YWNrLT5idWZ1c2FnZS5mbGQrKzsgXAogCX0gd2hpbGUoMCkKICNkZWZpbmUgSU5TVFJfQlVG VVNBR0VfQUREKGZsZCx2YWwpIGRvIHsgXAotCQlwZ0J1ZmZlclVzYWdlLmZsZCArPSB2YWw7IFwK IAkJQ3VycmVudEluc3RyU3RhY2stPmJ1ZnVzYWdlLmZsZCArPSB2YWw7IFwKIAl9IHdoaWxlKDAp CiAjZGVmaW5lIElOU1RSX0JVRlVTQUdFX1RJTUVfQUREKGZsZCx2YWwpIGRvIHsgXAotCUlOU1RS X1RJTUVfQUREKHBnQnVmZmVyVXNhZ2UuZmxkLCB2YWwpOyBcCiAJSU5TVFJfVElNRV9BREQoQ3Vy cmVudEluc3RyU3RhY2stPmJ1ZnVzYWdlLmZsZCwgdmFsKTsgXAogCX0gd2hpbGUgKDApCiAjZGVm aW5lIElOU1RSX0JVRlVTQUdFX1RJTUVfQUNDVU1fRElGRihmbGQsZW5kdmFsLHN0YXJ0dmFsKSBk byB7IFwKLQlJTlNUUl9USU1FX0FDQ1VNX0RJRkYocGdCdWZmZXJVc2FnZS5mbGQsIGVuZHZhbCwg c3RhcnR2YWwpOyBcCiAJSU5TVFJfVElNRV9BQ0NVTV9ESUZGKEN1cnJlbnRJbnN0clN0YWNrLT5i dWZ1c2FnZS5mbGQsIGVuZHZhbCwgc3RhcnR2YWwpOyBcCiAJfSB3aGlsZSAoMCkKIAotLSAKMi40 Ny4xCgo= --000000000000702390064b8a3016 Content-Type: application/octet-stream; name="v6-0008-Add-pg_session_buffer_usage-contrib-module.patch" Content-Disposition: attachment; filename="v6-0008-Add-pg_session_buffer_usage-contrib-module.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm02xae07 RnJvbSBjNDE1ODg0ZDIzYzU3NDFkNjIwN2FhMDIxYjZkMGMyM2ZhZTdhNWJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBT dW4sIDIyIEZlYiAyMDI2IDE2OjEyOjU1IC0wODAwClN1YmplY3Q6IFtQQVRDSCB2NiA4LzhdIEFk ZCBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZSBjb250cmliIG1vZHVsZQoKVGhpcyBpcyBpbnRlbmRl ZCBmb3IgdGVzdGluZyBpbnN0cnVtZW50YXRpb24gcmVsYXRlZCBsb2dpYyBhcyBpdCBwZXJ0YWlu cwp0byB0aGUgdG9wIGxldmVsIHN0YWNrIHRoYXQgaXMgbWFpbnRhaW5lZCBhcyBhIHJ1bm5pbmcg dG90YWwuIFRoZXJlIGlzCmN1cnJlbnRseSBubyBpbi1jb3JlIHVzZXIgdGhhdCB1dGlsaXplcyB0 aGUgdG9wLWxldmVsIHZhbHVlcyBpbiB0aGlzCm1hbm5lciwgYW5kIGVzcGVjaWFsbHkgZHVyaW5n IGFib3J0IHNpdHVhdGlvbnMgdGhpcyBoZWxwcyBlbnN1cmUgd2UgZG9uJ3QKbG9zZSBhY3Rpdml0 eSBkdWUgdG8gaW5jb3JyZWN0IGhhbmRsaW5nIG9mIHVuZmluYWxpemVkIG5vZGUgc3RhY2tzLgot LS0KIGNvbnRyaWIvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAr CiBjb250cmliL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlL01ha2VmaWxlICAgICAgfCAgMjMgKysK IC4uLi9leHBlY3RlZC9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS5vdXQgICAgICB8IDI4MyArKysr KysrKysrKysrKysrKysKIGNvbnRyaWIvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UvbWVzb24uYnVp bGQgICB8ICAzNCArKysKIC4uLi9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS0tMS4wLnNxbCAgICAg ICAgICB8ICAzMSArKwogLi4uL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlLmMgICAgICAgICAgICAg ICAgIHwgIDk2ICsrKysrKwogLi4uL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlLmNvbnRyb2wgICAg ICAgICAgIHwgICA1ICsKIC4uLi9zcWwvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2Uuc3FsICAgICAg ICAgICB8IDIwNCArKysrKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDY3NyBpbnNlcnRpb25z KCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS9N YWtlZmlsZQogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbnRyaWIvcGdfc2Vzc2lvbl9idWZmZXJfdXNh Z2UvZXhwZWN0ZWQvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2Uub3V0CiBjcmVhdGUgbW9kZSAxMDA2 NDQgY29udHJpYi9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS9tZXNvbi5idWlsZAogY3JlYXRlIG1v ZGUgMTAwNjQ0IGNvbnRyaWIvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UvcGdfc2Vzc2lvbl9idWZm ZXJfdXNhZ2UtLTEuMC5zcWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL3BnX3Nlc3Npb25f YnVmZmVyX3VzYWdlL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlLmMKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBjb250cmliL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdl LmNvbnRyb2wKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL3BnX3Nlc3Npb25fYnVmZmVyX3Vz YWdlL3NxbC9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS5zcWwKCmRpZmYgLS1naXQgYS9jb250cmli L21lc29uLmJ1aWxkIGIvY29udHJpYi9tZXNvbi5idWlsZAppbmRleCBkZWYxMzI1N2NiZS4uY2Fi MWIyMTE2NzggMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvbWVzb24uYnVpbGQKKysrIGIvY29udHJpYi9t ZXNvbi5idWlsZApAQCAtNTAsNiArNTAsNyBAQCBzdWJkaXIoJ3BnX2xvZ2ljYWxpbnNwZWN0JykK IHN1YmRpcigncGdfb3ZlcmV4cGxhaW4nKQogc3ViZGlyKCdwZ19wcmV3YXJtJykKIHN1YmRpcign cGdyb3dsb2NrcycpCitzdWJkaXIoJ3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlJykKIHN1YmRpcign cGdfc3RhdF9zdGF0ZW1lbnRzJykKIHN1YmRpcigncGdzdGF0dHVwbGUnKQogc3ViZGlyKCdwZ19z dXJnZXJ5JykKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UvTWFr ZWZpbGUgYi9jb250cmliL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlL01ha2VmaWxlCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43NWJkOGUwOWIzZAotLS0gL2Rldi9udWxs CisrKyBiL2NvbnRyaWIvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UvTWFrZWZpbGUKQEAgLTAsMCAr MSwyMyBAQAorIyBjb250cmliL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlL01ha2VmaWxlCisKK01P RFVMRV9iaWcgPSBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZQorT0JKUyA9IFwKKwkkKFdJTjMyUkVT KSBcCisJcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UubworCitFWFRFTlNJT04gPSBwZ19zZXNzaW9u X2J1ZmZlcl91c2FnZQorREFUQSA9IHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlLS0xLjAuc3FsCitQ R0ZJTEVERVNDID0gInBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlIC0gc2hvdyBidWZmZXIgdXNhZ2Ug c3RhdGlzdGljcyBmb3IgdGhlIGN1cnJlbnQgc2Vzc2lvbiIKKworUkVHUkVTUyA9IHBnX3Nlc3Np b25fYnVmZmVyX3VzYWdlCisKK2lmZGVmIFVTRV9QR1hTCitQR19DT05GSUcgPSBwZ19jb25maWcK K1BHWFMgOj0gJChzaGVsbCAkKFBHX0NPTkZJRykgLS1wZ3hzKQoraW5jbHVkZSAkKFBHWFMpCitl bHNlCitzdWJkaXIgPSBjb250cmliL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlCit0b3BfYnVpbGRk aXIgPSAuLi8uLgoraW5jbHVkZSAkKHRvcF9idWlsZGRpcikvc3JjL01ha2VmaWxlLmdsb2JhbAor aW5jbHVkZSAkKHRvcF9zcmNkaXIpL2NvbnRyaWIvY29udHJpYi1nbG9iYWwubWsKK2VuZGlmCmRp ZmYgLS1naXQgYS9jb250cmliL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlL2V4cGVjdGVkL3BnX3Nl c3Npb25fYnVmZmVyX3VzYWdlLm91dCBiL2NvbnRyaWIvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2Uv ZXhwZWN0ZWQvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2Uub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi4yNDJiNDAwMzk1MAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRy aWIvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UvZXhwZWN0ZWQvcGdfc2Vzc2lvbl9idWZmZXJfdXNh Z2Uub3V0CkBAIC0wLDAgKzEsMjgzIEBACitMT0FEICdwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZSc7 CitDUkVBVEUgRVhURU5TSU9OIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlOworLS0gVmVyaWZ5IGFs bCBjb2x1bW5zIGFyZSBub24tbmVnYXRpdmUKK1NFTEVDVCBjb3VudCgqKSA9IDEgQVMgb2sgRlJP TSBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZSgpCitXSEVSRSBzaGFyZWRfYmxrc19oaXQgPj0gMCBB TkQgc2hhcmVkX2Jsa3NfcmVhZCA+PSAwCisgIEFORCBzaGFyZWRfYmxrc19kaXJ0aWVkID49IDAg QU5EIHNoYXJlZF9ibGtzX3dyaXR0ZW4gPj0gMAorICBBTkQgbG9jYWxfYmxrc19oaXQgPj0gMCBB TkQgbG9jYWxfYmxrc19yZWFkID49IDAKKyAgQU5EIGxvY2FsX2Jsa3NfZGlydGllZCA+PSAwIEFO RCBsb2NhbF9ibGtzX3dyaXR0ZW4gPj0gMAorICBBTkQgdGVtcF9ibGtzX3JlYWQgPj0gMCBBTkQg dGVtcF9ibGtzX3dyaXR0ZW4gPj0gMAorICBBTkQgc2hhcmVkX2Jsa19yZWFkX3RpbWUgPj0gMCBB TkQgc2hhcmVkX2Jsa193cml0ZV90aW1lID49IDAKKyAgQU5EIGxvY2FsX2Jsa19yZWFkX3RpbWUg Pj0gMCBBTkQgbG9jYWxfYmxrX3dyaXRlX3RpbWUgPj0gMAorICBBTkQgdGVtcF9ibGtfcmVhZF90 aW1lID49IDAgQU5EIHRlbXBfYmxrX3dyaXRlX3RpbWUgPj0gMDsKKyBvayAKKy0tLS0KKyB0Ciso MSByb3cpCisKKy0tIFZlcmlmeSBjb3VudGVycyBpbmNyZWFzZSBhZnRlciBidWZmZXIgYWN0aXZp dHkKK1NFTEVDVCBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZV9yZXNldCgpOworIHBnX3Nlc3Npb25f YnVmZmVyX3VzYWdlX3Jlc2V0IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAor KDEgcm93KQorCitDUkVBVEUgVEVNUCBUQUJMRSB0ZXN0X2J1Zl9hY3Rpdml0eSAoaWQgaW50LCBk YXRhIHRleHQpOworSU5TRVJUIElOVE8gdGVzdF9idWZfYWN0aXZpdHkgU0VMRUNUIGksIHJlcGVh dCgneCcsIDEwMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMCkgQVMgaTsKK1NFTEVDVCBj b3VudCgqKSBGUk9NIHRlc3RfYnVmX2FjdGl2aXR5OworIGNvdW50IAorLS0tLS0tLQorICAxMDAw CisoMSByb3cpCisKK1NFTEVDVCBsb2NhbF9ibGtzX2hpdCArIGxvY2FsX2Jsa3NfcmVhZCA+IDAg QVMgYmxvY2tzX2luY3JlYXNlZAorRlJPTSBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZSgpOworIGJs b2Nrc19pbmNyZWFzZWQgCistLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK0RST1Ag VEFCTEUgdGVzdF9idWZfYWN0aXZpdHk7CistLSBQYXJhbGxlbCBxdWVyeSB0ZXN0CitDUkVBVEUg VEFCTEUgcGFyX2RjX3RhYiAoYSBpbnQsIGIgY2hhcigyMDApKTsKK0lOU0VSVCBJTlRPIHBhcl9k Y190YWIgU0VMRUNUIGksIHJlcGVhdCgneCcsIDIwMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg NTAwMCkgQVMgaTsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBhcl9kY190YWI7CisgY291bnQgCist LS0tLS0tCisgIDUwMDAKKygxIHJvdykKKworLS0gTWVhc3VyZSBzZXJpYWwgc2NhbiBkZWx0YSAo bGVhZGVyIGRvZXMgYWxsIHRoZSB3b3JrKQorU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9n YXRoZXIgPSAwOworU0VMRUNUIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlX3Jlc2V0KCk7CisgcGdf c2Vzc2lvbl9idWZmZXJfdXNhZ2VfcmVzZXQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBhcl9kY190YWI7CisgY291 bnQgCistLS0tLS0tCisgIDUwMDAKKygxIHJvdykKKworQ1JFQVRFIFRFTVAgVEFCTEUgZGNfc2Vy aWFsX3Jlc3VsdCBBUworU0VMRUNUIHNoYXJlZF9ibGtzX2hpdCBBUyBzZXJpYWxfZGVsdGEgRlJP TSBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZSgpOworLS0gTWVhc3VyZSBwYXJhbGxlbCBzY2FuIGRl bHRhIHdpdGggbGVhZGVyIE5PVCBwYXJ0aWNpcGF0aW5nIGluIHNjYW5uaW5nLgorLS0gV29ya2Vy cyBkbyBhbGwgdGFibGUgc2Nhbm5pbmc7IGxlYWRlciBvbmx5IHJ1bnMgdGhlIEdhdGhlciBub2Rl LgorU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3QgPSAwOworU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3Qg PSAwOworU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemUgPSAwOworU0VUIG1heF9wYXJh bGxlbF93b3JrZXJzX3Blcl9nYXRoZXIgPSAyOworU0VUIHBhcmFsbGVsX2xlYWRlcl9wYXJ0aWNp cGF0aW9uID0gb2ZmOworU0VMRUNUIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlX3Jlc2V0KCk7Cisg cGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2VfcmVzZXQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBhcl9kY190YWI7Cisg Y291bnQgCistLS0tLS0tCisgIDUwMDAKKygxIHJvdykKKworLS0gQ29uZmlybSB3ZSBnb3QgYSBz aW1pbGFyIGhpdCBjb3VudGVyIHRocm91Z2ggcGFyYWxsZWwgd29ya2VyIGFjY3VtdWxhdGlvbgor U0VMRUNUIHNoYXJlZF9ibGtzX2hpdCA+IHMuc2VyaWFsX2RlbHRhIC8gMiBBTkQgc2hhcmVkX2Js a3NfaGl0IDwgcy5zZXJpYWxfZGVsdGEgKiAyCisgICAgICAgQVMgbGVhZGVyX2J1ZmZlcnNfbWF0 Y2gKK0ZST00gcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UoKSwgZGNfc2VyaWFsX3Jlc3VsdCBzOwor IGxlYWRlcl9idWZmZXJzX21hdGNoIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJv dykKKworUkVTRVQgcGFyYWxsZWxfc2V0dXBfY29zdDsKK1JFU0VUIHBhcmFsbGVsX3R1cGxlX2Nv c3Q7CitSRVNFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplOworUkVTRVQgbWF4X3BhcmFs bGVsX3dvcmtlcnNfcGVyX2dhdGhlcjsKK1JFU0VUIHBhcmFsbGVsX2xlYWRlcl9wYXJ0aWNpcGF0 aW9uOworRFJPUCBUQUJMRSBwYXJfZGNfdGFiLCBkY19zZXJpYWxfcmVzdWx0OworLS0KKy0tIEFi b3J0L2V4Y2VwdGlvbiB0ZXN0czogdmVyaWZ5IGJ1ZmZlciB1c2FnZSBzdXJ2aXZlcyB2YXJpb3Vz IGVycm9yIHBhdGhzLgorLS0KKy0tIFJvbGxlZC1iYWNrIGRpdmlkZS1ieS16ZXJvIHVuZGVyIEVY UExBSU4gQU5BTFlaRQorQ1JFQVRFIFRFTVAgVEFCTEUgZXhjX3RhYiAoYSBpbnQsIGIgY2hhcigy MCkpOworU0VMRUNUIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlX3Jlc2V0KCk7CisgcGdfc2Vzc2lv bl9idWZmZXJfdXNhZ2VfcmVzZXQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg CisoMSByb3cpCisKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMsIENPU1RTIE9GRikKKyAgICAg ICAgV0lUSCBpbnMgQVMgKElOU0VSVCBJTlRPIGV4Y190YWIgVkFMVUVTICgxLCAnYWFhJykgUkVU VVJOSU5HIGEpCisgICAgICAgIFNFTEVDVCBhIC8gMCBGUk9NIGluczsKK0VSUk9SOiAgZGl2aXNp b24gYnkgemVybworU0VMRUNUIGxvY2FsX2Jsa3NfZGlydGllZCA+IDAgQVMgZXhjZXB0aW9uX2J1 ZmZlcnNfdmlzaWJsZQorRlJPTSBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZSgpOworIGV4Y2VwdGlv bl9idWZmZXJzX3Zpc2libGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSBy b3cpCisKK0RST1AgVEFCTEUgZXhjX3RhYjsKKy0tIFVuaXF1ZSBjb25zdHJhaW50IHZpb2xhdGlv biBpbiByZWd1bGFyIHF1ZXJ5CitDUkVBVEUgVEVNUCBUQUJMRSB1bmlxdWVfdGFiIChhIGludCBV TklRVUUsIGIgY2hhcigyMCkpOworSU5TRVJUIElOVE8gdW5pcXVlX3RhYiBWQUxVRVMgKDEsICdm aXJzdCcpOworU0VMRUNUIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlX3Jlc2V0KCk7CisgcGdfc2Vz c2lvbl9idWZmZXJfdXNhZ2VfcmVzZXQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgCisoMSByb3cpCisKK0lOU0VSVCBJTlRPIHVuaXF1ZV90YWIgVkFMVUVTICgxLCAnZHVwbGlj YXRlJyk7CitFUlJPUjogIGR1cGxpY2F0ZSBrZXkgdmFsdWUgdmlvbGF0ZXMgdW5pcXVlIGNvbnN0 cmFpbnQgInVuaXF1ZV90YWJfYV9rZXkiCitERVRBSUw6ICBLZXkgKGEpPSgxKSBhbHJlYWR5IGV4 aXN0cy4KK1NFTEVDVCBsb2NhbF9ibGtzX2hpdCA+IDAgQVMgdW5pcXVlX3Zpb2xhdGlvbl9idWZm ZXJzX3Zpc2libGUKK0ZST00gcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UoKTsKKyB1bmlxdWVfdmlv bGF0aW9uX2J1ZmZlcnNfdmlzaWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyB0CisoMSByb3cpCisKK0RST1AgVEFCTEUgdW5pcXVlX3RhYjsKKy0tIENhdWdodCBleGNl cHRpb24gaW4gUEwvcGdTUUwgc3VidHJhbnNhY3Rpb24gKEJFR0lOLi4uRVhDRVBUSU9OKQorQ1JF QVRFIFRFTVAgVEFCTEUgc3VieGFjdF90YWIgKGEgaW50LCBiIGNoYXIoMjApKTsKK0NSRUFURSBG VU5DVElPTiBzdWJ4YWN0X2V4Y19mdW5jKCkgUkVUVVJOUyB0ZXh0IEFTICQkCitCRUdJTgorICAg IEJFR0lOCisgICAgICAgIEVYRUNVVEUgJ0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMsIENPU1RT IE9GRikKKyAgICAgICAgICAgIFdJVEggaW5zIEFTIChJTlNFUlQgSU5UTyBzdWJ4YWN0X3RhYiBW QUxVRVMgKDEsICcnYWFhJycpIFJFVFVSTklORyBhKQorICAgICAgICAgICAgU0VMRUNUIGEgLyAw IEZST00gaW5zJzsKKyAgICBFWENFUFRJT04gV0hFTiBkaXZpc2lvbl9ieV96ZXJvIFRIRU4KKyAg ICAgICAgUkVUVVJOICdjYXVnaHQnOworICAgIEVORDsKKyAgICBSRVRVUk4gJ25vdCByZWFjaGVk JzsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgcGdfc2Vzc2lvbl9idWZmZXJf dXNhZ2VfcmVzZXQoKTsKKyBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZV9yZXNldCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHN1YnhhY3RfZXhj X2Z1bmMoKTsKKyBzdWJ4YWN0X2V4Y19mdW5jIAorLS0tLS0tLS0tLS0tLS0tLS0tCisgY2F1Z2h0 CisoMSByb3cpCisKK1NFTEVDVCBsb2NhbF9ibGtzX2RpcnRpZWQgPiAwIEFTIHN1YnhhY3RfYnVm ZmVyc192aXNpYmxlCitGUk9NIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlKCk7Cisgc3VieGFjdF9i dWZmZXJzX3Zpc2libGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQor CitEUk9QIEZVTkNUSU9OIHN1YnhhY3RfZXhjX2Z1bmM7CitEUk9QIFRBQkxFIHN1YnhhY3RfdGFi OworLS0gQ3Vyc29yIChGT1IgbG9vcCkgaW4gYWJvcnRlZCBzdWJ0cmFuc2FjdGlvbjsgdmVyaWZ5 IHBvc3QtZXhjZXB0aW9uIHRyYWNraW5nCitDUkVBVEUgVEVNUCBUQUJMRSBjdXJzb3JfdGFiIChh IGludCwgYiBjaGFyKDIwMCkpOworSU5TRVJUIElOVE8gY3Vyc29yX3RhYiBTRUxFQ1QgaSwgcmVw ZWF0KCd4JywgMjAwKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MDApIEFTIGk7CitDUkVBVEUg RlVOQ1RJT04gY3Vyc29yX2V4Y19mdW5jKCkgUkVUVVJOUyB0ZXh0IEFTICQkCitERUNMQVJFCisg ICAgcmVjIHJlY29yZDsKKyAgICBjbnQgaW50IDo9IDA7CitCRUdJTgorICAgIEJFR0lOCisgICAg ICAgIEZPUiByZWMgSU4gU0VMRUNUICogRlJPTSBjdXJzb3JfdGFiIExPT1AKKyAgICAgICAgICAg IGNudCA6PSBjbnQgKyAxOworICAgICAgICAgICAgSUYgY250ID0gMjUwIFRIRU4KKyAgICAgICAg ICAgICAgICBQRVJGT1JNIDEgLyAwOworICAgICAgICAgICAgRU5EIElGOworICAgICAgICBFTkQg TE9PUDsKKyAgICBFWENFUFRJT04gV0hFTiBkaXZpc2lvbl9ieV96ZXJvIFRIRU4KKyAgICAgICAg UkVUVVJOICdjYXVnaHQgYWZ0ZXIgJyB8fCBjbnQgfHwgJyByb3dzJzsKKyAgICBFTkQ7CisgICAg UkVUVVJOICdub3QgcmVhY2hlZCc7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNU IHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlX3Jlc2V0KCk7CisgcGdfc2Vzc2lvbl9idWZmZXJfdXNh Z2VfcmVzZXQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisK K1NFTEVDVCBjdXJzb3JfZXhjX2Z1bmMoKTsKKyAgICBjdXJzb3JfZXhjX2Z1bmMgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIGNhdWdodCBhZnRlciAyNTAgcm93cworKDEgcm93KQorCitT RUxFQ1QgbG9jYWxfYmxrc19oaXQgKyBsb2NhbF9ibGtzX3JlYWQgPiAwCisgICAgICAgQVMgY3Vy c29yX3N1YnhhY3RfYnVmZmVyc192aXNpYmxlCitGUk9NIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdl KCk7CisgY3Vyc29yX3N1YnhhY3RfYnVmZmVyc192aXNpYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK0RST1AgRlVOQ1RJT04gY3Vyc29yX2V4Y19m dW5jOworRFJPUCBUQUJMRSBjdXJzb3JfdGFiOworLS0gUGFyYWxsZWwgd29ya2VyIGFib3J0OiB3 b3JrZXIgYnVmZmVyIGFjdGl2aXR5IGlzIGN1cnJlbnRseSBOT1QgcHJvcGFnYXRlZCBvbiBhYm9y dC4KKy0tCistLSBXaGVuIGEgcGFyYWxsZWwgd29ya2VyIGFib3J0cywgSW5zdHJFbmRQYXJhbGxl bFF1ZXJ5IGFuZAorLS0gRXhlY1BhcmFsbGVsUmVwb3J0SW5zdHJ1bWVudGF0aW9uIG5ldmVyIHJ1 biwgc28gdGhlIHdvcmtlcidzIGJ1ZmZlcgorLS0gYWN0aXZpdHkgaXMgbmV2ZXIgd3JpdHRlbiB0 byBzaGFyZWQgbWVtb3J5LCBkZXNwaXRlIHRoZSBpbmZvcm1hdGlvbiBoYXZpbmcgYmVlbgorLS0g Y2FwdHVyZWQgYnkgdGhlIHJlcyBvd25lciByZWxlYXNlIGluc3RydW1lbnRhdGlvbiBoYW5kbGlu Zy4KK0NSRUFURSBUQUJMRSBwYXJfYWJvcnRfdGFiIChhIGludCwgYiBjaGFyKDIwMCkpOworSU5T RVJUIElOVE8gcGFyX2Fib3J0X3RhYiBTRUxFQ1QgaSwgcmVwZWF0KCd4JywgMjAwKSBGUk9NIGdl bmVyYXRlX3NlcmllcygxLCA1MDAwKSBBUyBpOworLS0gV2FybSBzaGFyZWQgYnVmZmVycyBzbyBh bGwgcmVhZHMgYmVjb21lIGhpdHMKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBhcl9hYm9ydF90YWI7 CisgY291bnQgCistLS0tLS0tCisgIDUwMDAKKygxIHJvdykKKworLS0gTWVhc3VyZSBzZXJpYWwg c2NhbiBkZWx0YSBhcyBhIHJlZmVyZW5jZSAobGVhZGVyIHJlYWRzIGFsbCBibG9ja3MpCitTRVQg bWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlciA9IDA7CitTRUxFQ1QgcGdfc2Vzc2lvbl9i dWZmZXJfdXNhZ2VfcmVzZXQoKTsKKyBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZV9yZXNldCAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIGI6Omlu dDIgRlJPTSBwYXJfYWJvcnRfdGFiIFdIRVJFIGEgPiAxMDAwOworRVJST1I6ICBpbnZhbGlkIGlu cHV0IHN5bnRheCBmb3IgdHlwZSBzbWFsbGludDogInh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4IgorQ1JFQVRFIFRBQkxFIHBhcl9hYm9ydF9zZXJpYWxfcmVzdWx0IEFTCitTRUxFQ1Qgc2hh cmVkX2Jsa3NfaGl0IEFTIHNlcmlhbF9kZWx0YSBGUk9NIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdl KCk7CistLSBOb3cgZm9yY2UgcGFyYWxsZWwgd2l0aCBsZWFkZXIgTk9UIHBhcnRpY2lwYXRpbmcg aW4gc2Nhbm5pbmcKK1NFVCBwYXJhbGxlbF9zZXR1cF9jb3N0ID0gMDsKK1NFVCBwYXJhbGxlbF90 dXBsZV9jb3N0ID0gMDsKK1NFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplID0gMDsKK1NF VCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0gMjsKK1NFVCBwYXJhbGxlbF9sZWFk ZXJfcGFydGljaXBhdGlvbiA9IG9mZjsKK1NFVCBkZWJ1Z19wYXJhbGxlbF9xdWVyeSA9IG9uOyAt LSBFbnN1cmUgd2UgZ2V0IENPTlRFWFQgbGluZSBjb25zaXN0ZW50bHkKK1NFTEVDVCBwZ19zZXNz aW9uX2J1ZmZlcl91c2FnZV9yZXNldCgpOworIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlX3Jlc2V0 IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1Qg Yjo6aW50MiBGUk9NIHBhcl9hYm9ydF90YWIgV0hFUkUgYSA+IDEwMDA7CitFUlJPUjogIGludmFs aWQgaW5wdXQgc3ludGF4IGZvciB0eXBlIHNtYWxsaW50OiAieHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHgiCitDT05URVhUOiAgcGFyYWxsZWwgd29ya2VyCitSRVNFVCBkZWJ1Z19wYXJhbGxl bF9xdWVyeTsKKy0tIFdvcmtlcnMgc2Nhbm5lZCB0aGUgdGFibGUgYnV0IGFib3J0ZWQgYmVmb3Jl IHJlcG9ydGluZyBzdGF0cyBiYWNrLgorLS0gVGhlIGxlYWRlcidzIGRlbHRhIHNob3VsZCBiZSBt dWNoIGxlc3MgdGhhbiBhIHNlcmlhbCBzY2FuLCBkb2N1bWVudGluZworLS0gdGhhdCB3b3JrZXIg YnVmZmVyIGFjdGl2aXR5IGlzIGxvc3Qgb24gYWJvcnQuCitTRUxFQ1Qgc2hhcmVkX2Jsa3NfaGl0 IDwgcy5zZXJpYWxfZGVsdGEgLyAyCisgICAgICAgQVMgd29ya2VyX2Fib3J0X2J1ZmZlcnNfbm90 X3Byb3BhZ2F0ZWQKK0ZST00gcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UoKSwgcGFyX2Fib3J0X3Nl cmlhbF9yZXN1bHQgczsKKyB3b3JrZXJfYWJvcnRfYnVmZmVyc19ub3RfcHJvcGFnYXRlZCAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1JFU0VU IHBhcmFsbGVsX3NldHVwX2Nvc3Q7CitSRVNFVCBwYXJhbGxlbF90dXBsZV9jb3N0OworUkVTRVQg bWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6ZTsKK1JFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJz X3Blcl9nYXRoZXI7CitSRVNFVCBwYXJhbGxlbF9sZWFkZXJfcGFydGljaXBhdGlvbjsKK0RST1Ag VEFCTEUgcGFyX2Fib3J0X3RhYiwgcGFyX2Fib3J0X3NlcmlhbF9yZXN1bHQ7CistLSBDbGVhbnVw CitEUk9QIEVYVEVOU0lPTiBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZTsKZGlmZiAtLWdpdCBhL2Nv bnRyaWIvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UvbWVzb24uYnVpbGQgYi9jb250cmliL3BnX3Nl c3Npb25fYnVmZmVyX3VzYWdlL21lc29uLmJ1aWxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi4zNGM3NTAyYmViNAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcGdf c2Vzc2lvbl9idWZmZXJfdXNhZ2UvbWVzb24uYnVpbGQKQEAgLTAsMCArMSwzNCBAQAorIyBDb3B5 cmlnaHQgKGMpIDIwMjYsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK3Bn X3Nlc3Npb25fYnVmZmVyX3VzYWdlX3NvdXJjZXMgPSBmaWxlcygKKyAgJ3BnX3Nlc3Npb25fYnVm ZmVyX3VzYWdlLmMnLAorKQorCitpZiBob3N0X3N5c3RlbSA9PSAnd2luZG93cycKKyAgcGdfc2Vz c2lvbl9idWZmZXJfdXNhZ2Vfc291cmNlcyArPSByY19saWJfZ2VuLnByb2Nlc3Mod2luMzJ2ZXJf cmMsIGV4dHJhX2FyZ3M6IFsKKyAgICAnLS1OQU1FJywgJ3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdl JywKKyAgICAnLS1GSUxFREVTQycsICdwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZSAtIHNob3cgYnVm ZmVyIHVzYWdlIHN0YXRpc3RpY3MgZm9yIHRoZSBjdXJyZW50IHNlc3Npb24nLF0pCitlbmRpZgor CitwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZSA9IHNoYXJlZF9tb2R1bGUoJ3BnX3Nlc3Npb25fYnVm ZmVyX3VzYWdlJywKKyAgcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2Vfc291cmNlcywKKyAga3dhcmdz OiBjb250cmliX21vZF9hcmdzLAorKQorY29udHJpYl90YXJnZXRzICs9IHBnX3Nlc3Npb25fYnVm ZmVyX3VzYWdlCisKK2luc3RhbGxfZGF0YSgKKyAgJ3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlLS0x LjAuc3FsJywKKyAgJ3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlLmNvbnRyb2wnLAorICBrd2FyZ3M6 IGNvbnRyaWJfZGF0YV9hcmdzLAorKQorCit0ZXN0cyArPSB7CisgICduYW1lJzogJ3BnX3Nlc3Np b25fYnVmZmVyX3VzYWdlJywKKyAgJ3NkJzogbWVzb24uY3VycmVudF9zb3VyY2VfZGlyKCksCisg ICdiZCc6IG1lc29uLmN1cnJlbnRfYnVpbGRfZGlyKCksCisgICdyZWdyZXNzJzogeworICAgICdz cWwnOiBbCisgICAgICAncGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UnLAorICAgIF0sCisgIH0sCit9 CmRpZmYgLS1naXQgYS9jb250cmliL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlL3BnX3Nlc3Npb25f YnVmZmVyX3VzYWdlLS0xLjAuc3FsIGIvY29udHJpYi9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS9w Z19zZXNzaW9uX2J1ZmZlcl91c2FnZS0tMS4wLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uYjMwMGZkYmM2NDMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3Bn X3Nlc3Npb25fYnVmZmVyX3VzYWdlL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlLS0xLjAuc3FsCkBA IC0wLDAgKzEsMzEgQEAKKy8qIGNvbnRyaWIvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UvcGdfc2Vz c2lvbl9idWZmZXJfdXNhZ2UtLTEuMC5zcWwgKi8KKworLS0gY29tcGxhaW4gaWYgc2NyaXB0IGlz IHNvdXJjZWQgaW4gcHNxbCwgcmF0aGVyIHRoYW4gdmlhIENSRUFURSBFWFRFTlNJT04KK1xlY2hv IFVzZSAiQ1JFQVRFIEVYVEVOU0lPTiBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZSIgdG8gbG9hZCB0 aGlzIGZpbGUuIFxxdWl0CisKK0NSRUFURSBGVU5DVElPTiBwZ19zZXNzaW9uX2J1ZmZlcl91c2Fn ZSgKKyAgICBPVVQgc2hhcmVkX2Jsa3NfaGl0IGJpZ2ludCwKKyAgICBPVVQgc2hhcmVkX2Jsa3Nf cmVhZCBiaWdpbnQsCisgICAgT1VUIHNoYXJlZF9ibGtzX2RpcnRpZWQgYmlnaW50LAorICAgIE9V VCBzaGFyZWRfYmxrc193cml0dGVuIGJpZ2ludCwKKyAgICBPVVQgbG9jYWxfYmxrc19oaXQgYmln aW50LAorICAgIE9VVCBsb2NhbF9ibGtzX3JlYWQgYmlnaW50LAorICAgIE9VVCBsb2NhbF9ibGtz X2RpcnRpZWQgYmlnaW50LAorICAgIE9VVCBsb2NhbF9ibGtzX3dyaXR0ZW4gYmlnaW50LAorICAg IE9VVCB0ZW1wX2Jsa3NfcmVhZCBiaWdpbnQsCisgICAgT1VUIHRlbXBfYmxrc193cml0dGVuIGJp Z2ludCwKKyAgICBPVVQgc2hhcmVkX2Jsa19yZWFkX3RpbWUgZG91YmxlIHByZWNpc2lvbiwKKyAg ICBPVVQgc2hhcmVkX2Jsa193cml0ZV90aW1lIGRvdWJsZSBwcmVjaXNpb24sCisgICAgT1VUIGxv Y2FsX2Jsa19yZWFkX3RpbWUgZG91YmxlIHByZWNpc2lvbiwKKyAgICBPVVQgbG9jYWxfYmxrX3dy aXRlX3RpbWUgZG91YmxlIHByZWNpc2lvbiwKKyAgICBPVVQgdGVtcF9ibGtfcmVhZF90aW1lIGRv dWJsZSBwcmVjaXNpb24sCisgICAgT1VUIHRlbXBfYmxrX3dyaXRlX3RpbWUgZG91YmxlIHByZWNp c2lvbgorKQorUkVUVVJOUyByZWNvcmQKK0FTICdNT0RVTEVfUEFUSE5BTUUnLCAncGdfc2Vzc2lv bl9idWZmZXJfdXNhZ2UnCitMQU5HVUFHRSBDIFBBUkFMTEVMIFJFU1RSSUNURUQ7CisKK0NSRUFU RSBGVU5DVElPTiBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZV9yZXNldCgpCitSRVRVUk5TIHZvaWQK K0FTICdNT0RVTEVfUEFUSE5BTUUnLCAncGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2VfcmVzZXQnCitM QU5HVUFHRSBDIFBBUkFMTEVMIFJFU1RSSUNURUQ7CmRpZmYgLS1naXQgYS9jb250cmliL3BnX3Nl c3Npb25fYnVmZmVyX3VzYWdlL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlLmMgYi9jb250cmliL3Bn X3Nlc3Npb25fYnVmZmVyX3VzYWdlL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIwZWQzYzExZWJkCi0tLSAvZGV2L251bGwK KysrIGIvY29udHJpYi9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS9wZ19zZXNzaW9uX2J1ZmZlcl91 c2FnZS5jCkBAIC0wLDAgKzEsOTYgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX3Nl c3Npb25fYnVmZmVyX3VzYWdlLmMKKyAqCSAgc2hvdyBidWZmZXIgdXNhZ2Ugc3RhdGlzdGljcyBm b3IgdGhlIGN1cnJlbnQgc2Vzc2lvbgorICoKKyAqIENvcHlyaWdodCAoYykgMjAyNiwgUG9zdGdy ZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKgkgIGNvbnRyaWIvcGdfc2Vzc2lv bl9idWZmZXJfdXNhZ2UvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UuYworICotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKi8KKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiYWNjZXNzL2h0dXBf ZGV0YWlscy5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL2luc3RydW1lbnQuaCIKKyNpbmNsdWRlICJm dW5jYXBpLmgiCisjaW5jbHVkZSAibGlicHEvYXV0aC5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5o IgorI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCisKK1BHX01PRFVMRV9NQUdJQ19FWFQoCisJ CQkJCS5uYW1lID0gInBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlIiwKKwkJCQkJLnZlcnNpb24gPSBQ R19WRVJTSU9OCispOworCisjZGVmaW5lIE5VTV9CVUZGRVJfVVNBR0VfQ09MVU1OUyAxNgorCitQ R19GVU5DVElPTl9JTkZPX1YxKHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlKTsKK1BHX0ZVTkNUSU9O X0lORk9fVjEocGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2VfcmVzZXQpOworCisjZGVmaW5lIEhBVkVf SU5TVFJfU1RBQ0sgMQkJLyogQ2hhbmdlIHRvIDAgd2hlbiB0ZXN0aW5nIGJlZm9yZSBzdGFjawor CQkJCQkJCQkgKiBjaGFuZ2UgKi8KKworLyoKKyAqIFNRTCBmdW5jdGlvbjogcGdfc2Vzc2lvbl9i dWZmZXJfdXNhZ2UoKQorICoKKyAqIFJldHVybnMgYSBzaW5nbGUgcm93IHdpdGggYWxsIEJ1ZmZl clVzYWdlIGNvdW50ZXJzIGFjY3VtdWxhdGVkIHNpbmNlIHRoZQorICogc3RhcnQgb2YgdGhlIHNl c3Npb24uIEV4Y2x1ZGVzIGFueSB1c2FnZSBub3QgeWV0IGFkZGVkIHRvIHRoZSB0b3Agb2YgdGhl CisgKiBzdGFjayAoZS5nLiBpZiB0aGlzIGdldHMgY2FsbGVkIGluc2lkZSBhIHN0YXRlbWVudCB0 aGF0IGFsc28gaGFkIGJ1ZmZlcgorICogYWN0aXZpdHkpLgorICovCitEYXR1bQorcGdfc2Vzc2lv bl9idWZmZXJfdXNhZ2UoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlUdXBsZURlc2MJdHVwZGVzYzsK KwlEYXR1bQkJdmFsdWVzW05VTV9CVUZGRVJfVVNBR0VfQ09MVU1OU107CisJYm9vbAkJbnVsbHNb TlVNX0JVRkZFUl9VU0FHRV9DT0xVTU5TXTsKKwlCdWZmZXJVc2FnZSAqdXNhZ2U7CisKKwlpZiAo Z2V0X2NhbGxfcmVzdWx0X3R5cGUoZmNpbmZvLCBOVUxMLCAmdHVwZGVzYykgIT0gVFlQRUZVTkNf Q09NUE9TSVRFKQorCQllbG9nKEVSUk9SLCAicmV0dXJuIHR5cGUgbXVzdCBiZSBhIHJvdyB0eXBl Iik7CisKKwltZW1zZXQobnVsbHMsIDAsIHNpemVvZihudWxscykpOworCisjaWYgSEFWRV9JTlNU Ul9TVEFDSworCXVzYWdlID0gJlRvcEluc3RyU3RhY2suYnVmdXNhZ2U7CisjZWxzZQorCXVzYWdl ID0gJnBnQnVmZmVyVXNhZ2U7CisjZW5kaWYKKworCXZhbHVlc1swXSA9IEludDY0R2V0RGF0dW0o dXNhZ2UtPnNoYXJlZF9ibGtzX2hpdCk7CisJdmFsdWVzWzFdID0gSW50NjRHZXREYXR1bSh1c2Fn ZS0+c2hhcmVkX2Jsa3NfcmVhZCk7CisJdmFsdWVzWzJdID0gSW50NjRHZXREYXR1bSh1c2FnZS0+ c2hhcmVkX2Jsa3NfZGlydGllZCk7CisJdmFsdWVzWzNdID0gSW50NjRHZXREYXR1bSh1c2FnZS0+ c2hhcmVkX2Jsa3Nfd3JpdHRlbik7CisJdmFsdWVzWzRdID0gSW50NjRHZXREYXR1bSh1c2FnZS0+ bG9jYWxfYmxrc19oaXQpOworCXZhbHVlc1s1XSA9IEludDY0R2V0RGF0dW0odXNhZ2UtPmxvY2Fs X2Jsa3NfcmVhZCk7CisJdmFsdWVzWzZdID0gSW50NjRHZXREYXR1bSh1c2FnZS0+bG9jYWxfYmxr c19kaXJ0aWVkKTsKKwl2YWx1ZXNbN10gPSBJbnQ2NEdldERhdHVtKHVzYWdlLT5sb2NhbF9ibGtz X3dyaXR0ZW4pOworCXZhbHVlc1s4XSA9IEludDY0R2V0RGF0dW0odXNhZ2UtPnRlbXBfYmxrc19y ZWFkKTsKKwl2YWx1ZXNbOV0gPSBJbnQ2NEdldERhdHVtKHVzYWdlLT50ZW1wX2Jsa3Nfd3JpdHRl bik7CisJdmFsdWVzWzEwXSA9IEZsb2F0OEdldERhdHVtKElOU1RSX1RJTUVfR0VUX01JTExJU0VD KHVzYWdlLT5zaGFyZWRfYmxrX3JlYWRfdGltZSkpOworCXZhbHVlc1sxMV0gPSBGbG9hdDhHZXRE YXR1bShJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyh1c2FnZS0+c2hhcmVkX2Jsa193cml0ZV90aW1l KSk7CisJdmFsdWVzWzEyXSA9IEZsb2F0OEdldERhdHVtKElOU1RSX1RJTUVfR0VUX01JTExJU0VD KHVzYWdlLT5sb2NhbF9ibGtfcmVhZF90aW1lKSk7CisJdmFsdWVzWzEzXSA9IEZsb2F0OEdldERh dHVtKElOU1RSX1RJTUVfR0VUX01JTExJU0VDKHVzYWdlLT5sb2NhbF9ibGtfd3JpdGVfdGltZSkp OworCXZhbHVlc1sxNF0gPSBGbG9hdDhHZXREYXR1bShJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyh1 c2FnZS0+dGVtcF9ibGtfcmVhZF90aW1lKSk7CisJdmFsdWVzWzE1XSA9IEZsb2F0OEdldERhdHVt KElOU1RSX1RJTUVfR0VUX01JTExJU0VDKHVzYWdlLT50ZW1wX2Jsa193cml0ZV90aW1lKSk7CisK KwlQR19SRVRVUk5fREFUVU0oSGVhcFR1cGxlR2V0RGF0dW0oaGVhcF9mb3JtX3R1cGxlKHR1cGRl c2MsIHZhbHVlcywgbnVsbHMpKSk7Cit9CisKKy8qCisgKiBTUUwgZnVuY3Rpb246IHBnX3Nlc3Np b25fYnVmZmVyX3VzYWdlX3Jlc2V0KCkKKyAqCisgKiBSZXNldHMgYWxsIEJ1ZmZlclVzYWdlIGNv dW50ZXJzIG9uIHRoZSB0b3AgaW5zdHJ1bWVudGF0aW9uIHN0YWNrIHRvIHplcm8uCisgKiBVc2Vm dWwgaW4gdGVzdHMgdG8gYXZvaWQgdGhlIGJhc2VsaW5lL2RlbHRhIHBhdHRlcm4uCisgKi8KK0Rh dHVtCitwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZV9yZXNldChQR19GVU5DVElPTl9BUkdTKQorewor I2lmIEhBVkVfSU5TVFJfU1RBQ0sKKwltZW1zZXQoJlRvcEluc3RyU3RhY2suYnVmdXNhZ2UsIDAs IHNpemVvZihCdWZmZXJVc2FnZSkpOworI2Vsc2UKKwltZW1zZXQoJnBnQnVmZmVyVXNhZ2UsIDAs IHNpemVvZihCdWZmZXJVc2FnZSkpOworI2VuZGlmCisKKwlQR19SRVRVUk5fVk9JRCgpOworfQpk aWZmIC0tZ2l0IGEvY29udHJpYi9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS9wZ19zZXNzaW9uX2J1 ZmZlcl91c2FnZS5jb250cm9sIGIvY29udHJpYi9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS9wZ19z ZXNzaW9uX2J1ZmZlcl91c2FnZS5jb250cm9sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi5mYWJkMDVlZTAyNAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcGdfc2Vz c2lvbl9idWZmZXJfdXNhZ2UvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UuY29udHJvbApAQCAtMCww ICsxLDUgQEAKKyMgcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UgZXh0ZW5zaW9uCitjb21tZW50ID0g J3Nob3cgYnVmZmVyIHVzYWdlIHN0YXRpc3RpY3MgZm9yIHRoZSBjdXJyZW50IHNlc3Npb24nCitk ZWZhdWx0X3ZlcnNpb24gPSAnMS4wJworbW9kdWxlX3BhdGhuYW1lID0gJyRsaWJkaXIvcGdfc2Vz c2lvbl9idWZmZXJfdXNhZ2UnCityZWxvY2F0YWJsZSA9IHRydWUKZGlmZiAtLWdpdCBhL2NvbnRy aWIvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2Uvc3FsL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlLnNx bCBiL2NvbnRyaWIvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2Uvc3FsL3BnX3Nlc3Npb25fYnVmZmVy X3VzYWdlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGY1ODEw ZmFkZDMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdl L3NxbC9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS5zcWwKQEAgLTAsMCArMSwyMDQgQEAKK0xPQUQg J3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlJzsKK0NSRUFURSBFWFRFTlNJT04gcGdfc2Vzc2lvbl9i dWZmZXJfdXNhZ2U7CisKKy0tIFZlcmlmeSBhbGwgY29sdW1ucyBhcmUgbm9uLW5lZ2F0aXZlCitT RUxFQ1QgY291bnQoKikgPSAxIEFTIG9rIEZST00gcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UoKQor V0hFUkUgc2hhcmVkX2Jsa3NfaGl0ID49IDAgQU5EIHNoYXJlZF9ibGtzX3JlYWQgPj0gMAorICBB TkQgc2hhcmVkX2Jsa3NfZGlydGllZCA+PSAwIEFORCBzaGFyZWRfYmxrc193cml0dGVuID49IDAK KyAgQU5EIGxvY2FsX2Jsa3NfaGl0ID49IDAgQU5EIGxvY2FsX2Jsa3NfcmVhZCA+PSAwCisgIEFO RCBsb2NhbF9ibGtzX2RpcnRpZWQgPj0gMCBBTkQgbG9jYWxfYmxrc193cml0dGVuID49IDAKKyAg QU5EIHRlbXBfYmxrc19yZWFkID49IDAgQU5EIHRlbXBfYmxrc193cml0dGVuID49IDAKKyAgQU5E IHNoYXJlZF9ibGtfcmVhZF90aW1lID49IDAgQU5EIHNoYXJlZF9ibGtfd3JpdGVfdGltZSA+PSAw CisgIEFORCBsb2NhbF9ibGtfcmVhZF90aW1lID49IDAgQU5EIGxvY2FsX2Jsa193cml0ZV90aW1l ID49IDAKKyAgQU5EIHRlbXBfYmxrX3JlYWRfdGltZSA+PSAwIEFORCB0ZW1wX2Jsa193cml0ZV90 aW1lID49IDA7CisKKy0tIFZlcmlmeSBjb3VudGVycyBpbmNyZWFzZSBhZnRlciBidWZmZXIgYWN0 aXZpdHkKK1NFTEVDVCBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZV9yZXNldCgpOworCitDUkVBVEUg VEVNUCBUQUJMRSB0ZXN0X2J1Zl9hY3Rpdml0eSAoaWQgaW50LCBkYXRhIHRleHQpOworSU5TRVJU IElOVE8gdGVzdF9idWZfYWN0aXZpdHkgU0VMRUNUIGksIHJlcGVhdCgneCcsIDEwMCkgRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMCkgQVMgaTsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHRlc3Rf YnVmX2FjdGl2aXR5OworCitTRUxFQ1QgbG9jYWxfYmxrc19oaXQgKyBsb2NhbF9ibGtzX3JlYWQg PiAwIEFTIGJsb2Nrc19pbmNyZWFzZWQKK0ZST00gcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UoKTsK KworRFJPUCBUQUJMRSB0ZXN0X2J1Zl9hY3Rpdml0eTsKKworLS0gUGFyYWxsZWwgcXVlcnkgdGVz dAorQ1JFQVRFIFRBQkxFIHBhcl9kY190YWIgKGEgaW50LCBiIGNoYXIoMjAwKSk7CitJTlNFUlQg SU5UTyBwYXJfZGNfdGFiIFNFTEVDVCBpLCByZXBlYXQoJ3gnLCAyMDApIEZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDUwMDApIEFTIGk7CisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBhcl9kY190YWI7 CisKKy0tIE1lYXN1cmUgc2VyaWFsIHNjYW4gZGVsdGEgKGxlYWRlciBkb2VzIGFsbCB0aGUgd29y aykKK1NFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0gMDsKKworU0VMRUNUIHBn X3Nlc3Npb25fYnVmZmVyX3VzYWdlX3Jlc2V0KCk7CitTRUxFQ1QgY291bnQoKikgRlJPTSBwYXJf ZGNfdGFiOworCitDUkVBVEUgVEVNUCBUQUJMRSBkY19zZXJpYWxfcmVzdWx0IEFTCitTRUxFQ1Qg c2hhcmVkX2Jsa3NfaGl0IEFTIHNlcmlhbF9kZWx0YSBGUk9NIHBnX3Nlc3Npb25fYnVmZmVyX3Vz YWdlKCk7CisKKy0tIE1lYXN1cmUgcGFyYWxsZWwgc2NhbiBkZWx0YSB3aXRoIGxlYWRlciBOT1Qg cGFydGljaXBhdGluZyBpbiBzY2FubmluZy4KKy0tIFdvcmtlcnMgZG8gYWxsIHRhYmxlIHNjYW5u aW5nOyBsZWFkZXIgb25seSBydW5zIHRoZSBHYXRoZXIgbm9kZS4KK1NFVCBwYXJhbGxlbF9zZXR1 cF9jb3N0ID0gMDsKK1NFVCBwYXJhbGxlbF90dXBsZV9jb3N0ID0gMDsKK1NFVCBtaW5fcGFyYWxs ZWxfdGFibGVfc2Nhbl9zaXplID0gMDsKK1NFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0 aGVyID0gMjsKK1NFVCBwYXJhbGxlbF9sZWFkZXJfcGFydGljaXBhdGlvbiA9IG9mZjsKKworU0VM RUNUIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlX3Jlc2V0KCk7CitTRUxFQ1QgY291bnQoKikgRlJP TSBwYXJfZGNfdGFiOworCistLSBDb25maXJtIHdlIGdvdCBhIHNpbWlsYXIgaGl0IGNvdW50ZXIg dGhyb3VnaCBwYXJhbGxlbCB3b3JrZXIgYWNjdW11bGF0aW9uCitTRUxFQ1Qgc2hhcmVkX2Jsa3Nf aGl0ID4gcy5zZXJpYWxfZGVsdGEgLyAyIEFORCBzaGFyZWRfYmxrc19oaXQgPCBzLnNlcmlhbF9k ZWx0YSAqIDIKKyAgICAgICBBUyBsZWFkZXJfYnVmZmVyc19tYXRjaAorRlJPTSBwZ19zZXNzaW9u X2J1ZmZlcl91c2FnZSgpLCBkY19zZXJpYWxfcmVzdWx0IHM7CisKK1JFU0VUIHBhcmFsbGVsX3Nl dHVwX2Nvc3Q7CitSRVNFVCBwYXJhbGxlbF90dXBsZV9jb3N0OworUkVTRVQgbWluX3BhcmFsbGVs X3RhYmxlX3NjYW5fc2l6ZTsKK1JFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXI7 CitSRVNFVCBwYXJhbGxlbF9sZWFkZXJfcGFydGljaXBhdGlvbjsKKworRFJPUCBUQUJMRSBwYXJf ZGNfdGFiLCBkY19zZXJpYWxfcmVzdWx0OworCistLQorLS0gQWJvcnQvZXhjZXB0aW9uIHRlc3Rz OiB2ZXJpZnkgYnVmZmVyIHVzYWdlIHN1cnZpdmVzIHZhcmlvdXMgZXJyb3IgcGF0aHMuCistLQor CistLSBSb2xsZWQtYmFjayBkaXZpZGUtYnktemVybyB1bmRlciBFWFBMQUlOIEFOQUxZWkUKK0NS RUFURSBURU1QIFRBQkxFIGV4Y190YWIgKGEgaW50LCBiIGNoYXIoMjApKTsKKworU0VMRUNUIHBn X3Nlc3Npb25fYnVmZmVyX3VzYWdlX3Jlc2V0KCk7CisKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZF UlMsIENPU1RTIE9GRikKKyAgICAgICAgV0lUSCBpbnMgQVMgKElOU0VSVCBJTlRPIGV4Y190YWIg VkFMVUVTICgxLCAnYWFhJykgUkVUVVJOSU5HIGEpCisgICAgICAgIFNFTEVDVCBhIC8gMCBGUk9N IGluczsKKworU0VMRUNUIGxvY2FsX2Jsa3NfZGlydGllZCA+IDAgQVMgZXhjZXB0aW9uX2J1ZmZl cnNfdmlzaWJsZQorRlJPTSBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZSgpOworCitEUk9QIFRBQkxF IGV4Y190YWI7CisKKy0tIFVuaXF1ZSBjb25zdHJhaW50IHZpb2xhdGlvbiBpbiByZWd1bGFyIHF1 ZXJ5CitDUkVBVEUgVEVNUCBUQUJMRSB1bmlxdWVfdGFiIChhIGludCBVTklRVUUsIGIgY2hhcigy MCkpOworSU5TRVJUIElOVE8gdW5pcXVlX3RhYiBWQUxVRVMgKDEsICdmaXJzdCcpOworCitTRUxF Q1QgcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2VfcmVzZXQoKTsKK0lOU0VSVCBJTlRPIHVuaXF1ZV90 YWIgVkFMVUVTICgxLCAnZHVwbGljYXRlJyk7CisKK1NFTEVDVCBsb2NhbF9ibGtzX2hpdCA+IDAg QVMgdW5pcXVlX3Zpb2xhdGlvbl9idWZmZXJzX3Zpc2libGUKK0ZST00gcGdfc2Vzc2lvbl9idWZm ZXJfdXNhZ2UoKTsKKworRFJPUCBUQUJMRSB1bmlxdWVfdGFiOworCistLSBDYXVnaHQgZXhjZXB0 aW9uIGluIFBML3BnU1FMIHN1YnRyYW5zYWN0aW9uIChCRUdJTi4uLkVYQ0VQVElPTikKK0NSRUFU RSBURU1QIFRBQkxFIHN1YnhhY3RfdGFiIChhIGludCwgYiBjaGFyKDIwKSk7CisKK0NSRUFURSBG VU5DVElPTiBzdWJ4YWN0X2V4Y19mdW5jKCkgUkVUVVJOUyB0ZXh0IEFTICQkCitCRUdJTgorICAg IEJFR0lOCisgICAgICAgIEVYRUNVVEUgJ0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMsIENPU1RT IE9GRikKKyAgICAgICAgICAgIFdJVEggaW5zIEFTIChJTlNFUlQgSU5UTyBzdWJ4YWN0X3RhYiBW QUxVRVMgKDEsICcnYWFhJycpIFJFVFVSTklORyBhKQorICAgICAgICAgICAgU0VMRUNUIGEgLyAw IEZST00gaW5zJzsKKyAgICBFWENFUFRJT04gV0hFTiBkaXZpc2lvbl9ieV96ZXJvIFRIRU4KKyAg ICAgICAgUkVUVVJOICdjYXVnaHQnOworICAgIEVORDsKKyAgICBSRVRVUk4gJ25vdCByZWFjaGVk JzsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBwZ19zZXNzaW9uX2J1ZmZl cl91c2FnZV9yZXNldCgpOworU0VMRUNUIHN1YnhhY3RfZXhjX2Z1bmMoKTsKKworU0VMRUNUIGxv Y2FsX2Jsa3NfZGlydGllZCA+IDAgQVMgc3VieGFjdF9idWZmZXJzX3Zpc2libGUKK0ZST00gcGdf c2Vzc2lvbl9idWZmZXJfdXNhZ2UoKTsKKworRFJPUCBGVU5DVElPTiBzdWJ4YWN0X2V4Y19mdW5j OworRFJPUCBUQUJMRSBzdWJ4YWN0X3RhYjsKKworLS0gQ3Vyc29yIChGT1IgbG9vcCkgaW4gYWJv cnRlZCBzdWJ0cmFuc2FjdGlvbjsgdmVyaWZ5IHBvc3QtZXhjZXB0aW9uIHRyYWNraW5nCitDUkVB VEUgVEVNUCBUQUJMRSBjdXJzb3JfdGFiIChhIGludCwgYiBjaGFyKDIwMCkpOworSU5TRVJUIElO VE8gY3Vyc29yX3RhYiBTRUxFQ1QgaSwgcmVwZWF0KCd4JywgMjAwKSBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCA1MDApIEFTIGk7CisKK0NSRUFURSBGVU5DVElPTiBjdXJzb3JfZXhjX2Z1bmMoKSBS RVRVUk5TIHRleHQgQVMgJCQKK0RFQ0xBUkUKKyAgICByZWMgcmVjb3JkOworICAgIGNudCBpbnQg Oj0gMDsKK0JFR0lOCisgICAgQkVHSU4KKyAgICAgICAgRk9SIHJlYyBJTiBTRUxFQ1QgKiBGUk9N IGN1cnNvcl90YWIgTE9PUAorICAgICAgICAgICAgY250IDo9IGNudCArIDE7CisgICAgICAgICAg ICBJRiBjbnQgPSAyNTAgVEhFTgorICAgICAgICAgICAgICAgIFBFUkZPUk0gMSAvIDA7CisgICAg ICAgICAgICBFTkQgSUY7CisgICAgICAgIEVORCBMT09QOworICAgIEVYQ0VQVElPTiBXSEVOIGRp dmlzaW9uX2J5X3plcm8gVEhFTgorICAgICAgICBSRVRVUk4gJ2NhdWdodCBhZnRlciAnIHx8IGNu dCB8fCAnIHJvd3MnOworICAgIEVORDsKKyAgICBSRVRVUk4gJ25vdCByZWFjaGVkJzsKK0VORDsK KyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZV9y ZXNldCgpOworU0VMRUNUIGN1cnNvcl9leGNfZnVuYygpOworCitTRUxFQ1QgbG9jYWxfYmxrc19o aXQgKyBsb2NhbF9ibGtzX3JlYWQgPiAwCisgICAgICAgQVMgY3Vyc29yX3N1YnhhY3RfYnVmZmVy c192aXNpYmxlCitGUk9NIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlKCk7CisKK0RST1AgRlVOQ1RJ T04gY3Vyc29yX2V4Y19mdW5jOworRFJPUCBUQUJMRSBjdXJzb3JfdGFiOworCistLSBQYXJhbGxl bCB3b3JrZXIgYWJvcnQ6IHdvcmtlciBidWZmZXIgYWN0aXZpdHkgaXMgY3VycmVudGx5IE5PVCBw cm9wYWdhdGVkIG9uIGFib3J0LgorLS0KKy0tIFdoZW4gYSBwYXJhbGxlbCB3b3JrZXIgYWJvcnRz LCBJbnN0ckVuZFBhcmFsbGVsUXVlcnkgYW5kCistLSBFeGVjUGFyYWxsZWxSZXBvcnRJbnN0cnVt ZW50YXRpb24gbmV2ZXIgcnVuLCBzbyB0aGUgd29ya2VyJ3MgYnVmZmVyCistLSBhY3Rpdml0eSBp cyBuZXZlciB3cml0dGVuIHRvIHNoYXJlZCBtZW1vcnksIGRlc3BpdGUgdGhlIGluZm9ybWF0aW9u IGhhdmluZyBiZWVuCistLSBjYXB0dXJlZCBieSB0aGUgcmVzIG93bmVyIHJlbGVhc2UgaW5zdHJ1 bWVudGF0aW9uIGhhbmRsaW5nLgorQ1JFQVRFIFRBQkxFIHBhcl9hYm9ydF90YWIgKGEgaW50LCBi IGNoYXIoMjAwKSk7CitJTlNFUlQgSU5UTyBwYXJfYWJvcnRfdGFiIFNFTEVDVCBpLCByZXBlYXQo J3gnLCAyMDApIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMDApIEFTIGk7CisKKy0tIFdhcm0g c2hhcmVkIGJ1ZmZlcnMgc28gYWxsIHJlYWRzIGJlY29tZSBoaXRzCitTRUxFQ1QgY291bnQoKikg RlJPTSBwYXJfYWJvcnRfdGFiOworCistLSBNZWFzdXJlIHNlcmlhbCBzY2FuIGRlbHRhIGFzIGEg cmVmZXJlbmNlIChsZWFkZXIgcmVhZHMgYWxsIGJsb2NrcykKK1NFVCBtYXhfcGFyYWxsZWxfd29y a2Vyc19wZXJfZ2F0aGVyID0gMDsKKworU0VMRUNUIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlX3Jl c2V0KCk7CitTRUxFQ1QgYjo6aW50MiBGUk9NIHBhcl9hYm9ydF90YWIgV0hFUkUgYSA+IDEwMDA7 CisKK0NSRUFURSBUQUJMRSBwYXJfYWJvcnRfc2VyaWFsX3Jlc3VsdCBBUworU0VMRUNUIHNoYXJl ZF9ibGtzX2hpdCBBUyBzZXJpYWxfZGVsdGEgRlJPTSBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZSgp OworCistLSBOb3cgZm9yY2UgcGFyYWxsZWwgd2l0aCBsZWFkZXIgTk9UIHBhcnRpY2lwYXRpbmcg aW4gc2Nhbm5pbmcKK1NFVCBwYXJhbGxlbF9zZXR1cF9jb3N0ID0gMDsKK1NFVCBwYXJhbGxlbF90 dXBsZV9jb3N0ID0gMDsKK1NFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplID0gMDsKK1NF VCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0gMjsKK1NFVCBwYXJhbGxlbF9sZWFk ZXJfcGFydGljaXBhdGlvbiA9IG9mZjsKK1NFVCBkZWJ1Z19wYXJhbGxlbF9xdWVyeSA9IG9uOyAt LSBFbnN1cmUgd2UgZ2V0IENPTlRFWFQgbGluZSBjb25zaXN0ZW50bHkKKworU0VMRUNUIHBnX3Nl c3Npb25fYnVmZmVyX3VzYWdlX3Jlc2V0KCk7CitTRUxFQ1QgYjo6aW50MiBGUk9NIHBhcl9hYm9y dF90YWIgV0hFUkUgYSA+IDEwMDA7CisKK1JFU0VUIGRlYnVnX3BhcmFsbGVsX3F1ZXJ5OworCist LSBXb3JrZXJzIHNjYW5uZWQgdGhlIHRhYmxlIGJ1dCBhYm9ydGVkIGJlZm9yZSByZXBvcnRpbmcg c3RhdHMgYmFjay4KKy0tIFRoZSBsZWFkZXIncyBkZWx0YSBzaG91bGQgYmUgbXVjaCBsZXNzIHRo YW4gYSBzZXJpYWwgc2NhbiwgZG9jdW1lbnRpbmcKKy0tIHRoYXQgd29ya2VyIGJ1ZmZlciBhY3Rp dml0eSBpcyBsb3N0IG9uIGFib3J0LgorU0VMRUNUIHNoYXJlZF9ibGtzX2hpdCA8IHMuc2VyaWFs X2RlbHRhIC8gMgorICAgICAgIEFTIHdvcmtlcl9hYm9ydF9idWZmZXJzX25vdF9wcm9wYWdhdGVk CitGUk9NIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlKCksIHBhcl9hYm9ydF9zZXJpYWxfcmVzdWx0 IHM7CisKK1JFU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3Q7CitSRVNFVCBwYXJhbGxlbF90dXBsZV9j b3N0OworUkVTRVQgbWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6ZTsKK1JFU0VUIG1heF9wYXJh bGxlbF93b3JrZXJzX3Blcl9nYXRoZXI7CitSRVNFVCBwYXJhbGxlbF9sZWFkZXJfcGFydGljaXBh dGlvbjsKKworRFJPUCBUQUJMRSBwYXJfYWJvcnRfdGFiLCBwYXJfYWJvcnRfc2VyaWFsX3Jlc3Vs dDsKKworLS0gQ2xlYW51cAorRFJPUCBFWFRFTlNJT04gcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2U7 Ci0tIAoyLjQ3LjEKCg== --000000000000702390064b8a3016 Content-Type: application/octet-stream; name="v6-0007-Index-scans-Show-table-buffer-accesses-separately.patch" Content-Disposition: attachment; filename="v6-0007-Index-scans-Show-table-buffer-accesses-separately.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm02xady6 RnJvbSBmNDdhYzQyNTgxN2Y2YjU5ZjNiNjgzODRlN2M4NjQwMDcwMjQxYmFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBN b24sIDEyIEphbiAyMDI2IDE4OjIzOjAzIC0wODAwClN1YmplY3Q6IFtQQVRDSCB2NiA3LzhdIElu ZGV4IHNjYW5zOiBTaG93IHRhYmxlIGJ1ZmZlciBhY2Nlc3NlcyBzZXBhcmF0ZWx5IGluCiBFWFBM QUlOIEFOQUxZWkUKClRoaXMgc2V0cyB1cCBhIHNlcGFyYXRlIGluc3RydW1lbnRhdGlvbiBzdGFj ayB0aGF0IGlzIHVzZWQgd2hpbHN0IGFuIEluZGV4IFNjYW4KZG9lcyBzY2FubmluZyBvbiB0aGUg dGFibGUsIGZvciBleGFtcGxlIGR1ZSB0byBhZGRpdGlvbmFsIGRhdGEgYmVpbmcgbmVlZGVkLgoK RVhQTEFJTiBBTkFMWVpFIHdpbGwgbm93IHNob3cgIlRhYmxlIEJ1ZmZlcnMiIHRoYXQgcmVwcmVz ZW50IHN1Y2ggYWN0aXZpdHkuIFRoZQphY3Rpdml0eSBpcyBhbHNvIGluY2x1ZGVkIGluIHJlZ3Vs YXIgIkJ1ZmZlcnMiIHRvZ2V0aGVyIHdpdGggaW5kZXggYWN0aXZpdHkgYW5kCnRoYXQgb2YgYW55 IGNoaWxkIG5vZGVzLgoKQXV0aG9yOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpTdWdn ZXN0ZWQtYnk6IEFuZHJlcyBGcmV1bmQgPGFuZHJlc0BhbmFyYXplbC5kZT4KUmV2aWV3ZWQtYnk6 CkRpc2N1c3Npb246Ci0tLQogZG9jL3NyYy9zZ21sL3BlcmZvcm0uc2dtbCAgICAgICAgICAgICAg fCAxMyArKysrLS0KIGRvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sICAgICAgICAgIHwgIDEg Kwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jICAgICAgICAgfCA1NSArKysrKysrKysr KysrKystLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1Byb2Nub2RlLmMgICAg fCAyOCArKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMgICAg ICB8IDUzICsrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVJbmRleHNjYW4uYyAgIHwgMjMgKysrKysrKysrKy0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2lu c3RydW1lbnQuaCAgICAgIHwgIDUgKysrCiBzcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50 X25vZGUuaCB8ICA1ICsrKwogc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAg fCAgNyArKysrCiA5IGZpbGVzIGNoYW5nZWQsIDE2MiBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGVyZm9ybS5zZ21sIGIvZG9jL3NyYy9z Z21sL3BlcmZvcm0uc2dtbAppbmRleCA1ZjZmMWRiMDQ2Ny4uOTIxOTYyNWZhZjYgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9wZXJmb3JtLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3BlcmZvcm0u c2dtbApAQCAtNzM0LDYgKzczNCw3IEBAIFdIRVJFIHQxLnVuaXF1ZTEgJmx0OyAxMCBBTkQgdDEu dW5pcXVlMiA9IHQyLnVuaXF1ZTI7CiAgICAtJmd0OyAgSW5kZXggU2NhbiB1c2luZyB0ZW5rMl91 bmlxdWUyIG9uIHRlbmsyIHQyICAoY29zdD0wLjI5Li43LjkwIHJvd3M9MSB3aWR0aD0yNDQpIChh Y3R1YWwgdGltZT0wLjAwMy4uMC4wMDMgcm93cz0xLjAwIGxvb3BzPTEwKQogICAgICAgICAgSW5k ZXggQ29uZDogKHVuaXF1ZTIgPSB0MS51bmlxdWUyKQogICAgICAgICAgSW5kZXggU2VhcmNoZXM6 IDEwCisgICAgICAgICBUYWJsZSBCdWZmZXJzOiBzaGFyZWQgaGl0PTEwCiAgICAgICAgICBCdWZm ZXJzOiBzaGFyZWQgaGl0PTI0IHJlYWQ9NgogIFBsYW5uaW5nOgogICAgQnVmZmVyczogc2hhcmVk IGhpdD0xNSBkaXJ0aWVkPTkKQEAgLTk0OSw3ICs5NTAsOCBAQCBFWFBMQUlOIEFOQUxZWkUgU0VM RUNUICogRlJPTSBwb2x5Z29uX3RibCBXSEVSRSBmMSBAJmd0OyBwb2x5Z29uICcoMC41LDIuMCkn OwogICAgSW5kZXggQ29uZDogKGYxIEAmZ3Q7ICcoKDAuNSwyKSknOjpwb2x5Z29uKQogICAgUm93 cyBSZW1vdmVkIGJ5IEluZGV4IFJlY2hlY2s6IDEKICAgIEluZGV4IFNlYXJjaGVzOiAxCi0gICBC dWZmZXJzOiBzaGFyZWQgaGl0PTEKKyAgIFRhYmxlIEJ1ZmZlcnM6IHNoYXJlZCBoaXQ9MQorICAg QnVmZmVyczogc2hhcmVkIGhpdD0yCiAgUGxhbm5pbmcgVGltZTogMC4wMzkgbXMKICBFeGVjdXRp b24gVGltZTogMC4wOTggbXMKIDwvc2NyZWVuPgpAQCAtOTU4LDcgKzk2MCw5IEBAIEVYUExBSU4g QU5BTFlaRSBTRUxFQ1QgKiBGUk9NIHBvbHlnb25fdGJsIFdIRVJFIGYxIEAmZ3Q7IHBvbHlnb24g JygwLjUsMi4wKSc7CiAgICAgdGhlbiByZWplY3RlZCBieSBhIHJlY2hlY2sgb2YgdGhlIGluZGV4 IGNvbmRpdGlvbi4gIFRoaXMgaGFwcGVucyBiZWNhdXNlIGEKICAgICBHaVNUIGluZGV4IGlzIDxx dW90ZT5sb3NzeTwvcXVvdGU+IGZvciBwb2x5Z29uIGNvbnRhaW5tZW50IHRlc3RzOiBpdCBhY3R1 YWxseQogICAgIHJldHVybnMgdGhlIHJvd3Mgd2l0aCBwb2x5Z29ucyB0aGF0IG92ZXJsYXAgdGhl IHRhcmdldCwgYW5kIHRoZW4gd2UgaGF2ZQotICAgIHRvIGRvIHRoZSBleGFjdCBjb250YWlubWVu dCB0ZXN0IG9uIHRob3NlIHJvd3MuCisgICAgdG8gZG8gdGhlIGV4YWN0IGNvbnRhaW5tZW50IHRl c3Qgb24gdGhvc2Ugcm93cy4gVGhlIDxsaXRlcmFsPlRhYmxlIEJ1ZmZlcnM8L2xpdGVyYWw+Cisg ICAgY291bnRzIGluZGljYXRlIGhvdyBtYW55IG9wZXJhdGlvbnMgd2VyZSBwZXJmb3JtZWQgb24g dGhlIHRhYmxlIGluc3RlYWQgb2YKKyAgICB0aGUgaW5kZXguIFRoaXMgbnVtYmVyIGlzIGluY2x1 ZGVkIGluIHRoZSA8bGl0ZXJhbD5CdWZmZXJzPC9saXRlcmFsPiBjb3VudHMuCiAgICA8L3BhcmE+ CiAKICAgIDxwYXJhPgpAQCAtMTE0NywxMyArMTE1MSwxNCBAQCBFWFBMQUlOIEFOQUxZWkUgU0VM RUNUICogRlJPTSB0ZW5rMSBXSEVSRSB1bmlxdWUxICZsdDsgMTAwIEFORCB1bmlxdWUyICZndDsg OTAwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0mendzcDstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBMaW1pdCAgKGNvc3Q9MC4y OS4uMTQuMzMgcm93cz0yIHdpZHRoPTI0NCkgKGFjdHVhbCB0aW1lPTAuMDUxLi4wLjA3MSByb3dz PTIuMDAgbG9vcHM9MSkKLSAgIEJ1ZmZlcnM6IHNoYXJlZCBoaXQ9MTYKKyAgIEJ1ZmZlcnM6IHNo YXJlZCBoaXQ9MTQKICAgIC0mZ3Q7ICBJbmRleCBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTIgb24g dGVuazEgIChjb3N0PTAuMjkuLjcwLjUwIHJvd3M9MTAgd2lkdGg9MjQ0KSAoYWN0dWFsIHRpbWU9 MC4wNTEuLjAuMDcwIHJvd3M9Mi4wMCBsb29wcz0xKQogICAgICAgICAgSW5kZXggQ29uZDogKHVu aXF1ZTIgJmd0OyA5MDAwKQogICAgICAgICAgRmlsdGVyOiAodW5pcXVlMSAmbHQ7IDEwMCkKICAg ICAgICAgIFJvd3MgUmVtb3ZlZCBieSBGaWx0ZXI6IDI4NwogICAgICAgICAgSW5kZXggU2VhcmNo ZXM6IDEKLSAgICAgICAgIEJ1ZmZlcnM6IHNoYXJlZCBoaXQ9MTYKKyAgICAgICAgIFRhYmxlIEJ1 ZmZlcnM6IHNoYXJlZCBoaXQ9MTEKKyAgICAgICAgIEJ1ZmZlcnM6IHNoYXJlZCBoaXQ9MTQKICBQ bGFubmluZyBUaW1lOiAwLjA3NyBtcwogIEV4ZWN1dGlvbiBUaW1lOiAwLjA4NiBtcwogPC9zY3Jl ZW4+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2V4cGxhaW4uc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWYvZXhwbGFpbi5zZ21sCmluZGV4IDdkZWU3N2ZkMzY2Li45MTJjOTZmMmZmNSAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9leHBsYWluLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi9leHBsYWluLnNnbWwKQEAgLTUwNiw2ICs1MDYsNyBAQCBFWFBMQUlOIEFOQUxZWkUgRVhF Q1VURSBxdWVyeSgxMDAsIDIwMCk7CiAgICAtJmd0OyAgSW5kZXggU2NhbiB1c2luZyB0ZXN0X3Br ZXkgb24gdGVzdCAgKGNvc3Q9MC4yOS4uMTAuMjcgcm93cz05OSB3aWR0aD04KSAoYWN0dWFsIHRp bWU9MC4wMDkuLjAuMDI1IHJvd3M9OTkuMDAgbG9vcHM9MSkKICAgICAgICAgIEluZGV4IENvbmQ6 ICgoaWQgJmd0OyAxMDApIEFORCAoaWQgJmx0OyAyMDApKQogICAgICAgICAgSW5kZXggU2VhcmNo ZXM6IDEKKyAgICAgICAgIFRhYmxlIEJ1ZmZlcnM6IHNoYXJlZCBoaXQ9MQogICAgICAgICAgQnVm ZmVyczogc2hhcmVkIGhpdD00CiAgUGxhbm5pbmcgVGltZTogMC4yNDQgbXMKICBFeGVjdXRpb24g VGltZTogMC4wNzMgbXMKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4u YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwppbmRleCBiMzVhZWEyNDZjZi4uMDU0 YzViY2U4MzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKQEAgLTE0Myw3ICsxNDMsNyBAQCBzdGF0 aWMgdm9pZCBzaG93X2luc3RydW1lbnRhdGlvbl9jb3VudChjb25zdCBjaGFyICpxbGFiZWwsIGlu dCB3aGljaCwKIHN0YXRpYyB2b2lkIHNob3dfZm9yZWlnbnNjYW5faW5mbyhGb3JlaWduU2NhblN0 YXRlICpmc3N0YXRlLCBFeHBsYWluU3RhdGUgKmVzKTsKIHN0YXRpYyBjb25zdCBjaGFyICpleHBs YWluX2dldF9pbmRleF9uYW1lKE9pZCBpbmRleElkKTsKIHN0YXRpYyBib29sIHBlZWtfYnVmZmVy X3VzYWdlKEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IEJ1ZmZlclVzYWdlICp1c2FnZSk7Ci1zdGF0 aWMgdm9pZCBzaG93X2J1ZmZlcl91c2FnZShFeHBsYWluU3RhdGUgKmVzLCBjb25zdCBCdWZmZXJV c2FnZSAqdXNhZ2UpOworc3RhdGljIHZvaWQgc2hvd19idWZmZXJfdXNhZ2UoRXhwbGFpblN0YXRl ICplcywgY29uc3QgQnVmZmVyVXNhZ2UgKnVzYWdlLCBjb25zdCBjaGFyICp0aXRsZSk7CiBzdGF0 aWMgdm9pZCBzaG93X3dhbF91c2FnZShFeHBsYWluU3RhdGUgKmVzLCBjb25zdCBXYWxVc2FnZSAq dXNhZ2UpOwogc3RhdGljIHZvaWQgc2hvd19tZW1vcnlfY291bnRlcnMoRXhwbGFpblN0YXRlICpl cywKIAkJCQkJCQkJIGNvbnN0IE1lbW9yeUNvbnRleHRDb3VudGVycyAqbWVtX2NvdW50ZXJzKTsK QEAgLTYwMyw3ICs2MDMsNyBAQCBFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0 bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJCX0KIAogCQlpZiAoYnVm dXNhZ2UpCi0JCQlzaG93X2J1ZmZlcl91c2FnZShlcywgYnVmdXNhZ2UpOworCQkJc2hvd19idWZm ZXJfdXNhZ2UoZXMsIGJ1ZnVzYWdlLCBOVUxMKTsKIAogCQlpZiAobWVtX2NvdW50ZXJzKQogCQkJ c2hvd19tZW1vcnlfY291bnRlcnMoZXMsIG1lbV9jb3VudGVycyk7CkBAIC0xMDIwLDcgKzEwMjAs NyBAQCBFeHBsYWluUHJpbnRTZXJpYWxpemUoRXhwbGFpblN0YXRlICplcywgU2VyaWFsaXplTWV0 cmljcyAqbWV0cmljcykKIAkJaWYgKGVzLT5idWZmZXJzICYmIHBlZWtfYnVmZmVyX3VzYWdlKGVz LCAmbWV0cmljcy0+YnVmZmVyVXNhZ2UpKQogCQl7CiAJCQllcy0+aW5kZW50Kys7Ci0JCQlzaG93 X2J1ZmZlcl91c2FnZShlcywgJm1ldHJpY3MtPmJ1ZmZlclVzYWdlKTsKKwkJCXNob3dfYnVmZmVy X3VzYWdlKGVzLCAmbWV0cmljcy0+YnVmZmVyVXNhZ2UsIE5VTEwpOwogCQkJZXMtPmluZGVudC0t OwogCQl9CiAJfQpAQCAtMTAzNCw3ICsxMDM0LDcgQEAgRXhwbGFpblByaW50U2VyaWFsaXplKEV4 cGxhaW5TdGF0ZSAqZXMsIFNlcmlhbGl6ZU1ldHJpY3MgKm1ldHJpY3MpCiAJCQkJCQkJCUJZVEVT X1RPX0tJTE9CWVRFUyhtZXRyaWNzLT5ieXRlc1NlbnQpLCBlcyk7CiAJCUV4cGxhaW5Qcm9wZXJ0 eVRleHQoIkZvcm1hdCIsIGZvcm1hdCwgZXMpOwogCQlpZiAoZXMtPmJ1ZmZlcnMpCi0JCQlzaG93 X2J1ZmZlcl91c2FnZShlcywgJm1ldHJpY3MtPmJ1ZmZlclVzYWdlKTsKKwkJCXNob3dfYnVmZmVy X3VzYWdlKGVzLCAmbWV0cmljcy0+YnVmZmVyVXNhZ2UsIE5VTEwpOwogCX0KIAogCUV4cGxhaW5D bG9zZUdyb3VwKCJTZXJpYWxpemF0aW9uIiwgIlNlcmlhbGl6YXRpb24iLCB0cnVlLCBlcyk7CkBA IC0xOTYyLDYgKzE5NjIsOSBAQCBFeHBsYWluTm9kZShQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgTGlz dCAqYW5jZXN0b3JzLAogCQkJCXNob3dfaW5zdHJ1bWVudGF0aW9uX2NvdW50KCJSb3dzIFJlbW92 ZWQgYnkgRmlsdGVyIiwgMSwKIAkJCQkJCQkJCQkgICBwbGFuc3RhdGUsIGVzKTsKIAkJCXNob3df aW5kZXhzZWFyY2hlc19pbmZvKHBsYW5zdGF0ZSwgZXMpOworCisJCQlpZiAoZXMtPmJ1ZmZlcnMg JiYgcGxhbnN0YXRlLT5pbnN0cnVtZW50KQorCQkJCXNob3dfYnVmZmVyX3VzYWdlKGVzLCAmKChJ bmRleFNjYW5TdGF0ZSAqKSBwbGFuc3RhdGUpLT5pc3NfSW5zdHJ1bWVudFRhYmxlU3RhY2stPmJ1 ZnVzYWdlLCAiVGFibGUiKTsKIAkJCWJyZWFrOwogCQljYXNlIFRfSW5kZXhPbmx5U2NhbjoKIAkJ CXNob3dfc2Nhbl9xdWFsKCgoSW5kZXhPbmx5U2NhbiAqKSBwbGFuKS0+aW5kZXhxdWFsLApAQCAt MjI4MCw3ICsyMjgzLDcgQEAgRXhwbGFpbk5vZGUoUGxhblN0YXRlICpwbGFuc3RhdGUsIExpc3Qg KmFuY2VzdG9ycywKIAogCS8qIFNob3cgYnVmZmVyL1dBTCB1c2FnZSAqLwogCWlmIChlcy0+YnVm ZmVycyAmJiBwbGFuc3RhdGUtPmluc3RydW1lbnQpCi0JCXNob3dfYnVmZmVyX3VzYWdlKGVzLCAm cGxhbnN0YXRlLT5pbnN0cnVtZW50LT5zdGFjay5idWZ1c2FnZSk7CisJCXNob3dfYnVmZmVyX3Vz YWdlKGVzLCAmcGxhbnN0YXRlLT5pbnN0cnVtZW50LT5zdGFjay5idWZ1c2FnZSwgTlVMTCk7CiAJ aWYgKGVzLT53YWwgJiYgcGxhbnN0YXRlLT5pbnN0cnVtZW50KQogCQlzaG93X3dhbF91c2FnZShl cywgJnBsYW5zdGF0ZS0+aW5zdHJ1bWVudC0+c3RhY2sud2FsdXNhZ2UpOwogCkBAIC0yMjk5LDcg KzIzMDIsNyBAQCBFeHBsYWluTm9kZShQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgTGlzdCAqYW5jZXN0 b3JzLAogCiAJCQlFeHBsYWluT3BlbldvcmtlcihuLCBlcyk7CiAJCQlpZiAoZXMtPmJ1ZmZlcnMp Ci0JCQkJc2hvd19idWZmZXJfdXNhZ2UoZXMsICZpbnN0cnVtZW50LT5zdGFjay5idWZ1c2FnZSk7 CisJCQkJc2hvd19idWZmZXJfdXNhZ2UoZXMsICZpbnN0cnVtZW50LT5zdGFjay5idWZ1c2FnZSwg TlVMTCk7CiAJCQlpZiAoZXMtPndhbCkKIAkJCQlzaG93X3dhbF91c2FnZShlcywgJmluc3RydW1l bnQtPnN0YWNrLndhbHVzYWdlKTsKIAkJCUV4cGxhaW5DbG9zZVdvcmtlcihuLCBlcyk7CkBAIC00 MDk5LDcgKzQxMDIsNyBAQCBwZWVrX2J1ZmZlcl91c2FnZShFeHBsYWluU3RhdGUgKmVzLCBjb25z dCBCdWZmZXJVc2FnZSAqdXNhZ2UpCiAgKiBTaG93IGJ1ZmZlciB1c2FnZSBkZXRhaWxzLiAgVGhp cyBiZXR0ZXIgYmUgc3luYyB3aXRoIHBlZWtfYnVmZmVyX3VzYWdlLgogICovCiBzdGF0aWMgdm9p ZAotc2hvd19idWZmZXJfdXNhZ2UoRXhwbGFpblN0YXRlICplcywgY29uc3QgQnVmZmVyVXNhZ2Ug KnVzYWdlKQorc2hvd19idWZmZXJfdXNhZ2UoRXhwbGFpblN0YXRlICplcywgY29uc3QgQnVmZmVy VXNhZ2UgKnVzYWdlLCBjb25zdCBjaGFyICp0aXRsZSkKIHsKIAlpZiAoZXMtPmZvcm1hdCA9PSBF WFBMQUlOX0ZPUk1BVF9URVhUKQogCXsKQEAgLTQxMjQsNiArNDEyNyw4IEBAIHNob3dfYnVmZmVy X3VzYWdlKEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IEJ1ZmZlclVzYWdlICp1c2FnZSkKIAkJaWYg KGhhc19zaGFyZWQgfHwgaGFzX2xvY2FsIHx8IGhhc190ZW1wKQogCQl7CiAJCQlFeHBsYWluSW5k ZW50VGV4dChlcyk7CisJCQlpZiAodGl0bGUpCisJCQkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3Ry LCAiJXMgIiwgdGl0bGUpOwogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhlcy0+c3RyLCAiQnVm ZmVyczoiKTsKIAogCQkJaWYgKGhhc19zaGFyZWQpCkBAIC00MTc5LDYgKzQxODQsOCBAQCBzaG93 X2J1ZmZlcl91c2FnZShFeHBsYWluU3RhdGUgKmVzLCBjb25zdCBCdWZmZXJVc2FnZSAqdXNhZ2Up CiAJCWlmIChoYXNfc2hhcmVkX3RpbWluZyB8fCBoYXNfbG9jYWxfdGltaW5nIHx8IGhhc190ZW1w X3RpbWluZykKIAkJewogCQkJRXhwbGFpbkluZGVudFRleHQoZXMpOworCQkJaWYgKHRpdGxlKQor CQkJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwgIiVzICIsIHRpdGxlKTsKIAkJCWFwcGVuZFN0 cmluZ0luZm9TdHJpbmcoZXMtPnN0ciwgIkkvTyBUaW1pbmdzOiIpOwogCiAJCQlpZiAoaGFzX3No YXJlZF90aW1pbmcpCkBAIC00MjIwLDQ0ICs0MjI3LDQ2IEBAIHNob3dfYnVmZmVyX3VzYWdlKEV4 cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IEJ1ZmZlclVzYWdlICp1c2FnZSkKIAl9CiAJZWxzZQogCXsK LQkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiU2hhcmVkIEhpdCBCbG9ja3MiLCBOVUxMLAorCQlj aGFyCSAgICpwcmVmaXggPSB0aXRsZSA/IHBzcHJpbnRmKCIlcyAiLCB0aXRsZSkgOiBwc3RyZHVw KCIiKTsKKworCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKHBzcHJpbnRmKCIlc1NoYXJlZCBIaXQg QmxvY2tzIiwgcHJlZml4KSwgTlVMTCwKIAkJCQkJCQkgICB1c2FnZS0+c2hhcmVkX2Jsa3NfaGl0 LCBlcyk7Ci0JCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIoIlNoYXJlZCBSZWFkIEJsb2NrcyIsIE5V TEwsCisJCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIocHNwcmludGYoIiVzU2hhcmVkIFJlYWQgQmxv Y2tzIiwgcHJlZml4KSwgTlVMTCwKIAkJCQkJCQkgICB1c2FnZS0+c2hhcmVkX2Jsa3NfcmVhZCwg ZXMpOwotCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJTaGFyZWQgRGlydGllZCBCbG9ja3MiLCBO VUxMLAorCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKHBzcHJpbnRmKCIlc1NoYXJlZCBEaXJ0aWVk IEJsb2NrcyIsIHByZWZpeCksIE5VTEwsCiAJCQkJCQkJICAgdXNhZ2UtPnNoYXJlZF9ibGtzX2Rp cnRpZWQsIGVzKTsKLQkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiU2hhcmVkIFdyaXR0ZW4gQmxv Y2tzIiwgTlVMTCwKKwkJRXhwbGFpblByb3BlcnR5SW50ZWdlcihwc3ByaW50ZigiJXNTaGFyZWQg V3JpdHRlbiBCbG9ja3MiLCBwcmVmaXgpLCBOVUxMLAogCQkJCQkJCSAgIHVzYWdlLT5zaGFyZWRf Ymxrc193cml0dGVuLCBlcyk7Ci0JCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIoIkxvY2FsIEhpdCBC bG9ja3MiLCBOVUxMLAorCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKHBzcHJpbnRmKCIlc0xvY2Fs IEhpdCBCbG9ja3MiLCBwcmVmaXgpLCBOVUxMLAogCQkJCQkJCSAgIHVzYWdlLT5sb2NhbF9ibGtz X2hpdCwgZXMpOwotCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJMb2NhbCBSZWFkIEJsb2NrcyIs IE5VTEwsCisJCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIocHNwcmludGYoIiVzTG9jYWwgUmVhZCBC bG9ja3MiLCBwcmVmaXgpLCBOVUxMLAogCQkJCQkJCSAgIHVzYWdlLT5sb2NhbF9ibGtzX3JlYWQs IGVzKTsKLQkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiTG9jYWwgRGlydGllZCBCbG9ja3MiLCBO VUxMLAorCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKHBzcHJpbnRmKCIlc0xvY2FsIERpcnRpZWQg QmxvY2tzIiwgcHJlZml4KSwgTlVMTCwKIAkJCQkJCQkgICB1c2FnZS0+bG9jYWxfYmxrc19kaXJ0 aWVkLCBlcyk7Ci0JCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIoIkxvY2FsIFdyaXR0ZW4gQmxvY2tz IiwgTlVMTCwKKwkJRXhwbGFpblByb3BlcnR5SW50ZWdlcihwc3ByaW50ZigiJXNMb2NhbCBXcml0 dGVuIEJsb2NrcyIsIHByZWZpeCksIE5VTEwsCiAJCQkJCQkJICAgdXNhZ2UtPmxvY2FsX2Jsa3Nf d3JpdHRlbiwgZXMpOwotCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJUZW1wIFJlYWQgQmxvY2tz IiwgTlVMTCwKKwkJRXhwbGFpblByb3BlcnR5SW50ZWdlcihwc3ByaW50ZigiJXNUZW1wIFJlYWQg QmxvY2tzIiwgcHJlZml4KSwgTlVMTCwKIAkJCQkJCQkgICB1c2FnZS0+dGVtcF9ibGtzX3JlYWQs IGVzKTsKLQkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiVGVtcCBXcml0dGVuIEJsb2NrcyIsIE5V TEwsCisJCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIocHNwcmludGYoIiVzVGVtcCBXcml0dGVuIEJs b2NrcyIsIHByZWZpeCksIE5VTEwsCiAJCQkJCQkJICAgdXNhZ2UtPnRlbXBfYmxrc193cml0dGVu LCBlcyk7CiAJCWlmICh0cmFja19pb190aW1pbmcpCiAJCXsKLQkJCUV4cGxhaW5Qcm9wZXJ0eUZs b2F0KCJTaGFyZWQgSS9PIFJlYWQgVGltZSIsICJtcyIsCisJCQlFeHBsYWluUHJvcGVydHlGbG9h dChwc3ByaW50ZigiJXNTaGFyZWQgSS9PIFJlYWQgVGltZSIsIHByZWZpeCksICJtcyIsCiAJCQkJ CQkJCSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyh1c2FnZS0+c2hhcmVkX2Jsa19yZWFkX3RpbWUp LAogCQkJCQkJCQkgMywgZXMpOwotCQkJRXhwbGFpblByb3BlcnR5RmxvYXQoIlNoYXJlZCBJL08g V3JpdGUgVGltZSIsICJtcyIsCisJCQlFeHBsYWluUHJvcGVydHlGbG9hdChwc3ByaW50ZigiJXNT aGFyZWQgSS9PIFdyaXRlIFRpbWUiLCBwcmVmaXgpLCAibXMiLAogCQkJCQkJCQkgSU5TVFJfVElN RV9HRVRfTUlMTElTRUModXNhZ2UtPnNoYXJlZF9ibGtfd3JpdGVfdGltZSksCiAJCQkJCQkJCSAz LCBlcyk7Ci0JCQlFeHBsYWluUHJvcGVydHlGbG9hdCgiTG9jYWwgSS9PIFJlYWQgVGltZSIsICJt cyIsCisJCQlFeHBsYWluUHJvcGVydHlGbG9hdChwc3ByaW50ZigiJXNMb2NhbCBJL08gUmVhZCBU aW1lIiwgcHJlZml4KSwgIm1zIiwKIAkJCQkJCQkJIElOU1RSX1RJTUVfR0VUX01JTExJU0VDKHVz YWdlLT5sb2NhbF9ibGtfcmVhZF90aW1lKSwKIAkJCQkJCQkJIDMsIGVzKTsKLQkJCUV4cGxhaW5Q cm9wZXJ0eUZsb2F0KCJMb2NhbCBJL08gV3JpdGUgVGltZSIsICJtcyIsCisJCQlFeHBsYWluUHJv cGVydHlGbG9hdChwc3ByaW50ZigiJXNMb2NhbCBJL08gV3JpdGUgVGltZSIsIHByZWZpeCksICJt cyIsCiAJCQkJCQkJCSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyh1c2FnZS0+bG9jYWxfYmxrX3dy aXRlX3RpbWUpLAogCQkJCQkJCQkgMywgZXMpOwotCQkJRXhwbGFpblByb3BlcnR5RmxvYXQoIlRl bXAgSS9PIFJlYWQgVGltZSIsICJtcyIsCisJCQlFeHBsYWluUHJvcGVydHlGbG9hdChwc3ByaW50 ZigiJXNUZW1wIEkvTyBSZWFkIFRpbWUiLCBwcmVmaXgpLCAibXMiLAogCQkJCQkJCQkgSU5TVFJf VElNRV9HRVRfTUlMTElTRUModXNhZ2UtPnRlbXBfYmxrX3JlYWRfdGltZSksCiAJCQkJCQkJCSAz LCBlcyk7Ci0JCQlFeHBsYWluUHJvcGVydHlGbG9hdCgiVGVtcCBJL08gV3JpdGUgVGltZSIsICJt cyIsCisJCQlFeHBsYWluUHJvcGVydHlGbG9hdChwc3ByaW50ZigiJXNUZW1wIEkvTyBXcml0ZSBU aW1lIiwgcHJlZml4KSwgIm1zIiwKIAkJCQkJCQkJIElOU1RSX1RJTUVfR0VUX01JTExJU0VDKHVz YWdlLT50ZW1wX2Jsa193cml0ZV90aW1lKSwKIAkJCQkJCQkJIDMsIGVzKTsKIAkJfQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1Byb2Nub2RlLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjUHJvY25vZGUuYwppbmRleCBlMmUyMWM2NmRjOS4uYzNmZjAzZjgwNWIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQcm9jbm9kZS5jCisrKyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNQcm9jbm9kZS5jCkBAIC00MTUsOSArNDE1LDE5IEBAIEV4ZWNJ bml0Tm9kZShQbGFuICpub2RlLCBFU3RhdGUgKmVzdGF0ZSwgaW50IGVmbGFncykKIAogCS8qIFNl dCB1cCBpbnN0cnVtZW50YXRpb24gZm9yIHRoaXMgbm9kZSBpZiByZXF1ZXN0ZWQgKi8KIAlpZiAo ZXN0YXRlLT5lc19pbnN0cnVtZW50KQorCXsKIAkJcmVzdWx0LT5pbnN0cnVtZW50ID0gSW5zdHJB bGxvY05vZGUoZXN0YXRlLT5lc19pbnN0cnVtZW50LAogCQkJCQkJCQkJCQlyZXN1bHQtPmFzeW5j X2NhcGFibGUpOwogCisJCS8qIEluZGV4U2NhbiB0cmFja3MgdGFibGUgYWNjZXNzIHNlcGFyYXRl bHkgZnJvbSBpbmRleCBhY2Nlc3MuICovCisJCWlmIChJc0EocmVzdWx0LCBJbmRleFNjYW5TdGF0 ZSkpCisJCXsKKwkJCUluZGV4U2NhblN0YXRlICppc3MgPSBjYXN0Tm9kZShJbmRleFNjYW5TdGF0 ZSwgcmVzdWx0KTsKKworCQkJaXNzLT5pc3NfSW5zdHJ1bWVudFRhYmxlU3RhY2sgPSBJbnN0ckFs bG9jQWRkaXRpb25hbE5vZGVTdGFjayhyZXN1bHQtPmluc3RydW1lbnQpOworCQl9CisJfQorCiAJ cmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtODU5LDYgKzg2OSwxNSBAQCBFeGVjUmVtZW1iZXJOb2Rl SW5zdHJ1bWVudGF0aW9uX3dhbGtlcihQbGFuU3RhdGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAJ CQkJCQkJIG5vZGUtPmluc3RydW1lbnQtPm5lZWRfd2FsdXNhZ2UpKQogCXsKIAkJSW5zdHJSZW1l bWJlck5vZGVTdGFjayhwYXJlbnQsICZub2RlLT5pbnN0cnVtZW50LT5zdGFjayk7CisKKwkJLyog SW5kZXhTY2FuIGhhcyBhIHNlcGFyYXRlIHN0YWNrIHRvIHRyYWNrIHRhYmxlIGFjY2VzcyAqLwor CQlpZiAoSXNBKG5vZGUsIEluZGV4U2NhblN0YXRlKSkKKwkJeworCQkJSW5kZXhTY2FuU3RhdGUg KmlzcyA9IGNhc3ROb2RlKEluZGV4U2NhblN0YXRlLCBub2RlKTsKKworCQkJaWYgKGlzcy0+aXNz X0luc3RydW1lbnRUYWJsZVN0YWNrKQorCQkJCUluc3RyUmVtZW1iZXJOb2RlU3RhY2socGFyZW50 LCBpc3MtPmlzc19JbnN0cnVtZW50VGFibGVTdGFjayk7CisJCX0KIAl9CiAKIAlyZXR1cm4gcGxh bnN0YXRlX3RyZWVfd2Fsa2VyKG5vZGUsIEV4ZWNSZW1lbWJlck5vZGVJbnN0cnVtZW50YXRpb25f d2Fsa2VyLCBjb250ZXh0KTsKQEAgLTkwMiw2ICs5MjEsMTUgQEAgRXhlY0ZpbmFsaXplTm9kZUlu c3RydW1lbnRhdGlvbl93YWxrZXIoUGxhblN0YXRlICpub2RlLCB2b2lkICpjb250ZXh0KQogCWlm ICghbm9kZS0+aW5zdHJ1bWVudCkKIAkJcmV0dXJuIGZhbHNlOwogCisJLyogSW5kZXhTY2FuIGhh cyBhIHNlcGFyYXRlIHN0YWNrIHRvIHRyYWNrIHRhYmxlIGFjY2VzcyAqLworCWlmIChJc0Eobm9k ZSwgSW5kZXhTY2FuU3RhdGUpKQorCXsKKwkJSW5kZXhTY2FuU3RhdGUgKmlzcyA9IGNhc3ROb2Rl KEluZGV4U2NhblN0YXRlLCBub2RlKTsKKworCQlpZiAoaXNzLT5pc3NfSW5zdHJ1bWVudFRhYmxl U3RhY2spCisJCQlpc3MtPmlzc19JbnN0cnVtZW50VGFibGVTdGFjayA9IEluc3RyRmluYWxpemVB ZGRpdGlvbmFsTm9kZVN0YWNrKGlzcy0+aXNzX0luc3RydW1lbnRUYWJsZVN0YWNrLCBub2RlLT5p bnN0cnVtZW50KTsKKwl9CisKIAlub2RlLT5pbnN0cnVtZW50ID0gSW5zdHJGaW5hbGl6ZU5vZGUo bm9kZS0+aW5zdHJ1bWVudCwgcGFyZW50KTsKIAogCXJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2luc3RydW1lbnQuYwppbmRleCBmYzdhYzg1NDM0Yi4uMGMyZDc2OTQxNmUgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYworKysgYi9zcmMvYmFja2VuZC9leGVj dXRvci9pbnN0cnVtZW50LmMKQEAgLTUwNiw2ICs1MDYsNTkgQEAgSW5zdHJBZ2dOb2RlKE5vZGVJ bnN0cnVtZW50YXRpb24gKmRzdCwgTm9kZUluc3RydW1lbnRhdGlvbiAqYWRkKQogCQlXYWxVc2Fn ZUFkZCgmZHN0LT5zdGFjay53YWx1c2FnZSwgJmFkZC0+c3RhY2sud2FsdXNhZ2UpOwogfQogCisv KgorICogQWxsb2NhdGUgYW4gYWRkaXRpb25hbCBJbnN0clN0YWNrIGZvciBhIG5vZGUsIGUuZy4g Zm9yIHRyYWNraW5nIHRhYmxlCisgKiBidWZmZXIgdXNhZ2Ugc2VwYXJhdGVseSBmcm9tIGluZGV4 IGJ1ZmZlciB1c2FnZS4gQWxsb2NhdGVkIGluCisgKiBUb3BUcmFuc2FjdGlvbkNvbnRleHQgc28g aXQgc3Vydml2ZXMgbG9uZyBlbm91Z2ggZm9yIGFib3J0IHJlY292ZXJ5LgorICovCitJbnN0clN0 YWNrICoKK0luc3RyQWxsb2NBZGRpdGlvbmFsTm9kZVN0YWNrKE5vZGVJbnN0cnVtZW50YXRpb24g Kmluc3RyKQoreworCWlmIChpbnN0ci0+bmVlZF9idWZ1c2FnZSB8fCBpbnN0ci0+bmVlZF93YWx1 c2FnZSkKKwkJcmV0dXJuIE1lbW9yeUNvbnRleHRBbGxvY1plcm8oVG9wVHJhbnNhY3Rpb25Db250 ZXh0LCBzaXplb2YoSW5zdHJTdGFjaykpOworCisJcmV0dXJuIE5VTEw7Cit9CisKK3ZvaWQKK0lu c3RyU3RhcnROb2RlU3RhY2soTm9kZUluc3RydW1lbnRhdGlvbiAqaW5zdHIsIEluc3RyU3RhY2sg KnN0YWNrKQoreworCWlmIChpbnN0ci0+bmVlZF9idWZ1c2FnZSB8fCBpbnN0ci0+bmVlZF93YWx1 c2FnZSkKKwl7CisJCS8qIEVuc3VyZSB0aGUgZXhlY3V0b3Igc2V0IHVwIGEgcGFyZW50IG5vZGUg YmVsb3cgdGhlIHRvcCBsZXZlbCBzdGFjayAqLworCQlBc3NlcnQoQ3VycmVudEluc3RyU3RhY2sg IT0gJlRvcEluc3RyU3RhY2spOworCisJCUluc3RyUHVzaFN0YWNrKHN0YWNrKTsKKwl9Cit9CisK K3ZvaWQKK0luc3RyU3RvcE5vZGVTdGFjayhOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgSW5z dHJTdGFjayAqc3RhY2spCit7CisJaWYgKGluc3RyLT5uZWVkX2J1ZnVzYWdlIHx8IGluc3RyLT5u ZWVkX3dhbHVzYWdlKQorCXsKKwkJLyogQWRkaW5nIHRvIHBhcmVudCBpcyBoYW5kbGVkIGJ5IElu c3RyRmluYWxpemVBZGRpdGlvbmFsTm9kZVN0YWNrICovCisJCUluc3RyUG9wU3RhY2soc3RhY2sp OworCX0KK30KKworLyogQWRkIGFkZGl0aW9uYWwgbm9kZSBzdGFja3MgdG8gdGhlIHBhcmVudCBh bmQgbW92ZSBpbnRvIHBlci1xdWVyeSBtZW1vcnkgY29udGV4dCAqLworSW5zdHJTdGFjayAqCitJ bnN0ckZpbmFsaXplQWRkaXRpb25hbE5vZGVTdGFjayhJbnN0clN0YWNrICpzdGFjaywgTm9kZUlu c3RydW1lbnRhdGlvbiAqaW5zdHIpCit7CisJSW5zdHJTdGFjayAqZHN0ID0gcGFsbG9jKHNpemVv ZihJbnN0clN0YWNrKSk7CisKKwltZW1jcHkoZHN0LCBzdGFjaywgc2l6ZW9mKEluc3RyU3RhY2sp KTsKKwlwZnJlZShzdGFjayk7CisKKwkvKiBBdm9pZCBzdGFsZSBwb2ludGVyIHJlZmVyZW5jZXMg Ki8KKwlkc3QtPnByZXZpb3VzID0gTlVMTDsKKworCUluc3RyU3RhY2tBZGQoJmluc3RyLT5zdGFj aywgZHN0KTsKKworCXJldHVybiBkc3Q7Cit9CisKIC8qIHN0YXJ0IGluc3RydW1lbnRhdGlvbiBk dXJpbmcgcGFyYWxsZWwgZXhlY3V0b3Igc3RhcnR1cCAqLwogSW5zdHJ1bWVudGF0aW9uICoKIElu c3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KHZvaWQpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlSW5kZXhzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2Fu LmMKaW5kZXggYTYxNmFiZmYwNGMuLmZiNjJmZjdhOGJlIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZUluZGV4c2Nhbi5jCkBAIC04Myw2ICs4Myw3IEBAIEluZGV4TmV4dChJbmRleFNjYW5TdGF0ZSAq bm9kZSkKIAlFeHByQ29udGV4dCAqZWNvbnRleHQ7CiAJU2NhbkRpcmVjdGlvbiBkaXJlY3Rpb247 CiAJSW5kZXhTY2FuRGVzYyBzY2FuZGVzYzsKKwlJdGVtUG9pbnRlciB0aWQ7CiAJVHVwbGVUYWJs ZVNsb3QgKnNsb3Q7CiAKIAkvKgpAQCAtMTI4LDggKzEyOSwyMCBAQCBJbmRleE5leHQoSW5kZXhT Y2FuU3RhdGUgKm5vZGUpCiAJLyoKIAkgKiBvaywgbm93IHRoYXQgd2UgaGF2ZSB3aGF0IHdlIG5l ZWQsIGZldGNoIHRoZSBuZXh0IHR1cGxlLgogCSAqLwotCXdoaWxlIChpbmRleF9nZXRuZXh0X3Ns b3Qoc2NhbmRlc2MsIGRpcmVjdGlvbiwgc2xvdCkpCisJd2hpbGUgKCh0aWQgPSBpbmRleF9nZXRu ZXh0X3RpZChzY2FuZGVzYywgZGlyZWN0aW9uKSkgIT0gTlVMTCkKIAl7CisJCWlmIChub2RlLT5z cy5wcy5pbnN0cnVtZW50KQorCQkJSW5zdHJTdGFydE5vZGVTdGFjayhub2RlLT5zcy5wcy5pbnN0 cnVtZW50LCBub2RlLT5pc3NfSW5zdHJ1bWVudFRhYmxlU3RhY2spOworCisJCWlmICh1bmxpa2Vs eSghaW5kZXhfZmV0Y2hfaGVhcChzY2FuZGVzYywgc2xvdCkpKQorCQkJY29udGludWU7CisKKwkJ aWYgKG5vZGUtPnNzLnBzLmluc3RydW1lbnQpCisJCQlJbnN0clN0b3BOb2RlU3RhY2sobm9kZS0+ c3MucHMuaW5zdHJ1bWVudCwgbm9kZS0+aXNzX0luc3RydW1lbnRUYWJsZVN0YWNrKTsKKworCQlp ZiAoc2NhbmRlc2MtPnhzX2hlYXBfY29udGludWUpCisJCQllbG9nKEVSUk9SLCAibm9uLU1WQ0Mg c25hcHNob3RzIGFyZSBub3Qgc3VwcG9ydGVkIGluIGluZGV4LW9ubHkgc2NhbnMiKTsKKwogCQlD SEVDS19GT1JfSU5URVJSVVBUUygpOwogCiAJCS8qCkBAIC04MTIsNiArODI1LDggQEAgRXhlY0Vu ZEluZGV4U2NhbihJbmRleFNjYW5TdGF0ZSAqbm9kZSkKIAkJICogd2hpY2ggd2lsbCBoYXZlIGEg bmV3IEluZGV4T25seVNjYW5TdGF0ZSBhbmQgemVyb2VkIHN0YXRzLgogCQkgKi8KIAkJd2luc3Ry dW1lbnQtPm5zZWFyY2hlcyArPSBub2RlLT5pc3NfSW5zdHJ1bWVudC5uc2VhcmNoZXM7CisJCWlm IChub2RlLT5pc3NfSW5zdHJ1bWVudFRhYmxlU3RhY2spCisJCQlJbnN0clN0YWNrQWRkKCZ3aW5z dHJ1bWVudC0+d29ya2VyX3RhYmxlX3N0YWNrLCBub2RlLT5pc3NfSW5zdHJ1bWVudFRhYmxlU3Rh Y2spOwogCX0KIAogCS8qCkBAIC0xODE5LDQgKzE4MzQsMTAgQEAgRXhlY0luZGV4U2NhblJldHJp ZXZlSW5zdHJ1bWVudGF0aW9uKEluZGV4U2NhblN0YXRlICpub2RlKQogCQlTaGFyZWRJbmZvLT5u dW1fd29ya2VycyAqIHNpemVvZihJbmRleFNjYW5JbnN0cnVtZW50YXRpb24pOwogCW5vZGUtPmlz c19TaGFyZWRJbmZvID0gcGFsbG9jKHNpemUpOwogCW1lbWNweShub2RlLT5pc3NfU2hhcmVkSW5m bywgU2hhcmVkSW5mbywgc2l6ZSk7CisKKwkvKiBBZ2dyZWdhdGUgd29ya2VycycgdGFibGUgYnVm ZmVyL1dBTCB1c2FnZSBpbnRvIGxlYWRlcidzIHN0YWNrICovCisJaWYgKG5vZGUtPmlzc19JbnN0 cnVtZW50VGFibGVTdGFjaykKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBub2RlLT5pc3NfU2hhcmVk SW5mby0+bnVtX3dvcmtlcnM7IGkrKykKKwkJCUluc3RyU3RhY2tBZGQobm9kZS0+aXNzX0luc3Ry dW1lbnRUYWJsZVN0YWNrLAorCQkJCQkJICAmbm9kZS0+aXNzX1NoYXJlZEluZm8tPndpbnN0cnVt ZW50W2ldLndvcmtlcl90YWJsZV9zdGFjayk7CiB9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9l eGVjdXRvci9pbnN0cnVtZW50LmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmgK aW5kZXggN2E1ZDA1OTdjZDUuLjhmYjZjOTExZmNiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9l eGVjdXRvci9pbnN0cnVtZW50LmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVu dC5oCkBAIC0yMzksNiArMjM5LDExIEBAIGV4dGVybiB2b2lkIEluc3RyVXBkYXRlVHVwbGVDb3Vu dChOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBsZXMpOwogZXh0ZXJuIHZv aWQgSW5zdHJFbmRMb29wKE5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RyKTsKIGV4dGVybiB2b2lk IEluc3RyQWdnTm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICpkc3QsIE5vZGVJbnN0cnVtZW50YXRp b24gKmFkZCk7CiAKK2V4dGVybiBJbnN0clN0YWNrICpJbnN0ckFsbG9jQWRkaXRpb25hbE5vZGVT dGFjayhOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0cik7CitleHRlcm4gdm9pZCBJbnN0clN0YXJ0 Tm9kZVN0YWNrKE5vZGVJbnN0cnVtZW50YXRpb24gKmRzdCwgSW5zdHJTdGFjayAqc3RhY2spOwor ZXh0ZXJuIHZvaWQgSW5zdHJTdG9wTm9kZVN0YWNrKE5vZGVJbnN0cnVtZW50YXRpb24gKmRzdCwg SW5zdHJTdGFjayAqc3RhY2spOworZXh0ZXJuIEluc3RyU3RhY2sgKkluc3RyRmluYWxpemVBZGRp dGlvbmFsTm9kZVN0YWNrKEluc3RyU3RhY2sgKnN0YWNrLCBOb2RlSW5zdHJ1bWVudGF0aW9uICpp bnN0cik7CisKIHBnX25vZGlzY2FyZCBleHRlcm4gSW5zdHJ1bWVudGF0aW9uICpJbnN0clN0YXJ0 UGFyYWxsZWxRdWVyeSh2b2lkKTsKIGV4dGVybiB2b2lkIEluc3RyRW5kUGFyYWxsZWxRdWVyeShJ bnN0cnVtZW50YXRpb24gKmluc3RyLCBCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFdhbFVzYWdlICp3 YWx1c2FnZSk7CiBleHRlcm4gdm9pZCBJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeShCdWZmZXJVc2Fn ZSAqYnVmdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9leGVjdXRvci9pbnN0cnVtZW50X25vZGUuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3Ry dW1lbnRfbm9kZS5oCmluZGV4IDg4NDdkN2Y5NGZhLi5kZDQ1ZDcyNTU5ZCAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudF9ub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUv ZXhlY3V0b3IvaW5zdHJ1bWVudF9ub2RlLmgKQEAgLTE4LDYgKzE4LDggQEAKICNpZm5kZWYgSU5T VFJVTUVOVF9OT0RFX0gKICNkZWZpbmUgSU5TVFJVTUVOVF9OT0RFX0gKIAorI2luY2x1ZGUgImV4 ZWN1dG9yL2luc3RydW1lbnQuaCIKKwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCUlu c3RydW1lbnRhdGlvbiBpbmZvcm1hdGlvbiBmb3IgYWdncmVnYXRlIGZ1bmN0aW9uIGV4ZWN1dGlv bgpAQCAtNDgsNiArNTAsOSBAQCB0eXBlZGVmIHN0cnVjdCBJbmRleFNjYW5JbnN0cnVtZW50YXRp b24KIHsKIAkvKiBJbmRleCBzZWFyY2ggY291bnQgKGluY3JlbWVudGVkIHdpdGggcGdzdGF0X2Nv dW50X2luZGV4X3NjYW4gY2FsbCkgKi8KIAl1aW50NjQJCW5zZWFyY2hlczsKKworCS8qIFVzZWQg Zm9yIHBhc3NpbmcgaXNzX0luc3RydW1lbnRUYWJsZVN0YWNrIGRhdGEgZnJvbSBwYXJhbGxlbCB3 b3JrZXJzICovCisJSW5zdHJTdGFjawl3b3JrZXJfdGFibGVfc3RhY2s7CiB9IEluZGV4U2Nhbklu c3RydW1lbnRhdGlvbjsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNu b2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggNjA1YzdhNmNjMzku LjZhNjQyN2FmYmQyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAor KysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtMTcyOCw2ICsxNzI4LDEzIEBA IHR5cGVkZWYgc3RydWN0IEluZGV4U2NhblN0YXRlCiAJSW5kZXhTY2FuSW5zdHJ1bWVudGF0aW9u IGlzc19JbnN0cnVtZW50OwogCVNoYXJlZEluZGV4U2Nhbkluc3RydW1lbnRhdGlvbiAqaXNzX1No YXJlZEluZm87CiAKKwkvKgorCSAqIEluc3RydW1lbnRhdGlvbiBzdGFjayB1dGlsaXplZCBmb3Ig dHJhY2tpbmcgdGFibGUgYWNjZXNzLiBUaGlzIGlzCisJICogc2VwYXJhdGUgZnJvbSBpc3NfSW5z dHJ1bWVudCBzaW5jZSBpdCBuZWVkcyB0byBiZSBhbGxvY2F0ZWQgaW4gdGhlCisJICogcmlnaHQg Y29udGV4dCBhbmQgSW5kZXhTY2FuSW5zdHJ1bWVudGF0aW9uIHNob3VsZG4ndCBjb250YWluIHBv aW50ZXJzLgorCSAqLworCUluc3RyU3RhY2sgKmlzc19JbnN0cnVtZW50VGFibGVTdGFjazsKKwog CS8qIFRoZXNlIGFyZSBuZWVkZWQgZm9yIHJlLWNoZWNraW5nIE9SREVSIEJZIGV4cHIgb3JkZXJp bmcgKi8KIAlwYWlyaW5naGVhcCAqaXNzX1Jlb3JkZXJRdWV1ZTsKIAlib29sCQlpc3NfUmVhY2hl ZEVuZDsKLS0gCjIuNDcuMQoK --000000000000702390064b8a3016--