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 1w1Vw0-000Me2-04 for pgsql-hackers@arkaria.postgresql.org; Sat, 14 Mar 2026 20:50:09 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w1Vvy-002mmX-0D for pgsql-hackers@arkaria.postgresql.org; Sat, 14 Mar 2026 20:50:06 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w1Vvx-002mmP-1Z for pgsql-hackers@lists.postgresql.org; Sat, 14 Mar 2026 20:50:06 +0000 Received: from mail-qv1-xf29.google.com ([2607:f8b0:4864:20::f29]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w1Vvu-00000000Ajf-3ItW for pgsql-hackers@lists.postgresql.org; Sat, 14 Mar 2026 20:50:05 +0000 Received: by mail-qv1-xf29.google.com with SMTP id 6a1803df08f44-899a5db525cso38302946d6.3 for ; Sat, 14 Mar 2026 13:50:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773521401; cv=none; d=google.com; s=arc-20240605; b=V6d5+/BleWAs2hexjjhyxfPiURBjIy933bCSagPmmlNNdZUZbt6nO6aHwMgx4K7GSo IX+Lb5UKL4mERkERbnMlP4h5YywQ+uIZd3XhzDMHssICT0eTQQh4U+CZddAi1njboHD0 BKpJj4nH+fGZ7dqiM8jruwach1cyJnpvB5GqrI5hM1Lf0vlchwO+dJ7WK1tTyOzx2xl+ XxIHzRoYeS4QHdOQ2jcx1ruaw7De7A+BrKcAdPClcV4eKtHvJYRgCReLdwxhv6ZfSdYw pFSGeRIO4C4h2F4mcQIUMTZyUwEix6YIPzw1IMbWydpPHMi2nggY/GzHQM2FYBj17uEX Sgmg== 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=7m44DCIvCMoETKu9YPvFj2RTMUk4H3v4YiQYyA7Xqj4=; fh=P3YxTx76J3tPc1JCQ2qjLIqvyO0/TWQhPtlxh8bv0O8=; b=dn0MNyeM95y40KSLHNkSeGv6aAF2wga426HWz2maZ3ohUHfIaUJEMU5shI306Kc29H RNfCh3Z0j4Zz+S//4E+kuppOUryBiNmWitsFbUDlPFChYZgPNBVAM+vKXKVZleyrSkKt hsRNko6zxpgFjh+wwStXJVDkgZwPyYzdKv85JawWoyN0RbwIAOOIHZumyp0ysAXVkjPX 58ATU7kaK0yvT3v5Mgac62L+IflRGDUJRvVKgQEQj4NXEp0f5KINgTSDUf5qbQICP5Hx soq/+ggZXbDPYPYSZX8kMXKTlm1G4BCKJczsoiHr2iI5DmkR2qH7E1g5axim8ZTea5nh mMCA==; 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=1773521401; x=1774126201; 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=7m44DCIvCMoETKu9YPvFj2RTMUk4H3v4YiQYyA7Xqj4=; b=YL3IE6XHoodt38pFzom8lmmqjhGbeGT9lPwFcYiHiWBQS/vbeITOtuh4t2HqEBiD6k n+zgrqfll6LVwJ8qbFLWEutzUx0XeNYmgQScKj8nm4X+OvmtuZUPM3U5CUKvSSaxQDgD +WywfyMLfczhrtY/8VFcOyvCgIO0X476649Ro= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773521401; x=1774126201; 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=7m44DCIvCMoETKu9YPvFj2RTMUk4H3v4YiQYyA7Xqj4=; b=GD2W3iVGfKHrFFQmN7+tVA4OfJh73xYYGQAN376f3ZW04t90lr+1b61TTwrp3RbKJN hzj3avNL9j+KYCcG2jPoA3yJ/5eBoSbIYIH0OsiAmCUXDZJu71fTnxVmrM0fs9K82rCQ DH4aZsOiTrfIiqIJNPbqRs8zoPAOwikYSDKxIR1L+o/Dr45BuzGxAGAnynu0WPJpVu0O HwSz+SrHvXXUFtkHD5SN2GxVgfChUEnr+LXdZHsmWfKIPTwP5pLo3CwgSIRPl0IDdOac JWEuPsoe1ITqVkxIG5yXcVgnB7NBiI5fqKCpZujySZx9TZ7v7qM35w4B2FSThPyqw9RW 8F8Q== X-Forwarded-Encrypted: i=1; AJvYcCVVAAfi/gl4D88QeBza5m+942NT7UR7f+6f2wnv9ivmRFJI9V8I/EiRyVBIihDhkGUR2FjwZYYxw6xOT/g4@lists.postgresql.org X-Gm-Message-State: AOJu0YyvsopkAW8lfzhFfDz5jUzzf3/qtSOPvIjRqbKU7S8ygWiAF6Ch Rl1AR8nTQ/rZZScyQYysCg+OuHUQepVjuWqO56Bs2ykYhRYdqkb4i9ibKu0mCmPUVe9zoeiyivJ 757sO8C87iHGddPpufKW8A/DfqrgfBfGAg/oIttEL X-Gm-Gg: ATEYQzzhukprdBx9BZdp35zcMQ8PvsVy3zFZcUIW1QwMpxLbgxKbo5EHsl3IHsy2y6j OZAKERyOYftqClb/DVXL7MVpedHPFcbC1v5KGCgOovDQmXgXBkZE4pytNhd2bbMwn+n1EYPhD1n BFpsrnL8tuIrVpfsGu7EpHWHWmQdkHgIIjVdrJj2HRU7yHQHHWKin2z82nhiK80vE69dG7BTjWw 2s4uMFoiYdmIHc2kaSulC22iykjQE7dWtQZwsJuqK0dCmgjuGz41tDoNJKMk9dCLF9ZWa2+nmIm 4HQZcAYO9ejXY4cTdGN6ENAcwVdSNi2rT0qm8aT2 X-Received: by 2002:a05:6214:2aac:b0:899:f570:3167 with SMTP id 6a1803df08f44-89a81f2f591mr112233946d6.46.1773521400860; Sat, 14 Mar 2026 13:50:00 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Lukas Fittl Date: Sat, 14 Mar 2026 13:49:23 -0700 X-Gm-Features: AaiRm513aREQi1Uw2HU4raC2j50FdwoaCStw8MjE6IlPPTJWnl3w4kfj_XSdG3k Message-ID: Subject: Re: Stack-based tracking of per-node WAL/buffer usage To: Zsolt Parragi , PostgreSQL Hackers , Andres Freund Cc: Peter Smith Content-Type: multipart/mixed; boundary="0000000000001ac30e064d022147" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000001ac30e064d022147 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Mar 10, 2026 at 1:13=E2=80=AFAM Zsolt Parragi wrote: > > ResourceOwnerForgetInstrumentation directly follows the call to > > ExecFinalizeNodeInstrumentation in standard_ExecutorFinish, so I'm not > > sure which error case you're thinking of? > > There are a few pallocs between them, so OOM is possible, even if > unlikely. I mainly mentioned this because even if unlikely it can > happen in theory, and the fix seems simple to me. Ah, yeah, I didn't consider the pallocs in InstrFinalizeNode causing an OOM that would cause an abort - good thinking! I've adjusted this to use a dlist instead of an slist and InstrFinalizeNode now deletes the node from the list. > > I don't think that's a permanent leak, since it would be in the memory > > context of the caller, i.e. the per-query memory context > > Yes, it's definitely not permanent, but could be bad with many tuples. > > > and so > > doing the ResOwner dance for each tuple is probably not ideal. > > These approaches are interesting, but also add complexity, so I'm > unsure which is better for this, the pfree calls add one line and > solve the main issue with the current code. Yeah, fair point on complexity - I've just added the pfree for now. > > Basically it should be this instead, I think, > > so we correctly call the table AM's table_index_fetch_tuple again if > > call_again gets set: > > Right, this code will be better. Implemented this fix in IndexNext, and also expanded the tracking of table access to IndexNextWithReorder. Regarding Index-Only Scans, I did not add instrumentation for table access yet - I might add that in a follow-up revision or we could also do it in a follow-on patch. > > I don't know if the extra allocations > > really matter, but I can see your point. > > Yeah, probably doesn't matter that much, but the code also wasn't that > nice in that form. I didn't try to actually modify it, but by just > looking at it the grouped option seemed cleaner to me, and the output > should also be self-explanatory and logical to users. Yep, fair point - I've now added two groups "Table Buffers" and "Table I/O Timings" that get used in structured output. --- See attached v8 rebased on latest master, that also fixes the issues Zsolt pointed out in 0005 and 0007. Additionally, two other minor changes in 0005 (the commit that adds stack-based instrumentation): 1) Change the allocation for query/node instrumentation so that we only use top-level memory context when WAL/buffer usage is requested (i.e. instrumentation stack is needed) - easy enough to do, and makes the timing/rows only case a bit cheaper. 2) Fix a missing addition to the remaining pgWalUsage global in the parallel query case, when instrumentation is used. For context, to avoid double counting we don't have the parallel workers call ExecFinalizeNodeInstrumentation (instead the per-node numbers get reported back to the leader, and that one bubbles them up), but that also means that InstrAccumParallelQuery doesn't see the per-node activity. This now gets added in ExecParallelRetrieveInstrumentation. All other patches as before. Thanks, Lukas --=20 Lukas Fittl --0000000000001ac30e064d022147 Content-Type: application/octet-stream; name="v8-0001-instrumentation-Separate-trigger-logic-from-other.patch" Content-Disposition: attachment; filename="v8-0001-instrumentation-Separate-trigger-logic-from-other.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmqsnn4f0 RnJvbSA3NGI2NDgwZjM3ZDJiOTIzZTg0YzhhZDU1ZjJmZjhiY2UwZTYxOWFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBT YXQsIDEgTWFyIDIwMjUgMTk6MzE6MzAgLTA4MDAKU3ViamVjdDogW1BBVENIIHY4IDEvOF0gaW5z dHJ1bWVudGF0aW9uOiBTZXBhcmF0ZSB0cmlnZ2VyIGxvZ2ljIGZyb20gb3RoZXIKIHVzZXMKCklu dHJvZHVjZSBUcmlnZ2VySW5zdHJ1bWVudGF0aW9uIHRvIGNhcHR1cmUgdHJpZ2dlciB0aW1pbmcg YW5kIGZpcmluZ3MKKHByZXZpb3VzbHkgY291bnRlZCBpbiAibnR1cGxlcyIpLCB0byBhaWQgYSBm dXR1cmUgcmVmYWN0b3JpbmcgdGhhdApzcGxpdHMgb3V0IGFsbCBJbnN0cnVtZW50YXRpb24gZmll bGRzIGJleW9uZCB0aW1pbmcgYW5kIFdBTC9idWZmZXJzIGludG8KbW9yZSBzcGVjaWZpYyBzdHJ1 Y3RzLgoKQXV0aG9yOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpSZXZpZXdlZC1ieToK RGlzY3Vzc2lvbjoKLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMgICAgfCAxOSAr KysrKysrKy0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMgICAgfCAy MiArKysrKysrKysrKy0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5j ICAgfCAgMiArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvaW5zdHJ1bWVudC5jIHwgMjYgKysrKysr KysrKysrKysrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaCB8 IDEyICsrKysrKysrKysrKwogc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgIHwgIDIg Ky0KIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICB8ICAxICsKIDcgZmlsZXMgY2hh bmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jCmluZGV4IDkzOTE4YTIyM2I4Li4wOWIxMzgwN2Q5MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvZXhwbGFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4u YwpAQCAtMTA5OSwxOCArMTA5OSwxNSBAQCByZXBvcnRfdHJpZ2dlcnMoUmVzdWx0UmVsSW5mbyAq ckluZm8sIGJvb2wgc2hvd19yZWxuYW1lLCBFeHBsYWluU3RhdGUgKmVzKQogCWZvciAobnQgPSAw OyBudCA8IHJJbmZvLT5yaV9UcmlnRGVzYy0+bnVtdHJpZ2dlcnM7IG50KyspCiAJewogCQlUcmln Z2VyICAgICp0cmlnID0gckluZm8tPnJpX1RyaWdEZXNjLT50cmlnZ2VycyArIG50OwotCQlJbnN0 cnVtZW50YXRpb24gKmluc3RyID0gckluZm8tPnJpX1RyaWdJbnN0cnVtZW50ICsgbnQ7CisJCVRy aWdnZXJJbnN0cnVtZW50YXRpb24gKnRnaW5zdHIgPSBySW5mby0+cmlfVHJpZ0luc3RydW1lbnQg KyBudDsKIAkJY2hhcgkgICAqcmVsbmFtZTsKIAkJY2hhcgkgICAqY29ubmFtZSA9IE5VTEw7CiAK LQkJLyogTXVzdCBjbGVhbiB1cCBpbnN0cnVtZW50YXRpb24gc3RhdGUgKi8KLQkJSW5zdHJFbmRM b29wKGluc3RyKTsKLQogCQkvKgogCQkgKiBXZSBpZ25vcmUgdHJpZ2dlcnMgdGhhdCB3ZXJlIG5l dmVyIGludm9rZWQ7IHRoZXkgbGlrZWx5IGFyZW4ndAogCQkgKiByZWxldmFudCB0byB0aGUgY3Vy cmVudCBxdWVyeSB0eXBlLgogCQkgKi8KLQkJaWYgKGluc3RyLT5udHVwbGVzID09IDApCisJCWlm ICh0Z2luc3RyLT5maXJpbmdzID09IDApCiAJCQljb250aW51ZTsKIAogCQlFeHBsYWluT3Blbkdy b3VwKCJUcmlnZ2VyIiwgTlVMTCwgdHJ1ZSwgZXMpOwpAQCAtMTEzNSwxMSArMTEzMiwxMSBAQCBy ZXBvcnRfdHJpZ2dlcnMoUmVzdWx0UmVsSW5mbyAqckluZm8sIGJvb2wgc2hvd19yZWxuYW1lLCBF eHBsYWluU3RhdGUgKmVzKQogCQkJaWYgKHNob3dfcmVsbmFtZSkKIAkJCQlhcHBlbmRTdHJpbmdJ bmZvKGVzLT5zdHIsICIgb24gJXMiLCByZWxuYW1lKTsKIAkJCWlmIChlcy0+dGltaW5nKQotCQkJ CWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwgIjogdGltZT0lLjNmIGNhbGxzPSUuMGZcbiIsCi0J CQkJCQkJCSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhpbnN0ci0+dG90YWwpLAotCQkJCQkJCQkg aW5zdHItPm50dXBsZXMpOworCQkJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwgIjogdGltZT0l LjNmIGNhbGxzPSVkXG4iLAorCQkJCQkJCQkgSU5TVFJfVElNRV9HRVRfTUlMTElTRUModGdpbnN0 ci0+aW5zdHIudG90YWwpLAorCQkJCQkJCQkgdGdpbnN0ci0+ZmlyaW5ncyk7CiAJCQllbHNlCi0J CQkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLCAiOiBjYWxscz0lLjBmXG4iLCBpbnN0ci0+bnR1 cGxlcyk7CisJCQkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLCAiOiBjYWxscz0lZFxuIiwgdGdp bnN0ci0+ZmlyaW5ncyk7CiAJCX0KIAkJZWxzZQogCQl7CkBAIC0xMTQ5LDkgKzExNDYsOSBAQCBy ZXBvcnRfdHJpZ2dlcnMoUmVzdWx0UmVsSW5mbyAqckluZm8sIGJvb2wgc2hvd19yZWxuYW1lLCBF eHBsYWluU3RhdGUgKmVzKQogCQkJRXhwbGFpblByb3BlcnR5VGV4dCgiUmVsYXRpb24iLCByZWxu YW1lLCBlcyk7CiAJCQlpZiAoZXMtPnRpbWluZykKIAkJCQlFeHBsYWluUHJvcGVydHlGbG9hdCgi VGltZSIsICJtcyIsCi0JCQkJCQkJCQkgSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoaW5zdHItPnRv dGFsKSwgMywKKwkJCQkJCQkJCSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyh0Z2luc3RyLT5pbnN0 ci50b3RhbCksIDMsCiAJCQkJCQkJCQkgZXMpOwotCQkJRXhwbGFpblByb3BlcnR5RmxvYXQoIkNh bGxzIiwgTlVMTCwgaW5zdHItPm50dXBsZXMsIDAsIGVzKTsKKwkJCUV4cGxhaW5Qcm9wZXJ0eUlu dGVnZXIoIkNhbGxzIiwgTlVMTCwgdGdpbnN0ci0+ZmlyaW5ncywgZXMpOwogCQl9CiAKIAkJaWYg KGNvbm5hbWUpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKaW5kZXggOThkNDAyYzBhM2IuLmMzMzYwMDcz MTQxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCkBAIC05MCw3ICs5MCw3IEBAIHN0YXRpYyBib29s IFRyaWdnZXJFbmFibGVkKEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLAog c3RhdGljIEhlYXBUdXBsZSBFeGVjQ2FsbFRyaWdnZXJGdW5jKFRyaWdnZXJEYXRhICp0cmlnZGF0 YSwKIAkJCQkJCQkJCSBpbnQgdGdpbmR4LAogCQkJCQkJCQkJIEZtZ3JJbmZvICpmaW5mbywKLQkJ CQkJCQkJCSBJbnN0cnVtZW50YXRpb24gKmluc3RyLAorCQkJCQkJCQkJIFRyaWdnZXJJbnN0cnVt ZW50YXRpb24gKmluc3RyLAogCQkJCQkJCQkJIE1lbW9yeUNvbnRleHQgcGVyX3R1cGxlX2NvbnRl eHQpOwogc3RhdGljIHZvaWQgQWZ0ZXJUcmlnZ2VyU2F2ZUV2ZW50KEVTdGF0ZSAqZXN0YXRlLCBS ZXN1bHRSZWxJbmZvICpyZWxpbmZvLAogCQkJCQkJCQkgIFJlc3VsdFJlbEluZm8gKnNyY19wYXJ0 aW5mbywKQEAgLTIzMDksNyArMjMwOSw3IEBAIHN0YXRpYyBIZWFwVHVwbGUKIEV4ZWNDYWxsVHJp Z2dlckZ1bmMoVHJpZ2dlckRhdGEgKnRyaWdkYXRhLAogCQkJCQlpbnQgdGdpbmR4LAogCQkJCQlG bWdySW5mbyAqZmluZm8sCi0JCQkJCUluc3RydW1lbnRhdGlvbiAqaW5zdHIsCisJCQkJCVRyaWdn ZXJJbnN0cnVtZW50YXRpb24gKmluc3RyLAogCQkJCQlNZW1vcnlDb250ZXh0IHBlcl90dXBsZV9j b250ZXh0KQogewogCUxPQ0FMX0ZDSU5GTyhmY2luZm8sIDApOwpAQCAtMjM0NCw3ICsyMzQ0LDcg QEAgRXhlY0NhbGxUcmlnZ2VyRnVuYyhUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEsCiAJICogSWYgZG9p bmcgRVhQTEFJTiBBTkFMWVpFLCBzdGFydCBjaGFyZ2luZyB0aW1lIHRvIHRoaXMgdHJpZ2dlci4K IAkgKi8KIAlpZiAoaW5zdHIpCi0JCUluc3RyU3RhcnROb2RlKGluc3RyICsgdGdpbmR4KTsKKwkJ SW5zdHJTdGFydFRyaWdnZXIoaW5zdHIgKyB0Z2luZHgpOwogCiAJLyoKIAkgKiBEbyB0aGUgZnVu Y3Rpb24gZXZhbHVhdGlvbiBpbiB0aGUgcGVyLXR1cGxlIG1lbW9yeSBjb250ZXh0LCBzbyB0aGF0 CkBAIC0yMzg5LDEwICsyMzg5LDEwIEBAIEV4ZWNDYWxsVHJpZ2dlckZ1bmMoVHJpZ2dlckRhdGEg KnRyaWdkYXRhLAogCiAJLyoKIAkgKiBJZiBkb2luZyBFWFBMQUlOIEFOQUxZWkUsIHN0b3AgY2hh cmdpbmcgdGltZSB0byB0aGlzIHRyaWdnZXIsIGFuZCBjb3VudAotCSAqIG9uZSAidHVwbGUgcmV0 dXJuZWQiIChyZWFsbHkgdGhlIG51bWJlciBvZiBmaXJpbmdzKS4KKwkgKiB0aGUgZmlyaW5nIG9m IHRoZSB0cmlnZ2VyLgogCSAqLwogCWlmIChpbnN0cikKLQkJSW5zdHJTdG9wTm9kZShpbnN0ciAr IHRnaW5keCwgMSk7CisJCUluc3RyU3RvcFRyaWdnZXIoaW5zdHIgKyB0Z2luZHgsIDEpOwogCiAJ cmV0dXJuIChIZWFwVHVwbGUpIERhdHVtR2V0UG9pbnRlcihyZXN1bHQpOwogfQpAQCAtMzkzNiw3 ICszOTM2LDcgQEAgc3RhdGljIHZvaWQgQWZ0ZXJUcmlnZ2VyRXhlY3V0ZShFU3RhdGUgKmVzdGF0 ZSwKIAkJCQkJCQkJUmVzdWx0UmVsSW5mbyAqZHN0X3JlbEluZm8sCiAJCQkJCQkJCVRyaWdnZXJE ZXNjICp0cmlnZGVzYywKIAkJCQkJCQkJRm1nckluZm8gKmZpbmZvLAotCQkJCQkJCQlJbnN0cnVt ZW50YXRpb24gKmluc3RyLAorCQkJCQkJCQlUcmlnZ2VySW5zdHJ1bWVudGF0aW9uICppbnN0ciwK IAkJCQkJCQkJTWVtb3J5Q29udGV4dCBwZXJfdHVwbGVfY29udGV4dCwKIAkJCQkJCQkJVHVwbGVU YWJsZVNsb3QgKnRyaWdfdHVwbGVfc2xvdDEsCiAJCQkJCQkJCVR1cGxlVGFibGVTbG90ICp0cmln X3R1cGxlX3Nsb3QyKTsKQEAgLTQzMzAsNyArNDMzMCw3IEBAIEFmdGVyVHJpZ2dlckV4ZWN1dGUo RVN0YXRlICplc3RhdGUsCiAJCQkJCVJlc3VsdFJlbEluZm8gKnNyY19yZWxJbmZvLAogCQkJCQlS ZXN1bHRSZWxJbmZvICpkc3RfcmVsSW5mbywKIAkJCQkJVHJpZ2dlckRlc2MgKnRyaWdkZXNjLAot CQkJCQlGbWdySW5mbyAqZmluZm8sIEluc3RydW1lbnRhdGlvbiAqaW5zdHIsCisJCQkJCUZtZ3JJ bmZvICpmaW5mbywgVHJpZ2dlckluc3RydW1lbnRhdGlvbiAqaW5zdHIsCiAJCQkJCU1lbW9yeUNv bnRleHQgcGVyX3R1cGxlX2NvbnRleHQsCiAJCQkJCVR1cGxlVGFibGVTbG90ICp0cmlnX3R1cGxl X3Nsb3QxLAogCQkJCQlUdXBsZVRhYmxlU2xvdCAqdHJpZ190dXBsZV9zbG90MikKQEAgLTQzNzEs NyArNDM3MSw3IEBAIEFmdGVyVHJpZ2dlckV4ZWN1dGUoRVN0YXRlICplc3RhdGUsCiAJICogdG8g aW5jbHVkZSB0aW1lIHNwZW50IHJlLWZldGNoaW5nIHR1cGxlcyBpbiB0aGUgdHJpZ2dlciBjb3N0 LgogCSAqLwogCWlmIChpbnN0cikKLQkJSW5zdHJTdGFydE5vZGUoaW5zdHIgKyB0Z2luZHgpOwor CQlJbnN0clN0YXJ0VHJpZ2dlcihpbnN0ciArIHRnaW5keCk7CiAKIAkvKgogCSAqIEZldGNoIHRo ZSByZXF1aXJlZCB0dXBsZShzKS4KQEAgLTQ1ODgsMTAgKzQ1ODgsMTAgQEAgQWZ0ZXJUcmlnZ2Vy RXhlY3V0ZShFU3RhdGUgKmVzdGF0ZSwKIAogCS8qCiAJICogSWYgZG9pbmcgRVhQTEFJTiBBTkFM WVpFLCBzdG9wIGNoYXJnaW5nIHRpbWUgdG8gdGhpcyB0cmlnZ2VyLCBhbmQgY291bnQKLQkgKiBv bmUgInR1cGxlIHJldHVybmVkIiAocmVhbGx5IHRoZSBudW1iZXIgb2YgZmlyaW5ncykuCisJICog dGhlIGZpcmluZyBvZiB0aGUgdHJpZ2dlci4KIAkgKi8KIAlpZiAoaW5zdHIpCi0JCUluc3RyU3Rv cE5vZGUoaW5zdHIgKyB0Z2luZHgsIDEpOworCQlJbnN0clN0b3BUcmlnZ2VyKGluc3RyICsgdGdp bmR4LCAxKTsKIH0KIAogCkBAIC00NzA3LDcgKzQ3MDcsNyBAQCBhZnRlclRyaWdnZXJJbnZva2VF dmVudHMoQWZ0ZXJUcmlnZ2VyRXZlbnRMaXN0ICpldmVudHMsCiAJUmVsYXRpb24JcmVsID0gTlVM TDsKIAlUcmlnZ2VyRGVzYyAqdHJpZ2Rlc2MgPSBOVUxMOwogCUZtZ3JJbmZvICAgKmZpbmZvID0g TlVMTDsKLQlJbnN0cnVtZW50YXRpb24gKmluc3RyID0gTlVMTDsKKwlUcmlnZ2VySW5zdHJ1bWVu dGF0aW9uICppbnN0ciA9IE5VTEw7CiAJVHVwbGVUYWJsZVNsb3QgKnNsb3QxID0gTlVMTCwKIAkJ CSAgICpzbG90MiA9IE5VTEw7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCmluZGV4IGJmZDNlYmM2 MDFlLi4xYTNiODAyMTYwMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01h aW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC0xMjcwLDcgKzEy NzAsNyBAQCBJbml0UmVzdWx0UmVsSW5mbyhSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAog CQlyZXN1bHRSZWxJbmZvLT5yaV9UcmlnV2hlbkV4cHJzID0gKEV4cHJTdGF0ZSAqKikKIAkJCXBh bGxvYzBfYXJyYXkoRXhwclN0YXRlICosIG4pOwogCQlpZiAoaW5zdHJ1bWVudF9vcHRpb25zKQot CQkJcmVzdWx0UmVsSW5mby0+cmlfVHJpZ0luc3RydW1lbnQgPSBJbnN0ckFsbG9jKG4sIGluc3Ry dW1lbnRfb3B0aW9ucywgZmFsc2UpOworCQkJcmVzdWx0UmVsSW5mby0+cmlfVHJpZ0luc3RydW1l bnQgPSBJbnN0ckFsbG9jVHJpZ2dlcihuLCBpbnN0cnVtZW50X29wdGlvbnMpOwogCX0KIAllbHNl CiAJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvaW5zdHJ1bWVudC5jIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvaW5zdHJ1bWVudC5jCmluZGV4IGE0MDYxMGJjMjUyLi45MzU0YWQ3 YmUxMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvaW5zdHJ1bWVudC5jCisrKyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYwpAQCAtMTk2LDYgKzE5NiwzMiBAQCBJ bnN0ckFnZ05vZGUoSW5zdHJ1bWVudGF0aW9uICpkc3QsIEluc3RydW1lbnRhdGlvbiAqYWRkKQog CQlXYWxVc2FnZUFkZCgmZHN0LT53YWx1c2FnZSwgJmFkZC0+d2FsdXNhZ2UpOwogfQogCisvKiBU cmlnZ2VyIGluc3RydW1lbnRhdGlvbiBoYW5kbGluZyAqLworVHJpZ2dlckluc3RydW1lbnRhdGlv biAqCitJbnN0ckFsbG9jVHJpZ2dlcihpbnQgbiwgaW50IGluc3RydW1lbnRfb3B0aW9ucykKK3sK KwlUcmlnZ2VySW5zdHJ1bWVudGF0aW9uICp0Z2luc3RyID0gcGFsbG9jMChuICogc2l6ZW9mKFRy aWdnZXJJbnN0cnVtZW50YXRpb24pKTsKKwlpbnQJCQlpOworCisJZm9yIChpID0gMDsgaSA8IG47 IGkrKykKKwkJSW5zdHJJbml0KCZ0Z2luc3RyW2ldLmluc3RyLCBpbnN0cnVtZW50X29wdGlvbnMp OworCisJcmV0dXJuIHRnaW5zdHI7Cit9CisKK3ZvaWQKK0luc3RyU3RhcnRUcmlnZ2VyKFRyaWdn ZXJJbnN0cnVtZW50YXRpb24gKnRnaW5zdHIpCit7CisJSW5zdHJTdGFydE5vZGUoJnRnaW5zdHIt Pmluc3RyKTsKK30KKwordm9pZAorSW5zdHJTdG9wVHJpZ2dlcihUcmlnZ2VySW5zdHJ1bWVudGF0 aW9uICp0Z2luc3RyLCBpbnQgZmlyaW5ncykKK3sKKwlJbnN0clN0b3BOb2RlKCZ0Z2luc3RyLT5p bnN0ciwgMCk7CisJdGdpbnN0ci0+ZmlyaW5ncyArPSBmaXJpbmdzOworfQorCiAvKiBub3RlIGN1 cnJlbnQgdmFsdWVzIGR1cmluZyBwYXJhbGxlbCBleGVjdXRvciBzdGFydHVwICovCiB2b2lkCiBJ bnN0clN0YXJ0UGFyYWxsZWxRdWVyeSh2b2lkKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhl Y3V0b3IvaW5zdHJ1bWVudC5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oCmlu ZGV4IDk3NTlmM2VhNWQ4Li5hOWMyMjMzMjI3ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhl Y3V0b3IvaW5zdHJ1bWVudC5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQu aApAQCAtMTAwLDYgKzEwMCwxMyBAQCB0eXBlZGVmIHN0cnVjdCBXb3JrZXJJbnN0cnVtZW50YXRp b24KIAlJbnN0cnVtZW50YXRpb24gaW5zdHJ1bWVudFtGTEVYSUJMRV9BUlJBWV9NRU1CRVJdOwog fSBXb3JrZXJJbnN0cnVtZW50YXRpb247CiAKK3R5cGVkZWYgc3RydWN0IFRyaWdnZXJJbnN0cnVt ZW50YXRpb24KK3sKKwlJbnN0cnVtZW50YXRpb24gaW5zdHI7CisJaW50CQkJZmlyaW5nczsJCS8q IG51bWJlciBvZiB0aW1lcyB0aGUgaW5zdHJ1bWVudGVkIHRyaWdnZXIKKwkJCQkJCQkJICogd2Fz IGZpcmVkICovCit9IFRyaWdnZXJJbnN0cnVtZW50YXRpb247CisKIGV4dGVybiBQR0RMTElNUE9S VCBCdWZmZXJVc2FnZSBwZ0J1ZmZlclVzYWdlOwogZXh0ZXJuIFBHRExMSU1QT1JUIFdhbFVzYWdl IHBnV2FsVXNhZ2U7CiAKQEAgLTExMSw2ICsxMTgsMTEgQEAgZXh0ZXJuIHZvaWQgSW5zdHJTdG9w Tm9kZShJbnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcyk7CiBleHRlcm4gdm9p ZCBJbnN0clVwZGF0ZVR1cGxlQ291bnQoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5U dXBsZXMpOwogZXh0ZXJuIHZvaWQgSW5zdHJFbmRMb29wKEluc3RydW1lbnRhdGlvbiAqaW5zdHIp OwogZXh0ZXJuIHZvaWQgSW5zdHJBZ2dOb2RlKEluc3RydW1lbnRhdGlvbiAqZHN0LCBJbnN0cnVt ZW50YXRpb24gKmFkZCk7CisKK2V4dGVybiBUcmlnZ2VySW5zdHJ1bWVudGF0aW9uICpJbnN0ckFs bG9jVHJpZ2dlcihpbnQgbiwgaW50IGluc3RydW1lbnRfb3B0aW9ucyk7CitleHRlcm4gdm9pZCBJ bnN0clN0YXJ0VHJpZ2dlcihUcmlnZ2VySW5zdHJ1bWVudGF0aW9uICp0Z2luc3RyKTsKK2V4dGVy biB2b2lkIEluc3RyU3RvcFRyaWdnZXIoVHJpZ2dlckluc3RydW1lbnRhdGlvbiAqdGdpbnN0ciwg aW50IGZpcmluZ3MpOworCiBleHRlcm4gdm9pZCBJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSh2b2lk KTsKIGV4dGVybiB2b2lkIEluc3RyRW5kUGFyYWxsZWxRdWVyeShCdWZmZXJVc2FnZSAqYnVmdXNh Z2UsIFdhbFVzYWdlICp3YWx1c2FnZSk7CiBleHRlcm4gdm9pZCBJbnN0ckFjY3VtUGFyYWxsZWxR dWVyeShCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSk7CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4 ZWNub2Rlcy5oCmluZGV4IDYzYzA2N2Q1YWFlLi5hNDNiZDQyOGE5MSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25v ZGVzLmgKQEAgLTUyNCw3ICs1MjQsNyBAQCB0eXBlZGVmIHN0cnVjdCBSZXN1bHRSZWxJbmZvCiAJ RXhwclN0YXRlICoqcmlfVHJpZ1doZW5FeHByczsKIAogCS8qIG9wdGlvbmFsIHJ1bnRpbWUgbWVh c3VyZW1lbnRzIGZvciB0cmlnZ2VycyAqLwotCUluc3RydW1lbnRhdGlvbiAqcmlfVHJpZ0luc3Ry dW1lbnQ7CisJVHJpZ2dlckluc3RydW1lbnRhdGlvbiAqcmlfVHJpZ0luc3RydW1lbnQ7CiAKIAkv KiBPbi1kZW1hbmQgY3JlYXRlZCBzbG90cyBmb3IgdHJpZ2dlcnMgLyByZXR1cm5pbmcgcHJvY2Vz c2luZyAqLwogCVR1cGxlVGFibGVTbG90ICpyaV9SZXR1cm5pbmdTbG90OwkvKiBmb3IgdHJpZ2dl ciBvdXRwdXQgdHVwbGVzICovCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGVjODUxM2Q5 MGI1Li42ZTc4Njc0ZTI4MiAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZz Lmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTMxNjMsNiAr MzE2Myw3IEBAIFRyaWdnZXJEZXNjCiBUcmlnZ2VyRXZlbnQKIFRyaWdnZXJGbGFncwogVHJpZ2dl ckluZm8KK1RyaWdnZXJJbnN0cnVtZW50YXRpb24KIFRyaWdnZXJUcmFuc2l0aW9uCiBUcnVuY2F0 ZVN0bXQKIFRzbVJvdXRpbmUKLS0gCjIuNDcuMQoK --0000000000001ac30e064d022147 Content-Type: application/octet-stream; name="v8-0004-instrumentation-Add-additional-regression-tests-c.patch" Content-Disposition: attachment; filename="v8-0004-instrumentation-Add-additional-regression-tests-c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmqsnn4m3 RnJvbSBhMGVhNzVhNjUwNGViOWJjOTZlNmQxZTA5M2YxMGU0ZDA0ZGFjOGVmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBT dW4sIDIyIEZlYiAyMDI2IDE2OjEyOjQ4IC0wODAwClN1YmplY3Q6IFtQQVRDSCB2OCA0LzhdIGlu 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== --0000000000001ac30e064d022147 Content-Type: application/octet-stream; name="v8-0002-instrumentation-Separate-per-node-logic-from-othe.patch" Content-Disposition: attachment; filename="v8-0002-instrumentation-Separate-per-node-logic-from-othe.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmqsnn4j1 RnJvbSA5Mjg4YzE5NjhiODAwNGVmMDQ5NmNmOGVkMWE4ZTMwYzQzNmQ3NDUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBT YXQsIDcgTWFyIDIwMjYgMDE6MTk6NTAgLTA4MDAKU3ViamVjdDogW1BBVENIIHY4IDIvOF0gaW5z dHJ1bWVudGF0aW9uOiBTZXBhcmF0ZSBwZXItbm9kZSBsb2dpYyBmcm9tIG90aGVyCiB1c2VzCgpQ cmV2aW91c2x5IGRpZmZlcmVudCBwbGFjZXMgKGUuZy4gcXVlcnkgInRvdGFsIHRpbWUiKSB3ZXJl IHJlcHVycG9zaW5nCnRoZSBJbnN0cnVtZW50YXRpb24gc3RydWN0IGluaXRpYWxseSBpbnRyb2R1 Y2VkIGZvciBjYXB0dXJpbmcgcGVyLW5vZGUKc3RhdGlzdGljcyBkdXJpbmcgZXhlY3V0aW9uLiBU aGlzIG92ZXJ1c2Ugb2YgdGhlIHNhbWUgc3RydWN0IGlzIGNvbmZ1c2luZywKZS5nLiBieSBjbHV0 dGVyaW5nIGNhbGxzIG9mIEluc3RyU3RhcnROb2RlL0luc3RyU3RvcE5vZGUgaW4gdW5yZWxhdGVk CmNvZGUgcGF0aHMsIGFuZCBwcmV2ZW50cyBmdXR1cmUgcmVmYWN0b3JpbmdzLgoKSW5zdGVhZCwg c2ltcGxpZnkgdGhlIEluc3RydW1lbnRhdGlvbiBzdHJ1Y3QgdG8gb25seSB0cmFjayB0aW1lIGFu ZApXQUwvYnVmZmVyIHVzYWdlLiBTaW1pbGFybHksIGRyb3AgdGhlIHVzZSBvZiBJbnN0ckVuZExv b3Agb3V0c2lkZSBvZgpwZXItbm9kZSBpbnN0cnVtZW50YXRpb24gLSB0aGVzZSBjYWxscyB3ZXJl IGFkZGVkIHdpdGhvdXQgYW55IGFwcGFyZW50CmJlbmVmaXQgc2luY2UgdGhlIHJlbGV2YW50IGZp ZWxkcyB3ZXJlIG5ldmVyIHJlYWQuCgpJbnRyb2R1Y2UgdGhlIE5vZGVJbnN0cnVtZW50YXRpb24g c3RydWN0IHRvIGNhcnJ5IGZvcndhcmQgdGhlIHBlci1ub2RlCmluc3RydW1lbnRhdGlvbiBpbmZv cm1hdGlvbi4gV29ya2VySW5zdHJ1bWVudGF0aW9uIGlzIHJlbmFtZWQgdG8KV29ya2VyTm9kZUlu c3RydW1lbnRhdGlvbiBmb3IgY2xhcml0eS4KCkluIHBhc3NpbmcsIGRyb3AgdGhlICJuIiBhcmd1 bWVudCB0byBJbnN0ckFsbG9jLCBhcyBhbGwgcmVtYWluaW5nIGNhbGxlcnMKbmVlZCBleGFjdGx5 IG9uZSBJbnN0cnVtZW50YXRpb24gc3RydWN0LgoKQXV0aG9yOiBMdWthcyBGaXR0bCA8bHVrYXNA Zml0dGwuY29tPgpSZXZpZXdlZC1ieToKRGlzY3Vzc2lvbjoKLS0tCiBjb250cmliL2F1dG9fZXhw bGFpbi9hdXRvX2V4cGxhaW4uYyAgICAgICAgICAgfCAgIDggKy0KIC4uLi9wZ19zdGF0X3N0YXRl bWVudHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmMgICB8ICAgOCArLQogY29udHJpYi9wb3N0Z3Jlc19m ZHcvcG9zdGdyZXNfZmR3LmMgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC9jb21tYW5k cy9leHBsYWluLmMgICAgICAgICAgICAgICAgfCAgMjAgKy0tCiBzcmMvYmFja2VuZC9leGVjdXRv ci9leGVjTWFpbi5jICAgICAgICAgICAgICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNQYXJhbGxlbC5jICAgICAgICAgICB8ICAyNCArLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNQcm9jbm9kZS5jICAgICAgICAgICB8ICAgNCArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Iv aW5zdHJ1bWVudC5jICAgICAgICAgICAgIHwgMTQyICsrKysrKysrKysrKy0tLS0tLQogc3JjL2lu Y2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oICAgICAgICAgICAgIHwgIDYwICsrKysrLS0tCiBz cmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIHNy Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgMyArLQogMTEg ZmlsZXMgY2hhbmdlZCwgMTcyIGluc2VydGlvbnMoKyksIDExMyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9jb250cmliL2F1dG9fZXhwbGFpbi9hdXRvX2V4cGxhaW4uYyBiL2NvbnRyaWIvYXV0 b19leHBsYWluL2F1dG9fZXhwbGFpbi5jCmluZGV4IGU4NTZjZDM1YTZmLi4zOWJmMjU0M2I3MCAx MDA2NDQKLS0tIGEvY29udHJpYi9hdXRvX2V4cGxhaW4vYXV0b19leHBsYWluLmMKKysrIGIvY29u dHJpYi9hdXRvX2V4cGxhaW4vYXV0b19leHBsYWluLmMKQEAgLTMxNSw3ICszMTUsNyBAQCBleHBs YWluX0V4ZWN1dG9yU3RhcnQoUXVlcnlEZXNjICpxdWVyeURlc2MsIGludCBlZmxhZ3MpCiAJCQlN ZW1vcnlDb250ZXh0IG9sZGN4dDsKIAogCQkJb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRv KHF1ZXJ5RGVzYy0+ZXN0YXRlLT5lc19xdWVyeV9jeHQpOwotCQkJcXVlcnlEZXNjLT50b3RhbHRp bWUgPSBJbnN0ckFsbG9jKDEsIElOU1RSVU1FTlRfQUxMLCBmYWxzZSk7CisJCQlxdWVyeURlc2Mt PnRvdGFsdGltZSA9IEluc3RyQWxsb2MoSU5TVFJVTUVOVF9BTEwpOwogCQkJTWVtb3J5Q29udGV4 dFN3aXRjaFRvKG9sZGN4dCk7CiAJCX0KIAl9CkBAIC0zODEsMTIgKzM4MSw2IEBAIGV4cGxhaW5f RXhlY3V0b3JFbmQoUXVlcnlEZXNjICpxdWVyeURlc2MpCiAJCSAqLwogCQlvbGRjeHQgPSBNZW1v cnlDb250ZXh0U3dpdGNoVG8ocXVlcnlEZXNjLT5lc3RhdGUtPmVzX3F1ZXJ5X2N4dCk7CiAKLQkJ LyoKLQkJICogTWFrZSBzdXJlIHN0YXRzIGFjY3VtdWxhdGlvbiBpcyBkb25lLiAgKE5vdGU6IGl0 J3Mgb2theSBpZiBzZXZlcmFsCi0JCSAqIGxldmVscyBvZiBob29rIGFsbCBkbyB0aGlzLikKLQkJ ICovCi0JCUluc3RyRW5kTG9vcChxdWVyeURlc2MtPnRvdGFsdGltZSk7Ci0KIAkJLyogTG9nIHBs YW4gaWYgZHVyYXRpb24gaXMgZXhjZWVkZWQuICovCiAJCW1zZWMgPSBJTlNUUl9USU1FX0dFVF9N SUxMSVNFQyhxdWVyeURlc2MtPnRvdGFsdGltZS0+dG90YWwpOwogCQlpZiAobXNlYyA+PSBhdXRv X2V4cGxhaW5fbG9nX21pbl9kdXJhdGlvbikKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9z dGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVu dHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmMKaW5kZXggNGE0Mjc1MzNiZDguLjM4OGIwNjhjY2VjIDEw MDY0NAotLS0gYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMu YworKysgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYwpA QCAtMTAyMyw3ICsxMDIzLDcgQEAgcGdzc19FeGVjdXRvclN0YXJ0KFF1ZXJ5RGVzYyAqcXVlcnlE ZXNjLCBpbnQgZWZsYWdzKQogCQkJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CiAKIAkJCW9sZGN4dCA9 IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhxdWVyeURlc2MtPmVzdGF0ZS0+ZXNfcXVlcnlfY3h0KTsK LQkJCXF1ZXJ5RGVzYy0+dG90YWx0aW1lID0gSW5zdHJBbGxvYygxLCBJTlNUUlVNRU5UX0FMTCwg ZmFsc2UpOworCQkJcXVlcnlEZXNjLT50b3RhbHRpbWUgPSBJbnN0ckFsbG9jKElOU1RSVU1FTlRf QUxMKTsKIAkJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOwogCQl9CiAJfQpAQCAtMTA4 MiwxMiArMTA4Miw2IEBAIHBnc3NfRXhlY3V0b3JFbmQoUXVlcnlEZXNjICpxdWVyeURlc2MpCiAJ aWYgKHF1ZXJ5SWQgIT0gSU5UNjRDT05TVCgwKSAmJiBxdWVyeURlc2MtPnRvdGFsdGltZSAmJgog CQlwZ3NzX2VuYWJsZWQobmVzdGluZ19sZXZlbCkpCiAJewotCQkvKgotCQkgKiBNYWtlIHN1cmUg c3RhdHMgYWNjdW11bGF0aW9uIGlzIGRvbmUuICAoTm90ZTogaXQncyBva2F5IGlmIHNldmVyYWwK LQkJICogbGV2ZWxzIG9mIGhvb2sgYWxsIGRvIHRoaXMuKQotCQkgKi8KLQkJSW5zdHJFbmRMb29w KHF1ZXJ5RGVzYy0+dG90YWx0aW1lKTsKLQogCQlwZ3NzX3N0b3JlKHF1ZXJ5RGVzYy0+c291cmNl VGV4dCwKIAkJCQkgICBxdWVyeUlkLAogCQkJCSAgIHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnN0 bXRfbG9jYXRpb24sCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19m ZHcuYyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5jCmluZGV4IDYwZDkwMzI5 YTY1Li42ZjBjYjJhMjg1YiAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdy ZXNfZmR3LmMKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3LmMKQEAgLTI3 NzgsNyArMjc3OCw3IEBAIHBvc3RncmVzSXRlcmF0ZURpcmVjdE1vZGlmeShGb3JlaWduU2NhblN0 YXRlICpub2RlKQogCWlmICghcmVzdWx0UmVsSW5mby0+cmlfcHJvamVjdFJldHVybmluZykKIAl7 CiAJCVR1cGxlVGFibGVTbG90ICpzbG90ID0gbm9kZS0+c3Muc3NfU2NhblR1cGxlU2xvdDsKLQkJ SW5zdHJ1bWVudGF0aW9uICppbnN0ciA9IG5vZGUtPnNzLnBzLmluc3RydW1lbnQ7CisJCU5vZGVJ bnN0cnVtZW50YXRpb24gKmluc3RyID0gbm9kZS0+c3MucHMuaW5zdHJ1bWVudDsKIAogCQlBc3Nl cnQoIWRtc3RhdGUtPmhhc19yZXR1cm5pbmcpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy9leHBsYWluLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKaW5kZXgg MDliMTM4MDdkOTIuLjM4OTE4MWI4ZDliIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9leHBsYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCkBAIC0xODM1 LDcgKzE4MzUsNyBAQCBFeHBsYWluTm9kZShQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgTGlzdCAqYW5j ZXN0b3JzLAogCXsKIAkJZG91YmxlCQlubG9vcHMgPSBwbGFuc3RhdGUtPmluc3RydW1lbnQtPm5s b29wczsKIAkJZG91YmxlCQlzdGFydHVwX21zID0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMocGxh bnN0YXRlLT5pbnN0cnVtZW50LT5zdGFydHVwKSAvIG5sb29wczsKLQkJZG91YmxlCQl0b3RhbF9t cyA9IElOU1RSX1RJTUVfR0VUX01JTExJU0VDKHBsYW5zdGF0ZS0+aW5zdHJ1bWVudC0+dG90YWwp IC8gbmxvb3BzOworCQlkb3VibGUJCXRvdGFsX21zID0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMo cGxhbnN0YXRlLT5pbnN0cnVtZW50LT5pbnN0ci50b3RhbCkgLyBubG9vcHM7CiAJCWRvdWJsZQkJ cm93cyA9IHBsYW5zdGF0ZS0+aW5zdHJ1bWVudC0+bnR1cGxlcyAvIG5sb29wczsKIAogCQlpZiAo ZXMtPmZvcm1hdCA9PSBFWFBMQUlOX0ZPUk1BVF9URVhUKQpAQCAtMTg4OCwxMSArMTg4OCwxMSBA QCBFeHBsYWluTm9kZShQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgTGlzdCAqYW5jZXN0b3JzLAogCS8q IHByZXBhcmUgcGVyLXdvcmtlciBnZW5lcmFsIGV4ZWN1dGlvbiBkZXRhaWxzICovCiAJaWYgKGVz LT53b3JrZXJzX3N0YXRlICYmIGVzLT52ZXJib3NlKQogCXsKLQkJV29ya2VySW5zdHJ1bWVudGF0 aW9uICp3ID0gcGxhbnN0YXRlLT53b3JrZXJfaW5zdHJ1bWVudDsKKwkJV29ya2VyTm9kZUluc3Ry dW1lbnRhdGlvbiAqdyA9IHBsYW5zdGF0ZS0+d29ya2VyX2luc3RydW1lbnQ7CiAKIAkJZm9yIChp bnQgbiA9IDA7IG4gPCB3LT5udW1fd29ya2VyczsgbisrKQogCQl7Ci0JCQlJbnN0cnVtZW50YXRp b24gKmluc3RydW1lbnQgPSAmdy0+aW5zdHJ1bWVudFtuXTsKKwkJCU5vZGVJbnN0cnVtZW50YXRp b24gKmluc3RydW1lbnQgPSAmdy0+aW5zdHJ1bWVudFtuXTsKIAkJCWRvdWJsZQkJbmxvb3BzID0g aW5zdHJ1bWVudC0+bmxvb3BzOwogCQkJZG91YmxlCQlzdGFydHVwX21zOwogCQkJZG91YmxlCQl0 b3RhbF9tczsKQEAgLTE5MDEsNyArMTkwMSw3IEBAIEV4cGxhaW5Ob2RlKFBsYW5TdGF0ZSAqcGxh bnN0YXRlLCBMaXN0ICphbmNlc3RvcnMsCiAJCQlpZiAobmxvb3BzIDw9IDApCiAJCQkJY29udGlu dWU7CiAJCQlzdGFydHVwX21zID0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoaW5zdHJ1bWVudC0+ c3RhcnR1cCkgLyBubG9vcHM7Ci0JCQl0b3RhbF9tcyA9IElOU1RSX1RJTUVfR0VUX01JTExJU0VD KGluc3RydW1lbnQtPnRvdGFsKSAvIG5sb29wczsKKwkJCXRvdGFsX21zID0gSU5TVFJfVElNRV9H RVRfTUlMTElTRUMoaW5zdHJ1bWVudC0+aW5zdHIudG90YWwpIC8gbmxvb3BzOwogCQkJcm93cyA9 IGluc3RydW1lbnQtPm50dXBsZXMgLyBubG9vcHM7CiAKIAkJCUV4cGxhaW5PcGVuV29ya2VyKG4s IGVzKTsKQEAgLTIyODgsMTggKzIyODgsMTggQEAgRXhwbGFpbk5vZGUoUGxhblN0YXRlICpwbGFu c3RhdGUsIExpc3QgKmFuY2VzdG9ycywKIAogCS8qIFNob3cgYnVmZmVyL1dBTCB1c2FnZSAqLwog CWlmIChlcy0+YnVmZmVycyAmJiBwbGFuc3RhdGUtPmluc3RydW1lbnQpCi0JCXNob3dfYnVmZmVy X3VzYWdlKGVzLCAmcGxhbnN0YXRlLT5pbnN0cnVtZW50LT5idWZ1c2FnZSk7CisJCXNob3dfYnVm ZmVyX3VzYWdlKGVzLCAmcGxhbnN0YXRlLT5pbnN0cnVtZW50LT5pbnN0ci5idWZ1c2FnZSk7CiAJ aWYgKGVzLT53YWwgJiYgcGxhbnN0YXRlLT5pbnN0cnVtZW50KQotCQlzaG93X3dhbF91c2FnZShl cywgJnBsYW5zdGF0ZS0+aW5zdHJ1bWVudC0+d2FsdXNhZ2UpOworCQlzaG93X3dhbF91c2FnZShl cywgJnBsYW5zdGF0ZS0+aW5zdHJ1bWVudC0+aW5zdHIud2FsdXNhZ2UpOwogCiAJLyogUHJlcGFy ZSBwZXItd29ya2VyIGJ1ZmZlci9XQUwgdXNhZ2UgKi8KIAlpZiAoZXMtPndvcmtlcnNfc3RhdGUg JiYgKGVzLT5idWZmZXJzIHx8IGVzLT53YWwpICYmIGVzLT52ZXJib3NlKQogCXsKLQkJV29ya2Vy SW5zdHJ1bWVudGF0aW9uICp3ID0gcGxhbnN0YXRlLT53b3JrZXJfaW5zdHJ1bWVudDsKKwkJV29y a2VyTm9kZUluc3RydW1lbnRhdGlvbiAqdyA9IHBsYW5zdGF0ZS0+d29ya2VyX2luc3RydW1lbnQ7 CiAKIAkJZm9yIChpbnQgbiA9IDA7IG4gPCB3LT5udW1fd29ya2VyczsgbisrKQogCQl7Ci0JCQlJ bnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQgPSAmdy0+aW5zdHJ1bWVudFtuXTsKKwkJCU5vZGVJ bnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQgPSAmdy0+aW5zdHJ1bWVudFtuXTsKIAkJCWRvdWJs ZQkJbmxvb3BzID0gaW5zdHJ1bWVudC0+bmxvb3BzOwogCiAJCQlpZiAobmxvb3BzIDw9IDApCkBA IC0yMzA3LDkgKzIzMDcsOSBAQCBFeHBsYWluTm9kZShQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgTGlz dCAqYW5jZXN0b3JzLAogCiAJCQlFeHBsYWluT3BlbldvcmtlcihuLCBlcyk7CiAJCQlpZiAoZXMt PmJ1ZmZlcnMpCi0JCQkJc2hvd19idWZmZXJfdXNhZ2UoZXMsICZpbnN0cnVtZW50LT5idWZ1c2Fn ZSk7CisJCQkJc2hvd19idWZmZXJfdXNhZ2UoZXMsICZpbnN0cnVtZW50LT5pbnN0ci5idWZ1c2Fn ZSk7CiAJCQlpZiAoZXMtPndhbCkKLQkJCQlzaG93X3dhbF91c2FnZShlcywgJmluc3RydW1lbnQt PndhbHVzYWdlKTsKKwkJCQlzaG93X3dhbF91c2FnZShlcywgJmluc3RydW1lbnQtPmluc3RyLndh bHVzYWdlKTsKIAkJCUV4cGxhaW5DbG9zZVdvcmtlcihuLCBlcyk7CiAJCX0KIAl9CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY01haW4uYwppbmRleCAxYTNiODAyMTYwMC4uYzBiMTc0Y2ZiYzAgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY01haW4uYwpAQCAtMzMxLDcgKzMzMSw3IEBAIHN0YW5kYXJkX0V4ZWN1dG9yUnVuKFF1 ZXJ5RGVzYyAqcXVlcnlEZXNjLAogCiAJLyogQWxsb3cgaW5zdHJ1bWVudGF0aW9uIG9mIEV4ZWN1 dG9yIG92ZXJhbGwgcnVudGltZSAqLwogCWlmIChxdWVyeURlc2MtPnRvdGFsdGltZSkKLQkJSW5z dHJTdGFydE5vZGUocXVlcnlEZXNjLT50b3RhbHRpbWUpOworCQlJbnN0clN0YXJ0KHF1ZXJ5RGVz Yy0+dG90YWx0aW1lKTsKIAogCS8qCiAJICogZXh0cmFjdCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBx dWVyeSBkZXNjcmlwdG9yIGFuZCB0aGUgcXVlcnkgZmVhdHVyZS4KQEAgLTM4Myw3ICszODMsNyBA QCBzdGFuZGFyZF9FeGVjdXRvclJ1bihRdWVyeURlc2MgKnF1ZXJ5RGVzYywKIAkJZGVzdC0+clNo dXRkb3duKGRlc3QpOwogCiAJaWYgKHF1ZXJ5RGVzYy0+dG90YWx0aW1lKQotCQlJbnN0clN0b3BO b2RlKHF1ZXJ5RGVzYy0+dG90YWx0aW1lLCBlc3RhdGUtPmVzX3Byb2Nlc3NlZCk7CisJCUluc3Ry U3RvcChxdWVyeURlc2MtPnRvdGFsdGltZSk7CiAKIAlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xk Y29udGV4dCk7CiB9CkBAIC00MzMsNyArNDMzLDcgQEAgc3RhbmRhcmRfRXhlY3V0b3JGaW5pc2go UXVlcnlEZXNjICpxdWVyeURlc2MpCiAKIAkvKiBBbGxvdyBpbnN0cnVtZW50YXRpb24gb2YgRXhl Y3V0b3Igb3ZlcmFsbCBydW50aW1lICovCiAJaWYgKHF1ZXJ5RGVzYy0+dG90YWx0aW1lKQotCQlJ bnN0clN0YXJ0Tm9kZShxdWVyeURlc2MtPnRvdGFsdGltZSk7CisJCUluc3RyU3RhcnQocXVlcnlE ZXNjLT50b3RhbHRpbWUpOwogCiAJLyogUnVuIE1vZGlmeVRhYmxlIG5vZGVzIHRvIGNvbXBsZXRp b24gKi8KIAlFeGVjUG9zdHByb2Nlc3NQbGFuKGVzdGF0ZSk7CkBAIC00NDMsNyArNDQzLDcgQEAg c3RhbmRhcmRfRXhlY3V0b3JGaW5pc2goUXVlcnlEZXNjICpxdWVyeURlc2MpCiAJCUFmdGVyVHJp Z2dlckVuZFF1ZXJ5KGVzdGF0ZSk7CiAKIAlpZiAocXVlcnlEZXNjLT50b3RhbHRpbWUpCi0JCUlu c3RyU3RvcE5vZGUocXVlcnlEZXNjLT50b3RhbHRpbWUsIDApOworCQlJbnN0clN0b3AocXVlcnlE ZXNjLT50b3RhbHRpbWUpOwogCiAJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCmluZGV4IGFjODRhZjI5NGM5Li5jMTUzZDVj MWMzYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKKysr IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKQEAgLTg3LDcgKzg3LDcgQEAg dHlwZWRlZiBzdHJ1Y3QgRml4ZWRQYXJhbGxlbEV4ZWN1dG9yU3RhdGUKICAqIGluc3RydW1lbnRf b3B0aW9uczogU2FtZSBtZWFuaW5nIGhlcmUgYXMgaW4gaW5zdHJ1bWVudC5jLgogICoKICAqIGlu c3RydW1lbnRfb2Zmc2V0OiBPZmZzZXQsIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZiB0aGlzIHN0 cnVjdHVyZSwKLSAqIG9mIHRoZSBmaXJzdCBJbnN0cnVtZW50YXRpb24gb2JqZWN0LiAgVGhpcyB3 aWxsIGRlcGVuZCBvbiB0aGUgbGVuZ3RoIG9mCisgKiBvZiB0aGUgZmlyc3QgTm9kZUluc3RydW1l bnRhdGlvbiBvYmplY3QuICBUaGlzIHdpbGwgZGVwZW5kIG9uIHRoZSBsZW5ndGggb2YKICAqIHRo ZSBwbGFuX25vZGVfaWQgYXJyYXkuCiAgKgogICogbnVtX3dvcmtlcnM6IE51bWJlciBvZiB3b3Jr ZXJzLgpAQCAtMTA0LDExICsxMDQsMTUgQEAgc3RydWN0IFNoYXJlZEV4ZWN1dG9ySW5zdHJ1bWVu dGF0aW9uCiAJaW50CQkJbnVtX3dvcmtlcnM7CiAJaW50CQkJbnVtX3BsYW5fbm9kZXM7CiAJaW50 CQkJcGxhbl9ub2RlX2lkW0ZMRVhJQkxFX0FSUkFZX01FTUJFUl07Ci0JLyogYXJyYXkgb2YgbnVt X3BsYW5fbm9kZXMgKiBudW1fd29ya2VycyBJbnN0cnVtZW50YXRpb24gb2JqZWN0cyBmb2xsb3dz ICovCisKKwkvKgorCSAqIGFycmF5IG9mIG51bV9wbGFuX25vZGVzICogbnVtX3dvcmtlcnMgTm9k ZUluc3RydW1lbnRhdGlvbiBvYmplY3RzCisJICogZm9sbG93cworCSAqLwogfTsKICNkZWZpbmUg R2V0SW5zdHJ1bWVudGF0aW9uQXJyYXkoc2VpKSBcCiAJKFN0YXRpY0Fzc2VydFZhcmlhYmxlSXNP ZlR5cGVNYWNybyhzZWksIFNoYXJlZEV4ZWN1dG9ySW5zdHJ1bWVudGF0aW9uICopLCBcCi0JIChJ bnN0cnVtZW50YXRpb24gKikgKCgoY2hhciAqKSBzZWkpICsgc2VpLT5pbnN0cnVtZW50X29mZnNl dCkpCisJIChOb2RlSW5zdHJ1bWVudGF0aW9uICopICgoKGNoYXIgKikgc2VpKSArIHNlaS0+aW5z dHJ1bWVudF9vZmZzZXQpKQogCiAvKiBDb250ZXh0IG9iamVjdCBmb3IgRXhlY1BhcmFsbGVsRXN0 aW1hdGUuICovCiB0eXBlZGVmIHN0cnVjdCBFeGVjUGFyYWxsZWxFc3RpbWF0ZUNvbnRleHQKQEAg LTcyNSw3ICs3MjksNyBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3RhdGUgKnBsYW5zdGF0 ZSwgRVN0YXRlICplc3RhdGUsCiAJCWluc3RydW1lbnRhdGlvbl9sZW4gPSBNQVhBTElHTihpbnN0 cnVtZW50YXRpb25fbGVuKTsKIAkJaW5zdHJ1bWVudF9vZmZzZXQgPSBpbnN0cnVtZW50YXRpb25f bGVuOwogCQlpbnN0cnVtZW50YXRpb25fbGVuICs9Ci0JCQltdWxfc2l6ZShzaXplb2YoSW5zdHJ1 bWVudGF0aW9uKSwKKwkJCW11bF9zaXplKHNpemVvZihOb2RlSW5zdHJ1bWVudGF0aW9uKSwKIAkJ CQkJIG11bF9zaXplKGUubm5vZGVzLCBud29ya2VycykpOwogCQlzaG1fdG9jX2VzdGltYXRlX2No dW5rKCZwY3h0LT5lc3RpbWF0b3IsIGluc3RydW1lbnRhdGlvbl9sZW4pOwogCQlzaG1fdG9jX2Vz dGltYXRlX2tleXMoJnBjeHQtPmVzdGltYXRvciwgMSk7CkBAIC04MTEsNyArODE1LDcgQEAgRXhl Y0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVTdGF0ZSAqZXN0YXRlLAog CSAqLwogCWlmIChlc3RhdGUtPmVzX2luc3RydW1lbnQpCiAJewotCQlJbnN0cnVtZW50YXRpb24g Kmluc3RydW1lbnQ7CisJCU5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQ7CiAJCWludAkJ CWk7CiAKIAkJaW5zdHJ1bWVudGF0aW9uID0gc2htX3RvY19hbGxvY2F0ZShwY3h0LT50b2MsIGlu c3RydW1lbnRhdGlvbl9sZW4pOwpAQCAtODIxLDcgKzgyNSw3IEBAIEV4ZWNJbml0UGFyYWxsZWxQ bGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAkJaW5zdHJ1bWVudGF0 aW9uLT5udW1fcGxhbl9ub2RlcyA9IGUubm5vZGVzOwogCQlpbnN0cnVtZW50ID0gR2V0SW5zdHJ1 bWVudGF0aW9uQXJyYXkoaW5zdHJ1bWVudGF0aW9uKTsKIAkJZm9yIChpID0gMDsgaSA8IG53b3Jr ZXJzICogZS5ubm9kZXM7ICsraSkKLQkJCUluc3RySW5pdCgmaW5zdHJ1bWVudFtpXSwgZXN0YXRl LT5lc19pbnN0cnVtZW50KTsKKwkJCUluc3RySW5pdE5vZGUoJmluc3RydW1lbnRbaV0sIGVzdGF0 ZS0+ZXNfaW5zdHJ1bWVudCk7CiAJCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxf S0VZX0lOU1RSVU1FTlRBVElPTiwKIAkJCQkJICAgaW5zdHJ1bWVudGF0aW9uKTsKIAkJcGVpLT5p bnN0cnVtZW50YXRpb24gPSBpbnN0cnVtZW50YXRpb247CkBAIC0xMDUzLDcgKzEwNTcsNyBAQCBz dGF0aWMgYm9vbAogRXhlY1BhcmFsbGVsUmV0cmlldmVJbnN0cnVtZW50YXRpb24oUGxhblN0YXRl ICpwbGFuc3RhdGUsCiAJCQkJCQkJCQlTaGFyZWRFeGVjdXRvckluc3RydW1lbnRhdGlvbiAqaW5z dHJ1bWVudGF0aW9uKQogewotCUluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudDsKKwlOb2RlSW5z dHJ1bWVudGF0aW9uICppbnN0cnVtZW50OwogCWludAkJCWk7CiAJaW50CQkJbjsKIAlpbnQJCQlp Ynl0ZXM7CkBAIC0xMDgxLDkgKzEwODUsOSBAQCBFeGVjUGFyYWxsZWxSZXRyaWV2ZUluc3RydW1l bnRhdGlvbihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwKIAkgKiBTd2l0Y2ggaW50byBwZXItcXVlcnkg bWVtb3J5IGNvbnRleHQuCiAJICovCiAJb2xkY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hU byhwbGFuc3RhdGUtPnN0YXRlLT5lc19xdWVyeV9jeHQpOwotCWlieXRlcyA9IG11bF9zaXplKGlu c3RydW1lbnRhdGlvbi0+bnVtX3dvcmtlcnMsIHNpemVvZihJbnN0cnVtZW50YXRpb24pKTsKKwlp Ynl0ZXMgPSBtdWxfc2l6ZShpbnN0cnVtZW50YXRpb24tPm51bV93b3JrZXJzLCBzaXplb2YoTm9k ZUluc3RydW1lbnRhdGlvbikpOwogCXBsYW5zdGF0ZS0+d29ya2VyX2luc3RydW1lbnQgPQotCQlw YWxsb2MoaWJ5dGVzICsgb2Zmc2V0b2YoV29ya2VySW5zdHJ1bWVudGF0aW9uLCBpbnN0cnVtZW50 KSk7CisJCXBhbGxvYyhpYnl0ZXMgKyBvZmZzZXRvZihXb3JrZXJOb2RlSW5zdHJ1bWVudGF0aW9u LCBpbnN0cnVtZW50KSk7CiAJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwogCiAJ cGxhbnN0YXRlLT53b3JrZXJfaW5zdHJ1bWVudC0+bnVtX3dvcmtlcnMgPSBpbnN0cnVtZW50YXRp b24tPm51bV93b3JrZXJzOwpAQCAtMTMxMyw3ICsxMzE3LDcgQEAgRXhlY1BhcmFsbGVsUmVwb3J0 SW5zdHJ1bWVudGF0aW9uKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLAogewogCWludAkJCWk7CiAJaW50 CQkJcGxhbl9ub2RlX2lkID0gcGxhbnN0YXRlLT5wbGFuLT5wbGFuX25vZGVfaWQ7Ci0JSW5zdHJ1 bWVudGF0aW9uICppbnN0cnVtZW50OworCU5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQ7 CiAKIAlJbnN0ckVuZExvb3AocGxhbnN0YXRlLT5pbnN0cnVtZW50KTsKIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1Byb2Nub2RlLmMgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjUHJvY25vZGUuYwppbmRleCA3ZTQwYjg1MjUxNy4uMTg0NjY2MWI1MDMgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQcm9jbm9kZS5jCisrKyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNQcm9jbm9kZS5jCkBAIC00MTMsOCArNDEzLDggQEAgRXhlY0luaXROb2Rl KFBsYW4gKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCiAJLyogU2V0IHVwIGlu c3RydW1lbnRhdGlvbiBmb3IgdGhpcyBub2RlIGlmIHJlcXVlc3RlZCAqLwogCWlmIChlc3RhdGUt PmVzX2luc3RydW1lbnQpCi0JCXJlc3VsdC0+aW5zdHJ1bWVudCA9IEluc3RyQWxsb2MoMSwgZXN0 YXRlLT5lc19pbnN0cnVtZW50LAotCQkJCQkJCQkJCXJlc3VsdC0+YXN5bmNfY2FwYWJsZSk7CisJ CXJlc3VsdC0+aW5zdHJ1bWVudCA9IEluc3RyQWxsb2NOb2RlKGVzdGF0ZS0+ZXNfaW5zdHJ1bWVu dCwKKwkJCQkJCQkJCQkJcmVzdWx0LT5hc3luY19jYXBhYmxlKTsKIAogCXJldHVybiByZXN1bHQ7 CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMgYi9zcmMv YmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKaW5kZXggOTM1NGFkN2JlMTIuLmJjNTUxZjk1 YTA4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKKysrIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvaW5zdHJ1bWVudC5jCkBAIC0yNiw1MSArMjYsMzAgQEAgc3Rh dGljIHZvaWQgQnVmZmVyVXNhZ2VBZGQoQnVmZmVyVXNhZ2UgKmRzdCwgY29uc3QgQnVmZmVyVXNh Z2UgKmFkZCk7CiBzdGF0aWMgdm9pZCBXYWxVc2FnZUFkZChXYWxVc2FnZSAqZHN0LCBXYWxVc2Fn ZSAqYWRkKTsKIAogCi0vKiBBbGxvY2F0ZSBuZXcgaW5zdHJ1bWVudGF0aW9uIHN0cnVjdHVyZShz KSAqLworLyogR2VuZXJhbCBwdXJwb3NlIGluc3RydW1lbnRhdGlvbiBoYW5kbGluZyAqLwogSW5z dHJ1bWVudGF0aW9uICoKLUluc3RyQWxsb2MoaW50IG4sIGludCBpbnN0cnVtZW50X29wdGlvbnMs IGJvb2wgYXN5bmNfbW9kZSkKK0luc3RyQWxsb2MoaW50IGluc3RydW1lbnRfb3B0aW9ucykKIHsK LQlJbnN0cnVtZW50YXRpb24gKmluc3RyOwotCi0JLyogaW5pdGlhbGl6ZSBhbGwgZmllbGRzIHRv IHplcm9lcywgdGhlbiBtb2RpZnkgYXMgbmVlZGVkICovCi0JaW5zdHIgPSBwYWxsb2MwKG4gKiBz aXplb2YoSW5zdHJ1bWVudGF0aW9uKSk7Ci0JaWYgKGluc3RydW1lbnRfb3B0aW9ucyAmIChJTlNU UlVNRU5UX0JVRkZFUlMgfCBJTlNUUlVNRU5UX1RJTUVSIHwgSU5TVFJVTUVOVF9XQUwpKQotCXsK LQkJYm9vbAkJbmVlZF9idWZmZXJzID0gKGluc3RydW1lbnRfb3B0aW9ucyAmIElOU1RSVU1FTlRf QlVGRkVSUykgIT0gMDsKLQkJYm9vbAkJbmVlZF93YWwgPSAoaW5zdHJ1bWVudF9vcHRpb25zICYg SU5TVFJVTUVOVF9XQUwpICE9IDA7Ci0JCWJvb2wJCW5lZWRfdGltZXIgPSAoaW5zdHJ1bWVudF9v cHRpb25zICYgSU5TVFJVTUVOVF9USU1FUikgIT0gMDsKLQkJaW50CQkJaTsKLQotCQlmb3IgKGkg PSAwOyBpIDwgbjsgaSsrKQotCQl7Ci0JCQlpbnN0cltpXS5uZWVkX2J1ZnVzYWdlID0gbmVlZF9i dWZmZXJzOwotCQkJaW5zdHJbaV0ubmVlZF93YWx1c2FnZSA9IG5lZWRfd2FsOwotCQkJaW5zdHJb aV0ubmVlZF90aW1lciA9IG5lZWRfdGltZXI7Ci0JCQlpbnN0cltpXS5hc3luY19tb2RlID0gYXN5 bmNfbW9kZTsKLQkJfQotCX0KLQorCUluc3RydW1lbnRhdGlvbiAqaW5zdHIgPSBwYWxsb2MwKHNp emVvZihJbnN0cnVtZW50YXRpb24pKTsKKwlJbnN0ckluaXRPcHRpb25zKGluc3RyLCBpbnN0cnVt ZW50X29wdGlvbnMpOwogCXJldHVybiBpbnN0cjsKIH0KIAotLyogSW5pdGlhbGl6ZSBhIHByZS1h bGxvY2F0ZWQgaW5zdHJ1bWVudGF0aW9uIHN0cnVjdHVyZS4gKi8KIHZvaWQKLUluc3RySW5pdChJ bnN0cnVtZW50YXRpb24gKmluc3RyLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zKQorSW5zdHJJbml0 T3B0aW9ucyhJbnN0cnVtZW50YXRpb24gKmluc3RyLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zKQog ewotCW1lbXNldChpbnN0ciwgMCwgc2l6ZW9mKEluc3RydW1lbnRhdGlvbikpOwogCWluc3RyLT5u ZWVkX2J1ZnVzYWdlID0gKGluc3RydW1lbnRfb3B0aW9ucyAmIElOU1RSVU1FTlRfQlVGRkVSUykg IT0gMDsKIAlpbnN0ci0+bmVlZF93YWx1c2FnZSA9IChpbnN0cnVtZW50X29wdGlvbnMgJiBJTlNU UlVNRU5UX1dBTCkgIT0gMDsKIAlpbnN0ci0+bmVlZF90aW1lciA9IChpbnN0cnVtZW50X29wdGlv bnMgJiBJTlNUUlVNRU5UX1RJTUVSKSAhPSAwOwogfQogCi0vKiBFbnRyeSB0byBhIHBsYW4gbm9k ZSAqLwogdm9pZAotSW5zdHJTdGFydE5vZGUoSW5zdHJ1bWVudGF0aW9uICppbnN0cikKK0luc3Ry U3RhcnQoSW5zdHJ1bWVudGF0aW9uICppbnN0cikKIHsKIAlpZiAoaW5zdHItPm5lZWRfdGltZXIp CiAJewogCQlpZiAoIUlOU1RSX1RJTUVfSVNfWkVSTyhpbnN0ci0+c3RhcnR0aW1lKSkKLQkJCWVs b2coRVJST1IsICJJbnN0clN0YXJ0Tm9kZSBjYWxsZWQgdHdpY2UgaW4gYSByb3ciKTsKKwkJCWVs b2coRVJST1IsICJJbnN0clN0YXJ0IGNhbGxlZCB0d2ljZSBpbiBhIHJvdyIpOwogCQllbHNlCiAJ CQlJTlNUUl9USU1FX1NFVF9DVVJSRU5UKGluc3RyLT5zdGFydHRpbWUpOwogCX0KQEAgLTgzLDI0 ICs2MiwxOSBAQCBJbnN0clN0YXJ0Tm9kZShJbnN0cnVtZW50YXRpb24gKmluc3RyKQogCQlpbnN0 ci0+d2FsdXNhZ2Vfc3RhcnQgPSBwZ1dhbFVzYWdlOwogfQogCi0vKiBFeGl0IGZyb20gYSBwbGFu IG5vZGUgKi8KIHZvaWQKLUluc3RyU3RvcE5vZGUoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91 YmxlIG5UdXBsZXMpCitJbnN0clN0b3AoSW5zdHJ1bWVudGF0aW9uICppbnN0cikKIHsKLQlkb3Vi bGUJCXNhdmVfdHVwbGVjb3VudCA9IGluc3RyLT50dXBsZWNvdW50OwogCWluc3RyX3RpbWUJZW5k dGltZTsKIAotCS8qIGNvdW50IHRoZSByZXR1cm5lZCB0dXBsZXMgKi8KLQlpbnN0ci0+dHVwbGVj b3VudCArPSBuVHVwbGVzOwotCiAJLyogbGV0J3MgdXBkYXRlIHRoZSB0aW1lIG9ubHkgaWYgdGhl IHRpbWVyIHdhcyByZXF1ZXN0ZWQgKi8KIAlpZiAoaW5zdHItPm5lZWRfdGltZXIpCiAJewogCQlp ZiAoSU5TVFJfVElNRV9JU19aRVJPKGluc3RyLT5zdGFydHRpbWUpKQotCQkJZWxvZyhFUlJPUiwg Ikluc3RyU3RvcE5vZGUgY2FsbGVkIHdpdGhvdXQgc3RhcnQiKTsKKwkJCWVsb2coRVJST1IsICJJ bnN0clN0b3AgY2FsbGVkIHdpdGhvdXQgc3RhcnQiKTsKIAogCQlJTlNUUl9USU1FX1NFVF9DVVJS RU5UKGVuZHRpbWUpOwotCQlJTlNUUl9USU1FX0FDQ1VNX0RJRkYoaW5zdHItPmNvdW50ZXIsIGVu ZHRpbWUsIGluc3RyLT5zdGFydHRpbWUpOworCQlJTlNUUl9USU1FX0FDQ1VNX0RJRkYoaW5zdHIt PnRvdGFsLCBlbmR0aW1lLCBpbnN0ci0+c3RhcnR0aW1lKTsKIAogCQlJTlNUUl9USU1FX1NFVF9a RVJPKGluc3RyLT5zdGFydHRpbWUpOwogCX0KQEAgLTExMyw2ICs4Nyw3NCBAQCBJbnN0clN0b3BO b2RlKEluc3RydW1lbnRhdGlvbiAqaW5zdHIsIGRvdWJsZSBuVHVwbGVzKQogCWlmIChpbnN0ci0+ bmVlZF93YWx1c2FnZSkKIAkJV2FsVXNhZ2VBY2N1bURpZmYoJmluc3RyLT53YWx1c2FnZSwKIAkJ CQkJCSAgJnBnV2FsVXNhZ2UsICZpbnN0ci0+d2FsdXNhZ2Vfc3RhcnQpOworfQorCisvKiBOb2Rl IGluc3RydW1lbnRhdGlvbiBoYW5kbGluZyAqLworCisvKiBBbGxvY2F0ZSBuZXcgbm9kZSBpbnN0 cnVtZW50YXRpb24gc3RydWN0dXJlICovCitOb2RlSW5zdHJ1bWVudGF0aW9uICoKK0luc3RyQWxs b2NOb2RlKGludCBpbnN0cnVtZW50X29wdGlvbnMsIGJvb2wgYXN5bmNfbW9kZSkKK3sKKwlOb2Rl SW5zdHJ1bWVudGF0aW9uICppbnN0ciA9IHBhbGxvYyhzaXplb2YoTm9kZUluc3RydW1lbnRhdGlv bikpOworCisJSW5zdHJJbml0Tm9kZShpbnN0ciwgaW5zdHJ1bWVudF9vcHRpb25zKTsKKwlpbnN0 ci0+YXN5bmNfbW9kZSA9IGFzeW5jX21vZGU7CisKKwlyZXR1cm4gaW5zdHI7Cit9CisKKy8qIElu aXRpYWxpemUgYSBwcmUtYWxsb2NhdGVkIGluc3RydW1lbnRhdGlvbiBzdHJ1Y3R1cmUuICovCit2 b2lkCitJbnN0ckluaXROb2RlKE5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RyLCBpbnQgaW5zdHJ1 bWVudF9vcHRpb25zKQoreworCW1lbXNldChpbnN0ciwgMCwgc2l6ZW9mKE5vZGVJbnN0cnVtZW50 YXRpb24pKTsKKwlJbnN0ckluaXRPcHRpb25zKCZpbnN0ci0+aW5zdHIsIGluc3RydW1lbnRfb3B0 aW9ucyk7Cit9CisKKy8qIEVudHJ5IHRvIGEgcGxhbiBub2RlICovCit2b2lkCitJbnN0clN0YXJ0 Tm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0cikKK3sKKwlJbnN0clN0YXJ0KCZpbnN0ci0+ aW5zdHIpOworfQorCisvKiBFeGl0IGZyb20gYSBwbGFuIG5vZGUgKi8KK3ZvaWQKK0luc3RyU3Rv cE5vZGUoTm9kZUluc3RydW1lbnRhdGlvbiAqaW5zdHIsIGRvdWJsZSBuVHVwbGVzKQoreworCWRv dWJsZQkJc2F2ZV90dXBsZWNvdW50ID0gaW5zdHItPnR1cGxlY291bnQ7CisJaW5zdHJfdGltZQll bmR0aW1lOworCisJLyogY291bnQgdGhlIHJldHVybmVkIHR1cGxlcyAqLworCWluc3RyLT50dXBs ZWNvdW50ICs9IG5UdXBsZXM7CisKKwkvKgorCSAqIFVwZGF0ZSB0aGUgdGltZSBvbmx5IGlmIHRo ZSB0aW1lciB3YXMgcmVxdWVzdGVkLgorCSAqCisJICogTm90ZSB0aGlzIGlzIGRpZmZlcmVudCBm cm9tIEluc3RyU3RvcCBiZWNhdXNlIHRvdGFsIGlzIG9ubHkgdXBkYXRlZCBpbgorCSAqIEluc3Ry RW5kTG9vcC4gV2UgbmVlZCB0aGUgc2VwYXJhdGUgY291bnRlciB2YXJpYWJsZSBiZWNhdXNlIHdl IG5lZWQgdG8KKwkgKiBjYWxjdWxhdGUgc3RhcnQtdXAgdGltZSBmb3IgdGhlIGZpcnN0IHR1cGxl IGluIGVhY2ggY3ljbGUsIGFuZCB0aGVuCisJICogYWNjdW11bGF0ZSBpdCB0b2dldGhlci4KKwkg Ki8KKwlpZiAoaW5zdHItPmluc3RyLm5lZWRfdGltZXIpCisJeworCQlpZiAoSU5TVFJfVElNRV9J U19aRVJPKGluc3RyLT5pbnN0ci5zdGFydHRpbWUpKQorCQkJZWxvZyhFUlJPUiwgIkluc3RyU3Rv cE5vZGUgY2FsbGVkIHdpdGhvdXQgc3RhcnQiKTsKKworCQlJTlNUUl9USU1FX1NFVF9DVVJSRU5U KGVuZHRpbWUpOworCQlJTlNUUl9USU1FX0FDQ1VNX0RJRkYoaW5zdHItPmNvdW50ZXIsIGVuZHRp bWUsIGluc3RyLT5pbnN0ci5zdGFydHRpbWUpOworCisJCUlOU1RSX1RJTUVfU0VUX1pFUk8oaW5z dHItPmluc3RyLnN0YXJ0dGltZSk7CisJfQorCisJLyogQWRkIGRlbHRhIG9mIGJ1ZmZlciB1c2Fn ZSBzaW5jZSBlbnRyeSB0byBub2RlJ3MgdG90YWxzICovCisJaWYgKGluc3RyLT5pbnN0ci5uZWVk X2J1ZnVzYWdlKQorCQlCdWZmZXJVc2FnZUFjY3VtRGlmZigmaW5zdHItPmluc3RyLmJ1ZnVzYWdl LAorCQkJCQkJCSAmcGdCdWZmZXJVc2FnZSwgJmluc3RyLT5pbnN0ci5idWZ1c2FnZV9zdGFydCk7 CisKKwlpZiAoaW5zdHItPmluc3RyLm5lZWRfd2FsdXNhZ2UpCisJCVdhbFVzYWdlQWNjdW1EaWZm KCZpbnN0ci0+aW5zdHIud2FsdXNhZ2UsCisJCQkJCQkgICZwZ1dhbFVzYWdlLCAmaW5zdHItPmlu c3RyLndhbHVzYWdlX3N0YXJ0KTsKIAogCS8qIElzIHRoaXMgdGhlIGZpcnN0IHR1cGxlIG9mIHRo aXMgY3ljbGU/ICovCiAJaWYgKCFpbnN0ci0+cnVubmluZykKQEAgLTEzMyw3ICsxNzUsNyBAQCBJ bnN0clN0b3BOb2RlKEluc3RydW1lbnRhdGlvbiAqaW5zdHIsIGRvdWJsZSBuVHVwbGVzKQogCiAv KiBVcGRhdGUgdHVwbGUgY291bnQgKi8KIHZvaWQKLUluc3RyVXBkYXRlVHVwbGVDb3VudChJbnN0 cnVtZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcykKK0luc3RyVXBkYXRlVHVwbGVDb3Vu dChOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBsZXMpCiB7CiAJLyogY291 bnQgdGhlIHJldHVybmVkIHR1cGxlcyAqLwogCWluc3RyLT50dXBsZWNvdW50ICs9IG5UdXBsZXM7 CkBAIC0xNDEsMjQgKzE4MywyNCBAQCBJbnN0clVwZGF0ZVR1cGxlQ291bnQoSW5zdHJ1bWVudGF0 aW9uICppbnN0ciwgZG91YmxlIG5UdXBsZXMpCiAKIC8qIEZpbmlzaCBhIHJ1biBjeWNsZSBmb3Ig YSBwbGFuIG5vZGUgKi8KIHZvaWQKLUluc3RyRW5kTG9vcChJbnN0cnVtZW50YXRpb24gKmluc3Ry KQorSW5zdHJFbmRMb29wKE5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RyKQogewogCS8qIFNraXAg aWYgbm90aGluZyBoYXMgaGFwcGVuZWQsIG9yIGFscmVhZHkgc2h1dCBkb3duICovCiAJaWYgKCFp bnN0ci0+cnVubmluZykKIAkJcmV0dXJuOwogCi0JaWYgKCFJTlNUUl9USU1FX0lTX1pFUk8oaW5z dHItPnN0YXJ0dGltZSkpCisJaWYgKCFJTlNUUl9USU1FX0lTX1pFUk8oaW5zdHItPmluc3RyLnN0 YXJ0dGltZSkpCiAJCWVsb2coRVJST1IsICJJbnN0ckVuZExvb3AgY2FsbGVkIG9uIHJ1bm5pbmcg bm9kZSIpOwogCiAJLyogQWNjdW11bGF0ZSBwZXItY3ljbGUgc3RhdGlzdGljcyBpbnRvIHRvdGFs cyAqLwogCUlOU1RSX1RJTUVfQUREKGluc3RyLT5zdGFydHVwLCBpbnN0ci0+Zmlyc3R0dXBsZSk7 Ci0JSU5TVFJfVElNRV9BREQoaW5zdHItPnRvdGFsLCBpbnN0ci0+Y291bnRlcik7CisJSU5TVFJf VElNRV9BREQoaW5zdHItPmluc3RyLnRvdGFsLCBpbnN0ci0+Y291bnRlcik7CiAJaW5zdHItPm50 dXBsZXMgKz0gaW5zdHItPnR1cGxlY291bnQ7CiAJaW5zdHItPm5sb29wcyArPSAxOwogCiAJLyog UmVzZXQgZm9yIG5leHQgY3ljbGUgKGlmIGFueSkgKi8KIAlpbnN0ci0+cnVubmluZyA9IGZhbHNl OwotCUlOU1RSX1RJTUVfU0VUX1pFUk8oaW5zdHItPnN0YXJ0dGltZSk7CisJSU5TVFJfVElNRV9T RVRfWkVSTyhpbnN0ci0+aW5zdHIuc3RhcnR0aW1lKTsKIAlJTlNUUl9USU1FX1NFVF9aRVJPKGlu c3RyLT5jb3VudGVyKTsKIAlJTlNUUl9USU1FX1NFVF9aRVJPKGluc3RyLT5maXJzdHR1cGxlKTsK IAlpbnN0ci0+dHVwbGVjb3VudCA9IDA7CkBAIC0xNjYsNyArMjA4LDcgQEAgSW5zdHJFbmRMb29w KEluc3RydW1lbnRhdGlvbiAqaW5zdHIpCiAKIC8qIGFnZ3JlZ2F0ZSBpbnN0cnVtZW50YXRpb24g aW5mb3JtYXRpb24gKi8KIHZvaWQKLUluc3RyQWdnTm9kZShJbnN0cnVtZW50YXRpb24gKmRzdCwg SW5zdHJ1bWVudGF0aW9uICphZGQpCitJbnN0ckFnZ05vZGUoTm9kZUluc3RydW1lbnRhdGlvbiAq ZHN0LCBOb2RlSW5zdHJ1bWVudGF0aW9uICphZGQpCiB7CiAJaWYgKCFkc3QtPnJ1bm5pbmcgJiYg YWRkLT5ydW5uaW5nKQogCXsKQEAgLTE4MSw3ICsyMjMsNyBAQCBJbnN0ckFnZ05vZGUoSW5zdHJ1 bWVudGF0aW9uICpkc3QsIEluc3RydW1lbnRhdGlvbiAqYWRkKQogCiAJZHN0LT50dXBsZWNvdW50 ICs9IGFkZC0+dHVwbGVjb3VudDsKIAlJTlNUUl9USU1FX0FERChkc3QtPnN0YXJ0dXAsIGFkZC0+ c3RhcnR1cCk7Ci0JSU5TVFJfVElNRV9BREQoZHN0LT50b3RhbCwgYWRkLT50b3RhbCk7CisJSU5T VFJfVElNRV9BREQoZHN0LT5pbnN0ci50b3RhbCwgYWRkLT5pbnN0ci50b3RhbCk7CiAJZHN0LT5u dHVwbGVzICs9IGFkZC0+bnR1cGxlczsKIAlkc3QtPm50dXBsZXMyICs9IGFkZC0+bnR1cGxlczI7 CiAJZHN0LT5ubG9vcHMgKz0gYWRkLT5ubG9vcHM7CkBAIC0xODksMTEgKzIzMSwxMSBAQCBJbnN0 ckFnZ05vZGUoSW5zdHJ1bWVudGF0aW9uICpkc3QsIEluc3RydW1lbnRhdGlvbiAqYWRkKQogCWRz dC0+bmZpbHRlcmVkMiArPSBhZGQtPm5maWx0ZXJlZDI7CiAKIAkvKiBBZGQgZGVsdGEgb2YgYnVm ZmVyIHVzYWdlIHNpbmNlIGVudHJ5IHRvIG5vZGUncyB0b3RhbHMgKi8KLQlpZiAoZHN0LT5uZWVk X2J1ZnVzYWdlKQotCQlCdWZmZXJVc2FnZUFkZCgmZHN0LT5idWZ1c2FnZSwgJmFkZC0+YnVmdXNh Z2UpOworCWlmIChkc3QtPmluc3RyLm5lZWRfYnVmdXNhZ2UpCisJCUJ1ZmZlclVzYWdlQWRkKCZk c3QtPmluc3RyLmJ1ZnVzYWdlLCAmYWRkLT5pbnN0ci5idWZ1c2FnZSk7CiAKLQlpZiAoZHN0LT5u ZWVkX3dhbHVzYWdlKQotCQlXYWxVc2FnZUFkZCgmZHN0LT53YWx1c2FnZSwgJmFkZC0+d2FsdXNh Z2UpOworCWlmIChkc3QtPmluc3RyLm5lZWRfd2FsdXNhZ2UpCisJCVdhbFVzYWdlQWRkKCZkc3Qt Pmluc3RyLndhbHVzYWdlLCAmYWRkLT5pbnN0ci53YWx1c2FnZSk7CiB9CiAKIC8qIFRyaWdnZXIg aW5zdHJ1bWVudGF0aW9uIGhhbmRsaW5nICovCkBAIC0yMDQsNyArMjQ2LDcgQEAgSW5zdHJBbGxv Y1RyaWdnZXIoaW50IG4sIGludCBpbnN0cnVtZW50X29wdGlvbnMpCiAJaW50CQkJaTsKIAogCWZv ciAoaSA9IDA7IGkgPCBuOyBpKyspCi0JCUluc3RySW5pdCgmdGdpbnN0cltpXS5pbnN0ciwgaW5z dHJ1bWVudF9vcHRpb25zKTsKKwkJSW5zdHJJbml0T3B0aW9ucygmdGdpbnN0cltpXS5pbnN0ciwg aW5zdHJ1bWVudF9vcHRpb25zKTsKIAogCXJldHVybiB0Z2luc3RyOwogfQpAQCAtMjEyLDEzICsy NTQsMTMgQEAgSW5zdHJBbGxvY1RyaWdnZXIoaW50IG4sIGludCBpbnN0cnVtZW50X29wdGlvbnMp CiB2b2lkCiBJbnN0clN0YXJ0VHJpZ2dlcihUcmlnZ2VySW5zdHJ1bWVudGF0aW9uICp0Z2luc3Ry KQogewotCUluc3RyU3RhcnROb2RlKCZ0Z2luc3RyLT5pbnN0cik7CisJSW5zdHJTdGFydCgmdGdp bnN0ci0+aW5zdHIpOwogfQogCiB2b2lkCiBJbnN0clN0b3BUcmlnZ2VyKFRyaWdnZXJJbnN0cnVt ZW50YXRpb24gKnRnaW5zdHIsIGludCBmaXJpbmdzKQogewotCUluc3RyU3RvcE5vZGUoJnRnaW5z dHItPmluc3RyLCAwKTsKKwlJbnN0clN0b3AoJnRnaW5zdHItPmluc3RyKTsKIAl0Z2luc3RyLT5m aXJpbmdzICs9IGZpcmluZ3M7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9y L2luc3RydW1lbnQuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaAppbmRleCBh OWMyMjMzMjI3Zi4uYjExZDY0NjMzYjUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9y L2luc3RydW1lbnQuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmgKQEAg LTY3LDM4ICs2Nyw1NSBAQCB0eXBlZGVmIGVudW0gSW5zdHJ1bWVudE9wdGlvbgogCUlOU1RSVU1F TlRfQUxMID0gUEdfSU5UMzJfTUFYCiB9IEluc3RydW1lbnRPcHRpb247CiAKKy8qCisgKiBHZW5l cmFsIHB1cnBvc2UgaW5zdHJ1bWVudGF0aW9uIHRoYXQgY2FuIGNhcHR1cmUgdGltZSBhbmQgV0FM L2J1ZmZlciB1c2FnZQorICoKKyAqIEluaXRpYWxpemVkIHRocm91Z2ggSW5zdHJBbGxvYywgZm9s bG93ZWQgYnkgb25lIG9yIG1vcmUgY2FsbHMgdG8gYSBwYWlyIG9mCisgKiBJbnN0clN0YXJ0L0lu c3RyU3RvcCAoYWN0aXZpdHkgaXMgbWVhc3VyZWQgaW5iZXR3ZWVuKS4KKyAqLwogdHlwZWRlZiBz dHJ1Y3QgSW5zdHJ1bWVudGF0aW9uCiB7Ci0JLyogUGFyYW1ldGVycyBzZXQgYXQgbm9kZSBjcmVh dGlvbjogKi8KKwkvKiBQYXJhbWV0ZXJzIHNldCBhdCBjcmVhdGlvbjogKi8KIAlib29sCQluZWVk X3RpbWVyOwkJLyogdHJ1ZSBpZiB3ZSBuZWVkIHRpbWVyIGRhdGEgKi8KIAlib29sCQluZWVkX2J1 ZnVzYWdlOwkvKiB0cnVlIGlmIHdlIG5lZWQgYnVmZmVyIHVzYWdlIGRhdGEgKi8KIAlib29sCQlu ZWVkX3dhbHVzYWdlOwkvKiB0cnVlIGlmIHdlIG5lZWQgV0FMIHVzYWdlIGRhdGEgKi8KKwkvKiBJ bnRlcm5hbCBzdGF0ZSBrZWVwaW5nOiAqLworCWluc3RyX3RpbWUJc3RhcnR0aW1lOwkJLyogc3Rh cnQgdGltZSBvZiBsYXN0IEluc3RyU3RhcnQgKi8KKwlCdWZmZXJVc2FnZSBidWZ1c2FnZV9zdGFy dDsgLyogYnVmZmVyIHVzYWdlIGF0IHN0YXJ0ICovCisJV2FsVXNhZ2UJd2FsdXNhZ2Vfc3RhcnQ7 IC8qIFdBTCB1c2FnZSBhdCBzdGFydCAqLworCS8qIEFjY3VtdWxhdGVkIHN0YXRpc3RpY3M6ICov CisJaW5zdHJfdGltZQl0b3RhbDsJCQkvKiB0b3RhbCBydW50aW1lICovCisJQnVmZmVyVXNhZ2Ug YnVmdXNhZ2U7CQkvKiB0b3RhbCBidWZmZXIgdXNhZ2UgKi8KKwlXYWxVc2FnZQl3YWx1c2FnZTsJ CS8qIHRvdGFsIFdBTCB1c2FnZSAqLworfSBJbnN0cnVtZW50YXRpb247CisKKy8qCisgKiBTcGVj aWFsaXplZCBpbnN0cnVtZW50YXRpb24gZm9yIHBlci1ub2RlIGV4ZWN1dGlvbiBzdGF0aXN0aWNz CisgKi8KK3R5cGVkZWYgc3RydWN0IE5vZGVJbnN0cnVtZW50YXRpb24KK3sKKwlJbnN0cnVtZW50 YXRpb24gaW5zdHI7CisJLyogUGFyYW1ldGVycyBzZXQgYXQgbm9kZSBjcmVhdGlvbjogKi8KIAli b29sCQlhc3luY19tb2RlOwkJLyogdHJ1ZSBpZiBub2RlIGlzIGluIGFzeW5jIG1vZGUgKi8KIAkv KiBJbmZvIGFib3V0IGN1cnJlbnQgcGxhbiBjeWNsZTogKi8KIAlib29sCQlydW5uaW5nOwkJLyog dHJ1ZSBpZiB3ZSd2ZSBjb21wbGV0ZWQgZmlyc3QgdHVwbGUgKi8KLQlpbnN0cl90aW1lCXN0YXJ0 dGltZTsJCS8qIHN0YXJ0IHRpbWUgb2YgY3VycmVudCBpdGVyYXRpb24gb2Ygbm9kZSAqLwogCWlu c3RyX3RpbWUJY291bnRlcjsJCS8qIGFjY3VtdWxhdGVkIHJ1bnRpbWUgZm9yIHRoaXMgbm9kZSAq LwogCWluc3RyX3RpbWUJZmlyc3R0dXBsZTsJCS8qIHRpbWUgZm9yIGZpcnN0IHR1cGxlIG9mIHRo aXMgY3ljbGUgKi8KIAlkb3VibGUJCXR1cGxlY291bnQ7CQkvKiAjIG9mIHR1cGxlcyBlbWl0dGVk IHNvIGZhciB0aGlzIGN5Y2xlICovCi0JQnVmZmVyVXNhZ2UgYnVmdXNhZ2Vfc3RhcnQ7IC8qIGJ1 ZmZlciB1c2FnZSBhdCBzdGFydCAqLwotCVdhbFVzYWdlCXdhbHVzYWdlX3N0YXJ0OyAvKiBXQUwg dXNhZ2UgYXQgc3RhcnQgKi8KIAkvKiBBY2N1bXVsYXRlZCBzdGF0aXN0aWNzIGFjcm9zcyBhbGwg Y29tcGxldGVkIGN5Y2xlczogKi8KIAlpbnN0cl90aW1lCXN0YXJ0dXA7CQkvKiB0b3RhbCBzdGFy dHVwIHRpbWUgKi8KLQlpbnN0cl90aW1lCXRvdGFsOwkJCS8qIHRvdGFsIHRpbWUgKi8KIAlkb3Vi bGUJCW50dXBsZXM7CQkvKiB0b3RhbCB0dXBsZXMgcHJvZHVjZWQgKi8KIAlkb3VibGUJCW50dXBs ZXMyOwkJLyogc2Vjb25kYXJ5IG5vZGUtc3BlY2lmaWMgdHVwbGUgY291bnRlciAqLwogCWRvdWJs ZQkJbmxvb3BzOwkJCS8qICMgb2YgcnVuIGN5Y2xlcyBmb3IgdGhpcyBub2RlICovCiAJZG91Ymxl CQluZmlsdGVyZWQxOwkJLyogIyBvZiB0dXBsZXMgcmVtb3ZlZCBieSBzY2FucXVhbCBvciBqb2lu cXVhbCAqLwogCWRvdWJsZQkJbmZpbHRlcmVkMjsJCS8qICMgb2YgdHVwbGVzIHJlbW92ZWQgYnkg Im90aGVyIiBxdWFscyAqLwotCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdlOwkJLyogdG90YWwgYnVmZmVy IHVzYWdlICovCi0JV2FsVXNhZ2UJd2FsdXNhZ2U7CQkvKiB0b3RhbCBXQUwgdXNhZ2UgKi8KLX0g SW5zdHJ1bWVudGF0aW9uOworfSBOb2RlSW5zdHJ1bWVudGF0aW9uOwogCi10eXBlZGVmIHN0cnVj dCBXb3JrZXJJbnN0cnVtZW50YXRpb24KK3R5cGVkZWYgc3RydWN0IFdvcmtlck5vZGVJbnN0cnVt ZW50YXRpb24KIHsKIAlpbnQJCQludW1fd29ya2VyczsJLyogIyBvZiBzdHJ1Y3R1cmVzIHRoYXQg Zm9sbG93ICovCi0JSW5zdHJ1bWVudGF0aW9uIGluc3RydW1lbnRbRkxFWElCTEVfQVJSQVlfTUVN QkVSXTsKLX0gV29ya2VySW5zdHJ1bWVudGF0aW9uOworCU5vZGVJbnN0cnVtZW50YXRpb24gaW5z dHJ1bWVudFtGTEVYSUJMRV9BUlJBWV9NRU1CRVJdOworfSBXb3JrZXJOb2RlSW5zdHJ1bWVudGF0 aW9uOwogCiB0eXBlZGVmIHN0cnVjdCBUcmlnZ2VySW5zdHJ1bWVudGF0aW9uCiB7CkBAIC0xMTAs MTQgKzEyNywxOSBAQCB0eXBlZGVmIHN0cnVjdCBUcmlnZ2VySW5zdHJ1bWVudGF0aW9uCiBleHRl cm4gUEdETExJTVBPUlQgQnVmZmVyVXNhZ2UgcGdCdWZmZXJVc2FnZTsKIGV4dGVybiBQR0RMTElN UE9SVCBXYWxVc2FnZSBwZ1dhbFVzYWdlOwogCi1leHRlcm4gSW5zdHJ1bWVudGF0aW9uICpJbnN0 ckFsbG9jKGludCBuLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zLAotCQkJCQkJCQkgICBib29sIGFz eW5jX21vZGUpOwotZXh0ZXJuIHZvaWQgSW5zdHJJbml0KEluc3RydW1lbnRhdGlvbiAqaW5zdHIs IGludCBpbnN0cnVtZW50X29wdGlvbnMpOwotZXh0ZXJuIHZvaWQgSW5zdHJTdGFydE5vZGUoSW5z dHJ1bWVudGF0aW9uICppbnN0cik7Ci1leHRlcm4gdm9pZCBJbnN0clN0b3BOb2RlKEluc3RydW1l bnRhdGlvbiAqaW5zdHIsIGRvdWJsZSBuVHVwbGVzKTsKLWV4dGVybiB2b2lkIEluc3RyVXBkYXRl VHVwbGVDb3VudChJbnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcyk7Ci1leHRl cm4gdm9pZCBJbnN0ckVuZExvb3AoSW5zdHJ1bWVudGF0aW9uICppbnN0cik7Ci1leHRlcm4gdm9p ZCBJbnN0ckFnZ05vZGUoSW5zdHJ1bWVudGF0aW9uICpkc3QsIEluc3RydW1lbnRhdGlvbiAqYWRk KTsKK2V4dGVybiBJbnN0cnVtZW50YXRpb24gKkluc3RyQWxsb2MoaW50IGluc3RydW1lbnRfb3B0 aW9ucyk7CitleHRlcm4gdm9pZCBJbnN0ckluaXRPcHRpb25zKEluc3RydW1lbnRhdGlvbiAqaW5z dHIsIGludCBpbnN0cnVtZW50X29wdGlvbnMpOworZXh0ZXJuIHZvaWQgSW5zdHJTdGFydChJbnN0 cnVtZW50YXRpb24gKmluc3RyKTsKK2V4dGVybiB2b2lkIEluc3RyU3RvcChJbnN0cnVtZW50YXRp b24gKmluc3RyKTsKKworZXh0ZXJuIE5vZGVJbnN0cnVtZW50YXRpb24gKkluc3RyQWxsb2NOb2Rl KGludCBpbnN0cnVtZW50X29wdGlvbnMsCisJCQkJCQkJCQkJICAgYm9vbCBhc3luY19tb2RlKTsK K2V4dGVybiB2b2lkIEluc3RySW5pdE5vZGUoTm9kZUluc3RydW1lbnRhdGlvbiAqaW5zdHIsIGlu dCBpbnN0cnVtZW50X29wdGlvbnMpOworZXh0ZXJuIHZvaWQgSW5zdHJTdGFydE5vZGUoTm9kZUlu c3RydW1lbnRhdGlvbiAqaW5zdHIpOworZXh0ZXJuIHZvaWQgSW5zdHJTdG9wTm9kZShOb2RlSW5z dHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBsZXMpOworZXh0ZXJuIHZvaWQgSW5zdHJV cGRhdGVUdXBsZUNvdW50KE5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxl cyk7CitleHRlcm4gdm9pZCBJbnN0ckVuZExvb3AoTm9kZUluc3RydW1lbnRhdGlvbiAqaW5zdHIp OworZXh0ZXJuIHZvaWQgSW5zdHJBZ2dOb2RlKE5vZGVJbnN0cnVtZW50YXRpb24gKmRzdCwgTm9k ZUluc3RydW1lbnRhdGlvbiAqYWRkKTsKIAogZXh0ZXJuIFRyaWdnZXJJbnN0cnVtZW50YXRpb24g Kkluc3RyQWxsb2NUcmlnZ2VyKGludCBuLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zKTsKIGV4dGVy biB2b2lkIEluc3RyU3RhcnRUcmlnZ2VyKFRyaWdnZXJJbnN0cnVtZW50YXRpb24gKnRnaW5zdHIp OwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVk ZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCBhNDNiZDQyOGE5MS4uNjA1YzdhNmNjMzkgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25v ZGVzL2V4ZWNub2Rlcy5oCkBAIC0xMTc1LDggKzExNzUsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgUGxh blN0YXRlCiAJRXhlY1Byb2NOb2RlTXRkIEV4ZWNQcm9jTm9kZVJlYWw7CS8qIGFjdHVhbCBmdW5j dGlvbiwgaWYgYWJvdmUgaXMgYQogCQkJCQkJCQkJCSAqIHdyYXBwZXIgKi8KIAotCUluc3RydW1l bnRhdGlvbiAqaW5zdHJ1bWVudDsJLyogT3B0aW9uYWwgcnVudGltZSBzdGF0cyBmb3IgdGhpcyBu b2RlICovCi0JV29ya2VySW5zdHJ1bWVudGF0aW9uICp3b3JrZXJfaW5zdHJ1bWVudDsJLyogcGVy LXdvcmtlciBpbnN0cnVtZW50YXRpb24gKi8KKwlOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0cnVt ZW50OwkvKiBPcHRpb25hbCBydW50aW1lIHN0YXRzIGZvciB0aGlzCisJCQkJCQkJCQkJICogbm9k ZSAqLworCVdvcmtlck5vZGVJbnN0cnVtZW50YXRpb24gKndvcmtlcl9pbnN0cnVtZW50OwkvKiBw ZXItd29ya2VyCisJCQkJCQkJCQkJCQkJICogaW5zdHJ1bWVudGF0aW9uICovCiAKIAkvKiBQZXIt d29ya2VyIEpJVCBpbnN0cnVtZW50YXRpb24gKi8KIAlzdHJ1Y3QgU2hhcmVkSml0SW5zdHJ1bWVu dGF0aW9uICp3b3JrZXJfaml0X2luc3RydW1lbnQ7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0Cmlu ZGV4IDZlNzg2NzRlMjgyLi5lMDVhMWU1MmRiNCAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK QEAgLTE3ODYsNiArMTc4Niw3IEBAIE5leHRTYW1wbGVCbG9ja19mdW5jdGlvbgogTmV4dFNhbXBs ZVR1cGxlX2Z1bmN0aW9uCiBOZXh0VmFsdWVFeHByCiBOb2RlCitOb2RlSW5zdHJ1bWVudGF0aW9u CiBOb2RlVGFnCiBOb25FbXB0eVJhbmdlCiBOb25lQ29tcHJlc3NvclN0YXRlCkBAIC0zMzg0LDkg KzMzODUsOSBAQCBXb3JrVGFibGVTY2FuCiBXb3JrVGFibGVTY2FuU3RhdGUKIFdvcmtlckluZm8K IFdvcmtlckluZm9EYXRhCi1Xb3JrZXJJbnN0cnVtZW50YXRpb24KIFdvcmtlckpvYkR1bXBQdHJU eXBlCiBXb3JrZXJKb2JSZXN0b3JlUHRyVHlwZQorV29ya2VyTm9kZUluc3RydW1lbnRhdGlvbgog V29ya2luZ19TdGF0ZQogV3JpdGVCdWZQdHJUeXBlCiBXcml0ZUJ5dGVQdHJUeXBlCi0tIAoyLjQ3 LjEKCg== --0000000000001ac30e064d022147 Content-Type: application/octet-stream; name="v8-0003-instrumentation-Replace-direct-changes-of-pgBuffe.patch" Content-Disposition: attachment; filename="v8-0003-instrumentation-Replace-direct-changes-of-pgBuffe.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmqsnn4k2 RnJvbSA3ZmZjMDc0MzNkMTU4ODBhYTFiYTg0OGUxYjdiNDU0NGFlZGFhYTc4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBT YXQsIDcgTWFyIDIwMjYgMTI6MTI6MzkgLTA4MDAKU3ViamVjdDogW1BBVENIIHY4IDMvOF0gaW5z dHJ1bWVudGF0aW9uOiBSZXBsYWNlIGRpcmVjdCBjaGFuZ2VzIG9mCiBwZ0J1ZmZlclVzYWdlL3Bn V2FsVXNhZ2Ugd2l0aCBJTlNUUl8qIG1hY3JvcwoKVGhpcyBlbmNhcHN1bGF0ZXMgdGhlIG93bmVy c2hpcCBvZiB0aGVzZSBnbG9iYWxzIGJldHRlciwgYW5kIHdpbGwgYWxsb3cKYSBzdWJzZXF1ZW50 IHJlZmFjdG9yaW5nLgoKQXV0aG9yOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpSZXZp ZXdlZC1ieTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpEaXNjdXNzaW9uOiBo dHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL2ZsYXQvQ0FQNTNQa3paM1VvdG5S cnJuWFdBdiUzREY0YXZScTlNUTh6VSUyQmJ4b045dHBvdkV1NmZHUSU0MG1haWwuZ21haWwuY29t I2ZjNzE0MGU4YWYyMWUwN2E5MGEwOWQ3ZTc2YjMwMGM0Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0veGxvZy5jICAgICAgfCAxMCArKysrKy0tLS0tCiBzcmMvYmFja2VuZC9leGVjdXRv ci9pbnN0cnVtZW50LmMgICAgICB8ICAxIC0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1 Zm1nci5jICAgIHwgMjQgKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9zdG9y YWdlL2J1ZmZlci9sb2NhbGJ1Zi5jICB8ICA2ICsrKy0tLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9m aWxlL2J1ZmZpbGUuYyAgICAgfCAgOCArKysrLS0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvcGdzdGF0X2lvLmMgfCAgOCArKysrLS0tLQogc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1 bWVudC5oICAgICAgfCAxOSArKysrKysrKysrKysrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDQ3 IGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cu YwppbmRleCBmNWM5YTM0Mzc0ZC4uOWIzMzU4NGY0NTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 bG9nLmMKQEAgLTEwODEsMTAgKzEwODEsMTAgQEAgWExvZ0luc2VydFJlY29yZChYTG9nUmVjRGF0 YSAqcmRhdGEsCiAJLyogUmVwb3J0IFdBTCB0cmFmZmljIHRvIHRoZSBpbnN0cnVtZW50YXRpb24u ICovCiAJaWYgKGluc2VydGVkKQogCXsKLQkJcGdXYWxVc2FnZS53YWxfYnl0ZXMgKz0gcmVjaGRy LT54bF90b3RfbGVuOwotCQlwZ1dhbFVzYWdlLndhbF9yZWNvcmRzKys7Ci0JCXBnV2FsVXNhZ2Uu d2FsX2ZwaSArPSBudW1fZnBpOwotCQlwZ1dhbFVzYWdlLndhbF9mcGlfYnl0ZXMgKz0gZnBpX2J5 dGVzOworCQlJTlNUUl9XQUxVU0FHRV9BREQod2FsX2J5dGVzLCByZWNoZHItPnhsX3RvdF9sZW4p OworCQlJTlNUUl9XQUxVU0FHRV9JTkNSKHdhbF9yZWNvcmRzKTsKKwkJSU5TVFJfV0FMVVNBR0Vf QUREKHdhbF9mcGksIG51bV9mcGkpOworCQlJTlNUUl9XQUxVU0FHRV9BREQod2FsX2ZwaV9ieXRl cywgZnBpX2J5dGVzKTsKIAogCQkvKiBSZXF1aXJlZCBmb3IgdGhlIGZsdXNoIG9mIHBlbmRpbmcg c3RhdHMgV0FMIGRhdGEgKi8KIAkJcGdzdGF0X3JlcG9ydF9maXhlZCA9IHRydWU7CkBAIC0yMDYz LDcgKzIwNjMsNyBAQCBBZHZhbmNlWExJbnNlcnRCdWZmZXIoWExvZ1JlY1B0ciB1cHRvLCBUaW1l TGluZUlEIHRsaSwgYm9vbCBvcHBvcnR1bmlzdGljKQogCQkJCQlXcml0ZVJxc3QuRmx1c2ggPSBJ bnZhbGlkWExvZ1JlY1B0cjsKIAkJCQkJWExvZ1dyaXRlKFdyaXRlUnFzdCwgdGxpLCBmYWxzZSk7 CiAJCQkJCUxXTG9ja1JlbGVhc2UoV0FMV3JpdGVMb2NrKTsKLQkJCQkJcGdXYWxVc2FnZS53YWxf YnVmZmVyc19mdWxsKys7CisJCQkJCUlOU1RSX1dBTFVTQUdFX0lOQ1Iod2FsX2J1ZmZlcnNfZnVs bCk7CiAJCQkJCVRSQUNFX1BPU1RHUkVTUUxfV0FMX0JVRkZFUl9XUklURV9ESVJUWV9ET05FKCk7 CiAKIAkJCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQu YyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYwppbmRleCBiYzU1MWY5NWEwOC4u NmE0YTA4ZWJiMGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQu YworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKQEAgLTU0LDcgKzU0LDYg QEAgSW5zdHJTdGFydChJbnN0cnVtZW50YXRpb24gKmluc3RyKQogCQkJSU5TVFJfVElNRV9TRVRf Q1VSUkVOVChpbnN0ci0+c3RhcnR0aW1lKTsKIAl9CiAKLQkvKiBzYXZlIGJ1ZmZlciB1c2FnZSB0 b3RhbHMgYXQgbm9kZSBlbnRyeSwgaWYgbmVlZGVkICovCiAJaWYgKGluc3RyLT5uZWVkX2J1ZnVz YWdlKQogCQlpbnN0ci0+YnVmdXNhZ2Vfc3RhcnQgPSBwZ0J1ZmZlclVzYWdlOwogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYyBiL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCmluZGV4IDAwYmM2MDk1MjlhLi5kZmEzN2U1ZWQ0NCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKKysrIGIvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKQEAgLTgzNSw3ICs4MzUsNyBAQCBSZWFkUmVj ZW50QnVmZmVyKFJlbEZpbGVMb2NhdG9yIHJsb2NhdG9yLCBGb3JrTnVtYmVyIGZvcmtOdW0sIEJs b2NrTnVtYmVyIGJsb2NrTgogCQl7CiAJCQlQaW5Mb2NhbEJ1ZmZlcihidWZIZHIsIHRydWUpOwog Ci0JCQlwZ0J1ZmZlclVzYWdlLmxvY2FsX2Jsa3NfaGl0Kys7CisJCQlJTlNUUl9CVUZVU0FHRV9J TkNSKGxvY2FsX2Jsa3NfaGl0KTsKIAogCQkJcmV0dXJuIHRydWU7CiAJCX0KQEAgLTg1Niw3ICs4 NTYsNyBAQCBSZWFkUmVjZW50QnVmZmVyKFJlbEZpbGVMb2NhdG9yIHJsb2NhdG9yLCBGb3JrTnVt YmVyIGZvcmtOdW0sIEJsb2NrTnVtYmVyIGJsb2NrTgogCQl7CiAJCQlpZiAoQnVmZmVyVGFnc0Vx dWFsKCZ0YWcsICZidWZIZHItPnRhZykpCiAJCQl7Ci0JCQkJcGdCdWZmZXJVc2FnZS5zaGFyZWRf Ymxrc19oaXQrKzsKKwkJCQlJTlNUUl9CVUZVU0FHRV9JTkNSKHNoYXJlZF9ibGtzX2hpdCk7CiAJ CQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlVbnBpbkJ1ZmZlcihidWZIZHIpOwpAQCAtMTI1Nywx NCArMTI1NywxNCBAQCBQaW5CdWZmZXJGb3JCbG9jayhSZWxhdGlvbiByZWwsCiAJewogCQlidWZI ZHIgPSBMb2NhbEJ1ZmZlckFsbG9jKHNtZ3IsIGZvcmtOdW0sIGJsb2NrTnVtLCBmb3VuZFB0cik7 CiAJCWlmICgqZm91bmRQdHIpCi0JCQlwZ0J1ZmZlclVzYWdlLmxvY2FsX2Jsa3NfaGl0Kys7CisJ CQlJTlNUUl9CVUZVU0FHRV9JTkNSKGxvY2FsX2Jsa3NfaGl0KTsKIAl9CiAJZWxzZQogCXsKIAkJ YnVmSGRyID0gQnVmZmVyQWxsb2Moc21nciwgcGVyc2lzdGVuY2UsIGZvcmtOdW0sIGJsb2NrTnVt LAogCQkJCQkJCSBzdHJhdGVneSwgZm91bmRQdHIsIGlvX2NvbnRleHQpOwogCQlpZiAoKmZvdW5k UHRyKQotCQkJcGdCdWZmZXJVc2FnZS5zaGFyZWRfYmxrc19oaXQrKzsKKwkJCUlOU1RSX0JVRlVT QUdFX0lOQ1Ioc2hhcmVkX2Jsa3NfaGl0KTsKIAl9CiAJaWYgKHJlbCkKIAl7CkBAIC0xOTk4LDkg KzE5OTgsOSBAQCBBc3luY1JlYWRCdWZmZXJzKFJlYWRCdWZmZXJzT3BlcmF0aW9uICpvcGVyYXRp b24sIGludCAqbmJsb2Nrc19wcm9ncmVzcykKIAkJCQkJCQkJCQkgIHRydWUpOwogCiAJCWlmIChw ZXJzaXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9URU1QKQotCQkJcGdCdWZmZXJVc2FnZS5sb2Nh bF9ibGtzX2hpdCArPSAxOworCQkJSU5TVFJfQlVGVVNBR0VfSU5DUihsb2NhbF9ibGtzX2hpdCk7 CiAJCWVsc2UKLQkJCXBnQnVmZmVyVXNhZ2Uuc2hhcmVkX2Jsa3NfaGl0ICs9IDE7CisJCQlJTlNU Ul9CVUZVU0FHRV9JTkNSKHNoYXJlZF9ibGtzX2hpdCk7CiAKIAkJaWYgKG9wZXJhdGlvbi0+cmVs KQogCQkJcGdzdGF0X2NvdW50X2J1ZmZlcl9oaXQob3BlcmF0aW9uLT5yZWwpOwpAQCAtMjA2OCw5 ICsyMDY4LDkgQEAgQXN5bmNSZWFkQnVmZmVycyhSZWFkQnVmZmVyc09wZXJhdGlvbiAqb3BlcmF0 aW9uLCBpbnQgKm5ibG9ja3NfcHJvZ3Jlc3MpCiAJCQkJCQkJCWlvX3N0YXJ0LCAxLCBpb19idWZm ZXJzX2xlbiAqIEJMQ0tTWik7CiAKIAkJaWYgKHBlcnNpc3RlbmNlID09IFJFTFBFUlNJU1RFTkNF X1RFTVApCi0JCQlwZ0J1ZmZlclVzYWdlLmxvY2FsX2Jsa3NfcmVhZCArPSBpb19idWZmZXJzX2xl bjsKKwkJCUlOU1RSX0JVRlVTQUdFX0FERChsb2NhbF9ibGtzX3JlYWQsIGlvX2J1ZmZlcnNfbGVu KTsKIAkJZWxzZQotCQkJcGdCdWZmZXJVc2FnZS5zaGFyZWRfYmxrc19yZWFkICs9IGlvX2J1ZmZl cnNfbGVuOworCQkJSU5TVFJfQlVGVVNBR0VfQUREKHNoYXJlZF9ibGtzX3JlYWQsIGlvX2J1ZmZl cnNfbGVuKTsKIAogCQkvKgogCQkgKiBUcmFjayB2YWN1dW0gY29zdCB3aGVuIGlzc3VpbmcgSU8s IG5vdCBhZnRlciB3YWl0aW5nIGZvciBpdC4KQEAgLTI5NTksNyArMjk1OSw3IEBAIEV4dGVuZEJ1 ZmZlcmVkUmVsU2hhcmVkKEJ1ZmZlck1hbmFnZXJSZWxhdGlvbiBibXIsCiAJCVRlcm1pbmF0ZUJ1 ZmZlcklPKGJ1Zl9oZHIsIGZhbHNlLCBCTV9WQUxJRCwgdHJ1ZSwgZmFsc2UpOwogCX0KIAotCXBn QnVmZmVyVXNhZ2Uuc2hhcmVkX2Jsa3Nfd3JpdHRlbiArPSBleHRlbmRfYnk7CisJSU5TVFJfQlVG VVNBR0VfQUREKHNoYXJlZF9ibGtzX3dyaXR0ZW4sIGV4dGVuZF9ieSk7CiAKIAkqZXh0ZW5kZWRf YnkgPSBleHRlbmRfYnk7CiAKQEAgLTMxMDUsNyArMzEwNSw3IEBAIE1hcmtCdWZmZXJEaXJ0eShC dWZmZXIgYnVmZmVyKQogCSAqLwogCWlmICghKG9sZF9idWZfc3RhdGUgJiBCTV9ESVJUWSkpCiAJ ewotCQlwZ0J1ZmZlclVzYWdlLnNoYXJlZF9ibGtzX2RpcnRpZWQrKzsKKwkJSU5TVFJfQlVGVVNB R0VfSU5DUihzaGFyZWRfYmxrc19kaXJ0aWVkKTsKIAkJaWYgKFZhY3V1bUNvc3RBY3RpdmUpCiAJ CQlWYWN1dW1Db3N0QmFsYW5jZSArPSBWYWN1dW1Db3N0UGFnZURpcnR5OwogCX0KQEAgLTQ1MjAs NyArNDUyMCw3IEBAIEZsdXNoQnVmZmVyKEJ1ZmZlckRlc2MgKmJ1ZiwgU01nclJlbGF0aW9uIHJl bG4sIElPT2JqZWN0IGlvX29iamVjdCwKIAlwZ3N0YXRfY291bnRfaW9fb3BfdGltZShJT09CSkVD VF9SRUxBVElPTiwgaW9fY29udGV4dCwKIAkJCQkJCQlJT09QX1dSSVRFLCBpb19zdGFydCwgMSwg QkxDS1NaKTsKIAotCXBnQnVmZmVyVXNhZ2Uuc2hhcmVkX2Jsa3Nfd3JpdHRlbisrOworCUlOU1RS X0JVRlVTQUdFX0lOQ1Ioc2hhcmVkX2Jsa3Nfd3JpdHRlbik7CiAKIAkvKgogCSAqIE1hcmsgdGhl IGJ1ZmZlciBhcyBjbGVhbiBhbmQgZW5kIHRoZSBCTV9JT19JTl9QUk9HUkVTUyBzdGF0ZS4KQEAg LTU2NjMsNyArNTY2Myw3IEBAIE1hcmtTaGFyZWRCdWZmZXJEaXJ0eUhpbnQoQnVmZmVyIGJ1ZmZl ciwgQnVmZmVyRGVzYyAqYnVmSGRyLCB1aW50NjQgbG9ja3N0YXRlLAogCQkJVW5sb2NrQnVmSGRy KGJ1Zkhkcik7CiAJCX0KIAotCQlwZ0J1ZmZlclVzYWdlLnNoYXJlZF9ibGtzX2RpcnRpZWQrKzsK KwkJSU5TVFJfQlVGVVNBR0VfSU5DUihzaGFyZWRfYmxrc19kaXJ0aWVkKTsKIAkJaWYgKFZhY3V1 bUNvc3RBY3RpdmUpCiAJCQlWYWN1dW1Db3N0QmFsYW5jZSArPSBWYWN1dW1Db3N0UGFnZURpcnR5 OwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2xvY2FsYnVmLmMg Yi9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9sb2NhbGJ1Zi5jCmluZGV4IDQwNGM2YmNjYmRk Li44ODQ1YjBhZWVkNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvbG9j YWxidWYuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9sb2NhbGJ1Zi5jCkBAIC0y MTcsNyArMjE3LDcgQEAgRmx1c2hMb2NhbEJ1ZmZlcihCdWZmZXJEZXNjICpidWZIZHIsIFNNZ3JS ZWxhdGlvbiByZWxuKQogCS8qIE1hcmsgbm90LWRpcnR5ICovCiAJVGVybWluYXRlTG9jYWxCdWZm ZXJJTyhidWZIZHIsIHRydWUsIDAsIGZhbHNlKTsKIAotCXBnQnVmZmVyVXNhZ2UubG9jYWxfYmxr c193cml0dGVuKys7CisJSU5TVFJfQlVGVVNBR0VfSU5DUihsb2NhbF9ibGtzX3dyaXR0ZW4pOwog fQogCiBzdGF0aWMgQnVmZmVyCkBAIC00NzgsNyArNDc4LDcgQEAgRXh0ZW5kQnVmZmVyZWRSZWxM b2NhbChCdWZmZXJNYW5hZ2VyUmVsYXRpb24gYm1yLAogCiAJKmV4dGVuZGVkX2J5ID0gZXh0ZW5k X2J5OwogCi0JcGdCdWZmZXJVc2FnZS5sb2NhbF9ibGtzX3dyaXR0ZW4gKz0gZXh0ZW5kX2J5Owor CUlOU1RSX0JVRlVTQUdFX0FERChsb2NhbF9ibGtzX3dyaXR0ZW4sIGV4dGVuZF9ieSk7CiAKIAly ZXR1cm4gZmlyc3RfYmxvY2s7CiB9CkBAIC01MDksNyArNTA5LDcgQEAgTWFya0xvY2FsQnVmZmVy RGlydHkoQnVmZmVyIGJ1ZmZlcikKIAlidWZfc3RhdGUgPSBwZ19hdG9taWNfcmVhZF91NjQoJmJ1 Zkhkci0+c3RhdGUpOwogCiAJaWYgKCEoYnVmX3N0YXRlICYgQk1fRElSVFkpKQotCQlwZ0J1ZmZl clVzYWdlLmxvY2FsX2Jsa3NfZGlydGllZCsrOworCQlJTlNUUl9CVUZVU0FHRV9JTkNSKGxvY2Fs X2Jsa3NfZGlydGllZCk7CiAKIAlidWZfc3RhdGUgfD0gQk1fRElSVFk7CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9idWZmaWxlLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdl L2ZpbGUvYnVmZmlsZS5jCmluZGV4IGM0YWZlNGQzNjhhLi44YjUwMWRmY2FkZCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2J1ZmZpbGUuYworKysgYi9zcmMvYmFja2VuZC9z dG9yYWdlL2ZpbGUvYnVmZmlsZS5jCkBAIC00NzUsMTMgKzQ3NSwxMyBAQCBCdWZGaWxlTG9hZEJ1 ZmZlcihCdWZGaWxlICpmaWxlKQogCWlmICh0cmFja19pb190aW1pbmcpCiAJewogCQlJTlNUUl9U SU1FX1NFVF9DVVJSRU5UKGlvX3RpbWUpOwotCQlJTlNUUl9USU1FX0FDQ1VNX0RJRkYocGdCdWZm ZXJVc2FnZS50ZW1wX2Jsa19yZWFkX3RpbWUsIGlvX3RpbWUsIGlvX3N0YXJ0KTsKKwkJSU5TVFJf QlVGVVNBR0VfVElNRV9BQ0NVTV9ESUZGKHRlbXBfYmxrX3JlYWRfdGltZSwgaW9fdGltZSwgaW9f c3RhcnQpOwogCX0KIAogCS8qIHdlIGNob29zZSBub3QgdG8gYWR2YW5jZSBjdXJPZmZzZXQgaGVy ZSAqLwogCiAJaWYgKGZpbGUtPm5ieXRlcyA+IDApCi0JCXBnQnVmZmVyVXNhZ2UudGVtcF9ibGtz X3JlYWQrKzsKKwkJSU5TVFJfQlVGVVNBR0VfSU5DUih0ZW1wX2Jsa3NfcmVhZCk7CiB9CiAKIC8q CkBAIC01NDksMTMgKzU0OSwxMyBAQCBCdWZGaWxlRHVtcEJ1ZmZlcihCdWZGaWxlICpmaWxlKQog CQlpZiAodHJhY2tfaW9fdGltaW5nKQogCQl7CiAJCQlJTlNUUl9USU1FX1NFVF9DVVJSRU5UKGlv X3RpbWUpOwotCQkJSU5TVFJfVElNRV9BQ0NVTV9ESUZGKHBnQnVmZmVyVXNhZ2UudGVtcF9ibGtf d3JpdGVfdGltZSwgaW9fdGltZSwgaW9fc3RhcnQpOworCQkJSU5TVFJfQlVGVVNBR0VfVElNRV9B Q0NVTV9ESUZGKHRlbXBfYmxrX3dyaXRlX3RpbWUsIGlvX3RpbWUsIGlvX3N0YXJ0KTsKIAkJfQog CiAJCWZpbGUtPmN1ck9mZnNldCArPSBieXRlc3Rvd3JpdGU7CiAJCXdwb3MgKz0gYnl0ZXN0b3dy aXRlOwogCi0JCXBnQnVmZmVyVXNhZ2UudGVtcF9ibGtzX3dyaXR0ZW4rKzsKKwkJSU5TVFJfQlVG VVNBR0VfSU5DUih0ZW1wX2Jsa3Nfd3JpdHRlbik7CiAJfQogCWZpbGUtPmRpcnR5ID0gZmFsc2U7 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9pby5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2lvLmMKaW5kZXggMjhkZTI0NTM4ZGMu LjllN2E4OGVjMGQwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0 YXRfaW8uYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfaW8uYwpAQCAt MTM1LDE3ICsxMzUsMTcgQEAgcGdzdGF0X2NvdW50X2lvX29wX3RpbWUoSU9PYmplY3QgaW9fb2Jq ZWN0LCBJT0NvbnRleHQgaW9fY29udGV4dCwgSU9PcCBpb19vcCwKIAkJCXsKIAkJCQlwZ3N0YXRf Y291bnRfYnVmZmVyX3dyaXRlX3RpbWUoSU5TVFJfVElNRV9HRVRfTUlDUk9TRUMoaW9fdGltZSkp OwogCQkJCWlmIChpb19vYmplY3QgPT0gSU9PQkpFQ1RfUkVMQVRJT04pCi0JCQkJCUlOU1RSX1RJ TUVfQUREKHBnQnVmZmVyVXNhZ2Uuc2hhcmVkX2Jsa193cml0ZV90aW1lLCBpb190aW1lKTsKKwkJ CQkJSU5TVFJfQlVGVVNBR0VfVElNRV9BREQoc2hhcmVkX2Jsa193cml0ZV90aW1lLCBpb190aW1l KTsKIAkJCQllbHNlIGlmIChpb19vYmplY3QgPT0gSU9PQkpFQ1RfVEVNUF9SRUxBVElPTikKLQkJ CQkJSU5TVFJfVElNRV9BREQocGdCdWZmZXJVc2FnZS5sb2NhbF9ibGtfd3JpdGVfdGltZSwgaW9f dGltZSk7CisJCQkJCUlOU1RSX0JVRlVTQUdFX1RJTUVfQUREKGxvY2FsX2Jsa193cml0ZV90aW1l LCBpb190aW1lKTsKIAkJCX0KIAkJCWVsc2UgaWYgKGlvX29wID09IElPT1BfUkVBRCkKIAkJCXsK IAkJCQlwZ3N0YXRfY291bnRfYnVmZmVyX3JlYWRfdGltZShJTlNUUl9USU1FX0dFVF9NSUNST1NF Qyhpb190aW1lKSk7CiAJCQkJaWYgKGlvX29iamVjdCA9PSBJT09CSkVDVF9SRUxBVElPTikKLQkJ CQkJSU5TVFJfVElNRV9BREQocGdCdWZmZXJVc2FnZS5zaGFyZWRfYmxrX3JlYWRfdGltZSwgaW9f dGltZSk7CisJCQkJCUlOU1RSX0JVRlVTQUdFX1RJTUVfQUREKHNoYXJlZF9ibGtfcmVhZF90aW1l LCBpb190aW1lKTsKIAkJCQllbHNlIGlmIChpb19vYmplY3QgPT0gSU9PQkpFQ1RfVEVNUF9SRUxB VElPTikKLQkJCQkJSU5TVFJfVElNRV9BREQocGdCdWZmZXJVc2FnZS5sb2NhbF9ibGtfcmVhZF90 aW1lLCBpb190aW1lKTsKKwkJCQkJSU5TVFJfQlVGVVNBR0VfVElNRV9BREQobG9jYWxfYmxrX3Jl YWRfdGltZSwgaW9fdGltZSk7CiAJCQl9CiAJCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv ZXhlY3V0b3IvaW5zdHJ1bWVudC5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5o CmluZGV4IGIxMWQ2NDYzM2I1Li4xMTM5YmU4MzMzZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv ZXhlY3V0b3IvaW5zdHJ1bWVudC5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1l bnQuaApAQCAtMTUzLDQgKzE1MywyMyBAQCBleHRlcm4gdm9pZCBCdWZmZXJVc2FnZUFjY3VtRGlm ZihCdWZmZXJVc2FnZSAqZHN0LAogZXh0ZXJuIHZvaWQgV2FsVXNhZ2VBY2N1bURpZmYoV2FsVXNh Z2UgKmRzdCwgY29uc3QgV2FsVXNhZ2UgKmFkZCwKIAkJCQkJCQkgIGNvbnN0IFdhbFVzYWdlICpz dWIpOwogCisjZGVmaW5lIElOU1RSX0JVRlVTQUdFX0lOQ1IoZmxkKSBkbyB7IFwKKwkJcGdCdWZm ZXJVc2FnZS5mbGQrKzsgXAorCX0gd2hpbGUoMCkKKyNkZWZpbmUgSU5TVFJfQlVGVVNBR0VfQURE KGZsZCx2YWwpIGRvIHsgXAorCQlwZ0J1ZmZlclVzYWdlLmZsZCArPSB2YWw7IFwKKwl9IHdoaWxl KDApCisjZGVmaW5lIElOU1RSX0JVRlVTQUdFX1RJTUVfQUREKGZsZCx2YWwpIGRvIHsgXAorCUlO U1RSX1RJTUVfQUREKHBnQnVmZmVyVXNhZ2UuZmxkLCB2YWwpOyBcCisJfSB3aGlsZSAoMCkKKyNk ZWZpbmUgSU5TVFJfQlVGVVNBR0VfVElNRV9BQ0NVTV9ESUZGKGZsZCxlbmR2YWwsc3RhcnR2YWwp IGRvIHsgXAorCUlOU1RSX1RJTUVfQUNDVU1fRElGRihwZ0J1ZmZlclVzYWdlLmZsZCwgZW5kdmFs LCBzdGFydHZhbCk7IFwKKwl9IHdoaWxlICgwKQorI2RlZmluZSBJTlNUUl9XQUxVU0FHRV9JTkNS KGZsZCkgZG8geyBcCisJCXBnV2FsVXNhZ2UuZmxkKys7IFwKKwl9IHdoaWxlKDApCisjZGVmaW5l IElOU1RSX1dBTFVTQUdFX0FERChmbGQsdmFsKSBkbyB7IFwKKwkJcGdXYWxVc2FnZS5mbGQgKz0g dmFsOyBcCisJfSB3aGlsZSgwKQorCiAjZW5kaWYJCQkJCQkJLyogSU5TVFJVTUVOVF9IICovCi0t IAoyLjQ3LjEKCg== --0000000000001ac30e064d022147 Content-Type: application/octet-stream; name="v8-0005-Optimize-measuring-WAL-buffer-usage-through-stack.patch" Content-Disposition: attachment; filename="v8-0005-Optimize-measuring-WAL-buffer-usage-through-stack.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmqsnn4n4 RnJvbSA4YjcwYWRlYWE1MDE3ZjI2Y2Y5NzQ3ZmRkMjg5OTVmMTJlMjQxZTkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBU dWUsIDkgU2VwIDIwMjUgMDI6MTY6NTkgLTA3MDAKU3ViamVjdDogW1BBVENIIHY4IDUvOF0gT3B0 aW1pemUgbWVhc3VyaW5nIFdBTC9idWZmZXIgdXNhZ2UgdGhyb3VnaAogc3RhY2stYmFzZWQgaW5z dHJ1bWVudGF0aW9uCgpQcmV2aW91c2x5LCBpbiBvcmRlciB0byBkZXRlcm1pbmUgdGhlIGJ1ZmZl ci9XQUwgdXNhZ2Ugb2YgYSBnaXZlbiBjb2RlCnNlY3Rpb24sIHdlIHV0aWxpemVkIGNvbnRpbnVv dXNseSBpbmNyZW1lbnRpbmcgZ2xvYmFsIGNvdW50ZXJzIHRoYXQgZ2V0CnVwZGF0ZWQgd2hlbiB0 aGUgYWN0dWFsIGFjdGl2aXR5IChlLmcuIHNoYXJlZCBibG9jayByZWFkKSBvY2N1cnJlZCwgYW5k CnRoZW4gY2FsY3VsYXRlZCBhIGRpZmYgd2hlbiB0aGUgY29kZSBzZWN0aW9uIGVuZGVkLiBUaGlz IHJlc3VsdGVkIGluIGEKYm90dGxlbmVjayBmb3IgZXhlY3V0b3Igbm9kZSBpbnN0cnVtZW50YXRp b24gc3BlY2lmaWNhbGx5LCB3aXRoIHRoZQpmdW5jdGlvbiBCdWZmZXJVc2FnZUFjY3VtRGlmZiBz aG93aW5nIHVwIGluIHByb2ZpbGVzIGFuZCBpbiBzb21lIGNhc2VzCmFkZGluZyB1cCB0byAxMCUg b3ZlcmhlYWQgdG8gYW4gRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUykgcnVuLgoKSW5zdGVhZCwg aW50cm9kdWNlIGEgc3RhY2stYmFzZWQgbWVjaGFuaXNtLCB3aGVyZSB0aGUgYWN0dWFsIGFjdGl2 aXR5CndyaXRlcyBpbnRvIHRoZSBjdXJyZW50IHN0YWNrIGVudHJ5LiBJbiB0aGUgY2FzZSBvZiBl eGVjdXRvciBub2RlcywgdGhpcwptZWFucyB0aGF0IGVhY2ggbm9kZSBnZXRzIGl0cyBvd24gc3Rh Y2sgZW50cnkgdGhhdCBpcyBwdXNoZWQgYXQKSW5zdHJTdGFydE5vZGUsIGFuZCBwb3BwZWQgYXQg SW5zdHJFbmROb2RlLiBTdGFjayBlbnRyaWVzIGFyZSB6ZXJvCmluaXRpYWxpemVkIChhdm9pZGlu ZyB0aGUgZGlmZiBtZWNoYW5pc20pIGFuZCBnZXQgYWRkZWQgdG8gdGhlaXIgcGFyZW50CmVudHJ5 IHdoZW4gdGhleSBhcmUgZmluYWxpemVkLCBpLmUuIG5vIG1vcmUgbW9kaWZpY2F0aW9ucyBjYW4g b2NjdXIuCgpUbyBjb3JyZWN0bHkgaGFuZGxlIGFib3J0IHNpdHVhdGlvbnMsIGFueSB1c2Ugb2Yg aW5zdHJ1bWVudGF0aW9uIHN0YWNrcwptdXN0IGludm9sdmUgZWl0aGVyIGEgdG9wLWxldmVsIFF1 ZXJ5SW5zdHJ1bWVudGF0aW9uIHN0cnVjdCwgYW5kIGl0cwphc3NvY2lhdGVkIEluc3RyUXVlcnlT dGFydC9JbnN0clF1ZXJ5U3RvcCBoZWxwZXJzICh3aGljaCB1c2UgcmVzb3VyY2UKb3duZXJzIHRv IGhhbmRsZSBhYm9ydHMpLCBvciB0aGUgSW5zdHJ1bWVudGF0aW9uIHN0cnVjdCBpdHNlbGYgd2l0 aApkZWRpY2F0ZWQgUEdfVFJZL1BHX0ZJTkFMTFkgY2FsbHMgdGhhdCBlbnN1cmUgdGhlIHN0YWNr IGlzIGluIGEKY29uc2lzdGVudCBzdGF0ZSBhZnRlciBhbiBhYm9ydC4KClRoaXMgYWxzbyBkcm9w cyB0aGUgZ2xvYmFsIHBnQnVmZmVyVXNhZ2UsIGFueSBjYWxsZXJzIGludGVyZXN0ZWQgaW4KbWVh c3VyaW5nIGJ1ZmZlciBhY3Rpdml0eSBzaG91bGQgaW5zdGVhZCB1dGlsaXplIEluc3RyU3RhcnQv SW5zdHJTdG9wLgoKVGhlIHJlbGF0ZWQgZ2xvYmFsIHBnV2FsVXNhZ2UgaXMga2VwdCBmb3Igbm93 IGR1ZSB0byBpdHMgdXNlIGluIHBnc3RhdAp0byB0cmFjayBhZ2dyZWdhdGUgV0FMIGFjdGl2aXR5 IGFuZCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSBmb3IKbWVhc3VyaW5nIEZQSXMuCgpBdXRo b3I6IEx1a2FzIEZpdHRsIDxsdWthc0BmaXR0bC5jb20+ClJldmlld2VkLWJ5OiBac29sdCBQYXJy YWdpIDx6c29sdC5wYXJyYWdpQHBlcmNvbmEuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3d3dy5w b3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL2ZsYXQvQ0FQNTNQa3hybXBFQ3pWRnBlZUVFSERHZTZ1 NjI1cyUyQllrbVZ2NS1ndzNMX05EU2ZiaUElNDBtYWlsLmdtYWlsLmNvbSNjYjU4M2EwOGU4ZTA5 NmFhMWYwOTNiYjE3ODkwNjE3MwotLS0KIGNvbnRyaWIvYXV0b19leHBsYWluL2F1dG9fZXhwbGFp bi5jICAgICAgICAgICB8ICAxNiArLQogLi4uL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0 YXRlbWVudHMuYyAgIHwgIDg3ICstLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYyAg ICAgICAgICAgICAgICB8ICAxMCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQu YyAgICAgICAgICAgIHwgIDEwICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMgICAgICAgICAgfCAgMTUgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5j ICAgICAgICAgICB8ICAxMCArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvYW5hbHl6ZS5jICAgICAg ICAgICAgICAgIHwgIDMxICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMgICAgICAg ICAgICAgICAgfCAgMjYgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW5fZHIuYyAgICAg ICAgICAgICB8ICAzNCArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jICAgICAgICAg ICAgICAgIHwgIDI3ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jICAg ICAgICAgfCAgMTAgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAg ICAgICB8ICA2NiArKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jICAgICAg ICAgICB8ICAyMiArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1Byb2Nub2RlLmMgICAgICAg ICAgIHwgIDg0ICsrKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYyAgICAgICAg ICAgICB8IDQxMiArKysrKysrKysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVy L2J1Zm1nci5jICAgICAgICAgICB8ICAgNiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkv cGdzdGF0X2lvLmMgICAgICAgIHwgICA2ICstCiBzcmMvaW5jbHVkZS9leGVjdXRvci9leGVjZGVz Yy5oICAgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9y LmggICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50 LmggICAgICAgICAgICAgfCAxNzkgKysrKysrKy0KIHNyYy9pbmNsdWRlL3V0aWxzL3Jlc293bmVy LmggICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdCAgICAgICAgICAgICAgfCAgIDIgKwogMjIgZmlsZXMgY2hhbmdlZCwgNzYwIGluc2VydGlv bnMoKyksIDMwMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL2F1dG9fZXhwbGFp bi9hdXRvX2V4cGxhaW4uYyBiL2NvbnRyaWIvYXV0b19leHBsYWluL2F1dG9fZXhwbGFpbi5jCmlu ZGV4IDM5YmYyNTQzYjcwLi40YmU4MTQ4OWZmNCAxMDA2NDQKLS0tIGEvY29udHJpYi9hdXRvX2V4 cGxhaW4vYXV0b19leHBsYWluLmMKKysrIGIvY29udHJpYi9hdXRvX2V4cGxhaW4vYXV0b19leHBs YWluLmMKQEAgLTMwNSwxOSArMzA1LDkgQEAgZXhwbGFpbl9FeGVjdXRvclN0YXJ0KFF1ZXJ5RGVz YyAqcXVlcnlEZXNjLCBpbnQgZWZsYWdzKQogCiAJaWYgKGF1dG9fZXhwbGFpbl9lbmFibGVkKCkp CiAJewotCQkvKgotCQkgKiBTZXQgdXAgdG8gdHJhY2sgdG90YWwgZWxhcHNlZCB0aW1lIGluIEV4 ZWN1dG9yUnVuLiAgTWFrZSBzdXJlIHRoZQotCQkgKiBzcGFjZSBpcyBhbGxvY2F0ZWQgaW4gdGhl IHBlci1xdWVyeSBjb250ZXh0IHNvIGl0IHdpbGwgZ28gYXdheSBhdAotCQkgKiBFeGVjdXRvckVu ZC4KLQkJICovCisJCS8qIFNldCB1cCB0byB0cmFjayB0b3RhbCBlbGFwc2VkIHRpbWUgaW4gRXhl Y3V0b3JSdW4uICovCiAJCWlmIChxdWVyeURlc2MtPnRvdGFsdGltZSA9PSBOVUxMKQotCQl7Ci0J CQlNZW1vcnlDb250ZXh0IG9sZGN4dDsKLQotCQkJb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRj aFRvKHF1ZXJ5RGVzYy0+ZXN0YXRlLT5lc19xdWVyeV9jeHQpOwotCQkJcXVlcnlEZXNjLT50b3Rh bHRpbWUgPSBJbnN0ckFsbG9jKElOU1RSVU1FTlRfQUxMKTsKLQkJCU1lbW9yeUNvbnRleHRTd2l0 Y2hUbyhvbGRjeHQpOwotCQl9CisJCQlxdWVyeURlc2MtPnRvdGFsdGltZSA9IEluc3RyUXVlcnlB bGxvYyhJTlNUUlVNRU5UX0FMTCk7CiAJfQogfQogCkBAIC0zODIsNyArMzcyLDcgQEAgZXhwbGFp bl9FeGVjdXRvckVuZChRdWVyeURlc2MgKnF1ZXJ5RGVzYykKIAkJb2xkY3h0ID0gTWVtb3J5Q29u dGV4dFN3aXRjaFRvKHF1ZXJ5RGVzYy0+ZXN0YXRlLT5lc19xdWVyeV9jeHQpOwogCiAJCS8qIExv ZyBwbGFuIGlmIGR1cmF0aW9uIGlzIGV4Y2VlZGVkLiAqLwotCQltc2VjID0gSU5TVFJfVElNRV9H RVRfTUlMTElTRUMocXVlcnlEZXNjLT50b3RhbHRpbWUtPnRvdGFsKTsKKwkJbXNlYyA9IElOU1RS X1RJTUVfR0VUX01JTExJU0VDKHF1ZXJ5RGVzYy0+dG90YWx0aW1lLT5pbnN0ci50b3RhbCk7CiAJ CWlmIChtc2VjID49IGF1dG9fZXhwbGFpbl9sb2dfbWluX2R1cmF0aW9uKQogCQl7CiAJCQlFeHBs YWluU3RhdGUgKmVzID0gTmV3RXhwbGFpblN0YXRlKCk7CmRpZmYgLS1naXQgYS9jb250cmliL3Bn X3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYyBiL2NvbnRyaWIvcGdfc3RhdF9z dGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jCmluZGV4IDM4OGIwNjhjY2VjLi44NDQ4Zjlj MTNmYSAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0 ZW1lbnRzLmMKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1l bnRzLmMKQEAgLTkwOSwyMiArOTA5LDExIEBAIHBnc3NfcGxhbm5lcihRdWVyeSAqcGFyc2UsCiAJ CSYmIHBnc3NfdHJhY2tfcGxhbm5pbmcgJiYgcXVlcnlfc3RyaW5nCiAJCSYmIHBhcnNlLT5xdWVy eUlkICE9IElOVDY0Q09OU1QoMCkpCiAJewotCQlpbnN0cl90aW1lCXN0YXJ0OwotCQlpbnN0cl90 aW1lCWR1cmF0aW9uOwotCQlCdWZmZXJVc2FnZSBidWZ1c2FnZV9zdGFydCwKLQkJCQkJYnVmdXNh Z2U7Ci0JCVdhbFVzYWdlCXdhbHVzYWdlX3N0YXJ0LAotCQkJCQl3YWx1c2FnZTsKKwkJSW5zdHJ1 bWVudGF0aW9uIGluc3RyID0gezB9OwogCi0JCS8qIFdlIG5lZWQgdG8gdHJhY2sgYnVmZmVyIHVz YWdlIGFzIHRoZSBwbGFubmVyIGNhbiBhY2Nlc3MgdGhlbS4gKi8KLQkJYnVmdXNhZ2Vfc3RhcnQg PSBwZ0J1ZmZlclVzYWdlOwotCi0JCS8qCi0JCSAqIFNpbWlsYXJseSB0aGUgcGxhbm5lciBjb3Vs ZCB3cml0ZSBzb21lIFdBTCByZWNvcmRzIGluIHNvbWUgY2FzZXMKLQkJICogKGUuZy4gc2V0dGlu ZyBhIGhpbnQgYml0IHdpdGggdGhvc2UgYmVpbmcgV0FMLWxvZ2dlZCkKLQkJICovCi0JCXdhbHVz YWdlX3N0YXJ0ID0gcGdXYWxVc2FnZTsKLQkJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChzdGFydCk7 CisJCS8qIFRyYWNrIHRpbWUgYW5kIGJ1ZmZlci9XQUwgdXNhZ2UgYXMgdGhlIHBsYW5uZXIgY2Fu IGFjY2VzcyB0aGVtLiAqLworCQlJbnN0ckluaXRPcHRpb25zKCZpbnN0ciwgSU5TVFJVTUVOVF9B TEwpOworCQlJbnN0clN0YXJ0KCZpbnN0cik7CiAKIAkJbmVzdGluZ19sZXZlbCsrOwogCQlQR19U UlkoKTsKQEAgLTkzOCwzMCArOTI3LDIwIEBAIHBnc3NfcGxhbm5lcihRdWVyeSAqcGFyc2UsCiAJ CX0KIAkJUEdfRklOQUxMWSgpOwogCQl7CisJCQlJbnN0clN0b3BGaW5hbGl6ZSgmaW5zdHIpOwog CQkJbmVzdGluZ19sZXZlbC0tOwogCQl9CiAJCVBHX0VORF9UUlkoKTsKIAotCQlJTlNUUl9USU1F X1NFVF9DVVJSRU5UKGR1cmF0aW9uKTsKLQkJSU5TVFJfVElNRV9TVUJUUkFDVChkdXJhdGlvbiwg c3RhcnQpOwotCi0JCS8qIGNhbGMgZGlmZmVyZW5jZXMgb2YgYnVmZmVyIGNvdW50ZXJzLiAqLwot CQltZW1zZXQoJmJ1ZnVzYWdlLCAwLCBzaXplb2YoQnVmZmVyVXNhZ2UpKTsKLQkJQnVmZmVyVXNh Z2VBY2N1bURpZmYoJmJ1ZnVzYWdlLCAmcGdCdWZmZXJVc2FnZSwgJmJ1ZnVzYWdlX3N0YXJ0KTsK LQotCQkvKiBjYWxjIGRpZmZlcmVuY2VzIG9mIFdBTCBjb3VudGVycy4gKi8KLQkJbWVtc2V0KCZ3 YWx1c2FnZSwgMCwgc2l6ZW9mKFdhbFVzYWdlKSk7Ci0JCVdhbFVzYWdlQWNjdW1EaWZmKCZ3YWx1 c2FnZSwgJnBnV2FsVXNhZ2UsICZ3YWx1c2FnZV9zdGFydCk7Ci0KIAkJcGdzc19zdG9yZShxdWVy eV9zdHJpbmcsCiAJCQkJICAgcGFyc2UtPnF1ZXJ5SWQsCiAJCQkJICAgcGFyc2UtPnN0bXRfbG9j YXRpb24sCiAJCQkJICAgcGFyc2UtPnN0bXRfbGVuLAogCQkJCSAgIFBHU1NfUExBTiwKLQkJCQkg ICBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhkdXJhdGlvbiksCisJCQkJICAgSU5TVFJfVElNRV9H RVRfTUlMTElTRUMoaW5zdHIudG90YWwpLAogCQkJCSAgIDAsCi0JCQkJICAgJmJ1ZnVzYWdlLAot CQkJCSAgICZ3YWx1c2FnZSwKKwkJCQkgICAmaW5zdHIuYnVmdXNhZ2UsCisJCQkJICAgJmluc3Ry LndhbHVzYWdlLAogCQkJCSAgIE5VTEwsCiAJCQkJICAgTlVMTCwKIAkJCQkgICAwLApAQCAtMTAx MywxOSArOTkyLDkgQEAgcGdzc19FeGVjdXRvclN0YXJ0KFF1ZXJ5RGVzYyAqcXVlcnlEZXNjLCBp bnQgZWZsYWdzKQogCSAqLwogCWlmIChwZ3NzX2VuYWJsZWQobmVzdGluZ19sZXZlbCkgJiYgcXVl cnlEZXNjLT5wbGFubmVkc3RtdC0+cXVlcnlJZCAhPSBJTlQ2NENPTlNUKDApKQogCXsKLQkJLyoK LQkJICogU2V0IHVwIHRvIHRyYWNrIHRvdGFsIGVsYXBzZWQgdGltZSBpbiBFeGVjdXRvclJ1bi4g IE1ha2Ugc3VyZSB0aGUKLQkJICogc3BhY2UgaXMgYWxsb2NhdGVkIGluIHRoZSBwZXItcXVlcnkg Y29udGV4dCBzbyBpdCB3aWxsIGdvIGF3YXkgYXQKLQkJICogRXhlY3V0b3JFbmQuCi0JCSAqLwor CQkvKiBTZXQgdXAgdG8gdHJhY2sgdG90YWwgZWxhcHNlZCB0aW1lIGluIEV4ZWN1dG9yUnVuLiAq LwogCQlpZiAocXVlcnlEZXNjLT50b3RhbHRpbWUgPT0gTlVMTCkKLQkJewotCQkJTWVtb3J5Q29u dGV4dCBvbGRjeHQ7Ci0KLQkJCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhxdWVyeURl c2MtPmVzdGF0ZS0+ZXNfcXVlcnlfY3h0KTsKLQkJCXF1ZXJ5RGVzYy0+dG90YWx0aW1lID0gSW5z dHJBbGxvYyhJTlNUUlVNRU5UX0FMTCk7Ci0JCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0 KTsKLQkJfQorCQkJcXVlcnlEZXNjLT50b3RhbHRpbWUgPSBJbnN0clF1ZXJ5QWxsb2MoSU5TVFJV TUVOVF9BTEwpOwogCX0KIH0KIApAQCAtMTA4NywxMCArMTA1NiwxMCBAQCBwZ3NzX0V4ZWN1dG9y RW5kKFF1ZXJ5RGVzYyAqcXVlcnlEZXNjKQogCQkJCSAgIHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQt PnN0bXRfbG9jYXRpb24sCiAJCQkJICAgcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c3RtdF9sZW4s CiAJCQkJICAgUEdTU19FWEVDLAotCQkJCSAgIElOU1RSX1RJTUVfR0VUX01JTExJU0VDKHF1ZXJ5 RGVzYy0+dG90YWx0aW1lLT50b3RhbCksCisJCQkJICAgSU5TVFJfVElNRV9HRVRfTUlMTElTRUMo cXVlcnlEZXNjLT50b3RhbHRpbWUtPmluc3RyLnRvdGFsKSwKIAkJCQkgICBxdWVyeURlc2MtPmVz dGF0ZS0+ZXNfdG90YWxfcHJvY2Vzc2VkLAotCQkJCSAgICZxdWVyeURlc2MtPnRvdGFsdGltZS0+ YnVmdXNhZ2UsCi0JCQkJICAgJnF1ZXJ5RGVzYy0+dG90YWx0aW1lLT53YWx1c2FnZSwKKwkJCQkg ICAmcXVlcnlEZXNjLT50b3RhbHRpbWUtPmluc3RyLmJ1ZnVzYWdlLAorCQkJCSAgICZxdWVyeURl c2MtPnRvdGFsdGltZS0+aW5zdHIud2FsdXNhZ2UsCiAJCQkJICAgcXVlcnlEZXNjLT5lc3RhdGUt PmVzX2ppdCA/ICZxdWVyeURlc2MtPmVzdGF0ZS0+ZXNfaml0LT5pbnN0ciA6IE5VTEwsCiAJCQkJ ICAgTlVMTCwKIAkJCQkgICBxdWVyeURlc2MtPmVzdGF0ZS0+ZXNfcGFyYWxsZWxfd29ya2Vyc190 b19sYXVuY2gsCkBAIC0xMTU0LDE3ICsxMTIzLDExIEBAIHBnc3NfUHJvY2Vzc1V0aWxpdHkoUGxh bm5lZFN0bXQgKnBzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIAkJIUlzQShwYXJzZXRy ZWUsIEV4ZWN1dGVTdG10KSAmJgogCQkhSXNBKHBhcnNldHJlZSwgUHJlcGFyZVN0bXQpKQogCXsK LQkJaW5zdHJfdGltZQlzdGFydDsKLQkJaW5zdHJfdGltZQlkdXJhdGlvbjsKIAkJdWludDY0CQly b3dzOwotCQlCdWZmZXJVc2FnZSBidWZ1c2FnZV9zdGFydCwKLQkJCQkJYnVmdXNhZ2U7Ci0JCVdh bFVzYWdlCXdhbHVzYWdlX3N0YXJ0LAotCQkJCQl3YWx1c2FnZTsKKwkJSW5zdHJ1bWVudGF0aW9u IGluc3RyID0gezB9OwogCi0JCWJ1ZnVzYWdlX3N0YXJ0ID0gcGdCdWZmZXJVc2FnZTsKLQkJd2Fs dXNhZ2Vfc3RhcnQgPSBwZ1dhbFVzYWdlOwotCQlJTlNUUl9USU1FX1NFVF9DVVJSRU5UKHN0YXJ0 KTsKKwkJSW5zdHJJbml0T3B0aW9ucygmaW5zdHIsIElOU1RSVU1FTlRfQUxMKTsKKwkJSW5zdHJT dGFydCgmaW5zdHIpOwogCiAJCW5lc3RpbmdfbGV2ZWwrKzsKIAkJUEdfVFJZKCk7CkBAIC0xMTgw LDYgKzExNDMsNyBAQCBwZ3NzX1Byb2Nlc3NVdGlsaXR5KFBsYW5uZWRTdG10ICpwc3RtdCwgY29u c3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJCX0KIAkJUEdfRklOQUxMWSgpOwogCQl7CisJCQlJbnN0 clN0b3BGaW5hbGl6ZSgmaW5zdHIpOwogCQkJbmVzdGluZ19sZXZlbC0tOwogCQl9CiAJCVBHX0VO RF9UUlkoKTsKQEAgLTExOTQsOSArMTE1OCw2IEBAIHBnc3NfUHJvY2Vzc1V0aWxpdHkoUGxhbm5l ZFN0bXQgKnBzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIAkJICogZm9ybWVyIHZhbHVl LCB3aGljaCdkIG90aGVyd2lzZSBiZSBhIGdvb2QgaWRlYS4KIAkJICovCiAKLQkJSU5TVFJfVElN RV9TRVRfQ1VSUkVOVChkdXJhdGlvbik7Ci0JCUlOU1RSX1RJTUVfU1VCVFJBQ1QoZHVyYXRpb24s IHN0YXJ0KTsKLQogCQkvKgogCQkgKiBUcmFjayB0aGUgdG90YWwgbnVtYmVyIG9mIHJvd3MgcmV0 cmlldmVkIG9yIGFmZmVjdGVkIGJ5IHRoZSB1dGlsaXR5CiAJCSAqIHN0YXRlbWVudHMgb2YgQ09Q WSwgRkVUQ0gsIENSRUFURSBUQUJMRSBBUywgQ1JFQVRFIE1BVEVSSUFMSVpFRApAQCAtMTIwOCwy MyArMTE2OSwxNSBAQCBwZ3NzX1Byb2Nlc3NVdGlsaXR5KFBsYW5uZWRTdG10ICpwc3RtdCwgY29u c3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJCQkJCSAgIHFjLT5jb21tYW5kVGFnID09IENNRFRBR19S RUZSRVNIX01BVEVSSUFMSVpFRF9WSUVXKSkgPwogCQkJcWMtPm5wcm9jZXNzZWQgOiAwOwogCi0J CS8qIGNhbGMgZGlmZmVyZW5jZXMgb2YgYnVmZmVyIGNvdW50ZXJzLiAqLwotCQltZW1zZXQoJmJ1 ZnVzYWdlLCAwLCBzaXplb2YoQnVmZmVyVXNhZ2UpKTsKLQkJQnVmZmVyVXNhZ2VBY2N1bURpZmYo JmJ1ZnVzYWdlLCAmcGdCdWZmZXJVc2FnZSwgJmJ1ZnVzYWdlX3N0YXJ0KTsKLQotCQkvKiBjYWxj IGRpZmZlcmVuY2VzIG9mIFdBTCBjb3VudGVycy4gKi8KLQkJbWVtc2V0KCZ3YWx1c2FnZSwgMCwg c2l6ZW9mKFdhbFVzYWdlKSk7Ci0JCVdhbFVzYWdlQWNjdW1EaWZmKCZ3YWx1c2FnZSwgJnBnV2Fs VXNhZ2UsICZ3YWx1c2FnZV9zdGFydCk7Ci0KIAkJcGdzc19zdG9yZShxdWVyeVN0cmluZywKIAkJ CQkgICBzYXZlZF9xdWVyeUlkLAogCQkJCSAgIHNhdmVkX3N0bXRfbG9jYXRpb24sCiAJCQkJICAg c2F2ZWRfc3RtdF9sZW4sCiAJCQkJICAgUEdTU19FWEVDLAotCQkJCSAgIElOU1RSX1RJTUVfR0VU X01JTExJU0VDKGR1cmF0aW9uKSwKKwkJCQkgICBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhpbnN0 ci50b3RhbCksCiAJCQkJICAgcm93cywKLQkJCQkgICAmYnVmdXNhZ2UsCi0JCQkJICAgJndhbHVz YWdlLAorCQkJCSAgICZpbnN0ci5idWZ1c2FnZSwKKwkJCQkgICAmaW5zdHIud2FsdXNhZ2UsCiAJ CQkJICAgTlVMTCwKIAkJCQkgICBOVUxMLAogCQkJCSAgIDAsCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvYnJpbi9icmluLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMK aW5kZXggMTkwOWMzMjU0YjUuLmQ2MmViN2RlZTljIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvYnJpbi9icmluLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCkBA IC0yNDMyLDggKzI0MzIsOCBAQCBfYnJpbl9iZWdpbl9wYXJhbGxlbChCcmluQnVpbGRTdGF0ZSAq YnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiAJICogYW5kIFBBUkFM TEVMX0tFWV9CVUZGRVJfVVNBR0UuCiAJICoKIAkgKiBJZiB0aGVyZSBhcmUgbm8gZXh0ZW5zaW9u cyBsb2FkZWQgdGhhdCBjYXJlLCB3ZSBjb3VsZCBza2lwIHRoaXMuICBXZQotCSAqIGhhdmUgbm8g d2F5IG9mIGtub3dpbmcgd2hldGhlciBhbnlvbmUncyBsb29raW5nIGF0IHBnV2FsVXNhZ2Ugb3IK LQkgKiBwZ0J1ZmZlclVzYWdlLCBzbyBkbyBpdCB1bmNvbmRpdGlvbmFsbHkuCisJICogaGF2ZSBu byB3YXkgb2Yga25vd2luZyB3aGV0aGVyIGFueW9uZSdzIGxvb2tpbmcgYXQgaW5zdHJ1bWVudGF0 aW9uLCBzbworCSAqIGRvIGl0IHVuY29uZGl0aW9uYWxseS4KIAkgKi8KIAlzaG1fdG9jX2VzdGlt YXRlX2NodW5rKCZwY3h0LT5lc3RpbWF0b3IsCiAJCQkJCQkgICBtdWxfc2l6ZShzaXplb2YoV2Fs VXNhZ2UpLCBwY3h0LT5ud29ya2VycykpOwpAQCAtMjg4NCw2ICsyODg0LDcgQEAgX2JyaW5fcGFy YWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJUmVsYXRp b24JaW5kZXhSZWw7CiAJTE9DS01PREUJaGVhcExvY2ttb2RlOwogCUxPQ0tNT0RFCWluZGV4TG9j a21vZGU7CisJUXVlcnlJbnN0cnVtZW50YXRpb24gKmluc3RyOwogCVdhbFVzYWdlICAgKndhbHVz YWdlOwogCUJ1ZmZlclVzYWdlICpidWZmZXJ1c2FnZTsKIAlpbnQJCQlzb3J0bWVtOwpAQCAtMjkz Myw3ICsyOTM0LDcgQEAgX2JyaW5fcGFyYWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVudCAqc2Vn LCBzaG1fdG9jICp0b2MpCiAJdHVwbGVzb3J0X2F0dGFjaF9zaGFyZWQoc2hhcmVkc29ydCwgc2Vn KTsKIAogCS8qIFByZXBhcmUgdG8gdHJhY2sgYnVmZmVyIHVzYWdlIGR1cmluZyBwYXJhbGxlbCBl eGVjdXRpb24gKi8KLQlJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSgpOworCWluc3RyID0gSW5zdHJT dGFydFBhcmFsbGVsUXVlcnkoKTsKIAogCS8qCiAJICogTWlnaHQgYXMgd2VsbCB1c2UgcmVsaWFi bGUgZmlndXJlIHdoZW4gZG9saW5nIG91dCBtYWludGVuYW5jZV93b3JrX21lbQpAQCAtMjk0OCw3 ICsyOTQ5LDggQEAgX2JyaW5fcGFyYWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVudCAqc2VnLCBz aG1fdG9jICp0b2MpCiAJLyogUmVwb3J0IFdBTC9idWZmZXIgdXNhZ2UgZHVyaW5nIHBhcmFsbGVs IGV4ZWN1dGlvbiAqLwogCWJ1ZmZlcnVzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExF TF9LRVlfQlVGRkVSX1VTQUdFLCBmYWxzZSk7CiAJd2FsdXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0 b2MsIFBBUkFMTEVMX0tFWV9XQUxfVVNBR0UsIGZhbHNlKTsKLQlJbnN0ckVuZFBhcmFsbGVsUXVl cnkoJmJ1ZmZlcnVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwKKwlJbnN0ckVuZFBhcmFsbGVs UXVlcnkoaW5zdHIsCisJCQkJCQkgICZidWZmZXJ1c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0s CiAJCQkJCQkgICZ3YWx1c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0pOwogCiAJaW5kZXhfY2xv c2UoaW5kZXhSZWwsIGluZGV4TG9ja21vZGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpbi9naW5pbnNlcnQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMK aW5kZXggOTdjZWE1ZjdkNGUuLjhjZGNkMmE5YmVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvZ2luL2dpbmluc2VydC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5z ZXJ0LmMKQEAgLTk4OCw4ICs5ODgsOCBAQCBfZ2luX2JlZ2luX3BhcmFsbGVsKEdpbkJ1aWxkU3Rh dGUgKmJ1aWxkc3RhdGUsIFJlbGF0aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LAogCSAqIGFuZCBQ QVJBTExFTF9LRVlfQlVGRkVSX1VTQUdFLgogCSAqCiAJICogSWYgdGhlcmUgYXJlIG5vIGV4dGVu c2lvbnMgbG9hZGVkIHRoYXQgY2FyZSwgd2UgY291bGQgc2tpcCB0aGlzLiAgV2UKLQkgKiBoYXZl IG5vIHdheSBvZiBrbm93aW5nIHdoZXRoZXIgYW55b25lJ3MgbG9va2luZyBhdCBwZ1dhbFVzYWdl IG9yCi0JICogcGdCdWZmZXJVc2FnZSwgc28gZG8gaXQgdW5jb25kaXRpb25hbGx5LgorCSAqIGhh dmUgbm8gd2F5IG9mIGtub3dpbmcgd2hldGhlciBhbnlvbmUncyBsb29raW5nIGF0IGluc3RydW1l bnRhdGlvbiwgc28KKwkgKiBkbyBpdCB1bmNvbmRpdGlvbmFsbHkuCiAJICovCiAJc2htX3RvY19l c3RpbWF0ZV9jaHVuaygmcGN4dC0+ZXN0aW1hdG9yLAogCQkJCQkJICAgbXVsX3NpemUoc2l6ZW9m KFdhbFVzYWdlKSwgcGN4dC0+bndvcmtlcnMpKTsKQEAgLTIxMTQsNiArMjExNCw3IEBAIF9naW5f cGFyYWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJUmVs YXRpb24JaW5kZXhSZWw7CiAJTE9DS01PREUJaGVhcExvY2ttb2RlOwogCUxPQ0tNT0RFCWluZGV4 TG9ja21vZGU7CisJUXVlcnlJbnN0cnVtZW50YXRpb24gKmluc3RyOwogCVdhbFVzYWdlICAgKndh bHVzYWdlOwogCUJ1ZmZlclVzYWdlICpidWZmZXJ1c2FnZTsKIAlpbnQJCQlzb3J0bWVtOwpAQCAt MjE4Miw3ICsyMTgzLDcgQEAgX2dpbl9wYXJhbGxlbF9idWlsZF9tYWluKGRzbV9zZWdtZW50ICpz ZWcsIHNobV90b2MgKnRvYykKIAl0dXBsZXNvcnRfYXR0YWNoX3NoYXJlZChzaGFyZWRzb3J0LCBz ZWcpOwogCiAJLyogUHJlcGFyZSB0byB0cmFjayBidWZmZXIgdXNhZ2UgZHVyaW5nIHBhcmFsbGVs IGV4ZWN1dGlvbiAqLwotCUluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KCk7CisJaW5zdHIgPSBJbnN0 clN0YXJ0UGFyYWxsZWxRdWVyeSgpOwogCiAJLyoKIAkgKiBNaWdodCBhcyB3ZWxsIHVzZSByZWxp YWJsZSBmaWd1cmUgd2hlbiBkb2xpbmcgb3V0IG1haW50ZW5hbmNlX3dvcmtfbWVtCkBAIC0yMTk3 LDcgKzIxOTgsOCBAQCBfZ2luX3BhcmFsbGVsX2J1aWxkX21haW4oZHNtX3NlZ21lbnQgKnNlZywg c2htX3RvYyAqdG9jKQogCS8qIFJlcG9ydCBXQUwvYnVmZmVyIHVzYWdlIGR1cmluZyBwYXJhbGxl bCBleGVjdXRpb24gKi8KIAlidWZmZXJ1c2FnZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxM RUxfS0VZX0JVRkZFUl9VU0FHRSwgZmFsc2UpOwogCXdhbHVzYWdlID0gc2htX3RvY19sb29rdXAo dG9jLCBQQVJBTExFTF9LRVlfV0FMX1VTQUdFLCBmYWxzZSk7Ci0JSW5zdHJFbmRQYXJhbGxlbFF1 ZXJ5KCZidWZmZXJ1c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sCisJSW5zdHJFbmRQYXJhbGxl bFF1ZXJ5KGluc3RyLAorCQkJCQkJICAmYnVmZmVydXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJd LAogCQkJCQkJICAmd2FsdXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdKTsKIAogCWluZGV4X2Ns b3NlKGluZGV4UmVsLCBpbmRleExvY2ttb2RlKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxh enkuYwppbmRleCA4MmM1YjI4ZTBhZC4uYjRjYmQwZTY4MmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92YWN1dW1sYXp5LmMKQEAgLTY0MSw4ICs2NDEsNyBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRp b24gcmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCVRpbWVzdGFtcFR6IHN0YXJ0dGlt ZSA9IDA7CiAJUGdTdGF0X0NvdW50ZXIgc3RhcnRyZWFkdGltZSA9IDAsCiAJCQkJc3RhcnR3cml0 ZXRpbWUgPSAwOwotCVdhbFVzYWdlCXN0YXJ0d2FsdXNhZ2UgPSBwZ1dhbFVzYWdlOwotCUJ1ZmZl clVzYWdlIHN0YXJ0YnVmZmVydXNhZ2UgPSBwZ0J1ZmZlclVzYWdlOworCVF1ZXJ5SW5zdHJ1bWVu dGF0aW9uICppbnN0ciA9IE5VTEw7CiAJRXJyb3JDb250ZXh0Q2FsbGJhY2sgZXJyY2FsbGJhY2s7 CiAJY2hhcgkgICoqaW5kbmFtZXMgPSBOVUxMOwogCVNpemUJCWRlYWRfaXRlbXNfbWF4X2J5dGVz ID0gMDsKQEAgLTY1OCw2ICs2NTcsOCBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBj b25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCQkJc3RhcnRyZWFkdGltZSA9IHBnU3RhdEJsb2Nr UmVhZFRpbWU7CiAJCQlzdGFydHdyaXRldGltZSA9IHBnU3RhdEJsb2NrV3JpdGVUaW1lOwogCQl9 CisJCWluc3RyID0gSW5zdHJRdWVyeUFsbG9jKElOU1RSVU1FTlRfQlVGRkVSUyB8IElOU1RSVU1F TlRfV0FMKTsKKwkJSW5zdHJRdWVyeVN0YXJ0KGluc3RyKTsKIAl9CiAKIAkvKiBVc2VkIGZvciBp bnN0cnVtZW50YXRpb24gYW5kIHN0YXRzIHJlcG9ydCAqLwpAQCAtOTgzLDE0ICs5ODQsMTQgQEAg aGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgY29uc3QgVmFjdXVtUGFyYW1zIHBhcmFtcywK IAl7CiAJCVRpbWVzdGFtcFR6IGVuZHRpbWUgPSBHZXRDdXJyZW50VGltZXN0YW1wKCk7CiAKKwkJ aW5zdHIgPSBJbnN0clF1ZXJ5U3RvcEZpbmFsaXplKGluc3RyKTsKKwogCQlpZiAodmVyYm9zZSB8 fCBwYXJhbXMubG9nX3ZhY3V1bV9taW5fZHVyYXRpb24gPT0gMCB8fAogCQkJVGltZXN0YW1wRGlm ZmVyZW5jZUV4Y2VlZHMoc3RhcnR0aW1lLCBlbmR0aW1lLAogCQkJCQkJCQkJICAgcGFyYW1zLmxv Z192YWN1dW1fbWluX2R1cmF0aW9uKSkKIAkJewogCQkJbG9uZwkJc2Vjc19kdXI7CiAJCQlpbnQJ CQl1c2Vjc19kdXI7Ci0JCQlXYWxVc2FnZQl3YWx1c2FnZTsKLQkJCUJ1ZmZlclVzYWdlIGJ1ZmZl cnVzYWdlOwogCQkJU3RyaW5nSW5mb0RhdGEgYnVmOwogCQkJY2hhcgkgICAqbXNnZm10OwogCQkJ aW50MzIJCWRpZmY7CkBAIC05OTksMTIgKzEwMDAsMTAgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0 aW9uIHJlbCwgY29uc3QgVmFjdXVtUGFyYW1zIHBhcmFtcywKIAkJCWludDY0CQl0b3RhbF9ibGtz X2hpdDsKIAkJCWludDY0CQl0b3RhbF9ibGtzX3JlYWQ7CiAJCQlpbnQ2NAkJdG90YWxfYmxrc19k aXJ0aWVkOworCQkJQnVmZmVyVXNhZ2UgYnVmZmVydXNhZ2UgPSBpbnN0ci0+aW5zdHIuYnVmdXNh Z2U7CisJCQlXYWxVc2FnZQl3YWx1c2FnZSA9IGluc3RyLT5pbnN0ci53YWx1c2FnZTsKIAogCQkJ VGltZXN0YW1wRGlmZmVyZW5jZShzdGFydHRpbWUsIGVuZHRpbWUsICZzZWNzX2R1ciwgJnVzZWNz X2R1cik7Ci0JCQltZW1zZXQoJndhbHVzYWdlLCAwLCBzaXplb2YoV2FsVXNhZ2UpKTsKLQkJCVdh bFVzYWdlQWNjdW1EaWZmKCZ3YWx1c2FnZSwgJnBnV2FsVXNhZ2UsICZzdGFydHdhbHVzYWdlKTsK LQkJCW1lbXNldCgmYnVmZmVydXNhZ2UsIDAsIHNpemVvZihCdWZmZXJVc2FnZSkpOwotCQkJQnVm ZmVyVXNhZ2VBY2N1bURpZmYoJmJ1ZmZlcnVzYWdlLCAmcGdCdWZmZXJVc2FnZSwgJnN0YXJ0YnVm ZmVydXNhZ2UpOwogCiAJCQl0b3RhbF9ibGtzX2hpdCA9IGJ1ZmZlcnVzYWdlLnNoYXJlZF9ibGtz X2hpdCArCiAJCQkJYnVmZmVydXNhZ2UubG9jYWxfYmxrc19oaXQ7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRy ZWUvbmJ0c29ydC5jCmluZGV4IDY5ZWYxNTI3ZTA2Li5kZmU0ZmQ5NDU5YyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL25idHJlZS9uYnRzb3J0LmMKQEAgLTE0NjUsOCArMTQ2NSw4IEBAIF9idF9iZWdpbl9wYXJh bGxlbChCVEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIGJvb2wgaXNjb25jdXJyZW50LCBpbnQgcmVx dWVzdCkKIAkgKiBhbmQgUEFSQUxMRUxfS0VZX0JVRkZFUl9VU0FHRS4KIAkgKgogCSAqIElmIHRo ZXJlIGFyZSBubyBleHRlbnNpb25zIGxvYWRlZCB0aGF0IGNhcmUsIHdlIGNvdWxkIHNraXAgdGhp cy4gIFdlCi0JICogaGF2ZSBubyB3YXkgb2Yga25vd2luZyB3aGV0aGVyIGFueW9uZSdzIGxvb2tp bmcgYXQgcGdXYWxVc2FnZSBvcgotCSAqIHBnQnVmZmVyVXNhZ2UsIHNvIGRvIGl0IHVuY29uZGl0 aW9uYWxseS4KKwkgKiBoYXZlIG5vIHdheSBvZiBrbm93aW5nIHdoZXRoZXIgYW55b25lJ3MgbG9v a2luZyBhdCBpbnN0cnVtZW50YXRpb24sIHNvCisJICogZG8gaXQgdW5jb25kaXRpb25hbGx5Lgog CSAqLwogCXNobV90b2NfZXN0aW1hdGVfY2h1bmsoJnBjeHQtPmVzdGltYXRvciwKIAkJCQkJCSAg IG11bF9zaXplKHNpemVvZihXYWxVc2FnZSksIHBjeHQtPm53b3JrZXJzKSk7CkBAIC0xNzUyLDYg KzE3NTIsNyBAQCBfYnRfcGFyYWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1f dG9jICp0b2MpCiAJUmVsYXRpb24JaW5kZXhSZWw7CiAJTE9DS01PREUJaGVhcExvY2ttb2RlOwog CUxPQ0tNT0RFCWluZGV4TG9ja21vZGU7CisJUXVlcnlJbnN0cnVtZW50YXRpb24gKmluc3RyOwog CVdhbFVzYWdlICAgKndhbHVzYWdlOwogCUJ1ZmZlclVzYWdlICpidWZmZXJ1c2FnZTsKIAlpbnQJ CQlzb3J0bWVtOwpAQCAtMTgyNyw3ICsxODI4LDcgQEAgX2J0X3BhcmFsbGVsX2J1aWxkX21haW4o ZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCX0KIAogCS8qIFByZXBhcmUgdG8gdHJh Y2sgYnVmZmVyIHVzYWdlIGR1cmluZyBwYXJhbGxlbCBleGVjdXRpb24gKi8KLQlJbnN0clN0YXJ0 UGFyYWxsZWxRdWVyeSgpOworCWluc3RyID0gSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoKTsKIAog CS8qIFBlcmZvcm0gc29ydGluZyBvZiBzcG9vbCwgYW5kIHBvc3NpYmx5IGEgc3Bvb2wyICovCiAJ c29ydG1lbSA9IG1haW50ZW5hbmNlX3dvcmtfbWVtIC8gYnRzaGFyZWQtPnNjYW50dXBsZXNvcnRz dGF0ZXM7CkBAIC0xODM3LDcgKzE4MzgsOCBAQCBfYnRfcGFyYWxsZWxfYnVpbGRfbWFpbihkc21f c2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJLyogUmVwb3J0IFdBTC9idWZmZXIgdXNhZ2Ug ZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dGlvbiAqLwogCWJ1ZmZlcnVzYWdlID0gc2htX3RvY19sb29r dXAodG9jLCBQQVJBTExFTF9LRVlfQlVGRkVSX1VTQUdFLCBmYWxzZSk7CiAJd2FsdXNhZ2UgPSBz aG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFMTEVMX0tFWV9XQUxfVVNBR0UsIGZhbHNlKTsKLQlJbnN0 ckVuZFBhcmFsbGVsUXVlcnkoJmJ1ZmZlcnVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwKKwlJ bnN0ckVuZFBhcmFsbGVsUXVlcnkoaW5zdHIsCisJCQkJCQkgICZidWZmZXJ1c2FnZVtQYXJhbGxl bFdvcmtlck51bWJlcl0sCiAJCQkJCQkgICZ3YWx1c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0p OwogCiAjaWZkZWYgQlRSRUVfQlVJTERfU1RBVFMKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FuYWx5emUuYwppbmRleCA1 M2FkYWM5MTM5Yi4uMzhmOGIzNzlmYTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbmFseXplLmMKQEAgLTMwOCw5 ICszMDgsNyBAQCBkb19hbmFseXplX3JlbChSZWxhdGlvbiBvbmVyZWwsIGNvbnN0IFZhY3V1bVBh cmFtcyBwYXJhbXMsCiAJT2lkCQkJc2F2ZV91c2VyaWQ7CiAJaW50CQkJc2F2ZV9zZWNfY29udGV4 dDsKIAlpbnQJCQlzYXZlX25lc3RsZXZlbDsKLQlXYWxVc2FnZQlzdGFydHdhbHVzYWdlID0gcGdX YWxVc2FnZTsKLQlCdWZmZXJVc2FnZSBzdGFydGJ1ZmZlcnVzYWdlID0gcGdCdWZmZXJVc2FnZTsK LQlCdWZmZXJVc2FnZSBidWZmZXJ1c2FnZTsKKwlRdWVyeUluc3RydW1lbnRhdGlvbiAqaW5zdHIg PSBOVUxMOwogCVBnU3RhdF9Db3VudGVyIHN0YXJ0cmVhZHRpbWUgPSAwOwogCVBnU3RhdF9Db3Vu dGVyIHN0YXJ0d3JpdGV0aW1lID0gMDsKIApAQCAtMzYxLDYgKzM1OSw5IEBAIGRvX2FuYWx5emVf cmVsKFJlbGF0aW9uIG9uZXJlbCwgY29uc3QgVmFjdXVtUGFyYW1zIHBhcmFtcywKIAkJfQogCiAJ CXBnX3J1c2FnZV9pbml0KCZydTApOworCisJCWluc3RyID0gSW5zdHJRdWVyeUFsbG9jKElOU1RS VU1FTlRfQlVGRkVSUyB8IElOU1RSVU1FTlRfV0FMKTsKKwkJSW5zdHJRdWVyeVN0YXJ0KGluc3Ry KTsKIAl9CiAKIAkvKiBVc2VkIGZvciBpbnN0cnVtZW50YXRpb24gYW5kIHN0YXRzIHJlcG9ydCAq LwpAQCAtNzQxLDEyICs3NDIsMTMgQEAgZG9fYW5hbHl6ZV9yZWwoUmVsYXRpb24gb25lcmVsLCBj b25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCXsKIAkJVGltZXN0YW1wVHogZW5kdGltZSA9IEdl dEN1cnJlbnRUaW1lc3RhbXAoKTsKIAorCQlpbnN0ciA9IEluc3RyUXVlcnlTdG9wRmluYWxpemUo aW5zdHIpOworCiAJCWlmICh2ZXJib3NlIHx8IHBhcmFtcy5sb2dfYW5hbHl6ZV9taW5fZHVyYXRp b24gPT0gMCB8fAogCQkJVGltZXN0YW1wRGlmZmVyZW5jZUV4Y2VlZHMoc3RhcnR0aW1lLCBlbmR0 aW1lLAogCQkJCQkJCQkJICAgcGFyYW1zLmxvZ19hbmFseXplX21pbl9kdXJhdGlvbikpCiAJCXsK IAkJCWxvbmcJCWRlbGF5X2luX21zOwotCQkJV2FsVXNhZ2UJd2FsdXNhZ2U7CiAJCQlkb3VibGUJ CXJlYWRfcmF0ZSA9IDA7CiAJCQlkb3VibGUJCXdyaXRlX3JhdGUgPSAwOwogCQkJY2hhcgkgICAq bXNnZm10OwpAQCAtNzU0LDE4ICs3NTYsMTUgQEAgZG9fYW5hbHl6ZV9yZWwoUmVsYXRpb24gb25l cmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCQkJaW50NjQJCXRvdGFsX2Jsa3NfaGl0 OwogCQkJaW50NjQJCXRvdGFsX2Jsa3NfcmVhZDsKIAkJCWludDY0CQl0b3RhbF9ibGtzX2RpcnRp ZWQ7Ci0KLQkJCW1lbXNldCgmYnVmZmVydXNhZ2UsIDAsIHNpemVvZihCdWZmZXJVc2FnZSkpOwot CQkJQnVmZmVyVXNhZ2VBY2N1bURpZmYoJmJ1ZmZlcnVzYWdlLCAmcGdCdWZmZXJVc2FnZSwgJnN0 YXJ0YnVmZmVydXNhZ2UpOwotCQkJbWVtc2V0KCZ3YWx1c2FnZSwgMCwgc2l6ZW9mKFdhbFVzYWdl KSk7Ci0JCQlXYWxVc2FnZUFjY3VtRGlmZigmd2FsdXNhZ2UsICZwZ1dhbFVzYWdlLCAmc3RhcnR3 YWx1c2FnZSk7Ci0KLQkJCXRvdGFsX2Jsa3NfaGl0ID0gYnVmZmVydXNhZ2Uuc2hhcmVkX2Jsa3Nf aGl0ICsKLQkJCQlidWZmZXJ1c2FnZS5sb2NhbF9ibGtzX2hpdDsKLQkJCXRvdGFsX2Jsa3NfcmVh ZCA9IGJ1ZmZlcnVzYWdlLnNoYXJlZF9ibGtzX3JlYWQgKwotCQkJCWJ1ZmZlcnVzYWdlLmxvY2Fs X2Jsa3NfcmVhZDsKLQkJCXRvdGFsX2Jsa3NfZGlydGllZCA9IGJ1ZmZlcnVzYWdlLnNoYXJlZF9i bGtzX2RpcnRpZWQgKwotCQkJCWJ1ZmZlcnVzYWdlLmxvY2FsX2Jsa3NfZGlydGllZDsKKwkJCUJ1 ZmZlclVzYWdlIGJ1ZnVzYWdlID0gaW5zdHItPmluc3RyLmJ1ZnVzYWdlOworCQkJV2FsVXNhZ2UJ d2FsdXNhZ2UgPSBpbnN0ci0+aW5zdHIud2FsdXNhZ2U7CisKKwkJCXRvdGFsX2Jsa3NfaGl0ID0g YnVmdXNhZ2Uuc2hhcmVkX2Jsa3NfaGl0ICsKKwkJCQlidWZ1c2FnZS5sb2NhbF9ibGtzX2hpdDsK KwkJCXRvdGFsX2Jsa3NfcmVhZCA9IGJ1ZnVzYWdlLnNoYXJlZF9ibGtzX3JlYWQgKworCQkJCWJ1 ZnVzYWdlLmxvY2FsX2Jsa3NfcmVhZDsKKwkJCXRvdGFsX2Jsa3NfZGlydGllZCA9IGJ1ZnVzYWdl LnNoYXJlZF9ibGtzX2RpcnRpZWQgKworCQkJCWJ1ZnVzYWdlLmxvY2FsX2Jsa3NfZGlydGllZDsK IAogCQkJLyoKIAkJCSAqIFdlIGRvIG5vdCBleHBlY3QgYW4gYW5hbHl6ZSB0byB0YWtlID4gMjUg ZGF5cyBhbmQgaXQgc2ltcGxpZmllcwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IDM4OTE4MWI4 ZDliLi5hYTc2ZjY4YmQxMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwpAQCAtMzIyLDE0ICszMjIs MTYgQEAgc3RhbmRhcmRfRXhwbGFpbk9uZVF1ZXJ5KFF1ZXJ5ICpxdWVyeSwgaW50IGN1cnNvck9w dGlvbnMsCiAJCQkJCQkgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYpCiB7CiAJUGxhbm5lZFN0 bXQgKnBsYW47Ci0JaW5zdHJfdGltZQlwbGFuc3RhcnQsCi0JCQkJcGxhbmR1cmF0aW9uOwotCUJ1 ZmZlclVzYWdlIGJ1ZnVzYWdlX3N0YXJ0LAotCQkJCWJ1ZnVzYWdlOworCVF1ZXJ5SW5zdHJ1bWVu dGF0aW9uICppbnN0ciA9IE5VTEw7CiAJTWVtb3J5Q29udGV4dENvdW50ZXJzIG1lbV9jb3VudGVy czsKIAlNZW1vcnlDb250ZXh0IHBsYW5uZXJfY3R4ID0gTlVMTDsKIAlNZW1vcnlDb250ZXh0IHNh dmVkX2N0eCA9IE5VTEw7CiAKKwlpZiAoZXMtPmJ1ZmZlcnMpCisJCWluc3RyID0gSW5zdHJRdWVy eUFsbG9jKElOU1RSVU1FTlRfVElNRVIgfCBJTlNUUlVNRU5UX0JVRkZFUlMpOworCWVsc2UKKwkJ aW5zdHIgPSBJbnN0clF1ZXJ5QWxsb2MoSU5TVFJVTUVOVF9USU1FUik7CisKIAlpZiAoZXMtPm1l bW9yeSkKIAl7CiAJCS8qCkBAIC0zNDYsMTUgKzM0OCwxMiBAQCBzdGFuZGFyZF9FeHBsYWluT25l UXVlcnkoUXVlcnkgKnF1ZXJ5LCBpbnQgY3Vyc29yT3B0aW9ucywKIAkJc2F2ZWRfY3R4ID0gTWVt b3J5Q29udGV4dFN3aXRjaFRvKHBsYW5uZXJfY3R4KTsKIAl9CiAKLQlpZiAoZXMtPmJ1ZmZlcnMp Ci0JCWJ1ZnVzYWdlX3N0YXJ0ID0gcGdCdWZmZXJVc2FnZTsKLQlJTlNUUl9USU1FX1NFVF9DVVJS RU5UKHBsYW5zdGFydCk7CisJSW5zdHJRdWVyeVN0YXJ0KGluc3RyKTsKIAogCS8qIHBsYW4gdGhl IHF1ZXJ5ICovCiAJcGxhbiA9IHBnX3BsYW5fcXVlcnkocXVlcnksIHF1ZXJ5U3RyaW5nLCBjdXJz b3JPcHRpb25zLCBwYXJhbXMsIGVzKTsKIAotCUlOU1RSX1RJTUVfU0VUX0NVUlJFTlQocGxhbmR1 cmF0aW9uKTsKLQlJTlNUUl9USU1FX1NVQlRSQUNUKHBsYW5kdXJhdGlvbiwgcGxhbnN0YXJ0KTsK KwlpbnN0ciA9IEluc3RyUXVlcnlTdG9wRmluYWxpemUoaW5zdHIpOwogCiAJaWYgKGVzLT5tZW1v cnkpCiAJewpAQCAtMzYyLDE2ICszNjEsOSBAQCBzdGFuZGFyZF9FeHBsYWluT25lUXVlcnkoUXVl cnkgKnF1ZXJ5LCBpbnQgY3Vyc29yT3B0aW9ucywKIAkJTWVtb3J5Q29udGV4dE1lbUNvbnN1bWVk KHBsYW5uZXJfY3R4LCAmbWVtX2NvdW50ZXJzKTsKIAl9CiAKLQkvKiBjYWxjIGRpZmZlcmVuY2Vz IG9mIGJ1ZmZlciBjb3VudGVycy4gKi8KLQlpZiAoZXMtPmJ1ZmZlcnMpCi0JewotCQltZW1zZXQo JmJ1ZnVzYWdlLCAwLCBzaXplb2YoQnVmZmVyVXNhZ2UpKTsKLQkJQnVmZmVyVXNhZ2VBY2N1bURp ZmYoJmJ1ZnVzYWdlLCAmcGdCdWZmZXJVc2FnZSwgJmJ1ZnVzYWdlX3N0YXJ0KTsKLQl9Ci0KIAkv KiBydW4gaXQgKGlmIG5lZWRlZCkgYW5kIHByb2R1Y2Ugb3V0cHV0ICovCiAJRXhwbGFpbk9uZVBs YW4ocGxhbiwgaW50bywgZXMsIHF1ZXJ5U3RyaW5nLCBwYXJhbXMsIHF1ZXJ5RW52LAotCQkJCSAg ICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAorCQkJCSAg ICZpbnN0ci0+aW5zdHIudG90YWwsIChlcy0+YnVmZmVycyA/ICZpbnN0ci0+aW5zdHIuYnVmdXNh Z2UgOiBOVUxMKSwKIAkJCQkgICBlcy0+bWVtb3J5ID8gJm1lbV9jb3VudGVycyA6IE5VTEwpOwog fQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluX2RyLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9leHBsYWluX2RyLmMKaW5kZXggM2M5NjA2MWNmMzIuLmM5Njk1YjAz YTYwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluX2RyLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbl9kci5jCkBAIC0xMTAsMTUgKzExMCwyMCBAQCBz ZXJpYWxpemVBbmFseXplUmVjZWl2ZShUdXBsZVRhYmxlU2xvdCAqc2xvdCwgRGVzdFJlY2VpdmVy ICpzZWxmKQogCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKIAlTdHJpbmdJbmZvCWJ1ZiA9ICZt eVN0YXRlLT5idWY7CiAJaW50CQkJbmF0dHMgPSB0eXBlaW5mby0+bmF0dHM7Ci0JaW5zdHJfdGlt ZQlzdGFydCwKLQkJCQllbmQ7Ci0JQnVmZmVyVXNhZ2UgaW5zdHJfc3RhcnQ7CisJUXVlcnlJbnN0 cnVtZW50YXRpb24gKmluc3RyID0gTlVMTDsKIAogCS8qIG9ubHkgbWVhc3VyZSB0aW1lLCBidWZm ZXJzIGlmIHJlcXVlc3RlZCAqLwotCWlmIChteVN0YXRlLT5lcy0+dGltaW5nKQotCQlJTlNUUl9U SU1FX1NFVF9DVVJSRU5UKHN0YXJ0KTsKLQlpZiAobXlTdGF0ZS0+ZXMtPmJ1ZmZlcnMpCi0JCWlu c3RyX3N0YXJ0ID0gcGdCdWZmZXJVc2FnZTsKKwlpZiAobXlTdGF0ZS0+ZXMtPnRpbWluZyB8fCBt eVN0YXRlLT5lcy0+YnVmZmVycykKKwl7CisJCUluc3RydW1lbnRPcHRpb24gaW5zdHJ1bWVudF9v cHRpb25zID0gMDsKKworCQlpZiAobXlTdGF0ZS0+ZXMtPnRpbWluZykKKwkJCWluc3RydW1lbnRf b3B0aW9ucyB8PSBJTlNUUlVNRU5UX1RJTUVSOworCQlpZiAobXlTdGF0ZS0+ZXMtPmJ1ZmZlcnMp CisJCQlpbnN0cnVtZW50X29wdGlvbnMgfD0gSU5TVFJVTUVOVF9CVUZGRVJTOworCQlpbnN0ciA9 IEluc3RyUXVlcnlBbGxvYyhpbnN0cnVtZW50X29wdGlvbnMpOworCQlJbnN0clF1ZXJ5U3RhcnQo aW5zdHIpOworCX0KIAogCS8qIFNldCBvciB1cGRhdGUgbXkgZGVyaXZlZCBhdHRyaWJ1dGUgaW5m bywgaWYgbmVlZGVkICovCiAJaWYgKG15U3RhdGUtPmF0dHJpbmZvICE9IHR5cGVpbmZvIHx8IG15 U3RhdGUtPm5hdHRycyAhPSBuYXR0cykKQEAgLTE4NiwxOCArMTkxLDE5IEBAIHNlcmlhbGl6ZUFu YWx5emVSZWNlaXZlKFR1cGxlVGFibGVTbG90ICpzbG90LCBEZXN0UmVjZWl2ZXIgKnNlbGYpCiAJ TWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwogCU1lbW9yeUNvbnRleHRSZXNldCht eVN0YXRlLT50bXBjb250ZXh0KTsKIAorCWlmIChteVN0YXRlLT5lcy0+dGltaW5nIHx8IG15U3Rh dGUtPmVzLT5idWZmZXJzKQorCQlpbnN0ciA9IEluc3RyUXVlcnlTdG9wRmluYWxpemUoaW5zdHIp OworCiAJLyogVXBkYXRlIHRpbWluZyBkYXRhICovCiAJaWYgKG15U3RhdGUtPmVzLT50aW1pbmcp Ci0JewotCQlJTlNUUl9USU1FX1NFVF9DVVJSRU5UKGVuZCk7Ci0JCUlOU1RSX1RJTUVfQUNDVU1f RElGRihteVN0YXRlLT5tZXRyaWNzLnRpbWVTcGVudCwgZW5kLCBzdGFydCk7Ci0JfQorCQlJTlNU Ul9USU1FX0FERChteVN0YXRlLT5tZXRyaWNzLnRpbWVTcGVudCwgaW5zdHItPmluc3RyLnRvdGFs KTsKIAogCS8qIFVwZGF0ZSBidWZmZXIgbWV0cmljcyAqLwogCWlmIChteVN0YXRlLT5lcy0+YnVm ZmVycykKLQkJQnVmZmVyVXNhZ2VBY2N1bURpZmYoJm15U3RhdGUtPm1ldHJpY3MuYnVmZmVyVXNh Z2UsCi0JCQkJCQkJICZwZ0J1ZmZlclVzYWdlLAotCQkJCQkJCSAmaW5zdHJfc3RhcnQpOworCQlC dWZmZXJVc2FnZUFkZCgmbXlTdGF0ZS0+bWV0cmljcy5idWZmZXJVc2FnZSwgJmluc3RyLT5pbnN0 ci5idWZ1c2FnZSk7CisKKwlpZiAobXlTdGF0ZS0+ZXMtPnRpbWluZyB8fCBteVN0YXRlLT5lcy0+ YnVmZmVycykKKwkJcGZyZWUoaW5zdHIpOwogCiAJcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9w cmVwYXJlLmMKaW5kZXggNWI4NmE3Mjc1ODcuLmQ4MWY2YjMwZTljIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJl cGFyZS5jCkBAIC01NzgsMTMgKzU3OCwxNiBAQCBFeHBsYWluRXhlY3V0ZVF1ZXJ5KEV4ZWN1dGVT dG10ICpleGVjc3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICplcywKIAlMaXN0 Q2VsbCAgICpwOwogCVBhcmFtTGlzdEluZm8gcGFyYW1MSSA9IE5VTEw7CiAJRVN0YXRlCSAgICpl c3RhdGUgPSBOVUxMOwotCWluc3RyX3RpbWUJcGxhbnN0YXJ0OwotCWluc3RyX3RpbWUJcGxhbmR1 cmF0aW9uOwotCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdlX3N0YXJ0LAotCQkJCWJ1ZnVzYWdlOworCVF1 ZXJ5SW5zdHJ1bWVudGF0aW9uICppbnN0ciA9IE5VTEw7CiAJTWVtb3J5Q29udGV4dENvdW50ZXJz IG1lbV9jb3VudGVyczsKIAlNZW1vcnlDb250ZXh0IHBsYW5uZXJfY3R4ID0gTlVMTDsKIAlNZW1v cnlDb250ZXh0IHNhdmVkX2N0eCA9IE5VTEw7CisJaW50CQkJaW5zdHJ1bWVudF9vcHRpb25zID0g SU5TVFJVTUVOVF9USU1FUjsKKworCWlmIChlcy0+YnVmZmVycykKKwkJaW5zdHJ1bWVudF9vcHRp b25zIHw9IElOU1RSVU1FTlRfQlVGRkVSUzsKKworCWluc3RyID0gSW5zdHJRdWVyeUFsbG9jKGlu c3RydW1lbnRfb3B0aW9ucyk7CiAKIAlpZiAoZXMtPm1lbW9yeSkKIAl7CkBAIC01OTYsOSArNTk5 LDcgQEAgRXhwbGFpbkV4ZWN1dGVRdWVyeShFeGVjdXRlU3RtdCAqZXhlY3N0bXQsIEludG9DbGF1 c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJCXNhdmVkX2N0eCA9IE1lbW9yeUNvbnRleHRT d2l0Y2hUbyhwbGFubmVyX2N0eCk7CiAJfQogCi0JaWYgKGVzLT5idWZmZXJzKQotCQlidWZ1c2Fn ZV9zdGFydCA9IHBnQnVmZmVyVXNhZ2U7Ci0JSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChwbGFuc3Rh cnQpOworCUluc3RyUXVlcnlTdGFydChpbnN0cik7CiAKIAkvKiBMb29rIGl0IHVwIGluIHRoZSBo YXNoIHRhYmxlICovCiAJZW50cnkgPSBGZXRjaFByZXBhcmVkU3RhdGVtZW50KGV4ZWNzdG10LT5u YW1lLCB0cnVlKTsKQEAgLTYzMyw4ICs2MzQsNyBAQCBFeHBsYWluRXhlY3V0ZVF1ZXJ5KEV4ZWN1 dGVTdG10ICpleGVjc3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICplcywKIAlj cGxhbiA9IEdldENhY2hlZFBsYW4oZW50cnktPnBsYW5zb3VyY2UsIHBhcmFtTEksCiAJCQkJCQkg IEN1cnJlbnRSZXNvdXJjZU93bmVyLCBwc3RhdGUtPnBfcXVlcnlFbnYpOwogCi0JSU5TVFJfVElN RV9TRVRfQ1VSUkVOVChwbGFuZHVyYXRpb24pOwotCUlOU1RSX1RJTUVfU1VCVFJBQ1QocGxhbmR1 cmF0aW9uLCBwbGFuc3RhcnQpOworCWluc3RyID0gSW5zdHJRdWVyeVN0b3BGaW5hbGl6ZShpbnN0 cik7CiAKIAlpZiAoZXMtPm1lbW9yeSkKIAl7CkBAIC02NDIsMTMgKzY0Miw2IEBAIEV4cGxhaW5F eGVjdXRlUXVlcnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBs YWluU3RhdGUgKmVzLAogCQlNZW1vcnlDb250ZXh0TWVtQ29uc3VtZWQocGxhbm5lcl9jdHgsICZt ZW1fY291bnRlcnMpOwogCX0KIAotCS8qIGNhbGMgZGlmZmVyZW5jZXMgb2YgYnVmZmVyIGNvdW50 ZXJzLiAqLwotCWlmIChlcy0+YnVmZmVycykKLQl7Ci0JCW1lbXNldCgmYnVmdXNhZ2UsIDAsIHNp emVvZihCdWZmZXJVc2FnZSkpOwotCQlCdWZmZXJVc2FnZUFjY3VtRGlmZigmYnVmdXNhZ2UsICZw Z0J1ZmZlclVzYWdlLCAmYnVmdXNhZ2Vfc3RhcnQpOwotCX0KLQogCXBsYW5fbGlzdCA9IGNwbGFu LT5zdG10X2xpc3Q7CiAKIAkvKiBFeHBsYWluIGVhY2ggcXVlcnkgKi8KQEAgLTY1OCw3ICs2NTEs NyBAQCBFeHBsYWluRXhlY3V0ZVF1ZXJ5KEV4ZWN1dGVTdG10ICpleGVjc3RtdCwgSW50b0NsYXVz ZSAqaW50bywgRXhwbGFpblN0YXRlICplcywKIAogCQlpZiAocHN0bXQtPmNvbW1hbmRUeXBlICE9 IENNRF9VVElMSVRZKQogCQkJRXhwbGFpbk9uZVBsYW4ocHN0bXQsIGludG8sIGVzLCBxdWVyeV9z dHJpbmcsIHBhcmFtTEksIHBzdGF0ZS0+cF9xdWVyeUVudiwKLQkJCQkJCSAgICZwbGFuZHVyYXRp b24sIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAorCQkJCQkJICAgJmluc3RyLT5p bnN0ci50b3RhbCwgKGVzLT5idWZmZXJzID8gJmluc3RyLT5pbnN0ci5idWZ1c2FnZSA6IE5VTEwp LAogCQkJCQkJICAgZXMtPm1lbW9yeSA/ICZtZW1fY291bnRlcnMgOiBOVUxMKTsKIAkJZWxzZQog CQkJRXhwbGFpbk9uZVV0aWxpdHkocHN0bXQtPnV0aWxpdHlTdG10LCBpbnRvLCBlcywgcHN0YXRl LCBwYXJhbUxJKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFs bGVsLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCmluZGV4IDI3OTEw OGNhODlmLi43NTA3NGZlNGVmYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFj dXVtcGFyYWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5j CkBAIC0zMDgsOCArMzA4LDggQEAgcGFyYWxsZWxfdmFjdXVtX2luaXQoUmVsYXRpb24gcmVsLCBS ZWxhdGlvbiAqaW5kcmVscywgaW50IG5pbmRleGVzLAogCSAqIFBBUkFMTEVMX1ZBQ1VVTV9LRVlf QlVGRkVSX1VTQUdFIGFuZCBQQVJBTExFTF9WQUNVVU1fS0VZX1dBTF9VU0FHRS4KIAkgKgogCSAq IElmIHRoZXJlIGFyZSBubyBleHRlbnNpb25zIGxvYWRlZCB0aGF0IGNhcmUsIHdlIGNvdWxkIHNr aXAgdGhpcy4gIFdlCi0JICogaGF2ZSBubyB3YXkgb2Yga25vd2luZyB3aGV0aGVyIGFueW9uZSdz IGxvb2tpbmcgYXQgcGdCdWZmZXJVc2FnZSBvcgotCSAqIHBnV2FsVXNhZ2UsIHNvIGRvIGl0IHVu Y29uZGl0aW9uYWxseS4KKwkgKiBoYXZlIG5vIHdheSBvZiBrbm93aW5nIHdoZXRoZXIgYW55b25l J3MgbG9va2luZyBhdCBpbnN0cnVtZW50YXRpb24sIHNvCisJICogZG8gaXQgdW5jb25kaXRpb25h bGx5LgogCSAqLwogCXNobV90b2NfZXN0aW1hdGVfY2h1bmsoJnBjeHQtPmVzdGltYXRvciwKIAkJ CQkJCSAgIG11bF9zaXplKHNpemVvZihCdWZmZXJVc2FnZSksIHBjeHQtPm53b3JrZXJzKSk7CkBA IC05OTUsNiArOTk1LDcgQEAgcGFyYWxsZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQgKnNlZywg c2htX3RvYyAqdG9jKQogCVBWSW5kU3RhdHMgKmluZHN0YXRzOwogCVBWU2hhcmVkICAgKnNoYXJl ZDsKIAlUaWRTdG9yZSAgICpkZWFkX2l0ZW1zOworCVF1ZXJ5SW5zdHJ1bWVudGF0aW9uICppbnN0 cjsKIAlCdWZmZXJVc2FnZSAqYnVmZmVyX3VzYWdlOwogCVdhbFVzYWdlICAgKndhbF91c2FnZTsK IAlpbnQJCQluaW5kZXhlczsKQEAgLTEwODQsNyArMTA4NSw3IEBAIHBhcmFsbGVsX3ZhY3V1bV9t YWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAllcnJvcl9jb250ZXh0X3N0YWNr ID0gJmVycmNhbGxiYWNrOwogCiAJLyogUHJlcGFyZSB0byB0cmFjayBidWZmZXIgdXNhZ2UgZHVy aW5nIHBhcmFsbGVsIGV4ZWN1dGlvbiAqLwotCUluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KCk7CisJ aW5zdHIgPSBJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSgpOwogCiAJLyogUHJvY2VzcyBpbmRleGVz IHRvIHBlcmZvcm0gdmFjdXVtL2NsZWFudXAgKi8KIAlwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19z YWZlX2luZGV4ZXMoJnB2cyk7CkBAIC0xMDkyLDcgKzEwOTMsOCBAQCBwYXJhbGxlbF92YWN1dW1f bWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJLyogUmVwb3J0IGJ1ZmZlci9X QUwgdXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dGlvbiAqLwogCWJ1ZmZlcl91c2FnZSA9IHNo bV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfVkFDVVVNX0tFWV9CVUZGRVJfVVNBR0UsIGZhbHNl KTsKIAl3YWxfdXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFMTEVMX1ZBQ1VVTV9LRVlf V0FMX1VTQUdFLCBmYWxzZSk7Ci0JSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZmZXJfdXNhZ2Vb UGFyYWxsZWxXb3JrZXJOdW1iZXJdLAorCUluc3RyRW5kUGFyYWxsZWxRdWVyeShpbnN0ciwKKwkJ CQkJCSAgJmJ1ZmZlcl91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sCiAJCQkJCQkgICZ3YWxf dXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdKTsKIAogCS8qIFJlcG9ydCBhbnkgcmVtYWluaW5n IGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5IHRpbWUgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCmlu ZGV4IGMwYjE3NGNmYmMwLi44MjI1MzMxN2U5NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY01haW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBA IC03Niw2ICs3Niw3IEBAIEV4ZWN1dG9yQ2hlY2tQZXJtc19ob29rX3R5cGUgRXhlY3V0b3JDaGVj a1Blcm1zX2hvb2sgPSBOVUxMOwogLyogZGVjbHMgZm9yIGxvY2FsIHJvdXRpbmVzIG9ubHkgdXNl ZCB3aXRoaW4gdGhpcyBtb2R1bGUgKi8KIHN0YXRpYyB2b2lkIEluaXRQbGFuKFF1ZXJ5RGVzYyAq cXVlcnlEZXNjLCBpbnQgZWZsYWdzKTsKIHN0YXRpYyB2b2lkIENoZWNrVmFsaWRSb3dNYXJrUmVs KFJlbGF0aW9uIHJlbCwgUm93TWFya1R5cGUgbWFya1R5cGUpOworc3RhdGljIHZvaWQgRXhlY0Zp bmFsaXplVHJpZ2dlckluc3RydW1lbnRhdGlvbihFU3RhdGUgKmVzdGF0ZSk7CiBzdGF0aWMgdm9p ZCBFeGVjUG9zdHByb2Nlc3NQbGFuKEVTdGF0ZSAqZXN0YXRlKTsKIHN0YXRpYyB2b2lkIEV4ZWNF bmRQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSk7CiBzdGF0aWMgdm9p ZCBFeGVjdXRlUGxhbihRdWVyeURlc2MgKnF1ZXJ5RGVzYywKQEAgLTMyOSw5ICszMzAsMjggQEAg c3RhbmRhcmRfRXhlY3V0b3JSdW4oUXVlcnlEZXNjICpxdWVyeURlc2MsCiAJICovCiAJb2xkY29u dGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhlc3RhdGUtPmVzX3F1ZXJ5X2N4dCk7CiAKLQkv KiBBbGxvdyBpbnN0cnVtZW50YXRpb24gb2YgRXhlY3V0b3Igb3ZlcmFsbCBydW50aW1lICovCisJ LyoKKwkgKiBTdGFydCB1cCByZXF1aXJlZCB0b3AtbGV2ZWwgaW5zdHJ1bWVudGF0aW9uIHN0YWNr IGZvciBXQUwvYnVmZmVyCisJICogdHJhY2tpbmcKKwkgKi8KKwlpZiAoIXF1ZXJ5RGVzYy0+dG90 YWx0aW1lICYmIChlc3RhdGUtPmVzX2luc3RydW1lbnQgJiAoSU5TVFJVTUVOVF9CVUZGRVJTIHwg SU5TVFJVTUVOVF9XQUwpKSkKKwkJcXVlcnlEZXNjLT50b3RhbHRpbWUgPSBJbnN0clF1ZXJ5QWxs b2MoZXN0YXRlLT5lc19pbnN0cnVtZW50KTsKKwogCWlmIChxdWVyeURlc2MtPnRvdGFsdGltZSkK LQkJSW5zdHJTdGFydChxdWVyeURlc2MtPnRvdGFsdGltZSk7CisJeworCQkvKiBBbGxvdyBpbnN0 cnVtZW50YXRpb24gb2YgRXhlY3V0b3Igb3ZlcmFsbCBydW50aW1lICovCisJCUluc3RyUXVlcnlT dGFydChxdWVyeURlc2MtPnRvdGFsdGltZSk7CisKKwkJLyoKKwkJICogUmVtZW1iZXIgYWxsIG5v ZGUgZW50cmllcyBmb3IgYWJvcnQgcmVjb3ZlcnkuIFdlIGRvIHRoaXMgb25jZSBoZXJlCisJCSAq IGFmdGVyIHRoZSBmaXJzdCBjYWxsIHRvIEluc3RyUXVlcnlTdGFydCBoYXMgcHVzaGVkIHRoZSBw YXJlbnQKKwkJICogZW50cnkuCisJCSAqLworCQlpZiAoKGVzdGF0ZS0+ZXNfaW5zdHJ1bWVudCAm IChJTlNUUlVNRU5UX0JVRkZFUlMgfCBJTlNUUlVNRU5UX1dBTCkpICYmCisJCQkhcXVlcnlEZXNj LT5hbHJlYWR5X2V4ZWN1dGVkKQorCQkJRXhlY1JlbWVtYmVyTm9kZUluc3RydW1lbnRhdGlvbihx dWVyeURlc2MtPnBsYW5zdGF0ZSwKKwkJCQkJCQkJCQkJcXVlcnlEZXNjLT50b3RhbHRpbWUpOwor CX0KIAogCS8qCiAJICogZXh0cmFjdCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBxdWVyeSBkZXNjcmlw dG9yIGFuZCB0aGUgcXVlcnkgZmVhdHVyZS4KQEAgLTM4Myw3ICs0MDMsNyBAQCBzdGFuZGFyZF9F eGVjdXRvclJ1bihRdWVyeURlc2MgKnF1ZXJ5RGVzYywKIAkJZGVzdC0+clNodXRkb3duKGRlc3Qp OwogCiAJaWYgKHF1ZXJ5RGVzYy0+dG90YWx0aW1lKQotCQlJbnN0clN0b3AocXVlcnlEZXNjLT50 b3RhbHRpbWUpOworCQlJbnN0clF1ZXJ5U3RvcChxdWVyeURlc2MtPnRvdGFsdGltZSk7CiAKIAlN ZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CiB9CkBAIC00MzMsNyArNDUzLDcgQEAg c3RhbmRhcmRfRXhlY3V0b3JGaW5pc2goUXVlcnlEZXNjICpxdWVyeURlc2MpCiAKIAkvKiBBbGxv dyBpbnN0cnVtZW50YXRpb24gb2YgRXhlY3V0b3Igb3ZlcmFsbCBydW50aW1lICovCiAJaWYgKHF1 ZXJ5RGVzYy0+dG90YWx0aW1lKQotCQlJbnN0clN0YXJ0KHF1ZXJ5RGVzYy0+dG90YWx0aW1lKTsK KwkJSW5zdHJRdWVyeVN0YXJ0KHF1ZXJ5RGVzYy0+dG90YWx0aW1lKTsKIAogCS8qIFJ1biBNb2Rp ZnlUYWJsZSBub2RlcyB0byBjb21wbGV0aW9uICovCiAJRXhlY1Bvc3Rwcm9jZXNzUGxhbihlc3Rh dGUpOwpAQCAtNDQyLDggKzQ2MiwyNiBAQCBzdGFuZGFyZF9FeGVjdXRvckZpbmlzaChRdWVyeURl c2MgKnF1ZXJ5RGVzYykKIAlpZiAoIShlc3RhdGUtPmVzX3RvcF9lZmxhZ3MgJiBFWEVDX0ZMQUdf U0tJUF9UUklHR0VSUykpCiAJCUFmdGVyVHJpZ2dlckVuZFF1ZXJ5KGVzdGF0ZSk7CiAKKwkvKgor CSAqIEFjY3VtdWxhdGUgcGVyLW5vZGUgYW5kIHRyaWdnZXIgc3RhdGlzdGljcyB0byB0aGVpciBy ZXNwZWN0aXZlIHBhcmVudAorCSAqIGluc3RydW1lbnRhdGlvbiBzdGFja3MuCisJICoKKwkgKiBX ZSBza2lwIHRoaXMgaW4gcGFyYWxsZWwgd29ya2VycyBiZWNhdXNlIHRoZWlyIHBlci1ub2RlIHN0 YXRzIGFyZQorCSAqIHJlcG9ydGVkIGluZGl2aWR1YWxseSB2aWEgRXhlY1BhcmFsbGVsUmVwb3J0 SW5zdHJ1bWVudGF0aW9uLCBhbmQgdGhlCisJICogbGVhZGVyJ3Mgb3duIEV4ZWNGaW5hbGl6ZU5v ZGVJbnN0cnVtZW50YXRpb24gaGFuZGxlcyBwcm9wYWdhdGlvbi4gIElmCisJICogd2UgYWNjdW11 bGF0ZWQgaGVyZSwgdGhlIGxlYWRlciB3b3VsZCBkb3VibGUtY291bnQ6IHdvcmtlciBwYXJlbnQg bm9kZXMKKwkgKiB3b3VsZCBhbHJlYWR5IGluY2x1ZGUgdGhlaXIgY2hpbGRyZW4ncyBzdGF0cywg YW5kIHRoZW4gdGhlIGxlYWRlcidzCisJICogYWNjdW11bGF0aW9uIHdvdWxkIGFkZCB0aGUgY2hp bGRyZW4gYWdhaW4uCisJICovCisJaWYgKHF1ZXJ5RGVzYy0+dG90YWx0aW1lICYmIGVzdGF0ZS0+ ZXNfaW5zdHJ1bWVudCAmJiAhSXNQYXJhbGxlbFdvcmtlcigpKQorCXsKKwkJRXhlY0ZpbmFsaXpl Tm9kZUluc3RydW1lbnRhdGlvbihxdWVyeURlc2MtPnBsYW5zdGF0ZSk7CisKKwkJRXhlY0ZpbmFs aXplVHJpZ2dlckluc3RydW1lbnRhdGlvbihlc3RhdGUpOworCX0KKwogCWlmIChxdWVyeURlc2Mt PnRvdGFsdGltZSkKLQkJSW5zdHJTdG9wKHF1ZXJ5RGVzYy0+dG90YWx0aW1lKTsKKwkJcXVlcnlE ZXNjLT50b3RhbHRpbWUgPSBJbnN0clF1ZXJ5U3RvcEZpbmFsaXplKHF1ZXJ5RGVzYy0+dG90YWx0 aW1lKTsKIAogCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKIApAQCAtMTQ4NCw2 ICsxNTIyLDI0IEBAIEV4ZWNHZXRBbmNlc3RvclJlc3VsdFJlbHMoRVN0YXRlICplc3RhdGUsIFJl c3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8pCiAJcmV0dXJuIHJlc3VsdFJlbEluZm8tPnJpX2Fu Y2VzdG9yUmVzdWx0UmVsczsKIH0KIAorc3RhdGljIHZvaWQKK0V4ZWNGaW5hbGl6ZVRyaWdnZXJJ bnN0cnVtZW50YXRpb24oRVN0YXRlICplc3RhdGUpCit7CisJTGlzdAkgICAqcmVscyA9IE5JTDsK KworCXJlbHMgPSBsaXN0X2NvbmNhdChyZWxzLCBlc3RhdGUtPmVzX3R1cGxlX3JvdXRpbmdfcmVz dWx0X3JlbGF0aW9ucyk7CisJcmVscyA9IGxpc3RfY29uY2F0KHJlbHMsIGVzdGF0ZS0+ZXNfb3Bl bmVkX3Jlc3VsdF9yZWxhdGlvbnMpOworCXJlbHMgPSBsaXN0X2NvbmNhdChyZWxzLCBlc3RhdGUt PmVzX3RyaWdfdGFyZ2V0X3JlbGF0aW9ucyk7CisKKwlmb3JlYWNoX25vZGUoUmVzdWx0UmVsSW5m bywgckluZm8sIHJlbHMpCisJeworCQlUcmlnZ2VySW5zdHJ1bWVudGF0aW9uICp0aSA9IHJJbmZv LT5yaV9UcmlnSW5zdHJ1bWVudDsKKworCQlpZiAodGkgJiYgKHRpLT5pbnN0ci5uZWVkX2J1ZnVz YWdlIHx8IHRpLT5pbnN0ci5uZWVkX3dhbHVzYWdlKSkKKwkJCUluc3RyQWNjdW0oaW5zdHJfc3Rh Y2suY3VycmVudCwgJnRpLT5pbnN0cik7CisJfQorfQorCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJRXhlY1Bv c3Rwcm9jZXNzUGxhbgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQ YXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXggYzE1 M2Q1YzFjM2IuLjczNTM0ZmE2YzdlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjUGFyYWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwpA QCAtNjk0LDcgKzY5NCw3IEBAIEV4ZWNJbml0UGFyYWxsZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0 YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAkgKgogCSAqIElmIEVYUExBSU4gaXMgbm90IGluIHVzZSBh bmQgdGhlcmUgYXJlIG5vIGV4dGVuc2lvbnMgbG9hZGVkIHRoYXQgY2FyZSwKIAkgKiB3ZSBjb3Vs ZCBza2lwIHRoaXMuICBCdXQgd2UgaGF2ZSBubyB3YXkgb2Yga25vd2luZyB3aGV0aGVyIGFueW9u ZSdzCi0JICogbG9va2luZyBhdCBwZ0J1ZmZlclVzYWdlLCBzbyBkbyBpdCB1bmNvbmRpdGlvbmFs bHkuCisJICogbG9va2luZyBhdCBpbnN0cnVtZW50YXRpb24sIHNvIGRvIGl0IHVuY29uZGl0aW9u YWxseS4KIAkgKi8KIAlzaG1fdG9jX2VzdGltYXRlX2NodW5rKCZwY3h0LT5lc3RpbWF0b3IsCiAJ CQkJCQkgICBtdWxfc2l6ZShzaXplb2YoQnVmZmVyVXNhZ2UpLCBwY3h0LT5ud29ya2VycykpOwpA QCAtMTA3NSw4ICsxMDc1LDIyIEBAIEV4ZWNQYXJhbGxlbFJldHJpZXZlSW5zdHJ1bWVudGF0aW9u KFBsYW5TdGF0ZSAqcGxhbnN0YXRlLAogCWluc3RydW1lbnQgPSBHZXRJbnN0cnVtZW50YXRpb25B cnJheShpbnN0cnVtZW50YXRpb24pOwogCWluc3RydW1lbnQgKz0gaSAqIGluc3RydW1lbnRhdGlv bi0+bnVtX3dvcmtlcnM7CiAJZm9yIChuID0gMDsgbiA8IGluc3RydW1lbnRhdGlvbi0+bnVtX3dv cmtlcnM7ICsrbikKKwl7CiAJCUluc3RyQWdnTm9kZShwbGFuc3RhdGUtPmluc3RydW1lbnQsICZp bnN0cnVtZW50W25dKTsKIAorCQkvKgorCQkgKiBBbHNvIGFkZCB3b3JrZXIgV0FMIHVzYWdlIHRv IHRoZSBnbG9iYWwgcGdXYWxVc2FnZSBjb3VudGVyLgorCQkgKgorCQkgKiBXaGVuIHBlci1ub2Rl IGluc3RydW1lbnRhdGlvbiBpcyBhY3RpdmUsIHBhcmFsbGVsIHdvcmtlcnMgc2tpcAorCQkgKiBF eGVjRmluYWxpemVOb2RlSW5zdHJ1bWVudGF0aW9uICh0byBhdm9pZCBkb3VibGUtY291bnRpbmcg aW4KKwkJICogRVhQTEFJTiksIHNvIHBlci1ub2RlIFdBTCBhY3Rpdml0eSBpcyBub3Qgcm9sbGVk IHVwIGludG8gdGhlCisJCSAqIHF1ZXJ5LWxldmVsIHN0YXRzIHRoYXQgSW5zdHJBY2N1bVBhcmFs bGVsUXVlcnkgcmVjZWl2ZXMuIFdpdGhvdXQKKwkJICogdGhpcywgcGdXYWxVc2FnZSB3b3VsZCB1 bmRlci1yZXBvcnQgV0FMIGdlbmVyYXRlZCBieSBwYXJhbGxlbAorCQkgKiB3b3JrZXJzIHdoZW4g aW5zdHJ1bWVudGF0aW9uIGlzIGFjdGl2ZS4KKwkJICovCisJCVdhbFVzYWdlQWRkKCZwZ1dhbFVz YWdlLCAmaW5zdHJ1bWVudFtuXS5pbnN0ci53YWx1c2FnZSk7CisJfQorCiAJLyoKIAkgKiBBbHNv IHN0b3JlIHRoZSBwZXItd29ya2VyIGRldGFpbC4KIAkgKgpAQCAtMTQ1Niw2ICsxNDcwLDcgQEAg dm9pZAogUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQog ewogCUZpeGVkUGFyYWxsZWxFeGVjdXRvclN0YXRlICpmcGVzOworCVF1ZXJ5SW5zdHJ1bWVudGF0 aW9uICppbnN0cjsKIAlCdWZmZXJVc2FnZSAqYnVmZmVyX3VzYWdlOwogCVdhbFVzYWdlICAgKndh bF91c2FnZTsKIAlEZXN0UmVjZWl2ZXIgKnJlY2VpdmVyOwpAQCAtMTUxNiw3ICsxNTMxLDcgQEAg UGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCSAqIGxl YWRlciwgd2hpY2ggYWxzbyBkb2Vzbid0IGNvdW50IGJ1ZmZlciBhY2Nlc3NlcyBhbmQgV0FMIGFj dGl2aXR5IHRoYXQKIAkgKiBvY2N1ciBkdXJpbmcgZXhlY3V0b3Igc3RhcnR1cC4KIAkgKi8KLQlJ bnN0clN0YXJ0UGFyYWxsZWxRdWVyeSgpOworCWluc3RyID0gSW5zdHJTdGFydFBhcmFsbGVsUXVl cnkoKTsKIAogCS8qCiAJICogUnVuIHRoZSBwbGFuLiAgSWYgd2Ugc3BlY2lmaWVkIGEgdHVwbGUg Ym91bmQsIGJlIGNhcmVmdWwgbm90IHRvIGRlbWFuZApAQCAtMTUzMiw3ICsxNTQ3LDggQEAgUGFy YWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCS8qIFJlcG9y dCBidWZmZXIvV0FMIHVzYWdlIGR1cmluZyBwYXJhbGxlbCBleGVjdXRpb24uICovCiAJYnVmZmVy X3VzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfQlVGRkVSX1VTQUdFLCBm YWxzZSk7CiAJd2FsX3VzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfV0FM X1VTQUdFLCBmYWxzZSk7Ci0JSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZmZXJfdXNhZ2VbUGFy YWxsZWxXb3JrZXJOdW1iZXJdLAorCUluc3RyRW5kUGFyYWxsZWxRdWVyeShpbnN0ciwKKwkJCQkJ CSAgJmJ1ZmZlcl91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sCiAJCQkJCQkgICZ3YWxfdXNh Z2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdKTsKIAogCS8qIFJlcG9ydCBpbnN0cnVtZW50YXRpb24g ZGF0YSBpZiBhbnkgaW5zdHJ1bWVudGF0aW9uIG9wdGlvbnMgYXJlIHNldC4gKi8KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQcm9jbm9kZS5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY1Byb2Nub2RlLmMKaW5kZXggMTg0NjY2MWI1MDMuLmM3ODhiNWIwMGY5IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUHJvY25vZGUuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjUHJvY25vZGUuYwpAQCAtMTIyLDYgKzEyMiw4IEBACiBzdGF0aWMg VHVwbGVUYWJsZVNsb3QgKkV4ZWNQcm9jTm9kZUZpcnN0KFBsYW5TdGF0ZSAqbm9kZSk7CiBzdGF0 aWMgVHVwbGVUYWJsZVNsb3QgKkV4ZWNQcm9jTm9kZUluc3RyKFBsYW5TdGF0ZSAqbm9kZSk7CiBz dGF0aWMgYm9vbCBFeGVjU2h1dGRvd25Ob2RlX3dhbGtlcihQbGFuU3RhdGUgKm5vZGUsIHZvaWQg KmNvbnRleHQpOworc3RhdGljIGJvb2wgRXhlY1JlbWVtYmVyTm9kZUluc3RydW1lbnRhdGlvbl93 YWxrZXIoUGxhblN0YXRlICpub2RlLCB2b2lkICpjb250ZXh0KTsKK3N0YXRpYyBib29sIEV4ZWNG aW5hbGl6ZU5vZGVJbnN0cnVtZW50YXRpb25fd2Fsa2VyKFBsYW5TdGF0ZSAqbm9kZSwgdm9pZCAq Y29udGV4dCk7CiAKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC03ODcsMTAgKzc4OSwxMCBAQCBF eGVjU2h1dGRvd25Ob2RlX3dhbGtlcihQbGFuU3RhdGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAJ ICogYXQgbGVhc3Qgb25jZSBhbHJlYWR5LiAgV2UgZG9uJ3QgZXhwZWN0IG11Y2ggQ1BVIGNvbnN1 bXB0aW9uIGR1cmluZwogCSAqIG5vZGUgc2h1dGRvd24sIGJ1dCBpbiB0aGUgY2FzZSBvZiBHYXRo ZXIgb3IgR2F0aGVyIE1lcmdlLCB3ZSBtYXkgc2h1dAogCSAqIGRvd24gd29ya2VycyBhdCB0aGlz IHN0YWdlLiAgSWYgc28sIHRoZWlyIGJ1ZmZlciB1c2FnZSB3aWxsIGdldAotCSAqIHByb3BhZ2F0 ZWQgaW50byBwZ0J1ZmZlclVzYWdlIGF0IHRoaXMgcG9pbnQsIGFuZCB3ZSB3YW50IHRvIG1ha2Ug c3VyZQotCSAqIHRoYXQgaXQgZ2V0cyBhc3NvY2lhdGVkIHdpdGggdGhlIEdhdGhlciBub2RlLiAg V2Ugc2tpcCB0aGlzIGlmIHRoZSBub2RlCi0JICogaGFzIG5ldmVyIGJlZW4gZXhlY3V0ZWQsIHNv IGFzIHRvIGF2b2lkIGluY29ycmVjdGx5IG1ha2luZyBpdCBhcHBlYXIKLQkgKiB0aGF0IGl0IGhh cy4KKwkgKiBwcm9wYWdhdGVkIGludG8gdGhlIGN1cnJlbnQgaW5zdHJ1bWVudGF0aW9uIHN0YWNr IGVudHJ5IGF0IHRoaXMgcG9pbnQsCisJICogYW5kIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHRoYXQg aXQgZ2V0cyBhc3NvY2lhdGVkIHdpdGggdGhlIEdhdGhlciBub2RlLgorCSAqIFdlIHNraXAgdGhp cyBpZiB0aGUgbm9kZSBoYXMgbmV2ZXIgYmVlbiBleGVjdXRlZCwgc28gYXMgdG8gYXZvaWQKKwkg KiBpbmNvcnJlY3RseSBtYWtpbmcgaXQgYXBwZWFyIHRoYXQgaXQgaGFzLgogCSAqLwogCWlmIChu b2RlLT5pbnN0cnVtZW50ICYmIG5vZGUtPmluc3RydW1lbnQtPnJ1bm5pbmcpCiAJCUluc3RyU3Rh cnROb2RlKG5vZGUtPmluc3RydW1lbnQpOwpAQCAtODI4LDYgKzgzMCw4MCBAQCBFeGVjU2h1dGRv d25Ob2RlX3dhbGtlcihQbGFuU3RhdGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAJcmV0dXJuIGZh bHNlOwogfQogCisvKgorICogRXhlY1JlbWVtYmVyTm9kZUluc3RydW1lbnRhdGlvbgorICoKKyAq IFJlZ2lzdGVyIGFsbCBwZXItbm9kZSBpbnN0cnVtZW50YXRpb24gZW50cmllcyBhcyB1bmZpbmFs aXplZCBjaGlsZHJlbiBvZgorICogdGhlIGV4ZWN1dG9yJ3MgaW5zdHJ1bWVudGF0aW9uLiBUaGlz IGlzIG5lZWRlZCBmb3IgYWJvcnQgcmVjb3Zlcnk6IGlmIHRoZQorICogZXhlY3V0b3IgYWJvcnRz LCB3ZSBuZWVkIHRvIHdhbGsgZWFjaCBwZXItbm9kZSBlbnRyeSB0byByZWNvdmVyIGJ1ZmZlci9X QUwKKyAqIGRhdGEgZnJvbSBub2RlcyB0aGF0IG5ldmVyIGdvdCBmaW5hbGl6ZWQsIHRoYXQgc29t ZW9uZSBtaWdodCBiZSBpbnRlcmVzdGVkCisgKiBpbiBhcyBhbiBhZ2dyZWdhdGUuCisgKi8KK3Zv aWQKK0V4ZWNSZW1lbWJlck5vZGVJbnN0cnVtZW50YXRpb24oUGxhblN0YXRlICpub2RlLCBRdWVy eUluc3RydW1lbnRhdGlvbiAqcGFyZW50KQoreworCSh2b2lkKSBFeGVjUmVtZW1iZXJOb2RlSW5z dHJ1bWVudGF0aW9uX3dhbGtlcihub2RlLCBwYXJlbnQpOworfQorCitzdGF0aWMgYm9vbAorRXhl Y1JlbWVtYmVyTm9kZUluc3RydW1lbnRhdGlvbl93YWxrZXIoUGxhblN0YXRlICpub2RlLCB2b2lk ICpjb250ZXh0KQoreworCVF1ZXJ5SW5zdHJ1bWVudGF0aW9uICpwYXJlbnQgPSAoUXVlcnlJbnN0 cnVtZW50YXRpb24gKikgY29udGV4dDsKKworCUFzc2VydChwYXJlbnQgIT0gTlVMTCk7CisKKwlp ZiAobm9kZSA9PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAobm9kZS0+aW5zdHJ1bWVu dCkKKwkJSW5zdHJRdWVyeVJlbWVtYmVyTm9kZShwYXJlbnQsIG5vZGUtPmluc3RydW1lbnQpOwor CisJcmV0dXJuIHBsYW5zdGF0ZV90cmVlX3dhbGtlcihub2RlLCBFeGVjUmVtZW1iZXJOb2RlSW5z dHJ1bWVudGF0aW9uX3dhbGtlciwgY29udGV4dCk7Cit9CisKKy8qCisgKiBFeGVjRmluYWxpemVO b2RlSW5zdHJ1bWVudGF0aW9uCisgKgorICogQWNjdW11bGF0ZSBpbnN0cnVtZW50YXRpb24gc3Rh dHMgZnJvbSBhbGwgZXhlY3V0aW9uIG5vZGVzIHRvIHRoZWlyIHJlc3BlY3RpdmUKKyAqIHBhcmVu dHMgKG9yIHRoZSBvcmlnaW5hbCBwYXJlbnQgaW5zdHJ1bWVudGF0aW9uKS4KKyAqCisgKiBUaGlz IG11c3QgcnVuIGFmdGVyIHRoZSBjbGVhbnVwIGRvbmUgYnkgRXhlY1NodXRkb3duTm9kZSwgYW5k IG5vdCByZWx5IG9uIGFueQorICogcmVzb3VyY2VzIGNsZWFuZWQgdXAgYnkgaXQuIFdlIGFsc28g ZXhwZWN0IHNodXRkb3duIGFjdGlvbnMgdG8gaGF2ZSBvY2N1cnJlZCwKKyAqIGUuZy4gcGFyYWxs ZWwgd29ya2VyIGluc3RydW1lbnRhdGlvbiB0byBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlIGxlYWRl ci4KKyAqLwordm9pZAorRXhlY0ZpbmFsaXplTm9kZUluc3RydW1lbnRhdGlvbihQbGFuU3RhdGUg Km5vZGUpCit7CisJKHZvaWQpIEV4ZWNGaW5hbGl6ZU5vZGVJbnN0cnVtZW50YXRpb25fd2Fsa2Vy KG5vZGUsIGluc3RyX3N0YWNrLmN1cnJlbnQpOworfQorCitzdGF0aWMgYm9vbAorRXhlY0ZpbmFs aXplTm9kZUluc3RydW1lbnRhdGlvbl93YWxrZXIoUGxhblN0YXRlICpub2RlLCB2b2lkICpjb250 ZXh0KQoreworCUluc3RydW1lbnRhdGlvbiAqcGFyZW50ID0gKEluc3RydW1lbnRhdGlvbiAqKSBj b250ZXh0OworCisJQXNzZXJ0KHBhcmVudCAhPSBOVUxMKTsKKworCWlmIChub2RlID09IE5VTEwp CisJCXJldHVybiBmYWxzZTsKKworCS8qCisJICogUmVjdXJzZSBpbnRvIGNoaWxkcmVuIGZpcnN0 IChib3R0b20tdXAgYWNjdW11bGF0aW9uKSwgcGFzc2luZyBvdXIKKwkgKiBpbnN0cnVtZW50YXRp b24gYXMgdGhlIHBhcmVudCBjb250ZXh0LiAgVGhpcyBlbnN1cmVzIGNoaWxkcmVuIGNhbgorCSAq IGFjY3VtdWxhdGUgdG8gdXMgZXZlbiBpZiB0aGV5IHdlcmUgbmV2ZXIgZXhlY3V0ZWQgYnkgdGhl IGxlYWRlciAoZS5nLgorCSAqIG5vZGVzIGJlbmVhdGggR2F0aGVyIHRoYXQgb25seSB3b3JrZXJz IHJhbikuCisJICovCisJcGxhbnN0YXRlX3RyZWVfd2Fsa2VyKG5vZGUsIEV4ZWNGaW5hbGl6ZU5v ZGVJbnN0cnVtZW50YXRpb25fd2Fsa2VyLAorCQkJCQkJICBub2RlLT5pbnN0cnVtZW50ID8gJm5v ZGUtPmluc3RydW1lbnQtPmluc3RyIDogcGFyZW50KTsKKworCWlmICghbm9kZS0+aW5zdHJ1bWVu dCkKKwkJcmV0dXJuIGZhbHNlOworCisJbm9kZS0+aW5zdHJ1bWVudCA9IEluc3RyRmluYWxpemVO b2RlKG5vZGUtPmluc3RydW1lbnQsIHBhcmVudCk7CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKIC8q CiAgKiBFeGVjU2V0VHVwbGVCb3VuZAogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2luc3RydW1lbnQuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYwppbmRl eCA2YTRhMDhlYmIwYy4uYmQ4YWUzZmRjYzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2luc3RydW1lbnQuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMK QEAgLTE2LDI1ICsxNiwzMSBAQAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogCiAjaW5jbHVkZSAiZXhl Y3V0b3IvaW5zdHJ1bWVudC5oIgorI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCisjaW5jbHVk ZSAidXRpbHMvcmVzb3duZXIuaCIKIAotQnVmZmVyVXNhZ2UgcGdCdWZmZXJVc2FnZTsKLXN0YXRp YyBCdWZmZXJVc2FnZSBzYXZlX3BnQnVmZmVyVXNhZ2U7CiBXYWxVc2FnZQlwZ1dhbFVzYWdlOwot c3RhdGljIFdhbFVzYWdlIHNhdmVfcGdXYWxVc2FnZTsKK0luc3RydW1lbnRhdGlvbiBpbnN0cl90 b3A7CitJbnN0clN0YWNrU3RhdGUgaW5zdHJfc3RhY2sgPSB7MCwgMCwgTlVMTCwgJmluc3RyX3Rv cH07CiAKLXN0YXRpYyB2b2lkIEJ1ZmZlclVzYWdlQWRkKEJ1ZmZlclVzYWdlICpkc3QsIGNvbnN0 IEJ1ZmZlclVzYWdlICphZGQpOwotc3RhdGljIHZvaWQgV2FsVXNhZ2VBZGQoV2FsVXNhZ2UgKmRz dCwgV2FsVXNhZ2UgKmFkZCk7Ci0KLQotLyogR2VuZXJhbCBwdXJwb3NlIGluc3RydW1lbnRhdGlv biBoYW5kbGluZyAqLwotSW5zdHJ1bWVudGF0aW9uICoKLUluc3RyQWxsb2MoaW50IGluc3RydW1l bnRfb3B0aW9ucykKK3ZvaWQKK0luc3RyU3RhY2tHcm93KHZvaWQpCiB7Ci0JSW5zdHJ1bWVudGF0 aW9uICppbnN0ciA9IHBhbGxvYzAoc2l6ZW9mKEluc3RydW1lbnRhdGlvbikpOwotCUluc3RySW5p dE9wdGlvbnMoaW5zdHIsIGluc3RydW1lbnRfb3B0aW9ucyk7Ci0JcmV0dXJuIGluc3RyOworCWlm IChpbnN0cl9zdGFjay5lbnRyaWVzID09IE5VTEwpCisJeworCQlpbnN0cl9zdGFjay5zdGFja19z cGFjZSA9IDEwOwkvKiBBbGxvY2F0ZSBzdWZmaWNpZW50IGluaXRpYWwgc3BhY2UKKwkJCQkJCQkJ CQkgKiBmb3IgdHlwaWNhbCBhY3Rpdml0eSAqLworCQlpbnN0cl9zdGFjay5lbnRyaWVzID0gTWVt b3J5Q29udGV4dEFsbG9jKFRvcE1lbW9yeUNvbnRleHQsCisJCQkJCQkJCQkJCQkgc2l6ZW9mKElu c3RydW1lbnRhdGlvbiAqKSAqIGluc3RyX3N0YWNrLnN0YWNrX3NwYWNlKTsKKwl9CisJZWxzZQor CXsKKwkJaW5zdHJfc3RhY2suc3RhY2tfc3BhY2UgKj0gMjsKKwkJaW5zdHJfc3RhY2suZW50cmll cyA9IHJlcGFsbG9jX2FycmF5KGluc3RyX3N0YWNrLmVudHJpZXMsIEluc3RydW1lbnRhdGlvbiAq LCBpbnN0cl9zdGFjay5zdGFja19zcGFjZSk7CisJfQogfQogCisvKiBHZW5lcmFsIHB1cnBvc2Ug aW5zdHJ1bWVudGF0aW9uIGhhbmRsaW5nICovCiB2b2lkCiBJbnN0ckluaXRPcHRpb25zKEluc3Ry dW1lbnRhdGlvbiAqaW5zdHIsIGludCBpbnN0cnVtZW50X29wdGlvbnMpCiB7CkBAIC01NCwzOCAr NjAsMjU3IEBAIEluc3RyU3RhcnQoSW5zdHJ1bWVudGF0aW9uICppbnN0cikKIAkJCUlOU1RSX1RJ TUVfU0VUX0NVUlJFTlQoaW5zdHItPnN0YXJ0dGltZSk7CiAJfQogCi0JaWYgKGluc3RyLT5uZWVk X2J1ZnVzYWdlKQotCQlpbnN0ci0+YnVmdXNhZ2Vfc3RhcnQgPSBwZ0J1ZmZlclVzYWdlOworCWlm IChpbnN0ci0+bmVlZF9idWZ1c2FnZSB8fCBpbnN0ci0+bmVlZF93YWx1c2FnZSkKKwkJSW5zdHJQ dXNoU3RhY2soaW5zdHIpOworfQorCitzdGF0aWMgdm9pZAorSW5zdHJTdG9wVGltZXIoSW5zdHJ1 bWVudGF0aW9uICppbnN0cikKK3sKKwlpbnN0cl90aW1lCWVuZHRpbWU7CisKKwkvKiBsZXQncyB1 cGRhdGUgdGhlIHRpbWUgb25seSBpZiB0aGUgdGltZXIgd2FzIHJlcXVlc3RlZCAqLworCWlmIChJ TlNUUl9USU1FX0lTX1pFUk8oaW5zdHItPnN0YXJ0dGltZSkpCisJCWVsb2coRVJST1IsICJJbnN0 clN0b3AgY2FsbGVkIHdpdGhvdXQgc3RhcnQiKTsKIAotCWlmIChpbnN0ci0+bmVlZF93YWx1c2Fn ZSkKLQkJaW5zdHItPndhbHVzYWdlX3N0YXJ0ID0gcGdXYWxVc2FnZTsKKwlJTlNUUl9USU1FX1NF VF9DVVJSRU5UKGVuZHRpbWUpOworCUlOU1RSX1RJTUVfQUNDVU1fRElGRihpbnN0ci0+dG90YWws IGVuZHRpbWUsIGluc3RyLT5zdGFydHRpbWUpOworCisJSU5TVFJfVElNRV9TRVRfWkVSTyhpbnN0 ci0+c3RhcnR0aW1lKTsKIH0KIAogdm9pZAogSW5zdHJTdG9wKEluc3RydW1lbnRhdGlvbiAqaW5z dHIpCiB7Ci0JaW5zdHJfdGltZQllbmR0aW1lOworCWlmIChpbnN0ci0+bmVlZF90aW1lcikKKwkJ SW5zdHJTdG9wVGltZXIoaW5zdHIpOworCisJaWYgKGluc3RyLT5uZWVkX2J1ZnVzYWdlIHx8IGlu c3RyLT5uZWVkX3dhbHVzYWdlKQorCQlJbnN0clBvcFN0YWNrKGluc3RyKTsKK30KKworLyoKKyAq IFN0b3BzIGluc3RydW1lbnRhdGlvbiwgZmluYWxpemVzIHRoZSBzdGFjayBlbnRyeSBhbmQgYWNj dW11bGF0ZXMgdG8gaXRzIHBhcmVudC4KKyAqCisgKiBOb3RlIHRoYXQgdGhpcyBpbnRlbnRpb25h bGx5IGFsbG93cyBwYXNzaW5nIGEgc3RhY2sgdGhhdCBpcyBub3QgdGhlIGN1cnJlbnQKKyAqIHRv cCwgYXMgY2FuIGhhcHBlbiB3aXRoIFBHX0ZJTkFMTFksIG9yIHJlc291cmNlIG93bmVycywgd2hp Y2ggZG9uJ3QgaGF2ZSBhCisgKiBndWFyYW50ZWVkIGNsZWFudXAgb3JkZXIuCisgKgorICogV2Ug YXJlIGNhcmVmdWwgaGVyZSB0byBhY2hpZXZlIHR3byBnb2FsczoKKyAqCisgKiAxKSBSZXNldCB0 aGUgc3RhY2sgdG8gdGhlIHBhcmVudCBvZiB3aGljaGV2ZXIgb2YgdGhlIHJlbGVhc2VkIHN0YWNr IGVudHJpZXMKKyAqICAgIGhhcyB0aGUgbG93ZXN0IGluZGV4CisgKiAyKSBBY2N1bXVsYXRlIGFs bCBpbnN0cnVtZW50YXRpb24gdG8gdGhlIGN1cnJlbnRseSBhY3RpdmUgaW5zdHJ1bWVudGF0aW9u LAorICogICAgc28gdGhhdCBjYWxsZXJzIGdldCBhIGNvbXBsZXRlIHBpY3R1cmUgb2YgYWN0aXZp dHksIGV2ZW4gYWZ0ZXIgYW4gYWJvcnQKKyAqLwordm9pZAorSW5zdHJTdG9wRmluYWxpemUoSW5z dHJ1bWVudGF0aW9uICppbnN0cikKK3sKKwlpbnQJCQlpZHggPSAtMTsKKworCWZvciAoaW50IGkg PSBpbnN0cl9zdGFjay5zdGFja19zaXplIC0gMTsgaSA+PSAwOyBpLS0pCisJeworCQlpZiAoaW5z dHJfc3RhY2suZW50cmllc1tpXSA9PSBpbnN0cikKKwkJeworCQkJaWR4ID0gaTsKKwkJCWJyZWFr OworCQl9CisJfQorCisJaWYgKGlkeCA+PSAwKQorCXsKKwkJd2hpbGUgKGluc3RyX3N0YWNrLnN0 YWNrX3NpemUgPiBpZHggKyAxKQorCQkJaW5zdHJfc3RhY2suc3RhY2tfc2l6ZS0tOworCisJCUlu c3RyUG9wU3RhY2soaW5zdHIpOworCX0KIAotCS8qIGxldCdzIHVwZGF0ZSB0aGUgdGltZSBvbmx5 IGlmIHRoZSB0aW1lciB3YXMgcmVxdWVzdGVkICovCiAJaWYgKGluc3RyLT5uZWVkX3RpbWVyKQor CQlJbnN0clN0b3BUaW1lcihpbnN0cik7CisKKwlJbnN0ckFjY3VtKGluc3RyX3N0YWNrLmN1cnJl bnQsIGluc3RyKTsKK30KKworCisvKiBRdWVyeSBpbnN0cnVtZW50YXRpb24gaGFuZGxpbmcgKi8K KworLyoKKyAqIFVzZSBSZXNvdXJjZU93bmVyIG1lY2hhbmlzbSB0byBjb3JyZWN0bHkgcmVzZXQg aW5zdHJfc3RhY2sgb24gYWJvcnQuCisgKi8KK3N0YXRpYyB2b2lkIFJlc093bmVyUmVsZWFzZUlu c3RydW1lbnRhdGlvbihEYXR1bSByZXMpOworc3RhdGljIGNvbnN0IFJlc291cmNlT3duZXJEZXNj IGluc3RydW1lbnRhdGlvbl9yZXNvd25lcl9kZXNjID0KK3sKKwkubmFtZSA9ICJpbnN0cnVtZW50 YXRpb24iLAorCS5yZWxlYXNlX3BoYXNlID0gUkVTT1VSQ0VfUkVMRUFTRV9BRlRFUl9MT0NLUywK KwkucmVsZWFzZV9wcmlvcml0eSA9IFJFTEVBU0VfUFJJT19JTlNUUlVNRU5UQVRJT04sCisJLlJl bGVhc2VSZXNvdXJjZSA9IFJlc093bmVyUmVsZWFzZUluc3RydW1lbnRhdGlvbiwKKwkuRGVidWdQ cmludCA9IE5VTEwsCQkJLyogZGVmYXVsdCBtZXNzYWdlIGlzIGZpbmUgKi8KK307CisKK3N0YXRp YyBpbmxpbmUgdm9pZAorUmVzb3VyY2VPd25lclJlbWVtYmVySW5zdHJ1bWVudGF0aW9uKFJlc291 cmNlT3duZXIgb3duZXIsIFF1ZXJ5SW5zdHJ1bWVudGF0aW9uICpxaW5zdHIpCit7CisJUmVzb3Vy Y2VPd25lclJlbWVtYmVyKG93bmVyLCBQb2ludGVyR2V0RGF0dW0ocWluc3RyKSwgJmluc3RydW1l bnRhdGlvbl9yZXNvd25lcl9kZXNjKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitSZXNvdXJj ZU93bmVyRm9yZ2V0SW5zdHJ1bWVudGF0aW9uKFJlc291cmNlT3duZXIgb3duZXIsIFF1ZXJ5SW5z dHJ1bWVudGF0aW9uICpxaW5zdHIpCit7CisJUmVzb3VyY2VPd25lckZvcmdldChvd25lciwgUG9p bnRlckdldERhdHVtKHFpbnN0ciksICZpbnN0cnVtZW50YXRpb25fcmVzb3duZXJfZGVzYyk7Cit9 CisKK3N0YXRpYyB2b2lkCitSZXNPd25lclJlbGVhc2VJbnN0cnVtZW50YXRpb24oRGF0dW0gcmVz KQoreworCVF1ZXJ5SW5zdHJ1bWVudGF0aW9uICpxaW5zdHIgPSAoUXVlcnlJbnN0cnVtZW50YXRp b24gKikgRGF0dW1HZXRQb2ludGVyKHJlcyk7CisJZGxpc3RfbXV0YWJsZV9pdGVyIGl0ZXI7CisK KwkvKiBBY2N1bXVsYXRlIGRhdGEgZnJvbSBhbGwgdW5maW5hbGl6ZWQgY2hpbGQgbm9kZSBlbnRy aWVzLiAqLworCWRsaXN0X2ZvcmVhY2hfbW9kaWZ5KGl0ZXIsICZxaW5zdHItPnVuZmluYWxpemVk X2NoaWxkcmVuKQogCXsKLQkJaWYgKElOU1RSX1RJTUVfSVNfWkVSTyhpbnN0ci0+c3RhcnR0aW1l KSkKLQkJCWVsb2coRVJST1IsICJJbnN0clN0b3AgY2FsbGVkIHdpdGhvdXQgc3RhcnQiKTsKKwkJ Tm9kZUluc3RydW1lbnRhdGlvbiAqY2hpbGQgPSBkbGlzdF9jb250YWluZXIoTm9kZUluc3RydW1l bnRhdGlvbiwgdW5maW5hbGl6ZWRfbm9kZSwgaXRlci5jdXIpOwogCi0JCUlOU1RSX1RJTUVfU0VU X0NVUlJFTlQoZW5kdGltZSk7Ci0JCUlOU1RSX1RJTUVfQUNDVU1fRElGRihpbnN0ci0+dG90YWws IGVuZHRpbWUsIGluc3RyLT5zdGFydHRpbWUpOworCQlJbnN0ckFjY3VtKCZxaW5zdHItPmluc3Ry LCAmY2hpbGQtPmluc3RyKTsKIAotCQlJTlNUUl9USU1FX1NFVF9aRVJPKGluc3RyLT5zdGFydHRp bWUpOworCQkvKgorCQkgKiBGcmVlIE5vZGVJbnN0cnVtZW50YXRpb24gbm93LCBzaW5jZSBJbnN0 ckZpbmFsaXplTm9kZSB3b24ndCBiZQorCQkgKiBjYWxsZWQKKwkJICovCisJCXBmcmVlKGNoaWxk KTsKIAl9CiAKLQkvKiBBZGQgZGVsdGEgb2YgYnVmZmVyIHVzYWdlIHNpbmNlIGVudHJ5IHRvIG5v ZGUncyB0b3RhbHMgKi8KLQlpZiAoaW5zdHItPm5lZWRfYnVmdXNhZ2UpCi0JCUJ1ZmZlclVzYWdl QWNjdW1EaWZmKCZpbnN0ci0+YnVmdXNhZ2UsCi0JCQkJCQkJICZwZ0J1ZmZlclVzYWdlLCAmaW5z dHItPmJ1ZnVzYWdlX3N0YXJ0KTsKKwkvKiBFbnN1cmUgdGhlIHN0YWNrIGlzIHJlc2V0IGFzIGV4 cGVjdGVkLCBhbmQgd2UgYWNjdW11bGF0ZSB0byB0aGUgcGFyZW50ICovCisJSW5zdHJTdG9wRmlu YWxpemUoJnFpbnN0ci0+aW5zdHIpOwogCi0JaWYgKGluc3RyLT5uZWVkX3dhbHVzYWdlKQotCQlX YWxVc2FnZUFjY3VtRGlmZigmaW5zdHItPndhbHVzYWdlLAotCQkJCQkJICAmcGdXYWxVc2FnZSwg Jmluc3RyLT53YWx1c2FnZV9zdGFydCk7CisJLyogRnJlZSBRdWVyeUluc3RydW1lbnRhdGlvbiBu b3csIHNpbmNlIEluc3RyU3RvcCB3b24ndCBiZSBjYWxsZWQgKi8KKwlwZnJlZShxaW5zdHIpOwor fQorCitRdWVyeUluc3RydW1lbnRhdGlvbiAqCitJbnN0clF1ZXJ5QWxsb2MoaW50IGluc3RydW1l bnRfb3B0aW9ucykKK3sKKwlRdWVyeUluc3RydW1lbnRhdGlvbiAqaW5zdHI7CisKKwkvKgorCSAq IElmIG5lZWRlZCwgYWxsb2NhdGUgaW4gVG9wTWVtb3J5Q29udGV4dCBzbyB0aGF0IHRoZSBJbnN0 cnVtZW50YXRpb24KKwkgKiBzdXJ2aXZlcyB0cmFuc2FjdGlvbiBhYm9ydCDigJQgUmVzb3VyY2VP d25lciByZWxlYXNlIG5lZWRzIHRvIGFjY2VzcworCSAqIGl0LgorCSAqLworCWlmICgoaW5zdHJ1 bWVudF9vcHRpb25zICYgSU5TVFJVTUVOVF9CVUZGRVJTKSAhPSAwIHx8IChpbnN0cnVtZW50X29w dGlvbnMgJiBJTlNUUlVNRU5UX1dBTCkgIT0gMCkKKwkJaW5zdHIgPSBNZW1vcnlDb250ZXh0QWxs b2NaZXJvKFRvcE1lbW9yeUNvbnRleHQsIHNpemVvZihRdWVyeUluc3RydW1lbnRhdGlvbikpOwor CWVsc2UKKwkJaW5zdHIgPSBwYWxsb2MwKHNpemVvZihRdWVyeUluc3RydW1lbnRhdGlvbikpOwor CisJSW5zdHJJbml0T3B0aW9ucygmaW5zdHItPmluc3RyLCBpbnN0cnVtZW50X29wdGlvbnMpOwor CWRsaXN0X2luaXQoJmluc3RyLT51bmZpbmFsaXplZF9jaGlsZHJlbik7CisKKwlyZXR1cm4gaW5z dHI7Cit9CisKK3ZvaWQKK0luc3RyUXVlcnlTdGFydChRdWVyeUluc3RydW1lbnRhdGlvbiAqcWlu c3RyKQoreworCUluc3RyU3RhcnQoJnFpbnN0ci0+aW5zdHIpOworCisJaWYgKHFpbnN0ci0+aW5z dHIubmVlZF9idWZ1c2FnZSB8fCBxaW5zdHItPmluc3RyLm5lZWRfd2FsdXNhZ2UpCisJeworCQlB c3NlcnQoQ3VycmVudFJlc291cmNlT3duZXIgIT0gTlVMTCk7CisJCXFpbnN0ci0+b3duZXIgPSBD dXJyZW50UmVzb3VyY2VPd25lcjsKKworCQlSZXNvdXJjZU93bmVyRW5sYXJnZShxaW5zdHItPm93 bmVyKTsKKwkJUmVzb3VyY2VPd25lclJlbWVtYmVySW5zdHJ1bWVudGF0aW9uKHFpbnN0ci0+b3du ZXIsIHFpbnN0cik7CisJfQorfQorCit2b2lkCitJbnN0clF1ZXJ5U3RvcChRdWVyeUluc3RydW1l bnRhdGlvbiAqcWluc3RyKQoreworCUluc3RyU3RvcCgmcWluc3RyLT5pbnN0cik7CisKKwlpZiAo cWluc3RyLT5pbnN0ci5uZWVkX2J1ZnVzYWdlIHx8IHFpbnN0ci0+aW5zdHIubmVlZF93YWx1c2Fn ZSkKKwl7CisJCUFzc2VydChxaW5zdHItPm93bmVyICE9IE5VTEwpOworCQlSZXNvdXJjZU93bmVy Rm9yZ2V0SW5zdHJ1bWVudGF0aW9uKHFpbnN0ci0+b3duZXIsIHFpbnN0cik7CisJCXFpbnN0ci0+ b3duZXIgPSBOVUxMOworCX0KK30KKworUXVlcnlJbnN0cnVtZW50YXRpb24gKgorSW5zdHJRdWVy eVN0b3BGaW5hbGl6ZShRdWVyeUluc3RydW1lbnRhdGlvbiAqcWluc3RyKQoreworCVF1ZXJ5SW5z dHJ1bWVudGF0aW9uICpjb3B5OworCisJSW5zdHJTdG9wRmluYWxpemUoJnFpbnN0ci0+aW5zdHIp OworCisJaWYgKCFxaW5zdHItPmluc3RyLm5lZWRfYnVmdXNhZ2UgJiYgIXFpbnN0ci0+aW5zdHIu bmVlZF93YWx1c2FnZSkKKwkJcmV0dXJuIHFpbnN0cjsKKworCUFzc2VydChxaW5zdHItPm93bmVy ICE9IE5VTEwpOworCVJlc291cmNlT3duZXJGb3JnZXRJbnN0cnVtZW50YXRpb24ocWluc3RyLT5v d25lciwgcWluc3RyKTsKKwlxaW5zdHItPm93bmVyID0gTlVMTDsKKworCS8qCisJICogQ29weSB0 byB0aGUgY3VycmVudCBtZW1vcnkgY29udGV4dCBzbyB0aGUgY2FsbGVyIGRvZXNuJ3QgbmVlZCB0 bworCSAqIGV4cGxpY2l0bHkgZnJlZSB0aGUgVG9wTWVtb3J5Q29udGV4dCBhbGxvY2F0aW9uLgor CSAqLworCWNvcHkgPSBwYWxsb2Moc2l6ZW9mKFF1ZXJ5SW5zdHJ1bWVudGF0aW9uKSk7CisJbWVt Y3B5KGNvcHksIHFpbnN0ciwgc2l6ZW9mKFF1ZXJ5SW5zdHJ1bWVudGF0aW9uKSk7CisJcGZyZWUo cWluc3RyKTsKKwlyZXR1cm4gY29weTsKK30KKworLyoKKyAqIFJlZ2lzdGVyIGEgY2hpbGQgTm9k ZUluc3RydW1lbnRhdGlvbiBlbnRyeSBmb3IgYWJvcnQgcHJvY2Vzc2luZy4KKyAqCisgKiBPbiBh Ym9ydCwgUmVzT3duZXJSZWxlYXNlSW5zdHJ1bWVudGF0aW9uIHdpbGwgd2FsayB0aGUgcGFyZW50 J3MgbGlzdCB0bworICogcmVjb3ZlciBidWZmZXIvV0FMIGRhdGEgZnJvbSBlbnRyaWVzIHRoYXQg d2VyZSBuZXZlciBmaW5hbGl6ZWQsIGluIG9yZGVyIGZvcgorICogYWdncmVnYXRlIHRvdGFscyB0 byBiZSBhY2N1cmF0ZSBkZXNwaXRlIHRoZSBxdWVyeSBlcnJvcmluZyBvdXQuCisgKi8KK3ZvaWQK K0luc3RyUXVlcnlSZW1lbWJlck5vZGUoUXVlcnlJbnN0cnVtZW50YXRpb24gKnBhcmVudCwgTm9k ZUluc3RydW1lbnRhdGlvbiAqY2hpbGQpCit7CisJaWYgKGNoaWxkLT5pbnN0ci5uZWVkX2J1ZnVz YWdlIHx8IGNoaWxkLT5pbnN0ci5uZWVkX3dhbHVzYWdlKQorCQlkbGlzdF9wdXNoX2hlYWQoJnBh cmVudC0+dW5maW5hbGl6ZWRfY2hpbGRyZW4sICZjaGlsZC0+dW5maW5hbGl6ZWRfbm9kZSk7Cit9 CisKKy8qIHN0YXJ0IGluc3RydW1lbnRhdGlvbiBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0b3Igc3Rh cnR1cCAqLworUXVlcnlJbnN0cnVtZW50YXRpb24gKgorSW5zdHJTdGFydFBhcmFsbGVsUXVlcnko dm9pZCkKK3sKKwlRdWVyeUluc3RydW1lbnRhdGlvbiAqcWluc3RyID0gSW5zdHJRdWVyeUFsbG9j KElOU1RSVU1FTlRfQlVGRkVSUyB8IElOU1RSVU1FTlRfV0FMKTsKKworCUluc3RyUXVlcnlTdGFy dChxaW5zdHIpOworCXJldHVybiBxaW5zdHI7Cit9CisKKy8qIHJlcG9ydCB1c2FnZSBhZnRlciBw YXJhbGxlbCBleGVjdXRvciBzaHV0ZG93biAqLwordm9pZAorSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5 KFF1ZXJ5SW5zdHJ1bWVudGF0aW9uICpxaW5zdHIsIEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgV2Fs VXNhZ2UgKndhbHVzYWdlKQoreworCXFpbnN0ciA9IEluc3RyUXVlcnlTdG9wRmluYWxpemUocWlu c3RyKTsKKwltZW1jcHkoYnVmdXNhZ2UsICZxaW5zdHItPmluc3RyLmJ1ZnVzYWdlLCBzaXplb2Yo QnVmZmVyVXNhZ2UpKTsKKwltZW1jcHkod2FsdXNhZ2UsICZxaW5zdHItPmluc3RyLndhbHVzYWdl LCBzaXplb2YoV2FsVXNhZ2UpKTsKK30KKworLyoKKyAqIEFjY3VtdWxhdGUgd29yayBkb25lIGJ5 IHBhcmFsbGVsIHdvcmtlcnMgaW4gdGhlIGxlYWRlcidzIHN0YXRzLgorICoKKyAqIE5vdGUgdGhh dCB3aGF0IGdldHMgYWRkZWQgaGVyZSBlZmZlY3RpdmVseSBkZXBlbmRzIG9uIHdoZXRoZXIgcGVy LW5vZGUKKyAqIGluc3RydW1lbnRhdGlvbiBpcyBhY3RpdmUuIElmIGl0J3MgYWN0aXZlIHRoZSBw YXJhbGxlbCB3b3JrZXIgaW50ZW50aW9uYWxseQorICogc2tpcHMgRXhlY0ZpbmFsaXplTm9kZUlu c3RydW1lbnRhdGlvbiBvbiBleGVjdXRvciBzaHV0ZG93biwgYmVjYXVzZSBpdCB3b3VsZAorICog Y2F1c2UgZG91YmxlIGNvdW50aW5nLiBJbnN0ZWFkLCB0aGlzIG9ubHkgYWNjdW11bGF0ZXMgYW55 IGV4dHJhIGFjdGl2aXR5CisgKiBvdXRzaWRlIG9mIG5vZGVzLgorICoKKyAqIE90aGVyd2lzZSB0 aGlzIGlzIHJlc3BvbnNpYmxlIGZvciBtYWtpbmcgc3VyZSB0aGF0IHRoZSBjb21wbGV0ZSBxdWVy eQorICogYWN0aXZpdHkgaXMgYWNjdW11bGF0ZWQuCisgKi8KK3ZvaWQKK0luc3RyQWNjdW1QYXJh bGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdlKQorewor CUJ1ZmZlclVzYWdlQWRkKCZpbnN0cl9zdGFjay5jdXJyZW50LT5idWZ1c2FnZSwgYnVmdXNhZ2Up OworCVdhbFVzYWdlQWRkKCZpbnN0cl9zdGFjay5jdXJyZW50LT53YWx1c2FnZSwgd2FsdXNhZ2Up OworCisJV2FsVXNhZ2VBZGQoJnBnV2FsVXNhZ2UsIHdhbHVzYWdlKTsKIH0KIAogLyogTm9kZSBp bnN0cnVtZW50YXRpb24gaGFuZGxpbmcgKi8KQEAgLTk0LDcgKzMxOSwxOSBAQCBJbnN0clN0b3Ao SW5zdHJ1bWVudGF0aW9uICppbnN0cikKIE5vZGVJbnN0cnVtZW50YXRpb24gKgogSW5zdHJBbGxv Y05vZGUoaW50IGluc3RydW1lbnRfb3B0aW9ucywgYm9vbCBhc3luY19tb2RlKQogewotCU5vZGVJ bnN0cnVtZW50YXRpb24gKmluc3RyID0gcGFsbG9jKHNpemVvZihOb2RlSW5zdHJ1bWVudGF0aW9u KSk7CisJTm9kZUluc3RydW1lbnRhdGlvbiAqaW5zdHI7CisKKwkvKgorCSAqIElmIG5lZWRlZCwg YWxsb2NhdGUgaW4gYSBjb250ZXh0IHRoYXQgc3VwcG9ydHMgc3RhY2stYmFzZWQKKwkgKiBpbnN0 cnVtZW50YXRpb24gYWJvcnQgaGFuZGxpbmcuIFdlIGNhbiB1dGlsaXplIFRvcFRyYW5zYWN0aW9u Q29udGV4dAorCSAqIGluc3RlYWQgb2YgVG9wTWVtb3J5Q29udGV4dCBoZXJlIGJlY2F1c2Ugbm9k ZXMgZG9uJ3QgZ2V0IHVzZWQgZm9yCisJICogdXRpbGl0eSBjb21tYW5kcyB0aGF0IHJlc3RhcnQg dHJhbnNhY3Rpb25zLCB3aGljaCB3b3VsZCByZXF1aXJlIGEKKwkgKiBjb250ZXh0IHRoYXQgc3Vy dml2ZXMgbG9uZ2VyIChFWFBMQUlOIEFOQUxZWkUgaXMgZmluZSkuCisJICovCisJaWYgKChpbnN0 cnVtZW50X29wdGlvbnMgJiBJTlNUUlVNRU5UX0JVRkZFUlMpICE9IDAgfHwgKGluc3RydW1lbnRf b3B0aW9ucyAmIElOU1RSVU1FTlRfV0FMKSAhPSAwKQorCQlpbnN0ciA9IE1lbW9yeUNvbnRleHRB bGxvYyhUb3BUcmFuc2FjdGlvbkNvbnRleHQsIHNpemVvZihOb2RlSW5zdHJ1bWVudGF0aW9uKSk7 CisJZWxzZQorCQlpbnN0ciA9IHBhbGxvYyhzaXplb2YoTm9kZUluc3RydW1lbnRhdGlvbikpOwog CiAJSW5zdHJJbml0Tm9kZShpbnN0ciwgaW5zdHJ1bWVudF9vcHRpb25zKTsKIAlpbnN0ci0+YXN5 bmNfbW9kZSA9IGFzeW5jX21vZGU7CkBAIC0xMTcsNiArMzU0LDcgQEAgSW5zdHJTdGFydE5vZGUo Tm9kZUluc3RydW1lbnRhdGlvbiAqaW5zdHIpCiAJSW5zdHJTdGFydCgmaW5zdHItPmluc3RyKTsK IH0KIAorCiAvKiBFeGl0IGZyb20gYSBwbGFuIG5vZGUgKi8KIHZvaWQKIEluc3RyU3RvcE5vZGUo Tm9kZUluc3RydW1lbnRhdGlvbiAqaW5zdHIsIGRvdWJsZSBuVHVwbGVzKQpAQCAtMTQ2LDE0ICsz ODQsMTIgQEAgSW5zdHJTdG9wTm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91Ymxl IG5UdXBsZXMpCiAJCUlOU1RSX1RJTUVfU0VUX1pFUk8oaW5zdHItPmluc3RyLnN0YXJ0dGltZSk7 CiAJfQogCi0JLyogQWRkIGRlbHRhIG9mIGJ1ZmZlciB1c2FnZSBzaW5jZSBlbnRyeSB0byBub2Rl J3MgdG90YWxzICovCi0JaWYgKGluc3RyLT5pbnN0ci5uZWVkX2J1ZnVzYWdlKQotCQlCdWZmZXJV c2FnZUFjY3VtRGlmZigmaW5zdHItPmluc3RyLmJ1ZnVzYWdlLAotCQkJCQkJCSAmcGdCdWZmZXJV c2FnZSwgJmluc3RyLT5pbnN0ci5idWZ1c2FnZV9zdGFydCk7Ci0KLQlpZiAoaW5zdHItPmluc3Ry Lm5lZWRfd2FsdXNhZ2UpCi0JCVdhbFVzYWdlQWNjdW1EaWZmKCZpbnN0ci0+aW5zdHIud2FsdXNh Z2UsCi0JCQkJCQkgICZwZ1dhbFVzYWdlLCAmaW5zdHItPmluc3RyLndhbHVzYWdlX3N0YXJ0KTsK KwkvKgorCSAqIE9ubHkgcG9wIHRoZSBzdGFjaywgYWNjdW11bGF0aW9uIHJ1bnMgaW4KKwkgKiBF eGVjRmluYWxpemVOb2RlSW5zdHJ1bWVudGF0aW9uCisJICovCisJaWYgKGluc3RyLT5pbnN0ci5u ZWVkX2J1ZnVzYWdlIHx8IGluc3RyLT5pbnN0ci5uZWVkX3dhbHVzYWdlKQorCQlJbnN0clBvcFN0 YWNrKCZpbnN0ci0+aW5zdHIpOwogCiAJLyogSXMgdGhpcyB0aGUgZmlyc3QgdHVwbGUgb2YgdGhp cyBjeWNsZT8gKi8KIAlpZiAoIWluc3RyLT5ydW5uaW5nKQpAQCAtMTcyLDYgKzQwOCwzMSBAQCBJ bnN0clN0b3BOb2RlKE5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcykK IAl9CiB9CiAKK05vZGVJbnN0cnVtZW50YXRpb24gKgorSW5zdHJGaW5hbGl6ZU5vZGUoTm9kZUlu c3RydW1lbnRhdGlvbiAqaW5zdHIsIEluc3RydW1lbnRhdGlvbiAqcGFyZW50KQoreworCU5vZGVJ bnN0cnVtZW50YXRpb24gKmRzdDsKKworCS8qIElmIHdlIGRpZG4ndCB1c2Ugc3RhY2sgYmFzZWQg aW5zdHJ1bWVudGF0aW9uLCBub3RoaW5nIHRvIGJlIGRvbmUgKi8KKwlpZiAoIWluc3RyLT5pbnN0 ci5uZWVkX2J1ZnVzYWdlICYmICFpbnN0ci0+aW5zdHIubmVlZF93YWx1c2FnZSkKKwkJcmV0dXJu IGluc3RyOworCisJLyogQ29weSBpbnRvIHBlci1xdWVyeSBtZW1vcnkgY29udGV4dCAqLworCWRz dCA9IHBhbGxvYyhzaXplb2YoTm9kZUluc3RydW1lbnRhdGlvbikpOworCW1lbWNweShkc3QsIGlu c3RyLCBzaXplb2YoTm9kZUluc3RydW1lbnRhdGlvbikpOworCisJLyogQWNjdW11bGF0ZSBub2Rl J3MgYnVmZmVyL1dBTCB1c2FnZSB0byB0aGUgcGFyZW50ICovCisJSW5zdHJBY2N1bShwYXJlbnQs ICZkc3QtPmluc3RyKTsKKworCS8qIFVucmVnaXN0ZXIgZnJvbSBxdWVyeSdzIHVuZmluYWxpemVk IGxpc3QgYmVmb3JlIGZyZWVpbmcgKi8KKwlpZiAoaW5zdHItPmluc3RyLm5lZWRfYnVmdXNhZ2Ug fHwgaW5zdHItPmluc3RyLm5lZWRfd2FsdXNhZ2UpCisJCWRsaXN0X2RlbGV0ZSgmaW5zdHItPnVu ZmluYWxpemVkX25vZGUpOworCisJcGZyZWUoaW5zdHIpOworCisJcmV0dXJuIGRzdDsKK30KKwog LyogVXBkYXRlIHR1cGxlIGNvdW50ICovCiB2b2lkCiBJbnN0clVwZGF0ZVR1cGxlQ291bnQoTm9k ZUluc3RydW1lbnRhdGlvbiAqaW5zdHIsIGRvdWJsZSBuVHVwbGVzKQpAQCAtMTg4LDggKzQ0OSw4 IEBAIEluc3RyRW5kTG9vcChOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0cikKIAlpZiAoIWluc3Ry LT5ydW5uaW5nKQogCQlyZXR1cm47CiAKLQlpZiAoIUlOU1RSX1RJTUVfSVNfWkVSTyhpbnN0ci0+ aW5zdHIuc3RhcnR0aW1lKSkKLQkJZWxvZyhFUlJPUiwgIkluc3RyRW5kTG9vcCBjYWxsZWQgb24g cnVubmluZyBub2RlIik7CisJLyogRW5zdXJlIEluc3RyTm9kZVN0b3Agd2FzIGNhbGxlZCAqLwor CUFzc2VydChJTlNUUl9USU1FX0lTX1pFUk8oaW5zdHItPmluc3RyLnN0YXJ0dGltZSkpOwogCiAJ LyogQWNjdW11bGF0ZSBwZXItY3ljbGUgc3RhdGlzdGljcyBpbnRvIHRvdGFscyAqLwogCUlOU1RS X1RJTUVfQUREKGluc3RyLT5zdGFydHVwLCBpbnN0ci0+Zmlyc3R0dXBsZSk7CkBAIC0yNTksMzgg KzUyMCwyNyBAQCBJbnN0clN0YXJ0VHJpZ2dlcihUcmlnZ2VySW5zdHJ1bWVudGF0aW9uICp0Z2lu c3RyKQogdm9pZAogSW5zdHJTdG9wVHJpZ2dlcihUcmlnZ2VySW5zdHJ1bWVudGF0aW9uICp0Z2lu c3RyLCBpbnQgZmlyaW5ncykKIHsKKwkvKgorCSAqIFRoaXMgdHJpZ2dlciBtYXkgYmUgY2FsbGVk IGFnYWluLCBzbyB3ZSBkb24ndCBmaW5hbGl6ZSBpbnN0cnVtZW50YXRpb24KKwkgKiBoZXJlLiBB Y2N1bXVsYXRpb24gdG8gdGhlIHBhcmVudCBoYXBwZW5zIGF0IEV4ZWN1dG9yRmluaXNoIHRocm91 Z2gKKwkgKiBFeGVjRmluYWxpemVUcmlnZ2VySW5zdHJ1bWVudGF0aW9uLgorCSAqLwogCUluc3Ry U3RvcCgmdGdpbnN0ci0+aW5zdHIpOwogCXRnaW5zdHItPmZpcmluZ3MgKz0gZmlyaW5nczsKIH0K IAotLyogbm90ZSBjdXJyZW50IHZhbHVlcyBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0b3Igc3RhcnR1 cCAqLwogdm9pZAotSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkodm9pZCkKK0luc3RyQWNjdW0oSW5z dHJ1bWVudGF0aW9uICpkc3QsIEluc3RydW1lbnRhdGlvbiAqYWRkKQogewotCXNhdmVfcGdCdWZm ZXJVc2FnZSA9IHBnQnVmZmVyVXNhZ2U7Ci0Jc2F2ZV9wZ1dhbFVzYWdlID0gcGdXYWxVc2FnZTsK LX0KKwlBc3NlcnQoZHN0ICE9IE5VTEwpOworCUFzc2VydChhZGQgIT0gTlVMTCk7CiAKLS8qIHJl cG9ydCB1c2FnZSBhZnRlciBwYXJhbGxlbCBleGVjdXRvciBzaHV0ZG93biAqLwotdm9pZAotSW5z dHJFbmRQYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgV2FsVXNhZ2UgKndhbHVz YWdlKQotewotCW1lbXNldChidWZ1c2FnZSwgMCwgc2l6ZW9mKEJ1ZmZlclVzYWdlKSk7Ci0JQnVm ZmVyVXNhZ2VBY2N1bURpZmYoYnVmdXNhZ2UsICZwZ0J1ZmZlclVzYWdlLCAmc2F2ZV9wZ0J1ZmZl clVzYWdlKTsKLQltZW1zZXQod2FsdXNhZ2UsIDAsIHNpemVvZihXYWxVc2FnZSkpOwotCVdhbFVz YWdlQWNjdW1EaWZmKHdhbHVzYWdlLCAmcGdXYWxVc2FnZSwgJnNhdmVfcGdXYWxVc2FnZSk7Ci19 Ci0KLS8qIGFjY3VtdWxhdGUgd29yayBkb25lIGJ5IHdvcmtlcnMgaW4gbGVhZGVyJ3Mgc3RhdHMg Ki8KLXZvaWQKLUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwg V2FsVXNhZ2UgKndhbHVzYWdlKQotewotCUJ1ZmZlclVzYWdlQWRkKCZwZ0J1ZmZlclVzYWdlLCBi dWZ1c2FnZSk7Ci0JV2FsVXNhZ2VBZGQoJnBnV2FsVXNhZ2UsIHdhbHVzYWdlKTsKKwlCdWZmZXJV c2FnZUFkZCgmZHN0LT5idWZ1c2FnZSwgJmFkZC0+YnVmdXNhZ2UpOworCVdhbFVzYWdlQWRkKCZk c3QtPndhbHVzYWdlLCAmYWRkLT53YWx1c2FnZSk7CiB9CiAKIC8qIGRzdCArPSBhZGQgKi8KLXN0 YXRpYyB2b2lkCit2b2lkCiBCdWZmZXJVc2FnZUFkZChCdWZmZXJVc2FnZSAqZHN0LCBjb25zdCBC dWZmZXJVc2FnZSAqYWRkKQogewogCWRzdC0+c2hhcmVkX2Jsa3NfaGl0ICs9IGFkZC0+c2hhcmVk X2Jsa3NfaGl0OwpAQCAtMzExLDM5ICs1NjEsOSBAQCBCdWZmZXJVc2FnZUFkZChCdWZmZXJVc2Fn ZSAqZHN0LCBjb25zdCBCdWZmZXJVc2FnZSAqYWRkKQogCUlOU1RSX1RJTUVfQUREKGRzdC0+dGVt cF9ibGtfd3JpdGVfdGltZSwgYWRkLT50ZW1wX2Jsa193cml0ZV90aW1lKTsKIH0KIAotLyogZHN0 ICs9IGFkZCAtIHN1YiAqLworLyogZHN0ICs9IGFkZCAqLwogdm9pZAotQnVmZmVyVXNhZ2VBY2N1 bURpZmYoQnVmZmVyVXNhZ2UgKmRzdCwKLQkJCQkJIGNvbnN0IEJ1ZmZlclVzYWdlICphZGQsCi0J CQkJCSBjb25zdCBCdWZmZXJVc2FnZSAqc3ViKQotewotCWRzdC0+c2hhcmVkX2Jsa3NfaGl0ICs9 IGFkZC0+c2hhcmVkX2Jsa3NfaGl0IC0gc3ViLT5zaGFyZWRfYmxrc19oaXQ7Ci0JZHN0LT5zaGFy ZWRfYmxrc19yZWFkICs9IGFkZC0+c2hhcmVkX2Jsa3NfcmVhZCAtIHN1Yi0+c2hhcmVkX2Jsa3Nf cmVhZDsKLQlkc3QtPnNoYXJlZF9ibGtzX2RpcnRpZWQgKz0gYWRkLT5zaGFyZWRfYmxrc19kaXJ0 aWVkIC0gc3ViLT5zaGFyZWRfYmxrc19kaXJ0aWVkOwotCWRzdC0+c2hhcmVkX2Jsa3Nfd3JpdHRl biArPSBhZGQtPnNoYXJlZF9ibGtzX3dyaXR0ZW4gLSBzdWItPnNoYXJlZF9ibGtzX3dyaXR0ZW47 Ci0JZHN0LT5sb2NhbF9ibGtzX2hpdCArPSBhZGQtPmxvY2FsX2Jsa3NfaGl0IC0gc3ViLT5sb2Nh bF9ibGtzX2hpdDsKLQlkc3QtPmxvY2FsX2Jsa3NfcmVhZCArPSBhZGQtPmxvY2FsX2Jsa3NfcmVh ZCAtIHN1Yi0+bG9jYWxfYmxrc19yZWFkOwotCWRzdC0+bG9jYWxfYmxrc19kaXJ0aWVkICs9IGFk ZC0+bG9jYWxfYmxrc19kaXJ0aWVkIC0gc3ViLT5sb2NhbF9ibGtzX2RpcnRpZWQ7Ci0JZHN0LT5s b2NhbF9ibGtzX3dyaXR0ZW4gKz0gYWRkLT5sb2NhbF9ibGtzX3dyaXR0ZW4gLSBzdWItPmxvY2Fs X2Jsa3Nfd3JpdHRlbjsKLQlkc3QtPnRlbXBfYmxrc19yZWFkICs9IGFkZC0+dGVtcF9ibGtzX3Jl YWQgLSBzdWItPnRlbXBfYmxrc19yZWFkOwotCWRzdC0+dGVtcF9ibGtzX3dyaXR0ZW4gKz0gYWRk LT50ZW1wX2Jsa3Nfd3JpdHRlbiAtIHN1Yi0+dGVtcF9ibGtzX3dyaXR0ZW47Ci0JSU5TVFJfVElN RV9BQ0NVTV9ESUZGKGRzdC0+c2hhcmVkX2Jsa19yZWFkX3RpbWUsCi0JCQkJCQkgIGFkZC0+c2hh cmVkX2Jsa19yZWFkX3RpbWUsIHN1Yi0+c2hhcmVkX2Jsa19yZWFkX3RpbWUpOwotCUlOU1RSX1RJ TUVfQUNDVU1fRElGRihkc3QtPnNoYXJlZF9ibGtfd3JpdGVfdGltZSwKLQkJCQkJCSAgYWRkLT5z aGFyZWRfYmxrX3dyaXRlX3RpbWUsIHN1Yi0+c2hhcmVkX2Jsa193cml0ZV90aW1lKTsKLQlJTlNU Ul9USU1FX0FDQ1VNX0RJRkYoZHN0LT5sb2NhbF9ibGtfcmVhZF90aW1lLAotCQkJCQkJICBhZGQt PmxvY2FsX2Jsa19yZWFkX3RpbWUsIHN1Yi0+bG9jYWxfYmxrX3JlYWRfdGltZSk7Ci0JSU5TVFJf VElNRV9BQ0NVTV9ESUZGKGRzdC0+bG9jYWxfYmxrX3dyaXRlX3RpbWUsCi0JCQkJCQkgIGFkZC0+ bG9jYWxfYmxrX3dyaXRlX3RpbWUsIHN1Yi0+bG9jYWxfYmxrX3dyaXRlX3RpbWUpOwotCUlOU1RS X1RJTUVfQUNDVU1fRElGRihkc3QtPnRlbXBfYmxrX3JlYWRfdGltZSwKLQkJCQkJCSAgYWRkLT50 ZW1wX2Jsa19yZWFkX3RpbWUsIHN1Yi0+dGVtcF9ibGtfcmVhZF90aW1lKTsKLQlJTlNUUl9USU1F X0FDQ1VNX0RJRkYoZHN0LT50ZW1wX2Jsa193cml0ZV90aW1lLAotCQkJCQkJICBhZGQtPnRlbXBf YmxrX3dyaXRlX3RpbWUsIHN1Yi0+dGVtcF9ibGtfd3JpdGVfdGltZSk7Ci19Ci0KLS8qIGhlbHBl ciBmdW5jdGlvbnMgZm9yIFdBTCB1c2FnZSBhY2N1bXVsYXRpb24gKi8KLXN0YXRpYyB2b2lkCi1X YWxVc2FnZUFkZChXYWxVc2FnZSAqZHN0LCBXYWxVc2FnZSAqYWRkKQorV2FsVXNhZ2VBZGQoV2Fs VXNhZ2UgKmRzdCwgY29uc3QgV2FsVXNhZ2UgKmFkZCkKIHsKIAlkc3QtPndhbF9ieXRlcyArPSBh ZGQtPndhbF9ieXRlczsKIAlkc3QtPndhbF9yZWNvcmRzICs9IGFkZC0+d2FsX3JlY29yZHM7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYyBiL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCmluZGV4IGRmYTM3ZTVlZDQ0Li40MWEwYmFhMzQ0 OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKKysrIGIv c3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKQEAgLTEyNjksOSArMTI2OSw5IEBA IFBpbkJ1ZmZlckZvckJsb2NrKFJlbGF0aW9uIHJlbCwKIAlpZiAocmVsKQogCXsKIAkJLyoKLQkJ ICogV2hpbGUgcGdCdWZmZXJVc2FnZSdzICJyZWFkIiBjb3VudGVyIGlzbid0IGJ1bXBlZCB1bmxl c3Mgd2UgcmVhY2gKLQkJICogV2FpdFJlYWRCdWZmZXJzKCkgKHNvLCBub3QgZm9yIGhpdHMsIGFu ZCBub3QgZm9yIGJ1ZmZlcnMgdGhhdCBhcmUKLQkJICogemVyb2VkIGluc3RlYWQpLCB0aGUgcGVy LXJlbGF0aW9uIHN0YXRzIGFsd2F5cyBjb3VudCB0aGVtLgorCQkgKiBXaGlsZSB0aGUgY3VycmVu dCBidWZmZXIgdXNhZ2UgInJlYWQiIGNvdW50ZXIgaXNuJ3QgYnVtcGVkIHVubGVzcworCQkgKiB3 ZSByZWFjaCBXYWl0UmVhZEJ1ZmZlcnMoKSAoc28sIG5vdCBmb3IgaGl0cywgYW5kIG5vdCBmb3Ig YnVmZmVycworCQkgKiB0aGF0IGFyZSB6ZXJvZWQgaW5zdGVhZCksIHRoZSBwZXItcmVsYXRpb24g c3RhdHMgYWx3YXlzIGNvdW50IHRoZW0uCiAJCSAqLwogCQlwZ3N0YXRfY291bnRfYnVmZmVyX3Jl YWQocmVsKTsKIAkJaWYgKCpmb3VuZFB0cikKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3Bnc3RhdF9pby5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0 X2lvLmMKaW5kZXggOWU3YTg4ZWMwZDAuLjYwNDAwZjBjODFmIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfaW8uYworKysgYi9zcmMvYmFja2VuZC91dGlscy9h Y3Rpdml0eS9wZ3N0YXRfaW8uYwpAQCAtMTE0LDkgKzExNCw5IEBAIHBnc3RhdF9wcmVwYXJlX2lv X3RpbWUoYm9vbCB0cmFja19pb19ndWMpCiAgKiBwZ19zdGF0X2RhdGFiYXNlIG9ubHkgY291bnRz IGJsb2NrIHJlYWQgYW5kIHdyaXRlIHRpbWVzLCB0aGVzZSBhcmUgZG9uZSBmb3IKICAqIElPT1Bf UkVBRCwgSU9PUF9XUklURSBhbmQgSU9PUF9FWFRFTkQuCiAgKgotICogcGdCdWZmZXJVc2FnZSBp cyB1c2VkIGZvciBFWFBMQUlOLiAgcGdCdWZmZXJVc2FnZSBoYXMgd3JpdGUgYW5kIHJlYWQgc3Rh dHMKLSAqIGZvciBzaGFyZWQsIGxvY2FsIGFuZCB0ZW1wb3JhcnkgYmxvY2tzLiAgcGdfc3RhdF9p byBkb2VzIG5vdCB0cmFjayB0aGUKLSAqIGFjdGl2aXR5IG9mIHRlbXBvcmFyeSBibG9ja3MsIHNv IHRoZXNlIGFyZSBpZ25vcmVkIGhlcmUuCisgKiBFeGVjdXRvciBpbnN0cnVtZW50YXRpb24gaXMg dXNlZCBmb3IgRVhQTEFJTi4gQnVmZmVyIHVzYWdlIHRyYWNrZWQgdGhlcmUgaGFzCisgKiB3cml0 ZSBhbmQgcmVhZCBzdGF0cyBmb3Igc2hhcmVkLCBsb2NhbCBhbmQgdGVtcG9yYXJ5IGJsb2Nrcy4g cGdfc3RhdF9pbworICogZG9lcyBub3QgdHJhY2sgdGhlIGFjdGl2aXR5IG9mIHRlbXBvcmFyeSBi bG9ja3MsIHNvIHRoZXNlIGFyZSBpZ25vcmVkIGhlcmUuCiAgKi8KIHZvaWQKIHBnc3RhdF9jb3Vu dF9pb19vcF90aW1lKElPT2JqZWN0IGlvX29iamVjdCwgSU9Db250ZXh0IGlvX2NvbnRleHQsIElP T3AgaW9fb3AsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjZGVzYy5oIGIv c3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaAppbmRleCBkM2E1NzI0Mjg0NC4uMzQwMDI5 YTIwMzQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNkZXNjLmgKKysrIGIv c3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaApAQCAtNTEsOCArNTEsOCBAQCB0eXBlZGVm IHN0cnVjdCBRdWVyeURlc2MKIAkvKiBUaGlzIGZpZWxkIGlzIHNldCBieSBFeGVjdXRlUGxhbiAq LwogCWJvb2wJCWFscmVhZHlfZXhlY3V0ZWQ7CS8qIHRydWUgaWYgcHJldmlvdXNseSBleGVjdXRl ZCAqLwogCi0JLyogVGhpcyBpcyBhbHdheXMgc2V0IE5VTEwgYnkgdGhlIGNvcmUgc3lzdGVtLCBi dXQgcGx1Z2lucyBjYW4gY2hhbmdlIGl0ICovCi0Jc3RydWN0IEluc3RydW1lbnRhdGlvbiAqdG90 YWx0aW1lOwkvKiB0b3RhbCB0aW1lIHNwZW50IGluIEV4ZWN1dG9yUnVuICovCisJLyogVGhpcyBm aWVsZCBpcyBzZXQgYnkgRXhlY3V0b3JSdW4sIG9yIHBsdWdpbnMgKi8KKwlzdHJ1Y3QgUXVlcnlJ bnN0cnVtZW50YXRpb24gKnRvdGFsdGltZTsgLyogdG90YWwgdGltZSBzcGVudCBpbiBFeGVjdXRv clJ1biAqLwogfSBRdWVyeURlc2M7CiAKIC8qIGluIHBxdWVyeS5jICovCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y3V0b3IuaAppbmRleCA4MmM0NDJkMjNmOC4uYjkwMmNmY2JlNmUgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y3V0b3IuaApAQCAtMzAwLDYgKzMwMCw4IEBAIGV4dGVybiB2b2lkIEV4ZWNTZXRFeGVjUHJvY05v ZGUoUGxhblN0YXRlICpub2RlLCBFeGVjUHJvY05vZGVNdGQgZnVuY3Rpb24pOwogZXh0ZXJuIE5v ZGUgKk11bHRpRXhlY1Byb2NOb2RlKFBsYW5TdGF0ZSAqbm9kZSk7CiBleHRlcm4gdm9pZCBFeGVj RW5kTm9kZShQbGFuU3RhdGUgKm5vZGUpOwogZXh0ZXJuIHZvaWQgRXhlY1NodXRkb3duTm9kZShQ bGFuU3RhdGUgKm5vZGUpOworZXh0ZXJuIHZvaWQgRXhlY1JlbWVtYmVyTm9kZUluc3RydW1lbnRh dGlvbihQbGFuU3RhdGUgKm5vZGUsIFF1ZXJ5SW5zdHJ1bWVudGF0aW9uICpwYXJlbnQpOworZXh0 ZXJuIHZvaWQgRXhlY0ZpbmFsaXplTm9kZUluc3RydW1lbnRhdGlvbihQbGFuU3RhdGUgKm5vZGUp OwogZXh0ZXJuIHZvaWQgRXhlY1NldFR1cGxlQm91bmQoaW50NjQgdHVwbGVzX25lZWRlZCwgUGxh blN0YXRlICpjaGlsZF9ub2RlKTsKIAogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRv ci9pbnN0cnVtZW50LmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmgKaW5kZXgg MTEzOWJlODMzM2UuLmE1ZTQ4ZDhjYzQ1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRv ci9pbnN0cnVtZW50LmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oCkBA IC0xMyw2ICsxMyw3IEBACiAjaWZuZGVmIElOU1RSVU1FTlRfSAogI2RlZmluZSBJTlNUUlVNRU5U X0gKIAorI2luY2x1ZGUgImxpYi9pbGlzdC5oIgogI2luY2x1ZGUgInBvcnRhYmlsaXR5L2luc3Ry X3RpbWUuaCIKIAogCkBAIC02OCwxMCArNjksMjIgQEAgdHlwZWRlZiBlbnVtIEluc3RydW1lbnRP cHRpb24KIH0gSW5zdHJ1bWVudE9wdGlvbjsKIAogLyoKLSAqIEdlbmVyYWwgcHVycG9zZSBpbnN0 cnVtZW50YXRpb24gdGhhdCBjYW4gY2FwdHVyZSB0aW1lIGFuZCBXQUwvYnVmZmVyIHVzYWdlCisg KiBJbnN0cnVtZW50YXRpb24gYmFzZSBjbGFzcyBmb3IgY2FwdHVyaW5nIHRpbWUgYW5kIFdBTC9i dWZmZXIgdXNhZ2UKICAqCi0gKiBJbml0aWFsaXplZCB0aHJvdWdoIEluc3RyQWxsb2MsIGZvbGxv d2VkIGJ5IG9uZSBvciBtb3JlIGNhbGxzIHRvIGEgcGFpciBvZgotICogSW5zdHJTdGFydC9JbnN0 clN0b3AgKGFjdGl2aXR5IGlzIG1lYXN1cmVkIGluYmV0d2VlbikuCisgKiBJZiB1c2VkIGRpcmVj dGx5OgorICogLSBBbGxvY2F0ZSBvbiB0aGUgc3RhY2sgYW5kIHplcm8gaW5pdGlhbGl6ZSB0aGUg c3RydWN0CisgKiAtIENhbGwgSW5zdHJJbml0T3B0aW9ucyB0byBzZXQgaW5zdHJ1bWVudGF0aW9u IG9wdGlvbnMKKyAqIC0gQ2FsbCBJbnN0clN0YXJ0IGJlZm9yZSB0aGUgYWN0aXZpdHkgeW91IHdh bnQgdG8gbWVhc3VyZQorICogLSBDYWxsIEluc3RyU3RvcCAvIEluc3RyU3RvcEZpbmFsaXplIGFm dGVyIHRoZSBhY3Rpdml0eSB0byBjYXB0dXJlIHRvdGFscworICoKKyAqIEluc3RyU3RhcnQvSW5z dHJTdG9wIG1heSBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMuIFRoZSBsYXN0IHN0b3AgY2FsbCBt dXN0CisgKiBiZSB0byBJbnN0clN0b3BGaW5hbGl6ZSB0byBlbnN1cmUgcGFyZW50IHN0YWNrIGVu dHJpZXMgZ2V0IHRoZSBhY2N1bXVsYXRlZAorICogdG90YWxzLiBJZiB0aGVyZSBpcyByaXNrIG9m IHRyYW5zYWN0aW9uIGFib3J0cyB5b3UgbXVzdCBjYWxsCisgKiBJbnN0clN0b3BGaW5hbGl6ZSBp biBhIFBHX1RSWS9QR19GSU5BTExZIGJsb2NrIHRvIGF2b2lkIGNvcnJ1cHRpbmcgdGhlCisgKiBp bnN0cnVtZW50YXRpb24gc3RhY2suCisgKgorICogSW4gYSBxdWVyeSBjb250ZXh0IHVzZSBRdWVy eUluc3RydW1lbnRhdGlvbiBpbnN0ZWFkLCB3aGljaCBoYW5kbGVzIGFib3J0cworICogdXNpbmcg dGhlIHJlc291cmNlIG93bmVyIGxvZ2ljLgogICovCiB0eXBlZGVmIHN0cnVjdCBJbnN0cnVtZW50 YXRpb24KIHsKQEAgLTgxLDE2ICs5NCw1MiBAQCB0eXBlZGVmIHN0cnVjdCBJbnN0cnVtZW50YXRp b24KIAlib29sCQluZWVkX3dhbHVzYWdlOwkvKiB0cnVlIGlmIHdlIG5lZWQgV0FMIHVzYWdlIGRh dGEgKi8KIAkvKiBJbnRlcm5hbCBzdGF0ZSBrZWVwaW5nOiAqLwogCWluc3RyX3RpbWUJc3RhcnR0 aW1lOwkJLyogc3RhcnQgdGltZSBvZiBsYXN0IEluc3RyU3RhcnQgKi8KLQlCdWZmZXJVc2FnZSBi dWZ1c2FnZV9zdGFydDsgLyogYnVmZmVyIHVzYWdlIGF0IHN0YXJ0ICovCi0JV2FsVXNhZ2UJd2Fs dXNhZ2Vfc3RhcnQ7IC8qIFdBTCB1c2FnZSBhdCBzdGFydCAqLwogCS8qIEFjY3VtdWxhdGVkIHN0 YXRpc3RpY3M6ICovCiAJaW5zdHJfdGltZQl0b3RhbDsJCQkvKiB0b3RhbCBydW50aW1lICovCiAJ QnVmZmVyVXNhZ2UgYnVmdXNhZ2U7CQkvKiB0b3RhbCBidWZmZXIgdXNhZ2UgKi8KIAlXYWxVc2Fn ZQl3YWx1c2FnZTsJCS8qIHRvdGFsIFdBTCB1c2FnZSAqLwogfSBJbnN0cnVtZW50YXRpb247CiAK Ky8qCisgKiBRdWVyeS1yZWxhdGVkIGluc3RydW1lbnRhdGlvbiB0cmFja2luZy4KKyAqCisgKiBV c2FnZToKKyAqIC0gQWxsb2NhdGUgb24gdGhlIGhlYXAgdXNpbmcgSW5zdHJRdWVyeUFsbG9jIChy ZXF1aXJlZCBmb3IgYWJvcnQgaGFuZGxpbmcpCisgKiAtIENhbGwgSW5zdHJRdWVyeVN0YXJ0IGJl Zm9yZSB0aGUgYWN0aXZpdHkgeW91IHdhbnQgdG8gbWVhc3VyZQorICogLSBDYWxsIEluc3RyUXVl cnlTdG9wIC8gSW5zdHJRdWVyeVN0b3BGaW5hbGl6ZSBhZnRlcndhcmRzIHRvIGNhcHR1cmUgdG90 YWxzCisgKgorICogSW5zdHJRdWVyeVN0YXJ0L0luc3RyUXVlcnlTdG9wIG1heSBiZSBjYWxsZWQg bXVsdGlwbGUgdGltZXMuIFRoZSBsYXN0IHN0b3AKKyAqIGNhbGwgbXVzdCBiZSB0byBJbnN0clF1 ZXJ5U3RvcEZpbmFsaXplIHRvIGVuc3VyZSBwYXJlbnQgc3RhY2sgZW50cmllcyBnZXQKKyAqIHRo ZSBhY2N1bXVsYXRlZCB0b3RhbHMuCisgKgorICogVXNlcyByZXNvdXJjZSBvd25lciBtZWNoYW5p c20gZm9yIGhhbmRsaW5nIGFib3J0cywgYXMgc3VjaCwgdGhlIGNhbGxlcgorICogKm11c3QqIG5v dCBleGl0IG91dCBvZiB0aGUgdG9wIGxldmVsIHRyYW5zYWN0aW9uIGFmdGVyIGhhdmluZyBjYWxs ZWQKKyAqIEluc3RyUXVlcnlTdGFydCwgd2l0aG91dCBmaXJzdCBjYWxsaW5nIEluc3RyUXVlcnlT dG9wIG9yCisgKiBJbnN0clF1ZXJ5U3RvcEZpbmFsaXplLiBJbiB0aGUgY2FzZSBvZiBhIHRyYW5z YWN0aW9uIGFib3J0LCBsb2dpYyBlcXVpdmFsZW50CisgKiB0byBJbnN0clF1ZXJ5U3RvcEZpbmFs aXplIHdpbGwgYmUgY2FsbGVkIGF1dG9tYXRpY2FsbHkuCisgKi8KK3N0cnVjdCBSZXNvdXJjZU93 bmVyRGF0YTsKK3R5cGVkZWYgc3RydWN0IFF1ZXJ5SW5zdHJ1bWVudGF0aW9uCit7CisJSW5zdHJ1 bWVudGF0aW9uIGluc3RyOworCisJLyogUmVzb3VyY2Ugb3duZXIgdXNlZCBmb3IgY2xlYW51cCBm b3IgYWJvcnRzIGJldHdlZW4gSW5zdHJTdGFydC9JbnN0clN0b3AgKi8KKwlzdHJ1Y3QgUmVzb3Vy Y2VPd25lckRhdGEgKm93bmVyOworCisJLyoKKwkgKiBOb2RlSW5zdHJ1bWVudGF0aW9uIGNoaWxk IGVudHJpZXMgdGhhdCBuZWVkIHRvIGJlIGNsZWFuZWQgdXAgb24gYWJvcnQsCisJICogc2luY2Ug dGhleSBhcmUgbm90IHJlZ2lzdGVyZWQgYXMgYSByZXNvdXJjZSBvd25lciB0aGVtc2VsdmVzLgor CSAqLworCWRsaXN0X2hlYWQJdW5maW5hbGl6ZWRfY2hpbGRyZW47CS8qIGhlYWQgb2YgdW5maW5h bGl6ZWQgY2hpbGRyZW4gbGlzdCAqLworfSBRdWVyeUluc3RydW1lbnRhdGlvbjsKKwogLyoKICAq IFNwZWNpYWxpemVkIGluc3RydW1lbnRhdGlvbiBmb3IgcGVyLW5vZGUgZXhlY3V0aW9uIHN0YXRp c3RpY3MKKyAqCisgKiBSZWxpZXMgb24gYW4gb3V0ZXIgUXVlcnlJbnN0cnVtZW50YXRpb24gaGF2 aW5nIGJlZW4gc2V0IHVwIHRvIGhhbmRsZSB0aGUKKyAqIHN0YWNrIHVzZWQgZm9yIFdBTC9idWZm ZXIgdXNhZ2Ugc3RhdGlzdGljcywgYW5kIHJlbGllcyBvbiBpdCBmb3IgbWFuYWdpbmcKKyAqIGFi b3J0cy4gU29sZWx5IGludGVuZGVkIGZvciB0aGUgZXhlY3V0b3IgYW5kIGFueW9uZSByZXBvcnRp bmcgYWJvdXQgaXRzCisgKiBhY3Rpdml0aWVzIChlLmcuIEVYUExBSU4gQU5BTFlaRSkuCiAgKi8K IHR5cGVkZWYgc3RydWN0IE5vZGVJbnN0cnVtZW50YXRpb24KIHsKQEAgLTEwOSw4ICsxNTgsMTUg QEAgdHlwZWRlZiBzdHJ1Y3QgTm9kZUluc3RydW1lbnRhdGlvbgogCWRvdWJsZQkJbmxvb3BzOwkJ CS8qICMgb2YgcnVuIGN5Y2xlcyBmb3IgdGhpcyBub2RlICovCiAJZG91YmxlCQluZmlsdGVyZWQx OwkJLyogIyBvZiB0dXBsZXMgcmVtb3ZlZCBieSBzY2FucXVhbCBvciBqb2lucXVhbCAqLwogCWRv dWJsZQkJbmZpbHRlcmVkMjsJCS8qICMgb2YgdHVwbGVzIHJlbW92ZWQgYnkgIm90aGVyIiBxdWFs cyAqLworCisJLyogQWJvcnQgaGFuZGxpbmcgKi8KKwlkbGlzdF9ub2RlCXVuZmluYWxpemVkX25v ZGU7CS8qIG5vZGUgaW4gcGFyZW50J3MgdW5maW5hbGl6ZWQgbGlzdCAqLwogfSBOb2RlSW5zdHJ1 bWVudGF0aW9uOwogCisvKgorICogQ2FyZSBtdXN0IGJlIHRha2VuIHdpdGggYW55IHBvaW50ZXJz IGNvbnRhaW5lZCB3aXRoaW4gdGhpcyBzdHJ1Y3QsIGFzIHRoaXMKKyAqIGdldHMgY29waWVkIGFj cm9zcyBwcm9jZXNzZXMgZHVyaW5nIHBhcmFsbGVsIHF1ZXJ5IGV4ZWN1dGlvbi4KKyAqLwogdHlw ZWRlZiBzdHJ1Y3QgV29ya2VyTm9kZUluc3RydW1lbnRhdGlvbgogewogCWludAkJCW51bV93b3Jr ZXJzOwkvKiAjIG9mIHN0cnVjdHVyZXMgdGhhdCBmb2xsb3cgKi8KQEAgLTEyNCwxOSArMTgwLDEx MCBAQCB0eXBlZGVmIHN0cnVjdCBUcmlnZ2VySW5zdHJ1bWVudGF0aW9uCiAJCQkJCQkJCSAqIHdh cyBmaXJlZCAqLwogfSBUcmlnZ2VySW5zdHJ1bWVudGF0aW9uOwogCi1leHRlcm4gUEdETExJTVBP UlQgQnVmZmVyVXNhZ2UgcGdCdWZmZXJVc2FnZTsKKy8qCisgKiBEeW5hbWljIGFycmF5LWJhc2Vk IHN0YWNrIGZvciB0cmFja2luZyBjdXJyZW50IFdBTC9idWZmZXIgdXNhZ2UgY29udGV4dC4KKyAq CisgKiBXaGVuIHRoZSBzdGFjayBpcyBlbXB0eSwgJ2N1cnJlbnQnIHBvaW50cyB0byBpbnN0cl90 b3Agd2hpY2ggYWNjdW11bGF0ZXMKKyAqIHNlc3Npb24tbGV2ZWwgdG90YWxzLgorICovCit0eXBl ZGVmIHN0cnVjdCBJbnN0clN0YWNrU3RhdGUKK3sKKwlpbnQJCQlzdGFja19zcGFjZTsJLyogYWxs b2NhdGVkIGNhcGFjaXR5IG9mIGVudHJpZXMgYXJyYXkgKi8KKwlpbnQJCQlzdGFja19zaXplOwkJ LyogY3VycmVudCBudW1iZXIgb2YgZW50cmllcyAqLworCisJSW5zdHJ1bWVudGF0aW9uICoqZW50 cmllczsJLyogZHluYW1pYyBhcnJheSBvZiBwb2ludGVycyAqLworCUluc3RydW1lbnRhdGlvbiAq Y3VycmVudDsJLyogdG9wIG9mIHN0YWNrLCBvciAmaW5zdHJfdG9wIHdoZW4gZW1wdHkgKi8KK30g SW5zdHJTdGFja1N0YXRlOworCiBleHRlcm4gUEdETExJTVBPUlQgV2FsVXNhZ2UgcGdXYWxVc2Fn ZTsKIAotZXh0ZXJuIEluc3RydW1lbnRhdGlvbiAqSW5zdHJBbGxvYyhpbnQgaW5zdHJ1bWVudF9v cHRpb25zKTsKKy8qCisgKiBUaGUgdG9wIGluc3RydW1lbnRhdGlvbiByZXByZXNlbnRzIGEgcnVu bmluZyB0b3RhbCBvZiB0aGUgY3VycmVudCBiYWNrZW5kCisgKiBXQUwvYnVmZmVyIHVzYWdlIGlu Zm9ybWF0aW9uLiBUaGlzIHdpbGwgbm90IGJlIHVwZGF0ZWQgaW1tZWRpYXRlbHksIGJ1dAorICog cmF0aGVyIHdoZW4gdGhlIGN1cnJlbnQgc3RhY2sgZW50cnkgZ2V0cyBhY2N1bXVsYXRlZCB3aGlj aCB0eXBpY2FsbHkgaGFwcGVucworICogYXQgcXVlcnkgZW5kLgorICoKKyAqIENhcmUgbXVzdCBi ZSB0YWtlbiB3aGVuIHV0aWxpemluZyB0aGlzIGluIHRoZSBwYXJhbGxlbCB3b3JrZXIgY29udGV4 dDoKKyAqIFBhcmFsbGVsIHdvcmtlcnMgd2lsbCByZXBvcnQgYmFjayB0aGVpciBpbnN0cnVtZW50 YXRpb24gdG8gdGhlIGNhbGxlciwKKyAqIGFuZCB0aGlzIGdldHMgYWRkZWQgdG8gdGhlIGNhbGxl cidzIHN0YWNrLiBJZiB0aGlzIHdlcmUgdG8gYmUgdXNlZCBpbiB0aGUKKyAqIHNoYXJlZCBtZW1v cnkgc3RhdHMgaW5mcmFzdHJ1Y3R1cmUgaXQgd291bGQgbmVlZCB0byBiZSBza2lwcGVkIG9uIHBh cmFsbGVsCisgKiB3b3JrZXJzIHRvIGF2b2lkIGRvdWJsZSBjb3VudGluZy4KKyAqLworZXh0ZXJu IFBHRExMSU1QT1JUIEluc3RydW1lbnRhdGlvbiBpbnN0cl90b3A7CisKKy8qCisgKiBUaGUgaW5z dHJ1bWVudGF0aW9uIHN0YWNrIHN0YXRlLiBUaGUgJ2N1cnJlbnQnIGZpZWxkIHBvaW50cyB0byB0 aGUKKyAqIGN1cnJlbnRseSBhY3RpdmUgc3RhY2sgZW50cnkgdGhhdCBpcyBnZXR0aW5nIHVwZGF0 ZWQgYXMgYWN0aXZpdHkgaGFwcGVucywKKyAqIGFuZCB3aWxsIGJlIGFjY3VtdWxhdGVkIHRvIHBh cmVudCBzdGFja3Mgd2hlbiBpdCBnZXRzIGZpbmFsaXplZCBieQorICogSW5zdHJTdG9wIChmb3Ig bm9uLWV4ZWN1dG9yIHVzZSBjYXNlcyksIEV4ZWNGaW5hbGl6ZU5vZGVJbnN0cnVtZW50YXRpb24K KyAqIChleGVjdXRvciBmaW5pc2gpIG9yIFJlc093bmVyUmVsZWFzZUluc3RydW1lbnRhdGlvbiBv biBhYm9ydC4KKyAqLworZXh0ZXJuIFBHRExMSU1QT1JUIEluc3RyU3RhY2tTdGF0ZSBpbnN0cl9z dGFjazsKKworZXh0ZXJuIHZvaWQgSW5zdHJTdGFja0dyb3codm9pZCk7CisKKy8qCisgKiBQdXNo ZXMgdGhlIHN0YWNrIHNvIHRoYXQgYWxsIFdBTC9idWZmZXIgdXNhZ2UgdXBkYXRlcyBnbyB0byB0 aGUgcGFzc2VkIGluCisgKiBpbnN0cnVtZW50YXRpb24gZW50cnkuCisgKgorICogQW55IGNhbGxl ciB1c2luZyB0aGlzIGRpcmVjdGx5IG11c3QgbWFuYWdlIHRoZSBwYXNzZWQgaW4gZW50cnkgYW5k IGNhbGwKKyAqIEluc3RyUG9wU3RhY2sgb24gaXRzIG93biBhZ2FpbiwgdHlwaWNhbGx5IGJ5IHVz aW5nIGEgUEdfRklOQUxMWSBibG9jayB0bworICogZW5zdXJlIHRoZSBzdGFjayBnZXRzIHJlc2V0 IHZpYSBJbnN0clBvcFN0YWNrIG9uIGFib3J0LiBVc2UgSW5zdHJTdGFydAorICogaW5zdGVhZCB3 aGVuIHlvdSB3YW50IGF1dG9tYXRpYyBoYW5kbGluZyBvZiBhYm9ydCBjYXNlcyB1c2luZyB0aGUg cmVzb3VyY2UKKyAqIG93bmVyIGluZnJhc3RydWN0dXJlLgorICovCitzdGF0aWMgaW5saW5lIHZv aWQKK0luc3RyUHVzaFN0YWNrKEluc3RydW1lbnRhdGlvbiAqaW5zdHIpCit7CisJaWYgKHVubGlr ZWx5KGluc3RyX3N0YWNrLnN0YWNrX3NpemUgPT0gaW5zdHJfc3RhY2suc3RhY2tfc3BhY2UpKQor CQlJbnN0clN0YWNrR3JvdygpOworCisJaW5zdHJfc3RhY2suZW50cmllc1tpbnN0cl9zdGFjay5z dGFja19zaXplKytdID0gaW5zdHI7CisJaW5zdHJfc3RhY2suY3VycmVudCA9IGluc3RyOworfQor CisvKgorICogUG9wcyB0aGUgc3RhY2sgZW50cnkgYmFjayB0byB0aGUgcHJldmlvdXMgb25lIHRo YXQgd2FzIGVmZmVjdGl2ZSBhdAorICogSW5zdHJQdXNoU3RhY2suCisgKgorICogQ2FsbGVycyBt dXN0IGVuc3VyZSB0aGF0IG5vIGludGVybWVkaWF0ZSBzdGFjayBlbnRyaWVzIGFyZSBza2lwcGVk LCB0bworICogaGFuZGxlIGFib3J0cyBjb3JyZWN0bHkuIElmIHlvdSdyZSB0aGlua2luZyBvZiBj YWxsaW5nIHRoaXMgaW4gYSBQR19GSU5BTExZCisgKiBibG9jaywgY29uc2lkZXIgaW5zdGVhZCB1 c2luZyBJbnN0clN0YXJ0ICsgSW5zdHJTdG9wRmluYWxpemUgd2hpY2ggY2FuIHNraXAKKyAqIGlu dGVybWVkaWF0ZSBzdGFjayBlbnRyaWVzLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQKK0luc3Ry UG9wU3RhY2soSW5zdHJ1bWVudGF0aW9uICppbnN0cikKK3sKKwlBc3NlcnQoaW5zdHJfc3RhY2su c3RhY2tfc2l6ZSA+IDApOworCUFzc2VydChpbnN0cl9zdGFjay5lbnRyaWVzW2luc3RyX3N0YWNr LnN0YWNrX3NpemUgLSAxXSA9PSBpbnN0cik7CisJaW5zdHJfc3RhY2suc3RhY2tfc2l6ZS0tOwor CWluc3RyX3N0YWNrLmN1cnJlbnQgPSBpbnN0cl9zdGFjay5zdGFja19zaXplID4gMAorCQk/IGlu c3RyX3N0YWNrLmVudHJpZXNbaW5zdHJfc3RhY2suc3RhY2tfc2l6ZSAtIDFdCisJCTogJmluc3Ry X3RvcDsKK30KKwogZXh0ZXJuIHZvaWQgSW5zdHJJbml0T3B0aW9ucyhJbnN0cnVtZW50YXRpb24g Kmluc3RyLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zKTsKIGV4dGVybiB2b2lkIEluc3RyU3RhcnQo SW5zdHJ1bWVudGF0aW9uICppbnN0cik7CiBleHRlcm4gdm9pZCBJbnN0clN0b3AoSW5zdHJ1bWVu dGF0aW9uICppbnN0cik7CitleHRlcm4gdm9pZCBJbnN0clN0b3BGaW5hbGl6ZShJbnN0cnVtZW50 YXRpb24gKmluc3RyKTsKK2V4dGVybiB2b2lkIEluc3RyQWNjdW0oSW5zdHJ1bWVudGF0aW9uICpk c3QsIEluc3RydW1lbnRhdGlvbiAqYWRkKTsKKworZXh0ZXJuIFF1ZXJ5SW5zdHJ1bWVudGF0aW9u ICpJbnN0clF1ZXJ5QWxsb2MoaW50IGluc3RydW1lbnRfb3B0aW9ucyk7CitleHRlcm4gdm9pZCBJ bnN0clF1ZXJ5U3RhcnQoUXVlcnlJbnN0cnVtZW50YXRpb24gKmluc3RyKTsKK2V4dGVybiB2b2lk IEluc3RyUXVlcnlTdG9wKFF1ZXJ5SW5zdHJ1bWVudGF0aW9uICppbnN0cik7CitleHRlcm4gUXVl cnlJbnN0cnVtZW50YXRpb24gKkluc3RyUXVlcnlTdG9wRmluYWxpemUoUXVlcnlJbnN0cnVtZW50 YXRpb24gKmluc3RyKTsKK2V4dGVybiB2b2lkIEluc3RyUXVlcnlSZW1lbWJlck5vZGUoUXVlcnlJ bnN0cnVtZW50YXRpb24gKnBhcmVudCwgTm9kZUluc3RydW1lbnRhdGlvbiAqaW5zdHIpOworCitw Z19ub2Rpc2NhcmQgZXh0ZXJuIFF1ZXJ5SW5zdHJ1bWVudGF0aW9uICpJbnN0clN0YXJ0UGFyYWxs ZWxRdWVyeSh2b2lkKTsKK2V4dGVybiB2b2lkIEluc3RyRW5kUGFyYWxsZWxRdWVyeShRdWVyeUlu c3RydW1lbnRhdGlvbiAqcWluc3RyLCBCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFdhbFVzYWdlICp3 YWx1c2FnZSk7CitleHRlcm4gdm9pZCBJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeShCdWZmZXJVc2Fn ZSAqYnVmdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSk7CiAKIGV4dGVybiBOb2RlSW5zdHJ1bWVu dGF0aW9uICpJbnN0ckFsbG9jTm9kZShpbnQgaW5zdHJ1bWVudF9vcHRpb25zLAogCQkJCQkJCQkJ CSAgIGJvb2wgYXN5bmNfbW9kZSk7CiBleHRlcm4gdm9pZCBJbnN0ckluaXROb2RlKE5vZGVJbnN0 cnVtZW50YXRpb24gKmluc3RyLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zKTsKIGV4dGVybiB2b2lk IEluc3RyU3RhcnROb2RlKE5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RyKTsKIGV4dGVybiB2b2lk IEluc3RyU3RvcE5vZGUoTm9kZUluc3RydW1lbnRhdGlvbiAqaW5zdHIsIGRvdWJsZSBuVHVwbGVz KTsKK2V4dGVybiBOb2RlSW5zdHJ1bWVudGF0aW9uICpJbnN0ckZpbmFsaXplTm9kZShOb2RlSW5z dHJ1bWVudGF0aW9uICppbnN0ciwgSW5zdHJ1bWVudGF0aW9uICpwYXJlbnQpOwogZXh0ZXJuIHZv aWQgSW5zdHJVcGRhdGVUdXBsZUNvdW50KE5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3Vi bGUgblR1cGxlcyk7CiBleHRlcm4gdm9pZCBJbnN0ckVuZExvb3AoTm9kZUluc3RydW1lbnRhdGlv biAqaW5zdHIpOwogZXh0ZXJuIHZvaWQgSW5zdHJBZ2dOb2RlKE5vZGVJbnN0cnVtZW50YXRpb24g KmRzdCwgTm9kZUluc3RydW1lbnRhdGlvbiAqYWRkKTsKQEAgLTE0NSwzMSArMjkyLDMxIEBAIGV4 dGVybiBUcmlnZ2VySW5zdHJ1bWVudGF0aW9uICpJbnN0ckFsbG9jVHJpZ2dlcihpbnQgbiwgaW50 IGluc3RydW1lbnRfb3B0aW9ucyk7CiBleHRlcm4gdm9pZCBJbnN0clN0YXJ0VHJpZ2dlcihUcmln Z2VySW5zdHJ1bWVudGF0aW9uICp0Z2luc3RyKTsKIGV4dGVybiB2b2lkIEluc3RyU3RvcFRyaWdn ZXIoVHJpZ2dlckluc3RydW1lbnRhdGlvbiAqdGdpbnN0ciwgaW50IGZpcmluZ3MpOwogCi1leHRl cm4gdm9pZCBJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSh2b2lkKTsKLWV4dGVybiB2b2lkIEluc3Ry RW5kUGFyYWxsZWxRdWVyeShCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2Fn ZSk7Ci1leHRlcm4gdm9pZCBJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeShCdWZmZXJVc2FnZSAqYnVm dXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSk7Ci1leHRlcm4gdm9pZCBCdWZmZXJVc2FnZUFjY3Vt RGlmZihCdWZmZXJVc2FnZSAqZHN0LAotCQkJCQkJCQkgY29uc3QgQnVmZmVyVXNhZ2UgKmFkZCwg Y29uc3QgQnVmZmVyVXNhZ2UgKnN1Yik7CitleHRlcm4gdm9pZCBCdWZmZXJVc2FnZUFkZChCdWZm ZXJVc2FnZSAqZHN0LCBjb25zdCBCdWZmZXJVc2FnZSAqYWRkKTsKK2V4dGVybiB2b2lkIFdhbFVz YWdlQWRkKFdhbFVzYWdlICpkc3QsIGNvbnN0IFdhbFVzYWdlICphZGQpOwogZXh0ZXJuIHZvaWQg V2FsVXNhZ2VBY2N1bURpZmYoV2FsVXNhZ2UgKmRzdCwgY29uc3QgV2FsVXNhZ2UgKmFkZCwKIAkJ CQkJCQkgIGNvbnN0IFdhbFVzYWdlICpzdWIpOwogCiAjZGVmaW5lIElOU1RSX0JVRlVTQUdFX0lO Q1IoZmxkKSBkbyB7IFwKLQkJcGdCdWZmZXJVc2FnZS5mbGQrKzsgXAorCQlpbnN0cl9zdGFjay5j dXJyZW50LT5idWZ1c2FnZS5mbGQrKzsgXAogCX0gd2hpbGUoMCkKICNkZWZpbmUgSU5TVFJfQlVG VVNBR0VfQUREKGZsZCx2YWwpIGRvIHsgXAotCQlwZ0J1ZmZlclVzYWdlLmZsZCArPSB2YWw7IFwK KwkJaW5zdHJfc3RhY2suY3VycmVudC0+YnVmdXNhZ2UuZmxkICs9IHZhbDsgXAogCX0gd2hpbGUo MCkKICNkZWZpbmUgSU5TVFJfQlVGVVNBR0VfVElNRV9BREQoZmxkLHZhbCkgZG8geyBcCi0JSU5T VFJfVElNRV9BREQocGdCdWZmZXJVc2FnZS5mbGQsIHZhbCk7IFwKKwlJTlNUUl9USU1FX0FERChp bnN0cl9zdGFjay5jdXJyZW50LT5idWZ1c2FnZS5mbGQsIHZhbCk7IFwKIAl9IHdoaWxlICgwKQog I2RlZmluZSBJTlNUUl9CVUZVU0FHRV9USU1FX0FDQ1VNX0RJRkYoZmxkLGVuZHZhbCxzdGFydHZh bCkgZG8geyBcCi0JSU5TVFJfVElNRV9BQ0NVTV9ESUZGKHBnQnVmZmVyVXNhZ2UuZmxkLCBlbmR2 YWwsIHN0YXJ0dmFsKTsgXAorCUlOU1RSX1RJTUVfQUNDVU1fRElGRihpbnN0cl9zdGFjay5jdXJy ZW50LT5idWZ1c2FnZS5mbGQsIGVuZHZhbCwgc3RhcnR2YWwpOyBcCiAJfSB3aGlsZSAoMCkKKwog I2RlZmluZSBJTlNUUl9XQUxVU0FHRV9JTkNSKGZsZCkgZG8geyBcCiAJCXBnV2FsVXNhZ2UuZmxk Kys7IFwKKwkJaW5zdHJfc3RhY2suY3VycmVudC0+d2FsdXNhZ2UuZmxkKys7IFwKIAl9IHdoaWxl KDApCiAjZGVmaW5lIElOU1RSX1dBTFVTQUdFX0FERChmbGQsdmFsKSBkbyB7IFwKIAkJcGdXYWxV c2FnZS5mbGQgKz0gdmFsOyBcCisJCWluc3RyX3N0YWNrLmN1cnJlbnQtPndhbHVzYWdlLmZsZCAr PSB2YWw7IFwKIAl9IHdoaWxlKDApCiAKICNlbmRpZgkJCQkJCQkvKiBJTlNUUlVNRU5UX0ggKi8K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3Jlc293bmVyLmggYi9zcmMvaW5jbHVkZS91 dGlscy9yZXNvd25lci5oCmluZGV4IGViNjAzM2I0ZmRiLi41NDYzYmM5MjFmMCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvdXRpbHMvcmVzb3duZXIuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9y ZXNvd25lci5oCkBAIC03NSw2ICs3NSw3IEBAIHR5cGVkZWYgdWludDMyIFJlc291cmNlUmVsZWFz ZVByaW9yaXR5OwogI2RlZmluZSBSRUxFQVNFX1BSSU9fU05BUFNIT1RfUkVGUwkJCTUwMAogI2Rl ZmluZSBSRUxFQVNFX1BSSU9fRklMRVMJCQkJCTYwMAogI2RlZmluZSBSRUxFQVNFX1BSSU9fV0FJ VEVWRU5UU0VUUwkJCTcwMAorI2RlZmluZSBSRUxFQVNFX1BSSU9fSU5TVFJVTUVOVEFUSU9OCQk4 MDAKIAogLyogMCBpcyBjb25zaWRlcmVkIGludmFsaWQgKi8KICNkZWZpbmUgUkVMRUFTRV9QUklP X0ZJUlNUCQkJCQkxCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGUwNWExZTUyZGI0Li4x YzliZTk0NGM1YSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK KysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTEzMjAsNiArMTMyMCw3 IEBAIEluamVjdGlvblBvaW50U2hhcmVkU3RhdGUKIEluamVjdGlvblBvaW50c0N0bAogSW5saW5l Q29kZUJsb2NrCiBJbnNlcnRTdG10CitJbnN0clN0YWNrU3RhdGUKIEluc3RydW1lbnRhdGlvbgog SW50MTI4QWdnU3RhdGUKIEludDhUcmFuc1R5cGVEYXRhCkBAIC0yNDMxLDYgKzI0MzIsNyBAQCBR dWVyeUNvbXBsZXRpb24KIFF1ZXJ5RGVzYwogUXVlcnlFbnZpcm9ubWVudAogUXVlcnlJbmZvCitR dWVyeUluc3RydW1lbnRhdGlvbgogUXVlcnlJdGVtCiBRdWVyeUl0ZW1UeXBlCiBRdWVyeU1vZGUK LS0gCjIuNDcuMQoK --0000000000001ac30e064d022147 Content-Type: application/octet-stream; name="v8-0008-Add-pg_session_buffer_usage-contrib-module.patch" Content-Disposition: attachment; filename="v8-0008-Add-pg_session_buffer_usage-contrib-module.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmqsnn4t7 RnJvbSBhMDU0M2UzYjNhYTExYmVjY2EwN2EwNWU3ZDE5YTllODMyNzY4OThmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBT YXQsIDcgTWFyIDIwMjYgMTE6NDY6NDEgLTA4MDAKU3ViamVjdDogW1BBVENIIHY4IDgvOF0gQWRk IHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlIGNvbnRyaWIgbW9kdWxlCgpUaGlzIGlzIGludGVuZGVk IGZvciB0ZXN0aW5nIGluc3RydW1lbnRhdGlvbiByZWxhdGVkIGxvZ2ljIGFzIGl0IHBlcnRhaW5z CnRvIHRoZSB0b3AgbGV2ZWwgc3RhY2sgdGhhdCBpcyBtYWludGFpbmVkIGFzIGEgcnVubmluZyB0 b3RhbC4gVGhlcmUgaXMKY3VycmVudGx5IG5vIGluLWNvcmUgdXNlciB0aGF0IHV0aWxpemVzIHRo ZSB0b3AtbGV2ZWwgdmFsdWVzIGluIHRoaXMKbWFubmVyLCBhbmQgZXNwZWNpYWxseSBkdXJpbmcg YWJvcnQgc2l0dWF0aW9ucyB0aGlzIGhlbHBzIGVuc3VyZSB3ZSBkb24ndApsb3NlIGFjdGl2aXR5 IGR1ZSB0byBpbmNvcnJlY3QgaGFuZGxpbmcgb2YgdW5maW5hbGl6ZWQgbm9kZSBzdGFja3MuCi0t LQogY29udHJpYi9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsK IGNvbnRyaWIvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UvTWFrZWZpbGUgICAgICB8ICAyMyArKwog Li4uL2V4cGVjdGVkL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlLm91dCAgICAgIHwgMjgzICsrKysr KysrKysrKysrKysrKwogY29udHJpYi9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS9tZXNvbi5idWls ZCAgIHwgIDM0ICsrKwogLi4uL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlLS0xLjAuc3FsICAgICAg ICAgIHwgIDMxICsrCiAuLi4vcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UuYyAgICAgICAgICAgICAg ICAgfCAgOTUgKysrKysrCiAuLi4vcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UuY29udHJvbCAgICAg ICAgICAgfCAgIDUgKwogLi4uL3NxbC9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS5zcWwgICAgICAg ICAgIHwgMjA0ICsrKysrKysrKysrKysKIDggZmlsZXMgY2hhbmdlZCwgNjc2IGluc2VydGlvbnMo KykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlL01h a2VmaWxlCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9wZ19zZXNzaW9uX2J1ZmZlcl91c2Fn ZS9leHBlY3RlZC9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBjb250cmliL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlL21lc29uLmJ1aWxkCiBjcmVhdGUgbW9k ZSAxMDA2NDQgY29udHJpYi9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS9wZ19zZXNzaW9uX2J1ZmZl cl91c2FnZS0tMS4wLnNxbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbnRyaWIvcGdfc2Vzc2lvbl9i dWZmZXJfdXNhZ2UvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IGNvbnRyaWIvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2Uu Y29udHJvbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbnRyaWIvcGdfc2Vzc2lvbl9idWZmZXJfdXNh Z2Uvc3FsL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlLnNxbAoKZGlmZiAtLWdpdCBhL2NvbnRyaWIv bWVzb24uYnVpbGQgYi9jb250cmliL21lc29uLmJ1aWxkCmluZGV4IDVhNzUyZWFjMzQ3Li4yYjEz OTllNTZmMyAxMDA2NDQKLS0tIGEvY29udHJpYi9tZXNvbi5idWlsZAorKysgYi9jb250cmliL21l c29uLmJ1aWxkCkBAIC01MSw2ICs1MSw3IEBAIHN1YmRpcigncGdfb3ZlcmV4cGxhaW4nKQogc3Vi ZGlyKCdwZ19wbGFuX2FkdmljZScpCiBzdWJkaXIoJ3BnX3ByZXdhcm0nKQogc3ViZGlyKCdwZ3Jv d2xvY2tzJykKK3N1YmRpcigncGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UnKQogc3ViZGlyKCdwZ19z dGF0X3N0YXRlbWVudHMnKQogc3ViZGlyKCdwZ3N0YXR0dXBsZScpCiBzdWJkaXIoJ3BnX3N1cmdl cnknKQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS9NYWtlZmls ZSBiL2NvbnRyaWIvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UvTWFrZWZpbGUKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc1YmQ4ZTA5YjNkCi0tLSAvZGV2L251bGwKKysr IGIvY29udHJpYi9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS9NYWtlZmlsZQpAQCAtMCwwICsxLDIz IEBACisjIGNvbnRyaWIvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UvTWFrZWZpbGUKKworTU9EVUxF X2JpZyA9IHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlCitPQkpTID0gXAorCSQoV0lOMzJSRVMpIFwK KwlwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS5vCisKK0VYVEVOU0lPTiA9IHBnX3Nlc3Npb25fYnVm ZmVyX3VzYWdlCitEQVRBID0gcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UtLTEuMC5zcWwKK1BHRklM RURFU0MgPSAicGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UgLSBzaG93IGJ1ZmZlciB1c2FnZSBzdGF0 aXN0aWNzIGZvciB0aGUgY3VycmVudCBzZXNzaW9uIgorCitSRUdSRVNTID0gcGdfc2Vzc2lvbl9i dWZmZXJfdXNhZ2UKKworaWZkZWYgVVNFX1BHWFMKK1BHX0NPTkZJRyA9IHBnX2NvbmZpZworUEdY UyA6PSAkKHNoZWxsICQoUEdfQ09ORklHKSAtLXBneHMpCitpbmNsdWRlICQoUEdYUykKK2Vsc2UK K3N1YmRpciA9IGNvbnRyaWIvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UKK3RvcF9idWlsZGRpciA9 IC4uLy4uCitpbmNsdWRlICQodG9wX2J1aWxkZGlyKS9zcmMvTWFrZWZpbGUuZ2xvYmFsCitpbmNs dWRlICQodG9wX3NyY2RpcikvY29udHJpYi9jb250cmliLWdsb2JhbC5taworZW5kaWYKZGlmZiAt LWdpdCBhL2NvbnRyaWIvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UvZXhwZWN0ZWQvcGdfc2Vzc2lv bl9idWZmZXJfdXNhZ2Uub3V0IGIvY29udHJpYi9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS9leHBl Y3RlZC9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjI0MmI0MDAzOTUwCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9w Z19zZXNzaW9uX2J1ZmZlcl91c2FnZS9leHBlY3RlZC9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS5v dXQKQEAgLTAsMCArMSwyODMgQEAKK0xPQUQgJ3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlJzsKK0NS RUFURSBFWFRFTlNJT04gcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2U7CistLSBWZXJpZnkgYWxsIGNv bHVtbnMgYXJlIG5vbi1uZWdhdGl2ZQorU0VMRUNUIGNvdW50KCopID0gMSBBUyBvayBGUk9NIHBn X3Nlc3Npb25fYnVmZmVyX3VzYWdlKCkKK1dIRVJFIHNoYXJlZF9ibGtzX2hpdCA+PSAwIEFORCBz aGFyZWRfYmxrc19yZWFkID49IDAKKyAgQU5EIHNoYXJlZF9ibGtzX2RpcnRpZWQgPj0gMCBBTkQg c2hhcmVkX2Jsa3Nfd3JpdHRlbiA+PSAwCisgIEFORCBsb2NhbF9ibGtzX2hpdCA+PSAwIEFORCBs b2NhbF9ibGtzX3JlYWQgPj0gMAorICBBTkQgbG9jYWxfYmxrc19kaXJ0aWVkID49IDAgQU5EIGxv Y2FsX2Jsa3Nfd3JpdHRlbiA+PSAwCisgIEFORCB0ZW1wX2Jsa3NfcmVhZCA+PSAwIEFORCB0ZW1w X2Jsa3Nfd3JpdHRlbiA+PSAwCisgIEFORCBzaGFyZWRfYmxrX3JlYWRfdGltZSA+PSAwIEFORCBz aGFyZWRfYmxrX3dyaXRlX3RpbWUgPj0gMAorICBBTkQgbG9jYWxfYmxrX3JlYWRfdGltZSA+PSAw IEFORCBsb2NhbF9ibGtfd3JpdGVfdGltZSA+PSAwCisgIEFORCB0ZW1wX2Jsa19yZWFkX3RpbWUg Pj0gMCBBTkQgdGVtcF9ibGtfd3JpdGVfdGltZSA+PSAwOworIG9rIAorLS0tLQorIHQKKygxIHJv dykKKworLS0gVmVyaWZ5IGNvdW50ZXJzIGluY3JlYXNlIGFmdGVyIGJ1ZmZlciBhY3Rpdml0eQor U0VMRUNUIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlX3Jlc2V0KCk7CisgcGdfc2Vzc2lvbl9idWZm ZXJfdXNhZ2VfcmVzZXQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSBy b3cpCisKK0NSRUFURSBURU1QIFRBQkxFIHRlc3RfYnVmX2FjdGl2aXR5IChpZCBpbnQsIGRhdGEg dGV4dCk7CitJTlNFUlQgSU5UTyB0ZXN0X2J1Zl9hY3Rpdml0eSBTRUxFQ1QgaSwgcmVwZWF0KCd4 JywgMTAwKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDAwKSBBUyBpOworU0VMRUNUIGNvdW50 KCopIEZST00gdGVzdF9idWZfYWN0aXZpdHk7CisgY291bnQgCistLS0tLS0tCisgIDEwMDAKKygx IHJvdykKKworU0VMRUNUIGxvY2FsX2Jsa3NfaGl0ICsgbG9jYWxfYmxrc19yZWFkID4gMCBBUyBi bG9ja3NfaW5jcmVhc2VkCitGUk9NIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlKCk7CisgYmxvY2tz X2luY3JlYXNlZCAKKy0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworRFJPUCBUQUJM RSB0ZXN0X2J1Zl9hY3Rpdml0eTsKKy0tIFBhcmFsbGVsIHF1ZXJ5IHRlc3QKK0NSRUFURSBUQUJM RSBwYXJfZGNfdGFiIChhIGludCwgYiBjaGFyKDIwMCkpOworSU5TRVJUIElOVE8gcGFyX2RjX3Rh YiBTRUxFQ1QgaSwgcmVwZWF0KCd4JywgMjAwKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MDAw KSBBUyBpOworU0VMRUNUIGNvdW50KCopIEZST00gcGFyX2RjX3RhYjsKKyBjb3VudCAKKy0tLS0t LS0KKyAgNTAwMAorKDEgcm93KQorCistLSBNZWFzdXJlIHNlcmlhbCBzY2FuIGRlbHRhIChsZWFk ZXIgZG9lcyBhbGwgdGhlIHdvcmspCitTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhl ciA9IDA7CitTRUxFQ1QgcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2VfcmVzZXQoKTsKKyBwZ19zZXNz aW9uX2J1ZmZlcl91c2FnZV9yZXNldCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAKKygxIHJvdykKKworU0VMRUNUIGNvdW50KCopIEZST00gcGFyX2RjX3RhYjsKKyBjb3VudCAK Ky0tLS0tLS0KKyAgNTAwMAorKDEgcm93KQorCitDUkVBVEUgVEVNUCBUQUJMRSBkY19zZXJpYWxf cmVzdWx0IEFTCitTRUxFQ1Qgc2hhcmVkX2Jsa3NfaGl0IEFTIHNlcmlhbF9kZWx0YSBGUk9NIHBn X3Nlc3Npb25fYnVmZmVyX3VzYWdlKCk7CistLSBNZWFzdXJlIHBhcmFsbGVsIHNjYW4gZGVsdGEg d2l0aCBsZWFkZXIgTk9UIHBhcnRpY2lwYXRpbmcgaW4gc2Nhbm5pbmcuCistLSBXb3JrZXJzIGRv IGFsbCB0YWJsZSBzY2FubmluZzsgbGVhZGVyIG9ubHkgcnVucyB0aGUgR2F0aGVyIG5vZGUuCitT RVQgcGFyYWxsZWxfc2V0dXBfY29zdCA9IDA7CitTRVQgcGFyYWxsZWxfdHVwbGVfY29zdCA9IDA7 CitTRVQgbWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6ZSA9IDA7CitTRVQgbWF4X3BhcmFsbGVs X3dvcmtlcnNfcGVyX2dhdGhlciA9IDI7CitTRVQgcGFyYWxsZWxfbGVhZGVyX3BhcnRpY2lwYXRp b24gPSBvZmY7CitTRUxFQ1QgcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2VfcmVzZXQoKTsKKyBwZ19z ZXNzaW9uX2J1ZmZlcl91c2FnZV9yZXNldCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAKKygxIHJvdykKKworU0VMRUNUIGNvdW50KCopIEZST00gcGFyX2RjX3RhYjsKKyBjb3Vu dCAKKy0tLS0tLS0KKyAgNTAwMAorKDEgcm93KQorCistLSBDb25maXJtIHdlIGdvdCBhIHNpbWls YXIgaGl0IGNvdW50ZXIgdGhyb3VnaCBwYXJhbGxlbCB3b3JrZXIgYWNjdW11bGF0aW9uCitTRUxF Q1Qgc2hhcmVkX2Jsa3NfaGl0ID4gcy5zZXJpYWxfZGVsdGEgLyAyIEFORCBzaGFyZWRfYmxrc19o aXQgPCBzLnNlcmlhbF9kZWx0YSAqIDIKKyAgICAgICBBUyBsZWFkZXJfYnVmZmVyc19tYXRjaAor RlJPTSBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZSgpLCBkY19zZXJpYWxfcmVzdWx0IHM7CisgbGVh ZGVyX2J1ZmZlcnNfbWF0Y2ggCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQor CitSRVNFVCBwYXJhbGxlbF9zZXR1cF9jb3N0OworUkVTRVQgcGFyYWxsZWxfdHVwbGVfY29zdDsK K1JFU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemU7CitSRVNFVCBtYXhfcGFyYWxsZWxf d29ya2Vyc19wZXJfZ2F0aGVyOworUkVTRVQgcGFyYWxsZWxfbGVhZGVyX3BhcnRpY2lwYXRpb247 CitEUk9QIFRBQkxFIHBhcl9kY190YWIsIGRjX3NlcmlhbF9yZXN1bHQ7CistLQorLS0gQWJvcnQv ZXhjZXB0aW9uIHRlc3RzOiB2ZXJpZnkgYnVmZmVyIHVzYWdlIHN1cnZpdmVzIHZhcmlvdXMgZXJy b3IgcGF0aHMuCistLQorLS0gUm9sbGVkLWJhY2sgZGl2aWRlLWJ5LXplcm8gdW5kZXIgRVhQTEFJ TiBBTkFMWVpFCitDUkVBVEUgVEVNUCBUQUJMRSBleGNfdGFiIChhIGludCwgYiBjaGFyKDIwKSk7 CitTRUxFQ1QgcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2VfcmVzZXQoKTsKKyBwZ19zZXNzaW9uX2J1 ZmZlcl91c2FnZV9yZXNldCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygx IHJvdykKKworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUywgQ09TVFMgT0ZGKQorICAgICAgICBX SVRIIGlucyBBUyAoSU5TRVJUIElOVE8gZXhjX3RhYiBWQUxVRVMgKDEsICdhYWEnKSBSRVRVUk5J TkcgYSkKKyAgICAgICAgU0VMRUNUIGEgLyAwIEZST00gaW5zOworRVJST1I6ICBkaXZpc2lvbiBi eSB6ZXJvCitTRUxFQ1QgbG9jYWxfYmxrc19kaXJ0aWVkID4gMCBBUyBleGNlcHRpb25fYnVmZmVy c192aXNpYmxlCitGUk9NIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlKCk7CisgZXhjZXB0aW9uX2J1 ZmZlcnNfdmlzaWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykK KworRFJPUCBUQUJMRSBleGNfdGFiOworLS0gVW5pcXVlIGNvbnN0cmFpbnQgdmlvbGF0aW9uIGlu IHJlZ3VsYXIgcXVlcnkKK0NSRUFURSBURU1QIFRBQkxFIHVuaXF1ZV90YWIgKGEgaW50IFVOSVFV RSwgYiBjaGFyKDIwKSk7CitJTlNFUlQgSU5UTyB1bmlxdWVfdGFiIFZBTFVFUyAoMSwgJ2ZpcnN0 Jyk7CitTRUxFQ1QgcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2VfcmVzZXQoKTsKKyBwZ19zZXNzaW9u X2J1ZmZlcl91c2FnZV9yZXNldCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAK KygxIHJvdykKKworSU5TRVJUIElOVE8gdW5pcXVlX3RhYiBWQUxVRVMgKDEsICdkdXBsaWNhdGUn KTsKK0VSUk9SOiAgZHVwbGljYXRlIGtleSB2YWx1ZSB2aW9sYXRlcyB1bmlxdWUgY29uc3RyYWlu dCAidW5pcXVlX3RhYl9hX2tleSIKK0RFVEFJTDogIEtleSAoYSk9KDEpIGFscmVhZHkgZXhpc3Rz LgorU0VMRUNUIGxvY2FsX2Jsa3NfaGl0ID4gMCBBUyB1bmlxdWVfdmlvbGF0aW9uX2J1ZmZlcnNf dmlzaWJsZQorRlJPTSBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZSgpOworIHVuaXF1ZV92aW9sYXRp b25fYnVmZmVyc192aXNpYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IHQKKygxIHJvdykKKworRFJPUCBUQUJMRSB1bmlxdWVfdGFiOworLS0gQ2F1Z2h0IGV4Y2VwdGlv biBpbiBQTC9wZ1NRTCBzdWJ0cmFuc2FjdGlvbiAoQkVHSU4uLi5FWENFUFRJT04pCitDUkVBVEUg VEVNUCBUQUJMRSBzdWJ4YWN0X3RhYiAoYSBpbnQsIGIgY2hhcigyMCkpOworQ1JFQVRFIEZVTkNU SU9OIHN1YnhhY3RfZXhjX2Z1bmMoKSBSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgICAgQkVH SU4KKyAgICAgICAgRVhFQ1VURSAnRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUywgQ09TVFMgT0ZG KQorICAgICAgICAgICAgV0lUSCBpbnMgQVMgKElOU0VSVCBJTlRPIHN1YnhhY3RfdGFiIFZBTFVF UyAoMSwgJydhYWEnJykgUkVUVVJOSU5HIGEpCisgICAgICAgICAgICBTRUxFQ1QgYSAvIDAgRlJP TSBpbnMnOworICAgIEVYQ0VQVElPTiBXSEVOIGRpdmlzaW9uX2J5X3plcm8gVEhFTgorICAgICAg ICBSRVRVUk4gJ2NhdWdodCc7CisgICAgRU5EOworICAgIFJFVFVSTiAnbm90IHJlYWNoZWQnOwor RU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCBwZ19zZXNzaW9uX2J1ZmZlcl91c2Fn ZV9yZXNldCgpOworIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlX3Jlc2V0IAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1Qgc3VieGFjdF9leGNfZnVu YygpOworIHN1YnhhY3RfZXhjX2Z1bmMgCistLS0tLS0tLS0tLS0tLS0tLS0KKyBjYXVnaHQKKygx IHJvdykKKworU0VMRUNUIGxvY2FsX2Jsa3NfZGlydGllZCA+IDAgQVMgc3VieGFjdF9idWZmZXJz X3Zpc2libGUKK0ZST00gcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UoKTsKKyBzdWJ4YWN0X2J1ZmZl cnNfdmlzaWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK0RS T1AgRlVOQ1RJT04gc3VieGFjdF9leGNfZnVuYzsKK0RST1AgVEFCTEUgc3VieGFjdF90YWI7Cist LSBDdXJzb3IgKEZPUiBsb29wKSBpbiBhYm9ydGVkIHN1YnRyYW5zYWN0aW9uOyB2ZXJpZnkgcG9z dC1leGNlcHRpb24gdHJhY2tpbmcKK0NSRUFURSBURU1QIFRBQkxFIGN1cnNvcl90YWIgKGEgaW50 LCBiIGNoYXIoMjAwKSk7CitJTlNFUlQgSU5UTyBjdXJzb3JfdGFiIFNFTEVDVCBpLCByZXBlYXQo J3gnLCAyMDApIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgaTsKK0NSRUFURSBGVU5D VElPTiBjdXJzb3JfZXhjX2Z1bmMoKSBSRVRVUk5TIHRleHQgQVMgJCQKK0RFQ0xBUkUKKyAgICBy ZWMgcmVjb3JkOworICAgIGNudCBpbnQgOj0gMDsKK0JFR0lOCisgICAgQkVHSU4KKyAgICAgICAg Rk9SIHJlYyBJTiBTRUxFQ1QgKiBGUk9NIGN1cnNvcl90YWIgTE9PUAorICAgICAgICAgICAgY250 IDo9IGNudCArIDE7CisgICAgICAgICAgICBJRiBjbnQgPSAyNTAgVEhFTgorICAgICAgICAgICAg ICAgIFBFUkZPUk0gMSAvIDA7CisgICAgICAgICAgICBFTkQgSUY7CisgICAgICAgIEVORCBMT09Q OworICAgIEVYQ0VQVElPTiBXSEVOIGRpdmlzaW9uX2J5X3plcm8gVEhFTgorICAgICAgICBSRVRV Uk4gJ2NhdWdodCBhZnRlciAnIHx8IGNudCB8fCAnIHJvd3MnOworICAgIEVORDsKKyAgICBSRVRV Uk4gJ25vdCByZWFjaGVkJzsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgcGdf c2Vzc2lvbl9idWZmZXJfdXNhZ2VfcmVzZXQoKTsKKyBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZV9y ZXNldCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VM RUNUIGN1cnNvcl9leGNfZnVuYygpOworICAgIGN1cnNvcl9leGNfZnVuYyAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgY2F1Z2h0IGFmdGVyIDI1MCByb3dzCisoMSByb3cpCisKK1NFTEVD VCBsb2NhbF9ibGtzX2hpdCArIGxvY2FsX2Jsa3NfcmVhZCA+IDAKKyAgICAgICBBUyBjdXJzb3Jf c3VieGFjdF9idWZmZXJzX3Zpc2libGUKK0ZST00gcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UoKTsK KyBjdXJzb3Jfc3VieGFjdF9idWZmZXJzX3Zpc2libGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworRFJPUCBGVU5DVElPTiBjdXJzb3JfZXhjX2Z1bmM7 CitEUk9QIFRBQkxFIGN1cnNvcl90YWI7CistLSBQYXJhbGxlbCB3b3JrZXIgYWJvcnQ6IHdvcmtl ciBidWZmZXIgYWN0aXZpdHkgaXMgY3VycmVudGx5IE5PVCBwcm9wYWdhdGVkIG9uIGFib3J0Lgor LS0KKy0tIFdoZW4gYSBwYXJhbGxlbCB3b3JrZXIgYWJvcnRzLCBJbnN0ckVuZFBhcmFsbGVsUXVl cnkgYW5kCistLSBFeGVjUGFyYWxsZWxSZXBvcnRJbnN0cnVtZW50YXRpb24gbmV2ZXIgcnVuLCBz byB0aGUgd29ya2VyJ3MgYnVmZmVyCistLSBhY3Rpdml0eSBpcyBuZXZlciB3cml0dGVuIHRvIHNo YXJlZCBtZW1vcnksIGRlc3BpdGUgdGhlIGluZm9ybWF0aW9uIGhhdmluZyBiZWVuCistLSBjYXB0 dXJlZCBieSB0aGUgcmVzIG93bmVyIHJlbGVhc2UgaW5zdHJ1bWVudGF0aW9uIGhhbmRsaW5nLgor Q1JFQVRFIFRBQkxFIHBhcl9hYm9ydF90YWIgKGEgaW50LCBiIGNoYXIoMjAwKSk7CitJTlNFUlQg SU5UTyBwYXJfYWJvcnRfdGFiIFNFTEVDVCBpLCByZXBlYXQoJ3gnLCAyMDApIEZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDUwMDApIEFTIGk7CistLSBXYXJtIHNoYXJlZCBidWZmZXJzIHNvIGFsbCBy ZWFkcyBiZWNvbWUgaGl0cworU0VMRUNUIGNvdW50KCopIEZST00gcGFyX2Fib3J0X3RhYjsKKyBj b3VudCAKKy0tLS0tLS0KKyAgNTAwMAorKDEgcm93KQorCistLSBNZWFzdXJlIHNlcmlhbCBzY2Fu IGRlbHRhIGFzIGEgcmVmZXJlbmNlIChsZWFkZXIgcmVhZHMgYWxsIGJsb2NrcykKK1NFVCBtYXhf cGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0gMDsKK1NFTEVDVCBwZ19zZXNzaW9uX2J1ZmZl cl91c2FnZV9yZXNldCgpOworIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlX3Jlc2V0IAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgYjo6aW50MiBG Uk9NIHBhcl9hYm9ydF90YWIgV0hFUkUgYSA+IDEwMDA7CitFUlJPUjogIGludmFsaWQgaW5wdXQg c3ludGF4IGZvciB0eXBlIHNtYWxsaW50OiAieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHgi CitDUkVBVEUgVEFCTEUgcGFyX2Fib3J0X3NlcmlhbF9yZXN1bHQgQVMKK1NFTEVDVCBzaGFyZWRf Ymxrc19oaXQgQVMgc2VyaWFsX2RlbHRhIEZST00gcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UoKTsK Ky0tIE5vdyBmb3JjZSBwYXJhbGxlbCB3aXRoIGxlYWRlciBOT1QgcGFydGljaXBhdGluZyBpbiBz Y2FubmluZworU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3QgPSAwOworU0VUIHBhcmFsbGVsX3R1cGxl X2Nvc3QgPSAwOworU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemUgPSAwOworU0VUIG1h eF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXIgPSAyOworU0VUIHBhcmFsbGVsX2xlYWRlcl9w YXJ0aWNpcGF0aW9uID0gb2ZmOworU0VUIGRlYnVnX3BhcmFsbGVsX3F1ZXJ5ID0gb247IC0tIEVu c3VyZSB3ZSBnZXQgQ09OVEVYVCBsaW5lIGNvbnNpc3RlbnRseQorU0VMRUNUIHBnX3Nlc3Npb25f YnVmZmVyX3VzYWdlX3Jlc2V0KCk7CisgcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2VfcmVzZXQgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBiOjpp bnQyIEZST00gcGFyX2Fib3J0X3RhYiBXSEVSRSBhID4gMTAwMDsKK0VSUk9SOiAgaW52YWxpZCBp bnB1dCBzeW50YXggZm9yIHR5cGUgc21hbGxpbnQ6ICJ4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eCIKK0NPTlRFWFQ6ICBwYXJhbGxlbCB3b3JrZXIKK1JFU0VUIGRlYnVnX3BhcmFsbGVsX3F1 ZXJ5OworLS0gV29ya2VycyBzY2FubmVkIHRoZSB0YWJsZSBidXQgYWJvcnRlZCBiZWZvcmUgcmVw b3J0aW5nIHN0YXRzIGJhY2suCistLSBUaGUgbGVhZGVyJ3MgZGVsdGEgc2hvdWxkIGJlIG11Y2gg bGVzcyB0aGFuIGEgc2VyaWFsIHNjYW4sIGRvY3VtZW50aW5nCistLSB0aGF0IHdvcmtlciBidWZm ZXIgYWN0aXZpdHkgaXMgbG9zdCBvbiBhYm9ydC4KK1NFTEVDVCBzaGFyZWRfYmxrc19oaXQgPCBz LnNlcmlhbF9kZWx0YSAvIDIKKyAgICAgICBBUyB3b3JrZXJfYWJvcnRfYnVmZmVyc19ub3RfcHJv cGFnYXRlZAorRlJPTSBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZSgpLCBwYXJfYWJvcnRfc2VyaWFs X3Jlc3VsdCBzOworIHdvcmtlcl9hYm9ydF9idWZmZXJzX25vdF9wcm9wYWdhdGVkIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworUkVTRVQgcGFy YWxsZWxfc2V0dXBfY29zdDsKK1JFU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3Q7CitSRVNFVCBtaW5f cGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplOworUkVTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVy X2dhdGhlcjsKK1JFU0VUIHBhcmFsbGVsX2xlYWRlcl9wYXJ0aWNpcGF0aW9uOworRFJPUCBUQUJM RSBwYXJfYWJvcnRfdGFiLCBwYXJfYWJvcnRfc2VyaWFsX3Jlc3VsdDsKKy0tIENsZWFudXAKK0RS T1AgRVhURU5TSU9OIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlOwpkaWZmIC0tZ2l0IGEvY29udHJp Yi9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS9tZXNvbi5idWlsZCBiL2NvbnRyaWIvcGdfc2Vzc2lv bl9idWZmZXJfdXNhZ2UvbWVzb24uYnVpbGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLjM0Yzc1MDJiZWI0Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wZ19zZXNz aW9uX2J1ZmZlcl91c2FnZS9tZXNvbi5idWlsZApAQCAtMCwwICsxLDM0IEBACisjIENvcHlyaWdo dCAoYykgMjAyNiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworcGdfc2Vz c2lvbl9idWZmZXJfdXNhZ2Vfc291cmNlcyA9IGZpbGVzKAorICAncGdfc2Vzc2lvbl9idWZmZXJf dXNhZ2UuYycsCispCisKK2lmIGhvc3Rfc3lzdGVtID09ICd3aW5kb3dzJworICBwZ19zZXNzaW9u X2J1ZmZlcl91c2FnZV9zb3VyY2VzICs9IHJjX2xpYl9nZW4ucHJvY2Vzcyh3aW4zMnZlcl9yYywg ZXh0cmFfYXJnczogWworICAgICctLU5BTUUnLCAncGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UnLAor ICAgICctLUZJTEVERVNDJywgJ3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlIC0gc2hvdyBidWZmZXIg dXNhZ2Ugc3RhdGlzdGljcyBmb3IgdGhlIGN1cnJlbnQgc2Vzc2lvbicsXSkKK2VuZGlmCisKK3Bn X3Nlc3Npb25fYnVmZmVyX3VzYWdlID0gc2hhcmVkX21vZHVsZSgncGdfc2Vzc2lvbl9idWZmZXJf dXNhZ2UnLAorICBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZV9zb3VyY2VzLAorICBrd2FyZ3M6IGNv bnRyaWJfbW9kX2FyZ3MsCispCitjb250cmliX3RhcmdldHMgKz0gcGdfc2Vzc2lvbl9idWZmZXJf dXNhZ2UKKworaW5zdGFsbF9kYXRhKAorICAncGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UtLTEuMC5z cWwnLAorICAncGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UuY29udHJvbCcsCisgIGt3YXJnczogY29u dHJpYl9kYXRhX2FyZ3MsCispCisKK3Rlc3RzICs9IHsKKyAgJ25hbWUnOiAncGdfc2Vzc2lvbl9i dWZmZXJfdXNhZ2UnLAorICAnc2QnOiBtZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwKKyAgJ2Jk JzogbWVzb24uY3VycmVudF9idWlsZF9kaXIoKSwKKyAgJ3JlZ3Jlc3MnOiB7CisgICAgJ3NxbCc6 IFsKKyAgICAgICdwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZScsCisgICAgXSwKKyAgfSwKK30KZGlm ZiAtLWdpdCBhL2NvbnRyaWIvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UvcGdfc2Vzc2lvbl9idWZm ZXJfdXNhZ2UtLTEuMC5zcWwgYi9jb250cmliL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlL3BnX3Nl c3Npb25fYnVmZmVyX3VzYWdlLS0xLjAuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi5iMzAwZmRiYzY0MwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcGdfc2Vz c2lvbl9idWZmZXJfdXNhZ2UvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UtLTEuMC5zcWwKQEAgLTAs MCArMSwzMSBAQAorLyogY29udHJpYi9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS9wZ19zZXNzaW9u X2J1ZmZlcl91c2FnZS0tMS4wLnNxbCAqLworCistLSBjb21wbGFpbiBpZiBzY3JpcHQgaXMgc291 cmNlZCBpbiBwc3FsLCByYXRoZXIgdGhhbiB2aWEgQ1JFQVRFIEVYVEVOU0lPTgorXGVjaG8gVXNl ICJDUkVBVEUgRVhURU5TSU9OIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlIiB0byBsb2FkIHRoaXMg ZmlsZS4gXHF1aXQKKworQ1JFQVRFIEZVTkNUSU9OIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlKAor ICAgIE9VVCBzaGFyZWRfYmxrc19oaXQgYmlnaW50LAorICAgIE9VVCBzaGFyZWRfYmxrc19yZWFk IGJpZ2ludCwKKyAgICBPVVQgc2hhcmVkX2Jsa3NfZGlydGllZCBiaWdpbnQsCisgICAgT1VUIHNo YXJlZF9ibGtzX3dyaXR0ZW4gYmlnaW50LAorICAgIE9VVCBsb2NhbF9ibGtzX2hpdCBiaWdpbnQs CisgICAgT1VUIGxvY2FsX2Jsa3NfcmVhZCBiaWdpbnQsCisgICAgT1VUIGxvY2FsX2Jsa3NfZGly dGllZCBiaWdpbnQsCisgICAgT1VUIGxvY2FsX2Jsa3Nfd3JpdHRlbiBiaWdpbnQsCisgICAgT1VU IHRlbXBfYmxrc19yZWFkIGJpZ2ludCwKKyAgICBPVVQgdGVtcF9ibGtzX3dyaXR0ZW4gYmlnaW50 LAorICAgIE9VVCBzaGFyZWRfYmxrX3JlYWRfdGltZSBkb3VibGUgcHJlY2lzaW9uLAorICAgIE9V VCBzaGFyZWRfYmxrX3dyaXRlX3RpbWUgZG91YmxlIHByZWNpc2lvbiwKKyAgICBPVVQgbG9jYWxf YmxrX3JlYWRfdGltZSBkb3VibGUgcHJlY2lzaW9uLAorICAgIE9VVCBsb2NhbF9ibGtfd3JpdGVf dGltZSBkb3VibGUgcHJlY2lzaW9uLAorICAgIE9VVCB0ZW1wX2Jsa19yZWFkX3RpbWUgZG91Ymxl IHByZWNpc2lvbiwKKyAgICBPVVQgdGVtcF9ibGtfd3JpdGVfdGltZSBkb3VibGUgcHJlY2lzaW9u CispCitSRVRVUk5TIHJlY29yZAorQVMgJ01PRFVMRV9QQVRITkFNRScsICdwZ19zZXNzaW9uX2J1 ZmZlcl91c2FnZScKK0xBTkdVQUdFIEMgUEFSQUxMRUwgUkVTVFJJQ1RFRDsKKworQ1JFQVRFIEZV TkNUSU9OIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlX3Jlc2V0KCkKK1JFVFVSTlMgdm9pZAorQVMg J01PRFVMRV9QQVRITkFNRScsICdwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZV9yZXNldCcKK0xBTkdV QUdFIEMgUEFSQUxMRUwgUkVTVFJJQ1RFRDsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc2Vzc2lv bl9idWZmZXJfdXNhZ2UvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UuYyBiL2NvbnRyaWIvcGdfc2Vz c2lvbl9idWZmZXJfdXNhZ2UvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UuYwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjg2OTk1NmIzYTkKLS0tIC9kZXYvbnVsbAorKysg Yi9jb250cmliL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdl LmMKQEAgLTAsMCArMSw5NSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfc2Vzc2lv bl9idWZmZXJfdXNhZ2UuYworICoJICBzaG93IGJ1ZmZlciB1c2FnZSBzdGF0aXN0aWNzIGZvciB0 aGUgY3VycmVudCBzZXNzaW9uCisgKgorICogQ29weXJpZ2h0IChjKSAyMDI2LCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICoKKyAqCSAgY29udHJpYi9wZ19zZXNzaW9uX2J1 ZmZlcl91c2FnZS9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS5jCisgKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRh aWxzLmgiCisjaW5jbHVkZSAiZXhlY3V0b3IvaW5zdHJ1bWVudC5oIgorI2luY2x1ZGUgImZ1bmNh cGkuaCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5o IgorCitQR19NT0RVTEVfTUFHSUNfRVhUKAorCQkJCQkubmFtZSA9ICJwZ19zZXNzaW9uX2J1ZmZl cl91c2FnZSIsCisJCQkJCS52ZXJzaW9uID0gUEdfVkVSU0lPTgorKTsKKworI2RlZmluZSBOVU1f QlVGRkVSX1VTQUdFX0NPTFVNTlMgMTYKKworUEdfRlVOQ1RJT05fSU5GT19WMShwZ19zZXNzaW9u X2J1ZmZlcl91c2FnZSk7CitQR19GVU5DVElPTl9JTkZPX1YxKHBnX3Nlc3Npb25fYnVmZmVyX3Vz YWdlX3Jlc2V0KTsKKworI2RlZmluZSBIQVZFX0lOU1RSX1NUQUNLIDEJCS8qIENoYW5nZSB0byAw IHdoZW4gdGVzdGluZyBiZWZvcmUgc3RhY2sKKwkJCQkJCQkJICogY2hhbmdlICovCisKKy8qCisg KiBTUUwgZnVuY3Rpb246IHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlKCkKKyAqCisgKiBSZXR1cm5z IGEgc2luZ2xlIHJvdyB3aXRoIGFsbCBCdWZmZXJVc2FnZSBjb3VudGVycyBhY2N1bXVsYXRlZCBz aW5jZSB0aGUKKyAqIHN0YXJ0IG9mIHRoZSBzZXNzaW9uLiBFeGNsdWRlcyBhbnkgdXNhZ2Ugbm90 IHlldCBhZGRlZCB0byB0aGUgdG9wIG9mIHRoZQorICogc3RhY2sgKGUuZy4gaWYgdGhpcyBnZXRz IGNhbGxlZCBpbnNpZGUgYSBzdGF0ZW1lbnQgdGhhdCBhbHNvIGhhZCBidWZmZXIKKyAqIGFjdGl2 aXR5KS4KKyAqLworRGF0dW0KK3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlKFBHX0ZVTkNUSU9OX0FS R1MpCit7CisJVHVwbGVEZXNjCXR1cGRlc2M7CisJRGF0dW0JCXZhbHVlc1tOVU1fQlVGRkVSX1VT QUdFX0NPTFVNTlNdOworCWJvb2wJCW51bGxzW05VTV9CVUZGRVJfVVNBR0VfQ09MVU1OU107CisJ QnVmZmVyVXNhZ2UgKnVzYWdlOworCisJaWYgKGdldF9jYWxsX3Jlc3VsdF90eXBlKGZjaW5mbywg TlVMTCwgJnR1cGRlc2MpICE9IFRZUEVGVU5DX0NPTVBPU0lURSkKKwkJZWxvZyhFUlJPUiwgInJl dHVybiB0eXBlIG11c3QgYmUgYSByb3cgdHlwZSIpOworCisJbWVtc2V0KG51bGxzLCAwLCBzaXpl b2YobnVsbHMpKTsKKworI2lmIEhBVkVfSU5TVFJfU1RBQ0sKKwl1c2FnZSA9ICZpbnN0cl90b3Au YnVmdXNhZ2U7CisjZWxzZQorCXVzYWdlID0gJnBnQnVmZmVyVXNhZ2U7CisjZW5kaWYKKworCXZh bHVlc1swXSA9IEludDY0R2V0RGF0dW0odXNhZ2UtPnNoYXJlZF9ibGtzX2hpdCk7CisJdmFsdWVz WzFdID0gSW50NjRHZXREYXR1bSh1c2FnZS0+c2hhcmVkX2Jsa3NfcmVhZCk7CisJdmFsdWVzWzJd ID0gSW50NjRHZXREYXR1bSh1c2FnZS0+c2hhcmVkX2Jsa3NfZGlydGllZCk7CisJdmFsdWVzWzNd ID0gSW50NjRHZXREYXR1bSh1c2FnZS0+c2hhcmVkX2Jsa3Nfd3JpdHRlbik7CisJdmFsdWVzWzRd ID0gSW50NjRHZXREYXR1bSh1c2FnZS0+bG9jYWxfYmxrc19oaXQpOworCXZhbHVlc1s1XSA9IElu dDY0R2V0RGF0dW0odXNhZ2UtPmxvY2FsX2Jsa3NfcmVhZCk7CisJdmFsdWVzWzZdID0gSW50NjRH ZXREYXR1bSh1c2FnZS0+bG9jYWxfYmxrc19kaXJ0aWVkKTsKKwl2YWx1ZXNbN10gPSBJbnQ2NEdl dERhdHVtKHVzYWdlLT5sb2NhbF9ibGtzX3dyaXR0ZW4pOworCXZhbHVlc1s4XSA9IEludDY0R2V0 RGF0dW0odXNhZ2UtPnRlbXBfYmxrc19yZWFkKTsKKwl2YWx1ZXNbOV0gPSBJbnQ2NEdldERhdHVt KHVzYWdlLT50ZW1wX2Jsa3Nfd3JpdHRlbik7CisJdmFsdWVzWzEwXSA9IEZsb2F0OEdldERhdHVt KElOU1RSX1RJTUVfR0VUX01JTExJU0VDKHVzYWdlLT5zaGFyZWRfYmxrX3JlYWRfdGltZSkpOwor CXZhbHVlc1sxMV0gPSBGbG9hdDhHZXREYXR1bShJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyh1c2Fn ZS0+c2hhcmVkX2Jsa193cml0ZV90aW1lKSk7CisJdmFsdWVzWzEyXSA9IEZsb2F0OEdldERhdHVt KElOU1RSX1RJTUVfR0VUX01JTExJU0VDKHVzYWdlLT5sb2NhbF9ibGtfcmVhZF90aW1lKSk7CisJ dmFsdWVzWzEzXSA9IEZsb2F0OEdldERhdHVtKElOU1RSX1RJTUVfR0VUX01JTExJU0VDKHVzYWdl LT5sb2NhbF9ibGtfd3JpdGVfdGltZSkpOworCXZhbHVlc1sxNF0gPSBGbG9hdDhHZXREYXR1bShJ TlNUUl9USU1FX0dFVF9NSUxMSVNFQyh1c2FnZS0+dGVtcF9ibGtfcmVhZF90aW1lKSk7CisJdmFs dWVzWzE1XSA9IEZsb2F0OEdldERhdHVtKElOU1RSX1RJTUVfR0VUX01JTExJU0VDKHVzYWdlLT50 ZW1wX2Jsa193cml0ZV90aW1lKSk7CisKKwlQR19SRVRVUk5fREFUVU0oSGVhcFR1cGxlR2V0RGF0 dW0oaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpKSk7Cit9CisKKy8qCisg KiBTUUwgZnVuY3Rpb246IHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlX3Jlc2V0KCkKKyAqCisgKiBS ZXNldHMgYWxsIEJ1ZmZlclVzYWdlIGNvdW50ZXJzIG9uIHRoZSB0b3AgaW5zdHJ1bWVudGF0aW9u IHN0YWNrIHRvIHplcm8uCisgKiBVc2VmdWwgaW4gdGVzdHMgdG8gYXZvaWQgdGhlIGJhc2VsaW5l L2RlbHRhIHBhdHRlcm4uCisgKi8KK0RhdHVtCitwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZV9yZXNl dChQR19GVU5DVElPTl9BUkdTKQoreworI2lmIEhBVkVfSU5TVFJfU1RBQ0sKKwltZW1zZXQoJmlu c3RyX3RvcC5idWZ1c2FnZSwgMCwgc2l6ZW9mKEJ1ZmZlclVzYWdlKSk7CisjZWxzZQorCW1lbXNl dCgmcGdCdWZmZXJVc2FnZSwgMCwgc2l6ZW9mKEJ1ZmZlclVzYWdlKSk7CisjZW5kaWYKKworCVBH X1JFVFVSTl9WT0lEKCk7Cit9CmRpZmYgLS1naXQgYS9jb250cmliL3BnX3Nlc3Npb25fYnVmZmVy X3VzYWdlL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlLmNvbnRyb2wgYi9jb250cmliL3BnX3Nlc3Np b25fYnVmZmVyX3VzYWdlL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlLmNvbnRyb2wKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZhYmQwNWVlMDI0Ci0tLSAvZGV2L251bGwK KysrIGIvY29udHJpYi9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS9wZ19zZXNzaW9uX2J1ZmZlcl91 c2FnZS5jb250cm9sCkBAIC0wLDAgKzEsNSBAQAorIyBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZSBl eHRlbnNpb24KK2NvbW1lbnQgPSAnc2hvdyBidWZmZXIgdXNhZ2Ugc3RhdGlzdGljcyBmb3IgdGhl IGN1cnJlbnQgc2Vzc2lvbicKK2RlZmF1bHRfdmVyc2lvbiA9ICcxLjAnCittb2R1bGVfcGF0aG5h bWUgPSAnJGxpYmRpci9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZScKK3JlbG9jYXRhYmxlID0gdHJ1 ZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS9zcWwvcGdfc2Vz c2lvbl9idWZmZXJfdXNhZ2Uuc3FsIGIvY29udHJpYi9wZ19zZXNzaW9uX2J1ZmZlcl91c2FnZS9z cWwvcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2Uuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi44ZjU4MTBmYWRkMwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcGdf c2Vzc2lvbl9idWZmZXJfdXNhZ2Uvc3FsL3BnX3Nlc3Npb25fYnVmZmVyX3VzYWdlLnNxbApAQCAt MCwwICsxLDIwNCBAQAorTE9BRCAncGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UnOworQ1JFQVRFIEVY VEVOU0lPTiBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZTsKKworLS0gVmVyaWZ5IGFsbCBjb2x1bW5z IGFyZSBub24tbmVnYXRpdmUKK1NFTEVDVCBjb3VudCgqKSA9IDEgQVMgb2sgRlJPTSBwZ19zZXNz aW9uX2J1ZmZlcl91c2FnZSgpCitXSEVSRSBzaGFyZWRfYmxrc19oaXQgPj0gMCBBTkQgc2hhcmVk X2Jsa3NfcmVhZCA+PSAwCisgIEFORCBzaGFyZWRfYmxrc19kaXJ0aWVkID49IDAgQU5EIHNoYXJl ZF9ibGtzX3dyaXR0ZW4gPj0gMAorICBBTkQgbG9jYWxfYmxrc19oaXQgPj0gMCBBTkQgbG9jYWxf Ymxrc19yZWFkID49IDAKKyAgQU5EIGxvY2FsX2Jsa3NfZGlydGllZCA+PSAwIEFORCBsb2NhbF9i bGtzX3dyaXR0ZW4gPj0gMAorICBBTkQgdGVtcF9ibGtzX3JlYWQgPj0gMCBBTkQgdGVtcF9ibGtz X3dyaXR0ZW4gPj0gMAorICBBTkQgc2hhcmVkX2Jsa19yZWFkX3RpbWUgPj0gMCBBTkQgc2hhcmVk X2Jsa193cml0ZV90aW1lID49IDAKKyAgQU5EIGxvY2FsX2Jsa19yZWFkX3RpbWUgPj0gMCBBTkQg bG9jYWxfYmxrX3dyaXRlX3RpbWUgPj0gMAorICBBTkQgdGVtcF9ibGtfcmVhZF90aW1lID49IDAg QU5EIHRlbXBfYmxrX3dyaXRlX3RpbWUgPj0gMDsKKworLS0gVmVyaWZ5IGNvdW50ZXJzIGluY3Jl YXNlIGFmdGVyIGJ1ZmZlciBhY3Rpdml0eQorU0VMRUNUIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdl X3Jlc2V0KCk7CisKK0NSRUFURSBURU1QIFRBQkxFIHRlc3RfYnVmX2FjdGl2aXR5IChpZCBpbnQs IGRhdGEgdGV4dCk7CitJTlNFUlQgSU5UTyB0ZXN0X2J1Zl9hY3Rpdml0eSBTRUxFQ1QgaSwgcmVw ZWF0KCd4JywgMTAwKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDAwKSBBUyBpOworU0VMRUNU IGNvdW50KCopIEZST00gdGVzdF9idWZfYWN0aXZpdHk7CisKK1NFTEVDVCBsb2NhbF9ibGtzX2hp dCArIGxvY2FsX2Jsa3NfcmVhZCA+IDAgQVMgYmxvY2tzX2luY3JlYXNlZAorRlJPTSBwZ19zZXNz aW9uX2J1ZmZlcl91c2FnZSgpOworCitEUk9QIFRBQkxFIHRlc3RfYnVmX2FjdGl2aXR5OworCist LSBQYXJhbGxlbCBxdWVyeSB0ZXN0CitDUkVBVEUgVEFCTEUgcGFyX2RjX3RhYiAoYSBpbnQsIGIg Y2hhcigyMDApKTsKK0lOU0VSVCBJTlRPIHBhcl9kY190YWIgU0VMRUNUIGksIHJlcGVhdCgneCcs IDIwMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTAwMCkgQVMgaTsKKworU0VMRUNUIGNvdW50 KCopIEZST00gcGFyX2RjX3RhYjsKKworLS0gTWVhc3VyZSBzZXJpYWwgc2NhbiBkZWx0YSAobGVh ZGVyIGRvZXMgYWxsIHRoZSB3b3JrKQorU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRo ZXIgPSAwOworCitTRUxFQ1QgcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2VfcmVzZXQoKTsKK1NFTEVD VCBjb3VudCgqKSBGUk9NIHBhcl9kY190YWI7CisKK0NSRUFURSBURU1QIFRBQkxFIGRjX3Nlcmlh bF9yZXN1bHQgQVMKK1NFTEVDVCBzaGFyZWRfYmxrc19oaXQgQVMgc2VyaWFsX2RlbHRhIEZST00g cGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UoKTsKKworLS0gTWVhc3VyZSBwYXJhbGxlbCBzY2FuIGRl bHRhIHdpdGggbGVhZGVyIE5PVCBwYXJ0aWNpcGF0aW5nIGluIHNjYW5uaW5nLgorLS0gV29ya2Vy cyBkbyBhbGwgdGFibGUgc2Nhbm5pbmc7IGxlYWRlciBvbmx5IHJ1bnMgdGhlIEdhdGhlciBub2Rl LgorU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3QgPSAwOworU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3Qg PSAwOworU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemUgPSAwOworU0VUIG1heF9wYXJh bGxlbF93b3JrZXJzX3Blcl9nYXRoZXIgPSAyOworU0VUIHBhcmFsbGVsX2xlYWRlcl9wYXJ0aWNp cGF0aW9uID0gb2ZmOworCitTRUxFQ1QgcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2VfcmVzZXQoKTsK K1NFTEVDVCBjb3VudCgqKSBGUk9NIHBhcl9kY190YWI7CisKKy0tIENvbmZpcm0gd2UgZ290IGEg c2ltaWxhciBoaXQgY291bnRlciB0aHJvdWdoIHBhcmFsbGVsIHdvcmtlciBhY2N1bXVsYXRpb24K K1NFTEVDVCBzaGFyZWRfYmxrc19oaXQgPiBzLnNlcmlhbF9kZWx0YSAvIDIgQU5EIHNoYXJlZF9i bGtzX2hpdCA8IHMuc2VyaWFsX2RlbHRhICogMgorICAgICAgIEFTIGxlYWRlcl9idWZmZXJzX21h dGNoCitGUk9NIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlKCksIGRjX3NlcmlhbF9yZXN1bHQgczsK KworUkVTRVQgcGFyYWxsZWxfc2V0dXBfY29zdDsKK1JFU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3Q7 CitSRVNFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplOworUkVTRVQgbWF4X3BhcmFsbGVs X3dvcmtlcnNfcGVyX2dhdGhlcjsKK1JFU0VUIHBhcmFsbGVsX2xlYWRlcl9wYXJ0aWNpcGF0aW9u OworCitEUk9QIFRBQkxFIHBhcl9kY190YWIsIGRjX3NlcmlhbF9yZXN1bHQ7CisKKy0tCistLSBB Ym9ydC9leGNlcHRpb24gdGVzdHM6IHZlcmlmeSBidWZmZXIgdXNhZ2Ugc3Vydml2ZXMgdmFyaW91 cyBlcnJvciBwYXRocy4KKy0tCisKKy0tIFJvbGxlZC1iYWNrIGRpdmlkZS1ieS16ZXJvIHVuZGVy IEVYUExBSU4gQU5BTFlaRQorQ1JFQVRFIFRFTVAgVEFCTEUgZXhjX3RhYiAoYSBpbnQsIGIgY2hh cigyMCkpOworCitTRUxFQ1QgcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2VfcmVzZXQoKTsKKworRVhQ TEFJTiAoQU5BTFlaRSwgQlVGRkVSUywgQ09TVFMgT0ZGKQorICAgICAgICBXSVRIIGlucyBBUyAo SU5TRVJUIElOVE8gZXhjX3RhYiBWQUxVRVMgKDEsICdhYWEnKSBSRVRVUk5JTkcgYSkKKyAgICAg ICAgU0VMRUNUIGEgLyAwIEZST00gaW5zOworCitTRUxFQ1QgbG9jYWxfYmxrc19kaXJ0aWVkID4g MCBBUyBleGNlcHRpb25fYnVmZmVyc192aXNpYmxlCitGUk9NIHBnX3Nlc3Npb25fYnVmZmVyX3Vz YWdlKCk7CisKK0RST1AgVEFCTEUgZXhjX3RhYjsKKworLS0gVW5pcXVlIGNvbnN0cmFpbnQgdmlv bGF0aW9uIGluIHJlZ3VsYXIgcXVlcnkKK0NSRUFURSBURU1QIFRBQkxFIHVuaXF1ZV90YWIgKGEg aW50IFVOSVFVRSwgYiBjaGFyKDIwKSk7CitJTlNFUlQgSU5UTyB1bmlxdWVfdGFiIFZBTFVFUyAo MSwgJ2ZpcnN0Jyk7CisKK1NFTEVDVCBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZV9yZXNldCgpOwor SU5TRVJUIElOVE8gdW5pcXVlX3RhYiBWQUxVRVMgKDEsICdkdXBsaWNhdGUnKTsKKworU0VMRUNU IGxvY2FsX2Jsa3NfaGl0ID4gMCBBUyB1bmlxdWVfdmlvbGF0aW9uX2J1ZmZlcnNfdmlzaWJsZQor RlJPTSBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZSgpOworCitEUk9QIFRBQkxFIHVuaXF1ZV90YWI7 CisKKy0tIENhdWdodCBleGNlcHRpb24gaW4gUEwvcGdTUUwgc3VidHJhbnNhY3Rpb24gKEJFR0lO Li4uRVhDRVBUSU9OKQorQ1JFQVRFIFRFTVAgVEFCTEUgc3VieGFjdF90YWIgKGEgaW50LCBiIGNo YXIoMjApKTsKKworQ1JFQVRFIEZVTkNUSU9OIHN1YnhhY3RfZXhjX2Z1bmMoKSBSRVRVUk5TIHRl eHQgQVMgJCQKK0JFR0lOCisgICAgQkVHSU4KKyAgICAgICAgRVhFQ1VURSAnRVhQTEFJTiAoQU5B TFlaRSwgQlVGRkVSUywgQ09TVFMgT0ZGKQorICAgICAgICAgICAgV0lUSCBpbnMgQVMgKElOU0VS VCBJTlRPIHN1YnhhY3RfdGFiIFZBTFVFUyAoMSwgJydhYWEnJykgUkVUVVJOSU5HIGEpCisgICAg ICAgICAgICBTRUxFQ1QgYSAvIDAgRlJPTSBpbnMnOworICAgIEVYQ0VQVElPTiBXSEVOIGRpdmlz aW9uX2J5X3plcm8gVEhFTgorICAgICAgICBSRVRVUk4gJ2NhdWdodCc7CisgICAgRU5EOworICAg IFJFVFVSTiAnbm90IHJlYWNoZWQnOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VM RUNUIHBnX3Nlc3Npb25fYnVmZmVyX3VzYWdlX3Jlc2V0KCk7CitTRUxFQ1Qgc3VieGFjdF9leGNf ZnVuYygpOworCitTRUxFQ1QgbG9jYWxfYmxrc19kaXJ0aWVkID4gMCBBUyBzdWJ4YWN0X2J1ZmZl cnNfdmlzaWJsZQorRlJPTSBwZ19zZXNzaW9uX2J1ZmZlcl91c2FnZSgpOworCitEUk9QIEZVTkNU SU9OIHN1YnhhY3RfZXhjX2Z1bmM7CitEUk9QIFRBQkxFIHN1YnhhY3RfdGFiOworCistLSBDdXJz b3IgKEZPUiBsb29wKSBpbiBhYm9ydGVkIHN1YnRyYW5zYWN0aW9uOyB2ZXJpZnkgcG9zdC1leGNl cHRpb24gdHJhY2tpbmcKK0NSRUFURSBURU1QIFRBQkxFIGN1cnNvcl90YWIgKGEgaW50LCBiIGNo YXIoMjAwKSk7CitJTlNFUlQgSU5UTyBjdXJzb3JfdGFiIFNFTEVDVCBpLCByZXBlYXQoJ3gnLCAy MDApIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgaTsKKworQ1JFQVRFIEZVTkNUSU9O IGN1cnNvcl9leGNfZnVuYygpIFJFVFVSTlMgdGV4dCBBUyAkJAorREVDTEFSRQorICAgIHJlYyBy ZWNvcmQ7CisgICAgY250IGludCA6PSAwOworQkVHSU4KKyAgICBCRUdJTgorICAgICAgICBGT1Ig cmVjIElOIFNFTEVDVCAqIEZST00gY3Vyc29yX3RhYiBMT09QCisgICAgICAgICAgICBjbnQgOj0g Y250ICsgMTsKKyAgICAgICAgICAgIElGIGNudCA9IDI1MCBUSEVOCisgICAgICAgICAgICAgICAg UEVSRk9STSAxIC8gMDsKKyAgICAgICAgICAgIEVORCBJRjsKKyAgICAgICAgRU5EIExPT1A7Cisg ICAgRVhDRVBUSU9OIFdIRU4gZGl2aXNpb25fYnlfemVybyBUSEVOCisgICAgICAgIFJFVFVSTiAn Y2F1Z2h0IGFmdGVyICcgfHwgY250IHx8ICcgcm93cyc7CisgICAgRU5EOworICAgIFJFVFVSTiAn bm90IHJlYWNoZWQnOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VMRUNUIHBnX3Nl c3Npb25fYnVmZmVyX3VzYWdlX3Jlc2V0KCk7CitTRUxFQ1QgY3Vyc29yX2V4Y19mdW5jKCk7CisK K1NFTEVDVCBsb2NhbF9ibGtzX2hpdCArIGxvY2FsX2Jsa3NfcmVhZCA+IDAKKyAgICAgICBBUyBj dXJzb3Jfc3VieGFjdF9idWZmZXJzX3Zpc2libGUKK0ZST00gcGdfc2Vzc2lvbl9idWZmZXJfdXNh Z2UoKTsKKworRFJPUCBGVU5DVElPTiBjdXJzb3JfZXhjX2Z1bmM7CitEUk9QIFRBQkxFIGN1cnNv cl90YWI7CisKKy0tIFBhcmFsbGVsIHdvcmtlciBhYm9ydDogd29ya2VyIGJ1ZmZlciBhY3Rpdml0 eSBpcyBjdXJyZW50bHkgTk9UIHByb3BhZ2F0ZWQgb24gYWJvcnQuCistLQorLS0gV2hlbiBhIHBh cmFsbGVsIHdvcmtlciBhYm9ydHMsIEluc3RyRW5kUGFyYWxsZWxRdWVyeSBhbmQKKy0tIEV4ZWNQ YXJhbGxlbFJlcG9ydEluc3RydW1lbnRhdGlvbiBuZXZlciBydW4sIHNvIHRoZSB3b3JrZXIncyBi dWZmZXIKKy0tIGFjdGl2aXR5IGlzIG5ldmVyIHdyaXR0ZW4gdG8gc2hhcmVkIG1lbW9yeSwgZGVz cGl0ZSB0aGUgaW5mb3JtYXRpb24gaGF2aW5nIGJlZW4KKy0tIGNhcHR1cmVkIGJ5IHRoZSByZXMg b3duZXIgcmVsZWFzZSBpbnN0cnVtZW50YXRpb24gaGFuZGxpbmcuCitDUkVBVEUgVEFCTEUgcGFy X2Fib3J0X3RhYiAoYSBpbnQsIGIgY2hhcigyMDApKTsKK0lOU0VSVCBJTlRPIHBhcl9hYm9ydF90 YWIgU0VMRUNUIGksIHJlcGVhdCgneCcsIDIwMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTAw MCkgQVMgaTsKKworLS0gV2FybSBzaGFyZWQgYnVmZmVycyBzbyBhbGwgcmVhZHMgYmVjb21lIGhp dHMKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBhcl9hYm9ydF90YWI7CisKKy0tIE1lYXN1cmUgc2Vy aWFsIHNjYW4gZGVsdGEgYXMgYSByZWZlcmVuY2UgKGxlYWRlciByZWFkcyBhbGwgYmxvY2tzKQor U0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXIgPSAwOworCitTRUxFQ1QgcGdfc2Vz c2lvbl9idWZmZXJfdXNhZ2VfcmVzZXQoKTsKK1NFTEVDVCBiOjppbnQyIEZST00gcGFyX2Fib3J0 X3RhYiBXSEVSRSBhID4gMTAwMDsKKworQ1JFQVRFIFRBQkxFIHBhcl9hYm9ydF9zZXJpYWxfcmVz dWx0IEFTCitTRUxFQ1Qgc2hhcmVkX2Jsa3NfaGl0IEFTIHNlcmlhbF9kZWx0YSBGUk9NIHBnX3Nl c3Npb25fYnVmZmVyX3VzYWdlKCk7CisKKy0tIE5vdyBmb3JjZSBwYXJhbGxlbCB3aXRoIGxlYWRl ciBOT1QgcGFydGljaXBhdGluZyBpbiBzY2FubmluZworU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3Qg PSAwOworU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3QgPSAwOworU0VUIG1pbl9wYXJhbGxlbF90YWJs ZV9zY2FuX3NpemUgPSAwOworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXIgPSAy OworU0VUIHBhcmFsbGVsX2xlYWRlcl9wYXJ0aWNpcGF0aW9uID0gb2ZmOworU0VUIGRlYnVnX3Bh cmFsbGVsX3F1ZXJ5ID0gb247IC0tIEVuc3VyZSB3ZSBnZXQgQ09OVEVYVCBsaW5lIGNvbnNpc3Rl bnRseQorCitTRUxFQ1QgcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2VfcmVzZXQoKTsKK1NFTEVDVCBi OjppbnQyIEZST00gcGFyX2Fib3J0X3RhYiBXSEVSRSBhID4gMTAwMDsKKworUkVTRVQgZGVidWdf cGFyYWxsZWxfcXVlcnk7CisKKy0tIFdvcmtlcnMgc2Nhbm5lZCB0aGUgdGFibGUgYnV0IGFib3J0 ZWQgYmVmb3JlIHJlcG9ydGluZyBzdGF0cyBiYWNrLgorLS0gVGhlIGxlYWRlcidzIGRlbHRhIHNo b3VsZCBiZSBtdWNoIGxlc3MgdGhhbiBhIHNlcmlhbCBzY2FuLCBkb2N1bWVudGluZworLS0gdGhh dCB3b3JrZXIgYnVmZmVyIGFjdGl2aXR5IGlzIGxvc3Qgb24gYWJvcnQuCitTRUxFQ1Qgc2hhcmVk X2Jsa3NfaGl0IDwgcy5zZXJpYWxfZGVsdGEgLyAyCisgICAgICAgQVMgd29ya2VyX2Fib3J0X2J1 ZmZlcnNfbm90X3Byb3BhZ2F0ZWQKK0ZST00gcGdfc2Vzc2lvbl9idWZmZXJfdXNhZ2UoKSwgcGFy X2Fib3J0X3NlcmlhbF9yZXN1bHQgczsKKworUkVTRVQgcGFyYWxsZWxfc2V0dXBfY29zdDsKK1JF U0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3Q7CitSRVNFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9z aXplOworUkVTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlcjsKK1JFU0VUIHBhcmFs bGVsX2xlYWRlcl9wYXJ0aWNpcGF0aW9uOworCitEUk9QIFRBQkxFIHBhcl9hYm9ydF90YWIsIHBh cl9hYm9ydF9zZXJpYWxfcmVzdWx0OworCistLSBDbGVhbnVwCitEUk9QIEVYVEVOU0lPTiBwZ19z ZXNzaW9uX2J1ZmZlcl91c2FnZTsKLS0gCjIuNDcuMQoK --0000000000001ac30e064d022147 Content-Type: application/octet-stream; name="v8-0007-Index-scans-Show-table-buffer-accesses-separately.patch" Content-Disposition: attachment; filename="v8-0007-Index-scans-Show-table-buffer-accesses-separately.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmqsnn4s6 RnJvbSA0MmRjOGNkZGEzMzQ2YmVkYjc4MzljZWRhNDRkNjFkYjRlMjFmNzJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBT YXQsIDcgTWFyIDIwMjYgMTE6NDY6MTkgLTA4MDAKU3ViamVjdDogW1BBVENIIHY4IDcvOF0gSW5k ZXggc2NhbnM6IFNob3cgdGFibGUgYnVmZmVyIGFjY2Vzc2VzIHNlcGFyYXRlbHkgaW4KIEVYUExB SU4gQU5BTFlaRQoKVGhpcyBzZXRzIHVwIGEgc2VwYXJhdGUgaW5zdHJ1bWVudGF0aW9uIHN0YWNr IHRoYXQgaXMgdXNlZCB3aGlsc3QgYW4KSW5kZXggU2NhbiBkb2VzIHNjYW5uaW5nIG9uIHRoZSB0 YWJsZSwgZm9yIGV4YW1wbGUgZHVlIHRvIGFkZGl0aW9uYWwKZGF0YSBiZWluZyBuZWVkZWQuCgpF WFBMQUlOIEFOQUxZWkUgd2lsbCBub3cgc2hvdyAiVGFibGUgQnVmZmVycyIgdGhhdCByZXByZXNl bnQgc3VjaCBhY3Rpdml0eS4KVGhlIGFjdGl2aXR5IGlzIGFsc28gaW5jbHVkZWQgaW4gcmVndWxh ciAiQnVmZmVycyIgdG9nZXRoZXIgd2l0aCBpbmRleAphY3Rpdml0eSBhbmQgdGhhdCBvZiBhbnkg Y2hpbGQgbm9kZXMuCgpBdXRob3I6IEx1a2FzIEZpdHRsIDxsdWthc0BmaXR0bC5jb20+ClN1Z2dl c3RlZC1ieTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTog WnNvbHQgUGFycmFnaSA8enNvbHQucGFycmFnaUBwZXJjb25hLmNvbT4KRGlzY3Vzc2lvbjogaHR0 cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0L0NBUDUzUGt4cm1wRUN6VkZw ZWVFRUhER2U2dTYyNXMlMkJZa21WdjUtZ3czTF9ORFNmYmlBJTQwbWFpbC5nbWFpbC5jb20jY2I1 ODNhMDhlOGUwOTZhYTFmMDkzYmIxNzg5MDYxNzMKLS0tCiBkb2Mvc3JjL3NnbWwvcGVyZm9ybS5z Z21sICAgICAgICAgICAgICB8ICAxMyArKy0KIGRvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21s ICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyAgICAgICAg IHwgIDQ0ICsrKysrKysrLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQcm9jbm9kZS5jICAg IHwgIDM1ICsrKysrKysrCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMgICB8 IDExMCArKysrKysrKysrKysrKysrKysrLS0tLS0tCiBzcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0 cnVtZW50X25vZGUuaCB8ICAgNiArKwogc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAg ICAgICAgfCAgIDcgKysKIDcgZmlsZXMgY2hhbmdlZCwgMTgyIGluc2VydGlvbnMoKyksIDM0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wZXJmb3JtLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcGVyZm9ybS5zZ21sCmluZGV4IDVmNmYxZGIwNDY3Li45MjE5NjI1ZmFmNiAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BlcmZvcm0uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcGVy Zm9ybS5zZ21sCkBAIC03MzQsNiArNzM0LDcgQEAgV0hFUkUgdDEudW5pcXVlMSAmbHQ7IDEwIEFO RCB0MS51bmlxdWUyID0gdDIudW5pcXVlMjsKICAgIC0mZ3Q7ICBJbmRleCBTY2FuIHVzaW5nIHRl bmsyX3VuaXF1ZTIgb24gdGVuazIgdDIgIChjb3N0PTAuMjkuLjcuOTAgcm93cz0xIHdpZHRoPTI0 NCkgKGFjdHVhbCB0aW1lPTAuMDAzLi4wLjAwMyByb3dzPTEuMDAgbG9vcHM9MTApCiAgICAgICAg ICBJbmRleCBDb25kOiAodW5pcXVlMiA9IHQxLnVuaXF1ZTIpCiAgICAgICAgICBJbmRleCBTZWFy Y2hlczogMTAKKyAgICAgICAgIFRhYmxlIEJ1ZmZlcnM6IHNoYXJlZCBoaXQ9MTAKICAgICAgICAg IEJ1ZmZlcnM6IHNoYXJlZCBoaXQ9MjQgcmVhZD02CiAgUGxhbm5pbmc6CiAgICBCdWZmZXJzOiBz aGFyZWQgaGl0PTE1IGRpcnRpZWQ9OQpAQCAtOTQ5LDcgKzk1MCw4IEBAIEVYUExBSU4gQU5BTFla RSBTRUxFQ1QgKiBGUk9NIHBvbHlnb25fdGJsIFdIRVJFIGYxIEAmZ3Q7IHBvbHlnb24gJygwLjUs Mi4wKSc7CiAgICBJbmRleCBDb25kOiAoZjEgQCZndDsgJygoMC41LDIpKSc6OnBvbHlnb24pCiAg ICBSb3dzIFJlbW92ZWQgYnkgSW5kZXggUmVjaGVjazogMQogICAgSW5kZXggU2VhcmNoZXM6IDEK LSAgIEJ1ZmZlcnM6IHNoYXJlZCBoaXQ9MQorICAgVGFibGUgQnVmZmVyczogc2hhcmVkIGhpdD0x CisgICBCdWZmZXJzOiBzaGFyZWQgaGl0PTIKICBQbGFubmluZyBUaW1lOiAwLjAzOSBtcwogIEV4 ZWN1dGlvbiBUaW1lOiAwLjA5OCBtcwogPC9zY3JlZW4+CkBAIC05NTgsNyArOTYwLDkgQEAgRVhQ TEFJTiBBTkFMWVpFIFNFTEVDVCAqIEZST00gcG9seWdvbl90YmwgV0hFUkUgZjEgQCZndDsgcG9s eWdvbiAnKDAuNSwyLjApJzsKICAgICB0aGVuIHJlamVjdGVkIGJ5IGEgcmVjaGVjayBvZiB0aGUg aW5kZXggY29uZGl0aW9uLiAgVGhpcyBoYXBwZW5zIGJlY2F1c2UgYQogICAgIEdpU1QgaW5kZXgg aXMgPHF1b3RlPmxvc3N5PC9xdW90ZT4gZm9yIHBvbHlnb24gY29udGFpbm1lbnQgdGVzdHM6IGl0 IGFjdHVhbGx5CiAgICAgcmV0dXJucyB0aGUgcm93cyB3aXRoIHBvbHlnb25zIHRoYXQgb3Zlcmxh cCB0aGUgdGFyZ2V0LCBhbmQgdGhlbiB3ZSBoYXZlCi0gICAgdG8gZG8gdGhlIGV4YWN0IGNvbnRh aW5tZW50IHRlc3Qgb24gdGhvc2Ugcm93cy4KKyAgICB0byBkbyB0aGUgZXhhY3QgY29udGFpbm1l bnQgdGVzdCBvbiB0aG9zZSByb3dzLiBUaGUgPGxpdGVyYWw+VGFibGUgQnVmZmVyczwvbGl0ZXJh bD4KKyAgICBjb3VudHMgaW5kaWNhdGUgaG93IG1hbnkgb3BlcmF0aW9ucyB3ZXJlIHBlcmZvcm1l ZCBvbiB0aGUgdGFibGUgaW5zdGVhZCBvZgorICAgIHRoZSBpbmRleC4gVGhpcyBudW1iZXIgaXMg aW5jbHVkZWQgaW4gdGhlIDxsaXRlcmFsPkJ1ZmZlcnM8L2xpdGVyYWw+IGNvdW50cy4KICAgIDwv cGFyYT4KIAogICAgPHBhcmE+CkBAIC0xMTQ3LDEzICsxMTUxLDE0IEBAIEVYUExBSU4gQU5BTFla RSBTRUxFQ1QgKiBGUk9NIHRlbmsxIFdIRVJFIHVuaXF1ZTEgJmx0OyAxMDAgQU5EIHVuaXF1ZTIg Jmd0OyA5MDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSZ6d3NwOy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIExpbWl0ICAoY29z dD0wLjI5Li4xNC4zMyByb3dzPTIgd2lkdGg9MjQ0KSAoYWN0dWFsIHRpbWU9MC4wNTEuLjAuMDcx IHJvd3M9Mi4wMCBsb29wcz0xKQotICAgQnVmZmVyczogc2hhcmVkIGhpdD0xNgorICAgQnVmZmVy czogc2hhcmVkIGhpdD0xNAogICAgLSZndDsgIEluZGV4IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVl MiBvbiB0ZW5rMSAgKGNvc3Q9MC4yOS4uNzAuNTAgcm93cz0xMCB3aWR0aD0yNDQpIChhY3R1YWwg dGltZT0wLjA1MS4uMC4wNzAgcm93cz0yLjAwIGxvb3BzPTEpCiAgICAgICAgICBJbmRleCBDb25k OiAodW5pcXVlMiAmZ3Q7IDkwMDApCiAgICAgICAgICBGaWx0ZXI6ICh1bmlxdWUxICZsdDsgMTAw KQogICAgICAgICAgUm93cyBSZW1vdmVkIGJ5IEZpbHRlcjogMjg3CiAgICAgICAgICBJbmRleCBT ZWFyY2hlczogMQotICAgICAgICAgQnVmZmVyczogc2hhcmVkIGhpdD0xNgorICAgICAgICAgVGFi bGUgQnVmZmVyczogc2hhcmVkIGhpdD0xMQorICAgICAgICAgQnVmZmVyczogc2hhcmVkIGhpdD0x NAogIFBsYW5uaW5nIFRpbWU6IDAuMDc3IG1zCiAgRXhlY3V0aW9uIFRpbWU6IDAuMDg2IG1zCiA8 L3NjcmVlbj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sIGIvZG9j L3NyYy9zZ21sL3JlZi9leHBsYWluLnNnbWwKaW5kZXggN2RlZTc3ZmQzNjYuLjkxMmM5NmYyZmY1 IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2V4cGxhaW4uc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2V4cGxhaW4uc2dtbApAQCAtNTA2LDYgKzUwNiw3IEBAIEVYUExBSU4gQU5BTFla RSBFWEVDVVRFIHF1ZXJ5KDEwMCwgMjAwKTsKICAgIC0mZ3Q7ICBJbmRleCBTY2FuIHVzaW5nIHRl c3RfcGtleSBvbiB0ZXN0ICAoY29zdD0wLjI5Li4xMC4yNyByb3dzPTk5IHdpZHRoPTgpIChhY3R1 YWwgdGltZT0wLjAwOS4uMC4wMjUgcm93cz05OS4wMCBsb29wcz0xKQogICAgICAgICAgSW5kZXgg Q29uZDogKChpZCAmZ3Q7IDEwMCkgQU5EIChpZCAmbHQ7IDIwMCkpCiAgICAgICAgICBJbmRleCBT ZWFyY2hlczogMQorICAgICAgICAgVGFibGUgQnVmZmVyczogc2hhcmVkIGhpdD0xCiAgICAgICAg ICBCdWZmZXJzOiBzaGFyZWQgaGl0PTQKICBQbGFubmluZyBUaW1lOiAwLjI0NCBtcwogIEV4ZWN1 dGlvbiBUaW1lOiAwLjA3MyBtcwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhw bGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IGFhNzZmNjhiZDEw Li44YTY0MWY5ZDA1ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwpAQCAtMTQzLDcgKzE0Myw3IEBA IHN0YXRpYyB2b2lkIHNob3dfaW5zdHJ1bWVudGF0aW9uX2NvdW50KGNvbnN0IGNoYXIgKnFsYWJl bCwgaW50IHdoaWNoLAogc3RhdGljIHZvaWQgc2hvd19mb3JlaWduc2Nhbl9pbmZvKEZvcmVpZ25T Y2FuU3RhdGUgKmZzc3RhdGUsIEV4cGxhaW5TdGF0ZSAqZXMpOwogc3RhdGljIGNvbnN0IGNoYXIg KmV4cGxhaW5fZ2V0X2luZGV4X25hbWUoT2lkIGluZGV4SWQpOwogc3RhdGljIGJvb2wgcGVla19i dWZmZXJfdXNhZ2UoRXhwbGFpblN0YXRlICplcywgY29uc3QgQnVmZmVyVXNhZ2UgKnVzYWdlKTsK LXN0YXRpYyB2b2lkIHNob3dfYnVmZmVyX3VzYWdlKEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IEJ1 ZmZlclVzYWdlICp1c2FnZSk7CitzdGF0aWMgdm9pZCBzaG93X2J1ZmZlcl91c2FnZShFeHBsYWlu U3RhdGUgKmVzLCBjb25zdCBCdWZmZXJVc2FnZSAqdXNhZ2UsIGNvbnN0IGNoYXIgKnRpdGxlKTsK IHN0YXRpYyB2b2lkIHNob3dfd2FsX3VzYWdlKEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IFdhbFVz YWdlICp1c2FnZSk7CiBzdGF0aWMgdm9pZCBzaG93X21lbW9yeV9jb3VudGVycyhFeHBsYWluU3Rh dGUgKmVzLAogCQkJCQkJCQkgY29uc3QgTWVtb3J5Q29udGV4dENvdW50ZXJzICptZW1fY291bnRl cnMpOwpAQCAtNjAzLDcgKzYwMyw3IEBAIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFu bmVkc3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRlICplcywKIAkJfQogCiAJCWlm IChidWZ1c2FnZSkKLQkJCXNob3dfYnVmZmVyX3VzYWdlKGVzLCBidWZ1c2FnZSk7CisJCQlzaG93 X2J1ZmZlcl91c2FnZShlcywgYnVmdXNhZ2UsIE5VTEwpOwogCiAJCWlmIChtZW1fY291bnRlcnMp CiAJCQlzaG93X21lbW9yeV9jb3VudGVycyhlcywgbWVtX2NvdW50ZXJzKTsKQEAgLTEwMjAsNyAr MTAyMCw3IEBAIEV4cGxhaW5QcmludFNlcmlhbGl6ZShFeHBsYWluU3RhdGUgKmVzLCBTZXJpYWxp emVNZXRyaWNzICptZXRyaWNzKQogCQlpZiAoZXMtPmJ1ZmZlcnMgJiYgcGVla19idWZmZXJfdXNh Z2UoZXMsICZtZXRyaWNzLT5idWZmZXJVc2FnZSkpCiAJCXsKIAkJCWVzLT5pbmRlbnQrKzsKLQkJ CXNob3dfYnVmZmVyX3VzYWdlKGVzLCAmbWV0cmljcy0+YnVmZmVyVXNhZ2UpOworCQkJc2hvd19i dWZmZXJfdXNhZ2UoZXMsICZtZXRyaWNzLT5idWZmZXJVc2FnZSwgTlVMTCk7CiAJCQllcy0+aW5k ZW50LS07CiAJCX0KIAl9CkBAIC0xMDM0LDcgKzEwMzQsNyBAQCBFeHBsYWluUHJpbnRTZXJpYWxp emUoRXhwbGFpblN0YXRlICplcywgU2VyaWFsaXplTWV0cmljcyAqbWV0cmljcykKIAkJCQkJCQkJ QllURVNfVE9fS0lMT0JZVEVTKG1ldHJpY3MtPmJ5dGVzU2VudCksIGVzKTsKIAkJRXhwbGFpblBy b3BlcnR5VGV4dCgiRm9ybWF0IiwgZm9ybWF0LCBlcyk7CiAJCWlmIChlcy0+YnVmZmVycykKLQkJ CXNob3dfYnVmZmVyX3VzYWdlKGVzLCAmbWV0cmljcy0+YnVmZmVyVXNhZ2UpOworCQkJc2hvd19i dWZmZXJfdXNhZ2UoZXMsICZtZXRyaWNzLT5idWZmZXJVc2FnZSwgTlVMTCk7CiAJfQogCiAJRXhw bGFpbkNsb3NlR3JvdXAoIlNlcmlhbGl6YXRpb24iLCAiU2VyaWFsaXphdGlvbiIsIHRydWUsIGVz KTsKQEAgLTE5NjIsNiArMTk2Miw5IEBAIEV4cGxhaW5Ob2RlKFBsYW5TdGF0ZSAqcGxhbnN0YXRl LCBMaXN0ICphbmNlc3RvcnMsCiAJCQkJc2hvd19pbnN0cnVtZW50YXRpb25fY291bnQoIlJvd3Mg UmVtb3ZlZCBieSBGaWx0ZXIiLCAxLAogCQkJCQkJCQkJCSAgIHBsYW5zdGF0ZSwgZXMpOwogCQkJ c2hvd19pbmRleHNlYXJjaGVzX2luZm8ocGxhbnN0YXRlLCBlcyk7CisKKwkJCWlmIChlcy0+YnVm ZmVycyAmJiBwbGFuc3RhdGUtPmluc3RydW1lbnQpCisJCQkJc2hvd19idWZmZXJfdXNhZ2UoZXMs ICYoKEluZGV4U2NhblN0YXRlICopIHBsYW5zdGF0ZSktPmlzc19JbnN0cnVtZW50VGFibGUtPmlu c3RyLmJ1ZnVzYWdlLCAiVGFibGUiKTsKIAkJCWJyZWFrOwogCQljYXNlIFRfSW5kZXhPbmx5U2Nh bjoKIAkJCXNob3dfc2Nhbl9xdWFsKCgoSW5kZXhPbmx5U2NhbiAqKSBwbGFuKS0+aW5kZXhxdWFs LApAQCAtMjI4MCw3ICsyMjgzLDcgQEAgRXhwbGFpbk5vZGUoUGxhblN0YXRlICpwbGFuc3RhdGUs IExpc3QgKmFuY2VzdG9ycywKIAogCS8qIFNob3cgYnVmZmVyL1dBTCB1c2FnZSAqLwogCWlmIChl cy0+YnVmZmVycyAmJiBwbGFuc3RhdGUtPmluc3RydW1lbnQpCi0JCXNob3dfYnVmZmVyX3VzYWdl KGVzLCAmcGxhbnN0YXRlLT5pbnN0cnVtZW50LT5pbnN0ci5idWZ1c2FnZSk7CisJCXNob3dfYnVm ZmVyX3VzYWdlKGVzLCAmcGxhbnN0YXRlLT5pbnN0cnVtZW50LT5pbnN0ci5idWZ1c2FnZSwgTlVM TCk7CiAJaWYgKGVzLT53YWwgJiYgcGxhbnN0YXRlLT5pbnN0cnVtZW50KQogCQlzaG93X3dhbF91 c2FnZShlcywgJnBsYW5zdGF0ZS0+aW5zdHJ1bWVudC0+aW5zdHIud2FsdXNhZ2UpOwogCkBAIC0y Mjk5LDcgKzIzMDIsNyBAQCBFeHBsYWluTm9kZShQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgTGlzdCAq YW5jZXN0b3JzLAogCiAJCQlFeHBsYWluT3BlbldvcmtlcihuLCBlcyk7CiAJCQlpZiAoZXMtPmJ1 ZmZlcnMpCi0JCQkJc2hvd19idWZmZXJfdXNhZ2UoZXMsICZpbnN0cnVtZW50LT5pbnN0ci5idWZ1 c2FnZSk7CisJCQkJc2hvd19idWZmZXJfdXNhZ2UoZXMsICZpbnN0cnVtZW50LT5pbnN0ci5idWZ1 c2FnZSwgTlVMTCk7CiAJCQlpZiAoZXMtPndhbCkKIAkJCQlzaG93X3dhbF91c2FnZShlcywgJmlu c3RydW1lbnQtPmluc3RyLndhbHVzYWdlKTsKIAkJCUV4cGxhaW5DbG9zZVdvcmtlcihuLCBlcyk7 CkBAIC00MDk5LDcgKzQxMDIsNyBAQCBwZWVrX2J1ZmZlcl91c2FnZShFeHBsYWluU3RhdGUgKmVz LCBjb25zdCBCdWZmZXJVc2FnZSAqdXNhZ2UpCiAgKiBTaG93IGJ1ZmZlciB1c2FnZSBkZXRhaWxz LiAgVGhpcyBiZXR0ZXIgYmUgc3luYyB3aXRoIHBlZWtfYnVmZmVyX3VzYWdlLgogICovCiBzdGF0 aWMgdm9pZAotc2hvd19idWZmZXJfdXNhZ2UoRXhwbGFpblN0YXRlICplcywgY29uc3QgQnVmZmVy VXNhZ2UgKnVzYWdlKQorc2hvd19idWZmZXJfdXNhZ2UoRXhwbGFpblN0YXRlICplcywgY29uc3Qg QnVmZmVyVXNhZ2UgKnVzYWdlLCBjb25zdCBjaGFyICp0aXRsZSkKIHsKIAlpZiAoZXMtPmZvcm1h dCA9PSBFWFBMQUlOX0ZPUk1BVF9URVhUKQogCXsKQEAgLTQxMjQsNiArNDEyNyw4IEBAIHNob3df YnVmZmVyX3VzYWdlKEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IEJ1ZmZlclVzYWdlICp1c2FnZSkK IAkJaWYgKGhhc19zaGFyZWQgfHwgaGFzX2xvY2FsIHx8IGhhc190ZW1wKQogCQl7CiAJCQlFeHBs YWluSW5kZW50VGV4dChlcyk7CisJCQlpZiAodGl0bGUpCisJCQkJYXBwZW5kU3RyaW5nSW5mbyhl cy0+c3RyLCAiJXMgIiwgdGl0bGUpOwogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhlcy0+c3Ry LCAiQnVmZmVyczoiKTsKIAogCQkJaWYgKGhhc19zaGFyZWQpCkBAIC00MTc5LDYgKzQxODQsOCBA QCBzaG93X2J1ZmZlcl91c2FnZShFeHBsYWluU3RhdGUgKmVzLCBjb25zdCBCdWZmZXJVc2FnZSAq dXNhZ2UpCiAJCWlmIChoYXNfc2hhcmVkX3RpbWluZyB8fCBoYXNfbG9jYWxfdGltaW5nIHx8IGhh c190ZW1wX3RpbWluZykKIAkJewogCQkJRXhwbGFpbkluZGVudFRleHQoZXMpOworCQkJaWYgKHRp dGxlKQorCQkJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwgIiVzICIsIHRpdGxlKTsKIAkJCWFw cGVuZFN0cmluZ0luZm9TdHJpbmcoZXMtPnN0ciwgIkkvTyBUaW1pbmdzOiIpOwogCiAJCQlpZiAo aGFzX3NoYXJlZF90aW1pbmcpCkBAIC00MjIwLDYgKzQyMjcsMTQgQEAgc2hvd19idWZmZXJfdXNh Z2UoRXhwbGFpblN0YXRlICplcywgY29uc3QgQnVmZmVyVXNhZ2UgKnVzYWdlKQogCX0KIAllbHNl CiAJeworCQljaGFyCSAgICpidWZmZXJzX3RpdGxlID0gTlVMTDsKKworCQlpZiAodGl0bGUpCisJ CXsKKwkJCWJ1ZmZlcnNfdGl0bGUgPSBwc3ByaW50ZigiJXMgQnVmZmVycyIsIHRpdGxlKTsKKwkJ CUV4cGxhaW5PcGVuR3JvdXAoYnVmZmVyc190aXRsZSwgYnVmZmVyc190aXRsZSwgdHJ1ZSwgZXMp OworCQl9CisKIAkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiU2hhcmVkIEhpdCBCbG9ja3MiLCBO VUxMLAogCQkJCQkJCSAgIHVzYWdlLT5zaGFyZWRfYmxrc19oaXQsIGVzKTsKIAkJRXhwbGFpblBy b3BlcnR5SW50ZWdlcigiU2hhcmVkIFJlYWQgQmxvY2tzIiwgTlVMTCwKQEAgLTQyNDAsOCArNDI1 NSwyMCBAQCBzaG93X2J1ZmZlcl91c2FnZShFeHBsYWluU3RhdGUgKmVzLCBjb25zdCBCdWZmZXJV c2FnZSAqdXNhZ2UpCiAJCQkJCQkJICAgdXNhZ2UtPnRlbXBfYmxrc19yZWFkLCBlcyk7CiAJCUV4 cGxhaW5Qcm9wZXJ0eUludGVnZXIoIlRlbXAgV3JpdHRlbiBCbG9ja3MiLCBOVUxMLAogCQkJCQkJ CSAgIHVzYWdlLT50ZW1wX2Jsa3Nfd3JpdHRlbiwgZXMpOworCisJCWlmIChidWZmZXJzX3RpdGxl KQorCQkJRXhwbGFpbkNsb3NlR3JvdXAoYnVmZmVyc190aXRsZSwgYnVmZmVyc190aXRsZSwgdHJ1 ZSwgZXMpOworCiAJCWlmICh0cmFja19pb190aW1pbmcpCiAJCXsKKwkJCWNoYXIJICAgKnRpbWlu Z3NfdGl0bGUgPSBOVUxMOworCisJCQlpZiAodGl0bGUpCisJCQl7CisJCQkJdGltaW5nc190aXRs ZSA9IHBzcHJpbnRmKCIlcyBJL08gVGltaW5ncyIsIHRpdGxlKTsKKwkJCQlFeHBsYWluT3Blbkdy b3VwKHRpbWluZ3NfdGl0bGUsIHRpbWluZ3NfdGl0bGUsIHRydWUsIGVzKTsKKwkJCX0KKwogCQkJ RXhwbGFpblByb3BlcnR5RmxvYXQoIlNoYXJlZCBJL08gUmVhZCBUaW1lIiwgIm1zIiwKIAkJCQkJ CQkJIElOU1RSX1RJTUVfR0VUX01JTExJU0VDKHVzYWdlLT5zaGFyZWRfYmxrX3JlYWRfdGltZSks CiAJCQkJCQkJCSAzLCBlcyk7CkBAIC00MjYwLDYgKzQyODcsOSBAQCBzaG93X2J1ZmZlcl91c2Fn ZShFeHBsYWluU3RhdGUgKmVzLCBjb25zdCBCdWZmZXJVc2FnZSAqdXNhZ2UpCiAJCQlFeHBsYWlu UHJvcGVydHlGbG9hdCgiVGVtcCBJL08gV3JpdGUgVGltZSIsICJtcyIsCiAJCQkJCQkJCSBJTlNU Ul9USU1FX0dFVF9NSUxMSVNFQyh1c2FnZS0+dGVtcF9ibGtfd3JpdGVfdGltZSksCiAJCQkJCQkJ CSAzLCBlcyk7CisKKwkJCWlmICh0aW1pbmdzX3RpdGxlKQorCQkJCUV4cGxhaW5DbG9zZUdyb3Vw KHRpbWluZ3NfdGl0bGUsIHRpbWluZ3NfdGl0bGUsIHRydWUsIGVzKTsKIAkJfQogCX0KIH0KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQcm9jbm9kZS5jIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY1Byb2Nub2RlLmMKaW5kZXggNmE3NGNhNTE2YWUuLjVlNDc2OTM5ZWRm IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUHJvY25vZGUuYworKysgYi9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjUHJvY25vZGUuYwpAQCAtNDE0LDkgKzQxNCwyNCBAQCBF eGVjSW5pdE5vZGUoUGxhbiAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3MpCiAKIAkv KiBTZXQgdXAgaW5zdHJ1bWVudGF0aW9uIGZvciB0aGlzIG5vZGUgaWYgcmVxdWVzdGVkICovCiAJ aWYgKGVzdGF0ZS0+ZXNfaW5zdHJ1bWVudCkKKwl7CiAJCXJlc3VsdC0+aW5zdHJ1bWVudCA9IElu c3RyQWxsb2NOb2RlKGVzdGF0ZS0+ZXNfaW5zdHJ1bWVudCwKIAkJCQkJCQkJCQkJcmVzdWx0LT5h c3luY19jYXBhYmxlKTsKIAorCQkvKiBJbmRleFNjYW4gdHJhY2tzIHRhYmxlIGFjY2VzcyBzZXBh cmF0ZWx5IGZyb20gaW5kZXggYWNjZXNzLiAqLworCQlpZiAoSXNBKHJlc3VsdCwgSW5kZXhTY2Fu U3RhdGUpICYmIChlc3RhdGUtPmVzX2luc3RydW1lbnQgJiBJTlNUUlVNRU5UX0JVRkZFUlMpICE9 IDApCisJCXsKKwkJCUluZGV4U2NhblN0YXRlICppc3MgPSBjYXN0Tm9kZShJbmRleFNjYW5TdGF0 ZSwgcmVzdWx0KTsKKworCQkJLyoKKwkJCSAqIFdlIGludGVudGlvbmFsbHkgZG9uJ3QgY29sbGVj dCB0aW1pbmcgaGVyZSAoZXZlbiBpZiBlbmFibGVkKSwKKwkJCSAqIHNpbmNlIHdlIGRvbid0IG5l ZWQgaXQsIGFuZCBJbmRleE5leHQgY2FsbHMgSW5zdHJQdXNoU3RhY2sgLworCQkJICogSW5zdHJQ b3BTdGFjayAoaW5zdGVhZCBvZiBJbnN0ck5vZGUqKSB0byByZWR1Y2Ugb3ZlcmhlYWQuCisJCQkg Ki8KKwkJCWlzcy0+aXNzX0luc3RydW1lbnRUYWJsZSA9IEluc3RyQWxsb2NOb2RlKElOU1RSVU1F TlRfQlVGRkVSUywgZmFsc2UpOworCQl9CisJfQorCiAJcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAt ODM2LDggKzg1MSwxOSBAQCBFeGVjUmVtZW1iZXJOb2RlSW5zdHJ1bWVudGF0aW9uX3dhbGtlcihQ bGFuU3RhdGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAJCXJldHVybiBmYWxzZTsKIAogCWlmIChu b2RlLT5pbnN0cnVtZW50KQorCXsKIAkJSW5zdHJRdWVyeVJlbWVtYmVyTm9kZShwYXJlbnQsIG5v ZGUtPmluc3RydW1lbnQpOwogCisJCS8qIEluZGV4U2NhbiBoYXMgYSBzZXBhcmF0ZSBlbnRyeSB0 byB0cmFjayB0YWJsZSBhY2Nlc3MgKi8KKwkJaWYgKElzQShub2RlLCBJbmRleFNjYW5TdGF0ZSkp CisJCXsKKwkJCUluZGV4U2NhblN0YXRlICppc3MgPSBjYXN0Tm9kZShJbmRleFNjYW5TdGF0ZSwg bm9kZSk7CisKKwkJCWlmIChpc3MtPmlzc19JbnN0cnVtZW50VGFibGUpCisJCQkJSW5zdHJRdWVy eVJlbWVtYmVyTm9kZShwYXJlbnQsIGlzcy0+aXNzX0luc3RydW1lbnRUYWJsZSk7CisJCX0KKwl9 CisKIAlyZXR1cm4gcGxhbnN0YXRlX3RyZWVfd2Fsa2VyKG5vZGUsIEV4ZWNSZW1lbWJlck5vZGVJ bnN0cnVtZW50YXRpb25fd2Fsa2VyLCBjb250ZXh0KTsKIH0KIApAQCAtODc5LDYgKzkwNSwxNSBA QCBFeGVjRmluYWxpemVOb2RlSW5zdHJ1bWVudGF0aW9uX3dhbGtlcihQbGFuU3RhdGUgKm5vZGUs IHZvaWQgKmNvbnRleHQpCiAJaWYgKCFub2RlLT5pbnN0cnVtZW50KQogCQlyZXR1cm4gZmFsc2U7 CiAKKwkvKiBJbmRleFNjYW4gaGFzIGEgc2VwYXJhdGUgZW50cnkgdG8gdHJhY2sgdGFibGUgYWNj ZXNzICovCisJaWYgKElzQShub2RlLCBJbmRleFNjYW5TdGF0ZSkpCisJeworCQlJbmRleFNjYW5T dGF0ZSAqaXNzID0gY2FzdE5vZGUoSW5kZXhTY2FuU3RhdGUsIG5vZGUpOworCisJCWlmIChpc3Mt Pmlzc19JbnN0cnVtZW50VGFibGUpCisJCQlpc3MtPmlzc19JbnN0cnVtZW50VGFibGUgPSBJbnN0 ckZpbmFsaXplTm9kZShpc3MtPmlzc19JbnN0cnVtZW50VGFibGUsICZub2RlLT5pbnN0cnVtZW50 LT5pbnN0cik7CisJfQorCiAJbm9kZS0+aW5zdHJ1bWVudCA9IEluc3RyRmluYWxpemVOb2RlKG5v ZGUtPmluc3RydW1lbnQsIHBhcmVudCk7CiAKIAlyZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlSW5kZXhzY2FuLmMKaW5kZXggNDUxM2IxZjdhOTAuLjNiZDM1MzkyMTY4IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKKysrIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jCkBAIC04Myw3ICs4Myw5IEBAIEluZGV4TmV4dChJ bmRleFNjYW5TdGF0ZSAqbm9kZSkKIAlFeHByQ29udGV4dCAqZWNvbnRleHQ7CiAJU2NhbkRpcmVj dGlvbiBkaXJlY3Rpb247CiAJSW5kZXhTY2FuRGVzYyBzY2FuZGVzYzsKKwlJdGVtUG9pbnRlciB0 aWQ7CiAJVHVwbGVUYWJsZVNsb3QgKnNsb3Q7CisJYm9vbAkJZm91bmQ7CiAKIAkvKgogCSAqIGV4 dHJhY3QgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIGZyb20gaW5kZXggc2NhbiBub2RlCkBAIC0xMjgs OCArMTMwLDI0IEBAIEluZGV4TmV4dChJbmRleFNjYW5TdGF0ZSAqbm9kZSkKIAkvKgogCSAqIG9r LCBub3cgdGhhdCB3ZSBoYXZlIHdoYXQgd2UgbmVlZCwgZmV0Y2ggdGhlIG5leHQgdHVwbGUuCiAJ ICovCi0Jd2hpbGUgKGluZGV4X2dldG5leHRfc2xvdChzY2FuZGVzYywgZGlyZWN0aW9uLCBzbG90 KSkKKwl3aGlsZSAoKHRpZCA9IGluZGV4X2dldG5leHRfdGlkKHNjYW5kZXNjLCBkaXJlY3Rpb24p KSAhPSBOVUxMKQogCXsKKwkJaWYgKG5vZGUtPmlzc19JbnN0cnVtZW50VGFibGUpCisJCQlJbnN0 clB1c2hTdGFjaygmbm9kZS0+aXNzX0luc3RydW1lbnRUYWJsZS0+aW5zdHIpOworCisJCWZvciAo OzspCisJCXsKKwkJCWZvdW5kID0gaW5kZXhfZmV0Y2hfaGVhcChzY2FuZGVzYywgc2xvdCk7CisJ CQlpZiAoZm91bmQgfHwgIXNjYW5kZXNjLT54c19oZWFwX2NvbnRpbnVlKQorCQkJCWJyZWFrOwor CQl9CisKKwkJaWYgKG5vZGUtPmlzc19JbnN0cnVtZW50VGFibGUpCisJCQlJbnN0clBvcFN0YWNr KCZub2RlLT5pc3NfSW5zdHJ1bWVudFRhYmxlLT5pbnN0cik7CisKKwkJaWYgKHVubGlrZWx5KCFm b3VuZCkpCisJCQljb250aW51ZTsKKwogCQlDSEVDS19GT1JfSU5URVJSVVBUUygpOwogCiAJCS8q CkBAIC0yNTcsMzYgKzI3NSw2NyBAQCBJbmRleE5leHRXaXRoUmVvcmRlcihJbmRleFNjYW5TdGF0 ZSAqbm9kZSkKIAkJfQogCiAJCS8qCi0JCSAqIEZldGNoIG5leHQgdHVwbGUgZnJvbSB0aGUgaW5k ZXguCisJCSAqIEZldGNoIG5leHQgdmFsaWQgdHVwbGUgZnJvbSB0aGUgaW5kZXguCiAJCSAqLwot bmV4dF9pbmRleHR1cGxlOgotCQlpZiAoIWluZGV4X2dldG5leHRfc2xvdChzY2FuZGVzYywgRm9y d2FyZFNjYW5EaXJlY3Rpb24sIHNsb3QpKQorCQlmb3IgKDs7KQogCQl7CisJCQlJdGVtUG9pbnRl ciB0aWQ7CisJCQlib29sCQlmb3VuZDsKKworCQkJLyogVGltZSB0byBmZXRjaCB0aGUgbmV4dCBU SUQgZnJvbSB0aGUgaW5kZXggKi8KKwkJCXRpZCA9IGluZGV4X2dldG5leHRfdGlkKHNjYW5kZXNj LCBGb3J3YXJkU2NhbkRpcmVjdGlvbik7CisKKwkJCS8qIElmIHdlJ3JlIG91dCBvZiBpbmRleCBl bnRyaWVzLCB3ZSdyZSBkb25lICovCisJCQlpZiAodGlkID09IE5VTEwpCisJCQl7CisJCQkJLyoK KwkJCQkgKiBObyBtb3JlIHR1cGxlcyBmcm9tIHRoZSBpbmRleC4gIEJ1dCB3ZSBzdGlsbCBuZWVk IHRvIGRyYWluCisJCQkJICogYW55IHJlbWFpbmluZyB0dXBsZXMgZnJvbSB0aGUgcXVldWUgYmVm b3JlIHdlJ3JlIGRvbmUuCisJCQkJICovCisJCQkJbm9kZS0+aXNzX1JlYWNoZWRFbmQgPSB0cnVl OworCQkJCWJyZWFrOworCQkJfQorCisJCQlBc3NlcnQoSXRlbVBvaW50ZXJFcXVhbHModGlkLCAm c2NhbmRlc2MtPnhzX2hlYXB0aWQpKTsKKworCQkJaWYgKG5vZGUtPmlzc19JbnN0cnVtZW50VGFi bGUpCisJCQkJSW5zdHJQdXNoU3RhY2soJm5vZGUtPmlzc19JbnN0cnVtZW50VGFibGUtPmluc3Ry KTsKKworCQkJZm9yICg7OykKKwkJCXsKKwkJCQlmb3VuZCA9IGluZGV4X2ZldGNoX2hlYXAoc2Nh bmRlc2MsIHNsb3QpOworCQkJCWlmIChmb3VuZCB8fCAhc2NhbmRlc2MtPnhzX2hlYXBfY29udGlu dWUpCisJCQkJCWJyZWFrOworCQkJfQorCisJCQlpZiAobm9kZS0+aXNzX0luc3RydW1lbnRUYWJs ZSkKKwkJCQlJbnN0clBvcFN0YWNrKCZub2RlLT5pc3NfSW5zdHJ1bWVudFRhYmxlLT5pbnN0cik7 CisKIAkJCS8qCi0JCQkgKiBObyBtb3JlIHR1cGxlcyBmcm9tIHRoZSBpbmRleC4gIEJ1dCB3ZSBz dGlsbCBuZWVkIHRvIGRyYWluIGFueQotCQkJICogcmVtYWluaW5nIHR1cGxlcyBmcm9tIHRoZSBx dWV1ZSBiZWZvcmUgd2UncmUgZG9uZS4KKwkJCSAqIElmIHRoZSBpbmRleCB3YXMgbG9zc3ksIHdl IGhhdmUgdG8gcmVjaGVjayB0aGUgaW5kZXggcXVhbHMgYW5kCisJCQkgKiBPUkRFUiBCWSBleHBy ZXNzaW9ucyB1c2luZyB0aGUgZmV0Y2hlZCB0dXBsZS4KIAkJCSAqLwotCQkJbm9kZS0+aXNzX1Jl YWNoZWRFbmQgPSB0cnVlOwotCQkJY29udGludWU7Ci0JCX0KLQotCQkvKgotCQkgKiBJZiB0aGUg aW5kZXggd2FzIGxvc3N5LCB3ZSBoYXZlIHRvIHJlY2hlY2sgdGhlIGluZGV4IHF1YWxzIGFuZAot CQkgKiBPUkRFUiBCWSBleHByZXNzaW9ucyB1c2luZyB0aGUgZmV0Y2hlZCB0dXBsZS4KLQkJICov Ci0JCWlmIChzY2FuZGVzYy0+eHNfcmVjaGVjaykKLQkJewotCQkJZWNvbnRleHQtPmVjeHRfc2Nh bnR1cGxlID0gc2xvdDsKLQkJCWlmICghRXhlY1F1YWxBbmRSZXNldChub2RlLT5pbmRleHF1YWxv cmlnLCBlY29udGV4dCkpCisJCQlpZiAoZm91bmQgJiYgc2NhbmRlc2MtPnhzX3JlY2hlY2spCiAJ CQl7Ci0JCQkJLyogRmFpbHMgcmVjaGVjaywgc28gZHJvcCBpdCBhbmQgbG9vcCBiYWNrIGZvciBh bm90aGVyICovCi0JCQkJSW5zdHJDb3VudEZpbHRlcmVkMihub2RlLCAxKTsKLQkJCQkvKiBhbGxv dyB0aGlzIGxvb3AgdG8gYmUgY2FuY2VsbGFibGUgKi8KLQkJCQlDSEVDS19GT1JfSU5URVJSVVBU UygpOwotCQkJCWdvdG8gbmV4dF9pbmRleHR1cGxlOworCQkJCWVjb250ZXh0LT5lY3h0X3NjYW50 dXBsZSA9IHNsb3Q7CisJCQkJaWYgKCFFeGVjUXVhbEFuZFJlc2V0KG5vZGUtPmluZGV4cXVhbG9y aWcsIGVjb250ZXh0KSkKKwkJCQl7CisJCQkJCS8qIEZhaWxzIHJlY2hlY2ssIHNvIGRyb3AgaXQg YW5kIGxvb3AgYmFjayBmb3IgYW5vdGhlciAqLworCQkJCQlJbnN0ckNvdW50RmlsdGVyZWQyKG5v ZGUsIDEpOworCQkJCQkvKiBhbGxvdyB0aGlzIGxvb3AgdG8gYmUgY2FuY2VsbGFibGUgKi8KKwkJ CQkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKwkJCQkJY29udGludWU7CisJCQkJfQogCQkJfQor CisJCQlpZiAoZm91bmQpCisJCQkJYnJlYWs7CiAJCX0KIAorCQkvKiBObyBtb3JlIGluZGV4IGVu dHJpZXMsIHJlLXJ1biB0byBjbGVhciB0aGUgcmVvcmRlciBxdWV1ZSAqLworCQlpZiAobm9kZS0+ aXNzX1JlYWNoZWRFbmQpCisJCQljb250aW51ZTsKKwogCQlpZiAoc2NhbmRlc2MtPnhzX3JlY2hl Y2tvcmRlcmJ5KQogCQl7CiAJCQllY29udGV4dC0+ZWN4dF9zY2FudHVwbGUgPSBzbG90OwpAQCAt ODEyLDYgKzg2MSwxMSBAQCBFeGVjRW5kSW5kZXhTY2FuKEluZGV4U2NhblN0YXRlICpub2RlKQog CQkgKiB3aGljaCB3aWxsIGhhdmUgYSBuZXcgSW5kZXhPbmx5U2NhblN0YXRlIGFuZCB6ZXJvZWQg c3RhdHMuCiAJCSAqLwogCQl3aW5zdHJ1bWVudC0+bnNlYXJjaGVzICs9IG5vZGUtPmlzc19JbnN0 cnVtZW50Lm5zZWFyY2hlczsKKwkJaWYgKG5vZGUtPmlzc19JbnN0cnVtZW50VGFibGUpCisJCXsK KwkJCUJ1ZmZlclVzYWdlQWRkKCZ3aW5zdHJ1bWVudC0+d29ya2VyX3RhYmxlX2J1ZnVzYWdlLCAm bm9kZS0+aXNzX0luc3RydW1lbnRUYWJsZS0+aW5zdHIuYnVmdXNhZ2UpOworCQkJV2FsVXNhZ2VB ZGQoJndpbnN0cnVtZW50LT53b3JrZXJfdGFibGVfd2FsdXNhZ2UsICZub2RlLT5pc3NfSW5zdHJ1 bWVudFRhYmxlLT5pbnN0ci53YWx1c2FnZSk7CisJCX0KIAl9CiAKIAkvKgpAQCAtMTgxOSw0ICsx ODczLDE0IEBAIEV4ZWNJbmRleFNjYW5SZXRyaWV2ZUluc3RydW1lbnRhdGlvbihJbmRleFNjYW5T dGF0ZSAqbm9kZSkKIAkJU2hhcmVkSW5mby0+bnVtX3dvcmtlcnMgKiBzaXplb2YoSW5kZXhTY2Fu SW5zdHJ1bWVudGF0aW9uKTsKIAlub2RlLT5pc3NfU2hhcmVkSW5mbyA9IHBhbGxvYyhzaXplKTsK IAltZW1jcHkobm9kZS0+aXNzX1NoYXJlZEluZm8sIFNoYXJlZEluZm8sIHNpemUpOworCisJLyog QWdncmVnYXRlIHdvcmtlcnMnIHRhYmxlIGJ1ZmZlci9XQUwgdXNhZ2UgaW50byBsZWFkZXIncyBl bnRyeSAqLworCWlmIChub2RlLT5pc3NfSW5zdHJ1bWVudFRhYmxlKQorCQlmb3IgKGludCBpID0g MDsgaSA8IG5vZGUtPmlzc19TaGFyZWRJbmZvLT5udW1fd29ya2VyczsgaSsrKQorCQl7CisJCQlC dWZmZXJVc2FnZUFkZCgmbm9kZS0+aXNzX0luc3RydW1lbnRUYWJsZS0+aW5zdHIuYnVmdXNhZ2Us CisJCQkJCQkgICAmbm9kZS0+aXNzX1NoYXJlZEluZm8tPndpbnN0cnVtZW50W2ldLndvcmtlcl90 YWJsZV9idWZ1c2FnZSk7CisJCQlXYWxVc2FnZUFkZCgmbm9kZS0+aXNzX0luc3RydW1lbnRUYWJs ZS0+aW5zdHIud2FsdXNhZ2UsCisJCQkJCQkmbm9kZS0+aXNzX1NoYXJlZEluZm8tPndpbnN0cnVt ZW50W2ldLndvcmtlcl90YWJsZV93YWx1c2FnZSk7CisJCX0KIH0KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnRfbm9kZS5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Iv aW5zdHJ1bWVudF9ub2RlLmgKaW5kZXggODg0N2Q3Zjk0ZmEuLjE3MGI2MTQzZWY2IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50X25vZGUuaAorKysgYi9zcmMvaW5j bHVkZS9leGVjdXRvci9pbnN0cnVtZW50X25vZGUuaApAQCAtMTgsNiArMTgsOCBAQAogI2lmbmRl ZiBJTlNUUlVNRU5UX05PREVfSAogI2RlZmluZSBJTlNUUlVNRU5UX05PREVfSAogCisjaW5jbHVk ZSAiZXhlY3V0b3IvaW5zdHJ1bWVudC5oIgorCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICoJSW5zdHJ1bWVudGF0aW9uIGluZm9ybWF0aW9uIGZvciBhZ2dyZWdhdGUgZnVuY3Rpb24gZXhl Y3V0aW9uCkBAIC00OCw2ICs1MCwxMCBAQCB0eXBlZGVmIHN0cnVjdCBJbmRleFNjYW5JbnN0cnVt ZW50YXRpb24KIHsKIAkvKiBJbmRleCBzZWFyY2ggY291bnQgKGluY3JlbWVudGVkIHdpdGggcGdz dGF0X2NvdW50X2luZGV4X3NjYW4gY2FsbCkgKi8KIAl1aW50NjQJCW5zZWFyY2hlczsKKworCS8q IFVzZWQgZm9yIHBhc3NpbmcgaXNzX0luc3RydW1lbnRUYWJsZVN0YWNrIGRhdGEgZnJvbSBwYXJh bGxlbCB3b3JrZXJzICovCisJQnVmZmVyVXNhZ2Ugd29ya2VyX3RhYmxlX2J1ZnVzYWdlOworCVdh bFVzYWdlCXdvcmtlcl90YWJsZV93YWx1c2FnZTsKIH0gSW5kZXhTY2FuSW5zdHJ1bWVudGF0aW9u OwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCA2MDVjN2E2Y2MzOS4uYzc3ODY0MWMxM2Qg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNs dWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC0xNzI4LDYgKzE3MjgsMTMgQEAgdHlwZWRlZiBzdHJ1 Y3QgSW5kZXhTY2FuU3RhdGUKIAlJbmRleFNjYW5JbnN0cnVtZW50YXRpb24gaXNzX0luc3RydW1l bnQ7CiAJU2hhcmVkSW5kZXhTY2FuSW5zdHJ1bWVudGF0aW9uICppc3NfU2hhcmVkSW5mbzsKIAor CS8qCisJICogSW5zdHJ1bWVudGF0aW9uIHV0aWxpemVkIGZvciB0cmFja2luZyB0YWJsZSBhY2Nl c3MuIFRoaXMgaXMgc2VwYXJhdGUKKwkgKiBmcm9tIGlzc19JbnN0cnVtZW50IHNpbmNlIGl0IG5l ZWRzIHRvIGJlIGFsbG9jYXRlZCBpbiB0aGUgcmlnaHQgY29udGV4dAorCSAqIGFuZCBJbmRleFNj YW5JbnN0cnVtZW50YXRpb24gc2hvdWxkbid0IGNvbnRhaW4gcG9pbnRlcnMuCisJICovCisJTm9k ZUluc3RydW1lbnRhdGlvbiAqaXNzX0luc3RydW1lbnRUYWJsZTsKKwogCS8qIFRoZXNlIGFyZSBu ZWVkZWQgZm9yIHJlLWNoZWNraW5nIE9SREVSIEJZIGV4cHIgb3JkZXJpbmcgKi8KIAlwYWlyaW5n aGVhcCAqaXNzX1Jlb3JkZXJRdWV1ZTsKIAlib29sCQlpc3NfUmVhY2hlZEVuZDsKLS0gCjIuNDcu MQoK --0000000000001ac30e064d022147 Content-Type: application/octet-stream; name="v8-0006-instrumentation-Optimize-ExecProcNodeInstr-instru.patch" Content-Disposition: attachment; filename="v8-0006-instrumentation-Optimize-ExecProcNodeInstr-instru.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmqsnn4p5 RnJvbSAwYzljMWMyZTkxYjhhYTRmMmEwODE3ZGVhZjEyOWUxZTI0NmFjOTJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBT YXQsIDcgTWFyIDIwMjYgMTc6NTI6MjQgLTA4MDAKU3ViamVjdDogW1BBVENIIHY4IDYvOF0gaW5z dHJ1bWVudGF0aW9uOiBPcHRpbWl6ZSBFeGVjUHJvY05vZGVJbnN0cgogaW5zdHJ1Y3Rpb25zIGJ5 IGlubGluaW5nCgpGb3IgbW9zdCBxdWVyaWVzLCB0aGUgYnVsayBvZiB0aGUgb3ZlcmhlYWQgb2Yg RVhQTEFJTiBBTkFMWVpFIGhhcHBlbnMgaW4KRXhlY1Byb2NOb2RlSW5zdHIgd2hlbiBzdGFydGlu Zy9zdG9wcGluZyBpbnN0cnVtZW50YXRpb24gZm9yIHRoYXQgbm9kZS4KClByZXZpb3VzbHkgZWFj aCBFeGVjUHJvY05vZGVJbnN0ciB3b3VsZCBjaGVjayB3aGljaCBpbnN0cnVtZW50YXRpb24Kb3B0 aW9ucyBhcmUgYWN0aXZlIGluIHRoZSBJbnN0clN0YXJ0Tm9kZS9JbnN0clN0b3BOb2RlIGNhbGxz LCBhbmQgZG8gdGhlCmNvcnJlc3BvbmRpbmcgd29yayAodGltZXJzLCBpbnN0cnVtZW50YXRpb24g c3RhY2ssIGV0Yy4pLiBUaGVzZQpjb25kaXRpb25hbHMgYmVpbmcgY2hlY2tlZCBmb3IgZWFjaCB0 dXBsZSBiZWluZyBlbWl0dGVkIGFkZCB1cCwgYW5kIGNhdXNlCm5vbi1vcHRpbWFsIHNldCBvZiBp bnN0cnVjdGlvbnMgdG8gYmUgZ2VuZXJhdGVkIGJ5IHRoZSBjb21waWxlci4KCkJlY2F1c2Ugd2Ug YWxyZWFkeSBoYXZlIGFuIGV4aXN0aW5nIG1lY2hhbmlzbSB0byBzcGVjaWZ5IGEgZnVuY3Rpb24K cG9pbnRlciB3aGVuIGluc3RydW1lbnRhdGlvbiBpcyBlbmFibGVkLCB3ZSBjYW4gaW5zdGVhZCBj cmVhdGUgc3BlY2lhbGl6ZWQKZnVuY3Rpb25zIHRoYXQgYXJlIHRhaWxvcmVkIHRvIHRoZSBpbnN0 cnVtZW50YXRpb24gb3B0aW9ucyBlbmFibGVkLCBhbmQKYXZvaWQgY29uZGl0aW9uYWxzIG9uIHN1 YnNlcXVlbnQgRXhlY1Byb2NOb2RlSW5zdHIgY2FsbHMuIFRoaXMgcmVzdWx0cyBpbgp0aGUgb3Zl cmhlYWQgZm9yIEVYUExBSU4gKEFOQUxZWkUsIFRJTUlORyBPRkYsIEJVRkZFUlMgT0ZGKSBmb3Ig YSBzdHJlc3MKdGVzdCB3aXRoIGEgbGFyZ2UgQ09VTlQoKikgdGhhdCBkb2VzIG1hbnkgRXhlY1By b2NOb2RlIGNhbGxzIGZyb20gfiAyMCUgb24KdG9wIG9mIGFjdHVhbCBydW50aW1lIHRvIH4gMyUu IFdoZW4gdXNpbmcgQlVGRkVSUyBPTiB0aGUgc2FtZSBxdWVyeSBnb2VzCmZyb20gfiAyMCUgdG8g fiAxMCUgb24gdG9wIG9mIGFjdHVhbCBydW50aW1lLgoKQXV0aG9yOiBMdWthcyBGaXR0bCA8bHVr YXNAZml0dGwuY29tPgpSZXZpZXdlZC1ieToKRGlzY3Vzc2lvbjoKLS0tCiBzcmMvYmFja2VuZC9l eGVjdXRvci9leGVjUHJvY25vZGUuYyB8ICAyMiArLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2lu c3RydW1lbnQuYyAgIHwgMjI0ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIHNyYy9pbmNs dWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaCAgIHwgICA1ICsKIDMgZmlsZXMgY2hhbmdlZCwgMTc0 IGluc2VydGlvbnMoKyksIDc3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNQcm9jbm9kZS5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1Byb2Nu b2RlLmMKaW5kZXggYzc4OGI1YjAwZjkuLjZhNzRjYTUxNmFlIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjUHJvY25vZGUuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjUHJvY25vZGUuYwpAQCAtMTIwLDcgKzEyMCw2IEBACiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1 bmNzLmgiCiAKIHN0YXRpYyBUdXBsZVRhYmxlU2xvdCAqRXhlY1Byb2NOb2RlRmlyc3QoUGxhblN0 YXRlICpub2RlKTsKLXN0YXRpYyBUdXBsZVRhYmxlU2xvdCAqRXhlY1Byb2NOb2RlSW5zdHIoUGxh blN0YXRlICpub2RlKTsKIHN0YXRpYyBib29sIEV4ZWNTaHV0ZG93bk5vZGVfd2Fsa2VyKFBsYW5T dGF0ZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7CiBzdGF0aWMgYm9vbCBFeGVjUmVtZW1iZXJOb2Rl SW5zdHJ1bWVudGF0aW9uX3dhbGtlcihQbGFuU3RhdGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpOwog c3RhdGljIGJvb2wgRXhlY0ZpbmFsaXplTm9kZUluc3RydW1lbnRhdGlvbl93YWxrZXIoUGxhblN0 YXRlICpub2RlLCB2b2lkICpjb250ZXh0KTsKQEAgLTQ2NCw3ICs0NjMsNyBAQCBFeGVjUHJvY05v ZGVGaXJzdChQbGFuU3RhdGUgKm5vZGUpCiAJICogaGF2ZSBFeGVjUHJvY05vZGUoKSBkaXJlY3Rs eSBjYWxsIHRoZSByZWxldmFudCBmdW5jdGlvbiBmcm9tIG5vdyBvbi4KIAkgKi8KIAlpZiAobm9k ZS0+aW5zdHJ1bWVudCkKLQkJbm9kZS0+RXhlY1Byb2NOb2RlID0gRXhlY1Byb2NOb2RlSW5zdHI7 CisJCW5vZGUtPkV4ZWNQcm9jTm9kZSA9IEluc3RyTm9kZVNldHVwRXhlY1Byb2NOb2RlKG5vZGUt Pmluc3RydW1lbnQpOwogCWVsc2UKIAkJbm9kZS0+RXhlY1Byb2NOb2RlID0gbm9kZS0+RXhlY1By b2NOb2RlUmVhbDsKIApAQCAtNDcyLDI1ICs0NzEsNiBAQCBFeGVjUHJvY05vZGVGaXJzdChQbGFu U3RhdGUgKm5vZGUpCiB9CiAKIAotLyoKLSAqIEV4ZWNQcm9jTm9kZSB3cmFwcGVyIHRoYXQgcGVy Zm9ybXMgaW5zdHJ1bWVudGF0aW9uIGNhbGxzLiAgQnkga2VlcGluZwotICogdGhpcyBhIHNlcGFy YXRlIGZ1bmN0aW9uLCB3ZSBhdm9pZCBvdmVyaGVhZCBpbiB0aGUgbm9ybWFsIGNhc2Ugd2hlcmUK LSAqIG5vIGluc3RydW1lbnRhdGlvbiBpcyB3YW50ZWQuCi0gKi8KLXN0YXRpYyBUdXBsZVRhYmxl U2xvdCAqCi1FeGVjUHJvY05vZGVJbnN0cihQbGFuU3RhdGUgKm5vZGUpCi17Ci0JVHVwbGVUYWJs ZVNsb3QgKnJlc3VsdDsKLQotCUluc3RyU3RhcnROb2RlKG5vZGUtPmluc3RydW1lbnQpOwotCi0J cmVzdWx0ID0gbm9kZS0+RXhlY1Byb2NOb2RlUmVhbChub2RlKTsKLQotCUluc3RyU3RvcE5vZGUo bm9kZS0+aW5zdHJ1bWVudCwgVHVwSXNOdWxsKHJlc3VsdCkgPyAwLjAgOiAxLjApOwotCi0JcmV0 dXJuIHJlc3VsdDsKLX0KLQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJTXVsdGlFeGVjUHJvY05vZGUKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2luc3RydW1lbnQuYwppbmRleCBiZDhhZTNmZGNjMC4uMjcyN2U3YjVjZTQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKQEAgLTQ5LDI5ICs0OSwyMCBAQCBJbnN0ckluaXRP cHRpb25zKEluc3RydW1lbnRhdGlvbiAqaW5zdHIsIGludCBpbnN0cnVtZW50X29wdGlvbnMpCiAJ aW5zdHItPm5lZWRfdGltZXIgPSAoaW5zdHJ1bWVudF9vcHRpb25zICYgSU5TVFJVTUVOVF9USU1F UikgIT0gMDsKIH0KIAotdm9pZAotSW5zdHJTdGFydChJbnN0cnVtZW50YXRpb24gKmluc3RyKQor c3RhdGljIGlubGluZSB2b2lkCitJbnN0clN0YXJ0VGltZXIoSW5zdHJ1bWVudGF0aW9uICppbnN0 cikKIHsKLQlpZiAoaW5zdHItPm5lZWRfdGltZXIpCi0JewotCQlpZiAoIUlOU1RSX1RJTUVfSVNf WkVSTyhpbnN0ci0+c3RhcnR0aW1lKSkKLQkJCWVsb2coRVJST1IsICJJbnN0clN0YXJ0IGNhbGxl ZCB0d2ljZSBpbiBhIHJvdyIpOwotCQllbHNlCi0JCQlJTlNUUl9USU1FX1NFVF9DVVJSRU5UKGlu c3RyLT5zdGFydHRpbWUpOwotCX0KKwlBc3NlcnQoSU5TVFJfVElNRV9JU19aRVJPKGluc3RyLT5z dGFydHRpbWUpKTsKIAotCWlmIChpbnN0ci0+bmVlZF9idWZ1c2FnZSB8fCBpbnN0ci0+bmVlZF93 YWx1c2FnZSkKLQkJSW5zdHJQdXNoU3RhY2soaW5zdHIpOworCUlOU1RSX1RJTUVfU0VUX0NVUlJF TlQoaW5zdHItPnN0YXJ0dGltZSk7CiB9CiAKLXN0YXRpYyB2b2lkCitzdGF0aWMgaW5saW5lIHZv aWQKIEluc3RyU3RvcFRpbWVyKEluc3RydW1lbnRhdGlvbiAqaW5zdHIpCiB7CiAJaW5zdHJfdGlt ZQllbmR0aW1lOwogCi0JLyogbGV0J3MgdXBkYXRlIHRoZSB0aW1lIG9ubHkgaWYgdGhlIHRpbWVy IHdhcyByZXF1ZXN0ZWQgKi8KLQlpZiAoSU5TVFJfVElNRV9JU19aRVJPKGluc3RyLT5zdGFydHRp bWUpKQotCQllbG9nKEVSUk9SLCAiSW5zdHJTdG9wIGNhbGxlZCB3aXRob3V0IHN0YXJ0Iik7CisJ QXNzZXJ0KCFJTlNUUl9USU1FX0lTX1pFUk8oaW5zdHItPnN0YXJ0dGltZSkpOwogCiAJSU5TVFJf VElNRV9TRVRfQ1VSUkVOVChlbmR0aW1lKTsKIAlJTlNUUl9USU1FX0FDQ1VNX0RJRkYoaW5zdHIt PnRvdGFsLCBlbmR0aW1lLCBpbnN0ci0+c3RhcnR0aW1lKTsKQEAgLTc5LDYgKzcwLDE2IEBAIElu c3RyU3RvcFRpbWVyKEluc3RydW1lbnRhdGlvbiAqaW5zdHIpCiAJSU5TVFJfVElNRV9TRVRfWkVS TyhpbnN0ci0+c3RhcnR0aW1lKTsKIH0KIAordm9pZAorSW5zdHJTdGFydChJbnN0cnVtZW50YXRp b24gKmluc3RyKQoreworCWlmIChpbnN0ci0+bmVlZF90aW1lcikKKwkJSW5zdHJTdGFydFRpbWVy KGluc3RyKTsKKworCWlmIChpbnN0ci0+bmVlZF9idWZ1c2FnZSB8fCBpbnN0ci0+bmVlZF93YWx1 c2FnZSkKKwkJSW5zdHJQdXNoU3RhY2soaW5zdHIpOworfQorCiB2b2lkCiBJbnN0clN0b3AoSW5z dHJ1bWVudGF0aW9uICppbnN0cikKIHsKQEAgLTM0Nyw2NSArMzQ4LDU3IEBAIEluc3RySW5pdE5v ZGUoTm9kZUluc3RydW1lbnRhdGlvbiAqaW5zdHIsIGludCBpbnN0cnVtZW50X29wdGlvbnMpCiAJ SW5zdHJJbml0T3B0aW9ucygmaW5zdHItPmluc3RyLCBpbnN0cnVtZW50X29wdGlvbnMpOwogfQog Ci0vKiBFbnRyeSB0byBhIHBsYW4gbm9kZSAqLworLyogRW50cnkgdG8gYSBwbGFuIG5vZGUuIElm IHlvdSBtb2RpZnkgdGhpcywgY2hlY2sgSW5zdHJOb2RlU2V0dXBFeGVjUHJvY05vZGUuICovCiB2 b2lkCiBJbnN0clN0YXJ0Tm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0cikKIHsKIAlJbnN0 clN0YXJ0KCZpbnN0ci0+aW5zdHIpOwogfQogCi0KLS8qIEV4aXQgZnJvbSBhIHBsYW4gbm9kZSAq Lwotdm9pZAotSW5zdHJTdG9wTm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91Ymxl IG5UdXBsZXMpCisvKgorICogVXBkYXRlcyB0aGUgbm9kZSBpbnN0cnVtZW50YXRpb24gdGltZSBj b3VudGVyLgorICoKKyAqIE5vdGUgdGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBJbnN0clN0b3AgYmVj YXVzZSB0b3RhbCBpcyBvbmx5IHVwZGF0ZWQgaW4KKyAqIEluc3RyRW5kTG9vcC4gV2UgbmVlZCB0 aGUgc2VwYXJhdGUgY291bnRlciB2YXJpYWJsZSBiZWNhdXNlIHdlIG5lZWQgdG8KKyAqIGNhbGN1 bGF0ZSBzdGFydC11cCB0aW1lIGZvciB0aGUgZmlyc3QgdHVwbGUgaW4gZWFjaCBjeWNsZSwgYW5k IHRoZW4KKyAqIGFjY3VtdWxhdGUgaXQgdG9nZXRoZXIuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9p ZAorSW5zdHJTdG9wTm9kZVRpbWVyKE5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RyKQogewotCWRv dWJsZQkJc2F2ZV90dXBsZWNvdW50ID0gaW5zdHItPnR1cGxlY291bnQ7CiAJaW5zdHJfdGltZQll bmR0aW1lOwogCi0JLyogY291bnQgdGhlIHJldHVybmVkIHR1cGxlcyAqLwotCWluc3RyLT50dXBs ZWNvdW50ICs9IG5UdXBsZXM7CisJQXNzZXJ0KCFJTlNUUl9USU1FX0lTX1pFUk8oaW5zdHItPmlu c3RyLnN0YXJ0dGltZSkpOworCisJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChlbmR0aW1lKTsKKwlJ TlNUUl9USU1FX0FDQ1VNX0RJRkYoaW5zdHItPmNvdW50ZXIsIGVuZHRpbWUsIGluc3RyLT5pbnN0 ci5zdGFydHRpbWUpOworCUlOU1RSX1RJTUVfU0VUX1pFUk8oaW5zdHItPmluc3RyLnN0YXJ0dGlt ZSk7CiAKIAkvKgotCSAqIFVwZGF0ZSB0aGUgdGltZSBvbmx5IGlmIHRoZSB0aW1lciB3YXMgcmVx dWVzdGVkLgorCSAqIElzIHRoaXMgdGhlIGZpcnN0IHR1cGxlIG9mIHRoaXMgY3ljbGU/CiAJICoK LQkgKiBOb3RlIHRoaXMgaXMgZGlmZmVyZW50IGZyb20gSW5zdHJTdG9wIGJlY2F1c2UgdG90YWwg aXMgb25seSB1cGRhdGVkIGluCi0JICogSW5zdHJFbmRMb29wLiBXZSBuZWVkIHRoZSBzZXBhcmF0 ZSBjb3VudGVyIHZhcmlhYmxlIGJlY2F1c2Ugd2UgbmVlZCB0bwotCSAqIGNhbGN1bGF0ZSBzdGFy dC11cCB0aW1lIGZvciB0aGUgZmlyc3QgdHVwbGUgaW4gZWFjaCBjeWNsZSwgYW5kIHRoZW4KLQkg KiBhY2N1bXVsYXRlIGl0IHRvZ2V0aGVyLgorCSAqIEluIGFzeW5jIG1vZGUsIGlmIHRoZSBwbGFu IG5vZGUgaGFkbid0IGVtaXR0ZWQgYW55IHR1cGxlcyBiZWZvcmUsIHRoaXMKKwkgKiBtaWdodCBi ZSB0aGUgZmlyc3QgdHVwbGUKIAkgKi8KLQlpZiAoaW5zdHItPmluc3RyLm5lZWRfdGltZXIpCi0J ewotCQlpZiAoSU5TVFJfVElNRV9JU19aRVJPKGluc3RyLT5pbnN0ci5zdGFydHRpbWUpKQotCQkJ ZWxvZyhFUlJPUiwgIkluc3RyU3RvcE5vZGUgY2FsbGVkIHdpdGhvdXQgc3RhcnQiKTsKLQotCQlJ TlNUUl9USU1FX1NFVF9DVVJSRU5UKGVuZHRpbWUpOwotCQlJTlNUUl9USU1FX0FDQ1VNX0RJRkYo aW5zdHItPmNvdW50ZXIsIGVuZHRpbWUsIGluc3RyLT5pbnN0ci5zdGFydHRpbWUpOworCWlmICgh aW5zdHItPnJ1bm5pbmcgfHwgKGluc3RyLT5hc3luY19tb2RlICYmIGluc3RyLT50dXBsZWNvdW50 IDwgMS4wKSkKKwkJaW5zdHItPmZpcnN0dHVwbGUgPSBpbnN0ci0+Y291bnRlcjsKK30KIAotCQlJ TlNUUl9USU1FX1NFVF9aRVJPKGluc3RyLT5pbnN0ci5zdGFydHRpbWUpOwotCX0KKy8qIEV4aXQg ZnJvbSBhIHBsYW4gbm9kZS4gSWYgeW91IG1vZGlmeSB0aGlzLCBjaGVjayBJbnN0ck5vZGVTZXR1 cEV4ZWNQcm9jTm9kZS4gKi8KK3ZvaWQKK0luc3RyU3RvcE5vZGUoTm9kZUluc3RydW1lbnRhdGlv biAqaW5zdHIsIGRvdWJsZSBuVHVwbGVzKQoreworCWlmIChpbnN0ci0+aW5zdHIubmVlZF90aW1l cikKKwkJSW5zdHJTdG9wTm9kZVRpbWVyKGluc3RyKTsKIAotCS8qCi0JICogT25seSBwb3AgdGhl IHN0YWNrLCBhY2N1bXVsYXRpb24gcnVucyBpbgotCSAqIEV4ZWNGaW5hbGl6ZU5vZGVJbnN0cnVt ZW50YXRpb24KLQkgKi8KKwkvKiBPbmx5IHBvcCB0aGUgc3RhY2ssIGFjY3VtdWxhdGlvbiBydW5z IGluIEluc3RyRmluYWxpemVOb2RlICovCiAJaWYgKGluc3RyLT5pbnN0ci5uZWVkX2J1ZnVzYWdl IHx8IGluc3RyLT5pbnN0ci5uZWVkX3dhbHVzYWdlKQogCQlJbnN0clBvcFN0YWNrKCZpbnN0ci0+ aW5zdHIpOwogCi0JLyogSXMgdGhpcyB0aGUgZmlyc3QgdHVwbGUgb2YgdGhpcyBjeWNsZT8gKi8K LQlpZiAoIWluc3RyLT5ydW5uaW5nKQotCXsKLQkJaW5zdHItPnJ1bm5pbmcgPSB0cnVlOwotCQlp bnN0ci0+Zmlyc3R0dXBsZSA9IGluc3RyLT5jb3VudGVyOwotCX0KLQllbHNlCi0JewotCQkvKgot CQkgKiBJbiBhc3luYyBtb2RlLCBpZiB0aGUgcGxhbiBub2RlIGhhZG4ndCBlbWl0dGVkIGFueSB0 dXBsZXMgYmVmb3JlLAotCQkgKiB0aGlzIG1pZ2h0IGJlIHRoZSBmaXJzdCB0dXBsZQotCQkgKi8K LQkJaWYgKGluc3RyLT5hc3luY19tb2RlICYmIHNhdmVfdHVwbGVjb3VudCA8IDEuMCkKLQkJCWlu c3RyLT5maXJzdHR1cGxlID0gaW5zdHItPmNvdW50ZXI7Ci0JfQorCWluc3RyLT5ydW5uaW5nID0g dHJ1ZTsKKworCS8qIGNvdW50IHRoZSByZXR1cm5lZCB0dXBsZXMgKi8KKwlpbnN0ci0+dHVwbGVj b3VudCArPSBuVHVwbGVzOwogfQogCiBOb2RlSW5zdHJ1bWVudGF0aW9uICoKQEAgLTQ5OCw2ICs0 OTEsMTI1IEBAIEluc3RyQWdnTm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICpkc3QsIE5vZGVJbnN0 cnVtZW50YXRpb24gKmFkZCkKIAkJV2FsVXNhZ2VBZGQoJmRzdC0+aW5zdHIud2FsdXNhZ2UsICZh ZGQtPmluc3RyLndhbHVzYWdlKTsKIH0KIAorLyoKKyAqIFNwZWNpYWxpemVkIGhhbmRsaW5nIG9m IGluc3RydW1lbnRlZCBFeGVjUHJvY05vZGUKKyAqCisgKiBUaGVzZSBmdW5jdGlvbnMgYXJlIGVx dWl2YWxlbnQgdG8gcnVubmluZyBFeGVjUHJvY05vZGVSZWFsIHdyYXBwZWQgaW4KKyAqIEluc3Ry U3RhcnROb2RlIGFuZCBJbnN0clN0b3BOb2RlLCBidXQgYXZvaWQgdGhlIGNvbmRpdGlvbmFscyBp biB0aGUgaG90IHBhdGgKKyAqIGJ5IGNoZWNraW5nIHRoZSBpbnN0cnVtZW50YXRpb24gb3B0aW9u cyB3aGVuIHRoZSBFeGVjUHJvY05vZGUgcG9pbnRlciBnZXRzCisgKiBmaXJzdCBzZXQsIGFuZCB0 aGVuIHVzaW5nIGEgc3BlY2lhbC1wdXJwb3NlIGZ1bmN0aW9uIGZvciBlYWNoLiBUaGlzIHJlc3Vs dHMKKyAqIGluIGEgbW9yZSBvcHRpbWl6ZWQgc2V0IG9mIGNvbXBpbGVkIGluc3RydWN0aW9ucy4K KyAqLworCisjaW5jbHVkZSAiZXhlY3V0b3IvdHVwdGFibGUuaCIKKyNpbmNsdWRlICJub2Rlcy9l eGVjbm9kZXMuaCIKKworLyogU2ltcGxpZmllZCBwb3A6IHJlc3RvcmUgc2F2ZWQgc3RhdGUgaW5z dGVhZCBvZiByZS1kZXJpdmluZyBmcm9tIGFycmF5ICovCitzdGF0aWMgaW5saW5lIHZvaWQKK0lu c3RyUG9wU3RhY2tUbyhJbnN0cnVtZW50YXRpb24gKnByZXYpCit7CisJQXNzZXJ0KGluc3RyX3N0 YWNrLnN0YWNrX3NpemUgPiAwKTsKKwlpbnN0cl9zdGFjay5zdGFja19zaXplLS07CisJaW5zdHJf c3RhY2suY3VycmVudCA9IHByZXY7Cit9CisKK3N0YXRpYyBUdXBsZVRhYmxlU2xvdCAqCitFeGVj UHJvY05vZGVJbnN0ckZ1bGwoUGxhblN0YXRlICpub2RlKQoreworCU5vZGVJbnN0cnVtZW50YXRp b24gKmluc3RyID0gbm9kZS0+aW5zdHJ1bWVudDsKKwlJbnN0cnVtZW50YXRpb24gKnByZXYgPSBp bnN0cl9zdGFjay5jdXJyZW50OworCVR1cGxlVGFibGVTbG90ICpyZXN1bHQ7CisKKwlJbnN0clB1 c2hTdGFjaygmaW5zdHItPmluc3RyKTsKKwlJbnN0clN0YXJ0VGltZXIoJmluc3RyLT5pbnN0cik7 CisKKwlyZXN1bHQgPSBub2RlLT5FeGVjUHJvY05vZGVSZWFsKG5vZGUpOworCisJSW5zdHJTdG9w Tm9kZVRpbWVyKGluc3RyKTsKKwlJbnN0clBvcFN0YWNrVG8ocHJldik7CisKKwlpbnN0ci0+cnVu bmluZyA9IHRydWU7CisJaWYgKCFUdXBJc051bGwocmVzdWx0KSkKKwkJaW5zdHItPnR1cGxlY291 bnQgKz0gMS4wOworCisJcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFR1cGxlVGFibGVTbG90 ICoKK0V4ZWNQcm9jTm9kZUluc3RyUm93c0J1ZmZlcnNXYWxPbmx5KFBsYW5TdGF0ZSAqbm9kZSkK K3sKKwlOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0ciA9IG5vZGUtPmluc3RydW1lbnQ7CisJSW5z dHJ1bWVudGF0aW9uICpwcmV2ID0gaW5zdHJfc3RhY2suY3VycmVudDsKKwlUdXBsZVRhYmxlU2xv dCAqcmVzdWx0OworCisJSW5zdHJQdXNoU3RhY2soJmluc3RyLT5pbnN0cik7CisKKwlyZXN1bHQg PSBub2RlLT5FeGVjUHJvY05vZGVSZWFsKG5vZGUpOworCisJSW5zdHJQb3BTdGFja1RvKHByZXYp OworCisJaW5zdHItPnJ1bm5pbmcgPSB0cnVlOworCWlmICghVHVwSXNOdWxsKHJlc3VsdCkpCisJ CWluc3RyLT50dXBsZWNvdW50ICs9IDEuMDsKKworCXJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRp YyBUdXBsZVRhYmxlU2xvdCAqCitFeGVjUHJvY05vZGVJbnN0clJvd3NUaW1lck9ubHkoUGxhblN0 YXRlICpub2RlKQoreworCU5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RyID0gbm9kZS0+aW5zdHJ1 bWVudDsKKwlUdXBsZVRhYmxlU2xvdCAqcmVzdWx0OworCisJSW5zdHJTdGFydFRpbWVyKCZpbnN0 ci0+aW5zdHIpOworCisJcmVzdWx0ID0gbm9kZS0+RXhlY1Byb2NOb2RlUmVhbChub2RlKTsKKwor CUluc3RyU3RvcE5vZGVUaW1lcihpbnN0cik7CisKKwlpbnN0ci0+cnVubmluZyA9IHRydWU7CisJ aWYgKCFUdXBJc051bGwocmVzdWx0KSkKKwkJaW5zdHItPnR1cGxlY291bnQgKz0gMS4wOworCisJ cmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFR1cGxlVGFibGVTbG90ICoKK0V4ZWNQcm9jTm9k ZUluc3RyUm93c09ubHkoUGxhblN0YXRlICpub2RlKQoreworCU5vZGVJbnN0cnVtZW50YXRpb24g Kmluc3RyID0gbm9kZS0+aW5zdHJ1bWVudDsKKwlUdXBsZVRhYmxlU2xvdCAqcmVzdWx0OworCisJ cmVzdWx0ID0gbm9kZS0+RXhlY1Byb2NOb2RlUmVhbChub2RlKTsKKworCWluc3RyLT5ydW5uaW5n ID0gdHJ1ZTsKKwlpZiAoIVR1cElzTnVsbChyZXN1bHQpKQorCQlpbnN0ci0+dHVwbGVjb3VudCAr PSAxLjA7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCisvKgorICogUmV0dXJucyBhbiBFeGVjUHJv Y05vZGUgd3JhcHBlciB0aGF0IHBlcmZvcm1zIGluc3RydW1lbnRhdGlvbiBjYWxscywKKyAqIHRh aWxvcmVkIHRvIHRoZSBpbnN0cnVtZW50YXRpb24gb3B0aW9ucyBlbmFibGVkIGZvciB0aGUgbm9k ZS4KKyAqLworRXhlY1Byb2NOb2RlTXRkCitJbnN0ck5vZGVTZXR1cEV4ZWNQcm9jTm9kZShOb2Rl SW5zdHJ1bWVudGF0aW9uICppbnN0cikKK3sKKwlib29sCQluZWVkX3RpbWVyID0gaW5zdHItPmlu c3RyLm5lZWRfdGltZXI7CisJYm9vbAkJbmVlZF9idWYgPSAoaW5zdHItPmluc3RyLm5lZWRfYnVm dXNhZ2UgfHwKKwkJCQkJCQlpbnN0ci0+aW5zdHIubmVlZF93YWx1c2FnZSk7CisKKwlpZiAobmVl ZF90aW1lciAmJiBuZWVkX2J1ZikKKwkJcmV0dXJuIEV4ZWNQcm9jTm9kZUluc3RyRnVsbDsKKwll bHNlIGlmIChuZWVkX2J1ZikKKwkJcmV0dXJuIEV4ZWNQcm9jTm9kZUluc3RyUm93c0J1ZmZlcnNX YWxPbmx5OworCWVsc2UgaWYgKG5lZWRfdGltZXIpCisJCXJldHVybiBFeGVjUHJvY05vZGVJbnN0 clJvd3NUaW1lck9ubHk7CisJZWxzZQorCQlyZXR1cm4gRXhlY1Byb2NOb2RlSW5zdHJSb3dzT25s eTsKK30KKwogLyogVHJpZ2dlciBpbnN0cnVtZW50YXRpb24gaGFuZGxpbmcgKi8KIFRyaWdnZXJJ bnN0cnVtZW50YXRpb24gKgogSW5zdHJBbGxvY1RyaWdnZXIoaW50IG4sIGludCBpbnN0cnVtZW50 X29wdGlvbnMpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50Lmgg Yi9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmgKaW5kZXggYTVlNDhkOGNjNDUuLjJi NTQ4NDg2MWE5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmgK KysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oCkBAIC0yODgsNiArMjg4LDEx IEBAIGV4dGVybiB2b2lkIEluc3RyVXBkYXRlVHVwbGVDb3VudChOb2RlSW5zdHJ1bWVudGF0aW9u ICppbnN0ciwgZG91YmxlIG5UdXBsZXMpOwogZXh0ZXJuIHZvaWQgSW5zdHJFbmRMb29wKE5vZGVJ bnN0cnVtZW50YXRpb24gKmluc3RyKTsKIGV4dGVybiB2b2lkIEluc3RyQWdnTm9kZShOb2RlSW5z dHJ1bWVudGF0aW9uICpkc3QsIE5vZGVJbnN0cnVtZW50YXRpb24gKmFkZCk7CiAKK3R5cGVkZWYg c3RydWN0IFR1cGxlVGFibGVTbG90IFR1cGxlVGFibGVTbG90OwordHlwZWRlZiBzdHJ1Y3QgUGxh blN0YXRlIFBsYW5TdGF0ZTsKK3R5cGVkZWYgVHVwbGVUYWJsZVNsb3QgKigqRXhlY1Byb2NOb2Rl TXRkKSAoUGxhblN0YXRlICpwc3RhdGUpOworZXh0ZXJuIEV4ZWNQcm9jTm9kZU10ZCBJbnN0ck5v ZGVTZXR1cEV4ZWNQcm9jTm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0cik7CisKIGV4dGVy biBUcmlnZ2VySW5zdHJ1bWVudGF0aW9uICpJbnN0ckFsbG9jVHJpZ2dlcihpbnQgbiwgaW50IGlu c3RydW1lbnRfb3B0aW9ucyk7CiBleHRlcm4gdm9pZCBJbnN0clN0YXJ0VHJpZ2dlcihUcmlnZ2Vy SW5zdHJ1bWVudGF0aW9uICp0Z2luc3RyKTsKIGV4dGVybiB2b2lkIEluc3RyU3RvcFRyaWdnZXIo VHJpZ2dlckluc3RydW1lbnRhdGlvbiAqdGdpbnN0ciwgaW50IGZpcmluZ3MpOwotLSAKMi40Ny4x Cgo= --0000000000001ac30e064d022147--