From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([184.105.139.130]:57788 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753941AbeC1PfO (ORCPT ); Wed, 28 Mar 2018 11:35:14 -0400 Received: from localhost (67.110.78.66.ptr.us.xo.net [67.110.78.66]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 9B9261210340D for ; Wed, 28 Mar 2018 08:35:12 -0700 (PDT) Date: Wed, 28 Mar 2018 11:35:10 -0400 (EDT) Message-Id: <20180328.113510.98892181272784815.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Wed_Mar_28_11_35_10_2018_787)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Wed_Mar_28_11_35_10_2018_787)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.14 and v4.15 -stable, respecetively. Thank you! ----Next_Part(Wed_Mar_28_11_35_10_2018_787)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_414.mbox" RnJvbSA4OTFkY2VhMGMyY2QwMjUwNGY5Y2U4ZDI3ZGIyODYzNjZmNDM5ZmMxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVpbEBnb29nbGUu Y29tPgpEYXRlOiBUaHUsIDE1IE1hciAyMDE4IDEyOjA5OjEzIC0wNDAwClN1YmplY3Q6IFtQQVRD SCAwMS80M10gdGNwOiByZXNldCBza19zZW5kX2hlYWQgaW4gdGNwX3dyaXRlX3F1ZXVlX3B1cmdl Cgp0Y3Bfd3JpdGVfcXVldWVfcHVyZ2UgY2xlYXJzIGFsbCB0aGUgU0tCcyBpbiB0aGUgd3JpdGUg cXVldWUKYnV0IGRvZXMgbm90IHJlc2V0IHRoZSBza19zZW5kX2hlYWQuIEFzIGEgcmVzdWx0LCB3 ZSBjYW4gaGF2ZQphIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBhbnl3aGVyZSB0aGF0IHdlIHVz ZSB0Y3Bfc2VuZF9oZWFkCmluc3RlYWQgb2YgdGhlIHRjcF93cml0ZV9xdWV1ZV90YWlsLgoKRm9y IGV4YW1wbGUsIGFmdGVyIDI3ZmlkN2E4ZWQzOCAodGNwOiBwdXJnZSB3cml0ZSBxdWV1ZSB1cG9u IFJTVCksCndlIGNhbiBwdXJnZSB0aGUgd3JpdGUgcXVldWUgb24gUlNULiBQcmlvciB0bwo3NWMx MTlhZmUxNGYgKHRjcDogaW1wbGVtZW50IHJiLXRyZWUgYmFzZWQgcmV0cmFuc21pdCBxdWV1ZSks CnRjcF9wdXNoIHdpbGwgb25seSBjaGVjayB0Y3Bfc2VuZF9oZWFkIGFuZCB0aGVuIGFjY2Vzc2Vz CnRjcF93cml0ZV9xdWV1ZV90YWlsIHRvIHNlbmQgdGhlIGFjdHVhbCBTS0IuIEFzIGEgcmVzdWx0 LCBpdCB3aWxsCmRlcmVmZXJlbmNlIGEgTlVMTCBwb2ludGVyLgoKVGhpcyBoYXMgYmVlbiByZXBv cnRlZCB0d2ljZSBmb3IgNC4xNCB3aGVyZSB3ZSBkb24ndCBoYXZlCjc1YzExOWFmZTE0ZjoKCkJ5 IFRpbW9mZXkgVGl0b3ZldHM6CgpbICA0MjIuMDgxMDk0XSBCVUc6IHVuYWJsZSB0byBoYW5kbGUg a2VybmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZQphdCAwMDAwMDAwMDAwMDAwMDM4ClsgIDQy Mi4wODEyNTRdIElQOiB0Y3BfcHVzaCsweDQyLzB4MTEwClsgIDQyMi4wODEzMTRdIFBHRCAwIFA0 RCAwClsgIDQyMi4wODEzNjRdIE9vcHM6IDAwMDIgWyMxXSBTTVAgUFRJCgpCeSBZb25namlhbiBY dToKCkJVRzogdW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNl IGF0IDAwMDAwMDAwMDAwMDAwMzgKSVA6IHRjcF9wdXNoKzB4NDgvMHgxMjAKUEdEIDgwMDAwMDA3 ZmY3N2IwNjcgUDREIDgwMDAwMDA3ZmY3N2IwNjcgUFVEIDdmZDk4OTA2NyBQTUQgMApPb3BzOiAw MDAyIFsjMThdIFNNUCBQVEkKTW9kdWxlcyBsaW5rZWQgaW46IHRjcF9kaWFnIGluZXRfZGlhZyB0 Y3BfYmJyIHNjaF9mcSBpVENPX3dkdAppVENPX3ZlbmRvcl9zdXBwb3J0IHBjc3BrciBpeGdiZSBt ZGlvIGkyY19pODAxIGxwY19pY2ggam95ZGV2IGlucHV0X2xlZHMgc2hwY2hwCmUxMDAwZSBpZ2Ig ZGNhIHB0cCBwcHNfY29yZSBod21vbiBtZWlfbWUgbWVpIGlwbWlfc2kgaXBtaV9tc2doYW5kbGVy IHNnIHNlcwpzY3NpX3RyYW5zcG9ydF9zYXMgZW5jbG9zdXJlIGV4dDQgamJkMiBtYmNhY2hlIHNk X21vZCBhaGNpIGxpYmFoY2kgbWVnYXJhaWRfc2FzCndtaSBhc3QgdHRtIGRtX21pcnJvciBkbV9y ZWdpb25faGFzaCBkbV9sb2cgZG1fbW9kIGRheApDUFU6IDYgUElEOiAxNDE1NiBDb21tOiBbRVRf TkVUIDZdIFRhaW50ZWQ6IEcgRCA0LjE0LjI2LTEuZWw2Lng4Nl82NCAjMQpIYXJkd2FyZSBuYW1l OiBMRU5PVk8gVGhpbmtTZXJ2ZXIgUkQ0NDAgL1RoaW5rU2VydmVyIFJENDQwLCBCSU9TIEEwVFM4 MEEKMDkvMjIvMjAxNAp0YXNrOiBmZmZmODgwN2Q3OGQ4MTQwIHRhc2suc3RhY2s6IGZmZmZjOTAw MGU5NDQwMDAKUklQOiAwMDEwOnRjcF9wdXNoKzB4NDgvMHgxMjAKUlNQOiAwMDE4OmZmZmZjOTAw MGU5NDdhODggRUZMQUdTOiAwMDAxMDI0NgpSQVg6IDAwMDAwMDAwMDAwMDA1YjQgUkJYOiBmZmZm ODgwZjdjY2U5YzAwIFJDWDogMDAwMDAwMDAwMDAwMDAwMApSRFg6IDAwMDAwMDAwMDAwMDAwMDAg UlNJOiAwMDAwMDAwMDAwMDAwMDQwIFJESTogZmZmZjg4MDdkMDBmNTAwMApSQlA6IGZmZmZjOTAw MGU5NDdhYTggUjA4OiAwMDAwMDAwMDAwMDAxYzg0IFIwOTogMDAwMDAwMDAwMDAwMDAwMApSMTA6 IGZmZmY4ODA3ZDAwZjUxNTggUjExOiAwMDAwMDAwMDAwMDAwMDAwIFIxMjogZmZmZjg4MDdkMDBm NTAwMApSMTM6IDAwMDAwMDAwMDAwMDAwMjAgUjE0OiAwMDAwMDAwMDAwMDI1NmQ0IFIxNTogMDAw MDAwMDAwMDAwMDAwMApGUzogMDAwMDdmNTkxNmRlOTcwMCgwMDAwKSBHUzpmZmZmODgxMDdmZDAw MDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKQ1M6IDAwMTAgRFM6IDAwMDAgRVM6IDAw MDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCkNSMjogMDAwMDAwMDAwMDAwMDAzOCBDUjM6IDAwMDAw MDA3ZjgyMjYwMDQgQ1I0OiAwMDAwMDAwMDAwMTYwNmUwCkNhbGwgVHJhY2U6CnRjcF9zZW5kbXNn X2xvY2tlZCsweDMzZC8weGU1MAp0Y3Bfc2VuZG1zZysweDM3LzB4NjAKaW5ldF9zZW5kbXNnKzB4 MzkvMHhjMApzb2NrX3NlbmRtc2crMHg0OS8weDYwCnNvY2tfd3JpdGVfaXRlcisweGI2LzB4MTAw CmRvX2l0ZXJfcmVhZHZfd3JpdGV2KzB4ZWMvMHgxMzAKPyByd192ZXJpZnlfYXJlYSsweDQ5LzB4 YjAKZG9faXRlcl93cml0ZSsweDk3LzB4ZDAKdmZzX3dyaXRldisweDdlLzB4ZTAKPyBfX3dha2Vf dXBfY29tbW9uX2xvY2srMHg4MC8weGEwCj8gX19mZ2V0X2xpZ2h0KzB4MmMvMHg3MAo/IF9fZG9f cGFnZV9mYXVsdCsweDFlNy8weDUzMApkb193cml0ZXYrMHg2MC8weGYwCj8gaW5ldF9zaHV0ZG93 bisweGFjLzB4MTEwClN5U193cml0ZXYrMHgxMC8weDIwCmRvX3N5c2NhbGxfNjQrMHg2Zi8weDE0 MAo/IHByZXBhcmVfZXhpdF90b191c2VybW9kZSsweDhiLzB4YTAKZW50cnlfU1lTQ0FMTF82NF9h ZnRlcl9od2ZyYW1lKzB4M2QvMHhhMgpSSVA6IDAwMzM6MHgzMTM1Y2UwYzU3ClJTUDogMDAyYjow MDAwN2Y1OTE2ZGU0YjAwIEVGTEFHUzogMDAwMDAyOTMgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAw MTQKUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMDAwMDAwMCBSQ1g6IDAwMDAw MDMxMzVjZTBjNTcKUkRYOiAwMDAwMDAwMDAwMDAwMDAyIFJTSTogMDAwMDdmNTkxNmRlNGI5MCBS REk6IDAwMDAwMDAwMDAwMDYwNmYKUkJQOiAwMDAwMDAwMDAwMDAwMDAwIFIwODogMDAwMDAwMDAw MDAwMDAwMCBSMDk6IDAwMDA3ZjU5MTZkZThjMzgKUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTog MDAwMDAwMDAwMDAwMDI5MyBSMTI6IDAwMDAwMDAwMDAwNDY0Y2MKUjEzOiAwMDAwN2Y1OTE2ZGU4 YzMwIFIxNDogMDAwMDdmNThkOGJlZjA4MCBSMTU6IDAwMDAwMDAwMDAwMDAwMDIKQ29kZTogNDgg OGIgOTcgNjAgMDEgMDAgMDAgNGMgOGQgOTcgNTggMDEgMDAgMDAgNDEgYjkgMDAgMDAgMDAgMDAg NDEgODkgZjMgNGMgMzkKZDIgNDkgMGYgNDQgZDEgNDEgODEgZTMgMDAgODAgMDAgMDAgMGYgODUg YjAgMDAgMDAgMDAgPDgwPiA0YSAzOCAwOCA0NCA4YiA4ZiA3NAowNiAwMCAwMCA0NCA4OSA4ZiA3 YyAwNiAwMCAwMCA4MyBlNiAwMQpSSVA6IHRjcF9wdXNoKzB4NDgvMHgxMjAgUlNQOiBmZmZmYzkw MDBlOTQ3YTg4CkNSMjogMDAwMDAwMDAwMDAwMDAzOAotLS1bIGVuZCB0cmFjZSA4ZDU0NWMyZTkz NTE1NTQ5IF0tLS0KCkZpeGVzOiBhMjdmaWQ3YThlZDM4ICh0Y3A6IHB1cmdlIHdyaXRlIHF1ZXVl IHVwb24gUlNUKQpSZXBvcnRlZC1ieTogVGltb2ZleSBUaXRvdmV0cyA8bmVmZWxpbTRhZ0BnbWFp bC5jb20+ClJlcG9ydGVkLWJ5OiBZb25namlhbiBYdSA8eW9uZ2ppYW5jaG5AZ21haWwuY29tPgpT aWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1v ZmYtYnk6IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+ClRlc3RlZC1i eTogWW9uZ2ppYW4gWHUgPHlvbmdqaWFuY2huQGdtYWlsLmNvbT4KClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC90Y3Au aCB8IDExICsrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA1IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3RjcC5oIGIvaW5jbHVkZS9uZXQv dGNwLmgKaW5kZXggMGExMzU3NDEzNGI4Li5kMzIzZDRmYTc0MmMgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvbmV0L3RjcC5oCisrKyBiL2luY2x1ZGUvbmV0L3RjcC5oCkBAIC0xNjAwLDYgKzE2MDAsMTEg QEAgZW51bSB0Y3BfY2hyb25vIHsKIHZvaWQgdGNwX2Nocm9ub19zdGFydChzdHJ1Y3Qgc29jayAq c2ssIGNvbnN0IGVudW0gdGNwX2Nocm9ubyB0eXBlKTsKIHZvaWQgdGNwX2Nocm9ub19zdG9wKHN0 cnVjdCBzb2NrICpzaywgY29uc3QgZW51bSB0Y3BfY2hyb25vIHR5cGUpOwogCitzdGF0aWMgaW5s aW5lIHZvaWQgdGNwX2luaXRfc2VuZF9oZWFkKHN0cnVjdCBzb2NrICpzaykKK3sKKwlzay0+c2tf c2VuZF9oZWFkID0gTlVMTDsKK30KKwogLyogd3JpdGUgcXVldWUgYWJzdHJhY3Rpb24gKi8KIHN0 YXRpYyBpbmxpbmUgdm9pZCB0Y3Bfd3JpdGVfcXVldWVfcHVyZ2Uoc3RydWN0IHNvY2sgKnNrKQog ewpAQCAtMTYxMCw2ICsxNjE1LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHRjcF93cml0ZV9xdWV1 ZV9wdXJnZShzdHJ1Y3Qgc29jayAqc2spCiAJCXNrX3dtZW1fZnJlZV9za2Ioc2ssIHNrYik7CiAJ c2tfbWVtX3JlY2xhaW0oc2spOwogCXRjcF9jbGVhcl9hbGxfcmV0cmFuc19oaW50cyh0Y3Bfc2so c2spKTsKKwl0Y3BfaW5pdF9zZW5kX2hlYWQoc2spOwogfQogCiBzdGF0aWMgaW5saW5lIHN0cnVj dCBza19idWZmICp0Y3Bfd3JpdGVfcXVldWVfaGVhZChjb25zdCBzdHJ1Y3Qgc29jayAqc2spCkBA IC0xNjcyLDExICsxNjc4LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIHRjcF9jaGVja19zZW5kX2hl YWQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiX3VubGkKIAkJdGNwX3NrKHNr KS0+aGlnaGVzdF9zYWNrID0gTlVMTDsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHRjcF9pbml0 X3NlbmRfaGVhZChzdHJ1Y3Qgc29jayAqc2spCi17Ci0Jc2stPnNrX3NlbmRfaGVhZCA9IE5VTEw7 Ci19Ci0KIHN0YXRpYyBpbmxpbmUgdm9pZCBfX3RjcF9hZGRfd3JpdGVfcXVldWVfdGFpbChzdHJ1 Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJX19za2JfcXVldWVfdGFpbCgm c2stPnNrX3dyaXRlX3F1ZXVlLCBza2IpOwotLSAKMi4xNC4zCgoKRnJvbSA4NmQ1NTIzYTA5YzYw NmEyODk4NWExYmI1NjVjNzRhMmUyNmIwN2U5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVpbEBnb29nbGUuY29tPgpEYXRlOiBUdWUsIDYg TWFyIDIwMTggMTc6MTU6MTIgLTA1MDAKU3ViamVjdDogW1BBVENIIDAyLzQzXSB0Y3A6IHB1cmdl IHdyaXRlIHF1ZXVlIHVwb24gYWJvcnRpbmcgdGhlIGNvbm5lY3Rpb24KClsgVXBzdHJlYW0gY29t bWl0IGUwNTgzNmFjMDdjNzdkZDkwMzc3ZjhjODE0MGJjZTJhNDRhZjVmZTcgXQoKV2hlbiB0aGUg Y29ubmVjdGlvbiBpcyBhYm9ydGVkLCB0aGVyZSBpcyBubyBwb2ludCBpbgprZWVwaW5nIHRoZSBw YWNrZXRzIG9uIHRoZSB3cml0ZSBxdWV1ZSB1bnRpbCB0aGUgY29ubmVjdGlvbgppcyBjbG9zZWQu CgpTaW1pbGFyIHRvIGEyN2ZkN2E4ZWQzOCAoJ3RjcDogcHVyZ2Ugd3JpdGUgcXVldWUgdXBvbiBS U1QnKSwKdGhpcyBpcyBlc3NlbnRpYWwgZm9yIGEgY29ycmVjdCBNU0dfWkVST0NPUFkgaW1wbGVt ZW50YXRpb24sCmJlY2F1c2UgdXNlcnNwYWNlIGNhbm5vdCBjYWxsIGNsb3NlKGZkKSBiZWZvcmUg cmVjZWl2aW5nCnplcm9jb3B5IHNpZ25hbHMgZXZlbiB3aGVuIHRoZSBjb25uZWN0aW9uIGlzIGFi b3J0ZWQuCgpGaXhlczogZjIxNGY5MTVlN2RiICgidGNwOiBlbmFibGUgTVNHX1pFUk9DT1BZIikK U2lnbmVkLW9mZi1ieTogU29oZWlsIEhhc3NhcyBZZWdhbmVoIDxzb2hlaWxAZ29vZ2xlLmNvbT4K U2lnbmVkLW9mZi1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+ClJldmll d2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6 IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwLmMgICAgICAg fCAxICsKIG5ldC9pcHY0L3RjcF90aW1lci5jIHwgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcC5jIGIvbmV0L2lwdjQvdGNwLmMK aW5kZXggZmUxMTEyOGQ3ZGY0Li4zOGI5YTYyNzZhOWQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3Rj cC5jCisrKyBiL25ldC9pcHY0L3RjcC5jCkBAIC0zNDQ1LDYgKzM0NDUsNyBAQCBpbnQgdGNwX2Fi b3J0KHN0cnVjdCBzb2NrICpzaywgaW50IGVycikKIAogCWJoX3VubG9ja19zb2NrKHNrKTsKIAls b2NhbF9iaF9lbmFibGUoKTsKKwl0Y3Bfd3JpdGVfcXVldWVfcHVyZ2Uoc2spOwogCXJlbGVhc2Vf c29jayhzayk7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfdGltZXIu YyBiL25ldC9pcHY0L3RjcF90aW1lci5jCmluZGV4IDE0YWM3ZGY5NTM4MC4uYTg0NWI3NjkyYzFi IDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfdGltZXIuYworKysgYi9uZXQvaXB2NC90Y3BfdGlt ZXIuYwpAQCAtMzYsNiArMzYsNyBAQCBzdGF0aWMgdm9pZCB0Y3Bfd3JpdGVfZXJyKHN0cnVjdCBz b2NrICpzaykKIAlzay0+c2tfZXJyID0gc2stPnNrX2Vycl9zb2Z0ID8gOiBFVElNRURPVVQ7CiAJ c2stPnNrX2Vycm9yX3JlcG9ydChzayk7CiAKKwl0Y3Bfd3JpdGVfcXVldWVfcHVyZ2Uoc2spOwog CXRjcF9kb25lKHNrKTsKIAlfX05FVF9JTkNfU1RBVFMoc29ja19uZXQoc2spLCBMSU5VWF9NSUJf VENQQUJPUlRPTlRJTUVPVVQpOwogfQotLSAKMi4xNC4zCgoKRnJvbSBhMTk2MGI4ZmMzODk2M2Q5 YzIxOTA2ZTU4YjYyMWJkMTk4MmZkODExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBN aWNoYWwgS2FsZGVyb24gPE1pY2hhbC5LYWxkZXJvbkBjYXZpdW0uY29tPgpEYXRlOiBXZWQsIDE0 IE1hciAyMDE4IDE0OjQ5OjI4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMy80M10gcWVkOiBGaXgg bm9uIFRDUCBwYWNrZXRzIHNob3VsZCBiZSBkcm9wcGVkIG9uIGlXQVJQIGxsMgogY29ubmVjdGlv bgoKWyBVcHN0cmVhbSBjb21taXQgMTZkYTA5MDQ3ZDNmYjk5MWRjNDhhZjQxZjZkMjU1ZmQ1Nzhl OGNhMiBdCgpGVyB3b3JrYXJvdW5kLiBUaGUgaVdBUlAgTEwyIGNvbm5lY3Rpb24gZGlkIG5vdCBl eHBlY3QgVENQIHBhY2tldHMKdG8gYXJyaXZlIG9uIGl0J3MgY29ubmVjdGlvbi4gVGhlIGZpeCBk cm9wcyBhbnkgbm9uLXRjcCBwYWNrZXRzCgpGaXhlcyBiNWMyOWNhICgicWVkOiBpV0FSUCBDTSAt IHNldHVwIGEgbGwyIGNvbm5lY3Rpb24gZm9yIGhhbmRsaW5nClNZTiBwYWNrZXRzIikKClNpZ25l ZC1vZmYtYnk6IE1pY2hhbCBLYWxkZXJvbiA8TWljaGFsLkthbGRlcm9uQGNhdml1bS5jb20+ClNp Z25lZC1vZmYtYnk6IEFyaWVsIEVsaW9yIDxBcmllbC5FbGlvckBjYXZpdW0uY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZC9xZWRfaXdhcnAuYyB8IDE1ICsrKysrKysrKysrKysr KwogMSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9xbG9naWMvcWVkL3FlZF9pd2FycC5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvcWxvZ2ljL3FlZC9xZWRfaXdhcnAuYwppbmRleCA5ZDk4OWM5NjI3OGMuLmU0MWYyODYwMjUz NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZC9xZWRfaXdhcnAu YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkL3FlZF9pd2FycC5jCkBAIC0x NjYzLDYgKzE2NjMsMTMgQEAgcWVkX2l3YXJwX3BhcnNlX3J4X3BrdChzdHJ1Y3QgcWVkX2h3Zm4g KnBfaHdmbiwKIAlpcGggPSAoc3RydWN0IGlwaGRyICopKCh1OCAqKShldGhoKSArIGV0aF9obGVu KTsKIAogCWlmIChldGhfdHlwZSA9PSBFVEhfUF9JUCkgeworCQlpZiAoaXBoLT5wcm90b2NvbCAh PSBJUFBST1RPX1RDUCkgeworCQkJRFBfTk9USUNFKHBfaHdmbiwKKwkJCQkgICJVbmV4cGVjdGVk IGlwIHByb3RvY29sIG9uIGxsMiAleFxuIiwKKwkJCQkgIGlwaC0+cHJvdG9jb2wpOworCQkJcmV0 dXJuIC1FSU5WQUw7CisJCX0KKwogCQljbV9pbmZvLT5sb2NhbF9pcFswXSA9IG50b2hsKGlwaC0+ ZGFkZHIpOwogCQljbV9pbmZvLT5yZW1vdGVfaXBbMF0gPSBudG9obChpcGgtPnNhZGRyKTsKIAkJ Y21faW5mby0+aXBfdmVyc2lvbiA9IFRDUF9JUFY0OwpAQCAtMTY3MSw2ICsxNjc4LDE0IEBAIHFl ZF9pd2FycF9wYXJzZV9yeF9wa3Qoc3RydWN0IHFlZF9od2ZuICpwX2h3Zm4sCiAJCSpwYXlsb2Fk X2xlbiA9IG50b2hzKGlwaC0+dG90X2xlbikgLSBpcF9obGVuOwogCX0gZWxzZSBpZiAoZXRoX3R5 cGUgPT0gRVRIX1BfSVBWNikgewogCQlpcDZoID0gKHN0cnVjdCBpcHY2aGRyICopaXBoOworCisJ CWlmIChpcDZoLT5uZXh0aGRyICE9IElQUFJPVE9fVENQKSB7CisJCQlEUF9OT1RJQ0UocF9od2Zu LAorCQkJCSAgIlVuZXhwZWN0ZWQgaXAgcHJvdG9jb2wgb24gbGwyICV4XG4iLAorCQkJCSAgaXBo LT5wcm90b2NvbCk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCiAJCWZvciAoaSA9IDA7IGkg PCA0OyBpKyspIHsKIAkJCWNtX2luZm8tPmxvY2FsX2lwW2ldID0KIAkJCSAgICBudG9obChpcDZo LT5kYWRkci5pbjZfdS51Nl9hZGRyMzJbaV0pOwotLSAKMi4xNC4zCgoKRnJvbSA3NTViNThlZjJj NDMwYTkxZWQ5ZDI5MDY4ZTAzZjFjNWM5ZWRiMzdhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBHcnlnb3JpaSBTdHJhc2hrbyA8Z3J5Z29yaWkuc3RyYXNoa29AdGkuY29tPgpEYXRlOiBG cmksIDE2IE1hciAyMDE4IDE3OjA4OjM0IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAwNC80M10gc3lz ZnM6IHN5bWxpbms6IGV4cG9ydCBzeXNmc19jcmVhdGVfbGlua19ub3dhcm4oKQoKWyBVcHN0cmVh bSBjb21taXQgMjM5OWFjNDJlNzYyYWIyNWM1ODQyMGUyNTM1OWIyOTIxYWZkYzU1ZiBdCgpUaGUg c3lzZnNfY3JlYXRlX2xpbmtfbm93YXJuKCkgaXMgZ29pbmcgdG8gYmUgdXNlZCBpbiBwaHlsaWIg ZnJhbWV3b3JrIGluCnN1YnNlcXVlbnQgcGF0Y2ggd2hpY2ggY2FuIGJlIGJ1aWx0IGFzIG1vZHVs ZS4gSGVuY2UsIGV4cG9ydApzeXNmc19jcmVhdGVfbGlua19ub3dhcm4oKSB0byBhdm9pZCBidWls ZCBlcnJvcnMuCgpDYzogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+CkNj OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+CkZpeGVzOiBhMzk5NTQ2MDQ5MWQgKCJuZXQ6 IHBoeTogUmVsYXggZXJyb3IgY2hlY2tpbmcgb24gc3lzZnNfY3JlYXRlX2xpbmsoKSIpClNpZ25l ZC1vZmYtYnk6IEdyeWdvcmlpIFN0cmFzaGtvIDxncnlnb3JpaS5zdHJhc2hrb0B0aS5jb20+CkFj a2VkLWJ5OiBHcmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdraEBsaW51eGZvdW5kYXRpb24ub3JnPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZnMvc3lzZnMvc3ltbGluay5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykK CmRpZmYgLS1naXQgYS9mcy9zeXNmcy9zeW1saW5rLmMgYi9mcy9zeXNmcy9zeW1saW5rLmMKaW5k ZXggYWVjYjE1Zjg0NTU3Li44MDhmMDE4ZmE5NzYgMTAwNjQ0Ci0tLSBhL2ZzL3N5c2ZzL3N5bWxp bmsuYworKysgYi9mcy9zeXNmcy9zeW1saW5rLmMKQEAgLTEwNyw2ICsxMDcsNyBAQCBpbnQgc3lz ZnNfY3JlYXRlX2xpbmtfbm93YXJuKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3Qga29iamVj dCAqdGFyZ2V0LAogewogCXJldHVybiBzeXNmc19kb19jcmVhdGVfbGluayhrb2JqLCB0YXJnZXQs IG5hbWUsIDApOwogfQorRVhQT1JUX1NZTUJPTF9HUEwoc3lzZnNfY3JlYXRlX2xpbmtfbm93YXJu KTsKIAogLyoqCiAgKglzeXNmc19kZWxldGVfbGluayAtIHJlbW92ZSBzeW1saW5rIGluIG9iamVj dCdzIGRpcmVjdG9yeS4KLS0gCjIuMTQuMwoKCkZyb20gOTBkOGIwMjVmNTZmNjg0Nzk4N2UxZmZm ZTc2NGI1NjA0MjY5OTE5MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR3J5Z29yaWkg U3RyYXNoa28gPGdyeWdvcmlpLnN0cmFzaGtvQHRpLmNvbT4KRGF0ZTogRnJpLCAxNiBNYXIgMjAx OCAxNzowODozNSAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMDUvNDNdIG5ldDogcGh5OiByZWxheCBl cnJvciBjaGVja2luZyB3aGVuIGNyZWF0aW5nIHN5c2ZzIGxpbmsKIG5ldGRldi0+cGh5ZGV2Cgpb IFVwc3RyZWFtIGNvbW1pdCA0NDE0YjNlZDc0YmUwZTIwNWUwNGUxMmNkODM1NDJhNzI3ZDg4MjU1 IF0KClNvbWUgZXRoZXJuZXQgZHJpdmVycyAobGlrZSBUSSBDUFNXKSBtYXkgY29ubmVjdCBhbmQg bWFuYWdlID4xIE5ldCBQSFlzIHBlcgpvbmUgbmV0ZGV2aWNlLCBhcyByZXN1bHQgc3VjaCBkcml2 ZXJzIHdpbGwgcHJvZHVjZSB3YXJuaW5nIGR1cmluZyBzeXN0ZW0KYm9vdCBhbmQgZmFpbCB0byBj b25uZWN0IHNlY29uZCBwaHkgdG8gbmV0ZGV2aWNlIHdoZW4gUEhZTElCIGZyYW1ld29yawp3aWxs IHRyeSB0byBjcmVhdGUgc3lzZnMgbGluayBuZXRkZXYtPnBoeWRldiBmb3Igc2Vjb25kIFBIWQpp biBwaHlfYXR0YWNoX2RpcmVjdCgpLCBiZWNhdXNlIHN5c2ZzIGxpbmsgd2l0aCB0aGUgc2FtZSBu YW1lIGhhcyBiZWVuCmNyZWF0ZWQgYWxyZWFkeSBmb3IgdGhlIGZpcnN0IFBIWS4gQXMgcmVzdWx0 LCBzZWNvbmQgQ1BTVyBleHRlcm5hbApwb3J0IHdpbGwgYmVjYW1lIHVudXNhYmxlLgoKRml4IGl0 IGJ5IHJlbGF4aW5nIGVycm9yIGNoZWNraW5nIHdoZW4gUEhZTElCIGZyYW1ld29yayBpcyBjcmVh dGluZyBzeXNmcwpsaW5rIG5ldGRldi0+cGh5ZGV2IGluIHBoeV9hdHRhY2hfZGlyZWN0KCksIHN1 cHByZXNzaW5nIHdhcm5pbmcgYnkgdXNpbmcKc3lzZnNfY3JlYXRlX2xpbmtfbm93YXJuKCkgYW5k IGFkZGluZyBlcnJvciBtZXNzYWdlIGluc3RlYWQuCkFmdGVyIHRoaXMgY2hhbmdlIGxpbmtzIChw aHktPm5ldGRldiBhbmQgbmV0ZGV2LT5waHkpIGNyZWF0aW9uIGZhaWx1cmUgaXMgbm90CmZhdGFs IGFueSBtb3JlIGFuZCBzeXN0ZW0gY2FuIGNvbnRpbnVlIHdvcmtpbmcsIHdoaWNoIGZpeGVzIFRJ IENQU1cgaXNzdWUuCgpDYzogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+ CkNjOiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+CkZpeGVzOiBhMzk5NTQ2MDQ5MWQgKCJu ZXQ6IHBoeTogUmVsYXggZXJyb3IgY2hlY2tpbmcgb24gc3lzZnNfY3JlYXRlX2xpbmsoKSIpClNp Z25lZC1vZmYtYnk6IEdyeWdvcmlpIFN0cmFzaGtvIDxncnlnb3JpaS5zdHJhc2hrb0B0aS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBkcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jIHwgMTUgKysrKysrKysrKystLS0tCiAxIGZp bGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jIGIvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZp Y2UuYwppbmRleCBkMzEyYjMxNDgyNWUuLmExZTdlYTRkNGIxNiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvcGh5L3BoeV9kZXZpY2UuYworKysgYi9kcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5j CkBAIC05OTksMTAgKzk5OSwxNyBAQCBpbnQgcGh5X2F0dGFjaF9kaXJlY3Qoc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwgc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwKIAllcnIgPSBzeXNmc19jcmVh dGVfbGluaygmcGh5ZGV2LT5tZGlvLmRldi5rb2JqLCAmZGV2LT5kZXYua29iaiwKIAkJCQkiYXR0 YWNoZWRfZGV2Iik7CiAJaWYgKCFlcnIpIHsKLQkJZXJyID0gc3lzZnNfY3JlYXRlX2xpbmsoJmRl di0+ZGV2LmtvYmosICZwaHlkZXYtPm1kaW8uZGV2LmtvYmosCi0JCQkJCSJwaHlkZXYiKTsKLQkJ aWYgKGVycikKLQkJCWdvdG8gZXJyb3I7CisJCWVyciA9IHN5c2ZzX2NyZWF0ZV9saW5rX25vd2Fy bigmZGV2LT5kZXYua29iaiwKKwkJCQkJICAgICAgICZwaHlkZXYtPm1kaW8uZGV2LmtvYmosCisJ CQkJCSAgICAgICAicGh5ZGV2Iik7CisJCWlmIChlcnIpIHsKKwkJCWRldl9lcnIoJmRldi0+ZGV2 LCAiY291bGQgbm90IGFkZCBkZXZpY2UgbGluayB0byAlcyBlcnIgJWRcbiIsCisJCQkJa29iamVj dF9uYW1lKCZwaHlkZXYtPm1kaW8uZGV2LmtvYmopLAorCQkJCWVycik7CisJCQkvKiBub24tZmF0 YWwgLSBzb21lIG5ldCBkcml2ZXJzIGNhbiB1c2Ugb25lIG5ldGRldmljZQorCQkJICogd2l0aCBt b3JlIHRoZW4gb25lIHBoeQorCQkJICovCisJCX0KIAogCQlwaHlkZXYtPnN5c2ZzX2xpbmtzID0g dHJ1ZTsKIAl9Ci0tIAoyLjE0LjMKCgpGcm9tIDExYTJkYmQ0ODM3MTFiOGMwYmJkMjk5M2Y1NDBl Y2JhYmU5ZTYxNjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFya2FkaSBTaGFyc2hl dnNreSA8YXJrYWRpc0BtZWxsYW5veC5jb20+CkRhdGU6IFN1biwgMTggTWFyIDIwMTggMTc6Mzc6 MjIgKzAyMDAKU3ViamVjdDogW1BBVENIIDA2LzQzXSBkZXZsaW5rOiBSZW1vdmUgcmVkdW5kYW50 IGZyZWUgb24gZXJyb3IgcGF0aAoKWyBVcHN0cmVhbSBjb21taXQgN2ZlNGQ2ZGNiY2I0M2ZlMDI4 MmQ0MjEzZmM1MmJlMTc4YmIzMGU5MSBdCgpUaGUgY3VycmVudCBjb2RlIHBlcmZvcm1zIHVubmVl ZGVkIGZyZWUuIFJlbW92ZSB0aGUgcmVkdW5kYW50IHNrYiBmcmVlaW5nCmR1cmluZyB0aGUgZXJy b3IgcGF0aC4KCkZpeGVzOiAxNTU1ZDIwNGU3NDMgKCJkZXZsaW5rOiBTdXBwb3J0IGZvciBwaXBl bGluZSBkZWJ1ZyAoZHBpcGUpIikKU2lnbmVkLW9mZi1ieTogQXJrYWRpIFNoYXJzaGV2c2t5IDxh cmthZGlzQG1lbGxhbm94LmNvbT4KQWNrZWQtYnk6IEppcmkgUGlya28gPGppcmlAbWVsbGFub3gu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L2NvcmUvZGV2bGluay5jIHwgMTYgKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L2NvcmUvZGV2bGluay5jIGIvbmV0L2NvcmUvZGV2bGluay5jCmluZGV4IDdkNDMwYzFkOWMzZS4u NWJhOTczMzExMDI1IDEwMDY0NAotLS0gYS9uZXQvY29yZS9kZXZsaW5rLmMKKysrIGIvbmV0L2Nv cmUvZGV2bGluay5jCkBAIC0xNzc2LDcgKzE3NzYsNyBAQCBzdGF0aWMgaW50IGRldmxpbmtfZHBp cGVfdGFibGVzX2ZpbGwoc3RydWN0IGdlbmxfaW5mbyAqaW5mbywKIAlpZiAoIW5saCkgewogCQll cnIgPSBkZXZsaW5rX2RwaXBlX3NlbmRfYW5kX2FsbG9jX3NrYigmc2tiLCBpbmZvKTsKIAkJaWYg KGVycikKLQkJCWdvdG8gZXJyX3NrYl9zZW5kX2FsbG9jOworCQkJcmV0dXJuIGVycjsKIAkJZ290 byBzZW5kX2RvbmU7CiAJfQogCkBAIC0xNzg1LDcgKzE3ODUsNiBAQCBzdGF0aWMgaW50IGRldmxp bmtfZHBpcGVfdGFibGVzX2ZpbGwoc3RydWN0IGdlbmxfaW5mbyAqaW5mbywKIG5sYV9wdXRfZmFp bHVyZToKIAllcnIgPSAtRU1TR1NJWkU7CiBlcnJfdGFibGVfcHV0OgotZXJyX3NrYl9zZW5kX2Fs bG9jOgogCWdlbmxtc2dfY2FuY2VsKHNrYiwgaGRyKTsKIAlubG1zZ19mcmVlKHNrYik7CiAJcmV0 dXJuIGVycjsKQEAgLTIwNTEsNyArMjA1MCw3IEBAIHN0YXRpYyBpbnQgZGV2bGlua19kcGlwZV9l bnRyaWVzX2ZpbGwoc3RydWN0IGdlbmxfaW5mbyAqaW5mbywKIAkJCQkJICAgICB0YWJsZS0+Y291 bnRlcnNfZW5hYmxlZCwKIAkJCQkJICAgICAmZHVtcF9jdHgpOwogCWlmIChlcnIpCi0JCWdvdG8g ZXJyX2VudHJpZXNfZHVtcDsKKwkJcmV0dXJuIGVycjsKIAogc2VuZF9kb25lOgogCW5saCA9IG5s bXNnX3B1dChkdW1wX2N0eC5za2IsIGluZm8tPnNuZF9wb3J0aWQsIGluZm8tPnNuZF9zZXEsCkBA IC0yMDU5LDE2ICsyMDU4LDEwIEBAIHN0YXRpYyBpbnQgZGV2bGlua19kcGlwZV9lbnRyaWVzX2Zp bGwoc3RydWN0IGdlbmxfaW5mbyAqaW5mbywKIAlpZiAoIW5saCkgewogCQllcnIgPSBkZXZsaW5r X2RwaXBlX3NlbmRfYW5kX2FsbG9jX3NrYigmZHVtcF9jdHguc2tiLCBpbmZvKTsKIAkJaWYgKGVy cikKLQkJCWdvdG8gZXJyX3NrYl9zZW5kX2FsbG9jOworCQkJcmV0dXJuIGVycjsKIAkJZ290byBz ZW5kX2RvbmU7CiAJfQogCXJldHVybiBnZW5sbXNnX3JlcGx5KGR1bXBfY3R4LnNrYiwgaW5mbyk7 Ci0KLWVycl9lbnRyaWVzX2R1bXA6Ci1lcnJfc2tiX3NlbmRfYWxsb2M6Ci0JZ2VubG1zZ19jYW5j ZWwoZHVtcF9jdHguc2tiLCBkdW1wX2N0eC5oZHIpOwotCW5sbXNnX2ZyZWUoZHVtcF9jdHguc2ti KTsKLQlyZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgaW50IGRldmxpbmtfbmxfY21kX2RwaXBlX2Vu dHJpZXNfZ2V0KHN0cnVjdCBza19idWZmICpza2IsCkBAIC0yMjA3LDcgKzIyMDAsNyBAQCBzdGF0 aWMgaW50IGRldmxpbmtfZHBpcGVfaGVhZGVyc19maWxsKHN0cnVjdCBnZW5sX2luZm8gKmluZm8s CiAJaWYgKCFubGgpIHsKIAkJZXJyID0gZGV2bGlua19kcGlwZV9zZW5kX2FuZF9hbGxvY19za2Io JnNrYiwgaW5mbyk7CiAJCWlmIChlcnIpCi0JCQlnb3RvIGVycl9za2Jfc2VuZF9hbGxvYzsKKwkJ CXJldHVybiBlcnI7CiAJCWdvdG8gc2VuZF9kb25lOwogCX0KIAlyZXR1cm4gZ2VubG1zZ19yZXBs eShza2IsIGluZm8pOwpAQCAtMjIxNSw3ICsyMjA4LDYgQEAgc3RhdGljIGludCBkZXZsaW5rX2Rw aXBlX2hlYWRlcnNfZmlsbChzdHJ1Y3QgZ2VubF9pbmZvICppbmZvLAogbmxhX3B1dF9mYWlsdXJl OgogCWVyciA9IC1FTVNHU0laRTsKIGVycl90YWJsZV9wdXQ6Ci1lcnJfc2tiX3NlbmRfYWxsb2M6 CiAJZ2VubG1zZ19jYW5jZWwoc2tiLCBoZHIpOwogCW5sbXNnX2ZyZWUoc2tiKTsKIAlyZXR1cm4g ZXJyOwotLSAKMi4xNC4zCgoKRnJvbSBhNmRlMWI5MTNmYjIxZjk1MGQ4NjY0OTRiZjY2YmVlMDAy NTBhNzg2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTaGFubm9uIE5lbHNvbiA8c2hh bm5vbi5uZWxzb25Ab3JhY2xlLmNvbT4KRGF0ZTogVGh1LCA4IE1hciAyMDE4IDE2OjE3OjIzIC0w ODAwClN1YmplY3Q6IFtQQVRDSCAwNy80M10gbWFjdmxhbjogZmlsdGVyIG91dCB1bnN1cHBvcnRl ZCBmZWF0dXJlIGZsYWdzCgpbIFVwc3RyZWFtIGNvbW1pdCAxM2ZiY2M4ZGM1NzM0ODJkZDNmMjc1 NjgyNTdmZDcwODdmODkzNWY0IF0KCkFkZGluZyBhIG1hY3ZsYW4gZGV2aWNlIG9uIHRvcCBvZiBh IGxvd2VyZGV2IHRoYXQgc3VwcG9ydHMKdGhlIHhmcm0gb2ZmbG9hZHMgZmFpbHMgd2l0aCBhIG5l dyByZWdyZXNzaW9uOgogICMgaXAgbGluayBhZGQgbGluayBlbnMxZjAgbXYwIHR5cGUgbWFjdmxh bgogIFJUTkVUTElOSyBhbnN3ZXJzOiBPcGVyYXRpb24gbm90IHBlcm1pdHRlZAoKVHJhY2luZyBk b3duIHRoZSBmYWlsdXJlIHNob3dzIHRoYXQgdGhlIG1hY3ZsYW4gZGV2aWNlIGluaGVyaXRzCnRo ZSBORVRJRl9GX0hXX0VTUCBhbmQgTkVUSUZfRl9IV19FU1BfVFhfQ1NVTSBmZWF0dXJlIGZsYWdz CmZyb20gdGhlIGxvd2VyZGV2LCBidXQgd2l0aCBubyBkZXYtPnhmcm1kZXZfb3BzIEFQSSBmaWxs ZWQKaW4sIGl0IGRvZXNuJ3QgYWN0dWFsbHkgc3VwcG9ydCB4ZnJtLiAgV2hlbiB0aGUgcmVxdWVz dCBpcwptYWRlIHRvIGFkZCB0aGUgbmV3IG1hY3ZsYW4gZGV2aWNlLCB0aGUgWEZSTSBsaXN0ZW5l ciBmb3IKTkVUREVWX1JFR0lTVEVSIGNhbGxzIHhmcm1fYXBpX2NoZWNrKCkgd2hpY2ggZmFpbHMg dGhlIG5ldwpyZWdpc3RyYXRpb24gYmVjYXVzZSBkZXYtPnhmcm1kZXZfb3BzIGlzIE5VTEwuCgpU aGUgbWFjdmxhbiBjcmVhdGlvbiBzdWNjZWVkcyB3aGVuIHdlIGZpbHRlciBvdXQgdGhlIEVTUApm ZWF0dXJlIGZsYWdzIGluIG1hY3ZsYW5fZml4X2ZlYXR1cmVzKCksIHNvIGxldCdzIGZpbHRlciB0 aGVtCm91dCBsaWtlIHdlJ3JlIGFscmVhZHkgZmlsdGVyaW5nIG91dCB+TkVUSUZfRl9ORVROU19M T0NBTC4KV2hlbiBYRlJNIHN1cHBvcnQgaXMgYWRkZWQgaW4gdGhlIGZ1dHVyZSwgd2UgY2FuIGFk ZCB0aGUgZmxhZ3MKaW50byBNQUNWTEFOX0ZFQVRVUkVTLgoKVGhpcyBzYW1lIHByb2JsZW0gY291 bGQgY3JvcCB1cCBpbiB0aGUgZnV0dXJlIHdpdGggYW55IG90aGVyCm5ldyBmZWF0dXJlIGZsYWdz LCBzbyBsZXQncyBmaWx0ZXIgb3V0IGFueSBmbGFncyB0aGF0IGFyZW4ndApkZWZpbmVkIGFzIHN1 cHBvcnRlZCBpbiBtYWN2bGFuLgoKRml4ZXM6IGQ3N2UzOGU2MTJhMCAoInhmcm06IEFkZCBhbiBJ UHNlYyBoYXJkd2FyZSBvZmZsb2FkaW5nIEFQSSIpClJlcG9ydGVkLWJ5OiBBbGV4ZXkgS29kYW5l diA8YWxleGV5LmtvZGFuZXZAb3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogU2hhbm5vbiBOZWxz b24gPHNoYW5ub24ubmVsc29uQG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9tYWN2bGFuLmMgfCAy ICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9tYWN2bGFuLmMgYi9kcml2ZXJzL25ldC9tYWN2bGFuLmMKaW5k ZXggMTc2ZmMwOTA2YmZlLi4wZjM1NTk3NTUzZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L21h Y3ZsYW4uYworKysgYi9kcml2ZXJzL25ldC9tYWN2bGFuLmMKQEAgLTEwMzcsNyArMTAzNyw3IEBA IHN0YXRpYyBuZXRkZXZfZmVhdHVyZXNfdCBtYWN2bGFuX2ZpeF9mZWF0dXJlcyhzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2LAogCWxvd2VyZGV2X2ZlYXR1cmVzICY9IChmZWF0dXJlcyB8IH5ORVRJRl9G X0xSTyk7CiAJZmVhdHVyZXMgPSBuZXRkZXZfaW5jcmVtZW50X2ZlYXR1cmVzKGxvd2VyZGV2X2Zl YXR1cmVzLCBmZWF0dXJlcywgbWFzayk7CiAJZmVhdHVyZXMgfD0gQUxXQVlTX09OX0ZFQVRVUkVT OwotCWZlYXR1cmVzICY9IH5ORVRJRl9GX05FVE5TX0xPQ0FMOworCWZlYXR1cmVzICY9IChBTFdB WVNfT05fRkVBVFVSRVMgfCBNQUNWTEFOX0ZFQVRVUkVTKTsKIAogCXJldHVybiBmZWF0dXJlczsK IH0KLS0gCjIuMTQuMwoKCkZyb20gYTE0ZDMwNmU2Mjg2NjQ2MmJkZDBkNTk1ZWY3NGU5NDQ5ZTNj ZmVmYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFvbG8gQWJlbmkgPHBhYmVuaUBy ZWRoYXQuY29tPgpEYXRlOiBNb24sIDEyIE1hciAyMDE4IDE0OjU0OjIzICswMTAwClN1YmplY3Q6 IFtQQVRDSCAwOC80M10gbmV0OiBpcHY2OiBrZWVwIHNrIHN0YXR1cyBjb25zaXN0ZW50IGFmdGVy IGRhdGFncmFtCiBjb25uZWN0IGZhaWx1cmUKClsgVXBzdHJlYW0gY29tbWl0IDJmOTg3YTc2YTk3 NzczYmVhZmJjNjE1YjljNGQ4ZmU3OTEyOWE3ZjQgXQoKT24gdW5zdWNjZXNmdWwgaXA2X2RhdGFn cmFtX2Nvbm5lY3QoKSwgaWYgdGhlIGZhaWx1cmUgaXMgY2F1c2VkIGJ5CmlwNl9kYXRhZ3JhbV9k c3RfdXBkYXRlKCksIHRoZSBzayBwZWVyIGluZm9ybWF0aW9uIGFyZSBjbGVhcmVkLCBidXQKdGhl IHNrLT5za19zdGF0ZSBpcyBwcmVzZXJ2ZWQuCgpJZiB0aGUgc29ja2V0IHdhcyBhbHJlYWR5IGlu IGFuIGVzdGFibGlzaGVkIHN0YXR1cywgdGhlIG92ZXJhbGwgc2sKc3RhdHVzIGlzIGluY29uc2lz dGVudCBhbmQgZm91bHMgbGF0ZXIgY2hlY2tzIGluIGRhdGFncmFtIGNvZGUuCgpGaXggdGhpcyBz YXZpbmcgdGhlIG9sZCBwZWVyIGluZm9ybWF0aW9uIGFuZCByZXN0b3JpbmcgdGhlbSBpbgpjYXNl IG9mIGZhaWx1cmUuIFRoaXMgYWxzbyBhbGlnbnMgaXB2NiBkYXRhZ3JhbSBjb25uZWN0KCkgYmVo YXZpb3IKd2l0aCBpcHY0LgoKdjEgLT4gdjI6CiAtIGFkZGVkIG1pc3NpbmcgRml4ZXMgdGFnCgpG aXhlczogODVjYjczZmY5Yjc0ICgibmV0OiBpcHY2OiByZXNldCBkYWRkciBhbmQgZHBvcnQgaW4g c2sgaWYgY29ubmVjdCgpIGZhaWxzIikKU2lnbmVkLW9mZi1ieTogUGFvbG8gQWJlbmkgPHBhYmVu aUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvZGF0YWdyYW0uYyB8IDIxICsrKysrKysrKysrKysrLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbmV0L2lwdjYvZGF0YWdyYW0uYyBiL25ldC9pcHY2L2RhdGFncmFtLmMKaW5k ZXggYTFmOTE4NzEzMDA2Li4yOWRhNGI2YzlkZDYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2RhdGFn cmFtLmMKKysrIGIvbmV0L2lwdjYvZGF0YWdyYW0uYwpAQCAtMTQ2LDEwICsxNDYsMTIgQEAgaW50 IF9faXA2X2RhdGFncmFtX2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIg KnVhZGRyLAogCXN0cnVjdCBzb2NrYWRkcl9pbjYJKnVzaW4gPSAoc3RydWN0IHNvY2thZGRyX2lu NiAqKSB1YWRkcjsKIAlzdHJ1Y3QgaW5ldF9zb2NrCSppbmV0ID0gaW5ldF9zayhzayk7CiAJc3Ry dWN0IGlwdjZfcGluZm8JKm5wID0gaW5ldDZfc2soc2spOwotCXN0cnVjdCBpbjZfYWRkcgkJKmRh ZGRyOworCXN0cnVjdCBpbjZfYWRkcgkJKmRhZGRyLCBvbGRfZGFkZHI7CisJX19iZTMyCQkJZmw2 X2Zsb3dsYWJlbCA9IDA7CisJX19iZTMyCQkJb2xkX2ZsNl9mbG93bGFiZWw7CisJX19iZTMyCQkJ b2xkX2Rwb3J0OwogCWludAkJCWFkZHJfdHlwZTsKIAlpbnQJCQllcnI7Ci0JX19iZTMyCQkJZmw2 X2Zsb3dsYWJlbCA9IDA7CiAKIAlpZiAodXNpbi0+c2luNl9mYW1pbHkgPT0gQUZfSU5FVCkgewog CQlpZiAoX19pcHY2X29ubHlfc29jayhzaykpCkBAIC0yMzksOSArMjQxLDEzIEBAIGludCBfX2lw Nl9kYXRhZ3JhbV9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRk ciwKIAkJfQogCX0KIAorCS8qIHNhdmUgdGhlIGN1cnJlbnQgcGVlciBpbmZvcm1hdGlvbiBiZWZv cmUgdXBkYXRpbmcgaXQgKi8KKwlvbGRfZGFkZHIgPSBzay0+c2tfdjZfZGFkZHI7CisJb2xkX2Zs Nl9mbG93bGFiZWwgPSBucC0+Zmxvd19sYWJlbDsKKwlvbGRfZHBvcnQgPSBpbmV0LT5pbmV0X2Rw b3J0OworCiAJc2stPnNrX3Y2X2RhZGRyID0gKmRhZGRyOwogCW5wLT5mbG93X2xhYmVsID0gZmw2 X2Zsb3dsYWJlbDsKLQogCWluZXQtPmluZXRfZHBvcnQgPSB1c2luLT5zaW42X3BvcnQ7CiAKIAkv KgpAQCAtMjUxLDExICsyNTcsMTIgQEAgaW50IF9faXA2X2RhdGFncmFtX2Nvbm5lY3Qoc3RydWN0 IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRyLAogCiAJZXJyID0gaXA2X2RhdGFncmFt X2RzdF91cGRhdGUoc2ssIHRydWUpOwogCWlmIChlcnIpIHsKLQkJLyogUmVzZXQgZGFkZHIgYW5k IGRwb3J0IHNvIHRoYXQgdWRwX3Y2X2Vhcmx5X2RlbXV4KCkKLQkJICogZmFpbHMgdG8gZmluZCB0 aGlzIHNvY2tldAorCQkvKiBSZXN0b3JlIHRoZSBzb2NrZXQgcGVlciBpbmZvLCB0byBrZWVwIGl0 IGNvbnNpc3RlbnQgd2l0aAorCQkgKiB0aGUgb2xkIHNvY2tldCBzdGF0ZQogCQkgKi8KLQkJbWVt c2V0KCZzay0+c2tfdjZfZGFkZHIsIDAsIHNpemVvZihzay0+c2tfdjZfZGFkZHIpKTsKLQkJaW5l dC0+aW5ldF9kcG9ydCA9IDA7CisJCXNrLT5za192Nl9kYWRkciA9IG9sZF9kYWRkcjsKKwkJbnAt PmZsb3dfbGFiZWwgPSBvbGRfZmw2X2Zsb3dsYWJlbDsKKwkJaW5ldC0+aW5ldF9kcG9ydCA9IG9s ZF9kcG9ydDsKIAkJZ290byBvdXQ7CiAJfQogCi0tIAoyLjE0LjMKCgpGcm9tIGQyMDZhY2ZmNWMy MGIyMGU1YjMxN2I2N2ZkZTc1NTdhNjQwNWUyZDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFN0ZWZhbm8gQnJpdmlvIDxzYnJpdmlvQHJlZGhhdC5jb20+CkRhdGU6IE1vbiwgMTkgTWFy IDIwMTggMTE6MjQ6NTggKzAxMDAKU3ViamVjdDogW1BBVENIIDA5LzQzXSBpcHY2OiBvbGRfZHBv cnQgc2hvdWxkIGJlIGEgX19iZTE2IGluCiBfX2lwNl9kYXRhZ3JhbV9jb25uZWN0KCkKClsgVXBz dHJlYW0gY29tbWl0IDVmMmZiODAyZWVlMWRmMDgxMGI0N2VhMjUxOTQyZmUzZmQzNjU4OWEgXQoK Rml4ZXM6IDJmOTg3YTc2YTk3NyAoIm5ldDogaXB2Njoga2VlcCBzayBzdGF0dXMgY29uc2lzdGVu dCBhZnRlciBkYXRhZ3JhbSBjb25uZWN0IGZhaWx1cmUiKQpTaWduZWQtb2ZmLWJ5OiBTdGVmYW5v IEJyaXZpbyA8c2JyaXZpb0ByZWRoYXQuY29tPgpBY2tlZC1ieTogUGFvbG8gQWJlbmkgPHBhYmVu aUByZWRoYXQuY29tPgpBY2tlZC1ieTogR3VpbGxhdW1lIE5hdWx0IDxnLm5hdWx0QGFscGhhbGlu ay5mcj4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9pcHY2L2RhdGFncmFtLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9kYXRhZ3JhbS5j IGIvbmV0L2lwdjYvZGF0YWdyYW0uYwppbmRleCAyOWRhNGI2YzlkZDYuLjI4NzExMmRhM2MwNiAx MDA2NDQKLS0tIGEvbmV0L2lwdjYvZGF0YWdyYW0uYworKysgYi9uZXQvaXB2Ni9kYXRhZ3JhbS5j CkBAIC0xNDksNyArMTQ5LDcgQEAgaW50IF9faXA2X2RhdGFncmFtX2Nvbm5lY3Qoc3RydWN0IHNv Y2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRyLAogCXN0cnVjdCBpbjZfYWRkcgkJKmRhZGRy LCBvbGRfZGFkZHI7CiAJX19iZTMyCQkJZmw2X2Zsb3dsYWJlbCA9IDA7CiAJX19iZTMyCQkJb2xk X2ZsNl9mbG93bGFiZWw7Ci0JX19iZTMyCQkJb2xkX2Rwb3J0OworCV9fYmUxNgkJCW9sZF9kcG9y dDsKIAlpbnQJCQlhZGRyX3R5cGU7CiAJaW50CQkJZXJyOwogCi0tIAoyLjE0LjMKCgpGcm9tIDk1 ZmJmYzJjYjI4OTljZDdmYmU5ZjdiNTNkMTA0ODU1ZGEzYmVkYjQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhdmlkIExlYnJ1biA8ZGxlYnJ1bkBnb29nbGUuY29tPgpEYXRlOiBUdWUs IDIwIE1hciAyMDE4IDE0OjQ0OjU2ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxMC80M10gaXB2Njog c3I6IGZpeCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugd2hlbiBzZXR0aW5nCiBlbmNhcCBzb3Vy Y2UgYWRkcmVzcwoKWyBVcHN0cmVhbSBjb21taXQgODkzNmVmNzYwNGMxMWI1ZDcwMTU4MGQ3Nzll MGY1Njg0YWJjN2I2OCBdCgpXaGVuIHVzaW5nIHNlZzYgaW4gZW5jYXAgbW9kZSwgd2UgY2FsbCBp cHY2X2Rldl9nZXRfc2FkZHIoKSB0byBzZXQgdGhlCnNvdXJjZSBhZGRyZXNzIG9mIHRoZSBvdXRl ciBJUHY2IGhlYWRlciwgaW4gY2FzZSBub25lIHdhcyBzcGVjaWZpZWQuClVzaW5nIHNrYi0+ZGV2 IGNhbiBsZWFkIHRvIEJVRygpIHdoZW4gaXQgaXMgaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlLgpU aGlzIHBhdGNoIHVzZXMgdGhlIG5ldF9kZXZpY2UgYXR0YWNoZWQgdG8gdGhlIHNrYidzIGRzdCBp bnN0ZWFkLgoKWzk0MDgwNy42Njc0MjldIEJVRzogdW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgTlVM TCBwb2ludGVyIGRlcmVmZXJlbmNlIGF0IDAwMDAwMDAwMDAwMDA0N2MKWzk0MDgwNy43NjI0Mjdd IElQOiBpcHY2X2Rldl9nZXRfc2FkZHIrMHg4Yi8weDFkMApbOTQwODA3LjgxNTcyNV0gUEdEIDAg UDREIDAKWzk0MDgwNy44NDcxNzNdIE9vcHM6IDAwMDAgWyMxXSBTTVAgUFRJCls5NDA4MDcuODkw MDczXSBNb2R1bGVzIGxpbmtlZCBpbjoKWzk0MDgwNy45Mjc3NjVdIENQVTogNiBQSUQ6IDAgQ29t bTogc3dhcHBlci82IFRhaW50ZWQ6IEcgICAgICAgIFcgICAgICAgIDQuMTYuMC1yYzEtc2VnNmJw ZisgIzIKWzk0MDgwOC4wMjg5ODhdIEhhcmR3YXJlIG5hbWU6IEhQIFByb0xpYW50IERMMTIwIEc2 L1Byb0xpYW50IERMMTIwIEc2LCBCSU9TIE8yNiAgICAwOS8wNi8yMDEwCls5NDA4MDguMTI4MTI4 XSBSSVA6IDAwMTA6aXB2Nl9kZXZfZ2V0X3NhZGRyKzB4OGIvMHgxZDAKWzk0MDgwOC4xODc2Njdd IFJTUDogMDAxODpmZmZmODgwNDNmZDgzNmIwIEVGTEFHUzogMDAwMTAyMDYKWzk0MDgwOC4yNTEz NjZdIFJBWDogMDAwMDAwMDAwMDAwMDAwNSBSQlg6IGZmZmY4ODA0MmNiMWM4NjAgUkNYOiAwMDAw MDAwMDAwMDAwMGZlCls5NDA4MDguMzM4MDI1XSBSRFg6IDAwMDAwMDAwMDAwMDAyYzAgUlNJOiBm ZmZmODgwNDJjYjFjODYwIFJESTogMDAwMDAwMDAwMDAwNDUwMApbOTQwODA4LjQyNDY4M10gUkJQ OiBmZmZmODgwNDNmZDgzNzQwIFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6IGZmZmZmZmZmZmZm ZmZmZmYKWzk0MDgwOC41MTEzNDJdIFIxMDogMDAwMDAwMDAwMDAwMDA0MCBSMTE6IDAwMDAwMDAw MDAwMDAwMDAgUjEyOiBmZmZmODgwNDJjYjFjODUwCls5NDA4MDguNTk4MDEyXSBSMTM6IGZmZmZm ZmZmODIwOGUzODAgUjE0OiBmZmZmODgwNDJhYzhkYTAwIFIxNTogMDAwMDAwMDAwMDAwMDAwMgpb OTQwODA4LjY4NDY3NV0gRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmY4ODA0M2Zk ODAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbOTQwODA4Ljc4MzAzNl0gQ1M6ICAw MDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpbOTQwODA4Ljg1Mjk3 NV0gQ1IyOiAwMDAwMDAwMDAwMDAwNDdjIENSMzogMDAwMDAwMDQyNTVmZTAwMCBDUjQ6IDAwMDAw MDAwMDAwMDA2ZTAKWzk0MDgwOC45Mzk2MzRdIENhbGwgVHJhY2U6Cls5NDA4MDguOTcwMDQxXSAg PElSUT4KWzk0MDgwOC45OTUyNTBdICA/IGlwNnRfZG9fdGFibGUrMHgyNjUvMHg2NDAKWzk0MDgw OS4wNDMzNDFdICBzZWc2X2RvX3NyaF9lbmNhcCsweDI4Zi8weDMwMApbOTQwODA5LjA5MzUxNl0g ID8gc2VnNl9kb19zcmgrMHgxYTAvMHgyMTAKWzk0MDgwOS4xMzk1MjhdICBzZWc2X2RvX3NyaCsw eDFhMC8weDIxMApbOTQwODA5LjE4MzQ2Ml0gIHNlZzZfb3V0cHV0KzB4MjgvMHgxZTAKWzk0MDgw OS4yMjYzNThdICBsd3R1bm5lbF9vdXRwdXQrMHgzZi8weDcwCls5NDA4MDkuMjcyMzcwXSAgaXA2 X3htaXQrMHgyYjgvMHg1MzAKWzk0MDgwOS4zMTMxODVdICA/IGFjNl9wcm9jX2V4aXQrMHgyMC8w eDIwCls5NDA4MDkuMzU5MTk3XSAgaW5ldDZfY3NrX3htaXQrMHg3ZC8weGMwCls5NDA4MDkuNDA0 MTczXSAgdGNwX3RyYW5zbWl0X3NrYisweDU0OC8weDlhMApbOTQwODA5LjQ1MzMwNF0gIF9fdGNw X3JldHJhbnNtaXRfc2tiKzB4MWE4LzB4N2EwCls5NDA4MDkuNTA2NjAzXSAgPyBpcDZfZGVmYXVs dF9hZHZtc3MrMHg0MC8weDQwCls5NDA4MDkuNTU3ODI0XSAgPyB0Y3BfY3VycmVudF9tc3MrMHgy NC8weDkwCls5NDA4MDkuNjA1OTI1XSAgdGNwX3JldHJhbnNtaXRfc2tiKzB4ZC8weDgwCls5NDA4 MDkuNjU0MDE2XSAgdGNwX3htaXRfcmV0cmFuc21pdF9xdWV1ZS5wYXJ0LjE3KzB4ZjkvMHgyMTAK Wzk0MDgwOS43MTk3OTddICB0Y3BfYWNrKzB4YTQ3LzB4MTExMApbOTQwODA5Ljc2MDYxMl0gIHRj cF9yY3ZfZXN0YWJsaXNoZWQrMHgxM2MvMHg1NzAKWzk0MDgwOS44MTI4NjVdICB0Y3BfdjZfZG9f cmN2KzB4MTUxLzB4M2QwCls5NDA4MDkuODU4ODc5XSAgdGNwX3Y2X3JjdisweGE1Yy8weGIxMApb OTQwODA5LjkwMTc3MF0gID8gc2VnNl9vdXRwdXQrMHhkZC8weDFlMApbOTQwODA5Ljk0Njc0NV0g IGlwNl9pbnB1dF9maW5pc2grMHhiYi8weDQ2MApbOTQwODA5Ljk5NDgzN10gIGlwNl9pbnB1dCsw eDc0LzB4ODAKWzk0MDgxMC4wMzQ2MTJdICA/IGlwNl9yY3ZfZmluaXNoKzB4YjAvMHhiMApbOTQw ODEwLjA4MTY2M10gIGlwdjZfcmN2KzB4MzFjLzB4NGMwCi4uLgoKRml4ZXM6IDZjODcwMmM2MGI4 ODYgKCJpcHY2OiBzcjogYWRkIHN1cHBvcnQgZm9yIFNSSCBlbmNhcHN1bGF0aW9uIGFuZCBpbmpl Y3Rpb24gd2l0aCBsd3R1bm5lbHMiKQpSZXBvcnRlZC1ieTogVG9tIEhlcmJlcnQgPHRvbUBxdWFu dG9uaXVtLm5ldD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgTGVicnVuIDxkbGVicnVuQGdvb2dsZS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvaXB2Ni9zZWc2X2lwdHVubmVsLmMgfCA1ICsrKy0tCiAxIGZpbGUgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3Nl ZzZfaXB0dW5uZWwuYyBiL25ldC9pcHY2L3NlZzZfaXB0dW5uZWwuYwppbmRleCBiZDZjYzY4OGJk MTkuLjM3ZTc2Y2E3YjdjYiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvc2VnNl9pcHR1bm5lbC5jCisr KyBiL25ldC9pcHY2L3NlZzZfaXB0dW5uZWwuYwpAQCAtOTMsNyArOTMsOCBAQCBzdGF0aWMgdm9p ZCBzZXRfdHVuX3NyYyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAv KiBlbmNhcHN1bGF0ZSBhbiBJUHY2IHBhY2tldCB3aXRoaW4gYW4gb3V0ZXIgSVB2NiBoZWFkZXIg d2l0aCBhIGdpdmVuIFNSSCAqLwogaW50IHNlZzZfZG9fc3JoX2VuY2FwKHN0cnVjdCBza19idWZm ICpza2IsIHN0cnVjdCBpcHY2X3NyX2hkciAqb3NyaCwgaW50IHByb3RvKQogewotCXN0cnVjdCBu ZXQgKm5ldCA9IGRldl9uZXQoc2tiX2RzdChza2IpLT5kZXYpOworCXN0cnVjdCBkc3RfZW50cnkg KmRzdCA9IHNrYl9kc3Qoc2tiKTsKKwlzdHJ1Y3QgbmV0ICpuZXQgPSBkZXZfbmV0KGRzdC0+ZGV2 KTsKIAlzdHJ1Y3QgaXB2NmhkciAqaGRyLCAqaW5uZXJfaGRyOwogCXN0cnVjdCBpcHY2X3NyX2hk ciAqaXNyaDsKIAlpbnQgaGRybGVuLCB0b3RfbGVuLCBlcnI7CkBAIC0xMzQsNyArMTM1LDcgQEAg aW50IHNlZzZfZG9fc3JoX2VuY2FwKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBpcHY2X3Ny X2hkciAqb3NyaCwgaW50IHByb3RvKQogCWlzcmgtPm5leHRoZHIgPSBwcm90bzsKIAogCWhkci0+ ZGFkZHIgPSBpc3JoLT5zZWdtZW50c1tpc3JoLT5maXJzdF9zZWdtZW50XTsKLQlzZXRfdHVuX3Ny YyhuZXQsIHNrYi0+ZGV2LCAmaGRyLT5kYWRkciwgJmhkci0+c2FkZHIpOworCXNldF90dW5fc3Jj KG5ldCwgaXA2X2RzdF9pZGV2KGRzdCktPmRldiwgJmhkci0+ZGFkZHIsICZoZHItPnNhZGRyKTsK IAogI2lmZGVmIENPTkZJR19JUFY2X1NFRzZfSE1BQwogCWlmIChzcl9oYXNfaG1hYyhpc3JoKSkg ewotLSAKMi4xNC4zCgoKRnJvbSA5ZWVkZTFkMmM4OWU3NTQzYmZkMmE4ZjI3ZmUzZGM3OWUzOWQ5 MzJmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBMZWJydW4gPGRsZWJydW5A Z29vZ2xlLmNvbT4KRGF0ZTogVHVlLCAyMCBNYXIgMjAxOCAxNDo0NDo1NSArMDAwMApTdWJqZWN0 OiBbUEFUQ0ggMTEvNDNdIGlwdjY6IHNyOiBmaXggc2NoZWR1bGluZyBpbiBSQ1Ugd2hlbiBjcmVh dGluZyBzZWc2CiBsd3R1bm5lbCBzdGF0ZQoKWyBVcHN0cmVhbSBjb21taXQgMTkxZjg2Y2E4ZWYy N2Y3YTQ5MmZkMWMwMzYyMDQ5OGM2ZTk0ZjBhYyBdCgpUaGUgc2VnNl9idWlsZF9zdGF0ZSgpIGZ1 bmN0aW9uIGlzIGNhbGxlZCB3aXRoIFJDVSByZWFkIGxvY2sgaGVsZCwKc28gd2UgY2Fubm90IHVz ZSBHRlBfS0VSTkVMLiBUaGlzIHBhdGNoIHVzZXMgR0ZQX0FUT01JQyBpbnN0ZWFkLgoKWyAgIDky Ljc3MDI3MV0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KWyAgIDkyLjc3MDYyOF0gV0FS TklORzogc3VzcGljaW91cyBSQ1UgdXNhZ2UKWyAgIDkyLjc3MDkyMV0gNC4xNi4wLXJjNCsgIzEy IE5vdCB0YWludGVkClsgICA5Mi43NzEyNzddIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t ClsgICA5Mi43NzE1ODVdIC4vaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oOjMwMiBJbGxlZ2FsIGNv bnRleHQgc3dpdGNoIGluIFJDVSByZWFkLXNpZGUgY3JpdGljYWwgc2VjdGlvbiEKWyAgIDkyLjc3 MjI3OV0KWyAgIDkyLjc3MjI3OV0gb3RoZXIgaW5mbyB0aGF0IG1pZ2h0IGhlbHAgdXMgZGVidWcg dGhpczoKWyAgIDkyLjc3MjI3OV0KWyAgIDkyLjc3MzA2N10KWyAgIDkyLjc3MzA2N10gcmN1X3Nj aGVkdWxlcl9hY3RpdmUgPSAyLCBkZWJ1Z19sb2NrcyA9IDEKWyAgIDkyLjc3MzUxNF0gMiBsb2Nr cyBoZWxkIGJ5IGlwLzI0MTM6ClsgICA5Mi43NzM3NjVdICAjMDogIChydG5sX211dGV4KXsrLisu fSwgYXQ6IFs8MDAwMDAwMDBlNTQ2MTcyMD5dIHJ0bmV0bGlua19yY3ZfbXNnKzB4NDQxLzB4NGQw ClsgICA5Mi43NzQzNzddICAjMTogIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IFs8MDAwMDAw MDBkZjRmMTYxZT5dIGx3dHVubmVsX2J1aWxkX3N0YXRlKzB4NTkvMHgyMTAKWyAgIDkyLjc3NTA2 NV0KWyAgIDkyLjc3NTA2NV0gc3RhY2sgYmFja3RyYWNlOgpbICAgOTIuNzc1MzcxXSBDUFU6IDAg UElEOiAyNDEzIENvbW06IGlwIE5vdCB0YWludGVkIDQuMTYuMC1yYzQrICMxMgpbICAgOTIuNzc1 NzkxXSBIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2 KSwgQklPUyAxLjEwLjItMS5mYzI3IDA0LzAxLzIwMTQKWyAgIDkyLjc3NjYwOF0gQ2FsbCBUcmFj ZToKWyAgIDkyLjc3Njg1Ml0gIGR1bXBfc3RhY2srMHg3ZC8weGJjClsgICA5Mi43NzcxMzBdICBf X3NjaGVkdWxlKzB4MTMzLzB4ZjAwClsgICA5Mi43NzczOTNdICA/IHVud2luZF9nZXRfcmV0dXJu X2FkZHJlc3NfcHRyKzB4NTAvMHg1MApbICAgOTIuNzc3NzgzXSAgPyBfX3NjaGVkX3RleHRfc3Rh cnQrMHg4LzB4OApbICAgOTIuNzc4MDczXSAgPyByY3VfaXNfd2F0Y2hpbmcrMHgxOS8weDMwClsg ICA5Mi43NzgzODNdICA/IGtlcm5lbF90ZXh0X2FkZHJlc3MrMHg0OS8weDYwClsgICA5Mi43Nzg4 MDBdICA/IF9fa2VybmVsX3RleHRfYWRkcmVzcysweDkvMHgzMApbICAgOTIuNzc5MjQxXSAgPyB1 bndpbmRfZ2V0X3JldHVybl9hZGRyZXNzKzB4MjkvMHg0MApbICAgOTIuNzc5NzI3XSAgPyBwY3B1 X2FsbG9jKzB4MTAyLzB4OGYwClsgICA5Mi43ODAxMDFdICBfY29uZF9yZXNjaGVkKzB4MjMvMHg1 MApbICAgOTIuNzgwNDU5XSAgX19tdXRleF9sb2NrKzB4YmQvMHhhZDAKWyAgIDkyLjc4MDgxOF0g ID8gcGNwdV9hbGxvYysweDEwMi8weDhmMApbICAgOTIuNzgxMTk0XSAgPyBzZWc2X2J1aWxkX3N0 YXRlKzB4MTFkLzB4MjQwClsgICA5Mi43ODE2MTFdICA/IHNhdmVfc3RhY2srMHg5Yi8weGIwClsg ICA5Mi43ODE5NjVdICA/IF9fd3dfbXV0ZXhfd2FrZXVwX2Zvcl9iYWNrb2ZmKzB4ZjAvMHhmMApb ICAgOTIuNzgyNDgwXSAgPyBzZWc2X2J1aWxkX3N0YXRlKzB4MTFkLzB4MjQwClsgICA5Mi43ODI5 MjVdICA/IGx3dHVubmVsX2J1aWxkX3N0YXRlKzB4MWJkLzB4MjEwClsgICA5Mi43ODMzOTNdICA/ IGlwNl9yb3V0ZV9pbmZvX2NyZWF0ZSsweDY4Ny8weDE2NDAKWyAgIDkyLjc4Mzg0Nl0gID8gaXA2 X3JvdXRlX2FkZCsweDc0LzB4MTEwClsgICA5Mi43ODQyMzZdICA/IGluZXQ2X3J0bV9uZXdyb3V0 ZSsweDhhLzB4ZDAKCkZpeGVzOiA2Yzg3MDJjNjBiODg2ICgiaXB2Njogc3I6IGFkZCBzdXBwb3J0 IGZvciBTUkggZW5jYXBzdWxhdGlvbiBhbmQgaW5qZWN0aW9uIHdpdGggbHd0dW5uZWxzIikKU2ln bmVkLW9mZi1ieTogRGF2aWQgTGVicnVuIDxkbGVicnVuQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9z ZWc2X2lwdHVubmVsLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9zZWc2X2lwdHVubmVsLmMgYi9uZXQv aXB2Ni9zZWc2X2lwdHVubmVsLmMKaW5kZXggMzdlNzZjYTdiN2NiLi43YTc4ZGNmZGE2OGEgMTAw NjQ0Ci0tLSBhL25ldC9pcHY2L3NlZzZfaXB0dW5uZWwuYworKysgYi9uZXQvaXB2Ni9zZWc2X2lw dHVubmVsLmMKQEAgLTQxOSw3ICs0MTksNyBAQCBzdGF0aWMgaW50IHNlZzZfYnVpbGRfc3RhdGUo c3RydWN0IG5sYXR0ciAqbmxhLAogCiAJc2x3dCA9IHNlZzZfbHd0X2x3dHVubmVsKG5ld3RzKTsK IAotCWVyciA9IGRzdF9jYWNoZV9pbml0KCZzbHd0LT5jYWNoZSwgR0ZQX0tFUk5FTCk7CisJZXJy ID0gZHN0X2NhY2hlX2luaXQoJnNsd3QtPmNhY2hlLCBHRlBfQVRPTUlDKTsKIAlpZiAoZXJyKSB7 CiAJCWtmcmVlKG5ld3RzKTsKIAkJcmV0dXJuIGVycjsKLS0gCjIuMTQuMwoKCkZyb20gMjUzMmZj MDI1MzA0ZDViYjRiMjFjZDVkYTEwZWNiYjhlZDQ2ZmI5MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3guY29tPgpEYXRlOiBUaHUsIDE1 IE1hciAyMDE4IDE0OjQ5OjU2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMi80M10gbWx4c3c6IHNw ZWN0cnVtX2J1ZmZlcnM6IFNldCBhIG1pbmltdW0gcXVvdGEgZm9yIENQVQogcG9ydCB0cmFmZmlj CgpbIFVwc3RyZWFtIGNvbW1pdCBiY2RkNWRlODBhMjI3NWY3ODc5ZGMyNzhiZmM3NDdmMWNhZjk0 NDQyIF0KCkluIGNvbW1pdCA5ZmZjYzM3MjVmMDkgKCJtbHhzdzogc3BlY3RydW06IEFsbG93IHBh Y2tldHMgdG8gYmUgdHJhcHBlZApmcm9tIGFueSBQRyIpIEkgZml4ZWQgYSBwcm9ibGVtIHdoZXJl IHBhY2tldHMgY291bGQgbm90IGJlIHRyYXBwZWQgdG8KdGhlIENQVSBkdWUgdG8gZXhjZWVkZWQg c2hhcmVkIGJ1ZmZlciBxdW90YXMuIFRoZSBtZW50aW9uZWQgY29tbWl0CmV4cGxhaW5zIHRoZSBw cm9ibGVtIGluIGRldGFpbC4KClRoZSBwcm9ibGVtIHdhcyBmaXhlZCBieSBhc3NpZ25pbmcgYSBt aW5pbXVtIHF1b3RhIGZvciB0aGUgQ1BVIHBvcnQgYW5kCnRoZSB0cmFmZmljIGNsYXNzIHVzZWQg Zm9yIHNjaGVkdWxpbmcgdHJhZmZpYyB0byB0aGUgQ1BVLgoKSG93ZXZlciwgY29tbWl0IDExN2Iw ZGFkMmQ1NCAoIm1seHN3OiBDcmVhdGUgYSBkaWZmZXJlbnQgdHJhcCBncm91cCBsaXN0CmZvciBl YWNoIGRldmljZSIpIGFzc2lnbmVkIGRpZmZlcmVudCB0cmFmZmljIGNsYXNzZXMgdG8gZGlmZmVy ZW50CnBhY2tldCB0eXBlcyBhbmQgcmVuZGVyZWQgdGhlIGZpeCB1c2VsZXNzLgoKRml4IHRoZSBw cm9ibGVtIGJ5IGFzc2lnbmluZyBhIG1pbmltdW0gcXVvdGEgZm9yIHRoZSBDUFUgcG9ydCBhbmQg YWxsCnRoZSB0cmFmZmljIGNsYXNzZXMgdGhhdCBhcmUgY3VycmVudGx5IGluIHVzZS4KCkZpeGVz OiAxMTdiMGRhZDJkNTQgKCJtbHhzdzogQ3JlYXRlIGEgZGlmZmVyZW50IHRyYXAgZ3JvdXAgbGlz dCBmb3IgZWFjaCBkZXZpY2UiKQpTaWduZWQtb2ZmLWJ5OiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBt ZWxsYW5veC5jb20+ClJlcG9ydGVkLWJ5OiBFZGRpZSBTaGtsYWVyIDxlZGRpZXNAbWVsbGFub3gu Y29tPgpUZXN0ZWQtYnk6IEVkZGllIFNoa2xhZXIgPGVkZGllc0BtZWxsYW5veC5jb20+CkFja2Vk LWJ5OiBKaXJpIFBpcmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2J1ZmZlcnMuYyB8IDEyICsrKysrKy0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9idWZmZXJzLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9idWZmZXJzLmMK aW5kZXggOTM3MjhjNjk0ZTZkLi4wYTlhZGM1OTYyZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2J1ZmZlcnMuYworKysgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9idWZmZXJzLmMKQEAgLTM4NSwx MyArMzg1LDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWx4c3dfc3Bfc2JfY20gbWx4c3dfc3Bf c2JfY21zX2VncmVzc1tdID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG1seHN3X3NwX3NiX2Nt IG1seHN3X3NwX2NwdV9wb3J0X3NiX2Ntc1tdID0gewogCU1MWFNXX1NQX0NQVV9QT1JUX1NCX0NN LAorCU1MWFNXX1NQX1NCX0NNKE1MWFNXX1BPUlRfTUFYX01UVSwgMCwgMCksCisJTUxYU1dfU1Bf U0JfQ00oTUxYU1dfUE9SVF9NQVhfTVRVLCAwLCAwKSwKKwlNTFhTV19TUF9TQl9DTShNTFhTV19Q T1JUX01BWF9NVFUsIDAsIDApLAorCU1MWFNXX1NQX1NCX0NNKE1MWFNXX1BPUlRfTUFYX01UVSwg MCwgMCksCisJTUxYU1dfU1BfU0JfQ00oTUxYU1dfUE9SVF9NQVhfTVRVLCAwLCAwKSwKIAlNTFhT V19TUF9DUFVfUE9SVF9TQl9DTSwKLQlNTFhTV19TUF9DUFVfUE9SVF9TQl9DTSwKLQlNTFhTV19T UF9DUFVfUE9SVF9TQl9DTSwKLQlNTFhTV19TUF9DUFVfUE9SVF9TQl9DTSwKLQlNTFhTV19TUF9D UFVfUE9SVF9TQl9DTSwKLQlNTFhTV19TUF9DUFVfUE9SVF9TQl9DTSwKLQlNTFhTV19TUF9TQl9D TSgxMDAwMCwgMCwgMCksCisJTUxYU1dfU1BfU0JfQ00oTUxYU1dfUE9SVF9NQVhfTVRVLCAwLCAw KSwKIAlNTFhTV19TUF9DUFVfUE9SVF9TQl9DTSwKIAlNTFhTV19TUF9DUFVfUE9SVF9TQl9DTSwK IAlNTFhTV19TUF9DUFVfUE9SVF9TQl9DTSwKLS0gCjIuMTQuMwoKCkZyb20gYjViMWFlZmFkYjI2 Y2NjNWViODVjNGE5OTg1YTM0OTdiMzhkOTJlMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogQnJhZCBNb3VyaW5nIDxicmFkLm1vdXJpbmdAbmkuY29tPgpEYXRlOiBUaHUsIDggTWFyIDIw MTggMTY6MjM6MDMgLTA2MDAKU3ViamVjdDogW1BBVENIIDEzLzQzXSBuZXQ6IHBoeTogVGVsbCBj YWxsZXIgcmVzdWx0IG9mIHBoeV9jaGFuZ2UoKQoKWyBVcHN0cmVhbSBjb21taXQgYTJjMDU0YTg5 NmI4YWM3OTRkZGNmYzdjOTJlMmRjN2VjNGVkNGVkNSBdCgpJbiA2NjRmY2YxMjNhMzBlIChuZXQ6 IHBoeTogVGhyZWFkZWQgaW50ZXJydXB0cyBhbGxvdyBzb21lIHNpbXBsaWZpY2F0aW9uKQp0aGUg cGh5X2ludGVycnVwdCBzeXN0ZW0gd2FzIGNoYW5nZWQgdG8gdXNlIGEgdHJhZGl0aW9uYWwgdGhy ZWFkZWQKaW50ZXJydXB0IHNjaGVtZSBpbnN0ZWFkIG9mIGEgd29ya3F1ZXVlIGFwcHJvYWNoLgoK V2l0aCB0aGlzIGNoYW5nZSwgdGhlIHBoeSBzdGF0dXMgY2hlY2sgbW92ZWQgaW50byBwaHlfY2hh bmdlLCB3aGljaApkaWQgbm90IHJlcG9ydCBiYWNrIHRvIHRoZSBjYWxsZXIgd2hldGhlciBvciBu b3QgdGhlIGludGVycnVwdCB3YXMKaGFuZGxlZC4gVGhpcyBtZWFucyB0aGF0LCBpbiB0aGUgY2Fz ZSBvZiBhIHNoYXJlZCBwaHkgaW50ZXJydXB0LApvbmx5IHRoZSBmaXJzdCBwaHlkZXYncyBpbnRl cnJ1cHQgcmVnaXN0ZXJzIGFyZSBjaGVja2VkIChzaW5jZQpwaHlfaW50ZXJydXB0KCkgd291bGQg YWx3YXlzIHJldHVybiBJUlFfSEFORExFRCkuIFRoaXMgbGVhZHMgdG8KaW50ZXJydXB0IHN0b3Jt cyB3aGVuIGl0IGlzIGEgc2Vjb25kYXJ5IGRldmljZSB0aGF0J3MgYWN0dWFsbHkgdGhlCmludGVy cnVwdCBzb3VyY2UuCgpTaWduZWQtb2ZmLWJ5OiBCcmFkIE1vdXJpbmcgPGJyYWQubW91cmluZ0Bu aS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBkcml2ZXJzL25ldC9waHkvcGh5LmMgfCAxNzMgKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGluY2x1ZGUvbGludXgvcGh5LmggICB8ICAg MSAtCiAyIGZpbGVzIGNoYW5nZWQsIDg2IGluc2VydGlvbnMoKyksIDg4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9waHkuYyBiL2RyaXZlcnMvbmV0L3BoeS9waHku YwppbmRleCAzOWRlNzdhOGJiNjMuLmRiYTZkMTdhZDg4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvcGh5L3BoeS5jCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9waHkuYwpAQCAtNjE0LDYgKzYxNCw5 MSBAQCBzdGF0aWMgdm9pZCBwaHlfZXJyb3Ioc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAlw aHlfdHJpZ2dlcl9tYWNoaW5lKHBoeWRldiwgZmFsc2UpOwogfQogCisvKioKKyAqIHBoeV9kaXNh YmxlX2ludGVycnVwdHMgLSBEaXNhYmxlIHRoZSBQSFkgaW50ZXJydXB0cyBmcm9tIHRoZSBQSFkg c2lkZQorICogQHBoeWRldjogdGFyZ2V0IHBoeV9kZXZpY2Ugc3RydWN0CisgKi8KK3N0YXRpYyBp bnQgcGh5X2Rpc2FibGVfaW50ZXJydXB0cyhzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQorewor CWludCBlcnI7CisKKwkvKiBEaXNhYmxlIFBIWSBpbnRlcnJ1cHRzICovCisJZXJyID0gcGh5X2Nv bmZpZ19pbnRlcnJ1cHQocGh5ZGV2LCBQSFlfSU5URVJSVVBUX0RJU0FCTEVEKTsKKwlpZiAoZXJy KQorCQlnb3RvIHBoeV9lcnI7CisKKwkvKiBDbGVhciB0aGUgaW50ZXJydXB0ICovCisJZXJyID0g cGh5X2NsZWFyX2ludGVycnVwdChwaHlkZXYpOworCWlmIChlcnIpCisJCWdvdG8gcGh5X2VycjsK KworCXJldHVybiAwOworCitwaHlfZXJyOgorCXBoeV9lcnJvcihwaHlkZXYpOworCisJcmV0dXJu IGVycjsKK30KKworLyoqCisgKiBwaHlfY2hhbmdlIC0gQ2FsbGVkIGJ5IHRoZSBwaHlfaW50ZXJy dXB0IHRvIGhhbmRsZSBQSFkgY2hhbmdlcworICogQHBoeWRldjogcGh5X2RldmljZSBzdHJ1Y3Qg dGhhdCBpbnRlcnJ1cHRlZAorICovCitzdGF0aWMgaXJxcmV0dXJuX3QgcGh5X2NoYW5nZShzdHJ1 Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQoreworCWlmIChwaHlfaW50ZXJydXB0X2lzX3ZhbGlkKHBo eWRldikpIHsKKwkJaWYgKHBoeWRldi0+ZHJ2LT5kaWRfaW50ZXJydXB0ICYmCisJCSAgICAhcGh5 ZGV2LT5kcnYtPmRpZF9pbnRlcnJ1cHQocGh5ZGV2KSkKKwkJCWdvdG8gaWdub3JlOworCisJCWlm IChwaHlfZGlzYWJsZV9pbnRlcnJ1cHRzKHBoeWRldikpCisJCQlnb3RvIHBoeV9lcnI7CisJfQor CisJbXV0ZXhfbG9jaygmcGh5ZGV2LT5sb2NrKTsKKwlpZiAoKFBIWV9SVU5OSU5HID09IHBoeWRl di0+c3RhdGUpIHx8IChQSFlfTk9MSU5LID09IHBoeWRldi0+c3RhdGUpKQorCQlwaHlkZXYtPnN0 YXRlID0gUEhZX0NIQU5HRUxJTks7CisJbXV0ZXhfdW5sb2NrKCZwaHlkZXYtPmxvY2spOworCisJ aWYgKHBoeV9pbnRlcnJ1cHRfaXNfdmFsaWQocGh5ZGV2KSkgeworCQlhdG9taWNfZGVjKCZwaHlk ZXYtPmlycV9kaXNhYmxlKTsKKwkJZW5hYmxlX2lycShwaHlkZXYtPmlycSk7CisKKwkJLyogUmVl bmFibGUgaW50ZXJydXB0cyAqLworCQlpZiAoUEhZX0hBTFRFRCAhPSBwaHlkZXYtPnN0YXRlICYm CisJCSAgICBwaHlfY29uZmlnX2ludGVycnVwdChwaHlkZXYsIFBIWV9JTlRFUlJVUFRfRU5BQkxF RCkpCisJCQlnb3RvIGlycV9lbmFibGVfZXJyOworCX0KKworCS8qIHJlc2NoZWR1bGUgc3RhdGUg cXVldWUgd29yayB0byBydW4gYXMgc29vbiBhcyBwb3NzaWJsZSAqLworCXBoeV90cmlnZ2VyX21h Y2hpbmUocGh5ZGV2LCB0cnVlKTsKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7CisKK2lnbm9yZToKKwlh dG9taWNfZGVjKCZwaHlkZXYtPmlycV9kaXNhYmxlKTsKKwllbmFibGVfaXJxKHBoeWRldi0+aXJx KTsKKwlyZXR1cm4gSVJRX05PTkU7CisKK2lycV9lbmFibGVfZXJyOgorCWRpc2FibGVfaXJxKHBo eWRldi0+aXJxKTsKKwlhdG9taWNfaW5jKCZwaHlkZXYtPmlycV9kaXNhYmxlKTsKK3BoeV9lcnI6 CisJcGh5X2Vycm9yKHBoeWRldik7CisJcmV0dXJuIElSUV9OT05FOworfQorCisvKioKKyAqIHBo eV9jaGFuZ2Vfd29yayAtIFNjaGVkdWxlZCBieSB0aGUgcGh5X21hY19pbnRlcnJ1cHQgdG8gaGFu ZGxlIFBIWSBjaGFuZ2VzCisgKiBAd29yazogd29ya19zdHJ1Y3QgdGhhdCBkZXNjcmliZXMgdGhl IHdvcmsgdG8gYmUgZG9uZQorICovCit2b2lkIHBoeV9jaGFuZ2Vfd29yayhzdHJ1Y3Qgd29ya19z dHJ1Y3QgKndvcmspCit7CisJc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiA9CisJCWNvbnRhaW5l cl9vZih3b3JrLCBzdHJ1Y3QgcGh5X2RldmljZSwgcGh5X3F1ZXVlKTsKKworCXBoeV9jaGFuZ2Uo cGh5ZGV2KTsKK30KKwogLyoqCiAgKiBwaHlfaW50ZXJydXB0IC0gUEhZIGludGVycnVwdCBoYW5k bGVyCiAgKiBAaXJxOiBpbnRlcnJ1cHQgbGluZQpAQCAtNjMyLDkgKzcxNyw3IEBAIHN0YXRpYyBp cnFyZXR1cm5fdCBwaHlfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKnBoeV9kYXQpCiAJZGlzYWJs ZV9pcnFfbm9zeW5jKGlycSk7CiAJYXRvbWljX2luYygmcGh5ZGV2LT5pcnFfZGlzYWJsZSk7CiAK LQlwaHlfY2hhbmdlKHBoeWRldik7Ci0KLQlyZXR1cm4gSVJRX0hBTkRMRUQ7CisJcmV0dXJuIHBo eV9jaGFuZ2UocGh5ZGV2KTsKIH0KIAogLyoqCkBAIC02NTEsMzIgKzczNCw2IEBAIHN0YXRpYyBp bnQgcGh5X2VuYWJsZV9pbnRlcnJ1cHRzKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCiAJcmV0 dXJuIHBoeV9jb25maWdfaW50ZXJydXB0KHBoeWRldiwgUEhZX0lOVEVSUlVQVF9FTkFCTEVEKTsK IH0KIAotLyoqCi0gKiBwaHlfZGlzYWJsZV9pbnRlcnJ1cHRzIC0gRGlzYWJsZSB0aGUgUEhZIGlu dGVycnVwdHMgZnJvbSB0aGUgUEhZIHNpZGUKLSAqIEBwaHlkZXY6IHRhcmdldCBwaHlfZGV2aWNl IHN0cnVjdAotICovCi1zdGF0aWMgaW50IHBoeV9kaXNhYmxlX2ludGVycnVwdHMoc3RydWN0IHBo eV9kZXZpY2UgKnBoeWRldikKLXsKLQlpbnQgZXJyOwotCi0JLyogRGlzYWJsZSBQSFkgaW50ZXJy dXB0cyAqLwotCWVyciA9IHBoeV9jb25maWdfaW50ZXJydXB0KHBoeWRldiwgUEhZX0lOVEVSUlVQ VF9ESVNBQkxFRCk7Ci0JaWYgKGVycikKLQkJZ290byBwaHlfZXJyOwotCi0JLyogQ2xlYXIgdGhl IGludGVycnVwdCAqLwotCWVyciA9IHBoeV9jbGVhcl9pbnRlcnJ1cHQocGh5ZGV2KTsKLQlpZiAo ZXJyKQotCQlnb3RvIHBoeV9lcnI7Ci0KLQlyZXR1cm4gMDsKLQotcGh5X2VycjoKLQlwaHlfZXJy b3IocGh5ZGV2KTsKLQotCXJldHVybiBlcnI7Ci19Ci0KIC8qKgogICogcGh5X3N0YXJ0X2ludGVy cnVwdHMgLSByZXF1ZXN0IGFuZCBlbmFibGUgaW50ZXJydXB0cyBmb3IgYSBQSFkgZGV2aWNlCiAg KiBAcGh5ZGV2OiB0YXJnZXQgcGh5X2RldmljZSBzdHJ1Y3QKQEAgLTcyNyw2NCArNzg0LDYgQEAg aW50IHBoeV9zdG9wX2ludGVycnVwdHMoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIH0KIEVY UE9SVF9TWU1CT0wocGh5X3N0b3BfaW50ZXJydXB0cyk7CiAKLS8qKgotICogcGh5X2NoYW5nZSAt IENhbGxlZCBieSB0aGUgcGh5X2ludGVycnVwdCB0byBoYW5kbGUgUEhZIGNoYW5nZXMKLSAqIEBw aHlkZXY6IHBoeV9kZXZpY2Ugc3RydWN0IHRoYXQgaW50ZXJydXB0ZWQKLSAqLwotdm9pZCBwaHlf Y2hhbmdlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCi17Ci0JaWYgKHBoeV9pbnRlcnJ1cHRf aXNfdmFsaWQocGh5ZGV2KSkgewotCQlpZiAocGh5ZGV2LT5kcnYtPmRpZF9pbnRlcnJ1cHQgJiYK LQkJICAgICFwaHlkZXYtPmRydi0+ZGlkX2ludGVycnVwdChwaHlkZXYpKQotCQkJZ290byBpZ25v cmU7Ci0KLQkJaWYgKHBoeV9kaXNhYmxlX2ludGVycnVwdHMocGh5ZGV2KSkKLQkJCWdvdG8gcGh5 X2VycjsKLQl9Ci0KLQltdXRleF9sb2NrKCZwaHlkZXYtPmxvY2spOwotCWlmICgoUEhZX1JVTk5J TkcgPT0gcGh5ZGV2LT5zdGF0ZSkgfHwgKFBIWV9OT0xJTksgPT0gcGh5ZGV2LT5zdGF0ZSkpCi0J CXBoeWRldi0+c3RhdGUgPSBQSFlfQ0hBTkdFTElOSzsKLQltdXRleF91bmxvY2soJnBoeWRldi0+ bG9jayk7Ci0KLQlpZiAocGh5X2ludGVycnVwdF9pc192YWxpZChwaHlkZXYpKSB7Ci0JCWF0b21p Y19kZWMoJnBoeWRldi0+aXJxX2Rpc2FibGUpOwotCQllbmFibGVfaXJxKHBoeWRldi0+aXJxKTsK LQotCQkvKiBSZWVuYWJsZSBpbnRlcnJ1cHRzICovCi0JCWlmIChQSFlfSEFMVEVEICE9IHBoeWRl di0+c3RhdGUgJiYKLQkJICAgIHBoeV9jb25maWdfaW50ZXJydXB0KHBoeWRldiwgUEhZX0lOVEVS UlVQVF9FTkFCTEVEKSkKLQkJCWdvdG8gaXJxX2VuYWJsZV9lcnI7Ci0JfQotCi0JLyogcmVzY2hl ZHVsZSBzdGF0ZSBxdWV1ZSB3b3JrIHRvIHJ1biBhcyBzb29uIGFzIHBvc3NpYmxlICovCi0JcGh5 X3RyaWdnZXJfbWFjaGluZShwaHlkZXYsIHRydWUpOwotCXJldHVybjsKLQotaWdub3JlOgotCWF0 b21pY19kZWMoJnBoeWRldi0+aXJxX2Rpc2FibGUpOwotCWVuYWJsZV9pcnEocGh5ZGV2LT5pcnEp OwotCXJldHVybjsKLQotaXJxX2VuYWJsZV9lcnI6Ci0JZGlzYWJsZV9pcnEocGh5ZGV2LT5pcnEp OwotCWF0b21pY19pbmMoJnBoeWRldi0+aXJxX2Rpc2FibGUpOwotcGh5X2VycjoKLQlwaHlfZXJy b3IocGh5ZGV2KTsKLX0KLQotLyoqCi0gKiBwaHlfY2hhbmdlX3dvcmsgLSBTY2hlZHVsZWQgYnkg dGhlIHBoeV9tYWNfaW50ZXJydXB0IHRvIGhhbmRsZSBQSFkgY2hhbmdlcwotICogQHdvcms6IHdv cmtfc3RydWN0IHRoYXQgZGVzY3JpYmVzIHRoZSB3b3JrIHRvIGJlIGRvbmUKLSAqLwotdm9pZCBw aHlfY2hhbmdlX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQotewotCXN0cnVjdCBwaHlf ZGV2aWNlICpwaHlkZXYgPQotCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IHBoeV9kZXZpY2Us IHBoeV9xdWV1ZSk7Ci0KLQlwaHlfY2hhbmdlKHBoeWRldik7Ci19Ci0KIC8qKgogICogcGh5X3N0 b3AgLSBCcmluZyBkb3duIHRoZSBQSFkgbGluaywgYW5kIHN0b3AgY2hlY2tpbmcgdGhlIHN0YXR1 cwogICogQHBoeWRldjogdGFyZ2V0IHBoeV9kZXZpY2Ugc3RydWN0CmRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L3BoeS5oIGIvaW5jbHVkZS9saW51eC9waHkuaAppbmRleCA2MDAwNzZlMWNlODQu LmRjYTllOTI2Yjg4ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9waHkuaAorKysgYi9pbmNs dWRlL2xpbnV4L3BoeS5oCkBAIC04OTUsNyArODk1LDYgQEAgaW50IHBoeV9kcml2ZXJfcmVnaXN0 ZXIoc3RydWN0IHBoeV9kcml2ZXIgKm5ld19kcml2ZXIsIHN0cnVjdCBtb2R1bGUgKm93bmVyKTsK IGludCBwaHlfZHJpdmVyc19yZWdpc3RlcihzdHJ1Y3QgcGh5X2RyaXZlciAqbmV3X2RyaXZlciwg aW50IG4sCiAJCQkgc3RydWN0IG1vZHVsZSAqb3duZXIpOwogdm9pZCBwaHlfc3RhdGVfbWFjaGlu ZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwotdm9pZCBwaHlfY2hhbmdlKHN0cnVjdCBwaHlf ZGV2aWNlICpwaHlkZXYpOwogdm9pZCBwaHlfY2hhbmdlX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0 ICp3b3JrKTsKIHZvaWQgcGh5X21hY19pbnRlcnJ1cHQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRl diwgaW50IG5ld19saW5rKTsKIHZvaWQgcGh5X3N0YXJ0X21hY2hpbmUoc3RydWN0IHBoeV9kZXZp Y2UgKnBoeWRldik7Ci0tIAoyLjE0LjMKCgpGcm9tIDg5ZmJjZjZiNzIxN2YyYmY2NWViMzBkYTI5 MjllOWRjZGEyYmE2ZjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJvbWFuIE1hc2hh ayA8bXJ2QG1vamF0YXR1LmNvbT4KRGF0ZTogTW9uLCAxMiBNYXIgMjAxOCAxNjoyMDo1OCAtMDQw MApTdWJqZWN0OiBbUEFUQ0ggMTQvNDNdIG5ldCBzY2hlZCBhY3Rpb25zOiByZXR1cm4gZXhwbGlj aXQgZXJyb3Igd2hlbgogdHVubmVsX2tleSBtb2RlIGlzIG5vdCBzcGVjaWZpZWQKClsgVXBzdHJl YW0gY29tbWl0IDUxZDQ3NDBmODhhZmZkODVkNDljMDRlM2M5Y2QxMjljMGUzM2JjYjkgXQoKSWYg c2V0L3Vuc2V0IG1vZGUgb2YgdGhlIHR1bm5lbF9rZXkgYWN0aW9uIGlzIG5vdCBwcm92aWRlZCwg LT5pbml0KCkgc3RpbGwKcmV0dXJucyAwLCBhbmQgdGhlIGNhbGxlciBwcm9jZWVkcyB3aXRoIGJv Z3VzICdzdHJ1Y3QgdGNfYWN0aW9uIConIG9iamVjdCwKdGhpcyByZXN1bHRzIGluIGNyYXNoOgoK JSB0YyBhY3Rpb25zIGFkZCBhY3Rpb24gdHVubmVsX2tleSBzcmNfaXAgMS4xLjEuMSBkc3RfaXAg Mi4yLjIuMSBpZCA3IGluZGV4IDEKClsgICAzNS44MDU1MTVdIGdlbmVyYWwgcHJvdGVjdGlvbiBm YXVsdDogMDAwMCBbIzFdIFNNUCBQVEkKWyAgIDM1LjgwNjE2MV0gTW9kdWxlcyBsaW5rZWQgaW46 IGFjdF90dW5uZWxfa2V5IGt2bV9pbnRlbCBrdm0gaXJxYnlwYXNzCmNyY3QxMGRpZl9wY2xtdWwg Y3JjMzJfcGNsbXVsIGdoYXNoX2NsbXVsbmlfaW50ZWwgcGNiYyBhZXNuaV9pbnRlbCBhZXNfeDg2 XzY0CmNyeXB0b19zaW1kIGdsdWVfaGVscGVyIGNyeXB0ZCBzZXJpb19yYXcKWyAgIDM1LjgwODIz M10gQ1BVOiAxIFBJRDogNDI4IENvbW06IHRjIE5vdCB0YWludGVkIDQuMTYuMC1yYzQrICMyODYK WyAgIDM1LjgwODkyOV0gUklQOiAwMDEwOnRjZl9hY3Rpb25faW5pdCsweDkwLzB4MTkwClsgICAz NS44MDk0NTddIFJTUDogMDAxODpmZmZmYjhlZGMwNjhiOWEwIEVGTEFHUzogMDAwMTAyMDYKWyAg IDM1LjgxMDA1M10gUkFYOiAxMzIwYzAwMDAwMGEwMDAzIFJCWDogMDAwMDAwMDAwMDAwMDAwMSBS Q1g6IDAwMDAwMDAwMDAwMDAwMDAKWyAgIDM1LjgxMDg2Nl0gUkRYOiAwMDAwMDAwMDAwMDAwMDcw IFJTSTogMDAwMDAwMDAwMDAwNzk2NSBSREk6IGZmZmZiOGVkYzA2OGI5MTAKWyAgIDM1LjgxMTY2 MF0gUkJQOiBmZmZmYjhlZGMwNjhiOWQwIFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6IGZmZmZi OGVkYzA2OGI4MDgKWyAgIDM1LjgxMjQ2M10gUjEwOiBmZmZmZmZmZmMwMmJmMDQwIFIxMTogMDAw MDAwMDAwMDAwMDA0MCBSMTI6IGZmZmZiOGVkYzA2OGJiMzgKWyAgIDM1LjgxMzIzNV0gUjEzOiAw MDAwMDAwMDAwMDAwMDAwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IGZmZmZiOGVkYzA2OGI5 MTAKWyAgIDM1LjgxNDAwNl0gRlM6ICAwMDAwN2YzZDBkODU1NmMwKDAwMDApIEdTOmZmZmY5MWQx ZGJjNDAwMDAoMDAwMCkKa25sR1M6MDAwMDAwMDAwMDAwMDAwMApbICAgMzUuODE0ODgxXSBDUzog IDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzClsgICAzNS44MTU1 NDBdIENSMjogMDAwMDAwMDAwMDQzZjcyMCBDUjM6IDAwMDAwMDAwMTkyNDgwMDEgQ1I0OiAwMDAw MDAwMDAwMTYwNmEwClsgICAzNS44MTY0NTddIENhbGwgVHJhY2U6ClsgICAzNS44MTcxNThdICB0 Y19jdGxfYWN0aW9uKzB4MTFhLzB4MjIwClsgICAzNS44MTc3OTVdICBydG5ldGxpbmtfcmN2X21z ZysweDIzZC8weDJlMApbICAgMzUuODE4NDU3XSAgPyBfX3NsYWJfYWxsb2MrMHgxYy8weDMwClsg ICAzNS44MTkwNzldICA/IF9fa21hbGxvY19ub2RlX3RyYWNrX2NhbGxlcisweGIxLzB4MmIwClsg ICAzNS44MTk1NDRdICA/IHJ0bmxfY2FsY2l0LmlzcmEuMzArMHhlMC8weGUwClsgICAzNS44MjAy MzFdICBuZXRsaW5rX3Jjdl9za2IrMHhjZS8weDEwMApbICAgMzUuODIwNzQ0XSAgbmV0bGlua191 bmljYXN0KzB4MTY0LzB4MjIwClsgICAzNS44MjE1MDBdICBuZXRsaW5rX3NlbmRtc2crMHgyOTMv MHgzNzAKWyAgIDM1LjgyMjA0MF0gIHNvY2tfc2VuZG1zZysweDMwLzB4NDAKWyAgIDM1LjgyMjUw OF0gIF9fX3N5c19zZW5kbXNnKzB4MmM1LzB4MmUwClsgICAzNS44MjMxNDldICA/IHBhZ2VjYWNo ZV9nZXRfcGFnZSsweDI3LzB4MjIwClsgICAzNS44MjM3MTRdICA/IGZpbGVtYXBfZmF1bHQrMHhh Mi8weDY0MApbICAgMzUuODI0NDIzXSAgPyBwYWdlX2FkZF9maWxlX3JtYXArMHgxMDgvMHgyMDAK WyAgIDM1LjgyNTA2NV0gID8gYWxsb2Nfc2V0X3B0ZSsweDJhYS8weDUzMApbICAgMzUuODI1NTg1 XSAgPyBmaW5pc2hfZmF1bHQrMHg0ZS8weDcwClsgICAzNS44MjYxNDBdICA/IF9faGFuZGxlX21t X2ZhdWx0KzB4YmMxLzB4MTBkMApbICAgMzUuODI2NzIzXSAgPyBfX3N5c19zZW5kbXNnKzB4NDEv MHg3MApbICAgMzUuODI3MjMwXSAgX19zeXNfc2VuZG1zZysweDQxLzB4NzAKWyAgIDM1LjgyNzcx MF0gIGRvX3N5c2NhbGxfNjQrMHg2OC8weDEyMApbICAgMzUuODI4MTk1XSAgZW50cnlfU1lTQ0FM TF82NF9hZnRlcl9od2ZyYW1lKzB4M2QvMHhhMgpbICAgMzUuODI4ODU5XSBSSVA6IDAwMzM6MHg3 ZjNkMGNhNGRhNjcKWyAgIDM1LjgyOTMzMV0gUlNQOiAwMDJiOjAwMDA3ZmZjOWYyODQzMzggRUZM QUdTOiAwMDAwMDI0NiBPUklHX1JBWDoKMDAwMDAwMDAwMDAwMDAyZQpbICAgMzUuODMwMzA0XSBS QVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwN2ZmYzlmMjg0NDYwIFJDWDogMDAwMDdmM2Qw Y2E0ZGE2NwpbICAgMzUuODMxMjQ3XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiAwMDAwN2Zm YzlmMjg0M2IwIFJESTogMDAwMDAwMDAwMDAwMDAwMwpbICAgMzUuODMyMTY3XSBSQlA6IDAwMDAw MDAwNWFhNmE3YTkgUjA4OiAwMDAwMDAwMDAwMDAwMDAxIFIwOTogMDAwMDAwMDAwMDAwMDAwMApb ICAgMzUuODMzMDc1XSBSMTA6IDAwMDAwMDAwMDAwMDA1ZjEgUjExOiAwMDAwMDAwMDAwMDAwMjQ2 IFIxMjogMDAwMDAwMDAwMDAwMDAwMApbICAgMzUuODMzOTk3XSBSMTM6IDAwMDA3ZmZjOWYyODg0 YzAgUjE0OiAwMDAwMDAwMDAwMDAwMDAxIFIxNTogMDAwMDAwMDAwMDY3NDY0MApbICAgMzUuODM0 OTIzXSBDb2RlOiAyNCAzMCBiYiAwMSAwMCAwMCAwMCA0NSAzMSBmNiBlYiA1ZSA4YiA1MCAwOCA4 MyBjMiAwNyA4MyBlMgpmYyA4MyBjMiA3MCA0OSA4YiAwNyA0OCA4YiA0MCA3MCA0OCA4NSBjMCA3 NCAxMCA0OCA4OSAxNCAyNCA0YyA4OSBmZiA8ZmY+IGQwIDQ4CjhiIDE0IDI0IDQ4IDAxIGMyIDQ5 IDAxIGQ2IDQ1IDg1IGVkIDc0IDA1IDQxIDgzIDQ3IDJjClsgICAzNS44Mzc0NDJdIFJJUDogdGNm X2FjdGlvbl9pbml0KzB4OTAvMHgxOTAgUlNQOiBmZmZmYjhlZGMwNjhiOWEwClsgICAzNS44Mzgy OTFdIC0tLVsgZW5kIHRyYWNlIGEwOTVjMDZlZTRiOTdhMjYgXS0tLQoKRml4ZXM6IGQwZjZkZDhh OTE0ZiAoIm5ldC9zY2hlZDogSW50cm9kdWNlIGFjdF90dW5uZWxfa2V5IikKU2lnbmVkLW9mZi1i eTogUm9tYW4gTWFzaGFrIDxtcnZAbW9qYXRhdHUuY29tPgpBY2tlZC1ieTogQ29uZyBXYW5nIDx4 aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvYWN0X3R1bm5lbF9rZXkuYyB8IDEg KwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVk L2FjdF90dW5uZWxfa2V5LmMgYi9uZXQvc2NoZWQvYWN0X3R1bm5lbF9rZXkuYwppbmRleCAzMGM5 NjI3NGM2MzguLjIyYmYxYTM3NmI5MSAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF90dW5uZWxf a2V5LmMKKysrIGIvbmV0L3NjaGVkL2FjdF90dW5uZWxfa2V5LmMKQEAgLTE1Myw2ICsxNTMsNyBA QCBzdGF0aWMgaW50IHR1bm5lbF9rZXlfaW5pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0 dHIgKm5sYSwKIAkJbWV0YWRhdGEtPnUudHVuX2luZm8ubW9kZSB8PSBJUF9UVU5ORUxfSU5GT19U WDsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKKwkJcmV0ID0gLUVJTlZBTDsKIAkJZ290byBlcnJfb3V0 OwogCX0KIAotLSAKMi4xNC4zCgoKRnJvbSBkYWUwNTU3MTEyOThjZGJhODllM2RhN2RjMDk5OWZj NjVjODA1MmQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHdWlsbGF1bWUgTmF1bHQg PGcubmF1bHRAYWxwaGFsaW5rLmZyPgpEYXRlOiBUdWUsIDIwIE1hciAyMDE4IDE2OjQ5OjI2ICsw MTAwClN1YmplY3Q6IFtQQVRDSCAxNS80M10gcHBwOiBhdm9pZCBsb29wIGluIHhtaXQgcmVjdXJz aW9uIGRldGVjdGlvbiBjb2RlCgpbIFVwc3RyZWFtIGNvbW1pdCA2ZDA2NjczNGU5ZjA5Y2RlYTRh M2I5Y2I3NjEzNmRiM2YyOWNmYjAyIF0KCldlIGFscmVhZHkgZGV0ZWN0IHNpdHVhdGlvbnMgd2hl cmUgYSBQUFAgY2hhbm5lbCBzZW5kcyBwYWNrZXRzIGJhY2sgdG8KaXRzIHVwcGVyIFBQUCBkZXZp Y2UuIFdoaWxlIHRoaXMgaXMgZW5vdWdoIHRvIGF2b2lkIGRlYWRsb2NraW5nIG9uIHhtaXQKbG9j a3MsIHRoaXMgZG9lc24ndCBwcmV2ZW50IHBhY2tldHMgZnJvbSBsb29waW5nIGJldHdlZW4gdGhl IGNoYW5uZWwKYW5kIHRoZSB1bml0LgoKVGhlIHByb2JsZW0gaXMgdGhhdCBwcHBfc3RhcnRfeG1p dCgpIGVucXVldWVzIHBhY2tldHMgaW4gcHBwLT5maWxlLnhxCmJlZm9yZSBjaGVja2luZyBmb3Ig eG1pdCByZWN1cnNpb24uIFRoZXJlZm9yZSwgX19wcHBfeG1pdF9wcm9jZXNzKCkKbWlnaHQgZGVx dWV1ZSBhIHBhY2tldCBmcm9tIHBwcC0+ZmlsZS54cSBhbmQgc2VuZCBpdCBvbiB0aGUgY2hhbm5l bAp3aGljaCwgaW4gdHVybiwgbG9vcHMgaXQgYmFjayBvbiB0aGUgdW5pdC4gVGhlbiBwcHBfc3Rh cnRfeG1pdCgpCnF1ZXVlcyB0aGUgcGFja2V0IGJhY2sgdG8gcHBwLT5maWxlLnhxIGFuZCBfX3Bw cF94bWl0X3Byb2Nlc3MoKSBwaWNrcwppdCB1cCBhbmQgc2VuZHMgaXQgYWdhaW4gdGhyb3VnaCB0 aGUgY2hhbm5lbC4gVGhlcmVmb3JlLCB0aGUgcGFja2V0CndpbGwgbG9vcCBiZXR3ZWVuIF9fcHBw X3htaXRfcHJvY2VzcygpIGFuZCBwcHBfc3RhcnRfeG1pdCgpIHVudGlsIHNvbWUKb3RoZXIgcGFy dCBvZiB0aGUgeG1pdCBwYXRoIGRyb3BzIGl0LgoKRm9yIEwyVFAsIHdlIHJhcGlkbHkgZmlsbCB0 aGUgc2tiJ3MgaGVhZHJvb20gYW5kIHBwcG9sMnRwX3htaXQoKSBkcm9wcwp0aGUgcGFja2V0IGFm dGVyIGEgZmV3IGl0ZXJhdGlvbnMuIEJ1dCBQUFRQIHJlYWxsb2NhdGVzIHRoZSBoZWFkcm9vbQpp ZiBuZWNlc3NhcnksIGxldHRpbmcgdGhlIGxvb3AgcnVuIGFuZCBleGhhdXN0IHRoZSBtYWNoaW5l IHJlc291cmNlcwooYXMgcmVwb3J0ZWQgaW4gaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3No b3dfYnVnLmNnaT9pZD0xOTkxMDkpLgoKRml4IHRoaXMgYnkgbGV0dGluZyBfX3BwcF94bWl0X3By b2Nlc3MoKSBlbnF1ZXVlIHRoZSBza2IgdG8KcHBwLT5maWxlLnhxLCBzbyB0aGF0IHdlIGNhbiBj aGVjayBmb3IgcmVjdXJzaW9uIGJlZm9yZSBhZGRpbmcgaXQgdG8KdGhlIHF1ZXVlLiBOb3cgcHBw X3htaXRfcHJvY2VzcygpIGNhbiBkcm9wIHRoZSBwYWNrZXQgd2hlbiByZWN1cnNpb24gaXMKZGV0 ZWN0ZWQuCgpfX3BwcF9jaGFubmVsX3B1c2goKSBpcyBhIGJpdCBzcGVjaWFsLiBJdCBjYWxscyBf X3BwcF94bWl0X3Byb2Nlc3MoKQp3aXRob3V0IGhhdmluZyBhbnkgYWN0dWFsIHBhY2tldCB0byBz ZW5kLiBUaGlzIGlzIHVzZWQgYnkKcHBwX291dHB1dF93YWtldXAoKSB0byByZS1lbmFibGUgdHJh bnNtaXNzaW9uIG9uIHRoZSBwYXJlbnQgdW5pdCAoZm9yCmltcGxlbWVudGF0aW9ucyBsaWtlIHBw cF9hc3luYy5jLCB3aGVyZSB0aGUgLnN0YXJ0X3htaXQoKSBmdW5jdGlvbgptaWdodCBub3QgY29u c3VtZSB0aGUgc2tiLCBsZWF2aW5nIGl0IGluIHBwcC0+eG1pdF9wZW5kaW5nIGFuZApkaXNhYmxp bmcgdHJhbnNtaXNzaW9uKS4KVGhlcmVmb3JlLCBfX3BwcF94bWl0X3Byb2Nlc3MoKSBuZWVkcyB0 byBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgc2tiIGlzCk5VTEwsIGRlcXVldWluZyBhcyBtYW55IHBh Y2tldHMgYXMgcG9zc2libGUgZnJvbSBwcHAtPmZpbGUueHEuCgpSZXBvcnRlZC1ieTogeHUgaGVu ZyA8eHVoZW5nMzMzQHpvaG8uY29tPgpGaXhlczogNTU0NTRhNTY1ODM2ICgicHBwOiBhdm9pZCBk ZWFsb2NrIG9uIHJlY3Vyc2l2ZSB4bWl0IikKU2lnbmVkLW9mZi1ieTogR3VpbGxhdW1lIE5hdWx0 IDxnLm5hdWx0QGFscGhhbGluay5mcj4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jIHwg MjYgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRp b25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHBw X2dlbmVyaWMuYyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jCmluZGV4IDM4Y2QyZThm YWUyMy4uMzRiMjRkN2UxZTJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVy aWMuYworKysgYi9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYwpAQCAtMjU2LDcgKzI1Niw3 IEBAIHN0cnVjdCBwcHBfbmV0IHsKIC8qIFByb3RvdHlwZXMuICovCiBzdGF0aWMgaW50IHBwcF91 bmF0dGFjaGVkX2lvY3RsKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHBwcF9maWxlICpwZiwKIAkJ CXN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7 Ci1zdGF0aWMgdm9pZCBwcHBfeG1pdF9wcm9jZXNzKHN0cnVjdCBwcHAgKnBwcCk7CitzdGF0aWMg dm9pZCBwcHBfeG1pdF9wcm9jZXNzKHN0cnVjdCBwcHAgKnBwcCwgc3RydWN0IHNrX2J1ZmYgKnNr Yik7CiBzdGF0aWMgdm9pZCBwcHBfc2VuZF9mcmFtZShzdHJ1Y3QgcHBwICpwcHAsIHN0cnVjdCBz a19idWZmICpza2IpOwogc3RhdGljIHZvaWQgcHBwX3B1c2goc3RydWN0IHBwcCAqcHBwKTsKIHN0 YXRpYyB2b2lkIHBwcF9jaGFubmVsX3B1c2goc3RydWN0IGNoYW5uZWwgKnBjaCk7CkBAIC01MTIs MTMgKzUxMiwxMiBAQCBzdGF0aWMgc3NpemVfdCBwcHBfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUs IGNvbnN0IGNoYXIgX191c2VyICpidWYsCiAJCWdvdG8gb3V0OwogCX0KIAotCXNrYl9xdWV1ZV90 YWlsKCZwZi0+eHEsIHNrYik7Ci0KIAlzd2l0Y2ggKHBmLT5raW5kKSB7CiAJY2FzZSBJTlRFUkZB Q0U6Ci0JCXBwcF94bWl0X3Byb2Nlc3MoUEZfVE9fUFBQKHBmKSk7CisJCXBwcF94bWl0X3Byb2Nl c3MoUEZfVE9fUFBQKHBmKSwgc2tiKTsKIAkJYnJlYWs7CiAJY2FzZSBDSEFOTkVMOgorCQlza2Jf cXVldWVfdGFpbCgmcGYtPnhxLCBza2IpOwogCQlwcHBfY2hhbm5lbF9wdXNoKFBGX1RPX0NIQU5O RUwocGYpKTsKIAkJYnJlYWs7CiAJfQpAQCAtMTI2NCw4ICsxMjYzLDggQEAgcHBwX3N0YXJ0X3ht aXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlwdXRfdW5h bGlnbmVkX2JlMTYocHJvdG8sIHBwKTsKIAogCXNrYl9zY3J1Yl9wYWNrZXQoc2tiLCAhbmV0X2Vx KHBwcC0+cHBwX25ldCwgZGV2X25ldChkZXYpKSk7Ci0Jc2tiX3F1ZXVlX3RhaWwoJnBwcC0+Zmls ZS54cSwgc2tiKTsKLQlwcHBfeG1pdF9wcm9jZXNzKHBwcCk7CisJcHBwX3htaXRfcHJvY2Vzcyhw cHAsIHNrYik7CisKIAlyZXR1cm4gTkVUREVWX1RYX09LOwogCiAgb3V0ZjoKQEAgLTE0MTcsMTMg KzE0MTYsMTQgQEAgc3RhdGljIHZvaWQgcHBwX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYp CiAgKi8KIAogLyogQ2FsbGVkIHRvIGRvIGFueSB3b3JrIHF1ZXVlZCB1cCBvbiB0aGUgdHJhbnNt aXQgc2lkZSB0aGF0IGNhbiBub3cgYmUgZG9uZSAqLwotc3RhdGljIHZvaWQgX19wcHBfeG1pdF9w cm9jZXNzKHN0cnVjdCBwcHAgKnBwcCkKK3N0YXRpYyB2b2lkIF9fcHBwX3htaXRfcHJvY2Vzcyhz dHJ1Y3QgcHBwICpwcHAsIHN0cnVjdCBza19idWZmICpza2IpCiB7Ci0Jc3RydWN0IHNrX2J1ZmYg KnNrYjsKLQogCXBwcF94bWl0X2xvY2socHBwKTsKIAlpZiAoIXBwcC0+Y2xvc2luZykgewogCQlw cHBfcHVzaChwcHApOworCisJCWlmIChza2IpCisJCQlza2JfcXVldWVfdGFpbCgmcHBwLT5maWxl LnhxLCBza2IpOwogCQl3aGlsZSAoIXBwcC0+eG1pdF9wZW5kaW5nICYmCiAJCSAgICAgICAoc2ti ID0gc2tiX2RlcXVldWUoJnBwcC0+ZmlsZS54cSkpKQogCQkJcHBwX3NlbmRfZnJhbWUocHBwLCBz a2IpOwpAQCAtMTQzNyw3ICsxNDM3LDcgQEAgc3RhdGljIHZvaWQgX19wcHBfeG1pdF9wcm9jZXNz KHN0cnVjdCBwcHAgKnBwcCkKIAlwcHBfeG1pdF91bmxvY2socHBwKTsKIH0KIAotc3RhdGljIHZv aWQgcHBwX3htaXRfcHJvY2VzcyhzdHJ1Y3QgcHBwICpwcHApCitzdGF0aWMgdm9pZCBwcHBfeG1p dF9wcm9jZXNzKHN0cnVjdCBwcHAgKnBwcCwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAlsb2Nh bF9iaF9kaXNhYmxlKCk7CiAKQEAgLTE0NDUsNyArMTQ0NSw3IEBAIHN0YXRpYyB2b2lkIHBwcF94 bWl0X3Byb2Nlc3Moc3RydWN0IHBwcCAqcHBwKQogCQlnb3RvIGVycjsKIAogCSgqdGhpc19jcHVf cHRyKHBwcC0+eG1pdF9yZWN1cnNpb24pKSsrOwotCV9fcHBwX3htaXRfcHJvY2VzcyhwcHApOwor CV9fcHBwX3htaXRfcHJvY2VzcyhwcHAsIHNrYik7CiAJKCp0aGlzX2NwdV9wdHIocHBwLT54bWl0 X3JlY3Vyc2lvbikpLS07CiAKIAlsb2NhbF9iaF9lbmFibGUoKTsKQEAgLTE0NTUsNiArMTQ1NSw4 IEBAIHN0YXRpYyB2b2lkIHBwcF94bWl0X3Byb2Nlc3Moc3RydWN0IHBwcCAqcHBwKQogZXJyOgog CWxvY2FsX2JoX2VuYWJsZSgpOwogCisJa2ZyZWVfc2tiKHNrYik7CisKIAlpZiAobmV0X3JhdGVs aW1pdCgpKQogCQluZXRkZXZfZXJyKHBwcC0+ZGV2LCAicmVjdXJzaW9uIGRldGVjdGVkXG4iKTsK IH0KQEAgLTE5MzksNyArMTk0MSw3IEBAIHN0YXRpYyB2b2lkIF9fcHBwX2NoYW5uZWxfcHVzaChz dHJ1Y3QgY2hhbm5lbCAqcGNoKQogCWlmIChza2JfcXVldWVfZW1wdHkoJnBjaC0+ZmlsZS54cSkp IHsKIAkJcHBwID0gcGNoLT5wcHA7CiAJCWlmIChwcHApCi0JCQlfX3BwcF94bWl0X3Byb2Nlc3Mo cHBwKTsKKwkJCV9fcHBwX3htaXRfcHJvY2VzcyhwcHAsIE5VTEwpOwogCX0KIH0KIAotLSAKMi4x NC4zCgoKRnJvbSBkYjc1ZjU1MDFhNDgwYWNkM2I4NzZhMGZiZmU0NDE5MzgzNDBmZTNkIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEJsYWtleSA8cGF1bGJAbWVsbGFub3guY29t PgpEYXRlOiBTdW4sIDQgTWFyIDIwMTggMTc6Mjk6NDggKzAyMDAKU3ViamVjdDogW1BBVENIIDE2 LzQzXSByaGFzaHRhYmxlOiBGaXggcmhsaXN0IGR1cGxpY2F0ZXMgaW5zZXJ0aW9uCgpbIFVwc3Ry ZWFtIGNvbW1pdCBkM2RjZjhlYjYxNTUzNzUyNmJkNDJmZjI3YTA4MWQ0NmQzMzc4MTZlIF0KCldo ZW4gaW5zZXJ0aW5nIGR1cGxpY2F0ZSBvYmplY3RzICh0aG9zZSB3aXRoIHRoZSBzYW1lIGtleSks CmN1cnJlbnQgcmhsaXN0IGltcGxlbWVudGF0aW9uIG1lc3NlcyB1cCB0aGUgY2hhaW4gcG9pbnRl cnMgYnkKdXBkYXRpbmcgdGhlIGJ1Y2tldCBwb2ludGVyIGluc3RlYWQgb2YgcHJldiBuZXh0IHBv aW50ZXIgdG8gdGhlCm5ld2x5IGluc2VydGVkIG5vZGUuIFRoaXMgY2F1c2VzIG1pc3NpbmcgZWxl bWVudHMgb24gcmVtb3ZhbCBhbmQKdHJhdmVzYWwuCgpGaXggdGhhdCBieSBwcm9wZXJseSB1cGRh dGluZyBwcHJldiBwb2ludGVyIHRvIHBvaW50IHRvCnRoZSBjb3JyZWN0IHJoYXNoX2hlYWQgbmV4 dCBwb2ludGVyLgoKSXNzdWU6IDEyNDEwNzYKQ2hhbmdlLUlkOiBJODZiMmMxNDBiY2I0YWViMTBi NzBhNzJhMjY3ZmY1OTBiYjJiMTdlNwpGaXhlczogY2EyNjg5M2YwNWU4ICgncmhhc2h0YWJsZTog QWRkIHJobGlzdCBpbnRlcmZhY2UnKQpTaWduZWQtb2ZmLWJ5OiBQYXVsIEJsYWtleSA8cGF1bGJA bWVsbGFub3guY29tPgpBY2tlZC1ieTogSGVyYmVydCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEu b3JnLmF1PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogaW5jbHVkZS9saW51eC9yaGFzaHRhYmxlLmggfCA0ICsrKy0KIGxpYi9yaGFzaHRh YmxlLmMgICAgICAgICAgIHwgNCArKystCiAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3JoYXNodGFibGUu aCBiL2luY2x1ZGUvbGludXgvcmhhc2h0YWJsZS5oCmluZGV4IDM2MWMwOGUzNWRiYy4uN2ZkNTE0 ZjM2ZTc0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3JoYXNodGFibGUuaAorKysgYi9pbmNs dWRlL2xpbnV4L3JoYXNodGFibGUuaApAQCAtNzUwLDggKzc1MCwxMCBAQCBzdGF0aWMgaW5saW5l IHZvaWQgKl9fcmhhc2h0YWJsZV9pbnNlcnRfZmFzdCgKIAkJaWYgKCFrZXkgfHwKIAkJICAgIChw YXJhbXMub2JqX2NtcGZuID8KIAkJICAgICBwYXJhbXMub2JqX2NtcGZuKCZhcmcsIHJodF9vYmoo aHQsIGhlYWQpKSA6Ci0JCSAgICAgcmhhc2h0YWJsZV9jb21wYXJlKCZhcmcsIHJodF9vYmooaHQs IGhlYWQpKSkpCisJCSAgICAgcmhhc2h0YWJsZV9jb21wYXJlKCZhcmcsIHJodF9vYmooaHQsIGhl YWQpKSkpIHsKKwkJCXBwcmV2ID0gJmhlYWQtPm5leHQ7CiAJCQljb250aW51ZTsKKwkJfQogCiAJ CWRhdGEgPSByaHRfb2JqKGh0LCBoZWFkKTsKIApkaWZmIC0tZ2l0IGEvbGliL3JoYXNodGFibGUu YyBiL2xpYi9yaGFzaHRhYmxlLmMKaW5kZXggZGRkN2RkZTg3YzNjLi5iNzM0Y2U3MzFhN2EgMTAw NjQ0Ci0tLSBhL2xpYi9yaGFzaHRhYmxlLmMKKysrIGIvbGliL3JoYXNodGFibGUuYwpAQCAtNTM3 LDggKzUzNywxMCBAQCBzdGF0aWMgdm9pZCAqcmhhc2h0YWJsZV9sb29rdXBfb25lKHN0cnVjdCBy aGFzaHRhYmxlICpodCwKIAkJaWYgKCFrZXkgfHwKIAkJICAgIChodC0+cC5vYmpfY21wZm4gPwog CQkgICAgIGh0LT5wLm9ial9jbXBmbigmYXJnLCByaHRfb2JqKGh0LCBoZWFkKSkgOgotCQkgICAg IHJoYXNodGFibGVfY29tcGFyZSgmYXJnLCByaHRfb2JqKGh0LCBoZWFkKSkpKQorCQkgICAgIHJo YXNodGFibGVfY29tcGFyZSgmYXJnLCByaHRfb2JqKGh0LCBoZWFkKSkpKSB7CisJCQlwcHJldiA9 ICZoZWFkLT5uZXh0OwogCQkJY29udGludWU7CisJCX0KIAogCQlpZiAoIWh0LT5yaGxpc3QpCiAJ CQlyZXR1cm4gcmh0X29iaihodCwgaGVhZCk7Ci0tIAoyLjE0LjMKCgpGcm9tIGY1NDY1ZGFhNTUw NjVmMjBhMGE0MjFiNGFhNGI0NjMyZWJmOTgxZmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFRvbSBIZXJiZXJ0IDx0b21AcXVhbnRvbml1bS5uZXQ+CkRhdGU6IFR1ZSwgMTMgTWFyIDIw MTggMTI6MDE6NDMgLTA3MDAKU3ViamVjdDogW1BBVENIIDE3LzQzXSBrY206IGxvY2sgbG93ZXIg c29ja2V0IGluIGtjbV9hdHRhY2gKClsgVXBzdHJlYW0gY29tbWl0IDJjYzY4M2U4OGMwYzk5M2Fj MzcyMWQ5YjcwMmNiMDYzMGFiZTI4NzkgXQoKTmVlZCB0byBsb2NrIGxvd2VyIHNvY2tldCBpbiBv cmRlciB0byBwcm92aWRlIG11dHVhbCBleGNsdXNpb24Kd2l0aCBrY21fdW5hdHRhY2guCgp2Mjog QWRkIFJlcG9ydGVkLWJ5IGZvciBzeXpib3QKCkZpeGVzOiBhYjdhYzRlYjk4MzJlMzJhMDlmNGU4 MDQgKCJrY206IEtlcm5lbCBDb25uZWN0aW9uIE11bHRpcGxleG9yIG1vZHVsZSIpClJlcG9ydGVk LWJ5OiBzeXpib3QrZWE3NWMwZmZjZDM1M2QzMjUxNWYwNjRhYWViZWZjNTI3OWU2MTYxZUBzeXpr YWxsZXIuYXBwc3BvdG1haWwuY29tClNpZ25lZC1vZmYtYnk6IFRvbSBIZXJiZXJ0IDx0b21AcXVh bnRvbml1bS5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQva2NtL2tjbXNvY2suYyB8IDMzICsrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDEwIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9rY20va2Ntc29jay5jIGIvbmV0L2tjbS9rY21zb2Nr LmMKaW5kZXggNThkNTNiOTA3ZDUzLi45ZGI0OTgwNWI3YmUgMTAwNjQ0Ci0tLSBhL25ldC9rY20v a2Ntc29jay5jCisrKyBiL25ldC9rY20va2Ntc29jay5jCkBAIC0xMzgxLDI0ICsxMzgxLDMyIEBA IHN0YXRpYyBpbnQga2NtX2F0dGFjaChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2V0 ICpjc29jaywKIAkJLnBhcnNlX21zZyA9IGtjbV9wYXJzZV9mdW5jX3N0cnBhcnNlciwKIAkJLnJl YWRfc29ja19kb25lID0ga2NtX3JlYWRfc29ja19kb25lLAogCX07Ci0JaW50IGVycjsKKwlpbnQg ZXJyID0gMDsKIAogCWNzayA9IGNzb2NrLT5zazsKIAlpZiAoIWNzaykKIAkJcmV0dXJuIC1FSU5W QUw7CiAKKwlsb2NrX3NvY2soY3NrKTsKKwogCS8qIE9ubHkgYWxsb3cgVENQIHNvY2tldHMgdG8g YmUgYXR0YWNoZWQgZm9yIG5vdyAqLwogCWlmICgoY3NrLT5za19mYW1pbHkgIT0gQUZfSU5FVCAm JiBjc2stPnNrX2ZhbWlseSAhPSBBRl9JTkVUNikgfHwKLQkgICAgY3NrLT5za19wcm90b2NvbCAh PSBJUFBST1RPX1RDUCkKLQkJcmV0dXJuIC1FT1BOT1RTVVBQOworCSAgICBjc2stPnNrX3Byb3Rv Y29sICE9IElQUFJPVE9fVENQKSB7CisJCWVyciA9IC1FT1BOT1RTVVBQOworCQlnb3RvIG91dDsK Kwl9CiAKIAkvKiBEb24ndCBhbGxvdyBsaXN0ZW5lcnMgb3IgY2xvc2VkIHNvY2tldHMgKi8KLQlp ZiAoY3NrLT5za19zdGF0ZSA9PSBUQ1BfTElTVEVOIHx8IGNzay0+c2tfc3RhdGUgPT0gVENQX0NM T1NFKQotCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJaWYgKGNzay0+c2tfc3RhdGUgPT0gVENQX0xJ U1RFTiB8fCBjc2stPnNrX3N0YXRlID09IFRDUF9DTE9TRSkgeworCQllcnIgPSAtRU9QTk9UU1VQ UDsKKwkJZ290byBvdXQ7CisJfQogCiAJcHNvY2sgPSBrbWVtX2NhY2hlX3phbGxvYyhrY21fcHNv Y2twLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXBzb2NrKQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAo IXBzb2NrKSB7CisJCWVyciA9IC1FTk9NRU07CisJCWdvdG8gb3V0OworCX0KIAogCXBzb2NrLT5t dXggPSBtdXg7CiAJcHNvY2stPnNrID0gY3NrOwpAQCAtMTQwNyw3ICsxNDE1LDcgQEAgc3RhdGlj IGludCBrY21fYXR0YWNoKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrZXQgKmNzb2Nr LAogCWVyciA9IHN0cnBfaW5pdCgmcHNvY2stPnN0cnAsIGNzaywgJmNiKTsKIAlpZiAoZXJyKSB7 CiAJCWttZW1fY2FjaGVfZnJlZShrY21fcHNvY2twLCBwc29jayk7Ci0JCXJldHVybiBlcnI7CisJ CWdvdG8gb3V0OwogCX0KIAogCXdyaXRlX2xvY2tfYmgoJmNzay0+c2tfY2FsbGJhY2tfbG9jayk7 CkBAIC0xNDE5LDcgKzE0MjcsOCBAQCBzdGF0aWMgaW50IGtjbV9hdHRhY2goc3RydWN0IHNvY2tl dCAqc29jaywgc3RydWN0IHNvY2tldCAqY3NvY2ssCiAJCXdyaXRlX3VubG9ja19iaCgmY3NrLT5z a19jYWxsYmFja19sb2NrKTsKIAkJc3RycF9kb25lKCZwc29jay0+c3RycCk7CiAJCWttZW1fY2Fj aGVfZnJlZShrY21fcHNvY2twLCBwc29jayk7Ci0JCXJldHVybiAtRUFMUkVBRFk7CisJCWVyciA9 IC1FQUxSRUFEWTsKKwkJZ290byBvdXQ7CiAJfQogCiAJcHNvY2stPnNhdmVfZGF0YV9yZWFkeSA9 IGNzay0+c2tfZGF0YV9yZWFkeTsKQEAgLTE0NTUsNyArMTQ2NCwxMCBAQCBzdGF0aWMgaW50IGtj bV9hdHRhY2goc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2tldCAqY3NvY2ssCiAJLyog U2NoZWR1bGUgUlggd29yayBpbiBjYXNlIHRoZXJlIGFyZSBhbHJlYWR5IGJ5dGVzIHF1ZXVlZCAq LwogCXN0cnBfY2hlY2tfcmN2KCZwc29jay0+c3RycCk7CiAKLQlyZXR1cm4gMDsKK291dDoKKwly ZWxlYXNlX3NvY2soY3NrKTsKKworCXJldHVybiBlcnI7CiB9CiAKIHN0YXRpYyBpbnQga2NtX2F0 dGFjaF9pb2N0bChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qga2NtX2F0dGFjaCAqaW5mbykK QEAgLTE1MDcsNiArMTUxOSw3IEBAIHN0YXRpYyB2b2lkIGtjbV91bmF0dGFjaChzdHJ1Y3Qga2Nt X3Bzb2NrICpwc29jaykKIAogCWlmIChXQVJOX09OKHBzb2NrLT5yeF9rY20pKSB7CiAJCXdyaXRl X3VubG9ja19iaCgmY3NrLT5za19jYWxsYmFja19sb2NrKTsKKwkJcmVsZWFzZV9zb2NrKGNzayk7 CiAJCXJldHVybjsKIAl9CiAKLS0gCjIuMTQuMwoKCkZyb20gYmM0NmE1ZDk4NDgzZGQ5ZDRhODkw MTMwNDQwN2ZmM2U0MDNhMDljZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWxleGV5 IEtvZGFuZXYgPGFsZXhleS5rb2RhbmV2QG9yYWNsZS5jb20+CkRhdGU6IE1vbiwgNSBNYXIgMjAx OCAyMDo1Mjo1NCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTgvNDNdIHNjaF9uZXRlbTogZml4IHNr YiBsZWFrIGluIG5ldGVtX2VucXVldWUoKQoKWyBVcHN0cmVhbSBjb21taXQgMzVkODg5ZDEwYjY0 OWZkYTY2MTIxODkxZWMwNWVjYTg4MTUwMDU5ZCBdCgpXaGVuIHdlIGV4Y2VlZCBjdXJyZW50IHBh Y2tldHMgbGltaXQgYW5kIHdlIGhhdmUgbW9yZSB0aGFuIG9uZQpzZWdtZW50IGluIHRoZSBsaXN0 IHJldHVybmVkIGJ5IHNrYl9nc29fc2VnbWVudCgpLCBuZXRlbSBkcm9wcwpvbmx5IHRoZSBmaXJz dCBvbmUsIHNraXBwaW5nIHRoZSByZXN0LCBoZW5jZSBrbWVtbGVhayByZXBvcnRzOgoKdW5yZWZl cmVuY2VkIG9iamVjdCAweGZmZmY4ODBiNWQyM2I2MDAgKHNpemUgMTAyNCk6CiAgY29tbSAic29m dGlycSIsIHBpZCAwLCBqaWZmaWVzIDQzODQ1Mjc3NjMgKGFnZSAyNzcwLjYyOXMpCiAgaGV4IGR1 bXAgKGZpcnN0IDMyIGJ5dGVzKToKICAgIDAwIDgwIDIzIDVkIDBiIDg4IGZmIGZmIDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwICAuLiNdLi4uLi4uLi4uLi4uCiAgICAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgLi4uLi4uLi4uLi4uLi4uLgogIGJhY2t0cmFj ZToKICAgIFs8MDAwMDAwMDBkOGExOWI5ZD5dIF9fYWxsb2Nfc2tiKzB4YzkvMHg1MjAKICAgIFs8 MDAwMDAwMDAxNzA5YjMyZj5dIHNrYl9zZWdtZW50KzB4OGM4LzB4MzcxMAogICAgWzwwMDAwMDAw MGM3YjliYjg4Pl0gdGNwX2dzb19zZWdtZW50KzB4MzMxLzB4MTgzMAogICAgWzwwMDAwMDAwMGM5 MjFjYmExPl0gaW5ldF9nc29fc2VnbWVudCsweDQ3Ni8weDEzNzAKICAgIFs8MDAwMDAwMDA4Yjc2 MmRkND5dIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgxZjkvMHg1MTAKICAgIFs8MDAwMDAwMDAyMTgy NjYwYT5dIF9fc2tiX2dzb19zZWdtZW50KzB4MWRkLzB4NjIwCiAgICBbPDAwMDAwMDAwNDEyNjUx Yjk+XSBuZXRlbV9lbnF1ZXVlKzB4MTUzNi8weDI1OTAgW3NjaF9uZXRlbV0KICAgIFs8MDAwMDAw MDAwNWQzYjJhOT5dIF9fZGV2X3F1ZXVlX3htaXQrMHgxMTY3LzB4MjEyMAogICAgWzwwMDAwMDAw MGZjNWY3MzI3Pl0gaXBfZmluaXNoX291dHB1dDIrMHg5OTgvMHhmMDAKICAgIFs8MDAwMDAwMDBk MzA5ZTlkMz5dIGlwX291dHB1dCsweDFhYS8weDJjMAogICAgWzwwMDAwMDAwMDdlY2JkM2E0Pl0g dGNwX3RyYW5zbWl0X3NrYisweDE4ZGIvMHgzNjcwCiAgICBbPDAwMDAwMDAwNDJkMmE0NWY+XSB0 Y3Bfd3JpdGVfeG1pdCsweDRkNC8weDU4YzAKICAgIFs8MDAwMDAwMDA1NmE0NDE5OT5dIHRjcF90 YXNrbGV0X2Z1bmMrMHgzZDkvMHg1NDAKICAgIFs8MDAwMDAwMDAxM2QwNmQwMj5dIHRhc2tsZXRf YWN0aW9uKzB4MWNhLzB4MjUwCiAgICBbPDAwMDAwMDAwZmNkZTBiOGI+XSBfX2RvX3NvZnRpcnEr MHgxYjQvMHg1YTMKICAgIFs8MDAwMDAwMDBlN2VkMDI3Yz5dIGlycV9leGl0KzB4MWUyLzB4MjEw CgpGaXggaXQgYnkgYWRkaW5nIHRoZSByZXN0IG9mIHRoZSBzZWdtZW50cywgaWYgYW55LCB0byBz a2IgJ3RvX2ZyZWUnCmxpc3QuIEFkZCBuZXcgX19xZGlzY19kcm9wX2FsbCgpIGFuZCBxZGlzY19k cm9wX2FsbCgpIGZ1bmN0aW9ucwpiZWNhdXNlIHRoZXkgY2FuIGJlIHVzZWZ1bCBpbiB0aGUgZnV0 dXJlIGlmIHdlIG5lZWQgdG8gZHJvcCBzZWdtZW50ZWQKR1NPIHBhY2tldHMgaW4gb3RoZXIgcGxh Y2VzLgoKRml4ZXM6IDYwNzFiZDFhYTEzZSAoIm5ldGVtOiBTZWdtZW50IEdTTyBwYWNrZXRzIG9u IGVucXVldWUiKQpTaWduZWQtb2ZmLWJ5OiBBbGV4ZXkgS29kYW5ldiA8YWxleGV5LmtvZGFuZXZA b3JhY2xlLmNvbT4KQWNrZWQtYnk6IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZlci5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBpbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oIHwgMTkgKysrKysrKysrKysrKysrKysrKwogbmV0 L3NjaGVkL3NjaF9uZXRlbS5jICAgICB8ICAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDIwIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9zY2hfZ2Vu ZXJpYy5oIGIvaW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaAppbmRleCA2MDczZThiYWUwMjUuLmY1 OWFjYWNhYTI2NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaAorKysgYi9p bmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oCkBAIC03MjMsNiArNzIzLDE2IEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBfX3FkaXNjX2Ryb3Aoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHNrX2J1ZmYg Kip0b19mcmVlKQogCSp0b19mcmVlID0gc2tiOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQgX19x ZGlzY19kcm9wX2FsbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorCQkJCSAgICBzdHJ1Y3Qgc2tfYnVm ZiAqKnRvX2ZyZWUpCit7CisJaWYgKHNrYi0+cHJldikKKwkJc2tiLT5wcmV2LT5uZXh0ID0gKnRv X2ZyZWU7CisJZWxzZQorCQlza2ItPm5leHQgPSAqdG9fZnJlZTsKKwkqdG9fZnJlZSA9IHNrYjsK K30KKwogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgX19xZGlzY19xdWV1ZV9kcm9wX2hlYWQo c3RydWN0IFFkaXNjICpzY2gsCiAJCQkJCQkgICBzdHJ1Y3QgcWRpc2Nfc2tiX2hlYWQgKnFoLAog CQkJCQkJICAgc3RydWN0IHNrX2J1ZmYgKip0b19mcmVlKQpAQCAtODQzLDYgKzg1MywxNSBAQCBz dGF0aWMgaW5saW5lIGludCBxZGlzY19kcm9wKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBR ZGlzYyAqc2NoLAogCXJldHVybiBORVRfWE1JVF9EUk9QOwogfQogCitzdGF0aWMgaW5saW5lIGlu dCBxZGlzY19kcm9wX2FsbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCwK KwkJCQkgc3RydWN0IHNrX2J1ZmYgKip0b19mcmVlKQoreworCV9fcWRpc2NfZHJvcF9hbGwoc2ti LCB0b19mcmVlKTsKKwlxZGlzY19xc3RhdHNfZHJvcChzY2gpOworCisJcmV0dXJuIE5FVF9YTUlU X0RST1A7Cit9CisKIC8qIExlbmd0aCB0byBUaW1lIChMMlQpIGxvb2t1cCBpbiBhIHFkaXNjX3Jh dGVfdGFibGUsIHRvIGRldGVybWluZSBob3cKICAgIGxvbmcgaXQgd2lsbCB0YWtlIHRvIHNlbmQg YSBwYWNrZXQgZ2l2ZW4gaXRzIHNpemUuCiAgKi8KZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hf bmV0ZW0uYyBiL25ldC9zY2hlZC9zY2hfbmV0ZW0uYwppbmRleCBiMTI2NmU3NWNhNDMuLjhjOGRm NzVkYmVhZCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9uZXRlbS5jCisrKyBiL25ldC9zY2hl ZC9zY2hfbmV0ZW0uYwpAQCAtNTEzLDcgKzUxMyw3IEBAIHN0YXRpYyBpbnQgbmV0ZW1fZW5xdWV1 ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCwKIAl9CiAKIAlpZiAodW5s aWtlbHkoc2NoLT5xLnFsZW4gPj0gc2NoLT5saW1pdCkpCi0JCXJldHVybiBxZGlzY19kcm9wKHNr Yiwgc2NoLCB0b19mcmVlKTsKKwkJcmV0dXJuIHFkaXNjX2Ryb3BfYWxsKHNrYiwgc2NoLCB0b19m cmVlKTsKIAogCXFkaXNjX3FzdGF0c19iYWNrbG9nX2luYyhzY2gsIHNrYik7CiAKLS0gCjIuMTQu MwoKCkZyb20gZjUwNWUzNGE0OGE4OGNlOTM3ZDJkYzE0MzRjNTAwMWZiNmI3ZGMyYSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpEYXRlOiBNb24sIDUgTWFyIDIwMTggMDg6NTE6MDMgLTA4MDAKU3ViamVjdDogW1BBVENIIDE5 LzQzXSBpZWVlODAyMTU0OiA2bG93cGFuOiBmaXggcG9zc2libGUgTlVMTCBkZXJlZiBpbgogbG93 cGFuX2RldmljZV9ldmVudCgpCgpbIFVwc3RyZWFtIGNvbW1pdCBjYTBlZGIxMzFiZGYxZTZiZWFl YjJiODI4OWZkNmIzNzRiNzQxNDdkIF0KCkEgdHVuIGRldmljZSB0eXBlIGNhbiB0cml2aWFsbHkg YmUgc2V0IHRvIGFyYml0cmFyeSB2YWx1ZSB1c2luZwpUVU5TRVRMSU5LIGlvY3RsKCkuCgpUaGVy ZWZvcmUsIGxvd3Bhbl9kZXZpY2VfZXZlbnQoKSBtdXN0IHJlYWxseSBjaGVjayB0aGF0IGllZWU4 MDIxNTRfcHRyCmlzIG5vdCBOVUxMLgoKRml4ZXM6IDJjODhiNTI4M2Y2MGQgKCJpZWVlODAyMTU0 OiA2bG93cGFuOiByZW1vdmUgY2hlY2sgb24gbnVsbCIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVt YXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IEFsZXhhbmRlciBBcmluZyA8YWxleC5hcmlu Z0BnbWFpbC5jb20+CkNjOiBTdGVmYW4gU2NobWlkdCA8c3RlZmFuQG9zZy5zYW1zdW5nLmNvbT4K UmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+CkFja2VkLWJ5 OiBTdGVmYW4gU2NobWlkdCA8c3RlZmFuQG9zZy5zYW1zdW5nLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pZWVlODAyMTU0 LzZsb3dwYW4vY29yZS5jIHwgMTIgKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNl cnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pZWVlODAyMTU0LzZs b3dwYW4vY29yZS5jIGIvbmV0L2llZWU4MDIxNTQvNmxvd3Bhbi9jb3JlLmMKaW5kZXggOTc0NzY1 YjdkOTJhLi5lOWYwNDg5ZTQyMjkgMTAwNjQ0Ci0tLSBhL25ldC9pZWVlODAyMTU0LzZsb3dwYW4v Y29yZS5jCisrKyBiL25ldC9pZWVlODAyMTU0LzZsb3dwYW4vY29yZS5jCkBAIC0yMDYsOSArMjA2 LDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBsb3dwYW5fbmV0bGlua19maW5pKHZvaWQpCiBzdGF0 aWMgaW50IGxvd3Bhbl9kZXZpY2VfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp1bnVzZWQs CiAJCQkgICAgICAgdW5zaWduZWQgbG9uZyBldmVudCwgdm9pZCAqcHRyKQogewotCXN0cnVjdCBu ZXRfZGV2aWNlICp3ZGV2ID0gbmV0ZGV2X25vdGlmaWVyX2luZm9fdG9fZGV2KHB0cik7CisJc3Ry dWN0IG5ldF9kZXZpY2UgKm5kZXYgPSBuZXRkZXZfbm90aWZpZXJfaW5mb190b19kZXYocHRyKTsK KwlzdHJ1Y3Qgd3Bhbl9kZXYgKndwYW5fZGV2OwogCi0JaWYgKHdkZXYtPnR5cGUgIT0gQVJQSFJE X0lFRUU4MDIxNTQpCisJaWYgKG5kZXYtPnR5cGUgIT0gQVJQSFJEX0lFRUU4MDIxNTQpCisJCXJl dHVybiBOT1RJRllfRE9ORTsKKwl3cGFuX2RldiA9IG5kZXYtPmllZWU4MDIxNTRfcHRyOworCWlm ICghd3Bhbl9kZXYpCiAJCXJldHVybiBOT1RJRllfRE9ORTsKIAogCXN3aXRjaCAoZXZlbnQpIHsK QEAgLTIxNyw4ICsyMjEsOCBAQCBzdGF0aWMgaW50IGxvd3Bhbl9kZXZpY2VfZXZlbnQoc3RydWN0 IG5vdGlmaWVyX2Jsb2NrICp1bnVzZWQsCiAJCSAqIGFsc28gZGVsZXRlIHBvc3NpYmxlIGxvd3Bh biBpbnRlcmZhY2VzIHdoaWNoIGJlbG9uZ3MKIAkJICogdG8gdGhlIHdwYW4gaW50ZXJmYWNlLgog CQkgKi8KLQkJaWYgKHdkZXYtPmllZWU4MDIxNTRfcHRyLT5sb3dwYW5fZGV2KQotCQkJbG93cGFu X2RlbGxpbmsod2Rldi0+aWVlZTgwMjE1NF9wdHItPmxvd3Bhbl9kZXYsIE5VTEwpOworCQlpZiAo d3Bhbl9kZXYtPmxvd3Bhbl9kZXYpCisJCQlsb3dwYW5fZGVsbGluayh3cGFuX2Rldi0+bG93cGFu X2RldiwgTlVMTCk7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXJldHVybiBOT1RJRllfRE9ORTsK LS0gCjIuMTQuMwoKCkZyb20gZTZjYmRkM2MxNmM0OGNlNmM1YmViYTI1NzRkZGRjNjVkZTUwMzI1 MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBn b29nbGUuY29tPgpEYXRlOiBXZWQsIDE0IE1hciAyMDE4IDA5OjA0OjE2IC0wNzAwClN1YmplY3Q6 IFtQQVRDSCAyMC80M10gbmV0OiB1c2Ugc2tiX3RvX2Z1bGxfc2soKSBpbiBza2JfdXBkYXRlX3By aW8oKQoKWyBVcHN0cmVhbSBjb21taXQgNGRjYjMxZDQ2NDlkZjM2Mjk3Mjk2YjgxOTQzNzcwOWY1 NDA3MDU5YyBdCgpBbmRyZWkgVmFnaW4gcmVwb3J0ZWQgYSBLQVNBTjogc2xhYi1vdXQtb2YtYm91 bmRzIGVycm9yIGluCnNrYl91cGRhdGVfcHJpbygpCgpTaW5jZSBTWU5BQ0sgbWlnaHQgYmUgYXR0 YWNoZWQgdG8gYSByZXF1ZXN0IHNvY2tldCwgd2UgbmVlZCB0bwpnZXQgYmFjayB0byB0aGUgbGlz dGVuZXIgc29ja2V0LgpTaW5jZSB0aGlzIGxpc3RlbmVyIGlzIG1hbmlwdWxhdGVkIHdpdGhvdXQg bG9ja3MsIGFkZCBjb25zdApxdWFsaWZpZXJzIHRvIHNvY2tfY2dyb3VwX3ByaW9pZHgoKSBzbyB0 aGF0IHRoZSBjb25zdCBjYW4gYWxzbwpiZSB1c2VkIGluIHNrYl91cGRhdGVfcHJpbygpCgpBbHNv IGFkZCB0aGUgY29uc3QgcXVhbGlmaWVyIHRvIHNvY2tfY2dyb3VwX2NsYXNzaWQoKSBmb3IgY29u c2lzdGVuY3kuCgpGaXhlczogY2E2ZmIwNjUxODgzICgidGNwOiBhdHRhY2ggU1lOQUNLIG1lc3Nh Z2VzIHRvIHJlcXVlc3Qgc29ja2V0cyBpbnN0ZWFkIG9mIGxpc3RlbmVyIikKU2lnbmVkLW9mZi1i eTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogQW5kcmVp IFZhZ2luIDxhdmFnaW5AdmlydHVvenpvLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbGludXgvY2dyb3VwLWRlZnMu aCB8ICA0ICsrLS0KIG5ldC9jb3JlL2Rldi5jICAgICAgICAgICAgICB8IDIyICsrKysrKysrKysr KysrKy0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Nncm91cC1kZWZzLmggYi9pbmNsdWRl L2xpbnV4L2Nncm91cC1kZWZzLmgKaW5kZXggMWRmZjBhNDc4YjQ1Li40ZThmNzc1MDRhNTcgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvY2dyb3VwLWRlZnMuaAorKysgYi9pbmNsdWRlL2xpbnV4 L2Nncm91cC1kZWZzLmgKQEAgLTY5NiwxMyArNjk2LDEzIEBAIHN0cnVjdCBzb2NrX2Nncm91cF9k YXRhIHsKICAqIHVwZGF0ZXJzIGFuZCByZXR1cm4gcGFydCBvZiB0aGUgcHJldmlvdXMgcG9pbnRl ciBhcyB0aGUgcHJpb2lkeCBvcgogICogY2xhc3NpZC4gIFN1Y2ggcmFjZXMgYXJlIHNob3J0LWxp dmVkIGFuZCB0aGUgcmVzdWx0IGlzbid0IGNyaXRpY2FsLgogICovCi1zdGF0aWMgaW5saW5lIHUx NiBzb2NrX2Nncm91cF9wcmlvaWR4KHN0cnVjdCBzb2NrX2Nncm91cF9kYXRhICpza2NkKQorc3Rh dGljIGlubGluZSB1MTYgc29ja19jZ3JvdXBfcHJpb2lkeChjb25zdCBzdHJ1Y3Qgc29ja19jZ3Jv dXBfZGF0YSAqc2tjZCkKIHsKIAkvKiBmYWxsYmFjayB0byAxIHdoaWNoIGlzIGFsd2F5cyB0aGUg SUQgb2YgdGhlIHJvb3QgY2dyb3VwICovCiAJcmV0dXJuIChza2NkLT5pc19kYXRhICYgMSkgPyBz a2NkLT5wcmlvaWR4IDogMTsKIH0KIAotc3RhdGljIGlubGluZSB1MzIgc29ja19jZ3JvdXBfY2xh c3NpZChzdHJ1Y3Qgc29ja19jZ3JvdXBfZGF0YSAqc2tjZCkKK3N0YXRpYyBpbmxpbmUgdTMyIHNv Y2tfY2dyb3VwX2NsYXNzaWQoY29uc3Qgc3RydWN0IHNvY2tfY2dyb3VwX2RhdGEgKnNrY2QpCiB7 CiAJLyogZmFsbGJhY2sgdG8gMCB3aGljaCBpcyB0aGUgdW5jb25maWd1cmVkIGRlZmF1bHQgY2xh c3NpZCAqLwogCXJldHVybiAoc2tjZC0+aXNfZGF0YSAmIDEpID8gc2tjZC0+Y2xhc3NpZCA6IDA7 CmRpZmYgLS1naXQgYS9uZXQvY29yZS9kZXYuYyBiL25ldC9jb3JlL2Rldi5jCmluZGV4IGM3NWVm OWQ4MTA1YS4uMzg3YWYzNDE1Mzg1IDEwMDY0NAotLS0gYS9uZXQvY29yZS9kZXYuYworKysgYi9u ZXQvY29yZS9kZXYuYwpAQCAtMzIyNCwxNSArMzIyNCwyMyBAQCBzdGF0aWMgaW5saW5lIGludCBf X2Rldl94bWl0X3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnEsCiAjaWYg SVNfRU5BQkxFRChDT05GSUdfQ0dST1VQX05FVF9QUklPKQogc3RhdGljIHZvaWQgc2tiX3VwZGF0 ZV9wcmlvKHN0cnVjdCBza19idWZmICpza2IpCiB7Ci0Jc3RydWN0IG5ldHByaW9fbWFwICptYXAg PSByY3VfZGVyZWZlcmVuY2VfYmgoc2tiLT5kZXYtPnByaW9tYXApOworCWNvbnN0IHN0cnVjdCBu ZXRwcmlvX21hcCAqbWFwOworCWNvbnN0IHN0cnVjdCBzb2NrICpzazsKKwl1bnNpZ25lZCBpbnQg cHJpb2lkeDsKIAotCWlmICghc2tiLT5wcmlvcml0eSAmJiBza2ItPnNrICYmIG1hcCkgewotCQl1 bnNpZ25lZCBpbnQgcHJpb2lkeCA9Ci0JCQlzb2NrX2Nncm91cF9wcmlvaWR4KCZza2ItPnNrLT5z a19jZ3JwX2RhdGEpOworCWlmIChza2ItPnByaW9yaXR5KQorCQlyZXR1cm47CisJbWFwID0gcmN1 X2RlcmVmZXJlbmNlX2JoKHNrYi0+ZGV2LT5wcmlvbWFwKTsKKwlpZiAoIW1hcCkKKwkJcmV0dXJu OworCXNrID0gc2tiX3RvX2Z1bGxfc2soc2tiKTsKKwlpZiAoIXNrKQorCQlyZXR1cm47CiAKLQkJ aWYgKHByaW9pZHggPCBtYXAtPnByaW9tYXBfbGVuKQotCQkJc2tiLT5wcmlvcml0eSA9IG1hcC0+ cHJpb21hcFtwcmlvaWR4XTsKLQl9CisJcHJpb2lkeCA9IHNvY2tfY2dyb3VwX3ByaW9pZHgoJnNr LT5za19jZ3JwX2RhdGEpOworCisJaWYgKHByaW9pZHggPCBtYXAtPnByaW9tYXBfbGVuKQorCQlz a2ItPnByaW9yaXR5ID0gbWFwLT5wcmlvbWFwW3ByaW9pZHhdOwogfQogI2Vsc2UKICNkZWZpbmUg c2tiX3VwZGF0ZV9wcmlvKHNrYikKLS0gCjIuMTQuMwoKCkZyb20gNGY4ZDNiY2JlZDc1Mzc4YWU4 NWIzNjgwNDdlZjI2NzdjMTdhMDYyNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogS2ly aWxsIFRraGFpIDxrdGtoYWlAdmlydHVvenpvLmNvbT4KRGF0ZTogVHVlLCA2IE1hciAyMDE4IDE4 OjQ2OjM5ICswMzAwClN1YmplY3Q6IFtQQVRDSCAyMS80M10gbmV0OiBGaXggaGxpc3QgY29ycnVw dGlvbnMgaW4gaW5ldF9ldmljdF9idWNrZXQoKQoKWyBVcHN0cmVhbSBjb21taXQgYTU2MDAwMjQz N2QzNjQ2ZGFmY2NlY2IxYmYzMmQxNjg1MTEyZGRkYSBdCgppbmV0X2V2aWN0X2J1Y2tldCgpIGl0 ZXJhdGVzIGdsb2JhbCBsaXN0LCBhbmQKc2V2ZXJhbCB0YXNrcyBtYXkgY2FsbCBpdCBpbiBwYXJh bGxlbC4gQWxsIG9mCnRoZW0gaGFzaCB0aGUgc2FtZSBmcS0+bGlzdF9ldmljdG9yIHRvIGRpZmZl cmVudApsaXN0cywgd2hpY2ggbGVhZHMgdG8gbGlzdCBjb3JydXB0aW9uLgoKVGhpcyBwYXRjaCBt YWtlcyBmcSBiZSBoYXNoZWQgdG8gZXhwaXJlZCBsaXN0Cm9ubHkgaWYgdGhpcyBoYXMgbm90IGJl ZW4gbWFkZSB5ZXQgYnkgYW5vdGhlcgp0YXNrLiBTaW5jZSBpbmV0X2ZyYWdfYWxsb2MoKSBhbGxv Y2F0ZXMgZnEKdXNpbmcga21lbV9jYWNoZV96YWxsb2MoKSwgd2UgbWF5IHJlbHkgb24KbGlzdF9l dmljdG9yIGlzIGluaXRpYWxseSB1bmhhc2hlZC4KClRoZSBwcm9ibGVtIHNlZW1zIHRvIGV4aXN0 IGJlZm9yZSBhc3luYwpwZXJuZXRfb3BlcmF0aW9ucywgYXMgdGhlcmUgd2FzIHBvc3NpYmxlIHRv IGhhdmUKZXhpdCBtZXRob2QgdG8gYmUgZXhlY3V0ZWQgaW4gcGFyYWxsZWwgd2l0aAppbmV0X2Zy YWdzOjpmcmFnc193b3JrLCBzbyBJIGFkZCB0d28gRml4ZXMgdGFncy4KVGhpcyBhbHNvIG1heSBn byB0byBzdGFibGUuCgpGaXhlczogZDFmZTE5NDQ0ZDgyICJpbmV0OiBmcmFnOiBkb24ndCByZS11 c2UgY2hhaW5saXN0IGZvciBldmljdG9yIgpGaXhlczogZjg0YzY4MjFhYTU0ICJuZXQ6IENvbnZl cnQgcGVybmV0X3N1YnN5cywgcmVnaXN0ZXJlZCBmcm9tIGluZXRfaW5pdCgpIgpTaWduZWQtb2Zm LWJ5OiBLaXJpbGwgVGtoYWkgPGt0a2hhaUB2aXJ0dW96em8uY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvaW5ldF9m cmFnbWVudC5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9uZXQvaXB2NC9pbmV0X2ZyYWdtZW50LmMgYi9uZXQvaXB2NC9pbmV0X2ZyYWdtZW50 LmMKaW5kZXggYWY3NGQwNDMzNDUzLi5lNjkxNzA1ZjBhODUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0 L2luZXRfZnJhZ21lbnQuYworKysgYi9uZXQvaXB2NC9pbmV0X2ZyYWdtZW50LmMKQEAgLTExOSw2 ICsxMTksOSBAQCBzdGF0aWMgdm9pZCBpbmV0X2ZyYWdfc2VjcmV0X3JlYnVpbGQoc3RydWN0IGlu ZXRfZnJhZ3MgKmYpCiAKIHN0YXRpYyBib29sIGluZXRfZnJhZ3Ffc2hvdWxkX2V2aWN0KGNvbnN0 IHN0cnVjdCBpbmV0X2ZyYWdfcXVldWUgKnEpCiB7CisJaWYgKCFobGlzdF91bmhhc2hlZCgmcS0+ bGlzdF9ldmljdG9yKSkKKwkJcmV0dXJuIGZhbHNlOworCiAJcmV0dXJuIHEtPm5ldC0+bG93X3Ro cmVzaCA9PSAwIHx8CiAJICAgICAgIGZyYWdfbWVtX2xpbWl0KHEtPm5ldCkgPj0gcS0+bmV0LT5s b3dfdGhyZXNoOwogfQotLSAKMi4xNC4zCgoKRnJvbSAzMmY2MzlmZmJlNDQ3N2U5YzY3YzRlODc5 NmYzMjhjMTNmMzZhNGY3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4ZXkgS29k YW5ldiA8YWxleGV5LmtvZGFuZXZAb3JhY2xlLmNvbT4KRGF0ZTogVHVlLCA2IE1hciAyMDE4IDIy OjU3OjAxICswMzAwClN1YmplY3Q6IFtQQVRDSCAyMi80M10gZGNjcDogY2hlY2sgc2sgZm9yIGNs b3NlZCBzdGF0ZSBpbiBkY2NwX3NlbmRtc2coKQoKWyBVcHN0cmVhbSBjb21taXQgNjdmOTNkZjc5 YWVlZmMzYWRkNGU0YjMxYTc1MjYwMGY4MzQyMzZlMiBdCgpkY2NwX2Rpc2Nvbm5lY3QoKSBzZXRz ICdkcC0+ZGNjcHNfaGNfdHhfY2NpZCcgdHggaGFuZGxlciB0byBOVUxMLAp0aGVyZWZvcmUgaWYg RENDUCBzb2NrZXQgaXMgZGlzY29ubmVjdGVkIGFuZCBkY2NwX3NlbmRtc2coKSBpcwpjYWxsZWQg YWZ0ZXIgaXQsIGl0IHdpbGwgY2F1c2UgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4KZGNj cF93cml0ZV94bWl0KCkuCgpUaGlzIGNyYXNoIGFuZCB0aGUgcmVwcm9kdWNlciB3YXMgcmVwb3J0 ZWQgYnkgc3l6Ym90LiBMb29rcyBsaWtlCml0IGlzIHJlcHJvZHVjZWQgaWYgY29tbWl0IDY5YzY0 ODY2Y2UwNyAoImRjY3A6IENWRS0yMDE3LTg4MjQ6CnVzZS1hZnRlci1mcmVlIGluIERDQ1AgY29k ZSIpIGlzIGFwcGxpZWQuCgpSZXBvcnRlZC1ieTogc3l6Ym90K2Y5OWFiMzg4N2FiNjVkNzBmODE2 QHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KU2lnbmVkLW9mZi1ieTogQWxleGV5IEtvZGFuZXYg PGFsZXhleS5rb2RhbmV2QG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvZGNjcC9wcm90by5jIHwgNSArKysrKwog MSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9kY2NwL3By b3RvLmMgYi9uZXQvZGNjcC9wcm90by5jCmluZGV4IDlkNDNjMWY0MDI3NC4uZmYzYjA1OGNmNThj IDEwMDY0NAotLS0gYS9uZXQvZGNjcC9wcm90by5jCisrKyBiL25ldC9kY2NwL3Byb3RvLmMKQEAg LTc4OSw2ICs3ODksMTEgQEAgaW50IGRjY3Bfc2VuZG1zZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVj dCBtc2doZHIgKm1zZywgc2l6ZV90IGxlbikKIAlpZiAoc2tiID09IE5VTEwpCiAJCWdvdG8gb3V0 X3JlbGVhc2U7CiAKKwlpZiAoc2stPnNrX3N0YXRlID09IERDQ1BfQ0xPU0VEKSB7CisJCXJjID0g LUVOT1RDT05OOworCQlnb3RvIG91dF9kaXNjYXJkOworCX0KKwogCXNrYl9yZXNlcnZlKHNrYiwg c2stPnNrX3Byb3QtPm1heF9oZWFkZXIpOwogCXJjID0gbWVtY3B5X2Zyb21fbXNnKHNrYl9wdXQo c2tiLCBsZW4pLCBtc2csIGxlbik7CiAJaWYgKHJjICE9IDApCi0tIAoyLjE0LjMKCgpGcm9tIDhl MmRiOWViNGRkMTI0ODE3YWMyOTliNDFhNTIyOThkZGI5ZmRkYjkgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IExvcmVuem8gQmlhbmNvbmkgPGxvcmVuem8uYmlhbmNvbmlAcmVkaGF0LmNv bT4KRGF0ZTogVGh1LCA4IE1hciAyMDE4IDE3OjAwOjAyICswMTAwClN1YmplY3Q6IFtQQVRDSCAy My80M10gaXB2NjogZml4IGFjY2VzcyB0byBub24tbGluZWFyIHBhY2tldCBpbgogbmRpc2NfZmls bF9yZWRpcmVjdF9oZHJfb3B0aW9uKCkKClsgVXBzdHJlYW0gY29tbWl0IDlmNjJjMTVmMjhiMGQx ZDc0NjczNDY2NmQ4OGE3OWYwOGJhMWU0M2UgXQoKRml4IHRoZSBmb2xsb3dpbmcgc2xhYi1vdXQt b2YtYm91bmRzIGthc2FuIHJlcG9ydCBpbgpuZGlzY19maWxsX3JlZGlyZWN0X2hkcl9vcHRpb24g d2hlbiB0aGUgaW5jb21pbmcgaXB2NiBwYWNrZXQgaXMgbm90CmxpbmVhciBhbmQgdGhlIGFjY2Vz c2VkIGRhdGEgYXJlIG5vdCBpbiB0aGUgbGluZWFyIGRhdGEgcmVnaW9uIG9mIG9yaWdfc2tiLgoK WyAxNTAzLjEyMjUwOF0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09ClsgMTUwMy4xMjI4MzJdIEJVRzogS0FTQU46IHNsYWIt b3V0LW9mLWJvdW5kcyBpbiBuZGlzY19zZW5kX3JlZGlyZWN0KzB4OTRlLzB4OTkwClsgMTUwMy4x MjMwMzZdIFJlYWQgb2Ygc2l6ZSAxMTg0IGF0IGFkZHIgZmZmZjg4MDAyOThhYjZiMCBieSB0YXNr IG5ldHBlcmYvMTkzMgoKWyAxNTAzLjEyMzIyMF0gQ1BVOiAwIFBJRDogMTkzMiBDb21tOiBuZXRw ZXJmIE5vdCB0YWludGVkIDQuMTYuMC1yYzIrICMxMjQKWyAxNTAzLjEyMzM0N10gSGFyZHdhcmUg bmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoUTM1ICsgSUNIOSwgMjAwOSksIEJJT1MgMS4xMC4yLTIu ZmMyNyAwNC8wMS8yMDE0ClsgMTUwMy4xMjM1MjddIENhbGwgVHJhY2U6ClsgMTUwMy4xMjM1Nzld ICA8SVJRPgpbIDE1MDMuMTIzNjM4XSAgcHJpbnRfYWRkcmVzc19kZXNjcmlwdGlvbisweDZlLzB4 MjgwClsgMTUwMy4xMjM4NDldICBrYXNhbl9yZXBvcnQrMHgyMzMvMHgzNTAKWyAxNTAzLjEyMzk0 Nl0gIG1lbWNweSsweDFmLzB4NTAKWyAxNTAzLjEyNDAzN10gIG5kaXNjX3NlbmRfcmVkaXJlY3Qr MHg5NGUvMHg5OTAKWyAxNTAzLjEyNTE1MF0gIGlwNl9mb3J3YXJkKzB4MTI0Mi8weDEzYjAKWy4u Ll0KWyAxNTAzLjE1Mzg5MF0gQWxsb2NhdGVkIGJ5IHRhc2sgMTkzMjoKWyAxNTAzLjE1Mzk4Ml0g IGthc2FuX2ttYWxsb2MrMHg5Zi8weGQwClsgMTUwMy4xNTQwNzRdICBfX2ttYWxsb2NfdHJhY2tf Y2FsbGVyKzB4YjUvMHgxNjAKWyAxNTAzLjE1NDE5OF0gIF9fa21hbGxvY19yZXNlcnZlLmlzcmEu NDErMHgyNC8weDcwClsgMTUwMy4xNTQzMjRdICBfX2FsbG9jX3NrYisweDEzMC8weDNlMApbIDE1 MDMuMTU0NDE1XSAgc2N0cF9wYWNrZXRfdHJhbnNtaXQrMHgyMWEvMHgxODEwClsgMTUwMy4xNTQ1 MzNdICBzY3RwX291dHFfZmx1c2grMHhjMTQvMHgxZGIwClsgMTUwMy4xNTQ2MjRdICBzY3RwX2Rv X3NtKzB4MzRlLzB4Mjc0MApbIDE1MDMuMTU0NzE1XSAgc2N0cF9wcmltaXRpdmVfU0VORCsweDU3 LzB4NzAKWyAxNTAzLjE1NDgwN10gIHNjdHBfc2VuZG1zZysweGFhNi8weDFiMTAKWyAxNTAzLjE1 NDg5N10gIHNvY2tfc2VuZG1zZysweDY4LzB4ODAKWyAxNTAzLjE1NDk4N10gIF9fX3N5c19zZW5k bXNnKzB4NDMxLzB4NGIwClsgMTUwMy4xNTUwNzhdICBfX3N5c19zZW5kbXNnKzB4YTQvMHgxMzAK WyAxNTAzLjE1NTE2OF0gIGRvX3N5c2NhbGxfNjQrMHgxNzEvMHgzZjAKWyAxNTAzLjE1NTI1OV0g IGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQyLzB4YjcKClsgMTUwMy4xNTU0MzZd IEZyZWVkIGJ5IHRhc2sgMTkzMjoKWyAxNTAzLjE1NTUyN10gIF9fa2FzYW5fc2xhYl9mcmVlKzB4 MTM0LzB4MTgwClsgMTUwMy4xNTU2MThdICBrZnJlZSsweGJjLzB4MTgwClsgMTUwMy4xNTU3MDld ICBza2JfcmVsZWFzZV9kYXRhKzB4MjdmLzB4MmMwClsgMTUwMy4xNTU4MDBdICBjb25zdW1lX3Nr YisweDk0LzB4ZTAKWyAxNTAzLjE1NTg4OV0gIHNjdHBfY2h1bmtfcHV0KzB4MWFhLzB4MWYwClsg MTUwMy4xNTU5NzldICBzY3RwX2lucV9wb3ArMHgyZjgvMHg2ZTAKWyAxNTAzLjE1NjA3MF0gIHNj dHBfYXNzb2NfYmhfcmN2KzB4NmEvMHgyMzAKWyAxNTAzLjE1NjE2NF0gIHNjdHBfaW5xX3B1c2gr MHgxMTcvMHgxNTAKWyAxNTAzLjE1NjI1NV0gIHNjdHBfYmFja2xvZ19yY3YrMHhkZi8weDRhMApb IDE1MDMuMTU2MzQ2XSAgX19yZWxlYXNlX3NvY2srMHgxNDIvMHgyNTAKWyAxNTAzLjE1NjQzNl0g IHJlbGVhc2Vfc29jaysweDgwLzB4MTgwClsgMTUwMy4xNTY1MjZdICBzY3RwX3NlbmRtc2crMHhi YjAvMHgxYjEwClsgMTUwMy4xNTY2MTddICBzb2NrX3NlbmRtc2crMHg2OC8weDgwClsgMTUwMy4x NTY3MDhdICBfX19zeXNfc2VuZG1zZysweDQzMS8weDRiMApbIDE1MDMuMTU2Nzk5XSAgX19zeXNf c2VuZG1zZysweGE0LzB4MTMwClsgMTUwMy4xNTY4ODldICBkb19zeXNjYWxsXzY0KzB4MTcxLzB4 M2YwClsgMTUwMy4xNTY5ODBdICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0Mi8w eGI3CgpbIDE1MDMuMTU3MTU4XSBUaGUgYnVnZ3kgYWRkcmVzcyBiZWxvbmdzIHRvIHRoZSBvYmpl Y3QgYXQgZmZmZjg4MDAyOThhYjYwMAogICAgICAgICAgICAgICAgd2hpY2ggYmVsb25ncyB0byB0 aGUgY2FjaGUga21hbGxvYy0xMDI0IG9mIHNpemUgMTAyNApbIDE1MDMuMTU3NDQ0XSBUaGUgYnVn Z3kgYWRkcmVzcyBpcyBsb2NhdGVkIDE3NiBieXRlcyBpbnNpZGUgb2YKICAgICAgICAgICAgICAg IDEwMjQtYnl0ZSByZWdpb24gW2ZmZmY4ODAwMjk4YWI2MDAsIGZmZmY4ODAwMjk4YWJhMDApClsg MTUwMy4xNTc3MDJdIFRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIHBhZ2U6ClsgMTUw My4xNTc4MjBdIHBhZ2U6ZmZmZmVhMDAwMGE2MmEwMCBjb3VudDoxIG1hcGNvdW50OjAgbWFwcGlu ZzowMDAwMDAwMDAwMDAwMDAwIGluZGV4OjB4MCBjb21wb3VuZF9tYXBjb3VudDogMApbIDE1MDMu MTU4MDUzXSBmbGFnczogMHg0MDAwMDAwMDAwMDA4MTAwKHNsYWJ8aGVhZCkKWyAxNTAzLjE1ODE3 MV0gcmF3OiA0MDAwMDAwMDAwMDA4MTAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAw MCAwMDAwMDAwMTgwMGUwMDBlClsgMTUwMy4xNTgzNTBdIHJhdzogZGVhZDAwMDAwMDAwMDEwMCBk ZWFkMDAwMDAwMDAwMjAwIGZmZmY4ODAwMzYwMDI2MDAgMDAwMDAwMDAwMDAwMDAwMApbIDE1MDMu MTU4NTIzXSBwYWdlIGR1bXBlZCBiZWNhdXNlOiBrYXNhbjogYmFkIGFjY2VzcyBkZXRlY3RlZAoK WyAxNTAzLjE1ODY5OF0gTWVtb3J5IHN0YXRlIGFyb3VuZCB0aGUgYnVnZ3kgYWRkcmVzczoKWyAx NTAzLjE1ODgxNl0gIGZmZmY4ODAwMjk4YWI5MDA6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwClsgMTUwMy4xNTg5ODhdICBmZmZmODgwMDI5OGFiOTgwOiAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMApbIDE1MDMuMTU5 MTY1XSA+ZmZmZjg4MDAyOThhYmEwMDogZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMg ZmMgZmMgZmMgZmMgZmMKWyAxNTAzLjE1OTMzOF0gICAgICAgICAgICAgICAgICAgIF4KWyAxNTAz LjE1OTQzNl0gIGZmZmY4ODAwMjk4YWJhODA6IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZi IGZiIGZiIGZiIGZiIGZiIGZiClsgMTUwMy4xNTk2MTBdICBmZmZmODgwMDI5OGFiYjAwOiBmYiBm YiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYgpbIDE1MDMuMTU5Nzg1 XSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KWyAxNTAzLjE1OTk2NF0gRGlzYWJsaW5nIGxvY2sgZGVidWdnaW5nIGR1ZSB0 byBrZXJuZWwgdGFpbnQKClRoZSB0ZXN0IHNjZW5hcmlvIHRvIHRyaWdnZXIgdGhlIGlzc3VlIGNv bnNpc3RzIG9mIDQgZGV2aWNlczoKLSBIMDogZGF0YSBzZW5kZXIsIGNvbm5lY3RlZCB0byBMQU4w Ci0gSDE6IGRhdGEgcmVjZWl2ZXIsIGNvbm5lY3RlZCB0byBMQU4xCi0gR1cwIGFuZCBHVzE6IHJv dXRlcnMgYmV0d2VlbiBMQU4wIGFuZCBMQU4xLiBCb3RoIG9mIHRoZW0gaGF2ZSBhbgogIGV0aGVy bmV0IGNvbm5lY3Rpb24gb24gTEFOMCBhbmQgTEFOMQpPbiBIezAsMX0gc2V0IEdXMCBhcyBkZWZh dWx0IGdhdGV3YXkgd2hpbGUgb24gR1cwIHNldCBHVzEgYXMgbmV4dCBob3AgZm9yCmRhdGEgZnJv bSBMQU4wIHRvIExBTjEuCk1vcmVvdmVyIGNyZWF0ZSBhbiBpcDZpcDYgdHVubmVsIGJldHdlZW4g SDAgYW5kIEgxIGFuZCBzZW5kIDMgY29uY3VycmVudApkYXRhIHN0cmVhbXMgKFRDUC9VRFAvU0NU UCkgZnJvbSBIMCB0byBIMSB0aHJvdWdoIGlwNmlwNiB0dW5uZWwgKHNlbmQKYnVmZmVyIHNpemUg aXMgc2V0IHRvIDE2SykuIFdoaWxlIGRhdGEgc3RyZWFtcyBhcmUgYWN0aXZlIGZsdXNoIHRoZSBy b3V0ZQpjYWNoZSBvbiBIQSBtdWx0aXBsZSB0aW1lcy4KSSBoYXZlIG5vdCBiZWVuIGFibGUgdG8g aWRlbnRpZnkgYSBnaXZlbiBjb21taXQgdGhhdCBpbnRyb2R1Y2VkIHRoZSBpc3N1ZQpzaW5jZSwg dXNpbmcgdGhlIHJlcHJvZHVjZXIgZGVzY3JpYmVkIGFib3ZlLCB0aGUga2FzYW4gcmVwb3J0IGhh cyBiZWVuCnRyaWdnZXJlZCBmcm9tIDQuMTQgYW5kIEkgaGF2ZSBub3QgZ29uZSBiYWNrIGZ1cnRo ZXIuCgpSZXBvcnRlZC1ieTogSmlhbmxpbiBTaGkgPGppc2hpQHJlZGhhdC5jb20+ClJldmlld2Vk LWJ5OiBTdGVmYW5vIEJyaXZpbyA8c2JyaXZpb0ByZWRoYXQuY29tPgpSZXZpZXdlZC1ieTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBMb3JlbnpvIEJp YW5jb25pIDxsb3JlbnpvLmJpYW5jb25pQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9uZGlzYy5jIHwg MyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9uZXQvaXB2Ni9uZGlzYy5jIGIvbmV0L2lwdjYvbmRpc2MuYwppbmRleCAyYTkz N2M4ZDE5ZTkuLmRkMjgwMDVlZmI5NyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvbmRpc2MuYworKysg Yi9uZXQvaXB2Ni9uZGlzYy5jCkBAIC0xNTQ2LDcgKzE1NDYsOCBAQCBzdGF0aWMgdm9pZCBuZGlz Y19maWxsX3JlZGlyZWN0X2hkcl9vcHRpb24oc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkqKG9wdCsr KSA9IChyZF9sZW4gPj4gMyk7CiAJb3B0ICs9IDY7CiAKLQltZW1jcHkob3B0LCBpcHY2X2hkcihv cmlnX3NrYiksIHJkX2xlbiAtIDgpOworCXNrYl9jb3B5X2JpdHMob3JpZ19za2IsIHNrYl9uZXR3 b3JrX29mZnNldChvcmlnX3NrYiksIG9wdCwKKwkJICAgICAgcmRfbGVuIC0gOCk7CiB9CiAKIHZv aWQgbmRpc2Nfc2VuZF9yZWRpcmVjdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3Qg aW42X2FkZHIgKnRhcmdldCkKLS0gCjIuMTQuMwoKCkZyb20gYTQ0MzU4ZTRkZTMxMDE5NzU0ZTNl ZGFhMzVjYTlhYWQ3YTE0OGI5OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBE dW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUdWUsIDYgTWFyIDIwMTggMDc6NTQ6 NTMgLTA4MDAKU3ViamVjdDogW1BBVENIIDI0LzQzXSBsMnRwOiBkbyBub3QgYWNjZXB0IGFyYml0 cmFyeSBzb2NrZXRzCgpbIFVwc3RyZWFtIGNvbW1pdCAxN2NmZTc5YTY1Zjk4YWJlNTM1MjYxODU2 YzVhZWYxNGYzMDZkZmY3IF0KCnN5emthbGxlciBmb3VuZCBhbiBpc3N1ZSBjYXVzZWQgYnkgbGFj ayBvZiBzdWZmaWNpZW50IGNoZWNrcwppbiBsMnRwX3R1bm5lbF9jcmVhdGUoKQoKUkFXIHNvY2tl dHMgY2FuIG5vdCBiZSBjb25zaWRlcmVkIGFzIFVEUCBvbmVzIGZvciBpbnN0YW5jZS4KCkluIGFu b3RoZXIgcGF0Y2gsIHdlIHNoYWxsIHJlcGxhY2UgYWxsIHByX2VycigpIGJ5IGxlc3MgaW50cnVz aXZlCnByX2RlYnVnKCkgc28gdGhhdCBzeXprYWxsZXIgY2FuIGZpbmQgb3RoZXIgYnVncyBmYXN0 ZXIuCkFja2VkLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZyPgpBY2tl ZC1ieTogSmFtZXMgQ2hhcG1hbiA8amNoYXBtYW5Aa2F0YWxpeC5jb20+Cgo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQlVH OiBLQVNBTjogc2xhYi1vdXQtb2YtYm91bmRzIGluIHNldHVwX3VkcF90dW5uZWxfc29jaysweDNl ZS8weDVmMCBuZXQvaXB2NC91ZHBfdHVubmVsLmM6NjkKZHN0X3JlbGVhc2U6IGRzdDowMDAwMDAw MGQ1M2QwZDBmIHJlZmNudDotMQpXcml0ZSBvZiBzaXplIDEgYXQgYWRkciBmZmZmODgwMWQwMTNi Nzk4IGJ5IHRhc2sgc3l6LWV4ZWN1dG9yMy82MjQyCgpDUFU6IDEgUElEOiA2MjQyIENvbW06IHN5 ei1leGVjdXRvcjMgTm90IHRhaW50ZWQgNC4xNi4wLXJjMisgIzI1MwpIYXJkd2FyZSBuYW1lOiBH b29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklPUyBH b29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogX19kdW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNr LmM6MTcgW2lubGluZV0KIGR1bXBfc3RhY2srMHgxOTQvMHgyNGQgbGliL2R1bXBfc3RhY2suYzo1 MwogcHJpbnRfYWRkcmVzc19kZXNjcmlwdGlvbisweDczLzB4MjUwIG1tL2thc2FuL3JlcG9ydC5j OjI1Ngoga2FzYW5fcmVwb3J0X2Vycm9yIG1tL2thc2FuL3JlcG9ydC5jOjM1NCBbaW5saW5lXQog a2FzYW5fcmVwb3J0KzB4MjNiLzB4MzYwIG1tL2thc2FuL3JlcG9ydC5jOjQxMgogX19hc2FuX3Jl cG9ydF9zdG9yZTFfbm9hYm9ydCsweDE3LzB4MjAgbW0va2FzYW4vcmVwb3J0LmM6NDM1CiBzZXR1 cF91ZHBfdHVubmVsX3NvY2srMHgzZWUvMHg1ZjAgbmV0L2lwdjQvdWRwX3R1bm5lbC5jOjY5CiBs MnRwX3R1bm5lbF9jcmVhdGUrMHgxMzU0LzB4MTdmMCBuZXQvbDJ0cC9sMnRwX2NvcmUuYzoxNTk2 CiBwcHBvbDJ0cF9jb25uZWN0KzB4MTRiMS8weDFkZDAgbmV0L2wydHAvbDJ0cF9wcHAuYzo3MDcK IFNZU0NfY29ubmVjdCsweDIxMy8weDRhMCBuZXQvc29ja2V0LmM6MTY0MAogU3lTX2Nvbm5lY3Qr MHgyNC8weDMwIG5ldC9zb2NrZXQuYzoxNjIxCiBkb19zeXNjYWxsXzY0KzB4MjgwLzB4OTQwIGFy Y2gveDg2L2VudHJ5L2NvbW1vbi5jOjI4NwogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1l KzB4NDIvMHhiNwoKRml4ZXM6IGZkNTU4ZDE4NmRmMiAoImwydHA6IFNwbGl0IHBwcG9sMnRwIHBh dGNoIGludG8gc2VwYXJhdGUgbDJ0cCBhbmQgcHBwIHBhcnRzIikKU2lnbmVkLW9mZi1ieTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxzeXpr YWxsZXJAZ29vZ2xlZ3JvdXBzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9sMnRwL2wydHBfY29yZS5jIHwgOCArKysrKyst LQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9uZXQvbDJ0cC9sMnRwX2NvcmUuYyBiL25ldC9sMnRwL2wydHBfY29yZS5jCmluZGV4 IGFmMjJhYThhZTM1Yi4uNDkwZDczNjAyMjJlIDEwMDY0NAotLS0gYS9uZXQvbDJ0cC9sMnRwX2Nv cmUuYworKysgYi9uZXQvbDJ0cC9sMnRwX2NvcmUuYwpAQCAtMTU2Miw5ICsxNTYyLDE0IEBAIGlu dCBsMnRwX3R1bm5lbF9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCBpbnQgZmQsIGludCB2ZXJzaW9u LCB1MzIgdHVubmVsX2lkLCB1MzIKIAkJZW5jYXAgPSBjZmctPmVuY2FwOwogCiAJLyogUXVpY2sg c2FuaXR5IGNoZWNrcyAqLworCWVyciA9IC1FUFJPVE9OT1NVUFBPUlQ7CisJaWYgKHNrLT5za190 eXBlICE9IFNPQ0tfREdSQU0pIHsKKwkJcHJfZGVidWcoInR1bmwgJWh1OiBmZCAlZCB3cm9uZyBz b2NrZXQgdHlwZVxuIiwKKwkJCSB0dW5uZWxfaWQsIGZkKTsKKwkJZ290byBlcnI7CisJfQogCXN3 aXRjaCAoZW5jYXApIHsKIAljYXNlIEwyVFBfRU5DQVBUWVBFX1VEUDoKLQkJZXJyID0gLUVQUk9U T05PU1VQUE9SVDsKIAkJaWYgKHNrLT5za19wcm90b2NvbCAhPSBJUFBST1RPX1VEUCkgewogCQkJ cHJfZXJyKCJ0dW5sICVodTogZmQgJWQgd3JvbmcgcHJvdG9jb2wsIGdvdCAlZCwgZXhwZWN0ZWQg JWRcbiIsCiAJCQkgICAgICAgdHVubmVsX2lkLCBmZCwgc2stPnNrX3Byb3RvY29sLCBJUFBST1RP X1VEUCk7CkBAIC0xNTcyLDcgKzE1NzcsNiBAQCBpbnQgbDJ0cF90dW5uZWxfY3JlYXRlKHN0cnVj dCBuZXQgKm5ldCwgaW50IGZkLCBpbnQgdmVyc2lvbiwgdTMyIHR1bm5lbF9pZCwgdTMyCiAJCX0K IAkJYnJlYWs7CiAJY2FzZSBMMlRQX0VOQ0FQVFlQRV9JUDoKLQkJZXJyID0gLUVQUk9UT05PU1VQ UE9SVDsKIAkJaWYgKHNrLT5za19wcm90b2NvbCAhPSBJUFBST1RPX0wyVFApIHsKIAkJCXByX2Vy cigidHVubCAlaHU6IGZkICVkIHdyb25nIHByb3RvY29sLCBnb3QgJWQsIGV4cGVjdGVkICVkXG4i LAogCQkJICAgICAgIHR1bm5lbF9pZCwgZmQsIHNrLT5za19wcm90b2NvbCwgSVBQUk9UT19MMlRQ KTsKLS0gCjIuMTQuMwoKCkZyb20gMzBkY2FmOTFkZTJjMDI3YjMwZTBiNWU2YTE0MjE5OWI4NTE1 ZTdkMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2hyaXN0b3BoZSBKQUlMTEVUIDxj aHJpc3RvcGhlLmphaWxsZXRAd2FuYWRvby5mcj4KRGF0ZTogU3VuLCAxOCBNYXIgMjAxOCAyMzo1 OTozNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjUvNDNdIG5ldDogZXRoZXJuZXQ6IGFyYzogRml4 IGEgcG90ZW50aWFsIG1lbW9yeSBsZWFrIGlmIGFuCiBvcHRpb25hbCByZWd1bGF0b3IgaXMgZGVm ZXJyZWQKClsgVXBzdHJlYW0gY29tbWl0IDAwNzc3ZmFjMjhiYTNlMTI2YjllNjNlNzg5YTYxM2U4 YmQyY2FiMjUgXQoKSWYgdGhlIG9wdGlvbmFsIHJlZ3VsYXRvciBpcyBkZWZlcnJlZCwgd2UgbXVz dCByZWxlYXNlIHNvbWUgcmVzb3VyY2VzLgpUaGV5IHdpbGwgYmUgcmUtYWxsb2NhdGVkIHdoZW4g dGhlIHByb2JlIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIGFnYWluLgoKRml4ZXM6IDZlYWNmMzEx MzliZiAoImV0aGVybmV0OiBhcmM6IEFkZCBzdXBwb3J0IGZvciBSb2NrY2hpcCBTb0MgbGF5ZXIg ZGV2aWNlIHRyZWUgYmluZGluZ3MiKQpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGhlIEpBSUxMRVQg PGNocmlzdG9waGUuamFpbGxldEB3YW5hZG9vLmZyPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYXJj L2VtYWNfcm9ja2NoaXAuYyB8IDYgKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fy Yy9lbWFjX3JvY2tjaGlwLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hcmMvZW1hY19yb2NrY2hp cC5jCmluZGV4IGM2MTYzODc0ZTRlNy4uYzc3MGNhMzdjOWIyIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9hcmMvZW1hY19yb2NrY2hpcC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2FyYy9lbWFjX3JvY2tjaGlwLmMKQEAgLTE2OSw4ICsxNjksMTAgQEAgc3RhdGljIGludCBl bWFjX3JvY2tjaGlwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJLyogT3B0 aW9uYWwgcmVndWxhdG9yIGZvciBQSFkgKi8KIAlwcml2LT5yZWd1bGF0b3IgPSBkZXZtX3JlZ3Vs YXRvcl9nZXRfb3B0aW9uYWwoZGV2LCAicGh5Iik7CiAJaWYgKElTX0VSUihwcml2LT5yZWd1bGF0 b3IpKSB7Ci0JCWlmIChQVFJfRVJSKHByaXYtPnJlZ3VsYXRvcikgPT0gLUVQUk9CRV9ERUZFUikK LQkJCXJldHVybiAtRVBST0JFX0RFRkVSOworCQlpZiAoUFRSX0VSUihwcml2LT5yZWd1bGF0b3Ip ID09IC1FUFJPQkVfREVGRVIpIHsKKwkJCWVyciA9IC1FUFJPQkVfREVGRVI7CisJCQlnb3RvIG91 dF9jbGtfZGlzYWJsZTsKKwkJfQogCQlkZXZfZXJyKGRldiwgIm5vIHJlZ3VsYXRvciBmb3VuZFxu Iik7CiAJCXByaXYtPnJlZ3VsYXRvciA9IE5VTEw7CiAJfQotLSAKMi4xNC4zCgoKRnJvbSBiZGQx N2Y0OTA3MWNmZjhjYmEwNTUxZGQ1ZGE5MjYyOTFhY2VlYWIyIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiA9P1VURi04P3E/U1o9MjBMaW49MjA9Mjg9RTY9OUU9OTc9RTQ9Qjg9OEE9RTY9 OTk9QkE9Mjk/PQogPHN6LmxpbkBtb3hhLmNvbT4KRGF0ZTogRnJpLCAxNiBNYXIgMjAxOCAwMDo1 NjowMSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjYvNDNdIG5ldDogZXRoZXJuZXQ6IHRpOiBjcHN3 OiBhZGQgY2hlY2sgZm9yIGluLWJhbmQgbW9kZQogc2V0dGluZyB3aXRoIFJHTUlJIFBIWSBpbnRl cmZhY2UKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0 PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0 IGY5ZGI1MDY5MWRiNGE3ZDg2MGZjZTk4NWYwODBiYjNmYzIzYTdlZGUgXQoKQWNjb3JkaW5nIHRv IEFNMzM1eCBUUk1bMV0gMTQuMy42LjIsIEFNNDM3eCBUUk1bMl0gMTUuMy42LjIgYW5kCkRSQTcg VFJNWzNdIDI0LjExLjQuOC43LjMuMywgaW4tYmFuZCBtb2RlIGluIEVYVF9FTihiaXQxOCkgcmVn aXN0ZXIgaXMgb25seQphdmFpbGFibGUgd2hlbiBQSFkgaXMgY29uZmlndXJlZCBpbiBSR01JSSBt b2RlIHdpdGggMTBNYnBzIHNwZWVkLiBJdCB3aWxsCmNhdXNlIHNvbWUgbmV0d29ya2luZyBpc3N1 ZXMgd2l0aG91dCBSR01JSSBtb2RlLCBzdWNoIGFzIGNhcnJpZXIgc2Vuc2UKZXJyb3JzIGFuZCBs b3cgdGhyb3VnaHB1dC4gVEkgYWxzbyBtZW50aW9uZWQgdGhpcyBpc3N1ZSBpbiB0aGVpciBmb3J1 bVs0XS4KClRoaXMgcGF0Y2ggYWRkcyB0aGUgY2hlY2sgbWVjaGFuaXNtIGZvciBQSFkgaW50ZXJm YWNlIHdpdGggUkdNSUkgaW50ZXJmYWNlCnR5cGUsIHRoZSBpbi1iYW5kIG1vZGUgY2FuIG9ubHkg YmUgc2V0IGluIFJHTUlJIG1vZGUgd2l0aCAxME1icHMgc3BlZWQuCgpSZWZlcmVuY2VzOgpbMV06 IGh0dHBzOi8vd3d3LnRpLmNvbS9saXQvdWcvc3BydWg3M3Avc3BydWg3M3AucGRmClsyXTogaHR0 cDovL3d3dy50aS5jb20vbGl0L3VnL3NwcnVobDdoL3NwcnVobDdoLnBkZgpbM106IGh0dHA6Ly93 d3cudGkuY29tL2xpdC91Zy9zcHJ1aWMyYi9zcHJ1aWMyYi5wZGYKWzRdOiBodHRwczovL2UyZS50 aS5jb20vc3VwcG9ydC9hcm0vc2l0YXJhX2FybS9mLzc5MS9wLzY0MDc2NS8yMzkyMTU1CgpTdWdn ZXN0ZWQtYnk6IEhvbHNldHkgQ2hlbiAo6Zmz5oay6LydKSA8SG9sc2V0eS5DaGVuQG1veGEuY29t PgpTaWduZWQtb2ZmLWJ5OiBTWiBMaW4gKOael+S4iuaZuikgPHN6LmxpbkBtb3hhLmNvbT4KU2ln bmVkLW9mZi1ieTogU2NodXlsZXIgUGF0dG9uIDxzcGF0dG9uQHRpLmNvbT4KUmV2aWV3ZWQtYnk6 IEdyeWdvcmlpIFN0cmFzaGtvIDxncnlnb3JpaS5zdHJhc2hrb0B0aS5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9ldGhlcm5ldC90aS9jcHN3LmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Rp L2Nwc3cuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2Nwc3cuYwppbmRleCAxNGI2NDZiM2Iw ODQuLmE1YmI3YjE5MDQwZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvY3Bz dy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2Nwc3cuYwpAQCAtOTk2LDcgKzk5Niw4 IEBAIHN0YXRpYyB2b2lkIF9jcHN3X2FkanVzdF9saW5rKHN0cnVjdCBjcHN3X3NsYXZlICpzbGF2 ZSwKIAkJLyogc2V0IHNwZWVkX2luIGlucHV0IGluIGNhc2UgUk1JSSBtb2RlIGlzIHVzZWQgaW4g MTAwTWJwcyAqLwogCQlpZiAocGh5LT5zcGVlZCA9PSAxMDApCiAJCQltYWNfY29udHJvbCB8PSBC SVQoMTUpOwotCQllbHNlIGlmIChwaHktPnNwZWVkID09IDEwKQorCQkvKiBpbiBiYW5kIG1vZGUg b25seSB3b3JrcyBpbiAxME1icHMgUkdNSUkgbW9kZSAqLworCQllbHNlIGlmICgocGh5LT5zcGVl ZCA9PSAxMCkgJiYgcGh5X2ludGVyZmFjZV9pc19yZ21paShwaHkpKQogCQkJbWFjX2NvbnRyb2wg fD0gQklUKDE4KTsgLyogSW4gQmFuZCBtb2RlICovCiAKIAkJaWYgKHByaXYtPnJ4X3BhdXNlKQot LSAKMi4xNC4zCgoKRnJvbSBhMmIzM2M5MDhjNjE1YWE4ODA3NjQwZmU5NzY4NjgwYWUzZjY1MmFk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5l bGxpQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAxOCBNYXIgMjAxOCAxMjo0OTo1MSAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMjcvNDNdIG5ldDogZmVjOiBGaXggdW5iYWxhbmNlZCBQTSBydW50aW1lIGNh bGxzCgpbIFVwc3RyZWFtIGNvbW1pdCBhMDY5MjE1Y2Y1OTg1ZjNhYTFiYmE1NTAyNjQ5MDdkNmJk MDVjNWY3IF0KCldoZW4gdW5iaW5kaW5nL3JlbW92aW5nIHRoZSBkcml2ZXIsIHdlIHdpbGwgcnVu IGludG8gdGhlIGZvbGxvd2luZyB3YXJuaW5nczoKClsgIDI1OS42NTUxOThdIGZlYyA0MDBkMTAw MC5ldGhlcm5ldDogNDAwZDEwMDAuZXRoZXJuZXQgc3VwcGx5IHBoeSBub3QgZm91bmQsIHVzaW5n IGR1bW15IHJlZ3VsYXRvcgpbICAyNTkuNjY1MDY1XSBmZWMgNDAwZDEwMDAuZXRoZXJuZXQ6IFVu YmFsYW5jZWQgcG1fcnVudGltZV9lbmFibGUhClsgIDI1OS42NzI3NzBdIGZlYyA0MDBkMTAwMC5l dGhlcm5ldCAodW5uYW1lZCBuZXRfZGV2aWNlKSAodW5pbml0aWFsaXplZCk6IEludmFsaWQgTUFD IGFkZHJlc3M6IDAwOjAwOjAwOjAwOjAwOjAwClsgIDI1OS42ODMwNjJdIGZlYyA0MDBkMTAwMC5l dGhlcm5ldCAodW5uYW1lZCBuZXRfZGV2aWNlKSAodW5pbml0aWFsaXplZCk6IFVzaW5nIHJhbmRv bSBNQUMgYWRkcmVzczogZjI6M2U6OTM6Yjc6Mjk6YzEKWyAgMjU5LjY5NjIzOV0gbGlicGh5OiBm ZWNfZW5ldF9taWlfYnVzOiBwcm9iZWQKCkF2b2lkIHRoZXNlIHdhcm5pbmdzIGJ5IGJhbGFuY2lu ZyB0aGUgcnVudGltZSBQTSBjYWxscyBkdXJpbmcgZmVjX2Rydl9yZW1vdmUoKS4KClNpZ25lZC1v ZmYtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwg MiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNj YWxlL2ZlY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4u YwppbmRleCAzMTE1MzljNjYyNWYuLmViMmVhMjMxYzdjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMKQEAgLTM1NjUsNiArMzU2NSw4IEBAIGZlY19kcnZfcmVt b3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJZmVjX2VuZXRfbWlpX3JlbW92ZShm ZXApOwogCWlmIChmZXAtPnJlZ19waHkpCiAJCXJlZ3VsYXRvcl9kaXNhYmxlKGZlcC0+cmVnX3Bo eSk7CisJcG1fcnVudGltZV9wdXQoJnBkZXYtPmRldik7CisJcG1fcnVudGltZV9kaXNhYmxlKCZw ZGV2LT5kZXYpOwogCWlmIChvZl9waHlfaXNfZml4ZWRfbGluayhucCkpCiAJCW9mX3BoeV9kZXJl Z2lzdGVyX2ZpeGVkX2xpbmsobnApOwogCW9mX25vZGVfcHV0KGZlcC0+cGh5X25vZGUpOwotLSAK Mi4xNC4zCgoKRnJvbSAyZDA3M2RmOWY0ZDRmN2IzMTQ0MTU2ODJmOWI4MjQ5NzFlNzg1NTk3IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcnZpbmQgWWFkYXYgPGFydmluZC55YWRhdi5j c0BnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTMgTWFyIDIwMTggMTY6NTA6MDYgKzAxMDAKU3ViamVj dDogW1BBVENIIDI4LzQzXSBuZXQvaXVjdjogRnJlZSBtZW1vcnkgb2J0YWluZWQgYnkga3phbGxv YwoKWyBVcHN0cmVhbSBjb21taXQgZmE2YTkxZTliOTA3MjMxZDJlMzhlYTVlZDg5YzUzN2IzNTI1 ZGYzZCBdCgpGcmVlIG1lbW9yeSBieSBjYWxsaW5nIHB1dF9kZXZpY2UoKSwgaWYgYWZpdWN2X2l1 Y3ZfaW5pdCBpcyBub3QKc3VjY2Vzc2Z1bC4KClNpZ25lZC1vZmYtYnk6IEFydmluZCBZYWRhdiA8 YXJ2aW5kLnlhZGF2LmNzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENvcm5lbGlhIEh1Y2sgPGNv aHVja0ByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBVcnN1bGEgQnJhdW4gPHVyc3VsYS5icmF1 bkBkZS5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC52 bmV0LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvaXVjdi9hZl9pdWN2LmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2Vk LCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXVjdi9h Zl9pdWN2LmMgYi9uZXQvaXVjdi9hZl9pdWN2LmMKaW5kZXggMTQ4NTMzMTY5YjFkLi5jYTk4Mjc2 YzI3MDkgMTAwNjQ0Ci0tLSBhL25ldC9pdWN2L2FmX2l1Y3YuYworKysgYi9uZXQvaXVjdi9hZl9p dWN2LmMKQEAgLTI0MzMsOSArMjQzMywxMSBAQCBzdGF0aWMgaW50IGFmaXVjdl9pdWN2X2luaXQo dm9pZCkKIAlhZl9pdWN2X2Rldi0+ZHJpdmVyID0gJmFmX2l1Y3ZfZHJpdmVyOwogCWVyciA9IGRl dmljZV9yZWdpc3RlcihhZl9pdWN2X2Rldik7CiAJaWYgKGVycikKLQkJZ290byBvdXRfZHJpdmVy OworCQlnb3RvIG91dF9pdWN2X2RldjsKIAlyZXR1cm4gMDsKIAorb3V0X2l1Y3ZfZGV2OgorCXB1 dF9kZXZpY2UoYWZfaXVjdl9kZXYpOwogb3V0X2RyaXZlcjoKIAlkcml2ZXJfdW5yZWdpc3Rlcigm YWZfaXVjdl9kcml2ZXIpOwogb3V0X2l1Y3Y6Ci0tIAoyLjE0LjMKCgpGcm9tIGQ3ZjUwZjA5Yjg0 ZTMyMzcxYjA2NGU0YjJlMWQ2Zjg5ODMxYzkxNDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IE5pY29sYXMgRGljaHRlbCA8bmljb2xhcy5kaWNodGVsQDZ3aW5kLmNvbT4KRGF0ZTogV2Vk LCAxNCBNYXIgMjAxOCAyMToxMDoyMyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjkvNDNdIG5ldGxp bms6IGF2b2lkIGEgZG91YmxlIHNrYiBmcmVlIGluIGdlbmxtc2dfbWNhc3QoKQoKWyBVcHN0cmVh bSBjb21taXQgMDJhMjM4NWYzN2E3YzY1OTRjOWQ4OWI2NGM0YTE0NTEyNzZmMDhlYiBdCgpubG1z Z19tdWx0aWNhc3QoKSBjb25zdW1lcyBhbHdheXMgdGhlIHNrYiwgdGh1cyB0aGUgb3JpZ2luYWwg c2tiIG11c3QgYmUKZnJlZWQgb25seSB3aGVuIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGgg YSBjbG9uZS4KCkZpeGVzOiBjYjlmN2E5YTVjOTYgKCJuZXRsaW5rOiBlbnN1cmUgdG8gbG9vcCBv dmVyIGFsbCBuZXRucyBpbiBnZW5sbXNnX211bHRpY2FzdF9hbGxucygpIikKUmVwb3J0ZWQtYnk6 IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgpTaWduZWQtb2Zm LWJ5OiBOaWNvbGFzIERpY2h0ZWwgPG5pY29sYXMuZGljaHRlbEA2d2luZC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbmV0 bGluay9nZW5ldGxpbmsuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9uZXRsaW5rL2dlbmV0bGluay5jIGIvbmV0 L25ldGxpbmsvZ2VuZXRsaW5rLmMKaW5kZXggNmYwMjQ5OWVmMDA3Li5iOWNlODJjOTQ0MGYgMTAw NjQ0Ci0tLSBhL25ldC9uZXRsaW5rL2dlbmV0bGluay5jCisrKyBiL25ldC9uZXRsaW5rL2dlbmV0 bGluay5jCkBAIC0xMTA2LDcgKzExMDYsNyBAQCBzdGF0aWMgaW50IGdlbmxtc2dfbWNhc3Qoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHBvcnRpZCwgdW5zaWduZWQgbG9uZyBncm91cCwKIAlpZiAo IWVycikKIAkJZGVsaXZlcmVkID0gdHJ1ZTsKIAllbHNlIGlmIChlcnIgIT0gLUVTUkNIKQotCQln b3RvIGVycm9yOworCQlyZXR1cm4gZXJyOwogCXJldHVybiBkZWxpdmVyZWQgPyAwIDogLUVTUkNI OwogIGVycm9yOgogCWtmcmVlX3NrYihza2IpOwotLSAKMi4xNC4zCgoKRnJvbSA5MDIwNmNkNmIz MTAwN2NkYzg2ZWZlOGFjODcwZGM0NmM0NGJmMzc4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMTYgRmViIDIw MTggMTE6MDM6MDMgLTA4MDAKU3ViamVjdDogW1BBVENIIDMwLzQzXSBuZXQ6IE9ubHkgaG9ub3Ig aWZpbmRleCBpbiBJUF9QS1RJTkZPIGlmIG5vbi0wCgpbIFVwc3RyZWFtIGNvbW1pdCAyY2JiNGVh N2RlMTY3YjAyZmZhNjNlOWNkZmRiMDdhN2U3MDk0NjE1IF0KCk9ubHkgYWxsb3cgaWZpbmRleCBm cm9tIElQX1BLVElORk8gdG8gb3ZlcnJpZGUgU09fQklORFRPREVWSUNFIHNldHRpbmdzCmlmIHRo ZSBpbmRleCBpcyBhY3R1YWxseSBzZXQgaW4gdGhlIG1lc3NhZ2UuCgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9pcF9zb2NrZ2x1ZS5jIHwg NiArKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfc29ja2dsdWUuYyBiL25ldC9pcHY0L2lwX3NvY2tn bHVlLmMKaW5kZXggZjU2YWFiNTRlMGM4Li4xZTcwZWQ1MjQ0ZWEgMTAwNjQ0Ci0tLSBhL25ldC9p cHY0L2lwX3NvY2tnbHVlLmMKKysrIGIvbmV0L2lwdjQvaXBfc29ja2dsdWUuYwpAQCAtMjU4LDcg KzI1OCw4IEBAIGludCBpcF9jbXNnX3NlbmQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRy ICptc2csIHN0cnVjdCBpcGNtX2Nvb2tpZSAqaXBjLAogCQkJc3JjX2luZm8gPSAoc3RydWN0IGlu Nl9wa3RpbmZvICopQ01TR19EQVRBKGNtc2cpOwogCQkJaWYgKCFpcHY2X2FkZHJfdjRtYXBwZWQo JnNyY19pbmZvLT5pcGk2X2FkZHIpKQogCQkJCXJldHVybiAtRUlOVkFMOwotCQkJaXBjLT5vaWYg PSBzcmNfaW5mby0+aXBpNl9pZmluZGV4OworCQkJaWYgKHNyY19pbmZvLT5pcGk2X2lmaW5kZXgp CisJCQkJaXBjLT5vaWYgPSBzcmNfaW5mby0+aXBpNl9pZmluZGV4OwogCQkJaXBjLT5hZGRyID0g c3JjX2luZm8tPmlwaTZfYWRkci5zNl9hZGRyMzJbM107CiAJCQljb250aW51ZTsKIAkJfQpAQCAt Mjg4LDcgKzI4OSw4IEBAIGludCBpcF9jbXNnX3NlbmQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qg bXNnaGRyICptc2csIHN0cnVjdCBpcGNtX2Nvb2tpZSAqaXBjLAogCQkJaWYgKGNtc2ctPmNtc2df bGVuICE9IENNU0dfTEVOKHNpemVvZihzdHJ1Y3QgaW5fcGt0aW5mbykpKQogCQkJCXJldHVybiAt RUlOVkFMOwogCQkJaW5mbyA9IChzdHJ1Y3QgaW5fcGt0aW5mbyAqKUNNU0dfREFUQShjbXNnKTsK LQkJCWlwYy0+b2lmID0gaW5mby0+aXBpX2lmaW5kZXg7CisJCQlpZiAoaW5mby0+aXBpX2lmaW5k ZXgpCisJCQkJaXBjLT5vaWYgPSBpbmZvLT5pcGlfaWZpbmRleDsKIAkJCWlwYy0+YWRkciA9IGlu Zm8tPmlwaV9zcGVjX2RzdC5zX2FkZHI7CiAJCQlicmVhazsKIAkJfQotLSAKMi4xNC4zCgoKRnJv bSAxNzZjMTE1MmJhYjlkNzAwNmM5ZjY2ZTM1OWM5NmRiZTYyY2ZlMTMyIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4K RGF0ZTogVHVlLCAxMyBNYXIgMjAxOCAxNDo0NTowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMzEv NDNdIG5ldDogc3lzdGVtcG9ydDogUmV3cml0ZSBfX2JjbV9zeXNwb3J0X3R4X3JlY2xhaW0oKQoK WyBVcHN0cmVhbSBjb21taXQgNDg0ZDgwMmQwZjJmMjljMzM1NTYzZmNhYzJhOGZhY2YxNzRhMWJi YyBdCgpUaGVyZSBpcyBubyBuZWVkIGZvciBjb21wbGV4IGNoZWNraW5nIGJldHdlZW4gdGhlIGxh c3QgY29uc3VtZWQgaW5kZXgKYW5kIGN1cnJlbnQgY29uc3VtZWQgaW5kZXgsIGEgc2ltcGxlIHN1 YnRyYWN0aW9uIHdpbGwgZG8uCgpUaGlzIGFsc28gZWxpbWluYXRlcyB0aGUgcG9zc2liaWxpdHkg b2YgYSBwZXJtYW5lbnQgdHJhbnNtaXQgcXVldWUgc3RhbGwKdW5kZXIgdGhlIGZvbGxvd2luZyBj b25kaXRpb25zOgoKLSBvbmUgQ1BVIGJ1cnN0cyByaW5nLT5zaXplIHdvcnRoIG9mIHRyYWZmaWMg KHVwIHRvIDI1NiBidWZmZXJzKSwgdG8gdGhlCiAgcG9pbnQgd2hlcmUgd2UgcnVuIG91dCBvZiBm cmVlIGRlc2NyaXB0b3JzLCBzbyB3ZSBzdG9wIHRoZSB0cmFuc21pdAogIHF1ZXVlIGF0IHRoZSBl bmQgb2YgYmNtX3N5c3BvcnRfeG1pdCgpCgotIGJlY2F1c2Ugb2Ygb3VyIGxvY2tpbmcsIHdlIGhh dmUgdGhlIHRyYW5zbWl0IHByb2Nlc3MgZGlzYWJsZQogIGludGVycnVwdHMgd2hpY2ggbWVhbnMg d2UgY2FuIGJlIGJsb2NraW5nIHRoZSBUWCByZWNsYW1hdGlvbiBwcm9jZXNzCgotIHdoZW4gVFgg cmVjbGFtYXRpb24gZmluYWxseSBydW5zLCB3ZSB3aWxsIGJlIGNvbXB1dGluZyB0aGUgZGlmZmVy ZW5jZQogIGJldHdlZW4gcmluZy0+Y19pbmRleCAobGFzdCBjb25zdW1lZCBpbmRleCBieSBTVykg YW5kIHdoYXQgdGhlIEhXCiAgcmVwb3J0cyB0aHJvdWdoIGl0cyByZWdpc3RlcgoKLSB0aGlzIHJl Z2lzdGVyIGlzIG1hc2tlZCB3aXRoIChyaW5nLT5zaXplIC0gMSkgPSAweGZmLCB3aGljaCB3aWxs IGxlYWQKICB0byBzdHJpcHBpbmcgdGhlIHVwcGVyIGJpdHMgb2YgdGhlIGluZGV4IChyZWdpc3Rl ciBpcyAxNi1iaXRzIHdpZGUpCgotIHdlIHdpbGwgYmUgY29tcHV0aW5nIGxhc3RfdHhfY24gYXMg MCwgd2hpY2ggbWVhbnMgdGhlcmUgaXMgbm8gd29yayB0bwogIGJlIGRvbmUsIGFuZCB3ZSBuZXZl ciB3YWtlLXVwIHRoZSB0cmFuc21pdCBxdWV1ZSwgbGVhdmluZyBpdAogIHBlcm1hbmVudGx5IGRp c2FibGVkCgpBIHByYWN0aWNhbCBleGFtcGxlIGlzIGUuZzogcmluZy0+Y19pbmRleCBha2EgbGFz dF9jX2luZGV4ID0gMTIsIHdlCnB1c2hlZCAyNTYgZW50cmllcywgSFcgY29uc3VtZXIgaW5kZXgg PSAyNjgsIHdlIG1hc2sgaXQgd2l0aCAweGZmID0gMTIsCnNvIGxhc3RfdHhfY24gPT0gMCwgbm90 aGluZyBoYXBwZW5zLgoKRml4ZXM6IDgwMTA1YmVmZGI0YiAoIm5ldDogc3lzdGVtcG9ydDogYWRk IEJyb2FkY29tIFNZU1RFTVBPUlQgRXRoZXJuZXQgTUFDIGRyaXZlciIpClNpZ25lZC1vZmYtYnk6 IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRo ZXJuZXQvYnJvYWRjb20vYmNtc3lzcG9ydC5jIHwgMzMgKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY21zeXNwb3J0LmggfCAgMiAr LQogMiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY21zeXNwb3J0LmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY21zeXNwb3J0LmMKaW5kZXggZWI0NDFlNWUy Y2Q4Li4xZTg1NmU4YjlhOTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2JjbXN5c3BvcnQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY21z eXNwb3J0LmMKQEAgLTg1NSwxMCArODU1LDEyIEBAIHN0YXRpYyB2b2lkIGJjbV9zeXNwb3J0X3R4 X3JlY2xhaW1fb25lKHN0cnVjdCBiY21fc3lzcG9ydF90eF9yaW5nICpyaW5nLAogc3RhdGljIHVu c2lnbmVkIGludCBfX2JjbV9zeXNwb3J0X3R4X3JlY2xhaW0oc3RydWN0IGJjbV9zeXNwb3J0X3By aXYgKnByaXYsCiAJCQkJCSAgICAgc3RydWN0IGJjbV9zeXNwb3J0X3R4X3JpbmcgKnJpbmcpCiB7 Ci0JdW5zaWduZWQgaW50IGNfaW5kZXgsIGxhc3RfY19pbmRleCwgbGFzdF90eF9jbiwgbnVtX3R4 X2NiczsKIAl1bnNpZ25lZCBpbnQgcGt0c19jb21wbCA9IDAsIGJ5dGVzX2NvbXBsID0gMDsKIAlz dHJ1Y3QgbmV0X2RldmljZSAqbmRldiA9IHByaXYtPm5ldGRldjsKKwl1bnNpZ25lZCBpbnQgdHhi ZHNfcHJvY2Vzc2VkID0gMDsKIAlzdHJ1Y3QgYmNtX3N5c3BvcnRfY2IgKmNiOworCXVuc2lnbmVk IGludCB0eGJkc19yZWFkeTsKKwl1bnNpZ25lZCBpbnQgY19pbmRleDsKIAl1MzIgaHdfaW5kOwog CiAJLyogQ2xlYXIgc3RhdHVzIGJlZm9yZSBzZXJ2aWNpbmcgdG8gcmVkdWNlIHNwdXJpb3VzIGlu dGVycnVwdHMgKi8KQEAgLTg3MSwyOSArODczLDIzIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgX19i Y21fc3lzcG9ydF90eF9yZWNsYWltKHN0cnVjdCBiY21fc3lzcG9ydF9wcml2ICpwcml2LAogCS8q IENvbXB1dGUgaG93IG1hbnkgZGVzY3JpcHRvcnMgaGF2ZSBiZWVuIHByb2Nlc3NlZCBzaW5jZSBs YXN0IGNhbGwgKi8KIAlod19pbmQgPSB0ZG1hX3JlYWRsKHByaXYsIFRETUFfREVTQ19SSU5HX1BS T0RfQ09OU19JTkRFWChyaW5nLT5pbmRleCkpOwogCWNfaW5kZXggPSAoaHdfaW5kID4+IFJJTkdf Q09OU19JTkRFWF9TSElGVCkgJiBSSU5HX0NPTlNfSU5ERVhfTUFTSzsKLQlyaW5nLT5wX2luZGV4 ID0gKGh3X2luZCAmIFJJTkdfUFJPRF9JTkRFWF9NQVNLKTsKLQotCWxhc3RfY19pbmRleCA9IHJp bmctPmNfaW5kZXg7Ci0JbnVtX3R4X2NicyA9IHJpbmctPnNpemU7Ci0KLQljX2luZGV4ICY9IChu dW1fdHhfY2JzIC0gMSk7Ci0KLQlpZiAoY19pbmRleCA+PSBsYXN0X2NfaW5kZXgpCi0JCWxhc3Rf dHhfY24gPSBjX2luZGV4IC0gbGFzdF9jX2luZGV4OwotCWVsc2UKLQkJbGFzdF90eF9jbiA9IG51 bV90eF9jYnMgLSBsYXN0X2NfaW5kZXggKyBjX2luZGV4OworCXR4YmRzX3JlYWR5ID0gKGNfaW5k ZXggLSByaW5nLT5jX2luZGV4KSAmIFJJTkdfQ09OU19JTkRFWF9NQVNLOwogCiAJbmV0aWZfZGJn KHByaXYsIHR4X2RvbmUsIG5kZXYsCi0JCSAgInJpbmc9JWQgY19pbmRleD0lZCBsYXN0X3R4X2Nu PSVkIGxhc3RfY19pbmRleD0lZFxuIiwKLQkJICByaW5nLT5pbmRleCwgY19pbmRleCwgbGFzdF90 eF9jbiwgbGFzdF9jX2luZGV4KTsKKwkJICAicmluZz0lZCBvbGRfY19pbmRleD0ldSBjX2luZGV4 PSV1IHR4YmRzX3JlYWR5PSV1XG4iLAorCQkgIHJpbmctPmluZGV4LCByaW5nLT5jX2luZGV4LCBj X2luZGV4LCB0eGJkc19yZWFkeSk7CiAKLQl3aGlsZSAobGFzdF90eF9jbi0tID4gMCkgewotCQlj YiA9IHJpbmctPmNicyArIGxhc3RfY19pbmRleDsKKwl3aGlsZSAodHhiZHNfcHJvY2Vzc2VkIDwg dHhiZHNfcmVhZHkpIHsKKwkJY2IgPSAmcmluZy0+Y2JzW3JpbmctPmNsZWFuX2luZGV4XTsKIAkJ YmNtX3N5c3BvcnRfdHhfcmVjbGFpbV9vbmUocmluZywgY2IsICZieXRlc19jb21wbCwgJnBrdHNf Y29tcGwpOwogCiAJCXJpbmctPmRlc2NfY291bnQrKzsKLQkJbGFzdF9jX2luZGV4Kys7Ci0JCWxh c3RfY19pbmRleCAmPSAobnVtX3R4X2NicyAtIDEpOworCQl0eGJkc19wcm9jZXNzZWQrKzsKKwor CQlpZiAobGlrZWx5KHJpbmctPmNsZWFuX2luZGV4IDwgcmluZy0+c2l6ZSAtIDEpKQorCQkJcmlu Zy0+Y2xlYW5faW5kZXgrKzsKKwkJZWxzZQorCQkJcmluZy0+Y2xlYW5faW5kZXggPSAwOwogCX0K IAogCXU2NF9zdGF0c191cGRhdGVfYmVnaW4oJnByaXYtPnN5bmNwKTsKQEAgLTE0MDYsNiArMTQw Miw3IEBAIHN0YXRpYyBpbnQgYmNtX3N5c3BvcnRfaW5pdF90eF9yaW5nKHN0cnVjdCBiY21fc3lz cG9ydF9wcml2ICpwcml2LAogCW5ldGlmX3R4X25hcGlfYWRkKHByaXYtPm5ldGRldiwgJnJpbmct Pm5hcGksIGJjbV9zeXNwb3J0X3R4X3BvbGwsIDY0KTsKIAlyaW5nLT5pbmRleCA9IGluZGV4Owog CXJpbmctPnNpemUgPSBzaXplOworCXJpbmctPmNsZWFuX2luZGV4ID0gMDsKIAlyaW5nLT5hbGxv Y19zaXplID0gcmluZy0+c2l6ZTsKIAlyaW5nLT5kZXNjX2NwdSA9IHA7CiAJcmluZy0+ZGVzY19j b3VudCA9IHJpbmctPnNpemU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9h ZGNvbS9iY21zeXNwb3J0LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY21zeXNw b3J0LmgKaW5kZXggODJlNDAxZGYxOTllLi5hMjAwNmY1ZmMyNmYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JjbXN5c3BvcnQuaAorKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9iY21zeXNwb3J0LmgKQEAgLTcwNiw3ICs3MDYsNyBAQCBzdHJ1Y3Qg YmNtX3N5c3BvcnRfdHhfcmluZyB7CiAJdW5zaWduZWQgaW50CWRlc2NfY291bnQ7CS8qIE51bWJl ciBvZiBkZXNjcmlwdG9ycyAqLwogCXVuc2lnbmVkIGludAljdXJyX2Rlc2M7CS8qIEN1cnJlbnQg ZGVzY3JpcHRvciAqLwogCXVuc2lnbmVkIGludAljX2luZGV4OwkvKiBMYXN0IGNvbnN1bWVyIGlu ZGV4ICovCi0JdW5zaWduZWQgaW50CXBfaW5kZXg7CS8qIEN1cnJlbnQgcHJvZHVjZXIgaW5kZXgg Ki8KKwl1bnNpZ25lZCBpbnQJY2xlYW5faW5kZXg7CS8qIEN1cnJlbnQgY2xlYW4gaW5kZXggKi8K IAlzdHJ1Y3QgYmNtX3N5c3BvcnRfY2IgKmNiczsJLyogVHJhbnNtaXQgY29udHJvbCBibG9ja3Mg Ki8KIAlzdHJ1Y3QgZG1hX2Rlc2MJKmRlc2NfY3B1OwkvKiBDUFUgdmlldyBvZiB0aGUgZGVzY3Jp cHRvciAqLwogCXN0cnVjdCBiY21fc3lzcG9ydF9wcml2ICpwcml2OwkvKiBwcml2YXRlIGNvbnRl eHQgYmFja3BvaW50ZXIgKi8KLS0gCjIuMTQuMwoKCkZyb20gY2U5Mzg5OGIwMTY1NTU3ZDIyZDM2 MTNiYmViOWE0MjI4ZWM3ZjI0ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWljaGFs IEthbGRlcm9uIDxNaWNoYWwuS2FsZGVyb25AY2F2aXVtLmNvbT4KRGF0ZTogV2VkLCAxNCBNYXIg MjAxOCAxNDo1Njo1MyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzIvNDNdIHFlZGU6IEZpeCBxZWRy IGxpbmsgdXBkYXRlCgpbIFVwc3RyZWFtIGNvbW1pdCA0NjA5YWRjMjcxNzU4Mzk0MDgzNTk4MjI1 MjNkZTcyNDdkNTZjODdmIF0KCkxpbmsgdXBkYXRlcyB3ZXJlIG5vdCByZXBvcnRlZCB0byBxZWRy IGNvcnJlY3RseS4KTGVhZGluZyB0byBjYXNlcyB3aGVyZSBhIGxpbmsgY291bGQgYmUgZG93biwg YnV0IHFlZHIKd291bGQgc2VlIGl0IGFzIHVwLgpJbiBhZGRpdGlvbiwgb25jZSBxZWRlIHdhcyBs b2FkZWQsIGxpbmsgc3RhdGUgd291bGQgYmUgdXAsCnJlZ2FyZGxlc3Mgb2YgdGhlIGFjdHVhbCBs aW5rIHN0YXRlLgoKU2lnbmVkLW9mZi1ieTogTWljaGFsIEthbGRlcm9uIDxtaWNoYWwua2FsZGVy b25AY2F2aXVtLmNvbT4KU2lnbmVkLW9mZi1ieTogQXJpZWwgRWxpb3IgPGFyaWVsLmVsaW9yQGNh dml1bS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkZS9xZWRlX21haW4uYyB8 IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkZS9xZWRlX21haW4u YyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWRlL3FlZGVfbWFpbi5jCmluZGV4IGU1 ZWU5ZjI3NGE3MS4uNmVhYjJjNjMyYzc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9xbG9naWMvcWVkZS9xZWRlX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9n aWMvcWVkZS9xZWRlX21haW4uYwpAQCAtMjA2Niw4ICsyMDY2LDYgQEAgc3RhdGljIGludCBxZWRl X2xvYWQoc3RydWN0IHFlZGVfZGV2ICplZGV2LCBlbnVtIHFlZGVfbG9hZF9tb2RlIG1vZGUsCiAJ bGlua19wYXJhbXMubGlua191cCA9IHRydWU7CiAJZWRldi0+b3BzLT5jb21tb24tPnNldF9saW5r KGVkZXYtPmNkZXYsICZsaW5rX3BhcmFtcyk7CiAKLQlxZWRlX3JkbWFfZGV2X2V2ZW50X29wZW4o ZWRldik7Ci0KIAllZGV2LT5zdGF0ZSA9IFFFREVfU1RBVEVfT1BFTjsKIAogCURQX0lORk8oZWRl diwgIkVuZGluZyBzdWNjZXNzZnVsbHkgcWVkZSBsb2FkXG4iKTsKQEAgLTIxNjgsMTIgKzIxNjYs MTQgQEAgc3RhdGljIHZvaWQgcWVkZV9saW5rX3VwZGF0ZSh2b2lkICpkZXYsIHN0cnVjdCBxZWRf bGlua19vdXRwdXQgKmxpbmspCiAJCQlEUF9OT1RJQ0UoZWRldiwgIkxpbmsgaXMgdXBcbiIpOwog CQkJbmV0aWZfdHhfc3RhcnRfYWxsX3F1ZXVlcyhlZGV2LT5uZGV2KTsKIAkJCW5ldGlmX2NhcnJp ZXJfb24oZWRldi0+bmRldik7CisJCQlxZWRlX3JkbWFfZGV2X2V2ZW50X29wZW4oZWRldik7CiAJ CX0KIAl9IGVsc2UgewogCQlpZiAobmV0aWZfY2Fycmllcl9vayhlZGV2LT5uZGV2KSkgewogCQkJ RFBfTk9USUNFKGVkZXYsICJMaW5rIGlzIGRvd25cbiIpOwogCQkJbmV0aWZfdHhfZGlzYWJsZShl ZGV2LT5uZGV2KTsKIAkJCW5ldGlmX2NhcnJpZXJfb2ZmKGVkZXYtPm5kZXYpOworCQkJcWVkZV9y ZG1hX2Rldl9ldmVudF9jbG9zZShlZGV2KTsKIAkJfQogCX0KIH0KLS0gCjIuMTQuMwoKCkZyb20g MDRjNTFiZDNjMTc5MTRiOTUxMTU1YTU5MmIyOGQ3YjhjMGY3MDIzYyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogVmluaWNpdXMgQ29zdGEgR29tZXMgPHZpbmljaXVzLmdvbWVzQGludGVs LmNvbT4KRGF0ZTogV2VkLCAxNCBNYXIgMjAxOCAxMzozMjowOSAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMzMvNDNdIHNrYnVmZjogRml4IG5vdCB3YWtpbmcgYXBwbGljYXRpb25zIHdoZW4gZXJyb3Jz IGFyZQogZW5xdWV1ZWQKClsgVXBzdHJlYW0gY29tbWl0IDZlNWQ1OGZkYzliZWRkMDI1NWE4Nzgx YjI1OGYxMGJiZGM2M2U5NzUgXQoKV2hlbiBlcnJvcnMgYXJlIGVucXVldWVkIHRvIHRoZSBlcnJv ciBxdWV1ZSB2aWEgc29ja19xdWV1ZV9lcnJfc2tiKCkKZnVuY3Rpb24sIGl0IGlzIHBvc3NpYmxl IHRoYXQgdGhlIHdhaXRpbmcgYXBwbGljYXRpb24gaXMgbm90IG5vdGlmaWVkLgoKQ2FsbGluZyAn c2stPnNrX2RhdGFfcmVhZHkoKScgd291bGQgbm90IG5vdGlmeSBhcHBsaWNhdGlvbnMgdGhhdApz ZWxlY3RlZCBvbmx5IFBPTExFUlIgZXZlbnRzIGluIHBvbGwoKSAoZm9yIGV4YW1wbGUpLgoKRml4 ZXM6IDFkYTE3N2U0YzNmNCAoIkxpbnV4LTIuNi4xMi1yYzIiKQpSZXBvcnRlZC1ieTogUmFuZHkg RS4gV2l0dCA8cmFuZHkuZS53aXR0QGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IEVyaWMgRHVtYXpl dCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogVmluaWNpdXMgQ29zdGEgR29t ZXMgPHZpbmljaXVzLmdvbWVzQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL3NrYnVmZi5jIHwgMiArLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L2NvcmUvc2tidWZmLmMgYi9uZXQvY29yZS9za2J1ZmYuYwppbmRleCBjYzgxMWFkZDY4 YzYuLjU2NGJlYjdlNmQxYyAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc2tidWZmLmMKKysrIGIvbmV0 L2NvcmUvc2tidWZmLmMKQEAgLTQxNzEsNyArNDE3MSw3IEBAIGludCBzb2NrX3F1ZXVlX2Vycl9z a2Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCiAJc2tiX3F1ZXVlX3Rh aWwoJnNrLT5za19lcnJvcl9xdWV1ZSwgc2tiKTsKIAlpZiAoIXNvY2tfZmxhZyhzaywgU09DS19E RUFEKSkKLQkJc2stPnNrX2RhdGFfcmVhZHkoc2spOworCQlzay0+c2tfZXJyb3JfcmVwb3J0KHNr KTsKIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0woc29ja19xdWV1ZV9lcnJfc2tiKTsKLS0g CjIuMTQuMwoKCkZyb20gODhjOTZkNWIwODEyYjBjYTQxOGYzMmVmZmU3NDU3YmRhOTBmNGMwMyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJrYWRpIFNoYXJzaGV2c2t5IDxhcmthZGlz QG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCA4IE1hciAyMDE4IDEyOjQyOjEwICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAzNC80M10gdGVhbTogRml4IGRvdWJsZSBmcmVlIGluIGVycm9yIHBhdGgKClsg VXBzdHJlYW0gY29tbWl0IGNiY2M2MDdlMTg0MjI1NTVkYjU2OWI1OTM2MDhhZWMyNjExMWNiMGIg XQoKVGhlIF9fc2VuZF9hbmRfYWxsb2Nfc2tiKCkgcmVjZWl2ZXMgYSBza2IgcHRyIGFzIGEgcGFy YW1ldGVyIGJ1dCBpbgpjYXNlIGl0IGZhaWxzIHRoZSBza2IgaXMgbm90IHZhbGlkOgotIFNlbmQg ZmFpbGVkIGFuZCByZWxlYXNlZCB0aGUgc2tiIGludGVybmFsbHkuCi0gQWxsb2NhdGlvbiBmYWls ZWQuCgpUaGUgY3VycmVudCBjb2RlIHRyaWVzIHRvIHJlbGVhc2UgdGhlIHNrYiBpbiBjYXNlIG9m IGZhaWx1cmUgd2hpY2gKY2F1c2VzIHJlZHVuZGFudCBmcmVlaW5nLgoKRml4ZXM6IDliMDBjZjJk MTAyNCAoInRlYW06IGltcGxlbWVudCBtdWx0aXBhcnQgbmV0bGluayBtZXNzYWdlcyBmb3Igb3B0 aW9ucyB0cmFuc2ZlcnMiKQpTaWduZWQtb2ZmLWJ5OiBBcmthZGkgU2hhcnNoZXZza3kgPGFya2Fk aXNAbWVsbGFub3guY29tPgpBY2tlZC1ieTogSmlyaSBQaXJrbyA8amlyaUBtZWxsYW5veC5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBkcml2ZXJzL25ldC90ZWFtL3RlYW0uYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90ZWFt L3RlYW0uYyBiL2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5jCmluZGV4IGFlNTNlODk5MjU5Zi4uMjNj ZDQxYzgyMjEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC90ZWFtL3RlYW0uYworKysgYi9kcml2 ZXJzL25ldC90ZWFtL3RlYW0uYwpAQCAtMjM5NCw3ICsyMzk0LDcgQEAgc3RhdGljIGludCB0ZWFt X25sX3NlbmRfb3B0aW9uc19nZXQoc3RydWN0IHRlYW0gKnRlYW0sIHUzMiBwb3J0aWQsIHUzMiBz ZXEsCiAJaWYgKCFubGgpIHsKIAkJZXJyID0gX19zZW5kX2FuZF9hbGxvY19za2IoJnNrYiwgdGVh bSwgcG9ydGlkLCBzZW5kX2Z1bmMpOwogCQlpZiAoZXJyKQotCQkJZ290byBlcnJvdXQ7CisJCQly ZXR1cm4gZXJyOwogCQlnb3RvIHNlbmRfZG9uZTsKIAl9CiAKQEAgLTI2ODAsNyArMjY4MCw3IEBA IHN0YXRpYyBpbnQgdGVhbV9ubF9zZW5kX3BvcnRfbGlzdF9nZXQoc3RydWN0IHRlYW0gKnRlYW0s IHUzMiBwb3J0aWQsIHUzMiBzZXEsCiAJaWYgKCFubGgpIHsKIAkJZXJyID0gX19zZW5kX2FuZF9h bGxvY19za2IoJnNrYiwgdGVhbSwgcG9ydGlkLCBzZW5kX2Z1bmMpOwogCQlpZiAoZXJyKQotCQkJ Z290byBlcnJvdXQ7CisJCQlyZXR1cm4gZXJyOwogCQlnb3RvIHNlbmRfZG9uZTsKIAl9CiAKLS0g CjIuMTQuMwoKCkZyb20gMzc0NDZhZGRkNjAwY2Y4YTc3YWI0NDhjMjc3N2QxYzYyZjJiM2NmNSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFkYWxpbiBCdWN1ciA8bWFkYWxpbi5idWN1 ckBueHAuY29tPgpEYXRlOiBXZWQsIDE0IE1hciAyMDE4IDA4OjM3OjI4IC0wNTAwClN1YmplY3Q6 IFtQQVRDSCAzNS80M10gc29jL2ZzbC9xYm1hbjogZml4IGlzc3VlIGluIHFtYW5fZGVsZXRlX2Nn cl9zYWZlKCkKClsgVXBzdHJlYW0gY29tbWl0IDk2ZjQxM2Y0NzY3NzM2NmUwYWUwMzc5NzQwOWJm Y2M0MTUxZGJmOWUgXQoKVGhlIHdhaXRfZm9yX2NvbXBsZXRpb24oKSBjYWxsIGluIHFtYW5fZGVs ZXRlX2Nncl9zYWZlKCkKd2FzIHRyaWdnZXJpbmcgYSBzY2hlZHVsaW5nIHdoaWxlIGF0b21pYyBi dWcsIHJlcGxhY2luZyB0aGUKa3RocmVhZCB3aXRoIGEgc21wX2NhbGxfZnVuY3Rpb25fc2luZ2xl KCkgY2FsbCB0byBmaXggaXQuCgpTaWduZWQtb2ZmLWJ5OiBNYWRhbGluIEJ1Y3VyIDxtYWRhbGlu LmJ1Y3VyQG54cC5jb20+ClNpZ25lZC1vZmYtYnk6IFJveSBQbGVkZ2UgPHJveS5wbGVkZ2VAbnhw LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvc29jL2ZzbC9xYm1hbi9xbWFuLmMgfCAyOCArKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9mc2wvcWJtYW4vcW1hbi5jIGIvZHJpdmVy cy9zb2MvZnNsL3FibWFuL3FtYW4uYwppbmRleCAxOGVlZmMzZjFhYmUuLjBjNjA2NWRiYTQ4YSAx MDA2NDQKLS0tIGEvZHJpdmVycy9zb2MvZnNsL3FibWFuL3FtYW4uYworKysgYi9kcml2ZXJzL3Nv Yy9mc2wvcWJtYW4vcW1hbi5jCkBAIC0yNDE0LDM5ICsyNDE0LDIxIEBAIHN0cnVjdCBjZ3JfY29t cCB7CiAJc3RydWN0IGNvbXBsZXRpb24gY29tcGxldGlvbjsKIH07CiAKLXN0YXRpYyBpbnQgcW1h bl9kZWxldGVfY2dyX3RocmVhZCh2b2lkICpwKQorc3RhdGljIHZvaWQgcW1hbl9kZWxldGVfY2dy X3NtcF9jYWxsKHZvaWQgKnApCiB7Ci0Jc3RydWN0IGNncl9jb21wICpjZ3JfY29tcCA9IChzdHJ1 Y3QgY2dyX2NvbXAgKilwOwotCWludCByZXQ7Ci0KLQlyZXQgPSBxbWFuX2RlbGV0ZV9jZ3IoY2dy X2NvbXAtPmNncik7Ci0JY29tcGxldGUoJmNncl9jb21wLT5jb21wbGV0aW9uKTsKLQotCXJldHVy biByZXQ7CisJcW1hbl9kZWxldGVfY2dyKChzdHJ1Y3QgcW1hbl9jZ3IgKilwKTsKIH0KIAogdm9p ZCBxbWFuX2RlbGV0ZV9jZ3Jfc2FmZShzdHJ1Y3QgcW1hbl9jZ3IgKmNncikKIHsKLQlzdHJ1Y3Qg dGFza19zdHJ1Y3QgKnRocmVhZDsKLQlzdHJ1Y3QgY2dyX2NvbXAgY2dyX2NvbXA7Ci0KIAlwcmVl bXB0X2Rpc2FibGUoKTsKIAlpZiAocW1hbl9jZ3JfY3B1c1tjZ3ItPmNncmlkXSAhPSBzbXBfcHJv Y2Vzc29yX2lkKCkpIHsKLQkJaW5pdF9jb21wbGV0aW9uKCZjZ3JfY29tcC5jb21wbGV0aW9uKTsK LQkJY2dyX2NvbXAuY2dyID0gY2dyOwotCQl0aHJlYWQgPSBrdGhyZWFkX2NyZWF0ZShxbWFuX2Rl bGV0ZV9jZ3JfdGhyZWFkLCAmY2dyX2NvbXAsCi0JCQkJCSJjZ3JfZGVsIik7Ci0KLQkJaWYgKElT X0VSUih0aHJlYWQpKQotCQkJZ290byBvdXQ7Ci0KLQkJa3RocmVhZF9iaW5kKHRocmVhZCwgcW1h bl9jZ3JfY3B1c1tjZ3ItPmNncmlkXSk7Ci0JCXdha2VfdXBfcHJvY2Vzcyh0aHJlYWQpOwotCQl3 YWl0X2Zvcl9jb21wbGV0aW9uKCZjZ3JfY29tcC5jb21wbGV0aW9uKTsKKwkJc21wX2NhbGxfZnVu Y3Rpb25fc2luZ2xlKHFtYW5fY2dyX2NwdXNbY2dyLT5jZ3JpZF0sCisJCQkJCSBxbWFuX2RlbGV0 ZV9jZ3Jfc21wX2NhbGwsIGNnciwgdHJ1ZSk7CiAJCXByZWVtcHRfZW5hYmxlKCk7CiAJCXJldHVy bjsKIAl9Ci1vdXQ6CisKIAlxbWFuX2RlbGV0ZV9jZ3IoY2dyKTsKIAlwcmVlbXB0X2VuYWJsZSgp OwogfQotLSAKMi4xNC4zCgoKRnJvbSBiMjgwMThmNDIwM2IxZGEzZGEyMzM1MDVhMDM0ZTY3NDNm NTQ2NDgyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYWRhbGluIEJ1Y3VyIDxtYWRh bGluLmJ1Y3VyQG54cC5jb20+CkRhdGU6IFdlZCwgMTQgTWFyIDIwMTggMDg6Mzc6MjkgLTA1MDAK U3ViamVjdDogW1BBVENIIDM2LzQzXSBkcGFhX2V0aDogZml4IGVycm9yIGluIGRwYWFfcmVtb3Zl KCkKClsgVXBzdHJlYW0gY29tbWl0IDg4MDc1MjU2ZWU4MTcwNDFkNjhjMjM4N2YyOTA2NWI1Y2Iy YjM0MmEgXQoKVGhlIHJlY2VudCBjaGFuZ2VzIHRoYXQgbWFrZSB0aGUgZHJpdmVyIHByb2Jpbmcg Y29tcGF0aWJsZSB3aXRoIERTQQp3ZXJlIG5vdCBwcm9wYWdhdGVkIGluIHRoZSBkcGFfcmVtb3Zl KCkgZnVuY3Rpb24sIGJyZWFraW5nIHRoZQptb2R1bGUgdW5sb2FkIGZ1bmN0aW9uLiBVc2luZyB0 aGUgcHJvcGVyIGRldmljZSB0byBhZGRyZXNzIHRoZSBpc3N1ZS4KClNpZ25lZC1vZmYtYnk6IE1h ZGFsaW4gQnVjdXIgPG1hZGFsaW4uYnVjdXJAbnhwLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRoLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNj YWxlL2RwYWEvZHBhYV9ldGguYwppbmRleCA0MjI1ODA2MGYxNDIuLjc4NjA1MmM5MWZiYyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aC5jCkBAIC0y ODYwLDcgKzI4NjAsNyBAQCBzdGF0aWMgaW50IGRwYWFfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCiAJc3RydWN0IGRldmljZSAqZGV2OwogCWludCBlcnI7CiAKLQlkZXYgPSAm cGRldi0+ZGV2OworCWRldiA9IHBkZXYtPmRldi5wYXJlbnQ7CiAJbmV0X2RldiA9IGRldl9nZXRf ZHJ2ZGF0YShkZXYpOwogCiAJcHJpdiA9IG5ldGRldl9wcml2KG5ldF9kZXYpOwotLSAKMi4xNC4z CgoKRnJvbSA4ZjJhMGEyZDZlMmI5ZDcxMDcwN2ZlZjk5Yzk5NDY3ZjFiZTk4ZjdjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDYW1lbGlhIEdyb3phIDxjYW1lbGlhLmdyb3phQG54cC5j b20+CkRhdGU6IFdlZCwgMTQgTWFyIDIwMTggMDg6Mzc6MzAgLTA1MDAKU3ViamVjdDogW1BBVENI IDM3LzQzXSBkcGFhX2V0aDogcmVtb3ZlIGR1cGxpY2F0ZSBpbml0aWFsaXphdGlvbgoKWyBVcHN0 cmVhbSBjb21taXQgNTY1MTg2MzYyYjczMjI2YTI4ODgzMGFiZTU5NWYwNWYwY2VjMGJiYyBdCgpU aGUgZmRfZm9ybWF0IGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWQgYXQgdGhpcyBwb2ludC4K ClNpZ25lZC1vZmYtYnk6IENhbWVsaWEgR3JvemEgPGNhbWVsaWEuZ3JvemFAbnhwLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRoLmMgfCAxIC0KIDEgZmls ZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVz Y2FsZS9kcGFhL2RwYWFfZXRoLmMKaW5kZXggNzg2MDUyYzkxZmJjLi42YjkyZDQ3YWYxZjcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRoLmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguYwpAQCAt MjI5Miw3ICsyMjkyLDYgQEAgc3RhdGljIGVudW0gcW1hbl9jYl9kcXJyX3Jlc3VsdCByeF9kZWZh dWx0X2RxcnIoc3RydWN0IHFtYW5fcG9ydGFsICpwb3J0YWwsCiAJdmFkZHIgPSBwaHlzX3RvX3Zp cnQoYWRkcik7CiAJcHJlZmV0Y2godmFkZHIgKyBxbV9mZF9nZXRfb2Zmc2V0KGZkKSk7CiAKLQlm ZF9mb3JtYXQgPSBxbV9mZF9nZXRfZm9ybWF0KGZkKTsKIAkvKiBUaGUgb25seSBGRCB0eXBlcyB0 aGF0IHdlIG1heSByZWNlaXZlIGFyZSBjb250aWcgYW5kIFMvRyAqLwogCVdBUk5fT04oKGZkX2Zv cm1hdCAhPSBxbV9mZF9jb250aWcpICYmIChmZF9mb3JtYXQgIT0gcW1fZmRfc2cpKTsKIAotLSAK Mi4xNC4zCgoKRnJvbSAzYjQxNGJkYTFhOTU4NTBjY2FmZjc3Y2M4NTM3NmY2YWViODJlY2YwIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDYW1lbGlhIEdyb3phIDxjYW1lbGlhLmdyb3ph QG54cC5jb20+CkRhdGU6IFdlZCwgMTQgTWFyIDIwMTggMDg6Mzc6MzEgLTA1MDAKU3ViamVjdDog W1BBVENIIDM4LzQzXSBkcGFhX2V0aDogaW5jcmVtZW50IHRoZSBSWCBkcm9wcGVkIGNvdW50ZXIg d2hlbiBuZWVkZWQKClsgVXBzdHJlYW0gY29tbWl0IGU0ZDFiMzdjMTdkMDAwYTNkYTkzNjhhM2Uy NjBmYjllYTQ5MjdjMjUgXQoKU2lnbmVkLW9mZi1ieTogQ2FtZWxpYSBHcm96YSA8Y2FtZWxpYS5n cm96YUBueHAuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9l dGguYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL2Rw YWFfZXRoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aC5j CmluZGV4IDZiOTJkNDdhZjFmNy4uNjhjYmY0Y2ZkNGQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRoLmMKQEAgLTIzMjQsOCArMjMyNCwxMCBAQCBz dGF0aWMgZW51bSBxbWFuX2NiX2RxcnJfcmVzdWx0IHJ4X2RlZmF1bHRfZHFycihzdHJ1Y3QgcW1h bl9wb3J0YWwgKnBvcnRhbCwKIAogCXNrYl9sZW4gPSBza2ItPmxlbjsKIAotCWlmICh1bmxpa2Vs eShuZXRpZl9yZWNlaXZlX3NrYihza2IpID09IE5FVF9SWF9EUk9QKSkKKwlpZiAodW5saWtlbHko bmV0aWZfcmVjZWl2ZV9za2Ioc2tiKSA9PSBORVRfUlhfRFJPUCkpIHsKKwkJcGVyY3B1X3N0YXRz LT5yeF9kcm9wcGVkKys7CiAJCXJldHVybiBxbWFuX2NiX2RxcnJfY29uc3VtZTsKKwl9CiAKIAlw ZXJjcHVfc3RhdHMtPnJ4X3BhY2tldHMrKzsKIAlwZXJjcHVfc3RhdHMtPnJ4X2J5dGVzICs9IHNr Yl9sZW47Ci0tIAoyLjE0LjMKCgpGcm9tIGMxMDIyNWM1ZGUyOTA0MzFkN2Q4MGQ4OWE0MzU5YmMz Nzg2NzBlMWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENhbWVsaWEgR3JvemEgPGNh bWVsaWEuZ3JvemFAbnhwLmNvbT4KRGF0ZTogV2VkLCAxNCBNYXIgMjAxOCAwODozNzozMiAtMDUw MApTdWJqZWN0OiBbUEFUQ0ggMzkvNDNdIGRwYWFfZXRoOiByZW1vdmUgZHVwbGljYXRlIGluY3Jl bWVudCBvZiB0aGUgdHhfZXJyb3JzCiBjb3VudGVyCgpbIFVwc3RyZWFtIGNvbW1pdCA4MmQxNDFj ZDE5ZDA4OGVlNDFmZWFmZGU0YTZmODZlZWI0MGQ5M2M1IF0KClRoZSB0eF9lcnJvcnMgY291bnRl ciBpcyBpbmNyZW1lbnRlZCBieSB0aGUgZHBhYV94bWl0IGNhbGxlci4KClNpZ25lZC1vZmYtYnk6 IENhbWVsaWEgR3JvemEgPGNhbWVsaWEuZ3JvemFAbnhwLmNvbT4KU2lnbmVkLW9mZi1ieTogTWFk YWxpbiBCdWN1ciA8bWFkYWxpbi5idWN1ckBueHAuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQv ZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguYyB8IDEgLQogMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9k cGFhX2V0aC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGgu YwppbmRleCA2OGNiZjRjZmQ0ZDQuLjRmNmU5ZDM0NzBkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aC5jCkBAIC0yMDIyLDcgKzIwMjIsNiBAQCBz dGF0aWMgaW5saW5lIGludCBkcGFhX3htaXQoc3RydWN0IGRwYWFfcHJpdiAqcHJpdiwKIAl9CiAK IAlpZiAodW5saWtlbHkoZXJyIDwgMCkpIHsKLQkJcGVyY3B1X3N0YXRzLT50eF9lcnJvcnMrKzsK IAkJcGVyY3B1X3N0YXRzLT50eF9maWZvX2Vycm9ycysrOwogCQlyZXR1cm4gZXJyOwogCX0KLS0g CjIuMTQuMwoKCkZyb20gNWM3NWFhN2JjMmE5ZGRkNDM4N2RiOTQwYzFhMmM0MTI2OTgzYzFmMyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSnVsaWFuIFdpZWRtYW5uIDxqd2lAbGludXgu dm5ldC5pYm0uY29tPgpEYXRlOiBUdWUsIDIwIE1hciAyMDE4IDA3OjU5OjEyICswMTAwClN1Ympl Y3Q6IFtQQVRDSCA0MC80M10gczM5MC9xZXRoOiBmcmVlIG5ldGRldmljZSB3aGVuIHJlbW92aW5n IGEgY2FyZAoKWyBVcHN0cmVhbSBjb21taXQgNmJlNjg3Mzk1YjMxMjRmMDAyYTY1M2MxYTUwYjMy NjAyMjJiM2NkNyBdCgpPbiByZW1vdmFsLCBhIHFldGggY2FyZCdzIG5ldGRldmljZSBpcyBjdXJy ZW50bHkgbm90IHByb3Blcmx5IGZyZWVkCmJlY2F1c2UgdGhlIGNhbGwgY2hhaW4gbG9va3MgYXMg Zm9sbG93czoKCnFldGhfY29yZV9yZW1vdmVfZGV2aWNlKGNhcmQpCglseF9yZW1vdmVfZGV2aWNl KGNhcmQpCgkJdW5yZWdpc3Rlcl9uZXRkZXYoY2FyZC0+ZGV2KQoJCWNhcmQtPmRldiA9IE5VTEwJ CQkhISEKCXFldGhfY29yZV9mcmVlX2NhcmQoY2FyZCkKCQlpZiAoY2FyZC0+ZGV2KQkJCQkhISEK CQkJZnJlZV9uZXRkZXYoY2FyZC0+ZGV2KQoKRml4IGl0IGJ5IGZyZWUnaW5nIHRoZSBuZXRkZXYg c3RyYWlnaHQgYWZ0ZXIgdW5yZWdpc3RlcmluZy4gVGhpcyBhbHNvCmZpeGVzIHRoZSBzeXNmcy1k cml2ZW4gbGF5ZXIgc3dpdGNoIGNhc2UgKHFldGhfZGV2X2xheWVyMl9zdG9yZSgpKSwKd2hlcmUg dGhlIG5lZWQgdG8gZnJlZSB0aGUgY3VycmVudCBuZXRkZXZpY2Ugd2FzIG5vdCBjb25zaWRlcmVk IGF0IGFsbC4KCk5vdGUgdGhhdCBmcmVlX25ldGRldigpIHRha2VzIGNhcmUgb2YgdGhlIG5ldGlm X25hcGlfZGVsKCkgZm9yIHVzIHRvby4KCkZpeGVzOiA0YTcxZGY1MDA0N2YgKCJxZXRoOiBuZXcg cWV0aCBkZXZpY2UgZHJpdmVyIikKU2lnbmVkLW9mZi1ieTogSnVsaWFuIFdpZWRtYW5uIDxqd2lA bGludXgudm5ldC5pYm0uY29tPgpSZXZpZXdlZC1ieTogVXJzdWxhIEJyYXVuIDx1YnJhdW5AbGlu dXgudm5ldC5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jIHwgMiAt LQogZHJpdmVycy9zMzkwL25ldC9xZXRoX2wyX21haW4uYyAgIHwgMiArLQogZHJpdmVycy9zMzkw L25ldC9xZXRoX2wzX21haW4uYyAgIHwgMiArLQogMyBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRo X2NvcmVfbWFpbi5jIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jCmluZGV4IDE0 NWI1Nzc2MmQ4Zi4uYzk3Y2RkZjMxYTcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3Fl dGhfY29yZV9tYWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jCkBA IC01MDYxLDggKzUwNjEsNiBAQCBzdGF0aWMgdm9pZCBxZXRoX2NvcmVfZnJlZV9jYXJkKHN0cnVj dCBxZXRoX2NhcmQgKmNhcmQpCiAJUUVUSF9EQkZfSEVYKFNFVFVQLCAyLCAmY2FyZCwgc2l6ZW9m KHZvaWQgKikpOwogCXFldGhfY2xlYW5fY2hhbm5lbCgmY2FyZC0+cmVhZCk7CiAJcWV0aF9jbGVh bl9jaGFubmVsKCZjYXJkLT53cml0ZSk7Ci0JaWYgKGNhcmQtPmRldikKLQkJZnJlZV9uZXRkZXYo Y2FyZC0+ZGV2KTsKIAlxZXRoX2ZyZWVfcWRpb19idWZmZXJzKGNhcmQpOwogCXVucmVnaXN0ZXJf c2VydmljZV9sZXZlbCgmY2FyZC0+cWV0aF9zZXJ2aWNlX2xldmVsKTsKIAlrZnJlZShjYXJkKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9tYWluLmMgYi9kcml2ZXJzL3Mz OTAvbmV0L3FldGhfbDJfbWFpbi5jCmluZGV4IDVhOTczZWJjYjEzYy4uNTIxMjkzYjFmNGZhIDEw MDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDJfbWFpbi5jCisrKyBiL2RyaXZlcnMv czM5MC9uZXQvcWV0aF9sMl9tYWluLmMKQEAgLTkzNSw4ICs5MzUsOCBAQCBzdGF0aWMgdm9pZCBx ZXRoX2wyX3JlbW92ZV9kZXZpY2Uoc3RydWN0IGNjd2dyb3VwX2RldmljZSAqY2dkZXYpCiAJCXFl dGhfbDJfc2V0X29mZmxpbmUoY2dkZXYpOwogCiAJaWYgKGNhcmQtPmRldikgewotCQluZXRpZl9u YXBpX2RlbCgmY2FyZC0+bmFwaSk7CiAJCXVucmVnaXN0ZXJfbmV0ZGV2KGNhcmQtPmRldik7CisJ CWZyZWVfbmV0ZGV2KGNhcmQtPmRldik7CiAJCWNhcmQtPmRldiA9IE5VTEw7CiAJfQogCXJldHVy bjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMgYi9kcml2ZXJz L3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jCmluZGV4IDk2NTc2ZTcyOTIyMi4uMWM2MmNiYmFhNjZm IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jCisrKyBiL2RyaXZl cnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMKQEAgLTMwNDYsOCArMzA0Niw4IEBAIHN0YXRpYyB2 b2lkIHFldGhfbDNfcmVtb3ZlX2RldmljZShzdHJ1Y3QgY2N3Z3JvdXBfZGV2aWNlICpjZ2RldikK IAkJcWV0aF9sM19zZXRfb2ZmbGluZShjZ2Rldik7CiAKIAlpZiAoY2FyZC0+ZGV2KSB7Ci0JCW5l dGlmX25hcGlfZGVsKCZjYXJkLT5uYXBpKTsKIAkJdW5yZWdpc3Rlcl9uZXRkZXYoY2FyZC0+ZGV2 KTsKKwkJZnJlZV9uZXRkZXYoY2FyZC0+ZGV2KTsKIAkJY2FyZC0+ZGV2ID0gTlVMTDsKIAl9CiAK LS0gCjIuMTQuMwoKCkZyb20gZDQ3M2Y4OWE5MjFhZGIxYjA1MDk2ZWZhN2I1YWUzNjhkYjIzMWZl NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSnVsaWFuIFdpZWRtYW5uIDxqd2lAbGlu dXgudm5ldC5pYm0uY29tPgpEYXRlOiBUdWUsIDIwIE1hciAyMDE4IDA3OjU5OjEzICswMTAwClN1 YmplY3Q6IFtQQVRDSCA0MS80M10gczM5MC9xZXRoOiB3aGVuIHRocmVhZCBjb21wbGV0ZXMsIHdh a2UgdXAgYWxsIHdhaXRlcnMKClsgVXBzdHJlYW0gY29tbWl0IDEwNjNlNDMyYmI0NWJlMjA5NDI3 ZWQzZjFjYTM5MDhlNGFhM2M3ZDcgXQoKcWV0aF93YWl0X2Zvcl90aHJlYWRzKCkgaXMgcG90ZW50 aWFsbHkgY2FsbGVkIGJ5IG11bHRpcGxlIHVzZXJzLCBtYWtlCnN1cmUgdG8gbm90aWZ5IGFsbCBv ZiB0aGVtIGFmdGVyIHFldGhfY2xlYXJfdGhyZWFkX3J1bm5pbmdfYml0KCkKYWRqdXN0ZWQgdGhl IHRocmVhZF9ydW5uaW5nX21hc2suIFdpdGggbm8gdGltZW91dCwgY2FsbGVycyB3b3VsZApvdGhl cndpc2Ugc3RhbGwuCgpTaWduZWQtb2ZmLWJ5OiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC52 bmV0LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMgfCAyICstCiAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3Fl dGhfY29yZV9tYWluLmMKaW5kZXggYzk3Y2RkZjMxYTcwLi4zNmNjOWI2ZDM1MTMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYworKysgYi9kcml2ZXJzL3MzOTAv bmV0L3FldGhfY29yZV9tYWluLmMKQEAgLTk2MSw3ICs5NjEsNyBAQCB2b2lkIHFldGhfY2xlYXJf dGhyZWFkX3J1bm5pbmdfYml0KHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQsIHVuc2lnbmVkIGxvbmcg dGhyZWFkKQogCXNwaW5fbG9ja19pcnFzYXZlKCZjYXJkLT50aHJlYWRfbWFza19sb2NrLCBmbGFn cyk7CiAJY2FyZC0+dGhyZWFkX3J1bm5pbmdfbWFzayAmPSB+dGhyZWFkOwogCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJmNhcmQtPnRocmVhZF9tYXNrX2xvY2ssIGZsYWdzKTsKLQl3YWtlX3VwKCZj YXJkLT53YWl0X3EpOworCXdha2VfdXBfYWxsKCZjYXJkLT53YWl0X3EpOwogfQogRVhQT1JUX1NZ TUJPTF9HUEwocWV0aF9jbGVhcl90aHJlYWRfcnVubmluZ19iaXQpOwogCi0tIAoyLjE0LjMKCgpG cm9tIGNkMjQ3YWU4OWU3Y2NlOGE3ZWNhNjRmYTRhNGNhM2I3OTNiZjBjMjMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEp1bGlhbiBXaWVkbWFubiA8andpQGxpbnV4LnZuZXQuaWJtLmNv bT4KRGF0ZTogVHVlLCAyMCBNYXIgMjAxOCAwNzo1OToxNCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg NDIvNDNdIHMzOTAvcWV0aDogbG9jayByZWFkIGRldmljZSB3aGlsZSBxdWV1ZWluZyBuZXh0IGJ1 ZmZlcgoKWyBVcHN0cmVhbSBjb21taXQgMTdiZjhjOWIzZDQ5OWQ1MTY4NTM3Yzk4YjYxZWI3YTFm Y2JjYTZjMiBdCgpGb3IgY2FsbGluZyBjY3dfZGV2aWNlX3N0YXJ0KCksIGlzc3VlX25leHRfcmVh ZCgpIG5lZWRzIHRvIGhvbGQgdGhlCmRldmljZSdzIGNjd2xvY2suClRoaXMgaXMgc2F0aXNmaWVk IGZvciB0aGUgSVJRIGhhbmRsZXIgcGF0aCAod2hlcmUgcWV0aF9pcnEoKSBnZXRzIGNhbGxlZAp1 bmRlciB0aGUgY2N3bG9jayksIGJ1dCB3ZSBuZWVkIGV4cGxpY2l0IGxvY2tpbmcgZm9yIHRoZSBp bml0aWFsIGNhbGwgYnkKdGhlIE1QQyBpbml0aWFsaXphdGlvbi4KClNpZ25lZC1vZmYtYnk6IEp1 bGlhbiBXaWVkbWFubiA8andpQGxpbnV4LnZuZXQuaWJtLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvczM5MC9uZXQv cWV0aF9jb3JlX21haW4uYyB8IDE2ICsrKysrKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAx MyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5 MC9uZXQvcWV0aF9jb3JlX21haW4uYyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4u YwppbmRleCAzNmNjOWI2ZDM1MTMuLmNiNjlmMmQ2NzRhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9z MzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3Jl X21haW4uYwpAQCAtNTI2LDggKzUyNiw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHFldGhfaXNfY3Eo c3RydWN0IHFldGhfY2FyZCAqY2FyZCwgdW5zaWduZWQgaW50IHF1ZXVlKQogCSAgICBxdWV1ZSA9 PSBjYXJkLT5xZGlvLm5vX2luX3F1ZXVlcyAtIDE7CiB9CiAKLQotc3RhdGljIGludCBxZXRoX2lz c3VlX25leHRfcmVhZChzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkKQorc3RhdGljIGludCBfX3FldGhf aXNzdWVfbmV4dF9yZWFkKHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQpCiB7CiAJaW50IHJjOwogCXN0 cnVjdCBxZXRoX2NtZF9idWZmZXIgKmlvYjsKQEAgLTU1OCw2ICs1NTcsMTcgQEAgc3RhdGljIGlu dCBxZXRoX2lzc3VlX25leHRfcmVhZChzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkKQogCXJldHVybiBy YzsKIH0KIAorc3RhdGljIGludCBxZXRoX2lzc3VlX25leHRfcmVhZChzdHJ1Y3QgcWV0aF9jYXJk ICpjYXJkKQoreworCWludCByZXQ7CisKKwlzcGluX2xvY2tfaXJxKGdldF9jY3dkZXZfbG9jayhD QVJEX1JERVYoY2FyZCkpKTsKKwlyZXQgPSBfX3FldGhfaXNzdWVfbmV4dF9yZWFkKGNhcmQpOwor CXNwaW5fdW5sb2NrX2lycShnZXRfY2N3ZGV2X2xvY2soQ0FSRF9SREVWKGNhcmQpKSk7CisKKwly ZXR1cm4gcmV0OworfQorCiBzdGF0aWMgc3RydWN0IHFldGhfcmVwbHkgKnFldGhfYWxsb2NfcmVw bHkoc3RydWN0IHFldGhfY2FyZCAqY2FyZCkKIHsKIAlzdHJ1Y3QgcWV0aF9yZXBseSAqcmVwbHk7 CkBAIC0xMTgzLDcgKzExOTMsNyBAQCBzdGF0aWMgdm9pZCBxZXRoX2lycShzdHJ1Y3QgY2N3X2Rl dmljZSAqY2RldiwgdW5zaWduZWQgbG9uZyBpbnRwYXJtLAogCQlyZXR1cm47CiAJaWYgKGNoYW5u ZWwgPT0gJmNhcmQtPnJlYWQgJiYKIAkgICAgY2hhbm5lbC0+c3RhdGUgPT0gQ0hfU1RBVEVfVVAp Ci0JCXFldGhfaXNzdWVfbmV4dF9yZWFkKGNhcmQpOworCQlfX3FldGhfaXNzdWVfbmV4dF9yZWFk KGNhcmQpOwogCiAJaW9iID0gY2hhbm5lbC0+aW9iOwogCWluZGV4ID0gY2hhbm5lbC0+YnVmX25v OwotLSAKMi4xNC4zCgoKRnJvbSA1OTRjMmE0OTFhZjU4Y2Y3NmEyNDk5ZjRjNWNkMTBjMzM3NTNl NDc0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpYW4gV2llZG1hbm4gPGp3aUBs aW51eC52bmV0LmlibS5jb20+CkRhdGU6IFR1ZSwgMjAgTWFyIDIwMTggMDc6NTk6MTUgKzAxMDAK U3ViamVjdDogW1BBVENIIDQzLzQzXSBzMzkwL3FldGg6IG9uIGNoYW5uZWwgZXJyb3IsIHJlamVj dCBmdXJ0aGVyIGNtZAogcmVxdWVzdHMKClsgVXBzdHJlYW0gY29tbWl0IGE2YzNkOTM5NjNlNGIz MzNjNzY0ZmRlNjk4MDJjM2VhOWVhYTlkNWMgXQoKV2hlbiB0aGUgSVJRIGhhbmRsZXIgZGV0ZXJt aW5lcyB0aGF0IG9uZSBvZiB0aGUgY21kIElPIGNoYW5uZWxzIGhhcwpmYWlsZWQgYW5kIHNjaGVk dWxlcyByZWNvdmVyeSwgYmxvY2sgYW55IGZ1cnRoZXIgY21kIHJlcXVlc3RzIGZyb20KYmVpbmcg c3VibWl0dGVkLiBUaGUgcmVxdWVzdCB3b3VsZCBpbmV2aXRhYmx5IHN0YWxsLCBhbmQgcHJldmVu dCB0aGUKcmVjb3ZlcnkgZnJvbSBtYWtpbmcgcHJvZ3Jlc3MgdW50aWwgdGhlIHJlcXVlc3QgdGlt ZXMgb3V0LgoKVGhpcyBzb3J0IG9mIGVycm9yIHdhcyBvYnNlcnZlZCBhZnRlciBMaXZlIEd1ZXN0 IFJlbG9jYXRpb24sIHdoZXJlCnRoZSBwZW5kaW5nIElPIG9uIHRoZSBSRUFEIGNoYW5uZWwgaW50 ZW50aW9uYWxseSBnZXRzIHRlcm1pbmF0ZWQgdG8Ka2ljay1zdGFydCByZWNvdmVyeS4gU2ltdWx0 YW5lb3VzbHkgdGhlIGd1ZXN0IGV4ZWN1dGVkIFNJT0NFVEhUT09MLAp0cmlnZ2VyaW5nIHFldGgg dG8gaXNzdWUgYSBRVUVSWSBDQVJEIElORk8gY29tbWFuZC4gVGhlIGNvbW1hbmQKdGhlbiBzdGFs bGVkIGluIHRoZSBpbm9wZXJhYmVsIFdSSVRFIGNoYW5uZWwuCgpTaWduZWQtb2ZmLWJ5OiBKdWxp YW4gV2llZG1hbm4gPGp3aUBsaW51eC52bmV0LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3MzOTAvbmV0L3Fl dGhfY29yZV9tYWluLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYyBiL2RyaXZlcnMvczM5 MC9uZXQvcWV0aF9jb3JlX21haW4uYwppbmRleCBjYjY5ZjJkNjc0YWUuLjkzOWI1YjVlOTdlZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jCisrKyBiL2RyaXZl cnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYwpAQCAtMTE3NSw2ICsxMTc1LDcgQEAgc3RhdGlj IHZvaWQgcWV0aF9pcnEoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIHVuc2lnbmVkIGxvbmcgaW50 cGFybSwKIAkJfQogCQlyYyA9IHFldGhfZ2V0X3Byb2JsZW0oY2RldiwgaXJiKTsKIAkJaWYgKHJj KSB7CisJCQljYXJkLT5yZWFkX29yX3dyaXRlX3Byb2JsZW0gPSAxOwogCQkJcWV0aF9jbGVhcl9p cGFjbWRfbGlzdChjYXJkKTsKIAkJCXFldGhfc2NoZWR1bGVfcmVjb3ZlcnkoY2FyZCk7CiAJCQln b3RvIG91dDsKLS0gCjIuMTQuMwoK ----Next_Part(Wed_Mar_28_11_35_10_2018_787)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_415.mbox" RnJvbSA3YzFmZWFiMTI5ZDExNDg5MGNkNGZhNzU0MTMzY2M3NjVjNjhjMzU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCAxMiBNYXIgMjAxOCAxNjowMDo0MCAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg MDEvNTNdIG5ldDogZHNhOiBGaXggZHNhX2lzX3VzZXJfcG9ydCgpIHRlc3QgaW52ZXJzaW9uCgpb IFVwc3RyZWFtIGNvbW1pdCA1YTlmOGRmNjhlZTY5MjdmMjFkZDNmMmM3NWMxNmZlYjhiNTNhOWU4 IF0KCkR1cmluZyB0aGUgY29udmVyc2lvbiB0byBkc2FfaXNfdXNlcl9wb3J0KCksIGEgY29uZGl0 aW9uIGVuZGVkIHVwIGJlaW5nCnJldmVyc2VkLCB3aGljaCB3b3VsZCBwcmV2ZW50IHRoZSBjcmVh dGlvbiBvZiBhbnkgdXNlciBwb3J0IHdoZW4gdXNpbmcKdGhlIGxlZ2FjeSBiaW5kaW5nIGFuZC9v ciBwbGF0Zm9ybSBkYXRhLCBmaXggdGhhdC4KCkZpeGVzOiA0YTViODVmZmUyYTAgKCJuZXQ6IGRz YTogdXNlIGRzYV9pc191c2VyX3BvcnQgZXZlcnl3aGVyZSIpClNpZ25lZC1vZmYtYnk6IEZsb3Jp YW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2RzYS9sZWdhY3kuYyB8IDIg Ky0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL25ldC9kc2EvbGVnYWN5LmMgYi9uZXQvZHNhL2xlZ2FjeS5jCmluZGV4IDg0NjExZDdm Y2ZhMi4uM2M5Y2VlMjY4YjhhIDEwMDY0NAotLS0gYS9uZXQvZHNhL2xlZ2FjeS5jCisrKyBiL25l dC9kc2EvbGVnYWN5LmMKQEAgLTE5NCw3ICsxOTQsNyBAQCBzdGF0aWMgaW50IGRzYV9zd2l0Y2hf c2V0dXBfb25lKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywKIAkJZHMtPnBvcnRzW2ldLmRuID0gY2Qt PnBvcnRfZG5baV07CiAJCWRzLT5wb3J0c1tpXS5jcHVfZHAgPSBkc3QtPmNwdV9kcDsKIAotCQlp ZiAoZHNhX2lzX3VzZXJfcG9ydChkcywgaSkpCisJCWlmICghZHNhX2lzX3VzZXJfcG9ydChkcywg aSkpCiAJCQljb250aW51ZTsKIAogCQlyZXQgPSBkc2Ffc2xhdmVfY3JlYXRlKCZkcy0+cG9ydHNb aV0pOwotLSAKMi4xNC4zCgoKRnJvbSA4ZjM2NDYzMDQ5ZjVlYTA2NGM1YTIzM2FkOGJjMGY2MDlh ZjNmMTRmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiB6aGFuZ2xpcGluZyA8emhhbmds aXBpbmcwMkBiYWlkdS5jb20+CkRhdGU6IEZyaSwgOSBNYXIgMjAxOCAxMDowODo1MCArMDgwMApT dWJqZWN0OiBbUEFUQ0ggMDIvNTNdIG9wZW52c3dpdGNoOiBtZXRlcjogZml4IHRoZSBpbmNvcnJl Y3QgY2FsY3VsYXRpb24gb2YKIG1heCBkZWx0YV90CgpbIFVzcHRyZWFtIGNvbW1pdCBkZGM1MDJk ZmVkNjAwYmZmMGI2MWQ4OTlmNzBkOTViNzYyMjNmZGZjIF0KCk1heCBkZWxhdF90IHNob3VsZCBi ZSB0aGUgZnVsbF9idWNrZXQvcmF0ZSBpbnN0ZWFkIG9mIHRoZSBmdWxsX2J1Y2tldC4KQWxzbyBy ZXBvcnQgRUlOVkFMIGlmIHRoZSByYXRlIGlzIHplcm8uCgpGaXhlczogOTZmYmMxM2Q3ZTc3ICgi b3BlbnZzd2l0Y2g6IEFkZCBtZXRlciBpbmZyYXN0cnVjdHVyZSIpCkNjOiBBbmR5IFpob3UgPGF6 aG91QG92bi5vcmc+ClNpZ25lZC1vZmYtYnk6IHpoYW5nbGlwaW5nIDx6aGFuZ2xpcGluZzAyQGJh aWR1LmNvbT4KQWNrZWQtYnk6IFByYXZpbiBCIFNoZWxhciA8cHNoZWxhckBvdm4ub3JnPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L29wZW52c3dpdGNoL21ldGVyLmMgfCAxMiArKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA5 IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L29wZW52c3dp dGNoL21ldGVyLmMgYi9uZXQvb3BlbnZzd2l0Y2gvbWV0ZXIuYwppbmRleCAzZmJmYzc4OTkxYWMu LjBkOTYxZjA5ZDBjNyAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNoL21ldGVyLmMKKysrIGIv bmV0L29wZW52c3dpdGNoL21ldGVyLmMKQEAgLTI0MiwxNCArMjQyLDIwIEBAIHN0YXRpYyBzdHJ1 Y3QgZHBfbWV0ZXIgKmRwX21ldGVyX2NyZWF0ZShzdHJ1Y3QgbmxhdHRyICoqYSkKIAogCQliYW5k LT50eXBlID0gbmxhX2dldF91MzIoYXR0cltPVlNfQkFORF9BVFRSX1RZUEVdKTsKIAkJYmFuZC0+ cmF0ZSA9IG5sYV9nZXRfdTMyKGF0dHJbT1ZTX0JBTkRfQVRUUl9SQVRFXSk7CisJCWlmIChiYW5k LT5yYXRlID09IDApIHsKKwkJCWVyciA9IC1FSU5WQUw7CisJCQlnb3RvIGV4aXRfZnJlZV9tZXRl cjsKKwkJfQorCiAJCWJhbmQtPmJ1cnN0X3NpemUgPSBubGFfZ2V0X3UzMihhdHRyW09WU19CQU5E X0FUVFJfQlVSU1RdKTsKIAkJLyogRmlndXJlIG91dCBtYXggZGVsdGFfdCB0aGF0IGlzIGVub3Vn aCB0byBmaWxsIGFueSBidWNrZXQuCiAJCSAqIEtlZXAgbWF4X2RlbHRhX3Qgc2l6ZSB0byB0aGUg YnVja2V0IHVuaXRzOgogCQkgKiBwa3RzID0+IDEvMTAwMCBwYWNrZXRzLCBraWxvYml0cyA9PiBi aXRzLgorCQkgKgorCQkgKiBTdGFydCB3aXRoIGEgZnVsbCBidWNrZXQuCiAJCSAqLwotCQliYW5k X21heF9kZWx0YV90ID0gKGJhbmQtPmJ1cnN0X3NpemUgKyBiYW5kLT5yYXRlKSAqIDEwMDA7Ci0J CS8qIFN0YXJ0IHdpdGggYSBmdWxsIGJ1Y2tldC4gKi8KLQkJYmFuZC0+YnVja2V0ID0gYmFuZF9t YXhfZGVsdGFfdDsKKwkJYmFuZC0+YnVja2V0ID0gKGJhbmQtPmJ1cnN0X3NpemUgKyBiYW5kLT5y YXRlKSAqIDEwMDA7CisJCWJhbmRfbWF4X2RlbHRhX3QgPSBiYW5kLT5idWNrZXQgLyBiYW5kLT5y YXRlOwogCQlpZiAoYmFuZF9tYXhfZGVsdGFfdCA+IG1ldGVyLT5tYXhfZGVsdGFfdCkKIAkJCW1l dGVyLT5tYXhfZGVsdGFfdCA9IGJhbmRfbWF4X2RlbHRhX3Q7CiAJCWJhbmQrKzsKLS0gCjIuMTQu MwoKCkZyb20gM2E0NTM1NDIyNDQzZmVlNmJjMjcxYmU1YmQ1OTA4MTcxYTEwZGZiNCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWljaGFsIEthbGRlcm9uIDxNaWNoYWwuS2FsZGVyb25A Y2F2aXVtLmNvbT4KRGF0ZTogV2VkLCAxNCBNYXIgMjAxOCAxNDo0OToyNyArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMDMvNTNdIHFlZDogRml4IE1QQSB1bmFsaWduIGZsb3cgaW4gY2FzZSBoZWFkZXIg aXMgc3BsaXQKIGFjcm9zcyB0d28gcGFja2V0cy4KClsgVXBzdHJlYW0gY29tbWl0IDkzM2U4Yzkx YjlmNWEyZjUwNGY2ZGExZjA2OWM0MTA0NDliOWY0YjkgXQoKVGhlcmUgaXMgYSBjb3JuZXIgY2Fz ZSBpbiB0aGUgTVBBIHVuYWxpZ24gZmxvdyB3aGVyZSBhIEZQRFUgaGVhZGVyIGlzCnNwbGl0IG92 ZXIgdHdvIHRjcCBzZWdtZW50cy4gVGhlIGxlbmd0aCBvZiB0aGUgZmlyc3QgZnJhZ21lbnQgaW4g dGhpcwpjYXNlIHdhcyBub3QgaW5pdGlhbGl6ZWQgcHJvcGVybHkgYW5kIHNob3VsZCBiZSAnMScK CkZpeGVzOiBjN2QxZDgzOSAoInFlZDogQWRkIHN1cHBvcnQgZm9yIE1QQSBoZWFkZXIgYmVpbmcg c3BsaXQgb3ZlciB0d28gdGNwIHBhY2tldHMiKQoKU2lnbmVkLW9mZi1ieTogTWljaGFsIEthbGRl cm9uIDxNaWNoYWwuS2FsZGVyb25AY2F2aXVtLmNvbT4KU2lnbmVkLW9mZi1ieTogQXJpZWwgRWxp b3IgPEFyaWVsLkVsaW9yQGNhdml1bS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMv cWVkL3FlZF9pd2FycC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3Fl ZC9xZWRfaXdhcnAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX2l3YXJw LmMKaW5kZXggNDA5MDQxZWFiMTg5Li5hNzEzMzljYTIzZTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX2l3YXJwLmMKKysrIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvcWxvZ2ljL3FlZC9xZWRfaXdhcnAuYwpAQCAtMTkwNiw4ICsxOTA2LDggQEAgcWVkX2l3 YXJwX3VwZGF0ZV9mcGR1X2xlbmd0aChzdHJ1Y3QgcWVkX2h3Zm4gKnBfaHdmbiwKIAkJLyogTWlz c2luZyBsb3dlciBieXRlIGlzIG5vdyBhdmFpbGFibGUgKi8KIAkJbXBhX2xlbiA9IGZwZHUtPmZw ZHVfbGVuZ3RoIHwgKm1wYV9kYXRhOwogCQlmcGR1LT5mcGR1X2xlbmd0aCA9IFFFRF9JV0FSUF9G UERVX0xFTl9XSVRIX1BBRChtcGFfbGVuKTsKLQkJZnBkdS0+bXBhX2ZyYWdfbGVuID0gZnBkdS0+ ZnBkdV9sZW5ndGg7CiAJCS8qIG9uZSBieXRlIG9mIGhkciAqLworCQlmcGR1LT5tcGFfZnJhZ19s ZW4gPSAxOwogCQlmcGR1LT5pbmNvbXBsZXRlX2J5dGVzID0gZnBkdS0+ZnBkdV9sZW5ndGggLSAx OwogCQlEUF9WRVJCT1NFKHBfaHdmbiwKIAkJCSAgIFFFRF9NU0dfUkRNQSwKLS0gCjIuMTQuMwoK CkZyb20gZWVmNzRlY2YyYTZhN2Y0YWM2ODFjZTQ4NjQ3YzhmNWE2ZTE3MWE5ZiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogU29oZWlsIEhhc3NhcyBZZWdhbmVoIDxzb2hlaWxAZ29vZ2xl LmNvbT4KRGF0ZTogVHVlLCA2IE1hciAyMDE4IDE3OjE1OjEyIC0wNTAwClN1YmplY3Q6IFtQQVRD SCAwNC81M10gdGNwOiBwdXJnZSB3cml0ZSBxdWV1ZSB1cG9uIGFib3J0aW5nIHRoZSBjb25uZWN0 aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCBlMDU4MzZhYzA3Yzc3ZGQ5MDM3N2Y4YzgxNDBiY2UyYTQ0 YWY1ZmU3IF0KCldoZW4gdGhlIGNvbm5lY3Rpb24gaXMgYWJvcnRlZCwgdGhlcmUgaXMgbm8gcG9p bnQgaW4Ka2VlcGluZyB0aGUgcGFja2V0cyBvbiB0aGUgd3JpdGUgcXVldWUgdW50aWwgdGhlIGNv bm5lY3Rpb24KaXMgY2xvc2VkLgoKU2ltaWxhciB0byBhMjdmZDdhOGVkMzggKCd0Y3A6IHB1cmdl IHdyaXRlIHF1ZXVlIHVwb24gUlNUJyksCnRoaXMgaXMgZXNzZW50aWFsIGZvciBhIGNvcnJlY3Qg TVNHX1pFUk9DT1BZIGltcGxlbWVudGF0aW9uLApiZWNhdXNlIHVzZXJzcGFjZSBjYW5ub3QgY2Fs bCBjbG9zZShmZCkgYmVmb3JlIHJlY2VpdmluZwp6ZXJvY29weSBzaWduYWxzIGV2ZW4gd2hlbiB0 aGUgY29ubmVjdGlvbiBpcyBhYm9ydGVkLgoKRml4ZXM6IGYyMTRmOTE1ZTdkYiAoInRjcDogZW5h YmxlIE1TR19aRVJPQ09QWSIpClNpZ25lZC1vZmYtYnk6IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8 c29oZWlsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2Vs bEBnb29nbGUuY29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpTaWduZWQtb2ZmLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9pcHY0L3RjcC5jICAgICAgIHwgMSArCiBuZXQvaXB2NC90Y3BfdGltZXIuYyB8IDEgKwogMiBm aWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Au YyBiL25ldC9pcHY0L3RjcC5jCmluZGV4IGM4MjFmNWQ2ODcyMC4uMmViOTFiOTdhMDYyIDEwMDY0 NAotLS0gYS9uZXQvaXB2NC90Y3AuYworKysgYi9uZXQvaXB2NC90Y3AuYwpAQCAtMzU0Miw2ICsz NTQyLDcgQEAgaW50IHRjcF9hYm9ydChzdHJ1Y3Qgc29jayAqc2ssIGludCBlcnIpCiAKIAliaF91 bmxvY2tfc29jayhzayk7CiAJbG9jYWxfYmhfZW5hYmxlKCk7CisJdGNwX3dyaXRlX3F1ZXVlX3B1 cmdlKHNrKTsKIAlyZWxlYXNlX3NvY2soc2spOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEv bmV0L2lwdjQvdGNwX3RpbWVyLmMgYi9uZXQvaXB2NC90Y3BfdGltZXIuYwppbmRleCAzODgxNThj OWQ5ZjYuLmM3MjExNDBhN2Q3OSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX3RpbWVyLmMKKysr IGIvbmV0L2lwdjQvdGNwX3RpbWVyLmMKQEAgLTM0LDYgKzM0LDcgQEAgc3RhdGljIHZvaWQgdGNw X3dyaXRlX2VycihzdHJ1Y3Qgc29jayAqc2spCiAJc2stPnNrX2VyciA9IHNrLT5za19lcnJfc29m dCA/IDogRVRJTUVET1VUOwogCXNrLT5za19lcnJvcl9yZXBvcnQoc2spOwogCisJdGNwX3dyaXRl X3F1ZXVlX3B1cmdlKHNrKTsKIAl0Y3BfZG9uZShzayk7CiAJX19ORVRfSU5DX1NUQVRTKHNvY2tf bmV0KHNrKSwgTElOVVhfTUlCX1RDUEFCT1JUT05USU1FT1VUKTsKIH0KLS0gCjIuMTQuMwoKCkZy b20gMTZiYjYzZDE4ODdjMDY4OGQ1MTBhY2FkNjY0NzkyNDEwMDliYzQxYSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogTWljaGFsIEthbGRlcm9uIDxNaWNoYWwuS2FsZGVyb25AY2F2aXVt LmNvbT4KRGF0ZTogV2VkLCAxNCBNYXIgMjAxOCAxNDo0OToyOCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDUvNTNdIHFlZDogRml4IG5vbiBUQ1AgcGFja2V0cyBzaG91bGQgYmUgZHJvcHBlZCBvbiBp V0FSUCBsbDIKIGNvbm5lY3Rpb24KClsgVXBzdHJlYW0gY29tbWl0IDE2ZGEwOTA0N2QzZmI5OTFk YzQ4YWY0MWY2ZDI1NWZkNTc4ZThjYTIgXQoKRlcgd29ya2Fyb3VuZC4gVGhlIGlXQVJQIExMMiBj b25uZWN0aW9uIGRpZCBub3QgZXhwZWN0IFRDUCBwYWNrZXRzCnRvIGFycml2ZSBvbiBpdCdzIGNv bm5lY3Rpb24uIFRoZSBmaXggZHJvcHMgYW55IG5vbi10Y3AgcGFja2V0cwoKRml4ZXMgYjVjMjlj YSAoInFlZDogaVdBUlAgQ00gLSBzZXR1cCBhIGxsMiBjb25uZWN0aW9uIGZvciBoYW5kbGluZwpT WU4gcGFja2V0cyIpCgpTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgS2FsZGVyb24gPE1pY2hhbC5LYWxk ZXJvbkBjYXZpdW0uY29tPgpTaWduZWQtb2ZmLWJ5OiBBcmllbCBFbGlvciA8QXJpZWwuRWxpb3JA Y2F2aXVtLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX2l3YXJwLmMg fCAxNSArKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZC9xZWRfaXdhcnAuYyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWQvcWVkX2l3YXJwLmMKaW5kZXggYTcxMzM5 Y2EyM2U1Li5mYmE3ZjVjMzRiODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fs b2dpYy9xZWQvcWVkX2l3YXJwLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3Fl ZC9xZWRfaXdhcnAuYwpAQCAtMTY4MSw2ICsxNjgxLDEzIEBAIHFlZF9pd2FycF9wYXJzZV9yeF9w a3Qoc3RydWN0IHFlZF9od2ZuICpwX2h3Zm4sCiAJaXBoID0gKHN0cnVjdCBpcGhkciAqKSgodTgg KikoZXRoaCkgKyBldGhfaGxlbik7CiAKIAlpZiAoZXRoX3R5cGUgPT0gRVRIX1BfSVApIHsKKwkJ aWYgKGlwaC0+cHJvdG9jb2wgIT0gSVBQUk9UT19UQ1ApIHsKKwkJCURQX05PVElDRShwX2h3Zm4s CisJCQkJICAiVW5leHBlY3RlZCBpcCBwcm90b2NvbCBvbiBsbDIgJXhcbiIsCisJCQkJICBpcGgt PnByb3RvY29sKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKIAkJY21faW5mby0+bG9jYWxf aXBbMF0gPSBudG9obChpcGgtPmRhZGRyKTsKIAkJY21faW5mby0+cmVtb3RlX2lwWzBdID0gbnRv aGwoaXBoLT5zYWRkcik7CiAJCWNtX2luZm8tPmlwX3ZlcnNpb24gPSBUQ1BfSVBWNDsKQEAgLTE2 ODksNiArMTY5NiwxNCBAQCBxZWRfaXdhcnBfcGFyc2VfcnhfcGt0KHN0cnVjdCBxZWRfaHdmbiAq cF9od2ZuLAogCQkqcGF5bG9hZF9sZW4gPSBudG9ocyhpcGgtPnRvdF9sZW4pIC0gaXBfaGxlbjsK IAl9IGVsc2UgaWYgKGV0aF90eXBlID09IEVUSF9QX0lQVjYpIHsKIAkJaXA2aCA9IChzdHJ1Y3Qg aXB2NmhkciAqKWlwaDsKKworCQlpZiAoaXA2aC0+bmV4dGhkciAhPSBJUFBST1RPX1RDUCkgewor CQkJRFBfTk9USUNFKHBfaHdmbiwKKwkJCQkgICJVbmV4cGVjdGVkIGlwIHByb3RvY29sIG9uIGxs MiAleFxuIiwKKwkJCQkgIGlwaC0+cHJvdG9jb2wpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0K KwogCQlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CiAJCQljbV9pbmZvLT5sb2NhbF9pcFtpXSA9 CiAJCQkgICAgbnRvaGwoaXA2aC0+ZGFkZHIuaW42X3UudTZfYWRkcjMyW2ldKTsKLS0gCjIuMTQu MwoKCkZyb20gNTY4ZTNkMDExOGQ1MjY1ZDIxMWFiOGE5MzQ3NmRjOTc3MzdlZjUwOSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR3J5Z29yaWkgU3RyYXNoa28gPGdyeWdvcmlpLnN0cmFz aGtvQHRpLmNvbT4KRGF0ZTogRnJpLCAxNiBNYXIgMjAxOCAxNzowODozNCAtMDUwMApTdWJqZWN0 OiBbUEFUQ0ggMDYvNTNdIHN5c2ZzOiBzeW1saW5rOiBleHBvcnQgc3lzZnNfY3JlYXRlX2xpbmtf bm93YXJuKCkKClsgVXBzdHJlYW0gY29tbWl0IDIzOTlhYzQyZTc2MmFiMjVjNTg0MjBlMjUzNTli MjkyMWFmZGM1NWYgXQoKVGhlIHN5c2ZzX2NyZWF0ZV9saW5rX25vd2FybigpIGlzIGdvaW5nIHRv IGJlIHVzZWQgaW4gcGh5bGliIGZyYW1ld29yayBpbgpzdWJzZXF1ZW50IHBhdGNoIHdoaWNoIGNh biBiZSBidWlsdCBhcyBtb2R1bGUuIEhlbmNlLCBleHBvcnQKc3lzZnNfY3JlYXRlX2xpbmtfbm93 YXJuKCkgdG8gYXZvaWQgYnVpbGQgZXJyb3JzLgoKQ2M6IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFp bmVsbGlAZ21haWwuY29tPgpDYzogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpGaXhlczog YTM5OTU0NjA0OTFkICgibmV0OiBwaHk6IFJlbGF4IGVycm9yIGNoZWNraW5nIG9uIHN5c2ZzX2Ny ZWF0ZV9saW5rKCkiKQpTaWduZWQtb2ZmLWJ5OiBHcnlnb3JpaSBTdHJhc2hrbyA8Z3J5Z29yaWku c3RyYXNoa29AdGkuY29tPgpBY2tlZC1ieTogR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVna2hAbGlu dXhmb3VuZGF0aW9uLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGZzL3N5c2ZzL3N5bWxpbmsuYyB8IDEgKwogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZnMvc3lzZnMvc3ltbGluay5jIGIvZnMv c3lzZnMvc3ltbGluay5jCmluZGV4IGFlY2IxNWY4NDU1Ny4uODA4ZjAxOGZhOTc2IDEwMDY0NAot LS0gYS9mcy9zeXNmcy9zeW1saW5rLmMKKysrIGIvZnMvc3lzZnMvc3ltbGluay5jCkBAIC0xMDcs NiArMTA3LDcgQEAgaW50IHN5c2ZzX2NyZWF0ZV9saW5rX25vd2FybihzdHJ1Y3Qga29iamVjdCAq a29iaiwgc3RydWN0IGtvYmplY3QgKnRhcmdldCwKIHsKIAlyZXR1cm4gc3lzZnNfZG9fY3JlYXRl X2xpbmsoa29iaiwgdGFyZ2V0LCBuYW1lLCAwKTsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKHN5c2Zz X2NyZWF0ZV9saW5rX25vd2Fybik7CiAKIC8qKgogICoJc3lzZnNfZGVsZXRlX2xpbmsgLSByZW1v dmUgc3ltbGluayBpbiBvYmplY3QncyBkaXJlY3RvcnkuCi0tIAoyLjE0LjMKCgpGcm9tIDFmNDg2 ZGFkMzI2NjY0YTgyZTM3OTU3NjJmYTcyNmNmZWNkNDQwMWMgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEdyeWdvcmlpIFN0cmFzaGtvIDxncnlnb3JpaS5zdHJhc2hrb0B0aS5jb20+CkRh dGU6IEZyaSwgMTYgTWFyIDIwMTggMTc6MDg6MzUgLTA1MDAKU3ViamVjdDogW1BBVENIIDA3LzUz XSBuZXQ6IHBoeTogcmVsYXggZXJyb3IgY2hlY2tpbmcgd2hlbiBjcmVhdGluZyBzeXNmcyBsaW5r CiBuZXRkZXYtPnBoeWRldgoKWyBVcHN0cmVhbSBjb21taXQgNDQxNGIzZWQ3NGJlMGUyMDVlMDRl MTJjZDgzNTQyYTcyN2Q4ODI1NSBdCgpTb21lIGV0aGVybmV0IGRyaXZlcnMgKGxpa2UgVEkgQ1BT VykgbWF5IGNvbm5lY3QgYW5kIG1hbmFnZSA+MSBOZXQgUEhZcyBwZXIKb25lIG5ldGRldmljZSwg YXMgcmVzdWx0IHN1Y2ggZHJpdmVycyB3aWxsIHByb2R1Y2Ugd2FybmluZyBkdXJpbmcgc3lzdGVt CmJvb3QgYW5kIGZhaWwgdG8gY29ubmVjdCBzZWNvbmQgcGh5IHRvIG5ldGRldmljZSB3aGVuIFBI WUxJQiBmcmFtZXdvcmsKd2lsbCB0cnkgdG8gY3JlYXRlIHN5c2ZzIGxpbmsgbmV0ZGV2LT5waHlk ZXYgZm9yIHNlY29uZCBQSFkKaW4gcGh5X2F0dGFjaF9kaXJlY3QoKSwgYmVjYXVzZSBzeXNmcyBs aW5rIHdpdGggdGhlIHNhbWUgbmFtZSBoYXMgYmVlbgpjcmVhdGVkIGFscmVhZHkgZm9yIHRoZSBm aXJzdCBQSFkuIEFzIHJlc3VsdCwgc2Vjb25kIENQU1cgZXh0ZXJuYWwKcG9ydCB3aWxsIGJlY2Ft ZSB1bnVzYWJsZS4KCkZpeCBpdCBieSByZWxheGluZyBlcnJvciBjaGVja2luZyB3aGVuIFBIWUxJ QiBmcmFtZXdvcmsgaXMgY3JlYXRpbmcgc3lzZnMKbGluayBuZXRkZXYtPnBoeWRldiBpbiBwaHlf YXR0YWNoX2RpcmVjdCgpLCBzdXBwcmVzc2luZyB3YXJuaW5nIGJ5IHVzaW5nCnN5c2ZzX2NyZWF0 ZV9saW5rX25vd2FybigpIGFuZCBhZGRpbmcgZXJyb3IgbWVzc2FnZSBpbnN0ZWFkLgpBZnRlciB0 aGlzIGNoYW5nZSBsaW5rcyAocGh5LT5uZXRkZXYgYW5kIG5ldGRldi0+cGh5KSBjcmVhdGlvbiBm YWlsdXJlIGlzIG5vdApmYXRhbCBhbnkgbW9yZSBhbmQgc3lzdGVtIGNhbiBjb250aW51ZSB3b3Jr aW5nLCB3aGljaCBmaXhlcyBUSSBDUFNXIGlzc3VlLgoKQ2M6IEZsb3JpYW4gRmFpbmVsbGkgPGYu ZmFpbmVsbGlAZ21haWwuY29tPgpDYzogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpGaXhl czogYTM5OTU0NjA0OTFkICgibmV0OiBwaHk6IFJlbGF4IGVycm9yIGNoZWNraW5nIG9uIHN5c2Zz X2NyZWF0ZV9saW5rKCkiKQpTaWduZWQtb2ZmLWJ5OiBHcnlnb3JpaSBTdHJhc2hrbyA8Z3J5Z29y aWkuc3RyYXNoa29AdGkuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYyB8IDE1ICsr KysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYyBiL2RyaXZl cnMvbmV0L3BoeS9waHlfZGV2aWNlLmMKaW5kZXggZDMxMmIzMTQ4MjVlLi5hMWU3ZWE0ZDRiMTYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9waHlfZGV2aWNlLmMKKysrIGIvZHJpdmVycy9u ZXQvcGh5L3BoeV9kZXZpY2UuYwpAQCAtOTk5LDEwICs5OTksMTcgQEAgaW50IHBoeV9hdHRhY2hf ZGlyZWN0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYs CiAJZXJyID0gc3lzZnNfY3JlYXRlX2xpbmsoJnBoeWRldi0+bWRpby5kZXYua29iaiwgJmRldi0+ ZGV2LmtvYmosCiAJCQkJImF0dGFjaGVkX2RldiIpOwogCWlmICghZXJyKSB7Ci0JCWVyciA9IHN5 c2ZzX2NyZWF0ZV9saW5rKCZkZXYtPmRldi5rb2JqLCAmcGh5ZGV2LT5tZGlvLmRldi5rb2JqLAot CQkJCQkicGh5ZGV2Iik7Ci0JCWlmIChlcnIpCi0JCQlnb3RvIGVycm9yOworCQllcnIgPSBzeXNm c19jcmVhdGVfbGlua19ub3dhcm4oJmRldi0+ZGV2LmtvYmosCisJCQkJCSAgICAgICAmcGh5ZGV2 LT5tZGlvLmRldi5rb2JqLAorCQkJCQkgICAgICAgInBoeWRldiIpOworCQlpZiAoZXJyKSB7CisJ CQlkZXZfZXJyKCZkZXYtPmRldiwgImNvdWxkIG5vdCBhZGQgZGV2aWNlIGxpbmsgdG8gJXMgZXJy ICVkXG4iLAorCQkJCWtvYmplY3RfbmFtZSgmcGh5ZGV2LT5tZGlvLmRldi5rb2JqKSwKKwkJCQll cnIpOworCQkJLyogbm9uLWZhdGFsIC0gc29tZSBuZXQgZHJpdmVycyBjYW4gdXNlIG9uZSBuZXRk ZXZpY2UKKwkJCSAqIHdpdGggbW9yZSB0aGVuIG9uZSBwaHkKKwkJCSAqLworCQl9CiAKIAkJcGh5 ZGV2LT5zeXNmc19saW5rcyA9IHRydWU7CiAJfQotLSAKMi4xNC4zCgoKRnJvbSA5MTc4OWExMTk1 YmRhNzgxMjI0MjE2MGU0YTg1N2Q0YmJkNjZkOTE2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBBcmthZGkgU2hhcnNoZXZza3kgPGFya2FkaXNAbWVsbGFub3guY29tPgpEYXRlOiBTdW4s IDE4IE1hciAyMDE4IDE3OjM3OjIyICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOC81M10gZGV2bGlu azogUmVtb3ZlIHJlZHVuZGFudCBmcmVlIG9uIGVycm9yIHBhdGgKClsgVXBzdHJlYW0gY29tbWl0 IDdmZTRkNmRjYmNiNDNmZTAyODJkNDIxM2ZjNTJiZTE3OGJiMzBlOTEgXQoKVGhlIGN1cnJlbnQg Y29kZSBwZXJmb3JtcyB1bm5lZWRlZCBmcmVlLiBSZW1vdmUgdGhlIHJlZHVuZGFudCBza2IgZnJl ZWluZwpkdXJpbmcgdGhlIGVycm9yIHBhdGguCgpGaXhlczogMTU1NWQyMDRlNzQzICgiZGV2bGlu azogU3VwcG9ydCBmb3IgcGlwZWxpbmUgZGVidWcgKGRwaXBlKSIpClNpZ25lZC1vZmYtYnk6IEFy a2FkaSBTaGFyc2hldnNreSA8YXJrYWRpc0BtZWxsYW5veC5jb20+CkFja2VkLWJ5OiBKaXJpIFBp cmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2RldmxpbmsuYyB8IDE2ICsrKystLS0t LS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2RldmxpbmsuYyBiL25ldC9jb3JlL2RldmxpbmsuYwpp bmRleCA3ZDQzMGMxZDljM2UuLjViYTk3MzMxMTAyNSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2 bGluay5jCisrKyBiL25ldC9jb3JlL2RldmxpbmsuYwpAQCAtMTc3Niw3ICsxNzc2LDcgQEAgc3Rh dGljIGludCBkZXZsaW5rX2RwaXBlX3RhYmxlc19maWxsKHN0cnVjdCBnZW5sX2luZm8gKmluZm8s CiAJaWYgKCFubGgpIHsKIAkJZXJyID0gZGV2bGlua19kcGlwZV9zZW5kX2FuZF9hbGxvY19za2Io JnNrYiwgaW5mbyk7CiAJCWlmIChlcnIpCi0JCQlnb3RvIGVycl9za2Jfc2VuZF9hbGxvYzsKKwkJ CXJldHVybiBlcnI7CiAJCWdvdG8gc2VuZF9kb25lOwogCX0KIApAQCAtMTc4NSw3ICsxNzg1LDYg QEAgc3RhdGljIGludCBkZXZsaW5rX2RwaXBlX3RhYmxlc19maWxsKHN0cnVjdCBnZW5sX2luZm8g KmluZm8sCiBubGFfcHV0X2ZhaWx1cmU6CiAJZXJyID0gLUVNU0dTSVpFOwogZXJyX3RhYmxlX3B1 dDoKLWVycl9za2Jfc2VuZF9hbGxvYzoKIAlnZW5sbXNnX2NhbmNlbChza2IsIGhkcik7CiAJbmxt c2dfZnJlZShza2IpOwogCXJldHVybiBlcnI7CkBAIC0yMDUxLDcgKzIwNTAsNyBAQCBzdGF0aWMg aW50IGRldmxpbmtfZHBpcGVfZW50cmllc19maWxsKHN0cnVjdCBnZW5sX2luZm8gKmluZm8sCiAJ CQkJCSAgICAgdGFibGUtPmNvdW50ZXJzX2VuYWJsZWQsCiAJCQkJCSAgICAgJmR1bXBfY3R4KTsK IAlpZiAoZXJyKQotCQlnb3RvIGVycl9lbnRyaWVzX2R1bXA7CisJCXJldHVybiBlcnI7CiAKIHNl bmRfZG9uZToKIAlubGggPSBubG1zZ19wdXQoZHVtcF9jdHguc2tiLCBpbmZvLT5zbmRfcG9ydGlk LCBpbmZvLT5zbmRfc2VxLApAQCAtMjA1OSwxNiArMjA1OCwxMCBAQCBzdGF0aWMgaW50IGRldmxp bmtfZHBpcGVfZW50cmllc19maWxsKHN0cnVjdCBnZW5sX2luZm8gKmluZm8sCiAJaWYgKCFubGgp IHsKIAkJZXJyID0gZGV2bGlua19kcGlwZV9zZW5kX2FuZF9hbGxvY19za2IoJmR1bXBfY3R4LnNr YiwgaW5mbyk7CiAJCWlmIChlcnIpCi0JCQlnb3RvIGVycl9za2Jfc2VuZF9hbGxvYzsKKwkJCXJl dHVybiBlcnI7CiAJCWdvdG8gc2VuZF9kb25lOwogCX0KIAlyZXR1cm4gZ2VubG1zZ19yZXBseShk dW1wX2N0eC5za2IsIGluZm8pOwotCi1lcnJfZW50cmllc19kdW1wOgotZXJyX3NrYl9zZW5kX2Fs bG9jOgotCWdlbmxtc2dfY2FuY2VsKGR1bXBfY3R4LnNrYiwgZHVtcF9jdHguaGRyKTsKLQlubG1z Z19mcmVlKGR1bXBfY3R4LnNrYik7Ci0JcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGludCBkZXZs aW5rX25sX2NtZF9kcGlwZV9lbnRyaWVzX2dldChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLApAQCAtMjIw Nyw3ICsyMjAwLDcgQEAgc3RhdGljIGludCBkZXZsaW5rX2RwaXBlX2hlYWRlcnNfZmlsbChzdHJ1 Y3QgZ2VubF9pbmZvICppbmZvLAogCWlmICghbmxoKSB7CiAJCWVyciA9IGRldmxpbmtfZHBpcGVf c2VuZF9hbmRfYWxsb2Nfc2tiKCZza2IsIGluZm8pOwogCQlpZiAoZXJyKQotCQkJZ290byBlcnJf c2tiX3NlbmRfYWxsb2M7CisJCQlyZXR1cm4gZXJyOwogCQlnb3RvIHNlbmRfZG9uZTsKIAl9CiAJ cmV0dXJuIGdlbmxtc2dfcmVwbHkoc2tiLCBpbmZvKTsKQEAgLTIyMTUsNyArMjIwOCw2IEBAIHN0 YXRpYyBpbnQgZGV2bGlua19kcGlwZV9oZWFkZXJzX2ZpbGwoc3RydWN0IGdlbmxfaW5mbyAqaW5m bywKIG5sYV9wdXRfZmFpbHVyZToKIAllcnIgPSAtRU1TR1NJWkU7CiBlcnJfdGFibGVfcHV0Ogot ZXJyX3NrYl9zZW5kX2FsbG9jOgogCWdlbmxtc2dfY2FuY2VsKHNrYiwgaGRyKTsKIAlubG1zZ19m cmVlKHNrYik7CiAJcmV0dXJuIGVycjsKLS0gCjIuMTQuMwoKCkZyb20gMjc1YWM4YTMwNTUyNGM1 NDRmMmRkYmM0Mjg0ZDk5N2Q4NWRjMjgyMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog U2hhbm5vbiBOZWxzb24gPHNoYW5ub24ubmVsc29uQG9yYWNsZS5jb20+CkRhdGU6IFRodSwgOCBN YXIgMjAxOCAxNjoxNzoyMyAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDkvNTNdIG1hY3ZsYW46IGZp bHRlciBvdXQgdW5zdXBwb3J0ZWQgZmVhdHVyZSBmbGFncwoKWyBVcHN0cmVhbSBjb21taXQgMTNm YmNjOGRjNTczNDgyZGQzZjI3NTY4MjU3ZmQ3MDg3Zjg5MzVmNCBdCgpBZGRpbmcgYSBtYWN2bGFu IGRldmljZSBvbiB0b3Agb2YgYSBsb3dlcmRldiB0aGF0IHN1cHBvcnRzCnRoZSB4ZnJtIG9mZmxv YWRzIGZhaWxzIHdpdGggYSBuZXcgcmVncmVzc2lvbjoKICAjIGlwIGxpbmsgYWRkIGxpbmsgZW5z MWYwIG12MCB0eXBlIG1hY3ZsYW4KICBSVE5FVExJTksgYW5zd2VyczogT3BlcmF0aW9uIG5vdCBw ZXJtaXR0ZWQKClRyYWNpbmcgZG93biB0aGUgZmFpbHVyZSBzaG93cyB0aGF0IHRoZSBtYWN2bGFu IGRldmljZSBpbmhlcml0cwp0aGUgTkVUSUZfRl9IV19FU1AgYW5kIE5FVElGX0ZfSFdfRVNQX1RY X0NTVU0gZmVhdHVyZSBmbGFncwpmcm9tIHRoZSBsb3dlcmRldiwgYnV0IHdpdGggbm8gZGV2LT54 ZnJtZGV2X29wcyBBUEkgZmlsbGVkCmluLCBpdCBkb2Vzbid0IGFjdHVhbGx5IHN1cHBvcnQgeGZy bS4gIFdoZW4gdGhlIHJlcXVlc3QgaXMKbWFkZSB0byBhZGQgdGhlIG5ldyBtYWN2bGFuIGRldmlj ZSwgdGhlIFhGUk0gbGlzdGVuZXIgZm9yCk5FVERFVl9SRUdJU1RFUiBjYWxscyB4ZnJtX2FwaV9j aGVjaygpIHdoaWNoIGZhaWxzIHRoZSBuZXcKcmVnaXN0cmF0aW9uIGJlY2F1c2UgZGV2LT54ZnJt ZGV2X29wcyBpcyBOVUxMLgoKVGhlIG1hY3ZsYW4gY3JlYXRpb24gc3VjY2VlZHMgd2hlbiB3ZSBm aWx0ZXIgb3V0IHRoZSBFU1AKZmVhdHVyZSBmbGFncyBpbiBtYWN2bGFuX2ZpeF9mZWF0dXJlcygp LCBzbyBsZXQncyBmaWx0ZXIgdGhlbQpvdXQgbGlrZSB3ZSdyZSBhbHJlYWR5IGZpbHRlcmluZyBv dXQgfk5FVElGX0ZfTkVUTlNfTE9DQUwuCldoZW4gWEZSTSBzdXBwb3J0IGlzIGFkZGVkIGluIHRo ZSBmdXR1cmUsIHdlIGNhbiBhZGQgdGhlIGZsYWdzCmludG8gTUFDVkxBTl9GRUFUVVJFUy4KClRo aXMgc2FtZSBwcm9ibGVtIGNvdWxkIGNyb3AgdXAgaW4gdGhlIGZ1dHVyZSB3aXRoIGFueSBvdGhl cgpuZXcgZmVhdHVyZSBmbGFncywgc28gbGV0J3MgZmlsdGVyIG91dCBhbnkgZmxhZ3MgdGhhdCBh cmVuJ3QKZGVmaW5lZCBhcyBzdXBwb3J0ZWQgaW4gbWFjdmxhbi4KCkZpeGVzOiBkNzdlMzhlNjEy YTAgKCJ4ZnJtOiBBZGQgYW4gSVBzZWMgaGFyZHdhcmUgb2ZmbG9hZGluZyBBUEkiKQpSZXBvcnRl ZC1ieTogQWxleGV5IEtvZGFuZXYgPGFsZXhleS5rb2RhbmV2QG9yYWNsZS5jb20+ClNpZ25lZC1v ZmYtYnk6IFNoYW5ub24gTmVsc29uIDxzaGFubm9uLm5lbHNvbkBvcmFjbGUuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvbWFjdmxhbi5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jIGIvZHJpdmVy cy9uZXQvbWFjdmxhbi5jCmluZGV4IGEwZjJiZTgxZDUyZS4uNDg4NGY2MTQ5YjBhIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9tYWN2bGFuLmMKKysrIGIvZHJpdmVycy9uZXQvbWFjdmxhbi5jCkBA IC0xMDM2LDcgKzEwMzYsNyBAQCBzdGF0aWMgbmV0ZGV2X2ZlYXR1cmVzX3QgbWFjdmxhbl9maXhf ZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAlsb3dlcmRldl9mZWF0dXJlcyAmPSAo ZmVhdHVyZXMgfCB+TkVUSUZfRl9MUk8pOwogCWZlYXR1cmVzID0gbmV0ZGV2X2luY3JlbWVudF9m ZWF0dXJlcyhsb3dlcmRldl9mZWF0dXJlcywgZmVhdHVyZXMsIG1hc2spOwogCWZlYXR1cmVzIHw9 IEFMV0FZU19PTl9GRUFUVVJFUzsKLQlmZWF0dXJlcyAmPSB+TkVUSUZfRl9ORVROU19MT0NBTDsK KwlmZWF0dXJlcyAmPSAoQUxXQVlTX09OX0ZFQVRVUkVTIHwgTUFDVkxBTl9GRUFUVVJFUyk7CiAK IAlyZXR1cm4gZmVhdHVyZXM7CiB9Ci0tIAoyLjE0LjMKCgpGcm9tIDdjNzMxMjBjOGMzMDBlYjJk NzViNGVkMThhNjdlNTQ1NGU4ZWM1M2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBh b2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KRGF0ZTogTW9uLCAxMiBNYXIgMjAxOCAxNDo1 NDoyMyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTAvNTNdIG5ldDogaXB2Njoga2VlcCBzayBzdGF0 dXMgY29uc2lzdGVudCBhZnRlciBkYXRhZ3JhbQogY29ubmVjdCBmYWlsdXJlCgpbIFVwc3RyZWFt IGNvbW1pdCAyZjk4N2E3NmE5Nzc3M2JlYWZiYzYxNWI5YzRkOGZlNzkxMjlhN2Y0IF0KCk9uIHVu c3VjY2VzZnVsIGlwNl9kYXRhZ3JhbV9jb25uZWN0KCksIGlmIHRoZSBmYWlsdXJlIGlzIGNhdXNl ZCBieQppcDZfZGF0YWdyYW1fZHN0X3VwZGF0ZSgpLCB0aGUgc2sgcGVlciBpbmZvcm1hdGlvbiBh cmUgY2xlYXJlZCwgYnV0CnRoZSBzay0+c2tfc3RhdGUgaXMgcHJlc2VydmVkLgoKSWYgdGhlIHNv Y2tldCB3YXMgYWxyZWFkeSBpbiBhbiBlc3RhYmxpc2hlZCBzdGF0dXMsIHRoZSBvdmVyYWxsIHNr CnN0YXR1cyBpcyBpbmNvbnNpc3RlbnQgYW5kIGZvdWxzIGxhdGVyIGNoZWNrcyBpbiBkYXRhZ3Jh bSBjb2RlLgoKRml4IHRoaXMgc2F2aW5nIHRoZSBvbGQgcGVlciBpbmZvcm1hdGlvbiBhbmQgcmVz dG9yaW5nIHRoZW0gaW4KY2FzZSBvZiBmYWlsdXJlLiBUaGlzIGFsc28gYWxpZ25zIGlwdjYgZGF0 YWdyYW0gY29ubmVjdCgpIGJlaGF2aW9yCndpdGggaXB2NC4KCnYxIC0+IHYyOgogLSBhZGRlZCBt aXNzaW5nIEZpeGVzIHRhZwoKRml4ZXM6IDg1Y2I3M2ZmOWI3NCAoIm5ldDogaXB2NjogcmVzZXQg ZGFkZHIgYW5kIGRwb3J0IGluIHNrIGlmIGNvbm5lY3QoKSBmYWlscyIpClNpZ25lZC1vZmYtYnk6 IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2RhdGFncmFtLmMgfCAy MSArKysrKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCsp LCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2RhdGFncmFtLmMgYi9uZXQv aXB2Ni9kYXRhZ3JhbS5jCmluZGV4IGExZjkxODcxMzAwNi4uMjlkYTRiNmM5ZGQ2IDEwMDY0NAot LS0gYS9uZXQvaXB2Ni9kYXRhZ3JhbS5jCisrKyBiL25ldC9pcHY2L2RhdGFncmFtLmMKQEAgLTE0 NiwxMCArMTQ2LDEyIEBAIGludCBfX2lwNl9kYXRhZ3JhbV9jb25uZWN0KHN0cnVjdCBzb2NrICpz aywgc3RydWN0IHNvY2thZGRyICp1YWRkciwKIAlzdHJ1Y3Qgc29ja2FkZHJfaW42CSp1c2luID0g KHN0cnVjdCBzb2NrYWRkcl9pbjYgKikgdWFkZHI7CiAJc3RydWN0IGluZXRfc29jawkqaW5ldCA9 IGluZXRfc2soc2spOwogCXN0cnVjdCBpcHY2X3BpbmZvCSpucCA9IGluZXQ2X3NrKHNrKTsKLQlz dHJ1Y3QgaW42X2FkZHIJCSpkYWRkcjsKKwlzdHJ1Y3QgaW42X2FkZHIJCSpkYWRkciwgb2xkX2Rh ZGRyOworCV9fYmUzMgkJCWZsNl9mbG93bGFiZWwgPSAwOworCV9fYmUzMgkJCW9sZF9mbDZfZmxv d2xhYmVsOworCV9fYmUzMgkJCW9sZF9kcG9ydDsKIAlpbnQJCQlhZGRyX3R5cGU7CiAJaW50CQkJ ZXJyOwotCV9fYmUzMgkJCWZsNl9mbG93bGFiZWwgPSAwOwogCiAJaWYgKHVzaW4tPnNpbjZfZmFt aWx5ID09IEFGX0lORVQpIHsKIAkJaWYgKF9faXB2Nl9vbmx5X3NvY2soc2spKQpAQCAtMjM5LDkg KzI0MSwxMyBAQCBpbnQgX19pcDZfZGF0YWdyYW1fY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIHN0 cnVjdCBzb2NrYWRkciAqdWFkZHIsCiAJCX0KIAl9CiAKKwkvKiBzYXZlIHRoZSBjdXJyZW50IHBl ZXIgaW5mb3JtYXRpb24gYmVmb3JlIHVwZGF0aW5nIGl0ICovCisJb2xkX2RhZGRyID0gc2stPnNr X3Y2X2RhZGRyOworCW9sZF9mbDZfZmxvd2xhYmVsID0gbnAtPmZsb3dfbGFiZWw7CisJb2xkX2Rw b3J0ID0gaW5ldC0+aW5ldF9kcG9ydDsKKwogCXNrLT5za192Nl9kYWRkciA9ICpkYWRkcjsKIAlu cC0+Zmxvd19sYWJlbCA9IGZsNl9mbG93bGFiZWw7Ci0KIAlpbmV0LT5pbmV0X2Rwb3J0ID0gdXNp bi0+c2luNl9wb3J0OwogCiAJLyoKQEAgLTI1MSwxMSArMjU3LDEyIEBAIGludCBfX2lwNl9kYXRh Z3JhbV9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwKIAog CWVyciA9IGlwNl9kYXRhZ3JhbV9kc3RfdXBkYXRlKHNrLCB0cnVlKTsKIAlpZiAoZXJyKSB7Ci0J CS8qIFJlc2V0IGRhZGRyIGFuZCBkcG9ydCBzbyB0aGF0IHVkcF92Nl9lYXJseV9kZW11eCgpCi0J CSAqIGZhaWxzIHRvIGZpbmQgdGhpcyBzb2NrZXQKKwkJLyogUmVzdG9yZSB0aGUgc29ja2V0IHBl ZXIgaW5mbywgdG8ga2VlcCBpdCBjb25zaXN0ZW50IHdpdGgKKwkJICogdGhlIG9sZCBzb2NrZXQg c3RhdGUKIAkJICovCi0JCW1lbXNldCgmc2stPnNrX3Y2X2RhZGRyLCAwLCBzaXplb2Yoc2stPnNr X3Y2X2RhZGRyKSk7Ci0JCWluZXQtPmluZXRfZHBvcnQgPSAwOworCQlzay0+c2tfdjZfZGFkZHIg PSBvbGRfZGFkZHI7CisJCW5wLT5mbG93X2xhYmVsID0gb2xkX2ZsNl9mbG93bGFiZWw7CisJCWlu ZXQtPmluZXRfZHBvcnQgPSBvbGRfZHBvcnQ7CiAJCWdvdG8gb3V0OwogCX0KIAotLSAKMi4xNC4z CgoKRnJvbSBmNjAzY2JjMThiZjNjNWUwOWNkMWFlN2YyMWE4MzFjODI5OGNjMTYzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW5vIEJyaXZpbyA8c2JyaXZpb0ByZWRoYXQuY29t PgpEYXRlOiBNb24sIDE5IE1hciAyMDE4IDExOjI0OjU4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAx MS81M10gaXB2Njogb2xkX2Rwb3J0IHNob3VsZCBiZSBhIF9fYmUxNiBpbgogX19pcDZfZGF0YWdy YW1fY29ubmVjdCgpCgpbIFVwc3RyZWFtIGNvbW1pdCA1ZjJmYjgwMmVlZTFkZjA4MTBiNDdlYTI1 MTk0MmZlM2ZkMzY1ODlhIF0KCkZpeGVzOiAyZjk4N2E3NmE5NzcgKCJuZXQ6IGlwdjY6IGtlZXAg c2sgc3RhdHVzIGNvbnNpc3RlbnQgYWZ0ZXIgZGF0YWdyYW0gY29ubmVjdCBmYWlsdXJlIikKU2ln bmVkLW9mZi1ieTogU3RlZmFubyBCcml2aW8gPHNicml2aW9AcmVkaGF0LmNvbT4KQWNrZWQtYnk6 IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IEd1aWxsYXVtZSBOYXVs dCA8Zy5uYXVsdEBhbHBoYWxpbmsuZnI+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9kYXRhZ3JhbS5jIHwgMiArLQogMSBm aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv bmV0L2lwdjYvZGF0YWdyYW0uYyBiL25ldC9pcHY2L2RhdGFncmFtLmMKaW5kZXggMjlkYTRiNmM5 ZGQ2Li4yODcxMTJkYTNjMDYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2RhdGFncmFtLmMKKysrIGIv bmV0L2lwdjYvZGF0YWdyYW0uYwpAQCAtMTQ5LDcgKzE0OSw3IEBAIGludCBfX2lwNl9kYXRhZ3Jh bV9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwKIAlzdHJ1 Y3QgaW42X2FkZHIJCSpkYWRkciwgb2xkX2RhZGRyOwogCV9fYmUzMgkJCWZsNl9mbG93bGFiZWwg PSAwOwogCV9fYmUzMgkJCW9sZF9mbDZfZmxvd2xhYmVsOwotCV9fYmUzMgkJCW9sZF9kcG9ydDsK KwlfX2JlMTYJCQlvbGRfZHBvcnQ7CiAJaW50CQkJYWRkcl90eXBlOwogCWludAkJCWVycjsKIAot LSAKMi4xNC4zCgoKRnJvbSAwMDkwNTY2ODFlYzM2Y2FhZGY2OTJhZmMxYzJhNjdlYmI4MWUxMmY3 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBMZWJydW4gPGRsZWJydW5AZ29v Z2xlLmNvbT4KRGF0ZTogVHVlLCAyMCBNYXIgMjAxOCAxNDo0NDo1NiArMDAwMApTdWJqZWN0OiBb UEFUQ0ggMTIvNTNdIGlwdjY6IHNyOiBmaXggTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIHdoZW4g c2V0dGluZwogZW5jYXAgc291cmNlIGFkZHJlc3MKClsgVXBzdHJlYW0gY29tbWl0IDg5MzZlZjc2 MDRjMTFiNWQ3MDE1ODBkNzc5ZTBmNTY4NGFiYzdiNjggXQoKV2hlbiB1c2luZyBzZWc2IGluIGVu Y2FwIG1vZGUsIHdlIGNhbGwgaXB2Nl9kZXZfZ2V0X3NhZGRyKCkgdG8gc2V0IHRoZQpzb3VyY2Ug YWRkcmVzcyBvZiB0aGUgb3V0ZXIgSVB2NiBoZWFkZXIsIGluIGNhc2Ugbm9uZSB3YXMgc3BlY2lm aWVkLgpVc2luZyBza2ItPmRldiBjYW4gbGVhZCB0byBCVUcoKSB3aGVuIGl0IGlzIGluIGFuIGlu Y29uc2lzdGVudCBzdGF0ZS4KVGhpcyBwYXRjaCB1c2VzIHRoZSBuZXRfZGV2aWNlIGF0dGFjaGVk IHRvIHRoZSBza2IncyBkc3QgaW5zdGVhZC4KCls5NDA4MDcuNjY3NDI5XSBCVUc6IHVuYWJsZSB0 byBoYW5kbGUga2VybmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBhdCAwMDAwMDAwMDAwMDAw NDdjCls5NDA4MDcuNzYyNDI3XSBJUDogaXB2Nl9kZXZfZ2V0X3NhZGRyKzB4OGIvMHgxZDAKWzk0 MDgwNy44MTU3MjVdIFBHRCAwIFA0RCAwCls5NDA4MDcuODQ3MTczXSBPb3BzOiAwMDAwIFsjMV0g U01QIFBUSQpbOTQwODA3Ljg5MDA3M10gTW9kdWxlcyBsaW5rZWQgaW46Cls5NDA4MDcuOTI3NzY1 XSBDUFU6IDYgUElEOiAwIENvbW06IHN3YXBwZXIvNiBUYWludGVkOiBHICAgICAgICBXICAgICAg ICA0LjE2LjAtcmMxLXNlZzZicGYrICMyCls5NDA4MDguMDI4OTg4XSBIYXJkd2FyZSBuYW1lOiBI UCBQcm9MaWFudCBETDEyMCBHNi9Qcm9MaWFudCBETDEyMCBHNiwgQklPUyBPMjYgICAgMDkvMDYv MjAxMApbOTQwODA4LjEyODEyOF0gUklQOiAwMDEwOmlwdjZfZGV2X2dldF9zYWRkcisweDhiLzB4 MWQwCls5NDA4MDguMTg3NjY3XSBSU1A6IDAwMTg6ZmZmZjg4MDQzZmQ4MzZiMCBFRkxBR1M6IDAw MDEwMjA2Cls5NDA4MDguMjUxMzY2XSBSQVg6IDAwMDAwMDAwMDAwMDAwMDUgUkJYOiBmZmZmODgw NDJjYjFjODYwIFJDWDogMDAwMDAwMDAwMDAwMDBmZQpbOTQwODA4LjMzODAyNV0gUkRYOiAwMDAw MDAwMDAwMDAwMmMwIFJTSTogZmZmZjg4MDQyY2IxYzg2MCBSREk6IDAwMDAwMDAwMDAwMDQ1MDAK Wzk0MDgwOC40MjQ2ODNdIFJCUDogZmZmZjg4MDQzZmQ4Mzc0MCBSMDg6IDAwMDAwMDAwMDAwMDAw MDAgUjA5OiBmZmZmZmZmZmZmZmZmZmZmCls5NDA4MDguNTExMzQyXSBSMTA6IDAwMDAwMDAwMDAw MDAwNDAgUjExOiAwMDAwMDAwMDAwMDAwMDAwIFIxMjogZmZmZjg4MDQyY2IxYzg1MApbOTQwODA4 LjU5ODAxMl0gUjEzOiBmZmZmZmZmZjgyMDhlMzgwIFIxNDogZmZmZjg4MDQyYWM4ZGEwMCBSMTU6 IDAwMDAwMDAwMDAwMDAwMDIKWzk0MDgwOC42ODQ2NzVdIEZTOiAgMDAwMDAwMDAwMDAwMDAwMCgw MDAwKSBHUzpmZmZmODgwNDNmZDgwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWzk0 MDgwOC43ODMwMzZdIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAw NTAwMzMKWzk0MDgwOC44NTI5NzVdIENSMjogMDAwMDAwMDAwMDAwMDQ3YyBDUjM6IDAwMDAwMDA0 MjU1ZmUwMDAgQ1I0OiAwMDAwMDAwMDAwMDAwNmUwCls5NDA4MDguOTM5NjM0XSBDYWxsIFRyYWNl OgpbOTQwODA4Ljk3MDA0MV0gIDxJUlE+Cls5NDA4MDguOTk1MjUwXSAgPyBpcDZ0X2RvX3RhYmxl KzB4MjY1LzB4NjQwCls5NDA4MDkuMDQzMzQxXSAgc2VnNl9kb19zcmhfZW5jYXArMHgyOGYvMHgz MDAKWzk0MDgwOS4wOTM1MTZdICA/IHNlZzZfZG9fc3JoKzB4MWEwLzB4MjEwCls5NDA4MDkuMTM5 NTI4XSAgc2VnNl9kb19zcmgrMHgxYTAvMHgyMTAKWzk0MDgwOS4xODM0NjJdICBzZWc2X291dHB1 dCsweDI4LzB4MWUwCls5NDA4MDkuMjI2MzU4XSAgbHd0dW5uZWxfb3V0cHV0KzB4M2YvMHg3MApb OTQwODA5LjI3MjM3MF0gIGlwNl94bWl0KzB4MmI4LzB4NTMwCls5NDA4MDkuMzEzMTg1XSAgPyBh YzZfcHJvY19leGl0KzB4MjAvMHgyMApbOTQwODA5LjM1OTE5N10gIGluZXQ2X2Nza194bWl0KzB4 N2QvMHhjMApbOTQwODA5LjQwNDE3M10gIHRjcF90cmFuc21pdF9za2IrMHg1NDgvMHg5YTAKWzk0 MDgwOS40NTMzMDRdICBfX3RjcF9yZXRyYW5zbWl0X3NrYisweDFhOC8weDdhMApbOTQwODA5LjUw NjYwM10gID8gaXA2X2RlZmF1bHRfYWR2bXNzKzB4NDAvMHg0MApbOTQwODA5LjU1NzgyNF0gID8g dGNwX2N1cnJlbnRfbXNzKzB4MjQvMHg5MApbOTQwODA5LjYwNTkyNV0gIHRjcF9yZXRyYW5zbWl0 X3NrYisweGQvMHg4MApbOTQwODA5LjY1NDAxNl0gIHRjcF94bWl0X3JldHJhbnNtaXRfcXVldWUu cGFydC4xNysweGY5LzB4MjEwCls5NDA4MDkuNzE5Nzk3XSAgdGNwX2FjaysweGE0Ny8weDExMTAK Wzk0MDgwOS43NjA2MTJdICB0Y3BfcmN2X2VzdGFibGlzaGVkKzB4MTNjLzB4NTcwCls5NDA4MDku ODEyODY1XSAgdGNwX3Y2X2RvX3JjdisweDE1MS8weDNkMApbOTQwODA5Ljg1ODg3OV0gIHRjcF92 Nl9yY3YrMHhhNWMvMHhiMTAKWzk0MDgwOS45MDE3NzBdICA/IHNlZzZfb3V0cHV0KzB4ZGQvMHgx ZTAKWzk0MDgwOS45NDY3NDVdICBpcDZfaW5wdXRfZmluaXNoKzB4YmIvMHg0NjAKWzk0MDgwOS45 OTQ4MzddICBpcDZfaW5wdXQrMHg3NC8weDgwCls5NDA4MTAuMDM0NjEyXSAgPyBpcDZfcmN2X2Zp bmlzaCsweGIwLzB4YjAKWzk0MDgxMC4wODE2NjNdICBpcHY2X3JjdisweDMxYy8weDRjMAouLi4K CkZpeGVzOiA2Yzg3MDJjNjBiODg2ICgiaXB2Njogc3I6IGFkZCBzdXBwb3J0IGZvciBTUkggZW5j YXBzdWxhdGlvbiBhbmQgaW5qZWN0aW9uIHdpdGggbHd0dW5uZWxzIikKUmVwb3J0ZWQtYnk6IFRv bSBIZXJiZXJ0IDx0b21AcXVhbnRvbml1bS5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIExlYnJ1 biA8ZGxlYnJ1bkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvc2VnNl9pcHR1bm5lbC5jIHwgNSArKyst LQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9uZXQvaXB2Ni9zZWc2X2lwdHVubmVsLmMgYi9uZXQvaXB2Ni9zZWc2X2lwdHVubmVs LmMKaW5kZXggYmQ2Y2M2ODhiZDE5Li4zN2U3NmNhN2I3Y2IgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2 L3NlZzZfaXB0dW5uZWwuYworKysgYi9uZXQvaXB2Ni9zZWc2X2lwdHVubmVsLmMKQEAgLTkzLDcg KzkzLDggQEAgc3RhdGljIHZvaWQgc2V0X3R1bl9zcmMoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LAogLyogZW5jYXBzdWxhdGUgYW4gSVB2NiBwYWNrZXQgd2l0aGluIGFu IG91dGVyIElQdjYgaGVhZGVyIHdpdGggYSBnaXZlbiBTUkggKi8KIGludCBzZWc2X2RvX3NyaF9l bmNhcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaXB2Nl9zcl9oZHIgKm9zcmgsIGludCBw cm90bykKIHsKLQlzdHJ1Y3QgbmV0ICpuZXQgPSBkZXZfbmV0KHNrYl9kc3Qoc2tiKS0+ZGV2KTsK KwlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QgPSBza2JfZHN0KHNrYik7CisJc3RydWN0IG5ldCAqbmV0 ID0gZGV2X25ldChkc3QtPmRldik7CiAJc3RydWN0IGlwdjZoZHIgKmhkciwgKmlubmVyX2hkcjsK IAlzdHJ1Y3QgaXB2Nl9zcl9oZHIgKmlzcmg7CiAJaW50IGhkcmxlbiwgdG90X2xlbiwgZXJyOwpA QCAtMTM0LDcgKzEzNSw3IEBAIGludCBzZWc2X2RvX3NyaF9lbmNhcChzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCBzdHJ1Y3QgaXB2Nl9zcl9oZHIgKm9zcmgsIGludCBwcm90bykKIAlpc3JoLT5uZXh0aGRy ID0gcHJvdG87CiAKIAloZHItPmRhZGRyID0gaXNyaC0+c2VnbWVudHNbaXNyaC0+Zmlyc3Rfc2Vn bWVudF07Ci0Jc2V0X3R1bl9zcmMobmV0LCBza2ItPmRldiwgJmhkci0+ZGFkZHIsICZoZHItPnNh ZGRyKTsKKwlzZXRfdHVuX3NyYyhuZXQsIGlwNl9kc3RfaWRldihkc3QpLT5kZXYsICZoZHItPmRh ZGRyLCAmaGRyLT5zYWRkcik7CiAKICNpZmRlZiBDT05GSUdfSVBWNl9TRUc2X0hNQUMKIAlpZiAo c3JfaGFzX2htYWMoaXNyaCkpIHsKLS0gCjIuMTQuMwoKCkZyb20gN2M3MjU1YmNiOTE5MzhiMWRk NTNlMWI2Y2E1NGU2MGI2NmFhOWM5MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2 aWQgTGVicnVuIDxkbGVicnVuQGdvb2dsZS5jb20+CkRhdGU6IFR1ZSwgMjAgTWFyIDIwMTggMTQ6 NDQ6NTUgKzAwMDAKU3ViamVjdDogW1BBVENIIDEzLzUzXSBpcHY2OiBzcjogZml4IHNjaGVkdWxp bmcgaW4gUkNVIHdoZW4gY3JlYXRpbmcgc2VnNgogbHd0dW5uZWwgc3RhdGUKClsgVXBzdHJlYW0g Y29tbWl0IDE5MWY4NmNhOGVmMjdmN2E0OTJmZDFjMDM2MjA0OThjNmU5NGYwYWMgXQoKVGhlIHNl ZzZfYnVpbGRfc3RhdGUoKSBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0aCBSQ1UgcmVhZCBsb2NrIGhl bGQsCnNvIHdlIGNhbm5vdCB1c2UgR0ZQX0tFUk5FTC4gVGhpcyBwYXRjaCB1c2VzIEdGUF9BVE9N SUMgaW5zdGVhZC4KClsgICA5Mi43NzAyNzFdID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 ClsgICA5Mi43NzA2MjhdIFdBUk5JTkc6IHN1c3BpY2lvdXMgUkNVIHVzYWdlClsgICA5Mi43NzA5 MjFdIDQuMTYuMC1yYzQrICMxMiBOb3QgdGFpbnRlZApbICAgOTIuNzcxMjc3XSAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpbICAgOTIuNzcxNTg1XSAuL2luY2x1ZGUvbGludXgvcmN1cGRh dGUuaDozMDIgSWxsZWdhbCBjb250ZXh0IHN3aXRjaCBpbiBSQ1UgcmVhZC1zaWRlIGNyaXRpY2Fs IHNlY3Rpb24hClsgICA5Mi43NzIyNzldClsgICA5Mi43NzIyNzldIG90aGVyIGluZm8gdGhhdCBt aWdodCBoZWxwIHVzIGRlYnVnIHRoaXM6ClsgICA5Mi43NzIyNzldClsgICA5Mi43NzMwNjddClsg ICA5Mi43NzMwNjddIHJjdV9zY2hlZHVsZXJfYWN0aXZlID0gMiwgZGVidWdfbG9ja3MgPSAxClsg ICA5Mi43NzM1MTRdIDIgbG9ja3MgaGVsZCBieSBpcC8yNDEzOgpbICAgOTIuNzczNzY1XSAgIzA6 ICAocnRubF9tdXRleCl7Ky4rLn0sIGF0OiBbPDAwMDAwMDAwZTU0NjE3MjA+XSBydG5ldGxpbmtf cmN2X21zZysweDQ0MS8weDRkMApbICAgOTIuNzc0Mzc3XSAgIzE6ICAocmN1X3JlYWRfbG9jayl7 Li4uLn0sIGF0OiBbPDAwMDAwMDAwZGY0ZjE2MWU+XSBsd3R1bm5lbF9idWlsZF9zdGF0ZSsweDU5 LzB4MjEwClsgICA5Mi43NzUwNjVdClsgICA5Mi43NzUwNjVdIHN0YWNrIGJhY2t0cmFjZToKWyAg IDkyLjc3NTM3MV0gQ1BVOiAwIFBJRDogMjQxMyBDb21tOiBpcCBOb3QgdGFpbnRlZCA0LjE2LjAt cmM0KyAjMTIKWyAgIDkyLjc3NTc5MV0gSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAo aTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgMS4xMC4yLTEuZmMyNyAwNC8wMS8yMDE0ClsgICA5 Mi43NzY2MDhdIENhbGwgVHJhY2U6ClsgICA5Mi43NzY4NTJdICBkdW1wX3N0YWNrKzB4N2QvMHhi YwpbICAgOTIuNzc3MTMwXSAgX19zY2hlZHVsZSsweDEzMy8weGYwMApbICAgOTIuNzc3MzkzXSAg PyB1bndpbmRfZ2V0X3JldHVybl9hZGRyZXNzX3B0cisweDUwLzB4NTAKWyAgIDkyLjc3Nzc4M10g ID8gX19zY2hlZF90ZXh0X3N0YXJ0KzB4OC8weDgKWyAgIDkyLjc3ODA3M10gID8gcmN1X2lzX3dh dGNoaW5nKzB4MTkvMHgzMApbICAgOTIuNzc4MzgzXSAgPyBrZXJuZWxfdGV4dF9hZGRyZXNzKzB4 NDkvMHg2MApbICAgOTIuNzc4ODAwXSAgPyBfX2tlcm5lbF90ZXh0X2FkZHJlc3MrMHg5LzB4MzAK WyAgIDkyLjc3OTI0MV0gID8gdW53aW5kX2dldF9yZXR1cm5fYWRkcmVzcysweDI5LzB4NDAKWyAg IDkyLjc3OTcyN10gID8gcGNwdV9hbGxvYysweDEwMi8weDhmMApbICAgOTIuNzgwMTAxXSAgX2Nv bmRfcmVzY2hlZCsweDIzLzB4NTAKWyAgIDkyLjc4MDQ1OV0gIF9fbXV0ZXhfbG9jaysweGJkLzB4 YWQwClsgICA5Mi43ODA4MThdICA/IHBjcHVfYWxsb2MrMHgxMDIvMHg4ZjAKWyAgIDkyLjc4MTE5 NF0gID8gc2VnNl9idWlsZF9zdGF0ZSsweDExZC8weDI0MApbICAgOTIuNzgxNjExXSAgPyBzYXZl X3N0YWNrKzB4OWIvMHhiMApbICAgOTIuNzgxOTY1XSAgPyBfX3d3X211dGV4X3dha2V1cF9mb3Jf YmFja29mZisweGYwLzB4ZjAKWyAgIDkyLjc4MjQ4MF0gID8gc2VnNl9idWlsZF9zdGF0ZSsweDEx ZC8weDI0MApbICAgOTIuNzgyOTI1XSAgPyBsd3R1bm5lbF9idWlsZF9zdGF0ZSsweDFiZC8weDIx MApbICAgOTIuNzgzMzkzXSAgPyBpcDZfcm91dGVfaW5mb19jcmVhdGUrMHg2ODcvMHgxNjQwClsg ICA5Mi43ODM4NDZdICA/IGlwNl9yb3V0ZV9hZGQrMHg3NC8weDExMApbICAgOTIuNzg0MjM2XSAg PyBpbmV0Nl9ydG1fbmV3cm91dGUrMHg4YS8weGQwCgpGaXhlczogNmM4NzAyYzYwYjg4NiAoImlw djY6IHNyOiBhZGQgc3VwcG9ydCBmb3IgU1JIIGVuY2Fwc3VsYXRpb24gYW5kIGluamVjdGlvbiB3 aXRoIGx3dHVubmVscyIpClNpZ25lZC1vZmYtYnk6IERhdmlkIExlYnJ1biA8ZGxlYnJ1bkBnb29n bGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2lwdjYvc2VnNl9pcHR1bm5lbC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvc2Vn Nl9pcHR1bm5lbC5jIGIvbmV0L2lwdjYvc2VnNl9pcHR1bm5lbC5jCmluZGV4IDM3ZTc2Y2E3Yjdj Yi4uN2E3OGRjZmRhNjhhIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9zZWc2X2lwdHVubmVsLmMKKysr IGIvbmV0L2lwdjYvc2VnNl9pcHR1bm5lbC5jCkBAIC00MTksNyArNDE5LDcgQEAgc3RhdGljIGlu dCBzZWc2X2J1aWxkX3N0YXRlKHN0cnVjdCBubGF0dHIgKm5sYSwKIAogCXNsd3QgPSBzZWc2X2x3 dF9sd3R1bm5lbChuZXd0cyk7CiAKLQllcnIgPSBkc3RfY2FjaGVfaW5pdCgmc2x3dC0+Y2FjaGUs IEdGUF9LRVJORUwpOworCWVyciA9IGRzdF9jYWNoZV9pbml0KCZzbHd0LT5jYWNoZSwgR0ZQX0FU T01JQyk7CiAJaWYgKGVycikgewogCQlrZnJlZShuZXd0cyk7CiAJCXJldHVybiBlcnI7Ci0tIAoy LjE0LjMKCgpGcm9tIGI0Y2ZlNGVlMDg3NGI5OTIwNDg4NGM3MGI3ZWZmNzNjYTliMThjYzQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94 LmNvbT4KRGF0ZTogVGh1LCAxNSBNYXIgMjAxOCAxNDo0OTo1NiArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMTQvNTNdIG1seHN3OiBzcGVjdHJ1bV9idWZmZXJzOiBTZXQgYSBtaW5pbXVtIHF1b3RhIGZv ciBDUFUKIHBvcnQgdHJhZmZpYwoKWyBVcHN0cmVhbSBjb21taXQgYmNkZDVkZTgwYTIyNzVmNzg3 OWRjMjc4YmZjNzQ3ZjFjYWY5NDQ0MiBdCgpJbiBjb21taXQgOWZmY2MzNzI1ZjA5ICgibWx4c3c6 IHNwZWN0cnVtOiBBbGxvdyBwYWNrZXRzIHRvIGJlIHRyYXBwZWQKZnJvbSBhbnkgUEciKSBJIGZp eGVkIGEgcHJvYmxlbSB3aGVyZSBwYWNrZXRzIGNvdWxkIG5vdCBiZSB0cmFwcGVkIHRvCnRoZSBD UFUgZHVlIHRvIGV4Y2VlZGVkIHNoYXJlZCBidWZmZXIgcXVvdGFzLiBUaGUgbWVudGlvbmVkIGNv bW1pdApleHBsYWlucyB0aGUgcHJvYmxlbSBpbiBkZXRhaWwuCgpUaGUgcHJvYmxlbSB3YXMgZml4 ZWQgYnkgYXNzaWduaW5nIGEgbWluaW11bSBxdW90YSBmb3IgdGhlIENQVSBwb3J0IGFuZAp0aGUg dHJhZmZpYyBjbGFzcyB1c2VkIGZvciBzY2hlZHVsaW5nIHRyYWZmaWMgdG8gdGhlIENQVS4KCkhv d2V2ZXIsIGNvbW1pdCAxMTdiMGRhZDJkNTQgKCJtbHhzdzogQ3JlYXRlIGEgZGlmZmVyZW50IHRy YXAgZ3JvdXAgbGlzdApmb3IgZWFjaCBkZXZpY2UiKSBhc3NpZ25lZCBkaWZmZXJlbnQgdHJhZmZp YyBjbGFzc2VzIHRvIGRpZmZlcmVudApwYWNrZXQgdHlwZXMgYW5kIHJlbmRlcmVkIHRoZSBmaXgg dXNlbGVzcy4KCkZpeCB0aGUgcHJvYmxlbSBieSBhc3NpZ25pbmcgYSBtaW5pbXVtIHF1b3RhIGZv ciB0aGUgQ1BVIHBvcnQgYW5kIGFsbAp0aGUgdHJhZmZpYyBjbGFzc2VzIHRoYXQgYXJlIGN1cnJl bnRseSBpbiB1c2UuCgpGaXhlczogMTE3YjBkYWQyZDU0ICgibWx4c3c6IENyZWF0ZSBhIGRpZmZl cmVudCB0cmFwIGdyb3VwIGxpc3QgZm9yIGVhY2ggZGV2aWNlIikKU2lnbmVkLW9mZi1ieTogSWRv IFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3guY29tPgpSZXBvcnRlZC1ieTogRWRkaWUgU2hrbGFl ciA8ZWRkaWVzQG1lbGxhbm94LmNvbT4KVGVzdGVkLWJ5OiBFZGRpZSBTaGtsYWVyIDxlZGRpZXNA bWVsbGFub3guY29tPgpBY2tlZC1ieTogSmlyaSBQaXJrbyA8amlyaUBtZWxsYW5veC5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBk cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9idWZmZXJzLmMgfCAx MiArKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDYgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cv c3BlY3RydW1fYnVmZmVycy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cv c3BlY3RydW1fYnVmZmVycy5jCmluZGV4IDkzNzI4YzY5NGU2ZC4uMGE5YWRjNTk2MmZiIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9idWZm ZXJzLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1f YnVmZmVycy5jCkBAIC0zODUsMTMgKzM4NSwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1seHN3 X3NwX3NiX2NtIG1seHN3X3NwX3NiX2Ntc19lZ3Jlc3NbXSA9IHsKIAogc3RhdGljIGNvbnN0IHN0 cnVjdCBtbHhzd19zcF9zYl9jbSBtbHhzd19zcF9jcHVfcG9ydF9zYl9jbXNbXSA9IHsKIAlNTFhT V19TUF9DUFVfUE9SVF9TQl9DTSwKKwlNTFhTV19TUF9TQl9DTShNTFhTV19QT1JUX01BWF9NVFUs IDAsIDApLAorCU1MWFNXX1NQX1NCX0NNKE1MWFNXX1BPUlRfTUFYX01UVSwgMCwgMCksCisJTUxY U1dfU1BfU0JfQ00oTUxYU1dfUE9SVF9NQVhfTVRVLCAwLCAwKSwKKwlNTFhTV19TUF9TQl9DTShN TFhTV19QT1JUX01BWF9NVFUsIDAsIDApLAorCU1MWFNXX1NQX1NCX0NNKE1MWFNXX1BPUlRfTUFY X01UVSwgMCwgMCksCiAJTUxYU1dfU1BfQ1BVX1BPUlRfU0JfQ00sCi0JTUxYU1dfU1BfQ1BVX1BP UlRfU0JfQ00sCi0JTUxYU1dfU1BfQ1BVX1BPUlRfU0JfQ00sCi0JTUxYU1dfU1BfQ1BVX1BPUlRf U0JfQ00sCi0JTUxYU1dfU1BfQ1BVX1BPUlRfU0JfQ00sCi0JTUxYU1dfU1BfQ1BVX1BPUlRfU0Jf Q00sCi0JTUxYU1dfU1BfU0JfQ00oMTAwMDAsIDAsIDApLAorCU1MWFNXX1NQX1NCX0NNKE1MWFNX X1BPUlRfTUFYX01UVSwgMCwgMCksCiAJTUxYU1dfU1BfQ1BVX1BPUlRfU0JfQ00sCiAJTUxYU1df U1BfQ1BVX1BPUlRfU0JfQ00sCiAJTUxYU1dfU1BfQ1BVX1BPUlRfU0JfQ00sCi0tIAoyLjE0LjMK CgpGcm9tIDY1YmI0YjAyOTM4M2QzMzM3MTQ0OTFmMTkzMzA3Yjk2OTk4MTczYzcgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEJyYWQgTW91cmluZyA8YnJhZC5tb3VyaW5nQG5pLmNvbT4K RGF0ZTogVGh1LCA4IE1hciAyMDE4IDE2OjIzOjAzIC0wNjAwClN1YmplY3Q6IFtQQVRDSCAxNS81 M10gbmV0OiBwaHk6IFRlbGwgY2FsbGVyIHJlc3VsdCBvZiBwaHlfY2hhbmdlKCkKClsgVXBzdHJl YW0gY29tbWl0IGEyYzA1NGE4OTZiOGFjNzk0ZGRjZmM3YzkyZTJkYzdlYzRlZDRlZDUgXQoKSW4g NjY0ZmNmMTIzYTMwZSAobmV0OiBwaHk6IFRocmVhZGVkIGludGVycnVwdHMgYWxsb3cgc29tZSBz aW1wbGlmaWNhdGlvbikKdGhlIHBoeV9pbnRlcnJ1cHQgc3lzdGVtIHdhcyBjaGFuZ2VkIHRvIHVz ZSBhIHRyYWRpdGlvbmFsIHRocmVhZGVkCmludGVycnVwdCBzY2hlbWUgaW5zdGVhZCBvZiBhIHdv cmtxdWV1ZSBhcHByb2FjaC4KCldpdGggdGhpcyBjaGFuZ2UsIHRoZSBwaHkgc3RhdHVzIGNoZWNr IG1vdmVkIGludG8gcGh5X2NoYW5nZSwgd2hpY2gKZGlkIG5vdCByZXBvcnQgYmFjayB0byB0aGUg Y2FsbGVyIHdoZXRoZXIgb3Igbm90IHRoZSBpbnRlcnJ1cHQgd2FzCmhhbmRsZWQuIFRoaXMgbWVh bnMgdGhhdCwgaW4gdGhlIGNhc2Ugb2YgYSBzaGFyZWQgcGh5IGludGVycnVwdCwKb25seSB0aGUg Zmlyc3QgcGh5ZGV2J3MgaW50ZXJydXB0IHJlZ2lzdGVycyBhcmUgY2hlY2tlZCAoc2luY2UKcGh5 X2ludGVycnVwdCgpIHdvdWxkIGFsd2F5cyByZXR1cm4gSVJRX0hBTkRMRUQpLiBUaGlzIGxlYWRz IHRvCmludGVycnVwdCBzdG9ybXMgd2hlbiBpdCBpcyBhIHNlY29uZGFyeSBkZXZpY2UgdGhhdCdz IGFjdHVhbGx5IHRoZQppbnRlcnJ1cHQgc291cmNlLgoKU2lnbmVkLW9mZi1ieTogQnJhZCBNb3Vy aW5nIDxicmFkLm1vdXJpbmdAbmkuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvcGh5L3BoeS5jIHwgMTczICsr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBpbmNsdWRl L2xpbnV4L3BoeS5oICAgfCAgIDEgLQogMiBmaWxlcyBjaGFuZ2VkLCA4NiBpbnNlcnRpb25zKCsp LCA4OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvcGh5LmMgYi9k cml2ZXJzL25ldC9waHkvcGh5LmMKaW5kZXggMzlkZTc3YThiYjYzLi5kYmE2ZDE3YWQ4ODUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9waHkuYworKysgYi9kcml2ZXJzL25ldC9waHkvcGh5 LmMKQEAgLTYxNCw2ICs2MTQsOTEgQEAgc3RhdGljIHZvaWQgcGh5X2Vycm9yKHN0cnVjdCBwaHlf ZGV2aWNlICpwaHlkZXYpCiAJcGh5X3RyaWdnZXJfbWFjaGluZShwaHlkZXYsIGZhbHNlKTsKIH0K IAorLyoqCisgKiBwaHlfZGlzYWJsZV9pbnRlcnJ1cHRzIC0gRGlzYWJsZSB0aGUgUEhZIGludGVy cnVwdHMgZnJvbSB0aGUgUEhZIHNpZGUKKyAqIEBwaHlkZXY6IHRhcmdldCBwaHlfZGV2aWNlIHN0 cnVjdAorICovCitzdGF0aWMgaW50IHBoeV9kaXNhYmxlX2ludGVycnVwdHMoc3RydWN0IHBoeV9k ZXZpY2UgKnBoeWRldikKK3sKKwlpbnQgZXJyOworCisJLyogRGlzYWJsZSBQSFkgaW50ZXJydXB0 cyAqLworCWVyciA9IHBoeV9jb25maWdfaW50ZXJydXB0KHBoeWRldiwgUEhZX0lOVEVSUlVQVF9E SVNBQkxFRCk7CisJaWYgKGVycikKKwkJZ290byBwaHlfZXJyOworCisJLyogQ2xlYXIgdGhlIGlu dGVycnVwdCAqLworCWVyciA9IHBoeV9jbGVhcl9pbnRlcnJ1cHQocGh5ZGV2KTsKKwlpZiAoZXJy KQorCQlnb3RvIHBoeV9lcnI7CisKKwlyZXR1cm4gMDsKKworcGh5X2VycjoKKwlwaHlfZXJyb3Io cGh5ZGV2KTsKKworCXJldHVybiBlcnI7Cit9CisKKy8qKgorICogcGh5X2NoYW5nZSAtIENhbGxl ZCBieSB0aGUgcGh5X2ludGVycnVwdCB0byBoYW5kbGUgUEhZIGNoYW5nZXMKKyAqIEBwaHlkZXY6 IHBoeV9kZXZpY2Ugc3RydWN0IHRoYXQgaW50ZXJydXB0ZWQKKyAqLworc3RhdGljIGlycXJldHVy bl90IHBoeV9jaGFuZ2Uoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKK3sKKwlpZiAocGh5X2lu dGVycnVwdF9pc192YWxpZChwaHlkZXYpKSB7CisJCWlmIChwaHlkZXYtPmRydi0+ZGlkX2ludGVy cnVwdCAmJgorCQkgICAgIXBoeWRldi0+ZHJ2LT5kaWRfaW50ZXJydXB0KHBoeWRldikpCisJCQln b3RvIGlnbm9yZTsKKworCQlpZiAocGh5X2Rpc2FibGVfaW50ZXJydXB0cyhwaHlkZXYpKQorCQkJ Z290byBwaHlfZXJyOworCX0KKworCW11dGV4X2xvY2soJnBoeWRldi0+bG9jayk7CisJaWYgKChQ SFlfUlVOTklORyA9PSBwaHlkZXYtPnN0YXRlKSB8fCAoUEhZX05PTElOSyA9PSBwaHlkZXYtPnN0 YXRlKSkKKwkJcGh5ZGV2LT5zdGF0ZSA9IFBIWV9DSEFOR0VMSU5LOworCW11dGV4X3VubG9jaygm cGh5ZGV2LT5sb2NrKTsKKworCWlmIChwaHlfaW50ZXJydXB0X2lzX3ZhbGlkKHBoeWRldikpIHsK KwkJYXRvbWljX2RlYygmcGh5ZGV2LT5pcnFfZGlzYWJsZSk7CisJCWVuYWJsZV9pcnEocGh5ZGV2 LT5pcnEpOworCisJCS8qIFJlZW5hYmxlIGludGVycnVwdHMgKi8KKwkJaWYgKFBIWV9IQUxURUQg IT0gcGh5ZGV2LT5zdGF0ZSAmJgorCQkgICAgcGh5X2NvbmZpZ19pbnRlcnJ1cHQocGh5ZGV2LCBQ SFlfSU5URVJSVVBUX0VOQUJMRUQpKQorCQkJZ290byBpcnFfZW5hYmxlX2VycjsKKwl9CisKKwkv KiByZXNjaGVkdWxlIHN0YXRlIHF1ZXVlIHdvcmsgdG8gcnVuIGFzIHNvb24gYXMgcG9zc2libGUg Ki8KKwlwaHlfdHJpZ2dlcl9tYWNoaW5lKHBoeWRldiwgdHJ1ZSk7CisJcmV0dXJuIElSUV9IQU5E TEVEOworCitpZ25vcmU6CisJYXRvbWljX2RlYygmcGh5ZGV2LT5pcnFfZGlzYWJsZSk7CisJZW5h YmxlX2lycShwaHlkZXYtPmlycSk7CisJcmV0dXJuIElSUV9OT05FOworCitpcnFfZW5hYmxlX2Vy cjoKKwlkaXNhYmxlX2lycShwaHlkZXYtPmlycSk7CisJYXRvbWljX2luYygmcGh5ZGV2LT5pcnFf ZGlzYWJsZSk7CitwaHlfZXJyOgorCXBoeV9lcnJvcihwaHlkZXYpOworCXJldHVybiBJUlFfTk9O RTsKK30KKworLyoqCisgKiBwaHlfY2hhbmdlX3dvcmsgLSBTY2hlZHVsZWQgYnkgdGhlIHBoeV9t YWNfaW50ZXJydXB0IHRvIGhhbmRsZSBQSFkgY2hhbmdlcworICogQHdvcms6IHdvcmtfc3RydWN0 IHRoYXQgZGVzY3JpYmVzIHRoZSB3b3JrIHRvIGJlIGRvbmUKKyAqLwordm9pZCBwaHlfY2hhbmdl X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoreworCXN0cnVjdCBwaHlfZGV2aWNlICpw aHlkZXYgPQorCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IHBoeV9kZXZpY2UsIHBoeV9xdWV1 ZSk7CisKKwlwaHlfY2hhbmdlKHBoeWRldik7Cit9CisKIC8qKgogICogcGh5X2ludGVycnVwdCAt IFBIWSBpbnRlcnJ1cHQgaGFuZGxlcgogICogQGlycTogaW50ZXJydXB0IGxpbmUKQEAgLTYzMiw5 ICs3MTcsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgcGh5X2ludGVycnVwdChpbnQgaXJxLCB2b2lk ICpwaHlfZGF0KQogCWRpc2FibGVfaXJxX25vc3luYyhpcnEpOwogCWF0b21pY19pbmMoJnBoeWRl di0+aXJxX2Rpc2FibGUpOwogCi0JcGh5X2NoYW5nZShwaHlkZXYpOwotCi0JcmV0dXJuIElSUV9I QU5ETEVEOworCXJldHVybiBwaHlfY2hhbmdlKHBoeWRldik7CiB9CiAKIC8qKgpAQCAtNjUxLDMy ICs3MzQsNiBAQCBzdGF0aWMgaW50IHBoeV9lbmFibGVfaW50ZXJydXB0cyhzdHJ1Y3QgcGh5X2Rl dmljZSAqcGh5ZGV2KQogCXJldHVybiBwaHlfY29uZmlnX2ludGVycnVwdChwaHlkZXYsIFBIWV9J TlRFUlJVUFRfRU5BQkxFRCk7CiB9CiAKLS8qKgotICogcGh5X2Rpc2FibGVfaW50ZXJydXB0cyAt IERpc2FibGUgdGhlIFBIWSBpbnRlcnJ1cHRzIGZyb20gdGhlIFBIWSBzaWRlCi0gKiBAcGh5ZGV2 OiB0YXJnZXQgcGh5X2RldmljZSBzdHJ1Y3QKLSAqLwotc3RhdGljIGludCBwaHlfZGlzYWJsZV9p bnRlcnJ1cHRzKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCi17Ci0JaW50IGVycjsKLQotCS8q IERpc2FibGUgUEhZIGludGVycnVwdHMgKi8KLQllcnIgPSBwaHlfY29uZmlnX2ludGVycnVwdChw aHlkZXYsIFBIWV9JTlRFUlJVUFRfRElTQUJMRUQpOwotCWlmIChlcnIpCi0JCWdvdG8gcGh5X2Vy cjsKLQotCS8qIENsZWFyIHRoZSBpbnRlcnJ1cHQgKi8KLQllcnIgPSBwaHlfY2xlYXJfaW50ZXJy dXB0KHBoeWRldik7Ci0JaWYgKGVycikKLQkJZ290byBwaHlfZXJyOwotCi0JcmV0dXJuIDA7Ci0K LXBoeV9lcnI6Ci0JcGh5X2Vycm9yKHBoeWRldik7Ci0KLQlyZXR1cm4gZXJyOwotfQotCiAvKioK ICAqIHBoeV9zdGFydF9pbnRlcnJ1cHRzIC0gcmVxdWVzdCBhbmQgZW5hYmxlIGludGVycnVwdHMg Zm9yIGEgUEhZIGRldmljZQogICogQHBoeWRldjogdGFyZ2V0IHBoeV9kZXZpY2Ugc3RydWN0CkBA IC03MjcsNjQgKzc4NCw2IEBAIGludCBwaHlfc3RvcF9pbnRlcnJ1cHRzKHN0cnVjdCBwaHlfZGV2 aWNlICpwaHlkZXYpCiB9CiBFWFBPUlRfU1lNQk9MKHBoeV9zdG9wX2ludGVycnVwdHMpOwogCi0v KioKLSAqIHBoeV9jaGFuZ2UgLSBDYWxsZWQgYnkgdGhlIHBoeV9pbnRlcnJ1cHQgdG8gaGFuZGxl IFBIWSBjaGFuZ2VzCi0gKiBAcGh5ZGV2OiBwaHlfZGV2aWNlIHN0cnVjdCB0aGF0IGludGVycnVw dGVkCi0gKi8KLXZvaWQgcGh5X2NoYW5nZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQotewot CWlmIChwaHlfaW50ZXJydXB0X2lzX3ZhbGlkKHBoeWRldikpIHsKLQkJaWYgKHBoeWRldi0+ZHJ2 LT5kaWRfaW50ZXJydXB0ICYmCi0JCSAgICAhcGh5ZGV2LT5kcnYtPmRpZF9pbnRlcnJ1cHQocGh5 ZGV2KSkKLQkJCWdvdG8gaWdub3JlOwotCi0JCWlmIChwaHlfZGlzYWJsZV9pbnRlcnJ1cHRzKHBo eWRldikpCi0JCQlnb3RvIHBoeV9lcnI7Ci0JfQotCi0JbXV0ZXhfbG9jaygmcGh5ZGV2LT5sb2Nr KTsKLQlpZiAoKFBIWV9SVU5OSU5HID09IHBoeWRldi0+c3RhdGUpIHx8IChQSFlfTk9MSU5LID09 IHBoeWRldi0+c3RhdGUpKQotCQlwaHlkZXYtPnN0YXRlID0gUEhZX0NIQU5HRUxJTks7Ci0JbXV0 ZXhfdW5sb2NrKCZwaHlkZXYtPmxvY2spOwotCi0JaWYgKHBoeV9pbnRlcnJ1cHRfaXNfdmFsaWQo cGh5ZGV2KSkgewotCQlhdG9taWNfZGVjKCZwaHlkZXYtPmlycV9kaXNhYmxlKTsKLQkJZW5hYmxl X2lycShwaHlkZXYtPmlycSk7Ci0KLQkJLyogUmVlbmFibGUgaW50ZXJydXB0cyAqLwotCQlpZiAo UEhZX0hBTFRFRCAhPSBwaHlkZXYtPnN0YXRlICYmCi0JCSAgICBwaHlfY29uZmlnX2ludGVycnVw dChwaHlkZXYsIFBIWV9JTlRFUlJVUFRfRU5BQkxFRCkpCi0JCQlnb3RvIGlycV9lbmFibGVfZXJy OwotCX0KLQotCS8qIHJlc2NoZWR1bGUgc3RhdGUgcXVldWUgd29yayB0byBydW4gYXMgc29vbiBh cyBwb3NzaWJsZSAqLwotCXBoeV90cmlnZ2VyX21hY2hpbmUocGh5ZGV2LCB0cnVlKTsKLQlyZXR1 cm47Ci0KLWlnbm9yZToKLQlhdG9taWNfZGVjKCZwaHlkZXYtPmlycV9kaXNhYmxlKTsKLQllbmFi bGVfaXJxKHBoeWRldi0+aXJxKTsKLQlyZXR1cm47Ci0KLWlycV9lbmFibGVfZXJyOgotCWRpc2Fi bGVfaXJxKHBoeWRldi0+aXJxKTsKLQlhdG9taWNfaW5jKCZwaHlkZXYtPmlycV9kaXNhYmxlKTsK LXBoeV9lcnI6Ci0JcGh5X2Vycm9yKHBoeWRldik7Ci19Ci0KLS8qKgotICogcGh5X2NoYW5nZV93 b3JrIC0gU2NoZWR1bGVkIGJ5IHRoZSBwaHlfbWFjX2ludGVycnVwdCB0byBoYW5kbGUgUEhZIGNo YW5nZXMKLSAqIEB3b3JrOiB3b3JrX3N0cnVjdCB0aGF0IGRlc2NyaWJlcyB0aGUgd29yayB0byBi ZSBkb25lCi0gKi8KLXZvaWQgcGh5X2NoYW5nZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y aykKLXsKLQlzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2ID0KLQkJY29udGFpbmVyX29mKHdvcmss IHN0cnVjdCBwaHlfZGV2aWNlLCBwaHlfcXVldWUpOwotCi0JcGh5X2NoYW5nZShwaHlkZXYpOwot fQotCiAvKioKICAqIHBoeV9zdG9wIC0gQnJpbmcgZG93biB0aGUgUEhZIGxpbmssIGFuZCBzdG9w IGNoZWNraW5nIHRoZSBzdGF0dXMKICAqIEBwaHlkZXY6IHRhcmdldCBwaHlfZGV2aWNlIHN0cnVj dApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9waHkuaCBiL2luY2x1ZGUvbGludXgvcGh5LmgK aW5kZXggMTIzY2Q3MDM3NDFkLi5lYTBjYmQ2ZDk1NTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGlu dXgvcGh5LmgKKysrIGIvaW5jbHVkZS9saW51eC9waHkuaApAQCAtODk3LDcgKzg5Nyw2IEBAIGlu dCBwaHlfZHJpdmVyX3JlZ2lzdGVyKHN0cnVjdCBwaHlfZHJpdmVyICpuZXdfZHJpdmVyLCBzdHJ1 Y3QgbW9kdWxlICpvd25lcik7CiBpbnQgcGh5X2RyaXZlcnNfcmVnaXN0ZXIoc3RydWN0IHBoeV9k cml2ZXIgKm5ld19kcml2ZXIsIGludCBuLAogCQkJIHN0cnVjdCBtb2R1bGUgKm93bmVyKTsKIHZv aWQgcGh5X3N0YXRlX21hY2hpbmUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKLXZvaWQgcGh5 X2NoYW5nZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KTsKIHZvaWQgcGh5X2NoYW5nZV93b3Jr KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CiB2b2lkIHBoeV9tYWNfaW50ZXJydXB0KHN0cnVj dCBwaHlfZGV2aWNlICpwaHlkZXYsIGludCBuZXdfbGluayk7CiB2b2lkIHBoeV9zdGFydF9tYWNo aW5lKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpOwotLSAKMi4xNC4zCgoKRnJvbSA1YzI4MDZh MWYxYjUwNjdiYjhmMDY3OTY4NzBmNDcxOWViMTAyYmU2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBTdGVmYW5vIEJyaXZpbyA8c2JyaXZpb0ByZWRoYXQuY29tPgpEYXRlOiBUdWUsIDYg TWFyIDIwMTggMTE6MTA6MTkgKzAxMDAKU3ViamVjdDogW1BBVENIIDE2LzUzXSBpcHY2OiBSZWZs ZWN0IE1UVSBjaGFuZ2VzIG9uIFBNVFUgb2YgZXhjZXB0aW9ucyBmb3IKIE1UVS1sZXNzIHJvdXRl cwoKWyBVcHN0cmVhbSBjb21taXQgZTlmYTE0OTVkNzM4ZTM0ZmNlYzg4YTNkMmVjOTEwMWE5ZWU1 YjMxMCBdCgpDdXJyZW50bHksIGFkbWluaXN0cmF0aXZlIE1UVSBjaGFuZ2VzIG9uIGEgZ2l2ZW4g bmV0ZGV2aWNlIGFyZQpub3QgcmVmbGVjdGVkIG9uIHJvdXRlIGV4Y2VwdGlvbnMgZm9yIE1UVS1s ZXNzIHJvdXRlcywgd2l0aCBhCnNldCBQTVRVIHZhbHVlLCBmb3IgdGhhdCBkZXZpY2U6CgogIyBp cCAtNiByb3V0ZSBnZXQgMjAwMTpkYjg6OmIKIDIwMDE6ZGI4OjpiIGZyb20gOjogZGV2IHZ0aV9h IHByb3RvIGtlcm5lbCBzcmMgMjAwMTpkYjg6OmEgbWV0cmljIDI1NiBwcmVmIG1lZGl1bQogIyBw aW5nNiAtYyAxIC1xIC1zMTAwMDAgMjAwMTpkYjg6OmIgPiAvZGV2L251bGwKICMgaXAgbmV0bnMg ZXhlYyBhIGlwIC02IHJvdXRlIGdldCAyMDAxOmRiODo6YgogMjAwMTpkYjg6OmIgZnJvbSA6OiBk ZXYgdnRpX2Egc3JjIDIwMDE6ZGI4OjphIG1ldHJpYyAwCiAgICAgY2FjaGUgZXhwaXJlcyA1NzFz ZWMgbXR1IDQ5MjYgcHJlZiBtZWRpdW0KICMgaXAgbGluayBzZXQgZGV2IHZ0aV9hIG10dSAzMDAw CiAjIGlwIC02IHJvdXRlIGdldCAyMDAxOmRiODo6YgogMjAwMTpkYjg6OmIgZnJvbSA6OiBkZXYg dnRpX2Egc3JjIDIwMDE6ZGI4OjphIG1ldHJpYyAwCiAgICAgY2FjaGUgZXhwaXJlcyA1NzFzZWMg bXR1IDQ5MjYgcHJlZiBtZWRpdW0KICMgaXAgbGluayBzZXQgZGV2IHZ0aV9hIG10dSA5MDAwCiAj IGlwIC02IHJvdXRlIGdldCAyMDAxOmRiODo6YgogMjAwMTpkYjg6OmIgZnJvbSA6OiBkZXYgdnRp X2Egc3JjIDIwMDE6ZGI4OjphIG1ldHJpYyAwCiAgICAgY2FjaGUgZXhwaXJlcyA1NzFzZWMgbXR1 IDQ5MjYgcHJlZiBtZWRpdW0KClRoZSBmaXJzdCBpc3N1ZSBpcyB0aGF0IHNpbmNlIGNvbW1pdCBm YjU2YmU4M2U0M2QgKCJuZXQtaXB2Njogb24KZGV2aWNlIG10dSBjaGFuZ2UgZG8gbm90IGFkZCBt dHUgdG8gbXR1LWxlc3Mgcm91dGVzIikgd2UgZG9uJ3QKY2FsbCBydDZfZXhjZXB0aW9uc191cGRh dGVfcG10dSgpIGZyb20gcnQ2X210dV9jaGFuZ2Vfcm91dGUoKSwKd2hpY2ggaGFuZGxlcyBhZG1p bmlzdHJhdGl2ZSBNVFUgY2hhbmdlcywgaWYgdGhlIHJlZ3VsYXIgcm91dGUKaXMgTVRVLWxlc3Mu CgpIb3dldmVyLCBQTVRVIGV4Y2VwdGlvbnMgc2hvdWxkIGJlIGFsd2F5cyB1cGRhdGVkLCBhcyBs b25nIGFzClJUQVhfTVRVIGlzIG5vdCBsb2NrZWQuIEtlZXAgdGhlIGNoZWNrIGZvciBNVFUtbGVz cyBtYWluIHJvdXRlLAphcyBpbnRyb2R1Y2VkIGJ5IHRoYXQgY29tbWl0LCBidXQsIGZvciBleGNl cHRpb25zLApjYWxsIHJ0Nl9leGNlcHRpb25zX3VwZGF0ZV9wbXR1KCkgcmVnYXJkbGVzcyBvZiB0 aGF0IGNoZWNrLgoKT25jZSB0aGF0IGlzIGZpeGVkLCBvbmUgcHJvYmxlbSByZW1haW5zOiBNVFUg Y2hhbmdlcyBhcmUgbm90CnJlZmxlY3RlZCBpZiB0aGUgbmV3IE1UVSBpcyBoaWdoZXIgdGhhbiB0 aGUgcHJldmlvdXMgb25lLApiZWNhdXNlIHJ0Nl9leGNlcHRpb25zX3VwZGF0ZV9wbXR1KCkgZG9l c24ndCBhbGxvdyB0aGF0LiBXZQpzaG91bGQgaW5zdGVhZCBhbGxvdyBQTVRVIGluY3JlYXNlIGlm IHRoZSBvbGQgUE1UVSBtYXRjaGVzIHRoZQpsb2NhbCBNVFUsIGFzIHRoYXQgaW1wbGllcyB0aGF0 IHRoZSBvbGQgTVRVIHdhcyB0aGUgbG93ZXN0IGluIHRoZQpwYXRoLCBhbmQgUE1UVSBkaXNjb3Zl cnkgbWlnaHQgbGVhZCB0byBkaWZmZXJlbnQgcmVzdWx0cy4KClRoZSBleGlzdGluZyBjaGVjayBp biBydDZfbXR1X2NoYW5nZV9yb3V0ZSgpIGNvcnJlY3RseSB0b29rIHRoYXQKY2FzZSBpbnRvIGFj Y291bnQgKGZvciByZWd1bGFyIHJvdXRlcyBvbmx5KSwgc28gZmFjdG9yIGl0IG91dAphbmQgcmUt dXNlIGl0IGFsc28gaW4gcnQ2X2V4Y2VwdGlvbnNfdXBkYXRlX3BtdHUoKS4KCldoaWxlIGF0IGl0 LCBmaXggY29tbWVudHMgc3R5bGUgYW5kIGdyYW1tYXIsIGFuZCB0cnkgdG8gYmUgYSBiaXQKbW9y ZSBkZXNjcmlwdGl2ZS4KClJlcG9ydGVkLWJ5OiBYaXVtZWkgTXUgPHhtdUByZWRoYXQuY29tPgpG aXhlczogZmI1NmJlODNlNDNkICgibmV0LWlwdjY6IG9uIGRldmljZSBtdHUgY2hhbmdlIGRvIG5v dCBhZGQgbXR1IHRvIG10dS1sZXNzIHJvdXRlcyIpCkZpeGVzOiBmNWJiZTdlZTc5YzIgKCJpcHY2 OiBwcmVwYXJlIHJ0Nl9tdHVfY2hhbmdlKCkgZm9yIGV4Y2VwdGlvbiB0YWJsZSIpClNpZ25lZC1v ZmYtYnk6IFN0ZWZhbm8gQnJpdmlvIDxzYnJpdmlvQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBEYXZp ZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9yb3V0ZS5jIHwgNzEgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvaXB2Ni9yb3V0ZS5jIGIvbmV0L2lwdjYvcm91dGUuYwppbmRleCBhNTYwZmIxZDAyMzAu LjA4YTJhNjVkMzMwNCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2 Ni9yb3V0ZS5jCkBAIC0xNTEwLDcgKzE1MTAsMzAgQEAgc3RhdGljIHZvaWQgcnQ2X2V4Y2VwdGlv bnNfcmVtb3ZlX3ByZWZzcmMoc3RydWN0IHJ0Nl9pbmZvICpydCkKIAl9CiB9CiAKLXN0YXRpYyB2 b2lkIHJ0Nl9leGNlcHRpb25zX3VwZGF0ZV9wbXR1KHN0cnVjdCBydDZfaW5mbyAqcnQsIGludCBt dHUpCitzdGF0aWMgYm9vbCBydDZfbXR1X2NoYW5nZV9yb3V0ZV9hbGxvd2VkKHN0cnVjdCBpbmV0 Nl9kZXYgKmlkZXYsCisJCQkJCSBzdHJ1Y3QgcnQ2X2luZm8gKnJ0LCBpbnQgbXR1KQoreworCS8q IElmIHRoZSBuZXcgTVRVIGlzIGxvd2VyIHRoYW4gdGhlIHJvdXRlIFBNVFUsIHRoaXMgbmV3IE1U VSB3aWxsIGJlIHRoZQorCSAqIGxvd2VzdCBNVFUgaW4gdGhlIHBhdGg6IGFsd2F5cyBhbGxvdyB1 cGRhdGluZyB0aGUgcm91dGUgUE1UVSB0bworCSAqIHJlZmxlY3QgUE1UVSBkZWNyZWFzZXMuCisJ ICoKKwkgKiBJZiB0aGUgbmV3IE1UVSBpcyBoaWdoZXIsIGFuZCB0aGUgcm91dGUgUE1UVSBpcyBl cXVhbCB0byB0aGUgbG9jYWwKKwkgKiBNVFUsIHRoaXMgbWVhbnMgdGhlIG9sZCBNVFUgaXMgdGhl IGxvd2VzdCBpbiB0aGUgcGF0aCwgc28gYWxsb3cKKwkgKiB1cGRhdGluZyBpdDogaWYgb3RoZXIg bm9kZXMgbm93IGhhdmUgbG93ZXIgTVRVcywgUE1UVSBkaXNjb3Zlcnkgd2lsbAorCSAqIGhhbmRs ZSB0aGlzLgorCSAqLworCisJaWYgKGRzdF9tdHUoJnJ0LT5kc3QpID49IG10dSkKKwkJcmV0dXJu IHRydWU7CisKKwlpZiAoZHN0X210dSgmcnQtPmRzdCkgPT0gaWRldi0+Y25mLm10dTYpCisJCXJl dHVybiB0cnVlOworCisJcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgdm9pZCBydDZfZXhjZXB0 aW9uc191cGRhdGVfcG10dShzdHJ1Y3QgaW5ldDZfZGV2ICppZGV2LAorCQkJCSAgICAgICBzdHJ1 Y3QgcnQ2X2luZm8gKnJ0LCBpbnQgbXR1KQogewogCXN0cnVjdCBydDZfZXhjZXB0aW9uX2J1Y2tl dCAqYnVja2V0OwogCXN0cnVjdCBydDZfZXhjZXB0aW9uICpydDZfZXg7CkBAIC0xNTE5LDIwICsx NTQyLDIyIEBAIHN0YXRpYyB2b2lkIHJ0Nl9leGNlcHRpb25zX3VwZGF0ZV9wbXR1KHN0cnVjdCBy dDZfaW5mbyAqcnQsIGludCBtdHUpCiAJYnVja2V0ID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3Rl ZChydC0+cnQ2aV9leGNlcHRpb25fYnVja2V0LAogCQkJCQlsb2NrZGVwX2lzX2hlbGQoJnJ0Nl9l eGNlcHRpb25fbG9jaykpOwogCi0JaWYgKGJ1Y2tldCkgewotCQlmb3IgKGkgPSAwOyBpIDwgRklC Nl9FWENFUFRJT05fQlVDS0VUX1NJWkU7IGkrKykgewotCQkJaGxpc3RfZm9yX2VhY2hfZW50cnko cnQ2X2V4LCAmYnVja2V0LT5jaGFpbiwgaGxpc3QpIHsKLQkJCQlzdHJ1Y3QgcnQ2X2luZm8gKmVu dHJ5ID0gcnQ2X2V4LT5ydDZpOwotCQkJCS8qIEZvciBSVEZfQ0FDSEUgd2l0aCBydDZpX3BtdHUg PT0gMAotCQkJCSAqIChpLmUuIGEgcmVkaXJlY3RlZCByb3V0ZSksCi0JCQkJICogdGhlIG1ldHJp Y3Mgb2YgaXRzIHJ0LT5kc3QuZnJvbSBoYXMgYWxyZWFkeQotCQkJCSAqIGJlZW4gdXBkYXRlZC4K LQkJCQkgKi8KLQkJCQlpZiAoZW50cnktPnJ0NmlfcG10dSAmJiBlbnRyeS0+cnQ2aV9wbXR1ID4g bXR1KQotCQkJCQllbnRyeS0+cnQ2aV9wbXR1ID0gbXR1OwotCQkJfQotCQkJYnVja2V0Kys7CisJ aWYgKCFidWNrZXQpCisJCXJldHVybjsKKworCWZvciAoaSA9IDA7IGkgPCBGSUI2X0VYQ0VQVElP Tl9CVUNLRVRfU0laRTsgaSsrKSB7CisJCWhsaXN0X2Zvcl9lYWNoX2VudHJ5KHJ0Nl9leCwgJmJ1 Y2tldC0+Y2hhaW4sIGhsaXN0KSB7CisJCQlzdHJ1Y3QgcnQ2X2luZm8gKmVudHJ5ID0gcnQ2X2V4 LT5ydDZpOworCisJCQkvKiBGb3IgUlRGX0NBQ0hFIHdpdGggcnQ2aV9wbXR1ID09IDAgKGkuZS4g YSByZWRpcmVjdGVkCisJCQkgKiByb3V0ZSksIHRoZSBtZXRyaWNzIG9mIGl0cyBydC0+ZHN0LmZy b20gaGF2ZSBhbHJlYWR5CisJCQkgKiBiZWVuIHVwZGF0ZWQuCisJCQkgKi8KKwkJCWlmIChlbnRy eS0+cnQ2aV9wbXR1ICYmCisJCQkgICAgcnQ2X210dV9jaGFuZ2Vfcm91dGVfYWxsb3dlZChpZGV2 LCBlbnRyeSwgbXR1KSkKKwkJCQllbnRyeS0+cnQ2aV9wbXR1ID0gbXR1OwogCQl9CisJCWJ1Y2tl dCsrOwogCX0KIH0KIApAQCAtMzUyMSwyNSArMzU0NiwxMyBAQCBzdGF0aWMgaW50IHJ0Nl9tdHVf Y2hhbmdlX3JvdXRlKHN0cnVjdCBydDZfaW5mbyAqcnQsIHZvaWQgKnBfYXJnKQogCSAgIFNpbmNl IFJGQyAxOTgxIGRvZXNuJ3QgaW5jbHVkZSBhZG1pbmlzdHJhdGl2ZSBNVFUgaW5jcmVhc2UKIAkg ICB1cGRhdGUgUE1UVSBpbmNyZWFzZSBpcyBhIE1VU1QuIChpLmUuIGp1bWJvIGZyYW1lKQogCSAq LwotCS8qCi0JICAgSWYgbmV3IE1UVSBpcyBsZXNzIHRoYW4gcm91dGUgUE1UVSwgdGhpcyBuZXcg TVRVIHdpbGwgYmUgdGhlCi0JICAgbG93ZXN0IE1UVSBpbiB0aGUgcGF0aCwgdXBkYXRlIHRoZSBy b3V0ZSBQTVRVIHRvIHJlZmxlY3QgUE1UVQotCSAgIGRlY3JlYXNlczsgaWYgbmV3IE1UVSBpcyBn cmVhdGVyIHRoYW4gcm91dGUgUE1UVSwgYW5kIHRoZQotCSAgIG9sZCBNVFUgaXMgdGhlIGxvd2Vz dCBNVFUgaW4gdGhlIHBhdGgsIHVwZGF0ZSB0aGUgcm91dGUgUE1UVQotCSAgIHRvIHJlZmxlY3Qg dGhlIGluY3JlYXNlLiBJbiB0aGlzIGNhc2UgaWYgdGhlIG90aGVyIG5vZGVzJyBNVFUKLQkgICBh bHNvIGhhdmUgdGhlIGxvd2VzdCBNVFUsIFRPTyBCSUcgTUVTU0FHRSB3aWxsIGJlIGxlYWQgdG8K LQkgICBQTVRVIGRpc2NvdmVyeS4KLQkgKi8KIAlpZiAocnQtPmRzdC5kZXYgPT0gYXJnLT5kZXYg JiYKLQkgICAgZHN0X21ldHJpY19yYXcoJnJ0LT5kc3QsIFJUQVhfTVRVKSAmJgogCSAgICAhZHN0 X21ldHJpY19sb2NrZWQoJnJ0LT5kc3QsIFJUQVhfTVRVKSkgewogCQlzcGluX2xvY2tfYmgoJnJ0 Nl9leGNlcHRpb25fbG9jayk7Ci0JCWlmIChkc3RfbXR1KCZydC0+ZHN0KSA+PSBhcmctPm10dSB8 fAotCQkgICAgKGRzdF9tdHUoJnJ0LT5kc3QpIDwgYXJnLT5tdHUgJiYKLQkJICAgICBkc3RfbXR1 KCZydC0+ZHN0KSA9PSBpZGV2LT5jbmYubXR1NikpIHsKKwkJaWYgKGRzdF9tZXRyaWNfcmF3KCZy dC0+ZHN0LCBSVEFYX01UVSkgJiYKKwkJICAgIHJ0Nl9tdHVfY2hhbmdlX3JvdXRlX2FsbG93ZWQo aWRldiwgcnQsIGFyZy0+bXR1KSkKIAkJCWRzdF9tZXRyaWNfc2V0KCZydC0+ZHN0LCBSVEFYX01U VSwgYXJnLT5tdHUpOwotCQl9Ci0JCXJ0Nl9leGNlcHRpb25zX3VwZGF0ZV9wbXR1KHJ0LCBhcmct Pm10dSk7CisJCXJ0Nl9leGNlcHRpb25zX3VwZGF0ZV9wbXR1KGlkZXYsIHJ0LCBhcmctPm10dSk7 CiAJCXNwaW5fdW5sb2NrX2JoKCZydDZfZXhjZXB0aW9uX2xvY2spOwogCX0KIAlyZXR1cm4gMDsK LS0gCjIuMTQuMwoKCkZyb20gMjNjYjc5OGI1ZDIyOGJjYmNlOWU5NmM4MDJmN2FiNzc1OWY1MDMz YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUm9tYW4gTWFzaGFrIDxtcnZAbW9qYXRh dHUuY29tPgpEYXRlOiBNb24sIDEyIE1hciAyMDE4IDE2OjIwOjU4IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCAxNy81M10gbmV0IHNjaGVkIGFjdGlvbnM6IHJldHVybiBleHBsaWNpdCBlcnJvciB3aGVu CiB0dW5uZWxfa2V5IG1vZGUgaXMgbm90IHNwZWNpZmllZAoKWyBVcHN0cmVhbSBjb21taXQgNTFk NDc0MGY4OGFmZmQ4NWQ0OWMwNGUzYzljZDEyOWMwZTMzYmNiOSBdCgpJZiBzZXQvdW5zZXQgbW9k ZSBvZiB0aGUgdHVubmVsX2tleSBhY3Rpb24gaXMgbm90IHByb3ZpZGVkLCAtPmluaXQoKSBzdGls bApyZXR1cm5zIDAsIGFuZCB0aGUgY2FsbGVyIHByb2NlZWRzIHdpdGggYm9ndXMgJ3N0cnVjdCB0 Y19hY3Rpb24gKicgb2JqZWN0LAp0aGlzIHJlc3VsdHMgaW4gY3Jhc2g6CgolIHRjIGFjdGlvbnMg YWRkIGFjdGlvbiB0dW5uZWxfa2V5IHNyY19pcCAxLjEuMS4xIGRzdF9pcCAyLjIuMi4xIGlkIDcg aW5kZXggMQoKWyAgIDM1LjgwNTUxNV0gZ2VuZXJhbCBwcm90ZWN0aW9uIGZhdWx0OiAwMDAwIFsj MV0gU01QIFBUSQpbICAgMzUuODA2MTYxXSBNb2R1bGVzIGxpbmtlZCBpbjogYWN0X3R1bm5lbF9r ZXkga3ZtX2ludGVsIGt2bSBpcnFieXBhc3MKY3JjdDEwZGlmX3BjbG11bCBjcmMzMl9wY2xtdWwg Z2hhc2hfY2xtdWxuaV9pbnRlbCBwY2JjIGFlc25pX2ludGVsIGFlc194ODZfNjQKY3J5cHRvX3Np bWQgZ2x1ZV9oZWxwZXIgY3J5cHRkIHNlcmlvX3JhdwpbICAgMzUuODA4MjMzXSBDUFU6IDEgUElE OiA0MjggQ29tbTogdGMgTm90IHRhaW50ZWQgNC4xNi4wLXJjNCsgIzI4NgpbICAgMzUuODA4OTI5 XSBSSVA6IDAwMTA6dGNmX2FjdGlvbl9pbml0KzB4OTAvMHgxOTAKWyAgIDM1LjgwOTQ1N10gUlNQ OiAwMDE4OmZmZmZiOGVkYzA2OGI5YTAgRUZMQUdTOiAwMDAxMDIwNgpbICAgMzUuODEwMDUzXSBS QVg6IDEzMjBjMDAwMDAwYTAwMDMgUkJYOiAwMDAwMDAwMDAwMDAwMDAxIFJDWDogMDAwMDAwMDAw MDAwMDAwMApbICAgMzUuODEwODY2XSBSRFg6IDAwMDAwMDAwMDAwMDAwNzAgUlNJOiAwMDAwMDAw MDAwMDA3OTY1IFJESTogZmZmZmI4ZWRjMDY4YjkxMApbICAgMzUuODExNjYwXSBSQlA6IGZmZmZi OGVkYzA2OGI5ZDAgUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTogZmZmZmI4ZWRjMDY4YjgwOApb ICAgMzUuODEyNDYzXSBSMTA6IGZmZmZmZmZmYzAyYmYwNDAgUjExOiAwMDAwMDAwMDAwMDAwMDQw IFIxMjogZmZmZmI4ZWRjMDY4YmIzOApbICAgMzUuODEzMjM1XSBSMTM6IDAwMDAwMDAwMDAwMDAw MDAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogZmZmZmI4ZWRjMDY4YjkxMApbICAgMzUuODE0 MDA2XSBGUzogIDAwMDA3ZjNkMGQ4NTU2YzAoMDAwMCkgR1M6ZmZmZjkxZDFkYmM0MDAwMCgwMDAw KQprbmxHUzowMDAwMDAwMDAwMDAwMDAwClsgICAzNS44MTQ4ODFdIENTOiAgMDAxMCBEUzogMDAw MCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKWyAgIDM1LjgxNTU0MF0gQ1IyOiAwMDAw MDAwMDAwNDNmNzIwIENSMzogMDAwMDAwMDAxOTI0ODAwMSBDUjQ6IDAwMDAwMDAwMDAxNjA2YTAK WyAgIDM1LjgxNjQ1N10gQ2FsbCBUcmFjZToKWyAgIDM1LjgxNzE1OF0gIHRjX2N0bF9hY3Rpb24r MHgxMWEvMHgyMjAKWyAgIDM1LjgxNzc5NV0gIHJ0bmV0bGlua19yY3ZfbXNnKzB4MjNkLzB4MmUw ClsgICAzNS44MTg0NTddICA/IF9fc2xhYl9hbGxvYysweDFjLzB4MzAKWyAgIDM1LjgxOTA3OV0g ID8gX19rbWFsbG9jX25vZGVfdHJhY2tfY2FsbGVyKzB4YjEvMHgyYjAKWyAgIDM1LjgxOTU0NF0g ID8gcnRubF9jYWxjaXQuaXNyYS4zMCsweGUwLzB4ZTAKWyAgIDM1LjgyMDIzMV0gIG5ldGxpbmtf cmN2X3NrYisweGNlLzB4MTAwClsgICAzNS44MjA3NDRdICBuZXRsaW5rX3VuaWNhc3QrMHgxNjQv MHgyMjAKWyAgIDM1LjgyMTUwMF0gIG5ldGxpbmtfc2VuZG1zZysweDI5My8weDM3MApbICAgMzUu ODIyMDQwXSAgc29ja19zZW5kbXNnKzB4MzAvMHg0MApbICAgMzUuODIyNTA4XSAgX19fc3lzX3Nl bmRtc2crMHgyYzUvMHgyZTAKWyAgIDM1LjgyMzE0OV0gID8gcGFnZWNhY2hlX2dldF9wYWdlKzB4 MjcvMHgyMjAKWyAgIDM1LjgyMzcxNF0gID8gZmlsZW1hcF9mYXVsdCsweGEyLzB4NjQwClsgICAz NS44MjQ0MjNdICA/IHBhZ2VfYWRkX2ZpbGVfcm1hcCsweDEwOC8weDIwMApbICAgMzUuODI1MDY1 XSAgPyBhbGxvY19zZXRfcHRlKzB4MmFhLzB4NTMwClsgICAzNS44MjU1ODVdICA/IGZpbmlzaF9m YXVsdCsweDRlLzB4NzAKWyAgIDM1LjgyNjE0MF0gID8gX19oYW5kbGVfbW1fZmF1bHQrMHhiYzEv MHgxMGQwClsgICAzNS44MjY3MjNdICA/IF9fc3lzX3NlbmRtc2crMHg0MS8weDcwClsgICAzNS44 MjcyMzBdICBfX3N5c19zZW5kbXNnKzB4NDEvMHg3MApbICAgMzUuODI3NzEwXSAgZG9fc3lzY2Fs bF82NCsweDY4LzB4MTIwClsgICAzNS44MjgxOTVdICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3 ZnJhbWUrMHgzZC8weGEyClsgICAzNS44Mjg4NTldIFJJUDogMDAzMzoweDdmM2QwY2E0ZGE2Nwpb ICAgMzUuODI5MzMxXSBSU1A6IDAwMmI6MDAwMDdmZmM5ZjI4NDMzOCBFRkxBR1M6IDAwMDAwMjQ2 IE9SSUdfUkFYOgowMDAwMDAwMDAwMDAwMDJlClsgICAzNS44MzAzMDRdIFJBWDogZmZmZmZmZmZm ZmZmZmZkYSBSQlg6IDAwMDA3ZmZjOWYyODQ0NjAgUkNYOiAwMDAwN2YzZDBjYTRkYTY3ClsgICAz NS44MzEyNDddIFJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDAwMDA3ZmZjOWYyODQzYjAgUkRJ OiAwMDAwMDAwMDAwMDAwMDAzClsgICAzNS44MzIxNjddIFJCUDogMDAwMDAwMDA1YWE2YTdhOSBS MDg6IDAwMDAwMDAwMDAwMDAwMDEgUjA5OiAwMDAwMDAwMDAwMDAwMDAwClsgICAzNS44MzMwNzVd IFIxMDogMDAwMDAwMDAwMDAwMDVmMSBSMTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAwMDAwMDAw MDAwMDAwMDAwClsgICAzNS44MzM5OTddIFIxMzogMDAwMDdmZmM5ZjI4ODRjMCBSMTQ6IDAwMDAw MDAwMDAwMDAwMDEgUjE1OiAwMDAwMDAwMDAwNjc0NjQwClsgICAzNS44MzQ5MjNdIENvZGU6IDI0 IDMwIGJiIDAxIDAwIDAwIDAwIDQ1IDMxIGY2IGViIDVlIDhiIDUwIDA4IDgzIGMyIDA3IDgzIGUy CmZjIDgzIGMyIDcwIDQ5IDhiIDA3IDQ4IDhiIDQwIDcwIDQ4IDg1IGMwIDc0IDEwIDQ4IDg5IDE0 IDI0IDRjIDg5IGZmIDxmZj4gZDAgNDgKOGIgMTQgMjQgNDggMDEgYzIgNDkgMDEgZDYgNDUgODUg ZWQgNzQgMDUgNDEgODMgNDcgMmMKWyAgIDM1LjgzNzQ0Ml0gUklQOiB0Y2ZfYWN0aW9uX2luaXQr MHg5MC8weDE5MCBSU1A6IGZmZmZiOGVkYzA2OGI5YTAKWyAgIDM1LjgzODI5MV0gLS0tWyBlbmQg dHJhY2UgYTA5NWMwNmVlNGI5N2EyNiBdLS0tCgpGaXhlczogZDBmNmRkOGE5MTRmICgibmV0L3Nj aGVkOiBJbnRyb2R1Y2UgYWN0X3R1bm5lbF9rZXkiKQpTaWduZWQtb2ZmLWJ5OiBSb21hbiBNYXNo YWsgPG1ydkBtb2phdGF0dS5jb20+CkFja2VkLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25n QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9zY2hlZC9hY3RfdHVubmVsX2tleS5jIHwgMSArCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvYWN0X3R1bm5lbF9r ZXkuYyBiL25ldC9zY2hlZC9hY3RfdHVubmVsX2tleS5jCmluZGV4IDMwYzk2Mjc0YzYzOC4uMjJi ZjFhMzc2YjkxIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvYWN0X3R1bm5lbF9rZXkuYworKysgYi9u ZXQvc2NoZWQvYWN0X3R1bm5lbF9rZXkuYwpAQCAtMTUzLDYgKzE1Myw3IEBAIHN0YXRpYyBpbnQg dHVubmVsX2tleV9pbml0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5sYXR0ciAqbmxhLAogCQlt ZXRhZGF0YS0+dS50dW5faW5mby5tb2RlIHw9IElQX1RVTk5FTF9JTkZPX1RYOwogCQlicmVhazsK IAlkZWZhdWx0OgorCQlyZXQgPSAtRUlOVkFMOwogCQlnb3RvIGVycl9vdXQ7CiAJfQogCi0tIAoy LjE0LjMKCgpGcm9tIDYwMWI4YmRlZmIwMDBkYTk2MDNiMWM2MGE0ZDk4ZWQwNjQ4NWNiMDQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEd1aWxsYXVtZSBOYXVsdCA8Zy5uYXVsdEBhbHBo YWxpbmsuZnI+CkRhdGU6IFR1ZSwgMjAgTWFyIDIwMTggMTY6NDk6MjYgKzAxMDAKU3ViamVjdDog W1BBVENIIDE4LzUzXSBwcHA6IGF2b2lkIGxvb3AgaW4geG1pdCByZWN1cnNpb24gZGV0ZWN0aW9u IGNvZGUKClsgVXBzdHJlYW0gY29tbWl0IDZkMDY2NzM0ZTlmMDljZGVhNGEzYjljYjc2MTM2ZGIz ZjI5Y2ZiMDIgXQoKV2UgYWxyZWFkeSBkZXRlY3Qgc2l0dWF0aW9ucyB3aGVyZSBhIFBQUCBjaGFu bmVsIHNlbmRzIHBhY2tldHMgYmFjayB0bwppdHMgdXBwZXIgUFBQIGRldmljZS4gV2hpbGUgdGhp cyBpcyBlbm91Z2ggdG8gYXZvaWQgZGVhZGxvY2tpbmcgb24geG1pdApsb2NrcywgdGhpcyBkb2Vz bid0IHByZXZlbnQgcGFja2V0cyBmcm9tIGxvb3BpbmcgYmV0d2VlbiB0aGUgY2hhbm5lbAphbmQg dGhlIHVuaXQuCgpUaGUgcHJvYmxlbSBpcyB0aGF0IHBwcF9zdGFydF94bWl0KCkgZW5xdWV1ZXMg cGFja2V0cyBpbiBwcHAtPmZpbGUueHEKYmVmb3JlIGNoZWNraW5nIGZvciB4bWl0IHJlY3Vyc2lv bi4gVGhlcmVmb3JlLCBfX3BwcF94bWl0X3Byb2Nlc3MoKQptaWdodCBkZXF1ZXVlIGEgcGFja2V0 IGZyb20gcHBwLT5maWxlLnhxIGFuZCBzZW5kIGl0IG9uIHRoZSBjaGFubmVsCndoaWNoLCBpbiB0 dXJuLCBsb29wcyBpdCBiYWNrIG9uIHRoZSB1bml0LiBUaGVuIHBwcF9zdGFydF94bWl0KCkKcXVl dWVzIHRoZSBwYWNrZXQgYmFjayB0byBwcHAtPmZpbGUueHEgYW5kIF9fcHBwX3htaXRfcHJvY2Vz cygpIHBpY2tzCml0IHVwIGFuZCBzZW5kcyBpdCBhZ2FpbiB0aHJvdWdoIHRoZSBjaGFubmVsLiBU aGVyZWZvcmUsIHRoZSBwYWNrZXQKd2lsbCBsb29wIGJldHdlZW4gX19wcHBfeG1pdF9wcm9jZXNz KCkgYW5kIHBwcF9zdGFydF94bWl0KCkgdW50aWwgc29tZQpvdGhlciBwYXJ0IG9mIHRoZSB4bWl0 IHBhdGggZHJvcHMgaXQuCgpGb3IgTDJUUCwgd2UgcmFwaWRseSBmaWxsIHRoZSBza2IncyBoZWFk cm9vbSBhbmQgcHBwb2wydHBfeG1pdCgpIGRyb3BzCnRoZSBwYWNrZXQgYWZ0ZXIgYSBmZXcgaXRl cmF0aW9ucy4gQnV0IFBQVFAgcmVhbGxvY2F0ZXMgdGhlIGhlYWRyb29tCmlmIG5lY2Vzc2FyeSwg bGV0dGluZyB0aGUgbG9vcCBydW4gYW5kIGV4aGF1c3QgdGhlIG1hY2hpbmUgcmVzb3VyY2VzCihh cyByZXBvcnRlZCBpbiBodHRwczovL2J1Z3ppbGxhLmtlcm5lbC5vcmcvc2hvd19idWcuY2dpP2lk PTE5OTEwOSkuCgpGaXggdGhpcyBieSBsZXR0aW5nIF9fcHBwX3htaXRfcHJvY2VzcygpIGVucXVl dWUgdGhlIHNrYiB0bwpwcHAtPmZpbGUueHEsIHNvIHRoYXQgd2UgY2FuIGNoZWNrIGZvciByZWN1 cnNpb24gYmVmb3JlIGFkZGluZyBpdCB0bwp0aGUgcXVldWUuIE5vdyBwcHBfeG1pdF9wcm9jZXNz KCkgY2FuIGRyb3AgdGhlIHBhY2tldCB3aGVuIHJlY3Vyc2lvbiBpcwpkZXRlY3RlZC4KCl9fcHBw X2NoYW5uZWxfcHVzaCgpIGlzIGEgYml0IHNwZWNpYWwuIEl0IGNhbGxzIF9fcHBwX3htaXRfcHJv Y2VzcygpCndpdGhvdXQgaGF2aW5nIGFueSBhY3R1YWwgcGFja2V0IHRvIHNlbmQuIFRoaXMgaXMg dXNlZCBieQpwcHBfb3V0cHV0X3dha2V1cCgpIHRvIHJlLWVuYWJsZSB0cmFuc21pc3Npb24gb24g dGhlIHBhcmVudCB1bml0IChmb3IKaW1wbGVtZW50YXRpb25zIGxpa2UgcHBwX2FzeW5jLmMsIHdo ZXJlIHRoZSAuc3RhcnRfeG1pdCgpIGZ1bmN0aW9uCm1pZ2h0IG5vdCBjb25zdW1lIHRoZSBza2Is IGxlYXZpbmcgaXQgaW4gcHBwLT54bWl0X3BlbmRpbmcgYW5kCmRpc2FibGluZyB0cmFuc21pc3Np b24pLgpUaGVyZWZvcmUsIF9fcHBwX3htaXRfcHJvY2VzcygpIG5lZWRzIHRvIGhhbmRsZSB0aGUg Y2FzZSB3aGVyZSBza2IgaXMKTlVMTCwgZGVxdWV1aW5nIGFzIG1hbnkgcGFja2V0cyBhcyBwb3Nz aWJsZSBmcm9tIHBwcC0+ZmlsZS54cS4KClJlcG9ydGVkLWJ5OiB4dSBoZW5nIDx4dWhlbmczMzNA em9oby5jb20+CkZpeGVzOiA1NTQ1NGE1NjU4MzYgKCJwcHA6IGF2b2lkIGRlYWxvY2sgb24gcmVj dXJzaXZlIHhtaXQiKQpTaWduZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxw aGFsaW5rLmZyPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMgfCAyNiArKysrKysrKysr KysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDEyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jIGIv ZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMKaW5kZXggOWY3OWY5Mjc0YzUwLi5kMzcxODNh ZWMzMTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jCisrKyBiL2Ry aXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jCkBAIC0yNTcsNyArMjU3LDcgQEAgc3RydWN0IHBw cF9uZXQgewogLyogUHJvdG90eXBlcy4gKi8KIHN0YXRpYyBpbnQgcHBwX3VuYXR0YWNoZWRfaW9j dGwoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgcHBwX2ZpbGUgKnBmLAogCQkJc3RydWN0IGZpbGUg KmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsKLXN0YXRpYyB2b2lk IHBwcF94bWl0X3Byb2Nlc3Moc3RydWN0IHBwcCAqcHBwKTsKK3N0YXRpYyB2b2lkIHBwcF94bWl0 X3Byb2Nlc3Moc3RydWN0IHBwcCAqcHBwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKIHN0YXRpYyB2 b2lkIHBwcF9zZW5kX2ZyYW1lKHN0cnVjdCBwcHAgKnBwcCwgc3RydWN0IHNrX2J1ZmYgKnNrYik7 CiBzdGF0aWMgdm9pZCBwcHBfcHVzaChzdHJ1Y3QgcHBwICpwcHApOwogc3RhdGljIHZvaWQgcHBw X2NoYW5uZWxfcHVzaChzdHJ1Y3QgY2hhbm5lbCAqcGNoKTsKQEAgLTUxMywxMyArNTEzLDEyIEBA IHN0YXRpYyBzc2l6ZV90IHBwcF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBf X3VzZXIgKmJ1ZiwKIAkJZ290byBvdXQ7CiAJfQogCi0Jc2tiX3F1ZXVlX3RhaWwoJnBmLT54cSwg c2tiKTsKLQogCXN3aXRjaCAocGYtPmtpbmQpIHsKIAljYXNlIElOVEVSRkFDRToKLQkJcHBwX3ht aXRfcHJvY2VzcyhQRl9UT19QUFAocGYpKTsKKwkJcHBwX3htaXRfcHJvY2VzcyhQRl9UT19QUFAo cGYpLCBza2IpOwogCQlicmVhazsKIAljYXNlIENIQU5ORUw6CisJCXNrYl9xdWV1ZV90YWlsKCZw Zi0+eHEsIHNrYik7CiAJCXBwcF9jaGFubmVsX3B1c2goUEZfVE9fQ0hBTk5FTChwZikpOwogCQli cmVhazsKIAl9CkBAIC0xMjY3LDggKzEyNjYsOCBAQCBwcHBfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXB1dF91bmFsaWduZWRfYmUxNihw cm90bywgcHApOwogCiAJc2tiX3NjcnViX3BhY2tldChza2IsICFuZXRfZXEocHBwLT5wcHBfbmV0 LCBkZXZfbmV0KGRldikpKTsKLQlza2JfcXVldWVfdGFpbCgmcHBwLT5maWxlLnhxLCBza2IpOwot CXBwcF94bWl0X3Byb2Nlc3MocHBwKTsKKwlwcHBfeG1pdF9wcm9jZXNzKHBwcCwgc2tiKTsKKwog CXJldHVybiBORVRERVZfVFhfT0s7CiAKICBvdXRmOgpAQCAtMTQyMCwxMyArMTQxOSwxNCBAQCBz dGF0aWMgdm9pZCBwcHBfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKICAqLwogCiAvKiBD YWxsZWQgdG8gZG8gYW55IHdvcmsgcXVldWVkIHVwIG9uIHRoZSB0cmFuc21pdCBzaWRlIHRoYXQg Y2FuIG5vdyBiZSBkb25lICovCi1zdGF0aWMgdm9pZCBfX3BwcF94bWl0X3Byb2Nlc3Moc3RydWN0 IHBwcCAqcHBwKQorc3RhdGljIHZvaWQgX19wcHBfeG1pdF9wcm9jZXNzKHN0cnVjdCBwcHAgKnBw cCwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKLQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOwotCiAJcHBw X3htaXRfbG9jayhwcHApOwogCWlmICghcHBwLT5jbG9zaW5nKSB7CiAJCXBwcF9wdXNoKHBwcCk7 CisKKwkJaWYgKHNrYikKKwkJCXNrYl9xdWV1ZV90YWlsKCZwcHAtPmZpbGUueHEsIHNrYik7CiAJ CXdoaWxlICghcHBwLT54bWl0X3BlbmRpbmcgJiYKIAkJICAgICAgIChza2IgPSBza2JfZGVxdWV1 ZSgmcHBwLT5maWxlLnhxKSkpCiAJCQlwcHBfc2VuZF9mcmFtZShwcHAsIHNrYik7CkBAIC0xNDQw LDcgKzE0NDAsNyBAQCBzdGF0aWMgdm9pZCBfX3BwcF94bWl0X3Byb2Nlc3Moc3RydWN0IHBwcCAq cHBwKQogCXBwcF94bWl0X3VubG9jayhwcHApOwogfQogCi1zdGF0aWMgdm9pZCBwcHBfeG1pdF9w cm9jZXNzKHN0cnVjdCBwcHAgKnBwcCkKK3N0YXRpYyB2b2lkIHBwcF94bWl0X3Byb2Nlc3Moc3Ry dWN0IHBwcCAqcHBwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCWxvY2FsX2JoX2Rpc2FibGUo KTsKIApAQCAtMTQ0OCw3ICsxNDQ4LDcgQEAgc3RhdGljIHZvaWQgcHBwX3htaXRfcHJvY2Vzcyhz dHJ1Y3QgcHBwICpwcHApCiAJCWdvdG8gZXJyOwogCiAJKCp0aGlzX2NwdV9wdHIocHBwLT54bWl0 X3JlY3Vyc2lvbikpKys7Ci0JX19wcHBfeG1pdF9wcm9jZXNzKHBwcCk7CisJX19wcHBfeG1pdF9w cm9jZXNzKHBwcCwgc2tiKTsKIAkoKnRoaXNfY3B1X3B0cihwcHAtPnhtaXRfcmVjdXJzaW9uKSkt LTsKIAogCWxvY2FsX2JoX2VuYWJsZSgpOwpAQCAtMTQ1OCw2ICsxNDU4LDggQEAgc3RhdGljIHZv aWQgcHBwX3htaXRfcHJvY2VzcyhzdHJ1Y3QgcHBwICpwcHApCiBlcnI6CiAJbG9jYWxfYmhfZW5h YmxlKCk7CiAKKwlrZnJlZV9za2Ioc2tiKTsKKwogCWlmIChuZXRfcmF0ZWxpbWl0KCkpCiAJCW5l dGRldl9lcnIocHBwLT5kZXYsICJyZWN1cnNpb24gZGV0ZWN0ZWRcbiIpOwogfQpAQCAtMTk0Miw3 ICsxOTQ0LDcgQEAgc3RhdGljIHZvaWQgX19wcHBfY2hhbm5lbF9wdXNoKHN0cnVjdCBjaGFubmVs ICpwY2gpCiAJaWYgKHNrYl9xdWV1ZV9lbXB0eSgmcGNoLT5maWxlLnhxKSkgewogCQlwcHAgPSBw Y2gtPnBwcDsKIAkJaWYgKHBwcCkKLQkJCV9fcHBwX3htaXRfcHJvY2VzcyhwcHApOworCQkJX19w cHBfeG1pdF9wcm9jZXNzKHBwcCwgTlVMTCk7CiAJfQogfQogCi0tIAoyLjE0LjMKCgpGcm9tIGZi Mjc2ZGE3MzNhOGEzMmJmNjA3NmRhMGVmZDY5YjUwODMzZWI3MTAgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFBhdWwgQmxha2V5IDxwYXVsYkBtZWxsYW5veC5jb20+CkRhdGU6IFN1biwg NCBNYXIgMjAxOCAxNzoyOTo0OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTkvNTNdIHJoYXNodGFi bGU6IEZpeCByaGxpc3QgZHVwbGljYXRlcyBpbnNlcnRpb24KClsgVXBzdHJlYW0gY29tbWl0IGQz ZGNmOGViNjE1NTM3NTI2YmQ0MmZmMjdhMDgxZDQ2ZDMzNzgxNmUgXQoKV2hlbiBpbnNlcnRpbmcg ZHVwbGljYXRlIG9iamVjdHMgKHRob3NlIHdpdGggdGhlIHNhbWUga2V5KSwKY3VycmVudCByaGxp c3QgaW1wbGVtZW50YXRpb24gbWVzc2VzIHVwIHRoZSBjaGFpbiBwb2ludGVycyBieQp1cGRhdGlu ZyB0aGUgYnVja2V0IHBvaW50ZXIgaW5zdGVhZCBvZiBwcmV2IG5leHQgcG9pbnRlciB0byB0aGUK bmV3bHkgaW5zZXJ0ZWQgbm9kZS4gVGhpcyBjYXVzZXMgbWlzc2luZyBlbGVtZW50cyBvbiByZW1v dmFsIGFuZAp0cmF2ZXNhbC4KCkZpeCB0aGF0IGJ5IHByb3Blcmx5IHVwZGF0aW5nIHBwcmV2IHBv aW50ZXIgdG8gcG9pbnQgdG8KdGhlIGNvcnJlY3Qgcmhhc2hfaGVhZCBuZXh0IHBvaW50ZXIuCgpJ c3N1ZTogMTI0MTA3NgpDaGFuZ2UtSWQ6IEk4NmIyYzE0MGJjYjRhZWIxMGI3MGE3MmEyNjdmZjU5 MGJiMmIxN2U3CkZpeGVzOiBjYTI2ODkzZjA1ZTggKCdyaGFzaHRhYmxlOiBBZGQgcmhsaXN0IGlu dGVyZmFjZScpClNpZ25lZC1vZmYtYnk6IFBhdWwgQmxha2V5IDxwYXVsYkBtZWxsYW5veC5jb20+ CkFja2VkLWJ5OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNs dWRlL2xpbnV4L3JoYXNodGFibGUuaCB8IDQgKysrLQogbGliL3JoYXNodGFibGUuYyAgICAgICAg ICAgfCA0ICsrKy0KIDIgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcmhhc2h0YWJsZS5oIGIvaW5jbHVkZS9s aW51eC9yaGFzaHRhYmxlLmgKaW5kZXggMzYxYzA4ZTM1ZGJjLi43ZmQ1MTRmMzZlNzQgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbGludXgvcmhhc2h0YWJsZS5oCisrKyBiL2luY2x1ZGUvbGludXgvcmhh c2h0YWJsZS5oCkBAIC03NTAsOCArNzUwLDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCAqX19yaGFz aHRhYmxlX2luc2VydF9mYXN0KAogCQlpZiAoIWtleSB8fAogCQkgICAgKHBhcmFtcy5vYmpfY21w Zm4gPwogCQkgICAgIHBhcmFtcy5vYmpfY21wZm4oJmFyZywgcmh0X29iaihodCwgaGVhZCkpIDoK LQkJICAgICByaGFzaHRhYmxlX2NvbXBhcmUoJmFyZywgcmh0X29iaihodCwgaGVhZCkpKSkKKwkJ ICAgICByaGFzaHRhYmxlX2NvbXBhcmUoJmFyZywgcmh0X29iaihodCwgaGVhZCkpKSkgeworCQkJ cHByZXYgPSAmaGVhZC0+bmV4dDsKIAkJCWNvbnRpbnVlOworCQl9CiAKIAkJZGF0YSA9IHJodF9v YmooaHQsIGhlYWQpOwogCmRpZmYgLS1naXQgYS9saWIvcmhhc2h0YWJsZS5jIGIvbGliL3JoYXNo dGFibGUuYwppbmRleCBkZGQ3ZGRlODdjM2MuLmI3MzRjZTczMWE3YSAxMDA2NDQKLS0tIGEvbGli L3JoYXNodGFibGUuYworKysgYi9saWIvcmhhc2h0YWJsZS5jCkBAIC01MzcsOCArNTM3LDEwIEBA IHN0YXRpYyB2b2lkICpyaGFzaHRhYmxlX2xvb2t1cF9vbmUoc3RydWN0IHJoYXNodGFibGUgKmh0 LAogCQlpZiAoIWtleSB8fAogCQkgICAgKGh0LT5wLm9ial9jbXBmbiA/CiAJCSAgICAgaHQtPnAu b2JqX2NtcGZuKCZhcmcsIHJodF9vYmooaHQsIGhlYWQpKSA6Ci0JCSAgICAgcmhhc2h0YWJsZV9j b21wYXJlKCZhcmcsIHJodF9vYmooaHQsIGhlYWQpKSkpCisJCSAgICAgcmhhc2h0YWJsZV9jb21w YXJlKCZhcmcsIHJodF9vYmooaHQsIGhlYWQpKSkpIHsKKwkJCXBwcmV2ID0gJmhlYWQtPm5leHQ7 CiAJCQljb250aW51ZTsKKwkJfQogCiAJCWlmICghaHQtPnJobGlzdCkKIAkJCXJldHVybiByaHRf b2JqKGh0LCBoZWFkKTsKLS0gCjIuMTQuMwoKCkZyb20gMDY1ZDA0NDRhM2NhZjQyOGNiYWQxYzcx NmM3ZTMzZTI2NTFkZjVjMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGF1bCBCbGFr ZXkgPHBhdWxiQG1lbGxhbm94LmNvbT4KRGF0ZTogU3VuLCA0IE1hciAyMDE4IDE3OjI5OjQ5ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAyMC81M10gdGVzdF9yaGFzaHRhYmxlOiBhZGQgdGVzdCBjYXNl IGZvciByaGx0YWJsZSB3aXRoCiBkdXBsaWNhdGUgb2JqZWN0cwoKWyBVcHN0cmVhbSBjb21taXQg NDk5YWMzYjYwZjY1N2RhZTgyMDU1ZmM4MWM3YjAxZTYyNDJhYzliYyBdCgpUcmllcyB0byBpbnNl cnQgZHVwbGljYXRlcyBpbiB0aGUgbWlkZGxlIG9mIGJ1Y2tldCdzIGNoYWluOgpidWNrZXQgMTog IFtbdmFsIDIxICh0aWQ9MSldXSAtPiBbWyB2YWwgMSAodGlkPTIpLCAgdmFsIDEgKHRpZD0wKSBd XQoKUmV1c2VzIHRpZCB0byBkaXN0aW5ndWlzaCB0aGUgZWxlbWVudHMgaW5zZXJ0aW9uIG9yZGVy LgoKU2lnbmVkLW9mZi1ieTogUGF1bCBCbGFrZXkgPHBhdWxiQG1lbGxhbm94LmNvbT4KQWNrZWQt Ynk6IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGxpYi90ZXN0X3Jo YXNodGFibGUuYyB8IDEzNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEzNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvbGliL3Rlc3Rfcmhhc2h0YWJsZS5jIGIvbGliL3Rlc3Rfcmhhc2h0YWJsZS5jCmluZGV4IDhl ODNjYmRjMDQ5Yy4uNmYyZTNkYzQ0YTgwIDEwMDY0NAotLS0gYS9saWIvdGVzdF9yaGFzaHRhYmxl LmMKKysrIGIvbGliL3Rlc3Rfcmhhc2h0YWJsZS5jCkBAIC03OSw2ICs3OSwyMSBAQCBzdHJ1Y3Qg dGhyZWFkX2RhdGEgewogCXN0cnVjdCB0ZXN0X29iaiAqb2JqczsKIH07CiAKK3N0YXRpYyB1MzIg bXlfaGFzaGZuKGNvbnN0IHZvaWQgKmRhdGEsIHUzMiBsZW4sIHUzMiBzZWVkKQoreworCWNvbnN0 IHN0cnVjdCB0ZXN0X29ial9yaGwgKm9iaiA9IGRhdGE7CisKKwlyZXR1cm4gKG9iai0+dmFsdWUu aWQgJSAxMCkgPDwgUkhUX0hBU0hfUkVTRVJWRURfU1BBQ0U7Cit9CisKK3N0YXRpYyBpbnQgbXlf Y21wZm4oc3RydWN0IHJoYXNodGFibGVfY29tcGFyZV9hcmcgKmFyZywgY29uc3Qgdm9pZCAqb2Jq KQoreworCWNvbnN0IHN0cnVjdCB0ZXN0X29ial9yaGwgKnRlc3Rfb2JqID0gb2JqOworCWNvbnN0 IHN0cnVjdCB0ZXN0X29ial92YWwgKnZhbCA9IGFyZy0+a2V5OworCisJcmV0dXJuIHRlc3Rfb2Jq LT52YWx1ZS5pZCAtIHZhbC0+aWQ7Cit9CisKIHN0YXRpYyBzdHJ1Y3Qgcmhhc2h0YWJsZV9wYXJh bXMgdGVzdF9yaHRfcGFyYW1zID0gewogCS5oZWFkX29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCB0 ZXN0X29iaiwgbm9kZSksCiAJLmtleV9vZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3QgdGVzdF9vYmos IHZhbHVlKSwKQEAgLTg3LDYgKzEwMiwxNyBAQCBzdGF0aWMgc3RydWN0IHJoYXNodGFibGVfcGFy YW1zIHRlc3Rfcmh0X3BhcmFtcyA9IHsKIAkubnVsbHNfYmFzZSA9ICgzVSA8PCBSSFRfQkFTRV9T SElGVCksCiB9OwogCitzdGF0aWMgc3RydWN0IHJoYXNodGFibGVfcGFyYW1zIHRlc3Rfcmh0X3Bh cmFtc19kdXAgPSB7CisJLmhlYWRfb2Zmc2V0ID0gb2Zmc2V0b2Yoc3RydWN0IHRlc3Rfb2JqX3Jo bCwgbGlzdF9ub2RlKSwKKwkua2V5X29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCB0ZXN0X29ial9y aGwsIHZhbHVlKSwKKwkua2V5X2xlbiA9IHNpemVvZihzdHJ1Y3QgdGVzdF9vYmpfdmFsKSwKKwku aGFzaGZuID0gamhhc2gsCisJLm9ial9oYXNoZm4gPSBteV9oYXNoZm4sCisJLm9ial9jbXBmbiA9 IG15X2NtcGZuLAorCS5uZWxlbV9oaW50ID0gMTI4LAorCS5hdXRvbWF0aWNfc2hyaW5raW5nID0g ZmFsc2UsCit9OworCiBzdGF0aWMgc3RydWN0IHNlbWFwaG9yZSBwcmVzdGFydF9zZW07CiBzdGF0 aWMgc3RydWN0IHNlbWFwaG9yZSBzdGFydHVwX3NlbSA9IF9fU0VNQVBIT1JFX0lOSVRJQUxJWkVS KHN0YXJ0dXBfc2VtLCAwKTsKIApAQCAtNDY5LDYgKzQ5NSwxMTIgQEAgc3RhdGljIGludCBfX2lu aXQgdGVzdF9yaGFzaHRhYmxlX21heChzdHJ1Y3QgdGVzdF9vYmogKmFycmF5LAogCXJldHVybiBl cnI7CiB9CiAKK3N0YXRpYyB1bnNpZ25lZCBpbnQgX19pbml0IHByaW50X2h0KHN0cnVjdCByaGx0 YWJsZSAqcmhsdCkKK3sKKwlzdHJ1Y3Qgcmhhc2h0YWJsZSAqaHQ7CisJY29uc3Qgc3RydWN0IGJ1 Y2tldF90YWJsZSAqdGJsOworCWNoYXIgYnVmZls1MTJdID0gIiI7CisJdW5zaWduZWQgaW50IGks IGNudCA9IDA7CisKKwlodCA9ICZyaGx0LT5odDsKKwl0YmwgPSByaHRfZGVyZWZlcmVuY2UoaHQt PnRibCwgaHQpOworCWZvciAoaSA9IDA7IGkgPCB0YmwtPnNpemU7IGkrKykgeworCQlzdHJ1Y3Qg cmhhc2hfaGVhZCAqcG9zLCAqbmV4dDsKKwkJc3RydWN0IHRlc3Rfb2JqX3JobCAqcDsKKworCQlw b3MgPSByaHRfZGVyZWZlcmVuY2UodGJsLT5idWNrZXRzW2ldLCBodCk7CisJCW5leHQgPSAhcmh0 X2lzX2FfbnVsbHMocG9zKSA/IHJodF9kZXJlZmVyZW5jZShwb3MtPm5leHQsIGh0KSA6IE5VTEw7 CisKKwkJaWYgKCFyaHRfaXNfYV9udWxscyhwb3MpKSB7CisJCQlzcHJpbnRmKGJ1ZmYsICIlc1xu YnVja2V0WyVkXSAtPiAiLCBidWZmLCBpKTsKKwkJfQorCisJCXdoaWxlICghcmh0X2lzX2FfbnVs bHMocG9zKSkgeworCQkJc3RydWN0IHJobGlzdF9oZWFkICpsaXN0ID0gY29udGFpbmVyX29mKHBv cywgc3RydWN0IHJobGlzdF9oZWFkLCByaGVhZCk7CisJCQlzcHJpbnRmKGJ1ZmYsICIlc1tbIiwg YnVmZik7CisJCQlkbyB7CisJCQkJcG9zID0gJmxpc3QtPnJoZWFkOworCQkJCWxpc3QgPSByaHRf ZGVyZWZlcmVuY2UobGlzdC0+bmV4dCwgaHQpOworCQkJCXAgPSByaHRfb2JqKGh0LCBwb3MpOwor CisJCQkJc3ByaW50ZihidWZmLCAiJXMgdmFsICVkICh0aWQ9JWQpJXMiLCBidWZmLCBwLT52YWx1 ZS5pZCwgcC0+dmFsdWUudGlkLAorCQkJCQlsaXN0PyAiLCAiIDogIiAiKTsKKwkJCQljbnQrKzsK KwkJCX0gd2hpbGUgKGxpc3QpOworCisJCQlwb3MgPSBuZXh0LAorCQkJbmV4dCA9ICFyaHRfaXNf YV9udWxscyhwb3MpID8KKwkJCQlyaHRfZGVyZWZlcmVuY2UocG9zLT5uZXh0LCBodCkgOiBOVUxM OworCisJCQlzcHJpbnRmKGJ1ZmYsICIlc11dJXMiLCBidWZmLCAhcmh0X2lzX2FfbnVsbHMocG9z KSA/ICIgLT4gIiA6ICIiKTsKKwkJfQorCX0KKwlwcmludGsoS0VSTl9FUlIgIlxuLS0tLSBodDog LS0tLSVzXG4tLS0tLS0tLS0tLS0tXG4iLCBidWZmKTsKKworCXJldHVybiBjbnQ7Cit9CisKK3N0 YXRpYyBpbnQgX19pbml0IHRlc3RfaW5zZXJ0X2R1cChzdHJ1Y3QgdGVzdF9vYmpfcmhsICpyaGxf dGVzdF9vYmplY3RzLAorCQkJCSAgaW50IGNudCwgYm9vbCBzbG93KQoreworCXN0cnVjdCByaGx0 YWJsZSByaGx0OworCXVuc2lnbmVkIGludCBpLCByZXQ7CisJY29uc3QgY2hhciAqa2V5OworCWlu dCBlcnIgPSAwOworCisJZXJyID0gcmhsdGFibGVfaW5pdCgmcmhsdCwgJnRlc3Rfcmh0X3BhcmFt c19kdXApOworCWlmIChXQVJOX09OKGVycikpCisJCXJldHVybiBlcnI7CisKKwlmb3IgKGkgPSAw OyBpIDwgY250OyBpKyspIHsKKwkJcmhsX3Rlc3Rfb2JqZWN0c1tpXS52YWx1ZS50aWQgPSBpOwor CQlrZXkgPSByaHRfb2JqKCZyaGx0Lmh0LCAmcmhsX3Rlc3Rfb2JqZWN0c1tpXS5saXN0X25vZGUu cmhlYWQpOworCQlrZXkgKz0gdGVzdF9yaHRfcGFyYW1zX2R1cC5rZXlfb2Zmc2V0OworCisJCWlm IChzbG93KSB7CisJCQllcnIgPSBQVFJfRVJSKHJoYXNodGFibGVfaW5zZXJ0X3Nsb3coJnJobHQu aHQsIGtleSwKKwkJCQkJCQkgICAgICZyaGxfdGVzdF9vYmplY3RzW2ldLmxpc3Rfbm9kZS5yaGVh ZCkpOworCQkJaWYgKGVyciA9PSAtRUFHQUlOKQorCQkJCWVyciA9IDA7CisJCX0gZWxzZQorCQkJ ZXJyID0gcmhsdGFibGVfaW5zZXJ0KCZyaGx0LAorCQkJCQkgICAgICAmcmhsX3Rlc3Rfb2JqZWN0 c1tpXS5saXN0X25vZGUsCisJCQkJCSAgICAgIHRlc3Rfcmh0X3BhcmFtc19kdXApOworCQlpZiAo V0FSTihlcnIsICJlcnJvciAlZCBvbiBlbGVtZW50ICVkLyVkICglcylcbiIsIGVyciwgaSwgY250 LCBzbG93PyAic2xvdyIgOiAiZmFzdCIpKQorCQkJZ290byBza2lwX3ByaW50OworCX0KKworCXJl dCA9IHByaW50X2h0KCZyaGx0KTsKKwlXQVJOKHJldCAhPSBjbnQsICJtaXNzaW5nIHJobHRhYmxl IGVsZW1lbnRzICglZCAhPSAlZCwgJXMpXG4iLCByZXQsIGNudCwgc2xvdz8gInNsb3ciIDogImZh c3QiKTsKKworc2tpcF9wcmludDoKKwlyaGx0YWJsZV9kZXN0cm95KCZyaGx0KTsKKworCXJldHVy biAwOworfQorCitzdGF0aWMgaW50IF9faW5pdCB0ZXN0X2luc2VydF9kdXBsaWNhdGVzX3J1bih2 b2lkKQoreworCXN0cnVjdCB0ZXN0X29ial9yaGwgcmhsX3Rlc3Rfb2JqZWN0c1szXSA9IHt9Owor CisJcHJfaW5mbygidGVzdCBpbnNlcnRpbmcgZHVwbGljYXRlc1xuIik7CisKKwkvKiB0d28gZGlm ZmVyZW50IHZhbHVlcyB0aGF0IG1hcCB0byBzYW1lIGJ1Y2tldCAqLworCXJobF90ZXN0X29iamVj dHNbMF0udmFsdWUuaWQgPSAxOworCXJobF90ZXN0X29iamVjdHNbMV0udmFsdWUuaWQgPSAyMTsK KworCS8qIGFuZCBhbm90aGVyIGR1cGxpY2F0ZSB3aXRoIHNhbWUgYXMgWzBdIHZhbHVlCisJICog d2hpY2ggd2lsbCBiZSBzZWNvbmQgb24gdGhlIGJ1Y2tldCBsaXN0ICovCisJcmhsX3Rlc3Rfb2Jq ZWN0c1syXS52YWx1ZS5pZCA9IHJobF90ZXN0X29iamVjdHNbMF0udmFsdWUuaWQ7CisKKwl0ZXN0 X2luc2VydF9kdXAocmhsX3Rlc3Rfb2JqZWN0cywgMiwgZmFsc2UpOworCXRlc3RfaW5zZXJ0X2R1 cChyaGxfdGVzdF9vYmplY3RzLCAzLCBmYWxzZSk7CisJdGVzdF9pbnNlcnRfZHVwKHJobF90ZXN0 X29iamVjdHMsIDIsIHRydWUpOworCXRlc3RfaW5zZXJ0X2R1cChyaGxfdGVzdF9vYmplY3RzLCAz LCB0cnVlKTsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IHRocmVhZF9sb29rdXBfdGVz dChzdHJ1Y3QgdGhyZWFkX2RhdGEgKnRkYXRhKQogewogCXVuc2lnbmVkIGludCBlbnRyaWVzID0g dGRhdGEtPmVudHJpZXM7CkBAIC02MTcsNiArNzQ5LDggQEAgc3RhdGljIGludCBfX2luaXQgdGVz dF9yaHRfaW5pdCh2b2lkKQogCWRvX2Rpdih0b3RhbF90aW1lLCBydW5zKTsKIAlwcl9pbmZvKCJB dmVyYWdlIHRlc3QgdGltZTogJWxsdVxuIiwgdG90YWxfdGltZSk7CiAKKwl0ZXN0X2luc2VydF9k dXBsaWNhdGVzX3J1bigpOworCiAJaWYgKCF0Y291bnQpCiAJCXJldHVybiAwOwogCi0tIAoyLjE0 LjMKCgpGcm9tIDhiZWE3ODI1MGFmMjVkZmEwNzI1ZWE4NjE2OWRiNjFhZTYyOTBiN2MgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRvbSBIZXJiZXJ0IDx0b21AcXVhbnRvbml1bS5uZXQ+ CkRhdGU6IFR1ZSwgMTMgTWFyIDIwMTggMTI6MDE6NDMgLTA3MDAKU3ViamVjdDogW1BBVENIIDIx LzUzXSBrY206IGxvY2sgbG93ZXIgc29ja2V0IGluIGtjbV9hdHRhY2gKClsgVXBzdHJlYW0gY29t bWl0IDJjYzY4M2U4OGMwYzk5M2FjMzcyMWQ5YjcwMmNiMDYzMGFiZTI4NzkgXQoKTmVlZCB0byBs b2NrIGxvd2VyIHNvY2tldCBpbiBvcmRlciB0byBwcm92aWRlIG11dHVhbCBleGNsdXNpb24Kd2l0 aCBrY21fdW5hdHRhY2guCgp2MjogQWRkIFJlcG9ydGVkLWJ5IGZvciBzeXpib3QKCkZpeGVzOiBh YjdhYzRlYjk4MzJlMzJhMDlmNGU4MDQgKCJrY206IEtlcm5lbCBDb25uZWN0aW9uIE11bHRpcGxl eG9yIG1vZHVsZSIpClJlcG9ydGVkLWJ5OiBzeXpib3QrZWE3NWMwZmZjZDM1M2QzMjUxNWYwNjRh YWViZWZjNTI3OWU2MTYxZUBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClNpZ25lZC1vZmYtYnk6 IFRvbSBIZXJiZXJ0IDx0b21AcXVhbnRvbml1bS5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQva2NtL2tjbXNvY2suYyB8IDMz ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIzIGlu c2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9rY20va2Ntc29j ay5jIGIvbmV0L2tjbS9rY21zb2NrLmMKaW5kZXggNGE4ZDQwN2Y4OTAyLi4zZjE1ZmZkMzU2ZGEg MTAwNjQ0Ci0tLSBhL25ldC9rY20va2Ntc29jay5jCisrKyBiL25ldC9rY20va2Ntc29jay5jCkBA IC0xMzgxLDI0ICsxMzgxLDMyIEBAIHN0YXRpYyBpbnQga2NtX2F0dGFjaChzdHJ1Y3Qgc29ja2V0 ICpzb2NrLCBzdHJ1Y3Qgc29ja2V0ICpjc29jaywKIAkJLnBhcnNlX21zZyA9IGtjbV9wYXJzZV9m dW5jX3N0cnBhcnNlciwKIAkJLnJlYWRfc29ja19kb25lID0ga2NtX3JlYWRfc29ja19kb25lLAog CX07Ci0JaW50IGVycjsKKwlpbnQgZXJyID0gMDsKIAogCWNzayA9IGNzb2NrLT5zazsKIAlpZiAo IWNzaykKIAkJcmV0dXJuIC1FSU5WQUw7CiAKKwlsb2NrX3NvY2soY3NrKTsKKwogCS8qIE9ubHkg YWxsb3cgVENQIHNvY2tldHMgdG8gYmUgYXR0YWNoZWQgZm9yIG5vdyAqLwogCWlmICgoY3NrLT5z a19mYW1pbHkgIT0gQUZfSU5FVCAmJiBjc2stPnNrX2ZhbWlseSAhPSBBRl9JTkVUNikgfHwKLQkg ICAgY3NrLT5za19wcm90b2NvbCAhPSBJUFBST1RPX1RDUCkKLQkJcmV0dXJuIC1FT1BOT1RTVVBQ OworCSAgICBjc2stPnNrX3Byb3RvY29sICE9IElQUFJPVE9fVENQKSB7CisJCWVyciA9IC1FT1BO T1RTVVBQOworCQlnb3RvIG91dDsKKwl9CiAKIAkvKiBEb24ndCBhbGxvdyBsaXN0ZW5lcnMgb3Ig Y2xvc2VkIHNvY2tldHMgKi8KLQlpZiAoY3NrLT5za19zdGF0ZSA9PSBUQ1BfTElTVEVOIHx8IGNz ay0+c2tfc3RhdGUgPT0gVENQX0NMT1NFKQotCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJaWYgKGNz ay0+c2tfc3RhdGUgPT0gVENQX0xJU1RFTiB8fCBjc2stPnNrX3N0YXRlID09IFRDUF9DTE9TRSkg eworCQllcnIgPSAtRU9QTk9UU1VQUDsKKwkJZ290byBvdXQ7CisJfQogCiAJcHNvY2sgPSBrbWVt X2NhY2hlX3phbGxvYyhrY21fcHNvY2twLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXBzb2NrKQotCQly ZXR1cm4gLUVOT01FTTsKKwlpZiAoIXBzb2NrKSB7CisJCWVyciA9IC1FTk9NRU07CisJCWdvdG8g b3V0OworCX0KIAogCXBzb2NrLT5tdXggPSBtdXg7CiAJcHNvY2stPnNrID0gY3NrOwpAQCAtMTQw Nyw3ICsxNDE1LDcgQEAgc3RhdGljIGludCBrY21fYXR0YWNoKHN0cnVjdCBzb2NrZXQgKnNvY2ss IHN0cnVjdCBzb2NrZXQgKmNzb2NrLAogCWVyciA9IHN0cnBfaW5pdCgmcHNvY2stPnN0cnAsIGNz aywgJmNiKTsKIAlpZiAoZXJyKSB7CiAJCWttZW1fY2FjaGVfZnJlZShrY21fcHNvY2twLCBwc29j ayk7Ci0JCXJldHVybiBlcnI7CisJCWdvdG8gb3V0OwogCX0KIAogCXdyaXRlX2xvY2tfYmgoJmNz ay0+c2tfY2FsbGJhY2tfbG9jayk7CkBAIC0xNDE5LDcgKzE0MjcsOCBAQCBzdGF0aWMgaW50IGtj bV9hdHRhY2goc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2tldCAqY3NvY2ssCiAJCXdy aXRlX3VubG9ja19iaCgmY3NrLT5za19jYWxsYmFja19sb2NrKTsKIAkJc3RycF9kb25lKCZwc29j ay0+c3RycCk7CiAJCWttZW1fY2FjaGVfZnJlZShrY21fcHNvY2twLCBwc29jayk7Ci0JCXJldHVy biAtRUFMUkVBRFk7CisJCWVyciA9IC1FQUxSRUFEWTsKKwkJZ290byBvdXQ7CiAJfQogCiAJcHNv Y2stPnNhdmVfZGF0YV9yZWFkeSA9IGNzay0+c2tfZGF0YV9yZWFkeTsKQEAgLTE0NTUsNyArMTQ2 NCwxMCBAQCBzdGF0aWMgaW50IGtjbV9hdHRhY2goc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0 IHNvY2tldCAqY3NvY2ssCiAJLyogU2NoZWR1bGUgUlggd29yayBpbiBjYXNlIHRoZXJlIGFyZSBh bHJlYWR5IGJ5dGVzIHF1ZXVlZCAqLwogCXN0cnBfY2hlY2tfcmN2KCZwc29jay0+c3RycCk7CiAK LQlyZXR1cm4gMDsKK291dDoKKwlyZWxlYXNlX3NvY2soY3NrKTsKKworCXJldHVybiBlcnI7CiB9 CiAKIHN0YXRpYyBpbnQga2NtX2F0dGFjaF9pb2N0bChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1 Y3Qga2NtX2F0dGFjaCAqaW5mbykKQEAgLTE1MDcsNiArMTUxOSw3IEBAIHN0YXRpYyB2b2lkIGtj bV91bmF0dGFjaChzdHJ1Y3Qga2NtX3Bzb2NrICpwc29jaykKIAogCWlmIChXQVJOX09OKHBzb2Nr LT5yeF9rY20pKSB7CiAJCXdyaXRlX3VubG9ja19iaCgmY3NrLT5za19jYWxsYmFja19sb2NrKTsK KwkJcmVsZWFzZV9zb2NrKGNzayk7CiAJCXJldHVybjsKIAl9CiAKLS0gCjIuMTQuMwoKCkZyb20g NmE3NDU4Mjk1YjQwODkyNGUxNmIzY2JhMjk1OTM4MmU2ZTY2N2ZiNiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogQWxleGV5IEtvZGFuZXYgPGFsZXhleS5rb2RhbmV2QG9yYWNsZS5jb20+ CkRhdGU6IE1vbiwgNSBNYXIgMjAxOCAyMDo1Mjo1NCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMjIv NTNdIHNjaF9uZXRlbTogZml4IHNrYiBsZWFrIGluIG5ldGVtX2VucXVldWUoKQoKWyBVcHN0cmVh bSBjb21taXQgMzVkODg5ZDEwYjY0OWZkYTY2MTIxODkxZWMwNWVjYTg4MTUwMDU5ZCBdCgpXaGVu IHdlIGV4Y2VlZCBjdXJyZW50IHBhY2tldHMgbGltaXQgYW5kIHdlIGhhdmUgbW9yZSB0aGFuIG9u ZQpzZWdtZW50IGluIHRoZSBsaXN0IHJldHVybmVkIGJ5IHNrYl9nc29fc2VnbWVudCgpLCBuZXRl bSBkcm9wcwpvbmx5IHRoZSBmaXJzdCBvbmUsIHNraXBwaW5nIHRoZSByZXN0LCBoZW5jZSBrbWVt bGVhayByZXBvcnRzOgoKdW5yZWZlcmVuY2VkIG9iamVjdCAweGZmZmY4ODBiNWQyM2I2MDAgKHNp emUgMTAyNCk6CiAgY29tbSAic29mdGlycSIsIHBpZCAwLCBqaWZmaWVzIDQzODQ1Mjc3NjMgKGFn ZSAyNzcwLjYyOXMpCiAgaGV4IGR1bXAgKGZpcnN0IDMyIGJ5dGVzKToKICAgIDAwIDgwIDIzIDVk IDBiIDg4IGZmIGZmIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAuLiNdLi4uLi4uLi4uLi4uCiAg ICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgLi4uLi4u Li4uLi4uLi4uLgogIGJhY2t0cmFjZToKICAgIFs8MDAwMDAwMDBkOGExOWI5ZD5dIF9fYWxsb2Nf c2tiKzB4YzkvMHg1MjAKICAgIFs8MDAwMDAwMDAxNzA5YjMyZj5dIHNrYl9zZWdtZW50KzB4OGM4 LzB4MzcxMAogICAgWzwwMDAwMDAwMGM3YjliYjg4Pl0gdGNwX2dzb19zZWdtZW50KzB4MzMxLzB4 MTgzMAogICAgWzwwMDAwMDAwMGM5MjFjYmExPl0gaW5ldF9nc29fc2VnbWVudCsweDQ3Ni8weDEz NzAKICAgIFs8MDAwMDAwMDA4Yjc2MmRkND5dIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgxZjkvMHg1 MTAKICAgIFs8MDAwMDAwMDAyMTgyNjYwYT5dIF9fc2tiX2dzb19zZWdtZW50KzB4MWRkLzB4NjIw CiAgICBbPDAwMDAwMDAwNDEyNjUxYjk+XSBuZXRlbV9lbnF1ZXVlKzB4MTUzNi8weDI1OTAgW3Nj aF9uZXRlbV0KICAgIFs8MDAwMDAwMDAwNWQzYjJhOT5dIF9fZGV2X3F1ZXVlX3htaXQrMHgxMTY3 LzB4MjEyMAogICAgWzwwMDAwMDAwMGZjNWY3MzI3Pl0gaXBfZmluaXNoX291dHB1dDIrMHg5OTgv MHhmMDAKICAgIFs8MDAwMDAwMDBkMzA5ZTlkMz5dIGlwX291dHB1dCsweDFhYS8weDJjMAogICAg WzwwMDAwMDAwMDdlY2JkM2E0Pl0gdGNwX3RyYW5zbWl0X3NrYisweDE4ZGIvMHgzNjcwCiAgICBb PDAwMDAwMDAwNDJkMmE0NWY+XSB0Y3Bfd3JpdGVfeG1pdCsweDRkNC8weDU4YzAKICAgIFs8MDAw MDAwMDA1NmE0NDE5OT5dIHRjcF90YXNrbGV0X2Z1bmMrMHgzZDkvMHg1NDAKICAgIFs8MDAwMDAw MDAxM2QwNmQwMj5dIHRhc2tsZXRfYWN0aW9uKzB4MWNhLzB4MjUwCiAgICBbPDAwMDAwMDAwZmNk ZTBiOGI+XSBfX2RvX3NvZnRpcnErMHgxYjQvMHg1YTMKICAgIFs8MDAwMDAwMDBlN2VkMDI3Yz5d IGlycV9leGl0KzB4MWUyLzB4MjEwCgpGaXggaXQgYnkgYWRkaW5nIHRoZSByZXN0IG9mIHRoZSBz ZWdtZW50cywgaWYgYW55LCB0byBza2IgJ3RvX2ZyZWUnCmxpc3QuIEFkZCBuZXcgX19xZGlzY19k cm9wX2FsbCgpIGFuZCBxZGlzY19kcm9wX2FsbCgpIGZ1bmN0aW9ucwpiZWNhdXNlIHRoZXkgY2Fu IGJlIHVzZWZ1bCBpbiB0aGUgZnV0dXJlIGlmIHdlIG5lZWQgdG8gZHJvcCBzZWdtZW50ZWQKR1NP IHBhY2tldHMgaW4gb3RoZXIgcGxhY2VzLgoKRml4ZXM6IDYwNzFiZDFhYTEzZSAoIm5ldGVtOiBT ZWdtZW50IEdTTyBwYWNrZXRzIG9uIGVucXVldWUiKQpTaWduZWQtb2ZmLWJ5OiBBbGV4ZXkgS29k YW5ldiA8YWxleGV5LmtvZGFuZXZAb3JhY2xlLmNvbT4KQWNrZWQtYnk6IE5laWwgSG9ybWFuIDxu aG9ybWFuQHR1eGRyaXZlci5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oIHwgMTkgKysr KysrKysrKysrKysrKysrKwogbmV0L3NjaGVkL3NjaF9uZXRlbS5jICAgICB8ICAyICstCiAyIGZp bGVzIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oIGIvaW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaApp bmRleCBkNmVjNWE1YTY3ODIuLmQ3OTRhZWJiMzE1NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQv c2NoX2dlbmVyaWMuaAorKysgYi9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oCkBAIC03MzUsNiAr NzM1LDE2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfX3FkaXNjX2Ryb3Aoc3RydWN0IHNrX2J1ZmYg KnNrYiwgc3RydWN0IHNrX2J1ZmYgKip0b19mcmVlKQogCSp0b19mcmVlID0gc2tiOwogfQogCitz dGF0aWMgaW5saW5lIHZvaWQgX19xZGlzY19kcm9wX2FsbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAor CQkJCSAgICBzdHJ1Y3Qgc2tfYnVmZiAqKnRvX2ZyZWUpCit7CisJaWYgKHNrYi0+cHJldikKKwkJ c2tiLT5wcmV2LT5uZXh0ID0gKnRvX2ZyZWU7CisJZWxzZQorCQlza2ItPm5leHQgPSAqdG9fZnJl ZTsKKwkqdG9fZnJlZSA9IHNrYjsKK30KKwogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgX19x ZGlzY19xdWV1ZV9kcm9wX2hlYWQoc3RydWN0IFFkaXNjICpzY2gsCiAJCQkJCQkgICBzdHJ1Y3Qg cWRpc2Nfc2tiX2hlYWQgKnFoLAogCQkJCQkJICAgc3RydWN0IHNrX2J1ZmYgKip0b19mcmVlKQpA QCAtODU1LDYgKzg2NSwxNSBAQCBzdGF0aWMgaW5saW5lIGludCBxZGlzY19kcm9wKHN0cnVjdCBz a19idWZmICpza2IsIHN0cnVjdCBRZGlzYyAqc2NoLAogCXJldHVybiBORVRfWE1JVF9EUk9QOwog fQogCitzdGF0aWMgaW5saW5lIGludCBxZGlzY19kcm9wX2FsbChzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgUWRpc2MgKnNjaCwKKwkJCQkgc3RydWN0IHNrX2J1ZmYgKip0b19mcmVlKQorewor CV9fcWRpc2NfZHJvcF9hbGwoc2tiLCB0b19mcmVlKTsKKwlxZGlzY19xc3RhdHNfZHJvcChzY2gp OworCisJcmV0dXJuIE5FVF9YTUlUX0RST1A7Cit9CisKIC8qIExlbmd0aCB0byBUaW1lIChMMlQp IGxvb2t1cCBpbiBhIHFkaXNjX3JhdGVfdGFibGUsIHRvIGRldGVybWluZSBob3cKICAgIGxvbmcg aXQgd2lsbCB0YWtlIHRvIHNlbmQgYSBwYWNrZXQgZ2l2ZW4gaXRzIHNpemUuCiAgKi8KZGlmZiAt LWdpdCBhL25ldC9zY2hlZC9zY2hfbmV0ZW0uYyBiL25ldC9zY2hlZC9zY2hfbmV0ZW0uYwppbmRl eCBkZDcwOTI0Y2JjZGYuLjJhZWNhNTdmOWJkMCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9u ZXRlbS5jCisrKyBiL25ldC9zY2hlZC9zY2hfbmV0ZW0uYwpAQCAtNTA5LDcgKzUwOSw3IEBAIHN0 YXRpYyBpbnQgbmV0ZW1fZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2Mg KnNjaCwKIAl9CiAKIAlpZiAodW5saWtlbHkoc2NoLT5xLnFsZW4gPj0gc2NoLT5saW1pdCkpCi0J CXJldHVybiBxZGlzY19kcm9wKHNrYiwgc2NoLCB0b19mcmVlKTsKKwkJcmV0dXJuIHFkaXNjX2Ry b3BfYWxsKHNrYiwgc2NoLCB0b19mcmVlKTsKIAogCXFkaXNjX3FzdGF0c19iYWNrbG9nX2luYyhz Y2gsIHNrYik7CiAKLS0gCjIuMTQuMwoKCkZyb20gNmMwOWUwOTM0NjcwMjI3YjE1NzQ4MGE2MDRh YmI0ODc1YTM3NzE5MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBNb24sIDUgTWFyIDIwMTggMDg6NTE6MDMgLTA4 MDAKU3ViamVjdDogW1BBVENIIDIzLzUzXSBpZWVlODAyMTU0OiA2bG93cGFuOiBmaXggcG9zc2li bGUgTlVMTCBkZXJlZiBpbgogbG93cGFuX2RldmljZV9ldmVudCgpCgpbIFVwc3RyZWFtIGNvbW1p dCBjYTBlZGIxMzFiZGYxZTZiZWFlYjJiODI4OWZkNmIzNzRiNzQxNDdkIF0KCkEgdHVuIGRldmlj ZSB0eXBlIGNhbiB0cml2aWFsbHkgYmUgc2V0IHRvIGFyYml0cmFyeSB2YWx1ZSB1c2luZwpUVU5T RVRMSU5LIGlvY3RsKCkuCgpUaGVyZWZvcmUsIGxvd3Bhbl9kZXZpY2VfZXZlbnQoKSBtdXN0IHJl YWxseSBjaGVjayB0aGF0IGllZWU4MDIxNTRfcHRyCmlzIG5vdCBOVUxMLgoKRml4ZXM6IDJjODhi NTI4M2Y2MGQgKCJpZWVlODAyMTU0OiA2bG93cGFuOiByZW1vdmUgY2hlY2sgb24gbnVsbCIpClNp Z25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IEFsZXhh bmRlciBBcmluZyA8YWxleC5hcmluZ0BnbWFpbC5jb20+CkNjOiBTdGVmYW4gU2NobWlkdCA8c3Rl ZmFuQG9zZy5zYW1zdW5nLmNvbT4KUmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2ds ZWdyb3Vwcy5jb20+CkFja2VkLWJ5OiBTdGVmYW4gU2NobWlkdCA8c3RlZmFuQG9zZy5zYW1zdW5n LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9pZWVlODAyMTU0LzZsb3dwYW4vY29yZS5jIHwgMTIgKysrKysrKystLS0tCiAx IGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL25ldC9pZWVlODAyMTU0LzZsb3dwYW4vY29yZS5jIGIvbmV0L2llZWU4MDIxNTQvNmxvd3Bh bi9jb3JlLmMKaW5kZXggOTc0NzY1YjdkOTJhLi5lOWYwNDg5ZTQyMjkgMTAwNjQ0Ci0tLSBhL25l dC9pZWVlODAyMTU0LzZsb3dwYW4vY29yZS5jCisrKyBiL25ldC9pZWVlODAyMTU0LzZsb3dwYW4v Y29yZS5jCkBAIC0yMDYsOSArMjA2LDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBsb3dwYW5fbmV0 bGlua19maW5pKHZvaWQpCiBzdGF0aWMgaW50IGxvd3Bhbl9kZXZpY2VfZXZlbnQoc3RydWN0IG5v dGlmaWVyX2Jsb2NrICp1bnVzZWQsCiAJCQkgICAgICAgdW5zaWduZWQgbG9uZyBldmVudCwgdm9p ZCAqcHRyKQogewotCXN0cnVjdCBuZXRfZGV2aWNlICp3ZGV2ID0gbmV0ZGV2X25vdGlmaWVyX2lu Zm9fdG9fZGV2KHB0cik7CisJc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYgPSBuZXRkZXZfbm90aWZp ZXJfaW5mb190b19kZXYocHRyKTsKKwlzdHJ1Y3Qgd3Bhbl9kZXYgKndwYW5fZGV2OwogCi0JaWYg KHdkZXYtPnR5cGUgIT0gQVJQSFJEX0lFRUU4MDIxNTQpCisJaWYgKG5kZXYtPnR5cGUgIT0gQVJQ SFJEX0lFRUU4MDIxNTQpCisJCXJldHVybiBOT1RJRllfRE9ORTsKKwl3cGFuX2RldiA9IG5kZXYt PmllZWU4MDIxNTRfcHRyOworCWlmICghd3Bhbl9kZXYpCiAJCXJldHVybiBOT1RJRllfRE9ORTsK IAogCXN3aXRjaCAoZXZlbnQpIHsKQEAgLTIxNyw4ICsyMjEsOCBAQCBzdGF0aWMgaW50IGxvd3Bh bl9kZXZpY2VfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp1bnVzZWQsCiAJCSAqIGFsc28g ZGVsZXRlIHBvc3NpYmxlIGxvd3BhbiBpbnRlcmZhY2VzIHdoaWNoIGJlbG9uZ3MKIAkJICogdG8g dGhlIHdwYW4gaW50ZXJmYWNlLgogCQkgKi8KLQkJaWYgKHdkZXYtPmllZWU4MDIxNTRfcHRyLT5s b3dwYW5fZGV2KQotCQkJbG93cGFuX2RlbGxpbmsod2Rldi0+aWVlZTgwMjE1NF9wdHItPmxvd3Bh bl9kZXYsIE5VTEwpOworCQlpZiAod3Bhbl9kZXYtPmxvd3Bhbl9kZXYpCisJCQlsb3dwYW5fZGVs bGluayh3cGFuX2Rldi0+bG93cGFuX2RldiwgTlVMTCk7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJ CXJldHVybiBOT1RJRllfRE9ORTsKLS0gCjIuMTQuMwoKCkZyb20gZjVmZmZhZmQ3MzAxZDgwNzUw ZmJjYjhiNzc2NjAwZmY5YjZhNjk0ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBXZWQsIDE0IE1hciAyMDE4IDA5 OjA0OjE2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyNC81M10gbmV0OiB1c2Ugc2tiX3RvX2Z1bGxf c2soKSBpbiBza2JfdXBkYXRlX3ByaW8oKQoKWyBVcHN0cmVhbSBjb21taXQgNGRjYjMxZDQ2NDlk ZjM2Mjk3Mjk2YjgxOTQzNzcwOWY1NDA3MDU5YyBdCgpBbmRyZWkgVmFnaW4gcmVwb3J0ZWQgYSBL QVNBTjogc2xhYi1vdXQtb2YtYm91bmRzIGVycm9yIGluCnNrYl91cGRhdGVfcHJpbygpCgpTaW5j ZSBTWU5BQ0sgbWlnaHQgYmUgYXR0YWNoZWQgdG8gYSByZXF1ZXN0IHNvY2tldCwgd2UgbmVlZCB0 bwpnZXQgYmFjayB0byB0aGUgbGlzdGVuZXIgc29ja2V0LgpTaW5jZSB0aGlzIGxpc3RlbmVyIGlz IG1hbmlwdWxhdGVkIHdpdGhvdXQgbG9ja3MsIGFkZCBjb25zdApxdWFsaWZpZXJzIHRvIHNvY2tf Y2dyb3VwX3ByaW9pZHgoKSBzbyB0aGF0IHRoZSBjb25zdCBjYW4gYWxzbwpiZSB1c2VkIGluIHNr Yl91cGRhdGVfcHJpbygpCgpBbHNvIGFkZCB0aGUgY29uc3QgcXVhbGlmaWVyIHRvIHNvY2tfY2dy b3VwX2NsYXNzaWQoKSBmb3IgY29uc2lzdGVuY3kuCgpGaXhlczogY2E2ZmIwNjUxODgzICgidGNw OiBhdHRhY2ggU1lOQUNLIG1lc3NhZ2VzIHRvIHJlcXVlc3Qgc29ja2V0cyBpbnN0ZWFkIG9mIGxp c3RlbmVyIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpSZXBvcnRlZC1ieTogQW5kcmVpIFZhZ2luIDxhdmFnaW5AdmlydHVvenpvLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1 ZGUvbGludXgvY2dyb3VwLWRlZnMuaCB8ICA0ICsrLS0KIG5ldC9jb3JlL2Rldi5jICAgICAgICAg ICAgICB8IDIyICsrKysrKysrKysrKysrKy0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTcgaW5z ZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Nn cm91cC1kZWZzLmggYi9pbmNsdWRlL2xpbnV4L2Nncm91cC1kZWZzLmgKaW5kZXggOGI3ZmQ4ZWVj Y2VlLi5jYjhhOWNlMTQ5ZGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvY2dyb3VwLWRlZnMu aAorKysgYi9pbmNsdWRlL2xpbnV4L2Nncm91cC1kZWZzLmgKQEAgLTc1NSwxMyArNzU1LDEzIEBA IHN0cnVjdCBzb2NrX2Nncm91cF9kYXRhIHsKICAqIHVwZGF0ZXJzIGFuZCByZXR1cm4gcGFydCBv ZiB0aGUgcHJldmlvdXMgcG9pbnRlciBhcyB0aGUgcHJpb2lkeCBvcgogICogY2xhc3NpZC4gIFN1 Y2ggcmFjZXMgYXJlIHNob3J0LWxpdmVkIGFuZCB0aGUgcmVzdWx0IGlzbid0IGNyaXRpY2FsLgog ICovCi1zdGF0aWMgaW5saW5lIHUxNiBzb2NrX2Nncm91cF9wcmlvaWR4KHN0cnVjdCBzb2NrX2Nn cm91cF9kYXRhICpza2NkKQorc3RhdGljIGlubGluZSB1MTYgc29ja19jZ3JvdXBfcHJpb2lkeChj b25zdCBzdHJ1Y3Qgc29ja19jZ3JvdXBfZGF0YSAqc2tjZCkKIHsKIAkvKiBmYWxsYmFjayB0byAx IHdoaWNoIGlzIGFsd2F5cyB0aGUgSUQgb2YgdGhlIHJvb3QgY2dyb3VwICovCiAJcmV0dXJuIChz a2NkLT5pc19kYXRhICYgMSkgPyBza2NkLT5wcmlvaWR4IDogMTsKIH0KIAotc3RhdGljIGlubGlu ZSB1MzIgc29ja19jZ3JvdXBfY2xhc3NpZChzdHJ1Y3Qgc29ja19jZ3JvdXBfZGF0YSAqc2tjZCkK K3N0YXRpYyBpbmxpbmUgdTMyIHNvY2tfY2dyb3VwX2NsYXNzaWQoY29uc3Qgc3RydWN0IHNvY2tf Y2dyb3VwX2RhdGEgKnNrY2QpCiB7CiAJLyogZmFsbGJhY2sgdG8gMCB3aGljaCBpcyB0aGUgdW5j b25maWd1cmVkIGRlZmF1bHQgY2xhc3NpZCAqLwogCXJldHVybiAoc2tjZC0+aXNfZGF0YSAmIDEp ID8gc2tjZC0+Y2xhc3NpZCA6IDA7CmRpZmYgLS1naXQgYS9uZXQvY29yZS9kZXYuYyBiL25ldC9j b3JlL2Rldi5jCmluZGV4IGEyYTg5YWNkMGRlOC4uZjNmYmQxMGEwNjMyIDEwMDY0NAotLS0gYS9u ZXQvY29yZS9kZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtMzI0NywxNSArMzI0NywyMyBA QCBzdGF0aWMgaW5saW5lIGludCBfX2Rldl94bWl0X3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3QgUWRpc2MgKnEsCiAjaWYgSVNfRU5BQkxFRChDT05GSUdfQ0dST1VQX05FVF9QUklPKQog c3RhdGljIHZvaWQgc2tiX3VwZGF0ZV9wcmlvKHN0cnVjdCBza19idWZmICpza2IpCiB7Ci0Jc3Ry dWN0IG5ldHByaW9fbWFwICptYXAgPSByY3VfZGVyZWZlcmVuY2VfYmgoc2tiLT5kZXYtPnByaW9t YXApOworCWNvbnN0IHN0cnVjdCBuZXRwcmlvX21hcCAqbWFwOworCWNvbnN0IHN0cnVjdCBzb2Nr ICpzazsKKwl1bnNpZ25lZCBpbnQgcHJpb2lkeDsKIAotCWlmICghc2tiLT5wcmlvcml0eSAmJiBz a2ItPnNrICYmIG1hcCkgewotCQl1bnNpZ25lZCBpbnQgcHJpb2lkeCA9Ci0JCQlzb2NrX2Nncm91 cF9wcmlvaWR4KCZza2ItPnNrLT5za19jZ3JwX2RhdGEpOworCWlmIChza2ItPnByaW9yaXR5KQor CQlyZXR1cm47CisJbWFwID0gcmN1X2RlcmVmZXJlbmNlX2JoKHNrYi0+ZGV2LT5wcmlvbWFwKTsK KwlpZiAoIW1hcCkKKwkJcmV0dXJuOworCXNrID0gc2tiX3RvX2Z1bGxfc2soc2tiKTsKKwlpZiAo IXNrKQorCQlyZXR1cm47CiAKLQkJaWYgKHByaW9pZHggPCBtYXAtPnByaW9tYXBfbGVuKQotCQkJ c2tiLT5wcmlvcml0eSA9IG1hcC0+cHJpb21hcFtwcmlvaWR4XTsKLQl9CisJcHJpb2lkeCA9IHNv Y2tfY2dyb3VwX3ByaW9pZHgoJnNrLT5za19jZ3JwX2RhdGEpOworCisJaWYgKHByaW9pZHggPCBt YXAtPnByaW9tYXBfbGVuKQorCQlza2ItPnByaW9yaXR5ID0gbWFwLT5wcmlvbWFwW3ByaW9pZHhd OwogfQogI2Vsc2UKICNkZWZpbmUgc2tiX3VwZGF0ZV9wcmlvKHNrYikKLS0gCjIuMTQuMwoKCkZy b20gOWE2MmFiYmVlZGU0NjhjNWMxMjEzNzU3YzkyZjAzYmRlNDYwZWIwYyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogS2lyaWxsIFRraGFpIDxrdGtoYWlAdmlydHVvenpvLmNvbT4KRGF0 ZTogVHVlLCA2IE1hciAyMDE4IDE4OjQ2OjM5ICswMzAwClN1YmplY3Q6IFtQQVRDSCAyNS81M10g bmV0OiBGaXggaGxpc3QgY29ycnVwdGlvbnMgaW4gaW5ldF9ldmljdF9idWNrZXQoKQoKWyBVcHN0 cmVhbSBjb21taXQgYTU2MDAwMjQzN2QzNjQ2ZGFmY2NlY2IxYmYzMmQxNjg1MTEyZGRkYSBdCgpp bmV0X2V2aWN0X2J1Y2tldCgpIGl0ZXJhdGVzIGdsb2JhbCBsaXN0LCBhbmQKc2V2ZXJhbCB0YXNr cyBtYXkgY2FsbCBpdCBpbiBwYXJhbGxlbC4gQWxsIG9mCnRoZW0gaGFzaCB0aGUgc2FtZSBmcS0+ bGlzdF9ldmljdG9yIHRvIGRpZmZlcmVudApsaXN0cywgd2hpY2ggbGVhZHMgdG8gbGlzdCBjb3Jy dXB0aW9uLgoKVGhpcyBwYXRjaCBtYWtlcyBmcSBiZSBoYXNoZWQgdG8gZXhwaXJlZCBsaXN0Cm9u bHkgaWYgdGhpcyBoYXMgbm90IGJlZW4gbWFkZSB5ZXQgYnkgYW5vdGhlcgp0YXNrLiBTaW5jZSBp bmV0X2ZyYWdfYWxsb2MoKSBhbGxvY2F0ZXMgZnEKdXNpbmcga21lbV9jYWNoZV96YWxsb2MoKSwg d2UgbWF5IHJlbHkgb24KbGlzdF9ldmljdG9yIGlzIGluaXRpYWxseSB1bmhhc2hlZC4KClRoZSBw cm9ibGVtIHNlZW1zIHRvIGV4aXN0IGJlZm9yZSBhc3luYwpwZXJuZXRfb3BlcmF0aW9ucywgYXMg dGhlcmUgd2FzIHBvc3NpYmxlIHRvIGhhdmUKZXhpdCBtZXRob2QgdG8gYmUgZXhlY3V0ZWQgaW4g cGFyYWxsZWwgd2l0aAppbmV0X2ZyYWdzOjpmcmFnc193b3JrLCBzbyBJIGFkZCB0d28gRml4ZXMg dGFncy4KVGhpcyBhbHNvIG1heSBnbyB0byBzdGFibGUuCgpGaXhlczogZDFmZTE5NDQ0ZDgyICJp bmV0OiBmcmFnOiBkb24ndCByZS11c2UgY2hhaW5saXN0IGZvciBldmljdG9yIgpGaXhlczogZjg0 YzY4MjFhYTU0ICJuZXQ6IENvbnZlcnQgcGVybmV0X3N1YnN5cywgcmVnaXN0ZXJlZCBmcm9tIGlu ZXRfaW5pdCgpIgpTaWduZWQtb2ZmLWJ5OiBLaXJpbGwgVGtoYWkgPGt0a2hhaUB2aXJ0dW96em8u Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L2lwdjQvaW5ldF9mcmFnbWVudC5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0X2ZyYWdtZW50LmMgYi9u ZXQvaXB2NC9pbmV0X2ZyYWdtZW50LmMKaW5kZXggMjZhM2QwMzE1NzI4Li5lOGVjMjg5OTlmNWMg MTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfZnJhZ21lbnQuYworKysgYi9uZXQvaXB2NC9pbmV0 X2ZyYWdtZW50LmMKQEAgLTExOSw2ICsxMTksOSBAQCBzdGF0aWMgdm9pZCBpbmV0X2ZyYWdfc2Vj cmV0X3JlYnVpbGQoc3RydWN0IGluZXRfZnJhZ3MgKmYpCiAKIHN0YXRpYyBib29sIGluZXRfZnJh Z3Ffc2hvdWxkX2V2aWN0KGNvbnN0IHN0cnVjdCBpbmV0X2ZyYWdfcXVldWUgKnEpCiB7CisJaWYg KCFobGlzdF91bmhhc2hlZCgmcS0+bGlzdF9ldmljdG9yKSkKKwkJcmV0dXJuIGZhbHNlOworCiAJ cmV0dXJuIHEtPm5ldC0+bG93X3RocmVzaCA9PSAwIHx8CiAJICAgICAgIGZyYWdfbWVtX2xpbWl0 KHEtPm5ldCkgPj0gcS0+bmV0LT5sb3dfdGhyZXNoOwogfQotLSAKMi4xNC4zCgoKRnJvbSBiY2Ni YzhhYTA1MTM3ZjM1YmE3YmU3ZjhjZjE5ZTYxMWM1Mzg2NmFkIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC52bmV0LmlibS5jb20+CkRhdGU6 IFR1ZSwgMjAgTWFyIDIwMTggMDc6NTk6MTIgKzAxMDAKU3ViamVjdDogW1BBVENIIDMwLzUzXSBz MzkwL3FldGg6IGZyZWUgbmV0ZGV2aWNlIHdoZW4gcmVtb3ZpbmcgYSBjYXJkCgpbIFVwc3RyZWFt IGNvbW1pdCA2YmU2ODczOTViMzEyNGYwMDJhNjUzYzFhNTBiMzI2MDIyMmIzY2Q3IF0KCk9uIHJl bW92YWwsIGEgcWV0aCBjYXJkJ3MgbmV0ZGV2aWNlIGlzIGN1cnJlbnRseSBub3QgcHJvcGVybHkg ZnJlZWQKYmVjYXVzZSB0aGUgY2FsbCBjaGFpbiBsb29rcyBhcyBmb2xsb3dzOgoKcWV0aF9jb3Jl X3JlbW92ZV9kZXZpY2UoY2FyZCkKCWx4X3JlbW92ZV9kZXZpY2UoY2FyZCkKCQl1bnJlZ2lzdGVy X25ldGRldihjYXJkLT5kZXYpCgkJY2FyZC0+ZGV2ID0gTlVMTAkJCSEhIQoJcWV0aF9jb3JlX2Zy ZWVfY2FyZChjYXJkKQoJCWlmIChjYXJkLT5kZXYpCQkJCSEhIQoJCQlmcmVlX25ldGRldihjYXJk LT5kZXYpCgpGaXggaXQgYnkgZnJlZSdpbmcgdGhlIG5ldGRldiBzdHJhaWdodCBhZnRlciB1bnJl Z2lzdGVyaW5nLiBUaGlzIGFsc28KZml4ZXMgdGhlIHN5c2ZzLWRyaXZlbiBsYXllciBzd2l0Y2gg Y2FzZSAocWV0aF9kZXZfbGF5ZXIyX3N0b3JlKCkpLAp3aGVyZSB0aGUgbmVlZCB0byBmcmVlIHRo ZSBjdXJyZW50IG5ldGRldmljZSB3YXMgbm90IGNvbnNpZGVyZWQgYXQgYWxsLgoKTm90ZSB0aGF0 IGZyZWVfbmV0ZGV2KCkgdGFrZXMgY2FyZSBvZiB0aGUgbmV0aWZfbmFwaV9kZWwoKSBmb3IgdXMg dG9vLgoKRml4ZXM6IDRhNzFkZjUwMDQ3ZiAoInFldGg6IG5ldyBxZXRoIGRldmljZSBkcml2ZXIi KQpTaWduZWQtb2ZmLWJ5OiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC52bmV0LmlibS5jb20+ ClJldmlld2VkLWJ5OiBVcnN1bGEgQnJhdW4gPHVicmF1bkBsaW51eC52bmV0LmlibS5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBk cml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMgfCAyIC0tCiBkcml2ZXJzL3MzOTAvbmV0 L3FldGhfbDJfbWFpbi5jICAgfCAyICstCiBkcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5j ICAgfCAyICstCiAzIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMgYi9kcml2 ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMKaW5kZXggNjFlOWQwYmNhMTk3Li5kNGIxNTRm MDQ3ZTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYworKysg Yi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMKQEAgLTUwMjIsOCArNTAyMiw2IEBA IHN0YXRpYyB2b2lkIHFldGhfY29yZV9mcmVlX2NhcmQoc3RydWN0IHFldGhfY2FyZCAqY2FyZCkK IAlRRVRIX0RCRl9IRVgoU0VUVVAsIDIsICZjYXJkLCBzaXplb2Yodm9pZCAqKSk7CiAJcWV0aF9j bGVhbl9jaGFubmVsKCZjYXJkLT5yZWFkKTsKIAlxZXRoX2NsZWFuX2NoYW5uZWwoJmNhcmQtPndy aXRlKTsKLQlpZiAoY2FyZC0+ZGV2KQotCQlmcmVlX25ldGRldihjYXJkLT5kZXYpOwogCXFldGhf ZnJlZV9xZGlvX2J1ZmZlcnMoY2FyZCk7CiAJdW5yZWdpc3Rlcl9zZXJ2aWNlX2xldmVsKCZjYXJk LT5xZXRoX3NlcnZpY2VfbGV2ZWwpOwogCWtmcmVlKGNhcmQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9zMzkwL25ldC9xZXRoX2wyX21haW4uYyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9tYWlu LmMKaW5kZXggNTg2M2VhMTcwZmYyLi40MmQ1NmIzYmVkODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv czM5MC9uZXQvcWV0aF9sMl9tYWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wyX21h aW4uYwpAQCAtOTMzLDggKzkzMyw4IEBAIHN0YXRpYyB2b2lkIHFldGhfbDJfcmVtb3ZlX2Rldmlj ZShzdHJ1Y3QgY2N3Z3JvdXBfZGV2aWNlICpjZ2RldikKIAkJcWV0aF9sMl9zZXRfb2ZmbGluZShj Z2Rldik7CiAKIAlpZiAoY2FyZC0+ZGV2KSB7Ci0JCW5ldGlmX25hcGlfZGVsKCZjYXJkLT5uYXBp KTsKIAkJdW5yZWdpc3Rlcl9uZXRkZXYoY2FyZC0+ZGV2KTsKKwkJZnJlZV9uZXRkZXYoY2FyZC0+ ZGV2KTsKIAkJY2FyZC0+ZGV2ID0gTlVMTDsKIAl9CiAJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19t YWluLmMKaW5kZXggMzMxMzFjNTk0NjI3Li41Mjg3ZWFiNWM2MDAgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wz X21haW4uYwpAQCAtMzA0Miw4ICszMDQyLDggQEAgc3RhdGljIHZvaWQgcWV0aF9sM19yZW1vdmVf ZGV2aWNlKHN0cnVjdCBjY3dncm91cF9kZXZpY2UgKmNnZGV2KQogCQlxZXRoX2wzX3NldF9vZmZs aW5lKGNnZGV2KTsKIAogCWlmIChjYXJkLT5kZXYpIHsKLQkJbmV0aWZfbmFwaV9kZWwoJmNhcmQt Pm5hcGkpOwogCQl1bnJlZ2lzdGVyX25ldGRldihjYXJkLT5kZXYpOworCQlmcmVlX25ldGRldihj YXJkLT5kZXYpOwogCQljYXJkLT5kZXYgPSBOVUxMOwogCX0KIAotLSAKMi4xNC4zCgoKRnJvbSAz MzY5MTViMWI5Y2I1ZjBmMmNmYTE2ZTFmOTA1M2E4YWVjNDM5NmI2IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC52bmV0LmlibS5jb20+CkRh dGU6IFR1ZSwgMjAgTWFyIDIwMTggMDc6NTk6MTMgKzAxMDAKU3ViamVjdDogW1BBVENIIDMxLzUz XSBzMzkwL3FldGg6IHdoZW4gdGhyZWFkIGNvbXBsZXRlcywgd2FrZSB1cCBhbGwgd2FpdGVycwoK WyBVcHN0cmVhbSBjb21taXQgMTA2M2U0MzJiYjQ1YmUyMDk0MjdlZDNmMWNhMzkwOGU0YWEzYzdk NyBdCgpxZXRoX3dhaXRfZm9yX3RocmVhZHMoKSBpcyBwb3RlbnRpYWxseSBjYWxsZWQgYnkgbXVs dGlwbGUgdXNlcnMsIG1ha2UKc3VyZSB0byBub3RpZnkgYWxsIG9mIHRoZW0gYWZ0ZXIgcWV0aF9j bGVhcl90aHJlYWRfcnVubmluZ19iaXQoKQphZGp1c3RlZCB0aGUgdGhyZWFkX3J1bm5pbmdfbWFz ay4gV2l0aCBubyB0aW1lb3V0LCBjYWxsZXJzIHdvdWxkCm90aGVyd2lzZSBzdGFsbC4KClNpZ25l ZC1vZmYtYnk6IEp1bGlhbiBXaWVkbWFubiA8andpQGxpbnV4LnZuZXQuaWJtLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQv cWV0aF9jb3JlX21haW4uYyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYwppbmRl eCBkNGIxNTRmMDQ3ZTQuLmQ5MWE1MmRhY2FmNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25l dC9xZXRoX2NvcmVfbWFpbi5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4u YwpAQCAtOTYxLDcgKzk2MSw3IEBAIHZvaWQgcWV0aF9jbGVhcl90aHJlYWRfcnVubmluZ19iaXQo c3RydWN0IHFldGhfY2FyZCAqY2FyZCwgdW5zaWduZWQgbG9uZyB0aHJlYWQpCiAJc3Bpbl9sb2Nr X2lycXNhdmUoJmNhcmQtPnRocmVhZF9tYXNrX2xvY2ssIGZsYWdzKTsKIAljYXJkLT50aHJlYWRf cnVubmluZ19tYXNrICY9IH50aHJlYWQ7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2FyZC0+ dGhyZWFkX21hc2tfbG9jaywgZmxhZ3MpOwotCXdha2VfdXAoJmNhcmQtPndhaXRfcSk7CisJd2Fr ZV91cF9hbGwoJmNhcmQtPndhaXRfcSk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChxZXRoX2NsZWFy X3RocmVhZF9ydW5uaW5nX2JpdCk7CiAKLS0gCjIuMTQuMwoKCkZyb20gNWY1MGQzNzI2MjRmOTYz OGNjMDFiZGZkOGVjMTdkOGM2ZTZiOWYzYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog SnVsaWFuIFdpZWRtYW5uIDxqd2lAbGludXgudm5ldC5pYm0uY29tPgpEYXRlOiBUdWUsIDIwIE1h ciAyMDE4IDA3OjU5OjE0ICswMTAwClN1YmplY3Q6IFtQQVRDSCAzMi81M10gczM5MC9xZXRoOiBs b2NrIHJlYWQgZGV2aWNlIHdoaWxlIHF1ZXVlaW5nIG5leHQgYnVmZmVyCgpbIFVwc3RyZWFtIGNv bW1pdCAxN2JmOGM5YjNkNDk5ZDUxNjg1MzdjOThiNjFlYjdhMWZjYmNhNmMyIF0KCkZvciBjYWxs aW5nIGNjd19kZXZpY2Vfc3RhcnQoKSwgaXNzdWVfbmV4dF9yZWFkKCkgbmVlZHMgdG8gaG9sZCB0 aGUKZGV2aWNlJ3MgY2N3bG9jay4KVGhpcyBpcyBzYXRpc2ZpZWQgZm9yIHRoZSBJUlEgaGFuZGxl ciBwYXRoICh3aGVyZSBxZXRoX2lycSgpIGdldHMgY2FsbGVkCnVuZGVyIHRoZSBjY3dsb2NrKSwg YnV0IHdlIG5lZWQgZXhwbGljaXQgbG9ja2luZyBmb3IgdGhlIGluaXRpYWwgY2FsbCBieQp0aGUg TVBDIGluaXRpYWxpemF0aW9uLgoKU2lnbmVkLW9mZi1ieTogSnVsaWFuIFdpZWRtYW5uIDxqd2lA bGludXgudm5ldC5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jIHwg MTYgKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFp bi5jIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jCmluZGV4IGQ5MWE1MmRhY2Fm NS4uYWVjOGJhOGI5ZTM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9t YWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jCkBAIC01MjYsOCAr NTI2LDcgQEAgc3RhdGljIGlubGluZSBpbnQgcWV0aF9pc19jcShzdHJ1Y3QgcWV0aF9jYXJkICpj YXJkLCB1bnNpZ25lZCBpbnQgcXVldWUpCiAJICAgIHF1ZXVlID09IGNhcmQtPnFkaW8ubm9faW5f cXVldWVzIC0gMTsKIH0KIAotCi1zdGF0aWMgaW50IHFldGhfaXNzdWVfbmV4dF9yZWFkKHN0cnVj dCBxZXRoX2NhcmQgKmNhcmQpCitzdGF0aWMgaW50IF9fcWV0aF9pc3N1ZV9uZXh0X3JlYWQoc3Ry dWN0IHFldGhfY2FyZCAqY2FyZCkKIHsKIAlpbnQgcmM7CiAJc3RydWN0IHFldGhfY21kX2J1ZmZl ciAqaW9iOwpAQCAtNTU4LDYgKzU1NywxNyBAQCBzdGF0aWMgaW50IHFldGhfaXNzdWVfbmV4dF9y ZWFkKHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQpCiAJcmV0dXJuIHJjOwogfQogCitzdGF0aWMgaW50 IHFldGhfaXNzdWVfbmV4dF9yZWFkKHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQpCit7CisJaW50IHJl dDsKKworCXNwaW5fbG9ja19pcnEoZ2V0X2Njd2Rldl9sb2NrKENBUkRfUkRFVihjYXJkKSkpOwor CXJldCA9IF9fcWV0aF9pc3N1ZV9uZXh0X3JlYWQoY2FyZCk7CisJc3Bpbl91bmxvY2tfaXJxKGdl dF9jY3dkZXZfbG9jayhDQVJEX1JERVYoY2FyZCkpKTsKKworCXJldHVybiByZXQ7Cit9CisKIHN0 YXRpYyBzdHJ1Y3QgcWV0aF9yZXBseSAqcWV0aF9hbGxvY19yZXBseShzdHJ1Y3QgcWV0aF9jYXJk ICpjYXJkKQogewogCXN0cnVjdCBxZXRoX3JlcGx5ICpyZXBseTsKQEAgLTExODMsNyArMTE5Myw3 IEBAIHN0YXRpYyB2b2lkIHFldGhfaXJxKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2LCB1bnNpZ25l ZCBsb25nIGludHBhcm0sCiAJCXJldHVybjsKIAlpZiAoY2hhbm5lbCA9PSAmY2FyZC0+cmVhZCAm JgogCSAgICBjaGFubmVsLT5zdGF0ZSA9PSBDSF9TVEFURV9VUCkKLQkJcWV0aF9pc3N1ZV9uZXh0 X3JlYWQoY2FyZCk7CisJCV9fcWV0aF9pc3N1ZV9uZXh0X3JlYWQoY2FyZCk7CiAKIAlpb2IgPSBj aGFubmVsLT5pb2I7CiAJaW5kZXggPSBjaGFubmVsLT5idWZfbm87Ci0tIAoyLjE0LjMKCgpGcm9t IDQ2YTFkMDM1ZWQ5ZDk5NzQ3NjgzMDRiMWY4ODRmZDZlNGJkMjU1NTYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEp1bGlhbiBXaWVkbWFubiA8andpQGxpbnV4LnZuZXQuaWJtLmNvbT4K RGF0ZTogVHVlLCAyMCBNYXIgMjAxOCAwNzo1OToxNSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMzMv NTNdIHMzOTAvcWV0aDogb24gY2hhbm5lbCBlcnJvciwgcmVqZWN0IGZ1cnRoZXIgY21kCiByZXF1 ZXN0cwoKWyBVcHN0cmVhbSBjb21taXQgYTZjM2Q5Mzk2M2U0YjMzM2M3NjRmZGU2OTgwMmMzZWE5 ZWFhOWQ1YyBdCgpXaGVuIHRoZSBJUlEgaGFuZGxlciBkZXRlcm1pbmVzIHRoYXQgb25lIG9mIHRo ZSBjbWQgSU8gY2hhbm5lbHMgaGFzCmZhaWxlZCBhbmQgc2NoZWR1bGVzIHJlY292ZXJ5LCBibG9j ayBhbnkgZnVydGhlciBjbWQgcmVxdWVzdHMgZnJvbQpiZWluZyBzdWJtaXR0ZWQuIFRoZSByZXF1 ZXN0IHdvdWxkIGluZXZpdGFibHkgc3RhbGwsIGFuZCBwcmV2ZW50IHRoZQpyZWNvdmVyeSBmcm9t IG1ha2luZyBwcm9ncmVzcyB1bnRpbCB0aGUgcmVxdWVzdCB0aW1lcyBvdXQuCgpUaGlzIHNvcnQg b2YgZXJyb3Igd2FzIG9ic2VydmVkIGFmdGVyIExpdmUgR3Vlc3QgUmVsb2NhdGlvbiwgd2hlcmUK dGhlIHBlbmRpbmcgSU8gb24gdGhlIFJFQUQgY2hhbm5lbCBpbnRlbnRpb25hbGx5IGdldHMgdGVy bWluYXRlZCB0bwpraWNrLXN0YXJ0IHJlY292ZXJ5LiBTaW11bHRhbmVvdXNseSB0aGUgZ3Vlc3Qg ZXhlY3V0ZWQgU0lPQ0VUSFRPT0wsCnRyaWdnZXJpbmcgcWV0aCB0byBpc3N1ZSBhIFFVRVJZIENB UkQgSU5GTyBjb21tYW5kLiBUaGUgY29tbWFuZAp0aGVuIHN0YWxsZWQgaW4gdGhlIGlub3BlcmFi ZWwgV1JJVEUgY2hhbm5lbC4KClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBXaWVkbWFubiA8andpQGxp bnV4LnZuZXQuaWJtLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYyB8IDEg KwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9z MzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFp bi5jCmluZGV4IGFlYzhiYThiOWUzNS4uZWVhYmJjZjdhNGUyIDEwMDY0NAotLS0gYS9kcml2ZXJz L3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2Nv cmVfbWFpbi5jCkBAIC0xMTc1LDYgKzExNzUsNyBAQCBzdGF0aWMgdm9pZCBxZXRoX2lycShzdHJ1 Y3QgY2N3X2RldmljZSAqY2RldiwgdW5zaWduZWQgbG9uZyBpbnRwYXJtLAogCQl9CiAJCXJjID0g cWV0aF9nZXRfcHJvYmxlbShjZGV2LCBpcmIpOwogCQlpZiAocmMpIHsKKwkJCWNhcmQtPnJlYWRf b3Jfd3JpdGVfcHJvYmxlbSA9IDE7CiAJCQlxZXRoX2NsZWFyX2lwYWNtZF9saXN0KGNhcmQpOwog CQkJcWV0aF9zY2hlZHVsZV9yZWNvdmVyeShjYXJkKTsKIAkJCWdvdG8gb3V0OwotLSAKMi4xNC4z CgoKRnJvbSAwYTY3OTI1NGI5ZThiOWRjNmJlYzI5NmU1OWUxNDU1NDFmN2IyNjA5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYWRhbGluIEJ1Y3VyIDxtYWRhbGluLmJ1Y3VyQG54cC5j b20+CkRhdGU6IFdlZCwgMTQgTWFyIDIwMTggMDg6Mzc6MjggLTA1MDAKU3ViamVjdDogW1BBVENI IDM0LzUzXSBzb2MvZnNsL3FibWFuOiBmaXggaXNzdWUgaW4gcW1hbl9kZWxldGVfY2dyX3NhZmUo KQoKWyBVcHN0cmVhbSBjb21taXQgOTZmNDEzZjQ3Njc3MzY2ZTBhZTAzNzk3NDA5YmZjYzQxNTFk YmY5ZSBdCgpUaGUgd2FpdF9mb3JfY29tcGxldGlvbigpIGNhbGwgaW4gcW1hbl9kZWxldGVfY2dy X3NhZmUoKQp3YXMgdHJpZ2dlcmluZyBhIHNjaGVkdWxpbmcgd2hpbGUgYXRvbWljIGJ1ZywgcmVw bGFjaW5nIHRoZQprdGhyZWFkIHdpdGggYSBzbXBfY2FsbF9mdW5jdGlvbl9zaW5nbGUoKSBjYWxs IHRvIGZpeCBpdC4KClNpZ25lZC1vZmYtYnk6IE1hZGFsaW4gQnVjdXIgPG1hZGFsaW4uYnVjdXJA bnhwLmNvbT4KU2lnbmVkLW9mZi1ieTogUm95IFBsZWRnZSA8cm95LnBsZWRnZUBueHAuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9zb2MvZnNsL3FibWFuL3FtYW4uYyB8IDI4ICsrKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc29jL2ZzbC9xYm1hbi9xbWFuLmMgYi9kcml2ZXJzL3NvYy9m c2wvcWJtYW4vcW1hbi5jCmluZGV4IGU0ZjViYjA1NmZkMi4uYmEzY2ZhOGUyNzliIDEwMDY0NAot LS0gYS9kcml2ZXJzL3NvYy9mc2wvcWJtYW4vcW1hbi5jCisrKyBiL2RyaXZlcnMvc29jL2ZzbC9x Ym1hbi9xbWFuLmMKQEAgLTI0NDMsMzkgKzI0NDMsMjEgQEAgc3RydWN0IGNncl9jb21wIHsKIAlz dHJ1Y3QgY29tcGxldGlvbiBjb21wbGV0aW9uOwogfTsKIAotc3RhdGljIGludCBxbWFuX2RlbGV0 ZV9jZ3JfdGhyZWFkKHZvaWQgKnApCitzdGF0aWMgdm9pZCBxbWFuX2RlbGV0ZV9jZ3Jfc21wX2Nh bGwodm9pZCAqcCkKIHsKLQlzdHJ1Y3QgY2dyX2NvbXAgKmNncl9jb21wID0gKHN0cnVjdCBjZ3Jf Y29tcCAqKXA7Ci0JaW50IHJldDsKLQotCXJldCA9IHFtYW5fZGVsZXRlX2NncihjZ3JfY29tcC0+ Y2dyKTsKLQljb21wbGV0ZSgmY2dyX2NvbXAtPmNvbXBsZXRpb24pOwotCi0JcmV0dXJuIHJldDsK KwlxbWFuX2RlbGV0ZV9jZ3IoKHN0cnVjdCBxbWFuX2NnciAqKXApOwogfQogCiB2b2lkIHFtYW5f ZGVsZXRlX2Nncl9zYWZlKHN0cnVjdCBxbWFuX2NnciAqY2dyKQogewotCXN0cnVjdCB0YXNrX3N0 cnVjdCAqdGhyZWFkOwotCXN0cnVjdCBjZ3JfY29tcCBjZ3JfY29tcDsKLQogCXByZWVtcHRfZGlz YWJsZSgpOwogCWlmIChxbWFuX2Nncl9jcHVzW2Nnci0+Y2dyaWRdICE9IHNtcF9wcm9jZXNzb3Jf aWQoKSkgewotCQlpbml0X2NvbXBsZXRpb24oJmNncl9jb21wLmNvbXBsZXRpb24pOwotCQljZ3Jf Y29tcC5jZ3IgPSBjZ3I7Ci0JCXRocmVhZCA9IGt0aHJlYWRfY3JlYXRlKHFtYW5fZGVsZXRlX2Nn cl90aHJlYWQsICZjZ3JfY29tcCwKLQkJCQkJImNncl9kZWwiKTsKLQotCQlpZiAoSVNfRVJSKHRo cmVhZCkpCi0JCQlnb3RvIG91dDsKLQotCQlrdGhyZWFkX2JpbmQodGhyZWFkLCBxbWFuX2Nncl9j cHVzW2Nnci0+Y2dyaWRdKTsKLQkJd2FrZV91cF9wcm9jZXNzKHRocmVhZCk7Ci0JCXdhaXRfZm9y X2NvbXBsZXRpb24oJmNncl9jb21wLmNvbXBsZXRpb24pOworCQlzbXBfY2FsbF9mdW5jdGlvbl9z aW5nbGUocW1hbl9jZ3JfY3B1c1tjZ3ItPmNncmlkXSwKKwkJCQkJIHFtYW5fZGVsZXRlX2Nncl9z bXBfY2FsbCwgY2dyLCB0cnVlKTsKIAkJcHJlZW1wdF9lbmFibGUoKTsKIAkJcmV0dXJuOwogCX0K LW91dDoKKwogCXFtYW5fZGVsZXRlX2NncihjZ3IpOwogCXByZWVtcHRfZW5hYmxlKCk7CiB9Ci0t IAoyLjE0LjMKCgpGcm9tIGMzYTM0ZWFiOTBjMGE0ZWE2YzA2Y2I1NWZlY2E0YzRmNTQzZGZhZTMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hZGFsaW4gQnVjdXIgPG1hZGFsaW4uYnVj dXJAbnhwLmNvbT4KRGF0ZTogV2VkLCAxNCBNYXIgMjAxOCAwODozNzoyOSAtMDUwMApTdWJqZWN0 OiBbUEFUQ0ggMzUvNTNdIGRwYWFfZXRoOiBmaXggZXJyb3IgaW4gZHBhYV9yZW1vdmUoKQoKWyBV cHN0cmVhbSBjb21taXQgODgwNzUyNTZlZTgxNzA0MWQ2OGMyMzg3ZjI5MDY1YjVjYjJiMzQyYSBd CgpUaGUgcmVjZW50IGNoYW5nZXMgdGhhdCBtYWtlIHRoZSBkcml2ZXIgcHJvYmluZyBjb21wYXRp YmxlIHdpdGggRFNBCndlcmUgbm90IHByb3BhZ2F0ZWQgaW4gdGhlIGRwYV9yZW1vdmUoKSBmdW5j dGlvbiwgYnJlYWtpbmcgdGhlCm1vZHVsZSB1bmxvYWQgZnVuY3Rpb24uIFVzaW5nIHRoZSBwcm9w ZXIgZGV2aWNlIHRvIGFkZHJlc3MgdGhlIGlzc3VlLgoKU2lnbmVkLW9mZi1ieTogTWFkYWxpbiBC dWN1ciA8bWFkYWxpbi5idWN1ckBueHAuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNj YWxlL2RwYWEvZHBhYV9ldGguYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVz Y2FsZS9kcGFhL2RwYWFfZXRoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBh YS9kcGFhX2V0aC5jCmluZGV4IDdjYWE4ZGE0ODQyMS4uM2FmNWUwYzA4MjMzIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aC5jCisrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRoLmMKQEAgLTI4NjAsNyAr Mjg2MCw3IEBAIHN0YXRpYyBpbnQgZHBhYV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKIAlzdHJ1Y3QgZGV2aWNlICpkZXY7CiAJaW50IGVycjsKIAotCWRldiA9ICZwZGV2LT5k ZXY7CisJZGV2ID0gcGRldi0+ZGV2LnBhcmVudDsKIAluZXRfZGV2ID0gZGV2X2dldF9kcnZkYXRh KGRldik7CiAKIAlwcml2ID0gbmV0ZGV2X3ByaXYobmV0X2Rldik7Ci0tIAoyLjE0LjMKCgpGcm9t IDNiNzlmOGRiNmQ4NjQ1ZjBhMGM3MTk1OGQxOTg0MTM0OWYzMTJlMjEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IENhbWVsaWEgR3JvemEgPGNhbWVsaWEuZ3JvemFAbnhwLmNvbT4KRGF0 ZTogV2VkLCAxNCBNYXIgMjAxOCAwODozNzozMCAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMzYvNTNd IGRwYWFfZXRoOiByZW1vdmUgZHVwbGljYXRlIGluaXRpYWxpemF0aW9uCgpbIFVwc3RyZWFtIGNv bW1pdCA1NjUxODYzNjJiNzMyMjZhMjg4ODMwYWJlNTk1ZjA1ZjBjZWMwYmJjIF0KClRoZSBmZF9m b3JtYXQgaGFzIGFscmVhZHkgYmVlbiBpbml0aWFsaXplZCBhdCB0aGlzIHBvaW50LgoKU2lnbmVk LW9mZi1ieTogQ2FtZWxpYSBHcm96YSA8Y2FtZWxpYS5ncm96YUBueHAuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguYyB8IDEgLQogMSBmaWxlIGNoYW5n ZWQsIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVl c2NhbGUvZHBhYS9kcGFhX2V0aC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2Rw YWEvZHBhYV9ldGguYwppbmRleCAzYWY1ZTBjMDgyMzMuLjYyN2Y3ZjcxNGIxOCAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aC5jCkBAIC0yMjc4LDcg KzIyNzgsNiBAQCBzdGF0aWMgZW51bSBxbWFuX2NiX2RxcnJfcmVzdWx0IHJ4X2RlZmF1bHRfZHFy cihzdHJ1Y3QgcW1hbl9wb3J0YWwgKnBvcnRhbCwKIAl2YWRkciA9IHBoeXNfdG9fdmlydChhZGRy KTsKIAlwcmVmZXRjaCh2YWRkciArIHFtX2ZkX2dldF9vZmZzZXQoZmQpKTsKIAotCWZkX2Zvcm1h dCA9IHFtX2ZkX2dldF9mb3JtYXQoZmQpOwogCS8qIFRoZSBvbmx5IEZEIHR5cGVzIHRoYXQgd2Ug bWF5IHJlY2VpdmUgYXJlIGNvbnRpZyBhbmQgUy9HICovCiAJV0FSTl9PTigoZmRfZm9ybWF0ICE9 IHFtX2ZkX2NvbnRpZykgJiYgKGZkX2Zvcm1hdCAhPSBxbV9mZF9zZykpOwogCi0tIAoyLjE0LjMK CgpGcm9tIDgzM2NkYjkxZjMzYzg3OGY1Y2RkYTRmMDYxYmM1YWEyNDliOTJiMjkgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IENhbWVsaWEgR3JvemEgPGNhbWVsaWEuZ3JvemFAbnhwLmNv bT4KRGF0ZTogV2VkLCAxNCBNYXIgMjAxOCAwODozNzozMSAtMDUwMApTdWJqZWN0OiBbUEFUQ0gg MzcvNTNdIGRwYWFfZXRoOiBpbmNyZW1lbnQgdGhlIFJYIGRyb3BwZWQgY291bnRlciB3aGVuIG5l ZWRlZAoKWyBVcHN0cmVhbSBjb21taXQgZTRkMWIzN2MxN2QwMDBhM2RhOTM2OGEzZTI2MGZiOWVh NDkyN2MyNSBdCgpTaWduZWQtb2ZmLWJ5OiBDYW1lbGlhIEdyb3phIDxjYW1lbGlhLmdyb3phQG54 cC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aC5jIHwg NCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGgu YyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRoLmMKaW5kZXgg NjI3ZjdmNzE0YjE4Li42YzA2NzlmZDc4YjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRoLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv ZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguYwpAQCAtMjMxMCw4ICsyMzEwLDEwIEBAIHN0YXRpYyBl bnVtIHFtYW5fY2JfZHFycl9yZXN1bHQgcnhfZGVmYXVsdF9kcXJyKHN0cnVjdCBxbWFuX3BvcnRh bCAqcG9ydGFsLAogCiAJc2tiX2xlbiA9IHNrYi0+bGVuOwogCi0JaWYgKHVubGlrZWx5KG5ldGlm X3JlY2VpdmVfc2tiKHNrYikgPT0gTkVUX1JYX0RST1ApKQorCWlmICh1bmxpa2VseShuZXRpZl9y ZWNlaXZlX3NrYihza2IpID09IE5FVF9SWF9EUk9QKSkgeworCQlwZXJjcHVfc3RhdHMtPnJ4X2Ry b3BwZWQrKzsKIAkJcmV0dXJuIHFtYW5fY2JfZHFycl9jb25zdW1lOworCX0KIAogCXBlcmNwdV9z dGF0cy0+cnhfcGFja2V0cysrOwogCXBlcmNwdV9zdGF0cy0+cnhfYnl0ZXMgKz0gc2tiX2xlbjsK LS0gCjIuMTQuMwoKCkZyb20gMDg5M2VhNTQzY2IzYWU2YzMwYWQwNGRlNmUyYmYzMDVlMTU1OTY1 MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2FtZWxpYSBHcm96YSA8Y2FtZWxpYS5n cm96YUBueHAuY29tPgpEYXRlOiBXZWQsIDE0IE1hciAyMDE4IDA4OjM3OjMyIC0wNTAwClN1Ympl Y3Q6IFtQQVRDSCAzOC81M10gZHBhYV9ldGg6IHJlbW92ZSBkdXBsaWNhdGUgaW5jcmVtZW50IG9m IHRoZSB0eF9lcnJvcnMKIGNvdW50ZXIKClsgVXBzdHJlYW0gY29tbWl0IDgyZDE0MWNkMTlkMDg4 ZWU0MWZlYWZkZTRhNmY4NmVlYjQwZDkzYzUgXQoKVGhlIHR4X2Vycm9ycyBjb3VudGVyIGlzIGlu Y3JlbWVudGVkIGJ5IHRoZSBkcGFhX3htaXQgY2FsbGVyLgoKU2lnbmVkLW9mZi1ieTogQ2FtZWxp YSBHcm96YSA8Y2FtZWxpYS5ncm96YUBueHAuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYWRhbGluIEJ1 Y3VyIDxtYWRhbGluLmJ1Y3VyQG54cC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2Nh bGUvZHBhYS9kcGFhX2V0aC5jIHwgMSAtCiAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRo LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aC5jCmluZGV4 IDZjMDY3OWZkNzhiOC4uZTRlYzMyYTljYTE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRoLmMKQEAgLTIwMDgsNyArMjAwOCw2IEBAIHN0YXRpYyBp bmxpbmUgaW50IGRwYWFfeG1pdChzdHJ1Y3QgZHBhYV9wcml2ICpwcml2LAogCX0KIAogCWlmICh1 bmxpa2VseShlcnIgPCAwKSkgewotCQlwZXJjcHVfc3RhdHMtPnR4X2Vycm9ycysrOwogCQlwZXJj cHVfc3RhdHMtPnR4X2ZpZm9fZXJyb3JzKys7CiAJCXJldHVybiBlcnI7CiAJfQotLSAKMi4xNC4z CgoKRnJvbSA2MWNmMzBkMjBmNjRhNzc3OGIyODRlMDUxMjBlNWYzZTMxMzg4NjQ0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4ZXkgS29kYW5ldiA8YWxleGV5LmtvZGFuZXZAb3Jh Y2xlLmNvbT4KRGF0ZTogVHVlLCA2IE1hciAyMDE4IDIyOjU3OjAxICswMzAwClN1YmplY3Q6IFtQ QVRDSCAzOS81M10gZGNjcDogY2hlY2sgc2sgZm9yIGNsb3NlZCBzdGF0ZSBpbiBkY2NwX3NlbmRt c2coKQoKWyBVcHN0cmVhbSBjb21taXQgNjdmOTNkZjc5YWVlZmMzYWRkNGU0YjMxYTc1MjYwMGY4 MzQyMzZlMiBdCgpkY2NwX2Rpc2Nvbm5lY3QoKSBzZXRzICdkcC0+ZGNjcHNfaGNfdHhfY2NpZCcg dHggaGFuZGxlciB0byBOVUxMLAp0aGVyZWZvcmUgaWYgRENDUCBzb2NrZXQgaXMgZGlzY29ubmVj dGVkIGFuZCBkY2NwX3NlbmRtc2coKSBpcwpjYWxsZWQgYWZ0ZXIgaXQsIGl0IHdpbGwgY2F1c2Ug YSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4KZGNjcF93cml0ZV94bWl0KCkuCgpUaGlzIGNy YXNoIGFuZCB0aGUgcmVwcm9kdWNlciB3YXMgcmVwb3J0ZWQgYnkgc3l6Ym90LiBMb29rcyBsaWtl Cml0IGlzIHJlcHJvZHVjZWQgaWYgY29tbWl0IDY5YzY0ODY2Y2UwNyAoImRjY3A6IENWRS0yMDE3 LTg4MjQ6CnVzZS1hZnRlci1mcmVlIGluIERDQ1AgY29kZSIpIGlzIGFwcGxpZWQuCgpSZXBvcnRl ZC1ieTogc3l6Ym90K2Y5OWFiMzg4N2FiNjVkNzBmODE2QHN5emthbGxlci5hcHBzcG90bWFpbC5j b20KU2lnbmVkLW9mZi1ieTogQWxleGV5IEtvZGFuZXYgPGFsZXhleS5rb2RhbmV2QG9yYWNsZS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvZGNjcC9wcm90by5jIHwgNSArKysrKwogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9kY2NwL3Byb3RvLmMgYi9uZXQvZGNjcC9wcm90by5j CmluZGV4IDlkNDNjMWY0MDI3NC4uZmYzYjA1OGNmNThjIDEwMDY0NAotLS0gYS9uZXQvZGNjcC9w cm90by5jCisrKyBiL25ldC9kY2NwL3Byb3RvLmMKQEAgLTc4OSw2ICs3ODksMTEgQEAgaW50IGRj Y3Bfc2VuZG1zZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IGxl bikKIAlpZiAoc2tiID09IE5VTEwpCiAJCWdvdG8gb3V0X3JlbGVhc2U7CiAKKwlpZiAoc2stPnNr X3N0YXRlID09IERDQ1BfQ0xPU0VEKSB7CisJCXJjID0gLUVOT1RDT05OOworCQlnb3RvIG91dF9k aXNjYXJkOworCX0KKwogCXNrYl9yZXNlcnZlKHNrYiwgc2stPnNrX3Byb3QtPm1heF9oZWFkZXIp OwogCXJjID0gbWVtY3B5X2Zyb21fbXNnKHNrYl9wdXQoc2tiLCBsZW4pLCBtc2csIGxlbik7CiAJ aWYgKHJjICE9IDApCi0tIAoyLjE0LjMKCgpGcm9tIDgxOWQzODhlMDMxMWYwZjNkN2FjMzAxZWY1 OTQ1OWQ2Y2IxMDVmZGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IExvcmVuem8gQmlh bmNvbmkgPGxvcmVuem8uYmlhbmNvbmlAcmVkaGF0LmNvbT4KRGF0ZTogVGh1LCA4IE1hciAyMDE4 IDE3OjAwOjAyICswMTAwClN1YmplY3Q6IFtQQVRDSCA0MC81M10gaXB2NjogZml4IGFjY2VzcyB0 byBub24tbGluZWFyIHBhY2tldCBpbgogbmRpc2NfZmlsbF9yZWRpcmVjdF9oZHJfb3B0aW9uKCkK ClsgVXBzdHJlYW0gY29tbWl0IDlmNjJjMTVmMjhiMGQxZDc0NjczNDY2NmQ4OGE3OWYwOGJhMWU0 M2UgXQoKRml4IHRoZSBmb2xsb3dpbmcgc2xhYi1vdXQtb2YtYm91bmRzIGthc2FuIHJlcG9ydCBp bgpuZGlzY19maWxsX3JlZGlyZWN0X2hkcl9vcHRpb24gd2hlbiB0aGUgaW5jb21pbmcgaXB2NiBw YWNrZXQgaXMgbm90CmxpbmVhciBhbmQgdGhlIGFjY2Vzc2VkIGRhdGEgYXJlIG5vdCBpbiB0aGUg bGluZWFyIGRhdGEgcmVnaW9uIG9mIG9yaWdfc2tiLgoKWyAxNTAzLjEyMjUwOF0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 ClsgMTUwMy4xMjI4MzJdIEJVRzogS0FTQU46IHNsYWItb3V0LW9mLWJvdW5kcyBpbiBuZGlzY19z ZW5kX3JlZGlyZWN0KzB4OTRlLzB4OTkwClsgMTUwMy4xMjMwMzZdIFJlYWQgb2Ygc2l6ZSAxMTg0 IGF0IGFkZHIgZmZmZjg4MDAyOThhYjZiMCBieSB0YXNrIG5ldHBlcmYvMTkzMgoKWyAxNTAzLjEy MzIyMF0gQ1BVOiAwIFBJRDogMTkzMiBDb21tOiBuZXRwZXJmIE5vdCB0YWludGVkIDQuMTYuMC1y YzIrICMxMjQKWyAxNTAzLjEyMzM0N10gSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAo UTM1ICsgSUNIOSwgMjAwOSksIEJJT1MgMS4xMC4yLTIuZmMyNyAwNC8wMS8yMDE0ClsgMTUwMy4x MjM1MjddIENhbGwgVHJhY2U6ClsgMTUwMy4xMjM1NzldICA8SVJRPgpbIDE1MDMuMTIzNjM4XSAg cHJpbnRfYWRkcmVzc19kZXNjcmlwdGlvbisweDZlLzB4MjgwClsgMTUwMy4xMjM4NDldICBrYXNh bl9yZXBvcnQrMHgyMzMvMHgzNTAKWyAxNTAzLjEyMzk0Nl0gIG1lbWNweSsweDFmLzB4NTAKWyAx NTAzLjEyNDAzN10gIG5kaXNjX3NlbmRfcmVkaXJlY3QrMHg5NGUvMHg5OTAKWyAxNTAzLjEyNTE1 MF0gIGlwNl9mb3J3YXJkKzB4MTI0Mi8weDEzYjAKWy4uLl0KWyAxNTAzLjE1Mzg5MF0gQWxsb2Nh dGVkIGJ5IHRhc2sgMTkzMjoKWyAxNTAzLjE1Mzk4Ml0gIGthc2FuX2ttYWxsb2MrMHg5Zi8weGQw ClsgMTUwMy4xNTQwNzRdICBfX2ttYWxsb2NfdHJhY2tfY2FsbGVyKzB4YjUvMHgxNjAKWyAxNTAz LjE1NDE5OF0gIF9fa21hbGxvY19yZXNlcnZlLmlzcmEuNDErMHgyNC8weDcwClsgMTUwMy4xNTQz MjRdICBfX2FsbG9jX3NrYisweDEzMC8weDNlMApbIDE1MDMuMTU0NDE1XSAgc2N0cF9wYWNrZXRf dHJhbnNtaXQrMHgyMWEvMHgxODEwClsgMTUwMy4xNTQ1MzNdICBzY3RwX291dHFfZmx1c2grMHhj MTQvMHgxZGIwClsgMTUwMy4xNTQ2MjRdICBzY3RwX2RvX3NtKzB4MzRlLzB4Mjc0MApbIDE1MDMu MTU0NzE1XSAgc2N0cF9wcmltaXRpdmVfU0VORCsweDU3LzB4NzAKWyAxNTAzLjE1NDgwN10gIHNj dHBfc2VuZG1zZysweGFhNi8weDFiMTAKWyAxNTAzLjE1NDg5N10gIHNvY2tfc2VuZG1zZysweDY4 LzB4ODAKWyAxNTAzLjE1NDk4N10gIF9fX3N5c19zZW5kbXNnKzB4NDMxLzB4NGIwClsgMTUwMy4x NTUwNzhdICBfX3N5c19zZW5kbXNnKzB4YTQvMHgxMzAKWyAxNTAzLjE1NTE2OF0gIGRvX3N5c2Nh bGxfNjQrMHgxNzEvMHgzZjAKWyAxNTAzLjE1NTI1OV0gIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJf aHdmcmFtZSsweDQyLzB4YjcKClsgMTUwMy4xNTU0MzZdIEZyZWVkIGJ5IHRhc2sgMTkzMjoKWyAx NTAzLjE1NTUyN10gIF9fa2FzYW5fc2xhYl9mcmVlKzB4MTM0LzB4MTgwClsgMTUwMy4xNTU2MThd ICBrZnJlZSsweGJjLzB4MTgwClsgMTUwMy4xNTU3MDldICBza2JfcmVsZWFzZV9kYXRhKzB4Mjdm LzB4MmMwClsgMTUwMy4xNTU4MDBdICBjb25zdW1lX3NrYisweDk0LzB4ZTAKWyAxNTAzLjE1NTg4 OV0gIHNjdHBfY2h1bmtfcHV0KzB4MWFhLzB4MWYwClsgMTUwMy4xNTU5NzldICBzY3RwX2lucV9w b3ArMHgyZjgvMHg2ZTAKWyAxNTAzLjE1NjA3MF0gIHNjdHBfYXNzb2NfYmhfcmN2KzB4NmEvMHgy MzAKWyAxNTAzLjE1NjE2NF0gIHNjdHBfaW5xX3B1c2grMHgxMTcvMHgxNTAKWyAxNTAzLjE1NjI1 NV0gIHNjdHBfYmFja2xvZ19yY3YrMHhkZi8weDRhMApbIDE1MDMuMTU2MzQ2XSAgX19yZWxlYXNl X3NvY2srMHgxNDIvMHgyNTAKWyAxNTAzLjE1NjQzNl0gIHJlbGVhc2Vfc29jaysweDgwLzB4MTgw ClsgMTUwMy4xNTY1MjZdICBzY3RwX3NlbmRtc2crMHhiYjAvMHgxYjEwClsgMTUwMy4xNTY2MTdd ICBzb2NrX3NlbmRtc2crMHg2OC8weDgwClsgMTUwMy4xNTY3MDhdICBfX19zeXNfc2VuZG1zZysw eDQzMS8weDRiMApbIDE1MDMuMTU2Nzk5XSAgX19zeXNfc2VuZG1zZysweGE0LzB4MTMwClsgMTUw My4xNTY4ODldICBkb19zeXNjYWxsXzY0KzB4MTcxLzB4M2YwClsgMTUwMy4xNTY5ODBdICBlbnRy eV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0Mi8weGI3CgpbIDE1MDMuMTU3MTU4XSBUaGUg YnVnZ3kgYWRkcmVzcyBiZWxvbmdzIHRvIHRoZSBvYmplY3QgYXQgZmZmZjg4MDAyOThhYjYwMAog ICAgICAgICAgICAgICAgd2hpY2ggYmVsb25ncyB0byB0aGUgY2FjaGUga21hbGxvYy0xMDI0IG9m IHNpemUgMTAyNApbIDE1MDMuMTU3NDQ0XSBUaGUgYnVnZ3kgYWRkcmVzcyBpcyBsb2NhdGVkIDE3 NiBieXRlcyBpbnNpZGUgb2YKICAgICAgICAgICAgICAgIDEwMjQtYnl0ZSByZWdpb24gW2ZmZmY4 ODAwMjk4YWI2MDAsIGZmZmY4ODAwMjk4YWJhMDApClsgMTUwMy4xNTc3MDJdIFRoZSBidWdneSBh ZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIHBhZ2U6ClsgMTUwMy4xNTc4MjBdIHBhZ2U6ZmZmZmVhMDAw MGE2MmEwMCBjb3VudDoxIG1hcGNvdW50OjAgbWFwcGluZzowMDAwMDAwMDAwMDAwMDAwIGluZGV4 OjB4MCBjb21wb3VuZF9tYXBjb3VudDogMApbIDE1MDMuMTU4MDUzXSBmbGFnczogMHg0MDAwMDAw MDAwMDA4MTAwKHNsYWJ8aGVhZCkKWyAxNTAzLjE1ODE3MV0gcmF3OiA0MDAwMDAwMDAwMDA4MTAw IDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMTgwMGUwMDBlClsgMTUw My4xNTgzNTBdIHJhdzogZGVhZDAwMDAwMDAwMDEwMCBkZWFkMDAwMDAwMDAwMjAwIGZmZmY4ODAw MzYwMDI2MDAgMDAwMDAwMDAwMDAwMDAwMApbIDE1MDMuMTU4NTIzXSBwYWdlIGR1bXBlZCBiZWNh dXNlOiBrYXNhbjogYmFkIGFjY2VzcyBkZXRlY3RlZAoKWyAxNTAzLjE1ODY5OF0gTWVtb3J5IHN0 YXRlIGFyb3VuZCB0aGUgYnVnZ3kgYWRkcmVzczoKWyAxNTAzLjE1ODgxNl0gIGZmZmY4ODAwMjk4 YWI5MDA6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwClsg MTUwMy4xNTg5ODhdICBmZmZmODgwMDI5OGFiOTgwOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMApbIDE1MDMuMTU5MTY1XSA+ZmZmZjg4MDAyOThhYmEwMDog ZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMKWyAxNTAzLjE1 OTMzOF0gICAgICAgICAgICAgICAgICAgIF4KWyAxNTAzLjE1OTQzNl0gIGZmZmY4ODAwMjk4YWJh ODA6IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiClsgMTUw My4xNTk2MTBdICBmZmZmODgwMDI5OGFiYjAwOiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBm YiBmYiBmYiBmYiBmYiBmYiBmYgpbIDE1MDMuMTU5Nzg1XSA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KWyAxNTAzLjE1OTk2 NF0gRGlzYWJsaW5nIGxvY2sgZGVidWdnaW5nIGR1ZSB0byBrZXJuZWwgdGFpbnQKClRoZSB0ZXN0 IHNjZW5hcmlvIHRvIHRyaWdnZXIgdGhlIGlzc3VlIGNvbnNpc3RzIG9mIDQgZGV2aWNlczoKLSBI MDogZGF0YSBzZW5kZXIsIGNvbm5lY3RlZCB0byBMQU4wCi0gSDE6IGRhdGEgcmVjZWl2ZXIsIGNv bm5lY3RlZCB0byBMQU4xCi0gR1cwIGFuZCBHVzE6IHJvdXRlcnMgYmV0d2VlbiBMQU4wIGFuZCBM QU4xLiBCb3RoIG9mIHRoZW0gaGF2ZSBhbgogIGV0aGVybmV0IGNvbm5lY3Rpb24gb24gTEFOMCBh bmQgTEFOMQpPbiBIezAsMX0gc2V0IEdXMCBhcyBkZWZhdWx0IGdhdGV3YXkgd2hpbGUgb24gR1cw IHNldCBHVzEgYXMgbmV4dCBob3AgZm9yCmRhdGEgZnJvbSBMQU4wIHRvIExBTjEuCk1vcmVvdmVy IGNyZWF0ZSBhbiBpcDZpcDYgdHVubmVsIGJldHdlZW4gSDAgYW5kIEgxIGFuZCBzZW5kIDMgY29u Y3VycmVudApkYXRhIHN0cmVhbXMgKFRDUC9VRFAvU0NUUCkgZnJvbSBIMCB0byBIMSB0aHJvdWdo IGlwNmlwNiB0dW5uZWwgKHNlbmQKYnVmZmVyIHNpemUgaXMgc2V0IHRvIDE2SykuIFdoaWxlIGRh dGEgc3RyZWFtcyBhcmUgYWN0aXZlIGZsdXNoIHRoZSByb3V0ZQpjYWNoZSBvbiBIQSBtdWx0aXBs ZSB0aW1lcy4KSSBoYXZlIG5vdCBiZWVuIGFibGUgdG8gaWRlbnRpZnkgYSBnaXZlbiBjb21taXQg dGhhdCBpbnRyb2R1Y2VkIHRoZSBpc3N1ZQpzaW5jZSwgdXNpbmcgdGhlIHJlcHJvZHVjZXIgZGVz Y3JpYmVkIGFib3ZlLCB0aGUga2FzYW4gcmVwb3J0IGhhcyBiZWVuCnRyaWdnZXJlZCBmcm9tIDQu MTQgYW5kIEkgaGF2ZSBub3QgZ29uZSBiYWNrIGZ1cnRoZXIuCgpSZXBvcnRlZC1ieTogSmlhbmxp biBTaGkgPGppc2hpQHJlZGhhdC5jb20+ClJldmlld2VkLWJ5OiBTdGVmYW5vIEJyaXZpbyA8c2Jy aXZpb0ByZWRoYXQuY29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29n bGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBMb3JlbnpvIEJpYW5jb25pIDxsb3JlbnpvLmJpYW5jb25p QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9uZGlzYy5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAy IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9uZGlz Yy5jIGIvbmV0L2lwdjYvbmRpc2MuYwppbmRleCBmNjFhNWI2MTNiNTIuLmJhNWUwNGM2YWUxNyAx MDA2NDQKLS0tIGEvbmV0L2lwdjYvbmRpc2MuYworKysgYi9uZXQvaXB2Ni9uZGlzYy5jCkBAIC0x NTU0LDcgKzE1NTQsOCBAQCBzdGF0aWMgdm9pZCBuZGlzY19maWxsX3JlZGlyZWN0X2hkcl9vcHRp b24oc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkqKG9wdCsrKSA9IChyZF9sZW4gPj4gMyk7CiAJb3B0 ICs9IDY7CiAKLQltZW1jcHkob3B0LCBpcHY2X2hkcihvcmlnX3NrYiksIHJkX2xlbiAtIDgpOwor CXNrYl9jb3B5X2JpdHMob3JpZ19za2IsIHNrYl9uZXR3b3JrX29mZnNldChvcmlnX3NrYiksIG9w dCwKKwkJICAgICAgcmRfbGVuIC0gOCk7CiB9CiAKIHZvaWQgbmRpc2Nfc2VuZF9yZWRpcmVjdChz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgaW42X2FkZHIgKnRhcmdldCkKLS0gCjIu MTQuMwoKCkZyb20gYTdkMmM3OGM2OTAwYjRkZjc4ZmMwYjQ1ZTZkNjdjNWMxMjNlZjYxYSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpEYXRlOiBUdWUsIDYgTWFyIDIwMTggMDc6NTQ6NTMgLTA4MDAKU3ViamVjdDogW1BBVENI IDQxLzUzXSBsMnRwOiBkbyBub3QgYWNjZXB0IGFyYml0cmFyeSBzb2NrZXRzCgpbIFVwc3RyZWFt IGNvbW1pdCAxN2NmZTc5YTY1Zjk4YWJlNTM1MjYxODU2YzVhZWYxNGYzMDZkZmY3IF0KCnN5emth bGxlciBmb3VuZCBhbiBpc3N1ZSBjYXVzZWQgYnkgbGFjayBvZiBzdWZmaWNpZW50IGNoZWNrcwpp biBsMnRwX3R1bm5lbF9jcmVhdGUoKQoKUkFXIHNvY2tldHMgY2FuIG5vdCBiZSBjb25zaWRlcmVk IGFzIFVEUCBvbmVzIGZvciBpbnN0YW5jZS4KCkluIGFub3RoZXIgcGF0Y2gsIHdlIHNoYWxsIHJl cGxhY2UgYWxsIHByX2VycigpIGJ5IGxlc3MgaW50cnVzaXZlCnByX2RlYnVnKCkgc28gdGhhdCBz eXprYWxsZXIgY2FuIGZpbmQgb3RoZXIgYnVncyBmYXN0ZXIuCkFja2VkLWJ5OiBHdWlsbGF1bWUg TmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZyPgpBY2tlZC1ieTogSmFtZXMgQ2hhcG1hbiA8amNo YXBtYW5Aa2F0YWxpeC5jb20+Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQlVHOiBLQVNBTjogc2xhYi1vdXQtb2YtYm91 bmRzIGluIHNldHVwX3VkcF90dW5uZWxfc29jaysweDNlZS8weDVmMCBuZXQvaXB2NC91ZHBfdHVu bmVsLmM6NjkKZHN0X3JlbGVhc2U6IGRzdDowMDAwMDAwMGQ1M2QwZDBmIHJlZmNudDotMQpXcml0 ZSBvZiBzaXplIDEgYXQgYWRkciBmZmZmODgwMWQwMTNiNzk4IGJ5IHRhc2sgc3l6LWV4ZWN1dG9y My82MjQyCgpDUFU6IDEgUElEOiA2MjQyIENvbW06IHN5ei1leGVjdXRvcjMgTm90IHRhaW50ZWQg NC4xNi4wLXJjMisgIzI1MwpIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5n aW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRy YWNlOgogX19kdW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6MTcgW2lubGluZV0KIGR1bXBfc3Rh Y2srMHgxOTQvMHgyNGQgbGliL2R1bXBfc3RhY2suYzo1MwogcHJpbnRfYWRkcmVzc19kZXNjcmlw dGlvbisweDczLzB4MjUwIG1tL2thc2FuL3JlcG9ydC5jOjI1Ngoga2FzYW5fcmVwb3J0X2Vycm9y IG1tL2thc2FuL3JlcG9ydC5jOjM1NCBbaW5saW5lXQoga2FzYW5fcmVwb3J0KzB4MjNiLzB4MzYw IG1tL2thc2FuL3JlcG9ydC5jOjQxMgogX19hc2FuX3JlcG9ydF9zdG9yZTFfbm9hYm9ydCsweDE3 LzB4MjAgbW0va2FzYW4vcmVwb3J0LmM6NDM1CiBzZXR1cF91ZHBfdHVubmVsX3NvY2srMHgzZWUv MHg1ZjAgbmV0L2lwdjQvdWRwX3R1bm5lbC5jOjY5CiBsMnRwX3R1bm5lbF9jcmVhdGUrMHgxMzU0 LzB4MTdmMCBuZXQvbDJ0cC9sMnRwX2NvcmUuYzoxNTk2CiBwcHBvbDJ0cF9jb25uZWN0KzB4MTRi MS8weDFkZDAgbmV0L2wydHAvbDJ0cF9wcHAuYzo3MDcKIFNZU0NfY29ubmVjdCsweDIxMy8weDRh MCBuZXQvc29ja2V0LmM6MTY0MAogU3lTX2Nvbm5lY3QrMHgyNC8weDMwIG5ldC9zb2NrZXQuYzox NjIxCiBkb19zeXNjYWxsXzY0KzB4MjgwLzB4OTQwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI4 NwogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDIvMHhiNwoKRml4ZXM6IGZkNTU4 ZDE4NmRmMiAoImwydHA6IFNwbGl0IHBwcG9sMnRwIHBhdGNoIGludG8gc2VwYXJhdGUgbDJ0cCBh bmQgcHBwIHBhcnRzIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29n bGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxzeXprYWxsZXJAZ29vZ2xlZ3JvdXBzLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9sMnRwL2wydHBfY29yZS5jIHwgOCArKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRwX2Nv cmUuYyBiL25ldC9sMnRwL2wydHBfY29yZS5jCmluZGV4IDg2MWI2N2MzNDE5MS4uZThiMjZhZmVi MTk0IDEwMDY0NAotLS0gYS9uZXQvbDJ0cC9sMnRwX2NvcmUuYworKysgYi9uZXQvbDJ0cC9sMnRw X2NvcmUuYwpAQCAtMTQ2Niw5ICsxNDY2LDE0IEBAIGludCBsMnRwX3R1bm5lbF9jcmVhdGUoc3Ry dWN0IG5ldCAqbmV0LCBpbnQgZmQsIGludCB2ZXJzaW9uLCB1MzIgdHVubmVsX2lkLCB1MzIKIAkJ ZW5jYXAgPSBjZmctPmVuY2FwOwogCiAJLyogUXVpY2sgc2FuaXR5IGNoZWNrcyAqLworCWVyciA9 IC1FUFJPVE9OT1NVUFBPUlQ7CisJaWYgKHNrLT5za190eXBlICE9IFNPQ0tfREdSQU0pIHsKKwkJ cHJfZGVidWcoInR1bmwgJWh1OiBmZCAlZCB3cm9uZyBzb2NrZXQgdHlwZVxuIiwKKwkJCSB0dW5u ZWxfaWQsIGZkKTsKKwkJZ290byBlcnI7CisJfQogCXN3aXRjaCAoZW5jYXApIHsKIAljYXNlIEwy VFBfRU5DQVBUWVBFX1VEUDoKLQkJZXJyID0gLUVQUk9UT05PU1VQUE9SVDsKIAkJaWYgKHNrLT5z a19wcm90b2NvbCAhPSBJUFBST1RPX1VEUCkgewogCQkJcHJfZXJyKCJ0dW5sICVodTogZmQgJWQg d3JvbmcgcHJvdG9jb2wsIGdvdCAlZCwgZXhwZWN0ZWQgJWRcbiIsCiAJCQkgICAgICAgdHVubmVs X2lkLCBmZCwgc2stPnNrX3Byb3RvY29sLCBJUFBST1RPX1VEUCk7CkBAIC0xNDc2LDcgKzE0ODEs NiBAQCBpbnQgbDJ0cF90dW5uZWxfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgaW50IGZkLCBpbnQg dmVyc2lvbiwgdTMyIHR1bm5lbF9pZCwgdTMyCiAJCX0KIAkJYnJlYWs7CiAJY2FzZSBMMlRQX0VO Q0FQVFlQRV9JUDoKLQkJZXJyID0gLUVQUk9UT05PU1VQUE9SVDsKIAkJaWYgKHNrLT5za19wcm90 b2NvbCAhPSBJUFBST1RPX0wyVFApIHsKIAkJCXByX2VycigidHVubCAlaHU6IGZkICVkIHdyb25n IHByb3RvY29sLCBnb3QgJWQsIGV4cGVjdGVkICVkXG4iLAogCQkJICAgICAgIHR1bm5lbF9pZCwg ZmQsIHNrLT5za19wcm90b2NvbCwgSVBQUk9UT19MMlRQKTsKLS0gCjIuMTQuMwoKCkZyb20gZGNj ZmMwZmYxYzQ4ZTdmZDIzMjY0YTg3NGEyZmQxM2ViOGEyMmNjNiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogQ2hyaXN0b3BoZSBKQUlMTEVUIDxjaHJpc3RvcGhlLmphaWxsZXRAd2FuYWRv by5mcj4KRGF0ZTogU3VuLCAxOCBNYXIgMjAxOCAyMzo1OTozNiArMDEwMApTdWJqZWN0OiBbUEFU Q0ggNDIvNTNdIG5ldDogZXRoZXJuZXQ6IGFyYzogRml4IGEgcG90ZW50aWFsIG1lbW9yeSBsZWFr IGlmIGFuCiBvcHRpb25hbCByZWd1bGF0b3IgaXMgZGVmZXJyZWQKClsgVXBzdHJlYW0gY29tbWl0 IDAwNzc3ZmFjMjhiYTNlMTI2YjllNjNlNzg5YTYxM2U4YmQyY2FiMjUgXQoKSWYgdGhlIG9wdGlv bmFsIHJlZ3VsYXRvciBpcyBkZWZlcnJlZCwgd2UgbXVzdCByZWxlYXNlIHNvbWUgcmVzb3VyY2Vz LgpUaGV5IHdpbGwgYmUgcmUtYWxsb2NhdGVkIHdoZW4gdGhlIHByb2JlIGZ1bmN0aW9uIHdpbGwg YmUgY2FsbGVkIGFnYWluLgoKRml4ZXM6IDZlYWNmMzExMzliZiAoImV0aGVybmV0OiBhcmM6IEFk ZCBzdXBwb3J0IGZvciBSb2NrY2hpcCBTb0MgbGF5ZXIgZGV2aWNlIHRyZWUgYmluZGluZ3MiKQpT aWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGhlIEpBSUxMRVQgPGNocmlzdG9waGUuamFpbGxldEB3YW5h ZG9vLmZyPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYXJjL2VtYWNfcm9ja2NoaXAuYyB8IDYgKysr Ky0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FyYy9lbWFjX3JvY2tjaGlwLmMgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9hcmMvZW1hY19yb2NrY2hpcC5jCmluZGV4IDE2ZjliZWU5OTJmZS4u MGY2NTc2ODAyNjA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hcmMvZW1hY19y b2NrY2hpcC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FyYy9lbWFjX3JvY2tjaGlwLmMK QEAgLTE2OSw4ICsxNjksMTAgQEAgc3RhdGljIGludCBlbWFjX3JvY2tjaGlwX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJLyogT3B0aW9uYWwgcmVndWxhdG9yIGZvciBQSFkg Ki8KIAlwcml2LT5yZWd1bGF0b3IgPSBkZXZtX3JlZ3VsYXRvcl9nZXRfb3B0aW9uYWwoZGV2LCAi cGh5Iik7CiAJaWYgKElTX0VSUihwcml2LT5yZWd1bGF0b3IpKSB7Ci0JCWlmIChQVFJfRVJSKHBy aXYtPnJlZ3VsYXRvcikgPT0gLUVQUk9CRV9ERUZFUikKLQkJCXJldHVybiAtRVBST0JFX0RFRkVS OworCQlpZiAoUFRSX0VSUihwcml2LT5yZWd1bGF0b3IpID09IC1FUFJPQkVfREVGRVIpIHsKKwkJ CWVyciA9IC1FUFJPQkVfREVGRVI7CisJCQlnb3RvIG91dF9jbGtfZGlzYWJsZTsKKwkJfQogCQlk ZXZfZXJyKGRldiwgIm5vIHJlZ3VsYXRvciBmb3VuZFxuIik7CiAJCXByaXYtPnJlZ3VsYXRvciA9 IE5VTEw7CiAJfQotLSAKMi4xNC4zCgoKRnJvbSBmNDg5M2FkYjkxNDE4NDAyYzE4Zjg3MDBlZGZi OTI0ZDExZWQ1MDlkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/U1o9 MjBMaW49MjA9Mjg9RTY9OUU9OTc9RTQ9Qjg9OEE9RTY9OTk9QkE9Mjk/PQogPHN6LmxpbkBtb3hh LmNvbT4KRGF0ZTogRnJpLCAxNiBNYXIgMjAxOCAwMDo1NjowMSArMDgwMApTdWJqZWN0OiBbUEFU Q0ggNDMvNTNdIG5ldDogZXRoZXJuZXQ6IHRpOiBjcHN3OiBhZGQgY2hlY2sgZm9yIGluLWJhbmQg bW9kZQogc2V0dGluZyB3aXRoIFJHTUlJIFBIWSBpbnRlcmZhY2UKTUlNRS1WZXJzaW9uOiAxLjAK Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXIt RW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IGY5ZGI1MDY5MWRiNGE3ZDg2MGZjZTk4 NWYwODBiYjNmYzIzYTdlZGUgXQoKQWNjb3JkaW5nIHRvIEFNMzM1eCBUUk1bMV0gMTQuMy42LjIs IEFNNDM3eCBUUk1bMl0gMTUuMy42LjIgYW5kCkRSQTcgVFJNWzNdIDI0LjExLjQuOC43LjMuMywg aW4tYmFuZCBtb2RlIGluIEVYVF9FTihiaXQxOCkgcmVnaXN0ZXIgaXMgb25seQphdmFpbGFibGUg d2hlbiBQSFkgaXMgY29uZmlndXJlZCBpbiBSR01JSSBtb2RlIHdpdGggMTBNYnBzIHNwZWVkLiBJ dCB3aWxsCmNhdXNlIHNvbWUgbmV0d29ya2luZyBpc3N1ZXMgd2l0aG91dCBSR01JSSBtb2RlLCBz dWNoIGFzIGNhcnJpZXIgc2Vuc2UKZXJyb3JzIGFuZCBsb3cgdGhyb3VnaHB1dC4gVEkgYWxzbyBt ZW50aW9uZWQgdGhpcyBpc3N1ZSBpbiB0aGVpciBmb3J1bVs0XS4KClRoaXMgcGF0Y2ggYWRkcyB0 aGUgY2hlY2sgbWVjaGFuaXNtIGZvciBQSFkgaW50ZXJmYWNlIHdpdGggUkdNSUkgaW50ZXJmYWNl CnR5cGUsIHRoZSBpbi1iYW5kIG1vZGUgY2FuIG9ubHkgYmUgc2V0IGluIFJHTUlJIG1vZGUgd2l0 aCAxME1icHMgc3BlZWQuCgpSZWZlcmVuY2VzOgpbMV06IGh0dHBzOi8vd3d3LnRpLmNvbS9saXQv dWcvc3BydWg3M3Avc3BydWg3M3AucGRmClsyXTogaHR0cDovL3d3dy50aS5jb20vbGl0L3VnL3Nw cnVobDdoL3NwcnVobDdoLnBkZgpbM106IGh0dHA6Ly93d3cudGkuY29tL2xpdC91Zy9zcHJ1aWMy Yi9zcHJ1aWMyYi5wZGYKWzRdOiBodHRwczovL2UyZS50aS5jb20vc3VwcG9ydC9hcm0vc2l0YXJh X2FybS9mLzc5MS9wLzY0MDc2NS8yMzkyMTU1CgpTdWdnZXN0ZWQtYnk6IEhvbHNldHkgQ2hlbiAo 6Zmz5oay6LydKSA8SG9sc2V0eS5DaGVuQG1veGEuY29tPgpTaWduZWQtb2ZmLWJ5OiBTWiBMaW4g KOael+S4iuaZuikgPHN6LmxpbkBtb3hhLmNvbT4KU2lnbmVkLW9mZi1ieTogU2NodXlsZXIgUGF0 dG9uIDxzcGF0dG9uQHRpLmNvbT4KUmV2aWV3ZWQtYnk6IEdyeWdvcmlpIFN0cmFzaGtvIDxncnln b3JpaS5zdHJhc2hrb0B0aS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC90aS9jcHN3LmMgfCAz ICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2Nwc3cuYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L3RpL2Nwc3cuYwppbmRleCBhMWZmYzNlZDc3ZjkuLmMwOGQ3NGNkMWZkMiAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvY3Bzdy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L3RpL2Nwc3cuYwpAQCAtOTk2LDcgKzk5Niw4IEBAIHN0YXRpYyB2b2lkIF9jcHN3X2Fk anVzdF9saW5rKHN0cnVjdCBjcHN3X3NsYXZlICpzbGF2ZSwKIAkJLyogc2V0IHNwZWVkX2luIGlu cHV0IGluIGNhc2UgUk1JSSBtb2RlIGlzIHVzZWQgaW4gMTAwTWJwcyAqLwogCQlpZiAocGh5LT5z cGVlZCA9PSAxMDApCiAJCQltYWNfY29udHJvbCB8PSBCSVQoMTUpOwotCQllbHNlIGlmIChwaHkt PnNwZWVkID09IDEwKQorCQkvKiBpbiBiYW5kIG1vZGUgb25seSB3b3JrcyBpbiAxME1icHMgUkdN SUkgbW9kZSAqLworCQllbHNlIGlmICgocGh5LT5zcGVlZCA9PSAxMCkgJiYgcGh5X2ludGVyZmFj ZV9pc19yZ21paShwaHkpKQogCQkJbWFjX2NvbnRyb2wgfD0gQklUKDE4KTsgLyogSW4gQmFuZCBt b2RlICovCiAKIAkJaWYgKHByaXYtPnJ4X3BhdXNlKQotLSAKMi4xNC4zCgoKRnJvbSAxMzE1NjA1 ZjllMjViZmM5YmVhYzM1Yjc0YzU0NzA1MmYyNjQ0NDhhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KRGF0ZTogU3Vu LCAxOCBNYXIgMjAxOCAxMjo0OTo1MSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNDQvNTNdIG5ldDog ZmVjOiBGaXggdW5iYWxhbmNlZCBQTSBydW50aW1lIGNhbGxzCgpbIFVwc3RyZWFtIGNvbW1pdCBh MDY5MjE1Y2Y1OTg1ZjNhYTFiYmE1NTAyNjQ5MDdkNmJkMDVjNWY3IF0KCldoZW4gdW5iaW5kaW5n L3JlbW92aW5nIHRoZSBkcml2ZXIsIHdlIHdpbGwgcnVuIGludG8gdGhlIGZvbGxvd2luZyB3YXJu aW5nczoKClsgIDI1OS42NTUxOThdIGZlYyA0MDBkMTAwMC5ldGhlcm5ldDogNDAwZDEwMDAuZXRo ZXJuZXQgc3VwcGx5IHBoeSBub3QgZm91bmQsIHVzaW5nIGR1bW15IHJlZ3VsYXRvcgpbICAyNTku NjY1MDY1XSBmZWMgNDAwZDEwMDAuZXRoZXJuZXQ6IFVuYmFsYW5jZWQgcG1fcnVudGltZV9lbmFi bGUhClsgIDI1OS42NzI3NzBdIGZlYyA0MDBkMTAwMC5ldGhlcm5ldCAodW5uYW1lZCBuZXRfZGV2 aWNlKSAodW5pbml0aWFsaXplZCk6IEludmFsaWQgTUFDIGFkZHJlc3M6IDAwOjAwOjAwOjAwOjAw OjAwClsgIDI1OS42ODMwNjJdIGZlYyA0MDBkMTAwMC5ldGhlcm5ldCAodW5uYW1lZCBuZXRfZGV2 aWNlKSAodW5pbml0aWFsaXplZCk6IFVzaW5nIHJhbmRvbSBNQUMgYWRkcmVzczogZjI6M2U6OTM6 Yjc6Mjk6YzEKWyAgMjU5LjY5NjIzOV0gbGlicGh5OiBmZWNfZW5ldF9taWlfYnVzOiBwcm9iZWQK CkF2b2lkIHRoZXNlIHdhcm5pbmdzIGJ5IGJhbGFuY2luZyB0aGUgcnVudGltZSBQTSBjYWxscyBk dXJpbmcgZmVjX2Rydl9yZW1vdmUoKS4KClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gRmFpbmVsbGkg PGYuZmFpbmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2Zl Y19tYWluLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYwppbmRleCBhNzQzMDBhNDQ1OWMuLmZl YmFkZDM5ZTI5YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2Zl Y19tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMK QEAgLTM1NzgsNiArMzU3OCw4IEBAIGZlY19kcnZfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpCiAJZmVjX2VuZXRfbWlpX3JlbW92ZShmZXApOwogCWlmIChmZXAtPnJlZ19waHkp CiAJCXJlZ3VsYXRvcl9kaXNhYmxlKGZlcC0+cmVnX3BoeSk7CisJcG1fcnVudGltZV9wdXQoJnBk ZXYtPmRldik7CisJcG1fcnVudGltZV9kaXNhYmxlKCZwZGV2LT5kZXYpOwogCWlmIChvZl9waHlf aXNfZml4ZWRfbGluayhucCkpCiAJCW9mX3BoeV9kZXJlZ2lzdGVyX2ZpeGVkX2xpbmsobnApOwog CW9mX25vZGVfcHV0KGZlcC0+cGh5X25vZGUpOwotLSAKMi4xNC4zCgoKRnJvbSBmY2UyNTg4N2Uw M2NkNDIyOTkwNGY4MzMyNmI3NzJjNzM1NTM4YWNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBBcnZpbmQgWWFkYXYgPGFydmluZC55YWRhdi5jc0BnbWFpbC5jb20+CkRhdGU6IFR1ZSwg MTMgTWFyIDIwMTggMTY6NTA6MDYgKzAxMDAKU3ViamVjdDogW1BBVENIIDQ1LzUzXSBuZXQvaXVj djogRnJlZSBtZW1vcnkgb2J0YWluZWQgYnkga3phbGxvYwoKWyBVcHN0cmVhbSBjb21taXQgZmE2 YTkxZTliOTA3MjMxZDJlMzhlYTVlZDg5YzUzN2IzNTI1ZGYzZCBdCgpGcmVlIG1lbW9yeSBieSBj YWxsaW5nIHB1dF9kZXZpY2UoKSwgaWYgYWZpdWN2X2l1Y3ZfaW5pdCBpcyBub3QKc3VjY2Vzc2Z1 bC4KClNpZ25lZC1vZmYtYnk6IEFydmluZCBZYWRhdiA8YXJ2aW5kLnlhZGF2LmNzQGdtYWlsLmNv bT4KUmV2aWV3ZWQtYnk6IENvcm5lbGlhIEh1Y2sgPGNvaHVja0ByZWRoYXQuY29tPgpTaWduZWQt b2ZmLWJ5OiBVcnN1bGEgQnJhdW4gPHVyc3VsYS5icmF1bkBkZS5pYm0uY29tPgpTaWduZWQtb2Zm LWJ5OiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC52bmV0LmlibS5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXVjdi9h Zl9pdWN2LmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXVjdi9hZl9pdWN2LmMgYi9uZXQvaXVjdi9hZl9p dWN2LmMKaW5kZXggMTQ4NTMzMTY5YjFkLi5jYTk4Mjc2YzI3MDkgMTAwNjQ0Ci0tLSBhL25ldC9p dWN2L2FmX2l1Y3YuYworKysgYi9uZXQvaXVjdi9hZl9pdWN2LmMKQEAgLTI0MzMsOSArMjQzMywx MSBAQCBzdGF0aWMgaW50IGFmaXVjdl9pdWN2X2luaXQodm9pZCkKIAlhZl9pdWN2X2Rldi0+ZHJp dmVyID0gJmFmX2l1Y3ZfZHJpdmVyOwogCWVyciA9IGRldmljZV9yZWdpc3RlcihhZl9pdWN2X2Rl dik7CiAJaWYgKGVycikKLQkJZ290byBvdXRfZHJpdmVyOworCQlnb3RvIG91dF9pdWN2X2RldjsK IAlyZXR1cm4gMDsKIAorb3V0X2l1Y3ZfZGV2OgorCXB1dF9kZXZpY2UoYWZfaXVjdl9kZXYpOwog b3V0X2RyaXZlcjoKIAlkcml2ZXJfdW5yZWdpc3RlcigmYWZfaXVjdl9kcml2ZXIpOwogb3V0X2l1 Y3Y6Ci0tIAoyLjE0LjMKCgpGcm9tIGNlMjQzMDc4ODA0MDI0NDkxMjA4NzY2NjkwYjFiNTc3ZDUx NDM4ZjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pY29sYXMgRGljaHRlbCA8bmlj b2xhcy5kaWNodGVsQDZ3aW5kLmNvbT4KRGF0ZTogV2VkLCAxNCBNYXIgMjAxOCAyMToxMDoyMyAr MDEwMApTdWJqZWN0OiBbUEFUQ0ggNDYvNTNdIG5ldGxpbms6IGF2b2lkIGEgZG91YmxlIHNrYiBm cmVlIGluIGdlbmxtc2dfbWNhc3QoKQoKWyBVcHN0cmVhbSBjb21taXQgMDJhMjM4NWYzN2E3YzY1 OTRjOWQ4OWI2NGM0YTE0NTEyNzZmMDhlYiBdCgpubG1zZ19tdWx0aWNhc3QoKSBjb25zdW1lcyBh bHdheXMgdGhlIHNrYiwgdGh1cyB0aGUgb3JpZ2luYWwgc2tiIG11c3QgYmUKZnJlZWQgb25seSB3 aGVuIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggYSBjbG9uZS4KCkZpeGVzOiBjYjlmN2E5 YTVjOTYgKCJuZXRsaW5rOiBlbnN1cmUgdG8gbG9vcCBvdmVyIGFsbCBuZXRucyBpbiBnZW5sbXNn X211bHRpY2FzdF9hbGxucygpIikKUmVwb3J0ZWQtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRj aGluZ3NAY29kZXRoaW5rLmNvLnVrPgpTaWduZWQtb2ZmLWJ5OiBOaWNvbGFzIERpY2h0ZWwgPG5p Y29sYXMuZGljaHRlbEA2d2luZC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbmV0bGluay9nZW5ldGxpbmsuYyB8IDIgKy0K IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL25ldC9uZXRsaW5rL2dlbmV0bGluay5jIGIvbmV0L25ldGxpbmsvZ2VuZXRsaW5rLmMKaW5k ZXggNmYwMjQ5OWVmMDA3Li5iOWNlODJjOTQ0MGYgMTAwNjQ0Ci0tLSBhL25ldC9uZXRsaW5rL2dl bmV0bGluay5jCisrKyBiL25ldC9uZXRsaW5rL2dlbmV0bGluay5jCkBAIC0xMTA2LDcgKzExMDYs NyBAQCBzdGF0aWMgaW50IGdlbmxtc2dfbWNhc3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHBv cnRpZCwgdW5zaWduZWQgbG9uZyBncm91cCwKIAlpZiAoIWVycikKIAkJZGVsaXZlcmVkID0gdHJ1 ZTsKIAllbHNlIGlmIChlcnIgIT0gLUVTUkNIKQotCQlnb3RvIGVycm9yOworCQlyZXR1cm4gZXJy OwogCXJldHVybiBkZWxpdmVyZWQgPyAwIDogLUVTUkNIOwogIGVycm9yOgogCWtmcmVlX3NrYihz a2IpOwotLSAKMi4xNC4zCgoKRnJvbSAxZTc4MWRjNmIwMGU3MWY1ZmI5YzUyMjEwMGMzNzZiZGY4 NGEyNTVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBBaGVybiA8ZHNhaGVy bkBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMTYgRmViIDIwMTggMTE6MDM6MDMgLTA4MDAKU3ViamVj dDogW1BBVENIIDQ3LzUzXSBuZXQ6IE9ubHkgaG9ub3IgaWZpbmRleCBpbiBJUF9QS1RJTkZPIGlm IG5vbi0wCgpbIFVwc3RyZWFtIGNvbW1pdCAyY2JiNGVhN2RlMTY3YjAyZmZhNjNlOWNkZmRiMDdh N2U3MDk0NjE1IF0KCk9ubHkgYWxsb3cgaWZpbmRleCBmcm9tIElQX1BLVElORk8gdG8gb3ZlcnJp ZGUgU09fQklORFRPREVWSUNFIHNldHRpbmdzCmlmIHRoZSBpbmRleCBpcyBhY3R1YWxseSBzZXQg aW4gdGhlIG1lc3NhZ2UuCgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFp bC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvaXB2NC9pcF9zb2NrZ2x1ZS5jIHwgNiArKysrLS0KIDEgZmlsZSBjaGFuZ2Vk LCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQv aXBfc29ja2dsdWUuYyBiL25ldC9pcHY0L2lwX3NvY2tnbHVlLmMKaW5kZXggZjU2YWFiNTRlMGM4 Li4xZTcwZWQ1MjQ0ZWEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lwX3NvY2tnbHVlLmMKKysrIGIv bmV0L2lwdjQvaXBfc29ja2dsdWUuYwpAQCAtMjU4LDcgKzI1OCw4IEBAIGludCBpcF9jbXNnX3Nl bmQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIHN0cnVjdCBpcGNtX2Nvb2tp ZSAqaXBjLAogCQkJc3JjX2luZm8gPSAoc3RydWN0IGluNl9wa3RpbmZvICopQ01TR19EQVRBKGNt c2cpOwogCQkJaWYgKCFpcHY2X2FkZHJfdjRtYXBwZWQoJnNyY19pbmZvLT5pcGk2X2FkZHIpKQog CQkJCXJldHVybiAtRUlOVkFMOwotCQkJaXBjLT5vaWYgPSBzcmNfaW5mby0+aXBpNl9pZmluZGV4 OworCQkJaWYgKHNyY19pbmZvLT5pcGk2X2lmaW5kZXgpCisJCQkJaXBjLT5vaWYgPSBzcmNfaW5m by0+aXBpNl9pZmluZGV4OwogCQkJaXBjLT5hZGRyID0gc3JjX2luZm8tPmlwaTZfYWRkci5zNl9h ZGRyMzJbM107CiAJCQljb250aW51ZTsKIAkJfQpAQCAtMjg4LDcgKzI4OSw4IEBAIGludCBpcF9j bXNnX3NlbmQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIHN0cnVjdCBpcGNt X2Nvb2tpZSAqaXBjLAogCQkJaWYgKGNtc2ctPmNtc2dfbGVuICE9IENNU0dfTEVOKHNpemVvZihz dHJ1Y3QgaW5fcGt0aW5mbykpKQogCQkJCXJldHVybiAtRUlOVkFMOwogCQkJaW5mbyA9IChzdHJ1 Y3QgaW5fcGt0aW5mbyAqKUNNU0dfREFUQShjbXNnKTsKLQkJCWlwYy0+b2lmID0gaW5mby0+aXBp X2lmaW5kZXg7CisJCQlpZiAoaW5mby0+aXBpX2lmaW5kZXgpCisJCQkJaXBjLT5vaWYgPSBpbmZv LT5pcGlfaWZpbmRleDsKIAkJCWlwYy0+YWRkciA9IGluZm8tPmlwaV9zcGVjX2RzdC5zX2FkZHI7 CiAJCQlicmVhazsKIAkJfQotLSAKMi4xNC4zCgoKRnJvbSA4MzRlMzVhMTM2MDNjNzE5MjRlYWQz YjdiYzg5N2ZhOGY0MTRhMTdkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFu IEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAxMyBNYXIgMjAxOCAx NDo0NTowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNDgvNTNdIG5ldDogc3lzdGVtcG9ydDogUmV3 cml0ZSBfX2JjbV9zeXNwb3J0X3R4X3JlY2xhaW0oKQoKWyBVcHN0cmVhbSBjb21taXQgNDg0ZDgw MmQwZjJmMjljMzM1NTYzZmNhYzJhOGZhY2YxNzRhMWJiYyBdCgpUaGVyZSBpcyBubyBuZWVkIGZv ciBjb21wbGV4IGNoZWNraW5nIGJldHdlZW4gdGhlIGxhc3QgY29uc3VtZWQgaW5kZXgKYW5kIGN1 cnJlbnQgY29uc3VtZWQgaW5kZXgsIGEgc2ltcGxlIHN1YnRyYWN0aW9uIHdpbGwgZG8uCgpUaGlz IGFsc28gZWxpbWluYXRlcyB0aGUgcG9zc2liaWxpdHkgb2YgYSBwZXJtYW5lbnQgdHJhbnNtaXQg cXVldWUgc3RhbGwKdW5kZXIgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKLSBvbmUgQ1BVIGJ1 cnN0cyByaW5nLT5zaXplIHdvcnRoIG9mIHRyYWZmaWMgKHVwIHRvIDI1NiBidWZmZXJzKSwgdG8g dGhlCiAgcG9pbnQgd2hlcmUgd2UgcnVuIG91dCBvZiBmcmVlIGRlc2NyaXB0b3JzLCBzbyB3ZSBz dG9wIHRoZSB0cmFuc21pdAogIHF1ZXVlIGF0IHRoZSBlbmQgb2YgYmNtX3N5c3BvcnRfeG1pdCgp CgotIGJlY2F1c2Ugb2Ygb3VyIGxvY2tpbmcsIHdlIGhhdmUgdGhlIHRyYW5zbWl0IHByb2Nlc3Mg ZGlzYWJsZQogIGludGVycnVwdHMgd2hpY2ggbWVhbnMgd2UgY2FuIGJlIGJsb2NraW5nIHRoZSBU WCByZWNsYW1hdGlvbiBwcm9jZXNzCgotIHdoZW4gVFggcmVjbGFtYXRpb24gZmluYWxseSBydW5z LCB3ZSB3aWxsIGJlIGNvbXB1dGluZyB0aGUgZGlmZmVyZW5jZQogIGJldHdlZW4gcmluZy0+Y19p bmRleCAobGFzdCBjb25zdW1lZCBpbmRleCBieSBTVykgYW5kIHdoYXQgdGhlIEhXCiAgcmVwb3J0 cyB0aHJvdWdoIGl0cyByZWdpc3RlcgoKLSB0aGlzIHJlZ2lzdGVyIGlzIG1hc2tlZCB3aXRoIChy aW5nLT5zaXplIC0gMSkgPSAweGZmLCB3aGljaCB3aWxsIGxlYWQKICB0byBzdHJpcHBpbmcgdGhl IHVwcGVyIGJpdHMgb2YgdGhlIGluZGV4IChyZWdpc3RlciBpcyAxNi1iaXRzIHdpZGUpCgotIHdl IHdpbGwgYmUgY29tcHV0aW5nIGxhc3RfdHhfY24gYXMgMCwgd2hpY2ggbWVhbnMgdGhlcmUgaXMg bm8gd29yayB0bwogIGJlIGRvbmUsIGFuZCB3ZSBuZXZlciB3YWtlLXVwIHRoZSB0cmFuc21pdCBx dWV1ZSwgbGVhdmluZyBpdAogIHBlcm1hbmVudGx5IGRpc2FibGVkCgpBIHByYWN0aWNhbCBleGFt cGxlIGlzIGUuZzogcmluZy0+Y19pbmRleCBha2EgbGFzdF9jX2luZGV4ID0gMTIsIHdlCnB1c2hl ZCAyNTYgZW50cmllcywgSFcgY29uc3VtZXIgaW5kZXggPSAyNjgsIHdlIG1hc2sgaXQgd2l0aCAw eGZmID0gMTIsCnNvIGxhc3RfdHhfY24gPT0gMCwgbm90aGluZyBoYXBwZW5zLgoKRml4ZXM6IDgw MTA1YmVmZGI0YiAoIm5ldDogc3lzdGVtcG9ydDogYWRkIEJyb2FkY29tIFNZU1RFTVBPUlQgRXRo ZXJuZXQgTUFDIGRyaXZlciIpClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFp bmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmNtc3lzcG9y dC5jIHwgMzMgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9iY21zeXNwb3J0LmggfCAgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAxNiBp bnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9iY21zeXNwb3J0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9h ZGNvbS9iY21zeXNwb3J0LmMKaW5kZXggMDg3ZjAxYjRkYzNhLi5mMjM5ZWYyZTZmMjMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JjbXN5c3BvcnQuYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY21zeXNwb3J0LmMKQEAgLTg1NSwxMCArODU1 LDEyIEBAIHN0YXRpYyB2b2lkIGJjbV9zeXNwb3J0X3R4X3JlY2xhaW1fb25lKHN0cnVjdCBiY21f c3lzcG9ydF90eF9yaW5nICpyaW5nLAogc3RhdGljIHVuc2lnbmVkIGludCBfX2JjbV9zeXNwb3J0 X3R4X3JlY2xhaW0oc3RydWN0IGJjbV9zeXNwb3J0X3ByaXYgKnByaXYsCiAJCQkJCSAgICAgc3Ry dWN0IGJjbV9zeXNwb3J0X3R4X3JpbmcgKnJpbmcpCiB7Ci0JdW5zaWduZWQgaW50IGNfaW5kZXgs IGxhc3RfY19pbmRleCwgbGFzdF90eF9jbiwgbnVtX3R4X2NiczsKIAl1bnNpZ25lZCBpbnQgcGt0 c19jb21wbCA9IDAsIGJ5dGVzX2NvbXBsID0gMDsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiA9 IHByaXYtPm5ldGRldjsKKwl1bnNpZ25lZCBpbnQgdHhiZHNfcHJvY2Vzc2VkID0gMDsKIAlzdHJ1 Y3QgYmNtX3N5c3BvcnRfY2IgKmNiOworCXVuc2lnbmVkIGludCB0eGJkc19yZWFkeTsKKwl1bnNp Z25lZCBpbnQgY19pbmRleDsKIAl1MzIgaHdfaW5kOwogCiAJLyogQ2xlYXIgc3RhdHVzIGJlZm9y ZSBzZXJ2aWNpbmcgdG8gcmVkdWNlIHNwdXJpb3VzIGludGVycnVwdHMgKi8KQEAgLTg3MSwyOSAr ODczLDIzIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgX19iY21fc3lzcG9ydF90eF9yZWNsYWltKHN0 cnVjdCBiY21fc3lzcG9ydF9wcml2ICpwcml2LAogCS8qIENvbXB1dGUgaG93IG1hbnkgZGVzY3Jp cHRvcnMgaGF2ZSBiZWVuIHByb2Nlc3NlZCBzaW5jZSBsYXN0IGNhbGwgKi8KIAlod19pbmQgPSB0 ZG1hX3JlYWRsKHByaXYsIFRETUFfREVTQ19SSU5HX1BST0RfQ09OU19JTkRFWChyaW5nLT5pbmRl eCkpOwogCWNfaW5kZXggPSAoaHdfaW5kID4+IFJJTkdfQ09OU19JTkRFWF9TSElGVCkgJiBSSU5H X0NPTlNfSU5ERVhfTUFTSzsKLQlyaW5nLT5wX2luZGV4ID0gKGh3X2luZCAmIFJJTkdfUFJPRF9J TkRFWF9NQVNLKTsKLQotCWxhc3RfY19pbmRleCA9IHJpbmctPmNfaW5kZXg7Ci0JbnVtX3R4X2Ni cyA9IHJpbmctPnNpemU7Ci0KLQljX2luZGV4ICY9IChudW1fdHhfY2JzIC0gMSk7Ci0KLQlpZiAo Y19pbmRleCA+PSBsYXN0X2NfaW5kZXgpCi0JCWxhc3RfdHhfY24gPSBjX2luZGV4IC0gbGFzdF9j X2luZGV4OwotCWVsc2UKLQkJbGFzdF90eF9jbiA9IG51bV90eF9jYnMgLSBsYXN0X2NfaW5kZXgg KyBjX2luZGV4OworCXR4YmRzX3JlYWR5ID0gKGNfaW5kZXggLSByaW5nLT5jX2luZGV4KSAmIFJJ TkdfQ09OU19JTkRFWF9NQVNLOwogCiAJbmV0aWZfZGJnKHByaXYsIHR4X2RvbmUsIG5kZXYsCi0J CSAgInJpbmc9JWQgY19pbmRleD0lZCBsYXN0X3R4X2NuPSVkIGxhc3RfY19pbmRleD0lZFxuIiwK LQkJICByaW5nLT5pbmRleCwgY19pbmRleCwgbGFzdF90eF9jbiwgbGFzdF9jX2luZGV4KTsKKwkJ ICAicmluZz0lZCBvbGRfY19pbmRleD0ldSBjX2luZGV4PSV1IHR4YmRzX3JlYWR5PSV1XG4iLAor CQkgIHJpbmctPmluZGV4LCByaW5nLT5jX2luZGV4LCBjX2luZGV4LCB0eGJkc19yZWFkeSk7CiAK LQl3aGlsZSAobGFzdF90eF9jbi0tID4gMCkgewotCQljYiA9IHJpbmctPmNicyArIGxhc3RfY19p bmRleDsKKwl3aGlsZSAodHhiZHNfcHJvY2Vzc2VkIDwgdHhiZHNfcmVhZHkpIHsKKwkJY2IgPSAm cmluZy0+Y2JzW3JpbmctPmNsZWFuX2luZGV4XTsKIAkJYmNtX3N5c3BvcnRfdHhfcmVjbGFpbV9v bmUocmluZywgY2IsICZieXRlc19jb21wbCwgJnBrdHNfY29tcGwpOwogCiAJCXJpbmctPmRlc2Nf Y291bnQrKzsKLQkJbGFzdF9jX2luZGV4Kys7Ci0JCWxhc3RfY19pbmRleCAmPSAobnVtX3R4X2Ni cyAtIDEpOworCQl0eGJkc19wcm9jZXNzZWQrKzsKKworCQlpZiAobGlrZWx5KHJpbmctPmNsZWFu X2luZGV4IDwgcmluZy0+c2l6ZSAtIDEpKQorCQkJcmluZy0+Y2xlYW5faW5kZXgrKzsKKwkJZWxz ZQorCQkJcmluZy0+Y2xlYW5faW5kZXggPSAwOwogCX0KIAogCXU2NF9zdGF0c191cGRhdGVfYmVn aW4oJnByaXYtPnN5bmNwKTsKQEAgLTE0MDYsNiArMTQwMiw3IEBAIHN0YXRpYyBpbnQgYmNtX3N5 c3BvcnRfaW5pdF90eF9yaW5nKHN0cnVjdCBiY21fc3lzcG9ydF9wcml2ICpwcml2LAogCW5ldGlm X3R4X25hcGlfYWRkKHByaXYtPm5ldGRldiwgJnJpbmctPm5hcGksIGJjbV9zeXNwb3J0X3R4X3Bv bGwsIDY0KTsKIAlyaW5nLT5pbmRleCA9IGluZGV4OwogCXJpbmctPnNpemUgPSBzaXplOworCXJp bmctPmNsZWFuX2luZGV4ID0gMDsKIAlyaW5nLT5hbGxvY19zaXplID0gcmluZy0+c2l6ZTsKIAly aW5nLT5kZXNjX2NwdSA9IHA7CiAJcmluZy0+ZGVzY19jb3VudCA9IHJpbmctPnNpemU7CmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY21zeXNwb3J0LmggYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY21zeXNwb3J0LmgKaW5kZXggZjVhOTg0YzFjOTg2 Li4xOWM5MWM3NmUzMjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L2JjbXN5c3BvcnQuaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY21zeXNw b3J0LmgKQEAgLTcwNiw3ICs3MDYsNyBAQCBzdHJ1Y3QgYmNtX3N5c3BvcnRfdHhfcmluZyB7CiAJ dW5zaWduZWQgaW50CWRlc2NfY291bnQ7CS8qIE51bWJlciBvZiBkZXNjcmlwdG9ycyAqLwogCXVu c2lnbmVkIGludAljdXJyX2Rlc2M7CS8qIEN1cnJlbnQgZGVzY3JpcHRvciAqLwogCXVuc2lnbmVk IGludAljX2luZGV4OwkvKiBMYXN0IGNvbnN1bWVyIGluZGV4ICovCi0JdW5zaWduZWQgaW50CXBf aW5kZXg7CS8qIEN1cnJlbnQgcHJvZHVjZXIgaW5kZXggKi8KKwl1bnNpZ25lZCBpbnQJY2xlYW5f aW5kZXg7CS8qIEN1cnJlbnQgY2xlYW4gaW5kZXggKi8KIAlzdHJ1Y3QgYmNtX3N5c3BvcnRfY2Ig KmNiczsJLyogVHJhbnNtaXQgY29udHJvbCBibG9ja3MgKi8KIAlzdHJ1Y3QgZG1hX2Rlc2MJKmRl c2NfY3B1OwkvKiBDUFUgdmlldyBvZiB0aGUgZGVzY3JpcHRvciAqLwogCXN0cnVjdCBiY21fc3lz cG9ydF9wcml2ICpwcml2OwkvKiBwcml2YXRlIGNvbnRleHQgYmFja3BvaW50ZXIgKi8KLS0gCjIu MTQuMwoKCkZyb20gZGU4MmI2MjNiNDk1OGMwNjFlZGJlMzlmNjU1N2IwZGExZmRhMDc1YSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWljaGFsIEthbGRlcm9uIDxNaWNoYWwuS2FsZGVy b25AY2F2aXVtLmNvbT4KRGF0ZTogV2VkLCAxNCBNYXIgMjAxOCAxNDo1Njo1MyArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggNDkvNTNdIHFlZGU6IEZpeCBxZWRyIGxpbmsgdXBkYXRlCgpbIFVwc3RyZWFt IGNvbW1pdCA0NjA5YWRjMjcxNzU4Mzk0MDgzNTk4MjI1MjNkZTcyNDdkNTZjODdmIF0KCkxpbmsg dXBkYXRlcyB3ZXJlIG5vdCByZXBvcnRlZCB0byBxZWRyIGNvcnJlY3RseS4KTGVhZGluZyB0byBj YXNlcyB3aGVyZSBhIGxpbmsgY291bGQgYmUgZG93biwgYnV0IHFlZHIKd291bGQgc2VlIGl0IGFz IHVwLgpJbiBhZGRpdGlvbiwgb25jZSBxZWRlIHdhcyBsb2FkZWQsIGxpbmsgc3RhdGUgd291bGQg YmUgdXAsCnJlZ2FyZGxlc3Mgb2YgdGhlIGFjdHVhbCBsaW5rIHN0YXRlLgoKU2lnbmVkLW9mZi1i eTogTWljaGFsIEthbGRlcm9uIDxtaWNoYWwua2FsZGVyb25AY2F2aXVtLmNvbT4KU2lnbmVkLW9m Zi1ieTogQXJpZWwgRWxpb3IgPGFyaWVsLmVsaW9yQGNhdml1bS5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9xbG9naWMvcWVkZS9xZWRlX21haW4uYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9xbG9naWMvcWVkZS9xZWRlX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3Fsb2dpYy9xZWRlL3FlZGVfbWFpbi5jCmluZGV4IDhmOWIzZWI4MjEzNy4uY2RjY2NlY2ZjMjRh IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkZS9xZWRlX21haW4u YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkZS9xZWRlX21haW4uYwpAQCAt MjA2Niw4ICsyMDY2LDYgQEAgc3RhdGljIGludCBxZWRlX2xvYWQoc3RydWN0IHFlZGVfZGV2ICpl ZGV2LCBlbnVtIHFlZGVfbG9hZF9tb2RlIG1vZGUsCiAJbGlua19wYXJhbXMubGlua191cCA9IHRy dWU7CiAJZWRldi0+b3BzLT5jb21tb24tPnNldF9saW5rKGVkZXYtPmNkZXYsICZsaW5rX3BhcmFt cyk7CiAKLQlxZWRlX3JkbWFfZGV2X2V2ZW50X29wZW4oZWRldik7Ci0KIAllZGV2LT5zdGF0ZSA9 IFFFREVfU1RBVEVfT1BFTjsKIAogCURQX0lORk8oZWRldiwgIkVuZGluZyBzdWNjZXNzZnVsbHkg cWVkZSBsb2FkXG4iKTsKQEAgLTIxNjgsMTIgKzIxNjYsMTQgQEAgc3RhdGljIHZvaWQgcWVkZV9s aW5rX3VwZGF0ZSh2b2lkICpkZXYsIHN0cnVjdCBxZWRfbGlua19vdXRwdXQgKmxpbmspCiAJCQlE UF9OT1RJQ0UoZWRldiwgIkxpbmsgaXMgdXBcbiIpOwogCQkJbmV0aWZfdHhfc3RhcnRfYWxsX3F1 ZXVlcyhlZGV2LT5uZGV2KTsKIAkJCW5ldGlmX2NhcnJpZXJfb24oZWRldi0+bmRldik7CisJCQlx ZWRlX3JkbWFfZGV2X2V2ZW50X29wZW4oZWRldik7CiAJCX0KIAl9IGVsc2UgewogCQlpZiAobmV0 aWZfY2Fycmllcl9vayhlZGV2LT5uZGV2KSkgewogCQkJRFBfTk9USUNFKGVkZXYsICJMaW5rIGlz IGRvd25cbiIpOwogCQkJbmV0aWZfdHhfZGlzYWJsZShlZGV2LT5uZGV2KTsKIAkJCW5ldGlmX2Nh cnJpZXJfb2ZmKGVkZXYtPm5kZXYpOworCQkJcWVkZV9yZG1hX2Rldl9ldmVudF9jbG9zZShlZGV2 KTsKIAkJfQogCX0KIH0KLS0gCjIuMTQuMwoKCkZyb20gYTgzYWEyOGNjOTc0OThmZDk1ZTZhOGIy YTZlYzFmMTE3OGVkZjM5ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVmluaWNpdXMg Q29zdGEgR29tZXMgPHZpbmljaXVzLmdvbWVzQGludGVsLmNvbT4KRGF0ZTogV2VkLCAxNCBNYXIg MjAxOCAxMzozMjowOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNTAvNTNdIHNrYnVmZjogRml4IG5v dCB3YWtpbmcgYXBwbGljYXRpb25zIHdoZW4gZXJyb3JzIGFyZQogZW5xdWV1ZWQKClsgVXBzdHJl YW0gY29tbWl0IDZlNWQ1OGZkYzliZWRkMDI1NWE4NzgxYjI1OGYxMGJiZGM2M2U5NzUgXQoKV2hl biBlcnJvcnMgYXJlIGVucXVldWVkIHRvIHRoZSBlcnJvciBxdWV1ZSB2aWEgc29ja19xdWV1ZV9l cnJfc2tiKCkKZnVuY3Rpb24sIGl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIHdhaXRpbmcgYXBwbGlj YXRpb24gaXMgbm90IG5vdGlmaWVkLgoKQ2FsbGluZyAnc2stPnNrX2RhdGFfcmVhZHkoKScgd291 bGQgbm90IG5vdGlmeSBhcHBsaWNhdGlvbnMgdGhhdApzZWxlY3RlZCBvbmx5IFBPTExFUlIgZXZl bnRzIGluIHBvbGwoKSAoZm9yIGV4YW1wbGUpLgoKRml4ZXM6IDFkYTE3N2U0YzNmNCAoIkxpbnV4 LTIuNi4xMi1yYzIiKQpSZXBvcnRlZC1ieTogUmFuZHkgRS4gV2l0dCA8cmFuZHkuZS53aXR0QGlu dGVsLmNvbT4KUmV2aWV3ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4K U2lnbmVkLW9mZi1ieTogVmluaWNpdXMgQ29zdGEgR29tZXMgPHZpbmljaXVzLmdvbWVzQGludGVs LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9jb3JlL3NrYnVmZi5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvc2tidWZmLmMgYi9u ZXQvY29yZS9za2J1ZmYuYwppbmRleCAwOGY1NzQwODEzMTUuLjM1MzhiYTg3NzFlOSAxMDA2NDQK LS0tIGEvbmV0L2NvcmUvc2tidWZmLmMKKysrIGIvbmV0L2NvcmUvc2tidWZmLmMKQEAgLTQxNzMs NyArNDE3Myw3IEBAIGludCBzb2NrX3F1ZXVlX2Vycl9za2Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1 Y3Qgc2tfYnVmZiAqc2tiKQogCiAJc2tiX3F1ZXVlX3RhaWwoJnNrLT5za19lcnJvcl9xdWV1ZSwg c2tiKTsKIAlpZiAoIXNvY2tfZmxhZyhzaywgU09DS19ERUFEKSkKLQkJc2stPnNrX2RhdGFfcmVh ZHkoc2spOworCQlzay0+c2tfZXJyb3JfcmVwb3J0KHNrKTsKIAlyZXR1cm4gMDsKIH0KIEVYUE9S VF9TWU1CT0woc29ja19xdWV1ZV9lcnJfc2tiKTsKLS0gCjIuMTQuMwoKCkZyb20gNDE5YTA3NTIy YTZhOGMxMDgyN2IzMDY3ODZlZDQyYWY1MTM4Y2E4NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogQXJrYWRpIFNoYXJzaGV2c2t5IDxhcmthZGlzQG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1 LCA4IE1hciAyMDE4IDEyOjQyOjEwICswMjAwClN1YmplY3Q6IFtQQVRDSCA1MS81M10gdGVhbTog Rml4IGRvdWJsZSBmcmVlIGluIGVycm9yIHBhdGgKClsgVXBzdHJlYW0gY29tbWl0IGNiY2M2MDdl MTg0MjI1NTVkYjU2OWI1OTM2MDhhZWMyNjExMWNiMGIgXQoKVGhlIF9fc2VuZF9hbmRfYWxsb2Nf c2tiKCkgcmVjZWl2ZXMgYSBza2IgcHRyIGFzIGEgcGFyYW1ldGVyIGJ1dCBpbgpjYXNlIGl0IGZh aWxzIHRoZSBza2IgaXMgbm90IHZhbGlkOgotIFNlbmQgZmFpbGVkIGFuZCByZWxlYXNlZCB0aGUg c2tiIGludGVybmFsbHkuCi0gQWxsb2NhdGlvbiBmYWlsZWQuCgpUaGUgY3VycmVudCBjb2RlIHRy aWVzIHRvIHJlbGVhc2UgdGhlIHNrYiBpbiBjYXNlIG9mIGZhaWx1cmUgd2hpY2gKY2F1c2VzIHJl ZHVuZGFudCBmcmVlaW5nLgoKRml4ZXM6IDliMDBjZjJkMTAyNCAoInRlYW06IGltcGxlbWVudCBt dWx0aXBhcnQgbmV0bGluayBtZXNzYWdlcyBmb3Igb3B0aW9ucyB0cmFuc2ZlcnMiKQpTaWduZWQt b2ZmLWJ5OiBBcmthZGkgU2hhcnNoZXZza3kgPGFya2FkaXNAbWVsbGFub3guY29tPgpBY2tlZC1i eTogSmlyaSBQaXJrbyA8amlyaUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC90ZWFtL3RlYW0u YyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90ZWFtL3RlYW0uYyBiL2RyaXZlcnMvbmV0L3Rl YW0vdGVhbS5jCmluZGV4IGE0Njg0Mzk5NjlkZi4uNTZjNzAxYjczYzEyIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC90ZWFtL3RlYW0uYworKysgYi9kcml2ZXJzL25ldC90ZWFtL3RlYW0uYwpAQCAt MjM5NSw3ICsyMzk1LDcgQEAgc3RhdGljIGludCB0ZWFtX25sX3NlbmRfb3B0aW9uc19nZXQoc3Ry dWN0IHRlYW0gKnRlYW0sIHUzMiBwb3J0aWQsIHUzMiBzZXEsCiAJaWYgKCFubGgpIHsKIAkJZXJy ID0gX19zZW5kX2FuZF9hbGxvY19za2IoJnNrYiwgdGVhbSwgcG9ydGlkLCBzZW5kX2Z1bmMpOwog CQlpZiAoZXJyKQotCQkJZ290byBlcnJvdXQ7CisJCQlyZXR1cm4gZXJyOwogCQlnb3RvIHNlbmRf ZG9uZTsKIAl9CiAKQEAgLTI2ODEsNyArMjY4MSw3IEBAIHN0YXRpYyBpbnQgdGVhbV9ubF9zZW5k X3BvcnRfbGlzdF9nZXQoc3RydWN0IHRlYW0gKnRlYW0sIHUzMiBwb3J0aWQsIHUzMiBzZXEsCiAJ aWYgKCFubGgpIHsKIAkJZXJyID0gX19zZW5kX2FuZF9hbGxvY19za2IoJnNrYiwgdGVhbSwgcG9y dGlkLCBzZW5kX2Z1bmMpOwogCQlpZiAoZXJyKQotCQkJZ290byBlcnJvdXQ7CisJCQlyZXR1cm4g ZXJyOwogCQlnb3RvIHNlbmRfZG9uZTsKIAl9CiAKLS0gCjIuMTQuMwoKCg== ----Next_Part(Wed_Mar_28_11_35_10_2018_787)----