Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1u2eXO-003qee-V3 for pgsql-hackers@arkaria.postgresql.org; Wed, 09 Apr 2025 23:08:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1u2eXN-0082Tg-4R for pgsql-hackers@arkaria.postgresql.org; Wed, 09 Apr 2025 23:08:53 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1u2eXM-0082TO-LP for pgsql-hackers@lists.postgresql.org; Wed, 09 Apr 2025 23:08:53 +0000 Received: from mail-qv1-xf2f.google.com ([2607:f8b0:4864:20::f2f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1u2eXG-004Q45-20 for pgsql-hackers@postgresql.org; Wed, 09 Apr 2025 23:08:49 +0000 Received: by mail-qv1-xf2f.google.com with SMTP id 6a1803df08f44-6f0c30a1ca3so1570866d6.1 for ; Wed, 09 Apr 2025 16:08:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; t=1744240124; x=1744844924; darn=postgresql.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=mAu4l3cxmFEDDbQuIOXtS3esC6blQjSMrDwp9XPIhk8=; b=CZoqS4O2NRQWlXOq+9hW0Nk7HaRCw4U8rchbyaow/aGkTer4dGjs+TnDEld281NYvl JIJLZ0Nv1uNa9p30oFWEi/V4SyK5Wt1nd9u2ltUeNV1pX2W14+IaDeg4JRdnt0y+OZyc eIcFleHB4UBJcK/PK/lt3F0O1Gc2FuE3dm6JZ8NT0P0pzUbbT3vwFUL1BS8hGIvz3VFI djm4sD5TLOrOZV7qwPb7kyQx/XYbmgTGOUlQyuTJ4HG+hI1Nr7xr+eD1rhmoHCEMVerF qplgiITZBl9gA8rlhgn25C/dK5ybAEBP4ZCoaK2XYMVk7Q1GBzAvFPI5RWe1J5hNeIAo XG4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744240124; x=1744844924; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=mAu4l3cxmFEDDbQuIOXtS3esC6blQjSMrDwp9XPIhk8=; b=IFxozLy71xJgEkO3EU2JDth1QOQ4YYACW9SgRV4PJw+1lEkxKalKnJYEZEV5Vs9gYi 5gNWSo1WqedR1tdf6Lv7IRZu6lCORZZXODUb+lllJUckspHcWCGRBHJhP/h1wPwV9qEQ 6zw+8fNp6Z+xEFihDxB75xGFS2xptoCP1MblM6yynbux2ulIIPqWiWN0WKU2ASElzx5m NPbI1wXM/3o+qAQ0hcJo8o/QGW9nVQq4j3haUBIQMH4jfmJS3kniYvBKY6oqf9+oH6de pH24qLa3mQeRL8/bAbjeHkeigKL28Xlv6eO/38Lsr4h0KZJkOUepDRHwujqA5705/ou9 ihZg== X-Forwarded-Encrypted: i=1; AJvYcCXFLxqAFV7nWdB1qROmwaHUlusrQchWljyN5jM5Ny4zQIVhZitTfuBgQP5vO9sCv+8krph+FuB5mRoJWFzA@postgresql.org X-Gm-Message-State: AOJu0Yy5xbjbb5NYKXiy0K/yAJYqJ9PExpqE80Rl64OTquFl8+5L7ZVM HRqAQkMRjON8QLztSu2F49gbKj8GMDdP0g6gBMeu2argdIr11Hl6S/JGmwI213xkD545dJhyyjv wdLREuv23iblJsTo3QGTuY8zCUbzVqbYOByiY X-Gm-Gg: ASbGncuPpD3rUBTOm26KMt6VD1G0+YPjtgR5F3prGZaNKw4f3lDJJyq5jsVoGJodc5y jbJ3pNdkac3z1JqmDdDMIaq9RJ+dyhxKcpfkx4FJY7Ft00bsOg1rf3imEEoBymM/oWaDxHqup07 CfEcXWS4yMGOF9YOAQrG8M X-Google-Smtp-Source: AGHT+IECFfrzAxrBF5dPlMK6Pc8AU8BhJgSUXbvAKKLAALs6CFZP66BwFba6Dn65TRMP5pggpw0Kdr4Yhf1Yhqml6zc= X-Received: by 2002:a05:6214:501b:b0:6df:97a3:5e5a with SMTP id 6a1803df08f44-6f0e5c26877mr13887206d6.28.1744240124295; Wed, 09 Apr 2025 16:08:44 -0700 (PDT) MIME-Version: 1.0 References: <5bec3d4f-613f-425b-88c4-59e71c70f7d6@eisentraut.org> In-Reply-To: From: Jacob Champion Date: Wed, 9 Apr 2025 16:08:33 -0700 X-Gm-Features: ATxdqUFP1LvwqM4KhC14gdX00O6qo4DTz8RKf2xaWQeRsEwcrkGTzW_PWNsD-6c Message-ID: Subject: Re: [PoC] Federated Authn/z with OAUTHBEARER To: Christoph Berg , Jacob Champion , Peter Eisentraut , Andres Freund , Tom Lane , Bruce Momjian , PostgreSQL Hackers , Daniel Gustafsson , Thomas Munro , Nazir Bilal Yavuz , Antonin Houska , Wolfgang Walther , Jelte Fennema-Nio Content-Type: multipart/mixed; boundary="000000000000032b910632608dae" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000032b910632608dae Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Apr 9, 2025 at 10:44=E2=80=AFAM Christoph Berg wr= ote: > > Re: Jacob Champion > > > How about ifdef-ing away the dlopen call if --with-libcurl is not spe= cified. > > > > This sounds like a pretty decent, simple way to go. Christoph, does > > that ring any alarm bells from your perspective? > > Ok for me. The opposite that I said in the other mail was just a > suggestion. Cool, thanks! v4 does it that way. It also errors out at configure time if you demand libpq-oauth on a platform that does not support it. The Autoconf side was still polluting LIBS and CPPFLAGS with Curl stuff. I have isolated them in v4, with some additional m4 boilerplate. IMO this makes the subtle difference between USE_LIBCURL (which means the libpq-oauth module is enabled to build) and HAVE_LIBCURL (which means you have libcurl installed locally) even more confusing. Christoph noted that this was also confusing from the packaging side, earlier, and Daniel proposed -Doauth-client/--with-oauth-client as the feature switch name instead. Any objections? Unfortunately it would mean a buildfarm email is in order, so we should get it locked in. Next up: staticlibs. Thanks, --Jacob --000000000000032b910632608dae Content-Type: application/octet-stream; name="v4-0001-WIP-split-Device-Authorization-flow-into-dlopen-d.patch" Content-Disposition: attachment; filename="v4-0001-WIP-split-Device-Authorization-flow-into-dlopen-d.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m9ajc36g0 RnJvbSBjNTAwYWQ5ZjU2NTNmMDI0NDA0NDk0MDRiYTFhOTc1ZGFiNmRkZmU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogV2VkLCAyNiBNYXIgMjAyNSAxMDo1NToyOCAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggdjRdIFdJUDogc3BsaXQgRGV2aWNlIEF1dGhvcml6YXRpb24gZmxvdyBpbnRvIGRs b3BlbidkIG1vZHVsZQoKU2VlIG5vdGVzIG9uIG1haWxpbmcgbGlzdC4KCkNvLWF1dGhvcmVkLWJ5 OiBEYW5pZWwgR3VzdGFmc3NvbiA8ZGFuaWVsQHllc3FsLnNlPgotLS0KIGNvbmZpZy9wcm9ncmFt cy5tNCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNyArLQogY29uZmlndXJlICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUwICsrKystCiBjb25maWd1cmUuYWMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjYgKystCiBtZXNvbi5idWlsZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjIgKy0KIHNyYy9NYWtlZmlsZS5n bG9iYWwuaW4gICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW50ZXJmYWNlcy9N YWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgfCAgMTIgKysKIHNyYy9pbnRlcmZhY2VzL2xp YnBxLW9hdXRoL01ha2VmaWxlICAgICAgICAgICB8ICA1NSArKysrKwogc3JjL2ludGVyZmFjZXMv bGlicHEtb2F1dGgvUkVBRE1FICAgICAgICAgICAgIHwgIDMwICsrKwogc3JjL2ludGVyZmFjZXMv bGlicHEtb2F1dGgvZXhwb3J0cy50eHQgICAgICAgIHwgICA0ICsKIHNyYy9pbnRlcmZhY2VzL2xp YnBxLW9hdXRoL21lc29uLmJ1aWxkICAgICAgICB8ICA0MiArKysrCiAuLi4vb2F1dGgtY3VybC5j fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNjAgKysrLS0tCiBzcmMvaW50ZXJmYWNl cy9saWJwcS1vYXV0aC9vYXV0aC1jdXJsLmggICAgICAgfCAgMjQgKysrCiBzcmMvaW50ZXJmYWNl cy9saWJwcS1vYXV0aC9vYXV0aC11dGlscy5jICAgICAgfCAyMDIgKysrKysrKysrKysrKysrKysr CiBzcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC11dGlscy5oICAgICAgfCAgMzUgKysr CiBzcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgMTAgKy0K IHNyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0ICAgICAgICAgICAgICB8ICAgMSArCiBz cmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLW9hdXRoLmMgICAgICAgICAgfCAxMDIgKysrKysr KystCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLW9hdXRoLmggICAgICAgICAgfCAgIDQg Ky0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkICAgICAgICAgICAgICB8ICAgNCAt CiBzcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMubWsgICAgICAgICAgICAgICAgICAgfCAgMTIgKy0K IHNyYy9tYWtlZmlsZXMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiAy MSBmaWxlcyBjaGFuZ2VkLCA2MzUgaW5zZXJ0aW9ucygrKSwgODIgZGVsZXRpb25zKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgvTWFrZWZpbGUKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9SRUFETUUKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9leHBvcnRzLnR4dAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRoL21lc29uLmJ1aWxkCiByZW5h bWUgc3JjL2ludGVyZmFjZXMve2xpYnBxL2ZlLWF1dGgtb2F1dGgtY3VybC5jID0+IGxpYnBxLW9h dXRoL29hdXRoLWN1cmwuY30gKDk4JSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW50ZXJmYWNl cy9saWJwcS1vYXV0aC9vYXV0aC1jdXJsLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW50ZXJm YWNlcy9saWJwcS1vYXV0aC9vYXV0aC11dGlscy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2lu dGVyZmFjZXMvbGlicHEtb2F1dGgvb2F1dGgtdXRpbHMuaAoKZGlmZiAtLWdpdCBhL2NvbmZpZy9w cm9ncmFtcy5tNCBiL2NvbmZpZy9wcm9ncmFtcy5tNAppbmRleCAwYTA3ZmViMzdjYy4uMGFkMWU1 OGI0OGQgMTAwNjQ0Ci0tLSBhL2NvbmZpZy9wcm9ncmFtcy5tNAorKysgYi9jb25maWcvcHJvZ3Jh bXMubTQKQEAgLTI4Niw5ICsyODYsMjAgQEAgQUNfREVGVU4oW1BHQUNfQ0hFQ0tfTElCQ1VSTF0s CiBbCiAgIEFDX0NIRUNLX0hFQURFUihjdXJsL2N1cmwuaCwgW10sCiAJCQkJICBbQUNfTVNHX0VS Uk9SKFtoZWFkZXIgZmlsZSA8Y3VybC9jdXJsLmg+IGlzIHJlcXVpcmVkIGZvciAtLXdpdGgtbGli Y3VybF0pXSkKLSAgQUNfQ0hFQ0tfTElCKGN1cmwsIGN1cmxfbXVsdGlfaW5pdCwgW10sCisgIEFD X0NIRUNLX0xJQihjdXJsLCBjdXJsX211bHRpX2luaXQsIFsKKwkJCQkgQUNfREVGSU5FKFtIQVZF X0xJQkNVUkxdLCBbMV0sIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGN1cmwnIGxpYnJh cnkgKC1sY3VybCkuXSkKKwkJCQkgQUNfU1VCU1QoTElCQ1VSTF9MRExJQlMsIC1sY3VybCkKKwkJ CSAgIF0sCiAJCQkgICBbQUNfTVNHX0VSUk9SKFtsaWJyYXJ5ICdjdXJsJyBkb2VzIG5vdCBwcm92 aWRlIGN1cmxfbXVsdGlfaW5pdF0pXSkKIAorICBwZ2FjX3NhdmVfQ1BQRkxBR1M9JENQUEZMQUdT CisgIHBnYWNfc2F2ZV9MREZMQUdTPSRMREZMQUdTCisgIHBnYWNfc2F2ZV9MSUJTPSRMSUJTCisK KyAgQ1BQRkxBR1M9IiRMSUJDVVJMX0NQUEZMQUdTICRDUFBGTEFHUyIKKyAgTERGTEFHUz0iJExJ QkNVUkxfTERGTEFHUyAkTERGTEFHUyIKKyAgTElCUz0iJExJQkNVUkxfTERMSUJTICRMSUJTIgor CiAgICMgQ2hlY2sgdG8gc2VlIHdoZXRoZXIgdGhlIGN1cnJlbnQgcGxhdGZvcm0gc3VwcG9ydHMg dGhyZWFkc2FmZSBDdXJsCiAgICMgaW5pdGlhbGl6YXRpb24uCiAgIEFDX0NBQ0hFX0NIRUNLKFtm b3IgY3VybF9nbG9iYWxfaW5pdCB0aHJlYWQgc2FmZXR5XSwgW3BnYWNfY3ZfX2xpYmN1cmxfdGhy ZWFkc2FmZV9pbml0XSwKQEAgLTMzOCw0ICszNDksOCBAQCBBQ19ERUZVTihbUEdBQ19DSEVDS19M SUJDVVJMXSwKICoqKiBsb29rdXBzLiBSZWJ1aWxkIGxpYmN1cmwgd2l0aCB0aGUgQXN5bmNoRE5T IGZlYXR1cmUgZW5hYmxlZCBpbiBvcmRlcgogKioqIHRvIHVzZSBpdCB3aXRoIGxpYnBxLl0pCiAg IGZpCisKKyAgQ1BQRkxBR1M9JHBnYWNfc2F2ZV9DUFBGTEFHUworICBMREZMQUdTPSRwZ2FjX3Nh dmVfTERGTEFHUworICBMSUJTPSRwZ2FjX3NhdmVfTElCUwogXSkjIFBHQUNfQ0hFQ0tfTElCQ1VS TApkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IDhmNGE1YWIyOGVjLi5k ZjFkYTU0OWM0YyAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtNjU1 LDYgKzY1NSw3IEBAIFVVSURfTElCUwogTERBUF9MSUJTX0JFCiBMREFQX0xJQlNfRkUKIHdpdGhf c3NsCitMSUJDVVJMX0xETElCUwogUFRIUkVBRF9DRkxBR1MKIFBUSFJFQURfTElCUwogUFRIUkVB RF9DQwpAQCAtNzA4LDYgKzcwOSw4IEBAIFhNTDJfTElCUwogWE1MMl9DRkxBR1MKIFhNTDJfQ09O RklHCiB3aXRoX2xpYnhtbAorTElCQ1VSTF9MREZMQUdTCitMSUJDVVJMX0NQUEZMQUdTCiBMSUJD VVJMX0xJQlMKIExJQkNVUkxfQ0ZMQUdTCiB3aXRoX2xpYmN1cmwKQEAgLTkwNDIsMTkgKzkwNDUs MjcgQEAgJGFzX2VjaG8gInllcyIgPiY2OyB9CiAKIGZpCiAKLSAgIyBXZSBvbmx5IGNhcmUgYWJv dXQgLUksIC1ELCBhbmQgLUwgc3dpdGNoZXM7Ci0gICMgbm90ZSB0aGF0IC1sY3VybCB3aWxsIGJl IGFkZGVkIGJ5IFBHQUNfQ0hFQ0tfTElCQ1VSTCBiZWxvdy4KKyAgIyBDdXJsJ3MgZmxhZ3MgYXJl IGtlcHQgc2VwYXJhdGUgZnJvbSB0aGUgc3RhbmRhcmQgQ1BQRkxBR1MvTERGTEFHUy4gV2UgdXNl CisgICMgdGhlbSBvbmx5IGZvciBsaWJwcS1vYXV0aC4KKyAgTElCQ1VSTF9DUFBGTEFHUz0KKyAg TElCQ1VSTF9MREZMQUdTPQorCisgICMgV2Ugb25seSBjYXJlIGFib3V0IC1JLCAtRCwgYW5kIC1M IHN3aXRjaGVzLiBOb3RlIHRoYXQgLWxjdXJsIHdpbGwgYmUgYWRkZWQKKyAgIyB0byBMSUJDVVJM X0xETElCUyBieSBQR0FDX0NIRUNLX0xJQkNVUkwsIGJlbG93LgogICBmb3IgcGdhY19vcHRpb24g aW4gJExJQkNVUkxfQ0ZMQUdTOyBkbwogICAgIGNhc2UgJHBnYWNfb3B0aW9uIGluCi0gICAgICAt SSp8LUQqKSBDUFBGTEFHUz0iJENQUEZMQUdTICRwZ2FjX29wdGlvbiI7OworICAgICAgLUkqfC1E KikgTElCQ1VSTF9DUFBGTEFHUz0iJExJQkNVUkxfQ1BQRkxBR1MgJHBnYWNfb3B0aW9uIjs7CiAg ICAgZXNhYwogICBkb25lCiAgIGZvciBwZ2FjX29wdGlvbiBpbiAkTElCQ1VSTF9MSUJTOyBkbwog ICAgIGNhc2UgJHBnYWNfb3B0aW9uIGluCi0gICAgICAtTCopIExERkxBR1M9IiRMREZMQUdTICRw Z2FjX29wdGlvbiI7OworICAgICAgLUwqKSBMSUJDVVJMX0xERkxBR1M9IiRMSUJDVVJMX0xERkxB R1MgJHBnYWNfb3B0aW9uIjs7CiAgICAgZXNhYwogICBkb25lCiAKKworCisKICAgIyBPQXV0aCBy ZXF1aXJlcyBweXRob24gZm9yIHRlc3RpbmcKICAgaWYgdGVzdCAiJHdpdGhfcHl0aG9uIiAhPSB5 ZXM7IHRoZW4KICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdB Uk5JTkc6ICoqKiBPQXV0aCBzdXBwb3J0IHRlc3RzIHJlcXVpcmUgLS13aXRoLXB5dGhvbiB0byBy dW4iID4mNQpAQCAtMTI1MTcsOSArMTI1MjgsNiBAQCBmaQogCiBmaQogCi0jIFhYWCBsaWJjdXJs IG11c3QgbGluayBhZnRlciBsaWJnc3NhcGlfa3JiNSBvbiBGcmVlQlNEIHRvIGF2b2lkIHNlZ2Zh dWx0cwotIyBkdXJpbmcgZ3NzX2FjcXVpcmVfY3JlZCgpLiBUaGlzIGlzIHBvc3NpYmx5IHJlbGF0 ZWQgdG8gQ3VybCdzIEhlaW1kYWwKLSMgZGVwZW5kZW5jeSBvbiB0aGF0IHBsYXRmb3JtPwogaWYg dGVzdCAiJHdpdGhfbGliY3VybCIgPSB5ZXMgOyB0aGVuCiAKICAgYWNfZm5fY19jaGVja19oZWFk ZXJfbW9uZ3JlbCAiJExJTkVOTyIgImN1cmwvY3VybC5oIiAiYWNfY3ZfaGVhZGVyX2N1cmxfY3Vy bF9oIiAiJGFjX2luY2x1ZGVzX2RlZmF1bHQiCkBAIC0xMjU2NywxNyArMTI1NzUsMjYgQEAgZmkK IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3Zf bGliX2N1cmxfY3VybF9tdWx0aV9pbml0IiA+JjUKICRhc19lY2hvICIkYWNfY3ZfbGliX2N1cmxf Y3VybF9tdWx0aV9pbml0IiA+JjY7IH0KIGlmIHRlc3QgIngkYWNfY3ZfbGliX2N1cmxfY3VybF9t dWx0aV9pbml0IiA9IHh5ZXM7IHRoZW4gOgotICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0j ZGVmaW5lIEhBVkVfTElCQ1VSTCAxCi1fQUNFT0YKIAotICBMSUJTPSItbGN1cmwgJExJQlMiCisK KyRhc19lY2hvICIjZGVmaW5lIEhBVkVfTElCQ1VSTCAxIiA+PmNvbmZkZWZzLmgKKworCQkJCSBM SUJDVVJMX0xETElCUz0tbGN1cmwKKwogCiBlbHNlCiAgIGFzX2ZuX2Vycm9yICQ/ICJsaWJyYXJ5 ICdjdXJsJyBkb2VzIG5vdCBwcm92aWRlIGN1cmxfbXVsdGlfaW5pdCIgIiRMSU5FTk8iIDUKIGZp CiAKIAorICBwZ2FjX3NhdmVfQ1BQRkxBR1M9JENQUEZMQUdTCisgIHBnYWNfc2F2ZV9MREZMQUdT PSRMREZMQUdTCisgIHBnYWNfc2F2ZV9MSUJTPSRMSUJTCisKKyAgQ1BQRkxBR1M9IiRMSUJDVVJM X0NQUEZMQUdTICRDUFBGTEFHUyIKKyAgTERGTEFHUz0iJExJQkNVUkxfTERGTEFHUyAkTERGTEFH UyIKKyAgTElCUz0iJExJQkNVUkxfTERMSUJTICRMSUJTIgorCiAgICMgQ2hlY2sgdG8gc2VlIHdo ZXRoZXIgdGhlIGN1cnJlbnQgcGxhdGZvcm0gc3VwcG9ydHMgdGhyZWFkc2FmZSBDdXJsCiAgICMg aW5pdGlhbGl6YXRpb24uCiAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogY2hlY2tpbmcgZm9yIGN1cmxfZ2xvYmFsX2luaXQgdGhyZWFkIHNhZmV0eSIgPiY1CkBAIC0x MjY4MSw2ICsxMjY5OCwxMCBAQCAkYXNfZWNobyAiJHBnYWNfY3ZfX2xpYmN1cmxfYXN5bmNfZG5z IiA+JjY7IH0KICoqKiB0byB1c2UgaXQgd2l0aCBsaWJwcS4iICIkTElORU5PIiA1CiAgIGZpCiAK KyAgQ1BQRkxBR1M9JHBnYWNfc2F2ZV9DUFBGTEFHUworICBMREZMQUdTPSRwZ2FjX3NhdmVfTERG TEFHUworICBMSUJTPSRwZ2FjX3NhdmVfTElCUworCiBmaQogCiBpZiB0ZXN0ICIkd2l0aF9nc3Nh cGkiID0geWVzIDsgdGhlbgpAQCAtMTQzMjksNiArMTQzNTAsMTMgQEAgZG9uZQogCiBmaQogCitp ZiB0ZXN0ICIkd2l0aF9saWJjdXJsIiA9IHllcyA7IHRoZW4KKyAgIyBFcnJvciBvdXQgZWFybHkg aWYgdGhpcyBwbGF0Zm9ybSBjYW4ndCBzdXBwb3J0IGxpYnBxLW9hdXRoLgorICBpZiB0ZXN0ICIk YWNfY3ZfaGVhZGVyX3N5c19ldmVudF9oIiAhPSB5ZXMgLWEgIiRhY19jdl9oZWFkZXJfc3lzX2Vw b2xsX2giICE9IHllczsgdGhlbgorICAgIGFzX2ZuX2Vycm9yICQ/ICJjbGllbnQgT0F1dGggaXMg bm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtIiAiJExJTkVOTyIgNQorICBmaQorZmkKKwog IyMKICMjIFR5cGVzLCBzdHJ1Y3R1cmVzLCBjb21waWxlciBjaGFyYWN0ZXJpc3RpY3MKICMjCmRp ZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggZmM1Zjc0NzVkMDcu LjIxOGFlZWExYjNiIDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFj CkBAIC0xMDMzLDE5ICsxMDMzLDI3IEBAIGlmIHRlc3QgIiR3aXRoX2xpYmN1cmwiID0geWVzIDsg dGhlbgogICAjIHRvIGV4cGxpY2l0bHkgc2V0IFRMUyAxLjMgY2lwaGVyc3VpdGVzKS4KICAgUEtH X0NIRUNLX01PRFVMRVMoTElCQ1VSTCwgW2xpYmN1cmwgPj0gNy42MS4wXSkKIAotICAjIFdlIG9u bHkgY2FyZSBhYm91dCAtSSwgLUQsIGFuZCAtTCBzd2l0Y2hlczsKLSAgIyBub3RlIHRoYXQgLWxj dXJsIHdpbGwgYmUgYWRkZWQgYnkgUEdBQ19DSEVDS19MSUJDVVJMIGJlbG93LgorICAjIEN1cmwn cyBmbGFncyBhcmUga2VwdCBzZXBhcmF0ZSBmcm9tIHRoZSBzdGFuZGFyZCBDUFBGTEFHUy9MREZM QUdTLiBXZSB1c2UKKyAgIyB0aGVtIG9ubHkgZm9yIGxpYnBxLW9hdXRoLgorICBMSUJDVVJMX0NQ UEZMQUdTPQorICBMSUJDVVJMX0xERkxBR1M9CisKKyAgIyBXZSBvbmx5IGNhcmUgYWJvdXQgLUks IC1ELCBhbmQgLUwgc3dpdGNoZXMuIE5vdGUgdGhhdCAtbGN1cmwgd2lsbCBiZSBhZGRlZAorICAj IHRvIExJQkNVUkxfTERMSUJTIGJ5IFBHQUNfQ0hFQ0tfTElCQ1VSTCwgYmVsb3cuCiAgIGZvciBw Z2FjX29wdGlvbiBpbiAkTElCQ1VSTF9DRkxBR1M7IGRvCiAgICAgY2FzZSAkcGdhY19vcHRpb24g aW4KLSAgICAgIC1JKnwtRCopIENQUEZMQUdTPSIkQ1BQRkxBR1MgJHBnYWNfb3B0aW9uIjs7Cisg ICAgICAtSSp8LUQqKSBMSUJDVVJMX0NQUEZMQUdTPSIkTElCQ1VSTF9DUFBGTEFHUyAkcGdhY19v cHRpb24iOzsKICAgICBlc2FjCiAgIGRvbmUKICAgZm9yIHBnYWNfb3B0aW9uIGluICRMSUJDVVJM X0xJQlM7IGRvCiAgICAgY2FzZSAkcGdhY19vcHRpb24gaW4KLSAgICAgIC1MKikgTERGTEFHUz0i JExERkxBR1MgJHBnYWNfb3B0aW9uIjs7CisgICAgICAtTCopIExJQkNVUkxfTERGTEFHUz0iJExJ QkNVUkxfTERGTEFHUyAkcGdhY19vcHRpb24iOzsKICAgICBlc2FjCiAgIGRvbmUKIAorICBBQ19T VUJTVChMSUJDVVJMX0NQUEZMQUdTKQorICBBQ19TVUJTVChMSUJDVVJMX0xERkxBR1MpCisKICAg IyBPQXV0aCByZXF1aXJlcyBweXRob24gZm9yIHRlc3RpbmcKICAgaWYgdGVzdCAiJHdpdGhfcHl0 aG9uIiAhPSB5ZXM7IHRoZW4KICAgICBBQ19NU0dfV0FSTihbKioqIE9BdXRoIHN1cHBvcnQgdGVz dHMgcmVxdWlyZSAtLXdpdGgtcHl0aG9uIHRvIHJ1bl0pCkBAIC0xMzQwLDkgKzEzNDgsNiBAQCBm YWlsdXJlLiAgSXQgaXMgcG9zc2libGUgdGhlIGNvbXBpbGVyIGlzbid0IGxvb2tpbmcgaW4gdGhl IHByb3BlciBkaXJlY3RvcnkuCiBVc2UgLS13aXRob3V0LXpsaWIgdG8gZGlzYWJsZSB6bGliIHN1 cHBvcnQuXSldKQogZmkKIAotIyBYWFggbGliY3VybCBtdXN0IGxpbmsgYWZ0ZXIgbGliZ3NzYXBp X2tyYjUgb24gRnJlZUJTRCB0byBhdm9pZCBzZWdmYXVsdHMKLSMgZHVyaW5nIGdzc19hY3F1aXJl X2NyZWQoKS4gVGhpcyBpcyBwb3NzaWJseSByZWxhdGVkIHRvIEN1cmwncyBIZWltZGFsCi0jIGRl cGVuZGVuY3kgb24gdGhhdCBwbGF0Zm9ybT8KIGlmIHRlc3QgIiR3aXRoX2xpYmN1cmwiID0geWVz IDsgdGhlbgogICBQR0FDX0NIRUNLX0xJQkNVUkwKIGZpCkBAIC0xNjQwLDYgKzE2NDUsMTMgQEAg aWYgdGVzdCAiJFBPUlROQU1FIiA9ICJ3aW4zMiIgOyB0aGVuCiAgICBBQ19DSEVDS19IRUFERVJT KGNydGRlZnMuaCkKIGZpCiAKK2lmIHRlc3QgIiR3aXRoX2xpYmN1cmwiID0geWVzIDsgdGhlbgor ICAjIEVycm9yIG91dCBlYXJseSBpZiB0aGlzIHBsYXRmb3JtIGNhbid0IHN1cHBvcnQgbGlicHEt b2F1dGguCisgIGlmIHRlc3QgIiRhY19jdl9oZWFkZXJfc3lzX2V2ZW50X2giICE9IHllcyAtYSAi JGFjX2N2X2hlYWRlcl9zeXNfZXBvbGxfaCIgIT0geWVzOyB0aGVuCisgICAgQUNfTVNHX0VSUk9S KFtjbGllbnQgT0F1dGggaXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtXSkKKyAgZmkK K2ZpCisKICMjCiAjIyBUeXBlcywgc3RydWN0dXJlcywgY29tcGlsZXIgY2hhcmFjdGVyaXN0aWNz CiAjIwpkaWZmIC0tZ2l0IGEvbWVzb24uYnVpbGQgYi9tZXNvbi5idWlsZAppbmRleCAyNzcxN2Fk ODk3Ni4uMGYwZGY5YjFhZjQgMTAwNjQ0Ci0tLSBhL21lc29uLmJ1aWxkCisrKyBiL21lc29uLmJ1 aWxkCkBAIC0xMDcsNiArMTA3LDcgQEAgb3NfZGVwcyA9IFtdCiBiYWNrZW5kX2JvdGhfZGVwcyA9 IFtdCiBiYWNrZW5kX2RlcHMgPSBbXQogbGlicHFfZGVwcyA9IFtdCitsaWJwcV9vYXV0aF9kZXBz ID0gW10KIAogcGdfc3lzcm9vdCA9ICcnCiAKQEAgLTI1ODcsNiArMjU4OCw3IEBAIGhlYWRlcl9j aGVja3MgPSBbCiAgICd4bG9jYWxlLmgnLAogXQogCitoZWFkZXJfbWFjcm9zID0ge30KIGZvcmVh Y2ggaGVhZGVyIDogaGVhZGVyX2NoZWNrcwogICB2YXJuYW1lID0gJ0hBVkVfJyArIGhlYWRlci51 bmRlcnNjb3JpZnkoKS50b191cHBlcigpCiAKQEAgLTI1OTUsNiArMjU5NywxNSBAQCBmb3JlYWNo IGhlYWRlciA6IGhlYWRlcl9jaGVja3MKICAgICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBwb3N0Z3Jl c19pbmMsIGFyZ3M6IHRlc3RfY19hcmdzKQogICBjZGF0YS5zZXQodmFybmFtZSwgZm91bmQgPyAx IDogZmFsc2UsCiAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0RlZmluZSB0byAxIGlmIHlvdSBo YXZlIHRoZSA8QDBAPiBoZWFkZXIgZmlsZS4nLmZvcm1hdChoZWFkZXIpKQorCisgICMgTWl4aW5n IDEvZmFsc2UgaW4gY2RhdGEgbWVhbnMgd2UgY2FuJ3QgcGVyZm9ybSBlcXVhbGl0eSBjaGVja3Mg dXNpbmcKKyAgIyBjZGF0YS5nZXQoKSwgdGhvdWdoLCBzbyBzdG9yZSBvdXIgZGVmaW5lZCBoZWFk ZXIgbWFjcm9zIGZvciBsYXRlciBsb29rdXAuCisgICMKKyAgIyAgICAgaHR0cHM6Ly9naXRodWIu Y29tL21lc29uYnVpbGQvbWVzb24vaXNzdWVzLzExNTgxCisgICMKKyAgaWYgZm91bmQKKyAgICBo ZWFkZXJfbWFjcm9zICs9IHt2YXJuYW1lOiB0cnVlfQorICBlbmRpZgogZW5kZm9yZWFjaAogCiAK QEAgLTMyNTEsMTcgKzMyNjIsMTggQEAgbGlicHFfZGVwcyArPSBbCiAKICAgZ3NzYXBpLAogICBs ZGFwX3IsCi0gICMgWFhYIGxpYmN1cmwgbXVzdCBsaW5rIGFmdGVyIGxpYmdzc2FwaV9rcmI1IG9u IEZyZWVCU0QgdG8gYXZvaWQgc2VnZmF1bHRzCi0gICMgZHVyaW5nIGdzc19hY3F1aXJlX2NyZWQo KS4gVGhpcyBpcyBwb3NzaWJseSByZWxhdGVkIHRvIEN1cmwncyBIZWltZGFsCi0gICMgZGVwZW5k ZW5jeSBvbiB0aGF0IHBsYXRmb3JtPwotICBsaWJjdXJsLAogICBsaWJpbnRsLAogICBzc2wsCiBd CiAKK2xpYnBxX29hdXRoX2RlcHMgKz0gWworICBsaWJjdXJsLAorXQorCiBzdWJkaXIoJ3NyYy9p bnRlcmZhY2VzL2xpYnBxJykKLSMgZmVfdXRpbHMgZGVwZW5kcyBvbiBsaWJwcQorIyBmZV91dGls cyBhbmQgbGlicHEtb2F1dGggZGVwZW5kcyBvbiBsaWJwcQogc3ViZGlyKCdzcmMvZmVfdXRpbHMn KQorc3ViZGlyKCdzcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aCcpCiAKICMgZm9yIGZyb250ZW5k IGJpbmFyaWVzCiBmcm9udGVuZF9jb2RlID0gZGVjbGFyZV9kZXBlbmRlbmN5KApkaWZmIC0tZ2l0 IGEvc3JjL01ha2VmaWxlLmdsb2JhbC5pbiBiL3NyYy9NYWtlZmlsZS5nbG9iYWwuaW4KaW5kZXgg NzM3YjJkZDE4NjkuLmViOWI1ZGU3NWI0IDEwMDY0NAotLS0gYS9zcmMvTWFrZWZpbGUuZ2xvYmFs LmluCisrKyBiL3NyYy9NYWtlZmlsZS5nbG9iYWwuaW4KQEAgLTM0Myw2ICszNDMsOSBAQCBwZXJs X2VtYmVkX2xkZmxhZ3MJPSBAcGVybF9lbWJlZF9sZGZsYWdzQAogCiBBV0sJPSBAQVdLQAogTE5f Uwk9IEBMTl9TQAorTElCQ1VSTF9DUFBGTEFHUyA9IEBMSUJDVVJMX0NQUEZMQUdTQAorTElCQ1VS TF9MREZMQUdTID0gQExJQkNVUkxfTERGTEFHU0AKK0xJQkNVUkxfTERMSUJTID0gQExJQkNVUkxf TERMSUJTQAogTVNHRk1UICA9IEBNU0dGTVRACiBNU0dGTVRfRkxBR1MgPSBATVNHRk1UX0ZMQUdT QAogTVNHTUVSR0UgPSBATVNHTUVSR0VACmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9NYWtl ZmlsZSBiL3NyYy9pbnRlcmZhY2VzL01ha2VmaWxlCmluZGV4IDdkNTZiMjlkMjhmLi5lNjgyMmNh YTIwNiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvTWFrZWZpbGUKKysrIGIvc3JjL2ludGVy ZmFjZXMvTWFrZWZpbGUKQEAgLTE0LDcgKzE0LDE5IEBAIGluY2x1ZGUgJCh0b3BfYnVpbGRkaXIp L3NyYy9NYWtlZmlsZS5nbG9iYWwKIAogU1VCRElSUyA9IGxpYnBxIGVjcGcKIAoraWZlcSAoJCh3 aXRoX2xpYmN1cmwpLCB5ZXMpCitTVUJESVJTICs9IGxpYnBxLW9hdXRoCitlbHNlCitBTFdBWVNf U1VCRElSUyArPSBsaWJwcS1vYXV0aAorZW5kaWYKKwogJChyZWN1cnNlKQorJChyZWN1cnNlX2Fs d2F5cykKIAogYWxsLWVjcGctcmVjdXJzZTogYWxsLWxpYnBxLXJlY3Vyc2UKIGluc3RhbGwtZWNw Zy1yZWN1cnNlOiBpbnN0YWxsLWxpYnBxLXJlY3Vyc2UKKworaWZlcSAoJCh3aXRoX2xpYmN1cmwp LCB5ZXMpCithbGwtbGlicHEtb2F1dGgtcmVjdXJzZTogYWxsLWxpYnBxLXJlY3Vyc2UKK2luc3Rh bGwtbGlicHEtb2F1dGgtcmVjdXJzZTogaW5zdGFsbC1saWJwcS1yZWN1cnNlCitlbmRpZgpkaWZm IC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgvTWFrZWZpbGUgYi9zcmMvaW50ZXJm YWNlcy9saWJwcS1vYXV0aC9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uOGVkNWE2YTM5YzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW50ZXJmYWNlcy9s aWJwcS1vYXV0aC9NYWtlZmlsZQpAQCAtMCwwICsxLDU1IEBACisjLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IworIyBNYWtlZmlsZSBmb3IgbGlicHEtb2F1dGgKKyMKKyMgUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk2LTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisjIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxp Zm9ybmlhCisjCisjIHNyYy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRoL01ha2VmaWxlCisjCisjLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorCitzdWJkaXIgPSBzcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aAordG9w X2J1aWxkZGlyID0gLi4vLi4vLi4KK2luY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL3NyYy9NYWtlZmls ZS5nbG9iYWwKKworUEdGSUxFREVTQyA9ICJsaWJwcS1vYXV0aCAtIGRldmljZSBhdXRob3JpemF0 aW9uIE9BdXRoIHN1cHBvcnQiCisKKyMgVGhpcyBpcyBhbiBpbnRlcm5hbCBtb2R1bGU7IHdlIGRv bid0IHdhbnQgYW4gU09OQU1FIGFuZCB0aGVyZWZvcmUgZG8gbm90IHNldAorIyBTT19NQUpPUl9W RVJTSU9OLgorTkFNRSA9IGxpYnBxLW9hdXRoLSQoTUFKT1JWRVJTSU9OKQorCitvdmVycmlkZSBD UFBGTEFHUyA6PSAtSSQobGlicHFfc3JjZGlyKSAtSSQodG9wX2J1aWxkZGlyKS9zcmMvcG9ydCAk KExJQkNVUkxfQ1BQRkxBR1MpICQoQ1BQRkxBR1MpCisKK09CSlMgPSBcCisJJChXSU4zMlJFUykg XAorCW9hdXRoLWN1cmwubyBcCisJb2F1dGgtdXRpbHMubworCitTSExJQl9MSU5LX0lOVEVSTkFM ID0gJChsaWJwcV9wZ3BvcnRfc2hsaWIpCitTSExJQl9MSU5LID0gJChMSUJDVVJMX0xERkxBR1Mp ICQoTElCQ1VSTF9MRExJQlMpCitTSExJQl9QUkVSRVFTID0gc3VibWFrZS1saWJwcQorU0hMSUJf RVhQT1JUUyA9IGV4cG9ydHMudHh0CisKKyMgRGlzYWJsZSAtYnVuZGxlX2xvYWRlciBvbiBtYWNP Uy4KK0JFX0RMTExJQlMgPQorCisjIE1ha2UgZGVwZW5kZW5jaWVzIG9uIHBnX2NvbmZpZ19wYXRo cy5oIHZpc2libGUgaW4gYWxsIGJ1aWxkcy4KK29hdXRoLWN1cmwubzogb2F1dGgtY3VybC5jICQo dG9wX2J1aWxkZGlyKS9zcmMvcG9ydC9wZ19jb25maWdfcGF0aHMuaAorCiskKHRvcF9idWlsZGRp cikvc3JjL3BvcnQvcGdfY29uZmlnX3BhdGhzLmg6CisJJChNQUtFKSAtQyAkKHRvcF9idWlsZGRp cikvc3JjL3BvcnQgcGdfY29uZmlnX3BhdGhzLmgKKworYWxsOiBhbGwtbGliCisKKyMgU2hhcmVk IGxpYnJhcnkgc3R1ZmYKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9zcmMvTWFrZWZpbGUuc2hsaWIK KworaW5zdGFsbDogYWxsIGluc3RhbGxkaXJzIGluc3RhbGwtbGliCisKK2luc3RhbGxkaXJzOiBp bnN0YWxsZGlycy1saWIKKwordW5pbnN0YWxsOiB1bmluc3RhbGwtbGliCisKK2NsZWFuIGRpc3Rj bGVhbjogY2xlYW4tbGliCisJcm0gLWYgJChPQkpTKQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFj ZXMvbGlicHEtb2F1dGgvUkVBRE1FIGIvc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgvUkVBRE1F Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lZjc0NjYxN2M3MQotLS0g L2Rldi9udWxsCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRoL1JFQURNRQpAQCAtMCww ICsxLDMwIEBACitsaWJwcS1vYXV0aCBpcyBhbiBvcHRpb25hbCBtb2R1bGUgaW1wbGVtZW50aW5n IHRoZSBEZXZpY2UgQXV0aG9yaXphdGlvbiBmbG93IGZvcgorT0F1dGggY2xpZW50cyAoUkZDIDg2 MjgpLiBJdCB3YXMgb3JpZ2luYWxseSBkZXZlbG9wZWQgYXMgcGFydCBvZiBsaWJwcSBjb3JlIGFu ZAorbGF0ZXIgc3BsaXQgb3V0IGFzIGl0cyBvd24gc2hhcmVkIGxpYnJhcnkgaW4gb3JkZXIgdG8g aXNvbGF0ZSBpdHMgZGVwZW5kZW5jeSBvbgorbGliY3VybC4gKEVuZCB1c2VycyB3aG8gZG9uJ3Qg d2FudCB0aGUgQ3VybCBkZXBlbmRlbmN5IGNhbiBzaW1wbHkgY2hvb3NlIG5vdCB0bworaW5zdGFs bCB0aGlzIG1vZHVsZS4pCisKK0lmIGEgY29ubmVjdGlvbiBzdHJpbmcgYWxsb3dzIHRoZSB1c2Ug b2YgT0F1dGgsIHRoZSBzZXJ2ZXIgYXNrcyBmb3IgaXQsIGFuZCBhCitsaWJwcSBjbGllbnQgaGFz IG5vdCBpbnN0YWxsZWQgaXRzIG93biBjdXN0b20gT0F1dGggZmxvdywgbGlicHEgd2lsbCBhdHRl bXB0IHRvCitkZWxheS1sb2FkIHRoaXMgbW9kdWxlIHVzaW5nIGRsb3BlbigpIGFuZCB0aGUgZm9s bG93aW5nIEFCSS4gRmFpbHVyZSB0byBsb2FkCityZXN1bHRzIGluIGEgZmFpbGVkIGNvbm5lY3Rp b24uCisKKz0gTG9hZC1UaW1lIEFCSSA9CisKK1RoaXMgbW9kdWxlIEFCSSBpcyBhbiBpbnRlcm5h bCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsIHNvIGl0J3Mgc3ViamVjdCB0byBjaGFuZ2UKK3dpdGhv dXQgd2FybmluZywgZXZlbiBkdXJpbmcgbWlub3IgcmVsZWFzZXMgKGhvd2V2ZXIgdW5saWtlbHkp LiBUaGUgY29tcGlsZWQKK3ZlcnNpb24gb2YgbGlicHEtb2F1dGggc2hvdWxkIGFsd2F5cyBtYXRj aCB0aGUgY29tcGlsZWQgdmVyc2lvbiBvZiBsaWJwcS4KKworLSBQb3N0Z3Jlc1BvbGxpbmdTdGF0 dXNUeXBlIHBnX2ZlX3J1bl9vYXV0aF9mbG93KFBHY29ubiAqY29ubik7CistIHZvaWQgcGdfZmVf Y2xlYW51cF9vYXV0aF9mbG93KFBHY29ubiAqY29ubik7CisKK3BnX2ZlX3J1bl9vYXV0aF9mbG93 IGFuZCBwZ19mZV9jbGVhbnVwX29hdXRoX2Zsb3cgYXJlIGltcGxlbWVudGF0aW9ucyBvZgorY29u bi0+YXN5bmNfYXV0aCBhbmQgY29ubi0+Y2xlYW51cF9hc3luY19hdXRoLCByZXNwZWN0aXZlbHku CisKKy0gdm9pZCBsaWJwcV9vYXV0aF9pbml0KHBndGhyZWFkbG9ja190IHRocmVhZGxvY2ssCisJ CQkJCQlsaWJwcV9nZXR0ZXh0X2Z1bmMgZ2V0dGV4dF9pbXBsLAorCQkJCQkJY29ubl9lcnJvck1l c3NhZ2VfZnVuYyBlcnJtc2dfaW1wbCk7CisKK0F0IHRoZSBtb21lbnQsIHBnX2ZlX3J1bl9vYXV0 aF9mbG93KCkgcmVsaWVzIG9uIGxpYnBxJ3MgcGdfZ190aHJlYWRsb2NrIGFuZAorbGlicHFfZ2V0 dGV4dCgpLCB3aGljaCBtdXN0IGJlIGluamVjdGVkIGJ5IGxpYnBxIGJlZm9yZSB0aGUgZmxvdyBp cyBydW4uIEl0IGFsc28KK3JlbGllcyBvbiBsaWJwcSB0byBleHBvc2UgY29ubi0+ZXJyb3JNZXNz YWdlLCB2aWEgYW4gZXJybXNnX2ltcGwuCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJw cS1vYXV0aC9leHBvcnRzLnR4dCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRoL2V4cG9ydHMu dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42ODkxYTgzZGJmOQot LS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRoL2V4cG9ydHMudHh0 CkBAIC0wLDAgKzEsNCBAQAorIyBzcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9leHBvcnRzLnR4 dAorbGlicHFfb2F1dGhfaW5pdCAgICAgICAgICAxCitwZ19mZV9ydW5fb2F1dGhfZmxvdyAgICAg IDIKK3BnX2ZlX2NsZWFudXBfb2F1dGhfZmxvdyAgMwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFj ZXMvbGlicHEtb2F1dGgvbWVzb24uYnVpbGQgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9t ZXNvbi5idWlsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmYxODFm ZDViOTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9tZXNv bi5idWlsZApAQCAtMCwwICsxLDQyIEBACisjIENvcHlyaWdodCAoYykgMjAyMi0yMDI1LCBQb3N0 Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCitvYXV0aF9mbG93X3N1cHBvcnRlZCA9 ICgKKyAgbGliY3VybC5mb3VuZCgpCisgIGFuZCAoaGVhZGVyX21hY3Jvcy5oYXNfa2V5KCdIQVZF X1NZU19FVkVOVF9IJykKKyAgICAgICBvciBoZWFkZXJfbWFjcm9zLmhhc19rZXkoJ0hBVkVfU1lT X0VQT0xMX0gnKSkKKykKKworaWYgbGliY3VybG9wdC5kaXNhYmxlZCgpCisgIHN1YmRpcl9kb25l KCkKK2VsaWYgbm90IG9hdXRoX2Zsb3dfc3VwcG9ydGVkCisgIGlmIGxpYmN1cmxvcHQuZW5hYmxl ZCgpCisgICAgZXJyb3IoJ2NsaWVudCBPQXV0aCBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxh dGZvcm0nKQorICBlbmRpZgorICBzdWJkaXJfZG9uZSgpCitlbmRpZgorCitsaWJwcV9vYXV0aF9z b3VyY2VzID0gZmlsZXMoCisgICdvYXV0aC1jdXJsLmMnLAorICAnb2F1dGgtdXRpbHMuYycsCisp CisKK2V4cG9ydF9maWxlID0gY3VzdG9tX3RhcmdldCgnbGlicHEtb2F1dGguZXhwb3J0cycsCisg IGt3YXJnczogZ2VuX2V4cG9ydF9rd2FyZ3MsCispCisKKyMgcG9ydCBuZWVkcyB0byBiZSBpbiBp bmNsdWRlIHBhdGggZHVlIHRvIHB0aHJlYWQtd2luMzIuaAorbGlicHFfb2F1dGhfaW5jID0gaW5j bHVkZV9kaXJlY3RvcmllcygnLicsICcuLi9saWJwcScsICcuLi8uLi9wb3J0JykKKworIyBUaGlz IGlzIGFuIGludGVybmFsIG1vZHVsZTsgd2UgZG9uJ3Qgd2FudCBhbiBTT05BTUUgYW5kIHRoZXJl Zm9yZSBkbyBub3Qgc2V0CisjIFNPX01BSk9SX1ZFUlNJT04uCitsaWJwcV9vYXV0aF9uYW1lID0g J2xpYnBxLW9hdXRoLUAwQCcuZm9ybWF0KHBnX3ZlcnNpb25fbWFqb3IpCisKK2xpYnBxX29hdXRo X3NvID0gc2hhcmVkX21vZHVsZShsaWJwcV9vYXV0aF9uYW1lLAorICBsaWJwcV9vYXV0aF9zb3Vy Y2VzLAorICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBbbGlicHFfb2F1dGhfaW5jLCBwb3N0Z3Jlc19p bmNdLAorICBjX3BjaDogcGNoX3Bvc3RncmVzX2ZlX2gsCisgIGRlcGVuZGVuY2llczogW2Zyb250 ZW5kX3NobGliX2NvZGUsIGxpYnBxLCBsaWJwcV9vYXV0aF9kZXBzXSwKKyAgbGlua19kZXBlbmRz OiBleHBvcnRfZmlsZSwKKyAgbGlua19hcmdzOiBleHBvcnRfZm10LmZvcm1hdChleHBvcnRfZmls ZS5mdWxsX3BhdGgoKSksCisgIGt3YXJnczogZGVmYXVsdF9saWJfYXJncywKKykKZGlmZiAtLWdp dCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGgtb2F1dGgtY3VybC5jIGIvc3JjL2ludGVy ZmFjZXMvbGlicHEtb2F1dGgvb2F1dGgtY3VybC5jCnNpbWlsYXJpdHkgaW5kZXggOTglCnJlbmFt ZSBmcm9tIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGgtb2F1dGgtY3VybC5jCnJlbmFtZSB0 byBzcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC1jdXJsLmMKaW5kZXggY2Q5YzAzMjNi YjYuLmQ1MjEyNTQxNWJjIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRo LW9hdXRoLWN1cmwuYworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC1jdXJs LmMKQEAgLTEsNiArMSw2IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCi0gKiBmZS1hdXRoLW9h dXRoLWN1cmwuYworICogb2F1dGgtY3VybC5jCiAgKgkgICBUaGUgbGliY3VybCBpbXBsZW1lbnRh dGlvbiBvZiBPQXV0aC9PSURDIGF1dGhlbnRpY2F0aW9uLCB1c2luZyB0aGUKICAqCSAgIE9BdXRo IERldmljZSBBdXRob3JpemF0aW9uIEdyYW50IChSRkMgODYyOCkuCiAgKgpAQCAtOCw3ICs4LDcg QEAKICAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVy c2l0eSBvZiBDYWxpZm9ybmlhCiAgKgogICogSURFTlRJRklDQVRJT04KLSAqCSAgc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtYXV0aC1vYXV0aC1jdXJsLmMKKyAqCSAgc3JjL2ludGVyZmFjZXMvbGli cHEtb2F1dGgvb2F1dGgtY3VybC5jCiAgKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KQEAgLTE3 LDIwICsxNywyMyBAQAogCiAjaW5jbHVkZSA8Y3VybC9jdXJsLmg+CiAjaW5jbHVkZSA8bWF0aC5o PgotI2lmZGVmIEhBVkVfU1lTX0VQT0xMX0gKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2lmIGRl ZmluZWQoSEFWRV9TWVNfRVBPTExfSCkKICNpbmNsdWRlIDxzeXMvZXBvbGwuaD4KICNpbmNsdWRl IDxzeXMvdGltZXJmZC5oPgotI2VuZGlmCi0jaWZkZWYgSEFWRV9TWVNfRVZFTlRfSAorI2VsaWYg ZGVmaW5lZChIQVZFX1NZU19FVkVOVF9IKQogI2luY2x1ZGUgPHN5cy9ldmVudC5oPgorI2Vsc2UK KyNlcnJvciBsaWJwcS1vYXV0aCBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0KICNl bmRpZgotI2luY2x1ZGUgPHVuaXN0ZC5oPgogCiAjaW5jbHVkZSAiY29tbW9uL2pzb25hcGkuaCIK ICNpbmNsdWRlICJmZS1hdXRoLmgiCiAjaW5jbHVkZSAiZmUtYXV0aC1vYXV0aC5oIgotI2luY2x1 ZGUgImxpYnBxLWludC5oIgogI2luY2x1ZGUgIm1iL3BnX3djaGFyLmgiCisjaW5jbHVkZSAib2F1 dGgtY3VybC5oIgorI2luY2x1ZGUgIm9hdXRoLXV0aWxzLmgiCiAKIC8qCiAgKiBJdCdzIGdlbmVy YWxseSBwcnVkZW50IHRvIHNldCBhIG1heGltdW0gcmVzcG9uc2Ugc2l6ZSB0byBidWZmZXIgaW4g bWVtb3J5LApAQCAtMTExMCw3ICsxMTEzLDcgQEAgcGFyc2VfYWNjZXNzX3Rva2VuKHN0cnVjdCBh c3luY19jdHggKmFjdHgsIHN0cnVjdCB0b2tlbiAqdG9rKQogc3RhdGljIGJvb2wKIHNldHVwX211 bHRpcGxleGVyKHN0cnVjdCBhc3luY19jdHggKmFjdHgpCiB7Ci0jaWZkZWYgSEFWRV9TWVNfRVBP TExfSAorI2lmIGRlZmluZWQoSEFWRV9TWVNfRVBPTExfSCkKIAlzdHJ1Y3QgZXBvbGxfZXZlbnQg ZXYgPSB7LmV2ZW50cyA9IEVQT0xMSU59OwogCiAJYWN0eC0+bXV4ID0gZXBvbGxfY3JlYXRlMShF UE9MTF9DTE9FWEVDKTsKQEAgLTExMzQsOCArMTEzNyw3IEBAIHNldHVwX211bHRpcGxleGVyKHN0 cnVjdCBhc3luY19jdHggKmFjdHgpCiAJfQogCiAJcmV0dXJuIHRydWU7Ci0jZW5kaWYKLSNpZmRl ZiBIQVZFX1NZU19FVkVOVF9ICisjZWxpZiBkZWZpbmVkKEhBVkVfU1lTX0VWRU5UX0gpCiAJYWN0 eC0+bXV4ID0ga3F1ZXVlKCk7CiAJaWYgKGFjdHgtPm11eCA8IDApCiAJewpAQCAtMTE1OCwxMCAr MTE2MCw5IEBAIHNldHVwX211bHRpcGxleGVyKHN0cnVjdCBhc3luY19jdHggKmFjdHgpCiAJfQog CiAJcmV0dXJuIHRydWU7CisjZWxzZQorI2Vycm9yIHNldHVwX211bHRpcGxleGVyIGlzIG5vdCBp bXBsZW1lbnRlZCBvbiB0aGlzIHBsYXRmb3JtCiAjZW5kaWYKLQotCWFjdHhfZXJyb3IoYWN0eCwg ImxpYnBxIGRvZXMgbm90IHN1cHBvcnQgdGhlIERldmljZSBBdXRob3JpemF0aW9uIGZsb3cgb24g dGhpcyBwbGF0Zm9ybSIpOwotCXJldHVybiBmYWxzZTsKIH0KIAogLyoKQEAgLTExNzQsNyArMTE3 NSw3IEBAIHJlZ2lzdGVyX3NvY2tldChDVVJMICpjdXJsLCBjdXJsX3NvY2tldF90IHNvY2tldCwg aW50IHdoYXQsIHZvaWQgKmN0eCwKIHsKIAlzdHJ1Y3QgYXN5bmNfY3R4ICphY3R4ID0gY3R4Owog Ci0jaWZkZWYgSEFWRV9TWVNfRVBPTExfSAorI2lmIGRlZmluZWQoSEFWRV9TWVNfRVBPTExfSCkK IAlzdHJ1Y3QgZXBvbGxfZXZlbnQgZXYgPSB7MH07CiAJaW50CQkJcmVzOwogCWludAkJCW9wID0g RVBPTExfQ1RMX0FERDsKQEAgLTEyMzAsOCArMTIzMSw3IEBAIHJlZ2lzdGVyX3NvY2tldChDVVJM ICpjdXJsLCBjdXJsX3NvY2tldF90IHNvY2tldCwgaW50IHdoYXQsIHZvaWQgKmN0eCwKIAl9CiAK IAlyZXR1cm4gMDsKLSNlbmRpZgotI2lmZGVmIEhBVkVfU1lTX0VWRU5UX0gKKyNlbGlmIGRlZmlu ZWQoSEFWRV9TWVNfRVZFTlRfSCkKIAlzdHJ1Y3Qga2V2ZW50IGV2WzJdID0gezB9OwogCXN0cnVj dCBrZXZlbnQgZXZfb3V0WzJdOwogCXN0cnVjdCB0aW1lc3BlYyB0aW1lb3V0ID0gezB9OwpAQCAt MTMxMiwxMCArMTMxMiw5IEBAIHJlZ2lzdGVyX3NvY2tldChDVVJMICpjdXJsLCBjdXJsX3NvY2tl dF90IHNvY2tldCwgaW50IHdoYXQsIHZvaWQgKmN0eCwKIAl9CiAKIAlyZXR1cm4gMDsKKyNlbHNl CisjZXJyb3IgcmVnaXN0ZXJfc29ja2V0IGlzIG5vdCBpbXBsZW1lbnRlZCBvbiB0aGlzIHBsYXRm b3JtCiAjZW5kaWYKLQotCWFjdHhfZXJyb3IoYWN0eCwgImxpYnBxIGRvZXMgbm90IHN1cHBvcnQg bXVsdGlwbGV4ZXIgc29ja2V0cyBvbiB0aGlzIHBsYXRmb3JtIik7Ci0JcmV0dXJuIC0xOwogfQog CiAvKgpAQCAtMTMzNCw3ICsxMzMzLDcgQEAgcmVnaXN0ZXJfc29ja2V0KENVUkwgKmN1cmwsIGN1 cmxfc29ja2V0X3Qgc29ja2V0LCBpbnQgd2hhdCwgdm9pZCAqY3R4LAogc3RhdGljIGJvb2wKIHNl dF90aW1lcihzdHJ1Y3QgYXN5bmNfY3R4ICphY3R4LCBsb25nIHRpbWVvdXQpCiB7Ci0jaWYgSEFW RV9TWVNfRVBPTExfSAorI2lmIGRlZmluZWQoSEFWRV9TWVNfRVBPTExfSCkKIAlzdHJ1Y3QgaXRp bWVyc3BlYyBzcGVjID0gezB9OwogCiAJaWYgKHRpbWVvdXQgPCAwKQpAQCAtMTM2Myw4ICsxMzYy LDcgQEAgc2V0X3RpbWVyKHN0cnVjdCBhc3luY19jdHggKmFjdHgsIGxvbmcgdGltZW91dCkKIAl9 CiAKIAlyZXR1cm4gdHJ1ZTsKLSNlbmRpZgotI2lmZGVmIEhBVkVfU1lTX0VWRU5UX0gKKyNlbGlm IGRlZmluZWQoSEFWRV9TWVNfRVZFTlRfSCkKIAlzdHJ1Y3Qga2V2ZW50IGV2OwogCiAjaWZkZWYg X19OZXRCU0RfXwpAQCAtMTQxOSwxMCArMTQxNyw5IEBAIHNldF90aW1lcihzdHJ1Y3QgYXN5bmNf Y3R4ICphY3R4LCBsb25nIHRpbWVvdXQpCiAJfQogCiAJcmV0dXJuIHRydWU7CisjZWxzZQorI2Vy cm9yIHNldF90aW1lciBpcyBub3QgaW1wbGVtZW50ZWQgb24gdGhpcyBwbGF0Zm9ybQogI2VuZGlm Ci0KLQlhY3R4X2Vycm9yKGFjdHgsICJsaWJwcSBkb2VzIG5vdCBzdXBwb3J0IHRpbWVycyBvbiB0 aGlzIHBsYXRmb3JtIik7Ci0JcmV0dXJuIGZhbHNlOwogfQogCiAvKgpAQCAtMTQzMyw3ICsxNDMw LDcgQEAgc2V0X3RpbWVyKHN0cnVjdCBhc3luY19jdHggKmFjdHgsIGxvbmcgdGltZW91dCkKIHN0 YXRpYyBpbnQKIHRpbWVyX2V4cGlyZWQoc3RydWN0IGFzeW5jX2N0eCAqYWN0eCkKIHsKLSNpZiBI QVZFX1NZU19FUE9MTF9ICisjaWYgZGVmaW5lZChIQVZFX1NZU19FUE9MTF9IKQogCXN0cnVjdCBp dGltZXJzcGVjIHNwZWMgPSB7MH07CiAKIAlpZiAodGltZXJmZF9nZXR0aW1lKGFjdHgtPnRpbWVy ZmQsICZzcGVjKSA8IDApCkBAIC0xNDUzLDggKzE0NTAsNyBAQCB0aW1lcl9leHBpcmVkKHN0cnVj dCBhc3luY19jdHggKmFjdHgpCiAJLyogSWYgdGhlIHJlbWFpbmluZyB0aW1lIHRvIGV4cGlyYXRp b24gaXMgemVybywgd2UncmUgZG9uZS4gKi8KIAlyZXR1cm4gKHNwZWMuaXRfdmFsdWUudHZfc2Vj ID09IDAKIAkJCSYmIHNwZWMuaXRfdmFsdWUudHZfbnNlYyA9PSAwKTsKLSNlbmRpZgotI2lmZGVm IEhBVkVfU1lTX0VWRU5UX0gKKyNlbGlmIGRlZmluZWQoSEFWRV9TWVNfRVZFTlRfSCkKIAlpbnQJ CQlyZXM7CiAKIAkvKiBJcyB0aGUgdGltZXIgcXVldWUgcmVhZHk/ICovCkBAIC0xNDY2LDEwICsx NDYyLDkgQEAgdGltZXJfZXhwaXJlZChzdHJ1Y3QgYXN5bmNfY3R4ICphY3R4KQogCX0KIAogCXJl dHVybiAocmVzID4gMCk7CisjZWxzZQorI2Vycm9yIHRpbWVyX2V4cGlyZWQgaXMgbm90IGltcGxl bWVudGVkIG9uIHRoaXMgcGxhdGZvcm0KICNlbmRpZgotCi0JYWN0eF9lcnJvcihhY3R4LCAibGli cHEgZG9lcyBub3Qgc3VwcG9ydCB0aW1lcnMgb24gdGhpcyBwbGF0Zm9ybSIpOwotCXJldHVybiAt MTsKIH0KIAogLyoKQEAgLTI0ODcsOCArMjQ4Miw5IEBAIHByb21wdF91c2VyKHN0cnVjdCBhc3lu Y19jdHggKmFjdHgsIFBHY29ubiAqY29ubikKIAkJLnZlcmlmaWNhdGlvbl91cmlfY29tcGxldGUg PSBhY3R4LT5hdXRoei52ZXJpZmljYXRpb25fdXJpX2NvbXBsZXRlLAogCQkuZXhwaXJlc19pbiA9 IGFjdHgtPmF1dGh6LmV4cGlyZXNfaW4sCiAJfTsKKwlQUWF1dGhEYXRhSG9va190eXBlIGhvb2sg PSBQUWdldEF1dGhEYXRhSG9vaygpOwogCi0JcmVzID0gUFFhdXRoRGF0YUhvb2soUFFBVVRIREFU QV9QUk9NUFRfT0FVVEhfREVWSUNFLCBjb25uLCAmcHJvbXB0KTsKKwlyZXMgPSBob29rKFBRQVVU SERBVEFfUFJPTVBUX09BVVRIX0RFVklDRSwgY29ubiwgJnByb21wdCk7CiAKIAlpZiAoIXJlcykK IAl7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC1jdXJsLmgg Yi9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC1jdXJsLmgKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI0OGQwNDI0YWQwCi0tLSAvZGV2L251bGwKKysrIGIv c3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgvb2F1dGgtY3VybC5oCkBAIC0wLDAgKzEsMjQgQEAK Ky8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIG9hdXRoLWN1cmwuaAorICoKKyAqCSAgRGVmaW5p dGlvbnMgZm9yIE9BdXRoIERldmljZSBBdXRob3JpemF0aW9uIG1vZHVsZQorICoKKyAqIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVu dCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBV bml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0 aC9vYXV0aC1jdXJsLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaWZuZGVmIE9B VVRIX0NVUkxfSAorI2RlZmluZSBPQVVUSF9DVVJMX0gKKworI2luY2x1ZGUgImxpYnBxLWZlLmgi CisKKy8qIEV4cG9ydGVkIGFzeW5jLWF1dGggY2FsbGJhY2tzLiAqLworZXh0ZXJuIFBHRExMRVhQ T1JUIFBvc3RncmVzUG9sbGluZ1N0YXR1c1R5cGUgcGdfZmVfcnVuX29hdXRoX2Zsb3coUEdjb25u ICpjb25uKTsKK2V4dGVybiBQR0RMTEVYUE9SVCB2b2lkIHBnX2ZlX2NsZWFudXBfb2F1dGhfZmxv dyhQR2Nvbm4gKmNvbm4pOworCisjZW5kaWYJCQkJCQkJLyogT0FVVEhfQ1VSTF9IICovCmRpZmYg LS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC11dGlscy5jIGIvc3JjL2lu dGVyZmFjZXMvbGlicHEtb2F1dGgvb2F1dGgtdXRpbHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uMmJkYmY5MDQ3NDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW50 ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC11dGlscy5jCkBAIC0wLDAgKzEsMjAyIEBACisvKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqCisgKiBvYXV0aC11dGlscy5jCisgKgorICoJICAiR2x1ZSIgaGVs cGVycyBwcm92aWRpbmcgYSBjb3B5IG9mIHNvbWUgaW50ZXJuYWwgQVBJcyBmcm9tIGxpYnBxLiBB dAorICoJICBzb21lIHBvaW50IGluIHRoZSBmdXR1cmUsIHdlIG1pZ2h0IGJlIGFibGUgdG8gZGVk dXBsaWNhdGUuCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjUsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIElE RU5USUZJQ0FUSU9OCisgKgkgIHNyYy9pbnRlcmZhY2VzL2xpYnBxLW9hdXRoL29hdXRoLXV0aWxz LmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXNfZmUu aCIKKworI2luY2x1ZGUgPHNpZ25hbC5oPgorCisjaW5jbHVkZSAibGlicHEtaW50LmgiCisjaW5j bHVkZSAib2F1dGgtdXRpbHMuaCIKKworc3RhdGljIGxpYnBxX2dldHRleHRfZnVuYyBsaWJwcV9n ZXR0ZXh0X2ltcGw7CitzdGF0aWMgY29ubl9lcnJvck1lc3NhZ2VfZnVuYyBjb25uX2Vycm9yTWVz c2FnZTsKKworcGd0aHJlYWRsb2NrX3QgcGdfZ190aHJlYWRsb2NrOworCisvKi0KKyAqIEluaXRp YWxpemVzIGxpYnBxLW9hdXRoIGJ5IHNldHRpbmcgbmVjZXNzYXJ5IGNhbGxiYWNrcy4KKyAqCisg KiBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiByZWxpZXMgb24gdGhlIGZvbGxvd2luZyBwcml2 YXRlIGltcGxlbWVudGF0aW9uCisgKiBkZXRhaWxzIG9mIGxpYnBxOgorICoKKyAqIC0gcGdfZ190 aHJlYWRsb2NrOiBwcm90ZWN0cyBsaWJjdXJsIGluaXRpYWxpemF0aW9uIGlmIHRoZSB1bmRlcmx5 aW5nIEN1cmwKKyAqICAgaW5zdGFsbGF0aW9uIGlzIG5vdCB0aHJlYWRzYWZlCisgKgorICogLSBs aWJwcV9nZXR0ZXh0OiB0cmFuc2xhdGVzIGVycm9yIG1lc3NhZ2VzIHVzaW5nIGxpYnBxJ3MgbWVz c2FnZSBkb21haW4KKyAqCisgKiAtIGNvbm4tPmVycm9yTWVzc2FnZTogaG9sZHMgdHJhbnNsYXRl ZCBlcnJvcnMgZm9yIHRoZSBjb25uZWN0aW9uLiBUaGlzIGlzCisgKiAgIGhhbmRsZWQgdGhyb3Vn aCBhIHRyYW5zbGF0aW9uIHNoaW0sIHdoaWNoIGF2b2lkcyBlaXRoZXIgZGVwZW5kaW5nIG9uIHRo ZQorICogICBvZmZzZXQgb2YgdGhlIGVycm9yTWVzc2FnZSBpbiBQR2Nvbm4sIG9yIG5lZWRpbmcg dG8gZXhwb3J0IHRoZSB2YXJpYWRpYworICogICBsaWJwcV9hcHBlbmRfY29ubl9lcnJvcigpLgor ICovCit2b2lkCitsaWJwcV9vYXV0aF9pbml0KHBndGhyZWFkbG9ja190IHRocmVhZGxvY2tfaW1w bCwKKwkJCQkgbGlicHFfZ2V0dGV4dF9mdW5jIGdldHRleHRfaW1wbCwKKwkJCQkgY29ubl9lcnJv ck1lc3NhZ2VfZnVuYyBlcnJtc2dfaW1wbCkKK3sKKwlwZ19nX3RocmVhZGxvY2sgPSB0aHJlYWRs b2NrX2ltcGw7CisJbGlicHFfZ2V0dGV4dF9pbXBsID0gZ2V0dGV4dF9pbXBsOworCWNvbm5fZXJy b3JNZXNzYWdlID0gZXJybXNnX2ltcGw7Cit9CisKKy8qCisgKiBBcHBlbmQgYSBmb3JtYXR0ZWQg c3RyaW5nIHRvIHRoZSBlcnJvciBtZXNzYWdlIGJ1ZmZlciBvZiB0aGUgZ2l2ZW4KKyAqIGNvbm5l Y3Rpb24sIGFmdGVyIHRyYW5zbGF0aW5nIGl0LiAgVGhpcyBpcyBhIGNvcHkgb2YgbGlicHEncyBp bnRlcm5hbCBBUEkuCisgKi8KK3ZvaWQKK2xpYnBxX2FwcGVuZF9jb25uX2Vycm9yKFBHY29ubiAq Y29ubiwgY29uc3QgY2hhciAqZm10LC4uLikKK3sKKwlpbnQJCQlzYXZlX2Vycm5vID0gZXJybm87 CisJYm9vbAkJZG9uZTsKKwl2YV9saXN0CQlhcmdzOworCVBRRXhwQnVmZmVyIGVycm9yTWVzc2Fn ZSA9IGNvbm5fZXJyb3JNZXNzYWdlKGNvbm4pOworCisJQXNzZXJ0KGZtdFtzdHJsZW4oZm10KSAt IDFdICE9ICdcbicpOworCisJaWYgKFBRRXhwQnVmZmVyQnJva2VuKGVycm9yTWVzc2FnZSkpCisJ CXJldHVybjsJCQkJCS8qIGFscmVhZHkgZmFpbGVkICovCisKKwkvKiBMb29wIGluIGNhc2Ugd2Ug aGF2ZSB0byByZXRyeSBhZnRlciBlbmxhcmdpbmcgdGhlIGJ1ZmZlci4gKi8KKwlkbworCXsKKwkJ ZXJybm8gPSBzYXZlX2Vycm5vOworCQl2YV9zdGFydChhcmdzLCBmbXQpOworCQlkb25lID0gYXBw ZW5kUFFFeHBCdWZmZXJWQShlcnJvck1lc3NhZ2UsIGxpYnBxX2dldHRleHQoZm10KSwgYXJncyk7 CisJCXZhX2VuZChhcmdzKTsKKwl9IHdoaWxlICghZG9uZSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZl ckNoYXIoZXJyb3JNZXNzYWdlLCAnXG4nKTsKK30KKworI2lmZGVmIEVOQUJMRV9OTFMKKworLyoK KyAqIEEgc2hpbSB0aGF0IGRlZmVycyB0byB0aGUgYWN0dWFsIGxpYnBxX2dldHRleHQoKS4KKyAq LworY2hhciAqCitsaWJwcV9nZXR0ZXh0KGNvbnN0IGNoYXIgKm1zZ2lkKQoreworCWlmICghbGli cHFfZ2V0dGV4dF9pbXBsKQorCXsKKwkJLyoKKwkJICogUG9zc2libGUgaWYgdGhlIGxpYnBxIGJ1 aWxkIGRvZXNuJ3QgZW5hYmxlIE5MUy4gVGhhdCdzIGEgY29uY2VybmluZworCQkgKiBtaXNtYXRj aCwgYnV0IGluIHRoaXMgcGFydGljdWxhciBjYXNlIHdlIGNhbiBoYW5kbGUgaXQuIFRyeSB0byB3 YXJuCisJCSAqIGEgZGV2ZWxvcGVyIHdpdGggYW4gYXNzZXJ0aW9uLCB0aG91Z2guCisJCSAqLwor CQlBc3NlcnQoZmFsc2UpOworCisJCS8qCisJCSAqIE5vdGUgdGhhdCBjYWxsZXJzIG9mIGxpYnBx X2dldHRleHQoKSBoYXZlIHRvIHRyZWF0IHRoZSByZXR1cm4gdmFsdWUKKwkJICogYXMgaWYgaXQg d2VyZSBjb25zdCwgYmVjYXVzZSBidWlsZHMgd2l0aG91dCBOTFMgc2ltcGx5IHBhc3MgdGhyb3Vn aAorCQkgKiB0aGVpciBhcmd1bWVudC4KKwkJICovCisJCXJldHVybiB1bmNvbnN0aWZ5KGNoYXIg KiwgbXNnaWQpOworCX0KKworCXJldHVybiBsaWJwcV9nZXR0ZXh0X2ltcGwobXNnaWQpOworfQor CisjZW5kaWYJCQkJCQkJLyogRU5BQkxFX05MUyAqLworCisvKgorICogUmV0dXJucyB0cnVlIGlm IHRoZSBQR09BVVRIREVCVUc9VU5TQUZFIGZsYWcgaXMgc2V0IGluIHRoZSBlbnZpcm9ubWVudC4K KyAqLworYm9vbAorb2F1dGhfdW5zYWZlX2RlYnVnZ2luZ19lbmFibGVkKHZvaWQpCit7CisJY29u c3QgY2hhciAqZW52ID0gZ2V0ZW52KCJQR09BVVRIREVCVUciKTsKKworCXJldHVybiAoZW52ICYm IHN0cmNtcChlbnYsICJVTlNBRkUiKSA9PSAwKTsKK30KKworLyoKKyAqIER1cGxpY2F0ZSBTT0NL X0VSUk5PKiBkZWZpbml0aW9ucyBmcm9tIGxpYnBxLWludC5oLCBmb3IgdXNlIGJ5CisgKiBwcV9i bG9jay9yZXNldF9zaWdwaXBlKCkuCisgKi8KKyNpZmRlZiBXSU4zMgorI2RlZmluZSBTT0NLX0VS Uk5PIChXU0FHZXRMYXN0RXJyb3IoKSkKKyNkZWZpbmUgU09DS19FUlJOT19TRVQoZSkgV1NBU2V0 TGFzdEVycm9yKGUpCisjZWxzZQorI2RlZmluZSBTT0NLX0VSUk5PIGVycm5vCisjZGVmaW5lIFNP Q0tfRVJSTk9fU0VUKGUpIChlcnJubyA9IChlKSkKKyNlbmRpZgorCisvKgorICoJQmxvY2sgU0lH UElQRSBmb3IgdGhpcyB0aHJlYWQuIFRoaXMgaXMgYSBjb3B5IG9mIGxpYnBxJ3MgaW50ZXJuYWwg QVBJLgorICovCitpbnQKK3BxX2Jsb2NrX3NpZ3BpcGUoc2lnc2V0X3QgKm9zaWdzZXQsIGJvb2wg KnNpZ3BpcGVfcGVuZGluZykKK3sKKwlzaWdzZXRfdAlzaWdwaXBlX3NpZ3NldDsKKwlzaWdzZXRf dAlzaWdzZXQ7CisKKwlzaWdlbXB0eXNldCgmc2lncGlwZV9zaWdzZXQpOworCXNpZ2FkZHNldCgm c2lncGlwZV9zaWdzZXQsIFNJR1BJUEUpOworCisJLyogQmxvY2sgU0lHUElQRSBhbmQgc2F2ZSBw cmV2aW91cyBtYXNrIGZvciBsYXRlciByZXNldCAqLworCVNPQ0tfRVJSTk9fU0VUKHB0aHJlYWRf c2lnbWFzayhTSUdfQkxPQ0ssICZzaWdwaXBlX3NpZ3NldCwgb3NpZ3NldCkpOworCWlmIChTT0NL X0VSUk5PKQorCQlyZXR1cm4gLTE7CisKKwkvKiBXZSBjYW4gaGF2ZSBhIHBlbmRpbmcgU0lHUElQ RSBvbmx5IGlmIGl0IHdhcyBibG9ja2VkIGJlZm9yZSAqLworCWlmIChzaWdpc21lbWJlcihvc2ln c2V0LCBTSUdQSVBFKSkKKwl7CisJCS8qIElzIHRoZXJlIGEgcGVuZGluZyBTSUdQSVBFPyAqLwor CQlpZiAoc2lncGVuZGluZygmc2lnc2V0KSAhPSAwKQorCQkJcmV0dXJuIC0xOworCisJCWlmIChz aWdpc21lbWJlcigmc2lnc2V0LCBTSUdQSVBFKSkKKwkJCSpzaWdwaXBlX3BlbmRpbmcgPSB0cnVl OworCQllbHNlCisJCQkqc2lncGlwZV9wZW5kaW5nID0gZmFsc2U7CisJfQorCWVsc2UKKwkJKnNp Z3BpcGVfcGVuZGluZyA9IGZhbHNlOworCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKglEaXNjYXJk IGFueSBwZW5kaW5nIFNJR1BJUEUgYW5kIHJlc2V0IHRoZSBzaWduYWwgbWFzay4gVGhpcyBpcyBh IGNvcHkgb2YKKyAqCWxpYnBxJ3MgaW50ZXJuYWwgQVBJLgorICovCit2b2lkCitwcV9yZXNldF9z aWdwaXBlKHNpZ3NldF90ICpvc2lnc2V0LCBib29sIHNpZ3BpcGVfcGVuZGluZywgYm9vbCBnb3Rf ZXBpcGUpCit7CisJaW50CQkJc2F2ZV9lcnJubyA9IFNPQ0tfRVJSTk87CisJaW50CQkJc2lnbm87 CisJc2lnc2V0X3QJc2lnc2V0OworCisJLyogQ2xlYXIgU0lHUElQRSBvbmx5IGlmIG5vbmUgd2Fz IHBlbmRpbmcgKi8KKwlpZiAoZ290X2VwaXBlICYmICFzaWdwaXBlX3BlbmRpbmcpCisJeworCQlp ZiAoc2lncGVuZGluZygmc2lnc2V0KSA9PSAwICYmCisJCQlzaWdpc21lbWJlcigmc2lnc2V0LCBT SUdQSVBFKSkKKwkJeworCQkJc2lnc2V0X3QJc2lncGlwZV9zaWdzZXQ7CisKKwkJCXNpZ2VtcHR5 c2V0KCZzaWdwaXBlX3NpZ3NldCk7CisJCQlzaWdhZGRzZXQoJnNpZ3BpcGVfc2lnc2V0LCBTSUdQ SVBFKTsKKworCQkJc2lnd2FpdCgmc2lncGlwZV9zaWdzZXQsICZzaWdubyk7CisJCX0KKwl9CisK KwkvKiBSZXN0b3JlIHNhdmVkIGJsb2NrIG1hc2sgKi8KKwlwdGhyZWFkX3NpZ21hc2soU0lHX1NF VE1BU0ssIG9zaWdzZXQsIE5VTEwpOworCisJU09DS19FUlJOT19TRVQoc2F2ZV9lcnJubyk7Cit9 CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC11dGlscy5oIGIv c3JjL2ludGVyZmFjZXMvbGlicHEtb2F1dGgvb2F1dGgtdXRpbHMuaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjc5ZmMxMTMyNDgKLS0tIC9kZXYvbnVsbAorKysgYi9z cmMvaW50ZXJmYWNlcy9saWJwcS1vYXV0aC9vYXV0aC11dGlscy5oCkBAIC0wLDAgKzEsMzUgQEAK Ky8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIG9hdXRoLXV0aWxzLmgKKyAqCisgKgkgIERlZmlu aXRpb25zIHByb3ZpZGluZyBtaXNzaW5nIGxpYnBxIGludGVybmFsIEFQSXMKKyAqCisgKiBQb3J0 aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1l bnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUg VW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2ludGVyZmFjZXMvbGlicHEtb2F1 dGgvb2F1dGgtdXRpbHMuaAorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpZm5kZWYg T0FVVEhfVVRJTFNfSAorI2RlZmluZSBPQVVUSF9VVElMU19ICisKKyNpbmNsdWRlICJsaWJwcS1m ZS5oIgorI2luY2x1ZGUgInBxZXhwYnVmZmVyLmgiCisKK3R5cGVkZWYgY2hhciAqKCpsaWJwcV9n ZXR0ZXh0X2Z1bmMpIChjb25zdCBjaGFyICptc2dpZCk7Cit0eXBlZGVmIFBRRXhwQnVmZmVyICgq Y29ubl9lcnJvck1lc3NhZ2VfZnVuYykgKFBHY29ubiAqY29ubik7CisKKy8qIEluaXRpYWxpemVz IGxpYnBxLW9hdXRoLiAqLworZXh0ZXJuIFBHRExMRVhQT1JUIHZvaWQgbGlicHFfb2F1dGhfaW5p dChwZ3RocmVhZGxvY2tfdCB0aHJlYWRsb2NrLAorCQkJCQkJCQkJCSBsaWJwcV9nZXR0ZXh0X2Z1 bmMgZ2V0dGV4dF9pbXBsLAorCQkJCQkJCQkJCSBjb25uX2Vycm9yTWVzc2FnZV9mdW5jIGVycm1z Z19pbXBsKTsKKworLyogRHVwbGljYXRlZCBBUElzLCBjb3BpZWQgZnJvbSBsaWJwcS4gKi8KK2V4 dGVybiB2b2lkIGxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKFBHY29ubiAqY29ubiwgY29uc3QgY2hh ciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKK2V4dGVybiBib29sIG9hdXRo X3Vuc2FmZV9kZWJ1Z2dpbmdfZW5hYmxlZCh2b2lkKTsKK2V4dGVybiBpbnQJcHFfYmxvY2tfc2ln cGlwZShzaWdzZXRfdCAqb3NpZ3NldCwgYm9vbCAqc2lncGlwZV9wZW5kaW5nKTsKK2V4dGVybiB2 b2lkIHBxX3Jlc2V0X3NpZ3BpcGUoc2lnc2V0X3QgKm9zaWdzZXQsIGJvb2wgc2lncGlwZV9wZW5k aW5nLCBib29sIGdvdF9lcGlwZSk7CisKKyNlbmRpZgkJCQkJCQkvKiBPQVVUSF9VVElMU19IICov CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZSBiL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL01ha2VmaWxlCmluZGV4IDkwYjBiNjVkYjZmLi5iNTM0NjE4MWI5YSAxMDA2NDQK LS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKKysrIGIvc3JjL2ludGVyZmFjZXMv bGlicHEvTWFrZWZpbGUKQEAgLTY0LDEwICs2NCw2IEBAIE9CSlMgKz0gXAogCWZlLXNlY3VyZS1n c3NhcGkubwogZW5kaWYKIAotaWZlcSAoJCh3aXRoX2xpYmN1cmwpLHllcykKLU9CSlMgKz0gZmUt YXV0aC1vYXV0aC1jdXJsLm8KLWVuZGlmCi0KIGlmZXEgKCQoUE9SVE5BTUUpLCBjeWd3aW4pCiBv dmVycmlkZSBzaGxpYiA9IGN5ZyQoTkFNRSkkKERMU1VGRklYKQogZW5kaWYKQEAgLTg2LDcgKzgy LDcgQEAgZW5kaWYKICMgdGhhdCBhcmUgYnVpbHQgY29ycmVjdGx5IGZvciB1c2UgaW4gYSBzaGxp Yi4KIFNITElCX0xJTktfSU5URVJOQUwgPSAtbHBnY29tbW9uX3NobGliIC1scGdwb3J0X3NobGli CiBpZm5lcSAoJChQT1JUTkFNRSksIHdpbjMyKQotU0hMSUJfTElOSyArPSAkKGZpbHRlciAtbGNy eXB0IC1sZGVzIC1sY29tX2VyciAtbGNyeXB0byAtbGs1Y3J5cHRvIC1sa3JiNSAtbGdzc2FwaV9r cmI1IC1sZ3NzIC1sZ3NzYXBpIC1sc3NsIC1sY3VybCAtbHNvY2tldCAtbG5zbCAtbHJlc29sdiAt bGludGwgLWxtLCAkKExJQlMpKSAkKExEQVBfTElCU19GRSkgJChQVEhSRUFEX0xJQlMpCitTSExJ Ql9MSU5LICs9ICQoZmlsdGVyIC1sY3J5cHQgLWxkZXMgLWxjb21fZXJyIC1sY3J5cHRvIC1sazVj cnlwdG8gLWxrcmI1IC1sZ3NzYXBpX2tyYjUgLWxnc3MgLWxnc3NhcGkgLWxzc2wgLWxzb2NrZXQg LWxuc2wgLWxyZXNvbHYgLWxpbnRsIC1sbSwgJChMSUJTKSkgJChMREFQX0xJQlNfRkUpICQoUFRI UkVBRF9MSUJTKQogZWxzZQogU0hMSUJfTElOSyArPSAkKGZpbHRlciAtbGNyeXB0IC1sZGVzIC1s Y29tX2VyciAtbGNyeXB0byAtbGs1Y3J5cHRvIC1sa3JiNSAtbGdzc2FwaTMyIC1sc3NsIC1sc29j a2V0IC1sbnNsIC1scmVzb2x2IC1saW50bCAtbG0gJChQVEhSRUFEX0xJQlMpLCAkKExJQlMpKSAk KExEQVBfTElCU19GRSkKIGVuZGlmCkBAIC0xMTUsOCArMTExLDYgQEAgYmFja2VuZF9zcmMgPSAk KHRvcF9zcmNkaXIpL3NyYy9iYWNrZW5kCiAjIHdoaWNoIHNlZW1zIHRvIGluc2VydCByZWZlcmVu Y2VzIHRvIHRoYXQgZXZlbiBpbiBwdXJlIEMgY29kZS4gRXhjbHVkaW5nCiAjIF9fdHNhbl9mdW5j X2V4aXQgaXMgbmVjZXNzYXJ5IHdoZW4gdXNpbmcgVGhyZWFkU2FuaXRpemVyIGRhdGEgcmFjZSBk ZXRlY3RvcgogIyB3aGljaCB1c2UgdGhpcyBmdW5jdGlvbiBmb3IgaW5zdHJ1bWVudGF0aW9uIG9m IGZ1bmN0aW9uIGV4aXQuCi0jIGxpYmN1cmwgcmVnaXN0ZXJzIGFuIGV4aXQgaGFuZGxlciBpbiB0 aGUgbWVtb3J5IGRlYnVnZ2luZyBjb2RlIHdoZW4gcnVubmluZwotIyB3aXRoIExlYWtTYW5pdGl6 ZXIuCiAjIFNraXAgdGhlIHRlc3Qgd2hlbiBwcm9maWxpbmcsIGFzIGdjYyBtYXkgaW5zZXJ0IGV4 aXQoKSBjYWxscyBmb3IgdGhhdC4KICMgQWxzbyBza2lwIHRoZSB0ZXN0IG9uIHBsYXRmb3JtcyB3 aGVyZSBsaWJwcSBpbmZyYXN0cnVjdHVyZSBtYXkgYmUgcHJvdmlkZWQKICMgYnkgc3RhdGljYWxs eS1saW5rZWQgbGlicmFyaWVzLCBhcyB3ZSBjYW4ndCBleHBlY3QgdGhlbSB0byBob25vciB0aGlz CkBAIC0xMjQsNyArMTE4LDcgQEAgYmFja2VuZF9zcmMgPSAkKHRvcF9zcmNkaXIpL3NyYy9iYWNr ZW5kCiBsaWJwcS1yZWZzLXN0YW1wOiAkKHNobGliKQogaWZuZXEgKCQoZW5hYmxlX2NvdmVyYWdl KSwgeWVzKQogaWZlcSAoLCQoZmlsdGVyIHNvbGFyaXMsJChQT1JUTkFNRSkpKQotCUBpZiBubSAt QSAtdSAkPCAyPi9kZXYvbnVsbCB8IGdyZXAgLXYgLWUgX19jeGFfYXRleGl0IC1lIF9fdHNhbl9m dW5jX2V4aXQgLWUgX2F0ZXhpdCB8IGdyZXAgZXhpdDsgdGhlbiBcCisJQGlmIG5tIC1BIC11ICQ8 IDI+L2Rldi9udWxsIHwgZ3JlcCAtdiAtZSBfX2N4YV9hdGV4aXQgLWUgX190c2FuX2Z1bmNfZXhp dCB8IGdyZXAgZXhpdDsgdGhlbiBcCiAJCWVjaG8gJ2xpYnBxIG11c3Qgbm90IGJlIGNhbGxpbmcg YW55IGZ1bmN0aW9uIHdoaWNoIGludm9rZXMgZXhpdCc7IGV4aXQgMTsgXAogCWZpCiBlbmRpZgpk aWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZXhwb3J0cy50eHQgYi9zcmMvaW50ZXJm YWNlcy9saWJwcS9leHBvcnRzLnR4dAppbmRleCBkNTE0Mzc2Njg1OC4uMDYyNWNmMzllOWEgMTAw NjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0CisrKyBiL3NyYy9pbnRl cmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0CkBAIC0yMTAsMyArMjEwLDQgQEAgUFFzZXRBdXRoRGF0 YUhvb2sgICAgICAgICAyMDcKIFBRZ2V0QXV0aERhdGFIb29rICAgICAgICAgMjA4CiBQUWRlZmF1 bHRBdXRoRGF0YUhvb2sgICAgIDIwOQogUFFmdWxsUHJvdG9jb2xWZXJzaW9uICAgICAyMTAKK2Fw cGVuZFBRRXhwQnVmZmVyVkEgICAgICAgMjExCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9s aWJwcS9mZS1hdXRoLW9hdXRoLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLW9hdXRo LmMKaW5kZXggY2YxYTI1ZTJjY2MuLjViZWExZTA1OWEyIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJm YWNlcy9saWJwcS9mZS1hdXRoLW9hdXRoLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUt YXV0aC1vYXV0aC5jCkBAIC0xNSw2ICsxNSwxMCBAQAogCiAjaW5jbHVkZSAicG9zdGdyZXNfZmUu aCIKIAorI2lmbmRlZiBXSU4zMgorI2luY2x1ZGUgPGRsZmNuLmg+CisjZW5kaWYKKwogI2luY2x1 ZGUgImNvbW1vbi9iYXNlNjQuaCIKICNpbmNsdWRlICJjb21tb24vaG1hYy5oIgogI2luY2x1ZGUg ImNvbW1vbi9qc29uYXBpLmgiCkBAIC0yMiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiZmUtYXV0aC5o IgogI2luY2x1ZGUgImZlLWF1dGgtb2F1dGguaCIKICNpbmNsdWRlICJtYi9wZ193Y2hhci5oIgor I2luY2x1ZGUgInBnX2NvbmZpZ19wYXRocy5oIgogCiAvKiBUaGUgZXhwb3J0ZWQgT0F1dGggY2Fs bGJhY2sgbWVjaGFuaXNtLiAqLwogc3RhdGljIHZvaWQgKm9hdXRoX2luaXQoUEdjb25uICpjb25u LCBjb25zdCBjaGFyICpwYXNzd29yZCwKQEAgLTcyMSw2ICs3MjYsOTMgQEAgY2xlYW51cF91c2Vy X29hdXRoX2Zsb3coUEdjb25uICpjb25uKQogCXN0YXRlLT5hc3luY19jdHggPSBOVUxMOwogfQog CisjaWZkZWYgVVNFX0xJQkNVUkwKKwordHlwZWRlZiBjaGFyICooKmxpYnBxX2dldHRleHRfZnVu YykgKGNvbnN0IGNoYXIgKm1zZ2lkKTsKK3R5cGVkZWYgUFFFeHBCdWZmZXIgKCpjb25uX2Vycm9y TWVzc2FnZV9mdW5jKSAoUEdjb25uICpjb25uKTsKKworLyoKKyAqIFRoaXMgc2hpbSBpcyBpbmpl Y3RlZCBpbnRvIGxpYnBxLW9hdXRoIHNvIHRoYXQgaXQgZG9lc24ndCBkZXBlbmQgb24gdGhlCisg KiBvZmZzZXQgb2YgY29ubi0+ZXJyb3JNZXNzYWdlLgorICoKKyAqIFRPRE86IGxvb2sgaW50byBl eHBvcnRpbmcgbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3Igb3IgYSBjb21wYXJhYmxlIEFQSSBmcm9t CisgKiBsaWJwcSwgaW5zdGVhZC4KKyAqLworc3RhdGljIFBRRXhwQnVmZmVyCitjb25uX2Vycm9y TWVzc2FnZShQR2Nvbm4gKmNvbm4pCit7CisJcmV0dXJuICZjb25uLT5lcnJvck1lc3NhZ2U7Cit9 CisKK3N0YXRpYyBib29sCit1c2VfYnVpbHRpbl9mbG93KFBHY29ubiAqY29ubiwgZmVfb2F1dGhf c3RhdGUgKnN0YXRlKQoreworCXZvaWQJCSgqaW5pdCkgKHBndGhyZWFkbG9ja190IHRocmVhZGxv Y2ssCisJCQkJCQkgbGlicHFfZ2V0dGV4dF9mdW5jIGdldHRleHRfaW1wbCwKKwkJCQkJCSBjb25u X2Vycm9yTWVzc2FnZV9mdW5jIGVycm1zZ19pbXBsKTsKKwlQb3N0Z3Jlc1BvbGxpbmdTdGF0dXNU eXBlICgqZmxvdykgKFBHY29ubiAqY29ubik7CisJdm9pZAkJKCpjbGVhbnVwKSAoUEdjb25uICpj b25uKTsKKworCXN0YXRlLT5idWlsdGluX2Zsb3cgPSBkbG9wZW4oImxpYnBxLW9hdXRoLSIgUEdf TUFKT1JWRVJTSU9OIERMU1VGRklYLAorCQkJCQkJCQkgUlRMRF9OT1cgfCBSVExEX0xPQ0FMKTsK KwlpZiAoIXN0YXRlLT5idWlsdGluX2Zsb3cpCisJeworCQkvKgorCQkgKiBGb3IgZW5kIHVzZXJz LCB0aGlzIHByb2JhYmx5IGlzbid0IGFuIGVycm9yIGNvbmRpdGlvbiwgaXQganVzdAorCQkgKiBt ZWFucyB0aGUgZmxvdyBpc24ndCBpbnN0YWxsZWQuIERldmVsb3BlcnMgYW5kIHBhY2thZ2UgbWFp bnRhaW5lcnMKKwkJICogbWF5IHdhbnQgdG8gZGVidWcgdGhpcyB2aWEgdGhlIFBHT0FVVEhERUJV RyBlbnZ2YXIsIHRob3VnaC4KKwkJICoKKwkJICogTm90ZSB0aGF0IFBPU0lYIGRsZXJyb3IoKSBp c24ndCBndWFyYW50ZWVkIHRvIGJlIHRocmVhZHNhZmUuCisJCSAqLworCQlpZiAob2F1dGhfdW5z YWZlX2RlYnVnZ2luZ19lbmFibGVkKCkpCisJCQlmcHJpbnRmKHN0ZGVyciwgImZhaWxlZCBkbG9w ZW4gZm9yIGxpYnBxLW9hdXRoOiAlc1xuIiwgZGxlcnJvcigpKTsKKworCQlyZXR1cm4gZmFsc2U7 CisJfQorCisJaWYgKChpbml0ID0gZGxzeW0oc3RhdGUtPmJ1aWx0aW5fZmxvdywgImxpYnBxX29h dXRoX2luaXQiKSkgPT0gTlVMTAorCQl8fCAoZmxvdyA9IGRsc3ltKHN0YXRlLT5idWlsdGluX2Zs b3csICJwZ19mZV9ydW5fb2F1dGhfZmxvdyIpKSA9PSBOVUxMCisJCXx8IChjbGVhbnVwID0gZGxz eW0oc3RhdGUtPmJ1aWx0aW5fZmxvdywgInBnX2ZlX2NsZWFudXBfb2F1dGhfZmxvdyIpKSA9PSBO VUxMKQorCXsKKwkJLyoKKwkJICogVGhpcyBpcyBtb3JlIG9mIGFuIGVycm9yIGNvbmRpdGlvbiB0 aGFuIHRoZSBvbmUgYWJvdmUsIGJ1dCBkdWUgdG8KKwkJICogdGhlIGRsZXJyb3IoKSB0aHJlYWRz YWZldHkgaXNzdWUsIGxvY2sgaXQgYmVoaW5kIFBHT0FVVEhERUJVRyB0b28uCisJCSAqLworCQlp ZiAob2F1dGhfdW5zYWZlX2RlYnVnZ2luZ19lbmFibGVkKCkpCisJCQlmcHJpbnRmKHN0ZGVyciwg ImZhaWxlZCBkbHN5bSBmb3IgbGlicHEtb2F1dGg6ICVzXG4iLCBkbGVycm9yKCkpOworCisJCWRs Y2xvc2Uoc3RhdGUtPmJ1aWx0aW5fZmxvdyk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwkvKgor CSAqIEluamVjdCBuZWNlc3NhcnkgZnVuY3Rpb24gcG9pbnRlcnMgaW50byB0aGUgbW9kdWxlLgor CSAqLworCWluaXQocGdfZ190aHJlYWRsb2NrLAorI2lmZGVmIEVOQUJMRV9OTFMKKwkJIGxpYnBx X2dldHRleHQsCisjZWxzZQorCQkgTlVMTCwKKyNlbmRpZgorCQkgY29ubl9lcnJvck1lc3NhZ2Up OworCisJLyogU2V0IG91ciBhc3luY2hyb25vdXMgY2FsbGJhY2tzLiAqLworCWNvbm4tPmFzeW5j X2F1dGggPSBmbG93OworCWNvbm4tPmNsZWFudXBfYXN5bmNfYXV0aCA9IGNsZWFudXA7CisKKwly ZXR1cm4gdHJ1ZTsKK30KKworI2Vsc2UJCQkJCQkJLyogIVVTRV9MSUJDVVJMICovCisKK3N0YXRp YyBib29sCit1c2VfYnVpbHRpbl9mbG93KFBHY29ubiAqY29ubiwgZmVfb2F1dGhfc3RhdGUgKnN0 YXRlKQoreworCXJldHVybiBmYWxzZTsKK30KKworI2VuZGlmCQkJCQkJCS8qIFVTRV9MSUJDVVJM ICovCisKIC8qCiAgKiBDaG9vc2VzIGFuIE9BdXRoIGNsaWVudCBmbG93IGZvciB0aGUgY29ubmVj dGlvbiwgd2hpY2ggd2lsbCByZXRyaWV2ZSBhIEJlYXJlcgogICogdG9rZW4gZm9yIHByZXNlbnRh dGlvbiB0byB0aGUgc2VydmVyLgpAQCAtNzkyLDE4ICs4ODQsMTAgQEAgc2V0dXBfdG9rZW5fcmVx dWVzdChQR2Nvbm4gKmNvbm4sIGZlX29hdXRoX3N0YXRlICpzdGF0ZSkKIAkJbGlicHFfYXBwZW5k X2Nvbm5fZXJyb3IoY29ubiwgInVzZXItZGVmaW5lZCBPQXV0aCBmbG93IGZhaWxlZCIpOwogCQln b3RvIGZhaWw7CiAJfQotCWVsc2UKKwllbHNlIGlmICghdXNlX2J1aWx0aW5fZmxvdyhjb25uLCBz dGF0ZSkpCiAJewotI2lmIFVTRV9MSUJDVVJMCi0JCS8qIEhhbmQgb2ZmIHRvIG91ciBidWlsdC1p biBPQXV0aCBmbG93LiAqLwotCQljb25uLT5hc3luY19hdXRoID0gcGdfZmVfcnVuX29hdXRoX2Zs b3c7Ci0JCWNvbm4tPmNsZWFudXBfYXN5bmNfYXV0aCA9IHBnX2ZlX2NsZWFudXBfb2F1dGhfZmxv dzsKLQotI2Vsc2UKIAkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgIm5vIGN1c3RvbSBP QXV0aCBmbG93cyBhcmUgYXZhaWxhYmxlLCBhbmQgbGlicHEgd2FzIG5vdCBidWlsdCB3aXRoIGxp YmN1cmwgc3VwcG9ydCIpOwogCQlnb3RvIGZhaWw7Ci0KLSNlbmRpZgogCX0KIAogCXJldHVybiB0 cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC1vYXV0aC5oIGIv c3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC1vYXV0aC5oCmluZGV4IDNmMWE3NTAzYTAxLi42 OTliYTQyYWNjMiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC1vYXV0 aC5oCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGgtb2F1dGguaApAQCAtMzMsMTAg KzMzLDEwIEBAIHR5cGVkZWYgc3RydWN0CiAKIAlQR2Nvbm4JICAgKmNvbm47CiAJdm9pZAkgICAq YXN5bmNfY3R4OworCisJdm9pZAkgICAqYnVpbHRpbl9mbG93OwogfSBmZV9vYXV0aF9zdGF0ZTsK IAotZXh0ZXJuIFBvc3RncmVzUG9sbGluZ1N0YXR1c1R5cGUgcGdfZmVfcnVuX29hdXRoX2Zsb3co UEdjb25uICpjb25uKTsKLWV4dGVybiB2b2lkIHBnX2ZlX2NsZWFudXBfb2F1dGhfZmxvdyhQR2Nv bm4gKmNvbm4pOwogZXh0ZXJuIHZvaWQgcHFDbGVhck9BdXRoVG9rZW4oUEdjb25uICpjb25uKTsK IGV4dGVybiBib29sIG9hdXRoX3Vuc2FmZV9kZWJ1Z2dpbmdfZW5hYmxlZCh2b2lkKTsKIApkaWZm IC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQgYi9zcmMvaW50ZXJmYWNl cy9saWJwcS9tZXNvbi5idWlsZAppbmRleCAyOTJmZWNmMzMyMC4uNDdkMzhlOTM3OGYgMTAwNjQ0 Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkCisrKyBiL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL21lc29uLmJ1aWxkCkBAIC0zOCwxMCArMzgsNiBAQCBpZiBnc3NhcGkuZm91bmQo KQogICApCiBlbmRpZgogCi1pZiBsaWJjdXJsLmZvdW5kKCkKLSAgbGlicHFfc291cmNlcyArPSBm aWxlcygnZmUtYXV0aC1vYXV0aC1jdXJsLmMnKQotZW5kaWYKLQogZXhwb3J0X2ZpbGUgPSBjdXN0 b21fdGFyZ2V0KCdsaWJwcS5leHBvcnRzJywKICAga3dhcmdzOiBnZW5fZXhwb3J0X2t3YXJncywK ICkKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL25scy5tayBiL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL25scy5tawppbmRleCBhZTc2MTI2NTg1Mi4uYjg3ZGYyNzdkOTMgMTAwNjQ0Ci0t LSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL25scy5taworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJw cS9ubHMubWsKQEAgLTEzLDE1ICsxMywyMSBAQCBHRVRURVhUX0ZJTEVTICAgID0gZmUtYXV0aC5j IFwKICAgICAgICAgICAgICAgICAgICBmZS1zZWN1cmUtY29tbW9uLmMgXAogICAgICAgICAgICAg ICAgICAgIGZlLXNlY3VyZS1nc3NhcGkuYyBcCiAgICAgICAgICAgICAgICAgICAgZmUtc2VjdXJl LW9wZW5zc2wuYyBcCi0gICAgICAgICAgICAgICAgICAgd2luMzIuYwotR0VUVEVYVF9UUklHR0VS UyA9IGxpYnBxX2FwcGVuZF9jb25uX2Vycm9yOjIgXAorICAgICAgICAgICAgICAgICAgIHdpbjMy LmMgXAorICAgICAgICAgICAgICAgICAgIC4uL2xpYnBxLW9hdXRoL29hdXRoLWN1cmwuYyBcCisg ICAgICAgICAgICAgICAgICAgLi4vbGlicHEtb2F1dGgvb2F1dGgtdXRpbHMuYworR0VUVEVYVF9U UklHR0VSUyA9IGFjdHhfZXJyb3I6MiBcCisgICAgICAgICAgICAgICAgICAgbGlicHFfYXBwZW5k X2Nvbm5fZXJyb3I6MiBcCiAgICAgICAgICAgICAgICAgICAgbGlicHFfYXBwZW5kX2Vycm9yOjIg XAogICAgICAgICAgICAgICAgICAgIGxpYnBxX2dldHRleHQgXAogICAgICAgICAgICAgICAgICAg IGxpYnBxX25nZXR0ZXh0OjEsMiBcCisgICAgICAgICAgICAgICAgICAgb2F1dGhfcGFyc2Vfc2V0 X2Vycm9yOjIgXAogICAgICAgICAgICAgICAgICAgIHBxSW50ZXJuYWxOb3RpY2U6MgotR0VUVEVY VF9GTEFHUyAgICA9IGxpYnBxX2FwcGVuZF9jb25uX2Vycm9yOjI6Yy1mb3JtYXQgXAorR0VUVEVY VF9GTEFHUyAgICA9IGFjdHhfZXJyb3I6MjpjLWZvcm1hdCBcCisgICAgICAgICAgICAgICAgICAg bGlicHFfYXBwZW5kX2Nvbm5fZXJyb3I6MjpjLWZvcm1hdCBcCiAgICAgICAgICAgICAgICAgICAg bGlicHFfYXBwZW5kX2Vycm9yOjI6Yy1mb3JtYXQgXAogICAgICAgICAgICAgICAgICAgIGxpYnBx X2dldHRleHQ6MTpwYXNzLWMtZm9ybWF0IFwKICAgICAgICAgICAgICAgICAgICBsaWJwcV9uZ2V0 dGV4dDoxOnBhc3MtYy1mb3JtYXQgXAogICAgICAgICAgICAgICAgICAgIGxpYnBxX25nZXR0ZXh0 OjI6cGFzcy1jLWZvcm1hdCBcCisgICAgICAgICAgICAgICAgICAgb2F1dGhfcGFyc2Vfc2V0X2Vy cm9yOjI6Yy1mb3JtYXQgXAogICAgICAgICAgICAgICAgICAgIHBxSW50ZXJuYWxOb3RpY2U6Mjpj LWZvcm1hdApkaWZmIC0tZ2l0IGEvc3JjL21ha2VmaWxlcy9tZXNvbi5idWlsZCBiL3NyYy9tYWtl ZmlsZXMvbWVzb24uYnVpbGQKaW5kZXggNDZkOGRhMDcwZTguLmYyYmE1YjM4MTI0IDEwMDY0NAot LS0gYS9zcmMvbWFrZWZpbGVzL21lc29uLmJ1aWxkCisrKyBiL3NyYy9tYWtlZmlsZXMvbWVzb24u YnVpbGQKQEAgLTIwMSw2ICsyMDEsOCBAQCBwZ3hzX2VtcHR5ID0gWwogICAnSUNVX0xJQlMnLAog CiAgICdMSUJVUklOR19DRkxBR1MnLCAnTElCVVJJTkdfTElCUycsCisKKyAgJ0xJQkNVUkxfQ1BQ RkxBR1MnLCAnTElCQ1VSTF9MREZMQUdTJywgJ0xJQkNVUkxfTERMSUJTJywKIF0KIAogaWYgaG9z dF9zeXN0ZW0gPT0gJ3dpbmRvd3MnIGFuZCBjYy5nZXRfYXJndW1lbnRfc3ludGF4KCkgIT0gJ21z dmMnCi0tIAoyLjM0LjEKCg== --000000000000032b910632608dae--