Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w6BYw-0042Mp-2R for pgsql-hackers@arkaria.postgresql.org; Fri, 27 Mar 2026 18:05:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w6BYu-00BB2p-2m for pgsql-hackers@arkaria.postgresql.org; Fri, 27 Mar 2026 18:05:37 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w6BYu-00BB2g-0K for pgsql-hackers@lists.postgresql.org; Fri, 27 Mar 2026 18:05:36 +0000 Received: from mail-oi1-x236.google.com ([2607:f8b0:4864:20::236]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w6BYs-00000001MNb-1qDT for pgsql-hackers@postgresql.org; Fri, 27 Mar 2026 18:05:35 +0000 Received: by mail-oi1-x236.google.com with SMTP id 5614622812f47-46808125d28so1459995b6e.1 for ; Fri, 27 Mar 2026 11:05:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774634734; cv=none; d=google.com; s=arc-20240605; b=SxzCLUdX8djYQm26R96EbU4cOOMXKD7MjZNVgCFhLa5tChTmL9APyN6X513kdhTdp3 +ymigRSFSeqHYy2Xlw9tbGCJ2J9LbRL+HKdwT5GgrsW01G+E81hGGNsu7dElbo7/Bcow 773PpDtybzJWPC3ac00qmdS3RIteOh6QFTTzu7mpdRAEpoZXWgnbdto3m0N7lHKlRIyv X3xZXgQgoRRZIR6bgpjacf+EQHpB4U5qjyuJ4ae8BbkBx8TpUnxWcU3prIhD+t1xPeRo QRpBTlvs/Sobt1MtbsREHCFSCjTdBnTry33PIt/5xk6/yQCbl7/y/q5vOJCJMKSaRIG2 /1lg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=o6/82z1KamciIk6RcYhBvdyQ0GlYuuspRFVeVvxUffw=; fh=7bJQV9Parelg0sZWQk6OztEdqF85uMj88IsKOE7uJsY=; b=JbydUD8VCFTdbub8Srb2WuxdhFlPDDJSBospjZXQ9Tvv1WAVJeldUTubZChPQNgaFC E+xknyvfFUWDlUzJLv7MKlB9mzsX44Fy2ObZhJ8pOJzTjkXRGqEjlxpH9CSME50SWjUY M0iJ6MkVgvE5tYhOARoFnDWGTCA2zcxhKS9POSpmDCUrPiteclP9ZHnTYi/HNieFLzqH r6y3hL3NfKxUwMtpvxWPlVToE4GJkyOandwPf4nzl950wzoLJ0eiBT1hRQTLXYFFJuKd wXRD3V6ONABx7Ae7CNZwA8xNCrpGoGt9PwDlON7Ec3MoEuRmOUsZ8k9mhMg3zCtvs+7m svQw==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774634734; x=1775239534; darn=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=o6/82z1KamciIk6RcYhBvdyQ0GlYuuspRFVeVvxUffw=; b=lz8CF18+J6fxHrn3Xe46vWB5e97VpwYZMrkrvQtvlxIPQl5t8Sgg3KNaTtlUnPXhAB J1bzheZNh5HS1Nu1bwNz+S1xZ2uZF4Ruq1kaOCfvM4yZIkJlV20fUHnr6GYgAWJLv4O2 qCErz2T7MCqr/V0zWMd7gURfBqBn6uRcHHurxIZEcx1BbL22kXME/1S26zOGmjN9wCFk 1zyXRDicwpFXMlvUxSfIjFJpzGAYS2SERIB6u3f1qct20h1XLXUh4cuK+XA6t8oXx67q vBXBPp/ak2Ep2aG3JR6wcVXDS2d4lsL4eV/tsQ3XjuS21zZtgwD8gJL6nhKlgR9OOL61 LaXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774634734; x=1775239534; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=o6/82z1KamciIk6RcYhBvdyQ0GlYuuspRFVeVvxUffw=; b=QY0BfquEG0Mp+KBI/FJ7uGWLqMJtg0qrg1x/dNioh0Wl3c0y0hmMHtVUxWibBJVBvN 3n8icLF/XpVkggrNY1DUr1ejKoOSgaUnDpDyM0mjCwTSEY72CZe1I0le5mT3QN/9AcKC PbnBl2kHGphd51accbzFLd8nRnM5CJin0Lcgpe1l+W0XgsrX1BxOt902G0EzHDZtZ2y4 FJNeX/mpE6I4aH2uU57XCzNgunmoCtubHVcaMTt2td0NlZEeMvt/9JQyjGUGWf2+mu0p X8RjjBYRgtPJgFD+hbn3qQOJxNIUOaqNC207N5Z6hBdY4Hfo9Qdf+vArl3afrPjes1e/ V7Kw== X-Forwarded-Encrypted: i=1; AJvYcCVkoobTELIbZL7rfWnz5tJx9Z0LH+gevbnE/b9NPYoAmeu5hngdgXlsZxAJtsw5Ozj+G3PBRn8jNc1xSXcZ@postgresql.org X-Gm-Message-State: AOJu0Yyp2RI0lz3GqS9nOoe2zimph1Tyi7ZO4IZIsCiLCKX/wdbqgcUQ d2xQQlFEeD2Gk7gLmcHy/LfSguSsuriIzHPVR2CWPuW7GieSYApBSIHmoQ7/jyAyjB/1w3MydI4 xu6M1kYzo7g7H+hU4sG1m/CmxHb3romE= X-Gm-Gg: ATEYQzxsiKhea3NkTaDQRLUbiJSo7x94W7QmuctFjBT3iK765J03dSQ2gdn1mU5d05d AxxoV55n0DRqll8UMJULoj01jQ/8JOMj231k+pzHfB+FE0ydzKe9mfUNNhmXrPRF3xkuNePgte3 XsaCKfjUnR1hQm0ljPkgDkZJUzTwi2ZLowhjXTGsCE55zoMSTVedYfgFTO8rBAIAnktQrVfMb5b MBOlflejgfMASC51L4Qn1zrzzV96T8rfsqinJ5Uvryeh0TrE99eYwrhwRzqHouLp/r8cAivy61Z 6aBCp2tCKF6zs4Ke8rkskhtzSuhB4ljGO8BhzNKRNQ== X-Received: by 2002:a05:6808:5296:b0:467:133f:ec2d with SMTP id 5614622812f47-46a8a5ed427mr1746896b6e.42.1774634733653; Fri, 27 Mar 2026 11:05:33 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: shihao zhong Date: Fri, 27 Mar 2026 14:05:22 -0400 X-Gm-Features: AQROBzC77b82UpZvvctXYX4rSoPyEYm37CkmJf1kda_wm8lJl3t1BuCWuLhzZ8E Message-ID: Subject: Re: [Patch] New pg_stat_tablespace view To: Zsolt Parragi Cc: songjinzhou , PostgreSQL-development , jian he Content-Type: multipart/mixed; boundary="000000000000e81ac4064e055804" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000e81ac4064e055804 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Mar 24, 2026 at 6:11=E2=80=AFPM Zsolt Parragi wrote: > > Hello! > > blk_read_time and blk_write_time doesn't seem to work, they show 0 to > me even after some workloads, and I don't see any assignments in the > code. The testcase also checks for "blk_read_time >=3D 0" which > trivially succeeds. > > blocks_fetched is also misleading, it includes both reads and cache > hits. pg_stat_database calls this column blocks_read, and properly > substracts blocks_hit from it. > > + rel->pgstat_info->reltablespace =3D rel->rd_locator.spcOid; > > Shouldn't this be included in TwoPhasePgStatRecord / pgstat_twophase_post= commit? > > Hi Zsolt and Jian, Thanks for the feedback. I've attached v3, addressing all comments. Notably, I've included tuple-level stats in the pg_stat_tablespace view to align with the addition of SpaceOid in TwoPhasePgStatRecord. Thanks, Shihao --000000000000e81ac4064e055804 Content-Type: application/octet-stream; name="pg_stat_tablespace_final_v3.patch" Content-Disposition: attachment; filename="pg_stat_tablespace_final_v3.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn97n2860 RnJvbSA0ZTZmNDUwNWNlMDFkNGQzMDE0Mzk1YjU1YWQ3MTY2YzdmNDEyYTQxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzaGloYW8gemhvbmcgPHNoaWhhb3pob25nQGdvb2dsZS5jb20+ CkRhdGU6IEZyaSwgMjcgTWFyIDIwMjYgMTc6MTg6MDMgKzAwMDAKU3ViamVjdDogW1BBVENIXSBB ZGQgcGdfc3RhdF90YWJsZXNwYWNlIHN0YXRpc3RpY3MgdmlldwoKSW1wbGVtZW50IHBnX3N0YXRf dGFibGVzcGFjZSB0byB0cmFjayBibG9jayByZWFkcywgaGl0cywgSS9PIHRpbWluZywKdGVtcG9y YXJ5IGZpbGUgdXNhZ2UsIGFuZCB0dXBsZSBvcGVyYXRpb25zIHBlciB0YWJsZXNwYWNlLiBUaGlz IGFsbG93cwpEQkFzIHRvIGFuYWx5emUgdGFibGVzcGFjZS1sZXZlbCB3b3JrbG9hZCBob3RzcG90 cy4KClRoZSB2aWV3IGluY2x1ZGVzOgotIHRhYmxlc3BhY2VfaWQKLSB0YWJsZXNwYWNlX25hbWUK LSBibGtzX3JlYWQKLSBibGtzX2hpdAotIGJsa19yZWFkX3RpbWUKLSBibGtfd3JpdGVfdGltZQot IHRlbXBfZmlsZXMKLSB0ZW1wX2J5dGVzCi0gdHVwX3JldHVybmVkCi0gdHVwX2ZldGNoZWQKLSB0 dXBfaW5zZXJ0ZWQKLSB0dXBfdXBkYXRlZAotIHR1cF9kZWxldGVkCi0gc3RhdHNfcmVzZXQKCklu Y2x1ZGVzIGNvbXByZWhlbnNpdmUgZmllbGQgY292ZXJhZ2UgY2hlY2tzIGluIHN0YXRzLnNxbC4K LS0tCiBkb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sICAgICAgICAgICAgICAgICAgfCAxOTgg KysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwg ICAgICAgICAgfCAgMTkgKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlc3BhY2UuYyAgICAg ICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYyAgICAg ICAgICAgfCAgMzQgKystCiBzcmMvYmFja2VuZC9zdG9yYWdlL2ZpbGUvZmQuYyAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L01ha2VmaWxlICAgICAg ICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9tZXNvbi5idWlsZCAgICAg ICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMgICAgICAgICAg IHwgIDE2ICsrCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYyAg fCAgNDUgKysrLQogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMg IHwgIDMyICsrLQogLi4uL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF90YWJsZXNwYWNlLmMgICAgICAg IHwgMTI3ICsrKysrKysrKysrCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyAg ICAgICAgICAgfCAxMDYgKysrKysrKysrLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dCAgICAgICAgICAgICAgIHwgICA4ICsKIHNyYy9pbmNsdWRlL3Bnc3RhdC5oICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAyOSArKysKIHNyYy9pbmNsdWRlL3V0aWxzL2JhY2tlbmRfc3RhdHVz LmggICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2ludGVybmFs LmggICAgICAgICAgIHwgICA4ICsKIHNyYy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9raW5kLmggICAg ICAgICAgICAgICB8ICAgMyArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQg ICAgICAgICAgIHwgIDE2ICsrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzLm91dCAg ICAgICAgICAgfCAgODUgKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N0YXRzLnNxbCAg ICAgICAgICAgICAgICB8ICAzOCArKysrCiAyMCBmaWxlcyBjaGFuZ2VkLCA3NjAgaW5zZXJ0aW9u cygrKSwgMTQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvdXRp bHMvYWN0aXZpdHkvcGdzdGF0X3RhYmxlc3BhY2UuYwoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9tb25pdG9yaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCmluZGV4IGJi NzVlZDEwNjliLi4yZjc4ZTg4NTAwYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL21vbml0b3Jp bmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCkBAIC01MzUsNiArNTM1 LDE0IEBAIHBvc3RncmVzICAgMjcwOTMgIDAuMCAgMC4wICAzMDA5NiAgMjc1MiA/ICAgICAgICBT cyAgIDExOjM0ICAgMDowMCBwb3N0Z3Jlczogc2VyCiAgICAgICA8L2VudHJ5PgogICAgICA8L3Jv dz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxzdHJ1Y3RuYW1lPnBnX3N0YXRfdGFibGVz cGFjZTwvc3RydWN0bmFtZT48aW5kZXh0ZXJtPjxwcmltYXJ5PnBnX3N0YXRfdGFibGVzcGFjZTwv cHJpbWFyeT48L2luZGV4dGVybT48L2VudHJ5PgorICAgICAgPGVudHJ5Pk9uZSByb3cgcGVyIHRh Ymxlc3BhY2UsIHNob3dpbmcgc3RhdGlzdGljcyBhYm91dCBJL08sIHRlbXBvcmFyeSBmaWxlcywg YW5kIHR1cGxlIG9wZXJhdGlvbnMuIFNlZQorICAgICAgIDxsaW5rIGxpbmtlbmQ9Im1vbml0b3Jp bmctcGctc3RhdC10YWJsZXNwYWNlLXZpZXciPgorICAgICAgIDxzdHJ1Y3RuYW1lPnBnX3N0YXRf dGFibGVzcGFjZTwvc3RydWN0bmFtZT48L2xpbms+IGZvciBkZXRhaWxzLgorICAgICAgPC9lbnRy eT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeT48c3RydWN0bmFtZT5w Z19zdGF0X3N1YnNjcmlwdGlvbl9zdGF0czwvc3RydWN0bmFtZT48aW5kZXh0ZXJtPjxwcmltYXJ5 PnBnX3N0YXRfc3Vic2NyaXB0aW9uX3N0YXRzPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvZW50cnk+ CiAgICAgICA8ZW50cnk+T25lIHJvdyBwZXIgc3Vic2NyaXB0aW9uLCBzaG93aW5nIHN0YXRpc3Rp Y3MgYWJvdXQgZXJyb3JzIGFuZCBjb25mbGljdHMuCkBAIC01MjU2LDYgKzUyNjQsMTk2IEBAIGRl c2NyaXB0aW9uIHwgV2FpdGluZyBmb3IgYSBuZXdseSBpbml0aWFsaXplZCBXQUwgZmlsZSB0byBy ZWFjaCBkdXJhYmxlIHN0b3JhZ2UKIAogIDwvc2VjdDI+CiAKKyAgPHNlY3QyIGlkPSJtb25pdG9y aW5nLXBnLXN0YXQtdGFibGVzcGFjZS12aWV3Ij4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19z dGF0X3RhYmxlc3BhY2U8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICAgPGluZGV4dGVybT4KKyAg ICA8cHJpbWFyeT5wZ19zdGF0X3RhYmxlc3BhY2U8L3ByaW1hcnk+CisgICA8L2luZGV4dGVybT4K KworICAgPHBhcmE+CisgICAgVGhlIDxzdHJ1Y3RuYW1lPnBnX3N0YXRfdGFibGVzcGFjZTwvc3Ry dWN0bmFtZT4gdmlldyB3aWxsIGNvbnRhaW4gb25lIHJvdworICAgIGZvciBlYWNoIHRhYmxlc3Bh Y2UsIHNob3dpbmcgc3RhdGlzdGljcyBhYm91dCBJL08gb3BlcmF0aW9ucywgdGVtcG9yYXJ5Cisg ICAgZmlsZSB1c2FnZSwgYW5kIHR1cGxlIG9wZXJhdGlvbnMgaW4gdGhhdCB0YWJsZXNwYWNlLgor ICAgPC9wYXJhPgorCisgICA8dGFibGUgaWQ9InBnLXN0YXQtdGFibGVzcGFjZS12aWV3IiB4cmVm bGFiZWw9InBnX3N0YXRfdGFibGVzcGFjZSI+CisgICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3N0 YXRfdGFibGVzcGFjZTwvc3RydWN0bmFtZT4gVmlldzwvdGl0bGU+CisgICAgPHRncm91cCBjb2xz PSIxIj4KKyAgICAgPHRoZWFkPgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+CisgICAgICAgIDxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICAgIENvbHVtbiBUeXBlCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPHBhcmE+ CisgICAgICAgICBEZXNjcmlwdGlvbgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9lbnRyeT4K KyAgICAgIDwvcm93PgorICAgICA8L3RoZWFkPgorCisgICAgIDx0Ym9keT4KKyAgICAgIDxyb3c+ CisgICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPgorICAgICAgICA8cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgICA8c3RydWN0ZmllbGQ+dGFibGVz cGFjZV9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAgPC9wYXJhPgor ICAgICAgICA8cGFyYT4KKyAgICAgICAgIE9JRCBvZiB0aGUgdGFibGVzcGFjZQorICAgICAgICA8 L3BhcmE+CisgICAgICAgPC9lbnRyeT4KKyAgICAgIDwvcm93PgorCisgICAgICA8cm93PgorICAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij4KKyAgICAgICAgPHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgICAgPHN0cnVjdGZpZWxkPnRhYmxlc3BhY2Vf bmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICAgIDwvcGFyYT4KKyAg ICAgICAgPHBhcmE+CisgICAgICAgICBOYW1lIG9mIHRoZSB0YWJsZXNwYWNlCisgICAgICAgIDwv cGFyYT4KKyAgICAgICA8L2VudHJ5PgorICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPgorICAgICAgICA8cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgICA8c3RydWN0ZmllbGQ+YmxrX3JlYWRfdGlt ZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmRvdWJsZSBwcmVjaXNpb248L3R5cGU+CisgICAgICAgIDwv cGFyYT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaW1lIHNwZW50IHJlYWRpbmcgZGF0YSBi bG9ja3MgYnkgYmFja2VuZHMgaW4gdGhpcyB0YWJsZXNwYWNlLCBpbiBtaWxsaXNlY29uZHMKKyAg ICAgICAgIChpZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2staW8tdGltaW5nIi8+IGlzIGVuYWJs ZWQsIG90aGVyd2lzZSB6ZXJvKQorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9lbnRyeT4KKyAg ICAgIDwvcm93PgorCisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij4KKyAgICAgICAgPHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgICAgPHN0cnVjdGZpZWxkPmJsa193cml0ZV90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZG91 YmxlIHByZWNpc2lvbjwvdHlwZT4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8cGFyYT4KKyAg ICAgICAgIFRpbWUgc3BlbnQgd3JpdGluZyBkYXRhIGJsb2NrcyBieSBiYWNrZW5kcyBpbiB0aGlz IHRhYmxlc3BhY2UsIGluIG1pbGxpc2Vjb25kcworICAgICAgICAgKGlmIDx4cmVmIGxpbmtlbmQ9 Imd1Yy10cmFjay1pby10aW1pbmciLz4gaXMgZW5hYmxlZCwgb3RoZXJ3aXNlIHplcm8pCisgICAg ICAgIDwvcGFyYT4KKyAgICAgICA8L2VudHJ5PgorICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+ CisgICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPgorICAgICAgICA8cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgICA8c3RydWN0ZmllbGQ+YmxvY2tz X2ZldGNoZWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICAgIDwvcGFy YT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBOdW1iZXIgb2YgZGF0YSBibG9ja3MgcmVhZCBm cm9tIGRpc2sgaW4gdGhpcyB0YWJsZXNwYWNlCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2Vu dHJ5PgorICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPgorICAgICAgICA8cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgICA8c3RydWN0ZmllbGQ+YmxvY2tzX2hpdDwvc3RydWN0ZmllbGQ+IDx0eXBl PmJpZ2ludDwvdHlwZT4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8cGFyYT4KKyAgICAgICAg IE51bWJlciBvZiBkYXRhIGJsb2NrcyBmb3VuZCBpbiBzaGFyZWQgYnVmZmVyIGNhY2hlIGluIHRo aXMgdGFibGVzcGFjZQorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9lbnRyeT4KKyAgICAgIDwv cm93PgorCisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij4KKyAgICAgICAgPHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgICAg PHN0cnVjdGZpZWxkPnRlbXBfZmlsZXM8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+ CisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBOdW1iZXIgb2YgdGVt cG9yYXJ5IGZpbGVzIGNyZWF0ZWQgaW4gdGhpcyB0YWJsZXNwYWNlCisgICAgICAgIDwvcGFyYT4K KyAgICAgICA8L2VudHJ5PgorICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPgorICAgICAgICA8cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgICA8c3RydWN0ZmllbGQ+dGVtcF9ieXRlczwvc3RydWN0 ZmllbGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8cGFy YT4KKyAgICAgICAgIFRvdGFsIGFtb3VudCBvZiBkYXRhIHdyaXR0ZW4gdG8gdGVtcG9yYXJ5IGZp bGVzIGluIHRoaXMgdGFibGVzcGFjZQorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9lbnRyeT4K KyAgICAgIDwvcm93PgorCisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij4KKyAgICAgICAgPHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgICAgPHN0cnVjdGZpZWxkPnR1cF9yZXR1cm5lZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJp Z2ludDwvdHlwZT4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIE51 bWJlciBvZiBsaXZlIHJvd3MgZmV0Y2hlZCBieSBzZXF1ZW50aWFsIHNjYW5zIGFuZCBpbmRleCBl bnRyaWVzIHJldHVybmVkIGJ5IGluZGV4IHNjYW5zIGluIHRoaXMgdGFibGVzcGFjZQorICAgICAg ICA8L3BhcmE+CisgICAgICAgPC9lbnRyeT4KKyAgICAgIDwvcm93PgorCisgICAgICA8cm93Pgor ICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij4KKyAgICAgICAgPHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgICAgPHN0cnVjdGZpZWxkPnR1cF9mZXRj aGVkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAgICA8L3BhcmE+Cisg ICAgICAgIDxwYXJhPgorICAgICAgICAgTnVtYmVyIG9mIGxpdmUgcm93cyBmZXRjaGVkIGJ5IGlu ZGV4IHNjYW5zIGluIHRoaXMgdGFibGVzcGFjZQorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9l bnRyeT4KKyAgICAgIDwvcm93PgorCisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij4KKyAgICAgICAgPHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgICAgPHN0cnVjdGZpZWxkPnR1cF9pbnNlcnRlZDwvc3RydWN0ZmllbGQ+IDx0 eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8cGFyYT4KKyAgICAg ICAgIE51bWJlciBvZiByb3dzIGluc2VydGVkIGJ5IHF1ZXJpZXMgaW4gdGhpcyB0YWJsZXNwYWNl CisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2VudHJ5PgorICAgICAgPC9yb3c+CisKKyAgICAg IDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPgorICAgICAg ICA8cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgICA8c3RydWN0ZmllbGQ+ dHVwX3VwZGF0ZWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICAgIDwv cGFyYT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBOdW1iZXIgb2Ygcm93cyB1cGRhdGVkIGJ5 IHF1ZXJpZXMgaW4gdGhpcyB0YWJsZXNwYWNlCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2Vu dHJ5PgorICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPgorICAgICAgICA8cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgICA8c3RydWN0ZmllbGQ+dHVwX2RlbGV0ZWQ8L3N0cnVjdGZpZWxkPiA8dHlw ZT5iaWdpbnQ8L3R5cGU+CisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPHBhcmE+CisgICAgICAg ICBOdW1iZXIgb2Ygcm93cyBkZWxldGVkIGJ5IHF1ZXJpZXMgaW4gdGhpcyB0YWJsZXNwYWNlCisg ICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2VudHJ5PgorICAgICAgPC9yb3c+CisKKyAgICAgIDxy b3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPgorICAgICAgICA8 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgICA8c3RydWN0ZmllbGQ+c3Rh dHNfcmVzZXQ8L3N0cnVjdGZpZWxkPiA8dHlwZT50aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmU8L3R5 cGU+CisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaW1lIGF0IHdo aWNoIHRoZXNlIHN0YXRpc3RpY3Mgd2VyZSBsYXN0IHJlc2V0CisgICAgICAgIDwvcGFyYT4KKyAg ICAgICA8L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgIDwvdGJvZHk+CisgICAgPC90Z3JvdXA+ CisgICA8L3RhYmxlPgorICA8L3NlY3QyPgorCiAgPHNlY3QyIGlkPSJtb25pdG9yaW5nLXN0YXRz LWZ1bmN0aW9ucyI+CiAgIDx0aXRsZT5TdGF0aXN0aWNzIEZ1bmN0aW9uczwvdGl0bGU+CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCBlNTQwMTgwMDRkYi4uYzY3M2UxNWIy MTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTExMjgsNiArMTEyOCwy NSBAQCBDUkVBVEUgVklFVyBwZ19zdGF0X3JlcGxpY2F0aW9uX3Nsb3RzIEFTCiAgICAgICAgIExB VEVSQUwgcGdfc3RhdF9nZXRfcmVwbGljYXRpb25fc2xvdChzbG90X25hbWUpIGFzIHMKICAgICBX SEVSRSByLmRhdG9pZCBJUyBOT1QgTlVMTDsgLS0gZXhjbHVkaW5nIHBoeXNpY2FsIHNsb3RzCiAK K0NSRUFURSBWSUVXIHBnX3N0YXRfdGFibGVzcGFjZSBBUworICAgIFNFTEVDVAorICAgICAgICBU Lm9pZCBBUyB0YWJsZXNwYWNlX2lkLAorICAgICAgICBULnNwY25hbWUgQVMgdGFibGVzcGFjZV9u YW1lLAorICAgICAgICBTLmJsa19yZWFkX3RpbWUsCisgICAgICAgIFMuYmxrX3dyaXRlX3RpbWUs CisgICAgICAgIFMuYmxrc19oaXQsCisgICAgICAgIFMuYmxrc19mZXRjaGVkIC0gUy5ibGtzX2hp dCBBUyBibGtzX3JlYWQsCisgICAgICAgIFMudGVtcF9maWxlcywKKyAgICAgICAgUy50ZW1wX2J5 dGVzLAorICAgICAgICBTLnR1cF9yZXR1cm5lZCwKKyAgICAgICAgUy50dXBfZmV0Y2hlZCwKKyAg ICAgICAgUy50dXBfaW5zZXJ0ZWQsCisgICAgICAgIFMudHVwX3VwZGF0ZWQsCisgICAgICAgIFMu dHVwX2RlbGV0ZWQsCisgICAgICAgIFMuc3RhdHNfcmVzZXQKKyAgICBGUk9NIHBnX3RhYmxlc3Bh Y2UgVAorICAgIExFRlQgSk9JTiBMQVRFUkFMIHBnX3N0YXRfZ2V0X3RhYmxlc3BhY2UoVC5vaWQp IFMgT04gdHJ1ZTsKKwogQ1JFQVRFIFZJRVcgcGdfc3RhdF9kYXRhYmFzZSBBUwogICAgIFNFTEVD VAogICAgICAgICAgICAgRC5vaWQgQVMgZGF0aWQsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy90YWJsZXNwYWNlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZXNwYWNlLmMK aW5kZXggZDkxZmNmMGZhY2YuLjBkMzU5NTdjOTU2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy90YWJsZXNwYWNlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVzcGFj ZS5jCkBAIC04MCw2ICs4MCw3IEBACiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKICNpbmNs dWRlICJ1dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy92YXJsZW5hLmgiCisjaW5jbHVkZSAi cGdzdGF0LmgiCiAKIC8qIEdVQyB2YXJpYWJsZXMgKi8KIGNoYXIJICAgKmRlZmF1bHRfdGFibGVz cGFjZSA9IE5VTEw7CkBAIC01NDYsNiArNTQ3LDkgQEAgRHJvcFRhYmxlU3BhY2UoRHJvcFRhYmxl U3BhY2VTdG10ICpzdG10KQogCQkodm9pZCkgWExvZ0luc2VydChSTV9UQkxTUENfSUQsIFhMT0df VEJMU1BDX0RST1ApOwogCX0KIAorCS8qIEtlZXAgY3VtdWxhdGl2ZSBzdGF0cyBzeXN0ZW0gdXAt dG8tZGF0ZSAqLworCXBnc3RhdF9kcm9wX3RhYmxlc3BhY2UodGFibGVzcGFjZW9pZCk7CisKIAkv KgogCSAqIE5vdGU6IGJlY2F1c2Ugd2UgY2hlY2tlZCB0aGF0IHRoZSB0YWJsZXNwYWNlIHdhcyBl bXB0eSwgdGhlcmUgc2hvdWxkIGJlCiAJICogbm8gbmVlZCB0byB3b3JyeSBhYm91dCBmbHVzaGlu ZyBzaGFyZWQgYnVmZmVycyBvciBmcmVlIHNwYWNlIG1hcApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9i dWZtZ3IuYwppbmRleCBlMjEyZjYxMTBmMi4uZjRhM2M5OWE3MjYgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2Uv YnVmZmVyL2J1Zm1nci5jCkBAIC0xODM3LDYgKzE4MzcsNyBAQCBXYWl0UmVhZEJ1ZmZlcnMoUmVh ZEJ1ZmZlcnNPcGVyYXRpb24gKm9wZXJhdGlvbikKIAkJCQkhcGdhaW9fd3JlZl9jaGVja19kb25l KCZvcGVyYXRpb24tPmlvX3dyZWYpKQogCQkJewogCQkJCWluc3RyX3RpbWUJaW9fc3RhcnQgPSBw Z3N0YXRfcHJlcGFyZV9pb190aW1lKHRyYWNrX2lvX3RpbWluZyk7CisJCQkJaW5zdHJfdGltZQlp b190aW1lOwogCiAJCQkJcGdhaW9fd3JlZl93YWl0KCZvcGVyYXRpb24tPmlvX3dyZWYpOwogCkBA IC0xODQ0LDggKzE4NDUsMTQgQEAgV2FpdFJlYWRCdWZmZXJzKFJlYWRCdWZmZXJzT3BlcmF0aW9u ICpvcGVyYXRpb24pCiAJCQkJICogVGhlIElPIG9wZXJhdGlvbiBpdHNlbGYgd2FzIGFscmVhZHkg Y291bnRlZCBlYXJsaWVyLCBpbgogCQkJCSAqIEFzeW5jUmVhZEJ1ZmZlcnMoKSwgdGhpcyBqdXN0 IGFjY291bnRzIGZvciB0aGUgd2FpdCB0aW1lLgogCQkJCSAqLworCQkJCUlOU1RSX1RJTUVfU0VU X0NVUlJFTlQoaW9fdGltZSk7CisJCQkJSU5TVFJfVElNRV9TVUJUUkFDVChpb190aW1lLCBpb19z dGFydCk7CisKIAkJCQlwZ3N0YXRfY291bnRfaW9fb3BfdGltZShpb19vYmplY3QsIGlvX2NvbnRl eHQsIElPT1BfUkVBRCwKIAkJCQkJCQkJCQlpb19zdGFydCwgMCwgMCk7CisKKwkJCQlwZ3N0YXRf Y291bnRfdGFibGVzcGFjZV9idWZmZXJfcmVhZF90aW1lKElOU1RSX1RJTUVfR0VUX01JQ1JPU0VD KGlvX3RpbWUpLAorCQkJCQkJCQkJCQkJCQkJIG9wZXJhdGlvbi0+c21nci0+c21ncl9ybG9jYXRv ci5sb2NhdG9yLnNwY09pZCk7CiAJCQl9CiAJCQllbHNlCiAJCQl7CkBAIC0xOTIwLDcgKzE5Mjcs NyBAQCBBc3luY1JlYWRCdWZmZXJzKFJlYWRCdWZmZXJzT3BlcmF0aW9uICpvcGVyYXRpb24sIGlu dCAqbmJsb2Nrc19wcm9ncmVzcykKIAl2b2lkCSAgICppb19wYWdlc1tNQVhfSU9fQ09NQklORV9M SU1JVF07CiAJSU9Db250ZXh0CWlvX2NvbnRleHQ7CiAJSU9PYmplY3QJaW9fb2JqZWN0OwotCWlu c3RyX3RpbWUJaW9fc3RhcnQ7CisJaW5zdHJfdGltZQlpb19zdGFydCwgaW9fdGltZTsKIAogCWlm IChwZXJzaXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9URU1QKQogCXsKQEAgLTIwODgsOSArMjA5 NSwxNyBAQCBBc3luY1JlYWRCdWZmZXJzKFJlYWRCdWZmZXJzT3BlcmF0aW9uICpvcGVyYXRpb24s IGludCAqbmJsb2Nrc19wcm9ncmVzcykKIAlzbWdyc3RhcnRyZWFkdihpb2gsIG9wZXJhdGlvbi0+ c21nciwgZm9ya251bSwKIAkJCQkgICBibG9ja251bSwKIAkJCQkgICBpb19wYWdlcywgaW9fYnVm ZmVyc19sZW4pOworCisJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChpb190aW1lKTsKKwlJTlNUUl9U SU1FX1NVQlRSQUNUKGlvX3RpbWUsIGlvX3N0YXJ0KTsKKwogCXBnc3RhdF9jb3VudF9pb19vcF90 aW1lKGlvX29iamVjdCwgaW9fY29udGV4dCwgSU9PUF9SRUFELAogCQkJCQkJCWlvX3N0YXJ0LCAx LCBpb19idWZmZXJzX2xlbiAqIEJMQ0tTWik7CiAKKwlpZiAoaW9fb2JqZWN0ID09IElPT0JKRUNU X1JFTEFUSU9OIHx8IGlvX29iamVjdCA9PSBJT09CSkVDVF9URU1QX1JFTEFUSU9OKQorCQlwZ3N0 YXRfY291bnRfdGFibGVzcGFjZV9idWZmZXJfcmVhZF90aW1lKElOU1RSX1RJTUVfR0VUX01JQ1JP U0VDKGlvX3RpbWUpLAorCQkJCQkJCQkJCQkJIG9wZXJhdGlvbi0+c21nci0+c21ncl9ybG9jYXRv ci5sb2NhdG9yLnNwY09pZCk7CisKIAlpZiAocGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0Vf VEVNUCkKIAkJcGdCdWZmZXJVc2FnZS5sb2NhbF9ibGtzX3JlYWQgKz0gaW9fYnVmZmVyc19sZW47 CiAJZWxzZQpAQCAtMjczOSw3ICsyNzU0LDcgQEAgRXh0ZW5kQnVmZmVyZWRSZWxTaGFyZWQoQnVm ZmVyTWFuYWdlclJlbGF0aW9uIGJtciwKIHsKIAlCbG9ja051bWJlciBmaXJzdF9ibG9jazsKIAlJ T0NvbnRleHQJaW9fY29udGV4dCA9IElPQ29udGV4dEZvclN0cmF0ZWd5KHN0cmF0ZWd5KTsKLQlp bnN0cl90aW1lCWlvX3N0YXJ0OworCWluc3RyX3RpbWUJaW9fc3RhcnQsIGlvX3RpbWU7CiAKIAlM aW1pdEFkZGl0aW9uYWxQaW5zKCZleHRlbmRfYnkpOwogCkBAIC0yOTU2LDkgKzI5NzEsMTUgQEAg RXh0ZW5kQnVmZmVyZWRSZWxTaGFyZWQoQnVmZmVyTWFuYWdlclJlbGF0aW9uIGJtciwKIAlpZiAo IShmbGFncyAmIEVCX1NLSVBfRVhURU5TSU9OX0xPQ0spKQogCQlVbmxvY2tSZWxhdGlvbkZvckV4 dGVuc2lvbihibXIucmVsLCBFeGNsdXNpdmVMb2NrKTsKIAorCUlOU1RSX1RJTUVfU0VUX0NVUlJF TlQoaW9fdGltZSk7CisJSU5TVFJfVElNRV9TVUJUUkFDVChpb190aW1lLCBpb19zdGFydCk7CisK IAlwZ3N0YXRfY291bnRfaW9fb3BfdGltZShJT09CSkVDVF9SRUxBVElPTiwgaW9fY29udGV4dCwg SU9PUF9FWFRFTkQsCiAJCQkJCQkJaW9fc3RhcnQsIDEsIGV4dGVuZF9ieSAqIEJMQ0tTWik7CiAK KwlwZ3N0YXRfY291bnRfdGFibGVzcGFjZV9idWZmZXJfd3JpdGVfdGltZShJTlNUUl9USU1FX0dF VF9NSUNST1NFQyhpb190aW1lKSwKKwkJCQkJCQkJCQkgIGJtci5yZWwtPnJkX2xvY2F0b3Iuc3Bj T2lkKTsKKwogCS8qIFNldCBCTV9WQUxJRCwgdGVybWluYXRlIElPLCBhbmQgd2FrZSB1cCBhbnkg d2FpdGVycyAqLwogCWZvciAodWludDMyIGkgPSAwOyBpIDwgZXh0ZW5kX2J5OyBpKyspCiAJewpA QCAtNDQzOCw3ICs0NDU5LDcgQEAgRmx1c2hCdWZmZXIoQnVmZmVyRGVzYyAqYnVmLCBTTWdyUmVs YXRpb24gcmVsbiwgSU9PYmplY3QgaW9fb2JqZWN0LAogewogCVhMb2dSZWNQdHIJcmVjcHRyOwog CUVycm9yQ29udGV4dENhbGxiYWNrIGVycmNhbGxiYWNrOwotCWluc3RyX3RpbWUJaW9fc3RhcnQ7 CisJaW5zdHJfdGltZQlpb19zdGFydCwgaW9fdGltZTsKIAlCbG9jawkJYnVmQmxvY2s7CiAJY2hh cgkgICAqYnVmVG9Xcml0ZTsKIApAQCAtNDUzOSw5ICs0NTYwLDE2IEBAIEZsdXNoQnVmZmVyKEJ1 ZmZlckRlc2MgKmJ1ZiwgU01nclJlbGF0aW9uIHJlbG4sIElPT2JqZWN0IGlvX29iamVjdCwKIAkg KiBXaGVuIGEgc3RyYXRlZ3kgaXMgbm90IGluIHVzZSwgdGhlIHdyaXRlIGNhbiBvbmx5IGJlIGEg InJlZ3VsYXIiIHdyaXRlCiAJICogb2YgYSBkaXJ0eSBzaGFyZWQgYnVmZmVyIChJT0NPTlRFWFRf Tk9STUFMIElPT1BfV1JJVEUpLgogCSAqLworCisJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChpb190 aW1lKTsKKwlJTlNUUl9USU1FX1NVQlRSQUNUKGlvX3RpbWUsIGlvX3N0YXJ0KTsKKwogCXBnc3Rh dF9jb3VudF9pb19vcF90aW1lKElPT0JKRUNUX1JFTEFUSU9OLCBpb19jb250ZXh0LAogCQkJCQkJ CUlPT1BfV1JJVEUsIGlvX3N0YXJ0LCAxLCBCTENLU1opOwogCisJcGdzdGF0X2NvdW50X3RhYmxl c3BhY2VfYnVmZmVyX3dyaXRlX3RpbWUoSU5TVFJfVElNRV9HRVRfTUlDUk9TRUMoaW9fdGltZSks CisJCQkJCQkJCQkJICByZWxuLT5zbWdyX3Jsb2NhdG9yLmxvY2F0b3Iuc3BjT2lkKTsKKwogCXBn QnVmZmVyVXNhZ2Uuc2hhcmVkX2Jsa3Nfd3JpdHRlbisrOwogCiAJLyoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9mZC5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2Zk LmMKaW5kZXggMDFmMWJkNmU2ODcuLjAzYzQ3YWJhMTdmIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9zdG9yYWdlL2ZpbGUvZmQuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2ZpbGUvZmQuYwpA QCAtMTUxNSw3ICsxNTE1LDcgQEAgRmlsZUFjY2VzcyhGaWxlIGZpbGUpCiBzdGF0aWMgdm9pZAog UmVwb3J0VGVtcG9yYXJ5RmlsZVVzYWdlKGNvbnN0IGNoYXIgKnBhdGgsIHBnb2ZmX3Qgc2l6ZSkK IHsKLQlwZ3N0YXRfcmVwb3J0X3RlbXBmaWxlKHNpemUpOworCXBnc3RhdF9yZXBvcnRfdGVtcGZp bGUoc2l6ZSwgcGF0aCk7CiAKIAlpZiAobG9nX3RlbXBfZmlsZXMgPj0gMCkKIAl7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L01ha2VmaWxlCmluZGV4IGNhM2VmODliZjU5Li41OWI0OWJmNmE4MSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvTWFrZWZpbGUKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWN0aXZpdHkvTWFrZWZpbGUKQEAgLTMyLDYgKzMyLDcgQEAgT0JKUyA9IFwK IAlwZ3N0YXRfc2htZW0ubyBcCiAJcGdzdGF0X3NscnUubyBcCiAJcGdzdGF0X3N1YnNjcmlwdGlv bi5vIFwKKwlwZ3N0YXRfdGFibGVzcGFjZS5vIFwKIAlwZ3N0YXRfd2FsLm8gXAogCXBnc3RhdF94 YWN0Lm8gXAogCXdhaXRfZXZlbnQubyBcCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9h Y3Rpdml0eS9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L21lc29uLmJ1 aWxkCmluZGV4IDFhYTdlY2U1MjkwLi5iNGUyM2NlZjU1OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWN0aXZpdHkvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0 aXZpdHkvbWVzb24uYnVpbGQKQEAgLTE3LDYgKzE3LDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZp bGVzKAogICAncGdzdGF0X3NobWVtLmMnLAogICAncGdzdGF0X3NscnUuYycsCiAgICdwZ3N0YXRf c3Vic2NyaXB0aW9uLmMnLAorICAncGdzdGF0X3RhYmxlc3BhY2UuYycsCiAgICdwZ3N0YXRfd2Fs LmMnLAogICAncGdzdGF0X3hhY3QuYycsCiApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hY3Rpdml0eS9wZ3N0YXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5j CmluZGV4IGViOGNjYmFhNjI4Li5kZWRiMDRhNTUxNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkv cGdzdGF0LmMKQEAgLTMwMSw2ICszMDEsMjIgQEAgc3RhdGljIGNvbnN0IFBnU3RhdF9LaW5kSW5m byBwZ3N0YXRfa2luZF9idWlsdGluX2luZm9zW1BHU1RBVF9LSU5EX0JVSUxUSU5fU0laRV0KIAkJ LnJlc2V0X3RpbWVzdGFtcF9jYiA9IHBnc3RhdF9kYXRhYmFzZV9yZXNldF90aW1lc3RhbXBfY2Is CiAJfSwKIAorCVtQR1NUQVRfS0lORF9UQUJMRVNQQUNFXSA9IHsKKwkJLm5hbWUgPSAidGFibGVz cGFjZSIsCisKKwkJLmZpeGVkX2Ftb3VudCA9IGZhbHNlLAorCQkud3JpdGVfdG9fZmlsZSA9IHRy dWUsCisJCS5hY2Nlc3NlZF9hY3Jvc3NfZGF0YWJhc2VzID0gdHJ1ZSwKKworCQkuc2hhcmVkX3Np emUgPSBzaXplb2YoUGdTdGF0U2hhcmVkX1RhYmxlc3BhY2UpLAorCQkuc2hhcmVkX2RhdGFfb2Zm ID0gb2Zmc2V0b2YoUGdTdGF0U2hhcmVkX1RhYmxlc3BhY2UsIHN0YXRzKSwKKwkJLnNoYXJlZF9k YXRhX2xlbiA9IHNpemVvZigoKFBnU3RhdFNoYXJlZF9UYWJsZXNwYWNlICopIDApLT5zdGF0cyks CisJCS5wZW5kaW5nX3NpemUgPSBzaXplb2YoUGdTdGF0X1N0YXRUYWJzcGFjZUVudHJ5KSwKKwor CQkuZmx1c2hfcGVuZGluZ19jYiA9IHBnc3RhdF90YWJsZXNwYWNlX2ZsdXNoX2NiLAorCQkucmVz ZXRfdGltZXN0YW1wX2NiID0gcGdzdGF0X3RhYmxlc3BhY2VfcmVzZXRfdGltZXN0YW1wX2NiLAor CX0sCisKIAlbUEdTVEFUX0tJTkRfUkVMQVRJT05dID0gewogCQkubmFtZSA9ICJyZWxhdGlvbiIs CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFz ZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2RhdGFiYXNlLmMKaW5kZXgg OTMzZGNiNWNhZTUuLmI2MTM1NzhhMTI0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h Y3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0 eS9wZ3N0YXRfZGF0YWJhc2UuYwpAQCAtMTcsOSArMTcsMTEgQEAKIAogI2luY2x1ZGUgInBvc3Rn cmVzLmgiCiAKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJzdG9yYWdlL3N0YW5k YnkuaCIKICNpbmNsdWRlICJ1dGlscy9wZ3N0YXRfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJ1dGls cy90aW1lc3RhbXAuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2VfZC5oIgogCiAK IHN0YXRpYyBib29sIHBnc3RhdF9zaG91bGRfcmVwb3J0X2Nvbm5zdGF0KHZvaWQpOwpAQCAtMjE0 LDIwICsyMTYsNjEgQEAgcGdzdGF0X3JlcG9ydF9jaGVja3N1bV9mYWlsdXJlc19pbl9kYihPaWQg ZGJvaWQsIGludCBmYWlsdXJlY291bnQpCiAJcGdzdGF0X3VubG9ja19lbnRyeShlbnRyeV9yZWYp OwogfQogCisvKgorICogSGVscGVyIGZ1bmN0aW9uIHRvIHBhcnNlIHRhYmxlc3BhY2Ugb2lkIGZy b20gdGVtcG9yYXJ5IGZpbGUgcGF0aC4KKyAqLworc3RhdGljIE9pZAorZ2V0X3RhYmxlc3BhY2Vf ZnJvbV90ZW1wZmlsZV9wYXRoKGNvbnN0IGNoYXIgKnBhdGgpCit7CisJLyoKKwkgKiBYWFg6IFdl IG1hdGNoIHRoZSBmaWxlIHBhdGggYWdhaW5zdCBrbm93biB0YWJsZXNwYWNlIHByZWZpeGVzIHRv IGF2b2lkIHBhc3NpbmcKKwkgKiBkb3duIHRhYmxlc3BhY2UgT0lEcyB0aHJvdWdoIHRoZSBlbnRp cmUgdHVwbGVzdG9yZS9mZC5jIHN0YWNrIHdoaWNoIHdvdWxkIGJsb2F0CisJICogdGhlIFZmZCBp bnRlcm5hbCBzdHJ1Y3RzLgorCSAqLworCWlmIChwYXRoID09IE5VTEwpCisJCXJldHVybiBJbnZh bGlkT2lkOworCisJaWYgKHN0cm5jbXAocGF0aCwgInBnX3RibHNwYy8iLCAxMCkgPT0gMCkKKwl7 CisJCXJldHVybiBhdG9vaWQocGF0aCArIDEwKTsKKwl9CisJZWxzZSBpZiAoc3RybmNtcChwYXRo LCAiYmFzZS8iLCA1KSA9PSAwKQorCXsKKwkJcmV0dXJuIERFRkFVTFRUQUJMRVNQQUNFX09JRDsK Kwl9CisJZWxzZSBpZiAoc3RybmNtcChwYXRoLCAiZ2xvYmFsLyIsIDcpID09IDApCisJeworCQly ZXR1cm4gR0xPQkFMVEFCTEVTUEFDRV9PSUQ7CisJfQorCisJcmV0dXJuIEludmFsaWRPaWQ7Cit9 CisKIC8qCiAgKiBSZXBvcnQgY3JlYXRpb24gb2YgdGVtcG9yYXJ5IGZpbGUuCiAgKi8KIHZvaWQK LXBnc3RhdF9yZXBvcnRfdGVtcGZpbGUoc2l6ZV90IGZpbGVzaXplKQorcGdzdGF0X3JlcG9ydF90 ZW1wZmlsZShzaXplX3QgZmlsZXNpemUsIGNvbnN0IGNoYXIgKnBhdGgpCiB7CiAJUGdTdGF0X1N0 YXREQkVudHJ5ICpkYmVudDsKKwlQZ1N0YXRfU3RhdFRhYnNwYWNlRW50cnkgKnRzZW50OworCU9p ZAkJCXRhYmxlc3BhY2Vfb2lkOwogCiAJaWYgKCFwZ3N0YXRfdHJhY2tfY291bnRzKQogCQlyZXR1 cm47CiAKKwl0YWJsZXNwYWNlX29pZCA9IGdldF90YWJsZXNwYWNlX2Zyb21fdGVtcGZpbGVfcGF0 aChwYXRoKTsKKwogCWRiZW50ID0gcGdzdGF0X3ByZXBfZGF0YWJhc2VfcGVuZGluZyhNeURhdGFi YXNlSWQpOwogCWRiZW50LT50ZW1wX2J5dGVzICs9IGZpbGVzaXplOwogCWRiZW50LT50ZW1wX2Zp bGVzKys7CisKKwlpZiAoT2lkSXNWYWxpZCh0YWJsZXNwYWNlX29pZCkpCisJeworCQl0c2VudCA9 IHBnc3RhdF9wcmVwX3RhYmxlc3BhY2VfcGVuZGluZyh0YWJsZXNwYWNlX29pZCk7CisJCXRzZW50 LT50ZW1wX2J5dGVzICs9IGZpbGVzaXplOworCQl0c2VudC0+dGVtcF9maWxlcysrOworCX0KIH0K IAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxh dGlvbi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMKaW5k ZXggYmM4YzQzYjk2YWEuLmUyNGNjMzZmZGMzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rp dml0eS9wZ3N0YXRfcmVsYXRpb24uYwpAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgImFjY2Vz cy90d29waGFzZV9ybWdyLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJj YXRhbG9nL2NhdGFsb2cuaCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJ1dGls cy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oIgogI2luY2x1 ZGUgInV0aWxzL3JlbC5oIgpAQCAtMzcsMTIgKzM4LDEzIEBAIHR5cGVkZWYgc3RydWN0IFR3b1Bo YXNlUGdTdGF0UmVjb3JkCiAJUGdTdGF0X0NvdW50ZXIgdXBkYXRlZF9wcmVfdHJ1bmNkcm9wOwog CVBnU3RhdF9Db3VudGVyIGRlbGV0ZWRfcHJlX3RydW5jZHJvcDsKIAlPaWQJCQlpZDsJCQkJLyog dGFibGUncyBPSUQgKi8KKwlPaWQJCQl0YWJsZXNwYWNlX29pZDsJLyogdGFibGUncyB0YWJsZXNw YWNlIE9JRCAqLwogCWJvb2wJCXNoYXJlZDsJCQkvKiBpcyBpdCBhIHNoYXJlZCBjYXRhbG9nPyAq LwogCWJvb2wJCXRydW5jZHJvcHBlZDsJLyogd2FzIHRoZSByZWxhdGlvbiB0cnVuY2F0ZWQvZHJv cHBlZD8gKi8KIH0gVHdvUGhhc2VQZ1N0YXRSZWNvcmQ7CiAKIAotc3RhdGljIFBnU3RhdF9UYWJs ZVN0YXR1cyAqcGdzdGF0X3ByZXBfcmVsYXRpb25fcGVuZGluZyhPaWQgcmVsX2lkLCBib29sIGlz c2hhcmVkKTsKK3N0YXRpYyBQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdF9wcmVwX3JlbGF0aW9u X3BlbmRpbmcoT2lkIHJlbF9pZCwgT2lkIHRhYmxlc3BhY2Vfb2lkLCBib29sIGlzc2hhcmVkKTsK IHN0YXRpYyB2b2lkIGFkZF90YWJzdGF0X3hhY3RfbGV2ZWwoUGdTdGF0X1RhYmxlU3RhdHVzICpw Z3N0YXRfaW5mbywgaW50IG5lc3RfbGV2ZWwpOwogc3RhdGljIHZvaWQgZW5zdXJlX3RhYnN0YXRf eGFjdF9sZXZlbChQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdF9pbmZvKTsKIHN0YXRpYyB2b2lk IHNhdmVfdHJ1bmNkcm9wX2NvdW50ZXJzKFBnU3RhdF9UYWJsZVhhY3RTdGF0dXMgKnRyYW5zLCBi b29sIGlzX2Ryb3ApOwpAQCAtMTM1LDcgKzEzNyw4IEBAIHBnc3RhdF9hc3NvY19yZWxhdGlvbihS ZWxhdGlvbiByZWwpCiAKIAkvKiBFbHNlIGZpbmQgb3IgbWFrZSB0aGUgUGdTdGF0X1RhYmxlU3Rh dHVzIGVudHJ5LCBhbmQgdXBkYXRlIGxpbmsgKi8KIAlyZWwtPnBnc3RhdF9pbmZvID0gcGdzdGF0 X3ByZXBfcmVsYXRpb25fcGVuZGluZyhSZWxhdGlvbkdldFJlbGlkKHJlbCksCi0JCQkJCQkJCQkJ CQkJcmVsLT5yZF9yZWwtPnJlbGlzc2hhcmVkKTsKKwkJCQkJCQkJCQkJCQkJCQkJcmVsLT5yZF9s b2NhdG9yLnNwY09pZCwKKwkJCQkJCQkJCQkJCQkJCQkJcmVsLT5yZF9yZWwtPnJlbGlzc2hhcmVk KTsKIAogCS8qIGRvbid0IGFsbG93IGxpbmsgYSBzdGF0cyB0byBtdWx0aXBsZSByZWxjYWNoZSBl bnRyaWVzICovCiAJQXNzZXJ0KHJlbC0+cGdzdGF0X2luZm8tPnJlbGF0aW9uID09IE5VTEwpOwpA QCAtNzA3LDYgKzcxMCw3IEBAIEF0UHJlcGFyZV9QZ1N0YXRfUmVsYXRpb25zKFBnU3RhdF9TdWJY YWN0U3RhdHVzICp4YWN0X3N0YXRlKQogCQlyZWNvcmQudXBkYXRlZF9wcmVfdHJ1bmNkcm9wID0g dHJhbnMtPnVwZGF0ZWRfcHJlX3RydW5jZHJvcDsKIAkJcmVjb3JkLmRlbGV0ZWRfcHJlX3RydW5j ZHJvcCA9IHRyYW5zLT5kZWxldGVkX3ByZV90cnVuY2Ryb3A7CiAJCXJlY29yZC5pZCA9IHRhYnN0 YXQtPmlkOworCQlyZWNvcmQudGFibGVzcGFjZV9vaWQgPSB0YWJzdGF0LT50YWJsZXNwYWNlX29p ZDsKIAkJcmVjb3JkLnNoYXJlZCA9IHRhYnN0YXQtPnNoYXJlZDsKIAkJcmVjb3JkLnRydW5jZHJv cHBlZCA9IHRyYW5zLT50cnVuY2Ryb3BwZWQ7CiAKQEAgLTc1MCw3ICs3NTQsNyBAQCBwZ3N0YXRf dHdvcGhhc2VfcG9zdGNvbW1pdChGdWxsVHJhbnNhY3Rpb25JZCBmeGlkLCB1aW50MTYgaW5mbywK IAlQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdF9pbmZvOwogCiAJLyogRmluZCBvciBjcmVhdGUg YSB0YWJzdGF0IGVudHJ5IGZvciB0aGUgcmVsICovCi0JcGdzdGF0X2luZm8gPSBwZ3N0YXRfcHJl cF9yZWxhdGlvbl9wZW5kaW5nKHJlYy0+aWQsIHJlYy0+c2hhcmVkKTsKKwlwZ3N0YXRfaW5mbyA9 IHBnc3RhdF9wcmVwX3JlbGF0aW9uX3BlbmRpbmcocmVjLT5pZCwgcmVjLT50YWJsZXNwYWNlX29p ZCwgcmVjLT5zaGFyZWQpOwogCiAJLyogU2FtZSBtYXRoIGFzIGluIEF0RU9YYWN0X1BnU3RhdCwg Y29tbWl0IGNhc2UgKi8KIAlwZ3N0YXRfaW5mby0+Y291bnRzLnR1cGxlc19pbnNlcnRlZCArPSBy ZWMtPnR1cGxlc19pbnNlcnRlZDsKQEAgLTc4Niw3ICs3OTAsNyBAQCBwZ3N0YXRfdHdvcGhhc2Vf cG9zdGFib3J0KEZ1bGxUcmFuc2FjdGlvbklkIGZ4aWQsIHVpbnQxNiBpbmZvLAogCVBnU3RhdF9U YWJsZVN0YXR1cyAqcGdzdGF0X2luZm87CiAKIAkvKiBGaW5kIG9yIGNyZWF0ZSBhIHRhYnN0YXQg ZW50cnkgZm9yIHRoZSByZWwgKi8KLQlwZ3N0YXRfaW5mbyA9IHBnc3RhdF9wcmVwX3JlbGF0aW9u X3BlbmRpbmcocmVjLT5pZCwgcmVjLT5zaGFyZWQpOworCXBnc3RhdF9pbmZvID0gcGdzdGF0X3By ZXBfcmVsYXRpb25fcGVuZGluZyhyZWMtPmlkLCByZWMtPnRhYmxlc3BhY2Vfb2lkLCByZWMtPnNo YXJlZCk7CiAKIAkvKiBTYW1lIG1hdGggYXMgaW4gQXRFT1hhY3RfUGdTdGF0LCBhYm9ydCBjYXNl ICovCiAJaWYgKHJlYy0+dHJ1bmNkcm9wcGVkKQpAQCAtODk3LDYgKzkwMSwyMyBAQCBwZ3N0YXRf cmVsYXRpb25fZmx1c2hfY2IoUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWYsIGJvb2wgbm93YWl0 KQogCWRiZW50cnktPmJsb2Nrc19mZXRjaGVkICs9IGxzdGF0cy0+Y291bnRzLmJsb2Nrc19mZXRj aGVkOwogCWRiZW50cnktPmJsb2Nrc19oaXQgKz0gbHN0YXRzLT5jb3VudHMuYmxvY2tzX2hpdDsK IAorCS8qIFRoZSBlbnRyeSB3YXMgc3VjY2Vzc2Z1bGx5IGZsdXNoZWQsIGFkZCB0aGUgc2FtZSB0 byB0YWJsZXNwYWNlIHN0YXRzICovCisJeworCQlPaWQgdHNpZCA9IChsc3RhdHMtPnRhYmxlc3Bh Y2Vfb2lkID09IEludmFsaWRPaWQpID8gTXlEYXRhYmFzZVRhYmxlU3BhY2UgOiBsc3RhdHMtPnRh Ymxlc3BhY2Vfb2lkOworCisJCWlmIChPaWRJc1ZhbGlkKHRzaWQpKQorCQl7CisJCQlQZ1N0YXRf U3RhdFRhYnNwYWNlRW50cnkgKnRzZW50cnkgPSBwZ3N0YXRfcHJlcF90YWJsZXNwYWNlX3BlbmRp bmcodHNpZCk7CisJCQl0c2VudHJ5LT5ibG9ja3NfZmV0Y2hlZCArPSBsc3RhdHMtPmNvdW50cy5i bG9ja3NfZmV0Y2hlZDsKKwkJCXRzZW50cnktPmJsb2Nrc19oaXQgKz0gbHN0YXRzLT5jb3VudHMu YmxvY2tzX2hpdDsKKwkJCXRzZW50cnktPnR1cGxlc19yZXR1cm5lZCArPSBsc3RhdHMtPmNvdW50 cy50dXBsZXNfcmV0dXJuZWQ7CisJCQl0c2VudHJ5LT50dXBsZXNfZmV0Y2hlZCArPSBsc3RhdHMt PmNvdW50cy50dXBsZXNfZmV0Y2hlZDsKKwkJCXRzZW50cnktPnR1cGxlc19pbnNlcnRlZCArPSBs c3RhdHMtPmNvdW50cy50dXBsZXNfaW5zZXJ0ZWQ7CisJCQl0c2VudHJ5LT50dXBsZXNfdXBkYXRl ZCArPSBsc3RhdHMtPmNvdW50cy50dXBsZXNfdXBkYXRlZDsKKwkJCXRzZW50cnktPnR1cGxlc19k ZWxldGVkICs9IGxzdGF0cy0+Y291bnRzLnR1cGxlc19kZWxldGVkOworCQl9CisJfQorCiAJcmV0 dXJuIHRydWU7CiB9CiAKQEAgLTkyMCw3ICs5NDEsNyBAQCBwZ3N0YXRfcmVsYXRpb25fcmVzZXRf dGltZXN0YW1wX2NiKFBnU3RhdFNoYXJlZF9Db21tb24gKmhlYWRlciwgVGltZXN0YW1wVHogdHMp CiAgKiBpbml0aWFsaXplZCBpZiBub3QgZXhpc3RzLgogICovCiBzdGF0aWMgUGdTdGF0X1RhYmxl U3RhdHVzICoKLXBnc3RhdF9wcmVwX3JlbGF0aW9uX3BlbmRpbmcoT2lkIHJlbF9pZCwgYm9vbCBp c3NoYXJlZCkKK3Bnc3RhdF9wcmVwX3JlbGF0aW9uX3BlbmRpbmcoT2lkIHJlbF9pZCwgT2lkIHRh Ymxlc3BhY2Vfb2lkLCBib29sIGlzc2hhcmVkKQogewogCVBnU3RhdF9FbnRyeVJlZiAqZW50cnlf cmVmOwogCVBnU3RhdF9UYWJsZVN0YXR1cyAqcGVuZGluZzsKQEAgLTkzMCw2ICs5NTEsNyBAQCBw Z3N0YXRfcHJlcF9yZWxhdGlvbl9wZW5kaW5nKE9pZCByZWxfaWQsIGJvb2wgaXNzaGFyZWQpCiAJ CQkJCQkJCQkJICByZWxfaWQsIE5VTEwpOwogCXBlbmRpbmcgPSBlbnRyeV9yZWYtPnBlbmRpbmc7 CiAJcGVuZGluZy0+aWQgPSByZWxfaWQ7CisJcGVuZGluZy0+dGFibGVzcGFjZV9vaWQgPSB0YWJs ZXNwYWNlX29pZDsKIAlwZW5kaW5nLT5zaGFyZWQgPSBpc3NoYXJlZDsKIAogCXJldHVybiBwZW5k aW5nOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3RhYmxl c3BhY2UuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF90YWJsZXNwYWNlLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZlYzFjN2Y2ZWQwCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3RhYmxlc3Bh Y2UuYwpAQCAtMCwwICsxLDEyNyBAQAorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnc3Rh dF90YWJsZXNwYWNlLmMKKyAqCSAgSW1wbGVtZW50YXRpb24gb2YgdGFibGVzcGFjZSBzdGF0aXN0 aWNzLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBE ZXZlbG9wbWVudCBHcm91cAorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5k L3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF90YWJsZXNwYWNlLmMKKyAqIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJ1dGlscy9wZ3N0YXRfaW50 ZXJuYWwuaCIKKyNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKKworCisvKgorICogUmVtb3Zl IGVudHJ5IGZvciB0aGUgdGFibGVzcGFjZSBiZWluZyBkcm9wcGVkLgorICovCit2b2lkCitwZ3N0 YXRfZHJvcF90YWJsZXNwYWNlKE9pZCB0YWJsZXNwYWNlaWQpCit7CisJcGdzdGF0X2Ryb3BfdHJh bnNhY3Rpb25hbChQR1NUQVRfS0lORF9UQUJMRVNQQUNFLCBJbnZhbGlkT2lkLCB0YWJsZXNwYWNl aWQpOworfQorCisvKgorICogRmV0Y2ggdGFibGVzcGFjZSBzdGF0aXN0aWNzLgorICovCitQZ1N0 YXRfU3RhdFRhYnNwYWNlRW50cnkgKgorcGdzdGF0X2ZldGNoX3N0YXRfdGFic3BhY2VlbnRyeShP aWQgdGFibGVzcGFjZWlkKQoreworCXJldHVybiAoUGdTdGF0X1N0YXRUYWJzcGFjZUVudHJ5ICop CisJCXBnc3RhdF9mZXRjaF9lbnRyeShQR1NUQVRfS0lORF9UQUJMRVNQQUNFLCBJbnZhbGlkT2lk LCB0YWJsZXNwYWNlaWQpOworfQorCisvKgorICogRmx1c2ggb3V0IHBlbmRpbmcgc3RhdHMgZm9y IHRoZSBlbnRyeS4KKyAqLworYm9vbAorcGdzdGF0X3RhYmxlc3BhY2VfZmx1c2hfY2IoUGdTdGF0 X0VudHJ5UmVmICplbnRyeV9yZWYsIGJvb2wgbm93YWl0KQoreworCVBnU3RhdFNoYXJlZF9UYWJs ZXNwYWNlICpzaGFyZWRlbnQ7CisJUGdTdGF0X1N0YXRUYWJzcGFjZUVudHJ5ICpwZW5kaW5nZW50 OworCisJcGVuZGluZ2VudCA9IChQZ1N0YXRfU3RhdFRhYnNwYWNlRW50cnkgKikgZW50cnlfcmVm LT5wZW5kaW5nOworCXNoYXJlZGVudCA9IChQZ1N0YXRTaGFyZWRfVGFibGVzcGFjZSAqKSBlbnRy eV9yZWYtPnNoYXJlZF9zdGF0czsKKworCWlmICghcGdzdGF0X2xvY2tfZW50cnkoZW50cnlfcmVm LCBub3dhaXQpKQorCQlyZXR1cm4gZmFsc2U7CisKKyNkZWZpbmUgUEdTVEFUX0FDQ1VNX1RBQlNQ QUNFQ09VTlQoaXRlbSkJCVwKKwkoc2hhcmVkZW50KS0+c3RhdHMuaXRlbSArPSAocGVuZGluZ2Vu dCktPml0ZW0KKworCVBHU1RBVF9BQ0NVTV9UQUJTUEFDRUNPVU5UKGJsb2Nrc19mZXRjaGVkKTsK KwlQR1NUQVRfQUNDVU1fVEFCU1BBQ0VDT1VOVChibG9ja3NfaGl0KTsKKwlQR1NUQVRfQUNDVU1f VEFCU1BBQ0VDT1VOVChibGtfcmVhZF90aW1lKTsKKwlQR1NUQVRfQUNDVU1fVEFCU1BBQ0VDT1VO VChibGtfd3JpdGVfdGltZSk7CisJUEdTVEFUX0FDQ1VNX1RBQlNQQUNFQ09VTlQodGVtcF9maWxl cyk7CisJUEdTVEFUX0FDQ1VNX1RBQlNQQUNFQ09VTlQodGVtcF9ieXRlcyk7CisJUEdTVEFUX0FD Q1VNX1RBQlNQQUNFQ09VTlQodHVwbGVzX3JldHVybmVkKTsKKwlQR1NUQVRfQUNDVU1fVEFCU1BB Q0VDT1VOVCh0dXBsZXNfZmV0Y2hlZCk7CisJUEdTVEFUX0FDQ1VNX1RBQlNQQUNFQ09VTlQodHVw bGVzX2luc2VydGVkKTsKKwlQR1NUQVRfQUNDVU1fVEFCU1BBQ0VDT1VOVCh0dXBsZXNfdXBkYXRl ZCk7CisJUEdTVEFUX0FDQ1VNX1RBQlNQQUNFQ09VTlQodHVwbGVzX2RlbGV0ZWQpOworCisjdW5k ZWYgUEdTVEFUX0FDQ1VNX1RBQlNQQUNFQ09VTlQKKworCXBnc3RhdF91bmxvY2tfZW50cnkoZW50 cnlfcmVmKTsKKworCS8qIENsZWFyIHBlbmRpbmcgc3RhdHMgc2luY2UgdGhleSBoYXZlIGJlZW4g Zmx1c2hlZCAqLworCW1lbXNldChwZW5kaW5nZW50LCAwLCBzaXplb2YoKnBlbmRpbmdlbnQpKTsK KworCXJldHVybiB0cnVlOworfQorCisvKgorICogUmVzZXQgc3RhdHMgcmVzZXQgdGltZXN0YW1w LgorICovCit2b2lkCitwZ3N0YXRfdGFibGVzcGFjZV9yZXNldF90aW1lc3RhbXBfY2IoUGdTdGF0 U2hhcmVkX0NvbW1vbiAqaGVhZGVyLCBUaW1lc3RhbXBUeiB0cykKK3sKKwkoKFBnU3RhdFNoYXJl ZF9UYWJsZXNwYWNlICopIGhlYWRlciktPnN0YXRzLnN0YXRfcmVzZXRfdGltZXN0YW1wID0gdHM7 Cit9CisKKy8qCisgKiBQcmVwYXJlIGZvciByZXBvcnRpbmcgdGFibGVzcGFjZSBzdGF0cy4KKyAq LworUGdTdGF0X1N0YXRUYWJzcGFjZUVudHJ5ICoKK3Bnc3RhdF9wcmVwX3RhYmxlc3BhY2VfcGVu ZGluZyhPaWQgdGFibGVzcGFjZWlkKQoreworCVBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmOwor CisJQXNzZXJ0KE9pZElzVmFsaWQodGFibGVzcGFjZWlkKSk7CisKKwllbnRyeV9yZWYgPSBwZ3N0 YXRfcHJlcF9wZW5kaW5nX2VudHJ5KFBHU1RBVF9LSU5EX1RBQkxFU1BBQ0UsCisJCQkJCQkJCQkJ ICBJbnZhbGlkT2lkLCB0YWJsZXNwYWNlaWQsIE5VTEwpOworCisJcmV0dXJuIChQZ1N0YXRfU3Rh dFRhYnNwYWNlRW50cnkgKikgZW50cnlfcmVmLT5wZW5kaW5nOworfQorCisvKgorICogQ291bnQg dGFibGVzcGFjZSBidWZmZXIgd3JpdGUgdGltZS4KKyAqLwordm9pZAorcGdzdGF0X2NvdW50X3Rh Ymxlc3BhY2VfYnVmZmVyX3dyaXRlX3RpbWUodWludDY0IGR1cmF0aW9uLCBPaWQgdGFibGVzcGFj ZV9vaWQpCit7CisJaWYgKE9pZElzVmFsaWQodGFibGVzcGFjZV9vaWQpKQorCXsKKwkJUGdTdGF0 X1N0YXRUYWJzcGFjZUVudHJ5ICp0c2VudCA9IHBnc3RhdF9wcmVwX3RhYmxlc3BhY2VfcGVuZGlu Zyh0YWJsZXNwYWNlX29pZCk7CisJCXRzZW50LT5ibGtfd3JpdGVfdGltZSArPSBkdXJhdGlvbjsK Kwl9Cit9CisKKy8qCisgKiBDb3VudCB0YWJsZXNwYWNlIGJ1ZmZlciByZWFkIHRpbWUuCisgKi8K K3ZvaWQKK3Bnc3RhdF9jb3VudF90YWJsZXNwYWNlX2J1ZmZlcl9yZWFkX3RpbWUodWludDY0IGR1 cmF0aW9uLCBPaWQgdGFibGVzcGFjZV9vaWQpCit7CisJaWYgKE9pZElzVmFsaWQodGFibGVzcGFj ZV9vaWQpKQorCXsKKwkJUGdTdGF0X1N0YXRUYWJzcGFjZUVudHJ5ICp0c2VudCA9IHBnc3RhdF9w cmVwX3RhYmxlc3BhY2VfcGVuZGluZyh0YWJsZXNwYWNlX29pZCk7CisKKwkJdHNlbnQtPmJsa19y ZWFkX3RpbWUgKz0gZHVyYXRpb247CisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3Bnc3RhdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3Mu YwppbmRleCA5MTg1YThlNmI4My4uM2ZiOWM2NjJkYjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0 YXRmdW5jcy5jCkBAIC0xOTY1LDYgKzE5NjUsNyBAQCBwZ19zdGF0X3Jlc2V0X3NoYXJlZChQR19G VU5DVElPTl9BUkdTKQogCQlYTG9nUHJlZmV0Y2hSZXNldFN0YXRzKCk7CiAJCXBnc3RhdF9yZXNl dF9vZl9raW5kKFBHU1RBVF9LSU5EX1NMUlUpOwogCQlwZ3N0YXRfcmVzZXRfb2Zfa2luZChQR1NU QVRfS0lORF9XQUwpOworCQlwZ3N0YXRfcmVzZXRfb2Zfa2luZChQR1NUQVRfS0lORF9UQUJMRVNQ QUNFKTsKIAogCQlQR19SRVRVUk5fVk9JRCgpOwogCX0KQEAgLTE5ODcsMTEgKzE5ODgsMTMgQEAg cGdfc3RhdF9yZXNldF9zaGFyZWQoUEdfRlVOQ1RJT05fQVJHUykKIAkJcGdzdGF0X3Jlc2V0X29m X2tpbmQoUEdTVEFUX0tJTkRfU0xSVSk7CiAJZWxzZSBpZiAoc3RyY21wKHRhcmdldCwgIndhbCIp ID09IDApCiAJCXBnc3RhdF9yZXNldF9vZl9raW5kKFBHU1RBVF9LSU5EX1dBTCk7CisJZWxzZSBp ZiAoc3RyY21wKHRhcmdldCwgInRhYmxlc3BhY2UiKSA9PSAwKQorCQlwZ3N0YXRfcmVzZXRfb2Zf a2luZChQR1NUQVRfS0lORF9UQUJMRVNQQUNFKTsKIAllbHNlCiAJCWVyZXBvcnQoRVJST1IsCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCiAJCQkJIGVycm1z ZygidW5yZWNvZ25pemVkIHJlc2V0IHRhcmdldDogXCIlc1wiIiwgdGFyZ2V0KSwKLQkJCQkgZXJy aGludCgiVGFyZ2V0IG11c3QgYmUgXCJhcmNoaXZlclwiLCBcImJnd3JpdGVyXCIsIFwiY2hlY2tw b2ludGVyXCIsIFwiaW9cIiwgXCJyZWNvdmVyeV9wcmVmZXRjaFwiLCBcInNscnVcIiwgb3IgXCJ3 YWxcIi4iKSkpOworCQkJCSBlcnJoaW50KCJUYXJnZXQgbXVzdCBiZSBcImFyY2hpdmVyXCIsIFwi Ymd3cml0ZXJcIiwgXCJjaGVja3BvaW50ZXJcIiwgXCJpb1wiLCBcInJlY292ZXJ5X3ByZWZldGNo XCIsIFwic2xydVwiLCBcIndhbFwiLCBvciBcInRhYmxlc3BhY2VcIi4iKSkpOwogCiAJUEdfUkVU VVJOX1ZPSUQoKTsKIH0KQEAgLTIzNDgsNiArMjM1MSwxMDcgQEAgcGdfc3RhdF9nZXRfc3Vic2Ny aXB0aW9uX3N0YXRzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJUEdfUkVUVVJOX0RBVFVNKEhlYXBUdXBs ZUdldERhdHVtKGhlYXBfZm9ybV90dXBsZSh0dXBkZXNjLCB2YWx1ZXMsIG51bGxzKSkpOwogfQog CisvKgorICogUmV0dXJucyB0YWJsZXNwYWNlIHN0YXRpc3RpY3MgZm9yIHRoZSBnaXZlbiB0YWJs ZXNwYWNlLiBJZiB0aGUgdGFibGVzcGFjZQorICogc3RhdGlzdGljcyBpcyBub3QgYXZhaWxhYmxl LCByZXR1cm4gYWxsLXplcm9zIHN0YXRzLgorICovCitEYXR1bQorcGdfc3RhdF9nZXRfdGFibGVz cGFjZShQR19GVU5DVElPTl9BUkdTKQoreworI2RlZmluZSBQR19TVEFUX0dFVF9UQUJMRVNQQUNF X0NPTFMJMTIKKwlPaWQJCQlzcGNvaWQgPSBQR19HRVRBUkdfT0lEKDApOworCVR1cGxlRGVzYwl0 dXBkZXNjOworCURhdHVtCQl2YWx1ZXNbUEdfU1RBVF9HRVRfVEFCTEVTUEFDRV9DT0xTXSA9IHsw fTsKKwlib29sCQludWxsc1tQR19TVEFUX0dFVF9UQUJMRVNQQUNFX0NPTFNdID0gezB9OworCVBn U3RhdF9TdGF0VGFic3BhY2VFbnRyeSAqdHNlbnRyeTsKKwlQZ1N0YXRfU3RhdFRhYnNwYWNlRW50 cnkgYWxsemVybzsKKwlpbnQJCQlpID0gMDsKKworCS8qIEdldCB0YWJsZXNwYWNlIHN0YXRzICov CisJdHNlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X3RhYnNwYWNlZW50cnkoc3Bjb2lkKTsKKwor CS8qIEluaXRpYWxpc2UgYXR0cmlidXRlcyBpbmZvcm1hdGlvbiBpbiB0aGUgdHVwbGUgZGVzY3Jp cHRvciAqLworCXR1cGRlc2MgPSBDcmVhdGVUZW1wbGF0ZVR1cGxlRGVzYyhQR19TVEFUX0dFVF9U QUJMRVNQQUNFX0NPTFMpOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJl cikgMSwgImJsa19yZWFkX3RpbWUiLAorCQkJCQkgICBGTE9BVDhPSUQsIC0xLCAwKTsKKwlUdXBs ZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDIsICJibGtfd3JpdGVfdGltZSIs CisJCQkJCSAgIEZMT0FUOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNj LCAoQXR0ck51bWJlcikgMywgImJsa3NfZmV0Y2hlZCIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAw KTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDQsICJibGtzX2hp dCIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVz YywgKEF0dHJOdW1iZXIpIDUsICJ0ZW1wX2ZpbGVzIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDAp OworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgNiwgInRlbXBfYnl0 ZXMiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRl c2MsIChBdHRyTnVtYmVyKSA3LCAidHVwX3JldHVybmVkIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEs IDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgOCwgInR1cF9m ZXRjaGVkIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0 dXBkZXNjLCAoQXR0ck51bWJlcikgOSwgInR1cF9pbnNlcnRlZCIsCisJCQkJCSAgIElOVDhPSUQs IC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDEwLCAi dHVwX3VwZGF0ZWQiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVu dHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAxMSwgInR1cF9kZWxldGVkIiwKKwkJCQkJICAgSU5U OE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikg MTIsICJzdGF0c19yZXNldCIsCisJCQkJCSAgIFRJTUVTVEFNUFRaT0lELCAtMSwgMCk7CisKKwlU dXBsZURlc2NGaW5hbGl6ZSh0dXBkZXNjKTsKKwl0dXBkZXNjID0gQmxlc3NUdXBsZURlc2ModHVw ZGVzYyk7CisKKwlpZiAoIXRzZW50cnkpCisJeworCQkvKiBJZiB0aGUgdGFibGVzcGFjZSBpcyBu b3QgZm91bmQsIGluaXRpYWxpc2UgaXRzIHN0YXRzICovCisJCW1lbXNldCgmYWxsemVybywgMCwg c2l6ZW9mKFBnU3RhdF9TdGF0VGFic3BhY2VFbnRyeSkpOworCQl0c2VudHJ5ID0gJmFsbHplcm87 CisJfQorCisJLyogYmxrX3JlYWRfdGltZSAqLworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0 dW0ocGdfc3RhdF91c190b19tcyh0c2VudHJ5LT5ibGtfcmVhZF90aW1lKSk7CisKKwkvKiBibGtf d3JpdGVfdGltZSAqLworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0ocGdfc3RhdF91c190 b19tcyh0c2VudHJ5LT5ibGtfd3JpdGVfdGltZSkpOworCisJLyogYmxvY2tzX2ZldGNoZWQgKi8K Kwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odHNlbnRyeS0+YmxvY2tzX2ZldGNoZWQpOwor CisJLyogYmxvY2tzX2hpdCAqLworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bSh0c2VudHJ5 LT5ibG9ja3NfaGl0KTsKKworCS8qIHRlbXBfZmlsZXMgKi8KKwl2YWx1ZXNbaSsrXSA9IEludDY0 R2V0RGF0dW0odHNlbnRyeS0+dGVtcF9maWxlcyk7CisKKwkvKiB0ZW1wX2J5dGVzICovCisJdmFs dWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHRzZW50cnktPnRlbXBfYnl0ZXMpOworCisJLyogdHVw X3JldHVybmVkICovCisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHRzZW50cnktPnR1cGxl c19yZXR1cm5lZCk7CisKKwkvKiB0dXBfZmV0Y2hlZCAqLworCXZhbHVlc1tpKytdID0gSW50NjRH ZXREYXR1bSh0c2VudHJ5LT50dXBsZXNfZmV0Y2hlZCk7CisKKwkvKiB0dXBfaW5zZXJ0ZWQgKi8K Kwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0odHNlbnRyeS0+dHVwbGVzX2luc2VydGVkKTsK KworCS8qIHR1cF91cGRhdGVkICovCisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHRzZW50 cnktPnR1cGxlc191cGRhdGVkKTsKKworCS8qIHR1cF9kZWxldGVkICovCisJdmFsdWVzW2krK10g PSBJbnQ2NEdldERhdHVtKHRzZW50cnktPnR1cGxlc19kZWxldGVkKTsKKworCS8qIHN0YXRzX3Jl c2V0ICovCisJaWYgKHRzZW50cnktPnN0YXRfcmVzZXRfdGltZXN0YW1wID09IDApCisJCW51bGxz W2ldID0gdHJ1ZTsKKwllbHNlCisJCXZhbHVlc1tpXSA9IFRpbWVzdGFtcFR6R2V0RGF0dW0odHNl bnRyeS0+c3RhdF9yZXNldF90aW1lc3RhbXApOworCisJQXNzZXJ0KGkgKyAxID09IFBHX1NUQVRf R0VUX1RBQkxFU1BBQ0VfQ09MUyk7CisKKwkvKiBSZXR1cm5zIHRoZSByZWNvcmQgYXMgRGF0dW0g Ki8KKwlQR19SRVRVUk5fREFUVU0oSGVhcFR1cGxlR2V0RGF0dW0oaGVhcF9mb3JtX3R1cGxlKHR1 cGRlc2MsIHZhbHVlcywgbnVsbHMpKSk7Cit9CisKIC8qCiAgKiBDaGVja3MgZm9yIHByZXNlbmNl IG9mIHN0YXRzIGZvciBvYmplY3Qgd2l0aCBwcm92aWRlZCBraW5kLCBkYXRhYmFzZSBvaWQsCiAg KiBvYmplY3Qgb2lkLgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggMDExOGU5NzBkZGEuLjhk Njg1ZGI5ZWExIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0Cisr KyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTYwOTYsNiArNjA5NiwxNCBA QAogICBwcm9hcmduYW1lcyA9PiAne25hbWUsYmxrc196ZXJvZWQsYmxrc19oaXQsYmxrc19yZWFk LGJsa3Nfd3JpdHRlbixibGtzX2V4aXN0cyxmbHVzaGVzLHRydW5jYXRlcyxzdGF0c19yZXNldH0n LAogICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X3NscnUnIH0sCiAKK3sgb2lkID0+ICc4NDU5Jywg ZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IHRhYmxlc3BhY2Ugc3RhdGlzdGljcycsCisgIHByb25hbWUg PT4gJ3BnX3N0YXRfZ2V0X3RhYmxlc3BhY2UnLCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb3Bh cmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJywgcHJvYXJndHlwZXMgPT4gJ29p ZCcsCisgIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLGZsb2F0OCxmbG9hdDgsaW50OCxpbnQ4LGlu dDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsdGltZXN0YW1wdHp9JywKKyAgcHJvYXJn bW9kZXMgPT4gJ3tpLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvfScsCisgIHByb2FyZ25hbWVzID0+ ICd7dGFibGVzcGFjZWlkLGJsa19yZWFkX3RpbWUsYmxrX3dyaXRlX3RpbWUsYmxrc19mZXRjaGVk LGJsa3NfaGl0LHRlbXBfZmlsZXMsdGVtcF9ieXRlcyx0dXBfcmV0dXJuZWQsdHVwX2ZldGNoZWQs dHVwX2luc2VydGVkLHR1cF91cGRhdGVkLHR1cF9kZWxldGVkLHN0YXRzX3Jlc2V0fScsCisgIHBy b3NyYyA9PiAncGdfc3RhdF9nZXRfdGFibGVzcGFjZScgfSwKKwogeyBvaWQgPT4gJzI5NzgnLCBk ZXNjciA9PiAnc3RhdGlzdGljczogbnVtYmVyIG9mIGZ1bmN0aW9uIGNhbGxzJywKICAgcHJvbmFt ZSA9PiAncGdfc3RhdF9nZXRfZnVuY3Rpb25fY2FsbHMnLCBwcm92b2xhdGlsZSA9PiAncycsCiAg IHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ ICdvaWQnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdzdGF0LmggYi9zcmMvaW5jbHVkZS9w Z3N0YXQuaAppbmRleCA4ZTM1NDljMzc1Mi4uODVlNDgwZWFhODEgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL3Bnc3RhdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCkBAIC0xODEsNiArMTgx LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1RhYmxlU3RhdHVzCiB7CiAJT2lkCQkJaWQ7CQkJ CS8qIHRhYmxlJ3MgT0lEICovCiAJYm9vbAkJc2hhcmVkOwkJCS8qIGlzIGl0IGEgc2hhcmVkIGNh dGFsb2c/ICovCisJT2lkCQkJdGFibGVzcGFjZV9vaWQ7IC8qIHRhYmxlc3BhY2UgT0lEICovCiAJ c3RydWN0IFBnU3RhdF9UYWJsZVhhY3RTdGF0dXMgKnRyYW5zOwkvKiBsb3dlc3Qgc3VieGFjdCdz IGNvdW50cyAqLwogCVBnU3RhdF9UYWJsZUNvdW50cyBjb3VudHM7CS8qIGV2ZW50IGNvdW50cyB0 byBiZSBzZW50ICovCiAJUmVsYXRpb24JcmVsYXRpb247CQkvKiByZWwgdGhhdCBpcyB1c2luZyB0 aGlzIGVudHJ5ICovCkBAIC00MDIsNiArNDAzLDIzIEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9T dGF0REJFbnRyeQogCVRpbWVzdGFtcFR6IHN0YXRfcmVzZXRfdGltZXN0YW1wOwogfSBQZ1N0YXRf U3RhdERCRW50cnk7CiAKK3R5cGVkZWYgc3RydWN0IFBnU3RhdF9TdGF0VGFic3BhY2VFbnRyeQor eworCVBnU3RhdF9Db3VudGVyIGJsa19yZWFkX3RpbWU7CS8qIHRpbWVzIGluIG1pY3Jvc2Vjb25k cyAqLworCVBnU3RhdF9Db3VudGVyIGJsa193cml0ZV90aW1lOworCVBnU3RhdF9Db3VudGVyIGJs b2Nrc19mZXRjaGVkOworCVBnU3RhdF9Db3VudGVyIGJsb2Nrc19oaXQ7CisJUGdTdGF0X0NvdW50 ZXIgdGVtcF9maWxlczsKKwlQZ1N0YXRfQ291bnRlciB0ZW1wX2J5dGVzOworCVBnU3RhdF9Db3Vu dGVyIHR1cGxlc19yZXR1cm5lZDsKKwlQZ1N0YXRfQ291bnRlciB0dXBsZXNfZmV0Y2hlZDsKKwlQ Z1N0YXRfQ291bnRlciB0dXBsZXNfaW5zZXJ0ZWQ7CisJUGdTdGF0X0NvdW50ZXIgdHVwbGVzX3Vw ZGF0ZWQ7CisJUGdTdGF0X0NvdW50ZXIgdHVwbGVzX2RlbGV0ZWQ7CisKKwlUaW1lc3RhbXBUeiBz dGF0X3Jlc2V0X3RpbWVzdGFtcDsKK30gUGdTdGF0X1N0YXRUYWJzcGFjZUVudHJ5OworCiB0eXBl ZGVmIHN0cnVjdCBQZ1N0YXRfU3RhdEZ1bmNFbnRyeQogewogCVBnU3RhdF9Db3VudGVyIG51bWNh bGxzOwpAQCAtNzcxLDYgKzc4OSwxNyBAQCBleHRlcm4gUGdTdGF0X1N0YXRUYWJFbnRyeSAqcGdz dGF0X2ZldGNoX3N0YXRfdGFiZW50cnlfZXh0KGJvb2wgc2hhcmVkLAogZXh0ZXJuIFBnU3RhdF9U YWJsZVN0YXR1cyAqZmluZF90YWJzdGF0X2VudHJ5KE9pZCByZWxfaWQpOwogCiAKKy8qCisgKiBG dW5jdGlvbnMgaW4gcGdzdGF0X3RhYmxlc3BhY2UuYworICovCisKK2V4dGVybiB2b2lkIHBnc3Rh dF9kcm9wX3RhYmxlc3BhY2UoT2lkIHRhYmxlc3BhY2VpZCk7CitleHRlcm4gUGdTdGF0X1N0YXRU YWJzcGFjZUVudHJ5ICpwZ3N0YXRfZmV0Y2hfc3RhdF90YWJzcGFjZWVudHJ5KE9pZCB0YWJsZXNw YWNlaWQpOworZXh0ZXJuIFBnU3RhdF9TdGF0VGFic3BhY2VFbnRyeSAqcGdzdGF0X3ByZXBfdGFi bGVzcGFjZV9wZW5kaW5nKE9pZCB0YWJsZXNwYWNlaWQpOworZXh0ZXJuIHZvaWQgcGdzdGF0X2Nv dW50X3RhYmxlc3BhY2VfYnVmZmVyX3dyaXRlX3RpbWUodWludDY0IGR1cmF0aW9uLCBPaWQgdGFi bGVzcGFjZV9vaWQpOworZXh0ZXJuIHZvaWQgcGdzdGF0X2NvdW50X3RhYmxlc3BhY2VfYnVmZmVy X3JlYWRfdGltZSh1aW50NjQgZHVyYXRpb24sIE9pZCB0YWJsZXNwYWNlX29pZCk7CisKKwogLyoK ICAqIEZ1bmN0aW9ucyBpbiBwZ3N0YXRfcmVwbHNsb3QuYwogICovCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS91dGlscy9iYWNrZW5kX3N0YXR1cy5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvYmFja2Vu ZF9zdGF0dXMuaAppbmRleCBkZGQwNjMwNGU5Ny4uYTJjNTAxZWRmMDAgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3V0aWxzL2JhY2tlbmRfc3RhdHVzLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMv YmFja2VuZF9zdGF0dXMuaApAQCAtMzIzLDcgKzMyMyw3IEBAIGV4dGVybiB2b2lkIHBnc3RhdF9j bGVhcl9iYWNrZW5kX2FjdGl2aXR5X3NuYXBzaG90KHZvaWQpOwogZXh0ZXJuIHZvaWQgcGdzdGF0 X3JlcG9ydF9hY3Rpdml0eShCYWNrZW5kU3RhdGUgc3RhdGUsIGNvbnN0IGNoYXIgKmNtZF9zdHIp OwogZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF9xdWVyeV9pZChpbnQ2NCBxdWVyeV9pZCwgYm9v bCBmb3JjZSk7CiBleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X3BsYW5faWQoaW50NjQgcGxhbl9p ZCwgYm9vbCBmb3JjZSk7Ci1leHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X3RlbXBmaWxlKHNpemVf dCBmaWxlc2l6ZSk7CitleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X3RlbXBmaWxlKHNpemVfdCBm aWxlc2l6ZSwgY29uc3QgY2hhciAqcGF0aCk7CiBleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X2Fw cG5hbWUoY29uc3QgY2hhciAqYXBwbmFtZSk7CiBleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X3hh Y3RfdGltZXN0YW1wKFRpbWVzdGFtcFR6IHRzdGFtcCk7CiBleHRlcm4gY29uc3QgY2hhciAqcGdz dGF0X2dldF9iYWNrZW5kX2N1cnJlbnRfYWN0aXZpdHkoaW50IHBpZCwgYm9vbCBjaGVja1VzZXIp OwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2ludGVybmFsLmggYi9zcmMv aW5jbHVkZS91dGlscy9wZ3N0YXRfaW50ZXJuYWwuaAppbmRleCA5NzcwNDQyMWE5Mi4uYTk4NGZj NGE2MTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oCisr KyBiL3NyYy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oCkBAIC01MDQsNiArNTA0LDEy IEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdFNoYXJlZF9EYXRhYmFzZQogCVBnU3RhdF9TdGF0REJF bnRyeSBzdGF0czsKIH0gUGdTdGF0U2hhcmVkX0RhdGFiYXNlOwogCit0eXBlZGVmIHN0cnVjdCBQ Z1N0YXRTaGFyZWRfVGFibGVzcGFjZQoreworCVBnU3RhdFNoYXJlZF9Db21tb24gaGVhZGVyOwor CVBnU3RhdF9TdGF0VGFic3BhY2VFbnRyeSBzdGF0czsKK30gUGdTdGF0U2hhcmVkX1RhYmxlc3Bh Y2U7CisKIHR5cGVkZWYgc3RydWN0IFBnU3RhdFNoYXJlZF9SZWxhdGlvbgogewogCVBnU3RhdFNo YXJlZF9Db21tb24gaGVhZGVyOwpAQCAtNzQ0LDYgKzc1MCw4IEBAIGV4dGVybiBQZ1N0YXRfU3Rh dERCRW50cnkgKnBnc3RhdF9wcmVwX2RhdGFiYXNlX3BlbmRpbmcoT2lkIGRib2lkKTsKIGV4dGVy biB2b2lkIHBnc3RhdF9yZXNldF9kYXRhYmFzZV90aW1lc3RhbXAoT2lkIGRib2lkLCBUaW1lc3Rh bXBUeiB0cyk7CiBleHRlcm4gYm9vbCBwZ3N0YXRfZGF0YWJhc2VfZmx1c2hfY2IoUGdTdGF0X0Vu dHJ5UmVmICplbnRyeV9yZWYsIGJvb2wgbm93YWl0KTsKIGV4dGVybiB2b2lkIHBnc3RhdF9kYXRh YmFzZV9yZXNldF90aW1lc3RhbXBfY2IoUGdTdGF0U2hhcmVkX0NvbW1vbiAqaGVhZGVyLCBUaW1l c3RhbXBUeiB0cyk7CitleHRlcm4gYm9vbCBwZ3N0YXRfdGFibGVzcGFjZV9mbHVzaF9jYihQZ1N0 YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpOworZXh0ZXJuIHZvaWQgcGdzdGF0 X3RhYmxlc3BhY2VfcmVzZXRfdGltZXN0YW1wX2NiKFBnU3RhdFNoYXJlZF9Db21tb24gKmhlYWRl ciwgVGltZXN0YW1wVHogdHMpOwogCiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGls cy9wZ3N0YXRfa2luZC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2tpbmQuaAppbmRleCAy ZDc4YTAyOTY4My4uMmQyOGVmYTkyZDQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3Bn c3RhdF9raW5kLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2tpbmQuaApAQCAtMzks OSArMzksMTAgQEAKICNkZWZpbmUgUEdTVEFUX0tJTkRfTE9DSwkxMQogI2RlZmluZSBQR1NUQVRf S0lORF9TTFJVCTEyCiAjZGVmaW5lIFBHU1RBVF9LSU5EX1dBTAkxMworI2RlZmluZSBQR1NUQVRf S0lORF9UQUJMRVNQQUNFCTE0CiAKICNkZWZpbmUgUEdTVEFUX0tJTkRfQlVJTFRJTl9NSU4gUEdT VEFUX0tJTkRfREFUQUJBU0UKLSNkZWZpbmUgUEdTVEFUX0tJTkRfQlVJTFRJTl9NQVggUEdTVEFU X0tJTkRfV0FMCisjZGVmaW5lIFBHU1RBVF9LSU5EX0JVSUxUSU5fTUFYIFBHU1RBVF9LSU5EX1RB QkxFU1BBQ0UKICNkZWZpbmUgUEdTVEFUX0tJTkRfQlVJTFRJTl9TSVpFIChQR1NUQVRfS0lORF9C VUlMVElOX01BWCArIDEpCiAKIC8qIEN1c3RvbSBzdGF0cyBraW5kcyAqLwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3J1bGVzLm91dAppbmRleCAyYjNjZjZkODU2OS4uNGU0ZWFjMzRhNjEgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0yMzA3LDYgKzIzMDcsMjIgQEAgcGdfc3RhdF9z eXNfdGFibGVzfCBTRUxFQ1QgcmVsaWQsCiAgICAgc3RhdHNfcmVzZXQKICAgIEZST00gcGdfc3Rh dF9hbGxfdGFibGVzCiAgIFdIRVJFICgoc2NoZW1hbmFtZSA9IEFOWSAoQVJSQVlbJ3BnX2NhdGFs b2cnOjpuYW1lLCAnaW5mb3JtYXRpb25fc2NoZW1hJzo6bmFtZV0pKSBPUiAoc2NoZW1hbmFtZSB+ ICdecGdfdG9hc3QnOjp0ZXh0KSk7CitwZ19zdGF0X3RhYmxlc3BhY2V8IFNFTEVDVCB0Lm9pZCBB UyB0YWJsZXNwYWNlX2lkLAorICAgIHQuc3BjbmFtZSBBUyB0YWJsZXNwYWNlX25hbWUsCisgICAg cy5ibGtfcmVhZF90aW1lLAorICAgIHMuYmxrX3dyaXRlX3RpbWUsCisgICAgcy5ibGtzX2hpdCwK KyAgICAocy5ibGtzX2ZldGNoZWQgLSBzLmJsa3NfaGl0KSBBUyBibGtzX3JlYWQsCisgICAgcy50 ZW1wX2ZpbGVzLAorICAgIHMudGVtcF9ieXRlcywKKyAgICBzLnR1cF9yZXR1cm5lZCwKKyAgICBz LnR1cF9mZXRjaGVkLAorICAgIHMudHVwX2luc2VydGVkLAorICAgIHMudHVwX3VwZGF0ZWQsCisg ICAgcy50dXBfZGVsZXRlZCwKKyAgICBzLnN0YXRzX3Jlc2V0CisgICBGUk9NIChwZ190YWJsZXNw YWNlIHQKKyAgICAgTEVGVCBKT0lOIExBVEVSQUwgcGdfc3RhdF9nZXRfdGFibGVzcGFjZSh0Lm9p ZCkgcyhibGtfcmVhZF90aW1lLCBibGtfd3JpdGVfdGltZSwgYmxrc19mZXRjaGVkLCBibGtzX2hp dCwgdGVtcF9maWxlcywgdGVtcF9ieXRlcywgdHVwX3JldHVybmVkLCB0dXBfZmV0Y2hlZCwgdHVw X2luc2VydGVkLCB0dXBfdXBkYXRlZCwgdHVwX2RlbGV0ZWQsIHN0YXRzX3Jlc2V0KSBPTiAodHJ1 ZSkpOwogcGdfc3RhdF91c2VyX2Z1bmN0aW9uc3wgU0VMRUNUIHAub2lkIEFTIGZ1bmNpZCwKICAg ICBuLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKICAgICBwLnByb25hbWUgQVMgZnVuY25hbWUsCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHMub3V0CmluZGV4IGVhN2Y3ODQ2ODk1Li5iYWIzZDQ2NTU5 NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0cy5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0cy5vdXQKQEAgLTExMzAsNyArMTEzMCw3IEBA IFNFTEVDVCBzdGF0c19yZXNldCA+IDond2FsX3Jlc2V0X3RzJzo6dGltZXN0YW1wdHogRlJPTSBw Z19zdGF0X3dhbDsKIC0tIFRlc3QgZXJyb3IgY2FzZSBmb3IgcmVzZXRfc2hhcmVkIHdpdGggdW5r bm93biBzdGF0cyB0eXBlCiBTRUxFQ1QgcGdfc3RhdF9yZXNldF9zaGFyZWQoJ3Vua25vd24nKTsK IEVSUk9SOiAgdW5yZWNvZ25pemVkIHJlc2V0IHRhcmdldDogInVua25vd24iCi1ISU5UOiAgVGFy Z2V0IG11c3QgYmUgImFyY2hpdmVyIiwgImJnd3JpdGVyIiwgImNoZWNrcG9pbnRlciIsICJpbyIs ICJyZWNvdmVyeV9wcmVmZXRjaCIsICJzbHJ1Iiwgb3IgIndhbCIuCitISU5UOiAgVGFyZ2V0IG11 c3QgYmUgImFyY2hpdmVyIiwgImJnd3JpdGVyIiwgImNoZWNrcG9pbnRlciIsICJpbyIsICJyZWNv dmVyeV9wcmVmZXRjaCIsICJzbHJ1IiwgIndhbCIsIG9yICJ0YWJsZXNwYWNlIi4KIC0tIFRlc3Qg dGhhdCByZXNldCB3b3JrcyBmb3IgcGdfc3RhdF9kYXRhYmFzZSBhbmQgcGdfc3RhdF9kYXRhYmFz ZV9jb25mbGljdHMKIC0tIFNpbmNlIHBnX3N0YXRfZGF0YWJhc2Ugc3RhdHNfcmVzZXQgc3RhcnRz IG91dCBhcyBOVUxMLCByZXNldCBpdCBvbmNlIGZpcnN0IHNvIHRoYXQgd2UKIC0tIGhhdmUgYSBi YXNlbGluZSBmb3IgY29tcGFyaXNvbi4gVGhlIHNhbWUgZm9yIHBnX3N0YXRfZGF0YWJhc2VfY29u ZmxpY3RzIGFzIGl0IHNoYXJlcwpAQCAtMjAwNiw0ICsyMDA2LDg3IEBAIFNFTEVDVCBmYXN0cGF0 aF9leGNlZWRlZCA+IDpmYXN0cGF0aF9leGNlZWRlZF9iZWZvcmUgRlJPTSBwZ19zdGF0X2xvY2sg V0hFUkUgbG9jCiAoMSByb3cpCiAKIERST1AgVEFCTEUgcGFydF90ZXN0OworLS0gVGVzdCBwZ19z dGF0X3RhYmxlc3BhY2UKK1NFTEVDVCBjb3VudCgqKSA+IDAgRlJPTSBwZ19zdGF0X3RhYmxlc3Bh Y2U7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgdGFibGVz cGFjZV9uYW1lIEZST00gcGdfc3RhdF90YWJsZXNwYWNlIFdIRVJFIHRhYmxlc3BhY2VfbmFtZSBJ TiAoJ3BnX2RlZmF1bHQnLCAncGdfZ2xvYmFsJykgT1JERVIgQlkgdGFibGVzcGFjZV9uYW1lOwor IHRhYmxlc3BhY2VfbmFtZSAKKy0tLS0tLS0tLS0tLS0tLS0tCisgcGdfZGVmYXVsdAorIHBnX2ds b2JhbAorKDIgcm93cykKKworLS0gVGVzdCBibG9jayBhbmQgdHVwbGUgc3RhdHMgaW4gcGdfc3Rh dF90YWJsZXNwYWNlCitTRVQgdHJhY2tfaW9fdGltaW5nID0gb247CitDUkVBVEUgVEFCTEUgdGVz dF90YWJsZXNwYWNlX3N0YXRzIChhIGludCk7CitJTlNFUlQgSU5UTyB0ZXN0X3RhYmxlc3BhY2Vf c3RhdHMgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLCAxMDApOworU0VMRUNUIGNvdW50KCopIEZS T00gdGVzdF90YWJsZXNwYWNlX3N0YXRzOworIGNvdW50IAorLS0tLS0tLQorICAgMTAwCisoMSBy b3cpCisKK1VQREFURSB0ZXN0X3RhYmxlc3BhY2Vfc3RhdHMgU0VUIGEgPSBhICsgMSBXSEVSRSBh ID4gNTA7CitERUxFVEUgRlJPTSB0ZXN0X3RhYmxlc3BhY2Vfc3RhdHMgV0hFUkUgYSA+IDkwOwor U0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOworIHBnX3N0YXRfZm9yY2VfbmV4dF9m bHVzaCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBi bGtzX3JlYWQgPiAwIEFTIGhhc19ibGtzX3JlYWQsIGJsa3NfaGl0ID4gMCBBUyBoYXNfYmxrc19o aXQsIGJsa19yZWFkX3RpbWUgPiAwIEFTIGhhc19ibGtfcmVhZF90aW1lLCBibGtfd3JpdGVfdGlt ZSA+IDAgQVMgaGFzX2Jsa193cml0ZV90aW1lLCB0dXBfaW5zZXJ0ZWQgPiAwIEFTIGhhc190dXBf aW5zZXJ0ZWQsIHR1cF91cGRhdGVkID4gMCBBUyBoYXNfdHVwX3VwZGF0ZWQsIHR1cF9kZWxldGVk ID4gMCBBUyBoYXNfdHVwX2RlbGV0ZWQsIHR1cF9yZXR1cm5lZCA+IDAgQVMgaGFzX3R1cF9yZXR1 cm5lZCBGUk9NIHBnX3N0YXRfdGFibGVzcGFjZSBXSEVSRSB0YWJsZXNwYWNlX25hbWUgPSAncGdf ZGVmYXVsdCc7CisgaGFzX2Jsa3NfcmVhZCB8IGhhc19ibGtzX2hpdCB8IGhhc19ibGtfcmVhZF90 aW1lIHwgaGFzX2Jsa193cml0ZV90aW1lIHwgaGFzX3R1cF9pbnNlcnRlZCB8IGhhc190dXBfdXBk YXRlZCB8IGhhc190dXBfZGVsZXRlZCB8IGhhc190dXBfcmV0dXJuZWQgCistLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tCisgdCAgICAgICAgICAgICB8IHQgICAgICAgICAgICB8IHQgICAg ICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICB8IHQg ICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgICB8IHQKKygxIHJvdykKKworRFJPUCBUQUJM RSB0ZXN0X3RhYmxlc3BhY2Vfc3RhdHM7CistLSBUZXN0IHRlbXAgZmlsZSBzdGF0cyBpbiBwZ19z dGF0X3RhYmxlc3BhY2UKKy0tIFVzZSBhIHNvcnQgdGhhdCBleGNlZWRzIHdvcmtfbWVtIHRvIGZv cmNlIHRlbXAgZmlsZSB1c2FnZQorU0VUIHdvcmtfbWVtID0gJzY0a0InOworU0VMRUNUIGNvdW50 KCopIEZST00gKFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMDAwKSBBUyBzIE9S REVSIEJZIHMgREVTQykgQVMgZm9vOworIGNvdW50IAorLS0tLS0tLQorIDEwMDAwCisoMSByb3cp CisKK1JFU0VUIHdvcmtfbWVtOworU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOwor IHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg CisoMSByb3cpCisKKy0tIFdlIGV4cGVjdCB0ZW1wIGZpbGVzIHRvIGJlIGluIHBnX2RlZmF1bHQg aWYgbm90IHNwZWNpZmllZCBvdGhlcndpc2UKK1NFTEVDVCB0ZW1wX2ZpbGVzID4gMCBBUyBoYXNf dGVtcF9maWxlcywgdGVtcF9ieXRlcyA+IDAgQVMgaGFzX3RlbXBfYnl0ZXMgRlJPTSBwZ19zdGF0 X3RhYmxlc3BhY2UgV0hFUkUgdGFibGVzcGFjZV9uYW1lID0gJ3BnX2RlZmF1bHQnOworIGhhc190 ZW1wX2ZpbGVzIHwgaGFzX3RlbXBfYnl0ZXMgCistLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0KKyB0ICAgICAgICAgICAgICB8IHQKKygxIHJvdykKKworLS0gVGVzdCByZXNldCBmb3Ig cGdfc3RhdF90YWJsZXNwYWNlCistLSBFbnN1cmUgd2UgaGF2ZSBhIHRpbWVzdGFtcCB0byBjb21w YXJlCitTRUxFQ1QgcGdfc3RhdF9yZXNldF9zaGFyZWQoJ3RhYmxlc3BhY2UnKTsKKyBwZ19zdGF0 X3Jlc2V0X3NoYXJlZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VM RUNUIHN0YXRzX3Jlc2V0IEFTIHRzX3Jlc2V0X2JlZm9yZSBGUk9NIHBnX3N0YXRfdGFibGVzcGFj ZSBXSEVSRSB0YWJsZXNwYWNlX25hbWUgPSAncGdfZGVmYXVsdCcgXGdzZXQKK1NFTEVDVCBwZ19z dGF0X3Jlc2V0X3NoYXJlZCgndGFibGVzcGFjZScpOworIHBnX3N0YXRfcmVzZXRfc2hhcmVkIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1Qgc3RhdHNfcmVzZXQg PiA6J3RzX3Jlc2V0X2JlZm9yZSc6OnRpbWVzdGFtcHR6IEZST00gcGdfc3RhdF90YWJsZXNwYWNl IFdIRVJFIHRhYmxlc3BhY2VfbmFtZSA9ICdwZ19kZWZhdWx0JzsKKyA/Y29sdW1uPyAKKy0tLS0t LS0tLS0KKyB0CisoMSByb3cpCisKIC0tIEVuZCBvZiBTdGF0cyBUZXN0CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zdGF0cy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdGF0 cy5zcWwKaW5kZXggNjVkODk2OGM4M2UuLmFkNGM4YTY1MzQ3IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zdGF0cy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3RhdHMu c3FsCkBAIC0xMDAwLDQgKzEwMDAsNDIgQEAgU0VMRUNUIGZhc3RwYXRoX2V4Y2VlZGVkID4gOmZh c3RwYXRoX2V4Y2VlZGVkX2JlZm9yZSBGUk9NIHBnX3N0YXRfbG9jayBXSEVSRSBsb2MKIAogRFJP UCBUQUJMRSBwYXJ0X3Rlc3Q7CiAKKy0tIFRlc3QgcGdfc3RhdF90YWJsZXNwYWNlCitTRUxFQ1Qg Y291bnQoKikgPiAwIEZST00gcGdfc3RhdF90YWJsZXNwYWNlOworCitTRUxFQ1QgdGFibGVzcGFj ZV9uYW1lIEZST00gcGdfc3RhdF90YWJsZXNwYWNlIFdIRVJFIHRhYmxlc3BhY2VfbmFtZSBJTiAo J3BnX2RlZmF1bHQnLCAncGdfZ2xvYmFsJykgT1JERVIgQlkgdGFibGVzcGFjZV9uYW1lOworCist LSBUZXN0IGJsb2NrIGFuZCB0dXBsZSBzdGF0cyBpbiBwZ19zdGF0X3RhYmxlc3BhY2UKK1NFVCB0 cmFja19pb190aW1pbmcgPSBvbjsKK0NSRUFURSBUQUJMRSB0ZXN0X3RhYmxlc3BhY2Vfc3RhdHMg KGEgaW50KTsKK0lOU0VSVCBJTlRPIHRlc3RfdGFibGVzcGFjZV9zdGF0cyBTRUxFQ1QgZ2VuZXJh dGVfc2VyaWVzKDEsIDEwMCk7CitTRUxFQ1QgY291bnQoKikgRlJPTSB0ZXN0X3RhYmxlc3BhY2Vf c3RhdHM7CitVUERBVEUgdGVzdF90YWJsZXNwYWNlX3N0YXRzIFNFVCBhID0gYSArIDEgV0hFUkUg YSA+IDUwOworREVMRVRFIEZST00gdGVzdF90YWJsZXNwYWNlX3N0YXRzIFdIRVJFIGEgPiA5MDsK KworU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOworCitTRUxFQ1QgYmxrc19yZWFk ID4gMCBBUyBoYXNfYmxrc19yZWFkLCBibGtzX2hpdCA+IDAgQVMgaGFzX2Jsa3NfaGl0LCBibGtf cmVhZF90aW1lID4gMCBBUyBoYXNfYmxrX3JlYWRfdGltZSwgYmxrX3dyaXRlX3RpbWUgPiAwIEFT IGhhc19ibGtfd3JpdGVfdGltZSwgdHVwX2luc2VydGVkID4gMCBBUyBoYXNfdHVwX2luc2VydGVk LCB0dXBfdXBkYXRlZCA+IDAgQVMgaGFzX3R1cF91cGRhdGVkLCB0dXBfZGVsZXRlZCA+IDAgQVMg aGFzX3R1cF9kZWxldGVkLCB0dXBfcmV0dXJuZWQgPiAwIEFTIGhhc190dXBfcmV0dXJuZWQgRlJP TSBwZ19zdGF0X3RhYmxlc3BhY2UgV0hFUkUgdGFibGVzcGFjZV9uYW1lID0gJ3BnX2RlZmF1bHQn OworCitEUk9QIFRBQkxFIHRlc3RfdGFibGVzcGFjZV9zdGF0czsKKy0tIFRlc3QgdGVtcCBmaWxl IHN0YXRzIGluIHBnX3N0YXRfdGFibGVzcGFjZQorLS0gVXNlIGEgc29ydCB0aGF0IGV4Y2VlZHMg d29ya19tZW0gdG8gZm9yY2UgdGVtcCBmaWxlIHVzYWdlCitTRVQgd29ya19tZW0gPSAnNjRrQic7 CitTRUxFQ1QgY291bnQoKikgRlJPTSAoU0VMRUNUICogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg MTAwMDApIEFTIHMgT1JERVIgQlkgcyBERVNDKSBBUyBmb287CisKK1JFU0VUIHdvcmtfbWVtOwor U0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOworCistLSBXZSBleHBlY3QgdGVtcCBm aWxlcyB0byBiZSBpbiBwZ19kZWZhdWx0IGlmIG5vdCBzcGVjaWZpZWQgb3RoZXJ3aXNlCitTRUxF Q1QgdGVtcF9maWxlcyA+IDAgQVMgaGFzX3RlbXBfZmlsZXMsIHRlbXBfYnl0ZXMgPiAwIEFTIGhh c190ZW1wX2J5dGVzIEZST00gcGdfc3RhdF90YWJsZXNwYWNlIFdIRVJFIHRhYmxlc3BhY2VfbmFt ZSA9ICdwZ19kZWZhdWx0JzsKKworLS0gVGVzdCByZXNldCBmb3IgcGdfc3RhdF90YWJsZXNwYWNl CistLSBFbnN1cmUgd2UgaGF2ZSBhIHRpbWVzdGFtcCB0byBjb21wYXJlCitTRUxFQ1QgcGdfc3Rh dF9yZXNldF9zaGFyZWQoJ3RhYmxlc3BhY2UnKTsKKworU0VMRUNUIHN0YXRzX3Jlc2V0IEFTIHRz X3Jlc2V0X2JlZm9yZSBGUk9NIHBnX3N0YXRfdGFibGVzcGFjZSBXSEVSRSB0YWJsZXNwYWNlX25h bWUgPSAncGdfZGVmYXVsdCcgXGdzZXQKK1NFTEVDVCBwZ19zdGF0X3Jlc2V0X3NoYXJlZCgndGFi bGVzcGFjZScpOworCitTRUxFQ1Qgc3RhdHNfcmVzZXQgPiA6J3RzX3Jlc2V0X2JlZm9yZSc6OnRp bWVzdGFtcHR6IEZST00gcGdfc3RhdF90YWJsZXNwYWNlIFdIRVJFIHRhYmxlc3BhY2VfbmFtZSA9 ICdwZ19kZWZhdWx0JzsKKwogLS0gRW5kIG9mIFN0YXRzIFRlc3QKLS0gCjIuNTMuMC4xMDE4Lmcy YmIwZTUxMjQzLWdvb2cKCgo= --000000000000e81ac4064e055804--