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.94.2) (envelope-from ) id 1u10qt-00CLdo-Ad for pgsql-hackers@arkaria.postgresql.org; Sat, 05 Apr 2025 10:34:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1u10qr-00Bt2O-Nu for pgsql-hackers@arkaria.postgresql.org; Sat, 05 Apr 2025 10:34:13 +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.94.2) (envelope-from ) id 1u10qq-00Bt2G-FQ for pgsql-hackers@lists.postgresql.org; Sat, 05 Apr 2025 10:34:13 +0000 Received: from mail-yw1-x1130.google.com ([2607:f8b0:4864:20::1130]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1u10qg-0035gY-08 for pgsql-hackers@lists.postgresql.org; Sat, 05 Apr 2025 10:34:11 +0000 Received: by mail-yw1-x1130.google.com with SMTP id 00721157ae682-6fecfae554bso25367887b3.0 for ; Sat, 05 Apr 2025 03:34:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743849241; x=1744454041; 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=dLcy0H/3Hv0KkTAiU28F0I5c0kL7guKDMqSEdtxndDI=; b=RlqqxTl16hJc4db3mA3oM2uGh2IR5SsVC5CJlMirpiH33scHVNMeXYe4FRmrY2JbwS efZa72+1yIlyWQESvVF6SLKWCS8rz/eZ3teY4HoIFMFXUmIbckRLjQ0eWPX0TXkfBuOP ZA80aVExJYNxvXvmNmrby2VoZawadHDd1lHeQXDPywkUeJJ57AbBzC00U7B6+BEDJ8Uw 683cqUIfC+tsEtPSvlVB8eM2zlZMAwtjgMTA9WP3z1r9nRJ/jstGkwsj0Y96MMVsShI3 yprXU21EhEjVRq8BXH5ge2/mzSV/kGXgODZdJG8Pa9ObtU/vJZepzuxT9xWLQfO/VE3j nkVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743849241; x=1744454041; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=dLcy0H/3Hv0KkTAiU28F0I5c0kL7guKDMqSEdtxndDI=; b=akiR728n3X85TgTy2gj9ipv2kmEANZfS5zLPyuLCqsrpRu1AuFdXMZYB8Dh+sx7A5U 8UgDbKepcM//foUsGuxdN4zwUOlTwcpLN1kan7Gm1AHoleUxx8XopS/IkZ5fsRizT6iR xk1S4LiJw+9civdb7JiwIjeVZY75JruB4/anALdqKa4y+St9I3IT8fzykrA8ZaZMVT2C OzjVpB1EPr1MzTnpt23dqQ1ifuxGqgIk6zAZEo2PQQddLp8HhOOZziDMw2QVs8HMu9x3 eZ9CcXaL7AEGpRzjlgbYZ9MFqq66Fu0eJ3DHFC/85JdGd2LpzxSXtbiVMvrDYQ6NWiS0 3R3w== X-Forwarded-Encrypted: i=1; AJvYcCU4ndD0b12her32v1daM4D/C3S1Q6UQ5MH7tUmwtAQBgYiVT9mQfGZZlijF2TkP729fyW3r4tqoDfz8LRQO@lists.postgresql.org X-Gm-Message-State: AOJu0YzB/1vvb7DRlR/xP02ANbSumoR+LEelhBauxJ8ccpOo9RRbnNqn YZU9F0yXW3co4MA8XmNfoTNiQnxNPt/xH3jnVpETUaEmzVeoZyjPssAcMndLHTkpQLFhuCo44AE 68Q+vGlfBbsTL1RyPyafd0JnK7rc= X-Gm-Gg: ASbGnct7QJP+li3U8YkCOWfL5DG/V59tOkY/8moBcAjaEcQ2InedN504w/+C1BystJC Hoq6wA9lJcO0XZTBEa4Y9zZOm5M3vQn5mMgW6LZk/suMqfnn4vXsvJwY5ofPJM5Y/3yV8iUSK8T ekcrRDb9iof3+YNmPQHWPNGGK4w7S0Sw9Q24Ht/psf5MRjHYEADCMJx8lWiew= X-Google-Smtp-Source: AGHT+IG8OygnaGgl1+AbFVRroow1M2bLWaCC0z/B+GXUBMowAXbqg/pP10slaSicMSSAy0Kj321RJGJi2q7Of6TCsI0= X-Received: by 2002:a05:690c:4c0d:b0:6f9:7a3c:1fe with SMTP id 00721157ae682-703e15fc5c1mr102921717b3.23.1743849241068; Sat, 05 Apr 2025 03:34:01 -0700 (PDT) MIME-Version: 1.0 References: <3chredgnjcmccym2kczawfih226b4ac6co7p6z4jeofevrcosi@mrsxkx2x2c65> <20241120201313.t4wbhld4ktgielaf@erthalion.local> In-Reply-To: From: Pavel Stehule Date: Sat, 5 Apr 2025 12:33:21 +0200 X-Gm-Features: ATxdqUHjtQYR1w9DlpoCIgzyfj9tL2QICxdQTz60Pq6szxaqJ-U3lXjObHf8OdU Message-ID: Subject: Re: Re: proposal: schema variables To: Marcos Pegoraro Cc: jian he , Dmitry Dolgov <9erthalion6@gmail.com>, Laurenz Albe , Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000008f76b80632058aa3" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000008f76b80632058aa3 Content-Type: multipart/alternative; boundary="0000000000008f76b70632058aa1" --0000000000008f76b70632058aa1 Content-Type: text/plain; charset="UTF-8" Hi only rebase Regards Pavel --0000000000008f76b70632058aa1 Content-Type: text/html; charset="UTF-8"
Hi

only rebase

Regards

Pavel
--0000000000008f76b70632058aa1-- --0000000000008f76b80632058aa3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250405-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Disposition: attachment; filename="v20250405-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m942s3tj0 RnJvbSBjZTYzYjdlMGMxZmM5ZGQzYmYxODZmOWJhYWM1OWViOWYyOGVjYjYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMTkgTm92IDIwMjQgMDg6MTQ6NTMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA4 LzIxXSB2YXJpYWJsZSBmZW5jZSBzeW50YXggc3VwcG9ydCBhbmQgdmFyaWFibGUgZmVuY2UgdXNh Z2UKIGd1YXJkIHN1cHBvcnQKCnRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNvbmNlcHQgb2YgdmFy aWFibGUgZmVuY2UgLSBzeW50YXggZm9yIHZhcmlhYmxlCnJlZmVyZW5jZSBgVkFSSUFCTEUodmFy bmFtZSlgIHRoYXQgaXMgbm90IGluIGNvbGxpc2lvbiB3aXRoIGNvbHVtbiByZWZlcmVuY2UuCldo ZW4gdmFyaWFibGUgZmVuY2UgdXNhZ2UgZ3VhcmQgd2FybmluZyBpcyBhY3RpdmUsIHRoZW4gdXNh Z2UgdmFyaWFibGUKd2l0aG91dCB2YXJpYWJsZSBmZW5jZSBpbiB0aGUgY2FzZSwgd2hlcmUgdGhl cmUgY2FuIGJlIGNvbHVtbiByZWZlcmVuY2VzLAp0aGUgdGhlIHdhcm5pbmcgaXMgcmFpc2VkLgoK aW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB2YXJpYWJsZSBmZW5jZQotLS0KIGRvYy9zcmMvc2dt bC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDY1ICsrKysrKysrKysrKysrKysK IGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8IDE1ICsrKysK IHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICA2ICsrCiBz cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAyOCArKysrKyst CiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCA3NCArKysr KysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgICAgICAg ICAgICAgfCAgNyArKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAg ICAgIHwgMTIgKystCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAg ICAgfCAgOSArKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBs ZSB8ICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8 IDEwICsrKwogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwg IDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCAgICAgICAgICAgICAgIHwgIDEg KwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNTkgKysr KysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwg ICAgfCA0MSArKysrKysrKysrCiAxNCBmaWxlcyBjaGFuZ2VkLCAzMjMgaW5zZXJ0aW9ucygrKSwg NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9k b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggMDA2OWU3ODVjNzkuLmVjNGEwYmM3ZDA1IDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Nv bmZpZy5zZ21sCkBAIC0xMTM5MCw2ICsxMTM5MCw3MSBAQCBERVRBSUw6ICBTZXNzaW9uIHZhcmlh YmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdzIHZhcmlhYmxlcyBhbmQg cgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxp c3RlbnRyeSBpZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLXVzZS1mZW5jZS13YXJuaW5nLWd1YXJk IiB4cmVmbGFiZWw9InNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkIj4K KyAgICAgIDx0ZXJtPjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5n X2d1YXJkPC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJt PgorICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93 YXJuaW5nX2d1YXJkPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4K KyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAg ICAgPHBhcmE+CisgICAgICAgV2hlbiBvbiwgYSB3YXJuaW5nIGlzIHJhaXNlZCB3aGVuIGEgc2Vz c2lvbiB2YXJpYWJsZSBpZGVudGlmaWVyIGlzIHVzZWQKKyAgICAgICBpbnNpZGUgYSBxdWVyeSB3 aXRob3V0IHZhcmlhYmxlIGZlbmNlLiBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD5vZmY8L2xpdGVy YWw+LgorICAgICAgIFRoZSB3YXJuaW5nIGlzIHJhaXNlZCBvbmx5IHdoZW4gdmFyaWFibGUgaXMg dXNlZCBpbiBwbGFjZXMsIHdoZXJlIGFuCisgICAgICAgY29sbGlzaW9ucyB3aXRoIGNvbHVtbiBu YW1lcyBpcyBwb3NzaWJsZS4KKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBUQUJMRSBmb28oYSBp bnQpOworSU5TRVJUIElOVE8gZm9vIFZBTFVFUygxMCk7CitDUkVBVEUgVkFSSUFCTEUgYiBpbnQ7 CitMRVQgYiA9IDEwMDsKK1NFTEVDVCBhLCBiIEZST00gZm9vOworPC9wcm9ncmFtbGlzdGluZz4K KworPHNjcmVlbj4KKyBhICB8ICBiCistLS0tKy0tLS0tCisgMTAgfCAxMDAKKygxIHJvdykKKzwv c2NyZWVuPgorCis8cHJvZ3JhbWxpc3Rpbmc+CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX3dhcm5pbmdfZ3VhcmQgVE8gb247CitTRUxFQ1QgYSwgYiBGUk9NIGZvbzsKKzwvcHJvZ3Jh bWxpc3Rpbmc+CisKKzxzY3JlZW4+CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAiYiIgaXMg bm90IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlCitMSU5FIDE6IFNFTEVDVCBhLCBiIEZST00g Zm9vOworICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAgVGhlIGNvbGxpc2lvbiBvZiBzZXNz aW9uIHZhcmlhYmxlJyBuYW1lcyBhbmQgY29sdW1uIG5hbWVzIGlzIHBvc3NpYmxlLgorIGEgIHwg IGIKKy0tLS0rLS0tLS0KKyAxMCB8IDEwMAorKDEgcm93KQorPC9zY3JlZW4+CisKKzxwcm9ncmFt bGlzdGluZz4KK1NFTEVDVCBhLCBWQVJJQUJMRShiKSBGUk9NIGZvbzsKKzwvcHJvZ3JhbWxpc3Rp bmc+CisKKzxzY3JlZW4+CisgYSAgfCAgYgorLS0tLSstLS0tLQorIDEwIHwgMTAwCisoMSByb3cp Cis8L3NjcmVlbj4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhp cyBmZWF0dXJlIGNhbiBzaWduaWZpY2FudGx5IGluY3JlYXNlIGxvZyBzaXplLCBzbyBpdCdzIGRp c2FibGVkIGJ5CisgICAgICAgIGRlZmF1bHQuIFVubGVzcyBhbm90aGVyIGNvbGxpc2lvbiByZXNv bHV0aW9uIHRlY2huaXF1ZSBpcyB1c2VkCisgICAgICAgIChkZWRpY2F0ZWQgc2NoZW1hIG9yIHVz aW5nIHByZWZpeGVzIGxpa2UgPGxpdGVyYWw+XzwvbGl0ZXJhbD4pLAorICAgICAgICB0aGUgdXNl IG9mIHZhcmlhYmxlIGZlbmNlIHN5bnRheCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCwgYW5kIHRo aXMKKyAgICAgICAgd2FybmluZyBzaG91bGQgYmUgZW5hYmxlZC4KKyAgICAgICA8L3BhcmE+Cisg ICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFybGlzdGVu dHJ5IGlkPSJndWMtc3RhbmRhcmQtY29uZm9ybWluZy1zdHJpbmdzIiB4cmVmbGFiZWw9InN0YW5k YXJkX2NvbmZvcm1pbmdfc3RyaW5ncyI+CiAgICAgICA8dGVybT48dmFybmFtZT5zdGFuZGFyZF9j b25mb3JtaW5nX3N0cmluZ3M8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKICAgICAg IDxpbmRleHRlcm0+PHByaW1hcnk+c3RyaW5nczwvcHJpbWFyeT48c2Vjb25kYXJ5PnN0YW5kYXJk IGNvbmZvcm1pbmc8L3NlY29uZGFyeT48L2luZGV4dGVybT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCBkNzNkODRkNjY3Ni4u Y2RkZWNmMDMwMWQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwKQEAgLTU0NjAsNiArNTQ2MCwyMSBAQCBTRUxFQ1QgbmFtZSBGUk9N IGZvbzsKICAgICA8bGl0ZXJhbD5zY2hlbWEudmFyaWFibGU8L2xpdGVyYWw+LiBJdCBpcyBzdHJv bmdseSByZWNvbW1lbmRlZCB0byByZW5hbWUKICAgICBzaGFkb3dlZCB2YXJpYWJsZXMgb3IgdXNl IHF1YWxpZmllZCBuYW1lcyBhbHdheXMuCiAgICA8L3BhcmE+CisKKyAgIDxwYXJhPjxmaXJzdHRl cm0+VmFyaWFibGUgZmVuY2U8L2ZpcnN0dGVybT4gaXMgc3BlY2lhbCBzeW50YXggZm9yIHNlc3Np b24KKyAgICB2YXJpYWJsZSBpZGVudGlmaWVyLiBPbmx5IG5hbWUgb3IgcXVhbGlmaWVkIG5hbWUg Y2FuIGJlIHVzZWQgaW5zaWRlIHRoZQorICAgIHZhcmlhYmxlIGZlbmNlLCBhbmQgdGhpcyBuYW1l IGlzIHVzZWQgYXMgb25seSBzZXNzaW9uIHZhcmlhYmxlIGlkZW50aWZpZXIuCis8cHJvZ3JhbWxp c3Rpbmc+CitTRUxFQ1QgVkFSSUFCTEUoY3VycmVudF91c2VyX2lkKTsKKzwvcHJvZ3JhbWxpc3Rp bmc+CisgICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBXaGVuIHRoZXJlIGlzIGEgcmlzayBvZiBw b3NzaWJsZSBjb2xsaXNpb25zIGJldHdlZW4gdmFyaWFibGUgaWRlbnRpZmllcnMKKyAgIGFuZCBj b2x1bW4gbmFtZXMsIHRoZW4gdXNpbmcgdmFyaWFibGUgZmVuY2Ugc3ludGF4IGNhbiBiZSByZWNv bW1lbmRlZC4KKyAgIFVzYWdlIHNlc3Npb24gdmFyaWFibGUgd2l0aG91dCB2YXJpYWJsZSBmZW5j ZSBjYW4gYmUgZGV0ZWN0ZWQgYnkKKyAgIHdhcm5pbmcgPHhyZWYgbGlua2VuZD0iZ3VjLXNlc3Np b24tdmFyaWFibGVzLXVzZS1mZW5jZS13YXJuaW5nLWd1YXJkIi8+LgorICA8L3BhcmE+CiAgIDwv c2VjdDE+CiAKICA8c2VjdDEgaWQ9ImRkbC1vdGhlcnMiPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRl eCBkOGZjM2Q5ZmE2OS4uNTc1MzY1ZWVmY2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0xNjcz LDYgKzE2NzMsOSBAQCBleHByTG9jYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX1Bh cmFtUmVmOgogCQkJbG9jID0gKChjb25zdCBQYXJhbVJlZiAqKSBleHByKS0+bG9jYXRpb247CiAJ CQlicmVhazsKKwkJY2FzZSBUX1ZhcmlhYmxlRmVuY2U6CisJCQlsb2MgPSAoKGNvbnN0IFZhcmlh YmxlRmVuY2UgKikgZXhwciktPmxvY2F0aW9uOworCQkJYnJlYWs7CiAJCWNhc2UgVF9BX0NvbnN0 OgogCQkJbG9jID0gKChjb25zdCBBX0NvbnN0ICopIGV4cHIpLT5sb2NhdGlvbjsKIAkJCWJyZWFr OwpAQCAtNDcxNSw2ICs0NzE4LDkgQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChO b2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRf VmFyaWFibGVGZW5jZToKKwkJCS8qIHdlIGFzc3VtZSB0aGUgZmllbGRzIGNvbnRhaW4gbm90aGlu ZyBpbnRlcmVzdGluZyAqLworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAi dW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50KSBub2RlVGFnKG5vZGUpKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CmluZGV4IGYyZDNkOWFiODUwLi5jYzE1Y2YyZWE0MyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBA IC01MjUsNyArNTI1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNo YXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxub2RlPglk ZWZfYXJnIGNvbHVtbkVsZW0gd2hlcmVfY2xhdXNlIHdoZXJlX29yX2N1cnJlbnRfY2xhdXNlCiAJ CQkJYV9leHByIGJfZXhwciBjX2V4cHIgQWV4cHJDb25zdCBpbmRpcmVjdGlvbl9lbCBvcHRfc2xp Y2VfYm91bmQKIAkJCQljb2x1bW5yZWYgaW5fZXhwciBoYXZpbmdfY2xhdXNlIGZ1bmNfdGFibGUg eG1sdGFibGUgYXJyYXlfZXhwcgotCQkJCU9wdFdoZXJlQ2xhdXNlIG9wZXJhdG9yX2RlZl9hcmcK KwkJCQlPcHRXaGVyZUNsYXVzZSBvcGVyYXRvcl9kZWZfYXJnIHZhcmlhYmxlX2ZlbmNlCiAldHlw ZSA8bGlzdD4Jb3B0X2NvbHVtbl9hbmRfcGVyaW9kX2xpc3QKICV0eXBlIDxsaXN0Pglyb3dzZnJv bV9pdGVtIHJvd3Nmcm9tX2xpc3Qgb3B0X2NvbF9kZWZfbGlzdAogJXR5cGUgPGJvb2xlYW4+IG9w dF9vcmRpbmFsaXR5IG9wdF93aXRob3V0X292ZXJsYXBzCkBAIC04ODIsNyArODgyLDcgQEAgc3Rh dGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFs aWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICAqLwogJW5vbmFzc29jCVVOQk9VTkRFRCBORVNURUQgLyog aWRlYWxseSB3b3VsZCBoYXZlIHNhbWUgcHJlY2VkZW5jZSBhcyBJREVOVCAqLwogJW5vbmFzc29j CUlERU5UIFBBUlRJVElPTiBSQU5HRSBST1dTIEdST1VQUyBQUkVDRURJTkcgRk9MTE9XSU5HIENV QkUgUk9MTFVQCi0JCQlTRVQgS0VZUyBPQkpFQ1RfUCBTQ0FMQVIgVkFMVUVfUCBXSVRIIFdJVEhP VVQgUEFUSAorCQkJU0VUIEtFWVMgT0JKRUNUX1AgU0NBTEFSIFZBTFVFX1AgV0lUSCBXSVRIT1VU IFBBVEggVkFSSUFCTEUKICVsZWZ0CQlPcCBPUEVSQVRPUgkJLyogbXVsdGktY2hhcmFjdGVyIG9w cyBhbmQgdXNlci1kZWZpbmVkIG9wZXJhdG9ycyAqLwogJWxlZnQJCScrJyAnLScKICVsZWZ0CQkn KicgJy8nICclJwpAQCAtMTU2OTIsNiArMTU2OTIsMTkgQEAgY19leHByOgkJY29sdW1ucmVmCQkJ CQkJCQl7ICQkID0gJDE7IH0KIAkJCQkJZWxzZQogCQkJCQkJJCQgPSAkMjsKIAkJCQl9CisJCQl8 IHZhcmlhYmxlX2ZlbmNlIG9wdF9pbmRpcmVjdGlvbgorCQkJCXsKKwkJCQkJaWYgKCQyKQorCQkJ CQl7CisJCQkJCQlBX0luZGlyZWN0aW9uICpuID0gbWFrZU5vZGUoQV9JbmRpcmVjdGlvbik7CisK KwkJCQkJCW4tPmFyZyA9IChOb2RlICopICQxOworCQkJCQkJbi0+aW5kaXJlY3Rpb24gPSBjaGVj a19pbmRpcmVjdGlvbigkMiwgeXlzY2FubmVyKTsKKwkJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJ CQkJfQorCQkJCQllbHNlCisJCQkJCQkkJCA9ICQxOworCQkJCX0KIAkJCXwgY2FzZV9leHByCiAJ CQkJeyAkJCA9ICQxOyB9CiAJCQl8IGZ1bmNfZXhwcgpAQCAtMTcwNzgsNiArMTcwOTEsMTcgQEAg Y2FzZV9hcmc6CWFfZXhwcgkJCQkJCQkJCXsgJCQgPSAkMTsgfQogCQkJfCAvKkVNUFRZKi8JCQkJ CQkJCXsgJCQgPSBOVUxMOyB9CiAJCTsKIAordmFyaWFibGVfZmVuY2U6CisJCQlWQVJJQUJMRSAn KCcgYW55X25hbWUgJyknCisJCQkJeworCQkJCQlWYXJpYWJsZUZlbmNlICp2ZiA9IG1ha2VOb2Rl KFZhcmlhYmxlRmVuY2UpOworCisJCQkJCXZmLT52YXJuYW1lID0gJDM7CisJCQkJCXZmLT5sb2Nh dGlvbiA9IEAzOworCQkJCQkkJCA9IChOb2RlICopIHZmOworCQkJCX0KKwkJOworCiBjb2x1bW5y ZWY6CUNvbElkCiAJCQkJewogCQkJCQkkJCA9IG1ha2VDb2x1bW5SZWYoJDEsIE5JTCwgQDEsIHl5 c2Nhbm5lcik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCBkY2NjNTAzMDQzOC4uYTQzOWEx NTYyMTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNDYsNiArNDYsNyBAQAogLyogR1VD IHBhcmFtZXRlcnMgKi8KIGJvb2wJCVRyYW5zZm9ybV9udWxsX2VxdWFscyA9IGZhbHNlOwogYm9v bAkJc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgPSBmYWxzZTsKK2Jvb2wJCXNl c3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkID0gZmFsc2U7CiAKIAogc3Rh dGljIE5vZGUgKnRyYW5zZm9ybUV4cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAq ZXhwcik7CkBAIC04MSw2ICs4Miw3IEBAIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1XaG9sZVJvd1Jl ZihQYXJzZVN0YXRlICpwc3RhdGUsCiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSW5kaXJlY3Rpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpOwogc3RhdGljIE5vZGUgKnRy YW5zZm9ybVR5cGVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVHlwZUNhc3QgKnRjKTsKIHN0YXRp YyBOb2RlICp0cmFuc2Zvcm1Db2xsYXRlQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sbGF0 ZUNsYXVzZSAqYyk7CitzdGF0aWMgTm9kZSAqdHJhbnNmb3JtVmFyaWFibGVGZW5jZShQYXJzZVN0 YXRlICpwc3RhdGUsIFZhcmlhYmxlRmVuY2UgKnZmKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1K c29uT2JqZWN0Q29uc3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCQlKc29u T2JqZWN0Q29uc3RydWN0b3IgKmN0b3IpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUpzb25BcnJh eUNvbnN0cnVjdG9yKFBhcnNlU3RhdGUgKnBzdGF0ZSwKQEAgLTExMiw3ICsxMTQsNyBAQCBzdGF0 aWMgTm9kZSAqbWFrZV9udWxsdGVzdF9mcm9tX2Rpc3RpbmN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwK IAkJCQkJCQkJCQkgQV9FeHByICpkaXN0aW5jdGEsIE5vZGUgKmFyZyk7CiBzdGF0aWMgTm9kZSAq bWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCSAg T2lkIHZhcmlkLCBPaWQgdHlwaWQsIGludDMyIHR5cG1vZCwgT2lkIGNvbGxpZCwKLQkJCQkJCQkJ CSAgY2hhciAqYXR0cm5hbWUsIGludCBsb2NhdGlvbik7CisJCQkJCQkJCQkgIGNoYXIgKmF0dHJu YW1lLCBib29sIGZlbmNlZCwgaW50IGxvY2F0aW9uKTsKIAogCiAvKgpAQCAtMzc3LDYgKzM3OSwx MCBAQCB0cmFuc2Zvcm1FeHByUmVjdXJzZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIp CiAJCQlyZXN1bHQgPSB0cmFuc2Zvcm1Kc29uRnVuY0V4cHIocHN0YXRlLCAoSnNvbkZ1bmNFeHBy ICopIGV4cHIpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX1ZhcmlhYmxlRmVuY2U6CisJCQlyZXN1 bHQgPSB0cmFuc2Zvcm1WYXJpYWJsZUZlbmNlKHBzdGF0ZSwgKFZhcmlhYmxlRmVuY2UgKikgZXhw cik7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJLyogc2hvdWxkIG5vdCByZWFjaCBoZXJl ICovCiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLCAoaW50KSBu b2RlVGFnKGV4cHIpKTsKQEAgLTEwMjgsNyArMTAzNCwyMCBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYo UGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAKIAkJCQlub2RlID0gbWFrZVBh cmFtU2Vzc2lvblZhcmlhYmxlKHBzdGF0ZSwKIAkJCQkJCQkJCQkJCXZhcmlkLCB0eXBpZCwgdHlw bW9kLCBjb2xsaWQsCi0JCQkJCQkJCQkJCQlhdHRybmFtZSwgY3JlZi0+bG9jYXRpb24pOworCQkJ CQkJCQkJCQkJYXR0cm5hbWUsIGZhbHNlLCBjcmVmLT5sb2NhdGlvbik7CisKKwkJCQkvKgorCQkJ CSAqIFRoZSB2YXJpYWJsZSBpcyBub3QgaW5zaWRlIHZhcmlhYmxlJ3MgZmVuY2UsIHNvIHJhaXNl IHdhcm5pbmcKKwkJCQkgKiB3aGVuIHZhcmlhYmxlIGZlbmNlIGd1YXJkIGlzIGFjdGl2ZSBhbmQg dGhlIHF1ZXJ5IGhhcyBGUk9NCisJCQkJICogY2xhdXNlLgorCQkJCSAqLworCQkJCWlmIChzZXNz aW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCAmJiBwc3RhdGUtPnBfcnRhYmxl KQorCQkJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJR1VP VVNfQ09MVU1OKSwKKwkJCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBpcyBu b3QgdXNlZCBpbnNpZGUgdmFyaWFibGUgZmVuY2UiLAorCQkJCQkJCQkJTmFtZUxpc3RUb1N0cmlu ZyhjcmVmLT5maWVsZHMpKSwKKwkJCQkJCQkgZXJyZGV0YWlsKCJUaGUgY29sbGlzaW9uIG9mIHNl c3Npb24gdmFyaWFibGUnIG5hbWVzIGFuZCBjb2x1bW4gbmFtZXMgaXMgcG9zc2libGUuIiksCisJ CQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkpOwogCQkJ fQogCQl9CiAJfQpAQCAtMTA3MSw3ICsxMDkwLDcgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogc3RhdGljIE5vZGUgKgogbWFrZVBhcmFt U2Vzc2lvblZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCSBPaWQgdmFyaWQsIE9p ZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBPaWQgY29sbGlkLAotCQkJCQkJIGNoYXIgKmF0dHJuYW1l LCBpbnQgbG9jYXRpb24pCisJCQkJCQkgY2hhciAqYXR0cm5hbWUsIGJvb2wgZmVuY2VkLCBpbnQg bG9jYXRpb24pCiB7CiAJUGFyYW0JICAgKnBhcmFtOwogCkBAIC0xMDc5LDYgKzEwOTgsNyBAQCBt YWtlUGFyYW1TZXNzaW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCiAJcGFyYW0tPnBh cmFta2luZCA9IFBBUkFNX1ZBUklBQkxFOwogCXBhcmFtLT5wYXJhbXZhcmlkID0gdmFyaWQ7CisJ cGFyYW0tPnBhcmFtdmFyZmVuY2VkID0gZmVuY2VkOwogCXBhcmFtLT5wYXJhbXR5cGUgPSB0eXBp ZDsKIAlwYXJhbS0+cGFyYW10eXBtb2QgPSB0eXBtb2Q7CiAJcGFyYW0tPnBhcmFtY29sbGlkID0g Y29sbGlkOwpAQCAtMTE1Nyw2ICsxMTc3LDU0IEBAIHRyYW5zZm9ybVBhcmFtUmVmKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgUGFyYW1SZWYgKnByZWYpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGlj IE5vZGUgKgordHJhbnNmb3JtVmFyaWFibGVGZW5jZShQYXJzZVN0YXRlICpwc3RhdGUsIFZhcmlh YmxlRmVuY2UgKnZmKQoreworCU5vZGUJICAgKnJlc3VsdDsKKwlPaWQJCQl2YXJpZCA9IEludmFs aWRPaWQ7CisJY2hhcgkgICAqYXR0cm5hbWUgPSBOVUxMOworCWJvb2wJCW5vdF91bmlxdWU7CisK KwkvKiBWYXJpYWJsZUZlbmNlIGNhbiBiZSB1c2VkIG9ubHkgaW4gY29udGV4dCB3aGVuIHZhcmlh YmxlcyBhcmUgc3VwcG9ydGVkICovCisJaWYgKCFleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFy aWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJIGVycm1zZygic2Vzc2lvbiB2 YXJpYWJsZSByZWZlcmVuY2UgaXMgbm90IHN1cHBvcnRlZCBoZXJlIiksCisJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgdmYtPmxvY2F0aW9uKSkpOworCisJLyogdGFrZXMgYW4gQWNjZXNz U2hhcmVMb2NrIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlICovCisJdmFyaWQgPSBJZGVudGlmeVZh cmlhYmxlKHZmLT52YXJuYW1lLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBmYWxzZSk7CisKKwlp ZiAobm90X3VuaXF1ZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0FN QklHVU9VU19QQVJBTUVURVIpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgcmVmZXJl bmNlIFwiJXNcIiBpcyBhbWJpZ3VvdXMiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyh2Zi0+dmFy bmFtZSkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCB2Zi0+bG9jYXRpb24pKSk7 CisKKwlpZiAoT2lkSXNWYWxpZCh2YXJpZCkpCisJeworCQlPaWQJCQl0eXBpZDsKKwkJaW50MzIJ CXR5cG1vZDsKKwkJT2lkCQkJY29sbGlkOworCisJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVf dHlwbW9kX2NvbGxpZCh2YXJpZCwgJnR5cGlkLCAmdHlwbW9kLAorCQkJCQkJCQkJCQkJJmNvbGxp ZCk7CisKKwkJcmVzdWx0ID0gbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKHBzdGF0ZSwKKwkJCQkJ CQkJCQl2YXJpZCwgdHlwaWQsIHR5cG1vZCwgY29sbGlkLAorCQkJCQkJCQkJCWF0dHJuYW1lLCB0 cnVlLCB2Zi0+bG9jYXRpb24pOworCX0KKwllbHNlCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJzZXNzaW9uIHZh cmlhYmxlIFwiJXNcIiBkb2Vzbid0IGV4aXN0IiwKKwkJCQkJCU5hbWVMaXN0VG9TdHJpbmcodmYt PnZhcm5hbWUpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgdmYtPmxvY2F0aW9u KSkpOworCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyogVGVzdCB3aGV0aGVyIGFuIGFfZXhwciBp cyBhIHBsYWluIE5VTEwgY29uc3RhbnQgb3Igbm90ICovCiBzdGF0aWMgYm9vbAogZXhwcklzTnVs bENvbnN0YW50KE5vZGUgKmFyZykKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA0YWJh MGQ5ZDRkNS4uY2YwMWJmZjY1YTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTIw MzQsNiArMjAzNCwxMyBAQCBGaWd1cmVDb2xuYW1lSW50ZXJuYWwoTm9kZSAqbm9kZSwgY2hhciAq Km5hbWUpCiAJCQkJCQkgKGludCkgKChKc29uRnVuY0V4cHIgKikgbm9kZSktPm9wKTsKIAkJCX0K IAkJCWJyZWFrOworCQljYXNlIFRfVmFyaWFibGVGZW5jZToKKwkJCXsKKwkJCQkvKiByZXR1cm4g bGFzdCBmaWVsZCBuYW1lICovCisJCQkJKm5hbWUgPSBzdHJWYWwobGxhc3QoKChWYXJpYWJsZUZl bmNlICopIG5vZGUpLT52YXJuYW1lKSk7CisJCQkJcmV0dXJuIDI7CisJCQl9CisJCQlicmVhazsK IAkJZGVmYXVsdDoKIAkJCWJyZWFrOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRl eCBkNmJkYWU5YWY3ZC4uZTBlMTVkMWM2NGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMK QEAgLTg3MzQsOCArODczNCwxNiBAQCBnZXRfcGFyYW1ldGVyKFBhcmFtICpwYXJhbSwgZGVwYXJz ZV9jb250ZXh0ICpjb250ZXh0KQogCS8qIHRyYW5zbGF0ZSBwYXJhbXZhcmlkIHRvIHNlc3Npb24g dmFyaWFibGUgbmFtZSAqLwogCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxF KQogCXsKLQkJYXBwZW5kU3RyaW5nSW5mbyhjb250ZXh0LT5idWYsICIlcyIsCi0JCQkJCQkgZ2Vu ZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHBhcmFtLT5wYXJhbXZhcmlkKSk7CisJCWlmIChw YXJhbS0+cGFyYW12YXJmZW5jZWQpCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm8oY29udGV4dC0+ YnVmLCAiVkFSSUFCTEUoJXMpIiwKKwkJCQkJCQkgZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKHBhcmFtLT5wYXJhbXZhcmlkKSk7CisJCX0KKwkJZWxzZQorCQl7CisJCQlhcHBlbmRTdHJp bmdJbmZvKGNvbnRleHQtPmJ1ZiwgIiVzIiwKKwkJCQkJCQkgZ2VuZXJhdGVfc2Vzc2lvbl92YXJp YWJsZV9uYW1lKHBhcmFtLT5wYXJhbXZhcmlkKSk7CisJCX0KIAkJcmV0dXJuOwogCX0KIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwppbmRleCAxZWU1NGNmYjY5ZS4uOTRiZGU1NjRkOWIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCkBAIC0xNjQxLDYgKzE2NDEsMTUgQEAg c3RydWN0IGNvbmZpZ19ib29sIENvbmZpZ3VyZU5hbWVzQm9vbFtdID0KIAkJZmFsc2UsCiAJCU5V TEwsIE5VTEwsIE5VTEwKIAl9LAorCXsKKwkJeyJzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vf d2FybmluZ19ndWFyZCIsIFBHQ19VU0VSU0VULCBDTElFTlRfQ09OTl9TVEFURU1FTlQsCisJCQln ZXR0ZXh0X25vb3AoIlJhaXNlIGEgd2FybmluZyB3aGVuIHZhcmlhYmxlIGlzIG5vdCB1c2VkIGlu c2lkZSB2YXJpYWJsZSBmZW5jZS4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnNlc3Npb25fdmFyaWFi bGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkLAorCQlmYWxzZSwKKwkJTlVMTCwgTlVMTCwgTlVM TAorCX0sCiAJewogCQl7ImRlZmF1bHRfdHJhbnNhY3Rpb25fcmVhZF9vbmx5IiwgUEdDX1VTRVJT RVQsIENMSUVOVF9DT05OX1NUQVRFTUVOVCwKIAkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgZGVm YXVsdCByZWFkLW9ubHkgc3RhdHVzIG9mIG5ldyB0cmFuc2FjdGlvbnMuIiksCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFj a2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggNWY1Mjk2ZTdiNzMu LjlhNWRmNDk4ZWJlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVz cWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNv bmYuc2FtcGxlCkBAIC03NTksNiArNzU5LDcgQEAgYXV0b3ZhY3V1bV93b3JrZXJfc2xvdHMgPSAx NgkjIGF1dG92YWN1dW0gd29ya2VyIHNsb3RzIHRvIGFsbG9jYXRlCiAjZGVmYXVsdF90cmFuc2Fj dGlvbl9kZWZlcnJhYmxlID0gb2ZmCiAjc2Vzc2lvbl9yZXBsaWNhdGlvbl9yb2xlID0gJ29yaWdp bicKICNzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyA9IG9mZgorI3Nlc3Npb25f dmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkID0gb2ZmCiAjc3RhdGVtZW50X3RpbWVv dXQgPSAwCQkJCSMgaW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAjdHJhbnNhY3Rpb25f dGltZW91dCA9IDAJCQkjIGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZAogI2xvY2tfdGlt ZW91dCA9IDAJCQkJIyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaAppbmRleCAzMjEyMzVjNjQ5MS4uZjczZWMyMGQ2NjUgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKQEAgLTMyMSw2ICszMjEsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYW1SZWYKIAlQYXJz ZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiB9 IFBhcmFtUmVmOwogCisvKgorICogVmFyaWFibGVGZW5jZSAtIGVuc3VyZSBzbyBmaWVsZHMgd2ls bCBiZSBpbnRlcnByZXR0ZWQgYXMgYSB2YXJpYWJsZQorICovCit0eXBlZGVmIHN0cnVjdCBWYXJp YWJsZUZlbmNlCit7CisJTm9kZVRhZwkJdHlwZTsKKwlMaXN0CSAgICp2YXJuYW1lOwkJLyogdmFy aWFibGUgbmFtZSAoU3RyaW5nIG5vZGVzKSAqLworCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9r ZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KK30gVmFyaWFibGVGZW5jZTsKKwogLyoK ICAqIEFfRXhwciAtIGluZml4LCBwcmVmaXgsIGFuZCBwb3N0Zml4IGV4cHJlc3Npb25zCiAgKi8K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggM2NjMmYwMTlhYmIuLjk4YmNhNjk0NDgwIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rl cy9wcmltbm9kZXMuaApAQCAtNDExLDYgKzQxMSw4IEBAIHR5cGVkZWYgc3RydWN0IFBhcmFtCiAJ ICogcGFyYW0gaXMgdXNlZCBqdXN0IGZvciBleGVjdXRpb24gb2YgVVBEQVRFIG9wZXJhdGlvbi4K IAkgKi8KIAlib29sCQlwYXJhbWJhc2Vub2RlOworCS8qIHRydWUgd2hlbiB2YXJpYWJsZSBpcyB1 c2VkIGluc2lkZSBhbiBmZW5jZSAqLworCWJvb2wJCXBhcmFtdmFyZmVuY2VkOwogCS8qIHRva2Vu IGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJbG9jYXRpb247CiB9IFBh cmFtOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKaW5kZXggZDIyMDkwNzAxODEuLjViZGU0Mzc1OGQx IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCisrKyBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKQEAgLTE4LDYgKzE4LDcgQEAKIC8qIEdVQyBwYXJh bWV0ZXJzICovCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBUcmFuc2Zvcm1fbnVsbF9lcXVhbHM7 CiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2Fy bmluZzsKK2V4dGVybiBQR0RMTElNUE9SVCBib29sIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5j ZV93YXJuaW5nX2d1YXJkOwogCiBleHRlcm4gTm9kZSAqdHJhbnNmb3JtRXhwcihQYXJzZVN0YXRl ICpwc3RhdGUsIE5vZGUgKmV4cHIsIFBhcnNlRXhwcktpbmQgZXhwcktpbmQpOwogCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDdjMzUw YWQ1ZWY5Li45YWMwOGExNGUwYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTE5NjksMyArMTk2OSw2MiBAQCBTRVQgc2Vzc2lvbl92 YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogRFJPUCBUQUJMRSBwdWJsaWMueHh0 YWI7CiBEUk9QIFNDSEVNQSB4eHRhYiBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0 byBzZXNzaW9uIHZhcmlhYmxlIHh4dGFiLmF2YXIKKy0tIHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNf dXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlf d2FybmluZyBUTyBvbjsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19n dWFyZCBUTyBvbjsKK0NSRUFURSBTQ0hFTUEgdGVzdHZhcjsKK1NFVCBzZWFyY2hfcGF0aCBUTyAn dGVzdHZhcic7CitDUkVBVEUgVkFSSUFCTEUgYSBBUyBpbnQ7CitMRVQgYSA9IDEwOworQ1JFQVRF IFRBQkxFIHRlc3RfdGFibGUoYSBpbnQsIGIgaW50KTsKK0lOU0VSVCBJTlRPIHRlc3RfdGFibGUg VkFMVUVTKDIwLCAyMCk7CistLSBubyB3YXJuaW5nCitTRUxFQ1QgYTsKKyBhICAKKy0tLS0KKyAx MAorKDEgcm93KQorCistLSB3YXJuaW5nIHZhcmlhYmxlIGlzIHNoYWRvd2VkCitTRUxFQ1QgYSwg YiBGUk9NIHRlc3RfdGFibGU7CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAiYSIgaXMgc2hh ZG93ZWQKK0xJTkUgMTogU0VMRUNUIGEsIGIgRlJPTSB0ZXN0X3RhYmxlOworICAgICAgICAgICAg ICAgXgorREVUQUlMOiAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVt bnMsIHJvdXRpbmUncyB2YXJpYWJsZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUg c2FtZSBuYW1lLgorIGEgIHwgYiAgCistLS0tKy0tLS0KKyAyMCB8IDIwCisoMSByb3cpCisKKy0t IG5vIHdhcm5pbmcKK1NFTEVDVCB2YXJpYWJsZShhKSBGUk9NIHRlc3RfdGFibGU7CisgYSAgCist LS0tCisgMTAKKygxIHJvdykKKworQUxURVIgVEFCTEUgdGVzdF90YWJsZSBEUk9QIENPTFVNTiBh OworLS0gd2FybmluZyAtIHZhcmlhYmxlIGZlbmNlIGlzIG5vdCB1c2VkCitTRUxFQ1QgYSwgYiBG Uk9NIHRlc3RfdGFibGU7CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAiYSIgaXMgbm90IHVz ZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlCitMSU5FIDE6IFNFTEVDVCBhLCBiIEZST00gdGVzdF90 YWJsZTsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFRoZSBjb2xsaXNpb24gb2Ygc2Vzc2lv biB2YXJpYWJsZScgbmFtZXMgYW5kIGNvbHVtbiBuYW1lcyBpcyBwb3NzaWJsZS4KKyBhICB8IGIg IAorLS0tLSstLS0tCisgMTAgfCAyMAorKDEgcm93KQorCistLSBubyB3YXJuaW5nCitTRUxFQ1Qg dmFyaWFibGUoYSksIGIgRlJPTSB0ZXN0X3RhYmxlOworIGEgIHwgYiAgCistLS0tKy0tLS0KKyAx MCB8IDIwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgYTsKK0RST1AgVEFCTEUgdGVzdF90YWJs ZTsKK0RST1AgU0NIRU1BIHRlc3R2YXI7CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5 X3dhcm5pbmcgVE8gREVGQVVMVDsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2Fy bmluZ19ndWFyZCBUTyBERUZBVUxUOworU0VUIHNlYXJjaF9wYXRoIFRPIERFRkFVTFQ7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggNjhiZTQxNWJmMjYu LmM1NDIwMTgzZDk0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCkBAIC0xMzYwLDMgKzEzNjAsNDQgQEAgU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0 eV93YXJuaW5nIFRPIG9mZjsKIAogRFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CiBEUk9QIFNDSEVN QSB4eHRhYiBDQVNDQURFOworCistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93 YXJuaW5nX2d1YXJkCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8g b247CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgVE8gb247 CisKK0NSRUFURSBTQ0hFTUEgdGVzdHZhcjsKKworU0VUIHNlYXJjaF9wYXRoIFRPICd0ZXN0dmFy JzsKKworQ1JFQVRFIFZBUklBQkxFIGEgQVMgaW50OworTEVUIGEgPSAxMDsKKworQ1JFQVRFIFRB QkxFIHRlc3RfdGFibGUoYSBpbnQsIGIgaW50KTsKKworSU5TRVJUIElOVE8gdGVzdF90YWJsZSBW QUxVRVMoMjAsIDIwKTsKKworLS0gbm8gd2FybmluZworU0VMRUNUIGE7CisKKy0tIHdhcm5pbmcg dmFyaWFibGUgaXMgc2hhZG93ZWQKK1NFTEVDVCBhLCBiIEZST00gdGVzdF90YWJsZTsKKworLS0g bm8gd2FybmluZworU0VMRUNUIHZhcmlhYmxlKGEpIEZST00gdGVzdF90YWJsZTsKKworQUxURVIg VEFCTEUgdGVzdF90YWJsZSBEUk9QIENPTFVNTiBhOworCistLSB3YXJuaW5nIC0gdmFyaWFibGUg ZmVuY2UgaXMgbm90IHVzZWQKK1NFTEVDVCBhLCBiIEZST00gdGVzdF90YWJsZTsKKworLS0gbm8g d2FybmluZworU0VMRUNUIHZhcmlhYmxlKGEpLCBiIEZST00gdGVzdF90YWJsZTsKKworRFJPUCBW QVJJQUJMRSBhOworRFJPUCBUQUJMRSB0ZXN0X3RhYmxlOworCitEUk9QIFNDSEVNQSB0ZXN0dmFy OworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gREVGQVVMVDsK K1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCBUTyBERUZBVUxU OworU0VUIHNlYXJjaF9wYXRoIFRPIERFRkFVTFQ7Ci0tIAoyLjQ5LjAKCg== --0000000000008f76b80632058aa3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250405-0006-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20250405-0006-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m942s3ux2 RnJvbSBmZDM0NTE0MTk2OThjYjYxYTM4ZDcxMmJhNGFkMzNkNDA2YzA0Y2ZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNDowNjowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDYvMjFdIHBscGdzcWwgdGVzdHMKCi0tLQogc3JjL3BsL3BscGdzcWwvc3JjL01ha2VmaWxlICAg ICAgICAgICAgICAgICAgIHwgICAzICstCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lv bl92YXJpYWJsZS5vdXQgfCAzODIgKysrKysrKysrKysrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9z cmMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL3NyYy9zcWwvcGxwZ3Nx bF9zZXNzaW9uX3ZhcmlhYmxlLnNxbCAgICAgIHwgMjg5ICsrKysrKysrKysrKysKIDQgZmlsZXMg Y2hhbmdlZCwgNjc0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxl Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9z ZXNzaW9uX3ZhcmlhYmxlLnNxbAoKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtl ZmlsZSBiL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZQppbmRleCA2M2NiOTZmYWUzZS4uYmJj YWUyN2Q0MjIgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZQorKysgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKQEAgLTM1LDcgKzM1LDggQEAgUkVHUkVTU19PUFRT ID0gLS1kYm5hbWU9JChQTF9URVNUREIpCiBSRUdSRVNTID0gcGxwZ3NxbF9hcnJheSBwbHBnc3Fs X2NhY2hlIHBscGdzcWxfY2FsbCBwbHBnc3FsX2NvbnRyb2wgXAogCXBscGdzcWxfY29weSBwbHBn c3FsX2RvbWFpbiBwbHBnc3FsX21pc2MgXAogCXBscGdzcWxfcmVjb3JkIHBscGdzcWxfc2ltcGxl IHBscGdzcWxfdHJhbnNhY3Rpb24gXAotCXBscGdzcWxfdHJhcCBwbHBnc3FsX3RyaWdnZXIgcGxw Z3NxbF92YXJwcm9wcworCXBscGdzcWxfdHJhcCBwbHBnc3FsX3RyaWdnZXIgcGxwZ3NxbF92YXJw cm9wcyBcCisJcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlCiAKICMgd2hlcmUgdG8gZmluZCBnZW5f a2V5d29yZGxpc3QucGwgYW5kIHN1YnNpZGlhcnkgZmlsZXMKIFRPT0xTRElSID0gJCh0b3Bfc3Jj ZGlyKS9zcmMvdG9vbHMKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVk L3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmFiNzc5OTAwNTk2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BsL3BscGdz cWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKQEAgLTAsMCArMSwz ODIgQEAKKy0tIHRlc3Qgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhciBBUyBudW1lcmljOworTEVUIHBscGdzcWxfc3ZfdmFyID0gcGkoKTsKKy0tIHBh c3NpbmcgcGFyYW1ldGVycyB0byBETyBibG9jaworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAndmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXI7CitFTkQ7 CiskJDsKK05PVElDRTogIHZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgaXMgMy4xNDE1OTI2NTM1 ODk3OQorLS0gcGFzc2luZyBvdXRwdXQgZnJvbSBETyBibG9jazsKK0RPICQkCitCRUdJTgorICBM RVQgcGxwZ3NxbF9zdl92YXIgPSAyICogcGkoKTsKK0VORAorJCQ7CitTRUxFQ1QgcGxwZ3NxbF9z dl92YXIgQVMgInBpX211bHRpcGx5XzIiOworICBwaV9tdWx0aXBseV8yICAgCistLS0tLS0tLS0t LS0tLS0tLS0KKyA2LjI4MzE4NTMwNzE3OTU5CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgcGxw Z3NxbF9zdl92YXI7CistLSB0ZXN0IGFjY2VzcyBmcm9tIFBML3BnU1FMCitDUkVBVEUgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjIgQVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMgQVMgdmFyY2hh cjsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHdyaXRlcl9mdW5jKCkKK1JFVFVSTlMgdm9p ZCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwOworICBMRVQgcGxwZ3Nx bF9zdl92YXIyID0gcGkoKTsKKyAgLS0gdmVyeSBsb25nIHZhbHVlCisgIExFVCBwbHBnc3FsX3N2 X3ZhcjMgPSBmb3JtYXQoJyglcyknLCByZXBlYXQoJyonLCAxMDAwMCkpOworRU5EOworJCQgTEFO R1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYygp CitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBwbHBn c3FsX3N2X3ZhcjEgKyAxMDA7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjIgPSBwbHBnc3FsX3N2X3Zh cjIgKyAxMDAwMDAwMDAwMDA7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9z dl92YXIzID0gcGxwZ3NxbF9zdl92YXIzIHx8IGZvcm1hdCgnKCVzKScsIHJlcGVhdCgnKicsIDEw MDAwKSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVO Q1RJT04gcmVhZGVyX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBO T1RJQ0UgJ3ZhcjEgPSAlJywgcGxwZ3NxbF9zdl92YXIxOworICBSQUlTRSBOT1RJQ0UgJ3ZhcjIg PSAlJywgcGxwZ3NxbF9zdl92YXIyOworICBSQUlTRSBOT1RJQ0UgJ2xlbmd0aCBvZiB2YXIzID0g JScsIGxlbmd0aChwbHBnc3FsX3N2X3ZhcjMpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsK Ky0tIGV4ZWN1dGUgaW4gYSB0cmFuc2FjdGlvbgorQkVHSU47CitTRUxFQ1Qgd3JpdGVyX2Z1bmMo KTsKKyB3cml0ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHJl YWRlcl9mdW5jKCk7CitOT1RJQ0U6ICB2YXIxID0gMTAKK05PVElDRTogIHZhcjIgPSAzLjE0MTU5 MjY1MzU4OTc5CitOT1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDEwMDAyCisgcmVhZGVyX2Z1bmMg CistLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCB1cGRhdGVyX2Z1bmMoKTsKKyB1 cGRhdGVyX2Z1bmMgCistLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVhZGVy X2Z1bmMoKTsKK05PVElDRTogIHZhcjEgPSAxMTAKK05PVElDRTogIHZhcjIgPSAxMDAwMDAwMDAw MDMuMTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMjAwMDQKKyByZWFk ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworRU5EOworLS0gZXhlY3V0ZSBv dXRzaWRlIG9mIGEgdHJhbnNhY3Rpb24KK1NFTEVDVCB3cml0ZXJfZnVuYygpOworIHdyaXRlcl9m dW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsK K05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAgdmFyMiA9IDMuMTQxNTkyNjUzNTg5NzkKK05P VElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIKKyByZWFkZXJfZnVuYyAKKy0tLS0tLS0tLS0t LS0KKyAKKygxIHJvdykKKworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworIHVwZGF0ZXJfZnVuYyAK Ky0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJfZnVuYygpOworTk9U SUNFOiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1OTI2NTM1 ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorIHJlYWRlcl9mdW5jIAorLS0t LS0tLS0tLS0tLQorIAorKDEgcm93KQorCistLSBleGVjdXRlIGluc2lkZSBhIFBML3BnU1FMIGJs b2NrCitETyAkJAorQkVHSU4KKyAgUEVSRk9STSB3cml0ZXJfZnVuYygpOworICBQRVJGT1JNIHJl YWRlcl9mdW5jKCk7CisgIFBFUkZPUk0gdXBkYXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVy X2Z1bmMoKTsKK0VORDsKKyQkOworTk9USUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0g My4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorTk9USUNF OiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1OTI2NTM1ODk3 OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorLS0gcGxhbiBjYWNoZXMgc2hvdWxk IGJlIGNvcnJlY3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEs IHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworQ1JFQVRFIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIG51 bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNoYXI7CistLSBz aG91bGQgd29yayBhZ2FpbgorRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0gd3JpdGVyX2Z1bmMoKTsK KyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0ZXJfZnVuYygpOworICBQ RVJGT1JNIHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKK05PVElDRTogIHZhcjEgPSAxMAorTk9U SUNFOiAgdmFyMiA9IDMuMTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0g MTAwMDIKK05PVElDRTogIHZhcjEgPSAxMTAKK05PVElDRTogIHZhcjIgPSAxMDAwMDAwMDAwMDMu MTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMjAwMDQKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsK K0RST1AgRlVOQ1RJT04gd3JpdGVyX2Z1bmM7CitEUk9QIEZVTkNUSU9OIHJlYWRlcl9mdW5jOwor RFJPUCBGVU5DVElPTiB1cGRhdGVyX2Z1bmM7CistLSBhbm90aGVyIGNoZWNrIG9mIGNvcnJlY3Qg cGxhbiBjYWNoZSBpbnZhbGlkYXRpb24KK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEg QVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBBUyBpbnRbXTsKK0NSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0RF Q0xBUkUgdiBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIx ID0gMTsKKyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2 OworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMltwbHBn c3FsX3N2X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdzcWxfc3ZfdmFyMjsK K0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6 ICB7MTAwfQorTk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSBy b3cpCisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CitD UkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjIgQVMgaW50W107CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6ICB7 MTAwfQorTk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSByb3cp CisKK0RST1AgRlVOQ1RJT04gdGVzdF9mdW5jKCk7CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3Zf dmFyMSwgcGxwZ3NxbF9zdl92YXIyOworLS0gY2hlY2sgc2VjdXJlIGFjY2VzcworQ1JFQVRFIFJP TEUgcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX3JlYWRl cl9yb2xlOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfZXhlY19yb2xlOworR1JBTlQgQUxMIE9O IFNDSEVNQSBwdWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVh ZGVyX3JvbGUsIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFy X293bmVyX3JvbGU7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0xF VCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBU TyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZh cl9yZWFkX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0Ug JyUnLCBwbHBnc3FsX3N2X3ZhcjE7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZ IERFRklORVI7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJf ZXhlY19yb2xlOworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXJfcmVhZF9mdW5jKCk7CitFUlJP UjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHBscGdzcWxfc3ZfdmFy MQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gInBscGdzcWxfc3ZfdmFyMSIKK1BML3Bn U1FMIGZ1bmN0aW9uIHZhcl9yZWFkX2Z1bmMoKSBsaW5lIDMgYXQgUkFJU0UKK1NFVCBST0xFIFRP IERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworR1JBTlQgU0VM RUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBUTyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9s ZTsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVjX3Jv bGU7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXJfcmVhZF9mdW5jKCk7CitOT1RJQ0U6ICAx MAorIHZhcl9yZWFkX2Z1bmMgCistLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VUIFJP TEUgVE8gREVGQVVMVDsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitEUk9Q IFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMTsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9M RSBUTyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CistLSBzaG91bGQgZmFpbCwgYnV0IG5vdCBjcmFz aAorU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKK0VSUk9SOiAgY29sdW1uICJwbHBnc3FsX3N2X3Zh cjEiIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IHBscGdzcWxfc3ZfdmFyMQorICAgICAgICBeCitR VUVSWTogIHBscGdzcWxfc3ZfdmFyMQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHZhcl9y ZWFkX2Z1bmMoKSBsaW5lIDMgYXQgUkFJU0UKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIEZV TkNUSU9OIHZhcl9yZWFkX2Z1bmM7CitSRVZPS0UgQUxMIE9OIFNDSEVNQSBwdWJsaWMgRlJPTSBy ZWdyZXNzX3Zhcl9vd25lcl9yb2xlLCByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZSwgcmVncmVzc192 YXJfZXhlY19yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitEUk9QIFJP TEUgcmVncmVzc192YXJfcmVhZGVyX3JvbGU7CitEUk9QIFJPTEUgcmVncmVzc192YXJfZXhlY19y b2xlOworLS0gcmV0dXJucyB1cGRhdGVkIHZhbHVlCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9z dl92YXIxIEFTIGludDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfaW50KGlu dCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gQ09B TEVTQ0UocGxwZ3NxbF9zdl92YXIxICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFy MTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgaW5jX3Zhcl9pbnQoMSk7Cisg aW5jX3Zhcl9pbnQgCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEKKygxIHJvdykKKworU0VM RUNUIGluY192YXJfaW50KDEpOworIGluY192YXJfaW50IAorLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAyCisoMSByb3cpCisKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKKyBpbmNfdmFyX2ludCAK Ky0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMworKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9p bnQoMSkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisgaW5jX3Zhcl9pbnQgCistLS0tLS0t LS0tLS0tCisgICAgICAgICAgIDQKKyAgICAgICAgICAgNQorICAgICAgICAgICA2CisgICAgICAg ICAgIDcKKyAgICAgICAgICAgOAorICAgICAgICAgICA5CisgICAgICAgICAgMTAKKyAgICAgICAg ICAxMQorICAgICAgICAgIDEyCisgICAgICAgICAgMTMKKygxMCByb3dzKQorCitDUkVBVEUgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIG51bWVyaWM7CitMRVQgcGxwZ3NxbF9zdl92YXIyID0g MC4wOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9udW0obnVtZXJpYykKK1JF VFVSTlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gQ09BTEVTQ0Uo cGxwZ3NxbF9zdl92YXIyICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMjsKK0VO RDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKyBpbmNf dmFyX251bSAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMQorKDEgcm93KQorCitTRUxFQ1Qg aW5jX3Zhcl9udW0oMS4wKTsKKyBpbmNfdmFyX251bSAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgMgorKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKyBpbmNfdmFyX251bSAK Ky0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMworKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9u dW0oMS4wKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKKyBpbmNfdmFyX251bSAKKy0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgNAorICAgICAgICAgICA1CisgICAgICAgICAgIDYKKyAgICAg ICAgICAgNworICAgICAgICAgICA4CisgICAgICAgICAgIDkKKyAgICAgICAgICAxMAorICAgICAg ICAgIDExCisgICAgICAgICAgMTIKKyAgICAgICAgICAxMworKDEwIHJvd3MpCisKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CitEUk9QIEZVTkNUSU9OIGlu Y192YXJfaW50OworRFJPUCBGVU5DVElPTiBpbmNfdmFyX251bTsKKy0tIHBscGdzcWwgdmFyaWFi bGVzIGFyZSBwcmVmZXJyZWQgYWdhaW5zdCBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xBUkUg cGxwZ3NxbF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDA7 CisKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gcHJpbnQgMTAwOworICBSQUlT RSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3ZhcjE7 CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFibGUgaXMg JScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0Ug Tk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7CitOT1RJ Q0U6ICBzZXNzaW9uIHZhcmlhYmxlIGlzIDEwMAorTk9USUNFOiAgcGxwZ3NxbCB2YXJpYWJsZSBp cyAxMDAwCitOT1RJQ0U6ICB2YXJpYWJsZSBpcyAxMDAwCitEUk9QIFZBUklBQkxFIHBscGdzcWxf c3ZfdmFyMTsKKy0tIHRoZSB2YWx1ZSBzaG91bGQgbm90IGJlIGNvcnJ1cHRlZAorQ1JFQVRFIFZB UklBQkxFIHBscGdzcWxfc3ZfdiB0ZXh0OworTEVUIHBscGdzcWxfc3ZfdiA9ICdhYmMnOworQ1JF QVRFIEZVTkNUSU9OIGZmdW5jKCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJO IGdmdW5jKHBscGdzcWxfc3Zfdik7CitFTkQKKyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUg RlVOQ1RJT04gZ2Z1bmModCB0ZXh0KQorUkVUVVJOUyB0ZXh0IEFTICQkCitCRUdJTgorICBMRVQg cGxwZ3NxbF9zdl92ID0gJ0JPT00hJzsKKyAgUkVUVVJOIHQ7CitFTkQ7CiskJCBMQU5HVUFHRSBw bHBnc3FsOworc2VsZWN0IGZmdW5jKCk7CisgZmZ1bmMgCistLS0tLS0tCisgYWJjCisoMSByb3cp CisKK0RST1AgRlVOQ1RJT04gZmZ1bmMoKTsKK0RST1AgRlVOQ1RJT04gZ2Z1bmModGV4dCk7CitE Uk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdjsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3Ny Yy9tZXNvbi5idWlsZCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9tZXNvbi5idWlsZAppbmRleCAzM2M0 OWFjMjVkOS4uMWQwMWQxYzI2MjkgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9tZXNv bi5idWlsZAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQKQEAgLTg4LDYgKzg4 LDcgQEAgdGVzdHMgKz0gewogICAgICAgJ3BscGdzcWxfdHJhcCcsCiAgICAgICAncGxwZ3NxbF90 cmlnZ2VyJywKICAgICAgICdwbHBnc3FsX3ZhcnByb3BzJywKKyAgICAgICdwbHBnc3FsX3Nlc3Np b25fdmFyaWFibGUnLAogICAgIF0sCiAgIH0sCiB9CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmEzY2MyNjRjZjM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Bs L3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCkBAIC0wLDAgKzEs Mjg5IEBACistLSB0ZXN0IG9mIHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFSSUFCTEUgcGxw Z3NxbF9zdl92YXIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc3ZfdmFyID0gcGkoKTsKKwor LS0gcGFzc2luZyBwYXJhbWV0ZXJzIHRvIERPIGJsb2NrCitETyAkJAorQkVHSU4KKyAgUkFJU0Ug Tk9USUNFICd2YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjsK K0VORDsKKyQkOworCistLSBwYXNzaW5nIG91dHB1dCBmcm9tIERPIGJsb2NrOworRE8gJCQKK0JF R0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhciA9IDIgKiBwaSgpOworRU5ECiskJDsKKworU0VMRUNU IHBscGdzcWxfc3ZfdmFyIEFTICJwaV9tdWx0aXBseV8yIjsKKworRFJPUCBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhcjsKKworLS0gdGVzdCBhY2Nlc3MgZnJvbSBQTC9wZ1NRTAorQ1JFQVRFIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIyIEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNo YXI7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHdyaXRlcl9mdW5jKCkKK1JFVFVSTlMg dm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwOworICBMRVQgcGxw Z3NxbF9zdl92YXIyID0gcGkoKTsKKyAgLS0gdmVyeSBsb25nIHZhbHVlCisgIExFVCBwbHBnc3Fs X3N2X3ZhcjMgPSBmb3JtYXQoJyglcyknLCByZXBlYXQoJyonLCAxMDAwMCkpOworRU5EOworJCQg TEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdXBkYXRlcl9m dW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9 IHBscGdzcWxfc3ZfdmFyMSArIDEwMDsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IHBscGdzcWxf c3ZfdmFyMiArIDEwMDAwMDAwMDAwMDsKKyAgLS0gdmVyeSBsb25nIHZhbHVlCisgIExFVCBwbHBn c3FsX3N2X3ZhcjMgPSBwbHBnc3FsX3N2X3ZhcjMgfHwgZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcq JywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKKworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gcmVhZGVyX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgor ICBSQUlTRSBOT1RJQ0UgJ3ZhcjEgPSAlJywgcGxwZ3NxbF9zdl92YXIxOworICBSQUlTRSBOT1RJ Q0UgJ3ZhcjIgPSAlJywgcGxwZ3NxbF9zdl92YXIyOworICBSQUlTRSBOT1RJQ0UgJ2xlbmd0aCBv ZiB2YXIzID0gJScsIGxlbmd0aChwbHBnc3FsX3N2X3ZhcjMpOworRU5EOworJCQgTEFOR1VBR0Ug cGxwZ3NxbDsKKworLS0gZXhlY3V0ZSBpbiBhIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFTEVDVCB3 cml0ZXJfZnVuYygpOworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CitTRUxFQ1QgdXBkYXRlcl9mdW5j KCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKK0VORDsKKworLS0gZXhlY3V0ZSBvdXRzaWRlIG9m IGEgdHJhbnNhY3Rpb24KK1NFTEVDVCB3cml0ZXJfZnVuYygpOworU0VMRUNUIHJlYWRlcl9mdW5j KCk7CitTRUxFQ1QgdXBkYXRlcl9mdW5jKCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKKworLS0g ZXhlY3V0ZSBpbnNpZGUgYSBQTC9wZ1NRTCBibG9jaworRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0g d3JpdGVyX2Z1bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0 ZXJfZnVuYygpOworICBQRVJGT1JNIHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKKworLS0gcGxh biBjYWNoZXMgc2hvdWxkIGJlIGNvcnJlY3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworCitDUkVB VEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMg QVMgdmFyY2hhcjsKKworLS0gc2hvdWxkIHdvcmsgYWdhaW4KK0RPICQkCitCRUdJTgorICBQRVJG T1JNIHdyaXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKKyAgUEVSRk9STSB1 cGRhdGVyX2Z1bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworRU5EOworJCQ7CisKK0RS T1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3Zf dmFyMzsKKworRFJPUCBGVU5DVElPTiB3cml0ZXJfZnVuYzsKK0RST1AgRlVOQ1RJT04gcmVhZGVy X2Z1bmM7CitEUk9QIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYzsKKworLS0gYW5vdGhlciBjaGVjayBv ZiBjb3JyZWN0IHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIgQVMgaW50 W107CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZv aWQgQVMgJCQKK0RFQ0xBUkUgdiBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxw Z3NxbF9zdl92YXIxID0gMTsKKyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBO T1RJQ0UgJyUnLCB2OworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxf c3ZfdmFyMltwbHBnc3FsX3N2X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdz cWxfc3ZfdmFyMjsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCB0ZXN0X2Z1 bmMoKTsKKworRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsK KworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIyIEFTIGludFtdOworCitTRUxFQ1QgdGVzdF9mdW5jKCk7CisKK0RS T1AgRlVOQ1RJT04gdGVzdF9mdW5jKCk7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx LCBwbHBnc3FsX3N2X3ZhcjI7CisKKy0tIGNoZWNrIHNlY3VyZSBhY2Nlc3MKK0NSRUFURSBST0xF IHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9yZWFkZXJf cm9sZTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworR1JBTlQgQUxMIE9O IFNDSEVNQSBwdWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVh ZGVyX3JvbGUsIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc192 YXJfb3duZXJfcm9sZTsKKworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7 CitMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTA7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NF VCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiB2YXJfcmVhZF9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJ U0UgTk9USUNFICclJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3Nx bCBTRUNVUklUWSBERUZJTkVSOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBU TyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyX3Jl YWRfZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNz X3Zhcl9vd25lcl9yb2xlOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBUTyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKwor U0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOworCistLSBzaG91bGQgYmUgb2sKK1NF TEVDVCB2YXJfcmVhZF9mdW5jKCk7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xF IFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIxOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9l eGVjX3JvbGU7CisKKy0tIHNob3VsZCBmYWlsLCBidXQgbm90IGNyYXNoCitTRUxFQ1QgdmFyX3Jl YWRfZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIEZVTkNUSU9OIHZhcl9y ZWFkX2Z1bmM7CisKK1JFVk9LRSBBTEwgT04gU0NIRU1BIHB1YmxpYyBGUk9NIHJlZ3Jlc3NfdmFy X293bmVyX3JvbGUsIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlLCByZWdyZXNzX3Zhcl9leGVjX3Jv bGU7CisKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jl c3NfdmFyX3JlYWRlcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKwor LS0gcmV0dXJucyB1cGRhdGVkIHZhbHVlCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx IEFTIGludDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9pbnQoaW50KQor UkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBDT0FMRVND RShwbHBnc3FsX3N2X3ZhcjEgKyAkMSwgJDEpOworICBSRVRVUk4gcGxwZ3NxbF9zdl92YXIxOwor RU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VMRUNUIGluY192YXJfaW50KDEpOworU0VM RUNUIGluY192YXJfaW50KDEpOworU0VMRUNUIGluY192YXJfaW50KDEpOworCitTRUxFQ1QgaW5j X3Zhcl9pbnQoMSkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0NSRUFURSBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc3ZfdmFyMiA9IDAu MDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9udW0obnVtZXJpYykKK1JF VFVSTlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gQ09BTEVTQ0Uo cGxwZ3NxbF9zdl92YXIyICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMjsKK0VO RDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworU0VM RUNUIGluY192YXJfbnVtKDEuMCk7CitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKworU0VMRUNU IGluY192YXJfbnVtKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CisKK0RST1AgRlVOQ1RJT04g aW5jX3Zhcl9pbnQ7CitEUk9QIEZVTkNUSU9OIGluY192YXJfbnVtOworCistLSBwbHBnc3FsIHZh cmlhYmxlcyBhcmUgcHJlZmVycmVkIGFnYWluc3Qgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBW QVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworCitETyAkJAorPDxteWJsb2NrPj4KK0RF Q0xBUkUgcGxwZ3NxbF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEg PSAxMDA7CisKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gcHJpbnQgMTAwOwor ICBSQUlTRSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2 X3ZhcjE7CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFi bGUgaXMgJScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHByaW50IDEwMDAKKyAg UkFJU0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7 CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOworCistLSB0aGUgdmFsdWUgc2hvdWxk IG5vdCBiZSBjb3JydXB0ZWQKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3YgdGV4dDsKK0xF VCBwbHBnc3FsX3N2X3YgPSAnYWJjJzsKKworQ1JFQVRFIEZVTkNUSU9OIGZmdW5jKCkKK1JFVFVS TlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIGdmdW5jKHBscGdzcWxfc3Zfdik7CitFTkQK KyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBGVU5DVElPTiBnZnVuYyh0IHRleHQpCitS RVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3YgPSAnQk9PTSEnOwor ICBSRVRVUk4gdDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK3NlbGVjdCBmZnVuYygp OworCitEUk9QIEZVTkNUSU9OIGZmdW5jKCk7CitEUk9QIEZVTkNUSU9OIGdmdW5jKHRleHQpOwor CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdjsKLS0gCjIuNDkuMAoK --0000000000008f76b80632058aa3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250405-0007-GUC-session_variables_ambiguity_warning.patch" Content-Disposition: attachment; filename="v20250405-0007-GUC-session_variables_ambiguity_warning.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m942s3uj1 RnJvbSA2NmVjODMzOWRkYjI2ZjJiYzg2YWMxYWM3ZWYxODQ1OGZiMjI2OTQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMjEgTWF5IDIwMjQgMTc6NTU6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA3 LzIxXSBHVUMgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcKCkluc2lkZSBhbiBx dWVyeSB0aGUgc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkLiBUaGlzIGJlaGF2aW91 ciBpcyBieSBkZXNpZ24sCmJlY2F1c2UgdGhpcyBlbnN1cmluZyBzbyBuZXcgdmFyaWFibGVzIGRv ZXNuJ3QgYnJlYWsgZXhpc3RpbmcgcXVlcmllcy4gQnV0IHRoaXMKYmVoYXZpb3VyIGNhbiBiZSBj b25mdXNpbmcsIGJlY2F1c2Ugc2hhZG93aW5nIGlzIHF1aWV0LgoKV2hlbiBuZXcgR1VDIHNlc3Np b25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIGlzIG9uLCB0aGVuIHRoZSB3YXJuaW5nCmlz IGRpc3BsYXllZCwgd2hlbiBzb21lIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlIHVzZWQsIGJ1dCBp dCBpcyBub3QgdXNlZApkdWUgc2hhZG93aW5nLiBUaGlzIGZlYXR1cmUgc2hvdWxkIHRvIGhlbHAg d2l0aCBpbnZlc3RpZ2F0aW9uIG9mIHVuZXhwZWN0ZWQKYmVoYXZpb3VyLgoKTm90ZTogUExwZ1NR TCBoYXMgYW4gb3B0aW9uIHRoYXQgY29udHJvbHMgcHJpb3JpdHkgb2YgaWRlbnRpZmllcidzIHNw YWNlcwooU1FMIG9yIFBMcGdTUUwpLiBEZWZhdWx0IGJlaGF2aW91ciBkb2Vzbid0IGFsbG93cyBj b2xsaXNpb25zLiBJIGJlbGlldmUKdGhpcyBkZWZhdWx0IGlzIHRoZSBiZXN0LiBJIGNhbm5vdCB0 byBpbXBsZW1lbnQgc2ltaWxhciB2ZXJ5IHN0cmljdApiZWhhdmlvdXIgdG8gc2Vzc2lvbiB2YXJp YWJsZXMsIGJlY2F1c2Ugb25lIHVuaGFwcHkgbmFtZWQgc2Vzc2lvbiB2YXJpYWJsZQpjYW4gYnJl YWtzIGFuIGFwcGxpY2F0aW9ucy4gVGhlIHByb2JsZW1zIHJlbGF0ZWQgdG8gYmFkbHkgbmFtZWQg UExwZ1NRTCdzCnZhcmlibGUgaXMgbGltaXR0ZWQganVzdCB0byBvbmx5IG9uZSByb3V0aW5lLgot LS0KIGRvYy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDYwICsr KysrKysrKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAg ICAgICAgICB8IDExICsrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAg ICAgICAgICB8IDQ5ICsrKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMgICAgICAgICAgIHwgIDkgKysrCiBzcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUgfCAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5o ICAgICAgICAgICAgICAgfCAgMSArCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92 YXJpYWJsZS5vdXQgfCAzMyArKysrKysrKysrCiAuLi4vc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25f dmFyaWFibGUuc3FsICAgICAgfCAyOSArKysrKysrKysKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dCAgICB8IDI2ICsrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyNiArKysrKysrKwogMTAgZmlsZXMgY2hhbmdl ZCwgMjQxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IGZlYTY4 M2NiNDljLi4wMDY5ZTc4NWM3OSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtMTEzMzAsNiArMTEzMzAsNjYgQEAg ZHluYW1pY19saWJyYXJ5X3BhdGggPSAnL3Vzci9sb2NhbC9saWIvcG9zdGdyZXNxbDokbGliZGly JwogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxp c3RlbnRyeSBpZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLWFtYmlndWl0eS13YXJuaW5nIiB4cmVm bGFiZWw9InNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIj4KKyAgICAgIDx0ZXJt Pjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nPC92YXJuYW1lPiAo PHR5cGU+Ym9vbGVhbjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxwcmltYXJ5 Pjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nPC92YXJuYW1lPiBj b25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAg ICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBXaGVu IG9uLCBhIHdhcm5pbmcgaXMgcmFpc2VkIHdoZW4gYW55IGlkZW50aWZpZXIgaW4gYSBxdWVyeSBj b3VsZCBiZQorICAgICAgICB1c2VkIGFzIGJvdGggYSBjb2x1bW4gaWRlbnRpZmllciwgcm91dGlu ZSB2YXJpYWJsZSBvciBhIHNlc3Npb24KKyAgICAgICAgdmFyaWFibGUgaWRlbnRpZmllci4gVGhl IGRlZmF1bHQgaXMgPGxpdGVyYWw+b2ZmPC9saXRlcmFsPi4KKyAgICAgICA8L3BhcmE+CisgICAg ICAgPHBhcmE+CisgICAgICAgIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBj b2x1bW4gcmVmZXJlbmNlcyBpbiBhIHF1ZXJ5LCB0aGlzCisgICAgICAgIGlzIGFuIGV4cGVjdGVk IGJlaGF2aW9yLiAgUHJldmlvdXNseSB3b3JraW5nIHF1ZXJpZXMgc2hvdWxkbid0IGVycm9yIG91 dAorICAgICAgICBieSBjcmVhdGluZyBhbnkgc2Vzc2lvbiB2YXJpYWJsZSwgc28gc2Vzc2lvbiB2 YXJpYWJsZXMgYXJlIGFsd2F5cyBzaGFkb3dlZAorICAgICAgICBpZiBhbiBpZGVudGlmaWVyIGlz IGFtYmlndW91cy4gIFZhcmlhYmxlcyBzaG91bGQgYmUgcmVmZXJlbmNlZCB1c2luZworICAgICAg ICBhbnVuYW1iaWd1b3VzIGlkZW50aWZpZXIgd2l0aG91dCBhbnkgcG9zc2liaWxpdHkgZm9yIGEg Y29sbGlzaW9uIHdpdGgKKyAgICAgICAgaWRlbnRpZmllciBvZiBvdGhlciBkYXRhYmFzZSBvYmpl Y3RzIChjb2x1bW4gbmFtZXMgb3IgcmVjb3JkIGZpZWxkcyBuYW1lcykuCisgICAgICAgIFRoZSB3 YXJuaW5nIG1lc3NhZ2VzIGVtaXR0ZWQgd2hlbiBlbmFibGluZyA8dmFybmFtZT5zZXNzaW9uX3Zh cmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzwvdmFybmFtZT4KKyAgICAgICAgY2FuIGhlbHAgZmlu ZGluZyBzdWNoIGlkZW50aWZpZXIgY29sbGlzaW9uLgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRF IFRBQkxFIGZvbyhhIGludCk7CitJTlNFUlQgSU5UTyBmb28gVkFMVUVTKDEwKTsKK0NSRUFURSBW QVJJQUJMRSBhIGludDsKK0xFVCBhID0gMTAwOworU0VMRUNUIGEgRlJPTSBmb287Cis8L3Byb2dy YW1saXN0aW5nPgorCis8c2NyZWVuPgorIGEKKy0tLS0KKyAxMAorKDEgcm93KQorPC9zY3JlZW4+ CisKKzxwcm9ncmFtbGlzdGluZz4KK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2Fy bmluZyBUTyBvbjsKK1NFTEVDVCBhIEZST00gZm9vOworPC9wcm9ncmFtbGlzdGluZz4KKworPHNj cmVlbj4KK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJhIiBpcyBzaGFkb3dlZAorTElORSAx OiBTRUxFQ1QgYSBGUk9NIGZvbzsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFNlc3Npb24g dmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVz IGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4KKyBhCistLS0tCisg MTAKKygxIHJvdykKKzwvc2NyZWVuPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgVGhpcyBmZWF0dXJlIGNhbiBzaWduaWZpY2FudGx5IGluY3JlYXNlIGxvZyBzaXplLCBz byBpdCdzIGRpc2FibGVkIGJ5CisgICAgICAgIGRlZmF1bHQuICBGb3IgdGVzdGluZyBvciBkZXZl bG9wbWVudCBlbnZpcm9ubWVudHMgaXQncyByZWNvbW1lbmRlZCB0bworICAgICAgICBlbmFibGUg aXQgaWYgeW91IHVzZSBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgICAgICA8L3BhcmE+CisgICAgICA8 L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFybGlzdGVudHJ5IGlk PSJndWMtc3RhbmRhcmQtY29uZm9ybWluZy1zdHJpbmdzIiB4cmVmbGFiZWw9InN0YW5kYXJkX2Nv bmZvcm1pbmdfc3RyaW5ncyI+CiAgICAgICA8dGVybT48dmFybmFtZT5zdGFuZGFyZF9jb25mb3Jt aW5nX3N0cmluZ3M8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKICAgICAgIDxpbmRl eHRlcm0+PHByaW1hcnk+c3RyaW5nczwvcHJpbWFyeT48c2Vjb25kYXJ5PnN0YW5kYXJkIGNvbmZv cm1pbmc8L3NlY29uZGFyeT48L2luZGV4dGVybT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9k ZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCBmY2U1ZTcyYmJmNi4uZDczZDg0 ZDY2NzYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvZGRsLnNnbWwKQEAgLTU0NDksNiArNTQ0OSwxNyBAQCBTRUxFQ1QgbmFtZSBGUk9NIGZvbzsK ICBBbGljZQogPC9wcm9ncmFtbGlzdGluZz4KICAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAg V2hlbiBhIHF1ZXJ5IGNvbnRhaW5zIGlkZW50aWZpZXJzIG9yIHF1YWxpZmllZCBpZGVudGlmaWVy cyB0aGF0IGNvdWxkIGJlCisgICAgdXNlZCBhcyBib3RoIGEgc2Vzc2lvbiB2YXJpYWJsZSBpZGVu dGlmaWVycyBhbmQgYXMgY29sdW1uIGlkZW50aWZpZXIsCisgICAgdGhlbiB0aGUgY29sdW1uIGlk ZW50aWZpZXIgaXMgcHJlZmVycmVkIGV2ZXJ5IHRpbWUuICBXYXJuaW5ncyBjYW4gYmUKKyAgICBl bWl0dGVkIHdoZW4gdGhpcyBzaXR1YXRpb24gaGFwcGVucyBieSBlbmFibGluZyBjb25maWd1cmF0 aW9uIHBhcmFtZXRlciA8eHJlZgorICAgIGxpbmtlbmQ9Imd1Yy1zZXNzaW9uLXZhcmlhYmxlcy1h bWJpZ3VpdHktd2FybmluZyIvPi4gVXNlciBjYW4gZXhwbGljaXRseQorICAgIHF1YWxpZnkgdGhl IHNvdXJjZSBvYmplY3QgYnkgc3ludGF4IDxsaXRlcmFsPnRhYmxlLmNvbHVtbjwvbGl0ZXJhbD4g b3IKKyAgICA8bGl0ZXJhbD5zY2hlbWEudmFyaWFibGU8L2xpdGVyYWw+LiBJdCBpcyBzdHJvbmds eSByZWNvbW1lbmRlZCB0byByZW5hbWUKKyAgICBzaGFkb3dlZCB2YXJpYWJsZXMgb3IgdXNlIHF1 YWxpZmllZCBuYW1lcyBhbHdheXMuCisgICA8L3BhcmE+CiAgIDwvc2VjdDE+CiAKICA8c2VjdDEg aWQ9ImRkbC1vdGhlcnMiPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4 cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggNTVlNDkwNmFkNzYu LmRjY2M1MDMwNDM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTQ1LDYgKzQ1LDcgQEAK IAogLyogR1VDIHBhcmFtZXRlcnMgKi8KIGJvb2wJCVRyYW5zZm9ybV9udWxsX2VxdWFscyA9IGZh bHNlOworYm9vbAkJc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgPSBmYWxzZTsK IAogCiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtRXhwclJlY3Vyc2UoUGFyc2VTdGF0ZSAqcHN0YXRl LCBOb2RlICpleHByKTsKQEAgLTk2MCwxMSArOTYxLDUxIEBAIHRyYW5zZm9ybUNvbHVtblJlZihQ YXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJICoKIAkJICogU0VMRUNUIGZv by5hLCBmb28uYiwgZm9vLmMgRlJPTSBmb287CiAJCSAqCi0JCSAqIEhvd2V2ZXIsIHRoYXQgaXMg dmVyeSBjb25mdXNpbmcsIHNvIHdlIGRpc2FsbG93IGl0LiAgV2UgZG9uJ3QgdHJ5IHRvCi0JCSAq IGlkZW50aWZ5IGEgdmFyaWFibGUgaWYgd2Uga25vdyB0aGF0IGl0IHdvdWxkIGJlIHNoYWRvd2Vk LgotCQkgKiAtLS0tLQorCQkgKiBIb3dldmVyLCB0aGF0IGlzIHZlcnkgY29uZnVzaW5nLCBzbyB3 ZSBkaXNhbGxvdyBpdC4KKwkJICoKKwkJICogV2hlbiBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3Vp dHlfd2FybmluZyBpcyByZXF1ZXN0ZWQsIHRoZW4gd2UKKwkJICogbmVlZCB0byBpZGVudGlmeSBh IHZhcmlhYmxlIGFsdGhvdWdoIHdlIGtub3csIHNvIHRoaXMgdmFyaWFibGUKKwkJICogd291bGQg YmUgc2hhZG93ZWQuCiAJCSAqLwotCQlpZiAoIW5vZGUgJiYgIShyZWxuYW1lICYmIGNyZXJyID09 IENSRVJSX05PX0NPTFVNTikpCisJCWlmIChub2RlIHx8IChyZWxuYW1lICYmIGNyZXJyID09IENS RVJSX05PX0NPTFVNTikpCisJCXsKKwkJCS8qCisJCQkgKiBJbiB0aGlzIHBhdGggd2UganVzdCB0 cnkgKGlmIGl0IGlzIHdhbnRlZCkgZGV0ZWN0IGlmIHNlc3Npb24KKwkJCSAqIHZhcmlhYmxlIGlz IHNoYWRvd2VkLgorCQkJICovCisJCQlpZiAoc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmcpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBUaGUgQWNjZXNzU2hhcmVMb2NrIGlzIGNyZWF0 ZWQgb24gcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlLgorCQkJCSAqIFRoZSBsb2NrIHdpbGwgYmUg a2VwdCBmb3IgdGhlIHdob2xlIHRyYW5zYWN0aW9uLgorCQkJCSAqLworCQkJCXZhcmlkID0gSWRl bnRpZnlWYXJpYWJsZShjcmVmLT5maWVsZHMsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIHRydWUp OworCisJCQkJaWYgKE9pZElzVmFsaWQodmFyaWQpKQorCQkJCXsKKwkJCQkJLyogdGhpcyBwYXRo IHdpbGwgZW5kaW5nIGJ5IFdBUk5JTkcuIFVubG9jayB2YXJpYWJsZSBmaXJzdCAqLworCQkJCQlV bmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCBBY2Nlc3NT aGFyZUxvY2spOworCisJCQkJCWlmIChub2RlKQorCQkJCQkJZXJlcG9ydChXQVJOSU5HLAorCQkJ CQkJCQkoZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19DT0xVTU4pLAorCQkJCQkJCQkgZXJybXNn KCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBpcyBzaGFkb3dlZCIsCisJCQkJCQkJCQkJTmFtZUxp c3RUb1N0cmluZyhjcmVmLT5maWVsZHMpKSwKKwkJCQkJCQkJIGVycmRldGFpbCgiU2Vzc2lvbiB2 YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUncyB2YXJpYWJsZXMg YW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBuYW1lLiIpLAorCQkJCQkJCQkg cGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24pKSk7CisJCQkJCWVsc2UK KwkJCQkJCS8qIHNlc3Npb24gdmFyaWFibGUgaXMgc2hhZG93ZWQgYnkgUlRFICovCisJCQkJCQll cmVwb3J0KFdBUk5JTkcsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfQU1CSUdVT1VTX0NPTFVN TiksCisJCQkJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGlzIHNoYWRv d2VkIiwKKwkJCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2 YXJpZCkpLAorCQkJCQkJCQkgZXJyZGV0YWlsKCJTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hh ZG93ZWQgYnkgdGFibGVzIG9yIHRhYmxlJ3MgYWxpYXNlcyB3aXRoIHRoZSBzYW1lIG5hbWUuIiks CisJCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjcmVmLT5sb2NhdGlvbikpKTsK KwkJCQl9CisJCQl9CisJCX0KKwkJZWxzZQogCQl7CiAJCQkvKiB0YWtlcyBhbiBBY2Nlc3NTaGFy ZUxvY2sgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKi8KIAkJCXZhcmlkID0gSWRlbnRpZnlWYXJp YWJsZShjcmVmLT5maWVsZHMsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNlKTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggNGVhZWNhODlmMmMuLjFlZTU0Y2ZiNjllIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtMTYzMiw2ICsxNjMyLDE1IEBAIHN0 cnVjdCBjb25maWdfYm9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJCWZhbHNlLAogCQlOVUxM LCBOVUxMLCBOVUxMCiAJfSwKKwl7CisJCXsic2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmciLCBQR0NfVVNFUlNFVCwgQ0xJRU5UX0NPTk5fU1RBVEVNRU5ULAorCQkJZ2V0dGV4dF9u b29wKCJSYWlzZSBhIHdhcm5pbmcgd2hlbiByZWZlcmVuY2UgdG8gYSBzZXNzaW9uIHZhcmlhYmxl IGlzIGFtYmlndW91cy4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnNlc3Npb25fdmFyaWFibGVzX2Ft YmlndWl0eV93YXJuaW5nLAorCQlmYWxzZSwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCiAJewog CQl7ImRlZmF1bHRfdHJhbnNhY3Rpb25fcmVhZF9vbmx5IiwgUEdDX1VTRVJTRVQsIENMSUVOVF9D T05OX1NUQVRFTUVOVCwKIAkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgZGVmYXVsdCByZWFkLW9u bHkgc3RhdHVzIG9mIG5ldyB0cmFuc2FjdGlvbnMuIiksCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9t aXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggZmY1NmExZjA3MzIuLjVmNTI5NmU3Yjcz IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1w bGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBA IC03NTgsNiArNzU4LDcgQEAgYXV0b3ZhY3V1bV93b3JrZXJfc2xvdHMgPSAxNgkjIGF1dG92YWN1 dW0gd29ya2VyIHNsb3RzIHRvIGFsbG9jYXRlCiAjZGVmYXVsdF90cmFuc2FjdGlvbl9yZWFkX29u bHkgPSBvZmYKICNkZWZhdWx0X3RyYW5zYWN0aW9uX2RlZmVycmFibGUgPSBvZmYKICNzZXNzaW9u X3JlcGxpY2F0aW9uX3JvbGUgPSAnb3JpZ2luJworI3Nlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0 eV93YXJuaW5nID0gb2ZmCiAjc3RhdGVtZW50X3RpbWVvdXQgPSAwCQkJCSMgaW4gbWlsbGlzZWNv bmRzLCAwIGlzIGRpc2FibGVkCiAjdHJhbnNhY3Rpb25fdGltZW91dCA9IDAJCQkjIGluIG1pbGxp c2Vjb25kcywgMCBpcyBkaXNhYmxlZAogI2xvY2tfdGltZW91dCA9IDAJCQkJIyBpbiBtaWxsaXNl Y29uZHMsIDAgaXMgZGlzYWJsZWQKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9leHByLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCmluZGV4IGVmYmFmZjhl NzEwLi5kMjIwOTA3MDE4MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4 cHIuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCkBAIC0xNyw2ICsxNyw3 IEBACiAKIC8qIEdVQyBwYXJhbWV0ZXJzICovCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBUcmFu c2Zvcm1fbnVsbF9lcXVhbHM7CitleHRlcm4gUEdETExJTVBPUlQgYm9vbCBzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZzsKIAogZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUV4cHIoUGFy c2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKTsKIApk aWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92 YXJpYWJsZS5vdXQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9u X3ZhcmlhYmxlLm91dAppbmRleCBhYjc3OTkwMDU5Ni4uYTY1MjNmN2FmZTIgMTAwNjQ0Ci0tLSBh L3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0 CisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFi bGUub3V0CkBAIC0zNTQsNiArMzU0LDM5IEBAICQkOwogTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJs ZSBpcyAxMDAKIE5PVElDRTogIHBscGdzcWwgdmFyaWFibGUgaXMgMTAwMAogTk9USUNFOiAgdmFy aWFibGUgaXMgMTAwMAorLS0gYWdhaW50IHdpdGggc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5 X3dhcm5pbmcob24pCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8g b247CitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xBUkUgcGxwZ3NxbF9zdl92YXIxIGludDsKK0JF R0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDA7CisKKyAgLS0gc2hvdWxkIGJlIG9rIHdp dGhvdXQgd2FybmluZworICBwbHBnc3FsX3N2X3ZhcjEgOj0gMTAwMDsKKworICAtLSBzaG91bGQg YmUgb2sgd2l0aG91dCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDsKKyAgUkFJU0UgTk9USUNFICdz ZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHNo b3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJ Q0UgJ3BscGdzcWwgdmFyaWFibGUgaXMgJScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisg IC0tIHNob3VsZCB0byBwcmludCBwbHBnc3FsIHZhcmlhYmxlIHdpdGggd2FybmluZworICAtLSBw cmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAndmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFy MTsKK0VORDsKKyQkOworTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJsZSBpcyAxMDAKK05PVElDRTog IHBscGdzcWwgdmFyaWFibGUgaXMgMTAwMAorV0FSTklORzogIHNlc3Npb24gdmFyaWFibGUgInBs cGdzcWxfc3ZfdmFyMSIgaXMgc2hhZG93ZWQKK0xJTkUgMTogcGxwZ3NxbF9zdl92YXIxCisgICAg ICAgIF4KK0RFVEFJTDogIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1 bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhl IHNhbWUgbmFtZS4KK1FVRVJZOiAgcGxwZ3NxbF9zdl92YXIxCitOT1RJQ0U6ICB2YXJpYWJsZSBp cyAxMDAwCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwog RFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjE7CiAtLSB0aGUgdmFsdWUgc2hvdWxkIG5vdCBi ZSBjb3JydXB0ZWQKIENSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3YgdGV4dDsKZGlmZiAtLWdp dCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbCBi L3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbAppbmRl eCBhM2NjMjY0Y2YzOC4uOWI4ZTkwZTgxZmEgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3Ny Yy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbAorKysgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKQEAgLTI2MCw2ICsyNjAsMzUgQEAg QkVHSU4KIEVORDsKICQkOwogCistLSBhZ2FpbnQgd2l0aCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJp Z3VpdHlfd2FybmluZyhvbikKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJu aW5nIFRPIG9uOworCitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xBUkUgcGxwZ3NxbF9zdl92YXIx IGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDA7CisKKyAgLS0gc2hvdWxk IGJlIG9rIHdpdGhvdXQgd2FybmluZworICBwbHBnc3FsX3N2X3ZhcjEgOj0gMTAwMDsKKworICAt LSBzaG91bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDsKKyAgUkFJU0Ug Tk9USUNFICdzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3NxbF9zdl92YXIxOwor CisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcKKyAgLS0gcHJpbnQgMTAwMAorICBS QUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFibGUgaXMgJScsIG15YmxvY2sucGxwZ3NxbF9zdl92 YXIxOworCisgIC0tIHNob3VsZCB0byBwcmludCBwbHBnc3FsIHZhcmlhYmxlIHdpdGggd2Fybmlu ZworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAndmFyaWFibGUgaXMgJScsIHBscGdz cWxfc3ZfdmFyMTsKK0VORDsKKyQkOworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5 X3dhcm5pbmcgVE8gb2ZmOworCiBEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMTsKIAogLS0g dGhlIHZhbHVlIHNob3VsZCBub3QgYmUgY29ycnVwdGVkCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDI3ODNjYWE4NDQ2Li43YzM1MGFk NWVmOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQKQEAgLTE1MjQsNiArMTUyNCw5IEBAIENSRUFURSBUQUJMRSB2YXJ0ZXN0X2ZvbyhhIGlu dCwgYiBpbnQpOwogSU5TRVJUIElOVE8gdmFydGVzdF9mb28gVkFMVUVTKDEwLDIwKSwgKDMwLDQw KTsKIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnRlc3RfZm9vOwogTEVUIHZhcjEgPSAoMTAw LDIwMCk7CistLSBubyB2YXJpYWJsZSBpcyBzaGFkb3dlZCBoZXJlCistLSBubyB3YXJuaW5nIGV4 cGVjdGVkCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CiAt LSBzaG91bGQgdG8gZmFpbAogU0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRlc3RfZm9vOwogRVJST1I6 ICBtaXNzaW5nIEZST00tY2xhdXNlIGVudHJ5IGZvciB0YWJsZSAidmFyMSIKQEAgLTE1NDksNiAr MTU1Miw3IEBAIFNFTEVDVCBjb3VudCh2YXIxLiopIEZST00gdmFydGVzdF9mb28gdmFyMTsKICAg ICAgMgogKDEgcm93KQogCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcg VE8gb2ZmOwogU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7CiBEUk9QIFNDSEVNQSB2YXJ0ZXN0 IENBU0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDIgb3RoZXIgb2JqZWN0cwpAQCAt MTk0MywzICsxOTQ3LDI1IEBAIFNFTEVDVCB2YXIxOwogKDEgcm93KQogCiBEUk9QIFZBUklBQkxF IHZhcjEsIHZhcjI7CistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5n CitDUkVBVEUgU0NIRU1BIHh4dGFiOworQ1JFQVRFIFZBUklBQkxFIHh4dGFiLmF2YXIgaW50Owor Q1JFQVRFIFRBQkxFIHB1YmxpYy54eHRhYihhdmFyIGludCk7CitJTlNFUlQgSU5UTyBwdWJsaWMu eHh0YWIgVkFMVUVTKDEpOworTEVUIHh4dGFiLmF2YXIgPSAyMDsKK1NFVCBzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKKy0tLSBzaG91bGQgdG8gcmFpc2Ugd2Fybmlu Zywgc2hvdyAxCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54eHRhYjsKK1dBUk5JTkc6 ICBzZXNzaW9uIHZhcmlhYmxlICJ4eHRhYi5hdmFyIiBpcyBzaGFkb3dlZAorTElORSAxOiBTRUxF Q1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54eHRhYjsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJ TDogIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5l J3MgdmFyaWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4K KyBhdmFyIAorLS0tLS0tCisgICAgMQorKDEgcm93KQorCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNf YW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOworRFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CitEUk9Q IFNDSEVNQSB4eHRhYiBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9u IHZhcmlhYmxlIHh4dGFiLmF2YXIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFi bGVzLnNxbAppbmRleCBhNjI0YWI4YjY3Zi4uNjhiZTQxNWJmMjYgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTEwNzksNiArMTA3OSwxMCBAQCBJTlNF UlQgSU5UTyB2YXJ0ZXN0X2ZvbyBWQUxVRVMoMTAsMjApLCAoMzAsNDApOwogQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgdmFydGVzdF9mb287CiBMRVQgdmFyMSA9ICgxMDAsMjAwKTsKIAorLS0gbm8g dmFyaWFibGUgaXMgc2hhZG93ZWQgaGVyZQorLS0gbm8gd2FybmluZyBleHBlY3RlZAorU0VUIHNl c3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9uOworCiAtLSBzaG91bGQgdG8g ZmFpbAogU0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRlc3RfZm9vOwogCkBAIC0xMDkxLDYgKzEwOTUs OCBAQCBTRUxFQ1QgY291bnQodmFyMS4qKSBGUk9NIHZhcnRlc3RfZm9vOwogLS0gc2hvdWxkIGJl IG9rCiBTRUxFQ1QgY291bnQodmFyMS4qKSBGUk9NIHZhcnRlc3RfZm9vIHZhcjE7CiAKK1NFVCBz ZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CisKIFNFVCBTRUFSQ0hf UEFUSCBUTyBERUZBVUxUOwogRFJPUCBTQ0hFTUEgdmFydGVzdCBDQVNDQURFOwogCkBAIC0xMzM0 LDMgKzEzNDAsMjMgQEAgQkVHSU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJBQ0s7CiBTRUxF Q1QgdmFyMTsKIAogRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOworCistLSB0ZXN0IHNlc3Npb25f dmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCitDUkVBVEUgU0NIRU1BIHh4dGFiOworCitDUkVB VEUgVkFSSUFCTEUgeHh0YWIuYXZhciBpbnQ7CisKK0NSRUFURSBUQUJMRSBwdWJsaWMueHh0YWIo YXZhciBpbnQpOworCitJTlNFUlQgSU5UTyBwdWJsaWMueHh0YWIgVkFMVUVTKDEpOworCitMRVQg eHh0YWIuYXZhciA9IDIwOworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5p bmcgVE8gb247CistLS0gc2hvdWxkIHRvIHJhaXNlIHdhcm5pbmcsIHNob3cgMQorU0VMRUNUIHh4 dGFiLmF2YXIgRlJPTSBwdWJsaWMueHh0YWI7CisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJp Z3VpdHlfd2FybmluZyBUTyBvZmY7CisKK0RST1AgVEFCTEUgcHVibGljLnh4dGFiOworRFJPUCBT Q0hFTUEgeHh0YWIgQ0FTQ0FERTsKLS0gCjIuNDkuMAoK --0000000000008f76b80632058aa3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250405-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20250405-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m942s3v73 RnJvbSBmNjYxOWM4MDNlZjQ5NGFlZjc2NGNmNDk5Yzg0Y2JhNDU1MGEyN2QzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAwOTozMToyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDUvMjFdIG1lbW9yeSBjbGVhbmluZyBhZnRlciBEUk9QIFZBUklBQkxFCgpBY2NlcHRpbmcgYSBz aW52YWwgbWVzc2FnZSBpbnZhbGlkYXRlcyBlbnRyaWVzIGluIHRoZSAic2Vzc2lvbnZhcnMiIGhh c2ggdGFibGUuClRoZXNlIGVudHJpZXMgYXJlIHZhbGlkYXRlZCBiZWZvcmUgYW55IHJlYWQgb3Ig d3JpdGUgb3BlcmF0aW9ucyBvbiBzZXNzaW9uIHZhcmlhYmxlcy4KV2hlbiB0aGUgZW50cnkgY2Fu bm90IGJlIHZhbGlkYXRlZCwgaXQgaXMgcmVtb3ZlZC4gIFJlbW92YWwgd2lsbCBiZSBkZWxheWVk IHdoZW4KdGhlIHZhcmlhYmxlIHdhcyBkcm9wcGVkIGJ5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9u LCB3aGljaCBjb3VsZCBzdGlsbCBiZSByb2xsZWQgYmFjay4KLS0tCiBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE1MyArKysrKysrKysrKy0KIHNyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgMiArCiAuLi4vaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAxMTAgKysrKysrKysrCiBzcmMv dGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlICAgICAgICAgfCAgIDEgKwogLi4uL2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgICAgIHwgIDUwICsrKysKIC4uLi9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDIxNyArKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8 IDEyMCArKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDY1NSBpbnNlcnRpb25zKCspLCA1IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3Rl ZC9zZXNzaW9uLXZhcmlhYmxlLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xh dGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKaW5kZXggYmI0NDVlOTQzNGIuLmQ2NzJkMmE5Y2IzIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24u aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfdmFyaWFibGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNp bmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgpAQCAtMjMwLDcgKzIzMSw4IEBAIENyZWF0ZVZhcmlh YmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiB9CiAK IC8qCi0gKiBEcm9wIHZhcmlhYmxlIGJ5IE9JRAorICogRHJvcCB2YXJpYWJsZSBieSBPSUQsIGFu ZCByZWdpc3RlciB0aGUgbmVlZGVkIHNlc3Npb24gdmFyaWFibGUKKyAqIGNsZWFudXAuCiAgKi8K IHZvaWQKIERyb3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlkKQpAQCAtMjUwLDQgKzI1Miw3IEBAIERy b3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlkKQogCVJlbGVhc2VTeXNDYWNoZSh0dXApOwogCiAJdGFi bGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCS8qIGRvIHRoZSBuZWNlc3Nhcnkg Y2xlYW51cCBpbiBsb2NhbCBtZW1vcnksIGlmIG5lZWRlZCAqLworCVNlc3Npb25WYXJpYWJsZURy b3BQb3N0cHJvY2Vzcyh2YXJpZCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKaW5kZXggZTFjODY5NjY5OTguLjE1OTZkOTRmYjAzIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0xNCw2ICsxNCw3IEBACiAgKi8KICNpbmNsdWRlICJw b3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgog I2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCkBAIC02Nyw2ICs2OCwxNCBA QCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJdm9pZAkgICAqZG9tYWluX2NoZWNrX2V4 dHJhOwogCUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5fY2hlY2tfZXh0cmFfbHhpZDsKIAorCS8q CisJICogVG9wIGxldmVsIGxvY2FsIHRyYW5zYWN0aW9uIGlkIG9mIHRoZSBsYXN0IHRyYW5zYWN0 aW9uIHRoYXQgZHJvcHBlZCB0aGUKKwkgKiB2YXJpYWJsZSwgaWYgYW55LiAgV2UgbmVlZCB0aGlz IGluZm9ybWF0aW9uIHRvIGF2b2lkIGZyZWVpbmcgbWVtb3J5IGZvcgorCSAqIHZhcmlhYmxlcyBk cm9wcGVkIGJ5IHRoZSBsb2NhbCBiYWNrZW5kLCBpbiBjYXNlIHRoZSBvcGVyYXRpb24gaXMgcm9s bGVkCisJICogYmFjay4KKwkgKi8KKwlMb2NhbFRyYW5zYWN0aW9uSWQgZHJvcF9seGlkOworCiAJ LyoKIAkgKiBTdG9yZWQgdmFsdWUgYW5kIHR5cGUgZGVzY3JpcHRpb24gY2FuIGJlIG91dGRhdGVk IHdoZW4gd2UgcmVjZWl2ZSBhCiAJICogc2ludmFsIG1lc3NhZ2UuICBXZSB0aGVuIGhhdmUgdG8g Y2hlY2sgaWYgdGhlIHN0b3JlZCBkYXRhIGFyZSBzdGlsbApAQCAtODMsNiArOTIsMTcgQEAgc3Rh dGljIEhUQUIgKnNlc3Npb252YXJzID0gTlVMTDsJLyogaGFzaCB0YWJsZSBmb3Igc2Vzc2lvbiB2 YXJpYWJsZXMgKi8KIAogc3RhdGljIE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4 dCA9IE5VTEw7CiAKKy8qIGJlY29tZXMgdHJ1ZSB3aGVuIHdlIHJlY2VpdmUgYSBzaW52YWwgbWVz c2FnZSAqLworc3RhdGljIGJvb2wgbmVlZHNfdmFsaWRhdGlvbiA9IGZhbHNlOworCisvKgorICog VGhlIGNvbnRlbnQgb2YgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVtb3ZlZCBp bW1lZGlhdGVseS4gIFdlIGRvCisgKiB0aGF0IGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uIHRoYXQg cmVhZHMgb3Igd3JpdGVzIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqICJ2YWxpZGF0ZWRfbHhpZCIg c3RvcmVzIHRoZSB0cmFuc2FjdGlvbiB0aGF0IHBlcmZvcm1lZCBzYWlkIHZhbGlkYXRpb24sIHNv CisgKiB0aGF0IHdlIGNhbiBhdm9pZCByZXBlYXRpbmcgdGhlIGVmZm9ydC4KKyAqLworc3RhdGlj IExvY2FsVHJhbnNhY3Rpb25JZCB2YWxpZGF0ZWRfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0 aW9uSWQ7CisKIC8qCiAgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBp bnZhbGlkYXRpb24uCiAgKi8KQEAgLTExNCw2ICsxMzQsMzggQEAgcGdfdmFyaWFibGVfY2FjaGVf Y2FsbGJhY2soRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKIAkJaWYg KGhhc2h2YWx1ZSA9PSAwIHx8IHN2YXItPmhhc2h2YWx1ZSA9PSBoYXNodmFsdWUpCiAJCXsKIAkJ CXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisJCQluZWVkc192YWxpZGF0aW9uID0gdHJ1ZTsKKwkJ fQorCX0KK30KKworLyoKKyAqIEhhbmRsZSB0aGUgbG9jYWwgbWVtb3J5IGNsZWFudXAgZm9yIGEg RFJPUCBWQVJJQUJMRSBjb21tYW5kLgorICoKKyAqIENhbGxlciBzaG91bGQgdGFrZSBjYXJlIG9m IHJlbW92aW5nIHRoZSBwZ192YXJpYWJsZSBlbnRyeSBmaXJzdC4KKyAqLwordm9pZAorU2Vzc2lv blZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCkKK3sKKwlBc3NlcnQoTG9jYWxUcmFu c2FjdGlvbklkSXNWYWxpZChNeVByb2MtPnZ4aWQubHhpZCkpOworCisJaWYgKHNlc3Npb252YXJz KQorCXsKKwkJYm9vbAkJZm91bmQ7CisJCVNWYXJpYWJsZQlzdmFyID0gKFNWYXJpYWJsZSkgaGFz aF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJCQkJCQkJCSAgIEhBU0hfRklORCwg JmZvdW5kKTsKKworCQlpZiAoZm91bmQpCisJCXsKKwkJCS8qCisJCQkgKiBTYXZlIHRoZSBjdXJy ZW50IHRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCB0byBtYWtlIHN1cmUgd2UKKwkJCSAq IHdvbid0IGF1dG9tYXRpY2FsbHkgcmVtb3ZlIHRoZSBsb2NhbCB2YXJpYWJsZSBzdG9yYWdlIGlu CisJCQkgKiB2YWxpZGF0ZV9hbGxfc2Vzc2lvbl92YXJpYWJsZXMoKSB3aGVuIHRoZSBpbnZhbGlk YXRpb24gbWVzc2FnZQorCQkJICogZnJvbSBEUk9QIFZBUklBQkxFIGFycml2ZXMuICBBZnRlciBh bGwsIHRoZSB0cmFuc2FjdGlvbiBjb3VsZAorCQkJICogc3RpbGwgYmUgcm9sbGVkIGJhY2suCisJ CQkgKi8KKwkJCXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisJCQlzdmFyLT5kcm9wX2x4aWQgPSBN eVByb2MtPnZ4aWQubHhpZDsKIAkJfQogCX0KIH0KQEAgLTE2Nyw2ICsyMTksNjcgQEAgaXNfc2Vz c2lvbl92YXJpYWJsZV92YWxpZChTVmFyaWFibGUgc3ZhcikKIAlyZXR1cm4gcmVzdWx0OwogfQog CisvKgorICogQ2hlY2sgYWxsIHBvdGVudGlhbGx5IGludmFsaWQgc2Vzc2lvbiB2YXJpYWJsZSBk YXRhIGluIGxvY2FsIG1lbW9yeSBhbmQgZnJlZQorICogdGhlIG1lbW9yeSBmb3IgYWxsIGludmFs aWQgb25lcy4gIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJlZm9yZSBhbnkgcmVhZCBvcgorICog d3JpdGUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlLiAgRnJlZWluZyBvZiBhIHZhcmlhYmxlJ3MgbWVt b3J5IGlzIHBvc3Rwb25lZCBpZgorICogdGhlIHZhcmlhYmxlIGhhcyBiZWVuIGRyb3BwZWQgYnkg dGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24sIHNpbmNlIHRoYXQKKyAqIG9wZXJhdGlvbiBjb3VsZCBz dGlsbCBiZSByb2xsZWQgYmFjay4KKyAqCisgKiBJdCBpcyBwb3NzaWJsZSB0aGF0IHdlIHJlY2Vp dmUgYSBjYWNoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3aGlsZQorICogcmVtb3ZlX2ludmFsaWRf c2Vzc2lvbl92YXJpYWJsZXMoKSBpcyBleGVjdXRpbmcsIHNvIHdlIGNhbm5vdCBndWFyYW50ZWUg dGhhdAorICogYWxsIGVudHJpZXMgaW4gInNlc3Npb252YXJzIiB3aWxsIGJlIHNldCB0byAiaXNf dmFsaWQiIGFmdGVyIHRoZSBmdW5jdGlvbiBpcworICogZG9uZS4gIEhvd2V2ZXIsIHdlIGNhbiBn dWFyYW50ZWUgdGhhdCBhbGwgZW50cmllcyBnZXQgY2hlY2tlZCBvbmNlLgorICovCitzdGF0aWMg dm9pZAorcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXModm9pZCkKK3sKKwlIQVNIX1NF UV9TVEFUVVMgc3RhdHVzOworCVNWYXJpYWJsZQlzdmFyOworCisJLyoKKwkgKiBUaGUgdmFsaWRh dGlvbiByZXF1aXJlcyBzeXN0ZW0gY2F0YWxvZyBhY2Nlc3MsIHNvIHRoZSBzZXNzaW9uIHN0YXRl CisJICogc2hvdWxkIGJlICJpbiB0cmFuc2FjdGlvbiIuCisJICovCisJQXNzZXJ0KElzVHJhbnNh Y3Rpb25TdGF0ZSgpKTsKKworCWlmICghbmVlZHNfdmFsaWRhdGlvbiB8fCAhc2Vzc2lvbnZhcnMp CisJCXJldHVybjsKKworCS8qCisJICogUmVzZXQgdGhlIGZsYWcgYmVmb3JlIHdlIHN0YXJ0IHRo ZSB2YWxpZGF0aW9uLiAgSXQgY2FuIGJlIHNldCBhZ2FpbgorCSAqIGJ5IGNvbmN1cnJlbnRseSBp bmNvbWluZyBzaW52YWwgbWVzc2FnZXMuCisJICovCisJbmVlZHNfdmFsaWRhdGlvbiA9IGZhbHNl OworCisJZWxvZyhERUJVRzEsICJlZmZlY3RpdmUgY2FsbCBvZiB2YWxpZGF0ZV9hbGxfc2Vzc2lv bl92YXJpYWJsZXMoKSIpOworCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7 CisJd2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAh PSBOVUxMKQorCXsKKwkJaWYgKCFzdmFyLT5pc192YWxpZCkKKwkJeworCQkJaWYgKHN2YXItPmRy b3BfbHhpZCA9PSBNeVByb2MtPnZ4aWQubHhpZCkKKwkJCXsKKwkJCQkvKiB0cnkgYWdhaW4gaW4g dGhlIG5leHQgdHJhbnNhY3Rpb24gKi8KKwkJCQluZWVkc192YWxpZGF0aW9uID0gdHJ1ZTsKKwkJ CQljb250aW51ZTsKKwkJCX0KKworCQkJaWYgKCFpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKHN2 YXIpKQorCQkJeworCQkJCU9pZAkJCXZhcmlkID0gc3Zhci0+dmFyaWQ7CisKKwkJCQlmcmVlX3Nl c3Npb25fdmFyaWFibGVfdmFsdWUoc3Zhcik7CisJCQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMs ICZ2YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOworCQkJCXN2YXIgPSBOVUxMOworCQkJfQorCQkJ ZWxzZQorCQkJCXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKKwkJfQorCX0KK30KKwogLyoKICAqIElu aXRpYWxpemUgYXR0cmlidXRlcyBjYWNoZWQgaW4gInN2YXIiCiAgKi8KQEAgLTE5Niw2ICszMDks OCBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCiAJ c3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKIAlzdmFyLT5kb21haW5fY2hlY2tfZXh0 cmFfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CiAKKwlzdmFyLT5kcm9wX2x4aWQg PSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwogCXN2YXItPmlzbnVsbCA9IHRydWU7CiAJc3Zhci0+ dmFsdWUgPSAoRGF0dW0pIDA7CiAKQEAgLTMxOSwyMiArNDM0LDQyIEBAIGdldF9zZXNzaW9uX3Zh cmlhYmxlKE9pZCB2YXJpZCkKIAlpZiAoIXNlc3Npb252YXJzKQogCQljcmVhdGVfc2Vzc2lvbnZh cnNfaGFzaHRhYmxlcygpOwogCisJaWYgKHZhbGlkYXRlZF9seGlkID09IEludmFsaWRMb2NhbFRy YW5zYWN0aW9uSWQgfHwKKwkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCisJ eworCQkvKiBmcmVlIHRoZSBtZW1vcnkgZnJvbSBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzICov CisJCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKwkJLyogZG9uJ3QgcmVw ZWF0IHRoZSBhYm92ZSBzdGVwIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uICovCisJCXZhbGlkYXRl ZF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CisJfQorCiAJc3ZhciA9IChTVmFyaWFibGUpIGhh c2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsCiAJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZm b3VuZCk7CiAKIAlpZiAoZm91bmQpCiAJeworCQkvKgorCQkgKiBUaGUgc2Vzc2lvbiB2YXJpYWJs ZSBjb3VsZCBoYXZlIGJlZW4gZHJvcHBlZCBieSBhIERST1AgVkFSSUFCTEUKKwkJICogc3RhdGVt ZW50IGluIGEgc3VidHJhbnNhY3Rpb24gdGhhdCB3YXMgbGF0ZXIgcm9sbGVkIGJhY2ssIHdoaWNo CisJCSAqIG1lYW5zIHRoYXQgd2UgbWF5IGhhdmUgdG8gd29yayB3aXRoIHRoZSBkYXRhIG9mIGEg dmFyaWFibGUgbWFya2VkCisJCSAqIGFzIGludmFsaWQuCisJCSAqLwogCQlpZiAoIXN2YXItPmlz X3ZhbGlkKQogCQl7CiAJCQkvKgotCQkJICogSWYgdGhlcmUgd2FzIGFuIGludmFsaWRhdGlvbiBt ZXNzYWdlLCB0aGUgdmFyaWFibGUgbWlnaHQgc3RpbGwgYmUKLQkJCSAqIHZhbGlkLCBidXQgd2Ug aGF2ZSB0byBjaGVjayB3aXRoIHRoZSBzeXN0ZW0gY2F0YWxvZy4KKwkJCSAqIFdlIGhhdmUgdG8g Y2hlY2sgdGhlIHN5c3RlbSBjYXRhbG9nIHRvIHNlZSBpZiB0aGUgdmFyaWFibGUgaXMKKwkJCSAq IHN0aWxsIHZhbGlkLCBldmVuIGlmIGFuIGludmFsaWRhdGlvbiBtZXNzYWdlIHNldCBpdCB0byBp bnZhbGlkLgorCQkJICoKKwkJCSAqIFRoZSB2YXJpYWJsZSBtdXN0IGJlIHZhbGlkYXRlZCBiZWZv cmUgaXQgaXMgYWNjZXNzZWQuICBUaGUgb2lkCisJCQkgKiBzaG91bGQgYmUgdmFsaWQsIGJlY2F1 c2UgdGhlIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBhbHJlYWR5CisJCQkgKiBsb2NrZWQs IGFuZCByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygpIHdvdWxkIHJlbW92ZQorCQkJ ICogdmFyaWFibGVzIGRyb3BwZWQgYnkgb3RoZXIgdHJhbnNhY3Rpb25zLgogCQkJICovCiAJCQlp ZiAoaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChzdmFyKSkKIAkJCQlzdmFyLT5pc192YWxpZCA9 IHRydWU7CiAJCQllbHNlCi0JCQkJLyogaWYgdGhlIHZhbHVlIGNhbm5vdCBiZSB2YWxpZGF0ZWQs IHdlIGhhdmUgdG8gZGlzY2FyZCBpdCAqLwotCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1 ZShzdmFyKTsKKwkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBzdGF0ZSBvZiBzZXNzaW9uIHZh cmlhYmxlICV1IiwgdmFyaWQpOwogCQl9CiAJfQogCWVsc2UKQEAgLTM5NSw2ICs1MzAsMTYgQEAg U2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQog CWlmICghc2Vzc2lvbnZhcnMpCiAJCWNyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CiAK KwlpZiAodmFsaWRhdGVkX2x4aWQgPT0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZCB8fAorCQl2 YWxpZGF0ZWRfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkKKwl7CisJCS8qIGZyZWUgdGhlIG1l bW9yeSBmcm9tIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwkJcmVtb3ZlX2ludmFsaWRf c2Vzc2lvbl92YXJpYWJsZXMoKTsKKworCQkvKiBkb24ndCByZXBlYXQgdGhlIGFib3ZlIHN0ZXAg aW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24gKi8KKwkJdmFsaWRhdGVkX2x4aWQgPSBNeVByb2MtPnZ4 aWQubHhpZDsKKwl9CisKIAlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vzc2lvbnZh cnMsICZ2YXJpZCwKIAkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IGE4Y2E0M2M4N2FmLi5kM2NjNzliNTYw OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisr KyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjEsNiArMjEs OCBAQAogI2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZp cm9ubWVudC5oIgogCitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3Mo T2lkIHZhcmlkKTsKKwogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwg RGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFi bGUoT2lkIHZhcmlkLCBib29sICppc051bGwpOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29s YXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24v ZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjBhNTU3OWRjN2NlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvaXNv bGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC0wLDAgKzEsMTEwIEBACitQ YXJzZWQgdGVzdCBzcGVjIHdpdGggNCBzZXNzaW9ucworCitzdGFydGluZyBwZXJtdXRhdGlvbjog bGV0IHZhbCBkcm9wIHZhbAorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAgdmFs OiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0KK3Rlc3QgCisoMSByb3cpCisKK3N0ZXAgZHJv cDogRFJPUCBWQVJJQUJMRSBteXZhcjsKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitFUlJPUjog IGNvbHVtbiAibXl2YXIiIGRvZXMgbm90IGV4aXN0CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBs ZXQgdmFsIHMxIGRyb3AgdmFsIHNyMQorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0 ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0KK3Rlc3QgCisoMSByb3cpCisKK3N0 ZXAgczE6IEJFR0lOOworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCB2YWw6 IFNFTEVDVCBteXZhcjsKK0VSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3QgZXhpc3QKK3N0 ZXAgc3IxOiBST0xMQkFDSzsKKworc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgZGJnIGRy b3AgY3JlYXRlIGRiZyB2YWwKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZh bDogU0VMRUNUIG15dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIGRi ZzogU0VMRUNUIHNjaGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVz KCk7CitzY2hlbWF8bmFtZSB8cmVtb3ZlZAorLS0tLS0tKy0tLS0tKy0tLS0tLS0KK3B1YmxpY3xt eXZhcnxmICAgICAgCisoMSByb3cpCisKK3N0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsK K3N0ZXAgY3JlYXRlOiBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK3N0ZXAgZGJnOiBT RUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsK K3NjaGVtYXxuYW1lfHJlbW92ZWQKKy0tLS0tLSstLS0tKy0tLS0tLS0KKyAgICAgIHwgICAgfHQg ICAgICAKKygxIHJvdykKKworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQor ICAgICAKKygxIHJvdykKKworCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBzMSBkYmcg ZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7Citz dGVwIHZhbDogU0VMRUNUIG15dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitz dGVwIHMxOiBCRUdJTjsKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0r LS0tLS0rLS0tLS0tLQorcHVibGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCBkcm9w OiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCBjcmVhdGU6IENSRUFURSBWQVJJQUJMRSBteXZh ciBBUyB0ZXh0Oworc3RlcCBkYmc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOworc2NoZW1hfG5hbWUgfHJlbW92ZWQKKy0tLS0tLSstLS0t LSstLS0tLS0tCitwdWJsaWN8bXl2YXJ8ZiAgICAgIAorKDEgcm93KQorCitzdGVwIHZhbDogU0VM RUNUIG15dmFyOworbXl2YXIKKy0tLS0tCisgICAgIAorKDEgcm93KQorCitzdGVwIHNyMTogUk9M TEJBQ0s7CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBs ZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RlcCBjcmVhdGUzOiBD UkVBVEUgVkFSSUFCTEUgbXl2YXIzIEFTIHRleHQ7CitzdGVwIGxldDM6IExFVCBteXZhcjMgPSAn dGVzdCc7CitzdGVwIHMzOiBCRUdJTjsKK3N0ZXAgY3JlYXRlNDogQ1JFQVRFIFZBUklBQkxFIG15 dmFyNCBBUyB0ZXh0Oworc3RlcCBsZXQ0OiBMRVQgbXl2YXI0ID0gJ3Rlc3QnOworc3RlcCBkcm9w NDogRFJPUCBWQVJJQUJMRSBteXZhcjQ7CitzdGVwIGRyb3AzOiBEUk9QIFZBUklBQkxFIG15dmFy MzsKK3N0ZXAgaW52YWwzOiBTRUxFQ1QgQ09VTlQoKikgPj0gMCBGUk9NIHBnX2ZvcmVpZ25fdGFi bGU7Cis/Y29sdW1uPworLS0tLS0tLS0KK3QgICAgICAgCisoMSByb3cpCisKK3N0ZXAgZGlzY2Fy ZDogRElTQ0FSRCBWQVJJQUJMRVM7CitzdGVwIHNjMzogQ09NTUlUOworc3RlcCBzdGF0ZTogU0VM RUNUIHZhcm5hbWUgRlJPTSBwZ192YXJpYWJsZTsKK3Zhcm5hbWUKKy0tLS0tLS0KK215dmFyICAK KygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hl ZHVsZSBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKaW5kZXggZTNjNjY5 YTI5YzcuLjhkZjkwMWZjNzljIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0 aW9uX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUK QEAgLTExNiwzICsxMTYsNCBAQCB0ZXN0OiBzZXJpYWxpemFibGUtcGFyYWxsZWwtMgogdGVzdDog c2VyaWFsaXphYmxlLXBhcmFsbGVsLTMKIHRlc3Q6IG1hdHZpZXctd3JpdGUtc2tldwogdGVzdDog bG9jay1ub3dhaXQKK3Rlc3Q6IHNlc3Npb24tdmFyaWFibGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5jODY0ZmVlNDAwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKQEAgLTAsMCArMSw1MCBAQAorIyBU ZXN0IHNlc3Npb24gdmFyaWFibGVzIG1lbW9yeSBjbGVhbnVwIGZvciBzaW52YWwKKworc2V0dXAK K3sKKyAgICBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK30KKwordGVhcmRvd24KK3sK KyAgICBEUk9QIFZBUklBQkxFIElGIEVYSVNUUyBteXZhcjsKK30KKworc2Vzc2lvbiBzMQorc3Rl cCBzMQkJeyBCRUdJTjsgfQorc3RlcCBsZXQJeyBMRVQgbXl2YXIgPSAndGVzdCc7IH0KK3N0ZXAg dmFsCXsgU0VMRUNUIG15dmFyOyB9CitzdGVwIGRiZwl7IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJl bW92ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOyB9CitzdGVwIHNyMQl7IFJPTExCQUNL OyB9CisKK3Nlc3Npb24gczIKK3N0ZXAgZHJvcAkJeyBEUk9QIFZBUklBQkxFIG15dmFyOyB9Citz dGVwIGNyZWF0ZQkJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsgfQorCitzZXNzaW9u IHMzCitzdGVwIHMzCQkJeyBCRUdJTjsgfQorc3RlcCBsZXQzCQl7IExFVCBteXZhcjMgPSAndGVz dCc7IH0KK3N0ZXAgY3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsgfQor c3RlcCBsZXQ0CQl7IExFVCBteXZhcjQgPSAndGVzdCc7IH0KK3N0ZXAgZHJvcDQJCXsgRFJPUCBW QVJJQUJMRSBteXZhcjQ7IH0KK3N0ZXAgaW52YWwzCQl7IFNFTEVDVCBDT1VOVCgqKSA+PSAwIEZS T00gcGdfZm9yZWlnbl90YWJsZTsgfQorc3RlcCBkaXNjYXJkCXsgRElTQ0FSRCBWQVJJQUJMRVM7 IH0KK3N0ZXAgc2MzCQl7IENPTU1JVDsgfQorc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBG Uk9NIHBnX3ZhcmlhYmxlOyB9CisKK3Nlc3Npb24gczQKK3N0ZXAgY3JlYXRlMwl7IENSRUFURSBW QVJJQUJMRSBteXZhcjMgQVMgdGV4dDsgfQorc3RlcCBkcm9wMwkJeyBEUk9QIFZBUklBQkxFIG15 dmFyMzsgfQorCisjIENvbmN1cnJlbnQgZHJvcCBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBs ZWFkIHRvIGFuIGVycm9yCitwZXJtdXRhdGlvbiBsZXQgdmFsIGRyb3AgdmFsCisjIFNhbWUsIGJ1 dCB3aXRoIGFuIGV4cGxpY2l0IHRyYW5zYWN0aW9uCitwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRy b3AgdmFsIHNyMQorIyBDb25jdXJyZW50IGRyb3AvY3JlYXRlIG9mIGEga25vd24gdmFyaWFibGUg c2hvdWxkIGxlYWQgdG8gZW1wdHkgdmFyaWFibGUKK3Blcm11dGF0aW9uIGxldCB2YWwgZGJnIGRy b3AgY3JlYXRlIGRiZyB2YWwKKyMgQ29uY3VycmVudCBkcm9wL2NyZWF0ZSBvZiBhIGtub3duIHZh cmlhYmxlIHNob3VsZCBsZWFkIHRvIGVtcHR5IHZhcmlhYmxlCisjIFdlIG5lZWQgYSB0cmFuc2Fj dGlvbiB0byBtYWtlIHN1cmUgdGhhdCB3ZSB3b24ndCBhY2NlcHQgaW52YWxpZGF0aW9uIHdoZW4K KyMgY2FsbGluZyB0aGUgZGJnIHN0ZXAgYWZ0ZXIgdGhlIGNvbmN1cnJlbnQgZHJvcAorcGVybXV0 YXRpb24gbGV0IHZhbCBzMSBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKKyMgdGVzdCBmb3Ig RElTQ0FSRCBBTEwgd2hlbiBhbGwgaW50ZXJuYWwgcXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3Rl cmVkCitwZXJtdXRhdGlvbiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3Az IGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCA3OWFjNDA3NjhmOC4uMjc4M2NhYTg0NDYgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBA IC0xNzI2LDMgKzE3MjYsMjIwIEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFy aWFibGVzKCk7CiAgICAgIDAKICgxIHJvdykKIAorLS0gZHJvcHBlZCB2YXJpYWJsZXMgc2hvdWxk IGJlIHJlbW92ZWQgZnJvbSBtZW1vcnkgYmVmb3JlIHRoZSBuZXh0IHVzYWdlCistLSBvZiBhbnkg c2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGUgbmV4dCB0cmFuc2FjdGlvbgorTEVUIHZhcjEgPSAnQWhv aic7CitTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBn X3Nlc3Npb25fdmFyaWFibGVzKCk7CisgbmFtZSB8ICAgICAgdHlwbmFtZSAgICAgIHwgY2FuX3Nl bGVjdCB8IGNhbl91cGRhdGUgCistLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgdCAgICAgICAgICB8 IHQKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hvdWxkIGJlIHplcm8KK1NF TEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9UIHJlbW92 ZWQ7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0gdGhlIGNvbnRlbnQg b2YgdGhlIHZhbHVlIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBhIHZhcmlhYmxlIGlzIGRyb3Bw ZWQKKy0tIGJ5IGFuIGFib3J0ZWQgdHJhbnNhY3Rpb24KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IHZhcmNoYXI7CitMRVQgdmFyMSA9ICdBaG9qJzsKK0JFR0lOOworRFJPUCBWQVJJQUJMRSB2YXIx OworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxOworRVJST1I6ICBjb2x1bW4gInZhcjEiIGRv ZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCB2YXIxOworICAgICAgICAgICAgICAgXgorUk9M TEJBQ0s7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyBB aG9qCisoMSByb3cpCisKKy0tIGFub3RoZXIgdGVzdAorQkVHSU47CitEUk9QIFZBUklBQkxFIHZh cjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwMDsKKy0tIHNo b3VsZCBiZSBvaywgcmVzdWx0IDEwMAorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAx MDAKKygxIHJvdykKKworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2ssIHJlc3VsdCAnQWhvaicK K1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyBBaG9qCisoMSByb3cpCisKK0RST1AgVkFS SUFCTEUgdmFyMTsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworIGNvdW50IAorLS0tLS0tLQor ICAgICAwCisoMSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7 CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEw MAorKDEgcm93KQorCisgIFNFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBk YXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwgdHlwbmFtZSB8IGNhbl9z ZWxlY3QgfCBjYW5fdXBkYXRlIAorLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgdmFyMSB8IGludGVnZXIgfCB0ICAgICAgICAgIHwgdAorKDEgcm93KQorCisgIERS T1AgVkFSSUFCTEUgdmFyMTsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291 bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworIGNv dW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyBpbnQ7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIx IAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCisgIFNFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5f c2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwg dHlwbmFtZSB8IGNhbl9zZWxlY3QgfCBjYW5fdXBkYXRlIAorLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdmFyMSB8IGludGVnZXIgfCB0ICAgICAgICAgIHwgdAor KDEgcm93KQorCisgIERST1AgVkFSSUFCTEUgdmFyMTsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6 ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5P VCByZW1vdmVkOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludDsKK0xFVCB2 YXIxID0gMTA7CitMRVQgdmFyMiA9IDA7CitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9Q IFZBUklBQkxFIHZhcjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIg c2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAor KDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFS SUFCTEUgdmFyMTsKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJv dykKKworICBST0xMQkFDSyBUTyBzMjsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNU IHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworQkVHSU47CisgIFNBVkVQ T0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0 b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAK Ky0tLS0tLQorICAgIDAKKygxIHJvdykKKworICBST0xMQkFDSyBUTyBzMTsKKyAgU0FWRVBPSU5U IHMyOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0t LS0KKyAgICAwCisoMSByb3cpCisKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qg dmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitCRUdJTjsKKyAgU0FWRVBP SU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRv dWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAor LS0tLS0tCisgICAgMAorKDEgcm93KQorCisgIFNBVkVQT0lOVCBzMjsKKyAgLS0gZm9yY2UgY2xl YW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIy OworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczE7Cisg IC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQor ICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCitDT01NSVQ7 CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCiso MSByb3cpCisKKy0tIHJlcGVhdGVkIGFib3J0ZWQgdHJhbnNhY3Rpb24KK0JFR0lOOyBEUk9QIFZB UklBQkxFIHZhcjE7IFJPTExCQUNLOworQkVHSU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJB Q0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBv aworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworRFJPUCBW QVJJQUJMRSB2YXIxLCB2YXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsCmluZGV4IDI5NTQ3NTlhYWVkLi5hNjI0YWI4YjY3ZiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMTIxNCwzICsxMjE0LDEyMyBAQCBESVND QVJEIFZBUklBQkxFUzsKIAogLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KIFNFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKy0tIGRyb3BwZWQgdmFyaWFibGVzIHNo b3VsZCBiZSByZW1vdmVkIGZyb20gbWVtb3J5IGJlZm9yZSB0aGUgbmV4dCB1c2FnZQorLS0gb2Yg YW55IHNlc3Npb24gdmFyaWFibGUgaW4gdGhlIG5leHQgdHJhbnNhY3Rpb24KKworTEVUIHZhcjEg PSAnQWhvaic7CitTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBG Uk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNo b3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygp IFdIRVJFIE5PVCByZW1vdmVkOworCistLSB0aGUgY29udGVudCBvZiB0aGUgdmFsdWUgc2hvdWxk IGJlIHByZXNlcnZlZCB3aGVuIGEgdmFyaWFibGUgaXMgZHJvcHBlZAorLS0gYnkgYW4gYWJvcnRl ZCB0cmFuc2FjdGlvbgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKK0xFVCB2YXIx ID0gJ0Fob2onOworQkVHSU47CitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBmYWls CitTRUxFQ1QgdmFyMTsKKworUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZh cjE7CisKKy0tIGFub3RoZXIgdGVzdAorQkVHSU47CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwMDsKKy0tIHNob3VsZCBiZSBv aywgcmVzdWx0IDEwMAorU0VMRUNUIHZhcjE7CitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaywg cmVzdWx0ICdBaG9qJworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0g c2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVz KCkgV0hFUkUgTk9UIHJlbW92ZWQ7CisKK0JFR0lOOworICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQ7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyAgU0VMRUNUIG5hbWUs IHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSB6ZXJv CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCBy ZW1vdmVkOworCitCRUdJTjsKKyAgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworICBMRVQg dmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgIFNFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5f c2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyAgRFJPUCBW QVJJQUJMRSB2YXIxOworQ09NTUlUOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50 KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50Owor TEVUIHZhcjEgPSAxMDsKK0xFVCB2YXIyID0gMDsKK0JFR0lOOworICBTQVZFUE9JTlQgczE7Cisg IERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5v dGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworICBST0xMQkFDSyBUTyBzMTsK KyAgU0FWRVBPSU5UIHMyOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFNFTEVDVCB2YXIyOwor ICBST0xMQkFDSyBUTyBzMjsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7 CisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0g Zm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNF TEVDVCB2YXIyOworICBST0xMQkFDSyBUTyBzMTsKKyAgU0FWRVBPSU5UIHMyOworICBEUk9QIFZB UklBQkxFIHZhcjE7CisgIFNFTEVDVCB2YXIyOworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2sK K1NFTEVDVCB2YXIxOworCitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxF IHZhcjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2 YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKworICBTQVZFUE9JTlQgczI7CisgIC0tIGZvcmNlIGNs ZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFy MjsKKyAgUk9MTEJBQ0sgVE8gczE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFu b3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKK0NPTU1JVDsKKy0tIHNob3Vs ZCBiZSBvaworU0VMRUNUIHZhcjE7CisKKy0tIHJlcGVhdGVkIGFib3J0ZWQgdHJhbnNhY3Rpb24K K0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworQkVHSU47IERST1AgVkFSSUFC TEUgdmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsK KworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2 YXIyOwotLSAKMi40OS4wCgo= --0000000000008f76b80632058aa3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250405-0004-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20250405-0004-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m942s3vj4 RnJvbSA2OTgyZTBiYjBkODU3MDU1YWNmNWJjYjQyYjJlNjAzYjBhMjAzMzM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTQ6MjAgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0 LzIxXSBESVNDQVJEIFZBUklBQkxFUwoKSW1wbGVtZW50YXRpb24gb2YgRElTQ0FSRCBWQVJJQUJM RVMgY29tbWFuZHMgYnkgcmVtb3ZpbmcgaGFzaCB0YWJsZSB3aXRoIHNlc3Npb24gdmFyaWFibGVz CmFuZCByZXNldHRpbmcgcmVsYXRlZCBtZW1vcnkgY29udGV4dC4KLS0tCiBkb2Mvc3JjL3NnbWwv cmVmL2Rpc2NhcmQuc2dtbCAgICAgICAgICAgICAgICAgfCAxMyArKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMjggKysrKysrKystCiBzcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKwogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dCAgICB8IDYzICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDM2ICsrKysrKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAxNTggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZGlz Y2FyZC5zZ21sCmluZGV4IGJmNDRjNTIzY2FjLi42MWI5NjdmOWM5YiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJk LnNnbWwKQEAgLTIxLDcgKzIxLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICA8cmVm c3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1ESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBTRVFVRU5D RVMgfCBURU1QT1JBUlkgfCBURU1QIH0KK0RJU0NBUkQgeyBBTEwgfCBQTEFOUyB8IFNFUVVFTkNF UyB8IFRFTVBPUkFSWSB8IFRFTVAgfCBWQVJJQUJMRVMgfQogPC9zeW5vcHNpcz4KICA8L3JlZnN5 bm9wc2lzZGl2PgogCkBAIC02Niw2ICs2NiwxNiBAQCBESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBT RVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIH0KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJs aXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+VkFSSUFC TEVTPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg UmVzZXRzIHRoZSB2YWx1ZSBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUK KyAgICAgIGlzIGxhdGVyIHJldXNlZCwgaXQgaXMgcmUtaW5pdGlhbGl6ZWQgdG8gPGxpdGVyYWw+ TlVMTDwvbGl0ZXJhbD4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+VEVNUE9S QVJZPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5URU1QPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlz dGl0ZW0+CkBAIC05Myw2ICsxMDMsNyBAQCBTRUxFQ1QgcGdfYWR2aXNvcnlfdW5sb2NrX2FsbCgp OwogRElTQ0FSRCBQTEFOUzsKIERJU0NBUkQgVEVNUDsKIERJU0NBUkQgU0VRVUVOQ0VTOworRElT Q0FSRCBWQVJJQUJMRVM7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KICAgICA8L2xpc3RpdGVt PgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9k aXNjYXJkLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMKaW5kZXggODEzMzlhNzVh NTIuLjU5MDRhNmM0OTE3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJk LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCkBAIC0xOCw2ICsxOCw3IEBA CiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kaXNjYXJk LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgogI2luY2x1 ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUgInV0aWxzL3BvcnRhbC5oIgpAQCAtNDgsNiArNDks MTAgQEAgRGlzY2FyZENvbW1hbmQoRGlzY2FyZFN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkK IAkJCVJlc2V0VGVtcFRhYmxlTmFtZXNwYWNlKCk7CiAJCQlicmVhazsKIAorCQljYXNlIERJU0NB UkRfVkFSSUFCTEVTOgorCQkJUmVzZXRTZXNzaW9uVmFyaWFibGVzKCk7CisJCQlicmVhazsKKwog CQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBESVNDQVJEIHRhcmdldDog JWQiLCBzdG10LT50YXJnZXQpOwogCX0KQEAgLTc1LDQgKzgwLDUgQEAgRGlzY2FyZEFsbChib29s IGlzVG9wTGV2ZWwpCiAJUmVzZXRQbGFuQ2FjaGUoKTsKIAlSZXNldFRlbXBUYWJsZU5hbWVzcGFj ZSgpOwogCVJlc2V0U2VxdWVuY2VDYWNoZXMoKTsKKwlSZXNldFNlc3Npb25WYXJpYWJsZXMoKTsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCBmYTE2ZjQ3MDcy ZS4uZTFjODY5NjY5OTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMK QEAgLTk0LDcgKzk0LDEzIEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywg aW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAKIAllbG9nKERFQlVHMSwgInBnX3Zhcmlh YmxlX2NhY2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKIAotCUFzc2Vy dChzZXNzaW9udmFycyk7CisJLyoKKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgb2Ygc2Vzc2lv biB2YXJpYWJsZXMgYmVpbmcgaW5pdGlhbGl6ZWQsIGV2ZW4gd2hlbgorCSAqIHJlY2VpdmluZyBh biBpbnZhbGlkYXRpb24gY2FsbGJhY2ssIGFzIERJU0NBUkQgWyBBTEwgfCBWQVJJQUJMRVMgXQor CSAqIGRlc3Ryb3lzIHRoZSBoYXNoIHRhYmxlIGVudGlyZWx5LgorCSAqLworCWlmICghc2Vzc2lv bnZhcnMpCisJCXJldHVybjsKIAogCS8qCiAJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBub3Qgc3Bl Y2lmaWVkLCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQpAQCAtNjE5LDMgKzYyNSwy MyBAQCBwZ19zZXNzaW9uX3ZhcmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmV0dXJuIChE YXR1bSkgMDsKIH0KKworLyoKKyAqIEZhc3QgZHJvcCBvZiB0aGUgY29tcGxldGUgY29udGVudCBv ZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZXMgaGFzaCB0YWJsZSwgYW5kCisgKiBjbGVhbnVwIG9mIGFu eSBsaXN0IHRoYXQgd291bGRuJ3QgYmUgcmVsZXZhbnQgYW55bW9yZS4KKyAqIFRoaXMgaXMgdXNl ZCBieSB0aGUgRElTQ0FSRCBWQVJJQUJMRVMgKGFuZCBESVNDQVJEIEFMTCkgY29tbWFuZC4KKyAq Lwordm9pZAorUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpCit7CisJLyogZGVzdHJveSBoYXNo IHRhYmxlIGFuZCByZXNldCByZWxhdGVkIG1lbW9yeSBjb250ZXh0ICovCisJaWYgKHNlc3Npb252 YXJzKQorCXsKKwkJaGFzaF9kZXN0cm95KHNlc3Npb252YXJzKTsKKwkJc2Vzc2lvbnZhcnMgPSBO VUxMOworCX0KKworCS8qIHJlbGVhc2UgbWVtb3J5IGFsbG9jYXRlZCBieSBzZXNzaW9uIHZhcmlh YmxlcyAqLworCWlmIChTVmFyaWFibGVNZW1vcnlDb250ZXh0ICE9IE5VTEwpCisJCU1lbW9yeUNv bnRleHRSZXNldChTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDlk MTBmODEyMTIwLi5mMmQzZDlhYjg1MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0yMDg0LDcgKzIwODQsMTMg QEAgRGlzY2FyZFN0bXQ6CiAJCQkJCW4tPnRhcmdldCA9IERJU0NBUkRfU0VRVUVOQ0VTOwogCQkJ CQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBESVNDQVJEIFZBUklBQkxFUworCQkJCXsK KwkJCQkJRGlzY2FyZFN0bXQgKm4gPSBtYWtlTm9kZShEaXNjYXJkU3RtdCk7CiAKKwkJCQkJbi0+ dGFyZ2V0ID0gRElTQ0FSRF9WQVJJQUJMRVM7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9 CiAJCTsKIAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9i YWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IDdhNTA4YTM2NDRmLi42ZTRkMjMxMGY1YyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNv cC91dGlsaXR5LmMKQEAgLTI5NjIsNiArMjk2Miw5IEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAq cGFyc2V0cmVlKQogCQkJCWNhc2UgRElTQ0FSRF9TRVFVRU5DRVM6CiAJCQkJCXRhZyA9IENNRFRB R19ESVNDQVJEX1NFUVVFTkNFUzsKIAkJCQkJYnJlYWs7CisJCQkJY2FzZSBESVNDQVJEX1ZBUklB QkxFUzoKKwkJCQkJdGFnID0gQ01EVEFHX0RJU0NBUkRfVkFSSUFCTEVTOworCQkJCQlicmVhazsK IAkJCQlkZWZhdWx0OgogCQkJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJCX0KZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuaW4uYwppbmRleCA3OGIxMzBjMDRiMC4uOWE2ZDMyNDhmMWMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMKQEAgLTQxNDYsNyArNDE0Niw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCiAvKiBESVNDQVJEICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRElTQ0FSRCIp KQotCQlDT01QTEVURV9XSVRIKCJBTEwiLCAiUExBTlMiLCAiU0VRVUVOQ0VTIiwgIlRFTVAiKTsK KwkJQ09NUExFVEVfV0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNFUyIsICJURU1QIiwgIlZB UklBQkxFUyIpOwogCiAvKiBETyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRPIikpCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggMjM5MWI5YWQ0NDMuLmE4Y2E0M2M4 N2FmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgK KysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0yNyw0ICsy Nyw2IEBAIGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICpp c051bGwpOwogZXh0ZXJuIHZvaWQgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBM ZXRTdG10ICpzdG10LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKIAkJCQkJCSAgIFF1ZXJ5RW52aXJv bm1lbnQgKnF1ZXJ5RW52LCBRdWVyeUNvbXBsZXRpb24gKnFjKTsKIAorZXh0ZXJuIHZvaWQgUmVz ZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpOworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApp bmRleCA4Zjg3NGEwOGQyOS4uMzIxMjM1YzY0OTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAg LTQwNTYsNiArNDA1Niw3IEBAIHR5cGVkZWYgZW51bSBEaXNjYXJkTW9kZQogCURJU0NBUkRfUExB TlMsCiAJRElTQ0FSRF9TRVFVRU5DRVMsCiAJRElTQ0FSRF9URU1QLAorCURJU0NBUkRfVkFSSUFC TEVTLAogfSBEaXNjYXJkTW9kZTsKIAogdHlwZWRlZiBzdHJ1Y3QgRGlzY2FyZFN0bXQKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9j bWR0YWdsaXN0LmgKaW5kZXggMjIwODJjMzAwMDguLmJlZjBhYzI1MzMxIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRh Z2xpc3QuaApAQCAtMTM1LDYgKzEzNSw3IEBAIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9BTEws ICJESVNDQVJEIEFMTCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RJ U0NBUkRfUExBTlMsICJESVNDQVJEIFBMQU5TIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NN RFRBRyhDTURUQUdfRElTQ0FSRF9TRVFVRU5DRVMsICJESVNDQVJEIFNFUVVFTkNFUyIsIGZhbHNl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfVEVNUCwgIkRJU0NBUkQg VEVNUCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfVkFS SUFCTEVTLCAiRElTQ0FSRCBWQVJJQUJMRVMiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01E VEFHKENNRFRBR19ETywgIkRPIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfRFJPUF9BQ0NFU1NfTUVUSE9ELCAiRFJPUCBBQ0NFU1MgTUVUSE9EIiwgdHJ1ZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0FHR1JFR0FURSwgIkRST1AgQUdHUkVHQVRF IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dAppbmRleCBmMjI0NjcxODZlMy4uNzlhYzQwNzY4ZjggMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0x NjYzLDMgKzE2NjMsNjYgQEAgRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7CiBE Uk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiOwogRFJPUCBTQ0hFTUEg OiJEQk5BTUUiOwogUkVTRVQgc2VhcmNoX3BhdGg7CistLSBtZW1vcnkgY2xlYW5pbmcgYnkgRElT Q0FSRCBjb21tYW5kCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVUIHZhcjEg PSAnSGVsbG8nOworU0VMRUNUIHZhcjE7CisgdmFyMSAgCistLS0tLS0tCisgSGVsbG8KKygxIHJv dykKKworRElTQ0FSRCBBTEw7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgCisoMSBy b3cpCisKK0xFVCB2YXIxID0gJ0FIT0onOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQor IEFIT0oKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7CitTRUxFQ1QgdmFyMTsKKyB2YXIx IAorLS0tLS0tCisgCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIGluaXRpYWwg dGVzdCBvZiBkZWJ1ZyBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmdW5jdGlvbgorLS0gc2hvdWxkIGJl IHplcm8gbm93CitESVNDQVJEIFZBUklBQkxFUzsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKKy0tIHNob3VsZCBiZSB6ZXJvIHN0aWxs CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAor LS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0xFVCB2YXIxID0gJ0FIT0onOworU0VMRUNUIG5h bWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3Zhcmlh YmxlcygpOworIG5hbWUgfCAgICAgIHR5cG5hbWUgICAgICB8IGNhbl9zZWxlY3QgfCBjYW5fdXBk YXRlIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IHQgICAgICAgICAgfCB0CisoMSByb3cpCisK K0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KK1NFTEVDVCBjb3Vu dCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAg IDAKKygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs CmluZGV4IGU3MjM2MGQ1MjU0Li4yOTU0NzU5YWFlZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMTE3OCwzICsxMTc4LDM5IEBAIERST1AgVkFSSUFC TEUgOiJEQk5BTUUiLjoiREJOQU1FIi46IkRCTkFNRSI7CiBEUk9QIFNDSEVNQSA6IkRCTkFNRSI7 CiAKIFJFU0VUIHNlYXJjaF9wYXRoOworCistLSBtZW1vcnkgY2xlYW5pbmcgYnkgRElTQ0FSRCBj b21tYW5kCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVUIHZhcjEgPSAnSGVs bG8nOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgQUxMOworU0VMRUNUIHZhcjE7CisKK0xFVCB2 YXIxID0gJ0FIT0onOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworU0VMRUNU IHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gaW5pdGlhbCB0ZXN0IG9mIGRlYnVn IHBnX3Nlc3Npb25fdmFyaWFibGVzIGZ1bmN0aW9uCistLSBzaG91bGQgYmUgemVybyBub3cKK0RJ U0NBUkQgVkFSSUFCTEVTOworCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3Zhcmlh YmxlcygpOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworCistLSBzaG91bGQg YmUgemVybyBzdGlsbAorU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMo KTsKKworTEVUIHZhcjEgPSAnQUhPSic7CisKK1NFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2Vs ZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworRElTQ0FSRCBW QVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSB6ZXJvIGFnYWluCitTRUxFQ1QgY291bnQoKikgRlJP TSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwotLSAKMi40OS4wCgo= --0000000000008f76b80632058aa3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250405-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20250405-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m942s3vv5 RnJvbSAzOWM0NGZhM2Q1MGQxYjJmNjM1ZTJkZTkyZDc0MTcwYjQyMzJkYTlhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDAz LzIxXSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgIDggKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IGQy ODkxYTFkY2I3Li5mYTE2ZjQ3MDcyZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwpAQCAtNTI3LDMgKzUyNyw5NSBAQCBFeGVjdXRlTGV0U3RtdChQYXJzZVN0YXRlICpw c3RhdGUsCiAKIAlQb3BBY3RpdmVTbmFwc2hvdCgpOwogfQorCisvKgorICogcGdfc2Vzc2lvbl92 YXJpYWJsZXMgLSBkZXNpZ25lZCBmb3IgdGVzdGluZworICoKKyAqIFRoaXMgaXMgYSBmdW5jdGlv biBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQgcmV0dXJucyB0aGUKKyAq IGNvbnRlbnQgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXMtaXMsIGFuZCBjYW4gdGhlcmVmb3JlIGRp c3BsYXkgZGF0YSBhYm91dAorICogc2Vzc2lvbiB2YXJpYWJsZXMgdGhhdCB3ZXJlIGRyb3BwZWQs IGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndAorICogcHJvY2VzcyB0aGUgc2hhcmVk IGludmFsaWRhdGlvbnMgeWV0LgorICovCitEYXR1bQorcGdfc2Vzc2lvbl92YXJpYWJsZXMoUEdf RlVOQ1RJT05fQVJHUykKK3sKKyNkZWZpbmUgTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFMg OAorCisJSW5pdE1hdGVyaWFsaXplZFNSRihmY2luZm8sIDApOworCisJaWYgKHNlc3Npb252YXJz KQorCXsKKwkJUmV0dXJuU2V0SW5mbyAqcnNpbmZvID0gKFJldHVyblNldEluZm8gKikgZmNpbmZv LT5yZXN1bHRpbmZvOworCQlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOworCQlTVmFyaWFibGUJc3Zh cjsKKworCQloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKworCQl3aGlsZSAo KHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykpICE9IE5VTEwpCisJ CXsKKwkJCURhdHVtCQl2YWx1ZXNbTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJ Ym9vbAkJbnVsbHNbTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJSGVhcFR1cGxl CXRwOworCQkJYm9vbAkJdmFyX2lzX3ZhbGlkID0gZmFsc2U7CisKKwkJCW1lbXNldCh2YWx1ZXMs IDAsIHNpemVvZih2YWx1ZXMpKTsKKwkJCW1lbXNldChudWxscywgMCwgc2l6ZW9mKG51bGxzKSk7 CisKKwkJCXZhbHVlc1swXSA9IE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpOworCQkJdmFs dWVzWzNdID0gT2JqZWN0SWRHZXREYXR1bShzdmFyLT50eXBpZCk7CisKKwkJCS8qCisJCQkgKiBJ dCBpcyBwb3NzaWJsZSB0aGF0IHRoZSB2YXJpYWJsZSBoYXMgYmVlbiBkcm9wcGVkIGZyb20gdGhl CisJCQkgKiBjYXRhbG9nLCBidXQgbm90IHlldCBwdXJnZWQgZnJvbSB0aGUgaGFzaCB0YWJsZS4K KwkJCSAqLworCQkJdHAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0 RGF0dW0oc3Zhci0+dmFyaWQpKTsKKworCQkJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHApKQorCQkJ eworCQkJCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRT VFJVQ1QodHApOworCisJCQkJLyoKKwkJCQkgKiBJdCBpcyBhbHNvIHBvc3NpYmxlIHRoYXQgYSB2 YXJpYWJsZSBoYXMgYmVlbiBkcm9wcGVkIGFuZAorCQkJCSAqIHNvbWVvbmUgY3JlYXRlZCBhIG5l dyB2YXJpYWJsZSB3aXRoIHRoZSBzYW1lIG9iamVjdCBJRC4gIFVzZQorCQkJCSAqIHRoZSBjYXRh bG9nIGluZm9ybWF0aW9uIG9ubHkgaWYgdGhhdCBpcyBub3QgdGhlIGNhc2UuCisJCQkJICovCisJ CQkJaWYgKHN2YXItPmNyZWF0ZV9sc24gPT0gdmFyZm9ybS0+dmFyY3JlYXRlX2xzbikKKwkJCQl7 CisJCQkJCXZhbHVlc1sxXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oCisJCQkJCQkJCQkJCQkJZ2V0 X25hbWVzcGFjZV9uYW1lKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSkpOworCisJCQkJCXZhbHVlc1sy XSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKSk7CisJCQkJ CXZhbHVlc1s0XSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oZm9ybWF0X3R5cGVfYmUoc3Zhci0+dHlw aWQpKTsKKwkJCQkJdmFsdWVzWzVdID0gQm9vbEdldERhdHVtKGZhbHNlKTsKKworCQkJCQl2YWx1 ZXNbNl0gPSBCb29sR2V0RGF0dW0oCisJCQkJCQkJCQkJCSBvYmplY3RfYWNsY2hlY2soVmFyaWFi bGVSZWxhdGlvbklkLCBzdmFyLT52YXJpZCwKKwkJCQkJCQkJCQkJCQkJCSBHZXRVc2VySWQoKSwg QUNMX1NFTEVDVCkgPT0gQUNMQ0hFQ0tfT0spOworCisJCQkJCXZhbHVlc1s3XSA9IEJvb2xHZXRE YXR1bSgKKwkJCQkJCQkJCQkJIG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHN2 YXItPnZhcmlkLAorCQkJCQkJCQkJCQkJCQkJIEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKSA9PSBB Q0xDSEVDS19PSyk7CisKKwkJCQkJdmFyX2lzX3ZhbGlkID0gdHJ1ZTsKKwkJCQl9CisKKwkJCQlS ZWxlYXNlU3lzQ2FjaGUodHApOworCQkJfQorCisJCQkvKiBpZiB0aGVyZSBpcyBubyBtYXRjaGlu ZyBjYXRhbG9nIGVudHJ5LCByZXR1cm4gbnVsbCB2YWx1ZXMgKi8KKwkJCWlmICghdmFyX2lzX3Zh bGlkKQorCQkJeworCQkJCW51bGxzWzFdID0gdHJ1ZTsKKwkJCQludWxsc1syXSA9IHRydWU7CisJ CQkJbnVsbHNbNF0gPSB0cnVlOworCQkJCXZhbHVlc1s1XSA9IEJvb2xHZXREYXR1bSh0cnVlKTsK KwkJCQludWxsc1s2XSA9IHRydWU7CisJCQkJbnVsbHNbN10gPSB0cnVlOworCQkJfQorCisJCQl0 dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5zZXREZXNjLCB2 YWx1ZXMsIG51bGxzKTsKKwkJfQorCX0KKworCXJldHVybiAoRGF0dW0pIDA7Cit9CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdAppbmRleCBlMjdhMTI3YmE1OS4uMDZlZDVhM2RlNjMgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdApAQCAtMTI1NjcsNCArMTI1NjcsMTIgQEAKICAgcHJvYXJnbmFtZXMgPT4g J3twaWQsaW9faWQsaW9fZ2VuZXJhdGlvbixzdGF0ZSxvcGVyYXRpb24sb2ZmLGxlbmd0aCx0YXJn ZXQsaGFuZGxlX2RhdGFfbGVuLHJhd19yZXN1bHQscmVzdWx0LHRhcmdldF9kZXNjLGZfc3luYyxm X2xvY2FsbWVtLGZfYnVmZmVyZWR9JywKICAgcHJvc3JjID0+ICdwZ19nZXRfYWlvcycgfSwKIAor IyBTZXNzaW9uIHZhcmlhYmxlcyBzdXBwb3J0Cit7IG9pZCA9PiAnODQ4OCcsIGRlc2NyID0+ICds aXN0IG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMnLAorICBwcm9uYW1lID0+ICdwZ19zZXNzaW9u X3ZhcmlhYmxlcycsIHByb3Jvd3MgPT4gJzEwMDAnLCBwcm9yZXRzZXQgPT4gJ3QnLAorICBwcm92 b2xhdGlsZSA9PiAncycsIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAncmVjb3Jk JywKKyAgcHJvYXJndHlwZXMgPT4gJycsIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLHRleHQsdGV4 dCxvaWQsdGV4dCxib29sLGJvb2wsYm9vbH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8s byxvLG8sb30nLAorICBwcm9hcmduYW1lcyA9PiAne3ZhcmlkLHNjaGVtYSxuYW1lLHR5cGlkLHR5 cG5hbWUscmVtb3ZlZCxjYW5fc2VsZWN0LGNhbl91cGRhdGV9JywKKyAgcHJvc3JjID0+ICdwZ19z ZXNzaW9uX3ZhcmlhYmxlcycgfSwKIF0KLS0gCjIuNDkuMAoK --0000000000008f76b80632058aa3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250405-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Disposition: attachment; filename="v20250405-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m942s3w66 RnJvbSBiMWFjM2NkNTBmZjZhOGI1NjVjZmE2ZGQwYjcyYTVjMGVlMjM5NmZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAwODoyOToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MjFdIFN0b3JhZ2UgZm9yIHNlc3Npb24gdmFyaWFibGVzIGFuZCBTUUwgaW50ZXJmYWNlCgpTZXNz aW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGEgZGVkaWNhdGVk IGhhc2ggdGFibGUuClRoZXkgYXJlIHNldCBieSB0aGUgTEVUIGNvbW1hbmQgYW5kIHJlYWQgYnkg dGhlIFNFTEVDVCBjb21tYW5kLgpUaGUgYWNjZXNzIHJpZ2h0cyBzaG91bGQgYmUgY2hlY2tlZC4K ClRoZSBpZGVudGlmaWVycyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgYWx3YXlzIGJlIHNo YWRvd2VkIGJ5IHBvc3NpYmxlCmNvbHVtbiBpZGVudGlmaWVyczogd2UgZG9uJ3Qgd2FudCB0byBi cmVhayBhbiBhcHBsaWNhdGlvbiBieSBjcmVhdGluZyBzb21lCmJhZGx5IG5hbWVkIHNlc3Npb24g dmFyaWFibGUuCgpUaGUgbGltaXRzIG9mIHRoaXMgcGF0Y2ggKHNvbHZlZCBieSBvdGhlciBwYXRj aGVzKToKCi0gc2Vzc2lvbiB2YXJpYWJsZXMgYmxvY2sgcGFyYWxsZWwgZXhlY3V0aW9uCi0gc2Vz c2lvbiB2YXJpYWJsZXMgYmxvY2tzIHNpbXBsZSBleHByZXNzaW9uIGV2YWx1YXRpb24gKGluIHBs cGdzcWwpCi0gU1FMIGZ1bmN0aW9ucyB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgaW5s aW5lZAotIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgKHVzYWdlIG9mIGRpcmVjdCBh Y2Nlc3MgdG8gZXhwcmVzcyBleGVjdXRvcikKLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3Vw cG9ydGVkICh1c2FnZSBvZiBkaXJlY3QgYWNjZXNzIHRvIGV4cHJlc3MgZXhlY3V0b3IpCi0gbWVt b3J5IHVzZWQgYnkgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVsZWFzZWQKCklt cGxlbWVudGF0aW9ucyBvZiBFWFBMQUlOIExFVCBhbmQgUFJFUEFSRSBMRVQgc3RhdGVtZW50cwph cmUgaW4gc2VwYXJhdGUgcGF0Y2hlcyAoZm9yIGJldHRlciByZWFkYWJpbGl0eSkKLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsKIGRvYy9z cmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNjEgKwogZG9jL3Ny Yy9zZ21sL2Z1bmMuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogZG9jL3Ny Yy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgNSArLQogZG9jL3Ny Yy9zZ21sL3BhcmFsbGVsLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgNiArCiBkb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsKIGRvYy9zcmMv c2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8ICAgIDEgKwogZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sICAgICAgICAgIHwgICAgMSArCiBkb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgICA1ICstCiBkb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCAgICAgICAgICAgfCAgICAxICsKIGRvYy9zcmMvc2dt bC9yZWYvbGV0LnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICAgOTYgKysKIGRvYy9zcmMvc2dt bC9yZWZlcmVuY2Uuc2dtbCAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQv Y2F0YWxvZy9kZXBlbmRlbmN5LmMgICAgICAgICAgICAgIHwgICAgNSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL25hbWVzcGFjZS5jICAgICAgICAgICAgICAgfCAgMjg5ICsrKysKIHNyYy9iYWNrZW5k L2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAgIDIgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3ByZXBhcmUuYyAgICAgICAgICAgICAgICB8ICAgMTAgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDUyOSArKysrKysrCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICAgMzIgKwogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgICA2NiArCiBzcmMvYmFja2VuZC9l eGVjdXRvci9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMgICAgICB8ICAxNzIgKysrCiBzcmMvYmFja2VuZC9u b2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgIDEwICsKIHNyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL3BsYW5uZXIuYyAgICAgICAgICB8ICAgMzYgKwogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vc2V0cmVmcy5jICAgICAgICAgIHwgIDE1NiArKy0KIHNyYy9iYWNrZW5kL29w dGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jICAgICB8ICAgIDMgKwogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3V0aWwvY2xhdXNlcy5jICAgICAgICAgIHwgICAzMyArLQogc3JjL2JhY2tlbmQvcGFy c2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgIDI3MiArKystCiBzcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgIDM5ICstCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfYWdnLmMgICAgICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICAyMjMgKystCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9tZXJnZS5jICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvdGNv cC9kZXN0LmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArCiBzcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsKIHNyYy9iYWNrZW5kL3V0aWxz L2FkdC9ydWxldXRpbHMuYyAgICAgICAgICAgICB8ICAgNDYgKwogc3JjL2JhY2tlbmQvdXRpbHMv Y2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgICA0MSArLQogc3JjL2JhY2tlbmQvdXRpbHMv Zm1nci9mbWdyLmMgICAgICAgICAgICAgICAgIHwgICAxMCArLQogc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgICAxMiArLQogc3JjL2luY2x1ZGUvY2F0YWxv Zy9uYW1lc3BhY2UuaCAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgMzAgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3Iv c3ZhcmlhYmxlUmVjZWl2ZXIuaCAgICAgIHwgICAyMiArCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVj bm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDE0ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMTcgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5v ZGVzLmggICAgICAgICAgICAgICAgIHwgICAxNCArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9k ZXMuaCAgICAgICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rl cy5oICAgICAgICAgICAgICAgICB8ICAgMTQgKwogc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5t YWluLmggICAgICAgICAgICAgIHwgICAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0Lmgg ICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2Rl LmggICAgICAgICAgICAgICB8ICAgIDMgKwogc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0Lmgg ICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS90Y29wL2Rlc3QuaCAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAg ICAgICAgICAgICAgICB8ICAgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzLm91dCAgICB8IDEyMzIgKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA4ODMgKysrKysrKysrKysrCiBzcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgICA1ICsKIDU5IGZpbGVz IGNoYW5nZWQsIDQ0NjcgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAppbmRleCAyYmM4ZGUzZTI4Yi4uNWRlYThjYTUzMWIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC05 ODMxLDYgKzk4MzEsMTkgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlv biBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT48 L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+dmFyY3JlYXRlX2xzbjwvc3RydWN0ZmllbGQ+IDx0eXBlPnBnX2xzbjwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIExTTiBvZiB0aGUgdHJh bnNhY3Rpb24gd2hlcmUgdGhlIHZhcmlhYmxlIHdhcyBjcmVhdGVkLgorICAgICAgIDxzdHJ1Y3Rm aWVsZD52YXJjcmVhdGVfbHNuPC9zdHJ1Y3RmaWVsZD4gYW5kCisgICAgICAgPHN0cnVjdGZpZWxk Pm9pZDwvc3RydWN0ZmllbGQ+IHRvZ2V0aGVyIGZvcm0gdGhlIGFsbC10aW1lIHVuaXF1ZQorICAg ICAgIGlkZW50aWZpZXIgKDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiBhbG9uZSBpcyBu b3QgZW5vdWdoLCBzaW5jZQorICAgICAgIG9iamVjdCBpZGVudGlmaWVycyBjYW4gZ2V0IHJldXNl ZCkuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnZhcm5hbWU8L3N0cnVjdGZpZWxkPiA8 dHlwZT5uYW1lPC90eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9j L3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IDZhNDkzYzJmNTYxLi5mY2U1ZTcyYmJmNiAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApA QCAtNTM4OCw2ICs1Mzg4LDY3IEBAIEVYUExBSU4gU0VMRUNUIGNvdW50KCopIEZST00gbWVhc3Vy ZW1lbnQgV0hFUkUgbG9nZGF0ZSAmZ3Q7PSBEQVRFICcyMDA4LTAxLTAxJzsKICAgICBUaGUgc2Vz c2lvbiB2YXJpYWJsZSBob2xkcyB2YWx1ZSBpbiBzZXNzaW9uIG1lbW9yeS4gIFRoaXMgdmFsdWUg aXMgcHJpdmF0ZQogICAgIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQgd2hlbiB0aGUg c2Vzc2lvbiBlbmRzLgogICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgdmFsdWUgb2Yg YSBzZXNzaW9uIHZhcmlhYmxlIGlzIHNldCB3aXRoIHRoZSBTUUwgc3RhdGVtZW50CisgICAgPGNv bW1hbmQ+TEVUPC9jb21tYW5kPi4gIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgY2Fu IGJlIHJldHJpZXZlZAorICAgIHdpdGggdGhlIFNRTCBzdGF0ZW1lbnQgPGNvbW1hbmQ+U0VMRUNU PC9jb21tYW5kPi4KKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGRh dGU7CitMRVQgdmFyMSA9IGN1cnJlbnRfZGF0ZTsKK1NFTEVDVCB2YXIxOworPC9wcm9ncmFtbGlz dGluZz4KKworICAgIG9yCisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSBwdWJs aWMuY3VycmVudF91c2VyX2lkIEFTIGludGVnZXI7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUg cHVibGljLmN1cnJlbnRfdXNlcl9pZCBUTyBQVUJMSUM7CitMRVQgY3VycmVudF91c2VyX2lkID0g KFNFTEVDVCBpZCBGUk9NIHVzZXJzIFdIRVJFIHVzZW5hbWUgPSBzZXNzaW9uX3VzZXIpOworU0VM RUNUIGN1cnJlbnRfdXNlcl9pZDsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICA8L3BhcmE+CisKKyAg IDxwYXJhPgorICAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8g dGhlIGN1cnJlbnQgc2Vzc2lvbi4gUmV0cmlldmluZworICAgIGEgdmFyaWFibGUncyB2YWx1ZSBy ZXR1cm5zIGEgPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4sIHVubGVzcyBpdHMgdmFsdWUgaGFzCisg ICAgYmVlbiBzZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB1c2lu ZyB0aGUKKyAgICA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuICBTZXNzaW9uIHZhcmlh YmxlcyBhcmUgbm90IHRyYW5zYWN0aW9uYWw6CisgICAgYW55IGNoYW5nZXMgbWFkZSB0byB0aGUg dmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGluIGEgdHJhbnNhY3Rpb24gd29uJ3QKKyAgICBi ZSB1bmRvbmUgaWYgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNrIChqdXN0IGxpa2UgdmFy aWFibGVzIGluCisgICAgcHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMg dGhlbXNlbHZlcyBhcmUgcGVyc2lzdGVudCwgYnV0CisgICAgdGhlaXIgdmFsdWVzIGFyZSBuZWl0 aGVyIHBlcnNpc3RlbnQgbm9yIHNoYXJlZCAobGlrZSB0aGUgY29udGVudCBvZgorICAgIHRlbXBv cmFyeSB0YWJsZXMpLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBJbnNpZGUgYSBxdWVy eSBvciBhbiBleHByZXNzaW9uLCBhIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlCisgICAgPHF1b3Rl PnNoYWRvd2VkPC9xdW90ZT4gYnkgYSBjb2x1bW4gd2l0aCB0aGUgc2FtZSBuYW1lLiAgU2ltaWxh cmx5LCB0aGUKKyAgICBuYW1lIG9mIGEgZnVuY3Rpb24gb3IgcHJvY2VkdXJlIGFyZ3VtZW50IG9y IGEgUEwvcGdTUUwgdmFyaWFibGUgKHNlZQorICAgIDx4cmVmIGxpbmtlbmQ9InBscGdzcWwtZGVj bGFyYXRpb25zIi8+KSBjYW4gc2hhZG93IGEgc2Vzc2lvbiB2YXJpYWJsZQorICAgIGluIHRoZSBy b3V0aW5lJ3MgYm9keS4gIFN1Y2ggY29sbGlzaW9ucyBvZiBpZGVudGlmaWVycyBjYW4gYmUgcmVz b2x2ZWQKKyAgICBieSB1c2luZyBxdWFsaWZpZWQgaWRlbnRpZmllcnM6IFNlc3Npb24gdmFyaWFi bGVzIGNhbiBiZSBxdWFsaWZpZWQgd2l0aAorICAgIHRoZSBzY2hlbWEgbmFtZSwgY29sdW1ucyBj YW4gdXNlIHRhYmxlIGFsaWFzZXMsIHJvdXRpbmUgdmFyaWFibGVzIGNhbiB1c2UKKyAgICBibG9j ayBsYWJlbHMsIGFuZCByb3V0aW5lIGFyZ3VtZW50cyBjYW4gdXNlIHRoZSByb3V0aW5lIG5hbWUu Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVkFSSUFCTEUgbmFtZSBBUyB0ZXh0OworTEVUIG5h bWUgPSAnSm9obic7CisKK0NSRUFURSBUQUJMRSBmb28obmFtZSB0ZXh0KTsKK0lOU0VSVCBJTlRP IGZvbyBWQUxVRVMoJ0FsaWNlJyk7CisKKy0tIHZhcmlhYmxlIG5hbWUgaXMgc2hhZG93ZWQKK1NF TEVDVCBuYW1lIEZST00gZm9vOworPC9wcm9ncmFtbGlzdGluZz4KKworICAgd2hpY2ggcmV0dXJu czoKKworPHByb2dyYW1saXN0aW5nPgorIG5hbWUKKy0tLS0tLS0KKyBBbGljZQorPC9wcm9ncmFt bGlzdGluZz4KKyAgIDwvcGFyYT4KICAgPC9zZWN0MT4KIAogIDxzZWN0MSBpZD0iZGRsLW90aGVy cyI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1 bmMuc2dtbAppbmRleCA5ODhhNzcyZTgyZC4uZmI5OWFhNzVkNTYgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtMjU4NDcs OCArMjU4NDcsOCBAQCBTRUxFQ1QgaGFzX2Z1bmN0aW9uX3ByaXZpbGVnZSgnam9ldXNlcicsICdt eWZ1bmMoaW50LCB0ZXh0KScsICdleGVjdXRlJyk7CiAgICAgICAgICd0JyBmb3IgPGxpdGVyYWw+ VEFCTEVTUEFDRTwvbGl0ZXJhbD4sCiAgICAgICAgICdGJyBmb3IgPGxpdGVyYWw+Rk9SRUlHTiBE QVRBIFdSQVBQRVI8L2xpdGVyYWw+LAogICAgICAgICAnUycgZm9yIDxsaXRlcmFsPkZPUkVJR04g U0VSVkVSPC9saXRlcmFsPiwKLSAgICAgICAgb3IKLSAgICAgICAgJ1QnIGZvciA8bGl0ZXJhbD5U WVBFPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5ET01BSU48L2xpdGVyYWw+LgorICAgICAgICAnVCcg Zm9yIDxsaXRlcmFsPlRZUEU8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPkRPTUFJTjwvbGl0ZXJhbD4g b3IKKyAgICAgICAgJ1YnIGZvciA8bGl0ZXJhbD5TRVNTSU9OIFZBUklBQkxFPC9saXRlcmFsPi4K ICAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgIDwvcm93PgogCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbCBiL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCmluZGV4 IDgzYjEzZjk4ZjI4Li4yZDEzZGNlYTRlZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2dsb3Nz YXJ5LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwKQEAgLTE3MTQsOCArMTcx NCw5IEBACiAgICAgPHBhcmE+CiAgICAgIEEgcGVyc2lzdGVudCBkYXRhYmFzZSBvYmplY3QgdGhh dCBob2xkcyBhIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcwogICAgICB2YWx1ZSBpcyBw cml2YXRlIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQgd2hlbiB0aGUgc2Vzc2lvbiBl bmRzLgotICAgICBSZWFkIG9yIHdyaXRlIGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBpcyBj b250cm9sbGVkIGJ5IHByaXZpbGVnZXMsCi0gICAgIHNpbWlsYXIgdG8gb3RoZXIgZGF0YWJhc2Ug b2JqZWN0cy4KKyAgICAgVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUg aXMgbnVsbC4gIFJlYWQgb3Igd3JpdGUgYWNjZXNzCisgICAgIHRvIHNlc3Npb24gdmFyaWFibGVz IGlzIGNvbnRyb2xsZWQgYnkgcHJpdmlsZWdlcywgc2ltaWxhciB0byBvdGhlciBkYXRhYmFzZQor ICAgICBvYmplY3RzLgogICAgIDwvcGFyYT4KICAgICA8cGFyYT4KICAgICAgRm9yIG1vcmUgaW5m b3JtYXRpb24sIHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4uCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9wYXJh bGxlbC5zZ21sCmluZGV4IDFjZTlhYmY4NmY1Li42ODNkZWRlNmFkYyAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwK QEAgLTUxNSw2ICs1MTUsMTIgQEAgRVhQTEFJTiBTRUxFQ1QgKiBGUk9NIHBnYmVuY2hfYWNjb3Vu dHMgV0hFUkUgZmlsbGVyIExJS0UgJyV4JSc7CiAgICAgICAgIFBsYW4gbm9kZXMgdGhhdCByZWZl cmVuY2UgYSBjb3JyZWxhdGVkIDxsaXRlcmFsPlN1YlBsYW48L2xpdGVyYWw+LgogICAgICAgPC9w YXJhPgogICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAg ICAgICAgUGxhbiBub2RlcyB0aGF0IHVzZSBhIHNlc3Npb24gdmFyaWFibGUuCisgICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KICAgPC9pdGVtaXplZGxpc3Q+CiAKICA8c2VjdDIgaWQ9InBh cmFsbGVsLWxhYmVsaW5nIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCmluZGV4IGU5Mzc0OTFlNmI4Li4xZTRjNDNiOGI2 MSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcGxwZ3NxbC5zZ21sCkBAIC02MDM2LDYgKzYwMzYsMjAgQEAgJCQgTEFOR1VBR0UgcGxwZ3Nx bCBTVFJJQ1QgSU1NVVRBQkxFOwogPC9wcm9ncmFtbGlzdGluZz4KICAgICA8L3BhcmE+CiAgICA8 L3NlY3QzPgorCisgICA8c2VjdDMgaWQ9InBscGdzcWwtcG9ydGluZy1wYWNrYWdlLXZhcmlhYmxl cyI+CisgICAgPHRpdGxlPjxjb21tYW5kPlBhY2thZ2VzIGFuZCBwYWNrYWdlIHZhcmlhYmxlczwv Y29tbWFuZD48L3RpdGxlPgorCisgICAgPHBhcmE+CisgICAgIFRoZSA8YXBwbGljYXRpb24+UEwv cGdTUUw8L2FwcGxpY2F0aW9uPiBsYW5ndWFnZSBoYXMgbm8gcGFja2FnZXMsIGFuZAorICAgICB0 aGVyZWZvcmUgbm8gcGFja2FnZSB2YXJpYWJsZXMgb3IgcGFja2FnZSBjb25zdGFudHMuCisgICAg IFlvdSBjYW4gY29uc2lkZXIgdHJhbnNsYXRpbmcgYW4gT3JhY2xlIHBhY2thZ2UgaW50byBhIHNj aGVtYSBpbgorICAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LiAgUGFj a2FnZSBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMKKyAgICAgd291bGQgdGhlbiBiZWNvbWUgZnVu Y3Rpb25zIGFuZCBwcm9jZWR1cmVzIGluIHRoYXQgc2NoZW1hLCBhbmQgcGFja2FnZQorICAgICB2 YXJpYWJsZXMgY291bGQgYmUgdHJhbnNsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGF0 IHNjaGVtYS4KKyAgICAgKHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMi Lz4pLgorICAgIDwvcGFyYT4KKyAgIDwvc2VjdDM+CiAgIDwvc2VjdDI+CiAKICAgPHNlY3QyIGlk PSJwbHBnc3FsLXBvcnRpbmctYXBwZW5kaXgiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9hbGxmaWxlcy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCmluZGV4IDJm NjdkZTNlMjFiLi5jYzNiZDVhYjU0MCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxm aWxlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbApAQCAtMTU4LDYg KzE1OCw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRo aXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgZ3JhbnQgICAgICAgICAgICAgIFNZU1RFTSAiZ3JhbnQu c2dtbCI+CiA8IUVOVElUWSBpbXBvcnRGb3JlaWduU2NoZW1hIFNZU1RFTSAiaW1wb3J0X2ZvcmVp Z25fc2NoZW1hLnNnbWwiPgogPCFFTlRJVFkgaW5zZXJ0ICAgICAgICAgICAgIFNZU1RFTSAiaW5z ZXJ0LnNnbWwiPgorPCFFTlRJVFkgbGV0ICAgICAgICAgICAgICAgIFNZU1RFTSAibGV0LnNnbWwi PgogPCFFTlRJVFkgbGlzdGVuICAgICAgICAgICAgIFNZU1RFTSAibGlzdGVuLnNnbWwiPgogPCFF TlRJVFkgbG9hZCAgICAgICAgICAgICAgIFNZU1RFTSAibG9hZC5zZ21sIj4KIDwhRU5USVRZIGxv Y2sgICAgICAgICAgICAgICBTWVNURU0gImxvY2suc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Zh cmlhYmxlLnNnbWwKaW5kZXggOTZkMjU4NjQyM2UuLjIyMWE2OTk0NjliIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl92YXJpYWJsZS5zZ21sCkBAIC0xNzMsNiArMTczLDcgQEAgQUxURVIgVkFSSUFCTEUg Ym9vIFNFVCBTQ0hFTUEgcHJpdmF0ZTsKICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KICAg IDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CiAg ICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAg IDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxp c3Q+CiAgPC9yZWZzZWN0MT4KIDwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFi bGUuc2dtbAppbmRleCA2ZTk4OGYyZTQ3Mi4uY2Q5ZmY2Mzk3NWEgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMTIwLDkgKzEyMCwxMSBAQCBDUkVBVEUgVkFSSUFCTEUg WyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYgogICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgogCiAgIDxwYXJhPgotICAgQ3JlYXRl IGFuIGRhdGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFsPjoKKyAgIENy ZWF0ZSBhIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD4gb2YgZGF0YSB0 eXBlIGRhdGU6CiA8cHJvZ3JhbWxpc3Rpbmc+CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBkYXRl OworTEVUIHZhcjEgPSBjdXJyZW50X2RhdGU7CitTRUxFQ1QgdmFyMTsKIDwvcHJvZ3JhbWxpc3Rp bmc+CiAgIDwvcGFyYT4KIApAQCAtMTQzLDYgKzE0NSw3IEBAIENSRUFURSBWQVJJQUJMRSB2YXIx IEFTIGRhdGU7CiAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CiAgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYg bGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxpc3Q+CiAgPC9yZWZzZWN0 MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAppbmRleCA1YmRiMzU2MGYwYi4uNjc5 ODhiNWZjZDggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCkBAIC0xMTEsNiArMTEx LDcgQEAgRFJPUCBWQVJJQUJMRSB2YXIxOwogICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgog ICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgog ICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4K KyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBs ZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9sZXQu c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjAwZjliZWE5MWZlCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9z Z21sL3JlZi9sZXQuc2dtbApAQCAtMCwwICsxLDk2IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVm L2xldC5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9 InNxbC1sZXQiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWxldCI+CisgIDxwcmltYXJ5PkxFVDwv cHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Np b24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+Y2hhbmdpbmc8L3NlY29uZGFyeT4K KyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5MRVQ8L3JlZmVu dHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FM IC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJl Zm5hbWVkaXY+CisgIDxyZWZuYW1lPkxFVDwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+Y2hhbmdl IGEgc2Vzc2lvbiB2YXJpYWJsZSdzIHZhbHVlPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4K KworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0xFVCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+c2Vzc2lvbl92YXJpYWJsZTwvcmVwbGFjZWFibGU+ID0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnNxbF9leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4KKzwvc3lub3Bz aXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0 aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNv bW1hbmQgYXNzaWducyBhIHZhbHVlIHRvIHRoZSBzcGVjaWZpZWQgc2Vzc2lvbgorICAgdmFyaWFi bGUuCisgIDwvcGFyYT4KKworIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Q YXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4K KyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2Vzc2lvbl92YXJpYWJs ZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBUaGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8 dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3FsX2V4cHJlc3Npb248L3JlcGxh Y2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQW4gYXJi aXRyYXJ5IFNRTCBleHByZXNzaW9uLiAgVGhlIHJlc3VsdCBtdXN0IGJlIG9mIGEgZGF0YSB0eXBl IHRoYXQgY2FuCisgICAgICBiZSBjYXN0IHRvIHRoZSB0eXBlIG9mIHRoZSBzZXNzaW9uIHZhcmlh YmxlIGluIGFuIGFzc2lnbm1lbnQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAg PC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxy ZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKzxwcm9ncmFtbGlzdGluZz4KK0NS RUFURSBWQVJJQUJMRSBteXZhciBBUyBpbnRlZ2VyOworTEVUIG15dmFyID0gMTA7CitMRVQgbXl2 YXIgPSAoU0VMRUNUIHN1bSh2YWwpIEZST00gdGFiKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgPC9y ZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgor CisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gaXMgYSA8cHJvZHVjdG5h bWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+CisgICBleHRlbnNpb24uCisgIDwvcGFyYT4KKyA8 L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisg IDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNx bC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNx bC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJz cWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3Qx PgorPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCAyNTU3OGYzOTQ2Yy4uMTNlNGFkYzVk ZjMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmZXJlbmNlLnNnbWwKQEAgLTE4Niw2ICsxODYsNyBAQAogICAgJmdyYW50OwogICAg JmltcG9ydEZvcmVpZ25TY2hlbWE7CiAgICAmaW5zZXJ0OworICAgJmxldDsKICAgICZsaXN0ZW47 CiAgICAmbG9hZDsKICAgICZsb2NrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9k ZXBlbmRlbmN5LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwppbmRleCA5ZTBm NjQ4Yjc0Zi4uOTBjOWU4YmIyNTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVw ZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCkBAIC0xODY0 LDYgKzE4NjQsMTEgQEAgZmluZF9leHByX3JlZmVyZW5jZXNfd2Fsa2VyKE5vZGUgKm5vZGUsCiAJ ewogCQlQYXJhbQkgICAqcGFyYW0gPSAoUGFyYW0gKikgbm9kZTsKIAorCQkvKiBhIHZhcmlhYmxl IHBhcmFtZXRlciBkZXBlbmRzIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlICovCisJCWlmIChwYXJh bS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJYWRkX29iamVjdF9hZGRyZXNzKFZh cmlhYmxlUmVsYXRpb25JZCwgcGFyYW0tPnBhcmFtdmFyaWQsIDAsCisJCQkJCQkJICAgY29udGV4 dC0+YWRkcnMpOworCiAJCS8qIEEgcGFyYW1ldGVyIG11c3QgZGVwZW5kIG9uIHRoZSBwYXJhbWV0 ZXIncyBkYXRhdHlwZSAqLwogCQlhZGRfb2JqZWN0X2FkZHJlc3MoVHlwZVJlbGF0aW9uSWQsIHBh cmFtLT5wYXJhbXR5cGUsIDAsCiAJCQkJCQkgICBjb250ZXh0LT5hZGRycyk7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9u YW1lc3BhY2UuYwppbmRleCA0MzA3Y2FkMTVjNy4uYmVhZmVlMmEzNDEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9u YW1lc3BhY2UuYwpAQCAtMzQ5Nyw2ICszNDk3LDI5NSBAQCBOYW1lc0Zyb21MaXN0KExpc3QgKm5h bWVzKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qIC0tLS0tCisgKiBJZGVudGlmeVZhcmlhYmxl IC0gdHJ5IHRvIGZpbmQgYSB2YXJpYWJsZSBmcm9tIGEgbGlzdCBvZiBpZGVudGlmaWVycworICoK KyAqIFJldHVybnMgdGhlIE9JRCBvZiB0aGUgdmFyaWFibGUgZm91bmQsIG9yIEludmFsaWRPaWQu CisgKgorICogIm5hbWVzIiBpcyBhIGxpc3Qgb2YgdXAgdG8gZm91ciBpZGVudGlmaWVyczsgcG9z c2libGUgbWVhbmluZ3MgYXJlOgorICogLSB2YXJpYWJsZSAgKHNlYXJjaGVkIG9uIHRoZSBzZWFy Y2hfcGF0aCkKKyAqIC0gc2NoZW1hLnZhcmlhYmxlCisgKiAtIHZhcmlhYmxlLmF0dHJpYnV0ZSAg KHNlYXJjaGVkIG9uIHRoZSBzZWFyY2hfcGF0aCkKKyAqIC0gc2NoZW1hLnZhcmlhYmxlLmF0dHJp YnV0ZQorICogLSBkYXRhYmFzZS5zY2hlbWEudmFyaWFibGUKKyAqIC0gZGF0YWJhc2Uuc2NoZW1h LnZhcmlhYmxlLmF0dHJpYnV0ZQorICoKKyAqIElmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgd2F5 IHRvIGlkZW50aWZ5IGEgdmFyaWFibGUsICJub3RfdW5pcXVlIiB3aWxsIGJlCisgKiBzZXQgdG8g dHJ1ZS4KKyAqCisgKiBVbmxlc3MgIm5vZXJyb3IiIGlzIHRydWUsIGFuIGVycm9yIGlzIHJhaXNl ZCBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIGZvdXIKKyAqICBpZGVudGlmaWVycyBpbiB0aGUgbGlz dCwgb3IgaWYgdGhlIG5hbWVkIGRhdGFiYXNlIGlzIG5vdCB0aGUgY3VycmVudCBvbmUuCisgKiBU aGlzIGlzIHVzZWZ1bCBpZiB3ZSB3YW50IHRvIGlkZW50aWZ5IGEgc2hhZG93ZWQgdmFyaWFibGUu CisgKgorICogSWYgYW4gYXR0cmlidXRlIGlzIGlkZW50aWZpZWQsIGl0IGlzIHN0b3JlZCBpbiAi YXR0cm5hbWUiLCBvdGhlcndpc2UgdGhlCisgKiBwYXJhbWV0ZXIgaXMgc2V0IHRvIE5VTEwuCisg KgorICogVGhlIGlkZW50aWZpZWQgc2Vzc2lvbiB2YXJpYWJsZSB3aWxsIGJlIGxvY2tlZCB3aXRo IGFuIEFjY2Vzc1NoYXJlTG9jay4KKyAqIC0tLS0tCisgKi8KK09pZAorSWRlbnRpZnlWYXJpYWJs ZShMaXN0ICpuYW1lcywgY2hhciAqKmF0dHJuYW1lLCBib29sICpub3RfdW5pcXVlLCBib29sIG5v ZXJyb3IpCit7CisJT2lkCQkJdmFyaWQgPSBJbnZhbGlkT2lkOworCU9pZAkJCW9sZF92YXJpZCA9 IEludmFsaWRPaWQ7CisJdWludDY0CQlpbnZhbF9jb3VudDsKKwlib29sCQlyZXRyeSA9IGZhbHNl OworCisJLyoKKwkgKiBEREwgb3BlcmF0aW9ucyBjYW4gY2hhbmdlIHRoZSByZXN1bHRzIG9mIGEg bmFtZSBsb29rdXAuICBTaW5jZSBhbGwgc3VjaAorCSAqIG9wZXJhdGlvbnMgd2lsbCBnZW5lcmF0 ZSBpbnZhbGlkYXRpb24gbWVzc2FnZXMsIHdlIGtlZXAgdHJhY2sgb2YKKwkgKiB3aGV0aGVyIGFu eSBzdWNoIG1lc3NhZ2VzIHNob3cgdXAgd2hpbGUgd2UncmUgcGVyZm9ybWluZyB0aGUgb3BlcmF0 aW9uLAorCSAqIGFuZCByZXRyeSB1bnRpbCBlaXRoZXIgKDEpIG5vIG1vcmUgaW52YWxpZGF0aW9u IG1lc3NhZ2VzIHNob3cgdXAgb3IgKDIpCisJICogdGhlIGFuc3dlciBkb2Vzbid0IGNoYW5nZS4K KwkgKi8KKwlmb3IgKDs7KQorCXsKKwkJTm9kZQkgICAqZmllbGQxID0gTlVMTDsKKwkJTm9kZQkg ICAqZmllbGQyID0gTlVMTDsKKwkJTm9kZQkgICAqZmllbGQzID0gTlVMTDsKKwkJTm9kZQkgICAq ZmllbGQ0ID0gTlVMTDsKKwkJY2hhcgkgICAqYSA9IE5VTEw7CisJCWNoYXIJICAgKmIgPSBOVUxM OworCQljaGFyCSAgICpjID0gTlVMTDsKKwkJY2hhcgkgICAqZCA9IE5VTEw7CisJCU9pZAkJCXZh cm9pZF93aXRob3V0X2F0dHIgPSBJbnZhbGlkT2lkOworCQlPaWQJCQl2YXJvaWRfd2l0aF9hdHRy ID0gSW52YWxpZE9pZDsKKworCQkqbm90X3VuaXF1ZSA9IGZhbHNlOworCQkqYXR0cm5hbWUgPSBO VUxMOworCQl2YXJpZCA9IEludmFsaWRPaWQ7CisKKwkJaW52YWxfY291bnQgPSBTaGFyZWRJbnZh bGlkTWVzc2FnZUNvdW50ZXI7CisKKwkJc3dpdGNoIChsaXN0X2xlbmd0aChuYW1lcykpCisJCXsK KwkJCWNhc2UgMToKKwkJCQlmaWVsZDEgPSBsaW5pdGlhbChuYW1lcyk7CisKKwkJCQlBc3NlcnQo SXNBKGZpZWxkMSwgU3RyaW5nKSk7CisKKwkJCQl2YXJpZCA9IExvb2t1cFZhcmlhYmxlKE5VTEws IHN0clZhbChmaWVsZDEpLCB0cnVlKTsKKwkJCQlicmVhazsKKworCQkJY2FzZSAyOgorCQkJCWZp ZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsKKwkJCQlmaWVsZDIgPSBsc2Vjb25kKG5hbWVzKTsKKwor CQkJCUFzc2VydChJc0EoZmllbGQxLCBTdHJpbmcpKTsKKwkJCQlhID0gc3RyVmFsKGZpZWxkMSk7 CisKKwkJCQlpZiAoSXNBKGZpZWxkMiwgU3RyaW5nKSkKKwkJCQl7CisJCQkJCS8qIHdoZW4gYm90 aCBmaWVsZHMgYXJlIG9mIHN0cmluZyB0eXBlICovCisJCQkJCWIgPSBzdHJWYWwoZmllbGQyKTsK KworCQkJCQkvKgorCQkJCQkgKiBhLmIgY2FuIG1lYW4gInNjaGVtYSIuInZhcmlhYmxlIiBvcgor CQkJCQkgKiAidmFyaWFibGUiLiJhdHRyaWJ1dGUiLiAgQ2hlY2sgYm90aCB2YXJpYW50cywgYW5k CisJCQkJCSAqIHJldHVybnMgSW52YWxpZE9pZCB3aXRoIG5vdF91bmlxdWUgZmxhZywgd2hlbiBi b3RoCisJCQkJCSAqIGludGVycHJldGF0aW9ucyBhcmUgcG9zc2libGUuCisJCQkJCSAqLworCQkJ CQl2YXJvaWRfd2l0aG91dF9hdHRyID0gTG9va3VwVmFyaWFibGUoYSwgYiwgdHJ1ZSk7CisJCQkJ CXZhcm9pZF93aXRoX2F0dHIgPSBMb29rdXBWYXJpYWJsZShOVUxMLCBhLCB0cnVlKTsKKwkJCQl9 CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJLyogdGhlIGxhc3QgZmllbGQgb2YgbGlzdCBjYW4gYmUg c3RhciB0b28gKi8KKwkJCQkJQXNzZXJ0KElzQShmaWVsZDIsIEFfU3RhcikpOworCisJCQkJCS8q CisJCQkJCSAqIFRoZSBzeW50YXggaWRlbnQuKiBpcyB1c2VkIG9ubHkgYnkgcmVsYXRpb24gYWxp YXNlcywKKwkJCQkJICogYW5kIHRoZW4gdGhpcyBpZGVudGlmaWVyIGNhbm5vdCBiZSBhIHJlZmVy ZW5jZSB0bworCQkJCQkgKiBzZXNzaW9uIHZhcmlhYmxlLgorCQkJCQkgKi8KKwkJCQkJcmV0dXJu IEludmFsaWRPaWQ7CisJCQkJfQorCisJCQkJaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhvdXRf YXR0cikgJiYgT2lkSXNWYWxpZCh2YXJvaWRfd2l0aF9hdHRyKSkKKwkJCQl7CisJCQkJCSpub3Rf dW5pcXVlID0gdHJ1ZTsKKwkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aG91dF9hdHRyOworCQkJCX0K KwkJCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRob3V0X2F0dHIpKQorCQkJCXsKKwkJ CQkJdmFyaWQgPSB2YXJvaWRfd2l0aG91dF9hdHRyOworCQkJCX0KKwkJCQllbHNlIGlmIChPaWRJ c1ZhbGlkKHZhcm9pZF93aXRoX2F0dHIpKQorCQkJCXsKKwkJCQkJKmF0dHJuYW1lID0gYjsKKwkJ CQkJdmFyaWQgPSB2YXJvaWRfd2l0aF9hdHRyOworCQkJCX0KKwkJCQlicmVhazsKKworCQkJY2Fz ZSAzOgorCQkJCXsKKwkJCQkJYm9vbAkJZmllbGQxX2lzX2NhdGFsb2cgPSBmYWxzZTsKKworCQkJ CQlmaWVsZDEgPSBsaW5pdGlhbChuYW1lcyk7CisJCQkJCWZpZWxkMiA9IGxzZWNvbmQobmFtZXMp OworCQkJCQlmaWVsZDMgPSBsdGhpcmQobmFtZXMpOworCisJCQkJCUFzc2VydChJc0EoZmllbGQx LCBTdHJpbmcpKTsKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDIsIFN0cmluZykpOworCisJCQkJCWEg PSBzdHJWYWwoZmllbGQxKTsKKwkJCQkJYiA9IHN0clZhbChmaWVsZDIpOworCisJCQkJCWlmIChJ c0EoZmllbGQzLCBTdHJpbmcpKQorCQkJCQl7CisJCQkJCQljID0gc3RyVmFsKGZpZWxkMyk7CisK KwkJCQkJCS8qCisJCQkJCQkgKiBhLmIuYyBjYW4gbWVhbiBjYXRhbG9nLnNjaGVtYS52YXJpYWJs ZSBvcgorCQkJCQkJICogc2NoZW1hLnZhcmlhYmxlLmF0dHJpYnV0ZS4KKwkJCQkJCSAqCisJCQkJ CQkgKiBDaGVjayBib3RoIHZhcmlhbnRzLCBhbmQgc2V0IG5vdF91bmlxdWUgZmxhZywgd2hlbgor CQkJCQkJICogYm90aCBpbnRlcnByZXRhdGlvbnMgYXJlIHBvc3NpYmxlLgorCQkJCQkJICoKKwkJ CQkJCSAqIFdoZW4gdGhpcmQgbm9kZSBpcyBzdGFyLCBvbmx5IHBvc3NpYmxlCisJCQkJCQkgKiBp bnRlcnByZXRhdGlvbiBpcyBzY2hlbWEudmFyaWFibGUuKiwgYnV0IHRoaXMKKwkJCQkJCSAqIHBh dHRlcm4gaXMgbm90IHN1cHBvcnRlZCBub3cuCisJCQkJCQkgKi8KKwkJCQkJCXZhcm9pZF93aXRo X2F0dHIgPSBMb29rdXBWYXJpYWJsZShhLCBiLCB0cnVlKTsKKworCQkJCQkJLyoKKwkJCQkJCSAq IGNoZWNrIHBhdHRlcm4gY2F0YWxvZy5zY2hlbWEudmFyaWFibGUgb25seSB3aGVuCisJCQkJCQkg KiB0aGVyZSBpcyBwb3NzaWJpbGl0eSB0byBzdWNjZXNzLgorCQkJCQkJICovCisJCQkJCQlpZiAo c3RyY21wKGEsIGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpID09IDApCisJCQkJCQl7 CisJCQkJCQkJZmllbGQxX2lzX2NhdGFsb2cgPSB0cnVlOworCQkJCQkJCXZhcm9pZF93aXRob3V0 X2F0dHIgPSBMb29rdXBWYXJpYWJsZShiLCBjLCB0cnVlKTsKKwkJCQkJCX0KKwkJCQkJfQorCQkJ CQllbHNlCisJCQkJCXsKKwkJCQkJCUFzc2VydChJc0EoZmllbGQzLCBBX1N0YXIpKTsKKwkJCQkJ CXJldHVybiBJbnZhbGlkT2lkOworCQkJCQl9CisKKwkJCQkJaWYgKE9pZElzVmFsaWQodmFyb2lk X3dpdGhvdXRfYXR0cikgJiYgT2lkSXNWYWxpZCh2YXJvaWRfd2l0aF9hdHRyKSkKKwkJCQkJewor CQkJCQkJKm5vdF91bmlxdWUgPSB0cnVlOworCQkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aG91dF9h dHRyOworCQkJCQl9CisJCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhvdXRfYXR0 cikpCisJCQkJCXsKKwkJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJCQkJfQor CQkJCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRoX2F0dHIpKQorCQkJCQl7CisJCQkJ CQkqYXR0cm5hbWUgPSBjOworCQkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aF9hdHRyOworCQkJCQl9 CisKKwkJCQkJLyoKKwkJCQkJICogV2hlbiB3ZSBkaWRuJ3QgZmluZCB2YXJpYWJsZSwgd2UgY2Fu ICh3aGVuIGl0IGlzCisJCQkJCSAqIGFsbG93ZWQpIHJhaXNlIGNyb3NzLWRhdGFiYXNlIHJlZmVy ZW5jZSBlcnJvci4KKwkJCQkJICovCisJCQkJCWlmICghT2lkSXNWYWxpZCh2YXJpZCkgJiYgIW5v ZXJyb3IgJiYgIWZpZWxkMV9pc19jYXRhbG9nKQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJCQkgZXJy bXNnKCJjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICVzIiwK KwkJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsKKwkJCQl9CisJCQkJYnJlYWs7 CisKKwkJCWNhc2UgNDoKKwkJCQl7CisJCQkJCWZpZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsKKwkJ CQkJZmllbGQyID0gbHNlY29uZChuYW1lcyk7CisJCQkJCWZpZWxkMyA9IGx0aGlyZChuYW1lcyk7 CisJCQkJCWZpZWxkNCA9IGxmb3VydGgobmFtZXMpOworCisJCQkJCUFzc2VydChJc0EoZmllbGQx LCBTdHJpbmcpKTsKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDIsIFN0cmluZykpOworCQkJCQlBc3Nl cnQoSXNBKGZpZWxkMywgU3RyaW5nKSk7CisKKwkJCQkJYSA9IHN0clZhbChmaWVsZDEpOworCQkJ CQliID0gc3RyVmFsKGZpZWxkMik7CisJCQkJCWMgPSBzdHJWYWwoZmllbGQzKTsKKworCQkJCQkv KgorCQkJCQkgKiBJbiB0aGlzIGNhc2UsICJhIiBpcyB1c2VkIGFzIGNhdGFsb2cgbmFtZSAtIGNo ZWNrIGl0LgorCQkJCQkgKi8KKwkJCQkJaWYgKHN0cmNtcChhLCBnZXRfZGF0YWJhc2VfbmFtZShN eURhdGFiYXNlSWQpKSAhPSAwKQorCQkJCQl7CisJCQkJCQlpZiAoIW5vZXJyb3IpCisJCQkJCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKKwkJCQkJCQkJCSBlcnJtc2coImNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJl IG5vdCBpbXBsZW1lbnRlZDogJXMiLAorCQkJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVz KSkpKTsKKwkJCQkJfQorCisJCQkJCWlmIChJc0EoZmllbGQ0LCBTdHJpbmcpKQorCQkJCQl7CisJ CQkJCQlkID0gc3RyVmFsKGZpZWxkNCk7CisJCQkJCX0KKwkJCQkJZWxzZQorCQkJCQl7CisJCQkJ CQlBc3NlcnQoSXNBKGZpZWxkNCwgQV9TdGFyKSk7CisJCQkJCQlyZXR1cm4gSW52YWxpZE9pZDsK KwkJCQkJfQorCisJCQkJCSphdHRybmFtZSA9IGQ7CisJCQkJCXZhcmlkID0gTG9va3VwVmFyaWFi bGUoYiwgYywgdHJ1ZSk7CisJCQkJfQorCQkJCWJyZWFrOworCisJCQlkZWZhdWx0OgorCQkJCWlm ICghbm9lcnJvcikKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RF X1NZTlRBWF9FUlJPUiksCisJCQkJCQkJIGVycm1zZygiaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUg KHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICVzIiwKKwkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmco bmFtZXMpKSkpOworCQkJCXJldHVybiBJbnZhbGlkT2lkOworCQl9CisKKwkJLyoKKwkJICogSWYs IHVwb24gcmV0cnksIHdlIGdldCBiYWNrIHRoZSBzYW1lIE9JRCB3ZSBkaWQgbGFzdCB0aW1lLCB0 aGVuIHRoZQorCQkgKiBpbnZhbGlkYXRpb24gbWVzc2FnZXMgd2UgcHJvY2Vzc2VkIGRpZCBub3Qg Y2hhbmdlIHRoZSBmaW5hbCBhbnN3ZXIuCisJCSAqIFNvIHdlJ3JlIGRvbmUuCisJCSAqCisJCSAq IElmIHdlIGdvdCBhIGRpZmZlcmVudCBPSUQsIHdlJ3ZlIGxvY2tlZCB0aGUgdmFyaWFibGUgdGhh dCB1c2VkIHRvCisJCSAqIGhhdmUgdGhpcyBuYW1lIHJhdGhlciB0aGFuIHRoZSBvbmUgdGhhdCBk b2VzIG5vdy4gIFNvIHJlbGVhc2UgdGhlCisJCSAqIGxvY2suCisJCSAqLworCQlpZiAocmV0cnkp CisJCXsKKwkJCWlmIChvbGRfdmFyaWQgPT0gdmFyaWQpCisJCQkJYnJlYWs7CisKKwkJCWlmIChP aWRJc1ZhbGlkKG9sZF92YXJpZCkpCisJCQkJVW5sb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVS ZWxhdGlvbklkLCBvbGRfdmFyaWQsIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCX0KKworCQkvKgor CQkgKiBMb2NrIHRoZSB2YXJpYWJsZS4gIFRoaXMgd2lsbCBhbHNvIGFjY2VwdCBhbnkgcGVuZGlu ZyBpbnZhbGlkYXRpb24KKwkJICogbWVzc2FnZXMuICBJZiB3ZSBnb3QgYmFjayBJbnZhbGlkT2lk LCBpbmRpY2F0aW5nIG5vdCBmb3VuZCwgdGhlbgorCQkgKiB0aGVyZSdzIG5vdGhpbmcgdG8gbG9j aywgYnV0IHdlIGFjY2VwdCBpbnZhbGlkYXRpb24gbWVzc2FnZXMKKwkJICogYW55d2F5LCB0byBm bHVzaCBhbnkgbmVnYXRpdmUgY2F0Y2FjaGUgZW50cmllcyB0aGF0IG1heSBiZQorCQkgKiBsaW5n ZXJpbmcuCisJCSAqLworCQlpZiAoIU9pZElzVmFsaWQodmFyaWQpKQorCQkJQWNjZXB0SW52YWxp ZGF0aW9uTWVzc2FnZXMoKTsKKwkJZWxzZQorCQkJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxl UmVsYXRpb25JZCwgdmFyaWQsIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwkJLyoKKwkJICogSWYg bm8gaW52YWxpZGF0aW9uIG1lc3NhZ2Ugd2VyZSBwcm9jZXNzZWQsIHdlJ3JlIGRvbmUhCisJCSAq LworCQlpZiAoaW52YWxfY291bnQgPT0gU2hhcmVkSW52YWxpZE1lc3NhZ2VDb3VudGVyKQorCQkJ YnJlYWs7CisKKwkJcmV0cnkgPSB0cnVlOworCQlvbGRfdmFyaWQgPSB2YXJpZDsKKwkJdmFyaWQg PSBJbnZhbGlkT2lkOworCX0KKworCXJldHVybiB2YXJpZDsKK30KKwogLyoKICAqIERlY29uc3Ry dWN0UXVhbGlmaWVkTmFtZQogICoJCUdpdmVuIGEgcG9zc2libHktcXVhbGlmaWVkIG5hbWUgZXhw cmVzc2VkIGFzIGEgbGlzdCBvZiBTdHJpbmcgbm9kZXMsCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKaW5kZXggMjlkOTY3YTJkNWIuLmJiNDQ1ZTk0MzRiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIK ICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5o IgorI2luY2x1ZGUgInV0aWxzL3BnX2xzbi5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgi CiAKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJO YW1lLApAQCAtMTAxLDYgKzEwMiw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJO YW1lLAogCXZhcmlkID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgVmFyaWFibGVPaWRJbmRleElk LCBBbnVtX3BnX3ZhcmlhYmxlX29pZCk7CiAKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV9vaWQg LSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyaWQpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3ZhcmNyZWF0ZV9sc24gLSAxXSA9IExTTkdldERhdHVtKEdldFhMb2dJbnNlcnRSZWNQdHIoKSk7 CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFybmFtZSAtIDFdID0gTmFtZUdldERhdHVtKCZ2 YXJuYW1lKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UgLSAxXSA9IE9i amVjdElkR2V0RGF0dW0odmFyTmFtZXNwYWNlKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJ0eXBlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhclR5cGUpOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmls ZQppbmRleCBjYjJmYmRjN2M2MC4uYWVlNDBlN2JkNTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBA IC01Myw2ICs1Myw3IEBAIE9CSlMgPSBcCiAJc2NoZW1hY21kcy5vIFwKIAlzZWNsYWJlbC5vIFwK IAlzZXF1ZW5jZS5vIFwKKwlzZXNzaW9uX3ZhcmlhYmxlLm8gXAogCXN0YXRzY21kcy5vIFwKIAlz dWJzY3JpcHRpb25jbWRzLm8gXAogCXRhYmxlY21kcy5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVp bGQKaW5kZXggZGQ0Y2RlNDFkMzIuLjEwMWM4ZDc1ZGQxIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5i dWlsZApAQCAtNDEsNiArNDEsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdzY2hl bWFjbWRzLmMnLAogICAnc2VjbGFiZWwuYycsCiAgICdzZXF1ZW5jZS5jJywKKyAgJ3Nlc3Npb25f dmFyaWFibGUuYycsCiAgICdzdGF0c2NtZHMuYycsCiAgICdzdWJzY3JpcHRpb25jbWRzLmMnLAog ICAndGFibGVjbWRzLmMnLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFy ZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IGJmN2QyYjIzMDlmLi41 NmIzZDhjYjkxZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAtMzQyLDYgKzM0MiwxNiBAQCBF dmFsdWF0ZVBhcmFtcyhQYXJzZVN0YXRlICpwc3RhdGUsIFByZXBhcmVkU3RhdGVtZW50ICpwc3Rt dCwgTGlzdCAqcGFyYW1zLAogCQlpKys7CiAJfQogCisJLyoKKwkgKiBUaGUgYXJndW1lbnRzIG9m IEVYRUNVVEUgYXJlIGV2YWx1YXRlZCBieSBhIGRpcmVjdCBleHByZXNzaW9uCisJICogZXhlY3V0 b3IgY2FsbC4gIFRoaXMgbW9kZSBkb2Vzbid0IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMgeWV0 LgorCSAqIEl0IHdpbGwgYmUgZW5hYmxlZCBsYXRlci4KKwkgKi8KKwlpZiAocHN0YXRlLT5wX2hh c1Nlc3Npb25WYXJpYWJsZXMpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUg Y2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQiKSkpOworCiAJLyogUHJlcGFyZSB0aGUgZXhw cmVzc2lvbnMgZm9yIGV4ZWN1dGlvbiAqLwogCWV4cHJzdGF0ZXMgPSBFeGVjUHJlcGFyZUV4cHJM aXN0KHBhcmFtcywgZXN0YXRlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMjg5MWExZGNiNwot LS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu YwpAQCAtMCwwICsxLDUyOSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc2Vzc2lvbl92 YXJpYWJsZS5jCisgKgkgIHNlc3Npb24gdmFyaWFibGUgY3JlYXRpb24vbWFuaXB1bGF0aW9uIGNv bW1hbmRzCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjUsIFBvc3RncmVT UUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5 OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqCisgKiBJ REVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisK KyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgi CisjaW5jbHVkZSAiZnVuY2FwaS5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUg InJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKKyNp bmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKKyNpbmNsdWRlICJ0Y29wL3Rjb3Bwcm90LmgiCisjaW5j bHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9kYXR1bS5oIgorI2luY2x1 ZGUgInV0aWxzL2ludmFsLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVk ZSAidXRpbHMvc25hcG1nci5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKy8qCisg KiBUaGUgdmFsdWVzIG9mIHNlc3Npb24gdmFyaWFibGVzIGFyZSBzdG9yZWQgaW4gdGhlIGJhY2tl bmQncyBwcml2YXRlIG1lbW9yeQorICogaW4gdGhlIGRlZGljYXRlZCBtZW1vcnkgY29udGV4dCBT VmFyaWFibGVNZW1vcnlDb250ZXh0IGluIGJpbmFyeSBmb3JtYXQuCisgKiBUaGV5IGFyZSBzdG9y ZWQgaW4gdGhlICJzZXNzaW9udmFycyIgaGFzaCB0YWJsZSwgd2hvc2Uga2V5IGlzIHRoZSBPSUQg b2YgdGhlCisgKiB2YXJpYWJsZS4gIEhvd2V2ZXIsIHRoZSBPSUQgaXMgbm90IGdvb2QgZW5vdWdo IHRvIGlkZW50aWZ5IGEgc2Vzc2lvbgorICogdmFyaWFibGU6IGNvbmN1cnJlbnQgc2Vzc2lvbnMg Y291bGQgZHJvcCB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBhbmQgY3JlYXRlIGEKKyAqIG5ldyBvbmUs IHdoaWNoIGNvdWxkIGJlIGFzc2lnbmVkIHRoZSBzYW1lIE9JRC4gIFRvIGVuc3VyZSB0aGF0IHRo ZSB2YWx1ZXMKKyAqIHN0b3JlZCBpbiBtZW1vcnkgYW5kIHRoZSBjYXRhbG9nIGRlZmluaXRpb24g bWF0Y2gsIHdlIGFsc28ga2VlcCB0cmFjayBvZgorICogdGhlICJjcmVhdGVfbHNuIi4gIEJlZm9y ZSBhbnkgYWNjZXNzIHRvIHRoZSB2YXJpYWJsZSB2YWx1ZXMsIHdlIG5lZWQgdG8KKyAqIGNoZWNr IGlmIHRoZSBMU04gc3RvcmVkIGluIG1lbW9yeSBtYXRjaGVzIHRoZSBMU04gaW4gdGhlIGNhdGFs b2cuICBJZiB0aGVyZQorICogaXMgYSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBMU05zLCBvciBpZiB0 aGUgT0lEIGlzIG5vdCBwcmVzZW50IGluIHBnX3ZhcmlhYmxlCisgKiBhdCBhbGwsIHRoZSB2YWx1 ZSBzdG9yZWQgaW4gbWVtb3J5IGlzIHJlbGVhc2VkLgorICovCit0eXBlZGVmIHN0cnVjdCBTVmFy aWFibGVEYXRhCit7CisJT2lkCQkJdmFyaWQ7CQkJLyogcGdfdmFyaWFibGUgT0lEIG9mIHRoZSB2 YXJpYWJsZSAoaGFzaCBrZXkpICovCisJWExvZ1JlY1B0cgljcmVhdGVfbHNuOworCisJYm9vbAkJ aXNudWxsOworCURhdHVtCQl2YWx1ZTsKKworCU9pZAkJCXR5cGlkOworCWludDE2CQl0eXBsZW47 CisJYm9vbAkJdHlwYnl2YWw7CisKKwlib29sCQlpc19kb21haW47CisKKwkvKgorCSAqIGRvbWFp bl9jaGVja19leHRyYSBob2xkcyBjYWNoZWQgZG9tYWluIG1ldGFkYXRhLiAgVGhpcyAiZXh0cmEi IGlzCisJICogdXN1YWxseSBzdG9yZWQgaW4gZm5fbWN4dC4gIFdlIGRvIG5vdCBoYXZlIGFjY2Vz cyB0byB0aGF0IG1lbW9yeSBjb250ZXh0CisJICogZm9yIHNlc3Npb24gdmFyaWFibGVzLCBidXQg d2UgY2FuIHVzZSBUb3BUcmFuc2FjdGlvbkNvbnRleHQgaW5zdGVhZC4KKwkgKiBBIGZyZXNoIHZh bHVlIGlzIGZvcmNlZCB3aGVuIHdlIGRldGVjdCB3ZSBhcmUgaW4gYSBkaWZmZXJlbnQgdHJhbnNh Y3Rpb24KKwkgKiAodGhlIGxvY2FsIHRyYW5zYWN0aW9uIElEIGRpZmZlcnMgZnJvbSBkb21haW5f Y2hlY2tfZXh0cmFfbHhpZCkuCisJICovCisJdm9pZAkgICAqZG9tYWluX2NoZWNrX2V4dHJhOwor CUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5fY2hlY2tfZXh0cmFfbHhpZDsKKworCS8qCisJICog U3RvcmVkIHZhbHVlIGFuZCB0eXBlIGRlc2NyaXB0aW9uIGNhbiBiZSBvdXRkYXRlZCB3aGVuIHdl IHJlY2VpdmUgYQorCSAqIHNpbnZhbCBtZXNzYWdlLiAgV2UgdGhlbiBoYXZlIHRvIGNoZWNrIGlm IHRoZSBzdG9yZWQgZGF0YSBhcmUgc3RpbGwKKwkgKiB0cnVzdHdvcnRoeS4KKwkgKi8KKwlib29s CQlpc192YWxpZDsKKworCXVpbnQzMgkJaGFzaHZhbHVlOwkJLyogdXNlZCBmb3IgcGFpcmluZyBz aW52YWwgbWVzc2FnZSAqLworfSBTVmFyaWFibGVEYXRhOworCit0eXBlZGVmIFNWYXJpYWJsZURh dGEgKlNWYXJpYWJsZTsKKworc3RhdGljIEhUQUIgKnNlc3Npb252YXJzID0gTlVMTDsJLyogaGFz aCB0YWJsZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKworc3RhdGljIE1lbW9yeUNvbnRleHQg U1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9IE5VTEw7CisKKy8qCisgKiBDYWxsYmFjayBmdW5jdGlv biBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBpbnZhbGlkYXRpb24uCisgKi8KK3N0YXRpYyB2b2lkCitw Z192YXJpYWJsZV9jYWNoZV9jYWxsYmFjayhEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIg aGFzaHZhbHVlKQoreworCUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7 CisKKwllbG9nKERFQlVHMSwgInBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrICV1ICV1IiwgY2Fj aGVpZCwgaGFzaHZhbHVlKTsKKworCUFzc2VydChzZXNzaW9udmFycyk7CisKKwkvKgorCSAqIElm IHRoZSBoYXNodmFsdWUgaXMgbm90IHNwZWNpZmllZCwgd2UgaGF2ZSB0byByZWNoZWNrIGFsbCBj dXJyZW50bHkKKwkgKiB1c2VkIHNlc3Npb24gdmFyaWFibGVzLiAgU2luY2Ugd2UgY2FuJ3QgdGVs bCB0aGUgZXhhY3Qgc2Vzc2lvbiB2YXJpYWJsZQorCSAqIGZyb20gaXRzIGhhc2h2YWx1ZSwgd2Ug aGF2ZSB0byBpdGVyYXRlIG92ZXIgYWxsIGl0ZW1zIGluIHRoZSBoYXNoIGJ1Y2tldC4KKwkgKi8K KwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKworCXdoaWxlICgoc3ZhciA9 IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJjaCgmc3RhdHVzKSkgIT0gTlVMTCkKKwl7CisJCWlm IChoYXNodmFsdWUgPT0gMCB8fCBzdmFyLT5oYXNodmFsdWUgPT0gaGFzaHZhbHVlKQorCQl7CisJ CQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQl9CisJfQorfQorCisvKgorICogUmVsZWFzZSBz dG9yZWQgdmFsdWUsIGZyZWUgbWVtb3J5CisgKi8KK3N0YXRpYyB2b2lkCitmcmVlX3Nlc3Npb25f dmFyaWFibGVfdmFsdWUoU1ZhcmlhYmxlIHN2YXIpCit7CisJLyogY2xlYW4gdGhlIGN1cnJlbnQg dmFsdWUgKi8KKwlpZiAoIXN2YXItPmlzbnVsbCkKKwl7CisJCWlmICghc3Zhci0+dHlwYnl2YWwp CisJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoc3Zhci0+dmFsdWUpKTsKKworCQlzdmFyLT5pc251 bGwgPSB0cnVlOworCX0KKworCXN2YXItPnZhbHVlID0gKERhdHVtKSAwOworfQorCisvKgorICog UmV0dXJucyB0cnVlIHdoZW4gdGhlIGVudHJ5IGluIHBnX3ZhcmlhYmxlIGlzIGNvbnNpc3RlbnQg d2l0aCB0aGUgZ2l2ZW4KKyAqIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK3N0YXRpYyBib29sCitp c19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKFNWYXJpYWJsZSBzdmFyKQoreworCUhlYXBUdXBsZQl0 cDsKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHN2YXItPnZh cmlkKSk7CisKKwl0cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXRE YXR1bShzdmFyLT52YXJpZCkpOworCisJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHApKQorCXsKKwkJ LyoKKwkJICogVGhlIE9JRCBhbG9uZSBpcyBub3QgZW5vdWdoIGFzIGFuIHVuaXF1ZSBpZGVudGlm aWVyLCBiZWNhdXNlIE9JRAorCQkgKiB2YWx1ZXMgZ2V0IHJlY3ljbGVkLCBhbmQgYSBuZXcgc2Vz c2lvbiB2YXJpYWJsZSBjb3VsZCBoYXZlIGdvdAorCQkgKiB0aGUgc2FtZSBPSUQuICBXZSBkbyBh IHNlY29uZCBjaGVjayBhZ2FpbnN0IHRoZSA2NC1iaXQgTFNOIHdoZW4KKwkJICogdGhlIHZhcmlh YmxlIHdhcyBjcmVhdGVkLgorCQkgKi8KKwkJaWYgKHN2YXItPmNyZWF0ZV9sc24gPT0gKChGb3Jt X3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHApKS0+dmFyY3JlYXRlX2xzbikKKwkJCXJlc3VsdCA9 IHRydWU7CisKKwkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwl9CisKKwlyZXR1cm4gcmVzdWx0Owor fQorCisvKgorICogSW5pdGlhbGl6ZSBhdHRyaWJ1dGVzIGNhY2hlZCBpbiAic3ZhciIKKyAqLwor c3RhdGljIHZvaWQKK3NldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2 YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwor CUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFS SUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNW YWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lv biB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkg R0VUU1RSVUNUKHR1cCk7CisKKwlzdmFyLT52YXJpZCA9IHZhcmlkOworCXN2YXItPmNyZWF0ZV9s c24gPSB2YXJmb3JtLT52YXJjcmVhdGVfbHNuOworCisJc3Zhci0+dHlwaWQgPSB2YXJmb3JtLT52 YXJ0eXBlOworCisJZ2V0X3R5cGxlbmJ5dmFsKHN2YXItPnR5cGlkLCAmc3Zhci0+dHlwbGVuLCAm c3Zhci0+dHlwYnl2YWwpOworCisJc3Zhci0+aXNfZG9tYWluID0gKGdldF90eXB0eXBlKHZhcmZv cm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsKKwlzdmFyLT5kb21haW5fY2hlY2tfZXh0 cmEgPSBOVUxMOworCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkID0gSW52YWxpZExvY2Fs VHJhbnNhY3Rpb25JZDsKKworCXN2YXItPmlzbnVsbCA9IHRydWU7CisJc3Zhci0+dmFsdWUgPSAo RGF0dW0pIDA7CisKKwlzdmFyLT5pc192YWxpZCA9IHRydWU7CisKKwlzdmFyLT5oYXNodmFsdWUg PSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVPSUQsCisJCQkJCQkJCQkJCU9iamVjdElk R2V0RGF0dW0odmFyaWQpKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworfQorCisvKgorICog QXNzaWduIGEgbmV3IHZhbHVlIHRvIHRoZSBzZXNzaW9uIHZhcmlhYmxlLiAgSXQgaXMgY29waWVk IHRvCisgKiBTVmFyaWFibGVNZW1vcnlDb250ZXh0IGlmIG5lY2Vzc2FyeS4KKyAqCisgKiBJZiBh bnkgZXJyb3IgaGFwcGVucywgdGhlIGV4aXN0aW5nIHZhbHVlIHdvbid0IGJlIG1vZGlmaWVkLgor ICovCitzdGF0aWMgdm9pZAorc2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERh dHVtIHZhbHVlLCBib29sIGlzbnVsbCkKK3sKKwlEYXR1bQkJbmV3dmFsOworCVNWYXJpYWJsZURh dGEgbG9jc3ZhciwKKwkJCSAgICpfc3ZhcjsKKworCUFzc2VydChzdmFyKTsKKwlBc3NlcnQoIWlz bnVsbCB8fCB2YWx1ZSA9PSAoRGF0dW0pIDApOworCisJLyoKKwkgKiBVc2UgdHlwYnl2YWwsIHR5 cGJ5bGVuIGZyb20gc2Vzc2lvbiB2YXJpYWJsZSBvbmx5IHdoZW4gdGhleSBhcmUKKwkgKiB0cnVz dHdvcnRoeSAodGhlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdhcyBub3QgYWNjZXB0ZWQgZm9yIHRo aXMKKwkgKiB2YXJpYWJsZSkuICBJZiB0aGUgdmFyaWFibGUgbWlnaHQgYmUgaW52YWxpZCwgZm9y Y2Ugc2V0dXAuCisJICoKKwkgKiBEbyBub3Qgb3ZlcndyaXRlIHRoZSBwYXNzZWQgc2Vzc2lvbiB2 YXJpYWJsZSB1bnRpbCB3ZSBjYW4gYmUgY2VydGFpbgorCSAqIHRoYXQgbm8gZXJyb3IgY2FuIGJl IHRocm93bi4KKwkgKi8KKwlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCXsKKwkJc2V0dXBfc2Vzc2lv bl92YXJpYWJsZSgmbG9jc3Zhciwgc3Zhci0+dmFyaWQpOworCQlfc3ZhciA9ICZsb2NzdmFyOwor CX0KKwllbHNlCisJCV9zdmFyID0gc3ZhcjsKKworCWlmICghaXNudWxsKQorCXsKKwkJTWVtb3J5 Q29udGV4dCBvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oU1ZhcmlhYmxlTWVtb3J5Q29u dGV4dCk7CisKKwkJbmV3dmFsID0gZGF0dW1Db3B5KHZhbHVlLCBfc3Zhci0+dHlwYnl2YWwsIF9z dmFyLT50eXBsZW4pOworCisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOworCX0KKwll bHNlCisJCW5ld3ZhbCA9IHZhbHVlOworCisJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2 YXIpOworCisJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1 KSBoYXMgbmV3IHZhbHVlIiwKKwkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWUoc3Zhci0+dmFyaWQpLAorCQkgc3Zhci0+dmFyaWQpOworCisJLyogbm8gbW9yZSBlcnJvciBl eHBlY3RlZCwgc28gd2UgY2FuIG92ZXJ3cml0ZSB0aGUgb2xkIHZhcmlhYmxlIG5vdyAqLworCWlm IChzdmFyICE9IF9zdmFyKQorCQltZW1jcHkoc3ZhciwgX3N2YXIsIHNpemVvZihTVmFyaWFibGVE YXRhKSk7CisKKwlzdmFyLT52YWx1ZSA9IG5ld3ZhbDsKKwlzdmFyLT5pc251bGwgPSBpc251bGw7 Cit9CisKKy8qCisgKiBDcmVhdGUgdGhlIGhhc2ggdGFibGUgZm9yIHN0b3Jpbmcgc2Vzc2lvbiB2 YXJpYWJsZXMuCisgKi8KK3N0YXRpYyB2b2lkCitjcmVhdGVfc2Vzc2lvbnZhcnNfaGFzaHRhYmxl cyh2b2lkKQoreworCUhBU0hDVEwJCXZhcnNfY3RsOworCisJQXNzZXJ0KCFzZXNzaW9udmFycyk7 CisKKwlpZiAoIVNWYXJpYWJsZU1lbW9yeUNvbnRleHQpCisJeworCQkvKiByZWFkIHNpbnZhbCBt ZXNzYWdlcyAqLworCQlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhWQVJJQUJMRU9JRCwK KwkJCQkJCQkJCSAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2ssCisJCQkJCQkJCQkgIChEYXR1 bSkgMCk7CisKKwkJLyogd2UgbmVlZCBvdXIgb3duIGxvbmctbGl2ZWQgbWVtb3J5IGNvbnRleHQg Ki8KKwkJU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9CisJCQlBbGxvY1NldENvbnRleHRDcmVhdGUo VG9wTWVtb3J5Q29udGV4dCwKKwkJCQkJCQkJICAic2Vzc2lvbiB2YXJpYWJsZXMiLAorCQkJCQkJ CQkgIEFMTE9DU0VUX1NUQVJUX1NNQUxMX1NJWkVTKTsKKwl9CisKKwltZW1zZXQoJnZhcnNfY3Rs LCAwLCBzaXplb2YodmFyc19jdGwpKTsKKwl2YXJzX2N0bC5rZXlzaXplID0gc2l6ZW9mKE9pZCk7 CisJdmFyc19jdGwuZW50cnlzaXplID0gc2l6ZW9mKFNWYXJpYWJsZURhdGEpOworCXZhcnNfY3Rs LmhjeHQgPSBTVmFyaWFibGVNZW1vcnlDb250ZXh0OworCisJc2Vzc2lvbnZhcnMgPSBoYXNoX2Ny ZWF0ZSgiU2Vzc2lvbiB2YXJpYWJsZXMiLCA2NCwgJnZhcnNfY3RsLAorCQkJCQkJCSAgSEFTSF9F TEVNIHwgSEFTSF9CTE9CUyB8IEhBU0hfQ09OVEVYVCk7Cit9CisKKy8qCisgKiBTZWFyY2ggYSBz ZXNzaW9uIHZhcmlhYmxlIGluIHRoZSBoYXNoIHRhYmxlIGdpdmVuIGl0cyBPSUQuICBJZiBpdAor ICogZG9lc24ndCBleGlzdCwgdGhlbiBpbnNlcnQgaXQgdGhlcmUuCisgKgorICogVGhlIGNhbGxl ciBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgcGVybWlzc2lvbiBjaGVja3MuCisgKgorICogQXMg YSBzaWRlIGVmZmVjdCwgdGhpcyBmdW5jdGlvbiBhY3F1aXJlcyBhIEFjY2Vzc1NoYXJlTG9jayBv biB0aGUKKyAqIHNlc3Npb24gdmFyaWFibGUgdW50aWwgdGhlIGVuZCBvZiB0aGUgdHJhbnNhY3Rp b24uCisgKi8KK3N0YXRpYyBTVmFyaWFibGUKK2dldF9zZXNzaW9uX3ZhcmlhYmxlKE9pZCB2YXJp ZCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKwlib29sCQlmb3VuZDsKKworCS8qIHByb3RlY3QgdGhl IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZSBhZ2FpbnN0IERST1AgKi8KKwlMb2NrRGF0YWJhc2VPYmpl Y3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCWlm ICghc2Vzc2lvbnZhcnMpCisJCWNyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CisKKwlz dmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJ CQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKKworCWlmIChmb3VuZCkKKwl7CisJCWlmICghc3Zh ci0+aXNfdmFsaWQpCisJCXsKKwkJCS8qCisJCQkgKiBJZiB0aGVyZSB3YXMgYW4gaW52YWxpZGF0 aW9uIG1lc3NhZ2UsIHRoZSB2YXJpYWJsZSBtaWdodCBzdGlsbCBiZQorCQkJICogdmFsaWQsIGJ1 dCB3ZSBoYXZlIHRvIGNoZWNrIHdpdGggdGhlIHN5c3RlbSBjYXRhbG9nLgorCQkJICovCisJCQlp ZiAoaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChzdmFyKSkKKwkJCQlzdmFyLT5pc192YWxpZCA9 IHRydWU7CisJCQllbHNlCisJCQkJLyogaWYgdGhlIHZhbHVlIGNhbm5vdCBiZSB2YWxpZGF0ZWQs IHdlIGhhdmUgdG8gZGlzY2FyZCBpdCAqLworCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1 ZShzdmFyKTsKKwkJfQorCX0KKwllbHNlCisJCXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisKKwkv KgorCSAqIEZvcmNlIHNldHVwIGZvciBub3QgeWV0IGluaXRpYWxpemVkIHZhcmlhYmxlcyBvciB2 YXJpYWJsZXMgdGhhdCBjYW5ub3QKKwkgKiBiZSB2YWxpZGF0ZWQuCisJICovCisJaWYgKCFzdmFy LT5pc192YWxpZCkKKwl7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQpOwor CisJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFz IGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRlZCBieSBSRUFEKSIsCisJCQkgZ2V0X25h bWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJ IGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpLAorCQkJIHZhcmlkKTsKKwl9CisKKwkv KiBlbnN1cmUgdGhlIHJldHVybmVkIGRhdGEgaXMgc3RpbGwgb2YgdGhlIGNvcnJlY3QgZG9tYWlu ICovCisJaWYgKHN2YXItPmlzX2RvbWFpbikKKwl7CisJCS8qCisJCSAqIFN0b3JlICJleHRyYSIg Zm9yIGRvbWFpbl9jaGVjaygpIGluIFRvcFRyYW5zYWN0aW9uQ29udGV4dC4gIFdoZW4gd2UKKwkJ ICogYXJlIGluIGEgbmV3IHRyYW5zYWN0aW9uLCBkb21haW5fY2hlY2tfZXh0cmEgY2FjaGUgaXMg bm90IHZhbGlkIGFueQorCQkgKiBtb3JlLgorCQkgKi8KKwkJaWYgKHN2YXItPmRvbWFpbl9jaGVj a19leHRyYV9seGlkICE9IE15UHJvYy0+dnhpZC5seGlkKQorCQkJc3Zhci0+ZG9tYWluX2NoZWNr X2V4dHJhID0gTlVMTDsKKworCQlkb21haW5fY2hlY2soc3Zhci0+dmFsdWUsIHN2YXItPmlzbnVs bCwKKwkJCQkJIHN2YXItPnR5cGlkLCAmc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhLAorCQkJCQkg VG9wVHJhbnNhY3Rpb25Db250ZXh0KTsKKworCQlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmFfbHhp ZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0KKworCXJldHVybiBzdmFyOworfQorCisvKgorICog U3RvcmUgdGhlIGdpdmVuIHZhbHVlIGluIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGUgY2FjaGUu CisgKgorICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgcGVybWlzc2lvbiBj aGVja3MuCisgKgorICogQXMgYSBzaWRlIGVmZmVjdCwgdGhpcyBmdW5jdGlvbiBhY3F1aXJlcyBh IEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUgc2Vzc2lvbgorICogdmFyaWFibGUgdW50aWwgdGhlIGVu ZCBvZiB0aGUgdHJhbnNhY3Rpb24uCisgKi8KK3ZvaWQKK1NldFNlc3Npb25WYXJpYWJsZShPaWQg dmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKwli b29sCQlmb3VuZDsKKworCS8qIHByb3RlY3QgdXNlZCBzZXNzaW9uIHZhcmlhYmxlIGFnYWluc3Qg RFJPUCAqLworCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAw LCBBY2Nlc3NTaGFyZUxvY2spOworCisJaWYgKCFzZXNzaW9udmFycykKKwkJY3JlYXRlX3Nlc3Np b252YXJzX2hhc2h0YWJsZXMoKTsKKworCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChz ZXNzaW9udmFycywgJnZhcmlkLAorCQkJCQkJCQkgICBIQVNIX0VOVEVSLCAmZm91bmQpOworCisJ aWYgKCFmb3VuZCkKKwl7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQpOwor CisJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFz IGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRlZCBieSBXUklURSkiLAorCQkJIGdldF9u YW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQp KSwKKwkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSwKKwkJCSB2YXJp ZCk7CisJfQorCisJLyogaWYgdGhpcyBmYWlscywgaXQgd29uJ3QgY2hhbmdlIHRoZSBzdG9yZWQg dmFsdWUgKi8KKwlzZXRfc2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YWx1ZSwgaXNOdWxsKTsKK30K KworLyoKKyAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB2YWx1ZSBzdG9yZWQgaW4gYSB2YXJpYWJs ZS4KKyAqLworc3RhdGljIGlubGluZSBEYXR1bQorY29weV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVl KFNWYXJpYWJsZSBzdmFyLCBib29sICppc051bGwpCit7CisJRGF0dW0JCXZhbHVlOworCisJLyog Zm9yY2UgY29weSBvZiBub24gTlVMTCB2YWx1ZSAqLworCWlmICghc3Zhci0+aXNudWxsKQorCXsK KwkJdmFsdWUgPSBkYXR1bUNvcHkoc3Zhci0+dmFsdWUsIHN2YXItPnR5cGJ5dmFsLCBzdmFyLT50 eXBsZW4pOworCQkqaXNOdWxsID0gZmFsc2U7CisJfQorCWVsc2UKKwl7CisJCXZhbHVlID0gKERh dHVtKSAwOworCQkqaXNOdWxsID0gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gdmFsdWU7Cit9CisKKy8q CisgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUg KGluIHRoZSBjdXJyZW50IG1lbW9yeQorICogY29udGV4dCkuICBUaGUgY2FsbGVyIGlzIHJlc3Bv bnNpYmxlIGZvciBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqLworRGF0dW0KK0dldFNlc3Npb25WYXJp YWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKworCXN2 YXIgPSBnZXRfc2Vzc2lvbl92YXJpYWJsZSh2YXJpZCk7CisKKwkvKgorCSAqIEFsdGhvdWdoICJz dmFyIiBpcyBmcmVzaGx5IHZhbGlkYXRlZCBpbiB0aGlzIHBvaW50LCBzdmFyLT5pc192YWxpZCBj YW4KKwkgKiBiZSBmYWxzZSwgaWYgYW4gaW52YWxpZGF0aW9uIG1lc3NhZ2Ugd2FzIHByb2Nlc3Nl ZCBkdXJpbmcgdGhlIGRvbWFpbiBjaGVjay4KKwkgKiBCdXQgdGhlIHZhcmlhYmxlIGFuZCBhbGwg aXRzIGRlcGVuZGVuY2llcyBhcmUgbG9ja2VkIG5vdywgc28gd2UgZG9uJ3QgbmVlZAorCSAqIHRv IHJlcGVhdCB0aGUgdmFsaWRhdGlvbi4KKwkgKi8KKwlyZXR1cm4gY29weV9zZXNzaW9uX3Zhcmlh YmxlX3ZhbHVlKHN2YXIsIGlzTnVsbCk7Cit9CisKKy8qCisgKiBBc3NpZ24gdGhlIHJlc3VsdCBv ZiB0aGUgZXZhbHVhdGVkIGV4cHJlc3Npb24gdG8gdGhlIHNlc3Npb24gdmFyaWFibGUKKyAqLwor dm9pZAorRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJICAgTGV0U3RtdCAq c3RtdCwKKwkJCSAgIFBhcmFtTGlzdEluZm8gcGFyYW1zLAorCQkJICAgUXVlcnlFbnZpcm9ubWVu dCAqcXVlcnlFbnYsCisJCQkgICBRdWVyeUNvbXBsZXRpb24gKnFjKQoreworCVF1ZXJ5CSAgICpx dWVyeSA9IGNhc3ROb2RlKFF1ZXJ5LCBzdG10LT5xdWVyeSk7CisJTGlzdAkgICAqcmV3cml0dGVu OworCURlc3RSZWNlaXZlciAqZGVzdDsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCVBsYW5uZWRT dG10ICpwbGFuOworCVF1ZXJ5RGVzYyAgKnF1ZXJ5RGVzYzsKKwlPaWQJCQl2YXJpZCA9IHF1ZXJ5 LT5yZXN1bHRWYXJpYWJsZTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwkvKiBk byB3ZSBoYXZlIHBlcm1pc3Npb24gdG8gd3JpdGUgdG8gdGhlIHNlc3Npb24gdmFyaWFibGU/ICov CisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQs IEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09L KQorCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwgZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJLyogY3JlYXRlIGEgZGVzdCByZWNlaXZlciBm b3IgTEVUICovCisJZGVzdCA9IENyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKHZhcmlkKTsKKwor CS8qIHJ1biB0aGUgcXVlcnkgcmV3cml0ZXIgKi8KKwlxdWVyeSA9IGNvcHlPYmplY3QocXVlcnkp OworCisJcmV3cml0dGVuID0gUXVlcnlSZXdyaXRlKHF1ZXJ5KTsKKworCUFzc2VydChsaXN0X2xl bmd0aChyZXdyaXR0ZW4pID09IDEpOworCisJcXVlcnkgPSBsaW5pdGlhbF9ub2RlKFF1ZXJ5LCBy ZXdyaXR0ZW4pOworCUFzc2VydChxdWVyeS0+Y29tbWFuZFR5cGUgPT0gQ01EX1NFTEVDVCk7CisK KwkvKiBwbGFuIHRoZSBxdWVyeSAqLworCXBsYW4gPSBwZ19wbGFuX3F1ZXJ5KHF1ZXJ5LCBwc3Rh dGUtPnBfc291cmNldGV4dCwKKwkJCQkJCSBDVVJTT1JfT1BUX1BBUkFMTEVMX09LLCBwYXJhbXMp OworCisJLyoKKwkgKiBVc2UgYSBzbmFwc2hvdCB3aXRoIGFuIHVwZGF0ZWQgY29tbWFuZCBJRCB0 byBlbnN1cmUgdGhpcyBxdWVyeSBzZWVzIHRoZQorCSAqIHJlc3VsdHMgb2YgYW55IHByZXZpb3Vz bHkgZXhlY3V0ZWQgcXVlcmllcy4gIChUaGlzIGNvdWxkIG9ubHkgbWF0dGVyIGlmCisJICogdGhl IHBsYW5uZXIgZXhlY3V0ZWQgYW4gYWxsZWdlZGx5LXN0YWJsZSBmdW5jdGlvbiB0aGF0IGNoYW5n ZWQgdGhlCisJICogZGF0YWJhc2UgY29udGVudHMsIGJ1dCBsZXQncyBkbyBpdCBhbnl3YXkgdG8g YmUgcGFyYWxsZWwgdG8gdGhlIEVYUExBSU4KKwkgKiBjb2RlIHBhdGguKQorCSAqLworCVB1c2hD b3BpZWRTbmFwc2hvdChHZXRBY3RpdmVTbmFwc2hvdCgpKTsKKwlVcGRhdGVBY3RpdmVTbmFwc2hv dENvbW1hbmRJZCgpOworCisJLyogY3JlYXRlIGEgUXVlcnlEZXNjLCByZWRpcmVjdGluZyBvdXRw dXQgdG8gb3VyIHR1cGxlIHJlY2VpdmVyICovCisJcXVlcnlEZXNjID0gQ3JlYXRlUXVlcnlEZXNj KHBsYW4sIE5VTEwsIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJCQlHZXRBY3RpdmVTbmFw c2hvdCgpLCBJbnZhbGlkU25hcHNob3QsCisJCQkJCQkJCWRlc3QsIHBhcmFtcywgcXVlcnlFbnYs IDApOworCisJLyogY2FsbCBFeGVjdXRvclN0YXJ0IHRvIHByZXBhcmUgdGhlIHBsYW4gZm9yIGV4 ZWN1dGlvbiAqLworCUV4ZWN1dG9yU3RhcnQocXVlcnlEZXNjLCAwKTsKKworCS8qCisJICogUnVu IHRoZSBwbGFuIHRvIGNvbXBsZXRpb24uICBUaGUgcmVzdWx0IHNob3VsZCBiZSBvbmx5IG9uZSBy b3cuICBUbworCSAqIGNoZWNrIGlmIHRoZXJlIGFyZSB0b28gbWFueSByZXN1bHQgcm93cywgd2Ug dHJ5IHRvIGZldGNoIHR3by4KKwkgKi8KKwlFeGVjdXRvclJ1bihxdWVyeURlc2MsIEZvcndhcmRT Y2FuRGlyZWN0aW9uLCAyTCk7CisKKwkvKiBzYXZlIHRoZSByb3djb3VudCBpZiB3ZSdyZSBnaXZl biBhIFF1ZXJ5Q29tcGxldGlvbiB0byBmaWxsICovCisJaWYgKHFjKQorCQlTZXRRdWVyeUNvbXBs ZXRpb24ocWMsIENNRFRBR19MRVQsIHF1ZXJ5RGVzYy0+ZXN0YXRlLT5lc19wcm9jZXNzZWQpOwor CisJLyogYW5kIGNsZWFuIHVwICovCisJRXhlY3V0b3JGaW5pc2gocXVlcnlEZXNjKTsKKwlFeGVj dXRvckVuZChxdWVyeURlc2MpOworCisJRnJlZVF1ZXJ5RGVzYyhxdWVyeURlc2MpOworCisJUG9w QWN0aXZlU25hcHNob3QoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01h a2VmaWxlIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUKaW5kZXggMTExMThkMGNlMDIu LjcxMjQ4YTM0ZjI2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQpAQCAtNzYsNiArNzYsNyBAQCBPQkpT ID0gXAogCW5vZGVXaW5kb3dBZ2cubyBcCiAJbm9kZVdvcmt0YWJsZXNjYW4ubyBcCiAJc3BpLm8g XAorCXN2YXJpYWJsZVJlY2VpdmVyLm8gXAogCXRxdWV1ZS5vIFwKIAl0c3RvcmVSZWNlaXZlci5v CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjRXhwci5jCmluZGV4IGYxNTY5ODc5YjUyLi5lNGU5ZGUzMzViNSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjRXhwci5jCkBAIC0xMDQxLDYgKzEwNDEsMzggQEAgRXhlY0luaXRF eHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJCQlzY3JhdGNoLmQucGFy YW0ucGFyYW10eXBlID0gcGFyYW0tPnBhcmFtdHlwZTsKIAkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAo c3RhdGUsICZzY3JhdGNoKTsKIAkJCQkJCWJyZWFrOworCisJCQkJCWNhc2UgUEFSQU1fVkFSSUFC TEU6CisJCQkJCQl7CisJCQkJCQkJaW50CQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gMDsK KwkJCQkJCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqZXNfc2Vzc2lvbl92YXJpYWJsZXMgPSBOVUxM OworCQkJCQkJCVNlc3Npb25WYXJpYWJsZVZhbHVlICp2YXI7CisKKwkJCQkJCQlpZiAoc3RhdGUt PnBhcmVudCAmJiBzdGF0ZS0+cGFyZW50LT5zdGF0ZSkKKwkJCQkJCQl7CisJCQkJCQkJCWVzX3Nl c3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFi bGVzOworCQkJCQkJCQllc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBzdGF0ZS0+cGFyZW50LT5z dGF0ZS0+ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOworCQkJCQkJCX0KKworCQkJCQkJCUFzc2Vy dChlc19zZXNzaW9uX3ZhcmlhYmxlcyk7CisKKwkJCQkJCQkvKiBwYXJhbWV0ZXIgc2FuaXR5IGNo ZWNrcyAqLworCQkJCQkJCWlmIChwYXJhbS0+cGFyYW1pZCA+PSBlc19udW1fc2Vzc2lvbl92YXJp YWJsZXMpCisJCQkJCQkJCWVsb2coRVJST1IsICJwYXJhbWlkIG9mIFBBUkFNX1ZBUklBQkxFIHBh cmFtIGlzIG91dCBvZiByYW5nZSIpOworCisJCQkJCQkJdmFyID0gJmVzX3Nlc3Npb25fdmFyaWFi bGVzW3BhcmFtLT5wYXJhbWlkXTsKKworCQkJCQkJCS8qCisJCQkJCQkJICogSW4gdGhpcyBjYXNl LCBwYXNzIHRoZSB2YWx1ZSBsaWtlIGEKKwkJCQkJCQkgKiBjb25zdGFudC4KKwkJCQkJCQkgKi8K KwkJCQkJCQlzY3JhdGNoLm9wY29kZSA9IEVFT1BfQ09OU1Q7CisJCQkJCQkJc2NyYXRjaC5kLmNv bnN0dmFsLnZhbHVlID0gdmFyLT52YWx1ZTsKKwkJCQkJCQlzY3JhdGNoLmQuY29uc3R2YWwuaXNu dWxsID0gdmFyLT5pc251bGw7CisJCQkJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0 Y2gpOworCQkJCQkJfQorCQkJCQkJYnJlYWs7CisKIAkJCQkJY2FzZSBQQVJBTV9FWFRFUk46CiAK IAkJCQkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwppbmRleCAyZGE4NDg5NzBiZS4uMzE2MWFj OWY1ZjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtNDMsNyArNDMsOSBAQAogI2luY2x1 ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BhcnRpdGlvbi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUu aCIKICNpbmNsdWRlICJjb21tYW5kcy9tYXR2aWV3LmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKICNpbmNsdWRl ICJleGVjdXRvci9leGVjdXRvci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNQYXJ0aXRpb24u aCIKQEAgLTIwNiw2ICsyMDgsNzAgQEAgc3RhbmRhcmRfRXhlY3V0b3JTdGFydChRdWVyeURlc2Mg KnF1ZXJ5RGVzYywgaW50IGVmbGFncykKIAlBc3NlcnQocXVlcnlEZXNjLT5zb3VyY2VUZXh0ICE9 IE5VTEwpOwogCWVzdGF0ZS0+ZXNfc291cmNlVGV4dCA9IHF1ZXJ5RGVzYy0+c291cmNlVGV4dDsK IAorCS8qCisJICogVGhlIGV4ZWN1dG9yIGRvZXNuJ3Qgd29yayB3aXRoIHNlc3Npb24gdmFyaWFi bGVzIGRpcmVjdGx5LiBWYWx1ZXMgb2YKKwkgKiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGVzIGFy ZSBjb3BpZWQgdG8gYSBkZWRpY2F0ZWQgYXJyYXksIGFuZCB0aGlzIGFycmF5CisJICogaXMgcGFz c2VkIHRvIHRoZSBleGVjdXRvci4gVGhpcyBhcnJheSBpcyBzdGFibGUgInNuYXBzaG90IiBvZiB2 YWx1ZXMgb2YKKwkgKiB1c2VkIHNlc3Npb24gdmFyaWFibGVzLiBUaGVyZSBhcmUgdGhyZWUgYmVu ZWZpdHMgb2YgdGhpcyBzdHJhdGVneToKKwkgKgorCSAqIC0gY29uc2lzdGVuY3kgd2l0aCBleHRl cm5hbCBwYXJhbWV0ZXJzIGFuZCBwbHBnc3FsIHZhcmlhYmxlcywKKwkgKgorCSAqIC0gc2Vzc2lv biB2YXJpYWJsZXMgY2FuIGJlIHBhcmFsbGVsIHNhZmUsCisJICoKKwkgKiAtIHdlIGRvbid0IG5l ZWQgbWFrZSBmcmVzaCBjb3B5IGZvciBhbnkgcmVhZCBvZiBzZXNzaW9uIHZhcmlhYmxlCisJICog ICAgKHRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIGludGVybmFsbHkgdGhlIHNlc3Npb24g dmFyaWFibGUgY2FuCisJICogICAgYmUgY2hhbmdlZCBpbnNpZGUgcXVlcnkgZXhlY3V0aW9uIHRp bWUsIGFuZCB0aGVuIGEgcmVmZXJlbmNlIHRvCisJICogICAgcHJldmlvdXNseSByZXR1cm5lZCB2 YWx1ZSBjYW4gYmUgY29ycnVwdGVkKS4KKwkgKi8KKwlpZiAocXVlcnlEZXNjLT5wbGFubmVkc3Rt dC0+c2Vzc2lvblZhcmlhYmxlcykKKwl7CisJCWludAkJCW5TZXNzaW9uVmFyaWFibGVzOworCQlp bnQJCQlpID0gMDsKKworCQkvKgorCQkgKiBJbiB0aGlzIGNhc2UsIHRoZSBxdWVyeSB1c2VzIHNl c3Npb24gdmFyaWFibGVzLCBidXQgd2UgaGF2ZSB0bworCQkgKiBwcmVwYXJlIHRoZSBhcnJheSB3 aXRoIHBhc3NlZCB2YWx1ZXMgKG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMpCisJCSAqIGZpcnN0 LgorCQkgKi8KKwkJQXNzZXJ0KCFJc1BhcmFsbGVsV29ya2VyKCkpOworCQluU2Vzc2lvblZhcmlh YmxlcyA9IGxpc3RfbGVuZ3RoKHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJs ZXMpOworCisJCS8qIGNyZWF0ZSB0aGUgYXJyYXkgdXNlZCBmb3IgcGFzc2luZyB2YWx1ZXMgb2Yg dXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVz ID0gKFNlc3Npb25WYXJpYWJsZVZhbHVlICopCisJCQlwYWxsb2MoblNlc3Npb25WYXJpYWJsZXMg KiBzaXplb2YoU2Vzc2lvblZhcmlhYmxlVmFsdWUpKTsKKworCQkvKiBmaWxsIHRoZSBhcnJheSAq LworCQlmb3JlYWNoX29pZCh2YXJpZCwgcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZh cmlhYmxlcykKKwkJeworCQkJLyoKKwkJCSAqIFBlcm1pc3Npb24gY2hlY2sgc2hvdWxkIGJlIGV4 ZWN1dGVkIG9uIGFsbCBleHBsaWNpdGx5IHVzZWQKKwkJCSAqIHZhcmlhYmxlcyBpbiB0aGUgcXVl cnkuIEZvciBpbXBsaWNpdGx5IHVzZWQgdmFyaWFibGUKKwkJCSAqIChsaWtlIGJhc2Ugbm9kZSBv ZiBhc3NpZ25tZW50IGluZGlyZWN0KSB3ZSBjYW5ub3QgZG8gcGVybWlzc2lvbgorCQkJICogY2hl Y2ssIGJlY2F1c2Ugd2UgbmVlZCByZWFkIHRoZSB2YWx1ZSAoYW5kIHVzZXIgY2FuIGhhdmUKKwkJ CSAqIG9ubHkgVVBEQVRFIHZhcmlhYmxlKS4gSW4gdGhpcyBjYXNlIHRoZSBwZXJtaXNzaW9uIGNo ZWNrCisJCQkgKiBpcyBleGVjdXRlZCBpbiB3cml0ZSB0aW1lLgorCQkJICovCisJCQlpZiAodmFy aWQgIT0gcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+ZXhjbFNlbGVjdFBlcm1DaGVja1ZhcmlkKQor CQkJeworCQkJCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkJCQlhY2xyZXN1bHQgPSBvYmplY3Rf YWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCQkJR2V0VXNlcklk KCksIEFDTF9TRUxFQ1QpOworCQkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQkJ CWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLAorCQkJCQkJCQkgICBn ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisJCQl9CisKKwkJCWVzdGF0ZS0+ZXNf c2Vzc2lvbl92YXJpYWJsZXNbaV0udmFsdWUgPQorCQkJCUdldFNlc3Npb25WYXJpYWJsZSh2YXJp ZCwKKwkJCQkJCQkJICAgJmVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0uaXNudWxsKTsK KworCQkJaSsrOworCQl9CisKKwkJZXN0YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBu U2Vzc2lvblZhcmlhYmxlczsKKwl9CisKIAkvKgogCSAqIEZpbGwgaW4gdGhlIHF1ZXJ5IGVudmly b25tZW50LCBpZiBhbnksIGZyb20gcXVlcnlEZXNjLgogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5i dWlsZAppbmRleCAyY2VhNDFmODc3MS4uNDkxMDkyZmNjNGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29u LmJ1aWxkCkBAIC02NCw2ICs2NCw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ25v ZGVXaW5kb3dBZ2cuYycsCiAgICdub2RlV29ya3RhYmxlc2Nhbi5jJywKICAgJ3NwaS5jJywKKyAg J3N2YXJpYWJsZVJlY2VpdmVyLmMnLAogICAndHF1ZXVlLmMnLAogICAndHN0b3JlUmVjZWl2ZXIu YycsCiApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZl ci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzYxNjNmYjM2ZjYKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCkBAIC0wLDAgKzEs MTcyIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzdmFyaWFibGVSZWNlaXZlci5jCisg KgkgIEFuIGltcGxlbWVudGF0aW9uIG9mIERlc3RSZWNlaXZlciB0aGF0IHN0b3JlcyB0aGUgcmVz dWx0IHZhbHVlIGluCisgKgkgIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqCisgKiBQb3J0aW9ucyBD b3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3Jv dXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVy c2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tl bmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorCisj aW5jbHVkZSAiYWNjZXNzL2RldG9hc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxl LmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgorI2luY2x1ZGUgImV4 ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAic3RvcmFnZS9sb2NrLmgiCisj aW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIK KyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgorCisvKgorICogVGhpcyBEZXN0UmVjZWl2ZXIg aXMgdXNlZCBieSB0aGUgTEVUIGNvbW1hbmQgZm9yIHN0b3JpbmcgdGhlIHJlc3VsdCB0byBhCisg KiBzZXNzaW9uIHZhcmlhYmxlLiAgVGhlIHJlc3VsdCBoYXMgdG8gaGF2ZSBvbmx5IG9uZSB0dXBs ZSB3aXRoIG9ubHkgb25lCisgKiBub24tZGVsZXRlZCBhdHRyaWJ1dGUuICBUaGUgcm93IGNvdW50 ZXIgKGZpZWxkICJyb3dzIikgaXMgaW5jcmVtZW50ZWQKKyAqIGFmdGVyIHJlY2VpdmluZyBhIHJv dywgYW5kIGFuIGVycm9yIGlzIHJhaXNlZCB3aGVuIHRoZXJlIGFyZSBubyByb3dzIG9yCisgKiB0 aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSByZWNlaXZlZCByb3dzLiAgQSByZWNlaXZlZCB0dXBsZSBj YW5ub3QgdG8gaGF2ZQorICogZGVsZXRlZCBhdHRyaWJ1dGVzLiAgVGhlIHZhbHVlIGlzIGRldG9h c3RlZCBiZWZvcmUgc3RvcmluZyBpdCBpbiB0aGUKKyAqIHNlc3Npb24gdmFyaWFibGUuCisgKi8K K3R5cGVkZWYgc3RydWN0Cit7CisJRGVzdFJlY2VpdmVyIHB1YjsKKwlPaWQJCQl2YXJpZDsKKwli b29sCQluZWVkX2RldG9hc3Q7CQkvKiBkbyB3ZSBuZWVkIHRvIGRldG9hc3QgdGhlIGF0dHJpYnV0 ZT8gKi8KKwlpbnQJCQlyb3dzOwkJCQkvKiByb3cgY291bnRlciAqLworfSBTVmFyaWFibGVTdGF0 ZTsKKworLyoKKyAqIFByZXBhcmUgdG8gcmVjZWl2ZSB0dXBsZXMgZnJvbSBleGVjdXRvci4KKyAq Lworc3RhdGljIHZvaWQKK3N2YXJpYWJsZVN0YXJ0dXBSZWNlaXZlcihEZXN0UmVjZWl2ZXIgKnNl bGYsIGludCBvcGVyYXRpb24sIFR1cGxlRGVzYyB0eXBlaW5mbykKK3sKKwlTVmFyaWFibGVTdGF0 ZSAqbXlTdGF0ZSA9IChTVmFyaWFibGVTdGF0ZSAqKSBzZWxmOworCUxPQ0tUQUcJCWxvY2t0YWcg UEdfVVNFRF9GT1JfQVNTRVJUU19PTkxZOworCUZvcm1fcGdfYXR0cmlidXRlIGF0dHI7CisJT2lk CQkJdHlwaWQgUEdfVVNFRF9GT1JfQVNTRVJUU19PTkxZOworCU9pZAkJCWNvbGxpZCBQR19VU0VE X0ZPUl9BU1NFUlRTX09OTFk7CisJaW50MzIJCXR5cG1vZCBQR19VU0VEX0ZPUl9BU1NFUlRTX09O TFk7CisKKwlBc3NlcnQobXlTdGF0ZS0+cHViLm15ZGVzdCA9PSBEZXN0VmFyaWFibGUpOworCUFz c2VydChPaWRJc1ZhbGlkKG15U3RhdGUtPnZhcmlkKSk7CisJQXNzZXJ0KFNlYXJjaFN5c0NhY2hl RXhpc3RzMShWQVJJQUJMRU9JRCwgbXlTdGF0ZS0+dmFyaWQpKTsKKwlBc3NlcnQodHlwZWluZm8t Pm5hdHRzID09IDEpOworCisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORworCisJU0VUX0xPQ0tU QUdfT0JKRUNUKGxvY2t0YWcsCisJCQkJCSAgIE15RGF0YWJhc2VJZCwKKwkJCQkJICAgVmFyaWFi bGVSZWxhdGlvbklkLAorCQkJCQkgICBteVN0YXRlLT52YXJpZCwKKwkJCQkJICAgMCk7CisKKwlB c3NlcnQoTG9ja0hlbGRCeU1lKCZsb2NrdGFnLCBBY2Nlc3NTaGFyZUxvY2ssIGZhbHNlKSk7CisK KyNlbmRpZgorCisJYXR0ciA9IFR1cGxlRGVzY0F0dHIodHlwZWluZm8sIDApOworCisJQXNzZXJ0 KCFhdHRyLT5hdHRpc2Ryb3BwZWQpOworCisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORworCisJ Z2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKG15U3RhdGUtPnZhcmlkLAor CQkJCQkJCQkJCQkmdHlwaWQsCisJCQkJCQkJCQkJCSZ0eXBtb2QsCisJCQkJCQkJCQkJCSZjb2xs aWQpOworCisJQXNzZXJ0KGF0dHItPmF0dHR5cGlkID09IHR5cGlkKTsKKwlBc3NlcnQoYXR0ci0+ YXR0dHlwbW9kIDwgMCB8fCBhdHRyLT5hdHR0eXBtb2QgPT0gdHlwbW9kKTsKKworI2VuZGlmCisK KwlteVN0YXRlLT5uZWVkX2RldG9hc3QgPSBhdHRyLT5hdHRsZW4gPT0gLTE7CisJbXlTdGF0ZS0+ cm93cyA9IDA7Cit9CisKKy8qCisgKiBSZWNlaXZlIGEgdHVwbGUgZnJvbSB0aGUgZXhlY3V0b3Ig YW5kIHN0b3JlIGl0IGluIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICovCitzdGF0aWMgYm9vbAor c3ZhcmlhYmxlUmVjZWl2ZVNsb3QoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIERlc3RSZWNlaXZlciAq c2VsZikKK3sKKwlTVmFyaWFibGVTdGF0ZSAqbXlTdGF0ZSA9IChTVmFyaWFibGVTdGF0ZSAqKSBz ZWxmOworCURhdHVtCQl2YWx1ZTsKKwlib29sCQlpc251bGw7CisJYm9vbAkJZnJlZXZhbCA9IGZh bHNlOworCisJLyogbWFrZSBzdXJlIHRoZSB0dXBsZSBpcyBmdWxseSBkZWNvbnN0cnVjdGVkICov CisJc2xvdF9nZXRhbGxhdHRycyhzbG90KTsKKworCXZhbHVlID0gc2xvdC0+dHRzX3ZhbHVlc1sw XTsKKwlpc251bGwgPSBzbG90LT50dHNfaXNudWxsWzBdOworCisJaWYgKG15U3RhdGUtPm5lZWRf ZGV0b2FzdCAmJiAhaXNudWxsICYmIFZBUkFUVF9JU19FWFRFUk5BTChEYXR1bUdldFBvaW50ZXIo dmFsdWUpKSkKKwl7CisJCXZhbHVlID0gUG9pbnRlckdldERhdHVtKGRldG9hc3RfZXh0ZXJuYWxf YXR0cigoc3RydWN0IHZhcmxlbmEgKikKKwkJCQkJCQkJCQkJCQkgIERhdHVtR2V0UG9pbnRlcih2 YWx1ZSkpKTsKKwkJZnJlZXZhbCA9IHRydWU7CisJfQorCisJbXlTdGF0ZS0+cm93cyArPSAxOwor CisJaWYgKG15U3RhdGUtPnJvd3MgPiAxKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfVE9PX01BTllfUk9XUyksCisJCQkJIGVycm1zZygiZXhwcmVzc2lvbiByZXR1cm5l ZCBtb3JlIHRoYW4gb25lIHJvdyIpKSk7CisKKwlTZXRTZXNzaW9uVmFyaWFibGUobXlTdGF0ZS0+ dmFyaWQsIHZhbHVlLCBpc251bGwpOworCisJaWYgKGZyZWV2YWwpCisJCXBmcmVlKERhdHVtR2V0 UG9pbnRlcih2YWx1ZSkpOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBDbGVhbiB1cCBh dCBlbmQgb2YgdGhlIGV4ZWN1dG9yIHJ1bgorICovCitzdGF0aWMgdm9pZAorc3ZhcmlhYmxlU2h1 dGRvd25SZWNlaXZlcihEZXN0UmVjZWl2ZXIgKnNlbGYpCit7CisJaWYgKCgoU1ZhcmlhYmxlU3Rh dGUgKikgc2VsZiktPnJvd3MgPT0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShF UlJDT0RFX05PX0RBVEFfRk9VTkQpLAorCQkJCSBlcnJtc2coImV4cHJlc3Npb24gcmV0dXJuZWQg bm8gcm93cyIpKSk7Cit9CisKKy8qCisgKiBEZXN0cm95IHRoZSByZWNlaXZlciB3aGVuIHdlIGFy ZSBkb25lIHdpdGggaXQKKyAqLworc3RhdGljIHZvaWQKK3N2YXJpYWJsZURlc3Ryb3lSZWNlaXZl cihEZXN0UmVjZWl2ZXIgKnNlbGYpCit7CisJcGZyZWUoc2VsZik7Cit9CisKKy8qCisgKiBJbml0 aWFsbHkgY3JlYXRlIGEgRGVzdFJlY2VpdmVyIG9iamVjdC4KKyAqLworRGVzdFJlY2VpdmVyICoK K0NyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKE9pZCB2YXJpZCkKK3sKKwlTVmFyaWFibGVTdGF0 ZSAqc2VsZiA9IChTVmFyaWFibGVTdGF0ZSAqKSBwYWxsb2MwKHNpemVvZihTVmFyaWFibGVTdGF0 ZSkpOworCisJc2VsZi0+cHViLnJlY2VpdmVTbG90ID0gc3ZhcmlhYmxlUmVjZWl2ZVNsb3Q7CisJ c2VsZi0+cHViLnJTdGFydHVwID0gc3ZhcmlhYmxlU3RhcnR1cFJlY2VpdmVyOworCXNlbGYtPnB1 Yi5yU2h1dGRvd24gPSBzdmFyaWFibGVTaHV0ZG93blJlY2VpdmVyOworCXNlbGYtPnB1Yi5yRGVz dHJveSA9IHN2YXJpYWJsZURlc3Ryb3lSZWNlaXZlcjsKKwlzZWxmLT5wdWIubXlkZXN0ID0gRGVz dFZhcmlhYmxlOworCisJc2VsZi0+dmFyaWQgPSB2YXJpZDsKKworCXJldHVybiAoRGVzdFJlY2Vp dmVyICopIHNlbGY7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3Mu YyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IDdiYzgyMzUwN2YxLi5kOGZj M2Q5ZmE2OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIv c3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTQzNzUsNiArNDM3NSwxNiBAQCByYXdf ZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVl OwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9MZXRTdG10OgorCQkJeworCQkJCUxldFN0bXQg ICAgKnN0bXQgPSAoTGV0U3RtdCAqKSBub2RlOworCisJCQkJaWYgKFdBTEsoc3RtdC0+dGFyZ2V0 KSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc3RtdC0+cXVlcnkpKQorCQkJCQly ZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfUExBc3NpZ25TdG10OgogCQkJ ewogCQkJCVBMQXNzaWduU3RtdCAqc3RtdCA9IChQTEFzc2lnblN0bXQgKikgbm9kZTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyBiL3NyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL3BsYW5uZXIuYwppbmRleCA1NjZjZTViM2NiNC4uNGE5Mjg4ODMwOGEg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYworKysgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKQEAgLTMzOCw2ICszMzgsMjEgQEAg c3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywg aW50IGN1cnNvck9wdGlvbnMsCiAJZ2xvYi0+bGFzdFBsYW5Ob2RlSWQgPSAwOwogCWdsb2ItPnRy YW5zaWVudFBsYW4gPSBmYWxzZTsKIAlnbG9iLT5kZXBlbmRzT25Sb2xlID0gZmFsc2U7CisJZ2xv Yi0+c2Vzc2lvblZhcmlhYmxlcyA9IE5JTDsKKworCS8qCisJICogVGhlIChzZXNzaW9uKSByZXN1 bHQgdmFyaWFibGUgc2hvdWxkIGJlIHN0b3JlZCB0byBnbG9iYWwsIGJlY2F1c2UKKwkgKiBpdCBp cyBub3Qgc2V0IGluIHN1YnF1ZXJ5LiAgV2hlbiB0aGlzIHZhcmlhYmxlIGlzIHVzZWQgb3RoZXIg dGhhbgorCSAqIGluIGJhc2Ugbm9kZSBvZiBhc3NpZ25tZW50IGluZGlyZWN0aW9uLCB3ZSBuZWVk IHRvIGNoZWNrIHRoZSBhY2Nlc3MKKwkgKiByaWdodHMgKGFuZCB0aGVuIHdlIG5lZWQgdG8gZGV0 ZWN0IHRoaXMgc2l0dWF0aW9uKS4gVGhlIHZhcmlhYmxlIHVzZWQKKwkgKiBsaWtlIGJhc2Ugbm9k ZSBjYW5ub3QgYmUgZGlmZmVyZW50IHRoYW4gdGFyZ2V0IChyZXN1bHQpIHZhcmlhYmxlLgorCSAq IEJlY2F1c2Ugd2Uga25vdyB0aGUgcmVzdWx0IHZhcmlhYmxlIGJlZm9yZSBwbGFubmVyIGludm9j YXRpb24sIHdlCisJICogY2FuIHNpbXBseSBzZWFyY2ggb2YgdXNhZ2UganVzdCB0aGlzIHZhcmlh YmxlLCBhbmQgd2UgZG9uJ3QgbmVlZCB0bworCSAqIHRvIHdhaXQgdW50aWwgdGhlIGVuZCBvZiBw bGFubmluZyB3aGVuIHdlIGtub3cgYmFzZW5vZGVTZXNzaW9uVmFyaWQuCisJICovCisJZ2xvYi0+ cmVzdWx0VmFyaWFibGUgPSBwYXJzZS0+cmVzdWx0VmFyaWFibGU7CisJZ2xvYi0+YmFzZW5vZGVT ZXNzaW9uVmFyaWQgPSBJbnZhbGlkT2lkOworCWdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhclNlbGVj dENoZWNrID0gZmFsc2U7CiAKIAkvKgogCSAqIEFzc2VzcyB3aGV0aGVyIGl0J3MgZmVhc2libGUg dG8gdXNlIHBhcmFsbGVsIG1vZGUgZm9yIHRoaXMgcXVlcnkuIFdlCkBAIC01NzYsNiArNTkxLDIw IEBAIHN0YW5kYXJkX3BsYW5uZXIoUXVlcnkgKnBhcnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJp bmcsIGludCBjdXJzb3JPcHRpb25zLAogCXJlc3VsdC0+cGFyYW1FeGVjVHlwZXMgPSBnbG9iLT5w YXJhbUV4ZWNUeXBlczsKIAkvKiB1dGlsaXR5U3RtdCBzaG91bGQgYmUgbnVsbCwgYnV0IHdlIG1p Z2h0IGFzIHdlbGwgY29weSBpdCAqLwogCXJlc3VsdC0+dXRpbGl0eVN0bXQgPSBwYXJzZS0+dXRp bGl0eVN0bXQ7CisKKwlyZXN1bHQtPnNlc3Npb25WYXJpYWJsZXMgPSBnbG9iLT5zZXNzaW9uVmFy aWFibGVzOworCisJLyoKKwkgKiBUaGUgc2Vzc2lvbiB2YXJpYWJsZSB1c2VkIChhbmQgb25seSB1 c2VkKSBsaWtlIGJhc2Ugbm9kZQorCSAqIGZvciBhc3NpZ25lbW50IGluZGlyZWN0aW9uIHNob3Vs ZCBiZSBleGNsdWRlZCBmcm9tIHBlcm1pc3Npb24KKwkgKiBjaGVjay4KKwkgKi8KKwlpZiAoT2lk SXNWYWxpZChnbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCkgJiYKKwkJKCFnbG9iLT5iYXNlbm9k ZVNlc3Npb25WYXJTZWxlY3RDaGVjaykpCisJCXJlc3VsdC0+ZXhjbFNlbGVjdFBlcm1DaGVja1Zh cmlkID0gZ2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyaWQ7CisJZWxzZQorCQlyZXN1bHQtPmV4Y2xT ZWxlY3RQZXJtQ2hlY2tWYXJpZCA9IEludmFsaWRPaWQ7CisKIAlyZXN1bHQtPnN0bXRfbG9jYXRp b24gPSBwYXJzZS0+c3RtdF9sb2NhdGlvbjsKIAlyZXN1bHQtPnN0bXRfbGVuID0gcGFyc2UtPnN0 bXRfbGVuOwogCkBAIC03NTQsNiArNzgzLDEzIEBAIHN1YnF1ZXJ5X3BsYW5uZXIoUGxhbm5lckds b2JhbCAqZ2xvYiwgUXVlcnkgKnBhcnNlLCBQbGFubmVySW5mbyAqcGFyZW50X3Jvb3QsCiAJICov CiAJcHVsbF91cF9zdWJxdWVyaWVzKHJvb3QpOwogCisJLyoKKwkgKiBDaGVjayBpZiBzb21lIHN1 YnF1ZXJ5IHVzZXMgYSBzZXNzaW9uIHZhcmlhYmxlLiAgVGhlIGZsYWcKKwkgKiBoYXNTZXNzaW9u VmFyaWFibGVzIHNob3VsZCBiZSB0cnVlIGlmIHRoZSBxdWVyeSBvciBzb21lIHN1YnF1ZXJ5IHVz ZXMgYQorCSAqIHNlc3Npb24gdmFyaWFibGUuCisJICovCisJcHVsbF91cF9oYXNfc2Vzc2lvbl92 YXJpYWJsZXMocm9vdCk7CisKIAkvKgogCSAqIElmIHRoaXMgaXMgYSBzaW1wbGUgVU5JT04gQUxM IHF1ZXJ5LCBmbGF0dGVuIGl0IGludG8gYW4gYXBwZW5kcmVsLiBXZQogCSAqIGRvIHRoaXMgbm93 IGJlY2F1c2UgaXQgcmVxdWlyZXMgYXBwbHlpbmcgcHVsbF91cF9zdWJxdWVyaWVzIHRvIHRoZSBs ZWFmCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKaW5kZXggMTUwZTlmMDYwZWUuLmQw NzFiZDBjNTU5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZz LmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jCkBAIC0yMTAsNiAr MjEwLDkgQEAgc3RhdGljIExpc3QgKnNldF9yZXR1cm5pbmdfY2xhdXNlX3JlZmVyZW5jZXMoUGxh bm5lckluZm8gKnJvb3QsCiBzdGF0aWMgTGlzdCAqc2V0X3dpbmRvd2FnZ19ydW5jb25kaXRpb25f cmVmZXJlbmNlcyhQbGFubmVySW5mbyAqcm9vdCwKIAkJCQkJCQkJCQkJCSAgIExpc3QgKnJ1bmNv bmRpdGlvbiwKIAkJCQkJCQkJCQkJCSAgIFBsYW4gKnBsYW4pOworc3RhdGljIGJvb2wgcHVsbF91 cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyKE5vZGUgKm5vZGUsCisJCQkJCQkJCQkJCQkg UGxhbm5lckluZm8gKnJvb3QpOworc3RhdGljIHZvaWQgcmVjb3JkX3BsYW5fdmFyaWFibGVfZGVw ZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHZhcmlkKTsKIAogCiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKQEAgLTEzMTgsNiArMTMyMSw1MCBAQCBzZXRfcGxhbl9yZWZzKFBsYW5uZXJJbmZv ICpyb290LCBQbGFuICpwbGFuLCBpbnQgcnRvZmZzZXQpCiAJcmV0dXJuIHBsYW47CiB9CiAKKy8q CisgKiBTZWFyY2ggdXNhZ2Ugb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgaW4gc3VicXVlcmllcworICov Cit2b2lkCitwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlcyhQbGFubmVySW5mbyAqcm9vdCkK K3sKKwlRdWVyeQkgICAqcXVlcnkgPSByb290LT5wYXJzZTsKKworCWlmIChxdWVyeS0+aGFzU2Vz c2lvblZhcmlhYmxlcykKKwl7CisJCXJvb3QtPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOwor CX0KKwllbHNlCisJeworCQkodm9pZCkgcXVlcnlfdHJlZV93YWxrZXIocXVlcnksCisJCQkJCQkJ CSBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIsCisJCQkJCQkJCSAodm9pZCAq KSByb290LCAwKTsKKwl9Cit9CisKK3N0YXRpYyBib29sCitwdWxsX3VwX2hhc19zZXNzaW9uX3Zh cmlhYmxlc193YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5lckluZm8gKnJvb3QpCit7CisJaWYgKG5v ZGUgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChJc0Eobm9kZSwgUXVlcnkpKQorCXsK KwkJUXVlcnkJICAgKnF1ZXJ5ID0gKFF1ZXJ5ICopIG5vZGU7CisKKwkJaWYgKHF1ZXJ5LT5oYXNT ZXNzaW9uVmFyaWFibGVzKQorCQl7CisJCQlyb290LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1 ZTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJCS8qIHJlY3Vyc2UgaW50byBzdWJzZWxlY3Rz ICovCisJCXJldHVybiBxdWVyeV90cmVlX3dhbGtlcigoUXVlcnkgKikgbm9kZSwKKwkJCQkJCQkJ IHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlciwKKwkJCQkJCQkJICh2b2lkICop IHJvb3QsIDApOworCX0KKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBwdWxs X3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIsCisJCQkJCQkJCSAgKHZvaWQgKikgcm9v dCk7Cit9CisKIC8qCiAgKiBzZXRfaW5kZXhvbmx5c2Nhbl9yZWZlcmVuY2VzCiAgKgkJRG8gc2V0 X3BsYW5fcmVmZXJlbmNlcyBwcm9jZXNzaW5nIG9uIGFuIEluZGV4T25seVNjYW4KQEAgLTIwMTgs OCArMjA2NSw5IEBAIGNvcHlWYXIoVmFyICp2YXIpCiAgKiBUaGlzIGlzIGNvZGUgdGhhdCBpcyBj b21tb24gdG8gYWxsIHZhcmlhbnRzIG9mIGV4cHJlc3Npb24tZml4aW5nLgogICogV2UgbXVzdCBs b29rIHVwIG9wZXJhdG9yIG9wY29kZSBpbmZvIGZvciBPcEV4cHIgYW5kIHJlbGF0ZWQgbm9kZXMs CiAgKiBhZGQgT0lEcyBmcm9tIHJlZ2NsYXNzIENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+ cmVsYXRpb25PaWRzLCBhbmQKLSAqIGFkZCBQbGFuSW52YWxJdGVtcyBmb3IgdXNlci1kZWZpbmVk IGZ1bmN0aW9ucyBpbnRvIHJvb3QtPmdsb2ItPmludmFsSXRlbXMuCi0gKiBXZSBhbHNvIGZpbGwg aW4gY29sdW1uIGluZGV4IGxpc3RzIGZvciBHUk9VUElORygpIGV4cHJlc3Npb25zLgorICogYWRk IFBsYW5JbnZhbEl0ZW1zIGZvciB1c2VyLWRlZmluZWQgZnVuY3Rpb25zIGFuZCBzZXNzaW9uIHZh cmlhYmxlcyBpbnRvCisgKiByb290LT5nbG9iLT5pbnZhbEl0ZW1zLiAgV2UgYWxzbyBmaWxsIGlu IGNvbHVtbiBpbmRleCBsaXN0cyBmb3IgR1JPVVBJTkcoKQorICogZXhwcmVzc2lvbnMuCiAgKgog ICogV2UgYXNzdW1lIGl0J3Mgb2theSB0byB1cGRhdGUgb3Bjb2RlIGluZm8gaW4tcGxhY2UuICBT byB0aGlzIGNvdWxkIHBvc3NpYmx5CiAgKiBzY3JpYmJsZSBvbiB0aGUgcGxhbm5lcidzIGlucHV0 IGRhdGEgc3RydWN0dXJlcywgYnV0IGl0J3MgT0suCkBAIC0yMTA5LDYgKzIxNTcsMTMgQEAgZml4 X2V4cHJfY29tbW9uKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpub2RlKQogCQkJCWctPmNvbHMg PSBjb2xzOwogCQl9CiAJfQorCWVsc2UgaWYgKElzQShub2RlLCBQYXJhbSkpCisJeworCQlQYXJh bQkgICAqcCA9IChQYXJhbSAqKSBub2RlOworCisJCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1f VkFSSUFCTEUpCisJCQlyZWNvcmRfcGxhbl92YXJpYWJsZV9kZXBlbmRlbmN5KHJvb3QsIHAtPnBh cmFtdmFyaWQpOworCX0KIH0KIAogLyoKQEAgLTIxMTgsNiArMjE3MywxMCBAQCBmaXhfZXhwcl9j b21tb24oUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUpCiAgKiBJZiBpdCdzIGEgUEFSQU1f TVVMVElFWFBSLCByZXBsYWNlIGl0IHdpdGggdGhlIGFwcHJvcHJpYXRlIFBhcmFtIGZyb20KICAq IHJvb3QtPm11bHRpZXhwcl9wYXJhbXM7IG90aGVyd2lzZSBubyBjaGFuZ2UgaXMgbmVlZGVkLgog ICogSnVzdCBmb3IgcGFyYW5vaWEncyBzYWtlLCB3ZSBtYWtlIGEgY29weSBvZiB0aGUgbm9kZSBp biBlaXRoZXIgY2FzZS4KKyAqCisgKiBJZiBpdCdzIGEgUEFSQU1fVkFSSUFCTEUsIHRoZW4gd2Ug Y29sbGVjdCB1c2VkIHNlc3Npb24gdmFyaWFibGVzIGluCisgKiB0aGUgbGlzdCByb290LT5nbG9i LT5zZXNzaW9uVmFyaWFibGUuICBBbHNvLCBhc3NpZ24gdGhlIHBhcmFtZXRlcidzCisgKiAicGFy YW1pZCIgdG8gdGhlIHBhcmFtZXRlcidzIHBvc2l0aW9uIGluIHRoYXQgbGlzdC4KICAqLwogc3Rh dGljIE5vZGUgKgogZml4X3BhcmFtX25vZGUoUGxhbm5lckluZm8gKnJvb3QsIFBhcmFtICpwKQpA QCAtMjEzNiw2ICsyMTk1LDYyIEBAIGZpeF9wYXJhbV9ub2RlKFBsYW5uZXJJbmZvICpyb290LCBQ YXJhbSAqcCkKIAkJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIFBBUkFNX01VTFRJRVhQUiBJRDog JWQiLCBwLT5wYXJhbWlkKTsKIAkJcmV0dXJuIGNvcHlPYmplY3QobGlzdF9udGgocGFyYW1zLCBj b2xubyAtIDEpKTsKIAl9CisKKwlpZiAocC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQor CXsKKwkJaW50CQkJbiA9IDA7CisJCWJvb2wJCWZvdW5kID0gZmFsc2U7CisKKwkJLyogd2Ugd2ls bCBtb2RpZnkgb2JqZWN0ICovCisJCXAgPSAoUGFyYW0gKikgY29weU9iamVjdChwKTsKKworCQkv KgorCQkgKiBOb3csIHdlIGNhbiBhY3R1YWxpemUgbGlzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcywg YW5kIHdlIGNhbgorCQkgKiBjb21wbGV0ZSBwYXJhbWlkIHBhcmFtZXRlci4KKwkJICovCisJCWZv cmVhY2hfb2lkKHZhcmlkLCByb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzKQorCQl7CisJCQlp ZiAodmFyaWQgPT0gcC0+cGFyYW12YXJpZCkKKwkJCXsKKwkJCQlwLT5wYXJhbWlkID0gbjsKKwkJ CQlmb3VuZCA9IHRydWU7CisJCQkJYnJlYWs7CisJCQl9CisJCQluICs9IDE7CisJCX0KKworCQlp ZiAoIWZvdW5kKQorCQl7CisJCQlyb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzID0gbGFwcGVu ZF9vaWQocm9vdC0+Z2xvYi0+c2Vzc2lvblZhcmlhYmxlcywKKwkJCQkJCQkJCQkJCQkgICBwLT5w YXJhbXZhcmlkKTsKKwkJCXAtPnBhcmFtaWQgPSBuOworCQl9CisKKwkJLyoKKwkJICogV2UgZG8g U0VMRUNUIHBlcm1pc3Npb24gY2hlY2sgb2YgYWxsIHZhcmlhYmxlcyB1c2VkIGJ5CisJCSAqIHRo ZSBxdWVyeSBleGNsdWRpbmcgdGhlIHZhcmlhYmxlIHRoYXQgaXMgdXNlZCBvbmx5IGFzIGJhc2Ug bm9kZQorCQkgKiBvZiBhc3NpZ25tZW50IGluZGlyZWN0aW9uLiBUaGUgdmFyaWFibGUgaWQgYXNz aWduZWQgdG8gdGhpcyBwYXJhbQorCQkgKiBzaG91bGQgYmUgc2FtZSBsaWtlIHJlc3VsdFZhcmlh YmxlIGlkLCBhbmQgdGhpcyBwYXJhbSBzaG91bGQgYmUKKwkJICogdXNlZCBvbmx5IG9uY2UgaW4g cXVlcnkuIFdoZW4gdGhlIHZhcmlhYmxlIGlzIHJlZmVyZW5jZWQgYnkgYW55CisJCSAqIG90aGVy IHBhcmFtLCB3ZSBzaG91bGQgdG8gZG8gU0VMRUNUIHBlcm1pc3Npb24gY2hlY2sgZm9yIHRoaXMg dmFyaWFibGUKKwkJICogdG9vLgorCQkgKi8KKwkJaWYgKHAtPnBhcmFtYmFzZW5vZGUpCisJCXsK KwkJCUFzc2VydCghT2lkSXNWYWxpZChyb290LT5nbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCkp OworCQkJQXNzZXJ0KHJvb3QtPmdsb2ItPnJlc3VsdFZhcmlhYmxlID09IHAtPnBhcmFtdmFyaWQp OworCisJCQlyb290LT5nbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCA9IHAtPnBhcmFtdmFyaWQ7 CisJCX0KKwkJZWxzZQorCQl7CisJCQlpZiAocC0+cGFyYW12YXJpZCA9PSByb290LT5nbG9iLT5y ZXN1bHRWYXJpYWJsZSkKKwkJCQlyb290LT5nbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJTZWxlY3RD aGVjayA9IHRydWU7CisJCX0KKworCQlyZXR1cm4gKE5vZGUgKikgcDsKKwl9CisKIAlyZXR1cm4g KE5vZGUgKikgY29weU9iamVjdChwKTsKIH0KIApAQCAtMjE5Nyw3ICsyMzEyLDEwIEBAIGZpeF9h bHRlcm5hdGl2ZV9zdWJwbGFuKFBsYW5uZXJJbmZvICpyb290LCBBbHRlcm5hdGl2ZVN1YlBsYW4g KmFzcGxhbiwKICAqIHJlcGxhY2luZyBBZ2dyZWYgbm9kZXMgdGhhdCBzaG91bGQgYmUgcmVwbGFj ZWQgYnkgaW5pdHBsYW4gb3V0cHV0IFBhcmFtcywKICAqIGNob29zaW5nIHRoZSBiZXN0IGltcGxl bWVudGF0aW9uIGZvciBBbHRlcm5hdGl2ZVN1YlBsYW5zLAogICogbG9va2luZyB1cCBvcGVyYXRv ciBvcGNvZGUgaW5mbyBmb3IgT3BFeHByIGFuZCByZWxhdGVkIG5vZGVzLAotICogYW5kIGFkZGlu ZyBPSURzIGZyb20gcmVnY2xhc3MgQ29uc3Qgbm9kZXMgaW50byByb290LT5nbG9iLT5yZWxhdGlv bk9pZHMuCisgKiBhZGRpbmcgT0lEcyBmcm9tIHJlZ2NsYXNzIENvbnN0IG5vZGVzIGludG8gcm9v dC0+Z2xvYi0+cmVsYXRpb25PaWRzLAorICogYXNzaWduaW5nIHBhcmFtdmFyaWQgdG8gUEFSQU1f VkFSSUFCTEUgcGFyYW1zLCBhbmQgY29sbGVjdGluZyB0aGUKKyAqIE9JRHMgb2Ygc2Vzc2lvbiB2 YXJpYWJsZXMgaW4gdGhlIHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMgbGlzdAorICogKHBh cmFtdmFyaWQgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoaXMg bGlzdCkuCiAgKgogICogJ25vZGUnOiB0aGUgZXhwcmVzc2lvbiB0byBiZSBtb2RpZmllZAogICog J3J0b2Zmc2V0JzogaG93IG11Y2ggdG8gaW5jcmVtZW50IHZhcm5vcyBieQpAQCAtMjIxOSw3ICsy MzM3LDggQEAgZml4X3NjYW5fZXhwcihQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSwgaW50 IHJ0b2Zmc2V0LCBkb3VibGUgbnVtX2V4ZWMpCiAJCXJvb3QtPm11bHRpZXhwcl9wYXJhbXMgIT0g TklMIHx8CiAJCXJvb3QtPmdsb2ItPmxhc3RQSElkICE9IDAgfHwKIAkJcm9vdC0+bWlubWF4X2Fn Z3MgIT0gTklMIHx8Ci0JCXJvb3QtPmhhc0FsdGVybmF0aXZlU3ViUGxhbnMpCisJCXJvb3QtPmhh c0FsdGVybmF0aXZlU3ViUGxhbnMgfHwKKwkJcm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAl7 CiAJCXJldHVybiBmaXhfc2Nhbl9leHByX211dGF0b3Iobm9kZSwgJmNvbnRleHQpOwogCX0KQEAg LTM2MTIsNiArMzczMSwyNSBAQCByZWNvcmRfcGxhbl90eXBlX2RlcGVuZGVuY3koUGxhbm5lcklu Zm8gKnJvb3QsIE9pZCB0eXBpZCkKIAl9CiB9CiAKKy8qCisgKiBSZWNvcmQgZGVwZW5kZW5jeSBv biBhIHNlc3Npb24gdmFyaWFibGUuICBUaGUgdmFyaWFibGUgY2FuIGJlIHVzZWQgYXMgYQorICog c2Vzc2lvbiB2YXJpYWJsZSBpbiBhbiBleHByZXNzaW9uIGxpc3QsIG9yIGFzIHRoZSB0YXJnZXQg b2YgYSBMRVQgc3RhdGVtZW50LgorICovCitzdGF0aWMgdm9pZAorcmVjb3JkX3BsYW5fdmFyaWFi bGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHZhcmlkKQoreworCVBsYW5JbnZh bEl0ZW0gKmludmFsX2l0ZW0gPSBtYWtlTm9kZShQbGFuSW52YWxJdGVtKTsKKworCS8qIHBhcmFt aWQgaXMgc3RpbGwgc2Vzc2lvbiB2YXJpYWJsZSBpZCAqLworCWludmFsX2l0ZW0tPmNhY2hlSWQg PSBWQVJJQUJMRU9JRDsKKwlpbnZhbF9pdGVtLT5oYXNoVmFsdWUgPSBHZXRTeXNDYWNoZUhhc2hW YWx1ZTEoVkFSSUFCTEVPSUQsCisJCQkJCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0odmFyaWQp KTsKKworCS8qIGFwcGVuZCB0aGlzIHZhcmlhYmxlIHRvIGdsb2JhbCwgcmVnaXN0ZXIgZGVwZW5k ZW5jeSAqLworCXJvb3QtPmdsb2ItPmludmFsSXRlbXMgPSBsYXBwZW5kKHJvb3QtPmdsb2ItPmlu dmFsSXRlbXMsCisJCQkJCQkJCQkgaW52YWxfaXRlbSk7Cit9CisKIC8qCiAgKiBleHRyYWN0X3F1 ZXJ5X2RlcGVuZGVuY2llcwogICoJCUdpdmVuIGEgcmV3cml0dGVuLCBidXQgbm90IHlldCBwbGFu bmVkLCBxdWVyeSBvciBxdWVyaWVzCkBAIC0zNjk3LDkgKzM4MzUsOSBAQCBleHRyYWN0X3F1ZXJ5 X2RlcGVuZGVuY2llc193YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5lckluZm8gKmNvbnRleHQpCiAJ CQl9CiAKIAkJCS8qCi0JCQkgKiBJZ25vcmUgb3RoZXIgdXRpbGl0eSBzdGF0ZW1lbnRzLCBleGNl cHQgdGhvc2UgKHN1Y2ggYXMgRVhQTEFJTikKLQkJCSAqIHRoYXQgY29udGFpbiBhIHBhcnNlZC1i dXQtbm90LXBsYW5uZWQgcXVlcnkuICBGb3IgdGhvc2UsIHdlCi0JCQkgKiBqdXN0IG5lZWQgdG8g dHJhbnNmZXIgb3VyIGF0dGVudGlvbiB0byB0aGUgY29udGFpbmVkIHF1ZXJ5LgorCQkJICogSWdu b3JlIG90aGVyIHV0aWxpdHkgc3RhdGVtZW50cywgZXhjZXB0IHRob3NlIChzdWNoIGFzIEVYUExB SU4KKwkJCSAqIG9yIExFVCkgdGhhdCBjb250YWluIGEgcGFyc2VkLWJ1dC1ub3QtcGxhbm5lZCBx dWVyeS4gIEZvciB0aG9zZSwKKwkJCSAqIHdlIGp1c3QgbmVlZCB0byB0cmFuc2ZlciBvdXIgYXR0 ZW50aW9uIHRvIHRoZSBjb250YWluZWQgcXVlcnkuCiAJCQkgKi8KIAkJCXF1ZXJ5ID0gVXRpbGl0 eUNvbnRhaW5zUXVlcnkocXVlcnktPnV0aWxpdHlTdG10KTsKIAkJCWlmIChxdWVyeSA9PSBOVUxM KQpAQCAtMzcyMiw2ICszODYwLDEwIEBAIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtl cihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqY29udGV4dCkKIAkJCQkJbGFwcGVuZF9vaWQoY29u dGV4dC0+Z2xvYi0+cmVsYXRpb25PaWRzLCBydGUtPnJlbGlkKTsKIAkJfQogCisJCS8qIHJlY29y ZCBkZXBlbmRlbmN5IG9uIHRoZSB0YXJnZXQgdmFyaWFibGUgb2YgYSBMRVQgY29tbWFuZCAqLwor CQlpZiAoT2lkSXNWYWxpZChxdWVyeS0+cmVzdWx0VmFyaWFibGUpKQorCQkJcmVjb3JkX3BsYW5f dmFyaWFibGVfZGVwZW5kZW5jeShjb250ZXh0LCBxdWVyeS0+cmVzdWx0VmFyaWFibGUpOworCiAJ CS8qIEFuZCByZWN1cnNlIGludG8gdGhlIHF1ZXJ5J3Mgc3ViZXhwcmVzc2lvbnMgKi8KIAkJcmV0 dXJuIHF1ZXJ5X3RyZWVfd2Fsa2VyKHF1ZXJ5LCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193 YWxrZXIsCiAJCQkJCQkJCSBjb250ZXh0LCAwKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29w dGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAv cHJlcGpvaW50cmVlLmMKaW5kZXggODdkYzZmNTZiNTcuLjFlYmM4MDhhNWU2IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYworKysgYi9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYwpAQCAtMTU4NSw2ICsxNTg1LDkgQEAg cHVsbF91cF9zaW1wbGVfc3VicXVlcnkoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKmp0bm9kZSwg UmFuZ2VUYmxFbnRyeSAqcnRlLAogCS8qIElmIHN1YnF1ZXJ5IGhhZCBhbnkgUkxTIGNvbmRpdGlv bnMsIG5vdyBtYWluIHF1ZXJ5IGRvZXMgdG9vICovCiAJcGFyc2UtPmhhc1Jvd1NlY3VyaXR5IHw9 IHN1YnF1ZXJ5LT5oYXNSb3dTZWN1cml0eTsKIAorCS8qIGlmIHRoZSBzdWJxdWVyeSBoYWQgc2Vz c2lvbiB2YXJpYWJsZXMsIHRoZSBtYWluIHF1ZXJ5IGRvZXMgdG9vICovCisJcGFyc2UtPmhhc1Nl c3Npb25WYXJpYWJsZXMgfD0gc3VicXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXM7CisKIAkvKgog CSAqIHN1YnF1ZXJ5IHdvbid0IGJlIHB1bGxlZCB1cCBpZiBpdCBoYXNBZ2dzLCBoYXNXaW5kb3dG dW5jcywgb3IKIAkgKiBoYXNUYXJnZXRTUkZzLCBzbyBubyB3b3JrIG5lZWRlZCBvbiB0aG9zZSBm bGFncwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jIGIv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCmluZGV4IDI2YTNlMDUwMDg2Li4y M2NhZmM3M2MzYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNl cy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwpAQCAtMjQsNiAr MjQsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJj b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3Iu aCIKICNpbmNsdWRlICJleGVjdXRvci9mdW5jdGlvbnMuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgi CkBAIC05MzYsNiArOTM3LDEzIEBAIG1heF9wYXJhbGxlbF9oYXphcmRfd2Fsa2VyKE5vZGUgKm5v ZGUsIG1heF9wYXJhbGxlbF9oYXphcmRfY29udGV4dCAqY29udGV4dCkKIAkJaWYgKHBhcmFtLT5w YXJhbWtpbmQgPT0gUEFSQU1fRVhURVJOKQogCQkJcmV0dXJuIGZhbHNlOwogCisJCS8qIHdlIGRv bid0IHN1cHBvcnQgcGFzc2luZyBzZXNzaW9uIHZhcmlhYmxlcyB0byB3b3JrZXJzICovCisJCWlm IChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQl7CisJCQlpZiAobWF4X3Bh cmFsbGVsX2hhemFyZF90ZXN0KFBST1BBUkFMTEVMX1JFU1RSSUNURUQsIGNvbnRleHQpKQorCQkJ CXJldHVybiB0cnVlOworCQl9CisKIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhF QyB8fAogCQkJIWxpc3RfbWVtYmVyX2ludChjb250ZXh0LT5zYWZlX3BhcmFtX2lkcywgcGFyYW0t PnBhcmFtaWQpKQogCQl7CkBAIC0yMzkxLDYgKzIzOTksNyBAQCBjb252ZXJ0X3Nhb3BfdG9faGFz aGVkX3Nhb3Bfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAgKgkgIHZhbHVlIG9m IHRoZSBQYXJhbS4KICAqIDIuIEZvbGQgc3RhYmxlLCBhcyB3ZWxsIGFzIGltbXV0YWJsZSwgZnVu Y3Rpb25zIHRvIGNvbnN0YW50cy4KICAqIDMuIFJlZHVjZSBQbGFjZUhvbGRlclZhciBub2RlcyB0 byB0aGVpciBjb250YWluZWQgZXhwcmVzc2lvbnMuCisgKiA0LiBDdXJyZW50IHZhbHVlIG9mIHNl c3Npb24gdmFyaWFibGUgY2FuIGJlIHVzZWQgZm9yIGVzdGltYXRpb24gdG9vLgogICotLS0tLS0t LS0tLS0tLS0tLS0tLQogICovCiBOb2RlICoKQEAgLTI1MTcsNiArMjUyNiwyNyBAQCBldmFsX2Nv bnN0X2V4cHJlc3Npb25zX211dGF0b3IoTm9kZSAqbm9kZSwKIAkJCQkJCX0KIAkJCQkJfQogCQkJ CX0KKwkJCQllbHNlIGlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFICYmCisJ CQkJCQkgY29udGV4dC0+ZXN0aW1hdGUpCisJCQkJeworCQkJCQlpbnQxNgkJdHlwTGVuOworCQkJ CQlib29sCQl0eXBCeVZhbDsKKwkJCQkJRGF0dW0JCXB2YWw7CisJCQkJCWJvb2wJCWlzbnVsbDsK KworCQkJCQlnZXRfdHlwbGVuYnl2YWwocGFyYW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCSZ0eXBM ZW4sICZ0eXBCeVZhbCk7CisKKwkJCQkJcHZhbCA9IEdldFNlc3Npb25WYXJpYWJsZShwYXJhbS0+ cGFyYW12YXJpZCwgJmlzbnVsbCk7CisKKwkJCQkJcmV0dXJuIChOb2RlICopIG1ha2VDb25zdChw YXJhbS0+cGFyYW10eXBlLAorCQkJCQkJCQkJCQkgIHBhcmFtLT5wYXJhbXR5cG1vZCwKKwkJCQkJ CQkJCQkJICBwYXJhbS0+cGFyYW1jb2xsaWQsCisJCQkJCQkJCQkJCSAgKGludCkgdHlwTGVuLAor CQkJCQkJCQkJCQkgIHB2YWwsCisJCQkJCQkJCQkJCSAgaXNudWxsLAorCQkJCQkJCQkJCQkgIHR5 cEJ5VmFsKTsKKwkJCQl9CiAKIAkJCQkvKgogCQkJCSAqIE5vdCByZXBsYWNlYWJsZSwgc28ganVz dCBjb3B5IHRoZSBQYXJhbSAobm8gbmVlZCB0bwpAQCAtNDcyMiw3ICs0NzUyLDggQEAgaW5saW5l X2Z1bmN0aW9uKE9pZCBmdW5jaWQsIE9pZCByZXN1bHRfdHlwZSwgT2lkIHJlc3VsdF9jb2xsaWQs CiAJCXF1ZXJ5dHJlZS0+bGltaXRPZmZzZXQgfHwKIAkJcXVlcnl0cmVlLT5saW1pdENvdW50IHx8 CiAJCXF1ZXJ5dHJlZS0+c2V0T3BlcmF0aW9ucyB8fAotCQlsaXN0X2xlbmd0aChxdWVyeXRyZWUt PnRhcmdldExpc3QpICE9IDEpCisJCShsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRhcmdldExpc3Qp ICE9IDEpIHx8CisJCXF1ZXJ5dHJlZS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAkJZ290byBmYWls OwogCiAJLyogSWYgdGhlIGZ1bmN0aW9uIHJlc3VsdCBpcyBjb21wb3NpdGUsIHJlc29sdmUgaXQg Ki8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IDFmNGQ2YWRkYTUyLi4zZGYyMTlmOThkMiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvYW5hbHl6ZS5jCkBAIC0yNSw5ICsyNSwxMiBAQAogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAK ICNpbmNsdWRlICJhY2Nlc3Mvc3lzYXR0ci5oIgorI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2RlZnJlbS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNp bmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNs dWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKQEAgLTUxLDYgKzU0LDcgQEAKICNpbmNsdWRlICJ1dGls cy9iYWNrZW5kX3N0YXR1cy5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVk ZSAidXRpbHMvZ3VjLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAi dXRpbHMvcmVsLmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIApAQCAtODMsNiArODcs OCBAQCBzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybUNyZWF0ZVRhYmxlQXNTdG10KFBhcnNlU3RhdGUg KnBzdGF0ZSwKIAkJCQkJCQkJCQkgQ3JlYXRlVGFibGVBc1N0bXQgKnN0bXQpOwogc3RhdGljIFF1 ZXJ5ICp0cmFuc2Zvcm1DYWxsU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCUNhbGxT dG10ICpzdG10KTsKK3N0YXRpYyBRdWVyeSAqdHJhbnNmb3JtTGV0U3RtdChQYXJzZVN0YXRlICpw c3RhdGUsCisJCQkJCQkJICAgTGV0U3RtdCAqc3RtdCk7CiBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1M b2NraW5nQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUXVlcnkgKnFyeSwKIAkJCQkJCQkJICAg TG9ja2luZ0NsYXVzZSAqbGMsIGJvb2wgcHVzaGVkRG93bik7CiAjaWZkZWYgREVCVUdfTk9ERV9U RVNUU19FTkFCTEVECkBAIC00MTQsNiArNDIwLDcgQEAgdHJhbnNmb3JtU3RtdChQYXJzZVN0YXRl ICpwc3RhdGUsIE5vZGUgKnBhcnNlVHJlZSkKIAkJCWNhc2UgVF9VcGRhdGVTdG10OgogCQkJY2Fz ZSBUX0RlbGV0ZVN0bXQ6CiAJCQljYXNlIFRfTWVyZ2VTdG10OgorCQkJY2FzZSBUX0xldFN0bXQ6 CiAJCQkJKHZvaWQpIHRlc3RfcmF3X2V4cHJlc3Npb25fY292ZXJhZ2UocGFyc2VUcmVlLCBOVUxM KTsKIAkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CkBAIC00OTMsNiArNTAwLDExIEBAIHRyYW5zZm9y bVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpwYXJzZVRyZWUpCiAJCQkJCQkJCQkgICAo Q2FsbFN0bXQgKikgcGFyc2VUcmVlKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9MZXRTdG10Ogor CQkJcmVzdWx0ID0gdHJhbnNmb3JtTGV0U3RtdChwc3RhdGUsCisJCQkJCQkJCQkgIChMZXRTdG10 ICopIHBhcnNlVHJlZSk7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCiAJCQkvKgpAQCAtNTQ1 LDYgKzU1Nyw3IEBAIHN0bXRfcmVxdWlyZXNfcGFyc2VfYW5hbHlzaXMoUmF3U3RtdCAqcGFyc2VU cmVlKQogCQljYXNlIFRfU2VsZWN0U3RtdDoKIAkJY2FzZSBUX1JldHVyblN0bXQ6CiAJCWNhc2Ug VF9QTEFzc2lnblN0bXQ6CisJCWNhc2UgVF9MZXRTdG10OgogCQkJcmVzdWx0ID0gdHJ1ZTsKIAkJ CWJyZWFrOwogCkBAIC02OTIsNiArNzA1LDcgQEAgdHJhbnNmb3JtRGVsZXRlU3RtdChQYXJzZVN0 YXRlICpwc3RhdGUsIERlbGV0ZVN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBz dGF0ZS0+cF9oYXNXaW5kb3dGdW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBf aGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdnczsKKwlxcnkt Pmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAog CWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMTExNyw2ICsxMTMx LDcgQEAgdHJhbnNmb3JtSW5zZXJ0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIEluc2VydFN0bXQg KnN0bXQpCiAKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsK IAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXFyeS0+aGFzU2Vz c2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWdu X3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0xNTgyLDYgKzE1OTcsNyBAQCB0 cmFuc2Zvcm1TZWxlY3RTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkK IAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+ aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9 IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+ cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJZm9yZWFjaChsLCBzdG10LT5sb2NraW5nQ2xhdXNl KQogCXsKQEAgLTE4MDgsMTIgKzE4MjQsMjQxIEBAIHRyYW5zZm9ybVZhbHVlc0NsYXVzZShQYXJz ZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQgKnN0bXQpCiAJcXJ5LT5qb2ludHJlZSA9IG1ha2VG cm9tRXhwcihwc3RhdGUtPnBfam9pbmxpc3QsIE5VTEwpOwogCiAJcXJ5LT5oYXNTdWJMaW5rcyA9 IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3Rh dGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBz dGF0ZSwgcXJ5KTsKIAogCXJldHVybiBxcnk7CiB9CiAKKy8qCisgKiB0cmFuc2Zvcm1MZXRTdG10 IC0KKyAqCSAgdHJhbnNmb3JtIGFuIExldCBTdGF0ZW1lbnQKKyAqLworc3RhdGljIFF1ZXJ5ICoK K3RyYW5zZm9ybUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10ICpzdG10KQorewor CVF1ZXJ5CSAgICpxdWVyeTsKKwlRdWVyeQkgICAqcmVzdWx0OworCUxpc3QJICAgKmV4cHJMaXN0 ID0gTklMOworCUxpc3QJICAgKmV4cHJMaXN0Q29lciA9IE5JTDsKKwlMaXN0Q2VsbCAgICpsYzsK KwlMaXN0Q2VsbCAgICppbmRpcmVjdGlvbl9oZWFkID0gTlVMTDsKKwlRdWVyeQkgICAqc2VsZWN0 UXVlcnk7CisJT2lkCQkJdmFyaWQ7CisJY2hhcgkgICAqYXR0cm5hbWUgPSBOVUxMOworCWJvb2wJ CW5vdF91bmlxdWU7CisJYm9vbAkJaXNfcm93dHlwZTsKKwlPaWQJCQl0eXBpZDsKKwlpbnQzMgkJ dHlwbW9kOworCU9pZAkJCWNvbGxpZDsKKwlMaXN0CSAgICpuYW1lcyA9IE5VTEw7CisJaW50CQkJ aW5kaXJlY3Rpb25fc3RhcnQ7CisJaW50CQkJaSA9IDA7CisKKwkvKiB0aGVyZSBjYW4ndCBiZSBh bnkgb3V0ZXIgV0lUSCB0byB3b3JyeSBhYm91dCAqLworCUFzc2VydChwc3RhdGUtPnBfY3RlbmFt ZXNwYWNlID09IE5JTCk7CisKKwluYW1lcyA9IE5hbWVzRnJvbUxpc3Qoc3RtdC0+dGFyZ2V0KTsK KworCS8qIGxvY2tzIHRoZSB2YXJpYWJsZSB3aXRoIGFuIEFjY2Vzc1NoYXJlTG9jayAqLworCXZh cmlkID0gSWRlbnRpZnlWYXJpYWJsZShuYW1lcywgJmF0dHJuYW1lLCAmbm90X3VuaXF1ZSwgZmFs c2UpOworCWlmIChub3RfdW5pcXVlKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVS UkNPREVfQU1CSUdVT1VTX1BBUkFNRVRFUiksCisJCQkJIGVycm1zZygidGFyZ2V0IFwiJXNcIiBv ZiBMRVQgY29tbWFuZCBpcyBhbWJpZ3VvdXMiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1l cykpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5sb2NhdGlvbikpKTsK KworCWlmICghT2lkSXNWYWxpZCh2YXJpZCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlh YmxlIFwiJXNcIiBkb2Vzbid0IGV4aXN0IiwKKwkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMp KSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgc3RtdC0+bG9jYXRpb24pKSk7CisK KwkvKgorCSAqIENhbGN1bGF0ZSBzdGFydCBvZiBwb3NzaWJsZSBwb3NpdGlvbiBvZiBhbiBpbmRp cmVjdGlvbiBpbiBsaXN0LCBhbmQKKwkgKiB3aGVuIGl0IGlzIGluc2lkZSB0aGUgbGlzdCwgc3Rv cmUgcG9pbnRlciBvbiBmaXJzdCBub2RlIG9mIGluZGlyZWN0aW9uLgorCSAqLworCWluZGlyZWN0 aW9uX3N0YXJ0ID0gbGlzdF9sZW5ndGgobmFtZXMpIC0gKGF0dHJuYW1lID8gMSA6IDApOworCWlm IChsaXN0X2xlbmd0aChzdG10LT50YXJnZXQpID4gaW5kaXJlY3Rpb25fc3RhcnQpCisJCWluZGly ZWN0aW9uX2hlYWQgPSBsaXN0X250aF9jZWxsKHN0bXQtPnRhcmdldCwgaW5kaXJlY3Rpb25fc3Rh cnQpOworCisJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKHZhcmlkLCAm dHlwaWQsICZ0eXBtb2QsICZjb2xsaWQpOworCisJaXNfcm93dHlwZSA9IHR5cGVfaXNfcm93dHlw ZSh0eXBpZCk7CisKKwlpZiAoYXR0cm5hbWUgJiYgIWlzX3Jvd3R5cGUpCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJIGVycm1z ZygiY2Fubm90IGFzc2lnbiB0byBmaWVsZCBcIiVzXCIgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBcIiVz LiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIsCisJCQkJ CQlhdHRybmFtZSwKKwkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFy aWQpLAorCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0 aW9uKHBzdGF0ZSwgc3RtdC0+bG9jYXRpb24pKSk7CisKKwlwc3RhdGUtPnBfZXhwcl9raW5kID0g RVhQUl9LSU5EX0xFVF9UQVJHRVQ7CisKKwkvKiB3ZSBuZWVkIHRvIHBvc3Rwb25lIGNvbnZlcnNp b24gb2YgInVua25vd24iIHRvIHRleHQgKi8KKwlwc3RhdGUtPnBfcmVzb2x2ZV91bmtub3ducyA9 IGZhbHNlOworCisJc2VsZWN0UXVlcnkgPSB0cmFuc2Zvcm1TdG10KHBzdGF0ZSwgc3RtdC0+cXVl cnkpOworCisJLyogdGhlIGdyYW1tYXIgc2hvdWxkIGhhdmUgcHJvZHVjZWQgYSBTRUxFQ1QgKi8K KwlBc3NlcnQoSXNBKHNlbGVjdFF1ZXJ5LCBRdWVyeSkgJiYgc2VsZWN0UXVlcnktPmNvbW1hbmRU eXBlID09IENNRF9TRUxFQ1QpOworCisJLyoKKwkgKiBHZW5lcmF0ZSBhbiBleHByZXNzaW9uIGxp c3QgZm9yIHRoZSBMRVQgdGhhdCBzZWxlY3RzIGFsbCB0aGUgbm9uLXJlc2p1bmsKKwkgKiBjb2x1 bW5zIGZyb20gdGhlIHN1YnF1ZXJ5LgorCSAqLworCWV4cHJMaXN0ID0gTklMOworCWZvcmVhY2hf bm9kZShUYXJnZXRFbnRyeSwgdGxlLCBzZWxlY3RRdWVyeS0+dGFyZ2V0TGlzdCkKKwl7CisJCWlm ICh0bGUtPnJlc2p1bmspCisJCQljb250aW51ZTsKKworCQlleHByTGlzdCA9IGxhcHBlbmQoZXhw ckxpc3QsIHRsZS0+ZXhwcik7CisJfQorCisJLyogZG9uJ3QgYWxsb3cgbXVsdGljb2x1bW4gcmVz dWx0ICovCisJaWYgKGxpc3RfbGVuZ3RoKGV4cHJMaXN0KSAhPSAxKQorCQllcmVwb3J0KEVSUk9S LAorCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkgZXJybXNnX3BsdXJh bCgiYXNzaWdubWVudCBleHByZXNzaW9uIHJldHVybmVkICVkIGNvbHVtbiIsCisJCQkJCQkJICAg ImFzc2lnbm1lbnQgZXhwcmVzc2lvbiByZXR1cm5lZCAlZCBjb2x1bW5zIiwKKwkJCQkJCQkgICBs aXN0X2xlbmd0aChleHByTGlzdCksCisJCQkJCQkJICAgbGlzdF9sZW5ndGgoZXhwckxpc3QpKSwK KwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCWV4cHJMb2NhdGlvbigo Tm9kZSAqKSBleHByTGlzdCkpKSk7CisKKwlleHByTGlzdENvZXIgPSBOSUw7CisKKwlmb3JlYWNo KGxjLCBleHByTGlzdCkKKwl7CisJCUV4cHIJICAgKmV4cHIgPSAoRXhwciAqKSBsZmlyc3QobGMp OworCQlFeHByCSAgICpjb2VyY2VkX2V4cHI7CisJCU9pZAkJCWV4cHJ0eXBpZDsKKworCQkvKiBu b3cgd2UgY2FuIHJlYWQgdGhlIHR5cGUgb2YgdGhlIGV4cHJlc3Npb24gKi8KKwkJZXhwcnR5cGlk ID0gZXhwclR5cGUoKE5vZGUgKikgZXhwcik7CisKKwkJaWYgKGluZGlyZWN0aW9uX2hlYWQpCisJ CXsKKwkJCWJvb2wJCXRhcmdldElzQXJyYXk7CisJCQljaGFyCSAgICp0YXJnZXROYW1lOworCQkJ UGFyYW0JICAgKnBhcmFtOworCisJCQl0YXJnZXROYW1lID0gZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZSh2YXJpZCk7CisJCQl0YXJnZXRJc0FycmF5ID0gT2lkSXNWYWxpZChnZXRfZWxlbWVudF90 eXBlKHR5cGlkKSk7CisKKwkJCXBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1ZTsK KworCQkJcGFyYW0gPSBtYWtlTm9kZShQYXJhbSk7CisJCQlwYXJhbS0+cGFyYW1raW5kID0gUEFS QU1fVkFSSUFCTEU7CisJCQlwYXJhbS0+cGFyYW12YXJpZCA9IHZhcmlkOworCQkJcGFyYW0tPnBh cmFtdHlwZSA9IHR5cGlkOworCQkJcGFyYW0tPnBhcmFtdHlwbW9kID0gdHlwbW9kOworCisJCQkv KgorCQkJICogVGhlIHBhcmFtZXRlciB1c2VkIGFzIGJhc2Vub2RlIGhhcyB0byBoYXZlIHNwZWNp YWwKKwkJCSAqIG1hcmssIGJlY2F1c2UgcmVxdWlyZXMgc3BlY2lhbCBhY2Nlc3Mgd2hlbiB3ZSBk bworCQkJICogU0VMRUNUIGFjY2VzcyBjaGVjay4KKwkJCSAqLworCQkJcGFyYW0tPnBhcmFtYmFz ZW5vZGUgPSB0cnVlOworCisJCQljb2VyY2VkX2V4cHIgPSAoRXhwciAqKQorCQkJCXRyYW5zZm9y bUFzc2lnbm1lbnRJbmRpcmVjdGlvbihwc3RhdGUsCisJCQkJCQkJCQkJCSAgIChOb2RlICopIHBh cmFtLAorCQkJCQkJCQkJCQkgICB0YXJnZXROYW1lLAorCQkJCQkJCQkJCQkgICB0YXJnZXRJc0Fy cmF5LAorCQkJCQkJCQkJCQkgICB0eXBpZCwKKwkJCQkJCQkJCQkJICAgdHlwbW9kLAorCQkJCQkJ CQkJCQkgICBJbnZhbGlkT2lkLAorCQkJCQkJCQkJCQkgICBzdG10LT50YXJnZXQsCisJCQkJCQkJ CQkJCSAgIGluZGlyZWN0aW9uX2hlYWQsCisJCQkJCQkJCQkJCSAgIChOb2RlICopIGV4cHIsCisJ CQkJCQkJCQkJCSAgIENPRVJDSU9OX0FTU0lHTk1FTlQsCisJCQkJCQkJCQkJCSAgIHN0bXQtPmxv Y2F0aW9uKTsKKwkJfQorCQllbHNlCisJCQljb2VyY2VkX2V4cHIgPSAoRXhwciAqKQorCQkJCWNv ZXJjZV90b190YXJnZXRfdHlwZShwc3RhdGUsCisJCQkJCQkJCQkgIChOb2RlICopIGV4cHIsCisJ CQkJCQkJCQkgIGV4cHJ0eXBpZCwKKwkJCQkJCQkJCSAgdHlwaWQsIHR5cG1vZCwKKwkJCQkJCQkJ CSAgQ09FUkNJT05fQVNTSUdOTUVOVCwKKwkJCQkJCQkJCSAgQ09FUkNFX0lNUExJQ0lUX0NBU1Qs CisJCQkJCQkJCQkgIHN0bXQtPmxvY2F0aW9uKTsKKworCQlpZiAoY29lcmNlZF9leHByID09IE5V TEwpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01J U01BVENIKSwKKwkJCQkJIGVycm1zZygidmFyaWFibGUgXCIlcy4lc1wiIGlzIG9mIHR5cGUgJXMs IGJ1dCBleHByZXNzaW9uIGlzIG9mIHR5cGUgJXMiLAorCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFt ZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQlnZXRfc2Vz c2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCks CisJCQkJCQkJZm9ybWF0X3R5cGVfYmUoZXhwcnR5cGlkKSksCisJCQkJCSBlcnJoaW50KCJZb3Ug d2lsbCBuZWVkIHRvIHJld3JpdGUgb3IgY2FzdCB0aGUgZXhwcmVzc2lvbi4iKSwKKwkJCQkJIHBh cnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbigoTm9kZSAqKSBleHByKSkpKTsK KworCQlleHByTGlzdENvZXIgPSBsYXBwZW5kKGV4cHJMaXN0Q29lciwgY29lcmNlZF9leHByKTsK Kwl9CisKKwkvKiBnZW5lcmF0ZSBxdWVyeSdzIHRhcmdldCBsaXN0IHVzaW5nIHRoZSBjb21wdXRl ZCBsaXN0IG9mIGV4cHJlc3Npb25zICovCisJcXVlcnkgPSBtYWtlTm9kZShRdWVyeSk7CisJcXVl cnktPmNvbW1hbmRUeXBlID0gQ01EX1NFTEVDVDsKKworCWZvcmVhY2gobGMsIGV4cHJMaXN0Q29l cikKKwl7CisJCUV4cHIJICAgKmV4cHIgPSAoRXhwciAqKSBsZmlyc3QobGMpOworCQlUYXJnZXRF bnRyeSAqdGxlOworCisJCXRsZSA9IG1ha2VUYXJnZXRFbnRyeShleHByLAorCQkJCQkJCSAgaSAr IDEsCisJCQkJCQkJICBGaWd1cmVDb2xuYW1lKChOb2RlICopIGV4cHIpLAorCQkJCQkJCSAgZmFs c2UpOworCQlxdWVyeS0+dGFyZ2V0TGlzdCA9IGxhcHBlbmQocXVlcnktPnRhcmdldExpc3QsIHRs ZSk7CisJfQorCisJLyogZG9uZSBidWlsZGluZyB0aGUgcmFuZ2UgdGFibGUgYW5kIGpvaW50cmVl ICovCisJcXVlcnktPnJ0YWJsZSA9IHBzdGF0ZS0+cF9ydGFibGU7CisJcXVlcnktPmpvaW50cmVl ID0gbWFrZUZyb21FeHByKHBzdGF0ZS0+cF9qb2lubGlzdCwgTlVMTCk7CisKKwlxdWVyeS0+aGFz VGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOworCXF1ZXJ5LT5oYXNTdWJMaW5r cyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9 IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOworCisJLyogdGhpcyBpcyB0b3AtbGV2ZWwg cXVlcnkgKi8KKwlxdWVyeS0+Y2FuU2V0VGFnID0gdHJ1ZTsKKworCS8qCisJICogU2F2ZSB0YXJn ZXQgc2Vzc2lvbiB2YXJpYWJsZSBJRC4gSXQgaXMgdXNlZCBsYXRlciBmb3IKKwkgKiBhY3F1aXJp bmcgYW4gQWNjZXNzU2hhcmVMb2NrIG9uIHRhcmdldCB2YXJpYWJsZSwgc2V0dGluZworCSAqIHBs YW4gZGVwZW5kZW5jeSBhbmQgZmluYWxseSBmb3IgY3JlYXRpbmcgVmFyaWFibGVEZXN0UmVjZWl2 ZXIuCisJICovCisJcXVlcnktPnJlc3VsdFZhcmlhYmxlID0gdmFyaWQ7CisKKwlhc3NpZ25fcXVl cnlfY29sbGF0aW9ucyhwc3RhdGUsIHF1ZXJ5KTsKKworCS8qCisJICogVGhlIHF1ZXJ5IGlzIGV4 ZWN1dGVkIGFzIHV0aWxpdHkgY29tbWFuZCBieSBuZXN0ZWQgZXhlY3V0b3IgY2FsbC4KKwkgKiBB c3NpZ25lZCBxdWVyeUlkIGlzIHJlcXVpcmVkIGluIHRoaXMgY2FzZS4KKwkgKi8KKwlpZiAoSXNR dWVyeUlkRW5hYmxlZCgpKQorCQlKdW1ibGVRdWVyeShxdWVyeSk7CisKKwlzdG10LT5xdWVyeSA9 IChOb2RlICopIHF1ZXJ5OworCisJLyogcmVwcmVzZW50IHRoZSBjb21tYW5kIGFzIGEgdXRpbGl0 eSBRdWVyeSAqLworCXJlc3VsdCA9IG1ha2VOb2RlKFF1ZXJ5KTsKKwlyZXN1bHQtPmNvbW1hbmRU eXBlID0gQ01EX1VUSUxJVFk7CisJcmVzdWx0LT51dGlsaXR5U3RtdCA9IChOb2RlICopIHN0bXQ7 CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKgogICogdHJhbnNmb3JtU2V0T3BlcmF0aW9uU3Rt dCAtCiAgKgkgIHRyYW5zZm9ybXMgYSBzZXQtb3BlcmF0aW9ucyB0cmVlCkBAIC0yMDU5LDYgKzIz MDQsNyBAQCB0cmFuc2Zvcm1TZXRPcGVyYXRpb25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2Vs ZWN0U3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRv d0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwog CXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlh YmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJZm9yZWFjaChsLCBsb2Nr aW5nQ2xhdXNlKQogCXsKQEAgLTI1MzQsNiArMjc4MCw3IEBAIHRyYW5zZm9ybVJldHVyblN0bXQo UGFyc2VTdGF0ZSAqcHN0YXRlLCBSZXR1cm5TdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVu Y3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0 YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7 CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJs ZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTI2MDEs NiArMjg0OCw3IEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRh dGVTdG10ICpzdG10KQogCiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1Rhcmdl dFNSRnM7CiAJcXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlxcnkt Pmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAog CWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMjg5MSw5ICszMTM5 LDE1IEBAIHRyYW5zZm9ybVBMQXNzaWduU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFBMQXNzaWdu U3RtdCAqc3RtdCkKIAkvKgogCSAqIFRyYW5zZm9ybSB0aGUgdGFyZ2V0IHJlZmVyZW5jZS4gIFR5 cGljYWxseSB3ZSB3aWxsIGdldCBiYWNrIGEgUGFyYW0KIAkgKiBub2RlLCBidXQgdGhlcmUncyBu byByZWFzb24gdG8gYmUgdG9vIHBpY2t5IGFib3V0IGl0cyB0eXBlLgorCSAqCisJICogU2Vzc2lv biB2YXJpYWJsZXMgc2hvdWxkIG5vdCBiZSB1c2VkIGFzIHRhcmdldCBvZiBhIFBML3BnU1FMIGFz c2lnbgorCSAqIHN0YXRlbWVudC4gIFNvIHdlIHNob3VsZCB1c2UgYSBkZWRpY2F0ZWQgZXhwcmVz c2lvbiBraW5kIGFuZCBkaXNhbGxvdworCSAqIHNlc3Npb24gdmFyaWFibGVzIHRoZXJlLiAgVGhl IGRlZGljYXRlZCBjb250ZXh0IGFsbG93cyB0byBlbGltaW5hdGUKKwkgKiB1bmRlc2lyYWJsZSB3 YXJuaW5ncyBhYm91dCB0aGUgcG9zc2liaWxpdHkgb2YgYSB0YXJnZXQgUEwvcGdTUUwgdmFyaWFi bGUKKwkgKiBzaGFkb3dpbmcgYSBzZXNzaW9uIHZhcmlhYmxlLgogCSAqLwogCXRhcmdldCA9IHRy YW5zZm9ybUV4cHIocHN0YXRlLCAoTm9kZSAqKSBjcmVmLAotCQkJCQkJICAgRVhQUl9LSU5EX1VQ REFURV9UQVJHRVQpOworCQkJCQkJICAgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQpOwogCXRhcmdl dHR5cGUgPSBleHByVHlwZSh0YXJnZXQpOwogCXRhcmdldHR5cG1vZCA9IGV4cHJUeXBtb2QodGFy Z2V0KTsKIAl0YXJnZXRjb2xsYXRpb24gPSBleHByQ29sbGF0aW9uKHRhcmdldCk7CkBAIC0yOTM1 LDYgKzMxODksMTAgQEAgdHJhbnNmb3JtUExBc3NpZ25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwg UExBc3NpZ25TdG10ICpzdG10KQogCSAqLwogCXR5cGVfaWQgPSBleHByVHlwZSgoTm9kZSAqKSB0 bGUtPmV4cHIpOwogCisJLyoKKwkgKiBGb3IgaW5kaXJlY3Rpb24gcHJvY2Vzc2luZyBhbmQgYWRk aXRpb25hbCBjYXN0cyB3ZSBjYW4gdXNlIGV4cHJfa2luZAorCSAqIEVYUFJfS0lORF9VUERBVEVf VEFSR0VULgorCSAqLwogCXBzdGF0ZS0+cF9leHByX2tpbmQgPSBFWFBSX0tJTkRfVVBEQVRFX1RB UkdFVDsKIAogCWlmIChpbmRpcmVjdGlvbikKQEAgLTMwNzcsNiArMzMzNSw4IEBAIHRyYW5zZm9y bVBMQXNzaWduU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFBMQXNzaWduU3RtdCAqc3RtdCkKIAkJ CQkJCQkgICAoTG9ja2luZ0NsYXVzZSAqKSBsZmlyc3QobCksIGZhbHNlKTsKIAl9CiAKKwlxcnkt Pmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKKwog CWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIAogCS8qIHRoaXMgbXVzdCBi ZSBkb25lIGFmdGVyIGNvbGxhdGlvbnMsIGZvciByZWxpYWJsZSBjb21wYXJpc29uIG9mIGV4cHJz ICovCkBAIC0zMzUwLDYgKzM2MTAsMTYgQEAgdHJhbnNmb3JtQ2FsbFN0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDYWxsU3RtdCAqc3RtdCkKIAkJCQkJCQkgdHJ1ZSwKIAkJCQkJCQkgc3RtdC0+ZnVu Y2NhbGwtPmxvY2F0aW9uKTsKIAorCS8qCisJICogVGhlIGFyZ3VtZW50cyBvZiBDQUxMIHN0YXRl bWVudCBhcmUgZXZhbHVhdGVkIGJ5IGEgZGlyZWN0IGV4cHJlc3Npb24KKwkgKiBleGVjdXRvciBj YWxsLiAgVGhpcyBwYXRoIGlzIHVuc3VwcG9ydGVkIHlldCwgc28gYmxvY2sgaXQuICBJdCB3aWxs IGJlCisJICogZW5hYmxlZCBsYXRlci4KKwkgKi8KKwlpZiAocHN0YXRlLT5wX2hhc1Nlc3Npb25W YXJpYWJsZXMpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJF X05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJl IHVzZWQgYXMgYW4gYXJndW1lbnQiKSkpOworCiAJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3Rh dGUsIG5vZGUpOwogCiAJZmV4cHIgPSBjYXN0Tm9kZShGdW5jRXhwciwgbm9kZSk7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQppbmRleCAyZWZlNDJiODJhNi4uOWQxMGY4MTIxMjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjk3LDcg KzI5Nyw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxu YW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCURyb3BUcmFuc2Zvcm1TdG10CiAJ CURyb3BVc2VyTWFwcGluZ1N0bXQgRXhwbGFpblN0bXQgRmV0Y2hTdG10CiAJCUdyYW50U3RtdCBH cmFudFJvbGVTdG10IEltcG9ydEZvcmVpZ25TY2hlbWFTdG10IEluZGV4U3RtdCBJbnNlcnRTdG10 Ci0JCUxpc3RlblN0bXQgTG9hZFN0bXQgTG9ja1N0bXQgTWVyZ2VTdG10IE5vdGlmeVN0bXQgRXhw bGFpbmFibGVTdG10IFByZXBhcmFibGVTdG10CisJCUxldFN0bXQgTGlzdGVuU3RtdCBMb2FkU3Rt dCBMb2NrU3RtdCBNZXJnZVN0bXQgTm90aWZ5U3RtdCBFeHBsYWluYWJsZVN0bXQgUHJlcGFyYWJs ZVN0bXQKIAkJQ3JlYXRlRnVuY3Rpb25TdG10IEFsdGVyRnVuY3Rpb25TdG10IFJlaW5kZXhTdG10 IFJlbW92ZUFnZ3JTdG10CiAJCVJlbW92ZUZ1bmNTdG10IFJlbW92ZU9wZXJTdG10IFJlbmFtZVN0 bXQgUmV0dXJuU3RtdCBSZXZva2VTdG10IFJldm9rZVJvbGVTdG10CiAJCVJ1bGVBY3Rpb25TdG10 IFJ1bGVBY3Rpb25TdG10T3JFbXB0eSBSdWxlU3RtdApAQCAtNzQyLDcgKzc0Miw3IEBAIHN0YXRp YyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlh c2VzLCBOb2RlICpxdWVyeSk7CiAJS0VFUCBLRVkgS0VZUwogCiAJTEFCRUwgTEFOR1VBR0UgTEFS R0VfUCBMQVNUX1AgTEFURVJBTF9QCi0JTEVBRElORyBMRUFLUFJPT0YgTEVBU1QgTEVGVCBMRVZF TCBMSUtFIExJTUlUIExJU1RFTiBMT0FEIExPQ0FMCisJTEVBRElORyBMRUFLUFJPT0YgTEVBU1Qg TEVGVCBMRVQgTEVWRUwgTElLRSBMSU1JVCBMSVNURU4gTE9BRCBMT0NBTAogCUxPQ0FMVElNRSBM T0NBTFRJTUVTVEFNUCBMT0NBVElPTiBMT0NLX1AgTE9DS0VEIExPR0dFRAogCiAJTUFQUElORyBN QVRDSCBNQVRDSEVEIE1BVEVSSUFMSVpFRCBNQVhWQUxVRSBNRVJHRSBNRVJHRV9BQ1RJT04gTUVU SE9ECkBAIC0xMDg5LDYgKzEwODksNyBAQCBzdG10OgogCQkJfCBJbXBvcnRGb3JlaWduU2NoZW1h U3RtdAogCQkJfCBJbmRleFN0bXQKIAkJCXwgSW5zZXJ0U3RtdAorCQkJfCBMZXRTdG10CiAJCQl8 IExpc3RlblN0bXQKIAkJCXwgUmVmcmVzaE1hdFZpZXdTdG10CiAJCQl8IExvYWRTdG10CkBAIC0x Mjg2OSw2ICsxMjg3MCwzOCBAQCBvcHRfaG9sZDogLyogRU1QVFkgKi8JCQkJCQl7ICQkID0gMDsg fQogCQkJfCBXSVRIT1VUIEhPTEQJCQkJCXsgJCQgPSAwOyB9CiAJCTsKIAorLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCisgKgorICoJCVFVRVJZOgorICoJCQkJTEVUIFNUQVRFTUVOVAorICoKKyAqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KK0xldFN0bXQ6CUxFVCBDb2xJZCBvcHRfaW5kaXJlY3Rpb24gJz0n IGFfZXhwcgorCQkJCXsKKwkJCQkJTGV0U3RtdAkgICAqbiA9IG1ha2VOb2RlKExldFN0bXQpOwor CQkJCQlTZWxlY3RTdG10ICpzZWxlY3Q7CisJCQkJCVJlc1RhcmdldCAgKnJlczsKKworCQkJCQlu LT50YXJnZXQgPSBsY29ucyhtYWtlU3RyaW5nKCQyKSwKKwkJCQkJCQkJCSAgY2hlY2tfaW5kaXJl Y3Rpb24oJDMsIHl5c2Nhbm5lcikpOworCisJCQkJCXNlbGVjdCA9IG1ha2VOb2RlKFNlbGVjdFN0 bXQpOworCQkJCQlyZXMgPSBtYWtlTm9kZShSZXNUYXJnZXQpOworCisJCQkJCS8qIGNyZWF0ZSB0 YXJnZXQgbGlzdCBmb3IgaW1wbGljaXQgcXVlcnkgKi8KKwkJCQkJcmVzLT5uYW1lID0gTlVMTDsK KwkJCQkJcmVzLT5pbmRpcmVjdGlvbiA9IE5JTDsKKwkJCQkJcmVzLT52YWwgPSAoTm9kZSAqKSAk NTsKKwkJCQkJcmVzLT5sb2NhdGlvbiA9IEA1OworCisJCQkJCXNlbGVjdC0+dGFyZ2V0TGlzdCA9 IGxpc3RfbWFrZTEocmVzKTsKKwkJCQkJbi0+cXVlcnkgPSAoTm9kZSAqKSBzZWxlY3Q7CisKKwkJ CQkJbi0+bG9jYXRpb24gPSBAMjsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJOwor CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKgkJUVVFUlk6CkBAIC0xNzk0MCw2ICsxNzk3 Myw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgTEFSR0VfUAogCQkJfCBMQVNUX1AKIAkJ CXwgTEVBS1BST09GCisJCQl8IExFVAogCQkJfCBMRVZFTAogCQkJfCBMSVNURU4KIAkJCXwgTE9B RApAQCAtMTg1NTQsNiArMTg1ODgsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IExFQUtQ Uk9PRgogCQkJfCBMRUFTVAogCQkJfCBMRUZUCisJCQl8IExFVAogCQkJfCBMRVZFTAogCQkJfCBM SUtFCiAJCQl8IExJU1RFTgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Fn Zy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCmluZGV4IDBhYzg5NjZlMzBmLi5k ZTBhNGE1NjUzYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtNTgwLDYgKzU4MCwxMSBAQCBj aGVja19hZ2dsZXZlbHNfYW5kX2NvbnN0cmFpbnRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAq ZXhwcikKIAkJCWVycmtpbmQgPSB0cnVlOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBFWFBSX0tJTkRf QVNTSUdOX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJCWVycmtpbmQg PSB0cnVlOworCQkJYnJlYWs7CisKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5 IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKIAkJCSAqIGNvbXBpbGVyIHdpbGwg d2FybiBpZiB3ZSBhZGQgYSBuZXcgUGFyc2VFeHByS2luZCB3aXRob3V0CkBAIC05NzAsNiArOTc1 LDEwIEBAIHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93 RnVuYyAqd2Z1bmMsCiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQllcnJraW5kID0g dHJ1ZTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNl IEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQkJZXJya2luZCA9IHRydWU7CisJCQlicmVhazsKIAog CQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJl LCBzbyB0aGF0IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIu YyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggOWNhZjFlNDgxYTIuLjU1 ZTQ5MDZhZDc2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTE3LDYgKzE3LDcgQEAKIAog I2luY2x1ZGUgImNhdGFsb2cvcGdfYWdncmVnYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rl cy9tYWtlZnVuY3MuaCIKQEAgLTMzLDExICszNCwxMyBAQAogI2luY2x1ZGUgInBhcnNlci9wYXJz ZV9yZWxhdGlvbi5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90YXJnZXQuaCIKICNpbmNsdWRl ICJwYXJzZXIvcGFyc2VfdHlwZS5oIgorI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2luY2x1 ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZGF0ZS5oIgogI2luY2x1ZGUg InV0aWxzL2ZtZ3JvaWRzLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVk ZSAidXRpbHMvdGltZXN0YW1wLmgiCisjaW5jbHVkZSAidXRpbHMvdHlwY2FjaGUuaCIKICNpbmNs dWRlICJ1dGlscy94bWwuaCIKIAogLyogR1VDIHBhcmFtZXRlcnMgKi8KQEAgLTEwNiw2ICsxMDks OSBAQCBzdGF0aWMgRXhwciAqbWFrZV9kaXN0aW5jdF9vcChQYXJzZVN0YXRlICpwc3RhdGUsIExp c3QgKm9wbmFtZSwKIAkJCQkJCQkgIE5vZGUgKmx0cmVlLCBOb2RlICpydHJlZSwgaW50IGxvY2F0 aW9uKTsKIHN0YXRpYyBOb2RlICptYWtlX251bGx0ZXN0X2Zyb21fZGlzdGluY3QoUGFyc2VTdGF0 ZSAqcHN0YXRlLAogCQkJCQkJCQkJCSBBX0V4cHIgKmRpc3RpbmN0YSwgTm9kZSAqYXJnKTsKK3N0 YXRpYyBOb2RlICptYWtlUGFyYW1TZXNzaW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAor CQkJCQkJCQkJICBPaWQgdmFyaWQsIE9pZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBPaWQgY29sbGlk LAorCQkJCQkJCQkJICBjaGFyICphdHRybmFtZSwgaW50IGxvY2F0aW9uKTsKIAogCiAvKgpAQCAt NDk5LDYgKzUwNSw4OSBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUs IEFfSW5kaXJlY3Rpb24gKmluZCkKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgorICogUmV0dXJu cyB0cnVlIGlmIHRoZSBnaXZlbiBleHByZXNzaW9uIGtpbmQgaXMgdmFsaWQgZm9yIHNlc3Npb24g dmFyaWFibGVzLgorICogU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHVzZWQgZXZlcnl3aGVyZSB3 aGVyZSBleHRlcm5hbCBwYXJhbWV0ZXJzIGNhbiBiZQorICogdXNlZC4gIFNlc3Npb24gdmFyaWFi bGVzIGFyZSBub3QgYWxsb3dlZCBpbiBEREwgY29tbWFuZHMgb3IgaW4gY29uc3RyYWludHMuCisg KgorICogQW4gaWRlbnRpZmllciBjYW4gYmUgcGFyc2VkIGFzIGEgc2Vzc2lvbiB2YXJpYWJsZSBv bmx5IGZvciBleHByZXNzaW9uIGtpbmRzCisgKiB3aGVyZSBzZXNzaW9uIHZhcmlhYmxlcyBhcmUg YWxsb3dlZC4gIFRoaXMgaXMgdGhlIHByaW1hcnkgdXNhZ2Ugb2YgdGhpcworICogZnVuY3Rpb24u CisgKgorICogVGhlIHNlY29uZCB1c2FnZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIHRvIGRlY2lkZSB3 aGV0aGVyIGEgImNvbHVtbiBkb2VzIG5vdAorICogZXhpc3QiIG9yIGEgImNvbHVtbiBvciB2YXJp YWJsZSBkb2VzIG5vdCBleGlzdCIgZXJyb3IgbWVzc2FnZSBzaG91bGQgYmUKKyAqIHByaW50ZWQu ICBXaGVuIHdlIGFyZSBpbiBhbiBleHByZXNzaW9uIHdoZXJlIHNlc3Npb24gdmFyaWFibGVzIGNh bm5vdCBiZQorICogdXNlZCwgd2UgcmFpc2UgdGhlIGZpcnN0IGZvcm0gb2YgZXJyb3IgbWVzc2Fn ZS4KKyAqLworc3RhdGljIGJvb2wKK2V4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMo UGFyc2VFeHByS2luZCBwX2V4cHJfa2luZCkKK3sKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsKKwor CXN3aXRjaCAocF9leHByX2tpbmQpCisJeworCQljYXNlIEVYUFJfS0lORF9OT05FOgorCQkJQXNz ZXJ0KGZhbHNlKTsJCS8qIGNhbid0IGhhcHBlbiAqLworCQkJcmV0dXJuIGZhbHNlOworCisJCS8q IHNlc3Npb24gdmFyaWFibGVzIGFsbG93ZWQgKi8KKwkJY2FzZSBFWFBSX0tJTkRfT1RIRVI6CisJ CWNhc2UgRVhQUl9LSU5EX0pPSU5fT046CisJCWNhc2UgRVhQUl9LSU5EX0ZST01fU1VCU0VMRUNU OgorCQljYXNlIEVYUFJfS0lORF9GUk9NX0ZVTkNUSU9OOgorCQljYXNlIEVYUFJfS0lORF9XSEVS RToKKwkJY2FzZSBFWFBSX0tJTkRfSEFWSU5HOgorCQljYXNlIEVYUFJfS0lORF9GSUxURVI6CisJ CWNhc2UgRVhQUl9LSU5EX1dJTkRPV19QQVJUSVRJT046CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRP V19PUkRFUjoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX0ZSQU1FX1JBTkdFOgorCQljYXNlIEVY UFJfS0lORF9XSU5ET1dfRlJBTUVfUk9XUzoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX0ZSQU1F X0dST1VQUzoKKwkJY2FzZSBFWFBSX0tJTkRfU0VMRUNUX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJ TkRfSU5TRVJUX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1NPVVJDRToKKwkJY2Fz ZSBFWFBSX0tJTkRfVVBEQVRFX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfTUVSR0VfV0hFTjoK KwkJY2FzZSBFWFBSX0tJTkRfTUVSR0VfUkVUVVJOSU5HOgorCQljYXNlIEVYUFJfS0lORF9HUk9V UF9CWToKKwkJY2FzZSBFWFBSX0tJTkRfT1JERVJfQlk6CisJCWNhc2UgRVhQUl9LSU5EX0RJU1RJ TkNUX09OOgorCQljYXNlIEVYUFJfS0lORF9MSU1JVDoKKwkJY2FzZSBFWFBSX0tJTkRfT0ZGU0VU OgorCQljYXNlIEVYUFJfS0lORF9SRVRVUk5JTkc6CisJCWNhc2UgRVhQUl9LSU5EX1ZBTFVFUzoK KwkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTX1NJTkdMRToKKwkJY2FzZSBFWFBSX0tJTkRfQUxURVJf Q09MX1RSQU5TRk9STToKKwkJY2FzZSBFWFBSX0tJTkRfRVhFQ1VURV9QQVJBTUVURVI6CisJCWNh c2UgRVhQUl9LSU5EX1BPTElDWToKKwkJY2FzZSBFWFBSX0tJTkRfQ0FMTF9BUkdVTUVOVDoKKwkJ Y2FzZSBFWFBSX0tJTkRfQ09QWV9XSEVSRToKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoK KwkJCXJlc3VsdCA9IHRydWU7CisJCQlicmVhazsKKworCQkvKiBzZXNzaW9uIHZhcmlhYmxlcyBu b3QgYWxsb3dlZCAqLworCQljYXNlIEVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5UOgorCQljYXNl IEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6CisJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxU OgorCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQljYXNlIEVYUFJfS0lORF9J TkRFWF9FWFBSRVNTSU9OOgorCQljYXNlIEVYUFJfS0lORF9JTkRFWF9QUkVESUNBVEU6CisJCWNh c2UgRVhQUl9LSU5EX1NUQVRTX0VYUFJFU1NJT046CisJCWNhc2UgRVhQUl9LSU5EX1RSSUdHRVJf V0hFTjoKKwkJY2FzZSBFWFBSX0tJTkRfUEFSVElUSU9OX0JPVU5EOgorCQljYXNlIEVYUFJfS0lO RF9QQVJUSVRJT05fRVhQUkVTU0lPTjoKKwkJY2FzZSBFWFBSX0tJTkRfR0VORVJBVEVEX0NPTFVN TjoKKwkJY2FzZSBFWFBSX0tJTkRfSk9JTl9VU0lORzoKKwkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVf TUFSSzoKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJCXJlc3VsdCA9IGZhbHNl OworCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIFRyYW5zZm9y bSBhIENvbHVtblJlZi4KICAqCkBAIC01NzUsNiArNjY0LDggQEAgdHJhbnNmb3JtQ29sdW1uUmVm KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCQljYXNlIEVYUFJfS0lORF9D T1BZX1dIRVJFOgogCQljYXNlIEVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OOgogCQljYXNlIEVY UFJfS0lORF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQlj YXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgogCQkJLyogb2theSAqLwogCQkJYnJlYWs7CiAKQEAg LTg0Nyw4ICs5MzgsNjEgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwg Q29sdW1uUmVmICpjcmVmKQogCX0KIAogCS8qCi0JICogVGhyb3cgZXJyb3IgaWYgbm8gdHJhbnNs YXRpb24gZm91bmQuCisJICogVGhlcmUgYXJlIGNvbnRleHRzIHdoZXJlIHNlc3Npb24gdmFyaWFi bGVzIGFyZSBub3QgYWxsb3dlZC4gIFdlIGRvbid0CisJICogbmVlZCB0byBpZGVudGlmeSBzZXNz aW9uIHZhcmlhYmxlcyBpbiBzdWNoIGEgY29udGV4dCwgYnV0IGlkZW50aWZ5aW5nCisJICogdGhl bSBhbGxvd3MgdXMgdG8gcmFpc2UgbWVhbmluZ2Z1bCBlcnJvciBtZXNzYWdlcyBsaWtlICJ5b3Ug Y2Fubm90IHVzZQorCSAqIHNlc3Npb24gdmFyaWFibGVzIGhlcmUiLgogCSAqLworCWlmIChleHBy X2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpKQorCXsK KwkJT2lkCQkJdmFyaWQgPSBJbnZhbGlkT2lkOworCQljaGFyCSAgICphdHRybmFtZSA9IE5VTEw7 CisJCWJvb2wJCW5vdF91bmlxdWU7CisKKwkJLyogLS0tLS0KKwkJICogU2Vzc2lvbiB2YXJpYWJs ZXMgYXJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUgdmFyaWFibGVzIG9yCisJCSAqIHJv dXRpbmUgYXJndW1lbnRzLiAgV2UgY2VydGFpbmx5IGRvbid0IHdhbnQgdG8gdXNlIGEgc2Vzc2lv biB2YXJpYWJsZQorCQkgKiB3aGVuIGl0IGlzIGV4YWN0bHkgc2hhZG93ZWQsIGJ1dCBhIFJURSBs aWtlIHRoaXMgaXMgY29uY2VpdmFibGU6CisJCSAqCisJCSAqIENSRUFURSBUWVBFIHQgQVMgKGMg aW50KTsKKwkJICogQ1JFQVRFIFZBUklBQkxFIGZvbyBBUyB0OworCQkgKiBDUkVBVEUgVEFCTEUg Zm9vKGEgaW50LCBiIGludCk7CisJCSAqCisJCSAqIFNFTEVDVCBmb28uYSwgZm9vLmIsIGZvby5j IEZST00gZm9vOworCQkgKgorCQkgKiBIb3dldmVyLCB0aGF0IGlzIHZlcnkgY29uZnVzaW5nLCBz byB3ZSBkaXNhbGxvdyBpdC4gIFdlIGRvbid0IHRyeSB0bworCQkgKiBpZGVudGlmeSBhIHZhcmlh YmxlIGlmIHdlIGtub3cgdGhhdCBpdCB3b3VsZCBiZSBzaGFkb3dlZC4KKwkJICogLS0tLS0KKwkJ ICovCisJCWlmICghbm9kZSAmJiAhKHJlbG5hbWUgJiYgY3JlcnIgPT0gQ1JFUlJfTk9fQ09MVU1O KSkKKwkJeworCQkJLyogdGFrZXMgYW4gQWNjZXNzU2hhcmVMb2NrIG9uIHRoZSBzZXNzaW9uIHZh cmlhYmxlICovCisJCQl2YXJpZCA9IElkZW50aWZ5VmFyaWFibGUoY3JlZi0+ZmllbGRzLCAmYXR0 cm5hbWUsICZub3RfdW5pcXVlLCBmYWxzZSk7CisKKwkJCWlmIChPaWRJc1ZhbGlkKHZhcmlkKSkK KwkJCXsKKwkJCQlPaWQJCQl0eXBpZDsKKwkJCQlpbnQzMgkJdHlwbW9kOworCQkJCU9pZAkJCWNv bGxpZDsKKworCQkJCWlmIChub3RfdW5pcXVlKQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJ CShlcnJjb2RlKEVSUkNPREVfQU1CSUdVT1VTX1BBUkFNRVRFUiksCisJCQkJCQkJIGVycm1zZygi c2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgXCIlc1wiIGlzIGFtYmlndW91cyIsCisJCQkJCQkJ CQlOYW1lTGlzdFRvU3RyaW5nKGNyZWYtPmZpZWxkcykpLAorCQkJCQkJCSBwYXJzZXJfZXJycG9z aXRpb24ocHN0YXRlLCBjcmVmLT5sb2NhdGlvbikpKTsKKworCQkJCWdldF9zZXNzaW9uX3Zhcmlh YmxlX3R5cGVfdHlwbW9kX2NvbGxpZCh2YXJpZCwgJnR5cGlkLCAmdHlwbW9kLAorCQkJCQkJCQkJ CQkJCQkmY29sbGlkKTsKKworCQkJCW5vZGUgPSBtYWtlUGFyYW1TZXNzaW9uVmFyaWFibGUocHN0 YXRlLAorCQkJCQkJCQkJCQkJdmFyaWQsIHR5cGlkLCB0eXBtb2QsIGNvbGxpZCwKKwkJCQkJCQkJ CQkJCWF0dHJuYW1lLCBjcmVmLT5sb2NhdGlvbik7CisJCQl9CisJCX0KKwl9CisKKwkvKiB0aHJv dyBhbiBlcnJvciBpZiBubyB0cmFuc2xhdGlvbiB3YXMgZm91bmQgKi8KIAlpZiAobm9kZSA9PSBO VUxMKQogCXsKIAkJc3dpdGNoIChjcmVycikKQEAgLTg4MCw2ICsxMDI0LDc1IEBAIHRyYW5zZm9y bUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAlyZXR1cm4g bm9kZTsKIH0KIAorLyoKKyAqIEdlbmVyYXRlIHBhcmFtIHZhcmlhYmxlIGZvciByZWZlcmVuY2Ug dG8gc2Vzc2lvbiB2YXJpYWJsZQorICovCitzdGF0aWMgTm9kZSAqCittYWtlUGFyYW1TZXNzaW9u VmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJIE9pZCB2YXJpZCwgT2lkIHR5cGlk LCBpbnQzMiB0eXBtb2QsIE9pZCBjb2xsaWQsCisJCQkJCQkgY2hhciAqYXR0cm5hbWUsIGludCBs b2NhdGlvbikKK3sKKwlQYXJhbQkgICAqcGFyYW07CisKKwlwYXJhbSA9IG1ha2VOb2RlKFBhcmFt KTsKKworCXBhcmFtLT5wYXJhbWtpbmQgPSBQQVJBTV9WQVJJQUJMRTsKKwlwYXJhbS0+cGFyYW12 YXJpZCA9IHZhcmlkOworCXBhcmFtLT5wYXJhbXR5cGUgPSB0eXBpZDsKKwlwYXJhbS0+cGFyYW10 eXBtb2QgPSB0eXBtb2Q7CisJcGFyYW0tPnBhcmFtY29sbGlkID0gY29sbGlkOworCisJcHN0YXRl LT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCisJaWYgKGF0dHJuYW1lICE9IE5VTEwp CisJeworCQlUdXBsZURlc2MJdHVwZGVzYzsKKwkJaW50CQkJaTsKKworCQl0dXBkZXNjID0gbG9v a3VwX3Jvd3R5cGVfdHVwZGVzY19ub2Vycm9yKHR5cGlkLCB0eXBtb2QsIHRydWUpOworCQlpZiAo IXR1cGRlc2MpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05H X09CSkVDVF9UWVBFKSwKKwkJCQkJIGVycm1zZygidmFyaWFibGUgXCIlcy4lc1wiIGlzIG9mIHR5 cGUgXCIlc1wiLCB3aGljaCBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIsCisJCQkJCQkJZ2V0X25h bWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJ CQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpLAorCQkJCQkJCWZvcm1hdF90eXBl X2JlKHR5cGlkKSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikp KTsKKworCQlmb3IgKGkgPSAwOyBpIDwgdHVwZGVzYy0+bmF0dHM7IGkrKykKKwkJeworCQkJRm9y bV9wZ19hdHRyaWJ1dGUgYXR0ID0gVHVwbGVEZXNjQXR0cih0dXBkZXNjLCBpKTsKKworCQkJaWYg KHN0cmNtcChhdHRybmFtZSwgTmFtZVN0cihhdHQtPmF0dG5hbWUpKSA9PSAwICYmCisJCQkJIWF0 dC0+YXR0aXNkcm9wcGVkKQorCQkJeworCQkJCS8qIHN1Y2Nlc3MsIHNvIGdlbmVyYXRlIGEgRmll bGRTZWxlY3QgZXhwcmVzc2lvbiAqLworCQkJCUZpZWxkU2VsZWN0ICpmc2VsZWN0ID0gbWFrZU5v ZGUoRmllbGRTZWxlY3QpOworCisJCQkJZnNlbGVjdC0+YXJnID0gKEV4cHIgKikgcGFyYW07CisJ CQkJZnNlbGVjdC0+ZmllbGRudW0gPSBpICsgMTsKKwkJCQlmc2VsZWN0LT5yZXN1bHR0eXBlID0g YXR0LT5hdHR0eXBpZDsKKwkJCQlmc2VsZWN0LT5yZXN1bHR0eXBtb2QgPSBhdHQtPmF0dHR5cG1v ZDsKKwkJCQkvKiBzYXZlIGF0dHJpYnV0ZSdzIGNvbGxhdGlvbiBmb3IgcGFyc2VfY29sbGF0ZS5j ICovCisJCQkJZnNlbGVjdC0+cmVzdWx0Y29sbGlkID0gYXR0LT5hdHRjb2xsYXRpb247CisKKwkJ CQlSZWxlYXNlVHVwbGVEZXNjKHR1cGRlc2MpOworCQkJCXJldHVybiAoTm9kZSAqKSBmc2VsZWN0 OworCQkJfQorCQl9CisKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9DT0xVTU4pLAorCQkJCSBlcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBjb2x1bW4g XCIlc1wiIGluIHZhcmlhYmxlIFwiJXMuJXNcIiIsCisJCQkJCQlhdHRybmFtZSwKKwkJCQkJCWdl dF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwK KwkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSwKKwkJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CisJfQorCisJcmV0dXJuIChOb2RlICopIHBh cmFtOworfQorCiBzdGF0aWMgTm9kZSAqCiB0cmFuc2Zvcm1QYXJhbVJlZihQYXJzZVN0YXRlICpw c3RhdGUsIFBhcmFtUmVmICpwcmVmKQogewpAQCAtMTgxNSw2ICsyMDI4LDcgQEAgdHJhbnNmb3Jt U3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1YmxpbmspCiAJCWNhc2UgRVhQ Ul9LSU5EX1ZBTFVFUzoKIAkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTX1NJTkdMRToKIAkJY2FzZSBF WFBSX0tJTkRfQ1lDTEVfTUFSSzoKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKIAkJCS8q IG9rYXkgKi8KIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5UOgpA QCAtMTg1OCw2ICsyMDcyLDkgQEAgdHJhbnNmb3JtU3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUs IFN1YkxpbmsgKnN1YmxpbmspCiAJCWNhc2UgRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU46CiAJ CQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJl c3Npb24iKTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQkJ ZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBhcyB0YXJnZXQgb2YgYXNzaWduIHN0YXRlbWVu dCIpOworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5v IGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKQEAgLTMyMTUsNiArMzQzMiwxMCBAQCBQ YXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKQogCQkJcmV0dXJuICJHRU5F UkFURUQgQVMiOwogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQkJcmV0dXJuICJDWUNM RSI7CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCQlyZXR1cm4gIkFTU0lHTiI7 CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCQlyZXR1cm4gIkxFVCI7CiAKIAkJCS8q CiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28g dGhhdCB0aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCmluZGV4IDU4M2JiYmYyMzJmLi5kYzI1ZjZk Y2QwZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCkBAIC0yNjU2LDYgKzI2NTYsOCBAQCBjaGVj a19zcmZfY2FsbF9wbGFjZW1lbnQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpsYXN0X3NyZiwg aW50IGxvY2F0aW9uKQogCQkJZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5v dCBhbGxvd2VkIGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb25zIik7CiAJCQlicmVhazsK IAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RB UkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKIAkJCWVycmtpbmQgPSB0cnVlOwog CQkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5j IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMKaW5kZXggNTFkNzcwM2VmZjcuLjI0 NGVmY2RkZjMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYwor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYwpAQCAtNDA1LDYgKzQwNSw3IEBA IHRyYW5zZm9ybU1lcmdlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE1lcmdlU3RtdCAqc3RtdCkK IAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IGZhbHNlOwogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3Rh dGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5w X2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUs IHFyeSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jIGIvc3JjL2JhY2tl bmQvdGNvcC9kZXN0LmMKaW5kZXggYjYyMDc2NmM5MzguLmIyZjc2NGI2NTdmIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYworKysgYi9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYwpA QCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgImV4ZWN1dG9yL2Z1bmN0aW9ucy5oIgogI2luY2x1 ZGUgImV4ZWN1dG9yL3RxdWV1ZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3RzdG9yZVJlY2VpdmVy LmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJs aWJwcS9saWJwcS5oIgogI2luY2x1ZGUgImxpYnBxL3BxZm9ybWF0LmgiCiAKQEAgLTE1NSw2ICsx NTYsOSBAQCBDcmVhdGVEZXN0UmVjZWl2ZXIoQ29tbWFuZERlc3QgZGVzdCkKIAogCQljYXNlIERl c3RFeHBsYWluU2VyaWFsaXplOgogCQkJcmV0dXJuIENyZWF0ZUV4cGxhaW5TZXJpYWxpemVEZXN0 UmVjZWl2ZXIoTlVMTCk7CisKKwkJY2FzZSBEZXN0VmFyaWFibGU6CisJCQlyZXR1cm4gQ3JlYXRl VmFyaWFibGVEZXN0UmVjZWl2ZXIoSW52YWxpZE9pZCk7CiAJfQogCiAJLyogc2hvdWxkIG5ldmVy IGdldCBoZXJlICovCkBAIC0xOTEsNiArMTk1LDcgQEAgRW5kQ29tbWFuZChjb25zdCBRdWVyeUNv bXBsZXRpb24gKnFjLCBDb21tYW5kRGVzdCBkZXN0LCBib29sIGZvcmNlX3VuZGVjb3JhdGVkX28K IAkJY2FzZSBEZXN0VHJhbnNpZW50UmVsOgogCQljYXNlIERlc3RUdXBsZVF1ZXVlOgogCQljYXNl IERlc3RFeHBsYWluU2VyaWFsaXplOgorCQljYXNlIERlc3RWYXJpYWJsZToKIAkJCWJyZWFrOwog CX0KIH0KQEAgLTIzNyw2ICsyNDIsNyBAQCBOdWxsQ29tbWFuZChDb21tYW5kRGVzdCBkZXN0KQog CQljYXNlIERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNhc2Ug RGVzdEV4cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7CiAJ fQogfQpAQCAtMjgxLDYgKzI4Nyw3IEBAIFJlYWR5Rm9yUXVlcnkoQ29tbWFuZERlc3QgZGVzdCkK IAkJY2FzZSBEZXN0VHJhbnNpZW50UmVsOgogCQljYXNlIERlc3RUdXBsZVF1ZXVlOgogCQljYXNl IERlc3RFeHBsYWluU2VyaWFsaXplOgorCQljYXNlIERlc3RWYXJpYWJsZToKIAkJCWJyZWFrOwog CX0KIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tl bmQvdGNvcC91dGlsaXR5LmMKaW5kZXggOTlhNTE4NzdkMzQuLjdhNTA4YTM2NDRmIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0 aWxpdHkuYwpAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL3NjaGVtYWNtZHMu aCIKICNpbmNsdWRlICJjb21tYW5kcy9zZWNsYWJlbC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Nl cXVlbmNlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJs ZWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgiCkBAIC0yMzUsNiArMjM2 LDcgQEAgQ2xhc3NpZnlVdGlsaXR5Q29tbWFuZEFzUmVhZE9ubHkoTm9kZSAqcGFyc2V0cmVlKQog CiAJCWNhc2UgVF9DYWxsU3RtdDoKIAkJY2FzZSBUX0RvU3RtdDoKKwkJY2FzZSBUX0xldFN0bXQ6 CiAJCQl7CiAJCQkJLyoKIAkJCQkgKiBDb21tYW5kcyBpbnNpZGUgdGhlIERPIGJsb2NrIG9yIHRo ZSBjYWxsZWQgcHJvY2VkdXJlIG1pZ2h0CkBAIC0xMDY3LDYgKzEwNjksMTEgQEAgc3RhbmRhcmRf UHJvY2Vzc1V0aWxpdHkoUGxhbm5lZFN0bXQgKnBzdG10LAogCQkJCWJyZWFrOwogCQkJfQogCisJ CWNhc2UgVF9MZXRTdG10OgorCQkJRXhlY3V0ZUxldFN0bXQocHN0YXRlLCAoTGV0U3RtdCAqKSBw YXJzZXRyZWUsIHBhcmFtcywKKwkJCQkJCSAgIHF1ZXJ5RW52LCBxYyk7CisJCQlicmVhazsKKwog CQlkZWZhdWx0OgogCQkJLyogQWxsIG90aGVyIHN0YXRlbWVudCB0eXBlcyBoYXZlIGV2ZW50IHRy aWdnZXIgc3VwcG9ydCAqLwogCQkJUHJvY2Vzc1V0aWxpdHlTbG93KHBzdGF0ZSwgcHN0bXQsIHF1 ZXJ5U3RyaW5nLApAQCAtMjIwNiw2ICsyMjEzLDEwIEBAIFV0aWxpdHlDb250YWluc1F1ZXJ5KE5v ZGUgKnBhcnNldHJlZSkKIAkJCQlyZXR1cm4gVXRpbGl0eUNvbnRhaW5zUXVlcnkocXJ5LT51dGls aXR5U3RtdCk7CiAJCQlyZXR1cm4gcXJ5OwogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJcXJ5ID0g Y2FzdE5vZGUoUXVlcnksICgoTGV0U3RtdCAqKSBwYXJzZXRyZWUpLT5xdWVyeSk7CisJCQlyZXR1 cm4gcXJ5OworCiAJCWRlZmF1bHQ6CiAJCQlyZXR1cm4gTlVMTDsKIAl9CkBAIC0yNDA0LDYgKzI0 MTUsMTAgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl0YWcgPSBDTURU QUdfU0VMRUNUOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQl0YWcgPSBDTURU QUdfTEVUOworCQkJYnJlYWs7CisKIAkJCS8qIHV0aWxpdHkgc3RhdGVtZW50cyAtLS0gc2FtZSB3 aGV0aGVyIHJhdyBvciBjb29rZWQgKi8KIAkJY2FzZSBUX1RyYW5zYWN0aW9uU3RtdDoKIAkJCXsK QEAgLTMyODksNiArMzMwNCw3IEBAIEdldENvbW1hbmRMb2dMZXZlbChOb2RlICpwYXJzZXRyZWUp CiAJCQlicmVhazsKIAogCQljYXNlIFRfUExBc3NpZ25TdG10OgorCQljYXNlIFRfTGV0U3RtdDoK IAkJCWxldiA9IExPR1NUTVRfQUxMOwogCQkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRp bHMuYwppbmRleCA5ZTkwYWNlZGI5MS4uZDZiZGFlOWFmN2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVs ZXV0aWxzLmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N0YXRpc3Rp Y19leHQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVzcGFjZS5oIgog I2luY2x1ZGUgImNvbW1vbi9rZXl3b3Jkcy5oIgpAQCAtNTM0LDYgKzUzNSw3IEBAIHN0YXRpYyBj aGFyICpnZW5lcmF0ZV9mdW5jdGlvbl9uYW1lKE9pZCBmdW5jaWQsIGludCBuYXJncywKIHN0YXRp YyBjaGFyICpnZW5lcmF0ZV9vcGVyYXRvcl9uYW1lKE9pZCBvcGVyaWQsIE9pZCBhcmcxLCBPaWQg YXJnMik7CiBzdGF0aWMgdm9pZCBhZGRfY2FzdF90byhTdHJpbmdJbmZvIGJ1ZiwgT2lkIHR5cGlk KTsKIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9xdWFsaWZpZWRfdHlwZV9uYW1lKE9pZCB0eXBpZCk7 CitzdGF0aWMgY2hhciAqZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2YXJpZCk7 CiBzdGF0aWMgdGV4dCAqc3RyaW5nX3RvX3RleHQoY2hhciAqc3RyKTsKIHN0YXRpYyBjaGFyICpm bGF0dGVuX3JlbG9wdGlvbnMoT2lkIHJlbGlkKTsKIHN0YXRpYyB2b2lkIGdldF9yZWxvcHRpb25z KFN0cmluZ0luZm8gYnVmLCBEYXR1bSByZWxvcHRpb25zKTsKQEAgLTg3MjksNiArODczMSwxNCBA QCBnZXRfcGFyYW1ldGVyKFBhcmFtICpwYXJhbSwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KQog CQlyZXR1cm47CiAJfQogCisJLyogdHJhbnNsYXRlIHBhcmFtdmFyaWQgdG8gc2Vzc2lvbiB2YXJp YWJsZSBuYW1lICovCisJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJ eworCQlhcHBlbmRTdHJpbmdJbmZvKGNvbnRleHQtPmJ1ZiwgIiVzIiwKKwkJCQkJCSBnZW5lcmF0 ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUocGFyYW0tPnBhcmFtdmFyaWQpKTsKKwkJcmV0dXJuOwor CX0KKwogCS8qCiAJICogQWx0ZXJuYXRpdmVseSwgbWF5YmUgaXQncyBhIHN1YnBsYW4gb3V0cHV0 LCB3aGljaCB3ZSBwcmludCBhcyBhCiAJICogcmVmZXJlbmNlIHRvIHRoZSBzdWJwbGFuLiAgKFdl IGNvdWxkIGRyaWxsIGRvd24gaW50byB0aGUgc3VicGxhbiBhbmQKQEAgLTEzNTU2LDYgKzEzNTY2 LDQyIEBAIGdlbmVyYXRlX2NvbGxhdGlvbl9uYW1lKE9pZCBjb2xsaWQpCiAJcmV0dXJuIHJlc3Vs dDsKIH0KIAorLyoKKyAqIGdlbmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFtZQorICoJCUNvbXB1 dGUgdGhlIG5hbWUgdG8gZGlzcGxheSBmb3IgYSBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBi eSBPSUQKKyAqCisgKiBUaGUgcmVzdWx0IGluY2x1ZGVzIGFsbCBuZWNlc3NhcnkgcXVvdGluZyBh bmQgc2NoZW1hLXByZWZpeGluZy4KKyAqLworc3RhdGljIGNoYXIgKgorZ2VuZXJhdGVfc2Vzc2lv bl92YXJpYWJsZV9uYW1lKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdf dmFyaWFibGUgdmFyZm9ybTsKKwljaGFyCSAgICp2YXJuYW1lOworCWNoYXIJICAgKm5zcG5hbWU7 CisJY2hhcgkgICAqcmVzdWx0OworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lE LCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVw KSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHZhcmlhYmxlICV1Iiwg dmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsK KworCXZhcm5hbWUgPSBOYW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUpOworCisJaWYgKCFWYXJpYWJs ZUlzVmlzaWJsZSh2YXJpZCkpCisJCW5zcG5hbWUgPSBnZXRfbmFtZXNwYWNlX25hbWVfb3JfdGVt cCh2YXJmb3JtLT52YXJuYW1lc3BhY2UpOworCWVsc2UKKwkJbnNwbmFtZSA9IE5VTEw7CisKKwly ZXN1bHQgPSBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihuc3BuYW1lLCB2YXJuYW1lKTsKKwor CVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIEdp dmVuIGEgQyBzdHJpbmcsIHByb2R1Y2UgYSBURVhUIGRhdHVtLgogICoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2Fj aGUvcGxhbmNhY2hlLmMKaW5kZXggM2I2ODE2NDcwNjAuLjg4NmE5MjQwYWQ1IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9jYWNoZS9wbGFuY2FjaGUuYwpAQCAtNTgsNiArNTgsNyBAQAogCiAjaW5jbHVkZSAiYWNj ZXNzL3RyYW5zYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgog I2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgpAQCAt MTU0LDYgKzE1NSw3IEBAIEluaXRQbGFuQ2FjaGUodm9pZCkKIAlDYWNoZVJlZ2lzdGVyU3lzY2Fj aGVDYWxsYmFjayhBTU9QT1BJRCwgUGxhbkNhY2hlU3lzQ2FsbGJhY2ssIChEYXR1bSkgMCk7CiAJ Q2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soRk9SRUlHTlNFUlZFUk9JRCwgUGxhbkNhY2hl U3lzQ2FsbGJhY2ssIChEYXR1bSkgMCk7CiAJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2so Rk9SRUlHTkRBVEFXUkFQUEVST0lELCBQbGFuQ2FjaGVTeXNDYWxsYmFjaywgKERhdHVtKSAwKTsK KwlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhWQVJJQUJMRU9JRCwgUGxhbkNhY2hlT2Jq ZWN0Q2FsbGJhY2ssIChEYXR1bSkgMCk7CiB9CiAKIC8qCkBAIC0yMTY1LDE3ICsyMTY3LDMyIEBA IFNjYW5RdWVyeUZvckxvY2tzKFF1ZXJ5ICpwYXJzZXRyZWUsIGJvb2wgYWNxdWlyZSkKIAogCS8q CiAJICogUmVjdXJzZSBpbnRvIHN1Ymxpbmsgc3VicXVlcmllcywgdG9vLiAgQnV0IHdlIGFscmVh ZHkgZGlkIHRoZSBvbmVzIGluCi0JICogdGhlIHJ0YWJsZSBhbmQgY3RlTGlzdC4KKwkgKiB0aGUg cnRhYmxlIGFuZCBjdGVMaXN0LiAgV2UgbmVlZCB0byBmb3JjZSBhIHJlY3Vyc2l2ZSBjYWxsIGZv ciBzZXNzaW9uCisJICogdmFyaWFibGVzIHRvbywgdG8gZmluZCBhbmQgbG9jayB2YXJpYWJsZXMg dXNlZCBpbiB0aGUgcXVlcnkgKHNlZQorCSAqIFNjYW5RdWVyeVdhbGtlcikuCiAJICovCi0JaWYg KHBhcnNldHJlZS0+aGFzU3ViTGlua3MpCisJaWYgKHBhcnNldHJlZS0+aGFzU3ViTGlua3MgfHwK KwkJcGFyc2V0cmVlLT5oYXNTZXNzaW9uVmFyaWFibGVzKQogCXsKIAkJcXVlcnlfdHJlZV93YWxr ZXIocGFyc2V0cmVlLCBTY2FuUXVlcnlXYWxrZXIsICZhY3F1aXJlLAogCQkJCQkJICBRVFdfSUdO T1JFX1JDX1NVQlFVRVJJRVMpOwogCX0KKworCS8qIHByb2Nlc3Mgc2Vzc2lvbiB2YXJpYWJsZXMg Ki8KKwlpZiAoT2lkSXNWYWxpZChwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxlKSkKKwl7CisJCWlm IChhY3F1aXJlKQorCQkJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgcGFy c2V0cmVlLT5yZXN1bHRWYXJpYWJsZSwKKwkJCQkJCQkgICAwLCBBY2Nlc3NTaGFyZUxvY2spOwor CQllbHNlCisJCQlVbmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHBhcnNl dHJlZS0+cmVzdWx0VmFyaWFibGUsCisJCQkJCQkJCSAwLCBBY2Nlc3NTaGFyZUxvY2spOworCX0K IH0KIAogLyoKLSAqIFdhbGtlciB0byBmaW5kIHN1Ymxpbmsgc3VicXVlcmllcyBmb3IgU2NhblF1 ZXJ5Rm9yTG9ja3MKKyAqIFdhbGtlciB0byBmaW5kIHN1Ymxpbmsgc3VicXVlcmllcyBvciByZWZl cmVuY2VkIHNlc3Npb24gdmFyaWFibGVzCisgKiBmb3IgU2NhblF1ZXJ5Rm9yTG9ja3MKICAqLwog c3RhdGljIGJvb2wKIFNjYW5RdWVyeVdhbGtlcihOb2RlICpub2RlLCBib29sICphY3F1aXJlKQpA QCAtMjE5MCw2ICsyMjA3LDIwIEBAIFNjYW5RdWVyeVdhbGtlcihOb2RlICpub2RlLCBib29sICph Y3F1aXJlKQogCQlTY2FuUXVlcnlGb3JMb2NrcyhjYXN0Tm9kZShRdWVyeSwgc3ViLT5zdWJzZWxl Y3QpLCAqYWNxdWlyZSk7CiAJCS8qIEZhbGwgdGhyb3VnaCB0byBwcm9jZXNzIGxlZnRoYW5kIGFy Z3Mgb2YgU3ViTGluayAqLwogCX0KKwllbHNlIGlmIChJc0Eobm9kZSwgUGFyYW0pKQorCXsKKwkJ UGFyYW0JICAgKnAgPSAoUGFyYW0gKikgbm9kZTsKKworCQlpZiAocC0+cGFyYW1raW5kID09IFBB UkFNX1ZBUklBQkxFKQorCQl7CisJCQlpZiAoYWNxdWlyZSkKKwkJCQlMb2NrRGF0YWJhc2VPYmpl Y3QoVmFyaWFibGVSZWxhdGlvbklkLCBwLT5wYXJhbXZhcmlkLAorCQkJCQkJCQkgICAwLCBBY2Nl c3NTaGFyZUxvY2spOworCQkJZWxzZQorCQkJCVVubG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxl UmVsYXRpb25JZCwgcC0+cGFyYW12YXJpZCwKKwkJCQkJCQkJCSAwLCBBY2Nlc3NTaGFyZUxvY2sp OworCQl9CisJfQogCiAJLyoKIAkgKiBEbyBOT1QgcmVjdXJzZSBpbnRvIFF1ZXJ5IG5vZGVzLCBi ZWNhdXNlIFNjYW5RdWVyeUZvckxvY2tzIGFscmVhZHkKQEAgLTIzMjAsNyArMjM1MSw5IEBAIFBs YW5DYWNoZVJlbENhbGxiYWNrKERhdHVtIGFyZywgT2lkIHJlbGlkKQogCiAvKgogICogUGxhbkNh Y2hlT2JqZWN0Q2FsbGJhY2sKLSAqCQlTeXNjYWNoZSBpbnZhbCBjYWxsYmFjayBmdW5jdGlvbiBm b3IgUFJPQ09JRCBhbmQgVFlQRU9JRCBjYWNoZXMKKyAqCQlTeXNjYWNoZSBpbnZhbCBjYWxsYmFj ayBmdW5jdGlvbiBmb3IgVFlQRU9JRCwgUFJPQ09JRCwgTkFNRVNQQUNFT0lELAorICoJCU9QRVJP SUQsIEFNT1BPUElELCBGT1JFSUdOU0VSVkVST0lELCBGT1JFSUdOREFUQVdSQVBQRVJPSUQgYW5k CisgKgkJVkFSSUFCTEVPSUQgY2FjaGVzLgogICoKICAqIEludmFsaWRhdGUgYWxsIHBsYW5zIG1l bnRpb25pbmcgdGhlIG9iamVjdCB3aXRoIHRoZSBzcGVjaWZpZWQgaGFzaCB2YWx1ZSwKICAqIG9y IGFsbCBwbGFucyBtZW50aW9uaW5nIGFueSBtZW1iZXIgb2YgdGhpcyBjYWNoZSBpZiBoYXNodmFs dWUgPT0gMC4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKaW5kZXggNzgyMjkxZDk5OTguLjA5MzYyMmZiZGM0 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9mbWdyL2ZtZ3IuYwpAQCAtMjAyNiw5ICsyMDI2LDEzIEBAIGdldF9jYWxsX2V4 cHJfYXJnX3N0YWJsZShOb2RlICpleHByLCBpbnQgYXJnbnVtKQogCSAqLwogCWlmIChJc0EoYXJn LCBDb25zdCkpCiAJCXJldHVybiB0cnVlOwotCWlmIChJc0EoYXJnLCBQYXJhbSkgJiYKLQkJKChQ YXJhbSAqKSBhcmcpLT5wYXJhbWtpbmQgPT0gUEFSQU1fRVhURVJOKQotCQlyZXR1cm4gdHJ1ZTsK KwlpZiAoSXNBKGFyZywgUGFyYW0pKQorCXsKKwkJUGFyYW0JICAgKnAgPSAoUGFyYW0gKikgYXJn OworCisJCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fRVhURVJOIHx8IHAtPnBhcmFta2luZCA9 PSBQQVJBTV9WQVJJQUJMRSkKKwkJCXJldHVybiB0cnVlOworCX0KIAogCXJldHVybiBmYWxzZTsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCA5NGJkODZjMDFiOS4uNzhiMTMwYzA0YjAgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTEyMjgsOCArMTIyOCw4IEBAIHN0YXRpYyBjb25zdCBj aGFyICpjb25zdCBzcWxfY29tbWFuZHNbXSA9IHsKIAkiQUJPUlQiLCAiQUxURVIiLCAiQU5BTFla RSIsICJCRUdJTiIsICJDQUxMIiwgIkNIRUNLUE9JTlQiLCAiQ0xPU0UiLCAiQ0xVU1RFUiIsCiAJ IkNPTU1FTlQiLCAiQ09NTUlUIiwgIkNPUFkiLCAiQ1JFQVRFIiwgIkRFQUxMT0NBVEUiLCAiREVD TEFSRSIsCiAJIkRFTEVURSBGUk9NIiwgIkRJU0NBUkQiLCAiRE8iLCAiRFJPUCIsICJFTkQiLCAi RVhFQ1VURSIsICJFWFBMQUlOIiwKLQkiRkVUQ0giLCAiR1JBTlQiLCAiSU1QT1JUIEZPUkVJR04g U0NIRU1BIiwgIklOU0VSVCBJTlRPIiwgIkxJU1RFTiIsICJMT0FEIiwgIkxPQ0siLAotCSJNRVJH RSBJTlRPIiwgIk1PVkUiLCAiTk9USUZZIiwgIlBSRVBBUkUiLAorCSJGRVRDSCIsICJHUkFOVCIs ICJJTVBPUlQgRk9SRUlHTiBTQ0hFTUEiLCAiSU5TRVJUIElOVE8iLCAiTEVUIiwKKwkiTElTVEVO IiwgIkxPQUQiLCAiTE9DSyIsICJNRVJHRSBJTlRPIiwgIk1PVkUiLCAiTk9USUZZIiwgIlBSRVBB UkUiLAogCSJSRUFTU0lHTiIsICJSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIiwgIlJFSU5ERVgi LCAiUkVMRUFTRSIsCiAJIlJFU0VUIiwgIlJFVk9LRSIsICJST0xMQkFDSyIsCiAJIlNBVkVQT0lO VCIsICJTRUNVUklUWSBMQUJFTCIsICJTRUxFQ1QiLCAiU0VUIiwgIlNIT1ciLCAiU1RBUlQiLApA QCAtNDY5NSw2ICs0Njk1LDE0IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lk LAogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQUxVRVMiKSAmJiAhVGFpbE1hdGNoZXMoIkRFRkFV TFQiLCAiVkFMVUVTIikpCiAJCUNPTVBMRVRFX1dJVEgoIigiKTsKIAorLyogTEVUICovCisJLyog SWYgcHJldi4gd29yZCBpcyBMRVQgc3VnZ2VzdCBhIGxpc3Qgb2YgdmFyaWFibGVzICovCisJZWxz ZSBpZiAoTWF0Y2hlcygiTEVUIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5 X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CisJLyogQ29tcGxldGUgTEVUIDx2YXJpYWJsZT4gd2l0 aCAiPSIgKi8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiTEVUIiwgTWF0Y2hBbnkpKQorCQlDT01Q TEVURV9XSVRIKCI9Iik7CisKIC8qIExPQ0sgKi8KIAkvKiBDb21wbGV0ZSBMT0NLIFtUQUJMRV0g W09OTFldIHdpdGggYSBsaXN0IG9mIHRhYmxlcyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkxPQ0si KSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggYi9zcmMvaW5j bHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IGJkYWMwYzEzYmVjLi41MDYwYjhjOTQ5MCAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAorKysgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC0xNzQsNiArMTc0LDcgQEAgZXh0ZXJuIGJvb2wg U2VhcmNoUGF0aE1hdGNoZXNDdXJyZW50RW52aXJvbm1lbnQoU2VhcmNoUGF0aE1hdGNoZXIgKnBh dGgpOwogZXh0ZXJuIExpc3QgKk5hbWVzRnJvbUxpc3QoTGlzdCAqbmFtZXMpOwogZXh0ZXJuIE9p ZAlMb29rdXBWYXJpYWJsZShjb25zdCBjaGFyICpuc3BuYW1lLCBjb25zdCBjaGFyICp2YXJuYW1l LCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlMb29rdXBWYXJpYWJsZUZyb21OYW1lTGlz dChMaXN0ICpuYW1lcywgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBPaWQJSWRlbnRpZnlWYXJp YWJsZShMaXN0ICpuYW1lcywgY2hhciAqKmF0dHJuYW1lLCBib29sICpub3RfdW5pcXVlLCBib29s IG5vZXJyb3IpOwogCiBleHRlcm4gT2lkCWdldF9jb2xsYXRpb25fb2lkKExpc3QgKmNvbGxuYW1l LCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlnZXRfY29udmVyc2lvbl9vaWQoTGlzdCAq Y29ubmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAppbmRl eCAzZDNjNmViMjRiNS4uNWI0NWJlNWFmYWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgK QEAgLTE4LDYgKzE4LDcgQEAKICNpZm5kZWYgUEdfVkFSSUFCTEVfSAogI2RlZmluZSBQR19WQVJJ QUJMRV9ICiAKKyNpbmNsdWRlICJhY2Nlc3MveGxvZ2RlZnMuaCIKICNpbmNsdWRlICJjYXRhbG9n L2dlbmJraS5oIgogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdmFyaWFibGVfZC5oIgpAQCAtMzUsNiArMzYsMTQgQEAgQ0FUQUxPRyhwZ192 YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKIAkvKiBPSUQgb2YgZW50cnkgaW4gcGdf dHlwZSBmb3IgdmFyaWFibGUncyB0eXBlICovCiAJT2lkCQkJdmFydHlwZSBCS0lfTE9PS1VQKHBn X3R5cGUpOwogCisJLyoKKwkgKiBVc2VkIGZvciBpZGVudGl0eSBjaGVjayBbb2lkLCBjcmVhdGVf bHNuXS4KKwkgKgorCSAqIFRoaXMgY29sdW1uIG9mIHRoZSA4LWJ5dGUgWGxvZ1JlY1B0ciB0eXBl IHNob3VsZCBiZSBhdCBhbiBhZGRyZXNzIHRoYXQKKwkgKiBpcyBkaXZpc2libGUgYnkgOCwgYnV0 IGJlZm9yZSBhbnkgY29sdW1uIG9mIHR5cGUgTmFtZURhdGEuCisJICovCisJWExvZ1JlY1B0cgl2 YXJjcmVhdGVfbHNuOworCiAJLyogdmFyaWFibGUgbmFtZSAqLwogCU5hbWVEYXRhCXZhcm5hbWU7 CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCBi L3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjM5MWI5YWQ0NDMKLS0tIC9kZXYvbnVsbAorKysgYi9z cmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAgLTAsMCArMSwzMCBAQAor LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc2Vzc2lvbnZhcmlhYmxlLmgKKyAqCSAgcHJvdG90 eXBlcyBmb3Igc2Vzc2lvbnZhcmlhYmxlLmMuCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICog UG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9m IENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaWZuZGVmIFNFU1NJT05WQVJJQUJM RV9ICisjZGVmaW5lIFNFU1NJT05WQVJJQUJMRV9ICisKKyNpbmNsdWRlICJub2Rlcy9wYXJhbXMu aCIKKyNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNl X25vZGUuaCIKKyNpbmNsdWRlICJ0Y29wL2NtZHRhZy5oIgorI2luY2x1ZGUgInV0aWxzL3F1ZXJ5 ZW52aXJvbm1lbnQuaCIKKworZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJp ZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKK2V4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFy aWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwpOworCitleHRlcm4gdm9pZCBFeGVjdXRlTGV0 U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8gcGFy YW1zLAorCQkJCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIFF1ZXJ5Q29tcGxldGlv biAqcWMpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJp YWJsZVJlY2VpdmVyLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5o Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kYjQ0ZDhiOTRjNgotLS0g L2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgK QEAgLTAsMCArMSwyMiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc3ZhcmlhYmxlUmVj ZWl2ZXIuaAorICoJICBwcm90b3R5cGVzIGZvciBzdmFyaWFibGVSZWNlaXZlci5jCisgKgorICoK KyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBE ZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRz IG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9leGVj dXRvci9zdmFyaWFibGVSZWNlaXZlci5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKwor I2lmbmRlZiBTVkFSSUFCTEVfUkVDRUlWRVJfSAorI2RlZmluZSBTVkFSSUFCTEVfUkVDRUlWRVJf SAorCisjaW5jbHVkZSAidGNvcC9kZXN0LmgiCisKK2V4dGVybiBEZXN0UmVjZWl2ZXIgKkNyZWF0 ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKE9pZCB2YXJpZCk7CisKKyNlbmRpZgkJCQkJCQkvKiBTVkFS SUFCTEVfUkVDRUlWRVJfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25v ZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCA1YjZjYWRiNWE2Yy4u NzljMDczMmFhZDUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC02NDIsNiArNjQyLDE2IEBAIHR5 cGVkZWYgc3RydWN0IEFzeW5jUmVxdWVzdAogCQkJCQkJCQkgKiB0dXBsZXMpICovCiB9IEFzeW5j UmVxdWVzdDsKIAorLyogLS0tLS0tLS0tLS0tLS0tLQorICogU2Vzc2lvblZhcmlhYmxlVmFsdWUK KyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgU2Vzc2lvblZhcmlhYmxl VmFsdWUKK3sKKwlib29sCQlpc251bGw7CisJRGF0dW0JCXZhbHVlOworfSBTZXNzaW9uVmFyaWFi bGVWYWx1ZTsKKwogLyogLS0tLS0tLS0tLS0tLS0tLQogICoJICBFU3RhdGUgaW5mb3JtYXRpb24K ICAqCkBAIC03MDIsNiArNzEyLDEwIEBAIHR5cGVkZWYgc3RydWN0IEVTdGF0ZQogCVBhcmFtTGlz dEluZm8gZXNfcGFyYW1fbGlzdF9pbmZvOwkvKiB2YWx1ZXMgb2YgZXh0ZXJuYWwgcGFyYW1zICov CiAJUGFyYW1FeGVjRGF0YSAqZXNfcGFyYW1fZXhlY192YWxzOwkvKiB2YWx1ZXMgb2YgaW50ZXJu YWwgcGFyYW1zICovCiAKKwkvKiBTZXNzaW9uIHZhcmlhYmxlcyBpbmZvOiAqLworCWludAkJCWVz X251bV9zZXNzaW9uX3ZhcmlhYmxlczsJCS8qIG51bWJlciBvZiB1c2VkIHZhcmlhYmxlcyAqLwor CVNlc3Npb25WYXJpYWJsZVZhbHVlICplc19zZXNzaW9uX3ZhcmlhYmxlczsJLyogYXJyYXkgb2Yg Y29waWVzIG9mIHZhbHVlcyAqLworCiAJUXVlcnlFbnZpcm9ubWVudCAqZXNfcXVlcnlFbnY7CS8q IHF1ZXJ5IGVudmlyb25tZW50ICovCiAKIAkvKiBPdGhlciB3b3JraW5nIHN0YXRlOiAqLwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGFlNGI2YTM4NjJjLi44Zjg3NGEwOGQyOSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaApAQCAtMTQyLDYgKzE0Miw5IEBAIHR5cGVkZWYgc3RydWN0IFF1ZXJ5CiAJ ICovCiAJaW50CQkJcmVzdWx0UmVsYXRpb24gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25v cmUpOwogCisJLyogdGFyZ2V0IHZhcmlhYmxlIG9mIExFVCBzdGF0ZW1lbnQgKi8KKwlPaWQJCQly ZXN1bHRWYXJpYWJsZTsKKwogCS8qIGhhcyBhZ2dyZWdhdGVzIGluIHRsaXN0IG9yIGhhdmluZ1F1 YWwgKi8KIAlib29sCQloYXNBZ2dzIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsK IAkvKiBoYXMgd2luZG93IGZ1bmN0aW9ucyBpbiB0bGlzdCAqLwpAQCAtMTYyLDYgKzE2NSw4IEBA IHR5cGVkZWYgc3RydWN0IFF1ZXJ5CiAJYm9vbAkJaGFzUm93U2VjdXJpdHkgcGdfbm9kZV9hdHRy KHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIHBhcnNlciBoYXMgYWRkZWQgYW4gUlRFX0dST1VQ IFJURSAqLwogCWJvb2wJCWhhc0dyb3VwUlRFIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdu b3JlKTsKKwkvKiB1c2VzIHNlc3Npb24gdmFyaWFibGVzICovCisJYm9vbAkJaGFzU2Vzc2lvblZh cmlhYmxlcyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogaXMgYSBSRVRV Uk4gc3RhdGVtZW50ICovCiAJYm9vbAkJaXNSZXR1cm4gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJs ZV9pZ25vcmUpOwogCkBAIC0yMTQ5LDYgKzIxNTQsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgTWVyZ2VT dG10CiAJUGFyc2VMb2MJc3RtdF9sZW47CQkvKiBsZW5ndGggaW4gYnl0ZXM7IDAgbWVhbnMgInJl c3Qgb2Ygc3RyaW5nIiAqLwogfSBNZXJnZVN0bXQ7CiAKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAqCQlMZXQgU3RhdGVtZW50CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5 cGVkZWYgc3RydWN0IExldFN0bXQKK3sKKwlOb2RlVGFnCQl0eXBlOworCUxpc3QJICAgKnRhcmdl dDsJCQkvKiB0YXJnZXQgdmFyaWFibGUgKi8KKwlOb2RlCSAgICpxdWVyeTsJCQkvKiBzb3VyY2Ug ZXhwcmVzc2lvbiAqLworCVBhcnNlTG9jCWxvY2F0aW9uOworfSBMZXRTdG10OworCiAvKiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJU2VsZWN0IFN0YXRlbWVudAogICoKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5v ZGVzLmgKaW5kZXggNGM0NjZmNzY3NzguLjNmOGE0NjkxYTM2IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXRobm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMu aApAQCAtMTgyLDYgKzE4MiwxOCBAQCB0eXBlZGVmIHN0cnVjdCBQbGFubmVyR2xvYmFsCiAKIAkv KiBwYXJ0aXRpb24gZGVzY3JpcHRvcnMgKi8KIAlQYXJ0aXRpb25EaXJlY3RvcnkgcGFydGl0aW9u X2RpcmVjdG9yeSBwZ19ub2RlX2F0dHIocmVhZF93cml0ZV9pZ25vcmUpOworCisJLyogbGlzdCBv ZiB1c2VkIHNlc3Npb24gdmFyaWFibGVzICovCisJTGlzdAkgICAqc2Vzc2lvblZhcmlhYmxlczsK KworCS8qIE9pZCBvZiBzZXNzaW9uIHZhcmlhYmxlIHVzZWQgbGlrZSB0YXJnZXQgb2YgTEVUIGNv bW1hbmQgKi8KKwlPaWQJCQlyZXN1bHRWYXJpYWJsZTsKKworCS8qIG9pZCBvZiBzZXNzaW9uIHZh cmlhYmxlIHVzZWQgbGlrZSBiYXNlIG5vZGUgZm9yIGFzc2lnbm1lbnQgaW5kaXJlY3Rpb24gKi8K KwlPaWQJCQliYXNlbm9kZVNlc3Npb25WYXJpZDsKKworCS8qIHRydWUsIGlmIHdlIGRvIFNFTEVD VCBwZXJtaXNzaW9uIGNoZWNrIG9uIGJhc2Vub2RlU2Vzc2lvblZhcmlkICovCisJYm9vbAkJYmFz ZW5vZGVTZXNzaW9uVmFyU2VsZWN0Q2hlY2s7CiB9IFBsYW5uZXJHbG9iYWw7CiAKIC8qIG1hY3Jv IGZvciBmZXRjaGluZyB0aGUgUGxhbiBhc3NvY2lhdGVkIHdpdGggYSBTdWJQbGFuIG5vZGUgKi8K QEAgLTUzMiw2ICs1NDQsOCBAQCBzdHJ1Y3QgUGxhbm5lckluZm8KIAlib29sCQlwbGFjZWhvbGRl cnNGcm96ZW47CiAJLyogdHJ1ZSBpZiBwbGFubmluZyBhIHJlY3Vyc2l2ZSBXSVRIIGl0ZW0gKi8K IAlib29sCQloYXNSZWN1cnNpb247CisJLyogdHJ1ZSBpZiBzZXNzaW9uIHZhcmlhYmxlcyB3ZXJl IHVzZWQgKi8KKwlib29sCQloYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJLyoKIAkgKiBUaGUgcmFu Z2V0YWJsZSBpbmRleCBmb3IgdGhlIFJURV9HUk9VUCBSVEUsIG9yIDAgaWYgdGhlcmUgaXMgbm8K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggNjU4ZDc2MjI1ZTQuLjQ5MmI5ZDk3ZTVjIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rl cy9wbGFubm9kZXMuaApAQCAtMTM4LDYgKzEzOCwxNSBAQCB0eXBlZGVmIHN0cnVjdCBQbGFubmVk U3RtdAogCS8qIG5vbi1udWxsIGlmIHRoaXMgaXMgdXRpbGl0eSBzdG10ICovCiAJTm9kZQkgICAq dXRpbGl0eVN0bXQ7CiAKKwlMaXN0CSAgICpzZXNzaW9uVmFyaWFibGVzOwkvKiBPSURzIGZvciBQ QVJBTV9WQVJJQUJMRSBQYXJhbXMgKi8KKworCS8qCisJICogVGhlIG9pZCBvZiBzZXNzaW9uIHZh cmlhYmxlIGV4ZWNsdWRlZCBmcm9tIHBlcm1pc3Npb24gY2hlY2suCisJICogVGhpcyBzZXNzaW9u IHZhcmlhYmxlIGlzIHVzZWQgYXMgYmFzZSBub2RlIG9mIGFzc2lnbm1lbnQgaW5kaXJlY3Rpb24K KwkgKiAoYW5kIGl0IGlzIHVzZWQgb25seSB0aGVyZSkuCisJICovCisJaW50CQkJZXhjbFNlbGVj dFBlcm1DaGVja1ZhcmlkOworCiAJLyogc3RhdGVtZW50IGxvY2F0aW9uIGluIHNvdXJjZSBzdHJp bmcgKGNvcGllZCBmcm9tIFF1ZXJ5KSAqLwogCS8qIHN0YXJ0IGxvY2F0aW9uLCBvciAtMSBpZiB1 bmtub3duICovCiAJUGFyc2VMb2MJc3RtdF9sb2NhdGlvbjsKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5k ZXggN2QzYjQxOThmMjYuLjNjYzJmMDE5YWJiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rl cy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtMzc4 LDYgKzM3OCw5IEBAIHR5cGVkZWYgc3RydWN0IENvbnN0CiAgKgkJCQlvZiB0aGUgYHBhcmFtaWQn IGZpZWxkIGNvbnRhaW4gdGhlIFN1YkxpbmsncyBzdWJMaW5rSWQsIGFuZAogICoJCQkJdGhlIGxv dy1vcmRlciAxNiBiaXRzIGNvbnRhaW4gdGhlIGNvbHVtbiBudW1iZXIuICAoVGhpcyB0eXBlCiAg KgkJCQlvZiBQYXJhbSBpcyBhbHNvIGNvbnZlcnRlZCB0byBQQVJBTV9FWEVDIGR1cmluZyBwbGFu bmluZy4pCisgKgorICoJCVBBUkFNX1ZBUklBQkxFOiAgVGhlIHBhcmFtZXRlciBpcyBhIHJlZmVy ZW5jZSB0byBhIHNlc3Npb24gdmFyaWFibGUKKyAqCQkJCShwYXJhbXZhcmlkIGhvbGRzIHRoZSB2 YXJpYWJsZSdzIE9JRCkuCiAgKi8KIHR5cGVkZWYgZW51bSBQYXJhbUtpbmQKIHsKQEAgLTM4NSw2 ICszODgsNyBAQCB0eXBlZGVmIGVudW0gUGFyYW1LaW5kCiAJUEFSQU1fRVhFQywKIAlQQVJBTV9T VUJMSU5LLAogCVBBUkFNX01VTFRJRVhQUiwKKwlQQVJBTV9WQVJJQUJMRSwKIH0gUGFyYW1LaW5k OwogCiB0eXBlZGVmIHN0cnVjdCBQYXJhbQpAQCAtMzk3LDYgKzQwMSwxNiBAQCB0eXBlZGVmIHN0 cnVjdCBQYXJhbQogCWludDMyCQlwYXJhbXR5cG1vZCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxl X2lnbm9yZSk7CiAJLyogT0lEIG9mIGNvbGxhdGlvbiwgb3IgSW52YWxpZE9pZCBpZiBub25lICov CiAJT2lkCQkJcGFyYW1jb2xsaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwor CS8qIE9JRCBvZiBzZXNzaW9uIHZhcmlhYmxlIGlmIGl0IGlzIHVzZWQgKi8KKwlPaWQJCQlwYXJh bXZhcmlkIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKKworCS8qCisJICogdHJ1 ZSBpZiBwYXJhbSBpcyB1c2VkIGFzIGJhc2Ugbm9kZSBvZiBhc3NpZ25tZW50IGluZGlyZWN0aW9u CisJICogKHdoZW4gdGFyZ2V0IG9mIExFVCBzdGF0ZW1lbnQgaXMgYW4gYXJyYXkgZmllbGQgb3Ig YW4gcmVjb3JkIGZpZWxkKS4KKwkgKiBGb3IgdGhpcyBwYXJhbSB3ZSBkbyBub3QgY2hlY2sgU0VM RUNUIGFjY2VzcyByaWdodCwgYmVjYXVzZSB0aGlzCisJICogcGFyYW0gaXMgdXNlZCBqdXN0IGZv ciBleGVjdXRpb24gb2YgVVBEQVRFIG9wZXJhdGlvbi4KKwkgKi8KKwlib29sCQlwYXJhbWJhc2Vu b2RlOwogCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJ bG9jYXRpb247CiB9IFBhcmFtOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Bs YW5tYWluLmggYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaAppbmRleCA1YTkzMDE5 OTYxMS4uN2EzYjUyMmI1ZmYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFu bWFpbi5oCisrKyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5oCkBAIC0xMzEsNCAr MTMxLDYgQEAgZXh0ZXJuIHZvaWQgcmVjb3JkX3BsYW5fZnVuY3Rpb25fZGVwZW5kZW5jeShQbGFu bmVySW5mbyAqcm9vdCwgT2lkIGZ1bmNpZCk7CiBleHRlcm4gdm9pZCByZWNvcmRfcGxhbl90eXBl X2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCB0eXBpZCk7CiBleHRlcm4gYm9vbCBl eHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5lckluZm8g KmNvbnRleHQpOwogCitleHRlcm4gdm9pZCBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlcyhQ bGFubmVySW5mbyAqcm9vdCk7CisKICNlbmRpZgkJCQkJCQkvKiBQTEFOTUFJTl9IICovCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIv a3dsaXN0LmgKaW5kZXggMGVhMDI2NWRlN2MuLjhjMGFmZmJhMTNiIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o CkBAIC0yNTcsNiArMjU3LDcgQEAgUEdfS0VZV09SRCgibGVhZGluZyIsIExFQURJTkcsIFJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZWFrcHJvb2YiLCBMRUFLUFJP T0YsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlYXN0Iiwg TEVBU1QsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZWZ0Iiwg TEVGVCwgVFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoImxl dCIsIExFVCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGV2 ZWwiLCBMRVZFTCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi bGlrZSIsIExJS0UsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlX T1JEKCJsaW1pdCIsIExJTUlULCBSRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2Vfbm9kZS5oCmluZGV4IDk5NDI4NDAxOWZiLi4wYjdiNjlhNDE1OSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2Vfbm9kZS5oCkBAIC04Miw2ICs4Miw4IEBAIHR5cGVkZWYgZW51bSBQYXJzZUV4cHJLaW5k CiAJRVhQUl9LSU5EX0NPUFlfV0hFUkUsCQkvKiBXSEVSRSBjb25kaXRpb24gaW4gQ09QWSBGUk9N ICovCiAJRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU4sIC8qIGdlbmVyYXRpb24gZXhwcmVzc2lv biBmb3IgYSBjb2x1bW4gKi8KIAlFWFBSX0tJTkRfQ1lDTEVfTUFSSywJCS8qIGN5Y2xlIG1hcmsg dmFsdWUgKi8KKwlFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVCwJLyogUEwvcGdTUUwgYXNzaWdubWVu dCB0YXJnZXQgKi8KKwlFWFBSX0tJTkRfTEVUX1RBUkdFVCwJCS8qIExFVCB0YXJnZXQgKi8KIH0g UGFyc2VFeHByS2luZDsKIAogCkBAIC0yNDQsNiArMjQ2LDcgQEAgc3RydWN0IFBhcnNlU3RhdGUK IAlib29sCQlwX2hhc1RhcmdldFNSRnM7CiAJYm9vbAkJcF9oYXNTdWJMaW5rczsKIAlib29sCQlw X2hhc01vZGlmeWluZ0NURTsKKwlib29sCQlwX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlOb2Rl CSAgICpwX2xhc3Rfc3JmOwkJLyogbW9zdCByZWNlbnQgc2V0LXJldHVybmluZyBmdW5jL29wIGZv dW5kICovCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oIGIvc3Jj L2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKaW5kZXggZWE4Njk1NGRkZWQuLjIyMDgyYzMwMDA4 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAorKysgYi9zcmMvaW5j bHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAtMTg2LDYgKzE4Niw3IEBAIFBHX0NNRFRBRyhDTURU QUdfR1JBTlQsICJHUkFOVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf R1JBTlRfUk9MRSwgIkdSQU5UIFJPTEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19JTVBPUlRfRk9SRUlHTl9TQ0hFTUEsICJJTVBPUlQgRk9SRUlHTiBTQ0hFTUEiLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0lOU0VSVCwgIklOU0VSVCIsIGZh bHNlLCBmYWxzZSwgdHJ1ZSkKK1BHX0NNRFRBRyhDTURUQUdfTEVULCAiTEVUIiwgZmFsc2UsIGZh bHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfTElTVEVOLCAiTElTVEVOIiwgZmFsc2UsIGZh bHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfTE9BRCwgIkxPQUQiLCBmYWxzZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19MT0NLX1RBQkxFLCAiTE9DSyBUQUJMRSIsIGZhbHNl LCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaCBiL3Ny Yy9pbmNsdWRlL3Rjb3AvZGVzdC5oCmluZGV4IDAwYzA5MmUzZDdjLi42Y2UzZWEwZTYxNyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9k ZXN0LmgKQEAgLTk3LDYgKzk3LDcgQEAgdHlwZWRlZiBlbnVtCiAJRGVzdFRyYW5zaWVudFJlbCwJ CQkvKiByZXN1bHRzIHNlbnQgdG8gdHJhbnNpZW50IHJlbGF0aW9uICovCiAJRGVzdFR1cGxlUXVl dWUsCQkJCS8qIHJlc3VsdHMgc2VudCB0byB0dXBsZSBxdWV1ZSAqLwogCURlc3RFeHBsYWluU2Vy aWFsaXplLAkJLyogcmVzdWx0cyBhcmUgc2VyaWFsaXplZCBhbmQgZGlzY2FyZGVkICovCisJRGVz dFZhcmlhYmxlLAkJCQkvKiByZXN1bHRzIHNlbnQgdG8gc2Vzc2lvbiB2YXJpYWJsZSAqLwogfSBD b21tYW5kRGVzdDsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3Bs cGdzcWwvc3JjL3BsX2V4ZWMuYyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKaW5kZXgg YmI5OTc4MWM1NmUuLjFjZmY1ZWZhNmY3IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZXhlYy5jCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKQEAgLTgyNjQsNyAr ODI2NCw4IEBAIGV4ZWNfaXNfc2ltcGxlX3F1ZXJ5KFBMcGdTUUxfZXhwciAqZXhwcikKIAkJcXVl cnktPnNvcnRDbGF1c2UgfHwKIAkJcXVlcnktPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5LT5saW1p dENvdW50IHx8Ci0JCXF1ZXJ5LT5zZXRPcGVyYXRpb25zKQorCQlxdWVyeS0+c2V0T3BlcmF0aW9u cyB8fAorCQlxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAkJcmV0dXJuIGZhbHNlOwogCiAJ LyoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQK aW5kZXggYzM2NjYwY2U2ZDMuLmYyMjQ2NzE4NmUzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtNDMxLDMgKzQzMSwxMjM1IEBAIERS T1AgVkFSSUFCTEUgcHVibGljLnZhcjE7CiBEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMTsK IERST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IyOwogRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXI7CistLSBjaGVjayBhY2Nlc3MgcmlnaHRzCitDUkVBVEUgUk9MRSByZWdyZXNzX25v b3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiBzcWxmeChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgJDEgKyB2YXIxICQk IExBTkdVQUdFIHNxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4X3NkKGludCkK K1JFVFVSTlMgaW50IEFTICQkIFNFTEVDVCAkMSArIHZhcjEgJCQgTEFOR1VBR0Ugc3FsIFNFQ1VS SVRZIERFRklORVI7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZngoaW50KQor UkVUVVJOUyBpbnQgQVMgJCQgQkVHSU4gUkVUVVJOICQxICsgdmFyMTsgRU5EICQkIExBTkdVQUdF IHBscGdzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZnhfc2QoaW50KQor UkVUVVJOUyBpbnQgQVMgJCQgQkVHSU4gUkVUVVJOICQxICsgdmFyMTsgRU5EICQkIExBTkdVQUdF IHBscGdzcWwgU0VDVVJJVFkgREVGSU5FUjsKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK1NFTEVD VCBzcWxmeCgyMCk7Cisgc3FsZnggCistLS0tLS0tCisgICAgMzAKKygxIHJvdykKKworU0VMRUNU IHNxbGZ4X3NkKDIwKTsKKyBzcWxmeF9zZCAKKy0tLS0tLS0tLS0KKyAgICAgICAzMAorKDEgcm93 KQorCitTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0tLQorICAg ICAgICAzMAorKDEgcm93KQorCitTRUxFQ1QgcGxwZ3NxbGZ4X3NkKDIwKTsKKyBwbHBnc3FsZnhf c2QgCistLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAzMAorKDEgcm93KQorCistLSBzaG91bGQg ZmFpbAorU0VUIFJPTEUgVE8gcmVncmVzc19ub293bmVyOworU0VMRUNUIHZhcjE7CitFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK1NFTEVDVCBzcWxm eCgyMCk7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZh cjEKK0NPTlRFWFQ6ICBTUUwgZnVuY3Rpb24gInNxbGZ4IiBzdGF0ZW1lbnQgMQorU0VMRUNUIHBs cGdzcWxmeCgyMCk7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlh YmxlIHZhcjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9uICIkMSArIHZhcjEiCitQTC9w Z1NRTCBmdW5jdGlvbiBwbHBnc3FsZngoaW50ZWdlcikgbGluZSAxIGF0IFJFVFVSTgorLS0gc2hv dWxkIGJlIG9rCitTRUxFQ1Qgc3FsZnhfc2QoMjApOworIHNxbGZ4X3NkIAorLS0tLS0tLS0tLQor ICAgICAgIDMwCisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3FsZnhfc2QoMjApOworIHBscGdzcWxm eF9zZCAKKy0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDMwCisoMSByb3cpCisKK1NFVCBST0xF IFRPIERFRkFVTFQ7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX25v b3duZXI7CistLSBzaG91bGQgYmUgb2sKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfbm9vd25lcjsKK1NF TEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK1NFTEVDVCBzcWxm eCgyMCk7Cisgc3FsZnggCistLS0tLS0tCisgICAgMzAKKygxIHJvdykKKworU0VMRUNUIHBscGdz cWxmeCgyMCk7CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAgICAgICAgMzAKKygxIHJvdykK KworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJ T04gc3FsZngoaW50KTsKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4KGludCk7CitEUk9QIEZVTkNU SU9OIHNxbGZ4X3NkKGludCk7CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeF9zZChpbnQpOworRFJP UCBST0xFIHJlZ3Jlc3Nfbm9vd25lcjsKKy0tIHVzZSB2YXJpYWJsZXMgaW5zaWRlIHZpZXdzCitD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOworLS0gdXNlIHZhcmlhYmxlcyBpbiB2aWV3 cworQ1JFQVRFIFZJRVcgdGVzdF92aWV3IEFTIFNFTEVDVCBDT0FMRVNDRSh2YXIxICsgdiwgMCkg QVMgcmVzdWx0IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMikgZyh2KTsKK1NFTEVDVCAqIEZST00g dGVzdF92aWV3OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICAgICAwCisgICAgICAwCisoMiByb3dz KQorCitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKKyByZXN1bHQg CistLS0tLS0tLQorICAgNC4xNAorICAgNS4xNAorKDIgcm93cykKKworLS0gc3RhcnQgYSBuZXcg c2Vzc2lvbgorXGMKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworIHJlc3VsdCAKKy0tLS0tLS0t CisgICAgICAwCisgICAgICAwCisoMiByb3dzKQorCitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1Qg KiBGUk9NIHRlc3RfdmlldzsKKyByZXN1bHQgCistLS0tLS0tLQorICAgNC4xNAorICAgNS4xNAor KDIgcm93cykKKworLS0gc2hvdWxkIGZhaWwsIGRlcGVuZGVuY3kKK0RST1AgVkFSSUFCTEUgdmFy MTsKK0VSUk9SOiAgY2Fubm90IGRyb3Agc2Vzc2lvbiB2YXJpYWJsZSB2YXIxIGJlY2F1c2Ugb3Ro ZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHZpZXcgdGVzdF92aWV3IGRlcGVuZHMg b24gc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8g ZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorLS0gc2hvdWxkIGJlIG9rCitEUk9QIFZB UklBQkxFIHZhcjEgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gdmlldyB0ZXN0 X3ZpZXcKK0NSRUFURSBWQVJJQUJMRSB2YXIxIHRleHQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiB0 ZXh0OworLS0gdXNlIHZhcmlhYmxlcyBpbiBTUUwgZnVuY3Rpb25zCitDUkVBVEUgT1IgUkVQTEFD RSBGVU5DVElPTiBzcWxmeDEodmFyY2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJCBTRUxFQ1Qg dmFyMSB8fCAnLCAnIHx8ICQxICQkIExBTkdVQUdFIHNxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHNxbGZ4MiggdmFyY2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJCBTRUxFQ1QgdmFy MiB8fCAnLCAnIHx8ICQxICQkIExBTkdVQUdFIHNxbDsKK0xFVCB2YXIxID0gJ3N0cjEnOworTEVU IHZhcjIgPSAnc3RyMic7CitTRUxFQ1Qgc3FsZngxKHNxbGZ4MignSGVsbG8nKSk7CisgICAgICBz cWxmeDEgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tCisgc3RyMSwgc3RyMiwgSGVsbG8KKygx IHJvdykKKworLS0gaW5saW5pbmcgaXMgYmxvY2tlZAorRVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJC T1NFKSBTRUxFQ1Qgc3FsZngxKHNxbGZ4MignSGVsbG8nKSk7CisgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFJlc3VsdAorICAgT3V0cHV0OiBz cWxmeDEoc3FsZngyKCdIZWxsbyc6OmNoYXJhY3RlciB2YXJ5aW5nKSkKKygyIHJvd3MpCisKK0RS T1AgRlVOQ1RJT04gc3FsZngxKHZhcmNoYXIpOworRFJPUCBGVU5DVElPTiBzcWxmeDIodmFyY2hh cik7CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CistLSBhY2Nlc3Mg ZnJvbSBjYWNoZWQgcGxhbnMgc2hvdWxkIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51 bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBudW1lcmljOworQ1JFQVRFIE9SIFJFUExB Q0UgRlVOQ1RJT04gcGxwZ3NxbGZ4KCkKK1JFVFVSTlMgbnVtZXJpYyBBUyAkJCBCRUdJTiBSRVRV Uk4gdmFyMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5D VElPTiBwbHBnc3FsZngyKG51bWVyaWMpCitSRVRVUk5TIHZvaWQgQVMgJCQgQkVHSU4gTEVUIHZh cjIgPSAkMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CitTRVQgcGxhbl9jYWNoZV9tb2RlIFRP IGZvcmNlX2dlbmVyaWNfcGxhbjsKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCBwbHBnc3FsZngo KTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgMy4xNAorKDEgcm93KQorCitMRVQg dmFyMSA9IDMuMTQgKiAyOworU0VMRUNUIHBscGdzcWxmeCgpOworIHBscGdzcWxmeCAKKy0tLS0t LS0tLS0tCisgICAgICA2LjI4CisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3FsZngyKDEwLjApOwor IHBscGdzcWxmeDIgCistLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHZhcjI7Cisg dmFyMiAKKy0tLS0tLQorIDEwLjAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJP UCBWQVJJQUJMRSB2YXIyOworLS0gZGVwZW5kZW5jeSAocGxhbiBpbnZhbGlkYXRpb24pIHNob3Vs ZCB3b3JrCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOworQ1JFQVRFIFZBUklBQkxF IHZhcjIgQVMgbnVtZXJpYzsKK0xFVCB2YXIxID0gMy4xNCAqIDM7CitTRUxFQ1QgcGxwZ3NxbGZ4 KCk7CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAgICAgIDkuNDIKKygxIHJvdykKKworTEVU IHZhcjEgPSAzLjE0ICogNDsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKyBwbHBnc3FsZnggCistLS0t LS0tLS0tLQorICAgICAxMi41NgorKDEgcm93KQorCitTRUxFQ1QgcGxwZ3NxbGZ4MigxMC4wKTsK KyBwbHBnc3FsZngyIAorLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCB2YXIyOwor IHZhcjIgCistLS0tLS0KKyAxMC4wCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RS T1AgVkFSSUFCTEUgdmFyMjsKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4KCk7CitEUk9QIEZVTkNU SU9OIHBscGdzcWxmeDIoKTsKK0VSUk9SOiAgZnVuY3Rpb24gcGxwZ3NxbGZ4MigpIGRvZXMgbm90 IGV4aXN0CistLSBkZXBlbmRlbmN5IG9uIGNvbHVtbiB0eXBlCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBpbnQ7CitDUkVBVEUgVEFCTEUgdGVzdHZhcihhIGludCwgYiBpbnQsIGMgaW50KTsKK0lO U0VSVCBJTlRPIHRlc3R2YXIgVkFMVUVTKDEwLDIwLDMwKTsKK0FMVEVSIFRBQkxFIHRlc3R2YXIg RFJPUCBDT0xVTU4gYTsKK0FMVEVSIFRBQkxFIHRlc3R2YXIgRFJPUCBDT0xVTU4gYjsKK0NSRUFU RSBGVU5DVElPTiBwbHBnc3FsZngzKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgTEVU IHZhcjEgPSAoU0VMRUNUICogRlJPTSB0ZXN0dmFyKTsKKyAgUkFJU0UgTk9USUNFICclJywgdmFy MTsKK0VORAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHBs cGdzcWxmeDMoKTsKK05PVElDRTogIDMwCisgcGxwZ3NxbGZ4MyAKKy0tLS0tLS0tLS0tLQorIAor KDEgcm93KQorCitBTFRFUiBUQUJMRSB0ZXN0dmFyIEFMVEVSIENPTFVNTiBjIFRZUEUgbnVtZXJp YzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHBscGdzcWxmeDMoKTsKK05PVElDRTogIDMwCisg cGxwZ3NxbGZ4MyAKKy0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitEUk9QIEZVTkNUSU9OIHBs cGdzcWxmeDMoKTsKK0RST1AgVEFCTEUgdGVzdHZhcjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK1NF VCBwbGFuX2NhY2hlX21vZGUgVE8gREVGQVVMVDsKKy0tIHJlcGVhdGVkIGV4ZWN1dGlvbiBzaG91 bGQgbm90IGNyYXNoCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBpbnQ7CitDUkVBVEUgVEFCTEUgdGVz dHZhcihhIGludCk7CitJTlNFUlQgSU5UTyB0ZXN0dmFyIFZBTFVFUygxKTsKK0RPICQkCitCRUdJ TgorICBMRVQgdmFyMSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFy MSA9IChTRUxFQ1QgYSBGUk9NIHRlc3R2YXIpOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNF ICclJywgdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAgMQorRE8gJCQKK0JFR0lOCisgIExFVCB2 YXIxID0gMDsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gKFNFTEVD VCBhICsgdmFyMSBGUk9NIHRlc3R2YXIpOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICcl JywgdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAgMTAKK0RPICQkCitCRUdJTgorICBMRVQgdmFy MSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IChTRUxFQ1Qg YSBGUk9NIHRlc3R2YXIpICsgdmFyMTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAnJScs IHZhcjE7CitFTkQ7CiskJDsKK05PVElDRTogIDEwCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEg PSAwOworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSBpOworICBFTkQg TE9PUDsKKyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAgMTAK K0RPICQkCitCRUdJTgorICBMRVQgdmFyMSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AK KyAgICBMRVQgdmFyMSA9IGkgKyB2YXIxOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICcl JywgdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAgNTUKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RS T1AgVEFCTEUgdGVzdHZhcjsKKy0tIHVzYWdlIExFVCBzdGF0ZW1lbnQgaW4gcGxwZ3NxbCBzaG91 bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIg bnVtZXJpY1tdOworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIyID0gJ3t9Jzo6aW50W107CisgIEZP UiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IGk7CisgICAgTEVUIHZhcjJbdmFy MV0gPSBpOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICdyZXN1bHQgYXJyYXk6ICUnLCB2 YXIyOworRU5EOworJCQ7CitOT1RJQ0U6ICByZXN1bHQgYXJyYXk6IHsxLDIsMyw0LDUsNiw3LDgs OSwxMH0KK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFSSUFCTEUgdmFyMjsKKy0tIENBTEwg c3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0CistLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNz IHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUgVkFS SUFCTEUgdiBpbnQ7CitDUkVBVEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4gUkFJ U0UgTk9USUNFICclJywgYXJnOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKy0tIHNob3VsZCBu b3QgY3Jhc2ggKGJ1dCBpcyBub3Qgc3VwcG9ydGVkIHlldCkKK0NBTEwgcCh2KTsKK0VSUk9SOiAg c2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudAorRE8gJCQgQkVH SU4gQ0FMTCBwKHYpOyBFTkQgJCQ7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJl IHVzZWQgYXMgYW4gYXJndW1lbnQKK0NPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJDQUxMIHAodiki CitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgQ0FMTAorRFJP UCBQUk9DRURVUkUgcChpbnQpOworRFJPUCBWQVJJQUJMRSB2OworLS0gRVhFQ1VURSBzdGF0ZW1l bnQgaXMgbm90IHN1cHBvcnRlZCB5ZXQKKy0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vz c2lvbiB2YXJpYWJsZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKK0NSRUFURSBWQVJJQUJMRSB2 IGludDsKK0xFVCB2ID0gMjA7CitQUkVQQVJFIHB0ZXN0KGludCkgQVMgU0VMRUNUICQxOworLS0g c2hvdWxkIGZhaWwKK0VYRUNVVEUgcHRlc3Qodik7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUg Y2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKK0RFQUxMT0NBVEUgcHRlc3Q7CitEUk9QIFZB UklBQkxFIHY7CistLSB0ZXN0IHNlYXJjaCBwYXRoCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0Owor Q1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgbnVtZXJpYzsKKy0tIHNob3VsZCBmYWls CitMRVQgdmFyMSA9IHBpKCk7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInZhcjEiIGRvZXNu J3QgZXhpc3QKK0xJTkUgMTogTEVUIHZhcjEgPSBwaSgpOworICAgICAgICAgICAgXgorU0VMRUNU IHZhcjE7CitFUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VM RUNUIHZhcjE7CisgICAgICAgICAgICAgICBeCistLSBzaG91bGQgYmUgb2sKK0xFVCBzdmFydGVz dC52YXIxID0gcGkoKTsKK1NFTEVDVCBzdmFydGVzdC52YXIxOworICAgICAgIHZhcjEgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0KKyAzLjE0MTU5MjY1MzU4OTc5CisoMSByb3cpCisKK1NFVCBz ZWFyY2hfcGF0aCBUTyBzdmFydGVzdDsKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBwaSgp ICsgMTA7CitTRUxFQ1QgdmFyMTsKKyAgICAgICB2YXIxICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tCisgMTMuMTQxNTkyNjUzNTg5OAorKDEgcm93KQorCitSRVNFVCBzZWFyY2hfcGF0aDsKK0RS T1AgU0NIRU1BIHN2YXJ0ZXN0IENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHNl c3Npb24gdmFyaWFibGUgc3ZhcnRlc3QudmFyMQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGV4 dDsKKy0tIHZhcmlhYmxlcyBjYW4gYmUgdXBkYXRlZCB1bmRlciBSTyB0cmFuc2FjdGlvbgorQkVH SU47CitTRVQgVFJBTlNBQ1RJT04gUkVBRCBPTkxZOworTEVUIHZhcjEgPSAnaGVsbG8nOworQ09N TUlUOworU0VMRUNUIHZhcjE7CisgdmFyMSAgCistLS0tLS0tCisgaGVsbG8KKygxIHJvdykKKwor RFJPUCBWQVJJQUJMRSB2YXIxOworLS0gdGVzdCBvZiBkb21haW5zCitDUkVBVEUgRE9NQUlOIGlu dF9kb21haW4gQVMgaW50IE5PVCBOVUxMIENIRUNLIChWQUxVRSA+IDEwMCk7CitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBpbnRfZG9tYWluOworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxOwor RVJST1I6ICBkb21haW4gaW50X2RvbWFpbiBkb2VzIG5vdCBhbGxvdyBudWxsIHZhbHVlcworLS0g c2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwMDA7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0t LS0tCisgMTAwMAorKDEgcm93KQorCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAxMDsKK0VS Uk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBpbnRfZG9tYWluIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFp bnQgImludF9kb21haW5fY2hlY2siCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBOVUxMOwor RVJST1I6ICBkb21haW4gaW50X2RvbWFpbiBkb2VzIG5vdCBhbGxvdyBudWxsIHZhbHVlcworLS0g bm90ZSAtIGRvbWFpbiBkZWZhdWx0cyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQgKGxpa2UgUExwZ1NR TCkKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRE9NQUlOIGludF9kb21haW47CistLSB0aGUg ZXhwcmVzc2lvbiBzaG91bGQgcmVtYWluICJ1bmtub3duIgorQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgaW50NG11bHRpcmFuZ2VbXTsKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBOVUxMOwor TEVUIHZhcjEgPSAneyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDE0KX0ifSc7CitMRVQg dmFyMVsyXSA9ICd7WzUsOCksWzEyLDEwMCl9JzsKK1NFTEVDVCB2YXIxOworICAgICAgICAgICAg ICAgICAgdmFyMSAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHsie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxMDApfSJ9Ciso MSByb3cpCisKKy0tSXQgc2hvdWxkIHdvcmsgaW4gcGxwZ3NxbCB0b28KK0RPICQkCitCRUdJTgor ICBMRVQgdmFyMSA9IE5VTEw7CisgIExFVCB2YXIxID0gJ3sie1syLDgpLFsxMSwxNCl9Iiwie1s1 LDgpLFsxMiwxNCl9In0nOworICBMRVQgdmFyMVsyXSA9ICd7WzUsOCksWzEyLDEwMCl9JzsKKwor ICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CitOT1RJQ0U6ICB7IntbMiw4KSxb MTEsMTQpfSIsIntbNSw4KSxbMTIsMTAwKX0ifQorRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRF IFNDSEVNQSBzdmFydGVzdCBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgQ1JFQVRFIFRBQkxF IGZvbyhhIGludCk7CitMRVQgc3ZhcnRlc3QudmFyMSA9IDEwMDsKK1NFTEVDVCBzdmFydGVzdC52 YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK1NFVCBzZWFyY2hfcGF0aCB0 byBwdWJsaWMsIHN2YXJ0ZXN0OworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAK KygxIHJvdykKKworRFJPUCBTQ0hFTUEgc3ZhcnRlc3QgQ0FTQ0FERTsKK05PVElDRTogIGRyb3Ag Y2FzY2FkZXMgdG8gMiBvdGhlciBvYmplY3RzCitERVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHRh YmxlIGZvbworZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludFtdOworTEVU IHZhcjEgPSAyOworTEVUIHZhcjIgPSAne30nOjppbnRbXTsKK0xFVCB2YXIyW3ZhcjFdID0gMDsK K1NFTEVDVCB2YXIyOworICAgdmFyMiAgICAKKy0tLS0tLS0tLS0tCisgWzI6Ml09ezB9CisoMSBy b3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludFtdOworTEVUIHZhcjEgPSAyOworTEVU IHZhcjIgPSAne30nOjppbnRbXTsKK1NFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyB7fQor KDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CistLSB0aGUgTEVUIHN0YXRlbWVu dCBzaG91bGQgYmUgZGlzYWxsb3dlZCBpbiBDVEUKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGlu dDsKK1dJVEggeCBBUyAoTEVUIHZhcjEgPSAxMDApIFNFTEVDVCAqIEZST00geDsKK0VSUk9SOiAg c3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIkxFVCIKK0xJTkUgMTogV0lUSCB4IEFTIChMRVQgdmFy MSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OworICAgICAgICAgICAgICAgICAgIF4KKy0tIHNob3Vs ZCBiZSBvaworTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMSk7CistLSBzaG91bGQgZmFp bAorTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMik7CitFUlJPUjogIGV4cHJlc3Npb24g cmV0dXJuZWQgbW9yZSB0aGFuIG9uZSByb3cKK0xFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVzKDEs IDApOworRVJST1I6ICBleHByZXNzaW9uIHJldHVybmVkIG5vIHJvd3MKK0RST1AgVkFSSUFCTEUg dmFyMTsKKy0tIGNvbXBvc2l0ZSB2YXJpYWJsZXMKK0NSRUFURSBUWVBFIHN2X3h5eiBBUyAoeCBp bnQsIHkgaW50LCB6IG51bWVyaWMoMTAsMikpOworQ1JFQVRFIFZBUklBQkxFIHYxIEFTIHN2X3h5 ejsKK0NSRUFURSBWQVJJQUJMRSB2MiBBUyBzdl94eXo7CitMRVQgdjEgPSAoMSwgMiwgMy4xNCk7 CitMRVQgdjIgPSAoMTAsIDIwLCAzLjE0ICogMTApOworLS0gc2hvdWxkIHdvcmsgdG9vIC0gdGhl cmUgYXJlIHByZXBhcmVkIGNhc3RzCitMRVQgdjEgPSAoMSwgMiwgMyk7CitTRUxFQ1QgdjE7Cisg ICAgIHYxICAgICAKKy0tLS0tLS0tLS0tLQorICgxLDIsMy4wMCkKKygxIHJvdykKKworU0VMRUNU IHYyOworICAgICAgdjIgICAgICAgCistLS0tLS0tLS0tLS0tLS0KKyAoMTAsMjAsMzEuNDApCiso MSByb3cpCisKK1NFTEVDVCAodjEpLio7CisgeCB8IHkgfCAgeiAgIAorLS0tKy0tLSstLS0tLS0K KyAxIHwgMiB8IDMuMDAKKygxIHJvdykKKworU0VMRUNUICh2MikuKjsKKyB4ICB8IHkgIHwgICB6 ICAgCistLS0tKy0tLS0rLS0tLS0tLQorIDEwIHwgMjAgfCAzMS40MAorKDEgcm93KQorCitTRUxF Q1QgdjEueCArIHYxLno7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgICAgIDQuMDAKKygxIHJv dykKKworU0VMRUNUIHYyLnggKyB2Mi56OworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorICAgIDQx LjQwCisoMSByb3cpCisKKy0tIGFjY2VzcyB0byBjb21wb3NpdGUgZmllbGRzIHNob3VsZCBiZSBz YWZlIHRvbworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOworU0VUIFJPTEUgVE8g cmVncmVzc192YXJfdGVzdF9yb2xlOworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2Mi54OworRVJS T1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2MgorU0VUIFJPTEUg VE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgdjE7CitEUk9QIFZBUklBQkxFIHYyOworRFJPUCBU WVBFIHN2X3h5ejsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CistLSBzaG91bGQg ZmFpbCwgd3JvbmcgaWRlbnRpZmllcgorTEVUIG5vZGIubm9zY2hlbWEubm92YXIubm9maWVsZC5u b3N1YmZpZWxkID0gMTA7CitFUlJPUjogIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFu eSBkb3R0ZWQgbmFtZXMpOiBub2RiLm5vc2NoZW1hLm5vdmFyLm5vZmllbGQubm9zdWJmaWVsZAor TEVUIG5vZGIubm9zY2hlbWEubm92YXIubm9maWVsZCA9IDEwOworRVJST1I6ICBjcm9zcy1kYXRh YmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IG5vZGIubm9zY2hlbWEubm92YXIu bm9maWVsZAorTEVUIG5vZGIubm9zY2hlbWEubm92YXIgPSAxMDsKK0VSUk9SOiAgY3Jvc3MtZGF0 YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiBub2RiLm5vc2NoZW1hLm5vdmFy CitDUkVBVEUgVFlQRSB0MSBBUyAoYSBpbnQsIGIgbnVtZXJpYywgYyB0ZXh0KTsKK0NSRUFURSBW QVJJQUJMRSB2MSBBUyB0MTsKK0xFVCB2MSA9ICgxLCBwaSgpLCAnaGVsbG8nKTsKK1NFTEVDVCB2 MTsKKyAgICAgICAgICAgICB2MSAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAoMSwzLjE0MTU5MjY1MzU4OTc5LGhlbGxvKQorKDEgcm93KQorCitMRVQgdjEuYiA9 IDEwLjIyMjI7CitTRUxFQ1QgdjE7CisgICAgICAgIHYxICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tCisgKDEsMTAuMjIyMixoZWxsbykKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwsIGF0 dHJpYnV0ZSBkb2Vzbid0IGV4aXN0CitMRVQgdjEueCA9IDEwOworRVJST1I6ICBjYW5ub3QgYXNz aWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gInYxIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2gg Y29sdW1uIGluIGRhdGEgdHlwZSB0MQorTElORSAxOiBMRVQgdjEueCA9IDEwOworICAgICAgICAg ICAgXgorLS0gc2hvdWxkIGZhaWwsIGRvbid0IGFsbG93IG11bHRpIGNvbHVtbiBxdWVyeQorTEVU IHYxID0gKE5VTEw6OnQxKS4qOworRVJST1I6ICBhc3NpZ25tZW50IGV4cHJlc3Npb24gcmV0dXJu ZWQgMyBjb2x1bW5zCitMSU5FIDE6IExFVCB2MSA9IChOVUxMOjp0MSkuKjsKKyAgICAgICAgICAg ICAgICAgIF4KKy0tIGFsbG93IERST1Agb3IgQUREIEFUVFJJQlVURSBvbiBjb21wb3NpdGUgdHlw ZXMKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVURSBjOworU0VM RUNUIHYxOworICAgICB2MSAgICAgIAorLS0tLS0tLS0tLS0tLQorICgxLDEwLjIyMjIpCisoMSBy b3cpCisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBBREQgQVRUUklCVVRFIGMgaW50 OworU0VMRUNUIHYxOworICAgICAgdjEgICAgICAKKy0tLS0tLS0tLS0tLS0tCisgKDEsMTAuMjIy MiwpCisoMSByb3cpCisKK0xFVCB2MSA9ICgxMCwgMTAuMywgMjApOworU0VMRUNUIHYxOworICAg ICAgdjEgICAgICAKKy0tLS0tLS0tLS0tLS0tCisgKDEwLDEwLjMsMjApCisoMSByb3cpCisKKy0t IHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVURSBiOworU0VMRUNUIHYx OworICAgdjEgICAgCistLS0tLS0tLS0KKyAoMTAsMjApCisoMSByb3cpCisKKy0tIHNob3VsZCBm YWlsLCBkaXNhbGxvdyBkYXRhIHR5cGUgY2hhbmdlCitBTFRFUiBUWVBFIHQxIEFMVEVSIEFUVFJJ QlVURSBjIFRZUEUgaW50OworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdHlwZSAidDEiIGJlY2F1c2Ug c2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnYxIiB1c2VzIGl0CitEUk9QIFZBUklBQkxFIHYxOwor RFJPUCBUWVBFIHQxOworLS0gdGhlIHRhYmxlIHR5cGUgY2FuIGJlIHVzZWQgYXMgY29tcG9zaXRl IHR5cGUgdG9vCitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGEgaW50LCBiIG51bWVyaWMsIGMgZGF0 ZSk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBzdmFyX3Rlc3Q7CitMRVQgdmFyMSA9ICgxMCwg cGkoKSwgJzIwMjMtMDUtMjYnKTsKK1NFTEVDVCB2YXIxOworICAgICAgICAgICAgICAgdmFyMSAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICgxMCwz LjE0MTU5MjY1MzU4OTc5LDA1LTI2LTIwMjMpCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsIGR1 ZSBkZXBlbmRlbmN5CitBTFRFUiBUQUJMRSBzdmFyX3Rlc3QgQUxURVIgQ09MVU1OIGEgVFlQRSB0 ZXh0OworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdGFibGUgInN2YXJfdGVzdCIgYmVjYXVzZSBzZXNz aW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgdXNlcyBpdAorLS0gc2hvdWxkIGZhaWwKK0RST1Ag VEFCTEUgc3Zhcl90ZXN0OworRVJST1I6ICBjYW5ub3QgZHJvcCB0YWJsZSBzdmFyX3Rlc3QgYmVj YXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2YXJpYWJs ZSB2YXIxIGRlcGVuZHMgb24gdHlwZSBzdmFyX3Rlc3QKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FT Q0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitEUk9QIFZBUklBQkxFIHZh cjE7CitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKK0NSRUFURSBUWVBFIHZhcnRlc3RfdDEgQVMgKGEg aW50LCBiIGludCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJ0ZXN0X3QxOworQ1JFQVRF IFRBQkxFIHZhcnRlc3R0YWIgKHhjb2wgaW50KTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX3Rl c3Rfcm9sZTsKK0dSQU5UIFVQREFURSBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyX3Rl c3Rfcm9sZTsKK0dSQU5UIFNFTEVDVCBPTiBUQUJMRSB2YXJ0ZXN0dGFiIFRPIHJlZ3Jlc3NfdmFy X3Rlc3Rfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKy0tIHNob3Vs ZCBiZSBvaworTEVUIHZhcjEgPSAoMTAsIDIwKTsKK0xFVCB2YXIxLmEgPSAzMDsKK0RPICQkCitC RUdJTgorICBMRVQgdmFyMSA9ICgxMDAsIDEwMCk7CisgIExFVCB2YXIxLmEgPSAxMDAwOworRU5E OworJCQ7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjEuYTsKK0VSUk9SOiAgcGVybWlzc2lv biBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorU0VMRUNUIHZhcjE7CitFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0xFVCB2YXIxLmEg PSB2YXIxLmEgKyAxMDsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFy aWFibGUgdmFyMQorTEVUIHZhcjEuYSA9IChTRUxFQ1QgKiBGUk9NIChTRUxFQ1QgY291bnQoKikg RlJPTSB2YXJ0ZXN0dGFiIFdIRVJFIHhjb2wgPSB2YXIxLmEgKyAxMCkpOworRVJST1I6ICBwZXJt aXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitETyAkJCBCRUdJTiBSQUlT RSBOT1RJQ0UgJyUnLCB2YXIxOyBFTkQgJCQ7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZv ciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9uICJ2 YXIxIgorUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJBSVNF CitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxLmE7IEVORCAkJDsKK0VSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ09OVEVYVDogIFBM L3BnU1FMIGV4cHJlc3Npb24gInZhcjEuYSIKK1BML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2Rl X2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQorRE8gJCQgQkVHSU4gTEVUIHZhcjEuYSA9IHZhcjEuYSAr IDEwOyBFTkQgJCQ7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlh YmxlIHZhcjEKK0NPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJMRVQgdmFyMS5hID0gdmFyMS5hICsg MTAiCitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgU1FMIHN0 YXRlbWVudAorU0VUIFJPTEUgVE8gREVGQVVMVDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2 YXIxIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rl c3Rfcm9sZTsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjEuYTsKKyAgYSAgIAorLS0tLS0t CisgMTAwMAorKDEgcm93KQorCitTRUxFQ1QgdmFyMTsKKyAgICB2YXIxICAgIAorLS0tLS0tLS0t LS0tCisgKDEwMDAsMTAwKQorKDEgcm93KQorCitMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7CitM RVQgdmFyMS5hID0gKFNFTEVDVCAqIEZST00gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcnRlc3R0 YWIgV0hFUkUgeGNvbCA9IHZhcjEuYSArIDEwKSk7CitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0Ug JyUnLCB2YXIxOyBFTkQgJCQ7CitOT1RJQ0U6ICAoMCwxMDApCitETyAkJCBCRUdJTiBSQUlTRSBO T1RJQ0UgJyUnLCB2YXIxLmE7IEVORCAkJDsKK05PVElDRTogIDAKK0RPICQkIEJFR0lOIExFVCB2 YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQkOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1JFVk9L RSBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBGUk9NIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK1NF VCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKy0tIHNob3VsZCBmYWlsIGFnYWluCitT RUxFQ1QgdmFyMS5hOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJp YWJsZSB2YXIxCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNl c3Npb24gdmFyaWFibGUgdmFyMQorTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOworRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitMRVQgdmFyMS5hID0g KFNFTEVDVCAqIEZST00gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcnRlc3R0YWIgV0hFUkUgeGNv bCA9IHZhcjEuYSArIDEwKSk7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9u IHZhcmlhYmxlIHZhcjEKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7IEVORCAk JDsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQor Q09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gInZhcjEiCitQTC9wZ1NRTCBmdW5jdGlvbiBp bmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElD RSAnJScsIHZhcjEuYTsgRU5EICQkOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vz c2lvbiB2YXJpYWJsZSB2YXIxCitDT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAidmFyMS5h IgorUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJBSVNFCitE TyAkJCBCRUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsKK0VSUk9SOiAgcGVy bWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ09OVEVYVDogIFNRTCBz dGF0ZW1lbnQgIkxFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMCIKK1BML3BnU1FMIGZ1bmN0aW9uIGlu bGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBTUUwgc3RhdGVtZW50CitTRVQgUk9MRSBUTyBERUZB VUxUOworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJ0ZXN0dGFiOworRFJPUCBS T0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK0RST1AgVFlQRSB2YXJ0ZXN0X3QxOworQ1JFQVRF IFRZUEUgdmFydGVzdF90MSBBUyAoYSBpbnQsIGIgaW50KTsKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIHRleHQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyB2YXJ0ZXN0X3QxOworLS0gc2hvdWxk IGZhaWwKK1NFTEVDVCB2YXIxLmE7CitFUlJPUjogIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMg b2YgdHlwZSAidGV4dCIsIHdoaWNoIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlCitMSU5FIDE6IFNF TEVDVCB2YXIxLmE7CisgICAgICAgICAgICAgICBeCitTRUxFQ1QgdmFyMi5jOworRVJST1I6ICBj b3VsZCBub3QgaWRlbnRpZnkgY29sdW1uICJjIiBpbiB2YXJpYWJsZSAicHVibGljLnZhcjIiCitM SU5FIDE6IFNFTEVDVCB2YXIyLmM7CisgICAgICAgICAgICAgICBeCitEUk9QIFZBUklBQkxFIHZh cjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CitEUk9QIFRZUEUgdmFydGVzdF90MTsKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGludDsKK0xFVCB2YXIxID0gMTsKK0xFVCB2YXIxID0gJzEnOworTEVU IHZhcjEgPSAxMC4xOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gJzEnOjpqc29uYjsKK0VS Uk9SOiAgdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBvZiB0eXBlIGludGVnZXIsIGJ1dCBleHBy ZXNzaW9uIGlzIG9mIHR5cGUganNvbmIKK0xJTkUgMTogTEVUIHZhcjEgPSAnMSc6Ompzb25iOwor ICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBZb3Ugd2lsbCBuZWVkIHRvIHJld3JpdGUgb3Ig Y2FzdCB0aGUgZXhwcmVzc2lvbi4KKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAnMSc6Ompz b25iOjppbnQ7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEueCA9IDEwOworRVJST1I6ICBjYW5u b3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIg YmVjYXVzZSBpdHMgdHlwZSBpbnRlZ2VyIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlCitMSU5FIDE6 IExFVCB2YXIxLnggPSAxMDsKKyAgICAgICAgICAgIF4KK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NS RUFURSBTQ0hFTUEgdmFydGVzdDsKK0NSRUFURSBUWVBFIHZhcnRlc3R0eXBlIEFTICh2YXJ0ZXN0 IGludCk7CitDUkVBVEUgVkFSSUFCTEUgdmFydGVzdC52YXJ0ZXN0IEFTIHZhcnRlc3R0eXBlOwor U0VUIFNFQVJDSF9QQVRIIFRPIHZhcnRlc3Q7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcnRlc3Qu dmFydGVzdCA9IDE7CitFUlJPUjogIHRhcmdldCAidmFydGVzdC52YXJ0ZXN0IiBvZiBMRVQgY29t bWFuZCBpcyBhbWJpZ3VvdXMKK0xJTkUgMTogTEVUIHZhcnRlc3QudmFydGVzdCA9IDE7CisgICAg ICAgICAgICBeCitEUk9QIFZBUklBQkxFIHZhcnRlc3QudmFydGVzdDsKK0RST1AgVFlQRSB2YXJ0 ZXN0dHlwZTsKK0VSUk9SOiAgdHlwZSAidmFydGVzdHR5cGUiIGRvZXMgbm90IGV4aXN0CitEUk9Q IFNDSEVNQSB2YXJ0ZXN0OworU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7CistLSBhcnJheXMg YXJlIHN1cHBvcnRlZAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpY1tdOworTEVUIHZh cjEgPSBBUlJBWVsxLjEsMi4xXTsKK0xFVCB2YXIxWzFdID0gMTAuMTsKK1NFTEVDVCB2YXIxOwor ICAgIHZhcjEgICAgCistLS0tLS0tLS0tLS0KKyB7MTAuMSwyLjF9CisoMSByb3cpCisKKy0tIExF VCB0YXJnZXQgZG9lc24ndCBhbGxvdyBzcmYsIHNob3VsZCBmYWlsCitMRVQgdmFyMVtnZW5lcmF0 ZV9zZXJpZXMoMSwzKV0gPSAxMDA7CitFUlJPUjogIHNldC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFy ZSBub3QgYWxsb3dlZCBpbiBMRVQKK0xJTkUgMTogTEVUIHZhcjFbZ2VuZXJhdGVfc2VyaWVzKDEs MyldID0gMTAwOworICAgICAgICAgICAgICAgICBeCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBh cnJheXMgaW5zaWRlIGNvbXBvc2l0ZQorQ1JFQVRFIFRZUEUgdDEgQVMgKGEgbnVtZXJpYywgYiBu dW1lcmljW10pOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdDE7CitMRVQgdmFyMSA9ICgxMC4x LCBBUlJBWVswLjAsIDAuMF0pOworTEVUIHZhcjEuYSA9IDEwLjI7CitTRUxFQ1QgdmFyMTsKKyAg ICAgICAgdmFyMSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLQorICgxMC4yLCJ7MC4wLDAu MH0iKQorKDEgcm93KQorCitMRVQgdmFyMS5iWzFdID0gMTAuMzsKK1NFTEVDVCB2YXIxOworICAg ICAgICB2YXIxICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMTAuMiwiezEwLjMs MC4wfSIpCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQRSB0MTsKKy0t IEVuY291cmFnZSB1c2Ugb2YgcGFyYWxsZWwgcGxhbnMKK1NFVCBwYXJhbGxlbF9zZXR1cF9jb3N0 ID0gMDsKK1NFVCBwYXJhbGxlbF90dXBsZV9jb3N0ID0gMDsKK1NFVCBtaW5fcGFyYWxsZWxfdGFi bGVfc2Nhbl9zaXplID0gMDsKK1NFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0g MjsKKy0tIHRlc3Qgb24gcXVlcnkgd2l0aCB3b3JrZXJzCitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0 KGEgaW50KTsKK0lOU0VSVCBJTlRPIHN2YXJfdGVzdCBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLDEwMDApOworQU5BTFlaRSBzdmFyX3Rlc3Q7CitDUkVBVEUgVkFSSUFCTEUgemVybyBp bnQ7CitMRVQgemVybyA9IDA7CistLSByZXN1bHQgc2hvdWxkIGJlIDEwMAorU0VMRUNUIGNvdW50 KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOworIGNvdW50IAorLS0tLS0tLQor ICAgMTAwCisoMSByb3cpCisKKy0tIHBhcmFsbGVsIGV4ZWN1dGlvbiBpcyBub3Qgc3VwcG9ydGVk IHlldAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3Qg V0hFUkUgYSUxMCA9IHplcm87CisgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBT ZXEgU2NhbiBvbiBzdmFyX3Rlc3QKKyAgICAgICAgIEZpbHRlcjogKChhICUgMTApID0gemVybykK KygzIHJvd3MpCisKK0xFVCB6ZXJvID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCk7 CistLSByZXN1bHQgc2hvdWxkIGJlIDEwMDAKK1NFTEVDVCB6ZXJvOworIHplcm8gCistLS0tLS0K KyAxMDAwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgemVybzsKK0RST1AgVEFCTEUgc3Zhcl90 ZXN0OworUkVTRVQgcGFyYWxsZWxfc2V0dXBfY29zdDsKK1JFU0VUIHBhcmFsbGVsX3R1cGxlX2Nv c3Q7CitSRVNFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplOworUkVTRVQgbWF4X3BhcmFs bGVsX3dvcmtlcnNfcGVyX2dhdGhlcjsKKy0tIHRoZSByZXN1bHQgb2YgdmlldyBzaG91bGQgYmUg c2FtZSBpbiBwYXJhbGxlbCBtb2RlIHRvbworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50Owor TEVUIHZhcjEgPSAxMDsKK0NSRUFURSBWSUVXIHZhcjF2aWV3IEFTIFNFTEVDVCBDT0FMRVNDRSh2 YXIxLCAwKSBBUyByZXN1bHQ7CitTRUxFQ1QgKiBGUk9NIHZhcjF2aWV3OworIHJlc3VsdCAKKy0t LS0tLS0tCisgICAgIDEwCisoMSByb3cpCisKK1NFVCBkZWJ1Z19wYXJhbGxlbF9xdWVyeSBUTyBv bjsKK1NFTEVDVCAqIEZST00gdmFyMXZpZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAgMTAK KygxIHJvdykKKworU0VUIGRlYnVnX3BhcmFsbGVsX3F1ZXJ5IFRPIG9mZjsKK0RST1AgVklFVyB2 YXIxdmlldzsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXJpZCBpbnQ7 CitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGlkIGludCwgdiBpbnQpOworTEVUIHZhcmlkID0gMTsK K0lOU0VSVCBJTlRPIHN2YXJfdGVzdCBWQUxVRVModmFyaWQsIDEwMCk7CitTRUxFQ1QgKiBGUk9N IHN2YXJfdGVzdDsKKyBpZCB8ICB2ICAKKy0tLS0rLS0tLS0KKyAgMSB8IDEwMAorKDEgcm93KQor CitVUERBVEUgc3Zhcl90ZXN0IFNFVCB2ID0gMjAwIFdIRVJFIGlkID0gdmFyaWQ7CitTRUxFQ1Qg KiBGUk9NIHN2YXJfdGVzdDsKKyBpZCB8ICB2ICAKKy0tLS0rLS0tLS0KKyAgMSB8IDIwMAorKDEg cm93KQorCitERUxFVEUgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgaWQgPSB2YXJpZDsKK1NFTEVDVCAq IEZST00gc3Zhcl90ZXN0OworIGlkIHwgdiAKKy0tLS0rLS0tCisoMCByb3dzKQorCitEUk9QIFRB QkxFIHN2YXJfdGVzdDsKK0RST1AgVkFSSUFCTEUgdmFyaWQ7CistLSB2aXNpYmlsaXR5IGNoZWNr CistLSB2YXJpYWJsZXMgc2hvdWxkIGJlIHNoYWRvd2VkIGFsd2F5cworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgdGV4dDsKK1NFTEVDVCB2YXIxLnJlbG5hbWUgRlJPTSBwZ19jbGFzcyB2YXIxIFdI RVJFIHZhcjEucmVsbmFtZSA9ICdwZ19jbGFzcyc7CisgcmVsbmFtZSAgCistLS0tLS0tLS0tCisg cGdfY2xhc3MKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIFRBQkxFIHh4 dGFiKGF2YXIgaW50KTsKK0lOU0VSVCBJTlRPIHh4dGFiIFZBTFVFUygzMzMpOworQ1JFQVRFIFRZ UEUgeHh0eXBlIEFTIChhdmFyIGludCk7CitDUkVBVEUgVkFSSUFCTEUgeHh0YWIgQVMgeHh0eXBl OworSU5TRVJUIElOVE8geHh0YWIgVkFMVUVTKDEwKTsKKy0tIGl0IGlzIGFtYmlndW91cywgYnV0 IGNvbHVtbnMgYXJlIHByZWZlcnJlZAorU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSB4eHRhYjsKKyBh dmFyIAorLS0tLS0tCisgIDMzMworICAgMTAKKygyIHJvd3MpCisKKy0tIHNob3VsZCBiZSBvawor U0VMRUNUIGF2YXIgRlJPTSB4eHRhYjsKKyBhdmFyIAorLS0tLS0tCisgIDMzMworICAgMTAKKygy IHJvd3MpCisKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuYXZhciBBUyBpbnQ7CistLSBzaG91bGQg YmUgb2ssIHNlZSB0aGUgdGFibGUKK1NFTEVDVCBhdmFyIEZST00geHh0YWI7CisgYXZhciAKKy0t LS0tLQorICAzMzMKKyAgIDEwCisoMiByb3dzKQorCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBw dWJsaWMuYXZhciBGUk9NIHh4dGFiOworIGF2YXIgCistLS0tLS0KKyAgICAgCisgICAgIAorKDIg cm93cykKKworRFJPUCBWQVJJQUJMRSB4eHRhYjsKK1NFTEVDVCB4eHRhYi5hdmFyIEZST00geHh0 YWI7CisgYXZhciAKKy0tLS0tLQorICAzMzMKKyAgIDEwCisoMiByb3dzKQorCitEUk9QIFZBUklB QkxFIHB1YmxpYy5hdmFyOworRFJPUCBUWVBFIHh4dHlwZTsKK0RST1AgVEFCTEUgeHh0YWI7Cist LSBUaGUgdmFyaWFibGUgY2FuIGJlIHNoYWRvd2VkIGJ5IHRhYmxlIG9yIGJ5IGFsaWFzCitDUkVB VEUgVFlQRSBwdWJsaWMuc3Zhcl90eXBlIEFTIChhIGludCwgYiBpbnQsIGMgaW50KTsKK0NSRUFU RSBWQVJJQUJMRSBwdWJsaWMuc3ZhciBBUyBwdWJsaWMuc3Zhcl90eXBlOworQ1JFQVRFIFRBQkxF IHB1YmxpYy5zdmFyKGEgaW50LCBiIGludCk7CitJTlNFUlQgSU5UTyBwdWJsaWMuc3ZhciBWQUxV RVMoMTAsIDIwKTsKK0xFVCBwdWJsaWMuc3ZhciA9ICgxMDAsIDIwMCwgMzAwKTsKKy0tIHNob3Vs ZCBiZSBvaworLS0gc2hvdyB0YWJsZQorU0VMRUNUICogRlJPTSBwdWJsaWMuc3ZhcjsKKyBhICB8 IGIgIAorLS0tLSstLS0tCisgMTAgfCAyMAorKDEgcm93KQorCitTRUxFQ1Qgc3Zhci5hIEZST00g cHVibGljLnN2YXI7CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKworU0VMRUNUIHN2YXIuKiBG Uk9NIHB1YmxpYy5zdmFyOworIGEgIHwgYiAgCistLS0tKy0tLS0KKyAxMCB8IDIwCisoMSByb3cp CisKKy0tIHNob3cgdmFyaWFibGUKK1NFTEVDVCBwdWJsaWMuc3ZhcjsKKyAgICAgc3ZhciAgICAg IAorLS0tLS0tLS0tLS0tLS0tCisgKDEwMCwyMDAsMzAwKQorKDEgcm93KQorCitTRUxFQ1QgcHVi bGljLnN2YXIuYzsKKyAgYyAgCistLS0tLQorIDMwMAorKDEgcm93KQorCitTRUxFQ1QgKHB1Ymxp Yy5zdmFyKS4qOworICBhICB8ICBiICB8ICBjICAKKy0tLS0tKy0tLS0tKy0tLS0tCisgMTAwIHwg MjAwIHwgMzAwCisoMSByb3cpCisKKy0tIHRoZSB2YXJpYWJsZSBpcyBzaGFkb3dlZCwgcmFpc2Ug ZXJyb3IKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7CitFUlJPUjogIGNv bHVtbiBzdmFyLmMgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHB1YmxpYy5zdmFyLmMg RlJPTSBwdWJsaWMuc3ZhcjsKKyAgICAgICAgICAgICAgIF4KKy0tIGNhbiBiZSBmaXhlZCBieSBh bGlhcworU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhciB4OworICBjICAKKy0t LS0tCisgMzAwCisoMSByb3cpCisKK1NFTEVDVCBzdmFyLmEgRlJPTSBwdWJsaWMuc3ZhcjsKKyBh ICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitTRUxFQ1Qgc3Zhci4qIEZST00gcHVibGljLnN2YXI7 CisgYSAgfCBiICAKKy0tLS0rLS0tLQorIDEwIHwgMjAKKygxIHJvdykKKworLS0gc2hvdyB2YXJp YWJsZQorU0VMRUNUIHB1YmxpYy5zdmFyOworICAgICBzdmFyICAgICAgCistLS0tLS0tLS0tLS0t LS0KKyAoMTAwLDIwMCwzMDApCisoMSByb3cpCisKK1NFTEVDVCBwdWJsaWMuc3Zhci5jOworICBj ICAKKy0tLS0tCisgMzAwCisoMSByb3cpCisKK1NFTEVDVCAocHVibGljLnN2YXIpLio7CisgIGEg IHwgIGIgIHwgIGMgIAorLS0tLS0rLS0tLS0rLS0tLS0KKyAxMDAgfCAyMDAgfCAzMDAKKygxIHJv dykKKworLS0gdGhlIHZhcmlhYmxlIGlzIHNoYWRvd2VkLCByYWlzZSBlcnJvcgorU0VMRUNUIHB1 YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsKK0VSUk9SOiAgY29sdW1uIHN2YXIuYyBkb2Vz IG5vdCBleGlzdAorTElORSAxOiBTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFy OworICAgICAgICAgICAgICAgXgorLS0gY2FuIGJlIGZpeGVkIGJ5IGFsaWFzCitTRUxFQ1QgcHVi bGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyIHg7CisgIGMgIAorLS0tLS0KKyAzMDAKKygxIHJv dykKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMuc3ZhcjsKK0RST1AgVEFCTEUgcHVibGljLnN2YXI7 CitEUk9QIFRZUEUgcHVibGljLnN2YXJfdHlwZTsKKy0tIFRoZSBzZXF1ZW5jZSBpZGVudC4qIGNh bm5vdCBiZSB1c2VkIGJ5IHJlZmVyZW5jZSB0byBzZXNzaW9uIHZhcmlhYmxlLAorLS0gYW5kIGlu IHRoaXMgY2FzZSwgdGhlcmUgaXMgbm90IGNvbGxpc2lvbgorQ1JFQVRFIFNDSEVNQSB2YXJ0ZXN0 OworU0VUIFNFQVJDSF9QQVRIIFRPIHZhcnRlc3Q7CitDUkVBVEUgVEFCTEUgdmFydGVzdF9mb28o YSBpbnQsIGIgaW50KTsKK0lOU0VSVCBJTlRPIHZhcnRlc3RfZm9vIFZBTFVFUygxMCwyMCksICgz MCw0MCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJ0ZXN0X2ZvbzsKK0xFVCB2YXIxID0g KDEwMCwyMDApOworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXIxLiogRlJPTSB2YXJ0ZXN0 X2ZvbzsKK0VSUk9SOiAgbWlzc2luZyBGUk9NLWNsYXVzZSBlbnRyeSBmb3IgdGFibGUgInZhcjEi CitMSU5FIDE6IFNFTEVDVCB2YXIxLiogRlJPTSB2YXJ0ZXN0X2ZvbzsKKyAgICAgICAgICAgICAg IF4KKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRlc3RfZm9vIHZhcjE7 CisgYSAgfCBiICAKKy0tLS0rLS0tLQorIDEwIHwgMjAKKyAzMCB8IDQwCisoMiByb3dzKQorCist LSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIGNvdW50KHZhcjEuKikgRlJPTSB2YXJ0ZXN0X2ZvbzsK K0VSUk9SOiAgbWlzc2luZyBGUk9NLWNsYXVzZSBlbnRyeSBmb3IgdGFibGUgInZhcjEiCitMSU5F IDE6IFNFTEVDVCBjb3VudCh2YXIxLiopIEZST00gdmFydGVzdF9mb287CisgICAgICAgICAgICAg ICAgICAgICBeCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBjb3VudCh2YXIxLiopIEZST00gdmFy dGVzdF9mb28gdmFyMTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMgorKDEgcm93KQorCitTRVQg U0VBUkNIX1BBVEggVE8gREVGQVVMVDsKK0RST1AgU0NIRU1BIHZhcnRlc3QgQ0FTQ0FERTsKK05P VElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMiBvdGhlciBvYmplY3RzCitERVRBSUw6ICBkcm9wIGNh c2NhZGVzIHRvIHRhYmxlIHZhcnRlc3QudmFydGVzdF9mb28KK2Ryb3AgY2FzY2FkZXMgdG8gc2Vz c2lvbiB2YXJpYWJsZSB2YXJ0ZXN0LnZhcjEKK0NSRUFURSBUWVBFIGFiIEFTIChhIGludGVnZXIs IGIgaW50ZWdlcik7CitDUkVBVEUgVkFSSUFCTEUgdl9hYiBBUyBhYjsKK0NSRUFURSBUQUJMRSB2 X2FiIChhIGludGVnZXIsIGIgaW50ZWdlcik7CitJTlNFUlQgSU5UTyB2X2FiIFZBTFVFUygxMCwy MCk7CistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qgdl9hYi5hIEZST00gdl9hYjsKKyBh ICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitDUkVBVEUgU0NIRU1BIHZfYWI7CitDUkVBVEUgVkFS SUFCTEUgdl9hYi5hIEFTIGludGVnZXI7CistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qg dl9hYi5hIEZST00gdl9hYjsKKyBhICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitEUk9QIFZBUklB QkxFIHZfYWI7CitEUk9QIFRBQkxFIHZfYWI7CitEUk9QIFRZUEUgYWI7CitEUk9QIFZBUklBQkxF IHZfYWIuYTsKK0RST1AgU0NIRU1BIHZfYWI7CitDUkVBVEUgVFlQRSB0X2FtX3R5cGUgQVMgKGIg aW50KTsKK0NSRUFURSBTQ0hFTUEgeHh4X2FtOworU0VUIHNlYXJjaF9wYXRoIFRPIHB1YmxpYzsK K0NSRUFURSBWQVJJQUJMRSB4eHhfYW0gQVMgdF9hbV90eXBlOworTEVUIHh4eF9hbSA9IFJPVygx MCk7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB4eHhfYW07CisgeHh4X2FtIAorLS0tLS0tLS0K KyAoMTApCisoMSByb3cpCisKK0NSRUFURSBWQVJJQUJMRSB4eHhfYW0uYiBBUyBpbnQ7CitMRVQg OiJEQk5BTUUiLnh4eF9hbS5iID0gMjA7CistLSBzaG91bGQgYmUgc3RpbGwgb2sKK1NFTEVDVCB4 eHhfYW07CisgeHh4X2FtIAorLS0tLS0tLS0KKyAoMTApCisoMSByb3cpCisKKy0tIHNob3VsZCBm YWlsLCB0aGUgcmVmZXJlbmNlIHNob3VsZCBiZSBhbWJpZ3VvdXMKK1NFTEVDVCB4eHhfYW0uYjsK K0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgInh4eF9hbS5iIiBpcyBhbWJpZ3Vv dXMKK0xJTkUgMTogU0VMRUNUIHh4eF9hbS5iOworICAgICAgICAgICAgICAgXgorLS0gZW5oYW5j ZWQgcmVmZXJlbmNlcyBzaG91bGQgYmUgb2sKK1NFTEVDVCBwdWJsaWMueHh4X2FtLmI7CisgYiAg CistLS0tCisgMTAKKygxIHJvdykKKworU0VMRUNUIDoiREJOQU1FIi54eHhfYW0uYjsKKyBiICAK Ky0tLS0KKyAyMAorKDEgcm93KQorCitDUkVBVEUgVEFCTEUgeHh4X2FtKGIgIGludCk7CitJTlNF UlQgSU5UTyB4eHhfYW0gVkFMVUVTKDEwKTsKKy0tIHdlIHNob3VsZCBzZWUgdGFibGUKK1NFTEVD VCB4eHhfYW0uYiBGUk9NIHh4eF9hbTsKKyBiICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitTRUxF Q1QgeC5iIEZST00geHh4X2FtIHg7CisgYiAgCistLS0tCisgMTAKKygxIHJvdykKKworRFJPUCBU QUJMRSB4eHhfYW07CitEUk9QIFZBUklBQkxFIHB1YmxpYy54eHhfYW07CitEUk9QIFZBUklBQkxF IHh4eF9hbS5iOworRFJPUCBTQ0hFTUEgeHh4X2FtOworQ1JFQVRFIFNDSEVNQSA6IkRCTkFNRSI7 CitDUkVBVEUgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi46IkRCTkFNRSIgQVMgdF9hbV90 eXBlOworQ1JFQVRFIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuYiBBUyBpbnQ7CitTRVQg c2VhcmNoX3BhdGggVE8gOiJEQk5BTUUiOworLS0gc2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNU IDoiREJOQU1FIi5iOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSAicmVncmVz c2lvbi5iIiBpcyBhbWJpZ3VvdXMKK0xJTkUgMTogU0VMRUNUICJyZWdyZXNzaW9uIi5iOworICAg ICAgICAgICAgICAgXgorLS0gc2hvdWxkIGJlIGFtYmlndW91cyB0b28KK1NFTEVDVCA6IkRCTkFN RSIuOiJEQk5BTUUiLmI7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgcmVmZXJlbmNlICJyZWdy ZXNzaW9uLnJlZ3Jlc3Npb24uYiIgaXMgYW1iaWd1b3VzCitMSU5FIDE6IFNFTEVDVCAicmVncmVz c2lvbiIuInJlZ3Jlc3Npb24iLmI7CisgICAgICAgICAgICAgICBeCitDUkVBVEUgVEFCTEUgOiJE Qk5BTUUiKGIgaW50KTsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIDoiREJOQU1FIi5iIEZST00g OiJEQk5BTUUiOworIGIgCistLS0KKygwIHJvd3MpCisKK0RST1AgVEFCTEUgOiJEQk5BTUUiOwor RFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7CitEUk9QIFZBUklBQkxFIDoiREJO QU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiOworRFJPUCBTQ0hFTUEgOiJEQk5BTUUiOworUkVTRVQg c2VhcmNoX3BhdGg7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwK aW5kZXggZWViMGY5NGNhM2MuLmU3MjM2MGQ1MjU0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0yOTUsMyArMjk1LDg4NiBAQCBEUk9QIFJPTEUgcmVn cmVzc192YXJpYWJsZV9yMTsKIERST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IyOwogCiBEUk9Q IFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKKworLS0gY2hlY2sgYWNjZXNzIHJpZ2h0cwor Q1JFQVRFIFJPTEUgcmVncmVzc19ub293bmVyOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBp bnQ7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4KGludCkKK1JFVFVSTlMgaW50 IEFTICQkIFNFTEVDVCAkMSArIHZhcjEgJCQgTEFOR1VBR0Ugc3FsOworCitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiBzcWxmeF9zZChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgJDEg KyB2YXIxICQkIExBTkdVQUdFIHNxbCBTRUNVUklUWSBERUZJTkVSOworCitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiBwbHBnc3FsZngoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgQkVHSU4gUkVU VVJOICQxICsgdmFyMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBPUiBSRVBM QUNFIEZVTkNUSU9OIHBscGdzcWxmeF9zZChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBCRUdJTiBS RVRVUk4gJDEgKyB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbCBTRUNVUklUWSBERUZJTkVS OworCitMRVQgdmFyMSA9IDEwOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKK1NFTEVD VCBzcWxmeCgyMCk7CitTRUxFQ1Qgc3FsZnhfc2QoMjApOworU0VMRUNUIHBscGdzcWxmeCgyMCk7 CitTRUxFQ1QgcGxwZ3NxbGZ4X3NkKDIwKTsKKworLS0gc2hvdWxkIGZhaWwKK1NFVCBST0xFIFRP IHJlZ3Jlc3Nfbm9vd25lcjsKKworU0VMRUNUIHZhcjE7CitTRUxFQ1Qgc3FsZngoMjApOworU0VM RUNUIHBscGdzcWxmeCgyMCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHNxbGZ4X3NkKDIw KTsKK1NFTEVDVCBwbHBnc3FsZnhfc2QoMjApOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworR1JB TlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc19ub293bmVyOworCistLSBzaG91 bGQgYmUgb2sKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfbm9vd25lcjsKKworU0VMRUNUIHZhcjE7CitT RUxFQ1Qgc3FsZngoMjApOworU0VMRUNUIHBscGdzcWxmeCgyMCk7CisKK1NFVCBST0xFIFRPIERF RkFVTFQ7CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIEZVTkNUSU9OIHNxbGZ4KGludCk7CitE Uk9QIEZVTkNUSU9OIHBscGdzcWxmeChpbnQpOworRFJPUCBGVU5DVElPTiBzcWxmeF9zZChpbnQp OworRFJPUCBGVU5DVElPTiBwbHBnc3FsZnhfc2QoaW50KTsKKworRFJPUCBST0xFIHJlZ3Jlc3Nf bm9vd25lcjsKKworLS0gdXNlIHZhcmlhYmxlcyBpbnNpZGUgdmlld3MKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIG51bWVyaWM7CisKKy0tIHVzZSB2YXJpYWJsZXMgaW4gdmlld3MKK0NSRUFURSBW SUVXIHRlc3RfdmlldyBBUyBTRUxFQ1QgQ09BTEVTQ0UodmFyMSArIHYsIDApIEFTIHJlc3VsdCBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLDIpIGcodik7CitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsK K0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworCistLSBzdGFydCBh IG5ldyBzZXNzaW9uCitcYworCitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKK0xFVCB2YXIxID0g My4xNDsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworCistLSBzaG91bGQgZmFpbCwgZGVwZW5k ZW5jeQorRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFC TEUgdmFyMSBDQVNDQURFOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSB0ZXh0OworQ1JFQVRFIFZB UklBQkxFIHZhcjIgdGV4dDsKKworLS0gdXNlIHZhcmlhYmxlcyBpbiBTUUwgZnVuY3Rpb25zCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeDEodmFyY2hhcikKK1JFVFVSTlMgdmFyY2hh ciBBUyAkJCBTRUxFQ1QgdmFyMSB8fCAnLCAnIHx8ICQxICQkIExBTkdVQUdFIHNxbDsKKworQ1JF QVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZngyKCB2YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFy IEFTICQkIFNFTEVDVCB2YXIyIHx8ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOworCitMRVQg dmFyMSA9ICdzdHIxJzsKK0xFVCB2YXIyID0gJ3N0cjInOworCitTRUxFQ1Qgc3FsZngxKHNxbGZ4 MignSGVsbG8nKSk7CisKKy0tIGlubGluaW5nIGlzIGJsb2NrZWQKK0VYUExBSU4gKENPU1RTIE9G RiwgVkVSQk9TRSkgU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOworCitEUk9QIEZVTkNU SU9OIHNxbGZ4MSh2YXJjaGFyKTsKK0RST1AgRlVOQ1RJT04gc3FsZngyKHZhcmNoYXIpOworRFJP UCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworCistLSBhY2Nlc3MgZnJvbSBj YWNoZWQgcGxhbnMgc2hvdWxkIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7 CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBudW1lcmljOworCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiBwbHBnc3FsZngoKQorUkVUVVJOUyBudW1lcmljIEFTICQkIEJFR0lOIFJFVFVSTiB2 YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJ T04gcGxwZ3NxbGZ4MihudW1lcmljKQorUkVUVVJOUyB2b2lkIEFTICQkIEJFR0lOIExFVCB2YXIy ID0gJDE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworCitTRVQgcGxhbl9jYWNoZV9tb2RlIFRP IGZvcmNlX2dlbmVyaWNfcGxhbjsKKworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUIHBscGdzcWxm eCgpOworTEVUIHZhcjEgPSAzLjE0ICogMjsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKworU0VMRUNU IHBscGdzcWxmeDIoMTAuMCk7CitTRUxFQ1QgdmFyMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxOwor RFJPUCBWQVJJQUJMRSB2YXIyOworCistLSBkZXBlbmRlbmN5IChwbGFuIGludmFsaWRhdGlvbikg c2hvdWxkIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CitDUkVBVEUgVkFS SUFCTEUgdmFyMiBBUyBudW1lcmljOworCitMRVQgdmFyMSA9IDMuMTQgKiAzOworU0VMRUNUIHBs cGdzcWxmeCgpOworTEVUIHZhcjEgPSAzLjE0ICogNDsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKwor U0VMRUNUIHBscGdzcWxmeDIoMTAuMCk7CitTRUxFQ1QgdmFyMjsKKworRFJPUCBWQVJJQUJMRSB2 YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngoKTsKK0RS T1AgRlVOQ1RJT04gcGxwZ3NxbGZ4MigpOworCistLSBkZXBlbmRlbmN5IG9uIGNvbHVtbiB0eXBl CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVEFCTEUgdGVzdHZhcihhIGlu dCwgYiBpbnQsIGMgaW50KTsKK0lOU0VSVCBJTlRPIHRlc3R2YXIgVkFMVUVTKDEwLDIwLDMwKTsK KworQUxURVIgVEFCTEUgdGVzdHZhciBEUk9QIENPTFVNTiBhOworQUxURVIgVEFCTEUgdGVzdHZh ciBEUk9QIENPTFVNTiBiOworCitDUkVBVEUgRlVOQ1RJT04gcGxwZ3NxbGZ4MygpCitSRVRVUk5T IHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCB2YXIxID0gKFNFTEVDVCAqIEZST00gdGVzdHZhcik7 CisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQKKyQkIExBTkdVQUdFIHBscGdzcWw7CisK Ky0tIHNob3VsZCBiZSBvaworU0VMRUNUIHBscGdzcWxmeDMoKTsKKworQUxURVIgVEFCTEUgdGVz dHZhciBBTFRFUiBDT0xVTU4gYyBUWVBFIG51bWVyaWM7CisKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIHBscGdzcWxmeDMoKTsKKworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngzKCk7CitEUk9QIFRB QkxFIHRlc3R2YXI7CitEUk9QIFZBUklBQkxFIHZhcjE7CisKK1NFVCBwbGFuX2NhY2hlX21vZGUg VE8gREVGQVVMVDsKKworLS0gcmVwZWF0ZWQgZXhlY3V0aW9uIHNob3VsZCBub3QgY3Jhc2gKK0NS RUFURSBWQVJJQUJMRSB2YXIxIGludDsKK0NSRUFURSBUQUJMRSB0ZXN0dmFyKGEgaW50KTsKK0lO U0VSVCBJTlRPIHRlc3R2YXIgVkFMVUVTKDEpOworCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEg PSAwOworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSAoU0VMRUNUIGEg RlJPTSB0ZXN0dmFyKTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitF TkQ7CiskJDsKKworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gMDsKKyAgRk9SIGkgSU4gMS4u MTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gKFNFTEVDVCBhICsgdmFyMSBGUk9NIHRlc3R2YXIp OworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsKK0VORDsKKyQkOworCitE TyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSAwOworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisg ICAgTEVUIHZhcjEgPSAoU0VMRUNUIGEgRlJPTSB0ZXN0dmFyKSArIHZhcjE7CisgIEVORCBMT09Q OworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CisKK0RPICQkCitCRUdJTgor ICBMRVQgdmFyMSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9 IGk7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CisK K0RPICQkCitCRUdJTgorICBMRVQgdmFyMSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AK KyAgICBMRVQgdmFyMSA9IGkgKyB2YXIxOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICcl JywgdmFyMTsKK0VORDsKKyQkOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRBQkxFIHRl c3R2YXI7CisKKy0tIHVzYWdlIExFVCBzdGF0ZW1lbnQgaW4gcGxwZ3NxbCBzaG91bGQgd29yawor Q1JFQVRFIFZBUklBQkxFIHZhcjEgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgbnVtZXJpY1td OworCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjIgPSAne30nOjppbnRbXTsKKyAgRk9SIGkgSU4g MS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gaTsKKyAgICBMRVQgdmFyMlt2YXIxXSA9IGk7 CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJ3Jlc3VsdCBhcnJheTogJScsIHZhcjI7CitF TkQ7CiskJDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworCist LSBDQUxMIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAorLS0gcmVxdWlyZXMgZGlyZWN0 IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorQ1JF QVRFIFZBUklBQkxFIHYgaW50OworCitDUkVBVEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQg QkVHSU4gUkFJU0UgTk9USUNFICclJywgYXJnOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKwor LS0gc2hvdWxkIG5vdCBjcmFzaCAoYnV0IGlzIG5vdCBzdXBwb3J0ZWQgeWV0KQorQ0FMTCBwKHYp OworCitETyAkJCBCRUdJTiBDQUxMIHAodik7IEVORCAkJDsKKworRFJPUCBQUk9DRURVUkUgcChp bnQpOworRFJPUCBWQVJJQUJMRSB2OworCistLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3Vw cG9ydGVkIHlldAorLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxl IGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorQ1JFQVRFIFZBUklBQkxFIHYgaW50OworTEVUIHYg PSAyMDsKK1BSRVBBUkUgcHRlc3QoaW50KSBBUyBTRUxFQ1QgJDE7CisKKy0tIHNob3VsZCBmYWls CitFWEVDVVRFIHB0ZXN0KHYpOworCitERUFMTE9DQVRFIHB0ZXN0OworRFJPUCBWQVJJQUJMRSB2 OworCistLSB0ZXN0IHNlYXJjaCBwYXRoCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0OworQ1JFQVRF IFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgbnVtZXJpYzsKKworLS0gc2hvdWxkIGZhaWwKK0xF VCB2YXIxID0gcGkoKTsKK1NFTEVDVCB2YXIxOworCistLSBzaG91bGQgYmUgb2sKK0xFVCBzdmFy dGVzdC52YXIxID0gcGkoKTsKK1NFTEVDVCBzdmFydGVzdC52YXIxOworCitTRVQgc2VhcmNoX3Bh dGggVE8gc3ZhcnRlc3Q7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBwaSgpICsgMTA7 CitTRUxFQ1QgdmFyMTsKKworUkVTRVQgc2VhcmNoX3BhdGg7CitEUk9QIFNDSEVNQSBzdmFydGVz dCBDQVNDQURFOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXh0OworCistLSB2YXJpYWJs ZXMgY2FuIGJlIHVwZGF0ZWQgdW5kZXIgUk8gdHJhbnNhY3Rpb24KK0JFR0lOOworU0VUIFRSQU5T QUNUSU9OIFJFQUQgT05MWTsKK0xFVCB2YXIxID0gJ2hlbGxvJzsKK0NPTU1JVDsKKworU0VMRUNU IHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gdGVzdCBvZiBkb21haW5zCitDUkVB VEUgRE9NQUlOIGludF9kb21haW4gQVMgaW50IE5PVCBOVUxMIENIRUNLIChWQUxVRSA+IDEwMCk7 CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnRfZG9tYWluOworCistLSBzaG91bGQgZmFpbAor U0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDAwOworU0VMRUNU IHZhcjE7CisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDEwOworCistLSBzaG91bGQgZmFp bAorTEVUIHZhcjEgPSBOVUxMOworCistLSBub3RlIC0gZG9tYWluIGRlZmF1bHRzIGFyZSBub3Qg c3VwcG9ydGVkIHlldCAobGlrZSBQTHBnU1FMKQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9Q IERPTUFJTiBpbnRfZG9tYWluOworCistLSB0aGUgZXhwcmVzc2lvbiBzaG91bGQgcmVtYWluICJ1 bmtub3duIgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50NG11bHRpcmFuZ2VbXTsKKy0tIHNo b3VsZCBiZSBvaworTEVUIHZhcjEgPSBOVUxMOworTEVUIHZhcjEgPSAneyJ7WzIsOCksWzExLDE0 KX0iLCJ7WzUsOCksWzEyLDE0KX0ifSc7CitMRVQgdmFyMVsyXSA9ICd7WzUsOCksWzEyLDEwMCl9 JzsKK1NFTEVDVCB2YXIxOworCistLUl0IHNob3VsZCB3b3JrIGluIHBscGdzcWwgdG9vCitETyAk JAorQkVHSU4KKyAgTEVUIHZhcjEgPSBOVUxMOworICBMRVQgdmFyMSA9ICd7IntbMiw4KSxbMTEs MTQpfSIsIntbNSw4KSxbMTIsMTQpfSJ9JzsKKyAgTEVUIHZhcjFbMl0gPSAne1s1LDgpLFsxMiwx MDApfSc7CisKKyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsKK0VORDsKKyQkOworCitEUk9QIFZB UklBQkxFIHZhcjE7CisKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3QgQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgaW50IENSRUFURSBUQUJMRSBmb28oYSBpbnQpOworTEVUIHN2YXJ0ZXN0LnZhcjEgPSAx MDA7CitTRUxFQ1Qgc3ZhcnRlc3QudmFyMTsKKworU0VUIHNlYXJjaF9wYXRoIHRvIHB1YmxpYywg c3ZhcnRlc3Q7CisKK1NFTEVDVCB2YXIxOworCitEUk9QIFNDSEVNQSBzdmFydGVzdCBDQVNDQURF OworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBB UyBpbnRbXTsKKworTEVUIHZhcjEgPSAyOworTEVUIHZhcjIgPSAne30nOjppbnRbXTsKKworTEVU IHZhcjJbdmFyMV0gPSAwOworCitTRUxFQ1QgdmFyMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2 YXIyOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFy MiBBUyBpbnRbXTsKKworTEVUIHZhcjEgPSAyOworTEVUIHZhcjIgPSAne30nOjppbnRbXTsKKwor U0VMRUNUIHZhcjI7CisKK0RST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKKworLS0gdGhlIExFVCBz dGF0ZW1lbnQgc2hvdWxkIGJlIGRpc2FsbG93ZWQgaW4gQ1RFCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBpbnQ7CitXSVRIIHggQVMgKExFVCB2YXIxID0gMTAwKSBTRUxFQ1QgKiBGUk9NIHg7CisK Ky0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMSk7CisKKy0t IHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAyKTsKK0xFVCB2YXIx ID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDApOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIGNv bXBvc2l0ZSB2YXJpYWJsZXMKK0NSRUFURSBUWVBFIHN2X3h5eiBBUyAoeCBpbnQsIHkgaW50LCB6 IG51bWVyaWMoMTAsMikpOworCitDUkVBVEUgVkFSSUFCTEUgdjEgQVMgc3ZfeHl6OworQ1JFQVRF IFZBUklBQkxFIHYyIEFTIHN2X3h5ejsKKworTEVUIHYxID0gKDEsIDIsIDMuMTQpOworTEVUIHYy ID0gKDEwLCAyMCwgMy4xNCAqIDEwKTsKKworLS0gc2hvdWxkIHdvcmsgdG9vIC0gdGhlcmUgYXJl IHByZXBhcmVkIGNhc3RzCitMRVQgdjEgPSAoMSwgMiwgMyk7CisKK1NFTEVDVCB2MTsKK1NFTEVD VCB2MjsKK1NFTEVDVCAodjEpLio7CitTRUxFQ1QgKHYyKS4qOworCitTRUxFQ1QgdjEueCArIHYx Lno7CitTRUxFQ1QgdjIueCArIHYyLno7CisKKy0tIGFjY2VzcyB0byBjb21wb3NpdGUgZmllbGRz IHNob3VsZCBiZSBzYWZlIHRvbworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOwor CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CisKKy0tIHNob3VsZCBmYWlsCitT RUxFQ1QgdjIueDsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworRFJPUCBWQVJJQUJMRSB2MTsK K0RST1AgVkFSSUFCTEUgdjI7CitEUk9QIFRZUEUgc3ZfeHl6OworRFJPUCBST0xFIHJlZ3Jlc3Nf dmFyX3Rlc3Rfcm9sZTsKKworLS0gc2hvdWxkIGZhaWwsIHdyb25nIGlkZW50aWZpZXIKK0xFVCBu b2RiLm5vc2NoZW1hLm5vdmFyLm5vZmllbGQubm9zdWJmaWVsZCA9IDEwOworTEVUIG5vZGIubm9z Y2hlbWEubm92YXIubm9maWVsZCA9IDEwOworTEVUIG5vZGIubm9zY2hlbWEubm92YXIgPSAxMDsK KworQ1JFQVRFIFRZUEUgdDEgQVMgKGEgaW50LCBiIG51bWVyaWMsIGMgdGV4dCk7CisKK0NSRUFU RSBWQVJJQUJMRSB2MSBBUyB0MTsKK0xFVCB2MSA9ICgxLCBwaSgpLCAnaGVsbG8nKTsKK1NFTEVD VCB2MTsKK0xFVCB2MS5iID0gMTAuMjIyMjsKK1NFTEVDVCB2MTsKKworLS0gc2hvdWxkIGZhaWws IGF0dHJpYnV0ZSBkb2Vzbid0IGV4aXN0CitMRVQgdjEueCA9IDEwOworCistLSBzaG91bGQgZmFp bCwgZG9uJ3QgYWxsb3cgbXVsdGkgY29sdW1uIHF1ZXJ5CitMRVQgdjEgPSAoTlVMTDo6dDEpLio7 CisKKy0tIGFsbG93IERST1Agb3IgQUREIEFUVFJJQlVURSBvbiBjb21wb3NpdGUgdHlwZXMKKy0t IHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVURSBjOworU0VMRUNUIHYx OworCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgQUREIEFUVFJJQlVURSBjIGludDsK K1NFTEVDVCB2MTsKKworTEVUIHYxID0gKDEwLCAxMC4zLCAyMCk7CitTRUxFQ1QgdjE7CisKKy0t IHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVURSBiOworU0VMRUNUIHYx OworCistLSBzaG91bGQgZmFpbCwgZGlzYWxsb3cgZGF0YSB0eXBlIGNoYW5nZQorQUxURVIgVFlQ RSB0MSBBTFRFUiBBVFRSSUJVVEUgYyBUWVBFIGludDsKKworRFJPUCBWQVJJQUJMRSB2MTsKK0RS T1AgVFlQRSB0MTsKKworLS0gdGhlIHRhYmxlIHR5cGUgY2FuIGJlIHVzZWQgYXMgY29tcG9zaXRl IHR5cGUgdG9vCitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGEgaW50LCBiIG51bWVyaWMsIGMgZGF0 ZSk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBzdmFyX3Rlc3Q7CisKK0xFVCB2YXIxID0gKDEw LCBwaSgpLCAnMjAyMy0wNS0yNicpOworU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBmYWlsIGR1 ZSBkZXBlbmRlbmN5CitBTFRFUiBUQUJMRSBzdmFyX3Rlc3QgQUxURVIgQ09MVU1OIGEgVFlQRSB0 ZXh0OworCistLSBzaG91bGQgZmFpbAorRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CisKK0RST1AgVkFS SUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworCitDUkVBVEUgVFlQRSB2YXJ0ZXN0 X3QxIEFTIChhIGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFydGVzdF90 MTsKK0NSRUFURSBUQUJMRSB2YXJ0ZXN0dGFiICh4Y29sIGludCk7CisKK0NSRUFURSBST0xFIHJl Z3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworR1JBTlQgVVBEQVRFIE9OIFZBUklBQkxFIHZhcjEgVE8g cmVncmVzc192YXJfdGVzdF9yb2xlOworR1JBTlQgU0VMRUNUIE9OIFRBQkxFIHZhcnRlc3R0YWIg VE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0 X3JvbGU7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAoMTAsIDIwKTsKK0xFVCB2YXIx LmEgPSAzMDsKKworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gKDEwMCwgMTAwKTsKKyAgTEVU IHZhcjEuYSA9IDEwMDA7CitFTkQ7CiskJDsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIx LmE7CitTRUxFQ1QgdmFyMTsKK0xFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsKK0xFVCB2YXIxLmEg PSAoU0VMRUNUICogRlJPTSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFydGVzdHRhYiBXSEVSRSB4 Y29sID0gdmFyMS5hICsgMTApKTsKKworRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFy MTsgRU5EICQkOworRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMS5hOyBFTkQgJCQ7 CitETyAkJCBCRUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsKKworU0VUIFJP TEUgVE8gREVGQVVMVDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3Nf dmFyX3Rlc3Rfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMS5hOworU0VMRUNUIHZhcjE7CitMRVQgdmFyMS5hID0g dmFyMS5hICsgMTA7CitMRVQgdmFyMS5hID0gKFNFTEVDVCAqIEZST00gKFNFTEVDVCBjb3VudCgq KSBGUk9NIHZhcnRlc3R0YWIgV0hFUkUgeGNvbCA9IHZhcjEuYSArIDEwKSk7CisKK0RPICQkIEJF R0lOIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7IEVORCAkJDsKK0RPICQkIEJFR0lOIFJBSVNFIE5P VElDRSAnJScsIHZhcjEuYTsgRU5EICQkOworRE8gJCQgQkVHSU4gTEVUIHZhcjEuYSA9IHZhcjEu YSArIDEwOyBFTkQgJCQ7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitSRVZPS0UgU0VMRUNUIE9O IFZBUklBQkxFIHZhcjEgRlJPTSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitTRVQgUk9MRSBUTyBy ZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CisKKy0tIHNob3VsZCBmYWlsIGFnYWluCitTRUxFQ1QgdmFy MS5hOworU0VMRUNUIHZhcjE7CitMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7CitMRVQgdmFyMS5h ID0gKFNFTEVDVCAqIEZST00gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcnRlc3R0YWIgV0hFUkUg eGNvbCA9IHZhcjEuYSArIDEwKSk7CisKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIHZh cjE7IEVORCAkJDsKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIHZhcjEuYTsgRU5EICQk OworRE8gJCQgQkVHSU4gTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOyBFTkQgJCQ7CisKK1NFVCBS T0xFIFRPIERFRkFVTFQ7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgdmFydGVz dHRhYjsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitEUk9QIFRZUEUgdmFydGVz dF90MTsKKworQ1JFQVRFIFRZUEUgdmFydGVzdF90MSBBUyAoYSBpbnQsIGIgaW50KTsKKworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgdGV4dDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIHZhcnRl c3RfdDE7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMS5hOworU0VMRUNUIHZhcjIuYzsK KworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworRFJPUCBUWVBFIHZh cnRlc3RfdDE7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKworTEVUIHZhcjEgPSAx OworTEVUIHZhcjEgPSAnMSc7CitMRVQgdmFyMSA9IDEwLjE7CisKKy0tIHNob3VsZCBmYWlsCitM RVQgdmFyMSA9ICcxJzo6anNvbmI7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAnMSc6 Ompzb25iOjppbnQ7CisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMS54ID0gMTA7CisKK0RST1Ag VkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIFNDSEVNQSB2YXJ0ZXN0OworQ1JFQVRFIFRZUEUgdmFy dGVzdHR5cGUgQVMgKHZhcnRlc3QgaW50KTsKK0NSRUFURSBWQVJJQUJMRSB2YXJ0ZXN0LnZhcnRl c3QgQVMgdmFydGVzdHR5cGU7CitTRVQgU0VBUkNIX1BBVEggVE8gdmFydGVzdDsKKworLS0gc2hv dWxkIGZhaWwKK0xFVCB2YXJ0ZXN0LnZhcnRlc3QgPSAxOworCitEUk9QIFZBUklBQkxFIHZhcnRl c3QudmFydGVzdDsKK0RST1AgVFlQRSB2YXJ0ZXN0dHlwZTsKK0RST1AgU0NIRU1BIHZhcnRlc3Q7 CitTRVQgU0VBUkNIX1BBVEggVE8gREVGQVVMVDsKKworLS0gYXJyYXlzIGFyZSBzdXBwb3J0ZWQK K0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWNbXTsKK0xFVCB2YXIxID0gQVJSQVlbMS4x LDIuMV07CitMRVQgdmFyMVsxXSA9IDEwLjE7CitTRUxFQ1QgdmFyMTsKKworLS0gTEVUIHRhcmdl dCBkb2Vzbid0IGFsbG93IHNyZiwgc2hvdWxkIGZhaWwKK0xFVCB2YXIxW2dlbmVyYXRlX3Nlcmll cygxLDMpXSA9IDEwMDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBhcnJheXMgaW5zaWRl IGNvbXBvc2l0ZQorQ1JFQVRFIFRZUEUgdDEgQVMgKGEgbnVtZXJpYywgYiBudW1lcmljW10pOwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdDE7CitMRVQgdmFyMSA9ICgxMC4xLCBBUlJBWVswLjAs IDAuMF0pOworTEVUIHZhcjEuYSA9IDEwLjI7CitTRUxFQ1QgdmFyMTsKK0xFVCB2YXIxLmJbMV0g PSAxMC4zOworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQRSB0 MTsKKworLS0gRW5jb3VyYWdlIHVzZSBvZiBwYXJhbGxlbCBwbGFucworU0VUIHBhcmFsbGVsX3Nl dHVwX2Nvc3QgPSAwOworU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3QgPSAwOworU0VUIG1pbl9wYXJh bGxlbF90YWJsZV9zY2FuX3NpemUgPSAwOworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9n YXRoZXIgPSAyOworCistLSB0ZXN0IG9uIHF1ZXJ5IHdpdGggd29ya2VycworQ1JFQVRFIFRBQkxF IHN2YXJfdGVzdChhIGludCk7CitJTlNFUlQgSU5UTyBzdmFyX3Rlc3QgU0VMRUNUICogRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKTsKK0FOQUxZWkUgc3Zhcl90ZXN0OworQ1JFQVRFIFZBUklB QkxFIHplcm8gaW50OworTEVUIHplcm8gPSAwOworCistLSByZXN1bHQgc2hvdWxkIGJlIDEwMAor U0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOworCistLSBw YXJhbGxlbCBleGVjdXRpb24gaXMgbm90IHN1cHBvcnRlZCB5ZXQKK0VYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOworCitM RVQgemVybyA9IChTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QpOworCistLSByZXN1bHQg c2hvdWxkIGJlIDEwMDAKK1NFTEVDVCB6ZXJvOworCitEUk9QIFZBUklBQkxFIHplcm87CitEUk9Q IFRBQkxFIHN2YXJfdGVzdDsKKworUkVTRVQgcGFyYWxsZWxfc2V0dXBfY29zdDsKK1JFU0VUIHBh cmFsbGVsX3R1cGxlX2Nvc3Q7CitSRVNFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplOwor UkVTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlcjsKKworLS0gdGhlIHJlc3VsdCBv ZiB2aWV3IHNob3VsZCBiZSBzYW1lIGluIHBhcmFsbGVsIG1vZGUgdG9vCitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOworCitDUkVBVEUgVklFVyB2YXIxdmlldyBB UyBTRUxFQ1QgQ09BTEVTQ0UodmFyMSwgMCkgQVMgcmVzdWx0OworCitTRUxFQ1QgKiBGUk9NIHZh cjF2aWV3OworCitTRVQgZGVidWdfcGFyYWxsZWxfcXVlcnkgVE8gb247CisKK1NFTEVDVCAqIEZS T00gdmFyMXZpZXc7CisKK1NFVCBkZWJ1Z19wYXJhbGxlbF9xdWVyeSBUTyBvZmY7CisKK0RST1Ag VklFVyB2YXIxdmlldzsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIFZBUklBQkxFIHZh cmlkIGludDsKK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoaWQgaW50LCB2IGludCk7CisKK0xFVCB2 YXJpZCA9IDE7CitJTlNFUlQgSU5UTyBzdmFyX3Rlc3QgVkFMVUVTKHZhcmlkLCAxMDApOworU0VM RUNUICogRlJPTSBzdmFyX3Rlc3Q7CitVUERBVEUgc3Zhcl90ZXN0IFNFVCB2ID0gMjAwIFdIRVJF IGlkID0gdmFyaWQ7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKK0RFTEVURSBGUk9NIHN2YXJf dGVzdCBXSEVSRSBpZCA9IHZhcmlkOworU0VMRUNUICogRlJPTSBzdmFyX3Rlc3Q7CisKK0RST1Ag VEFCTEUgc3Zhcl90ZXN0OworRFJPUCBWQVJJQUJMRSB2YXJpZDsKKworLS0gdmlzaWJpbGl0eSBj aGVjaworLS0gdmFyaWFibGVzIHNob3VsZCBiZSBzaGFkb3dlZCBhbHdheXMKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIHRleHQ7CitTRUxFQ1QgdmFyMS5yZWxuYW1lIEZST00gcGdfY2xhc3MgdmFy MSBXSEVSRSB2YXIxLnJlbG5hbWUgPSAncGdfY2xhc3MnOworCitEUk9QIFZBUklBQkxFIHZhcjE7 CisKK0NSRUFURSBUQUJMRSB4eHRhYihhdmFyIGludCk7CisKK0lOU0VSVCBJTlRPIHh4dGFiIFZB TFVFUygzMzMpOworCitDUkVBVEUgVFlQRSB4eHR5cGUgQVMgKGF2YXIgaW50KTsKKworQ1JFQVRF IFZBUklBQkxFIHh4dGFiIEFTIHh4dHlwZTsKKworSU5TRVJUIElOVE8geHh0YWIgVkFMVUVTKDEw KTsKKworLS0gaXQgaXMgYW1iaWd1b3VzLCBidXQgY29sdW1ucyBhcmUgcHJlZmVycmVkCitTRUxF Q1QgeHh0YWIuYXZhciBGUk9NIHh4dGFiOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBhdmFy IEZST00geHh0YWI7CisKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuYXZhciBBUyBpbnQ7CisKKy0t IHNob3VsZCBiZSBvaywgc2VlIHRoZSB0YWJsZQorU0VMRUNUIGF2YXIgRlJPTSB4eHRhYjsKKwor LS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgcHVibGljLmF2YXIgRlJPTSB4eHRhYjsKKworRFJPUCBW QVJJQUJMRSB4eHRhYjsKKworU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSB4eHRhYjsKKworRFJPUCBW QVJJQUJMRSBwdWJsaWMuYXZhcjsKKworRFJPUCBUWVBFIHh4dHlwZTsKKworRFJPUCBUQUJMRSB4 eHRhYjsKKworLS0gVGhlIHZhcmlhYmxlIGNhbiBiZSBzaGFkb3dlZCBieSB0YWJsZSBvciBieSBh bGlhcworQ1JFQVRFIFRZUEUgcHVibGljLnN2YXJfdHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIGlu dCk7CitDUkVBVEUgVkFSSUFCTEUgcHVibGljLnN2YXIgQVMgcHVibGljLnN2YXJfdHlwZTsKKwor Q1JFQVRFIFRBQkxFIHB1YmxpYy5zdmFyKGEgaW50LCBiIGludCk7CisKK0lOU0VSVCBJTlRPIHB1 YmxpYy5zdmFyIFZBTFVFUygxMCwgMjApOworCitMRVQgcHVibGljLnN2YXIgPSAoMTAwLCAyMDAs IDMwMCk7CisKKy0tIHNob3VsZCBiZSBvaworLS0gc2hvdyB0YWJsZQorU0VMRUNUICogRlJPTSBw dWJsaWMuc3ZhcjsKK1NFTEVDVCBzdmFyLmEgRlJPTSBwdWJsaWMuc3ZhcjsKK1NFTEVDVCBzdmFy LiogRlJPTSBwdWJsaWMuc3ZhcjsKKworLS0gc2hvdyB2YXJpYWJsZQorU0VMRUNUIHB1YmxpYy5z dmFyOworU0VMRUNUIHB1YmxpYy5zdmFyLmM7CitTRUxFQ1QgKHB1YmxpYy5zdmFyKS4qOworCist LSB0aGUgdmFyaWFibGUgaXMgc2hhZG93ZWQsIHJhaXNlIGVycm9yCitTRUxFQ1QgcHVibGljLnN2 YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworCistLSBjYW4gYmUgZml4ZWQgYnkgYWxpYXMKK1NFTEVD VCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXIgeDsKKworU0VMRUNUIHN2YXIuYSBGUk9N IHB1YmxpYy5zdmFyOworU0VMRUNUIHN2YXIuKiBGUk9NIHB1YmxpYy5zdmFyOworCistLSBzaG93 IHZhcmlhYmxlCitTRUxFQ1QgcHVibGljLnN2YXI7CitTRUxFQ1QgcHVibGljLnN2YXIuYzsKK1NF TEVDVCAocHVibGljLnN2YXIpLio7CisKKy0tIHRoZSB2YXJpYWJsZSBpcyBzaGFkb3dlZCwgcmFp c2UgZXJyb3IKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7CisKKy0tIGNh biBiZSBmaXhlZCBieSBhbGlhcworU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3Zh ciB4OworCitEUk9QIFZBUklBQkxFIHB1YmxpYy5zdmFyOworRFJPUCBUQUJMRSBwdWJsaWMuc3Zh cjsKK0RST1AgVFlQRSBwdWJsaWMuc3Zhcl90eXBlOworCistLSBUaGUgc2VxdWVuY2UgaWRlbnQu KiBjYW5ub3QgYmUgdXNlZCBieSByZWZlcmVuY2UgdG8gc2Vzc2lvbiB2YXJpYWJsZSwKKy0tIGFu ZCBpbiB0aGlzIGNhc2UsIHRoZXJlIGlzIG5vdCBjb2xsaXNpb24KK0NSRUFURSBTQ0hFTUEgdmFy dGVzdDsKK1NFVCBTRUFSQ0hfUEFUSCBUTyB2YXJ0ZXN0OworQ1JFQVRFIFRBQkxFIHZhcnRlc3Rf Zm9vKGEgaW50LCBiIGludCk7CitJTlNFUlQgSU5UTyB2YXJ0ZXN0X2ZvbyBWQUxVRVMoMTAsMjAp LCAoMzAsNDApOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJ0ZXN0X2ZvbzsKK0xFVCB2 YXIxID0gKDEwMCwyMDApOworCistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIHZhcjEuKiBGUk9N IHZhcnRlc3RfZm9vOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxLiogRlJPTSB2YXJ0 ZXN0X2ZvbyB2YXIxOworCistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIGNvdW50KHZhcjEuKikg RlJPTSB2YXJ0ZXN0X2ZvbzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgY291bnQodmFyMS4q KSBGUk9NIHZhcnRlc3RfZm9vIHZhcjE7CisKK1NFVCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOwor RFJPUCBTQ0hFTUEgdmFydGVzdCBDQVNDQURFOworCitDUkVBVEUgVFlQRSBhYiBBUyAoYSBpbnRl Z2VyLCBiIGludGVnZXIpOworCitDUkVBVEUgVkFSSUFCTEUgdl9hYiBBUyBhYjsKKworQ1JFQVRF IFRBQkxFIHZfYWIgKGEgaW50ZWdlciwgYiBpbnRlZ2VyKTsKK0lOU0VSVCBJTlRPIHZfYWIgVkFM VUVTKDEwLDIwKTsKKworLS0gd2Ugc2hvdWxkIHNlZSB0YWJsZQorU0VMRUNUIHZfYWIuYSBGUk9N IHZfYWI7CisKK0NSRUFURSBTQ0hFTUEgdl9hYjsKKworQ1JFQVRFIFZBUklBQkxFIHZfYWIuYSBB UyBpbnRlZ2VyOworCistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qgdl9hYi5hIEZST00g dl9hYjsKKworRFJPUCBWQVJJQUJMRSB2X2FiOworRFJPUCBUQUJMRSB2X2FiOworRFJPUCBUWVBF IGFiOworRFJPUCBWQVJJQUJMRSB2X2FiLmE7CitEUk9QIFNDSEVNQSB2X2FiOworCitDUkVBVEUg VFlQRSB0X2FtX3R5cGUgQVMgKGIgaW50KTsKK0NSRUFURSBTQ0hFTUEgeHh4X2FtOworCitTRVQg c2VhcmNoX3BhdGggVE8gcHVibGljOworCitDUkVBVEUgVkFSSUFCTEUgeHh4X2FtIEFTIHRfYW1f dHlwZTsKK0xFVCB4eHhfYW0gPSBST1coMTApOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB4 eHhfYW07CisKK0NSRUFURSBWQVJJQUJMRSB4eHhfYW0uYiBBUyBpbnQ7CitMRVQgOiJEQk5BTUUi Lnh4eF9hbS5iID0gMjA7CisKKy0tIHNob3VsZCBiZSBzdGlsbCBvaworU0VMRUNUIHh4eF9hbTsK KworLS0gc2hvdWxkIGZhaWwsIHRoZSByZWZlcmVuY2Ugc2hvdWxkIGJlIGFtYmlndW91cworU0VM RUNUIHh4eF9hbS5iOworCistLSBlbmhhbmNlZCByZWZlcmVuY2VzIHNob3VsZCBiZSBvaworU0VM RUNUIHB1YmxpYy54eHhfYW0uYjsKK1NFTEVDVCA6IkRCTkFNRSIueHh4X2FtLmI7CisKK0NSRUFU RSBUQUJMRSB4eHhfYW0oYiAgaW50KTsKK0lOU0VSVCBJTlRPIHh4eF9hbSBWQUxVRVMoMTApOwor CistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1QgeHh4X2FtLmIgRlJPTSB4eHhfYW07CitT RUxFQ1QgeC5iIEZST00geHh4X2FtIHg7CisKK0RST1AgVEFCTEUgeHh4X2FtOworRFJPUCBWQVJJ QUJMRSBwdWJsaWMueHh4X2FtOworRFJPUCBWQVJJQUJMRSB4eHhfYW0uYjsKK0RST1AgU0NIRU1B IHh4eF9hbTsKKworQ1JFQVRFIFNDSEVNQSA6IkRCTkFNRSI7CisKK0NSRUFURSBWQVJJQUJMRSA6 IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIiBBUyB0X2FtX3R5cGU7CitDUkVBVEUgVkFSSUFC TEUgOiJEQk5BTUUiLjoiREJOQU1FIi5iIEFTIGludDsKKworU0VUIHNlYXJjaF9wYXRoIFRPIDoi REJOQU1FIjsKKworLS0gc2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNUIDoiREJOQU1FIi5iOwor CistLSBzaG91bGQgYmUgYW1iaWd1b3VzIHRvbworU0VMRUNUIDoiREJOQU1FIi46IkRCTkFNRSIu YjsKKworQ1JFQVRFIFRBQkxFIDoiREJOQU1FIihiIGludCk7CisKKy0tIHNob3VsZCBiZSBvawor U0VMRUNUIDoiREJOQU1FIi5iIEZST00gOiJEQk5BTUUiOworCitEUk9QIFRBQkxFIDoiREJOQU1F IjsKKworRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7CitEUk9QIFZBUklBQkxF IDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiOworRFJPUCBTQ0hFTUEgOiJEQk5BTUUiOwor CitSRVNFVCBzZWFyY2hfcGF0aDsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggZjE4YWNl MWJlMTUuLjVhMzcyN2E2Y2NlIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTUzNiw2 ICsxNTM2LDcgQEAgTGFyZ2VPYmplY3REZXNjCiBMYXRjaAogTGF1bmNoZXJMYXN0U3RhcnRUaW1l c0VudHJ5CiBMZXJwRnVuYworTGV0U3RtdAogTGV4RGVzY3IKIExleGVtZUVudHJ5CiBMZXhlbWVI YXNoS2V5CkBAIC0yNjg4LDYgKzI2ODksNyBAQCBTZXJpYWxpemVkVHJhbnNhY3Rpb25TdGF0ZQog U2Vzc2lvbgogU2Vzc2lvbkJhY2t1cFN0YXRlCiBTZXNzaW9uRW5kVHlwZQorU2Vzc2lvblZhcmlh YmxlVmFsdWUKIFNldENvbnN0cmFpbnRTdGF0ZQogU2V0Q29uc3RyYWludFN0YXRlRGF0YQogU2V0 Q29uc3RyYWludFRyaWdnZXJEYXRhCkBAIC0yODg4LDYgKzI4OTAsOSBAQCBTdXBwb3J0UmVxdWVz dFJvd3MKIFN1cHBvcnRSZXF1ZXN0U2VsZWN0aXZpdHkKIFN1cHBvcnRSZXF1ZXN0U2ltcGxpZnkK IFN1cHBvcnRSZXF1ZXN0V0Z1bmNNb25vdG9uaWMKK1NWYXJpYWJsZQorU1ZhcmlhYmxlRGF0YQor U1ZhcmlhYmxlU3RhdGUKIFN5bgogU3luY09wcwogU3luY1JlcENvbmZpZ0RhdGEKLS0gCjIuNDku MAoK --0000000000008f76b80632058aa3 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250405-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Disposition: attachment; filename="v20250405-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m942s3wf7 RnJvbSAxNzViOWRmMTg0YzRmN2Y1NDVkMTNiM2U4NjZlY2M5MjlmMTFjMWRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDAx LzIxXSBFbmhhbmNpbmcgY2F0YWxvZyBmb3Igc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcyBhbmQK IHJlbGF0ZWQgc3VwcG9ydAoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBzeXN0ZW0gY2F0YWxv ZyB0YWJsZSBwZ192YXJpYWJsZS4gVGhpcyB0YWJsZSBob2xkcyBtZXRhZGF0YSBhYm91dApzZXNz aW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGNvbW1hbmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJv cHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUuCkJvdGggY29tbWFuZHMgYXJlIGltcGxlbWVu dGVkIGJ5IHRoaXMgcGF0Y2guIFBvc3NpYmlsaXR5IHRvIGNoYW5nZSBvd25lciwgc2NoZW1hIG9y IHJlbmFtZS4KCkFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgY29udHJvbGxlZCBi eSBTRUxFQ1Qgb3IgVVBEQVRFIHJpZ2h0cy4gQm90aCByaWdodHMgYXJlCmludHJvZHVjZWQgYnkg dGhpcyBwYXRjaCB0b28uCgpUaGlzIHBhdGNoIGVuaGFuY2luZyBwZ19kdW1wIGFuZCBwc3FsIHRv IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoZSBjaGFuZ2VzIGFyZSByZWxhdGVkCnRvIHN5 c3RlbSBjYXRhbG9nLgoKVGhpcyBwYXRjaCBpcyBub3Qgc2hvcnQsIGJ1dCB0aGUgY29kZSBpcyBz aW1wbGUuCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgMTIxICsrKysrCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgNDAgKy0KIGRvYy9zcmMvc2dtbC9mdW5jLnNnbWwgICAgICAgICAgICAgICAgICAgICAg ICB8ICAzMiArKwogZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAg IHwgIDE1ICsKIGRvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8 ICAgMyArCiAuLi4vc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwgICAgfCAg MjkgKy0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCAgICAgICAgICB8IDE3 OCArKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAgICAgICAgICAg fCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwgICAgICAgICAgIHwg IDEyICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAx NDkgKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCAgICAgICAgICAg fCAxMTcgKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbCAgICAgICAgICAgICAgICAg ICB8ICAyMCArLQogZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAgICAgICAg IHwgIDEzICsKIGRvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwgICAgICAgICAgICAgICAgICB8 ICAgOCArCiBkb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgICAgfCAg IDMgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAgICB8ICA3NiAr KysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jICAgICAgICAgICAgICB8ICAgNiAr CiBzcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyAgICAgICAgICAgICAgIHwgMjIxICsrKysr KysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgICAgICAgICAgIHwgMTIx ICsrKystCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3NoZGVwZW5kLmMgICAgICAgICAgICAgfCAg IDIgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAgIHwgMjUx ICsrKysrKysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMgICAgICAgICAgICAgICAg ICB8ICAgOSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jICAgICAgICAgICAgICAg fCAgIDQgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jICAgICAgICAgIHwg ICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMgICAgICAgICAgICAgICB8ICAg MSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgNDEg KysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMgICAgICAgICAgICAgICB8ICAxNSAr CiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAxMDUgKysr Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgICAgICAgICAgICB8ICAxMiAr CiBzcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgMjAgKwog c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jICAgICAgICAgICAgICAgICAgIHwgMjIxICsrKysr KysrKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgICAgICAgICAgIHwgMTEz ICsrKysrCiBzcmMvYmluL3BnX2R1bXAvY29tbW9uLmMgICAgICAgICAgICAgICAgICAgICAgfCAg IDMgKwogc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jICAgICAgICAgICAgICAgICAgIHwgICA2 ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaCAgICAgICAgICAgICAgICAgICB8ICAgMiAr CiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMgICAgICAgICAgfCAgIDkgKwog c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgMTkwICsrKysr KysrCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgMTUg Kwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jICAgICAgICAgICAgICAgIHwgICA3ICsK IHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICA2NCArKysK IHNyYy9iaW4vcHNxbC9jb21tYW5kLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBz cmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAxMDAgKysrLQog c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNy Yy9iaW4vcHNxbC9oZWxwLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgICAgfCAgNDUgKy0KIHNyYy9p bmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNs dWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmggICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgIDIzICsKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICA4MSArKysrCiBzcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMTYgKwogc3JjL2luY2x1ZGUvcGFy c2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3Rjb3Av Y21kdGFnbGlzdC5oICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS91dGlscy9h Y2wuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5 c2NhY2hlLmggICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvZGVwZW5kZW5jeS5vdXQgICAgICB8ICAxNyArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L29pZGpvaW5zLm91dCAgICAgICAgfCAgIDQgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w c3FsLm91dCAgICAgICAgICAgIHwgIDUwICsrCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQgICAgfCA0MzMgKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdy ZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2RlcGVuZGVuY3kuc3FsICAgICAgICAgICB8ICAxNCArCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9wc3FsLnNxbCAgICAgICAgICAgICAgICAgfCAgMjEgKwogc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgMjk3ICsrKysrKysrKysrKwogc3JjL3Rvb2xz L3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICA0ICsKIDY3IGZpbGVzIGNo YW5nZWQsIDMzNjYgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCiBjcmVhdGUgbW9kZSAx MDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUg MTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRh bG9ncy5zZ21sCmluZGV4IDQ1YmE5YzUxMThmLi4yYmM4ZGUzZTI4YiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwK QEAgLTM2OSw2ICszNjksMTEgQEAKICAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9n LXBnLXVzZXItbWFwcGluZyI+PHN0cnVjdG5hbWU+cGdfdXNlcl9tYXBwaW5nPC9zdHJ1Y3RuYW1l PjwvbGluaz48L2VudHJ5PgogICAgICAgPGVudHJ5Pm1hcHBpbmdzIG9mIHVzZXJzIHRvIGZvcmVp Z24gc2VydmVyczwvZW50cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50 cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy12YXJpYWJsZSI+PHN0cnVjdG5hbWU+cGdfdmFy aWFibGU8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CisgICAgICA8ZW50cnk+c2Vzc2lvbiB2 YXJpYWJsZXM8L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8L3Rib2R5PgogICAgPC90Z3JvdXA+ CiAgIDwvdGFibGU+CkBAIC0zMzYyLDYgKzMzNjcsNyBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNl YWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4m bAogICAgICAgIDxsaXRlcmFsPlQ8L2xpdGVyYWw+ID0gdHlwZSwKICAgICAgICA8bGl0ZXJhbD5u PC9saXRlcmFsPiA9IHNjaGVtYSwKICAgICAgICA8bGl0ZXJhbD5MPC9saXRlcmFsPiA9IGxhcmdl IG9iamVjdAorICAgICAgIDxsaXRlcmFsPlY8L2xpdGVyYWw+ID0gc2Vzc2lvbiB2YXJpYWJsZQog ICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCkBAIC05Nzc5LDQgKzk3ODUsMTE5 IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9y ZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgIDwvdGFibGU+CiAgPC9zZWN0MT4KIAorIDxz ZWN0MSBpZD0iY2F0YWxvZy1wZy12YXJpYWJsZSI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ192 YXJpYWJsZTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0gem9uZT0iY2F0YWxv Zy1wZy12YXJpYWJsZSI+CisgICA8cHJpbWFyeT5wZ192YXJpYWJsZTwvcHJpbWFyeT4KKyAgPC9p bmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8c3RydWN0bmFtZT5wZ192YXJp YWJsZTwvc3RydWN0bmFtZT4gc3RvcmVzIGluZm9ybWF0aW9uIGFib3V0CisgICBzZXNzaW9uIHZh cmlhYmxlcy4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5w Z192YXJpYWJsZTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9 IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29s dW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9u CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAg IDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk Pm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPnZhcnR5cGU8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVy ZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy10eXBlIj48c3RydWN0bmFtZT5wZ190eXBl PC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIE9JRCBvZiB0aGUgdmFyaWFibGUn cyBkYXRhIHR5cGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFybmFtZTwvc3RydWN0 ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBOYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnZhcm5hbWVzcGFjZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAg ICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLW5hbWVzcGFjZSI+PHN0cnVj dG5hbWU+cGdfbmFtZXNwYWNlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwv c3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIE9J RCBvZiB0aGUgbmFtZXNwYWNlIHRoYXQgY29udGFpbnMgdGhpcyB2YXJpYWJsZQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJvd25lcjwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlw ZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWF1dGhpZCI+ PHN0cnVjdG5hbWU+cGdfYXV0aGlkPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9p ZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgT3du ZXIgb2YgdGhlIHZhcmlhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcnR5cG1v ZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFydHlwbW9kPC9zdHJ1Y3RmaWVsZD4gcmVjb3Jk cyB0eXBlLXNwZWNpZmljIGRhdGEKKyAgICAgICBzdXBwbGllZCBhdCB2YXJpYWJsZSBjcmVhdGlv biB0aW1lIChmb3IgZXhhbXBsZSwgdGhlIG1heGltdW0KKyAgICAgICBsZW5ndGggb2YgYSA8dHlw ZT52YXJjaGFyPC90eXBlPiBjb2x1bW4pLiAgSXQgaXMgcGFzc2VkIHRvCisgICAgICAgdHlwZS1z cGVjaWZpYyBpbnB1dCBmdW5jdGlvbnMgYW5kIGxlbmd0aCBjb2VyY2lvbiBmdW5jdGlvbnMuCisg ICAgICAgVGhlIHZhbHVlIHdpbGwgZ2VuZXJhbGx5IGJlIC0xIGZvciB0eXBlcyB0aGF0IGRvIG5v dCBuZWVkIDxzdHJ1Y3RmaWVsZD52YXJ0eXBtb2Q8L3N0cnVjdGZpZWxkPi4KKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+dmFyY29sbGF0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90 eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sbGF0 aW9uIj48c3RydWN0bmFtZT5wZ19jb2xsYXRpb248L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0 ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBUaGUgZGVmaW5lZCBjb2xsYXRpb24gb2YgdGhlIHZhcmlhYmxlLCBvciB6ZXJvIGlmIHRo ZSB2YXJpYWJsZSBpcworICAgICAgIG5vdCBvZiBhIGNvbGxhdGFibGUgZGF0YSB0eXBlLgorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJhY2w8L3N0cnVjdGZpZWxkPiA8dHlwZT5hY2xp dGVtW108L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBBY2Nlc3Mg cHJpdmlsZWdlczsgc2VlCisgICAgICAgPHhyZWYgbGlua2VuZD0ic3FsLWdyYW50Ii8+IGFuZAor ICAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1yZXZva2UiLz4KKyAgICAgICBmb3IgZGV0YWlscwor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgPC90Ym9keT4KKyAgIDwv dGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CiA8L2NoYXB0ZXI+CmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggZDIwODJi N2U4OGUuLjZhNDkzYzJmNTYxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC0yMDE4LDYgKzIwMTgsNyBAQCBSRVZPS0UgQUxM IE9OIGFjY291bnRzIEZST00gUFVCTElDOwogICAgICAgIEZvciBzZXF1ZW5jZXMsIHRoaXMgcHJp dmlsZWdlIGFsc28gYWxsb3dzIHVzZSBvZiB0aGUKICAgICAgICA8ZnVuY3Rpb24+Y3VycnZhbDwv ZnVuY3Rpb24+IGZ1bmN0aW9uLgogICAgICAgIEZvciBsYXJnZSBvYmplY3RzLCB0aGlzIHByaXZp bGVnZSBhbGxvd3MgdGhlIG9iamVjdCB0byBiZSByZWFkLgorICAgICAgIEZvciBzZXNzaW9uIHZh cmlhYmxlcywgdGhpcyAgcHJpdmlsZWdlIGFsbG93cyB0aGUgb2JqZWN0IHRvIGJlIHJlYWQuCiAg ICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CkBAIC0y MDUzLDYgKzIwNTQsOCBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVCTElDOwogICAg ICAgIDxmdW5jdGlvbj5zZXR2YWw8L2Z1bmN0aW9uPiBmdW5jdGlvbnMuCiAgICAgICAgRm9yIGxh cmdlIG9iamVjdHMsIHRoaXMgcHJpdmlsZWdlIGFsbG93cyB3cml0aW5nIG9yIHRydW5jYXRpbmcg dGhlCiAgICAgICAgb2JqZWN0LgorICAgICAgIEZvciBzZXNzaW9uIHZhcmlhYmxlcywgdGhpcyBw cml2aWxlZ2UgYWxsb3dzIHRvIHNldCBhIHZhbHVlIHRvIHRoZQorICAgICAgIG9iamVjdC4KICAg ICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTIy OTYsNyArMjI5OSw4IEBAIFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJPTSBQVUJMSUM7CiAgICAg ICAgPGxpdGVyYWw+TEFSR0UgT0JKRUNUPC9saXRlcmFsPiwKICAgICAgICA8bGl0ZXJhbD5TRVFV RU5DRTwvbGl0ZXJhbD4sCiAgICAgICAgPGxpdGVyYWw+VEFCTEU8L2xpdGVyYWw+IChhbmQgdGFi bGUtbGlrZSBvYmplY3RzKSwKLSAgICAgICB0YWJsZSBjb2x1bW4KKyAgICAgICB0YWJsZSBjb2x1 bW4sCisgICAgICAgPGxpdGVyYWw+U0VTU0lPTiBWQVJJQUJMRTwvbGl0ZXJhbD4KICAgICAgIDwv ZW50cnk+CiAgICAgIDwvcm93PgogICAgICA8cm93PgpAQCAtMjMxMSw3ICsyMzE1LDggQEAgUkVW T0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJQzsKICAgICAgICA8bGl0ZXJhbD5MQVJHRSBP QkpFQ1Q8L2xpdGVyYWw+LAogICAgICAgIDxsaXRlcmFsPlNFUVVFTkNFPC9saXRlcmFsPiwKICAg ICAgICA8bGl0ZXJhbD5UQUJMRTwvbGl0ZXJhbD4sCi0gICAgICAgdGFibGUgY29sdW1uCisgICAg ICAgdGFibGUgY29sdW1uLAorICAgICAgIDxsaXRlcmFsPlNFU1NJT04gVkFSSUFCTEU8L2xpdGVy YWw+CiAgICAgICA8L2VudHJ5PgogICAgICA8L3Jvdz4KICAgICAgPHJvdz4KQEAgLTI0OTgsNiAr MjUwMywxMiBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVCTElDOwogICAgICAgPGVu dHJ5PjxsaXRlcmFsPlU8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgIDxlbnRyeT48bGl0ZXJhbD5c ZFQrPC9saXRlcmFsPjwvZW50cnk+CiAgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVu dHJ5PjxsaXRlcmFsPlNFU1NJT04gVkFSSUFCTEU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxl bnRyeT48bGl0ZXJhbD5ydzwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFs Pm5vbmU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5cZFYrPC9saXRl cmFsPjwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAg PC90YWJsZT4KQEAgLTUzNTQsNiArNTM2NSwzMSBAQCBFWFBMQUlOIFNFTEVDVCBjb3VudCgqKSBG Uk9NIG1lYXN1cmVtZW50IFdIRVJFIGxvZ2RhdGUgJmd0Oz0gREFURSAnMjAwOC0wMS0wMSc7CiAg ICA8L3BhcmE+CiAgPC9zZWN0MT4KIAorICA8c2VjdDEgaWQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxl cyI+CisgICA8dGl0bGU+U2Vzc2lvbiBWYXJpYWJsZXM8L3RpdGxlPgorCisgICA8aW5kZXh0ZXJt IHpvbmU9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyI+CisgICAgPHByaW1hcnk+U2Vzc2lvbiB2YXJp YWJsZXM8L3ByaW1hcnk+CisgICA8L2luZGV4dGVybT4KKworICAgPGluZGV4dGVybT4KKyAgICA8 cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICAgPC9pbmRleHRlcm0+CisKKyAg IDxwYXJhPgorICAgIFNlc3Npb24gdmFyaWFibGVzIGFyZSBkYXRhYmFzZSBvYmplY3RzIHRoYXQg Y2FuIGhvbGQgYSB2YWx1ZS4KKyAgICBTZXNzaW9uIHZhcmlhYmxlcywgbGlrZSByZWxhdGlvbnMs IGV4aXN0IHdpdGhpbiBhIHNjaGVtYSBhbmQgdGhlaXIgYWNjZXNzCisgICAgaXMgY29udHJvbGxl ZCB2aWEgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5SRVZPS0U8L2NvbW1h bmQ+CisgICAgY29tbWFuZHMuICBBIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlIGNyZWF0ZWQgYnkg dGhlIDxjb21tYW5kPkNSRUFURQorICAgIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kLgorICAg PC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgc2Vzc2lvbiB2YXJpYWJsZSBob2xkcyB2YWx1 ZSBpbiBzZXNzaW9uIG1lbW9yeS4gIFRoaXMgdmFsdWUgaXMgcHJpdmF0ZQorICAgIHRvIGVhY2gg c2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQgd2hlbiB0aGUgc2Vzc2lvbiBlbmRzLgorICAgPC9wYXJh PgorICA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJkZGwtb3RoZXJzIj4KICAgPHRpdGxlPk90aGVy IERhdGFiYXNlIE9iamVjdHM8L3RpdGxlPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZnVu Yy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAppbmRleCAwMjI0ZjkzNzMzZC4uOTg4YTc3 MmU4MmQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2Z1bmMuc2dtbApAQCAtMjU1ODksNiArMjU1ODksMjUgQEAgU0VMRUNUIGhhc19mdW5jdGlv bl9wcml2aWxlZ2UoJ2pvZXVzZXInLCAnbXlmdW5jKGludCwgdGV4dCknLCAnZXhlY3V0ZScpOwog ICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICAgPC9yb3c+CiAKKyAgICAgIDxyb3c+CisgICAg ICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0 dXJlIj4KKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5Pmhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZTwvcHJpbWFyeT4KKyAgICAgICAgPC9pbmRleHRlcm0+CisgICAg ICAgIDxmdW5jdGlvbj5oYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2U8L2Z1bmN0aW9uPiAo CisgICAgICAgICAgPG9wdGlvbmFsPiA8cGFyYW1ldGVyPnVzZXI8L3BhcmFtZXRlcj4gPHR5cGU+ bmFtZTwvdHlwZT4gb3IgPHR5cGU+b2lkPC90eXBlPiwgPC9vcHRpb25hbD4KKyAgICAgICAgICA8 cGFyYW1ldGVyPnNlc3Npb25fdmFyaWFibGU8L3BhcmFtZXRlcj4gPHR5cGU+dGV4dDwvdHlwZT4g b3IgPHR5cGU+b2lkPC90eXBlPiwKKyAgICAgICAgICA8cGFyYW1ldGVyPnByaXZpbGVnZTwvcGFy YW1ldGVyPiA8dHlwZT50ZXh0PC90eXBlPiApCisgICAgICAgIDxyZXR1cm52YWx1ZT5ib29sZWFu PC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIERv ZXMgdXNlciBoYXZlIHByaXZpbGVnZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZT8KKyAgICAgICAgQWxs b3dhYmxlIHByaXZpbGVnZSB0eXBlcyBhcmUKKyAgICAgICAgPGxpdGVyYWw+U0VMRUNUPC9saXRl cmFsPiwgYW5kCisgICAgICAgIDxsaXRlcmFsPlVQREFURTwvbGl0ZXJhbD4uCisgICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgICA8L3Jvdz4KKwogICAgICAgPHJvdz4KICAgICAgICA8ZW50cnkg cm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgogICAg ICAgICA8aW5kZXh0ZXJtPgpAQCAtMjYwOTcsNiArMjYxMTYsMTkgQEAgU0VMRUNUIHJlbG5hbWUg RlJPTSBwZ19jbGFzcyBXSEVSRSBwZ190YWJsZV9pc192aXNpYmxlKG9pZCk7CiAgICAgICAgIElz IHR5cGUgKG9yIGRvbWFpbikgdmlzaWJsZSBpbiBzZWFyY2ggcGF0aD8KICAgICAgICA8L3BhcmE+ PC9lbnRyeT4KICAgICAgIDwvcm93PgorCisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSByb2xl PSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CisgICAgICAg IDxpbmRleHRlcm0+CisgICAgICAgICA8cHJpbWFyeT5wZ192YXJpYWJsZV9pc192aXNpYmxlPC9w cmltYXJ5PgorICAgICAgICA8L2luZGV4dGVybT4KKyAgICAgICAgPGZ1bmN0aW9uPnBnX3Zhcmlh YmxlX2lzX3Zpc2libGU8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+dmFyaWFibGU8L3BhcmFtZXRl cj4gPHR5cGU+b2lkPC90eXBlPiApCisgICAgICAgIDxyZXR1cm52YWx1ZT5ib29sZWFuPC9yZXR1 cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIElzIHNlc3Np b24gdmFyaWFibGUgdmlzaWJsZSBpbiBzZWFyY2ggcGF0aD8KKyAgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgIDwvcm93PgogICAgICA8L3Rib2R5PgogICAgIDwvdGdyb3VwPgogICAgPC90YWJs ZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sIGIvZG9jL3NyYy9zZ21s L2dsb3NzYXJ5LnNnbWwKaW5kZXggYjg4Y2FjNTk4ZTkuLjgzYjEzZjk4ZjI4IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnku c2dtbApAQCAtMTcwOCw2ICsxNzA4LDIxIEBACiAgICA8L2dsb3NzZGVmPgogICA8L2dsb3NzZW50 cnk+CiAKKyAgPGdsb3NzZW50cnkgaWQ9Imdsb3NzYXJ5LXNlc3Npb24tdmFyaWFibGUiPgorICAg PGdsb3NzdGVybT5TZXNzaW9uIHZhcmlhYmxlPC9nbG9zc3Rlcm0+CisgICA8Z2xvc3NkZWY+Cisg ICAgPHBhcmE+CisgICAgIEEgcGVyc2lzdGVudCBkYXRhYmFzZSBvYmplY3QgdGhhdCBob2xkcyBh IHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcworICAgICB2YWx1ZSBpcyBwcml2YXRlIHRv IGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQgd2hlbiB0aGUgc2Vzc2lvbiBlbmRzLgorICAg ICBSZWFkIG9yIHdyaXRlIGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBpcyBjb250cm9sbGVk IGJ5IHByaXZpbGVnZXMsCisgICAgIHNpbWlsYXIgdG8gb3RoZXIgZGF0YWJhc2Ugb2JqZWN0cy4K KyAgICA8L3BhcmE+CisgICAgPHBhcmE+CisgICAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUg PHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIi8+LgorICAgIDwvcGFyYT4KKyAg IDwvZ2xvc3NkZWY+CisgIDwvZ2xvc3NlbnRyeT4KKwogICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3Nh cnktc2hhcmVkLW1lbW9yeSI+CiAgICA8Z2xvc3N0ZXJtPlNoYXJlZCBtZW1vcnk8L2dsb3NzdGVy bT4KICAgIDxnbG9zc2RlZj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMu c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAppbmRleCBmNWJlNjM4ODY3YS4u MmY2N2RlM2UyMWIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAgLTQ3LDYgKzQ3LDcgQEAgQ29t cGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3Rvcnku CiA8IUVOVElUWSBhbHRlclR5cGUgICAgICAgICAgU1lTVEVNICJhbHRlcl90eXBlLnNnbWwiPgog PCFFTlRJVFkgYWx0ZXJVc2VyICAgICAgICAgIFNZU1RFTSAiYWx0ZXJfdXNlci5zZ21sIj4KIDwh RU5USVRZIGFsdGVyVXNlck1hcHBpbmcgICBTWVNURU0gImFsdGVyX3VzZXJfbWFwcGluZy5zZ21s Ij4KKzwhRU5USVRZIGFsdGVyVmFyaWFibGUgICAgICBTWVNURU0gImFsdGVyX3ZhcmlhYmxlLnNn bWwiPgogPCFFTlRJVFkgYWx0ZXJWaWV3ICAgICAgICAgIFNZU1RFTSAiYWx0ZXJfdmlldy5zZ21s Ij4KIDwhRU5USVRZIGFuYWx5emUgICAgICAgICAgICBTWVNURU0gImFuYWx5emUuc2dtbCI+CiA8 IUVOVElUWSBiZWdpbiAgICAgICAgICAgICAgU1lTVEVNICJiZWdpbi5zZ21sIj4KQEAgLTk5LDYg KzEwMCw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRo aXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgY3JlYXRlVHlwZSAgICAgICAgIFNZU1RFTSAiY3JlYXRl X3R5cGUuc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVVc2VyICAgICAgICAgU1lTVEVNICJjcmVhdGVf dXNlci5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZVVzZXJNYXBwaW5nICBTWVNURU0gImNyZWF0ZV91 c2VyX21hcHBpbmcuc2dtbCI+Cis8IUVOVElUWSBjcmVhdGVWYXJpYWJsZSAgICAgU1lTVEVNICJj cmVhdGVfdmFyaWFibGUuc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVWaWV3ICAgICAgICAgU1lTVEVN ICJjcmVhdGVfdmlldy5zZ21sIj4KIDwhRU5USVRZIGRlYWxsb2NhdGUgICAgICAgICBTWVNURU0g ImRlYWxsb2NhdGUuc2dtbCI+CiA8IUVOVElUWSBkZWNsYXJlICAgICAgICAgICAgU1lTVEVNICJk ZWNsYXJlLnNnbWwiPgpAQCAtMTQ3LDYgKzE0OSw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxl IHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgZHJvcFR5cGUg ICAgICAgICAgIFNZU1RFTSAiZHJvcF90eXBlLnNnbWwiPgogPCFFTlRJVFkgZHJvcFVzZXIgICAg ICAgICAgIFNZU1RFTSAiZHJvcF91c2VyLnNnbWwiPgogPCFFTlRJVFkgZHJvcFVzZXJNYXBwaW5n ICAgIFNZU1RFTSAiZHJvcF91c2VyX21hcHBpbmcuc2dtbCI+Cis8IUVOVElUWSBkcm9wVmFyaWFi bGUgICAgICAgU1lTVEVNICJkcm9wX3ZhcmlhYmxlLnNnbWwiPgogPCFFTlRJVFkgZHJvcFZpZXcg ICAgICAgICAgIFNZU1RFTSAiZHJvcF92aWV3LnNnbWwiPgogPCFFTlRJVFkgZW5kICAgICAgICAg ICAgICAgIFNZU1RFTSAiZW5kLnNnbWwiPgogPCFFTlRJVFkgZXhlY3V0ZSAgICAgICAgICAgIFNZ U1RFTSAiZXhlY3V0ZS5zZ21sIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf ZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRf cHJpdmlsZWdlcy5zZ21sCmluZGV4IDZhY2QwZjFkZjkxLi5iYzczODE3MDYxZiAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sCkBAIC01Niw2ICs1 NiwxMSBAQCBHUkFOVCB7IHsgU0VMRUNUIHwgVVBEQVRFIH0KICAgICBPTiBMQVJHRSBPQkpFQ1RT CiAgICAgVE8geyBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVf bmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9O IF0KIAorR1JBTlQgeyB7IFNFTEVDVCB8IFVQREFURSB9CisgICAgWywgLi4uXSB8IEFMTCBbIFBS SVZJTEVHRVMgXSB9CisgICAgT04gVkFSSUFCTEVTCisgICAgVE8geyBbIEdST1VQIF0gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElD IH0gWywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9OIF0KKwogUkVWT0tFIFsgR1JBTlQgT1BUSU9O IEZPUiBdCiAgICAgeyB7IFNFTEVDVCB8IElOU0VSVCB8IFVQREFURSB8IERFTEVURSB8IFRSVU5D QVRFIHwgUkVGRVJFTkNFUyB8IFRSSUdHRVIgfCBNQUlOVEFJTiB9CiAgICAgWywgLi4uXSB8IEFM TCBbIFBSSVZJTEVHRVMgXSB9CkBAIC05NSw2ICsxMDAsMTQgQEAgUkVWT0tFIFsgR1JBTlQgT1BU SU9OIEZPUiBdCiAgICAgT04gTEFSR0UgT0JKRUNUUwogICAgIEZST00geyBbIEdST1VQIF0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVC TElDIH0gWywgLi4uXQogICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKworUkVWT0tFIFsgR1JB TlQgT1BUSU9OIEZPUiBdCisgICAgeyB7IFNFTEVDVCB8IFVQREFURSB9CisgICAgWywgLi4uXSB8 IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAgeyB7IFNFTEVDVCB8IFVQREFURSB9IFssIC4uLl0g fCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIFZBUklBQkxFUworICAgIEZST00geyBbIEdS T1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFi bGU+IHwgUFVCTElDIH0gWywgLi4uXQorICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KIDwvc3lu b3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAtMTI5LDE0ICsxNDIsMTQgQEAgUkVWT0tF IFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgIDxwYXJhPgogICAgQ3VycmVudGx5LAogICAgb25seSB0 aGUgcHJpdmlsZWdlcyBmb3Igc2NoZW1hcywgdGFibGVzIChpbmNsdWRpbmcgdmlld3MgYW5kIGZv cmVpZ24KLSAgIHRhYmxlcyksIHNlcXVlbmNlcywgZnVuY3Rpb25zLCB0eXBlcyAoaW5jbHVkaW5n IGRvbWFpbnMpLCBhbmQgbGFyZ2Ugb2JqZWN0cwotICAgY2FuIGJlIGFsdGVyZWQuICBGb3IgdGhp cyBjb21tYW5kLCBmdW5jdGlvbnMgaW5jbHVkZSBhZ2dyZWdhdGVzIGFuZCBwcm9jZWR1cmVzLgot ICAgVGhlIHdvcmRzIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPlJP VVRJTkVTPC9saXRlcmFsPiBhcmUKLSAgIGVxdWl2YWxlbnQgaW4gdGhpcyBjb21tYW5kLiAgKDxs aXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBpcyBwcmVmZXJyZWQKLSAgIGdvaW5nIGZvcndhcmQg YXMgdGhlIHN0YW5kYXJkIHRlcm0gZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyB0YWtlbgot ICAgdG9nZXRoZXIuICBJbiBlYXJsaWVyIFBvc3RncmVTUUwgcmVsZWFzZXMsIG9ubHkgdGhlCi0g ICB3b3JkIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gd2FzIGFsbG93ZWQuICBJdCBpcyBu b3QgcG9zc2libGUgdG8gc2V0Ci0gICBkZWZhdWx0IHByaXZpbGVnZXMgZm9yIGZ1bmN0aW9ucyBh bmQgcHJvY2VkdXJlcyBzZXBhcmF0ZWx5LikKKyAgIHRhYmxlcyksIHNlcXVlbmNlcywgZnVuY3Rp b25zLCB0eXBlcyAoaW5jbHVkaW5nIGRvbWFpbnMpLCBsYXJnZSBvYmplY3RzCisgICBhbmQgc2Vz c2lvbiB2YXJpYWJsZXMgY2FuIGJlIGFsdGVyZWQuICBGb3IgdGhpcyBjb21tYW5kLCBmdW5jdGlv bnMgaW5jbHVkZQorICAgYWdncmVnYXRlcyBhbmQgcHJvY2VkdXJlcy4gIFRoZSB3b3JkcyA8bGl0 ZXJhbD5GVU5DVElPTlM8L2xpdGVyYWw+IGFuZAorICAgPGxpdGVyYWw+Uk9VVElORVM8L2xpdGVy YWw+IGFyZSBlcXVpdmFsZW50IGluIHRoaXMgY29tbWFuZC4KKyAgICg8bGl0ZXJhbD5ST1VUSU5F UzwvbGl0ZXJhbD4gaXMgcHJlZmVycmVkIGdvaW5nIGZvcndhcmQgYXMgdGhlIHN0YW5kYXJkIHRl cm0KKyAgIGZvciBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMgdGFrZW4gdG9nZXRoZXIuICBJbiBl YXJsaWVyIFBvc3RncmVTUUwgcmVsZWFzZXMsCisgICBvbmx5IHRoZSB3b3JkIDxsaXRlcmFsPkZV TkNUSU9OUzwvbGl0ZXJhbD4gd2FzIGFsbG93ZWQuICBJdCBpcyBub3QgcG9zc2libGUKKyAgIHRv IHNldCBkZWZhdWx0IHByaXZpbGVnZXMgZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyBzZXBh cmF0ZWx5LikKICAgPC9wYXJhPgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJs ZS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45NmQyNTg2NDIz ZQotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dt bApAQCAtMCwwICsxLDE3OCBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJs ZS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNx bC1hbHRlcnZhcmlhYmxlIj4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1hbHRlcnZhcmlhYmxlIj4K KyAgPHByaW1hcnk+QUxURVIgVkFSSUFCTEU8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8 aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICA8c2Vj b25kYXJ5PmFsdGVyaW5nPC9zZWNvbmRhcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4K KyAgPHJlZmVudHJ5dGl0bGU+QUxURVIgVkFSSUFCTEU8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52 b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVt ZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZu YW1lPkFMVEVSIFZBUklBQkxFPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT4KKyAgIGNoYW5nZSB0 aGUgZGVmaW5pdGlvbiBvZiBhIHNlc3Npb24gdmFyaWFibGUKKyAgPC9yZWZwdXJwb3NlPgorIDwv cmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0FMVEVSIFZBUklB QkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gT1dO RVIgVE8geyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X293bmVyPC9yZXBsYWNl YWJsZT4gfCBDVVJSRU5UX1JPTEUgfCBDVVJSRU5UX1VTRVIgfCBTRVNTSU9OX1VTRVIgfQorQUxU RVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPiBSRU5BTUUgVE8gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19uYW1lPC9y ZXBsYWNlYWJsZT4KK0FMVEVSIFZBUklBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUIFNDSEVNQSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFibGU+Cis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3Bz aXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAg PHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+QUxURVIgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQg Y2hhbmdlcyB0aGUgZGVmaW5pdGlvbiBvZiBhbgorICAgZXhpc3Rpbmcgc2Vzc2lvbiB2YXJpYWJs ZS4gVGhlcmUgYXJlIHNldmVyYWwgc3ViZm9ybXM6CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2 YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+T1dORVI8L2xpdGVyYWw+PC90ZXJtPgor ICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gY2hhbmdlcyB0aGUg b3duZXIgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3Rp dGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+ PGxpdGVyYWw+UkVOQU1FPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgVGhpcyBmb3JtIGNoYW5nZXMgdGhlIG5hbWUgb2YgdGhlIHNlc3Npb24gdmFy aWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+U0VUIFNDSEVNQTwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9y bSBtb3ZlcyB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBpbnRvIGFub3RoZXIgc2NoZW1hLgorICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgIDwvdmFyaWFi bGVsaXN0PgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBPbmx5IHRoZSBvd25lciBvciBhIHN1 cGVydXNlciBpcyBhbGxvd2VkIHRvIGFsdGVyIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgIEluIG9y ZGVyIHRvIG1vdmUgYSBzZXNzaW9uIHZhcmlhYmxlIGZyb20gb25lIHNjaGVtYSB0byBhbm90aGVy LCB0aGUgdXNlcgorICAgbXVzdCBhbHNvIGhhdmUgdGhlIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJh bD4gcHJpdmlsZWdlIG9uIHRoZSBuZXcgc2NoZW1hIChvcgorICAgYmUgYSBzdXBlcnVzZXIpLgor CisgICBJbiBvcmRlciB0byBtb3ZlIHRoZSBzZXNzaW9uIHZhcmlhYmxlIG93bmVyc2hpcCBmcm9t IG9uZSByb2xlIHRvIGFub3RoZXIsCisgICB0aGUgdXNlciBtdXN0IGFsc28gYmUgYSBkaXJlY3Qg b3IgaW5kaXJlY3QgbWVtYmVyIG9mIHRoZSBuZXcKKyAgIG93bmluZyByb2xlLCBhbmQgdGhhdCBy b2xlIG11c3QgaGF2ZSB0aGUgPGxpdGVyYWw+Q1JFQVRFPC9saXRlcmFsPiBwcml2aWxlZ2UKKyAg IG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlJ3Mgc2NoZW1hIChvciBiZSBhIHN1cGVydXNlcikuIFRo ZXNlIHJlc3RyaWN0aW9ucworICAgZW5mb3JjZSB0aGF0IGFsdGVyaW5nIHRoZSBvd25lciBkb2Vz bid0IGRvIGFueXRoaW5nIHlvdSBjb3VsZG4ndCBkbyBieQorICAgZHJvcHBpbmcgYW5kIHJlY3Jl YXRpbmcgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisg PHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAg IDx2YXJpYWJsZWxpc3Q+CisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAg PGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbmFtZSAocG9zc2libHkgc2No ZW1hLXF1YWxpZmllZCkgb2YgdGhlIGV4aXN0aW5nIHNlc3Npb24gdmFyaWFibGUKKyAgICAgICAg dG8gYWx0ZXIuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJs aXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAg IDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIHVzZXIgbmFtZSBvZiB0aGUg bmV3IG93bmVyIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICAgIDwvcGFyYT4KKyAgICAg IDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnk+ CisgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3Jl cGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAg ICAgVGhlIG5ldyBuYW1lIGZvciB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgICA8L3BhcmE+ CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlz dGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19z Y2hlbWE8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFy YT4KKyAgICAgICAgVGhlIG5ldyBzY2hlbWEgZm9yIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAg ICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorICAg IDwvdmFyaWFibGVsaXN0PgorICAgPC9wYXJhPgorICA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3Qx PgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVG8gcmVuYW1lIGEg c2Vzc2lvbiB2YXJpYWJsZToKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFZBUklBQkxFIGZvbyBS RU5BTUUgVE8gYm9vOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgor ICAgVG8gY2hhbmdlIHRoZSBvd25lciBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD5i b288L2xpdGVyYWw+IHRvCisgICA8bGl0ZXJhbD5qb2U8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0 aW5nPgorQUxURVIgVkFSSUFCTEUgYm9vIE9XTkVSIFRPIGpvZTsKKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIGNoYW5nZSB0aGUgc2NoZW1hIG9mIHRoZSBz ZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPmJvbzwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPnBy aXZhdGU8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgVkFSSUFCTEUgYm9vIFNF VCBTQ0hFTUEgcHJpdmF0ZTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKyA8L3JlZnNl Y3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAg PHBhcmE+CisgICBTZXNzaW9uIHZhcmlhYmxlcyBhbmQgdGhpcyBjb21tYW5kIGluIHBhcnRpY3Vs YXIgYXJlIGEgUG9zdGdyZVNRTCBleHRlbnNpb24uCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgor CisgPHJlZnNlY3QxIGlkPSJzcWwtYWx0ZXJ2YXJpYWJsZS1zZWUtYWxzbyI+CisgIDx0aXRsZT5T ZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1i ZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVt YmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1w bGVsaXN0PgorIDwvcmVmc2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9jb21tZW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbAppbmRl eCA1YjQzYzU2YjEzMy4uMjFjZDgwODE4ZmIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYv Y29tbWVudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sCkBAIC02NSw2 ICs2NSw3IEBAIENPTU1FTlQgT04KICAgVFJBTlNGT1JNIEZPUiA8cmVwbGFjZWFibGU+dHlwZV9u YW1lPC9yZXBsYWNlYWJsZT4gTEFOR1VBR0UgPHJlcGxhY2VhYmxlPmxhbmdfbmFtZTwvcmVwbGFj ZWFibGU+IHwKICAgVFJJR0dFUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dHJpZ2dl cl9uYW1lPC9yZXBsYWNlYWJsZT4gT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRh YmxlX25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFRZUEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAorICBWQVJJQUJMRSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFZJRVcg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4K IH0gSVMgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3RyaW5nX2xpdGVyYWw8L3Jl cGxhY2VhYmxlPiB8IE5VTEwgfQogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV9zY2hlbWEuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sCmluZGV4 IGVkNjkyOThjY2M2Li5kMmJiMjY1MjA5YiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfc2NoZW1hLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNn bWwKQEAgLTEwMyw5ICsxMDMsMTAgQEAgQ1JFQVRFIFNDSEVNQSBJRiBOT1QgRVhJU1RTIEFVVEhP UklaQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3AKICAgICAgICAg c2NoZW1hLiBDdXJyZW50bHksIG9ubHkgPGNvbW1hbmQ+Q1JFQVRFCiAgICAgICAgIFRBQkxFPC9j b21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFIFZJRVc8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUK ICAgICAgICAgSU5ERVg8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUgU0VRVUVOQ0U8L2NvbW1h bmQ+LCA8Y29tbWFuZD5DUkVBVEUKLSAgICAgICAgVFJJR0dFUjwvY29tbWFuZD4gYW5kIDxjb21t YW5kPkdSQU5UPC9jb21tYW5kPiBhcmUgYWNjZXB0ZWQgYXMgY2xhdXNlcwotICAgICAgICB3aXRo aW4gPGNvbW1hbmQ+Q1JFQVRFIFNDSEVNQTwvY29tbWFuZD4uIE90aGVyIGtpbmRzIG9mIG9iamVj dHMgbWF5Ci0gICAgICAgIGJlIGNyZWF0ZWQgaW4gc2VwYXJhdGUgY29tbWFuZHMgYWZ0ZXIgdGhl IHNjaGVtYSBpcyBjcmVhdGVkLgorICAgICAgICBUUklHR0VSPC9jb21tYW5kPiwgPGNvbW1hbmQ+ R1JBTlQ8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5DUkVBVEUKKyAgICAgICAgVkFSSUFCTEU8L2Nv bW1hbmQ+IGFyZSBhY2NlcHRlZCBhcyBjbGF1c2VzIHdpdGhpbiA8Y29tbWFuZD5DUkVBVEUKKyAg ICAgICAgU0NIRU1BPC9jb21tYW5kPi4gT3RoZXIga2luZHMgb2Ygb2JqZWN0cyBtYXkgYmUgY3Jl YXRlZCBpbiBzZXBhcmF0ZQorICAgICAgICBjb21tYW5kcyBhZnRlciB0aGUgc2NoZW1hIGlzIGNy ZWF0ZWQuCiAgICAgICAgPC9wYXJhPgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0 ZW50cnk+CkBAIC0yMTQsNiArMjE1LDExIEBAIENSRUFURSBWSUVXIGhvbGx5d29vZC53aW5uZXJz IEFTCiAgICBUaGUgPGxpdGVyYWw+SUYgTk9UIEVYSVNUUzwvbGl0ZXJhbD4gb3B0aW9uIGlzIGEK ICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgogICA8 L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21t YW5kPiBjb21tYW5kIGlzIGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFt ZT4gZXh0ZW5zaW9uLgorICA8L3BhcmE+CiAgPC9yZWZzZWN0MT4KIAogIDxyZWZzZWN0MT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi42ZTk4OGYyZTQ3MgotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTAsMCArMSwxNDkgQEAKKzwhLS0KK2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlv bgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIj4KKyA8aW5kZXh0ZXJt IHpvbmU9InNxbC1jcmVhdGV2YXJpYWJsZSI+CisgIDxwcmltYXJ5PkNSRUFURSBWQVJJQUJMRTwv cHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Np b24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+ZGVmaW5pbmc8L3NlY29uZGFyeT4K KyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5DUkVBVEUgVkFS SUFCTEU8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVm bWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZt ZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkNSRUFURSBWQVJJQUJMRTwvcmVmbmFt ZT4KKyAgPHJlZnB1cnBvc2U+ZGVmaW5lIGEgc2Vzc2lvbiB2YXJpYWJsZTwvcmVmcHVycG9zZT4K KyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitDUkVBVEUg VkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5 bm9wc2lzZGl2PgorIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5DUkVBVEUgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1h bmQgY3JlYXRlcyBhIHNlc3Npb24gdmFyaWFibGUuCisgICBTZXNzaW9uIHZhcmlhYmxlcywgbGlr ZSByZWxhdGlvbnMsIGV4aXN0IHdpdGhpbiBhIHNjaGVtYSBhbmQgdGhlaXIgYWNjZXNzIGlzCisg ICBjb250cm9sbGVkIHZpYSB0aGUgY29tbWFuZHMgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFu ZCA8Y29tbWFuZD5SRVZPS0U8L2NvbW1hbmQ+LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBU aGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50IHNl c3Npb24uICBSZXRyaWV2aW5nCisgICBhIHNlc3Npb24gdmFyaWFibGUncyB2YWx1ZSByZXR1cm5z IE5VTEwsIHVubGVzcyBpdHMgdmFsdWUgaXMgc2V0IHRvCisgICBzb21ldGhpbmcgZWxzZSBpbiB0 aGUgY3VycmVudCBzZXNzaW9uIHdpdGggYSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQu CisgICBUaGUgY29udGVudCBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9u YWwuIFRoaXMgaXMgdGhlIHNhbWUgYXMKKyAgIHJlZ3VsYXIgdmFyaWFibGVzIGluIHByb2NlZHVy YWwgbGFuZ3VhZ2VzLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBTZXNzaW9uIHZhcmlhYmxl cyBhcmUgcmV0cmlldmVkIGJ5IHRoZSA8Y29tbWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+CisgICBjb21t YW5kLiAgVGhlaXIgdmFsdWUgaXMgc2V0IHdpdGggdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4g Y29tbWFuZC4KKyAgPC9wYXJhPgorCisgIDxub3RlPgorICAgPHBhcmE+CisgICAgU2Vzc2lvbiB2 YXJpYWJsZXMgY2FuIGJlIDxxdW90ZT5zaGFkb3dlZDwvcXVvdGU+IGJ5IG90aGVyIGlkZW50aWZp ZXJzLgorICAgIEZvciBkZXRhaWxzLCBzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFy aWFibGVzIi8+LgorICAgPC9wYXJhPgorICA8L25vdGU+CisgPC9yZWZzZWN0MT4KKworIDxyZWZz ZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisK KyAgIDx2YXJsaXN0ZW50cnkgIGlkPSJzcWwtY3JlYXRldmFyaWFibGUtaWYtbm90LWV4aXN0cyI+ CisgICAgPHRlcm0+PGxpdGVyYWw+SUYgTk9UIEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAg PGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIERvIG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0 aGUgbmFtZSBhbHJlYWR5IGV4aXN0cy4gQSBub3RpY2UgaXMgaXNzdWVkIGluCisgICAgICB0aGlz IGNhc2UuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1uYW1lIj4KKyAgICA8 dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSwgb3B0aW9u YWxseSBzY2hlbWEtcXVhbGlmaWVkLCBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3Rl bnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWRhdGFfdHlwZSI+CisgICAgPHRlcm0+PHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+PC90ZXJtPgor ICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSwgb3B0aW9uYWxseSBz Y2hlbWEtcXVhbGlmaWVkLCBvZiB0aGUgZGF0YSB0eXBlIG9mIHRoZSBzZXNzaW9uCisgICAgICB2 YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWNvbGxhdGUiPgor ICAgIDx0ZXJtPjxsaXRlcmFsPkNPTExBVEUgPHJlcGxhY2VhYmxlPmNvbGxhdGlvbjwvcmVwbGFj ZWFibGU+PC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAg ICAgVGhlIDxsaXRlcmFsPkNPTExBVEU8L2xpdGVyYWw+IGNsYXVzZSBhc3NpZ25zIGEgY29sbGF0 aW9uIHRvIHRoZSBzZXNzaW9uCisgICAgICB2YXJpYWJsZSAod2hpY2ggbXVzdCBiZSBvZiBhIGNv bGxhdGFibGUgZGF0YSB0eXBlKS4gIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICB0aGUgZGF0YSB0 eXBlJ3MgZGVmYXVsdCBjb2xsYXRpb24gaXMgdXNlZC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNl Y3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Tm90ZXM8L3RpdGxlPgorCisgIDxwYXJhPgor ICAgVXNlIHRoZSA8Y29tbWFuZD5EUk9QIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIHRvIHJl bW92ZSBhIHNlc3Npb24KKyAgIHZhcmlhYmxlLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKwor IDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIENy ZWF0ZSBhbiBkYXRlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46Cis8 cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBkYXRlOworPC9wcm9ncmFt bGlzdGluZz4KKyAgPC9wYXJhPgorCisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRp dGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkNS RUFURSBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCBpcyBhCisgICA8cHJvZHVjdG5hbWU+UG9z dGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+ CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxp c3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFy aWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJp YWJsZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworPC9yZWZl bnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjViZGIzNTYwZjBiCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKQEAgLTAsMCArMSwxMTcgQEAKKzwhLS0KK2Rv Yy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRp b24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1kcm9wdmFyaWFibGUiPgorIDxpbmRleHRlcm0g em9uZT0ic3FsLWRyb3B2YXJpYWJsZSI+CisgIDxwcmltYXJ5PkRST1AgVkFSSUFCTEU8L3ByaW1h cnk+CisgPC9pbmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNzaW9uIHZh cmlhYmxlPC9wcmltYXJ5PgorICA8c2Vjb25kYXJ5PnJlbW92aW5nPC9zZWNvbmRhcnk+CisgPC9p bmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+RFJPUCBWQVJJQUJMRTwv cmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5m bz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisK KyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+RFJPUCBWQVJJQUJMRTwvcmVmbmFtZT4KKyAgPHJl ZnB1cnBvc2U+cmVtb3ZlIGEgc2Vzc2lvbiB2YXJpYWJsZTwvcmVmcHVycG9zZT4KKyA8L3JlZm5h bWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitEUk9QIFZBUklBQkxFIFsg SUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPiBbLCAuLi5dIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKzwvc3lub3BzaXM+CisgPC9yZWZz eW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4K KworICA8cGFyYT4KKyAgIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8L2NvbW1hbmQ+IHJlbW92ZXMg YSBzZXNzaW9uIHZhcmlhYmxlLgorICAgQSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBvbmx5IGJlIHJl bW92ZWQgYnkgaXRzIG93bmVyIG9yIGEgc3VwZXJ1c2VyLgorICA8L3BhcmE+CisgPC9yZWZzZWN0 MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJp YWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPklGIEVYSVNU UzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIERv IG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBkb2VzIG5vdCBleGlz dC4gQSBub3RpY2UgaXMKKyAgICAgIGlzc3VlZCBpbiB0aGlzIGNhc2UuCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+ CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUs IG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCwgb2YgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFy bGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkNBU0NBREU8L2xpdGVyYWw+PC90ZXJtPgor ICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBBdXRvbWF0aWNhbGx5IGRyb3Agb2Jq ZWN0cyB0aGF0IGRlcGVuZCBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAoc3VjaCBhcworICAgICAg dmlld3MpLCBhbmQgaW4gdHVybiBhbGwgb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aG9zZSBvYmpl Y3RzCisgICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1kZXBlbmQiLz4pLgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlJFU1RSSUNUPC9saXRlcmFsPjwvdGVybT4KKyAgICA8 bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgUmVmdXNlIHRvIGRyb3AgdGhlIHNlc3Npb24g dmFyaWFibGUgaWYgYW55IG9iamVjdHMgZGVwZW5kIG9uIGl0LiAgVGhpcyBpcworICAgICAgdGhl IGRlZmF1bHQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50 cnk+CisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0 aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUbyByZW1vdmUgdGhlIHNlc3Np b24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46CisKKzxwcm9ncmFtbGlzdGluZz4K K0RST1AgVkFSSUFCTEUgdmFyMTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwvcmVmc2Vj dDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8 cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5EUk9QIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGlz IGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgor ICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNv PC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0 PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL2dyYW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKaW5kZXggOTk5ZjY1 N2Q1YzAuLmMxMTg2MGZhMjAwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sCkBAIC0xMDEsNiArMTAxLDEyIEBA IEdSQU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2Vh YmxlPiBbLCAuLi5dIFRPIDxyZXBsYWNlCiAgICAgWyBXSVRIIHsgQURNSU4gfCBJTkhFUklUIHwg U0VUIH0geyBPUFRJT04gfCBUUlVFIHwgRkFMU0UgfSBdCiAgICAgWyBHUkFOVEVEIEJZIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxl PiBdCiAKK0dSQU5UIHsgU0VMRUNUIHwgVVBEQVRFIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAg ICBPTiB7IFZBUklBQkxFIDxyZXBsYWNlYWJsZT52YXJpYWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4g WywgLi4uXQorICAgICAgIHwgQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSB9CisgICAg VE8gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVw bGFjZWFibGU+IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCisgICAgWyBHUkFOVEVEIEJZ IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxh Y2VhYmxlPiBdCisKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IGNhbiBiZTo8L3BocmFzZT4KIAogICAg IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBs YWNlYWJsZT4KQEAgLTExOSw4ICsxMjUsOCBAQCBHUkFOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBUTyA8cmVwbGFjZQogICAg dGhhdCBncmFudHMgcHJpdmlsZWdlcyBvbiBhIGRhdGFiYXNlIG9iamVjdCAodGFibGUsIGNvbHVt biwgdmlldywKICAgIGZvcmVpZ24gdGFibGUsIHNlcXVlbmNlLCBkYXRhYmFzZSwgZm9yZWlnbi1k YXRhIHdyYXBwZXIsIGZvcmVpZ24gc2VydmVyLAogICAgZnVuY3Rpb24sIHByb2NlZHVyZSwgcHJv Y2VkdXJhbCBsYW5ndWFnZSwgbGFyZ2Ugb2JqZWN0LCBjb25maWd1cmF0aW9uCi0gICBwYXJhbWV0 ZXIsIHNjaGVtYSwgdGFibGVzcGFjZSwgb3IgdHlwZSksIGFuZCBvbmUgdGhhdCBncmFudHMKLSAg IG1lbWJlcnNoaXAgaW4gYSByb2xlLiAgVGhlc2UgdmFyaWFudHMgYXJlIHNpbWlsYXIgaW4gbWFu eSB3YXlzLCBidXQKKyAgIHBhcmFtZXRlciwgc2NoZW1hLCBzZXNzaW9uIHZhcmlhYmxlLCB0YWJs ZXNwYWNlLCBvciB0eXBlKSwgYW5kIG9uZSB0aGF0CisgICBncmFudHMgbWVtYmVyc2hpcCBpbiBh IHJvbGUuICBUaGVzZSB2YXJpYW50cyBhcmUgc2ltaWxhciBpbiBtYW55IHdheXMsIGJ1dAogICAg dGhleSBhcmUgZGlmZmVyZW50IGVub3VnaCB0byBiZSBkZXNjcmliZWQgc2VwYXJhdGVseS4KICAg PC9wYXJhPgogCkBAIC0yMzYsOSArMjQyLDkgQEAgR1JBTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gVE8gPHJlcGxhY2UKICAg PHBhcmE+CiAgICBUaGVyZSBpcyBhbHNvIGFuIG9wdGlvbiB0byBncmFudCBwcml2aWxlZ2VzIG9u IGFsbCBvYmplY3RzIG9mIHRoZSBzYW1lCiAgICB0eXBlIHdpdGhpbiBvbmUgb3IgbW9yZSBzY2hl bWFzLiAgVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGN1cnJlbnRseSBzdXBwb3J0ZWQKLSAgIG9ubHkg Zm9yIHRhYmxlcywgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIGFuZCBwcm9jZWR1cmVzLiAgPGxpdGVy YWw+QUxMCi0gICBUQUJMRVM8L2xpdGVyYWw+IGFsc28gYWZmZWN0cyB2aWV3cyBhbmQgZm9yZWln biB0YWJsZXMsIGp1c3QgbGlrZSB0aGUKLSAgIHNwZWNpZmljLW9iamVjdCA8Y29tbWFuZD5HUkFO VDwvY29tbWFuZD4gY29tbWFuZC4gIDxsaXRlcmFsPkFMTAorICAgb25seSBmb3IgdGFibGVzLCBz ZXF1ZW5jZXMsIGZ1bmN0aW9ucywgcHJvY2VkdXJlcyBhbmQgdmFyaWFibGVzLgorICAgPGxpdGVy YWw+QUxMIFRBQkxFUzwvbGl0ZXJhbD4gYWxzbyBhZmZlY3RzIHZpZXdzIGFuZCBmb3JlaWduIHRh YmxlcywganVzdAorICAgbGlrZSB0aGUgc3BlY2lmaWMtb2JqZWN0IDxjb21tYW5kPkdSQU5UPC9j b21tYW5kPiBjb21tYW5kLiAgPGxpdGVyYWw+QUxMCiAgICBGVU5DVElPTlM8L2xpdGVyYWw+IGFs c28gYWZmZWN0cyBhZ2dyZWdhdGUgYW5kIHdpbmRvdyBmdW5jdGlvbnMsIGJ1dCBub3QKICAgIHBy b2NlZHVyZXMsIGFnYWluIGp1c3QgbGlrZSB0aGUgc3BlY2lmaWMtb2JqZWN0IDxjb21tYW5kPkdS QU5UPC9jb21tYW5kPgogICAgY29tbWFuZC4gIFVzZSA8bGl0ZXJhbD5BTEwgUk9VVElORVM8L2xp dGVyYWw+IHRvIGluY2x1ZGUgcHJvY2VkdXJlcy4KQEAgLTUxOCw4ICs1MjQsOCBAQCBHUkFOVCBh ZG1pbnMgVE8gam9lOwogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLSAgICBQcml2aWxlZ2VzIG9u IGRhdGFiYXNlcywgdGFibGVzcGFjZXMsIHNjaGVtYXMsIGxhbmd1YWdlcywgYW5kCi0gICAgY29u ZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGFyZQorICAgIFByaXZpbGVnZXMgb24gZGF0YWJhc2VzLCB0 YWJsZXNwYWNlcywgc2NoZW1hcywgbGFuZ3VhZ2VzLCBzZXNzaW9uIHZhcmlhYmxlcworICAgIGFu ZCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgYXJlCiAgICAgPHByb2R1Y3RuYW1lPlBvc3RncmVT UUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb25zLgogICAgPC9wYXJhPgogIDwvcmVmc2VjdDE+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggZjdjOGJjMTZhN2YuLjQ5ODljZGM3ZGRiIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9wc3FsLXJlZi5zZ21sCkBAIC0yMTM1LDYgKzIxMzUsMTkgQEAgU0VMRUNUICQxIFxwYXJzZSBz dG10MQogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAg IDx2YXJsaXN0ZW50cnkgaWQ9ImFwcC1wc3FsLW1ldGEtY29tbWFuZC1kdiI+CisgICAgICAgIDx0 ZXJtPjxsaXRlcmFsPlxkVlsrXSBbIDxsaW5rIGxpbmtlbmQ9ImFwcC1wc3FsLXBhdHRlcm5zIj48 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+PC9saW5r PiBdPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4K KyAgICAgICAgTGlzdHMgc2Vzc2lvbiB2YXJpYWJsZXMuCisgICAgICAgIElmIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4gaXMKKyAgICAgICAgc3Bl Y2lmaWVkLCBvbmx5IHNlc3Npb24gdmFyaWFibGVzIHdob3NlIG5hbWVzIG1hdGNoIHRoZSBwYXR0 ZXJuIGFyZSBsaXN0ZWQuCisgICAgICAgIElmIHRoZSBmb3JtIDxsaXRlcmFsPlxkVis8L2xpdGVy YWw+IGlzIHVzZWQsIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAgICAgICAgYWJvdXQgZWFjaCB2 YXJpYWJsZSBpcyBzaG93biwgbGlrZSAgYWNjZXNzIHByaXZpbGVnZXMgYW5kIGRlc2NyaXB0aW9u LgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3Rl bnRyeT4KKwogICAgICAgPHZhcmxpc3RlbnRyeSBpZD0iYXBwLXBzcWwtbWV0YS1jb21tYW5kLWR1 Ij4KICAgICAgICAgPHRlcm0+PGxpdGVyYWw+XGR1W1N4K10gWyA8bGluayBsaW5rZW5kPSJhcHAt cHNxbC1wYXR0ZXJucyI+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48L3Jl cGxhY2VhYmxlPjwvbGluaz4gXTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRlbT4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL3Jldm9rZS5zZ21sCmluZGV4IDhkZjQ5MjI4MWExLi43NjBmZGRiN2MyMCAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3Jl dm9rZS5zZ21sCkBAIC0xMzAsNiArMTMwLDE0IEBAIFJFVk9LRSBbIHsgQURNSU4gfCBJTkhFUklU IHwgU0VUIH0gT1BUSU9OIEZPUiBdCiAgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCiAgICAgWyBD QVNDQURFIHwgUkVTVFJJQ1QgXQogCitSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KKyAgICB7 IHsgU0VMRUNUIHwgVVBEQVRFIH0gWywgLi4uXSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAg T04geyBWQVJJQUJMRSA8cmVwbGFjZWFibGU+dmFyaWFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFss IC4uLl0KKyAgICAgICB8IEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gfQorICAgIEZS T00geyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9y ZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dCisgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBd CisgICAgWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQorCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBjYW4g YmU6PC9waHJhc2U+CiAKICAgICBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm ZXJlbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKaW5kZXggZmY4NWFjZTgz ZmMuLjI1NTc4ZjM5NDZjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBAIC03NSw2ICs3NSw3IEBACiAgICAm YWx0ZXJUeXBlOwogICAgJmFsdGVyVXNlcjsKICAgICZhbHRlclVzZXJNYXBwaW5nOworICAgJmFs dGVyVmFyaWFibGU7CiAgICAmYWx0ZXJWaWV3OwogICAgJmFuYWx5emU7CiAgICAmYmVnaW47CkBA IC0xMjcsNiArMTI4LDcgQEAKICAgICZjcmVhdGVUeXBlOwogICAgJmNyZWF0ZVVzZXI7CiAgICAm Y3JlYXRlVXNlck1hcHBpbmc7CisgICAmY3JlYXRlVmFyaWFibGU7CiAgICAmY3JlYXRlVmlldzsK ICAgICZkZWFsbG9jYXRlOwogICAgJmRlY2xhcmU7CkBAIC0xNzUsNiArMTc3LDcgQEAKICAgICZk cm9wVHlwZTsKICAgICZkcm9wVXNlcjsKICAgICZkcm9wVXNlck1hcHBpbmc7CisgICAmZHJvcFZh cmlhYmxlOwogICAgJmRyb3BWaWV3OwogICAgJmVuZDsKICAgICZleGVjdXRlOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFr ZWZpbGUKaW5kZXggYzA5MDA5NGVkMDguLjJjMjBkNjBkYjE5IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUK QEAgLTQ1LDYgKzQ1LDcgQEAgT0JKUyA9IFwKIAlwZ19zaGRlcGVuZC5vIFwKIAlwZ19zdWJzY3Jp cHRpb24ubyBcCiAJcGdfdHlwZS5vIFwKKwlwZ192YXJpYWJsZS5vIFwKIAlzdG9yYWdlLm8gXAog CXRvYXN0aW5nLm8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKaW5kZXggOWNhOGE4OGRjOTEuLjU4N2JlOGM3 MGM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKQEAgLTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJjYXRh bG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Rl ZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKQEAgLTI5MSw2ICsy OTIsOSBAQCByZXN0cmljdF9hbmRfY2hlY2tfZ3JhbnQoYm9vbCBpc19ncmFudCwgQWNsTW9kZSBh dmFpbF9nb3B0aW9ucywgYm9vbCBhbGxfcHJpdnMsCiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9B Q0w6CiAJCQl3aG9sZV9tYXNrID0gQUNMX0FMTF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJy ZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXdob2xlX21hc2sgPSBBQ0xfQUxMX1JJ R0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVu cmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLCBvYmp0eXBlKTsKIAkJCS8qIG5vdCByZWFjaGVk LCBidXQga2VlcCBjb21waWxlciBxdWlldCAqLwpAQCAtNTM1LDYgKzUzOSwxMCBAQCBFeGVjdXRl R3JhbnRTdG10KEdyYW50U3RtdCAqc3RtdCkKIAkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9S SUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlk IHByaXZpbGVnZSB0eXBlICVzIGZvciBwYXJhbWV0ZXIiKTsKIAkJCWJyZWFrOworCQljYXNlIE9C SkVDVF9WQVJJQUJMRToKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFC TEU7CisJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAl cyBmb3Igc2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9n KEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCiAJCQkJIChpbnQp IHN0bXQtPm9ianR5cGUpOwpAQCAtNjQwLDYgKzY0OCw5IEBAIEV4ZWNHcmFudFN0bXRfb2lkcyhJ bnRlcm5hbEdyYW50ICppc3RtdCkKIAkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKIAkJCUV4 ZWNHcmFudF9QYXJhbWV0ZXIoaXN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklB QkxFOgorCQkJRXhlY0dyYW50X2NvbW1vbihpc3RtdCwgVmFyaWFibGVSZWxhdGlvbklkLCBBQ0xf QUxMX1JJR0hUU19WQVJJQUJMRSwgTlVMTCk7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVs b2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGlu dCkgaXN0bXQtPm9ianR5cGUpOwpAQCAtNzYwLDYgKzc3MSwxOCBAQCBvYmplY3ROYW1lc1RvT2lk cyhPYmplY3RUeXBlIG9ianR5cGUsIExpc3QgKm9iam5hbWVzLCBib29sIGlzX2dyYW50KQogCQkJ CQlvYmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0cywgcGFyYW1ldGVySWQpOwogCQkJfQogCQkJ YnJlYWs7CisKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlmb3JlYWNoX25vZGUoUmFuZ2VW YXIsIHZhcnZhciwgb2JqbmFtZXMpCisJCQl7CisJCQkJT2lkCQkJcmVsT2lkOworCisJCQkJcmVs T2lkID0gTG9va3VwVmFyaWFibGUodmFydmFyLT5zY2hlbWFuYW1lLAorCQkJCQkJCQkJCXZhcnZh ci0+cmVsbmFtZSwKKwkJCQkJCQkJCQlmYWxzZSk7CisJCQkJb2JqZWN0cyA9IGxhcHBlbmRfb2lk KG9iamVjdHMsIHJlbE9pZCk7CisJCQl9CisJCQlicmVhazsKIAl9CiAKIAlyZXR1cm4gb2JqZWN0 czsKQEAgLTg0Niw2ICs4NjksMzIgQEAgb2JqZWN0c0luU2NoZW1hVG9PaWRzKE9iamVjdFR5cGUg b2JqdHlwZSwgTGlzdCAqbnNwbmFtZXMpCiAJCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hh cmVMb2NrKTsKIAkJCQl9CiAJCQkJYnJlYWs7CisJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJ CQl7CisJCQkJCVNjYW5LZXlEYXRhIGtleTsKKwkJCQkJUmVsYXRpb24JcmVsOworCQkJCQlUYWJs ZVNjYW5EZXNjIHNjYW47CisJCQkJCUhlYXBUdXBsZQl0dXBsZTsKKworCQkJCQlTY2FuS2V5SW5p dCgma2V5LAorCQkJCQkJCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWVzcGFjZSwKKwkJCQkJCQkJ QlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCQkJCQlPYmplY3RJZEdldERhdHVt KG5hbWVzcGFjZUlkKSk7CisKKwkJCQkJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9u SWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5fY2F0YWxv ZyhyZWwsIDEsICZrZXkpOworCisJCQkJCXdoaWxlICgodHVwbGUgPSBoZWFwX2dldG5leHQoc2Nh biwgRm9yd2FyZFNjYW5EaXJlY3Rpb24pKSAhPSBOVUxMKQorCQkJCQl7CisJCQkJCQlPaWQJCQlv aWQgPSAoKEZvcm1fcGdfcHJvYykgR0VUU1RSVUNUKHR1cGxlKSktPm9pZDsKKworCQkJCQkJb2Jq ZWN0cyA9IGxhcHBlbmRfb2lkKG9iamVjdHMsIG9pZCk7CisJCQkJCX0KKworCQkJCQl0YWJsZV9l bmRzY2FuKHNjYW4pOworCQkJCQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisJ CQkJfQorCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBzaG91bGQgbm90IGhhcHBlbiAq LwogCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwK QEAgLTEwMDksNiArMTA1OCwxMCBAQCBFeGVjQWx0ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQoUGFy c2VTdGF0ZSAqcHN0YXRlLCBBbHRlckRlZmF1bHRQcml2aWxlZ2VzU3RtdCAqcwogCQkJYWxsX3By aXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19MQVJHRU9CSkVDVDsKIAkJCWVycm9ybXNnID0gZ2V0 dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBsYXJnZSBvYmplY3QiKTsK IAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCWFsbF9wcml2aWxlZ2VzID0g QUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52 YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3Igc2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7 CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0 eXBlOiAlZCIsCiAJCQkJIChpbnQpIGFjdGlvbi0+b2JqdHlwZSk7CkBAIC0xMjA5LDYgKzEyNjIs MTEgQEAgU2V0RGVmYXVsdEFDTChJbnRlcm5hbERlZmF1bHRBQ0wgKmlhY2xzKQogCQkJaWYgKGlh Y2xzLT5hbGxfcHJpdnMgJiYgdGhpc19wcml2aWxlZ2VzID09IEFDTF9OT19SSUdIVFMpCiAJCQkJ dGhpc19wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfTEFSR0VPQkpFQ1Q7CiAJCQlicmVhazsK KwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlvYmp0eXBlID0gREVGQUNMT0JKX1ZBUklBQkxF OworCQkJaWYgKGlhY2xzLT5hbGxfcHJpdnMgJiYgdGhpc19wcml2aWxlZ2VzID09IEFDTF9OT19S SUdIVFMpCisJCQkJdGhpc19wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJ CQlicmVhazsKIAogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmpl Y3QgdHlwZTogJWQiLApAQCAtMTQ1Niw2ICsxNTE0LDkgQEAgUmVtb3ZlUm9sZUZyb21PYmplY3RB Q0woT2lkIHJvbGVpZCwgT2lkIGNsYXNzaWQsIE9pZCBvYmppZCkKIAkJCWNhc2UgREVGQUNMT0JK X0xBUkdFT0JKRUNUOgogCQkJCWlhY2xzLm9ianR5cGUgPSBPQkpFQ1RfTEFSR0VPQkpFQ1Q7CiAJ CQkJYnJlYWs7CisJCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCQlpYWNscy5vYmp0eXBl ID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBTaG91 bGRuJ3QgZ2V0IGhlcmUgKi8KIAkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBkZWZhdWx0IEFD TCB0eXBlOiAlZCIsCkBAIC0xNTE2LDYgKzE1NzcsOSBAQCBSZW1vdmVSb2xlRnJvbU9iamVjdEFD TChPaWQgcm9sZWlkLCBPaWQgY2xhc3NpZCwgT2lkIG9iamlkKQogCQkJY2FzZSBQYXJhbWV0ZXJB Y2xSZWxhdGlvbklkOgogCQkJCWlzdG10Lm9ianR5cGUgPSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDsK IAkJCQlicmVhazsKKwkJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJCWlzdG10Lm9ianR5 cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCWVsb2co RVJST1IsICJ1bmV4cGVjdGVkIG9iamVjdCBjbGFzcyAldSIsIGNsYXNzaWQpOwogCQkJCWJyZWFr OwpAQCAtMjc0OSw2ICsyODEzLDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwg T2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJCQkJbXNnID0g Z2V0dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgdHlwZSAlcyIpOwogCQkJCQkJYnJl YWs7CisJCQkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29w KCJwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAlcyIpOworCQkJCQkJYnJl YWs7CiAJCQkJCWNhc2UgT0JKRUNUX1ZJRVc6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBl cm1pc3Npb24gZGVuaWVkIGZvciB2aWV3ICVzIik7CiAJCQkJCQlicmVhazsKQEAgLTI4NjAsNiAr MjkyNyw5IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2Jq dHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgi bXVzdCBiZSBvd25lciBvZiB0eXBlICVzIik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpF Q1RfVkFSSUFCTEU6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2Yg c2Vzc2lvbiB2YXJpYWJsZSAlcyIpOworCQkJCQkJYnJlYWs7CiAJCQkJCWNhc2UgT0JKRUNUX1ZJ RVc6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2YgdmlldyAlcyIp OwogCQkJCQkJYnJlYWs7CkBAIC0zMDA4LDYgKzMwNzgsOCBAQCBwZ19hY2xtYXNrKE9iamVjdFR5 cGUgb2JqdHlwZSwgT2lkIG9iamVjdF9vaWQsIEF0dHJOdW1iZXIgYXR0bnVtLCBPaWQgcm9sZWlk LAogCQkJcmV0dXJuIEFDTF9OT19SSUdIVFM7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQlyZXR1 cm4gb2JqZWN0X2FjbG1hc2soVHlwZVJlbGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVpZCwgbWFz aywgaG93KTsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gb2JqZWN0X2FjbG1h c2soVmFyaWFibGVSZWxhdGlvbklkLCBvYmplY3Rfb2lkLCByb2xlaWQsIG1hc2ssIGhvdyk7CiAJ CWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIs CiAJCQkJIChpbnQpIG9ianR5cGUpOwpAQCAtNDI3MSw2ICs0MzQzLDEwIEBAIGdldF91c2VyX2Rl ZmF1bHRfYWNsKE9iamVjdFR5cGUgb2JqdHlwZSwgT2lkIG93bmVySWQsIE9pZCBuc3Bfb2lkKQog CQkJZGVmYWNsb2JqdHlwZSA9IERFRkFDTE9CSl9MQVJHRU9CSkVDVDsKIAkJCWJyZWFrOwogCisJ CWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJZGVmYWNsb2JqdHlwZSA9IERFRkFDTE9CSl9WQVJJ QUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQlyZXR1cm4gTlVMTDsKIAl9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvZGVwZW5kZW5jeS5jCmluZGV4IDE4MzE2YTM5NjhiLi45ZTBmNjQ4Yjc0ZiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9kZXBlbmRlbmN5LmMKQEAgLTY1LDEyICs2NSwxNCBAQAogI2luY2x1ZGUgImNhdGFs b2cvcGdfdHNfdGVtcGxhdGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3VzZXJfbWFwcGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFy aWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb21tZW50LmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL2V4dGVuc2lvbi5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3BvbGljeS5oIgog I2luY2x1ZGUgImNvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oIgorI2luY2x1ZGUgImNvbW1hbmRz L3NjaGVtYWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZWNsYWJlbC5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL3NlcXVlbmNlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgpAQCAt MTQ0NCw2ICsxNDQ2LDEwIEBAIGRvRGVsZXRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0 LCBpbnQgZmxhZ3MpCiAJCQlSZW1vdmVQdWJsaWNhdGlvbkJ5SWQob2JqZWN0LT5vYmplY3RJZCk7 CiAJCQlicmVhazsKIAorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCURyb3BWYXJpYWJs ZUJ5SWQob2JqZWN0LT5vYmplY3RJZCk7CisJCQlicmVhazsKKwogCQljYXNlIENhc3RSZWxhdGlv bklkOgogCQljYXNlIENvbGxhdGlvblJlbGF0aW9uSWQ6CiAJCWNhc2UgQ29udmVyc2lvblJlbGF0 aW9uSWQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZAppbmRleCAxOTU4ZWE5MjM4YS4uZWQ0NGM4Nzdm Y2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZApAQCAtMzIsNiArMzIsNyBAQCBiYWNrZW5kX3Nv dXJjZXMgKz0gZmlsZXMoCiAgICdwZ19zaGRlcGVuZC5jJywKICAgJ3BnX3N1YnNjcmlwdGlvbi5j JywKICAgJ3BnX3R5cGUuYycsCisgICdwZ192YXJpYWJsZS5jJywKICAgJ3N0b3JhZ2UuYycsCiAg ICd0b2FzdGluZy5jJywKICkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNw YWNlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCmluZGV4IGQ5N2Q2MzJhN2Vm Li40MzA3Y2FkMTVjNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2Uu YworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC00MSw2ICs0MSw3IEBA CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19wYXJzZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3RzX3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIK ICNpbmNsdWRlICJjb21tb24vaGFzaGZuX3Vuc3RhYmxlLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5o IgpAQCAtMjI1LDYgKzIyNiw3IEBAIHN0YXRpYyBib29sIFRTUGFyc2VySXNWaXNpYmxlRXh0KE9p ZCBwcnNJZCwgYm9vbCAqaXNfbWlzc2luZyk7CiBzdGF0aWMgYm9vbCBUU0RpY3Rpb25hcnlJc1Zp c2libGVFeHQoT2lkIGRpY3RJZCwgYm9vbCAqaXNfbWlzc2luZyk7CiBzdGF0aWMgYm9vbCBUU1Rl bXBsYXRlSXNWaXNpYmxlRXh0KE9pZCB0bXBsSWQsIGJvb2wgKmlzX21pc3NpbmcpOwogc3RhdGlj IGJvb2wgVFNDb25maWdJc1Zpc2libGVFeHQoT2lkIGNmZ2lkLCBib29sICppc19taXNzaW5nKTsK K3N0YXRpYyBib29sIFZhcmlhYmxlSXNWaXNpYmxlRXh0KE9pZCB2YXJpZCwgYm9vbCAqaXNfbWlz c2luZyk7CiBzdGF0aWMgdm9pZCByZWNvbXB1dGVOYW1lc3BhY2VQYXRoKHZvaWQpOwogc3RhdGlj IHZvaWQgQWNjZXNzVGVtcFRhYmxlTmFtZXNwYWNlKGJvb2wgZm9yY2UpOwogc3RhdGljIHZvaWQg SW5pdFRlbXBUYWJsZU5hbWVzcGFjZSh2b2lkKTsKQEAgLTk4Niw2ICs5ODgsODQgQEAgUmVsYXRp b25Jc1Zpc2libGVFeHQoT2lkIHJlbGlkLCBib29sICppc19taXNzaW5nKQogCXJldHVybiB2aXNp YmxlOwogfQogCisvKgorICogVmFyaWFibGVJc1Zpc2libGUKKyAqCQlEZXRlcm1pbmUgd2hldGhl ciBhIHZhcmlhYmxlIChpZGVudGlmaWVkIGJ5IE9JRCkgaXMgdmlzaWJsZSBpbiB0aGUKKyAqCQlj dXJyZW50IHNlYXJjaCBwYXRoLiBWaXNpYmxlIG1lYW5zICJ3b3VsZCBiZSBmb3VuZCBieSBzZWFy Y2hpbmcKKyAqCQlmb3IgdGhlIHVucXVhbGlmaWVkIHZhcmlhYmxlIG5hbWUiLgorICovCitib29s CitWYXJpYWJsZUlzVmlzaWJsZShPaWQgdmFyaWQpCit7CisJcmV0dXJuIFZhcmlhYmxlSXNWaXNp YmxlRXh0KHZhcmlkLCBOVUxMKTsKK30KKworLyoKKyAqIFZhcmlhYmxlSXNWaXNpYmxlRXh0Cisg KgkJQXMgYWJvdmUsIGJ1dCBpZiB0aGUgdmFyaWFibGUgaXNuJ3QgZm91bmQgYW5kIGlzX21pc3Np bmcgaXMgbm90IE5VTEwsCisgKgkJdGhlbiBzZXQgKmlzX21pc3NpbmcgPSB0cnVlIGFuZCByZXR1 cm4gZmFsc2UsIGluc3RlYWQgb2YgdGhyb3dpbmcKKyAqCQlhbiBlcnJvci4gKENhbGxlciBtdXN0 IGluaXRpYWxpemUgKmlzX21pc3NpbmcgPSBmYWxzZS4pCisgKi8KK3N0YXRpYyBib29sCitWYXJp YWJsZUlzVmlzaWJsZUV4dChPaWQgdmFyaWQsIGJvb2wgKmlzX21pc3NpbmcpCit7CisJSGVhcFR1 cGxlCXZhcnR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJT2lkCQkJdmFybmFtZXNw YWNlOworCWJvb2wJCXZpc2libGU7CisKKwl2YXJ0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFC TEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQo dmFydHVwKSkKKwl7CisJCWlmIChpc19taXNzaW5nICE9IE5VTEwpCisJCXsKKwkJCSppc19taXNz aW5nID0gdHJ1ZTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJCWVsb2coRVJST1IsICJjYWNo ZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCX0KKwl2 YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh2YXJ0dXApOworCisJcmVjb21w dXRlTmFtZXNwYWNlUGF0aCgpOworCisJLyoKKwkgKiBRdWljayBjaGVjazogaWYgaXQgYWluJ3Qg aW4gdGhlIHBhdGggYXQgYWxsLCBpdCBhaW4ndCB2aXNpYmxlLiBXZQorCSAqIGRvbid0IGV4cGVj dCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGUgc3lzdGVtIG5hbWVzcGFjZS4KKwkg Ki8KKwl2YXJuYW1lc3BhY2UgPSB2YXJmb3JtLT52YXJuYW1lc3BhY2U7CisJaWYgKCFsaXN0X21l bWJlcl9vaWQoYWN0aXZlU2VhcmNoUGF0aCwgdmFybmFtZXNwYWNlKSkKKwkJdmlzaWJsZSA9IGZh bHNlOworCWVsc2UKKwl7CisJCS8qCisJCSAqIElmIGl0IGlzIGluIHRoZSBwYXRoLCBpdCBtaWdo dCBzdGlsbCBub3QgYmUgdmlzaWJsZTsgaXQgY291bGQgYmUKKwkJICogaGlkZGVuIGJ5IGFub3Ro ZXIgdmFyaWFibGUgb2YgdGhlIHNhbWUgbmFtZSBlYXJsaWVyIGluIHRoZSBwYXRoLiBTbworCQkg KiB3ZSBtdXN0IGRvIGEgc2xvdyBjaGVjayBmb3IgY29uZmxpY3RpbmcgcmVsYXRpb25zLgorCQkg Ki8KKwkJY2hhcgkgICAqdmFybmFtZSA9IE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSk7CisKKwkJ dmlzaWJsZSA9IGZhbHNlOworCQlmb3JlYWNoX29pZChuYW1lc3BhY2VJZCwgYWN0aXZlU2VhcmNo UGF0aCkKKwkJeworCQkJaWYgKG5hbWVzcGFjZUlkID09IHZhcm5hbWVzcGFjZSkKKwkJCXsKKwkJ CQkvKiBmb3VuZCBpdCBmaXJzdCBpbiBwYXRoICovCisJCQkJdmlzaWJsZSA9IHRydWU7CisJCQkJ YnJlYWs7CisJCQl9CisJCQlpZiAoT2lkSXNWYWxpZChnZXRfdmFybmFtZV92YXJpZCh2YXJuYW1l LCBuYW1lc3BhY2VJZCkpKQorCQkJeworCQkJCS8qIGZvdW5kIHNvbWV0aGluZyBlbHNlIGZpcnN0 IGluIHBhdGggKi8KKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKworCVJlbGVhc2VTeXNDYWNo ZSh2YXJ0dXApOworCisJcmV0dXJuIHZpc2libGU7Cit9CiAKIC8qCiAgKiBUeXBlbmFtZUdldFR5 cGlkCkBAIC0zMjg5LDYgKzMzNjksMTMzIEBAIFRTQ29uZmlnSXNWaXNpYmxlRXh0KE9pZCBjZmdp ZCwgYm9vbCAqaXNfbWlzc2luZykKIAlyZXR1cm4gdmlzaWJsZTsKIH0KIAorLyoKKyAqIFJldHVy bnMgb2lkIG9mIHNlc3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IHBvc3NpYmx5IHF1YWxpZmll ZCBpZGVudGlmaWVyLgorICoKKyAqIElmIG5vdCBmb3VuZCwgcmV0dXJucyBJbnZhbGlkT2lkIGlm IG1pc3Npbmdfb2ssIGVsc2UgdGhyb3dzIGVycm9yLgorICovCitPaWQKK0xvb2t1cFZhcmlhYmxl KGNvbnN0IGNoYXIgKm5zcG5hbWUsCisJCQkgICBjb25zdCBjaGFyICp2YXJuYW1lLAorCQkJICAg Ym9vbCBtaXNzaW5nX29rKQoreworCU9pZAkJCXZhcm9pZCA9IEludmFsaWRPaWQ7CisKKwlpZiAo bnNwbmFtZSkKKwl7CisJCU9pZCBuYW1lc3BhY2VJZCA9IExvb2t1cEV4cGxpY2l0TmFtZXNwYWNl KG5zcG5hbWUsIG1pc3Npbmdfb2spOworCisJCS8qIGlmIG5zcG5hbWUgaXMgYSBrbm93biBuYW1l c3BhY2UsIHRoZSB2YXJpYWJsZSBtdXN0IGJlIHRoZXJlICovCisJCWlmIChPaWRJc1ZhbGlkKG5h bWVzcGFjZUlkKSkKKwkJeworCQkJdmFyb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFZBUklBQkxFTkFN RU5TUCwgQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCQkJCQkJCQkgUG9pbnRlckdldERhdHVtKHZh cm5hbWUpLAorCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKwkJfQor CX0KKwllbHNlCisJeworCQkvKiBpdGVyYXRlIG92ZXIgdGhlIHNjaGVtYXMgb24gdGhlIHNlYXJj aF9wYXRoICovCisJCXJlY29tcHV0ZU5hbWVzcGFjZVBhdGgoKTsKKworCQlmb3JlYWNoX29pZChu YW1lc3BhY2VJZCwgYWN0aXZlU2VhcmNoUGF0aCkKKwkJeworCQkJdmFyb2lkID0gR2V0U3lzQ2Fj aGVPaWQyKFZBUklBQkxFTkFNRU5TUCwgQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCQkJCQkJCQkg UG9pbnRlckdldERhdHVtKHZhcm5hbWUpLAorCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0obmFt ZXNwYWNlSWQpKTsKKworCQkJaWYgKE9pZElzVmFsaWQodmFyb2lkKSkKKwkJCQlicmVhazsKKwkJ fQorCX0KKworCWlmICghT2lkSXNWYWxpZCh2YXJvaWQpICYmICFtaXNzaW5nX29rKQorCXsKKwkJ aWYgKG5zcG5hbWUpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNc IiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkJbnNwbmFtZSwgdmFybmFtZSkpKTsKKwkJZWxzZQor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNU KSwKKwkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgZG9lcyBub3QgZXhpc3Qi LAorCQkJCQkJCXZhcm5hbWUpKSk7CisJfQorCisJcmV0dXJuIHZhcm9pZDsKK30KKworLyoKKyAq IFJldHVybnMgb2lkIG9mIHNlc3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IHBvc3NpYmx5IHF1 YWxpZmllZCBpZGVudGlmaWVyCisgKgorICogSWYgbm90IGZvdW5kLCByZXR1cm5zIEludmFsaWRP aWQgaWYgbWlzc2luZ19vaywgZWxzZSB0aHJvd3MgZXJyb3IuCisgKi8KK09pZAorTG9va3VwVmFy aWFibGVGcm9tTmFtZUxpc3QoTGlzdCAqbmFtZXMsCisJCQkJCQkgICBib29sIG1pc3Npbmdfb2sp Cit7CisJY2hhcgkgICAqY2F0bmFtZSA9IE5VTEw7CisJY2hhcgkgICAqbnNwbmFtZSA9IE5VTEw7 CisJY2hhcgkgICAqdmFybmFtZSA9IE5VTEw7CisKKwlzd2l0Y2ggKGxpc3RfbGVuZ3RoKG5hbWVz KSkKKwl7CisJCWNhc2UgMToKKwkJCXZhcm5hbWUgPSBzdHJWYWwobGluaXRpYWwobmFtZXMpKTsK KwkJCWJyZWFrOworCQljYXNlIDI6CisJCQluc3BuYW1lID0gc3RyVmFsKGxpbml0aWFsKG5hbWVz KSk7CisJCQl2YXJuYW1lID0gc3RyVmFsKGxzZWNvbmQobmFtZXMpKTsKKwkJCWJyZWFrOworCQlj YXNlIDM6CisJCQljYXRuYW1lID0gc3RyVmFsKGxpbml0aWFsKG5hbWVzKSk7CisJCQluc3BuYW1l ID0gc3RyVmFsKGxzZWNvbmQobmFtZXMpKTsKKwkJCXZhcm5hbWUgPSBzdHJWYWwobHRoaXJkKG5h bWVzKSk7CisKKwkJCS8qIGNoZWNrIGNhdGFsb2cgbmFtZSAqLworCQkJaWYgKHN0cmNtcChjYXRu YW1lLCBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKSAhPSAwKQorCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJ CQkJCQkgZXJybXNnKCJjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50 ZWQ6ICVzIiwKKwkJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQlicmVhazsK KwkJZGVmYXVsdDoKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lO VEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiaW1wcm9wZXIgc2Vzc2lvbiB2YXJpYWJsZSBuYW1l ICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAlcyIsCisJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhu YW1lcykpKSk7CisJCQlicmVhazsKKwl9CisKKwlyZXR1cm4gTG9va3VwVmFyaWFibGUobnNwbmFt ZSwgdmFybmFtZSwgbWlzc2luZ19vayk7Cit9CisKKy8qCisgKiBUaGUgaW5wdXQgbGlzdCBjb250 YWlucyBuYW1lcyB3aXRoIGluZGlyZWN0aW9uIGV4cHJlc3Npb25zIHVzZWQgYXMgdGhlIGxlZnQK KyAqIHBhcnQgb2YgTEVUIHN0YXRlbWVudC4gVGhlIGZvbGxvd2luZyByb3V0aW5lIHJldHVybnMg YSBuZXcgbGlzdCB3aXRoIG9ubHkKKyAqIGluaXRpYWwgc3RyaW5ncyAobmFtZXMpIC0gd2l0aG91 dCBpbmRpcmVjdGlvbiBleHByZXNzaW9ucy4KKyAqLworTGlzdCAqCitOYW1lc0Zyb21MaXN0KExp c3QgKm5hbWVzKQoreworCUxpc3RDZWxsICAgKmw7CisJTGlzdAkgICAqcmVzdWx0ID0gTklMOwor CisJZm9yZWFjaChsLCBuYW1lcykKKwl7CisJCU5vZGUJICAgKm4gPSBsZmlyc3QobCk7CisKKwkJ aWYgKElzQShuLCBTdHJpbmcpKQorCQl7CisJCQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwgbik7 CisJCX0KKwkJZWxzZQorCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KIAogLyoK ICAqIERlY29uc3RydWN0UXVhbGlmaWVkTmFtZQpAQCAtNTA4NSwzICs1MjkyLDE3IEBAIHBnX2lz X290aGVyX3RlbXBfc2NoZW1hKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlQR19SRVRVUk5fQk9PTChp c090aGVyVGVtcE5hbWVzcGFjZShvaWQpKTsKIH0KKworRGF0dW0KK3BnX3ZhcmlhYmxlX2lzX3Zp c2libGUoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlvaWQgPSBQR19HRVRBUkdfT0lEKDAp OworCWJvb2wJCXJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFsc2U7CisKKwlyZXN1bHQg PSBWYXJpYWJsZUlzVmlzaWJsZUV4dChvaWQsICZpc19taXNzaW5nKTsKKworCWlmIChpc19taXNz aW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCVBHX1JFVFVSTl9CT09MKHJlc3VsdCk7Cit9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCmluZGV4IGI2M2ZkNTdkYzA0Li40NDQ4OTJhZDZi YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKQEAgLTYyLDYgKzYyLDcgQEAKICNp bmNsdWRlICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 eXBlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ191c2VyX21hcHBpbmcuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgog I2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3Ry aWdnZXIuaCIKQEAgLTYzNiw2ICs2MzcsMjAgQEAgc3RhdGljIGNvbnN0IE9iamVjdFByb3BlcnR5 VHlwZSBPYmplY3RQcm9wZXJ0eVtdID0KIAkJT0JKRUNUX1VTRVJfTUFQUElORywKIAkJZmFsc2UK IAl9LAorCXsKKwkJInNlc3Npb24gdmFyaWFibGUiLAorCQlWYXJpYWJsZVJlbGF0aW9uSWQsCisJ CVZhcmlhYmxlT2lkSW5kZXhJZCwKKwkJVkFSSUFCTEVPSUQsCisJCVZBUklBQkxFTkFNRU5TUCwK KwkJQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCUFudW1fcGdfdmFyaWFibGVfdmFybmFtZSwKKwkJ QW51bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UsCisJCUFudW1fcGdfdmFyaWFibGVfdmFyb3du ZXIsCisJCUFudW1fcGdfdmFyaWFibGVfdmFyYWNsLAorCQlPQkpFQ1RfVkFSSUFCTEUsCisJCXRy dWUKKwl9CiB9OwogCiAvKgpAQCAtODMxLDYgKzg0Niw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg b2JqZWN0X3R5cGVfbWFwCiAJfSwKIAl7CiAJCSJzdGF0aXN0aWNzIG9iamVjdCIsIE9CSkVDVF9T VEFUSVNUSUNfRVhUCisJfSwKKwl7CisJCSJzZXNzaW9uIHZhcmlhYmxlIiwgT0JKRUNUX1ZBUklB QkxFCiAJfQogfTsKIApAQCAtODU2LDYgKzg3NCw3IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdl dF9vYmplY3RfYWRkcmVzc19hdHRyZGVmKE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJCQkJCQkJ CWJvb2wgbWlzc2luZ19vayk7CiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJl c3NfdHlwZShPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCQkJCQkJCSBUeXBlTmFtZSAqdHlwZW5h bWUsIGJvb2wgbWlzc2luZ19vayk7CitzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2Fk ZHJlc3NfdmFyaWFibGUoTGlzdCAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spOwogc3RhdGljIE9i amVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX29wY2YoT2JqZWN0VHlwZSBvYmp0eXBlLCBM aXN0ICpvYmplY3QsCiAJCQkJCQkJCQkJCSBib29sIG1pc3Npbmdfb2spOwogc3RhdGljIE9iamVj dEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX29wZl9tZW1iZXIoT2JqZWN0VHlwZSBvYmp0eXBl LApAQCAtMTEyNyw2ICsxMTQ2LDkgQEAgZ2V0X29iamVjdF9hZGRyZXNzKE9iamVjdFR5cGUgb2Jq dHlwZSwgTm9kZSAqb2JqZWN0LAogCQkJCQkJCQkJCQkJCQkJIG1pc3Npbmdfb2spOwogCQkJCWFk ZHJlc3Mub2JqZWN0U3ViSWQgPSAwOwogCQkJCWJyZWFrOworCQkJY2FzZSBPQkpFQ1RfVkFSSUFC TEU6CisJCQkJYWRkcmVzcyA9IGdldF9vYmplY3RfYWRkcmVzc192YXJpYWJsZShjYXN0Tm9kZShM aXN0LCBvYmplY3QpLCBtaXNzaW5nX29rKTsKKwkJCQlicmVhazsKIAkJCQkvKiBubyBkZWZhdWx0 LCB0byBsZXQgY29tcGlsZXIgd2FybiBhYm91dCBtaXNzaW5nIGNhc2UgKi8KIAkJfQogCkBAIC0y MDA4LDE3ICsyMDMwLDIxIEBAIGdldF9vYmplY3RfYWRkcmVzc19kZWZhY2woTGlzdCAqb2JqZWN0 LCBib29sIG1pc3Npbmdfb2spCiAJCWNhc2UgREVGQUNMT0JKX0xBUkdFT0JKRUNUOgogCQkJb2Jq dHlwZV9zdHIgPSAibGFyZ2Ugb2JqZWN0cyI7CiAJCQlicmVhazsKKwkJY2FzZSBERUZBQ0xPQkpf VkFSSUFCTEU6CisJCQlvYmp0eXBlX3N0ciA9ICJ2YXJpYWJsZXMiOworCQkJYnJlYWs7CiAJCWRl ZmF1bHQ6CiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURf UEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkJIGVycm1zZygidW5yZWNvZ25pemVkIGRlZmF1bHQgQUNM IG9iamVjdCB0eXBlIFwiJWNcIiIsIG9ianR5cGUpLAotCQkJCQkgZXJyaGludCgiVmFsaWQgb2Jq ZWN0IHR5cGVzIGFyZSBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIl Y1wiLiIsCisJCQkJCSBlcnJoaW50KCJWYWxpZCBvYmplY3QgdHlwZXMgYXJlIFwiJWNcIiwgXCIl Y1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIi4iLAogCQkJCQkJCSBE RUZBQ0xPQkpfUkVMQVRJT04sCiAJCQkJCQkJIERFRkFDTE9CSl9TRVFVRU5DRSwKIAkJCQkJCQkg REVGQUNMT0JKX0ZVTkNUSU9OLAogCQkJCQkJCSBERUZBQ0xPQkpfVFlQRSwKIAkJCQkJCQkgREVG QUNMT0JKX05BTUVTUEFDRSwKLQkJCQkJCQkgREVGQUNMT0JKX0xBUkdFT0JKRUNUKSkpOworCQkJ CQkJCSBERUZBQ0xPQkpfTEFSR0VPQkpFQ1QsCisJCQkJCQkJIERFRkFDTE9CSl9WQVJJQUJMRSkp KTsKIAl9CiAKIAkvKgpAQCAtMjEwMiw2ICsyMTI4LDI0IEBAIHRleHRhcnJheV90b19zdHJ2YWx1 ZWxpc3QoQXJyYXlUeXBlICphcnIpCiAJcmV0dXJuIGxpc3Q7CiB9CiAKKy8qCisgKiBGaW5kIHRo ZSBPYmplY3RBZGRyZXNzIGZvciBhIHNlc3Npb24gdmFyaWFibGUKKyAqLworc3RhdGljIE9iamVj dEFkZHJlc3MKK2dldF9vYmplY3RfYWRkcmVzc192YXJpYWJsZShMaXN0ICpvYmplY3QsIGJvb2wg bWlzc2luZ19vaykKK3sKKwlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CisJY2hhcgkgICAqbnNwbmFt ZSA9IE5VTEw7CisJY2hhcgkgICAqdmFybmFtZSA9IE5VTEw7CisKKwlPYmplY3RBZGRyZXNzU2V0 KGFkZHJlc3MsIFZhcmlhYmxlUmVsYXRpb25JZCwgSW52YWxpZE9pZCk7CisKKwlEZWNvbnN0cnVj dFF1YWxpZmllZE5hbWUob2JqZWN0LCAmbnNwbmFtZSwgJnZhcm5hbWUpOworCWFkZHJlc3Mub2Jq ZWN0SWQgPSBMb29rdXBWYXJpYWJsZShuc3BuYW1lLCB2YXJuYW1lLCBtaXNzaW5nX29rKTsKKwor CXJldHVybiBhZGRyZXNzOworfQorCiAvKgogICogU1FMLWNhbGxhYmxlIHZlcnNpb24gb2YgZ2V0 X29iamVjdF9hZGRyZXNzCiAgKi8KQEAgLTIyOTYsNiArMjM0MCw3IEBAIHBnX2dldF9vYmplY3Rf YWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQljYXNlIE9CSkVDVF9UQUJDT05TVFJBSU5UOgog CQljYXNlIE9CSkVDVF9PUENMQVNTOgogCQljYXNlIE9CSkVDVF9PUEZBTUlMWToKKwkJY2FzZSBP QkpFQ1RfVkFSSUFCTEU6CiAJCQlvYmpub2RlID0gKE5vZGUgKikgbmFtZTsKIAkJCWJyZWFrOwog CQljYXNlIE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgpAQCAtMjQ2Nyw2ICsyNTEyLDcgQEAgY2hlY2tf b2JqZWN0X293bmVyc2hpcChPaWQgcm9sZWlkLCBPYmplY3RUeXBlIG9ianR5cGUsIE9iamVjdEFk ZHJlc3MgYWRkcmVzcywKIAkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJY2FzZSBPQkpF Q1RfVFNESUNUSU9OQVJZOgogCQljYXNlIE9CSkVDVF9UU0NPTkZJR1VSQVRJT046CisJCWNhc2Ug T0JKRUNUX1ZBUklBQkxFOgogCQkJaWYgKCFvYmplY3Rfb3duZXJjaGVjayhhZGRyZXNzLmNsYXNz SWQsIGFkZHJlc3Mub2JqZWN0SWQsIHJvbGVpZCkpCiAJCQkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hF Q0tfTk9UX09XTkVSLCBvYmp0eXBlLAogCQkJCQkJCSAgIE5hbWVMaXN0VG9TdHJpbmcoY2FzdE5v ZGUoTGlzdCwgb2JqZWN0KSkpOwpAQCAtMzQ5Niw2ICszNTQyLDMyIEBAIGdldE9iamVjdERlc2Ny aXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJ CWJyZWFrOwogCQkJfQogCisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJeworCQkJCWNo YXIJICAgKm5zcG5hbWU7CisJCQkJSGVhcFR1cGxlCXR1cDsKKwkJCQlGb3JtX3BnX3ZhcmlhYmxl IHZhcmZvcm07CisKKwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVj dElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxp ZCh0dXApKQorCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lv biB2YXJpYWJsZSAldSIsCisJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisKKwkJCQl2YXJmb3Jt ID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJCQkJaWYgKFZhcmlhYmxl SXNWaXNpYmxlKG9iamVjdC0+b2JqZWN0SWQpKQorCQkJCQluc3BuYW1lID0gTlVMTDsKKwkJCQll bHNlCisJCQkJCW5zcG5hbWUgPSBnZXRfbmFtZXNwYWNlX25hbWUodmFyZm9ybS0+dmFybmFtZXNw YWNlKTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgXygic2Vzc2lvbiB2YXJpYWJs ZSAlcyIpLAorCQkJCQkJCQkgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIobnNwbmFtZSwKKwkJ CQkJCQkJCQkJCQkJCU5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSkpKTsKKworCQkJCVJlbGVhc2VT eXNDYWNoZSh0dXApOworCQkJCWJyZWFrOworCQkJfQorCiAJCWNhc2UgVFNQYXJzZXJSZWxhdGlv bklkOgogCQkJewogCQkJCUhlYXBUdXBsZQl0dXA7CkBAIC0zODU0LDYgKzM5MjYsMTYgQEAgZ2V0 T2JqZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Np bmdfb2spCiAJCQkJCQkJCQkJIF8oImRlZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgbGFyZ2Ugb2Jq ZWN0cyBiZWxvbmdpbmcgdG8gcm9sZSAlcyIpLAogCQkJCQkJCQkJCSByb2xlbmFtZSk7CiAJCQkJ CQlicmVhazsKKwkJCQkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQkJCQlpZiAobnNwbmFt ZSkKKwkJCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsCisJCQkJCQkJCQkJCSBfKCJkZWZh dWx0IHByaXZpbGVnZXMgb24gbmV3IHNlc3Npb24gdmFyaWFibGVzIGJlbG9uZ2luZyB0byByb2xl ICVzIGluIHNjaGVtYSAlcyIpLAorCQkJCQkJCQkJCQkgcm9sZW5hbWUsIG5zcG5hbWUpOworCQkJ CQkJZWxzZQorCQkJCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwKKwkJCQkJCQkJCQkJIF8o ImRlZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgc2Vzc2lvbiB2YXJpYWJsZXMgYmVsb25naW5nIHRv IHJvbGUgJXMiKSwKKwkJCQkJCQkJCQkJIHJvbGVuYW1lKTsKKwkJCQkJCWJyZWFrOwogCQkJCQlk ZWZhdWx0OgogCQkJCQkJLyogc2hvdWxkbid0IGdldCBoZXJlICovCiAJCQkJCQlpZiAobnNwbmFt ZSkKQEAgLTQ2NzAsNiArNDc1MiwxMCBAQCBnZXRPYmplY3RUeXBlRGVzY3JpcHRpb24oY29uc3Qg T2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQlhcHBlbmRTdHJpbmdJ bmZvU3RyaW5nKCZidWZmZXIsICJ0cmFuc2Zvcm0iKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVmFy aWFibGVSZWxhdGlvbklkOgorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAic2Vz c2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1Is ICJ1bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1Iiwgb2JqZWN0LT5jbGFzc0lkKTsKIAl9CkBA IC01NzgwLDYgKzU4NjYsMTAgQEAgZ2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhjb25zdCBPYmplY3RB ZGRyZXNzICpvYmplY3QsCiAJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsCiAJ CQkJCQkJCQkJCSAgICIgb24gbGFyZ2Ugb2JqZWN0cyIpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNh c2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVm ZmVyLAorCQkJCQkJCQkJCQkgICAiIG9uIHNlc3Npb24gdmFyaWFibGVzIik7CisJCQkJCQlicmVh azsKIAkJCQl9CiAKIAkJCQlpZiAob2JqbmFtZSkKQEAgLTYwMjAsNiArNjExMCwzMyBAQCBnZXRP YmplY3RJZGVudGl0eVBhcnRzKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwKIAkJCX0KIAkJ CWJyZWFrOwogCisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJeworCQkJCWNoYXIJICAg KnNjaGVtYTsKKwkJCQljaGFyCSAgICp2YXJuYW1lOworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJ Rm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZB UklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAo IUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBm YWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLAorCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQp OworCisJCQkJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKwor CQkJCXNjaGVtYSA9IGdldF9uYW1lc3BhY2VfbmFtZV9vcl90ZW1wKHZhcmZvcm0tPnZhcm5hbWVz cGFjZSk7CisJCQkJdmFybmFtZSA9IE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSk7CisKKwkJCQlh cHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsICIlcyIsCisJCQkJCQkJCSBxdW90ZV9xdWFsaWZpZWRf aWRlbnRpZmllcihzY2hlbWEsIHZhcm5hbWUpKTsKKworCQkJCWlmIChvYmpuYW1lKQorCQkJCQkq b2JqbmFtZSA9IGxpc3RfbWFrZTIoc2NoZW1hLCBwc3RyZHVwKHZhcm5hbWUpKTsKKworCQkJCVJl bGVhc2VTeXNDYWNoZSh0dXApOworCQkJCWJyZWFrOworCQkJfQorCiAJCWRlZmF1bHQ6CiAJCQll bG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IGNsYXNzOiAldSIsIG9iamVjdC0+Y2xhc3NJ ZCk7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jCmluZGV4IDUzNjE5MTI4NGU4Li5jNmZk MWZhMDc0ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jCisr KyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYwpAQCAtNDYsNiArNDYsNyBAQAog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfZGljdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlw ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgpA QCAtMTcxNCw2ICsxNzE1LDcgQEAgc2hkZXBSZWFzc2lnbk93bmVkX093bmVyKEZvcm1fcGdfc2hk ZXBlbmQgc2RlcEZvcm0sIE9pZCBuZXdyb2xlKQogCQljYXNlIERhdGFiYXNlUmVsYXRpb25JZDoK IAkJY2FzZSBUU0NvbmZpZ1JlbGF0aW9uSWQ6CiAJCWNhc2UgVFNEaWN0aW9uYXJ5UmVsYXRpb25J ZDoKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CiAJCQlBbHRlck9iamVjdE93bmVyX2ludGVy bmFsKHNkZXBGb3JtLT5jbGFzc2lkLAogCQkJCQkJCQkJICBzZGVwRm9ybS0+b2JqaWQsCiAJCQkJ CQkJCQkgIG5ld3JvbGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yOWQ5NjdhMmQ1YgotLS0gL2Rldi9udWxsCisrKyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtMCwwICsxLDI1MSBAQAorLyot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfdmFyaWFibGUuYworICoJCXNlc3Npb24gdmFyaWFi bGVzCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjUsIFBvc3RncmVTUUwg R2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQs IFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIElERU5USUZJ Q0FUSU9OCisgKgkJc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisgKgorICotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJh Y2Nlc3MvaGVhcGFtLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9kZXBlbmRlbmN5LmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9pbmRleGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCisj aW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2Nv bGxhdGlvbi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ192YXJpYWJsZS5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUg InBhcnNlci9wYXJzZV90eXBlLmgiCisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNs dWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgorCitz dGF0aWMgT2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwK KwkJCQkJCQkJCSBPaWQgdmFyTmFtZXNwYWNlLAorCQkJCQkJCQkJIE9pZCB2YXJUeXBlLAorCQkJ CQkJCQkJIGludDMyIHZhclR5cG1vZCwKKwkJCQkJCQkJCSBPaWQgdmFyT3duZXIsCisJCQkJCQkJ CQkgT2lkIHZhckNvbGxhdGlvbiwKKwkJCQkJCQkJCSBib29sIGlmX25vdF9leGlzdHMpOworCisK Ky8qCisgKiBDcmVhdGVzIGVudHJ5IGluIHBnX3ZhcmlhYmxlIHRhYmxlCisgKi8KK3N0YXRpYyBP YmplY3RBZGRyZXNzCitjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKKwkJCQlP aWQgdmFyTmFtZXNwYWNlLAorCQkJCU9pZCB2YXJUeXBlLAorCQkJCWludDMyIHZhclR5cG1vZCwK KwkJCQlPaWQgdmFyT3duZXIsCisJCQkJT2lkIHZhckNvbGxhdGlvbiwKKwkJCQlib29sIGlmX25v dF9leGlzdHMpCit7CisJQWNsCQkgICAqdmFyYWNsOworCU5hbWVEYXRhCXZhcm5hbWU7CisJYm9v bAkJbnVsbHNbTmF0dHNfcGdfdmFyaWFibGVdOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfdmFy aWFibGVdOworCVJlbGF0aW9uCXJlbDsKKwlIZWFwVHVwbGUJdHVwOworCVR1cGxlRGVzYwl0dXBk ZXNjOworCU9iamVjdEFkZHJlc3MgbXlzZWxmLAorCQkJCXJlZmVyZW5jZWQ7CisJT2JqZWN0QWRk cmVzc2VzICphZGRyczsKKwlPaWQJCQl2YXJpZDsKKworCUFzc2VydCh2YXJOYW1lKTsKKwlBc3Nl cnQoT2lkSXNWYWxpZCh2YXJOYW1lc3BhY2UpKTsKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJUeXBl KSk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyT3duZXIpKTsKKworCXJlbCA9IHRhYmxlX29wZW4o VmFyaWFibGVSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCS8qCisJICogQ2hlY2sg Zm9yIGR1cGxpY2F0ZXMuIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IHJlYWxseSBwcmV2ZW50CisJ ICogZHVwbGljYXRlcywgaXQncyBoZXJlIGp1c3QgdG8gcHJvdmlkZSBuaWNlciBlcnJvciBtZXNz YWdlIGluIGNvbW1vbgorCSAqIGNhc2UuIFRoZSByZWFsIHByb3RlY3Rpb24gaXMgdGhlIHVuaXF1 ZSBrZXkgb24gdGhlIGNhdGFsb2cuCisJICovCisJaWYgKFNlYXJjaFN5c0NhY2hlRXhpc3RzMihW QVJJQUJMRU5BTUVOU1AsCisJCQkJCQkJICBQb2ludGVyR2V0RGF0dW0odmFyTmFtZSksCisJCQkJ CQkJICBPYmplY3RJZEdldERhdHVtKHZhck5hbWVzcGFjZSkpKQorCXsKKwkJaWYgKGlmX25vdF9l eGlzdHMpCisJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNB VEVfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgYWxyZWFk eSBleGlzdHMsIHNraXBwaW5nIiwKKwkJCQkJCQl2YXJOYW1lKSkpOworCQllbHNlCisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJ CQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBhbHJlYWR5IGV4aXN0cyIsCisJCQkJ CQkJdmFyTmFtZSkpKTsKKworCQl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwor CisJCXJldHVybiBJbnZhbGlkT2JqZWN0QWRkcmVzczsKKwl9CisKKwltZW1zZXQodmFsdWVzLCAw LCBzaXplb2YodmFsdWVzKSk7CisJbWVtc2V0KG51bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7 CisKKwluYW1lc3RyY3B5KCZ2YXJuYW1lLCB2YXJOYW1lKTsKKworCXZhcmlkID0gR2V0TmV3T2lk V2l0aEluZGV4KHJlbCwgVmFyaWFibGVPaWRJbmRleElkLCBBbnVtX3BnX3ZhcmlhYmxlX29pZCk7 CisKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0o dmFyaWQpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWUgLSAxXSA9IE5hbWVHZXRE YXR1bSgmdmFybmFtZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFybmFtZXNwYWNlIC0g MV0gPSBPYmplY3RJZEdldERhdHVtKHZhck5hbWVzcGFjZSk7CisJdmFsdWVzW0FudW1fcGdfdmFy aWFibGVfdmFydHlwZSAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJUeXBlKTsKKwl2YWx1ZXNb QW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2QgLSAxXSA9IEludDMyR2V0RGF0dW0odmFyVHlwbW9k KTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJvd25lciAtIDFdID0gT2JqZWN0SWRHZXRE YXR1bSh2YXJPd25lcik7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyY29sbGF0aW9uIC0g MV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlvbik7CisKKwl2YXJhY2wgPSBnZXRfdXNl cl9kZWZhdWx0X2FjbChPQkpFQ1RfVkFSSUFCTEUsIHZhck93bmVyLAorCQkJCQkJCQkgIHZhck5h bWVzcGFjZSk7CisJaWYgKHZhcmFjbCAhPSBOVUxMKQorCQl2YWx1ZXNbQW51bV9wZ192YXJpYWJs ZV92YXJhY2wgLSAxXSA9IFBvaW50ZXJHZXREYXR1bSh2YXJhY2wpOworCWVsc2UKKwkJbnVsbHNb QW51bV9wZ192YXJpYWJsZV92YXJhY2wgLSAxXSA9IHRydWU7CisKKwl0dXBkZXNjID0gUmVsYXRp b25HZXREZXNjcihyZWwpOworCisJdHVwID0gaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVl cywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1cCk7CisJQXNzZXJ0KE9pZElz VmFsaWQodmFyaWQpKTsKKworCWFkZHJzID0gbmV3X29iamVjdF9hZGRyZXNzZXMoKTsKKworCU9i amVjdEFkZHJlc3NTZXQobXlzZWxmLCBWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkKTsKKworCS8q IGRlcGVuZGVuY3kgb24gbmFtZXNwYWNlICovCisJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2Vk LCBOYW1lc3BhY2VSZWxhdGlvbklkLCB2YXJOYW1lc3BhY2UpOworCWFkZF9leGFjdF9vYmplY3Rf YWRkcmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBvbiB1c2VkIHR5 cGUgKi8KKwlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFR5cGVSZWxhdGlvbklkLCB2YXJU eXBlKTsKKwlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJlZmVyZW5jZWQsIGFkZHJzKTsKKwor CS8qIGRlcGVuZGVuY3kgb24gY29sbGF0aW9uICovCisJaWYgKE9pZElzVmFsaWQodmFyQ29sbGF0 aW9uKSAmJgorCQl2YXJDb2xsYXRpb24gIT0gREVGQVVMVF9DT0xMQVRJT05fT0lEKQorCXsKKwkJ T2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBDb2xsYXRpb25SZWxhdGlvbklkLCB2YXJDb2xs YXRpb24pOworCQlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJlZmVyZW5jZWQsIGFkZHJzKTsK Kwl9CisKKwlyZWNvcmRfb2JqZWN0X2FkZHJlc3NfZGVwZW5kZW5jaWVzKCZteXNlbGYsIGFkZHJz LCBERVBFTkRFTkNZX05PUk1BTCk7CisJZnJlZV9vYmplY3RfYWRkcmVzc2VzKGFkZHJzKTsKKwor CS8qIGRlcGVuZGVuY3kgb24gb3duZXIgKi8KKwlyZWNvcmREZXBlbmRlbmN5T25Pd25lcihWYXJp YWJsZVJlbGF0aW9uSWQsIHZhcmlkLCB2YXJPd25lcik7CisKKwkvKiBkZXBlbmRlbmNpZXMgb24g cm9sZXMgbWVudGlvbmVkIGluIGRlZmF1bHQgQUNMICovCisJcmVjb3JkRGVwZW5kZW5jeU9uTmV3 QWNsKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDAsIHZhck93bmVyLCB2YXJhY2wpOworCisJ LyogZGVwZW5kZW5jeSBvbiBleHRlbnNpb24gKi8KKwlyZWNvcmREZXBlbmRlbmN5T25DdXJyZW50 RXh0ZW5zaW9uKCZteXNlbGYsIGZhbHNlKTsKKworCWhlYXBfZnJlZXR1cGxlKHR1cCk7CisKKwkv KiBwb3N0IGNyZWF0aW9uIGhvb2sgZm9yIG5ldyBmdW5jdGlvbiAqLworCUludm9rZU9iamVjdFBv c3RDcmVhdGVIb29rKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDApOworCisJdGFibGVfY2xv c2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCXJldHVybiBteXNlbGY7Cit9CisKKy8qCisg KiBDcmVhdGVzIGEgbmV3IHZhcmlhYmxlCisgKgorICogVXNlZCBieSBDUkVBVEUgVkFSSUFCTEUg Y29tbWFuZAorICovCitPYmplY3RBZGRyZXNzCitDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpw c3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQoreworCU9pZAkJCW5hbWVzcGFjZWlk OworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJT2lkCQkJdHlwaWQ7CisJaW50MzIJCXR5cG1vZDsK KwlPaWQJCQl2YXJvd25lciA9IEdldFVzZXJJZCgpOworCU9pZAkJCWNvbGxhdGlvbjsKKwlPaWQJ CQl0eXBjb2xsYXRpb247CisJT2JqZWN0QWRkcmVzcyB2YXJpYWJsZTsKKworCW5hbWVzcGFjZWlk ID0KKwkJUmFuZ2VWYXJHZXRBbmRDaGVja0NyZWF0aW9uTmFtZXNwYWNlKHN0bXQtPnZhcmlhYmxl LCBOb0xvY2ssIE5VTEwpOworCisJdHlwZW5hbWVUeXBlSWRBbmRNb2QocHN0YXRlLCBzdG10LT50 eXBlTmFtZSwgJnR5cGlkLCAmdHlwbW9kKTsKKworCS8qIGRpc2FsbG93IHBzZXVkb3R5cGVzICov CisJaWYgKGdldF90eXB0eXBlKHR5cGlkKSA9PSBUWVBUWVBFX1BTRVVETykKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJy bXNnKCJzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSBwc2V1ZG8tdHlwZSAlcyIsCisJCQkJCQlm b3JtYXRfdHlwZV9iZSh0eXBpZCkpKSk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2so VHlwZVJlbGF0aW9uSWQsIHR5cGlkLCBHZXRVc2VySWQoKSwgQUNMX1VTQUdFKTsKKwlpZiAoYWNs cmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xjaGVja19lcnJvcl90eXBlKGFjbHJlc3VsdCwg dHlwaWQpOworCisJdHlwY29sbGF0aW9uID0gZ2V0X3R5cGNvbGxhdGlvbih0eXBpZCk7CisKKwlp ZiAoc3RtdC0+Y29sbENsYXVzZSkKKwkJY29sbGF0aW9uID0gTG9va3VwQ29sbGF0aW9uKHBzdGF0 ZSwKKwkJCQkJCQkJCXN0bXQtPmNvbGxDbGF1c2UtPmNvbGxuYW1lLAorCQkJCQkJCQkJc3RtdC0+ Y29sbENsYXVzZS0+bG9jYXRpb24pOworCWVsc2UKKwkJY29sbGF0aW9uID0gdHlwY29sbGF0aW9u OworCisJLyogY29tcGxhaW4gaWYgQ09MTEFURSBpcyBhcHBsaWVkIHRvIGFuIHVuY29sbGF0YWJs ZSB0eXBlICovCisJaWYgKE9pZElzVmFsaWQoY29sbGF0aW9uKSAmJiAhT2lkSXNWYWxpZCh0eXBj b2xsYXRpb24pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZ UEVfTUlTTUFUQ0gpLAorCQkJCSBlcnJtc2coImNvbGxhdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQg YnkgdHlwZSAlcyIsCisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpLAorCQkJCSBwYXJzZXJf ZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5jb2xsQ2xhdXNlLT5sb2NhdGlvbikpKTsKKworCXZh cmlhYmxlID0gY3JlYXRlX3ZhcmlhYmxlKHN0bXQtPnZhcmlhYmxlLT5yZWxuYW1lLAorCQkJCQkJ CSAgIG5hbWVzcGFjZWlkLAorCQkJCQkJCSAgIHR5cGlkLAorCQkJCQkJCSAgIHR5cG1vZCwKKwkJ CQkJCQkgICB2YXJvd25lciwKKwkJCQkJCQkgICBjb2xsYXRpb24sCisJCQkJCQkJICAgc3RtdC0+ aWZfbm90X2V4aXN0cyk7CisKKwllbG9nKERFQlVHMSwgInJlY29yZCBmb3Igc2Vzc2lvbiB2YXJp YWJsZSBcIiVzXCIgKG9pZDolZCkgd2FzIGNyZWF0ZWQgaW4gcGdfdmFyaWFibGUiLAorCQkgc3Rt dC0+dmFyaWFibGUtPnJlbG5hbWUsIHZhcmlhYmxlLm9iamVjdElkKTsKKworCXJldHVybiB2YXJp YWJsZTsKK30KKworLyoKKyAqIERyb3AgdmFyaWFibGUgYnkgT0lECisgKi8KK3ZvaWQKK0Ryb3BW YXJpYWJsZUJ5SWQoT2lkIHZhcmlkKQoreworCVJlbGF0aW9uCXJlbDsKKwlIZWFwVHVwbGUJdHVw OworCisJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxv Y2spOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERh dHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJP UiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJQ2F0 YWxvZ1R1cGxlRGVsZXRlKHJlbCwgJnR1cC0+dF9zZWxmKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0 dXApOworCisJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKK30KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9h bHRlci5jCmluZGV4IGM4MDFjODY5YzFjLi5jNzJhNGFkYjA3YiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvYWx0ZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5j CkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19kaWN0LmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ190c19wYXJzZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3Rl bXBsYXRlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNv bW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvY29sbGF0aW9uY21kcy5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKQEAgLTE0MCw2ICsxNDEsMTAgQEAgcmVwb3J0 X25hbWVzcGFjZV9jb25mbGljdChPaWQgY2xhc3NJZCwgY29uc3QgY2hhciAqbmFtZSwgT2lkIG5z cE9pZCkKIAkJCUFzc2VydChPaWRJc1ZhbGlkKG5zcE9pZCkpOwogCQkJbXNnZm10ID0gZ2V0dGV4 dF9ub29wKCJ0ZXh0IHNlYXJjaCBjb25maWd1cmF0aW9uIFwiJXNcIiBhbHJlYWR5IGV4aXN0cyBp biBzY2hlbWEgXCIlc1wiIik7CiAJCQlicmVhazsKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6 CisJCQlBc3NlcnQoT2lkSXNWYWxpZChuc3BPaWQpKTsKKwkJCW1zZ2ZtdCA9IGdldHRleHRfbm9v cCgic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgYWxyZWFkeSBleGlzdHMgaW4gc2NoZW1hIFwiJXNc IiIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQg b2JqZWN0IGNsYXNzOiAldSIsIGNsYXNzSWQpOwogCQkJYnJlYWs7CkBAIC00MzUsNiArNDQwLDcg QEAgRXhlY1JlbmFtZVN0bXQoUmVuYW1lU3RtdCAqc3RtdCkKIAkJY2FzZSBPQkpFQ1RfVFNURU1Q TEFURToKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT046CiAJCWNhc2UgT0JKRUNUX1NVQlNDUklQ VElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQl7CiAJCQkJT2JqZWN0QWRkcmVzcyBh ZGRyZXNzOwogCQkJCVJlbGF0aW9uCWNhdGFsb2c7CkBAIC01NzUsNiArNTgxLDcgQEAgRXhlY0Fs dGVyT2JqZWN0U2NoZW1hU3RtdChBbHRlck9iamVjdFNjaGVtYVN0bXQgKnN0bXQsCiAJCWNhc2Ug T0JKRUNUX1RTRElDVElPTkFSWToKIAkJY2FzZSBPQkpFQ1RfVFNQQVJTRVI6CiAJCWNhc2UgT0JK RUNUX1RTVEVNUExBVEU6CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJewogCQkJCVJlbGF0 aW9uCWNhdGFsb2c7CiAJCQkJT2lkCQkJY2xhc3NJZDsKQEAgLTY1Nyw2ICs2NjQsNyBAQCBBbHRl ck9iamVjdE5hbWVzcGFjZV9vaWQoT2lkIGNsYXNzSWQsIE9pZCBvYmppZCwgT2lkIG5zcE9pZCwK IAkJY2FzZSBUU0RpY3Rpb25hcnlSZWxhdGlvbklkOgogCQljYXNlIFRTVGVtcGxhdGVSZWxhdGlv bklkOgogCQljYXNlIFRTQ29uZmlnUmVsYXRpb25JZDoKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9u SWQ6CiAJCQl7CiAJCQkJUmVsYXRpb24JY2F0YWxvZzsKIApAQCAtODg3LDYgKzg5NSw3IEBAIEV4 ZWNBbHRlck93bmVyU3RtdChBbHRlck93bmVyU3RtdCAqc3RtdCkKIAkJY2FzZSBPQkpFQ1RfVEFC TEVTUEFDRToKIAkJY2FzZSBPQkpFQ1RfVFNESUNUSU9OQVJZOgogCQljYXNlIE9CSkVDVF9UU0NP TkZJR1VSQVRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJewogCQkJCU9iamVjdEFk ZHJlc3MgYWRkcmVzczsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNt ZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKaW5kZXggY2ViOWEyMjliNjMu LmViYjU4NWRjNGExIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKQEAgLTQ3Niw2ICs0NzYsMTAg QEAgZG9lc19ub3RfZXhpc3Rfc2tpcHBpbmcoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmpl Y3QpCiAJCQltc2cgPSBnZXR0ZXh0X25vb3AoInB1YmxpY2F0aW9uIFwiJXNcIiBkb2VzIG5vdCBl eGlzdCwgc2tpcHBpbmciKTsKIAkJCW5hbWUgPSBzdHJWYWwob2JqZWN0KTsKIAkJCWJyZWFrOwor CQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCW1zZyA9IGdldHRleHRfbm9vcCgic2Vzc2lvbiB2 YXJpYWJsZSBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIik7CisJCQluYW1lID0gTmFt ZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKKwkJCWJyZWFrOwogCiAJCWNh c2UgT0JKRUNUX0NPTFVNTjoKIAkJY2FzZSBPQkpFQ1RfREFUQUJBU0U6CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9ldmVudF90cmlnZ2VyLmMKaW5kZXggZWRjMmM5ODhlMjkuLjE4MzljMWY4MmM1IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCkBAIC0yMTQ5LDYgKzIxNDksOCBAQCBzdHJpbmdp ZnlfZ3JhbnRfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCQlyZXR1cm4gIlRBQkxFU1BB Q0UiOwogCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJcmV0dXJuICJUWVBFIjsKKwkJY2FzZSBPQkpF Q1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gIlZBUklBQkxFIjsKIAkJCS8qIHRoZXNlIGN1cnJlbnRs eSBhcmVuJ3QgdXNlZCAqLwogCQljYXNlIE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgogCQljYXNlIE9C SkVDVF9BR0dSRUdBVEU6CkBAIC0yMjMyLDYgKzIyMzQsOCBAQCBzdHJpbmdpZnlfYWRlZnByaXZz X29ianR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQkJcmV0dXJuICJUQUJMRVNQQUNFUyI7CiAJ CWNhc2UgT0JKRUNUX1RZUEU6CiAJCQlyZXR1cm4gIlRZUEVTIjsKKwkJY2FzZSBPQkpFQ1RfVkFS SUFCTEU6CisJCQlyZXR1cm4gIlZBUklBQkxFUyI7CiAJCQkvKiB0aGVzZSBjdXJyZW50bHkgYXJl bid0IHVzZWQgKi8KIAkJY2FzZSBPQkpFQ1RfQUNDRVNTX01FVEhPRDoKIAkJY2FzZSBPQkpFQ1Rf QUdHUkVHQVRFOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKaW5kZXggY2VlNWQ3YmJiOWMuLjU3YjRl NjcxOWMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKQEAgLTkyLDYgKzkyLDcgQEAgU2VjTGFi ZWxTdXBwb3J0c09iamVjdFR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9U U1BBUlNFUjoKIAkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToKIAkJY2FzZSBPQkpFQ1RfVVNFUl9N QVBQSU5HOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXJldHVybiBmYWxzZTsKIAogCQkJ LyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggNDM5NzEyMzM5OGUuLmRjZGYyZDlhNTIw IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dlci5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFy aWFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3N0b3JhZ2UuaCIKICNpbmNsdWRlICJjYXRhbG9n L3N0b3JhZ2VfeGxvZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvdG9hc3RpbmcuaCIKQEAgLTY5MDIs NiArNjkwMyw3IEBAIEFUVHlwZWRUYWJsZVJlY3Vyc2lvbihMaXN0ICoqd3F1ZXVlLCBSZWxhdGlv biByZWwsIEFsdGVyVGFibGVDbWQgKmNtZCwKICAqIChwb3NzaWJseSBuZXN0ZWQgc2V2ZXJhbCBs ZXZlbHMgZGVlcCBpbiBjb21wb3NpdGUgdHlwZXMsIGFycmF5cywgZXRjISkuCiAgKiBFdmVudHVh bGx5LCB3ZSdkIGxpa2UgdG8gcHJvcGFnYXRlIHRoZSBjaGVjayBvciByZXdyaXRlIG9wZXJhdGlv bgogICogaW50byBzdWNoIHRhYmxlcywgYnV0IGZvciBub3csIGp1c3QgZXJyb3Igb3V0IGlmIHdl IGZpbmQgYW55LgorICogQWxzbywgY2hlY2sgaWYgInR5cGVPaWQiIGlzIHVzZWQgYXMgdHlwZSBv ZiBzb21lIHNlc3Npb24gdmFyaWFibGUuCiAgKgogICogQ2FsbGVyIHNob3VsZCBwcm92aWRlIGVp dGhlciB0aGUgYXNzb2NpYXRlZCByZWxhdGlvbiBvZiBhIHJvd3R5cGUsCiAgKiBvciBhIHR5cGUg bmFtZSAobm90IGJvdGgpIGZvciB1c2UgaW4gdGhlIGVycm9yIG1lc3NhZ2UsIGlmIGFueS4KQEAg LTY5NjUsNiArNjk2Nyw0NSBAQCBmaW5kX2NvbXBvc2l0ZV90eXBlX2RlcGVuZGVuY2llcyhPaWQg dHlwZU9pZCwgUmVsYXRpb24gb3JpZ1JlbGF0aW9uLAogCQkJY29udGludWU7CiAJCX0KIAorCQkv KiBjaGVjayBpZiB0aGUgdHlwZSBpcyB1c2VkIGFzIHR5cGUgb2Ygc29tZSBzZXNzaW9uIHZhcmlh YmxlICovCisJCWlmIChwZ19kZXBlbmQtPmNsYXNzaWQgPT0gVmFyaWFibGVSZWxhdGlvbklkKQor CQl7CisJCQlPaWQJCQl2YXJpZCA9IHBnX2RlcGVuZC0+b2JqaWQ7CisKKwkJCWlmIChvcmlnVHlw ZU5hbWUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVS RV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciB0eXBlIFwiJXNc IiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJCQlv cmlnVHlwZU5hbWUsCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZSh2YXJpZCkpKSk7CisJCQllbHNlIGlmIChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9 PSBSRUxLSU5EX0NPTVBPU0lURV9UWVBFKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJy Y29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5u b3QgYWx0ZXIgdHlwZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1 c2VzIGl0IiwKKwkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUob3JpZ1JlbGF0aW9uKSwK KwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFj ZSh2YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSkpKTsK KwkJCWVsc2UgaWYgKG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfRk9S RUlHTl9UQUJMRSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIGZvcmVp Z24gdGFibGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBp dCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKG9yaWdSZWxhdGlvbiksCisJCQkJ CQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFy aWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisJCQll bHNlIGlmIChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1JFTEFUSU9O IHx8CisJCQkJCSBvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX01BVFZJ RVcgfHwKKwkJCQkJIG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFS VElUSU9ORURfVEFCTEUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciB0 YWJsZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwK KwkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUob3JpZ1JlbGF0aW9uKSwKKwkJCQkJCQkJ Z2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkp LAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSkpKTsKKworCQkJY29u dGludWU7CisJCX0KKwogCQkvKiBFbHNlLCBpZ25vcmUgZGVwZW5kZWVzIHRoYXQgYXJlbid0IHJl bGF0aW9ucyAqLwogCQlpZiAocGdfZGVwZW5kLT5jbGFzc2lkICE9IFJlbGF0aW9uUmVsYXRpb25J ZCkKIAkJCWNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNt ZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKaW5kZXggM2NiM2NhMWNjYTEu LjQ3M2Q5OGZmMDYyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKQEAgLTUzLDYgKzUzLDcgQEAK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Jhbmdl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192 YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1h bmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3R5cGVjbWRzLmgiCkBAIC0zMzY5 LDYgKzMzNzAsMjAgQEAgZ2V0X3JlbHNfd2l0aF9kb21haW4oT2lkIGRvbWFpbk9pZCwgTE9DS01P REUgbG9ja21vZGUpCiAJCQl9CiAJCQljb250aW51ZTsKIAkJfQorCQllbHNlIGlmIChwZ19kZXBl bmQtPmNsYXNzaWQgPT0gVmFyaWFibGVSZWxhdGlvbklkKQorCQl7CisJCQkvKgorCQkJICogV2Ug Y2Fubm90IHRvIHZhbGlkYXRlIGNvbnN0cmFpbnQgaW5zaWRlIHNlc3Npb24gdmFyaWFibGVzCisJ CQkgKiBmcm9tIG90aGVyIHNlc3Npb25zLCBzbyBiZXR0ZXIgdG8gZmFpbCBpZiB0aGVyZSBhcmUg YW55CisJCQkgKiBzZXNzaW9uIHZhcmlhYmxlLCB0aGF0IHVzZSB0aGlzIGRvbWFpbi4KKwkJCSAq LworCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9T VVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgZG9tYWluIFwiJXNcIiBiZWNh dXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJCQlkb21haW5U eXBlTmFtZSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxl X25hbWVzcGFjZShwZ19kZXBlbmQtPm9iamlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3Zhcmlh YmxlX25hbWUocGdfZGVwZW5kLT5vYmppZCkpKSk7CisJCX0KIAogCQkvKiBFbHNlLCBpZ25vcmUg ZGVwZW5kZWVzIHRoYXQgYXJlbid0IHVzZXIgY29sdW1ucyBvZiByZWxhdGlvbnMgKi8KIAkJLyog KHdlIGFzc3VtZSBzeXN0ZW0gY29sdW1ucyBhcmUgbmV2ZXIgb2YgZG9tYWluIHR5cGVzKSAqLwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKaW5kZXggZjExNTZlMmZjYTMuLjJlZmU0MmI4MmE2IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAg LTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImdyYW1wYXJzZS5oIgpA QCAtMjg1LDggKzI4Niw4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChj aGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCUNvbnN0cmFpbnRz U2V0U3RtdCBDb3B5U3RtdCBDcmVhdGVBc1N0bXQgQ3JlYXRlQ2FzdFN0bXQKIAkJQ3JlYXRlRG9t YWluU3RtdCBDcmVhdGVFeHRlbnNpb25TdG10IENyZWF0ZUdyb3VwU3RtdCBDcmVhdGVPcENsYXNz U3RtdAogCQlDcmVhdGVPcEZhbWlseVN0bXQgQWx0ZXJPcEZhbWlseVN0bXQgQ3JlYXRlUExhbmdT dG10Ci0JCUNyZWF0ZVNjaGVtYVN0bXQgQ3JlYXRlU2VxU3RtdCBDcmVhdGVTdG10IENyZWF0ZVN0 YXRzU3RtdCBDcmVhdGVUYWJsZVNwYWNlU3RtdAotCQlDcmVhdGVGZHdTdG10IENyZWF0ZUZvcmVp Z25TZXJ2ZXJTdG10IENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQKKwkJQ3JlYXRlU2NoZW1hU3RtdCBD cmVhdGVTZXFTdG10IENyZWF0ZVNlc3Npb25WYXJTdG10IENyZWF0ZVN0bXQgQ3JlYXRlU3RhdHNT dG10CisJCUNyZWF0ZVRhYmxlU3BhY2VTdG10IENyZWF0ZUZkd1N0bXQgQ3JlYXRlRm9yZWlnblNl cnZlclN0bXQgQ3JlYXRlRm9yZWlnblRhYmxlU3RtdAogCQlDcmVhdGVBc3NlcnRpb25TdG10IENy ZWF0ZVRyYW5zZm9ybVN0bXQgQ3JlYXRlVHJpZ1N0bXQgQ3JlYXRlRXZlbnRUcmlnU3RtdAogCQlD cmVhdGVVc2VyU3RtdCBDcmVhdGVVc2VyTWFwcGluZ1N0bXQgQ3JlYXRlUm9sZVN0bXQgQ3JlYXRl UG9saWN5U3RtdAogCQlDcmVhdGVkYlN0bXQgRGVjbGFyZUN1cnNvclN0bXQgRGVmaW5lU3RtdCBE ZWxldGVTdG10IERpc2NhcmRTdG10IERvU3RtdApAQCAtNzgzLDggKzc4NCw4IEBAIHN0YXRpYyBO b2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2Vz LCBOb2RlICpxdWVyeSk7CiAJVUVTQ0FQRSBVTkJPVU5ERUQgVU5DT05ESVRJT05BTCBVTkNPTU1J VFRFRCBVTkVOQ1JZUFRFRCBVTklPTiBVTklRVUUgVU5LTk9XTgogCVVOTElTVEVOIFVOTE9HR0VE IFVOVElMIFVQREFURSBVU0VSIFVTSU5HCiAKLQlWQUNVVU0gVkFMSUQgVkFMSURBVEUgVkFMSURB VE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFESUMgVkFSWUlORwotCVZFUkJPU0UgVkVS U0lPTl9QIFZJRVcgVklFV1MgVklSVFVBTCBWT0xBVElMRQorCVZBQ1VVTSBWQUxJRCBWQUxJREFU RSBWQUxJREFUT1IgVkFMVUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJQURJQyBWQVJJQUJMRQorCVZB UklBQkxFUyBWQVJZSU5HIFZFUkJPU0UgVkVSU0lPTl9QIFZJRVcgVklFV1MgVklSVFVBTCBWT0xB VElMRQogCiAJV0hFTiBXSEVSRSBXSElURVNQQUNFX1AgV0lORE9XIFdJVEggV0lUSElOIFdJVEhP VVQgV09SSyBXUkFQUEVSIFdSSVRFCiAKQEAgLTEwNTAsNiArMTA1MSw3IEBAIHN0bXQ6CiAJCQl8 IENyZWF0ZVBvbGljeVN0bXQKIAkJCXwgQ3JlYXRlUExhbmdTdG10CiAJCQl8IENyZWF0ZVNjaGVt YVN0bXQKKwkJCXwgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAkJCXwgQ3JlYXRlU2VxU3RtdAogCQkJ fCBDcmVhdGVTdG10CiAJCQl8IENyZWF0ZVN1YnNjcmlwdGlvblN0bXQKQEAgLTE1OTIsNiArMTU5 NCw3IEBAIHNjaGVtYV9zdG10OgogCQkJfCBDcmVhdGVUcmlnU3RtdAogCQkJfCBHcmFudFN0bXQK IAkJCXwgVmlld1N0bXQKKwkJCXwgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAkJOwogCiAKQEAgLTUy NjgsNiArNTI3MSwzNCBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9pdGVtOgogCQkJCX0KIAkJOwog CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKgkJUVVFUlkgOgorICoJCQkJQ1JFQVRFIFZB UklBQkxFIHZhcm5hbWUgW0FTXSB0eXBlCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitD cmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCUNSRUFURSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBv cHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlCisJCQkJeworCQkJCQlDcmVhdGVTZXNz aW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKKwkJCQkJbi0+ dmFyaWFibGUgPSAkMzsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkNTsKKwkJCQkJbi0+Y29sbENsYXVz ZSA9IChDb2xsYXRlQ2xhdXNlICopICQ2OworCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7 CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IENSRUFURSBWQVJJQUJMRSBJRl9Q IE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2Ns YXVzZQorCQkJCXsKKwkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVh dGVTZXNzaW9uVmFyU3RtdCk7CisJCQkJCW4tPnZhcmlhYmxlID0gJDY7CisJCQkJCW4tPnR5cGVO YW1lID0gJDg7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkOTsKKwkJ CQkJbi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9 CisJCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5h bWUgVVBEQVRFIFsgVE8gdmVyc2lvbiBdCkBAIC03MDU5LDYgKzcwOTAsNyBAQCBvYmplY3RfdHlw ZV9hbnlfbmFtZToKIAkJCXwgVEVYVF9QIFNFQVJDSCBESUNUSU9OQVJZCQkJCXsgJCQgPSBPQkpF Q1RfVFNESUNUSU9OQVJZOyB9CiAJCQl8IFRFWFRfUCBTRUFSQ0ggVEVNUExBVEUJCQkJeyAkJCA9 IE9CSkVDVF9UU1RFTVBMQVRFOyB9CiAJCQl8IFRFWFRfUCBTRUFSQ0ggQ09ORklHVVJBVElPTgkJ CXsgJCQgPSBPQkpFQ1RfVFNDT05GSUdVUkFUSU9OOyB9CisJCQl8IFZBUklBQkxFCQkJCQkJCQl7 ICQkID0gT0JKRUNUX1ZBUklBQkxFOyB9CiAJCTsKIAogLyoKQEAgLTc5MzUsNiArNzk2NywxNCBA QCBwcml2aWxlZ2VfdGFyZ2V0OgogCQkJCQluLT5vYmpzID0gJDI7CiAJCQkJCSQkID0gbjsKIAkJ CQl9CisJCQl8IFZBUklBQkxFIHF1YWxpZmllZF9uYW1lX2xpc3QKKwkJCQl7CisJCQkJCVByaXZU YXJnZXQgKm4gPSAoUHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9mKFByaXZUYXJnZXQpKTsKKwkJ CQkJbi0+dGFyZ3R5cGUgPSBBQ0xfVEFSR0VUX09CSkVDVDsKKwkJCQkJbi0+b2JqdHlwZSA9IE9C SkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqcyA9ICQyOworCQkJCQkkJCA9IG47CisJCQkJfQog CQkJfCBBTEwgVEFCTEVTIElOX1AgU0NIRU1BIG5hbWVfbGlzdAogCQkJCXsKIAkJCQkJUHJpdlRh cmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOwpAQCAt Nzk4MCw2ICs4MDIwLDE0IEBAIHByaXZpbGVnZV90YXJnZXQ6CiAJCQkJCW4tPm9ianMgPSAkNTsK IAkJCQkJJCQgPSBuOwogCQkJCX0KKwkJCXwgQUxMIFZBUklBQkxFUyBJTl9QIFNDSEVNQSBuYW1l X2xpc3QKKwkJCQl7CisJCQkJCVByaXZUYXJnZXQgKm4gPSAoUHJpdlRhcmdldCAqKSBwYWxsb2Mo c2l6ZW9mKFByaXZUYXJnZXQpKTsKKwkJCQkJbi0+dGFyZ3R5cGUgPSBBQ0xfVEFSR0VUX0FMTF9J Tl9TQ0hFTUE7CisJCQkJCW4tPm9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9i anMgPSAkNTsKKwkJCQkJJCQgPSBuOworCQkJCX0KIAkJOwogCiAKQEAgLTgxNzgsNiArODIyNiw3 IEBAIGRlZmFjbF9wcml2aWxlZ2VfdGFyZ2V0OgogCQkJfCBUWVBFU19QCQl7ICQkID0gT0JKRUNU X1RZUEU7IH0KIAkJCXwgU0NIRU1BUwkJeyAkJCA9IE9CSkVDVF9TQ0hFTUE7IH0KIAkJCXwgTEFS R0VfUCBPQkpFQ1RTX1AJeyAkJCA9IE9CSkVDVF9MQVJHRU9CSkVDVDsgfQorCQkJfCBWQVJJQUJM RVMJCXsgJCQgPSBPQkpFQ1RfVkFSSUFCTEU7IH0KIAkJOwogCiAKQEAgLTk5NjYsNiArMTAwMTUs MjQgQEAgUmVuYW1lU3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVz IFJFTkFNRSBUTyBuYW1lCiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAo Tm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgUkVOQU1FIFRP IG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9kZShSZW5hbWVTdG10KTsK KwkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0g KE5vZGUgKikgJDM7CisJCQkJCW4tPm5ld25hbWUgPSAkNjsKKwkJCQkJbi0+bWlzc2luZ19vayA9 IGZhbHNlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxF IElGX1AgRVhJU1RTIGFueV9uYW1lIFJFTkFNRSBUTyBuYW1lCisJCQkJeworCQkJCQlSZW5hbWVT dG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7CisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpF Q1RfVkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ1OworCQkJCQluLT5uZXdu YW1lID0gJDg7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICop bjsKKwkJCQl9CiAJCTsKIAogb3B0X2NvbHVtbjogQ09MVU1OCkBAIC0xMDMyNyw2ICsxMDM5NCwy NCBAQCBBbHRlck9iamVjdFNjaGVtYVN0bXQ6CiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsK IAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25h bWUgU0VUIFNDSEVNQSBuYW1lCisJCQkJeworCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4g PSBtYWtlTm9kZShBbHRlck9iamVjdFNjaGVtYVN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0g T0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+ bmV3c2NoZW1hID0gJDY7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAo Tm9kZSAqKW47CisJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBJRl9QIEVYSVNUUyBhbnlfbmFt ZSBTRVQgU0NIRU1BIG5hbWUKKwkJCQl7CisJCQkJCUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9 IG1ha2VOb2RlKEFsdGVyT2JqZWN0U2NoZW1hU3RtdCk7CisJCQkJCW4tPm9iamVjdFR5cGUgPSBP QkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ1OworCQkJCQluLT5u ZXdzY2hlbWEgPSAkODsKKwkJCQkJbi0+bWlzc2luZ19vayA9IHRydWU7CisJCQkJCSQkID0gKE5v ZGUgKiluOworCQkJCX0KIAkJOwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEwNjA4LDYg KzEwNjkzLDE0IEBAIEFsdGVyT3duZXJTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dp dGhfYXJndHlwZXMgT1dORVIgVE8gUm9sZVNwZWMKIAkJCQkJbi0+bmV3b3duZXIgPSAkNjsKIAkJ CQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUg T1dORVIgVE8gUm9sZVNwZWMKKwkJCQl7CisJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5v ZGUoQWx0ZXJPd25lclN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklBQkxF OworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+bmV3b3duZXIgPSAkNjsK KwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQogCQk7CiAKIApAQCAtMTgwMTgsNiArMTgxMTEs OCBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFZBTElEQVRFCiAJCQl8IFZBTElEQVRPUgog CQkJfCBWQUxVRV9QCisJCQl8IFZBUklBQkxFCisJCQl8IFZBUklBQkxFUwogCQkJfCBWQVJZSU5H CiAJCQl8IFZFUlNJT05fUAogCQkJfCBWSUVXCkBAIC0xODY3NCw2ICsxODc2OSw4IEBAIGJhcmVf bGFiZWxfa2V5d29yZDoKIAkJCXwgVkFMVUVfUAogCQkJfCBWQUxVRVMKIAkJCXwgVkFSQ0hBUgor CQkJfCBWQVJJQUJMRQorCQkJfCBWQVJJQUJMRVMKIAkJCXwgVkFSSUFESUMKIAkJCXwgVkVSQk9T RQogCQkJfCBWRVJTSU9OX1AKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91 dGlsY21kLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCmluZGV4IDYyMDE1 NDMxZmRmLi5iNmNiZTM1NGM1MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3V0aWxjbWQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC0x MDUsNiArMTA1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QKIAlMaXN0CSAgICppbmRleGVzOwkJLyogQ1JF QVRFIElOREVYIGl0ZW1zICovCiAJTGlzdAkgICAqdHJpZ2dlcnM7CQkvKiBDUkVBVEUgVFJJR0dF UiBpdGVtcyAqLwogCUxpc3QJICAgKmdyYW50czsJCQkvKiBHUkFOVCBpdGVtcyAqLworCUxpc3QJ ICAgKnZhcmlhYmxlczsJCS8qIENSRUFURSBWQVJJQUJMRSBpdGVtcyAqLwogfSBDcmVhdGVTY2hl bWFTdG10Q29udGV4dDsKIAogCkBAIC00MDkxLDYgKzQwOTIsNyBAQCB0cmFuc2Zvcm1DcmVhdGVT Y2hlbWFTdG10RWxlbWVudHMoTGlzdCAqc2NoZW1hRWx0cywgY29uc3QgY2hhciAqc2NoZW1hTmFt ZSkKIAljeHQuaW5kZXhlcyA9IE5JTDsKIAljeHQudHJpZ2dlcnMgPSBOSUw7CiAJY3h0LmdyYW50 cyA9IE5JTDsKKwljeHQudmFyaWFibGVzID0gTklMOwogCiAJLyoKIAkgKiBSdW4gdGhyb3VnaCBl YWNoIHNjaGVtYSBlbGVtZW50IGluIHRoZSBzY2hlbWEgZWxlbWVudCBsaXN0LiBTZXBhcmF0ZQpA QCAtNDE1OSw2ICs0MTYxLDE1IEBAIHRyYW5zZm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhM aXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFyICpzY2hlbWFOYW1lKQogCQkJCWN4dC5ncmFudHMg PSBsYXBwZW5kKGN4dC5ncmFudHMsIGVsZW1lbnQpOwogCQkJCWJyZWFrOwogCisJCQljYXNlIFRf Q3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQkJeworCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAq ZWxwID0gKENyZWF0ZVNlc3Npb25WYXJTdG10ICopIGVsZW1lbnQ7CisKKwkJCQkJc2V0U2NoZW1h TmFtZShjeHQuc2NoZW1hbmFtZSwgJmVscC0+dmFyaWFibGUtPnNjaGVtYW5hbWUpOworCQkJCQlj eHQudmFyaWFibGVzID0gbGFwcGVuZChjeHQudmFyaWFibGVzLCBlbGVtZW50KTsKKwkJCQl9CisJ CQkJYnJlYWs7CisKIAkJCWRlZmF1bHQ6CiAJCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBu b2RlIHR5cGU6ICVkIiwKIAkJCQkJIChpbnQpIG5vZGVUYWcoZWxlbWVudCkpOwpAQCAtNDE3Miw2 ICs0MTgzLDcgQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRzKExpc3QgKnNjaGVt YUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVz dWx0LCBjeHQuaW5kZXhlcyk7CiAJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQudHJp Z2dlcnMpOwogCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LmdyYW50cyk7CisJcmVz dWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQudmFyaWFibGVzKTsKIAogCXJldHVybiByZXN1 bHQ7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNr ZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IDI1ZmUzZDU4MDE2Li45OWE1MTg3N2QzNCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91 dGlsaXR5LmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19p bmhlcml0cy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJj YXRhbG9nL3RvYXN0aW5nLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRl ICJjb21tYW5kcy9hc3luYy5oIgpAQCAtMTgyLDYgKzE4Myw3IEBAIENsYXNzaWZ5VXRpbGl0eUNv bW1hbmRBc1JlYWRPbmx5KE5vZGUgKnBhcnNldHJlZSkKIAkJY2FzZSBUX0NyZWF0ZVJhbmdlU3Rt dDoKIAkJY2FzZSBUX0NyZWF0ZVJvbGVTdG10OgogCQljYXNlIFRfQ3JlYXRlU2NoZW1hU3RtdDoK KwkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10OgogCQljYXNlIFRfQ3JlYXRlU2VxU3RtdDoK IAkJY2FzZSBUX0NyZWF0ZVN0YXRzU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVN0bXQ6CkBAIC0xMzg5 LDYgKzEzOTEsMTAgQEAgUHJvY2Vzc1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ CQl9CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCQlh ZGRyZXNzID0gQ3JlYXRlVmFyaWFibGUocHN0YXRlLCAoQ3JlYXRlU2Vzc2lvblZhclN0bXQgKikg cGFyc2V0cmVlKTsKKwkJCQlicmVhazsKKwogCQkJCS8qCiAJCQkJICogKioqKioqKioqKioqKiBv YmplY3QgY3JlYXRpb24gLyBkZXN0cnVjdGlvbiAqKioqKioqKioqKioqKgogCQkJCSAqLwpAQCAt MjM0MSw2ICsyMzQ3LDkgQEAgQWx0ZXJPYmplY3RUeXBlQ29tbWFuZFRhZyhPYmplY3RUeXBlIG9i anR5cGUpCiAJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCQl0YWcgPSBDTURUQUdfQUxU RVJfU1RBVElTVElDUzsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXRh ZyA9IENNRFRBR19BTFRFUl9WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJdGFn ID0gQ01EVEFHX1VOS05PV047CiAJCQlicmVhazsKQEAgLTI2NDksNiArMjY1OCw5IEBAIENyZWF0 ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19F WFQ6CiAJCQkJCXRhZyA9IENNRFRBR19EUk9QX1NUQVRJU1RJQ1M7CiAJCQkJCWJyZWFrOworCQkJ CWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9WQVJJQUJMRTsK KwkJCQkJYnJlYWs7CiAJCQkJZGVmYXVsdDoKIAkJCQkJdGFnID0gQ01EVEFHX1VOS05PV047CiAJ CQl9CkBAIC0zMjI1LDYgKzMyMzcsMTAgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRy ZWUpCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJ CQl0YWcgPSBDTURUQUdfQ1JFQVRFX1ZBUklBQkxFOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoK IAkJCWVsb2coV0FSTklORywgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkgKGlu dCkgbm9kZVRhZyhwYXJzZXRyZWUpKTsKQEAgLTM3NTksNiArMzc3NSwxMCBAQCBHZXRDb21tYW5k TG9nTGV2ZWwoTm9kZSAqcGFyc2V0cmVlKQogCQkJfQogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0Ny ZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJbGV2ID0gTE9HU1RNVF9EREw7CisJCQlicmVhazsKKwog CQlkZWZhdWx0OgogCQkJZWxvZyhXQVJOSU5HLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQi LAogCQkJCSAoaW50KSBub2RlVGFnKHBhcnNldHJlZSkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2FjbC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCmluZGV4IGJh MTQ3MTNmZWYyLi42Y2UzYjkzN2RhZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2FjbC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYwpAQCAtMzEsNiArMzEsNyBA QAogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFi bGVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFs b2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvcHJvY2xhbmcuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNl LmgiCkBAIC0xMjksNiArMTMwLDggQEAgc3RhdGljIEFjbE1vZGUgY29udmVydF90eXBlX3ByaXZf c3RyaW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KTsKIHN0YXRpYyBBY2xNb2RlIGNvbnZlcnRfcGFy YW1ldGVyX3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdGV4dCk7CiBzdGF0aWMgQWNsTW9kZSBjb252 ZXJ0X2xhcmdlb2JqZWN0X3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdGV4dCk7CiBzdGF0aWMgQWNs TW9kZSBjb252ZXJ0X3JvbGVfcHJpdl9zdHJpbmcodGV4dCAqcHJpdl90eXBlX3RleHQpOworc3Rh dGljIE9pZAljb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh0ZXh0ICp2YXJuYW1lKTsKK3N0 YXRpYyBBY2xNb2RlIGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmluZyh0ZXh0ICpw cml2X3R5cGVfdGV4dCk7CiBzdGF0aWMgQWNsUmVzdWx0IHBnX3JvbGVfYWNsY2hlY2soT2lkIHJv bGVfb2lkLCBPaWQgcm9sZWlkLCBBY2xNb2RlIG1vZGUpOwogCiBzdGF0aWMgdm9pZCBSb2xlTWVt YmVyc2hpcENhY2hlQ2FsbGJhY2soRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2 YWx1ZSk7CkBAIC04NTEsNiArODU0LDEwIEBAIGFjbGRlZmF1bHQoT2JqZWN0VHlwZSBvYmp0eXBl LCBPaWQgb3duZXJJZCkKIAkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOwogCQkJb3du ZXJfZGVmYXVsdCA9IEFDTF9BTExfUklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJCQlicmVhazsKKwkJ Y2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsK KwkJCW93bmVyX2RlZmF1bHQgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOwog CQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQi LCAoaW50KSBvYmp0eXBlKTsKIAkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOwkvKiBr ZWVwIGNvbXBpbGVyIHF1aWV0ICovCkBAIC05NDgsNiArOTU1LDkgQEAgYWNsZGVmYXVsdF9zcWwo UEdfRlVOQ1RJT05fQVJHUykKIAkJY2FzZSAnVCc6CiAJCQlvYmp0eXBlID0gT0JKRUNUX1RZUEU7 CiAJCQlicmVhazsKKwkJY2FzZSAnVic6CisJCQlvYmp0eXBlID0gT0JKRUNUX1ZBUklBQkxFOwor CQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVj dCB0eXBlIGFiYnJldmlhdGlvbjogJWMiLCBvYmp0eXBlYyk7CiAJfQpAQCAtNTAxNiw2ICs1MDI2 LDIxNyBAQCBwZ19yb2xlX2FjbGNoZWNrKE9pZCByb2xlX29pZCwgT2lkIHJvbGVpZCwgQWNsTW9k ZSBtb2RlKQogCXJldHVybiBBQ0xDSEVDS19OT19QUklWOwogfQogCisvKgorICogaGFzX3Nlc3Np b25fdmFyaWFibGVfcHJpdmlsZWdlIHZhcmlhbnRzCisgKgkJVGhlc2UgYXJlIGFsbCBuYW1lZCAi aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIiBhdCB0aGUgU1FMIGxldmVsLgorICoJCVRo ZXkgdGFrZSB2YXJpb3VzIGNvbWJpbmF0aW9ucyBvZiB2YXJpYWJsZSBuYW1lLCB2YXJpYWJsZSBP SUQsCisgKgkJdXNlciBuYW1lLCB1c2VyIE9JRCwgb3IgaW1wbGljaXQgdXNlciA9IGN1cnJlbnRf dXNlci4KKyAqCisgKgkJVGhlIHJlc3VsdCBpcyBhIGJvb2xlYW4gdmFsdWU6IHRydWUgaWYgdXNl ciBoYXMgdGhlIGluZGljYXRlZAorICoJCXByaXZpbGVnZSwgZmFsc2UgaWYgbm90LCBvciBOVUxM IGlmIHNlc3Npb24gdmFyaWFibGUgZG9lc24ndAorICoJCWV4aXN0cy4KKyAqLworCisvKgorICog aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWVfbmFtZQorICoJCUNoZWNrIHVzZXIg cHJpdmlsZWdlcyBvbiBhIHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQluYW1lIHVzZXJuYW1l LCB0ZXh0IHNlc3Npb24gdmFyaWFibGUgbmFtZSwgYW5kIHRleHQgcHJpdiBuYW1lLgorICovCitE YXR1bQoraGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWVfbmFtZShQR19GVU5DVElP Tl9BUkdTKQoreworCU5hbWUJCXJvbGVuYW1lID0gUEdfR0VUQVJHX05BTUUoMCk7CisJdGV4dAkg ICAqdmFybmFtZSA9IFBHX0dFVEFSR19URVhUX1BQKDEpOworCXRleHQJICAgKnByaXZfdHlwZV90 ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMik7CisJT2lkCQkJcm9sZWlkOworCU9pZAkJCXZhcmlk OworCUFjbE1vZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNz aW5nID0gZmFsc2U7CisKKwlyb2xlaWQgPSBnZXRfcm9sZV9vaWRfb3JfcHVibGljKE5hbWVTdHIo KnJvbGVuYW1lKSk7CisJbW9kZSA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmlu Zyhwcml2X3R5cGVfdGV4dCk7CisJdmFyaWQgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZSh2YXJuYW1lKTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVS ZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19t aXNzaW5nKTsKKworCWlmIChpc19taXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdf UkVUVVJOX0JPT0woYWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2Vz IG9uIGEgc2Vzc2lvbiB2YXJpYWJsZSBnaXZlbgorICoJCXRleHQgc2Vzc2lvbiB2YXJpYWJsZSBh bmQgdGV4dCBwcml2IG5hbWUuCisgKgkJY3VycmVudF91c2VyIGlzIGFzc3VtZWQKKyAqLworRGF0 dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lKFBHX0ZVTkNUSU9OX0FSR1Mp Cit7CisJdGV4dAkgICAqdmFybmFtZSA9IFBHX0dFVEFSR19URVhUX1BQKDApOworCXRleHQJICAg KnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJT2lkCQkJcm9sZWlkOwor CU9pZAkJCXZhcmlkOworCUFjbE1vZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwli b29sCQlpc19taXNzaW5nID0gZmFsc2U7CisKKwlyb2xlaWQgPSBHZXRVc2VySWQoKTsKKwltb2Rl ID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsK Kwl2YXJpZCA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcm5hbWUpOworCisJYWNs cmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAor CQkJCQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOworCisJUEdfUkVU VVJOX0JPT0woYWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lX2lkCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2Vz IG9uIGEgc2Vzc2lvbiB2YXJpYWJsZSBnaXZlbgorICoJCW5hbWUgdXNlbmFtZSwgc2Vzc2lvbiB2 YXJpYWJsZSBvaWQsIGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAqLworRGF0dW0KK2hhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lX2lkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJTmFtZQkJ dXNlcm5hbWUgPSBQR19HRVRBUkdfTkFNRSgwKTsKKwlPaWQJCQl2YXJpZCA9IFBHX0dFVEFSR19P SUQoMSk7CisJdGV4dAkgICAqcHJpdl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsK KwlPaWQJCQlyb2xlaWQ7CisJQWNsTW9kZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0Owor CWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKworCXJvbGVpZCA9IGdldF9yb2xlX29pZF9vcl9w dWJsaWMoTmFtZVN0cigqdXNlcm5hbWUpKTsKKwltb2RlID0gY29udmVydF9zZXNzaW9uX3Zhcmlh YmxlX3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9h Y2xjaGVja19leHQoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCXJvbGVpZCwg bW9kZSwKKwkJCQkJCQkJCSZpc19taXNzaW5nKTsKKworCWlmIChpc19taXNzaW5nKQorCQlQR19S RVRVUk5fTlVMTCgpOworCisJUEdfUkVUVVJOX0JPT0woYWNscmVzdWx0ID09IEFDTENIRUNLX09L KTsKK30KKworLyoKKyAqIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZAorICoJCUNo ZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBhIHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQlzZXNz aW9uIHZhcmlhYmxlIG9pZCwgYW5kIHRleHQgcHJpdiBuYW1lLgorICoJCWN1cnJlbnRfdXNlciBp cyBhc3N1bWVkCisgKi8KK0RhdHVtCitoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWQo UEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQl2YXJpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJ dGV4dAkgICAqcHJpdl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsKKwlPaWQJCQly b2xlaWQ7CisJQWNsTW9kZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlz X21pc3NpbmcgPSBmYWxzZTsKKworCXJvbGVpZCA9IEdldFVzZXJJZCgpOworCW1vZGUgPSBjb252 ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQpOworCisJYWNs cmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAor CQkJCQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOworCisJaWYgKGlz X21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1 bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlX2lkX25hbWUKKyAqCQlDaGVjayB1c2VyIHByaXZpbGVnZXMgb24gYSBzZXNzaW9uIHZh cmlhYmxlIGdpdmVuCisgKgkJcm9sZWlkLCB0ZXh0IHNlc3Npb24gdmFyaWFibGUgbmFtZSwgYW5k IHRleHQgcHJpdiBuYW1lLgorICovCitEYXR1bQoraGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlX2lkX25hbWUoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlyb2xlaWQgPSBQR19HRVRB UkdfT0lEKDApOworCXRleHQJICAgKnZhcm5hbWUgPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsKKwl0 ZXh0CSAgICpwcml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCU9pZAkJCXZh cmlkOworCUFjbE1vZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19t aXNzaW5nID0gZmFsc2U7CisKKwltb2RlID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZf c3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKwl2YXJpZCA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lKHZhcm5hbWUpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJp YWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJ JmlzX21pc3NpbmcpOworCisJaWYgKGlzX21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisK KwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICog aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkX2lkCisgKgkJQ2hlY2sgdXNlciBwcml2 aWxlZ2VzIG9uIGEgc2Vzc2lvbiB2YXJpYWJsZSBnaXZlbgorICoJCXJvbGVpZCwgc2Vzc2lvbiB2 YXJpYWJsZSBvaWQsIGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAqLworRGF0dW0KK2hhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZV9pZF9pZChQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCXJv bGVpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJT2lkCQkJdmFyaWQgPSBQR19HRVRBUkdfT0lEKDEp OworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMik7CisJQWNs TW9kZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBm YWxzZTsKKworCW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcocHJp dl90eXBlX3RleHQpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJs ZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlz X21pc3NpbmcpOworCisJaWYgKGlzX21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQ R19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICogR2l2 ZW4gYSBzZXNzaW9uIHZhcmlhYmxlIG5hbWUgZXhwcmVzc2VkIGFzIGEgc3RyaW5nLCBsb29rIGl0 IHVwIGFuZCByZXR1cm4KKyAqIE9pZAorICovCitzdGF0aWMgT2lkCitjb252ZXJ0X3Nlc3Npb25f dmFyaWFibGVfbmFtZSh0ZXh0ICp2YXJuYW1lKQoreworCXJldHVybiBMb29rdXBWYXJpYWJsZUZy b21OYW1lTGlzdCh0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdCh2YXJuYW1lKSwgdHJ1ZSk7Cit9CisK Ky8qCisgKiBjb252ZXJ0X3ZhcmlhYmxlX3ByaXZfc3RyaW5nCisgKgkJQ29udmVydCB0ZXh0IHN0 cmluZyB0byBBY2xNb2RlIHZhbHVlLgorICovCitzdGF0aWMgQWNsTW9kZQorY29udmVydF9zZXNz aW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KQoreworCXN0YXRp YyBjb25zdCBwcml2X21hcCBzZXNzaW9uX3ZhcmlhYmxlX3ByaXZfbWFwW10gPSB7CisJCXsiU0VM RUNUIiwgQUNMX1NFTEVDVH0sCisJCXsiU0VMRUNUIFdJVEggR1JBTlQgT1BUSU9OIiwgQUNMX0dS QU5UX09QVElPTl9GT1IoQUNMX1NFTEVDVCl9LAorCQl7IlVQREFURSIsIEFDTF9VUERBVEV9LAor CQl7IlVQREFURSBXSVRIIEdSQU5UIE9QVElPTiIsIEFDTF9HUkFOVF9PUFRJT05fRk9SKEFDTF9V UERBVEUpfSwKKwkJe05VTEwsIDB9CisJfTsKKworCXJldHVybiBjb252ZXJ0X2FueV9wcml2X3N0 cmluZyhwcml2X3R5cGVfdGV4dCwgc2Vzc2lvbl92YXJpYWJsZV9wcml2X21hcCk7Cit9CiAKIC8q CiAgKiBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiAoY2FsbGVkIGJ5IEluaXRQb3N0Z3JlcykKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKaW5kZXggODIwMzFjMWU4ZTUuLmUwNGJiNTZmZjA2 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYworKysgYi9z cmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwpAQCAtMzksNiArMzksNyBAQAogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 cmFuc2Zvcm0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9k ZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAidXRpbHMvYXJyYXkuaCIKQEAgLTM3OTcsMyArMzc5 OCwxMTUgQEAgZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29r KQogCiAJcmV0dXJuIHN1Ym5hbWU7CiB9CisKKy8qCQkJCS0tLS0tLS0tLS0gUEdfVkFSSUFCTEUg Q0FDSEUgLS0tLS0tLS0tLQkJCQkgKi8KKworLyoKKyAqIGdldF92YXJuYW1lX3ZhcmlkCisgKgkJ R2l2ZW4gbmFtZSBhbmQgbmFtZXNwYWNlIG9mIHZhcmlhYmxlLCBsb29rIHVwIHRoZSBPSUQuCisg Ki8KK09pZAorZ2V0X3Zhcm5hbWVfdmFyaWQoY29uc3QgY2hhciAqdmFybmFtZSwgT2lkIHZhcm5h bWVzcGFjZSkKK3sKKwlyZXR1cm4gR2V0U3lzQ2FjaGVPaWQyKFZBUklBQkxFTkFNRU5TUCwgQW51 bV9wZ192YXJpYWJsZV9vaWQsCisJCQkJCQkgICBQb2ludGVyR2V0RGF0dW0odmFybmFtZSksCisJ CQkJCQkgICBPYmplY3RJZEdldERhdHVtKHZhcm5hbWVzcGFjZSkpOworfQorCisvKgorICogZ2V0 X3Nlc3Npb25fdmFyaWFibGVfbmFtZQorICoJCVJldHVybnMgYSBwYWxsb2MnZCBjb3B5IG9mIHRo ZSBuYW1lIG9mIGEgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLworY2hhciAqCitnZXRfc2Vz c2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1f cGdfdmFyaWFibGUgdmFyZm9ybTsKKwljaGFyCSAgICp2YXJuYW1lOworCisJdHVwID0gU2VhcmNo U3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAo IUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWls ZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1f cGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFybmFtZSA9IHBzdHJkdXAoTmFtZVN0 cih2YXJmb3JtLT52YXJuYW1lKSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJldHVy biB2YXJuYW1lOworfQorCisvKgorICogZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlCisg KgkJUmV0dXJucyB0aGUgcGdfbmFtZXNwYWNlIE9JRCBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBz ZXNzaW9uIHZhcmlhYmxlLgorICovCitPaWQKK2dldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFj ZShPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZv cm07CisJT2lkCQkJdmFybmFtZXNwYWNlOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklB QkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFs aWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHZhcmlhYmxl ICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1Qo dHVwKTsKKworCXZhcm5hbWVzcGFjZSA9IHZhcmZvcm0tPnZhcm5hbWVzcGFjZTsKKworCVJlbGVh c2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIHZhcm5hbWVzcGFjZTsKK30KKworLyoKKyAqIFJl dHVybnMgdGhlIHR5cGUgb2YgdGhlIGdpdmVuIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK09pZAor Z2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZShPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsK KwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJT2lkCQkJdmFydHlwZTsKKworCXR1cCA9IFNl YXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJ aWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChG b3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXZhcnR5cGUgPSB2YXJmb3JtLT52 YXJ0eXBlOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gdmFydHlwZTsKK30K KworLyoKKyAqIFJldHVybnMgdGhlIHR5cGUsIHR5cG1vZCBhbmQgY29sbGlkIG9mIHRoZSBnaXZl biBzZXNzaW9uIHZhcmlhYmxlLgorICovCit2b2lkCitnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBl X3R5cG1vZF9jb2xsaWQoT2lkIHZhcmlkLCBPaWQgKnR5cGlkLCBpbnQzMiAqdHlwbW9kLAorCQkJ CQkJCQkJCU9pZCAqY29sbGlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJs ZSB2YXJmb3JtOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJ ZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxv ZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2 YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOwor CisJKnR5cGlkID0gdmFyZm9ybS0+dmFydHlwZTsKKwkqdHlwbW9kID0gdmFyZm9ybS0+dmFydHlw bW9kOworCSpjb2xsaWQgPSB2YXJmb3JtLT52YXJjb2xsYXRpb247CisKKwlSZWxlYXNlU3lzQ2Fj aGUodHVwKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYyBiL3NyYy9i aW4vcGdfZHVtcC9jb21tb24uYwppbmRleCA1NmI2YzM2OGFjZi4uYmE2YjE5ZGM5YWYgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYworKysgYi9zcmMvYmluL3BnX2R1bXAvY29t bW9uLmMKQEAgLTI0Niw2ICsyNDYsOSBAQCBnZXRTY2hlbWFEYXRhKEFyY2hpdmUgKmZvdXQsIGlu dCAqbnVtVGFibGVzUHRyKQogCXBnX2xvZ19pbmZvKCJyZWFkaW5nIHN1YnNjcmlwdGlvbiBtZW1i ZXJzaGlwIG9mIHRhYmxlcyIpOwogCWdldFN1YnNjcmlwdGlvblRhYmxlcyhmb3V0KTsKIAorCXBn X2xvZ19pbmZvKCJyZWFkaW5nIHZhcmlhYmxlcyIpOworCWdldFZhcmlhYmxlcyhmb3V0KTsKKwog CWZyZWUoaW5oaW5mbyk7CQkJCS8qIG5vdCBuZWVkZWQgYW55IGxvbmdlciAqLwogCiAJKm51bVRh Ymxlc1B0ciA9IG51bVRhYmxlczsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9kdW1wdXRp bHMuYyBiL3NyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYwppbmRleCBhYjBlOWU2ZGEzYy4uMWZm YzY1NDkwMTIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYworKysgYi9z cmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMKQEAgLTUxMiw2ICs1MTIsMTIgQEAgZG8geyBcCiAJ CUNPTlZFUlRfUFJJVigncicsICJTRUxFQ1QiKTsKIAkJQ09OVkVSVF9QUklWKCd3JywgIlVQREFU RSIpOwogCX0KKwllbHNlIGlmIChzdHJjbXAodHlwZSwgIlZBUklBQkxFIikgPT0gMCB8fAorCQkJ IHN0cmNtcCh0eXBlLCAiVkFSSUFCTEVTIikgPT0gMCkKKwl7CisJCUNPTlZFUlRfUFJJVigncics ICJTRUxFQ1QiKTsKKwkJQ09OVkVSVF9QUklWKCd3JywgIlVQREFURSIpOworCX0KIAllbHNlCiAJ CWFib3J0KCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaCBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaAppbmRleCA4NTg2Y2RhZjU0MS4uODAwOTg0NWYwYmIg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaAorKysgYi9zcmMvYmluL3Bn X2R1bXAvcGdfYmFja3VwLmgKQEAgLTEzNCwxMiArMTM0LDE0IEBAIHR5cGVkZWYgc3RydWN0IF9y ZXN0b3JlT3B0aW9ucwogCWludAkJCXNlbEZ1bmN0aW9uOwogCWludAkJCXNlbFRyaWdnZXI7CiAJ aW50CQkJc2VsVGFibGU7CisJaW50CQkJc2VsVmFyaWFibGU7CiAJU2ltcGxlU3RyaW5nTGlzdCBp bmRleE5hbWVzOwogCVNpbXBsZVN0cmluZ0xpc3QgZnVuY3Rpb25OYW1lczsKIAlTaW1wbGVTdHJp bmdMaXN0IHNjaGVtYU5hbWVzOwogCVNpbXBsZVN0cmluZ0xpc3Qgc2NoZW1hRXhjbHVkZU5hbWVz OwogCVNpbXBsZVN0cmluZ0xpc3QgdHJpZ2dlck5hbWVzOwogCVNpbXBsZVN0cmluZ0xpc3QgdGFi bGVOYW1lczsKKwlTaW1wbGVTdHJpbmdMaXN0IHZhcmlhYmxlTmFtZXM7CiAKIAlpbnQJCQl1c2VE QjsKIAlDb25uUGFyYW1zCWNwYXJhbXM7CQkvKiBwYXJhbWV0ZXJzIHRvIHVzZSBpZiB1c2VEQiAq LwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jIGIvc3Jj L2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCmluZGV4IGY5NjExNjJmMzY1Li40ZjMx OTU3MTQ1OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5j CisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwpAQCAtMzE3OSw2ICsz MTc5LDE0IEBAIF90b2NFbnRyeVJlcXVpcmVkKFRvY0VudHJ5ICp0ZSwgdGVTZWN0aW9uIGN1clNl Y3Rpb24sIEFyY2hpdmVIYW5kbGUgKkFIKQogCQkJCQkhc2ltcGxlX3N0cmluZ19saXN0X21lbWJl cigmcm9wdC0+dHJpZ2dlck5hbWVzLCB0ZS0+dGFnKSkKIAkJCQkJcmV0dXJuIDA7CiAJCQl9CisJ CQllbHNlIGlmIChzdHJjbXAodGUtPmRlc2MsICJWQVJJQUJMRSIpID09IDApCisJCQl7CisJCQkJ aWYgKCFyb3B0LT5zZWxWYXJpYWJsZSkKKwkJCQkJcmV0dXJuIDA7CisJCQkJaWYgKHJvcHQtPnZh cmlhYmxlTmFtZXMuaGVhZCAhPSBOVUxMICYmCisJCQkJCSFzaW1wbGVfc3RyaW5nX2xpc3RfbWVt YmVyKCZyb3B0LT52YXJpYWJsZU5hbWVzLCB0ZS0+dGFnKSkKKwkJCQkJcmV0dXJuIDA7CisJCQl9 CiAJCQllbHNlCiAJCQkJcmV0dXJuIDA7CiAJCX0KQEAgLTM3NDIsNiArMzc1MCw3IEBAIF9nZXRP YmplY3REZXNjcmlwdGlvbihQUUV4cEJ1ZmZlciBidWYsIGNvbnN0IFRvY0VudHJ5ICp0ZSkKIAkJ c3RyY21wKHR5cGUsICJURVhUIFNFQVJDSCBESUNUSU9OQVJZIikgPT0gMCB8fAogCQlzdHJjbXAo dHlwZSwgIlRFWFQgU0VBUkNIIENPTkZJR1VSQVRJT04iKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBl LCAiVFlQRSIpID09IDAgfHwKKwkJc3RyY21wKHR5cGUsICJWQVJJQUJMRSIpID09IDAgfHwKIAkJ c3RyY21wKHR5cGUsICJWSUVXIikgPT0gMCB8fAogCS8qIG5vbi1zY2hlbWEtc3BlY2lmaWVkIG9i amVjdHMgKi8KIAkJc3RyY21wKHR5cGUsICJEQVRBQkFTRSIpID09IDAgfHwKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmlu ZGV4IDhlNjM2NGQzMmQ3Li4zZTAxM2E2ODhjZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC0zNjgsNiArMzY4 LDcgQEAgc3RhdGljIHZvaWQgZHVtcFB1YmxpY2F0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1 YmxpY2F0aW9uSW5mbyAqcHViaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wUHVibGljYXRpb25UYWJs ZShBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvblJlbEluZm8gKnB1YnJpbmZvKTsKIHN0 YXRpYyB2b2lkIGR1bXBTdWJzY3JpcHRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgU3Vic2NyaXB0 aW9uSW5mbyAqc3ViaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wU3Vic2NyaXB0aW9uVGFibGUoQXJj aGl2ZSAqZm91dCwgY29uc3QgU3ViUmVsSW5mbyAqc3VicmluZm8pOworc3RhdGljIHZvaWQgZHVt cFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbyk7CiBz dGF0aWMgdm9pZCBkdW1wRGF0YWJhc2UoQXJjaGl2ZSAqZm91dCk7CiBzdGF0aWMgdm9pZCBkdW1w RGF0YWJhc2VDb25maWcoQXJjaGl2ZSAqQUgsIFBRRXhwQnVmZmVyIG91dGJ1ZiwKIAkJCQkJCQkg ICBjb25zdCBjaGFyICpkYm5hbWUsIE9pZCBkYm9pZCk7CkBAIC01NTEwLDYgKzU1MTEsMTg4IEBA IGdldF9uZXh0X3Bvc3NpYmxlX2ZyZWVfcGdfdHlwZV9vaWQoQXJjaGl2ZSAqZm91dCwgUFFFeHBC dWZmZXIgdXBncmFkZV9xdWVyeSkKIAlyZXR1cm4gbmV4dF9wb3NzaWJsZV9mcmVlX29pZDsKIH0K IAorLyoKKyAqIGdldFZhcmlhYmxlcworICoJICBnZXQgaW5mb3JtYXRpb24gYWJvdXQgdmFyaWFi bGVzCisgKi8KK3ZvaWQKK2dldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQoreworCVBRRXhwQnVm ZmVyIHF1ZXJ5OworCVBHcmVzdWx0ICAgKnJlczsKKwlWYXJpYWJsZUluZm8gKnZhcmluZm87CisJ aW50CQkJaV90YWJsZW9pZDsKKwlpbnQJCQlpX29pZDsKKwlpbnQJCQlpX3Zhcm5hbWU7CisJaW50 CQkJaV92YXJuYW1lc3BhY2U7CisJaW50CQkJaV92YXJ0eXBlOworCWludAkJCWlfdmFydHlwbmFt ZTsKKwlpbnQJCQlpX3Zhcm93bmVyOworCWludAkJCWlfdmFyY29sbGF0aW9uOworCWludAkJCWlf dmFyYWNsOworCWludAkJCWlfYWNsZGVmYXVsdDsKKwlpbnQJCQlpLAorCQkJCW50dXBzOworCisJ aWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPCAxODAwMDApCisJCXJldHVybjsKKworCXF1ZXJ5ID0g Y3JlYXRlUFFFeHBCdWZmZXIoKTsKKworCS8qIGdldCB0aGUgdmFyaWFibGVzIGluIGN1cnJlbnQg ZGF0YWJhc2UgKi8KKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJCQkJICAiU0VMRUNUIHYu dGFibGVvaWQsIHYub2lkLCB2LnZhcm5hbWUsXG4iCisJCQkJCSAgIiAgICAgICB2LnZhcm5hbWVz cGFjZSwgdi52YXJ0eXBlLFxuIgorCQkJCQkgICIgICAgICAgcGdfY2F0YWxvZy5mb3JtYXRfdHlw ZSh2LnZhcnR5cGUsIHYudmFydHlwbW9kKSBhcyB2YXJ0eXBuYW1lLFxuIgorCQkJCQkgICIgICAg ICAgQ0FTRSBXSEVOIHYudmFyY29sbGF0aW9uIDw+IHQudHlwY29sbGF0aW9uICIKKwkJCQkJICAi ICAgICAgICAgICAgVEhFTiB2LnZhcmNvbGxhdGlvblxuIgorCQkJCQkgICIgICAgICAgICAgICBF TFNFIDBcbiIKKwkJCQkJICAiICAgICAgIEVORCBBUyB2YXJjb2xsYXRpb24sXG4iCisJCQkJCSAg IiAgICAgICB2LnZhcm93bmVyLCB2LnZhcmFjbCxcbiIKKwkJCQkJICAiICAgICAgIGFjbGRlZmF1 bHQoJ1YnLCB2LnZhcm93bmVyKSBBUyBhY2xkZWZhdWx0XG4iCisJCQkJCSAgIkZST00gcGdfY2F0 YWxvZy5wZ192YXJpYWJsZSB2XG4iCisJCQkJCSAgIkpPSU4gcGdfY2F0YWxvZy5wZ190eXBlIHQg IgorCQkJCQkgICJPTiAodi52YXJ0eXBlID0gdC5vaWQpIik7CisKKwlyZXMgPSBFeGVjdXRlU3Fs UXVlcnkoZm91dCwgcXVlcnktPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CisKKwludHVwcyA9IFBR bnR1cGxlcyhyZXMpOworCisJaV90YWJsZW9pZCA9IFBRZm51bWJlcihyZXMsICJ0YWJsZW9pZCIp OworCWlfb2lkID0gUFFmbnVtYmVyKHJlcywgIm9pZCIpOworCWlfdmFybmFtZSA9IFBRZm51bWJl cihyZXMsICJ2YXJuYW1lIik7CisJaV92YXJuYW1lc3BhY2UgPSBQUWZudW1iZXIocmVzLCAidmFy bmFtZXNwYWNlIik7CisJaV92YXJ0eXBlID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cGUiKTsKKwlp X3ZhcnR5cG5hbWUgPSBQUWZudW1iZXIocmVzLCAidmFydHlwbmFtZSIpOworCWlfdmFyY29sbGF0 aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcmNvbGxhdGlvbiIpOworCisJaV92YXJvd25lciA9IFBR Zm51bWJlcihyZXMsICJ2YXJvd25lciIpOworCWlfdmFyYWNsID0gUFFmbnVtYmVyKHJlcywgInZh cmFjbCIpOworCWlfYWNsZGVmYXVsdCA9IFBRZm51bWJlcihyZXMsICJhY2xkZWZhdWx0Iik7CisK Kwl2YXJpbmZvID0gcGdfbWFsbG9jKG50dXBzICogc2l6ZW9mKFZhcmlhYmxlSW5mbykpOworCisJ Zm9yIChpID0gMDsgaSA8IG50dXBzOyBpKyspCisJeworCQlUeXBlSW5mbyAgICp2dHlwZTsKKwor CQl2YXJpbmZvW2ldLmRvYmoub2JqVHlwZSA9IERPX1ZBUklBQkxFOworCQl2YXJpbmZvW2ldLmRv YmouY2F0SWQudGFibGVvaWQgPQorCQkJYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3RhYmxl b2lkKSk7CisJCXZhcmluZm9baV0uZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShy ZXMsIGksIGlfb2lkKSk7CisJCUFzc2lnbkR1bXBJZCgmdmFyaW5mb1tpXS5kb2JqKTsKKwkJdmFy aW5mb1tpXS5kb2JqLm5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFybmFt ZSkpOworCQl2YXJpbmZvW2ldLmRvYmoubmFtZXNwYWNlID0KKwkJCWZpbmROYW1lc3BhY2UoYXRv b2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm5hbWVzcGFjZSkpKTsKKworCQl2YXJpbmZvW2ld LnZhcnR5cGUgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFydHlwZSkpOworCQl2YXJp bmZvW2ldLnZhcnR5cG5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFydHlw bmFtZSkpOworCQl2YXJpbmZvW2ldLnZhcmNvbGxhdGlvbiA9IGF0b29pZChQUWdldHZhbHVlKHJl cywgaSwgaV92YXJjb2xsYXRpb24pKTsKKworCQl2YXJpbmZvW2ldLmRhY2wuYWNsID0gcGdfc3Ry ZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmFjbCkpOworCQl2YXJpbmZvW2ldLmRhY2wuYWNs ZGVmYXVsdCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9hY2xkZWZhdWx0KSk7CisJ CXZhcmluZm9baV0uZGFjbC5wcml2dHlwZSA9IDA7CisJCXZhcmluZm9baV0uZGFjbC5pbml0cHJp dnMgPSBOVUxMOworCQl2YXJpbmZvW2ldLnJvbG5hbWUgPSBnZXRSb2xlTmFtZShQUWdldHZhbHVl KHJlcywgaSwgaV92YXJvd25lcikpOworCisJCS8qIGRvIG5vdCB0cnkgdG8gZHVtcCBBQ0wgaWYg bm8gQUNMIGV4aXN0cyAqLworCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgaSwgaV92YXJhY2wpKQor CQkJdmFyaW5mb1tpXS5kb2JqLmNvbXBvbmVudHMgfD0gRFVNUF9DT01QT05FTlRfQUNMOworCisJ CWlmIChzdHJsZW4odmFyaW5mb1tpXS5yb2xuYW1lKSA9PSAwKQorCQkJcGdfbG9nX3dhcm5pbmco Im93bmVyIG9mIHZhcmlhYmxlIFwiJXNcIiBhcHBlYXJzIHRvIGJlIGludmFsaWQiLAorCQkJCQkJ ICAgdmFyaW5mb1tpXS5kb2JqLm5hbWUpOworCisJCS8qIGRlY2lkZSB3aGV0aGVyIHdlIHdhbnQg dG8gZHVtcCBpdCAqLworCQlzZWxlY3REdW1wYWJsZU9iamVjdCgmKHZhcmluZm9baV0uZG9iaiks IGZvdXQpOworCisJCXZ0eXBlID0gZmluZFR5cGVCeU9pZCh2YXJpbmZvW2ldLnZhcnR5cGUpOwor CQlhZGRPYmplY3REZXBlbmRlbmN5KCZ2YXJpbmZvW2ldLmRvYmosIHZ0eXBlLT5kb2JqLmR1bXBJ ZCk7CisJfQorCVBRY2xlYXIocmVzKTsKKworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7Cit9 CisKKy8qCisgKiBkdW1wVmFyaWFibGUKKyAqCSAgZHVtcCB0aGUgZGVmaW5pdGlvbiBvZiB0aGUg Z2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZQorICovCitzdGF0aWMgdm9pZAorZHVtcFZhcmlhYmxlKEFy Y2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKK3sKKwlEdW1wT3B0aW9u cyAqZG9wdCA9IGZvdXQtPmRvcHQ7CisKKwlQUUV4cEJ1ZmZlciBkZWxxOworCVBRRXhwQnVmZmVy IHF1ZXJ5OworCWNoYXIJICAgKnF1YWx2YXJuYW1lOworCWNvbnN0IGNoYXIgKnZhcnR5cG5hbWU7 CisJT2lkCQkJdmFyY29sbGF0aW9uOworCisJLyogc2tpcCBpZiBub3QgdG8gYmUgZHVtcGVkICov CisJaWYgKCF2YXJpbmZvLT5kb2JqLmR1bXAgfHwgIWRvcHQtPmR1bXBTY2hlbWEpCisJCXJldHVy bjsKKworCWRlbHEgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCXF1ZXJ5ID0gY3JlYXRlUFFFeHBC dWZmZXIoKTsKKworCXF1YWx2YXJuYW1lID0gcGdfc3RyZHVwKGZtdFF1YWxpZmllZER1bXBhYmxl KHZhcmluZm8pKTsKKwl2YXJ0eXBuYW1lID0gdmFyaW5mby0+dmFydHlwbmFtZTsKKwl2YXJjb2xs YXRpb24gPSB2YXJpbmZvLT52YXJjb2xsYXRpb247CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxx LCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCisJCQkJCSAgcXVhbHZhcm5hbWUpOworCisJYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgVkFSSUFCTEUgJXMgQVMgJXMiLAorCQkJCQkgIHF1 YWx2YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKworCWlmIChPaWRJc1ZhbGlkKHZhcmNvbGxhdGlvbikp CisJeworCQlDb2xsSW5mbyAgICpjb2xsOworCisJCWNvbGwgPSBmaW5kQ29sbGF0aW9uQnlPaWQo dmFyY29sbGF0aW9uKTsKKwkJaWYgKGNvbGwpCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwg IiBDT0xMQVRFICVzIiwKKwkJCQkJCQkgIGZtdFF1YWxpZmllZER1bXBhYmxlKGNvbGwpKTsKKwl9 CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIjtcbiIpOworCisJaWYgKHZhcmluZm8tPmRv YmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0RFRklOSVRJT04pCisJCUFyY2hpdmVFbnRyeShmb3V0 LCB2YXJpbmZvLT5kb2JqLmNhdElkLCB2YXJpbmZvLT5kb2JqLmR1bXBJZCwKKwkJCQkJIEFSQ0hJ VkVfT1BUUygudGFnID0gdmFyaW5mby0+ZG9iai5uYW1lLAorCQkJCQkJCQkgIC5uYW1lc3BhY2Ug PSB2YXJpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1lLAorCQkJCQkJCQkgIC5vd25lciA9 IHZhcmluZm8tPnJvbG5hbWUsCisJCQkJCQkJCSAgLmRlc2NyaXB0aW9uID0gIlZBUklBQkxFIiwK KwkJCQkJCQkJICAuc2VjdGlvbiA9IFNFQ1RJT05fUFJFX0RBVEEsCisJCQkJCQkJCSAgLmNyZWF0 ZVN0bXQgPSBxdWVyeS0+ZGF0YSwKKwkJCQkJCQkJICAuZHJvcFN0bXQgPSBkZWxxLT5kYXRhKSk7 CisKKwkvKiBkdW1wIGNvbW1lbnQgaWYgYW55ICovCisJaWYgKHZhcmluZm8tPmRvYmouZHVtcCAm IERVTVBfQ09NUE9ORU5UX0NPTU1FTlQpCisJCWR1bXBDb21tZW50KGZvdXQsICJWQVJJQUJMRSIs IHF1YWx2YXJuYW1lLAorCQkJCQlOVUxMLCB2YXJpbmZvLT5yb2xuYW1lLAorCQkJCQl2YXJpbmZv LT5kb2JqLmNhdElkLCAwLCB2YXJpbmZvLT5kb2JqLmR1bXBJZCk7CisKKwkvKiBkdW1wIEFDTCBp ZiBhbnkgKi8KKwlpZiAodmFyaW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfQUNMKQor CXsKKwkJY2hhcgkgICAqcXZhcm5hbWUgPSBwZ19zdHJkdXAoZm10SWQodmFyaW5mby0+ZG9iai5u YW1lKSk7CisKKwkJZHVtcEFDTChmb3V0LCB2YXJpbmZvLT5kb2JqLmR1bXBJZCwgSW52YWxpZER1 bXBJZCwgIlZBUklBQkxFIiwKKwkJCQlxdmFybmFtZSwgTlVMTCwKKwkJCQl2YXJpbmZvLT5kb2Jq Lm5hbWVzcGFjZS0+ZG9iai5uYW1lLCBOVUxMLCB2YXJpbmZvLT5yb2xuYW1lLAorCQkJCSZ2YXJp bmZvLT5kYWNsKTsKKworCQlmcmVlKHF2YXJuYW1lKTsKKwl9CisKKwlkZXN0cm95UFFFeHBCdWZm ZXIoZGVscSk7CisJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5KTsKKworCWZyZWUocXVhbHZhcm5h bWUpOworfQorCiBzdGF0aWMgdm9pZAogYmluYXJ5X3VwZ3JhZGVfc2V0X3R5cGVfb2lkc19ieV90 eXBlX29pZChBcmNoaXZlICpmb3V0LAogCQkJCQkJCQkJCSBQUUV4cEJ1ZmZlciB1cGdyYWRlX2J1 ZmZlciwKQEAgLTExMzc1LDYgKzExNTU4LDkgQEAgZHVtcER1bXBhYmxlT2JqZWN0KEFyY2hpdmUg KmZvdXQsIER1bXBhYmxlT2JqZWN0ICpkb2JqKQogCQljYXNlIERPX1JFTF9TVEFUUzoKIAkJCWR1 bXBSZWxhdGlvblN0YXRzKGZvdXQsIChjb25zdCBSZWxTdGF0c0luZm8gKikgZG9iaik7CiAJCQli cmVhazsKKwkJY2FzZSBET19WQVJJQUJMRToKKwkJCWR1bXBWYXJpYWJsZShmb3V0LCAoVmFyaWFi bGVJbmZvICopIGRvYmopOworCQkJYnJlYWs7CiAJCWNhc2UgRE9fUFJFX0RBVEFfQk9VTkRBUlk6 CiAJCWNhc2UgRE9fUE9TVF9EQVRBX0JPVU5EQVJZOgogCQkJLyogbmV2ZXIgZHVtcGVkLCBub3Ro aW5nIHRvIGRvICovCkBAIC0xNTgyOSw2ICsxNjAxNSw5IEBAIGR1bXBEZWZhdWx0QUNMKEFyY2hp dmUgKmZvdXQsIGNvbnN0IERlZmF1bHRBQ0xJbmZvICpkYWNsaW5mbykKIAkJY2FzZSBERUZBQ0xP QkpfTEFSR0VPQkpFQ1Q6CiAJCQl0eXBlID0gIkxBUkdFIE9CSkVDVFMiOwogCQkJYnJlYWs7CisJ CWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJdHlwZSA9ICJWQVJJQUJMRVMiOworCQkJYnJl YWs7CiAJCWRlZmF1bHQ6CiAJCQkvKiBzaG91bGRuJ3QgZ2V0IGhlcmUgKi8KIAkJCXBnX2ZhdGFs KCJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGUgaW4gZGVmYXVsdCBwcml2aWxlZ2VzOiAlZCIsCkBA IC0xOTU0Niw2ICsxOTczNSw3IEBAIGFkZEJvdW5kYXJ5RGVwZW5kZW5jaWVzKER1bXBhYmxlT2Jq ZWN0ICoqZG9ianMsIGludCBudW1PYmpzLAogCQkJY2FzZSBET19DT05WRVJTSU9OOgogCQkJY2Fz ZSBET19UQUJMRToKIAkJCWNhc2UgRE9fVEFCTEVfQVRUQUNIOgorCQkJY2FzZSBET19WQVJJQUJM RToKIAkJCWNhc2UgRE9fQVRUUkRFRjoKIAkJCWNhc2UgRE9fUFJPQ0xBTkc6CiAJCQljYXNlIERP X0NBU1Q6CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaAppbmRleCBlNmYwZjg2YTQ1OS4uMDgyMTA2NmIzYjAgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuaApAQCAtNTMsNiArNTMsNyBAQCB0eXBlZGVmIGVudW0KIAlET19UQUJMRSwKIAlET19UQUJM RV9BVFRBQ0gsCiAJRE9fQVRUUkRFRiwKKwlET19WQVJJQUJMRSwKIAlET19JTkRFWCwKIAlET19J TkRFWF9BVFRBQ0gsCiAJRE9fU1RBVFNFWFQsCkBAIC03MzIsNiArNzMzLDE5IEBAIHR5cGVkZWYg c3RydWN0IF9TdWJSZWxJbmZvCiAJY2hhcgkgICAqc3JzdWJsc247CiB9IFN1YlJlbEluZm87CiAK Ky8qCisgKiBUaGUgVmFyaWFibGVJbmZvIHN0cnVjdCBpcyB1c2VkIHRvIHJlcHJlc2VudCBzZXNz aW9uIHZhcmlhYmxlcworICovCit0eXBlZGVmIHN0cnVjdCBfVmFyaWFibGVJbmZvCit7CisJRHVt cGFibGVPYmplY3QgZG9iajsKKwlEdW1wYWJsZUFjbCBkYWNsOworCU9pZAkJCXZhcnR5cGU7CisJ Y2hhcgkgICAqdmFydHlwbmFtZTsKKwlPaWQJCQl2YXJjb2xsYXRpb247CisJY29uc3QgY2hhciAq cm9sbmFtZTsJCS8qIG5hbWUgb2Ygb3duZXIsIG9yIGVtcHR5IHN0cmluZyAqLworfSBWYXJpYWJs ZUluZm87CisKIC8qCiAgKgljb21tb24gdXRpbGl0eSBmdW5jdGlvbnMKICAqLwpAQCAtODE1LDUg KzgyOSw2IEBAIGV4dGVybiB2b2lkIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQs IFRhYmxlSW5mbyB0YmxpbmZvW10sCiAJCQkJCQkJCSBpbnQgbnVtVGFibGVzKTsKIGV4dGVybiB2 b2lkIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCk7CiBleHRlcm4gdm9pZCBnZXRTdWJz Y3JpcHRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCk7CitleHRlcm4gdm9pZCBnZXRWYXJpYWJsZXMo QXJjaGl2ZSAqZm91dCk7CiAKICNlbmRpZgkJCQkJCQkvKiBQR19EVU1QX0ggKi8KZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wX3NvcnQuYwppbmRleCAwYjA5Nzc3ODhmMS4uYjM0ZjM0MThmNjQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cF9zb3J0LmMKQEAgLTc3LDYgKzc3LDcgQEAgZW51bSBkYk9iamVjdFR5cGVQcmlvcml0aWVzCiAJ UFJJT19EVU1NWV9UWVBFLAogCVBSSU9fQVRUUkRFRiwKIAlQUklPX0xBUkdFX09CSkVDVCwKKwlQ UklPX1ZBUklBQkxFLAogCVBSSU9fUFJFX0RBVEFfQk9VTkRBUlksCQkvKiBib3VuZGFyeSEgKi8K IAlQUklPX1RBQkxFX0RBVEEsCiAJUFJJT19TRVFVRU5DRV9TRVQsCkBAIC0xMTksNiArMTIwLDcg QEAgc3RhdGljIGNvbnN0IGludCBkYk9iamVjdFR5cGVQcmlvcml0eVtdID0KIAlbRE9fVEFCTEVd ID0gUFJJT19UQUJMRSwKIAlbRE9fVEFCTEVfQVRUQUNIXSA9IFBSSU9fVEFCTEVfQVRUQUNILAog CVtET19BVFRSREVGXSA9IFBSSU9fQVRUUkRFRiwKKwlbRE9fVkFSSUFCTEVdID0gUFJJT19WQVJJ QUJMRSwKIAlbRE9fSU5ERVhdID0gUFJJT19JTkRFWCwKIAlbRE9fSU5ERVhfQVRUQUNIXSA9IFBS SU9fSU5ERVhfQVRUQUNILAogCVtET19TVEFUU0VYVF0gPSBQUklPX1NUQVRTRVhULApAQCAtMTUz Myw2ICsxNTM1LDExIEBAIGRlc2NyaWJlRHVtcGFibGVPYmplY3QoRHVtcGFibGVPYmplY3QgKm9i aiwgY2hhciAqYnVmLCBpbnQgYnVmc2l6ZSkKIAkJCQkJICJSRUxBVElPTiBTVEFUSVNUSUNTIEZP UiAlcyAgKElEICVkIE9JRCAldSkiLAogCQkJCQkgb2JqLT5uYW1lLCBvYmotPmR1bXBJZCwgb2Jq LT5jYXRJZC5vaWQpOwogCQkJcmV0dXJuOworCQljYXNlIERPX1ZBUklBQkxFOgorCQkJc25wcmlu dGYoYnVmLCBidWZzaXplLAorCQkJCQkgIlZBUklBQkxFICVzICAoSUQgJWQgT0lEICV1KSIsCisJ CQkJCSBvYmotPm5hbWUsIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CisJCQlyZXR1cm47 CiAJfQogCS8qIHNob3VsZG4ndCBnZXQgaGVyZSAqLwogCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggNTc2MzI2ZGFlYzcuLjFjNGU3OWI2YTM5IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmlu L3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtOTAxLDYgKzkwMSwxNiBAQCBteSAldGVzdHMg PSAoCiAJCXVubGlrZSA9PiB7IG5vX3ByaXZzID0+IDEsIH0sCiAJICB9LAogCisJJ0FMVEVSIERF RkFVTFQgUFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIEdSQU5UIFNF TEVDVCBPTiBWQVJJQUJMRVMgVE8gUFVCTElDJworCSAgPT4geworCQljcmVhdGVfb3JkZXIgPT4g NTYsCisJCWNyZWF0ZV9zcWwgICA9PiAnQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xF IHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFUyBUTyBQVUJM SUM7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZP UiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFUyBU TyBQVUJMSUM7XEUveG0sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0 YSA9PiAxLCB9LAorCQl1bmxpa2UgPT4geyBub19wcml2cyA9PiAxLCB9LAorCSAgfSwKKwogCSdB TFRFUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUnID0+IHsKIAkJcmVnZXhwID0+IHFyL14K IAkJCVxRQUxURVIgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIFdJVEggXEUKQEAgLTE3OTcs NiArMTgwNywyMyBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDT01NRU5UIE9OIFZB UklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDcxLAor CQljcmVhdGVfc3FsICAgPT4gJ0NPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxl MQorCQkJCQkgICBJUyBcJ2NvbW1lbnQgb24gdmFyaWFibGVcJzsnLAorCQlyZWdleHAgPT4KKwkJ ICBxci9eXFFDT01NRU5UIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgSVMgJ2NvbW1l bnQgb24gdmFyaWFibGUnO1xFL20sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVk dW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhICAgICA9PiAxLAorCQl9 LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlv bmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NPUFkgdGVzdF90 YWJsZScgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNCwKIAkJY3JlYXRlX3NxbCA9PiAnSU5TRVJU IElOVE8gZHVtcF90ZXN0LnRlc3RfdGFibGUgKGNvbDEpICcKQEAgLTQxMDUsNiArNDEzMiwyNCBA QCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUgVkFSSUFCTEUgdGVzdF92YXJp YWJsZScgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdDUkVB VEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3FsICAg PT4gJ0NSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIEFTIGludGVnZXI7JywKKwkJ cmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEg QVMgaW50ZWdlcjtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBf dGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5s aWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1w X21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgVklFVyB0ZXN0X3Zp ZXcnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVfc3FsID0+ICdDUkVBVEUg VklFVyBkdW1wX3Rlc3QudGVzdF92aWV3CkBAIC00NTY5LDYgKzQ2MTQsMjUgQEAgbXkgJXRlc3Rz ID0gKAogCQlsaWtlID0+IHt9LAogCX0sCiAKKwknR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIGR1 bXBfdGVzdC52YXJpYWJsZTEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDczLAorCQljcmVhdGVf c3FsID0+CisJCSAgJ0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUx IFRPIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGU7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRR1JB TlQgU0VMRUNUIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgVE8gcmVncmVzc19kdW1w X3Rlc3Rfcm9sZTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQkl ZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAor CQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlub19w cml2cyAgICAgICAgICAgICAgICAgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9 PiAxLAorCQl9LAorCX0sCisKIAknUkVGUkVTSCBNQVRFUklBTElaRUQgVklFVyBtYXR2aWV3JyA9 PiB7CiAJCXJlZ2V4cCA9PiBxci9eXFFSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIGR1bXBfdGVz dC5tYXR2aWV3O1xFL20sCiAJCWxpa2UgPT4KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9jb21t YW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCmluZGV4IGE4YTEzYzJiODhiLi5jZmNhYTY2 ZjU3ZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYworKysgYi9zcmMvYmluL3Bz cWwvY29tbWFuZC5jCkBAIC0xMjQ2LDYgKzEyNDYsOSBAQCBleGVjX2NvbW1hbmRfZChQc3FsU2Nh blN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCwgY29uc3QgY2hhciAqY21kKQog CQkJCQkJYnJlYWs7CiAJCQkJfQogCQkJCWJyZWFrOworCQkJY2FzZSAnVic6CQkJLyogVmFyaWFi bGVzICovCisJCQkJc3VjY2VzcyA9IGxpc3RWYXJpYWJsZXMocGF0dGVybiwgc2hvd192ZXJib3Nl KTsKKwkJCQlicmVhazsKIAkJCWNhc2UgJ3gnOgkJCS8qIEV4dGVuc2lvbnMgKi8KIAkJCQlpZiAo c2hvd192ZXJib3NlKQogCQkJCQlzdWNjZXNzID0gbGlzdEV4dGVuc2lvbkNvbnRlbnRzKHBhdHRl cm4pOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYwppbmRleCA4OTcwNjc3YWM2NC4uOGQ1ZjYzMzIyYjggMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0x MjIzLDcgKzEyMjMsNyBAQCBsaXN0RGVmYXVsdEFDTHMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJ CQkJICAiU0VMRUNUIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKGQuZGVmYWNscm9sZSkgQVMg XCIlc1wiLFxuIgogCQkJCQkgICIgIG4ubnNwbmFtZSBBUyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAg Q0FTRSBkLmRlZmFjbG9ianR5cGUgIgotCQkJCQkgICIgICAgV0hFTiAnJWMnIFRIRU4gJyVzJyBX SEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcyciCisJCQkJCSAgIiAgICBXSEVO ICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBX SEVOICclYycgVEhFTiAnJXMnIgogCQkJCQkgICIgICAgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVO ICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgRU5EIEFTIFwiJXNcIixcbiIKIAkJ CQkJICAiICAiLAogCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwKQEAgLTEyNDAsNiArMTI0 MCw4IEBAIGxpc3REZWZhdWx0QUNMcyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJCQkgIGdldHRl eHRfbm9vcCgic2NoZW1hIiksCiAJCQkJCSAgREVGQUNMT0JKX0xBUkdFT0JKRUNULAogCQkJCQkg IGdldHRleHRfbm9vcCgibGFyZ2Ugb2JqZWN0IiksCisJCQkJCSAgREVGQUNMT0JKX1ZBUklBQkxF LAorCQkJCQkgIGdldHRleHRfbm9vcCgic2Vzc2lvbiB2YXJpYWJsZSIpLAogCQkJCQkgIGdldHRl eHRfbm9vcCgiVHlwZSIpKTsKIAogCXByaW50QUNMQ29sdW1uKCZidWYsICJkLmRlZmFjbGFjbCIp OwpAQCAtNTMxMCw2ICs1MzEyLDEwMiBAQCBlcnJvcl9yZXR1cm46CiAJcmV0dXJuIGZhbHNlOwog fQogCisvKgorICogXGRWCisgKgorICogbGlzdFZhcmlhYmxlcygpCisgKi8KK2Jvb2wKK2xpc3RW YXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQoreworCVBRRXhwQnVm ZmVyRGF0YSBidWY7CisJUEdyZXN1bHQgICAqcmVzOworCXByaW50UXVlcnlPcHQgbXlvcHQgPSBw c2V0LnBvcHQ7CisJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxz ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisKKwlpZiAocHNl dC5zdmVyc2lvbiA8IDE4MDAwMCkKKwl7CisJCWNoYXIJCXN2ZXJidWZbMzJdOworCisJCXBnX2xv Z19lcnJvcigiVGhlIHNlcnZlciAodmVyc2lvbiAlcykgZG9lcyBub3Qgc3VwcG9ydCBzZXNzaW9u IHZhcmlhYmxlcy4iLAorCQkJCQkgZm9ybWF0UEdWZXJzaW9uTnVtYmVyKHBzZXQuc3ZlcnNpb24s IGZhbHNlLAorCQkJCQkJCQkJCSAgIHN2ZXJidWYsIHNpemVvZihzdmVyYnVmKSkpOworCQlyZXR1 cm4gdHJ1ZTsKKwl9CisKKwlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7CisKKwlwcmludGZQUUV4cEJ1 ZmZlcigmYnVmLAorCQkJCQkgICJTRUxFQ1Qgbi5uc3BuYW1lIGFzIFwiJXNcIixcbiIKKwkJCQkJ ICAiICB2LnZhcm5hbWUgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cuZm9ybWF0 X3R5cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIChT RUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfY29sbGF0aW9uIGMsIHBnX2NhdGFs b2cucGdfdHlwZSBidFxuIgorCQkJCQkgICIgICBXSEVSRSBjLm9pZCA9IHYudmFyY29sbGF0aW9u IEFORCBidC5vaWQgPSB2LnZhcnR5cGUgQU5EIHYudmFyY29sbGF0aW9uIDw+IGJ0LnR5cGNvbGxh dGlvbikgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlk KHYudmFyb3duZXIpIGFzIFwiJXNcIlxuIiwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIlNjaGVtYSIp LAorCQkJCQkgIGdldHRleHRfbm9vcCgiTmFtZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiVHlw ZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0aW9uIiksCisJCQkJCSAgZ2V0dGV4dF9u b29wKCJPd25lciIpKTsKKworCWlmICh2ZXJib3NlKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJT dHIoJmJ1ZiwgIixcbiAgIik7CisJCXByaW50QUNMQ29sdW1uKCZidWYsICJ2LnZhcmFjbCIpOwor CQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLFxuICBwZ19jYXRhbG9nLm9ial9k ZXNjcmlwdGlvbih2Lm9pZCwgJ3BnX3ZhcmlhYmxlJykgQVMgXCIlc1wiIiwKKwkJCQkJCSAgZ2V0 dGV4dF9ub29wKCJEZXNjcmlwdGlvbiIpKTsKKwl9CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigm YnVmLAorCQkJCQkJICJcbkZST00gcGdfY2F0YWxvZy5wZ192YXJpYWJsZSB2IgorCQkJCQkJICJc biAgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG4gT04gbi5vaWQgPSB2LnZh cm5hbWVzcGFjZSIpOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIlxuV0hFUkUgdHJ1 ZVxuIik7CisJaWYgKCFwYXR0ZXJuKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiICAg ICAgQU5EIG4ubnNwbmFtZSA8PiAncGdfY2F0YWxvZydcbiIKKwkJCQkJCQkgIiAgICAgIEFORCBu Lm5zcG5hbWUgPD4gJ2luZm9ybWF0aW9uX3NjaGVtYSdcbiIpOworCisJaWYgKCF2YWxpZGF0ZVNR TE5hbWVQYXR0ZXJuKCZidWYsIHBhdHRlcm4sIHRydWUsIGZhbHNlLAorCQkJCQkJCQkibi5uc3Bu YW1lIiwgInYudmFybmFtZSIsIE5VTEwsCisJCQkJCQkJCSJwZ19jYXRhbG9nLnBnX3ZhcmlhYmxl X2lzX3Zpc2libGUodi5vaWQpIiwKKwkJCQkJCQkJTlVMTCwgMykpCisJCXJldHVybiBmYWxzZTsK KworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJPUkRFUiBCWSAxLDI7Iik7CisKKwlyZXMg PSBQU1FMZXhlYyhidWYuZGF0YSk7CisJdGVybVBRRXhwQnVmZmVyKCZidWYpOworCWlmICghcmVz KQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKgorCSAqIE1vc3QgZnVuY3Rpb25zIGluIHRoaXMgZmls ZSBhcmUgY29udGVudCB0byBwcmludCBhbiBlbXB0eSB0YWJsZSB3aGVuCisJICogdGhlcmUgYXJl IG5vIG1hdGNoaW5nIG9iamVjdHMuICBXZSBpbnRlbnRpb25hbGx5IGRldmlhdGUgZnJvbSB0aGF0 CisJICogaGVyZSwgYnV0IG9ubHkgaW4gIXF1aWV0IG1vZGUsIGZvciBoaXN0b3JpY2FsIHJlYXNv bnMuCisJICovCisJaWYgKFBRbnR1cGxlcyhyZXMpID09IDAgJiYgIXBzZXQucXVpZXQpCisJewor CQlpZiAocGF0dGVybikKKwkJCXBnX2xvZ19lcnJvcigiRGlkIG5vdCBmaW5kIGFueSBzZXNzaW9u IHZhcmlhYmxlIG5hbWVkIFwiJXNcIi4iLAorCQkJCQkJIHBhdHRlcm4pOworCQllbHNlCisJCQlw Z19sb2dfZXJyb3IoIkRpZCBub3QgZmluZCBhbnkgc2Vzc2lvbiB2YXJpYWJsZXMuIik7CisJfQor CWVsc2UKKwl7CisJCW15b3B0Lm51bGxQcmludCA9IE5VTEw7CisJCW15b3B0LnRpdGxlID0gXygi TGlzdCBvZiB2YXJpYWJsZXMiKTsKKwkJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7CisJ CW15b3B0LnRyYW5zbGF0ZV9jb2x1bW5zID0gdHJhbnNsYXRlX2NvbHVtbnM7CisJCW15b3B0Lm5f dHJhbnNsYXRlX2NvbHVtbnMgPSBsZW5ndGhvZih0cmFuc2xhdGVfY29sdW1ucyk7CisKKwkJcHJp bnRRdWVyeShyZXMsICZteW9wdCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUp OworCX0KKworCVBRY2xlYXIocmVzKTsKKwlyZXR1cm4gdHJ1ZTsKK30KIAogLyoKICAqIFxkRnAK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmgKaW5kZXggMThlY2FhNjA5NDkuLjU1Y2VkNGFhYjdiIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuaAorKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaApAQCAtMTQ5LDQg KzE0OSw3IEBAIGV4dGVybiBib29sIGxpc3RPcEZhbWlseUZ1bmN0aW9ucyhjb25zdCBjaGFyICph Y2Nlc3NfbWV0aG9kX3BhdHRlcm4sCiAvKiBcZGwgb3IgXGxvX2xpc3QgKi8KIGV4dGVybiBib29s IGxpc3RMYXJnZU9iamVjdHMoYm9vbCB2ZXJib3NlKTsKIAorLyogXGRWICovCitleHRlcm4gYm9v bCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmFyYm9zZSk7CisKICNl bmRpZgkJCQkJCQkvKiBERVNDUklCRV9IICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvaGVs cC5jIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwppbmRleCBmZTk2ZTNlMWRlOS4uODg5ZjZjYjJkYzQg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9oZWxwLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAu YwpAQCAtMjc0LDYgKzI3NCw3IEBAIHNsYXNoVXNhZ2UodW5zaWduZWQgc2hvcnQgaW50IHBhZ2Vy KQogCUhFTFAwKCIgIFxcZFRbU3grXSBbUEFUVEVSTl0gICAgIGxpc3QgZGF0YSB0eXBlc1xuIik7 CiAJSEVMUDAoIiAgXFxkdVtTeCtdIFtQQVRURVJOXSAgICAgbGlzdCByb2xlc1xuIik7CiAJSEVM UDAoIiAgXFxkdltTeCtdIFtQQVRURVJOXSAgICAgbGlzdCB2aWV3c1xuIik7CisJSEVMUDAoIiAg XFxkVlt4K10gIFtQQVRURVJOXSAgICAgbGlzdCBzZXNzaW9uIHZhcmlhYmxlc1xuIik7CiAJSEVM UDAoIiAgXFxkeFt4K10gIFtQQVRURVJOXSAgICAgbGlzdCBleHRlbnNpb25zXG4iKTsKIAlIRUxQ MCgiICBcXGRYW3hdICAgW1BBVFRFUk5dICAgICBsaXN0IGV4dGVuZGVkIHN0YXRpc3RpY3NcbiIp OwogCUhFTFAwKCIgIFxcZHlbeCtdICBbUEFUVEVSTl0gICAgIGxpc3QgZXZlbnQgdHJpZ2dlcnNc biIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IGM5MTZiOTI5OWE4Li45NGJkODZjMDFiOSAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtOTcwLDYgKzk3MCwxMyBAQCBzdGF0aWMgY29uc3Qg U2NoZW1hUXVlcnkgUXVlcnlfZm9yX3RyaWdnZXJfb2ZfdGFibGUgPSB7CiAJLnJlZm5hbWVzcGFj ZSA9ICJjMS5yZWxuYW1lc3BhY2UiLAogfTsKIAorc3RhdGljIGNvbnN0IFNjaGVtYVF1ZXJ5IFF1 ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyA9IHsKKwkubWluX3NlcnZlcl92ZXJzaW9uID0gMTgw MDAwLAorCS5jYXRuYW1lID0gInBnX2NhdGFsb2cucGdfdmFyaWFibGUgdiIsCisJLnZpc2NvbmRp dGlvbiA9ICJwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlX2lzX3Zpc2libGUodi5vaWQpIiwKKwkubmFt ZXNwYWNlID0gInYudmFybmFtZXNwYWNlIiwKKwkucmVzdWx0ID0gInYudmFybmFtZSIsCit9Owog CiAvKgogICogUXVlcmllcyB0byBnZXQgbGlzdHMgb2YgbmFtZXMgb2YgdmFyaW91cyBraW5kcyBv ZiB0aGluZ3MsIHBvc3NpYmx5CkBAIC0xMzE4LDYgKzEzMjUsNyBAQCBzdGF0aWMgY29uc3QgcGdz cWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9IHsKIAkJCQkJCQkJCQkJCQkJCQkJCQkg KiBUQUJMRSAuLi4gKi8KIAl7IlVTRVIiLCBRdWVyeV9mb3JfbGlzdF9vZl9yb2xlcywgTlVMTCwg TlVMTCwgS2V5d29yZHNfZm9yX3VzZXJfdGhpbmd9LAogCXsiVVNFUiBNQVBQSU5HIEZPUiIsIE5V TEwsIE5VTEwsIE5VTEx9LAorCXsiVkFSSUFCTEUiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xp c3Rfb2ZfdmFyaWFibGVzfSwKIAl7IlZJRVciLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rf b2Zfdmlld3N9LAogCXtOVUxMfQkJCQkJCS8qIGVuZCBvZiBsaXN0ICovCiB9OwpAQCAtMTg4Myw3 ICsxODkxLDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwg aW50IGVuZCkKIAkJIlxcZEYiLCAiXFxkRmQiLCAiXFxkRnAiLCAiXFxkRnQiLCAiXFxkZyIsICJc XGRpIiwgIlxcZGwiLCAiXFxkTCIsCiAJCSJcXGRtIiwgIlxcZG4iLCAiXFxkbyIsICJcXGRPIiwg IlxcZHAiLCAiXFxkUCIsICJcXGRQaSIsICJcXGRQdCIsCiAJCSJcXGRyZHMiLCAiXFxkcmciLCAi XFxkUnMiLCAiXFxkUnAiLCAiXFxkcyIsCi0JCSJcXGR0IiwgIlxcZFQiLCAiXFxkdiIsICJcXGR1 IiwgIlxcZHgiLCAiXFxkWCIsICJcXGR5IiwKKwkJIlxcZHQiLCAiXFxkVCIsICJcXGR2IiwgIlxc ZHUiLCAiXFxkeCIsICJcXGRYIiwgIlxcZHkiLCAiXFxkViIsCiAJCSJcXGVjaG8iLCAiXFxlZGl0 IiwgIlxcZWYiLCAiXFxlbGlmIiwgIlxcZWxzZSIsICJcXGVuY29kaW5nIiwKIAkJIlxcZW5kaWYi LCAiXFxlbmRwaXBlbGluZSIsICJcXGVycnZlcmJvc2UiLCAiXFxldiIsCiAJCSJcXGYiLCAiXFxm bHVzaCIsICJcXGZsdXNocmVxdWVzdCIsCkBAIC0yNTg2LDYgKzI1OTQsOSBAQCBtYXRjaF9wcmV2 aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJCQkJCQkgICJBTEwiKTsKIAllbHNlIGlm IChNYXRjaGVzKCJBTFRFUiIsICJTWVNURU0iLCAiU0VUIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVU RV9XSVRIKCJUTyIpOworCS8qIEFMVEVSIFZBUklBQkxFIDxuYW1lPiAqLworCWVsc2UgaWYgKE1h dGNoZXMoIkFMVEVSIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJP V05FUiBUTyIsICJSRU5BTUUgVE8iLCAiU0VUIFNDSEVNQSIpOwogCS8qIEFMVEVSIFZJRVcgPG5h bWU+ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiVklFVyIsIE1hdGNoQW55KSkKIAkJ Q09NUExFVEVfV0lUSCgiQUxURVIgQ09MVU1OIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSIsICJSRVNF VCIsICJTRVQiKTsKQEAgLTMxNjksNyArMzE4MCw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGlu dCBwYXR0ZXJuX2lkLAogCQkJCQkgICJST1VUSU5FIiwgIlJVTEUiLCAiU0NIRU1BIiwgIlNFUVVF TkNFIiwgIlNFUlZFUiIsCiAJCQkJCSAgIlNUQVRJU1RJQ1MiLCAiU1VCU0NSSVBUSU9OIiwgIlRB QkxFIiwKIAkJCQkJICAiVEFCTEVTUEFDRSIsICJURVhUIFNFQVJDSCIsICJUUkFOU0ZPUk0gRk9S IiwKLQkJCQkJICAiVFJJR0dFUiIsICJUWVBFIiwgIlZJRVciKTsKKwkJCQkJICAiVFJJR0dFUiIs ICJUWVBFIiwgIlZBUklBQkxFIiwgIlZJRVciKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDT01NRU5U IiwgIk9OIiwgIkFDQ0VTUyIsICJNRVRIT0QiKSkKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVy eV9mb3JfbGlzdF9vZl9hY2Nlc3NfbWV0aG9kcyk7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ09NTUVO VCIsICJPTiIsICJDT05TVFJBSU5UIikpCkBAIC0zOTc5LDYgKzM5OTAsMTMgQEAgbWF0Y2hfcHJl dmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCI9Iiwg TWF0Y2hBbnlFeGNlcHQoIiopIikpKQogCQkJQ09NUExFVEVfV0lUSCgiLCIsICIpIik7CiAJfQor LyogQ1JFQVRFIFZBUklBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBz byB1c2UgVGFpbE1hdGNoZXMgKi8KKwkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+ IHdpdGggQVMgKi8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwg TWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJBUyIpOworCWVsc2UgaWYgKFRhaWxNYXRjaGVz KCJWQVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKKwkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklB QkxFIDxuYW1lPiB3aXRoIEFTIHR5cGVzICovCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZ KFF1ZXJ5X2Zvcl9saXN0X29mX2RhdGF0eXBlcyk7CiAKIC8qIENSRUFURSBWSUVXIC0tLSBpcyBh bGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBD b21wbGV0ZSBDUkVBVEUgWyBPUiBSRVBMQUNFIF0gVklFVyA8bmFtZT4gd2l0aCBBUyBvciBXSVRI ICovCkBAIC00MjU2LDYgKzQyNzQsMTIgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRl cm5faWQsCiAJZWxzZSBpZiAoTWF0Y2hlcygiRFJPUCIsICJUUkFOU0ZPUk0iLCAiRk9SIiwgTWF0 Y2hBbnksICJMQU5HVUFHRSIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQ0FTQ0FERSIs ICJSRVNUUklDVCIpOwogCisJLyogRFJPUCBWQVJJQUJMRSAqLworCWVsc2UgaWYgKE1hdGNoZXMo IkRST1AiLCAiVkFSSUFCTEUiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlf Zm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKKwllbHNlIGlmIChNYXRjaGVzKCJEUk9QIiwgIlZBUklB QkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJDQVNDQURFIiwgIlJFU1RSSUNUIik7 CisKIC8qIEVYRUNVVEUgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJFWEVDVVRFIikpCiAJCUNPTVBM RVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfcHJlcGFyZWRfc3RhdGVtZW50cyk7CkBA IC00NDU3LDcgKzQ0ODEsOSBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwK IAkJICogb2JqZWN0cyBzdXBwb3J0ZWQuCiAJCSAqLwogCQlpZiAoSGVhZE1hdGNoZXMoIkFMVEVS IiwgIkRFRkFVTFQiLCAiUFJJVklMRUdFUyIpKQotCQkJQ09NUExFVEVfV0lUSCgiVEFCTEVTIiwg IlNFUVVFTkNFUyIsICJGVU5DVElPTlMiLCAiUFJPQ0VEVVJFUyIsICJST1VUSU5FUyIsICJUWVBF UyIsICJTQ0hFTUFTIiwgIkxBUkdFIE9CSkVDVFMiKTsKKwkJCUNPTVBMRVRFX1dJVEgoIlRBQkxF UyIsICJTRVFVRU5DRVMiLCAiRlVOQ1RJT05TIiwgIlBST0NFRFVSRVMiLAorCQkJCQkJICAiUk9V VElORVMiLCAiVFlQRVMiLCAiU0NIRU1BUyIsICJMQVJHRSBPQkpFQ1RTIiwKKwkJCQkJCSAgIlZB UklBQkxFUyIpOwogCQllbHNlCiAJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWV9QTFVTKFF1 ZXJ5X2Zvcl9saXN0X29mX2dyYW50YWJsZXMsCiAJCQkJCQkJCQkJCSJBTEwgRlVOQ1RJT05TIElO IFNDSEVNQSIsCkBAIC00NDY1LDYgKzQ0OTEsNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQg cGF0dGVybl9pZCwKIAkJCQkJCQkJCQkJIkFMTCBST1VUSU5FUyBJTiBTQ0hFTUEiLAogCQkJCQkJ CQkJCQkiQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiQUxMIFRBQkxFUyBJ TiBTQ0hFTUEiLAorCQkJCQkJCQkJCQkiQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEiLAogCQkJCQkJ CQkJCQkiREFUQUJBU0UiLAogCQkJCQkJCQkJCQkiRE9NQUlOIiwKIAkJCQkJCQkJCQkJIkZPUkVJ R04gREFUQSBXUkFQUEVSIiwKQEAgLTQ0NzksNyArNDUwNiw4IEBAIG1hdGNoX3ByZXZpb3VzX3dv cmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkJCQkJCQkiU0VRVUVOQ0UiLAogCQkJCQkJCQkJCQki VEFCTEUiLAogCQkJCQkJCQkJCQkiVEFCTEVTUEFDRSIsCi0JCQkJCQkJCQkJCSJUWVBFIik7CisJ CQkJCQkJCQkJCSJUWVBFIiwKKwkJCQkJCQkJCQkJIlZBUklBQkxFIik7CiAJfQogCWVsc2UgaWYg KFRhaWxNYXRjaGVzKCJHUkFOVHxSRVZPS0UiLCBNYXRjaEFueSwgIk9OIiwgIkFMTCIpIHx8CiAJ CQkgVGFpbE1hdGNoZXMoIlJFVk9LRSIsICJHUkFOVCIsICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hB bnksICJPTiIsICJBTEwiKSkKQEAgLTQ0ODcsNyArNDUxNSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dv cmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkgICJQUk9DRURVUkVTIElOIFNDSEVNQSIsCiAJCQkJ CSAgIlJPVVRJTkVTIElOIFNDSEVNQSIsCiAJCQkJCSAgIlNFUVVFTkNFUyBJTiBTQ0hFTUEiLAot CQkJCQkgICJUQUJMRVMgSU4gU0NIRU1BIik7CisJCQkJCSAgIlRBQkxFUyBJTiBTQ0hFTUEiLAor CQkJCQkgICJWQVJJQUJMRVMgSU4gU0NIRU1BIik7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkdS QU5UfFJFVk9LRSIsIE1hdGNoQW55LCAiT04iLCAiRk9SRUlHTiIpIHx8CiAJCQkgVGFpbE1hdGNo ZXMoIlJFVk9LRSIsICJHUkFOVCIsICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hBbnksICJPTiIsICJG T1JFSUdOIikpCiAJCUNPTVBMRVRFX1dJVEgoIkRBVEEgV1JBUFBFUiIsICJTRVJWRVIiKTsKQEAg LTQ1MjMsNiArNDU1Miw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAog CQkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXNwYWNlcyk7CiAJ CWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJUWVBFIikpCiAJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9R VUVSWShRdWVyeV9mb3JfbGlzdF9vZl9kYXRhdHlwZXMpOworCQllbHNlIGlmIChUYWlsTWF0Y2hl cygiVkFSSUFCTEUiKSkKKwkJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9s aXN0X29mX3ZhcmlhYmxlcyk7CiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFOVCIsIE1hdGNo QW55LCBNYXRjaEFueSwgTWF0Y2hBbnkpKQogCQkJQ09NUExFVEVfV0lUSCgiVE8iKTsKIAkJZWxz ZQpAQCAtNDgyNSw3ICs0ODU2LDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5f aWQsCiAKIC8qIFBSRVBBUkUgeHggQVMgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJQUkVQQVJFIiwg TWF0Y2hBbnksICJBUyIpKQotCQlDT01QTEVURV9XSVRIKCJTRUxFQ1QiLCAiVVBEQVRFIiwgIklO U0VSVCBJTlRPIiwgIkRFTEVURSBGUk9NIik7CisJCUNPTVBMRVRFX1dJVEgoIlNFTEVDVCIsICJV UERBVEUiLCAiSU5TRVJUIElOVE8iLCAiREVMRVRFIEZST00iLCAiTEVUIik7CiAKIC8qCiAgKiBQ UkVQQVJFIFRSQU5TQUNUSU9OIGlzIG1pc3Npbmcgb24gcHVycG9zZS4gSXQncyBpbnRlbmRlZCBm b3IgdHJhbnNhY3Rpb24KQEAgLTUzMTQsNiArNTM0NSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRz KGludCBwYXR0ZXJuX2lkLAogCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29m X3JvbGVzKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJcXGR2KiIpKQogCQlDT01QTEVURV9X SVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl92aWV3cyk7CisJZWxzZSBpZiAoVGFp bE1hdGNoZXNDUygiXFxkVioiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlf Zm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJcXGR4KiIp KQogCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2V4dGVuc2lvbnMpOwog CWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZFgqIikpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL01ha2VmaWxlIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQppbmRleCAy YmJjNzgwNWZlMy4uZjk4NzYwZGU2MzUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv TWFrZWZpbGUKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQpAQCAtODEsNyArODEs OCBAQCBDQVRBTE9HX0hFQURFUlMgOj0gXAogCXBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZS5oIFwK IAlwZ19wdWJsaWNhdGlvbl9yZWwuaCBcCiAJcGdfc3Vic2NyaXB0aW9uLmggXAotCXBnX3N1YnNj cmlwdGlvbl9yZWwuaAorCXBnX3N1YnNjcmlwdGlvbl9yZWwuaCBcCisJcGdfdmFyaWFibGUuaAog CiBHRU5FUkFURURfSEVBREVSUyA6PSAkKENBVEFMT0dfSEVBREVSUzolLmg9JV9kLmgpCiAKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL21lc29uLmJ1aWxkCmluZGV4IGVjMWNmNDY3ZjZmLi44MTM5OGVmYTdjOSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL21lc29uLmJ1aWxkCkBAIC02OSw2ICs2OSw3IEBAIGNhdGFsb2dfaGVhZGVycyA9IFsK ICAgJ3BnX3B1YmxpY2F0aW9uX3JlbC5oJywKICAgJ3BnX3N1YnNjcmlwdGlvbi5oJywKICAgJ3Bn X3N1YnNjcmlwdGlvbl9yZWwuaCcsCisgICdwZ192YXJpYWJsZS5oJywKIF0KIAogIyBUaGUgLmRh dCBmaWxlcyB3ZSBuZWVkIGNhbiBqdXN0IGJlIGxpc3RlZCBhbHBoYWJldGljYWxseS4KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9jYXRh bG9nL25hbWVzcGFjZS5oCmluZGV4IDhjN2NjYzY5YTNjLi5iZGFjMGMxM2JlYyAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRh bG9nL25hbWVzcGFjZS5oCkBAIC05Nyw2ICs5Nyw4IEBAIGV4dGVybiBPaWQJVHlwZW5hbWVHZXRU eXBpZChjb25zdCBjaGFyICp0eXBuYW1lKTsKIGV4dGVybiBPaWQJVHlwZW5hbWVHZXRUeXBpZEV4 dGVuZGVkKGNvbnN0IGNoYXIgKnR5cG5hbWUsIGJvb2wgdGVtcF9vayk7CiBleHRlcm4gYm9vbCBU eXBlSXNWaXNpYmxlKE9pZCB0eXBpZCk7CiAKK2V4dGVybiBib29sIFZhcmlhYmxlSXNWaXNpYmxl KE9pZCB2YXJpZCk7CisKIGV4dGVybiBGdW5jQ2FuZGlkYXRlTGlzdCBGdW5jbmFtZUdldENhbmRp ZGF0ZXMoTGlzdCAqbmFtZXMsCiAJCQkJCQkJCQkJCSAgIGludCBuYXJncywgTGlzdCAqYXJnbmFt ZXMsCiAJCQkJCQkJCQkJCSAgIGJvb2wgZXhwYW5kX3ZhcmlhZGljLApAQCAtMTY5LDYgKzE3MSwx MCBAQCBleHRlcm4gU2VhcmNoUGF0aE1hdGNoZXIgKkdldFNlYXJjaFBhdGhNYXRjaGVyKE1lbW9y eUNvbnRleHQgY29udGV4dCk7CiBleHRlcm4gU2VhcmNoUGF0aE1hdGNoZXIgKkNvcHlTZWFyY2hQ YXRoTWF0Y2hlcihTZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiBleHRlcm4gYm9vbCBTZWFyY2hQ YXRoTWF0Y2hlc0N1cnJlbnRFbnZpcm9ubWVudChTZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiAK K2V4dGVybiBMaXN0ICpOYW1lc0Zyb21MaXN0KExpc3QgKm5hbWVzKTsKK2V4dGVybiBPaWQJTG9v a3VwVmFyaWFibGUoY29uc3QgY2hhciAqbnNwbmFtZSwgY29uc3QgY2hhciAqdmFybmFtZSwgYm9v bCBtaXNzaW5nX29rKTsKK2V4dGVybiBPaWQJTG9va3VwVmFyaWFibGVGcm9tTmFtZUxpc3QoTGlz dCAqbmFtZXMsIGJvb2wgbWlzc2luZ19vayk7CisKIGV4dGVybiBPaWQJZ2V0X2NvbGxhdGlvbl9v aWQoTGlzdCAqY29sbG5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdldF9jb252 ZXJzaW9uX29pZChMaXN0ICpjb25uYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlG aW5kRGVmYXVsdENvbnZlcnNpb25Qcm9jKGludDMyIGZvcl9lbmNvZGluZywgaW50MzIgdG9fZW5j b2RpbmcpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5o IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCmluZGV4IGNlNmU1MDk4ZWFm Li4wODdkMzViOTQzZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0 X2FjbC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaApAQCAtNjks NiArNjksNyBAQCBNQUtFX1NZU0NBQ0hFKERFRkFDTFJPTEVOU1BPQkosIHBnX2RlZmF1bHRfYWNs X3JvbGVfbnNwX29ial9pbmRleCwgOCk7CiAjZGVmaW5lIERFRkFDTE9CSl9UWVBFCQkJJ1QnIC8q IHR5cGUgKi8KICNkZWZpbmUgREVGQUNMT0JKX05BTUVTUEFDRQkJJ24nIC8qIG5hbWVzcGFjZSAq LwogI2RlZmluZSBERUZBQ0xPQkpfTEFSR0VPQkpFQ1QJJ0wnIC8qIGxhcmdlIG9iamVjdCAqLwor I2RlZmluZSBERUZBQ0xPQkpfVkFSSUFCTEUJCSdWJyAvKiB2YXJpYWJsZSAqLwogCiAjZW5kaWYJ CQkJCQkJLyogRVhQT1NFX1RPX0NMSUVOVF9DT0RFICovCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 CmluZGV4IDVkNWJlOGJhNGUxLi5lMjdhMTI3YmE1OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 CkBAIC01NDY2LDYgKzU0NjYsMjYgQEAKICAgcHJvcmV0dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5 cGVzID0+ICdvaWQgb2lkIHRleHQnLAogICBwcm9zcmMgPT4gJ2hhc19sYXJnZW9iamVjdF9wcml2 aWxlZ2VfaWRfaWQnIH0sCiAKK3sgb2lkID0+ICc5NjEzJywgZGVzY3IgPT4gJ3VzZXIgcHJpdmls ZWdlIG9uIHNlc3Npb24gdmFyaWFibGUgYnkgdXNlcm5hbWUsIHNlcSBuYW1lJywKKyAgcHJvbmFt ZSA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3Mn LCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ25hbWUgdGV4dCB0ZXh0 JywKKyAgcHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZV9uYW1l JyB9LAoreyBvaWQgPT4gJzk2MTQnLCBkZXNjciA9PiAndXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lv biB2YXJpYWJsZSBieSB1c2VybmFtZSwgc2VxIG9pZCcsCisgIHByb25hbWUgPT4gJ2hhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9 PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICduYW1lIG9pZCB0ZXh0JywgcHJvc3JjID0+ICdo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZV9pZCcgfSwKK3sgb2lkID0+ICc5NjE1 JywgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24gdmFyaWFibGUgYnkgdXNlciBv aWQsIHNlcSBuYW1lJywKKyAgcHJvbmFtZSA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJn dHlwZXMgPT4gJ29pZCB0ZXh0IHRleHQnLCBwcm9zcmMgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZV9pZF9uYW1lJyB9LAoreyBvaWQgPT4gJzk2MTYnLCBkZXNjciA9PiAndXNlciBw cml2aWxlZ2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBieSB1c2VyIG9pZCwgc2VxIG9pZCcsCisgIHBy b25hbWUgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICdvaWQgb2lkIHRl eHQnLCBwcm9zcmMgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZF9pZCcgfSwK K3sgb2lkID0+ICc5NjE3JywgZGVzY3IgPT4gJ2N1cnJlbnQgdXNlciBwcml2aWxlZ2Ugb24gc2Vz c2lvbiB2YXJpYWJsZSBieSBzZXEgbmFtZScsCisgIHByb25hbWUgPT4gJ2hhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9v bCcsCisgIHByb2FyZ3R5cGVzID0+ICd0ZXh0IHRleHQnLCBwcm9zcmMgPT4gJ2hhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lJyB9LAoreyBvaWQgPT4gJzk2MTgnLCBkZXNjciA9PiAn Y3VycmVudCB1c2VyIHByaXZpbGVnZSBvbiBzZXNzaW9uIHZhcmlhYmxlIGJ5IHNlcSBvaWQnLAor ICBwcm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UnLCBwcm92b2xhdGls ZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAnb2lkIHRl eHQnLCBwcm9zcmMgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZCcgfSwKKwog eyBvaWQgPT4gJzMzNTUnLCBkZXNjciA9PiAnSS9PJywKICAgcHJvbmFtZSA9PiAncGdfbmRpc3Rp bmN0X2luJywgcHJvcmV0dHlwZSA9PiAncGdfbmRpc3RpbmN0JywKICAgcHJvYXJndHlwZXMgPT4g J2NzdHJpbmcnLCBwcm9zcmMgPT4gJ3BnX25kaXN0aW5jdF9pbicgfSwKQEAgLTY2NzYsNiArNjY5 Niw5IEBACiAgIHByb25hbWUgPT4gJ3BnX2NvbGxhdGlvbl9pc192aXNpYmxlJywgcHJvY29zdCA9 PiAnMTAnLCBwcm92b2xhdGlsZSA9PiAncycsCiAgIHByb3JldHR5cGUgPT4gJ2Jvb2wnLCBwcm9h cmd0eXBlcyA9PiAnb2lkJywKICAgcHJvc3JjID0+ICdwZ19jb2xsYXRpb25faXNfdmlzaWJsZScg fSwKK3sgb2lkID0+ICc5OTk5JywgZGVzY3IgPT4gJ2lzIHNlc3Npb24gdmFyaWFibGUgdmlzaWJs ZSBpbiBzZWFyY2ggcGF0aD8nLAorICBwcm9uYW1lID0+ICdwZ192YXJpYWJsZV9pc192aXNpYmxl JywgcHJvY29zdCA9PiAnMTAnLCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb3JldHR5cGUgPT4g J2Jvb2wnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywgcHJvc3JjID0+ICdwZ192YXJpYWJsZV9pc192 aXNpYmxlJyB9LAogCiB7IG9pZCA9PiAnMjg1NCcsIGRlc2NyID0+ICdnZXQgT0lEIG9mIGN1cnJl bnQgc2Vzc2lvblwncyB0ZW1wIHNjaGVtYSwgaWYgYW55JywKICAgcHJvbmFtZSA9PiAncGdfbXlf dGVtcF9zY2hlbWEnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3BhcmFsbGVsID0+ICdyJywKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfdmFyaWFibGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uM2QzYzZlYjI0YjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmgKQEAgLTAsMCArMSw4MSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgor ICogcGdfdmFyaWFibGUuaAorICoJICBkZWZpbml0aW9uIG9mIHNlc3Npb24gdmFyaWFibGVzIHN5 c3RlbSBjYXRhbG9nIChwZ192YXJpYWJsZXMpCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICog UG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9m IENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKKyAq CisgKiBOT1RFUworICoJICBUaGUgQ2F0YWxvZy5wbSBtb2R1bGUgcmVhZHMgdGhpcyBmaWxlIGFu ZCBkZXJpdmVzIHNjaGVtYQorICoJICBpbmZvcm1hdGlvbi4KKyAqCisgKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAqLworI2lmbmRlZiBQR19WQVJJQUJMRV9ICisjZGVmaW5lIFBHX1ZBUklBQkxFX0gKKwor I2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRy ZXNzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZV9kLmgiCisjaW5jbHVkZSAidXRp bHMvYWNsLmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlwZ192YXJpYWJsZSBkZWZpbml0 aW9uLiAgY3BwIHR1cm5zIHRoaXMgaW50bworICoJCXR5cGVkZWYgc3RydWN0IEZvcm1EYXRhX3Bn X3ZhcmlhYmxlCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK0NBVEFMT0cocGdfdmFyaWFibGUs OTIyMixWYXJpYWJsZVJlbGF0aW9uSWQpCit7CisJT2lkCQkJb2lkOwkJCS8qIG9pZCAqLworCisJ LyogT0lEIG9mIGVudHJ5IGluIHBnX3R5cGUgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLworCU9pZAkJ CXZhcnR5cGUgQktJX0xPT0tVUChwZ190eXBlKTsKKworCS8qIHZhcmlhYmxlIG5hbWUgKi8KKwlO YW1lRGF0YQl2YXJuYW1lOworCisJLyogT0lEIG9mIG5hbWVzcGFjZSBjb250YWluaW5nIHZhcmlh YmxlIGNsYXNzICovCisJT2lkCQkJdmFybmFtZXNwYWNlIEJLSV9MT09LVVAocGdfbmFtZXNwYWNl KTsKKworCS8qIHZhcmlhYmxlIG93bmVyICovCisJT2lkCQkJdmFyb3duZXIgQktJX0xPT0tVUChw Z19hdXRoaWQpOworCisJLyogdHlwbW9kIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KKwlpbnQzMgkJ dmFydHlwbW9kIEJLSV9ERUZBVUxUKC0xKTsKKworCS8qIHZhcmlhYmxlIGNvbGxhdGlvbiAqLwor CU9pZAkJCXZhcmNvbGxhdGlvbiBCS0lfREVGQVVMVCgwKSBCS0lfTE9PS1VQX09QVChwZ19jb2xs YXRpb24pOworCisKKyNpZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBm aWVsZHMgc3RhcnQgaGVyZSAqLworCisJLyogYWNjZXNzIHBlcm1pc3Npb25zICovCisJYWNsaXRl bQkJdmFyYWNsWzFdIEJLSV9ERUZBVUxUKF9udWxsXyk7CisKKyNlbmRpZgorfSBGb3JtRGF0YV9w Z192YXJpYWJsZTsKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCUZvcm1fcGdfdmFyaWFibGUg Y29ycmVzcG9uZHMgdG8gYSBwb2ludGVyIHRvIGEgdHVwbGUgd2l0aAorICoJCXRoZSBmb3JtYXQg b2YgdGhlIHBnX3ZhcmlhYmxlIHJlbGF0aW9uLgorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0 eXBlZGVmIEZvcm1EYXRhX3BnX3ZhcmlhYmxlICpGb3JtX3BnX3ZhcmlhYmxlOworCitERUNMQVJF X1RPQVNUKHBnX3ZhcmlhYmxlLCA5MjIzLCA5MjI0KTsKKworREVDTEFSRV9VTklRVUVfSU5ERVhf UEtFWShwZ192YXJpYWJsZV9vaWRfaW5kZXgsIDkyMjUsIFZhcmlhYmxlT2lkSW5kZXhJZCwgcGdf dmFyaWFibGUsIGJ0cmVlKG9pZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ192 YXJpYWJsZV92YXJuYW1lX25zcF9pbmRleCwgOTIyNiwgVmFyaWFibGVOYW1lTnNwSW5kZXhJZCwg cGdfdmFyaWFibGUsIGJ0cmVlKHZhcm5hbWUgbmFtZV9vcHMsIHZhcm5hbWVzcGFjZSBvaWRfb3Bz KSk7CisKK2V4dGVybiBPYmplY3RBZGRyZXNzIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBz dGF0ZSwKKwkJCQkJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KTsKK2V4dGVybiB2b2lk IERyb3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlkKTsKKworTUFLRV9TWVNDQUNIRShWQVJJQUJMRU5B TUVOU1AsIHBnX3ZhcmlhYmxlX3Zhcm5hbWVfbnNwX2luZGV4LCA4KTsKK01BS0VfU1lTQ0FDSEUo VkFSSUFCTEVPSUQsIHBnX3ZhcmlhYmxlX29pZF9pbmRleCwgOCk7CisKKyNlbmRpZgkJCQkJCQkv KiBQR19WQVJJQUJMRV9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggNDYxMGZjNjEyOTMu LmFlNGI2YTM4NjJjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgK KysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0yMzY1LDYgKzIzNjUsNyBA QCB0eXBlZGVmIGVudW0gT2JqZWN0VHlwZQogCU9CSkVDVF9UU1RFTVBMQVRFLAogCU9CSkVDVF9U WVBFLAogCU9CSkVDVF9VU0VSX01BUFBJTkcsCisJT0JKRUNUX1ZBUklBQkxFLAogCU9CSkVDVF9W SUVXLAogfSBPYmplY3RUeXBlOwogCkBAIC0zNTE1LDYgKzM1MTYsMjEgQEAgdHlwZWRlZiBzdHJ1 Y3QgQWx0ZXJTdGF0c1N0bXQKIAlib29sCQltaXNzaW5nX29rOwkJLyogc2tpcCBlcnJvciBpZiBz dGF0aXN0aWNzIG9iamVjdCBpcyBtaXNzaW5nICovCiB9IEFsdGVyU3RhdHNTdG10OwogCisKKy8q IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCQl7Q3JlYXRlfEFsdGVyfSBWQVJJQUJMRSBTdGF0 ZW1lbnQKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgQ3Jl YXRlU2Vzc2lvblZhclN0bXQKK3sKKwlOb2RlVGFnCQl0eXBlOworCVJhbmdlVmFyICAgKnZhcmlh YmxlOwkJLyogdGhlIHZhcmlhYmxlIHRvIGNyZWF0ZSAqLworCVR5cGVOYW1lICAgKnR5cGVOYW1l OwkJLyogdGhlIHR5cGUgb2YgdmFyaWFibGUgKi8KKwlDb2xsYXRlQ2xhdXNlICpjb2xsQ2xhdXNl OworCWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGRvIG5vdGhpbmcgaWYgaXQgYWxyZWFkeSBleGlz dHMgKi8KK30gQ3JlYXRlU2Vzc2lvblZhclN0bXQ7CisKKwogLyogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogICoJCUNyZWF0ZSBGdW5jdGlvbiBTdGF0ZW1lbnQKICAqIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNs dWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCBhNGFmM2Y3MTdhMS4uMGVhMDI2NWRlN2MgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJz ZXIva3dsaXN0LmgKQEAgLTQ4Niw2ICs0ODYsOCBAQCBQR19LRVlXT1JEKCJ2YWxpZGF0b3IiLCBW QUxJREFUT1IsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZh bHVlIiwgVkFMVUVfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgidmFsdWVzIiwgVkFMVUVTLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZ V09SRCgidmFyY2hhciIsIFZBUkNIQVIsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQ R19LRVlXT1JEKCJ2YXJpYWJsZSIsIFZBUklBQkxFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCitQR19LRVlXT1JEKCJ2YXJpYWJsZXMiLCBWQVJJQUJMRVMsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhcmlhZGljIiwgVkFSSUFESUMsIFJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJ5aW5nIiwgVkFSWUlORywg VU5SRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKIFBHX0tFWVdPUkQoInZlcmJvc2UiLCBWRVJC T1NFLCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3Qu aAppbmRleCBkMjUwYTcxNGQ1OS4uZWE4Njk1NGRkZWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBA IC02OCw2ICs2OCw3IEBAIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVFJBTlNGT1JNLCAiQUxURVIg VFJBTlNGT1JNIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9U UklHR0VSLCAiQUxURVIgVFJJR0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhD TURUQUdfQUxURVJfVFlQRSwgIkFMVEVSIFRZUEUiLCB0cnVlLCB0cnVlLCBmYWxzZSkKIFBHX0NN RFRBRyhDTURUQUdfQUxURVJfVVNFUl9NQVBQSU5HLCAiQUxURVIgVVNFUiBNQVBQSU5HIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19BTFRFUl9WQVJJQUJMRSwgIkFMVEVS IFZBUklBQkxFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9W SUVXLCAiQUxURVIgVklFVyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf QU5BTFlaRSwgIkFOQUxZWkUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRB R19CRUdJTiwgIkJFR0lOIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKQEAgLTEyMyw2ICsxMjQsNyBA QCBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9UUkFOU0ZPUk0sICJDUkVBVEUgVFJBTlNGT1JNIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVFJJR0dFUiwgIkNS RUFURSBUUklHR0VSIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVB VEVfVFlQRSwgIkNSRUFURSBUWVBFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENN RFRBR19DUkVBVEVfVVNFUl9NQVBQSU5HLCAiQ1JFQVRFIFVTRVIgTUFQUElORyIsIHRydWUsIGZh bHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1ZBUklBQkxFLCAiQ1JFQVRFIFZB UklBQkxFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVklF VywgIkNSRUFURSBWSUVXIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19E RUFMTE9DQVRFLCAiREVBTExPQ0FURSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUco Q01EVEFHX0RFQUxMT0NBVEVfQUxMLCAiREVBTExPQ0FURSBBTEwiLCBmYWxzZSwgZmFsc2UsIGZh bHNlKQpAQCAtMTc1LDYgKzE3Nyw3IEBAIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9UUkFOU0ZPUk0s ICJEUk9QIFRSQU5TRk9STSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf RFJPUF9UUklHR0VSLCAiRFJPUCBUUklHR0VSIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01E VEFHKENNRFRBR19EUk9QX1RZUEUsICJEUk9QIFRZUEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQ R19DTURUQUcoQ01EVEFHX0RST1BfVVNFUl9NQVBQSU5HLCAiRFJPUCBVU0VSIE1BUFBJTkciLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0RST1BfVkFSSUFCTEUsICJEUk9Q IFZBUklBQkxFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1ZJ RVcsICJEUk9QIFZJRVciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0VY RUNVVEUsICJFWEVDVVRFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf RVhQTEFJTiwgIkVYUExBSU4iLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvdXRpbHMvYWNsLmggYi9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAppbmRleCAwMWFl NWI3MTlmZC4uNWUxYThhODJlOTAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5o CisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCkBAIC0xNjksNiArMTY5LDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgQXJyYXlUeXBlIEFjbDsKICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfU0NIRU1BCQko QUNMX1VTQUdFfEFDTF9DUkVBVEUpCiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1RBQkxFU1BBQ0UJ KEFDTF9DUkVBVEUpCiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1RZUEUJCQkoQUNMX1VTQUdFKQor I2RlZmluZSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRQkJKEFDTF9TRUxFQ1R8QUNMX1VQREFURSkK IAogLyogb3BlcmF0aW9uIGNvZGVzIGZvciBwZ18qX2FjbG1hc2sgKi8KIHR5cGVkZWYgZW51bQpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91 dGlscy9sc3lzY2FjaGUuaAppbmRleCBkNDIzODBhMGQ0Ni4uOTY3ZDJhYzM1MjIgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxz L2xzeXNjYWNoZS5oCkBAIC0xMzksNiArMTM5LDcgQEAgZXh0ZXJuIGNoYXIgZ2V0X2Z1bmNfcHJv a2luZChPaWQgZnVuY2lkKTsKIGV4dGVybiBib29sIGdldF9mdW5jX2xlYWtwcm9vZihPaWQgZnVu Y2lkKTsKIGV4dGVybiBSZWdQcm9jZWR1cmUgZ2V0X2Z1bmNfc3VwcG9ydChPaWQgZnVuY2lkKTsK IGV4dGVybiBPaWQJZ2V0X3JlbG5hbWVfcmVsaWQoY29uc3QgY2hhciAqcmVsbmFtZSwgT2lkIHJl bG5hbWVzcGFjZSk7CitleHRlcm4gT2lkCWdldF92YXJuYW1lX3ZhcmlkKGNvbnN0IGNoYXIgKnZh cm5hbWUsIE9pZCB2YXJuYW1lc3BhY2UpOwogZXh0ZXJuIGNoYXIgKmdldF9yZWxfbmFtZShPaWQg cmVsaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmVsX25hbWVzcGFjZShPaWQgcmVsaWQpOwogZXh0ZXJu IE9pZAlnZXRfcmVsX3R5cGVfaWQoT2lkIHJlbGlkKTsKQEAgLTIxMSw2ICsyMTIsMTQgQEAgZXh0 ZXJuIGNoYXIgKmdldF9wdWJsaWNhdGlvbl9uYW1lKE9pZCBwdWJpZCwgYm9vbCBtaXNzaW5nX29r KTsKIGV4dGVybiBPaWQJZ2V0X3N1YnNjcmlwdGlvbl9vaWQoY29uc3QgY2hhciAqc3VibmFtZSwg Ym9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBjaGFyICpnZXRfc3Vic2NyaXB0aW9uX25hbWUoT2lk IHN1YmlkLCBib29sIG1pc3Npbmdfb2spOwogCitleHRlcm4gY2hhciAqZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZShPaWQgdmFyaWQpOworZXh0ZXJuIE9pZAlnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lc3BhY2UoT2lkIHZhcmlkKTsKK2V4dGVybiBPaWQJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlw ZShPaWQgdmFyaWQpOworZXh0ZXJuIHZvaWQgZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBt b2RfY29sbGlkKE9pZCB2YXJpZCwKKwkJCQkJCQkJCQkJCQlPaWQgKnR5cGlkLAorCQkJCQkJCQkJ CQkJCWludDMyICp0eXBtb2QsCisJCQkJCQkJCQkJCQkJT2lkICpjb2xsaWQpOworCiAjZGVmaW5l IHR5cGVfaXNfYXJyYXkodHlwaWQpICAoZ2V0X2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxp ZE9pZCkKIC8qIHR5cGVfaXNfYXJyYXlfZG9tYWluIGFjY2VwdHMgYm90aCBwbGFpbiBhcnJheXMg YW5kIGRvbWFpbnMgb3ZlciBhcnJheXMgKi8KICNkZWZpbmUgdHlwZV9pc19hcnJheV9kb21haW4o dHlwaWQpICAoZ2V0X2Jhc2VfZWxlbWVudF90eXBlKHR5cGlkKSAhPSBJbnZhbGlkT2lkKQpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQKaW5kZXggNzVhMDc4YWRhOWUuLmNk OGU0NDEyZmE5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVu Y3kub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQKQEAg LTE1MSwzICsxNTEsMjAgQEAgb3duZXIgb2YgdHlwZSBkZXB0ZXN0X3QKIERST1AgT1dORUQgQlkg cmVncmVzc19kZXBfdXNlcjIsIHJlZ3Jlc3NfZGVwX3VzZXIwOwogRFJPUCBVU0VSIHJlZ3Jlc3Nf ZGVwX3VzZXIyOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIwOworLS0gZGVwZW5kZW5jeSBv biB0eXBlCitDUkVBVEUgRE9NQUlOIHZhcmRvbWFpbiBBUyBpbnQ7CitDUkVBVEUgVFlQRSB2YXJ0 eXBlIEFTIChhIGludCwgYiBpbnQsIGMgdmFyZG9tYWluKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIHZhcnR5cGU7CistLSBzaG91bGQgZmFpbAorRFJPUCBET01BSU4gdmFyZG9tYWluOworRVJS T1I6ICBjYW5ub3QgZHJvcCB0eXBlIHZhcmRvbWFpbiBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVw ZW5kIG9uIGl0CitERVRBSUw6ICBjb2x1bW4gYyBvZiBjb21wb3NpdGUgdHlwZSB2YXJ0eXBlIGRl cGVuZHMgb24gdHlwZSB2YXJkb21haW4KK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBk cm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitEUk9QIFRZUEUgdmFydHlwZTsKK0VSUk9S OiAgY2Fubm90IGRyb3AgdHlwZSB2YXJ0eXBlIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQg b24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIHR5cGUgdmFy dHlwZQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBv YmplY3RzIHRvby4KKy0tIGNsZWFuIHVwCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUg dmFydHlwZTsKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9v aWRqb2lucy5vdXQKaW5kZXggMjE1ZWI4OTliZTMuLmQ5OTUzMzIxNDAyIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dApAQCAtMjY2LDMgKzI2Niw3IEBAIE5PVElDRTogIGNo ZWNraW5nIHBnX3N1YnNjcmlwdGlvbiB7c3ViZGJpZH0gPT4gcGdfZGF0YWJhc2Uge29pZH0KIE5P VElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbiB7c3Vib3duZXJ9ID0+IHBnX2F1dGhpZCB7 b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uX3JlbCB7c3JzdWJpZH0gPT4g cGdfc3Vic2NyaXB0aW9uIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb25f cmVsIHtzcnJlbGlkfSA9PiBwZ19jbGFzcyB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFy aWFibGUge3ZhcnR5cGV9ID0+IHBnX3R5cGUge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3Zh cmlhYmxlIHt2YXJuYW1lc3BhY2V9ID0+IHBnX25hbWVzcGFjZSB7b2lkfQorTk9USUNFOiAgY2hl Y2tpbmcgcGdfdmFyaWFibGUge3Zhcm93bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KK05PVElDRTog IGNoZWNraW5nIHBnX3ZhcmlhYmxlIHt2YXJjb2xsYXRpb259ID0+IHBnX2NvbGxhdGlvbiB7b2lk fQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXggY2Y0OGFlNmQwYzIuLmZkNmIyYTZi OGM4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTYwMjMsNiArNjAyMywzMCBA QCBDT01NSVQ7CiAjIGZpbmFsIE9OX0VSUk9SX1JPTExCQUNLOiBvZmYKIERST1AgVEFCTEUgYmxh OwogRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOworLS0gc2Vzc2lvbiB2YXJpYWJsZSB0ZXN0CitD UkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworU0VUIFJPTEUgVE8gcmVncmVzc192 YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAi QyI7CitcZFYrIHZhcjEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAg fCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgQWNjZXNzIHByaXZpbGVnZXMg fCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAg fCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgfCAKKygxIHJvdykK KworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOworQ09NTUVOVCBPTiBW QVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKK1xkVisgdmFyMQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxh dGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJp dmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMg ICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVy PXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCisgICAgICAgIHwg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8 IAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitTRVQgUk9MRSBUTyBERUZBVUxUOwor RFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiAtLSBjaGVjayBkZXNjcmliaW5nIGlu dmFsaWQgbXVsdGlwYXJ0IG5hbWVzCiBcZEEgcmVncmVzc2lvbi5oZWFwCiBpbXByb3BlciBxdWFs aWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogcmVncmVzc2lvbi5oZWFwCkBAIC02 MjQ0LDYgKzYyNjgsMTIgQEAgY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxl bWVudGVkOiBub25lc3VjaC5wdWJsaWMuZnVuY19kZXBzX3N0YXQKIGltcHJvcGVyIHF1YWxpZmll ZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiByZWdyZXNzaW9uLm15ZXZ0CiBcZHkgbm9u ZXN1Y2gubXlldnQKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFt ZXMpOiBub25lc3VjaC5teWV2dAorXGRWIGhvc3QucmVncmVzc2lvbi5wdWJsaWMudmFyCitpbXBy b3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogaG9zdC5yZWdyZXNz aW9uLnB1YmxpYy52YXIKK1xkViByZWdyZXNzaW9ufG15ZGIucHVibGljLnZhcgorY3Jvc3MtZGF0 YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiByZWdyZXNzaW9ufG15ZGIucHVi bGljLnZhcgorXGRWIG5vbmVzdWNoLnB1YmxpYy52YXIKK2Nyb3NzLWRhdGFiYXNlIHJlZmVyZW5j ZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogbm9uZXN1Y2gucHVibGljLnZhcgogLS0gY2hlY2sgdGhh dCBkb3RzIHdpdGhpbiBxdW90ZWQgbmFtZSBzZWdtZW50cyBhcmUgbm90IGNvdW50ZWQKIFxkQSAi bm8uc3VjaC5hY2Nlc3MubWV0aG9kIgogTGlzdCBvZiBhY2Nlc3MgbWV0aG9kcwpAQCAtNjQ3OCw2 ICs2NTA4LDEyIEBAIExpc3Qgb2Ygc2NoZW1hcwogLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0KICgwIHJvd3MpCiAKK1xkViAibm8uc3VjaC52YXJpYWJs ZSIKKyAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUg fCBDb2xsYXRpb24gfCBPd25lciAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLQorKDAgcm93cykKKwogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVh bGlmaWNhdGlvbnMuCiBcZEEgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5hY2Nlc3MubWV0aG9k IgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIKQEAgLTY2NDcsNiArNjY4MywxMiBA QCBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1 Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YQogCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC5ldmVudC50cmlnZ2VyIgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRl ZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKK1xkViAi bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgorICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAorLS0t LS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisoMCByb3dzKQorCiAtLSBh Z2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZp Y2F0aW9ucy4KIFxkdCByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUu cmVsYXRpb24iCiAgICAgICAgIExpc3Qgb2YgdGFibGVzCkBAIC02NzgwLDYgKzY4MjIsMTIgQEAg TGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZXMKIC0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0KICgwIHJvd3MpCiAKK1xkViByZWdy ZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCisgICAgICAgICAgICBM aXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3du ZXIgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKygwIHJvd3Mp CisKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEg cXVhbGlmaWNhdGlvbnMuCiBcZHQgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIu Im5vLnN1Y2gudGFibGUucmVsYXRpb24iCiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBu b3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5z dWNoLnRhYmxlLnJlbGF0aW9uIgpAQCAtNjgyNyw2ICs2ODc1LDggQEAgY3Jvc3MtZGF0YWJhc2Ug cmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1 Y2guc2NoZW0KIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDog Im5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZGF0YS50eXBlIgog XGRYICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVk LnN0YXRpc3RpY3MiCiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50 ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVk LnN0YXRpc3RpY3MiCitcZFYgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5v LnN1Y2gudmFyaWFibGUiCitjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVt ZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlh YmxlIgogLS0gY2hlY2sgXGRyZyBhbmQgXGR1CiBDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3JvbGUw OwogQ1JFQVRFIFJPTEUgcmVncmVzc19kdV9yb2xlMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmMzNjY2MGNlNmQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTAsMCArMSw0MzMgQEAKK0NS RUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitTRVQgbG9nX3N0YXRlbWVudCBUTyBk ZGw7CistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKy0tIHNo b3VsZCBmYWlsLCBwc2V1ZG90eXBlcyBhcmUgbm90IGFsbG93ZWQKK0NSRUFURSBWQVJJQUJMRSB2 YXIyIEFTIGFueWVsZW1lbnQ7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHBz ZXVkby10eXBlIGFueWVsZW1lbnQKKy0tIHNob3VsZCBiZSBvaywgZG8gbm90aGluZworRFJPUCBW QVJJQUJMRSBJRiBFWElTVFMgdmFyMjsKK05PVElDRTogIHNlc3Npb24gdmFyaWFibGUgInZhcjIi IGRvZXMgbm90IGV4aXN0LCBza2lwcGluZworLS0gZG8gbm90aGluZworQ1JFQVRFIFZBUklBQkxF IElGIE5PVCBFWElTVFMgdmFyMSBBUyBpbnQ7CitOT1RJQ0U6ICBzZXNzaW9uIHZhcmlhYmxlICJ2 YXIxIiBhbHJlYWR5IGV4aXN0cywgc2tpcHBpbmcKKy0tIHNob3VsZCBmYWlsCitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBpbnQ7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInZhcjEiIGFscmVh ZHkgZXhpc3RzCistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIHZhcjE7 CistLSB0aGUgdmFyaWFibGUgY2FuIHVzZSBjb21wb3NpdGUgdHlwZXMKK0NSRUFURSBUQUJMRSB0 MSAoYSBpbnQsIGIgaW50KTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHQxOworLS0gc2hvdWxk IGZhaWwKK0RST1AgVEFCTEUgdDE7CitFUlJPUjogIGNhbm5vdCBkcm9wIHRhYmxlIHQxIGJlY2F1 c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFyaWFibGUg dmFyMSBkZXBlbmRzIG9uIHR5cGUgdDEKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBk cm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRB QkxFIHQxIEFERCBDT0xVTU4gYyBpbnQ7CistLSBzaG91bGQgZmFpbAorQUxURVIgVEFCTEUgdDEg QUxURVIgQ09MVU1OIGIgVFlQRSBudW1lcmljOworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdGFibGUg InQxIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiB1c2VzIGl0CitEUk9Q IFZBUklBQkxFIHZhcjE7CitEUk9QIFRBQkxFIHQxOworQ1JFQVRFIFRZUEUgdDEgQVMgKGEgaW50 LCBiIGludCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0MTsKKy0tIHNob3VsZCBmYWlsCitE Uk9QIFRZUEUgdDE7CitFUlJPUjogIGNhbm5vdCBkcm9wIHR5cGUgdDEgYmVjYXVzZSBvdGhlciBv YmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2YXJpYWJsZSB2YXIxIGRlcGVu ZHMgb24gdHlwZSB0MQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRl cGVuZGVudCBvYmplY3RzIHRvby4KKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBBREQg QVRUUklCVVRFIGMgaW50OworLS0gc2hvdWxkIGZhaWwKK0FMVEVSIFRZUEUgdDEgQUxURVIgQVRU UklCVVRFIGIgIFRZUEUgbnVtZXJpYzsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHR5cGUgInQxIiBi ZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiB1c2VzIGl0CitEUk9QIFZBUklB QkxFIHZhcjE7CitEUk9QIFRZUEUgdDE7CitTRVQgbG9nX3N0YXRlbWVudCBUTyBkZWZhdWx0Owor Q1JFQVRFIERPTUFJTiB0ZXN0dmFyX2RvbWFpbiBBUyBpbnQ7CitDUkVBVEUgVFlQRSB0ZXN0dmFy X3R5cGUgQVMgKGEgdGVzdHZhcl9kb21haW4pOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGVz dHZhcl9kb21haW47CistLSBzaG91bGQgZmFpbAorQUxURVIgRE9NQUlOIHRlc3R2YXJfZG9tYWlu IEFERCBDSEVDSyh2YWx1ZSA8PiAxMDApOworRVJST1I6ICBjYW5ub3QgYWx0ZXIgZG9tYWluICJ0 ZXN0dmFyX2RvbWFpbiIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgdXNl cyBpdAorRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGVzdHZh cl90eXBlOworLS0gc2hvdWxkIGZhaWwKK0FMVEVSIERPTUFJTiB0ZXN0dmFyX2RvbWFpbiBBREQg Q0hFQ0sodmFsdWUgPD4gMTAwKTsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHR5cGUgInRlc3R2YXJf ZG9tYWluIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiB1c2VzIGl0CitE Uk9QIFZBUklBQkxFIHZhcjE7CistLSBzaG91bGQgYmUgb2sKK0FMVEVSIERPTUFJTiB0ZXN0dmFy X2RvbWFpbiBBREQgQ0hFQ0sodmFsdWUgPD4gMTAwKTsKK0RST1AgVFlQRSB0ZXN0dmFyX3R5cGU7 CitEUk9QIFRZUEUgdGVzdHZhcl9kb21haW47CistLSBjaGVjayBldmVudCB0cmlnZ2VyIHN1cHBv cnQKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJfZXZlbnRfdHJpZ2dlcl9yZXBvcnRf ZHJvcHBlZCgpCitSRVRVUk5TIGV2ZW50X3RyaWdnZXIKK0FTICQkCitERUNMQVJFIHIgcmVjb3Jk OworQkVHSU4KKyAgRk9SIHIgSU4gU0VMRUNUICogZnJvbSBwZ19ldmVudF90cmlnZ2VyX2Ryb3Bw ZWRfb2JqZWN0cygpCisgIExPT1AKKyAgICBDT05USU5VRSBXSEVOIE5PVCByLm5vcm1hbCBBTkQg Tk9UIHIub3JpZ2luYWw7CisKKyAgICBSQUlTRSBOT1RJQ0UKKyAgICAgICAnTk9STUFMOiBvcmln PSUgbm9ybWFsPSUgaXN0ZW1wPSUgdHlwZT0lIGlkZW50aXR5PSUgbmFtZT0lIGFyZ3M9JScsCisg ICAgICAgci5vcmlnaW5hbCwgci5ub3JtYWwsIHIuaXNfdGVtcG9yYXJ5LCByLm9iamVjdF90eXBl LAorICAgICAgIHIub2JqZWN0X2lkZW50aXR5LCByLmFkZHJlc3NfbmFtZXMsIHIuYWRkcmVzc19h cmdzOworICBFTkQgTE9PUDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgRVZF TlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3NfZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZCBPTiBz cWxfZHJvcAorICBXSEVOIFRBRyBJTiAoJ0RST1AgVkFSSUFCTEUnKQorICBFWEVDVVRFIFBST0NF RFVSRSBzdmFyX2V2ZW50X3RyaWdnZXJfcmVwb3J0X2Ryb3BwZWQoKTsKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIGludDsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK05PVElDRTogIE5PUk1BTDogb3Jp Zz10IG5vcm1hbD1mIGlzdGVtcD1mIHR5cGU9c2Vzc2lvbiB2YXJpYWJsZSBpZGVudGl0eT1wdWJs aWMudmFyMSBuYW1lPXtwdWJsaWMsdmFyMX0gYXJncz17fQorRFJPUCBFVkVOVCBUUklHR0VSIHN2 YXJfcmVncmVzc19ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVkOworLS0gY2hlY2sgY29tbWVu dCBvbiB2YXJpYWJsZQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ09NTUVOVCBPTiBW QVJJQUJMRSB2YXIxIElTICdzb21lIHZhcmlhYmxlIGNvbW1lbnQnOworU0VMRUNUIHBnX2NhdGFs b2cub2JqX2Rlc2NyaXB0aW9uKG9pZCwgJ3BnX3ZhcmlhYmxlJykgRlJPTSBwZ192YXJpYWJsZSBX SEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworICAgIG9ial9kZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgc29tZSB2YXJpYWJsZSBjb21tZW50CisoMSByb3cpCisKK0RST1Ag VkFSSUFCTEUgdmFyMTsKKy0tIGNoZWNrIHRoZSBvYmplY3QgYWRkcmVzcyBvZiBhbGwgc2Vzc2lv biB2YXJpYWJsZXMKK0NSRUFURSBTQ0hFTUEgdmFydGVzdDE7CitDUkVBVEUgU0NIRU1BIHZhcnRl c3QyOworQ1JFQVRFIFZBUklBQkxFIHZhcnRlc3QxLnN2YXJ0ZXN0X3ZhcjEgQVMgaW50OworQ1JF QVRFIFZBUklBQkxFIHZhcnRlc3QyLnN2YXJ0ZXN0X3ZhcjEgQVMgaW50OworU0VMRUNUCisgIGUu dmFybmFtZSwKKyAgcGdfZGVzY3JpYmVfb2JqZWN0KCdwZ192YXJpYWJsZSc6OnJlZ2NsYXNzLCBl Lm9pZCwgMCkgYXMgZGVzY3IsCisgIGIudHlwZSwgYi5vYmplY3RfbmFtZXMsIGIub2JqZWN0X2Fy Z3MsCisgIHBnX2lkZW50aWZ5X29iamVjdChhLmNsYXNzaWQsIGEub2JqaWQsIGEub2Jqc3ViaWQp IGFzIGlkZW50CitGUk9NIHBnX3ZhcmlhYmxlIGFzIGUsCisgIExBVEVSQUwgcGdfaWRlbnRpZnlf b2JqZWN0X2FzX2FkZHJlc3MoJ3BnX3ZhcmlhYmxlJzo6cmVnY2xhc3MsIGUub2lkLCAwKSBhcyBi LAorICBMQVRFUkFMIHBnX2dldF9vYmplY3RfYWRkcmVzcyhiLnR5cGUsIGIub2JqZWN0X25hbWVz LCBiLm9iamVjdF9hcmdzKSBhcyBhCitXSEVSRSBlLnZhcm5hbWUgTElLRSAnc3ZhcnRlc3RfdmFy JSc7CisgICAgdmFybmFtZSAgICB8ICAgICAgICAgICAgICAgICAgZGVzY3IgICAgICAgICAgICAg ICAgICB8ICAgICAgIHR5cGUgICAgICAgfCAgICAgICBvYmplY3RfbmFtZXMgICAgICAgfCBvYmpl Y3RfYXJncyB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHN2YXJ0ZXN0X3ZhcjEgfCBz ZXNzaW9uIHZhcmlhYmxlIHZhcnRlc3QxLnN2YXJ0ZXN0X3ZhcjEgfCBzZXNzaW9uIHZhcmlhYmxl IHwge3ZhcnRlc3QxLHN2YXJ0ZXN0X3ZhcjF9IHwge30gICAgICAgICAgfCAoInNlc3Npb24gdmFy aWFibGUiLHZhcnRlc3QxLHN2YXJ0ZXN0X3ZhcjEsdmFydGVzdDEuc3ZhcnRlc3RfdmFyMSkKKyBz dmFydGVzdF92YXIxIHwgc2Vzc2lvbiB2YXJpYWJsZSB2YXJ0ZXN0Mi5zdmFydGVzdF92YXIxIHwg c2Vzc2lvbiB2YXJpYWJsZSB8IHt2YXJ0ZXN0MixzdmFydGVzdF92YXIxfSB8IHt9ICAgICAgICAg IHwgKCJzZXNzaW9uIHZhcmlhYmxlIix2YXJ0ZXN0MixzdmFydGVzdF92YXIxLHZhcnRlc3QyLnN2 YXJ0ZXN0X3ZhcjEpCisoMiByb3dzKQorCitEUk9QIFNDSEVNQSB2YXJ0ZXN0MSBDQVNDQURFOwor Tk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHZhcnRlc3QxLnN2YXJ0 ZXN0X3ZhcjEKK0RST1AgU0NIRU1BIHZhcnRlc3QyIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNh c2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgdmFydGVzdDIuc3ZhcnRlc3RfdmFyMQorLS0gY2hl Y2sgYWNjZXNzIHJpZ2h0cyBhbmQgc3VwcG9ydGVkIEFMVEVSCitDUkVBVEUgU0NIRU1BIHN2YXJ0 ZXN0OworR1JBTlQgQUxMIE9OIFNDSEVNQSBzdmFydGVzdCBUTyByZWdyZXNzX3ZhcmlhYmxlX293 bmVyOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OworQ1JFQVRFIFJPTEUg cmVncmVzc192YXJpYWJsZV9yZWFkZXI7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgc3ZhcnRl c3QudmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKK1JFVk9LRSBBTEwgT04gVkFSSUFC TEUgc3ZhcnRlc3QudmFyMSBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworQUxURVIgVkFS SUFCTEUgc3ZhcnRlc3QudmFyMSBPV05FUiBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQUxU RVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBSRU5BTUUgVE8gdmFyeHg7CitBTFRFUiBWQVJJQUJM RSBzdmFydGVzdC52YXJ4eCBTRVQgU0NIRU1BIHB1YmxpYzsKK0RST1AgVkFSSUFCTEUgcHVibGlj LnZhcnh4OworQUxURVIgREVGQVVMVCBQUklWSUxFR0VTCisgICBGT1IgUk9MRSByZWdyZXNzX3Zh cmlhYmxlX293bmVyCisgICBJTiBTQ0hFTUEgc3ZhcnRlc3QKKyAgIEdSQU5UIFNFTEVDVCBPTiBW QVJJQUJMRVMgVE8gcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CistLSBjcmVhdGluZyB2YXJpYWJs ZSB3aXRoIGRlZmF1bHQgcHJpdmlsZWdlcworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9v d25lcjsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKK1NFVCBST0xFIFRP IERFRkFVTFQ7CistLSBzaG91bGQgYmUgb2suIHNpbmNlIEFMVEVSIERFRkFVTFQgUFJJVklMRUdF UworLS0gYWxsb3cgcmVncmVzc192YXJpYWJsZV9yZWFkZXIgdG8gaGF2ZSBTRUxFQ1QgcHJpdmls ZWRnZQorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJp YWJsZV9yZWFkZXInLCAnc3ZhcnRlc3QudmFyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgdAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CitEUk9QIFNDSEVN QSBzdmFydGVzdDsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKy0tCistLSBi ZWdpbiBvZiBjaGVjayBHUkFOVCBXSVRIIEdSQU5UIE9QVElPTiBhbmQgUkVWT0tFIEdSQU5URUQg QlkKKy0tCitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IxOworQ1JFQVRFIFJPTEUgcmVn cmVzc192YXJpYWJsZV9yMjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7ICAgICAgLS12YXIxIHdpbGwgb3duZWQgYnkgcmVn cmVzc192YXJpYWJsZV9vd25lcgorR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVn cmVzc192YXJpYWJsZV9yMSBXSVRIIEdSQU5UIE9QVElPTjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfcjE7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3Zh cmlhYmxlX3IyIFdJVEggR1JBTlQgT1BUSU9OOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFTEVD VCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAn cHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MicsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93 KQorCitSRVZPS0UgQUxMIFBSSVZJTEVHRVMgT04gVkFSSUFCTEUgdmFyMSBGUk9NIHJlZ3Jlc3Nf dmFyaWFibGVfcjEgQ0FTQ0FERTsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIGYK KyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsg LS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcmlh YmxlX293bmVyOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJp YWJsZV9yMjsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3Nf dmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVn cmVzc192YXJpYWJsZV9yMicsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgdAorKDEgcm93KQorCitSRVZPS0UgQUxMIE9OIFZBUklBQkxFIHZhcjEgRlJPTSByZWdy ZXNzX3ZhcmlhYmxlX3IyIEdSQU5URUQgQlkgcmVncmVzc192YXJpYWJsZV9vd25lcjsKK1NFTEVD VCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAn cHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MicsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93 KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zhcmlh YmxlX293bmVyJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0 CisoMSByb3cpCisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHZhcjE7Cist LQorLS0gZW5kIG9mIGNoZWNrIEdSQU5UIFdJVEggR1JBTlQgT1BUSU9OIGFuZCBSRVZPS0UgR1JB TlRFRCBCWQorLS0KKy0tCistLSBiZWdpbiBvZiB0ZXN0OiBHUkFOVHxSRVZPS0UgU0VMRUNUfFVQ REFURSBPTiBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQQorLS0KK0NSRUFURSBTQ0hFTUEgc3ZhcnRl c3Q7CitHUkFOVCBBTEwgT04gU0NIRU1BIHN2YXJ0ZXN0IFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXI7CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxF IHN2YXJ0ZXN0LnZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjIgQVMg aW50OworR1JBTlQgU0VMRUNUIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIHN2YXJ0ZXN0IFRP IHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3N2YXJ0ZXN0LnZhcjEnLCAnU0VMRUNUJyk7IC0t IHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdzdmFydGVzdC52YXIyJywgJ1NFTEVD VCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1JFVk9LRSBTRUxFQ1QgT04gQUxM IFZBUklBQkxFUyBJTiBTQ0hFTUEgc3ZhcnRlc3QgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IxOwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MScsICdzdmFydGVzdC52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSBy b3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFy aWFibGVfcjEnLCAnc3ZhcnRlc3QudmFyMicsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ZgorKDEgcm93KQorCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSBzdmFydGVz dC52YXIxOworRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIyOworRFJPUCBTQ0hFTUEgc3ZhcnRl c3Q7CistLQorLS0gZW5kIG9mIHRlc3Q6IEdSQU5UfFJFVk9LRSBTRUxFQ1R8VVBEQVRFIE9OIEFM TCBWQVJJQUJMRVMgSU4gU0NIRU1BCistLQorLS0KKy0tIGZ1bmN0aW9uIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSBoYXZlIHZhcmlvdXMga2luZCBvZiBzaWduYXR1cmUuCistLSB0aGUg Zm9sbG93aW5nIGFyZSBleHRlbnNpdmUgdGVzdCBmb3IgaXQuCistLQorU0VUIFJPTEUgVE8gcmVn cmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMudmFyMSBBUyBpbnQ7 CitTRVQgc2VhcmNoX3BhdGggVE8gcHVibGljOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHB1 YmxpYy52YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitHUkFOVCBTRUxFQ1QsIFVQREFURSBP TiBWQVJJQUJMRSBwdWJsaWMudmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyOworU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdwdWJs aWMudmFyMScsICdTRUxFQ1QnKTsKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdwdWJs aWMubm90ZXhpc3RzJywgJ1NFTEVDVCcpIElTIE5VTEw7CisgP2NvbHVtbj8gCistLS0tLS0tLS0t CisgdAorKDEgcm93KQorCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxOworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICd2 YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAndmFy MScsICdVUERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3ZhcjEn LCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICd2YXIxJywg J1VQREFURScpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgn dmFyMScsICdVUERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1Qg b2lkIEFTIHZhcmlkCisgIEZST00gcGdfdmFyaWFibGUKKyAgV0hFUkUgdmFybmFtZSA9ICd2YXIx JyBBTkQgdmFybmFtZXNwYWNlID0gJ3B1YmxpYyc6OnJlZ25hbWVzcGFjZSBcZ3NldAorU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgndmFyMScsICdTRUxFQ1QnKTsgLS0gdAor IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKCd2YXIxJywgJ1VQREFURScpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVf cjEnLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3Ix JywgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VM RUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMics IDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVD VCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCA6 dmFyaWQsICdVUERBVEUnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1Qg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0Cisg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UoOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MSc6OnJlZ3JvbGUsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSBy b3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFy aWFibGVfcjEnOjpyZWdyb2xlLCAndmFyMScsICdVUERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdy ZXNzX3ZhcmlhYmxlX3IyJzo6cmVncm9sZSwgJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSgncmVncmVzc192YXJpYWJsZV9yMic6OnJlZ3JvbGUsICd2YXIxJywgJ1VQREFURScpOyAtLSB0 CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpyZWdyb2xlLCA6dmFyaWQsICdTRUxFQ1Qn KTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJzo6cmVncm9sZSwgOnZhcmlkLCAn VVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6OnJlZ3JvbGUsIDp2 YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInOjpyZWdy b2xlLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCist LQorLS0gZW5kIG9mIGZ1bmN0aW9uIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSB0ZXN0 cy4KKy0tCitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIHNlYXJjaF9wYXRoIFRPIERFRkFVTFQ7 CitEUk9QIFZBUklBQkxFIHB1YmxpYy52YXIxOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf cjE7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMjsKK0RST1AgUk9MRSByZWdyZXNzX3Zh cmlhYmxlX293bmVyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hl ZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggMGEzNWYyZjhm NmEuLjY2ZTVmOWY1NmJkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3Nj aGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTExMSw3 ICsxMTEsNyBAQCB0ZXN0OiBqc29uIGpzb25iIGpzb25fZW5jb2RpbmcganNvbnBhdGgganNvbnBh dGhfZW5jb2RpbmcganNvbmJfanNvbnBhdGggc3FsanNvbgogIyBOQjogdGVtcC5zcWwgZG9lcyBy ZWNvbm5lY3RzIHdoaWNoIHRyYW5zaWVudGx5IHVzZSAyIGNvbm5lY3Rpb25zLAogIyBzbyBrZWVw IHRoaXMgcGFyYWxsZWwgZ3JvdXAgdG8gYXQgbW9zdCAxOSB0ZXN0cwogIyAtLS0tLS0tLS0tCi10 ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNz IHByZXBhcmUgY29udmVyc2lvbiB0cnVuY2F0ZSBhbHRlcl90YWJsZSBzZXF1ZW5jZSBwb2x5bW9y cGhpc20gcm93dHlwZXMgcmV0dXJuaW5nIGxhcmdlb2JqZWN0IHdpdGggeG1sCit0ZXN0OiBwbGFu Y2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUg Y29udmVyc2lvbiB0cnVuY2F0ZSBhbHRlcl90YWJsZSBzZXF1ZW5jZSBwb2x5bW9ycGhpc20gcm93 dHlwZXMgcmV0dXJuaW5nIGxhcmdlb2JqZWN0IHdpdGggeG1sIHNlc3Npb25fdmFyaWFibGVzCiAK ICMgLS0tLS0tLS0tLQogIyBBbm90aGVyIGdyb3VwIG9mIHBhcmFsbGVsIHRlc3RzCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5LnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2RlcGVuZGVuY3kuc3FsCmluZGV4IDhkNzRlZDcxMjJjLi42YzE4YjdmODQwYSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5jeS5zcWwKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvZGVwZW5kZW5jeS5zcWwKQEAgLTExNCwzICsxMTQsMTcgQEAgRFJPUCBV U0VSIHJlZ3Jlc3NfZGVwX3VzZXIyOwogRFJPUCBPV05FRCBCWSByZWdyZXNzX2RlcF91c2VyMiwg cmVncmVzc19kZXBfdXNlcjA7CiBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjI7CiBEUk9QIFVT RVIgcmVncmVzc19kZXBfdXNlcjA7CisKKy0tIGRlcGVuZGVuY3kgb24gdHlwZQorQ1JFQVRFIERP TUFJTiB2YXJkb21haW4gQVMgaW50OworQ1JFQVRFIFRZUEUgdmFydHlwZSBBUyAoYSBpbnQsIGIg aW50LCBjIHZhcmRvbWFpbik7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJ0eXBlOworCist LSBzaG91bGQgZmFpbAorRFJPUCBET01BSU4gdmFyZG9tYWluOworRFJPUCBUWVBFIHZhcnR5cGU7 CisKKy0tIGNsZWFuIHVwCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdmFydHlwZTsK K0RST1AgRE9NQUlOIHZhcmRvbWFpbjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3BzcWwuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKaW5kZXggMWE4YTgzNDYy ZjAuLmI1NjdlZTFlZWUyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbApAQCAtMTY0Myw2ICsxNjQzLDE5 IEBAIENPTU1JVDsKIERST1AgVEFCTEUgYmxhOwogRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwog CistLSBzZXNzaW9uIHZhcmlhYmxlIHRlc3QKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI7CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgdmFyY2hhciBDT0xMQVRFICJDIjsKK1xkVisgdmFyMQorR1JBTlQgU0VMRUNU IE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElT ICdzb21lIGRlc2NyaXB0aW9uJzsKK1xkVisgdmFyMQorRFJPUCBWQVJJQUJMRSB2YXIxOworCitT RVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CisK IC0tIGNoZWNrIGRlc2NyaWJpbmcgaW52YWxpZCBtdWx0aXBhcnQgbmFtZXMKIFxkQSByZWdyZXNz aW9uLmhlYXAKIFxkQSBub25lc3VjaC5oZWFwCkBAIC0xNzU0LDYgKzE3NjcsOSBAQCBEUk9QIEZV TkNUSU9OIHBzcWxfZXJyb3I7CiBcZFggbm9uZXN1Y2gucHVibGljLmZ1bmNfZGVwc19zdGF0CiBc ZHkgcmVncmVzc2lvbi5teWV2dAogXGR5IG5vbmVzdWNoLm15ZXZ0CitcZFYgaG9zdC5yZWdyZXNz aW9uLnB1YmxpYy52YXIKK1xkViByZWdyZXNzaW9ufG15ZGIucHVibGljLnZhcgorXGRWIG5vbmVz dWNoLnB1YmxpYy52YXIKIAogLS0gY2hlY2sgdGhhdCBkb3RzIHdpdGhpbiBxdW90ZWQgbmFtZSBz ZWdtZW50cyBhcmUgbm90IGNvdW50ZWQKIFxkQSAibm8uc3VjaC5hY2Nlc3MubWV0aG9kIgpAQCAt MTc5NSw2ICsxODExLDggQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGR4ICJuby5zdWNo Lmluc3RhbGxlZC5leHRlbnNpb24iCiBcZFggIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIK IFxkeSAibm8uc3VjaC5ldmVudC50cmlnZ2VyIgorXGRWICJuby5zdWNoLnZhcmlhYmxlIgorCiAK IC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGRBICJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIKQEAgLTE4MzUsNiArMTg1Myw3 IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxkeCAibm8uc3VjaC5zY2hlbWEiLiJuby5z dWNoLmluc3RhbGxlZC5leHRlbnNpb24iCiBcZFggIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5l eHRlbmRlZC5zdGF0aXN0aWNzIgogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQu dHJpZ2dlciIKK1xkViAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBh Z2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZp Y2F0aW9ucy4KIFxkdCByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUu cmVsYXRpb24iCkBAIC0xODU5LDYgKzE4NzgsNyBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7 CiBcZFAgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnBhcnRpdGlvbmVkLnJl bGF0aW9uIgogXGRUIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5 cGUiCiBcZFggcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0 YXRpc3RpY3MiCitcZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlh YmxlIgogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2No ZW1hIHF1YWxpZmljYXRpb25zLgogXGR0ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9uIgpAQCAtMTg4NCw2ICsxOTA0LDcgQEAgRFJPUCBG VU5DVElPTiBwc3FsX2Vycm9yOwogXGRQICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLnBhcnRpdGlvbmVkLnJlbGF0aW9uIgogXGRUICJuby5zdWNoLmRhdGFiYXNl Ii4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmRhdGEudHlwZSIKIFxkWCAibm8uc3VjaC5kYXRh YmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgorXGRW ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgog CiAtLSBjaGVjayBcZHJnIGFuZCBcZHUKIENSRUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTA7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVlYjBmOTRjYTNjCi0tLSAvZGV2L251bGwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0wLDAgKzEsMjk3 IEBACitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCitTRVQgbG9nX3N0YXRl bWVudCBUTyBkZGw7CisKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg aW50OworCistLSBzaG91bGQgZmFpbCwgcHNldWRvdHlwZXMgYXJlIG5vdCBhbGxvd2VkCitDUkVB VEUgVkFSSUFCTEUgdmFyMiBBUyBhbnllbGVtZW50OworCistLSBzaG91bGQgYmUgb2ssIGRvIG5v dGhpbmcKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIHZhcjI7CisKKy0tIGRvIG5vdGhpbmcKK0NS RUFURSBWQVJJQUJMRSBJRiBOT1QgRVhJU1RTIHZhcjEgQVMgaW50OworCistLSBzaG91bGQgZmFp bAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworCistLSBzaG91bGQgYmUgb2sKK0RST1Ag VkFSSUFCTEUgSUYgRVhJU1RTIHZhcjE7CisKKy0tIHRoZSB2YXJpYWJsZSBjYW4gdXNlIGNvbXBv c2l0ZSB0eXBlcworQ1JFQVRFIFRBQkxFIHQxIChhIGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgdDE7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRBQkxFIHQxOworCistLSBz aG91bGQgYmUgb2sKK0FMVEVSIFRBQkxFIHQxIEFERCBDT0xVTU4gYyBpbnQ7CisKKy0tIHNob3Vs ZCBmYWlsCitBTFRFUiBUQUJMRSB0MSBBTFRFUiBDT0xVTU4gYiBUWVBFIG51bWVyaWM7CisKK0RS T1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgdDE7CisKK0NSRUFURSBUWVBFIHQxIEFTIChh IGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdDE7CisKKy0tIHNob3VsZCBm YWlsCitEUk9QIFRZUEUgdDE7CisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBBREQg QVRUUklCVVRFIGMgaW50OworCistLSBzaG91bGQgZmFpbAorQUxURVIgVFlQRSB0MSBBTFRFUiBB VFRSSUJVVEUgYiAgVFlQRSBudW1lcmljOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZ UEUgdDE7CisKK1NFVCBsb2dfc3RhdGVtZW50IFRPIGRlZmF1bHQ7CisKK0NSRUFURSBET01BSU4g dGVzdHZhcl9kb21haW4gQVMgaW50OworQ1JFQVRFIFRZUEUgdGVzdHZhcl90eXBlIEFTIChhIHRl c3R2YXJfZG9tYWluKTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGVzdHZhcl9kb21haW47 CisKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBET01BSU4gdGVzdHZhcl9kb21haW4gQUREIENIRUNL KHZhbHVlIDw+IDEwMCk7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgdGVzdHZhcl90eXBlOworCistLSBzaG91bGQgZmFpbAorQUxURVIgRE9NQUlOIHRl c3R2YXJfZG9tYWluIEFERCBDSEVDSyh2YWx1ZSA8PiAxMDApOworCitEUk9QIFZBUklBQkxFIHZh cjE7CisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgRE9NQUlOIHRlc3R2YXJfZG9tYWluIEFERCBD SEVDSyh2YWx1ZSA8PiAxMDApOworCitEUk9QIFRZUEUgdGVzdHZhcl90eXBlOworRFJPUCBUWVBF IHRlc3R2YXJfZG9tYWluOworCistLSBjaGVjayBldmVudCB0cmlnZ2VyIHN1cHBvcnQKK0NSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJfZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZCgp CitSRVRVUk5TIGV2ZW50X3RyaWdnZXIKK0FTICQkCitERUNMQVJFIHIgcmVjb3JkOworQkVHSU4K KyAgRk9SIHIgSU4gU0VMRUNUICogZnJvbSBwZ19ldmVudF90cmlnZ2VyX2Ryb3BwZWRfb2JqZWN0 cygpCisgIExPT1AKKyAgICBDT05USU5VRSBXSEVOIE5PVCByLm5vcm1hbCBBTkQgTk9UIHIub3Jp Z2luYWw7CisKKyAgICBSQUlTRSBOT1RJQ0UKKyAgICAgICAnTk9STUFMOiBvcmlnPSUgbm9ybWFs PSUgaXN0ZW1wPSUgdHlwZT0lIGlkZW50aXR5PSUgbmFtZT0lIGFyZ3M9JScsCisgICAgICAgci5v cmlnaW5hbCwgci5ub3JtYWwsIHIuaXNfdGVtcG9yYXJ5LCByLm9iamVjdF90eXBlLAorICAgICAg IHIub2JqZWN0X2lkZW50aXR5LCByLmFkZHJlc3NfbmFtZXMsIHIuYWRkcmVzc19hcmdzOworICBF TkQgTE9PUDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBFVkVOVCBUUklH R0VSIHN2YXJfcmVncmVzc19ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVkIE9OIHNxbF9kcm9w CisgIFdIRU4gVEFHIElOICgnRFJPUCBWQVJJQUJMRScpCisgIEVYRUNVVEUgUFJPQ0VEVVJFIHN2 YXJfZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZCgpOworCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBpbnQ7CitEUk9QIFZBUklBQkxFIHZhcjE7CisKK0RST1AgRVZFTlQgVFJJR0dFUiBzdmFy X3JlZ3Jlc3NfZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZDsKKworLS0gY2hlY2sgY29tbWVu dCBvbiB2YXJpYWJsZQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ09NTUVOVCBPTiBW QVJJQUJMRSB2YXIxIElTICdzb21lIHZhcmlhYmxlIGNvbW1lbnQnOworU0VMRUNUIHBnX2NhdGFs b2cub2JqX2Rlc2NyaXB0aW9uKG9pZCwgJ3BnX3ZhcmlhYmxlJykgRlJPTSBwZ192YXJpYWJsZSBX SEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIGNoZWNr IHRoZSBvYmplY3QgYWRkcmVzcyBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBTQ0hF TUEgdmFydGVzdDE7CitDUkVBVEUgU0NIRU1BIHZhcnRlc3QyOworQ1JFQVRFIFZBUklBQkxFIHZh cnRlc3QxLnN2YXJ0ZXN0X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcnRlc3QyLnN2 YXJ0ZXN0X3ZhcjEgQVMgaW50OworCitTRUxFQ1QKKyAgZS52YXJuYW1lLAorICBwZ19kZXNjcmli ZV9vYmplY3QoJ3BnX3ZhcmlhYmxlJzo6cmVnY2xhc3MsIGUub2lkLCAwKSBhcyBkZXNjciwKKyAg Yi50eXBlLCBiLm9iamVjdF9uYW1lcywgYi5vYmplY3RfYXJncywKKyAgcGdfaWRlbnRpZnlfb2Jq ZWN0KGEuY2xhc3NpZCwgYS5vYmppZCwgYS5vYmpzdWJpZCkgYXMgaWRlbnQKK0ZST00gcGdfdmFy aWFibGUgYXMgZSwKKyAgTEFURVJBTCBwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcygncGdf dmFyaWFibGUnOjpyZWdjbGFzcywgZS5vaWQsIDApIGFzIGIsCisgIExBVEVSQUwgcGdfZ2V0X29i amVjdF9hZGRyZXNzKGIudHlwZSwgYi5vYmplY3RfbmFtZXMsIGIub2JqZWN0X2FyZ3MpIGFzIGEK K1dIRVJFIGUudmFybmFtZSBMSUtFICdzdmFydGVzdF92YXIlJzsKKworRFJPUCBTQ0hFTUEgdmFy dGVzdDEgQ0FTQ0FERTsKK0RST1AgU0NIRU1BIHZhcnRlc3QyIENBU0NBREU7CisKKy0tIGNoZWNr IGFjY2VzcyByaWdodHMgYW5kIHN1cHBvcnRlZCBBTFRFUgorQ1JFQVRFIFNDSEVNQSBzdmFydGVz dDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgc3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9vd25l cjsKKworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OworCitDUkVBVEUgUk9M RSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHN2 YXJ0ZXN0LnZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CitSRVZPS0UgQUxMIE9OIFZB UklBQkxFIHN2YXJ0ZXN0LnZhcjEgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKworQUxU RVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBPV05FUiBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVy OworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBSRU5BTUUgVE8gdmFyeHg7CitBTFRFUiBW QVJJQUJMRSBzdmFydGVzdC52YXJ4eCBTRVQgU0NIRU1BIHB1YmxpYzsKKworRFJPUCBWQVJJQUJM RSBwdWJsaWMudmFyeHg7CisKK0FMVEVSIERFRkFVTFQgUFJJVklMRUdFUworICAgRk9SIFJPTEUg cmVncmVzc192YXJpYWJsZV9vd25lcgorICAgSU4gU0NIRU1BIHN2YXJ0ZXN0CisgICBHUkFOVCBT RUxFQ1QgT04gVkFSSUFCTEVTIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworCistLSBjcmVh dGluZyB2YXJpYWJsZSB3aXRoIGRlZmF1bHQgcHJpdmlsZWdlcworU0VUIFJPTEUgVE8gcmVncmVz c192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsK K1NFVCBST0xFIFRPIERFRkFVTFQ7CisKKy0tIHNob3VsZCBiZSBvay4gc2luY2UgQUxURVIgREVG QVVMVCBQUklWSUxFR0VTCistLSBhbGxvdyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlciB0byBoYXZl IFNFTEVDVCBwcml2aWxlZGdlCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl KCdyZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcicsICdzdmFydGVzdC52YXIxJywgJ1NFTEVDVCcpOyAt LSB0CisKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0 OworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworCistLQorLS0gYmVnaW4gb2Yg Y2hlY2sgR1JBTlQgV0lUSCBHUkFOVCBPUFRJT04gYW5kIFJFVk9LRSBHUkFOVEVEIEJZCistLQor Q1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFy aWFibGVfcjI7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyBpbnQ7ICAgICAgLS12YXIxIHdpbGwgb3duZWQgYnkgcmVncmVzc192 YXJpYWJsZV9vd25lcgorCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNz X3ZhcmlhYmxlX3IxIFdJVEggR1JBTlQgT1BUSU9OOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJp YWJsZV9yMTsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyaWFi bGVfcjIgV0lUSCBHUkFOVCBPUFRJT047CitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRUxFQ1Qg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1 YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcp OyAtLSB0CisKK1JFVk9LRSBBTEwgUFJJVklMRUdFUyBPTiBWQVJJQUJMRSB2YXIxIEZST00gcmVn cmVzc192YXJpYWJsZV9yMSBDQVNDQURFOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcp OyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IyJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCisKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBU TyByZWdyZXNzX3ZhcmlhYmxlX3IyOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAt LSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zhcmlh YmxlX3IyJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisKK1JFVk9LRSBBTEwgT04g VkFSSUFCTEUgdmFyMSBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcjIgR1JBTlRFRCBCWSByZWdyZXNz X3ZhcmlhYmxlX293bmVyOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl KCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3Iy JywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX293bmVyJywgJ3B1YmxpYy52YXIxJywg J1NFTEVDVCcpOyAtLSB0CitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIFZBUklBQkxFIHZh cjE7CistLQorLS0gZW5kIG9mIGNoZWNrIEdSQU5UIFdJVEggR1JBTlQgT1BUSU9OIGFuZCBSRVZP S0UgR1JBTlRFRCBCWQorLS0KKworLS0KKy0tIGJlZ2luIG9mIHRlc3Q6IEdSQU5UfFJFVk9LRSBT RUxFQ1R8VVBEQVRFIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BCistLQorQ1JFQVRFIFNDSEVN QSBzdmFydGVzdDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgc3ZhcnRlc3QgVE8gcmVncmVzc192YXJp YWJsZV9vd25lcjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CisKK0NSRUFU RSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVz dC52YXIyIEFTIGludDsKKworR1JBTlQgU0VMRUNUIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1B IHN2YXJ0ZXN0IFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAnc3ZhcnRlc3QudmFyMScs ICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgn cmVncmVzc192YXJpYWJsZV9yMScsICdzdmFydGVzdC52YXIyJywgJ1NFTEVDVCcpOyAtLSB0CisK K1JFVk9LRSBTRUxFQ1QgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgc3ZhcnRlc3QgRlJPTSBy ZWdyZXNzX3ZhcmlhYmxlX3IxOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3N2YXJ0ZXN0LnZhcjEnLCAnU0VMRUNUJyk7IC0t IGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFi bGVfcjEnLCAnc3ZhcnRlc3QudmFyMicsICdTRUxFQ1QnKTsgLS0gZgorCitTRVQgUk9MRSBUTyBE RUZBVUxUOworRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOworRFJPUCBWQVJJQUJMRSBzdmFy dGVzdC52YXIyOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3Q7CistLQorLS0gZW5kIG9mIHRlc3Q6IEdS QU5UfFJFVk9LRSBTRUxFQ1R8VVBEQVRFIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BCistLQor CistLQorLS0gZnVuY3Rpb24gaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIGhhdmUgdmFy aW91cyBraW5kIG9mIHNpZ25hdHVyZS4KKy0tIHRoZSBmb2xsb3dpbmcgYXJlIGV4dGVuc2l2ZSB0 ZXN0IGZvciBpdC4KKy0tCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCitD UkVBVEUgVkFSSUFCTEUgcHVibGljLnZhcjEgQVMgaW50OworCitTRVQgc2VhcmNoX3BhdGggVE8g cHVibGljOworCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgcHVibGljLnZhcjEgVE8gcmVncmVz c192YXJpYWJsZV9yMTsKK0dSQU5UIFNFTEVDVCwgVVBEQVRFIE9OIFZBUklBQkxFIHB1YmxpYy52 YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEnLCAnU0VMRUNU Jyk7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zhcmlh YmxlX3IxJywgJ3B1YmxpYy5ub3RleGlzdHMnLCAnU0VMRUNUJykgSVMgTlVMTDsKKworU0VUIFJP TEUgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0 CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxl X3IxJywgJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAndmFyMScsICdTRUxFQ1QnKTsgLS0g dAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJs ZV9yMicsICd2YXIxJywgJ1VQREFURScpOyAtLSB0CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIGYKKworU0VMRUNUIG9p ZCBBUyB2YXJpZAorICBGUk9NIHBnX3ZhcmlhYmxlCisgIFdIRVJFIHZhcm5hbWUgPSAndmFyMScg QU5EIHZhcm5hbWVzcGFjZSA9ICdwdWJsaWMnOjpyZWduYW1lc3BhY2UgXGdzZXQKKworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgndmFyMScsICdTRUxFQ1QnKTsgLS0gdAor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgndmFyMScsICdVUERBVEUnKTsg LS0gZgorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IxJywgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCA6dmFyaWQsICdVUERBVEUn KTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192 YXJpYWJsZV9yMicsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgOnZhcmlkLCAnVVBEQVRF Jyk7IC0tIHQKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSg6dmFyaWQs ICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSg6 dmFyaWQsICdVUERBVEUnKTsgLS0gZgorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJzo6cmVncm9sZSwgJ3ZhcjEnLCAnU0VMRUNUJyk7 IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFy aWFibGVfcjEnOjpyZWdyb2xlLCAndmFyMScsICdVUERBVEUnKTsgLS0gZgorU0VMRUNUIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6OnJlZ3JvbGUs ICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJzo6cmVncm9sZSwgJ3ZhcjEnLCAnVVBEQVRFJyk7 IC0tIHQKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192 YXJpYWJsZV9yMSc6OnJlZ3JvbGUsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJzo6cmVncm9s ZSwgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInOjpyZWdyb2xlLCA6dmFyaWQsICdTRUxFQ1Qn KTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192 YXJpYWJsZV9yMic6OnJlZ3JvbGUsIDp2YXJpZCwgJ1VQREFURScpOyAtLSB0CistLQorLS0gZW5k IG9mIGZ1bmN0aW9uIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSB0ZXN0cy4KKy0tCisK K1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgc2VhcmNoX3BhdGggVE8gREVGQVVMVDsKKworRFJP UCBWQVJJQUJMRSBwdWJsaWMudmFyMTsKKworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjE7 CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMjsKKworRFJPUCBST0xFIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDBjODFkMDM5NTBkLi5m MThhY2UxYmUxNSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK KysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTU1OSw2ICs1NTksNyBA QCBDcmVhdGVSb2xlU3RtdAogQ3JlYXRlU2NoZW1hU3RtdAogQ3JlYXRlU2NoZW1hU3RtdENvbnRl eHQKIENyZWF0ZVNlcVN0bXQKK0NyZWF0ZVNlc3Npb25WYXJTdG10CiBDcmVhdGVTdGF0c1N0bXQK IENyZWF0ZVN0bXQKIENyZWF0ZVN0bXRDb250ZXh0CkBAIC05MDEsNiArOTAyLDcgQEAgRm9ybURh dGFfcGdfdHNfcGFyc2VyCiBGb3JtRGF0YV9wZ190c190ZW1wbGF0ZQogRm9ybURhdGFfcGdfdHlw ZQogRm9ybURhdGFfcGdfdXNlcl9tYXBwaW5nCitGb3JtRGF0YV9wZ192YXJpYWJsZQogRm9ybUV4 dHJhRGF0YV9wZ19hdHRyaWJ1dGUKIEZvcm1fcGdfYWdncmVnYXRlCiBGb3JtX3BnX2FtCkBAIC05 NjAsNiArOTYyLDcgQEAgRm9ybV9wZ190c19wYXJzZXIKIEZvcm1fcGdfdHNfdGVtcGxhdGUKIEZv cm1fcGdfdHlwZQogRm9ybV9wZ191c2VyX21hcHBpbmcKK0Zvcm1fcGdfdmFyaWFibGUKIEZvcm1h dE5vZGUKIEZyZWVCbG9ja051bWJlckFycmF5CiBGcmVlTGlzdERhdGEKQEAgLTMxNzksNiArMzE4 Miw3IEBAIFZhclN0cmluZwogVmFyU3RyaW5nU29ydFN1cHBvcnQKIFZhcmlhYmxlCiBWYXJpYWJs ZUFzc2lnbkhvb2sKK1ZhcmlhYmxlSW5mbwogVmFyaWFibGVTZXRLaW5kCiBWYXJpYWJsZVNldFN0 bXQKIFZhcmlhYmxlU2hvd1N0bXQKLS0gCjIuNDkuMAoK --0000000000008f76b80632058aa3--