Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pfEon-0004gd-L8 for pgsql-hackers@arkaria.postgresql.org; Thu, 23 Mar 2023 06:53:01 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pfEom-0003Zy-Dw for pgsql-hackers@arkaria.postgresql.org; Thu, 23 Mar 2023 06:53:00 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pfEol-0003Zp-W4 for pgsql-hackers@lists.postgresql.org; Thu, 23 Mar 2023 06:53:00 +0000 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pfEoi-0007u3-5U for pgsql-hackers@lists.postgresql.org; Thu, 23 Mar 2023 06:52:59 +0000 Received: by mail-wr1-x42c.google.com with SMTP id o7so19338496wrg.5 for ; Wed, 22 Mar 2023 23:52:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679554375; h=in-reply-to:from:content-language:references:to:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=YZH0Xb1ZY6pxGPm0K82NNzWu4oBnELB1UxlJDm7/34s=; b=EELRA1n7stWWyWPvG2gZJPi5OazYnidIULbLGc5luCUCsHzZ1+Pc8CfQsPM0OhBOyw duKJVWhQbuFfDOv16DdJJpcM8OEmHbX8tvi/dMbNyLCKa6aAlpjImAn0n+esVy1lPJrP ifiqrFZYf9Id/UbZF1ZPKt49ndjFmPMrS0uf6CavAUYWhDp5TLzkEMMubnNLNBklMqfg z7iZl1xYWF9xiWATpH4pWDaddrD+OMDJ0UbF5WMTVaGpPKN4YvtQ5No9B+cml9Z5lVjX MtqitmLvFdbxw201nyySGmljkkk+0fhWMb1MqutRwBHOQUORJbX+wYvngZ+Sq9KpfTga JUoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679554375; h=in-reply-to:from:content-language:references:to:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=YZH0Xb1ZY6pxGPm0K82NNzWu4oBnELB1UxlJDm7/34s=; b=dMF6jhxDl0OXUqqyZiYDMUO9gVsS/fUS6dYWwoTXLin2bKWI+MSj6C4wdlBduR72Xo e7JziW/zXHaqFc/Ay6ZJ0CUukmcq27kvyna4E6Jr49PefRU4rJvst8wBol+qICXjq8V1 a6S7MVq/PMdAOq98G1/tbgYUjCaU/XgTOcG/67HCcjXf6jbPcBmLufYj2BNKvTZM+xAd z2orDt9uSiBFoRTr9CkPQGZgXZr4akCfOPuAjmH1I5lpqCmxsXqZaAWRBhGS97jjbFyE SBMX76yl99tiv4cfFloIfon8p4qkmSipkJfnibtPvpoAvWxCGB3n0V+Ifhdi7WICSIvO /qug== X-Gm-Message-State: AAQBX9eVF7vkcFvgrZumXv1QLjtPfeRJRmudAbZDEBWSh8Z8kDrnvioF TjwQuTb2qQe9AMqMrqe0JOI= X-Google-Smtp-Source: AKy350bc+Id0TIApCA5cv/HO1yTaNUHTRvk6nbjVyqJpv1MaF5EMumQN9tEu6XnhDX9wgXrdEnsyYg== X-Received: by 2002:adf:f051:0:b0:2d0:d739:f901 with SMTP id t17-20020adff051000000b002d0d739f901mr1815041wro.20.1679554374710; Wed, 22 Mar 2023 23:52:54 -0700 (PDT) Received: from [192.168.24.4] ([54.239.6.185]) by smtp.gmail.com with ESMTPSA id x2-20020a5d60c2000000b002cfe71153b4sm15425220wrt.60.2023.03.22.23.52.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 22 Mar 2023 23:52:54 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------FadsivS7X0J40eNe485FguTo" Message-ID: <41d123a2-5c67-2c92-6dca-864466989b5b@gmail.com> Date: Thu, 23 Mar 2023 07:51:37 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: Remove nonmeaningful prefixes in PgStat_* fields To: Michael Paquier , Andres Freund , Alvaro Herrera , PostgreSQL Hackers References: <9142f62a-a422-145c-bde0-b5bc498a4ada@gmail.com> <20230112171252.xucefmthy5l4l2ec@alvherre.pgsql> <20230112180733.agmvpugp6ggorade@awork3.anarazel.de> <20230322185223.gxppwjajvvbtx7m6@liskov> Content-Language: en-US From: "Drouvot, Bertrand" In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------FadsivS7X0J40eNe485FguTo Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, On 3/23/23 1:09 AM, Michael Paquier wrote: > On Wed, Mar 22, 2023 at 02:52:23PM -0400, Melanie Plageman wrote: >> This comment still has the t_ prefix as does the one for tuples_updated >> and deleted. >> >> otherwise, LGTM. > > Good catch. pgstat_count_heap_update() has a t_tuples_hot_updated, > and pgstat_update_heap_dead_tuples() a t_delta_dead_tuples on top of > the three you have just reported. > > I have grepped for all the fields renamed, and nothing else stands > out. However, my eyes don't have a 100% accuracy, either. Thank you both for your keen eye! I just did another check too and did not find more than the ones you've just reported. Please find attached V3 getting rid of them. Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com --------------FadsivS7X0J40eNe485FguTo Content-Type: text/plain; charset=UTF-8; name="v3-0001-remove_nonmeaningful_prefixes.patch" Content-Disposition: attachment; filename="v3-0001-remove_nonmeaningful_prefixes.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9mdW5jdGlv bi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2Z1bmN0aW9uLmMKaW5k ZXggMGZkY2VmYjc4My4uNzllNzgxMTY3YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvYWN0aXZpdHkvcGdzdGF0X2Z1bmN0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWN0aXZpdHkvcGdzdGF0X2Z1bmN0aW9uLmMKQEAgLTEyNCwxMyArMTI0LDEzIEBAIHBnc3Rh dF9pbml0X2Z1bmN0aW9uX3VzYWdlKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLAogCWZjdS0+ ZnMgPSBwZW5kaW5nOwogCiAJLyogc2F2ZSBzdGF0cyBmb3IgdGhpcyBmdW5jdGlvbiwgbGF0 ZXIgdXNlZCB0byBjb21wZW5zYXRlIGZvciByZWN1cnNpb24gKi8KLQlmY3UtPnNhdmVfZl90 b3RhbF90aW1lID0gcGVuZGluZy0+Zl90b3RhbF90aW1lOworCWZjdS0+c2F2ZV9mX3RvdGFs X3RpbWUgPSBwZW5kaW5nLT50b3RhbF90aW1lOwogCiAJLyogc2F2ZSBjdXJyZW50IGJhY2tl bmQtd2lkZSB0b3RhbCB0aW1lICovCiAJZmN1LT5zYXZlX3RvdGFsID0gdG90YWxfZnVuY190 aW1lOwogCiAJLyogZ2V0IGNsb2NrIHRpbWUgYXMgb2YgZnVuY3Rpb24gc3RhcnQgKi8KLQlJ TlNUUl9USU1FX1NFVF9DVVJSRU5UKGZjdS0+Zl9zdGFydCk7CisJSU5TVFJfVElNRV9TRVRf Q1VSUkVOVChmY3UtPnN0YXJ0KTsKIH0KIAogLyoKQEAgLTE0Niw0MSArMTQ2LDQxIEBAIHZv aWQKIHBnc3RhdF9lbmRfZnVuY3Rpb25fdXNhZ2UoUGdTdGF0X0Z1bmN0aW9uQ2FsbFVzYWdl ICpmY3UsIGJvb2wgZmluYWxpemUpCiB7CiAJUGdTdGF0X0Z1bmN0aW9uQ291bnRzICpmcyA9 IGZjdS0+ZnM7Ci0JaW5zdHJfdGltZQlmX3RvdGFsOwotCWluc3RyX3RpbWUJZl9vdGhlcnM7 Ci0JaW5zdHJfdGltZQlmX3NlbGY7CisJaW5zdHJfdGltZQl0b3RhbDsKKwlpbnN0cl90aW1l CW90aGVyczsKKwlpbnN0cl90aW1lCXNlbGY7CiAKIAkvKiBzdGF0cyBub3Qgd2FudGVkPyAq LwogCWlmIChmcyA9PSBOVUxMKQogCQlyZXR1cm47CiAKIAkvKiB0b3RhbCBlbGFwc2VkIHRp bWUgaW4gdGhpcyBmdW5jdGlvbiBjYWxsICovCi0JSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChm X3RvdGFsKTsKLQlJTlNUUl9USU1FX1NVQlRSQUNUKGZfdG90YWwsIGZjdS0+Zl9zdGFydCk7 CisJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVCh0b3RhbCk7CisJSU5TVFJfVElNRV9TVUJUUkFD VCh0b3RhbCwgZmN1LT5zdGFydCk7CiAKIAkvKiBzZWxmIHVzYWdlOiBlbGFwc2VkIG1pbnVz IGFueXRoaW5nIGFscmVhZHkgY2hhcmdlZCB0byBvdGhlciBjYWxscyAqLwotCWZfb3RoZXJz ID0gdG90YWxfZnVuY190aW1lOwotCUlOU1RSX1RJTUVfU1VCVFJBQ1QoZl9vdGhlcnMsIGZj dS0+c2F2ZV90b3RhbCk7Ci0JZl9zZWxmID0gZl90b3RhbDsKLQlJTlNUUl9USU1FX1NVQlRS QUNUKGZfc2VsZiwgZl9vdGhlcnMpOworCW90aGVycyA9IHRvdGFsX2Z1bmNfdGltZTsKKwlJ TlNUUl9USU1FX1NVQlRSQUNUKG90aGVycywgZmN1LT5zYXZlX3RvdGFsKTsKKwlzZWxmID0g dG90YWw7CisJSU5TVFJfVElNRV9TVUJUUkFDVChzZWxmLCBvdGhlcnMpOwogCiAJLyogdXBk YXRlIGJhY2tlbmQtd2lkZSB0b3RhbCB0aW1lICovCi0JSU5TVFJfVElNRV9BREQodG90YWxf ZnVuY190aW1lLCBmX3NlbGYpOworCUlOU1RSX1RJTUVfQUREKHRvdGFsX2Z1bmNfdGltZSwg c2VsZik7CiAKIAkvKgotCSAqIENvbXB1dGUgdGhlIG5ldyBmX3RvdGFsX3RpbWUgYXMgdGhl IHRvdGFsIGVsYXBzZWQgdGltZSBhZGRlZCB0byB0aGUKLQkgKiBwcmUtY2FsbCB2YWx1ZSBv ZiBmX3RvdGFsX3RpbWUuICBUaGlzIGlzIG5lY2Vzc2FyeSB0byBhdm9pZAorCSAqIENvbXB1 dGUgdGhlIG5ldyB0b3RhbF90aW1lIGFzIHRoZSB0b3RhbCBlbGFwc2VkIHRpbWUgYWRkZWQg dG8gdGhlCisJICogcHJlLWNhbGwgdmFsdWUgb2YgdG90YWxfdGltZS4gIFRoaXMgaXMgbmVj ZXNzYXJ5IHRvIGF2b2lkCiAJICogZG91YmxlLWNvdW50aW5nIGFueSB0aW1lIHRha2VuIGJ5 IHJlY3Vyc2l2ZSBjYWxscyBvZiBteXNlbGYuICAoV2UgZG8KIAkgKiBub3QgbmVlZCBhbnkg c2ltaWxhciBrbHVnZSBmb3Igc2VsZiB0aW1lLCBzaW5jZSB0aGF0IGFscmVhZHkgZXhjbHVk ZXMKIAkgKiBhbnkgcmVjdXJzaXZlIGNhbGxzLikKIAkgKi8KLQlJTlNUUl9USU1FX0FERChm X3RvdGFsLCBmY3UtPnNhdmVfZl90b3RhbF90aW1lKTsKKwlJTlNUUl9USU1FX0FERCh0b3Rh bCwgZmN1LT5zYXZlX2ZfdG90YWxfdGltZSk7CiAKIAkvKiB1cGRhdGUgY291bnRlcnMgaW4g ZnVuY3Rpb24gc3RhdHMgdGFibGUgKi8KIAlpZiAoZmluYWxpemUpCi0JCWZzLT5mX251bWNh bGxzKys7Ci0JZnMtPmZfdG90YWxfdGltZSA9IGZfdG90YWw7Ci0JSU5TVFJfVElNRV9BREQo ZnMtPmZfc2VsZl90aW1lLCBmX3NlbGYpOworCQlmcy0+bnVtY2FsbHMrKzsKKwlmcy0+dG90 YWxfdGltZSA9IHRvdGFsOworCUlOU1RSX1RJTUVfQUREKGZzLT5zZWxmX3RpbWUsIHNlbGYp OwogfQogCiAvKgpAQCAtMjAzLDExICsyMDMsMTEgQEAgcGdzdGF0X2Z1bmN0aW9uX2ZsdXNo X2NiKFBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmLCBib29sIG5vd2FpdCkKIAlpZiAoIXBn c3RhdF9sb2NrX2VudHJ5KGVudHJ5X3JlZiwgbm93YWl0KSkKIAkJcmV0dXJuIGZhbHNlOwog Ci0Jc2hmdW5jZW50LT5zdGF0cy5mX251bWNhbGxzICs9IGxvY2FsZW50LT5mX251bWNhbGxz OwotCXNoZnVuY2VudC0+c3RhdHMuZl90b3RhbF90aW1lICs9Ci0JCUlOU1RSX1RJTUVfR0VU X01JQ1JPU0VDKGxvY2FsZW50LT5mX3RvdGFsX3RpbWUpOwotCXNoZnVuY2VudC0+c3RhdHMu Zl9zZWxmX3RpbWUgKz0KLQkJSU5TVFJfVElNRV9HRVRfTUlDUk9TRUMobG9jYWxlbnQtPmZf c2VsZl90aW1lKTsKKwlzaGZ1bmNlbnQtPnN0YXRzLm51bWNhbGxzICs9IGxvY2FsZW50LT5u dW1jYWxsczsKKwlzaGZ1bmNlbnQtPnN0YXRzLnRvdGFsX3RpbWUgKz0KKwkJSU5TVFJfVElN RV9HRVRfTUlDUk9TRUMobG9jYWxlbnQtPnRvdGFsX3RpbWUpOworCXNoZnVuY2VudC0+c3Rh dHMuc2VsZl90aW1lICs9CisJCUlOU1RSX1RJTUVfR0VUX01JQ1JPU0VDKGxvY2FsZW50LT5z ZWxmX3RpbWUpOwogCiAJcGdzdGF0X3VubG9ja19lbnRyeShlbnRyeV9yZWYpOwogCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCmluZGV4IGY3 OTNhYzE1MTYuLjhiMjMwNzc4ZDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fj dGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2 aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCkBAIC0zOCw5ICszOCw5IEBAIHR5cGVkZWYgc3RydWN0 IFR3b1BoYXNlUGdTdGF0UmVjb3JkCiAJUGdTdGF0X0NvdW50ZXIgaW5zZXJ0ZWRfcHJlX3Ry dW5jZHJvcDsKIAlQZ1N0YXRfQ291bnRlciB1cGRhdGVkX3ByZV90cnVuY2Ryb3A7CiAJUGdT dGF0X0NvdW50ZXIgZGVsZXRlZF9wcmVfdHJ1bmNkcm9wOwotCU9pZAkJCXRfaWQ7CQkJLyog dGFibGUncyBPSUQgKi8KLQlib29sCQl0X3NoYXJlZDsJCS8qIGlzIGl0IGEgc2hhcmVkIGNh dGFsb2c/ICovCi0JYm9vbAkJdF90cnVuY2Ryb3BwZWQ7IC8qIHdhcyB0aGUgcmVsYXRpb24g dHJ1bmNhdGVkL2Ryb3BwZWQ/ICovCisJT2lkCQkJaWQ7CQkJLyogdGFibGUncyBPSUQgKi8K Kwlib29sCQlzaGFyZWQ7CQkvKiBpcyBpdCBhIHNoYXJlZCBjYXRhbG9nPyAqLworCWJvb2wJ CXRydW5jZHJvcHBlZDsgLyogd2FzIHRoZSByZWxhdGlvbiB0cnVuY2F0ZWQvZHJvcHBlZD8g Ki8KIH0gVHdvUGhhc2VQZ1N0YXRSZWNvcmQ7CiAKIApAQCAtMzEwLDcgKzMxMCw3IEBAIHBn c3RhdF9yZXBvcnRfYW5hbHl6ZShSZWxhdGlvbiByZWwsCiAJCQlkZWFkdHVwbGVzIC09IHRy YW5zLT50dXBsZXNfdXBkYXRlZCArIHRyYW5zLT50dXBsZXNfZGVsZXRlZDsKIAkJfQogCQkv KiBjb3VudCBzdHVmZiBpbnNlcnRlZCBieSBhbHJlYWR5LWFib3J0ZWQgc3VieGFjdHMsIHRv byAqLwotCQlkZWFkdHVwbGVzIC09IHJlbC0+cGdzdGF0X2luZm8tPnRfY291bnRzLnRfZGVs dGFfZGVhZF90dXBsZXM7CisJCWRlYWR0dXBsZXMgLT0gcmVsLT5wZ3N0YXRfaW5mby0+Y291 bnRzLmRlbHRhX2RlYWRfdHVwbGVzOwogCQkvKiBTaW5jZSBBTkFMWVpFJ3MgY291bnRzIGFy ZSBlc3RpbWF0ZXMsIHdlIGNvdWxkIGhhdmUgdW5kZXJmbG93ZWQgKi8KIAkJbGl2ZXR1cGxl cyA9IE1heChsaXZldHVwbGVzLCAwKTsKIAkJZGVhZHR1cGxlcyA9IE1heChkZWFkdHVwbGVz LCAwKTsKQEAgLTM4Miw5ICszODIsOSBAQCBwZ3N0YXRfY291bnRfaGVhcF91cGRhdGUoUmVs YXRpb24gcmVsLCBib29sIGhvdCkKIAkJZW5zdXJlX3RhYnN0YXRfeGFjdF9sZXZlbChwZ3N0 YXRfaW5mbyk7CiAJCXBnc3RhdF9pbmZvLT50cmFucy0+dHVwbGVzX3VwZGF0ZWQrKzsKIAot CQkvKiB0X3R1cGxlc19ob3RfdXBkYXRlZCBpcyBub250cmFuc2FjdGlvbmFsLCBzbyBqdXN0 IGFkdmFuY2UgaXQgKi8KKwkJLyogdHVwbGVzX2hvdF91cGRhdGVkIGlzIG5vbnRyYW5zYWN0 aW9uYWwsIHNvIGp1c3QgYWR2YW5jZSBpdCAqLwogCQlpZiAoaG90KQotCQkJcGdzdGF0X2lu Zm8tPnRfY291bnRzLnRfdHVwbGVzX2hvdF91cGRhdGVkKys7CisJCQlwZ3N0YXRfaW5mby0+ Y291bnRzLnR1cGxlc19ob3RfdXBkYXRlZCsrOwogCX0KIH0KIApAQCAtNDI1LDcgKzQyNSw3 IEBAIHBnc3RhdF9jb3VudF90cnVuY2F0ZShSZWxhdGlvbiByZWwpCiAgKiB1cGRhdGUgZGVh ZC10dXBsZXMgY291bnQKICAqCiAgKiBUaGUgc2VtYW50aWNzIG9mIHRoaXMgYXJlIHRoYXQg d2UgYXJlIHJlcG9ydGluZyB0aGUgbm9udHJhbnNhY3Rpb25hbAotICogcmVjb3Zlcnkgb2Yg ImRlbHRhIiBkZWFkIHR1cGxlczsgc28gdF9kZWx0YV9kZWFkX3R1cGxlcyBkZWNyZWFzZXMK KyAqIHJlY292ZXJ5IG9mICJkZWx0YSIgZGVhZCB0dXBsZXM7IHNvIGRlbHRhX2RlYWRfdHVw bGVzIGRlY3JlYXNlcwogICogcmF0aGVyIHRoYW4gaW5jcmVhc2luZywgYW5kIHRoZSBjaGFu Z2UgZ29lcyBzdHJhaWdodCBpbnRvIHRoZSBwZXItdGFibGUKICAqIGNvdW50ZXIsIG5vdCBp bnRvIHRyYW5zYWN0aW9uYWwgc3RhdGUuCiAgKi8KQEAgLTQzNiw3ICs0MzYsNyBAQCBwZ3N0 YXRfdXBkYXRlX2hlYXBfZGVhZF90dXBsZXMoUmVsYXRpb24gcmVsLCBpbnQgZGVsdGEpCiAJ ewogCQlQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdF9pbmZvID0gcmVsLT5wZ3N0YXRfaW5m bzsKIAotCQlwZ3N0YXRfaW5mby0+dF9jb3VudHMudF9kZWx0YV9kZWFkX3R1cGxlcyAtPSBk ZWx0YTsKKwkJcGdzdGF0X2luZm8tPmNvdW50cy5kZWx0YV9kZWFkX3R1cGxlcyAtPSBkZWx0 YTsKIAl9CiB9CiAKQEAgLTUxMiwzMyArNTEyLDMzIEBAIEF0RU9YYWN0X1BnU3RhdF9SZWxh dGlvbnMoUGdTdGF0X1N1YlhhY3RTdGF0dXMgKnhhY3Rfc3RhdGUsIGJvb2wgaXNDb21taXQp CiAJCWlmICghaXNDb21taXQpCiAJCQlyZXN0b3JlX3RydW5jZHJvcF9jb3VudGVycyh0cmFu cyk7CiAJCS8qIGNvdW50IGF0dGVtcHRlZCBhY3Rpb25zIHJlZ2FyZGxlc3Mgb2YgY29tbWl0 L2Fib3J0ICovCi0JCXRhYnN0YXQtPnRfY291bnRzLnRfdHVwbGVzX2luc2VydGVkICs9IHRy YW5zLT50dXBsZXNfaW5zZXJ0ZWQ7Ci0JCXRhYnN0YXQtPnRfY291bnRzLnRfdHVwbGVzX3Vw ZGF0ZWQgKz0gdHJhbnMtPnR1cGxlc191cGRhdGVkOwotCQl0YWJzdGF0LT50X2NvdW50cy50 X3R1cGxlc19kZWxldGVkICs9IHRyYW5zLT50dXBsZXNfZGVsZXRlZDsKKwkJdGFic3RhdC0+ Y291bnRzLnR1cGxlc19pbnNlcnRlZCArPSB0cmFucy0+dHVwbGVzX2luc2VydGVkOworCQl0 YWJzdGF0LT5jb3VudHMudHVwbGVzX3VwZGF0ZWQgKz0gdHJhbnMtPnR1cGxlc191cGRhdGVk OworCQl0YWJzdGF0LT5jb3VudHMudHVwbGVzX2RlbGV0ZWQgKz0gdHJhbnMtPnR1cGxlc19k ZWxldGVkOwogCQlpZiAoaXNDb21taXQpCiAJCXsKLQkJCXRhYnN0YXQtPnRfY291bnRzLnRf dHJ1bmNkcm9wcGVkID0gdHJhbnMtPnRydW5jZHJvcHBlZDsKKwkJCXRhYnN0YXQtPmNvdW50 cy50cnVuY2Ryb3BwZWQgPSB0cmFucy0+dHJ1bmNkcm9wcGVkOwogCQkJaWYgKHRyYW5zLT50 cnVuY2Ryb3BwZWQpCiAJCQl7CiAJCQkJLyogZm9yZ2V0IGxpdmUvZGVhZCBzdGF0cyBzZWVu IGJ5IGJhY2tlbmQgdGh1cyBmYXIgKi8KLQkJCQl0YWJzdGF0LT50X2NvdW50cy50X2RlbHRh X2xpdmVfdHVwbGVzID0gMDsKLQkJCQl0YWJzdGF0LT50X2NvdW50cy50X2RlbHRhX2RlYWRf dHVwbGVzID0gMDsKKwkJCQl0YWJzdGF0LT5jb3VudHMuZGVsdGFfbGl2ZV90dXBsZXMgPSAw OworCQkJCXRhYnN0YXQtPmNvdW50cy5kZWx0YV9kZWFkX3R1cGxlcyA9IDA7CiAJCQl9CiAJ CQkvKiBpbnNlcnQgYWRkcyBhIGxpdmUgdHVwbGUsIGRlbGV0ZSByZW1vdmVzIG9uZSAqLwot CQkJdGFic3RhdC0+dF9jb3VudHMudF9kZWx0YV9saXZlX3R1cGxlcyArPQorCQkJdGFic3Rh dC0+Y291bnRzLmRlbHRhX2xpdmVfdHVwbGVzICs9CiAJCQkJdHJhbnMtPnR1cGxlc19pbnNl cnRlZCAtIHRyYW5zLT50dXBsZXNfZGVsZXRlZDsKIAkJCS8qIHVwZGF0ZSBhbmQgZGVsZXRl IGVhY2ggY3JlYXRlIGEgZGVhZCB0dXBsZSAqLwotCQkJdGFic3RhdC0+dF9jb3VudHMudF9k ZWx0YV9kZWFkX3R1cGxlcyArPQorCQkJdGFic3RhdC0+Y291bnRzLmRlbHRhX2RlYWRfdHVw bGVzICs9CiAJCQkJdHJhbnMtPnR1cGxlc191cGRhdGVkICsgdHJhbnMtPnR1cGxlc19kZWxl dGVkOwogCQkJLyogaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSBlYWNoIGNvdW50IGFzIG9uZSBj aGFuZ2UgZXZlbnQgKi8KLQkJCXRhYnN0YXQtPnRfY291bnRzLnRfY2hhbmdlZF90dXBsZXMg Kz0KKwkJCXRhYnN0YXQtPmNvdW50cy5jaGFuZ2VkX3R1cGxlcyArPQogCQkJCXRyYW5zLT50 dXBsZXNfaW5zZXJ0ZWQgKyB0cmFucy0+dHVwbGVzX3VwZGF0ZWQgKwogCQkJCXRyYW5zLT50 dXBsZXNfZGVsZXRlZDsKIAkJfQogCQllbHNlCiAJCXsKIAkJCS8qIGluc2VydGVkIHR1cGxl cyBhcmUgZGVhZCwgZGVsZXRlZCB0dXBsZXMgYXJlIHVuYWZmZWN0ZWQgKi8KLQkJCXRhYnN0 YXQtPnRfY291bnRzLnRfZGVsdGFfZGVhZF90dXBsZXMgKz0KKwkJCXRhYnN0YXQtPmNvdW50 cy5kZWx0YV9kZWFkX3R1cGxlcyArPQogCQkJCXRyYW5zLT50dXBsZXNfaW5zZXJ0ZWQgKyB0 cmFucy0+dHVwbGVzX3VwZGF0ZWQ7CiAJCQkvKiBhbiBhYm9ydGVkIHhhY3QgZ2VuZXJhdGVz IG5vIGNoYW5nZWRfdHVwbGUgZXZlbnRzICovCiAJCX0KQEAgLTYxOCwxMSArNjE4LDExIEBA IEF0RU9TdWJYYWN0X1BnU3RhdF9SZWxhdGlvbnMoUGdTdGF0X1N1YlhhY3RTdGF0dXMgKnhh Y3Rfc3RhdGUsIGJvb2wgaXNDb21taXQsIGluCiAJCQkvKiBmaXJzdCByZXN0b3JlIHZhbHVl cyBvYmxpdGVyYXRlZCBieSB0cnVuY2F0ZS9kcm9wICovCiAJCQlyZXN0b3JlX3RydW5jZHJv cF9jb3VudGVycyh0cmFucyk7CiAJCQkvKiBjb3VudCBhdHRlbXB0ZWQgYWN0aW9ucyByZWdh cmRsZXNzIG9mIGNvbW1pdC9hYm9ydCAqLwotCQkJdGFic3RhdC0+dF9jb3VudHMudF90dXBs ZXNfaW5zZXJ0ZWQgKz0gdHJhbnMtPnR1cGxlc19pbnNlcnRlZDsKLQkJCXRhYnN0YXQtPnRf Y291bnRzLnRfdHVwbGVzX3VwZGF0ZWQgKz0gdHJhbnMtPnR1cGxlc191cGRhdGVkOwotCQkJ dGFic3RhdC0+dF9jb3VudHMudF90dXBsZXNfZGVsZXRlZCArPSB0cmFucy0+dHVwbGVzX2Rl bGV0ZWQ7CisJCQl0YWJzdGF0LT5jb3VudHMudHVwbGVzX2luc2VydGVkICs9IHRyYW5zLT50 dXBsZXNfaW5zZXJ0ZWQ7CisJCQl0YWJzdGF0LT5jb3VudHMudHVwbGVzX3VwZGF0ZWQgKz0g dHJhbnMtPnR1cGxlc191cGRhdGVkOworCQkJdGFic3RhdC0+Y291bnRzLnR1cGxlc19kZWxl dGVkICs9IHRyYW5zLT50dXBsZXNfZGVsZXRlZDsKIAkJCS8qIGluc2VydGVkIHR1cGxlcyBh cmUgZGVhZCwgZGVsZXRlZCB0dXBsZXMgYXJlIHVuYWZmZWN0ZWQgKi8KLQkJCXRhYnN0YXQt PnRfY291bnRzLnRfZGVsdGFfZGVhZF90dXBsZXMgKz0KKwkJCXRhYnN0YXQtPmNvdW50cy5k ZWx0YV9kZWFkX3R1cGxlcyArPQogCQkJCXRyYW5zLT50dXBsZXNfaW5zZXJ0ZWQgKyB0cmFu cy0+dHVwbGVzX3VwZGF0ZWQ7CiAJCQl0YWJzdGF0LT50cmFucyA9IHRyYW5zLT51cHBlcjsK IAkJCXBmcmVlKHRyYW5zKTsKQEAgLTY1NSw5ICs2NTUsOSBAQCBBdFByZXBhcmVfUGdTdGF0 X1JlbGF0aW9ucyhQZ1N0YXRfU3ViWGFjdFN0YXR1cyAqeGFjdF9zdGF0ZSkKIAkJcmVjb3Jk Lmluc2VydGVkX3ByZV90cnVuY2Ryb3AgPSB0cmFucy0+aW5zZXJ0ZWRfcHJlX3RydW5jZHJv cDsKIAkJcmVjb3JkLnVwZGF0ZWRfcHJlX3RydW5jZHJvcCA9IHRyYW5zLT51cGRhdGVkX3By ZV90cnVuY2Ryb3A7CiAJCXJlY29yZC5kZWxldGVkX3ByZV90cnVuY2Ryb3AgPSB0cmFucy0+ ZGVsZXRlZF9wcmVfdHJ1bmNkcm9wOwotCQlyZWNvcmQudF9pZCA9IHRhYnN0YXQtPnRfaWQ7 Ci0JCXJlY29yZC50X3NoYXJlZCA9IHRhYnN0YXQtPnRfc2hhcmVkOwotCQlyZWNvcmQudF90 cnVuY2Ryb3BwZWQgPSB0cmFucy0+dHJ1bmNkcm9wcGVkOworCQlyZWNvcmQuaWQgPSB0YWJz dGF0LT5pZDsKKwkJcmVjb3JkLnNoYXJlZCA9IHRhYnN0YXQtPnNoYXJlZDsKKwkJcmVjb3Jk LnRydW5jZHJvcHBlZCA9IHRyYW5zLT50cnVuY2Ryb3BwZWQ7CiAKIAkJUmVnaXN0ZXJUd29Q aGFzZVJlY29yZChUV09QSEFTRV9STV9QR1NUQVRfSUQsIDAsCiAJCQkJCQkJICAgJnJlY29y ZCwgc2l6ZW9mKFR3b1BoYXNlUGdTdGF0UmVjb3JkKSk7CkBAIC02OTksMjQgKzY5OSwyNCBA QCBwZ3N0YXRfdHdvcGhhc2VfcG9zdGNvbW1pdChUcmFuc2FjdGlvbklkIHhpZCwgdWludDE2 IGluZm8sCiAJUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXRfaW5mbzsKIAogCS8qIEZpbmQg b3IgY3JlYXRlIGEgdGFic3RhdCBlbnRyeSBmb3IgdGhlIHJlbCAqLwotCXBnc3RhdF9pbmZv ID0gcGdzdGF0X3ByZXBfcmVsYXRpb25fcGVuZGluZyhyZWMtPnRfaWQsIHJlYy0+dF9zaGFy ZWQpOworCXBnc3RhdF9pbmZvID0gcGdzdGF0X3ByZXBfcmVsYXRpb25fcGVuZGluZyhyZWMt PmlkLCByZWMtPnNoYXJlZCk7CiAKIAkvKiBTYW1lIG1hdGggYXMgaW4gQXRFT1hhY3RfUGdT dGF0LCBjb21taXQgY2FzZSAqLwotCXBnc3RhdF9pbmZvLT50X2NvdW50cy50X3R1cGxlc19p bnNlcnRlZCArPSByZWMtPnR1cGxlc19pbnNlcnRlZDsKLQlwZ3N0YXRfaW5mby0+dF9jb3Vu dHMudF90dXBsZXNfdXBkYXRlZCArPSByZWMtPnR1cGxlc191cGRhdGVkOwotCXBnc3RhdF9p bmZvLT50X2NvdW50cy50X3R1cGxlc19kZWxldGVkICs9IHJlYy0+dHVwbGVzX2RlbGV0ZWQ7 Ci0JcGdzdGF0X2luZm8tPnRfY291bnRzLnRfdHJ1bmNkcm9wcGVkID0gcmVjLT50X3RydW5j ZHJvcHBlZDsKLQlpZiAocmVjLT50X3RydW5jZHJvcHBlZCkKKwlwZ3N0YXRfaW5mby0+Y291 bnRzLnR1cGxlc19pbnNlcnRlZCArPSByZWMtPnR1cGxlc19pbnNlcnRlZDsKKwlwZ3N0YXRf aW5mby0+Y291bnRzLnR1cGxlc191cGRhdGVkICs9IHJlYy0+dHVwbGVzX3VwZGF0ZWQ7CisJ cGdzdGF0X2luZm8tPmNvdW50cy50dXBsZXNfZGVsZXRlZCArPSByZWMtPnR1cGxlc19kZWxl dGVkOworCXBnc3RhdF9pbmZvLT5jb3VudHMudHJ1bmNkcm9wcGVkID0gcmVjLT50cnVuY2Ry b3BwZWQ7CisJaWYgKHJlYy0+dHJ1bmNkcm9wcGVkKQogCXsKIAkJLyogZm9yZ2V0IGxpdmUv ZGVhZCBzdGF0cyBzZWVuIGJ5IGJhY2tlbmQgdGh1cyBmYXIgKi8KLQkJcGdzdGF0X2luZm8t PnRfY291bnRzLnRfZGVsdGFfbGl2ZV90dXBsZXMgPSAwOwotCQlwZ3N0YXRfaW5mby0+dF9j b3VudHMudF9kZWx0YV9kZWFkX3R1cGxlcyA9IDA7CisJCXBnc3RhdF9pbmZvLT5jb3VudHMu ZGVsdGFfbGl2ZV90dXBsZXMgPSAwOworCQlwZ3N0YXRfaW5mby0+Y291bnRzLmRlbHRhX2Rl YWRfdHVwbGVzID0gMDsKIAl9Ci0JcGdzdGF0X2luZm8tPnRfY291bnRzLnRfZGVsdGFfbGl2 ZV90dXBsZXMgKz0KKwlwZ3N0YXRfaW5mby0+Y291bnRzLmRlbHRhX2xpdmVfdHVwbGVzICs9 CiAJCXJlYy0+dHVwbGVzX2luc2VydGVkIC0gcmVjLT50dXBsZXNfZGVsZXRlZDsKLQlwZ3N0 YXRfaW5mby0+dF9jb3VudHMudF9kZWx0YV9kZWFkX3R1cGxlcyArPQorCXBnc3RhdF9pbmZv LT5jb3VudHMuZGVsdGFfZGVhZF90dXBsZXMgKz0KIAkJcmVjLT50dXBsZXNfdXBkYXRlZCAr IHJlYy0+dHVwbGVzX2RlbGV0ZWQ7Ci0JcGdzdGF0X2luZm8tPnRfY291bnRzLnRfY2hhbmdl ZF90dXBsZXMgKz0KKwlwZ3N0YXRfaW5mby0+Y291bnRzLmNoYW5nZWRfdHVwbGVzICs9CiAJ CXJlYy0+dHVwbGVzX2luc2VydGVkICsgcmVjLT50dXBsZXNfdXBkYXRlZCArCiAJCXJlYy0+ dHVwbGVzX2RlbGV0ZWQ7CiB9CkBAIC03MzUsMTkgKzczNSwxOSBAQCBwZ3N0YXRfdHdvcGhh c2VfcG9zdGFib3J0KFRyYW5zYWN0aW9uSWQgeGlkLCB1aW50MTYgaW5mbywKIAlQZ1N0YXRf VGFibGVTdGF0dXMgKnBnc3RhdF9pbmZvOwogCiAJLyogRmluZCBvciBjcmVhdGUgYSB0YWJz dGF0IGVudHJ5IGZvciB0aGUgcmVsICovCi0JcGdzdGF0X2luZm8gPSBwZ3N0YXRfcHJlcF9y ZWxhdGlvbl9wZW5kaW5nKHJlYy0+dF9pZCwgcmVjLT50X3NoYXJlZCk7CisJcGdzdGF0X2lu Zm8gPSBwZ3N0YXRfcHJlcF9yZWxhdGlvbl9wZW5kaW5nKHJlYy0+aWQsIHJlYy0+c2hhcmVk KTsKIAogCS8qIFNhbWUgbWF0aCBhcyBpbiBBdEVPWGFjdF9QZ1N0YXQsIGFib3J0IGNhc2Ug Ki8KLQlpZiAocmVjLT50X3RydW5jZHJvcHBlZCkKKwlpZiAocmVjLT50cnVuY2Ryb3BwZWQp CiAJewogCQlyZWMtPnR1cGxlc19pbnNlcnRlZCA9IHJlYy0+aW5zZXJ0ZWRfcHJlX3RydW5j ZHJvcDsKIAkJcmVjLT50dXBsZXNfdXBkYXRlZCA9IHJlYy0+dXBkYXRlZF9wcmVfdHJ1bmNk cm9wOwogCQlyZWMtPnR1cGxlc19kZWxldGVkID0gcmVjLT5kZWxldGVkX3ByZV90cnVuY2Ry b3A7CiAJfQotCXBnc3RhdF9pbmZvLT50X2NvdW50cy50X3R1cGxlc19pbnNlcnRlZCArPSBy ZWMtPnR1cGxlc19pbnNlcnRlZDsKLQlwZ3N0YXRfaW5mby0+dF9jb3VudHMudF90dXBsZXNf dXBkYXRlZCArPSByZWMtPnR1cGxlc191cGRhdGVkOwotCXBnc3RhdF9pbmZvLT50X2NvdW50 cy50X3R1cGxlc19kZWxldGVkICs9IHJlYy0+dHVwbGVzX2RlbGV0ZWQ7Ci0JcGdzdGF0X2lu Zm8tPnRfY291bnRzLnRfZGVsdGFfZGVhZF90dXBsZXMgKz0KKwlwZ3N0YXRfaW5mby0+Y291 bnRzLnR1cGxlc19pbnNlcnRlZCArPSByZWMtPnR1cGxlc19pbnNlcnRlZDsKKwlwZ3N0YXRf aW5mby0+Y291bnRzLnR1cGxlc191cGRhdGVkICs9IHJlYy0+dHVwbGVzX3VwZGF0ZWQ7CisJ cGdzdGF0X2luZm8tPmNvdW50cy50dXBsZXNfZGVsZXRlZCArPSByZWMtPnR1cGxlc19kZWxl dGVkOworCXBnc3RhdF9pbmZvLT5jb3VudHMuZGVsdGFfZGVhZF90dXBsZXMgKz0KIAkJcmVj LT50dXBsZXNfaW5zZXJ0ZWQgKyByZWMtPnR1cGxlc191cGRhdGVkOwogfQogCkBAIC03Nzgs NyArNzc4LDcgQEAgcGdzdGF0X3JlbGF0aW9uX2ZsdXNoX2NiKFBnU3RhdF9FbnRyeVJlZiAq ZW50cnlfcmVmLCBib29sIG5vd2FpdCkKIAkgKiBJZ25vcmUgZW50cmllcyB0aGF0IGRpZG4n dCBhY2N1bXVsYXRlIGFueSBhY3R1YWwgY291bnRzLCBzdWNoIGFzCiAJICogaW5kZXhlcyB0 aGF0IHdlcmUgb3BlbmVkIGJ5IHRoZSBwbGFubmVyIGJ1dCBub3QgdXNlZC4KIAkgKi8KLQlp ZiAobWVtY21wKCZsc3RhdHMtPnRfY291bnRzLCAmYWxsX3plcm9lcywKKwlpZiAobWVtY21w KCZsc3RhdHMtPmNvdW50cywgJmFsbF96ZXJvZXMsCiAJCQkgICBzaXplb2YoUGdTdGF0X1Rh YmxlQ291bnRzKSkgPT0gMCkKIAl7CiAJCXJldHVybiB0cnVlOwpAQCAtNzkwLDM3ICs3OTAs MzcgQEAgcGdzdGF0X3JlbGF0aW9uX2ZsdXNoX2NiKFBnU3RhdF9FbnRyeVJlZiAqZW50cnlf cmVmLCBib29sIG5vd2FpdCkKIAkvKiBhZGQgdGhlIHZhbHVlcyB0byB0aGUgc2hhcmVkIGVu dHJ5LiAqLwogCXRhYmVudHJ5ID0gJnNodGFic3RhdHMtPnN0YXRzOwogCi0JdGFiZW50cnkt Pm51bXNjYW5zICs9IGxzdGF0cy0+dF9jb3VudHMudF9udW1zY2FuczsKLQlpZiAobHN0YXRz LT50X2NvdW50cy50X251bXNjYW5zKQorCXRhYmVudHJ5LT5udW1zY2FucyArPSBsc3RhdHMt PmNvdW50cy5udW1zY2FuczsKKwlpZiAobHN0YXRzLT5jb3VudHMubnVtc2NhbnMpCiAJewog CQlUaW1lc3RhbXBUeiB0ID0gR2V0Q3VycmVudFRyYW5zYWN0aW9uU3RvcFRpbWVzdGFtcCgp OwogCiAJCWlmICh0ID4gdGFiZW50cnktPmxhc3RzY2FuKQogCQkJdGFiZW50cnktPmxhc3Rz Y2FuID0gdDsKIAl9Ci0JdGFiZW50cnktPnR1cGxlc19yZXR1cm5lZCArPSBsc3RhdHMtPnRf Y291bnRzLnRfdHVwbGVzX3JldHVybmVkOwotCXRhYmVudHJ5LT50dXBsZXNfZmV0Y2hlZCAr PSBsc3RhdHMtPnRfY291bnRzLnRfdHVwbGVzX2ZldGNoZWQ7Ci0JdGFiZW50cnktPnR1cGxl c19pbnNlcnRlZCArPSBsc3RhdHMtPnRfY291bnRzLnRfdHVwbGVzX2luc2VydGVkOwotCXRh YmVudHJ5LT50dXBsZXNfdXBkYXRlZCArPSBsc3RhdHMtPnRfY291bnRzLnRfdHVwbGVzX3Vw ZGF0ZWQ7Ci0JdGFiZW50cnktPnR1cGxlc19kZWxldGVkICs9IGxzdGF0cy0+dF9jb3VudHMu dF90dXBsZXNfZGVsZXRlZDsKLQl0YWJlbnRyeS0+dHVwbGVzX2hvdF91cGRhdGVkICs9IGxz dGF0cy0+dF9jb3VudHMudF90dXBsZXNfaG90X3VwZGF0ZWQ7CisJdGFiZW50cnktPnR1cGxl c19yZXR1cm5lZCArPSBsc3RhdHMtPmNvdW50cy50dXBsZXNfcmV0dXJuZWQ7CisJdGFiZW50 cnktPnR1cGxlc19mZXRjaGVkICs9IGxzdGF0cy0+Y291bnRzLnR1cGxlc19mZXRjaGVkOwor CXRhYmVudHJ5LT50dXBsZXNfaW5zZXJ0ZWQgKz0gbHN0YXRzLT5jb3VudHMudHVwbGVzX2lu c2VydGVkOworCXRhYmVudHJ5LT50dXBsZXNfdXBkYXRlZCArPSBsc3RhdHMtPmNvdW50cy50 dXBsZXNfdXBkYXRlZDsKKwl0YWJlbnRyeS0+dHVwbGVzX2RlbGV0ZWQgKz0gbHN0YXRzLT5j b3VudHMudHVwbGVzX2RlbGV0ZWQ7CisJdGFiZW50cnktPnR1cGxlc19ob3RfdXBkYXRlZCAr PSBsc3RhdHMtPmNvdW50cy50dXBsZXNfaG90X3VwZGF0ZWQ7CiAKIAkvKgogCSAqIElmIHRh YmxlIHdhcyB0cnVuY2F0ZWQvZHJvcHBlZCwgZmlyc3QgcmVzZXQgdGhlIGxpdmUvZGVhZCBj b3VudGVycy4KIAkgKi8KLQlpZiAobHN0YXRzLT50X2NvdW50cy50X3RydW5jZHJvcHBlZCkK KwlpZiAobHN0YXRzLT5jb3VudHMudHJ1bmNkcm9wcGVkKQogCXsKIAkJdGFiZW50cnktPmxp dmVfdHVwbGVzID0gMDsKIAkJdGFiZW50cnktPmRlYWRfdHVwbGVzID0gMDsKIAkJdGFiZW50 cnktPmluc19zaW5jZV92YWN1dW0gPSAwOwogCX0KIAotCXRhYmVudHJ5LT5saXZlX3R1cGxl cyArPSBsc3RhdHMtPnRfY291bnRzLnRfZGVsdGFfbGl2ZV90dXBsZXM7Ci0JdGFiZW50cnkt PmRlYWRfdHVwbGVzICs9IGxzdGF0cy0+dF9jb3VudHMudF9kZWx0YV9kZWFkX3R1cGxlczsK LQl0YWJlbnRyeS0+bW9kX3NpbmNlX2FuYWx5emUgKz0gbHN0YXRzLT50X2NvdW50cy50X2No YW5nZWRfdHVwbGVzOwotCXRhYmVudHJ5LT5pbnNfc2luY2VfdmFjdXVtICs9IGxzdGF0cy0+ dF9jb3VudHMudF90dXBsZXNfaW5zZXJ0ZWQ7Ci0JdGFiZW50cnktPmJsb2Nrc19mZXRjaGVk ICs9IGxzdGF0cy0+dF9jb3VudHMudF9ibG9ja3NfZmV0Y2hlZDsKLQl0YWJlbnRyeS0+Ymxv Y2tzX2hpdCArPSBsc3RhdHMtPnRfY291bnRzLnRfYmxvY2tzX2hpdDsKKwl0YWJlbnRyeS0+ bGl2ZV90dXBsZXMgKz0gbHN0YXRzLT5jb3VudHMuZGVsdGFfbGl2ZV90dXBsZXM7CisJdGFi ZW50cnktPmRlYWRfdHVwbGVzICs9IGxzdGF0cy0+Y291bnRzLmRlbHRhX2RlYWRfdHVwbGVz OworCXRhYmVudHJ5LT5tb2Rfc2luY2VfYW5hbHl6ZSArPSBsc3RhdHMtPmNvdW50cy5jaGFu Z2VkX3R1cGxlczsKKwl0YWJlbnRyeS0+aW5zX3NpbmNlX3ZhY3V1bSArPSBsc3RhdHMtPmNv dW50cy50dXBsZXNfaW5zZXJ0ZWQ7CisJdGFiZW50cnktPmJsb2Nrc19mZXRjaGVkICs9IGxz dGF0cy0+Y291bnRzLmJsb2Nrc19mZXRjaGVkOworCXRhYmVudHJ5LT5ibG9ja3NfaGl0ICs9 IGxzdGF0cy0+Y291bnRzLmJsb2Nrc19oaXQ7CiAKIAkvKiBDbGFtcCBsaXZlX3R1cGxlcyBp biBjYXNlIG9mIG5lZ2F0aXZlIGRlbHRhX2xpdmVfdHVwbGVzICovCiAJdGFiZW50cnktPmxp dmVfdHVwbGVzID0gTWF4KHRhYmVudHJ5LT5saXZlX3R1cGxlcywgMCk7CkBAIC04MzEsMTMg KzgzMSwxMyBAQCBwZ3N0YXRfcmVsYXRpb25fZmx1c2hfY2IoUGdTdGF0X0VudHJ5UmVmICpl bnRyeV9yZWYsIGJvb2wgbm93YWl0KQogCiAJLyogVGhlIGVudHJ5IHdhcyBzdWNjZXNzZnVs bHkgZmx1c2hlZCwgYWRkIHRoZSBzYW1lIHRvIGRhdGFiYXNlIHN0YXRzICovCiAJZGJlbnRy eSA9IHBnc3RhdF9wcmVwX2RhdGFiYXNlX3BlbmRpbmcoZGJvaWQpOwotCWRiZW50cnktPnR1 cGxlc19yZXR1cm5lZCArPSBsc3RhdHMtPnRfY291bnRzLnRfdHVwbGVzX3JldHVybmVkOwot CWRiZW50cnktPnR1cGxlc19mZXRjaGVkICs9IGxzdGF0cy0+dF9jb3VudHMudF90dXBsZXNf ZmV0Y2hlZDsKLQlkYmVudHJ5LT50dXBsZXNfaW5zZXJ0ZWQgKz0gbHN0YXRzLT50X2NvdW50 cy50X3R1cGxlc19pbnNlcnRlZDsKLQlkYmVudHJ5LT50dXBsZXNfdXBkYXRlZCArPSBsc3Rh dHMtPnRfY291bnRzLnRfdHVwbGVzX3VwZGF0ZWQ7Ci0JZGJlbnRyeS0+dHVwbGVzX2RlbGV0 ZWQgKz0gbHN0YXRzLT50X2NvdW50cy50X3R1cGxlc19kZWxldGVkOwotCWRiZW50cnktPmJs b2Nrc19mZXRjaGVkICs9IGxzdGF0cy0+dF9jb3VudHMudF9ibG9ja3NfZmV0Y2hlZDsKLQlk YmVudHJ5LT5ibG9ja3NfaGl0ICs9IGxzdGF0cy0+dF9jb3VudHMudF9ibG9ja3NfaGl0Owor CWRiZW50cnktPnR1cGxlc19yZXR1cm5lZCArPSBsc3RhdHMtPmNvdW50cy50dXBsZXNfcmV0 dXJuZWQ7CisJZGJlbnRyeS0+dHVwbGVzX2ZldGNoZWQgKz0gbHN0YXRzLT5jb3VudHMudHVw bGVzX2ZldGNoZWQ7CisJZGJlbnRyeS0+dHVwbGVzX2luc2VydGVkICs9IGxzdGF0cy0+Y291 bnRzLnR1cGxlc19pbnNlcnRlZDsKKwlkYmVudHJ5LT50dXBsZXNfdXBkYXRlZCArPSBsc3Rh dHMtPmNvdW50cy50dXBsZXNfdXBkYXRlZDsKKwlkYmVudHJ5LT50dXBsZXNfZGVsZXRlZCAr PSBsc3RhdHMtPmNvdW50cy50dXBsZXNfZGVsZXRlZDsKKwlkYmVudHJ5LT5ibG9ja3NfZmV0 Y2hlZCArPSBsc3RhdHMtPmNvdW50cy5ibG9ja3NfZmV0Y2hlZDsKKwlkYmVudHJ5LT5ibG9j a3NfaGl0ICs9IGxzdGF0cy0+Y291bnRzLmJsb2Nrc19oaXQ7CiAKIAlyZXR1cm4gdHJ1ZTsK IH0KQEAgLTg2NSw4ICs4NjUsOCBAQCBwZ3N0YXRfcHJlcF9yZWxhdGlvbl9wZW5kaW5nKE9p ZCByZWxfaWQsIGJvb2wgaXNzaGFyZWQpCiAJCQkJCQkJCQkJICBpc3NoYXJlZCA/IEludmFs aWRPaWQgOiBNeURhdGFiYXNlSWQsCiAJCQkJCQkJCQkJICByZWxfaWQsIE5VTEwpOwogCXBl bmRpbmcgPSBlbnRyeV9yZWYtPnBlbmRpbmc7Ci0JcGVuZGluZy0+dF9pZCA9IHJlbF9pZDsK LQlwZW5kaW5nLT50X3NoYXJlZCA9IGlzc2hhcmVkOworCXBlbmRpbmctPmlkID0gcmVsX2lk OworCXBlbmRpbmctPnNoYXJlZCA9IGlzc2hhcmVkOwogCiAJcmV0dXJuIHBlbmRpbmc7CiB9 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCmluZGV4IDM1YzZkNDY1NTUuLjk2 ZTdiNmZhN2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5j cy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCkBAIC0xNDYs NyArMTQ2LDcgQEAgcGdfc3RhdF9nZXRfZnVuY3Rpb25fY2FsbHMoUEdfRlVOQ1RJT05fQVJH UykKIAogCWlmICgoZnVuY2VudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfZnVuY2VudHJ5KGZ1 bmNpZCkpID09IE5VTEwpCiAJCVBHX1JFVFVSTl9OVUxMKCk7Ci0JUEdfUkVUVVJOX0lOVDY0 KGZ1bmNlbnRyeS0+Zl9udW1jYWxscyk7CisJUEdfUkVUVVJOX0lOVDY0KGZ1bmNlbnRyeS0+ bnVtY2FsbHMpOwogfQogCiBEYXR1bQpAQCAtMTU4LDcgKzE1OCw3IEBAIHBnX3N0YXRfZ2V0 X2Z1bmN0aW9uX3RvdGFsX3RpbWUoUEdfRlVOQ1RJT05fQVJHUykKIAlpZiAoKGZ1bmNlbnRy eSA9IHBnc3RhdF9mZXRjaF9zdGF0X2Z1bmNlbnRyeShmdW5jaWQpKSA9PSBOVUxMKQogCQlQ R19SRVRVUk5fTlVMTCgpOwogCS8qIGNvbnZlcnQgY291bnRlciBmcm9tIG1pY3Jvc2VjIHRv IG1pbGxpc2VjIGZvciBkaXNwbGF5ICovCi0JUEdfUkVUVVJOX0ZMT0FUOCgoKGRvdWJsZSkg ZnVuY2VudHJ5LT5mX3RvdGFsX3RpbWUpIC8gMTAwMC4wKTsKKwlQR19SRVRVUk5fRkxPQVQ4 KCgoZG91YmxlKSBmdW5jZW50cnktPnRvdGFsX3RpbWUpIC8gMTAwMC4wKTsKIH0KIAogRGF0 dW0KQEAgLTE3MCw3ICsxNzAsNyBAQCBwZ19zdGF0X2dldF9mdW5jdGlvbl9zZWxmX3RpbWUo UEdfRlVOQ1RJT05fQVJHUykKIAlpZiAoKGZ1bmNlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0 X2Z1bmNlbnRyeShmdW5jaWQpKSA9PSBOVUxMKQogCQlQR19SRVRVUk5fTlVMTCgpOwogCS8q IGNvbnZlcnQgY291bnRlciBmcm9tIG1pY3Jvc2VjIHRvIG1pbGxpc2VjIGZvciBkaXNwbGF5 ICovCi0JUEdfUkVUVVJOX0ZMT0FUOCgoKGRvdWJsZSkgZnVuY2VudHJ5LT5mX3NlbGZfdGlt ZSkgLyAxMDAwLjApOworCVBHX1JFVFVSTl9GTE9BVDgoKChkb3VibGUpIGZ1bmNlbnRyeS0+ c2VsZl90aW1lKSAvIDEwMDAuMCk7CiB9CiAKIERhdHVtCkBAIC0xNTA1LDcgKzE1MDUsNyBA QCBwZ19zdGF0X2dldF94YWN0X251bXNjYW5zKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKCh0 YWJlbnRyeSA9IGZpbmRfdGFic3RhdF9lbnRyeShyZWxpZCkpID09IE5VTEwpCiAJCXJlc3Vs dCA9IDA7CiAJZWxzZQotCQlyZXN1bHQgPSAoaW50NjQpICh0YWJlbnRyeS0+dF9jb3VudHMu dF9udW1zY2Fucyk7CisJCXJlc3VsdCA9IChpbnQ2NCkgKHRhYmVudHJ5LT5jb3VudHMubnVt c2NhbnMpOwogCiAJUEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7CiB9CkBAIC0xNTIwLDcgKzE1 MjAsNyBAQCBwZ19zdGF0X2dldF94YWN0X3R1cGxlc19yZXR1cm5lZChQR19GVU5DVElPTl9B UkdTKQogCWlmICgodGFiZW50cnkgPSBmaW5kX3RhYnN0YXRfZW50cnkocmVsaWQpKSA9PSBO VUxMKQogCQlyZXN1bHQgPSAwOwogCWVsc2UKLQkJcmVzdWx0ID0gKGludDY0KSAodGFiZW50 cnktPnRfY291bnRzLnRfdHVwbGVzX3JldHVybmVkKTsKKwkJcmVzdWx0ID0gKGludDY0KSAo dGFiZW50cnktPmNvdW50cy50dXBsZXNfcmV0dXJuZWQpOwogCiAJUEdfUkVUVVJOX0lOVDY0 KHJlc3VsdCk7CiB9CkBAIC0xNTM1LDcgKzE1MzUsNyBAQCBwZ19zdGF0X2dldF94YWN0X3R1 cGxlc19mZXRjaGVkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKCh0YWJlbnRyeSA9IGZpbmRf dGFic3RhdF9lbnRyeShyZWxpZCkpID09IE5VTEwpCiAJCXJlc3VsdCA9IDA7CiAJZWxzZQot CQlyZXN1bHQgPSAoaW50NjQpICh0YWJlbnRyeS0+dF9jb3VudHMudF90dXBsZXNfZmV0Y2hl ZCk7CisJCXJlc3VsdCA9IChpbnQ2NCkgKHRhYmVudHJ5LT5jb3VudHMudHVwbGVzX2ZldGNo ZWQpOwogCiAJUEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7CiB9CkBAIC0xNTUyLDggKzE1NTIs OCBAQCBwZ19zdGF0X2dldF94YWN0X3R1cGxlc19pbnNlcnRlZChQR19GVU5DVElPTl9BUkdT KQogCQlyZXN1bHQgPSAwOwogCWVsc2UKIAl7Ci0JCXJlc3VsdCA9IHRhYmVudHJ5LT50X2Nv dW50cy50X3R1cGxlc19pbnNlcnRlZDsKLQkJLyogbGl2ZSBzdWJ0cmFuc2FjdGlvbnMnIGNv dW50cyBhcmVuJ3QgaW4gdF90dXBsZXNfaW5zZXJ0ZWQgeWV0ICovCisJCXJlc3VsdCA9IHRh YmVudHJ5LT5jb3VudHMudHVwbGVzX2luc2VydGVkOworCQkvKiBsaXZlIHN1YnRyYW5zYWN0 aW9ucycgY291bnRzIGFyZW4ndCBpbiB0dXBsZXNfaW5zZXJ0ZWQgeWV0ICovCiAJCWZvciAo dHJhbnMgPSB0YWJlbnRyeS0+dHJhbnM7IHRyYW5zICE9IE5VTEw7IHRyYW5zID0gdHJhbnMt PnVwcGVyKQogCQkJcmVzdWx0ICs9IHRyYW5zLT50dXBsZXNfaW5zZXJ0ZWQ7CiAJfQpAQCAt MTU3Myw4ICsxNTczLDggQEAgcGdfc3RhdF9nZXRfeGFjdF90dXBsZXNfdXBkYXRlZChQR19G VU5DVElPTl9BUkdTKQogCQlyZXN1bHQgPSAwOwogCWVsc2UKIAl7Ci0JCXJlc3VsdCA9IHRh YmVudHJ5LT50X2NvdW50cy50X3R1cGxlc191cGRhdGVkOwotCQkvKiBsaXZlIHN1YnRyYW5z YWN0aW9ucycgY291bnRzIGFyZW4ndCBpbiB0X3R1cGxlc191cGRhdGVkIHlldCAqLworCQly ZXN1bHQgPSB0YWJlbnRyeS0+Y291bnRzLnR1cGxlc191cGRhdGVkOworCQkvKiBsaXZlIHN1 YnRyYW5zYWN0aW9ucycgY291bnRzIGFyZW4ndCBpbiB0dXBsZXNfdXBkYXRlZCB5ZXQgKi8K IAkJZm9yICh0cmFucyA9IHRhYmVudHJ5LT50cmFuczsgdHJhbnMgIT0gTlVMTDsgdHJhbnMg PSB0cmFucy0+dXBwZXIpCiAJCQlyZXN1bHQgKz0gdHJhbnMtPnR1cGxlc191cGRhdGVkOwog CX0KQEAgLTE1OTQsOCArMTU5NCw4IEBAIHBnX3N0YXRfZ2V0X3hhY3RfdHVwbGVzX2RlbGV0 ZWQoUEdfRlVOQ1RJT05fQVJHUykKIAkJcmVzdWx0ID0gMDsKIAllbHNlCiAJewotCQlyZXN1 bHQgPSB0YWJlbnRyeS0+dF9jb3VudHMudF90dXBsZXNfZGVsZXRlZDsKLQkJLyogbGl2ZSBz dWJ0cmFuc2FjdGlvbnMnIGNvdW50cyBhcmVuJ3QgaW4gdF90dXBsZXNfZGVsZXRlZCB5ZXQg Ki8KKwkJcmVzdWx0ID0gdGFiZW50cnktPmNvdW50cy50dXBsZXNfZGVsZXRlZDsKKwkJLyog bGl2ZSBzdWJ0cmFuc2FjdGlvbnMnIGNvdW50cyBhcmVuJ3QgaW4gdHVwbGVzX2RlbGV0ZWQg eWV0ICovCiAJCWZvciAodHJhbnMgPSB0YWJlbnRyeS0+dHJhbnM7IHRyYW5zICE9IE5VTEw7 IHRyYW5zID0gdHJhbnMtPnVwcGVyKQogCQkJcmVzdWx0ICs9IHRyYW5zLT50dXBsZXNfZGVs ZXRlZDsKIAl9CkBAIC0xNjEzLDcgKzE2MTMsNyBAQCBwZ19zdGF0X2dldF94YWN0X3R1cGxl c19ob3RfdXBkYXRlZChQR19GVU5DVElPTl9BUkdTKQogCWlmICgodGFiZW50cnkgPSBmaW5k X3RhYnN0YXRfZW50cnkocmVsaWQpKSA9PSBOVUxMKQogCQlyZXN1bHQgPSAwOwogCWVsc2UK LQkJcmVzdWx0ID0gKGludDY0KSAodGFiZW50cnktPnRfY291bnRzLnRfdHVwbGVzX2hvdF91 cGRhdGVkKTsKKwkJcmVzdWx0ID0gKGludDY0KSAodGFiZW50cnktPmNvdW50cy50dXBsZXNf aG90X3VwZGF0ZWQpOwogCiAJUEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7CiB9CkBAIC0xNjI4 LDcgKzE2MjgsNyBAQCBwZ19zdGF0X2dldF94YWN0X2Jsb2Nrc19mZXRjaGVkKFBHX0ZVTkNU SU9OX0FSR1MpCiAJaWYgKCh0YWJlbnRyeSA9IGZpbmRfdGFic3RhdF9lbnRyeShyZWxpZCkp ID09IE5VTEwpCiAJCXJlc3VsdCA9IDA7CiAJZWxzZQotCQlyZXN1bHQgPSAoaW50NjQpICh0 YWJlbnRyeS0+dF9jb3VudHMudF9ibG9ja3NfZmV0Y2hlZCk7CisJCXJlc3VsdCA9IChpbnQ2 NCkgKHRhYmVudHJ5LT5jb3VudHMuYmxvY2tzX2ZldGNoZWQpOwogCiAJUEdfUkVUVVJOX0lO VDY0KHJlc3VsdCk7CiB9CkBAIC0xNjQzLDcgKzE2NDMsNyBAQCBwZ19zdGF0X2dldF94YWN0 X2Jsb2Nrc19oaXQoUEdfRlVOQ1RJT05fQVJHUykKIAlpZiAoKHRhYmVudHJ5ID0gZmluZF90 YWJzdGF0X2VudHJ5KHJlbGlkKSkgPT0gTlVMTCkKIAkJcmVzdWx0ID0gMDsKIAllbHNlCi0J CXJlc3VsdCA9IChpbnQ2NCkgKHRhYmVudHJ5LT50X2NvdW50cy50X2Jsb2Nrc19oaXQpOwor CQlyZXN1bHQgPSAoaW50NjQpICh0YWJlbnRyeS0+Y291bnRzLmJsb2Nrc19oaXQpOwogCiAJ UEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7CiB9CkBAIC0xNjU2LDcgKzE2NTYsNyBAQCBwZ19z dGF0X2dldF94YWN0X2Z1bmN0aW9uX2NhbGxzKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlpZiAo KGZ1bmNlbnRyeSA9IGZpbmRfZnVuY3N0YXRfZW50cnkoZnVuY2lkKSkgPT0gTlVMTCkKIAkJ UEdfUkVUVVJOX05VTEwoKTsKLQlQR19SRVRVUk5fSU5UNjQoZnVuY2VudHJ5LT5mX251bWNh bGxzKTsKKwlQR19SRVRVUk5fSU5UNjQoZnVuY2VudHJ5LT5udW1jYWxscyk7CiB9CiAKIERh dHVtCkBAIC0xNjY3LDcgKzE2NjcsNyBAQCBwZ19zdGF0X2dldF94YWN0X2Z1bmN0aW9uX3Rv dGFsX3RpbWUoUEdfRlVOQ1RJT05fQVJHUykKIAogCWlmICgoZnVuY2VudHJ5ID0gZmluZF9m dW5jc3RhdF9lbnRyeShmdW5jaWQpKSA9PSBOVUxMKQogCQlQR19SRVRVUk5fTlVMTCgpOwot CVBHX1JFVFVSTl9GTE9BVDgoSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoZnVuY2VudHJ5LT5m X3RvdGFsX3RpbWUpKTsKKwlQR19SRVRVUk5fRkxPQVQ4KElOU1RSX1RJTUVfR0VUX01JTExJ U0VDKGZ1bmNlbnRyeS0+dG90YWxfdGltZSkpOwogfQogCiBEYXR1bQpAQCAtMTY3OCw3ICsx Njc4LDcgQEAgcGdfc3RhdF9nZXRfeGFjdF9mdW5jdGlvbl9zZWxmX3RpbWUoUEdfRlVOQ1RJ T05fQVJHUykKIAogCWlmICgoZnVuY2VudHJ5ID0gZmluZF9mdW5jc3RhdF9lbnRyeShmdW5j aWQpKSA9PSBOVUxMKQogCQlQR19SRVRVUk5fTlVMTCgpOwotCVBHX1JFVFVSTl9GTE9BVDgo SU5TVFJfVElNRV9HRVRfTUlMTElTRUMoZnVuY2VudHJ5LT5mX3NlbGZfdGltZSkpOworCVBH X1JFVFVSTl9GTE9BVDgoSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoZnVuY2VudHJ5LT5zZWxm X3RpbWUpKTsKIH0KIAogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaCBiL3Ny Yy9pbmNsdWRlL3Bnc3RhdC5oCmluZGV4IDFlNDE4YjY4MmIuLjkwNzc0Njk2NTcgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5o CkBAIC0xMDYsOSArMTA2LDkgQEAgdHlwZWRlZiBpbnQ2NCBQZ1N0YXRfQ291bnRlcjsKICAq LwogdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X0Z1bmN0aW9uQ291bnRzCiB7Ci0JUGdTdGF0X0Nv dW50ZXIgZl9udW1jYWxsczsKLQlpbnN0cl90aW1lCWZfdG90YWxfdGltZTsKLQlpbnN0cl90 aW1lCWZfc2VsZl90aW1lOworCVBnU3RhdF9Db3VudGVyIG51bWNhbGxzOworCWluc3RyX3Rp bWUJdG90YWxfdGltZTsKKwlpbnN0cl90aW1lCXNlbGZfdGltZTsKIH0gUGdTdGF0X0Z1bmN0 aW9uQ291bnRzOwogCiAvKgpAQCAtMTI0LDcgKzEyNCw3IEBAIHR5cGVkZWYgc3RydWN0IFBn U3RhdF9GdW5jdGlvbkNhbGxVc2FnZQogCS8qIEJhY2tlbmQtd2lkZSB0b3RhbCB0aW1lIGFz IG9mIGZ1bmN0aW9uIHN0YXJ0ICovCiAJaW5zdHJfdGltZQlzYXZlX3RvdGFsOwogCS8qIHN5 c3RlbSBjbG9jayBhcyBvZiBmdW5jdGlvbiBzdGFydCAqLwotCWluc3RyX3RpbWUJZl9zdGFy dDsKKwlpbnN0cl90aW1lCXN0YXJ0OwogfSBQZ1N0YXRfRnVuY3Rpb25DYWxsVXNhZ2U7CiAK IC8qIC0tLS0tLS0tLS0KQEAgLTE1OSwyMyArMTU5LDIzIEBAIHR5cGVkZWYgc3RydWN0IFBn U3RhdF9CYWNrZW5kU3ViRW50cnkKICAqLwogdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1RhYmxl Q291bnRzCiB7Ci0JUGdTdGF0X0NvdW50ZXIgdF9udW1zY2FuczsKKwlQZ1N0YXRfQ291bnRl ciBudW1zY2FuczsKIAotCVBnU3RhdF9Db3VudGVyIHRfdHVwbGVzX3JldHVybmVkOwotCVBn U3RhdF9Db3VudGVyIHRfdHVwbGVzX2ZldGNoZWQ7CisJUGdTdGF0X0NvdW50ZXIgdHVwbGVz X3JldHVybmVkOworCVBnU3RhdF9Db3VudGVyIHR1cGxlc19mZXRjaGVkOwogCi0JUGdTdGF0 X0NvdW50ZXIgdF90dXBsZXNfaW5zZXJ0ZWQ7Ci0JUGdTdGF0X0NvdW50ZXIgdF90dXBsZXNf dXBkYXRlZDsKLQlQZ1N0YXRfQ291bnRlciB0X3R1cGxlc19kZWxldGVkOwotCVBnU3RhdF9D b3VudGVyIHRfdHVwbGVzX2hvdF91cGRhdGVkOwotCWJvb2wJCXRfdHJ1bmNkcm9wcGVkOwor CVBnU3RhdF9Db3VudGVyIHR1cGxlc19pbnNlcnRlZDsKKwlQZ1N0YXRfQ291bnRlciB0dXBs ZXNfdXBkYXRlZDsKKwlQZ1N0YXRfQ291bnRlciB0dXBsZXNfZGVsZXRlZDsKKwlQZ1N0YXRf Q291bnRlciB0dXBsZXNfaG90X3VwZGF0ZWQ7CisJYm9vbAkJdHJ1bmNkcm9wcGVkOwogCi0J UGdTdGF0X0NvdW50ZXIgdF9kZWx0YV9saXZlX3R1cGxlczsKLQlQZ1N0YXRfQ291bnRlciB0 X2RlbHRhX2RlYWRfdHVwbGVzOwotCVBnU3RhdF9Db3VudGVyIHRfY2hhbmdlZF90dXBsZXM7 CisJUGdTdGF0X0NvdW50ZXIgZGVsdGFfbGl2ZV90dXBsZXM7CisJUGdTdGF0X0NvdW50ZXIg ZGVsdGFfZGVhZF90dXBsZXM7CisJUGdTdGF0X0NvdW50ZXIgY2hhbmdlZF90dXBsZXM7CiAK LQlQZ1N0YXRfQ291bnRlciB0X2Jsb2Nrc19mZXRjaGVkOwotCVBnU3RhdF9Db3VudGVyIHRf YmxvY2tzX2hpdDsKKwlQZ1N0YXRfQ291bnRlciBibG9ja3NfZmV0Y2hlZDsKKwlQZ1N0YXRf Q291bnRlciBibG9ja3NfaGl0OwogfSBQZ1N0YXRfVGFibGVDb3VudHM7CiAKIC8qIC0tLS0t LS0tLS0KQEAgLTE5NSwxMCArMTk1LDEwIEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9UYWJs ZUNvdW50cwogICovCiB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfVGFibGVTdGF0dXMKIHsKLQlP aWQJCQl0X2lkOwkJCS8qIHRhYmxlJ3MgT0lEICovCi0JYm9vbAkJdF9zaGFyZWQ7CQkvKiBp cyBpdCBhIHNoYXJlZCBjYXRhbG9nPyAqLworCU9pZAkJCWlkOwkJCS8qIHRhYmxlJ3MgT0lE ICovCisJYm9vbAkJc2hhcmVkOwkJLyogaXMgaXQgYSBzaGFyZWQgY2F0YWxvZz8gKi8KIAlz dHJ1Y3QgUGdTdGF0X1RhYmxlWGFjdFN0YXR1cyAqdHJhbnM7CS8qIGxvd2VzdCBzdWJ4YWN0 J3MgY291bnRzICovCi0JUGdTdGF0X1RhYmxlQ291bnRzIHRfY291bnRzOwkvKiBldmVudCBj b3VudHMgdG8gYmUgc2VudCAqLworCVBnU3RhdF9UYWJsZUNvdW50cyBjb3VudHM7CS8qIGV2 ZW50IGNvdW50cyB0byBiZSBzZW50ICovCiAJUmVsYXRpb24JcmVsYXRpb247CQkvKiByZWwg dGhhdCBpcyB1c2luZyB0aGlzIGVudHJ5ICovCiB9IFBnU3RhdF9UYWJsZVN0YXR1czsKIApA QCAtMzUxLDEwICszNTEsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXREQkVudHJ5 CiAKIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9TdGF0RnVuY0VudHJ5CiB7Ci0JUGdTdGF0X0Nv dW50ZXIgZl9udW1jYWxsczsKKwlQZ1N0YXRfQ291bnRlciBudW1jYWxsczsKIAotCVBnU3Rh dF9Db3VudGVyIGZfdG90YWxfdGltZTsJLyogdGltZXMgaW4gbWljcm9zZWNvbmRzICovCi0J UGdTdGF0X0NvdW50ZXIgZl9zZWxmX3RpbWU7CisJUGdTdGF0X0NvdW50ZXIgdG90YWxfdGlt ZTsJLyogdGltZXMgaW4gbWljcm9zZWNvbmRzICovCisJUGdTdGF0X0NvdW50ZXIgc2VsZl90 aW1lOwogfSBQZ1N0YXRfU3RhdEZ1bmNFbnRyeTsKIAogdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0 X1N0YXRSZXBsU2xvdEVudHJ5CkBAIC01ODIsMzcgKzU4MiwzNyBAQCBleHRlcm4gdm9pZCBw Z3N0YXRfcmVwb3J0X2FuYWx5emUoUmVsYXRpb24gcmVsLAogI2RlZmluZSBwZ3N0YXRfY291 bnRfaGVhcF9zY2FuKHJlbCkJCQkJCQkJCQlcCiAJZG8gewkJCQkJCQkJCQkJCQkJCVwKIAkJ aWYgKHBnc3RhdF9zaG91bGRfY291bnRfcmVsYXRpb24ocmVsKSkJCQkJCQlcCi0JCQkocmVs KS0+cGdzdGF0X2luZm8tPnRfY291bnRzLnRfbnVtc2NhbnMrKzsJCQkJXAorCQkJKHJlbCkt PnBnc3RhdF9pbmZvLT5jb3VudHMubnVtc2NhbnMrKzsJCQkJCVwKIAl9IHdoaWxlICgwKQog I2RlZmluZSBwZ3N0YXRfY291bnRfaGVhcF9nZXRuZXh0KHJlbCkJCQkJCQkJCVwKIAlkbyB7 CQkJCQkJCQkJCQkJCQkJXAogCQlpZiAocGdzdGF0X3Nob3VsZF9jb3VudF9yZWxhdGlvbihy ZWwpKQkJCQkJCVwKLQkJCShyZWwpLT5wZ3N0YXRfaW5mby0+dF9jb3VudHMudF90dXBsZXNf cmV0dXJuZWQrKzsJCVwKKwkJCShyZWwpLT5wZ3N0YXRfaW5mby0+Y291bnRzLnR1cGxlc19y ZXR1cm5lZCsrOwkJCVwKIAl9IHdoaWxlICgwKQogI2RlZmluZSBwZ3N0YXRfY291bnRfaGVh cF9mZXRjaChyZWwpCQkJCQkJCQlcCiAJZG8gewkJCQkJCQkJCQkJCQkJCVwKIAkJaWYgKHBn c3RhdF9zaG91bGRfY291bnRfcmVsYXRpb24ocmVsKSkJCQkJCQlcCi0JCQkocmVsKS0+cGdz dGF0X2luZm8tPnRfY291bnRzLnRfdHVwbGVzX2ZldGNoZWQrKzsJCVwKKwkJCShyZWwpLT5w Z3N0YXRfaW5mby0+Y291bnRzLnR1cGxlc19mZXRjaGVkKys7CQkJXAogCX0gd2hpbGUgKDAp CiAjZGVmaW5lIHBnc3RhdF9jb3VudF9pbmRleF9zY2FuKHJlbCkJCQkJCQkJCVwKIAlkbyB7 CQkJCQkJCQkJCQkJCQkJXAogCQlpZiAocGdzdGF0X3Nob3VsZF9jb3VudF9yZWxhdGlvbihy ZWwpKQkJCQkJCVwKLQkJCShyZWwpLT5wZ3N0YXRfaW5mby0+dF9jb3VudHMudF9udW1zY2Fu cysrOwkJCQlcCisJCQkocmVsKS0+cGdzdGF0X2luZm8tPmNvdW50cy5udW1zY2FucysrOwkJ CQkJXAogCX0gd2hpbGUgKDApCiAjZGVmaW5lIHBnc3RhdF9jb3VudF9pbmRleF90dXBsZXMo cmVsLCBuKQkJCQkJCQlcCiAJZG8gewkJCQkJCQkJCQkJCQkJCVwKIAkJaWYgKHBnc3RhdF9z aG91bGRfY291bnRfcmVsYXRpb24ocmVsKSkJCQkJCQlcCi0JCQkocmVsKS0+cGdzdGF0X2lu Zm8tPnRfY291bnRzLnRfdHVwbGVzX3JldHVybmVkICs9IChuKTsJXAorCQkJKHJlbCktPnBn c3RhdF9pbmZvLT5jb3VudHMudHVwbGVzX3JldHVybmVkICs9IChuKTsJCVwKIAl9IHdoaWxl ICgwKQogI2RlZmluZSBwZ3N0YXRfY291bnRfYnVmZmVyX3JlYWQocmVsKQkJCQkJCQkJXAog CWRvIHsJCQkJCQkJCQkJCQkJCQlcCiAJCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X3JlbGF0 aW9uKHJlbCkpCQkJCQkJXAotCQkJKHJlbCktPnBnc3RhdF9pbmZvLT50X2NvdW50cy50X2Js b2Nrc19mZXRjaGVkKys7CQlcCisJCQkocmVsKS0+cGdzdGF0X2luZm8tPmNvdW50cy5ibG9j a3NfZmV0Y2hlZCsrOwkJCVwKIAl9IHdoaWxlICgwKQogI2RlZmluZSBwZ3N0YXRfY291bnRf YnVmZmVyX2hpdChyZWwpCQkJCQkJCQlcCiAJZG8gewkJCQkJCQkJCQkJCQkJCVwKIAkJaWYg KHBnc3RhdF9zaG91bGRfY291bnRfcmVsYXRpb24ocmVsKSkJCQkJCQlcCi0JCQkocmVsKS0+ cGdzdGF0X2luZm8tPnRfY291bnRzLnRfYmxvY2tzX2hpdCsrOwkJCVwKKwkJCShyZWwpLT5w Z3N0YXRfaW5mby0+Y291bnRzLmJsb2Nrc19oaXQrKzsJCQkJXAogCX0gd2hpbGUgKDApCiAK IGV4dGVybiB2b2lkIHBnc3RhdF9jb3VudF9oZWFwX2luc2VydChSZWxhdGlvbiByZWwsIFBn U3RhdF9Db3VudGVyIG4pOwo= --------------FadsivS7X0J40eNe485FguTo--