From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from ol0router01.airtag.info ([88.190.231.88]) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1RYgnd-00075i-0y for ptxdist@pengutronix.de; Thu, 08 Dec 2011 17:26:36 +0100 Received: from localhost (localhost [127.0.0.1]) by ol0router01.airtag.info (Postfix) with ESMTP id 0DC2E1FA23E for ; Thu, 8 Dec 2011 17:26:11 +0100 (CET) Received: from ol0router01.airtag.info ([127.0.0.1]) by localhost (ol0smtp01.airtag.local [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id waS2mbinWsUx for ; Thu, 8 Dec 2011 17:25:58 +0100 (CET) Received: from HQ0SBS01.airtag.local (hq0sbs01.airtag.local [10.4.0.10]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (Client CN "*.airtag.com", Issuer "GlobalSign Organization Validation CA - G2" (verified OK)) by ol0router01.airtag.info (Postfix) with ESMTPS id 906F31FA23F for ; Thu, 8 Dec 2011 17:25:58 +0100 (CET) From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= Date: Thu, 8 Dec 2011 17:26:05 +0100 Message-ID: <1323361566-11890-3-git-send-email-benoit.burnichon@airtag.com> In-Reply-To: <20111208154601.GH11859@pengutronix.de> References: <20111208154601.GH11859@pengutronix.de> MIME-Version: 1.0 Subject: [ptxdist] [PATCH 3/4] lua: Correct implementation for version 5.1.4 Reply-To: ptxdist@pengutronix.de List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: ptxdist-bounces@pengutronix.de Errors-To: ptxdist-bounces@pengutronix.de To: ptxdist@pengutronix.de U2lnbmVkLW9mZi1ieTogQmVub8OudCBCdXJuaWNob24gPGJlbm9pdC5idXJuaWNob25AYWlydGFn LmNvbT4KLS0tCiBwYXRjaGVzL2x1YS01LjEuNC9hdXRvY29uZml6ZS5kaWZmICAgICAgICAgICAg ICAgfCAgOTEyICsrKysrKysrKysrKysrKysrKysrKysKIHBhdGNoZXMvbHVhLTUuMS40L2F1dG9t YWtpemUuZGlmZiAgICAgICAgICAgICAgICB8ICAxMTMgKysrCiBwYXRjaGVzL2x1YS01LjEuNC9s dWEtNS4xLjMtYXV0b2NvbmZpemUuZGlmZiAgICAgfCAgOTEwIC0tLS0tLS0tLS0tLS0tLS0tLS0t LQogcGF0Y2hlcy9sdWEtNS4xLjQvbHVhLTUuMS4zLWF1dG9nZW4uc2guZGlmZiAgICAgIHwgICAy NiAtCiBwYXRjaGVzL2x1YS01LjEuNC9sdWEtNS4xLjMtYXV0b21ha2l6ZS5kaWZmICAgICAgfCAg MTExIC0tLQogcGF0Y2hlcy9sdWEtNS4xLjQvbHVhLTUuMS4zLXJlbW92ZS1NYWtlZmlsZS5kaWZm IHwgIDE0OSAtLS0tCiBwYXRjaGVzL2x1YS01LjEuNC9yZW1vdmUtTWFrZWZpbGUuZGlmZiAgICAg ICAgICAgfCAgMTQ5ICsrKysKIHBhdGNoZXMvbHVhLTUuMS40L3NlcmllcyAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgIDcgKy0KIHJ1bGVzL2x1YS5tYWtlICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgIDIgKy0KIDkgZmlsZXMgY2hhbmdlZCwgMTE3OCBpbnNlcnRpb25z KCspLCAxMjAxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvbHVhLTUu MS40L2F1dG9jb25maXplLmRpZmYKIGNyZWF0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL2x1YS01LjEu NC9hdXRvbWFraXplLmRpZmYKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRjaGVzL2x1YS01LjEuNC9s dWEtNS4xLjMtYXV0b2NvbmZpemUuZGlmZgogZGVsZXRlIG1vZGUgMTAwNjQ0IHBhdGNoZXMvbHVh LTUuMS40L2x1YS01LjEuMy1hdXRvZ2VuLnNoLmRpZmYKIGRlbGV0ZSBtb2RlIDEwMDY0NCBwYXRj aGVzL2x1YS01LjEuNC9sdWEtNS4xLjMtYXV0b21ha2l6ZS5kaWZmCiBkZWxldGUgbW9kZSAxMDA2 NDQgcGF0Y2hlcy9sdWEtNS4xLjQvbHVhLTUuMS4zLXJlbW92ZS1NYWtlZmlsZS5kaWZmCiBjcmVh dGUgbW9kZSAxMDA2NDQgcGF0Y2hlcy9sdWEtNS4xLjQvcmVtb3ZlLU1ha2VmaWxlLmRpZmYKCmRp ZmYgLS1naXQgYS9wYXRjaGVzL2x1YS01LjEuNC9hdXRvY29uZml6ZS5kaWZmIGIvcGF0Y2hlcy9s dWEtNS4xLjQvYXV0b2NvbmZpemUuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi40NjgyZjNlCi0tLSAvZGV2L251bGwKKysrIGIvcGF0Y2hlcy9sdWEtNS4xLjQvYXV0b2Nv bmZpemUuZGlmZgpAQCAtMCwwICsxLDkxMiBAQAorU3ViamVjdDogQWRkIGx1YSBzdXBwb3J0IHRv IHB0eGRpc3QgMS45OTogYWRkIGF1dG9jb25mIGZpbGVzCitGcm9tOiBFcndpbiBSb2wgPGVyd2lu QGVyd2lucm9sLmNvbT4KKworVGhpcyBwYXRjaCBhZGQgbHVhIHN1cHBvcnQgdG8gcHR4ZGlzdCAx Ljk5LiBJdCBoYXMgYSBtZW51IGVudHJ5IHVuZGVyCitzY3JpcHRpbmcgbGFuZ3VhZ2VzLiBBbmQg YSBwYXRjaCB0aGF0IG1ha2VzIGl0IHBvc3NpYmxlIHRvIHVzZSBhdXRvY29uZgordG8gYnVpbGQu CisKK1RoaXMgcGFydCBvZiB0aGUgcGF0Y2ggYWRkcyB0aGUgYXV0b2NvbmYgZmlsZXMuCisKK1Np Z25lZC1vZmYtYnk6IEVyd2luIFJvbCA8ZXJ3aW5AZXJ3aW5yb2wuY29tPgorU2lnbmVkLW9mZi1i eTogUm9iZXJ0IFNjaHdlYmVsIDxyLnNjaHdlYmVsQHBlbmd1dHJvbml4LmRlPgorCistLS0KKyBj b25maWd1cmUuYWMgICAgICAgICAgICAgIHwgICA2OCArKysrCisgZXRjL2x1YS5wYy5pbiAgICAg ICAgICAgICB8ICAgMzIgKworIHNyYy9sdWFjb25mLmgudGVtcGxhdGUuaW4gfCAgNzc3ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyAzIGZpbGVzIGNoYW5n ZWQsIDg3NyBpbnNlcnRpb25zKCspCisKK0luZGV4OiBsdWEtNS4xLjQvY29uZmlndXJlLmFjCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCisrKysgbHVhLTUuMS40L2NvbmZpZ3VyZS5hYwkyMDExLTEyLTA2IDExOjQ3OjQ5LjY3NTA3 NjMxNCArMDEwMAorQEAgLTAsMCArMSw3MCBAQAorK0FDX1BSRVJFUShbMi42N10pCisrQUNfSU5J VChbQXV0b3Rvb2xpemVkIEx1YV0sWzUuMS40XSxbXSxbbHVhLWF0XSkKKysKKytBQ19DT05GSUdf TUFDUk9fRElSKFttNF0pCisrCisrQUNfQ09ORklHX0hFQURFUlMoW2NvbmZpZy5oXSkKKytBQ19D T05GSUdfU1JDRElSKFtzcmMvbGFwaS5jXSkKKysKKytBTV9JTklUX0FVVE9NQUtFKFsxLjkgZm9y ZWlnbl0pCisrCisrQUNfUFJPR19DQworK0xUX0lOSVQKKysKKytBQ19BUkdfV0lUSCgKKysgIFty ZWFkbGluZV0sCisrICBbQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1yZWFkbGluZV0sW1VzZSByZWFk bGluZSBmb3IgaW50ZXJwcmV0ZXIgaW5wdXQgW2RlZmF1bHQ9eWVzXV0pXSwKKysgIFt1c2VfcmVh ZGxpbmU9JHdpdGh2YWxdLAorKyAgW3VzZV9yZWFkbGluZT15ZXNdCisrKQorKworK0xVQV9MSUJT PSItbG0iCisrCisrIyBDaGVjayBmb3IgcmVhZGxpbmUKKytSRUFETElORV9ERUZTPSIjdW5kZWYg TFVBX1VTRV9SRUFETElORSIKKytpZiB0ZXN0ICJ4JHVzZV9yZWFkbGluZSIgPT0gInh5ZXMiOyB0 aGVuCisrICBBQ19DSEVDS19MSUIoW3JlYWRsaW5lXSwgW3JlYWRsaW5lXSwgW10sIFt1c2VfcmVh ZGxpbmU9bm9dKQorKyAgQUNfQ0hFQ0tfSEVBREVSUyhbcmVhZGxpbmUvcmVhZGxpbmUuaCByZWFk bGluZS9oaXN0b3J5LmhdLCBbXSwgW3VzZV9yZWFkbGluZT1ub10pCisrICBpZiB0ZXN0ICJ4JHVz ZV9yZWFkbGluZSIgPT0gInhubyI7IHRoZW4KKysgICAgQUNfTVNHX1dBUk4oW3JlYWRsaW5lIGhl YWRlcnMgY291bGQgbm90IGJlIGZvdW5kLCBkaXNhYmxpbmcgcmVhZGxpbmUgc3VwcG9ydF0pCisr ICBlbHNlCisrICAgIFJFQURMSU5FX0RFRlM9IiNkZWZpbmUgTFVBX1VTRV9SRUFETElORSIKKysg ICAgTFVBX0xJQlM9IiRMVUFfTElCUyAtbHJlYWRsaW5lIgorKyAgZmkKKytmaQorK0FDX1NVQlNU KFJFQURMSU5FX0RFRlMpCisrCisrY2FzZSAiJGhvc3QiIGluCisrICAqLW1pbmd3KikgIHVzZV9v cz13aW4zMiAgOzsKKysgICotZGFyd2luKikgdXNlX29zPW1hY29zeCA7OworKyAgKikgICAgICAg ICB1c2Vfb3M9cG9zaXggIDs7CisrZXNhYworKworK1BPU0lYX0RFRlM9IiN1bmRlZiBMVUFfVVNF X1BPU0lYIgorK0xVQV9ETF9ERUZTPSIjdW5kZWYgTFVBX1VTRV9ETE9QRU4iCisrTFVBX0JVSUxE X0FTX0RMTF9ERUZTPSIjdW5kZWYgTFVBX0JVSUxEX0FTX0RMTCIKKysKKytpZiB0ZXN0ICJ4JHVz ZV9vcyIgPT0gInh3aW4zMiI7IHRoZW4KKysgIExVQV9CVUlMRF9BU19ETExfREVGUz0iI2RlZmlu ZSBMVUFfQlVJTERfQVNfRExMIgorK2VsaWYgdGVzdCAieCR1c2Vfb3MiID09ICJ4bWFjb3N4Ijsg dGhlbgorKyAgUE9TSVhfREVGUz0iI2RlZmluZSBMVUFfVVNFX1BPU0lYIgorKyAgTFVBX0RMX0RF RlM9IiNkZWZpbmUgTFVBX0RMX0RZTEQiCisrZWxpZiB0ZXN0ICJ4JHVzZV9vcyIgPT0gInhwb3Np eCI7IHRoZW4KKysgIFBPU0lYX0RFRlM9IiNkZWZpbmUgTFVBX1VTRV9QT1NJWCIKKysgIExVQV9E TF9ERUZTPSIjZGVmaW5lIExVQV9ETF9ETE9QRU4iCisrICBMVUFfTElCUz0iJExVQV9MSUJTIC1s ZGwiCisrZmkKKytBQ19TVUJTVChQT1NJWF9ERUZTKQorK0FDX1NVQlNUKExVQV9ETF9ERUZTKQor K0FDX1NVQlNUKExVQV9CVUlMRF9BU19ETExfREVGUykKKysKKytBQ19TVUJTVChMVUFfTElCUykK KysKKytBQ19DT05GSUdfRklMRVMoW01ha2VmaWxlCisrICAgICAgICAgICAgICAgICBzcmMvTWFr ZWZpbGUKKysgICAgICAgICAgICAgICAgIHNyYy9sdWFjb25mLmgudGVtcGxhdGUKKysgICAgICAg ICAgICAgICAgIGV0Yy9NYWtlZmlsZQorKyAgICAgICAgICAgICAgICAgZXRjL2x1YS5wYworKyAg ICAgICAgICAgICAgICAgZG9jL01ha2VmaWxlCisrCQkgdGVzdC9NYWtlZmlsZV0pCisrQUNfT1VU UFVUCitJbmRleDogbHVhLTUuMS40L2V0Yy9sdWEucGMuaW4KKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBsdWEtNS4xLjQv ZXRjL2x1YS5wYy5pbgkyMDExLTEyLTA2IDExOjQ0OjUyLjEwMzgyNjg4MCArMDEwMAorQEAgLTAs MCArMSwzMiBAQAorKyMgbHVhLnBjIC0tIHBrZy1jb25maWcgZGF0YSBmb3IgTHVhCisrCisrIyB2 YXJzIGZyb20gaW5zdGFsbCBNYWtlZmlsZQorKworKyMgZ3JlcCAnXlY9JyAuLi9NYWtlZmlsZQor K1Y9IDUuMQorKyMgZ3JlcCAnXlI9JyAuLi9NYWtlZmlsZQorK1I9IEBWRVJTSU9OQAorKworKyMg Z3JlcCAnXklOU1RBTExfLio9JyAuLi9NYWtlZmlsZSB8IHNlZCAncy9JTlNUQUxMX1RPUC9wcmVm aXgvJworKyMgcGx1cyBhdXRvdG9vbGlmaWNhdGlvbgorK3ByZWZpeD0gQHByZWZpeEAKKytJTlNU QUxMX0JJTj0gJHtwcmVmaXh9L2JpbgorK0lOU1RBTExfSU5DPSAke3ByZWZpeH0vaW5jbHVkZQor K0lOU1RBTExfTElCPSAke3ByZWZpeH0vbGliCisrSU5TVEFMTF9NQU49ICR7cHJlZml4fS9tYW4v bWFuMQorK0lOU1RBTExfTE1PRD0gJHtwcmVmaXh9L3NoYXJlL2x1YS8ke1Z9CisrSU5TVEFMTF9D TU9EPSAke3ByZWZpeH0vbGliL2x1YS8ke1Z9CisrCisrIyBjYW5vbmljYWwgdmFycworK2V4ZWNf cHJlZml4PSR7cHJlZml4fQorK2xpYmRpcj0ke2V4ZWNfcHJlZml4fS9saWIKKytpbmNsdWRlZGly PSR7cHJlZml4fS9pbmNsdWRlCisrCisrTmFtZTogTHVhCisrRGVzY3JpcHRpb246IEFuIEV4dGVu c2libGUgRXh0ZW5zaW9uIExhbmd1YWdlCisrVmVyc2lvbjogJHtSfQorK1JlcXVpcmVzOiAKKytM aWJzOiAtTCR7bGliZGlyfSAtbGx1YSAtbG0KKytDZmxhZ3M6IC1JJHtpbmNsdWRlZGlyfQorKwor KyMgKGVuZCBvZiBsdWEucGMpCitJbmRleDogbHVhLTUuMS40L3NyYy9sdWFjb25mLmgudGVtcGxh dGUuaW4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKKysrKyBsdWEtNS4xLjQvc3JjL2x1YWNvbmYuaC50ZW1wbGF0ZS5pbgkyMDEx LTEyLTA2IDExOjQ0OjUyLjEwMzgyNjg4MCArMDEwMAorQEAgLTAsMCArMSw3NzcgQEAKKysvKgor KyoqICRJZDogbHVhY29uZi5oLHYgMS44MmEgMjAwNi8wNC8xMCAxODoyNzoyMyByb2JlcnRvIEV4 cCAkCisrKiogQ29uZmlndXJhdGlvbiBmaWxlIGZvciBMdWEKKysqKiBTZWUgQ29weXJpZ2h0IE5v dGljZSBpbiBsdWEuaAorKyovCisrCisrCisrI2lmbmRlZiBsY29uZmlnX2gKKysjZGVmaW5lIGxj b25maWdfaAorKworKyNpbmNsdWRlIDxsaW1pdHMuaD4KKysjaW5jbHVkZSA8c3RkZGVmLmg+Cisr CisrLyoKKysqKiA9PT09PT09PT09PT09PT09PQorKyoqIEF1dG90b29saWZpY2F0aW9uCisrKiog PT09PT09PT09PT09PT09PT0KKysqLworKworKy8qKiBhdXRvdG9vbGl6ZSBwYXRjaCAqKi8KKytA UE9TSVhfREVGU0AKKytATFVBX0RMX0RFRlNACisrQExVQV9CVUlMRF9BU19ETExfREVGU0AKKytA UkVBRExJTkVfREVGU0AKKysvKiogYXV0b3Rvb2xpemUgcGF0Y2ggKiovCisrCisrLyoKKysqKiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKysqKiBTZWFyY2ggZm9yICJAQCIgdG8gZmluZCBhbGwgY29uZmlndXJhYmxlIGRl ZmluaXRpb25zLgorKyoqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysqLworKworKworKy8qCisrQEAgTFVBX0FOU0kg Y29udHJvbHMgdGhlIHVzZSBvZiBub24tYW5zaSBmZWF0dXJlcy4KKysqKiBDSEFOR0UgaXQgKGRl ZmluZSBpdCkgaWYgeW91IHdhbnQgTHVhIHRvIGF2b2lkIHRoZSB1c2Ugb2YgYW55CisrKiogbm9u LWFuc2kgZmVhdHVyZSBvciBsaWJyYXJ5LgorKyovCisrI2lmIGRlZmluZWQoX19TVFJJQ1RfQU5T SV9fKQorKyNkZWZpbmUgTFVBX0FOU0kKKysjZW5kaWYKKysKKysKKysjaWYgIWRlZmluZWQoTFVB X0FOU0kpICYmIGRlZmluZWQoX1dJTjMyKQorKyNkZWZpbmUgTFVBX1dJTgorKyNlbmRpZgorKwor KyNpZiBkZWZpbmVkKExVQV9VU0VfTElOVVgpCisrI2RlZmluZSBMVUFfVVNFX1BPU0lYCisrI2Rl ZmluZSBMVUFfVVNFX0RMT1BFTgkJLyogbmVlZHMgYW4gZXh0cmEgbGlicmFyeTogLWxkbCAqLwor KyNkZWZpbmUgTFVBX1VTRV9SRUFETElORQkvKiBuZWVkcyBzb21lIGV4dHJhIGxpYnJhcmllcyAq LworKyNlbmRpZgorKworKyNpZiBkZWZpbmVkKExVQV9VU0VfTUFDT1NYKQorKyNkZWZpbmUgTFVB X1VTRV9QT1NJWAorKyNkZWZpbmUgTFVBX0RMX0RZTEQJCS8qIGRvZXMgbm90IG5lZWQgZXh0cmEg bGlicmFyeSAqLworKyNlbmRpZgorKworKworKworKy8qCisrQEAgTFVBX1VTRV9QT1NJWCBpbmNs dWRlcyBhbGwgZnVuY3Rpb25hbGxpdHkgbGlzdGVkIGFzIFgvT3BlbiBTeXN0ZW0KKytAKiBJbnRl cmZhY2VzIEV4dGVuc2lvbiAoWFNJKS4KKysqKiBDSEFOR0UgaXQgKGRlZmluZSBpdCkgaWYgeW91 ciBzeXN0ZW0gaXMgWFNJIGNvbXBhdGlibGUuCisrKi8KKysjaWYgZGVmaW5lZChMVUFfVVNFX1BP U0lYKQorKyNkZWZpbmUgTFVBX1VTRV9NS1NURU1QCisrI2RlZmluZSBMVUFfVVNFX0lTQVRUWQor KyNkZWZpbmUgTFVBX1VTRV9QT1BFTgorKyNkZWZpbmUgTFVBX1VTRV9VTE9OR0pNUAorKyNlbmRp ZgorKworKworKy8qCisrQEAgTFVBX1BBVEggYW5kIExVQV9DUEFUSCBhcmUgdGhlIG5hbWVzIG9m IHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdGhhdAorK0AqIEx1YSBjaGVjayB0byBzZXQgaXRz IHBhdGhzLgorK0BAIExVQV9JTklUIGlzIHRoZSBuYW1lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJp YWJsZSB0aGF0IEx1YQorK0AqIGNoZWNrcyBmb3IgaW5pdGlhbGl6YXRpb24gY29kZS4KKysqKiBD SEFOR0UgdGhlbSBpZiB5b3Ugd2FudCBkaWZmZXJlbnQgbmFtZXMuCisrKi8KKysjZGVmaW5lIExV QV9QQVRIICAgICAgICAiTFVBX1BBVEgiCisrI2RlZmluZSBMVUFfQ1BBVEggICAgICAgIkxVQV9D UEFUSCIKKysjZGVmaW5lIExVQV9JTklUCSJMVUFfSU5JVCIKKysKKysKKysvKgorK0BAIExVQV9Q QVRIX0RFRkFVTFQgaXMgdGhlIGRlZmF1bHQgcGF0aCB0aGF0IEx1YSB1c2VzIHRvIGxvb2sgZm9y CisrQCogTHVhIGxpYnJhcmllcy4KKytAQCBMVUFfQ1BBVEhfREVGQVVMVCBpcyB0aGUgZGVmYXVs dCBwYXRoIHRoYXQgTHVhIHVzZXMgdG8gbG9vayBmb3IKKytAKiBDIGxpYnJhcmllcy4KKysqKiBD SEFOR0UgdGhlbSBpZiB5b3VyIG1hY2hpbmUgaGFzIGEgbm9uLWNvbnZlbnRpb25hbCBkaXJlY3Rv cnkKKysqKiBoaWVyYXJjaHkgb3IgaWYgeW91IHdhbnQgdG8gaW5zdGFsbCB5b3VyIGxpYnJhcmll cyBpbgorKyoqIG5vbi1jb252ZW50aW9uYWwgZGlyZWN0b3JpZXMuCisrKi8KKysjaWYgZGVmaW5l ZChfV0lOMzIpCisrLyoKKysqKiBJbiBXaW5kb3dzLCBhbnkgZXhjbGFtYXRpb24gbWFyayAoJyEn KSBpbiB0aGUgcGF0aCBpcyByZXBsYWNlZCBieSB0aGUKKysqKiBwYXRoIG9mIHRoZSBkaXJlY3Rv cnkgb2YgdGhlIGV4ZWN1dGFibGUgZmlsZSBvZiB0aGUgY3VycmVudCBwcm9jZXNzLgorKyovCisr I2RlZmluZSBMVUFfTERJUgkiIVxcbHVhXFwiCisrI2RlZmluZSBMVUFfQ0RJUgkiIVxcIgorKyNk ZWZpbmUgTFVBX1BBVEhfREVGQVVMVCAgXAorKwkJIi5cXD8ubHVhOyIgIExVQV9MRElSIj8ubHVh OyIgIExVQV9MRElSIj9cXGluaXQubHVhOyIgXAorKwkJICAgICAgICAgICAgIExVQV9DRElSIj8u bHVhOyIgIExVQV9DRElSIj9cXGluaXQubHVhIgorKyNkZWZpbmUgTFVBX0NQQVRIX0RFRkFVTFQg XAorKwkiLlxcPy5kbGw7IiAgTFVBX0NESVIiPy5kbGw7IiBMVUFfQ0RJUiJsb2FkYWxsLmRsbCIK KysKKysjZWxzZQorKworKy8qKiBhdXRvdG9vbGl6ZSBwYXRjaCAqKi8KKysjZGVmaW5lIExVQV9M RElSCSIlbHVhX2RhdGFkaXIlL2x1YS81LjEvIgorKyNkZWZpbmUgTFVBX0NESVIJIiVsdWFfbGli ZGlyJS9sdWEvNS4xLyIKKysvKiogYXV0b3Rvb2xpemUgcGF0Y2ggKiovCisrCisrI2RlZmluZSBM VUFfUEFUSF9ERUZBVUxUICBcCisrCQkiLi8/Lmx1YTsiICBMVUFfTERJUiI/Lmx1YTsiICBMVUFf TERJUiI/L2luaXQubHVhOyIgXAorKwkJICAgICAgICAgICAgTFVBX0NESVIiPy5sdWE7IiAgTFVB X0NESVIiPy9pbml0Lmx1YSIKKysjZGVmaW5lIExVQV9DUEFUSF9ERUZBVUxUIFwKKysJIi4vPy5z bzsiICBMVUFfQ0RJUiI/LnNvOyIgTFVBX0NESVIibG9hZGFsbC5zbyIKKysjZW5kaWYKKysKKysK KysvKgorK0BAIExVQV9ESVJTRVAgaXMgdGhlIGRpcmVjdG9yeSBzZXBhcmF0b3IgKGZvciBzdWJt b2R1bGVzKS4KKysqKiBDSEFOR0UgaXQgaWYgeW91ciBtYWNoaW5lIGRvZXMgbm90IHVzZSAiLyIg YXMgdGhlIGRpcmVjdG9yeSBzZXBhcmF0b3IKKysqKiBhbmQgaXMgbm90IFdpbmRvd3MuIChPbiBX aW5kb3dzIEx1YSBhdXRvbWF0aWNhbGx5IHVzZXMgIlwiLikKKysqLworKyNpZiBkZWZpbmVkKF9X SU4zMikKKysjZGVmaW5lIExVQV9ESVJTRVAJIlxcIgorKyNlbHNlCisrI2RlZmluZSBMVUFfRElS U0VQCSIvIgorKyNlbmRpZgorKworKworKy8qCisrQEAgTFVBX1BBVEhTRVAgaXMgdGhlIGNoYXJh Y3RlciB0aGF0IHNlcGFyYXRlcyB0ZW1wbGF0ZXMgaW4gYSBwYXRoLgorK0BAIExVQV9QQVRIX01B UksgaXMgdGhlIHN0cmluZyB0aGF0IG1hcmtzIHRoZSBzdWJzdGl0dXRpb24gcG9pbnRzIGluIGEK KytAKiB0ZW1wbGF0ZS4KKytAQCBMVUFfRVhFQ0RJUiBpbiBhIFdpbmRvd3MgcGF0aCBpcyByZXBs YWNlZCBieSB0aGUgZXhlY3V0YWJsZSdzCisrQCogZGlyZWN0b3J5LgorK0BAIExVQV9JR01BUksg aXMgYSBtYXJrIHRvIGlnbm9yZSBhbGwgYmVmb3JlIGl0IHdoZW4gYnVsZGluZyB0aGUKKytAKiBs dWFvcGVuXyBmdW5jdGlvbiBuYW1lLgorKyoqIENIQU5HRSB0aGVtIGlmIGZvciBzb21lIHJlYXNv biB5b3VyIHN5c3RlbSBjYW5ub3QgdXNlIHRob3NlCisrKiogY2hhcmFjdGVycy4gKEUuZy4sIGlm IG9uZSBvZiB0aG9zZSBjaGFyYWN0ZXJzIGlzIGEgY29tbW9uIGNoYXJhY3RlcgorKyoqIGluIGZp bGUvZGlyZWN0b3J5IG5hbWVzLikgUHJvYmFibHkgeW91IGRvIG5vdCBuZWVkIHRvIGNoYW5nZSB0 aGVtLgorKyovCisrI2RlZmluZSBMVUFfUEFUSFNFUAkiOyIKKysjZGVmaW5lIExVQV9QQVRIX01B UksJIj8iCisrI2RlZmluZSBMVUFfRVhFQ0RJUgkiISIKKysjZGVmaW5lIExVQV9JR01BUksJIi0i CisrCisrCisrLyoKKytAQCBMVUFfSU5URUdFUiBpcyB0aGUgaW50ZWdyYWwgdHlwZSB1c2VkIGJ5 IGx1YV9wdXNoaW50ZWdlci9sdWFfdG9pbnRlZ2VyLgorKyoqIENIQU5HRSB0aGF0IGlmIHB0cmRp ZmZfdCBpcyBub3QgYWRlcXVhdGUgb24geW91ciBtYWNoaW5lLiAoT24gbW9zdAorKyoqIG1hY2hp bmVzLCBwdHJkaWZmX3QgZ2l2ZXMgYSBnb29kIGNob2ljZSBiZXR3ZWVuIGludCBvciBsb25nLikK KysqLworKyNkZWZpbmUgTFVBX0lOVEVHRVIJcHRyZGlmZl90CisrCisrCisrLyoKKytAQCBMVUFf QVBJIGlzIGEgbWFyayBmb3IgYWxsIGNvcmUgQVBJIGZ1bmN0aW9ucy4KKytAQCBMVUFMSUJfQVBJ IGlzIGEgbWFyayBmb3IgYWxsIHN0YW5kYXJkIGxpYnJhcnkgZnVuY3Rpb25zLgorKyoqIENIQU5H RSB0aGVtIGlmIHlvdSBuZWVkIHRvIGRlZmluZSB0aG9zZSBmdW5jdGlvbnMgaW4gc29tZSBzcGVj aWFsIHdheS4KKysqKiBGb3IgaW5zdGFuY2UsIGlmIHlvdSB3YW50IHRvIGNyZWF0ZSBvbmUgV2lu ZG93cyBETEwgd2l0aCB0aGUgY29yZSBhbmQKKysqKiB0aGUgbGlicmFyaWVzLCB5b3UgbWF5IHdh bnQgdG8gdXNlIHRoZSBmb2xsb3dpbmcgZGVmaW5pdGlvbiAoZGVmaW5lCisrKiogTFVBX0JVSUxE X0FTX0RMTCB0byBnZXQgaXQpLgorKyovCisrI2lmIGRlZmluZWQoTFVBX0JVSUxEX0FTX0RMTCkK KysKKysjaWYgZGVmaW5lZChMVUFfQ09SRSkgfHwgZGVmaW5lZChMVUFfTElCKQorKyNkZWZpbmUg TFVBX0FQSSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKKysjZWxzZQorKyNkZWZpbmUgTFVBX0FQSSBf X2RlY2xzcGVjKGRsbGltcG9ydCkKKysjZW5kaWYKKysKKysjZWxzZQorKworKyNkZWZpbmUgTFVB X0FQSQkJZXh0ZXJuCisrCisrI2VuZGlmCisrCisrLyogbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGUg bGlicyBnbyB0b2dldGhlciB3aXRoIHRoZSBjb3JlICovCisrI2RlZmluZSBMVUFMSUJfQVBJCUxV QV9BUEkKKysKKysKKysvKgorK0BAIExVQUlfRlVOQyBpcyBhIG1hcmsgZm9yIGFsbCBleHRlcm4g ZnVuY3Rpb25zIHRoYXQgYXJlIG5vdCB0byBiZQorK0AqIGV4cG9ydGVkIHRvIG91dHNpZGUgbW9k dWxlcy4KKytAQCBMVUFJX0RBVEEgaXMgYSBtYXJrIGZvciBhbGwgZXh0ZXJuIChjb25zdCkgdmFy aWFibGVzIHRoYXQgYXJlIG5vdCB0bworK0AqIGJlIGV4cG9ydGVkIHRvIG91dHNpZGUgbW9kdWxl cy4KKysqKiBDSEFOR0UgdGhlbSBpZiB5b3UgbmVlZCB0byBtYXJrIHRoZW0gaW4gc29tZSBzcGVj aWFsIHdheS4gRWxmL2djYworKyoqICh2ZXJzaW9ucyAzLjIgYW5kIGxhdGVyKSBtYXJrIHRoZW0g YXMgImhpZGRlbiIgdG8gb3B0aW1pemUgYWNjZXNzCisrKiogd2hlbiBMdWEgaXMgY29tcGlsZWQg YXMgYSBzaGFyZWQgbGlicmFyeS4KKysqLworKyNpZiBkZWZpbmVkKGx1YWFsbF9jKQorKyNkZWZp bmUgTFVBSV9GVU5DCXN0YXRpYworKyNkZWZpbmUgTFVBSV9EQVRBCS8qIGVtcHR5ICovCisrCisr I2VsaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKChfX0dOVUNfXyoxMDAgKyBfX0dOVUNfTUlOT1Jf XykgPj0gMzAyKSAmJiBcCisrICAgICAgZGVmaW5lZChfX0VMRl9fKQorKyNkZWZpbmUgTFVBSV9G VU5DCV9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImhpZGRlbiIpKSkgZXh0ZXJuCisrI2RlZmlu ZSBMVUFJX0RBVEEJTFVBSV9GVU5DCisrCisrI2Vsc2UKKysjZGVmaW5lIExVQUlfRlVOQwlleHRl cm4KKysjZGVmaW5lIExVQUlfREFUQQlleHRlcm4KKysjZW5kaWYKKysKKysKKysKKysvKgorK0BA IExVQV9RTCBkZXNjcmliZXMgaG93IGVycm9yIG1lc3NhZ2VzIHF1b3RlIHByb2dyYW0gZWxlbWVu dHMuCisrKiogQ0hBTkdFIGl0IGlmIHlvdSB3YW50IGEgZGlmZmVyZW50IGFwcGVhcmFuY2UuCisr Ki8KKysjZGVmaW5lIExVQV9RTCh4KQkiJyIgeCAiJyIKKysjZGVmaW5lIExVQV9RUwkJTFVBX1FM KCIlcyIpCisrCisrCisrLyoKKytAQCBMVUFfSURTSVpFIGdpdmVzIHRoZSBtYXhpbXVtIHNpemUg Zm9yIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgc291cmNlCisrQCogb2YgYSBmdW5jdGlvbiBpbiBk ZWJ1ZyBpbmZvcm1hdGlvbi4KKysqKiBDSEFOR0UgaXQgaWYgeW91IHdhbnQgYSBkaWZmZXJlbnQg c2l6ZS4KKysqLworKyNkZWZpbmUgTFVBX0lEU0laRQk2MAorKworKworKy8qCisrKiogez09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorKyoqIFN0YW5kLWFsb25lIGNvbmZpZ3VyYXRpb24KKysqKiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrKi8K KysKKysjaWYgZGVmaW5lZChsdWFfYykgfHwgZGVmaW5lZChsdWFhbGxfYykKKysKKysvKgorK0BA IGx1YV9zdGRpbl9pc190dHkgZGV0ZWN0cyB3aGV0aGVyIHRoZSBzdGFuZGFyZCBpbnB1dCBpcyBh ICd0dHknICh0aGF0CisrQCogaXMsIHdoZXRoZXIgd2UncmUgcnVubmluZyBsdWEgaW50ZXJhY3Rp dmVseSkuCisrKiogQ0hBTkdFIGl0IGlmIHlvdSBoYXZlIGEgYmV0dGVyIGRlZmluaXRpb24gZm9y IG5vbi1QT1NJWC9ub24tV2luZG93cworKyoqIHN5c3RlbXMuCisrKi8KKysjaWYgZGVmaW5lZChM VUFfVVNFX0lTQVRUWSkKKysjaW5jbHVkZSA8dW5pc3RkLmg+CisrI2RlZmluZSBsdWFfc3RkaW5f aXNfdHR5KCkJaXNhdHR5KDApCisrI2VsaWYgZGVmaW5lZChMVUFfV0lOKQorKyNpbmNsdWRlIDxp by5oPgorKyNpbmNsdWRlIDxzdGRpby5oPgorKyNkZWZpbmUgbHVhX3N0ZGluX2lzX3R0eSgpCV9p c2F0dHkoX2ZpbGVubyhzdGRpbikpCisrI2Vsc2UKKysjZGVmaW5lIGx1YV9zdGRpbl9pc190dHko KQkxICAvKiBhc3N1bWUgc3RkaW4gaXMgYSB0dHkgKi8KKysjZW5kaWYKKysKKysKKysvKgorK0BA IExVQV9QUk9NUFQgaXMgdGhlIGRlZmF1bHQgcHJvbXB0IHVzZWQgYnkgc3RhbmQtYWxvbmUgTHVh LgorK0BAIExVQV9QUk9NUFQyIGlzIHRoZSBkZWZhdWx0IGNvbnRpbnVhdGlvbiBwcm9tcHQgdXNl ZCBieSBzdGFuZC1hbG9uZSBMdWEuCisrKiogQ0hBTkdFIHRoZW0gaWYgeW91IHdhbnQgZGlmZmVy ZW50IHByb21wdHMuIChZb3UgY2FuIGFsc28gY2hhbmdlIHRoZQorKyoqIHByb21wdHMgZHluYW1p Y2FsbHksIGFzc2lnbmluZyB0byBnbG9iYWxzIF9QUk9NUFQvX1BST01QVDIuKQorKyovCisrI2Rl ZmluZSBMVUFfUFJPTVBUCQkiPiAiCisrI2RlZmluZSBMVUFfUFJPTVBUMgkJIj4+ICIKKysKKysK KysvKgorK0BAIExVQV9QUk9HTkFNRSBpcyB0aGUgZGVmYXVsdCBuYW1lIGZvciB0aGUgc3RhbmQt YWxvbmUgTHVhIHByb2dyYW0uCisrKiogQ0hBTkdFIGl0IGlmIHlvdXIgc3RhbmQtYWxvbmUgaW50 ZXJwcmV0ZXIgaGFzIGEgZGlmZmVyZW50IG5hbWUgYW5kCisrKiogeW91ciBzeXN0ZW0gaXMgbm90 IGFibGUgdG8gZGV0ZWN0IHRoYXQgbmFtZSBhdXRvbWF0aWNhbGx5LgorKyovCisrI2RlZmluZSBM VUFfUFJPR05BTUUJCSJsdWEiCisrCisrCisrLyoKKytAQCBMVUFfTUFYSU5QVVQgaXMgdGhlIG1h eGltdW0gbGVuZ3RoIGZvciBhbiBpbnB1dCBsaW5lIGluIHRoZQorK0AqIHN0YW5kLWFsb25lIGlu dGVycHJldGVyLgorKyoqIENIQU5HRSBpdCBpZiB5b3UgbmVlZCBsb25nZXIgbGluZXMuCisrKi8K KysjZGVmaW5lIExVQV9NQVhJTlBVVAk1MTIKKysKKysKKysvKgorK0BAIGx1YV9yZWFkbGluZSBk ZWZpbmVzIGhvdyB0byBzaG93IGEgcHJvbXB0IGFuZCB0aGVuIHJlYWQgYSBsaW5lIGZyb20KKytA KiB0aGUgc3RhbmRhcmQgaW5wdXQuCisrQEAgbHVhX3NhdmVsaW5lIGRlZmluZXMgaG93IHRvICJz YXZlIiBhIHJlYWQgbGluZSBpbiBhICJoaXN0b3J5Ii4KKytAQCBsdWFfZnJlZWxpbmUgZGVmaW5l cyBob3cgdG8gZnJlZSBhIGxpbmUgcmVhZCBieSBsdWFfcmVhZGxpbmUuCisrKiogQ0hBTkdFIHRo ZW0gaWYgeW91IHdhbnQgdG8gaW1wcm92ZSB0aGlzIGZ1bmN0aW9uYWxpdHkgKGUuZy4sIGJ5IHVz aW5nCisrKiogR05VIHJlYWRsaW5lIGFuZCBoaXN0b3J5IGZhY2lsaXRpZXMpLgorKyovCisrI2lm IGRlZmluZWQoTFVBX1VTRV9SRUFETElORSkKKysjaW5jbHVkZSA8c3RkaW8uaD4KKysjaW5jbHVk ZSA8cmVhZGxpbmUvcmVhZGxpbmUuaD4KKysjaW5jbHVkZSA8cmVhZGxpbmUvaGlzdG9yeS5oPgor KyNkZWZpbmUgbHVhX3JlYWRsaW5lKEwsYixwKQkoKHZvaWQpTCwgKChiKT1yZWFkbGluZShwKSkg IT0gTlVMTCkKKysjZGVmaW5lIGx1YV9zYXZlbGluZShMLGlkeCkgXAorKwlpZiAobHVhX3N0cmxl bihMLGlkeCkgPiAwKSAgLyogbm9uLWVtcHR5IGxpbmU/ICovIFwKKysJICBhZGRfaGlzdG9yeShs dWFfdG9zdHJpbmcoTCwgaWR4KSk7ICAvKiBhZGQgaXQgdG8gaGlzdG9yeSAqLworKyNkZWZpbmUg bHVhX2ZyZWVsaW5lKEwsYikJKCh2b2lkKUwsIGZyZWUoYikpCisrI2Vsc2UKKysjZGVmaW5lIGx1 YV9yZWFkbGluZShMLGIscCkJXAorKwkoKHZvaWQpTCwgZnB1dHMocCwgc3Rkb3V0KSwgZmZsdXNo KHN0ZG91dCksICAvKiBzaG93IHByb21wdCAqLyBcCisrCWZnZXRzKGIsIExVQV9NQVhJTlBVVCwg c3RkaW4pICE9IE5VTEwpICAvKiBnZXQgbGluZSAqLworKyNkZWZpbmUgbHVhX3NhdmVsaW5lKEws aWR4KQl7ICh2b2lkKUw7ICh2b2lkKWlkeDsgfQorKyNkZWZpbmUgbHVhX2ZyZWVsaW5lKEwsYikJ eyAodm9pZClMOyAodm9pZCliOyB9CisrI2VuZGlmCisrCisrI2VuZGlmCisrCisrLyogfT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PSAqLworKworKworKy8qCisrQEAgTFVBSV9HQ1BBVVNFIGRlZmluZXMgdGhlIGRlZmF1bHQg cGF1c2UgYmV0d2VlbiBnYXJiYWdlLWNvbGxlY3RvciBjeWNsZXMKKytAKiBhcyBhIHBlcmNlbnRh Z2UuCisrKiogQ0hBTkdFIGl0IGlmIHlvdSB3YW50IHRoZSBHQyB0byBydW4gZmFzdGVyIG9yIHNs b3dlciAoaGlnaGVyIHZhbHVlcworKyoqIG1lYW4gbGFyZ2VyIHBhdXNlcyB3aGljaCBtZWFuIHNs b3dlciBjb2xsZWN0aW9uLikgWW91IGNhbiBhbHNvIGNoYW5nZQorKyoqIHRoaXMgdmFsdWUgZHlu YW1pY2FsbHkuCisrKi8KKysjZGVmaW5lIExVQUlfR0NQQVVTRQkyMDAgIC8qIDIwMCUgKHdhaXQg bWVtb3J5IHRvIGRvdWJsZSBiZWZvcmUgbmV4dCBHQykgKi8KKysKKysKKysvKgorK0BAIExVQUlf R0NNVUwgZGVmaW5lcyB0aGUgZGVmYXVsdCBzcGVlZCBvZiBnYXJiYWdlIGNvbGxlY3Rpb24gcmVs YXRpdmUgdG8KKytAKiBtZW1vcnkgYWxsb2NhdGlvbiBhcyBhIHBlcmNlbnRhZ2UuCisrKiogQ0hB TkdFIGl0IGlmIHlvdSB3YW50IHRvIGNoYW5nZSB0aGUgZ3JhbnVsYXJpdHkgb2YgdGhlIGdhcmJh Z2UKKysqKiBjb2xsZWN0aW9uLiAoSGlnaGVyIHZhbHVlcyBtZWFuIGNvYXJzZXIgY29sbGVjdGlv bnMuIDAgcmVwcmVzZW50cworKyoqIGluZmluaXR5LCB3aGVyZSBlYWNoIHN0ZXAgcGVyZm9ybXMg YSBmdWxsIGNvbGxlY3Rpb24uKSBZb3UgY2FuIGFsc28KKysqKiBjaGFuZ2UgdGhpcyB2YWx1ZSBk eW5hbWljYWxseS4KKysqLworKyNkZWZpbmUgTFVBSV9HQ01VTAkyMDAgLyogR0MgcnVucyAndHdp Y2UgdGhlIHNwZWVkJyBvZiBtZW1vcnkgYWxsb2NhdGlvbiAqLworKworKworKworKy8qCisrQEAg TFVBX0NPTVBBVF9HRVROIGNvbnRyb2xzIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgZ2V0biBiZWhh dmlvci4KKysqKiBDSEFOR0UgaXQgKGRlZmluZSBpdCkgaWYgeW91IHdhbnQgZXhhY3QgY29tcGF0 aWJpbGl0eSB3aXRoIHRoZQorKyoqIGJlaGF2aW9yIG9mIHNldG4vZ2V0biBpbiBMdWEgNS4wLgor KyovCisrI3VuZGVmIExVQV9DT01QQVRfR0VUTgorKworKy8qCisrQEAgTFVBX0NPTVBBVF9MT0FE TElCIGNvbnRyb2xzIGNvbXBhdGliaWxpdHkgYWJvdXQgZ2xvYmFsIGxvYWRsaWIuCisrKiogQ0hB TkdFIGl0IHRvIHVuZGVmaW5lZCBhcyBzb29uIGFzIHlvdSBkbyBub3QgbmVlZCBhIGdsb2JhbCAn bG9hZGxpYicKKysqKiBmdW5jdGlvbiAodGhlIGZ1bmN0aW9uIGlzIHN0aWxsIGF2YWlsYWJsZSBh cyAncGFja2FnZS5sb2FkbGliJykuCisrKi8KKysjdW5kZWYgTFVBX0NPTVBBVF9MT0FETElCCisr CisrLyoKKytAQCBMVUFfQ09NUEFUX1ZBUkFSRyBjb250cm9scyBjb21wYXRpYmlsaXR5IHdpdGgg b2xkIHZhcmFyZyBmZWF0dXJlLgorKyoqIENIQU5HRSBpdCB0byB1bmRlZmluZWQgYXMgc29vbiBh cyB5b3VyIHByb2dyYW1zIHVzZSBvbmx5ICcuLi4nIHRvCisrKiogYWNjZXNzIHZhcmFyZyBwYXJh bWV0ZXJzIChpbnN0ZWFkIG9mIHRoZSBvbGQgJ2FyZycgdGFibGUpLgorKyovCisrI2RlZmluZSBM VUFfQ09NUEFUX1ZBUkFSRworKworKy8qCisrQEAgTFVBX0NPTVBBVF9NT0QgY29udHJvbHMgY29t cGF0aWJpbGl0eSB3aXRoIG9sZCBtYXRoLm1vZCBmdW5jdGlvbi4KKysqKiBDSEFOR0UgaXQgdG8g dW5kZWZpbmVkIGFzIHNvb24gYXMgeW91ciBwcm9ncmFtcyB1c2UgJ21hdGguZm1vZCcgb3IKKysq KiB0aGUgbmV3ICclJyBvcGVyYXRvciBpbnN0ZWFkIG9mICdtYXRoLm1vZCcuCisrKi8KKysjZGVm aW5lIExVQV9DT01QQVRfTU9ECisrCisrLyoKKytAQCBMVUFfQ09NUEFUX0xTVFIgY29udHJvbHMg Y29tcGF0aWJpbGl0eSB3aXRoIG9sZCBsb25nIHN0cmluZyBuZXN0aW5nCisrQCogZmFjaWxpdHku CisrKiogQ0hBTkdFIGl0IHRvIDIgaWYgeW91IHdhbnQgdGhlIG9sZCBiZWhhdmlvdXIsIG9yIHVu ZGVmaW5lIGl0IHRvIHR1cm4KKysqKiBvZmYgdGhlIGFkdmlzb3J5IGVycm9yIHdoZW4gbmVzdGlu ZyBbWy4uLl1dLgorKyovCisrI2RlZmluZSBMVUFfQ09NUEFUX0xTVFIJCTEKKysKKysvKgorK0BA IExVQV9DT01QQVRfR0ZJTkQgY29udHJvbHMgY29tcGF0aWJpbGl0eSB3aXRoIG9sZCAnc3RyaW5n LmdmaW5kJyBuYW1lLgorKyoqIENIQU5HRSBpdCB0byB1bmRlZmluZWQgYXMgc29vbiBhcyB5b3Ug cmVuYW1lICdzdHJpbmcuZ2ZpbmQnIHRvCisrKiogJ3N0cmluZy5nbWF0Y2gnLgorKyovCisrI2Rl ZmluZSBMVUFfQ09NUEFUX0dGSU5ECisrCisrLyoKKytAQCBMVUFfQ09NUEFUX09QRU5MSUIgY29u dHJvbHMgY29tcGF0aWJpbGl0eSB3aXRoIG9sZCAnbHVhTF9vcGVubGliJworK0AqIGJlaGF2aW9y LgorKyoqIENIQU5HRSBpdCB0byB1bmRlZmluZWQgYXMgc29vbiBhcyB5b3UgcmVwbGFjZSB0byAn bHVhTF9yZWdpc3RlcicKKysqKiB5b3VyIHVzZXMgb2YgJ2x1YUxfb3BlbmxpYicKKysqLworKyNk ZWZpbmUgTFVBX0NPTVBBVF9PUEVOTElCCisrCisrCisrCisrLyoKKytAQCBsdWFpX2FwaWNoZWNr IGlzIHRoZSBhc3NlcnQgbWFjcm8gdXNlZCBieSB0aGUgTHVhLUMgQVBJLgorKyoqIENIQU5HRSBs dWFpX2FwaWNoZWNrIGlmIHlvdSB3YW50IEx1YSB0byBwZXJmb3JtIHNvbWUgY2hlY2tzIGluIHRo ZQorKyoqIHBhcmFtZXRlcnMgaXQgZ2V0cyBmcm9tIEFQSSBjYWxscy4gVGhpcyBtYXkgc2xvdyBk b3duIHRoZSBpbnRlcnByZXRlcgorKyoqIGEgYml0LCBidXQgbWF5IGJlIHF1aXRlIHVzZWZ1bCB3 aGVuIGRlYnVnZ2luZyBDIGNvZGUgdGhhdCBpbnRlcmZhY2VzCisrKiogd2l0aCBMdWEuIEEgdXNl ZnVsIHJlZGVmaW5pdGlvbiBpcyB0byB1c2UgYXNzZXJ0LmguCisrKi8KKysjaWYgZGVmaW5lZChM VUFfVVNFX0FQSUNIRUNLKQorKyNpbmNsdWRlIDxhc3NlcnQuaD4KKysjZGVmaW5lIGx1YWlfYXBp Y2hlY2soTCxvKQl7ICh2b2lkKUw7IGFzc2VydChvKTsgfQorKyNlbHNlCisrI2RlZmluZSBsdWFp X2FwaWNoZWNrKEwsbykJeyAodm9pZClMOyB9CisrI2VuZGlmCisrCisrCisrLyoKKytAQCBMVUFJ X0JJVFNJTlQgZGVmaW5lcyB0aGUgbnVtYmVyIG9mIGJpdHMgaW4gYW4gaW50LgorKyoqIENIQU5H RSBoZXJlIGlmIEx1YSBjYW5ub3QgYXV0b21hdGljYWxseSBkZXRlY3QgdGhlIG51bWJlciBvZiBi aXRzIG9mCisrKiogeW91ciBtYWNoaW5lLiBQcm9iYWJseSB5b3UgZG8gbm90IG5lZWQgdG8gY2hh bmdlIHRoaXMuCisrKi8KKysvKiBhdm9pZCBvdmVyZmxvd3MgaW4gY29tcGFyaXNvbiAqLworKyNp ZiBJTlRfTUFYLTIwIDwgMzI3NjAKKysjZGVmaW5lIExVQUlfQklUU0lOVAkxNgorKyNlbGlmIElO VF9NQVggPiAyMTQ3NDgzNjQwTAorKy8qIGludCBoYXMgYXQgbGVhc3QgMzIgYml0cyAqLworKyNk ZWZpbmUgTFVBSV9CSVRTSU5UCTMyCisrI2Vsc2UKKysjZXJyb3IgInlvdSBtdXN0IGRlZmluZSBM VUFfQklUU0lOVCB3aXRoIG51bWJlciBvZiBiaXRzIGluIGFuIGludGVnZXIiCisrI2VuZGlmCisr CisrCisrLyoKKytAQCBMVUFJX1VJTlQzMiBpcyBhbiB1bnNpZ25lZCBpbnRlZ2VyIHdpdGggYXQg bGVhc3QgMzIgYml0cy4KKytAQCBMVUFJX0lOVDMyIGlzIGFuIHNpZ25lZCBpbnRlZ2VyIHdpdGgg YXQgbGVhc3QgMzIgYml0cy4KKytAQCBMVUFJX1VNRU0gaXMgYW4gdW5zaWduZWQgaW50ZWdlciBi aWcgZW5vdWdoIHRvIGNvdW50IHRoZSB0b3RhbAorK0AqIG1lbW9yeSB1c2VkIGJ5IEx1YS4KKytA QCBMVUFJX01FTSBpcyBhIHNpZ25lZCBpbnRlZ2VyIGJpZyBlbm91Z2ggdG8gY291bnQgdGhlIHRv dGFsIG1lbW9yeQorK0AqIHVzZWQgYnkgTHVhLgorKyoqIENIQU5HRSBoZXJlIGlmIGZvciBzb21l IHdlaXJkIHJlYXNvbiB0aGUgZGVmYXVsdCBkZWZpbml0aW9ucyBhcmUgbm90CisrKiogZ29vZCBl bm91Z2ggZm9yIHlvdXIgbWFjaGluZS4gKFRoZSBkZWZpbml0aW9ucyBpbiB0aGUgJ2Vsc2UnCisr KiogcGFydCBhbHdheXMgd29ya3MsIGJ1dCBtYXkgd2FzdGUgc3BhY2Ugb24gbWFjaGluZXMgd2l0 aCA2NC1iaXQKKysqKiBsb25ncy4pIFByb2JhYmx5IHlvdSBkbyBub3QgbmVlZCB0byBjaGFuZ2Ug dGhpcy4KKysqLworKyNpZiBMVUFJX0JJVFNJTlQgPj0gMzIKKysjZGVmaW5lIExVQUlfVUlOVDMy CXVuc2lnbmVkIGludAorKyNkZWZpbmUgTFVBSV9JTlQzMglpbnQKKysjZGVmaW5lIExVQUlfTUFY SU5UMzIJSU5UX01BWAorKyNkZWZpbmUgTFVBSV9VTUVNCXNpemVfdAorKyNkZWZpbmUgTFVBSV9N RU0JcHRyZGlmZl90CisrI2Vsc2UKKysvKiAxNi1iaXQgaW50cyAqLworKyNkZWZpbmUgTFVBSV9V SU5UMzIJdW5zaWduZWQgbG9uZworKyNkZWZpbmUgTFVBSV9JTlQzMglsb25nCisrI2RlZmluZSBM VUFJX01BWElOVDMyCUxPTkdfTUFYCisrI2RlZmluZSBMVUFJX1VNRU0JdW5zaWduZWQgbG9uZwor KyNkZWZpbmUgTFVBSV9NRU0JbG9uZworKyNlbmRpZgorKworKworKy8qCisrQEAgTFVBSV9NQVhD QUxMUyBsaW1pdHMgdGhlIG51bWJlciBvZiBuZXN0ZWQgY2FsbHMuCisrKiogQ0hBTkdFIGl0IGlm IHlvdSBuZWVkIHJlYWxseSBkZWVwIHJlY3Vyc2l2ZSBjYWxscy4gVGhpcyBsaW1pdCBpcworKyoq IGFyYml0cmFyeTsgaXRzIG9ubHkgcHVycG9zZSBpcyB0byBzdG9wIGluZmluaXRlIHJlY3Vyc2lv biBiZWZvcmUKKysqKiBleGhhdXN0aW5nIG1lbW9yeS4KKysqLworKyNkZWZpbmUgTFVBSV9NQVhD QUxMUwkyMDAwMAorKworKworKy8qCisrQEAgTFVBSV9NQVhDU1RBQ0sgbGltaXRzIHRoZSBudW1i ZXIgb2YgTHVhIHN0YWNrIHNsb3RzIHRoYXQgYSBDIGZ1bmN0aW9uCisrQCogY2FuIHVzZS4KKysq KiBDSEFOR0UgaXQgaWYgeW91IG5lZWQgbG90cyBvZiAoTHVhKSBzdGFjayBzcGFjZSBmb3IgeW91 ciBDCisrKiogZnVuY3Rpb25zLiBUaGlzIGxpbWl0IGlzIGFyYml0cmFyeTsgaXRzIG9ubHkgcHVy cG9zZSBpcyB0byBzdG9wIEMKKysqKiBmdW5jdGlvbnMgdG8gY29uc3VtZSB1bmxpbWl0ZWQgc3Rh Y2sgc3BhY2UuCisrKi8KKysjZGVmaW5lIExVQUlfTUFYQ1NUQUNLCTIwNDgKKysKKysKKysKKysv KgorKyoqIHs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKysqKiBDSEFOR0UgKHRvIHNtYWxsZXIgdmFsdWVzKSB0aGUgZm9s bG93aW5nIGRlZmluaXRpb25zIGlmIHlvdXIgc3lzdGVtCisrKiogaGFzIGEgc21hbGwgQyBzdGFj ay4gKE9yIHlvdSBtYXkgd2FudCB0byBjaGFuZ2UgdGhlbSB0byBsYXJnZXIKKysqKiB2YWx1ZXMg aWYgeW91ciBzeXN0ZW0gaGFzIGEgbGFyZ2UgQyBzdGFjayBhbmQgdGhlc2UgbGltaXRzIGFyZQor KyoqIHRvbyByaWdpZCBmb3IgeW91LikgU29tZSBvZiB0aGVzZSBjb25zdGFudHMgY29udHJvbCB0 aGUgc2l6ZSBvZgorKyoqIHN0YWNrLWFsbG9jYXRlZCBhcnJheXMgdXNlZCBieSB0aGUgY29tcGls ZXIgb3IgdGhlIGludGVycHJldGVyLCB3aGlsZQorKyoqIG90aGVycyBsaW1pdCB0aGUgbWF4aW11 bSBudW1iZXIgb2YgcmVjdXJzaXZlIGNhbGxzIHRoYXQgdGhlIGNvbXBpbGVyCisrKiogb3IgdGhl IGludGVycHJldGVyIGNhbiBwZXJmb3JtLiBWYWx1ZXMgdG9vIGxhcmdlIG1heSBjYXVzZSBhIEMg c3RhY2sKKysqKiBvdmVyZmxvdyBmb3Igc29tZSBmb3JtcyBvZiBkZWVwIGNvbnN0cnVjdHMuCisr KiogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorKyovCisrCisrCisrLyoKKytAQCBMVUFJX01BWENDQUxMUyBpcyB0aGUg bWF4aW11bSBkZXB0aCBmb3IgbmVzdGVkIEMgY2FsbHMgKHNob3J0KSBhbmQKKytAKiBzeW50YWN0 aWNhbCBuZXN0ZWQgbm9uLXRlcm1pbmFscyBpbiBhIHByb2dyYW0uCisrKi8KKysjZGVmaW5lIExV QUlfTUFYQ0NBTExTCQkyMDAKKysKKysKKysvKgorK0BAIExVQUlfTUFYVkFSUyBpcyB0aGUgbWF4 aW11bSBudW1iZXIgb2YgbG9jYWwgdmFyaWFibGVzIHBlciBmdW5jdGlvbgorK0AqIChtdXN0IGJl IHNtYWxsZXIgdGhhbiAyNTApLgorKyovCisrI2RlZmluZSBMVUFJX01BWFZBUlMJCTIwMAorKwor KworKy8qCisrQEAgTFVBSV9NQVhVUFZBTFVFUyBpcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgdXB2 YWx1ZXMgcGVyIGZ1bmN0aW9uCisrQCogKG11c3QgYmUgc21hbGxlciB0aGFuIDI1MCkuCisrKi8K KysjZGVmaW5lIExVQUlfTUFYVVBWQUxVRVMJNjAKKysKKysKKysvKgorK0BAIExVQUxfQlVGRkVS U0laRSBpcyB0aGUgYnVmZmVyIHNpemUgdXNlZCBieSB0aGUgbGF1eGxpYiBidWZmZXIgc3lzdGVt LgorKyovCisrI2RlZmluZSBMVUFMX0JVRkZFUlNJWkUJCUJVRlNJWgorKworKy8qIH09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0gKi8KKysKKysKKysKKysKKysvKgorKyoqIHs9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKytAQCBMVUFfTlVNQkVSIGlz IHRoZSB0eXBlIG9mIG51bWJlcnMgaW4gTHVhLgorKyoqIENIQU5HRSB0aGUgZm9sbG93aW5nIGRl ZmluaXRpb25zIG9ubHkgaWYgeW91IHdhbnQgdG8gYnVpbGQgTHVhCisrKiogd2l0aCBhIG51bWJl ciB0eXBlIGRpZmZlcmVudCBmcm9tIGRvdWJsZS4gWW91IG1heSBhbHNvIG5lZWQgdG8KKysqKiBj aGFuZ2UgbHVhX251bWJlcjJpbnQgJiBsdWFfbnVtYmVyMmludGVnZXIuCisrKiogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorKyovCisrCisrI2RlZmluZSBMVUFfTlVNQkVSX0RPVUJMRQorKyNkZWZpbmUgTFVBX05VTUJF Uglkb3VibGUKKysKKysvKgorK0BAIExVQUlfVUFDTlVNQkVSIGlzIHRoZSByZXN1bHQgb2YgYW4g J3VzdWFsIGFyZ3VtZW50IGNvbnZlcnNpb24nCisrQCogb3ZlciBhIG51bWJlci4KKysqLworKyNk ZWZpbmUgTFVBSV9VQUNOVU1CRVIJZG91YmxlCisrCisrCisrLyoKKytAQCBMVUFfTlVNQkVSX1ND QU4gaXMgdGhlIGZvcm1hdCBmb3IgcmVhZGluZyBudW1iZXJzLgorK0BAIExVQV9OVU1CRVJfRk1U IGlzIHRoZSBmb3JtYXQgZm9yIHdyaXRpbmcgbnVtYmVycy4KKytAQCBsdWFfbnVtYmVyMnN0ciBj b252ZXJ0cyBhIG51bWJlciB0byBhIHN0cmluZy4KKytAQCBMVUFJX01BWE5VTUJFUjJTVFIgaXMg bWF4aW11bSBzaXplIG9mIHByZXZpb3VzIGNvbnZlcnNpb24uCisrQEAgbHVhX3N0cjJudW1iZXIg Y29udmVydHMgYSBzdHJpbmcgdG8gYSBudW1iZXIuCisrKi8KKysjZGVmaW5lIExVQV9OVU1CRVJf U0NBTgkJIiVsZiIKKysjZGVmaW5lIExVQV9OVU1CRVJfRk1UCQkiJS4xNGciCisrI2RlZmluZSBs dWFfbnVtYmVyMnN0cihzLG4pCXNwcmludGYoKHMpLCBMVUFfTlVNQkVSX0ZNVCwgKG4pKQorKyNk ZWZpbmUgTFVBSV9NQVhOVU1CRVIyU1RSCTMyIC8qIDE2IGRpZ2l0cywgc2lnbiwgcG9pbnQsIGFu ZCBcMCAqLworKyNkZWZpbmUgbHVhX3N0cjJudW1iZXIocyxwKQlzdHJ0b2QoKHMpLCAocCkpCisr CisrCisrLyoKKytAQCBUaGUgbHVhaV9udW0qIG1hY3JvcyBkZWZpbmUgdGhlIHByaW1pdGl2ZSBv cGVyYXRpb25zIG92ZXIgbnVtYmVycy4KKysqLworKyNpZiBkZWZpbmVkKExVQV9DT1JFKQorKyNp bmNsdWRlIDxtYXRoLmg+CisrI2RlZmluZSBsdWFpX251bWFkZChhLGIpCSgoYSkrKGIpKQorKyNk ZWZpbmUgbHVhaV9udW1zdWIoYSxiKQkoKGEpLShiKSkKKysjZGVmaW5lIGx1YWlfbnVtbXVsKGEs YikJKChhKSooYikpCisrI2RlZmluZSBsdWFpX251bWRpdihhLGIpCSgoYSkvKGIpKQorKyNkZWZp bmUgbHVhaV9udW1tb2QoYSxiKQkoKGEpIC0gZmxvb3IoKGEpLyhiKSkqKGIpKQorKyNkZWZpbmUg bHVhaV9udW1wb3coYSxiKQkocG93KGEsYikpCisrI2RlZmluZSBsdWFpX251bXVubShhKQkJKC0o YSkpCisrI2RlZmluZSBsdWFpX251bWVxKGEsYikJCSgoYSk9PShiKSkKKysjZGVmaW5lIGx1YWlf bnVtbHQoYSxiKQkJKChhKTwoYikpCisrI2RlZmluZSBsdWFpX251bWxlKGEsYikJCSgoYSk8PShi KSkKKysjZGVmaW5lIGx1YWlfbnVtaXNuYW4oYSkJKCFsdWFpX251bWVxKChhKSwgKGEpKSkKKysj ZW5kaWYKKysKKysKKysvKgorK0BAIGx1YV9udW1iZXIyaW50IGlzIGEgbWFjcm8gdG8gY29udmVy dCBsdWFfTnVtYmVyIHRvIGludC4KKytAQCBsdWFfbnVtYmVyMmludGVnZXIgaXMgYSBtYWNybyB0 byBjb252ZXJ0IGx1YV9OdW1iZXIgdG8gbHVhX0ludGVnZXIuCisrKiogQ0hBTkdFIHRoZW0gaWYg eW91IGtub3cgYSBmYXN0ZXIgd2F5IHRvIGNvbnZlcnQgYSBsdWFfTnVtYmVyIHRvCisrKiogaW50 ICh3aXRoIGFueSByb3VuZGluZyBtZXRob2QgYW5kIHdpdGhvdXQgdGhyb3dpbmcgZXJyb3JzKSBp biB5b3VyCisrKiogc3lzdGVtLiBJbiBQZW50aXVtIG1hY2hpbmVzLCBhIG5haXZlIHR5cGVjYXN0 IGZyb20gZG91YmxlIHRvIGludAorKyoqIGluIEMgaXMgZXh0cmVtZWx5IHNsb3csIHNvIGFueSBh bHRlcm5hdGl2ZSBpcyB3b3J0aCB0cnlpbmcuCisrKi8KKysKKysvKiBPbiBhIFBlbnRpdW0sIHJl c29ydCB0byBhIHRyaWNrICovCisrI2lmIGRlZmluZWQoTFVBX05VTUJFUl9ET1VCTEUpICYmICFk ZWZpbmVkKExVQV9BTlNJKSAmJiAhZGVmaW5lZChfX1NTRTJfXykgJiYgXAorKyAgICAoZGVmaW5l ZChfX2kzODYpIHx8IGRlZmluZWQgKF9NX0lYODYpIHx8IGRlZmluZWQoX19pMzg2X18pKQorKwor Ky8qIE9uIGEgTWljcm9zb2Z0IGNvbXBpbGVyLCB1c2UgYXNzZW1ibGVyICovCisrI2lmIGRlZmlu ZWQoX01TQ19WRVIpCisrCisrI2RlZmluZSBsdWFfbnVtYmVyMmludChpLGQpICAgX19hc20gZmxk IGQgICBfX2FzbSBmaXN0cCBpCisrI2RlZmluZSBsdWFfbnVtYmVyMmludGVnZXIoaSxuKQkJbHVh X251bWJlcjJpbnQoaSwgbikKKysKKysvKiB0aGUgbmV4dCB0cmljayBzaG91bGQgd29yayBvbiBh bnkgUGVudGl1bSwgYnV0IHNvbWV0aW1lcyBjbGFzaGVzCisrICAgd2l0aCBhIERpcmVjdFggaWRp b3N5bmNyYXN5ICovCisrI2Vsc2UKKysKKyt1bmlvbiBsdWFpX0Nhc3QgeyBkb3VibGUgbF9kOyBs b25nIGxfbDsgfTsKKysjZGVmaW5lIGx1YV9udW1iZXIyaW50KGksZCkgXAorKyAgeyB2b2xhdGls ZSB1bmlvbiBsdWFpX0Nhc3QgdTsgdS5sX2QgPSAoZCkgKyA2NzU1Mzk5NDQxMDU1NzQ0LjA7IChp KSA9IHUubF9sOyB9CisrI2RlZmluZSBsdWFfbnVtYmVyMmludGVnZXIoaSxuKQkJbHVhX251bWJl cjJpbnQoaSwgbikKKysKKysjZW5kaWYKKysKKysKKysvKiB0aGlzIG9wdGlvbiBhbHdheXMgd29y a3MsIGJ1dCBtYXkgYmUgc2xvdyAqLworKyNlbHNlCisrI2RlZmluZSBsdWFfbnVtYmVyMmludChp LGQpCSgoaSk9KGludCkoZCkpCisrI2RlZmluZSBsdWFfbnVtYmVyMmludGVnZXIoaSxkKQkoKGkp PShsdWFfSW50ZWdlcikoZCkpCisrCisrI2VuZGlmCisrCisrLyogfT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworKwor KworKy8qCisrQEAgTFVBSV9VU0VSX0FMSUdOTUVOVF9UIGlzIGEgdHlwZSB0aGF0IHJlcXVpcmVz IG1heGltdW0gYWxpZ25tZW50LgorKyoqIENIQU5HRSBpdCBpZiB5b3VyIHN5c3RlbSByZXF1aXJl cyBhbGlnbm1lbnRzIGxhcmdlciB0aGFuIGRvdWJsZS4gKEZvcgorKyoqIGluc3RhbmNlLCBpZiB5 b3VyIHN5c3RlbSBzdXBwb3J0cyBsb25nIGRvdWJsZXMgYW5kIHRoZXkgbXVzdCBiZQorKyoqIGFs aWduZWQgaW4gMTYtYnl0ZSBib3VuZGFyaWVzLCB0aGVuIHlvdSBzaG91bGQgYWRkIGxvbmcgZG91 YmxlIGluIHRoZQorKyoqIHVuaW9uLikgUHJvYmFibHkgeW91IGRvIG5vdCBuZWVkIHRvIGNoYW5n ZSB0aGlzLgorKyovCisrI2RlZmluZSBMVUFJX1VTRVJfQUxJR05NRU5UX1QJdW5pb24geyBkb3Vi bGUgdTsgdm9pZCAqczsgbG9uZyBsOyB9CisrCisrCisrLyoKKytAQCBMVUFJX1RIUk9XL0xVQUlf VFJZIGRlZmluZSBob3cgTHVhIGRvZXMgZXhjZXB0aW9uIGhhbmRsaW5nLgorKyoqIENIQU5HRSB0 aGVtIGlmIHlvdSBwcmVmZXIgdG8gdXNlIGxvbmdqbXAvc2V0am1wIGV2ZW4gd2l0aCBDKysKKysq KiBvciBpZiB3YW50L2Rvbid0IHRvIHVzZSBfbG9uZ2ptcC9fc2V0am1wIGluc3RlYWQgb2YgcmVn dWxhcgorKyoqIGxvbmdqbXAvc2V0am1wLiBCeSBkZWZhdWx0LCBMdWEgaGFuZGxlcyBlcnJvcnMg d2l0aCBleGNlcHRpb25zIHdoZW4KKysqKiBjb21waWxpbmcgYXMgQysrIGNvZGUsIHdpdGggX2xv bmdqbXAvX3NldGptcCB3aGVuIGFza2VkIHRvIHVzZSB0aGVtLAorKyoqIGFuZCB3aXRoIGxvbmdq bXAvc2V0am1wIG90aGVyd2lzZS4KKysqLworKyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorKy8q IEMrKyBleGNlcHRpb25zICovCisrI2RlZmluZSBMVUFJX1RIUk9XKEwsYykJdGhyb3coYykKKysj ZGVmaW5lIExVQUlfVFJZKEwsYyxhKQl0cnkgeyBhIH0gY2F0Y2goLi4uKSBcCisrCXsgaWYgKChj KS0+c3RhdHVzID09IDApIChjKS0+c3RhdHVzID0gLTE7IH0KKysjZGVmaW5lIGx1YWlfam1wYnVm CWludCAgLyogZHVtbXkgdmFyaWFibGUgKi8KKysKKysjZWxpZiBkZWZpbmVkKExVQV9VU0VfVUxP TkdKTVApCisrLyogaW4gVW5peCwgdHJ5IF9sb25nam1wL19zZXRqbXAgKG1vcmUgZWZmaWNpZW50 KSAqLworKyNkZWZpbmUgTFVBSV9USFJPVyhMLGMpCV9sb25nam1wKChjKS0+YiwgMSkKKysjZGVm aW5lIExVQUlfVFJZKEwsYyxhKQlpZiAoX3NldGptcCgoYyktPmIpID09IDApIHsgYSB9CisrI2Rl ZmluZSBsdWFpX2ptcGJ1ZglqbXBfYnVmCisrCisrI2Vsc2UKKysvKiBkZWZhdWx0IGhhbmRsaW5n IHdpdGggbG9uZyBqdW1wcyAqLworKyNkZWZpbmUgTFVBSV9USFJPVyhMLGMpCWxvbmdqbXAoKGMp LT5iLCAxKQorKyNkZWZpbmUgTFVBSV9UUlkoTCxjLGEpCWlmIChzZXRqbXAoKGMpLT5iKSA9PSAw KSB7IGEgfQorKyNkZWZpbmUgbHVhaV9qbXBidWYJam1wX2J1ZgorKworKyNlbmRpZgorKworKwor Ky8qCisrQEAgTFVBX01BWENBUFRVUkVTIGlzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBjYXB0dXJl cyB0aGF0IGEgcGF0dGVybgorK0AqIGNhbiBkbyBkdXJpbmcgcGF0dGVybi1tYXRjaGluZy4KKysq KiBDSEFOR0UgaXQgaWYgeW91IG5lZWQgbW9yZSBjYXB0dXJlcy4gVGhpcyBsaW1pdCBpcyBhcmJp dHJhcnkuCisrKi8KKysjZGVmaW5lIExVQV9NQVhDQVBUVVJFUwkJMzIKKysKKysKKysvKgorK0BA IGx1YV90bXBuYW0gaXMgdGhlIGZ1bmN0aW9uIHRoYXQgdGhlIE9TIGxpYnJhcnkgdXNlcyB0byBj cmVhdGUgYQorK0AqIHRlbXBvcmFyeSBuYW1lLgorK0BAIExVQV9UTVBOQU1CVUZTSVpFIGlzIHRo ZSBtYXhpbXVtIHNpemUgb2YgYSBuYW1lIGNyZWF0ZWQgYnkgbHVhX3RtcG5hbS4KKysqKiBDSEFO R0UgdGhlbSBpZiB5b3UgaGF2ZSBhbiBhbHRlcm5hdGl2ZSB0byB0bXBuYW0gKHdoaWNoIGlzIGNv bnNpZGVyZWQKKysqKiBpbnNlY3VyZSkgb3IgaWYgeW91IHdhbnQgdGhlIG9yaWdpbmFsIHRtcG5h bSBhbnl3YXkuICBCeSBkZWZhdWx0LCBMdWEKKysqKiB1c2VzIHRtcG5hbSBleGNlcHQgd2hlbiBQ T1NJWCBpcyBhdmFpbGFibGUsIHdoZXJlIGl0IHVzZXMgbWtzdGVtcC4KKysqLworKyNpZiBkZWZp bmVkKGxvc2xpYl9jKSB8fCBkZWZpbmVkKGx1YWFsbF9jKQorKworKyNpZiBkZWZpbmVkKExVQV9V U0VfTUtTVEVNUCkKKysjaW5jbHVkZSA8dW5pc3RkLmg+CisrI2RlZmluZSBMVUFfVE1QTkFNQlVG U0laRQkzMgorKyNkZWZpbmUgbHVhX3RtcG5hbShiLGUpCXsgXAorKwlzdHJjcHkoYiwgIi90bXAv bHVhX1hYWFhYWCIpOyBcCisrCWUgPSBta3N0ZW1wKGIpOyBcCisrCWlmIChlICE9IC0xKSBjbG9z ZShlKTsgXAorKwllID0gKGUgPT0gLTEpOyB9CisrCisrI2Vsc2UKKysjZGVmaW5lIExVQV9UTVBO QU1CVUZTSVpFCUxfdG1wbmFtCisrI2RlZmluZSBsdWFfdG1wbmFtKGIsZSkJCXsgZSA9ICh0bXBu YW0oYikgPT0gTlVMTCk7IH0KKysjZW5kaWYKKysKKysjZW5kaWYKKysKKysKKysvKgorK0BAIGx1 YV9wb3BlbiBzcGF3bnMgYSBuZXcgcHJvY2VzcyBjb25uZWN0ZWQgdG8gdGhlIGN1cnJlbnQgb25l IHRocm91Z2gKKytAKiB0aGUgZmlsZSBzdHJlYW1zLgorKyoqIENIQU5HRSBpdCBpZiB5b3UgaGF2 ZSBhIHdheSB0byBpbXBsZW1lbnQgaXQgaW4geW91ciBzeXN0ZW0uCisrKi8KKysjaWYgZGVmaW5l ZChMVUFfVVNFX1BPUEVOKQorKworKyNkZWZpbmUgbHVhX3BvcGVuKEwsYyxtKQkoKHZvaWQpTCwg cG9wZW4oYyxtKSkKKysjZGVmaW5lIGx1YV9wY2xvc2UoTCxmaWxlKQkoKHZvaWQpTCwgKHBjbG9z ZShmaWxlKSAhPSAtMSkpCisrCisrI2VsaWYgZGVmaW5lZChMVUFfV0lOKQorKworKyNkZWZpbmUg bHVhX3BvcGVuKEwsYyxtKQkoKHZvaWQpTCwgX3BvcGVuKGMsbSkpCisrI2RlZmluZSBsdWFfcGNs b3NlKEwsZmlsZSkJKCh2b2lkKUwsIChfcGNsb3NlKGZpbGUpICE9IC0xKSkKKysKKysjZWxzZQor KworKyNkZWZpbmUgbHVhX3BvcGVuKEwsYyxtKQkoKHZvaWQpKCh2b2lkKWMsIG0pLCAgXAorKwkJ bHVhTF9lcnJvcihMLCBMVUFfUUwoInBvcGVuIikgIiBub3Qgc3VwcG9ydGVkIiksIChGSUxFKikw KQorKyNkZWZpbmUgbHVhX3BjbG9zZShMLGZpbGUpCQkoKHZvaWQpKCh2b2lkKUwsIGZpbGUpLCAw KQorKworKyNlbmRpZgorKworKy8qCisrQEAgTFVBX0RMXyogZGVmaW5lIHdoaWNoIGR5bmFtaWMt bGlicmFyeSBzeXN0ZW0gTHVhIHNob3VsZCB1c2UuCisrKiogQ0hBTkdFIGhlcmUgaWYgTHVhIGhh cyBwcm9ibGVtcyBjaG9vc2luZyB0aGUgYXBwcm9wcmlhdGUKKysqKiBkeW5hbWljLWxpYnJhcnkg c3lzdGVtIGZvciB5b3VyIHBsYXRmb3JtIChlaXRoZXIgV2luZG93cycgRExMLCBNYWMncworKyoq IGR5bGQsIG9yIFVuaXgncyBkbG9wZW4pLiBJZiB5b3VyIHN5c3RlbSBpcyBzb21lIGtpbmQgb2Yg VW5peCwgdGhlcmUKKysqKiBpcyBhIGdvb2QgY2hhbmNlIHRoYXQgaXQgaGFzIGRsb3Blbiwgc28g TFVBX0RMX0RMT1BFTiB3aWxsIHdvcmsgZm9yCisrKiogaXQuICBUbyB1c2UgZGxvcGVuIHlvdSBh bHNvIG5lZWQgdG8gYWRhcHQgdGhlIHNyYy9NYWtlZmlsZSAocHJvYmFibHkKKysqKiBhZGRpbmcg LWxkbCB0byB0aGUgbGlua2VyIG9wdGlvbnMpLCBzbyBMdWEgZG9lcyBub3Qgc2VsZWN0IGl0Cisr KiogYXV0b21hdGljYWxseS4gIChXaGVuIHlvdSBjaGFuZ2UgdGhlIG1ha2VmaWxlIHRvIGFkZCAt bGRsLCB5b3UgbXVzdAorKyoqIGFsc28gYWRkIC1ETFVBX1VTRV9ETE9QRU4uKQorKyoqIElmIHlv dSBkbyBub3Qgd2FudCBhbnkga2luZCBvZiBkeW5hbWljIGxpYnJhcnksIHVuZGVmaW5lIGFsbCB0 aGVzZQorKyoqIG9wdGlvbnMuCisrKiogQnkgZGVmYXVsdCwgX1dJTjMyIGdldHMgTFVBX0RMX0RM TCBhbmQgTUFDIE9TIFggZ2V0cyBMVUFfRExfRFlMRC4KKysqLworKyNpZiBkZWZpbmVkKExVQV9V U0VfRExPUEVOKQorKyNkZWZpbmUgTFVBX0RMX0RMT1BFTgorKyNlbmRpZgorKworKyNpZiBkZWZp bmVkKExVQV9XSU4pCisrI2RlZmluZSBMVUFfRExfRExMCisrI2VuZGlmCisrCisrCisrLyoKKytA QCBMVUFJX0VYVFJBU1BBQ0UgYWxsb3dzIHlvdSB0byBhZGQgdXNlci1zcGVjaWZpYyBkYXRhIGlu IGEgbHVhX1N0YXRlCisrQCogKHRoZSBkYXRhIGdvZXMganVzdCAqYmVmb3JlKiB0aGUgbHVhX1N0 YXRlIHBvaW50ZXIpLgorKyoqIENIQU5HRSAoZGVmaW5lKSB0aGlzIGlmIHlvdSByZWFsbHkgbmVl ZCB0aGF0LiBUaGlzIHZhbHVlIG11c3QgYmUKKysqKiBhIG11bHRpcGxlIG9mIHRoZSBtYXhpbXVt IGFsaWdubWVudCByZXF1aXJlZCBmb3IgeW91ciBtYWNoaW5lLgorKyovCisrI2RlZmluZSBMVUFJ X0VYVFJBU1BBQ0UJCTAKKysKKysKKysvKgorK0BAIGx1YWlfdXNlcnN0YXRlKiBhbGxvdyB1c2Vy LXNwZWNpZmljIGFjdGlvbnMgb24gdGhyZWFkcy4KKysqKiBDSEFOR0UgdGhlbSBpZiB5b3UgZGVm aW5lZCBMVUFJX0VYVFJBU1BBQ0UgYW5kIG5lZWQgdG8gZG8gc29tZXRoaW5nCisrKiogZXh0cmEg d2hlbiBhIHRocmVhZCBpcyBjcmVhdGVkL2RlbGV0ZWQvcmVzdW1lZC95aWVsZGVkLgorKyovCisr I2RlZmluZSBsdWFpX3VzZXJzdGF0ZW9wZW4oTCkJCSgodm9pZClMKQorKyNkZWZpbmUgbHVhaV91 c2Vyc3RhdGVjbG9zZShMKQkJKCh2b2lkKUwpCisrI2RlZmluZSBsdWFpX3VzZXJzdGF0ZXRocmVh ZChMLEwxKQkoKHZvaWQpTCkKKysjZGVmaW5lIGx1YWlfdXNlcnN0YXRlZnJlZShMKQkJKCh2b2lk KUwpCisrI2RlZmluZSBsdWFpX3VzZXJzdGF0ZXJlc3VtZShMLG4pCSgodm9pZClMKQorKyNkZWZp bmUgbHVhaV91c2Vyc3RhdGV5aWVsZChMLG4pCSgodm9pZClMKQorKworKworKy8qCisrQEAgTFVB X0lOVEZSTUxFTiBpcyB0aGUgbGVuZ3RoIG1vZGlmaWVyIGZvciBpbnRlZ2VyIGNvbnZlcnNpb25z CisrQCogaW4gJ3N0cmluZy5mb3JtYXQnLgorK0BAIExVQV9JTlRGUk1fVCBpcyB0aGUgaW50ZWdl ciB0eXBlIGNvcnJlc3BvZGluZyB0byB0aGUgcHJldmlvdXMgbGVuZ3RoCisrQCogbW9kaWZpZXIu CisrKiogQ0hBTkdFIHRoZW0gaWYgeW91ciBzeXN0ZW0gc3VwcG9ydHMgbG9uZyBsb25nIG9yIGRv ZXMgbm90IHN1cHBvcnQgbG9uZy4KKysqLworKworKyNpZiBkZWZpbmVkKExVQV9VU0VMT05HTE9O RykKKysKKysjZGVmaW5lIExVQV9JTlRGUk1MRU4JCSJsbCIKKysjZGVmaW5lIExVQV9JTlRGUk1f VAkJbG9uZyBsb25nCisrCisrI2Vsc2UKKysKKysjZGVmaW5lIExVQV9JTlRGUk1MRU4JCSJsIgor KyNkZWZpbmUgTFVBX0lOVEZSTV9UCQlsb25nCisrCisrI2VuZGlmCisrCisrCisrCisrLyogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PSAqLworKworKy8qCisrKiogTG9jYWwgY29uZmlndXJhdGlvbi4gWW91IGNhbiB1c2Ug dGhpcyBzcGFjZSB0byBhZGQgeW91ciByZWRlZmluaXRpb25zCisrKiogd2l0aG91dCBtb2RpZnlp bmcgdGhlIG1haW4gcGFydCBvZiB0aGUgZmlsZS4KKysqLworKworKworKworKyNlbmRpZgorKwpk aWZmIC0tZ2l0IGEvcGF0Y2hlcy9sdWEtNS4xLjQvYXV0b21ha2l6ZS5kaWZmIGIvcGF0Y2hlcy9s dWEtNS4xLjQvYXV0b21ha2l6ZS5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjBkYWU3MjQKLS0tIC9kZXYvbnVsbAorKysgYi9wYXRjaGVzL2x1YS01LjEuNC9hdXRvbWFr aXplLmRpZmYKQEAgLTAsMCArMSwxMTMgQEAKK1N1YmplY3Q6IEFkZCBsdWEgc3VwcG9ydCB0byBw dHhkaXN0IDEuOTk6IGFkZCBhdXRvbWFrZSBmaWxlcworRnJvbTogRXJ3aW4gUm9sIDxlcndpbkBl cndpbnJvbC5jb20+CisKK1RoaXMgcGF0Y2ggYWRkIGx1YSBzdXBwb3J0IHRvIHB0eGRpc3QgMS45 OS4gSXQgaGFzIGEgbWVudSBlbnRyeSB1bmRlcgorc2NyaXB0aW5nIGxhbmd1YWdlcy4gQW5kIGEg cGF0Y2ggdGhhdCBtYWtlcyBpdCBwb3NzaWJsZSB0byB1c2UgYXV0b2NvbmYKK3RvIGJ1aWxkLgor CitUaGlzIHBhcnQgb2YgdGhlIHBhdGNoIGFkZHMgdGhlIGF1dG9tYWtlIGZpbGVzLgorCitTaWdu ZWQtb2ZmLWJ5OiBFcndpbiBSb2wgPGVyd2luQGVyd2lucm9sLmNvbT4KK1NpZ25lZC1vZmYtYnk6 IFJvYmVydCBTY2h3ZWJlbCA8ci5zY2h3ZWJlbEBwZW5ndXRyb25peC5kZT4KKworLS0tCisgTWFr ZWZpbGUuYW0gICAgICB8ICAgIDMgKysrCisgZG9jL01ha2VmaWxlLmFtICB8ICAgIDUgKysrKysK KyBldGMvTWFrZWZpbGUuYW0gIHwgICAgOCArKysrKysrKworIHNyYy9NYWtlZmlsZS5hbSAgfCAg IDQ1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIHRlc3Qv TWFrZWZpbGUuYW0gfCAgICA1ICsrKysrCisgNSBmaWxlcyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25z KCspCisKK0luZGV4OiBsdWEtNS4xLjQvZG9jL01ha2VmaWxlLmFtCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgbHVhLTUu MS40L2RvYy9NYWtlZmlsZS5hbQkyMDExLTEyLTA2IDExOjQ5OjAzLjQ5MTgyNjk0NSArMDEwMAor QEAgLTAsMCArMSw1IEBACisrbWFuMV9NQU5TID0gbHVhLjEgbHVhYy4xCisrCisrRVhUUkFfRElT VCA9IFwKKysJY29udGVudHMuaHRtbCAgbHVhLjEgICBsdWFjLmh0bWwgIGx1YS5odG1sICAgICBt YW51YWwuaHRtbCBcCisrCWxvZ28uZ2lmICAgICAgIGx1YWMuMSAgbHVhLmNzcyAgICByZWFkbWUu aHRtbAorSW5kZXg6IGx1YS01LjEuNC9ldGMvTWFrZWZpbGUuYW0KKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAv ZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBsdWEtNS4x LjQvZXRjL01ha2VmaWxlLmFtCTIwMTEtMTItMDYgMTE6NDk6MDMuNDkxODI2OTQ1ICswMTAwCitA QCAtMCwwICsxLDggQEAKKytpbmNsdWRlX0hFQURFUlMgPSBsdWEuaHBwCisrCisrcGtnY29uZmln ZGlyID0gJChsaWJkaXIpL3BrZ2NvbmZpZworK3BrZ2NvbmZpZ19EQVRBID0gbHVhLnBjCisrCisr RVhUUkFfRElTVCA9IFwKKysJYWxsLmMgICAgICBsdWEuaWNvICAgIGx1YS5wYy5pbiAgbm9wYXJz ZXIuYyAgc3RyaWN0Lmx1YSBcCisrCWx1YXZzLmJhdCAgbWluLmMgICAgICBSRUFETUUKK0luZGV4 OiBsdWEtNS4xLjQvTWFrZWZpbGUuYW0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBsdWEtNS4xLjQvTWFrZWZpbGUuYW0J MjAxMS0xMi0wNiAxMTo1MDoxNC41NTkwNzYyNjUgKzAxMDAKK0BAIC0wLDAgKzEsNSBAQAorK0FD TE9DQUxfQU1GTEFHUyA9IC1JIG00CisrCisrU1VCRElSUyA9IHNyYyBkb2MgZXRjIHRlc3QKKysK KytFWFRSQV9ESVNUID0gYXV0b2dlbi5zaCBDT1BZUklHSFQgSElTVE9SWSBJTlNUQUxMIFJFQURN RQorSW5kZXg6IGx1YS01LjEuNC9zcmMvTWFrZWZpbGUuYW0KKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBsdWEtNS4xLjQv c3JjL01ha2VmaWxlLmFtCTIwMTEtMTItMDYgMTE6NDk6MDMuNDkxODI2OTQ1ICswMTAwCitAQCAt MCwwICsxLDQ1IEBACisrQU1fQ0ZMQUdTID0gLVdhbGwKKysKKytpbmNsdWRlX0hFQURFUlMgPSBs dWEuaCBsdWFsaWIuaCBsYXV4bGliLmgKKytub2Rpc3RfaW5jbHVkZV9IRUFERVJTID0gbHVhY29u Zi5oCisrCisrbGliX0xUTElCUkFSSUVTID0gbGlibHVhLmxhCisrbGlibHVhX2xhX0xERkxBR1Mg PSAtcmVsZWFzZSBAVkVSU0lPTkAKKytsaWJsdWFfbGFfU09VUkNFUyA9IFwKKysJbGFwaS5jIGxj b2RlLmMgbGRlYnVnLmMgbGRvLmMgbGR1bXAuYyBsZnVuYy5jIGxnYy5jIGxsZXguYyBsbWVtLmMg XAorKwlsb2JqZWN0LmMgbG9wY29kZXMuYyBscGFyc2VyLmMgbHN0YXRlLmMgbHN0cmluZy5jIGx0 YWJsZS5jIGx0bS5jICBcCisrCWx1bmR1bXAuYyBsdm0uYyBsemlvLmMgXAorKwlsYXV4bGliLmMg bGJhc2VsaWIuYyBsZGJsaWIuYyBsaW9saWIuYyBsbWF0aGxpYi5jIGxvc2xpYi5jIGx0YWJsaWIu YyBcCisrCWxzdHJsaWIuYyBsb2FkbGliLmMgbGluaXQuYyBcCisrCWxhcGkuaCBsZGVidWcuaCBs Z2MuaCBsbWVtLmggbHBhcnNlci5oIGx0YWJsZS5oIGx6aW8uaCBsZG8uaCBsbGV4LmggXAorKwls b2JqZWN0LmggbHN0YXRlLmggbHRtLmggbHVuZHVtcC5oIGxjb2RlLmggbGZ1bmMuaCBsbGltaXRz LmggbG9wY29kZXMuaCBcCisrCWxzdHJpbmcuaCBsdm0uaAorKworK2Jpbl9QUk9HUkFNUyA9IGx1 YSBsdWFjCisrCisrbHVhX1NPVVJDRVMgPSBsdWEuYworK2x1YV9MREFERCA9IGxpYmx1YS5sYSBA TFVBX0xJQlNACisrbHVhX0RFUEVOREVOQ0lFUyA9IGxpYmx1YS5sYQorKworK2x1YWNfU09VUkNF UyA9IGx1YWMuYyBwcmludC5jCisrbHVhY19MREFERCA9IGxpYmx1YS5sYSBATFVBX0xJQlNACisr bHVhY19ERVBFTkRFTkNJRVMgPSBsaWJsdWEubGEKKysKKysjIGx1YWMgbXVzdCBiZSBsaW5rZWQg c3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZXMgZnVuY3Rpb25zIHRoYXQKKysjIGRvbid0IGdldCBl eHBvcnRlZCB0byB0aGUgc2hhcmVkIG9iamVjdAorK2x1YWNfTERGTEFHUyA9IC1zdGF0aWMKKysK KytFWFRSQV9ESVNUID0gbHVhY29uZi5oLnRlbXBsYXRlLmluCisrQlVJTFRfU09VUkNFUyA9IGx1 YWNvbmYuaAorK0NMRUFORklMRVMgPSBsdWFjb25mLmgKKysKKytyZWFkbGluZV9kZWZzID0gQFJF QURMSU5FX0RFRlNACisrCisrZWRpdCA9IAlzZWQgXAorKwkgIC1lICdzLCVsdWFfZGF0YWRpciUs JChkYXRhZGlyKSxnJyBcCisrCSAgLWUgJ3MsJWx1YV9saWJkaXIlLCQobGliZGlyKSxnJworKwor K2x1YWNvbmYuaCA6IGx1YWNvbmYuaC50ZW1wbGF0ZQorKwlybSAtZiBsdWFjb25mLmggbHVhY29u Zi5oLnRtcAorKwkkKGVkaXQpIGx1YWNvbmYuaC50ZW1wbGF0ZSA+IGx1YWNvbmYuaC50bXAKKysJ bXYgbHVhY29uZi5oLnRtcCBsdWFjb25mLmgKK0luZGV4OiBsdWEtNS4xLjQvdGVzdC9NYWtlZmls ZS5hbQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAw MDAwMCArMDAwMAorKysrIGx1YS01LjEuNC90ZXN0L01ha2VmaWxlLmFtCTIwMTEtMTItMDYgMTE6 NDk6MDMuNDkxODI2OTQ1ICswMTAwCitAQCAtMCwwICsxLDUgQEAKKytFWFRSQV9ESVNUID0gXAor KwliaXNlY3QubHVhICBlbnYubHVhICAgICAgICAgZmliLmx1YSAgICAgIGxpZmUubHVhICAgICAg ICAgIHByaW50Zi5sdWEgXAorKwlzaWV2ZS5sdWEgICB0cmFjZS1jYWxscy5sdWEgY2YubHVhICAg ICAgIGZhY3RvcmlhbC5sdWEgICAgIGdsb2JhbHMubHVhIFwKKysJbHVhYy5sdWEgICAgUkVBRE1F ICAgICAgICAgIHNvcnQubHVhICAgICB0cmFjZS1nbG9iYWxzLmx1YSBlY2hvLmx1YSBcCisrCWZp YmZvci5sdWEgIGhlbGxvLmx1YSAgICAgICByZWFkb25seS5sdWEgdGFibGUubHVhICAgICAgICAg eGQubHVhCmRpZmYgLS1naXQgYS9wYXRjaGVzL2x1YS01LjEuNC9sdWEtNS4xLjMtYXV0b2NvbmZp emUuZGlmZiBiL3BhdGNoZXMvbHVhLTUuMS40L2x1YS01LjEuMy1hdXRvY29uZml6ZS5kaWZmCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOWZmOGZmLi4wMDAwMDAwCi0tLSBhL3BhdGNo ZXMvbHVhLTUuMS40L2x1YS01LjEuMy1hdXRvY29uZml6ZS5kaWZmCisrKyAvZGV2L251bGwKQEAg LTEsOTEwICswLDAgQEAKLVN1YmplY3Q6IEFkZCBsdWEgc3VwcG9ydCB0byBwdHhkaXN0IDEuOTk6 IGFkZCBhdXRvY29uZiBmaWxlcwotRnJvbTogRXJ3aW4gUm9sIDxlcndpbkBlcndpbnJvbC5jb20+ Ci0KLVRoaXMgcGF0Y2ggYWRkIGx1YSBzdXBwb3J0IHRvIHB0eGRpc3QgMS45OS4gSXQgaGFzIGEg bWVudSBlbnRyeSB1bmRlcgotc2NyaXB0aW5nIGxhbmd1YWdlcy4gQW5kIGEgcGF0Y2ggdGhhdCBt YWtlcyBpdCBwb3NzaWJsZSB0byB1c2UgYXV0b2NvbmYKLXRvIGJ1aWxkLgotCi1UaGlzIHBhcnQg b2YgdGhlIHBhdGNoIGFkZHMgdGhlIGF1dG9jb25mIGZpbGVzLgotCi1TaWduZWQtb2ZmLWJ5OiBF cndpbiBSb2wgPGVyd2luQGVyd2lucm9sLmNvbT4KLVNpZ25lZC1vZmYtYnk6IFJvYmVydCBTY2h3 ZWJlbCA8ci5zY2h3ZWJlbEBwZW5ndXRyb25peC5kZT4KLQotLS0tCi0gY29uZmlndXJlLmFjICAg ICAgICAgICAgICB8ICAgNjggKysrKwotIGV0Yy9sdWEucGMuaW4gICAgICAgICAgICAgfCAgIDMy ICsKLSBzcmMvbHVhY29uZi5oLnRlbXBsYXRlLmluIHwgIDc3NyArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCi0gMyBmaWxlcyBjaGFuZ2VkLCA4NzcgaW5zZXJ0 aW9ucygrKQotCi1JbmRleDogbHVhLTUuMS40L2NvbmZpZ3VyZS5hYwotPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IC9kZXYvbnVsbAotKysrIGx1YS01LjEuNC9jb25maWd1cmUuYWMKLUBAIC0wLDAgKzEsNjggQEAK LStBQ19QUkVSRVEoMi41OSkKLStBQ19JTklUKFtBdXRvdG9vbGl6ZWQgTHVhXSwgWzUuMS40XSwg W10sIFtsdWEtYXRdKQotKwotK0FDX0NPTkZJR19IRUFERVJTKFtjb25maWcuaF0pCi0rQUNfQ09O RklHX1NSQ0RJUihbc3JjL2xhcGkuY10pCi0rCi0rQU1fSU5JVF9BVVRPTUFLRShbMS45IGZvcmVp Z25dKQotKwotK0FDX1BST0dfQ0MKLStBQ19QUk9HX0xJQlRPT0wKLSsKLStBQ19BUkdfV0lUSCgK LSsgIFtyZWFkbGluZV0sCi0rICBbQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1yZWFkbGluZV0sIFtV c2UgcmVhZGxpbmUgZm9yIGludGVycHJldGVyIGlucHV0IFtkZWZhdWx0PXllc11dKV0sCi0rICBb dXNlX3JlYWRsaW5lPSR3aXRodmFsXSwKLSsgIFt1c2VfcmVhZGxpbmU9eWVzXQotKykKLSsKLStM VUFfTElCUz0iLWxtIgotKwotKyMgQ2hlY2sgZm9yIHJlYWRsaW5lCi0rUkVBRExJTkVfREVGUz0i I3VuZGVmIExVQV9VU0VfUkVBRExJTkUiCi0raWYgdGVzdCAieCR1c2VfcmVhZGxpbmUiID09ICJ4 eWVzIjsgdGhlbgotKyAgQUNfQ0hFQ0tfTElCKFtyZWFkbGluZV0sIFtyZWFkbGluZV0sIFtdLCBb dXNlX3JlYWRsaW5lPW5vXSkKLSsgIEFDX0NIRUNLX0hFQURFUlMoW3JlYWRsaW5lL3JlYWRsaW5l LmggcmVhZGxpbmUvaGlzdG9yeS5oXSwgW10sIFt1c2VfcmVhZGxpbmU9bm9dKQotKyAgaWYgdGVz dCAieCR1c2VfcmVhZGxpbmUiID09ICJ4bm8iOyB0aGVuCi0rICAgIEFDX01TR19XQVJOKFtyZWFk bGluZSBoZWFkZXJzIGNvdWxkIG5vdCBiZSBmb3VuZCwgZGlzYWJsaW5nIHJlYWRsaW5lIHN1cHBv cnRdKQotKyAgZWxzZQotKyAgICBSRUFETElORV9ERUZTPSIjZGVmaW5lIExVQV9VU0VfUkVBRExJ TkUiCi0rICAgIExVQV9MSUJTPSIkTFVBX0xJQlMgLWxyZWFkbGluZSIKLSsgIGZpCi0rZmkKLStB Q19TVUJTVChSRUFETElORV9ERUZTKQotKwotK2Nhc2UgIiRob3N0IiBpbgotKyAgKi1taW5ndyop ICB1c2Vfb3M9d2luMzIgIDs7Ci0rICAqLWRhcndpbiopIHVzZV9vcz1tYWNvc3ggOzsKLSsgICop ICAgICAgICAgdXNlX29zPXBvc2l4ICA7OwotK2VzYWMKLSsKLStQT1NJWF9ERUZTPSIjdW5kZWYg TFVBX1VTRV9QT1NJWCIKLStMVUFfRExfREVGUz0iI3VuZGVmIExVQV9VU0VfRExPUEVOIgotK0xV QV9CVUlMRF9BU19ETExfREVGUz0iI3VuZGVmIExVQV9CVUlMRF9BU19ETEwiCi0rCi0raWYgdGVz dCAieCR1c2Vfb3MiID09ICJ4d2luMzIiOyB0aGVuCi0rICBMVUFfQlVJTERfQVNfRExMX0RFRlM9 IiNkZWZpbmUgTFVBX0JVSUxEX0FTX0RMTCIKLStlbGlmIHRlc3QgIngkdXNlX29zIiA9PSAieG1h Y29zeCI7IHRoZW4KLSsgIFBPU0lYX0RFRlM9IiNkZWZpbmUgTFVBX1VTRV9QT1NJWCIKLSsgIExV QV9ETF9ERUZTPSIjZGVmaW5lIExVQV9ETF9EWUxEIgotK2VsaWYgdGVzdCAieCR1c2Vfb3MiID09 ICJ4cG9zaXgiOyB0aGVuCi0rICBQT1NJWF9ERUZTPSIjZGVmaW5lIExVQV9VU0VfUE9TSVgiCi0r ICBMVUFfRExfREVGUz0iI2RlZmluZSBMVUFfRExfRExPUEVOIgotKyAgTFVBX0xJQlM9IiRMVUFf TElCUyAtbGRsIgotK2ZpCi0rQUNfU1VCU1QoUE9TSVhfREVGUykKLStBQ19TVUJTVChMVUFfRExf REVGUykKLStBQ19TVUJTVChMVUFfQlVJTERfQVNfRExMX0RFRlMpCi0rCi0rQUNfU1VCU1QoTFVB X0xJQlMpCi0rCi0rQUNfQ09ORklHX0ZJTEVTKFtNYWtlZmlsZQotKyAgICAgICAgICAgICAgICAg c3JjL01ha2VmaWxlCi0rICAgICAgICAgICAgICAgICBzcmMvbHVhY29uZi5oLnRlbXBsYXRlCi0r ICAgICAgICAgICAgICAgICBldGMvTWFrZWZpbGUKLSsgICAgICAgICAgICAgICAgIGV0Yy9sdWEu cGMKLSsgICAgICAgICAgICAgICAgIGRvYy9NYWtlZmlsZQotKwkJIHRlc3QvTWFrZWZpbGVdKQot K0FDX09VVFBVVAotSW5kZXg6IGx1YS01LjEuNC9ldGMvbHVhLnBjLmluCi09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gL2Rldi9udWxsCi0rKysgbHVhLTUuMS40L2V0Yy9sdWEucGMuaW4KLUBAIC0wLDAgKzEsMzIg QEAKLSsjIGx1YS5wYyAtLSBwa2ctY29uZmlnIGRhdGEgZm9yIEx1YQotKwotKyMgdmFycyBmcm9t IGluc3RhbGwgTWFrZWZpbGUKLSsKLSsjIGdyZXAgJ15WPScgLi4vTWFrZWZpbGUKLStWPSA1LjEK LSsjIGdyZXAgJ15SPScgLi4vTWFrZWZpbGUKLStSPSA1LjEuMwotKwotKyMgZ3JlcCAnXklOU1RB TExfLio9JyAuLi9NYWtlZmlsZSB8IHNlZCAncy9JTlNUQUxMX1RPUC9wcmVmaXgvJwotKyMgcGx1 cyBhdXRvdG9vbGlmaWNhdGlvbgotK3ByZWZpeD0gQHByZWZpeEAKLStJTlNUQUxMX0JJTj0gJHtw cmVmaXh9L2JpbgotK0lOU1RBTExfSU5DPSAke3ByZWZpeH0vaW5jbHVkZQotK0lOU1RBTExfTElC PSAke3ByZWZpeH0vbGliCi0rSU5TVEFMTF9NQU49ICR7cHJlZml4fS9tYW4vbWFuMQotK0lOU1RB TExfTE1PRD0gJHtwcmVmaXh9L3NoYXJlL2x1YS8ke1Z9Ci0rSU5TVEFMTF9DTU9EPSAke3ByZWZp eH0vbGliL2x1YS8ke1Z9Ci0rCi0rIyBjYW5vbmljYWwgdmFycwotK2V4ZWNfcHJlZml4PSR7cHJl Zml4fQotK2xpYmRpcj0ke2V4ZWNfcHJlZml4fS9saWIKLStpbmNsdWRlZGlyPSR7cHJlZml4fS9p bmNsdWRlCi0rCi0rTmFtZTogTHVhCi0rRGVzY3JpcHRpb246IEFuIEV4dGVuc2libGUgRXh0ZW5z aW9uIExhbmd1YWdlCi0rVmVyc2lvbjogJHtSfQotK1JlcXVpcmVzOiAKLStMaWJzOiAtTCR7bGli ZGlyfSAtbGx1YSAtbG0KLStDZmxhZ3M6IC1JJHtpbmNsdWRlZGlyfQotKwotKyMgKGVuZCBvZiBs dWEucGMpCi1JbmRleDogbHVhLTUuMS40L3NyYy9sdWFjb25mLmgudGVtcGxhdGUuaW4KLT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSAvZGV2L251bGwKLSsrKyBsdWEtNS4xLjQvc3JjL2x1YWNvbmYuaC50ZW1wbGF0 ZS5pbgotQEAgLTAsMCArMSw3NzcgQEAKLSsvKgotKyoqICRJZDogbHVhY29uZi5oLHYgMS44MmEg MjAwNi8wNC8xMCAxODoyNzoyMyByb2JlcnRvIEV4cCAkCi0rKiogQ29uZmlndXJhdGlvbiBmaWxl IGZvciBMdWEKLSsqKiBTZWUgQ29weXJpZ2h0IE5vdGljZSBpbiBsdWEuaAotKyovCi0rCi0rCi0r I2lmbmRlZiBsY29uZmlnX2gKLSsjZGVmaW5lIGxjb25maWdfaAotKwotKyNpbmNsdWRlIDxsaW1p dHMuaD4KLSsjaW5jbHVkZSA8c3RkZGVmLmg+Ci0rCi0rLyoKLSsqKiA9PT09PT09PT09PT09PT09 PQotKyoqIEF1dG90b29saWZpY2F0aW9uCi0rKiogPT09PT09PT09PT09PT09PT0KLSsqLwotKwot Ky8qKiBhdXRvdG9vbGl6ZSBwYXRjaCAqKi8KLStAUE9TSVhfREVGU0AKLStATFVBX0RMX0RFRlNA Ci0rQExVQV9CVUlMRF9BU19ETExfREVGU0AKLStAUkVBRExJTkVfREVGU0AKLSsvKiogYXV0b3Rv b2xpemUgcGF0Y2ggKiovCi0rCi0rLyoKLSsqKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSsqKiBTZWFyY2ggZm9yICJA QCIgdG8gZmluZCBhbGwgY29uZmlndXJhYmxlIGRlZmluaXRpb25zLgotKyoqID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LSsqLwotKwotKwotKy8qCi0rQEAgTFVBX0FOU0kgY29udHJvbHMgdGhlIHVzZSBvZiBub24tYW5z aSBmZWF0dXJlcy4KLSsqKiBDSEFOR0UgaXQgKGRlZmluZSBpdCkgaWYgeW91IHdhbnQgTHVhIHRv IGF2b2lkIHRoZSB1c2Ugb2YgYW55Ci0rKiogbm9uLWFuc2kgZmVhdHVyZSBvciBsaWJyYXJ5Lgot KyovCi0rI2lmIGRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKQotKyNkZWZpbmUgTFVBX0FOU0kKLSsj ZW5kaWYKLSsKLSsKLSsjaWYgIWRlZmluZWQoTFVBX0FOU0kpICYmIGRlZmluZWQoX1dJTjMyKQot KyNkZWZpbmUgTFVBX1dJTgotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkKExVQV9VU0VfTElOVVgp Ci0rI2RlZmluZSBMVUFfVVNFX1BPU0lYCi0rI2RlZmluZSBMVUFfVVNFX0RMT1BFTgkJLyogbmVl ZHMgYW4gZXh0cmEgbGlicmFyeTogLWxkbCAqLwotKyNkZWZpbmUgTFVBX1VTRV9SRUFETElORQkv KiBuZWVkcyBzb21lIGV4dHJhIGxpYnJhcmllcyAqLwotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVk KExVQV9VU0VfTUFDT1NYKQotKyNkZWZpbmUgTFVBX1VTRV9QT1NJWAotKyNkZWZpbmUgTFVBX0RM X0RZTEQJCS8qIGRvZXMgbm90IG5lZWQgZXh0cmEgbGlicmFyeSAqLwotKyNlbmRpZgotKwotKwot KwotKy8qCi0rQEAgTFVBX1VTRV9QT1NJWCBpbmNsdWRlcyBhbGwgZnVuY3Rpb25hbGxpdHkgbGlz dGVkIGFzIFgvT3BlbiBTeXN0ZW0KLStAKiBJbnRlcmZhY2VzIEV4dGVuc2lvbiAoWFNJKS4KLSsq KiBDSEFOR0UgaXQgKGRlZmluZSBpdCkgaWYgeW91ciBzeXN0ZW0gaXMgWFNJIGNvbXBhdGlibGUu Ci0rKi8KLSsjaWYgZGVmaW5lZChMVUFfVVNFX1BPU0lYKQotKyNkZWZpbmUgTFVBX1VTRV9NS1NU RU1QCi0rI2RlZmluZSBMVUFfVVNFX0lTQVRUWQotKyNkZWZpbmUgTFVBX1VTRV9QT1BFTgotKyNk ZWZpbmUgTFVBX1VTRV9VTE9OR0pNUAotKyNlbmRpZgotKwotKwotKy8qCi0rQEAgTFVBX1BBVEgg YW5kIExVQV9DUEFUSCBhcmUgdGhlIG5hbWVzIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMg dGhhdAotK0AqIEx1YSBjaGVjayB0byBzZXQgaXRzIHBhdGhzLgotK0BAIExVQV9JTklUIGlzIHRo ZSBuYW1lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSB0aGF0IEx1YQotK0AqIGNoZWNrcyBm b3IgaW5pdGlhbGl6YXRpb24gY29kZS4KLSsqKiBDSEFOR0UgdGhlbSBpZiB5b3Ugd2FudCBkaWZm ZXJlbnQgbmFtZXMuCi0rKi8KLSsjZGVmaW5lIExVQV9QQVRIICAgICAgICAiTFVBX1BBVEgiCi0r I2RlZmluZSBMVUFfQ1BBVEggICAgICAgIkxVQV9DUEFUSCIKLSsjZGVmaW5lIExVQV9JTklUCSJM VUFfSU5JVCIKLSsKLSsKLSsvKgotK0BAIExVQV9QQVRIX0RFRkFVTFQgaXMgdGhlIGRlZmF1bHQg cGF0aCB0aGF0IEx1YSB1c2VzIHRvIGxvb2sgZm9yCi0rQCogTHVhIGxpYnJhcmllcy4KLStAQCBM VUFfQ1BBVEhfREVGQVVMVCBpcyB0aGUgZGVmYXVsdCBwYXRoIHRoYXQgTHVhIHVzZXMgdG8gbG9v ayBmb3IKLStAKiBDIGxpYnJhcmllcy4KLSsqKiBDSEFOR0UgdGhlbSBpZiB5b3VyIG1hY2hpbmUg aGFzIGEgbm9uLWNvbnZlbnRpb25hbCBkaXJlY3RvcnkKLSsqKiBoaWVyYXJjaHkgb3IgaWYgeW91 IHdhbnQgdG8gaW5zdGFsbCB5b3VyIGxpYnJhcmllcyBpbgotKyoqIG5vbi1jb252ZW50aW9uYWwg ZGlyZWN0b3JpZXMuCi0rKi8KLSsjaWYgZGVmaW5lZChfV0lOMzIpCi0rLyoKLSsqKiBJbiBXaW5k b3dzLCBhbnkgZXhjbGFtYXRpb24gbWFyayAoJyEnKSBpbiB0aGUgcGF0aCBpcyByZXBsYWNlZCBi eSB0aGUKLSsqKiBwYXRoIG9mIHRoZSBkaXJlY3Rvcnkgb2YgdGhlIGV4ZWN1dGFibGUgZmlsZSBv ZiB0aGUgY3VycmVudCBwcm9jZXNzLgotKyovCi0rI2RlZmluZSBMVUFfTERJUgkiIVxcbHVhXFwi Ci0rI2RlZmluZSBMVUFfQ0RJUgkiIVxcIgotKyNkZWZpbmUgTFVBX1BBVEhfREVGQVVMVCAgXAot KwkJIi5cXD8ubHVhOyIgIExVQV9MRElSIj8ubHVhOyIgIExVQV9MRElSIj9cXGluaXQubHVhOyIg XAotKwkJICAgICAgICAgICAgIExVQV9DRElSIj8ubHVhOyIgIExVQV9DRElSIj9cXGluaXQubHVh IgotKyNkZWZpbmUgTFVBX0NQQVRIX0RFRkFVTFQgXAotKwkiLlxcPy5kbGw7IiAgTFVBX0NESVIi Py5kbGw7IiBMVUFfQ0RJUiJsb2FkYWxsLmRsbCIKLSsKLSsjZWxzZQotKwotKy8qKiBhdXRvdG9v bGl6ZSBwYXRjaCAqKi8KLSsjZGVmaW5lIExVQV9MRElSCSIlbHVhX2RhdGFkaXIlL2x1YS81LjEv IgotKyNkZWZpbmUgTFVBX0NESVIJIiVsdWFfbGliZGlyJS9sdWEvNS4xLyIKLSsvKiogYXV0b3Rv b2xpemUgcGF0Y2ggKiovCi0rCi0rI2RlZmluZSBMVUFfUEFUSF9ERUZBVUxUICBcCi0rCQkiLi8/ Lmx1YTsiICBMVUFfTERJUiI/Lmx1YTsiICBMVUFfTERJUiI/L2luaXQubHVhOyIgXAotKwkJICAg ICAgICAgICAgTFVBX0NESVIiPy5sdWE7IiAgTFVBX0NESVIiPy9pbml0Lmx1YSIKLSsjZGVmaW5l IExVQV9DUEFUSF9ERUZBVUxUIFwKLSsJIi4vPy5zbzsiICBMVUFfQ0RJUiI/LnNvOyIgTFVBX0NE SVIibG9hZGFsbC5zbyIKLSsjZW5kaWYKLSsKLSsKLSsvKgotK0BAIExVQV9ESVJTRVAgaXMgdGhl IGRpcmVjdG9yeSBzZXBhcmF0b3IgKGZvciBzdWJtb2R1bGVzKS4KLSsqKiBDSEFOR0UgaXQgaWYg eW91ciBtYWNoaW5lIGRvZXMgbm90IHVzZSAiLyIgYXMgdGhlIGRpcmVjdG9yeSBzZXBhcmF0b3IK LSsqKiBhbmQgaXMgbm90IFdpbmRvd3MuIChPbiBXaW5kb3dzIEx1YSBhdXRvbWF0aWNhbGx5IHVz ZXMgIlwiLikKLSsqLwotKyNpZiBkZWZpbmVkKF9XSU4zMikKLSsjZGVmaW5lIExVQV9ESVJTRVAJ IlxcIgotKyNlbHNlCi0rI2RlZmluZSBMVUFfRElSU0VQCSIvIgotKyNlbmRpZgotKwotKwotKy8q Ci0rQEAgTFVBX1BBVEhTRVAgaXMgdGhlIGNoYXJhY3RlciB0aGF0IHNlcGFyYXRlcyB0ZW1wbGF0 ZXMgaW4gYSBwYXRoLgotK0BAIExVQV9QQVRIX01BUksgaXMgdGhlIHN0cmluZyB0aGF0IG1hcmtz IHRoZSBzdWJzdGl0dXRpb24gcG9pbnRzIGluIGEKLStAKiB0ZW1wbGF0ZS4KLStAQCBMVUFfRVhF Q0RJUiBpbiBhIFdpbmRvd3MgcGF0aCBpcyByZXBsYWNlZCBieSB0aGUgZXhlY3V0YWJsZSdzCi0r QCogZGlyZWN0b3J5LgotK0BAIExVQV9JR01BUksgaXMgYSBtYXJrIHRvIGlnbm9yZSBhbGwgYmVm b3JlIGl0IHdoZW4gYnVsZGluZyB0aGUKLStAKiBsdWFvcGVuXyBmdW5jdGlvbiBuYW1lLgotKyoq IENIQU5HRSB0aGVtIGlmIGZvciBzb21lIHJlYXNvbiB5b3VyIHN5c3RlbSBjYW5ub3QgdXNlIHRo b3NlCi0rKiogY2hhcmFjdGVycy4gKEUuZy4sIGlmIG9uZSBvZiB0aG9zZSBjaGFyYWN0ZXJzIGlz IGEgY29tbW9uIGNoYXJhY3RlcgotKyoqIGluIGZpbGUvZGlyZWN0b3J5IG5hbWVzLikgUHJvYmFi bHkgeW91IGRvIG5vdCBuZWVkIHRvIGNoYW5nZSB0aGVtLgotKyovCi0rI2RlZmluZSBMVUFfUEFU SFNFUAkiOyIKLSsjZGVmaW5lIExVQV9QQVRIX01BUksJIj8iCi0rI2RlZmluZSBMVUFfRVhFQ0RJ UgkiISIKLSsjZGVmaW5lIExVQV9JR01BUksJIi0iCi0rCi0rCi0rLyoKLStAQCBMVUFfSU5URUdF UiBpcyB0aGUgaW50ZWdyYWwgdHlwZSB1c2VkIGJ5IGx1YV9wdXNoaW50ZWdlci9sdWFfdG9pbnRl Z2VyLgotKyoqIENIQU5HRSB0aGF0IGlmIHB0cmRpZmZfdCBpcyBub3QgYWRlcXVhdGUgb24geW91 ciBtYWNoaW5lLiAoT24gbW9zdAotKyoqIG1hY2hpbmVzLCBwdHJkaWZmX3QgZ2l2ZXMgYSBnb29k IGNob2ljZSBiZXR3ZWVuIGludCBvciBsb25nLikKLSsqLwotKyNkZWZpbmUgTFVBX0lOVEVHRVIJ cHRyZGlmZl90Ci0rCi0rCi0rLyoKLStAQCBMVUFfQVBJIGlzIGEgbWFyayBmb3IgYWxsIGNvcmUg QVBJIGZ1bmN0aW9ucy4KLStAQCBMVUFMSUJfQVBJIGlzIGEgbWFyayBmb3IgYWxsIHN0YW5kYXJk IGxpYnJhcnkgZnVuY3Rpb25zLgotKyoqIENIQU5HRSB0aGVtIGlmIHlvdSBuZWVkIHRvIGRlZmlu ZSB0aG9zZSBmdW5jdGlvbnMgaW4gc29tZSBzcGVjaWFsIHdheS4KLSsqKiBGb3IgaW5zdGFuY2Us IGlmIHlvdSB3YW50IHRvIGNyZWF0ZSBvbmUgV2luZG93cyBETEwgd2l0aCB0aGUgY29yZSBhbmQK LSsqKiB0aGUgbGlicmFyaWVzLCB5b3UgbWF5IHdhbnQgdG8gdXNlIHRoZSBmb2xsb3dpbmcgZGVm aW5pdGlvbiAoZGVmaW5lCi0rKiogTFVBX0JVSUxEX0FTX0RMTCB0byBnZXQgaXQpLgotKyovCi0r I2lmIGRlZmluZWQoTFVBX0JVSUxEX0FTX0RMTCkKLSsKLSsjaWYgZGVmaW5lZChMVUFfQ09SRSkg fHwgZGVmaW5lZChMVUFfTElCKQotKyNkZWZpbmUgTFVBX0FQSSBfX2RlY2xzcGVjKGRsbGV4cG9y dCkKLSsjZWxzZQotKyNkZWZpbmUgTFVBX0FQSSBfX2RlY2xzcGVjKGRsbGltcG9ydCkKLSsjZW5k aWYKLSsKLSsjZWxzZQotKwotKyNkZWZpbmUgTFVBX0FQSQkJZXh0ZXJuCi0rCi0rI2VuZGlmCi0r Ci0rLyogbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGUgbGlicyBnbyB0b2dldGhlciB3aXRoIHRoZSBj b3JlICovCi0rI2RlZmluZSBMVUFMSUJfQVBJCUxVQV9BUEkKLSsKLSsKLSsvKgotK0BAIExVQUlf RlVOQyBpcyBhIG1hcmsgZm9yIGFsbCBleHRlcm4gZnVuY3Rpb25zIHRoYXQgYXJlIG5vdCB0byBi ZQotK0AqIGV4cG9ydGVkIHRvIG91dHNpZGUgbW9kdWxlcy4KLStAQCBMVUFJX0RBVEEgaXMgYSBt YXJrIGZvciBhbGwgZXh0ZXJuIChjb25zdCkgdmFyaWFibGVzIHRoYXQgYXJlIG5vdCB0bwotK0Aq IGJlIGV4cG9ydGVkIHRvIG91dHNpZGUgbW9kdWxlcy4KLSsqKiBDSEFOR0UgdGhlbSBpZiB5b3Ug bmVlZCB0byBtYXJrIHRoZW0gaW4gc29tZSBzcGVjaWFsIHdheS4gRWxmL2djYwotKyoqICh2ZXJz aW9ucyAzLjIgYW5kIGxhdGVyKSBtYXJrIHRoZW0gYXMgImhpZGRlbiIgdG8gb3B0aW1pemUgYWNj ZXNzCi0rKiogd2hlbiBMdWEgaXMgY29tcGlsZWQgYXMgYSBzaGFyZWQgbGlicmFyeS4KLSsqLwot KyNpZiBkZWZpbmVkKGx1YWFsbF9jKQotKyNkZWZpbmUgTFVBSV9GVU5DCXN0YXRpYwotKyNkZWZp bmUgTFVBSV9EQVRBCS8qIGVtcHR5ICovCi0rCi0rI2VsaWYgZGVmaW5lZChfX0dOVUNfXykgJiYg KChfX0dOVUNfXyoxMDAgKyBfX0dOVUNfTUlOT1JfXykgPj0gMzAyKSAmJiBcCi0rICAgICAgZGVm aW5lZChfX0VMRl9fKQotKyNkZWZpbmUgTFVBSV9GVU5DCV9fYXR0cmlidXRlX18oKHZpc2liaWxp dHkoImhpZGRlbiIpKSkgZXh0ZXJuCi0rI2RlZmluZSBMVUFJX0RBVEEJTFVBSV9GVU5DCi0rCi0r I2Vsc2UKLSsjZGVmaW5lIExVQUlfRlVOQwlleHRlcm4KLSsjZGVmaW5lIExVQUlfREFUQQlleHRl cm4KLSsjZW5kaWYKLSsKLSsKLSsKLSsvKgotK0BAIExVQV9RTCBkZXNjcmliZXMgaG93IGVycm9y IG1lc3NhZ2VzIHF1b3RlIHByb2dyYW0gZWxlbWVudHMuCi0rKiogQ0hBTkdFIGl0IGlmIHlvdSB3 YW50IGEgZGlmZmVyZW50IGFwcGVhcmFuY2UuCi0rKi8KLSsjZGVmaW5lIExVQV9RTCh4KQkiJyIg eCAiJyIKLSsjZGVmaW5lIExVQV9RUwkJTFVBX1FMKCIlcyIpCi0rCi0rCi0rLyoKLStAQCBMVUFf SURTSVpFIGdpdmVzIHRoZSBtYXhpbXVtIHNpemUgZm9yIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUg c291cmNlCi0rQCogb2YgYSBmdW5jdGlvbiBpbiBkZWJ1ZyBpbmZvcm1hdGlvbi4KLSsqKiBDSEFO R0UgaXQgaWYgeW91IHdhbnQgYSBkaWZmZXJlbnQgc2l6ZS4KLSsqLwotKyNkZWZpbmUgTFVBX0lE U0laRQk2MAotKwotKwotKy8qCi0rKiogez09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotKyoqIFN0YW5kLWFsb25lIGNvbmZp Z3VyYXRpb24KLSsqKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0rKi8KLSsKLSsjaWYgZGVmaW5lZChsdWFfYykgfHwg ZGVmaW5lZChsdWFhbGxfYykKLSsKLSsvKgotK0BAIGx1YV9zdGRpbl9pc190dHkgZGV0ZWN0cyB3 aGV0aGVyIHRoZSBzdGFuZGFyZCBpbnB1dCBpcyBhICd0dHknICh0aGF0Ci0rQCogaXMsIHdoZXRo ZXIgd2UncmUgcnVubmluZyBsdWEgaW50ZXJhY3RpdmVseSkuCi0rKiogQ0hBTkdFIGl0IGlmIHlv dSBoYXZlIGEgYmV0dGVyIGRlZmluaXRpb24gZm9yIG5vbi1QT1NJWC9ub24tV2luZG93cwotKyoq IHN5c3RlbXMuCi0rKi8KLSsjaWYgZGVmaW5lZChMVUFfVVNFX0lTQVRUWSkKLSsjaW5jbHVkZSA8 dW5pc3RkLmg+Ci0rI2RlZmluZSBsdWFfc3RkaW5faXNfdHR5KCkJaXNhdHR5KDApCi0rI2VsaWYg ZGVmaW5lZChMVUFfV0lOKQotKyNpbmNsdWRlIDxpby5oPgotKyNpbmNsdWRlIDxzdGRpby5oPgot KyNkZWZpbmUgbHVhX3N0ZGluX2lzX3R0eSgpCV9pc2F0dHkoX2ZpbGVubyhzdGRpbikpCi0rI2Vs c2UKLSsjZGVmaW5lIGx1YV9zdGRpbl9pc190dHkoKQkxICAvKiBhc3N1bWUgc3RkaW4gaXMgYSB0 dHkgKi8KLSsjZW5kaWYKLSsKLSsKLSsvKgotK0BAIExVQV9QUk9NUFQgaXMgdGhlIGRlZmF1bHQg cHJvbXB0IHVzZWQgYnkgc3RhbmQtYWxvbmUgTHVhLgotK0BAIExVQV9QUk9NUFQyIGlzIHRoZSBk ZWZhdWx0IGNvbnRpbnVhdGlvbiBwcm9tcHQgdXNlZCBieSBzdGFuZC1hbG9uZSBMdWEuCi0rKiog Q0hBTkdFIHRoZW0gaWYgeW91IHdhbnQgZGlmZmVyZW50IHByb21wdHMuIChZb3UgY2FuIGFsc28g Y2hhbmdlIHRoZQotKyoqIHByb21wdHMgZHluYW1pY2FsbHksIGFzc2lnbmluZyB0byBnbG9iYWxz IF9QUk9NUFQvX1BST01QVDIuKQotKyovCi0rI2RlZmluZSBMVUFfUFJPTVBUCQkiPiAiCi0rI2Rl ZmluZSBMVUFfUFJPTVBUMgkJIj4+ICIKLSsKLSsKLSsvKgotK0BAIExVQV9QUk9HTkFNRSBpcyB0 aGUgZGVmYXVsdCBuYW1lIGZvciB0aGUgc3RhbmQtYWxvbmUgTHVhIHByb2dyYW0uCi0rKiogQ0hB TkdFIGl0IGlmIHlvdXIgc3RhbmQtYWxvbmUgaW50ZXJwcmV0ZXIgaGFzIGEgZGlmZmVyZW50IG5h bWUgYW5kCi0rKiogeW91ciBzeXN0ZW0gaXMgbm90IGFibGUgdG8gZGV0ZWN0IHRoYXQgbmFtZSBh dXRvbWF0aWNhbGx5LgotKyovCi0rI2RlZmluZSBMVUFfUFJPR05BTUUJCSJsdWEiCi0rCi0rCi0r LyoKLStAQCBMVUFfTUFYSU5QVVQgaXMgdGhlIG1heGltdW0gbGVuZ3RoIGZvciBhbiBpbnB1dCBs aW5lIGluIHRoZQotK0AqIHN0YW5kLWFsb25lIGludGVycHJldGVyLgotKyoqIENIQU5HRSBpdCBp ZiB5b3UgbmVlZCBsb25nZXIgbGluZXMuCi0rKi8KLSsjZGVmaW5lIExVQV9NQVhJTlBVVAk1MTIK LSsKLSsKLSsvKgotK0BAIGx1YV9yZWFkbGluZSBkZWZpbmVzIGhvdyB0byBzaG93IGEgcHJvbXB0 IGFuZCB0aGVuIHJlYWQgYSBsaW5lIGZyb20KLStAKiB0aGUgc3RhbmRhcmQgaW5wdXQuCi0rQEAg bHVhX3NhdmVsaW5lIGRlZmluZXMgaG93IHRvICJzYXZlIiBhIHJlYWQgbGluZSBpbiBhICJoaXN0 b3J5Ii4KLStAQCBsdWFfZnJlZWxpbmUgZGVmaW5lcyBob3cgdG8gZnJlZSBhIGxpbmUgcmVhZCBi eSBsdWFfcmVhZGxpbmUuCi0rKiogQ0hBTkdFIHRoZW0gaWYgeW91IHdhbnQgdG8gaW1wcm92ZSB0 aGlzIGZ1bmN0aW9uYWxpdHkgKGUuZy4sIGJ5IHVzaW5nCi0rKiogR05VIHJlYWRsaW5lIGFuZCBo aXN0b3J5IGZhY2lsaXRpZXMpLgotKyovCi0rI2lmIGRlZmluZWQoTFVBX1VTRV9SRUFETElORSkK LSsjaW5jbHVkZSA8c3RkaW8uaD4KLSsjaW5jbHVkZSA8cmVhZGxpbmUvcmVhZGxpbmUuaD4KLSsj aW5jbHVkZSA8cmVhZGxpbmUvaGlzdG9yeS5oPgotKyNkZWZpbmUgbHVhX3JlYWRsaW5lKEwsYixw KQkoKHZvaWQpTCwgKChiKT1yZWFkbGluZShwKSkgIT0gTlVMTCkKLSsjZGVmaW5lIGx1YV9zYXZl bGluZShMLGlkeCkgXAotKwlpZiAobHVhX3N0cmxlbihMLGlkeCkgPiAwKSAgLyogbm9uLWVtcHR5 IGxpbmU/ICovIFwKLSsJICBhZGRfaGlzdG9yeShsdWFfdG9zdHJpbmcoTCwgaWR4KSk7ICAvKiBh ZGQgaXQgdG8gaGlzdG9yeSAqLwotKyNkZWZpbmUgbHVhX2ZyZWVsaW5lKEwsYikJKCh2b2lkKUws IGZyZWUoYikpCi0rI2Vsc2UKLSsjZGVmaW5lIGx1YV9yZWFkbGluZShMLGIscCkJXAotKwkoKHZv aWQpTCwgZnB1dHMocCwgc3Rkb3V0KSwgZmZsdXNoKHN0ZG91dCksICAvKiBzaG93IHByb21wdCAq LyBcCi0rCWZnZXRzKGIsIExVQV9NQVhJTlBVVCwgc3RkaW4pICE9IE5VTEwpICAvKiBnZXQgbGlu ZSAqLwotKyNkZWZpbmUgbHVhX3NhdmVsaW5lKEwsaWR4KQl7ICh2b2lkKUw7ICh2b2lkKWlkeDsg fQotKyNkZWZpbmUgbHVhX2ZyZWVsaW5lKEwsYikJeyAodm9pZClMOyAodm9pZCliOyB9Ci0rI2Vu ZGlmCi0rCi0rI2VuZGlmCi0rCi0rLyogfT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwotKwotKwotKy8qCi0rQEAgTFVB SV9HQ1BBVVNFIGRlZmluZXMgdGhlIGRlZmF1bHQgcGF1c2UgYmV0d2VlbiBnYXJiYWdlLWNvbGxl Y3RvciBjeWNsZXMKLStAKiBhcyBhIHBlcmNlbnRhZ2UuCi0rKiogQ0hBTkdFIGl0IGlmIHlvdSB3 YW50IHRoZSBHQyB0byBydW4gZmFzdGVyIG9yIHNsb3dlciAoaGlnaGVyIHZhbHVlcwotKyoqIG1l YW4gbGFyZ2VyIHBhdXNlcyB3aGljaCBtZWFuIHNsb3dlciBjb2xsZWN0aW9uLikgWW91IGNhbiBh bHNvIGNoYW5nZQotKyoqIHRoaXMgdmFsdWUgZHluYW1pY2FsbHkuCi0rKi8KLSsjZGVmaW5lIExV QUlfR0NQQVVTRQkyMDAgIC8qIDIwMCUgKHdhaXQgbWVtb3J5IHRvIGRvdWJsZSBiZWZvcmUgbmV4 dCBHQykgKi8KLSsKLSsKLSsvKgotK0BAIExVQUlfR0NNVUwgZGVmaW5lcyB0aGUgZGVmYXVsdCBz cGVlZCBvZiBnYXJiYWdlIGNvbGxlY3Rpb24gcmVsYXRpdmUgdG8KLStAKiBtZW1vcnkgYWxsb2Nh dGlvbiBhcyBhIHBlcmNlbnRhZ2UuCi0rKiogQ0hBTkdFIGl0IGlmIHlvdSB3YW50IHRvIGNoYW5n ZSB0aGUgZ3JhbnVsYXJpdHkgb2YgdGhlIGdhcmJhZ2UKLSsqKiBjb2xsZWN0aW9uLiAoSGlnaGVy IHZhbHVlcyBtZWFuIGNvYXJzZXIgY29sbGVjdGlvbnMuIDAgcmVwcmVzZW50cwotKyoqIGluZmlu aXR5LCB3aGVyZSBlYWNoIHN0ZXAgcGVyZm9ybXMgYSBmdWxsIGNvbGxlY3Rpb24uKSBZb3UgY2Fu IGFsc28KLSsqKiBjaGFuZ2UgdGhpcyB2YWx1ZSBkeW5hbWljYWxseS4KLSsqLwotKyNkZWZpbmUg TFVBSV9HQ01VTAkyMDAgLyogR0MgcnVucyAndHdpY2UgdGhlIHNwZWVkJyBvZiBtZW1vcnkgYWxs b2NhdGlvbiAqLwotKwotKwotKwotKy8qCi0rQEAgTFVBX0NPTVBBVF9HRVROIGNvbnRyb2xzIGNv bXBhdGliaWxpdHkgd2l0aCBvbGQgZ2V0biBiZWhhdmlvci4KLSsqKiBDSEFOR0UgaXQgKGRlZmlu ZSBpdCkgaWYgeW91IHdhbnQgZXhhY3QgY29tcGF0aWJpbGl0eSB3aXRoIHRoZQotKyoqIGJlaGF2 aW9yIG9mIHNldG4vZ2V0biBpbiBMdWEgNS4wLgotKyovCi0rI3VuZGVmIExVQV9DT01QQVRfR0VU TgotKwotKy8qCi0rQEAgTFVBX0NPTVBBVF9MT0FETElCIGNvbnRyb2xzIGNvbXBhdGliaWxpdHkg YWJvdXQgZ2xvYmFsIGxvYWRsaWIuCi0rKiogQ0hBTkdFIGl0IHRvIHVuZGVmaW5lZCBhcyBzb29u IGFzIHlvdSBkbyBub3QgbmVlZCBhIGdsb2JhbCAnbG9hZGxpYicKLSsqKiBmdW5jdGlvbiAodGhl IGZ1bmN0aW9uIGlzIHN0aWxsIGF2YWlsYWJsZSBhcyAncGFja2FnZS5sb2FkbGliJykuCi0rKi8K LSsjdW5kZWYgTFVBX0NPTVBBVF9MT0FETElCCi0rCi0rLyoKLStAQCBMVUFfQ09NUEFUX1ZBUkFS RyBjb250cm9scyBjb21wYXRpYmlsaXR5IHdpdGggb2xkIHZhcmFyZyBmZWF0dXJlLgotKyoqIENI QU5HRSBpdCB0byB1bmRlZmluZWQgYXMgc29vbiBhcyB5b3VyIHByb2dyYW1zIHVzZSBvbmx5ICcu Li4nIHRvCi0rKiogYWNjZXNzIHZhcmFyZyBwYXJhbWV0ZXJzIChpbnN0ZWFkIG9mIHRoZSBvbGQg J2FyZycgdGFibGUpLgotKyovCi0rI2RlZmluZSBMVUFfQ09NUEFUX1ZBUkFSRwotKwotKy8qCi0r QEAgTFVBX0NPTVBBVF9NT0QgY29udHJvbHMgY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBtYXRoLm1v ZCBmdW5jdGlvbi4KLSsqKiBDSEFOR0UgaXQgdG8gdW5kZWZpbmVkIGFzIHNvb24gYXMgeW91ciBw cm9ncmFtcyB1c2UgJ21hdGguZm1vZCcgb3IKLSsqKiB0aGUgbmV3ICclJyBvcGVyYXRvciBpbnN0 ZWFkIG9mICdtYXRoLm1vZCcuCi0rKi8KLSsjZGVmaW5lIExVQV9DT01QQVRfTU9ECi0rCi0rLyoK LStAQCBMVUFfQ09NUEFUX0xTVFIgY29udHJvbHMgY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBsb25n IHN0cmluZyBuZXN0aW5nCi0rQCogZmFjaWxpdHkuCi0rKiogQ0hBTkdFIGl0IHRvIDIgaWYgeW91 IHdhbnQgdGhlIG9sZCBiZWhhdmlvdXIsIG9yIHVuZGVmaW5lIGl0IHRvIHR1cm4KLSsqKiBvZmYg dGhlIGFkdmlzb3J5IGVycm9yIHdoZW4gbmVzdGluZyBbWy4uLl1dLgotKyovCi0rI2RlZmluZSBM VUFfQ09NUEFUX0xTVFIJCTEKLSsKLSsvKgotK0BAIExVQV9DT01QQVRfR0ZJTkQgY29udHJvbHMg Y29tcGF0aWJpbGl0eSB3aXRoIG9sZCAnc3RyaW5nLmdmaW5kJyBuYW1lLgotKyoqIENIQU5HRSBp dCB0byB1bmRlZmluZWQgYXMgc29vbiBhcyB5b3UgcmVuYW1lICdzdHJpbmcuZ2ZpbmQnIHRvCi0r KiogJ3N0cmluZy5nbWF0Y2gnLgotKyovCi0rI2RlZmluZSBMVUFfQ09NUEFUX0dGSU5ECi0rCi0r LyoKLStAQCBMVUFfQ09NUEFUX09QRU5MSUIgY29udHJvbHMgY29tcGF0aWJpbGl0eSB3aXRoIG9s ZCAnbHVhTF9vcGVubGliJwotK0AqIGJlaGF2aW9yLgotKyoqIENIQU5HRSBpdCB0byB1bmRlZmlu ZWQgYXMgc29vbiBhcyB5b3UgcmVwbGFjZSB0byAnbHVhTF9yZWdpc3RlcicKLSsqKiB5b3VyIHVz ZXMgb2YgJ2x1YUxfb3BlbmxpYicKLSsqLwotKyNkZWZpbmUgTFVBX0NPTVBBVF9PUEVOTElCCi0r Ci0rCi0rCi0rLyoKLStAQCBsdWFpX2FwaWNoZWNrIGlzIHRoZSBhc3NlcnQgbWFjcm8gdXNlZCBi eSB0aGUgTHVhLUMgQVBJLgotKyoqIENIQU5HRSBsdWFpX2FwaWNoZWNrIGlmIHlvdSB3YW50IEx1 YSB0byBwZXJmb3JtIHNvbWUgY2hlY2tzIGluIHRoZQotKyoqIHBhcmFtZXRlcnMgaXQgZ2V0cyBm cm9tIEFQSSBjYWxscy4gVGhpcyBtYXkgc2xvdyBkb3duIHRoZSBpbnRlcnByZXRlcgotKyoqIGEg Yml0LCBidXQgbWF5IGJlIHF1aXRlIHVzZWZ1bCB3aGVuIGRlYnVnZ2luZyBDIGNvZGUgdGhhdCBp bnRlcmZhY2VzCi0rKiogd2l0aCBMdWEuIEEgdXNlZnVsIHJlZGVmaW5pdGlvbiBpcyB0byB1c2Ug YXNzZXJ0LmguCi0rKi8KLSsjaWYgZGVmaW5lZChMVUFfVVNFX0FQSUNIRUNLKQotKyNpbmNsdWRl IDxhc3NlcnQuaD4KLSsjZGVmaW5lIGx1YWlfYXBpY2hlY2soTCxvKQl7ICh2b2lkKUw7IGFzc2Vy dChvKTsgfQotKyNlbHNlCi0rI2RlZmluZSBsdWFpX2FwaWNoZWNrKEwsbykJeyAodm9pZClMOyB9 Ci0rI2VuZGlmCi0rCi0rCi0rLyoKLStAQCBMVUFJX0JJVFNJTlQgZGVmaW5lcyB0aGUgbnVtYmVy IG9mIGJpdHMgaW4gYW4gaW50LgotKyoqIENIQU5HRSBoZXJlIGlmIEx1YSBjYW5ub3QgYXV0b21h dGljYWxseSBkZXRlY3QgdGhlIG51bWJlciBvZiBiaXRzIG9mCi0rKiogeW91ciBtYWNoaW5lLiBQ cm9iYWJseSB5b3UgZG8gbm90IG5lZWQgdG8gY2hhbmdlIHRoaXMuCi0rKi8KLSsvKiBhdm9pZCBv dmVyZmxvd3MgaW4gY29tcGFyaXNvbiAqLwotKyNpZiBJTlRfTUFYLTIwIDwgMzI3NjAKLSsjZGVm aW5lIExVQUlfQklUU0lOVAkxNgotKyNlbGlmIElOVF9NQVggPiAyMTQ3NDgzNjQwTAotKy8qIGlu dCBoYXMgYXQgbGVhc3QgMzIgYml0cyAqLwotKyNkZWZpbmUgTFVBSV9CSVRTSU5UCTMyCi0rI2Vs c2UKLSsjZXJyb3IgInlvdSBtdXN0IGRlZmluZSBMVUFfQklUU0lOVCB3aXRoIG51bWJlciBvZiBi aXRzIGluIGFuIGludGVnZXIiCi0rI2VuZGlmCi0rCi0rCi0rLyoKLStAQCBMVUFJX1VJTlQzMiBp cyBhbiB1bnNpZ25lZCBpbnRlZ2VyIHdpdGggYXQgbGVhc3QgMzIgYml0cy4KLStAQCBMVUFJX0lO VDMyIGlzIGFuIHNpZ25lZCBpbnRlZ2VyIHdpdGggYXQgbGVhc3QgMzIgYml0cy4KLStAQCBMVUFJ X1VNRU0gaXMgYW4gdW5zaWduZWQgaW50ZWdlciBiaWcgZW5vdWdoIHRvIGNvdW50IHRoZSB0b3Rh bAotK0AqIG1lbW9yeSB1c2VkIGJ5IEx1YS4KLStAQCBMVUFJX01FTSBpcyBhIHNpZ25lZCBpbnRl Z2VyIGJpZyBlbm91Z2ggdG8gY291bnQgdGhlIHRvdGFsIG1lbW9yeQotK0AqIHVzZWQgYnkgTHVh LgotKyoqIENIQU5HRSBoZXJlIGlmIGZvciBzb21lIHdlaXJkIHJlYXNvbiB0aGUgZGVmYXVsdCBk ZWZpbml0aW9ucyBhcmUgbm90Ci0rKiogZ29vZCBlbm91Z2ggZm9yIHlvdXIgbWFjaGluZS4gKFRo ZSBkZWZpbml0aW9ucyBpbiB0aGUgJ2Vsc2UnCi0rKiogcGFydCBhbHdheXMgd29ya3MsIGJ1dCBt YXkgd2FzdGUgc3BhY2Ugb24gbWFjaGluZXMgd2l0aCA2NC1iaXQKLSsqKiBsb25ncy4pIFByb2Jh Ymx5IHlvdSBkbyBub3QgbmVlZCB0byBjaGFuZ2UgdGhpcy4KLSsqLwotKyNpZiBMVUFJX0JJVFNJ TlQgPj0gMzIKLSsjZGVmaW5lIExVQUlfVUlOVDMyCXVuc2lnbmVkIGludAotKyNkZWZpbmUgTFVB SV9JTlQzMglpbnQKLSsjZGVmaW5lIExVQUlfTUFYSU5UMzIJSU5UX01BWAotKyNkZWZpbmUgTFVB SV9VTUVNCXNpemVfdAotKyNkZWZpbmUgTFVBSV9NRU0JcHRyZGlmZl90Ci0rI2Vsc2UKLSsvKiAx Ni1iaXQgaW50cyAqLwotKyNkZWZpbmUgTFVBSV9VSU5UMzIJdW5zaWduZWQgbG9uZwotKyNkZWZp bmUgTFVBSV9JTlQzMglsb25nCi0rI2RlZmluZSBMVUFJX01BWElOVDMyCUxPTkdfTUFYCi0rI2Rl ZmluZSBMVUFJX1VNRU0JdW5zaWduZWQgbG9uZwotKyNkZWZpbmUgTFVBSV9NRU0JbG9uZwotKyNl bmRpZgotKwotKwotKy8qCi0rQEAgTFVBSV9NQVhDQUxMUyBsaW1pdHMgdGhlIG51bWJlciBvZiBu ZXN0ZWQgY2FsbHMuCi0rKiogQ0hBTkdFIGl0IGlmIHlvdSBuZWVkIHJlYWxseSBkZWVwIHJlY3Vy c2l2ZSBjYWxscy4gVGhpcyBsaW1pdCBpcwotKyoqIGFyYml0cmFyeTsgaXRzIG9ubHkgcHVycG9z ZSBpcyB0byBzdG9wIGluZmluaXRlIHJlY3Vyc2lvbiBiZWZvcmUKLSsqKiBleGhhdXN0aW5nIG1l bW9yeS4KLSsqLwotKyNkZWZpbmUgTFVBSV9NQVhDQUxMUwkyMDAwMAotKwotKwotKy8qCi0rQEAg TFVBSV9NQVhDU1RBQ0sgbGltaXRzIHRoZSBudW1iZXIgb2YgTHVhIHN0YWNrIHNsb3RzIHRoYXQg YSBDIGZ1bmN0aW9uCi0rQCogY2FuIHVzZS4KLSsqKiBDSEFOR0UgaXQgaWYgeW91IG5lZWQgbG90 cyBvZiAoTHVhKSBzdGFjayBzcGFjZSBmb3IgeW91ciBDCi0rKiogZnVuY3Rpb25zLiBUaGlzIGxp bWl0IGlzIGFyYml0cmFyeTsgaXRzIG9ubHkgcHVycG9zZSBpcyB0byBzdG9wIEMKLSsqKiBmdW5j dGlvbnMgdG8gY29uc3VtZSB1bmxpbWl0ZWQgc3RhY2sgc3BhY2UuCi0rKi8KLSsjZGVmaW5lIExV QUlfTUFYQ1NUQUNLCTIwNDgKLSsKLSsKLSsKLSsvKgotKyoqIHs9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSsqKiBDSEFO R0UgKHRvIHNtYWxsZXIgdmFsdWVzKSB0aGUgZm9sbG93aW5nIGRlZmluaXRpb25zIGlmIHlvdXIg c3lzdGVtCi0rKiogaGFzIGEgc21hbGwgQyBzdGFjay4gKE9yIHlvdSBtYXkgd2FudCB0byBjaGFu Z2UgdGhlbSB0byBsYXJnZXIKLSsqKiB2YWx1ZXMgaWYgeW91ciBzeXN0ZW0gaGFzIGEgbGFyZ2Ug QyBzdGFjayBhbmQgdGhlc2UgbGltaXRzIGFyZQotKyoqIHRvbyByaWdpZCBmb3IgeW91LikgU29t ZSBvZiB0aGVzZSBjb25zdGFudHMgY29udHJvbCB0aGUgc2l6ZSBvZgotKyoqIHN0YWNrLWFsbG9j YXRlZCBhcnJheXMgdXNlZCBieSB0aGUgY29tcGlsZXIgb3IgdGhlIGludGVycHJldGVyLCB3aGls ZQotKyoqIG90aGVycyBsaW1pdCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVjdXJzaXZlIGNhbGxz IHRoYXQgdGhlIGNvbXBpbGVyCi0rKiogb3IgdGhlIGludGVycHJldGVyIGNhbiBwZXJmb3JtLiBW YWx1ZXMgdG9vIGxhcmdlIG1heSBjYXVzZSBhIEMgc3RhY2sKLSsqKiBvdmVyZmxvdyBmb3Igc29t ZSBmb3JtcyBvZiBkZWVwIGNvbnN0cnVjdHMuCi0rKiogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotKyovCi0rCi0rCi0r LyoKLStAQCBMVUFJX01BWENDQUxMUyBpcyB0aGUgbWF4aW11bSBkZXB0aCBmb3IgbmVzdGVkIEMg Y2FsbHMgKHNob3J0KSBhbmQKLStAKiBzeW50YWN0aWNhbCBuZXN0ZWQgbm9uLXRlcm1pbmFscyBp biBhIHByb2dyYW0uCi0rKi8KLSsjZGVmaW5lIExVQUlfTUFYQ0NBTExTCQkyMDAKLSsKLSsKLSsv KgotK0BAIExVQUlfTUFYVkFSUyBpcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgbG9jYWwgdmFyaWFi bGVzIHBlciBmdW5jdGlvbgotK0AqIChtdXN0IGJlIHNtYWxsZXIgdGhhbiAyNTApLgotKyovCi0r I2RlZmluZSBMVUFJX01BWFZBUlMJCTIwMAotKwotKwotKy8qCi0rQEAgTFVBSV9NQVhVUFZBTFVF UyBpcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgdXB2YWx1ZXMgcGVyIGZ1bmN0aW9uCi0rQCogKG11 c3QgYmUgc21hbGxlciB0aGFuIDI1MCkuCi0rKi8KLSsjZGVmaW5lIExVQUlfTUFYVVBWQUxVRVMJ NjAKLSsKLSsKLSsvKgotK0BAIExVQUxfQlVGRkVSU0laRSBpcyB0aGUgYnVmZmVyIHNpemUgdXNl ZCBieSB0aGUgbGF1eGxpYiBidWZmZXIgc3lzdGVtLgotKyovCi0rI2RlZmluZSBMVUFMX0JVRkZF UlNJWkUJCUJVRlNJWgotKwotKy8qIH09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KLSsKLSsKLSsKLSsKLSsvKgotKyoq IHs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLStAQCBMVUFfTlVNQkVSIGlzIHRoZSB0eXBlIG9mIG51bWJlcnMgaW4gTHVh LgotKyoqIENIQU5HRSB0aGUgZm9sbG93aW5nIGRlZmluaXRpb25zIG9ubHkgaWYgeW91IHdhbnQg dG8gYnVpbGQgTHVhCi0rKiogd2l0aCBhIG51bWJlciB0eXBlIGRpZmZlcmVudCBmcm9tIGRvdWJs ZS4gWW91IG1heSBhbHNvIG5lZWQgdG8KLSsqKiBjaGFuZ2UgbHVhX251bWJlcjJpbnQgJiBsdWFf bnVtYmVyMmludGVnZXIuCi0rKiogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotKyovCi0rCi0rI2RlZmluZSBMVUFfTlVN QkVSX0RPVUJMRQotKyNkZWZpbmUgTFVBX05VTUJFUglkb3VibGUKLSsKLSsvKgotK0BAIExVQUlf VUFDTlVNQkVSIGlzIHRoZSByZXN1bHQgb2YgYW4gJ3VzdWFsIGFyZ3VtZW50IGNvbnZlcnNpb24n Ci0rQCogb3ZlciBhIG51bWJlci4KLSsqLwotKyNkZWZpbmUgTFVBSV9VQUNOVU1CRVIJZG91Ymxl Ci0rCi0rCi0rLyoKLStAQCBMVUFfTlVNQkVSX1NDQU4gaXMgdGhlIGZvcm1hdCBmb3IgcmVhZGlu ZyBudW1iZXJzLgotK0BAIExVQV9OVU1CRVJfRk1UIGlzIHRoZSBmb3JtYXQgZm9yIHdyaXRpbmcg bnVtYmVycy4KLStAQCBsdWFfbnVtYmVyMnN0ciBjb252ZXJ0cyBhIG51bWJlciB0byBhIHN0cmlu Zy4KLStAQCBMVUFJX01BWE5VTUJFUjJTVFIgaXMgbWF4aW11bSBzaXplIG9mIHByZXZpb3VzIGNv bnZlcnNpb24uCi0rQEAgbHVhX3N0cjJudW1iZXIgY29udmVydHMgYSBzdHJpbmcgdG8gYSBudW1i ZXIuCi0rKi8KLSsjZGVmaW5lIExVQV9OVU1CRVJfU0NBTgkJIiVsZiIKLSsjZGVmaW5lIExVQV9O VU1CRVJfRk1UCQkiJS4xNGciCi0rI2RlZmluZSBsdWFfbnVtYmVyMnN0cihzLG4pCXNwcmludGYo KHMpLCBMVUFfTlVNQkVSX0ZNVCwgKG4pKQotKyNkZWZpbmUgTFVBSV9NQVhOVU1CRVIyU1RSCTMy IC8qIDE2IGRpZ2l0cywgc2lnbiwgcG9pbnQsIGFuZCBcMCAqLwotKyNkZWZpbmUgbHVhX3N0cjJu dW1iZXIocyxwKQlzdHJ0b2QoKHMpLCAocCkpCi0rCi0rCi0rLyoKLStAQCBUaGUgbHVhaV9udW0q IG1hY3JvcyBkZWZpbmUgdGhlIHByaW1pdGl2ZSBvcGVyYXRpb25zIG92ZXIgbnVtYmVycy4KLSsq LwotKyNpZiBkZWZpbmVkKExVQV9DT1JFKQotKyNpbmNsdWRlIDxtYXRoLmg+Ci0rI2RlZmluZSBs dWFpX251bWFkZChhLGIpCSgoYSkrKGIpKQotKyNkZWZpbmUgbHVhaV9udW1zdWIoYSxiKQkoKGEp LShiKSkKLSsjZGVmaW5lIGx1YWlfbnVtbXVsKGEsYikJKChhKSooYikpCi0rI2RlZmluZSBsdWFp X251bWRpdihhLGIpCSgoYSkvKGIpKQotKyNkZWZpbmUgbHVhaV9udW1tb2QoYSxiKQkoKGEpIC0g Zmxvb3IoKGEpLyhiKSkqKGIpKQotKyNkZWZpbmUgbHVhaV9udW1wb3coYSxiKQkocG93KGEsYikp Ci0rI2RlZmluZSBsdWFpX251bXVubShhKQkJKC0oYSkpCi0rI2RlZmluZSBsdWFpX251bWVxKGEs YikJCSgoYSk9PShiKSkKLSsjZGVmaW5lIGx1YWlfbnVtbHQoYSxiKQkJKChhKTwoYikpCi0rI2Rl ZmluZSBsdWFpX251bWxlKGEsYikJCSgoYSk8PShiKSkKLSsjZGVmaW5lIGx1YWlfbnVtaXNuYW4o YSkJKCFsdWFpX251bWVxKChhKSwgKGEpKSkKLSsjZW5kaWYKLSsKLSsKLSsvKgotK0BAIGx1YV9u dW1iZXIyaW50IGlzIGEgbWFjcm8gdG8gY29udmVydCBsdWFfTnVtYmVyIHRvIGludC4KLStAQCBs dWFfbnVtYmVyMmludGVnZXIgaXMgYSBtYWNybyB0byBjb252ZXJ0IGx1YV9OdW1iZXIgdG8gbHVh X0ludGVnZXIuCi0rKiogQ0hBTkdFIHRoZW0gaWYgeW91IGtub3cgYSBmYXN0ZXIgd2F5IHRvIGNv bnZlcnQgYSBsdWFfTnVtYmVyIHRvCi0rKiogaW50ICh3aXRoIGFueSByb3VuZGluZyBtZXRob2Qg YW5kIHdpdGhvdXQgdGhyb3dpbmcgZXJyb3JzKSBpbiB5b3VyCi0rKiogc3lzdGVtLiBJbiBQZW50 aXVtIG1hY2hpbmVzLCBhIG5haXZlIHR5cGVjYXN0IGZyb20gZG91YmxlIHRvIGludAotKyoqIGlu IEMgaXMgZXh0cmVtZWx5IHNsb3csIHNvIGFueSBhbHRlcm5hdGl2ZSBpcyB3b3J0aCB0cnlpbmcu Ci0rKi8KLSsKLSsvKiBPbiBhIFBlbnRpdW0sIHJlc29ydCB0byBhIHRyaWNrICovCi0rI2lmIGRl ZmluZWQoTFVBX05VTUJFUl9ET1VCTEUpICYmICFkZWZpbmVkKExVQV9BTlNJKSAmJiAhZGVmaW5l ZChfX1NTRTJfXykgJiYgXAotKyAgICAoZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQgKF9NX0lY ODYpIHx8IGRlZmluZWQoX19pMzg2X18pKQotKwotKy8qIE9uIGEgTWljcm9zb2Z0IGNvbXBpbGVy LCB1c2UgYXNzZW1ibGVyICovCi0rI2lmIGRlZmluZWQoX01TQ19WRVIpCi0rCi0rI2RlZmluZSBs dWFfbnVtYmVyMmludChpLGQpICAgX19hc20gZmxkIGQgICBfX2FzbSBmaXN0cCBpCi0rI2RlZmlu ZSBsdWFfbnVtYmVyMmludGVnZXIoaSxuKQkJbHVhX251bWJlcjJpbnQoaSwgbikKLSsKLSsvKiB0 aGUgbmV4dCB0cmljayBzaG91bGQgd29yayBvbiBhbnkgUGVudGl1bSwgYnV0IHNvbWV0aW1lcyBj bGFzaGVzCi0rICAgd2l0aCBhIERpcmVjdFggaWRpb3N5bmNyYXN5ICovCi0rI2Vsc2UKLSsKLSt1 bmlvbiBsdWFpX0Nhc3QgeyBkb3VibGUgbF9kOyBsb25nIGxfbDsgfTsKLSsjZGVmaW5lIGx1YV9u dW1iZXIyaW50KGksZCkgXAotKyAgeyB2b2xhdGlsZSB1bmlvbiBsdWFpX0Nhc3QgdTsgdS5sX2Qg PSAoZCkgKyA2NzU1Mzk5NDQxMDU1NzQ0LjA7IChpKSA9IHUubF9sOyB9Ci0rI2RlZmluZSBsdWFf bnVtYmVyMmludGVnZXIoaSxuKQkJbHVhX251bWJlcjJpbnQoaSwgbikKLSsKLSsjZW5kaWYKLSsK LSsKLSsvKiB0aGlzIG9wdGlvbiBhbHdheXMgd29ya3MsIGJ1dCBtYXkgYmUgc2xvdyAqLwotKyNl bHNlCi0rI2RlZmluZSBsdWFfbnVtYmVyMmludChpLGQpCSgoaSk9KGludCkoZCkpCi0rI2RlZmlu ZSBsdWFfbnVtYmVyMmludGVnZXIoaSxkKQkoKGkpPShsdWFfSW50ZWdlcikoZCkpCi0rCi0rI2Vu ZGlmCi0rCi0rLyogfT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PSAqLwotKwotKwotKy8qCi0rQEAgTFVBSV9VU0VSX0FMSUdO TUVOVF9UIGlzIGEgdHlwZSB0aGF0IHJlcXVpcmVzIG1heGltdW0gYWxpZ25tZW50LgotKyoqIENI QU5HRSBpdCBpZiB5b3VyIHN5c3RlbSByZXF1aXJlcyBhbGlnbm1lbnRzIGxhcmdlciB0aGFuIGRv dWJsZS4gKEZvcgotKyoqIGluc3RhbmNlLCBpZiB5b3VyIHN5c3RlbSBzdXBwb3J0cyBsb25nIGRv dWJsZXMgYW5kIHRoZXkgbXVzdCBiZQotKyoqIGFsaWduZWQgaW4gMTYtYnl0ZSBib3VuZGFyaWVz LCB0aGVuIHlvdSBzaG91bGQgYWRkIGxvbmcgZG91YmxlIGluIHRoZQotKyoqIHVuaW9uLikgUHJv YmFibHkgeW91IGRvIG5vdCBuZWVkIHRvIGNoYW5nZSB0aGlzLgotKyovCi0rI2RlZmluZSBMVUFJ X1VTRVJfQUxJR05NRU5UX1QJdW5pb24geyBkb3VibGUgdTsgdm9pZCAqczsgbG9uZyBsOyB9Ci0r Ci0rCi0rLyoKLStAQCBMVUFJX1RIUk9XL0xVQUlfVFJZIGRlZmluZSBob3cgTHVhIGRvZXMgZXhj ZXB0aW9uIGhhbmRsaW5nLgotKyoqIENIQU5HRSB0aGVtIGlmIHlvdSBwcmVmZXIgdG8gdXNlIGxv bmdqbXAvc2V0am1wIGV2ZW4gd2l0aCBDKysKLSsqKiBvciBpZiB3YW50L2Rvbid0IHRvIHVzZSBf bG9uZ2ptcC9fc2V0am1wIGluc3RlYWQgb2YgcmVndWxhcgotKyoqIGxvbmdqbXAvc2V0am1wLiBC eSBkZWZhdWx0LCBMdWEgaGFuZGxlcyBlcnJvcnMgd2l0aCBleGNlcHRpb25zIHdoZW4KLSsqKiBj b21waWxpbmcgYXMgQysrIGNvZGUsIHdpdGggX2xvbmdqbXAvX3NldGptcCB3aGVuIGFza2VkIHRv IHVzZSB0aGVtLAotKyoqIGFuZCB3aXRoIGxvbmdqbXAvc2V0am1wIG90aGVyd2lzZS4KLSsqLwot KyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQotKy8qIEMrKyBleGNlcHRpb25zICovCi0rI2RlZmlu ZSBMVUFJX1RIUk9XKEwsYykJdGhyb3coYykKLSsjZGVmaW5lIExVQUlfVFJZKEwsYyxhKQl0cnkg eyBhIH0gY2F0Y2goLi4uKSBcCi0rCXsgaWYgKChjKS0+c3RhdHVzID09IDApIChjKS0+c3RhdHVz ID0gLTE7IH0KLSsjZGVmaW5lIGx1YWlfam1wYnVmCWludCAgLyogZHVtbXkgdmFyaWFibGUgKi8K LSsKLSsjZWxpZiBkZWZpbmVkKExVQV9VU0VfVUxPTkdKTVApCi0rLyogaW4gVW5peCwgdHJ5IF9s b25nam1wL19zZXRqbXAgKG1vcmUgZWZmaWNpZW50KSAqLwotKyNkZWZpbmUgTFVBSV9USFJPVyhM LGMpCV9sb25nam1wKChjKS0+YiwgMSkKLSsjZGVmaW5lIExVQUlfVFJZKEwsYyxhKQlpZiAoX3Nl dGptcCgoYyktPmIpID09IDApIHsgYSB9Ci0rI2RlZmluZSBsdWFpX2ptcGJ1ZglqbXBfYnVmCi0r Ci0rI2Vsc2UKLSsvKiBkZWZhdWx0IGhhbmRsaW5nIHdpdGggbG9uZyBqdW1wcyAqLwotKyNkZWZp bmUgTFVBSV9USFJPVyhMLGMpCWxvbmdqbXAoKGMpLT5iLCAxKQotKyNkZWZpbmUgTFVBSV9UUlko TCxjLGEpCWlmIChzZXRqbXAoKGMpLT5iKSA9PSAwKSB7IGEgfQotKyNkZWZpbmUgbHVhaV9qbXBi dWYJam1wX2J1ZgotKwotKyNlbmRpZgotKwotKwotKy8qCi0rQEAgTFVBX01BWENBUFRVUkVTIGlz IHRoZSBtYXhpbXVtIG51bWJlciBvZiBjYXB0dXJlcyB0aGF0IGEgcGF0dGVybgotK0AqIGNhbiBk byBkdXJpbmcgcGF0dGVybi1tYXRjaGluZy4KLSsqKiBDSEFOR0UgaXQgaWYgeW91IG5lZWQgbW9y ZSBjYXB0dXJlcy4gVGhpcyBsaW1pdCBpcyBhcmJpdHJhcnkuCi0rKi8KLSsjZGVmaW5lIExVQV9N QVhDQVBUVVJFUwkJMzIKLSsKLSsKLSsvKgotK0BAIGx1YV90bXBuYW0gaXMgdGhlIGZ1bmN0aW9u IHRoYXQgdGhlIE9TIGxpYnJhcnkgdXNlcyB0byBjcmVhdGUgYQotK0AqIHRlbXBvcmFyeSBuYW1l LgotK0BAIExVQV9UTVBOQU1CVUZTSVpFIGlzIHRoZSBtYXhpbXVtIHNpemUgb2YgYSBuYW1lIGNy ZWF0ZWQgYnkgbHVhX3RtcG5hbS4KLSsqKiBDSEFOR0UgdGhlbSBpZiB5b3UgaGF2ZSBhbiBhbHRl cm5hdGl2ZSB0byB0bXBuYW0gKHdoaWNoIGlzIGNvbnNpZGVyZWQKLSsqKiBpbnNlY3VyZSkgb3Ig aWYgeW91IHdhbnQgdGhlIG9yaWdpbmFsIHRtcG5hbSBhbnl3YXkuICBCeSBkZWZhdWx0LCBMdWEK LSsqKiB1c2VzIHRtcG5hbSBleGNlcHQgd2hlbiBQT1NJWCBpcyBhdmFpbGFibGUsIHdoZXJlIGl0 IHVzZXMgbWtzdGVtcC4KLSsqLwotKyNpZiBkZWZpbmVkKGxvc2xpYl9jKSB8fCBkZWZpbmVkKGx1 YWFsbF9jKQotKwotKyNpZiBkZWZpbmVkKExVQV9VU0VfTUtTVEVNUCkKLSsjaW5jbHVkZSA8dW5p c3RkLmg+Ci0rI2RlZmluZSBMVUFfVE1QTkFNQlVGU0laRQkzMgotKyNkZWZpbmUgbHVhX3RtcG5h bShiLGUpCXsgXAotKwlzdHJjcHkoYiwgIi90bXAvbHVhX1hYWFhYWCIpOyBcCi0rCWUgPSBta3N0 ZW1wKGIpOyBcCi0rCWlmIChlICE9IC0xKSBjbG9zZShlKTsgXAotKwllID0gKGUgPT0gLTEpOyB9 Ci0rCi0rI2Vsc2UKLSsjZGVmaW5lIExVQV9UTVBOQU1CVUZTSVpFCUxfdG1wbmFtCi0rI2RlZmlu ZSBsdWFfdG1wbmFtKGIsZSkJCXsgZSA9ICh0bXBuYW0oYikgPT0gTlVMTCk7IH0KLSsjZW5kaWYK LSsKLSsjZW5kaWYKLSsKLSsKLSsvKgotK0BAIGx1YV9wb3BlbiBzcGF3bnMgYSBuZXcgcHJvY2Vz cyBjb25uZWN0ZWQgdG8gdGhlIGN1cnJlbnQgb25lIHRocm91Z2gKLStAKiB0aGUgZmlsZSBzdHJl YW1zLgotKyoqIENIQU5HRSBpdCBpZiB5b3UgaGF2ZSBhIHdheSB0byBpbXBsZW1lbnQgaXQgaW4g eW91ciBzeXN0ZW0uCi0rKi8KLSsjaWYgZGVmaW5lZChMVUFfVVNFX1BPUEVOKQotKwotKyNkZWZp bmUgbHVhX3BvcGVuKEwsYyxtKQkoKHZvaWQpTCwgcG9wZW4oYyxtKSkKLSsjZGVmaW5lIGx1YV9w Y2xvc2UoTCxmaWxlKQkoKHZvaWQpTCwgKHBjbG9zZShmaWxlKSAhPSAtMSkpCi0rCi0rI2VsaWYg ZGVmaW5lZChMVUFfV0lOKQotKwotKyNkZWZpbmUgbHVhX3BvcGVuKEwsYyxtKQkoKHZvaWQpTCwg X3BvcGVuKGMsbSkpCi0rI2RlZmluZSBsdWFfcGNsb3NlKEwsZmlsZSkJKCh2b2lkKUwsIChfcGNs b3NlKGZpbGUpICE9IC0xKSkKLSsKLSsjZWxzZQotKwotKyNkZWZpbmUgbHVhX3BvcGVuKEwsYyxt KQkoKHZvaWQpKCh2b2lkKWMsIG0pLCAgXAotKwkJbHVhTF9lcnJvcihMLCBMVUFfUUwoInBvcGVu IikgIiBub3Qgc3VwcG9ydGVkIiksIChGSUxFKikwKQotKyNkZWZpbmUgbHVhX3BjbG9zZShMLGZp bGUpCQkoKHZvaWQpKCh2b2lkKUwsIGZpbGUpLCAwKQotKwotKyNlbmRpZgotKwotKy8qCi0rQEAg TFVBX0RMXyogZGVmaW5lIHdoaWNoIGR5bmFtaWMtbGlicmFyeSBzeXN0ZW0gTHVhIHNob3VsZCB1 c2UuCi0rKiogQ0hBTkdFIGhlcmUgaWYgTHVhIGhhcyBwcm9ibGVtcyBjaG9vc2luZyB0aGUgYXBw cm9wcmlhdGUKLSsqKiBkeW5hbWljLWxpYnJhcnkgc3lzdGVtIGZvciB5b3VyIHBsYXRmb3JtIChl aXRoZXIgV2luZG93cycgRExMLCBNYWMncwotKyoqIGR5bGQsIG9yIFVuaXgncyBkbG9wZW4pLiBJ ZiB5b3VyIHN5c3RlbSBpcyBzb21lIGtpbmQgb2YgVW5peCwgdGhlcmUKLSsqKiBpcyBhIGdvb2Qg Y2hhbmNlIHRoYXQgaXQgaGFzIGRsb3Blbiwgc28gTFVBX0RMX0RMT1BFTiB3aWxsIHdvcmsgZm9y Ci0rKiogaXQuICBUbyB1c2UgZGxvcGVuIHlvdSBhbHNvIG5lZWQgdG8gYWRhcHQgdGhlIHNyYy9N YWtlZmlsZSAocHJvYmFibHkKLSsqKiBhZGRpbmcgLWxkbCB0byB0aGUgbGlua2VyIG9wdGlvbnMp LCBzbyBMdWEgZG9lcyBub3Qgc2VsZWN0IGl0Ci0rKiogYXV0b21hdGljYWxseS4gIChXaGVuIHlv dSBjaGFuZ2UgdGhlIG1ha2VmaWxlIHRvIGFkZCAtbGRsLCB5b3UgbXVzdAotKyoqIGFsc28gYWRk IC1ETFVBX1VTRV9ETE9QRU4uKQotKyoqIElmIHlvdSBkbyBub3Qgd2FudCBhbnkga2luZCBvZiBk eW5hbWljIGxpYnJhcnksIHVuZGVmaW5lIGFsbCB0aGVzZQotKyoqIG9wdGlvbnMuCi0rKiogQnkg ZGVmYXVsdCwgX1dJTjMyIGdldHMgTFVBX0RMX0RMTCBhbmQgTUFDIE9TIFggZ2V0cyBMVUFfRExf RFlMRC4KLSsqLwotKyNpZiBkZWZpbmVkKExVQV9VU0VfRExPUEVOKQotKyNkZWZpbmUgTFVBX0RM X0RMT1BFTgotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkKExVQV9XSU4pCi0rI2RlZmluZSBMVUFf RExfRExMCi0rI2VuZGlmCi0rCi0rCi0rLyoKLStAQCBMVUFJX0VYVFJBU1BBQ0UgYWxsb3dzIHlv dSB0byBhZGQgdXNlci1zcGVjaWZpYyBkYXRhIGluIGEgbHVhX1N0YXRlCi0rQCogKHRoZSBkYXRh IGdvZXMganVzdCAqYmVmb3JlKiB0aGUgbHVhX1N0YXRlIHBvaW50ZXIpLgotKyoqIENIQU5HRSAo ZGVmaW5lKSB0aGlzIGlmIHlvdSByZWFsbHkgbmVlZCB0aGF0LiBUaGlzIHZhbHVlIG11c3QgYmUK LSsqKiBhIG11bHRpcGxlIG9mIHRoZSBtYXhpbXVtIGFsaWdubWVudCByZXF1aXJlZCBmb3IgeW91 ciBtYWNoaW5lLgotKyovCi0rI2RlZmluZSBMVUFJX0VYVFJBU1BBQ0UJCTAKLSsKLSsKLSsvKgot K0BAIGx1YWlfdXNlcnN0YXRlKiBhbGxvdyB1c2VyLXNwZWNpZmljIGFjdGlvbnMgb24gdGhyZWFk cy4KLSsqKiBDSEFOR0UgdGhlbSBpZiB5b3UgZGVmaW5lZCBMVUFJX0VYVFJBU1BBQ0UgYW5kIG5l ZWQgdG8gZG8gc29tZXRoaW5nCi0rKiogZXh0cmEgd2hlbiBhIHRocmVhZCBpcyBjcmVhdGVkL2Rl bGV0ZWQvcmVzdW1lZC95aWVsZGVkLgotKyovCi0rI2RlZmluZSBsdWFpX3VzZXJzdGF0ZW9wZW4o TCkJCSgodm9pZClMKQotKyNkZWZpbmUgbHVhaV91c2Vyc3RhdGVjbG9zZShMKQkJKCh2b2lkKUwp Ci0rI2RlZmluZSBsdWFpX3VzZXJzdGF0ZXRocmVhZChMLEwxKQkoKHZvaWQpTCkKLSsjZGVmaW5l IGx1YWlfdXNlcnN0YXRlZnJlZShMKQkJKCh2b2lkKUwpCi0rI2RlZmluZSBsdWFpX3VzZXJzdGF0 ZXJlc3VtZShMLG4pCSgodm9pZClMKQotKyNkZWZpbmUgbHVhaV91c2Vyc3RhdGV5aWVsZChMLG4p CSgodm9pZClMKQotKwotKwotKy8qCi0rQEAgTFVBX0lOVEZSTUxFTiBpcyB0aGUgbGVuZ3RoIG1v ZGlmaWVyIGZvciBpbnRlZ2VyIGNvbnZlcnNpb25zCi0rQCogaW4gJ3N0cmluZy5mb3JtYXQnLgot K0BAIExVQV9JTlRGUk1fVCBpcyB0aGUgaW50ZWdlciB0eXBlIGNvcnJlc3BvZGluZyB0byB0aGUg cHJldmlvdXMgbGVuZ3RoCi0rQCogbW9kaWZpZXIuCi0rKiogQ0hBTkdFIHRoZW0gaWYgeW91ciBz eXN0ZW0gc3VwcG9ydHMgbG9uZyBsb25nIG9yIGRvZXMgbm90IHN1cHBvcnQgbG9uZy4KLSsqLwot KwotKyNpZiBkZWZpbmVkKExVQV9VU0VMT05HTE9ORykKLSsKLSsjZGVmaW5lIExVQV9JTlRGUk1M RU4JCSJsbCIKLSsjZGVmaW5lIExVQV9JTlRGUk1fVAkJbG9uZyBsb25nCi0rCi0rI2Vsc2UKLSsK LSsjZGVmaW5lIExVQV9JTlRGUk1MRU4JCSJsIgotKyNkZWZpbmUgTFVBX0lOVEZSTV9UCQlsb25n Ci0rCi0rI2VuZGlmCi0rCi0rCi0rCi0rLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwotKwotKy8qCi0rKiogTG9j YWwgY29uZmlndXJhdGlvbi4gWW91IGNhbiB1c2UgdGhpcyBzcGFjZSB0byBhZGQgeW91ciByZWRl ZmluaXRpb25zCi0rKiogd2l0aG91dCBtb2RpZnlpbmcgdGhlIG1haW4gcGFydCBvZiB0aGUgZmls ZS4KLSsqLwotKwotKwotKwotKyNlbmRpZgotKwpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy9sdWEtNS4x LjQvbHVhLTUuMS4zLWF1dG9nZW4uc2guZGlmZiBiL3BhdGNoZXMvbHVhLTUuMS40L2x1YS01LjEu My1hdXRvZ2VuLnNoLmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0Y2ZiOGEu LjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy9sdWEtNS4xLjQvbHVhLTUuMS4zLWF1dG9nZW4uc2guZGlm ZgorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLVN1YmplY3Q6IEFkZCBsdWEgc3VwcG9y dCB0byBwdHhkaXN0IDEuOTk6IGFkZCBhdXRvZ2VuLnNoCi1Gcm9tOiBFcndpbiBSb2wgPGVyd2lu QGVyd2lucm9sLmNvbT4KLQotVGhpcyBwYXRjaCBhZGQgbHVhIHN1cHBvcnQgdG8gcHR4ZGlzdCAx Ljk5LiBJdCBoYXMgYSBtZW51IGVudHJ5IHVuZGVyCi1zY3JpcHRpbmcgbGFuZ3VhZ2VzLiBBbmQg YSBwYXRjaCB0aGF0IG1ha2VzIGl0IHBvc3NpYmxlIHRvIHVzZSBhdXRvY29uZgotdG8gYnVpbGQu Ci0KLVRoaXMgcGFydCBvZiB0aGUgcGF0Y2ggYWRkcyBhbiBhdXRvZ2VuLnNoIHNjcmlwdC4KLQot U2lnbmVkLW9mZi1ieTogRXJ3aW4gUm9sIDxlcndpbkBlcndpbnJvbC5jb20+Ci1TaWduZWQtb2Zm LWJ5OiBSb2JlcnQgU2Nod2ViZWwgPHIuc2Nod2ViZWxAcGVuZ3V0cm9uaXguZGU+Ci0KLS0tLQot IGF1dG9nZW4uc2ggfCAgICA1ICsrKysrCi0gMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KQotCi1JbmRleDogbHVhLTUuMS4zL2F1dG9nZW4uc2gKLT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251 bGwKLSsrKyBsdWEtNS4xLjMvYXV0b2dlbi5zaAotQEAgLTAsMCArMSw1IEBACi0rIyEvYmluL3No Ci0rCi0rYXV0b3JlY29uZiAtZnZpCi0rCi0rZWNobyAiTm93IHJ1biAuL2NvbmZpZ3VyZSIKZGlm ZiAtLWdpdCBhL3BhdGNoZXMvbHVhLTUuMS40L2x1YS01LjEuMy1hdXRvbWFraXplLmRpZmYgYi9w YXRjaGVzL2x1YS01LjEuNC9sdWEtNS4xLjMtYXV0b21ha2l6ZS5kaWZmCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA3ZmEzODE0Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvbHVhLTUuMS40 L2x1YS01LjEuMy1hdXRvbWFraXplLmRpZmYKKysrIC9kZXYvbnVsbApAQCAtMSwxMTEgKzAsMCBA QAotU3ViamVjdDogQWRkIGx1YSBzdXBwb3J0IHRvIHB0eGRpc3QgMS45OTogYWRkIGF1dG9tYWtl IGZpbGVzCi1Gcm9tOiBFcndpbiBSb2wgPGVyd2luQGVyd2lucm9sLmNvbT4KLQotVGhpcyBwYXRj aCBhZGQgbHVhIHN1cHBvcnQgdG8gcHR4ZGlzdCAxLjk5LiBJdCBoYXMgYSBtZW51IGVudHJ5IHVu ZGVyCi1zY3JpcHRpbmcgbGFuZ3VhZ2VzLiBBbmQgYSBwYXRjaCB0aGF0IG1ha2VzIGl0IHBvc3Np YmxlIHRvIHVzZSBhdXRvY29uZgotdG8gYnVpbGQuCi0KLVRoaXMgcGFydCBvZiB0aGUgcGF0Y2gg YWRkcyB0aGUgYXV0b21ha2UgZmlsZXMuCi0KLVNpZ25lZC1vZmYtYnk6IEVyd2luIFJvbCA8ZXJ3 aW5AZXJ3aW5yb2wuY29tPgotU2lnbmVkLW9mZi1ieTogUm9iZXJ0IFNjaHdlYmVsIDxyLnNjaHdl YmVsQHBlbmd1dHJvbml4LmRlPgotCi0tLS0KLSBNYWtlZmlsZS5hbSAgICAgIHwgICAgMyArKysK LSBkb2MvTWFrZWZpbGUuYW0gIHwgICAgNSArKysrKwotIGV0Yy9NYWtlZmlsZS5hbSAgfCAgICA4 ICsrKysrKysrCi0gc3JjL01ha2VmaWxlLmFtICB8ICAgNDUgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCi0gdGVzdC9NYWtlZmlsZS5hbSB8ICAgIDUgKysrKysK LSA1IGZpbGVzIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKykKLQotSW5kZXg6IGx1YS01LjEuMy9k b2MvTWFrZWZpbGUuYW0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwKLSsrKyBsdWEtNS4xLjMv ZG9jL01ha2VmaWxlLmFtCi1AQCAtMCwwICsxLDUgQEAKLSttYW4xX01BTlMgPSBsdWEuMSBsdWFj LjEKLSsKLStFWFRSQV9ESVNUID0gXAotKwljb250ZW50cy5odG1sICBsdWEuMSAgIGx1YWMuaHRt bCAgbHVhLmh0bWwgICAgIG1hbnVhbC5odG1sIFwKLSsJbG9nby5naWYgICAgICAgbHVhYy4xICBs dWEuY3NzICAgIHJlYWRtZS5odG1sCi1JbmRleDogbHVhLTUuMS4zL2V0Yy9NYWtlZmlsZS5hbQot PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAotKysrIGx1YS01LjEuMy9ldGMvTWFrZWZpbGUuYW0K LUBAIC0wLDAgKzEsOCBAQAotK2luY2x1ZGVfSEVBREVSUyA9IGx1YS5ocHAKLSsKLStwa2djb25m aWdkaXIgPSAkKGxpYmRpcikvcGtnY29uZmlnCi0rcGtnY29uZmlnX0RBVEEgPSBsdWEucGMKLSsK LStFWFRSQV9ESVNUID0gXAotKwlhbGwuYyAgICAgIGx1YS5pY28gICAgbHVhLnBjLmluICBub3Bh cnNlci5jICBzdHJpY3QubHVhIFwKLSsJbHVhdnMuYmF0ICBtaW4uYyAgICAgIFJFQURNRQotSW5k ZXg6IGx1YS01LjEuMy9NYWtlZmlsZS5hbQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAotKysr IGx1YS01LjEuMy9NYWtlZmlsZS5hbQotQEAgLTAsMCArMSwzIEBACi0rU1VCRElSUyA9IHNyYyBk b2MgZXRjIHRlc3QKLSsKLStFWFRSQV9ESVNUID0gYXV0b2dlbi5zaCBDT1BZUklHSFQgSElTVE9S WSBJTlNUQUxMIFJFQURNRQotSW5kZXg6IGx1YS01LjEuMy9zcmMvTWFrZWZpbGUuYW0KLT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSAvZGV2L251bGwKLSsrKyBsdWEtNS4xLjMvc3JjL01ha2VmaWxlLmFtCi1AQCAt MCwwICsxLDQ1IEBACi0rQU1fQ0ZMQUdTID0gLVdhbGwKLSsKLStpbmNsdWRlX0hFQURFUlMgPSBs dWEuaCBsdWFsaWIuaCBsYXV4bGliLmgKLStub2Rpc3RfaW5jbHVkZV9IRUFERVJTID0gbHVhY29u Zi5oCi0rCi0rbGliX0xUTElCUkFSSUVTID0gbGlibHVhLmxhCi0rbGlibHVhX2xhX0xERkxBR1Mg PSAtcmVsZWFzZSA1LjEuMwotK2xpYmx1YV9sYV9TT1VSQ0VTID0gXAotKwlsYXBpLmMgbGNvZGUu YyBsZGVidWcuYyBsZG8uYyBsZHVtcC5jIGxmdW5jLmMgbGdjLmMgbGxleC5jIGxtZW0uYyBcCi0r CWxvYmplY3QuYyBsb3Bjb2Rlcy5jIGxwYXJzZXIuYyBsc3RhdGUuYyBsc3RyaW5nLmMgbHRhYmxl LmMgbHRtLmMgIFwKLSsJbHVuZHVtcC5jIGx2bS5jIGx6aW8uYyBcCi0rCWxhdXhsaWIuYyBsYmFz ZWxpYi5jIGxkYmxpYi5jIGxpb2xpYi5jIGxtYXRobGliLmMgbG9zbGliLmMgbHRhYmxpYi5jIFwK LSsJbHN0cmxpYi5jIGxvYWRsaWIuYyBsaW5pdC5jIFwKLSsJbGFwaS5oIGxkZWJ1Zy5oIGxnYy5o IGxtZW0uaCBscGFyc2VyLmggbHRhYmxlLmggbHppby5oIGxkby5oIGxsZXguaCBcCi0rCWxvYmpl Y3QuaCBsc3RhdGUuaCBsdG0uaCBsdW5kdW1wLmggbGNvZGUuaCBsZnVuYy5oIGxsaW1pdHMuaCBs b3Bjb2Rlcy5oIFwKLSsJbHN0cmluZy5oIGx2bS5oCi0rCi0rYmluX1BST0dSQU1TID0gbHVhIGx1 YWMKLSsKLStsdWFfU09VUkNFUyA9IGx1YS5jCi0rbHVhX0xEQUREID0gbGlibHVhLmxhIEBMVUFf TElCU0AKLStsdWFfREVQRU5ERU5DSUVTID0gbGlibHVhLmxhCi0rCi0rbHVhY19TT1VSQ0VTID0g bHVhYy5jIHByaW50LmMKLStsdWFjX0xEQUREID0gbGlibHVhLmxhIEBMVUFfTElCU0AKLStsdWFj X0RFUEVOREVOQ0lFUyA9IGxpYmx1YS5sYQotKwotKyMgbHVhYyBtdXN0IGJlIGxpbmtlZCBzdGF0 aWNhbGx5IGJlY2F1c2UgaXQgdXNlcyBmdW5jdGlvbnMgdGhhdAotKyMgZG9uJ3QgZ2V0IGV4cG9y dGVkIHRvIHRoZSBzaGFyZWQgb2JqZWN0Ci0rbHVhY19MREZMQUdTID0gLXN0YXRpYwotKwotK0VY VFJBX0RJU1QgPSBsdWFjb25mLmgudGVtcGxhdGUuaW4KLStCVUlMVF9TT1VSQ0VTID0gbHVhY29u Zi5oCi0rQ0xFQU5GSUxFUyA9IGx1YWNvbmYuaAotKwotK3JlYWRsaW5lX2RlZnMgPSBAUkVBRExJ TkVfREVGU0AKLSsKLStlZGl0ID0gCXNlZCBcCi0rCSAgLWUgJ3MsJWx1YV9kYXRhZGlyJSwkKGRh dGFkaXIpLGcnIFwKLSsJICAtZSAncywlbHVhX2xpYmRpciUsJChsaWJkaXIpLGcnCi0rCi0rbHVh Y29uZi5oIDogbHVhY29uZi5oLnRlbXBsYXRlCi0rCXJtIC1mIGx1YWNvbmYuaCBsdWFjb25mLmgu dG1wCi0rCSQoZWRpdCkgbHVhY29uZi5oLnRlbXBsYXRlID4gbHVhY29uZi5oLnRtcAotKwltdiBs dWFjb25mLmgudG1wIGx1YWNvbmYuaAotSW5kZXg6IGx1YS01LjEuMy90ZXN0L01ha2VmaWxlLmFt Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCi0rKysgbHVhLTUuMS4zL3Rlc3QvTWFrZWZpbGUu YW0KLUBAIC0wLDAgKzEsNSBAQAotK0VYVFJBX0RJU1QgPSBcCi0rCWJpc2VjdC5sdWEgIGVudi5s dWEgICAgICAgICBmaWIubHVhICAgICAgbGlmZS5sdWEgICAgICAgICAgcHJpbnRmLmx1YSBcCi0r CXNpZXZlLmx1YSAgIHRyYWNlLWNhbGxzLmx1YSBjZi5sdWEgICAgICAgZmFjdG9yaWFsLmx1YSAg ICAgZ2xvYmFscy5sdWEgXAotKwlsdWFjLmx1YSAgICBSRUFETUUgICAgICAgICAgc29ydC5sdWEg ICAgIHRyYWNlLWdsb2JhbHMubHVhIGVjaG8ubHVhIFwKLSsJZmliZm9yLmx1YSAgaGVsbG8ubHVh ICAgICAgIHJlYWRvbmx5Lmx1YSB0YWJsZS5sdWEgICAgICAgICB4ZC5sdWEKZGlmZiAtLWdpdCBh L3BhdGNoZXMvbHVhLTUuMS40L2x1YS01LjEuMy1yZW1vdmUtTWFrZWZpbGUuZGlmZiBiL3BhdGNo ZXMvbHVhLTUuMS40L2x1YS01LjEuMy1yZW1vdmUtTWFrZWZpbGUuZGlmZgpkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMTcyZTMxZS4uMDAwMDAwMAotLS0gYS9wYXRjaGVzL2x1YS01LjEu NC9sdWEtNS4xLjMtcmVtb3ZlLU1ha2VmaWxlLmRpZmYKKysrIC9kZXYvbnVsbApAQCAtMSwxNDkg KzAsMCBAQAotU3ViamVjdDogQWRkIGx1YSBzdXBwb3J0IHRvIHB0eGRpc3QgMS45OTogcmVtb3Zl IG9sZCBNYWtlZmlsZQotRnJvbTogRXJ3aW4gUm9sIDxlcndpbkBlcndpbnJvbC5jb20+Ci0KLVRo aXMgcGF0Y2ggYWRkIGx1YSBzdXBwb3J0IHRvIHB0eGRpc3QgMS45OS4gSXQgaGFzIGEgbWVudSBl bnRyeSB1bmRlcgotc2NyaXB0aW5nIGxhbmd1YWdlcy4gQW5kIGEgcGF0Y2ggdGhhdCBtYWtlcyBp dCBwb3NzaWJsZSB0byB1c2UgYXV0b2NvbmYKLXRvIGJ1aWxkLgotCi1UaGlzIHBhcnQgb2YgdGhl IHBhdGNoIHJlbW92ZXMgdGhlIG9sZCBNYWtlZmlsZS4KLQotU2lnbmVkLW9mZi1ieTogRXJ3aW4g Um9sIDxlcndpbkBlcndpbnJvbC5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBSb2JlcnQgU2Nod2ViZWwg PHIuc2Nod2ViZWxAcGVuZ3V0cm9uaXguZGU+Ci0KLS0tLQotIE1ha2VmaWxlIHwgIDEyOCAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSAxIGZpbGUgY2hhbmdlZCwgMTI4IGRlbGV0aW9ucygtKQotCi1JbmRleDogbHVhLTUuMS40 L01ha2VmaWxlCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gbHVhLTUuMS40Lm9yaWcvTWFrZWZpbGUKLSsrKyAv ZGV2L251bGwKLUBAIC0xLDEyOCArMCwwIEBACi0tIyBtYWtlZmlsZSBmb3IgaW5zdGFsbGluZyBM dWEKLS0jIHNlZSBJTlNUQUxMIGZvciBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zCi0tIyBzZWUg c3JjL01ha2VmaWxlIGFuZCBzcmMvbHVhY29uZi5oIGZvciBmdXJ0aGVyIGN1c3RvbWl6YXRpb24K LS0KLS0jID09IENIQU5HRSBUSEUgU0VUVElOR1MgQkVMT1cgVE8gU1VJVCBZT1VSIEVOVklST05N RU5UID09PT09PT09PT09PT09PT09PT09PT09Ci0tCi0tIyBZb3VyIHBsYXRmb3JtLiBTZWUgUExB VFMgZm9yIHBvc3NpYmxlIHZhbHVlcy4KLS1QTEFUPSBub25lCi0tCi0tIyBXaGVyZSB0byBpbnN0 YWxsLiBUaGUgaW5zdGFsbGF0aW9uIHN0YXJ0cyBpbiB0aGUgc3JjIGFuZCBkb2MgZGlyZWN0b3Jp ZXMsCi0tIyBzbyB0YWtlIGNhcmUgaWYgSU5TVEFMTF9UT1AgaXMgbm90IGFuIGFic29sdXRlIHBh dGguCi0tSU5TVEFMTF9UT1A9IC91c3IvbG9jYWwKLS1JTlNUQUxMX0JJTj0gJChJTlNUQUxMX1RP UCkvYmluCi0tSU5TVEFMTF9JTkM9ICQoSU5TVEFMTF9UT1ApL2luY2x1ZGUKLS1JTlNUQUxMX0xJ Qj0gJChJTlNUQUxMX1RPUCkvbGliCi0tSU5TVEFMTF9NQU49ICQoSU5TVEFMTF9UT1ApL21hbi9t YW4xCi0tIwotLSMgWW91IHByb2JhYmx5IHdhbnQgdG8gbWFrZSBJTlNUQUxMX0xNT0QgYW5kIElO U1RBTExfQ01PRCBjb25zaXN0ZW50IHdpdGgKLS0jIExVQV9ST09ULCBMVUFfTERJUiwgYW5kIExV QV9DRElSIGluIGx1YWNvbmYuaCAoYW5kIGFsc28gd2l0aCBldGMvbHVhLnBjKS4KLS1JTlNUQUxM X0xNT0Q9ICQoSU5TVEFMTF9UT1ApL3NoYXJlL2x1YS8kVgotLUlOU1RBTExfQ01PRD0gJChJTlNU QUxMX1RPUCkvbGliL2x1YS8kVgotLQotLSMgSG93IHRvIGluc3RhbGwuIElmIHlvdXIgaW5zdGFs bCBwcm9ncmFtIGRvZXMgbm90IHN1cHBvcnQgIi1wIiwgdGhlbiB5b3UKLS0jIG1heSBoYXZlIHRv IHJ1biByYW5saWIgb24gdGhlIGluc3RhbGxlZCBsaWJsdWEuYSAoZG8gIm1ha2UgcmFubGliIiku Ci0tSU5TVEFMTD0gaW5zdGFsbCAtcAotLUlOU1RBTExfRVhFQz0gJChJTlNUQUxMKSAtbSAwNzU1 Ci0tSU5TVEFMTF9EQVRBPSAkKElOU1RBTEwpIC1tIDA2NDQKLS0jCi0tIyBJZiB5b3UgZG9uJ3Qg aGF2ZSBpbnN0YWxsIHlvdSBjYW4gdXNlIGNwIGluc3RlYWQuCi0tIyBJTlNUQUxMPSBjcCAtcAot LSMgSU5TVEFMTF9FWEVDPSAkKElOU1RBTEwpCi0tIyBJTlNUQUxMX0RBVEE9ICQoSU5TVEFMTCkK LS0KLS0jIFV0aWxpdGllcy4KLS1NS0RJUj0gbWtkaXIgLXAKLS1SQU5MSUI9IHJhbmxpYgotLQot LSMgPT0gRU5EIE9GIFVTRVIgU0VUVElOR1MuIE5PIE5FRUQgVE8gQ0hBTkdFIEFOWVRISU5HIEJF TE9XIFRISVMgTElORSA9PT09PT09PT0KLS0KLS0jIENvbnZlbmllbmNlIHBsYXRmb3JtcyB0YXJn ZXRzLgotLVBMQVRTPSBhaXggYW5zaSBic2QgZnJlZWJzZCBnZW5lcmljIGxpbnV4IG1hY29zeCBt aW5ndyBwb3NpeCBzb2xhcmlzCi0tCi0tIyBXaGF0IHRvIGluc3RhbGwuCi0tVE9fQklOPSBsdWEg bHVhYwotLVRPX0lOQz0gbHVhLmggbHVhY29uZi5oIGx1YWxpYi5oIGxhdXhsaWIuaCAuLi9ldGMv bHVhLmhwcAotLVRPX0xJQj0gbGlibHVhLmEKLS1UT19NQU49IGx1YS4xIGx1YWMuMQotLQotLSMg THVhIHZlcnNpb24gYW5kIHJlbGVhc2UuCi0tVj0gNS4xCi0tUj0gNS4xLjQKLS0KLS1hbGw6CSQo UExBVCkKLS0KLS0kKFBMQVRTKSBjbGVhbjoKLS0JY2Qgc3JjICYmICQoTUFLRSkgJEAKLS0KLS10 ZXN0OglkdW1teQotLQlzcmMvbHVhIHRlc3QvaGVsbG8ubHVhCi0tCi0taW5zdGFsbDogZHVtbXkK LS0JY2Qgc3JjICYmICQoTUtESVIpICQoSU5TVEFMTF9CSU4pICQoSU5TVEFMTF9JTkMpICQoSU5T VEFMTF9MSUIpICQoSU5TVEFMTF9NQU4pICQoSU5TVEFMTF9MTU9EKSAkKElOU1RBTExfQ01PRCkK LS0JY2Qgc3JjICYmICQoSU5TVEFMTF9FWEVDKSAkKFRPX0JJTikgJChJTlNUQUxMX0JJTikKLS0J Y2Qgc3JjICYmICQoSU5TVEFMTF9EQVRBKSAkKFRPX0lOQykgJChJTlNUQUxMX0lOQykKLS0JY2Qg c3JjICYmICQoSU5TVEFMTF9EQVRBKSAkKFRPX0xJQikgJChJTlNUQUxMX0xJQikKLS0JY2QgZG9j ICYmICQoSU5TVEFMTF9EQVRBKSAkKFRPX01BTikgJChJTlNUQUxMX01BTikKLS0KLS1yYW5saWI6 Ci0tCWNkIHNyYyAmJiBjZCAkKElOU1RBTExfTElCKSAmJiAkKFJBTkxJQikgJChUT19MSUIpCi0t Ci0tbG9jYWw6Ci0tCSQoTUFLRSkgaW5zdGFsbCBJTlNUQUxMX1RPUD0uLgotLQotLW5vbmU6Ci0t CUBlY2hvICJQbGVhc2UgZG8iCi0tCUBlY2hvICIgICBtYWtlIFBMQVRGT1JNIgotLQlAZWNobyAi d2hlcmUgUExBVEZPUk0gaXMgb25lIG9mIHRoZXNlOiIKLS0JQGVjaG8gIiAgICQoUExBVFMpIgot LQlAZWNobyAiU2VlIElOU1RBTEwgZm9yIGNvbXBsZXRlIGluc3RydWN0aW9ucy4iCi0tCi0tIyBt YWtlIG1heSBnZXQgY29uZnVzZWQgd2l0aCB0ZXN0LyBhbmQgSU5TVEFMTCBpbiBhIGNhc2UtaW5z ZW5zaXRpdmUgT1MKLS1kdW1teToKLS0KLS0jIGVjaG8gY29uZmlnIHBhcmFtZXRlcnMKLS1lY2hv OgotLQlAZWNobyAiIgotLQlAZWNobyAiVGhlc2UgYXJlIHRoZSBwYXJhbWV0ZXJzIGN1cnJlbnRs eSBzZXQgaW4gc3JjL01ha2VmaWxlIHRvIGJ1aWxkIEx1YSAkUjoiCi0tCUBlY2hvICIiCi0tCUBj ZCBzcmMgJiYgJChNQUtFKSAtcyBlY2hvCi0tCUBlY2hvICIiCi0tCUBlY2hvICJUaGVzZSBhcmUg dGhlIHBhcmFtZXRlcnMgY3VycmVudGx5IHNldCBpbiBNYWtlZmlsZSB0byBpbnN0YWxsIEx1YSAk UjoiCi0tCUBlY2hvICIiCi0tCUBlY2hvICJQTEFUID0gJChQTEFUKSIKLS0JQGVjaG8gIklOU1RB TExfVE9QID0gJChJTlNUQUxMX1RPUCkiCi0tCUBlY2hvICJJTlNUQUxMX0JJTiA9ICQoSU5TVEFM TF9CSU4pIgotLQlAZWNobyAiSU5TVEFMTF9JTkMgPSAkKElOU1RBTExfSU5DKSIKLS0JQGVjaG8g IklOU1RBTExfTElCID0gJChJTlNUQUxMX0xJQikiCi0tCUBlY2hvICJJTlNUQUxMX01BTiA9ICQo SU5TVEFMTF9NQU4pIgotLQlAZWNobyAiSU5TVEFMTF9MTU9EID0gJChJTlNUQUxMX0xNT0QpIgot LQlAZWNobyAiSU5TVEFMTF9DTU9EID0gJChJTlNUQUxMX0NNT0QpIgotLQlAZWNobyAiSU5TVEFM TF9FWEVDID0gJChJTlNUQUxMX0VYRUMpIgotLQlAZWNobyAiSU5TVEFMTF9EQVRBID0gJChJTlNU QUxMX0RBVEEpIgotLQlAZWNobyAiIgotLQlAZWNobyAiU2VlIGFsc28gc3JjL2x1YWNvbmYuaCAu IgotLQlAZWNobyAiIgotLQotLSMgZWNobyBwcml2YXRlIGNvbmZpZyBwYXJhbWV0ZXJzCi0tcGVj aG86Ci0tCUBlY2hvICJWID0gJChWKSIKLS0JQGVjaG8gIlIgPSAkKFIpIgotLQlAZWNobyAiVE9f QklOID0gJChUT19CSU4pIgotLQlAZWNobyAiVE9fSU5DID0gJChUT19JTkMpIgotLQlAZWNobyAi VE9fTElCID0gJChUT19MSUIpIgotLQlAZWNobyAiVE9fTUFOID0gJChUT19NQU4pIgotLQotLSMg ZWNobyBjb25maWcgcGFyYW1ldGVycyBhcyBMdWEgY29kZQotLSMgdW5jb21tZW50IHRoZSBsYXN0 IHNlZCBleHByZXNzaW9uIGlmIHlvdSB3YW50IG5pbCBpbnN0ZWFkIG9mIGVtcHR5IHN0cmluZ3MK LS1sZWNobzoKLS0JQGVjaG8gIi0tIGluc3RhbGxhdGlvbiBwYXJhbWV0ZXJzIGZvciBMdWEgJFIi Ci0tCUBlY2hvICJWRVJTSU9OID0gJyRWJyIKLS0JQGVjaG8gIlJFTEVBU0UgPSAnJFInIgotLQlA JChNQUtFKSBlY2hvIHwgZ3JlcCA9IHwgc2VkIC1lICdzLz0gLz0gIi8nIC1lICdzLyQkLyIvJyAj LWUgJ3MvIiIvbmlsLycKLS0JQGVjaG8gIi0tIEVPRiIKLS0KLS0jIGxpc3QgdGFyZ2V0cyB0aGF0 IGRvIG5vdCBjcmVhdGUgZmlsZXMgKGJ1dCBub3QgYWxsIG1ha2VzIHVuZGVyc3RhbmQgLlBIT05Z KQotLS5QSE9OWTogYWxsICQoUExBVFMpIGNsZWFuIHRlc3QgaW5zdGFsbCBsb2NhbCBub25lIGR1 bW15IGVjaG8gcGVjaG8gbGVjaG8KLS0KLS0jIChlbmQgb2YgTWFrZWZpbGUpCmRpZmYgLS1naXQg YS9wYXRjaGVzL2x1YS01LjEuNC9yZW1vdmUtTWFrZWZpbGUuZGlmZiBiL3BhdGNoZXMvbHVhLTUu MS40L3JlbW92ZS1NYWtlZmlsZS5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjE3MmUzMWUKLS0tIC9kZXYvbnVsbAorKysgYi9wYXRjaGVzL2x1YS01LjEuNC9yZW1vdmUt TWFrZWZpbGUuZGlmZgpAQCAtMCwwICsxLDE0OSBAQAorU3ViamVjdDogQWRkIGx1YSBzdXBwb3J0 IHRvIHB0eGRpc3QgMS45OTogcmVtb3ZlIG9sZCBNYWtlZmlsZQorRnJvbTogRXJ3aW4gUm9sIDxl cndpbkBlcndpbnJvbC5jb20+CisKK1RoaXMgcGF0Y2ggYWRkIGx1YSBzdXBwb3J0IHRvIHB0eGRp c3QgMS45OS4gSXQgaGFzIGEgbWVudSBlbnRyeSB1bmRlcgorc2NyaXB0aW5nIGxhbmd1YWdlcy4g QW5kIGEgcGF0Y2ggdGhhdCBtYWtlcyBpdCBwb3NzaWJsZSB0byB1c2UgYXV0b2NvbmYKK3RvIGJ1 aWxkLgorCitUaGlzIHBhcnQgb2YgdGhlIHBhdGNoIHJlbW92ZXMgdGhlIG9sZCBNYWtlZmlsZS4K KworU2lnbmVkLW9mZi1ieTogRXJ3aW4gUm9sIDxlcndpbkBlcndpbnJvbC5jb20+CitTaWduZWQt b2ZmLWJ5OiBSb2JlcnQgU2Nod2ViZWwgPHIuc2Nod2ViZWxAcGVuZ3V0cm9uaXguZGU+CisKKy0t LQorIE1ha2VmaWxlIHwgIDEyOCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMTI4IGRlbGV0aW9u cygtKQorCitJbmRleDogbHVhLTUuMS40L01ha2VmaWxlCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbHVhLTUu MS40Lm9yaWcvTWFrZWZpbGUKKysrKyAvZGV2L251bGwKK0BAIC0xLDEyOCArMCwwIEBACistIyBt YWtlZmlsZSBmb3IgaW5zdGFsbGluZyBMdWEKKy0jIHNlZSBJTlNUQUxMIGZvciBpbnN0YWxsYXRp b24gaW5zdHJ1Y3Rpb25zCistIyBzZWUgc3JjL01ha2VmaWxlIGFuZCBzcmMvbHVhY29uZi5oIGZv ciBmdXJ0aGVyIGN1c3RvbWl6YXRpb24KKy0KKy0jID09IENIQU5HRSBUSEUgU0VUVElOR1MgQkVM T1cgVE8gU1VJVCBZT1VSIEVOVklST05NRU5UID09PT09PT09PT09PT09PT09PT09PT09CistCist IyBZb3VyIHBsYXRmb3JtLiBTZWUgUExBVFMgZm9yIHBvc3NpYmxlIHZhbHVlcy4KKy1QTEFUPSBu b25lCistCistIyBXaGVyZSB0byBpbnN0YWxsLiBUaGUgaW5zdGFsbGF0aW9uIHN0YXJ0cyBpbiB0 aGUgc3JjIGFuZCBkb2MgZGlyZWN0b3JpZXMsCistIyBzbyB0YWtlIGNhcmUgaWYgSU5TVEFMTF9U T1AgaXMgbm90IGFuIGFic29sdXRlIHBhdGguCistSU5TVEFMTF9UT1A9IC91c3IvbG9jYWwKKy1J TlNUQUxMX0JJTj0gJChJTlNUQUxMX1RPUCkvYmluCistSU5TVEFMTF9JTkM9ICQoSU5TVEFMTF9U T1ApL2luY2x1ZGUKKy1JTlNUQUxMX0xJQj0gJChJTlNUQUxMX1RPUCkvbGliCistSU5TVEFMTF9N QU49ICQoSU5TVEFMTF9UT1ApL21hbi9tYW4xCistIworLSMgWW91IHByb2JhYmx5IHdhbnQgdG8g bWFrZSBJTlNUQUxMX0xNT0QgYW5kIElOU1RBTExfQ01PRCBjb25zaXN0ZW50IHdpdGgKKy0jIExV QV9ST09ULCBMVUFfTERJUiwgYW5kIExVQV9DRElSIGluIGx1YWNvbmYuaCAoYW5kIGFsc28gd2l0 aCBldGMvbHVhLnBjKS4KKy1JTlNUQUxMX0xNT0Q9ICQoSU5TVEFMTF9UT1ApL3NoYXJlL2x1YS8k VgorLUlOU1RBTExfQ01PRD0gJChJTlNUQUxMX1RPUCkvbGliL2x1YS8kVgorLQorLSMgSG93IHRv IGluc3RhbGwuIElmIHlvdXIgaW5zdGFsbCBwcm9ncmFtIGRvZXMgbm90IHN1cHBvcnQgIi1wIiwg dGhlbiB5b3UKKy0jIG1heSBoYXZlIHRvIHJ1biByYW5saWIgb24gdGhlIGluc3RhbGxlZCBsaWJs dWEuYSAoZG8gIm1ha2UgcmFubGliIikuCistSU5TVEFMTD0gaW5zdGFsbCAtcAorLUlOU1RBTExf RVhFQz0gJChJTlNUQUxMKSAtbSAwNzU1CistSU5TVEFMTF9EQVRBPSAkKElOU1RBTEwpIC1tIDA2 NDQKKy0jCistIyBJZiB5b3UgZG9uJ3QgaGF2ZSBpbnN0YWxsIHlvdSBjYW4gdXNlIGNwIGluc3Rl YWQuCistIyBJTlNUQUxMPSBjcCAtcAorLSMgSU5TVEFMTF9FWEVDPSAkKElOU1RBTEwpCistIyBJ TlNUQUxMX0RBVEE9ICQoSU5TVEFMTCkKKy0KKy0jIFV0aWxpdGllcy4KKy1NS0RJUj0gbWtkaXIg LXAKKy1SQU5MSUI9IHJhbmxpYgorLQorLSMgPT0gRU5EIE9GIFVTRVIgU0VUVElOR1MuIE5PIE5F RUQgVE8gQ0hBTkdFIEFOWVRISU5HIEJFTE9XIFRISVMgTElORSA9PT09PT09PT0KKy0KKy0jIENv bnZlbmllbmNlIHBsYXRmb3JtcyB0YXJnZXRzLgorLVBMQVRTPSBhaXggYW5zaSBic2QgZnJlZWJz ZCBnZW5lcmljIGxpbnV4IG1hY29zeCBtaW5ndyBwb3NpeCBzb2xhcmlzCistCistIyBXaGF0IHRv IGluc3RhbGwuCistVE9fQklOPSBsdWEgbHVhYworLVRPX0lOQz0gbHVhLmggbHVhY29uZi5oIGx1 YWxpYi5oIGxhdXhsaWIuaCAuLi9ldGMvbHVhLmhwcAorLVRPX0xJQj0gbGlibHVhLmEKKy1UT19N QU49IGx1YS4xIGx1YWMuMQorLQorLSMgTHVhIHZlcnNpb24gYW5kIHJlbGVhc2UuCistVj0gNS4x CistUj0gNS4xLjQKKy0KKy1hbGw6CSQoUExBVCkKKy0KKy0kKFBMQVRTKSBjbGVhbjoKKy0JY2Qg c3JjICYmICQoTUFLRSkgJEAKKy0KKy10ZXN0OglkdW1teQorLQlzcmMvbHVhIHRlc3QvaGVsbG8u bHVhCistCistaW5zdGFsbDogZHVtbXkKKy0JY2Qgc3JjICYmICQoTUtESVIpICQoSU5TVEFMTF9C SU4pICQoSU5TVEFMTF9JTkMpICQoSU5TVEFMTF9MSUIpICQoSU5TVEFMTF9NQU4pICQoSU5TVEFM TF9MTU9EKSAkKElOU1RBTExfQ01PRCkKKy0JY2Qgc3JjICYmICQoSU5TVEFMTF9FWEVDKSAkKFRP X0JJTikgJChJTlNUQUxMX0JJTikKKy0JY2Qgc3JjICYmICQoSU5TVEFMTF9EQVRBKSAkKFRPX0lO QykgJChJTlNUQUxMX0lOQykKKy0JY2Qgc3JjICYmICQoSU5TVEFMTF9EQVRBKSAkKFRPX0xJQikg JChJTlNUQUxMX0xJQikKKy0JY2QgZG9jICYmICQoSU5TVEFMTF9EQVRBKSAkKFRPX01BTikgJChJ TlNUQUxMX01BTikKKy0KKy1yYW5saWI6CistCWNkIHNyYyAmJiBjZCAkKElOU1RBTExfTElCKSAm JiAkKFJBTkxJQikgJChUT19MSUIpCistCistbG9jYWw6CistCSQoTUFLRSkgaW5zdGFsbCBJTlNU QUxMX1RPUD0uLgorLQorLW5vbmU6CistCUBlY2hvICJQbGVhc2UgZG8iCistCUBlY2hvICIgICBt YWtlIFBMQVRGT1JNIgorLQlAZWNobyAid2hlcmUgUExBVEZPUk0gaXMgb25lIG9mIHRoZXNlOiIK Ky0JQGVjaG8gIiAgICQoUExBVFMpIgorLQlAZWNobyAiU2VlIElOU1RBTEwgZm9yIGNvbXBsZXRl IGluc3RydWN0aW9ucy4iCistCistIyBtYWtlIG1heSBnZXQgY29uZnVzZWQgd2l0aCB0ZXN0LyBh bmQgSU5TVEFMTCBpbiBhIGNhc2UtaW5zZW5zaXRpdmUgT1MKKy1kdW1teToKKy0KKy0jIGVjaG8g Y29uZmlnIHBhcmFtZXRlcnMKKy1lY2hvOgorLQlAZWNobyAiIgorLQlAZWNobyAiVGhlc2UgYXJl IHRoZSBwYXJhbWV0ZXJzIGN1cnJlbnRseSBzZXQgaW4gc3JjL01ha2VmaWxlIHRvIGJ1aWxkIEx1 YSAkUjoiCistCUBlY2hvICIiCistCUBjZCBzcmMgJiYgJChNQUtFKSAtcyBlY2hvCistCUBlY2hv ICIiCistCUBlY2hvICJUaGVzZSBhcmUgdGhlIHBhcmFtZXRlcnMgY3VycmVudGx5IHNldCBpbiBN YWtlZmlsZSB0byBpbnN0YWxsIEx1YSAkUjoiCistCUBlY2hvICIiCistCUBlY2hvICJQTEFUID0g JChQTEFUKSIKKy0JQGVjaG8gIklOU1RBTExfVE9QID0gJChJTlNUQUxMX1RPUCkiCistCUBlY2hv ICJJTlNUQUxMX0JJTiA9ICQoSU5TVEFMTF9CSU4pIgorLQlAZWNobyAiSU5TVEFMTF9JTkMgPSAk KElOU1RBTExfSU5DKSIKKy0JQGVjaG8gIklOU1RBTExfTElCID0gJChJTlNUQUxMX0xJQikiCist CUBlY2hvICJJTlNUQUxMX01BTiA9ICQoSU5TVEFMTF9NQU4pIgorLQlAZWNobyAiSU5TVEFMTF9M TU9EID0gJChJTlNUQUxMX0xNT0QpIgorLQlAZWNobyAiSU5TVEFMTF9DTU9EID0gJChJTlNUQUxM X0NNT0QpIgorLQlAZWNobyAiSU5TVEFMTF9FWEVDID0gJChJTlNUQUxMX0VYRUMpIgorLQlAZWNo byAiSU5TVEFMTF9EQVRBID0gJChJTlNUQUxMX0RBVEEpIgorLQlAZWNobyAiIgorLQlAZWNobyAi U2VlIGFsc28gc3JjL2x1YWNvbmYuaCAuIgorLQlAZWNobyAiIgorLQorLSMgZWNobyBwcml2YXRl IGNvbmZpZyBwYXJhbWV0ZXJzCistcGVjaG86CistCUBlY2hvICJWID0gJChWKSIKKy0JQGVjaG8g IlIgPSAkKFIpIgorLQlAZWNobyAiVE9fQklOID0gJChUT19CSU4pIgorLQlAZWNobyAiVE9fSU5D ID0gJChUT19JTkMpIgorLQlAZWNobyAiVE9fTElCID0gJChUT19MSUIpIgorLQlAZWNobyAiVE9f TUFOID0gJChUT19NQU4pIgorLQorLSMgZWNobyBjb25maWcgcGFyYW1ldGVycyBhcyBMdWEgY29k ZQorLSMgdW5jb21tZW50IHRoZSBsYXN0IHNlZCBleHByZXNzaW9uIGlmIHlvdSB3YW50IG5pbCBp bnN0ZWFkIG9mIGVtcHR5IHN0cmluZ3MKKy1sZWNobzoKKy0JQGVjaG8gIi0tIGluc3RhbGxhdGlv biBwYXJhbWV0ZXJzIGZvciBMdWEgJFIiCistCUBlY2hvICJWRVJTSU9OID0gJyRWJyIKKy0JQGVj aG8gIlJFTEVBU0UgPSAnJFInIgorLQlAJChNQUtFKSBlY2hvIHwgZ3JlcCA9IHwgc2VkIC1lICdz Lz0gLz0gIi8nIC1lICdzLyQkLyIvJyAjLWUgJ3MvIiIvbmlsLycKKy0JQGVjaG8gIi0tIEVPRiIK Ky0KKy0jIGxpc3QgdGFyZ2V0cyB0aGF0IGRvIG5vdCBjcmVhdGUgZmlsZXMgKGJ1dCBub3QgYWxs IG1ha2VzIHVuZGVyc3RhbmQgLlBIT05ZKQorLS5QSE9OWTogYWxsICQoUExBVFMpIGNsZWFuIHRl c3QgaW5zdGFsbCBsb2NhbCBub25lIGR1bW15IGVjaG8gcGVjaG8gbGVjaG8KKy0KKy0jIChlbmQg b2YgTWFrZWZpbGUpCmRpZmYgLS1naXQgYS9wYXRjaGVzL2x1YS01LjEuNC9zZXJpZXMgYi9wYXRj aGVzL2x1YS01LjEuNC9zZXJpZXMKaW5kZXggZWNjYzYyYS4uMmM1MWUzNyAxMDA2NDQKLS0tIGEv cGF0Y2hlcy9sdWEtNS4xLjQvc2VyaWVzCisrKyBiL3BhdGNoZXMvbHVhLTUuMS40L3NlcmllcwpA QCAtMSw0ICsxLDMgQEAKLWx1YS01LjEuMy1yZW1vdmUtTWFrZWZpbGUuZGlmZgotbHVhLTUuMS4z LWF1dG9jb25maXplLmRpZmYKLWx1YS01LjEuMy1hdXRvbWFraXplLmRpZmYKLWx1YS01LjEuMy1h dXRvZ2VuLnNoLmRpZmYKK3JlbW92ZS1NYWtlZmlsZS5kaWZmCithdXRvY29uZml6ZS5kaWZmCith dXRvbWFraXplLmRpZmYKZGlmZiAtLWdpdCBhL3J1bGVzL2x1YS5tYWtlIGIvcnVsZXMvbHVhLm1h a2UKaW5kZXggMTliYjFjNS4uNTZjNzkxOCAxMDA2NDQKLS0tIGEvcnVsZXMvbHVhLm1ha2UKKysr IGIvcnVsZXMvbHVhLm1ha2UKQEAgLTYwLDcgKzYwLDcgQEAgaWZkZWYgUFRYQ09ORl9MVUFfSU5T VEFMTF9MVUFDCiAJQCQoY2FsbCBpbnN0YWxsX2NvcHksIGx1YSwgMCwgMCwgMDc1NSwgLSwgL3Vz ci9iaW4vbHVhYykKIGVuZGlmCiBpZmRlZiBQVFhDT05GX0xVQV9JTlNUQUxMX0xJQkxVQQotCUAk KGNhbGwgaW5zdGFsbF9saWIsIGx1YSwgMCwgMCwgMDY0NCwgbGlibHVhLTUuMS4zKQorCUAkKGNh bGwgaW5zdGFsbF9saWIsIGx1YSwgMCwgMCwgMDY0NCwgbGlibHVhLSQoTFVBX1ZFUlNJT04pKQog ZW5kaWYKIAlAJChjYWxsIGluc3RhbGxfZmluaXNoLCBsdWEpCiAKLS0gCjEuNy4yLjUKCgotLSAK cHR4ZGlzdCBtYWlsaW5nIGxpc3QKcHR4ZGlzdEBwZW5ndXRyb25peC5kZQo=