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_series_starting_with_=5B01/14=5D_drm=3A_Add_drm/kernel=2Eh_h?= =?utf-8?q?eader_file?= Date: Mon, 03 Sep 2018 17:47:07 -0000 Message-ID: <20180903174707.11785.12023@emeril.freedesktop.org> References: <20180903165439.24845-1-daniel.vetter@ffwll.ch> 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: <20180903165439.24845-1-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org PT0gU2VyaWVzIERldGFpbHMgPT0KClNlcmllczogc2VyaWVzIHN0YXJ0aW5nIHdpdGggWzAxLzE0 XSBkcm06IEFkZCBkcm0va2VybmVsLmggaGVhZGVyIGZpbGUKVVJMICAgOiBodHRwczovL3BhdGNo d29yay5mcmVlZGVza3RvcC5vcmcvc2VyaWVzLzQ5MDg5LwpTdGF0ZSA6IHdhcm5pbmcKCj09IFN1 bW1hcnkgPT0KCiQgZGltIGNoZWNrcGF0Y2ggb3JpZ2luL2RybS10aXAKYTM5ZDMwYzI4ZTcwIGRy bTogQWRkIGRybS9rZXJuZWwuaCBoZWFkZXIgZmlsZQotOjEzOTogV0FSTklORzpGSUxFX1BBVEhf Q0hBTkdFUzogYWRkZWQsIG1vdmVkIG9yIGRlbGV0ZWQgZmlsZShzKSwgZG9lcyBNQUlOVEFJTkVS UyBuZWVkIHVwZGF0aW5nPwojMTM5OiAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKCi06MTQ0OiBXQVJO SU5HOlNQRFhfTElDRU5TRV9UQUc6IE1pc3Npbmcgb3IgbWFsZm9ybWVkIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyIHRhZyBpbiBsaW5lIDEKIzE0NDogRklMRTogaW5jbHVkZS9kcm0va2VybmVsLmg6 MToKKy8qCgotOjE3MzogRVJST1I6TVVMVElTVEFURU1FTlRfTUFDUk9fVVNFX0RPX1dISUxFOiBN YWNyb3Mgc3RhcnRpbmcgd2l0aCBpZiBzaG91bGQgYmUgZW5jbG9zZWQgYnkgYSBkbyAtIHdoaWxl IGxvb3AgdG8gYXZvaWQgcG9zc2libGUgaWYvZWxzZSBsb2dpYyBkZWZlY3RzCiMxNzM6IEZJTEU6 IGluY2x1ZGUvZHJtL2tlcm5lbC5oOjMwOgorI2RlZmluZSBmb3JfZWFjaF9pZihjb25kaXRpb24p IGlmICghKGNvbmRpdGlvbikpIHt9IGVsc2UKCi06MTczOiBXQVJOSU5HOkJSQUNFUzogYnJhY2Vz IHt9IGFyZSBub3QgbmVjZXNzYXJ5IGZvciBzaW5nbGUgc3RhdGVtZW50IGJsb2NrcwojMTczOiBG SUxFOiBpbmNsdWRlL2RybS9rZXJuZWwuaDozMDoKKyNkZWZpbmUgZm9yX2VhY2hfaWYoY29uZGl0 aW9uKSBpZiAoIShjb25kaXRpb24pKSB7fSBlbHNlCgp0b3RhbDogMSBlcnJvcnMsIDMgd2Fybmlu Z3MsIDAgY2hlY2tzLCAxMDUgbGluZXMgY2hlY2tlZAo0ZTUwN2JhYjZiNzcgZHJtOiBEcm9wIGRy bVAuaCBmcm9tIGRybV9jb25uZWN0b3IuYwotOjU2OiBXQVJOSU5HOk5PX0FVVEhPUl9TSUdOX09G RjogTWlzc2luZyBTaWduZWQtb2ZmLWJ5OiBsaW5lIGJ5IG5vbWluYWwgcGF0Y2ggYXV0aG9yICdE YW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPicKCnRvdGFsOiAwIGVycm9ycywg MSB3YXJuaW5ncywgMCBjaGVja3MsIDMwIGxpbmVzIGNoZWNrZWQKOTYzYTc4ZTU3NTJiIGRybTog ZHJvcCBkcm1QLmggaW5jbHVkZSBmcm9tIGRybV9wbGFuZS5jCi06OTI6IFdBUk5JTkc6Tk9fQVVU SE9SX1NJR05fT0ZGOiBNaXNzaW5nIFNpZ25lZC1vZmYtYnk6IGxpbmUgYnkgbm9taW5hbCBwYXRj aCBhdXRob3IgJ0RhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+JwoKdG90YWw6 IDAgZXJyb3JzLCAxIHdhcm5pbmdzLCAwIGNoZWNrcywgNTUgbGluZXMgY2hlY2tlZAphY2QyMDk0 OGZhNjIgZHJtOiBkcm9wIGRybVAuaCBpbmNsdWRlIGZyb20gZHJtX2NydGMuYwotOjM1OiBXQVJO SU5HOk5PX0FVVEhPUl9TSUdOX09GRjogTWlzc2luZyBTaWduZWQtb2ZmLWJ5OiBsaW5lIGJ5IG5v bWluYWwgcGF0Y2ggYXV0aG9yICdEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNo PicKCnRvdGFsOiAwIGVycm9ycywgMSB3YXJuaW5ncywgMCBjaGVja3MsIDE3IGxpbmVzIGNoZWNr ZWQKZDUzMzM1MTk4NjE0IGRybS9hdG9taWM6IHRyaW0gZHJpdmVyIGludGVyZmFjZS9kb2NzCi06 ODg6IENIRUNLOlBBUkVOVEhFU0lTX0FMSUdOTUVOVDogQWxpZ25tZW50IHNob3VsZCBtYXRjaCBv cGVuIHBhcmVudGhlc2lzCiM4ODogRklMRTogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYzo1 MDE6CitzdGF0aWMgaW50IGRybV9hdG9taWNfY3J0Y19zZXRfcHJvcGVydHkoc3RydWN0IGRybV9j cnRjICpjcnRjLAogCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlLCBzdHJ1Y3QgZHJtX3By b3BlcnR5ICpwcm9wZXJ0eSwKCi06MjAyOiBDSEVDSzpPUEVOX0VOREVEX0xJTkU6IExpbmVzIHNo b3VsZCBub3QgZW5kIHdpdGggYSAnKCcKIzIwMjogRklMRTogZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWMuYzoxMjUzOgorc3RhdGljIGludCBkcm1fYXRvbWljX3NldF93cml0ZWJhY2tfZmJfZm9y X2Nvbm5lY3RvcigKCi06MzQyOiBXQVJOSU5HOk5PX0FVVEhPUl9TSUdOX09GRjogTWlzc2luZyBT aWduZWQtb2ZmLWJ5OiBsaW5lIGJ5IG5vbWluYWwgcGF0Y2ggYXV0aG9yICdEYW5pZWwgVmV0dGVy IDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPicKCnRvdGFsOiAwIGVycm9ycywgMSB3YXJuaW5ncywg MiBjaGVja3MsIDMwMSBsaW5lcyBjaGVja2VkCjI0MzM4OTk0NjJiMSBkcm06IGV4dHJhY3QgZHJt X2F0b21pY191YXBpLmMKLToxNDk4OiBXQVJOSU5HOkZJTEVfUEFUSF9DSEFOR0VTOiBhZGRlZCwg bW92ZWQgb3IgZGVsZXRlZCBmaWxlKHMpLCBkb2VzIE1BSU5UQUlORVJTIG5lZWQgdXBkYXRpbmc/ CiMxNDk4OiAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKCi06MTUwMzogV0FSTklORzpTUERYX0xJQ0VO U0VfVEFHOiBNaXNzaW5nIG9yIG1hbGZvcm1lZCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllciB0YWcg aW4gbGluZSAxCiMxNTAzOiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmM6 MToKKy8qCgotOjE1NTI6IFdBUk5JTkc6VFlQT19TUEVMTElORzogJ3NpbWlsaWFyJyBtYXkgYmUg bWlzc3BlbGxlZCAtIHBlcmhhcHMgJ3NpbWlsYXInPwojMTU1MjogRklMRTogZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfdWFwaS5jOjUwOgorICogZm9yIGxvYWQgZGV0ZWN0IG9yIHNpbWlsaWFy LgoKLToxNTgzOiBFUlJPUjpDT0RFX0lOREVOVDogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJz IHdoZXJlIHBvc3NpYmxlCiMxNTgzOiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191 YXBpLmM6ODE6CiteSV5JICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHVt b2RlKSwkCgotOjE1ODM6IENIRUNLOlBBUkVOVEhFU0lTX0FMSUdOTUVOVDogQWxpZ25tZW50IHNo b3VsZCBtYXRjaCBvcGVuIHBhcmVudGhlc2lzCiMxNTgzOiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY191YXBpLmM6ODE6CisJCQlkcm1fcHJvcGVydHlfY3JlYXRlX2Jsb2Ioc3RhdGUt PmNydGMtPmRldiwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHVt b2RlKSwKCi06MTU4NDogRVJST1I6Q09ERV9JTkRFTlQ6IGNvZGUgaW5kZW50IHNob3VsZCB1c2Ug dGFicyB3aGVyZSBwb3NzaWJsZQojMTU4NDogRklMRTogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWNfdWFwaS5jOjgyOgorXkleSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1bW9k ZSk7JAoKLToxNjE3OiBFUlJPUjpDT0RFX0lOREVOVDogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0 YWJzIHdoZXJlIHBvc3NpYmxlCiMxNjE3OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y191YXBpLmM6MTE1OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IpJAoKLToxNjE3OiBXQVJOSU5HOkxFQURJTkdfU1BB Q0U6IHBsZWFzZSwgbm8gc3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzE2MTc6IEZJTEU6 IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzoxMTU6CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYikkCgot OjE4NjA6IENIRUNLOlBBUkVOVEhFU0lTX0FMSUdOTUVOVDogQWxpZ25tZW50IHNob3VsZCBtYXRj aCBvcGVuIHBhcmVudGhlc2lzCiMxODYwOiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y191YXBpLmM6MzU4Ogorc3RhdGljIGludCBzZXRfb3V0X2ZlbmNlX2Zvcl9jb25uZWN0b3Ioc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yLAoKLToxOTAwOiBDSEVDSzpDT01QQVJJU09OX1RPX05VTEw6IENvbXBhcmlzb24g dG8gTlVMTCBjb3VsZCBiZSB3cml0dGVuICIhbmV3X2Jsb2IiCiMxOTAwOiBGSUxFOiBkcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmM6Mzk4OgorCQlpZiAobmV3X2Jsb2IgPT0gTlVMTCkK Ci06MTkyMjogQ0hFQ0s6UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1h dGNoIG9wZW4gcGFyZW50aGVzaXMKIzE5MjI6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljX3VhcGkuYzo0MjA6CitzdGF0aWMgaW50IGRybV9hdG9taWNfY3J0Y19zZXRfcHJvcGVydHko c3RydWN0IGRybV9jcnRjICpjcnRjLAorCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlLCBz dHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKCi06MTkzMDogQ0hFQ0s6QlJBQ0VTOiBicmFj ZXMge30gc2hvdWxkIGJlIHVzZWQgb24gYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE5MzA6 IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo0Mjg6CisJaWYgKHByb3Bl cnR5ID09IGNvbmZpZy0+cHJvcF9hY3RpdmUpClsuLi5dCisJZWxzZSBpZiAocHJvcGVydHkgPT0g Y29uZmlnLT5wcm9wX21vZGVfaWQpIHsKWy4uLl0KKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNv bmZpZy0+ZGVnYW1tYV9sdXRfcHJvcGVydHkpIHsKWy4uLl0KKwl9IGVsc2UgaWYgKHByb3BlcnR5 ID09IGNvbmZpZy0+Y3RtX3Byb3BlcnR5KSB7ClsuLi5dCisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9 PSBjb25maWctPmdhbW1hX2x1dF9wcm9wZXJ0eSkgewpbLi4uXQorCX0gZWxzZSBpZiAocHJvcGVy dHkgPT0gY29uZmlnLT5wcm9wX291dF9mZW5jZV9wdHIpIHsKWy4uLl0KKwl9IGVsc2UgaWYgKGNy dGMtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KSB7ClsuLi5dCisJfSBlbHNlIHsKWy4uLl0K Ci06MTk0MDogQ0hFQ0s6UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1h dGNoIG9wZW4gcGFyZW50aGVzaXMKIzE5NDA6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljX3VhcGkuYzo0Mzg6CisJCXJldCA9IGRybV9hdG9taWNfcmVwbGFjZV9wcm9wZXJ0eV9ibG9i X2Zyb21faWQoZGV2LAorCQkJCQkmc3RhdGUtPmRlZ2FtbWFfbHV0LAoKLToxOTQ4OiBDSEVDSzpQ QVJFTlRIRVNJU19BTElHTk1FTlQ6IEFsaWdubWVudCBzaG91bGQgbWF0Y2ggb3BlbiBwYXJlbnRo ZXNpcwojMTk0ODogRklMRTogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jOjQ0NjoK KwkJcmV0ID0gZHJtX2F0b21pY19yZXBsYWNlX3Byb3BlcnR5X2Jsb2JfZnJvbV9pZChkZXYsCisJ CQkJCSZzdGF0ZS0+Y3RtLAoKLToxOTU2OiBDSEVDSzpQQVJFTlRIRVNJU19BTElHTk1FTlQ6IEFs aWdubWVudCBzaG91bGQgbWF0Y2ggb3BlbiBwYXJlbnRoZXNpcwojMTk1NjogRklMRTogZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jOjQ1NDoKKwkJcmV0ID0gZHJtX2F0b21pY19yZXBs YWNlX3Byb3BlcnR5X2Jsb2JfZnJvbV9pZChkZXYsCisJCQkJCSZzdGF0ZS0+Z2FtbWFfbHV0LAoK LToxOTc0OiBXQVJOSU5HOlVOTkVDRVNTQVJZX0VMU0U6IGVsc2UgaXMgbm90IGdlbmVyYWxseSB1 c2VmdWwgYWZ0ZXIgYSBicmVhayBvciByZXR1cm4KIzE5NzQ6IEZJTEU6IGRyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX3VhcGkuYzo0NzI6CisJCXJldHVybiBjcnRjLT5mdW5jcy0+YXRvbWljX3Nl dF9wcm9wZXJ0eShjcnRjLCBzdGF0ZSwgcHJvcGVydHksIHZhbCk7CisJfSBlbHNlIHsKCi06MTk4 NjogQ0hFQ0s6UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9w ZW4gcGFyZW50aGVzaXMKIzE5ODY6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3Vh cGkuYzo0ODQ6Citkcm1fYXRvbWljX2NydGNfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywKKwkJY29uc3Qgc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSwKCi06MjAxMzogQ0hF Q0s6UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFy ZW50aGVzaXMKIzIwMTM6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo1 MTE6CitzdGF0aWMgaW50IGRybV9hdG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAorCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSwgc3RydWN0IGRy bV9wcm9wZXJ0eSAqcHJvcGVydHksCgotOjIwMjE6IFdBUk5JTkc6TElORV9TUEFDSU5HOiBNaXNz aW5nIGEgYmxhbmsgbGluZSBhZnRlciBkZWNsYXJhdGlvbnMKIzIwMjE6IEZJTEU6IGRyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo1MTk6CisJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiID0gZHJtX2ZyYW1lYnVmZmVyX2xvb2t1cChkZXYsIE5VTEwsIHZhbCk7CisJCWRybV9hdG9t aWNfc2V0X2ZiX2Zvcl9wbGFuZShzdGF0ZSwgZmIpOwoKLToyMDM3OiBXQVJOSU5HOkxJTkVfU1BB Q0lORzogTWlzc2luZyBhIGJsYW5rIGxpbmUgYWZ0ZXIgZGVjbGFyYXRpb25zCiMyMDM3OiBGSUxF OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmM6NTM1OgorCQlzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMgPSBkcm1fY3J0Y19maW5kKGRldiwgTlVMTCwgdmFsKTsKKwkJcmV0dXJuIGRybV9h dG9taWNfc2V0X2NydGNfZm9yX3BsYW5lKHN0YXRlLCBjcnRjKTsKCi06MjA4NjogQ0hFQ0s6UEFS RU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFyZW50aGVz aXMKIzIwODY6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo1ODQ6Citk cm1fYXRvbWljX3BsYW5lX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJ Y29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUsCgotOjIwOTI6IFdBUk5JTkc6QlJB Q0VTOiBicmFjZXMge30gYXJlIG5vdCBuZWNlc3NhcnkgZm9yIGFueSBhcm0gb2YgdGhpcyBzdGF0 ZW1lbnQKIzIwOTI6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo1OTA6 CisJaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+cHJvcF9mYl9pZCkgewpbLi4uXQorCX0gZWxzZSBp ZiAocHJvcGVydHkgPT0gY29uZmlnLT5wcm9wX2luX2ZlbmNlX2ZkKSB7ClsuLi5dCisJfSBlbHNl IGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnByb3BfY3J0Y19pZCkgewpbLi4uXQorCX0gZWxzZSBp ZiAocHJvcGVydHkgPT0gY29uZmlnLT5wcm9wX2NydGNfeCkgewpbLi4uXQorCX0gZWxzZSBpZiAo cHJvcGVydHkgPT0gY29uZmlnLT5wcm9wX2NydGNfeSkgewpbLi4uXQorCX0gZWxzZSBpZiAocHJv cGVydHkgPT0gY29uZmlnLT5wcm9wX2NydGNfdykgewpbLi4uXQorCX0gZWxzZSBpZiAocHJvcGVy dHkgPT0gY29uZmlnLT5wcm9wX2NydGNfaCkgewpbLi4uXQorCX0gZWxzZSBpZiAocHJvcGVydHkg PT0gY29uZmlnLT5wcm9wX3NyY194KSB7ClsuLi5dCisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBj b25maWctPnByb3Bfc3JjX3kpIHsKWy4uLl0KKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZp Zy0+cHJvcF9zcmNfdykgewpbLi4uXQorCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5w cm9wX3NyY19oKSB7ClsuLi5dCisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+YWxwaGFf cHJvcGVydHkpIHsKWy4uLl0KKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT5ibGVuZF9t b2RlX3Byb3BlcnR5KSB7ClsuLi5dCisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+cm90 YXRpb25fcHJvcGVydHkpIHsKWy4uLl0KKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT56 cG9zX3Byb3BlcnR5KSB7ClsuLi5dCisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+Y29s b3JfZW5jb2RpbmdfcHJvcGVydHkpIHsKWy4uLl0KKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBs YW5lLT5jb2xvcl9yYW5nZV9wcm9wZXJ0eSkgewpbLi4uXQorCX0gZWxzZSBpZiAocGxhbmUtPmZ1 bmNzLT5hdG9taWNfZ2V0X3Byb3BlcnR5KSB7ClsuLi5dCisJfSBlbHNlIHsKWy4uLl0KCi06MjE0 NzogQ0hFQ0s6T1BFTl9FTkRFRF9MSU5FOiBMaW5lcyBzaG91bGQgbm90IGVuZCB3aXRoIGEgJygn CiMyMTQ3OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmM6NjQ1Ogorc3Rh dGljIGludCBkcm1fYXRvbWljX3NldF93cml0ZWJhY2tfZmJfZm9yX2Nvbm5lY3RvcigKCi06MjE2 OTogQ0hFQ0s6UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9w ZW4gcGFyZW50aGVzaXMKIzIxNjk6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3Vh cGkuYzo2Njc6CitzdGF0aWMgaW50IGRybV9hdG9taWNfY29ubmVjdG9yX3NldF9wcm9wZXJ0eShz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9z dGF0ZSAqc3RhdGUsIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LAoKLToyMTc3OiBXQVJO SU5HOkxJTkVfU1BBQ0lORzogTWlzc2luZyBhIGJsYW5rIGxpbmUgYWZ0ZXIgZGVjbGFyYXRpb25z CiMyMTc3OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmM6Njc1OgorCQlz dHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBkcm1fY3J0Y19maW5kKGRldiwgTlVMTCwgdmFsKTsKKwkJ cmV0dXJuIGRybV9hdG9taWNfc2V0X2NydGNfZm9yX2Nvbm5lY3RvcihzdGF0ZSwgY3J0Yyk7Cgot OjIyMzc6IFdBUk5JTkc6TElORV9TUEFDSU5HOiBNaXNzaW5nIGEgYmxhbmsgbGluZSBhZnRlciBk ZWNsYXJhdGlvbnMKIzIyMzc6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGku Yzo3MzU6CisJCWludCByZXQgPSBkcm1fYXRvbWljX3NldF93cml0ZWJhY2tfZmJfZm9yX2Nvbm5l Y3RvcihzdGF0ZSwgZmIpOworCQlpZiAoZmIpCgotOjIyNjA6IENIRUNLOlBBUkVOVEhFU0lTX0FM SUdOTUVOVDogQWxpZ25tZW50IHNob3VsZCBtYXRjaCBvcGVuIHBhcmVudGhlc2lzCiMyMjYwOiBG SUxFOiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmM6NzU4OgorZHJtX2F0b21pY19j b25uZWN0b3JfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJ CWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpzdGF0ZSwKCi06MjMyMDogQ0hFQ0s6 UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFyZW50 aGVzaXMKIzIzMjA6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo4MTg6 CitpbnQgZHJtX2F0b21pY19nZXRfcHJvcGVydHkoc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2Jq LAorCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwgdWludDY0X3QgKnZhbCkKCi06MjMy ODogV0FSTklORzpMSU5FX1NQQUNJTkc6IE1pc3NpbmcgYSBibGFuayBsaW5lIGFmdGVyIGRlY2xh cmF0aW9ucwojMjMyODogRklMRTogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jOjgy NjoKKwkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IG9ial90b19jb25uZWN0b3Io b2JqKTsKKwkJV0FSTl9PTighZHJtX21vZGVzZXRfaXNfbG9ja2VkKCZkZXYtPm1vZGVfY29uZmln LmNvbm5lY3Rpb25fbXV0ZXgpKTsKCi06MjMzMDogQ0hFQ0s6UEFSRU5USEVTSVNfQUxJR05NRU5U OiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFyZW50aGVzaXMKIzIzMzA6IEZJTEU6IGRy aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo4Mjg6CisJCXJldCA9IGRybV9hdG9taWNf Y29ubmVjdG9yX2dldF9wcm9wZXJ0eShjb25uZWN0b3IsCisJCQkJY29ubmVjdG9yLT5zdGF0ZSwg cHJvcGVydHksIHZhbCk7CgotOjIzMzU6IFdBUk5JTkc6TElORV9TUEFDSU5HOiBNaXNzaW5nIGEg YmxhbmsgbGluZSBhZnRlciBkZWNsYXJhdGlvbnMKIzIzMzU6IEZJTEU6IGRyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX3VhcGkuYzo4MzM6CisJCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IG9ial90 b19jcnRjKG9iaik7CisJCVdBUk5fT04oIWRybV9tb2Rlc2V0X2lzX2xvY2tlZCgmY3J0Yy0+bXV0 ZXgpKTsKCi06MjMzNzogQ0hFQ0s6UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hv dWxkIG1hdGNoIG9wZW4gcGFyZW50aGVzaXMKIzIzMzc6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljX3VhcGkuYzo4MzU6CisJCXJldCA9IGRybV9hdG9taWNfY3J0Y19nZXRfcHJvcGVy dHkoY3J0YywKKwkJCQljcnRjLT5zdGF0ZSwgcHJvcGVydHksIHZhbCk7CgotOjIzNDI6IFdBUk5J Tkc6TElORV9TUEFDSU5HOiBNaXNzaW5nIGEgYmxhbmsgbGluZSBhZnRlciBkZWNsYXJhdGlvbnMK IzIzNDI6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo4NDA6CisJCXN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0gb2JqX3RvX3BsYW5lKG9iaik7CisJCVdBUk5fT04oIWRy bV9tb2Rlc2V0X2lzX2xvY2tlZCgmcGxhbmUtPm11dGV4KSk7CgotOjIzNDQ6IENIRUNLOlBBUkVO VEhFU0lTX0FMSUdOTUVOVDogQWxpZ25tZW50IHNob3VsZCBtYXRjaCBvcGVuIHBhcmVudGhlc2lz CiMyMzQ0OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmM6ODQyOgorCQly ZXQgPSBkcm1fYXRvbWljX3BsYW5lX2dldF9wcm9wZXJ0eShwbGFuZSwKKwkJCQlwbGFuZS0+c3Rh dGUsIHByb3BlcnR5LCB2YWwpOwoKLToyMzU5OiBDSEVDSzpPUEVOX0VOREVEX0xJTkU6IExpbmVz IHNob3VsZCBub3QgZW5kIHdpdGggYSAnKCcKIzIzNTk6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljX3VhcGkuYzo4NTc6CitzdGF0aWMgc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19l dmVudCAqY3JlYXRlX3ZibGFua19ldmVudCgKCi06MjM2NDogV0FSTklORzpTSVpFT0ZfUEFSRU5U SEVTSVM6IHNpemVvZiAqZSBzaG91bGQgYmUgc2l6ZW9mKCplKQojMjM2NDogRklMRTogZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jOjg2MjoKKwllID0ga3phbGxvYyhzaXplb2YgKmUs IEdGUF9LRVJORUwpOwoKLToyNDQ5OiBDSEVDSzpQQVJFTlRIRVNJU19BTElHTk1FTlQ6IEFsaWdu bWVudCBzaG91bGQgbWF0Y2ggb3BlbiBwYXJlbnRoZXNpcwojMjQ0OTogRklMRTogZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWNfdWFwaS5jOjk0NzoKKwkJcmV0ID0gZHJtX2F0b21pY19jb25uZWN0 b3Jfc2V0X3Byb3BlcnR5KGNvbm5lY3RvciwKKwkJCQljb25uZWN0b3Jfc3RhdGUsIHByb3AsIHBy b3BfdmFsdWUpOwoKLToyNDYzOiBDSEVDSzpQQVJFTlRIRVNJU19BTElHTk1FTlQ6IEFsaWdubWVu dCBzaG91bGQgbWF0Y2ggb3BlbiBwYXJlbnRoZXNpcwojMjQ2MzogRklMRTogZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfdWFwaS5jOjk2MToKKwkJcmV0ID0gZHJtX2F0b21pY19jcnRjX3NldF9w cm9wZXJ0eShjcnRjLAorCQkJCWNydGNfc3RhdGUsIHByb3AsIHByb3BfdmFsdWUpOwoKLToyNDc3 OiBDSEVDSzpQQVJFTlRIRVNJU19BTElHTk1FTlQ6IEFsaWdubWVudCBzaG91bGQgbWF0Y2ggb3Bl biBwYXJlbnRoZXNpcwojMjQ3NzogRklMRTogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFw aS5jOjk3NToKKwkJcmV0ID0gZHJtX2F0b21pY19wbGFuZV9zZXRfcHJvcGVydHkocGxhbmUsCisJ CQkJcGxhbmVfc3RhdGUsIHByb3AsIHByb3BfdmFsdWUpOwoKLToyNDkzOiBXQVJOSU5HOlRZUE9f U1BFTExJTkc6ICd0cmFuc2ZlcmVkJyBtYXkgYmUgbWlzc3BlbGxlZCAtIHBlcmhhcHMgJ3RyYW5z ZmVycmVkJz8KIzI0OTM6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo5 OTE6CisgKiBiZXR3ZWVuIGRldmljZXMuIEEgRmVuY2Ugb3IgYSBncm91cCBvZiBmZW5jZXMgYXJl IHRyYW5zZmVyZWQgdG8vZnJvbQoKLToyNTY1OiBDSEVDSzpQQVJFTlRIRVNJU19BTElHTk1FTlQ6 IEFsaWdubWVudCBzaG91bGQgbWF0Y2ggb3BlbiBwYXJlbnRoZXNpcwojMjU2NTogRklMRTogZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jOjEwNjM6CitzdGF0aWMgaW50IHByZXBhcmVf c2lnbmFsaW5nKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJICBzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUsCgotOjI3NzI6IENIRUNLOlBBUkVOVEhFU0lTX0FMSUdOTUVOVDogQWxp Z25tZW50IHNob3VsZCBtYXRjaCBvcGVuIHBhcmVudGhlc2lzCiMyNzcyOiBGSUxFOiBkcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmM6MTI3MDoKKwlpZiAoKGFyZy0+ZmxhZ3MgJiBEUk1f TU9ERV9QQUdFX0ZMSVBfQVNZTkMpICYmCisJCQkhZGV2LT5tb2RlX2NvbmZpZy5hc3luY19wYWdl X2ZsaXApCgotOjI3Nzc6IENIRUNLOlBBUkVOVEhFU0lTX0FMSUdOTUVOVDogQWxpZ25tZW50IHNo b3VsZCBtYXRjaCBvcGVuIHBhcmVudGhlc2lzCiMyNzc3OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY191YXBpLmM6MTI3NToKKwlpZiAoKGFyZy0+ZmxhZ3MgJiBEUk1fTU9ERV9BVE9N SUNfVEVTVF9PTkxZKSAmJgorCQkJKGFyZy0+ZmxhZ3MgJiBEUk1fTU9ERV9QQUdFX0ZMSVBfRVZF TlQpKQoKLTozMDQ5OiBXQVJOSU5HOlNQRFhfTElDRU5TRV9UQUc6IE1pc3Npbmcgb3IgbWFsZm9y bWVkIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyIHRhZyBpbiBsaW5lIDEKIzMwNDk6IEZJTEU6IGlu Y2x1ZGUvZHJtL2RybV9hdG9taWNfdWFwaS5oOjE6CisvKgoKLTozMTA2OiBXQVJOSU5HOk5PX0FV VEhPUl9TSUdOX09GRjogTWlzc2luZyBTaWduZWQtb2ZmLWJ5OiBsaW5lIGJ5IG5vbWluYWwgcGF0 Y2ggYXV0aG9yICdEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPicKCnRvdGFs OiAzIGVycm9ycywgMTcgd2FybmluZ3MsIDI1IGNoZWNrcywgMjQ0MyBsaW5lcyBjaGVja2VkCmEw NzI1YzY1ZjllZSBkcm0vYXRvbWljLWhlbHBlcjogVW5leHBvcnQgZHJtX2F0b21pY19oZWxwZXJf YmVzdF9lbmNvZGVyCi06MTMzOiBXQVJOSU5HOk5PX0FVVEhPUl9TSUdOX09GRjogTWlzc2luZyBT aWduZWQtb2ZmLWJ5OiBsaW5lIGJ5IG5vbWluYWwgcGF0Y2ggYXV0aG9yICdEYW5pZWwgVmV0dGVy IDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPicKCnRvdGFsOiAwIGVycm9ycywgMSB3YXJuaW5ncywg MCBjaGVja3MsIDcyIGxpbmVzIGNoZWNrZWQKNzQzZTI2NDVhMGExIGRybS9hbWRncHU6IFJlbW92 ZSBkZWZhdWx0IGJlc3RfZW5jb2RlciBob29rIGZyb20gREMKLTo1ODogV0FSTklORzpOT19BVVRI T1JfU0lHTl9PRkY6IE1pc3NpbmcgU2lnbmVkLW9mZi1ieTogbGluZSBieSBub21pbmFsIHBhdGNo IGF1dGhvciAnRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4nCgp0b3RhbDog MCBlcnJvcnMsIDEgd2FybmluZ3MsIDAgY2hlY2tzLCAzNSBsaW5lcyBjaGVja2VkCmU4YmFiN2Zj ZTI0YiBkcm06IFVwZGF0ZSB0b2RvLnJzdAowY2FjMzc4MTBmOWQgZHJtOiBFeHRyYWN0IGRybV9h dG9taWNfc3RhdGVfaGVscGVyLltoY10KLTo2NDA6IFdBUk5JTkc6RklMRV9QQVRIX0NIQU5HRVM6 IGFkZGVkLCBtb3ZlZCBvciBkZWxldGVkIGZpbGUocyksIGRvZXMgTUFJTlRBSU5FUlMgbmVlZCB1 cGRhdGluZz8KIzY0MDogCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CgotOjY0NTogV0FSTklORzpTUERY X0xJQ0VOU0VfVEFHOiBNaXNzaW5nIG9yIG1hbGZvcm1lZCBTUERYLUxpY2Vuc2UtSWRlbnRpZmll ciB0YWcgaW4gbGluZSAxCiM2NDU6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0 YXRlX2hlbHBlci5jOjE6CisvKgoKLTo5NTk6IFdBUk5JTkc6VFlQT19TUEVMTElORzogJ2NvbmVj dG9yJyBtYXkgYmUgbWlzc3BlbGxlZCAtIHBlcmhhcHMgJ2Nvbm5lY3Rvcic/CiM5NTk6IEZJTEU6 IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5jOjMxNToKKyAqIHRoZSAm ZHJtX2NvbmVjdG9yLT5zdGF0ZSBwb2ludGVyIG9mIEBjb25uZWN0b3IsIHVzdWFsbHkgcmVxdWly ZWQgd2hlbgoKLToxMDA3OiBDSEVDSzpQQVJFTlRIRVNJU19BTElHTk1FTlQ6IEFsaWdubWVudCBz aG91bGQgbWF0Y2ggb3BlbiBwYXJlbnRoZXNpcwojMTAwNzogRklMRTogZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmM6MzYzOgorX19kcm1fYXRvbWljX2hlbHBlcl9jb25u ZWN0b3JfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJ CQkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqc3RhdGUpCgotOjExNTc6IENIRUNL OlBBUkVOVEhFU0lTX0FMSUdOTUVOVDogQWxpZ25tZW50IHNob3VsZCBtYXRjaCBvcGVuIHBhcmVu dGhlc2lzCiMxMTU3OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19zdGF0ZV9oZWxw ZXIuYzo1MTM6Cit2b2lkIGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRl KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJCQkJCSAgc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKnN0YXRlKQoKLToxMzE2OiBXQVJOSU5HOlNQRFhfTElDRU5TRV9UQUc6IE1p c3Npbmcgb3IgbWFsZm9ybWVkIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyIHRhZyBpbiBsaW5lIDEK IzEzMTY6IEZJTEU6IGluY2x1ZGUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmg6MToKKy8q CgotOjEzNzM6IENIRUNLOlBBUkVOVEhFU0lTX0FMSUdOTUVOVDogQWxpZ25tZW50IHNob3VsZCBt YXRjaCBvcGVuIHBhcmVudGhlc2lzCiMxMzczOiBGSUxFOiBpbmNsdWRlL2RybS9kcm1fYXRvbWlj X3N0YXRlX2hlbHBlci5oOjU4Ogordm9pZCBkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95 X3N0YXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJCQkgIHN0cnVjdCBkcm1fcGxhbmVf c3RhdGUgKnN0YXRlKTsKCi06MTM4MDogQ0hFQ0s6UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGln bm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFyZW50aGVzaXMKIzEzODA6IEZJTEU6IGluY2x1ZGUv ZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmg6NjU6CitfX2RybV9hdG9taWNfaGVscGVyX2Nv bm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwK KwkJCQkJICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKnN0YXRlKTsKCi06MTM4OTogQ0hF Q0s6UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFy ZW50aGVzaXMKIzEzODk6IEZJTEU6IGluY2x1ZGUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVy Lmg6NzQ6Cit2b2lkIGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlKHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJCQkJCSAgc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKnN0YXRlKTsKCi06MTM5NTogV0FSTklORzpOT19BVVRIT1JfU0lHTl9PRkY6IE1p c3NpbmcgU2lnbmVkLW9mZi1ieTogbGluZSBieSBub21pbmFsIHBhdGNoIGF1dGhvciAnRGFuaWVs IFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4nCgp0b3RhbDogMCBlcnJvcnMsIDUgd2Fy bmluZ3MsIDUgY2hlY2tzLCA3ODQgbGluZXMgY2hlY2tlZAozZjUyNjMxZjMwNmUgZHJtL3Ztd2dm eDogUmVtb3ZlIGNvbmZ1c2VkIGNvbW1lbnQgZnJvbSB2bXdfZHVfY29ubmVjdG9yX2F0b21pY19z ZXRfcHJvcGVydHkKYTAwZDlmODcyZjdmIGRybS92bXdnZng6IERvbid0IGxvb2sgYXQgc3RhdGUt PmFsbG93X21vZGVzZXQKODM1YTE0NzE1NmU4IGRybS9hdG9taWM6IEltcHJvdmUgZG9jcyBmb3Ig ZHJtX2F0b21pY19zdGF0ZS0+YWxsb3dfbW9kZXNldAotOjM4OiBXQVJOSU5HOk5PX0FVVEhPUl9T SUdOX09GRjogTWlzc2luZyBTaWduZWQtb2ZmLWJ5OiBsaW5lIGJ5IG5vbWluYWwgcGF0Y2ggYXV0 aG9yICdEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPicKCnRvdGFsOiAwIGVy cm9ycywgMSB3YXJuaW5ncywgMCBjaGVja3MsIDIyIGxpbmVzIGNoZWNrZWQKNjQ4OTVmN2VmZDkw IGRybS92bXdnZng6IEFkZCBGSVhNRSBjb21tZW50cyBmb3IgY3VzdG9tZXIgcGFnZV9mbGlwIGhh bmRsZXJzCi06NTg6IFdBUk5JTkc6Tk9fQVVUSE9SX1NJR05fT0ZGOiBNaXNzaW5nIFNpZ25lZC1v ZmYtYnk6IGxpbmUgYnkgbm9taW5hbCBwYXRjaCBhdXRob3IgJ0RhbmllbCBWZXR0ZXIgPGRhbmll bC52ZXR0ZXJAZmZ3bGwuY2g+JwoKdG90YWw6IDAgZXJyb3JzLCAxIHdhcm5pbmdzLCAwIGNoZWNr cywgMjEgbGluZXMgY2hlY2tlZAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==