From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patchwork Subject: =?utf-8?q?=E2=9C=97_Fi=2ECI=2ECHECKPATCH=3A_warning_f?= =?utf-8?q?or_Introduce_memory_region_concept_=28including_device_local_me?= =?utf-8?b?bW9yeSkgKHJldjMp?= Date: Fri, 09 Aug 2019 22:51:19 -0000 Message-ID: <20190809225119.30612.53341@emeril.freedesktop.org> References: <20190809222643.23142-1-matthew.auld@intel.com> Reply-To: intel-gfx@lists.freedesktop.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190809222643.23142-1-matthew.auld@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matthew Auld Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org PT0gU2VyaWVzIERldGFpbHMgPT0KClNlcmllczogSW50cm9kdWNlIG1lbW9yeSByZWdpb24gY29u Y2VwdCAoaW5jbHVkaW5nIGRldmljZSBsb2NhbCBtZW1vcnkpIChyZXYzKQpVUkwgICA6IGh0dHBz Oi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9zZXJpZXMvNTY2ODMvClN0YXRlIDogd2Fybmlu ZwoKPT0gU3VtbWFyeSA9PQoKJCBkaW0gY2hlY2twYXRjaCBvcmlnaW4vZHJtLXRpcAo0NWNlYmY3 Y2VhNzYgZHJtL2k5MTU6IGJ1ZGR5IGFsbG9jYXRvcgotOjI5OiBXQVJOSU5HOkZJTEVfUEFUSF9D SEFOR0VTOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRlZCBmaWxlKHMpLCBkb2VzIE1BSU5UQUlORVJT IG5lZWQgdXBkYXRpbmc/CiMyOTogCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CgotOjQ1NjogQ0hFQ0s6 UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFyZW50 aGVzaXMKIzQ1NjogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9idWRkeS5jOjQyMzoK KwlpZiAoYnVkZHkgJiYgKGk5MTVfYnVkZHlfYmxvY2tfaXNfZnJlZShibG9jaykgJiYKKwkgICAg aTkxNV9idWRkeV9ibG9ja19pc19mcmVlKGJ1ZGR5KSkpCgp0b3RhbDogMCBlcnJvcnMsIDEgd2Fy bmluZ3MsIDEgY2hlY2tzLCAxMzAzIGxpbmVzIGNoZWNrZWQKZmUxMGE4MTE2NmNhIGRybS9pOTE1 OiBpbnRyb2R1Y2UgaW50ZWxfbWVtb3J5X3JlZ2lvbgotOjU5OiBXQVJOSU5HOkZJTEVfUEFUSF9D SEFOR0VTOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRlZCBmaWxlKHMpLCBkb2VzIE1BSU5UQUlORVJT IG5lZWQgdXBkYXRpbmc/CiM1OTogCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CgotOjE2NzogRVJST1I6 U1BBQ0lORzogc3BhY2VzIHJlcXVpcmVkIGFyb3VuZCB0aGF0ICc9JyAoY3R4OlZ4VykKIzE2Nzog RklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5jOjEwNDoKKwlv YmotPm1tLnJlZ2lvbj0gbWVtOwogCSAgICAgICAgICAgICAgXgoKLTo1ODA6IFdBUk5JTkc6VFlQ T19TUEVMTElORzogJ1VLTk9XTicgbWF5IGJlIG1pc3NwZWxsZWQgLSBwZXJoYXBzICdVTktOT1dO Jz8KIzU4MDogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5o OjMzOgorCUlOVEVMX01FTU9SWV9VS05PV04sIC8qIFNob3VsZCBiZSBsYXN0ICovCgotOjU4OTog Q0hFQ0s6TUFDUk9fQVJHX1BSRUNFREVOQ0U6IE1hY3JvIGFyZ3VtZW50ICdyJyBtYXkgYmUgYmV0 dGVyIGFzICcociknIHRvIGF2b2lkIHByZWNlZGVuY2UgaXNzdWVzCiM1ODk6IEZJTEU6IGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaDo0MjoKKyNkZWZpbmUgTUVNT1JZ X1RZUEVfRlJPTV9SRUdJT04ocikgKGlsb2cyKHIgPj4gSU5URUxfTUVNT1JZX1RZUEVfU0hJRlQp KQoKLTo1OTA6IENIRUNLOk1BQ1JPX0FSR19QUkVDRURFTkNFOiBNYWNybyBhcmd1bWVudCAncicg bWF5IGJlIGJldHRlciBhcyAnKHIpJyB0byBhdm9pZCBwcmVjZWRlbmNlIGlzc3VlcwojNTkwOiBG SUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmg6NDM6CisjZGVm aW5lIE1FTU9SWV9JTlNUQU5DRV9GUk9NX1JFR0lPTihyKSAoaWxvZzIociAmIDB4ZmZmZikpCgot OjYwMjogV0FSTklORzpGVU5DVElPTl9BUkdVTUVOVFM6IGZ1bmN0aW9uIGRlZmluaXRpb24gYXJn dW1lbnQgJ3N0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uIConIHNob3VsZCBhbHNvIGhhdmUgYW4g aWRlbnRpZmllciBuYW1lCiM2MDI6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21l bW9yeV9yZWdpb24uaDo1NToKKwlpbnQgKCppbml0KShzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lv biAqKTsKCi06NjAzOiBXQVJOSU5HOkZVTkNUSU9OX0FSR1VNRU5UUzogZnVuY3Rpb24gZGVmaW5p dGlvbiBhcmd1bWVudCAnc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKicgc2hvdWxkIGFsc28g aGF2ZSBhbiBpZGVudGlmaWVyIG5hbWUKIzYwMzogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbWVtb3J5X3JlZ2lvbi5oOjU2OgorCXZvaWQgKCpyZWxlYXNlKShzdHJ1Y3QgaW50ZWxf bWVtb3J5X3JlZ2lvbiAqKTsKCi06NjA1OiBXQVJOSU5HOkZVTkNUSU9OX0FSR1VNRU5UUzogZnVu Y3Rpb24gZGVmaW5pdGlvbiBhcmd1bWVudCAnc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKicg c2hvdWxkIGFsc28gaGF2ZSBhbiBpZGVudGlmaWVyIG5hbWUKIzYwNTogRklMRTogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oOjU4OgorCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICoKCi06NjA1OiBXQVJOSU5HOkZVTkNUSU9OX0FSR1VNRU5UUzogZnVuY3Rpb24g ZGVmaW5pdGlvbiBhcmd1bWVudCAncmVzb3VyY2Vfc2l6ZV90JyBzaG91bGQgYWxzbyBoYXZlIGFu IGlkZW50aWZpZXIgbmFtZQojNjA1OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9t ZW1vcnlfcmVnaW9uLmg6NTg6CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgoKLTo2MDU6 IFdBUk5JTkc6RlVOQ1RJT05fQVJHVU1FTlRTOiBmdW5jdGlvbiBkZWZpbml0aW9uIGFyZ3VtZW50 ICd1bnNpZ25lZCBpbnQnIHNob3VsZCBhbHNvIGhhdmUgYW4gaWRlbnRpZmllciBuYW1lCiM2MDU6 IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaDo1ODoKKwlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCgotOjYyMDogQ0hFQ0s6VU5DT01NRU5URURfREVG SU5JVElPTjogc3RydWN0IG11dGV4IGRlZmluaXRpb24gd2l0aG91dCBjb21tZW50CiM2MjA6IEZJ TEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaDo3MzoKKwlzdHJ1 Y3QgbXV0ZXggbW1fbG9jazsKCi06NjM5OiBDSEVDSzpQQVJFTlRIRVNJU19BTElHTk1FTlQ6IEFs aWdubWVudCBzaG91bGQgbWF0Y2ggb3BlbiBwYXJlbnRoZXNpcwojNjM5OiBGSUxFOiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmg6OTI6CitfX2ludGVsX21lbW9yeV9y ZWdpb25fZ2V0X2Jsb2NrX2J1ZGR5KHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0sCisJ CQkJICAgICByZXNvdXJjZV9zaXplX3Qgc2l6ZSk7CgotOjY0MTogQ0hFQ0s6UEFSRU5USEVTSVNf QUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFyZW50aGVzaXMKIzY0MTog RklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oOjk0Ogordm9p ZCBfX2ludGVsX21lbW9yeV9yZWdpb25fcHV0X3BhZ2VzX2J1ZGR5KHN0cnVjdCBpbnRlbF9tZW1v cnlfcmVnaW9uICptZW0sCisJCQkJCSAgc3RydWN0IGxpc3RfaGVhZCAqYmxvY2tzKTsKCi06NzM5 OiBXQVJOSU5HOkVNQkVEREVEX0ZVTkNUSU9OX05BTUU6IFByZWZlciB1c2luZyAnIiVzLi4uIiwg X19mdW5jX18nIHRvIHVzaW5nICdpZ3RfbW9ja19maWxsJywgdGhpcyBmdW5jdGlvbidzIG5hbWUs IGluIGEgc3RyaW5nCiM3Mzk6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9p bnRlbF9tZW1vcnlfcmVnaW9uLmM6NzA6CisJCQlwcl9lcnIoImlndF9tb2NrX2ZpbGwgZmFpbGVk LCBzcGFjZSBzdGlsbCBsZWZ0IGluIHJlZ2lvblxuIik7Cgp0b3RhbDogMSBlcnJvcnMsIDggd2Fy bmluZ3MsIDUgY2hlY2tzLCA3ODUgbGluZXMgY2hlY2tlZApiZGQ1OTI0MDc1ZDUgZHJtL2k5MTUv cmVnaW9uOiBzdXBwb3J0IGJhc2ljIGV2aWN0aW9uCjNkZGY4YmYwYTZkYSBkcm0vaTkxNS9yZWdp b246IHN1cHBvcnQgY29udGludW91cyBhbGxvY2F0aW9ucwo5ZjRiMmUwNTk5NzUgZHJtL2k5MTUv cmVnaW9uOiBzdXBwb3J0IHZvbGF0aWxlIG9iamVjdHMKOTI5MjUwZjU5ZmJkIGRybS9pOTE1OiBB ZGQgbWVtb3J5IHJlZ2lvbiBpbmZvcm1hdGlvbiB0byBkZXZpY2VfaW5mbwowYWVjMjRiYmMxZDAg ZHJtL2k5MTU6IHN1cHBvcnQgY3JlYXRpbmcgTE1FTSBvYmplY3RzCi06MzU6IFdBUk5JTkc6RklM RV9QQVRIX0NIQU5HRVM6IGFkZGVkLCBtb3ZlZCBvciBkZWxldGVkIGZpbGUocyksIGRvZXMgTUFJ TlRBSU5FUlMgbmVlZCB1cGRhdGluZz8KIzM1OiAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKCi06MTE3 OiBXQVJOSU5HOlRZUE9fU1BFTExJTkc6ICdVS05PV04nIG1heSBiZSBtaXNzcGVsbGVkIC0gcGVy aGFwcyAnVU5LTk9XTic/CiMxMTc6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 Lmg6MTM3NDoKKwlzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqcmVnaW9uc1tJTlRFTF9NRU1P UllfVUtOT1dOXTsKCnRvdGFsOiAwIGVycm9ycywgMiB3YXJuaW5ncywgMCBjaGVja3MsIDIxOSBs aW5lcyBjaGVja2VkCjUwYTg0YTJlMzQ5YiBkcm0vaTkxNTogc2V0dXAgaW8tbWFwcGluZyBmb3Ig TE1FTQotOjc6IFdBUk5JTkc6Q09NTUlUX01FU1NBR0U6IE1pc3NpbmcgY29tbWl0IGRlc2NyaXB0 aW9uIC0gQWRkIGFuIGFwcHJvcHJpYXRlIG9uZQoKdG90YWw6IDAgZXJyb3JzLCAxIHdhcm5pbmdz LCAwIGNoZWNrcywgMzQgbGluZXMgY2hlY2tlZApkNGE1MjdmNjllODggZHJtL2k5MTUvbG1lbTog c3VwcG9ydCBrZXJuZWwgbWFwcGluZwotOjI4OTogRVJST1I6Q09ERV9JTkRFTlQ6IGNvZGUgaW5k ZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojMjg5OiBGSUxFOiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jOjQyMjoKK15JXkleSSAg ICAgICAgdmFsKTskCgotOjI4OTogQ0hFQ0s6UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1l bnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFyZW50aGVzaXMKIzI4OTogRklMRTogZHJpdmVycy9ncHUv ZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX21lbW9yeV9yZWdpb24uYzo0MjI6CisJCQlwcl9lcnIo InZhZGRyWyV1XT0ldSwgdmFsPSV1XG4iLCBkd29yZCwgdmFkZHJbZHdvcmRdLAorCQkJICAgICAg ICB2YWwpOwoKLTozMDE6IEVSUk9SOkNPREVfSU5ERU5UOiBjb2RlIGluZGVudCBzaG91bGQgdXNl IHRhYnMgd2hlcmUgcG9zc2libGUKIzMwMTogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2Vs ZnRlc3RzL2ludGVsX21lbW9yeV9yZWdpb24uYzo0MzQ6CiteSV5JXkkgICAgICAgIHZhbCBeIDB4 ZGVhZGJlYWYpOyQKCi06MzAxOiBDSEVDSzpQQVJFTlRIRVNJU19BTElHTk1FTlQ6IEFsaWdubWVu dCBzaG91bGQgbWF0Y2ggb3BlbiBwYXJlbnRoZXNpcwojMzAxOiBGSUxFOiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jOjQzNDoKKwkJCXByX2Vycigi dmFkZHJbJXVdPSV1LCB2YWw9JXVcbiIsIGR3b3JkLCB2YWRkcltkd29yZF0sCisJCQkgICAgICAg IHZhbCBeIDB4ZGVhZGJlYWYpOwoKdG90YWw6IDIgZXJyb3JzLCAwIHdhcm5pbmdzLCAyIGNoZWNr cywgMjYzIGxpbmVzIGNoZWNrZWQKNTA1OTA2NGVlMjcwIGRybS9pOTE1L2JsdDogZG9uJ3QgYXNz dW1lIHBpbm5lZCBpbnRlbF9jb250ZXh0CmZjMzdmM2Q3NTYzYiBkcm0vaTkxNS9ibHQ6IGJ1bXAg c2l6ZSByZXN0cmljdGlvbgowOTAyNTFmNjQwMGEgZHJtL2k5MTUvYmx0OiBzdXBwb3J0IGNvcHlp bmcgb2JqZWN0cwotOjE0OiBFUlJPUjpCQURfU0lHTl9PRkY6IFVucmVjb2duaXplZCBlbWFpbCBh ZGRyZXNzOiAnQWJkaWVsIEphbnVsZ3VlIDxhYmRpZWwuamFudWxndWVAbGludXguaW50ZWwuY29t JwojMTQ6IApDYzogQWJkaWVsIEphbnVsZ3VlIDxhYmRpZWwuamFudWxndWVAbGludXguaW50ZWwu Y29tCgotOjI2NjogV0FSTklORzpMSU5FX1NQQUNJTkc6IE1pc3NpbmcgYSBibGFuayBsaW5lIGFm dGVyIGRlY2xhcmF0aW9ucwojMjY2OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2Vs ZnRlc3RzL2k5MTVfZ2VtX29iamVjdF9ibHQuYzoxMTI6CisJc3RydWN0IHJuZF9zdGF0ZSBwcm5n OworCUlHVF9USU1FT1VUKGVuZCk7CgotOjM4MzogQ0hFQ0s6U1BBQ0lORzogc3BhY2VzIHByZWZl cnJlZCBhcm91bmQgdGhhdCAnPDwnIChjdHg6VnhWKQojMzgzOiBGSUxFOiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9ncHVfY29tbWFuZHMuaDoxOTE6CisjZGVmaW5lIFNSQ19DT1BZX0JM VF9DTUQJCSgoMjw8MjkpfCgweDQzPDwyMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAJCSAg IF4KCi06MzgzOiBDSEVDSzpTUEFDSU5HOiBzcGFjZXMgcHJlZmVycmVkIGFyb3VuZCB0aGF0ICd8 JyAoY3R4OlZ4VikKIzM4MzogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3B1 X2NvbW1hbmRzLmg6MTkxOgorI2RlZmluZSBTUkNfQ09QWV9CTFRfQ01ECQkoKDI8PDI5KXwoMHg0 Mzw8MjIpKQogICAgICAgICAgICAgICAgICAgICAgICAgCQkgICAgICAgIF4KCi06MzgzOiBDSEVD SzpTUEFDSU5HOiBzcGFjZXMgcHJlZmVycmVkIGFyb3VuZCB0aGF0ICc8PCcgKGN0eDpWeFYpCiMz ODM6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2dwdV9jb21tYW5kcy5oOjE5 MToKKyNkZWZpbmUgU1JDX0NPUFlfQkxUX0NNRAkJKCgyPDwyOSl8KDB4NDM8PDIyKSkKICAgICAg ICAgICAgICAgICAgICAgICAgIAkJICAgICAgICAgICAgICBeCgotOjM4NDogQ0hFQ0s6U1BBQ0lO Rzogc3BhY2VzIHByZWZlcnJlZCBhcm91bmQgdGhhdCAnPDwnIChjdHg6VnhWKQojMzg0OiBGSUxF OiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ncHVfY29tbWFuZHMuaDoxOTI6CisjZGVm aW5lIEdFTjlfWFlfRkFTVF9DT1BZX0JMVF9DTUQJKCgyPDwyOSl8KDB4NDI8PDIyKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAkgICBeCgotOjM4NDogQ0hFQ0s6U1BBQ0lORzog c3BhY2VzIHByZWZlcnJlZCBhcm91bmQgdGhhdCAnfCcgKGN0eDpWeFYpCiMzODQ6IEZJTEU6IGRy aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2dwdV9jb21tYW5kcy5oOjE5MjoKKyNkZWZpbmUg R0VOOV9YWV9GQVNUX0NPUFlfQkxUX0NNRAkoKDI8PDI5KXwoMHg0Mjw8MjIpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCSAgICAgICAgXgoKLTozODQ6IENIRUNLOlNQQUNJTkc6 IHNwYWNlcyBwcmVmZXJyZWQgYXJvdW5kIHRoYXQgJzw8JyAoY3R4OlZ4VikKIzM4NDogRklMRTog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3B1X2NvbW1hbmRzLmg6MTkyOgorI2RlZmlu ZSBHRU45X1hZX0ZBU1RfQ09QWV9CTFRfQ01ECSgoMjw8MjkpfCgweDQyPDwyMikpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAJICAgICAgICAgICAgICBeCgotOjM4NTogQ0hFQ0s6 U1BBQ0lORzogc3BhY2VzIHByZWZlcnJlZCBhcm91bmQgdGhhdCAnPDwnIChjdHg6VnhWKQojMzg1 OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ncHVfY29tbWFuZHMuaDoxOTM6 CisjZGVmaW5lIFhZX1NSQ19DT1BZX0JMVF9DTUQJCSgoMjw8MjkpfCgweDUzPDwyMikpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAJCSAgIF4KCi06Mzg1OiBDSEVDSzpTUEFDSU5HOiBzcGFj ZXMgcHJlZmVycmVkIGFyb3VuZCB0aGF0ICd8JyAoY3R4OlZ4VikKIzM4NTogRklMRTogZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3B1X2NvbW1hbmRzLmg6MTkzOgorI2RlZmluZSBYWV9T UkNfQ09QWV9CTFRfQ01ECQkoKDI8PDI5KXwoMHg1Mzw8MjIpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgCQkgICAgICAgIF4KCi06Mzg1OiBDSEVDSzpTUEFDSU5HOiBzcGFjZXMgcHJlZmVy cmVkIGFyb3VuZCB0aGF0ICc8PCcgKGN0eDpWeFYpCiMzODU6IEZJTEU6IGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX2dwdV9jb21tYW5kcy5oOjE5MzoKKyNkZWZpbmUgWFlfU1JDX0NPUFlf QkxUX0NNRAkJKCgyPDwyOSl8KDB4NTM8PDIyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IAkJICAgICAgICAgICAgICBeCgp0b3RhbDogMSBlcnJvcnMsIDEgd2FybmluZ3MsIDkgY2hlY2tz LCAzNjEgbGluZXMgY2hlY2tlZApiZjYyZjUzMWY2MGYgZHJtL2k5MTUvc2VsZnRlc3RzOiBtb3Zl IGdwdS13cml0ZS1kdyBpbnRvIHV0aWxzCjQ5ODlkZjBkMDk4OSBkcm0vaTkxNS9zZWxmdGVzdHM6 IGFkZCB3cml0ZS1kd29yZCB0ZXN0IGZvciBMTUVNCi06MTk6IENIRUNLOkxJTkVfU1BBQ0lORzog UGxlYXNlIGRvbid0IHVzZSBtdWx0aXBsZSBibGFuayBsaW5lcwojMTk6IEZJTEU6IGRyaXZlcnMv Z3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9uLmM6MTA6CiAKKwoKLTo5 OTogV0FSTklORzpMSU5FX1NQQUNJTkc6IE1pc3NpbmcgYSBibGFuayBsaW5lIGFmdGVyIGRlY2xh cmF0aW9ucwojOTk6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9t ZW1vcnlfcmVnaW9uLmM6NDIwOgorCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwlJ R1RfVElNRU9VVChlbmRfdGltZSk7CgotOjE3NDogV0FSTklORzpMSU5FX1NQQUNJTkc6IE1pc3Np bmcgYSBibGFuayBsaW5lIGFmdGVyIGRlY2xhcmF0aW9ucwojMTc0OiBGSUxFOiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jOjUwOToKKwlzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGU7CisJSTkxNV9STkRfU1RBVEUocHJuZyk7Cgp0b3RhbDogMCBlcnJvcnMs IDIgd2FybmluZ3MsIDEgY2hlY2tzLCAyMTIgbGluZXMgY2hlY2tlZAozMTQ1MmQxM2YxZWYgZHJt L2k5MTUvc2VsZnRlc3Q6IGV4dGVuZCBjb3ZlcmFnZSB0byBpbmNsdWRlIExNRU0gaHVnZS1wYWdl cwotOjc6IFdBUk5JTkc6Q09NTUlUX01FU1NBR0U6IE1pc3NpbmcgY29tbWl0IGRlc2NyaXB0aW9u IC0gQWRkIGFuIGFwcHJvcHJpYXRlIG9uZQoKdG90YWw6IDAgZXJyb3JzLCAxIHdhcm5pbmdzLCAw IGNoZWNrcywgMTUxIGxpbmVzIGNoZWNrZWQKMGRkYTg4YTgxNmRiIGRybS9pOTE1L2xtZW06IHN1 cHBvcnQgQ1BVIHJlbG9jYXRpb25zCi06Nzc6IENIRUNLOlNQQUNJTkc6IE5vIHNwYWNlIGlzIG5l Y2Vzc2FyeSBhZnRlciBhIGNhc3QKIzc3OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v aTkxNV9nZW1fZXhlY2J1ZmZlci5jOjEwODY6CisJCWlvX21hcHBpbmdfdW5tYXBfYXRvbWljKCh2 b2lkIF9fZm9yY2UgX19pb21lbSAqKSB1bm1hc2tfcGFnZShjYWNoZS0+dmFkZHIpKTsKCnRvdGFs OiAwIGVycm9ycywgMCB3YXJuaW5ncywgMSBjaGVja3MsIDkzIGxpbmVzIGNoZWNrZWQKNDc2ODIz ZTJkZmFiIGRybS9pOTE1L2xtZW06IHN1cHBvcnQgcHJlYWQKLToxMjY6IFdBUk5JTkc6RlVOQ1RJ T05fQVJHVU1FTlRTOiBmdW5jdGlvbiBkZWZpbml0aW9uIGFyZ3VtZW50ICdzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqJyBzaG91bGQgYWxzbyBoYXZlIGFuIGlkZW50aWZpZXIgbmFtZQojMTI2 OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmg6 NTY6CisJaW50ICgqcHJlYWQpKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICosCgp0b3RhbDog MCBlcnJvcnMsIDEgd2FybmluZ3MsIDAgY2hlY2tzLCAxMjAgbGluZXMgY2hlY2tlZAozZGM1YTk5 NWUzNTcgZHJtL2k5MTUvbG1lbTogc3VwcG9ydCBwd3JpdGUKLTo3ODogRVJST1I6UE9JTlRFUl9M T0NBVElPTjogIihmb28qKSIgc2hvdWxkIGJlICIoZm9vICopIgojNzg6IEZJTEU6IGRyaXZlcnMv Z3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9sbWVtLmM6MTU0OgorCQl1bndyaXR0ZW4gPSBfX2Nv cHlfZnJvbV91c2VyX2luYXRvbWljX25vY2FjaGUoKHZvaWQgX19mb3JjZSopdmFkZHIgKyBvZmZz ZXQsCgotOjgzOiBFUlJPUjpQT0lOVEVSX0xPQ0FUSU9OOiAiKGZvbyopIiBzaG91bGQgYmUgIihm b28gKikiCiM4MzogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2xtZW0u YzoxNTk6CisJCQl1bndyaXR0ZW4gPSBjb3B5X2Zyb21fdXNlcigodm9pZCBfX2ZvcmNlKil2YWRk ciArIG9mZnNldCwKCi06MTA2OiBDSEVDSzpMSU5FX1NQQUNJTkc6IFBsZWFzZSBkb24ndCB1c2Ug bXVsdGlwbGUgYmxhbmsgbGluZXMKIzEwNjogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX2xtZW0uYzoxODI6CisKKwoKdG90YWw6IDIgZXJyb3JzLCAwIHdhcm5pbmdzLCAx IGNoZWNrcywgOTkgbGluZXMgY2hlY2tlZAo4Y2VmNGU4MjkyYzggZHJtL2k5MTU6IGVudW1lcmF0 ZSBhbmQgaW5pdCBlYWNoIHN1cHBvcnRlZCByZWdpb24KLTo2MTogV0FSTklORzpUWVBPX1NQRUxM SU5HOiAnVUtOT1dOJyBtYXkgYmUgbWlzc3BlbGxlZCAtIHBlcmhhcHMgJ1VOS05PV04nPwojNjE6 IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jOjI3NDM6CisJZm9yIChp ID0gMDsgaSA8IElOVEVMX01FTU9SWV9VS05PV047IGkrKykgewoKdG90YWw6IDAgZXJyb3JzLCAx IHdhcm5pbmdzLCAwIGNoZWNrcywgMTIxIGxpbmVzIGNoZWNrZWQKNDQyMGFkNzdhOWE4IGRybS9p OTE1OiB0cmVhdCBzaG1lbSBhcyBhIHJlZ2lvbgotOjc6IFdBUk5JTkc6Q09NTUlUX01FU1NBR0U6 IE1pc3NpbmcgY29tbWl0IGRlc2NyaXB0aW9uIC0gQWRkIGFuIGFwcHJvcHJpYXRlIG9uZQoKLTox MTc6IENIRUNLOlBBUkVOVEhFU0lTX0FMSUdOTUVOVDogQWxpZ25tZW50IHNob3VsZCBtYXRjaCBv cGVuIHBhcmVudGhlc2lzCiMxMTc6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9zaG1lbS5jOjQ0NDoKK3N0YXRpYyBpbnQgX19jcmVhdGVfc2htZW0oc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUsCiAJCQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKCi06MTI5 OiBXQVJOSU5HOlVOU1BFQ0lGSUVEX0lOVDogUHJlZmVyICd1bnNpZ25lZCBpbnQnIHRvIGJhcmUg dXNlIG9mICd1bnNpZ25lZCcKIzEyOTogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX3NobWVtLmM6NDY3OgorCSAgICAgdW5zaWduZWQgZmxhZ3MpCgotOjE5MTogV0FSTklO RzpTVVNQRUNUX0NPREVfSU5ERU5UOiBzdXNwZWN0IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25h bCBzdGF0ZW1lbnRzICg4LCAxNykKIzE5MTogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX3NobWVtLmM6NTkxOgorCWlmIChlcnIpCisJCSBEUk1fTk9URSgiVW5hYmxlIHRv IGNyZWF0ZSBhIHByaXZhdGUgdG1wZnMgbW91bnQsIGh1Z2VwYWdlIHN1cHBvcnQgd2lsbCBiZSBk aXNhYmxlZCglZCkuXG4iLCBlcnIpOwoKLToxOTI6IFdBUk5JTkc6TE9OR19MSU5FOiBsaW5lIG92 ZXIgMTAwIGNoYXJhY3RlcnMKIzE5MjogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX3NobWVtLmM6NTkyOgorCQkgRFJNX05PVEUoIlVuYWJsZSB0byBjcmVhdGUgYSBwcml2 YXRlIHRtcGZzIG1vdW50LCBodWdlcGFnZSBzdXBwb3J0IHdpbGwgYmUgZGlzYWJsZWQoJWQpLlxu IiwgZXJyKTsKCnRvdGFsOiAwIGVycm9ycywgNCB3YXJuaW5ncywgMSBjaGVja3MsIDM3NSBsaW5l cyBjaGVja2VkCmEyYzA4NGI2MTdhMCBkcm0vaTkxNTogdHJlYXQgc3RvbGVuIGFzIGEgcmVnaW9u CjdmYjU1MGI5NGI1MyBkcm0vaTkxNTogZGVmaW5lIEhBU19NQVBQQUJMRV9BUEVSVFVSRQotOjIw OiBDSEVDSzpNQUNST19BUkdfUFJFQ0VERU5DRTogTWFjcm8gYXJndW1lbnQgJ2Rldl9wcml2JyBt YXkgYmUgYmV0dGVyIGFzICcoZGV2X3ByaXYpJyB0byBhdm9pZCBwcmVjZWRlbmNlIGlzc3Vlcwoj MjA6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmg6MjE3MjoKKyNkZWZpbmUg SEFTX01BUFBBQkxFX0FQRVJUVVJFKGRldl9wcml2KSAoZGV2X3ByaXYtPmdndHQubWFwcGFibGVf ZW5kID4gMCkKCnRvdGFsOiAwIGVycm9ycywgMCB3YXJuaW5ncywgMSBjaGVja3MsIDggbGluZXMg Y2hlY2tlZAo2ZjM0NzBkYmU0MzAgZHJtL2k5MTU6IGRvIG5vdCBtYXAgYXBlcnR1cmUgaWYgaXQg aXMgbm90IGF2YWlsYWJsZS4KLTo0MDogQ0hFQ0s6U1BBQ0lORzogTm8gc3BhY2UgaXMgbmVjZXNz YXJ5IGFmdGVyIGEgY2FzdAojNDA6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5jOjMwMDA6CisJCQkoc3RydWN0IHJlc291cmNlKSBERUZJTkVfUkVTX01FTShwY2lfcmVz b3VyY2Vfc3RhcnQocGRldiwgMiksCgp0b3RhbDogMCBlcnJvcnMsIDAgd2FybmluZ3MsIDEgY2hl Y2tzLCA1NSBsaW5lcyBjaGVja2VkCmU5ZGVjMzA2NDAyNyBkcm0vaTkxNTogc2V0IG51bV9mZW5j ZV9yZWdzIHRvIDAgaWYgdGhlcmUgaXMgbm8gYXBlcnR1cmUKMmRhZTk1ZGEwMWNiIGRybS9pOTE1 L3NlbGZ0ZXN0czogY2hlY2sgZm9yIG1pc3NpbmcgYXBlcnR1cmUKMmQwNGQ2YTUwZTAxIGRybS9p OTE1OiBlcnJvciBjYXB0dXJlIHdpdGggbm8gZ2d0dCBzbG90Ci06MTczOiBXQVJOSU5HOkxJTkVf U1BBQ0lORzogTWlzc2luZyBhIGJsYW5rIGxpbmUgYWZ0ZXIgZGVjbGFyYXRpb25zCiMxNzM6IEZJ TEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmM6MTcwODoKKwkJY29uc3Qg dTY0IHNsb3QgPSBnZ3R0LT5lcnJvcl9jYXB0dXJlLnN0YXJ0OworCQlnZ3R0LT52bS5jbGVhcl9y YW5nZSgmZ2d0dC0+dm0sIHNsb3QsIFBBR0VfU0laRSk7Cgp0b3RhbDogMCBlcnJvcnMsIDEgd2Fy bmluZ3MsIDAgY2hlY2tzLCAxNDggbGluZXMgY2hlY2tlZAo1NTlmYTAyN2JkY2MgZHJtL2k5MTU6 IERvbid0IHRyeSB0byBwbGFjZSBIV1MgaW4gbm9uLWV4aXN0aW5nIG1hcHBhYmxlIHJlZ2lvbgo0 ZmY3MTA3YTY2NjYgZHJtL2k5MTU6IGNoZWNrIGZvciBtaXNzaW5nIGFwZXJ0dXJlIGluIGluc2Vy dF9tYXBwYWJsZV9ub2RlCi06NzogV0FSTklORzpDT01NSVRfTUVTU0FHRTogTWlzc2luZyBjb21t aXQgZGVzY3JpcHRpb24gLSBBZGQgYW4gYXBwcm9wcmlhdGUgb25lCgp0b3RhbDogMCBlcnJvcnMs IDEgd2FybmluZ3MsIDAgY2hlY2tzLCA5IGxpbmVzIGNoZWNrZWQKYTFjOGY3N2RjYTdiIGRybS9p OTE1OiBBbGxvdyBpOTE1IHRvIG1hbmFnZSB0aGUgdm1hIG9mZnNldCBub2RlcyBpbnN0ZWFkIG9m IGRybSBjb3JlCi06MjIwOiBFUlJPUjpDT0RFX0lOREVOVDogY29kZSBpbmRlbnQgc2hvdWxkIHVz ZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiMyMjA6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9tbWFuLmM6NjA4OgorXkkgICAgICAgIG1tbyA9IGNvbnRhaW5lcl9vZihub2Rl LCBzdHJ1Y3QgaTkxNV9tbWFwX29mZnNldCwkCgotOjM3NDogRVJST1I6UE9JTlRFUl9MT0NBVElP TjogImZvbyogYmFyIiBzaG91bGQgYmUgImZvbyAqYmFyIgojMzc0OiBGSUxFOiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmg6NzE6CisJc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QqIG9iajsKCi06NDY5OiBDSEVDSzpQQVJFTlRIRVNJU19BTElHTk1FTlQ6 IEFsaWdubWVudCBzaG91bGQgbWF0Y2ggb3BlbiBwYXJlbnRoZXNpcwojNDY5OiBGSUxFOiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jOjY1NDoKKwkJCXVubWFwX21hcHBpbmdf cmFuZ2UoZ3QtPmk5MTUtPmRybS5hbm9uX2lub2RlLT5pX21hcHBpbmcsCiAJCQkJICAgIGRybV92 bWFfbm9kZV9vZmZzZXRfYWRkcihub2RlKSArIHZtYV9vZmZzZXQsCgp0b3RhbDogMiBlcnJvcnMs IDAgd2FybmluZ3MsIDEgY2hlY2tzLCA0ODAgbGluZXMgY2hlY2tlZAo1Y2U4OTIzZjFkYzkgZHJt L2k5MTU6IEludHJvZHVjZSBEUk1fSTkxNV9HRU1fTU1BUF9PRkZTRVQKLToxMjQ6IFdBUk5JTkc6 U1BBQ0VfQkVGT1JFX1RBQjogcGxlYXNlLCBubyBzcGFjZSBiZWZvcmUgdGFicwojMTI0OiBGSUxF OiBpbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmg6MzYyOgorI2RlZmluZSBEUk1fSTkxNV9HRU1f TU1BUF9PRkZTRVQgICBeSURSTV9JOTE1X0dFTV9NTUFQX0dUVCQKCi06MTMyOiBXQVJOSU5HOkxP TkdfTElORTogbGluZSBvdmVyIDEwMCBjaGFyYWN0ZXJzCiMxMzI6IEZJTEU6IGluY2x1ZGUvdWFw aS9kcm0vaTkxNV9kcm0uaDo0MjU6CisjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0dFTV9NTUFQX09G RlNFVAkJRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X0dFTV9NTUFQX09GRlNF VCwgc3RydWN0IGRybV9pOTE1X2dlbV9tbWFwX29mZnNldCkKCnRvdGFsOiAwIGVycm9ycywgMiB3 YXJuaW5ncywgMCBjaGVja3MsIDEyOSBsaW5lcyBjaGVja2VkCjVkZWU2Y2UzMzAxMSBkcm0vaTkx NS9sbWVtOiBhZGQgaGVscGVyIHRvIGdldCBDUFUgYWNjZXNzaWJsZSBvZmZzZXQKZjg4ZTUxZDJh MTNkIGRybS9pOTE1OiBBZGQgY3B1IGFuZCBsbWVtIGZhdWx0IGhhbmRsZXJzCi06MTU0OiBXQVJO SU5HOkxJTkVfU1BBQ0lORzogTWlzc2luZyBhIGJsYW5rIGxpbmUgYWZ0ZXIgZGVjbGFyYXRpb25z CiMxNTQ6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmM6Mzk4 OgorCQlzdHJ1Y3QgcGFnZSAqcGFnZSA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZShvYmosIGkp OworCQl2bWZfcmV0ID0gdm1mX2luc2VydF9wZm4oYXJlYSwKCnRvdGFsOiAwIGVycm9ycywgMSB3 YXJuaW5ncywgMCBjaGVja3MsIDMxMiBsaW5lcyBjaGVja2VkCmE0ZGViMGNlNTkwZSBkcm0vaTkx NTogY3B1LW1hcCBiYXNlZCBkdW1iIGJ1ZmZlcnMKLTozNTogQ0hFQ0s6UEFSRU5USEVTSVNfQUxJ R05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFyZW50aGVzaXMKIzM1OiBGSUxF OiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5jOjYwODoKK2k5MTVfZ2Vt X21tYXBfZHVtYihzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCisJCSAgc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKCi06MTAwOiBDSEVDSzpQQVJFTlRIRVNJU19BTElHTk1FTlQ6IEFsaWdubWVudCBzaG91 bGQgbWF0Y2ggb3BlbiBwYXJlbnRoZXNpcwojMTAwOiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oOjIzNjg6CitpbnQgaTkxNV9nZW1fbW1hcF9kdW1iKHN0cnVjdCBkcm1fZmls ZSAqZmlsZV9wcml2LCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkgICAgICB1MzIgaGFuZGxl LCB1NjQgKm9mZnNldCk7Cgp0b3RhbDogMCBlcnJvcnMsIDAgd2FybmluZ3MsIDIgY2hlY2tzLCA2 NSBsaW5lcyBjaGVja2VkCmRiMDNkOTU4ODgwZiBkcm0vaTkxNTogc3VwcG9ydCBiYXNpYyBvYmpl Y3QgbWlncmF0aW9uCi06MzM6IENIRUNLOkxJTkVfU1BBQ0lORzogUGxlYXNlIGRvbid0IHVzZSBt dWx0aXBsZSBibGFuayBsaW5lcwojMzM6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV9vYmplY3QuYzoxNzU6CiAKKwoKLTozNjogV0FSTklORzpMRUFESU5HX1NQQUNFOiBw bGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiMzNjogRklMRTogZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jOjE3ODoKKyAgICAgICBpbnQgZXJy OyQKCi06Mzg6IFdBUk5JTkc6TEVBRElOR19TUEFDRTogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhl IHN0YXJ0IG9mIGEgbGluZQojMzg6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9vYmplY3QuYzoxODA6CisgICAgICAgbG9ja2RlcF9hc3NlcnRfaGVsZCgmb2JqLT5iYXNl LmRldi0+c3RydWN0X211dGV4KTskCgotOjQwOiBXQVJOSU5HOkxFQURJTkdfU1BBQ0U6IHBsZWFz ZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzQwOiBGSUxFOiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmM6MTgyOgorICAgICAgIGlmIChvYmotPm1t Lm1hZHYgIT0gSTkxNV9NQURWX1dJTExORUVEKSQKCi06NDA6IFdBUk5JTkc6U1VTUEVDVF9DT0RF X0lOREVOVDogc3VzcGVjdCBjb2RlIGluZGVudCBmb3IgY29uZGl0aW9uYWwgc3RhdGVtZW50cyAo NywgMTUpCiM0MDogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVj dC5jOjE4MjoKKyAgICAgICBpZiAob2JqLT5tbS5tYWR2ICE9IEk5MTVfTUFEVl9XSUxMTkVFRCkK KyAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwoKLTo0MTogRVJST1I6Q09ERV9JTkRFTlQ6 IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNDE6IEZJTEU6IGRy aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYzoxODM6CisgICAgICAgICAg ICAgICByZXR1cm4gLUVJTlZBTDskCgotOjQxOiBXQVJOSU5HOkxFQURJTkdfU1BBQ0U6IHBsZWFz ZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzQxOiBGSUxFOiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmM6MTgzOgorICAgICAgICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7JAoKLTo0MzogV0FSTklORzpMRUFESU5HX1NQQUNFOiBwbGVhc2UsIG5vIHNw YWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM0MzogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jOjE4NToKKyAgICAgICBpZiAoaTkxNV9nZW1fb2JqZWN0 X25lZWRzX2JpdDE3X3N3aXp6bGUob2JqKSkkCgotOjQzOiBXQVJOSU5HOlNVU1BFQ1RfQ09ERV9J TkRFTlQ6IHN1c3BlY3QgY29kZSBpbmRlbnQgZm9yIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMgKDcs IDE1KQojNDM6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3Qu YzoxODU6CisgICAgICAgaWYgKGk5MTVfZ2VtX29iamVjdF9uZWVkc19iaXQxN19zd2l6emxlKG9i aikpCisgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKCi06NDQ6IEVSUk9SOkNPREVfSU5E RU5UOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUKIzQ0OiBGSUxF OiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmM6MTg2OgorICAgICAg ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7JAoKLTo0NDogV0FSTklORzpMRUFESU5HX1NQQUNFOiBw bGVhc2UsIG5vIHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM0NDogRklMRTogZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jOjE4NjoKKyAgICAgICAgICAgICAg IHJldHVybiAtRUlOVkFMOyQKCi06NDY6IFdBUk5JTkc6TEVBRElOR19TUEFDRTogcGxlYXNlLCBu byBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNDY6IEZJTEU6IGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYzoxODg6CisgICAgICAgaWYgKGF0b21pY19yZWFk KCZvYmotPm1tLnBhZ2VzX3Bpbl9jb3VudCkgPiQKCi06NDY6IFdBUk5JTkc6U1VTUEVDVF9DT0RF X0lOREVOVDogc3VzcGVjdCBjb2RlIGluZGVudCBmb3IgY29uZGl0aW9uYWwgc3RhdGVtZW50cyAo NywgMTUpCiM0NjogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVj dC5jOjE4ODoKKyAgICAgICBpZiAoYXRvbWljX3JlYWQoJm9iai0+bW0ucGFnZXNfcGluX2NvdW50 KSA+ClsuLi5dCisgICAgICAgICAgICAgICByZXR1cm4gLUVCVVNZOwoKLTo0NzogRVJST1I6Q09E RV9JTkRFTlQ6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNDc6 IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYzoxODk6Cisg ICAgICAgICAgIGF0b21pY19yZWFkKCZvYmotPmJpbmRfY291bnQpKSQKCi06NDc6IFdBUk5JTkc6 TEVBRElOR19TUEFDRTogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQoj NDc6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYzoxODk6 CisgICAgICAgICAgIGF0b21pY19yZWFkKCZvYmotPmJpbmRfY291bnQpKSQKCi06NDg6IEVSUk9S OkNPREVfSU5ERU5UOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUK IzQ4OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmM6MTkw OgorICAgICAgICAgICAgICAgcmV0dXJuIC1FQlVTWTskCgotOjQ4OiBXQVJOSU5HOkxFQURJTkdf U1BBQ0U6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzQ4OiBGSUxF OiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmM6MTkwOgorICAgICAg ICAgICAgICAgcmV0dXJuIC1FQlVTWTskCgotOjUwOiBXQVJOSU5HOkxFQURJTkdfU1BBQ0U6IHBs ZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzUwOiBGSUxFOiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmM6MTkyOgorICAgICAgIGlmIChvYmot PnBpbl9nbG9iYWwpJAoKLTo1MDogV0FSTklORzpTVVNQRUNUX0NPREVfSU5ERU5UOiBzdXNwZWN0 IGNvZGUgaW5kZW50IGZvciBjb25kaXRpb25hbCBzdGF0ZW1lbnRzICg3LCAxNSkKIzUwOiBGSUxF OiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmM6MTkyOgorICAgICAg IGlmIChvYmotPnBpbl9nbG9iYWwpCisgICAgICAgICAgICAgICByZXR1cm4gLUVCVVNZOwoKLTo1 MTogRVJST1I6Q09ERV9JTkRFTlQ6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBw b3NzaWJsZQojNTE6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmpl Y3QuYzoxOTM6CisgICAgICAgICAgICAgICByZXR1cm4gLUVCVVNZOyQKCi06NTE6IFdBUk5JTkc6 TEVBRElOR19TUEFDRTogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQoj NTE6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYzoxOTM6 CisgICAgICAgICAgICAgICByZXR1cm4gLUVCVVNZOyQKCi06NTM6IFdBUk5JTkc6TEVBRElOR19T UEFDRTogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNTM6IEZJTEU6 IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYzoxOTU6CisgICAgICAg aTkxNV9nZW1fb2JqZWN0X3JlbGVhc2VfbW1hcChvYmopOyQKCi06NTU6IFdBUk5JTkc6TEVBRElO R19TUEFDRTogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNTU6IEZJ TEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYzoxOTc6CisgICAg ICAgR0VNX0JVR19PTihvYmotPm1tLm1hcHBpbmcpOyQKCi06NTY6IFdBUk5JTkc6TEVBRElOR19T UEFDRTogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNTY6IEZJTEU6 IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYzoxOTg6CisgICAgICAg R0VNX0JVR19PTihvYmotPmJhc2UuZmlscCAmJiBtYXBwaW5nX21hcHBlZChvYmotPmJhc2UuZmls cC0+Zl9tYXBwaW5nKSk7JAoKLTo1ODogV0FSTklORzpMRUFESU5HX1NQQUNFOiBwbGVhc2UsIG5v IHNwYWNlcyBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lCiM1ODogRklMRTogZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jOjIwMDoKKyAgICAgICBlcnIgPSBpOTE1X2dlbV9v YmplY3Rfd2FpdChvYmosJAoKLTo1OTogRVJST1I6Q09ERV9JTkRFTlQ6IGNvZGUgaW5kZW50IHNo b3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojNTk6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9p OTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYzoyMDE6CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSTkxNV9XQUlUX0lOVEVSUlVQVElCTEUgfCQKCi06NTk6IFdBUk5JTkc6TEVBRElO R19TUEFDRTogcGxlYXNlLCBubyBzcGFjZXMgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZQojNTk6IEZJ TEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYzoyMDE6CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSTkxNV9XQUlUX0lOVEVSUlVQVElCTEUgfCQK Ci06NjA6IEVSUk9SOkNPREVfSU5ERU5UOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hl cmUgcG9zc2libGUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eA==