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 1w7A2i-00515O-0A for pgsql-hackers@arkaria.postgresql.org; Mon, 30 Mar 2026 10:40:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w7A2g-002ZuX-1J for pgsql-hackers@arkaria.postgresql.org; Mon, 30 Mar 2026 10:40:22 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from <3danissimo@gmail.com>) id 1w7A2f-002ZuO-3C for pgsql-hackers@lists.postgresql.org; Mon, 30 Mar 2026 10:40:22 +0000 Received: from mail-yx1-xb129.google.com ([2607:f8b0:4864:20::b129]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from <3danissimo@gmail.com>) id 1w7A2c-00000001yfX-3TiY for pgsql-hackers@lists.postgresql.org; Mon, 30 Mar 2026 10:40:22 +0000 Received: by mail-yx1-xb129.google.com with SMTP id 956f58d0204a3-6501c4857b2so1743428d50.3 for ; Mon, 30 Mar 2026 03:40:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774867217; cv=none; d=google.com; s=arc-20240605; b=SWHKvt/kr7OPj+3EsnyozMpXXHo3yDOICeHPmd6WEQ2qY0Xkdt4HeI/nSxXaaTP5Tp S4yFzLqksghdwXhYLXCCdV4beWjuXuiGJou/D9w3BAGBXtmVBJPsE8lXiv2y4m4bNbUv jhZf0hTPEQ4o+WjOySddnQOp/pac9IyhnJaK7TEiEKgDhqOtWxHgMWxcBB/Zz7lOWxR/ FPa2c+1YAUNqLubs0kw9JruZlT8RuAuKaZv/OsKLtCB5v8vBfjvQpefrnOIif9n3gxWm NbyAUr/M274uARZ0ye4BI/zqCgjPcqUgW1cLxFHIRJhEOOLNeIlnKyHC5N+vIFhjO5AM WOLA== 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=lVGKqZk0+Ikbx3k0O/Hcr8m8NuRe6HtFTFJN4Nfbuqo=; fh=qXBVN/5HqylBW5LYkZy/j5EsuhWKhDI2JAiDYgdWDYs=; b=AuE3fwDvr4tkdp38+VNgXHqNNN5YkgPLUdEJB6ET7CtCzB34091YryJ6SRVTOLwLLm Q2uLGSxK41VEUGdYS7UvwaDQkZhF39Hp7M7A7bqSiPb686yaAcS/g7bl1IV13ffGzcTw 0vlANWJ7WCBlPlAAPlZ01YM/Zfdmvw9CID2ByCdZzq6NwWSxPfOOzwkOmDA1rzSalHpe iheeNA2YBX8l1VBmKBg/JVpboNPisTpPfAVpDxm2RcfgpNWgdS3FvvjwWvT9j8IHs2JJ pl5qJ961F7LwjeAAHLIwDH2Pa2T4idxgTA4NZBL3stelr8PjlBtLyBemCmWXpa7xfD5b Xl6g==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774867217; x=1775472017; 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=lVGKqZk0+Ikbx3k0O/Hcr8m8NuRe6HtFTFJN4Nfbuqo=; b=RtwtK0SVfOIpxwfFOo6xd5WzYzJ53MD/0cuE9LLBa2z79N415cxyBjYxFhJp1Lyl6w lnnAQ7T8i7KTszxck++1JKlG+oqE/dvgoD3mmVp3nH7wJtOm9V5JHF1h9KT/ZVkQjCZ4 +zNj+qtx9ZXvdyhXVQ9VO5zwNH2W9XIpgCki2N8UbWD6XTdR0wHMgfJBrOvSz96vNvjG pCtyhEWy/v08xCGgIB/FIuv4lI1Yqq+ECJ/UBcyGE7KT1wplYrRiwH3W7ec57uRcvjYB qjsBwHtYpigQVRdF2CSDNqtA3+6mVVaIhUr48MrdJ6KVa4BD/aIRVdA1Sc3H4p0Lsr5V TCww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774867217; x=1775472017; 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=lVGKqZk0+Ikbx3k0O/Hcr8m8NuRe6HtFTFJN4Nfbuqo=; b=T1vaGMycCXftpOuWlCOIW5S8TyHvXmilanNQKH8Pvh/54TvZvsGDkVgEoMbu2EebTX 0UXBOLYGWNy5SeF6VJ32GhNc5Y2hmsQAN8cJ8SEYsfyYIHwdKl3o6j9TJAyGFCV2mwt6 Txi/5T+mpVweeyz/1fPqplpn9ISSR/TqCn9Q+lLXg9gPYBhQklE/nhzl2haZ9ND89dmd pYDRnK+az3nfwC8yfdme/JNdfTHvKx4ciJTyib3A+hwerfs9NLoEJiuyaDhkY6HPQi7n aK3fY9oeU5msLqtc9KS9nPTdJsOLReL8rB+eDaCjJTz/iZl2mDlBheX5c2A8GC9egnAw 8ssw== X-Forwarded-Encrypted: i=1; AJvYcCWxZRBmfCE37JqoYVNfpZfjnJDf+q/cPkbJOU7AtxQP23Rgj/o8B/HQ3zUeOxJj5JezOxMKpPCzwpSkkhyB@lists.postgresql.org X-Gm-Message-State: AOJu0YyrXzHM10dY/9LfOgt2FuegpLMk6ksNMh5jEhSJiDQEZIhRQ0+a wqwZxrHCC/DvXNUpk7+7RUMikPXt9McScrTTpPdegH3RGpU+lNCPgvlC6UTemSPweqdMOW+7yQX 4LmsURSvO15hAD0ucNgZJCsxd7HgOqG8= X-Gm-Gg: ATEYQzwvXgee5LM06gOJMyS3zfNtXjYWHRihlSRev8FDqoQ98twxtyJQXz4r202VgN7 Z4t5FCv0iXKy4th54kFV1cfFNLAI/tRAJfVBTjofSkO6G+VWFDEzO2m4rcH7a+uGV1QBKEiXIEh Zd2XVjxjZ+KNKvNgw10y/2XjMJ/XyuqZ72Xx7p9Wqf+Ah4fC9FyeBYtZUl4a4LdDG4z1oGjY9vw l8AdPVq4JbDSAp86rH4++cxX1XW7M1c8vNtGozNJALgGczGLQRjVankjyMMtGz2WdwEYnA6s1/h X+OraT+K X-Received: by 2002:a05:690c:9505:b0:79b:e346:fd11 with SMTP id 00721157ae682-79be34703b2mr84599277b3.0.1774867217215; Mon, 30 Mar 2026 03:40:17 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Daniil Davydov <3danissimo@gmail.com> Date: Mon, 30 Mar 2026 17:40:05 +0700 X-Gm-Features: AQROBzCQNATxf0cnv-B9t8b1Irox3H4R7GJ3TPIhShrcQy9VDfXdQ2u2KErb1Tk Message-ID: Subject: Re: POC: Parallel processing of indexes in autovacuum To: SATYANARAYANA NARLAPURAM Cc: Bharath Rupireddy , Masahiko Sawada , Sami Imseih , Alexander Korotkov , Matheus Alcantara , Maxim Orlov , Postgres hackers Content-Type: multipart/mixed; boundary="00000000000001e88e064e3b7add" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000001e88e064e3b7add Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Mon, Mar 30, 2026 at 3:44=E2=80=AFPM Daniil Davydov <3danissimo@gmail.co= m> wrote: > > BTW, describing the cost limit propagation to the parallel a/v workers is > worth mentioning in the documentation. I'll add it in the next patch vers= ion. > You can find these changes in the v33 patch. I mentioned cost delay parameters propagation only in "The Autovacuum Daemo= n" chapter. I am not sure that we also should write about parallel workers in = the "Vacuuming" chapter (within cost based parameters description) since VACUUM PARALLEL doesn't do so. The only change in the 0001 patch is removing redundant empty line inside autovacuum.c . -- Best regards, Daniil Davydov --00000000000001e88e064e3b7add Content-Type: text/x-patch; charset="US-ASCII"; name="v33-0001-Parallel-autovacuum.patch" Content-Disposition: attachment; filename="v33-0001-Parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnd1x2ph1 RnJvbSBjZGRiMWMxM2M1N2YyNzA0ODQ2MDZmZjIxMDRlMmI5ODVhNWE3OTM5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUdWUsIDE3IE1hciAyMDI2IDAyOjE4OjA5ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MzMgMS8yXSBQYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9j b21tb24vcmVsb3B0aW9ucy5jICAgICAgICB8ICAxMSArCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92YWN1dW1sYXp5LmMgICAgICAgICAgfCAgMTIgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFj dXVtLmMgICAgICAgICAgICAgICAgIHwgIDIxICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy92YWN1 dW1wYXJhbGxlbC5jICAgICAgICAgfCAyMjMgKysrKysrKysrKysrKysrKystCiBzcmMvYmFja2Vu ZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYyAgICAgICAgICAgfCAgMjUgKy0KIHNyYy9iYWNrZW5k L3V0aWxzL2luaXQvZ2xvYmFscy5jICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC91 dGlscy9taXNjL2d1Yy5jICAgICAgICAgICAgICAgICAgfCAgIDkgKy0KIHNyYy9iYWNrZW5kL3V0 aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0ICAgICB8ICAgOCArCiBzcmMvYmFja2VuZC91dGls cy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgfCAgIDEgKwogc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRz L3ZhY3V1bS5oICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9taXNjYWRtaW4u aCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgg ICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy90ZXN0L21vZHVsZXMvTWFrZWZpbGUg ICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9tb2R1bGVzL21lc29uLmJ1aWxk ICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1 dW0vLmdpdGlnbm9yZSAgIHwgICAyICsKIHNyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVt L01ha2VmaWxlICAgICB8ICAyMCArKwogc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0v bWVzb24uYnVpbGQgIHwgIDE1ICsrCiAuLi4vdC8wMDFfcGFyYWxsZWxfYXV0b3ZhY3V1bS5wbCAg ICAgICAgICAgICAgfCAxOTUgKysrKysrKysrKysrKysrCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlw ZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDEgKwogMjAgZmlsZXMgY2hhbmdlZCwgNTM4IGlu c2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0 L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtLy5naXRpZ25vcmUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL21lc29uLmJ1aWxkCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdC8wMDFfcGFyYWxs ZWxfYXV0b3ZhY3V1bS5wbAoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24v cmVsb3B0aW9ucy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMKaW5k ZXggYTYwMDJhZTliMDcuLjU2ZGM5OWJkYmUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvY29tbW9uL3JlbG9wdGlvbnMuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3Jl bG9wdGlvbnMuYwpAQCAtMjM2LDYgKzIzNiwxNSBAQCBzdGF0aWMgcmVsb3B0X2ludCBpbnRSZWxP cHRzW10gPQogCQl9LAogCQlTUEdJU1RfREVGQVVMVF9GSUxMRkFDVE9SLCBTUEdJU1RfTUlOX0ZJ TExGQUNUT1IsIDEwMAogCX0sCisJeworCQl7CisJCQkiYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3Jr ZXJzIiwKKwkJCSJNYXhpbXVtIG51bWJlciBvZiBwYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtlcnMg dGhhdCBjYW4gYmUgdXNlZCBmb3IgcHJvY2Vzc2luZyB0aGlzIHRhYmxlLiIsCisJCQlSRUxPUFRf S0lORF9IRUFQLAorCQkJU2hhcmVVcGRhdGVFeGNsdXNpdmVMb2NrCisJCX0sCisJCS0xLCAtMSwg MTAyNAorCX0sCiAJewogCQl7CiAJCQkiYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkIiwKQEAg LTE5NjksNiArMTk3OCw4IEBAIGRlZmF1bHRfcmVsb3B0aW9ucyhEYXR1bSByZWxvcHRpb25zLCBi b29sIHZhbGlkYXRlLCByZWxvcHRfa2luZCBraW5kKQogCQl7ImZpbGxmYWN0b3IiLCBSRUxPUFRf VFlQRV9JTlQsIG9mZnNldG9mKFN0ZFJkT3B0aW9ucywgZmlsbGZhY3Rvcil9LAogCQl7ImF1dG92 YWN1dW1fZW5hYmxlZCIsIFJFTE9QVF9UWVBFX0JPT0wsCiAJCW9mZnNldG9mKFN0ZFJkT3B0aW9u cywgYXV0b3ZhY3V1bSkgKyBvZmZzZXRvZihBdXRvVmFjT3B0cywgZW5hYmxlZCl9LAorCQl7ImF1 dG92YWN1dW1fcGFyYWxsZWxfd29ya2VycyIsIFJFTE9QVF9UWVBFX0lOVCwKKwkJb2Zmc2V0b2Yo U3RkUmRPcHRpb25zLCBhdXRvdmFjdXVtKSArIG9mZnNldG9mKEF1dG9WYWNPcHRzLCBhdXRvdmFj dXVtX3BhcmFsbGVsX3dvcmtlcnMpfSwKIAkJeyJhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQi LCBSRUxPUFRfVFlQRV9JTlQsCiAJCW9mZnNldG9mKFN0ZFJkT3B0aW9ucywgYXV0b3ZhY3V1bSkg KyBvZmZzZXRvZihBdXRvVmFjT3B0cywgdmFjdXVtX3RocmVzaG9sZCl9LAogCQl7ImF1dG92YWN1 dW1fdmFjdXVtX21heF90aHJlc2hvbGQiLCBSRUxPUFRfVFlQRV9JTlQsCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC92YWN1dW1sYXp5LmMKaW5kZXggZjY5OGMyZDg5OWIuLjlmZDRmNmZlYmJlIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0xNTIsNiArMTUyLDcgQEAKICNpbmNsdWRl ICJzdG9yYWdlL2xhdGNoLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCiAjaW5jbHVkZSAi c3RvcmFnZS9yZWFkX3N0cmVhbS5oIgorI2luY2x1ZGUgInV0aWxzL2luamVjdGlvbl9wb2ludC5o IgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3BnX3J1c2Fn ZS5oIgogI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5oIgpAQCAtODYyLDYgKzg2MywxNyBAQCBo ZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAog CWxhenlfY2hlY2tfd3JhcGFyb3VuZF9mYWlsc2FmZSh2YWNyZWwpOwogCWRlYWRfaXRlbXNfYWxs b2ModmFjcmVsLCBwYXJhbXMubndvcmtlcnMpOwogCisjaWZkZWYgVVNFX0lOSkVDVElPTl9QT0lO VFMKKworCS8qCisJICogVXNlZCBieSB0ZXN0cyB0byBwYXVzZSBiZWZvcmUgcGFyYWxsZWwgdmFj dXVtIGlzIGxhdW5jaGVkLCBhbGxvd2luZworCSAqIHRlc3QgY29kZSB0byBtb2RpZnkgY29uZmln dXJhdGlvbiB0aGF0IHRoZSBsZWFkZXIgdGhlbiBwcm9wYWdhdGVzIHRvCisJICogd29ya2Vycy4K KwkgKi8KKwlpZiAoQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpICYmIFBhcmFsbGVsVmFjdXVt SXNBY3RpdmUodmFjcmVsKSkKKwkJSU5KRUNUSU9OX1BPSU5UKCJhdXRvdmFjdXVtLXN0YXJ0LXBh cmFsbGVsLXZhY3V1bSIsIE5VTEwpOworI2VuZGlmCisKIAkvKgogCSAqIENhbGwgbGF6eV9zY2Fu X2hlYXAgdG8gcGVyZm9ybSBhbGwgcmVxdWlyZWQgaGVhcCBwcnVuaW5nLCBpbmRleAogCSAqIHZh Y3V1bWluZywgYW5kIGhlYXAgdmFjdXVtaW5nIChwbHVzIHJlbGF0ZWQgcHJvY2Vzc2luZykKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvdmFjdXVtLmMKaW5kZXggYmNlM2EyZGFhMjQuLjFiNWJhM2NlMWVmIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy92YWN1dW0uYwpAQCAtMjQzNSw4ICsyNDM1LDE5IEBAIHZhY3V1bV9kZWxheV9wb2ludChib29s IGlzX2FuYWx5emUpCiAJLyogQWx3YXlzIGNoZWNrIGZvciBpbnRlcnJ1cHRzICovCiAJQ0hFQ0tf Rk9SX0lOVEVSUlVQVFMoKTsKIAotCWlmIChJbnRlcnJ1cHRQZW5kaW5nIHx8Ci0JCSghVmFjdXVt Q29zdEFjdGl2ZSAmJiAhQ29uZmlnUmVsb2FkUGVuZGluZykpCisJaWYgKEludGVycnVwdFBlbmRp bmcpCisJCXJldHVybjsKKworCWlmIChJc1BhcmFsbGVsV29ya2VyKCkpCisJeworCQkvKgorCQkg KiBVcGRhdGUgY29zdC1iYXNlZCB2YWN1dW0gZGVsYXkgcGFyYW1ldGVycyBmb3IgYSBwYXJhbGxl bCBhdXRvdmFjdXVtCisJCSAqIHdvcmtlciBpZiBhbnkgY2hhbmdlcyBhcmUgZGV0ZWN0ZWQuCisJ CSAqLworCQlwYXJhbGxlbF92YWN1dW1fdXBkYXRlX3NoYXJlZF9kZWxheV9wYXJhbXMoKTsKKwl9 CisKKwlpZiAoIVZhY3V1bUNvc3RBY3RpdmUgJiYgIUNvbmZpZ1JlbG9hZFBlbmRpbmcpCiAJCXJl dHVybjsKIAogCS8qCkBAIC0yNDUwLDYgKzI0NjEsMTIgQEAgdmFjdXVtX2RlbGF5X3BvaW50KGJv b2wgaXNfYW5hbHl6ZSkKIAkJQ29uZmlnUmVsb2FkUGVuZGluZyA9IGZhbHNlOwogCQlQcm9jZXNz Q29uZmlnRmlsZShQR0NfU0lHSFVQKTsKIAkJVmFjdXVtVXBkYXRlQ29zdHMoKTsKKworCQkvKgor CQkgKiBQcm9wYWdhdGUgY29zdC1iYXNlZCB2YWN1dW0gZGVsYXkgcGFyYW1ldGVycyB0byBzaGFy ZWQgbWVtb3J5IGlmCisJCSAqIGFueSBvZiB0aGVtIGhhdmUgY2hhbmdlZCBkdXJpbmcgdGhlIGNv bmZpZyByZWxvYWQuCisJCSAqLworCQlwYXJhbGxlbF92YWN1dW1fcHJvcGFnYXRlX3NoYXJlZF9k ZWxheV9wYXJhbXMoKTsKIAl9CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdmFjdXVtcGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVs LmMKaW5kZXggNzc4MzRiOTZhMjEuLjEzNTQ0ZGU1YjkzIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zh Y3V1bXBhcmFsbGVsLmMKQEAgLTEsNyArMSw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAg KiB2YWN1dW1wYXJhbGxlbC5jCi0gKgkgIFN1cHBvcnQgcm91dGluZXMgZm9yIHBhcmFsbGVsIHZh Y3V1bSBleGVjdXRpb24uCisgKgkgIFN1cHBvcnQgcm91dGluZXMgZm9yIHBhcmFsbGVsIHZhY3V1 bSBhbmQgYXV0b3ZhY3V1bSBleGVjdXRpb24uIEluIHRoZQorICoJICBjb21tZW50cyBiZWxvdywg dGhlIHdvcmQgInZhY3V1bSIgd2lsbCByZWZlciB0byBib3RoIHZhY3V1bSBhbmQKKyAqCSAgYXV0 b3ZhY3V1bS4KICAqCiAgKiBUaGlzIGZpbGUgY29udGFpbnMgcm91dGluZXMgdGhhdCBhcmUgaW50 ZW5kZWQgdG8gc3VwcG9ydCBzZXR0aW5nIHVwLCB1c2luZywKICAqIGFuZCB0ZWFyaW5nIGRvd24g YSBQYXJhbGxlbFZhY3V1bVN0YXRlLgpAQCAtMTYsNiArMTgsMTMgQEAKICAqIHRoZSBwYXJhbGxl bCBjb250ZXh0IGlzIHJlLWluaXRpYWxpemVkIHNvIHRoYXQgdGhlIHNhbWUgRFNNIGNhbiBiZSB1 c2VkIGZvcgogICogbXVsdGlwbGUgcGFzc2VzIG9mIGluZGV4IGJ1bGstZGVsZXRpb24gYW5kIGlu ZGV4IGNsZWFudXAuCiAgKgorICogRm9yIHBhcmFsbGVsIGF1dG92YWN1dW0sIHdlIG5lZWQgdG8g cHJvcGFnYXRlIGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5CisgKiBwYXJhbWV0ZXJzIGZyb20gdGhl IGxlYWRlciB0byBpdHMgd29ya2VycywgYXMgdGhlIGxlYWRlcidzIHBhcmFtZXRlcnMgY2FuCisg KiBjaGFuZ2UgZXZlbiB3aGlsZSBwcm9jZXNzaW5nIGEgdGFibGUgKGUuZy4sIGR1ZSB0byBhIGNv bmZpZyByZWxvYWQpLgorICogVGhlIFBWU2hhcmVkQ29zdFBhcmFtcyBzdHJ1Y3QgbWFuYWdlcyB0 aGVzZSBwYXJhbWV0ZXJzIHVzaW5nIGEKKyAqIGdlbmVyYXRpb24gY291bnRlci4gRWFjaCBwYXJh bGxlbCB3b3JrZXIgcG9sbHMgdGhpcyBzaGFyZWQgc3RhdGUgYW5kCisgKiByZWZyZXNoZXMgaXRz IGxvY2FsIGRlbGF5IHBhcmFtZXRlcnMgd2hlbmV2ZXIgYSBjaGFuZ2UgaXMgZGV0ZWN0ZWQuCisg KgogICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjYsIFBvc3RncmVTUUwgR2xvYmFs IERldmVsb3BtZW50IEdyb3VwCiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2Vu dHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQogICoKQEAgLTM3LDYgKzQ2LDcgQEAK ICNpbmNsdWRlICJzdG9yYWdlL2J1Zm1nci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvcHJvYy5oIgog I2luY2x1ZGUgInRjb3AvdGNvcHByb3QuaCIKKyNpbmNsdWRlICJ1dGlscy9pbmplY3Rpb25fcG9p bnQuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9yZWwu aCIKIApAQCAtNTEsNiArNjEsMzMgQEAKICNkZWZpbmUgUEFSQUxMRUxfVkFDVVVNX0tFWV9XQUxf VVNBR0UJCTQKICNkZWZpbmUgUEFSQUxMRUxfVkFDVVVNX0tFWV9JTkRFWF9TVEFUUwkJNQogCisv KgorICogU3RydWN0IGZvciBjb3N0LWJhc2VkIHZhY3V1bSBkZWxheSByZWxhdGVkIHBhcmFtZXRl cnMgdG8gc2hhcmUgYW1vbmcgYW4KKyAqIGF1dG92YWN1dW0gd29ya2VyIGFuZCBpdHMgcGFyYWxs ZWwgdmFjdXVtIHdvcmtlcnMuCisgKi8KK3R5cGVkZWYgc3RydWN0IFBWU2hhcmVkQ29zdFBhcmFt cworeworCS8qCisJICogVGhlIGdlbmVyYXRpb24gY291bnRlciBpcyBpbmNyZW1lbnRlZCBieSB0 aGUgbGVhZGVyIHByb2Nlc3MgZWFjaCB0aW1lCisJICogaXQgdXBkYXRlcyB0aGUgc2hhcmVkIGNv c3QtYmFzZWQgdmFjdXVtIGRlbGF5IHBhcmFtZXRlcnMuIFBhcmFsbGVsCisJICogdmFjdXVtIHdv cmtlcnMgY29tcGFyZXMgaXQgd2l0aCB0aGVpciBsb2NhbCBnZW5lcmF0aW9uLAorCSAqIHNoYXJl ZF9wYXJhbXNfZ2VuZXJhdGlvbl9sb2NhbCwgdG8gZGV0ZWN0IHdoZXRoZXIgdGhleSBuZWVkIHRv IHJlZnJlc2gKKwkgKiB0aGVpciBsb2NhbCBwYXJhbWV0ZXJzLiBUaGUgZ2VuZXJhdGlvbiBzdGFy dHMgZnJvbSAxIHNvIHRoYXQgYSBmcmVzaGx5CisJICogc3RhcnRlZCB3b3JrZXIgKHdob3NlIGxv Y2FsIGNvcHkgaXMgMCkgd2lsbCBhbHdheXMgbG9hZCB0aGUgaW5pdGlhbAorCSAqIHBhcmFtZXRl cnMgb24gaXRzIGZpcnN0IGNoZWNrLgorCSAqLworCXBnX2F0b21pY191aW50MzIgZ2VuZXJhdGlv bjsKKworCXNsb2NrX3QJCW11dGV4OwkJCS8qIHByb3RlY3RzIGFsbCBmaWVsZHMgYmVsb3cgKi8K KworCS8qIFBhcmFtZXRlcnMgdG8gc2hhcmUgd2l0aCBwYXJhbGxlbCB3b3JrZXJzICovCisJZG91 YmxlCQljb3N0X2RlbGF5OworCWludAkJCWNvc3RfbGltaXQ7CisJaW50CQkJY29zdF9wYWdlX2Rp cnR5OworCWludAkJCWNvc3RfcGFnZV9oaXQ7CisJaW50CQkJY29zdF9wYWdlX21pc3M7Cit9IFBW U2hhcmVkQ29zdFBhcmFtczsKKwogLyoKICAqIFNoYXJlZCBpbmZvcm1hdGlvbiBhbW9uZyBwYXJh bGxlbCB3b3JrZXJzLiAgU28gdGhpcyBpcyBhbGxvY2F0ZWQgaW4gdGhlIERTTQogICogc2VnbWVu dC4KQEAgLTEyMCw2ICsxNTcsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgUFZTaGFyZWQKIAogCS8qIFN0 YXRpc3RpY3Mgb2Ygc2hhcmVkIGRlYWQgaXRlbXMgKi8KIAlWYWNEZWFkSXRlbXNJbmZvIGRlYWRf aXRlbXNfaW5mbzsKKworCS8qCisJICogSWYgJ3RydWUnIHRoZW4gd2UgYXJlIHJ1bm5pbmcgcGFy YWxsZWwgYXV0b3ZhY3V1bS4gT3RoZXJ3aXNlLCB3ZSBhcmUKKwkgKiBydW5uaW5nIHBhcmFsbGVs IG1haW50ZW5hbmNlIFZBQ1VVTS4KKwkgKi8KKwlib29sCQlpc19hdXRvdmFjdXVtOworCisJLyoK KwkgKiBDb3N0LWJhc2VkIHZhY3V1bSBkZWxheSBwYXJhbWV0ZXJzIHNoYXJlZCBiZXR3ZWVuIHRo ZSBhdXRvdmFjdXVtIGxlYWRlcgorCSAqIGFuZCBpdHMgcGFyYWxsZWwgd29ya2Vycy4KKwkgKi8K KwlQVlNoYXJlZENvc3RQYXJhbXMgY29zdF9wYXJhbXM7CiB9IFBWU2hhcmVkOwogCiAvKiBTdGF0 dXMgdXNlZCBkdXJpbmcgcGFyYWxsZWwgaW5kZXggdmFjdXVtIG9yIGNsZWFudXAgKi8KQEAgLTIy Miw2ICsyNzEsMTcgQEAgc3RydWN0IFBhcmFsbGVsVmFjdXVtU3RhdGUKIAlQVkluZFZhY1N0YXR1 cyBzdGF0dXM7CiB9OwogCitzdGF0aWMgUFZTaGFyZWRDb3N0UGFyYW1zICpwdl9zaGFyZWRfY29z dF9wYXJhbXMgPSBOVUxMOworCisvKgorICogV29ya2VyLWxvY2FsIGNvcHkgb2YgdGhlIGxhc3Qg Y29zdC1wYXJhbWV0ZXIgZ2VuZXJhdGlvbiB0aGlzIHdvcmtlciBoYXMKKyAqIGFwcGxpZWQuICBJ bml0aWFsaXplZCB0byAwOyBzaW5jZSB0aGUgbGVhZGVyIGluaXRpYWxpemVzIHRoZSBzaGFyZWQK KyAqIGdlbmVyYXRpb24gY291bnRlciB0byAxLCB0aGUgZmlyc3QgY2FsbCB0bworICogcGFyYWxs ZWxfdmFjdXVtX3VwZGF0ZV9zaGFyZWRfZGVsYXlfcGFyYW1zKCkgd2lsbCBhbHdheXMgZGV0ZWN0 IGEKKyAqIG1pc21hdGNoIGFuZCByZWFkIHRoZSBpbml0aWFsIHBhcmFtZXRlcnMgZnJvbSBzaGFy ZWQgbWVtb3J5LgorICovCitzdGF0aWMgdWludDMyIHNoYXJlZF9wYXJhbXNfZ2VuZXJhdGlvbl9s b2NhbCA9IDA7CisKIHN0YXRpYyBpbnQJcGFyYWxsZWxfdmFjdXVtX2NvbXB1dGVfd29ya2VycyhS ZWxhdGlvbiAqaW5kcmVscywgaW50IG5pbmRleGVzLCBpbnQgbnJlcXVlc3RlZCwKIAkJCQkJCQkJ CQkJYm9vbCAqd2lsbF9wYXJhbGxlbF92YWN1dW0pOwogc3RhdGljIHZvaWQgcGFyYWxsZWxfdmFj dXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBpbnQgbnVt X2luZGV4X3NjYW5zLApAQCAtMjMzLDYgKzI5Myw3IEBAIHN0YXRpYyB2b2lkIHBhcmFsbGVsX3Zh Y3V1bV9wcm9jZXNzX29uZV9pbmRleChQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIFJlbGF0aW9u CiBzdGF0aWMgYm9vbCBwYXJhbGxlbF92YWN1dW1faW5kZXhfaXNfcGFyYWxsZWxfc2FmZShSZWxh dGlvbiBpbmRyZWwsIGludCBudW1faW5kZXhfc2NhbnMsCiAJCQkJCQkJCQkJCQkgICBib29sIHZh Y3V1bSk7CiBzdGF0aWMgdm9pZCBwYXJhbGxlbF92YWN1dW1fZXJyb3JfY2FsbGJhY2sodm9pZCAq YXJnKTsKK3N0YXRpYyBpbmxpbmUgdm9pZCBwYXJhbGxlbF92YWN1dW1fc2V0X2Nvc3RfcGFyYW1l dGVycyhQVlNoYXJlZENvc3RQYXJhbXMgKnBhcmFtcyk7CiAKIC8qCiAgKiBUcnkgdG8gZW50ZXIg cGFyYWxsZWwgbW9kZSBhbmQgY3JlYXRlIGEgcGFyYWxsZWwgY29udGV4dC4gIFRoZW4gaW5pdGlh bGl6ZQpAQCAtMzc0LDggKzQzNSw5IEBAIHBhcmFsbGVsX3ZhY3V1bV9pbml0KFJlbGF0aW9uIHJl bCwgUmVsYXRpb24gKmluZHJlbHMsIGludCBuaW5kZXhlcywKIAlzaGFyZWQtPnF1ZXJ5aWQgPSBw Z3N0YXRfZ2V0X215X3F1ZXJ5X2lkKCk7CiAJc2hhcmVkLT5tYWludGVuYW5jZV93b3JrX21lbV93 b3JrZXIgPQogCQkobmluZGV4ZXNfbXdtID4gMCkgPwotCQltYWludGVuYW5jZV93b3JrX21lbSAv IE1pbihwYXJhbGxlbF93b3JrZXJzLCBuaW5kZXhlc19td20pIDoKLQkJbWFpbnRlbmFuY2Vfd29y a19tZW07CisJCXZhY193b3JrX21lbSAvIE1pbihwYXJhbGxlbF93b3JrZXJzLCBuaW5kZXhlc19t d20pIDoKKwkJdmFjX3dvcmtfbWVtOworCiAJc2hhcmVkLT5kZWFkX2l0ZW1zX2luZm8ubWF4X2J5 dGVzID0gdmFjX3dvcmtfbWVtICogKHNpemVfdCkgMTAyNDsKIAogCS8qIFByZXBhcmUgRFNBIHNw YWNlIGZvciBkZWFkIGl0ZW1zICovCkBAIC0zOTIsNiArNDU0LDIxIEBAIHBhcmFsbGVsX3ZhY3V1 bV9pbml0KFJlbGF0aW9uIHJlbCwgUmVsYXRpb24gKmluZHJlbHMsIGludCBuaW5kZXhlcywKIAlw Z19hdG9taWNfaW5pdF91MzIoJihzaGFyZWQtPmFjdGl2ZV9ud29ya2VycyksIDApOwogCXBnX2F0 b21pY19pbml0X3UzMigmKHNoYXJlZC0+aWR4KSwgMCk7CiAKKwlzaGFyZWQtPmlzX2F1dG92YWN1 dW0gPSBBbUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCk7CisKKwkvKgorCSAqIEluaXRpYWxpemUg c2hhcmVkIGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5IHBhcmFtZXRlcnMgaWYgaXQncyBmb3IKKwkg KiBhdXRvdmFjdXVtLgorCSAqLworCWlmIChzaGFyZWQtPmlzX2F1dG92YWN1dW0pCisJeworCQlw YXJhbGxlbF92YWN1dW1fc2V0X2Nvc3RfcGFyYW1ldGVycygmc2hhcmVkLT5jb3N0X3BhcmFtcyk7 CisJCXBnX2F0b21pY19pbml0X3UzMigmc2hhcmVkLT5jb3N0X3BhcmFtcy5nZW5lcmF0aW9uLCAx KTsKKwkJU3BpbkxvY2tJbml0KCZzaGFyZWQtPmNvc3RfcGFyYW1zLm11dGV4KTsKKworCQlwdl9z aGFyZWRfY29zdF9wYXJhbXMgPSAmKHNoYXJlZC0+Y29zdF9wYXJhbXMpOworCX0KKwogCXNobV90 b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfVkFDVVVNX0tFWV9TSEFSRUQsIHNoYXJlZCk7 CiAJcHZzLT5zaGFyZWQgPSBzaGFyZWQ7CiAKQEAgLTQ1Nyw2ICs1MzQsOSBAQCBwYXJhbGxlbF92 YWN1dW1fZW5kKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgSW5kZXhCdWxrRGVsZXRlUmVzdWx0 ICoqaXN0YXRzKQogCURlc3Ryb3lQYXJhbGxlbENvbnRleHQocHZzLT5wY3h0KTsKIAlFeGl0UGFy YWxsZWxNb2RlKCk7CiAKKwlpZiAoQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpKQorCQlwdl9z aGFyZWRfY29zdF9wYXJhbXMgPSBOVUxMOworCiAJcGZyZWUocHZzLT53aWxsX3BhcmFsbGVsX3Zh Y3V1bSk7CiAJcGZyZWUocHZzKTsKIH0KQEAgLTUzNCw2ICs2MTQsMTAzIEBAIHBhcmFsbGVsX3Zh Y3V1bV9jbGVhbnVwX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgbG9uZyBu dW1fdGFibGVfdHVwCiAJcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMocHZzLCBu dW1faW5kZXhfc2NhbnMsIGZhbHNlLCB3c3RhdHMpOwogfQogCisvKgorICogRmlsbCBpbiB0aGUg Z2l2ZW4gc3RydWN0dXJlIHdpdGggY29zdC1iYXNlZCB2YWN1dW0gZGVsYXkgcGFyYW1ldGVyIHZh bHVlcy4KKyAqLworc3RhdGljIGlubGluZSB2b2lkCitwYXJhbGxlbF92YWN1dW1fc2V0X2Nvc3Rf cGFyYW1ldGVycyhQVlNoYXJlZENvc3RQYXJhbXMgKnBhcmFtcykKK3sKKwlwYXJhbXMtPmNvc3Rf ZGVsYXkgPSB2YWN1dW1fY29zdF9kZWxheTsKKwlwYXJhbXMtPmNvc3RfbGltaXQgPSB2YWN1dW1f Y29zdF9saW1pdDsKKwlwYXJhbXMtPmNvc3RfcGFnZV9kaXJ0eSA9IFZhY3V1bUNvc3RQYWdlRGly dHk7CisJcGFyYW1zLT5jb3N0X3BhZ2VfaGl0ID0gVmFjdXVtQ29zdFBhZ2VIaXQ7CisJcGFyYW1z LT5jb3N0X3BhZ2VfbWlzcyA9IFZhY3V1bUNvc3RQYWdlTWlzczsKK30KKworLyoKKyAqIFVwZGF0 ZXMgdGhlIGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5IHBhcmFtZXRlcnMgZm9yIHBhcmFsbGVsIGF1 dG92YWN1dW0KKyAqIHdvcmtlcnMuCisgKgorICogRm9yIG5vbi1hdXRvdmFjdXVtIHBhcmFsbGVs IHdvcmtlcnMsIHRoaXMgZnVuY3Rpb24gd2lsbCBoYXZlIG5vIGVmZmVjdC4KKyAqLwordm9pZAor cGFyYWxsZWxfdmFjdXVtX3VwZGF0ZV9zaGFyZWRfZGVsYXlfcGFyYW1zKHZvaWQpCit7CisJdWlu dDMyCQlwYXJhbXNfZ2VuZXJhdGlvbjsKKworCUFzc2VydChJc1BhcmFsbGVsV29ya2VyKCkpOwor CisJLyogUXVpY2sgcmV0dXJuIGlmIHRoZSB3b3JrZXIgaXMgbm90IHJ1bm5pbmcgZm9yIHRoZSBh dXRvdmFjdXVtICovCisJaWYgKHB2X3NoYXJlZF9jb3N0X3BhcmFtcyA9PSBOVUxMKQorCQlyZXR1 cm47CisKKwlwYXJhbXNfZ2VuZXJhdGlvbiA9IHBnX2F0b21pY19yZWFkX3UzMigmcHZfc2hhcmVk X2Nvc3RfcGFyYW1zLT5nZW5lcmF0aW9uKTsKKwlBc3NlcnQoc2hhcmVkX3BhcmFtc19nZW5lcmF0 aW9uX2xvY2FsIDw9IHBhcmFtc19nZW5lcmF0aW9uKTsKKworCS8qIFJldHVybiBpZiBwYXJhbWV0 ZXJzIGhhZCBub3QgY2hhbmdlZCBpbiB0aGUgbGVhZGVyICovCisJaWYgKHBhcmFtc19nZW5lcmF0 aW9uID09IHNoYXJlZF9wYXJhbXNfZ2VuZXJhdGlvbl9sb2NhbCkKKwkJcmV0dXJuOworCisJU3Bp bkxvY2tBY3F1aXJlKCZwdl9zaGFyZWRfY29zdF9wYXJhbXMtPm11dGV4KTsKKwlWYWN1dW1Db3N0 RGVsYXkgPSBwdl9zaGFyZWRfY29zdF9wYXJhbXMtPmNvc3RfZGVsYXk7CisJVmFjdXVtQ29zdExp bWl0ID0gcHZfc2hhcmVkX2Nvc3RfcGFyYW1zLT5jb3N0X2xpbWl0OworCVZhY3V1bUNvc3RQYWdl RGlydHkgPSBwdl9zaGFyZWRfY29zdF9wYXJhbXMtPmNvc3RfcGFnZV9kaXJ0eTsKKwlWYWN1dW1D b3N0UGFnZUhpdCA9IHB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+Y29zdF9wYWdlX2hpdDsKKwlWYWN1 dW1Db3N0UGFnZU1pc3MgPSBwdl9zaGFyZWRfY29zdF9wYXJhbXMtPmNvc3RfcGFnZV9taXNzOwor CVNwaW5Mb2NrUmVsZWFzZSgmcHZfc2hhcmVkX2Nvc3RfcGFyYW1zLT5tdXRleCk7CisKKwlWYWN1 dW1VcGRhdGVDb3N0cygpOworCisJc2hhcmVkX3BhcmFtc19nZW5lcmF0aW9uX2xvY2FsID0gcGFy YW1zX2dlbmVyYXRpb247CisKKwllbG9nKERFQlVHMiwKKwkJICJwYXJhbGxlbCBhdXRvdmFjdXVt IHdvcmtlciB1cGRhdGVkIGNvc3QgcGFyYW1zOiBjb3N0X2xpbWl0PSVkLCBjb3N0X2RlbGF5PSVn LCBjb3N0X3BhZ2VfbWlzcz0lZCwgY29zdF9wYWdlX2RpcnR5PSVkLCBjb3N0X3BhZ2VfaGl0PSVk IiwKKwkJIHZhY3V1bV9jb3N0X2xpbWl0LAorCQkgdmFjdXVtX2Nvc3RfZGVsYXksCisJCSBWYWN1 dW1Db3N0UGFnZU1pc3MsCisJCSBWYWN1dW1Db3N0UGFnZURpcnR5LAorCQkgVmFjdXVtQ29zdFBh Z2VIaXQpOworfQorCisvKgorICogU3RvcmUgdGhlIGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5IHBh cmFtZXRlcnMgaW4gdGhlIHNoYXJlZCBtZW1vcnkgc28gdGhhdAorICogcGFyYWxsZWwgdmFjdXVt IHdvcmtlcnMgY2FuIGNvbnN1bWUgdGhlbSAoc2VlCisgKiBwYXJhbGxlbF92YWN1dW1fdXBkYXRl X3NoYXJlZF9kZWxheV9wYXJhbXMoKSkuCisgKi8KK3ZvaWQKK3BhcmFsbGVsX3ZhY3V1bV9wcm9w YWdhdGVfc2hhcmVkX2RlbGF5X3BhcmFtcyh2b2lkKQoreworCUFzc2VydChBbUF1dG9WYWN1dW1X b3JrZXJQcm9jZXNzKCkpOworCisJLyoKKwkgKiBRdWljayByZXR1cm4gaWYgdGhlIGxlYWRlciBw cm9jZXNzIGlzIG5vdCBzaGFyaW5nIHRoZSBkZWxheSBwYXJhbWV0ZXJzLgorCSAqLworCWlmIChw dl9zaGFyZWRfY29zdF9wYXJhbXMgPT0gTlVMTCkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBDaGVj ayBpZiBhbnkgZGVsYXkgcGFyYW1ldGVycyBoYXZlIGNoYW5nZWQuIFdlIGNhbiByZWFkIHRoZW0g d2l0aG91dAorCSAqIGxvY2tzIGFzIG9ubHkgdGhlIGxlYWRlciBjYW4gbW9kaWZ5IHRoZW0uCisJ ICovCisJaWYgKHZhY3V1bV9jb3N0X2RlbGF5ID09IHB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+Y29z dF9kZWxheSAmJgorCQl2YWN1dW1fY29zdF9saW1pdCA9PSBwdl9zaGFyZWRfY29zdF9wYXJhbXMt PmNvc3RfbGltaXQgJiYKKwkJVmFjdXVtQ29zdFBhZ2VEaXJ0eSA9PSBwdl9zaGFyZWRfY29zdF9w YXJhbXMtPmNvc3RfcGFnZV9kaXJ0eSAmJgorCQlWYWN1dW1Db3N0UGFnZUhpdCA9PSBwdl9zaGFy ZWRfY29zdF9wYXJhbXMtPmNvc3RfcGFnZV9oaXQgJiYKKwkJVmFjdXVtQ29zdFBhZ2VNaXNzID09 IHB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+Y29zdF9wYWdlX21pc3MpCisJCXJldHVybjsKKworCS8q IFVwZGF0ZSB0aGUgc2hhcmVkIGRlbGF5IHBhcmFtZXRlcnMgKi8KKwlTcGluTG9ja0FjcXVpcmUo JnB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+bXV0ZXgpOworCXBhcmFsbGVsX3ZhY3V1bV9zZXRfY29z dF9wYXJhbWV0ZXJzKHB2X3NoYXJlZF9jb3N0X3BhcmFtcyk7CisJU3BpbkxvY2tSZWxlYXNlKCZw dl9zaGFyZWRfY29zdF9wYXJhbXMtPm11dGV4KTsKKworCS8qCisJICogSW5jcmVtZW50IHRoZSBn ZW5lcmF0aW9uIG9mIHRoZSBwYXJhbWV0ZXJzLCBpLmUuIGxldCBwYXJhbGxlbCB3b3JrZXJzCisJ ICoga25vdyB0aGF0IHRoZXkgc2hvdWxkIHJlLXJlYWQgc2hhcmVkIGNvc3QgcGFyYW1zLgorCSAq LworCXBnX2F0b21pY19mZXRjaF9hZGRfdTMyKCZwdl9zaGFyZWRfY29zdF9wYXJhbXMtPmdlbmVy YXRpb24sIDEpOworfQorCiAvKgogICogQ29tcHV0ZSB0aGUgbnVtYmVyIG9mIHBhcmFsbGVsIHdv cmtlciBwcm9jZXNzZXMgdG8gcmVxdWVzdC4gIEJvdGggaW5kZXgKICAqIHZhY3V1bSBhbmQgaW5k ZXggY2xlYW51cCBjYW4gYmUgZXhlY3V0ZWQgd2l0aCBwYXJhbGxlbCB3b3JrZXJzLgpAQCAtNTU1 LDEyICs3MzIsMTcgQEAgcGFyYWxsZWxfdmFjdXVtX2NvbXB1dGVfd29ya2VycyhSZWxhdGlvbiAq aW5kcmVscywgaW50IG5pbmRleGVzLCBpbnQgbnJlcXVlc3RlZCwKIAlpbnQJCQluaW5kZXhlc19w YXJhbGxlbF9idWxrZGVsID0gMDsKIAlpbnQJCQluaW5kZXhlc19wYXJhbGxlbF9jbGVhbnVwID0g MDsKIAlpbnQJCQlwYXJhbGxlbF93b3JrZXJzOworCWludAkJCW1heF93b3JrZXJzOworCisJbWF4 X3dvcmtlcnMgPSBBbUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCkgPworCQlhdXRvdmFjdXVtX21h eF9wYXJhbGxlbF93b3JrZXJzIDoKKwkJbWF4X3BhcmFsbGVsX21haW50ZW5hbmNlX3dvcmtlcnM7 CiAKIAkvKgogCSAqIFdlIGRvbid0IGFsbG93IHBlcmZvcm1pbmcgcGFyYWxsZWwgb3BlcmF0aW9u IGluIHN0YW5kYWxvbmUgYmFja2VuZCBvcgogCSAqIHdoZW4gcGFyYWxsZWxpc20gaXMgZGlzYWJs ZWQuCiAJICovCi0JaWYgKCFJc1VuZGVyUG9zdG1hc3RlciB8fCBtYXhfcGFyYWxsZWxfbWFpbnRl bmFuY2Vfd29ya2VycyA9PSAwKQorCWlmICghSXNVbmRlclBvc3RtYXN0ZXIgfHwgbWF4X3dvcmtl cnMgPT0gMCkKIAkJcmV0dXJuIDA7CiAKIAkvKgpAQCAtNTk5LDggKzc4MSw4IEBAIHBhcmFsbGVs X3ZhY3V1bV9jb21wdXRlX3dvcmtlcnMoUmVsYXRpb24gKmluZHJlbHMsIGludCBuaW5kZXhlcywg aW50IG5yZXF1ZXN0ZWQsCiAJcGFyYWxsZWxfd29ya2VycyA9IChucmVxdWVzdGVkID4gMCkgPwog CQlNaW4obnJlcXVlc3RlZCwgbmluZGV4ZXNfcGFyYWxsZWwpIDogbmluZGV4ZXNfcGFyYWxsZWw7 CiAKLQkvKiBDYXAgYnkgbWF4X3BhcmFsbGVsX21haW50ZW5hbmNlX3dvcmtlcnMgKi8KLQlwYXJh bGxlbF93b3JrZXJzID0gTWluKHBhcmFsbGVsX3dvcmtlcnMsIG1heF9wYXJhbGxlbF9tYWludGVu YW5jZV93b3JrZXJzKTsKKwkvKiBDYXAgYnkgR1VDIHZhcmlhYmxlICovCisJcGFyYWxsZWxfd29y a2VycyA9IE1pbihwYXJhbGxlbF93b3JrZXJzLCBtYXhfd29ya2Vycyk7CiAKIAlyZXR1cm4gcGFy YWxsZWxfd29ya2VyczsKIH0KQEAgLTczMCw2ICs5MTIsMTYgQEAgcGFyYWxsZWxfdmFjdXVtX3By b2Nlc3NfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBpbnQgbnVtX2luZGV4 X3NjYW4KIAkJCQkJCQlwdnMtPnBjeHQtPm53b3JrZXJzX2xhdW5jaGVkLCBud29ya2VycykpKTsK IAl9CiAKKyNpZmRlZiBVU0VfSU5KRUNUSU9OX1BPSU5UUworCisJLyoKKwkgKiBVc2VkIGJ5IHRl c3RzIHRvIHBhdXNlIGFmdGVyIHdvcmtlcnMgYXJlIGxhdW5jaGVkIGJ1dCBiZWZvcmUgaW5kZXgK KwkgKiB2YWN1dW1pbmcgYmVnaW5zLgorCSAqLworCWlmIChud29ya2VycyA+IDApCisJCUlOSkVD VElPTl9QT0lOVCgiYXV0b3ZhY3V1bS1sZWFkZXItYmVmb3JlLWluZGV4ZXMtcHJvY2Vzc2luZyIs IE5VTEwpOworI2VuZGlmCisKIAkvKiBWYWN1dW0gdGhlIGluZGV4ZXMgdGhhdCBjYW4gYmUgcHJv Y2Vzc2VkIGJ5IG9ubHkgbGVhZGVyIHByb2Nlc3MgKi8KIAlwYXJhbGxlbF92YWN1dW1fcHJvY2Vz c191bnNhZmVfaW5kZXhlcyhwdnMpOwogCkBAIC0xMDY0LDcgKzEyNTYsMjEgQEAgcGFyYWxsZWxf dmFjdXVtX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCQkJCQkJCQlzaGFy ZWQtPmRlYWRfaXRlbXNfaGFuZGxlKTsKIAogCS8qIFNldCBjb3N0LWJhc2VkIHZhY3V1bSBkZWxh eSAqLwotCVZhY3V1bVVwZGF0ZUNvc3RzKCk7CisJaWYgKHNoYXJlZC0+aXNfYXV0b3ZhY3V1bSkK Kwl7CisJCS8qCisJCSAqIFBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VycyBpbml0aWFsaXplIGNv c3QtYmFzZWQgZGVsYXkgcGFyYW1ldGVycworCQkgKiBmcm9tIHRoZSBsZWFkZXIncyBzaGFyZWQg c3RhdGUgcmF0aGVyIHRoYW4gR1VDIGRlZmF1bHRzLCBiZWNhdXNlCisJCSAqIHRoZSBsZWFkZXIg bWF5IGhhdmUgYXBwbGllZCBwZXItdGFibGUgb3IgYXV0b3ZhY3V1bS1zcGVjaWZpYworCQkgKiBv dmVycmlkZXMuICBwdl9zaGFyZWRfY29zdF9wYXJhbXMgbXVzdCBiZSBzZXQgYmVmb3JlIGNhbGxp bmcKKwkJICogcGFyYWxsZWxfdmFjdXVtX3VwZGF0ZV9zaGFyZWRfZGVsYXlfcGFyYW1zKCkuCisJ CSAqLworCQlwdl9zaGFyZWRfY29zdF9wYXJhbXMgPSAmKHNoYXJlZC0+Y29zdF9wYXJhbXMpOwor CQlwYXJhbGxlbF92YWN1dW1fdXBkYXRlX3NoYXJlZF9kZWxheV9wYXJhbXMoKTsKKwl9CisJZWxz ZQorCQlWYWN1dW1VcGRhdGVDb3N0cygpOworCiAJVmFjdXVtQ29zdEJhbGFuY2UgPSAwOwogCVZh Y3V1bUNvc3RCYWxhbmNlTG9jYWwgPSAwOwogCVZhY3V1bVNoYXJlZENvc3RCYWxhbmNlID0gJihz aGFyZWQtPmNvc3RfYmFsYW5jZSk7CkBAIC0xMTE5LDYgKzEzMjUsOSBAQCBwYXJhbGxlbF92YWN1 dW1fbWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJdmFjX2Nsb3NlX2luZGV4 ZXMobmluZGV4ZXMsIGluZHJlbHMsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCXRhYmxlX2Nsb3NlKHJl bCwgU2hhcmVVcGRhdGVFeGNsdXNpdmVMb2NrKTsKIAlGcmVlQWNjZXNzU3RyYXRlZ3kocHZzLmJz dHJhdGVneSk7CisKKwlpZiAoc2hhcmVkLT5pc19hdXRvdmFjdXVtKQorCQlwdl9zaGFyZWRfY29z dF9wYXJhbXMgPSBOVUxMOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1h c3Rlci9hdXRvdmFjdXVtLmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYwpp bmRleCBkNjk1ZjFkZTRiZC4uYzZjNGYwZGJiNTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bv c3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3Zh Y3V1bS5jCkBAIC0xNjg4LDcgKzE2ODgsNyBAQCBWYWN1dW1VcGRhdGVDb3N0cyh2b2lkKQogCX0K IAllbHNlCiAJewotCQkvKiBNdXN0IGJlIGV4cGxpY2l0IFZBQ1VVTSBvciBBTkFMWVpFICovCisJ CS8qIE11c3QgYmUgZXhwbGljaXQgVkFDVVVNIG9yIEFOQUxZWkUgb3IgcGFyYWxsZWwgYXV0b3Zh Y3V1bSB3b3JrZXIgKi8KIAkJdmFjdXVtX2Nvc3RfZGVsYXkgPSBWYWN1dW1Db3N0RGVsYXk7CiAJ CXZhY3V1bV9jb3N0X2xpbWl0ID0gVmFjdXVtQ29zdExpbWl0OwogCX0KQEAgLTI5MjgsOCArMjky OCw2IEBAIHRhYmxlX3JlY2hlY2tfYXV0b3ZhYyhPaWQgcmVsaWQsIEhUQUIgKnRhYmxlX3RvYXN0 X21hcCwKIAkJICovCiAJCXRhYi0+YXRfcGFyYW1zLmluZGV4X2NsZWFudXAgPSBWQUNPUFRWQUxV RV9VTlNQRUNJRklFRDsKIAkJdGFiLT5hdF9wYXJhbXMudHJ1bmNhdGUgPSBWQUNPUFRWQUxVRV9V TlNQRUNJRklFRDsKLQkJLyogQXMgb2Ygbm93LCB3ZSBkb24ndCBzdXBwb3J0IHBhcmFsbGVsIHZh Y3V1bSBmb3IgYXV0b3ZhY3V1bSAqLwotCQl0YWItPmF0X3BhcmFtcy5ud29ya2VycyA9IC0xOwog CQl0YWItPmF0X3BhcmFtcy5mcmVlemVfbWluX2FnZSA9IGZyZWV6ZV9taW5fYWdlOwogCQl0YWIt PmF0X3BhcmFtcy5mcmVlemVfdGFibGVfYWdlID0gZnJlZXplX3RhYmxlX2FnZTsKIAkJdGFiLT5h dF9wYXJhbXMubXVsdGl4YWN0X2ZyZWV6ZV9taW5fYWdlID0gbXVsdGl4YWN0X2ZyZWV6ZV9taW5f YWdlOwpAQCAtMjkzOSw2ICsyOTM3LDI3IEBAIHRhYmxlX3JlY2hlY2tfYXV0b3ZhYyhPaWQgcmVs aWQsIEhUQUIgKnRhYmxlX3RvYXN0X21hcCwKIAkJdGFiLT5hdF9wYXJhbXMubG9nX2FuYWx5emVf bWluX2R1cmF0aW9uID0gbG9nX2FuYWx5emVfbWluX2R1cmF0aW9uOwogCQl0YWItPmF0X3BhcmFt cy50b2FzdF9wYXJlbnQgPSBJbnZhbGlkT2lkOwogCisJCS8qIERldGVybWluZSB0aGUgbnVtYmVy IG9mIHBhcmFsbGVsIHZhY3V1bSB3b3JrZXJzIHRvIHVzZSAqLworCQl0YWItPmF0X3BhcmFtcy5u d29ya2VycyA9IDA7CisJCWlmIChhdm9wdHMpCisJCXsKKwkJCWlmIChhdm9wdHMtPmF1dG92YWN1 dW1fcGFyYWxsZWxfd29ya2VycyA9PSAwKQorCQkJeworCQkJCS8qCisJCQkJICogRGlzYWJsZSBw YXJhbGxlbCB2YWN1dW0sIGlmIHRoZSByZWxvcHRpb24gc2V0cyB0aGUgcGFyYWxsZWwKKwkJCQkg KiBkZWdyZWUgYXMgemVyby4KKwkJCQkgKi8KKwkJCQl0YWItPmF0X3BhcmFtcy5ud29ya2VycyA9 IC0xOworCQkJfQorCQkJZWxzZSBpZiAoYXZvcHRzLT5hdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtl cnMgPiAwKQorCQkJCXRhYi0+YXRfcGFyYW1zLm53b3JrZXJzID0gYXZvcHRzLT5hdXRvdmFjdXVt X3BhcmFsbGVsX3dvcmtlcnM7CisKKwkJCS8qCisJCQkgKiBhdXRvdmFjdXVtX3BhcmFsbGVsX3dv cmtlcnMgPT0gLTEgZmFsbHMgdGhyb3VnaCwga2VlcAorCQkJICogbndvcmtlcnM9MAorCQkJICov CisJCX0KKwogCQkvKgogCQkgKiBMYXRlciwgaW4gdmFjdXVtX3JlbCgpLCB3ZSBjaGVjayByZWxv cHRpb25zIGZvciBhbnkKIAkJICogdmFjdXVtX21heF9lYWdlcl9mcmVlemVfZmFpbHVyZV9yYXRl IG92ZXJyaWRlLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9nbG9iYWxzLmMg Yi9zcmMvYmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYwppbmRleCAzNmFkNzA4YjM2MC4uMjRk ZGIyNzZmMGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jCkBAIC0xNDMsNiArMTQzLDcgQEAg aW50CQkJTkJ1ZmZlcnMgPSAxNjM4NDsKIGludAkJCU1heENvbm5lY3Rpb25zID0gMTAwOwogaW50 CQkJbWF4X3dvcmtlcl9wcm9jZXNzZXMgPSA4OwogaW50CQkJbWF4X3BhcmFsbGVsX3dvcmtlcnMg PSA4OworaW50CQkJYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycyA9IDA7CiBpbnQJCQlN YXhCYWNrZW5kcyA9IDA7CiAKIC8qIEdVQyBwYXJhbWV0ZXJzIGZvciB2YWN1dW0gKi8KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMgYi9zcmMvYmFja2VuZC91dGlscy9t aXNjL2d1Yy5jCmluZGV4IGUxNTQ2ZDljOTdhLi4xYWM4ZThmYzNiZSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1 Yy5jCkBAIC0zMzU4LDkgKzMzNTgsMTQgQEAgc2V0X2NvbmZpZ193aXRoX2hhbmRsZShjb25zdCBj aGFyICpuYW1lLCBjb25maWdfaGFuZGxlICpoYW5kbGUsCiAJICoKIAkgKiBBbHNvIGFsbG93IG5v cm1hbCBzZXR0aW5nIGlmIHRoZSBHVUMgaXMgbWFya2VkIEdVQ19BTExPV19JTl9QQVJBTExFTC4K IAkgKgotCSAqIE90aGVyIGNoYW5nZXMgbWlnaHQgbmVlZCB0byBhZmZlY3Qgb3RoZXIgd29ya2Vy cywgc28gZm9yYmlkIHRoZW0uCisJICogT3RoZXIgY2hhbmdlcyBtaWdodCBuZWVkIHRvIGFmZmVj dCBvdGhlciB3b3JrZXJzLCBzbyBmb3JiaWQgdGhlbS4gTm90ZSwKKwkgKiB0aGF0IHBhcmFsbGVs IGF1dG92YWN1dW0gbGVhZGVyIGlzIGFuIGV4Y2VwdGlvbiBiZWNhdXNlIG9ubHkgY29zdC1iYXNl ZAorCSAqIGRlbGF5cyBuZWVkIHRvIGJlIGFmZmVjdGVkIGFsc28gdG8gcGFyYWxsZWwgYXV0b3Zh Y3V1bSB3b3JrZXJzLiBUaGVzZQorCSAqIHBhcmFtZXRlcnMgYXJlIHByb3BhZ2F0ZWQgdG8gaXRz IHdvcmtlcnMgZHVyaW5nIHBhcmFsbGVsIHZhY3V1bSAoc2VlCisJICogdmFjdXVtcGFyYWxsZWwu YyBmb3IgZGV0YWlscykuCiAJICovCi0JaWYgKElzSW5QYXJhbGxlbE1vZGUoKSAmJiBjaGFuZ2VW YWwgJiYgYWN0aW9uICE9IEdVQ19BQ1RJT05fU0FWRSAmJgorCWlmIChJc0luUGFyYWxsZWxNb2Rl KCkgJiYgIUFtQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSAmJiBjaGFuZ2VWYWwgJiYKKwkJYWN0 aW9uICE9IEdVQ19BQ1RJT05fU0FWRSAmJgogCQkocmVjb3JkLT5mbGFncyAmIEdVQ19BTExPV19J Tl9QQVJBTExFTCkgPT0gMCkKIAl7CiAJCWVyZXBvcnQoZWxldmVsLApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQgYi9zcmMvYmFja2VuZC91dGls cy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdAppbmRleCAwYTg2MjY5M2ZjZC4uNmVmNDZkODgxNTUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0Cisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0CkBAIC0xNzAsNiAr MTcwLDE0IEBACiAgIG1heCA9PiAnMTAuMCcsCiB9LAogCit7IG5hbWUgPT4gJ2F1dG92YWN1dW1f bWF4X3BhcmFsbGVsX3dvcmtlcnMnLCB0eXBlID0+ICdpbnQnLCBjb250ZXh0ID0+ICdQR0NfU0lH SFVQJywgZ3JvdXAgPT4gJ1ZBQ1VVTV9BVVRPVkFDVVVNJywKKyAgc2hvcnRfZGVzYyA9PiAnTWF4 aW11bSBudW1iZXIgb2YgcGFyYWxsZWwgd29ya2VycyB0aGF0IGNhbiBiZSB1c2VkIGJ5IGEgc2lu Z2xlIGF1dG92YWN1dW0gd29ya2VyLicsCisgIHZhcmlhYmxlID0+ICdhdXRvdmFjdXVtX21heF9w YXJhbGxlbF93b3JrZXJzJywKKyAgYm9vdF92YWwgPT4gJzAnLAorICBtaW4gPT4gJzAnLAorICBt YXggPT4gJ01BWF9QQVJBTExFTF9XT1JLRVJfTElNSVQnLAorfSwKKwogeyBuYW1lID0+ICdhdXRv dmFjdXVtX21heF93b3JrZXJzJywgdHlwZSA9PiAnaW50JywgY29udGV4dCA9PiAnUEdDX1NJR0hV UCcsIGdyb3VwID0+ICdWQUNVVU1fQVVUT1ZBQ1VVTScsCiAgIHNob3J0X2Rlc2MgPT4gJ1NldHMg dGhlIG1heGltdW0gbnVtYmVyIG9mIHNpbXVsdGFuZW91c2x5IHJ1bm5pbmcgYXV0b3ZhY3V1bSB3 b3JrZXIgcHJvY2Vzc2VzLicsCiAgIHZhcmlhYmxlID0+ICdhdXRvdmFjdXVtX21heF93b3JrZXJz JywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNh bXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQppbmRl eCBjZjE1NTk3Mzg1Yi4uNzNjNDlmMDlhZWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNj L3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKQEAgLTcxMyw2ICs3MTMsNyBAQAogI2F1dG92YWN1dW1f d29ya2VyX3Nsb3RzID0gMTYgICAgICAgICAgICMgYXV0b3ZhY3V1bSB3b3JrZXIgc2xvdHMgdG8g YWxsb2NhdGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIChjaGFu Z2UgcmVxdWlyZXMgcmVzdGFydCkKICNhdXRvdmFjdXVtX21heF93b3JrZXJzID0gMyAgICAgICAg ICAgICAjIG1heCBudW1iZXIgb2YgYXV0b3ZhY3V1bSBzdWJwcm9jZXNzZXMKKyNhdXRvdmFjdXVt X21heF9wYXJhbGxlbF93b3JrZXJzID0gMCAgICAjIGxpbWl0ZWQgYnkgbWF4X3BhcmFsbGVsX3dv cmtlcnMKICNhdXRvdmFjdXVtX25hcHRpbWUgPSAxbWluICAgICAgICAgICAgICAjIHRpbWUgYmV0 d2VlbiBhdXRvdmFjdXVtIHJ1bnMKICNhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQgPSA1MCAg ICAgICAjIG1pbiBudW1iZXIgb2Ygcm93IHVwZGF0ZXMgYmVmb3JlCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyB2YWN1dW0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNx bC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRl eCA1MjNkM2YzOWZjNS4uZjZiZjA3MmJhYjUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTE0 MzIsNiArMTQzMiw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCB0YWJsZV9zdG9yYWdlX3Bh cmFtZXRlcnNbXSA9IHsKIAkiYXV0b3ZhY3V1bV9tdWx0aXhhY3RfZnJlZXplX21heF9hZ2UiLAog CSJhdXRvdmFjdXVtX211bHRpeGFjdF9mcmVlemVfbWluX2FnZSIsCiAJImF1dG92YWN1dW1fbXVs dGl4YWN0X2ZyZWV6ZV90YWJsZV9hZ2UiLAorCSJhdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMi LAogCSJhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2RlbGF5IiwKIAkiYXV0b3ZhY3V1bV92YWN1dW1f Y29zdF9saW1pdCIsCiAJImF1dG92YWN1dW1fdmFjdXVtX2luc2VydF9zY2FsZV9mYWN0b3IiLApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmggYi9zcmMvaW5jbHVkZS9j b21tYW5kcy92YWN1dW0uaAppbmRleCAxZjQ1YmNhMDE1Yy4uOGI0MjgwOGU3MGIgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3ZhY3V1bS5oCkBAIC00MjIsNiArNDIyLDggQEAgZXh0ZXJuIHZvaWQgcGFyYWxsZWxfdmFj dXVtX2NsZWFudXBfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLAogCQkJCQkJ CQkJCQkJaW50IG51bV9pbmRleF9zY2FucywKIAkJCQkJCQkJCQkJCWJvb2wgZXN0aW1hdGVkX2Nv dW50LAogCQkJCQkJCQkJCQkJUFZXb3JrZXJTdGF0cyAqd3N0YXRzKTsKK2V4dGVybiB2b2lkIHBh cmFsbGVsX3ZhY3V1bV91cGRhdGVfc2hhcmVkX2RlbGF5X3BhcmFtcyh2b2lkKTsKK2V4dGVybiB2 b2lkIHBhcmFsbGVsX3ZhY3V1bV9wcm9wYWdhdGVfc2hhcmVkX2RlbGF5X3BhcmFtcyh2b2lkKTsK IGV4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90 b2MgKnRvYyk7CiAKIC8qIGluIGNvbW1hbmRzL2FuYWx5emUuYyAqLwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvbWlzY2FkbWluLmggYi9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaAppbmRleCBmMTZm MzU2NTliOS4uMDAxOTBjNjdlY2YgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL21pc2NhZG1pbi5o CisrKyBiL3NyYy9pbmNsdWRlL21pc2NhZG1pbi5oCkBAIC0xNzgsNiArMTc4LDcgQEAgZXh0ZXJu IFBHRExMSU1QT1JUIGludCBNYXhCYWNrZW5kczsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgTWF4 Q29ubmVjdGlvbnM7CiBleHRlcm4gUEdETExJTVBPUlQgaW50IG1heF93b3JrZXJfcHJvY2Vzc2Vz OwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBtYXhfcGFyYWxsZWxfd29ya2VyczsKK2V4dGVybiBQ R0RMTElNUE9SVCBpbnQgYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VyczsKIAogZXh0ZXJu IFBHRExMSU1QT1JUIGludCBjb21taXRfdGltZXN0YW1wX2J1ZmZlcnM7CiBleHRlcm4gUEdETExJ TVBPUlQgaW50IG11bHRpeGFjdF9tZW1iZXJfYnVmZmVyczsKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3V0aWxzL3JlbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKaW5kZXggMjM2ODMwZjZi OTMuLmNkMWU5MmYyMzAyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9yZWwuaAorKysg Yi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaApAQCAtMzExLDYgKzMxMSw4IEBAIHR5cGVkZWYgc3Ry dWN0IEZvcmVpZ25LZXlDYWNoZUluZm8KIHR5cGVkZWYgc3RydWN0IEF1dG9WYWNPcHRzCiB7CiAJ Ym9vbAkJZW5hYmxlZDsKKworCWludAkJCWF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VyczsKIAlp bnQJCQl2YWN1dW1fdGhyZXNob2xkOwogCWludAkJCXZhY3V1bV9tYXhfdGhyZXNob2xkOwogCWlu dAkJCXZhY3V1bV9pbnNfdGhyZXNob2xkOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9N YWtlZmlsZSBiL3NyYy90ZXN0L21vZHVsZXMvTWFrZWZpbGUKaW5kZXggMjhjZTNiMzVlZGEuLjMz NmEyMTJmYWY0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL01ha2VmaWxlCisrKyBiL3Ny Yy90ZXN0L21vZHVsZXMvTWFrZWZpbGUKQEAgLTE2LDYgKzE2LDcgQEAgU1VCRElSUyA9IFwKIAkJ ICBwbHNhbXBsZSBcCiAJCSAgc3BnaXN0X25hbWVfb3BzIFwKIAkJICB0ZXN0X2FpbyBcCisJCSAg dGVzdF9hdXRvdmFjdXVtIFwKIAkJICB0ZXN0X2JpbmFyeWhlYXAgXAogCQkgIHRlc3RfYml0bWFw c2V0IFwKIAkJICB0ZXN0X2Jsb29tZmlsdGVyIFwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVs ZXMvbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9tb2R1bGVzL21lc29uLmJ1aWxkCmluZGV4IDNhYzI5 MTY1NmMxLi45Mjk2NTk5NTZjYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9tZXNvbi5i dWlsZAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL21lc29uLmJ1aWxkCkBAIC0xNiw2ICsxNiw3IEBA IHN1YmRpcigncGxzYW1wbGUnKQogc3ViZGlyKCdzcGdpc3RfbmFtZV9vcHMnKQogc3ViZGlyKCdz c2xfcGFzc3BocmFzZV9jYWxsYmFjaycpCiBzdWJkaXIoJ3Rlc3RfYWlvJykKK3N1YmRpcigndGVz dF9hdXRvdmFjdXVtJykKIHN1YmRpcigndGVzdF9iaW5hcnloZWFwJykKIHN1YmRpcigndGVzdF9i aXRtYXBzZXQnKQogc3ViZGlyKCd0ZXN0X2Jsb29tZmlsdGVyJykKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtLy5naXRpZ25vcmUgYi9zcmMvdGVzdC9tb2R1bGVz L3Rlc3RfYXV0b3ZhY3V1bS8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi43MTZlMTdmNWEyYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVs ZXMvdGVzdF9hdXRvdmFjdXVtLy5naXRpZ25vcmUKQEAgLTAsMCArMSwyIEBACisjIEdlbmVyYXRl ZCBzdWJkaXJlY3RvcmllcworL3RtcF9jaGVjay8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVs ZXMvdGVzdF9hdXRvdmFjdXVtL01ha2VmaWxlIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92 YWN1dW0vTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE4 OGVjOWY5NmEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92 YWN1dW0vTWFrZWZpbGUKQEAgLTAsMCArMSwyMCBAQAorIyBzcmMvdGVzdC9tb2R1bGVzL3Rlc3Rf YXV0b3ZhY3V1bS9NYWtlZmlsZQorCitQR0ZJTEVERVNDID0gInRlc3RfYXV0b3ZhY3V1bSAtIHRl c3QgY29kZSBmb3IgcGFyYWxsZWwgYXV0b3ZhY3V1bSIKKworVEFQX1RFU1RTID0gMQorCitFWFRS QV9JTlNUQUxMID0gc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzCisKK2V4cG9ydCBl bmFibGVfaW5qZWN0aW9uX3BvaW50cworCitpZmRlZiBVU0VfUEdYUworUEdfQ09ORklHID0gcGdf Y29uZmlnCitQR1hTIDo9ICQoc2hlbGwgJChQR19DT05GSUcpIC0tcGd4cykKK2luY2x1ZGUgJChQ R1hTKQorZWxzZQorc3ViZGlyID0gc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0KK3Rv cF9idWlsZGRpciA9IC4uLy4uLy4uLy4uCitpbmNsdWRlICQodG9wX2J1aWxkZGlyKS9zcmMvTWFr ZWZpbGUuZ2xvYmFsCitpbmNsdWRlICQodG9wX3NyY2RpcikvY29udHJpYi9jb250cmliLWdsb2Jh bC5taworZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVt L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vbWVzb24uYnVp bGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg2ZTM5MmJjMGRlCi0t LSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vbWVzb24u YnVpbGQKQEAgLTAsMCArMSwxNSBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjQtMjAyNiwgUG9zdGdy ZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKwordGVzdHMgKz0geworICAnbmFtZSc6ICd0 ZXN0X2F1dG92YWN1dW0nLAorICAnc2QnOiBtZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwKKyAg J2JkJzogbWVzb24uY3VycmVudF9idWlsZF9kaXIoKSwKKyAgJ3RhcCc6IHsKKyAgICAnZW52Jzog eworICAgICAgICdlbmFibGVfaW5qZWN0aW9uX3BvaW50cyc6IGdldF9vcHRpb24oJ2luamVjdGlv bl9wb2ludHMnKSA/ICd5ZXMnIDogJ25vJywKKyAgICB9LAorICAgICd0ZXN0cyc6IFsKKyAgICAg ICd0LzAwMV9wYXJhbGxlbF9hdXRvdmFjdXVtLnBsJywKKyAgICBdLAorICB9LAorfQpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdC8wMDFfcGFyYWxsZWxfYXV0 b3ZhY3V1bS5wbCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3QvMDAxX3BhcmFs bGVsX2F1dG92YWN1dW0ucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjJhY2EzMjM3NGEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1 dG92YWN1dW0vdC8wMDFfcGFyYWxsZWxfYXV0b3ZhY3V1bS5wbApAQCAtMCwwICsxLDE5NSBAQAor IyBUZXN0IHBhcmFsbGVsIGF1dG92YWN1dW0gYmVoYXZpb3IKKwordXNlIHdhcm5pbmdzIEZBVEFM ID0+ICdhbGwnOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNR TDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworaWYgKCRFTlZ7ZW5hYmxlX2luamVj dGlvbl9wb2ludHN9IG5lICd5ZXMnKQoreworCXBsYW4gc2tpcF9hbGwgPT4gJ0luamVjdGlvbiBw b2ludHMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkJzsKK30KKworIyBCZWZvcmUgZWFjaCB0 ZXN0IHdlIHNob3VsZCBkaXNhYmxlIGF1dG92YWN1dW0gZm9yICd0ZXN0X2F1dG92YWMnIHRhYmxl IGFuZAorIyBnZW5lcmF0ZSBzb21lIGRlYWQgdHVwbGVzIGluIGl0LiBSZXR1cm5zIHRoZSBjdXJy ZW50IGF1dG92YWN1dW1fY291bnQgb2YKKyMgdGhlIHRhYmxlIHRlc3RfYXV0b3ZhYy4KK3N1YiBw cmVwYXJlX2Zvcl9uZXh0X3Rlc3QKK3sKKwlteSAoJG5vZGUsICR0ZXN0X251bWJlcikgPSBAXzsK KworCSRub2RlLT5zYWZlX3BzcWwoCisJCSdwb3N0Z3JlcycsIHFxeworCQlBTFRFUiBUQUJMRSB0 ZXN0X2F1dG92YWMgU0VUIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBmYWxzZSk7CisJCVVQREFURSB0 ZXN0X2F1dG92YWMgU0VUIGNvbF8xID0gJHRlc3RfbnVtYmVyOworCX0pOworCisJbXkgJGNvdW50 ID0gJG5vZGUtPnNhZmVfcHNxbCgKKwkJJ3Bvc3RncmVzJywgcXF7CisJCVNFTEVDVCBhdXRvdmFj dXVtX2NvdW50IEZST00gcGdfc3RhdF91c2VyX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Rlc3Rf YXV0b3ZhYycKKwl9KTsKKworCXJldHVybiAkY291bnQ7Cit9CisKKyMgV2FpdCBmb3IgdGhlIHRh YmxlIHRvIGJlIHZhY3V1bWVkIGJ5IGFuIGF1dG92YWN1dW0gd29ya2VyLgorc3ViIHdhaXRfZm9y X2F1dG92YWN1dW1fY29tcGxldGUKK3sKKwlteSAoJG5vZGUsICRvbGRfY291bnQpID0gQF87CisK Kwkkbm9kZS0+cG9sbF9xdWVyeV91bnRpbCgKKwkJJ3Bvc3RncmVzJywgcXF7CisJCVNFTEVDVCBh dXRvdmFjdXVtX2NvdW50ID4gJG9sZF9jb3VudCBGUk9NIHBnX3N0YXRfdXNlcl90YWJsZXMgV0hF UkUgcmVsbmFtZSA9ICd0ZXN0X2F1dG92YWMnCisJfSk7Cit9CisKK215ICRwc3FsX291dDsKKwor bXkgJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ21haW4nKTsKKyRub2Rl LT5pbml0OworCisjIExpbWl0IHRvIG9uZSBhdXRvdmFjdXVtIHdvcmtlciBhbmQgZGlzYWJsZSBh dXRvdmFjdXVtIGxvZ2dpbmcgZ2xvYmFsbHkKKyMgKGVuYWJsZWQgb25seSBvbiB0aGUgdGVzdCB0 YWJsZSkgc28gdGhhdCBsb2cgY2hlY2tzIGJlbG93IG1hdGNoIG9ubHkKKyMgYWN0aXZpdHkgb24g dGhlIGV4cGVjdGVkIHRhYmxlLgorJG5vZGUtPmFwcGVuZF9jb25mKAorCSdwb3N0Z3Jlc3FsLmNv bmYnLCBxcXsKK2F1dG92YWN1dW1fbWF4X3dvcmtlcnMgPSAxCithdXRvdmFjdXVtX3dvcmtlcl9z bG90cyA9IDEKK2F1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnMgPSAyCittYXhfd29ya2Vy X3Byb2Nlc3NlcyA9IDEwCittYXhfcGFyYWxsZWxfd29ya2VycyA9IDEwCitsb2dfbWluX21lc3Nh Z2VzID0gZGVidWcyCithdXRvdmFjdXVtX25hcHRpbWUgPSAnMXMnCittaW5fcGFyYWxsZWxfaW5k ZXhfc2Nhbl9zaXplID0gMAorbG9nX2F1dG92YWN1dW1fbWluX2R1cmF0aW9uID0gLTEKK30pOwor JG5vZGUtPnN0YXJ0OworCisjIENoZWNrIGlmIHRoZSBleHRlbnNpb24gaW5qZWN0aW9uX3BvaW50 cyBpcyBhdmFpbGFibGUsIGFzIGl0IG1heSBiZQorIyBwb3NzaWJsZSB0aGF0IHRoaXMgc2NyaXB0 IGlzIHJ1biB3aXRoIGluc3RhbGxjaGVjaywgd2hlcmUgdGhlIG1vZHVsZQorIyB3b3VsZCBub3Qg YmUgaW5zdGFsbGVkIGJ5IGRlZmF1bHQuCitpZiAoISRub2RlLT5jaGVja19leHRlbnNpb24oJ2lu amVjdGlvbl9wb2ludHMnKSkKK3sKKwlwbGFuIHNraXBfYWxsID0+ICdFeHRlbnNpb24gaW5qZWN0 aW9uX3BvaW50cyBub3QgaW5zdGFsbGVkJzsKK30KKworIyBDcmVhdGUgYWxsIGZ1bmN0aW9ucyBu ZWVkZWQgZm9yIHRlc3RpbmcKKyRub2RlLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXF7CisJ Q1JFQVRFIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOworfSk7CisKK215ICRpbmRleGVzX251 bSA9IDM7CitteSAkaW5pdGlhbF9yb3dzX251bSA9IDEwXzAwMDsKK215ICRhdXRvdmFjdXVtX3Bh cmFsbGVsX3dvcmtlcnMgPSAyOworCisjIENyZWF0ZSB0YWJsZSBhbmQgZmlsbCBpdCB3aXRoIHNv bWUgZGF0YQorJG5vZGUtPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcXsKKwlDUkVBVEUgVEFC TEUgdGVzdF9hdXRvdmFjICgKKwkJaWQgU0VSSUFMIFBSSU1BUlkgS0VZLAorCQljb2xfMSBJTlRF R0VSLCAgY29sXzIgSU5URUdFUiwgIGNvbF8zIElOVEVHRVIsICBjb2xfNCBJTlRFR0VSCisJKSBX SVRIIChhdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMgPSAkYXV0b3ZhY3V1bV9wYXJhbGxlbF93 b3JrZXJzLAorCQkJbG9nX2F1dG92YWN1dW1fbWluX2R1cmF0aW9uID0gMCk7CisKKwlJTlNFUlQg SU5UTyB0ZXN0X2F1dG92YWMKKwlTRUxFQ1QKKwkJZyBBUyBjb2wxLAorCQlnICsgMSBBUyBjb2wy LAorCQlnICsgMiBBUyBjb2wzLAorCQlnICsgMyBBUyBjb2w0CisJRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgJGluaXRpYWxfcm93c19udW0pIEFTIGc7Cit9KTsKKworIyBDcmVhdGUgc3BlY2lmaWVk IG51bWJlciBvZiBiLXRyZWUgaW5kZXhlcyBvbiB0aGUgdGFibGUKKyRub2RlLT5zYWZlX3BzcWwo CisJJ3Bvc3RncmVzJywgcXF7CisJRE8gXCRcJAorCURFQ0xBUkUKKwkJaSBJTlRFR0VSOworCUJF R0lOCisJCUZPUiBpIElOIDEuLiRpbmRleGVzX251bSBMT09QCisJCQlFWEVDVVRFIGZvcm1hdCgn Q1JFQVRFIElOREVYIGlkeF9jb2xfXCVzIE9OIHRlc3RfYXV0b3ZhYyAoY29sX1wlcyk7JywgaSwg aSk7CisJCUVORCBMT09QOworCUVORCBcJFwkOworfSk7CisKKyMgVGVzdCAxIDoKKyMgT3VyIHRh YmxlIGhhcyBlbm91Z2ggaW5kZXhlcyBhbmQgYXBwcm9wcmlhdGUgcmVsb3B0aW9ucywgc28gYXV0 b3ZhY3V1bSBtdXN0CisjIGJlIGFibGUgdG8gcHJvY2VzcyBpdCBpbiBwYXJhbGxlbCBtb2RlLiBK dXN0IGNoZWNrIGlmIGl0IGNhbiBkbyBpdC4KKworbXkgJGF2X2NvdW50ID0gcHJlcGFyZV9mb3Jf bmV4dF90ZXN0KCRub2RlLCAxKTsKK215ICRsb2dfb2Zmc2V0ID0gLXMgJG5vZGUtPmxvZ2ZpbGU7 CisKKyRub2RlLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXF7CisJQUxURVIgVEFCTEUgdGVz dF9hdXRvdmFjIFNFVCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gdHJ1ZSk7Cit9KTsKKworIyBXYWl0 IHVudGlsIHRoZSBwYXJhbGxlbCBhdXRvdmFjdXVtIG9uIHRhYmxlIGlzIGNvbXBsZXRlZC4gQXQg dGhlIHNhbWUgdGltZSwKKyMgd2UgY2hlY2sgdGhhdCB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIHBh cmFsbGVsIHdvcmtlcnMgaGFzIGJlZW4gc3RhcnRlZC4KK3dhaXRfZm9yX2F1dG92YWN1dW1fY29t cGxldGUoJG5vZGUsICRhdl9jb3VudCk7CitvayggJG5vZGUtPmxvZ19jb250YWlucygKKwkJcXIv cGFyYWxsZWwgd29ya2VyczogaW5kZXggdmFjdXVtOiAyIHBsYW5uZWQsIDIgbGF1bmNoZWQgaW4g dG90YWwvLAorCQkkbG9nX29mZnNldCkpOworCisjIFRlc3QgMjoKKyMgQ2hlY2sgd2hldGhlciBw YXJhbGxlbCBhdXRvdmFjdXVtIGxlYWRlciBjYW4gcHJvcGFnYXRlIGNvc3QtYmFzZWQgcGFyYW1l dGVycworIyB0byB0aGUgcGFyYWxsZWwgd29ya2Vycy4KKworJGF2X2NvdW50ID0gcHJlcGFyZV9m b3JfbmV4dF90ZXN0KCRub2RlLCAyKTsKKyRsb2dfb2Zmc2V0ID0gLXMgJG5vZGUtPmxvZ2ZpbGU7 CisKKyRub2RlLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXF7CisJU0VMRUNUIGluamVjdGlv bl9wb2ludHNfYXR0YWNoKCdhdXRvdmFjdXVtLXN0YXJ0LXBhcmFsbGVsLXZhY3V1bScsICd3YWl0 Jyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdhdXRvdmFjdXVtLWxlYWRlci1i ZWZvcmUtaW5kZXhlcy1wcm9jZXNzaW5nJywgJ3dhaXQnKTsKKworCUFMVEVSIFRBQkxFIHRlc3Rf YXV0b3ZhYyBTRVQgKGF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VycyA9IDEsIGF1dG92YWN1dW1f ZW5hYmxlZCA9IHRydWUpOworfSk7CisKKyMgV2FpdCB1bnRpbCBwYXJhbGxlbCBhdXRvdmFjdXVt IGlzIGluaXRlZAorJG5vZGUtPndhaXRfZm9yX2V2ZW50KCdhdXRvdmFjdXVtIHdvcmtlcicsCisJ J2F1dG92YWN1dW0tc3RhcnQtcGFyYWxsZWwtdmFjdXVtJyk7CisKKyMgVXBkYXRlIHRoZSBzaGFy ZWQgY29zdC1iYXNlZCBkZWxheSBwYXJhbWV0ZXJzLgorJG5vZGUtPnNhZmVfcHNxbCgKKwkncG9z dGdyZXMnLCBxcXsKKwlBTFRFUiBTWVNURU0gU0VUIHZhY3V1bV9jb3N0X2xpbWl0ID0gNTAwOwor CUFMVEVSIFNZU1RFTSBTRVQgdmFjdXVtX2Nvc3RfcGFnZV9taXNzID0gMTA7CisJQUxURVIgU1lT VEVNIFNFVCB2YWN1dW1fY29zdF9wYWdlX2RpcnR5ID0gMTA7CisJQUxURVIgU1lTVEVNIFNFVCB2 YWN1dW1fY29zdF9wYWdlX2hpdCA9IDEwOworCVNFTEVDVCBwZ19yZWxvYWRfY29uZigpOworfSk7 CisKKyMgUmVzdW1lIHRoZSBsZWFkZXIgcHJvY2VzcyB0byB1cGRhdGUgdGhlIHNoYXJlZCBwYXJh bWV0ZXJzIGR1cmluZyBoZWFwIHNjYW4gKGkuZS4KKyMgdmFjdXVtX2RlbGF5X3BvaW50KCkgaXMg Y2FsbGVkKSBhbmQgbGF1bmNoIGEgcGFyYWxsZWwgdmFjdXVtIHdvcmtlciwgYnV0IGl0IHN0b3Bz CisjIGJlZm9yZSB2YWN1dW1pbmcgaW5kZXhlcyBkdWUgdG8gdGhlIGluamVjdGlvbiBwb2ludC4K KyRub2RlLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXF7CisJU0VMRUNUIGluamVjdGlvbl9w b2ludHNfd2FrZXVwKCdhdXRvdmFjdXVtLXN0YXJ0LXBhcmFsbGVsLXZhY3V1bScpOworfSk7Cisk bm9kZS0+d2FpdF9mb3JfZXZlbnQoJ2F1dG92YWN1dW0gd29ya2VyJywKKwknYXV0b3ZhY3V1bS1s ZWFkZXItYmVmb3JlLWluZGV4ZXMtcHJvY2Vzc2luZycpOworCisjIENoZWNrIHdoZXRoZXIgcGFy YWxsZWwgd29ya2VyIHN1Y2Nlc3NmdWxseSB1cGRhdGVkIGFsbCBwYXJhbWV0ZXJzIGR1cmluZwor IyBpbmRleCBwcm9jZXNzaW5nCiskbm9kZS0+d2FpdF9mb3JfbG9nKAorCXFyL3BhcmFsbGVsIGF1 dG92YWN1dW0gd29ya2VyIHVwZGF0ZWQgY29zdCBwYXJhbXM6IGNvc3RfbGltaXQ9NTAwLCBjb3N0 X2RlbGF5PTIsIGNvc3RfcGFnZV9taXNzPTEwLCBjb3N0X3BhZ2VfZGlydHk9MTAsIGNvc3RfcGFn ZV9oaXQ9MTAvLAorCSRsb2dfb2Zmc2V0KTsKKworJG5vZGUtPnNhZmVfcHNxbCgKKwkncG9zdGdy ZXMnLCBxcXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2F1dG92YWN1dW0tbGVh ZGVyLWJlZm9yZS1pbmRleGVzLXByb2Nlc3NpbmcnKTsKK30pOworCit3YWl0X2Zvcl9hdXRvdmFj dXVtX2NvbXBsZXRlKCRub2RlLCAkYXZfY291bnQpOworCisjIENsZWFudXAKKyRub2RlLT5zYWZl X3BzcWwoCisJJ3Bvc3RncmVzJywgcXF7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNo KCdhdXRvdmFjdXVtLXN0YXJ0LXBhcmFsbGVsLXZhY3V1bScpOworCVNFTEVDVCBpbmplY3Rpb25f cG9pbnRzX2RldGFjaCgnYXV0b3ZhY3V1bS1sZWFkZXItYmVmb3JlLWluZGV4ZXMtcHJvY2Vzc2lu ZycpOworfSk7CisKKyRub2RlLT5zdG9wOworZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0CmluZGV4IGUzYzEwMDdhYmRmLi5hZWFmOTMwNzU1OCAxMDA2NDQKLS0tIGEvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QKQEAgLTIwOTcsNiArMjA5Nyw3IEBAIFBWSW5kU3RhdHMKIFBWSW5kVmFjU3Rh dHVzCiBQVk9JRAogUFZTaGFyZWQKK1BWU2hhcmVkQ29zdFBhcmFtcwogUFZXb3JrZXJVc2FnZQog UFZXb3JrZXJTdGF0cwogUFhfQWxpYXMKLS0gCjIuNDMuMAoK --00000000000001e88e064e3b7add Content-Type: text/x-patch; charset="US-ASCII"; name="v33-0002-Documantation-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v33-0002-Documantation-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnd1x2p10 RnJvbSAyMzVmNWM4YjMxZGI4YjgxZmY5NzM1NzA3Yzk1MTI4MjAxMTMxZDJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBTYXQsIDI4IE1hciAyMDI2IDE3OjM3OjA3ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MzMgMi8yXSBEb2N1bWFudGF0aW9uIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIGRv Yy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgfCAxOSArKysrKysrKysrKysrKwogZG9j L3NyYy9zZ21sL21haW50ZW5hbmNlLnNnbWwgICAgICB8IDQyICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCB8IDE4ICsrKysr KysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvdmFjdXVtLnNnbWwgICAgICAgfCAyNCArKystLS0t LS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvY29uZmlnLnNnbWwKaW5kZXggMjI5ZjQxMzUzZWIuLmNiZTczMTcyYjJlIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21s CkBAIC0yOTE4LDYgKzI5MTgsNyBAQCBpbmNsdWRlX2RpciAnY29uZi5kJwogICAgICAgICA8cGFy YT4KICAgICAgICAgIFdoZW4gY2hhbmdpbmcgdGhpcyB2YWx1ZSwgY29uc2lkZXIgYWxzbyBhZGp1 c3RpbmcKICAgICAgICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtcGFyYWxsZWwtd29ya2VycyIv PiwKKyAgICAgICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1hdXRvdmFjdXVtLW1heC1wYXJhbGxlbC13 b3JrZXJzIi8+LAogICAgICAgICAgPHhyZWYgbGlua2VuZD0iZ3VjLW1heC1wYXJhbGxlbC1tYWlu dGVuYW5jZS13b3JrZXJzIi8+LCBhbmQKICAgICAgICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgt cGFyYWxsZWwtd29ya2Vycy1wZXItZ2F0aGVyIi8+LgogICAgICAgICA8L3BhcmE+CkBAIC05NDg1 LDYgKzk0ODYsMjQgQEAgQ09QWSBwb3N0Z3Jlc19sb2cgRlJPTSAnL2Z1bGwvcGF0aC90by9sb2dm aWxlLmNzdicgV0lUSCBjc3Y7CiAgICAgICAgPC9saXN0aXRlbT4KICAgICAgIDwvdmFybGlzdGVu dHJ5PgogCisgICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtYXV0b3ZhY3V1bS1tYXgtcGFyYWxs ZWwtd29ya2VycyIgeHJlZmxhYmVsPSJhdXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzIj4K KyAgICAgICAgPHRlcm0+PHZhcm5hbWU+YXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2Vyczwv dmFybmFtZT4gKDx0eXBlPmludGVnZXI8L3R5cGU+KQorICAgICAgICA8aW5kZXh0ZXJtPgorICAg ICAgICAgPHByaW1hcnk+PHZhcm5hbWU+YXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2Vyczwv dmFybmFtZT48L3ByaW1hcnk+CisgICAgICAgICA8c2Vjb25kYXJ5PmNvbmZpZ3VyYXRpb24gcGFy YW1ldGVyPC9zZWNvbmRhcnk+CisgICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgICA8L3Rlcm0+ CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIFNldHMgdGhl IG1heGltdW0gbnVtYmVyIG9mIHBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VycyB0aGF0CisgICAg ICAgICAgY2FuIGJlIHVzZWQgZm9yIHRoZSA8eHJlZiBsaW5rZW5kPSJwYXJhbGxlbC12YWN1dW0i Lz4KKyAgICAgICAgICBieSBhIHNpbmdsZSBhdXRvdmFjdXVtIHdvcmtlci4gSXMgY2FwcGVkIGJ5 IDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtcGFyYWxsZWwtd29ya2VycyIvPi4KKyAgICAgICAgICBU aGUgZGVmYXVsdCBpcyAwLCB3aGljaCBtZWFucyBubyBwYXJhbGxlbCBpbmRleCB2YWN1dW1pbmcg Zm9yIHRoaXMKKyAgICAgICAgICB0YWJsZS4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9s aXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPC92YXJpYWJsZWxpc3Q+CiAg ICAgPC9zZWN0Mj4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL21haW50ZW5hbmNlLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvbWFpbnRlbmFuY2Uuc2dtbAppbmRleCAwZDJhMjgyMDdlZC4uZTM1MDIy NjYxMGEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9tYWludGVuYW5jZS5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9tYWludGVuYW5jZS5zZ21sCkBAIC05MjcsNiArOTI3LDEzIEBAIEhJTlQ6ICBF eGVjdXRlIGEgZGF0YWJhc2Utd2lkZSBWQUNVVU0gaW4gdGhhdCBkYXRhYmFzZS4KICAgICBhdXRv dmFjdXVtIHdvcmtlcnMnIGFjdGl2aXR5LgogICAgPC9wYXJhPgogCisgICA8cGFyYT4KKyAgICBJ ZiBhbiBhdXRvdmFjdXVtIHdvcmtlciBwcm9jZXNzIGNvbWVzIGFjcm9zcyBhIHRhYmxlIHdpdGgg dGhlIGVuYWJsZWQKKyAgICA8eHJlZiBsaW5rZW5kPSJyZWxvcHRpb24tYXV0b3ZhY3V1bS1wYXJh bGxlbC13b3JrZXJzIi8+IHN0b3JhZ2UgcGFyYW1ldGVyLAorICAgIGl0IHdpbGwgbGF1bmNoIHBh cmFsbGVsIHdvcmtlcnMgaW4gb3JkZXIgdG8gcGVyZm9ybSB0aGUKKyAgICA8eHJlZiBsaW5rZW5k PSJwYXJhbGxlbC12YWN1dW0iLz4uCisgICA8L3BhcmE+CisKICAgIDxwYXJhPgogICAgIElmIHNl dmVyYWwgbGFyZ2UgdGFibGVzIGFsbCBiZWNvbWUgZWxpZ2libGUgZm9yIHZhY3V1bWluZyBpbiBh IHNob3J0CiAgICAgYW1vdW50IG9mIHRpbWUsIGFsbCBhdXRvdmFjdXVtIHdvcmtlcnMgbWlnaHQg YmVjb21lIG9jY3VwaWVkIHdpdGgKQEAgLTEwMzgsNiArMTA0NSwxMCBAQCBhbmFseXplIHRocmVz aG9sZCA9IGFuYWx5emUgYmFzZSB0aHJlc2hvbGQgKyBhbmFseXplIHNjYWxlIGZhY3RvciAqIG51 bWJlciBvZiB0dQogICAgIHBlci10YWJsZSA8bGl0ZXJhbD5hdXRvdmFjdXVtX3ZhY3V1bV9jb3N0 X2RlbGF5PC9saXRlcmFsPiBvcgogICAgIDxsaXRlcmFsPmF1dG92YWN1dW1fdmFjdXVtX2Nvc3Rf bGltaXQ8L2xpdGVyYWw+IHN0b3JhZ2UgcGFyYW1ldGVycyBoYXZlIGJlZW4gc2V0CiAgICAgYXJl IG5vdCBjb25zaWRlcmVkIGluIHRoZSBiYWxhbmNpbmcgYWxnb3JpdGhtLgorICAgIFBhcmFsbGVs IHdvcmtlcnMgbGF1bmNoZWQgZm9yIDx4cmVmIGxpbmtlbmQ9InBhcmFsbGVsLXZhY3V1bSIvPiBh cmUgdXNpbmcKKyAgICB0aGUgc2FtZSBjb3N0IGRlbGF5IHBhcmFtZXRlcnMgYXMgdGhlIGxlYWRl ciB3b3JrZXIuIElmIGFueSBvZiB0aGVzZQorICAgIHBhcmFtZXRlcnMgYXJlIGNoYW5nZWQgaW4g dGhlIGxlYWRlciB3b3JrZXIsIGl0IHdpbGwgcHJvcGFnYXRlIHRoZSBuZXcKKyAgICBwYXJhbWV0 ZXIgdmFsdWVzIHRvIGFsbCBvZiBpdHMgcGFyYWxsZWwgd29ya2Vycy4KICAgIDwvcGFyYT4KIAog ICAgPHBhcmE+CkBAIC0xMTY2LDYgKzExNzcsMzcgQEAgYW5hbHl6ZSB0aHJlc2hvbGQgPSBhbmFs eXplIGJhc2UgdGhyZXNob2xkICsgYW5hbHl6ZSBzY2FsZSBmYWN0b3IgKiBudW1iZXIgb2YgdHUK ICAgICA8L3BhcmE+CiAgICA8L3NlY3QzPgogICA8L3NlY3QyPgorCisgIDxzZWN0MiBpZD0icGFy YWxsZWwtdmFjdXVtIiB4cmVmbGFiZWw9IlBhcmFsbGVsIFZhY3V1bSI+CisgICA8dGl0bGU+UGFy YWxsZWwgVmFjdXVtPC90aXRsZT4KKworICAgPHBhcmE+CisgICAgQm90aCA8Y29tbWFuZD5WQUNV VU08L2NvbW1hbmQ+IGNvbW1hbmQgYW5kIGF1dG92YWN1dW0gZGFlbW9uIGNhbiBwZXJmb3JtCisg ICAgaW5kZXggdmFjdXVtIGFuZCBpbmRleCBjbGVhbnVwIHBoYXNlcyBpbiBwYXJhbGxlbCB1c2lu ZworICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbnRlZ2VyPC9yZXBsYWNlYWJs ZT4gYmFja2dyb3VuZCB3b3JrZXJzCisgICAgKGZvciB0aGUgZGV0YWlscyBvZiBlYWNoIHZhY3V1 bSBwaGFzZSwgcGxlYXNlIHJlZmVyIHRvCisgICAgPHhyZWYgbGlua2VuZD0idmFjdXVtLXBoYXNl cyIvPikuIFRoZSBudW1iZXIgb2Ygd29ya2VycyB1c2VkIHRvIHBlcmZvcm0KKyAgICB0aGUgb3Bl cmF0aW9uIGlzIGVxdWFsIHRvIHRoZSBudW1iZXIgb2YgaW5kZXhlcyBvbiB0aGUgcmVsYXRpb24g dGhhdAorICAgIHN1cHBvcnQgcGFyYWxsZWwgdmFjdXVtIHdoaWNoIG1heSBiZSBmdXJ0aGVyIGxp bWl0ZWQgYnkgdGhlIHZhbHVlIHNwZWNpZmljCisgICAgdG8gPGNvbW1hbmQ+VkFDVVVNPC9jb21t YW5kPiBvciBhdXRvdmFjdXVtIChzZWUgPGxpdGVyYWw+UEFSQUxMRUw8L2xpdGVyYWw+CisgICAg b3B0aW9uIGZvciA8eHJlZiBsaW5rZW5kPSJzcWwtdmFjdXVtIi8+IG9yCisgICAgPHhyZWYgbGlu a2VuZD0icmVsb3B0aW9uLWF1dG92YWN1dW0tcGFyYWxsZWwtd29ya2VycyIvPiwgcmVzcGVjdGl2 ZWx5KS4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgQW4gaW5kZXggY2FuIHBhcnRpY2lw YXRlIGluIHBhcmFsbGVsIHZhY3V1bSBpZiBhbmQgb25seSBpZiB0aGUgc2l6ZSBvZiB0aGUKKyAg ICBpbmRleCBpcyBtb3JlIHRoYW4gPHhyZWYgbGlua2VuZD0iZ3VjLW1pbi1wYXJhbGxlbC1pbmRl eC1zY2FuLXNpemUiLz4uCisgICAgUGxlYXNlIG5vdGUgdGhhdCBpdCBpcyBub3QgZ3VhcmFudGVl ZCB0aGF0IHRoZSBudW1iZXIgb2YgcGFyYWxsZWwgd29ya2VycworICAgIHNwZWNpZmllZCBpbiA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW50ZWdlcjwvcmVwbGFjZWFibGU+IHdpbGwg YmUKKyAgICB1c2VkIGR1cmluZyBleGVjdXRpb24uICBJdCBpcyBwb3NzaWJsZSBmb3IgYSB2YWN1 dW0gdG8gcnVuIHdpdGggZmV3ZXIKKyAgICB3b3JrZXJzIHRoYW4gc3BlY2lmaWVkLCBvciBldmVu IHdpdGggbm8gd29ya2VycyBhdCBhbGwuICBPbmx5IG9uZSB3b3JrZXIKKyAgICBjYW4gYmUgdXNl ZCBwZXIgaW5kZXguICBTbyBwYXJhbGxlbCB3b3JrZXJzIGFyZSBsYXVuY2hlZCBvbmx5IHdoZW4g dGhlcmUKKyAgICBhcmUgYXQgbGVhc3QgPGxpdGVyYWw+MjwvbGl0ZXJhbD4gaW5kZXhlcyBpbiB0 aGUgdGFibGUuICBXb3JrZXJzIGZvcgorICAgIHZhY3V1bSBhcmUgbGF1bmNoZWQgYmVmb3JlIHRo ZSBzdGFydCBvZiBlYWNoIHBoYXNlIGFuZCBleGl0IGF0IHRoZSBlbmQgb2YKKyAgICB0aGUgcGhh c2UuICBUaGVzZSBiZWhhdmlvcnMgbWlnaHQgY2hhbmdlIGluIGEgZnV0dXJlIHJlbGVhc2UuCisg ICA8L3BhcmE+CisKKyAgPC9zZWN0Mj4KICA8L3NlY3QxPgogCiAKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90 YWJsZS5zZ21sCmluZGV4IDgwODI5YjIzOTQ1Li44ZjViMjU0MTFjZCAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV90YWJsZS5zZ21sCkBAIC0xNzM4LDYgKzE3MzgsMjQgQEAgV0lUSCAoIE1PRFVMVVMgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+ LCBSRU0KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgPHZhcmxpc3Rl bnRyeSBpZD0icmVsb3B0aW9uLWF1dG92YWN1dW0tcGFyYWxsZWwtd29ya2VycyIgeHJlZmxhYmVs PSJhdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMiPgorICAgIDx0ZXJtPjxsaXRlcmFsPmF1dG92 YWN1dW1fcGFyYWxsZWxfd29ya2VyczwvbGl0ZXJhbD4gKDx0eXBlPmludGVnZXI8L3R5cGU+KQor ICAgIDxpbmRleHRlcm0+CisgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPmF1dG92YWN1dW1fcGFyYWxs ZWxfd29ya2VyczwvdmFybmFtZT4gc3RvcmFnZSBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgPC9p bmRleHRlcm0+CisgICAgPC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBwYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtlcnMg dGhhdCBjYW4gYmUgdXNlZAorICAgICAgZm9yIHRoZSA8eHJlZiBsaW5rZW5kPSJwYXJhbGxlbC12 YWN1dW0iLz4uCisgICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAwLCB3aGljaCBtZWFucyBubyBw YXJhbGxlbCBpbmRleCB2YWN1dW1pbmcgZm9yCisgICAgICB0aGlzIHRhYmxlLiBJZiB2YWx1ZSBp cyAtMSB0aGVuIHBhcmFsbGVsIGRlZ3JlZSB3aWxsIGNvbXB1dGVkIGJhc2VkIG9uCisgICAgICBu dW1iZXIgb2YgaW5kZXhlcyBhbmQgbGltaXRlZCBieSB0aGUgPHhyZWYgbGlua2VuZD0iZ3VjLWF1 dG92YWN1dW0tbWF4LXBhcmFsbGVsLXdvcmtlcnMiLz4KKyAgICAgIGNvbmZpZ3VyYXRpb24gcGFy YW1ldGVyLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5 PgorCiAgICA8dmFybGlzdGVudHJ5IGlkPSJyZWxvcHRpb24tYXV0b3ZhY3V1bS12YWN1dW0tdGhy ZXNob2xkIiB4cmVmbGFiZWw9ImF1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZCI+CiAgICAgPHRl cm0+PGxpdGVyYWw+YXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkPC9saXRlcmFsPiwgPGxpdGVy YWw+dG9hc3QuYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkPC9saXRlcmFsPiAoPHR5cGU+aW50 ZWdlcjwvdHlwZT4pCiAgICAgPGluZGV4dGVybT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvdmFjdXVtLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3ZhY3V1bS5zZ21sCmluZGV4IGFjNWQw ODNkNDY4Li5kM2YzMjg1MTM4NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi92YWN1dW0u c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3ZhY3V1bS5zZ21sCkBAIC04MSw3ICs4MSw3IEBA IFZBQ1VVTSBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9wdGlvbjwvcmVwbGFj ZWFibGU+IFssIC4uLl0gKSBdIFsgPHJlCiAgICBpcyBub3Qgb2J0YWluZWQuICBIb3dldmVyLCBl eHRyYSBzcGFjZSBpcyBub3QgcmV0dXJuZWQgdG8gdGhlIG9wZXJhdGluZwogICAgc3lzdGVtIChp biBtb3N0IGNhc2VzKTsgaXQncyBqdXN0IGtlcHQgYXZhaWxhYmxlIGZvciByZS11c2Ugd2l0aGlu IHRoZQogICAgc2FtZSB0YWJsZS4gIEl0IGFsc28gYWxsb3dzIHVzIHRvIGxldmVyYWdlIG11bHRp cGxlIENQVXMgaW4gb3JkZXIgdG8gcHJvY2VzcwotICAgaW5kZXhlcy4gIFRoaXMgZmVhdHVyZSBp cyBrbm93biBhcyA8Zmlyc3R0ZXJtPnBhcmFsbGVsIHZhY3V1bTwvZmlyc3R0ZXJtPi4KKyAgIGlu ZGV4ZXMuICBUaGlzIGZlYXR1cmUgaXMga25vd24gYXMgPHhyZWYgbGlua2VuZD0icGFyYWxsZWwt dmFjdXVtIi8+LgogICAgVG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUsIG9uZSBjYW4gdXNlIDxsaXRl cmFsPlBBUkFMTEVMPC9saXRlcmFsPiBvcHRpb24gYW5kCiAgICBzcGVjaWZ5IHBhcmFsbGVsIHdv cmtlcnMgYXMgemVyby4gIDxjb21tYW5kPlZBQ1VVTSBGVUxMPC9jb21tYW5kPiByZXdyaXRlcwog ICAgdGhlIGVudGlyZSBjb250ZW50cyBvZiB0aGUgdGFibGUgaW50byBhIG5ldyBkaXNrIGZpbGUg d2l0aCBubyBleHRyYSBzcGFjZSwKQEAgLTI2NiwyNSArMjY2LDkgQEAgVkFDVVVNIFsgKCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3B0aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uXSAp IF0gWyA8cmUKICAgICA8dGVybT48bGl0ZXJhbD5QQVJBTExFTDwvbGl0ZXJhbD48L3Rlcm0+CiAg ICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KLSAgICAgIFBlcmZvcm0gaW5kZXggdmFjdXVtIGFu ZCBpbmRleCBjbGVhbnVwIHBoYXNlcyBvZiA8Y29tbWFuZD5WQUNVVU08L2NvbW1hbmQ+Ci0gICAg ICBpbiBwYXJhbGxlbCB1c2luZyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW50ZWdl cjwvcmVwbGFjZWFibGU+Ci0gICAgICBiYWNrZ3JvdW5kIHdvcmtlcnMgKGZvciB0aGUgZGV0YWls cyBvZiBlYWNoIHZhY3V1bSBwaGFzZSwgcGxlYXNlCi0gICAgICByZWZlciB0byA8eHJlZiBsaW5r ZW5kPSJ2YWN1dW0tcGhhc2VzIi8+KS4gIFRoZSBudW1iZXIgb2Ygd29ya2VycyB1c2VkCi0gICAg ICB0byBwZXJmb3JtIHRoZSBvcGVyYXRpb24gaXMgZXF1YWwgdG8gdGhlIG51bWJlciBvZiBpbmRl eGVzIG9uIHRoZQotICAgICAgcmVsYXRpb24gdGhhdCBzdXBwb3J0IHBhcmFsbGVsIHZhY3V1bSB3 aGljaCBpcyBsaW1pdGVkIGJ5IHRoZSBudW1iZXIgb2YKLSAgICAgIHdvcmtlcnMgc3BlY2lmaWVk IHdpdGggPGxpdGVyYWw+UEFSQUxMRUw8L2xpdGVyYWw+IG9wdGlvbiBpZiBhbnkgd2hpY2ggaXMK LSAgICAgIGZ1cnRoZXIgbGltaXRlZCBieSA8eHJlZiBsaW5rZW5kPSJndWMtbWF4LXBhcmFsbGVs LW1haW50ZW5hbmNlLXdvcmtlcnMiLz4uCi0gICAgICBBbiBpbmRleCBjYW4gcGFydGljaXBhdGUg aW4gcGFyYWxsZWwgdmFjdXVtIGlmIGFuZCBvbmx5IGlmIHRoZSBzaXplIG9mIHRoZQotICAgICAg aW5kZXggaXMgbW9yZSB0aGFuIDx4cmVmIGxpbmtlbmQ9Imd1Yy1taW4tcGFyYWxsZWwtaW5kZXgt c2Nhbi1zaXplIi8+LgotICAgICAgUGxlYXNlIG5vdGUgdGhhdCBpdCBpcyBub3QgZ3VhcmFudGVl ZCB0aGF0IHRoZSBudW1iZXIgb2YgcGFyYWxsZWwgd29ya2VycwotICAgICAgc3BlY2lmaWVkIGlu IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbnRlZ2VyPC9yZXBsYWNlYWJsZT4gd2ls bCBiZQotICAgICAgdXNlZCBkdXJpbmcgZXhlY3V0aW9uLiAgSXQgaXMgcG9zc2libGUgZm9yIGEg dmFjdXVtIHRvIHJ1biB3aXRoIGZld2VyCi0gICAgICB3b3JrZXJzIHRoYW4gc3BlY2lmaWVkLCBv ciBldmVuIHdpdGggbm8gd29ya2VycyBhdCBhbGwuICBPbmx5IG9uZSB3b3JrZXIKLSAgICAgIGNh biBiZSB1c2VkIHBlciBpbmRleC4gIFNvIHBhcmFsbGVsIHdvcmtlcnMgYXJlIGxhdW5jaGVkIG9u bHkgd2hlbiB0aGVyZQotICAgICAgYXJlIGF0IGxlYXN0IDxsaXRlcmFsPjI8L2xpdGVyYWw+IGlu ZGV4ZXMgaW4gdGhlIHRhYmxlLiAgV29ya2VycyBmb3IKLSAgICAgIHZhY3V1bSBhcmUgbGF1bmNo ZWQgYmVmb3JlIHRoZSBzdGFydCBvZiBlYWNoIHBoYXNlIGFuZCBleGl0IGF0IHRoZSBlbmQgb2YK LSAgICAgIHRoZSBwaGFzZS4gIFRoZXNlIGJlaGF2aW9ycyBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1 cmUgcmVsZWFzZS4gIFRoaXMKLSAgICAgIG9wdGlvbiBjYW4ndCBiZSB1c2VkIHdpdGggdGhlIDxs aXRlcmFsPkZVTEw8L2xpdGVyYWw+IG9wdGlvbi4KKyAgICAgIExpbWl0cyB0aGUgbnVtYmVyIG9m IHBhcmFsbGVsIHdvcmtlcnMgdXNlZCB0byBwZXJmb3JtIHRoZQorICAgICAgPHhyZWYgbGlua2Vu ZD0icGFyYWxsZWwtdmFjdXVtIi8+LCB3aGljaCBpcyBmdXJ0aGVyIGxpbWl0ZWQgYnkKKyAgICAg IDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtcGFyYWxsZWwtbWFpbnRlbmFuY2Utd29ya2VycyIvPi4K ICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KLS0gCjIu NDMuMAoK --00000000000001e88e064e3b7add Content-Type: text/x-patch; charset="US-ASCII"; name="v32--v33-diff-for-0002.patch" Content-Disposition: attachment; filename="v32--v33-diff-for-0002.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnd1x8rz2 RnJvbSAxYjQxZDZlN2E5NWYzYjg1MDdkZGM3ZjEwYTJhNDRiNmY5YmRmMWE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBNb24sIDMwIE1hciAyMDI2IDE3OjIzOjIzICswNzAwClN1YmplY3Q6IFtQQVRD SF0gdGVtcAoKLS0tCiBkb2Mvc3JjL3NnbWwvbWFpbnRlbmFuY2Uuc2dtbCB8IDQgKysrKwogMSBm aWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9t YWludGVuYW5jZS5zZ21sIGIvZG9jL3NyYy9zZ21sL21haW50ZW5hbmNlLnNnbWwKaW5kZXggYTFi ODUxZWE1OGYuLmUzNTAyMjY2MTBhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbWFpbnRlbmFu Y2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbWFpbnRlbmFuY2Uuc2dtbApAQCAtMTA0NSw2ICsx MDQ1LDEwIEBAIGFuYWx5emUgdGhyZXNob2xkID0gYW5hbHl6ZSBiYXNlIHRocmVzaG9sZCArIGFu YWx5emUgc2NhbGUgZmFjdG9yICogbnVtYmVyIG9mIHR1CiAgICAgcGVyLXRhYmxlIDxsaXRlcmFs PmF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXk8L2xpdGVyYWw+IG9yCiAgICAgPGxpdGVyYWw+ YXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1pdDwvbGl0ZXJhbD4gc3RvcmFnZSBwYXJhbWV0ZXJz IGhhdmUgYmVlbiBzZXQKICAgICBhcmUgbm90IGNvbnNpZGVyZWQgaW4gdGhlIGJhbGFuY2luZyBh bGdvcml0aG0uCisgICAgUGFyYWxsZWwgd29ya2VycyBsYXVuY2hlZCBmb3IgPHhyZWYgbGlua2Vu ZD0icGFyYWxsZWwtdmFjdXVtIi8+IGFyZSB1c2luZworICAgIHRoZSBzYW1lIGNvc3QgZGVsYXkg cGFyYW1ldGVycyBhcyB0aGUgbGVhZGVyIHdvcmtlci4gSWYgYW55IG9mIHRoZXNlCisgICAgcGFy YW1ldGVycyBhcmUgY2hhbmdlZCBpbiB0aGUgbGVhZGVyIHdvcmtlciwgaXQgd2lsbCBwcm9wYWdh dGUgdGhlIG5ldworICAgIHBhcmFtZXRlciB2YWx1ZXMgdG8gYWxsIG9mIGl0cyBwYXJhbGxlbCB3 b3JrZXJzLgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLS0gCjIuNDMuMAoK --00000000000001e88e064e3b7add--