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 1w5XQq-003Lnw-00 for pgsql-hackers@arkaria.postgresql.org; Wed, 25 Mar 2026 23:14:36 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w5XQo-00HNlC-1M for pgsql-hackers@arkaria.postgresql.org; Wed, 25 Mar 2026 23:14:34 +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 1w5XQo-00HNl4-04 for pgsql-hackers@lists.postgresql.org; Wed, 25 Mar 2026 23:14:34 +0000 Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w5XQl-000000019vC-15pt for pgsql-hackers@lists.postgresql.org; Wed, 25 Mar 2026 23:14:34 +0000 Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-66a82351490so598288a12.0 for ; Wed, 25 Mar 2026 16:14:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774480471; cv=none; d=google.com; s=arc-20240605; b=Fq67UFIoxoSrKP1uAcJQpVtWoe5j5pnDjovXEA8o/LnibELtJjth7Np+0dhEOqY8WC VcCNdlYlw6Eq0TaPluwHP3Unt5NagF34BHnV9PgZ5Q1jYBHDbXDmjrRUB2Hv13GT4U+O 7W4atvx2RWtaukNeTmU4/KKiApRvmo+5ddjmUL1lGqh0StMg/ugsZm7iVRnAZKVo8iHN halJUDfX3nlEOi5oKjgQMLSb1LeykvBZ+h7Mz7hfavG+9Yty98nzU8TqkTjzzZA4/9N9 kd7gzLuu69CSbvCm+9mI6Ae6lrdYarnsznmySCen3857onDp9VO6kbfPI2ARh6Ir41Xg Y8QA== 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=nlOuKXgmKha6kGEf71Dth8Y7rBuW4EufJ6/NVVYE06Y=; fh=WxJSKBM8ux4xBY9UBLdqMLD1Q/7guL52Cl0ouG+Gzhs=; b=HQP04eMtHi3Tx1727ED9/Wz2CN9QBesKLUyt0jqXpOvEoPs5YVkAvKKWQMO/1e1GpW OMcX74VaTFkUv4ckRGyC03a8U5mHPq6wwutvWvi04Cp5cNVSIxuP+oDoIx/GESd98und AAUu61JP+eyR2Y0XOwiOD4PyekVYX3loMMUlLtUBYWXwPPCZSN8Ys+3fhFMABLngDQ78 xdY13SKhImxrF02PeIfbmXARc7rqRuhWbtiKXAQu33MNeZdgJOSQ3GLPWtab+jaMVY5Y DrmCX8Q1oGlkofzJ72HLHNiEVe+gpf3wWpkqSPpdW8u+T2sQt30pzp1yESGTLVJrBFO2 yyGw==; 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=gmail.com; s=20251104; t=1774480471; x=1775085271; 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=nlOuKXgmKha6kGEf71Dth8Y7rBuW4EufJ6/NVVYE06Y=; b=TW5/fmkLhk15Tvfozb6OgVZpSxzPb13+vprZr7Tj4wdq6PfQKENaZbMQfNAYlvKyau NPlPUon5XsF50e39szjMF/UwGI2XuWA3S0aIKrDB7YqbQ18YvTNE9ZlOBuTM58rIx1rN ZPSATODOx+1VXjF7Bx5TzbiJiR0+Zc/Y32UqYj/c7y350r/uiT5x5Of2LL2v4Nj2uxfV yfSQF4gWHwuqvSg3SBmCsikIZgsnqCFz1Lrhif76Lxm0VU5tsbKOoacUd5oG/3o6BEfD I1Muv/1vYwFT3VuDrcadpCJohmAuO5hc03TEUQJpgH//Etw9TiamYgh7TlWmP+sccFU4 Aaow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774480471; x=1775085271; 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=nlOuKXgmKha6kGEf71Dth8Y7rBuW4EufJ6/NVVYE06Y=; b=N09KTm7LqwqI6s9K6zM05nwnjBj6z4LbNF+Xv5eH0gxjcU8qfIA8/FliimpcyusdC2 /zmPpkNSxeKTNCGS+vP4n1Pbom/90wly2fhg0QUWzDXeZzNGYc2r/p8e5lLtra4kZs6X wPUKDJh2hUqHNYK8Gnd6P3EU22nHRgireMtNwqOMVhN7sMMAYY3Uw5a9oO3pZ2gQtHHM vaGiW2koPZhiGN5aGi7NpqES/uQkKxMmZrdUBibfRl9vxPzC6ndxKU7ZZHkM48xLE12g 5NJNMWOWZyEYcdNUbI9xO969/+up7Aqehxbz/WgLSjFcgVYWagxwXzXwVzDnMa2HZ2Sm f5Pw== X-Forwarded-Encrypted: i=1; AJvYcCXJep0njloHCLshfhjephDKuqdkNMp8PqkICyKG1Bn9O1wnc0xHjDtvJMl+qc/3dE3vMpNSnzILjKebeApe@lists.postgresql.org X-Gm-Message-State: AOJu0YxfpyaK8A9/Z0Hb0ez8ro/Fwf7eyFW97qMJRdmbBTKnwInGGksA 3xJpDvNnKWasch+AJfgy3/vHXWdTf8h9VPbROXwU3ZxIYMS9xm1uRvM8b9oRTqueq4Lf7UnPSJh 2xwhGNXH9HJDoayozxQYfRTN7FH+3NJg= X-Gm-Gg: ATEYQzxr6SoJOtjCQWOVt+lzGJHx52BPlgxoSPPHQenm5aziTv9ftMY9GndN1u7bE1l GXkIsIaxddQzr+g6B4bP82PY7vpF11/nhlrDBFR6eGU7VrOtI3wn/dvtMCFD7tOOjiUG9upOqKV 0eKd/jt69c4ideDGgEfdseZTmII08irGWGWxWi3wK7UOzX+i4+MoUm3S8CiqSHjFE+pI1RgGthQ Z29K9le9tgNv7eEAa4a2kNpWgXwr49L/MdG7zOMpkhRgkLGnMX/fog/w8sL+RgBoYx31p3mnSlO MsJVqup0HYJSEVLuo5V74K7CdVkK6bktSPNJp17KmVFaEPLPRc6TEd76om74iZWsx/El+b19I8T +U7haJcF4wh1nCjpvkAY= X-Received: by 2002:a05:6402:a294:10b0:668:e299:37fb with SMTP id 4fb4d7f45d1cf-66a340b7cadmr3739865a12.9.1774480470357; Wed, 25 Mar 2026 16:14:30 -0700 (PDT) MIME-Version: 1.0 References: <2be31f17-5405-4de9-8d73-90ebc322f7d8@vondra.me> In-Reply-To: From: Melanie Plageman Date: Wed, 25 Mar 2026 19:14:17 -0400 X-Gm-Features: AQROBzCO59PESkZZhuFPKK7_Til7AcU5njWLbiduSLScWti4ef8olosYScrBfwk Message-ID: Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) To: Tomas Vondra Cc: Andres Freund , Kirill Reshke , Chao Li , Andrey Borodin , Xuneng Zhou , Robert Haas , PostgreSQL Hackers , Heikki Linnakangas Content-Type: multipart/mixed; boundary="00000000000019c2d4064de16e7d" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000019c2d4064de16e7d Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Mar 25, 2026 at 2:54=E2=80=AFPM Melanie Plageman wrote: > > I'm trying to think of cases where the two approaches would differ so > I can decide which to do. > > > 0003 > > > > - Half the "beginscan" calls use a ternary operator directly, half sets > > a variable first (and then uses that). Often mixed in the same file. > > Shouldn't it be a bit consistent? > > Indeed. Attached v46 addresses your feedback and has a bit of assorted cleanup in i= t. I started wondering if table_beginscan_strat() is a bit weird now because it has two boolean arguments that are basically just SO_ALLOW_STRAT and SO_ALLOW_SYNC -- so those are kind of letting the user set "internal" flags. Anyway, I'm not sure we should do anything about it, but it got me thinking. - Melanie --00000000000019c2d4064de16e7d Content-Type: text/x-patch; charset="US-ASCII"; name="v46-0001-Track-which-relations-are-modified-by-a-query.patch" Content-Disposition: attachment; filename="v46-0001-Track-which-relations-are-modified-by-a-query.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn6nttav0 RnJvbSA0MjE2ZDU4ODQzOGFhY2Q0MDIzODAxODY5ZWRjNDY0ZGMyY2IwOTIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDMgRGVjIDIwMjUgMTU6MDc6MjQgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0NiAxLzVdIFRyYWNrIHdoaWNoIHJlbGF0aW9ucyBhcmUgbW9kaWZpZWQgYnkgYSBxdWVy eQoKU2F2ZSB0aGUgcmFuZ2UgdGFibGUgaW5kZXhlcyBvZiByZWxhdGlvbnMgbW9kaWZpZWQgYnkg YSBxdWVyeSBpbiBhCmJpdG1hcCBpbiB0aGUgUGxhbm5lZFN0bXQuIFRoaXMgaXMgZGVyaXZlZCBm cm9tIGV4aXN0aW5nIFBsYW5uZWRTdG10Cm1lbWJlcnMgbGlzdGluZyByb3cgbWFya3MgYW5kIHJl c3VsdCByZWxhdGlvbnMsIGJ1dCBwcmVjb21wdXRpbmcgaXQKYWxsb3dzIGNoZWFwIG1lbWJlcnNo aXAgY2hlY2tzIGR1cmluZyBleGVjdXRpb24uCgpBIGxhdGVyIGNvbW1pdCB3aWxsIHVzZSB0aGlz IGluZm9ybWF0aW9uIGR1cmluZyBzY2FucyB0byBjb250cm9sIHdoZXRoZXIKb3Igbm90IG9uLWFj Y2VzcyBwcnVuaW5nIGlzIGFsbG93ZWQgdG8gc2V0IHRoZSB2aXNpYmlsaXR5IG1hcCAtLSB3aGlj aAp3b3VsZCBiZSBjb3VudGVycHJvZHVjdGl2ZSBpZiB0aGUgcXVlcnkgd2lsbCBtb2RpZnkgdGhl IHBhZ2UuCgpSZWxhdGlvbnMgYXJlIGNvbnNpZGVyZWQgbW9kaWZpZWQgaWYgdGhleSBhcmUgdGhl IHRhcmdldCBvZiBJTlNFUlQsClVQREFURSwgREVMRVRFLCBvciBNRVJHRSwgb3IgaWYgdGhleSBo YXZlIGFueSByb3cgbWFyayAoaW5jbHVkaW5nIFNFTEVDVApGT1IgVVBEQVRFL1NIQVJFIGFuZCBu b24tbG9ja2luZyBtYXJrcyBsaWtlIFJPV19NQVJLX1JFRkVSRU5DRSkuIFNpbmNlCnRoaXMgYml0 bWFwIGlzIHVzZWQgdG8gYXZvaWQgdW5uZWNlc3Nhcnkgd29yaywgaXQgaXMgb2theSBmb3IgaXQg dG8gYmUKY29uc2VydmF0aXZlLgoKQXV0aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxh Z2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJh emVsLmRlPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KRGlz Y3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9GNUNERDFCNS02MjhDLTQ0QTEtOUY4NS0zOTU4 QzYyNkY2QTklNDBnbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxs ZWwuYyAgICB8ICAxICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVMb2NrUm93cy5jICAgIHwg IDMgKysrCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYyB8IDIwICsrKysr KysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgICB8 IDIxICsrKysrKysrKysrKysrKysrKysrLQogc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgg ICAgICAgICAgfCAgNiArKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgNTAgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJh bGxlbC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXggYWM4NGFm Mjk0YzkuLjRmMzk3NjdkMDMzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj UGFyYWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwpAQCAt MTg4LDYgKzE4OCw3IEBAIEV4ZWNTZXJpYWxpemVQbGFuKFBsYW4gKnBsYW4sIEVTdGF0ZSAqZXN0 YXRlKQogCXBzdG10LT5wYXJ0UHJ1bmVJbmZvcyA9IGVzdGF0ZS0+ZXNfcGFydF9wcnVuZV9pbmZv czsKIAlwc3RtdC0+cnRhYmxlID0gZXN0YXRlLT5lc19yYW5nZV90YWJsZTsKIAlwc3RtdC0+dW5w cnVuYWJsZVJlbGlkcyA9IGVzdGF0ZS0+ZXNfdW5wcnVuZWRfcmVsaWRzOworCXBzdG10LT5tb2Rp ZmllZFJlbGlkcyA9IGVzdGF0ZS0+ZXNfcGxhbm5lZHN0bXQtPm1vZGlmaWVkUmVsaWRzOwogCXBz dG10LT5wZXJtSW5mb3MgPSBlc3RhdGUtPmVzX3J0ZXBlcm1pbmZvczsKIAlwc3RtdC0+cmVzdWx0 UmVsYXRpb25zID0gTklMOwogCXBzdG10LT5hcHBlbmRSZWxhdGlvbnMgPSBOSUw7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTG9ja1Jvd3MuYyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVMb2NrUm93cy5jCmluZGV4IDhkODY1NDcwNzgwLi4zOGE0MzMxNWYxMSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUxvY2tSb3dzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZUxvY2tSb3dzLmMKQEAgLTExMyw2ICsxMTMsOSBAQCBsbmV4dDoK IAkJfQogCQllcm0tPmVybUFjdGl2ZSA9IHRydWU7CiAKKwkJQXNzZXJ0KGJtc19pc19tZW1iZXIo ZXJtLT5ydGksCisJCQkJCQkJIGVzdGF0ZS0+ZXNfcGxhbm5lZHN0bXQtPm1vZGlmaWVkUmVsaWRz KSk7CisKIAkJLyogZmV0Y2ggdGhlIHR1cGxlJ3MgY3RpZCAqLwogCQlkYXR1bSA9IEV4ZWNHZXRK dW5rQXR0cmlidXRlKHNsb3QsCiAJCQkJCQkJCQkgYWVybS0+Y3RpZEF0dE5vLApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYwppbmRleCA0Y2Q1ZTI2MmUwZi4uYjIyMjY0YzM0M2Ig MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCisrKyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCkBAIC04OTYsNiArODk2LDE0 IEBAIEV4ZWNJbnNlcnQoTW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LAogCiAJcmVzdWx0UmVs YXRpb25EZXNjID0gcmVzdWx0UmVsSW5mby0+cmlfUmVsYXRpb25EZXNjOwogCisJLyoKKwkgKiBJ ZiB0aGlzIGlzIGEgbGVhZiBwYXJ0aXRpb24gd2UganVzdCBmb3VuZCwgaXQgd29uJ3QgaGF2ZSBh IHZhbGlkIHJhbmdlCisJICogdGFibGUgaW5kZXguCisJICovCisJQXNzZXJ0KHJlc3VsdFJlbElu Zm8tPnJpX1JhbmdlVGFibGVJbmRleCA9PSAwIHx8CisJCSAgIGJtc19pc19tZW1iZXIocmVzdWx0 UmVsSW5mby0+cmlfUmFuZ2VUYWJsZUluZGV4LAorCQkJCQkJIGVzdGF0ZS0+ZXNfcGxhbm5lZHN0 bXQtPm1vZGlmaWVkUmVsaWRzKSk7CisKIAkvKgogCSAqIE9wZW4gdGhlIHRhYmxlJ3MgaW5kZXhl cywgaWYgd2UgaGF2ZSBub3QgZG9uZSBzbyBhbHJlYWR5LCBzbyB0aGF0IHdlCiAJICogY2FuIGFk ZCBuZXcgaW5kZXggZW50cmllcyBmb3IgdGhlIGluc2VydGVkIHR1cGxlLgpAQCAtMTUyMyw2ICsx NTMxLDkgQEAgRXhlY0RlbGV0ZUFjdChNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsIFJlc3Vs dFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiB7CiAJRVN0YXRlCSAgICplc3RhdGUgPSBjb250ZXh0 LT5lc3RhdGU7CiAKKwlBc3NlcnQoYm1zX2lzX21lbWJlcihyZXN1bHRSZWxJbmZvLT5yaV9SYW5n ZVRhYmxlSW5kZXgsCisJCQkJCQkgZXN0YXRlLT5lc19wbGFubmVkc3RtdC0+bW9kaWZpZWRSZWxp ZHMpKTsKKwogCXJldHVybiB0YWJsZV90dXBsZV9kZWxldGUocmVzdWx0UmVsSW5mby0+cmlfUmVs YXRpb25EZXNjLCB0dXBsZWlkLAogCQkJCQkJCSAgZXN0YXRlLT5lc19vdXRwdXRfY2lkLAogCQkJ CQkJCSAgZXN0YXRlLT5lc19zbmFwc2hvdCwKQEAgLTIyMDUsNiArMjIxNiwxNSBAQCBFeGVjVXBk YXRlQWN0KE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwgUmVzdWx0UmVsSW5mbyAqcmVzdWx0 UmVsSW5mbywKIAlib29sCQlwYXJ0aXRpb25fY29uc3RyYWludF9mYWlsZWQ7CiAJVE1fUmVzdWx0 CXJlc3VsdDsKIAorCS8qCisJICogVHVwbGUgcm91dGluZyBmb3IgY3Jvc3MtcGFydGl0aW9uIHVw ZGF0ZXMgb3IgT04gQ09ORkxJQ1QgLi4uIERPIFVQREFURQorCSAqIG1heSBvcGVuIGxlYWYgcGFy dGl0aW9ucyBub3QgaW4gdGhlIHJhbmdlIHRhYmxlLCBpbiB3aGljaCBjYXNlCisJICogcmlfUmFu Z2VUYWJsZUluZGV4IGlzIDAuCisJICovCisJQXNzZXJ0KHJlc3VsdFJlbEluZm8tPnJpX1Jhbmdl VGFibGVJbmRleCA9PSAwIHx8CisJCSAgIGJtc19pc19tZW1iZXIocmVzdWx0UmVsSW5mby0+cmlf UmFuZ2VUYWJsZUluZGV4LAorCQkJCQkJIGVzdGF0ZS0+ZXNfcGxhbm5lZHN0bXQtPm1vZGlmaWVk UmVsaWRzKSk7CisKIAl1cGRhdGVDeHQtPmNyb3NzUGFydFVwZGF0ZSA9IGZhbHNlOwogCiAJLyoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyBiL3NyYy9i YWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwppbmRleCA0MjYwNGEwZjc1Yy4uZGUxMGI2 ZmI0MTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwor KysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKQEAgLTM0MCw4ICszNDAs MTAgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0 cmluZywgaW50IGN1cnNvck9wdGlvbnMsCiAJUmVsT3B0SW5mbyAqZmluYWxfcmVsOwogCVBhdGgJ ICAgKmJlc3RfcGF0aDsKIAlQbGFuCSAgICp0b3BfcGxhbjsKKwlCaXRtYXBzZXQgICptb2RpZmll ZFJlbGlkcyA9IE5VTEw7CiAJTGlzdENlbGwgICAqbHAsCi0JCQkgICAqbHI7CisJCQkgICAqbHIs CisJCQkgICAqbGM7CiAKIAkvKgogCSAqIFNldCB1cCBnbG9iYWwgc3RhdGUgZm9yIHRoaXMgcGxh bm5lciBpbnZvY2F0aW9uLiAgVGhpcyBkYXRhIGlzIG5lZWRlZApAQCAtNjYxLDYgKzY2MywyMyBA QCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5n LCBpbnQgY3Vyc29yT3B0aW9ucywKIAlyZXN1bHQtPnN1YnBsYW5zID0gZ2xvYi0+c3VicGxhbnM7 CiAJcmVzdWx0LT5yZXdpbmRQbGFuSURzID0gZ2xvYi0+cmV3aW5kUGxhbklEczsKIAlyZXN1bHQt PnJvd01hcmtzID0gZ2xvYi0+ZmluYWxyb3dtYXJrczsKKworCS8qCisJICogQ29tcHV0ZSBtb2Rp ZmllZFJlbGlkcyBmcm9tIHJlc3VsdCByZWxhdGlvbnMgYW5kIHJvdyBtYXJrcy4KKwkgKgorCSAq IFRoaXMgaXNuJ3QgZXhhY3RseSB3aGF0IHRoZSBleGVjdXRvciB3aWxsIGFjdHVhbGx5IG1vZGlm eS9sb2NrIGF0CisJICogcnVudGltZS4gUnVudGltZSBwYXJ0aXRpb24gcHJ1bmluZyBtYXkgZWxp bWluYXRlIHNvbWUgcmVzdWx0IHJlbGF0aW9ucworCSAqIGFuZCBzb21lIHJvd21hcmtzIGFyZSBp bmNsdWRlZCB0aGF0IG1heSBub3QgcmVzdWx0IGluIHRhYmxlCisJICogbW9kaWZpY2F0aW9uLiBD b252ZXJzZWx5LCBsZWFmIHBhcnRpdGlvbnMgd2hvc2UgcmVzdWx0IHJlbGF0aW9ucyBhcmUKKwkg KiBjcmVhdGVkIGF0IHRoZSB0aW1lIG9mIGluc2VydCBhcmUgbm90IGluY2x1ZGVkIGhlcmUuCisJ ICovCisJZm9yZWFjaChsYywgZ2xvYi0+cmVzdWx0UmVsYXRpb25zKQorCQltb2RpZmllZFJlbGlk cyA9IGJtc19hZGRfbWVtYmVyKG1vZGlmaWVkUmVsaWRzLCBsZmlyc3RfaW50KGxjKSk7CisJZm9y ZWFjaChsYywgZ2xvYi0+ZmluYWxyb3dtYXJrcykKKwkJbW9kaWZpZWRSZWxpZHMgPSBibXNfYWRk X21lbWJlcihtb2RpZmllZFJlbGlkcywKKwkJCQkJCQkJCQkoKFBsYW5Sb3dNYXJrICopIGxmaXJz dChsYykpLT5ydGkpOworCXJlc3VsdC0+bW9kaWZpZWRSZWxpZHMgPSBtb2RpZmllZFJlbGlkczsK KwogCXJlc3VsdC0+cmVsYXRpb25PaWRzID0gZ2xvYi0+cmVsYXRpb25PaWRzOwogCXJlc3VsdC0+ aW52YWxJdGVtcyA9IGdsb2ItPmludmFsSXRlbXM7CiAJcmVzdWx0LT5wYXJhbUV4ZWNUeXBlcyA9 IGdsb2ItPnBhcmFtRXhlY1R5cGVzOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxh bm5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAppbmRleCBiNjE4NTgyNWZj Yi4uYTljZjlkZDBmMjkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5o CisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCkBAIC0xMTIsNiArMTEyLDEyIEBA IHR5cGVkZWYgc3RydWN0IFBsYW5uZWRTdG10CiAJICovCiAJQml0bWFwc2V0ICAqdW5wcnVuYWJs ZVJlbGlkczsKIAorCS8qCisJICogUlQgaW5kZXhlcyBvZiByZWxhdGlvbnMgbW9kaWZpZWQgYnkg dGhlIHF1ZXJ5IHRocm91Z2gKKwkgKiBVUERBVEUvREVMRVRFL0lOU0VSVC9NRVJHRSBvciB0YXJn ZXRlZCBieSBTRUxFQ1QgRk9SIFVQREFURS9TSEFSRS4KKwkgKi8KKwlCaXRtYXBzZXQgICptb2Rp ZmllZFJlbGlkczsKKwogCS8qCiAJICogbGlzdCBvZiBSVEVQZXJtaXNzaW9uSW5mbyBub2RlcyBm b3IgcnRhYmxlIGVudHJpZXMgbmVlZGluZyBvbmUKIAkgKi8KLS0gCjIuNDMuMAoK --00000000000019c2d4064de16e7d Content-Type: text/x-patch; charset="US-ASCII"; name="v46-0002-Thread-flags-through-begin-scan-APIs.patch" Content-Disposition: attachment; filename="v46-0002-Thread-flags-through-begin-scan-APIs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn6ntvv31 RnJvbSAzODQ3NTNmMjcyY2JlNjBlNzcyOTliOTcxNTM4MDFkM2E0NDhkMzNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUaHUsIDE5IE1hciAyMDI2IDE3OjA1OjU1IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDYgMi81XSBUaHJlYWQgZmxhZ3MgdGhyb3VnaCBiZWdpbi1zY2FuIEFQSXMKCkFkZCBh IHVzZXItc2V0dGFibGUgZmxhZ3MgcGFyYW1ldGVyIHRvIHRoZSB0YWJsZV9iZWdpbnNjYW5fKiB3 cmFwcGVycywKaW5kZXhfYmVnaW5zY2FuKCksIHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKCksIGFu ZCB0aGUgdGFibGUKQU0gY2FsbGJhY2sgaW5kZXhfZmV0Y2hfYmVnaW4oKS4gVGhpcyBhbGxvd3Mg dXNlcnMgdG8gcGFzcyBhZGRpdGlvbmFsCmNvbnRleHQgdG8gYmUgdXNlZCB3aGVuIGJ1aWxkaW5n IHRoZSBzY2FuIGRlc2NyaXB0b3JzLgoKRm9yIGluZGV4IHNjYW5zLCBhIG5ldyBmbGFncyBmaWVs ZCBpcyBhZGRlZCB0byBJbmRleEZldGNoVGFibGVEYXRhLCBhbmQKdGhlIGhlYXAgQU0gc3RvcmVz IHRoZSBjYWxsZXItcHJvdmlkZWQgZmxhZ3MgdGhlcmUgaW4KaGVhcGFtX2luZGV4X2ZldGNoX2Jl Z2luKCkuCgpUaGlzIGludHJvZHVjZXMgYW4gZXh0ZW5zaW9uIHBvaW50IGZvciBmb2xsb3ctdXAg d29yayB0byBwYXNzCnBlci1zY2FuIGluZm9ybWF0aW9uIChzdWNoIGFzIHdoZXRoZXIgdGhlIHJl bGF0aW9uIGlzIHJlYWQtb25seSBmb3IgdGhlCmN1cnJlbnQgcXVlcnkpIGZyb20gdGhlIGV4ZWN1 dG9yIHRvIHRoZSBBTSBsYXllci4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8bWVsYW5pZXBs YWdlbWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJlcyBGcmV1bmQgPGFuZHJlc0BhbmFy YXplbC5kZT4KUmV2aWV3ZWQtYnk6IFRvbWFzIFZvbmRyYSA8dG9tYXNAdm9uZHJhLm1lPgpSZXZp ZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0 cHM6Ly9wb3N0Z3IuZXMvbS9GNUNERDFCNS02MjhDLTQ0QTEtOUY4NS0zOTU4QzYyNkY2QTklNDBn bWFpbC5jb20KLS0tCiBjb250cmliL3Bncm93bG9ja3MvcGdyb3dsb2Nrcy5jICAgICAgICAgICB8 ICAzICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMgICAgICAgICAgICB8ICAzICst CiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jICAgICAgICB8ICAzICstCiBzcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jICB8ICA5ICsrLQogc3JjL2JhY2tl bmQvYWNjZXNzL2luZGV4L2dlbmFtLmMgICAgICAgICAgfCAgNiArLQogc3JjL2JhY2tlbmQvYWNj ZXNzL2luZGV4L2luZGV4YW0uYyAgICAgICAgfCAxMCArKy0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mv bmJ0cmVlL25idHNvcnQuYyAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUv dGFibGVhbS5jICAgICAgICB8IDIyICsrKy0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbnN0 cmFpbnQuYyAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHl0by5jICAg ICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAg ICAgIHwgMTMgKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYyAgICAgICAgICAg fCAgNiArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMgICAgICAgfCAgNCAr LQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMgICAgfCAxNCArKystLQog c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMgfCAgMyArLQogc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYyAgfCAgOSArKy0KIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYyAgICAgIHwgMTIgKystLQogc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZVNhbXBsZXNjYW4uYyAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZVNlcXNjYW4uYyAgICAgICAgfCAgOSArKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVU aWRyYW5nZXNjYW4uYyAgIHwgIDcgKystCiBzcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydGJv dW5kcy5jICAgICB8ICAzICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvc2VsZnVuY3MuYyAgICAg ICAgICB8ICAzICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaCAgICAgICAgICAgICAgICB8 ICA2ICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAgICAgICB8ICA1ICst CiBzcmMvaW5jbHVkZS9hY2Nlc3MvcmVsc2Nhbi5oICAgICAgICAgICAgICB8ICAxICsKIHNyYy9p bmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggICAgICAgICAgICAgIHwgNzMgKysrKysrKysrKysrKysr LS0tLS0tLS0KIDI2IGZpbGVzIGNoYW5nZWQsIDE1MiBpbnNlcnRpb25zKCspLCA4NCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL3Bncm93bG9ja3MvcGdyb3dsb2Nrcy5jIGIvY29u dHJpYi9wZ3Jvd2xvY2tzL3Bncm93bG9ja3MuYwppbmRleCBmZjM2OTJjODdjNC4uNzVhZDM3OTE5 MGYgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdyb3dsb2Nrcy9wZ3Jvd2xvY2tzLmMKKysrIGIvY29u dHJpYi9wZ3Jvd2xvY2tzL3Bncm93bG9ja3MuYwpAQCAtMTE1LDcgKzExNSw4IEBAIHBncm93bG9j a3MoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJICAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVs KSk7CiAKIAkvKiBTY2FuIHRoZSByZWxhdGlvbiAqLwotCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4o cmVsLCBHZXRBY3RpdmVTbmFwc2hvdCgpLCAwLCBOVUxMKTsKKwlzY2FuID0gdGFibGVfYmVnaW5z Y2FuKHJlbCwgR2V0QWN0aXZlU25hcHNob3QoKSwgMCwgTlVMTCwKKwkJCQkJCSAgIDAgLyogZmxh Z3MgKi8gKTsKIAloc2NhbiA9IChIZWFwU2NhbkRlc2MpIHNjYW47CiAKIAlhdHRpbm1ldGEgPSBU dXBsZURlc2NHZXRBdHRJbk1ldGFkYXRhKHJzaW5mby0+c2V0RGVzYyk7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9i cmluLmMKaW5kZXggMmEwZjhjOGUzYjguLjUzNjQ5M2ZhMzhhIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9hY2Nlc3MvYnJpbi9icmluLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJp bi5jCkBAIC0yODQ0LDcgKzI4NDQsOCBAQCBfYnJpbl9wYXJhbGxlbF9zY2FuX2FuZF9idWlsZChC cmluQnVpbGRTdGF0ZSAqc3RhdGUsCiAJaW5kZXhJbmZvLT5paV9Db25jdXJyZW50ID0gYnJpbnNo YXJlZC0+aXNjb25jdXJyZW50OwogCiAJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbCho ZWFwLAotCQkJCQkJCQkJUGFyYWxsZWxUYWJsZVNjYW5Gcm9tQnJpblNoYXJlZChicmluc2hhcmVk KSk7CisJCQkJCQkJCQlQYXJhbGxlbFRhYmxlU2NhbkZyb21CcmluU2hhcmVkKGJyaW5zaGFyZWQp LAorCQkJCQkJCQkJMCAvKiBmbGFncyAqLyApOwogCiAJcmVsdHVwbGVzID0gdGFibGVfaW5kZXhf YnVpbGRfc2NhbihoZWFwLCBpbmRleCwgaW5kZXhJbmZvLCB0cnVlLCB0cnVlLAogCQkJCQkJCQkJ ICAgYnJpbmJ1aWxkQ2FsbGJhY2tQYXJhbGxlbCwgc3RhdGUsIHNjYW4pOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9n aW4vZ2luaW5zZXJ0LmMKaW5kZXggZTU0NzgyZDlkZDguLmQ0ZTljOWVkOTUwIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9naW4vZ2luaW5zZXJ0LmMKQEAgLTIwNjgsNyArMjA2OCw4IEBAIF9naW5fcGFyYWxsZWxf c2Nhbl9hbmRfYnVpbGQoR2luQnVpbGRTdGF0ZSAqc3RhdGUsCiAJaW5kZXhJbmZvLT5paV9Db25j dXJyZW50ID0gZ2luc2hhcmVkLT5pc2NvbmN1cnJlbnQ7CiAKIAlzY2FuID0gdGFibGVfYmVnaW5z Y2FuX3BhcmFsbGVsKGhlYXAsCi0JCQkJCQkJCQlQYXJhbGxlbFRhYmxlU2NhbkZyb21HaW5CdWls ZFNoYXJlZChnaW5zaGFyZWQpKTsKKwkJCQkJCQkJCVBhcmFsbGVsVGFibGVTY2FuRnJvbUdpbkJ1 aWxkU2hhcmVkKGdpbnNoYXJlZCksCisJCQkJCQkJCQkwIC8qIGZsYWdzICovICk7CiAKIAlyZWx0 dXBsZXMgPSB0YWJsZV9pbmRleF9idWlsZF9zY2FuKGhlYXAsIGluZGV4LCBpbmRleEluZm8sIHRy dWUsIHByb2dyZXNzLAogCQkJCQkJCQkJICAgZ2luQnVpbGRDYWxsYmFja1BhcmFsbGVsLCBzdGF0 ZSwgc2Nhbik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFu ZGxlci5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYwppbmRleCBk NDA4Nzg5MjhlMS4uOGM3Njk1ZWJmYjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbV9oYW5kbGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt X2hhbmRsZXIuYwpAQCAtODEsMTEgKzgxLDEyIEBAIGhlYXBhbV9zbG90X2NhbGxiYWNrcyhSZWxh dGlvbiByZWxhdGlvbikKICAqLwogCiBzdGF0aWMgSW5kZXhGZXRjaFRhYmxlRGF0YSAqCi1oZWFw YW1faW5kZXhfZmV0Y2hfYmVnaW4oUmVsYXRpb24gcmVsKQoraGVhcGFtX2luZGV4X2ZldGNoX2Jl Z2luKFJlbGF0aW9uIHJlbCwgdWludDMyIGZsYWdzKQogewogCUluZGV4RmV0Y2hIZWFwRGF0YSAq aHNjYW4gPSBwYWxsb2MwX29iamVjdChJbmRleEZldGNoSGVhcERhdGEpOwogCiAJaHNjYW4tPnhz X2Jhc2UucmVsID0gcmVsOworCWhzY2FuLT54c19iYXNlLmZsYWdzID0gZmxhZ3M7CiAJaHNjYW4t PnhzX2NidWYgPSBJbnZhbGlkQnVmZmVyOwogCWhzY2FuLT54c192bWJ1ZmZlciA9IEludmFsaWRC dWZmZXI7CiAKQEAgLTc2Myw3ICs3NjQsOCBAQCBoZWFwYW1fcmVsYXRpb25fY29weV9mb3JfY2x1 c3RlcihSZWxhdGlvbiBPbGRIZWFwLCBSZWxhdGlvbiBOZXdIZWFwLAogCiAJCXRhYmxlU2NhbiA9 IE5VTEw7CiAJCWhlYXBTY2FuID0gTlVMTDsKLQkJaW5kZXhTY2FuID0gaW5kZXhfYmVnaW5zY2Fu KE9sZEhlYXAsIE9sZEluZGV4LCBTbmFwc2hvdEFueSwgTlVMTCwgMCwgMCk7CisJCWluZGV4U2Nh biA9IGluZGV4X2JlZ2luc2NhbihPbGRIZWFwLCBPbGRJbmRleCwgU25hcHNob3RBbnksIE5VTEws IDAsIDAsCisJCQkJCQkJCQkwIC8qIGZsYWdzICovICk7CiAJCWluZGV4X3Jlc2NhbihpbmRleFNj YW4sIE5VTEwsIDAsIE5VTEwsIDApOwogCX0KIAllbHNlCkBAIC03NzIsNyArNzc0LDggQEAgaGVh cGFtX3JlbGF0aW9uX2NvcHlfZm9yX2NsdXN0ZXIoUmVsYXRpb24gT2xkSGVhcCwgUmVsYXRpb24g TmV3SGVhcCwKIAkJcGdzdGF0X3Byb2dyZXNzX3VwZGF0ZV9wYXJhbShQUk9HUkVTU19SRVBBQ0tf UEhBU0UsCiAJCQkJCQkJCQkgUFJPR1JFU1NfUkVQQUNLX1BIQVNFX1NFUV9TQ0FOX0hFQVApOwog Ci0JCXRhYmxlU2NhbiA9IHRhYmxlX2JlZ2luc2NhbihPbGRIZWFwLCBTbmFwc2hvdEFueSwgMCwg KFNjYW5LZXkpIE5VTEwpOworCQl0YWJsZVNjYW4gPSB0YWJsZV9iZWdpbnNjYW4oT2xkSGVhcCwg U25hcHNob3RBbnksIDAsIChTY2FuS2V5KSBOVUxMLAorCQkJCQkJCQkJMCAvKiBmbGFncyAqLyAp OwogCQloZWFwU2NhbiA9IChIZWFwU2NhbkRlc2MpIHRhYmxlU2NhbjsKIAkJaW5kZXhTY2FuID0g TlVMTDsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2dlbmFtLmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvZ2VuYW0uYwppbmRleCA1ZTg5Yjg2YTYyYy4uMDNhMjQz MzQ1YmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5hbS5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5hbS5jCkBAIC00NTUsNyArNDU1LDggQEAgc3lz dGFibGVfYmVnaW5zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkJfQogCiAJCXN5c3NjYW4t PmlzY2FuID0gaW5kZXhfYmVnaW5zY2FuKGhlYXBSZWxhdGlvbiwgaXJlbCwKLQkJCQkJCQkJCQkg c25hcHNob3QsIE5VTEwsIG5rZXlzLCAwKTsKKwkJCQkJCQkJCQkgc25hcHNob3QsIE5VTEwsIG5r ZXlzLCAwLAorCQkJCQkJCQkJCSAwIC8qIGZsYWdzICovICk7CiAJCWluZGV4X3Jlc2NhbihzeXNz Y2FuLT5pc2NhbiwgaWR4a2V5LCBua2V5cywgTlVMTCwgMCk7CiAJCXN5c3NjYW4tPnNjYW4gPSBO VUxMOwogCkBAIC03MTYsNyArNzE3LDggQEAgc3lzdGFibGVfYmVnaW5zY2FuX29yZGVyZWQoUmVs YXRpb24gaGVhcFJlbGF0aW9uLAogCQlic3lzc2NhbiA9IHRydWU7CiAKIAlzeXNzY2FuLT5pc2Nh biA9IGluZGV4X2JlZ2luc2NhbihoZWFwUmVsYXRpb24sIGluZGV4UmVsYXRpb24sCi0JCQkJCQkJ CQkgc25hcHNob3QsIE5VTEwsIG5rZXlzLCAwKTsKKwkJCQkJCQkJCSBzbmFwc2hvdCwgTlVMTCwg bmtleXMsIDAsCisJCQkJCQkJCQkgMCAvKiBmbGFncyAqLyApOwogCWluZGV4X3Jlc2NhbihzeXNz Y2FuLT5pc2NhbiwgaWR4a2V5LCBua2V5cywgTlVMTCwgMCk7CiAJc3lzc2Nhbi0+c2NhbiA9IE5V TEw7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jCmluZGV4IGZiZmMzMzE1OWViLi4xM2Nk YmI4NmNkNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jCkBAIC0yNTgsNyArMjU4LDgg QEAgaW5kZXhfYmVnaW5zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkJCQlSZWxhdGlvbiBp bmRleFJlbGF0aW9uLAogCQkJCVNuYXBzaG90IHNuYXBzaG90LAogCQkJCUluZGV4U2Nhbkluc3Ry dW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKLQkJCQlpbnQgbmtleXMsIGludCBub3JkZXJieXMpCisJ CQkJaW50IG5rZXlzLCBpbnQgbm9yZGVyYnlzLAorCQkJCXVpbnQzMiBmbGFncykKIHsKIAlJbmRl eFNjYW5EZXNjIHNjYW47CiAKQEAgLTI4NSw3ICsyODYsNyBAQCBpbmRleF9iZWdpbnNjYW4oUmVs YXRpb24gaGVhcFJlbGF0aW9uLAogCXNjYW4tPmluc3RydW1lbnQgPSBpbnN0cnVtZW50OwogCiAJ LyogcHJlcGFyZSB0byBmZXRjaCBpbmRleCBtYXRjaGVzIGZyb20gdGFibGUgKi8KLQlzY2FuLT54 c19oZWFwZmV0Y2ggPSB0YWJsZV9pbmRleF9mZXRjaF9iZWdpbihoZWFwUmVsYXRpb24pOworCXNj YW4tPnhzX2hlYXBmZXRjaCA9IHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKGhlYXBSZWxhdGlvbiwg ZmxhZ3MpOwogCiAJcmV0dXJuIHNjYW47CiB9CkBAIC01OTQsNyArNTk1LDggQEAgSW5kZXhTY2Fu RGVzYwogaW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9uIGhlYXByZWwsIFJlbGF0aW9u IGluZGV4cmVsLAogCQkJCQkJIEluZGV4U2Nhbkluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwK IAkJCQkJCSBpbnQgbmtleXMsIGludCBub3JkZXJieXMsCi0JCQkJCQkgUGFyYWxsZWxJbmRleFNj YW5EZXNjIHBzY2FuKQorCQkJCQkJIFBhcmFsbGVsSW5kZXhTY2FuRGVzYyBwc2NhbiwKKwkJCQkJ CSB1aW50MzIgZmxhZ3MpCiB7CiAJU25hcHNob3QJc25hcHNob3Q7CiAJSW5kZXhTY2FuRGVzYyBz Y2FuOwpAQCAtNjE2LDcgKzYxOCw3IEBAIGluZGV4X2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxhdGlv biBoZWFwcmVsLCBSZWxhdGlvbiBpbmRleHJlbCwKIAlzY2FuLT5pbnN0cnVtZW50ID0gaW5zdHJ1 bWVudDsKIAogCS8qIHByZXBhcmUgdG8gZmV0Y2ggaW5kZXggbWF0Y2hlcyBmcm9tIHRhYmxlICov Ci0Jc2Nhbi0+eHNfaGVhcGZldGNoID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4oaGVhcHJlbCk7 CisJc2Nhbi0+eHNfaGVhcGZldGNoID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4oaGVhcHJlbCwg ZmxhZ3MpOwogCiAJcmV0dXJuIHNjYW47CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvbmJ0cmVlL25idHNvcnQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5j CmluZGV4IDQ3YTliZGEzMGM5Li4zYzQ0NGVjZTIxNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL25idHJlZS9uYnRzb3J0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9u YnRzb3J0LmMKQEAgLTE5MjgsNyArMTkyOCw4IEBAIF9idF9wYXJhbGxlbF9zY2FuX2FuZF9zb3J0 KEJUU3Bvb2wgKmJ0c3Bvb2wsIEJUU3Bvb2wgKmJ0c3Bvb2wyLAogCWluZGV4SW5mbyA9IEJ1aWxk SW5kZXhJbmZvKGJ0c3Bvb2wtPmluZGV4KTsKIAlpbmRleEluZm8tPmlpX0NvbmN1cnJlbnQgPSBi dHNoYXJlZC0+aXNjb25jdXJyZW50OwogCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwo YnRzcG9vbC0+aGVhcCwKLQkJCQkJCQkJCVBhcmFsbGVsVGFibGVTY2FuRnJvbUJUU2hhcmVkKGJ0 c2hhcmVkKSk7CisJCQkJCQkJCQlQYXJhbGxlbFRhYmxlU2NhbkZyb21CVFNoYXJlZChidHNoYXJl ZCksCisJCQkJCQkJCQkwIC8qIGZsYWdzICovICk7CiAJcmVsdHVwbGVzID0gdGFibGVfaW5kZXhf YnVpbGRfc2NhbihidHNwb29sLT5oZWFwLCBidHNwb29sLT5pbmRleCwgaW5kZXhJbmZvLAogCQkJ CQkJCQkJICAgdHJ1ZSwgcHJvZ3Jlc3MsIF9idF9idWlsZF9jYWxsYmFjaywKIAkJCQkJCQkJCSAg ICZidWlsZHN0YXRlLCBzY2FuKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90YWJs ZS90YWJsZWFtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5jCmluZGV4IGRm ZGExYWY0MTJlLi4zYWM0MDI3Y2UxMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3Rh YmxlL3RhYmxlYW0uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5jCkBA IC0xMTgsNyArMTE4LDcgQEAgdGFibGVfYmVnaW5zY2FuX2NhdGFsb2coUmVsYXRpb24gcmVsYXRp b24sIGludCBua2V5cywgU2NhbktleURhdGEgKmtleSkKIAlTbmFwc2hvdAlzbmFwc2hvdCA9IFJl Z2lzdGVyU25hcHNob3QoR2V0Q2F0YWxvZ1NuYXBzaG90KHJlbGlkKSk7CiAKIAlyZXR1cm4gdGFi bGVfYmVnaW5zY2FuX2NvbW1vbihyZWxhdGlvbiwgc25hcHNob3QsIG5rZXlzLCBrZXksCi0JCQkJ CQkJCSAgTlVMTCwgZmxhZ3MpOworCQkJCQkJCQkgIE5VTEwsIGZsYWdzLCAwKTsKIH0KIAogCkBA IC0xNjMsMTAgKzE2MywxMSBAQCB0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZShSZWxhdGlv biByZWwsIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKIH0KIAogVGFibGVTY2FuRGVzYwot dGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9uIHJlbGF0aW9uLCBQYXJhbGxlbFRhYmxl U2NhbkRlc2MgcHNjYW4pCit0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gcmVsYXRp b24sIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKKwkJCQkJCSB1aW50MzIgZmxhZ3MpCiB7 CiAJU25hcHNob3QJc25hcHNob3Q7Ci0JdWludDMyCQlmbGFncyA9IFNPX1RZUEVfU0VRU0NBTiB8 CisJdWludDMyCQlpbnRlcm5hbF9mbGFncyA9IFNPX1RZUEVfU0VRU0NBTiB8CiAJCVNPX0FMTE9X X1NUUkFUIHwgU09fQUxMT1dfU1lOQyB8IFNPX0FMTE9XX1BBR0VNT0RFOwogCiAJQXNzZXJ0KFJl bEZpbGVMb2NhdG9yRXF1YWxzKHJlbGF0aW9uLT5yZF9sb2NhdG9yLCBwc2Nhbi0+cGhzX2xvY2F0 b3IpKTsKQEAgLTE3Niw3ICsxNzcsNyBAQCB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRp b24gcmVsYXRpb24sIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbikKIAkJLyogU25hcHNob3Qg d2FzIHNlcmlhbGl6ZWQgLS0gcmVzdG9yZSBpdCAqLwogCQlzbmFwc2hvdCA9IFJlc3RvcmVTbmFw c2hvdCgoY2hhciAqKSBwc2NhbiArIHBzY2FuLT5waHNfc25hcHNob3Rfb2ZmKTsKIAkJUmVnaXN0 ZXJTbmFwc2hvdChzbmFwc2hvdCk7Ci0JCWZsYWdzIHw9IFNPX1RFTVBfU05BUFNIT1Q7CisJCWlu dGVybmFsX2ZsYWdzIHw9IFNPX1RFTVBfU05BUFNIT1Q7CiAJfQogCWVsc2UKIAl7CkBAIC0xODUs MTYgKzE4NiwxNyBAQCB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gcmVsYXRpb24s IFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbikKIAl9CiAKIAlyZXR1cm4gdGFibGVfYmVnaW5z Y2FuX2NvbW1vbihyZWxhdGlvbiwgc25hcHNob3QsIDAsIE5VTEwsCi0JCQkJCQkJCSAgcHNjYW4s IGZsYWdzKTsKKwkJCQkJCQkJICBwc2NhbiwgaW50ZXJuYWxfZmxhZ3MsIGZsYWdzKTsKIH0KIAog VGFibGVTY2FuRGVzYwogdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsX3RpZHJhbmdlKFJlbGF0aW9u IHJlbGF0aW9uLAotCQkJCQkJCQkgIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbikKKwkJCQkJ CQkJICBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4sCisJCQkJCQkJCSAgdWludDMyIGZsYWdz KQogewogCVNuYXBzaG90CXNuYXBzaG90OwotCXVpbnQzMgkJZmxhZ3MgPSBTT19UWVBFX1RJRFJB TkdFU0NBTiB8IFNPX0FMTE9XX1BBR0VNT0RFOwogCVRhYmxlU2NhbkRlc2Mgc3NjYW47CisJdWlu dDMyCQlpbnRlcm5hbF9mbGFncyA9IFNPX1RZUEVfVElEUkFOR0VTQ0FOIHwgU09fQUxMT1dfUEFH RU1PREU7CiAKIAlBc3NlcnQoUmVsRmlsZUxvY2F0b3JFcXVhbHMocmVsYXRpb24tPnJkX2xvY2F0 b3IsIHBzY2FuLT5waHNfbG9jYXRvcikpOwogCkBAIC0yMDYsNyArMjA4LDcgQEAgdGFibGVfYmVn aW5zY2FuX3BhcmFsbGVsX3RpZHJhbmdlKFJlbGF0aW9uIHJlbGF0aW9uLAogCQkvKiBTbmFwc2hv dCB3YXMgc2VyaWFsaXplZCAtLSByZXN0b3JlIGl0ICovCiAJCXNuYXBzaG90ID0gUmVzdG9yZVNu YXBzaG90KChjaGFyICopIHBzY2FuICsgcHNjYW4tPnBoc19zbmFwc2hvdF9vZmYpOwogCQlSZWdp c3RlclNuYXBzaG90KHNuYXBzaG90KTsKLQkJZmxhZ3MgfD0gU09fVEVNUF9TTkFQU0hPVDsKKwkJ aW50ZXJuYWxfZmxhZ3MgfD0gU09fVEVNUF9TTkFQU0hPVDsKIAl9CiAJZWxzZQogCXsKQEAgLTIx NSw3ICsyMTcsNyBAQCB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWxfdGlkcmFuZ2UoUmVsYXRpb24g cmVsYXRpb24sCiAJfQogCiAJc3NjYW4gPSB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbGF0aW9u LCBzbmFwc2hvdCwgMCwgTlVMTCwKLQkJCQkJCQkJICAgcHNjYW4sIGZsYWdzKTsKKwkJCQkJCQkJ ICAgcHNjYW4sIGludGVybmFsX2ZsYWdzLCBmbGFncyk7CiAJcmV0dXJuIHNzY2FuOwogfQogCkBA IC0yNDgsNyArMjUwLDcgQEAgdGFibGVfaW5kZXhfZmV0Y2hfdHVwbGVfY2hlY2soUmVsYXRpb24g cmVsLAogCWJvb2wJCWZvdW5kOwogCiAJc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRlKHJlbCwgTlVM TCk7Ci0Jc2NhbiA9IHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKHJlbCk7CisJc2NhbiA9IHRhYmxl X2luZGV4X2ZldGNoX2JlZ2luKHJlbCwgMCAvKiBmbGFncyAqLyApOwogCWZvdW5kID0gdGFibGVf aW5kZXhfZmV0Y2hfdHVwbGUoc2NhbiwgdGlkLCBzbmFwc2hvdCwgc2xvdCwgJmNhbGxfYWdhaW4s CiAJCQkJCQkJCQlhbGxfZGVhZCk7CiAJdGFibGVfaW5kZXhfZmV0Y2hfZW5kKHNjYW4pOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29uc3RyYWludC5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvY29uc3RyYWludC5jCmluZGV4IGNjMTFjNDdiNmYyLi4xYzRmNWEyNWJhNCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29uc3RyYWludC5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2NvbnN0cmFpbnQuYwpAQCAtMTA2LDcgKzEwNiw4IEBAIHVuaXF1ZV9rZXlf cmVjaGVjayhQR19GVU5DVElPTl9BUkdTKQogCSAqLwogCXRtcHRpZCA9IGNoZWNrdGlkOwogCXsK LQkJSW5kZXhGZXRjaFRhYmxlRGF0YSAqc2NhbiA9IHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKHRy aWdkYXRhLT50Z19yZWxhdGlvbik7CisJCUluZGV4RmV0Y2hUYWJsZURhdGEgKnNjYW4gPSB0YWJs ZV9pbmRleF9mZXRjaF9iZWdpbih0cmlnZGF0YS0+dGdfcmVsYXRpb24sCisJCQkJCQkJCQkJCQkJ CQkwIC8qIGZsYWdzICovICk7CiAJCWJvb2wJCWNhbGxfYWdhaW4gPSBmYWxzZTsKIAogCQlpZiAo IXRhYmxlX2luZGV4X2ZldGNoX3R1cGxlKHNjYW4sICZ0bXB0aWQsIFNuYXBzaG90U2VsZiwgc2xv dCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHl0by5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvY29weXRvLmMKaW5kZXggZmFmNjJkOTU5YjQuLmU2YzIzN2Q2ZDBmIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5dG8uYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9jb3B5dG8uYwpAQCAtMTMzNiw3ICsxMzM2LDggQEAgQ29weVJlbGF0aW9uVG8oQ29w eVRvU3RhdGUgY3N0YXRlLCBSZWxhdGlvbiByZWwsIFJlbGF0aW9uIHJvb3RfcmVsLCB1aW50NjQg KnByb2MKIAlBdHRyTWFwICAgICptYXAgPSBOVUxMOwogCVR1cGxlVGFibGVTbG90ICpyb290X3Ns b3QgPSBOVUxMOwogCi0Jc2NhbmRlc2MgPSB0YWJsZV9iZWdpbnNjYW4ocmVsLCBHZXRBY3RpdmVT bmFwc2hvdCgpLCAwLCBOVUxMKTsKKwlzY2FuZGVzYyA9IHRhYmxlX2JlZ2luc2NhbihyZWwsIEdl dEFjdGl2ZVNuYXBzaG90KCksIDAsIE5VTEwsCisJCQkJCQkJICAgMCAvKiBmbGFncyAqLyApOwog CXNsb3QgPSB0YWJsZV9zbG90X2NyZWF0ZShyZWwsIE5VTEwpOwogCiAJLyoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv dGFibGVjbWRzLmMKaW5kZXggYzY5YzEyZGMwMTQuLjZkZDNhZWQ2Yjk4IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYwpAQCAtNjQxMSw3ICs2NDExLDggQEAgQVRSZXdyaXRlVGFibGUoQWx0ZXJl ZFRhYmxlSW5mbyAqdGFiLCBPaWQgT0lETmV3SGVhcCkKIAkJICogY2hlY2tpbmcgYWxsIHRoZSBj b25zdHJhaW50cy4KIAkJICovCiAJCXNuYXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hvdChHZXRMYXRl c3RTbmFwc2hvdCgpKTsKLQkJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihvbGRyZWwsIHNuYXBzaG90 LCAwLCBOVUxMKTsKKwkJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihvbGRyZWwsIHNuYXBzaG90LCAw LCBOVUxMLAorCQkJCQkJCSAgIDAgLyogZmxhZ3MgKi8gKTsKIAogCQkvKgogCQkgKiBTd2l0Y2gg dG8gcGVyLXR1cGxlIG1lbW9yeSBjb250ZXh0IGFuZCByZXNldCBpdCBmb3IgZWFjaCB0dXBsZQpA QCAtMTM5ODAsOCArMTM5ODEsOCBAQCB2YWxpZGF0ZUZvcmVpZ25LZXlDb25zdHJhaW50KGNoYXIg KmNvbm5hbWUsCiAJICovCiAJc25hcHNob3QgPSBSZWdpc3RlclNuYXBzaG90KEdldExhdGVzdFNu YXBzaG90KCkpOwogCXNsb3QgPSB0YWJsZV9zbG90X2NyZWF0ZShyZWwsIE5VTEwpOwotCXNjYW4g PSB0YWJsZV9iZWdpbnNjYW4ocmVsLCBzbmFwc2hvdCwgMCwgTlVMTCk7Ci0KKwlzY2FuID0gdGFi bGVfYmVnaW5zY2FuKHJlbCwgc25hcHNob3QsIDAsIE5VTEwsCisJCQkJCQkgICAwIC8qIGZsYWdz ICovICk7CiAJcGVyVHVwQ3h0ID0gQWxsb2NTZXRDb250ZXh0Q3JlYXRlKEN1cnJlbnRNZW1vcnlD b250ZXh0LAogCQkJCQkJCQkJICAidmFsaWRhdGVGb3JlaWduS2V5Q29uc3RyYWludCIsCiAJCQkJ CQkJCQkgIEFMTE9DU0VUX1NNQUxMX1NJWkVTKTsKQEAgLTIyODgyLDcgKzIyODgzLDggQEAgTWVy Z2VQYXJ0aXRpb25zTW92ZVJvd3MoTGlzdCAqKndxdWV1ZSwgTGlzdCAqbWVyZ2luZ1BhcnRpdGlv bnMsIFJlbGF0aW9uIG5ld1BhcnQKIAogCQkvKiBTY2FuIHRocm91Z2ggdGhlIHJvd3MuICovCiAJ CXNuYXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hvdChHZXRMYXRlc3RTbmFwc2hvdCgpKTsKLQkJc2Nh biA9IHRhYmxlX2JlZ2luc2NhbihtZXJnaW5nUGFydGl0aW9uLCBzbmFwc2hvdCwgMCwgTlVMTCk7 CisJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4obWVyZ2luZ1BhcnRpdGlvbiwgc25hcHNob3QsIDAs IE5VTEwsCisJCQkJCQkJICAgMCAvKiBmbGFncyAqLyApOwogCiAJCS8qCiAJCSAqIFN3aXRjaCB0 byBwZXItdHVwbGUgbWVtb3J5IGNvbnRleHQgYW5kIHJlc2V0IGl0IGZvciBlYWNoIHR1cGxlCkBA IC0yMzM0Niw3ICsyMzM0OCw4IEBAIFNwbGl0UGFydGl0aW9uTW92ZVJvd3MoTGlzdCAqKndxdWV1 ZSwgUmVsYXRpb24gcmVsLCBSZWxhdGlvbiBzcGxpdFJlbCwKIAogCS8qIFNjYW4gdGhyb3VnaCB0 aGUgcm93cy4gKi8KIAlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0TGF0ZXN0U25hcHNo b3QoKSk7Ci0Jc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihzcGxpdFJlbCwgc25hcHNob3QsIDAsIE5V TEwpOworCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4oc3BsaXRSZWwsIHNuYXBzaG90LCAwLCBOVUxM LAorCQkJCQkJICAgMCAvKiBmbGFncyAqLyApOwogCiAJLyoKIAkgKiBTd2l0Y2ggdG8gcGVyLXR1 cGxlIG1lbW9yeSBjb250ZXh0IGFuZCByZXNldCBpdCBmb3IgZWFjaCB0dXBsZQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3R5cGVjbWRzLmMKaW5kZXggM2RhYjZiYjVhNzkuLjExNWJkNzdhZjI3IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3R5cGVjbWRzLmMKQEAgLTMxODUsNyArMzE4NSw4IEBAIHZhbGlkYXRlRG9tYWluTm90TnVsbENv bnN0cmFpbnQoT2lkIGRvbWFpbm9pZCkKIAogCQkvKiBTY2FuIGFsbCB0dXBsZXMgaW4gdGhpcyBy ZWxhdGlvbiAqLwogCQlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0TGF0ZXN0U25hcHNo b3QoKSk7Ci0JCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4odGVzdHJlbCwgc25hcHNob3QsIDAsIE5V TEwpOworCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHRlc3RyZWwsIHNuYXBzaG90LCAwLCBOVUxM LAorCQkJCQkJCSAgIDAgLyogZmxhZ3MgKi8gKTsKIAkJc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRl KHRlc3RyZWwsIE5VTEwpOwogCQl3aGlsZSAodGFibGVfc2Nhbl9nZXRuZXh0c2xvdChzY2FuLCBG b3J3YXJkU2NhbkRpcmVjdGlvbiwgc2xvdCkpCiAJCXsKQEAgLTMyNjYsNyArMzI2Nyw4IEBAIHZh bGlkYXRlRG9tYWluQ2hlY2tDb25zdHJhaW50KE9pZCBkb21haW5vaWQsIGNvbnN0IGNoYXIgKmNj YmluLCBMT0NLTU9ERSBsb2NrbW9kCiAKIAkJLyogU2NhbiBhbGwgdHVwbGVzIGluIHRoaXMgcmVs YXRpb24gKi8KIAkJc25hcHNob3QgPSBSZWdpc3RlclNuYXBzaG90KEdldExhdGVzdFNuYXBzaG90 KCkpOwotCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHRlc3RyZWwsIHNuYXBzaG90LCAwLCBOVUxM KTsKKwkJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbih0ZXN0cmVsLCBzbmFwc2hvdCwgMCwgTlVMTCwK KwkJCQkJCQkgICAwIC8qIGZsYWdzICovICk7CiAJCXNsb3QgPSB0YWJsZV9zbG90X2NyZWF0ZSh0 ZXN0cmVsLCBOVUxMKTsKIAkJd2hpbGUgKHRhYmxlX3NjYW5fZ2V0bmV4dHNsb3Qoc2NhbiwgRm9y d2FyZFNjYW5EaXJlY3Rpb24sIHNsb3QpKQogCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjSW5kZXhpbmcuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGlu Zy5jCmluZGV4IDlkMDcxZTQ5NWM2Li43MjY3MTAxM2M1MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y0luZGV4aW5nLmMKQEAgLTgxNSw3ICs4MTUsOSBAQCBjaGVja19leGNsdXNpb25fb3JfdW5pcXVl X2NvbnN0cmFpbnQoUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiByZXRyeToKIAljb25m bGljdCA9IGZhbHNlOwogCWZvdW5kX3NlbGYgPSBmYWxzZTsKLQlpbmRleF9zY2FuID0gaW5kZXhf YmVnaW5zY2FuKGhlYXAsIGluZGV4LCAmRGlydHlTbmFwc2hvdCwgTlVMTCwgaW5kbmtleWF0dHMs IDApOworCWluZGV4X3NjYW4gPSBpbmRleF9iZWdpbnNjYW4oaGVhcCwgaW5kZXgsCisJCQkJCQkJ CSAmRGlydHlTbmFwc2hvdCwgTlVMTCwgaW5kbmtleWF0dHMsIDAsCisJCQkJCQkJCSAwIC8qIGZs YWdzICovICk7CiAJaW5kZXhfcmVzY2FuKGluZGV4X3NjYW4sIHNjYW5rZXlzLCBpbmRua2V5YXR0 cywgTlVMTCwgMCk7CiAKIAl3aGlsZSAoaW5kZXhfZ2V0bmV4dF9zbG90KGluZGV4X3NjYW4sIEZv cndhcmRTY2FuRGlyZWN0aW9uLCBleGlzdGluZ19zbG90KSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1JlcGxpY2F0aW9uLmMKaW5kZXggMjQ5N2VlN2VkYzUuLmNhMGQxY2M2Yjk1IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYworKysgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYwpAQCAtMjA1LDcgKzIwNSw5IEBAIFJlbGF0aW9u RmluZFJlcGxUdXBsZUJ5SW5kZXgoUmVsYXRpb24gcmVsLCBPaWQgaWR4b2lkLAogCXNrZXlfYXR0 b2ZmID0gYnVpbGRfcmVwbGluZGV4X3NjYW5fa2V5KHNrZXksIHJlbCwgaWR4cmVsLCBzZWFyY2hz bG90KTsKIAogCS8qIFN0YXJ0IGFuIGluZGV4IHNjYW4uICovCi0Jc2NhbiA9IGluZGV4X2JlZ2lu c2NhbihyZWwsIGlkeHJlbCwgJnNuYXAsIE5VTEwsIHNrZXlfYXR0b2ZmLCAwKTsKKwlzY2FuID0g aW5kZXhfYmVnaW5zY2FuKHJlbCwgaWR4cmVsLAorCQkJCQkJICAgJnNuYXAsIE5VTEwsIHNrZXlf YXR0b2ZmLCAwLAorCQkJCQkJICAgMCAvKiBmbGFncyAqLyApOwogCiByZXRyeToKIAlmb3VuZCA9 IGZhbHNlOwpAQCAtMzgzLDcgKzM4NSw4IEBAIFJlbGF0aW9uRmluZFJlcGxUdXBsZVNlcShSZWxh dGlvbiByZWwsIExvY2tUdXBsZU1vZGUgbG9ja21vZGUsCiAKIAkvKiBTdGFydCBhIGhlYXAgc2Nh bi4gKi8KIAlJbml0RGlydHlTbmFwc2hvdChzbmFwKTsKLQlzY2FuID0gdGFibGVfYmVnaW5zY2Fu KHJlbCwgJnNuYXAsIDAsIE5VTEwpOworCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ocmVsLCAmc25h cCwgMCwgTlVMTCwKKwkJCQkJCSAgIDAgLyogZmxhZ3MgKi8gKTsKIAlzY2Fuc2xvdCA9IHRhYmxl X3Nsb3RfY3JlYXRlKHJlbCwgTlVMTCk7CiAKIHJldHJ5OgpAQCAtNjAyLDcgKzYwNSw4IEBAIFJl bGF0aW9uRmluZERlbGV0ZWRUdXBsZUluZm9TZXEoUmVsYXRpb24gcmVsLCBUdXBsZVRhYmxlU2xv dCAqc2VhcmNoc2xvdCwKIAkgKiBub3QgeWV0IGNvbW1pdHRlZCBvciB0aG9zZSBqdXN0IGNvbW1p dHRlZCBwcmlvciB0byB0aGUgc2NhbiBhcmUKIAkgKiBleGNsdWRlZCBpbiB1cGRhdGVfbW9zdF9y ZWNlbnRfZGVsZXRpb25faW5mbygpLgogCSAqLwotCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ocmVs LCBTbmFwc2hvdEFueSwgMCwgTlVMTCk7CisJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihyZWwsIFNu YXBzaG90QW55LCAwLCBOVUxMLAorCQkJCQkJICAgMCAvKiBmbGFncyAqLyApOwogCXNjYW5zbG90 ID0gdGFibGVfc2xvdF9jcmVhdGUocmVsLCBOVUxMKTsKIAogCXRhYmxlX3Jlc2NhbihzY2FuLCBO VUxMKTsKQEAgLTY2Niw3ICs2NzAsOSBAQCBSZWxhdGlvbkZpbmREZWxldGVkVHVwbGVJbmZvQnlJ bmRleChSZWxhdGlvbiByZWwsIE9pZCBpZHhvaWQsCiAJICogbm90IHlldCBjb21taXR0ZWQgb3Ig dGhvc2UganVzdCBjb21taXR0ZWQgcHJpb3IgdG8gdGhlIHNjYW4gYXJlCiAJICogZXhjbHVkZWQg aW4gdXBkYXRlX21vc3RfcmVjZW50X2RlbGV0aW9uX2luZm8oKS4KIAkgKi8KLQlzY2FuID0gaW5k ZXhfYmVnaW5zY2FuKHJlbCwgaWR4cmVsLCBTbmFwc2hvdEFueSwgTlVMTCwgc2tleV9hdHRvZmYs IDApOworCXNjYW4gPSBpbmRleF9iZWdpbnNjYW4ocmVsLCBpZHhyZWwsCisJCQkJCQkgICBTbmFw c2hvdEFueSwgTlVMTCwgc2tleV9hdHRvZmYsIDAsCisJCQkJCQkgICAwIC8qIGZsYWdzICovICk7 CiAKIAlpbmRleF9yZXNjYW4oc2Nhbiwgc2tleSwgc2tleV9hdHRvZmYsIE5VTEwsIDApOwogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jCmluZGV4IDdjZjhkMjNjNzQy Li5lNThiYjAyZGI0MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1h cEhlYXBzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2Fu LmMKQEAgLTE0OCw3ICsxNDgsOCBAQCBCaXRtYXBUYWJsZVNjYW5TZXR1cChCaXRtYXBIZWFwU2Nh blN0YXRlICpub2RlKQogCQkJdGFibGVfYmVnaW5zY2FuX2JtKG5vZGUtPnNzLnNzX2N1cnJlbnRS ZWxhdGlvbiwKIAkJCQkJCQkgICBub2RlLT5zcy5wcy5zdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJ CQkJICAgMCwKLQkJCQkJCQkgICBOVUxMKTsKKwkJCQkJCQkgICBOVUxMLAorCQkJCQkJCSAgIDAg LyogZmxhZ3MgKi8gKTsKIAl9CiAKIAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MtPnN0LnJz X3RibWl0ZXJhdG9yID0gdGJtaXRlcmF0b3I7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4 b25seXNjYW4uYwppbmRleCA5ZWFiODFmZDFjOC4uZjhhNjY3MTc5M2YgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYwpAQCAtOTUsNyArOTUsOCBAQCBJbmRleE9ubHlO ZXh0KEluZGV4T25seVNjYW5TdGF0ZSAqbm9kZSkKIAkJCQkJCQkJICAgZXN0YXRlLT5lc19zbmFw c2hvdCwKIAkJCQkJCQkJICAgbm9kZS0+aW9zc19JbnN0cnVtZW50LAogCQkJCQkJCQkgICBub2Rl LT5pb3NzX051bVNjYW5LZXlzLAotCQkJCQkJCQkgICBub2RlLT5pb3NzX051bU9yZGVyQnlLZXlz KTsKKwkJCQkJCQkJICAgbm9kZS0+aW9zc19OdW1PcmRlckJ5S2V5cywKKwkJCQkJCQkJICAgMCAv KiBmbGFncyAqLyApOwogCiAJCW5vZGUtPmlvc3NfU2NhbkRlc2MgPSBzY2FuZGVzYzsKIApAQCAt Nzk0LDcgKzc5NSw4IEBAIEV4ZWNJbmRleE9ubHlTY2FuSW5pdGlhbGl6ZURTTShJbmRleE9ubHlT Y2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkJCSBub2RlLT5pb3NzX0luc3RydW1lbnQsCiAJCQkJCQkJ CSBub2RlLT5pb3NzX051bVNjYW5LZXlzLAogCQkJCQkJCQkgbm9kZS0+aW9zc19OdW1PcmRlckJ5 S2V5cywKLQkJCQkJCQkJIHBpc2Nhbik7CisJCQkJCQkJCSBwaXNjYW4sCisJCQkJCQkJCSAwIC8q IGZsYWdzICovICk7CiAJbm9kZS0+aW9zc19TY2FuRGVzYy0+eHNfd2FudF9pdHVwID0gdHJ1ZTsK IAlub2RlLT5pb3NzX1ZNQnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKIApAQCAtODYwLDcgKzg2Miw4 IEBAIEV4ZWNJbmRleE9ubHlTY2FuSW5pdGlhbGl6ZVdvcmtlcihJbmRleE9ubHlTY2FuU3RhdGUg Km5vZGUsCiAJCQkJCQkJCSBub2RlLT5pb3NzX0luc3RydW1lbnQsCiAJCQkJCQkJCSBub2RlLT5p b3NzX051bVNjYW5LZXlzLAogCQkJCQkJCQkgbm9kZS0+aW9zc19OdW1PcmRlckJ5S2V5cywKLQkJ CQkJCQkJIHBpc2Nhbik7CisJCQkJCQkJCSBwaXNjYW4sCisJCQkJCQkJCSAwIC8qIGZsYWdzICov ICk7CiAJbm9kZS0+aW9zc19TY2FuRGVzYy0+eHNfd2FudF9pdHVwID0gdHJ1ZTsKIAogCS8qCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKaW5kZXggMDYxNDNlOTRjNWEuLjNkZjA5MWFj MDAwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKKysr IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jCkBAIC0xMTMsNyArMTEzLDgg QEAgSW5kZXhOZXh0KEluZGV4U2NhblN0YXRlICpub2RlKQogCQkJCQkJCQkgICBlc3RhdGUtPmVz X3NuYXBzaG90LAogCQkJCQkJCQkgICBub2RlLT5pc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJICAg bm9kZS0+aXNzX051bVNjYW5LZXlzLAotCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtT3JkZXJCeUtl eXMpOworCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMsCisJCQkJCQkJCSAgIDAg LyogZmxhZ3MgKi8gKTsKIAogCQlub2RlLT5pc3NfU2NhbkRlc2MgPSBzY2FuZGVzYzsKIApAQCAt MjA5LDcgKzIxMCw4IEBAIEluZGV4TmV4dFdpdGhSZW9yZGVyKEluZGV4U2NhblN0YXRlICpub2Rl KQogCQkJCQkJCQkgICBlc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCQkgICBub2RlLT5pc3Nf SW5zdHJ1bWVudCwKIAkJCQkJCQkJICAgbm9kZS0+aXNzX051bVNjYW5LZXlzLAotCQkJCQkJCQkg ICBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMpOworCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtT3Jk ZXJCeUtleXMsCisJCQkJCQkJCSAgIDAgLyogZmxhZ3MgKi8gKTsKIAogCQlub2RlLT5pc3NfU2Nh bkRlc2MgPSBzY2FuZGVzYzsKIApAQCAtMTczMCw3ICsxNzMyLDggQEAgRXhlY0luZGV4U2Nhbklu aXRpYWxpemVEU00oSW5kZXhTY2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkJCSBub2RlLT5pc3NfSW5z dHJ1bWVudCwKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1TY2FuS2V5cywKIAkJCQkJCQkJIG5vZGUt Pmlzc19OdW1PcmRlckJ5S2V5cywKLQkJCQkJCQkJIHBpc2Nhbik7CisJCQkJCQkJCSBwaXNjYW4s CisJCQkJCQkJCSAwIC8qIGZsYWdzICovICk7CiAKIAkvKgogCSAqIElmIG5vIHJ1bi10aW1lIGtl eXMgdG8gY2FsY3VsYXRlIG9yIHRoZXkgYXJlIHJlYWR5LCBnbyBhaGVhZCBhbmQgcGFzcwpAQCAt MTc5NCw3ICsxNzk3LDggQEAgRXhlY0luZGV4U2NhbkluaXRpYWxpemVXb3JrZXIoSW5kZXhTY2Fu U3RhdGUgKm5vZGUsCiAJCQkJCQkJCSBub2RlLT5pc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJIG5v ZGUtPmlzc19OdW1TY2FuS2V5cywKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1PcmRlckJ5S2V5cywK LQkJCQkJCQkJIHBpc2Nhbik7CisJCQkJCQkJCSBwaXNjYW4sCisJCQkJCQkJCSAwIC8qIGZsYWdz ICovICk7CiAKIAkvKgogCSAqIElmIG5vIHJ1bi10aW1lIGtleXMgdG8gY2FsY3VsYXRlIG9yIHRo ZXkgYXJlIHJlYWR5LCBnbyBhaGVhZCBhbmQgcGFzcwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTYW1w bGVzY2FuLmMKaW5kZXggNmIwZDY1Zjc1MmYuLmYwZTE0ZTUzZmFiIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlU2FtcGxlc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL25vZGVTYW1wbGVzY2FuLmMKQEAgLTI5OCw3ICsyOTgsOCBAQCB0YWJsZXNhbXBsZV9pbml0 KFNhbXBsZVNjYW5TdGF0ZSAqc2NhbnN0YXRlKQogCQkJCQkJCQkJIDAsIE5VTEwsCiAJCQkJCQkJ CQkgc2NhbnN0YXRlLT51c2VfYnVsa3JlYWQsCiAJCQkJCQkJCQkgYWxsb3dfc3luYywKLQkJCQkJ CQkJCSBzY2Fuc3RhdGUtPnVzZV9wYWdlbW9kZSk7CisJCQkJCQkJCQkgc2NhbnN0YXRlLT51c2Vf cGFnZW1vZGUsCisJCQkJCQkJCQkgMCAvKiBmbGFncyAqLyApOwogCX0KIAllbHNlCiAJewpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMKaW5kZXggOGYyMTlmNjBhOTMuLmVhYThjZmI2YTFhIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jCisrKyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMKQEAgLTcxLDcgKzcxLDggQEAgU2VxTmV4dChT ZXFTY2FuU3RhdGUgKm5vZGUpCiAJCSAqLwogCQlzY2FuZGVzYyA9IHRhYmxlX2JlZ2luc2Nhbihu b2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNo b3QsCi0JCQkJCQkJCSAgIDAsIE5VTEwpOworCQkJCQkJCQkgICAwLCBOVUxMLAorCQkJCQkJCQkg ICAwIC8qIGZsYWdzICovICk7CiAJCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9IHNjYW5k ZXNjOwogCX0KIApAQCAtMzc1LDcgKzM3Niw4IEBAIEV4ZWNTZXFTY2FuSW5pdGlhbGl6ZURTTShT ZXFTY2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkJCSAgZXN0YXRlLT5lc19zbmFwc2hvdCk7CiAJc2ht X3RvY19pbnNlcnQocGN4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQsIHBz Y2FuKTsKIAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQotCQl0YWJsZV9iZWdpbnNjYW5f cGFyYWxsZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLCBwc2Nhbik7CisJCXRhYmxlX2Jl Z2luc2Nhbl9wYXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuLAorCQkJ CQkJCQkgMCAvKiBmbGFncyAqLyApOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00MDgsNSArNDEwLDYg QEAgRXhlY1NlcVNjYW5Jbml0aWFsaXplV29ya2VyKFNlcVNjYW5TdGF0ZSAqbm9kZSwKIAogCXBz Y2FuID0gc2htX3RvY19sb29rdXAocHdjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9u b2RlX2lkLCBmYWxzZSk7CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KLQkJdGFibGVf YmVnaW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4pOwor CQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLCBw c2NhbiwKKwkJCQkJCQkJIDAgLyogZmxhZ3MgKi8gKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVUaWRyYW5nZXNjYW4uYwppbmRleCA2MTc3MTNiZGUwNC4uNmY2M2U5ZjgwZDAgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNjYW4uYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMKQEAgLTI0NSw3ICsyNDUsOCBAQCBUaWRS YW5nZU5leHQoVGlkUmFuZ2VTY2FuU3RhdGUgKm5vZGUpCiAJCQlzY2FuZGVzYyA9IHRhYmxlX2Jl Z2luc2Nhbl90aWRyYW5nZShub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJCQkJ CQllc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCQkJCQkJJm5vZGUtPnRyc3NfbWludGlkLAot CQkJCQkJCQkJCQkJJm5vZGUtPnRyc3NfbWF4dGlkKTsKKwkJCQkJCQkJCQkJCSZub2RlLT50cnNz X21heHRpZCwKKwkJCQkJCQkJCQkJCTAgLyogZmxhZ3MgKi8gKTsKIAkJCW5vZGUtPnNzLnNzX2N1 cnJlbnRTY2FuRGVzYyA9IHNjYW5kZXNjOwogCQl9CiAJCWVsc2UKQEAgLTQ2MCw3ICs0NjEsNyBA QCBFeGVjVGlkUmFuZ2VTY2FuSW5pdGlhbGl6ZURTTShUaWRSYW5nZVNjYW5TdGF0ZSAqbm9kZSwg UGFyYWxsZWxDb250ZXh0ICpwY3h0KQogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgbm9kZS0+ c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkLCBwc2Nhbik7CiAJbm9kZS0+c3Muc3NfY3VycmVudFNj YW5EZXNjID0KIAkJdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsX3RpZHJhbmdlKG5vZGUtPnNzLnNz X2N1cnJlbnRSZWxhdGlvbiwKLQkJCQkJCQkJCQkgIHBzY2FuKTsKKwkJCQkJCQkJCQkgIHBzY2Fu LCAwIC8qIGZsYWdzICovICk7CiB9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ5NCw1ICs0OTUsNSBAQCBF eGVjVGlkUmFuZ2VTY2FuSW5pdGlhbGl6ZVdvcmtlcihUaWRSYW5nZVNjYW5TdGF0ZSAqbm9kZSwK IAlwc2NhbiA9IHNobV90b2NfbG9va3VwKHB3Y3h0LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4tPnBs YW5fbm9kZV9pZCwgZmFsc2UpOwogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9CiAJCXRh YmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF90aWRyYW5nZShub2RlLT5zcy5zc19jdXJyZW50UmVsYXRp b24sCi0JCQkJCQkJCQkJICBwc2Nhbik7CisJCQkJCQkJCQkJICBwc2NhbiwgMCAvKiBmbGFncyAq LyApOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3BhcnRib3VuZHMu YyBiL3NyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmMKaW5kZXggMGNhMzEyYWMy N2QuLmMwZjg0N2I0M2JlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFy dGJvdW5kcy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmMKQEAg LTMzNjIsNyArMzM2Miw4IEBAIGNoZWNrX2RlZmF1bHRfcGFydGl0aW9uX2NvbnRlbnRzKFJlbGF0 aW9uIHBhcmVudCwgUmVsYXRpb24gZGVmYXVsdF9yZWwsCiAJCWVjb250ZXh0ID0gR2V0UGVyVHVw bGVFeHByQ29udGV4dChlc3RhdGUpOwogCQlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0 TGF0ZXN0U25hcHNob3QoKSk7CiAJCXR1cHNsb3QgPSB0YWJsZV9zbG90X2NyZWF0ZShwYXJ0X3Jl bCwgJmVzdGF0ZS0+ZXNfdHVwbGVUYWJsZSk7Ci0JCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ocGFy dF9yZWwsIHNuYXBzaG90LCAwLCBOVUxMKTsKKwkJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihwYXJ0 X3JlbCwgc25hcHNob3QsIDAsIE5VTEwsCisJCQkJCQkJICAgMCAvKiBmbGFncyAqLyApOwogCiAJ CS8qCiAJCSAqIFN3aXRjaCB0byBwZXItdHVwbGUgbWVtb3J5IGNvbnRleHQgYW5kIHJlc2V0IGl0 IGZvciBlYWNoIHR1cGxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvc2VsZnVu Y3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9zZWxmdW5jcy5jCmluZGV4IDUzZjg1Y2NkZTAx Li45ZmJiYjZhOGRkYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNz LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMKQEAgLTcxNzgsNyArNzE3 OCw4IEBAIGdldF9hY3R1YWxfdmFyaWFibGVfZW5kcG9pbnQoUmVsYXRpb24gaGVhcFJlbCwKIAog CWluZGV4X3NjYW4gPSBpbmRleF9iZWdpbnNjYW4oaGVhcFJlbCwgaW5kZXhSZWwsCiAJCQkJCQkJ CSAmU25hcHNob3ROb25WYWN1dW1hYmxlLCBOVUxMLAotCQkJCQkJCQkgMSwgMCk7CisJCQkJCQkJ CSAxLCAwLAorCQkJCQkJCQkgMCAvKiBmbGFncyAqLyApOwogCS8qIFNldCBpdCB1cCBmb3IgaW5k ZXgtb25seSBzY2FuICovCiAJaW5kZXhfc2Nhbi0+eHNfd2FudF9pdHVwID0gdHJ1ZTsKIAlpbmRl eF9yZXNjYW4oaW5kZXhfc2Nhbiwgc2NhbmtleXMsIDEsIE5VTEwsIDApOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvYWNjZXNzL2dlbmFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaApp bmRleCAxYTI3YmYwNjBiMy4uYjY5MzIwYTdmYzggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9nZW5hbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9nZW5hbS5oCkBAIC0xNTgsNyAr MTU4LDggQEAgZXh0ZXJuIEluZGV4U2NhbkRlc2MgaW5kZXhfYmVnaW5zY2FuKFJlbGF0aW9uIGhl YXBSZWxhdGlvbiwKIAkJCQkJCQkJCSBSZWxhdGlvbiBpbmRleFJlbGF0aW9uLAogCQkJCQkJCQkJ IFNuYXBzaG90IHNuYXBzaG90LAogCQkJCQkJCQkJIEluZGV4U2Nhbkluc3RydW1lbnRhdGlvbiAq aW5zdHJ1bWVudCwKLQkJCQkJCQkJCSBpbnQgbmtleXMsIGludCBub3JkZXJieXMpOworCQkJCQkJ CQkJIGludCBua2V5cywgaW50IG5vcmRlcmJ5cywKKwkJCQkJCQkJCSB1aW50MzIgZmxhZ3MpOwog ZXh0ZXJuIEluZGV4U2NhbkRlc2MgaW5kZXhfYmVnaW5zY2FuX2JpdG1hcChSZWxhdGlvbiBpbmRl eFJlbGF0aW9uLAogCQkJCQkJCQkJCQlTbmFwc2hvdCBzbmFwc2hvdCwKIAkJCQkJCQkJCQkJSW5k ZXhTY2FuSW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50LApAQCAtMTg0LDcgKzE4NSw4IEBAIGV4 dGVybiBJbmRleFNjYW5EZXNjIGluZGV4X2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxhdGlvbiBoZWFw cmVsLAogCQkJCQkJCQkJCQkgIFJlbGF0aW9uIGluZGV4cmVsLAogCQkJCQkJCQkJCQkgIEluZGV4 U2Nhbkluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKIAkJCQkJCQkJCQkJICBpbnQgbmtleXMs IGludCBub3JkZXJieXMsCi0JCQkJCQkJCQkJCSAgUGFyYWxsZWxJbmRleFNjYW5EZXNjIHBzY2Fu KTsKKwkJCQkJCQkJCQkJICBQYXJhbGxlbEluZGV4U2NhbkRlc2MgcHNjYW4sCisJCQkJCQkJCQkJ CSAgdWludDMyIGZsYWdzKTsKIGV4dGVybiBJdGVtUG9pbnRlciBpbmRleF9nZXRuZXh0X3RpZChJ bmRleFNjYW5EZXNjIHNjYW4sCiAJCQkJCQkJCQkgU2NhbkRpcmVjdGlvbiBkaXJlY3Rpb24pOwog ZXh0ZXJuIGJvb2wgaW5kZXhfZmV0Y2hfaGVhcChJbmRleFNjYW5EZXNjIHNjYW4sIFR1cGxlVGFi bGVTbG90ICpzbG90KTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCBi L3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAppbmRleCA5YjQwMzIwMzAwNi4uZTJlMDczNDhm MzcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAorKysgYi9zcmMvaW5j bHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAgLTk1LDEwICs5NSw3IEBAIHR5cGVkZWYgc3RydWN0IEhl YXBTY2FuRGVzY0RhdGEKIAkgKi8KIAlQYXJhbGxlbEJsb2NrVGFibGVTY2FuV29ya2VyRGF0YSAq cnNfcGFyYWxsZWx3b3JrZXJkYXRhOwogCi0JLyoKLQkgKiBGb3Igc2VxdWVudGlhbCBzY2FucyBh bmQgYml0bWFwIGhlYXAgc2NhbnMuIFRoZSBjdXJyZW50IGhlYXAgYmxvY2sncwotCSAqIGNvcnJl c3BvbmRpbmcgcGFnZSBpbiB0aGUgdmlzaWJpbGl0eSBtYXAuCi0JICovCisJLyogQ3VycmVudCBo ZWFwIGJsb2NrJ3MgY29ycmVzcG9uZGluZyBwYWdlIGluIHRoZSB2aXNpYmlsaXR5IG1hcCAqLwog CUJ1ZmZlcgkJcnNfdm1idWZmZXI7CiAKIAkvKiB0aGVzZSBmaWVsZHMgb25seSB1c2VkIGluIHBh Z2UtYXQtYS10aW1lIG1vZGUgYW5kIGZvciBiaXRtYXAgc2NhbnMgKi8KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvcmVsc2Nhbi5o CmluZGV4IGNlMzQwYzA3NmY4Li44MGVhMGI0MzdkMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv YWNjZXNzL3JlbHNjYW4uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvcmVsc2Nhbi5oCkBAIC0x MjIsNiArMTIyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYWxsZWxCbG9ja1RhYmxlU2Nhbldvcmtl ckRhdGEgKlBhcmFsbGVsQmxvY2tUYWJsZVNjYW5Xb3JrZXI7CiB0eXBlZGVmIHN0cnVjdCBJbmRl eEZldGNoVGFibGVEYXRhCiB7CiAJUmVsYXRpb24JcmVsOworCXVpbnQzMgkJZmxhZ3M7CiB9IElu ZGV4RmV0Y2hUYWJsZURhdGE7CiAKIHN0cnVjdCBJbmRleFNjYW5JbnN0cnVtZW50YXRpb247CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oIGIvc3JjL2luY2x1ZGUvYWNj ZXNzL3RhYmxlYW0uaAppbmRleCAwNjA4NDc1MjI0NS4uY2U1MTc2YmRmNjkgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3Rh YmxlYW0uaApAQCAtNjUsNiArNjUsMTYgQEAgdHlwZWRlZiBlbnVtIFNjYW5PcHRpb25zCiAJU09f VEVNUF9TTkFQU0hPVCA9IDEgPDwgOSwKIH0JCQlTY2FuT3B0aW9uczsKIAorLyoKKyAqIE1hc2sg b2YgZmxhZ3MgdGhhdCBhcmUgc2V0IGludGVybmFsbHkgYnkgdGhlIHRhYmxlX2JlZ2luc2Nhbl8q IGZ1bmN0aW9ucworICogYW5kIG11c3Qgbm90IGJlIHBhc3NlZCBieSBjYWxsZXJzLgorICovCisj ZGVmaW5lIFNPX0lOVEVSTkFMX0ZMQUdTIFwKKwkoU09fVFlQRV9TRVFTQ0FOIHwgU09fVFlQRV9C SVRNQVBTQ0FOIHwgU09fVFlQRV9TQU1QTEVTQ0FOIHwgXAorCSBTT19UWVBFX1RJRFNDQU4gfCBT T19UWVBFX1RJRFJBTkdFU0NBTiB8IFNPX1RZUEVfQU5BTFlaRSB8IFwKKwkgU09fQUxMT1dfU1RS QVQgfCBTT19BTExPV19TWU5DIHwgU09fQUxMT1dfUEFHRU1PREUgfCBcCisJIFNPX1RFTVBfU05B UFNIT1QpCisKIC8qCiAgKiBSZXN1bHQgY29kZXMgZm9yIHRhYmxlX3t1cGRhdGUsZGVsZXRlLGxv Y2tfdHVwbGV9LCBhbmQgZm9yIHZpc2liaWxpdHkKICAqIHJvdXRpbmVzIGluc2lkZSB0YWJsZSBB TXMuCkBAIC00MjAsNyArNDMwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgVGFibGVBbVJvdXRpbmUKIAkg KgogCSAqIFR1cGxlcyBmb3IgYW4gaW5kZXggc2NhbiBjYW4gdGhlbiBiZSBmZXRjaGVkIHZpYSBp bmRleF9mZXRjaF90dXBsZS4KIAkgKi8KLQlzdHJ1Y3QgSW5kZXhGZXRjaFRhYmxlRGF0YSAqKCpp bmRleF9mZXRjaF9iZWdpbikgKFJlbGF0aW9uIHJlbCk7CisJc3RydWN0IEluZGV4RmV0Y2hUYWJs ZURhdGEgKigqaW5kZXhfZmV0Y2hfYmVnaW4pIChSZWxhdGlvbiByZWwsIHVpbnQzMiBmbGFncyk7 CiAKIAkvKgogCSAqIFJlc2V0IGluZGV4IGZldGNoLiBUeXBpY2FsbHkgdGhpcyB3aWxsIHJlbGVh c2UgY3Jvc3MgaW5kZXggZmV0Y2gKQEAgLTg3MSwxMiArODgxLDE5IEBAIGV4dGVybiBUdXBsZVRh YmxlU2xvdCAqdGFibGVfc2xvdF9jcmVhdGUoUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKipyZWds aXN0KTsKICAqIEEgd3JhcHBlciBhcm91bmQgdGhlIFRhYmxlIEFjY2VzcyBNZXRob2Qgc2Nhbl9i ZWdpbiBjYWxsYmFjaywgdG8gY2VudHJhbGl6ZQogICogZXJyb3IgY2hlY2tpbmcuIEFsbCBjYWxs cyB0byAtPnNjYW5fYmVnaW4oKSBzaG91bGQgZ28gdGhyb3VnaCB0aGlzCiAgKiBmdW5jdGlvbi4K KyAqCisgKiBUaGUgY2FsbGVyLXByb3ZpZGVkIHVzZXJfZmxhZ3MgYXJlIHZhbGlkYXRlZCBhZ2Fp bnN0IFNPX0lOVEVSTkFMX0ZMQUdTIHRvCisgKiBjYXRjaCBjYWxsZXJzIHRoYXQgYWNjaWRlbnRh bGx5IHBhc3Mgc2Nhbi10eXBlIG9yIG90aGVyIGludGVybmFsIGZsYWdzLgogICovCiBzdGF0aWMg VGFibGVTY2FuRGVzYwogdGFibGVfYmVnaW5zY2FuX2NvbW1vbihSZWxhdGlvbiByZWwsIFNuYXBz aG90IHNuYXBzaG90LCBpbnQgbmtleXMsCiAJCQkJCSAgIFNjYW5LZXlEYXRhICprZXksIFBhcmFs bGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKLQkJCQkJICAgdWludDMyIGZsYWdzKQorCQkJCQkgICB1 aW50MzIgZmxhZ3MsIHVpbnQzMiB1c2VyX2ZsYWdzKQogeworCUFzc2VydCgodXNlcl9mbGFncyAm IFNPX0lOVEVSTkFMX0ZMQUdTKSA9PSAwKTsKKwlBc3NlcnQoKGZsYWdzICYgflNPX0lOVEVSTkFM X0ZMQUdTKSA9PSAwKTsKKwlmbGFncyB8PSB1c2VyX2ZsYWdzOworCiAJLyoKIAkgKiBXZSBkb24n dCBhbGxvdyBzY2FucyB0byBiZSBzdGFydGVkIHdoaWxlIENoZWNrWGlkQWxpdmUgaXMgc2V0LCBl eGNlcHQKIAkgKiB2aWEgc3lzdGFibGVfYmVnaW5zY2FuKCkgZXQgYWwuICBTZWUgZGV0YWlsZWQg Y29tbWVudHMgaW4geGFjdC5jIHdoZXJlCkBAIC04OTQsMTIgKzkxMSwxMyBAQCB0YWJsZV9iZWdp bnNjYW5fY29tbW9uKFJlbGF0aW9uIHJlbCwgU25hcHNob3Qgc25hcHNob3QsIGludCBua2V5cywK ICAqLwogc3RhdGljIGlubGluZSBUYWJsZVNjYW5EZXNjCiB0YWJsZV9iZWdpbnNjYW4oUmVsYXRp b24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKLQkJCQlpbnQgbmtleXMsIFNjYW5LZXlEYXRhICpr ZXkpCisJCQkJaW50IG5rZXlzLCBTY2FuS2V5RGF0YSAqa2V5LCB1aW50MzIgZmxhZ3MpCiB7Ci0J dWludDMyCQlmbGFncyA9IFNPX1RZUEVfU0VRU0NBTiB8CisJdWludDMyCQlpbnRlcm5hbF9mbGFn cyA9IFNPX1RZUEVfU0VRU0NBTiB8CiAJCVNPX0FMTE9XX1NUUkFUIHwgU09fQUxMT1dfU1lOQyB8 IFNPX0FMTE9XX1BBR0VNT0RFOwogCi0JcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVs LCBzbmFwc2hvdCwgbmtleXMsIGtleSwgTlVMTCwgZmxhZ3MpOworCXJldHVybiB0YWJsZV9iZWdp bnNjYW5fY29tbW9uKHJlbCwgc25hcHNob3QsIG5rZXlzLCBrZXksIE5VTEwsCisJCQkJCQkJCSAg aW50ZXJuYWxfZmxhZ3MsIGZsYWdzKTsKIH0KIAogLyoKQEAgLTkyOCw3ICs5NDYsNyBAQCB0YWJs ZV9iZWdpbnNjYW5fc3RyYXQoUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKIAlpZiAo YWxsb3dfc3luYykKIAkJZmxhZ3MgfD0gU09fQUxMT1dfU1lOQzsKIAotCXJldHVybiB0YWJsZV9i ZWdpbnNjYW5fY29tbW9uKHJlbCwgc25hcHNob3QsIG5rZXlzLCBrZXksIE5VTEwsIGZsYWdzKTsK KwlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5 LCBOVUxMLCBmbGFncywgMCk7CiB9CiAKIC8qCkBAIC05MzksMTEgKzk1NywxMiBAQCB0YWJsZV9i ZWdpbnNjYW5fc3RyYXQoUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKICAqLwogc3Rh dGljIGlubGluZSBUYWJsZVNjYW5EZXNjCiB0YWJsZV9iZWdpbnNjYW5fYm0oUmVsYXRpb24gcmVs LCBTbmFwc2hvdCBzbmFwc2hvdCwKLQkJCQkgICBpbnQgbmtleXMsIFNjYW5LZXlEYXRhICprZXkp CisJCQkJICAgaW50IG5rZXlzLCBTY2FuS2V5RGF0YSAqa2V5LCB1aW50MzIgZmxhZ3MpCiB7Ci0J dWludDMyCQlmbGFncyA9IFNPX1RZUEVfQklUTUFQU0NBTiB8IFNPX0FMTE9XX1BBR0VNT0RFOwor CXVpbnQzMgkJaW50ZXJuYWxfZmxhZ3MgPSBTT19UWVBFX0JJVE1BUFNDQU4gfCBTT19BTExPV19Q QUdFTU9ERTsKIAotCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwgc25hcHNob3Qs IG5rZXlzLCBrZXksIE5VTEwsIGZsYWdzKTsKKwlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1v bihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5LCBOVUxMLAorCQkJCQkJCQkgIGludGVybmFsX2Zs YWdzLCBmbGFncyk7CiB9CiAKIC8qCkBAIC05NTcsMTggKzk3NiwxOSBAQCBzdGF0aWMgaW5saW5l IFRhYmxlU2NhbkRlc2MKIHRhYmxlX2JlZ2luc2Nhbl9zYW1wbGluZyhSZWxhdGlvbiByZWwsIFNu YXBzaG90IHNuYXBzaG90LAogCQkJCQkJIGludCBua2V5cywgU2NhbktleURhdGEgKmtleSwKIAkJ CQkJCSBib29sIGFsbG93X3N0cmF0LCBib29sIGFsbG93X3N5bmMsCi0JCQkJCQkgYm9vbCBhbGxv d19wYWdlbW9kZSkKKwkJCQkJCSBib29sIGFsbG93X3BhZ2Vtb2RlLCB1aW50MzIgZmxhZ3MpCiB7 Ci0JdWludDMyCQlmbGFncyA9IFNPX1RZUEVfU0FNUExFU0NBTjsKKwl1aW50MzIJCWludGVybmFs X2ZsYWdzID0gU09fVFlQRV9TQU1QTEVTQ0FOOwogCiAJaWYgKGFsbG93X3N0cmF0KQotCQlmbGFn cyB8PSBTT19BTExPV19TVFJBVDsKKwkJaW50ZXJuYWxfZmxhZ3MgfD0gU09fQUxMT1dfU1RSQVQ7 CiAJaWYgKGFsbG93X3N5bmMpCi0JCWZsYWdzIHw9IFNPX0FMTE9XX1NZTkM7CisJCWludGVybmFs X2ZsYWdzIHw9IFNPX0FMTE9XX1NZTkM7CiAJaWYgKGFsbG93X3BhZ2Vtb2RlKQotCQlmbGFncyB8 PSBTT19BTExPV19QQUdFTU9ERTsKKwkJaW50ZXJuYWxfZmxhZ3MgfD0gU09fQUxMT1dfUEFHRU1P REU7CiAKLQlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCBua2V5 cywga2V5LCBOVUxMLCBmbGFncyk7CisJcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVs LCBzbmFwc2hvdCwgbmtleXMsIGtleSwgTlVMTCwKKwkJCQkJCQkJICBpbnRlcm5hbF9mbGFncywg ZmxhZ3MpOwogfQogCiAvKgpAQCAtOTgxLDcgKzEwMDEsNyBAQCB0YWJsZV9iZWdpbnNjYW5fdGlk KFJlbGF0aW9uIHJlbCwgU25hcHNob3Qgc25hcHNob3QpCiB7CiAJdWludDMyCQlmbGFncyA9IFNP X1RZUEVfVElEU0NBTjsKIAotCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwgc25h cHNob3QsIDAsIE5VTEwsIE5VTEwsIGZsYWdzKTsKKwlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2Nv bW1vbihyZWwsIHNuYXBzaG90LCAwLCBOVUxMLCBOVUxMLCBmbGFncywgMCk7CiB9CiAKIC8qCkBA IC05OTQsNyArMTAxNCw3IEBAIHRhYmxlX2JlZ2luc2Nhbl9hbmFseXplKFJlbGF0aW9uIHJlbCkK IHsKIAl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9BTkFMWVpFOwogCi0JcmV0dXJuIHRhYmxlX2Jl Z2luc2Nhbl9jb21tb24ocmVsLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCBmbGFncyk7CisJcmV0dXJu IHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCBmbGFncywg MCk7CiB9CiAKIC8qCkBAIC0xMDU5LDEyICsxMDc5LDEzIEBAIHRhYmxlX3NjYW5fZ2V0bmV4dHNs b3QoVGFibGVTY2FuRGVzYyBzc2NhbiwgU2NhbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFR1cGxlVGFi bGVTCiBzdGF0aWMgaW5saW5lIFRhYmxlU2NhbkRlc2MKIHRhYmxlX2JlZ2luc2Nhbl90aWRyYW5n ZShSZWxhdGlvbiByZWwsIFNuYXBzaG90IHNuYXBzaG90LAogCQkJCQkJIEl0ZW1Qb2ludGVyIG1p bnRpZCwKLQkJCQkJCSBJdGVtUG9pbnRlciBtYXh0aWQpCisJCQkJCQkgSXRlbVBvaW50ZXIgbWF4 dGlkLCB1aW50MzIgZmxhZ3MpCiB7CiAJVGFibGVTY2FuRGVzYyBzc2NhbjsKLQl1aW50MzIJCWZs YWdzID0gU09fVFlQRV9USURSQU5HRVNDQU4gfCBTT19BTExPV19QQUdFTU9ERTsKKwl1aW50MzIJ CWludGVybmFsX2ZsYWdzID0gU09fVFlQRV9USURSQU5HRVNDQU4gfCBTT19BTExPV19QQUdFTU9E RTsKIAotCXNzY2FuID0gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCAwLCBO VUxMLCBOVUxMLCBmbGFncyk7CisJc3NjYW4gPSB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwg c25hcHNob3QsIDAsIE5VTEwsIE5VTEwsCisJCQkJCQkJCSAgIGludGVybmFsX2ZsYWdzLCBmbGFn cyk7CiAKIAkvKiBTZXQgdGhlIHJhbmdlIG9mIFRJRHMgdG8gc2NhbiAqLwogCXNzY2FuLT5yc19y ZC0+cmRfdGFibGVhbS0+c2Nhbl9zZXRfdGlkcmFuZ2Uoc3NjYW4sIG1pbnRpZCwgbWF4dGlkKTsK QEAgLTExMzksNyArMTE2MCw4IEBAIGV4dGVybiB2b2lkIHRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0 aWFsaXplKFJlbGF0aW9uIHJlbCwKICAqIENhbGxlciBtdXN0IGhvbGQgYSBzdWl0YWJsZSBsb2Nr IG9uIHRoZSByZWxhdGlvbi4KICAqLwogZXh0ZXJuIFRhYmxlU2NhbkRlc2MgdGFibGVfYmVnaW5z Y2FuX3BhcmFsbGVsKFJlbGF0aW9uIHJlbGF0aW9uLAotCQkJCQkJCQkJCQkgIFBhcmFsbGVsVGFi bGVTY2FuRGVzYyBwc2Nhbik7CisJCQkJCQkJCQkJCSAgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBz Y2FuLAorCQkJCQkJCQkJCQkgIHVpbnQzMiBmbGFncyk7CiAKIC8qCiAgKiBCZWdpbiBhIHBhcmFs bGVsIHRpZCByYW5nZSBzY2FuLiBgcHNjYW5gIG5lZWRzIHRvIGhhdmUgYmVlbiBpbml0aWFsaXpl ZApAQCAtMTE0OSw3ICsxMTcxLDggQEAgZXh0ZXJuIFRhYmxlU2NhbkRlc2MgdGFibGVfYmVnaW5z Y2FuX3BhcmFsbGVsKFJlbGF0aW9uIHJlbGF0aW9uLAogICogQ2FsbGVyIG11c3QgaG9sZCBhIHN1 aXRhYmxlIGxvY2sgb24gdGhlIHJlbGF0aW9uLgogICovCiBleHRlcm4gVGFibGVTY2FuRGVzYyB0 YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWxfdGlkcmFuZ2UoUmVsYXRpb24gcmVsYXRpb24sCi0JCQkJ CQkJCQkJCQkJICAgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuKTsKKwkJCQkJCQkJCQkJCQkg ICBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4sCisJCQkJCQkJCQkJCQkJICAgdWludDMyIGZs YWdzKTsKIAogLyoKICAqIFJlc3RhcnQgYSBwYXJhbGxlbCBzY2FuLiAgQ2FsbCB0aGlzIGluIHRo ZSBsZWFkZXIgcHJvY2Vzcy4gIENhbGxlciBpcwpAQCAtMTE3NSw4ICsxMTk4LDEwIEBAIHRhYmxl X3BhcmFsbGVsc2Nhbl9yZWluaXRpYWxpemUoUmVsYXRpb24gcmVsLCBQYXJhbGxlbFRhYmxlU2Nh bkRlc2MgcHNjYW4pCiAgKiBUdXBsZXMgZm9yIGFuIGluZGV4IHNjYW4gY2FuIHRoZW4gYmUgZmV0 Y2hlZCB2aWEgdGFibGVfaW5kZXhfZmV0Y2hfdHVwbGUoKS4KICAqLwogc3RhdGljIGlubGluZSBJ bmRleEZldGNoVGFibGVEYXRhICoKLXRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKFJlbGF0aW9uIHJl bCkKK3RhYmxlX2luZGV4X2ZldGNoX2JlZ2luKFJlbGF0aW9uIHJlbCwgdWludDMyIGZsYWdzKQog eworCUFzc2VydCgoZmxhZ3MgJiBTT19JTlRFUk5BTF9GTEFHUykgPT0gMCk7CisKIAkvKgogCSAq IFdlIGRvbid0IGFsbG93IHNjYW5zIHRvIGJlIHN0YXJ0ZWQgd2hpbGUgQ2hlY2tYaWRBbGl2ZSBp cyBzZXQsIGV4Y2VwdAogCSAqIHZpYSBzeXN0YWJsZV9iZWdpbnNjYW4oKSBldCBhbC4gIFNlZSBk ZXRhaWxlZCBjb21tZW50cyBpbiB4YWN0LmMgd2hlcmUKQEAgLTExODUsNyArMTIxMCw3IEBAIHRh YmxlX2luZGV4X2ZldGNoX2JlZ2luKFJlbGF0aW9uIHJlbCkKIAlpZiAodW5saWtlbHkoVHJhbnNh Y3Rpb25JZElzVmFsaWQoQ2hlY2tYaWRBbGl2ZSkgJiYgIWJzeXNzY2FuKSkKIAkJZWxvZyhFUlJP UiwgInNjYW4gc3RhcnRlZCBkdXJpbmcgbG9naWNhbCBkZWNvZGluZyIpOwogCi0JcmV0dXJuIHJl bC0+cmRfdGFibGVhbS0+aW5kZXhfZmV0Y2hfYmVnaW4ocmVsKTsKKwlyZXR1cm4gcmVsLT5yZF90 YWJsZWFtLT5pbmRleF9mZXRjaF9iZWdpbihyZWwsIGZsYWdzKTsKIH0KIAogLyoKLS0gCjIuNDMu MAoK --00000000000019c2d4064de16e7d Content-Type: text/x-patch; charset="US-ASCII"; name="v46-0003-Pass-down-information-on-table-modification-to-s.patch" Content-Disposition: attachment; filename="v46-0003-Pass-down-information-on-table-modification-to-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn6ntyc32 RnJvbSAxMDVjMmMyYzAwNTdlZTk5NDVjZjZlYzFjMzIwNjFmNjE3ZjYyN2EyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgTWFyIDIwMjYgMTY6MzE6MzMgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0NiAzLzVdIFBhc3MgZG93biBpbmZvcm1hdGlvbiBvbiB0YWJsZSBtb2RpZmljYXRpb24g dG8gc2Nhbgogbm9kZQoKUGFzcyBkb3duIGluZm9ybWF0aW9uIHRvIHNlcXVlbnRpYWwgc2Nhbiwg aW5kZXggW29ubHldIHNjYW4sIGJpdG1hcAp0YWJsZSBzY2FuLCBzYW1wbGUgc2NhbiwgYW5kIFRJ RCByYW5nZSBzY2FuIG5vZGVzIG9uIHdoZXRoZXIgb3Igbm90IHRoZQpxdWVyeSBtb2RpZmllcyB0 aGUgcmVsYXRpb24gYmVpbmcgc2Nhbm5lZC4gQSBsYXRlciBjb21taXQgd2lsbCB1c2UgdGhpcwpp bmZvcm1hdGlvbiB0byB1cGRhdGUgdGhlIFZNIGR1cmluZyBvbi1hY2Nlc3MgcHJ1bmluZyBvbmx5 IGlmIHRoZQpyZWxhdGlvbiBpcyBub3QgbW9kaWZpZWQgYnkgdGhlIHF1ZXJ5LgoKQXV0aG9yOiBN ZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTog QW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogQW5kcmV5IEJv cm9kaW4gPHg0bW1tQHlhbmRleC10ZWFtLnJ1PgpSZXZpZXdlZC1ieTogVG9tYXMgVm9uZHJhIDx0 b21hc0B2b25kcmEubWU+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9AZ21haWwu Y29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzQzNzlGREEzLTk0NDYtNEUyQy05 QzE1LTMyRUZFOEQ0RjMxQiU0MHlhbmRleC10ZWFtLnJ1Ci0tLQogc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY1V0aWxzLmMgICAgICAgICAgfCAgOCArKysrKysrKwogc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMgfCAgMyArKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVJbmRleG9ubHlzY2FuLmMgIHwgIDkgKysrKysrLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9u b2RlSW5kZXhzY2FuLmMgICAgICB8IDEyICsrKysrKysrLS0tLQogc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZVNhbXBsZXNjYW4uYyAgICAgfCAgMyArKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVTZXFzY2FuLmMgICAgICAgIHwgMTAgKysrKysrKy0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZVRpZHJhbmdlc2Nhbi5jICAgfCAxMSArKysrKysrKy0tLQogc3JjL2luY2x1ZGUvYWNjZXNz L3RhYmxlYW0uaCAgICAgICAgICAgICAgfCAgMyArKysKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4 ZWN1dG9yLmggICAgICAgICAgIHwgIDIgKysKIDkgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9u cygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY1V0aWxzLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjVXRpbHMuYwppbmRleCA5ODg2 YWIwNmI2OS4uZDJmZmUyOGUwMTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNVdGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNVdGlscy5jCkBAIC03MzYs NiArNzM2LDE0IEBAIEV4ZWNSZWxhdGlvbklzVGFyZ2V0UmVsYXRpb24oRVN0YXRlICplc3RhdGUs IEluZGV4IHNjYW5yZWxpZCkKIAlyZXR1cm4gbGlzdF9tZW1iZXJfaW50KGVzdGF0ZS0+ZXNfcGxh bm5lZHN0bXQtPnJlc3VsdFJlbGF0aW9ucywgc2NhbnJlbGlkKTsKIH0KIAorLyogUmV0dXJuIHRy dWUgaWYgdGhlIHNjYW4gbm9kZSdzIHJlbGF0aW9uIGlzIG5vdCBtb2RpZmllZCBieSB0aGUgcXVl cnkgKi8KK2Jvb2wKK1NjYW5SZWxJc1JlYWRPbmx5KFNjYW5TdGF0ZSAqc3MpCit7CisJcmV0dXJu ICFibXNfaXNfbWVtYmVyKCgoU2NhbiAqKSBzcy0+cHMucGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJ CSAgc3MtPnBzLnN0YXRlLT5lc19wbGFubmVkc3RtdC0+bW9kaWZpZWRSZWxpZHMpOworfQorCiAv KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgKgkJRXhlY09wZW5TY2FuUmVsYXRpb24KICAqCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jCmluZGV4IGU1OGJiMDJkYjQzLi43MDk2ZTZmODY0NSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMKKysr IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMKQEAgLTE0OSw3ICsx NDksOCBAQCBCaXRtYXBUYWJsZVNjYW5TZXR1cChCaXRtYXBIZWFwU2NhblN0YXRlICpub2RlKQog CQkJCQkJCSAgIG5vZGUtPnNzLnBzLnN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkgICAwLAog CQkJCQkJCSAgIE5VTEwsCi0JCQkJCQkJICAgMCAvKiBmbGFncyAqLyApOworCQkJCQkJCSAgIFNj YW5SZWxJc1JlYWRPbmx5KCZub2RlLT5zcykgPworCQkJCQkJCSAgIFNPX0hJTlRfUkVMX1JFQURf T05MWSA6IDApOwogCX0KIAogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYy0+c3QucnNfdGJt aXRlcmF0b3IgPSB0Ym1pdGVyYXRvcjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVJbmRleG9ubHlzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5 c2Nhbi5jCmluZGV4IGY4YTY2NzE3OTNmLi4zOTcxZTU0ZDdkYSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jCkBAIC05Niw3ICs5Niw4IEBAIEluZGV4T25seU5leHQo SW5kZXhPbmx5U2NhblN0YXRlICpub2RlKQogCQkJCQkJCQkgICBub2RlLT5pb3NzX0luc3RydW1l bnQsCiAJCQkJCQkJCSAgIG5vZGUtPmlvc3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSAgIG5vZGUt Pmlvc3NfTnVtT3JkZXJCeUtleXMsCi0JCQkJCQkJCSAgIDAgLyogZmxhZ3MgKi8gKTsKKwkJCQkJ CQkJICAgU2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNzKSA/CisJCQkJCQkJCSAgIFNPX0hJTlRf UkVMX1JFQURfT05MWSA6IDApOwogCiAJCW5vZGUtPmlvc3NfU2NhbkRlc2MgPSBzY2FuZGVzYzsK IApAQCAtNzk2LDcgKzc5Nyw4IEBAIEV4ZWNJbmRleE9ubHlTY2FuSW5pdGlhbGl6ZURTTShJbmRl eE9ubHlTY2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkJCSBub2RlLT5pb3NzX051bVNjYW5LZXlzLAog CQkJCQkJCQkgbm9kZS0+aW9zc19OdW1PcmRlckJ5S2V5cywKIAkJCQkJCQkJIHBpc2NhbiwKLQkJ CQkJCQkJIDAgLyogZmxhZ3MgKi8gKTsKKwkJCQkJCQkJIFNjYW5SZWxJc1JlYWRPbmx5KCZub2Rl LT5zcykgPworCQkJCQkJCQkgU09fSElOVF9SRUxfUkVBRF9PTkxZIDogMCk7CiAJbm9kZS0+aW9z c19TY2FuRGVzYy0+eHNfd2FudF9pdHVwID0gdHJ1ZTsKIAlub2RlLT5pb3NzX1ZNQnVmZmVyID0g SW52YWxpZEJ1ZmZlcjsKIApAQCAtODYzLDcgKzg2NSw4IEBAIEV4ZWNJbmRleE9ubHlTY2FuSW5p dGlhbGl6ZVdvcmtlcihJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkJCSBub2RlLT5p b3NzX051bVNjYW5LZXlzLAogCQkJCQkJCQkgbm9kZS0+aW9zc19OdW1PcmRlckJ5S2V5cywKIAkJ CQkJCQkJIHBpc2NhbiwKLQkJCQkJCQkJIDAgLyogZmxhZ3MgKi8gKTsKKwkJCQkJCQkJIFNjYW5S ZWxJc1JlYWRPbmx5KCZub2RlLT5zcykgPworCQkJCQkJCQkgU09fSElOVF9SRUxfUkVBRF9PTkxZ IDogMCk7CiAJbm9kZS0+aW9zc19TY2FuRGVzYy0+eHNfd2FudF9pdHVwID0gdHJ1ZTsKIAogCS8q CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMgYi9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKaW5kZXggM2RmMDkxYWMwMDAuLjA5ZGYx MGRkNzhhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jCkBAIC0xMTQsNyArMTE0 LDggQEAgSW5kZXhOZXh0KEluZGV4U2NhblN0YXRlICpub2RlKQogCQkJCQkJCQkgICBub2RlLT5p c3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJICAgbm9kZS0+aXNzX051bVNjYW5LZXlzLAogCQkJCQkJ CQkgICBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMsCi0JCQkJCQkJCSAgIDAgLyogZmxhZ3MgKi8g KTsKKwkJCQkJCQkJICAgU2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNzKSA/CisJCQkJCQkJCSAg IFNPX0hJTlRfUkVMX1JFQURfT05MWSA6IDApOwogCiAJCW5vZGUtPmlzc19TY2FuRGVzYyA9IHNj YW5kZXNjOwogCkBAIC0yMTEsNyArMjEyLDggQEAgSW5kZXhOZXh0V2l0aFJlb3JkZXIoSW5kZXhT Y2FuU3RhdGUgKm5vZGUpCiAJCQkJCQkJCSAgIG5vZGUtPmlzc19JbnN0cnVtZW50LAogCQkJCQkJ CQkgICBub2RlLT5pc3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSAgIG5vZGUtPmlzc19OdW1PcmRl ckJ5S2V5cywKLQkJCQkJCQkJICAgMCAvKiBmbGFncyAqLyApOworCQkJCQkJCQkgICBTY2FuUmVs SXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCQkJCQkJICAgU09fSElOVF9SRUxfUkVBRF9PTkxZ IDogMCk7CiAKIAkJbm9kZS0+aXNzX1NjYW5EZXNjID0gc2NhbmRlc2M7CiAKQEAgLTE3MzMsNyAr MTczNSw4IEBAIEV4ZWNJbmRleFNjYW5Jbml0aWFsaXplRFNNKEluZGV4U2NhblN0YXRlICpub2Rl LAogCQkJCQkJCQkgbm9kZS0+aXNzX051bVNjYW5LZXlzLAogCQkJCQkJCQkgbm9kZS0+aXNzX051 bU9yZGVyQnlLZXlzLAogCQkJCQkJCQkgcGlzY2FuLAotCQkJCQkJCQkgMCAvKiBmbGFncyAqLyAp OworCQkJCQkJCQkgU2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNzKSA/CisJCQkJCQkJCSBTT19I SU5UX1JFTF9SRUFEX09OTFkgOiAwKTsKIAogCS8qCiAJICogSWYgbm8gcnVuLXRpbWUga2V5cyB0 byBjYWxjdWxhdGUgb3IgdGhleSBhcmUgcmVhZHksIGdvIGFoZWFkIGFuZCBwYXNzCkBAIC0xNzk4 LDcgKzE4MDEsOCBAQCBFeGVjSW5kZXhTY2FuSW5pdGlhbGl6ZVdvcmtlcihJbmRleFNjYW5TdGF0 ZSAqbm9kZSwKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1TY2FuS2V5cywKIAkJCQkJCQkJIG5vZGUt Pmlzc19OdW1PcmRlckJ5S2V5cywKIAkJCQkJCQkJIHBpc2NhbiwKLQkJCQkJCQkJIDAgLyogZmxh Z3MgKi8gKTsKKwkJCQkJCQkJIFNjYW5SZWxJc1JlYWRPbmx5KCZub2RlLT5zcykgPworCQkJCQkJ CQkgU09fSElOVF9SRUxfUkVBRF9PTkxZIDogMCk7CiAKIAkvKgogCSAqIElmIG5vIHJ1bi10aW1l IGtleXMgdG8gY2FsY3VsYXRlIG9yIHRoZXkgYXJlIHJlYWR5LCBnbyBhaGVhZCBhbmQgcGFzcwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMKaW5kZXggZjBlMTRlNTNmYWIuLjk4ZmFi MzZmYmRjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2FtcGxlc2Nhbi5j CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMKQEAgLTI5OSw3ICsy OTksOCBAQCB0YWJsZXNhbXBsZV9pbml0KFNhbXBsZVNjYW5TdGF0ZSAqc2NhbnN0YXRlKQogCQkJ CQkJCQkJIHNjYW5zdGF0ZS0+dXNlX2J1bGtyZWFkLAogCQkJCQkJCQkJIGFsbG93X3N5bmMsCiAJ CQkJCQkJCQkgc2NhbnN0YXRlLT51c2VfcGFnZW1vZGUsCi0JCQkJCQkJCQkgMCAvKiBmbGFncyAq LyApOworCQkJCQkJCQkJIFNjYW5SZWxJc1JlYWRPbmx5KCZzY2Fuc3RhdGUtPnNzKSA/CisJCQkJ CQkJCQkgU09fSElOVF9SRUxfUkVBRF9PTkxZIDogMCk7CiAJfQogCWVsc2UKIAl7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZVNlcXNjYW4uYwppbmRleCBlYWE4Y2ZiNmExYS4uMmY0YzE4MDUxY2QgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMKKysrIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYwpAQCAtNzIsNyArNzIsOCBAQCBTZXFOZXh0KFNlcVNj YW5TdGF0ZSAqbm9kZSkKIAkJc2NhbmRlc2MgPSB0YWJsZV9iZWdpbnNjYW4obm9kZS0+c3Muc3Nf Y3VycmVudFJlbGF0aW9uLAogCQkJCQkJCQkgICBlc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJ CQkgICAwLCBOVUxMLAotCQkJCQkJCQkgICAwIC8qIGZsYWdzICovICk7CisJCQkJCQkJCSAgIFNj YW5SZWxJc1JlYWRPbmx5KCZub2RlLT5zcykgPworCQkJCQkJCQkgICBTT19ISU5UX1JFTF9SRUFE X09OTFkgOiAwKTsKIAkJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0gc2NhbmRlc2M7CiAJ fQogCkBAIC0zNzUsOSArMzc2LDExIEBAIEV4ZWNTZXFTY2FuSW5pdGlhbGl6ZURTTShTZXFTY2Fu U3RhdGUgKm5vZGUsCiAJCQkJCQkJCSAgcHNjYW4sCiAJCQkJCQkJCSAgZXN0YXRlLT5lc19zbmFw c2hvdCk7CiAJc2htX3RvY19pbnNlcnQocGN4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFu X25vZGVfaWQsIHBzY2FuKTsKKwogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9CiAJCXRh YmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2Fu LAotCQkJCQkJCQkgMCAvKiBmbGFncyAqLyApOworCQkJCQkJCQkgU2NhblJlbElzUmVhZE9ubHko Jm5vZGUtPnNzKSA/CisJCQkJCQkJCSBTT19ISU5UX1JFTF9SRUFEX09OTFkgOiAwKTsKIH0KIAog LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpAQCAtNDExLDUgKzQxNCw2IEBAIEV4ZWNTZXFTY2FuSW5pdGlhbGl6ZVdvcmtl cihTZXFTY2FuU3RhdGUgKm5vZGUsCiAJcHNjYW4gPSBzaG1fdG9jX2xvb2t1cChwd2N4dC0+dG9j LCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQsIGZhbHNlKTsKIAlub2RlLT5zcy5zc19j dXJyZW50U2NhbkRlc2MgPQogCQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwobm9kZS0+c3Muc3Nf Y3VycmVudFJlbGF0aW9uLCBwc2NhbiwKLQkJCQkJCQkJIDAgLyogZmxhZ3MgKi8gKTsKKwkJCQkJ CQkJIFNjYW5SZWxJc1JlYWRPbmx5KCZub2RlLT5zcykgPworCQkJCQkJCQkgU09fSElOVF9SRUxf UkVBRF9PTkxZIDogMCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl VGlkcmFuZ2VzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMK aW5kZXggNmY2M2U5ZjgwZDAuLmY4M2E3MmUzNjM1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZVRpZHJhbmdlc2Nhbi5jCkBAIC0yNDYsNyArMjQ2LDggQEAgVGlkUmFuZ2VOZXh0KFRpZFJhbmdl U2NhblN0YXRlICpub2RlKQogCQkJCQkJCQkJCQkJZXN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJ CQkJCQkJCSZub2RlLT50cnNzX21pbnRpZCwKIAkJCQkJCQkJCQkJCSZub2RlLT50cnNzX21heHRp ZCwKLQkJCQkJCQkJCQkJCTAgLyogZmxhZ3MgKi8gKTsKKwkJCQkJCQkJCQkJCVNjYW5SZWxJc1Jl YWRPbmx5KCZub2RlLT5zcykgPworCQkJCQkJCQkJCQkJU09fSElOVF9SRUxfUkVBRF9PTkxZIDog MCk7CiAJCQlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPSBzY2FuZGVzYzsKIAkJfQogCQll bHNlCkBAIC00NjEsNyArNDYyLDkgQEAgRXhlY1RpZFJhbmdlU2NhbkluaXRpYWxpemVEU00oVGlk UmFuZ2VTY2FuU3RhdGUgKm5vZGUsIFBhcmFsbGVsQ29udGV4dCAqcGN4dCkKIAlzaG1fdG9jX2lu c2VydChwY3h0LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCwgcHNjYW4pOwog CW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9CiAJCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxl bF90aWRyYW5nZShub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCi0JCQkJCQkJCQkJICBwc2Nh biwgMCAvKiBmbGFncyAqLyApOworCQkJCQkJCQkJCSAgcHNjYW4sCisJCQkJCQkJCQkJICBTY2Fu UmVsSXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCQkJCQkJCQkgIFNPX0hJTlRfUkVMX1JFQURf T05MWSA6IDApOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00OTUsNSArNDk4LDcgQEAgRXhlY1RpZFJh bmdlU2NhbkluaXRpYWxpemVXb3JrZXIoVGlkUmFuZ2VTY2FuU3RhdGUgKm5vZGUsCiAJcHNjYW4g PSBzaG1fdG9jX2xvb2t1cChwd2N4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVf aWQsIGZhbHNlKTsKIAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQogCQl0YWJsZV9iZWdp bnNjYW5fcGFyYWxsZWxfdGlkcmFuZ2Uobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAotCQkJ CQkJCQkJCSAgcHNjYW4sIDAgLyogZmxhZ3MgKi8gKTsKKwkJCQkJCQkJCQkgIHBzY2FuLAorCQkJ CQkJCQkJCSAgU2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNzKSA/CisJCQkJCQkJCQkJICBTT19I SU5UX1JFTF9SRUFEX09OTFkgOiAwKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vz cy90YWJsZWFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oCmluZGV4IGNlNTE3NmJk ZjY5Li4wMTRjNjg2YTVkZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0u aAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oCkBAIC02Myw2ICs2Myw5IEBAIHR5 cGVkZWYgZW51bSBTY2FuT3B0aW9ucwogCiAJLyogdW5yZWdpc3RlciBzbmFwc2hvdCBhdCBzY2Fu IGVuZD8gKi8KIAlTT19URU1QX1NOQVBTSE9UID0gMSA8PCA5LAorCisJLyogc2V0IGlmIHRoZSBx dWVyeSBkb2Vzbid0IG1vZGlmeSB0aGUgcmVsYXRpb24gKi8KKwlTT19ISU5UX1JFTF9SRUFEX09O TFkgPSAxIDw8IDEwLAogfQkJCVNjYW5PcHRpb25zOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9y LmgKaW5kZXggMDdmNGIxZjc0OTAuLjc5NzlhMTdlNGVjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9leGVjdXRvci9leGVjdXRvci5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9y LmgKQEAgLTY5MCw2ICs2OTAsOCBAQCBleHRlcm4gdm9pZCBFeGVjQ3JlYXRlU2NhblNsb3RGcm9t T3V0ZXJQbGFuKEVTdGF0ZSAqZXN0YXRlLAogCiBleHRlcm4gYm9vbCBFeGVjUmVsYXRpb25Jc1Rh cmdldFJlbGF0aW9uKEVTdGF0ZSAqZXN0YXRlLCBJbmRleCBzY2FucmVsaWQpOwogCitleHRlcm4g Ym9vbCBTY2FuUmVsSXNSZWFkT25seShTY2FuU3RhdGUgKnNzKTsKKwogZXh0ZXJuIFJlbGF0aW9u IEV4ZWNPcGVuU2NhblJlbGF0aW9uKEVTdGF0ZSAqZXN0YXRlLCBJbmRleCBzY2FucmVsaWQsIGlu dCBlZmxhZ3MpOwogCiBleHRlcm4gdm9pZCBFeGVjSW5pdFJhbmdlVGFibGUoRVN0YXRlICplc3Rh dGUsIExpc3QgKnJhbmdlVGFibGUsIExpc3QgKnBlcm1JbmZvcywKLS0gCjIuNDMuMAoK --00000000000019c2d4064de16e7d Content-Type: text/x-patch; charset="US-ASCII"; name="v46-0004-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Disposition: attachment; filename="v46-0004-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn6nu1gt3 RnJvbSBlOGY5ZGEwZDFjYTEyYWIwM2NiNThlNDI4M2RmZDQxMTFhYTlmYzJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDI3IEZlYiAyMDI2IDE2OjMzOjQwIC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDYgNC81XSBBbGxvdyBvbi1hY2Nlc3MgcHJ1bmluZyB0byBzZXQgcGFnZXMgYWxsLXZp c2libGUKCk1hbnkgcXVlcmllcyBkbyBub3QgbW9kaWZ5IHRoZSB1bmRlcmx5aW5nIHJlbGF0aW9u LiBGb3Igc3VjaCBxdWVyaWVzLCBpZgpvbi1hY2Nlc3MgcHJ1bmluZyBvY2N1cnMgZHVyaW5nIHRo ZSBzY2FuLCB3ZSBjYW4gY2hlY2sgd2hldGhlciB0aGUgcGFnZQpoYXMgYmVjb21lIGFsbC12aXNp YmxlIGFuZCB1cGRhdGUgdGhlIHZpc2liaWxpdHkgbWFwIGFjY29yZGluZ2x5LgpQcmV2aW91c2x5 LCBvbmx5IHZhY3V1bSBhbmQgQ09QWSBGUkVFWkUgbWFya2VkIHBhZ2VzIGFzIGFsbC12aXNpYmxl IG9yCmFsbC1mcm96ZW4uCgpUaGlzIGNvbW1pdCBpbXBsZW1lbnRzIG9uLWFjY2VzcyBWTSBzZXR0 aW5nIGZvciBzZXF1ZW50aWFsIHNjYW5zIGFzIHdlbGwKYXMgZm9yIHRoZSB1bmRlcmx5aW5nIGhl YXAgcmVsYXRpb24gaW4gaW5kZXggc2NhbnMgYW5kIGJpdG1hcCBoZWFwCnNjYW5zLgoKU2V0dGlu ZyB0aGUgdmlzaWJpbGl0eSBtYXAgb24tYWNjZXNzIGNhbiBhdm9pZCB3cml0ZSBhbXBsaWZpY2F0 aW9uCmNhdXNlZCBieSB2YWN1dW0gbGF0ZXIgbmVlZGluZyB0byBzZXQgdGhlIHBhZ2UgYWxsLXZp c2libGUsIHRyaWdnZXIgYQp3cml0ZSBhbmQgcG90ZW50aWFsbHkgRlBJLiBJdCBhbHNvIGFsbG93 cyBtb3JlIGZyZXF1ZW50IGluZGV4LW9ubHkKc2NhbnMsIHNpbmNlIHRoZXkgcmVxdWlyZSBwYWdl cyB0byBiZSBtYXJrZWQgYWxsLXZpc2libGUgaW4gdGhlIFZNLgoKQXV0aG9yOiBNZWxhbmllIFBs YWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZy ZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogS2lyaWxsIFJlc2hrZSA8cmVz aGtla2lyaWxsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0Bn bWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vZmxhdC9DQUFLUnVfWk13 Nk5wZF9xbTJLTSUyQkZ3UTNjTU9NeDFEaDNWTWhwOC1WN1NPTHhkSzktZyU0MG1haWwuZ21haWwu Y29tCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgICAgICAgICB8ICAzICst CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jIHwgIDYgKystLQogc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAgICB8IDQ2ICsrKysrKysrKysrKysr KysrLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jICAgICB8ICAy ICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAgICAgIHwgIDMgKy0KIDUg ZmlsZXMgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9oZWFwYW0uYwppbmRleCAwNDRmMzg1ZTQ3Ny4uZGJkZjY1MjFjNDIgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC02MzMsNyArNjMzLDggQEAgaGVhcF9wcmVwYXJlX3BhZ2Vz Y2FuKFRhYmxlU2NhbkRlc2Mgc3NjYW4pCiAJLyoKIAkgKiBQcnVuZSBhbmQgcmVwYWlyIGZyYWdt ZW50YXRpb24gZm9yIHRoZSB3aG9sZSBwYWdlLCBpZiBwb3NzaWJsZS4KIAkgKi8KLQloZWFwX3Bh Z2VfcHJ1bmVfb3B0KHNjYW4tPnJzX2Jhc2UucnNfcmQsIGJ1ZmZlciwgJnNjYW4tPnJzX3ZtYnVm ZmVyKTsKKwloZWFwX3BhZ2VfcHJ1bmVfb3B0KHNjYW4tPnJzX2Jhc2UucnNfcmQsIGJ1ZmZlciwg JnNjYW4tPnJzX3ZtYnVmZmVyLAorCQkJCQkJKHNzY2FuLT5yc19mbGFncyAmIFNPX0hJTlRfUkVM X1JFQURfT05MWSkpOwogCiAJLyoKIAkgKiBXZSBtdXN0IGhvbGQgc2hhcmUgbG9jayBvbiB0aGUg YnVmZmVyIGNvbnRlbnQgd2hpbGUgZXhhbWluaW5nIHR1cGxlCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtX2hhbmRsZXIuYwppbmRleCA4Yzc2OTVlYmZiOS4uZDU5YjQyM2M4YWQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYwpAQCAtMTQ5LDcgKzE0OSw4IEBA IGhlYXBhbV9pbmRleF9mZXRjaF90dXBsZShzdHJ1Y3QgSW5kZXhGZXRjaFRhYmxlRGF0YSAqc2Nh biwKIAkJICovCiAJCWlmIChwcmV2X2J1ZiAhPSBoc2Nhbi0+eHNfY2J1ZikKIAkJCWhlYXBfcGFn ZV9wcnVuZV9vcHQoaHNjYW4tPnhzX2Jhc2UucmVsLCBoc2Nhbi0+eHNfY2J1ZiwKLQkJCQkJCQkJ JmhzY2FuLT54c192bWJ1ZmZlcik7CisJCQkJCQkJCSZoc2Nhbi0+eHNfdm1idWZmZXIsCisJCQkJ CQkJCShoc2Nhbi0+eHNfYmFzZS5mbGFncyAmIFNPX0hJTlRfUkVMX1JFQURfT05MWSkpOwogCX0K IAogCS8qIE9idGFpbiBzaGFyZS1sb2NrIG9uIHRoZSBidWZmZXIgc28gd2UgY2FuIGV4YW1pbmUg dmlzaWJpbGl0eSAqLwpAQCAtMjU0Niw3ICsyNTQ3LDggQEAgQml0bWFwSGVhcFNjYW5OZXh0Qmxv Y2soVGFibGVTY2FuRGVzYyBzY2FuLAogCS8qCiAJICogUHJ1bmUgYW5kIHJlcGFpciBmcmFnbWVu dGF0aW9uIGZvciB0aGUgd2hvbGUgcGFnZSwgaWYgcG9zc2libGUuCiAJICovCi0JaGVhcF9wYWdl X3BydW5lX29wdChzY2FuLT5yc19yZCwgYnVmZmVyLCAmaHNjYW4tPnJzX3ZtYnVmZmVyKTsKKwlo ZWFwX3BhZ2VfcHJ1bmVfb3B0KHNjYW4tPnJzX3JkLCBidWZmZXIsICZoc2Nhbi0+cnNfdm1idWZm ZXIsCisJCQkJCQlzY2FuLT5yc19mbGFncyAmIFNPX0hJTlRfUkVMX1JFQURfT05MWSk7CiAKIAkv KgogCSAqIFdlIG11c3QgaG9sZCBzaGFyZSBsb2NrIG9uIHRoZSBidWZmZXIgY29udGVudCB3aGls ZSBleGFtaW5pbmcgdHVwbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3By dW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggNjY5 M2FmOGRhN2YuLmQ4M2ZkMjZiMjc0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpA QCAtNDQsNiArNDQsOCBAQCB0eXBlZGVmIHN0cnVjdAogCWJvb2wJCW1hcmtfdW51c2VkX25vdzsK IAkvKiB3aGV0aGVyIHRvIGF0dGVtcHQgZnJlZXppbmcgdHVwbGVzICovCiAJYm9vbAkJYXR0ZW1w dF9mcmVlemU7CisJLyogd2hldGhlciB0byBhdHRlbXB0IHNldHRpbmcgdGhlIFZNICovCisJYm9v bAkJYXR0ZW1wdF9zZXRfdm07CiAJc3RydWN0IFZhY3V1bUN1dG9mZnMgKmN1dG9mZnM7CiAJUmVs YXRpb24JcmVsYXRpb247CiAKQEAgLTIzMiw3ICsyMzQsOCBAQCBzdGF0aWMgdm9pZCBwYWdlX3Zl cmlmeV9yZWRpcmVjdHMoUGFnZSBwYWdlKTsKIAogc3RhdGljIGJvb2wgaGVhcF9wYWdlX3dpbGxf ZnJlZXplKGJvb2wgZGlkX3R1cGxlX2hpbnRfZnBpLCBib29sIGRvX3BydW5lLCBib29sIGRvX2hp bnRfcHJ1bmUsCiAJCQkJCQkJCSAgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSk7Ci1zdGF0aWMgYm9vbCBo ZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgUHJ1bmVSZWFzb24gcmVh c29uKTsKK3N0YXRpYyBib29sIGhlYXBfcGFnZV93aWxsX3NldF92bShQcnVuZVN0YXRlICpwcnN0 YXRlLCBQcnVuZVJlYXNvbiByZWFzb24sCisJCQkJCQkJCSAgYm9vbCBkb19wcnVuZSwgYm9vbCBk b19mcmVlemUpOwogCiAKIC8qCkBAIC0yNTMsNyArMjU2LDggQEAgc3RhdGljIGJvb2wgaGVhcF9w YWdlX3dpbGxfc2V0X3ZtKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lUmVhc29uIHJlYXNvbik7 CiAgKiB1bnBpbm5pbmcgKnZtYnVmZmVyLgogICovCiB2b2lkCi1oZWFwX3BhZ2VfcHJ1bmVfb3B0 KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLCBCdWZmZXIgKnZtYnVmZmVyKQoraGVh cF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwgQnVmZmVy ICp2bWJ1ZmZlciwKKwkJCQkJYm9vbCByZWxfcmVhZF9vbmx5KQogewogCVBhZ2UJCXBhZ2UgPSBC dWZmZXJHZXRQYWdlKGJ1ZmZlcik7CiAJVHJhbnNhY3Rpb25JZCBwcnVuZV94aWQ7CkBAIC0zMzYs NiArMzQwLDggQEAgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVy IGJ1ZmZlciwgQnVmZmVyICp2bWJ1ZmZlcikKIAkJCSAqIGN1cnJlbnQgaW1wbGVtZW50YXRpb24u CiAJCQkgKi8KIAkJCXBhcmFtcy5vcHRpb25zID0gSEVBUF9QQUdFX1BSVU5FX0FMTE9XX0ZBU1Rf UEFUSDsKKwkJCWlmIChyZWxfcmVhZF9vbmx5KQorCQkJCXBhcmFtcy5vcHRpb25zIHw9IEhFQVBf UEFHRV9QUlVORV9TRVRfVk07CiAKIAkJCWhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCZwYXJh bXMsICZwcmVzdWx0LCAmZHVtbXlfb2ZmX2xvYywKIAkJCQkJCQkJCSAgIE5VTEwsIE5VTEwpOwpA QCAtMzkyLDYgKzM5OCw3IEBAIHBydW5lX2ZyZWV6ZV9zZXR1cChQcnVuZUZyZWV6ZVBhcmFtcyAq cGFyYW1zLAogCS8qIGN1dG9mZnMgbXVzdCBiZSBwcm92aWRlZCBpZiB3ZSB3aWxsIGF0dGVtcHQg ZnJlZXppbmcgKi8KIAlBc3NlcnQoIShwYXJhbXMtPm9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVf RlJFRVpFKSB8fCBwYXJhbXMtPmN1dG9mZnMpOwogCXByc3RhdGUtPmF0dGVtcHRfZnJlZXplID0g KHBhcmFtcy0+b3B0aW9ucyAmIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUpICE9IDA7CisJcHJzdGF0 ZS0+YXR0ZW1wdF9zZXRfdm0gPSAocGFyYW1zLT5vcHRpb25zICYgSEVBUF9QQUdFX1BSVU5FX1NF VF9WTSkgIT0gMDsKIAlwcnN0YXRlLT5jdXRvZmZzID0gcGFyYW1zLT5jdXRvZmZzOwogCXByc3Rh dGUtPnJlbGF0aW9uID0gcGFyYW1zLT5yZWxhdGlvbjsKIAlwcnN0YXRlLT5ibG9jayA9IEJ1ZmZl ckdldEJsb2NrTnVtYmVyKHBhcmFtcy0+YnVmZmVyKTsKQEAgLTQ2MSw5ICs0NjgsOCBAQCBwcnVu ZV9mcmVlemVfc2V0dXAoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAkgKiBXZSB0cmFjayB3 aGV0aGVyIHRoZSBwYWdlIHdpbGwgYmUgYWxsLXZpc2libGUvYWxsLWZyb3plbiBhdCB0aGUgZW5k IG9mCiAJICogcHJ1bmluZyBhbmQgZnJlZXppbmcuIFdoaWxlIGV4YW1pbmluZyB0dXBsZSB2aXNp YmlsaXR5LCB3ZSdsbCBzZXQKIAkgKiBzZXRfYWxsX3Zpc2libGUgdG8gZmFsc2UgaWYgdGhlcmUg YXJlIHR1cGxlcyBvbiB0aGUgcGFnZSBub3QgdmlzaWJsZSB0bwotCSAqIGFsbCBydW5uaW5nIGFu ZCBmdXR1cmUgdHJhbnNhY3Rpb25zLiBzZXRfYWxsX3Zpc2libGUgaXMgYWx3YXlzCi0JICogbWFp bnRhaW5lZCBidXQgb25seSBWQUNVVU0gd2lsbCBzZXQgdGhlIFZNIGlmIHRoZSBwYWdlIGVuZHMg dXAgYmVpbmcKLQkgKiBhbGwtdmlzaWJsZS4KKwkgKiBhbGwgcnVubmluZyBhbmQgZnV0dXJlIHRy YW5zYWN0aW9ucy4gSWYgZW5hYmxlZCBmb3IgdGhpcyBzY2FuLCB3ZSB3aWxsCisJICogc2V0IHRo ZSBWTSBpZiB0aGUgcGFnZSBlbmRzIHVwIGJlaW5nIGFsbC12aXNpYmxlLgogCSAqCiAJICogV2Ug YWxzbyBrZWVwIHRyYWNrIG9mIHRoZSBuZXdlc3QgbGl2ZSBYSUQsIHdoaWNoIGlzIHVzZWQgdG8g Y2FsY3VsYXRlCiAJICogdGhlIHNuYXBzaG90IGNvbmZsaWN0IGhvcml6b24gZm9yIGEgV0FMIHJl Y29yZCBzZXR0aW5nIHRoZSBWTS4KQEAgLTkyMCwyMSArOTI2LDM3IEBAIGhlYXBfcGFnZV9maXhf dm1fY29ycnVwdGlvbihQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtLAog ICogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBhY3R1YWxseSBzZXQgdGhlIFZNIGJpdHMgb3IgcGFn ZS1sZXZlbCB2aXNpYmlsaXR5CiAgKiBoaW50LCBQRF9BTExfVklTSUJMRS4KICAqCisgKiBUaGlz IHNob3VsZCBiZSBjYWxsZWQgb25seSBhZnRlciBkb19mcmVlemUgaGFzIGJlZW4gZGVjaWRlZCAo YW5kIGRvX3BydW5lCisgKiBoYXMgYmVlbiBzZXQpLCBhcyB0aGVzZSBmYWN0b3IgaW50byBvdXIg aGV1cmlzdGljLWJhc2VkIGRlY2lzaW9uLgorICoKICAqIFJldHVybnMgdHJ1ZSBpZiBvbmUgb3Ig Ym90aCBWTSBiaXRzIHNob3VsZCBiZSBzZXQgYW5kIGZhbHNlIG90aGVyd2lzZS4KICAqLwogc3Rh dGljIGJvb2wKLWhlYXBfcGFnZV93aWxsX3NldF92bShQcnVuZVN0YXRlICpwcnN0YXRlLCBQcnVu ZVJlYXNvbiByZWFzb24pCitoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1bmVTdGF0ZSAqcHJzdGF0 ZSwgUHJ1bmVSZWFzb24gcmVhc29uLAorCQkJCQkgIGJvb2wgZG9fcHJ1bmUsIGJvb2wgZG9fZnJl ZXplKQogewotCS8qCi0JICogVGhvdWdoIG9uLWFjY2VzcyBwcnVuaW5nIG1haW50YWlucyBwcnN0 YXRlLT5zZXRfYWxsX3Zpc2libGUsIHdlIGRvbid0Ci0JICogc2V0IHRoZSBWTSBvbi1hY2Nlc3Mg Zm9yIG5vdy4KLQkgKi8KLQlpZiAocmVhc29uID09IFBSVU5FX09OX0FDQ0VTUykKKwlpZiAoIXBy c3RhdGUtPmF0dGVtcHRfc2V0X3ZtKQogCQlyZXR1cm4gZmFsc2U7CiAKIAlpZiAoIXByc3RhdGUt PnNldF9hbGxfdmlzaWJsZSkKIAkJcmV0dXJuIGZhbHNlOwogCisJLyoKKwkgKiBJZiB0aGlzIGlz IGFuIG9uLWFjY2VzcyBjYWxsIGFuZCB3ZSdyZSBub3QgYWN0dWFsbHkgcHJ1bmluZywgYXZvaWQK KwkgKiBzZXR0aW5nIHRoZSB2aXNpYmlsaXR5IG1hcCBpZiBpdCB3b3VsZCBuZXdseSBkaXJ0eSB0 aGUgaGVhcCBwYWdlIG9yLCBpZgorCSAqIHRoZSBwYWdlIGlzIGFscmVhZHkgZGlydHksIGlmIGRv aW5nIHNvIHdvdWxkIHJlcXVpcmUgaW5jbHVkaW5nIGEKKwkgKiBmdWxsLXBhZ2UgaW1hZ2UgKEZQ SSkgb2YgdGhlIGhlYXAgcGFnZSBpbiB0aGUgV0FMLiBUaGlzIHNpdHVhdGlvbgorCSAqIHNob3Vs ZCBiZSByYXJlLCBhcyBvbi1hY2Nlc3MgcHJ1bmluZyBpcyBvbmx5IGF0dGVtcHRlZCB3aGVuCisJ ICogcGRfcHJ1bmVfeGlkIGlzIHZhbGlkLgorCSAqLworCWlmIChyZWFzb24gPT0gUFJVTkVfT05f QUNDRVNTICYmICFkb19wcnVuZSAmJiAhZG9fZnJlZXplICYmCisJCSghQnVmZmVySXNEaXJ0eShw cnN0YXRlLT5idWZmZXIpIHx8IFhMb2dDaGVja0J1ZmZlck5lZWRzQmFja3VwKHByc3RhdGUtPmJ1 ZmZlcikpKQorCXsKKwkJcHJzdGF0ZS0+c2V0X2FsbF92aXNpYmxlID0gZmFsc2U7CisJCXByc3Rh dGUtPnNldF9hbGxfZnJvemVuID0gZmFsc2U7CisJCXJldHVybiBmYWxzZTsKKwl9CisKIAlwcnN0 YXRlLT5uZXdfdm1iaXRzID0gVklTSUJJTElUWU1BUF9BTExfVklTSUJMRTsKIAogCWlmIChwcnN0 YXRlLT5zZXRfYWxsX2Zyb3plbikKQEAgLTExNjcsNyArMTE4OSw3IEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJQXNzZXJ0KCFwcnN0YXRl LnNldF9hbGxfZnJvemVuIHx8IHByc3RhdGUuc2V0X2FsbF92aXNpYmxlKTsKIAlBc3NlcnQoIXBy c3RhdGUuc2V0X2FsbF92aXNpYmxlIHx8IChwcnN0YXRlLmxwZGVhZF9pdGVtcyA9PSAwKSk7CiAK LQlkb19zZXRfdm0gPSBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oJnByc3RhdGUsIHBhcmFtcy0+cmVh c29uKTsKKwlkb19zZXRfdm0gPSBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oJnByc3RhdGUsIHBhcmFt cy0+cmVhc29uLCBkb19wcnVuZSwgZG9fZnJlZXplKTsKIAogCS8qCiAJICogbmV3X3ZtYml0cyBz aG91bGQgYmUgMCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb3Igbm90IHRoZSBwYWdlIGlzCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggZjY5OGMyZDg5OWIuLjI0MDAxYjI3Mzg3 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0yMDIxLDcgKzIwMjEsNyBA QCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCQkuYnVmZmVyID0gYnVmLAog CQkudm1idWZmZXIgPSB2bWJ1ZmZlciwKIAkJLnJlYXNvbiA9IFBSVU5FX1ZBQ1VVTV9TQ0FOLAot CQkub3B0aW9ucyA9IEhFQVBfUEFHRV9QUlVORV9GUkVFWkUsCisJCS5vcHRpb25zID0gSEVBUF9Q QUdFX1BSVU5FX0ZSRUVaRSB8IEhFQVBfUEFHRV9QUlVORV9TRVRfVk0sCiAJCS52aXN0ZXN0ID0g dmFjcmVsLT52aXN0ZXN0LAogCQkuY3V0b2ZmcyA9ICZ2YWNyZWwtPmN1dG9mZnMsCiAJfTsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vz cy9oZWFwYW0uaAppbmRleCBlMmUwNzM0OGYzNy4uZjJhMDA5MTQxYmUgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFt LmgKQEAgLTQzLDYgKzQzLDcgQEAKICNkZWZpbmUgSEVBUF9QQUdFX1BSVU5FX01BUktfVU5VU0VE X05PVwkJKDEgPDwgMCkKICNkZWZpbmUgSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRQkJCQkoMSA8PCAx KQogI2RlZmluZSBIRUFQX1BBR0VfUFJVTkVfQUxMT1dfRkFTVF9QQVRICQkoMSA8PCAyKQorI2Rl ZmluZSBIRUFQX1BBR0VfUFJVTkVfU0VUX1ZNCQkJCSgxIDw8IDMpCiAKIHR5cGVkZWYgc3RydWN0 IEJ1bGtJbnNlcnRTdGF0ZURhdGEgKkJ1bGtJbnNlcnRTdGF0ZTsKIHR5cGVkZWYgc3RydWN0IEds b2JhbFZpc1N0YXRlIEdsb2JhbFZpc1N0YXRlOwpAQCAtNDMxLDcgKzQzMiw3IEBAIGV4dGVybiBU cmFuc2FjdGlvbklkIGhlYXBfaW5kZXhfZGVsZXRlX3R1cGxlcyhSZWxhdGlvbiByZWwsCiAKIC8q IGluIGhlYXAvcHJ1bmVoZWFwLmMgKi8KIGV4dGVybiB2b2lkIGhlYXBfcGFnZV9wcnVuZV9vcHQo UmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCi0JCQkJCQkJCUJ1ZmZlciAqdm1idWZm ZXIpOworCQkJCQkJCQlCdWZmZXIgKnZtYnVmZmVyLCBib29sIHJlbF9yZWFkX29ubHkpOwogZXh0 ZXJuIHZvaWQgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBh cmFtcywKIAkJCQkJCQkJCSAgIFBydW5lRnJlZXplUmVzdWx0ICpwcmVzdWx0LAogCQkJCQkJCQkJ ICAgT2Zmc2V0TnVtYmVyICpvZmZfbG9jLAotLSAKMi40My4wCgo= --00000000000019c2d4064de16e7d Content-Type: text/x-patch; charset="UTF-8"; name="v46-0005-Set-pd_prune_xid-on-insert.patch" Content-Disposition: attachment; filename="v46-0005-Set-pd_prune_xid-on-insert.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn6nu4ak4 RnJvbSA5ZDZkNmMyNTI5NzAwZTRmZTM4MWRiYzU1ZWYxNzJiYTEzODgyZmFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE2OjEyOjU2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDYgNS81XSBTZXQgcGRfcHJ1bmVfeGlkIG9uIGluc2VydApNSU1FLVZlcnNpb246IDEu MApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zl ci1FbmNvZGluZzogOGJpdAoKTm93IHRoYXQgdmlzaWJpbGl0eSBtYXAgKFZNKSB1cGRhdGVzIGNh biBvY2N1ciBkdXJpbmcgcmVhZC1vbmx5IHF1ZXJpZXMsCml0IG1ha2VzIHNlbnNlIHRvIGFsc28g c2V0IHRoZSBwYWdl4oCZcyBwZF9wcnVuZV94aWQgaGludCBkdXJpbmcgaW5zZXJ0cwphbmQgb24g dGhlIG5ldyBwYWdlIGR1cmluZyB1cGRhdGVzLgoKVGhpcyBlbmFibGVzIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKCkgdG8gc2V0IHRoZSBWTSBhbGwtdmlzaWJsZQphZnRlciBhIHBhZ2UgaXMg ZmlsbGVkIHdpdGggbmV3bHkgaW5zZXJ0ZWQgdHVwbGVzIHRoZSBmaXJzdCB0aW1lIGl0IGlzCnJl YWQuIFRoaXMgbWVhbnMgdGhlIHBhZ2Ugd2lsbCBnZXQgc2V0IGFsbC12aXNpYmxlIHdoZW4gaXQg aXMgc3RpbGwgaW4Kc2hhcmVkIGJ1ZmZlcnMgYW5kIGF2b2lkIHBvdGVudGlhbCBJL08gYW1wbGlm aWNhdGlvbiB3aGVuIHZhY3V1bSBsYXRlcgpoYXMgdG8gc2NhbiB0aGUgcGFnZSBhbmQgc2V0IGl0 IGFsbC12aXNpYmxlLiBJdCBhbHNvIGVuYWJsZXMgaW5kZXgtb25seQpzY2FucyBvZiBuZXdseSBp bnNlcnRlZCBkYXRhIG11Y2ggc29vbmVyLgoKVGhpcyBjaGFuZ2UgYWxzbyBhZGRyZXNzZXMgYSBs b25nLXN0YW5kaW5nIG5vdGUgaW4gaGVhcF9pbnNlcnQoKSBhbmQKaGVhcF9tdWx0aV9pbnNlcnQo KSwgd2hpY2ggb2JzZXJ2ZWQgdGhhdCBzZXR0aW5nIHBkX3BydW5lX3hpZCB3b3VsZApoZWxwIGNs ZWFuIHVwIGFib3J0ZWQgaW5zZXJ0aW9ucyBzb29uZXIuIFdpdGhvdXQgaXQsIHN1Y2ggdHVwbGVz IG1pZ2h0CmxpbmdlciB1bnRpbCBWQUNVVU0sIHdoZXJlYXMgbm93IHRoZXkgY2FuIGJlIHBydW5l ZCBlYXJsaWVyLgoKQXV0aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpS ZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjog aHR0cHM6Ly9wb3N0Z3IuZXMvbS9mbGF0L0NBQUtSdV9aTXc2TnBkX3FtMktNJTJCRndRM2NNT014 MURoM1ZNaHA4LVY3U09MeGRLOS1nJTQwbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgIHwgMzkgKysrKysrKysrKysrKysrKystLS0tLS0tLS0t CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIHwgMTkgKysrKysrKysrKysr LQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICB8IDE4ICsrKysrKy0tLS0t LS0KIDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCBkYmRmNjUyMWM0Mi4uY2RhZjU3ZTNmMTIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC0yMTU2LDYgKzIxNTYsNyBAQCBoZWFwX2luc2Vy dChSZWxhdGlvbiByZWxhdGlvbiwgSGVhcFR1cGxlIHR1cCwgQ29tbWFuZElkIGNpZCwKIAlUcmFu c2FjdGlvbklkIHhpZCA9IEdldEN1cnJlbnRUcmFuc2FjdGlvbklkKCk7CiAJSGVhcFR1cGxlCWhl YXB0dXA7CiAJQnVmZmVyCQlidWZmZXI7CisJUGFnZQkJcGFnZTsKIAlCdWZmZXIJCXZtYnVmZmVy ID0gSW52YWxpZEJ1ZmZlcjsKIAlib29sCQlhbGxfdmlzaWJsZV9jbGVhcmVkID0gZmFsc2U7CiAK QEAgLTIxODIsNiArMjE4Myw4IEBAIGhlYXBfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBIZWFw VHVwbGUgdHVwLCBDb21tYW5kSWQgY2lkLAogCQkJCQkJCQkJICAgJnZtYnVmZmVyLCBOVUxMLAog CQkJCQkJCQkJICAgMCk7CiAKKwlwYWdlID0gQnVmZmVyR2V0UGFnZShidWZmZXIpOworCiAJLyoK IAkgKiBXZSdyZSBhYm91dCB0byBkbyB0aGUgYWN0dWFsIGluc2VydCAtLSBidXQgY2hlY2sgZm9y IGNvbmZsaWN0IGZpcnN0LCB0bwogCSAqIGF2b2lkIHBvc3NpYmx5IGhhdmluZyB0byByb2xsIGJh Y2sgd29yayB3ZSd2ZSBqdXN0IGRvbmUuCkBAIC0yMjA1LDI1ICsyMjA4LDMwIEBAIGhlYXBfaW5z ZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBIZWFwVHVwbGUgdHVwLCBDb21tYW5kSWQgY2lkLAogCVJl bGF0aW9uUHV0SGVhcFR1cGxlKHJlbGF0aW9uLCBidWZmZXIsIGhlYXB0dXAsCiAJCQkJCQkgKG9w dGlvbnMgJiBIRUFQX0lOU0VSVF9TUEVDVUxBVElWRSkgIT0gMCk7CiAKLQlpZiAoUGFnZUlzQWxs VmlzaWJsZShCdWZmZXJHZXRQYWdlKGJ1ZmZlcikpKQorCWlmIChQYWdlSXNBbGxWaXNpYmxlKHBh Z2UpKQogCXsKIAkJYWxsX3Zpc2libGVfY2xlYXJlZCA9IHRydWU7Ci0JCVBhZ2VDbGVhckFsbFZp c2libGUoQnVmZmVyR2V0UGFnZShidWZmZXIpKTsKKwkJUGFnZUNsZWFyQWxsVmlzaWJsZShwYWdl KTsKIAkJdmlzaWJpbGl0eW1hcF9jbGVhcihyZWxhdGlvbiwKIAkJCQkJCQlJdGVtUG9pbnRlckdl dEJsb2NrTnVtYmVyKCYoaGVhcHR1cC0+dF9zZWxmKSksCiAJCQkJCQkJdm1idWZmZXIsIFZJU0lC SUxJVFlNQVBfVkFMSURfQklUUyk7CiAJfQogCiAJLyoKLQkgKiBYWFggU2hvdWxkIHdlIHNldCBQ YWdlU2V0UHJ1bmFibGUgb24gdGhpcyBwYWdlID8KKwkgKiBTZXQgcGRfcHJ1bmVfeGlkIHRvIHRy aWdnZXIgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoKSBvbmNlIHRoZSBwYWdlCisJICogaXMg ZnVsbCBzbyB0aGF0IHdlIGNhbiBzZXQgdGhlIHBhZ2UgYWxsLXZpc2libGUgaW4gdGhlIFZNIG9u IHRoZSBuZXh0CisJICogcGFnZSBhY2Nlc3MuCiAJICoKLQkgKiBUaGUgaW5zZXJ0aW5nIHRyYW5z YWN0aW9uIG1heSBldmVudHVhbGx5IGFib3J0IHRodXMgbWFraW5nIHRoaXMgdHVwbGUKLQkgKiBE RUFEIGFuZCBoZW5jZSBhdmFpbGFibGUgZm9yIHBydW5pbmcuIFRob3VnaCB3ZSBkb24ndCB3YW50 IHRvIG9wdGltaXplCi0JICogZm9yIGFib3J0cywgaWYgbm8gb3RoZXIgdHVwbGUgaW4gdGhpcyBw YWdlIGlzIFVQREFURWQvREVMRVRFZCwgdGhlCi0JICogYWJvcnRlZCB0dXBsZSB3aWxsIG5ldmVy IGJlIHBydW5lZCB1bnRpbCBuZXh0IHZhY3V1bSBpcyB0cmlnZ2VyZWQuCisJICogU2V0dGluZyBw ZF9wcnVuZV94aWQgaXMgYWxzbyBoYW5keSBpZiB0aGUgaW5zZXJ0aW5nIHRyYW5zYWN0aW9uCisJ ICogZXZlbnR1YWxseSBhYm9ydHMgbWFraW5nIHRoaXMgdHVwbGUgREVBRCBhbmQgaGVuY2UgYXZh aWxhYmxlIGZvcgorCSAqIHBydW5pbmcuIElmIG5vIG90aGVyIHR1cGxlIGluIHRoaXMgcGFnZSBp cyBVUERBVEVkL0RFTEVURWQsIHRoZSBhYm9ydGVkCisJICogdHVwbGUgd291bGQgbmV2ZXIgb3Ro ZXJ3aXNlIGJlIHBydW5lZCB1bnRpbCBuZXh0IHZhY3V1bSBpcyB0cmlnZ2VyZWQuCiAJICoKLQkg KiBJZiB5b3UgZG8gYWRkIFBhZ2VTZXRQcnVuYWJsZSBoZXJlLCBhZGQgaXQgaW4gaGVhcF94bG9n X2luc2VydCB0b28uCisJICogRG9uJ3Qgc2V0IGl0IGlmIHdlIGFyZSBpbiBib290c3RyYXAgbW9k ZSBvciB3ZSBhcmUgaW5zZXJ0aW5nIGEgZnJvemVuCisJICogdHVwbGUsIGFzIHRoZXJlIGlzIG5v IGZ1cnRoZXIgcHJ1bmluZy9mcmVlemluZyBuZWVkZWQgaW4gdGhvc2UgY2FzZXMuCiAJICovCisJ aWYgKFRyYW5zYWN0aW9uSWRJc05vcm1hbCh4aWQpICYmICEob3B0aW9ucyAmIEhFQVBfSU5TRVJU X0ZST1pFTikpCisJCVBhZ2VTZXRQcnVuYWJsZShwYWdlLCB4aWQpOwogCiAJTWFya0J1ZmZlckRp cnR5KGJ1ZmZlcik7CiAKQEAgLTIyMzMsNyArMjI0MSw2IEBAIGhlYXBfaW5zZXJ0KFJlbGF0aW9u IHJlbGF0aW9uLCBIZWFwVHVwbGUgdHVwLCBDb21tYW5kSWQgY2lkLAogCQl4bF9oZWFwX2luc2Vy dCB4bHJlYzsKIAkJeGxfaGVhcF9oZWFkZXIgeGxoZHI7CiAJCVhMb2dSZWNQdHIJcmVjcHRyOwot CQlQYWdlCQlwYWdlID0gQnVmZmVyR2V0UGFnZShidWZmZXIpOwogCQl1aW50OAkJaW5mbyA9IFhM T0dfSEVBUF9JTlNFUlQ7CiAJCWludAkJCWJ1ZmZsYWdzID0gMDsKIApAQCAtMjU5OCw4ICsyNjA1 LDEyIEBAIGhlYXBfbXVsdGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBUdXBsZVRhYmxlU2xv dCAqKnNsb3RzLCBpbnQgbnR1cGxlcywKIAkJfQogCiAJCS8qCi0JCSAqIFhYWCBTaG91bGQgd2Ug c2V0IFBhZ2VTZXRQcnVuYWJsZSBvbiB0aGlzIHBhZ2UgPyBTZWUgaGVhcF9pbnNlcnQoKQorCQkg KiBTZXQgcGRfcHJ1bmVfeGlkLiBTZWUgaGVhcF9pbnNlcnQoKSBmb3IgbW9yZSBvbiB3aHkgd2Ug ZG8gdGhpcyB3aGVuCisJCSAqIGluc2VydGluZyB0dXBsZXMuIFRoaXMgb25seSBtYWtlcyBzZW5z ZSBpZiB3ZSBhcmVuJ3QgYWxyZWFkeQorCQkgKiBzZXR0aW5nIHRoZSBwYWdlIGZyb3plbiBpbiB0 aGUgVk0gYW5kIHdlJ3JlIG5vdCBpbiBib290c3RyYXAgbW9kZS4KIAkJICovCisJCWlmICghYWxs X2Zyb3plbl9zZXQgJiYgVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhpZCkpCisJCQlQYWdlU2V0UHJ1 bmFibGUocGFnZSwgeGlkKTsKIAogCQlNYXJrQnVmZmVyRGlydHkoYnVmZmVyKTsKIApAQCAtNDE0 MSwxMiArNDE1MiwxMiBAQCBsMjoKIAkgKiB0aGUgc3Vic2VxdWVudCBwYWdlIHBydW5pbmcgd2ls bCBiZSBhIG5vLW9wIGFuZCB0aGUgaGludCB3aWxsIGJlCiAJICogY2xlYXJlZC4KIAkgKgotCSAq IFhYWCBTaG91bGQgd2Ugc2V0IGhpbnQgb24gbmV3YnVmIGFzIHdlbGw/ICBJZiB0aGUgdHJhbnNh Y3Rpb24gYWJvcnRzLAotCSAqIHRoZXJlIHdvdWxkIGJlIGEgcHJ1bmFibGUgdHVwbGUgaW4gdGhl IG5ld2J1ZjsgYnV0IGZvciBub3cgd2UgY2hvb3NlCi0JICogbm90IHRvIG9wdGltaXplIGZvciBh Ym9ydHMuICBOb3RlIHRoYXQgaGVhcF94bG9nX3VwZGF0ZSBtdXN0IGJlIGtlcHQgaW4KLQkgKiBz eW5jIGlmIHRoaXMgZGVjaXNpb24gY2hhbmdlcy4KKwkgKiBXZSBzZXQgdGhlIG5ldyBwYWdlIHBy dW5hYmxlIGFzIHdlbGwuIFNlZSBoZWFwX2luc2VydCgpIGZvciBtb3JlIG9uIHdoeQorCSAqIHdl IGRvIHRoaXMgd2hlbiBpbnNlcnRpbmcgdHVwbGVzLgogCSAqLwogCVBhZ2VTZXRQcnVuYWJsZShw YWdlLCB4aWQpOworCWlmIChuZXdidWYgIT0gYnVmZmVyKQorCQlQYWdlU2V0UHJ1bmFibGUobmV3 cGFnZSwgeGlkKTsKIAogCWlmICh1c2VfaG90X3VwZGF0ZSkKIAl7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtX3hsb2cuYwppbmRleCAxMzAyYmIxM2UxOC4uZjNmNDE5ZDNkYzEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAtNDUwLDYgKzQ1MCwxNCBAQCBoZWFwX3hs b2dfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCWZyZWVzcGFjZSA9IFBhZ2VH ZXRIZWFwRnJlZVNwYWNlKHBhZ2UpOyAvKiBuZWVkZWQgdG8gdXBkYXRlIEZTTSBiZWxvdyAqLwog CisJCS8qCisJCSAqIFNldCB0aGUgcGFnZSBwcnVuYWJsZSB0byB0cmlnZ2VyIG9uLWFjY2VzcyBw cnVuaW5nIGxhdGVyLCB3aGljaCBtYXkKKwkJICogc2V0IHRoZSBwYWdlIGFsbC12aXNpYmxlIGlu IHRoZSBWTS4gU2VlIGNvbW1lbnRzIGluIGhlYXBfaW5zZXJ0KCkuCisJCSAqLworCQlpZiAoVHJh bnNhY3Rpb25JZElzTm9ybWFsKFhMb2dSZWNHZXRYaWQocmVjb3JkKSkgJiYKKwkJCSFIZWFwVHVw bGVIZWFkZXJYbWluRnJvemVuKGh0dXApKQorCQkJUGFnZVNldFBydW5hYmxlKHBhZ2UsIFhMb2dS ZWNHZXRYaWQocmVjb3JkKSk7CisKIAkJUGFnZVNldExTTihwYWdlLCBsc24pOwogCiAJCWlmICh4 bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFSRUQpCkBAIC01OTksMTIg KzYwNywxOSBAQCBoZWFwX3hsb2dfbXVsdGlfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3Jk KQogCQlpZiAoeGxyZWMtPmZsYWdzICYgWExIX0lOU0VSVF9BTExfVklTSUJMRV9DTEVBUkVEKQog CQkJUGFnZUNsZWFyQWxsVmlzaWJsZShwYWdlKTsKIAotCQkvKiBYTEhfSU5TRVJUX0FMTF9GUk9a RU5fU0VUIGltcGxpZXMgdGhhdCBhbGwgdHVwbGVzIGFyZSB2aXNpYmxlICovCisJCS8qCisJCSAq IFhMSF9JTlNFUlRfQUxMX0ZST1pFTl9TRVQgaW1wbGllcyB0aGF0IGFsbCB0dXBsZXMgYXJlIHZp c2libGUuIElmCisJCSAqIHdlIGFyZSBub3Qgc2V0dGluZyB0aGUgcGFnZSBmcm96ZW4sIHRoZW4g c2V0IHRoZSBwYWdlJ3MgcHJ1bmFibGUKKwkJICogaGludCBzbyB0aGF0IHdlIHRyaWdnZXIgb24t YWNjZXNzIHBydW5pbmcgbGF0ZXIgd2hpY2ggbWF5IHNldCB0aGUKKwkJICogcGFnZSBhbGwtdmlz aWJsZSBpbiB0aGUgVk0uCisJCSAqLwogCQlpZiAoeGxyZWMtPmZsYWdzICYgWExIX0lOU0VSVF9B TExfRlJPWkVOX1NFVCkKIAkJewogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CiAJCQlQYWdl Q2xlYXJQcnVuYWJsZShwYWdlKTsKIAkJfQorCQllbHNlCisJCQlQYWdlU2V0UHJ1bmFibGUocGFn ZSwgWExvZ1JlY0dldFhpZChyZWNvcmQpKTsKIAogCQlNYXJrQnVmZmVyRGlydHkoYnVmZmVyKTsK IAl9CkBAIC05MjEsNiArOTM2LDggQEAgaGVhcF94bG9nX3VwZGF0ZShYTG9nUmVhZGVyU3RhdGUg KnJlY29yZCwgYm9vbCBob3RfdXBkYXRlKQogCQlmcmVlc3BhY2UgPSBQYWdlR2V0SGVhcEZyZWVT cGFjZShucGFnZSk7CiAKIAkJUGFnZVNldExTTihucGFnZSwgbHNuKTsKKwkJLyogU2VlIGhlYXBf aW5zZXJ0KCkgZm9yIHdoeSB3ZSBzZXQgcGRfcHJ1bmVfeGlkIG9uIGluc2VydCAqLworCQlQYWdl U2V0UHJ1bmFibGUobnBhZ2UsIFhMb2dSZWNHZXRYaWQocmVjb3JkKSk7CiAJCU1hcmtCdWZmZXJE aXJ0eShuYnVmZmVyKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXgg ZDgzZmQyNmIyNzQuLmJiMzY0ZjUzYTQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAu YwpAQCAtMjc1LDcgKzI3NSw4IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRp b24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIsCiAJLyoKIAkgKiBGaXJzdCBjaGVj ayB3aGV0aGVyIHRoZXJlJ3MgYW55IGNoYW5jZSB0aGVyZSdzIHNvbWV0aGluZyB0byBwcnVuZSwK IAkgKiBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGUgaG9yaXpvbiBpcyBhIHdhc3RlIGlmIHRo ZXJlJ3Mgbm8gcHJ1bmVfeGlkCi0JICogKGkuZS4gbm8gdXBkYXRlcy9kZWxldGVzIGxlZnQgcG90 ZW50aWFsbHkgZGVhZCB0dXBsZXMgYXJvdW5kKS4KKwkgKiAoaS5lLiBubyB1cGRhdGVzL2RlbGV0 ZXMgbGVmdCBwb3RlbnRpYWxseSBkZWFkIHR1cGxlcyBhcm91bmQgYW5kIG5vCisJICogaW5zZXJ0 cyBpbnNlcnRlZCBuZXcgdHVwbGVzIHRoYXQgbWF5IGJlIHZpc2libGUgdG8gYWxsKS4KIAkgKi8K IAlwcnVuZV94aWQgPSBQYWdlR2V0UHJ1bmVYaWQocGFnZSk7CiAJaWYgKCFUcmFuc2FjdGlvbklk SXNWYWxpZChwcnVuZV94aWQpKQpAQCAtMTkxOCwxNyArMTkxOSwxNCBAQCBoZWFwX3BydW5lX3Jl Y29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJl ciBvZmZudW0pCiAJCQlwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUgPSBmYWxzZTsKIAkJCXByc3Rh dGUtPnNldF9hbGxfZnJvemVuID0gZmFsc2U7CiAKLQkJCS8qIFRoZSBwYWdlIHNob3VsZCBub3Qg YmUgbWFya2VkIGFsbC12aXNpYmxlICovCi0JCQlpZiAoUGFnZUlzQWxsVmlzaWJsZShwYWdlKSkK LQkJCQloZWFwX3BhZ2VfZml4X3ZtX2NvcnJ1cHRpb24ocHJzdGF0ZSwgb2ZmbnVtLAotCQkJCQkJ CQkJCQlWTV9DT1JSVVBUX1RVUExFX1ZJU0lCSUxJVFkpOwotCiAJCQkvKgotCQkJICogSWYgd2Ug d2FudGVkIHRvIG9wdGltaXplIGZvciBhYm9ydHMsIHdlIG1pZ2h0IGNvbnNpZGVyIG1hcmtpbmcK LQkJCSAqIHRoZSBwYWdlIHBydW5hYmxlIHdoZW4gd2Ugc2VlIElOU0VSVF9JTl9QUk9HUkVTUy4g IEJ1dCB3ZQotCQkJICogZG9uJ3QuICBTZWUgcmVsYXRlZCBkZWNpc2lvbnMgYWJvdXQgd2hlbiB0 byBtYXJrIHRoZSBwYWdlCi0JCQkgKiBwcnVuYWJsZSBpbiBoZWFwYW0uYy4KKwkJCSAqIFRob3Vn aCB0aGVyZSBpcyBub3RoaW5nICJwcnVuYWJsZSIgb24gdGhlIHBhZ2UsIHdlIG1haW50YWluCisJ CQkgKiBwZF9wcnVuZV94aWQgZm9yIGluc2VydHMgc28gdGhhdCB3ZSBoYXZlIHRoZSBvcHBvcnR1 bml0eSB0bworCQkJICogbWFyayB0aGVtIGFsbC12aXNpYmxlIGR1cmluZyB0aGUgbmV4dCByb3Vu ZCBvZiBwcnVuaW5nLgogCQkJICovCisJCQloZWFwX3BydW5lX3JlY29yZF9wcnVuYWJsZShwcnN0 YXRlLAorCQkJCQkJCQkJICAgSGVhcFR1cGxlSGVhZGVyR2V0WG1pbihodHVwKSwKKwkJCQkJCQkJ CSAgIG9mZm51bSk7CiAJCQlicmVhazsKIAogCQljYXNlIEhFQVBUVVBMRV9ERUxFVEVfSU5fUFJP R1JFU1M6Ci0tIAoyLjQzLjAKCg== --00000000000019c2d4064de16e7d--