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 1w3jPQ-001Um1-1Y for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Mar 2026 23:37:41 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w3jPN-008UKw-1D for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Mar 2026 23:37:37 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w3jPM-008UKo-0y for pgsql-hackers@lists.postgresql.org; Fri, 20 Mar 2026 23:37:37 +0000 Received: from mail-ed1-x534.google.com ([2a00:1450:4864:20::534]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w3jPA-00000000FB8-3dsu for pgsql-hackers@lists.postgresql.org; Fri, 20 Mar 2026 23:37:35 +0000 Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-669462b0fecso767433a12.3 for ; Fri, 20 Mar 2026 16:37:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774049842; cv=none; d=google.com; s=arc-20240605; b=PWMuptGCYqzc7PGAzQvRzgatYT11EY5hE3sRKLuGA3iWyqvpCqmX8IU5KY4BA1mLaw 9VLNqUR4hNaQX2v3uw2DBQsUc9Xy1lkO8pjz5XbRpEqTTuucDxSUhAkhY1/DK+LHtkTT rn/kwg/Fdk2TT0QvoYBGBBw+TqT97noEEf85yUDTXR7LnpKMttRxVYLs6qf5aHBpe6ke yxSzivn7Ce9OcuEV89sySz11b/LNYTVcV215Kr40OTDVbuC92VlWFiS+qxqf3SJafV7U l9HDFBh4H/oQUh+oxGpNjCymqFb/gOyhbyu/P0RJpHnwfNq8jqlBasNeLgj92qbNDUkA fYmQ== 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=KHL8hdyZmB9+dXMgCdazhzt0+g0u6C9DKtjM/+1WUIw=; fh=yuQjueXn/CCGnMaUFS0TuhuBnLFgVMNdHXU91nFDWVM=; b=iX/h4UKtfAQ4ir3CG9ADdn2FT3CJBKHIR9KM0islESYm1X51hFkyRwevCc9ZDLnOFZ swSlmsDOVqXWRWWdu0fVVa0sV1PnqvbtMqTMjo87fJWFO27uanibeD+eeXr2tpOLepEh c/9vRW7ulxIJ1/ahzvHNZ6SzzMUMNorPJmpL77BwIKmpP/v3ryJ3xzfnRAQwd+8eNEqx Bg3jbTHfBSw3osY5LtsYqv/bokO9PoxnsDlJnSdn7JLXQKpEfH/nwR5gBzAXvMjfaXHm o0kg0Q47CKVIywaTr/OVwKZRecgLFuLv0TZPFn/DU5leWlDMu1zLBaboD4HBnFkrWvj3 +kDw==; 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=20230601; t=1774049842; x=1774654642; 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=KHL8hdyZmB9+dXMgCdazhzt0+g0u6C9DKtjM/+1WUIw=; b=RwXzw/WgDcsRmGaRdr9ilQW2RxVVtIyGd92C+v5PjH1py/LxZcYgZuZZbegoaivg70 SJi7iohNpcDPWYqKl86Cq6FfzMmBdWh+dl9whmWtmXo81WgdyY16rubU3xE0bHJvp+WM HN2wZNcgO6q9R06NBx5xiRb8xaLRL4vNMnZbk8E0Ef8xZdkpsco1aoMtNpsyWZhjSG16 TktkA8hUkX92s/ko0QvY3yAajkYCwXCR063IyYXJSOgiR70k1+oVOj4lWRWVNL+WDB6D 2VAl5sNrQgqvR1TcGdYd63/E3eVHQyjEYkp+SefjQmTkdLZHDE5+RPjQywxiFIWFeL7e GMxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774049842; x=1774654642; 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=KHL8hdyZmB9+dXMgCdazhzt0+g0u6C9DKtjM/+1WUIw=; b=WO+cICKspzQQIK0HuRE7qIx/oo5gY1THVJYnANin2zu/hJirKidRBcVwPeUUO2Db/Y 5cders6VSGzeChb7PgHWYx/xLpherxnGcYtUyGPXRaa0eG9IGJHPc8uDN0CkmQDBxIYO jFqiyFysXt2Mv56adcuN9C3/brPUKxNkfHBAODamhmuMPbpJfWcMhgbhcgkobldFC7Oj BLhmRUzm99xO4Fm6P8wo4zcCC6Kf2S8WfsF35VVQph4XugvtCOUaPULG8JIUq7H2qyZR S5JWOnlmQNeTah9Zwi9SVZeQsztNPLslXRwHQywPmYRjxEV2ZaJwljSG3Vf3bEgqm0o8 RvRQ== X-Forwarded-Encrypted: i=1; AJvYcCUrQGuPtLUP9IlJ/a4WtxtNQ1SfAsG/mh6P2BxFI8jBuQZ2a9RGY46/WHjNH0oHb0CMODelG7EkhB3r6Iv+@lists.postgresql.org X-Gm-Message-State: AOJu0Ywd6hMSiLdcfqW2HHHMacoFdWt07Nj84WxJCRvyTzLyWxauf5w3 voD2L/16HBgH1gJiLGr4cgoe57g/0DltE6KSr//2ZxIiSYtzNS9vxuDWd5ztMzsiWo9egr6pwTh HRXEYwBgsCEIx/8lPXjFcayQKWM3pHHQ= X-Gm-Gg: ATEYQzyAmJ02UTeZmhfM7Pvj0I4S8D7w14oTBkCg0hNa9GGL57Q+Rcb4sV47EUJSeis SMTQpG6+FSUgh4qEwrkZsxYT+uabcdijRTrG8FyF4KtlIsAfzmEvDFlXYzX28S505hiovKwVFEm h9kQO4XLsqu9AvcSJ3qcJlbKaa8lIkslyE54AsHgYi//gzOxwWDWHuIssf7QmvO6zxeD5UFNsxg xDsM3S4x/hnPpZzteZBQVJnIp/zzaxjEz9l/daxpBtE08zmDHm8VwdwUC3JzqvOOyjCMxKTjeuh AP+iJLrE19J4gMu65KGRHZubsVQGQr196XJVst85MT4ObQixuyGFe4HF8R/CABzoPxPUHNpWlR4 AfURiI6Ze X-Received: by 2002:a05:6402:1d4b:b0:667:9531:d1d7 with SMTP id 4fb4d7f45d1cf-668c8efebd0mr3920356a12.1.1774049841744; Fri, 20 Mar 2026 16:37:21 -0700 (PDT) MIME-Version: 1.0 References: <81DAFACF-7D55-4A84-ACB0-0425D1669DB4@gmail.com> In-Reply-To: From: Melanie Plageman Date: Fri, 20 Mar 2026 19:37:08 -0400 X-Gm-Features: AaiRm50duVB3b9_u5fQYsNRNba3ZPmlsureK0yaKB4u9usNizYvgMlLed3hTS98 Message-ID: Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) To: Andres Freund Cc: Kirill Reshke , Chao Li , Andrey Borodin , Xuneng Zhou , Robert Haas , PostgreSQL Hackers , Heikki Linnakangas Content-Type: multipart/mixed; boundary="000000000000a1e2a7064d7d2a75" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000a1e2a7064d7d2a75 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Mar 19, 2026 at 10:38=E2=80=AFPM Melanie Plageman wrote: > > Thanks for the detailed review! Unless otherwise specified, attached > v41 includes all of your straightforward review points. I've made several minor updates and two notable updates in attached v42: - no separate log_newpage_buffer() for empty page vacuum. log_heap_prune_and_freeze() now handles pages without a valid LSN on its own - the heap_page_is_all_visible() assertion should be stable even once it uses GlobalVisState because I've updated the GloablVisState functions to avoid updating the GlobalVisState boundaries in this case - Melanie --000000000000a1e2a7064d7d2a75 Content-Type: text/x-patch; charset="US-ASCII"; name="v42-0001-Fix-visibility-map-corruption-in-more-cases.patch" Content-Disposition: attachment; filename="v42-0001-Fix-visibility-map-corruption-in-more-cases.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmzjd5980 RnJvbSA4NjZkNzI1N2E3MDI0YTAxOGQxYzM5YjA5YzAwMjZiZWEzNzRmOGY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI1IEZlYiAyMDI2IDE2OjIzOjA5IC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDIgMDEvMTJdIEZpeCB2aXNpYmlsaXR5IG1hcCBjb3JydXB0aW9uIGluIG1vcmUgY2Fz ZXMKCk1vdmUgVk0gY29ycnVwdGlvbiBkZXRlY3Rpb24gYW5kIHJlcGFpciBpbnRvIHBydW5pbmcu IFRoaXMgYWxsb3dzIFZNCnJlcGFpciBkdXJpbmcgb24tYWNjZXNzIHBydW5pbmcsIG5vdCBvbmx5 IGR1cmluZyB2YWN1dW0uCgpBbHNvLCBleHBhbmQgY29ycnVwdGlvbiBkZXRlY3Rpb24gdG8gY292 ZXIgcGFnZXMgbWFya2VkIGFsbC12aXNpYmxlIHRoYXQKY29udGFpbiBkZWFkIHR1cGxlcyBhbmQg dHVwbGVzIGluc2VydGVkIG9yIHVwZGF0ZWQgYnkgaW4tcHJvZ3Jlc3MKdHJhbnNhY3Rpb25zLCBy YXRoZXIgdGhhbiBvbmx5IGFsbC12aXNpYmxlIHBhZ2VzIHdpdGggTFBfREVBRCBpdGVtcy4KClBp bm5pbmcgdGhlIGNvcnJlY3QgVk0gcGFnZSBiZWZvcmUgb24tYWNjZXNzIHBydW5pbmcgaXMgY2hl YXAgd2hlbgpjb21wYXJlZCB0byB0aGUgY29zdCBvZiBhY3R1YWxseSBwcnVuaW5nLiBUaGUgdm1i dWZmZXIgaXMgc2F2ZWQgaW4gdGhlCnNjYW4gZGVzY3JpcHRvciwgc28gYSBxdWVyeSBzaG91bGQg b25seSBuZWVkIHRvIHBpbiBlYWNoIFZNIHBhZ2Ugb25jZQphbmQgYSBzaW5nbGUgVk0gcGFnZSBj b3ZlcnMgYSBsYXJnZSBudW1iZXIgb2YgaGVhcCBwYWdlcy4KCkF1dGhvcjogTWVsYW5pZSBQbGFn ZW1hbiA8bWVsYW5pZXBsYWdlbWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJlcyBGcmV1 bmQgPGFuZHJlc0BhbmFyYXplbC5kZT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hh b0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBLaXJpbGwgUmVzaGtlIDxyZXNoa2VraXJpbGxAZ21h aWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL2JxYzRraDVtaWRmbjQ0Z25q aXFlejNianF2NHpvZ3lkZ3V2ZG40NDZyaXc0NWpjZjN5JTQwNGV6NjZpbDdlYnZrCi0tLQogc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgIHwgMjE3ICsrKysrKysrKysrKysrKysr KysrKysrKystLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIHwgIDg5ICst LS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAgfCAgMTIgKysK IHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICB8ICAgMSArCiA0IGZpbGVzIGNo YW5nZWQsIDIxNyBpbnNlcnRpb25zKCspLCAxMDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYwppbmRleCA4ZDlmMDY5NDIwNi4uYmUzYWUyMWY5NGMgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBAIC0xOSw3ICsxOSw3IEBACiAjaW5jbHVkZSAiYWNj ZXNzL2h0dXBfZGV0YWlscy5oIgogI2luY2x1ZGUgImFjY2Vzcy9tdWx0aXhhY3QuaCIKICNpbmNs dWRlICJhY2Nlc3MvdHJhbnNhbS5oIgotI2luY2x1ZGUgImFjY2Vzcy92aXNpYmlsaXR5bWFwZGVm cy5oIgorI2luY2x1ZGUgImFjY2Vzcy92aXNpYmlsaXR5bWFwLmgiCiAjaW5jbHVkZSAiYWNjZXNz L3hsb2cuaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZ2luc2VydC5oIgogI2luY2x1ZGUgImNvbW1h bmRzL3ZhY3V1bS5oIgpAQCAtMTE0LDYgKzExNCwyMSBAQCB0eXBlZGVmIHN0cnVjdAogCSAqLwog CUhlYXBQYWdlRnJlZXplIHBhZ2Vmcno7CiAKKwkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkgKiBXb3JraW5nIHN0YXRlIGZvciB2aXNp YmlsaXR5IG1hcCBwcm9jZXNzaW5nCisJICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJICovCisKKwkvKgorCSAqIENhbGxlciBtdXN0IHBy b3ZpZGUgYSBwaW5uZWQgdm1idWZmZXIgY29ycmVzcG9uZGluZyB0byB0aGUgaGVhcCBibG9jawor CSAqIHBhc3NlZCB0byBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpLiBXZSB3aWxsIGZpeCBh bnkgY29ycnVwdGlvbgorCSAqIGZvdW5kIGluIHRoZSBWTS4KKwkgKi8KKwlCdWZmZXIJCXZtYnVm ZmVyOworCisJLyogQml0cyBpbiB0aGUgdm1idWZmZXIgZm9yIHRoaXMgaGVhcCBwYWdlICovCisJ dWludDgJCW9sZF92bWJpdHM7CisKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAkgKiBJbmZvcm1hdGlvbiBhYm91dCB3aGF0IHdhcyBk b25lCiAJICoKQEAgLTE2MiwxMiArMTc3LDMwIEBAIHR5cGVkZWYgc3RydWN0CiAJVHJhbnNhY3Rp b25JZCB2aXNpYmlsaXR5X2N1dG9mZl94aWQ7CiB9IFBydW5lU3RhdGU7CiAKKworLyoKKyAqIFR5 cGUgb2YgdmlzaWJpbGl0eSBtYXAgY29ycnVwdGlvbiBkZXRlY3RlZCBvbiBhIGhlYXAgcGFnZS4g UGFzc2VkIHRvCisgKiBoZWFwX3BhZ2VfZml4X3ZtX2NvcnJ1cHRpb24oKSBzbyB0aGUgY2FsbGVy IGNhbiBzcGVjaWZ5IHdoYXQgaXQgZm91bmQKKyAqIHJhdGhlciB0aGFuIGhhdmluZyB0aGUgZnVu Y3Rpb24gcmVkZXJpdmUgdGhlIGNvcnJ1cHRpb24gZnJvbSBwYWdlIHN0YXRlLgorICovCit0eXBl ZGVmIGVudW0gVk1Db3JydXB0aW9uVHlwZQoreworCS8qIFZNIGJpdHMgYXJlIHNldCBidXQgdGhl IHBhZ2UtbGV2ZWwgUERfQUxMX1ZJU0lCTEUgZmxhZyBpcyBub3QgKi8KKwlWTV9DT1JSVVBUX01J U1NJTkdfUEFHRV9ISU5ULAorCS8qIExQX0RFQUQgbGluZSBwb2ludGVycyBmb3VuZCBvbiBhIHBh Z2UgbWFya2VkIGFsbC12aXNpYmxlICovCisJVk1fQ09SUlVQVF9MUERFQUQsCisJLyogVHVwbGUg bm90IHZpc2libGUgdG8gYWxsIHRyYW5zYWN0aW9ucyBvbiBhIHBhZ2UgbWFya2VkIGFsbC12aXNp YmxlICovCisJVk1fQ09SUlVQVF9UVVBMRV9WSVNJQklMSVRZLAorfSBWTUNvcnJ1cHRpb25UeXBl OworCiAvKiBMb2NhbCBmdW5jdGlvbnMgKi8KIHN0YXRpYyB2b2lkIHBydW5lX2ZyZWV6ZV9zZXR1 cChQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgKm5l d19yZWxmcm96ZW5feGlkLAogCQkJCQkJCSAgIE11bHRpWGFjdElkICpuZXdfcmVsbWluX214aWQs CiAJCQkJCQkJICAgUHJ1bmVGcmVlemVSZXN1bHQgKnByZXN1bHQsCiAJCQkJCQkJICAgUHJ1bmVT dGF0ZSAqcHJzdGF0ZSk7CitzdGF0aWMgdm9pZCBoZWFwX3BhZ2VfZml4X3ZtX2NvcnJ1cHRpb24o UHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyIG9mZm51bSwKKwkJCQkJCQkJCQlWTUNv cnJ1cHRpb25UeXBlIGN0eXBlKTsKIHN0YXRpYyB2b2lkIHBydW5lX2ZyZWV6ZV9wbGFuKFBydW5l U3RhdGUgKnByc3RhdGUsCiAJCQkJCQkJICBPZmZzZXROdW1iZXIgKm9mZl9sb2MpOwogc3RhdGlj IEhUU1ZfUmVzdWx0IGhlYXBfcHJ1bmVfc2F0aXNmaWVzX3ZhY3V1bShQcnVuZVN0YXRlICpwcnN0 YXRlLApAQCAtMTc1LDcgKzIwOCw4IEBAIHN0YXRpYyBIVFNWX1Jlc3VsdCBoZWFwX3BydW5lX3Nh dGlzZmllc192YWN1dW0oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwKIHN0YXRpYyBpbmxpbmUgSFRTVl9S ZXN1bHQgaHRzdl9nZXRfdmFsaWRfc3RhdHVzKGludCBzdGF0dXMpOwogc3RhdGljIHZvaWQgaGVh cF9wcnVuZV9jaGFpbihPZmZzZXROdW1iZXIgbWF4b2ZmLAogCQkJCQkJCSBPZmZzZXROdW1iZXIg cm9vdG9mZm51bSwgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSk7Ci1zdGF0aWMgdm9pZCBoZWFwX3BydW5l X3JlY29yZF9wcnVuYWJsZShQcnVuZVN0YXRlICpwcnN0YXRlLCBUcmFuc2FjdGlvbklkIHhpZCk7 CitzdGF0aWMgdm9pZCBoZWFwX3BydW5lX3JlY29yZF9wcnVuYWJsZShQcnVuZVN0YXRlICpwcnN0 YXRlLCBUcmFuc2FjdGlvbklkIHhpZCwKKwkJCQkJCQkJCSAgIE9mZnNldE51bWJlciBvZmZudW0p Owogc3RhdGljIHZvaWQgaGVhcF9wcnVuZV9yZWNvcmRfcmVkaXJlY3QoUHJ1bmVTdGF0ZSAqcHJz dGF0ZSwKIAkJCQkJCQkJCSAgIE9mZnNldE51bWJlciBvZmZudW0sIE9mZnNldE51bWJlciByZG9m Zm51bSwKIAkJCQkJCQkJCSAgIGJvb2wgd2FzX25vcm1hbCk7CkBAIC0yMDksOCArMjQzLDkgQEAg c3RhdGljIGJvb2wgaGVhcF9wYWdlX3dpbGxfZnJlZXplKGJvb2wgZGlkX3R1cGxlX2hpbnRfZnBp LCBib29sIGRvX3BydW5lLCBib29sIGQKICAqIENhbGxlciBtdXN0IGhhdmUgcGluIG9uIHRoZSBi dWZmZXIsIGFuZCBtdXN0ICpub3QqIGhhdmUgYSBsb2NrIG9uIGl0LgogICoKICAqIFRoaXMgZnVu Y3Rpb24gbWF5IHBpbiAqdm1idWZmZXIuIEl0J3MgcGFzc2VkIGJ5IHJlZmVyZW5jZSBzbyB0aGUg Y2FsbGVyIGNhbgotICogcmV1c2UgdGhlIHBpbiBhY3Jvc3MgY2FsbHMsIGF2b2lkaW5nIHJlcGVh dGVkIHBpbi91bnBpbiBjeWNsZXMuIENhbGxlciBpcwotICogcmVzcG9uc2libGUgZm9yIHVucGlu bmluZyBpdC4KKyAqIHJldXNlIHRoZSBwaW4gYWNyb3NzIGNhbGxzLCBhdm9pZGluZyByZXBlYXRl ZCBwaW4vdW5waW4gY3ljbGVzLiBJZiB3ZSBmaW5kCisgKiBWTSBjb3JydXB0aW9uIGR1cmluZyBw cnVuaW5nLCB3ZSB3aWxsIGZpeCBpdC4gQ2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvcgorICogdW5w aW5uaW5nICp2bWJ1ZmZlci4KICAqLwogdm9pZAogaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlv biByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwgQnVmZmVyICp2bWJ1ZmZlcikKQEAgLTI3Nyw2ICsz MTIsMTYgQEAgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1 ZmZlciwgQnVmZmVyICp2bWJ1ZmZlcikKIAkJewogCQkJT2Zmc2V0TnVtYmVyIGR1bW15X29mZl9s b2M7CiAJCQlQcnVuZUZyZWV6ZVJlc3VsdCBwcmVzdWx0OworCQkJUHJ1bmVGcmVlemVQYXJhbXMg cGFyYW1zOworCisJCQl2aXNpYmlsaXR5bWFwX3BpbihyZWxhdGlvbiwgQnVmZmVyR2V0QmxvY2tO dW1iZXIoYnVmZmVyKSwgdm1idWZmZXIpOworCisJCQlwYXJhbXMucmVsYXRpb24gPSByZWxhdGlv bjsKKwkJCXBhcmFtcy5idWZmZXIgPSBidWZmZXI7CisJCQlwYXJhbXMudm1idWZmZXIgPSAqdm1i dWZmZXI7CisJCQlwYXJhbXMucmVhc29uID0gUFJVTkVfT05fQUNDRVNTOworCQkJcGFyYW1zLnZp c3Rlc3QgPSB2aXN0ZXN0OworCQkJcGFyYW1zLmN1dG9mZnMgPSBOVUxMOwogCiAJCQkvKgogCQkJ ICogV2UgZG9uJ3QgcGFzcyB0aGUgSEVBUF9QQUdFX1BSVU5FX01BUktfVU5VU0VEX05PVyBvcHRp b24KQEAgLTI4NCwxNCArMzI5LDcgQEAgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxh dGlvbiwgQnVmZmVyIGJ1ZmZlciwgQnVmZmVyICp2bWJ1ZmZlcikKIAkJCSAqIGNhbm5vdCBzYWZl bHkgZGV0ZXJtaW5lIHRoYXQgZHVyaW5nIG9uLWFjY2VzcyBwcnVuaW5nIHdpdGggdGhlCiAJCQkg KiBjdXJyZW50IGltcGxlbWVudGF0aW9uLgogCQkJICovCi0JCQlQcnVuZUZyZWV6ZVBhcmFtcyBw YXJhbXMgPSB7Ci0JCQkJLnJlbGF0aW9uID0gcmVsYXRpb24sCi0JCQkJLmJ1ZmZlciA9IGJ1ZmZl ciwKLQkJCQkucmVhc29uID0gUFJVTkVfT05fQUNDRVNTLAotCQkJCS5vcHRpb25zID0gMCwKLQkJ CQkudmlzdGVzdCA9IHZpc3Rlc3QsCi0JCQkJLmN1dG9mZnMgPSBOVUxMLAotCQkJfTsKKwkJCXBh cmFtcy5vcHRpb25zID0gMDsKIAogCQkJaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoJnBhcmFt cywgJnByZXN1bHQsICZkdW1teV9vZmZfbG9jLAogCQkJCQkJCQkJICAgTlVMTCwgTlVMTCk7CkBA IC0zNTQsNiArMzkyLDEyIEBAIHBydW5lX2ZyZWV6ZV9zZXR1cChQcnVuZUZyZWV6ZVBhcmFtcyAq cGFyYW1zLAogCXByc3RhdGUtPmJ1ZmZlciA9IHBhcmFtcy0+YnVmZmVyOwogCXByc3RhdGUtPnBh Z2UgPSBCdWZmZXJHZXRQYWdlKHBhcmFtcy0+YnVmZmVyKTsKIAorCUFzc2VydChCdWZmZXJJc1Zh bGlkKHBhcmFtcy0+dm1idWZmZXIpKTsKKwlwcnN0YXRlLT52bWJ1ZmZlciA9IHBhcmFtcy0+dm1i dWZmZXI7CisJcHJzdGF0ZS0+b2xkX3ZtYml0cyA9IHZpc2liaWxpdHltYXBfZ2V0X3N0YXR1cyhw cnN0YXRlLT5yZWxhdGlvbiwKKwkJCQkJCQkJCQkJCSAgIHByc3RhdGUtPmJsb2NrLAorCQkJCQkJ CQkJCQkJICAgJnByc3RhdGUtPnZtYnVmZmVyKTsKKwogCS8qCiAJICogT3VyIHN0cmF0ZWd5IGlz IHRvIHNjYW4gdGhlIHBhZ2UgYW5kIG1ha2UgbGlzdHMgb2YgaXRlbXMgdG8gY2hhbmdlLAogCSAq IHRoZW4gYXBwbHkgdGhlIGNoYW5nZXMgd2l0aGluIGEgY3JpdGljYWwgc2VjdGlvbi4gIFRoaXMg a2VlcHMgYXMgbXVjaApAQCAtNzcwLDYgKzgxNCwxMDYgQEAgaGVhcF9wYWdlX3dpbGxfZnJlZXpl KGJvb2wgZGlkX3R1cGxlX2hpbnRfZnBpLAogCXJldHVybiBkb19mcmVlemU7CiB9CiAKKy8qCisg KiBFbWl0IGEgd2FybmluZyBhYm91dCBhbmQgZml4IHZpc2liaWxpdHkgbWFwIGNvcnJ1cHRpb24g b24gdGhlIGdpdmVuIHBhZ2UuCisgKgorICogVGhlIGNhbGxlciBzcGVjaWZpZXMgdGhlIHR5cGUg b2YgY29ycnVwdGlvbiBpdCBoYXMgYWxyZWFkeSBkZXRlY3RlZCB2aWEKKyAqIGNvcnJ1cHRpb25f dHlwZSwgc28gdGhhdCB3ZSBjYW4gZW1pdCB0aGUgYXBwcm9wcmlhdGUgd2FybmluZy4gQWxsIGNh c2VzCisgKiByZXN1bHQgaW4gdGhlIFZNIGJpdHMgYmVpbmcgY2xlYXJlZDsgcGFnZS1sZXZlbCBj b3JydXB0aW9uIHR5cGVzIGFsc28gY2xlYXIKKyAqIFBEX0FMTF9WSVNJQkxFLgorICoKKyAqIE11 c3QgYmUgY2FsbGVkIHdoaWxlIGhvbGRpbmcgYW4gZXhjbHVzaXZlIGxvY2sgb24gdGhlIGhlYXAg YnVmZmVyLiBEZWFkCisgKiBpdGVtcyBtdXN0IGhhdmUgYmVlbiBkaXNjb3ZlcmVkIHVuZGVyIHRo YXQgc2FtZSBsb2NrLiBBbHRob3VnaCB3ZSBkbyBub3QKKyAqIGhvbGQgYSBsb2NrIG9uIHRoZSBW TSBidWZmZXIsIGl0IGlzIHBpbm5lZCwgYW5kIHRoZSBoZWFwIGJ1ZmZlciBpcworICogZXhjbHVz aXZlbHkgbG9ja2VkLCBlbnN1cmluZyB0aGF0IG5vIG90aGVyIGJhY2tlbmQgY2FuIHVwZGF0ZSB0 aGUgVk0gYml0cworICogY29ycmVzcG9uZGluZyB0byB0aGlzIGhlYXAgcGFnZS4KKyAqCisgKiBU aGlzIGZ1bmN0aW9uIG1ha2VzIGNoYW5nZXMgdG8gdGhlIFZNIGFuZCwgcG90ZW50aWFsbHksIHRo ZSBoZWFwIHBhZ2UsIGJ1dAorICogaXQgZG9lcyBub3QgbmVlZCB0byBiZSBkb25lIGluIGEgY3Jp dGljYWwgc2VjdGlvbi4KKyAqLworc3RhdGljIHZvaWQKK2hlYXBfcGFnZV9maXhfdm1fY29ycnVw dGlvbihQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtLAorCQkJCQkJCVZN Q29ycnVwdGlvblR5cGUgY29ycnVwdGlvbl90eXBlKQoreworCWNvbnN0IGNoYXIgKnJlbG5hbWUg PSBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShwcnN0YXRlLT5yZWxhdGlvbik7CisJYm9vbAkJY2xl YXJfdm0gPSBmYWxzZTsKKwlib29sCQljbGVhcl9oZWFwID0gZmFsc2U7CisKKwlBc3NlcnQoQnVm ZmVySXNMb2NrZWRCeU1lSW5Nb2RlKHByc3RhdGUtPmJ1ZmZlciwgQlVGRkVSX0xPQ0tfRVhDTFVT SVZFKSk7CisKKwlzd2l0Y2ggKGNvcnJ1cHRpb25fdHlwZSkKKwl7CisJCWNhc2UgVk1fQ09SUlVQ VF9MUERFQUQ6CisJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfREFU QV9DT1JSVVBURUQpLAorCQkJCQkgZXJybXNnKCJkZWFkIGxpbmUgcG9pbnRlciBmb3VuZCBvbiBw YWdlIG1hcmtlZCBhbGwtdmlzaWJsZSIpLAorCQkJCQkgZXJyY29udGV4dCgicmVsYXRpb24gXCIl c1wiLCBwYWdlICV1LCB0dXBsZSAldSIsCisJCQkJCQkJCXJlbG5hbWUsIHByc3RhdGUtPmJsb2Nr LCBvZmZudW0pKSk7CisJCQljbGVhcl92bSA9IHRydWU7CisJCQlicmVhazsKKworCQljYXNlIFZN X0NPUlJVUFRfVFVQTEVfVklTSUJJTElUWToKKworCQkJLyoKKwkJCSAqIEEgSEVBUFRVUExFX0xJ VkUgdHVwbGUgb24gYW4gYWxsLXZpc2libGUgcGFnZSBjYW4gYXBwZWFyIHRvIG5vdAorCQkJICog YmUgdmlzaWJsZSB0byBldmVyeW9uZSB3aGVuCisJCQkgKiBHZXRPbGRlc3ROb25SZW1vdmFibGVU cmFuc2FjdGlvbklkKCkgcmV0dXJucyBhIGNvbnNlcnZhdGl2ZQorCQkJICogdmFsdWUgdGhhdCdz IG9sZGVyIHRoYW4gdGhlIHJlYWwgc2FmZSB4bWluLiBUaGF0IGlzIG5vdAorCQkJICogY29ycnVw dGlvbiAtLSB0aGUgUERfQUxMX1ZJU0lCTEUgZmxhZyBpcyBzdGlsbCBjb3JyZWN0LgorCQkJICoK KwkJCSAqIEhvd2V2ZXIsIGRlYWQgdHVwbGUgdmVyc2lvbnMsIGluLXByb2dyZXNzIGluc2VydHMs IGFuZAorCQkJICogaW4tcHJvZ3Jlc3MgZGVsZXRlcyBzaG91bGQgbmV2ZXIgYXBwZWFyIG9uIGEg cGFnZSBtYXJrZWQKKwkJCSAqIGFsbC12aXNpYmxlLiBUaGF0IGluZGljYXRlcyByZWFsIGNvcnJ1 cHRpb24uIFBEX0FMTF9WSVNJQkxFCisJCQkgKiBzaG91bGQgaGF2ZSBiZWVuIGNsZWFyZWQgYnkg dGhlIERNTCBvcGVyYXRpb24gdGhhdCBkZWxldGVkIG9yCisJCQkgKiBpbnNlcnRlZCB0aGUgdHVw bGUuCisJCQkgKi8KKwkJCWVyZXBvcnQoV0FSTklORywKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9E QVRBX0NPUlJVUFRFRCksCisJCQkJCSBlcnJtc2coInR1cGxlIG5vdCB2aXNpYmxlIHRvIGFsbCB0 cmFuc2FjdGlvbnMgZm91bmQgb24gcGFnZSBtYXJrZWQgYWxsLXZpc2libGUiKSwKKwkJCQkJIGVy cmNvbnRleHQoInJlbGF0aW9uIFwiJXNcIiwgcGFnZSAldSwgdHVwbGUgJXUiLAorCQkJCQkJCQly ZWxuYW1lLCBwcnN0YXRlLT5ibG9jaywgb2ZmbnVtKSkpOworCQkJY2xlYXJfdm0gPSB0cnVlOwor CQkJYnJlYWs7CisKKwkJY2FzZSBWTV9DT1JSVVBUX01JU1NJTkdfUEFHRV9ISU5UOgorCisJCQkv KgorCQkJICogQXMgb2YgUG9zdGdyZVNRTCA5LjIsIHRoZSB2aXNpYmlsaXR5IG1hcCBiaXQgc2hv dWxkIG5ldmVyIGJlCisJCQkgKiBzZXQgaWYgdGhlIHBhZ2UtbGV2ZWwgYml0IGlzIGNsZWFyLiBI b3dldmVyLCBmb3IgdmFjdXVtLCBpdCdzCisJCQkgKiBwb3NzaWJsZSB0aGF0IHRoZSBiaXQgZ290 IGNsZWFyZWQgYWZ0ZXIKKwkJCSAqIGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpIHdhcyBjYWxs ZWQsIHNvIHdlIG11c3QgcmVjaGVjayBub3cKKwkJCSAqIHRoYXQgd2UgaGF2ZSB0aGUgYnVmZmVy IGxvY2sgYmVmb3JlIGNvbmNsdWRpbmcgdGhhdCB0aGUgVk0gaXMKKwkJCSAqIGNvcnJ1cHQuCisJ CQkgKi8KKwkJCUFzc2VydCghUGFnZUlzQWxsVmlzaWJsZShwcnN0YXRlLT5wYWdlKSk7CisJCQlB c3NlcnQocHJzdGF0ZS0+b2xkX3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyk7CisJ CQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBURUQp LAorCQkJCQkgZXJybXNnKCJwYWdlIGlzIG5vdCBtYXJrZWQgYWxsLXZpc2libGUgYnV0IHZpc2li aWxpdHkgbWFwIGJpdCBpcyBzZXQiKSwKKwkJCQkJIGVycmNvbnRleHQoInJlbGF0aW9uIFwiJXNc IiwgcGFnZSAldSIsCisJCQkJCQkJCXJlbG5hbWUsIHByc3RhdGUtPmJsb2NrKSkpOworCQkJY2xl YXJfdm0gPSB0cnVlOworCQkJY2xlYXJfaGVhcCA9IHRydWU7CisJCQlicmVhazsKKwl9CisKKwlB c3NlcnQoY2xlYXJfaGVhcCB8fCBjbGVhcl92bSk7CisKKwkvKiBBdm9pZCBtYXJraW5nIHRoZSBi dWZmZXIgZGlydHkgaWYgUERfQUxMX1ZJU0lCTEUgaXMgYWxyZWFkeSBjbGVhciAqLworCWlmIChj bGVhcl9oZWFwKQorCXsKKwkJQXNzZXJ0KFBhZ2VJc0FsbFZpc2libGUocHJzdGF0ZS0+cGFnZSkp OworCQlQYWdlQ2xlYXJBbGxWaXNpYmxlKHByc3RhdGUtPnBhZ2UpOworCQlNYXJrQnVmZmVyRGly dHlIaW50KHByc3RhdGUtPmJ1ZmZlciwgdHJ1ZSk7CisJfQorCisJaWYgKGNsZWFyX3ZtKQorCXsK KwkJdmlzaWJpbGl0eW1hcF9jbGVhcihwcnN0YXRlLT5yZWxhdGlvbiwgcHJzdGF0ZS0+YmxvY2ss IHByc3RhdGUtPnZtYnVmZmVyLAorCQkJCQkJCVZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyk7CisJ CXByc3RhdGUtPm9sZF92bWJpdHMgPSAwOworCX0KK30KIAogLyoKICAqIFBydW5lIGFuZCByZXBh aXIgZnJhZ21lbnRhdGlvbiBhbmQgcG90ZW50aWFsbHkgZnJlZXplIHR1cGxlcyBvbiB0aGUKQEAg LTgzMCw2ICs5NzQsMTYgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQ YXJhbXMgKnBhcmFtcywKIAkJCQkJICAgbmV3X3JlbGZyb3plbl94aWQsIG5ld19yZWxtaW5fbXhp ZCwKIAkJCQkJICAgcHJlc3VsdCwgJnByc3RhdGUpOwogCisJLyoKKwkgKiBJZiB0aGUgVk0gaXMg c2V0IGJ1dCBQRF9BTExfVklTSUJMRSBpcyBjbGVhciwgZml4IHRoYXQgY29ycnVwdGlvbgorCSAq IGJlZm9yZSBwcnVuaW5nIGFuZCBmcmVlemluZyBzbyB0aGF0IHRoZSBwYWdlIGFuZCBWTSBzdGFy dCBvdXQgaW4gYQorCSAqIGNvbnNpc3RlbnQgc3RhdGUuCisJICovCisJaWYgKChwcnN0YXRlLm9s ZF92bWJpdHMgJiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpICYmCisJCSFQYWdlSXNBbGxWaXNp YmxlKHByc3RhdGUucGFnZSkpCisJCWhlYXBfcGFnZV9maXhfdm1fY29ycnVwdGlvbigmcHJzdGF0 ZSwgSW52YWxpZE9mZnNldE51bWJlciwKKwkJCQkJCQkJCVZNX0NPUlJVUFRfTUlTU0lOR19QQUdF X0hJTlQpOworCiAJLyoKIAkgKiBFeGFtaW5lIGFsbCBsaW5lIHBvaW50ZXJzIGFuZCB0dXBsZSB2 aXNpYmlsaXR5IGluZm9ybWF0aW9uIHRvIGRldGVybWluZQogCSAqIHdoaWNoIGxpbmUgcG9pbnRl cnMgc2hvdWxkIGNoYW5nZSBzdGF0ZSBhbmQgd2hpY2ggdHVwbGVzIG1heSBiZSBmcm96ZW4uCkBA IC05NzMsNiArMTEyNyw3IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXpl UGFyYW1zICpwYXJhbXMsCiAJcHJlc3VsdC0+c2V0X2FsbF92aXNpYmxlID0gcHJzdGF0ZS5zZXRf YWxsX3Zpc2libGU7CiAJcHJlc3VsdC0+c2V0X2FsbF9mcm96ZW4gPSBwcnN0YXRlLnNldF9hbGxf ZnJvemVuOwogCXByZXN1bHQtPmhhc3R1cCA9IHByc3RhdGUuaGFzdHVwOworCXByZXN1bHQtPm9s ZF92bWJpdHMgPSBwcnN0YXRlLm9sZF92bWJpdHM7CiAKIAkvKgogCSAqIEZvciBjYWxsZXJzIHBs YW5uaW5nIHRvIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAsIHRoZSBjb25mbGljdCBob3Jpem9u CkBAIC0xMjk1LDcgKzE0NTAsOCBAQCBwcm9jZXNzX2NoYWluOgogCiAvKiBSZWNvcmQgbG93ZXN0 IHNvb24tcHJ1bmFibGUgWElEICovCiBzdGF0aWMgdm9pZAotaGVhcF9wcnVuZV9yZWNvcmRfcHJ1 bmFibGUoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgVHJhbnNhY3Rpb25JZCB4aWQpCitoZWFwX3BydW5l X3JlY29yZF9wcnVuYWJsZShQcnVuZVN0YXRlICpwcnN0YXRlLCBUcmFuc2FjdGlvbklkIHhpZCwK KwkJCQkJCSAgIE9mZnNldE51bWJlciBvZmZudW0pCiB7CiAJLyoKIAkgKiBUaGlzIHNob3VsZCBl eGFjdGx5IG1hdGNoIHRoZSBQYWdlU2V0UHJ1bmFibGUgbWFjcm8uICBXZSBjYW4ndCBzdG9yZQpA QCAtMTMwNSw2ICsxNDYxLDE0IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3BydW5hYmxlKFBydW5lU3Rh dGUgKnByc3RhdGUsIFRyYW5zYWN0aW9uSWQgeGlkKQogCWlmICghVHJhbnNhY3Rpb25JZElzVmFs aWQocHJzdGF0ZS0+bmV3X3BydW5lX3hpZCkgfHwKIAkJVHJhbnNhY3Rpb25JZFByZWNlZGVzKHhp ZCwgcHJzdGF0ZS0+bmV3X3BydW5lX3hpZCkpCiAJCXByc3RhdGUtPm5ld19wcnVuZV94aWQgPSB4 aWQ7CisKKwkvKgorCSAqIEl0J3MgaW5jb3JyZWN0IGZvciBhIHBhZ2UgdG8gYmUgbWFya2VkIGFs bC12aXNpYmxlIGlmIGl0IGNvbnRhaW5zCisJICogcHJ1bmFibGUgaXRlbXMuCisJICovCisJaWYg KFBhZ2VJc0FsbFZpc2libGUocHJzdGF0ZS0+cGFnZSkpCisJCWhlYXBfcGFnZV9maXhfdm1fY29y cnVwdGlvbihwcnN0YXRlLCBvZmZudW0sCisJCQkJCQkJCQlWTV9DT1JSVVBUX1RVUExFX1ZJU0lC SUxJVFkpOwogfQogCiAvKiBSZWNvcmQgbGluZSBwb2ludGVyIHRvIGJlIHJlZGlyZWN0ZWQgKi8K QEAgLTEzODgsNiArMTU1MiwxNSBAQCBoZWFwX3BydW5lX3JlY29yZF9kZWFkX29yX3VudXNlZChQ cnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtLAogCQloZWFwX3BydW5lX3Jl Y29yZF91bnVzZWQocHJzdGF0ZSwgb2ZmbnVtLCB3YXNfbm9ybWFsKTsKIAllbHNlCiAJCWhlYXBf cHJ1bmVfcmVjb3JkX2RlYWQocHJzdGF0ZSwgb2ZmbnVtLCB3YXNfbm9ybWFsKTsKKworCS8qCisJ ICogSXQncyBpbmNvcnJlY3QgZm9yIHRoZSBwYWdlIHRvIGJlIHNldCBhbGwtdmlzaWJsZSBpZiBp dCBjb250YWlucyBkZWFkCisJICogaXRlbXMuIEZpeCB0aGF0IG9uIHRoZSBoZWFwIHBhZ2UgYW5k IGNoZWNrIHRoZSBWTSBmb3IgY29ycnVwdGlvbiBhcworCSAqIHdlbGwuIERvIHRoYXQgaGVyZSBy YXRoZXIgdGhhbiBpbiBoZWFwX3BydW5lX3JlY29yZF9kZWFkKCkgc28gd2UgYWxzbworCSAqIGNv dmVyIHR1cGxlcyB0aGF0IGFyZSBkaXJlY3RseSBtYXJrZWQgTFBfVU5VU0VEIHZpYSBtYXJrX3Vu dXNlZF9ub3cuCisJICovCisJaWYgKFBhZ2VJc0FsbFZpc2libGUocHJzdGF0ZS0+cGFnZSkpCisJ CWhlYXBfcGFnZV9maXhfdm1fY29ycnVwdGlvbihwcnN0YXRlLCBvZmZudW0sIFZNX0NPUlJVUFRf TFBERUFEKTsKIH0KIAogLyogUmVjb3JkIGxpbmUgcG9pbnRlciB0byBiZSBtYXJrZWQgdW51c2Vk ICovCkBAIC0xNTI3LDcgKzE3MDAsOCBAQCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBf bm9ybWFsKFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJlciBvZmZudW0pCiAJCQkgKiB0 aGF0IHRoZSBwYWdlIGlzIHJlY29uc2lkZXJlZCBmb3IgcHJ1bmluZyBpbiBmdXR1cmUuCiAJCQkg Ki8KIAkJCWhlYXBfcHJ1bmVfcmVjb3JkX3BydW5hYmxlKHByc3RhdGUsCi0JCQkJCQkJCQkgICBI ZWFwVHVwbGVIZWFkZXJHZXRVcGRhdGVYaWQoaHR1cCkpOworCQkJCQkJCQkJICAgSGVhcFR1cGxl SGVhZGVyR2V0VXBkYXRlWGlkKGh0dXApLAorCQkJCQkJCQkJICAgb2ZmbnVtKTsKIAkJCWJyZWFr OwogCiAJCWNhc2UgSEVBUFRVUExFX0lOU0VSVF9JTl9QUk9HUkVTUzoKQEAgLTE1NDIsNiArMTcx NiwxMSBAQCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBydW5lU3RhdGUg KnByc3RhdGUsIE9mZnNldE51bWJlciBvZmZudW0pCiAJCQlwcnN0YXRlLT5zZXRfYWxsX3Zpc2li bGUgPSBmYWxzZTsKIAkJCXByc3RhdGUtPnNldF9hbGxfZnJvemVuID0gZmFsc2U7CiAKKwkJCS8q IFRoZSBwYWdlIHNob3VsZCBub3QgYmUgbWFya2VkIGFsbC12aXNpYmxlICovCisJCQlpZiAoUGFn ZUlzQWxsVmlzaWJsZShwYWdlKSkKKwkJCQloZWFwX3BhZ2VfZml4X3ZtX2NvcnJ1cHRpb24ocHJz dGF0ZSwgb2ZmbnVtLAorCQkJCQkJCQkJCQlWTV9DT1JSVVBUX1RVUExFX1ZJU0lCSUxJVFkpOwor CiAJCQkvKgogCQkJICogSWYgd2Ugd2FudGVkIHRvIG9wdGltaXplIGZvciBhYm9ydHMsIHdlIG1p Z2h0IGNvbnNpZGVyIG1hcmtpbmcKIAkJCSAqIHRoZSBwYWdlIHBydW5hYmxlIHdoZW4gd2Ugc2Vl IElOU0VSVF9JTl9QUk9HUkVTUy4gIEJ1dCB3ZQpAQCAtMTU2Niw3ICsxNzQ1LDggQEAgaGVhcF9w cnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25vcm1hbChQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZz ZXROdW1iZXIgb2ZmbnVtKQogCQkJICogdGhlIHBhZ2UgaXMgcmVjb25zaWRlcmVkIGZvciBwcnVu aW5nIGluIGZ1dHVyZS4KIAkJCSAqLwogCQkJaGVhcF9wcnVuZV9yZWNvcmRfcHJ1bmFibGUocHJz dGF0ZSwKLQkJCQkJCQkJCSAgIEhlYXBUdXBsZUhlYWRlckdldFVwZGF0ZVhpZChodHVwKSk7CisJ CQkJCQkJCQkgICBIZWFwVHVwbGVIZWFkZXJHZXRVcGRhdGVYaWQoaHR1cCksCisJCQkJCQkJCQkg ICBvZmZudW0pOwogCQkJYnJlYWs7CiAKIAkJZGVmYXVsdDoKQEAgLTE2MzIsNiArMTgxMiwxMyBA QCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfZGVhZChQcnVuZVN0YXRlICpwcnN0YXRl LCBPZmZzZXROdW1iZXIgb2ZmbnVtKQogCiAJLyogUmVjb3JkIHRoZSBkZWFkIG9mZnNldCBmb3Ig dmFjdXVtICovCiAJcHJzdGF0ZS0+ZGVhZG9mZnNldHNbcHJzdGF0ZS0+bHBkZWFkX2l0ZW1zKytd ID0gb2ZmbnVtOworCisJLyoKKwkgKiBJdCdzIGluY29ycmVjdCBmb3IgYSBwYWdlIHRvIGJlIG1h cmtlZCBhbGwtdmlzaWJsZSBpZiBpdCBjb250YWlucyBkZWFkCisJICogaXRlbXMuCisJICovCisJ aWYgKFBhZ2VJc0FsbFZpc2libGUocHJzdGF0ZS0+cGFnZSkpCisJCWhlYXBfcGFnZV9maXhfdm1f Y29ycnVwdGlvbihwcnN0YXRlLCBvZmZudW0sIFZNX0NPUlJVUFRfTFBERUFEKTsKIH0KIAogLyoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCBjNTc0MzI2NzBlNy4uNTY3MjI1 NTY0MTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTQzMiwxMSArNDMy LDYgQEAgc3RhdGljIHZvaWQgZmluZF9uZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrKExWUmVsU3RhdGUg KnZhY3JlbCwgYm9vbCAqc2tpcHNhbGx2aXMpOwogc3RhdGljIGJvb2wgbGF6eV9zY2FuX25ld19v cl9lbXB0eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsCiAJCQkJCQkJCSAgIEJsb2Nr TnVtYmVyIGJsa25vLCBQYWdlIHBhZ2UsCiAJCQkJCQkJCSAgIGJvb2wgc2hhcmVsb2NrLCBCdWZm ZXIgdm1idWZmZXIpOwotc3RhdGljIHZvaWQgaWRlbnRpZnlfYW5kX2ZpeF92bV9jb3JydXB0aW9u KFJlbGF0aW9uIHJlbCwgQnVmZmVyIGhlYXBfYnVmZmVyLAotCQkJCQkJCQkJCSAgIEJsb2NrTnVt YmVyIGhlYXBfYmxrLCBQYWdlIGhlYXBfcGFnZSwKLQkJCQkJCQkJCQkgICBpbnQgbmxwZGVhZF9p dGVtcywKLQkJCQkJCQkJCQkgICBCdWZmZXIgdm1idWZmZXIsCi0JCQkJCQkJCQkJICAgdWludDgg KnZtYml0cyk7CiBzdGF0aWMgaW50CWxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWws IEJ1ZmZlciBidWYsCiAJCQkJCQkJQmxvY2tOdW1iZXIgYmxrbm8sIFBhZ2UgcGFnZSwKIAkJCQkJ CQlCdWZmZXIgdm1idWZmZXIsCkBAIC0xOTg5LDgxICsxOTg0LDYgQEAgY21wT2Zmc2V0TnVtYmVy cyhjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKQogCXJldHVybiBwZ19jbXBfdTE2KCooY29u c3QgT2Zmc2V0TnVtYmVyICopIGEsICooY29uc3QgT2Zmc2V0TnVtYmVyICopIGIpOwogfQogCi0v KgotICogSGVscGVyIHRvIGNvcnJlY3QgYW55IGNvcnJ1cHRpb24gZGV0ZWN0ZWQgb24gYSBoZWFw IHBhZ2UgYW5kIGl0cwotICogY29ycmVzcG9uZGluZyB2aXNpYmlsaXR5IG1hcCBwYWdlIGFmdGVy IHBydW5pbmcgYnV0IGJlZm9yZSBzZXR0aW5nIHRoZQotICogdmlzaWJpbGl0eSBtYXAuIEl0IGV4 YW1pbmVzIHRoZSBoZWFwIHBhZ2UsIHRoZSBhc3NvY2lhdGVkIFZNIHBhZ2UsIGFuZCB0aGUKLSAq IG51bWJlciBvZiBkZWFkIGl0ZW1zIHByZXZpb3VzbHkgaWRlbnRpZmllZC4KLSAqCi0gKiBUaGlz IGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIHdoaWxlIGhvbGRpbmcgYW4gZXhjbHVzaXZlIGxvY2sg b24gdGhlIGhlYXAKLSAqIGJ1ZmZlciwgYW5kIHRoZSBkZWFkIGl0ZW1zIG11c3QgaGF2ZSBiZWVu IGRpc2NvdmVyZWQgdW5kZXIgdGhhdCBzYW1lIGxvY2suCi0KLSAqIFRoZSBwcm92aWRlZCB2bWJp dHMgbXVzdCByZWZsZWN0IHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBWTSBibG9jawotICogcmVm ZXJlbmNlZCBieSB2bWJ1ZmZlci4gQWx0aG91Z2ggd2UgZG8gbm90IGhvbGQgYSBsb2NrIG9uIHRo ZSBWTSBidWZmZXIsIGl0Ci0gKiBpcyBwaW5uZWQsIGFuZCB0aGUgaGVhcCBidWZmZXIgaXMgZXhj bHVzaXZlbHkgbG9ja2VkLCBlbnN1cmluZyB0aGF0IG5vCi0gKiBvdGhlciBiYWNrZW5kIGNhbiB1 cGRhdGUgdGhlIFZNIGJpdHMgY29ycmVzcG9uZGluZyB0byB0aGlzIGhlYXAgcGFnZS4KLSAqCi0g KiBJZiBpdCBjbGVhcnMgY29ycnVwdGlvbiwgaXQgd2lsbCB6ZXJvIG91dCB2bWJpdHMuCi0gKi8K LXN0YXRpYyB2b2lkCi1pZGVudGlmeV9hbmRfZml4X3ZtX2NvcnJ1cHRpb24oUmVsYXRpb24gcmVs LCBCdWZmZXIgaGVhcF9idWZmZXIsCi0JCQkJCQkJICAgQmxvY2tOdW1iZXIgaGVhcF9ibGssIFBh Z2UgaGVhcF9wYWdlLAotCQkJCQkJCSAgIGludCBubHBkZWFkX2l0ZW1zLAotCQkJCQkJCSAgIEJ1 ZmZlciB2bWJ1ZmZlciwKLQkJCQkJCQkgICB1aW50OCAqdm1iaXRzKQotewotCUFzc2VydCh2aXNp YmlsaXR5bWFwX2dldF9zdGF0dXMocmVsLCBoZWFwX2JsaywgJnZtYnVmZmVyKSA9PSAqdm1iaXRz KTsKLQotCUFzc2VydChCdWZmZXJJc0xvY2tlZEJ5TWVJbk1vZGUoaGVhcF9idWZmZXIsIEJVRkZF Ul9MT0NLX0VYQ0xVU0lWRSkpOwotCi0JLyoKLQkgKiBBcyBvZiBQb3N0Z3JlU1FMIDkuMiwgdGhl IHZpc2liaWxpdHkgbWFwIGJpdCBzaG91bGQgbmV2ZXIgYmUgc2V0IGlmIHRoZQotCSAqIHBhZ2Ut bGV2ZWwgYml0IGlzIGNsZWFyLiAgSG93ZXZlciwgaXQncyBwb3NzaWJsZSB0aGF0IHRoZSBiaXQg Z290Ci0JICogY2xlYXJlZCBhZnRlciBoZWFwX3ZhY19zY2FuX25leHRfYmxvY2soKSB3YXMgY2Fs bGVkLCBzbyB3ZSBtdXN0IHJlY2hlY2sKLQkgKiB3aXRoIGJ1ZmZlciBsb2NrIGJlZm9yZSBjb25j bHVkaW5nIHRoYXQgdGhlIFZNIGlzIGNvcnJ1cHQuCi0JICovCi0JaWYgKCFQYWdlSXNBbGxWaXNp YmxlKGhlYXBfcGFnZSkgJiYKLQkJKCgqdm1iaXRzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRT KSAhPSAwKSkKLQl7Ci0JCWVyZXBvcnQoV0FSTklORywKLQkJCQkoZXJyY29kZShFUlJDT0RFX0RB VEFfQ09SUlVQVEVEKSwKLQkJCQkgZXJybXNnKCJwYWdlIGlzIG5vdCBtYXJrZWQgYWxsLXZpc2li bGUgYnV0IHZpc2liaWxpdHkgbWFwIGJpdCBpcyBzZXQgaW4gcmVsYXRpb24gXCIlc1wiIHBhZ2Ug JXUiLAotCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSwgaGVhcF9ibGspKSk7Ci0K LQkJdmlzaWJpbGl0eW1hcF9jbGVhcihyZWwsIGhlYXBfYmxrLCB2bWJ1ZmZlciwKLQkJCQkJCQlW SVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpOwotCQkqdm1iaXRzID0gMDsKLQl9Ci0KLQkvKgotCSAq IEl0J3MgcG9zc2libGUgZm9yIHRoZSB2YWx1ZSByZXR1cm5lZCBieQotCSAqIEdldE9sZGVzdE5v blJlbW92YWJsZVRyYW5zYWN0aW9uSWQoKSB0byBtb3ZlIGJhY2t3YXJkcywgc28gaXQncyBub3QK LQkgKiB3cm9uZyBmb3IgdXMgdG8gc2VlIHR1cGxlcyB0aGF0IGFwcGVhciB0byBub3QgYmUgdmlz aWJsZSB0byBldmVyeW9uZQotCSAqIHlldCwgd2hpbGUgUERfQUxMX1ZJU0lCTEUgaXMgYWxyZWFk eSBzZXQuIFRoZSByZWFsIHNhZmUgeG1pbiB2YWx1ZQotCSAqIG5ldmVyIG1vdmVzIGJhY2t3YXJk cywgYnV0IEdldE9sZGVzdE5vblJlbW92YWJsZVRyYW5zYWN0aW9uSWQoKSBpcwotCSAqIGNvbnNl cnZhdGl2ZSBhbmQgc29tZXRpbWVzIHJldHVybnMgYSB2YWx1ZSB0aGF0J3MgdW5uZWNlc3Nhcmls eSBzbWFsbCwKLQkgKiBzbyBpZiB3ZSBzZWUgdGhhdCBjb250cmFkaWN0aW9uIGl0IGp1c3QgbWVh bnMgdGhhdCB0aGUgdHVwbGVzIHRoYXQgd2UKLQkgKiB0aGluayBhcmUgbm90IHZpc2libGUgdG8g ZXZlcnlvbmUgeWV0IGFjdHVhbGx5IGFyZSwgYW5kIHRoZQotCSAqIFBEX0FMTF9WSVNJQkxFIGZs YWcgaXMgY29ycmVjdC4KLQkgKgotCSAqIFRoZXJlIHNob3VsZCBuZXZlciBiZSBMUF9ERUFEIGl0 ZW1zIG9uIGEgcGFnZSB3aXRoIFBEX0FMTF9WSVNJQkxFIHNldCwKLQkgKiBob3dldmVyLgotCSAq LwotCWVsc2UgaWYgKFBhZ2VJc0FsbFZpc2libGUoaGVhcF9wYWdlKSAmJiBubHBkZWFkX2l0ZW1z ID4gMCkKLQl7Ci0JCWVyZXBvcnQoV0FSTklORywKLQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFf Q09SUlVQVEVEKSwKLQkJCQkgZXJybXNnKCJwYWdlIGNvbnRhaW5pbmcgTFBfREVBRCBpdGVtcyBp cyBtYXJrZWQgYXMgYWxsLXZpc2libGUgaW4gcmVsYXRpb24gXCIlc1wiIHBhZ2UgJXUiLAotCQkJ CQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSwgaGVhcF9ibGspKSk7Ci0KLQkJUGFnZUNs ZWFyQWxsVmlzaWJsZShoZWFwX3BhZ2UpOwotCQlNYXJrQnVmZmVyRGlydHkoaGVhcF9idWZmZXIp OwotCQl2aXNpYmlsaXR5bWFwX2NsZWFyKHJlbCwgaGVhcF9ibGssIHZtYnVmZmVyLAotCQkJCQkJ CVZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyk7Ci0JCSp2bWJpdHMgPSAwOwotCX0KLX0KLQogLyoK ICAqCWxhenlfc2Nhbl9wcnVuZSgpIC0tIGxhenlfc2Nhbl9oZWFwKCkgcHJ1bmluZyBhbmQgZnJl ZXppbmcuCiAgKgpAQCAtMjA5NSw2ICsyMDE1LDcgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3Rh dGUgKnZhY3JlbCwKIAlQcnVuZUZyZWV6ZVBhcmFtcyBwYXJhbXMgPSB7CiAJCS5yZWxhdGlvbiA9 IHJlbCwKIAkJLmJ1ZmZlciA9IGJ1ZiwKKwkJLnZtYnVmZmVyID0gdm1idWZmZXIsCiAJCS5yZWFz b24gPSBQUlVORV9WQUNVVU1fU0NBTiwKIAkJLm9wdGlvbnMgPSBIRUFQX1BBR0VfUFJVTkVfRlJF RVpFLAogCQkudmlzdGVzdCA9IHZhY3JlbC0+dmlzdGVzdCwKQEAgLTIyMDQsMTggKzIxMjUsMTIg QEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAlBc3NlcnQoIXByZXN1bHQu c2V0X2FsbF92aXNpYmxlIHx8ICEoKmhhc19scGRlYWRfaXRlbXMpKTsKIAlBc3NlcnQoIXByZXN1 bHQuc2V0X2FsbF9mcm96ZW4gfHwgcHJlc3VsdC5zZXRfYWxsX3Zpc2libGUpOwogCi0Jb2xkX3Zt Yml0cyA9IHZpc2liaWxpdHltYXBfZ2V0X3N0YXR1cyh2YWNyZWwtPnJlbCwgYmxrbm8sICZ2bWJ1 ZmZlcik7Ci0KLQlpZGVudGlmeV9hbmRfZml4X3ZtX2NvcnJ1cHRpb24odmFjcmVsLT5yZWwsIGJ1 ZiwgYmxrbm8sIHBhZ2UsCi0JCQkJCQkJCSAgIHByZXN1bHQubHBkZWFkX2l0ZW1zLCB2bWJ1ZmZl ciwKLQkJCQkJCQkJICAgJm9sZF92bWJpdHMpOwotCiAJaWYgKCFwcmVzdWx0LnNldF9hbGxfdmlz aWJsZSkKIAkJcmV0dXJuIHByZXN1bHQubmRlbGV0ZWQ7CiAKIAkvKiBTZXQgdGhlIHZpc2liaWxp dHkgbWFwIGFuZCBwYWdlIHZpc2liaWxpdHkgaGludCAqLworCW9sZF92bWJpdHMgPSBwcmVzdWx0 Lm9sZF92bWJpdHM7CiAJbmV3X3ZtYml0cyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7Ci0K IAlpZiAocHJlc3VsdC5zZXRfYWxsX2Zyb3plbikKIAkJbmV3X3ZtYml0cyB8PSBWSVNJQklMSVRZ TUFQX0FMTF9GUk9aRU47CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0u aCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAppbmRleCAyZmRjNTBiODY1Yi4uMDAxMzQw MTIxMzcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAorKysgYi9zcmMv aW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAgLTI2Miw2ICsyNjIsMTIgQEAgdHlwZWRlZiBzdHJ1 Y3QgUHJ1bmVGcmVlemVQYXJhbXMKIAlSZWxhdGlvbglyZWxhdGlvbjsJCS8qIHJlbGF0aW9uIGNv bnRhaW5pbmcgYnVmZmVyIHRvIGJlIHBydW5lZCAqLwogCUJ1ZmZlcgkJYnVmZmVyOwkJCS8qIGJ1 ZmZlciB0byBiZSBwcnVuZWQgKi8KIAorCS8qCisJICogQ2FsbGVycyBzaG91bGQgcHJvdmlkZSBh IHBpbm5lZCB2bWJ1ZmZlciBjb3JyZXNwb25kaW5nIHRvIHRoZSBoZWFwCisJICogYmxvY2sgaW4g YnVmZmVyLiBXZSB3aWxsIGNoZWNrIGZvciBhbmQgcmVwYWlyIGFueSBjb3JydXB0aW9uIGluIHRo ZSBWTS4KKwkgKi8KKwlCdWZmZXIJCXZtYnVmZmVyOworCiAJLyoKIAkgKiBUaGUgcmVhc29uIHBy dW5pbmcgd2FzIHBlcmZvcm1lZC4gIEl0IGlzIHVzZWQgdG8gc2V0IHRoZSBXQUwgcmVjb3JkCiAJ ICogb3Bjb2RlIHdoaWNoIGlzIHVzZWQgZm9yIGRlYnVnZ2luZyBhbmQgYW5hbHlzaXMgcHVycG9z ZXMuCkBAIC0zMjQsNiArMzMwLDEyIEBAIHR5cGVkZWYgc3RydWN0IFBydW5lRnJlZXplUmVzdWx0 CiAJYm9vbAkJc2V0X2FsbF9mcm96ZW47CiAJVHJhbnNhY3Rpb25JZCB2bV9jb25mbGljdF9ob3Jp em9uOwogCisJLyoKKwkgKiBUaGUgdmFsdWUgb2YgdGhlIHZtYnVmZmVyJ3Mgdm1iaXRzIGF0IHRo ZSBiZWdpbm5pbmcgb2YgcHJ1bmluZy4gSXQgaXMKKwkgKiBjbGVhcmVkIGlmIFZNIGNvcnJ1cHRp b24gaXMgZm91bmQgYW5kIGNvcnJlY3RlZC4KKwkgKi8KKwl1aW50OAkJb2xkX3ZtYml0czsKKwog CS8qCiAJICogV2hldGhlciBvciBub3QgdGhlIHBhZ2UgbWFrZXMgcmVsIHRydW5jYXRpb24gdW5z YWZlLiAgVGhpcyBpcyBzZXQgdG8KIAkgKiAndHJ1ZScsIGV2ZW4gaWYgdGhlIHBhZ2UgY29udGFp bnMgTFBfREVBRCBpdGVtcy4gIFZBQ1VVTSB3aWxsIHJlbW92ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdAppbmRleCAwMDQyYzMzZmE2Ni4uMGMwN2M5NDVmMDUgMTAwNjQ0Ci0tLSBhL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0CkBAIC0zMjc3LDYgKzMyNzcsNyBAQCBVc2VyQXV0aAogVXNlckNvbnRleHQKIFVzZXJN YXBwaW5nCiBVc2VyT3B0cworVk1Db3JydXB0aW9uVHlwZQogVmFjQXR0clN0YXRzCiBWYWNBdHRy U3RhdHNQCiBWYWNEZWFkSXRlbXNJbmZvCi0tIAoyLjQzLjAKCg== --000000000000a1e2a7064d7d2a75 Content-Type: text/x-patch; charset="US-ASCII"; name="v42-0002-Add-pruning-fast-path-for-all-visible-and-all-fr.patch" Content-Disposition: attachment; filename="v42-0002-Add-pruning-fast-path-for-all-visible-and-all-fr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmzjd8u31 RnJvbSA0YmQ1NTAyZDA3NTYyYTBlNmNlNWNiZjMxNTgzM2M1YmFhNjc2MDI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI1IEZlYiAyMDI2IDE2OjQ4OjE5IC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDIgMDIvMTJdIEFkZCBwcnVuaW5nIGZhc3QgcGF0aCBmb3IgYWxsLXZpc2libGUgYW5k CiBhbGwtZnJvemVuIHBhZ2VzCgpCZWNhdXNlIG9mIHRoZSBTS0lQX1BBR0VTX1RIUkVTSE9MRCBv cHRpbWl6YXRpb24gb3IgYSBzdGFsZSBwcnVuZSBYSUQsCmhlYXBfcGFnZV9wcnVuZV9hbmRfZnJl ZXplKCkgY2FuIGJlIGludm9rZWQgZm9yIHBhZ2VzIHdpdGggbm8gcHJ1bmluZyBvcgpmcmVlemlu ZyB3b3JrLiBUbyBhdm9pZCB0aGlzLCBpZiBhIHBhZ2UgaXMgYWxyZWFkeSBhbGwtZnJvemVuIG9y IGl0IGlzCmFsbC12aXNpYmxlIGFuZCBubyBmcmVlemluZyB3aWxsIGJlIGF0dGVtcHRlZCwgZXhp dCBlYXJseS4gV2UgY2FuJ3QgZXhpdAplYXJseSBpZiB2YWN1dW0gcGFzc2VkIERJU0FCTEVfUEFH RV9TS0lQUElORywgdGhvdWdoLgoKQXV0aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxh Z2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJh emVsLmRlPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KUmV2 aWV3ZWQtYnk6IEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtpcmlsbEBnbWFpbC5jb20+CkRpc2N1c3Np b246IGh0dHBzOi8vcG9zdGdyLmVzL20vYnFjNGtoNW1pZGZuNDRnbmppcWV6M2JqcXY0em9neWRn dXZkbjQ0NnJpdzQ1amNmM3klNDA0ZXo2NmlsN2VidmsKLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYyAgfCA5NyArKysrKysrKysrKysrKysrKysrKysrKysrKystCiBzcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCAxMCArKysKIHNyYy9pbmNsdWRlL2Fj Y2Vzcy9oZWFwYW0uaCAgICAgICAgICB8ICAxICsKIDMgZmlsZXMgY2hhbmdlZCwgMTA3IGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmlu ZGV4IGJlM2FlMjFmOTRjLi4yMmYyZDlkOTc5OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVo ZWFwLmMKQEAgLTEyOSw2ICsxMjksMTIgQEAgdHlwZWRlZiBzdHJ1Y3QKIAkvKiBCaXRzIGluIHRo ZSB2bWJ1ZmZlciBmb3IgdGhpcyBoZWFwIHBhZ2UgKi8KIAl1aW50OAkJb2xkX3ZtYml0czsKIAor CS8qCisJICogVHJ1ZSBpZiB0aGUgcGFnZSBjYW4gYnlwYXNzIGZ1bGwgcGFnZSBpbnNwZWN0aW9u IGR1cmluZyBwcnVuaW5nIGFuZAorCSAqIGZyZWV6aW5nIGJhc2VkIG9uIGl0cyB2aXNpYmlsaXR5 IG1hcCBzdGF0dXMgYW5kIHRoZSBjYWxsZXIncyBvcHRpb25zLgorCSAqLworCWJvb2wJCWZhc3Rf cGF0aDsKKwogCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogCSAqIEluZm9ybWF0aW9uIGFib3V0IHdoYXQgd2FzIGRvbmUKIAkgKgpAQCAt MjAxLDYgKzIwNyw3IEBAIHN0YXRpYyB2b2lkIHBydW5lX2ZyZWV6ZV9zZXR1cChQcnVuZUZyZWV6 ZVBhcmFtcyAqcGFyYW1zLAogCQkJCQkJCSAgIFBydW5lU3RhdGUgKnByc3RhdGUpOwogc3RhdGlj IHZvaWQgaGVhcF9wYWdlX2ZpeF92bV9jb3JydXB0aW9uKFBydW5lU3RhdGUgKnByc3RhdGUsIE9m ZnNldE51bWJlciBvZmZudW0sCiAJCQkJCQkJCQkJVk1Db3JydXB0aW9uVHlwZSBjdHlwZSk7Citz dGF0aWMgdm9pZCBwcnVuZV9mcmVlemVfYnlwYXNzKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5l RnJlZXplUmVzdWx0ICpwcmVzdWx0KTsKIHN0YXRpYyB2b2lkIHBydW5lX2ZyZWV6ZV9wbGFuKFBy dW5lU3RhdGUgKnByc3RhdGUsCiAJCQkJCQkJICBPZmZzZXROdW1iZXIgKm9mZl9sb2MpOwogc3Rh dGljIEhUU1ZfUmVzdWx0IGhlYXBfcHJ1bmVfc2F0aXNmaWVzX3ZhY3V1bShQcnVuZVN0YXRlICpw cnN0YXRlLApAQCAtMzI5LDcgKzMzNiw3IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24g cmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIpCiAJCQkgKiBjYW5ub3Qg c2FmZWx5IGRldGVybWluZSB0aGF0IGR1cmluZyBvbi1hY2Nlc3MgcHJ1bmluZyB3aXRoIHRoZQog CQkJICogY3VycmVudCBpbXBsZW1lbnRhdGlvbi4KIAkJCSAqLwotCQkJcGFyYW1zLm9wdGlvbnMg PSAwOworCQkJcGFyYW1zLm9wdGlvbnMgPSBIRUFQX1BBR0VfUFJVTkVfQUxMT1dfRkFTVF9QQVRI OwogCiAJCQloZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgmcGFyYW1zLCAmcHJlc3VsdCwgJmR1 bW15X29mZl9sb2MsCiAJCQkJCQkJCQkgICBOVUxMLCBOVUxMKTsKQEAgLTM5OCw2ICs0MDUsMTYg QEAgcHJ1bmVfZnJlZXplX3NldHVwKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJCQkJCQkJ CQkJCQkgICBwcnN0YXRlLT5ibG9jaywKIAkJCQkJCQkJCQkJCSAgICZwcnN0YXRlLT52bWJ1ZmZl cik7CiAKKwkvKgorCSAqIElmIHRoZSBwYWdlIGlzIGFscmVhZHkgYWxsLWZyb3plbiwgb3IgYWxy ZWFkeSBhbGwtdmlzaWJsZSB3aGVuIGZyZWV6aW5nCisJICogaXMgbm90IGJlaW5nIGF0dGVtcHRl ZCwgd2UgY2FuIHNraXAgcHJ1bmluZyBhbmQgZnJlZXppbmcgZW50aXJlbHkuCisJICogQ2FsbGVy cyBtdXN0IG9wdCBpbiBieSBzZXR0aW5nIEhFQVBfUEFHRV9QUlVORV9BTExPV19GQVNUX1BBVEgu CisJICovCisJcHJzdGF0ZS0+ZmFzdF9wYXRoID0gKChwcnN0YXRlLT5vbGRfdm1iaXRzICYgVklT SUJJTElUWU1BUF9BTExfRlJPWkVOKSB8fAorCQkJCQkJICAoKHByc3RhdGUtPm9sZF92bWJpdHMg JiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFKSAmJgorCQkJCQkJICAgIXByc3RhdGUtPmF0dGVt cHRfZnJlZXplKSkgJiYKKwkJKHBhcmFtcy0+b3B0aW9ucyAmIEhFQVBfUEFHRV9QUlVORV9BTExP V19GQVNUX1BBVEgpOworCiAJLyoKIAkgKiBPdXIgc3RyYXRlZ3kgaXMgdG8gc2NhbiB0aGUgcGFn ZSBhbmQgbWFrZSBsaXN0cyBvZiBpdGVtcyB0byBjaGFuZ2UsCiAJICogdGhlbiBhcHBseSB0aGUg Y2hhbmdlcyB3aXRoaW4gYSBjcml0aWNhbCBzZWN0aW9uLiAgVGhpcyBrZWVwcyBhcyBtdWNoCkBA IC05MTUsNiArOTMyLDczIEBAIGhlYXBfcGFnZV9maXhfdm1fY29ycnVwdGlvbihQcnVuZVN0YXRl ICpwcnN0YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtLAogCX0KIH0KIAorLyoKKyAqIElmIHRoZSBw YWdlIGlzIGFscmVhZHkgYWxsLWZyb3plbiwgb3IgYWxyZWFkeSBhbGwtdmlzaWJsZSBhbmQgZnJl ZXppbmcKKyAqIGlzIG5vdCBiZWluZyBhdHRlbXB0ZWQsIHRoZXJlIGlzIG5vIHJlbWFpbmluZyB3 b3JrIGFuZCB3ZSBjYW4gYnlwYXNzIHRoZQorICogZXhwZW5zaXZlIG92ZXJoZWFkIG9mIGhlYXBf cGFnZV9wcnVuZV9hbmRfZnJlZXplKCkuCisgKgorICogVGhpcyBjYW4gaGFwcGVuIHdoZW4gdGhl IHBhZ2UgaGFzIGEgc3RhbGUgcHJ1bmUgaGludCwgb3IgaWYgVkFDVVVNIGlzCisgKiBzY2Fubmlu ZyBhbiBhbHJlYWR5IGFsbC1mcm96ZW4gcGFnZSBkdWUgdG8gU0tJUF9QQUdFU19USFJFU0hPTEQu CisgKgorICogVGhlIGNhbGxlciBtdXN0IGFscmVhZHkgaGF2ZSBleGFtaW5lZCB0aGUgdmlzaWJp bGl0eSBtYXAgYW5kIHNhdmVkIHRoZQorICogc3RhdHVzIGZvciB0aGUgcGFnZSdzIFZNIGJpdHMg aW4gcHJzdGF0ZS0+b2xkX3ZtYml0cy4gQ2FsbGVyIG11c3QgaG9sZCBhCisgKiBjb250ZW50IGxv Y2sgb24gdGhlIGhlYXAgcGFnZSBzaW5jZSBpdCB3aWxsIGV4YW1pbmUgbGluZSBwb2ludGVycy4K KyAqCisgKiBCZWZvcmUgY2FsbGluZyBwcnVuZV9mcmVlemVfYnlwYXNzKCksIHRoZSBjYWxsZXIg c2hvdWxkIGZpcnN0CisgKiBjaGVjayBmb3IgYW5kIGZpeCBhbnkgZGlzY3JlcGFuY3kgYmV0d2Vl biB0aGUgcGFnZS1sZXZlbCB2aXNpYmlsaXR5IGhpbnQKKyAqIGFuZCB0aGUgdmlzaWJpbGl0eSBt YXAuIE90aGVyd2lzZSwgdGhlIGZhc3QgcGF0aCB3aWxsIGFsd2F5cyBwcmV2ZW50IHVzCisgKiBm cm9tIGdldHRpbmcgdGhlbSBpbiBzeW5jLiBOb3RlIHRoYXQgaWYgdGhlcmUgYXJlIHR1cGxlcyBv biB0aGUgcGFnZSB0aGF0CisgKiBhcmUgbm90IHZpc2libGUgdG8gYWxsIGJ1dCB0aGUgVk0gaXMg aW5jb3JyZWN0bHkgbWFya2VkCisgKiBhbGwtdmlzaWJsZS9hbGwtZnJvemVuLCB3ZSB3aWxsIG5v dCBnZXQgdGhlIGNoYW5jZSB0byBmaXggdGhhdCBjb3JydXB0aW9uCisgKiB3aGVuIHVzaW5nIHRo ZSBmYXN0IHBhdGguCisgKi8KK3N0YXRpYyB2b2lkCitwcnVuZV9mcmVlemVfYnlwYXNzKFBydW5l U3RhdGUgKnByc3RhdGUsIFBydW5lRnJlZXplUmVzdWx0ICpwcmVzdWx0KQoreworCU9mZnNldE51 bWJlciBtYXhvZmYgPSBQYWdlR2V0TWF4T2Zmc2V0TnVtYmVyKHByc3RhdGUtPnBhZ2UpOworCVBh Z2UJCXBhZ2UgPSBwcnN0YXRlLT5wYWdlOworCisJQXNzZXJ0KHByc3RhdGUtPm9sZF92bWJpdHMg JiBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4gfHwKKwkJICAgKHByc3RhdGUtPm9sZF92bWJpdHMg JiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFICYmCisJCQkhcHJzdGF0ZS0+YXR0ZW1wdF9mcmVl emUpKTsKKworCS8qIFdlJ2xsIGZpbGwgaW4gcHJlc3VsdCBmb3IgdGhlIGNhbGxlciAqLworCW1l bXNldChwcmVzdWx0LCAwLCBzaXplb2YoUHJ1bmVGcmVlemVSZXN1bHQpKTsKKworCXByZXN1bHQt Pm9sZF92bWJpdHMgPSBwcnN0YXRlLT5vbGRfdm1iaXRzOworCisJLyogQ2xlYXIgYW55IHN0YWxl IHBydW5lIGhpbnQgKi8KKwlpZiAoVHJhbnNhY3Rpb25JZElzVmFsaWQoUGFnZUdldFBydW5lWGlk KHBhZ2UpKSkKKwl7CisJCVBhZ2VDbGVhclBydW5hYmxlKHBhZ2UpOworCQlNYXJrQnVmZmVyRGly dHlIaW50KHByc3RhdGUtPmJ1ZmZlciwgdHJ1ZSk7CisJfQorCisJaWYgKFBhZ2VJc0VtcHR5KHBh Z2UpKQorCQlyZXR1cm47CisKKwkvKgorCSAqIFNpbmNlIHRoZSBwYWdlIGlzIGFsbC12aXNpYmxl LCBhIGNvdW50IG9mIHRoZSBub3JtYWwgSXRlbUlkcyBvbiB0aGUKKwkgKiBwYWdlIHNob3VsZCBi ZSBzdWZmaWNpZW50IGZvciB2YWN1dW0ncyBsaXZlIHR1cGxlIGNvdW50LgorCSAqLworCWZvciAo T2Zmc2V0TnVtYmVyIG9mZiA9IEZpcnN0T2Zmc2V0TnVtYmVyOworCQkgb2ZmIDw9IG1heG9mZjsK KwkJIG9mZiA9IE9mZnNldE51bWJlck5leHQob2ZmKSkKKwl7CisJCUl0ZW1JZAkJbHAgPSBQYWdl R2V0SXRlbUlkKHBhZ2UsIG9mZik7CisKKwkJaWYgKCFJdGVtSWRJc1VzZWQobHApKQorCQkJY29u dGludWU7CisKKwkJcHJlc3VsdC0+aGFzdHVwID0gdHJ1ZTsKKworCQlpZiAoSXRlbUlkSXNOb3Jt YWwobHApKQorCQkJcHJzdGF0ZS0+bGl2ZV90dXBsZXMrKzsKKwl9CisKKwlwcmVzdWx0LT5saXZl X3R1cGxlcyA9IHByc3RhdGUtPmxpdmVfdHVwbGVzOworfQorCiAvKgogICogUHJ1bmUgYW5kIHJl cGFpciBmcmFnbWVudGF0aW9uIGFuZCBwb3RlbnRpYWxseSBmcmVlemUgdHVwbGVzIG9uIHRoZQog ICogc3BlY2lmaWVkIHBhZ2UuCkBAIC05ODQsNiArMTA2OCwxNyBAQCBoZWFwX3BhZ2VfcHJ1bmVf YW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCQloZWFwX3BhZ2VfZml4X3Zt X2NvcnJ1cHRpb24oJnByc3RhdGUsIEludmFsaWRPZmZzZXROdW1iZXIsCiAJCQkJCQkJCQlWTV9D T1JSVVBUX01JU1NJTkdfUEFHRV9ISU5UKTsKIAorCS8qCisJICogSWYgdGhlIHZpc2liaWxpdHkg bWFwIHN0YXR1cyBhbGxvd3MgaXQsIGJ5cGFzcyBwcnVuaW5nIGFuZCBmcmVlemluZworCSAqIGVu dGlyZWx5LiBUaGlzIG11c3QgYmUgZG9uZSBhZnRlciBmaXhpbmcgYW55IGRpc2NyZXBhbmN5IGJl dHdlZW4gdGhlCisJICogcGFnZS1sZXZlbCB2aXNpYmlsaXR5IGhpbnQgYW5kIHRoZSBWTS4KKwkg Ki8KKwlpZiAocHJzdGF0ZS5mYXN0X3BhdGgpCisJeworCQlwcnVuZV9mcmVlemVfYnlwYXNzKCZw cnN0YXRlLCBwcmVzdWx0KTsKKwkJcmV0dXJuOworCX0KKwogCS8qCiAJICogRXhhbWluZSBhbGwg bGluZSBwb2ludGVycyBhbmQgdHVwbGUgdmlzaWJpbGl0eSBpbmZvcm1hdGlvbiB0byBkZXRlcm1p bmUKIAkgKiB3aGljaCBsaW5lIHBvaW50ZXJzIHNob3VsZCBjaGFuZ2Ugc3RhdGUgYW5kIHdoaWNo IHR1cGxlcyBtYXkgYmUgZnJvemVuLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmlu ZGV4IDU2NzIyNTU2NDE3Li4xYTQ0NjA1MGQ4NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1 bWxhenkuYwpAQCAtMjA0NCw2ICsyMDQ0LDE2IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRl ICp2YWNyZWwsCiAJaWYgKHZhY3JlbC0+bmluZGV4ZXMgPT0gMCkKIAkJcGFyYW1zLm9wdGlvbnMg fD0gSEVBUF9QQUdFX1BSVU5FX01BUktfVU5VU0VEX05PVzsKIAorCS8qCisJICogQWxsb3cgc2tp cHBpbmcgZnVsbCBpbnNwZWN0aW9uIG9mIHBhZ2VzIHRoYXQgdGhlIFZNIGluZGljYXRlcyBhcmUK KwkgKiBhbHJlYWR5IGFsbC1mcm96ZW4gKHdoaWNoIG1heSBiZSBzY2FubmVkIGR1ZSB0byBTS0lQ X1BBR0VTX1RIUkVTSE9MRCkuCisJICogSG93ZXZlciwgaWYgRElTQUJMRV9QQUdFX1NLSVBQSU5H IHdhcyBzcGVjaWZpZWQsIHdlIGNhbid0IHRydXN0IHRoZSBWTSwKKwkgKiBzbyB3ZSBtdXN0IGV4 YW1pbmUgdGhlIHBhZ2UgdG8gbWFrZSBzdXJlIGl0IGlzIHRydWx5IGFsbC1mcm96ZW4gYW5kIGZp eAorCSAqIGl0IG90aGVyd2lzZS4KKwkgKi8KKwlpZiAodmFjcmVsLT5za2lwd2l0aHZtKQorCQlw YXJhbXMub3B0aW9ucyB8PSBIRUFQX1BBR0VfUFJVTkVfQUxMT1dfRkFTVF9QQVRIOworCiAJaGVh cF9wYWdlX3BydW5lX2FuZF9mcmVlemUoJnBhcmFtcywKIAkJCQkJCQkgICAmcHJlc3VsdCwKIAkJ CQkJCQkgICAmdmFjcmVsLT5vZmZudW0sCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv aGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKaW5kZXggMDAxMzQwMTIxMzcu LjMwNWVjYzMxYTllIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKKysr IGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBAIC00Miw2ICs0Miw3IEBACiAvKiAib3B0 aW9ucyIgZmxhZyBiaXRzIGZvciBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSAqLwogI2RlZmlu ZSBIRUFQX1BBR0VfUFJVTkVfTUFSS19VTlVTRURfTk9XCQkoMSA8PCAwKQogI2RlZmluZSBIRUFQ X1BBR0VfUFJVTkVfRlJFRVpFCQkJCSgxIDw8IDEpCisjZGVmaW5lIEhFQVBfUEFHRV9QUlVORV9B TExPV19GQVNUX1BBVEgJCSgxIDw8IDIpCiAKIHR5cGVkZWYgc3RydWN0IEJ1bGtJbnNlcnRTdGF0 ZURhdGEgKkJ1bGtJbnNlcnRTdGF0ZTsKIHR5cGVkZWYgc3RydWN0IEdsb2JhbFZpc1N0YXRlIEds b2JhbFZpc1N0YXRlOwotLSAKMi40My4wCgo= --000000000000a1e2a7064d7d2a75 Content-Type: text/x-patch; charset="UTF-8"; name="v42-0003-Use-GlobalVisState-in-vacuum-to-determine-page-l.patch" Content-Disposition: attachment; filename="v42-0003-Use-GlobalVisState-in-vacuum-to-determine-page-l.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmzjdd622 RnJvbSBlMGQxYTQ3MjRmY2VmNjgyNmJkZDg2YzdmYzJkMDY4NjQxNjI0YjVmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE3IERlYyAyMDI1IDE2OjUxOjA1IC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDIgMDMvMTJdIFVzZSBHbG9iYWxWaXNTdGF0ZSBpbiB2YWN1dW0gdG8gZGV0ZXJtaW5l IHBhZ2UKIGxldmVsIHZpc2liaWxpdHkKCkR1cmluZyB2YWN1dW0ncyBmaXJzdCBhbmQgdGhpcmQg cGhhc2VzLCB3ZSBleGFtaW5lIHR1cGxlcycgdmlzaWJpbGl0eSB0bwpkZXRlcm1pbmUgaWYgd2Ug Y2FuIHNldCB0aGUgcGFnZSBhbGwtdmlzaWJsZSBpbiB0aGUgdmlzaWJpbGl0eSBtYXAuCgpQcmV2 aW91c2x5LCB0aGlzIGNoZWNrIGNvbXBhcmVkIHR1cGxlIHhtaW5zIGFnYWluc3QgYSBzaW5nbGUg WElEIGNob3NlbgphdCB0aGUgc3RhcnQgb2YgdmFjdXVtIChPbGRlc3RYbWluKS4gV2Ugbm93IHVz ZSBHbG9iYWxWaXNTdGF0ZSwgd2hpY2gKYWxzbyBlbmFibGVzIGZ1dHVyZSB3b3JrIHRvIHNldCB0 aGUgVk0gZHVyaW5nIG9uLWFjY2VzcyBwcnVuaW5nLCBzaW5jZQpvcmRpbmFyeSBxdWVyaWVzIGhh dmUgYWNjZXNzIHRvIEdsb2JhbFZpc1N0YXRlIGJ1dCBub3QgT2xkZXN0WG1pbi4KClRoaXMgYWxz byBiZW5lZml0cyB2YWN1dW06IGluIHNvbWUgY2FzZXMsIEdsb2JhbFZpc1N0YXRlIG1heSBhZHZh bmNlCmR1cmluZyBhIHZhY3V1bSwgYWxsb3dpbmcgbW9yZSBwYWdlcyB0byBiZWNvbWUgY29uc2lk ZXJlZCBhbGwtdmlzaWJsZS4KQW5kLCBpbiB0aGUgZnV0dXJlLCB3ZSBjb3VsZCBlYXNpbHkgYWRk IGEgaGV1cmlzdGljIHRvIHVwZGF0ZQpHbG9iYWxWaXNTdGF0ZSBtb3JlIGZyZXF1ZW50bHkgZHVy aW5nIHZhY3V1bXMgb2YgbGFyZ2UgdGFibGVzLgoKT2xkZXN0WG1pbiBpcyBzdGlsbCB1c2VkIGZv ciBmcmVlemluZyBhbmQgYXMgYSBiYWNrc3RvcCB0byBlbnN1cmUgd2UKZG9uJ3QgZnJlZXplIGEg ZGVhZCB0dXBsZSB0aGF0IHdhc24ndCB5ZXQgcHJ1bmFibGUgYWNjb3JkaW5nIHRvCkdsb2JhbFZp c1N0YXRlIGluIHRoZSByYXJlIG9jY3VycmVuY2VzIHdoZXJlIEdsb2JhbFZpc1N0YXRlIG1vdmVz CmJhY2t3YXJkcy4KCkJlY2F1c2UgY29tcGFyaW5nIGEgdHJhbnNhY3Rpb24gSUQgYWdhaW5zdCBH bG9iYWxWaXNTdGF0ZSBpcyBtb3JlCmV4cGVuc2l2ZSB0aGFuIGNvbXBhcmluZyBhZ2FpbnN0IGEg c2luZ2xlIFhJRCwgd2UgZGVmZXIgdGhpcyBjaGVjayB1bnRpbAphZnRlciBzY2FubmluZyBhbGwg dHVwbGVzIG9uIHRoZSBwYWdlLiBUaGVyZWZvcmUsIHdlIHBlcmZvcm0gdGhlCkdsb2JhbFZpc1N0 YXRlIGNoZWNrIG9ubHkgb25jZSBwZXIgcGFnZS4gVGhpcyBpcyBzYWZlIGJlY2F1c2UKdmlzaWJp bGl0eV9jdXRvZmZfeGlkIHJlY29yZHMgdGhlIG5ld2VzdCBsaXZlIHhtaW4gb24gdGhlIHBhZ2U7 IGlmIGl0IGlzCmdsb2JhbGx5IHZpc2libGUsIHRoZW4gdGhlIGVudGlyZSBwYWdlIGlzIGFsbC12 aXNpYmxlLgoKVXNpbmcgR2xvYmFsVmlzU3RhdGUgbWVhbnMgb24tYWNjZXNzIHBydW5pbmcgY2Fu IGFsc28gbWFpbnRhaW4KdmlzaWJpbGl0eV9jdXRvZmZfeGlkLCB3aGljaCBpcyByZXF1aXJlZCB0 byBzZXQgdGhlIHZpc2liaWxpdHkgbWFwCm9uLWFjY2VzcyBpbiB0aGUgZnV0dXJlLgoKQXV0aG9y OiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1i eTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogQ2hhbyBM aSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEtpcmlsbCBSZXNoa2UgPHJl c2hrZWtpcmlsbEBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vZmxh dC9icWM0a2g1bWlkZm40NGduamlxZXozYmpxdjR6b2d5ZGd1dmRuNDQ2cml3NDVqY2YzeSU0MDRl ejY2aWw3ZWJ2ayNjNzU1ZWYxNTE1MDdhYmE1ODQ3MWZmYWNhNjA3ZTQ5MwotLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMgfCAzMCArKysrKysrKysrLQogc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAgICAgICB8IDUzICsrKysrKysrKy0t LS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jICAgICAgICB8IDYw ICsrKysrKysrKysrKysrLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1 dW0uYyAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYyAg ICAgICAgIHwgMTkgKysrKy0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oICAgICAgICAg ICAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL3V0aWxzL3NuYXBtZ3IuaCAgICAgICAgICAgICAg ICAgfCAgNCArLQogNyBmaWxlcyBjaGFuZ2VkLCAxMTUgaW5zZXJ0aW9ucygrKSwgNTUgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2li aWxpdHkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMKaW5k ZXggZmM2NGY0MzQzY2UuLmM2NzhmNWEzYzhmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L2hlYXBhbV92aXNpYmlsaXR5LmMKQEAgLTExMzEsNiArMTEzMSwzMSBAQCBIZWFwVHVwbGVTYXRp c2ZpZXNWYWN1dW0oSGVhcFR1cGxlIGh0dXAsIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKIAly ZXR1cm4gcmVzOwogfQogCisvKgorICogV3JhcHBlciBhcm91bmQgR2xvYmFsVmlzVGVzdElzUmVt b3ZhYmxlWGlkKCkgZm9yIHVzZSB3aGVuIGV4YW1pbmluZyBsaXZlCisgKiB0dXBsZXMuIFJldHVy bnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gWElEIG1heSBiZSBjb25zaWRlcmVkIHJ1bm5pbmcgYnkgYXQg bGVhc3QKKyAqIG9uZSBzbmFwc2hvdC4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGFsb25lIGlzIGlu c3VmZmljaWVudCB0byBkZXRlcm1pbmUgdHVwbGUgdmlzaWJpbGl0eTsgY2FsbGVycworICogbXVz dCBhbHNvIGNvbnNpZGVyIHRoZSBYSUQncyBjb21taXQgc3RhdHVzLiBJdHMgcHVycG9zZSBpcyBw dXJlbHkgc2VtYW50aWM6CisgKiB3aGVuIGFwcGxpZWQgdG8gbGl2ZSB0dXBsZXMsIEdsb2JhbFZp c1Rlc3RJc1JlbW92YWJsZVhpZCgpIGlzIGNoZWNraW5nCisgKiB3aGV0aGVyIHRoZSBpbnNlcnRp bmcgdHJhbnNhY3Rpb24gaXMgc3RpbGwgY29uc2lkZXJlZCBydW5uaW5nLCBub3Qgd2hldGhlcgor ICogdGhlIHR1cGxlIGlzIHJlbW92YWJsZS4gTGl2ZSB0dXBsZXMgYXJlLCBieSBkZWZpbml0aW9u LCBub3QgcmVtb3ZhYmxlLCBidXQKKyAqIHRoZSBzbmFwc2hvdCBjcml0ZXJpYSBmb3Ig4oCcdHJh bnNhY3Rpb24gc3RpbGwgcnVubmluZ+KAnSBhcmUgaWRlbnRpY2FsIHRvCisgKiB0aG9zZSB1c2Vk IGZvciByZW1vdmFsIFhJRHMuCisgKgorICogSWYgYWxsb3dfdXBkYXRlIGlzIGZhbHNlLCB0aGUg R2xvYmFsVmlzU3RhdGUgYm91bmRhcmllcyB3aWxsIG5vdCBiZSB1cGRhdGVkLgorICoKKyAqIFNl ZSB0aGUgY29tbWVudCBhYm92ZSBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVbRnVsbF1YaWQoKSBm b3IgZGV0YWlscyBvbiB0aGUKKyAqIHJlcXVpcmVkIHByZWNvbmRpdGlvbnMgZm9yIGNhbGxpbmcg dGhpcyBmdW5jdGlvbi4KKyAqLworYm9vbAorR2xvYmFsVmlzVGVzdFhpZENvbnNpZGVyZWRSdW5u aW5nKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwgVHJhbnNhY3Rpb25JZCB4aWQsCisJCQkJCQkJCSAg Ym9vbCBhbGxvd191cGRhdGUpCit7CisJcmV0dXJuICFHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVY aWQoc3RhdGUsIHhpZCwgYWxsb3dfdXBkYXRlKTsKK30KKwogLyoKICAqIFdvcmsgaG9yc2UgZm9y IEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bSBhbmQgc2ltaWxhciByb3V0aW5lcy4KICAqCkBAIC0x MzU0LDcgKzEzNzksNyBAQCBIZWFwVHVwbGVTYXRpc2ZpZXNOb25WYWN1dW1hYmxlKEhlYXBUdXBs ZSBodHVwLCBTbmFwc2hvdCBzbmFwc2hvdCwKIAl7CiAJCUFzc2VydChUcmFuc2FjdGlvbklkSXNW YWxpZChkZWFkX2FmdGVyKSk7CiAKLQkJaWYgKEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZChz bmFwc2hvdC0+dmlzdGVzdCwgZGVhZF9hZnRlcikpCisJCWlmIChHbG9iYWxWaXNUZXN0SXNSZW1v dmFibGVYaWQoc25hcHNob3QtPnZpc3Rlc3QsIGRlYWRfYWZ0ZXIsIHRydWUpKQogCQkJcmVzID0g SEVBUFRVUExFX0RFQUQ7CiAJfQogCWVsc2UKQEAgLTE0MjAsNyArMTQ0NSw4IEBAIEhlYXBUdXBs ZUlzU3VyZWx5RGVhZChIZWFwVHVwbGUgaHR1cCwgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QpCiAK IAkvKiBEZWxldGVyIGNvbW1pdHRlZCwgc28gdHVwbGUgaXMgZGVhZCBpZiB0aGUgWElEIGlzIG9s ZCBlbm91Z2guICovCiAJcmV0dXJuIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZCh2aXN0ZXN0 LAotCQkJCQkJCQkJICAgSGVhcFR1cGxlSGVhZGVyR2V0UmF3WG1heCh0dXBsZSkpOworCQkJCQkJ CQkJICAgSGVhcFR1cGxlSGVhZGVyR2V0UmF3WG1heCh0dXBsZSksCisJCQkJCQkJCQkgICB0cnVl KTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVh cC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggMjJmMmQ5ZDk3 OTguLmY5ZGI5N2E2ZWRmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVu ZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtMTY2 LDEwICsxNjYsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QKIAkgKiBhbGwtZnJvemVuIGJpdHMgaW4gdGhl IHZpc2liaWxpdHkgbWFwIGNhbiBiZSBzZXQgZm9yIHRoaXMgcGFnZSBhZnRlcgogCSAqIHBydW5p bmcuCiAJICoKLQkgKiB2aXNpYmlsaXR5X2N1dG9mZl94aWQgaXMgdGhlIG5ld2VzdCB4bWluIG9m IGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlLgotCSAqIFRoZSBjYWxsZXIgY2FuIHVzZSBpdCBhcyB0 aGUgY29uZmxpY3QgaG9yaXpvbiwgd2hlbiBzZXR0aW5nIHRoZSBWTQotCSAqIGJpdHMuICBJdCBp cyBvbmx5IHZhbGlkIGlmIHdlIGZyb3plIHNvbWUgdHVwbGVzLCBhbmQgc2V0X2FsbF9mcm96ZW4g aXMKLQkgKiB0cnVlLgorCSAqIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCBpcyB0aGUgbmV3ZXN0IHht aW4gb2YgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UuIEl0CisJICogaXMgdXNlZCBhZnRlciBwcm9j ZXNzaW5nIGFsbCB0dXBsZXMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBwYWdlIGNhbiBiZQorCSAqIGNv bnNpZGVyZWQgYWxsLXZpc2libGUgKGlmIHRoZSBuZXdlc3QgeG1pbiBpcyBzdGlsbCBjb25zaWRl cmVkIHJ1bm5pbmcKKwkgKiBieSBzb21lIHNuYXBzaG90LCBpdCBjYW5ub3QgYmUpLiBJdCBpcyBh bHNvIHVzZWQgYnkgdGhlIGNhbGxlciBhcyB0aGUKKwkgKiBjb25mbGljdCBob3Jpem9uIHdoZW4g c2V0dGluZyB0aGUgVk0gYml0cywgdW5sZXNzIHdlIGZyb3plIGFsbCB0dXBsZXMKKwkgKiBvbiB0 aGUgcGFnZSAoaW4gd2hpY2ggY2FzZSB0aGUgY29uZmxpY3QgeGlkIHdhcyBhbHJlYWR5IGluY2x1 ZGVkIGluIHRoZQorCSAqIFdBTCByZWNvcmQpLgogCSAqCiAJICogTk9URTogc2V0X2FsbF92aXNp YmxlIGFuZCBzZXRfYWxsX2Zyb3plbiBpbml0aWFsbHkgZG9uJ3QgaW5jbHVkZQogCSAqIExQX0RF QUQgaXRlbXMuIFRoYXQncyBjb252ZW5pZW50IGZvciBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6 ZSgpIHRvCkBAIC0yODUsNyArMjg4LDcgQEAgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiBy ZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwgQnVmZmVyICp2bWJ1ZmZlcikKIAkgKi8KIAl2aXN0ZXN0 ID0gR2xvYmFsVmlzVGVzdEZvcihyZWxhdGlvbik7CiAKLQlpZiAoIUdsb2JhbFZpc1Rlc3RJc1Jl bW92YWJsZVhpZCh2aXN0ZXN0LCBwcnVuZV94aWQpKQorCWlmICghR2xvYmFsVmlzVGVzdElzUmVt b3ZhYmxlWGlkKHZpc3Rlc3QsIHBydW5lX3hpZCwgdHJ1ZSkpCiAJCXJldHVybjsKIAogCS8qCkBA IC0xMDg3LDYgKzEwOTAsMTggQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVl emVQYXJhbXMgKnBhcmFtcywKIAkgKi8KIAlwcnVuZV9mcmVlemVfcGxhbigmcHJzdGF0ZSwgb2Zm X2xvYyk7CiAKKwkvKgorCSAqIEFmdGVyIHByb2Nlc3NpbmcgYWxsIHRoZSBsaXZlIHR1cGxlcyBv biB0aGUgcGFnZSwgaWYgdGhlIG5ld2VzdCB4bWluCisJICogYW1vbmdzdCB0aGVtIG1heSBiZSBj b25zaWRlcmVkIHJ1bm5pbmcgYnkgYW55IHNuYXBzaG90LCB0aGUgcGFnZSBjYW5ub3QKKwkgKiBi ZSBhbGwtdmlzaWJsZS4KKwkgKi8KKwlpZiAocHJzdGF0ZS5zZXRfYWxsX3Zpc2libGUgJiYKKwkJ VHJhbnNhY3Rpb25JZElzTm9ybWFsKHByc3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkKSAmJgor CQlHbG9iYWxWaXNUZXN0WGlkQ29uc2lkZXJlZFJ1bm5pbmcocHJzdGF0ZS52aXN0ZXN0LAorCQkJ CQkJCQkJCSAgcHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQsCisJCQkJCQkJCQkJICB0cnVl KSkKKwkJcHJzdGF0ZS5zZXRfYWxsX3Zpc2libGUgPSBwcnN0YXRlLnNldF9hbGxfZnJvemVuID0g ZmFsc2U7CisKIAkvKgogCSAqIElmIGNoZWNrc3VtcyBhcmUgZW5hYmxlZCwgY2FsbGluZyBoZWFw X3BydW5lX3NhdGlzZmllc192YWN1dW0oKSB3aGlsZQogCSAqIGNoZWNraW5nIHR1cGxlIHZpc2li aWxpdHkgaW5mb3JtYXRpb24gaW4gcHJ1bmVfZnJlZXplX3BsYW4oKSBtYXkgaGF2ZQpAQCAtMTI4 OSw3ICsxMzA0LDcgQEAgaGVhcF9wcnVuZV9zYXRpc2ZpZXNfdmFjdXVtKFBydW5lU3RhdGUgKnBy c3RhdGUsIEhlYXBUdXBsZSB0dXApCiAJICogaWYgdGhlIEdsb2JhbFZpc1N0YXRlIGhhcyBiZWVu IHVwZGF0ZWQgc2luY2UgdGhlIGJlZ2lubmluZyBvZiB2YWN1dW1pbmcKIAkgKiB0aGUgcmVsYXRp b24uCiAJICovCi0JaWYgKEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZChwcnN0YXRlLT52aXN0 ZXN0LCBkZWFkX2FmdGVyKSkKKwlpZiAoR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKHByc3Rh dGUtPnZpc3Rlc3QsIGRlYWRfYWZ0ZXIsIHRydWUpKQogCQlyZXR1cm4gSEVBUFRVUExFX0RFQUQ7 CiAKIAlyZXR1cm4gcmVzOwpAQCAtMTc1NSwyOSArMTc3MCwxNSBAQCBoZWFwX3BydW5lX3JlY29y ZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJlciBv ZmZudW0pCiAJCQkJfQogCiAJCQkJLyoKLQkJCQkgKiBUaGUgaW5zZXJ0ZXIgZGVmaW5pdGVseSBj b21taXR0ZWQuICBCdXQgaXMgaXQgb2xkIGVub3VnaAotCQkJCSAqIHRoYXQgZXZlcnlvbmUgc2Vl cyBpdCBhcyBjb21taXR0ZWQ/ICBBIEZyb3plblRyYW5zYWN0aW9uSWQKLQkJCQkgKiBpcyBzZWVu IGFzIGNvbW1pdHRlZCB0byBldmVyeW9uZS4gIE90aGVyd2lzZSwgd2UgY2hlY2sgaWYKLQkJCQkg KiB0aGVyZSBpcyBhIHNuYXBzaG90IHRoYXQgY29uc2lkZXJzIHRoaXMgeGlkIHRvIHN0aWxsIGJl Ci0JCQkJICogcnVubmluZywgYW5kIGlmIHNvLCB3ZSBkb24ndCBjb25zaWRlciB0aGUgcGFnZSBh bGwtdmlzaWJsZS4KKwkJCQkgKiBUaGUgaW5zZXJ0ZXIgZGVmaW5pdGVseSBjb21taXR0ZWQuIEJ1 dCB3ZSBkb24ndCBrbm93IGlmIGl0CisJCQkJICogaXMgb2xkIGVub3VnaCB0aGF0IGV2ZXJ5b25l IHNlZXMgaXQgYXMgY29tbWl0dGVkLiBMYXRlciwKKwkJCQkgKiBhZnRlciBwcm9jZXNzaW5nIGFs bCB0aGUgdHVwbGVzIG9uIHRoZSBwYWdlLCB3ZSdsbCBjaGVjayBpZgorCQkJCSAqIHRoZXJlIGlz IGFueSBzbmFwc2hvdCB0aGF0IHN0aWxsIGNvbnNpZGVycyB0aGUgbmV3ZXN0IHhpZAorCQkJCSAq IG9uIHRoZSBwYWdlIHRvIGJlIHJ1bm5pbmcuIElmIHNvLCB3ZSBkb24ndCBjb25zaWRlciB0aGUK KwkJCQkgKiBwYWdlIGFsbC12aXNpYmxlLgogCQkJCSAqLwogCQkJCXhtaW4gPSBIZWFwVHVwbGVI ZWFkZXJHZXRYbWluKGh0dXApOwogCi0JCQkJLyoKLQkJCQkgKiBGb3Igbm93IGFsd2F5cyB1c2Ug cHJzdGF0ZS0+Y3V0b2ZmcyBmb3IgdGhpcyB0ZXN0LCBiZWNhdXNlCi0JCQkJICogd2Ugb25seSB1 cGRhdGUgJ3NldF9hbGxfdmlzaWJsZScgYW5kICdzZXRfYWxsX2Zyb3plbicgd2hlbgotCQkJCSAq IGZyZWV6aW5nIGlzIHJlcXVlc3RlZC4gV2UgY291bGQgdXNlCi0JCQkJICogR2xvYmFsVmlzVGVz dElzUmVtb3ZhYmxlWGlkIGluc3RlYWQsIGlmIGEgbm9uLWZyZWV6aW5nCi0JCQkJICogY2FsbGVy IHdhbnRlZCB0byBzZXQgdGhlIFZNIGJpdC4KLQkJCQkgKi8KLQkJCQlBc3NlcnQocHJzdGF0ZS0+ Y3V0b2Zmcyk7Ci0JCQkJaWYgKCFUcmFuc2FjdGlvbklkUHJlY2VkZXMoeG1pbiwgcHJzdGF0ZS0+ Y3V0b2Zmcy0+T2xkZXN0WG1pbikpCi0JCQkJewotCQkJCQlwcnN0YXRlLT5zZXRfYWxsX3Zpc2li bGUgPSBmYWxzZTsKLQkJCQkJcHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4gPSBmYWxzZTsKLQkJCQkJ YnJlYWs7Ci0JCQkJfQotCiAJCQkJLyogVHJhY2sgbmV3ZXN0IHhtaW4gb24gcGFnZS4gKi8KIAkJ CQlpZiAoVHJhbnNhY3Rpb25JZEZvbGxvd3MoeG1pbiwgcHJzdGF0ZS0+dmlzaWJpbGl0eV9jdXRv ZmZfeGlkKSAmJgogCQkJCQlUcmFuc2FjdGlvbklkSXNOb3JtYWwoeG1pbikpCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggMWE0NDYwNTBkODUuLjc5Nzk3M2Q3YmQwIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC00NjgsMTMgKzQ2OCwxNCBAQCBzdGF0 aWMgdm9pZCBkZWFkX2l0ZW1zX2NsZWFudXAoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIAogI2lmZGVm IFVTRV9BU1NFUlRfQ0hFQ0tJTkcKIHN0YXRpYyBib29sIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJs ZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCi0JCQkJCQkJCQkgVHJhbnNhY3Rpb25JZCBPbGRl c3RYbWluLAorCQkJCQkJCQkJIEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0LAogCQkJCQkJCQkJIGJv b2wgKmFsbF9mcm96ZW4sCiAJCQkJCQkJCQkgVHJhbnNhY3Rpb25JZCAqdmlzaWJpbGl0eV9jdXRv ZmZfeGlkLAogCQkJCQkJCQkJIE9mZnNldE51bWJlciAqbG9nZ2luZ19vZmZudW0pOwogI2VuZGlm CiBzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVs LCBCdWZmZXIgYnVmLAotCQkJCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKKwkJ CQkJCQkJCQkgICBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKKwkJCQkJCQkJCQkgICBib29sIGFs bG93X3VwZGF0ZV92aXN0ZXN0LAogCQkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqZGVhZG9mZnNl dHMsCiAJCQkJCQkJCQkJICAgaW50IG5kZWFkb2Zmc2V0cywKIAkJCQkJCQkJCQkgICBib29sICph bGxfZnJvemVuLApAQCAtMjA4OSw3ICsyMDkwLDcgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3Rh dGUgKnZhY3JlbCwKIAkJQXNzZXJ0KHByZXN1bHQubHBkZWFkX2l0ZW1zID09IDApOwogCiAJCUFz c2VydChoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUodmFjcmVsLT5yZWwsIGJ1ZiwKLQkJCQkJCQkJ CQl2YWNyZWwtPmN1dG9mZnMuT2xkZXN0WG1pbiwgJmRlYnVnX2FsbF9mcm96ZW4sCisJCQkJCQkJ CQkJdmFjcmVsLT52aXN0ZXN0LCAmZGVidWdfYWxsX2Zyb3plbiwKIAkJCQkJCQkJCQkmZGVidWdf Y3V0b2ZmLCAmdmFjcmVsLT5vZmZudW0pKTsKIAogCQlBc3NlcnQocHJlc3VsdC5zZXRfYWxsX2Zy b3plbiA9PSBkZWJ1Z19hbGxfZnJvemVuKTsKQEAgLTI4NTIsNyArMjg1Myw3IEBAIGxhenlfdmFj dXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZm ZXIgYnVmZmVyLAogCSAqIGRvbmUgb3V0c2lkZSB0aGUgY3JpdGljYWwgc2VjdGlvbi4KIAkgKi8K IAlpZiAoaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKHZhY3JlbC0+cmVsLCBidWZmZXIs Ci0JCQkJCQkJCQkgICB2YWNyZWwtPmN1dG9mZnMuT2xkZXN0WG1pbiwKKwkJCQkJCQkJCSAgIHZh Y3JlbC0+dmlzdGVzdCwgdHJ1ZSwKIAkJCQkJCQkJCSAgIGRlYWRvZmZzZXRzLCBudW1fb2Zmc2V0 cywKIAkJCQkJCQkJCSAgICZhbGxfZnJvemVuLCAmdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAogCQkJ CQkJCQkJICAgJnZhY3JlbC0+b2ZmbnVtKSkKQEAgLTM2MTQsMTQgKzM2MTUsMTkgQEAgZGVhZF9p dGVtc19jbGVhbnVwKExWUmVsU3RhdGUgKnZhY3JlbCkKICAqLwogc3RhdGljIGJvb2wKIGhlYXBf cGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCi0JCQkJCQkgVHJh bnNhY3Rpb25JZCBPbGRlc3RYbWluLAorCQkJCQkJIEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0LAog CQkJCQkJIGJvb2wgKmFsbF9mcm96ZW4sCiAJCQkJCQkgVHJhbnNhY3Rpb25JZCAqdmlzaWJpbGl0 eV9jdXRvZmZfeGlkLAogCQkJCQkJIE9mZnNldE51bWJlciAqbG9nZ2luZ19vZmZudW0pCiB7Ci0K KwkvKgorCSAqIFBhc3MgYWxsb3dfdXBkYXRlX3Zpc3Rlc3QgYXMgZmFsc2Ugc28gdGhhdCB0aGUg R2xvYmFsVmlzU3RhdGUKKwkgKiBib3VuZGFyaWVzIHVzZWQgaGVyZSBtYXRjaCB0aG9zZSB1c2Vk IGJ5IHRoZSBwcnVuaW5nIGNvZGUgd2UgYXJlCisJICogY3Jvc3MtY2hlY2tpbmcuIEFsbG93aW5n IGFuIHVwZGF0ZSBjb3VsZCBtb3ZlIHRoZSBib3VuZGFyaWVzIGJldHdlZW4KKwkgKiB0aGUgdHdv IGNhbGxzLCBjYXVzaW5nIGEgc3B1cmlvdXMgYXNzZXJ0aW9uIGZhaWx1cmUuCisJICovCiAJcmV0 dXJuIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShyZWwsIGJ1ZiwKLQkJCQkJCQkJCQkg IE9sZGVzdFhtaW4sCisJCQkJCQkJCQkJICB2aXN0ZXN0LCBmYWxzZSwKIAkJCQkJCQkJCQkgIE5V TEwsIDAsCiAJCQkJCQkJCQkJICBhbGxfZnJvemVuLAogCQkJCQkJCQkJCSAgdmlzaWJpbGl0eV9j dXRvZmZfeGlkLApAQCAtMzY0Miw3ICszNjQ4LDkgQEAgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxl KFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGFnZSBp cyBhbGwtdmlzaWJsZSBvdGhlciB0aGFuIHRoZSBwcm92aWRlZAogICogZGVhZG9mZnNldHMgYW5k IGZhbHNlIG90aGVyd2lzZS4KICAqCi0gKiBPbGRlc3RYbWluIGlzIHVzZWQgdG8gZGV0ZXJtaW5l IHZpc2liaWxpdHkuCisgKiB2aXN0ZXN0IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHZpc2liaWxpdHku IElmIGFsbG93X3VwZGF0ZV92aXN0ZXN0IGlzIHRydWUsCisgKiB0aGUgYm91bmRhcmllcyBvZiB0 aGUgR2xvYmFsVmlzU3RhdGUgbWF5IGJlIHVwZGF0ZWQgd2hlbiBjaGVja2luZyB0aGUKKyAqIHZp c2liaWxpdHkgb2YgdGhlIG5ld2VzdCBsaXZlIFhJRCBvbiB0aGUgcGFnZS4KICAqCiAgKiBPdXRw dXQgcGFyYW1ldGVyczoKICAqCkBAIC0zNjYxLDcgKzM2NjksOCBAQCBoZWFwX3BhZ2VfaXNfYWxs X3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogICovCiBzdGF0aWMgYm9vbAogaGVh cF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKLQkJ CQkJCQkgICBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkJICAgR2xvYmFsVmlzU3Rh dGUgKnZpc3Rlc3QsCisJCQkJCQkJICAgYm9vbCBhbGxvd191cGRhdGVfdmlzdGVzdCwKIAkJCQkJ CQkgICBPZmZzZXROdW1iZXIgKmRlYWRvZmZzZXRzLAogCQkJCQkJCSAgIGludCBuZGVhZG9mZnNl dHMsCiAJCQkJCQkJICAgYm9vbCAqYWxsX2Zyb3plbiwKQEAgLTM3NDIsNyArMzc1MSw3IEBAIGhl YXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJ CQkJewogCQkJCQlUcmFuc2FjdGlvbklkIHhtaW47CiAKLQkJCQkJLyogQ2hlY2sgY29tbWVudHMg aW4gbGF6eV9zY2FuX3BydW5lLiAqLworCQkJCQkvKiBDaGVjayBoZWFwX3BydW5lX3JlY29yZF91 bmNoYW5nZWRfbHBfbm9ybWFsIGNvbW1lbnRzICovCiAJCQkJCWlmICghSGVhcFR1cGxlSGVhZGVy WG1pbkNvbW1pdHRlZCh0dXBsZS50X2RhdGEpKQogCQkJCQl7CiAJCQkJCQlhbGxfdmlzaWJsZSA9 IGZhbHNlOwpAQCAtMzc1MSwxNiArMzc2MCwxNyBAQCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zp c2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogCQkJCQl9CiAKIAkJCQkJLyoKLQkJCQkJ ICogVGhlIGluc2VydGVyIGRlZmluaXRlbHkgY29tbWl0dGVkLiBCdXQgaXMgaXQgb2xkIGVub3Vn aAotCQkJCQkgKiB0aGF0IGV2ZXJ5b25lIHNlZXMgaXQgYXMgY29tbWl0dGVkPworCQkJCQkgKiBU aGUgaW5zZXJ0ZXIgZGVmaW5pdGVseSBjb21taXR0ZWQuIEJ1dCB3ZSBkb24ndCBrbm93IGlmCisJ CQkJCSAqIGl0IGlzIG9sZCBlbm91Z2ggdGhhdCBldmVyeW9uZSBzZWVzIGl0IGFzIGNvbW1pdHRl ZC4KKwkJCQkJICogRG9uJ3QgY2hlY2sgdGhhdCBub3cuCisJCQkJCSAqCisJCQkJCSAqIElmIHdl IHNjYW4gYWxsIHR1cGxlcyB3aXRob3V0IGZpbmRpbmcgb25lIHRoYXQgcHJldmVudHMKKwkJCQkJ ICogdGhlIHBhZ2UgZnJvbSBiZWluZyBhbGwtdmlzaWJsZSwgd2UgdGhlbiBjaGVjayB3aGV0aGVy CisJCQkJCSAqIGFueSBzbmFwc2hvdCBzdGlsbCBjb25zaWRlcnMgdGhlIG5ld2VzdCBYSUQgb24g dGhlIHBhZ2UKKwkJCQkJICogdG8gYmUgcnVubmluZy4gSW4gdGhhdCBjYXNlLCB0aGUgcGFnZSBp cyBub3QgY29uc2lkZXJlZAorCQkJCQkgKiBhbGwtdmlzaWJsZS4KIAkJCQkJICovCiAJCQkJCXht aW4gPSBIZWFwVHVwbGVIZWFkZXJHZXRYbWluKHR1cGxlLnRfZGF0YSk7Ci0JCQkJCWlmICghVHJh bnNhY3Rpb25JZFByZWNlZGVzKHhtaW4sIE9sZGVzdFhtaW4pKQotCQkJCQl7Ci0JCQkJCQlhbGxf dmlzaWJsZSA9IGZhbHNlOwotCQkJCQkJKmFsbF9mcm96ZW4gPSBmYWxzZTsKLQkJCQkJCWJyZWFr OwotCQkJCQl9CiAKIAkJCQkJLyogVHJhY2sgbmV3ZXN0IHhtaW4gb24gcGFnZS4gKi8KIAkJCQkJ aWYgKFRyYW5zYWN0aW9uSWRGb2xsb3dzKHhtaW4sICp2aXNpYmlsaXR5X2N1dG9mZl94aWQpICYm CkBAIC0zNzg5LDYgKzM3OTksMjAgQEAgaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJl bGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAkJfQogCX0JCQkJCQkJLyogc2NhbiBhbG9uZyBwYWdl ICovCiAKKwkvKgorCSAqIEFmdGVyIHByb2Nlc3NpbmcgYWxsIHRoZSBsaXZlIHR1cGxlcyBvbiB0 aGUgcGFnZSwgaWYgdGhlIG5ld2VzdCB4bWluCisJICogYW1vbmcgdGhlbSBtYXkgc3RpbGwgYmUg Y29uc2lkZXJlZCBydW5uaW5nIGJ5IGFueSBzbmFwc2hvdCwgdGhlIHBhZ2UKKwkgKiBjYW5ub3Qg YmUgYWxsLXZpc2libGUuCisJICovCisJaWYgKGFsbF92aXNpYmxlICYmCisJCVRyYW5zYWN0aW9u SWRJc05vcm1hbCgqdmlzaWJpbGl0eV9jdXRvZmZfeGlkKSAmJgorCQlHbG9iYWxWaXNUZXN0WGlk Q29uc2lkZXJlZFJ1bm5pbmcodmlzdGVzdCwgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJ CQkJCQkgIGFsbG93X3VwZGF0ZV92aXN0ZXN0KSkKKwl7CisJCWFsbF92aXNpYmxlID0gZmFsc2U7 CisJCSphbGxfZnJvemVuID0gZmFsc2U7CisJfQorCiAJLyogQ2xlYXIgdGhlIG9mZnNldCBpbmZv cm1hdGlvbiBvbmNlIHdlIGhhdmUgcHJvY2Vzc2VkIHRoZSBnaXZlbiBwYWdlLiAqLwogCSpsb2dn aW5nX29mZm51bSA9IEludmFsaWRPZmZzZXROdW1iZXI7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0 L3NwZ3ZhY3V1bS5jCmluZGV4IDZiNzExN2I1NmIyLi5jNDYxZjhkYzAyZCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jCkBAIC01MzYsNyArNTM2LDcgQEAgdmFjdXVtUmVkaXJl Y3RBbmRQbGFjZWhvbGRlcihSZWxhdGlvbiBpbmRleCwgUmVsYXRpb24gaGVhcHJlbCwgQnVmZmVy IGJ1ZmZlcikKIAkJICovCiAJCWlmIChkdC0+dHVwc3RhdGUgPT0gU1BHSVNUX1JFRElSRUNUICYm CiAJCQkoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKGR0LT54aWQpIHx8Ci0JCQkgR2xvYmFsVmlzVGVz dElzUmVtb3ZhYmxlWGlkKHZpc3Rlc3QsIGR0LT54aWQpKSkKKwkJCSBHbG9iYWxWaXNUZXN0SXNS ZW1vdmFibGVYaWQodmlzdGVzdCwgZHQtPnhpZCwgdHJ1ZSkpKQogCQl7CiAJCQlkdC0+dHVwc3Rh dGUgPSBTUEdJU1RfUExBQ0VIT0xERVI7CiAJCQlBc3NlcnQob3BhcXVlLT5uUmVkaXJlY3Rpb24g PiAwKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jIGIv c3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKaW5kZXggMGY5MTM4OTdhY2MuLjI3 ZTVhZGVlYmZiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXku YworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYwpAQCAtNDIyMywxMSAr NDIyMywxNyBAQCBHbG9iYWxWaXNVcGRhdGUodm9pZCkKICAqIFRoZSBzdGF0ZSBwYXNzZWQgbmVl ZHMgdG8gaGF2ZSBiZWVuIGluaXRpYWxpemVkIGZvciB0aGUgcmVsYXRpb24gZnhpZCBpcwogICog ZnJvbSAoTlVMTCBpcyBhbHNvIE9LKSwgb3RoZXJ3aXNlIHRoZSByZXN1bHQgbWF5IG5vdCBiZSBj b3JyZWN0LgogICoKKyAqIElmIGFsbG93X3VwZGF0ZSBpcyBmYWxzZSwgdGhlIEdsb2JhbFZpc1N0 YXRlIGJvdW5kYXJpZXMgd2lsbCBub3QgYmUgdXBkYXRlZAorICogZXZlbiBpZiBpdCB3b3VsZCBv dGhlcndpc2UgYmUgYmVuZWZpY2lhbC4gVGhpcyBpcyB1c2VmdWwgZm9yIGNhbGxlcnMgdGhhdAor ICogZG8gbm90IHdhbnQgR2xvYmFsVmlzU3RhdGUgdG8gYWR2YW5jZSBhdCBhbGwsIGZvciBleGFt cGxlIGJlY2F1c2UgdGhleSBuZWVkCisgKiBhIGNvbnNlcnZhdGl2ZSBhbnN3ZXIgYmFzZWQgb24g dGhlIGN1cnJlbnQgYm91bmRhcmllcy4KKyAqCiAgKiBTZWUgY29tbWVudCBmb3IgR2xvYmFsVmlz U3RhdGUgZm9yIGRldGFpbHMuCiAgKi8KIGJvb2wKIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZUZ1 bGxYaWQoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLAotCQkJCQkJCQlGdWxsVHJhbnNhY3Rpb25JZCBm eGlkKQorCQkJCQkJCQlGdWxsVHJhbnNhY3Rpb25JZCBmeGlkLAorCQkJCQkJCQlib29sIGFsbG93 X3VwZGF0ZSkKIHsKIAkvKgogCSAqIElmIGZ4aWQgaXMgb2xkZXIgdGhhbiBtYXliZV9uZWVkZWQg Ym91bmQsIGl0IGRlZmluaXRlbHkgaXMgdmlzaWJsZSB0bwpAQCAtNDI0OCw3ICs0MjU0LDcgQEAg R2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlRnVsbFhpZChHbG9iYWxWaXNTdGF0ZSAqc3RhdGUsCiAJ ICogbWlnaHQgbm90IGV4aXN0IGEgc25hcHNob3QgY29uc2lkZXJpbmcgZnhpZCBydW5uaW5nLiBJ ZiBpdCBtYWtlcyBzZW5zZSwKIAkgKiB1cGRhdGUgYm91bmRhcmllcyBhbmQgcmVjaGVjay4KIAkg Ki8KLQlpZiAoR2xvYmFsVmlzVGVzdFNob3VsZFVwZGF0ZShzdGF0ZSkpCisJaWYgKGFsbG93X3Vw ZGF0ZSAmJiBHbG9iYWxWaXNUZXN0U2hvdWxkVXBkYXRlKHN0YXRlKSkKIAl7CiAJCUdsb2JhbFZp c1VwZGF0ZSgpOwogCkBAIC00MjY4LDcgKzQyNzQsOCBAQCBHbG9iYWxWaXNUZXN0SXNSZW1vdmFi bGVGdWxsWGlkKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwKICAqIHJlbGZyb3plbnhpZCkuCiAgKi8K IGJvb2wKLUdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZChHbG9iYWxWaXNTdGF0ZSAqc3RhdGUs IFRyYW5zYWN0aW9uSWQgeGlkKQorR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKEdsb2JhbFZp c1N0YXRlICpzdGF0ZSwgVHJhbnNhY3Rpb25JZCB4aWQsCisJCQkJCQkJYm9vbCBhbGxvd191cGRh dGUpCiB7CiAJRnVsbFRyYW5zYWN0aW9uSWQgZnhpZDsKIApAQCAtNDI4Miw3ICs0Mjg5LDcgQEAg R2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwgVHJhbnNh Y3Rpb25JZCB4aWQpCiAJICovCiAJZnhpZCA9IEZ1bGxYaWRSZWxhdGl2ZVRvKHN0YXRlLT5kZWZp bml0ZWx5X25lZWRlZCwgeGlkKTsKIAotCXJldHVybiBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVG dWxsWGlkKHN0YXRlLCBmeGlkKTsKKwlyZXR1cm4gR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlRnVs bFhpZChzdGF0ZSwgZnhpZCwgYWxsb3dfdXBkYXRlKTsKIH0KIAogLyoKQEAgLTQyOTYsNyArNDMw Myw3IEBAIEdsb2JhbFZpc0NoZWNrUmVtb3ZhYmxlRnVsbFhpZChSZWxhdGlvbiByZWwsIEZ1bGxU cmFuc2FjdGlvbklkIGZ4aWQpCiAKIAlzdGF0ZSA9IEdsb2JhbFZpc1Rlc3RGb3IocmVsKTsKIAot CXJldHVybiBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVGdWxsWGlkKHN0YXRlLCBmeGlkKTsKKwly ZXR1cm4gR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlRnVsbFhpZChzdGF0ZSwgZnhpZCwgdHJ1ZSk7 CiB9CiAKIC8qCkBAIC00MzEwLDcgKzQzMTcsNyBAQCBHbG9iYWxWaXNDaGVja1JlbW92YWJsZVhp ZChSZWxhdGlvbiByZWwsIFRyYW5zYWN0aW9uSWQgeGlkKQogCiAJc3RhdGUgPSBHbG9iYWxWaXNU ZXN0Rm9yKHJlbCk7CiAKLQlyZXR1cm4gR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKHN0YXRl LCB4aWQpOworCXJldHVybiBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQoc3RhdGUsIHhpZCwg dHJ1ZSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgg Yi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKaW5kZXggMzA1ZWNjMzFhOWUuLjg4MTVhY2Nj YWZiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKKysrIGIvc3JjL2lu Y2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBAIC00ODAsNiArNDgwLDggQEAgZXh0ZXJuIFRNX1Jlc3Vs dCBIZWFwVHVwbGVTYXRpc2ZpZXNVcGRhdGUoSGVhcFR1cGxlIGh0dXAsIENvbW1hbmRJZCBjdXJj aWQsCiAJCQkJCQkJCQkJICBCdWZmZXIgYnVmZmVyKTsKIGV4dGVybiBIVFNWX1Jlc3VsdCBIZWFw VHVwbGVTYXRpc2ZpZXNWYWN1dW0oSGVhcFR1cGxlIGh0dXAsIFRyYW5zYWN0aW9uSWQgT2xkZXN0 WG1pbiwKIAkJCQkJCQkJCQkJQnVmZmVyIGJ1ZmZlcik7CisKK2V4dGVybiBib29sIEdsb2JhbFZp c1Rlc3RYaWRDb25zaWRlcmVkUnVubmluZyhHbG9iYWxWaXNTdGF0ZSAqc3RhdGUsIFRyYW5zYWN0 aW9uSWQgeGlkLCBib29sIGFsbG93X3VwZGF0ZSk7CiBleHRlcm4gSFRTVl9SZXN1bHQgSGVhcFR1 cGxlU2F0aXNmaWVzVmFjdXVtSG9yaXpvbihIZWFwVHVwbGUgaHR1cCwgQnVmZmVyIGJ1ZmZlciwK IAkJCQkJCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgKmRlYWRfYWZ0ZXIpOwogZXh0ZXJuIHZvaWQg SGVhcFR1cGxlU2V0SGludEJpdHMoSGVhcFR1cGxlSGVhZGVyIHR1cGxlLCBCdWZmZXIgYnVmZmVy LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvc25hcG1nci5oIGIvc3JjL2luY2x1ZGUv dXRpbHMvc25hcG1nci5oCmluZGV4IDhjOTE5ZDI2NDBlLi5kYjkwMzcwOWM0OSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvdXRpbHMvc25hcG1nci5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3Nu YXBtZ3IuaApAQCAtMTE1LDggKzExNSw4IEBAIGV4dGVybiBjaGFyICpFeHBvcnRTbmFwc2hvdChT bmFwc2hvdCBzbmFwc2hvdCk7CiAgKi8KIHR5cGVkZWYgc3RydWN0IEdsb2JhbFZpc1N0YXRlIEds b2JhbFZpc1N0YXRlOwogZXh0ZXJuIEdsb2JhbFZpc1N0YXRlICpHbG9iYWxWaXNUZXN0Rm9yKFJl bGF0aW9uIHJlbCk7Ci1leHRlcm4gYm9vbCBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQoR2xv YmFsVmlzU3RhdGUgKnN0YXRlLCBUcmFuc2FjdGlvbklkIHhpZCk7Ci1leHRlcm4gYm9vbCBHbG9i YWxWaXNUZXN0SXNSZW1vdmFibGVGdWxsWGlkKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwgRnVsbFRy YW5zYWN0aW9uSWQgZnhpZCk7CitleHRlcm4gYm9vbCBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVY aWQoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLCBUcmFuc2FjdGlvbklkIHhpZCwgYm9vbCBhbGxvd191 cGRhdGUpOworZXh0ZXJuIGJvb2wgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlRnVsbFhpZChHbG9i YWxWaXNTdGF0ZSAqc3RhdGUsIEZ1bGxUcmFuc2FjdGlvbklkIGZ4aWQsIGJvb2wgYWxsb3dfdXBk YXRlKTsKIGV4dGVybiBib29sIEdsb2JhbFZpc0NoZWNrUmVtb3ZhYmxlWGlkKFJlbGF0aW9uIHJl bCwgVHJhbnNhY3Rpb25JZCB4aWQpOwogZXh0ZXJuIGJvb2wgR2xvYmFsVmlzQ2hlY2tSZW1vdmFi bGVGdWxsWGlkKFJlbGF0aW9uIHJlbCwgRnVsbFRyYW5zYWN0aW9uSWQgZnhpZCk7CiAKLS0gCjIu NDMuMAoK --000000000000a1e2a7064d7d2a75 Content-Type: text/x-patch; charset="US-ASCII"; name="v42-0004-Keep-newest-live-XID-up-to-date-even-if-page-not.patch" Content-Disposition: attachment; filename="v42-0004-Keep-newest-live-XID-up-to-date-even-if-page-not.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmzjdgm93 RnJvbSBkZjdiNjg0NjBmOWI2MTY2ZTcxNzk2NDAxNjFjMzQ1MmM3MTJkMmE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI4IEZlYiAyMDI2IDE2OjA2OjUxIC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDIgMDQvMTJdIEtlZXAgbmV3ZXN0IGxpdmUgWElEIHVwLXRvLWRhdGUgZXZlbiBpZiBw YWdlIG5vdAogYWxsLXZpc2libGUKCkR1cmluZyBwcnVuaW5nLCB3ZSBrZWVwIHRyYWNrIG9mIHRo ZSBuZXdlc3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUKcGFnZSB2aXNpYmxlIHRvIGFsbCBy dW5uaW5nIGFuZCBmdXR1cmUgdHJhbnNhY3Rpb25zIHNvIHRoYXQgd2UgY2FuIHVzZQppdCBsYXRl ciBhcyB0aGUgc25hcHNob3QgY29uZmxpY3QgaG9yaXpvbiB3aGVuIHNldHRpbmcgdGhlIFZNIGlm IHRoZQpwYWdlIHR1cm5zIG91dCB0byBiZSBhbGwtdmlzaWJsZS4KClByZXZpb3VzbHksIHdlIHN0 b3BwZWQgdXBkYXRpbmcgdGhpcyB2YWx1ZSBvbmNlIHdlIGRldGVybWluZWQgdGhlIHBhZ2UKd2Fz IG5vdCBhbGwtdmlzaWJsZS4gSG93ZXZlciwgbWFpbnRhaW5pbmcgaXQgZXZlbiB3aGVuIHRoZSBw YWdlIGlzIG5vdAphbGwtdmlzaWJsZSBpcyBpbmV4cGVuc2l2ZSBhbmQgbWFrZXMgdGhlIHNuYXBz aG90IGNvbmZsaWN0IGhvcml6b24KY2FsY3VsYXRpb24gY2xlYXJlci4gVGhpcyBndWFyYW50ZWVz IGl0IHdvbid0IGNvbnRhaW4gYSBzdGFsZSB2YWx1ZS4KClNpbmNlIHdlJ2xsIGtlZXAgaXQgdXAg dG8gZGF0ZSBhbGwgdGhlIHRpbWUgbm93IGFueXdheSwgdGhlcmUncyBubwpyZWFzb24gbm90IHRv IG1haW50YWluIGFsbF92aXNpYmxlIGZvciBvbi1hY2Nlc3MgcHJ1bmluZy4gVGhpcyB3aWxsCmFs bG93IHVzIHRvIHNldCB0aGUgVk0gb24tYWNjZXNzIGluIHRoZSBmdXR1cmUuCgpBdXRob3I6IE1l bGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBB bmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxs aS5ldmFuLmNoYW9AZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL2Jx YzRraDVtaWRmbjQ0Z25qaXFlejNianF2NHpvZ3lkZ3V2ZG40NDZyaXc0NWpjZjN5JTQwNGV6NjZp bDdlYnZrCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgIHwgMTM3ICsr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jIHwgIDMwICsrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCA5 NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVu ZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4IGY5ZGI5 N2E2ZWRmLi5mZDVmZjRlNGUwYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv cHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKQEAg LTEyOSw2ICsxMjksOSBAQCB0eXBlZGVmIHN0cnVjdAogCS8qIEJpdHMgaW4gdGhlIHZtYnVmZmVy IGZvciB0aGlzIGhlYXAgcGFnZSAqLwogCXVpbnQ4CQlvbGRfdm1iaXRzOwogCisJLyogVGhlIG5l d2VzdCB4bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlICovCisJVHJhbnNhY3Rpb25JZCBu ZXdlc3RfbGl2ZV94aWQ7CisKIAkvKgogCSAqIFRydWUgaWYgdGhlIHBhZ2UgY2FuIGJ5cGFzcyBm dWxsIHBhZ2UgaW5zcGVjdGlvbiBkdXJpbmcgcHJ1bmluZyBhbmQKIAkgKiBmcmVlemluZyBiYXNl ZCBvbiBpdHMgdmlzaWJpbGl0eSBtYXAgc3RhdHVzIGFuZCB0aGUgY2FsbGVyJ3Mgb3B0aW9ucy4K QEAgLTE2NiwxNCArMTY5LDYgQEAgdHlwZWRlZiBzdHJ1Y3QKIAkgKiBhbGwtZnJvemVuIGJpdHMg aW4gdGhlIHZpc2liaWxpdHkgbWFwIGNhbiBiZSBzZXQgZm9yIHRoaXMgcGFnZSBhZnRlcgogCSAq IHBydW5pbmcuCiAJICoKLQkgKiB2aXNpYmlsaXR5X2N1dG9mZl94aWQgaXMgdGhlIG5ld2VzdCB4 bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlLiBJdAotCSAqIGlzIHVzZWQgYWZ0ZXIgcHJv Y2Vzc2luZyBhbGwgdHVwbGVzIHRvIGRldGVybWluZSBpZiB0aGUgcGFnZSBjYW4gYmUKLQkgKiBj b25zaWRlcmVkIGFsbC12aXNpYmxlIChpZiB0aGUgbmV3ZXN0IHhtaW4gaXMgc3RpbGwgY29uc2lk ZXJlZCBydW5uaW5nCi0JICogYnkgc29tZSBzbmFwc2hvdCwgaXQgY2Fubm90IGJlKS4gSXQgaXMg YWxzbyB1c2VkIGJ5IHRoZSBjYWxsZXIgYXMgdGhlCi0JICogY29uZmxpY3QgaG9yaXpvbiB3aGVu IHNldHRpbmcgdGhlIFZNIGJpdHMsIHVubGVzcyB3ZSBmcm96ZSBhbGwgdHVwbGVzCi0JICogb24g dGhlIHBhZ2UgKGluIHdoaWNoIGNhc2UgdGhlIGNvbmZsaWN0IHhpZCB3YXMgYWxyZWFkeSBpbmNs dWRlZCBpbiB0aGUKLQkgKiBXQUwgcmVjb3JkKS4KLQkgKgogCSAqIE5PVEU6IHNldF9hbGxfdmlz aWJsZSBhbmQgc2V0X2FsbF9mcm96ZW4gaW5pdGlhbGx5IGRvbid0IGluY2x1ZGUKIAkgKiBMUF9E RUFEIGl0ZW1zLiBUaGF0J3MgY29udmVuaWVudCBmb3IgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVl emUoKSB0bwogCSAqIHVzZSB0aGVtIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGZyZWV6ZSB0aGUgcGFn ZSBvciBub3QuICBUaGUKQEAgLTE4Myw3ICsxNzgsNiBAQCB0eXBlZGVmIHN0cnVjdAogCSAqLwog CWJvb2wJCXNldF9hbGxfdmlzaWJsZTsKIAlib29sCQlzZXRfYWxsX2Zyb3plbjsKLQlUcmFuc2Fj dGlvbklkIHZpc2liaWxpdHlfY3V0b2ZmX3hpZDsKIH0gUHJ1bmVTdGF0ZTsKIAogCkBAIC00NzEs NTMgKzQ2NSw0MiBAQCBwcnVuZV9mcmVlemVfc2V0dXAoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFt cywKIAlwcnN0YXRlLT5kZWFkb2Zmc2V0cyA9IHByZXN1bHQtPmRlYWRvZmZzZXRzOwogCiAJLyoK LQkgKiBWYWN1dW0gbWF5IHVwZGF0ZSB0aGUgVk0gYWZ0ZXIgd2UncmUgZG9uZS4gIFdlIGNhbiBr ZWVwIHRyYWNrIG9mCi0JICogd2hldGhlciB0aGUgcGFnZSB3aWxsIGJlIGFsbC12aXNpYmxlIGFu ZCBhbGwtZnJvemVuIGFmdGVyIHBydW5pbmcgYW5kCi0JICogZnJlZXppbmcgdG8gaGVscCB0aGUg Y2FsbGVyIHRvIGRvIHRoYXQuCi0JICoKLQkgKiBDdXJyZW50bHksIG9ubHkgVkFDVVVNIHNldHMg dGhlIFZNIGJpdHMuICBUbyBzYXZlIHRoZSBlZmZvcnQsIG9ubHkgZG8KLQkgKiB0aGUgYm9va2tl ZXBpbmcgaWYgdGhlIGNhbGxlciBuZWVkcyBpdC4gIEN1cnJlbnRseSwgdGhhdCdzIHRpZWQgdG8K LQkgKiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFLCBidXQgaXQgY291bGQgYmUgYSBzZXBhcmF0ZSBm bGFnIGlmIHlvdSB3YW50ZWQKLQkgKiB0byB1cGRhdGUgdGhlIFZNIGJpdHMgd2l0aG91dCBhbHNv IGZyZWV6aW5nIG9yIGZyZWV6ZSB3aXRob3V0IGFsc28KLQkgKiBzZXR0aW5nIHRoZSBWTSBiaXRz LgorCSAqIFdlIHRyYWNrIHdoZXRoZXIgdGhlIHBhZ2Ugd2lsbCBiZSBhbGwtdmlzaWJsZS9hbGwt ZnJvemVuIGF0IHRoZSBlbmQgb2YKKwkgKiBwcnVuaW5nIGFuZCBmcmVlemluZy4gV2hpbGUgZXhh bWluaW5nIHR1cGxlIHZpc2liaWxpdHksIHdlJ2xsIHNldAorCSAqIHNldF9hbGxfdmlzaWJsZSB0 byBmYWxzZSBpZiB0aGVyZSBhcmUgdHVwbGVzIG9uIHRoZSBwYWdlIG5vdCB2aXNpYmxlIHRvCisJ ICogYWxsIHJ1bm5pbmcgYW5kIGZ1dHVyZSB0cmFuc2FjdGlvbnMuIHNldF9hbGxfdmlzaWJsZSBp cyBhbHdheXMKKwkgKiBtYWludGFpbmVkIGJ1dCBvbmx5IFZBQ1VVTSB3aWxsIHNldCB0aGUgVk0g aWYgdGhlIHBhZ2UgZW5kcyB1cCBiZWluZworCSAqIGFsbC12aXNpYmxlLgogCSAqCi0JICogSW4g YWRkaXRpb24gdG8gdGVsbGluZyB0aGUgY2FsbGVyIHdoZXRoZXIgaXQgY2FuIHNldCB0aGUgVk0g Yml0LCB3ZQotCSAqIGFsc28gdXNlICdzZXRfYWxsX3Zpc2libGUnIGFuZCAnc2V0X2FsbF9mcm96 ZW4nIGZvciBvdXIgb3duCi0JICogZGVjaXNpb24tbWFraW5nLiBJZiB0aGUgd2hvbGUgcGFnZSB3 b3VsZCBiZWNvbWUgZnJvemVuLCB3ZSBjb25zaWRlcgotCSAqIG9wcG9ydHVuaXN0aWNhbGx5IGZy ZWV6aW5nIHR1cGxlcy4gIFdlIHdpbGwgbm90IGJlIGFibGUgdG8gZnJlZXplIHRoZQotCSAqIHdo b2xlIHBhZ2UgaWYgdGhlcmUgYXJlIHR1cGxlcyBwcmVzZW50IHRoYXQgYXJlIG5vdCB2aXNpYmxl IHRvIGV2ZXJ5b25lCi0JICogb3IgaWYgdGhlcmUgYXJlIGRlYWQgdHVwbGVzIHdoaWNoIGFyZSBu b3QgeWV0IHJlbW92YWJsZS4gIEhvd2V2ZXIsIGRlYWQKLQkgKiB0dXBsZXMgd2hpY2ggd2lsbCBi ZSByZW1vdmVkIGJ5IHRoZSBlbmQgb2YgdmFjdXVtaW5nIHNob3VsZCBub3QKLQkgKiBwcmVjbHVk ZSB1cyBmcm9tIG9wcG9ydHVuaXN0aWNhbGx5IGZyZWV6aW5nLiAgQmVjYXVzZSBvZiB0aGF0LCB3 ZSBkbwotCSAqIG5vdCBpbW1lZGlhdGVseSBjbGVhciBzZXRfYWxsX3Zpc2libGUgYW5kIHNldF9h bGxfZnJvemVuIHdoZW4gd2Ugc2VlCi0JICogTFBfREVBRCBpdGVtcy4gIFdlIGZpeCB0aGF0IGFm dGVyIHNjYW5uaW5nIHRoZSBsaW5lIHBvaW50ZXJzLiBXZSBtdXN0Ci0JICogY29ycmVjdCBzZXRf YWxsX3Zpc2libGUgYW5kIHNldF9hbGxfZnJvemVuIGJlZm9yZSB3ZSByZXR1cm4gdGhlbSB0byB0 aGUKLQkgKiBjYWxsZXIsIHNvIHRoYXQgdGhlIGNhbGxlciBkb2Vzbid0IHNldCB0aGUgVk0gYml0 cyBpbmNvcnJlY3RseS4KKwkgKiBXZSBhbHNvIGtlZXAgdHJhY2sgb2YgdGhlIG5ld2VzdCBsaXZl IFhJRCwgd2hpY2ggaXMgdXNlZCB0byBjYWxjdWxhdGUKKwkgKiB0aGUgc25hcHNob3QgY29uZmxp Y3QgaG9yaXpvbiBmb3IgYSBXQUwgcmVjb3JkIHNldHRpbmcgdGhlIFZNLgogCSAqLwotCWlmIChw cnN0YXRlLT5hdHRlbXB0X2ZyZWV6ZSkKLQl7Ci0JCXByc3RhdGUtPnNldF9hbGxfdmlzaWJsZSA9 IHRydWU7Ci0JCXByc3RhdGUtPnNldF9hbGxfZnJvemVuID0gdHJ1ZTsKLQl9Ci0JZWxzZQotCXsK LQkJLyoKLQkJICogSW5pdGlhbGl6aW5nIHRvIGZhbHNlIGFsbG93cyBza2lwcGluZyB0aGUgd29y ayB0byB1cGRhdGUgdGhlbSBpbgotCQkgKiBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBf bm9ybWFsKCkuCi0JCSAqLwotCQlwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUgPSBmYWxzZTsKLQkJ cHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4gPSBmYWxzZTsKLQl9CisJcHJzdGF0ZS0+c2V0X2FsbF92 aXNpYmxlID0gdHJ1ZTsKKwlwcnN0YXRlLT5uZXdlc3RfbGl2ZV94aWQgPSBJbnZhbGlkVHJhbnNh Y3Rpb25JZDsKIAogCS8qCi0JICogVGhlIHZpc2liaWxpdHkgY3V0b2ZmIHhpZCBpcyB0aGUgbmV3 ZXN0IHhtaW4gb2YgbGl2ZSB0dXBsZXMgb24gdGhlCi0JICogcGFnZS4gIEluIHRoZSBjb21tb24g Y2FzZSwgdGhpcyB3aWxsIGJlIHNldCBhcyB0aGUgY29uZmxpY3QgaG9yaXpvbiB0aGUKLQkgKiBj YWxsZXIgY2FuIHVzZSBmb3IgdXBkYXRpbmcgdGhlIFZNLiAgSWYsIGF0IHRoZSBlbmQgb2YgZnJl ZXppbmcgYW5kCi0JICogcHJ1bmluZywgdGhlIHBhZ2UgaXMgYWxsLWZyb3plbiwgdGhlcmUgaXMg bm8gcG9zc2liaWxpdHkgdGhhdCBhbnkKLQkgKiBydW5uaW5nIHRyYW5zYWN0aW9uIG9uIHRoZSBz dGFuZGJ5IGRvZXMgbm90IHNlZSB0dXBsZXMgb24gdGhlIHBhZ2UgYXMKLQkgKiBhbGwtdmlzaWJs ZSwgc28gdGhlIGNvbmZsaWN0IGhvcml6b24gcmVtYWlucyBJbnZhbGlkVHJhbnNhY3Rpb25JZC4K KwkgKiBDdXJyZW50bHksIG9ubHkgVkFDVVVNIHBlcmZvcm1zIGZyZWV6aW5nLCBidXQgb3RoZXIg Y2FsbGVycyBtYXkgaW4gdGhlCisJICogZnV0dXJlLiBXZSBtdXN0IGluaXRpYWxpemUgc2V0X2Fs bF9mcm96ZW4gYmFzZWQgb24gd2hldGhlciBvciBub3QgdGhlCisJICogY2FsbGVyIHBhc3NlZCBI RUFQX1BBR0VfUFJVTkVfRlJFRVpFLCBiZWNhdXNlIGlmIHRoZXkgZGlkIG5vdCwgd2Ugd29uJ3QK KwkgKiBjYWxsIGhlYXBfcHJlcGFyZV9mcmVlemVfdHVwbGUoKSBmb3IgZWFjaCB0dXBsZSwgYW5k IHNldF9hbGxfZnJvemVuCisJICogd2lsbCBuZXZlciBiZSBjbGVhcmVkIGZvciB0dXBsZXMgdGhh dCBuZWVkIGZyZWV6aW5nLgorCSAqCisJICogV2hlbiBmcmVlemluZyBpcyBub3QgcmVxdWlyZWQg KG5vIFhJRHMvTVhJRHMgb2xkZXIgdGhhbiB0aGUgZnJlZXplCisJICogY3V0b2ZmKSwgd2UgbWF5 IHN0aWxsIGNob29zZSB0byAib3Bwb3J0dW5pc3RpY2FsbHkiIGZyZWV6ZSBpZiBkb2luZyBzbwor CSAqIHdvdWxkIG1ha2UgdGhlIHBhZ2UgYWxsLWZyb3plbi4KKwkgKgorCSAqIFdlIHdpbGwgbm90 IGJlIGFibGUgdG8gZnJlZXplIHRoZSB3aG9sZSBwYWdlIGF0IHRoZSBlbmQgb2YgdmFjdXVtIGlm CisJICogdGhlcmUgYXJlIHR1cGxlcyBwcmVzZW50IHRoYXQgYXJlIG5vdCB2aXNpYmxlIHRvIGV2 ZXJ5b25lIG9yIGlmIHRoZXJlCisJICogYXJlIGRlYWQgdHVwbGVzIHdoaWNoIHdpbGwgbm90IGJl IHJlbW92YWJsZS4gSG93ZXZlciwgZGVhZCB0dXBsZXMgdGhhdAorCSAqIHdpbGwgYmUgcmVtb3Zl ZCBieSB0aGUgZW5kIG9mIHZhY3V1bSBzaG91bGQgbm90IHByZXZlbnQgdGhpcworCSAqIG9wcG9y dHVuaXN0aWMgZnJlZXppbmcuCisJICoKKwkgKiBUaGVyZWZvcmUsIHdlIGRvIG5vdCBjbGVhciBz ZXRfYWxsX3Zpc2libGUgYW5kIHNldF9hbGxfZnJvemVuIHdoZW4gd2UKKwkgKiBlbmNvdW50ZXIg TFBfREVBRCBpdGVtcy4gSW5zdGVhZCwgd2UgY29ycmVjdCB0aGVtIGFmdGVyIGRlY2lkaW5nCisJ ICogd2hldGhlciB0byBmcmVlemUsIGJ1dCBiZWZvcmUgdXBkYXRpbmcgdGhlIFZNLCB0byBhdm9p ZCBzZXR0aW5nIHRoZSBWTQorCSAqIGJpdHMgaW5jb3JyZWN0bHkuCiAJICovCi0JcHJzdGF0ZS0+ dmlzaWJpbGl0eV9jdXRvZmZfeGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJcHJzdGF0ZS0+ c2V0X2FsbF9mcm96ZW4gPSBwcnN0YXRlLT5hdHRlbXB0X2ZyZWV6ZTsKIH0KIAogLyoKQEAgLTc0 Nyw3ICs3MzAsNiBAQCBoZWFwX3BhZ2Vfd2lsbF9mcmVlemUoYm9vbCBkaWRfdHVwbGVfaGludF9m cGksCiAJaWYgKCFwcnN0YXRlLT5hdHRlbXB0X2ZyZWV6ZSkKIAl7CiAJCUFzc2VydCghcHJzdGF0 ZS0+c2V0X2FsbF9mcm96ZW4gJiYgcHJzdGF0ZS0+bmZyb3plbiA9PSAwKTsKLQkJQXNzZXJ0KHBy c3RhdGUtPmxwZGVhZF9pdGVtcyA9PSAwIHx8ICFwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUpOwog CQlyZXR1cm4gZmFsc2U7CiAJfQogCkBAIC0xMDIzLDkgKzEwMDUsOCBAQCBwcnVuZV9mcmVlemVf YnlwYXNzKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lRnJlZXplUmVzdWx0ICpwcmVzdWx0KQog ICogSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgcGFzc2VkLCB3ZSBhbHNvIHNldAog ICogcHJlc3VsdC0+c2V0X2FsbF92aXNpYmxlIGFuZCBwcmVzdWx0LT5zZXRfYWxsX2Zyb3plbiBh ZnRlciBkZXRlcm1pbmluZwogICogd2hldGhlciBvciBub3QgdG8gb3Bwb3J0dW5pc3RpY2FsbHkg ZnJlZXplLCB0byBpbmRpY2F0ZSBpZiB0aGUgVk0gYml0cyBjYW4KLSAqIGJlIHNldC4gIFRoZXkg YXJlIGFsd2F5cyBzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRQot ICogb3B0aW9uIGlzIG5vdCBwYXNzZWQsIGJlY2F1c2UgYXQgdGhlIG1vbWVudCBvbmx5IGNhbGxl cnMgdGhhdCBhbHNvIGZyZWV6ZQotICogbmVlZCB0aGF0IGluZm9ybWF0aW9uLgorICogYmUgc2V0 LiAnYWxsLWZyb3plbicgaXMgYWx3YXlzIHNldCB0byBmYWxzZSB3aGVuIHRoZSBIRUFQX1BBR0Vf UFJVTkVfRlJFRVpFCisgKiBvcHRpb24gaXMgbm90IHBhc3NlZC4KICAqCiAgKiBwcmVzdWx0IGNv bnRhaW5zIG91dHB1dCBwYXJhbWV0ZXJzIG5lZWRlZCBieSBjYWxsZXJzLCBzdWNoIGFzIHRoZSBu dW1iZXIgb2YKICAqIHR1cGxlcyByZW1vdmVkIGFuZCB0aGUgb2Zmc2V0cyBvZiBkZWFkIGl0ZW1z IG9uIHRoZSBwYWdlIGFmdGVyIHBydW5pbmcuCkBAIC0xMDk2LDkgKzEwNzcsOSBAQCBoZWFwX3Bh Z2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCSAqIGJlIGFs bC12aXNpYmxlLgogCSAqLwogCWlmIChwcnN0YXRlLnNldF9hbGxfdmlzaWJsZSAmJgotCQlUcmFu c2FjdGlvbklkSXNOb3JtYWwocHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQpICYmCisJCVRy YW5zYWN0aW9uSWRJc05vcm1hbChwcnN0YXRlLm5ld2VzdF9saXZlX3hpZCkgJiYKIAkJR2xvYmFs VmlzVGVzdFhpZENvbnNpZGVyZWRSdW5uaW5nKHByc3RhdGUudmlzdGVzdCwKLQkJCQkJCQkJCQkg IHByc3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkLAorCQkJCQkJCQkJCSAgcHJzdGF0ZS5uZXdl c3RfbGl2ZV94aWQsCiAJCQkJCQkJCQkJICB0cnVlKSkKIAkJcHJzdGF0ZS5zZXRfYWxsX3Zpc2li bGUgPSBwcnN0YXRlLnNldF9hbGxfZnJvemVuID0gZmFsc2U7CiAKQEAgLTEyNTAsNyArMTIzMSw3 IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMs CiAJaWYgKHByZXN1bHQtPnNldF9hbGxfZnJvemVuKQogCQlwcmVzdWx0LT52bV9jb25mbGljdF9o b3Jpem9uID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAJZWxzZQotCQlwcmVzdWx0LT52bV9jb25m bGljdF9ob3Jpem9uID0gcHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQ7CisJCXByZXN1bHQt PnZtX2NvbmZsaWN0X2hvcml6b24gPSBwcnN0YXRlLm5ld2VzdF9saXZlX3hpZDsKIAogCXByZXN1 bHQtPmxwZGVhZF9pdGVtcyA9IHByc3RhdGUubHBkZWFkX2l0ZW1zOwogCS8qIHRoZSBwcmVzdWx0 LT5kZWFkb2Zmc2V0cyBhcnJheSB3YXMgYWxyZWFkeSBmaWxsZWQgaW4gKi8KQEAgLTE3MTEsNiAr MTY5Miw3IEBAIHN0YXRpYyB2b2lkCiBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9y bWFsKFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJlciBvZmZudW0pCiB7CiAJSGVhcFR1 cGxlSGVhZGVyIGh0dXA7CisJVHJhbnNhY3Rpb25JZCB4bWluOwogCVBhZ2UJCXBhZ2UgPSBwcnN0 YXRlLT5wYWdlOwogCiAJQXNzZXJ0KCFwcnN0YXRlLT5wcm9jZXNzZWRbb2ZmbnVtXSk7CkBAIC0x NzU4LDMyICsxNzQwLDI3IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9ub3JtYWwo UHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyIG9mZm51bSkKIAkJCSAqIFNlZSBTZXRI aW50Qml0cyBmb3IgbW9yZSBpbmZvLiAgQ2hlY2sgdGhhdCB0aGUgdHVwbGUgaXMgaGludGVkCiAJ CQkgKiB4bWluLWNvbW1pdHRlZCBiZWNhdXNlIG9mIHRoYXQuCiAJCQkgKi8KLQkJCWlmIChwcnN0 YXRlLT5zZXRfYWxsX3Zpc2libGUpCisJCQlpZiAoIUhlYXBUdXBsZUhlYWRlclhtaW5Db21taXR0 ZWQoaHR1cCkpCiAJCQl7Ci0JCQkJVHJhbnNhY3Rpb25JZCB4bWluOworCQkJCXByc3RhdGUtPnNl dF9hbGxfdmlzaWJsZSA9IGZhbHNlOworCQkJCXByc3RhdGUtPnNldF9hbGxfZnJvemVuID0gZmFs c2U7CisJCQkJYnJlYWs7CisJCQl9CiAKLQkJCQlpZiAoIUhlYXBUdXBsZUhlYWRlclhtaW5Db21t aXR0ZWQoaHR1cCkpCi0JCQkJewotCQkJCQlwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUgPSBmYWxz ZTsKLQkJCQkJcHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4gPSBmYWxzZTsKLQkJCQkJYnJlYWs7Ci0J CQkJfQorCQkJLyoKKwkJCSAqIFRoZSBpbnNlcnRlciBkZWZpbml0ZWx5IGNvbW1pdHRlZC4gQnV0 IHdlIGRvbid0IGtub3cgaWYgaXQgaXMKKwkJCSAqIG9sZCBlbm91Z2ggdGhhdCBldmVyeW9uZSBz ZWVzIGl0IGFzIGNvbW1pdHRlZC4gTGF0ZXIsIGFmdGVyCisJCQkgKiBwcm9jZXNzaW5nIGFsbCB0 aGUgdHVwbGVzIG9uIHRoZSBwYWdlLCB3ZSdsbCBjaGVjayBpZiB0aGVyZSBpcworCQkJICogYW55 IHNuYXBzaG90IHRoYXQgc3RpbGwgY29uc2lkZXJzIHRoZSBuZXdlc3QgeGlkIG9uIHRoZSBwYWdl IHRvCisJCQkgKiBiZSBydW5uaW5nLiBJZiBzbywgd2UgZG9uJ3QgY29uc2lkZXIgdGhlIHBhZ2Ug YWxsLXZpc2libGUuCisJCQkgKi8KKwkJCXhtaW4gPSBIZWFwVHVwbGVIZWFkZXJHZXRYbWluKGh0 dXApOwogCi0JCQkJLyoKLQkJCQkgKiBUaGUgaW5zZXJ0ZXIgZGVmaW5pdGVseSBjb21taXR0ZWQu IEJ1dCB3ZSBkb24ndCBrbm93IGlmIGl0Ci0JCQkJICogaXMgb2xkIGVub3VnaCB0aGF0IGV2ZXJ5 b25lIHNlZXMgaXQgYXMgY29tbWl0dGVkLiBMYXRlciwKLQkJCQkgKiBhZnRlciBwcm9jZXNzaW5n IGFsbCB0aGUgdHVwbGVzIG9uIHRoZSBwYWdlLCB3ZSdsbCBjaGVjayBpZgotCQkJCSAqIHRoZXJl IGlzIGFueSBzbmFwc2hvdCB0aGF0IHN0aWxsIGNvbnNpZGVycyB0aGUgbmV3ZXN0IHhpZAotCQkJ CSAqIG9uIHRoZSBwYWdlIHRvIGJlIHJ1bm5pbmcuIElmIHNvLCB3ZSBkb24ndCBjb25zaWRlciB0 aGUKLQkJCQkgKiBwYWdlIGFsbC12aXNpYmxlLgotCQkJCSAqLwotCQkJCXhtaW4gPSBIZWFwVHVw bGVIZWFkZXJHZXRYbWluKGh0dXApOworCQkJLyogVHJhY2sgbmV3ZXN0IHhtaW4gb24gcGFnZS4g Ki8KKwkJCWlmIChUcmFuc2FjdGlvbklkRm9sbG93cyh4bWluLCBwcnN0YXRlLT5uZXdlc3RfbGl2 ZV94aWQpICYmCisJCQkJVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhtaW4pKQorCQkJCXByc3RhdGUt Pm5ld2VzdF9saXZlX3hpZCA9IHhtaW47CiAKLQkJCQkvKiBUcmFjayBuZXdlc3QgeG1pbiBvbiBw YWdlLiAqLwotCQkJCWlmIChUcmFuc2FjdGlvbklkRm9sbG93cyh4bWluLCBwcnN0YXRlLT52aXNp YmlsaXR5X2N1dG9mZl94aWQpICYmCi0JCQkJCVRyYW5zYWN0aW9uSWRJc05vcm1hbCh4bWluKSkK LQkJCQkJcHJzdGF0ZS0+dmlzaWJpbGl0eV9jdXRvZmZfeGlkID0geG1pbjsKLQkJCX0KIAkJCWJy ZWFrOwogCiAJCWNhc2UgSEVBUFRVUExFX1JFQ0VOVExZX0RFQUQ6CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92YWN1dW1sYXp5LmMKaW5kZXggNzk3OTczZDdiZDAuLjY5NjkxOWUzNWRkIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC00NzAsNyArNDcwLDcgQEAgc3RhdGljIHZvaWQg ZGVhZF9pdGVtc19jbGVhbnVwKExWUmVsU3RhdGUgKnZhY3JlbCk7CiBzdGF0aWMgYm9vbCBoZWFw X3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogCQkJCQkJCQkJ IEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0LAogCQkJCQkJCQkJIGJvb2wgKmFsbF9mcm96ZW4sCi0J CQkJCQkJCQkgVHJhbnNhY3Rpb25JZCAqdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAorCQkJCQkJCQkJ IFRyYW5zYWN0aW9uSWQgKm5ld2VzdF9saXZlX3hpZCwKIAkJCQkJCQkJCSBPZmZzZXROdW1iZXIg KmxvZ2dpbmdfb2ZmbnVtKTsKICNlbmRpZgogc3RhdGljIGJvb2wgaGVhcF9wYWdlX3dvdWxkX2Jl X2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKQEAgLTQ3OSw3ICs0NzksNyBA QCBzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVs LCBCdWZmZXIgYnVmLAogCQkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqZGVhZG9mZnNldHMsCiAJ CQkJCQkJCQkJICAgaW50IG5kZWFkb2Zmc2V0cywKIAkJCQkJCQkJCQkgICBib29sICphbGxfZnJv emVuLAotCQkJCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwK KwkJCQkJCQkJCQkgICBUcmFuc2FjdGlvbklkICpuZXdlc3RfbGl2ZV94aWQsCiAJCQkJCQkJCQkJ ICAgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7CiBzdGF0aWMgdm9pZCB1cGRhdGVfcmVs c3RhdHNfYWxsX2luZGV4ZXMoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIHN0YXRpYyB2b2lkIHZhY3V1 bV9lcnJvcl9jYWxsYmFjayh2b2lkICphcmcpOwpAQCAtMjgyOSw3ICsyODI5LDcgQEAgbGF6eV92 YWN1dW1faGVhcF9wYWdlKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEJ1 ZmZlciBidWZmZXIsCiAJUGFnZQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKIAlPZmZz ZXROdW1iZXIgdW51c2VkW01heEhlYXBUdXBsZXNQZXJQYWdlXTsKIAlpbnQJCQludW51c2VkID0g MDsKLQlUcmFuc2FjdGlvbklkIHZpc2liaWxpdHlfY3V0b2ZmX3hpZDsKKwlUcmFuc2FjdGlvbklk IG5ld2VzdF9saXZlX3hpZDsKIAlUcmFuc2FjdGlvbklkIGNvbmZsaWN0X3hpZCA9IEludmFsaWRU cmFuc2FjdGlvbklkOwogCWJvb2wJCWFsbF9mcm96ZW47CiAJTFZTYXZlZEVyckluZm8gc2F2ZWRf ZXJyX2luZm87CkBAIC0yODU1LDE0ICsyODU1LDE0IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShM VlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCWlm IChoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUodmFjcmVsLT5yZWwsIGJ1ZmZlciwKIAkJ CQkJCQkJCSAgIHZhY3JlbC0+dmlzdGVzdCwgdHJ1ZSwKIAkJCQkJCQkJCSAgIGRlYWRvZmZzZXRz LCBudW1fb2Zmc2V0cywKLQkJCQkJCQkJCSAgICZhbGxfZnJvemVuLCAmdmlzaWJpbGl0eV9jdXRv ZmZfeGlkLAorCQkJCQkJCQkJICAgJmFsbF9mcm96ZW4sICZuZXdlc3RfbGl2ZV94aWQsCiAJCQkJ CQkJCQkgICAmdmFjcmVsLT5vZmZudW0pKQogCXsKIAkJdm1mbGFncyB8PSBWSVNJQklMSVRZTUFQ X0FMTF9WSVNJQkxFOwogCQlpZiAoYWxsX2Zyb3plbikKIAkJewogCQkJdm1mbGFncyB8PSBWSVNJ QklMSVRZTUFQX0FMTF9GUk9aRU47Ci0JCQlBc3NlcnQoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHZp c2liaWxpdHlfY3V0b2ZmX3hpZCkpOworCQkJQXNzZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZChu ZXdlc3RfbGl2ZV94aWQpKTsKIAkJfQogCiAJCS8qCkBAIC0yOTAzLDcgKzI5MDMsNyBAQCBsYXp5 X3ZhY3V1bV9oZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBibGtubywg QnVmZmVyIGJ1ZmZlciwKIAkJdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKGJsa25vLAogCQkJCQkJ CQkgdm1idWZmZXIsIHZtZmxhZ3MsCiAJCQkJCQkJCSB2YWNyZWwtPnJlbC0+cmRfbG9jYXRvcik7 Ci0JCWNvbmZsaWN0X3hpZCA9IHZpc2liaWxpdHlfY3V0b2ZmX3hpZDsKKwkJY29uZmxpY3RfeGlk ID0gbmV3ZXN0X2xpdmVfeGlkOwogCX0KIAogCS8qCkBAIC0zNjE3LDcgKzM2MTcsNyBAQCBzdGF0 aWMgYm9vbAogaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1 ZiwKIAkJCQkJCSBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCSBib29sICphbGxfZnJv emVuLAotCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJ CSBUcmFuc2FjdGlvbklkICpuZXdlc3RfbGl2ZV94aWQsCiAJCQkJCQkgT2Zmc2V0TnVtYmVyICps b2dnaW5nX29mZm51bSkKIHsKIAkvKgpAQCAtMzYzMCw3ICszNjMwLDcgQEAgaGVhcF9wYWdlX2lz X2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAkJCQkJCQkJCQkgIHZpc3Rl c3QsIGZhbHNlLAogCQkJCQkJCQkJCSAgTlVMTCwgMCwKIAkJCQkJCQkJCQkgIGFsbF9mcm96ZW4s Ci0JCQkJCQkJCQkJICB2aXNpYmlsaXR5X2N1dG9mZl94aWQsCisJCQkJCQkJCQkJICBuZXdlc3Rf bGl2ZV94aWQsCiAJCQkJCQkJCQkJICBsb2dnaW5nX29mZm51bSk7CiB9CiAjZW5kaWYKQEAgLTM2 NTUsNyArMzY1NSw3IEBAIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1 ZmZlciBidWYsCiAgKiBPdXRwdXQgcGFyYW1ldGVyczoKICAqCiAgKiAgLSAqYWxsX2Zyb3plbjog dHJ1ZSBpZiBldmVyeSB0dXBsZSBvbiB0aGUgcGFnZSBpcyBmcm96ZW4KLSAqICAtICp2aXNpYmls aXR5X2N1dG9mZl94aWQ6IG5ld2VzdCB4bWluOyB2YWxpZCBvbmx5IGlmIHBhZ2UgaXMgYWxsLXZp c2libGUKKyAqICAtICpuZXdlc3RfbGl2ZV94aWQ6IG5ld2VzdCB4bWluIG9mIGxpdmUgdHVwbGVz IG9uIHRoZSBwYWdlCiAgKiAgLSAqbG9nZ2luZ19vZmZudW06IE9mZnNldE51bWJlciBvZiBjdXJy ZW50IHR1cGxlIGJlaW5nIHByb2Nlc3NlZDsKICAqICAgICB1c2VkIGJ5IHZhY3V1bSdzIGVycm9y IGNhbGxiYWNrIHN5c3RlbS4KICAqCkBAIC0zNjc0LDcgKzM2NzQsNyBAQCBoZWFwX3BhZ2Vfd291 bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogCQkJCQkJCSAgIE9m ZnNldE51bWJlciAqZGVhZG9mZnNldHMsCiAJCQkJCQkJICAgaW50IG5kZWFkb2Zmc2V0cywKIAkJ CQkJCQkgICBib29sICphbGxfZnJvemVuLAotCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgKnZpc2li aWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkgICBUcmFuc2FjdGlvbklkICpuZXdlc3RfbGl2ZV94 aWQsCiAJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSkKIHsKIAlQYWdlCQlw YWdlID0gQnVmZmVyR2V0UGFnZShidWYpOwpAQCAtMzY4NCw3ICszNjg0LDcgQEAgaGVhcF9wYWdl X3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAlib29sCQlh bGxfdmlzaWJsZSA9IHRydWU7CiAJaW50CQkJbWF0Y2hlZF9kZWFkX2NvdW50ID0gMDsKIAotCSp2 aXNpYmlsaXR5X2N1dG9mZl94aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwkqbmV3ZXN0X2xp dmVfeGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAJKmFsbF9mcm96ZW4gPSB0cnVlOwogCiAJ QXNzZXJ0KG5kZWFkb2Zmc2V0cyA9PSAwIHx8IGRlYWRvZmZzZXRzKTsKQEAgLTM3NzMsOSArMzc3 Myw5IEBAIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZl ciBidWYsCiAJCQkJCXhtaW4gPSBIZWFwVHVwbGVIZWFkZXJHZXRYbWluKHR1cGxlLnRfZGF0YSk7 CiAKIAkJCQkJLyogVHJhY2sgbmV3ZXN0IHhtaW4gb24gcGFnZS4gKi8KLQkJCQkJaWYgKFRyYW5z YWN0aW9uSWRGb2xsb3dzKHhtaW4sICp2aXNpYmlsaXR5X2N1dG9mZl94aWQpICYmCisJCQkJCWlm IChUcmFuc2FjdGlvbklkRm9sbG93cyh4bWluLCAqbmV3ZXN0X2xpdmVfeGlkKSAmJgogCQkJCQkJ VHJhbnNhY3Rpb25JZElzTm9ybWFsKHhtaW4pKQotCQkJCQkJKnZpc2liaWxpdHlfY3V0b2ZmX3hp ZCA9IHhtaW47CisJCQkJCQkqbmV3ZXN0X2xpdmVfeGlkID0geG1pbjsKIAogCQkJCQkvKiBDaGVj ayB3aGV0aGVyIHRoaXMgdHVwbGUgaXMgYWxyZWFkeSBmcm96ZW4gb3Igbm90ICovCiAJCQkJCWlm IChhbGxfdmlzaWJsZSAmJiAqYWxsX2Zyb3plbiAmJgpAQCAtMzgwNSw4ICszODA1LDggQEAgaGVh cF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAkg KiBjYW5ub3QgYmUgYWxsLXZpc2libGUuCiAJICovCiAJaWYgKGFsbF92aXNpYmxlICYmCi0JCVRy YW5zYWN0aW9uSWRJc05vcm1hbCgqdmlzaWJpbGl0eV9jdXRvZmZfeGlkKSAmJgotCQlHbG9iYWxW aXNUZXN0WGlkQ29uc2lkZXJlZFJ1bm5pbmcodmlzdGVzdCwgKnZpc2liaWxpdHlfY3V0b2ZmX3hp ZCwKKwkJVHJhbnNhY3Rpb25JZElzTm9ybWFsKCpuZXdlc3RfbGl2ZV94aWQpICYmCisJCUdsb2Jh bFZpc1Rlc3RYaWRDb25zaWRlcmVkUnVubmluZyh2aXN0ZXN0LCAqbmV3ZXN0X2xpdmVfeGlkLAog CQkJCQkJCQkJCSAgYWxsb3dfdXBkYXRlX3Zpc3Rlc3QpKQogCXsKIAkJYWxsX3Zpc2libGUgPSBm YWxzZTsKLS0gCjIuNDMuMAoK --000000000000a1e2a7064d7d2a75 Content-Type: text/x-patch; charset="US-ASCII"; name="v42-0005-WAL-log-VM-setting-during-vacuum-phase-I-in-XLOG.patch" Content-Disposition: attachment; filename="v42-0005-WAL-log-VM-setting-during-vacuum-phase-I-in-XLOG.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmzjdjcc4 RnJvbSAzM2UwYzQ4MjRmNzQwNWFjNTcxMWJhY2RhN2MyMWFmMjhhM2FjMGJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIgRGVjIDIwMjUgMTU6MDc6NDIgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0MiAwNS8xMl0gV0FMIGxvZyBWTSBzZXR0aW5nIGR1cmluZyB2YWN1dW0gcGhhc2UgSSBp bgogWExPR19IRUFQMl9QUlVORV9WQUNVVU1fU0NBTgoKVmFjdXVtIG5vIGxvbmdlciBlbWl0cyBh IHNlcGFyYXRlIFdBTCByZWNvcmQgZm9yIGVhY2ggcGFnZSBzZXQKYWxsLXZpc2libGUgb3IgYWxs LWZyb3plbiBkdXJpbmcgcGhhc2UgSS4gSW5zdGVhZCwgdmlzaWJpbGl0eSBtYXAKdXBkYXRlcyBh cmUgbm93IGluY2x1ZGVkIGluIHRoZSBYTE9HX0hFQVAyX1BSVU5FX1ZBQ1VVTV9TQ0FOIHJlY29y ZCB0aGF0CmlzIGFscmVhZHkgZW1pdHRlZCBmb3IgcHJ1bmluZyBhbmQgZnJlZXppbmcuCgpQcmV2 aW91c2x5LCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpIGRldGVybWluZWQgd2hldGhlciBh IHBhZ2Ugd2FzCmFsbC12aXNpYmxlLCBidXQgdGhlIGNvcnJlc3BvbmRpbmcgVk0gYml0cyB3ZXJl IG9ubHkgc2V0IGxhdGVyIGluCmxhenlfc2Nhbl9wcnVuZSgpLiBOb3cgdGhlIFZNIGlzIHVwZGF0 ZWQgaW1tZWRpYXRlbHkgaW4KaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoKSwgYXQgdGhlIHNh bWUgdGltZSBhcyB0aGUgaGVhcAptb2RpZmljYXRpb25zLgoKRm9yIG5vdywgdGhpcyBjaGFuZ2Ug YXBwbGllcyBvbmx5IHRvIHZhY3V1bSBwaGFzZSBJLCBub3QgdG8gcHJ1bmluZwpwZXJmb3JtZWQg ZHVyaW5nIG5vcm1hbCBwYWdlIGFjY2Vzcy4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8bWVs YW5pZXBsYWdlbWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJlcyBGcmV1bmQgPGFuZHJl c0BhbmFyYXplbC5kZT4KUmV2aWV3ZWQtYnk6IFJvYmVydCBIYWFzIDxyb2JlcnRtaGFhc0BnbWFp bC5jb20+ClJldmlld2VkLWJ5OiBLaXJpbGwgUmVzaGtlIDxyZXNoa2VraXJpbGxAZ21haWwuY29t PgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KRGlzY3Vzc2lv bjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9mbGF0L0NBQUtSdV9aTXc2TnBkX3FtMktNJTJCRndRM2NN T014MURoM1ZNaHA4LVY3U09MeGRLOS1nJTQwbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgfCAyNDUgKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCAxMTMgKystLS0tLS0t LS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAgfCAgMzcgKystLQogMyBm aWxlcyBjaGFuZ2VkLCAyMDUgaW5zZXJ0aW9ucygrKSwgMTkwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggZmQ1ZmY0ZTRlMGEuLjA0YTA1ODBlMzEzIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtNzIsNiArNzIsMjEgQEAgdHlwZWRl ZiBzdHJ1Y3QKIAlPZmZzZXROdW1iZXIgbm93dW51c2VkW01heEhlYXBUdXBsZXNQZXJQYWdlXTsK IAlIZWFwVHVwbGVGcmVlemUgZnJvemVuW01heEhlYXBUdXBsZXNQZXJQYWdlXTsKIAorCS8qCisJ ICogc2V0X2FsbF92aXNpYmxlIGFuZCBzZXRfYWxsX2Zyb3plbiBpbmRpY2F0ZSBpZiB0aGUgYWxs LXZpc2libGUgYW5kCisJICogYWxsLWZyb3plbiBiaXRzIGluIHRoZSB2aXNpYmlsaXR5IG1hcCBj YW4gYmUgc2V0IGZvciB0aGlzIHBhZ2UgYWZ0ZXIKKwkgKiBwcnVuaW5nLgorCSAqCisJICogTk9U RTogc2V0X2FsbF92aXNpYmxlIGFuZCBzZXRfYWxsX2Zyb3plbiBpbml0aWFsbHkgZG9uJ3QgaW5j bHVkZQorCSAqIExQX0RFQUQgaXRlbXMuIFRoYXQncyBjb252ZW5pZW50IGZvciBoZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZSgpIHRvCisJICogdXNlIHRoZW0gdG8gZGVjaWRlIHdoZXRoZXIgdG8g b3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXplIHRoZSBwYWdlIG9yIG5vdC4KKwkgKiBUaGUgc2V0X2Fs bF92aXNpYmxlIGFuZCBzZXRfYWxsX2Zyb3plbiB2YWx1ZXMgdWx0aW1hdGVseSB1c2VkIHRvIHNl dAorCSAqIHRoZSBWTSBhcmUgYWRqdXN0ZWQgdG8gaW5jbHVkZSBMUF9ERUFEIGl0ZW1zIGFmdGVy IHdlIGRldGVybWluZSB3aGV0aGVyCisJICogb3Igbm90IHRvIG9wcG9ydHVuaXN0aWNhbGx5IGZy ZWV6ZS4KKwkgKi8KKwlib29sCQlzZXRfYWxsX3Zpc2libGU7CisJYm9vbAkJc2V0X2FsbF9mcm96 ZW47CisKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KIAkgKiBXb3JraW5nIHN0YXRlIGZvciBIT1QgY2hhaW4gcHJvY2Vzc2luZwogCSAq LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpA QCAtMTIyLDEyICsxMzcsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QKIAkvKgogCSAqIENhbGxlciBtdXN0 IHByb3ZpZGUgYSBwaW5uZWQgdm1idWZmZXIgY29ycmVzcG9uZGluZyB0byB0aGUgaGVhcCBibG9j awogCSAqIHBhc3NlZCB0byBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpLiBXZSB3aWxsIGZp eCBhbnkgY29ycnVwdGlvbgotCSAqIGZvdW5kIGluIHRoZSBWTS4KKwkgKiBmb3VuZCBpbiB0aGUg Vk0gYW5kIHNldCB0aGUgVk0gaWYgdGhlIHBhZ2UgaXMgYWxsLXZpc2libGUvYWxsLWZyb3plbi4K IAkgKi8KIAlCdWZmZXIJCXZtYnVmZmVyOwogCi0JLyogQml0cyBpbiB0aGUgdm1idWZmZXIgZm9y IHRoaXMgaGVhcCBwYWdlICovCisJLyoKKwkgKiBUaGUgc3RhdGUgb2YgdGhlIFZNIGJpdHMgYXQg dGhlIGJlZ2lubmluZyBvZiBwcnVuaW5nIGFuZCB0aGUgc3RhdGUgdGhleQorCSAqIHdpbGwgYmUg aW4gYXQgdGhlIGVuZC4KKwkgKi8KIAl1aW50OAkJb2xkX3ZtYml0czsKKwl1aW50OAkJbmV3X3Zt Yml0czsKIAogCS8qIFRoZSBuZXdlc3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUgcGFnZSAq LwogCVRyYW5zYWN0aW9uSWQgbmV3ZXN0X2xpdmVfeGlkOwpAQCAtMTYzLDIxICsxODIsNiBAQCB0 eXBlZGVmIHN0cnVjdAogCSAqLwogCWludAkJCWxwZGVhZF9pdGVtczsJLyogbnVtYmVyIG9mIGl0 ZW1zIGluIHRoZSBhcnJheSAqLwogCU9mZnNldE51bWJlciAqZGVhZG9mZnNldHM7CS8qIHBvaW50 cyBkaXJlY3RseSB0byBwcmVzdWx0LT5kZWFkb2Zmc2V0cyAqLwotCi0JLyoKLQkgKiBzZXRfYWxs X3Zpc2libGUgYW5kIHNldF9hbGxfZnJvemVuIGluZGljYXRlIGlmIHRoZSBhbGwtdmlzaWJsZSBh bmQKLQkgKiBhbGwtZnJvemVuIGJpdHMgaW4gdGhlIHZpc2liaWxpdHkgbWFwIGNhbiBiZSBzZXQg Zm9yIHRoaXMgcGFnZSBhZnRlcgotCSAqIHBydW5pbmcuCi0JICoKLQkgKiBOT1RFOiBzZXRfYWxs X3Zpc2libGUgYW5kIHNldF9hbGxfZnJvemVuIGluaXRpYWxseSBkb24ndCBpbmNsdWRlCi0JICog TFBfREVBRCBpdGVtcy4gVGhhdCdzIGNvbnZlbmllbnQgZm9yIGhlYXBfcGFnZV9wcnVuZV9hbmRf ZnJlZXplKCkgdG8KLQkgKiB1c2UgdGhlbSB0byBkZWNpZGUgd2hldGhlciB0byBmcmVlemUgdGhl IHBhZ2Ugb3Igbm90LiAgVGhlCi0JICogc2V0X2FsbF92aXNpYmxlIGFuZCBzZXRfYWxsX2Zyb3pl biB2YWx1ZXMgcmV0dXJuZWQgdG8gdGhlIGNhbGxlciBhcmUKLQkgKiBhZGp1c3RlZCB0byBpbmNs dWRlIExQX0RFQUQgaXRlbXMgYWZ0ZXIgd2UgZGV0ZXJtaW5lIHdoZXRoZXIgdG8KLQkgKiBvcHBv cnR1bmlzdGljYWxseSBmcmVlemUuCi0JICovCi0JYm9vbAkJc2V0X2FsbF92aXNpYmxlOwotCWJv b2wJCXNldF9hbGxfZnJvemVuOwogfSBQcnVuZVN0YXRlOwogCiAKQEAgLTIzMiw2ICsyMzYsNyBA QCBzdGF0aWMgdm9pZCBwYWdlX3ZlcmlmeV9yZWRpcmVjdHMoUGFnZSBwYWdlKTsKIAogc3RhdGlj IGJvb2wgaGVhcF9wYWdlX3dpbGxfZnJlZXplKGJvb2wgZGlkX3R1cGxlX2hpbnRfZnBpLCBib29s IGRvX3BydW5lLCBib29sIGRvX2hpbnRfcHJ1bmUsCiAJCQkJCQkJCSAgUHJ1bmVTdGF0ZSAqcHJz dGF0ZSk7CitzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1bmVTdGF0ZSAqcHJz dGF0ZSwgUHJ1bmVSZWFzb24gcmVhc29uKTsKIAogCiAvKgpAQCAtMzk4LDYgKzQwMyw3IEBAIHBy dW5lX2ZyZWV6ZV9zZXR1cChQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCiAJQXNzZXJ0KEJ1 ZmZlcklzVmFsaWQocGFyYW1zLT52bWJ1ZmZlcikpOwogCXByc3RhdGUtPnZtYnVmZmVyID0gcGFy YW1zLT52bWJ1ZmZlcjsKKwlwcnN0YXRlLT5uZXdfdm1iaXRzID0gMDsKIAlwcnN0YXRlLT5vbGRf dm1iaXRzID0gdmlzaWJpbGl0eW1hcF9nZXRfc3RhdHVzKHByc3RhdGUtPnJlbGF0aW9uLAogCQkJ CQkJCQkJCQkJICAgcHJzdGF0ZS0+YmxvY2ssCiAJCQkJCQkJCQkJCQkgICAmcHJzdGF0ZS0+dm1i dWZmZXIpOwpAQCAtOTE3LDYgKzkyMyw0MiBAQCBoZWFwX3BhZ2VfZml4X3ZtX2NvcnJ1cHRpb24o UHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyIG9mZm51bSwKIAl9CiB9CiAKKy8qCisg KiBEZWNpZGUgd2hldGhlciB0byBzZXQgdGhlIHZpc2liaWxpdHkgbWFwIGJpdHMgKGFsbC12aXNp YmxlIGFuZCBhbGwtZnJvemVuKQorICogZm9yIGhlYXBfYmxrIHVzaW5nIGluZm9ybWF0aW9uIGZy b20gdGhlIFBydW5lU3RhdGUgYW5kIFZNLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gZG9lcyBub3Qg YWN0dWFsbHkgc2V0IHRoZSBWTSBiaXRzIG9yIHBhZ2UtbGV2ZWwgdmlzaWJpbGl0eQorICogaGlu dCwgUERfQUxMX1ZJU0lCTEUuCisgKgorICogUmV0dXJucyB0cnVlIGlmIG9uZSBvciBib3RoIFZN IGJpdHMgc2hvdWxkIGJlIHNldCBhbmQgZmFsc2Ugb3RoZXJ3aXNlLgorICovCitzdGF0aWMgYm9v bAoraGVhcF9wYWdlX3dpbGxfc2V0X3ZtKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lUmVhc29u IHJlYXNvbikKK3sKKwkvKgorCSAqIFRob3VnaCBvbi1hY2Nlc3MgcHJ1bmluZyBtYWludGFpbnMg cHJzdGF0ZS0+c2V0X2FsbF92aXNpYmxlLCB3ZSBkb24ndAorCSAqIHNldCB0aGUgVk0gZm9yIG5v dy4KKwkgKi8KKwlpZiAocmVhc29uID09IFBSVU5FX09OX0FDQ0VTUykKKwkJcmV0dXJuIGZhbHNl OworCisJaWYgKCFwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUpCisJCXJldHVybiBmYWxzZTsKKwor CXByc3RhdGUtPm5ld192bWJpdHMgPSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOworCisJaWYg KHByc3RhdGUtPnNldF9hbGxfZnJvemVuKQorCQlwcnN0YXRlLT5uZXdfdm1iaXRzIHw9IFZJU0lC SUxJVFlNQVBfQUxMX0ZST1pFTjsKKworCWlmIChwcnN0YXRlLT5uZXdfdm1iaXRzID09IHByc3Rh dGUtPm9sZF92bWJpdHMpCisJeworCQlwcnN0YXRlLT5uZXdfdm1iaXRzID0gMDsKKwkJcmV0dXJu IGZhbHNlOworCX0KKworCXJldHVybiB0cnVlOworfQorCiAvKgogICogSWYgdGhlIHBhZ2UgaXMg YWxyZWFkeSBhbGwtZnJvemVuLCBvciBhbHJlYWR5IGFsbC12aXNpYmxlIGFuZCBmcmVlemluZwog ICogaXMgbm90IGJlaW5nIGF0dGVtcHRlZCwgdGhlcmUgaXMgbm8gcmVtYWluaW5nIHdvcmsgYW5k IHdlIGNhbiBieXBhc3MgdGhlCkBAIC05NTAsOCArOTkyLDYgQEAgcHJ1bmVfZnJlZXplX2J5cGFz cyhQcnVuZVN0YXRlICpwcnN0YXRlLCBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCkKIAkvKiBX ZSdsbCBmaWxsIGluIHByZXN1bHQgZm9yIHRoZSBjYWxsZXIgKi8KIAltZW1zZXQocHJlc3VsdCwg MCwgc2l6ZW9mKFBydW5lRnJlZXplUmVzdWx0KSk7CiAKLQlwcmVzdWx0LT5vbGRfdm1iaXRzID0g cHJzdGF0ZS0+b2xkX3ZtYml0czsKLQogCS8qIENsZWFyIGFueSBzdGFsZSBwcnVuZSBoaW50ICov CiAJaWYgKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKFBhZ2VHZXRQcnVuZVhpZChwYWdlKSkpCiAJewpA QCAtOTg2LDcgKzEwMjYsOCBAQCBwcnVuZV9mcmVlemVfYnlwYXNzKFBydW5lU3RhdGUgKnByc3Rh dGUsIFBydW5lRnJlZXplUmVzdWx0ICpwcmVzdWx0KQogCiAvKgogICogUHJ1bmUgYW5kIHJlcGFp ciBmcmFnbWVudGF0aW9uIGFuZCBwb3RlbnRpYWxseSBmcmVlemUgdHVwbGVzIG9uIHRoZQotICog c3BlY2lmaWVkIHBhZ2UuCisgKiBzcGVjaWZpZWQgcGFnZS4gSWYgdGhlIHBhZ2UncyB2aXNpYmls aXR5IHN0YXR1cyBoYXMgY2hhbmdlZCwgdXBkYXRlIGl0IGluCisgKiB0aGUgVk0uCiAgKgogICog Q2FsbGVyIG11c3QgaGF2ZSBwaW4gYW5kIGJ1ZmZlciBjbGVhbnVwIGxvY2sgb24gdGhlIHBhZ2Uu ICBOb3RlIHRoYXQgd2UKICAqIGRvbid0IHVwZGF0ZSB0aGUgRlNNIGluZm9ybWF0aW9uIGZvciBw YWdlIG9uIGNhbGxlcidzIGJlaGFsZi4gIENhbGxlciBtaWdodApAQCAtMTAwMSwxMiArMTA0Miwx MCBAQCBwcnVuZV9mcmVlemVfYnlwYXNzKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lRnJlZXpl UmVzdWx0ICpwcmVzdWx0KQogICogdHVwbGVzIGlmIGl0J3MgcmVxdWlyZWQgaW4gb3JkZXIgdG8g YWR2YW5jZSByZWxmcm96ZW54aWQgLyByZWxtaW5teGlkLCBvcgogICogaWYgaXQncyBjb25zaWRl cmVkIGFkdmFudGFnZW91cyBmb3Igb3ZlcmFsbCBzeXN0ZW0gcGVyZm9ybWFuY2UgdG8gZG8gc28K ICAqIG5vdy4gIFRoZSAncGFyYW1zLmN1dG9mZnMnLCAncHJlc3VsdCcsICduZXdfcmVsZnJvemVu X3hpZCcgYW5kCi0gKiAnbmV3X3JlbG1pbl9teGlkJyBhcmd1bWVudHMgYXJlIHJlcXVpcmVkIHdo ZW4gZnJlZXppbmcuICBXaGVuCi0gKiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFIG9wdGlvbiBpcyBw YXNzZWQsIHdlIGFsc28gc2V0Ci0gKiBwcmVzdWx0LT5zZXRfYWxsX3Zpc2libGUgYW5kIHByZXN1 bHQtPnNldF9hbGxfZnJvemVuIGFmdGVyIGRldGVybWluaW5nCi0gKiB3aGV0aGVyIG9yIG5vdCB0 byBvcHBvcnR1bmlzdGljYWxseSBmcmVlemUsIHRvIGluZGljYXRlIGlmIHRoZSBWTSBiaXRzIGNh bgotICogYmUgc2V0LiAnYWxsLWZyb3plbicgaXMgYWx3YXlzIHNldCB0byBmYWxzZSB3aGVuIHRo ZSBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFCi0gKiBvcHRpb24gaXMgbm90IHBhc3NlZC4KKyAqICdu ZXdfcmVsbWluX214aWQnIGFyZ3VtZW50cyBhcmUgcmVxdWlyZWQgd2hlbiBmcmVlemluZy4KKyAq CisgKiBBIHZtYnVmZmVyIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGhlYXAgcGFnZSBpcyBhbHNvIHBh c3NlZCBhbmQgaWYgdGhlIHBhZ2UgaXMKKyAqIGZvdW5kIHRvIGJlIGFsbC12aXNpYmxlL2FsbC1m cm96ZW4sIHdlIHdpbGwgc2V0IGl0IGluIHRoZSBWTS4KICAqCiAgKiBwcmVzdWx0IGNvbnRhaW5z IG91dHB1dCBwYXJhbWV0ZXJzIG5lZWRlZCBieSBjYWxsZXJzLCBzdWNoIGFzIHRoZSBudW1iZXIg b2YKICAqIHR1cGxlcyByZW1vdmVkIGFuZCB0aGUgb2Zmc2V0cyBvZiBkZWFkIGl0ZW1zIG9uIHRo ZSBwYWdlIGFmdGVyIHBydW5pbmcuCkBAIC0xMDM0LDggKzEwNzMsMTAgQEAgaGVhcF9wYWdlX3By dW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAlib29sCQlkb19mcmVl emU7CiAJYm9vbAkJZG9fcHJ1bmU7CiAJYm9vbAkJZG9faGludF9wcnVuZTsKKwlib29sCQlkb19z ZXRfdm07CiAJYm9vbAkJZGlkX3R1cGxlX2hpbnRfZnBpOwogCWludDY0CQlmcGlfYmVmb3JlID0g cGdXYWxVc2FnZS53YWxfZnBpOworCVRyYW5zYWN0aW9uSWQgY29uZmxpY3RfeGlkOwogCiAJLyog SW5pdGlhbGl6ZSBwcnN0YXRlICovCiAJcHJ1bmVfZnJlZXplX3NldHVwKHBhcmFtcywKQEAgLTEx MjgsNiArMTE2OSwzMSBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBh cmFtcyAqcGFyYW1zLAogCQlwcnN0YXRlLnNldF9hbGxfdmlzaWJsZSA9IHByc3RhdGUuc2V0X2Fs bF9mcm96ZW4gPSBmYWxzZTsKIAogCUFzc2VydCghcHJzdGF0ZS5zZXRfYWxsX2Zyb3plbiB8fCBw cnN0YXRlLnNldF9hbGxfdmlzaWJsZSk7CisJQXNzZXJ0KCFwcnN0YXRlLnNldF9hbGxfdmlzaWJs ZSB8fCAocHJzdGF0ZS5scGRlYWRfaXRlbXMgPT0gMCkpOworCisJZG9fc2V0X3ZtID0gaGVhcF9w YWdlX3dpbGxfc2V0X3ZtKCZwcnN0YXRlLCBwYXJhbXMtPnJlYXNvbik7CisKKwkvKgorCSAqIG5l d192bWJpdHMgc2hvdWxkIGJlIDAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgcGFn ZSBpcworCSAqIGFsbC12aXNpYmxlIGlmIHdlIGRvIG5vdCBpbnRlbmQgdG8gc2V0IHRoZSBWTS4K KwkgKi8KKwlBc3NlcnQoZG9fc2V0X3ZtIHx8IHByc3RhdGUubmV3X3ZtYml0cyA9PSAwKTsKKwor CS8qCisJICogVGhlIHNuYXBzaG90IGNvbmZsaWN0IGhvcml6b24gZm9yIHRoZSB3aG9sZSByZWNv cmQgaXMgdGhlIG1vc3QKKwkgKiBjb25zZXJ2YXRpdmUgKG5ld2VzdCkgaG9yaXpvbiByZXF1aXJl ZCBieSBhbnkgY2hhbmdlIGluIHRoZSByZWNvcmQuCisJICovCisJY29uZmxpY3RfeGlkID0gSW52 YWxpZFRyYW5zYWN0aW9uSWQ7CisJaWYgKGRvX3NldF92bSkKKwkJY29uZmxpY3RfeGlkID0gcHJz dGF0ZS5uZXdlc3RfbGl2ZV94aWQ7CisJaWYgKGRvX2ZyZWV6ZSAmJiBUcmFuc2FjdGlvbklkRm9s bG93cyhwcnN0YXRlLnBhZ2VmcnouRnJlZXplUGFnZUNvbmZsaWN0WGlkLCBjb25mbGljdF94aWQp KQorCQljb25mbGljdF94aWQgPSBwcnN0YXRlLnBhZ2VmcnouRnJlZXplUGFnZUNvbmZsaWN0WGlk OworCWlmIChkb19wcnVuZSAmJiBUcmFuc2FjdGlvbklkRm9sbG93cyhwcnN0YXRlLmxhdGVzdF94 aWRfcmVtb3ZlZCwgY29uZmxpY3RfeGlkKSkKKwkJY29uZmxpY3RfeGlkID0gcHJzdGF0ZS5sYXRl c3RfeGlkX3JlbW92ZWQ7CisKKwkvKiBMb2NrIHZtYnVmZmVyIGJlZm9yZSBlbnRlcmluZyBhIGNy aXRpY2FsIHNlY3Rpb24gKi8KKwlpZiAoZG9fc2V0X3ZtKQorCQlMb2NrQnVmZmVyKHByc3RhdGUu dm1idWZmZXIsIEJVRkZFUl9MT0NLX0VYQ0xVU0lWRSk7CiAKIAkvKiBBbnkgZXJyb3Igd2hpbGUg YXBwbHlpbmcgdGhlIGNoYW5nZXMgaXMgY3JpdGljYWwgKi8KIAlTVEFSVF9DUklUX1NFQ1RJT04o KTsKQEAgLTExNDksMTQgKzEyMTUsMTcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1 bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAogCQkvKgogCQkgKiBJZiB0aGF0J3MgYWxsIHdlIGhh ZCB0byBkbyB0byB0aGUgcGFnZSwgdGhpcyBpcyBhIG5vbi1XQUwtbG9nZ2VkCi0JCSAqIGhpbnQu ICBJZiB3ZSBhcmUgZ29pbmcgdG8gZnJlZXplIG9yIHBydW5lIHRoZSBwYWdlLCB3ZSB3aWxsIG1h cmsKLQkJICogdGhlIGJ1ZmZlciBkaXJ0eSBiZWxvdy4KKwkJICogaGludC4gIElmIHdlIGFyZSBn b2luZyB0byBmcmVlemUgb3IgcHJ1bmUgdGhlIHBhZ2Ugb3Igc2V0CisJCSAqIFBEX0FMTF9WSVNJ QkxFLCB3ZSB3aWxsIG1hcmsgdGhlIGJ1ZmZlciBkaXJ0eSBiZWxvdy4KKwkJICoKKwkJICogU2V0 dGluZyBQRF9BTExfVklTSUJMRSBpcyBmdWxseSBXQUwtbG9nZ2VkIGJlY2F1c2UgaXQgaXMgZm9y YmlkZGVuCisJCSAqIGZvciB0aGUgVk0gdG8gYmUgc2V0IGFuZCBQRF9BTExfVklTSUJMRSB0byBi ZSBjbGVhci4KIAkJICovCi0JCWlmICghZG9fZnJlZXplICYmICFkb19wcnVuZSkKKwkJaWYgKCFk b19mcmVlemUgJiYgIWRvX3BydW5lICYmICFkb19zZXRfdm0pCiAJCQlNYXJrQnVmZmVyRGlydHlI aW50KHByc3RhdGUuYnVmZmVyLCB0cnVlKTsKIAl9CiAKLQlpZiAoZG9fcHJ1bmUgfHwgZG9fZnJl ZXplKQorCWlmIChkb19wcnVuZSB8fCBkb19mcmVlemUgfHwgZG9fc2V0X3ZtKQogCXsKIAkJLyog QXBwbHkgdGhlIHBsYW5uZWQgaXRlbSBjaGFuZ2VzIGFuZCByZXBhaXIgcGFnZSBmcmFnbWVudGF0 aW9uLiAqLwogCQlpZiAoZG9fcHJ1bmUpCkBAIC0xMTcwLDYgKzEyMzksMjcgQEAgaGVhcF9wYWdl X3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAkJaWYgKGRvX2Zy ZWV6ZSkKIAkJCWhlYXBfZnJlZXplX3ByZXBhcmVkX3R1cGxlcyhwcnN0YXRlLmJ1ZmZlciwgcHJz dGF0ZS5mcm96ZW4sIHByc3RhdGUubmZyb3plbik7CiAKKwkJLyogU2V0IHRoZSB2aXNpYmlsaXR5 IG1hcCBhbmQgcGFnZSB2aXNpYmlsaXR5IGhpbnQgKi8KKwkJaWYgKGRvX3NldF92bSkKKwkJewor CQkJLyoKKwkJCSAqIFdoaWxlIGl0IGlzIHZhbGlkIGZvciBQRF9BTExfVklTSUJMRSB0byBiZSBz ZXQgd2hlbiB0aGUKKwkJCSAqIGNvcnJlc3BvbmRpbmcgVk0gYml0IGlzIGNsZWFyLCB3ZSBzdHJv bmdseSBwcmVmZXIgdG8ga2VlcCB0aGVtCisJCQkgKiBpbiBzeW5jLgorCQkJICoKKwkJCSAqIFRo ZSBoZWFwIGJ1ZmZlciBtdXN0IGJlIG1hcmtlZCBkaXJ0eSBiZWZvcmUgYWRkaW5nIGl0IHRvIHRo ZQorCQkJICogV0FMIGNoYWluIHdoZW4gc2V0dGluZyB0aGUgVk0uIFdlIGRvbid0IHdvcnJ5IGFi b3V0CisJCQkgKiB1bm5lY2Vzc2FyaWx5IGRpcnR5aW5nIHRoZSBoZWFwIGJ1ZmZlciBpZiBQRF9B TExfVklTSUJMRSBpcworCQkJICogYWxyZWFkeSBzZXQsIHRob3VnaC4gSXQgaXMgZXh0cmVtZWx5 IHJhcmUgdG8gaGF2ZSBhIGNsZWFuIGhlYXAKKwkJCSAqIGJ1ZmZlciB3aXRoIFBEX0FMTF9WSVNJ QkxFIGFscmVhZHkgc2V0IGFuZCB0aGUgVk0gYml0cyBjbGVhciwKKwkJCSAqIHNvIHRoZXJlIGlz IG5vIHBvaW50IGluIG9wdGltaXppbmcgaXQuCisJCQkgKi8KKwkJCVBhZ2VTZXRBbGxWaXNpYmxl KHByc3RhdGUucGFnZSk7CisJCQlQYWdlQ2xlYXJQcnVuYWJsZShwcnN0YXRlLnBhZ2UpOworCQkJ dmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKHByc3RhdGUuYmxvY2ssIHByc3RhdGUudm1idWZmZXIs IHByc3RhdGUubmV3X3ZtYml0cywKKwkJCQkJCQkJCSBwcnN0YXRlLnJlbGF0aW9uLT5yZF9sb2Nh dG9yKTsKKwkJfQorCiAJCU1hcmtCdWZmZXJEaXJ0eShwcnN0YXRlLmJ1ZmZlcik7CiAKIAkJLyoK QEAgLTExNzcsMjkgKzEyNjcsMTIgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVG cmVlemVQYXJhbXMgKnBhcmFtcywKIAkJICovCiAJCWlmIChSZWxhdGlvbk5lZWRzV0FMKHByc3Rh dGUucmVsYXRpb24pKQogCQl7Ci0JCQkvKgotCQkJICogVGhlIHNuYXBzaG90Q29uZmxpY3RIb3Jp em9uIGZvciB0aGUgd2hvbGUgcmVjb3JkIHNob3VsZCBiZSB0aGUKLQkJCSAqIG1vc3QgY29uc2Vy dmF0aXZlIG9mIGFsbCB0aGUgaG9yaXpvbnMgY2FsY3VsYXRlZCBmb3IgYW55IG9mIHRoZQotCQkJ ICogcG9zc2libGUgbW9kaWZpY2F0aW9ucy4gSWYgdGhpcyByZWNvcmQgd2lsbCBwcnVuZSB0dXBs ZXMsIGFueQotCQkJICogcXVlcmllcyBvbiB0aGUgc3RhbmRieSBvbGRlciB0aGFuIHRoZSBuZXdl c3QgeGlkIG9mIHRoZSBtb3N0Ci0JCQkgKiByZWNlbnRseSByZW1vdmVkIHR1cGxlIHRoaXMgcmVj b3JkIHdpbGwgcHJ1bmUgd2lsbCBjb25mbGljdC4gSWYKLQkJCSAqIHRoaXMgcmVjb3JkIHdpbGwg ZnJlZXplIHR1cGxlcywgYW55IHF1ZXJpZXMgb24gdGhlIHN0YW5kYnkgd2l0aAotCQkJICogeGlk cyBvbGRlciB0aGFuIHRoZSBuZXdlc3QgdHVwbGUgdGhpcyByZWNvcmQgd2lsbCBmcmVlemUgd2ls bAotCQkJICogY29uZmxpY3QuCi0JCQkgKi8KLQkJCVRyYW5zYWN0aW9uSWQgY29uZmxpY3RfeGlk OwotCi0JCQlpZiAoVHJhbnNhY3Rpb25JZEZvbGxvd3MocHJzdGF0ZS5wYWdlZnJ6LkZyZWV6ZVBh Z2VDb25mbGljdFhpZCwKLQkJCQkJCQkJCSBwcnN0YXRlLmxhdGVzdF94aWRfcmVtb3ZlZCkpCi0J CQkJY29uZmxpY3RfeGlkID0gcHJzdGF0ZS5wYWdlZnJ6LkZyZWV6ZVBhZ2VDb25mbGljdFhpZDsK LQkJCWVsc2UKLQkJCQljb25mbGljdF94aWQgPSBwcnN0YXRlLmxhdGVzdF94aWRfcmVtb3ZlZDsK LQogCQkJbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShwcnN0YXRlLnJlbGF0aW9uLCBwcnN0YXRl LmJ1ZmZlciwKLQkJCQkJCQkJCSAgSW52YWxpZEJ1ZmZlciwJLyogdm1idWZmZXIgKi8KLQkJCQkJ CQkJCSAgMCwJLyogdm1mbGFncyAqLworCQkJCQkJCQkJICBkb19zZXRfdm0gPyBwcnN0YXRlLnZt YnVmZmVyIDogSW52YWxpZEJ1ZmZlciwKKwkJCQkJCQkJCSAgZG9fc2V0X3ZtID8gcHJzdGF0ZS5u ZXdfdm1iaXRzIDogMCwKIAkJCQkJCQkJCSAgY29uZmxpY3RfeGlkLAotCQkJCQkJCQkJICB0cnVl LCBwYXJhbXMtPnJlYXNvbiwKKwkJCQkJCQkJCSAgdHJ1ZSwgLyogY2xlYW51cCBsb2NrICovCisJ CQkJCQkJCQkgIHBhcmFtcy0+cmVhc29uLAogCQkJCQkJCQkJICBwcnN0YXRlLmZyb3plbiwgcHJz dGF0ZS5uZnJvemVuLAogCQkJCQkJCQkJICBwcnN0YXRlLnJlZGlyZWN0ZWQsIHByc3RhdGUubnJl ZGlyZWN0ZWQsCiAJCQkJCQkJCQkgIHByc3RhdGUubm93ZGVhZCwgcHJzdGF0ZS5uZGVhZCwKQEAg LTEyMDksMzMgKzEyODIsNzEgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVl emVQYXJhbXMgKnBhcmFtcywKIAogCUVORF9DUklUX1NFQ1RJT04oKTsKIAorCWlmIChkb19zZXRf dm0pCisJCUxvY2tCdWZmZXIocHJzdGF0ZS52bWJ1ZmZlciwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsK KworCS8qCisJICogRHVyaW5nIGl0cyBzZWNvbmQgcGFzcyBvdmVyIHRoZSBoZWFwLCBWQUNVVU0g Y2FsbHMKKwkgKiBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoKSB0byBkZXRlcm1pbmUg d2hldGhlciBhIHBhZ2UgaXMKKwkgKiBhbGwtdmlzaWJsZSBhbmQgYWxsLWZyb3plbi4gVGhlIGxv Z2ljIGhlcmUgaXMgc2ltaWxhci4gQWZ0ZXIgY29tcGxldGluZworCSAqIHBydW5pbmcgYW5kIGZy ZWV6aW5nLCB1c2UgYW4gYXNzZXJ0aW9uIHRvIHZlcmlmeSB0aGF0IG91ciByZXN1bHRzCisJICog cmVtYWluIGNvbnNpc3RlbnQgd2l0aCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoKS4g SXQncyBhbHNvIGEKKwkgKiB2YWx1YWJsZSBjcm9zcy1jaGVjayBvZiB0aGUgcGFnZSBzdGF0ZSBh ZnRlciBwcnVuaW5nIGFuZCBmcmVlemluZy4KKwkgKi8KKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNL SU5HCisJaWYgKHByc3RhdGUuc2V0X2FsbF92aXNpYmxlKQorCXsKKwkJVHJhbnNhY3Rpb25JZCBk ZWJ1Z19jdXRvZmY7CisJCWJvb2wJCWRlYnVnX2FsbF9mcm96ZW47CisKKwkJQXNzZXJ0KHByc3Rh dGUubHBkZWFkX2l0ZW1zID09IDApOworCisJCUFzc2VydChoZWFwX3BhZ2VfaXNfYWxsX3Zpc2li bGUocHJzdGF0ZS5yZWxhdGlvbiwgcHJzdGF0ZS5idWZmZXIsCisJCQkJCQkJCQkJcHJzdGF0ZS52 aXN0ZXN0LAorCQkJCQkJCQkJCSZkZWJ1Z19hbGxfZnJvemVuLAorCQkJCQkJCQkJCSZkZWJ1Z19j dXRvZmYsIG9mZl9sb2MpKTsKKworCQlBc3NlcnQoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKGRlYnVn X2N1dG9mZikgfHwKKwkJCSAgIGRlYnVnX2N1dG9mZiA9PSBwcnN0YXRlLm5ld2VzdF9saXZlX3hp ZCk7CisKKwkJLyoKKwkJICogSXQncyBwb3NzaWJsZSB0aGUgcGFnZSBpcyBjb21wb3NlZCBlbnRp cmVseSBvZiBmcm96ZW4gdHVwbGVzIGJ1dCBpcworCQkgKiBub3Qgc2V0IGFsbC1mcm96ZW4gaW4g dGhlIFZNIGFuZCBkaWQgbm90IHBhc3MKKwkJICogSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRS4gSW4g dGhpcyBjYXNlLCBpdCdzIHBvc3NpYmxlCisJCSAqIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZSgp IGZpbmRzIHRoZSBwYWdlIGNvbXBsZXRlbHkgZnJvemVuLCBldmVuCisJCSAqIHRob3VnaCBwcnN0 YXRlLnNldF9hbGxfZnJvemVuIGlzIGZhbHNlLgorCQkgKi8KKwkJQXNzZXJ0KCFwcnN0YXRlLnNl dF9hbGxfZnJvemVuIHx8IGRlYnVnX2FsbF9mcm96ZW4pOworCX0KKyNlbmRpZgorCiAJLyogQ29w eSBpbmZvcm1hdGlvbiBiYWNrIGZvciBjYWxsZXIgKi8KIAlwcmVzdWx0LT5uZGVsZXRlZCA9IHBy c3RhdGUubmRlbGV0ZWQ7CiAJcHJlc3VsdC0+bm5ld2xwZGVhZCA9IHByc3RhdGUubmRlYWQ7CiAJ cHJlc3VsdC0+bmZyb3plbiA9IHByc3RhdGUubmZyb3plbjsKIAlwcmVzdWx0LT5saXZlX3R1cGxl cyA9IHByc3RhdGUubGl2ZV90dXBsZXM7CiAJcHJlc3VsdC0+cmVjZW50bHlfZGVhZF90dXBsZXMg PSBwcnN0YXRlLnJlY2VudGx5X2RlYWRfdHVwbGVzOwotCXByZXN1bHQtPnNldF9hbGxfdmlzaWJs ZSA9IHByc3RhdGUuc2V0X2FsbF92aXNpYmxlOwotCXByZXN1bHQtPnNldF9hbGxfZnJvemVuID0g cHJzdGF0ZS5zZXRfYWxsX2Zyb3plbjsKIAlwcmVzdWx0LT5oYXN0dXAgPSBwcnN0YXRlLmhhc3R1 cDsKLQlwcmVzdWx0LT5vbGRfdm1iaXRzID0gcHJzdGF0ZS5vbGRfdm1iaXRzOwotCi0JLyoKLQkg KiBGb3IgY2FsbGVycyBwbGFubmluZyB0byB1cGRhdGUgdGhlIHZpc2liaWxpdHkgbWFwLCB0aGUg Y29uZmxpY3QgaG9yaXpvbgotCSAqIGZvciB0aGF0IHJlY29yZCBtdXN0IGJlIHRoZSBuZXdlc3Qg eG1pbiBvbiB0aGUgcGFnZS4gIEhvd2V2ZXIsIGlmIHRoZQotCSAqIHBhZ2UgaXMgY29tcGxldGVs eSBmcm96ZW4sIHRoZXJlIGNhbiBiZSBubyBjb25mbGljdCBhbmQgdGhlCi0JICogdm1fY29uZmxp Y3RfaG9yaXpvbiBzaG91bGQgcmVtYWluIEludmFsaWRUcmFuc2FjdGlvbklkLiAgVGhpcyBpbmNs dWRlcwotCSAqIHRoZSBjYXNlIHRoYXQgd2UganVzdCBmcm96ZSBhbGwgdGhlIHR1cGxlczsgdGhl IHBydW5lLWZyZWV6ZSByZWNvcmQKLQkgKiBpbmNsdWRlZCB0aGUgY29uZmxpY3QgWElEIGFscmVh ZHkgc28gdGhlIGNhbGxlciBkb2Vzbid0IG5lZWQgaXQuCi0JICovCi0JaWYgKHByZXN1bHQtPnNl dF9hbGxfZnJvemVuKQotCQlwcmVzdWx0LT52bV9jb25mbGljdF9ob3Jpem9uID0gSW52YWxpZFRy YW5zYWN0aW9uSWQ7Ci0JZWxzZQotCQlwcmVzdWx0LT52bV9jb25mbGljdF9ob3Jpem9uID0gcHJz dGF0ZS5uZXdlc3RfbGl2ZV94aWQ7CiAKIAlwcmVzdWx0LT5scGRlYWRfaXRlbXMgPSBwcnN0YXRl LmxwZGVhZF9pdGVtczsKIAkvKiB0aGUgcHJlc3VsdC0+ZGVhZG9mZnNldHMgYXJyYXkgd2FzIGFs cmVhZHkgZmlsbGVkIGluICovCiAKKwlwcmVzdWx0LT5uZXdseV9hbGxfdmlzaWJsZSA9IGZhbHNl OworCXByZXN1bHQtPm5ld2x5X2FsbF9mcm96ZW4gPSBmYWxzZTsKKwlwcmVzdWx0LT5uZXdseV9h bGxfdmlzaWJsZV9mcm96ZW4gPSBmYWxzZTsKKwlpZiAoZG9fc2V0X3ZtKQorCXsKKwkJaWYgKChw cnN0YXRlLm9sZF92bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFKSA9PSAwKQorCQl7 CisJCQlwcmVzdWx0LT5uZXdseV9hbGxfdmlzaWJsZSA9IHRydWU7CisJCQlpZiAocHJzdGF0ZS5z ZXRfYWxsX2Zyb3plbikKKwkJCQlwcmVzdWx0LT5uZXdseV9hbGxfdmlzaWJsZV9mcm96ZW4gPSB0 cnVlOworCQl9CisJCWVsc2UgaWYgKChwcnN0YXRlLm9sZF92bWJpdHMgJiBWSVNJQklMSVRZTUFQ X0FMTF9GUk9aRU4pID09IDAgJiYKKwkJCQkgcHJzdGF0ZS5zZXRfYWxsX2Zyb3plbikKKwkJCXBy ZXN1bHQtPm5ld2x5X2FsbF9mcm96ZW4gPSB0cnVlOworCX0KKwogCWlmIChwcnN0YXRlLmF0dGVt cHRfZnJlZXplKQogCXsKIAkJaWYgKHByZXN1bHQtPm5mcm96ZW4gPiAwKQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDY5NjkxOWUzNWRkLi4yM2RlYWJkOGMwMSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtNDY2LDEzICs0NjYsNiBAQCBzdGF0aWMg dm9pZCBkZWFkX2l0ZW1zX2FkZChMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25v LCBPZmZzZXROdW1iZXIgKgogc3RhdGljIHZvaWQgZGVhZF9pdGVtc19yZXNldChMVlJlbFN0YXRl ICp2YWNyZWwpOwogc3RhdGljIHZvaWQgZGVhZF9pdGVtc19jbGVhbnVwKExWUmVsU3RhdGUgKnZh Y3JlbCk7CiAKLSNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCi1zdGF0aWMgYm9vbCBoZWFwX3Bh Z2VfaXNfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAotCQkJCQkJCQkJIEds b2JhbFZpc1N0YXRlICp2aXN0ZXN0LAotCQkJCQkJCQkJIGJvb2wgKmFsbF9mcm96ZW4sCi0JCQkJ CQkJCQkgVHJhbnNhY3Rpb25JZCAqbmV3ZXN0X2xpdmVfeGlkLAotCQkJCQkJCQkJIE9mZnNldE51 bWJlciAqbG9nZ2luZ19vZmZudW0pOwotI2VuZGlmCiBzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd291 bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogCQkJCQkJCQkJCSAg IEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0LAogCQkJCQkJCQkJCSAgIGJvb2wgYWxsb3dfdXBkYXRl X3Zpc3Rlc3QsCkBAIC0yMDIyLDggKzIwMTUsNiBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0 ZSAqdmFjcmVsLAogCQkudmlzdGVzdCA9IHZhY3JlbC0+dmlzdGVzdCwKIAkJLmN1dG9mZnMgPSAm dmFjcmVsLT5jdXRvZmZzLAogCX07Ci0JdWludDgJCW9sZF92bWJpdHMgPSAwOwotCXVpbnQ4CQlu ZXdfdm1iaXRzID0gMDsKIAogCUFzc2VydChCdWZmZXJHZXRCbG9ja051bWJlcihidWYpID09IGJs a25vKTsKIApAQCAtMjA3NCwzMiArMjA2NSw2IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRl ICp2YWNyZWwsCiAJCXZhY3JlbC0+bmV3X2Zyb3plbl90dXBsZV9wYWdlcysrOwogCX0KIAotCS8q Ci0JICogVkFDVVVNIHdpbGwgY2FsbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoKSBkdXJpbmcg dGhlIHNlY29uZCBwYXNzIG92ZXIKLQkgKiB0aGUgaGVhcCB0byBkZXRlcm1pbmUgYWxsX3Zpc2li bGUgYW5kIGFsbF9mcm96ZW4gZm9yIHRoZSBwYWdlIC0tIHRoaXMKLQkgKiBpcyBhIHNwZWNpYWxp emVkIHZlcnNpb24gb2YgdGhlIGxvZ2ljIGZyb20gdGhpcyBmdW5jdGlvbi4gIE5vdyB0aGF0Ci0J ICogd2UndmUgZmluaXNoZWQgcHJ1bmluZyBhbmQgZnJlZXppbmcsIG1ha2Ugc3VyZSB0aGF0IHdl J3JlIGluIHRvdGFsCi0JICogYWdyZWVtZW50IHdpdGggaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxl KCkgdXNpbmcgYW4gYXNzZXJ0aW9uLgotCSAqLwotI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcK LQlpZiAocHJlc3VsdC5zZXRfYWxsX3Zpc2libGUpCi0JewotCQlUcmFuc2FjdGlvbklkIGRlYnVn X2N1dG9mZjsKLQkJYm9vbAkJZGVidWdfYWxsX2Zyb3plbjsKLQotCQlBc3NlcnQocHJlc3VsdC5s cGRlYWRfaXRlbXMgPT0gMCk7Ci0KLQkJQXNzZXJ0KGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZSh2 YWNyZWwtPnJlbCwgYnVmLAotCQkJCQkJCQkJCXZhY3JlbC0+dmlzdGVzdCwgJmRlYnVnX2FsbF9m cm96ZW4sCi0JCQkJCQkJCQkJJmRlYnVnX2N1dG9mZiwgJnZhY3JlbC0+b2ZmbnVtKSk7Ci0KLQkJ QXNzZXJ0KHByZXN1bHQuc2V0X2FsbF9mcm96ZW4gPT0gZGVidWdfYWxsX2Zyb3plbik7Ci0KLQkJ QXNzZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZChkZWJ1Z19jdXRvZmYpIHx8Ci0JCQkgICBkZWJ1 Z19jdXRvZmYgPT0gcHJlc3VsdC52bV9jb25mbGljdF9ob3Jpem9uKTsKLQl9Ci0jZW5kaWYKLQog CS8qCiAJICogTm93IHNhdmUgZGV0YWlscyBvZiB0aGUgTFBfREVBRCBpdGVtcyBmcm9tIHRoZSBw YWdlIGluIHZhY3JlbAogCSAqLwpAQCAtMjEyMCw2ICsyMDg1LDE3IEBAIGxhenlfc2Nhbl9wcnVu ZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJfQogCiAJLyogRmluYWxseSwgYWRkIHBhZ2UtbG9jYWwg Y291bnRzIHRvIHdob2xlLVZBQ1VVTSBjb3VudHMgKi8KKwlpZiAocHJlc3VsdC5uZXdseV9hbGxf dmlzaWJsZSkKKwkJdmFjcmVsLT5uZXdfYWxsX3Zpc2libGVfcGFnZXMrKzsKKwlpZiAocHJlc3Vs dC5uZXdseV9hbGxfdmlzaWJsZV9mcm96ZW4pCisJCXZhY3JlbC0+bmV3X2FsbF92aXNpYmxlX2Fs bF9mcm96ZW5fcGFnZXMrKzsKKwlpZiAocHJlc3VsdC5uZXdseV9hbGxfZnJvemVuKQorCQl2YWNy ZWwtPm5ld19hbGxfZnJvemVuX3BhZ2VzKys7CisKKwkvKiBDYXB0dXJlIGlmIHRoZSBwYWdlIHdh cyBuZXdseSBzZXQgZnJvemVuICovCisJKnZtX3BhZ2VfZnJvemVuID0gcHJlc3VsdC5uZXdseV9h bGxfdmlzaWJsZV9mcm96ZW4gfHwKKwkJcHJlc3VsdC5uZXdseV9hbGxfZnJvemVuOworCiAJdmFj cmVsLT50dXBsZXNfZGVsZXRlZCArPSBwcmVzdWx0Lm5kZWxldGVkOwogCXZhY3JlbC0+dHVwbGVz X2Zyb3plbiArPSBwcmVzdWx0Lm5mcm96ZW47CiAJdmFjcmVsLT5scGRlYWRfaXRlbXMgKz0gcHJl c3VsdC5scGRlYWRfaXRlbXM7CkBAIC0yMTMzLDcxICsyMTA5LDYgQEAgbGF6eV9zY2FuX3BydW5l KExWUmVsU3RhdGUgKnZhY3JlbCwKIAkvKiBEaWQgd2UgZmluZCBMUF9ERUFEIGl0ZW1zPyAqLwog CSpoYXNfbHBkZWFkX2l0ZW1zID0gKHByZXN1bHQubHBkZWFkX2l0ZW1zID4gMCk7CiAKLQlBc3Nl cnQoIXByZXN1bHQuc2V0X2FsbF92aXNpYmxlIHx8ICEoKmhhc19scGRlYWRfaXRlbXMpKTsKLQlB c3NlcnQoIXByZXN1bHQuc2V0X2FsbF9mcm96ZW4gfHwgcHJlc3VsdC5zZXRfYWxsX3Zpc2libGUp OwotCi0JaWYgKCFwcmVzdWx0LnNldF9hbGxfdmlzaWJsZSkKLQkJcmV0dXJuIHByZXN1bHQubmRl bGV0ZWQ7Ci0KLQkvKiBTZXQgdGhlIHZpc2liaWxpdHkgbWFwIGFuZCBwYWdlIHZpc2liaWxpdHkg aGludCAqLwotCW9sZF92bWJpdHMgPSBwcmVzdWx0Lm9sZF92bWJpdHM7Ci0JbmV3X3ZtYml0cyA9 IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7Ci0JaWYgKHByZXN1bHQuc2V0X2FsbF9mcm96ZW4p Ci0JCW5ld192bWJpdHMgfD0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOOwotCi0JLyogTm90aGlu ZyB0byBkbyAqLwotCWlmIChvbGRfdm1iaXRzID09IG5ld192bWJpdHMpCi0JCXJldHVybiBwcmVz dWx0Lm5kZWxldGVkOwotCi0JLyoKLQkgKiBJdCBzaG91bGQgbmV2ZXIgYmUgdGhlIGNhc2UgdGhh dCB0aGUgdmlzaWJpbGl0eSBtYXAgcGFnZSBpcyBzZXQgd2hpbGUKLQkgKiB0aGUgcGFnZS1sZXZl bCBiaXQgaXMgY2xlYXIgKGFuZCBpZiBzbywgd2UgY2xlYXJlZCBpdCBhYm92ZSksIGJ1dCB0aGUK LQkgKiByZXZlcnNlIGlzIGFsbG93ZWQgKGlmIGNoZWNrc3VtcyBhcmUgbm90IGVuYWJsZWQpLiBS ZWdhcmRsZXNzLCBzZXQgYm90aAotCSAqIGJpdHMgc28gdGhhdCB3ZSBnZXQgYmFjayBpbiBzeW5j LgotCSAqCi0JICogVGhlIGhlYXAgYnVmZmVyIG11c3QgYmUgbWFya2VkIGRpcnR5IGJlZm9yZSBh ZGRpbmcgaXQgdG8gdGhlIFdBTCBjaGFpbgotCSAqIHdoZW4gc2V0dGluZyB0aGUgVk0uIFdlIGRv bid0IHdvcnJ5IGFib3V0IHVubmVjZXNzYXJpbHkgZGlydHlpbmcgdGhlCi0JICogaGVhcCBidWZm ZXIgaWYgUERfQUxMX1ZJU0lCTEUgaXMgYWxyZWFkeSBzZXQsIHRob3VnaC4gSXQgaXMgZXh0cmVt ZWx5Ci0JICogcmFyZSB0byBoYXZlIGEgY2xlYW4gaGVhcCBidWZmZXIgd2l0aCBQRF9BTExfVklT SUJMRSBhbHJlYWR5IHNldCBhbmQKLQkgKiB0aGUgVk0gYml0cyBjbGVhciwgc28gdGhlcmUgaXMg bm8gcG9pbnQgaW4gb3B0aW1pemluZyBpdC4KLQkgKi8KLQlQYWdlU2V0QWxsVmlzaWJsZShwYWdl KTsKLQlQYWdlQ2xlYXJQcnVuYWJsZShwYWdlKTsKLQlNYXJrQnVmZmVyRGlydHkoYnVmKTsKLQot CS8qCi0JICogSWYgdGhlIHBhZ2UgaXMgYmVpbmcgc2V0IGFsbC1mcm96ZW4sIHdlIHBhc3MgSW52 YWxpZFRyYW5zYWN0aW9uSWQgYXMKLQkgKiB0aGUgY3V0b2ZmX3hpZCwgc2luY2UgYSBzbmFwc2hv dCBjb25mbGljdCBob3Jpem9uIHN1ZmZpY2llbnQgdG8gbWFrZQotCSAqIGV2ZXJ5dGhpbmcgc2Fm ZSBmb3IgUkVETyB3YXMgbG9nZ2VkIHdoZW4gdGhlIHBhZ2UncyB0dXBsZXMgd2VyZSBmcm96ZW4u Ci0JICovCi0JQXNzZXJ0KCFwcmVzdWx0LnNldF9hbGxfZnJvemVuIHx8Ci0JCSAgICFUcmFuc2Fj dGlvbklkSXNWYWxpZChwcmVzdWx0LnZtX2NvbmZsaWN0X2hvcml6b24pKTsKLQotCXZpc2liaWxp dHltYXBfc2V0KHZhY3JlbC0+cmVsLCBibGtubywgYnVmLAotCQkJCQkgIEludmFsaWRYTG9nUmVj UHRyLAotCQkJCQkgIHZtYnVmZmVyLCBwcmVzdWx0LnZtX2NvbmZsaWN0X2hvcml6b24sCi0JCQkJ CSAgbmV3X3ZtYml0cyk7Ci0KLQkvKgotCSAqIElmIHRoZSBwYWdlIHdhc24ndCBhbHJlYWR5IHNl dCBhbGwtdmlzaWJsZSBhbmQvb3IgYWxsLWZyb3plbiBpbiB0aGUgVk0sCi0JICogY291bnQgaXQg YXMgbmV3bHkgc2V0IGZvciBsb2dnaW5nLgotCSAqLwotCWlmICgob2xkX3ZtYml0cyAmIFZJU0lC SUxJVFlNQVBfQUxMX1ZJU0lCTEUpID09IDApCi0JewotCQl2YWNyZWwtPm5ld19hbGxfdmlzaWJs ZV9wYWdlcysrOwotCQlpZiAocHJlc3VsdC5zZXRfYWxsX2Zyb3plbikKLQkJewotCQkJdmFjcmVs LT5uZXdfYWxsX3Zpc2libGVfYWxsX2Zyb3plbl9wYWdlcysrOwotCQkJKnZtX3BhZ2VfZnJvemVu ID0gdHJ1ZTsKLQkJfQotCX0KLQllbHNlIGlmICgob2xkX3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBf QUxMX0ZST1pFTikgPT0gMCAmJgotCQkJIHByZXN1bHQuc2V0X2FsbF9mcm96ZW4pCi0JewotCQl2 YWNyZWwtPm5ld19hbGxfZnJvemVuX3BhZ2VzKys7Ci0JCSp2bV9wYWdlX2Zyb3plbiA9IHRydWU7 Ci0JfQotCiAJcmV0dXJuIHByZXN1bHQubmRlbGV0ZWQ7CiB9CiAKQEAgLTM2MTMsNyArMzUyNCw3 IEBAIGRlYWRfaXRlbXNfY2xlYW51cChMVlJlbFN0YXRlICp2YWNyZWwpCiAgKiB0aGF0IGV4cGVj dCBubyBMUF9ERUFEIG9uIHRoZSBwYWdlLiBDdXJyZW50bHkgYXNzZXJ0LW9ubHksIGJ1dCB0aGVy ZSBpcyBubwogICogcmVhc29uIG5vdCB0byB1c2UgaXQgb3V0c2lkZSBvZiBhc3NlcnRzLgogICov Ci1zdGF0aWMgYm9vbAorYm9vbAogaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJl bCwgQnVmZmVyIGJ1ZiwKIAkJCQkJCSBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCSBi b29sICphbGxfZnJvemVuLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5o IGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCmluZGV4IDg4MTVhY2NjYWZiLi5lMTIzZGRh MDkwZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCisrKyBiL3NyYy9p bmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAtMjY1LDcgKzI2NSw4IEBAIHR5cGVkZWYgc3RydWN0 IFBydW5lRnJlZXplUGFyYW1zCiAKIAkvKgogCSAqIENhbGxlcnMgc2hvdWxkIHByb3ZpZGUgYSBw aW5uZWQgdm1idWZmZXIgY29ycmVzcG9uZGluZyB0byB0aGUgaGVhcAotCSAqIGJsb2NrIGluIGJ1 ZmZlci4gV2Ugd2lsbCBjaGVjayBmb3IgYW5kIHJlcGFpciBhbnkgY29ycnVwdGlvbiBpbiB0aGUg Vk0uCisJICogYmxvY2sgaW4gYnVmZmVyLiBXZSB3aWxsIGNoZWNrIGZvciBhbmQgcmVwYWlyIGFu eSBjb3JydXB0aW9uIGluIHRoZSBWTQorCSAqIGFuZCBzZXQgdGhlIFZNIGFmdGVyIHBydW5pbmcg aWYgdGhlIHBhZ2UgaXMgYWxsLXZpc2libGUvYWxsLWZyb3plbi4KIAkgKi8KIAlCdWZmZXIJCXZt YnVmZmVyOwogCkBAIC0yODEsOCArMjgyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUHJ1bmVGcmVlemVQ YXJhbXMKIAkgKiBIRUFQX1BBR0VfUFJVTkVfTUFSS19VTlVTRURfTk9XIGluZGljYXRlcyB0aGF0 IGRlYWQgaXRlbXMgY2FuIGJlIHNldAogCSAqIExQX1VOVVNFRCBkdXJpbmcgcHJ1bmluZy4KIAkg KgotCSAqIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUgaW5kaWNhdGVzIHRoYXQgd2Ugd2lsbCBhbHNv IGZyZWV6ZSB0dXBsZXMsIGFuZAotCSAqIHdpbGwgcmV0dXJuICdhbGxfdmlzaWJsZScsICdhbGxf ZnJvemVuJyBmbGFncyB0byB0aGUgY2FsbGVyLgorCSAqIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUg aW5kaWNhdGVzIHRoYXQgd2Ugd2lsbCBhbHNvIGZyZWV6ZSB0dXBsZXMuCiAJICovCiAJaW50CQkJ b3B0aW9uczsKIApAQCAtMzE2LDI2ICszMTYsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgUHJ1bmVGcmVl emVSZXN1bHQKIAlpbnQJCQlyZWNlbnRseV9kZWFkX3R1cGxlczsKIAogCS8qCi0JICogc2V0X2Fs bF92aXNpYmxlIGFuZCBzZXRfYWxsX2Zyb3plbiBpbmRpY2F0ZSBpZiB0aGUgYWxsLXZpc2libGUg YW5kCi0JICogYWxsLWZyb3plbiBiaXRzIGluIHRoZSB2aXNpYmlsaXR5IG1hcCBzaG91bGQgYmUg c2V0IGZvciB0aGlzIHBhZ2UgYWZ0ZXIKLQkgKiBwcnVuaW5nLgotCSAqCi0JICogdm1fY29uZmxp Y3RfaG9yaXpvbiBpcyB0aGUgbmV3ZXN0IHhtaW4gb2YgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2Uu ICBUaGUKLQkgKiBjYWxsZXIgY2FuIHVzZSBpdCBhcyB0aGUgY29uZmxpY3QgaG9yaXpvbiB3aGVu IHNldHRpbmcgdGhlIFZNIGJpdHMuICBJdAotCSAqIGlzIG9ubHkgdmFsaWQgaWYgd2UgZnJvemUg c29tZSB0dXBsZXMgKG5mcm96ZW4gPiAwKSwgYW5kIHNldF9hbGxfZnJvemVuCi0JICogaXMgdHJ1 ZS4KLQkgKgotCSAqIFRoZXNlIGFyZSBvbmx5IHNldCBpZiB0aGUgSEVBUF9QQUdFX1BSVU5FX0ZS RUVaRSBvcHRpb24gaXMgc2V0LgotCSAqLwotCWJvb2wJCXNldF9hbGxfdmlzaWJsZTsKLQlib29s CQlzZXRfYWxsX2Zyb3plbjsKLQlUcmFuc2FjdGlvbklkIHZtX2NvbmZsaWN0X2hvcml6b247Ci0K LQkvKgotCSAqIFRoZSB2YWx1ZSBvZiB0aGUgdm1idWZmZXIncyB2bWJpdHMgYXQgdGhlIGJlZ2lu bmluZyBvZiBwcnVuaW5nLiBJdCBpcwotCSAqIGNsZWFyZWQgaWYgVk0gY29ycnVwdGlvbiBpcyBm b3VuZCBhbmQgY29ycmVjdGVkLgorCSAqIFdoZXRoZXIgb3Igbm90IHRoZSBwYWdlIHdhcyBuZXds eSBzZXQgYWxsLXZpc2libGUgYW5kIGFsbC1mcm96ZW4gZHVyaW5nCisJICogcGhhc2UgSSBvZiB2 YWN1dW1pbmcuCiAJICovCi0JdWludDgJCW9sZF92bWJpdHM7CisJYm9vbAkJbmV3bHlfYWxsX3Zp c2libGU7CisJYm9vbAkJbmV3bHlfYWxsX3Zpc2libGVfZnJvemVuOworCWJvb2wJCW5ld2x5X2Fs bF9mcm96ZW47CiAKIAkvKgogCSAqIFdoZXRoZXIgb3Igbm90IHRoZSBwYWdlIG1ha2VzIHJlbCB0 cnVuY2F0aW9uIHVuc2FmZS4gIFRoaXMgaXMgc2V0IHRvCkBAIC00NzIsNiArNDU4LDEzIEBAIGV4 dGVybiB2b2lkIGxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1 ZmZlciBidWZmZXIsCiAvKiBpbiBoZWFwL3ZhY3V1bWxhenkuYyAqLwogZXh0ZXJuIHZvaWQgaGVh cF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwKIAkJCQkJCQljb25zdCBWYWN1dW1QYXJhbXMgcGFy YW1zLCBCdWZmZXJBY2Nlc3NTdHJhdGVneSBic3RyYXRlZ3kpOworI2lmZGVmIFVTRV9BU1NFUlRf Q0hFQ0tJTkcKK2V4dGVybiBib29sIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiBy ZWwsIEJ1ZmZlciBidWYsCisJCQkJCQkJCQkgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCisJCQkJ CQkJCQkgYm9vbCAqYWxsX2Zyb3plbiwKKwkJCQkJCQkJCSBUcmFuc2FjdGlvbklkICp2aXNpYmls aXR5X2N1dG9mZl94aWQsCisJCQkJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7 CisjZW5kaWYKIAogLyogaW4gaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5jICovCiBleHRlcm4gYm9v bCBIZWFwVHVwbGVTYXRpc2ZpZXNWaXNpYmlsaXR5KEhlYXBUdXBsZSBodHVwLCBTbmFwc2hvdCBz bmFwc2hvdCwKLS0gCjIuNDMuMAoK --000000000000a1e2a7064d7d2a75 Content-Type: text/x-patch; charset="US-ASCII"; name="v42-0006-WAL-log-VM-setting-for-empty-pages-in-XLOG_HEAP2.patch" Content-Disposition: attachment; filename="v42-0006-WAL-log-VM-setting-for-empty-pages-in-XLOG_HEAP2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmzjdmmn5 RnJvbSA0NWNlZGE4OTVkOTU5ZWM5NTdiOGRkOTkxNTVhYmJkMjIxYzlkNTJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI3IFNlcCAyMDI1IDExOjU1OjIxIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDIgMDYvMTJdIFdBTCBsb2cgVk0gc2V0dGluZyBmb3IgZW1wdHkgcGFnZXMgaW4KIFhM T0dfSEVBUDJfUFJVTkVfVkFDVVVNX1NDQU4KCkFzIHBhcnQgb2YgcmVtb3ZpbmcgWExPR19IRUFQ Ml9WSVNJQkxFIHJlY29yZHMsIHBoYXNlIEkgb2YgVkFDVVVNIG5vdwptYXJrcyBlbXB0eSBwYWdl cyBhbGwtdmlzaWJsZSBpbiBhIFhMT0dfSEVBUDJfUFJVTkVfVkFDVVVNX1NDQU4gcmVjb3JkLgoK VGhpcyBoYXMgbm8gaW5kZXBlbmRlbnQgYmVuZWZpdCwgYnV0IGVtcHR5IHBhZ2VzIHdlcmUgdGhl IGxhc3QgdXNlciBvZgpYTE9HX0hFQVAyX1ZJU0lCTEUsIHNvIGlmIHdlIG1ha2UgdGhpcyBjaGFu Z2Ugd2UgY2FuIHJlbW92ZSBhbGwgb2YgdGhlClhMT0hfSEVBUDJfVklTSUJMRSBjb2RlLgoKQXV0 aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdl ZC1ieTogUm9iZXJ0IEhhYXMgPHJvYmVydG1oYWFzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFu ZHJlcyBGcmV1bmQgPGFuZHJlc0BhbmFyYXplbC5kZT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxp LmV2YW4uY2hhb0BnbWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVo ZWFwLmMgIHwgMjkgKysrKysrKysrKystLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMgfCA0NCArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiAyIGZpbGVzIGNo YW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvcHJ1bmVoZWFwLmMKaW5kZXggMDRhMDU4MGUzMTMuLjQ4ZDVkOWZiOTA2IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtMjU0NSw2ICsyNTQ1LDggQEAgbG9nX2hlYXBfcHJ1 bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAl1aW50OAkJ aW5mbzsKIAl1aW50OAkJcmVnYnVmX2ZsYWdzX2hlYXA7CiAKKwlQYWdlCQloZWFwX3BhZ2UgPSBC dWZmZXJHZXRQYWdlKGJ1ZmZlcik7CisKIAkvKiBUaGUgZm9sbG93aW5nIGxvY2FsIHZhcmlhYmxl cyBob2xkIGRhdGEgcmVnaXN0ZXJlZCBpbiB0aGUgV0FMIHJlY29yZDogKi8KIAl4bGhwX2ZyZWV6 ZV9wbGFuIHBsYW5zW01heEhlYXBUdXBsZXNQZXJQYWdlXTsKIAl4bGhwX2ZyZWV6ZV9wbGFucyBm cmVlemVfcGxhbnM7CkBAIC0yNTYzLDE0ICsyNTY1LDE4IEBAIGxvZ19oZWFwX3BydW5lX2FuZF9m cmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJLyoKIAkgKiBXZSBjYW4g YXZvaWQgYW4gRlBJIG9mIHRoZSBoZWFwIHBhZ2UgaWYgdGhlIG9ubHkgbW9kaWZpY2F0aW9uIHdl IGFyZQogCSAqIG1ha2luZyB0byBpdCBpcyB0byBzZXQgUERfQUxMX1ZJU0lCTEUgYW5kIGNoZWNr c3Vtcy93YWxfbG9nX2hpbnRzIGFyZQotCSAqIGRpc2FibGVkLiBOb3RlIHRoYXQgaWYgd2UgZXhw bGljaXRseSBza2lwIGFuIEZQSSwgd2UgbXVzdCBub3Qgc3RhbXAgdGhlCi0JICogaGVhcCBwYWdl IHdpdGggdGhpcyByZWNvcmQncyBMU04uIFJlY292ZXJ5IHNraXBzIHJlY29yZHMgPD0gdGhlIHN0 YW1wZWQKLQkgKiBMU04sIHNvIHRoaXMgY291bGQgbGVhZCB0byBza2lwcGluZyBhbiBlYXJsaWVy IEZQSSBuZWVkZWQgdG8gcmVwYWlyIGEKLQkgKiB0b3JuIHBhZ2UuCisJICogZGlzYWJsZWQuCisJ ICoKKwkgKiBIb3dldmVyLCBpZiB0aGUgcGFnZSBoYXMgbmV2ZXIgYmVlbiBXQUwtbG9nZ2VkIChM U04gaXMgaW52YWxpZCksIHdlCisJICogbXVzdCBmb3JjZSBhbiBGUEkgcmVnYXJkbGVzcy4gIFRo aXMgY2FuIGhhcHBlbiB3aGVuIGFub3RoZXIgYmFja2VuZAorCSAqIGV4dGVuZHMgdGhlIGhlYXAs IGluaXRpYWxpemVzIHRoZSBwYWdlLCBhbmQgdGhlbiBmYWlscyBiZWZvcmUgV0FMLQorCSAqIGxv Z2dpbmcgaXQuICBTaW5jZSBoZWFwIGV4dGVuc2lvbiBpcyBub3QgV0FMLWxvZ2dlZCwgcmVjb3Zl cnkgbWlnaHQgdHJ5CisJICogdG8gcmVwbGF5IG91ciByZWNvcmQgYW5kIGZpbmQgdGhhdCB0aGUg cGFnZSBpc24ndCBpbml0aWFsaXplZCwgd2hpY2gKKwkgKiB3b3VsZCBjYXVzZSBhIFBBTklDLgog CSAqLwotCWlmICghZG9fcHJ1bmUgJiYKLQkJbmZyb3plbiA9PSAwICYmCi0JCSghZG9fc2V0X3Zt IHx8ICFYTG9nSGludEJpdElzTmVlZGVkKCkpKQorCWlmICghWExvZ1JlY1B0cklzVmFsaWQoUGFn ZUdldExTTihoZWFwX3BhZ2UpKSkKKwkJcmVnYnVmX2ZsYWdzX2hlYXAgfD0gUkVHQlVGX0ZPUkNF X0lNQUdFOworCWVsc2UgaWYgKCFkb19wcnVuZSAmJiBuZnJvemVuID09IDAgJiYgKCFkb19zZXRf dm0gfHwgIVhMb2dIaW50Qml0SXNOZWVkZWQoKSkpCiAJCXJlZ2J1Zl9mbGFnc19oZWFwIHw9IFJF R0JVRl9OT19JTUFHRTsKIAogCS8qCkBAIC0yNjg1LDEyICsyNjkxLDEzIEBAIGxvZ19oZWFwX3By dW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJfQogCiAJ LyoKLQkgKiBTZWUgY29tbWVudCBhdCB0aGUgdG9wIG9mIHRoZSBmdW5jdGlvbiBhYm91dCByZWdi dWZfZmxhZ3NfaGVhcCBmb3IKLQkgKiBkZXRhaWxzIG9uIHdoZW4gd2UgY2FuIGFkdmFuY2UgdGhl IHBhZ2UgTFNOLgorCSAqIElmIHdlIGV4cGxpY2l0bHkgc2tpcCBhbiBGUEksIHdlIG11c3Qgbm90 IHN0YW1wIHRoZSBoZWFwIHBhZ2Ugd2l0aCB0aGlzCisJICogcmVjb3JkJ3MgTFNOLiBSZWNvdmVy eSBza2lwcyByZWNvcmRzIDw9IHRoZSBzdGFtcGVkIExTTiwgc28gdGhpcyBjb3VsZAorCSAqIGxl YWQgdG8gc2tpcHBpbmcgYW4gZWFybGllciBGUEkgbmVlZGVkIHRvIHJlcGFpciBhIHRvcm4gcGFn ZS4KIAkgKi8KLQlpZiAoZG9fcHJ1bmUgfHwgbmZyb3plbiA+IDAgfHwgKGRvX3NldF92bSAmJiBY TG9nSGludEJpdElzTmVlZGVkKCkpKQorCWlmICghKHJlZ2J1Zl9mbGFnc19oZWFwICYgUkVHQlVG X05PX0lNQUdFKSkKIAl7CiAJCUFzc2VydChCdWZmZXJJc0RpcnR5KGJ1ZmZlcikpOwotCQlQYWdl U2V0TFNOKEJ1ZmZlckdldFBhZ2UoYnVmZmVyKSwgcmVjcHRyKTsKKwkJUGFnZVNldExTTihoZWFw X3BhZ2UsIHJlY3B0cik7CiAJfQogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmlu ZGV4IDIzZGVhYmQ4YzAxLi42M2U2MTk5MjQxYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1 bWxhenkuYwpAQCAtMTkyOSwzMyArMTkyOSw0MyBAQCBsYXp5X3NjYW5fbmV3X29yX2VtcHR5KExW UmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1ZiwgQmxvY2tOdW1iZXIgYmxrbm8sCiAJCSAqLwog CQlpZiAoIVBhZ2VJc0FsbFZpc2libGUocGFnZSkpCiAJCXsKKwkJCS8qIExvY2sgdm1idWZmZXIg YmVmb3JlIGVudGVyaW5nIGNyaXRpY2FsIHNlY3Rpb24gKi8KKwkJCUxvY2tCdWZmZXIodm1idWZm ZXIsIEJVRkZFUl9MT0NLX0VYQ0xVU0lWRSk7CisKIAkJCVNUQVJUX0NSSVRfU0VDVElPTigpOwog CiAJCQkvKiBtYXJrIGJ1ZmZlciBkaXJ0eSBiZWZvcmUgd3JpdGluZyBhIFdBTCByZWNvcmQgKi8K IAkJCU1hcmtCdWZmZXJEaXJ0eShidWYpOwogCisJCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsK KwkJCVBhZ2VDbGVhclBydW5hYmxlKHBhZ2UpOworCQkJdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRz KGJsa25vLAorCQkJCQkJCQkJIHZtYnVmZmVyLAorCQkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxM X1ZJU0lCTEUgfAorCQkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTiwKKwkJCQkJCQkJ CSB2YWNyZWwtPnJlbC0+cmRfbG9jYXRvcik7CisKIAkJCS8qCi0JCQkgKiBJdCdzIHBvc3NpYmxl IHRoYXQgYW5vdGhlciBiYWNrZW5kIGhhcyBleHRlbmRlZCB0aGUgaGVhcCwKLQkJCSAqIGluaXRp YWxpemVkIHRoZSBwYWdlLCBhbmQgdGhlbiBmYWlsZWQgdG8gV0FMLWxvZyB0aGUgcGFnZSBkdWUK LQkJCSAqIHRvIGFuIEVSUk9SLiAgU2luY2UgaGVhcCBleHRlbnNpb24gaXMgbm90IFdBTC1sb2dn ZWQsIHJlY292ZXJ5Ci0JCQkgKiBtaWdodCB0cnkgdG8gcmVwbGF5IG91ciByZWNvcmQgc2V0dGlu ZyB0aGUgcGFnZSBhbGwtdmlzaWJsZSBhbmQKLQkJCSAqIGZpbmQgdGhhdCB0aGUgcGFnZSBpc24n dCBpbml0aWFsaXplZCwgd2hpY2ggd2lsbCBjYXVzZSBhIFBBTklDLgotCQkJICogVG8gcHJldmVu dCB0aGF0LCBjaGVjayB3aGV0aGVyIHRoZSBwYWdlIGhhcyBiZWVuIHByZXZpb3VzbHkKLQkJCSAq IFdBTC1sb2dnZWQsIGFuZCBpZiBub3QsIGRvIHRoYXQgbm93LgorCQkJICogRW1pdCBXQUwgZm9y IHNldHRpbmcgUERfQUxMX1ZJU0lCTEUgb24gdGhlIGhlYXAgcGFnZSBhbmQKKwkJCSAqIHNldHRp bmcgdGhlIFZNLgogCQkJICovCi0JCQlpZiAoUmVsYXRpb25OZWVkc1dBTCh2YWNyZWwtPnJlbCkg JiYKLQkJCQkhWExvZ1JlY1B0cklzVmFsaWQoUGFnZUdldExTTihwYWdlKSkpCi0JCQkJbG9nX25l d3BhZ2VfYnVmZmVyKGJ1ZiwgdHJ1ZSk7CisJCQlpZiAoUmVsYXRpb25OZWVkc1dBTCh2YWNyZWwt PnJlbCkpCisJCQkJbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZSh2YWNyZWwtPnJlbCwgYnVmLAor CQkJCQkJCQkJCSAgdm1idWZmZXIsCisJCQkJCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9WSVNJ QkxFIHwKKwkJCQkJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTiwKKwkJCQkJCQkJCQkg IEludmFsaWRUcmFuc2FjdGlvbklkLCAvKiBjb25mbGljdCB4aWQgKi8KKwkJCQkJCQkJCQkgIGZh bHNlLAkvKiBjbGVhbnVwIGxvY2sgKi8KKwkJCQkJCQkJCQkgIFBSVU5FX1ZBQ1VVTV9TQ0FOLAkv KiByZWFzb24gKi8KKwkJCQkJCQkJCQkgIE5VTEwsIDAsCisJCQkJCQkJCQkJICBOVUxMLCAwLAor CQkJCQkJCQkJCSAgTlVMTCwgMCwKKwkJCQkJCQkJCQkgIE5VTEwsIDApOwogCi0JCQlQYWdlU2V0 QWxsVmlzaWJsZShwYWdlKTsKLQkJCVBhZ2VDbGVhclBydW5hYmxlKHBhZ2UpOwotCQkJdmlzaWJp bGl0eW1hcF9zZXQodmFjcmVsLT5yZWwsIGJsa25vLCBidWYsCi0JCQkJCQkJICBJbnZhbGlkWExv Z1JlY1B0ciwKLQkJCQkJCQkgIHZtYnVmZmVyLCBJbnZhbGlkVHJhbnNhY3Rpb25JZCwKLQkJCQkJ CQkgIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAotCQkJCQkJCSAgVklTSUJJTElUWU1BUF9B TExfRlJPWkVOKTsKIAkJCUVORF9DUklUX1NFQ1RJT04oKTsKIAorCQkJTG9ja0J1ZmZlcih2bWJ1 ZmZlciwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsKKwogCQkJLyogQ291bnQgdGhlIG5ld2x5IGFsbC1m cm96ZW4gcGFnZXMgZm9yIGxvZ2dpbmcgKi8KIAkJCXZhY3JlbC0+bmV3X2FsbF92aXNpYmxlX3Bh Z2VzKys7CiAJCQl2YWNyZWwtPm5ld19hbGxfdmlzaWJsZV9hbGxfZnJvemVuX3BhZ2VzKys7Ci0t IAoyLjQzLjAKCg== --000000000000a1e2a7064d7d2a75 Content-Type: text/x-patch; charset="US-ASCII"; name="v42-0007-Remove-XLOG_HEAP2_VISIBLE-entirely.patch" Content-Disposition: attachment; filename="v42-0007-Remove-XLOG_HEAP2_VISIBLE-entirely.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmzjdpwf6 RnJvbSA3MDYxMjI5ZjA1MjAxOGVjZGE1Y2NjMzE0NDU1MDljY2Q1YmJlZjJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI3IFNlcCAyMDI1IDExOjU1OjM2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDIgMDcvMTJdIFJlbW92ZSBYTE9HX0hFQVAyX1ZJU0lCTEUgZW50aXJlbHkKClRoZXJl IGFyZSBubyByZW1haW5pbmcgdXNlcnMgdGhhdCBlbWl0IFhMT0dfSEVBUDJfVklTSUJMRSByZWNv cmRzLCBzbyBpdApjYW4gYmUgcmVtb3ZlZC4gVGhpcyBpbmNsdWRlcyBkZWxldGluZyB0aGUgeGxf aGVhcF92aXNpYmxlIHN0cnVjdCBhbmQKYWxsIGZ1bmN0aW9ucyByZXNwb25zaWJsZSBmb3IgZW1p dHRpbmcgb3IgcmVwbGF5aW5nIFhMT0dfSEVBUDJfVklTSUJMRQpyZWNvcmRzLgoKQXV0aG9yOiBN ZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTog QW5kcmV5IEJvcm9kaW4gPHg0bW1tQHlhbmRleC10ZWFtLnJ1PgpSZXZpZXdlZC1ieTogQW5kcmVz IEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZh bi5jaGFvQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2J1Zm1hc2su YyAgICAgIHwgICA1ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgICAg IHwgIDU0ICstLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jICAg IHwgMTU2ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9w cnVuZWhlYXAuYyAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1s YXp5LmMgICAgIHwgIDE2ICstLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1h cC5jICB8IDE1MCArKysrKy0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvcm1n cmRlc2MvaGVhcGRlc2MuYyAgIHwgIDEwIC0tCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL2RlY29kZS5jIHwgICAxIC0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyAg ICAgICAgfCAgIDkgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oICAgICAgICAg fCAgMjEgKy0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcC5oICAgICAgIHwgIDEz ICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaCAgIHwgICA5IC0tCiBz cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgIHwgICAxIC0KIDEzIGZpbGVz IGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDM4NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2J1Zm1hc2suYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9jb21tb24vYnVmbWFzay5jCmluZGV4IDhhNjdiZmExYWZmLi5kNjRjNDAzZjJmMCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9idWZtYXNrLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2NvbW1vbi9idWZtYXNrLmMKQEAgLTU1LDkgKzU1LDggQEAgbWFza19wYWdlX2hp bnRfYml0cyhQYWdlIHBhZ2UpCiAJUGFnZUNsZWFySGFzRnJlZUxpbmVQb2ludGVycyhwYWdlKTsK IAogCS8qCi0JICogRHVyaW5nIHJlcGxheSwgaWYgdGhlIHBhZ2UgTFNOIGhhcyBhZHZhbmNlZCBw YXN0IG91ciBYTE9HIHJlY29yZCdzIExTTiwKLQkgKiB3ZSBkb24ndCBtYXJrIHRoZSBwYWdlIGFs bC12aXNpYmxlLiBTZWUgaGVhcF94bG9nX3Zpc2libGUoKSBmb3IKLQkgKiBkZXRhaWxzLgorCSAq IFhYWDogV2Ugc2hvdWxkIGNvbnNpZGVyIG5vdCBtYXNraW5nIFBEX0FMTF9WSVNJQkxFIGR1cmlu ZyBXQUwKKwkgKiBjb25zaXN0ZW5jeSBjaGVja2luZy4KIAkgKi8KIAlQYWdlQ2xlYXJBbGxWaXNp YmxlKHBhZ2UpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCBlNWJkMDYyZGU3Ny4u MDQ0ZjM4NWU0NzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC0yNTg5LDExICsyNTg5 LDExIEBAIGhlYXBfbXVsdGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBUdXBsZVRhYmxlU2xv dCAqKnNsb3RzLCBpbnQgbnR1cGxlcywKIAkJewogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7 CiAJCQlQYWdlQ2xlYXJQcnVuYWJsZShwYWdlKTsKLQkJCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0 cyhCdWZmZXJHZXRCbG9ja051bWJlcihidWZmZXIpLAotCQkJCQkJCQkJIHZtYnVmZmVyLAotCQkJ CQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAotCQkJCQkJCQkJIFZJU0lCSUxJVFlN QVBfQUxMX0ZST1pFTiwKLQkJCQkJCQkJCSByZWxhdGlvbi0+cmRfbG9jYXRvcik7CisJCQl2aXNp YmlsaXR5bWFwX3NldChCdWZmZXJHZXRCbG9ja051bWJlcihidWZmZXIpLAorCQkJCQkJCSAgdm1i dWZmZXIsCisJCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwKKwkJCQkJCQkgIFZJ U0lCSUxJVFlNQVBfQUxMX0ZST1pFTiwKKwkJCQkJCQkgIHJlbGF0aW9uLT5yZF9sb2NhdG9yKTsK IAkJfQogCiAJCS8qCkBAIC04ODg2LDUwICs4ODg2LDYgQEAgYm90dG9tdXBfc29ydF9hbmRfc2hy aW5rKFRNX0luZGV4RGVsZXRlT3AgKmRlbHN0YXRlKQogCXJldHVybiBuYmxvY2tzZmF2b3JhYmxl OwogfQogCi0vKgotICogUGVyZm9ybSBYTG9nSW5zZXJ0IGZvciBhIGhlYXAtdmlzaWJsZSBvcGVy YXRpb24uICAnYmxvY2snIGlzIHRoZSBibG9jawotICogYmVpbmcgbWFya2VkIGFsbC12aXNpYmxl LCBhbmQgdm1fYnVmZmVyIGlzIHRoZSBidWZmZXIgY29udGFpbmluZyB0aGUKLSAqIGNvcnJlc3Bv bmRpbmcgdmlzaWJpbGl0eSBtYXAgYmxvY2suICBCb3RoIHNob3VsZCBoYXZlIGFscmVhZHkgYmVl biBtb2RpZmllZAotICogYW5kIGRpcnRpZWQuCi0gKgotICogc25hcHNob3RDb25mbGljdEhvcml6 b24gY29tZXMgZnJvbSB0aGUgbGFyZ2VzdCB4bWluIG9uIHRoZSBwYWdlIGJlaW5nCi0gKiBtYXJr ZWQgYWxsLXZpc2libGUuICBSRURPIHJvdXRpbmUgdXNlcyBpdCB0byBnZW5lcmF0ZSByZWNvdmVy eSBjb25mbGljdHMuCi0gKgotICogSWYgY2hlY2tzdW1zIG9yIHdhbF9sb2dfaGludHMgYXJlIGVu YWJsZWQsIHdlIG1heSBhbHNvIGdlbmVyYXRlIGEgZnVsbC1wYWdlCi0gKiBpbWFnZSBvZiBoZWFw X2J1ZmZlci4gT3RoZXJ3aXNlLCB3ZSBvcHRpbWl6ZSBhd2F5IHRoZSBGUEkgKGJ5IHNwZWNpZnlp bmcKLSAqIFJFR0JVRl9OT19JTUFHRSBmb3IgdGhlIGhlYXAgYnVmZmVyKSwgaW4gd2hpY2ggY2Fz ZSB0aGUgY2FsbGVyIHNob3VsZCAqbm90KgotICogdXBkYXRlIHRoZSBoZWFwIHBhZ2UncyBMU04u Ci0gKi8KLVhMb2dSZWNQdHIKLWxvZ19oZWFwX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIg aGVhcF9idWZmZXIsIEJ1ZmZlciB2bV9idWZmZXIsCi0JCQkJIFRyYW5zYWN0aW9uSWQgc25hcHNo b3RDb25mbGljdEhvcml6b24sIHVpbnQ4IHZtZmxhZ3MpCi17Ci0JeGxfaGVhcF92aXNpYmxlIHhs cmVjOwotCVhMb2dSZWNQdHIJcmVjcHRyOwotCXVpbnQ4CQlmbGFnczsKLQotCUFzc2VydChCdWZm ZXJJc1ZhbGlkKGhlYXBfYnVmZmVyKSk7Ci0JQXNzZXJ0KEJ1ZmZlcklzVmFsaWQodm1fYnVmZmVy KSk7Ci0KLQl4bHJlYy5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNuYXBzaG90Q29uZmxpY3RI b3Jpem9uOwotCXhscmVjLmZsYWdzID0gdm1mbGFnczsKLQlpZiAoUmVsYXRpb25Jc0FjY2Vzc2li bGVJbkxvZ2ljYWxEZWNvZGluZyhyZWwpKQotCQl4bHJlYy5mbGFncyB8PSBWSVNJQklMSVRZTUFQ X1hMT0dfQ0FUQUxPR19SRUw7Ci0JWExvZ0JlZ2luSW5zZXJ0KCk7Ci0JWExvZ1JlZ2lzdGVyRGF0 YSgmeGxyZWMsIFNpemVPZkhlYXBWaXNpYmxlKTsKLQotCVhMb2dSZWdpc3RlckJ1ZmZlcigwLCB2 bV9idWZmZXIsIDApOwotCi0JZmxhZ3MgPSBSRUdCVUZfU1RBTkRBUkQ7Ci0JaWYgKCFYTG9nSGlu dEJpdElzTmVlZGVkKCkpCi0JCWZsYWdzIHw9IFJFR0JVRl9OT19JTUFHRTsKLQlYTG9nUmVnaXN0 ZXJCdWZmZXIoMSwgaGVhcF9idWZmZXIsIGZsYWdzKTsKLQotCXJlY3B0ciA9IFhMb2dJbnNlcnQo Uk1fSEVBUDJfSUQsIFhMT0dfSEVBUDJfVklTSUJMRSk7Ci0KLQlyZXR1cm4gcmVjcHRyOwotfQot CiAvKgogICogUGVyZm9ybSBYTG9nSW5zZXJ0IGZvciBhIGhlYXAtdXBkYXRlIG9wZXJhdGlvbi4g IENhbGxlciBtdXN0IGFscmVhZHkKICAqIGhhdmUgbW9kaWZpZWQgdGhlIGJ1ZmZlcihzKSBhbmQg bWFya2VkIHRoZW0gZGlydHkuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9o ZWFwYW1feGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwppbmRl eCAxZGE3NzRjMTUzNi4uMTMwMmJiMTNlMTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL2hlYXBhbV94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt X3hsb2cuYwpAQCAtMjM5LDcgKzIzOSw3IEBAIGhlYXBfeGxvZ19wcnVuZV9mcmVlemUoWExvZ1Jl YWRlclN0YXRlICpyZWNvcmQpCiAJCWlmIChQYWdlSXNOZXcodm1wYWdlKSkKIAkJCVBhZ2VJbml0 KHZtcGFnZSwgQkxDS1NaLCAwKTsKIAotCQl2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMoYmxrbm8s IHZtYnVmZmVyLCB2bWZsYWdzLCBybG9jYXRvcik7CisJCXZpc2liaWxpdHltYXBfc2V0KGJsa25v LCB2bWJ1ZmZlciwgdm1mbGFncywgcmxvY2F0b3IpOwogCiAJCUFzc2VydChCdWZmZXJJc0RpcnR5 KHZtYnVmZmVyKSk7CiAJCVBhZ2VTZXRMU04odm1wYWdlLCBsc24pOwpAQCAtMjUyLDE0MyArMjUy LDYgQEAgaGVhcF94bG9nX3BydW5lX2ZyZWV6ZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJ WExvZ1JlY29yZFBhZ2VXaXRoRnJlZVNwYWNlKHJsb2NhdG9yLCBibGtubywgZnJlZXNwYWNlKTsK IH0KIAotLyoKLSAqIFJlcGxheSBYTE9HX0hFQVAyX1ZJU0lCTEUgcmVjb3Jkcy4KLSAqCi0gKiBU aGUgY3JpdGljYWwgaW50ZWdyaXR5IHJlcXVpcmVtZW50IGhlcmUgaXMgdGhhdCB3ZSBtdXN0IG5l dmVyIGVuZCB1cCB3aXRoCi0gKiBhIHNpdHVhdGlvbiB3aGVyZSB0aGUgdmlzaWJpbGl0eSBtYXAg Yml0IGlzIHNldCwgYW5kIHRoZSBwYWdlLWxldmVsCi0gKiBQRF9BTExfVklTSUJMRSBiaXQgaXMg Y2xlYXIuICBJZiB0aGF0IHdlcmUgdG8gb2NjdXIsIHRoZW4gYSBzdWJzZXF1ZW50Ci0gKiBwYWdl IG1vZGlmaWNhdGlvbiB3b3VsZCBmYWlsIHRvIGNsZWFyIHRoZSB2aXNpYmlsaXR5IG1hcCBiaXQu Ci0gKi8KLXN0YXRpYyB2b2lkCi1oZWFwX3hsb2dfdmlzaWJsZShYTG9nUmVhZGVyU3RhdGUgKnJl Y29yZCkKLXsKLQlYTG9nUmVjUHRyCWxzbiA9IHJlY29yZC0+RW5kUmVjUHRyOwotCXhsX2hlYXBf dmlzaWJsZSAqeGxyZWMgPSAoeGxfaGVhcF92aXNpYmxlICopIFhMb2dSZWNHZXREYXRhKHJlY29y ZCk7Ci0JQnVmZmVyCQl2bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7Ci0JQnVmZmVyCQlidWZmZXI7 Ci0JUGFnZQkJcGFnZTsKLQlSZWxGaWxlTG9jYXRvciBybG9jYXRvcjsKLQlCbG9ja051bWJlciBi bGtubzsKLQlYTG9nUmVkb0FjdGlvbiBhY3Rpb247Ci0KLQlBc3NlcnQoKHhscmVjLT5mbGFncyAm IFZJU0lCSUxJVFlNQVBfWExPR19WQUxJRF9CSVRTKSA9PSB4bHJlYy0+ZmxhZ3MpOwotCi0JWExv Z1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMSwgJnJsb2NhdG9yLCBOVUxMLCAmYmxrbm8pOwotCi0J LyoKLQkgKiBJZiB0aGVyZSBhcmUgYW55IEhvdCBTdGFuZGJ5IHRyYW5zYWN0aW9ucyBydW5uaW5n IHRoYXQgaGF2ZSBhbiB4bWluCi0JICogaG9yaXpvbiBvbGQgZW5vdWdoIHRoYXQgdGhpcyBwYWdl IGlzbid0IGFsbC12aXNpYmxlIGZvciB0aGVtLCB0aGV5Ci0JICogbWlnaHQgaW5jb3JyZWN0bHkg ZGVjaWRlIHRoYXQgYW4gaW5kZXgtb25seSBzY2FuIGNhbiBza2lwIGEgaGVhcCBmZXRjaC4KLQkg KgotCSAqIE5COiBJdCBtaWdodCBiZSBiZXR0ZXIgdG8gdGhyb3cgc29tZSBraW5kIG9mICJzb2Z0 IiBjb25mbGljdCBoZXJlIHRoYXQKLQkgKiBmb3JjZXMgYW55IGluZGV4LW9ubHkgc2NhbiB0aGF0 IGlzIGluIGZsaWdodCB0byBwZXJmb3JtIGhlYXAgZmV0Y2hlcywKLQkgKiByYXRoZXIgdGhhbiBr aWxsaW5nIHRoZSB0cmFuc2FjdGlvbiBvdXRyaWdodC4KLQkgKi8KLQlpZiAoSW5Ib3RTdGFuZGJ5 KQotCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+c25hcHNob3RD b25mbGljdEhvcml6b24sCi0JCQkJCQkJCQkJCXhscmVjLT5mbGFncyAmIFZJU0lCSUxJVFlNQVBf WExPR19DQVRBTE9HX1JFTCwKLQkJCQkJCQkJCQkJcmxvY2F0b3IpOwotCi0JLyoKLQkgKiBSZWFk IHRoZSBoZWFwIHBhZ2UsIGlmIGl0IHN0aWxsIGV4aXN0cy4gSWYgdGhlIGhlYXAgZmlsZSBoYXMg ZHJvcHBlZCBvcgotCSAqIHRydW5jYXRlZCBsYXRlciBpbiByZWNvdmVyeSwgd2UgZG9uJ3QgbmVl ZCB0byB1cGRhdGUgdGhlIHBhZ2UsIGJ1dCB3ZSdkCi0JICogYmV0dGVyIHN0aWxsIHVwZGF0ZSB0 aGUgdmlzaWJpbGl0eSBtYXAuCi0JICovCi0JYWN0aW9uID0gWExvZ1JlYWRCdWZmZXJGb3JSZWRv KHJlY29yZCwgMSwgJmJ1ZmZlcik7Ci0JaWYgKGFjdGlvbiA9PSBCTEtfTkVFRFNfUkVETykKLQl7 Ci0JCS8qCi0JCSAqIFdlIGRvbid0IGJ1bXAgdGhlIExTTiBvZiB0aGUgaGVhcCBwYWdlIHdoZW4g c2V0dGluZyB0aGUgdmlzaWJpbGl0eQotCQkgKiBtYXAgYml0ICh1bmxlc3MgY2hlY2tzdW1zIG9y IHdhbF9oaW50X2JpdHMgaXMgZW5hYmxlZCwgaW4gd2hpY2gKLQkJICogY2FzZSB3ZSBtdXN0KS4g VGhpcyBleHBvc2VzIHVzIHRvIHRvcm4gcGFnZSBoYXphcmRzLCBidXQgc2luY2UKLQkJICogd2Un cmUgbm90IGluc3BlY3RpbmcgdGhlIGV4aXN0aW5nIHBhZ2UgY29udGVudHMgaW4gYW55IHdheSwg d2UKLQkJICogZG9uJ3QgY2FyZS4KLQkJICovCi0JCXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1ZmZl cik7Ci0KLQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7Ci0JCVBhZ2VDbGVhclBydW5hYmxlKHBh Z2UpOwotCi0JCWlmIChYTG9nSGludEJpdElzTmVlZGVkKCkpCi0JCQlQYWdlU2V0TFNOKHBhZ2Us IGxzbik7Ci0KLQkJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7Ci0JfQotCWVsc2UgaWYgKGFjdGlv biA9PSBCTEtfUkVTVE9SRUQpCi0JewotCQkvKgotCQkgKiBJZiBoZWFwIGJsb2NrIHdhcyBiYWNr ZWQgdXAsIHdlIGFscmVhZHkgcmVzdG9yZWQgaXQgYW5kIHRoZXJlJ3MKLQkJICogbm90aGluZyBt b3JlIHRvIGRvLiAoVGhpcyBjYW4gb25seSBoYXBwZW4gd2l0aCBjaGVja3N1bXMgb3IKLQkJICog d2FsX2xvZ19oaW50cyBlbmFibGVkLikKLQkJICovCi0JfQotCi0JaWYgKEJ1ZmZlcklzVmFsaWQo YnVmZmVyKSkKLQl7Ci0JCVNpemUJCXNwYWNlID0gUGFnZUdldEZyZWVTcGFjZShCdWZmZXJHZXRQ YWdlKGJ1ZmZlcikpOwotCi0JCVVubG9ja1JlbGVhc2VCdWZmZXIoYnVmZmVyKTsKLQotCQkvKgot CQkgKiBTaW5jZSBGU00gaXMgbm90IFdBTC1sb2dnZWQgYW5kIG9ubHkgdXBkYXRlZCBoZXVyaXN0 aWNhbGx5LCBpdAotCQkgKiBlYXNpbHkgYmVjb21lcyBzdGFsZSBpbiBzdGFuZGJ5cy4gIElmIHRo ZSBzdGFuZGJ5IGlzIGxhdGVyIHByb21vdGVkCi0JCSAqIGFuZCBydW5zIFZBQ1VVTSwgaXQgd2ls bCBza2lwIHVwZGF0aW5nIGluZGl2aWR1YWwgZnJlZSBzcGFjZQotCQkgKiBmaWd1cmVzIGZvciBw YWdlcyB0aGF0IGJlY2FtZSBhbGwtdmlzaWJsZSAob3IgYWxsLWZyb3plbiwgZGVwZW5kaW5nCi0J CSAqIG9uIHRoZSB2YWN1dW0gbW9kZSwpIHdoaWNoIGlzIHRyb3VibGVzb21lIHdoZW4gRnJlZVNw YWNlTWFwVmFjdXVtCi0JCSAqIHByb3BhZ2F0ZXMgdG9vIG9wdGltaXN0aWMgZnJlZSBzcGFjZSB2 YWx1ZXMgdG8gdXBwZXIgRlNNIGxheWVyczsKLQkJICogbGF0ZXIgaW5zZXJ0ZXJzIHRyeSB0byB1 c2Ugc3VjaCBwYWdlcyBvbmx5IHRvIGZpbmQgb3V0IHRoYXQgdGhleQotCQkgKiBhcmUgdW51c2Fi bGUuICBUaGlzIGNhbiBjYXVzZSBsb25nIHN0YWxscyB3aGVuIHRoZXJlIGFyZSBtYW55IHN1Y2gK LQkJICogcGFnZXMuCi0JCSAqCi0JCSAqIEZvcmVzdGFsbCB0aG9zZSBwcm9ibGVtcyBieSB1cGRh dGluZyBGU00ncyBpZGVhIGFib3V0IGEgcGFnZSB0aGF0Ci0JCSAqIGlzIGJlY29taW5nIGFsbC12 aXNpYmxlIG9yIGFsbC1mcm96ZW4uCi0JCSAqCi0JCSAqIERvIHRoaXMgcmVnYXJkbGVzcyBvZiBh IGZ1bGwtcGFnZSBpbWFnZSBiZWluZyBhcHBsaWVkLCBzaW5jZSB0aGUKLQkJICogRlNNIGRhdGEg aXMgbm90IGluIHRoZSBwYWdlIGFueXdheS4KLQkJICovCi0JCWlmICh4bHJlYy0+ZmxhZ3MgJiBW SVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpCi0JCQlYTG9nUmVjb3JkUGFnZVdpdGhGcmVlU3BhY2Uo cmxvY2F0b3IsIGJsa25vLCBzcGFjZSk7Ci0JfQotCi0JLyoKLQkgKiBFdmVuIGlmIHdlIHNraXBw ZWQgdGhlIGhlYXAgcGFnZSB1cGRhdGUgZHVlIHRvIHRoZSBMU04gaW50ZXJsb2NrLCBpdCdzCi0J ICogc3RpbGwgc2FmZSB0byB1cGRhdGUgdGhlIHZpc2liaWxpdHkgbWFwLiAgQW55IFdBTCByZWNv cmQgdGhhdCBjbGVhcnMKLQkgKiB0aGUgdmlzaWJpbGl0eSBtYXAgYml0IGRvZXMgc28gYmVmb3Jl IGNoZWNraW5nIHRoZSBwYWdlIExTTiwgc28gYW55Ci0JICogYml0cyB0aGF0IG5lZWQgdG8gYmUg Y2xlYXJlZCB3aWxsIHN0aWxsIGJlIGNsZWFyZWQuCi0JICovCi0JaWYgKFhMb2dSZWFkQnVmZmVy Rm9yUmVkb0V4dGVuZGVkKHJlY29yZCwgMCwgUkJNX1pFUk9fT05fRVJST1IsIGZhbHNlLAotCQkJ CQkJCQkJICAmdm1idWZmZXIpID09IEJMS19ORUVEU19SRURPKQotCXsKLQkJUGFnZQkJdm1wYWdl ID0gQnVmZmVyR2V0UGFnZSh2bWJ1ZmZlcik7Ci0JCVJlbGF0aW9uCXJlbG47Ci0JCXVpbnQ4CQl2 bWJpdHM7Ci0KLQkJLyogaW5pdGlhbGl6ZSB0aGUgcGFnZSBpZiBpdCB3YXMgcmVhZCBhcyB6ZXJv cyAqLwotCQlpZiAoUGFnZUlzTmV3KHZtcGFnZSkpCi0JCQlQYWdlSW5pdCh2bXBhZ2UsIEJMQ0tT WiwgMCk7Ci0KLQkJLyogcmVtb3ZlIFZJU0lCSUxJVFlNQVBfWExPR18qICovCi0JCXZtYml0cyA9 IHhscmVjLT5mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUzsKLQotCQkvKgotCQkgKiBY TG9nUmVhZEJ1ZmZlckZvclJlZG9FeHRlbmRlZCBsb2NrZWQgdGhlIGJ1ZmZlci4gQnV0Ci0JCSAq IHZpc2liaWxpdHltYXBfc2V0IHdpbGwgaGFuZGxlIGxvY2tpbmcgaXRzZWxmLgotCQkgKi8KLQkJ TG9ja0J1ZmZlcih2bWJ1ZmZlciwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsKLQotCQlyZWxuID0gQ3Jl YXRlRmFrZVJlbGNhY2hlRW50cnkocmxvY2F0b3IpOwotCi0JCXZpc2liaWxpdHltYXBfc2V0KHJl bG4sIGJsa25vLCBJbnZhbGlkQnVmZmVyLCBsc24sIHZtYnVmZmVyLAotCQkJCQkJICB4bHJlYy0+ c25hcHNob3RDb25mbGljdEhvcml6b24sIHZtYml0cyk7Ci0KLQkJUmVsZWFzZUJ1ZmZlcih2bWJ1 ZmZlcik7Ci0JCUZyZWVGYWtlUmVsY2FjaGVFbnRyeShyZWxuKTsKLQl9Ci0JZWxzZSBpZiAoQnVm ZmVySXNWYWxpZCh2bWJ1ZmZlcikpCi0JCVVubG9ja1JlbGVhc2VCdWZmZXIodm1idWZmZXIpOwot fQotCiAvKgogICogR2l2ZW4gYW4gImluZm9iaXRzIiBmaWVsZCBmcm9tIGFuIFhMb2cgcmVjb3Jk LCBzZXQgdGhlIGNvcnJlY3QgYml0cyBpbiB0aGUKICAqIGdpdmVuIGluZm9tYXNrIGFuZCBpbmZv bWFzazIgZm9yIHRoZSB0dXBsZSB0b3VjaGVkIGJ5IHRoZSByZWNvcmQuCkBAIC03NjksOCArNjMy LDggQEAgaGVhcF94bG9nX211bHRpX2luc2VydChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkg KgogCSAqIER1cmluZyByZWNvdmVyeSwgaG93ZXZlciwgbm8gY29uY3VycmVudCB3cml0ZXJzIGV4 aXN0LiBUaGVyZWZvcmUsCiAJICogdXBkYXRpbmcgdGhlIFZNIHdpdGhvdXQgaG9sZGluZyB0aGUg aGVhcCBwYWdlIGxvY2sgaXMgc2FmZSBlbm91Z2guIFRoaXMKLQkgKiBzYW1lIGFwcHJvYWNoIGlz IHRha2VuIHdoZW4gcmVwbGF5aW5nIHhsX2hlYXBfdmlzaWJsZSByZWNvcmRzIChzZWUKLQkgKiBo ZWFwX3hsb2dfdmlzaWJsZSgpKS4KKwkgKiBzYW1lIGFwcHJvYWNoIGlzIHRha2VuIHdoZW4gcmVw bGF5aW5nIFhMT0dfSEVBUDJfUFJVTkUqIHJlY29yZHMgKHNlZQorCSAqIGhlYXBfeGxvZ19wcnVu ZV9mcmVlemUoKSkuCiAJICovCiAJaWYgKCh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9G Uk9aRU5fU0VUKSAmJgogCQlYTG9nUmVhZEJ1ZmZlckZvclJlZG9FeHRlbmRlZChyZWNvcmQsIDEs IFJCTV9aRVJPX09OX0VSUk9SLCBmYWxzZSwKQEAgLTc4MiwxMSArNjQ1LDExIEBAIGhlYXBfeGxv Z19tdWx0aV9pbnNlcnQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCWlmIChQYWdlSXNOZXco dm1wYWdlKSkKIAkJCVBhZ2VJbml0KHZtcGFnZSwgQkxDS1NaLCAwKTsKIAotCQl2aXNpYmlsaXR5 bWFwX3NldF92bWJpdHMoYmxrbm8sCi0JCQkJCQkJCSB2bWJ1ZmZlciwKLQkJCQkJCQkJIFZJU0lC SUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAotCQkJCQkJCQkgVklTSUJJTElUWU1BUF9BTExfRlJPWkVO LAotCQkJCQkJCQkgcmxvY2F0b3IpOworCQl2aXNpYmlsaXR5bWFwX3NldChibGtubywKKwkJCQkJ CSAgdm1idWZmZXIsCisJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAorCQkJCQkJ ICBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4sCisJCQkJCQkgIHJsb2NhdG9yKTsKIAogCQlBc3Nl cnQoQnVmZmVySXNEaXJ0eSh2bWJ1ZmZlcikpOwogCQlQYWdlU2V0TFNOKHZtcGFnZSwgbHNuKTsK QEAgLTEzNjksOSArMTIzMiw2IEBAIGhlYXAyX3JlZG8oWExvZ1JlYWRlclN0YXRlICpyZWNvcmQp CiAJCWNhc2UgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fQ0xFQU5VUDoKIAkJCWhlYXBfeGxvZ19w cnVuZV9mcmVlemUocmVjb3JkKTsKIAkJCWJyZWFrOwotCQljYXNlIFhMT0dfSEVBUDJfVklTSUJM RToKLQkJCWhlYXBfeGxvZ192aXNpYmxlKHJlY29yZCk7Ci0JCQlicmVhazsKIAkJY2FzZSBYTE9H X0hFQVAyX01VTFRJX0lOU0VSVDoKIAkJCWhlYXBfeGxvZ19tdWx0aV9pbnNlcnQocmVjb3JkKTsK IAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFw LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCA0OGQ1ZDlmYjkw Ni4uZWExYWZhNWM1OGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5l aGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBAIC0xMjU2 LDggKzEyNTYsOCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFt cyAqcGFyYW1zLAogCQkJICovCiAJCQlQYWdlU2V0QWxsVmlzaWJsZShwcnN0YXRlLnBhZ2UpOwog CQkJUGFnZUNsZWFyUHJ1bmFibGUocHJzdGF0ZS5wYWdlKTsKLQkJCXZpc2liaWxpdHltYXBfc2V0 X3ZtYml0cyhwcnN0YXRlLmJsb2NrLCBwcnN0YXRlLnZtYnVmZmVyLCBwcnN0YXRlLm5ld192bWJp dHMsCi0JCQkJCQkJCQkgcHJzdGF0ZS5yZWxhdGlvbi0+cmRfbG9jYXRvcik7CisJCQl2aXNpYmls aXR5bWFwX3NldChwcnN0YXRlLmJsb2NrLCBwcnN0YXRlLnZtYnVmZmVyLCBwcnN0YXRlLm5ld192 bWJpdHMsCisJCQkJCQkJICBwcnN0YXRlLnJlbGF0aW9uLT5yZF9sb2NhdG9yKTsKIAkJfQogCiAJ CU1hcmtCdWZmZXJEaXJ0eShwcnN0YXRlLmJ1ZmZlcik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1 dW1sYXp5LmMKaW5kZXggNjNlNjE5OTI0MWMuLmY2OThjMmQ4OTliIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0xOTM5LDExICsxOTM5LDExIEBAIGxhenlfc2Nhbl9uZXdf b3JfZW1wdHkoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLCBCbG9ja051bWJlciBibGtu bywKIAogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CiAJCQlQYWdlQ2xlYXJQcnVuYWJsZShw YWdlKTsKLQkJCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyhibGtubywKLQkJCQkJCQkJCSB2bWJ1 ZmZlciwKLQkJCQkJCQkJCSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwKLQkJCQkJCQkJCSBW SVNJQklMSVRZTUFQX0FMTF9GUk9aRU4sCi0JCQkJCQkJCQkgdmFjcmVsLT5yZWwtPnJkX2xvY2F0 b3IpOworCQkJdmlzaWJpbGl0eW1hcF9zZXQoYmxrbm8sCisJCQkJCQkJICB2bWJ1ZmZlciwKKwkJ CQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAorCQkJCQkJCSAgVklTSUJJTElUWU1B UF9BTExfRlJPWkVOLAorCQkJCQkJCSAgdmFjcmVsLT5yZWwtPnJkX2xvY2F0b3IpOwogCiAJCQkv KgogCQkJICogRW1pdCBXQUwgZm9yIHNldHRpbmcgUERfQUxMX1ZJU0lCTEUgb24gdGhlIGhlYXAg cGFnZSBhbmQKQEAgLTI4MjEsOSArMjgyMSw5IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJl bFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCQkgKi8K IAkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CiAJCVBhZ2VDbGVhclBydW5hYmxlKHBhZ2UpOwot CQl2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMoYmxrbm8sCi0JCQkJCQkJCSB2bWJ1ZmZlciwgdm1m bGFncywKLQkJCQkJCQkJIHZhY3JlbC0+cmVsLT5yZF9sb2NhdG9yKTsKKwkJdmlzaWJpbGl0eW1h cF9zZXQoYmxrbm8sCisJCQkJCQkgIHZtYnVmZmVyLCB2bWZsYWdzLAorCQkJCQkJICB2YWNyZWwt PnJlbC0+cmRfbG9jYXRvcik7CiAJCWNvbmZsaWN0X3hpZCA9IG5ld2VzdF9saXZlX3hpZDsKIAl9 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwppbmRleCBlMjFiOTYyODFh Ni4uMjFlODljMzhmMGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2li aWxpdHltYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMK QEAgLTE0LDggKzE0LDcgQEAKICAqCQl2aXNpYmlsaXR5bWFwX2NsZWFyICAtIGNsZWFyIGJpdHMg Zm9yIG9uZSBwYWdlIGluIHRoZSB2aXNpYmlsaXR5IG1hcAogICoJCXZpc2liaWxpdHltYXBfcGlu CSAtIHBpbiBhIG1hcCBwYWdlIGZvciBzZXR0aW5nIGEgYml0CiAgKgkJdmlzaWJpbGl0eW1hcF9w aW5fb2sgLSBjaGVjayB3aGV0aGVyIGNvcnJlY3QgbWFwIHBhZ2UgaXMgYWxyZWFkeSBwaW5uZWQK LSAqCQl2aXNpYmlsaXR5bWFwX3NldAkgLSBzZXQgYml0KHMpIGluIGEgcHJldmlvdXNseSBwaW5u ZWQgcGFnZSBhbmQgbG9nCi0gKgkJdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzIC0gc2V0IGJpdChz KSBpbiBhIHBpbm5lZCBwYWdlCisgKgkJdmlzaWJpbGl0eW1hcF9zZXQJIC0gc2V0IGJpdChzKSBp biBhIHByZXZpb3VzbHkgcGlubmVkIHBhZ2UKICAqCQl2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMg LSBnZXQgc3RhdHVzIG9mIGJpdHMKICAqCQl2aXNpYmlsaXR5bWFwX2NvdW50ICAtIGNvdW50IG51 bWJlciBvZiBiaXRzIHNldCBpbiB2aXNpYmlsaXR5IG1hcAogICoJCXZpc2liaWxpdHltYXBfcHJl cGFyZV90cnVuY2F0ZSAtCkBAIC0zNSwyMSArMzQsMzEgQEAKICAqIGlzIHNldCwgd2Uga25vdyB0 aGUgY29uZGl0aW9uIGlzIHRydWUsIGJ1dCBpZiBhIGJpdCBpcyBub3Qgc2V0LCBpdCBtaWdodCBv cgogICogbWlnaHQgbm90IGJlIHRydWUuCiAgKgotICogQ2xlYXJpbmcgdmlzaWJpbGl0eSBtYXAg Yml0cyBpcyBub3Qgc2VwYXJhdGVseSBXQUwtbG9nZ2VkLiAgVGhlIGNhbGxlcnMKLSAqIG11c3Qg bWFrZSBzdXJlIHRoYXQgd2hlbmV2ZXIgYSBiaXQgaXMgY2xlYXJlZCwgdGhlIGJpdCBpcyBjbGVh cmVkIG9uIFdBTAotICogcmVwbGF5IG9mIHRoZSB1cGRhdGluZyBvcGVyYXRpb24gYXMgd2VsbC4K LSAqCi0gKiBXaGVuIHdlICpzZXQqIGEgdmlzaWJpbGl0eSBtYXAgZHVyaW5nIFZBQ1VVTSwgd2Ug bXVzdCB3cml0ZSBXQUwuICBUaGlzIG1heQotICogc2VlbSBjb3VudGVyaW50dWl0aXZlLCBzaW5j ZSB0aGUgYml0IGlzIGJhc2ljYWxseSBhIGhpbnQ6IGlmIGl0IGlzIGNsZWFyLAotICogaXQgbWF5 IHN0aWxsIGJlIHRoZSBjYXNlIHRoYXQgZXZlcnkgdHVwbGUgb24gdGhlIHBhZ2UgaXMgdmlzaWJs ZSB0byBhbGwKLSAqIHRyYW5zYWN0aW9uczsgd2UganVzdCBkb24ndCBrbm93IHRoYXQgZm9yIGNl cnRhaW4uICBUaGUgZGlmZmljdWx0eSBpcyB0aGF0Ci0gKiB0aGVyZSBhcmUgdHdvIGJpdHMgd2hp Y2ggYXJlIHR5cGljYWxseSBzZXQgdG9nZXRoZXI6IHRoZSBQRF9BTExfVklTSUJMRSBiaXQKLSAq IG9uIHRoZSBwYWdlIGl0c2VsZiwgYW5kIHRoZSB2aXNpYmlsaXR5IG1hcCBiaXQuICBJZiBhIGNy YXNoIG9jY3VycyBhZnRlciB0aGUKLSAqIHZpc2liaWxpdHkgbWFwIHBhZ2UgbWFrZXMgaXQgdG8g ZGlzayBhbmQgYmVmb3JlIHRoZSB1cGRhdGVkIGhlYXAgcGFnZSBtYWtlcwotICogaXQgdG8gZGlz aywgcmVkbyBtdXN0IHNldCB0aGUgYml0IG9uIHRoZSBoZWFwIHBhZ2UuICBPdGhlcndpc2UsIHRo ZSBuZXh0Ci0gKiBpbnNlcnQsIHVwZGF0ZSwgb3IgZGVsZXRlIG9uIHRoZSBoZWFwIHBhZ2Ugd2ls bCBmYWlsIHRvIHJlYWxpemUgdGhhdCB0aGUKLSAqIHZpc2liaWxpdHkgbWFwIGJpdCBtdXN0IGJl IGNsZWFyZWQsIHBvc3NpYmx5IGNhdXNpbmcgaW5kZXgtb25seSBzY2FucyB0bwotICogcmV0dXJu IHdyb25nIGFuc3dlcnMuCisgKiBDaGFuZ2VzIHRvIHRoZSB2aXNpYmlsaXR5IG1hcCBiaXRzIGFy ZSBub3Qgc2VwYXJhdGVseSBXQUwtbG9nZ2VkLiBDYWxsZXJzCisgKiBtdXN0IG1ha2Ugc3VyZSB0 aGF0IHdoZW5ldmVyIGEgdmlzaWJpbGl0eSBtYXAgYml0IGlzIGNsZWFyZWQsIHRoZSBiaXQgaXMK KyAqIGNsZWFyZWQgb24gV0FMIHJlcGxheSBvZiB0aGUgdXBkYXRpbmcgb3BlcmF0aW9uLiBBbmQg d2hlbmV2ZXIgYSB2aXNpYmlsaXR5CisgKiBtYXAgYml0IGlzIHNldCwgdGhlIGJpdCBpcyBzZXQg b24gV0FMIHJlcGxheSBvZiB0aGUgb3BlcmF0aW9uIHRoYXQgcmVuZGVyZWQKKyAqIHRoZSBwYWdl IGFsbC12aXNpYmxlL2FsbC1mcm96ZW4uCisgKgorICogVGhlIHZpc2liaWxpdHkgbWFwIGJpdHMg b3BlcmF0ZSBhcyBhIGhpbnQgaW4gb25lIGRpcmVjdGlvbjogaWYgdGhleSBhcmUKKyAqIGNsZWFy LCBpdCBtYXkgc3RpbGwgYmUgdGhlIGNhc2UgdGhhdCBldmVyeSB0dXBsZSBvbiB0aGUgcGFnZSBp cyB2aXNpYmxlIHRvCisgKiBhbGwgdHJhbnNhY3Rpb25zICh3ZSBqdXN0IGRvbid0IGtub3cgdGhh dCBmb3IgY2VydGFpbikuIEhvd2V2ZXIsIGlmIHRoZXkKKyAqIGFyZSBzZXQsIHdlIG1heSBza2lw IHZhY3V1bWluZyBwYWdlcyBhbmQgaW5jb3JyZWN0bHkgYWR2YW5jZSByZWxmcm96ZW54aWQKKyAq IG9yIHNraXAgcmVhZGluZyBoZWFwIHBhZ2VzIGZvciBhbiBpbmRleC1vbmx5IHNjYW4gYW5kIHJl dHVybiB3cm9uZyByZXN1bHRzLgorICoKKyAqIEFkZGl0aW9uYWxseSwgaXQgaXMgY3JpdGljYWwg dGhhdCB0aGUgaGVhcC1wYWdlIGxldmVsIFBEX0FMTF9WSVNJQkxFIGJpdCBiZQorICogY29ycmVj dGx5IHNldCBhbmQgY2xlYXJlZCBhbG9uZyB3aXRoIHRoZSBWTSBiaXRzLgorICoKKyAqIFdoZW4g Y2xlYXJpbmcgdGhlIFZNLCBpZiBhIGNyYXNoIG9jY3VycyBhZnRlciB0aGUgaGVhcCBwYWdlIG1h a2VzIGl0IHRvCisgKiBkaXNrIGJ1dCBiZWZvcmUgdGhlIFZNIHBhZ2UgbWFrZXMgaXQgdG8gZGlz aywgcmVwbGF5IG11c3QgY2xlYXIgdGhlIFZNIG9yCisgKiB0aGUgbmV4dCBpbmRleC1vbmx5IHNj YW4gY2FuIHJldHVybiB3cm9uZyByZXN1bHRzIG9yIHZhY3V1bSBtYXkgaW5jb3JyZWN0bHkKKyAq IGFkdmFuY2UgcmVsZnJvemVueGlkLgorICoKKyAqIFdoZW4gc2V0dGluZyB0aGUgVk0sIGlmIGEg Y3Jhc2ggb2NjdXJzIGFmdGVyIHRoZSB2aXNpYmlsaXR5IG1hcCBwYWdlIG1ha2VzCisgKiBpdCB0 byBkaXNrIGFuZCBiZWZvcmUgdGhlIHVwZGF0ZWQgaGVhcCBwYWdlIG1ha2VzIGl0IHRvIGRpc2ss IHJlZG8gbXVzdCBzZXQKKyAqIHRoZSBiaXQgb24gdGhlIGhlYXAgcGFnZS4gT3RoZXJ3aXNlLCB0 aGUgbmV4dCBpbnNlcnQsIHVwZGF0ZSwgb3IgZGVsZXRlIG9uCisgKiB0aGUgaGVhcCBwYWdlIHdp bGwgZmFpbCB0byByZWFsaXplIHRoYXQgdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBtdXN0IGJlCisg KiBjbGVhcmVkLCBwb3NzaWJseSBjYXVzaW5nIGluZGV4LW9ubHkgc2NhbnMgdG8gcmV0dXJuIHdy b25nIGFuc3dlcnMuCiAgKgogICogVkFDVVVNIHdpbGwgbm9ybWFsbHkgc2tpcCBwYWdlcyBmb3Ig d2hpY2ggdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBpcyBzZXQ7CiAgKiBzdWNoIHBhZ2VzIGNhbid0 IGNvbnRhaW4gYW55IGRlYWQgdHVwbGVzIGFuZCB0aGVyZWZvcmUgZG9uJ3QgbmVlZCB2YWN1dW1p bmcuCkBAIC0yMjIsMTEyICsyMzEsMTEgQEAgdmlzaWJpbGl0eW1hcF9waW5fb2soQmxvY2tOdW1i ZXIgaGVhcEJsaywgQnVmZmVyIHZtYnVmKQogCXJldHVybiBCdWZmZXJJc1ZhbGlkKHZtYnVmKSAm JiBCdWZmZXJHZXRCbG9ja051bWJlcih2bWJ1ZikgPT0gbWFwQmxvY2s7CiB9CiAKLS8qCi0gKgl2 aXNpYmlsaXR5bWFwX3NldCAtIHNldCBiaXQocykgb24gYSBwcmV2aW91c2x5IHBpbm5lZCBwYWdl Ci0gKgotICogcmVjcHRyIGlzIHRoZSBMU04gb2YgdGhlIFhMT0cgcmVjb3JkIHdlJ3JlIHJlcGxh eWluZywgaWYgd2UncmUgaW4gcmVjb3ZlcnksCi0gKiBvciBJbnZhbGlkWExvZ1JlY1B0ciBpbiBu b3JtYWwgcnVubmluZy4gIFRoZSBWTSBwYWdlIExTTiBpcyBhZHZhbmNlZCB0byB0aGUKLSAqIG9u ZSBwcm92aWRlZDsgaW4gbm9ybWFsIHJ1bm5pbmcsIHdlIGdlbmVyYXRlIGEgbmV3IFhMT0cgcmVj b3JkIGFuZCBzZXQgdGhlCi0gKiBwYWdlIExTTiB0byB0aGF0IHZhbHVlICh0aG91Z2ggdGhlIGhl YXAgcGFnZSdzIExTTiBtYXkgKm5vdCogYmUgdXBkYXRlZDsKLSAqIHNlZSBiZWxvdykuICBjdXRv ZmZfeGlkIGlzIHRoZSBsYXJnZXN0IHhtaW4gb24gdGhlIHBhZ2UgYmVpbmcgbWFya2VkCi0gKiBh bGwtdmlzaWJsZTsgaXQgaXMgbmVlZGVkIGZvciBIb3QgU3RhbmRieSwgYW5kIGNhbiBiZSBJbnZh bGlkVHJhbnNhY3Rpb25JZAotICogaWYgdGhlIHBhZ2UgY29udGFpbnMgbm8gdHVwbGVzLiAgSXQg Y2FuIGFsc28gYmUgc2V0IHRvIEludmFsaWRUcmFuc2FjdGlvbklkCi0gKiB3aGVuIGEgcGFnZSB0 aGF0IGlzIGFscmVhZHkgYWxsLXZpc2libGUgaXMgYmVpbmcgbWFya2VkIGFsbC1mcm96ZW4uCi0g KgotICogQ2FsbGVyIGlzIGV4cGVjdGVkIHRvIHNldCB0aGUgaGVhcCBwYWdlJ3MgUERfQUxMX1ZJ U0lCTEUgYml0IGJlZm9yZSBjYWxsaW5nCi0gKiB0aGlzIGZ1bmN0aW9uLiBFeGNlcHQgaW4gcmVj b3ZlcnksIGNhbGxlciBzaG91bGQgYWxzbyBwYXNzIHRoZSBoZWFwCi0gKiBidWZmZXIuIFdoZW4g Y2hlY2tzdW1zIGFyZSBlbmFibGVkIGFuZCB3ZSdyZSBub3QgaW4gcmVjb3ZlcnksIHdlIG11c3Qg YWRkCi0gKiB0aGUgaGVhcCBidWZmZXIgdG8gdGhlIFdBTCBjaGFpbiB0byBwcm90ZWN0IGl0IGZy b20gYmVpbmcgdG9ybi4KLSAqCi0gKiBZb3UgbXVzdCBwYXNzIGEgYnVmZmVyIGNvbnRhaW5pbmcg dGhlIGNvcnJlY3QgbWFwIHBhZ2UgdG8gdGhpcyBmdW5jdGlvbi4KLSAqIENhbGwgdmlzaWJpbGl0 eW1hcF9waW4gZmlyc3QgdG8gcGluIHRoZSByaWdodCBvbmUuIFRoaXMgZnVuY3Rpb24gZG9lc24n dCBkbwotICogYW55IEkvTy4KLSAqLwotdm9pZAotdmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24g cmVsLCBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgaGVhcEJ1ZiwKLQkJCQkgIFhMb2dSZWNQ dHIgcmVjcHRyLCBCdWZmZXIgdm1CdWYsIFRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hpZCwKLQkJCQkg IHVpbnQ4IGZsYWdzKQotewotCUJsb2NrTnVtYmVyIG1hcEJsb2NrID0gSEVBUEJMS19UT19NQVBC TE9DSyhoZWFwQmxrKTsKLQl1aW50MzIJCW1hcEJ5dGUgPSBIRUFQQkxLX1RPX01BUEJZVEUoaGVh cEJsayk7Ci0JdWludDgJCW1hcE9mZnNldCA9IEhFQVBCTEtfVE9fT0ZGU0VUKGhlYXBCbGspOwot CVBhZ2UJCXBhZ2U7Ci0JdWludDgJICAgKm1hcDsKLQl1aW50OAkJc3RhdHVzOwotCi0jaWZkZWYg VFJBQ0VfVklTSUJJTElUWU1BUAotCWVsb2coREVCVUcxLCAidm1fc2V0IGZsYWdzIDB4JTAyWCBm b3IgJXMgJWQiLAotCQkgZmxhZ3MsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCksIGhlYXBC bGspOwotI2VuZGlmCi0KLQlBc3NlcnQoSW5SZWNvdmVyeSB8fCAhWExvZ1JlY1B0cklzVmFsaWQo cmVjcHRyKSk7Ci0JQXNzZXJ0KEluUmVjb3ZlcnkgfHwgUGFnZUlzQWxsVmlzaWJsZShCdWZmZXJH ZXRQYWdlKGhlYXBCdWYpKSk7Ci0JQXNzZXJ0KChmbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURf QklUUykgPT0gZmxhZ3MpOwotCi0JLyogTXVzdCBuZXZlciBzZXQgYWxsX2Zyb3plbiBiaXQgd2l0 aG91dCBhbHNvIHNldHRpbmcgYWxsX3Zpc2libGUgYml0ICovCi0JQXNzZXJ0KGZsYWdzICE9IFZJ U0lCSUxJVFlNQVBfQUxMX0ZST1pFTik7Ci0KLQkvKiBDaGVjayB0aGF0IHdlIGhhdmUgdGhlIHJp Z2h0IGhlYXAgcGFnZSBwaW5uZWQsIGlmIHByZXNlbnQgKi8KLQlpZiAoQnVmZmVySXNWYWxpZCho ZWFwQnVmKSAmJiBCdWZmZXJHZXRCbG9ja051bWJlcihoZWFwQnVmKSAhPSBoZWFwQmxrKQotCQll bG9nKEVSUk9SLCAid3JvbmcgaGVhcCBidWZmZXIgcGFzc2VkIHRvIHZpc2liaWxpdHltYXBfc2V0 Iik7Ci0KLQlBc3NlcnQoIUJ1ZmZlcklzVmFsaWQoaGVhcEJ1ZikgfHwKLQkJICAgQnVmZmVySXNM b2NrZWRCeU1lSW5Nb2RlKGhlYXBCdWYsIEJVRkZFUl9MT0NLX0VYQ0xVU0lWRSkpOwotCi0JLyog Q2hlY2sgdGhhdCB3ZSBoYXZlIHRoZSByaWdodCBWTSBwYWdlIHBpbm5lZCAqLwotCWlmICghQnVm ZmVySXNWYWxpZCh2bUJ1ZikgfHwgQnVmZmVyR2V0QmxvY2tOdW1iZXIodm1CdWYpICE9IG1hcEJs b2NrKQotCQllbG9nKEVSUk9SLCAid3JvbmcgVk0gYnVmZmVyIHBhc3NlZCB0byB2aXNpYmlsaXR5 bWFwX3NldCIpOwotCi0JcGFnZSA9IEJ1ZmZlckdldFBhZ2Uodm1CdWYpOwotCW1hcCA9ICh1aW50 OCAqKSBQYWdlR2V0Q29udGVudHMocGFnZSk7Ci0JTG9ja0J1ZmZlcih2bUJ1ZiwgQlVGRkVSX0xP Q0tfRVhDTFVTSVZFKTsKLQotCXN0YXR1cyA9IChtYXBbbWFwQnl0ZV0gPj4gbWFwT2Zmc2V0KSAm IFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUzsKLQlpZiAoZmxhZ3MgIT0gc3RhdHVzKQotCXsKLQkJ U1RBUlRfQ1JJVF9TRUNUSU9OKCk7Ci0KLQkJbWFwW21hcEJ5dGVdIHw9IChmbGFncyA8PCBtYXBP ZmZzZXQpOwotCQlNYXJrQnVmZmVyRGlydHkodm1CdWYpOwotCi0JCWlmIChSZWxhdGlvbk5lZWRz V0FMKHJlbCkpCi0JCXsKLQkJCWlmICghWExvZ1JlY1B0cklzVmFsaWQocmVjcHRyKSkKLQkJCXsK LQkJCQlBc3NlcnQoIUluUmVjb3ZlcnkpOwotCQkJCXJlY3B0ciA9IGxvZ19oZWFwX3Zpc2libGUo cmVsLCBoZWFwQnVmLCB2bUJ1ZiwgY3V0b2ZmX3hpZCwgZmxhZ3MpOwotCi0JCQkJLyoKLQkJCQkg KiBJZiBkYXRhIGNoZWNrc3VtcyBhcmUgZW5hYmxlZCAob3Igd2FsX2xvZ19oaW50cz1vbiksIHdl Ci0JCQkJICogbmVlZCB0byBwcm90ZWN0IHRoZSBoZWFwIHBhZ2UgZnJvbSBiZWluZyB0b3JuLgot CQkJCSAqCi0JCQkJICogSWYgbm90LCB0aGVuIHdlIG11c3QgKm5vdCogdXBkYXRlIHRoZSBoZWFw IHBhZ2UncyBMU04uIEluCi0JCQkJICogdGhpcyBjYXNlLCB0aGUgRlBJIGZvciB0aGUgaGVhcCBw YWdlIHdhcyBvbWl0dGVkIGZyb20gdGhlCi0JCQkJICogV0FMIHJlY29yZCBpbnNlcnRlZCBhYm92 ZSwgc28gaXQgd291bGQgYmUgaW5jb3JyZWN0IHRvCi0JCQkJICogdXBkYXRlIHRoZSBoZWFwIHBh Z2UncyBMU04uCi0JCQkJICovCi0JCQkJaWYgKFhMb2dIaW50Qml0SXNOZWVkZWQoKSkKLQkJCQl7 Ci0JCQkJCVBhZ2UJCWhlYXBQYWdlID0gQnVmZmVyR2V0UGFnZShoZWFwQnVmKTsKLQotCQkJCQlQ YWdlU2V0TFNOKGhlYXBQYWdlLCByZWNwdHIpOwotCQkJCX0KLQkJCX0KLQkJCVBhZ2VTZXRMU04o cGFnZSwgcmVjcHRyKTsKLQkJfQotCi0JCUVORF9DUklUX1NFQ1RJT04oKTsKLQl9Ci0KLQlMb2Nr QnVmZmVyKHZtQnVmLCBCVUZGRVJfTE9DS19VTkxPQ0spOwotfQotCiAvKgogICogU2V0IFZNICh2 aXNpYmlsaXR5IG1hcCkgZmxhZ3MgaW4gdGhlIFZNIGJsb2NrIGluIHZtQnVmLgogICoKICAqIFRo aXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgZm9yIGNhbGxlcnMgdGhhdCBsb2cgVk0gY2hhbmdlcyB0 b2dldGhlcgogICogd2l0aCB0aGUgaGVhcCBwYWdlIG1vZGlmaWNhdGlvbnMgdGhhdCByZW5kZXJl ZCB0aGUgcGFnZSBhbGwtdmlzaWJsZS4KLSAqIENhbGxlcnMgdGhhdCBsb2cgVk0gY2hhbmdlcyBz ZXBhcmF0ZWx5IHNob3VsZCB1c2UgdmlzaWJpbGl0eW1hcF9zZXQoKS4KICAqCiAgKiB2bUJ1ZiBt dXN0IGJlIHBpbm5lZCBhbmQgZXhjbHVzaXZlbHkgbG9ja2VkLCBhbmQgaXQgbXVzdCBjb3ZlciB0 aGUgVk0gYml0cwogICogY29ycmVzcG9uZGluZyB0byBoZWFwQmxrLgpAQCAtMzQzLDkgKzI1MSw5 IEBAIHZpc2liaWxpdHltYXBfc2V0KFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywg QnVmZmVyIGhlYXBCdWYsCiAgKiBybG9jYXRvciBpcyB1c2VkIG9ubHkgZm9yIGRlYnVnZ2luZyBt ZXNzYWdlcy4KICAqLwogdm9pZAotdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKEJsb2NrTnVtYmVy IGhlYXBCbGssCi0JCQkJCQkgQnVmZmVyIHZtQnVmLCB1aW50OCBmbGFncywKLQkJCQkJCSBjb25z dCBSZWxGaWxlTG9jYXRvciBybG9jYXRvcikKK3Zpc2liaWxpdHltYXBfc2V0KEJsb2NrTnVtYmVy IGhlYXBCbGssCisJCQkJICBCdWZmZXIgdm1CdWYsIHVpbnQ4IGZsYWdzLAorCQkJCSAgY29uc3Qg UmVsRmlsZUxvY2F0b3IgcmxvY2F0b3IpCiB7CiAJQmxvY2tOdW1iZXIgbWFwQmxvY2sgPSBIRUFQ QkxLX1RPX01BUEJMT0NLKGhlYXBCbGspOwogCXVpbnQzMgkJbWFwQnl0ZSA9IEhFQVBCTEtfVE9f TUFQQllURShoZWFwQmxrKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVz Yy9oZWFwZGVzYy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMKaW5k ZXggMDJhZTkxNjUzYzEuLjc1YWU2ZjlkMzc1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3Mvcm1ncmRlc2MvaGVhcGRlc2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2Mv aGVhcGRlc2MuYwpAQCAtMzQ5LDEzICszNDksNiBAQCBoZWFwMl9kZXNjKFN0cmluZ0luZm8gYnVm LCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJCX0KIAkJfQogCX0KLQllbHNlIGlmIChpbmZv ID09IFhMT0dfSEVBUDJfVklTSUJMRSkKLQl7Ci0JCXhsX2hlYXBfdmlzaWJsZSAqeGxyZWMgPSAo eGxfaGVhcF92aXNpYmxlICopIHJlYzsKLQotCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgInNuYXBz aG90Q29uZmxpY3RIb3Jpem9uOiAldSwgZmxhZ3M6IDB4JTAyWCIsCi0JCQkJCQkgeGxyZWMtPnNu YXBzaG90Q29uZmxpY3RIb3Jpem9uLCB4bHJlYy0+ZmxhZ3MpOwotCX0KIAllbHNlIGlmIChpbmZv ID09IFhMT0dfSEVBUDJfTVVMVElfSU5TRVJUKQogCXsKIAkJeGxfaGVhcF9tdWx0aV9pbnNlcnQg KnhscmVjID0gKHhsX2hlYXBfbXVsdGlfaW5zZXJ0ICopIHJlYzsKQEAgLTQ2MSw5ICs0NTQsNiBA QCBoZWFwMl9pZGVudGlmeSh1aW50OCBpbmZvKQogCQljYXNlIFhMT0dfSEVBUDJfUFJVTkVfVkFD VVVNX0NMRUFOVVA6CiAJCQlpZCA9ICJQUlVORV9WQUNVVU1fQ0xFQU5VUCI7CiAJCQlicmVhazsK LQkJY2FzZSBYTE9HX0hFQVAyX1ZJU0lCTEU6Ci0JCQlpZCA9ICJWSVNJQkxFIjsKLQkJCWJyZWFr OwogCQljYXNlIFhMT0dfSEVBUDJfTVVMVElfSU5TRVJUOgogCQkJaWQgPSAiTVVMVElfSU5TRVJU IjsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9kZWNvZGUuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKaW5k ZXggMjFmMDM4NjRhNjYuLjNjMDI3YmNiMmY3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvZGVjb2RlLmMKQEAgLTQ0OCw3ICs0NDgsNiBAQCBoZWFwMl9kZWNvZGUoTG9naWNhbERl Y29kaW5nQ29udGV4dCAqY3R4LCBYTG9nUmVjb3JkQnVmZmVyICpidWYpCiAJCWNhc2UgWExPR19I RUFQMl9QUlVORV9PTl9BQ0NFU1M6CiAJCWNhc2UgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fU0NB TjoKIAkJY2FzZSBYTE9HX0hFQVAyX1BSVU5FX1ZBQ1VVTV9DTEVBTlVQOgotCQljYXNlIFhMT0df SEVBUDJfVklTSUJMRToKIAkJY2FzZSBYTE9HX0hFQVAyX0xPQ0tfVVBEQVRFRDoKIAkJCWJyZWFr OwogCQlkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRi eS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jCmluZGV4IGYzYWQ5MGM3Yzdh Li5kZTkwOTJmZGY1YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRi eS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYwpAQCAtNDc2LDEwICs0 NzYsMTEgQEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25J ZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKIAkvKgogCSAqIElmIHdlIGdldCBwYXNzZWQgSW52 YWxpZFRyYW5zYWN0aW9uSWQgdGhlbiB3ZSBkbyBub3RoaW5nIChubyBjb25mbGljdCkuCiAJICoK LQkgKiBUaGlzIGNhbiBoYXBwZW4gd2hlbiByZXBsYXlpbmcgYWxyZWFkeS1hcHBsaWVkIFdBTCBy ZWNvcmRzIGFmdGVyIGEKLQkgKiBzdGFuZGJ5IGNyYXNoIG9yIHJlc3RhcnQsIG9yIHdoZW4gcmVw bGF5aW5nIGFuIFhMT0dfSEVBUDJfVklTSUJMRQotCSAqIHJlY29yZCB0aGF0IG1hcmtzIGFzIGZy b3plbiBhIHBhZ2Ugd2hpY2ggd2FzIGFscmVhZHkgYWxsLXZpc2libGUuICBJdCdzCi0JICogYWxz byBxdWl0ZSBjb21tb24gd2l0aCByZWNvcmRzIGdlbmVyYXRlZCBkdXJpbmcgaW5kZXggZGVsZXRp b24KKwkgKiBUaGlzIGNhbiBoYXBwZW4gd2hlbmV2ZXIgdGhlIGNoYW5nZXMgaW4gdGhlIFdBTCBy ZWNvcmQgZG8gbm90IGFmZmVjdAorCSAqIHZpc2liaWxpdHkgb24gYSBzdGFuZGJ5LiBGb3IgZXhh bXBsZTogYSByZWNvcmQgdGhhdCBvbmx5IGZyZWV6ZXMgYW4KKwkgKiB4bWF4IGZyb20gYSBsb2Nr ZXIuCisJICoKKwkgKiBJdCdzIGFsc28gcXVpdGUgY29tbW9uIHdpdGggcmVjb3JkcyBnZW5lcmF0 ZWQgZHVyaW5nIGluZGV4IGRlbGV0aW9uCiAJICogKG9yaWdpbmFsIGV4ZWN1dGlvbiBvZiB0aGUg ZGVsZXRpb24gY2FuIHJlYXNvbiB0aGF0IGEgcmVjb3ZlcnkgY29uZmxpY3QKIAkgKiB3aGljaCBp cyBzdWZmaWNpZW50IGZvciB0aGUgZGVsZXRpb24gb3BlcmF0aW9uIG11c3QgdGFrZSBwbGFjZSBi ZWZvcmUKIAkgKiByZXBsYXkgb2YgdGhlIGRlbGV0aW9uIHJlY29yZCBpdHNlbGYpLgpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nl c3MvaGVhcGFtX3hsb2cuaAppbmRleCBjZTM1NjZiYTk0OS4uNTE2ODA2ZmNjYTIgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9oZWFwYW1feGxvZy5oCkBAIC02MCw3ICs2MCw3IEBACiAjZGVmaW5lIFhMT0dfSEVBUDJf UFJVTkVfT05fQUNDRVNTCQkweDEwCiAjZGVmaW5lIFhMT0dfSEVBUDJfUFJVTkVfVkFDVVVNX1ND QU4JMHgyMAogI2RlZmluZSBYTE9HX0hFQVAyX1BSVU5FX1ZBQ1VVTV9DTEVBTlVQCTB4MzAKLSNk ZWZpbmUgWExPR19IRUFQMl9WSVNJQkxFCQkweDQwCisvKiAweDQwIHdhcyBYTE9HX0hFQVAyX1ZJ U0lCTEUgKi8KICNkZWZpbmUgWExPR19IRUFQMl9NVUxUSV9JTlNFUlQgMHg1MAogI2RlZmluZSBY TE9HX0hFQVAyX0xPQ0tfVVBEQVRFRCAweDYwCiAjZGVmaW5lIFhMT0dfSEVBUDJfTkVXX0NJRAkJ MHg3MApAQCAtNDQzLDIwICs0NDMsNiBAQCB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX2lucGxhY2UK IAogI2RlZmluZSBNaW5TaXplT2ZIZWFwSW5wbGFjZQkob2Zmc2V0b2YoeGxfaGVhcF9pbnBsYWNl LCBubXNncykgKyBzaXplb2YoaW50KSkKIAotLyoKLSAqIFRoaXMgaXMgd2hhdCB3ZSBuZWVkIHRv IGtub3cgYWJvdXQgc2V0dGluZyBhIHZpc2liaWxpdHkgbWFwIGJpdAotICoKLSAqIEJhY2t1cCBi bGsgMDogdmlzaWJpbGl0eSBtYXAgYnVmZmVyCi0gKiBCYWNrdXAgYmxrIDE6IGhlYXAgYnVmZmVy Ci0gKi8KLXR5cGVkZWYgc3RydWN0IHhsX2hlYXBfdmlzaWJsZQotewotCVRyYW5zYWN0aW9uSWQg c25hcHNob3RDb25mbGljdEhvcml6b247Ci0JdWludDgJCWZsYWdzOwotfSB4bF9oZWFwX3Zpc2li bGU7Ci0KLSNkZWZpbmUgU2l6ZU9mSGVhcFZpc2libGUgKG9mZnNldG9mKHhsX2hlYXBfdmlzaWJs ZSwgZmxhZ3MpICsgc2l6ZW9mKHVpbnQ4KSkKLQogdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9uZXdf Y2lkCiB7CiAJLyoKQEAgLTUwMCwxMSArNDg2LDYgQEAgZXh0ZXJuIHZvaWQgaGVhcDJfZGVzYyhT dHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpOwogZXh0ZXJuIGNvbnN0IGNo YXIgKmhlYXAyX2lkZW50aWZ5KHVpbnQ4IGluZm8pOwogZXh0ZXJuIHZvaWQgaGVhcF94bG9nX2xv Z2ljYWxfcmV3cml0ZShYTG9nUmVhZGVyU3RhdGUgKnIpOwogCi1leHRlcm4gWExvZ1JlY1B0ciBs b2dfaGVhcF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGhlYXBfYnVmZmVyLAotCQkJCQkJ CQkgICBCdWZmZXIgdm1fYnVmZmVyLAotCQkJCQkJCQkgICBUcmFuc2FjdGlvbklkIHNuYXBzaG90 Q29uZmxpY3RIb3Jpem9uLAotCQkJCQkJCQkgICB1aW50OCB2bWZsYWdzKTsKLQogLyogaW4gaGVh cGRlc2MuYywgc28gaXQgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIGZyb250ZW5kL2JhY2tlbmQgY29k ZSAqLwogZXh0ZXJuIHZvaWQgaGVhcF94bG9nX2Rlc2VyaWFsaXplX3BydW5lX2FuZF9mcmVlemUo Y2hhciAqY3Vyc29yLCB1aW50MTYgZmxhZ3MsCiAJCQkJCQkJCQkJCQkgICBpbnQgKm5wbGFucywg eGxocF9mcmVlemVfcGxhbiAqKnBsYW5zLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNz L3Zpc2liaWxpdHltYXAuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwLmgKaW5k ZXggNTJjZGU1NmJlODYuLmU0ZTBjZmE5ODllIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nl c3MvdmlzaWJpbGl0eW1hcC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFw LmgKQEAgLTE1LDcgKzE1LDYgQEAKICNkZWZpbmUgVklTSUJJTElUWU1BUF9ICiAKICNpbmNsdWRl ICJhY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaCIKLSNpbmNsdWRlICJhY2Nlc3MveGxvZ2RlZnMu aCIKICNpbmNsdWRlICJzdG9yYWdlL2Jsb2NrLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9idWYuaCIK ICNpbmNsdWRlICJzdG9yYWdlL3JlbGZpbGVsb2NhdG9yLmgiCkBAIC0zMiwxNSArMzEsOSBAQCBl eHRlcm4gYm9vbCB2aXNpYmlsaXR5bWFwX2NsZWFyKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIg aGVhcEJsaywKIGV4dGVybiB2b2lkIHZpc2liaWxpdHltYXBfcGluKFJlbGF0aW9uIHJlbCwgQmxv Y2tOdW1iZXIgaGVhcEJsaywKIAkJCQkJCQkgIEJ1ZmZlciAqdm1idWYpOwogZXh0ZXJuIGJvb2wg dmlzaWJpbGl0eW1hcF9waW5fb2soQmxvY2tOdW1iZXIgaGVhcEJsaywgQnVmZmVyIHZtYnVmKTsK LWV4dGVybiB2b2lkIHZpc2liaWxpdHltYXBfc2V0KFJlbGF0aW9uIHJlbCwKLQkJCQkJCQkgIEJs b2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciBoZWFwQnVmLAotCQkJCQkJCSAgWExvZ1JlY1B0ciBy ZWNwdHIsCi0JCQkJCQkJICBCdWZmZXIgdm1CdWYsCi0JCQkJCQkJICBUcmFuc2FjdGlvbklkIGN1 dG9mZl94aWQsCi0JCQkJCQkJICB1aW50OCBmbGFncyk7Ci1leHRlcm4gdm9pZCB2aXNpYmlsaXR5 bWFwX3NldF92bWJpdHMoQmxvY2tOdW1iZXIgaGVhcEJsaywKLQkJCQkJCQkJCSBCdWZmZXIgdm1C dWYsIHVpbnQ4IGZsYWdzLAotCQkJCQkJCQkJIGNvbnN0IFJlbEZpbGVMb2NhdG9yIHJsb2NhdG9y KTsKK2V4dGVybiB2b2lkIHZpc2liaWxpdHltYXBfc2V0KEJsb2NrTnVtYmVyIGhlYXBCbGssCisJ CQkJCQkJICBCdWZmZXIgdm1CdWYsIHVpbnQ4IGZsYWdzLAorCQkJCQkJCSAgY29uc3QgUmVsRmls ZUxvY2F0b3IgcmxvY2F0b3IpOwogZXh0ZXJuIHVpbnQ4IHZpc2liaWxpdHltYXBfZ2V0X3N0YXR1 cyhSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciAqdm1idWYpOwogZXh0 ZXJuIHZvaWQgdmlzaWJpbGl0eW1hcF9jb3VudChSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyICph bGxfdmlzaWJsZSwgQmxvY2tOdW1iZXIgKmFsbF9mcm96ZW4pOwogZXh0ZXJuIEJsb2NrTnVtYmVy IHZpc2liaWxpdHltYXBfcHJlcGFyZV90cnVuY2F0ZShSZWxhdGlvbiByZWwsCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaCBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oCmluZGV4IDg5MTUzYjNjZDlhLi5lNTc5NGM4NTU5ZSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgKKysrIGIv c3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgKQEAgLTIxLDE0ICsyMSw1IEBA CiAjZGVmaW5lIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTgkweDAyCiAjZGVmaW5lIFZJU0lCSUxJ VFlNQVBfVkFMSURfQklUUwkweDAzCS8qIE9SIG9mIGFsbCB2YWxpZCB2aXNpYmlsaXR5bWFwCiAJ CQkJCQkJCQkJCSAqIGZsYWdzIGJpdHMgKi8KLS8qCi0gKiBUbyBkZXRlY3QgcmVjb3ZlcnkgY29u ZmxpY3RzIGR1cmluZyBsb2dpY2FsIGRlY29kaW5nIG9uIGEgc3RhbmRieSwgd2UgbmVlZAotICog dG8ga25vdyBpZiBhIHRhYmxlIGlzIGEgdXNlciBjYXRhbG9nIHRhYmxlLiBGb3IgdGhhdCB3ZSBh ZGQgYW4gYWRkaXRpb25hbAotICogYml0IGludG8geGxfaGVhcF92aXNpYmxlLmZsYWdzLCBpbiBh ZGRpdGlvbiB0byB0aGUgYWJvdmUuCi0gKgotICogTkI6IFZJU0lCSUxJVFlNQVBfWExPR18qIG1h eSBub3QgYmUgcGFzc2VkIHRvIHZpc2liaWxpdHltYXBfc2V0KCkuCi0gKi8KLSNkZWZpbmUgVklT SUJJTElUWU1BUF9YTE9HX0NBVEFMT0dfUkVMCTB4MDQKLSNkZWZpbmUgVklTSUJJTElUWU1BUF9Y TE9HX1ZBTElEX0JJVFMJKFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyB8IFZJU0lCSUxJVFlNQVBf WExPR19DQVRBTE9HX1JFTCkKIAogI2VuZGlmCQkJCQkJCS8qIFZJU0lCSUxJVFlNQVBERUZTX0gg Ki8KZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggMGMwN2M5NDVmMDUuLmFkYzg1OGMyYTk3 IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtNDQyMSw3ICs0NDIxLDYgQEAgeGxfaGVh cF9wcnVuZQogeGxfaGVhcF9yZXdyaXRlX21hcHBpbmcKIHhsX2hlYXBfdHJ1bmNhdGUKIHhsX2hl YXBfdXBkYXRlCi14bF9oZWFwX3Zpc2libGUKIHhsX2ludmFsaWRfcGFnZQogeGxfaW52YWxpZF9w YWdlX2tleQogeGxfaW52YWxpZGF0aW9ucwotLSAKMi40My4wCgo= --000000000000a1e2a7064d7d2a75 Content-Type: text/x-patch; charset="US-ASCII"; name="v42-0008-Track-which-relations-are-modified-by-a-query.patch" Content-Disposition: attachment; filename="v42-0008-Track-which-relations-are-modified-by-a-query.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmzjdsfn7 RnJvbSA0MDQxNWZlMjcyMzMwMzc4NjI0OGExYTVkNTMzODljNDgyMTZkNmRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDMgRGVjIDIwMjUgMTU6MDc6MjQgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0MiAwOC8xMl0gVHJhY2sgd2hpY2ggcmVsYXRpb25zIGFyZSBtb2RpZmllZCBieSBhIHF1 ZXJ5CgpTYXZlIHRoZSByZWxpZHMgb2YgbW9kaWZpZWQgcmVsYXRpb25zIGluIGEgYml0bWFwIGlu IHRoZSBQbGFubmVkU3RtdC4KQSBsYXRlciBjb21taXQgd2lsbCBwYXNzIHRoaXMgaW5mb3JtYXRp b24gZG93biB0byBzY2FuIG5vZGVzIHRvIGNvbnRyb2wKd2hldGhlciBvciBub3Qgb24tYWNjZXNz IHBydW5pbmcgaXMgYWxsb3dlZCB0byBzZXQgdGhlIHZpc2liaWxpdHkgbWFwLgpTZXR0aW5nIHRo ZSB2aXNpYmlsaXR5IG1hcCBkdXJpbmcgYSBzY2FuIGlzIGNvdW50ZXJwcm9kdWN0aXZlIGlmIHRo ZQpxdWVyeSBpcyBnb2luZyB0byBtb2RpZnkgdGhlIHBhZ2UgaW1tZWRpYXRlbHkgYWZ0ZXIuCgpS ZWxhdGlvbnMgYXJlIGNvbnNpZGVyZWQgbW9kaWZpZWQgaWYgdGhleSBhcmUgdGhlIHRhcmdldCBv ZiBJTlNFUlQsClVQREFURSwgREVMRVRFLCBvciBNRVJHRSwgb3IgaWYgdGhleSBoYXZlIGFueSBy b3cgbWFyayAoaW5jbHVkaW5nIFNFTEVDVApGT1IgVVBEQVRFL1NIQVJFKS4gQWxsIHJvdyBtYXJr IHR5cGVzIGFyZSBpbmNsdWRlZCwgZXZlbiB0aG9zZSB3aGljaApkb24ndCBhY3R1YWxseSBtb2Rp ZnkgdHVwbGVzLCBiZWNhdXNlIHRoaXMgYml0bWFwIGlzIG9ubHkgdXNlZCBhcyBhIGhpbnQKdG8g YXZvaWQgdW5uZWNlc3Nhcnkgd29yay4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8bWVsYW5p ZXBsYWdlbWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJlcyBGcmV1bmQgPGFuZHJlc0Bh bmFyYXplbC5kZT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0BnbWFpbC5jb20+ CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vRjVDREQxQjUtNjI4Qy00NEExLTlGODUt Mzk1OEM2MjZGNkE5JTQwZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01h aW4uYyAgICAgICAgfCA0NyArKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgICAgfCAgMSArCiBzcmMvYmFja2VuZC9leGVjdXRvci9u b2RlTG9ja1Jvd3MuYyAgICB8ICA0ICsrKwogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlm eVRhYmxlLmMgfCAxOCArKysrKysrKysrCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFu bmVyLmMgICB8IDIxICsrKysrKysrKysrLQogc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgg ICAgICAgICAgfCAxMCArKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgMTAwIGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFp bi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwppbmRleCA1OGI4NDk1NWMyYi4u M2YxMzRmOWEzNGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtOTAsNiArOTAsOSBAQCBz dGF0aWMgYm9vbCBFeGVjQ2hlY2tQZXJtaXNzaW9uc01vZGlmaWVkKE9pZCByZWxPaWQsIE9pZCB1 c2VyaWQsCiAJCQkJCQkJCQkJIEJpdG1hcHNldCAqbW9kaWZpZWRDb2xzLAogCQkJCQkJCQkJCSBB Y2xNb2RlIHJlcXVpcmVkUGVybXMpOwogc3RhdGljIHZvaWQgRXhlY0NoZWNrWGFjdFJlYWRPbmx5 KFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCk7CisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORwor c3RhdGljIHZvaWQgRXhlY0NoZWNrTW9kaWZpZWRSZWxJZHMoRVN0YXRlICplc3RhdGUpOworI2Vu ZGlmCiBzdGF0aWMgdm9pZCBFdmFsUGxhblF1YWxTdGFydChFUFFTdGF0ZSAqZXBxc3RhdGUsIFBs YW4gKnBsYW5UcmVlKTsKIHN0YXRpYyB2b2lkIFJlcG9ydE5vdE51bGxWaW9sYXRpb25FcnJvcihS ZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAogCQkJCQkJCQkJCVR1cGxlVGFibGVTbG90ICpz bG90LApAQCAtODI3LDYgKzgzMCw0NiBAQCBFeGVjQ2hlY2tYYWN0UmVhZE9ubHkoUGxhbm5lZFN0 bXQgKnBsYW5uZWRzdG10KQogfQogCiAKKy8qCisgKiBFeGVjQ2hlY2tNb2RpZmllZFJlbElkcwor ICoJCVZlcmlmeSB0aGF0IGV2ZXJ5IHJlbGF0aW9uIHRoZSBleGVjdXRvciBhY3R1YWxseSBvcGVu ZWQgZm9yIG1vZGlmaWNhdGlvbgorICoJCW9yIHJvdyBsb2NraW5nIGlzIHByZXNlbnQgaW4gdGhl IHBsYW5uZXIncyBtb2RpZmllZFJlbGlkcy4KKyAqCisgKiBUaGUgcGxhbm5lcidzIHNldCBtYXkg YmUgYSBzdXBlcnNldCBvZiB3aGF0IHRoZSBleGVjdXRvciB0b3VjaGVzLCBiZWNhdXNlIGl0Cisg KiBpbmNsdWRlcyBwYXJ0aXRpb25zIHRoYXQgd2VyZSBwcnVuZWQgYXQgcnVudGltZSBhbmQgcGFy ZW50IHJvdyBtYXJrcyB0aGF0IHRoZQorICogZXhlY3V0b3Igc2tpcHMuCisgKi8KKyNpZmRlZiBV U0VfQVNTRVJUX0NIRUNLSU5HCitzdGF0aWMgdm9pZAorRXhlY0NoZWNrTW9kaWZpZWRSZWxJZHMo RVN0YXRlICplc3RhdGUpCit7CisJUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10ID0gZXN0YXRlLT5l c19wbGFubmVkc3RtdDsKKwlCaXRtYXBzZXQgICpleGVjdXRvcl9yZWxpZHMgPSBOVUxMOworCUxp c3RDZWxsICAgKmxjOworCisJZm9yZWFjaChsYywgZXN0YXRlLT5lc19vcGVuZWRfcmVzdWx0X3Jl bGF0aW9ucykKKwl7CisJCVJlc3VsdFJlbEluZm8gKnJyaSA9IChSZXN1bHRSZWxJbmZvICopIGxm aXJzdChsYyk7CisKKwkJaWYgKHJyaS0+cmlfUmFuZ2VUYWJsZUluZGV4ICE9IDApCisJCQlleGVj dXRvcl9yZWxpZHMgPSBibXNfYWRkX21lbWJlcihleGVjdXRvcl9yZWxpZHMsCisJCQkJCQkJCQkJ CSBycmktPnJpX1JhbmdlVGFibGVJbmRleCk7CisJfQorCWlmIChlc3RhdGUtPmVzX3Jvd21hcmtz KQorCXsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBlc3RhdGUtPmVzX3JhbmdlX3RhYmxlX3NpemU7 IGkrKykKKwkJeworCQkJaWYgKGVzdGF0ZS0+ZXNfcm93bWFya3NbaV0gIT0gTlVMTCkKKwkJCQll eGVjdXRvcl9yZWxpZHMgPSBibXNfYWRkX21lbWJlcihleGVjdXRvcl9yZWxpZHMsCisJCQkJCQkJ CQkJCQkgZXN0YXRlLT5lc19yb3dtYXJrc1tpXS0+cnRpKTsKKwkJfQorCX0KKwlBc3NlcnQoYm1z X2lzX3N1YnNldChleGVjdXRvcl9yZWxpZHMsIHBsYW5uZWRzdG10LT5tb2RpZmllZFJlbGlkcykp OworCWJtc19mcmVlKGV4ZWN1dG9yX3JlbGlkcyk7Cit9CisjZW5kaWYKKworCiAvKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgKgkJSW5pdFBsYW4KICAqCkBAIC05OTIsNiArMTAzNSwxMCBAQCBJbml0UGxhbihRdWVyeURl c2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFncykKIAkgKi8KIAlwbGFuc3RhdGUgPSBFeGVjSW5pdE5v ZGUocGxhbiwgZXN0YXRlLCBlZmxhZ3MpOwogCisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORwor CUV4ZWNDaGVja01vZGlmaWVkUmVsSWRzKGVzdGF0ZSk7CisjZW5kaWYKKwogCS8qCiAJICogR2V0 IHRoZSB0dXBsZSBkZXNjcmlwdG9yIGRlc2NyaWJpbmcgdGhlIHR5cGUgb2YgdHVwbGVzIHRvIHJl dHVybi4KIAkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxl bC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXggYWM4NGFmMjk0 YzkuLjRmMzk3NjdkMDMzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFy YWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwpAQCAtMTg4 LDYgKzE4OCw3IEBAIEV4ZWNTZXJpYWxpemVQbGFuKFBsYW4gKnBsYW4sIEVTdGF0ZSAqZXN0YXRl KQogCXBzdG10LT5wYXJ0UHJ1bmVJbmZvcyA9IGVzdGF0ZS0+ZXNfcGFydF9wcnVuZV9pbmZvczsK IAlwc3RtdC0+cnRhYmxlID0gZXN0YXRlLT5lc19yYW5nZV90YWJsZTsKIAlwc3RtdC0+dW5wcnVu YWJsZVJlbGlkcyA9IGVzdGF0ZS0+ZXNfdW5wcnVuZWRfcmVsaWRzOworCXBzdG10LT5tb2RpZmll ZFJlbGlkcyA9IGVzdGF0ZS0+ZXNfcGxhbm5lZHN0bXQtPm1vZGlmaWVkUmVsaWRzOwogCXBzdG10 LT5wZXJtSW5mb3MgPSBlc3RhdGUtPmVzX3J0ZXBlcm1pbmZvczsKIAlwc3RtdC0+cmVzdWx0UmVs YXRpb25zID0gTklMOwogCXBzdG10LT5hcHBlbmRSZWxhdGlvbnMgPSBOSUw7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTG9ja1Jvd3MuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL25vZGVMb2NrUm93cy5jCmluZGV4IDhkODY1NDcwNzgwLi5kNjdmMjRmY2E4YyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUxvY2tSb3dzLmMKKysrIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZUxvY2tSb3dzLmMKQEAgLTExMyw2ICsxMTMsMTAgQEAgbG5leHQ6CiAJ CX0KIAkJZXJtLT5lcm1BY3RpdmUgPSB0cnVlOwogCisJCS8qIHZlcmlmeSB0aGlzIHJlbGF0aW9u IGlzIGluIHRoZSBwbGFubmVyJ3MgbW9kaWZpZWRSZWxpZHMgKi8KKwkJQXNzZXJ0KGJtc19pc19t ZW1iZXIoZXJtLT5ydGksCisJCQkJCQkJIGVzdGF0ZS0+ZXNfcGxhbm5lZHN0bXQtPm1vZGlmaWVk UmVsaWRzKSk7CisKIAkJLyogZmV0Y2ggdGhlIHR1cGxlJ3MgY3RpZCAqLwogCQlkYXR1bSA9IEV4 ZWNHZXRKdW5rQXR0cmlidXRlKHNsb3QsCiAJCQkJCQkJCQkgYWVybS0+Y3RpZEF0dE5vLApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYwppbmRleCA0Y2Q1ZTI2MmUwZi4uNmI0ZWU0 ZjkzNzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5j CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCkBAIC04OTYsNiAr ODk2LDE2IEBAIEV4ZWNJbnNlcnQoTW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LAogCiAJcmVz dWx0UmVsYXRpb25EZXNjID0gcmVzdWx0UmVsSW5mby0+cmlfUmVsYXRpb25EZXNjOwogCisJLyoK KwkgKiBWZXJpZnkgdGhpcyByZWxhdGlvbiBpcyBpbiB0aGUgcGxhbm5lcidzIHNldCBvZiBtb2Rp ZmllZCByZWxhdGlvbnMuCisJICogUGFydGl0aW9ucyBvcGVuZWQgYnkgdHVwbGUgcm91dGluZyBo YXZlIHJpX1JhbmdlVGFibGVJbmRleCA9PSAwIGJlY2F1c2UKKwkgKiB0aGV5IGhhdmUgbm8gcmFu Z2UgdGFibGUgZW50cnksIHNvIHdlIGNhbiBvbmx5IGNoZWNrIHJlbGF0aW9ucyB0aGF0IGFyZQor CSAqIGluIHRoZSByYW5nZSB0YWJsZS4KKwkgKi8KKwlBc3NlcnQocmVzdWx0UmVsSW5mby0+cmlf UmFuZ2VUYWJsZUluZGV4ID09IDAgfHwKKwkJICAgYm1zX2lzX21lbWJlcihyZXN1bHRSZWxJbmZv LT5yaV9SYW5nZVRhYmxlSW5kZXgsCisJCQkJCQkgZXN0YXRlLT5lc19wbGFubmVkc3RtdC0+bW9k aWZpZWRSZWxpZHMpKTsKKwogCS8qCiAJICogT3BlbiB0aGUgdGFibGUncyBpbmRleGVzLCBpZiB3 ZSBoYXZlIG5vdCBkb25lIHNvIGFscmVhZHksIHNvIHRoYXQgd2UKIAkgKiBjYW4gYWRkIG5ldyBp bmRleCBlbnRyaWVzIGZvciB0aGUgaW5zZXJ0ZWQgdHVwbGUuCkBAIC0xNTIzLDYgKzE1MzMsMTAg QEAgRXhlY0RlbGV0ZUFjdChNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsIFJlc3VsdFJlbElu Zm8gKnJlc3VsdFJlbEluZm8sCiB7CiAJRVN0YXRlCSAgICplc3RhdGUgPSBjb250ZXh0LT5lc3Rh dGU7CiAKKwlBc3NlcnQocmVzdWx0UmVsSW5mby0+cmlfUmFuZ2VUYWJsZUluZGV4ID09IDAgfHwK KwkJICAgYm1zX2lzX21lbWJlcihyZXN1bHRSZWxJbmZvLT5yaV9SYW5nZVRhYmxlSW5kZXgsCisJ CQkJCQkgZXN0YXRlLT5lc19wbGFubmVkc3RtdC0+bW9kaWZpZWRSZWxpZHMpKTsKKwogCXJldHVy biB0YWJsZV90dXBsZV9kZWxldGUocmVzdWx0UmVsSW5mby0+cmlfUmVsYXRpb25EZXNjLCB0dXBs ZWlkLAogCQkJCQkJCSAgZXN0YXRlLT5lc19vdXRwdXRfY2lkLAogCQkJCQkJCSAgZXN0YXRlLT5l c19zbmFwc2hvdCwKQEAgLTIyMDUsNiArMjIxOSwxMCBAQCBFeGVjVXBkYXRlQWN0KE1vZGlmeVRh YmxlQ29udGV4dCAqY29udGV4dCwgUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKIAlib29s CQlwYXJ0aXRpb25fY29uc3RyYWludF9mYWlsZWQ7CiAJVE1fUmVzdWx0CXJlc3VsdDsKIAorCUFz c2VydChyZXN1bHRSZWxJbmZvLT5yaV9SYW5nZVRhYmxlSW5kZXggPT0gMCB8fAorCQkgICBibXNf aXNfbWVtYmVyKHJlc3VsdFJlbEluZm8tPnJpX1JhbmdlVGFibGVJbmRleCwKKwkJCQkJCSBlc3Rh dGUtPmVzX3BsYW5uZWRzdG10LT5tb2RpZmllZFJlbGlkcykpOworCiAJdXBkYXRlQ3h0LT5jcm9z c1BhcnRVcGRhdGUgPSBmYWxzZTsKIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9wbGFubmVyLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVy LmMKaW5kZXggNDI2MDRhMGY3NWMuLjg0N2FmOTc5ZTMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3Bs YW4vcGxhbm5lci5jCkBAIC0zNDAsOCArMzQwLDEwIEBAIHN0YW5kYXJkX3BsYW5uZXIoUXVlcnkg KnBhcnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGludCBjdXJzb3JPcHRpb25zLAogCVJl bE9wdEluZm8gKmZpbmFsX3JlbDsKIAlQYXRoCSAgICpiZXN0X3BhdGg7CiAJUGxhbgkgICAqdG9w X3BsYW47CisJQml0bWFwc2V0ICAqbW9kaWZpZWRSZWxpZHMgPSBOVUxMOwogCUxpc3RDZWxsICAg KmxwLAotCQkJICAgKmxyOworCQkJICAgKmxyLAorCQkJICAgKmxjOwogCiAJLyoKIAkgKiBTZXQg dXAgZ2xvYmFsIHN0YXRlIGZvciB0aGlzIHBsYW5uZXIgaW52b2NhdGlvbi4gIFRoaXMgZGF0YSBp cyBuZWVkZWQKQEAgLTY2MSw2ICs2NjMsMjMgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFy c2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywgaW50IGN1cnNvck9wdGlvbnMsCiAJcmVzdWx0 LT5zdWJwbGFucyA9IGdsb2ItPnN1YnBsYW5zOwogCXJlc3VsdC0+cmV3aW5kUGxhbklEcyA9IGds b2ItPnJld2luZFBsYW5JRHM7CiAJcmVzdWx0LT5yb3dNYXJrcyA9IGdsb2ItPmZpbmFscm93bWFy a3M7CisKKwkvKgorCSAqIENvbXB1dGUgbW9kaWZpZWRSZWxpZHMgZnJvbSByZXN1bHQgcmVsYXRp b25zIGFuZCByb3cgbWFya3MuICBUaGlzIGlzIGEKKwkgKiBzdXBlcnNldCBvZiB3aGF0IHRoZSBl eGVjdXRvciB3aWxsIGFjdHVhbGx5IG1vZGlmeS9sb2NrIGF0IHJ1bnRpbWUsCisJICogYmVjYXVz ZSBydW50aW1lIHBhcnRpdGlvbiBwcnVuaW5nIG1heSBlbGltaW5hdGUgc29tZSByZXN1bHQgcmVs YXRpb25zLAorCSAqIGFuZCBwYXJlbnQgcm93IG1hcmtzIGFyZSBpbmNsdWRlZCBoZXJlIGJ1dCBz a2lwcGVkIGJ5IHRoZSBleGVjdXRvci4KKwkgKi8KKwlmb3JlYWNoKGxjLCBnbG9iLT5yZXN1bHRS ZWxhdGlvbnMpCisJCW1vZGlmaWVkUmVsaWRzID0gYm1zX2FkZF9tZW1iZXIobW9kaWZpZWRSZWxp ZHMsIGxmaXJzdF9pbnQobGMpKTsKKwlmb3JlYWNoKGxjLCBnbG9iLT5maW5hbHJvd21hcmtzKQor CXsKKwkJUGxhblJvd01hcmsgKnJjID0gKFBsYW5Sb3dNYXJrICopIGxmaXJzdChsYyk7CisKKwkJ bW9kaWZpZWRSZWxpZHMgPSBibXNfYWRkX21lbWJlcihtb2RpZmllZFJlbGlkcywgcmMtPnJ0aSk7 CisJfQorCXJlc3VsdC0+bW9kaWZpZWRSZWxpZHMgPSBtb2RpZmllZFJlbGlkczsKKwogCXJlc3Vs dC0+cmVsYXRpb25PaWRzID0gZ2xvYi0+cmVsYXRpb25PaWRzOwogCXJlc3VsdC0+aW52YWxJdGVt cyA9IGdsb2ItPmludmFsSXRlbXM7CiAJcmVzdWx0LT5wYXJhbUV4ZWNUeXBlcyA9IGdsb2ItPnBh cmFtRXhlY1R5cGVzOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAppbmRleCBiNjE4NTgyNWZjYi4uODQxYzc3 MDdjNTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCkBAIC0xMTIsNiArMTEyLDE2IEBAIHR5cGVkZWYg c3RydWN0IFBsYW5uZWRTdG10CiAJICovCiAJQml0bWFwc2V0ICAqdW5wcnVuYWJsZVJlbGlkczsK IAorCS8qCisJICogUlQgaW5kZXhlcyBvZiByZWxhdGlvbnMgbW9kaWZpZWQgYnkgdGhlIHF1ZXJ5 IHRocm91Z2gKKwkgKiBVUERBVEUvREVMRVRFL0lOU0VSVC9NRVJHRSBvciB0YXJnZXRlZCBieSBT RUxFQ1QgRk9SIFVQREFURS9TSEFSRS4KKwkgKgorCSAqIENvbXB1dGVkIGJ5IHRoZSBwbGFubmVy LCB0aGlzIGlzIGEgc3VwZXJzZXQgb2Ygd2hhdCB0aGUgZXhlY3V0b3Igd2lsbAorCSAqIGFjdHVh bGx5IHRvdWNoIGF0IHJ1bnRpbWUsIGJlY2F1c2UgaXQgaW5jbHVkZXMgcGFydGl0aW9ucyB0aGF0 IG1heSBiZQorCSAqIHBydW5lZCBhbmQgcGFyZW50IHJvdyBtYXJrcyB0aGF0IHRoZSBleGVjdXRv ciBza2lwcy4KKwkgKi8KKwlCaXRtYXBzZXQgICptb2RpZmllZFJlbGlkczsKKwogCS8qCiAJICog bGlzdCBvZiBSVEVQZXJtaXNzaW9uSW5mbyBub2RlcyBmb3IgcnRhYmxlIGVudHJpZXMgbmVlZGlu ZyBvbmUKIAkgKi8KLS0gCjIuNDMuMAoK --000000000000a1e2a7064d7d2a75 Content-Type: text/x-patch; charset="US-ASCII"; name="v42-0009-Thread-flags-through-begin-scan-APIs.patch" Content-Disposition: attachment; filename="v42-0009-Thread-flags-through-begin-scan-APIs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmzjdvm18 RnJvbSBmMWMzYTQwZmYzZmE4YjVmNjMwNzNiMTMzMDYwODJjODgwZWYxYzA2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUaHUsIDE5IE1hciAyMDI2IDE3OjA1OjU1IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDIgMDkvMTJdIFRocmVhZCBmbGFncyB0aHJvdWdoIGJlZ2luLXNjYW4gQVBJcwoKQWRk IGEgdXNlci1zZXR0YWJsZSBmbGFncyBwYXJhbWV0ZXIgdG8gdGhlIHRhYmxlX2JlZ2luc2Nhbl8q IHdyYXBwZXJzLAppbmRleF9iZWdpbnNjYW4oKSwgdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4oKSwg YW5kIHRoZSB0YWJsZQpBTSBjYWxsYmFjayBpbmRleF9mZXRjaF9iZWdpbigpLiBUaGlzIGFsbG93 cyB1c2VycyB0byBwYXNzIGFkZGl0aW9uYWwKY29udGV4dCB0byBiZSB1c2VkIHdoZW4gYnVpbGRp bmcgdGhlIHNjYW4gZGVzY3JpcHRvcnMuCgpGb3IgaW5kZXggc2NhbnMsIGEgbmV3IHVpbnQzMiBm bGFncyBmaWVsZCBpcyBhZGRlZCB0bwpJbmRleEZldGNoVGFibGVEYXRhLCBhbmQgdGhlIGhlYXAg QU0gc3RvcmVzIHRoZSBjYWxsZXItcHJvdmlkZWQgZmxhZ3MKdGhlcmUgaW4gaGVhcGFtX2luZGV4 X2ZldGNoX2JlZ2luKCkuCgpUaGlzIGludHJvZHVjZXMgYW4gZXh0ZW5zaW9uIHBvaW50IGZvciBm b2xsb3ctdXAgd29yayB0byBwYXNzCnBlci1zY2FuIGluZm9ybWF0aW9uIChzdWNoIGFzIHdoZXRo ZXIgdGhlIHJlbGF0aW9uIGlzIHJlYWQtb25seSBmb3IgdGhlCmN1cnJlbnQgcXVlcnkpIGZyb20g dGhlIGV4ZWN1dG9yIHRvIHRoZSBBTSBsYXllci4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8 bWVsYW5pZXBsYWdlbWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJlcyBGcmV1bmQgPGFu ZHJlc0BhbmFyYXplbC5kZT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0BnbWFp bC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vRjVDREQxQjUtNjI4Qy00NEEx LTlGODUtMzk1OEM2MjZGNkE5JTQwZ21haWwuY29tCi0tLQogY29udHJpYi9wZ3Jvd2xvY2tzL3Bn cm93bG9ja3MuYyAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJp bi5jICAgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQu YyAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIu YyAgfCAgOSArKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5hbS5jICAgICAgICAgIHwg IDIgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYyAgICAgICAgfCAgNyArKy0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jICAgICAgIHwgIDIgKy0KIHNyYy9i YWNrZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMgICAgICAgIHwgMjEgKysrLS0tLQogc3JjL2Jh Y2tlbmQvY29tbWFuZHMvY29uc3RyYWludC5jICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvY29weXRvLmMgICAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvdGFibGVjbWRzLmMgICAgICAgICAgfCAgOCArLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3R5 cGVjbWRzLmMgICAgICAgICAgIHwgIDQgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRl eGluZy5jICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlv bi5jICAgIHwgMTIgKystLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2Fu LmMgfCAgMiArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYyAgfCAg NSArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jICAgICAgfCAgNiArLQog c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYyAgICAgfCAgMiArLQogc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYyAgICAgICAgfCAgNiArLQogc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jICAgfCAgNiArLQogc3JjL2JhY2tlbmQvcGFydGl0 aW9uaW5nL3BhcnRib3VuZHMuYyAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Nl bGZ1bmNzLmMgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaCAgICAg ICAgICAgICAgICB8ICA0ICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAg ICAgICB8ICA1ICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvcmVsc2Nhbi5oICAgICAgICAgICAgICB8 ICAxICsKIHNyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggICAgICAgICAgICAgIHwgNzIgKysr KysrKysrKysrKysrLS0tLS0tLS0KIDI2IGZpbGVzIGNoYW5nZWQsIDExNyBpbnNlcnRpb25zKCsp LCA3NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL3Bncm93bG9ja3MvcGdyb3ds b2Nrcy5jIGIvY29udHJpYi9wZ3Jvd2xvY2tzL3Bncm93bG9ja3MuYwppbmRleCBmZjM2OTJjODdj NC4uMDU1NmU5ZjdiODggMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdyb3dsb2Nrcy9wZ3Jvd2xvY2tz LmMKKysrIGIvY29udHJpYi9wZ3Jvd2xvY2tzL3Bncm93bG9ja3MuYwpAQCAtMTE1LDcgKzExNSw3 IEBAIHBncm93bG9ja3MoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJICAgUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUocmVsKSk7CiAKIAkvKiBTY2FuIHRoZSByZWxhdGlvbiAqLwotCXNjYW4gPSB0YWJs ZV9iZWdpbnNjYW4ocmVsLCBHZXRBY3RpdmVTbmFwc2hvdCgpLCAwLCBOVUxMKTsKKwlzY2FuID0g dGFibGVfYmVnaW5zY2FuKHJlbCwgR2V0QWN0aXZlU25hcHNob3QoKSwgMCwgTlVMTCwgMCk7CiAJ aHNjYW4gPSAoSGVhcFNjYW5EZXNjKSBzY2FuOwogCiAJYXR0aW5tZXRhID0gVHVwbGVEZXNjR2V0 QXR0SW5NZXRhZGF0YShyc2luZm8tPnNldERlc2MpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv YWNjZXNzL2JyaW4vYnJpbi5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCmluZGV4 IDJhMGY4YzhlM2I4Li5iMjVlODE0YTk5NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L2JyaW4vYnJpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYwpAQCAtMjg0 NCw3ICsyODQ0LDggQEAgX2JyaW5fcGFyYWxsZWxfc2Nhbl9hbmRfYnVpbGQoQnJpbkJ1aWxkU3Rh dGUgKnN0YXRlLAogCWluZGV4SW5mby0+aWlfQ29uY3VycmVudCA9IGJyaW5zaGFyZWQtPmlzY29u Y3VycmVudDsKIAogCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoaGVhcCwKLQkJCQkJ CQkJCVBhcmFsbGVsVGFibGVTY2FuRnJvbUJyaW5TaGFyZWQoYnJpbnNoYXJlZCkpOworCQkJCQkJ CQkJUGFyYWxsZWxUYWJsZVNjYW5Gcm9tQnJpblNoYXJlZChicmluc2hhcmVkKSwKKwkJCQkJCQkJ CTApOwogCiAJcmVsdHVwbGVzID0gdGFibGVfaW5kZXhfYnVpbGRfc2NhbihoZWFwLCBpbmRleCwg aW5kZXhJbmZvLCB0cnVlLCB0cnVlLAogCQkJCQkJCQkJICAgYnJpbmJ1aWxkQ2FsbGJhY2tQYXJh bGxlbCwgc3RhdGUsIHNjYW4pOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9n aW5pbnNlcnQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMKaW5kZXggZTU0 NzgyZDlkZDguLjU1NWIxNjc3MWU5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lu L2dpbmluc2VydC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMKQEAg LTIwNjgsNyArMjA2OCw4IEBAIF9naW5fcGFyYWxsZWxfc2Nhbl9hbmRfYnVpbGQoR2luQnVpbGRT dGF0ZSAqc3RhdGUsCiAJaW5kZXhJbmZvLT5paV9Db25jdXJyZW50ID0gZ2luc2hhcmVkLT5pc2Nv bmN1cnJlbnQ7CiAKIAlzY2FuID0gdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKGhlYXAsCi0JCQkJ CQkJCQlQYXJhbGxlbFRhYmxlU2NhbkZyb21HaW5CdWlsZFNoYXJlZChnaW5zaGFyZWQpKTsKKwkJ CQkJCQkJCVBhcmFsbGVsVGFibGVTY2FuRnJvbUdpbkJ1aWxkU2hhcmVkKGdpbnNoYXJlZCksCisJ CQkJCQkJCQkwKTsKIAogCXJlbHR1cGxlcyA9IHRhYmxlX2luZGV4X2J1aWxkX3NjYW4oaGVhcCwg aW5kZXgsIGluZGV4SW5mbywgdHJ1ZSwgcHJvZ3Jlc3MsCiAJCQkJCQkJCQkgICBnaW5CdWlsZENh bGxiYWNrUGFyYWxsZWwsIHN0YXRlLCBzY2FuKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFw YW1faGFuZGxlci5jCmluZGV4IDI1M2E3MzViNmMxLi42NjcyNmIyMmRlNiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCkBAIC04MCwxMSArODAsMTIgQEAgaGVhcGFt X3Nsb3RfY2FsbGJhY2tzKFJlbGF0aW9uIHJlbGF0aW9uKQogICovCiAKIHN0YXRpYyBJbmRleEZl dGNoVGFibGVEYXRhICoKLWhlYXBhbV9pbmRleF9mZXRjaF9iZWdpbihSZWxhdGlvbiByZWwpCito ZWFwYW1faW5kZXhfZmV0Y2hfYmVnaW4oUmVsYXRpb24gcmVsLCB1aW50MzIgZmxhZ3MpCiB7CiAJ SW5kZXhGZXRjaEhlYXBEYXRhICpoc2NhbiA9IHBhbGxvYzBfb2JqZWN0KEluZGV4RmV0Y2hIZWFw RGF0YSk7CiAKIAloc2Nhbi0+eHNfYmFzZS5yZWwgPSByZWw7CisJaHNjYW4tPnhzX2Jhc2UuZmxh Z3MgPSBmbGFnczsKIAloc2Nhbi0+eHNfY2J1ZiA9IEludmFsaWRCdWZmZXI7CiAJaHNjYW4tPnhz X3ZtYnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKIApAQCAtNzYyLDcgKzc2Myw5IEBAIGhlYXBhbV9y ZWxhdGlvbl9jb3B5X2Zvcl9jbHVzdGVyKFJlbGF0aW9uIE9sZEhlYXAsIFJlbGF0aW9uIE5ld0hl YXAsCiAKIAkJdGFibGVTY2FuID0gTlVMTDsKIAkJaGVhcFNjYW4gPSBOVUxMOwotCQlpbmRleFNj YW4gPSBpbmRleF9iZWdpbnNjYW4oT2xkSGVhcCwgT2xkSW5kZXgsIFNuYXBzaG90QW55LCBOVUxM LCAwLCAwKTsKKwkJaW5kZXhTY2FuID0gaW5kZXhfYmVnaW5zY2FuKE9sZEhlYXAsIE9sZEluZGV4 LAorCQkJCQkJCQkJMCwJLyogZmxhZ3MgKi8KKwkJCQkJCQkJCVNuYXBzaG90QW55LCBOVUxMLCAw LCAwKTsKIAkJaW5kZXhfcmVzY2FuKGluZGV4U2NhbiwgTlVMTCwgMCwgTlVMTCwgMCk7CiAJfQog CWVsc2UKQEAgLTc3MSw3ICs3NzQsNyBAQCBoZWFwYW1fcmVsYXRpb25fY29weV9mb3JfY2x1c3Rl cihSZWxhdGlvbiBPbGRIZWFwLCBSZWxhdGlvbiBOZXdIZWFwLAogCQlwZ3N0YXRfcHJvZ3Jlc3Nf dXBkYXRlX3BhcmFtKFBST0dSRVNTX1JFUEFDS19QSEFTRSwKIAkJCQkJCQkJCSBQUk9HUkVTU19S RVBBQ0tfUEhBU0VfU0VRX1NDQU5fSEVBUCk7CiAKLQkJdGFibGVTY2FuID0gdGFibGVfYmVnaW5z Y2FuKE9sZEhlYXAsIFNuYXBzaG90QW55LCAwLCAoU2NhbktleSkgTlVMTCk7CisJCXRhYmxlU2Nh biA9IHRhYmxlX2JlZ2luc2NhbihPbGRIZWFwLCBTbmFwc2hvdEFueSwgMCwgKFNjYW5LZXkpIE5V TEwsIDApOwogCQloZWFwU2NhbiA9IChIZWFwU2NhbkRlc2MpIHRhYmxlU2NhbjsKIAkJaW5kZXhT Y2FuID0gTlVMTDsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2dlbmFt LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvZ2VuYW0uYwppbmRleCA1ZTg5Yjg2YTYyYy4u YjA5OWQ5NTZlNDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5hbS5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5hbS5jCkBAIC00NTUsNiArNDU1LDcg QEAgc3lzdGFibGVfYmVnaW5zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkJfQogCiAJCXN5 c3NjYW4tPmlzY2FuID0gaW5kZXhfYmVnaW5zY2FuKGhlYXBSZWxhdGlvbiwgaXJlbCwKKwkJCQkJ CQkJCQkgMCwgLyogZmxhZ3MgKi8KIAkJCQkJCQkJCQkgc25hcHNob3QsIE5VTEwsIG5rZXlzLCAw KTsKIAkJaW5kZXhfcmVzY2FuKHN5c3NjYW4tPmlzY2FuLCBpZHhrZXksIG5rZXlzLCBOVUxMLCAw KTsKIAkJc3lzc2Nhbi0+c2NhbiA9IE5VTEw7CkBAIC03MTYsNiArNzE3LDcgQEAgc3lzdGFibGVf YmVnaW5zY2FuX29yZGVyZWQoUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQlic3lzc2NhbiA9IHRy dWU7CiAKIAlzeXNzY2FuLT5pc2NhbiA9IGluZGV4X2JlZ2luc2NhbihoZWFwUmVsYXRpb24sIGlu ZGV4UmVsYXRpb24sCisJCQkJCQkJCQkgMCwgLyogZmxhZ3MgKi8KIAkJCQkJCQkJCSBzbmFwc2hv dCwgTlVMTCwgbmtleXMsIDApOwogCWluZGV4X3Jlc2NhbihzeXNzY2FuLT5pc2NhbiwgaWR4a2V5 LCBua2V5cywgTlVMTCwgMCk7CiAJc3lzc2Nhbi0+c2NhbiA9IE5VTEw7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2lu ZGV4L2luZGV4YW0uYwppbmRleCA1ZWI3ZTk5YWQzZS4uNjNkNWRhYWRjYTYgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2luZGV4L2luZGV4YW0uYwpAQCAtMjU1LDYgKzI1NSw3IEBAIGluZGV4X2luc2VydF9jbGVh bnVwKFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCiBJbmRleFNjYW5EZXNjCiBpbmRleF9iZWdpbnNj YW4oUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQkJCVJlbGF0aW9uIGluZGV4UmVsYXRpb24sCisJ CQkJdWludDMyIGZsYWdzLAogCQkJCVNuYXBzaG90IHNuYXBzaG90LAogCQkJCUluZGV4U2Nhbklu c3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKIAkJCQlpbnQgbmtleXMsIGludCBub3JkZXJieXMp CkBAIC0yODQsNyArMjg1LDcgQEAgaW5kZXhfYmVnaW5zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlv biwKIAlzY2FuLT5pbnN0cnVtZW50ID0gaW5zdHJ1bWVudDsKIAogCS8qIHByZXBhcmUgdG8gZmV0 Y2ggaW5kZXggbWF0Y2hlcyBmcm9tIHRhYmxlICovCi0Jc2Nhbi0+eHNfaGVhcGZldGNoID0gdGFi bGVfaW5kZXhfZmV0Y2hfYmVnaW4oaGVhcFJlbGF0aW9uKTsKKwlzY2FuLT54c19oZWFwZmV0Y2gg PSB0YWJsZV9pbmRleF9mZXRjaF9iZWdpbihoZWFwUmVsYXRpb24sIGZsYWdzKTsKIAogCXJldHVy biBzY2FuOwogfQpAQCAtNTkzLDcgKzU5NCw3IEBAIEluZGV4U2NhbkRlc2MKIGluZGV4X2JlZ2lu c2Nhbl9wYXJhbGxlbChSZWxhdGlvbiBoZWFwcmVsLCBSZWxhdGlvbiBpbmRleHJlbCwKIAkJCQkJ CSBJbmRleFNjYW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCiAJCQkJCQkgaW50IG5rZXlz LCBpbnQgbm9yZGVyYnlzLAotCQkJCQkJIFBhcmFsbGVsSW5kZXhTY2FuRGVzYyBwc2NhbikKKwkJ CQkJCSBQYXJhbGxlbEluZGV4U2NhbkRlc2MgcHNjYW4sIHVpbnQzMiBmbGFncykKIHsKIAlTbmFw c2hvdAlzbmFwc2hvdDsKIAlJbmRleFNjYW5EZXNjIHNjYW47CkBAIC02MTUsNyArNjE2LDcgQEAg aW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9uIGhlYXByZWwsIFJlbGF0aW9uIGluZGV4 cmVsLAogCXNjYW4tPmluc3RydW1lbnQgPSBpbnN0cnVtZW50OwogCiAJLyogcHJlcGFyZSB0byBm ZXRjaCBpbmRleCBtYXRjaGVzIGZyb20gdGFibGUgKi8KLQlzY2FuLT54c19oZWFwZmV0Y2ggPSB0 YWJsZV9pbmRleF9mZXRjaF9iZWdpbihoZWFwcmVsKTsKKwlzY2FuLT54c19oZWFwZmV0Y2ggPSB0 YWJsZV9pbmRleF9mZXRjaF9iZWdpbihoZWFwcmVsLCBmbGFncyk7CiAKIAlyZXR1cm4gc2NhbjsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMKaW5kZXggNDdhOWJkYTMwYzkuLjAxNmE1 ZTU0NmRkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYwpAQCAtMTkyOCw3ICsxOTI4 LDcgQEAgX2J0X3BhcmFsbGVsX3NjYW5fYW5kX3NvcnQoQlRTcG9vbCAqYnRzcG9vbCwgQlRTcG9v bCAqYnRzcG9vbDIsCiAJaW5kZXhJbmZvID0gQnVpbGRJbmRleEluZm8oYnRzcG9vbC0+aW5kZXgp OwogCWluZGV4SW5mby0+aWlfQ29uY3VycmVudCA9IGJ0c2hhcmVkLT5pc2NvbmN1cnJlbnQ7CiAJ c2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChidHNwb29sLT5oZWFwLAotCQkJCQkJCQkJ UGFyYWxsZWxUYWJsZVNjYW5Gcm9tQlRTaGFyZWQoYnRzaGFyZWQpKTsKKwkJCQkJCQkJCVBhcmFs bGVsVGFibGVTY2FuRnJvbUJUU2hhcmVkKGJ0c2hhcmVkKSwgMCk7CiAJcmVsdHVwbGVzID0gdGFi bGVfaW5kZXhfYnVpbGRfc2NhbihidHNwb29sLT5oZWFwLCBidHNwb29sLT5pbmRleCwgaW5kZXhJ bmZvLAogCQkJCQkJCQkJICAgdHJ1ZSwgcHJvZ3Jlc3MsIF9idF9idWlsZF9jYWxsYmFjaywKIAkJ CQkJCQkJCSAgICZidWlsZHN0YXRlLCBzY2FuKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90YWJsZS90YWJsZWFtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5j CmluZGV4IGRmZGExYWY0MTJlLi43YTEyZTgwOGIwNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL3RhYmxlL3RhYmxlYW0uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFi bGVhbS5jCkBAIC0xMTgsNyArMTE4LDcgQEAgdGFibGVfYmVnaW5zY2FuX2NhdGFsb2coUmVsYXRp b24gcmVsYXRpb24sIGludCBua2V5cywgU2NhbktleURhdGEgKmtleSkKIAlTbmFwc2hvdAlzbmFw c2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0Q2F0YWxvZ1NuYXBzaG90KHJlbGlkKSk7CiAKIAly ZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWxhdGlvbiwgc25hcHNob3QsIG5rZXlzLCBr ZXksCi0JCQkJCQkJCSAgTlVMTCwgZmxhZ3MpOworCQkJCQkJCQkgIE5VTEwsIGZsYWdzLCAwKTsK IH0KIAogCkBAIC0xNjMsMTAgKzE2MywxMCBAQCB0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6 ZShSZWxhdGlvbiByZWwsIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKIH0KIAogVGFibGVT Y2FuRGVzYwotdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9uIHJlbGF0aW9uLCBQYXJh bGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCit0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRp b24gcmVsYXRpb24sIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwgdWludDMyIGZsYWdzKQog ewogCVNuYXBzaG90CXNuYXBzaG90OwotCXVpbnQzMgkJZmxhZ3MgPSBTT19UWVBFX1NFUVNDQU4g fAorCXVpbnQzMgkJaW50ZXJuYWxfZmxhZ3MgPSBTT19UWVBFX1NFUVNDQU4gfAogCQlTT19BTExP V19TVFJBVCB8IFNPX0FMTE9XX1NZTkMgfCBTT19BTExPV19QQUdFTU9ERTsKIAogCUFzc2VydChS ZWxGaWxlTG9jYXRvckVxdWFscyhyZWxhdGlvbi0+cmRfbG9jYXRvciwgcHNjYW4tPnBoc19sb2Nh dG9yKSk7CkBAIC0xNzYsNyArMTc2LDcgQEAgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0 aW9uIHJlbGF0aW9uLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCiAJCS8qIFNuYXBzaG90 IHdhcyBzZXJpYWxpemVkIC0tIHJlc3RvcmUgaXQgKi8KIAkJc25hcHNob3QgPSBSZXN0b3JlU25h cHNob3QoKGNoYXIgKikgcHNjYW4gKyBwc2Nhbi0+cGhzX3NuYXBzaG90X29mZik7CiAJCVJlZ2lz dGVyU25hcHNob3Qoc25hcHNob3QpOwotCQlmbGFncyB8PSBTT19URU1QX1NOQVBTSE9UOworCQlp bnRlcm5hbF9mbGFncyB8PSBTT19URU1QX1NOQVBTSE9UOwogCX0KIAllbHNlCiAJewpAQCAtMTg1 LDE2ICsxODUsMTcgQEAgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9uIHJlbGF0aW9u LCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCiAJfQogCiAJcmV0dXJuIHRhYmxlX2JlZ2lu c2Nhbl9jb21tb24ocmVsYXRpb24sIHNuYXBzaG90LCAwLCBOVUxMLAotCQkJCQkJCQkgIHBzY2Fu LCBmbGFncyk7CisJCQkJCQkJCSAgcHNjYW4sIGludGVybmFsX2ZsYWdzLCBmbGFncyk7CiB9CiAK IFRhYmxlU2NhbkRlc2MKIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF90aWRyYW5nZShSZWxhdGlv biByZWxhdGlvbiwKLQkJCQkJCQkJICBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCisJCQkJ CQkJCSAgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuLAorCQkJCQkJCQkgIHVpbnQzMiBmbGFn cykKIHsKIAlTbmFwc2hvdAlzbmFwc2hvdDsKLQl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9USURS QU5HRVNDQU4gfCBTT19BTExPV19QQUdFTU9ERTsKIAlUYWJsZVNjYW5EZXNjIHNzY2FuOworCXVp bnQzMgkJaW50ZXJuYWxfZmxhZ3MgPSBTT19UWVBFX1RJRFJBTkdFU0NBTiB8IFNPX0FMTE9XX1BB R0VNT0RFOwogCiAJQXNzZXJ0KFJlbEZpbGVMb2NhdG9yRXF1YWxzKHJlbGF0aW9uLT5yZF9sb2Nh dG9yLCBwc2Nhbi0+cGhzX2xvY2F0b3IpKTsKIApAQCAtMjA2LDcgKzIwNyw3IEBAIHRhYmxlX2Jl Z2luc2Nhbl9wYXJhbGxlbF90aWRyYW5nZShSZWxhdGlvbiByZWxhdGlvbiwKIAkJLyogU25hcHNo b3Qgd2FzIHNlcmlhbGl6ZWQgLS0gcmVzdG9yZSBpdCAqLwogCQlzbmFwc2hvdCA9IFJlc3RvcmVT bmFwc2hvdCgoY2hhciAqKSBwc2NhbiArIHBzY2FuLT5waHNfc25hcHNob3Rfb2ZmKTsKIAkJUmVn aXN0ZXJTbmFwc2hvdChzbmFwc2hvdCk7Ci0JCWZsYWdzIHw9IFNPX1RFTVBfU05BUFNIT1Q7CisJ CWludGVybmFsX2ZsYWdzIHw9IFNPX1RFTVBfU05BUFNIT1Q7CiAJfQogCWVsc2UKIAl7CkBAIC0y MTUsNyArMjE2LDcgQEAgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsX3RpZHJhbmdlKFJlbGF0aW9u IHJlbGF0aW9uLAogCX0KIAogCXNzY2FuID0gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWxhdGlv biwgc25hcHNob3QsIDAsIE5VTEwsCi0JCQkJCQkJCSAgIHBzY2FuLCBmbGFncyk7CisJCQkJCQkJ CSAgIHBzY2FuLCBpbnRlcm5hbF9mbGFncywgZmxhZ3MpOwogCXJldHVybiBzc2NhbjsKIH0KIApA QCAtMjQ4LDcgKzI0OSw3IEBAIHRhYmxlX2luZGV4X2ZldGNoX3R1cGxlX2NoZWNrKFJlbGF0aW9u IHJlbCwKIAlib29sCQlmb3VuZDsKIAogCXNsb3QgPSB0YWJsZV9zbG90X2NyZWF0ZShyZWwsIE5V TEwpOwotCXNjYW4gPSB0YWJsZV9pbmRleF9mZXRjaF9iZWdpbihyZWwpOworCXNjYW4gPSB0YWJs ZV9pbmRleF9mZXRjaF9iZWdpbihyZWwsIDApOwogCWZvdW5kID0gdGFibGVfaW5kZXhfZmV0Y2hf dHVwbGUoc2NhbiwgdGlkLCBzbmFwc2hvdCwgc2xvdCwgJmNhbGxfYWdhaW4sCiAJCQkJCQkJCQlh bGxfZGVhZCk7CiAJdGFibGVfaW5kZXhfZmV0Y2hfZW5kKHNjYW4pOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29uc3RyYWludC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29u c3RyYWludC5jCmluZGV4IGNjMTFjNDdiNmYyLi4zN2NmYmQ2MzkzOCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29uc3RyYWludC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2NvbnN0cmFpbnQuYwpAQCAtMTA2LDcgKzEwNiw3IEBAIHVuaXF1ZV9rZXlfcmVjaGVjayhQR19G VU5DVElPTl9BUkdTKQogCSAqLwogCXRtcHRpZCA9IGNoZWNrdGlkOwogCXsKLQkJSW5kZXhGZXRj aFRhYmxlRGF0YSAqc2NhbiA9IHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKHRyaWdkYXRhLT50Z19y ZWxhdGlvbik7CisJCUluZGV4RmV0Y2hUYWJsZURhdGEgKnNjYW4gPSB0YWJsZV9pbmRleF9mZXRj aF9iZWdpbih0cmlnZGF0YS0+dGdfcmVsYXRpb24sIDApOwogCQlib29sCQljYWxsX2FnYWluID0g ZmFsc2U7CiAKIAkJaWYgKCF0YWJsZV9pbmRleF9mZXRjaF90dXBsZShzY2FuLCAmdG1wdGlkLCBT bmFwc2hvdFNlbGYsIHNsb3QsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5 dG8uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHl0by5jCmluZGV4IGZhZjYyZDk1OWI0Li4y OWQ3YzM1MTRiNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weXRvLmMKKysr IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weXRvLmMKQEAgLTEzMzYsNyArMTMzNiw3IEBAIENv cHlSZWxhdGlvblRvKENvcHlUb1N0YXRlIGNzdGF0ZSwgUmVsYXRpb24gcmVsLCBSZWxhdGlvbiBy b290X3JlbCwgdWludDY0ICpwcm9jCiAJQXR0ck1hcCAgICAqbWFwID0gTlVMTDsKIAlUdXBsZVRh YmxlU2xvdCAqcm9vdF9zbG90ID0gTlVMTDsKIAotCXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2Fu KHJlbCwgR2V0QWN0aXZlU25hcHNob3QoKSwgMCwgTlVMTCk7CisJc2NhbmRlc2MgPSB0YWJsZV9i ZWdpbnNjYW4ocmVsLCBHZXRBY3RpdmVTbmFwc2hvdCgpLCAwLCBOVUxMLCAwKTsKIAlzbG90ID0g dGFibGVfc2xvdF9jcmVhdGUocmVsLCBOVUxMKTsKIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jCmluZGV4IDIxOWY2MDRkZjdiLi5lYzliYmZlNTU0YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKQEAgLTY0MTEsNyArNjQxMSw3IEBAIEFUUmV3cml0ZVRhYmxlKEFsdGVyZWRUYWJsZUlu Zm8gKnRhYiwgT2lkIE9JRE5ld0hlYXApCiAJCSAqIGNoZWNraW5nIGFsbCB0aGUgY29uc3RyYWlu dHMuCiAJCSAqLwogCQlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0TGF0ZXN0U25hcHNo b3QoKSk7Ci0JCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ob2xkcmVsLCBzbmFwc2hvdCwgMCwgTlVM TCk7CisJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ob2xkcmVsLCBzbmFwc2hvdCwgMCwgTlVMTCwg MCk7CiAKIAkJLyoKIAkJICogU3dpdGNoIHRvIHBlci10dXBsZSBtZW1vcnkgY29udGV4dCBhbmQg cmVzZXQgaXQgZm9yIGVhY2ggdHVwbGUKQEAgLTEzOTgwLDcgKzEzOTgwLDcgQEAgdmFsaWRhdGVG b3JlaWduS2V5Q29uc3RyYWludChjaGFyICpjb25uYW1lLAogCSAqLwogCXNuYXBzaG90ID0gUmVn aXN0ZXJTbmFwc2hvdChHZXRMYXRlc3RTbmFwc2hvdCgpKTsKIAlzbG90ID0gdGFibGVfc2xvdF9j cmVhdGUocmVsLCBOVUxMKTsKLQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHJlbCwgc25hcHNob3Qs IDAsIE5VTEwpOworCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ocmVsLCBzbmFwc2hvdCwgMCwgTlVM TCwgMCk7CiAKIAlwZXJUdXBDeHQgPSBBbGxvY1NldENvbnRleHRDcmVhdGUoQ3VycmVudE1lbW9y eUNvbnRleHQsCiAJCQkJCQkJCQkgICJ2YWxpZGF0ZUZvcmVpZ25LZXlDb25zdHJhaW50IiwKQEAg LTIyODgyLDcgKzIyODgyLDcgQEAgTWVyZ2VQYXJ0aXRpb25zTW92ZVJvd3MoTGlzdCAqKndxdWV1 ZSwgTGlzdCAqbWVyZ2luZ1BhcnRpdGlvbnMsIFJlbGF0aW9uIG5ld1BhcnQKIAogCQkvKiBTY2Fu IHRocm91Z2ggdGhlIHJvd3MuICovCiAJCXNuYXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hvdChHZXRM YXRlc3RTbmFwc2hvdCgpKTsKLQkJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihtZXJnaW5nUGFydGl0 aW9uLCBzbmFwc2hvdCwgMCwgTlVMTCk7CisJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4obWVyZ2lu Z1BhcnRpdGlvbiwgc25hcHNob3QsIDAsIE5VTEwsIDApOwogCiAJCS8qCiAJCSAqIFN3aXRjaCB0 byBwZXItdHVwbGUgbWVtb3J5IGNvbnRleHQgYW5kIHJlc2V0IGl0IGZvciBlYWNoIHR1cGxlCkBA IC0yMzM0Niw3ICsyMzM0Niw3IEBAIFNwbGl0UGFydGl0aW9uTW92ZVJvd3MoTGlzdCAqKndxdWV1 ZSwgUmVsYXRpb24gcmVsLCBSZWxhdGlvbiBzcGxpdFJlbCwKIAogCS8qIFNjYW4gdGhyb3VnaCB0 aGUgcm93cy4gKi8KIAlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0TGF0ZXN0U25hcHNo b3QoKSk7Ci0Jc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihzcGxpdFJlbCwgc25hcHNob3QsIDAsIE5V TEwpOworCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4oc3BsaXRSZWwsIHNuYXBzaG90LCAwLCBOVUxM LCAwKTsKIAogCS8qCiAJICogU3dpdGNoIHRvIHBlci10dXBsZSBtZW1vcnkgY29udGV4dCBhbmQg cmVzZXQgaXQgZm9yIGVhY2ggdHVwbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3R5cGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmluZGV4IDNkYWI2 YmI1YTc5Li41MzE2Y2VhN2NlYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlw ZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCkBAIC0zMTg1LDcg KzMxODUsNyBAQCB2YWxpZGF0ZURvbWFpbk5vdE51bGxDb25zdHJhaW50KE9pZCBkb21haW5vaWQp CiAKIAkJLyogU2NhbiBhbGwgdHVwbGVzIGluIHRoaXMgcmVsYXRpb24gKi8KIAkJc25hcHNob3Qg PSBSZWdpc3RlclNuYXBzaG90KEdldExhdGVzdFNuYXBzaG90KCkpOwotCQlzY2FuID0gdGFibGVf YmVnaW5zY2FuKHRlc3RyZWwsIHNuYXBzaG90LCAwLCBOVUxMKTsKKwkJc2NhbiA9IHRhYmxlX2Jl Z2luc2Nhbih0ZXN0cmVsLCBzbmFwc2hvdCwgMCwgTlVMTCwgMCk7CiAJCXNsb3QgPSB0YWJsZV9z bG90X2NyZWF0ZSh0ZXN0cmVsLCBOVUxMKTsKIAkJd2hpbGUgKHRhYmxlX3NjYW5fZ2V0bmV4dHNs b3Qoc2NhbiwgRm9yd2FyZFNjYW5EaXJlY3Rpb24sIHNsb3QpKQogCQl7CkBAIC0zMjY2LDcgKzMy NjYsNyBAQCB2YWxpZGF0ZURvbWFpbkNoZWNrQ29uc3RyYWludChPaWQgZG9tYWlub2lkLCBjb25z dCBjaGFyICpjY2JpbiwgTE9DS01PREUgbG9ja21vZAogCiAJCS8qIFNjYW4gYWxsIHR1cGxlcyBp biB0aGlzIHJlbGF0aW9uICovCiAJCXNuYXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hvdChHZXRMYXRl c3RTbmFwc2hvdCgpKTsKLQkJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbih0ZXN0cmVsLCBzbmFwc2hv dCwgMCwgTlVMTCk7CisJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4odGVzdHJlbCwgc25hcHNob3Qs IDAsIE5VTEwsIDApOwogCQlzbG90ID0gdGFibGVfc2xvdF9jcmVhdGUodGVzdHJlbCwgTlVMTCk7 CiAJCXdoaWxlICh0YWJsZV9zY2FuX2dldG5leHRzbG90KHNjYW4sIEZvcndhcmRTY2FuRGlyZWN0 aW9uLCBzbG90KSkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0lu ZGV4aW5nLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcuYwppbmRleCA5ZDA3 MWU0OTVjNi4uYzQ2YmVlZGViNzEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNJbmRleGluZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jCkBA IC04MTUsNyArODE1LDggQEAgY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50KFJl bGF0aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LAogcmV0cnk6CiAJY29uZmxpY3QgPSBmYWxzZTsK IAlmb3VuZF9zZWxmID0gZmFsc2U7Ci0JaW5kZXhfc2NhbiA9IGluZGV4X2JlZ2luc2NhbihoZWFw LCBpbmRleCwgJkRpcnR5U25hcHNob3QsIE5VTEwsIGluZG5rZXlhdHRzLCAwKTsKKwlpbmRleF9z Y2FuID0gaW5kZXhfYmVnaW5zY2FuKGhlYXAsIGluZGV4LCAwLAkvKiBmbGFncyAqLworCQkJCQkJ CQkgJkRpcnR5U25hcHNob3QsIE5VTEwsIGluZG5rZXlhdHRzLCAwKTsKIAlpbmRleF9yZXNjYW4o aW5kZXhfc2Nhbiwgc2NhbmtleXMsIGluZG5rZXlhdHRzLCBOVUxMLCAwKTsKIAogCXdoaWxlIChp bmRleF9nZXRuZXh0X3Nsb3QoaW5kZXhfc2NhbiwgRm9yd2FyZFNjYW5EaXJlY3Rpb24sIGV4aXN0 aW5nX3Nsb3QpKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0 aW9uLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYwppbmRleCAyNDk3 ZWU3ZWRjNS4uMjM1MDk3NzE1NTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNSZXBsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlv bi5jCkBAIC0yMDUsNyArMjA1LDkgQEAgUmVsYXRpb25GaW5kUmVwbFR1cGxlQnlJbmRleChSZWxh dGlvbiByZWwsIE9pZCBpZHhvaWQsCiAJc2tleV9hdHRvZmYgPSBidWlsZF9yZXBsaW5kZXhfc2Nh bl9rZXkoc2tleSwgcmVsLCBpZHhyZWwsIHNlYXJjaHNsb3QpOwogCiAJLyogU3RhcnQgYW4gaW5k ZXggc2Nhbi4gKi8KLQlzY2FuID0gaW5kZXhfYmVnaW5zY2FuKHJlbCwgaWR4cmVsLCAmc25hcCwg TlVMTCwgc2tleV9hdHRvZmYsIDApOworCXNjYW4gPSBpbmRleF9iZWdpbnNjYW4ocmVsLCBpZHhy ZWwsCisJCQkJCQkgICAwLAkvKiBmbGFncyAqLworCQkJCQkJICAgJnNuYXAsIE5VTEwsIHNrZXlf YXR0b2ZmLCAwKTsKIAogcmV0cnk6CiAJZm91bmQgPSBmYWxzZTsKQEAgLTM4Myw3ICszODUsNyBA QCBSZWxhdGlvbkZpbmRSZXBsVHVwbGVTZXEoUmVsYXRpb24gcmVsLCBMb2NrVHVwbGVNb2RlIGxv Y2ttb2RlLAogCiAJLyogU3RhcnQgYSBoZWFwIHNjYW4uICovCiAJSW5pdERpcnR5U25hcHNob3Qo c25hcCk7Ci0Jc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihyZWwsICZzbmFwLCAwLCBOVUxMKTsKKwlz Y2FuID0gdGFibGVfYmVnaW5zY2FuKHJlbCwgJnNuYXAsIDAsIE5VTEwsIDApOwogCXNjYW5zbG90 ID0gdGFibGVfc2xvdF9jcmVhdGUocmVsLCBOVUxMKTsKIAogcmV0cnk6CkBAIC02MDIsNyArNjA0 LDcgQEAgUmVsYXRpb25GaW5kRGVsZXRlZFR1cGxlSW5mb1NlcShSZWxhdGlvbiByZWwsIFR1cGxl VGFibGVTbG90ICpzZWFyY2hzbG90LAogCSAqIG5vdCB5ZXQgY29tbWl0dGVkIG9yIHRob3NlIGp1 c3QgY29tbWl0dGVkIHByaW9yIHRvIHRoZSBzY2FuIGFyZQogCSAqIGV4Y2x1ZGVkIGluIHVwZGF0 ZV9tb3N0X3JlY2VudF9kZWxldGlvbl9pbmZvKCkuCiAJICovCi0Jc2NhbiA9IHRhYmxlX2JlZ2lu c2NhbihyZWwsIFNuYXBzaG90QW55LCAwLCBOVUxMKTsKKwlzY2FuID0gdGFibGVfYmVnaW5zY2Fu KHJlbCwgU25hcHNob3RBbnksIDAsIE5VTEwsIDApOwogCXNjYW5zbG90ID0gdGFibGVfc2xvdF9j cmVhdGUocmVsLCBOVUxMKTsKIAogCXRhYmxlX3Jlc2NhbihzY2FuLCBOVUxMKTsKQEAgLTY2Niw3 ICs2NjgsOSBAQCBSZWxhdGlvbkZpbmREZWxldGVkVHVwbGVJbmZvQnlJbmRleChSZWxhdGlvbiBy ZWwsIE9pZCBpZHhvaWQsCiAJICogbm90IHlldCBjb21taXR0ZWQgb3IgdGhvc2UganVzdCBjb21t aXR0ZWQgcHJpb3IgdG8gdGhlIHNjYW4gYXJlCiAJICogZXhjbHVkZWQgaW4gdXBkYXRlX21vc3Rf cmVjZW50X2RlbGV0aW9uX2luZm8oKS4KIAkgKi8KLQlzY2FuID0gaW5kZXhfYmVnaW5zY2FuKHJl bCwgaWR4cmVsLCBTbmFwc2hvdEFueSwgTlVMTCwgc2tleV9hdHRvZmYsIDApOworCXNjYW4gPSBp bmRleF9iZWdpbnNjYW4ocmVsLCBpZHhyZWwsCisJCQkJCQkgICAwLAkvKiBmbGFncyAqLworCQkJ CQkJICAgU25hcHNob3RBbnksIE5VTEwsIHNrZXlfYXR0b2ZmLCAwKTsKIAogCWluZGV4X3Jlc2Nh bihzY2FuLCBza2V5LCBza2V5X2F0dG9mZiwgTlVMTCwgMCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMKaW5kZXggN2NmOGQyM2M3NDIuLjMyNGUyYmVkMjJjIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYworKysg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYwpAQCAtMTQ4LDcgKzE0 OCw3IEBAIEJpdG1hcFRhYmxlU2NhblNldHVwKEJpdG1hcEhlYXBTY2FuU3RhdGUgKm5vZGUpCiAJ CQl0YWJsZV9iZWdpbnNjYW5fYm0obm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJ CSAgIG5vZGUtPnNzLnBzLnN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkgICAwLAotCQkJCQkJ CSAgIE5VTEwpOworCQkJCQkJCSAgIE5VTEwsIDApOwogCX0KIAogCW5vZGUtPnNzLnNzX2N1cnJl bnRTY2FuRGVzYy0+c3QucnNfdGJtaXRlcmF0b3IgPSB0Ym1pdGVyYXRvcjsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jCmluZGV4IGM4ZGIzNTdlNjlmLi5kZWNmZDc5Mjgw OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYwor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jCkBAIC05Miw2ICs5 Miw3IEBAIEluZGV4T25seU5leHQoSW5kZXhPbmx5U2NhblN0YXRlICpub2RlKQogCQkgKi8KIAkJ c2NhbmRlc2MgPSBpbmRleF9iZWdpbnNjYW4obm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAog CQkJCQkJCQkgICBub2RlLT5pb3NzX1JlbGF0aW9uRGVzYywKKwkJCQkJCQkJICAgMCwJLyogZmxh Z3MgKi8KIAkJCQkJCQkJICAgZXN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkJICAgJm5vZGUt Pmlvc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJICAgbm9kZS0+aW9zc19OdW1TY2FuS2V5cywKQEAg LTc5MCw3ICs3OTEsNyBAQCBFeGVjSW5kZXhPbmx5U2NhbkluaXRpYWxpemVEU00oSW5kZXhPbmx5 U2NhblN0YXRlICpub2RlLAogCQkJCQkJCQkgJm5vZGUtPmlvc3NfSW5zdHJ1bWVudCwKIAkJCQkJ CQkJIG5vZGUtPmlvc3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSBub2RlLT5pb3NzX051bU9yZGVy QnlLZXlzLAotCQkJCQkJCQkgcGlzY2FuKTsKKwkJCQkJCQkJIHBpc2NhbiwgMCk7CiAJbm9kZS0+ aW9zc19TY2FuRGVzYy0+eHNfd2FudF9pdHVwID0gdHJ1ZTsKIAlub2RlLT5pb3NzX1ZNQnVmZmVy ID0gSW52YWxpZEJ1ZmZlcjsKIApAQCAtODU2LDcgKzg1Nyw3IEBAIEV4ZWNJbmRleE9ubHlTY2Fu SW5pdGlhbGl6ZVdvcmtlcihJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkJCSAmbm9k ZS0+aW9zc19JbnN0cnVtZW50LAogCQkJCQkJCQkgbm9kZS0+aW9zc19OdW1TY2FuS2V5cywKIAkJ CQkJCQkJIG5vZGUtPmlvc3NfTnVtT3JkZXJCeUtleXMsCi0JCQkJCQkJCSBwaXNjYW4pOworCQkJ CQkJCQkgcGlzY2FuLCAwKTsKIAlub2RlLT5pb3NzX1NjYW5EZXNjLT54c193YW50X2l0dXAgPSB0 cnVlOwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNj YW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYwppbmRleCBiZDgzZTQ3 MTJiMy4uYTM3ZmE5YWJlY2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJ bmRleHNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKQEAg LTExMCw2ICsxMTAsNyBAQCBJbmRleE5leHQoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAJCSAqLwog CQlzY2FuZGVzYyA9IGluZGV4X2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24s CiAJCQkJCQkJCSAgIG5vZGUtPmlzc19SZWxhdGlvbkRlc2MsCisJCQkJCQkJCSAgIDAsCS8qIGZs YWdzICovCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgICZub2Rl LT5pc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJICAgbm9kZS0+aXNzX051bVNjYW5LZXlzLApAQCAt MjA2LDYgKzIwNyw3IEBAIEluZGV4TmV4dFdpdGhSZW9yZGVyKEluZGV4U2NhblN0YXRlICpub2Rl KQogCQkgKi8KIAkJc2NhbmRlc2MgPSBpbmRleF9iZWdpbnNjYW4obm9kZS0+c3Muc3NfY3VycmVu dFJlbGF0aW9uLAogCQkJCQkJCQkgICBub2RlLT5pc3NfUmVsYXRpb25EZXNjLAorCQkJCQkJCQkg ICAwLAkvKiBmbGFncyAqLwogCQkJCQkJCQkgICBlc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJ CQkgICAmbm9kZS0+aXNzX0luc3RydW1lbnQsCiAJCQkJCQkJCSAgIG5vZGUtPmlzc19OdW1TY2Fu S2V5cywKQEAgLTE3MjYsNyArMTcyOCw3IEBAIEV4ZWNJbmRleFNjYW5Jbml0aWFsaXplRFNNKElu ZGV4U2NhblN0YXRlICpub2RlLAogCQkJCQkJCQkgJm5vZGUtPmlzc19JbnN0cnVtZW50LAogCQkJ CQkJCQkgbm9kZS0+aXNzX051bVNjYW5LZXlzLAogCQkJCQkJCQkgbm9kZS0+aXNzX051bU9yZGVy QnlLZXlzLAotCQkJCQkJCQkgcGlzY2FuKTsKKwkJCQkJCQkJIHBpc2NhbiwgMCk7CiAKIAkvKgog CSAqIElmIG5vIHJ1bi10aW1lIGtleXMgdG8gY2FsY3VsYXRlIG9yIHRoZXkgYXJlIHJlYWR5LCBn byBhaGVhZCBhbmQgcGFzcwpAQCAtMTc5MCw3ICsxNzkyLDcgQEAgRXhlY0luZGV4U2NhbkluaXRp YWxpemVXb3JrZXIoSW5kZXhTY2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkJCSAmbm9kZS0+aXNzX0lu c3RydW1lbnQsCiAJCQkJCQkJCSBub2RlLT5pc3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSBub2Rl LT5pc3NfTnVtT3JkZXJCeUtleXMsCi0JCQkJCQkJCSBwaXNjYW4pOworCQkJCQkJCQkgcGlzY2Fu LCAwKTsKIAogCS8qCiAJICogSWYgbm8gcnVuLXRpbWUga2V5cyB0byBjYWxjdWxhdGUgb3IgdGhl eSBhcmUgcmVhZHksIGdvIGFoZWFkIGFuZCBwYXNzCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlU2FtcGxlc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNhbXBs ZXNjYW4uYwppbmRleCA2YjBkNjVmNzUyZi4uY2M2YjIzYWJlZTAgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZVNhbXBsZXNjYW4uYwpAQCAtMjk4LDcgKzI5OCw3IEBAIHRhYmxlc2FtcGxlX2luaXQo U2FtcGxlU2NhblN0YXRlICpzY2Fuc3RhdGUpCiAJCQkJCQkJCQkgMCwgTlVMTCwKIAkJCQkJCQkJ CSBzY2Fuc3RhdGUtPnVzZV9idWxrcmVhZCwKIAkJCQkJCQkJCSBhbGxvd19zeW5jLAotCQkJCQkJ CQkJIHNjYW5zdGF0ZS0+dXNlX3BhZ2Vtb2RlKTsKKwkJCQkJCQkJCSBzY2Fuc3RhdGUtPnVzZV9w YWdlbW9kZSwgMCk7CiAJfQogCWVsc2UKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlU2Vxc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYwpp bmRleCA4ZjIxOWY2MGE5My4uYzJkOWI3MjkzZGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVTZXFzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNj YW4uYwpAQCAtNzEsNyArNzEsNyBAQCBTZXFOZXh0KFNlcVNjYW5TdGF0ZSAqbm9kZSkKIAkJICov CiAJCXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2FuKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlv biwKIAkJCQkJCQkJICAgZXN0YXRlLT5lc19zbmFwc2hvdCwKLQkJCQkJCQkJICAgMCwgTlVMTCk7 CisJCQkJCQkJCSAgIDAsIE5VTEwsIDApOwogCQlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2Mg PSBzY2FuZGVzYzsKIAl9CiAKQEAgLTM3NSw3ICszNzUsNyBAQCBFeGVjU2VxU2NhbkluaXRpYWxp emVEU00oU2VxU2NhblN0YXRlICpub2RlLAogCQkJCQkJCQkgIGVzdGF0ZS0+ZXNfc25hcHNob3Qp OwogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2Rl X2lkLCBwc2Nhbik7CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KLQkJdGFibGVfYmVn aW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4pOworCQl0 YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLCBwc2Nh biwgMCk7CiB9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQwOCw1ICs0MDgsNSBAQCBFeGVjU2VxU2Nhbklu aXRpYWxpemVXb3JrZXIoU2VxU2NhblN0YXRlICpub2RlLAogCiAJcHNjYW4gPSBzaG1fdG9jX2xv b2t1cChwd2N4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQsIGZhbHNlKTsK IAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQotCQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxs ZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLCBwc2Nhbik7CisJCXRhYmxlX2JlZ2luc2Nh bl9wYXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuLCAwKTsKIH0KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNjYW4uYyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNjYW4uYwppbmRleCA2MTc3MTNiZGUwNC4uOTk0 ZjcwOTg5YmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNj YW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMKQEAgLTI0 NSw3ICsyNDUsNyBAQCBUaWRSYW5nZU5leHQoVGlkUmFuZ2VTY2FuU3RhdGUgKm5vZGUpCiAJCQlz Y2FuZGVzYyA9IHRhYmxlX2JlZ2luc2Nhbl90aWRyYW5nZShub2RlLT5zcy5zc19jdXJyZW50UmVs YXRpb24sCiAJCQkJCQkJCQkJCQllc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCQkJCQkJJm5v ZGUtPnRyc3NfbWludGlkLAotCQkJCQkJCQkJCQkJJm5vZGUtPnRyc3NfbWF4dGlkKTsKKwkJCQkJ CQkJCQkJCSZub2RlLT50cnNzX21heHRpZCwgMCk7CiAJCQlub2RlLT5zcy5zc19jdXJyZW50U2Nh bkRlc2MgPSBzY2FuZGVzYzsKIAkJfQogCQllbHNlCkBAIC00NjAsNyArNDYwLDcgQEAgRXhlY1Rp ZFJhbmdlU2NhbkluaXRpYWxpemVEU00oVGlkUmFuZ2VTY2FuU3RhdGUgKm5vZGUsIFBhcmFsbGVs Q29udGV4dCAqcGN4dCkKIAlzaG1fdG9jX2luc2VydChwY3h0LT50b2MsIG5vZGUtPnNzLnBzLnBs YW4tPnBsYW5fbm9kZV9pZCwgcHNjYW4pOwogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9 CiAJCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF90aWRyYW5nZShub2RlLT5zcy5zc19jdXJyZW50 UmVsYXRpb24sCi0JCQkJCQkJCQkJICBwc2Nhbik7CisJCQkJCQkJCQkJICBwc2NhbiwgMCk7CiB9 CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KQEAgLTQ5NCw1ICs0OTQsNSBAQCBFeGVjVGlkUmFuZ2VTY2FuSW5pdGlh bGl6ZVdvcmtlcihUaWRSYW5nZVNjYW5TdGF0ZSAqbm9kZSwKIAlwc2NhbiA9IHNobV90b2NfbG9v a3VwKHB3Y3h0LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCwgZmFsc2UpOwog CW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9CiAJCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxl bF90aWRyYW5nZShub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCi0JCQkJCQkJCQkJICBwc2Nh bik7CisJCQkJCQkJCQkJICBwc2NhbiwgMCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJ0aXRpb25pbmcvcGFydGJvdW5kcy5jIGIvc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3BhcnRi b3VuZHMuYwppbmRleCAwY2EzMTJhYzI3ZC4uYjdjNGU2ZDEwNzEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFydGl0 aW9uaW5nL3BhcnRib3VuZHMuYwpAQCAtMzM2Miw3ICszMzYyLDcgQEAgY2hlY2tfZGVmYXVsdF9w YXJ0aXRpb25fY29udGVudHMoUmVsYXRpb24gcGFyZW50LCBSZWxhdGlvbiBkZWZhdWx0X3JlbCwK IAkJZWNvbnRleHQgPSBHZXRQZXJUdXBsZUV4cHJDb250ZXh0KGVzdGF0ZSk7CiAJCXNuYXBzaG90 ID0gUmVnaXN0ZXJTbmFwc2hvdChHZXRMYXRlc3RTbmFwc2hvdCgpKTsKIAkJdHVwc2xvdCA9IHRh YmxlX3Nsb3RfY3JlYXRlKHBhcnRfcmVsLCAmZXN0YXRlLT5lc190dXBsZVRhYmxlKTsKLQkJc2Nh biA9IHRhYmxlX2JlZ2luc2NhbihwYXJ0X3JlbCwgc25hcHNob3QsIDAsIE5VTEwpOworCQlzY2Fu ID0gdGFibGVfYmVnaW5zY2FuKHBhcnRfcmVsLCBzbmFwc2hvdCwgMCwgTlVMTCwgMCk7CiAKIAkJ LyoKIAkJICogU3dpdGNoIHRvIHBlci10dXBsZSBtZW1vcnkgY29udGV4dCBhbmQgcmVzZXQgaXQg Zm9yIGVhY2ggdHVwbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9zZWxmdW5j cy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMKaW5kZXggNTNmODVjY2RlMDEu LjA1MjhmODE2NmQ4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvc2VsZnVuY3Mu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvc2VsZnVuY3MuYwpAQCAtNzE3Nyw2ICs3MTc3 LDcgQEAgZ2V0X2FjdHVhbF92YXJpYWJsZV9lbmRwb2ludChSZWxhdGlvbiBoZWFwUmVsLAogCQkJ CQkJCSAgR2xvYmFsVmlzVGVzdEZvcihoZWFwUmVsKSk7CiAKIAlpbmRleF9zY2FuID0gaW5kZXhf YmVnaW5zY2FuKGhlYXBSZWwsIGluZGV4UmVsLAorCQkJCQkJCQkgMCwgLyogZmxhZ3MgKi8KIAkJ CQkJCQkJICZTbmFwc2hvdE5vblZhY3V1bWFibGUsIE5VTEwsCiAJCQkJCQkJCSAxLCAwKTsKIAkv KiBTZXQgaXQgdXAgZm9yIGluZGV4LW9ubHkgc2NhbiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvYWNjZXNzL2dlbmFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaAppbmRleCAxYTI3 YmYwNjBiMy4uYjk4YzIwYTBlZGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9nZW5h bS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9nZW5hbS5oCkBAIC0xNTYsNiArMTU2LDcgQEAg ZXh0ZXJuIHZvaWQgaW5kZXhfaW5zZXJ0X2NsZWFudXAoUmVsYXRpb24gaW5kZXhSZWxhdGlvbiwK IAogZXh0ZXJuIEluZGV4U2NhbkRlc2MgaW5kZXhfYmVnaW5zY2FuKFJlbGF0aW9uIGhlYXBSZWxh dGlvbiwKIAkJCQkJCQkJCSBSZWxhdGlvbiBpbmRleFJlbGF0aW9uLAorCQkJCQkJCQkJIHVpbnQz MiBmbGFncywKIAkJCQkJCQkJCSBTbmFwc2hvdCBzbmFwc2hvdCwKIAkJCQkJCQkJCSBJbmRleFNj YW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCiAJCQkJCQkJCQkgaW50IG5rZXlzLCBpbnQg bm9yZGVyYnlzKTsKQEAgLTE4NCw3ICsxODUsOCBAQCBleHRlcm4gSW5kZXhTY2FuRGVzYyBpbmRl eF9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gaGVhcHJlbCwKIAkJCQkJCQkJCQkJICBSZWxh dGlvbiBpbmRleHJlbCwKIAkJCQkJCQkJCQkJICBJbmRleFNjYW5JbnN0cnVtZW50YXRpb24gKmlu c3RydW1lbnQsCiAJCQkJCQkJCQkJCSAgaW50IG5rZXlzLCBpbnQgbm9yZGVyYnlzLAotCQkJCQkJ CQkJCQkgIFBhcmFsbGVsSW5kZXhTY2FuRGVzYyBwc2Nhbik7CisJCQkJCQkJCQkJCSAgUGFyYWxs ZWxJbmRleFNjYW5EZXNjIHBzY2FuLAorCQkJCQkJCQkJCQkgIHVpbnQzMiBmbGFncyk7CiBleHRl cm4gSXRlbVBvaW50ZXIgaW5kZXhfZ2V0bmV4dF90aWQoSW5kZXhTY2FuRGVzYyBzY2FuLAogCQkJ CQkJCQkJIFNjYW5EaXJlY3Rpb24gZGlyZWN0aW9uKTsKIGV4dGVybiBib29sIGluZGV4X2ZldGNo X2hlYXAoSW5kZXhTY2FuRGVzYyBzY2FuLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCk7CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVh cGFtLmgKaW5kZXggZTEyM2RkYTA5MGYuLmM2YWVjNjNhNTA1IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9hY2Nlc3MvaGVhcGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBA IC05NSwxMCArOTUsNyBAQCB0eXBlZGVmIHN0cnVjdCBIZWFwU2NhbkRlc2NEYXRhCiAJICovCiAJ UGFyYWxsZWxCbG9ja1RhYmxlU2NhbldvcmtlckRhdGEgKnJzX3BhcmFsbGVsd29ya2VyZGF0YTsK IAotCS8qCi0JICogRm9yIHNlcXVlbnRpYWwgc2NhbnMgYW5kIGJpdG1hcCBoZWFwIHNjYW5zLiBU aGUgY3VycmVudCBoZWFwIGJsb2NrJ3MKLQkgKiBjb3JyZXNwb25kaW5nIHBhZ2UgaW4gdGhlIHZp c2liaWxpdHkgbWFwLgotCSAqLworCS8qIEN1cnJlbnQgaGVhcCBibG9jaydzIGNvcnJlc3BvbmRp bmcgcGFnZSBpbiB0aGUgdmlzaWJpbGl0eSBtYXAgKi8KIAlCdWZmZXIJCXJzX3ZtYnVmZmVyOwog CiAJLyogdGhlc2UgZmllbGRzIG9ubHkgdXNlZCBpbiBwYWdlLWF0LWEtdGltZSBtb2RlIGFuZCBm b3IgYml0bWFwIHNjYW5zICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvcmVsc2Nh bi5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3JlbHNjYW4uaAppbmRleCBjZTM0MGMwNzZmOC4uODBl YTBiNDM3ZDEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmgKKysrIGIv c3JjL2luY2x1ZGUvYWNjZXNzL3JlbHNjYW4uaApAQCAtMTIyLDYgKzEyMiw3IEBAIHR5cGVkZWYg c3RydWN0IFBhcmFsbGVsQmxvY2tUYWJsZVNjYW5Xb3JrZXJEYXRhICpQYXJhbGxlbEJsb2NrVGFi bGVTY2FuV29ya2VyOwogdHlwZWRlZiBzdHJ1Y3QgSW5kZXhGZXRjaFRhYmxlRGF0YQogewogCVJl bGF0aW9uCXJlbDsKKwl1aW50MzIJCWZsYWdzOwogfSBJbmRleEZldGNoVGFibGVEYXRhOwogCiBz dHJ1Y3QgSW5kZXhTY2FuSW5zdHJ1bWVudGF0aW9uOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv YWNjZXNzL3RhYmxlYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKaW5kZXggMDYw ODQ3NTIyNDUuLjgzNTdkMDVkODNiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFi bGVhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKQEAgLTY1LDYgKzY1LDE2 IEBAIHR5cGVkZWYgZW51bSBTY2FuT3B0aW9ucwogCVNPX1RFTVBfU05BUFNIT1QgPSAxIDw8IDks CiB9CQkJU2Nhbk9wdGlvbnM7CiAKKy8qCisgKiBNYXNrIG9mIGZsYWdzIHRoYXQgYXJlIHNldCBp bnRlcm5hbGx5IGJ5IHRoZSB0YWJsZV9iZWdpbnNjYW5fKiBmdW5jdGlvbnMKKyAqIGFuZCBtdXN0 IG5vdCBiZSBwYXNzZWQgYnkgY2FsbGVycy4KKyAqLworI2RlZmluZSBTT19JTlRFUk5BTF9GTEFH UyBcCisJKFNPX1RZUEVfU0VRU0NBTiB8IFNPX1RZUEVfQklUTUFQU0NBTiB8IFNPX1RZUEVfU0FN UExFU0NBTiB8IFwKKwkgU09fVFlQRV9USURTQ0FOIHwgU09fVFlQRV9USURSQU5HRVNDQU4gfCBT T19UWVBFX0FOQUxZWkUgfCBcCisJIFNPX0FMTE9XX1NUUkFUIHwgU09fQUxMT1dfU1lOQyB8IFNP X0FMTE9XX1BBR0VNT0RFIHwgXAorCSBTT19URU1QX1NOQVBTSE9UKQorCiAvKgogICogUmVzdWx0 IGNvZGVzIGZvciB0YWJsZV97dXBkYXRlLGRlbGV0ZSxsb2NrX3R1cGxlfSwgYW5kIGZvciB2aXNp YmlsaXR5CiAgKiByb3V0aW5lcyBpbnNpZGUgdGFibGUgQU1zLgpAQCAtNDIwLDcgKzQzMCw3IEBA IHR5cGVkZWYgc3RydWN0IFRhYmxlQW1Sb3V0aW5lCiAJICoKIAkgKiBUdXBsZXMgZm9yIGFuIGlu ZGV4IHNjYW4gY2FuIHRoZW4gYmUgZmV0Y2hlZCB2aWEgaW5kZXhfZmV0Y2hfdHVwbGUuCiAJICov Ci0Jc3RydWN0IEluZGV4RmV0Y2hUYWJsZURhdGEgKigqaW5kZXhfZmV0Y2hfYmVnaW4pIChSZWxh dGlvbiByZWwpOworCXN0cnVjdCBJbmRleEZldGNoVGFibGVEYXRhICooKmluZGV4X2ZldGNoX2Jl Z2luKSAoUmVsYXRpb24gcmVsLCB1aW50MzIgZmxhZ3MpOwogCiAJLyoKIAkgKiBSZXNldCBpbmRl eCBmZXRjaC4gVHlwaWNhbGx5IHRoaXMgd2lsbCByZWxlYXNlIGNyb3NzIGluZGV4IGZldGNoCkBA IC04NzEsMTIgKzg4MSwxOCBAQCBleHRlcm4gVHVwbGVUYWJsZVNsb3QgKnRhYmxlX3Nsb3RfY3Jl YXRlKFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICoqcmVnbGlzdCk7CiAgKiBBIHdyYXBwZXIgYXJv dW5kIHRoZSBUYWJsZSBBY2Nlc3MgTWV0aG9kIHNjYW5fYmVnaW4gY2FsbGJhY2ssIHRvIGNlbnRy YWxpemUKICAqIGVycm9yIGNoZWNraW5nLiBBbGwgY2FsbHMgdG8gLT5zY2FuX2JlZ2luKCkgc2hv dWxkIGdvIHRocm91Z2ggdGhpcwogICogZnVuY3Rpb24uCisgKgorICogVGhlIGNhbGxlci1wcm92 aWRlZCB1c2VyX2ZsYWdzIGFyZSB2YWxpZGF0ZWQgYWdhaW5zdCBTT19JTlRFUk5BTF9GTEFHUyB0 bworICogY2F0Y2ggY2FsbGVycyB0aGF0IGFjY2lkZW50YWxseSBwYXNzIHNjYW4tdHlwZSBvciBv dGhlciBpbnRlcm5hbCBmbGFncy4KICAqLwogc3RhdGljIFRhYmxlU2NhbkRlc2MKIHRhYmxlX2Jl Z2luc2Nhbl9jb21tb24oUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwgaW50IG5rZXlz LAogCQkJCQkgICBTY2FuS2V5RGF0YSAqa2V5LCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4s Ci0JCQkJCSAgIHVpbnQzMiBmbGFncykKKwkJCQkJICAgdWludDMyIGZsYWdzLCB1aW50MzIgdXNl cl9mbGFncykKIHsKKwlBc3NlcnQoKHVzZXJfZmxhZ3MgJiBTT19JTlRFUk5BTF9GTEFHUykgPT0g MCk7CisJZmxhZ3MgfD0gdXNlcl9mbGFnczsKKwogCS8qCiAJICogV2UgZG9uJ3QgYWxsb3cgc2Nh bnMgdG8gYmUgc3RhcnRlZCB3aGlsZSBDaGVja1hpZEFsaXZlIGlzIHNldCwgZXhjZXB0CiAJICog dmlhIHN5c3RhYmxlX2JlZ2luc2NhbigpIGV0IGFsLiAgU2VlIGRldGFpbGVkIGNvbW1lbnRzIGlu IHhhY3QuYyB3aGVyZQpAQCAtODk0LDEyICs5MTAsMTMgQEAgdGFibGVfYmVnaW5zY2FuX2NvbW1v bihSZWxhdGlvbiByZWwsIFNuYXBzaG90IHNuYXBzaG90LCBpbnQgbmtleXMsCiAgKi8KIHN0YXRp YyBpbmxpbmUgVGFibGVTY2FuRGVzYwogdGFibGVfYmVnaW5zY2FuKFJlbGF0aW9uIHJlbCwgU25h cHNob3Qgc25hcHNob3QsCi0JCQkJaW50IG5rZXlzLCBTY2FuS2V5RGF0YSAqa2V5KQorCQkJCWlu dCBua2V5cywgU2NhbktleURhdGEgKmtleSwgdWludDMyIGZsYWdzKQogewotCXVpbnQzMgkJZmxh Z3MgPSBTT19UWVBFX1NFUVNDQU4gfAorCXVpbnQzMgkJaW50ZXJuYWxfZmxhZ3MgPSBTT19UWVBF X1NFUVNDQU4gfAogCQlTT19BTExPV19TVFJBVCB8IFNPX0FMTE9XX1NZTkMgfCBTT19BTExPV19Q QUdFTU9ERTsKIAotCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwgc25hcHNob3Qs IG5rZXlzLCBrZXksIE5VTEwsIGZsYWdzKTsKKwlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1v bihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5LCBOVUxMLAorCQkJCQkJCQkgIGludGVybmFsX2Zs YWdzLCBmbGFncyk7CiB9CiAKIC8qCkBAIC05MjgsNyArOTQ1LDcgQEAgdGFibGVfYmVnaW5zY2Fu X3N0cmF0KFJlbGF0aW9uIHJlbCwgU25hcHNob3Qgc25hcHNob3QsCiAJaWYgKGFsbG93X3N5bmMp CiAJCWZsYWdzIHw9IFNPX0FMTE9XX1NZTkM7CiAKLQlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2Nv bW1vbihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5LCBOVUxMLCBmbGFncyk7CisJcmV0dXJuIHRh YmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBzbmFwc2hvdCwgbmtleXMsIGtleSwgTlVMTCwgZmxh Z3MsIDApOwogfQogCiAvKgpAQCAtOTM5LDExICs5NTYsMTIgQEAgdGFibGVfYmVnaW5zY2FuX3N0 cmF0KFJlbGF0aW9uIHJlbCwgU25hcHNob3Qgc25hcHNob3QsCiAgKi8KIHN0YXRpYyBpbmxpbmUg VGFibGVTY2FuRGVzYwogdGFibGVfYmVnaW5zY2FuX2JtKFJlbGF0aW9uIHJlbCwgU25hcHNob3Qg c25hcHNob3QsCi0JCQkJICAgaW50IG5rZXlzLCBTY2FuS2V5RGF0YSAqa2V5KQorCQkJCSAgIGlu dCBua2V5cywgU2NhbktleURhdGEgKmtleSwgdWludDMyIGZsYWdzKQogewotCXVpbnQzMgkJZmxh Z3MgPSBTT19UWVBFX0JJVE1BUFNDQU4gfCBTT19BTExPV19QQUdFTU9ERTsKKwl1aW50MzIJCWlu dGVybmFsX2ZsYWdzID0gU09fVFlQRV9CSVRNQVBTQ0FOIHwgU09fQUxMT1dfUEFHRU1PREU7CiAK LQlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5 LCBOVUxMLCBmbGFncyk7CisJcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBzbmFw c2hvdCwgbmtleXMsIGtleSwgTlVMTCwKKwkJCQkJCQkJICBpbnRlcm5hbF9mbGFncywgZmxhZ3Mp OwogfQogCiAvKgpAQCAtOTU3LDE4ICs5NzUsMTkgQEAgc3RhdGljIGlubGluZSBUYWJsZVNjYW5E ZXNjCiB0YWJsZV9iZWdpbnNjYW5fc2FtcGxpbmcoUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFw c2hvdCwKIAkJCQkJCSBpbnQgbmtleXMsIFNjYW5LZXlEYXRhICprZXksCiAJCQkJCQkgYm9vbCBh bGxvd19zdHJhdCwgYm9vbCBhbGxvd19zeW5jLAotCQkJCQkJIGJvb2wgYWxsb3dfcGFnZW1vZGUp CisJCQkJCQkgYm9vbCBhbGxvd19wYWdlbW9kZSwgdWludDMyIGZsYWdzKQogewotCXVpbnQzMgkJ ZmxhZ3MgPSBTT19UWVBFX1NBTVBMRVNDQU47CisJdWludDMyCQlpbnRlcm5hbF9mbGFncyA9IFNP X1RZUEVfU0FNUExFU0NBTjsKIAogCWlmIChhbGxvd19zdHJhdCkKLQkJZmxhZ3MgfD0gU09fQUxM T1dfU1RSQVQ7CisJCWludGVybmFsX2ZsYWdzIHw9IFNPX0FMTE9XX1NUUkFUOwogCWlmIChhbGxv d19zeW5jKQotCQlmbGFncyB8PSBTT19BTExPV19TWU5DOworCQlpbnRlcm5hbF9mbGFncyB8PSBT T19BTExPV19TWU5DOwogCWlmIChhbGxvd19wYWdlbW9kZSkKLQkJZmxhZ3MgfD0gU09fQUxMT1df UEFHRU1PREU7CisJCWludGVybmFsX2ZsYWdzIHw9IFNPX0FMTE9XX1BBR0VNT0RFOwogCi0JcmV0 dXJuIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBzbmFwc2hvdCwgbmtleXMsIGtleSwgTlVM TCwgZmxhZ3MpOworCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwgc25hcHNob3Qs IG5rZXlzLCBrZXksIE5VTEwsCisJCQkJCQkJCSAgaW50ZXJuYWxfZmxhZ3MsIGZsYWdzKTsKIH0K IAogLyoKQEAgLTk4MSw3ICsxMDAwLDcgQEAgdGFibGVfYmVnaW5zY2FuX3RpZChSZWxhdGlvbiBy ZWwsIFNuYXBzaG90IHNuYXBzaG90KQogewogCXVpbnQzMgkJZmxhZ3MgPSBTT19UWVBFX1RJRFND QU47CiAKLQlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCAwLCBO VUxMLCBOVUxMLCBmbGFncyk7CisJcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBz bmFwc2hvdCwgMCwgTlVMTCwgTlVMTCwgZmxhZ3MsIDApOwogfQogCiAvKgpAQCAtOTk0LDcgKzEw MTMsNyBAQCB0YWJsZV9iZWdpbnNjYW5fYW5hbHl6ZShSZWxhdGlvbiByZWwpCiB7CiAJdWludDMy CQlmbGFncyA9IFNPX1RZUEVfQU5BTFlaRTsKIAotCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29t bW9uKHJlbCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgZmxhZ3MpOworCXJldHVybiB0YWJsZV9iZWdp bnNjYW5fY29tbW9uKHJlbCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgZmxhZ3MsIDApOwogfQogCiAv KgpAQCAtMTA1OSwxMiArMTA3OCwxMyBAQCB0YWJsZV9zY2FuX2dldG5leHRzbG90KFRhYmxlU2Nh bkRlc2Mgc3NjYW4sIFNjYW5EaXJlY3Rpb24gZGlyZWN0aW9uLCBUdXBsZVRhYmxlUwogc3RhdGlj IGlubGluZSBUYWJsZVNjYW5EZXNjCiB0YWJsZV9iZWdpbnNjYW5fdGlkcmFuZ2UoUmVsYXRpb24g cmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKIAkJCQkJCSBJdGVtUG9pbnRlciBtaW50aWQsCi0JCQkJ CQkgSXRlbVBvaW50ZXIgbWF4dGlkKQorCQkJCQkJIEl0ZW1Qb2ludGVyIG1heHRpZCwgdWludDMy IGZsYWdzKQogewogCVRhYmxlU2NhbkRlc2Mgc3NjYW47Ci0JdWludDMyCQlmbGFncyA9IFNPX1RZ UEVfVElEUkFOR0VTQ0FOIHwgU09fQUxMT1dfUEFHRU1PREU7CisJdWludDMyCQlpbnRlcm5hbF9m bGFncyA9IFNPX1RZUEVfVElEUkFOR0VTQ0FOIHwgU09fQUxMT1dfUEFHRU1PREU7CiAKLQlzc2Nh biA9IHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBzbmFwc2hvdCwgMCwgTlVMTCwgTlVMTCwg ZmxhZ3MpOworCXNzY2FuID0gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCAw LCBOVUxMLCBOVUxMLAorCQkJCQkJCQkgICBpbnRlcm5hbF9mbGFncywgZmxhZ3MpOwogCiAJLyog U2V0IHRoZSByYW5nZSBvZiBUSURzIHRvIHNjYW4gKi8KIAlzc2Nhbi0+cnNfcmQtPnJkX3RhYmxl YW0tPnNjYW5fc2V0X3RpZHJhbmdlKHNzY2FuLCBtaW50aWQsIG1heHRpZCk7CkBAIC0xMTM5LDcg KzExNTksOCBAQCBleHRlcm4gdm9pZCB0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZShSZWxh dGlvbiByZWwsCiAgKiBDYWxsZXIgbXVzdCBob2xkIGEgc3VpdGFibGUgbG9jayBvbiB0aGUgcmVs YXRpb24uCiAgKi8KIGV4dGVybiBUYWJsZVNjYW5EZXNjIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxl bChSZWxhdGlvbiByZWxhdGlvbiwKLQkJCQkJCQkJCQkJICBQYXJhbGxlbFRhYmxlU2NhbkRlc2Mg cHNjYW4pOworCQkJCQkJCQkJCQkgIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKKwkJCQkJ CQkJCQkJICB1aW50MzIgZmxhZ3MpOwogCiAvKgogICogQmVnaW4gYSBwYXJhbGxlbCB0aWQgcmFu Z2Ugc2Nhbi4gYHBzY2FuYCBuZWVkcyB0byBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQKQEAgLTExNDks NyArMTE3MCw4IEBAIGV4dGVybiBUYWJsZVNjYW5EZXNjIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxl bChSZWxhdGlvbiByZWxhdGlvbiwKICAqIENhbGxlciBtdXN0IGhvbGQgYSBzdWl0YWJsZSBsb2Nr IG9uIHRoZSByZWxhdGlvbi4KICAqLwogZXh0ZXJuIFRhYmxlU2NhbkRlc2MgdGFibGVfYmVnaW5z Y2FuX3BhcmFsbGVsX3RpZHJhbmdlKFJlbGF0aW9uIHJlbGF0aW9uLAotCQkJCQkJCQkJCQkJCSAg IFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2Nhbik7CisJCQkJCQkJCQkJCQkJICAgUGFyYWxsZWxU YWJsZVNjYW5EZXNjIHBzY2FuLAorCQkJCQkJCQkJCQkJCSAgIHVpbnQzMiBmbGFncyk7CiAKIC8q CiAgKiBSZXN0YXJ0IGEgcGFyYWxsZWwgc2Nhbi4gIENhbGwgdGhpcyBpbiB0aGUgbGVhZGVyIHBy b2Nlc3MuICBDYWxsZXIgaXMKQEAgLTExNzUsOCArMTE5NywxMCBAQCB0YWJsZV9wYXJhbGxlbHNj YW5fcmVpbml0aWFsaXplKFJlbGF0aW9uIHJlbCwgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2Fu KQogICogVHVwbGVzIGZvciBhbiBpbmRleCBzY2FuIGNhbiB0aGVuIGJlIGZldGNoZWQgdmlhIHRh YmxlX2luZGV4X2ZldGNoX3R1cGxlKCkuCiAgKi8KIHN0YXRpYyBpbmxpbmUgSW5kZXhGZXRjaFRh YmxlRGF0YSAqCi10YWJsZV9pbmRleF9mZXRjaF9iZWdpbihSZWxhdGlvbiByZWwpCit0YWJsZV9p bmRleF9mZXRjaF9iZWdpbihSZWxhdGlvbiByZWwsIHVpbnQzMiBmbGFncykKIHsKKwlBc3NlcnQo KGZsYWdzICYgU09fSU5URVJOQUxfRkxBR1MpID09IDApOworCiAJLyoKIAkgKiBXZSBkb24ndCBh bGxvdyBzY2FucyB0byBiZSBzdGFydGVkIHdoaWxlIENoZWNrWGlkQWxpdmUgaXMgc2V0LCBleGNl cHQKIAkgKiB2aWEgc3lzdGFibGVfYmVnaW5zY2FuKCkgZXQgYWwuICBTZWUgZGV0YWlsZWQgY29t bWVudHMgaW4geGFjdC5jIHdoZXJlCkBAIC0xMTg1LDcgKzEyMDksNyBAQCB0YWJsZV9pbmRleF9m ZXRjaF9iZWdpbihSZWxhdGlvbiByZWwpCiAJaWYgKHVubGlrZWx5KFRyYW5zYWN0aW9uSWRJc1Zh bGlkKENoZWNrWGlkQWxpdmUpICYmICFic3lzc2NhbikpCiAJCWVsb2coRVJST1IsICJzY2FuIHN0 YXJ0ZWQgZHVyaW5nIGxvZ2ljYWwgZGVjb2RpbmciKTsKIAotCXJldHVybiByZWwtPnJkX3RhYmxl YW0tPmluZGV4X2ZldGNoX2JlZ2luKHJlbCk7CisJcmV0dXJuIHJlbC0+cmRfdGFibGVhbS0+aW5k ZXhfZmV0Y2hfYmVnaW4ocmVsLCBmbGFncyk7CiB9CiAKIC8qCi0tIAoyLjQzLjAKCg== --000000000000a1e2a7064d7d2a75 Content-Type: text/x-patch; charset="US-ASCII"; name="v42-0010-Pass-down-information-on-table-modification-to-s.patch" Content-Disposition: attachment; filename="v42-0010-Pass-down-information-on-table-modification-to-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmzjdyfz9 RnJvbSA2YjM0ZDhmMTM4MGI3YmEyMjRjNmUyNDAyODljYTkzNzA1MDA1YTY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgTWFyIDIwMjYgMTY6MzE6MzMgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0MiAxMC8xMl0gUGFzcyBkb3duIGluZm9ybWF0aW9uIG9uIHRhYmxlIG1vZGlmaWNhdGlv biB0byBzY2FuCiBub2RlCgpQYXNzIGRvd24gaW5mb3JtYXRpb24gdG8gc2VxdWVudGlhbCBzY2Fu LCBpbmRleCBbb25seV0gc2NhbiwgYml0bWFwCnRhYmxlIHNjYW4sIHNhbXBsZSBzY2FuLCBhbmQg VElEIHJhbmdlIHNjYW4gbm9kZXMgb24gd2hldGhlciBvciBub3QgdGhlCnF1ZXJ5IG1vZGlmaWVz IHRoZSByZWxhdGlvbiBiZWluZyBzY2FubmVkLiBBIGxhdGVyIGNvbW1pdCB3aWxsIHVzZSB0aGlz CmluZm9ybWF0aW9uIHRvIHVwZGF0ZSB0aGUgVk0gZHVyaW5nIG9uLWFjY2VzcyBwcnVuaW5nIG9u bHkgaWYgdGhlCnJlbGF0aW9uIGlzIG5vdCBtb2RpZmllZCBieSB0aGUgcXVlcnkuCgpBdXRob3I6 IE1lbGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5 OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmlld2VkLWJ5OiBBbmRyZXkg Qm9yb2RpbiA8eDRtbW1AeWFuZGV4LXRlYW0ucnU+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5l dmFuLmNoYW9AZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzQzNzlG REEzLTk0NDYtNEUyQy05QzE1LTMyRUZFOEQ0RjMxQiU0MHlhbmRleC10ZWFtLnJ1Ci0tLQogc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMgfCAgNiArKysrKy0KIHNyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMgIHwgMTUgKysrKysrKysrKysrLS0t CiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMgICAgICB8IDE4ICsrKysrKysr KysrKysrLS0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYyAgICAgfCAg NSArKysrLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYyAgICAgICAgfCAxOCAr KysrKysrKysrKysrKystLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNjYW4u YyAgIHwgMTUgKysrKysrKysrKysrLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oICAg ICAgICAgICAgICB8ICAzICsrKwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCAgICAg ICAgICAgfCAxMCArKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDc1IGluc2VydGlvbnMoKyks IDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVC aXRtYXBIZWFwc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2Fu LmMKaW5kZXggMzI0ZTJiZWQyMmMuLmFlYzkyYzg2OGFjIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlQml0bWFwSGVhcHNjYW4uYwpAQCAtMTQ0LDExICsxNDQsMTUgQEAgQml0bWFwVGFibGVT Y2FuU2V0dXAoQml0bWFwSGVhcFNjYW5TdGF0ZSAqbm9kZSkKIAkgKi8KIAlpZiAoIW5vZGUtPnNz LnNzX2N1cnJlbnRTY2FuRGVzYykKIAl7CisJCXVpbnQzMgkJZmxhZ3MgPSBTY2FuUmVsSXNSZWFk T25seSgmbm9kZS0+c3MpID8KKwkJCVNPX0hJTlRfUkVMX1JFQURfT05MWSA6IDA7CisKIAkJbm9k ZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KIAkJCXRhYmxlX2JlZ2luc2Nhbl9ibShub2RlLT5z cy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJICAgbm9kZS0+c3MucHMuc3RhdGUtPmVzX3Nu YXBzaG90LAogCQkJCQkJCSAgIDAsCi0JCQkJCQkJICAgTlVMTCwgMCk7CisJCQkJCQkJICAgTlVM TCwKKwkJCQkJCQkgICBmbGFncyk7CiAJfQogCiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNj LT5zdC5yc190Ym1pdGVyYXRvciA9IHRibWl0ZXJhdG9yOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVJbmRleG9ubHlzY2FuLmMKaW5kZXggZGVjZmQ3OTI4MDkuLmI5Nzc3MTljMjk1IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jCisrKyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMKQEAgLTg1LDYgKzg1LDkgQEAgSW5k ZXhPbmx5TmV4dChJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUpCiAKIAlpZiAoc2NhbmRlc2MgPT0g TlVMTCkKIAl7CisJCXVpbnQzMgkJZmxhZ3MgPSBTY2FuUmVsSXNSZWFkT25seSgmbm9kZS0+c3Mp ID8KKwkJCVNPX0hJTlRfUkVMX1JFQURfT05MWSA6IDA7CisKIAkJLyoKIAkJICogV2UgcmVhY2gg aGVyZSBpZiB0aGUgaW5kZXggb25seSBzY2FuIGlzIG5vdCBwYXJhbGxlbCwgb3IgaWYgd2UncmUK IAkJICogc2VyaWFsbHkgZXhlY3V0aW5nIGFuIGluZGV4IG9ubHkgc2NhbiB0aGF0IHdhcyBwbGFu bmVkIHRvIGJlCkBAIC05Miw3ICs5NSw3IEBAIEluZGV4T25seU5leHQoSW5kZXhPbmx5U2NhblN0 YXRlICpub2RlKQogCQkgKi8KIAkJc2NhbmRlc2MgPSBpbmRleF9iZWdpbnNjYW4obm9kZS0+c3Mu c3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCQkgICBub2RlLT5pb3NzX1JlbGF0aW9uRGVzYywK LQkJCQkJCQkJICAgMCwJLyogZmxhZ3MgKi8KKwkJCQkJCQkJICAgZmxhZ3MsCiAJCQkJCQkJCSAg IGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgICZub2RlLT5pb3NzX0luc3RydW1lbnQs CiAJCQkJCQkJCSAgIG5vZGUtPmlvc3NfTnVtU2NhbktleXMsCkBAIC03OTEsNyArNzk0LDEwIEBA IEV4ZWNJbmRleE9ubHlTY2FuSW5pdGlhbGl6ZURTTShJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUs CiAJCQkJCQkJCSAmbm9kZS0+aW9zc19JbnN0cnVtZW50LAogCQkJCQkJCQkgbm9kZS0+aW9zc19O dW1TY2FuS2V5cywKIAkJCQkJCQkJIG5vZGUtPmlvc3NfTnVtT3JkZXJCeUtleXMsCi0JCQkJCQkJ CSBwaXNjYW4sIDApOworCQkJCQkJCQkgcGlzY2FuLAorCQkJCQkJCQkgU2NhblJlbElzUmVhZE9u bHkoJm5vZGUtPnNzKSA/CisJCQkJCQkJCSBTT19ISU5UX1JFTF9SRUFEX09OTFkgOiAwKTsKKwog CW5vZGUtPmlvc3NfU2NhbkRlc2MtPnhzX3dhbnRfaXR1cCA9IHRydWU7CiAJbm9kZS0+aW9zc19W TUJ1ZmZlciA9IEludmFsaWRCdWZmZXI7CiAKQEAgLTg1Nyw3ICs4NjMsMTAgQEAgRXhlY0luZGV4 T25seVNjYW5Jbml0aWFsaXplV29ya2VyKEluZGV4T25seVNjYW5TdGF0ZSAqbm9kZSwKIAkJCQkJ CQkJICZub2RlLT5pb3NzX0luc3RydW1lbnQsCiAJCQkJCQkJCSBub2RlLT5pb3NzX051bVNjYW5L ZXlzLAogCQkJCQkJCQkgbm9kZS0+aW9zc19OdW1PcmRlckJ5S2V5cywKLQkJCQkJCQkJIHBpc2Nh biwgMCk7CisJCQkJCQkJCSBwaXNjYW4sCisJCQkJCQkJCSBTY2FuUmVsSXNSZWFkT25seSgmbm9k ZS0+c3MpID8KKwkJCQkJCQkJIFNPX0hJTlRfUkVMX1JFQURfT05MWSA6IDApOworCiAJbm9kZS0+ aW9zc19TY2FuRGVzYy0+eHNfd2FudF9pdHVwID0gdHJ1ZTsKIAogCS8qCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlSW5kZXhzY2FuLmMKaW5kZXggYTM3ZmE5YWJlY2UuLmFkNDYwYzExNjc5IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKKysrIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jCkBAIC0xMDQsMTMgKzEwNCwxNiBAQCBJbmRleE5l eHQoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAKIAlpZiAoc2NhbmRlc2MgPT0gTlVMTCkKIAl7CisJ CXVpbnQzMgkJZmxhZ3MgPSBTY2FuUmVsSXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCVNPX0hJ TlRfUkVMX1JFQURfT05MWSA6IDA7CisKIAkJLyoKIAkJICogV2UgcmVhY2ggaGVyZSBpZiB0aGUg aW5kZXggc2NhbiBpcyBub3QgcGFyYWxsZWwsIG9yIGlmIHdlJ3JlCiAJCSAqIHNlcmlhbGx5IGV4 ZWN1dGluZyBhbiBpbmRleCBzY2FuIHRoYXQgd2FzIHBsYW5uZWQgdG8gYmUgcGFyYWxsZWwuCiAJ CSAqLwogCQlzY2FuZGVzYyA9IGluZGV4X2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVs YXRpb24sCiAJCQkJCQkJCSAgIG5vZGUtPmlzc19SZWxhdGlvbkRlc2MsCi0JCQkJCQkJCSAgIDAs CS8qIGZsYWdzICovCisJCQkJCQkJCSAgIGZsYWdzLAogCQkJCQkJCQkgICBlc3RhdGUtPmVzX3Nu YXBzaG90LAogCQkJCQkJCQkgICAmbm9kZS0+aXNzX0luc3RydW1lbnQsCiAJCQkJCQkJCSAgIG5v ZGUtPmlzc19OdW1TY2FuS2V5cywKQEAgLTIwMSwxMyArMjA0LDE2IEBAIEluZGV4TmV4dFdpdGhS ZW9yZGVyKEluZGV4U2NhblN0YXRlICpub2RlKQogCiAJaWYgKHNjYW5kZXNjID09IE5VTEwpCiAJ eworCQl1aW50MzIJCWZsYWdzID0gU2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNzKSA/CisJCQlT T19ISU5UX1JFTF9SRUFEX09OTFkgOiAwOworCiAJCS8qCiAJCSAqIFdlIHJlYWNoIGhlcmUgaWYg dGhlIGluZGV4IHNjYW4gaXMgbm90IHBhcmFsbGVsLCBvciBpZiB3ZSdyZQogCQkgKiBzZXJpYWxs eSBleGVjdXRpbmcgYW4gaW5kZXggc2NhbiB0aGF0IHdhcyBwbGFubmVkIHRvIGJlIHBhcmFsbGVs LgogCQkgKi8KIAkJc2NhbmRlc2MgPSBpbmRleF9iZWdpbnNjYW4obm9kZS0+c3Muc3NfY3VycmVu dFJlbGF0aW9uLAogCQkJCQkJCQkgICBub2RlLT5pc3NfUmVsYXRpb25EZXNjLAotCQkJCQkJCQkg ICAwLAkvKiBmbGFncyAqLworCQkJCQkJCQkgICBmbGFncywKIAkJCQkJCQkJICAgZXN0YXRlLT5l c19zbmFwc2hvdCwKIAkJCQkJCQkJICAgJm5vZGUtPmlzc19JbnN0cnVtZW50LAogCQkJCQkJCQkg ICBub2RlLT5pc3NfTnVtU2NhbktleXMsCkBAIC0xNzI4LDcgKzE3MzQsOSBAQCBFeGVjSW5kZXhT Y2FuSW5pdGlhbGl6ZURTTShJbmRleFNjYW5TdGF0ZSAqbm9kZSwKIAkJCQkJCQkJICZub2RlLT5p c3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1TY2FuS2V5cywKIAkJCQkJCQkJ IG5vZGUtPmlzc19OdW1PcmRlckJ5S2V5cywKLQkJCQkJCQkJIHBpc2NhbiwgMCk7CisJCQkJCQkJ CSBwaXNjYW4sCisJCQkJCQkJCSBTY2FuUmVsSXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCQkJ CQkJIFNPX0hJTlRfUkVMX1JFQURfT05MWSA6IDApOwogCiAJLyoKIAkgKiBJZiBubyBydW4tdGlt ZSBrZXlzIHRvIGNhbGN1bGF0ZSBvciB0aGV5IGFyZSByZWFkeSwgZ28gYWhlYWQgYW5kIHBhc3MK QEAgLTE3OTIsNyArMTgwMCw5IEBAIEV4ZWNJbmRleFNjYW5Jbml0aWFsaXplV29ya2VyKEluZGV4 U2NhblN0YXRlICpub2RlLAogCQkJCQkJCQkgJm5vZGUtPmlzc19JbnN0cnVtZW50LAogCQkJCQkJ CQkgbm9kZS0+aXNzX051bVNjYW5LZXlzLAogCQkJCQkJCQkgbm9kZS0+aXNzX051bU9yZGVyQnlL ZXlzLAotCQkJCQkJCQkgcGlzY2FuLCAwKTsKKwkJCQkJCQkJIHBpc2NhbiwKKwkJCQkJCQkJIFNj YW5SZWxJc1JlYWRPbmx5KCZub2RlLT5zcykgPworCQkJCQkJCQkgU09fSElOVF9SRUxfUkVBRF9P TkxZIDogMCk7CiAKIAkvKgogCSAqIElmIG5vIHJ1bi10aW1lIGtleXMgdG8gY2FsY3VsYXRlIG9y IHRoZXkgYXJlIHJlYWR5LCBnbyBhaGVhZCBhbmQgcGFzcwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVT YW1wbGVzY2FuLmMKaW5kZXggY2M2YjIzYWJlZTAuLjcxYzcwZTVlNWM3IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2FtcGxlc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMKQEAgLTI5MiwxMyArMjkyLDE2IEBAIHRhYmxlc2FtcGxl X2luaXQoU2FtcGxlU2NhblN0YXRlICpzY2Fuc3RhdGUpCiAJLyogTm93IHdlIGNhbiBjcmVhdGUg b3IgcmVzZXQgdGhlIEhlYXBTY2FuRGVzYyAqLwogCWlmIChzY2Fuc3RhdGUtPnNzLnNzX2N1cnJl bnRTY2FuRGVzYyA9PSBOVUxMKQogCXsKKwkJdWludDMyCQlmbGFncyA9IFNjYW5SZWxJc1JlYWRP bmx5KCZzY2Fuc3RhdGUtPnNzKSA/CisJCQlTT19ISU5UX1JFTF9SRUFEX09OTFkgOiAwOworCiAJ CXNjYW5zdGF0ZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KIAkJCXRhYmxlX2JlZ2luc2Nhbl9z YW1wbGluZyhzY2Fuc3RhdGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKIAkJCQkJCQkJCSBzY2Fu c3RhdGUtPnNzLnBzLnN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkJCSAwLCBOVUxMLAogCQkJ CQkJCQkJIHNjYW5zdGF0ZS0+dXNlX2J1bGtyZWFkLAogCQkJCQkJCQkJIGFsbG93X3N5bmMsCi0J CQkJCQkJCQkgc2NhbnN0YXRlLT51c2VfcGFnZW1vZGUsIDApOworCQkJCQkJCQkJIHNjYW5zdGF0 ZS0+dXNlX3BhZ2Vtb2RlLCBmbGFncyk7CiAJfQogCWVsc2UKIAl7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZVNlcXNjYW4uYwppbmRleCBjMmQ5YjcyOTNkZS4uNzk0NzBlNmI5YjUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZVNlcXNjYW4uYwpAQCAtNjUsMTMgKzY1LDE3IEBAIFNlcU5leHQoU2VxU2NhblN0YXRl ICpub2RlKQogCiAJaWYgKHNjYW5kZXNjID09IE5VTEwpCiAJeworCQl1aW50MzIJCWZsYWdzID0g U2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNzKSA/CisJCQlTT19ISU5UX1JFTF9SRUFEX09OTFkg OiAwOworCiAJCS8qCiAJCSAqIFdlIHJlYWNoIGhlcmUgaWYgdGhlIHNjYW4gaXMgbm90IHBhcmFs bGVsLCBvciBpZiB3ZSdyZSBzZXJpYWxseQogCQkgKiBleGVjdXRpbmcgYSBzY2FuIHRoYXQgd2Fz IHBsYW5uZWQgdG8gYmUgcGFyYWxsZWwuCiAJCSAqLwogCQlzY2FuZGVzYyA9IHRhYmxlX2JlZ2lu c2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNf c25hcHNob3QsCi0JCQkJCQkJCSAgIDAsIE5VTEwsIDApOworCQkJCQkJCQkgICAwLCBOVUxMLCBm bGFncyk7CisKIAkJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0gc2NhbmRlc2M7CiAJfQog CkBAIC0zNjgsMTQgKzM3MiwxOCBAQCBFeGVjU2VxU2NhbkluaXRpYWxpemVEU00oU2VxU2NhblN0 YXRlICpub2RlLAogewogCUVTdGF0ZQkgICAqZXN0YXRlID0gbm9kZS0+c3MucHMuc3RhdGU7CiAJ UGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuOworCXVpbnQzMgkJZmxhZ3MgPSBTY2FuUmVsSXNS ZWFkT25seSgmbm9kZS0+c3MpID8KKwkJU09fSElOVF9SRUxfUkVBRF9PTkxZIDogMDsKIAogCXBz Y2FuID0gc2htX3RvY19hbGxvY2F0ZShwY3h0LT50b2MsIG5vZGUtPnBzY2FuX2xlbik7CiAJdGFi bGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAog CQkJCQkJCQkgIHBzY2FuLAogCQkJCQkJCQkgIGVzdGF0ZS0+ZXNfc25hcHNob3QpOwogCXNobV90 b2NfaW5zZXJ0KHBjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkLCBwc2Nh bik7CisKIAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQotCQl0YWJsZV9iZWdpbnNjYW5f cGFyYWxsZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLCBwc2NhbiwgMCk7CisJCXRhYmxl X2JlZ2luc2Nhbl9wYXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuLAor CQkJCQkJCQkgZmxhZ3MpOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00MDUsOCArNDEzLDEyIEBAIEV4 ZWNTZXFTY2FuSW5pdGlhbGl6ZVdvcmtlcihTZXFTY2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkJUGFy YWxsZWxXb3JrZXJDb250ZXh0ICpwd2N4dCkKIHsKIAlQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNj YW47CisJdWludDMyCQlmbGFncyA9IFNjYW5SZWxJc1JlYWRPbmx5KCZub2RlLT5zcykgPworCQlT T19ISU5UX1JFTF9SRUFEX09OTFkgOiAwOwogCiAJcHNjYW4gPSBzaG1fdG9jX2xvb2t1cChwd2N4 dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQsIGZhbHNlKTsKIAlub2RlLT5z cy5zc19jdXJyZW50U2NhbkRlc2MgPQotCQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwobm9kZS0+ c3Muc3NfY3VycmVudFJlbGF0aW9uLCBwc2NhbiwgMCk7CisJCXRhYmxlX2JlZ2luc2Nhbl9wYXJh bGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCisJCQkJCQkJCSBwc2NhbiwKKwkJCQkJ CQkJIGZsYWdzKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVUaWRy YW5nZXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNjYW4uYwppbmRl eCA5OTRmNzA5ODliYy4uNDI1N2FmZDk2ZWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL25vZGVUaWRyYW5nZXNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlk cmFuZ2VzY2FuLmMKQEAgLTI0MiwxMCArMjQyLDEzIEBAIFRpZFJhbmdlTmV4dChUaWRSYW5nZVNj YW5TdGF0ZSAqbm9kZSkKIAogCQlpZiAoc2NhbmRlc2MgPT0gTlVMTCkKIAkJeworCQkJdWludDMy CQlmbGFncyA9IFNjYW5SZWxJc1JlYWRPbmx5KCZub2RlLT5zcykgPworCQkJCVNPX0hJTlRfUkVM X1JFQURfT05MWSA6IDA7CisKIAkJCXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2FuX3RpZHJhbmdl KG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKIAkJCQkJCQkJCQkJCWVzdGF0ZS0+ZXNfc25h cHNob3QsCiAJCQkJCQkJCQkJCQkmbm9kZS0+dHJzc19taW50aWQsCi0JCQkJCQkJCQkJCQkmbm9k ZS0+dHJzc19tYXh0aWQsIDApOworCQkJCQkJCQkJCQkJJm5vZGUtPnRyc3NfbWF4dGlkLCBmbGFn cyk7CiAJCQlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPSBzY2FuZGVzYzsKIAkJfQogCQll bHNlCkBAIC00NTIsMTUgKzQ1NSwxOCBAQCBFeGVjVGlkUmFuZ2VTY2FuSW5pdGlhbGl6ZURTTShU aWRSYW5nZVNjYW5TdGF0ZSAqbm9kZSwgUGFyYWxsZWxDb250ZXh0ICpwY3h0KQogewogCUVTdGF0 ZQkgICAqZXN0YXRlID0gbm9kZS0+c3MucHMuc3RhdGU7CiAJUGFyYWxsZWxUYWJsZVNjYW5EZXNj IHBzY2FuOworCXVpbnQzMgkJZmxhZ3MgPSBTY2FuUmVsSXNSZWFkT25seSgmbm9kZS0+c3MpID8K KwkJU09fSElOVF9SRUxfUkVBRF9PTkxZIDogMDsKIAogCXBzY2FuID0gc2htX3RvY19hbGxvY2F0 ZShwY3h0LT50b2MsIG5vZGUtPnRyc3NfcHNjYW5sZW4pOwogCXRhYmxlX3BhcmFsbGVsc2Nhbl9p bml0aWFsaXplKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKIAkJCQkJCQkJICBwc2NhbiwK IAkJCQkJCQkJICBlc3RhdGUtPmVzX3NuYXBzaG90KTsKIAlzaG1fdG9jX2luc2VydChwY3h0LT50 b2MsIG5vZGUtPnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCwgcHNjYW4pOworCiAJbm9kZS0+c3Mu c3NfY3VycmVudFNjYW5EZXNjID0KIAkJdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsX3RpZHJhbmdl KG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKLQkJCQkJCQkJCQkgIHBzY2FuLCAwKTsKKwkJ CQkJCQkJCQkgIHBzY2FuLCBmbGFncyk7CiB9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ5MCw5ICs0OTYs MTIgQEAgRXhlY1RpZFJhbmdlU2NhbkluaXRpYWxpemVXb3JrZXIoVGlkUmFuZ2VTY2FuU3RhdGUg Km5vZGUsCiAJCQkJCQkJCSBQYXJhbGxlbFdvcmtlckNvbnRleHQgKnB3Y3h0KQogewogCVBhcmFs bGVsVGFibGVTY2FuRGVzYyBwc2NhbjsKKwl1aW50MzIJCWZsYWdzID0gU2NhblJlbElzUmVhZE9u bHkoJm5vZGUtPnNzKSA/CisJCVNPX0hJTlRfUkVMX1JFQURfT05MWSA6IDA7CiAKIAlwc2NhbiA9 IHNobV90b2NfbG9va3VwKHB3Y3h0LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9p ZCwgZmFsc2UpOworCiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KIAkJdGFibGVfYmVn aW5zY2FuX3BhcmFsbGVsX3RpZHJhbmdlKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKLQkJ CQkJCQkJCQkgIHBzY2FuLCAwKTsKKwkJCQkJCQkJCQkgIHBzY2FuLCBmbGFncyk7CiB9CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNz L3RhYmxlYW0uaAppbmRleCA4MzU3ZDA1ZDgzYi4uNDg3ZTM4MjkyZmEgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxl YW0uaApAQCAtNjMsNiArNjMsOSBAQCB0eXBlZGVmIGVudW0gU2Nhbk9wdGlvbnMKIAogCS8qIHVu cmVnaXN0ZXIgc25hcHNob3QgYXQgc2NhbiBlbmQ/ICovCiAJU09fVEVNUF9TTkFQU0hPVCA9IDEg PDwgOSwKKworCS8qIHNldCBpZiB0aGUgcXVlcnkgZG9lc24ndCBtb2RpZnkgdGhlIHJlbGF0aW9u ICovCisJU09fSElOVF9SRUxfUkVBRF9PTkxZID0gMSA8PCAxMCwKIH0JCQlTY2FuT3B0aW9uczsK IAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmggYi9zcmMv aW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCmluZGV4IDA3ZjRiMWY3NDkwLi4zMWM0MTkyYjY3 ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaAorKysgYi9zcmMv aW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCkBAIC02OTAsNiArNjkwLDE2IEBAIGV4dGVybiB2 b2lkIEV4ZWNDcmVhdGVTY2FuU2xvdEZyb21PdXRlclBsYW4oRVN0YXRlICplc3RhdGUsCiAKIGV4 dGVybiBib29sIEV4ZWNSZWxhdGlvbklzVGFyZ2V0UmVsYXRpb24oRVN0YXRlICplc3RhdGUsIElu ZGV4IHNjYW5yZWxpZCk7CiAKKy8qCisgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgc2NhbiBub2RlJ3Mg cmVsYXRpb24gaXMgbm90IG1vZGlmaWVkIGJ5IHRoZSBxdWVyeS4KKyAqLworc3RhdGljIGlubGlu ZSBib29sCitTY2FuUmVsSXNSZWFkT25seShTY2FuU3RhdGUgKnNzKQoreworCXJldHVybiAhYm1z X2lzX21lbWJlcigoKFNjYW4gKikgc3MtPnBzLnBsYW4pLT5zY2FucmVsaWQsCisJCQkJCQkgIHNz LT5wcy5zdGF0ZS0+ZXNfcGxhbm5lZHN0bXQtPm1vZGlmaWVkUmVsaWRzKTsKK30KKwogZXh0ZXJu IFJlbGF0aW9uIEV4ZWNPcGVuU2NhblJlbGF0aW9uKEVTdGF0ZSAqZXN0YXRlLCBJbmRleCBzY2Fu cmVsaWQsIGludCBlZmxhZ3MpOwogCiBleHRlcm4gdm9pZCBFeGVjSW5pdFJhbmdlVGFibGUoRVN0 YXRlICplc3RhdGUsIExpc3QgKnJhbmdlVGFibGUsIExpc3QgKnBlcm1JbmZvcywKLS0gCjIuNDMu MAoK --000000000000a1e2a7064d7d2a75 Content-Type: text/x-patch; charset="US-ASCII"; name="v42-0011-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Disposition: attachment; filename="v42-0011-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmzjerti10 RnJvbSBhNmQzOTFjMTJmMDM3MDZlOGQ5ZmViMDdjN2NkNjQ3ZDkxNTk0Y2YyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDI3IEZlYiAyMDI2IDE2OjMzOjQwIC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDIgMTEvMTJdIEFsbG93IG9uLWFjY2VzcyBwcnVuaW5nIHRvIHNldCBwYWdlcyBhbGwt dmlzaWJsZQoKTWFueSBxdWVyaWVzIGRvIG5vdCBtb2RpZnkgdGhlIHVuZGVybHlpbmcgcmVsYXRp b24uIEZvciBzdWNoIHF1ZXJpZXMsIGlmCm9uLWFjY2VzcyBwcnVuaW5nIG9jY3VycyBkdXJpbmcg dGhlIHNjYW4sIHdlIGNhbiBjaGVjayB3aGV0aGVyIHRoZSBwYWdlCmhhcyBiZWNvbWUgYWxsLXZp c2libGUgYW5kIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAgYWNjb3JkaW5nbHkuClByZXZpb3Vz bHksIG9ubHkgdmFjdXVtIGFuZCBDT1BZIEZSRUVaRSBtYXJrZWQgcGFnZXMgYXMgYWxsLXZpc2li bGUgb3IKYWxsLWZyb3plbi4KClRoaXMgY29tbWl0IGltcGxlbWVudHMgb24tYWNjZXNzIFZNIHNl dHRpbmcgZm9yIHNlcXVlbnRpYWwgc2NhbnMgYXMgd2VsbAphcyBmb3IgdGhlIHVuZGVybHlpbmcg aGVhcCByZWxhdGlvbiBpbiBpbmRleCBzY2FucyBhbmQgYml0bWFwIGhlYXAKc2NhbnMuCgpTZXR0 aW5nIHRoZSB2aXNpYmlsaXR5IG1hcCBvbi1hY2Nlc3MgY2FuIGF2b2lkIHdyaXRlIGFtcGxpZmlj YXRpb24KY2F1c2VkIGJ5IHZhY3V1bSBsYXRlciBuZWVkaW5nIHRvIHNldCB0aGUgcGFnZSBhbGwt dmlzaWJsZSwgdHJpZ2dlciBhCndyaXRlIGFuZCBwb3RlbnRpYWxseSBGUEkuIEl0IGFsc28gYWxs b3dzIG1vcmUgZnJlcXVlbnQgaW5kZXgtb25seQpzY2Fucywgc2luY2UgdGhleSByZXF1aXJlIHBh Z2VzIHRvIGJlIG1hcmtlZCBhbGwtdmlzaWJsZSBpbiB0aGUgVk0uCgpBdXRob3I6IE1lbGFuaWUg UGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXMg RnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmlld2VkLWJ5OiBLaXJpbGwgUmVzaGtlIDxy ZXNoa2VraXJpbGxAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFv QGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9mbGF0L0NBQUtSdV9a TXc2TnBkX3FtMktNJTJCRndRM2NNT014MURoM1ZNaHA4LVY3U09MeGRLOS1nJTQwbWFpbC5nbWFp bC5jb20KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgICAgIHwgIDMg Ky0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMgfCAgNiArKy0tCiBz cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgICAgIHwgNDYgKysrKysrKysrKysr KysrKystLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgIHwg IDIgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCAgICAgICAgICAgICAgfCAxNiArKysr KysrLS0KIDUgZmlsZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCAwNDRmMzg1ZTQ3Ny4uZGJkZjY1MjFjNDIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC02MzMsNyArNjMzLDggQEAgaGVhcF9wcmVw YXJlX3BhZ2VzY2FuKFRhYmxlU2NhbkRlc2Mgc3NjYW4pCiAJLyoKIAkgKiBQcnVuZSBhbmQgcmVw YWlyIGZyYWdtZW50YXRpb24gZm9yIHRoZSB3aG9sZSBwYWdlLCBpZiBwb3NzaWJsZS4KIAkgKi8K LQloZWFwX3BhZ2VfcHJ1bmVfb3B0KHNjYW4tPnJzX2Jhc2UucnNfcmQsIGJ1ZmZlciwgJnNjYW4t PnJzX3ZtYnVmZmVyKTsKKwloZWFwX3BhZ2VfcHJ1bmVfb3B0KHNjYW4tPnJzX2Jhc2UucnNfcmQs IGJ1ZmZlciwgJnNjYW4tPnJzX3ZtYnVmZmVyLAorCQkJCQkJKHNzY2FuLT5yc19mbGFncyAmIFNP X0hJTlRfUkVMX1JFQURfT05MWSkpOwogCiAJLyoKIAkgKiBXZSBtdXN0IGhvbGQgc2hhcmUgbG9j ayBvbiB0aGUgYnVmZmVyIGNvbnRlbnQgd2hpbGUgZXhhbWluaW5nIHR1cGxlCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYwppbmRleCA2NjcyNmIyMmRlNi4uNjUxZWZhMDEy N2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYwpAQCAtMTQ4LDcg KzE0OCw4IEBAIGhlYXBhbV9pbmRleF9mZXRjaF90dXBsZShzdHJ1Y3QgSW5kZXhGZXRjaFRhYmxl RGF0YSAqc2NhbiwKIAkJICovCiAJCWlmIChwcmV2X2J1ZiAhPSBoc2Nhbi0+eHNfY2J1ZikKIAkJ CWhlYXBfcGFnZV9wcnVuZV9vcHQoaHNjYW4tPnhzX2Jhc2UucmVsLCBoc2Nhbi0+eHNfY2J1ZiwK LQkJCQkJCQkJJmhzY2FuLT54c192bWJ1ZmZlcik7CisJCQkJCQkJCSZoc2Nhbi0+eHNfdm1idWZm ZXIsCisJCQkJCQkJCShoc2Nhbi0+eHNfYmFzZS5mbGFncyAmIFNPX0hJTlRfUkVMX1JFQURfT05M WSkpOwogCX0KIAogCS8qIE9idGFpbiBzaGFyZS1sb2NrIG9uIHRoZSBidWZmZXIgc28gd2UgY2Fu IGV4YW1pbmUgdmlzaWJpbGl0eSAqLwpAQCAtMjU0NSw3ICsyNTQ2LDggQEAgQml0bWFwSGVhcFNj YW5OZXh0QmxvY2soVGFibGVTY2FuRGVzYyBzY2FuLAogCS8qCiAJICogUHJ1bmUgYW5kIHJlcGFp ciBmcmFnbWVudGF0aW9uIGZvciB0aGUgd2hvbGUgcGFnZSwgaWYgcG9zc2libGUuCiAJICovCi0J aGVhcF9wYWdlX3BydW5lX29wdChzY2FuLT5yc19yZCwgYnVmZmVyLCAmaHNjYW4tPnJzX3ZtYnVm ZmVyKTsKKwloZWFwX3BhZ2VfcHJ1bmVfb3B0KHNjYW4tPnJzX3JkLCBidWZmZXIsICZoc2Nhbi0+ cnNfdm1idWZmZXIsCisJCQkJCQlzY2FuLT5yc19mbGFncyAmIFNPX0hJTlRfUkVMX1JFQURfT05M WSk7CiAKIAkvKgogCSAqIFdlIG11c3QgaG9sZCBzaGFyZSBsb2NrIG9uIHRoZSBidWZmZXIgY29u dGVudCB3aGlsZSBleGFtaW5pbmcgdHVwbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMK aW5kZXggZWExYWZhNWM1OGEuLmM1NjQ3YjE0OTRiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVu ZWhlYXAuYwpAQCAtNDQsNiArNDQsOCBAQCB0eXBlZGVmIHN0cnVjdAogCWJvb2wJCW1hcmtfdW51 c2VkX25vdzsKIAkvKiB3aGV0aGVyIHRvIGF0dGVtcHQgZnJlZXppbmcgdHVwbGVzICovCiAJYm9v bAkJYXR0ZW1wdF9mcmVlemU7CisJLyogd2hldGhlciB0byBhdHRlbXB0IHNldHRpbmcgdGhlIFZN ICovCisJYm9vbAkJYXR0ZW1wdF9zZXRfdm07CiAJc3RydWN0IFZhY3V1bUN1dG9mZnMgKmN1dG9m ZnM7CiAJUmVsYXRpb24JcmVsYXRpb247CiAKQEAgLTIzNiw3ICsyMzgsOCBAQCBzdGF0aWMgdm9p ZCBwYWdlX3ZlcmlmeV9yZWRpcmVjdHMoUGFnZSBwYWdlKTsKIAogc3RhdGljIGJvb2wgaGVhcF9w YWdlX3dpbGxfZnJlZXplKGJvb2wgZGlkX3R1cGxlX2hpbnRfZnBpLCBib29sIGRvX3BydW5lLCBi b29sIGRvX2hpbnRfcHJ1bmUsCiAJCQkJCQkJCSAgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSk7Ci1zdGF0 aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgUHJ1bmVS ZWFzb24gcmVhc29uKTsKK3N0YXRpYyBib29sIGhlYXBfcGFnZV93aWxsX3NldF92bShQcnVuZVN0 YXRlICpwcnN0YXRlLCBQcnVuZVJlYXNvbiByZWFzb24sCisJCQkJCQkJCSAgYm9vbCBkb19wcnVu ZSwgYm9vbCBkb19mcmVlemUpOwogCiAKIC8qCkBAIC0yNTcsNyArMjYwLDggQEAgc3RhdGljIGJv b2wgaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lUmVhc29u IHJlYXNvbik7CiAgKiB1bnBpbm5pbmcgKnZtYnVmZmVyLgogICovCiB2b2lkCi1oZWFwX3BhZ2Vf cHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLCBCdWZmZXIgKnZtYnVm ZmVyKQoraGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZl ciwgQnVmZmVyICp2bWJ1ZmZlciwKKwkJCQkJYm9vbCByZWxfcmVhZF9vbmx5KQogewogCVBhZ2UJ CXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1ZmZlcik7CiAJVHJhbnNhY3Rpb25JZCBwcnVuZV94aWQ7 CkBAIC0zMzksNiArMzQzLDggQEAgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlv biwgQnVmZmVyIGJ1ZmZlciwgQnVmZmVyICp2bWJ1ZmZlcikKIAkJCSAqIGN1cnJlbnQgaW1wbGVt ZW50YXRpb24uCiAJCQkgKi8KIAkJCXBhcmFtcy5vcHRpb25zID0gSEVBUF9QQUdFX1BSVU5FX0FM TE9XX0ZBU1RfUEFUSDsKKwkJCWlmIChyZWxfcmVhZF9vbmx5KQorCQkJCXBhcmFtcy5vcHRpb25z IHw9IEhFQVBfUEFHRV9QUlVORV9TRVRfVk07CiAKIAkJCWhlYXBfcGFnZV9wcnVuZV9hbmRfZnJl ZXplKCZwYXJhbXMsICZwcmVzdWx0LCAmZHVtbXlfb2ZmX2xvYywKIAkJCQkJCQkJCSAgIE5VTEws IE5VTEwpOwpAQCAtMzk1LDYgKzQwMSw3IEBAIHBydW5lX2ZyZWV6ZV9zZXR1cChQcnVuZUZyZWV6 ZVBhcmFtcyAqcGFyYW1zLAogCS8qIGN1dG9mZnMgbXVzdCBiZSBwcm92aWRlZCBpZiB3ZSB3aWxs IGF0dGVtcHQgZnJlZXppbmcgKi8KIAlBc3NlcnQoIShwYXJhbXMtPm9wdGlvbnMgJiBIRUFQX1BB R0VfUFJVTkVfRlJFRVpFKSB8fCBwYXJhbXMtPmN1dG9mZnMpOwogCXByc3RhdGUtPmF0dGVtcHRf ZnJlZXplID0gKHBhcmFtcy0+b3B0aW9ucyAmIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUpICE9IDA7 CisJcHJzdGF0ZS0+YXR0ZW1wdF9zZXRfdm0gPSAocGFyYW1zLT5vcHRpb25zICYgSEVBUF9QQUdF X1BSVU5FX1NFVF9WTSkgIT0gMDsKIAlwcnN0YXRlLT5jdXRvZmZzID0gcGFyYW1zLT5jdXRvZmZz OwogCXByc3RhdGUtPnJlbGF0aW9uID0gcGFyYW1zLT5yZWxhdGlvbjsKIAlwcnN0YXRlLT5ibG9j ayA9IEJ1ZmZlckdldEJsb2NrTnVtYmVyKHBhcmFtcy0+YnVmZmVyKTsKQEAgLTQ3NCw5ICs0ODEs OCBAQCBwcnVuZV9mcmVlemVfc2V0dXAoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAkgKiBX ZSB0cmFjayB3aGV0aGVyIHRoZSBwYWdlIHdpbGwgYmUgYWxsLXZpc2libGUvYWxsLWZyb3plbiBh dCB0aGUgZW5kIG9mCiAJICogcHJ1bmluZyBhbmQgZnJlZXppbmcuIFdoaWxlIGV4YW1pbmluZyB0 dXBsZSB2aXNpYmlsaXR5LCB3ZSdsbCBzZXQKIAkgKiBzZXRfYWxsX3Zpc2libGUgdG8gZmFsc2Ug aWYgdGhlcmUgYXJlIHR1cGxlcyBvbiB0aGUgcGFnZSBub3QgdmlzaWJsZSB0bwotCSAqIGFsbCBy dW5uaW5nIGFuZCBmdXR1cmUgdHJhbnNhY3Rpb25zLiBzZXRfYWxsX3Zpc2libGUgaXMgYWx3YXlz Ci0JICogbWFpbnRhaW5lZCBidXQgb25seSBWQUNVVU0gd2lsbCBzZXQgdGhlIFZNIGlmIHRoZSBw YWdlIGVuZHMgdXAgYmVpbmcKLQkgKiBhbGwtdmlzaWJsZS4KKwkgKiBhbGwgcnVubmluZyBhbmQg ZnV0dXJlIHRyYW5zYWN0aW9ucy4gSWYgZW5hYmxlZCBmb3IgdGhpcyBzY2FuLCB3ZSB3aWxsCisJ ICogc2V0IHRoZSBWTSBpZiB0aGUgcGFnZSBlbmRzIHVwIGJlaW5nIGFsbC12aXNpYmxlLgogCSAq CiAJICogV2UgYWxzbyBrZWVwIHRyYWNrIG9mIHRoZSBuZXdlc3QgbGl2ZSBYSUQsIHdoaWNoIGlz IHVzZWQgdG8gY2FsY3VsYXRlCiAJICogdGhlIHNuYXBzaG90IGNvbmZsaWN0IGhvcml6b24gZm9y IGEgV0FMIHJlY29yZCBzZXR0aW5nIHRoZSBWTS4KQEAgLTkzMCwyMSArOTM2LDM3IEBAIGhlYXBf cGFnZV9maXhfdm1fY29ycnVwdGlvbihQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIg b2ZmbnVtLAogICogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBhY3R1YWxseSBzZXQgdGhlIFZNIGJp dHMgb3IgcGFnZS1sZXZlbCB2aXNpYmlsaXR5CiAgKiBoaW50LCBQRF9BTExfVklTSUJMRS4KICAq CisgKiBUaGlzIHNob3VsZCBiZSBjYWxsZWQgb25seSBhZnRlciBkb19mcmVlemUgaGFzIGJlZW4g ZGVjaWRlZCAoYW5kIGRvX3BydW5lCisgKiBoYXMgYmVlbiBzZXQpLCBhcyB0aGVzZSBmYWN0b3Ig aW50byBvdXIgaGV1cmlzdGljLWJhc2VkIGRlY2lzaW9uLgorICoKICAqIFJldHVybnMgdHJ1ZSBp ZiBvbmUgb3IgYm90aCBWTSBiaXRzIHNob3VsZCBiZSBzZXQgYW5kIGZhbHNlIG90aGVyd2lzZS4K ICAqLwogc3RhdGljIGJvb2wKLWhlYXBfcGFnZV93aWxsX3NldF92bShQcnVuZVN0YXRlICpwcnN0 YXRlLCBQcnVuZVJlYXNvbiByZWFzb24pCitoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1bmVTdGF0 ZSAqcHJzdGF0ZSwgUHJ1bmVSZWFzb24gcmVhc29uLAorCQkJCQkgIGJvb2wgZG9fcHJ1bmUsIGJv b2wgZG9fZnJlZXplKQogewotCS8qCi0JICogVGhvdWdoIG9uLWFjY2VzcyBwcnVuaW5nIG1haW50 YWlucyBwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUsIHdlIGRvbid0Ci0JICogc2V0IHRoZSBWTSBm b3Igbm93LgotCSAqLwotCWlmIChyZWFzb24gPT0gUFJVTkVfT05fQUNDRVNTKQorCWlmICghcHJz dGF0ZS0+YXR0ZW1wdF9zZXRfdm0pCiAJCXJldHVybiBmYWxzZTsKIAogCWlmICghcHJzdGF0ZS0+ c2V0X2FsbF92aXNpYmxlKQogCQlyZXR1cm4gZmFsc2U7CiAKKwkvKgorCSAqIElmIHRoaXMgaXMg YW4gb24tYWNjZXNzIGNhbGwgYW5kIHdlJ3JlIG5vdCBhY3R1YWxseSBwcnVuaW5nLCBhdm9pZAor CSAqIHNldHRpbmcgdGhlIHZpc2liaWxpdHkgbWFwIGlmIGl0IHdvdWxkIG5ld2x5IGRpcnR5IHRo ZSBoZWFwIHBhZ2Ugb3IsIGlmCisJICogdGhlIHBhZ2UgaXMgYWxyZWFkeSBkaXJ0eSwgaWYgZG9p bmcgc28gd291bGQgcmVxdWlyZSBpbmNsdWRpbmcgYQorCSAqIGZ1bGwtcGFnZSBpbWFnZSAoRlBJ KSBvZiB0aGUgaGVhcCBwYWdlIGluIHRoZSBXQUwuIFRoaXMgc2l0dWF0aW9uCisJICogc2hvdWxk IGJlIHJhcmUsIGFzIG9uLWFjY2VzcyBwcnVuaW5nIGlzIG9ubHkgYXR0ZW1wdGVkIHdoZW4KKwkg KiBwZF9wcnVuZV94aWQgaXMgdmFsaWQuCisJICovCisJaWYgKHJlYXNvbiA9PSBQUlVORV9PTl9B Q0NFU1MgJiYgIWRvX3BydW5lICYmICFkb19mcmVlemUgJiYKKwkJKCFCdWZmZXJJc0RpcnR5KHBy c3RhdGUtPmJ1ZmZlcikgfHwgWExvZ0NoZWNrQnVmZmVyTmVlZHNCYWNrdXAocHJzdGF0ZS0+YnVm ZmVyKSkpCisJeworCQlwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJcHJzdGF0 ZS0+c2V0X2FsbF9mcm96ZW4gPSBmYWxzZTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKwogCXByc3Rh dGUtPm5ld192bWJpdHMgPSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOwogCiAJaWYgKHByc3Rh dGUtPnNldF9hbGxfZnJvemVuKQpAQCAtMTE3MSw3ICsxMTkzLDcgQEAgaGVhcF9wYWdlX3BydW5l X2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAlBc3NlcnQoIXByc3RhdGUu c2V0X2FsbF9mcm96ZW4gfHwgcHJzdGF0ZS5zZXRfYWxsX3Zpc2libGUpOwogCUFzc2VydCghcHJz dGF0ZS5zZXRfYWxsX3Zpc2libGUgfHwgKHByc3RhdGUubHBkZWFkX2l0ZW1zID09IDApKTsKIAot CWRvX3NldF92bSA9IGhlYXBfcGFnZV93aWxsX3NldF92bSgmcHJzdGF0ZSwgcGFyYW1zLT5yZWFz b24pOworCWRvX3NldF92bSA9IGhlYXBfcGFnZV93aWxsX3NldF92bSgmcHJzdGF0ZSwgcGFyYW1z LT5yZWFzb24sIGRvX3BydW5lLCBkb19mcmVlemUpOwogCiAJLyoKIAkgKiBuZXdfdm1iaXRzIHNo b3VsZCBiZSAwIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvciBub3QgdGhlIHBhZ2UgaXMKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCBmNjk4YzJkODk5Yi4uMjQwMDFiMjczODcg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTIwMjEsNyArMjAyMSw3IEBA IGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJCS5idWZmZXIgPSBidWYsCiAJ CS52bWJ1ZmZlciA9IHZtYnVmZmVyLAogCQkucmVhc29uID0gUFJVTkVfVkFDVVVNX1NDQU4sCi0J CS5vcHRpb25zID0gSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSwKKwkJLm9wdGlvbnMgPSBIRUFQX1BB R0VfUFJVTkVfRlJFRVpFIHwgSEVBUF9QQUdFX1BSVU5FX1NFVF9WTSwKIAkJLnZpc3Rlc3QgPSB2 YWNyZWwtPnZpc3Rlc3QsCiAJCS5jdXRvZmZzID0gJnZhY3JlbC0+Y3V0b2ZmcywKIAl9OwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNz L2hlYXBhbS5oCmluZGV4IGM2YWVjNjNhNTA1Li45MGNhNWEyY2ZhOCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0u aApAQCAtNDMsNiArNDMsNyBAQAogI2RlZmluZSBIRUFQX1BBR0VfUFJVTkVfTUFSS19VTlVTRURf Tk9XCQkoMSA8PCAwKQogI2RlZmluZSBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFCQkJCSgxIDw8IDEp CiAjZGVmaW5lIEhFQVBfUEFHRV9QUlVORV9BTExPV19GQVNUX1BBVEgJCSgxIDw8IDIpCisjZGVm aW5lIEhFQVBfUEFHRV9QUlVORV9TRVRfVk0JCQkJKDEgPDwgMykKIAogdHlwZWRlZiBzdHJ1Y3Qg QnVsa0luc2VydFN0YXRlRGF0YSAqQnVsa0luc2VydFN0YXRlOwogdHlwZWRlZiBzdHJ1Y3QgR2xv YmFsVmlzU3RhdGUgR2xvYmFsVmlzU3RhdGU7CkBAIC05NSw3ICs5NiwxMiBAQCB0eXBlZGVmIHN0 cnVjdCBIZWFwU2NhbkRlc2NEYXRhCiAJICovCiAJUGFyYWxsZWxCbG9ja1RhYmxlU2Nhbldvcmtl ckRhdGEgKnJzX3BhcmFsbGVsd29ya2VyZGF0YTsKIAotCS8qIEN1cnJlbnQgaGVhcCBibG9jaydz IGNvcnJlc3BvbmRpbmcgcGFnZSBpbiB0aGUgdmlzaWJpbGl0eSBtYXAgKi8KKwkvKgorCSAqIEZv ciBzZXF1ZW50aWFsIHNjYW5zLCBiaXRtYXAgaGVhcCBzY2FucywgVElEIHJhbmdlIHNjYW5zLCBh bmQgc2FtcGxlCisJICogc2NhbnMuIFRoZSBjdXJyZW50IGhlYXAgYmxvY2sncyBjb3JyZXNwb25k aW5nIHBhZ2UgaW4gdGhlIHZpc2liaWxpdHkKKwkgKiBtYXAuIElmIHRoZSByZWxhdGlvbiBpcyBu b3QgbW9kaWZpZWQgYnkgdGhlIHF1ZXJ5LCBvbi1hY2Nlc3MgcHJ1bmluZworCSAqIG1heSBzZXQg dGhlIFZNLgorCSAqLwogCUJ1ZmZlcgkJcnNfdm1idWZmZXI7CiAKIAkvKiB0aGVzZSBmaWVsZHMg b25seSB1c2VkIGluIHBhZ2UtYXQtYS10aW1lIG1vZGUgYW5kIGZvciBiaXRtYXAgc2NhbnMgKi8K QEAgLTEyNiw3ICsxMzIsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgSW5kZXhGZXRjaEhlYXBEYXRhCiAJ ICovCiAJQnVmZmVyCQl4c19jYnVmOwogCi0JLyogQ3VycmVudCBoZWFwIGJsb2NrJ3MgY29ycmVz cG9uZGluZyBwYWdlIGluIHRoZSB2aXNpYmlsaXR5IG1hcCAqLworCS8qCisJICogQ3VycmVudCBo ZWFwIGJsb2NrJ3MgY29ycmVzcG9uZGluZyBwYWdlIGluIHRoZSB2aXNpYmlsaXR5IG1hcC4gRm9y CisJICogaW5kZXggc2NhbnMgdGhhdCBkbyBub3QgbW9kaWZ5IHRoZSB1bmRlcmx5aW5nIGhlYXAg dGFibGUsIG9uLWFjY2VzcworCSAqIHBydW5pbmcgbWF5IHNldCB0aGUgVk0gb24tYWNjZXNzLgor CSAqLwogCUJ1ZmZlcgkJeHNfdm1idWZmZXI7CiB9IEluZGV4RmV0Y2hIZWFwRGF0YTsKIApAQCAt NDMxLDcgKzQ0MSw3IEBAIGV4dGVybiBUcmFuc2FjdGlvbklkIGhlYXBfaW5kZXhfZGVsZXRlX3R1 cGxlcyhSZWxhdGlvbiByZWwsCiAKIC8qIGluIGhlYXAvcHJ1bmVoZWFwLmMgKi8KIGV4dGVybiB2 b2lkIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIs Ci0JCQkJCQkJCUJ1ZmZlciAqdm1idWZmZXIpOworCQkJCQkJCQlCdWZmZXIgKnZtYnVmZmVyLCBi b29sIHJlbF9yZWFkX29ubHkpOwogZXh0ZXJuIHZvaWQgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVl emUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAkJCQkJCQkJCSAgIFBydW5lRnJlZXplUmVz dWx0ICpwcmVzdWx0LAogCQkJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpvZmZfbG9jLAotLSAKMi40 My4wCgo= --000000000000a1e2a7064d7d2a75 Content-Type: text/x-patch; charset="UTF-8"; name="v42-0012-Set-pd_prune_xid-on-insert.patch" Content-Disposition: attachment; filename="v42-0012-Set-pd_prune_xid-on-insert.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmzjeuuk11 RnJvbSBjZjY4MDE2NmI2MDA5OWNhNzIwZmU3MDgyMDAzNGQzYmYzODM3ZGY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE2OjEyOjU2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDIgMTIvMTJdIFNldCBwZF9wcnVuZV94aWQgb24gaW5zZXJ0Ck1JTUUtVmVyc2lvbjog MS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiA4Yml0CgpOb3cgdGhhdCB2aXNpYmlsaXR5IG1hcCAoVk0pIHVwZGF0ZXMg Y2FuIG9jY3VyIGR1cmluZyByZWFkLW9ubHkgcXVlcmllcywKaXQgbWFrZXMgc2Vuc2UgdG8gYWxz byBzZXQgdGhlIHBhZ2XigJlzIHBkX3BydW5lX3hpZCBoaW50IGR1cmluZyBpbnNlcnRzCmFuZCBv biB0aGUgbmV3IHBhZ2UgZHVyaW5nIHVwZGF0ZXMuCgpUaGlzIGVuYWJsZXMgaGVhcF9wYWdlX3By dW5lX2FuZF9mcmVlemUoKSB0byBzZXQgdGhlIFZNIGFsbC12aXNpYmxlCmFmdGVyIGEgcGFnZSBp cyBmaWxsZWQgd2l0aCBuZXdseSBpbnNlcnRlZCB0dXBsZXMgdGhlIGZpcnN0IHRpbWUgaXQgaXMK cmVhZC4gVGhpcyBtZWFucyB0aGUgcGFnZSB3aWxsIGdldCBzZXQgYWxsLXZpc2libGUgd2hlbiBp dCBpcyBzdGlsbCBpbgpzaGFyZWQgYnVmZmVycyBhbmQgYXZvaWQgcG90ZW50aWFsIEkvTyBhbXBs aWZpY2F0aW9uIHdoZW4gdmFjdXVtIGxhdGVyCmhhcyB0byBzY2FuIHRoZSBwYWdlIGFuZCBzZXQg aXQgYWxsLXZpc2libGUuIEl0IGFsc28gZW5hYmxlcyBpbmRleC1vbmx5CnNjYW5zIG9mIG5ld2x5 IGluc2VydGVkIGRhdGEgbXVjaCBzb29uZXIuCgpUaGlzIGNoYW5nZSBhbHNvIGFkZHJlc3NlcyBh IGxvbmctc3RhbmRpbmcgbm90ZSBpbiBoZWFwX2luc2VydCgpIGFuZApoZWFwX211bHRpX2luc2Vy dCgpLCB3aGljaCBvYnNlcnZlZCB0aGF0IHNldHRpbmcgcGRfcHJ1bmVfeGlkIHdvdWxkCmhlbHAg Y2xlYW4gdXAgYWJvcnRlZCBpbnNlcnRpb25zIHNvb25lci4gV2l0aG91dCBpdCwgc3VjaCB0dXBs ZXMgbWlnaHQKbGluZ2VyIHVudGlsIFZBQ1VVTSwgd2hlcmVhcyBub3cgdGhleSBjYW4gYmUgcHJ1 bmVkIGVhcmxpZXIuCgpBdXRob3I6IE1lbGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBn bWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9AZ21haWwuY29tPgpEaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL2ZsYXQvQ0FBS1J1X1pNdzZOcGRfcW0yS00lMkJGd1EzY01P TXgxRGgzVk1ocDgtVjdTT0x4ZEs5LWclNDBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgfCA0MCArKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMgfCAxOSArKysrKysrKysr KystCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgIHwgMTggKysrKysrLS0t LS0tCiAzIGZpbGVzIGNoYW5nZWQsIDUyIGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXggZGJkZjY1MjFjNDIuLmJhMTFiYmMwM2E1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwpAQCAtMjE1Niw2ICsyMTU2LDcgQEAgaGVhcF9pbnNl cnQoUmVsYXRpb24gcmVsYXRpb24sIEhlYXBUdXBsZSB0dXAsIENvbW1hbmRJZCBjaWQsCiAJVHJh bnNhY3Rpb25JZCB4aWQgPSBHZXRDdXJyZW50VHJhbnNhY3Rpb25JZCgpOwogCUhlYXBUdXBsZQlo ZWFwdHVwOwogCUJ1ZmZlcgkJYnVmZmVyOworCVBhZ2UJCXBhZ2U7CiAJQnVmZmVyCQl2bWJ1ZmZl ciA9IEludmFsaWRCdWZmZXI7CiAJYm9vbAkJYWxsX3Zpc2libGVfY2xlYXJlZCA9IGZhbHNlOwog CkBAIC0yMTgyLDYgKzIxODMsOCBAQCBoZWFwX2luc2VydChSZWxhdGlvbiByZWxhdGlvbiwgSGVh cFR1cGxlIHR1cCwgQ29tbWFuZElkIGNpZCwKIAkJCQkJCQkJCSAgICZ2bWJ1ZmZlciwgTlVMTCwK IAkJCQkJCQkJCSAgIDApOwogCisJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKKwogCS8q CiAJICogV2UncmUgYWJvdXQgdG8gZG8gdGhlIGFjdHVhbCBpbnNlcnQgLS0gYnV0IGNoZWNrIGZv ciBjb25mbGljdCBmaXJzdCwgdG8KIAkgKiBhdm9pZCBwb3NzaWJseSBoYXZpbmcgdG8gcm9sbCBi YWNrIHdvcmsgd2UndmUganVzdCBkb25lLgpAQCAtMjIwNSwyNSArMjIwOCwzMCBAQCBoZWFwX2lu c2VydChSZWxhdGlvbiByZWxhdGlvbiwgSGVhcFR1cGxlIHR1cCwgQ29tbWFuZElkIGNpZCwKIAlS ZWxhdGlvblB1dEhlYXBUdXBsZShyZWxhdGlvbiwgYnVmZmVyLCBoZWFwdHVwLAogCQkJCQkJIChv cHRpb25zICYgSEVBUF9JTlNFUlRfU1BFQ1VMQVRJVkUpICE9IDApOwogCi0JaWYgKFBhZ2VJc0Fs bFZpc2libGUoQnVmZmVyR2V0UGFnZShidWZmZXIpKSkKKwlpZiAoUGFnZUlzQWxsVmlzaWJsZShw YWdlKSkKIAl7CiAJCWFsbF92aXNpYmxlX2NsZWFyZWQgPSB0cnVlOwotCQlQYWdlQ2xlYXJBbGxW aXNpYmxlKEJ1ZmZlckdldFBhZ2UoYnVmZmVyKSk7CisJCVBhZ2VDbGVhckFsbFZpc2libGUocGFn ZSk7CiAJCXZpc2liaWxpdHltYXBfY2xlYXIocmVsYXRpb24sCiAJCQkJCQkJSXRlbVBvaW50ZXJH ZXRCbG9ja051bWJlcigmKGhlYXB0dXAtPnRfc2VsZikpLAogCQkJCQkJCXZtYnVmZmVyLCBWSVNJ QklMSVRZTUFQX1ZBTElEX0JJVFMpOwogCX0KIAogCS8qCi0JICogWFhYIFNob3VsZCB3ZSBzZXQg UGFnZVNldFBydW5hYmxlIG9uIHRoaXMgcGFnZSA/CisJICogU2V0IHBkX3BydW5lX3hpZCB0byB0 cmlnZ2VyIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkgb25jZSB0aGUgcGFnZQorCSAqIGlz IGZ1bGwgc28gdGhhdCB3ZSBjYW4gc2V0IHRoZSBwYWdlIGFsbC12aXNpYmxlIGluIHRoZSBWTSBv biB0aGUgbmV4dAorCSAqIHBhZ2UgYWNjZXNzLgogCSAqCi0JICogVGhlIGluc2VydGluZyB0cmFu c2FjdGlvbiBtYXkgZXZlbnR1YWxseSBhYm9ydCB0aHVzIG1ha2luZyB0aGlzIHR1cGxlCi0JICog REVBRCBhbmQgaGVuY2UgYXZhaWxhYmxlIGZvciBwcnVuaW5nLiBUaG91Z2ggd2UgZG9uJ3Qgd2Fu dCB0byBvcHRpbWl6ZQotCSAqIGZvciBhYm9ydHMsIGlmIG5vIG90aGVyIHR1cGxlIGluIHRoaXMg cGFnZSBpcyBVUERBVEVkL0RFTEVURWQsIHRoZQotCSAqIGFib3J0ZWQgdHVwbGUgd2lsbCBuZXZl ciBiZSBwcnVuZWQgdW50aWwgbmV4dCB2YWN1dW0gaXMgdHJpZ2dlcmVkLgorCSAqIFNldHRpbmcg cGRfcHJ1bmVfeGlkIGlzIGFsc28gaGFuZHkgaWYgdGhlIGluc2VydGluZyB0cmFuc2FjdGlvbgor CSAqIGV2ZW50dWFsbHkgYWJvcnRzIG1ha2luZyB0aGlzIHR1cGxlIERFQUQgYW5kIGhlbmNlIGF2 YWlsYWJsZSBmb3IKKwkgKiBwcnVuaW5nLiBJZiBubyBvdGhlciB0dXBsZSBpbiB0aGlzIHBhZ2Ug aXMgVVBEQVRFZC9ERUxFVEVkLCB0aGUgYWJvcnRlZAorCSAqIHR1cGxlIHdvdWxkIG5ldmVyIG90 aGVyd2lzZSBiZSBwcnVuZWQgdW50aWwgbmV4dCB2YWN1dW0gaXMgdHJpZ2dlcmVkLgogCSAqCi0J ICogSWYgeW91IGRvIGFkZCBQYWdlU2V0UHJ1bmFibGUgaGVyZSwgYWRkIGl0IGluIGhlYXBfeGxv Z19pbnNlcnQgdG9vLgorCSAqIERvbid0IHNldCBpdCBpZiB3ZSBhcmUgaW4gYm9vdHN0cmFwIG1v ZGUgb3Igd2UgYXJlIGluc2VydGluZyBhIGZyb3plbgorCSAqIHR1cGxlLCBhcyB0aGVyZSBpcyBu byBmdXJ0aGVyIHBydW5pbmcvZnJlZXppbmcgbmVlZGVkIGluIHRob3NlIGNhc2VzLgogCSAqLwor CWlmIChUcmFuc2FjdGlvbklkSXNOb3JtYWwoeGlkKSAmJiAhKG9wdGlvbnMgJiBIRUFQX0lOU0VS VF9GUk9aRU4pKQorCQlQYWdlU2V0UHJ1bmFibGUocGFnZSwgeGlkKTsKIAogCU1hcmtCdWZmZXJE aXJ0eShidWZmZXIpOwogCkBAIC0yMjMzLDcgKzIyNDEsNiBAQCBoZWFwX2luc2VydChSZWxhdGlv biByZWxhdGlvbiwgSGVhcFR1cGxlIHR1cCwgQ29tbWFuZElkIGNpZCwKIAkJeGxfaGVhcF9pbnNl cnQgeGxyZWM7CiAJCXhsX2hlYXBfaGVhZGVyIHhsaGRyOwogCQlYTG9nUmVjUHRyCXJlY3B0cjsK LQkJUGFnZQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKIAkJdWludDgJCWluZm8gPSBY TE9HX0hFQVBfSU5TRVJUOwogCQlpbnQJCQlidWZmbGFncyA9IDA7CiAKQEAgLTI1OTgsOCArMjYw NSwxMyBAQCBoZWFwX211bHRpX2luc2VydChSZWxhdGlvbiByZWxhdGlvbiwgVHVwbGVUYWJsZVNs b3QgKipzbG90cywgaW50IG50dXBsZXMsCiAJCX0KIAogCQkvKgotCQkgKiBYWFggU2hvdWxkIHdl IHNldCBQYWdlU2V0UHJ1bmFibGUgb24gdGhpcyBwYWdlID8gU2VlIGhlYXBfaW5zZXJ0KCkKKwkJ ICogU2V0IHBkX3BydW5lX3hpZC4gU2VlIGhlYXBfaW5zZXJ0KCkgZm9yIG1vcmUgb24gd2h5IHdl IGRvIHRoaXMgd2hlbgorCQkgKiBpbnNlcnRpbmcgdHVwbGVzLiBUaGlzIG9ubHkgbWFrZXMgc2Vu c2UgaWYgd2UgYXJlbid0IGFscmVhZHkKKwkJICogc2V0dGluZyB0aGUgcGFnZSBmcm96ZW4gaW4g dGhlIFZNLiBXZSBhbHNvIGRvbid0IHNldCBpdCBpbgorCQkgKiBib290c3RyYXAgbW9kZS4KIAkJ ICovCisJCWlmICghYWxsX2Zyb3plbl9zZXQgJiYgVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhpZCkp CisJCQlQYWdlU2V0UHJ1bmFibGUocGFnZSwgeGlkKTsKIAogCQlNYXJrQnVmZmVyRGlydHkoYnVm ZmVyKTsKIApAQCAtNDE0MSwxMiArNDE1MywxMiBAQCBsMjoKIAkgKiB0aGUgc3Vic2VxdWVudCBw YWdlIHBydW5pbmcgd2lsbCBiZSBhIG5vLW9wIGFuZCB0aGUgaGludCB3aWxsIGJlCiAJICogY2xl YXJlZC4KIAkgKgotCSAqIFhYWCBTaG91bGQgd2Ugc2V0IGhpbnQgb24gbmV3YnVmIGFzIHdlbGw/ ICBJZiB0aGUgdHJhbnNhY3Rpb24gYWJvcnRzLAotCSAqIHRoZXJlIHdvdWxkIGJlIGEgcHJ1bmFi bGUgdHVwbGUgaW4gdGhlIG5ld2J1ZjsgYnV0IGZvciBub3cgd2UgY2hvb3NlCi0JICogbm90IHRv IG9wdGltaXplIGZvciBhYm9ydHMuICBOb3RlIHRoYXQgaGVhcF94bG9nX3VwZGF0ZSBtdXN0IGJl IGtlcHQgaW4KLQkgKiBzeW5jIGlmIHRoaXMgZGVjaXNpb24gY2hhbmdlcy4KKwkgKiBXZSBzZXQg dGhlIG5ldyBwYWdlIHBydW5hYmxlIGFzIHdlbGwuIFNlZSBoZWFwX2luc2VydCgpIGZvciBtb3Jl IG9uIHdoeQorCSAqIHdlIGRvIHRoaXMgd2hlbiBpbnNlcnRpbmcgdHVwbGVzLgogCSAqLwogCVBh Z2VTZXRQcnVuYWJsZShwYWdlLCB4aWQpOworCWlmIChuZXdidWYgIT0gYnVmZmVyKQorCQlQYWdl U2V0UHJ1bmFibGUobmV3cGFnZSwgeGlkKTsKIAogCWlmICh1c2VfaG90X3VwZGF0ZSkKIAl7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwppbmRleCAxMzAyYmIxM2UxOC4uZjNmNDE5 ZDNkYzEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAtNDUwLDYgKzQ1 MCwxNCBAQCBoZWFwX3hsb2dfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCWZy ZWVzcGFjZSA9IFBhZ2VHZXRIZWFwRnJlZVNwYWNlKHBhZ2UpOyAvKiBuZWVkZWQgdG8gdXBkYXRl IEZTTSBiZWxvdyAqLwogCisJCS8qCisJCSAqIFNldCB0aGUgcGFnZSBwcnVuYWJsZSB0byB0cmln Z2VyIG9uLWFjY2VzcyBwcnVuaW5nIGxhdGVyLCB3aGljaCBtYXkKKwkJICogc2V0IHRoZSBwYWdl IGFsbC12aXNpYmxlIGluIHRoZSBWTS4gU2VlIGNvbW1lbnRzIGluIGhlYXBfaW5zZXJ0KCkuCisJ CSAqLworCQlpZiAoVHJhbnNhY3Rpb25JZElzTm9ybWFsKFhMb2dSZWNHZXRYaWQocmVjb3JkKSkg JiYKKwkJCSFIZWFwVHVwbGVIZWFkZXJYbWluRnJvemVuKGh0dXApKQorCQkJUGFnZVNldFBydW5h YmxlKHBhZ2UsIFhMb2dSZWNHZXRYaWQocmVjb3JkKSk7CisKIAkJUGFnZVNldExTTihwYWdlLCBs c24pOwogCiAJCWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFS RUQpCkBAIC01OTksMTIgKzYwNywxOSBAQCBoZWFwX3hsb2dfbXVsdGlfaW5zZXJ0KFhMb2dSZWFk ZXJTdGF0ZSAqcmVjb3JkKQogCQlpZiAoeGxyZWMtPmZsYWdzICYgWExIX0lOU0VSVF9BTExfVklT SUJMRV9DTEVBUkVEKQogCQkJUGFnZUNsZWFyQWxsVmlzaWJsZShwYWdlKTsKIAotCQkvKiBYTEhf SU5TRVJUX0FMTF9GUk9aRU5fU0VUIGltcGxpZXMgdGhhdCBhbGwgdHVwbGVzIGFyZSB2aXNpYmxl ICovCisJCS8qCisJCSAqIFhMSF9JTlNFUlRfQUxMX0ZST1pFTl9TRVQgaW1wbGllcyB0aGF0IGFs bCB0dXBsZXMgYXJlIHZpc2libGUuIElmCisJCSAqIHdlIGFyZSBub3Qgc2V0dGluZyB0aGUgcGFn ZSBmcm96ZW4sIHRoZW4gc2V0IHRoZSBwYWdlJ3MgcHJ1bmFibGUKKwkJICogaGludCBzbyB0aGF0 IHdlIHRyaWdnZXIgb24tYWNjZXNzIHBydW5pbmcgbGF0ZXIgd2hpY2ggbWF5IHNldCB0aGUKKwkJ ICogcGFnZSBhbGwtdmlzaWJsZSBpbiB0aGUgVk0uCisJCSAqLwogCQlpZiAoeGxyZWMtPmZsYWdz ICYgWExIX0lOU0VSVF9BTExfRlJPWkVOX1NFVCkKIAkJewogCQkJUGFnZVNldEFsbFZpc2libGUo cGFnZSk7CiAJCQlQYWdlQ2xlYXJQcnVuYWJsZShwYWdlKTsKIAkJfQorCQllbHNlCisJCQlQYWdl U2V0UHJ1bmFibGUocGFnZSwgWExvZ1JlY0dldFhpZChyZWNvcmQpKTsKIAogCQlNYXJrQnVmZmVy RGlydHkoYnVmZmVyKTsKIAl9CkBAIC05MjEsNiArOTM2LDggQEAgaGVhcF94bG9nX3VwZGF0ZShY TG9nUmVhZGVyU3RhdGUgKnJlY29yZCwgYm9vbCBob3RfdXBkYXRlKQogCQlmcmVlc3BhY2UgPSBQ YWdlR2V0SGVhcEZyZWVTcGFjZShucGFnZSk7CiAKIAkJUGFnZVNldExTTihucGFnZSwgbHNuKTsK KwkJLyogU2VlIGhlYXBfaW5zZXJ0KCkgZm9yIHdoeSB3ZSBzZXQgcGRfcHJ1bmVfeGlkIG9uIGlu c2VydCAqLworCQlQYWdlU2V0UHJ1bmFibGUobnBhZ2UsIFhMb2dSZWNHZXRYaWQocmVjb3JkKSk7 CiAJCU1hcmtCdWZmZXJEaXJ0eShuYnVmZmVyKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1 bmVoZWFwLmMKaW5kZXggYzU2NDdiMTQ5NGIuLjA3ZTQ3ZDg5MjdiIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYwpAQCAtMjc5LDcgKzI3OSw4IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQo UmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIsCiAJLyoK IAkgKiBGaXJzdCBjaGVjayB3aGV0aGVyIHRoZXJlJ3MgYW55IGNoYW5jZSB0aGVyZSdzIHNvbWV0 aGluZyB0byBwcnVuZSwKIAkgKiBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGUgaG9yaXpvbiBp cyBhIHdhc3RlIGlmIHRoZXJlJ3Mgbm8gcHJ1bmVfeGlkCi0JICogKGkuZS4gbm8gdXBkYXRlcy9k ZWxldGVzIGxlZnQgcG90ZW50aWFsbHkgZGVhZCB0dXBsZXMgYXJvdW5kKS4KKwkgKiAoaS5lLiBu byB1cGRhdGVzL2RlbGV0ZXMgbGVmdCBwb3RlbnRpYWxseSBkZWFkIHR1cGxlcyBhcm91bmQgYW5k IG5vCisJICogaW5zZXJ0cyBpbnNlcnRlZCBuZXcgdHVwbGVzIHRoYXQgbWF5IGJlIHZpc2libGUg dG8gYWxsKS4KIAkgKi8KIAlwcnVuZV94aWQgPSBQYWdlR2V0UHJ1bmVYaWQocGFnZSk7CiAJaWYg KCFUcmFuc2FjdGlvbklkSXNWYWxpZChwcnVuZV94aWQpKQpAQCAtMTkyMiwxNyArMTkyMywxNCBA QCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBydW5lU3RhdGUgKnByc3Rh dGUsIE9mZnNldE51bWJlciBvZmZudW0pCiAJCQlwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUgPSBm YWxzZTsKIAkJCXByc3RhdGUtPnNldF9hbGxfZnJvemVuID0gZmFsc2U7CiAKLQkJCS8qIFRoZSBw YWdlIHNob3VsZCBub3QgYmUgbWFya2VkIGFsbC12aXNpYmxlICovCi0JCQlpZiAoUGFnZUlzQWxs VmlzaWJsZShwYWdlKSkKLQkJCQloZWFwX3BhZ2VfZml4X3ZtX2NvcnJ1cHRpb24ocHJzdGF0ZSwg b2ZmbnVtLAotCQkJCQkJCQkJCQlWTV9DT1JSVVBUX1RVUExFX1ZJU0lCSUxJVFkpOwotCiAJCQkv KgotCQkJICogSWYgd2Ugd2FudGVkIHRvIG9wdGltaXplIGZvciBhYm9ydHMsIHdlIG1pZ2h0IGNv bnNpZGVyIG1hcmtpbmcKLQkJCSAqIHRoZSBwYWdlIHBydW5hYmxlIHdoZW4gd2Ugc2VlIElOU0VS VF9JTl9QUk9HUkVTUy4gIEJ1dCB3ZQotCQkJICogZG9uJ3QuICBTZWUgcmVsYXRlZCBkZWNpc2lv bnMgYWJvdXQgd2hlbiB0byBtYXJrIHRoZSBwYWdlCi0JCQkgKiBwcnVuYWJsZSBpbiBoZWFwYW0u Yy4KKwkJCSAqIFRob3VnaCB0aGVyZSBpcyBub3RoaW5nICJwcnVuYWJsZSIgb24gdGhlIHBhZ2Us IHdlIG1haW50YWluCisJCQkgKiBwZF9wcnVuZV94aWQgZm9yIGluc2VydHMgc28gdGhhdCB3ZSBo YXZlIHRoZSBvcHBvcnR1bml0eSB0bworCQkJICogbWFyayB0aGVtIGFsbC12aXNpYmxlIGR1cmlu ZyB0aGUgbmV4dCByb3VuZCBvZiBwcnVuaW5nLgogCQkJICovCisJCQloZWFwX3BydW5lX3JlY29y ZF9wcnVuYWJsZShwcnN0YXRlLAorCQkJCQkJCQkJICAgSGVhcFR1cGxlSGVhZGVyR2V0WG1pbiho dHVwKSwKKwkJCQkJCQkJCSAgIG9mZm51bSk7CiAJCQlicmVhazsKIAogCQljYXNlIEhFQVBUVVBM RV9ERUxFVEVfSU5fUFJPR1JFU1M6Ci0tIAoyLjQzLjAKCg== --000000000000a1e2a7064d7d2a75--