From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Edgar E. Iglesias" Subject: [RFC v2 5/6] xen/arm: zynqmp: Forward plaform specific firmware calls Date: Tue, 7 Feb 2017 20:42:04 +0100 Message-ID: <1486496525-14637-6-git-send-email-edgar.iglesias@gmail.com> References: <1486496525-14637-1-git-send-email-edgar.iglesias@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1486496525-14637-1-git-send-email-edgar.iglesias@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: edgar.iglesias@xilinx.com, julien.grall@arm.com, sstabellini@kernel.org List-Id: xen-devel@lists.xenproject.org RnJvbTogIkVkZ2FyIEUuIElnbGVzaWFzIiA8ZWRnYXIuaWdsZXNpYXNAeGlsaW54LmNvbT4KCklt cGxlbWVudCBhbiBFRU1JIG1lZGlhdG9yIGFuZCBmb3J3YXJkIHBsYXRmb3JtIHNwZWNpZmljCmZp cm13YXJlIGNhbGxzIGZyb20gZ3Vlc3RzIHRvIGZpcm13YXJlLgoKVGhlIEVFTUkgbWVkaWF0b3Ig aXMgcmVzcG9uc2libGUgZm9yIGltcGxlbWVudGluZyBhY2Nlc3MKY29udHJvbHMgbW9kaWZ5aW5n IG9yIGJsb2NraW5nIGNhbGxzIHRoYXQgdHJ5IHRvIG9wZXJhdGUKb24gc2V0dXAgZm9yIGRldmlj ZXMgdGhhdCBhcmUgbm90IHVuZGVyIHRoZSBjYWxsaW5nIGd1ZXN0J3MKY29udHJvbC4KCkVFTUk6 Cmh0dHBzOi8vd3d3LnhpbGlueC5jb20vc3VwcG9ydC9kb2N1bWVudGF0aW9uL3VzZXJfZ3VpZGVz L3VnMTIwMC1lZW1pLWFwaS5wZGYKClNpZ25lZC1vZmYtYnk6IEVkZ2FyIEUuIElnbGVzaWFzIDxl ZGdhci5pZ2xlc2lhc0B4aWxpbnguY29tPgotLS0KIHhlbi9hcmNoL2FybS9wbGF0Zm9ybXMvTWFr ZWZpbGUgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHhlbi9hcmNoL2FybS9wbGF0Zm9ybXMv eGlsaW54LXp5bnFtcC1lZW1pLmMgICAgICAgIHwgNzk0ICsrKysrKysrKysrKysrKysrKysrKwog eGVuL2FyY2gvYXJtL3BsYXRmb3Jtcy94aWxpbngtenlucW1wLmMgICAgICAgICAgICAgfCAgMTgg KwogeGVuL2luY2x1ZGUvYXNtLWFybS9wbGF0Zm9ybXMveGlsaW54LXp5bnFtcC1lZW1pLmggfCAz MzcgKysrKysrKysrCiB4ZW4vaW5jbHVkZS9hc20tYXJtL3BsYXRmb3Jtcy94aWxpbngtenlucW1w LW1tLmggICB8IDI4NCArKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxNDM0IGluc2VydGlvbnMo KykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vcGxhdGZvcm1zL3hpbGlueC16eW5x bXAtZWVtaS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2luY2x1ZGUvYXNtLWFybS9wbGF0Zm9y bXMveGlsaW54LXp5bnFtcC1lZW1pLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vaW5jbHVkZS9h c20tYXJtL3BsYXRmb3Jtcy94aWxpbngtenlucW1wLW1tLmgKCmRpZmYgLS1naXQgYS94ZW4vYXJj aC9hcm0vcGxhdGZvcm1zL01ha2VmaWxlIGIveGVuL2FyY2gvYXJtL3BsYXRmb3Jtcy9NYWtlZmls ZQppbmRleCA0OWZhNjgzLi5iNThiNzFmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vcGxhdGZv cm1zL01ha2VmaWxlCisrKyBiL3hlbi9hcmNoL2FybS9wbGF0Zm9ybXMvTWFrZWZpbGUKQEAgLTgs MyArOCw0IEBAIG9iai0kKENPTkZJR19BUk1fNjQpICs9IHNlYXR0bGUubwogb2JqLSQoQ09ORklH X0FSTV8zMikgKz0gc3VueGkubwogb2JqLSQoQ09ORklHX0FSTV82NCkgKz0geGdlbmUtc3Rvcm0u bwogb2JqLSQoQ09ORklHX0FSTV82NCkgKz0geGlsaW54LXp5bnFtcC5vCitvYmotJChDT05GSUdf QVJNXzY0KSArPSB4aWxpbngtenlucW1wLWVlbWkubwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJt L3BsYXRmb3Jtcy94aWxpbngtenlucW1wLWVlbWkuYyBiL3hlbi9hcmNoL2FybS9wbGF0Zm9ybXMv eGlsaW54LXp5bnFtcC1lZW1pLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u YzJjMTg0ZAotLS0gL2Rldi9udWxsCisrKyBiL3hlbi9hcmNoL2FybS9wbGF0Zm9ybXMveGlsaW54 LXp5bnFtcC1lZW1pLmMKQEAgLTAsMCArMSw3OTQgQEAKKy8qCisgKiB4ZW4vYXJjaC9hcm0vcGxh dGZvcm1zL3hpbGlueC16eW5xbXAtZWVtaS5jCisgKgorICogWGlsaW54IFp5bnFNUCBFRU1JIEFQ SSBtZWRpYXRvci4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTcgWGlsaW54IEluYy4KKyAqIFdy aXR0ZW4gYnkgRWRnYXIgRS4gSWdsZXNpYXMgPGVkZ2FyLmlnbGVzaWFzQHhpbGlueC5jb20+Cisg KgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor ICovCisKKy8qCisgKiBNZWRpYXRvciBmb3IgdGhlIEVFTUkgUG93ZXIgTWFuZ2VtZW50IEFQSS4K KyAqCisgKiBSZWZzOgorICogaHR0cHM6Ly93d3cueGlsaW54LmNvbS9zdXBwb3J0L2RvY3VtZW50 YXRpb24vdXNlcl9ndWlkZXMvdWcxMjAwLWVlbWktYXBpLnBkZgorICoKKyAqIEJhY2tncm91bmQ6 CisgKiBUaGUgWnlucU1QIGhhcyBhIHN1YnN5c3RlbSBuYW1lZCB0aGUgUE1VIHdpdGggYSBDUFUg YW5kIHNwZWNpYWwgZGV2aWNlcworICogZGVkaWNhdGVkIHRvIHJ1bm5pbmcgUG93ZXIgTWFuYWdl bWVudCBGaXJtd2FyZS4gT3RoZXIgbWFzdGVycyBpbiB0aGUKKyAqIHN5c3RlbSBuZWVkIHRvIHNl bmQgcmVxdWVzdHMgdG8gdGhlIFBNVSBpbiBvcmRlciB0byBmb3IgZXhhbXBsZToKKyAqICogTWFu YWdlIHBvd2VyIHN0YXRlCisgKiAqIENvbmZpZ3VyZSBjbG9ja3MKKyAqICogUHJvZ3JhbSBiaXRz dHJlYW1zIGZvciB0aGUgcHJvZ3JhbW1hYmxlIGxvZ2ljCisgKiAqIGV0YworICoKKyAqIEFsbHRo b3VnaCB0aGUgZGV0YWlscyBvZiB0aGUgc2V0dXAgYXJlIGNvbmZpZ3VyYWJsZSwgaW4gdGhlIGNv bW1vbiBjYXNlCisgKiB0aGUgUE1VIGxpdmVzIGluIHRoZSBTZWN1cmUgd29ybGQuIE5TIFdvcmxk IGNhbm5vdCBkaXJlY3RseSBjb21tdW5pY2F0ZQorICogd2l0aCBpdCBhbmQgbXVzdCB1c2UgcHJv eHkgc2VydmljZXMgZnJvbSBBUk0gVHJ1c3RlZCBGaXJtd2FyZSB0byByZWFjaAorICogdGhlIFBN VS4KKyAqCisgKiBQb3dlciBNYW5hZ2VtZW50IG9uIHRoZSBaeW5xTVAgaXMgaW1wbGVtZW50ZWQg aW4gYSBsYXllcmVkIG1hbm5lci4KKyAqIFRoZSBQTVUga25vd3MgYWJvdXQgdmFyaW91cyBtYXN0 ZXJzIGFuZCB3aWxsIGVuZm9yY2UgYWNjZXNzIGNvbnRyb2xzCisgKiBiYXNlZCBvbiBhIHByZS1j b25maWd1cmVkIHBhcnRpdGlvbmluZy4gVGhpcyBjb25maWd1cmF0aW9uIGRpY3RhdGVzCisgKiB3 aGljaCBkZXZpY2VzIGFyZSBvd25lZCBieSB0aGUgdmFyaW91cyBtYXN0ZXJzIGFuZCB0aGUgUE1V IEZXIG1ha2VzIHN1cmUKKyAqIHRoYXQgYSBnaXZlbiBtYXN0ZXIgY2Fubm90IHR1cm4gb2ZmIGEg ZGV2aWNlIHRoYXQgaXQgZG9lcyBub3Qgb3duIG9yIHRoYXQKKyAqIGlzIGluIHVzZSBieSBvdGhl ciBtYXN0ZXJzLgorICoKKyAqIFRoZSBQTVUgaXMgbm90IGF3YXJlIG9mIG11bHRpcGxlIGV4ZWN1 dGlvbiBzdGF0ZXMgaW4gbWFzdGVycy4KKyAqIEZvciBleGFtcGxlLCBpdCB0cmVhdHMgdGhlIEFS TXY4IGNvcmVzIGFzIHNpbmdsZSB1bml0cyBhbmQgZG9lcyBub3QKKyAqIGRpc3Rpbmd1aXNoIGJl dHdlZW4gU2VjdXJlIHZzIE5TIE9TOnMgbm9yIGRvZXMgaXQga25vdyBhYm91dCBIeXBlcnZpc29y cworICogYW5kIG11bHRpcGxlIGd1ZXN0cy4gSXQgaXMgdXAgdG8gc29mdHdhcmUgb24gdGhlIEFS TXY4IGNvcmVzIHRvIHByZXNlbnQKKyAqIGEgdW5pZmllZCB2aWV3IG9mIGl0cyBwb3dlciByZXF1 aXJlbWVudHMuCisgKgorICogVG8gaW1wbGVtZW50IHRoaXMgdW5pZmllZCB2aWV3LCBBUk0gVHJ1 c3RlZCBGaXJtd2FyZSBhdCBFTDMgcHJvdmlkZXMKKyAqIGFjY2VzcyB0byB0aGUgUE0gQVBJIHZp YSBTTUMgY2FsbHMuIEFSTSBUcnVzdGVkIEZpcm13YXJlIGlzIHJlc3BvbnNpYmxlCisgKiBmb3Ig bWVkaWF0aW5nIGJldHdlZW4gdGhlIFNlY3VyZSBhbmQgdGhlIE5TIHdvcmxkLCByZWplY3Rpbmcg U01DIGNhbGxzCisgKiB0aGF0IHJlcXVlc3QgY2hhbmdlcyB0aGF0IGFyZSBub3QgYWxsb3dlZC4K KyAqCisgKiBYZW4gcnVubmluZyBhYm92ZSBBVEYgb3ducyB0aGUgTlMgd29ybGQgYW5kIGlzIHJl c3BvbnNpYmxlIGZvciBwcmVzZW50aW5nCisgKiB1bmlmaWVkIFBNIHJlcXVlc3RzIHRha2luZyBh bGwgZ3Vlc3RzIGFuZCB0aGUgaHlwZXJ2aXNvciBpbnRvIGFjY291bnQuCisgKgorICogSW1wbGVt ZW50YXRpb246CisgKiBUaGUgUE0gQVBJIGNvbnRhaW5zIGRpZmZlcmVudCBjbGFzc2VzIG9mIGNh bGxzLgorICogQ2VydGFpbiBjYWxscyBhcmUgaGFybWxlc3MgdG8gZXhwb3NlIHRvIGFueSBndWVz dC4KKyAqIFRoZXNlIGluY2x1ZGUgY2FsbHMgdG8gZ2V0IHRoZSBQTSBBUEkgVmVyc2lvbiwgb3Ig dG8gcmVhZCBvdXQgdGhlIHZlcnNpb24KKyAqIG9mIHRoZSBjaGlwIHdlJ3JlIHJ1bm5pbmcgb24u CisgKgorICogT3RoZXIgY2FsbHMgYXJlIG1vcmUgcHJvYmxlbWF0aWMuIEhlcmUncmUgc29tZToK KyAqICogUG93ZXIgcmVxdWVzdHMgZm9yIG5vZGVzIChpLmUgdHVybiBvbiBvciBvZmYgYSBnaXZl biBkZXZpY2UpCisgKiAqIFJlc2V0IGxpbmUgY29udHJvbCAoaS5lIHJlc2V0IGEgZ2l2ZW4gZGV2 aWNlKQorICogKiBNTUlPIGFjY2VzcyAoaS5lIGRpcmVjdGx5IGFjY2VzcyBjbG9jayBhbmQgcmVz ZXQgcmVnaXN0ZXJzKQorICoKKyAqIFBvd2VyIHJlcXVlc3RzIGZvciBub2RlczoKKyAqIEluIG9y ZGVyIHRvIGNvcnJlY3RseSBtZWRpYXRlIHRoZXNlIGNhbGxzLCB3ZSBuZWVkIHRvIGtub3cgaWYK KyAqIGd1ZXN0cyBpc3N1aW5nIHRoZXNlIGNhbGxzIGhhdmUgb3duZXJzaGlwIG9mIHRoZSBnaXZl biBkZXZpY2UuCisgKiBUaGUgYXBwcm9hY2ggdGFrZW4gaGVyZSBpcyB0byBtYXAgUE0gQVBJIE5v ZGVzIGlkZW50aWZ5aW5nCisgKiBhIGRldmljZSBpbnRvIGJhc2UgYWRkcmVzc2VzIGZvciByZWdp c3RlcnMgdGhhdCBiZWxvbmcgdG8gdGhhdAorICogc2FtZSBkZXZpY2UuCisgKgorICogSWYgdGhl IGd1ZXN0IGhhcyBhY2Nlc3MgdG8gYSBkZXZpY2VzIHJlZ2lzdGVycywgd2UgZ2l2ZSB0aGUgZ3Vl c3QKKyAqIGFjY2VzcyB0byBQTSBBUEkgY2FsbHMgdGhhdCBhZmZlY3QgdGhhdCBkZXZpY2UuIFRo aXMgaXMgaW1wbGVtZW50ZWQKKyAqIGJ5IHBtX25vZGVfYWNjZXNzIGFuZCBkb21haW5faGFzX25v ZGVfYWNjZXNzKCkuCisgKgorICogUmVzZXQgbGluZXM6CisgKiBSZXNldCBsaW5lcyBhcmUgaWRl bnRpZmllZCBieSBhIGxpc3Qgb2YgaWRlbnRpZmllcnMgdGhhdCBkbyBub3QgcmVsYXRlCisgKiB0 byBkZXZpY2Ugbm9kZXMuIFdlIGNhbiB1c2UgdGhlIHNhbWUgYXBwcm9hY2ggaGVyZSBhcyBmb3Ig bm9kZXMsIGV4Y2VwdAorICogdGhhdCB3ZSBuZWVkIGEgc2VwYXJhdGUgdGFibGUgbWFwcGluZyBy ZXNldCBsaW5lcyB0byBiYXNlIGFkZHJlc3Nlcy4KKyAqIFRoaXMgaXMgaW1wbGVtZW50ZWQgYnkg cG1fcmVzZXRfYWNjZXNzLgorICoKKyAqIE1NSU8gYWNjZXNzOgorICogVGhlc2UgY2FsbHMgYWxs b3cgZ3Vlc3RzIHRvIGFjY2VzcyBjZXJ0YWluIG1lbW9yeSByYW5nZXMuIFRoZXNlIHJhbmdlcwor ICogYXJlIHR5cGljYWxseSBwcm90ZWN0ZWQgZm9yIHNlY3VyZS13b3JsZCBhY2Nlc3Mgb25seSBh bmQgYWxzbyBmcm9tCisgKiBjZXJ0YWluIG1hc3RlcnMgb25seSwgc28gZ3Vlc3RzIGNhbm5vdCBh Y2Nlc3MgdGhlbSBkaXJlY3RseS4KKyAqIFJlZ2lzdGVycyB3aXRoaW4gdGhlIG1lbW9yeSByZWdp b25zIGFmZmVjdCBjZXJ0YWluIG5vZGVzLiBJbiB0aGlzIGNhc2UsCisgKiBvdXIgaW1wdXQgaXMg YW4gYWRkcmVzcyBhbmQgd2UgbWFwIHRoYXQgYWRkcmVzcyBpbnRvIGEgbm9kZS4gSWYgdGhlCisg KiBndWVzdCBoYXMgb3duZXJzaGlwIG9mIHRoYXQgbm9kZSwgdGhlIGFjY2VzcyBpcyBhbGxvd2Vk LgorICogU29tZSByZWdpc3RlcnMgY29udGFpbiBiaXRmaWVsZHMgYW5kIGEgc2luZ2xlIHJlZ2lz dGVyIG1heSBjb250YWluCisgKiBiaXRzIHRoYXQgYWZmZWN0IG11bHRpcGxlIG5vZGVzLgorICoK KyAqIFNvbWUgb2YgdGhlIGNhbGxzIGFjdCBvbiBtb3JlIGdsb2JhbCBzdGF0ZS4gRm9yIGV4YW1w bGUgYWN0aW5nIG9uCisgKiBOT0RFX1BTLCB3aGljaCBhZmZlY3RzIG1hbnkgYSBsb3Qgb2Ygbm9k ZXMuIFRoaXMgaGlnaGVyIGxldmVsCisgKiBvcmNoZXN0cmF0aW5nIGlzIGxlZnQgZm9yIHRoZSBo YXJkd2FyZS1kb21haW4gb25seS4KKyAqLworCisjaW5jbHVkZSA8eGVuL2lvY2FwLmg+CisjaW5j bHVkZSA8YXNtL3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8YXNtL3BsYXRmb3Jtcy94aWxpbngtenlu cW1wLWVlbWkuaD4KKyNpbmNsdWRlIDxhc20vcGxhdGZvcm1zL3hpbGlueC16eW5xbXAtbW0uaD4K Kworc3RydWN0IHBtX2FjY2VzcworeworICAgIHVpbnQ2NF90IGFkZHI7CisgICAgYm9vbCBod2Rv bV9hY2Nlc3M7ICAgIC8qIEhXIGRvbWFpbiBnZXRzIGFjY2VzcyByZWdhcmRsZXNzLiAgKi8KK307 CisKKy8qCisgKiBUaGlzIHRhYmxlIG1hcHMgYSBub2RlIGludG8gYSBtZW1vcnkgYWRkcmVzcy4K KyAqIElmIGEgZ3Vlc3QgaGFzIGFjY2VzcyB0byB0aGUgYWRkcmVzcywgaXQgaGFzIGVub3VnaCBj b250cm9sCisgKiBvdmVyIHRoZSBub2RlIHRvIGdyYW50IGl0IGFjY2VzcyB0byBFRU1JIGNhbGxz IGZvciB0aGF0IG5vZGUuCisgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcG1fYWNjZXNzIHBtX25v ZGVfYWNjZXNzW10gPSB7CisgICAgLyogTU1fUlBVIGdyYW50cyBhY2Nlc3MgdG8gYWxsbCBSUFUg Tm9kZXMuICAqLworICAgIFtOT0RFX1JQVV0gPSB7IE1NX1JQVSB9LAorICAgIFtOT0RFX1JQVV8w XSA9IHsgTU1fUlBVIH0sCisgICAgW05PREVfUlBVXzFdID0geyBNTV9SUFUgfSwKKyAgICBbTk9E RV9JUElfUlBVXzBdID0geyBNTV9SUFUgfSwKKworICAgIC8qIEdQVSBub2Rlcy4gICovCisgICAg W05PREVfR1BVXSA9IHsgTU1fR1BVIH0sCisgICAgW05PREVfR1BVX1BQXzBdID0geyBNTV9HUFUg fSwKKyAgICBbTk9ERV9HUFVfUFBfMV0gPSB7IE1NX0dQVSB9LAorCisgICAgW05PREVfVVNCXzBd ID0geyBNTV9VU0IzXzAgfSwKKyAgICBbTk9ERV9VU0JfMV0gPSB7IE1NX1VTQjNfMSB9LAorICAg IFtOT0RFX1RUQ18wXSA9IHsgTU1fVFRDMCB9LAorICAgIFtOT0RFX1RUQ18xXSA9IHsgTU1fVFRD MSB9LAorICAgIFtOT0RFX1RUQ18yXSA9IHsgTU1fVFRDMiB9LAorICAgIFtOT0RFX1RUQ18zXSA9 IHsgTU1fVFRDMyB9LAorICAgIFtOT0RFX1NBVEFdID0geyBNTV9TQVRBX0FIQ0lfSEJBIH0sCisg ICAgW05PREVfRVRIXzBdID0geyBNTV9HRU0wIH0sCisgICAgW05PREVfRVRIXzFdID0geyBNTV9H RU0xIH0sCisgICAgW05PREVfRVRIXzJdID0geyBNTV9HRU0yIH0sCisgICAgW05PREVfRVRIXzNd ID0geyBNTV9HRU0zIH0sCisgICAgW05PREVfVUFSVF8wXSA9IHsgTU1fVUFSVDAgfSwKKyAgICBb Tk9ERV9VQVJUXzFdID0geyBNTV9VQVJUMSB9LAorICAgIFtOT0RFX1NQSV8wXSA9IHsgTU1fU1BJ MCB9LAorICAgIFtOT0RFX1NQSV8xXSA9IHsgTU1fU1BJMSB9LAorICAgIFtOT0RFX0kyQ18wXSA9 IHsgTU1fSTJDMCB9LAorICAgIFtOT0RFX0kyQ18xXSA9IHsgTU1fSTJDMSB9LAorICAgIFtOT0RF X1NEXzBdID0geyBNTV9TRDAgfSwKKyAgICBbTk9ERV9TRF8xXSA9IHsgTU1fU0QxIH0sCisgICAg W05PREVfRFBdID0geyBNTV9EUCB9LAorCisgICAgLyogR3Vlc3Qgd2l0aCBHRE1BIENoYW5uZWwg MCBnZXRzIFBNIGFjY2Vzcy4gT3RoZXIgZ3Vlc3RzIGRvbid0LiAgKi8KKyAgICBbTk9ERV9HRE1B XSA9IHsgTU1fR0RNQV9DSDAgfSwKKyAgICAvKiBHdWVzdCB3aXRoIEFETUEgQ2hhbm5lbCAwIGdl dHMgUE0gYWNjZXNzLiBPdGhlciBndWVzdHMgZG9uJ3QuICAqLworICAgIFtOT0RFX0FETUFdID0g eyBNTV9BRE1BX0NIMCB9LAorCisgICAgW05PREVfTkFORF0gPSB7IE1NX05BTkQgfSwKKyAgICBb Tk9ERV9RU1BJXSA9IHsgTU1fUVNQSSB9LAorICAgIFtOT0RFX0dQSU9dID0geyBNTV9HUElPIH0s CisgICAgW05PREVfQ0FOXzBdID0geyBNTV9DQU4wIH0sCisgICAgW05PREVfQ0FOXzFdID0geyBN TV9DQU4xIH0sCisKKyAgICAvKiBEb20wIG9ubHkuICAqLworICAgIFtOT0RFX0FGSV0gPSB7IC5o d2RvbV9hY2Nlc3MgPSB0cnVlIH0sCisgICAgW05PREVfQVBMTF0gPSB7IC5od2RvbV9hY2Nlc3Mg PSB0cnVlIH0sCisgICAgW05PREVfVlBMTF0gPSB7IC5od2RvbV9hY2Nlc3MgPSB0cnVlIH0sCisg ICAgW05PREVfRFBMTF0gPSB7IC5od2RvbV9hY2Nlc3MgPSB0cnVlIH0sCisgICAgW05PREVfUlBM TF0gPSB7IC5od2RvbV9hY2Nlc3MgPSB0cnVlIH0sCisgICAgW05PREVfSU9QTExdID0geyAuaHdk b21fYWNjZXNzID0gdHJ1ZSB9LAorICAgIFtOT0RFX0REUl0gPSB7IC5od2RvbV9hY2Nlc3MgPSB0 cnVlIH0sCisgICAgW05PREVfSVBJX0FQVV0gPSB7IC5od2RvbV9hY2Nlc3MgPSB0cnVlIH0sCisg ICAgW05PREVfUENBUF0gPSB7IC5od2RvbV9hY2Nlc3MgPSB0cnVlIH0sCisKKyAgICBbTk9ERV9Q Q0lFXSA9IHsgTU1fUENJRV9BVFRSSUIgfSwKKyAgICBbTk9ERV9SVENdID0geyBNTV9SVEMgfSwK K307CisKKy8qCisgKiBUaGlzIHRhYmxlIG1hcHMgcmVzZXQgbGluZSBJRHMgaW50byBhIG1lbW9y eSBhZGRyZXNzLgorICogSWYgYSBndWVzdCBoYXMgYWNjZXNzIHRvIHRoZSBhZGRyZXNzLCBpdCBo YXMgZW5vdWdoIGNvbnRyb2wKKyAqIG92ZXIgdGhlIGFmZmVjdGVkIG5vZGUgdG8gZ3JhbnQgaXQg YWNjZXNzIHRvIEVFTUkgY2FsbHMgZm9yCisgKiByZXNldHRpbmcgdGhhdCBub2RlLgorICovCisj ZGVmaW5lIFBNX1JFU0VUX0lEWChuKSAobiAtIFBNX1JFU0VUX1BDSUVfQ0ZHKQorc3RhdGljIGNv bnN0IHN0cnVjdCBwbV9hY2Nlc3MgcG1fcmVzZXRfYWNjZXNzW10gPSB7CisgICAgW1BNX1JFU0VU X0lEWChQTV9SRVNFVF9QQ0lFX0NGRyldID0geyBNTV9BWElQQ0lFX01BSU4gfSwKKyAgICBbUE1f UkVTRVRfSURYKFBNX1JFU0VUX1BDSUVfQlJJREdFKV0gPSB7IE1NX1BDSUVfQVRUUklCIH0sCisg ICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9QQ0lFX0NUUkwpXSA9IHsgTU1fUENJRV9BVFRSSUIg fSwKKworICAgIFtQTV9SRVNFVF9JRFgoUE1fUkVTRVRfRFApXSA9IHsgTU1fRFAgfSwKKyAgICBb UE1fUkVTRVRfSURYKFBNX1JFU0VUX1NXRFRfQ1JGKV0gPSB7IE1NX1NXRFQgfSwKKyAgICBbUE1f UkVTRVRfSURYKFBNX1JFU0VUX0FGSV9GTTUpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwK KyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0FGSV9GTTQpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9 IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0FGSV9GTTMpXSA9IHsgLmh3ZG9t X2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0FGSV9GTTIpXSA9 IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0FG SV9GTTEpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBN X1JFU0VUX0FGSV9GTTApXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKworICAgIC8qIENo YW5uZWwgMCBncmFudHMgUE0gYWNjZXNzLiAgKi8KKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VU X0dETUEpXSA9IHsgTU1fR0RNQV9DSDAgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0dQ VV9QUDEpXSA9IHsgTU1fR1BVIH0sCisgICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9HUFVfUFAw KV0gPSB7IE1NX0dQVSB9LAorICAgIFtQTV9SRVNFVF9JRFgoUE1fUkVTRVRfR1QpXSA9IHsgLmh3 ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX1NBVEEpXSA9 IHsgTU1fU0FUQV9BSENJX0hCQSB9LAorCisgICAgLyogV2UgZG9uJ3QgYWxsb3cgYW55b25lIHRv IHR1cm4gb24vb2ZmIHRoZSBBQ1BVcy4gICovCisgICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9B Q1BVM19QV1JPTildID0geyAwIH0sCisgICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9BQ1BVMl9Q V1JPTildID0geyAwIH0sCisgICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9BQ1BVMV9QV1JPTild ID0geyAwIH0sCisgICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9BQ1BVMF9QV1JPTildID0geyAw IH0sCisgICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9BUFVfTDIpXSA9IHsgMCB9LAorICAgIFtQ TV9SRVNFVF9JRFgoUE1fUkVTRVRfQUNQVTMpXSA9IHsgMCB9LAorICAgIFtQTV9SRVNFVF9JRFgo UE1fUkVTRVRfQUNQVTIpXSA9IHsgMCB9LAorICAgIFtQTV9SRVNFVF9JRFgoUE1fUkVTRVRfQUNQ VTEpXSA9IHsgMCB9LAorICAgIFtQTV9SRVNFVF9JRFgoUE1fUkVTRVRfQUNQVTApXSA9IHsgMCB9 LAorCisgICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9ERFIpXSA9IHsgMCB9LAorCisgICAgW1BN X1JFU0VUX0lEWChQTV9SRVNFVF9BUE1fRlBEKV0gPSB7IC5od2RvbV9hY2Nlc3MgPSB0cnVlIH0s CisgICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9TT0ZUKV0gPSB7IC5od2RvbV9hY2Nlc3MgPSB0 cnVlIH0sCisKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0dFTTApXSA9IHsgTU1fR0VNMCB9 LAorICAgIFtQTV9SRVNFVF9JRFgoUE1fUkVTRVRfR0VNMSldID0geyBNTV9HRU0xIH0sCisgICAg W1BNX1JFU0VUX0lEWChQTV9SRVNFVF9HRU0yKV0gPSB7IE1NX0dFTTIgfSwKKyAgICBbUE1fUkVT RVRfSURYKFBNX1JFU0VUX0dFTTMpXSA9IHsgTU1fR0VNMyB9LAorCisgICAgW1BNX1JFU0VUX0lE WChQTV9SRVNFVF9RU1BJKV0gPSB7IE1NX1FTUEkgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JF U0VUX1VBUlQwKV0gPSB7IE1NX1VBUlQwIH0sCisgICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9V QVJUMSldID0geyBNTV9VQVJUMSB9LAorICAgIFtQTV9SRVNFVF9JRFgoUE1fUkVTRVRfU1BJMCld ID0geyBNTV9TUEkwIH0sCisgICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9TUEkxKV0gPSB7IE1N X1NQSTEgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX1NESU8wKV0gPSB7IE1NX1NEMCB9 LAorICAgIFtQTV9SRVNFVF9JRFgoUE1fUkVTRVRfU0RJTzEpXSA9IHsgTU1fU0QxIH0sCisgICAg W1BNX1JFU0VUX0lEWChQTV9SRVNFVF9DQU4wKV0gPSB7IE1NX0NBTjAgfSwKKyAgICBbUE1fUkVT RVRfSURYKFBNX1JFU0VUX0NBTjEpXSA9IHsgTU1fQ0FOMSB9LAorICAgIFtQTV9SRVNFVF9JRFgo UE1fUkVTRVRfSTJDMCldID0geyBNTV9JMkMwIH0sCisgICAgW1BNX1JFU0VUX0lEWChQTV9SRVNF VF9JMkMxKV0gPSB7IE1NX0kyQzEgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX1RUQzAp XSA9IHsgTU1fVFRDMCB9LAorICAgIFtQTV9SRVNFVF9JRFgoUE1fUkVTRVRfVFRDMSldID0geyBN TV9UVEMxIH0sCisgICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9UVEMyKV0gPSB7IE1NX1RUQzIg fSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX1RUQzMpXSA9IHsgTU1fVFRDMyB9LAorICAg IFtQTV9SRVNFVF9JRFgoUE1fUkVTRVRfU1dEVF9DUkwpXSA9IHsgTU1fU1dEVCB9LAorICAgIFtQ TV9SRVNFVF9JRFgoUE1fUkVTRVRfTkFORCldID0geyBNTV9OQU5EIH0sCisgICAgLyogQURNQSBD aGFubmVsIDAgZ3JhbnRzIGFjY2VzcyB0byBwdWxsIHRoZSByZXNldCBzaWduYWwuICAqLworICAg IFtQTV9SRVNFVF9JRFgoUE1fUkVTRVRfQURNQSldID0geyBNTV9BRE1BX0NIMCB9LAorICAgIFtQ TV9SRVNFVF9JRFgoUE1fUkVTRVRfR1BJTyldID0geyBNTV9HUElPIH0sCisgICAgLyogRklYTUU6 IFdoYXQgaXMgdGhpcz8gICovCisgICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9JT1VfQ0MpXSA9 IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX1RJ TUVTVEFNUCldID0geyAuaHdkb21fYWNjZXNzID0gdHJ1ZSB9LAorICAgIFtQTV9SRVNFVF9JRFgo UE1fUkVTRVRfUlBVX1I1MCldID0geyBNTV9SUFUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JF U0VUX1JQVV9SNTEpXSA9IHsgTU1fUlBVIH0sCisgICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9S UFVfQU1CQSldID0geyBNTV9SUFUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX09DTSld ID0geyAuaHdkb21fYWNjZXNzID0gdHJ1ZSB9LAorICAgIFtQTV9SRVNFVF9JRFgoUE1fUkVTRVRf UlBVX1BHRSldID0geyBNTV9SUFUgfSwKKworICAgIFtQTV9SRVNFVF9JRFgoUE1fUkVTRVRfVVNC MF9DT1JFUkVTRVQpXSA9IHsgTU1fVVNCM18wIH0sCisgICAgW1BNX1JFU0VUX0lEWChQTV9SRVNF VF9VU0IwX0hJQkVSUkVTRVQpXSA9IHsgTU1fVVNCM18wIH0sCisgICAgW1BNX1JFU0VUX0lEWChQ TV9SRVNFVF9VU0IwX0FQQildID0geyBNTV9VU0IzXzAgfSwKKworICAgIFtQTV9SRVNFVF9JRFgo UE1fUkVTRVRfVVNCMV9DT1JFUkVTRVQpXSA9IHsgTU1fVVNCM18xIH0sCisgICAgW1BNX1JFU0VU X0lEWChQTV9SRVNFVF9VU0IxX0hJQkVSUkVTRVQpXSA9IHsgTU1fVVNCM18xIH0sCisgICAgW1BN X1JFU0VUX0lEWChQTV9SRVNFVF9VU0IxX0FQQildID0geyBNTV9VU0IzXzEgfSwKKworICAgIFtQ TV9SRVNFVF9JRFgoUE1fUkVTRVRfSVBJKV0gPSB7IC5od2RvbV9hY2Nlc3MgPSB0cnVlIH0sCisg ICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9BUE1fTFBEKV0gPSB7IC5od2RvbV9hY2Nlc3MgPSB0 cnVlIH0sCisgICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9SVEMpXSA9IHsgTU1fUlRDIH0sCisg ICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9TWVNNT04pXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRy dWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0FGSV9GTTYpXSA9IHsgLmh3ZG9tX2Fj Y2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0xQRF9TV0RUKV0gPSB7 IE1NX1NXRFQgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0ZQRCldID0geyAuaHdkb21f YWNjZXNzID0gdHJ1ZSB9LAorICAgIFtQTV9SRVNFVF9JRFgoUE1fUkVTRVRfUlBVX0RCRzEpXSA9 IHsgTU1fUlBVIH0sCisgICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9SUFVfREJHMCldID0geyBN TV9SUFUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0RCR19MUEQpXSA9IHsgLmh3ZG9t X2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0RCR19GUEQpXSA9 IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0FQ TEwpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JF U0VUX0RQTEwpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURY KFBNX1JFU0VUX1ZQTEwpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVT RVRfSURYKFBNX1JFU0VUX0lPUExMKV0gPSB7IC5od2RvbV9hY2Nlc3MgPSB0cnVlIH0sCisgICAg W1BNX1JFU0VUX0lEWChQTV9SRVNFVF9SUExMKV0gPSB7IC5od2RvbV9hY2Nlc3MgPSB0cnVlIH0s CisgICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9HUE8zX1BMXzApXSA9IHsgLmh3ZG9tX2FjY2Vz cyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0dQTzNfUExfMSldID0geyAu aHdkb21fYWNjZXNzID0gdHJ1ZSB9LAorICAgIFtQTV9SRVNFVF9JRFgoUE1fUkVTRVRfR1BPM19Q TF8yKV0gPSB7IC5od2RvbV9hY2Nlc3MgPSB0cnVlIH0sCisgICAgW1BNX1JFU0VUX0lEWChQTV9S RVNFVF9HUE8zX1BMXzMpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVT RVRfSURYKFBNX1JFU0VUX0dQTzNfUExfNCldID0geyAuaHdkb21fYWNjZXNzID0gdHJ1ZSB9LAor ICAgIFtQTV9SRVNFVF9JRFgoUE1fUkVTRVRfR1BPM19QTF81KV0gPSB7IC5od2RvbV9hY2Nlc3Mg PSB0cnVlIH0sCisgICAgW1BNX1JFU0VUX0lEWChQTV9SRVNFVF9HUE8zX1BMXzYpXSA9IHsgLmh3 ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0dQTzNfUExf NyldID0geyAuaHdkb21fYWNjZXNzID0gdHJ1ZSB9LAorICAgIFtQTV9SRVNFVF9JRFgoUE1fUkVT RVRfR1BPM19QTF84KV0gPSB7IC5od2RvbV9hY2Nlc3MgPSB0cnVlIH0sCisgICAgW1BNX1JFU0VU X0lEWChQTV9SRVNFVF9HUE8zX1BMXzkpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAg ICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0dQTzNfUExfMTApXSA9IHsgLmh3ZG9tX2FjY2VzcyA9 IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0dQTzNfUExfMTEpXSA9IHsgLmh3 ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0dQTzNfUExf MTIpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JF U0VUX0dQTzNfUExfMTMpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVT RVRfSURYKFBNX1JFU0VUX0dQTzNfUExfMTQpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwK KyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0dQTzNfUExfMTUpXSA9IHsgLmh3ZG9tX2FjY2Vz cyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0dQTzNfUExfMTYpXSA9IHsg Lmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0dQTzNf UExfMTcpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBN X1JFU0VUX0dQTzNfUExfMTgpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1f UkVTRVRfSURYKFBNX1JFU0VUX0dQTzNfUExfMTkpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUg fSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0dQTzNfUExfMjApXSA9IHsgLmh3ZG9tX2Fj Y2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0dQTzNfUExfMjEpXSA9 IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0dQ TzNfUExfMjIpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURY KFBNX1JFU0VUX0dQTzNfUExfMjMpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBb UE1fUkVTRVRfSURYKFBNX1JFU0VUX0dQTzNfUExfMjQpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRy dWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0dQTzNfUExfMjUpXSA9IHsgLmh3ZG9t X2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0dQTzNfUExfMjYp XSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VU X0dQTzNfUExfMjcpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRf SURYKFBNX1JFU0VUX0dQTzNfUExfMjgpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAg ICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0dQTzNfUExfMjkpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9 IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0dQTzNfUExfMzApXSA9IHsgLmh3 ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX0dQTzNfUExf MzEpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JF U0VUX1JQVV9MUyldID0geyBNTV9SUFUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBNX1JFU0VUX1BT X09OTFkpXSA9IHsgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICBbUE1fUkVTRVRfSURYKFBN X1JFU0VUX1BMKV0gPSB7IC5od2RvbV9hY2Nlc3MgPSB0cnVlIH0sCit9OworCisvKgorICogVGhp cyB0YWJsZSBtYXBzIHJlc2V0IGxpbmUgSURzIGludG8gYSBtZW1vcnkgYWRkcmVzcy4KKyAqIElm IGEgZ3Vlc3QgaGFzIGFjY2VzcyB0byB0aGUgYWRkcmVzcywgaXQgaGFzIGVub3VnaCBjb250cm9s CisgKiBvdmVyIHRoZSBhZmZlY3RlZCBub2RlIHRvIGdyYW50IGl0IGFjY2VzcyB0byBFRU1JIGNh bGxzIGZvcgorICogcmVzZXR0aW5nIHRoYXQgbm9kZS4KKyAqLworc3RhdGljIGNvbnN0IHN0cnVj dCB7CisgICAgdWludDY0X3Qgc3RhcnQ7CisgICAgdWludDY0X3QgZW5kOyAgICAvKiBJbmNsdXNp dmUuIElmIG5vdCBzZXQsIHNpbmdsZSByZWcgZW50cnkuICAqLworICAgIHVpbnQzMl90IG1hc2s7 ICAgLyogWmVybyBtZWFucyBubyBtYXNrLCBpLmUgYWxsIGJpdHMuICAqLworICAgIGVudW0gcG1f bm9kZV9pZCBub2RlOworICAgIGJvb2wgaHdkb21fYWNjZXNzOworICAgIGJvb2wgcmVhZG9ubHk7 Cit9IHBtX21taW9fYWNjZXNzW10gPSB7CisgICAgeworICAgICAgICAuc3RhcnQgPSBNTV9DUkZf QVBCICsgUl9DUkZfQVBMTF9DVFJMLAorICAgICAgICAuZW5kID0gTU1fQ1JGX0FQQiArIFJfQ1JG X0FDUFVfQ1RSTCwKKyAgICAgICAgLmh3ZG9tX2FjY2VzcyA9IHRydWUKKyAgICB9LAorICAgIHsK KyAgICAgICAgLnN0YXJ0ID0gTU1fQ1JMX0FQQiArIFJfQ1JMX0lPUExMX0NUUkwsCisgICAgICAg IC5lbmQgPSBNTV9DUkxfQVBCICsgUl9DUkxfUlBMTF9UT19GUERfQ1RSTCwKKyAgICAgICAgLmh3 ZG9tX2FjY2VzcyA9IHRydWUKKyAgICB9LAorICAgIHsgLnN0YXJ0ID0gTU1fQ1JGX0FQQiArIFJf Q1JGX0RQX1ZJREVPX1JFRl9DVFJMLCAubm9kZSA9IE5PREVfRFAgfSwKKyAgICB7IC5zdGFydCA9 IE1NX0NSRl9BUEIgKyBSX0NSRl9EUF9TVENfUkVGX0NUUkwsIC5ub2RlID0gTk9ERV9EUCB9LAor ICAgIHsgLnN0YXJ0ID0gTU1fQ1JGX0FQQiArIFJfQ1JGX0dQVV9SRUZfQ1RSTCwgLm5vZGUgPSBO T0RFX0dQVSB9LAorICAgIHsgLnN0YXJ0ID0gTU1fQ1JGX0FQQiArIFJfQ1JGX1NBVEFfUkVGX0NU UkwsIC5ub2RlID0gTk9ERV9TQVRBIH0sCisgICAgeyAuc3RhcnQgPSBNTV9DUkZfQVBCICsgUl9D UkZfUENJRV9SRUZfQ1RSTCwgLm5vZGUgPSBOT0RFX1BDSUUgfSwKKyAgICB7IC5zdGFydCA9IE1N X0NSRl9BUEIgKyBSX0NSRl9HRE1BX1JFRl9DVFJMLCAubm9kZSA9IE5PREVfR0RNQSB9LAorICAg IHsgLnN0YXJ0ID0gTU1fQ1JGX0FQQiArIFJfQ1JGX0RQRE1BX1JFRl9DVFJMLCAubm9kZSA9IE5P REVfRFAgfSwKKyAgICB7IC5zdGFydCA9IE1NX0NSTF9BUEIgKyBSX0NSTF9VU0IzX0RVQUxfUkVG X0NUUkwsIC5ub2RlID0gTk9ERV9VU0JfMCB9LAorICAgIHsgLnN0YXJ0ID0gTU1fQ1JMX0FQQiAr IFJfQ1JMX1VTQjBfQlVTX1JFRl9DVFJMLCAubm9kZSA9IE5PREVfVVNCXzAgfSwKKyAgICB7IC5z dGFydCA9IE1NX0NSTF9BUEIgKyBSX0NSTF9VU0IxX0JVU19SRUZfQ1RSTCwgLm5vZGUgPSBOT0RF X1VTQl8xIH0sCisgICAgeyAuc3RhcnQgPSBNTV9DUkxfQVBCICsgUl9DUkxfVVNCMV9CVVNfUkVG X0NUUkwsIC5ub2RlID0gTk9ERV9VU0JfMSB9LAorICAgIHsgLnN0YXJ0ID0gTU1fQ1JMX0FQQiAr IFJfQ1JMX0dFTTBfUkVGX0NUUkwsIC5ub2RlID0gTk9ERV9FVEhfMCB9LAorICAgIHsgLnN0YXJ0 ID0gTU1fQ1JMX0FQQiArIFJfQ1JMX0dFTTFfUkVGX0NUUkwsIC5ub2RlID0gTk9ERV9FVEhfMSB9 LAorICAgIHsgLnN0YXJ0ID0gTU1fQ1JMX0FQQiArIFJfQ1JMX0dFTTJfUkVGX0NUUkwsIC5ub2Rl ID0gTk9ERV9FVEhfMiB9LAorICAgIHsgLnN0YXJ0ID0gTU1fQ1JMX0FQQiArIFJfQ1JMX0dFTTNf UkVGX0NUUkwsIC5ub2RlID0gTk9ERV9FVEhfMyB9LAorICAgIHsgLnN0YXJ0ID0gTU1fQ1JMX0FQ QiArIFJfQ1JMX1FTUElfUkVGX0NUUkwsIC5ub2RlID0gTk9ERV9RU1BJIH0sCisgICAgeyAuc3Rh cnQgPSBNTV9DUkxfQVBCICsgUl9DUkxfU0RJTzBfUkVGX0NUUkwsIC5ub2RlID0gTk9ERV9TRF8w IH0sCisgICAgeyAuc3RhcnQgPSBNTV9DUkxfQVBCICsgUl9DUkxfU0RJTzFfUkVGX0NUUkwsIC5u b2RlID0gTk9ERV9TRF8xIH0sCisgICAgeyAuc3RhcnQgPSBNTV9DUkxfQVBCICsgUl9DUkxfVUFS VDBfUkVGX0NUUkwsIC5ub2RlID0gTk9ERV9VQVJUXzAgfSwKKyAgICB7IC5zdGFydCA9IE1NX0NS TF9BUEIgKyBSX0NSTF9VQVJUMV9SRUZfQ1RSTCwgLm5vZGUgPSBOT0RFX1VBUlRfMSB9LAorICAg IHsgLnN0YXJ0ID0gTU1fQ1JMX0FQQiArIFJfQ1JMX1NQSTBfUkVGX0NUUkwsIC5ub2RlID0gTk9E RV9TUElfMCB9LAorICAgIHsgLnN0YXJ0ID0gTU1fQ1JMX0FQQiArIFJfQ1JMX1NQSTFfUkVGX0NU UkwsIC5ub2RlID0gTk9ERV9TUElfMSB9LAorICAgIHsgLnN0YXJ0ID0gTU1fQ1JMX0FQQiArIFJf Q1JMX0NBTjBfUkVGX0NUUkwsIC5ub2RlID0gTk9ERV9DQU5fMCB9LAorICAgIHsgLnN0YXJ0ID0g TU1fQ1JMX0FQQiArIFJfQ1JMX0NBTjFfUkVGX0NUUkwsIC5ub2RlID0gTk9ERV9DQU5fMSB9LAor ICAgIHsgLnN0YXJ0ID0gTU1fQ1JMX0FQQiArIFJfQ1JMX0NQVV9SNV9DVFJMLCAubm9kZSA9IE5P REVfUlBVIH0sCisgICAgeyAuc3RhcnQgPSBNTV9DUkxfQVBCICsgUl9DUkxfSU9VX1NXSVRDSF9D VFJMLCAuaHdkb21fYWNjZXNzID0gdHJ1ZSB9LAorICAgIHsgLnN0YXJ0ID0gTU1fQ1JMX0FQQiAr IFJfQ1JMX0NTVV9QTExfQ1RSTCwgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICB7IC5zdGFy dCA9IE1NX0NSTF9BUEIgKyBSX0NSTF9QQ0FQX0NUUkwsIC5od2RvbV9hY2Nlc3MgPSB0cnVlIH0s CisgICAgeyAuc3RhcnQgPSBNTV9DUkxfQVBCICsgUl9DUkxfTFBEX1NXSVRDSF9DVFJMLCAuaHdk b21fYWNjZXNzID0gdHJ1ZSB9LAorICAgIHsgLnN0YXJ0ID0gTU1fQ1JMX0FQQiArIFJfQ1JMX0xQ RF9MU0JVU19DVFJMLCAuaHdkb21fYWNjZXNzID0gdHJ1ZSB9LAorICAgIHsgLnN0YXJ0ID0gTU1f Q1JMX0FQQiArIFJfQ1JMX0RCR19MUERfQ1RSTCwgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAg ICB7IC5zdGFydCA9IE1NX0NSTF9BUEIgKyBSX0NSTF9OQU5EX1JFRl9DVFJMLCAubm9kZSA9IE5P REVfTkFORCB9LAorICAgIHsgLnN0YXJ0ID0gTU1fQ1JMX0FQQiArIFJfQ1JMX0FETUFfUkVGX0NU UkwsIC5ub2RlID0gTk9ERV9BRE1BIH0sCisgICAgeyAuc3RhcnQgPSBNTV9DUkxfQVBCICsgUl9D UkxfUEwwX1JFRl9DVFJMLCAuaHdkb21fYWNjZXNzID0gdHJ1ZSB9LAorICAgIHsgLnN0YXJ0ID0g TU1fQ1JMX0FQQiArIFJfQ1JMX1BMMV9SRUZfQ1RSTCwgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwK KyAgICB7IC5zdGFydCA9IE1NX0NSTF9BUEIgKyBSX0NSTF9QTDJfUkVGX0NUUkwsIC5od2RvbV9h Y2Nlc3MgPSB0cnVlIH0sCisgICAgeyAuc3RhcnQgPSBNTV9DUkxfQVBCICsgUl9DUkxfUEwzX1JF Rl9DVFJMLCAuaHdkb21fYWNjZXNzID0gdHJ1ZSB9LAorICAgIHsgLnN0YXJ0ID0gTU1fQ1JMX0FQ QiArIFJfQ1JMX1BMMF9USFJfQ1RSTCwgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICB7IC5z dGFydCA9IE1NX0NSTF9BUEIgKyBSX0NSTF9QTDFfVEhSX0NUUkwsIC5od2RvbV9hY2Nlc3MgPSB0 cnVlIH0sCisgICAgeyAuc3RhcnQgPSBNTV9DUkxfQVBCICsgUl9DUkxfUEwyX1RIUl9DVFJMLCAu aHdkb21fYWNjZXNzID0gdHJ1ZSB9LAorICAgIHsgLnN0YXJ0ID0gTU1fQ1JMX0FQQiArIFJfQ1JM X1BMM19USFJfQ1RSTCwgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICB7IC5zdGFydCA9IE1N X0NSTF9BUEIgKyBSX0NSTF9QTDBfVEhSX0NOVCwgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAg ICB7IC5zdGFydCA9IE1NX0NSTF9BUEIgKyBSX0NSTF9QTDFfVEhSX0NOVCwgLmh3ZG9tX2FjY2Vz cyA9IHRydWUgfSwKKyAgICB7IC5zdGFydCA9IE1NX0NSTF9BUEIgKyBSX0NSTF9QTDJfVEhSX0NO VCwgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICB7IC5zdGFydCA9IE1NX0NSTF9BUEIgKyBS X0NSTF9QTDNfVEhSX0NOVCwgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICB7IC5zdGFydCA9 IE1NX0NSTF9BUEIgKyBSX0NSTF9HRU1fVFNVX1JFRl9DVFJMLCAubm9kZSA9IE5PREVfRVRIXzAg fSwKKyAgICB7IC5zdGFydCA9IE1NX0NSTF9BUEIgKyBSX0NSTF9ETExfUkVGX0NUUkwsIC5od2Rv bV9hY2Nlc3MgPSB0cnVlIH0sCisgICAgeyAuc3RhcnQgPSBNTV9DUkxfQVBCICsgUl9DUkxfQU1T X1JFRl9DVFJMLCAuaHdkb21fYWNjZXNzID0gdHJ1ZSB9LAorICAgIHsgLnN0YXJ0ID0gTU1fQ1JM X0FQQiArIFJfQ1JMX0kyQzBfUkVGX0NUUkwsIC5ub2RlID0gTk9ERV9JMkNfMCB9LAorICAgIHsg LnN0YXJ0ID0gTU1fQ1JMX0FQQiArIFJfQ1JMX0kyQzFfUkVGX0NUUkwsIC5ub2RlID0gTk9ERV9J MkNfMSB9LAorICAgIHsgLnN0YXJ0ID0gTU1fQ1JMX0FQQiArIFJfQ1JMX1RJTUVTVEFNUF9SRUZf Q1RSTCwgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICB7IC5zdGFydCA9IE1NX0lPVV9TTENS ICsgUl9JT1VfU0xDUl9XRFRfQ0xLX1NFTCwgLmh3ZG9tX2FjY2VzcyA9IHRydWUgfSwKKyAgICB7 CisgICAgICAgIC5zdGFydCA9IE1NX0lPVV9TTENSICsgUl9JT1VfU0xDUl9DQU5fTUlPX0NUUkws CisgICAgICAgIC5tYXNrID0gMHgxZmYsIC5ub2RlID0gTk9ERV9DQU5fMAorICAgIH0sCisgICAg eworICAgICAgICAuc3RhcnQgPSBNTV9JT1VfU0xDUiArIFJfSU9VX1NMQ1JfQ0FOX01JT19DVFJM LAorICAgICAgICAubWFzayA9IDB4MWZmIDw8IDE1LCAubm9kZSA9IE5PREVfQ0FOXzEKKyAgICB9 LAorICAgIHsKKyAgICAgICAgLnN0YXJ0ID0gTU1fSU9VX1NMQ1IgKyBSX0lPVV9TTENSX0dFTV9D TEtfQ1RSTCwKKyAgICAgICAgLm1hc2sgPSAweGYsIC5ub2RlID0gTk9ERV9FVEhfMAorICAgIH0s CisgICAgeworICAgICAgICAuc3RhcnQgPSBNTV9JT1VfU0xDUiArIFJfSU9VX1NMQ1JfR0VNX0NM S19DVFJMLAorICAgICAgICAubWFzayA9IDB4ZiA8PCA1LCAubm9kZSA9IE5PREVfRVRIXzEKKyAg ICB9LAorICAgIHsKKyAgICAgICAgLnN0YXJ0ID0gTU1fSU9VX1NMQ1IgKyBSX0lPVV9TTENSX0dF TV9DTEtfQ1RSTCwKKyAgICAgICAgLm1hc2sgPSAweGYgPDwgMTAsIC5ub2RlID0gTk9ERV9FVEhf MgorICAgIH0sCisgICAgeworICAgICAgICAuc3RhcnQgPSBNTV9JT1VfU0xDUiArIFJfSU9VX1NM Q1JfR0VNX0NMS19DVFJMLAorICAgICAgICAubWFzayA9IDB4ZiA8PCAxNSwgLm5vZGUgPSBOT0RF X0VUSF8zCisgICAgfSwKKyAgICB7CisgICAgICAgIC5zdGFydCA9IE1NX0lPVV9TTENSICsgUl9J T1VfU0xDUl9HRU1fQ0xLX0NUUkwsCisgICAgICAgIC5tYXNrID0gMHg3IDw8IDIwLCAuaHdkb21f YWNjZXNzID0gdHJ1ZQorICAgIH0sCisgICAgeworICAgICAgICAuc3RhcnQgPSBNTV9JT1VfU0xD UiArIFJfSU9VX1NMQ1JfU0RJT19DTEtfQ1RSTCwKKyAgICAgICAgLm1hc2sgPSAweDcsIC5ub2Rl ID0gTk9ERV9TRF8wCisgICAgfSwKKyAgICB7CisgICAgICAgIC5zdGFydCA9IE1NX0lPVV9TTENS ICsgUl9JT1VfU0xDUl9TRElPX0NMS19DVFJMLAorICAgICAgICAubWFzayA9IDB4NyA8PCAxNywg Lm5vZGUgPSBOT0RFX1NEXzEKKyAgICB9LAorCisgICAgeworICAgICAgICAuc3RhcnQgPSBNTV9J T1VfU0xDUiArIFJfSU9VX1NMQ1JfQ1RSTF9SRUdfU0QsCisgICAgICAgIC5tYXNrID0gMHgxLCAu bm9kZSA9IE5PREVfU0RfMAorICAgIH0sCisgICAgeworICAgICAgICAuc3RhcnQgPSBNTV9JT1Vf U0xDUiArIFJfSU9VX1NMQ1JfQ1RSTF9SRUdfU0QsCisgICAgICAgIC5tYXNrID0gMHgxIDw8IDE1 LCAubm9kZSA9IE5PREVfU0RfMQorICAgIH0sCisgICAgLyogQSBzZXJpZXMgb2YgU0QgcmVncyB3 aXRoIHRoZSBzYW1lIGxheW91dC4gICovCisgICAgeworICAgICAgICAuc3RhcnQgPSBNTV9JT1Vf U0xDUiArIFJfSU9VX1NMQ1JfU0RfSVRBUERMWSwKKyAgICAgICAgLmVuZCA9IE1NX0lPVV9TTENS ICsgUl9JT1VfU0xDUl9TRF9DRE5fQ1RSTCwKKyAgICAgICAgLm1hc2sgPSAweDNmZiA8PCAwLCAu bm9kZSA9IE5PREVfU0RfMAorICAgIH0sCisgICAgeworICAgICAgICAuc3RhcnQgPSBNTV9JT1Vf U0xDUiArIFJfSU9VX1NMQ1JfU0RfSVRBUERMWSwKKyAgICAgICAgLmVuZCA9IE1NX0lPVV9TTENS ICsgUl9JT1VfU0xDUl9TRF9DRE5fQ1RSTCwKKyAgICAgICAgLm1hc2sgPSAweDNmZiA8PCAxNiwg Lm5vZGUgPSBOT0RFX1NEXzEKKyAgICB9LAorICAgIHsKKyAgICAgICAgLnN0YXJ0ID0gTU1fSU9V X1NMQ1IgKyBSX0lPVV9TTENSX0dFTV9DVFJMLAorICAgICAgICAubWFzayA9IDB4MyA8PCAwLCAu bm9kZSA9IE5PREVfRVRIXzAKKyAgICB9LAorICAgIHsKKyAgICAgICAgLnN0YXJ0ID0gTU1fSU9V X1NMQ1IgKyBSX0lPVV9TTENSX0dFTV9DVFJMLAorICAgICAgICAubWFzayA9IDB4MyA8PCAyLCAu bm9kZSA9IE5PREVfRVRIXzEKKyAgICB9LAorICAgIHsKKyAgICAgICAgLnN0YXJ0ID0gTU1fSU9V X1NMQ1IgKyBSX0lPVV9TTENSX0dFTV9DVFJMLAorICAgICAgICAubWFzayA9IDB4MyA8PCA0LCAu bm9kZSA9IE5PREVfRVRIXzIKKyAgICB9LAorICAgIHsKKyAgICAgICAgLnN0YXJ0ID0gTU1fSU9V X1NMQ1IgKyBSX0lPVV9TTENSX0dFTV9DVFJMLAorICAgICAgICAubWFzayA9IDB4MyA8PCA2LCAu bm9kZSA9IE5PREVfRVRIXzMKKyAgICB9LAorICAgIHsKKyAgICAgICAgLnN0YXJ0ID0gTU1fSU9V X1NMQ1IgKyBSX0lPVV9TTENSX0lPVV9UVENfQVBCX0NMSywKKyAgICAgICAgLm1hc2sgPSAweDMg PDwgMCwgLm5vZGUgPSBOT0RFX1RUQ18wCisgICAgfSwKKyAgICB7CisgICAgICAgIC5zdGFydCA9 IE1NX0lPVV9TTENSICsgUl9JT1VfU0xDUl9JT1VfVFRDX0FQQl9DTEssCisgICAgICAgIC5tYXNr ID0gMHgzIDw8IDIsIC5ub2RlID0gTk9ERV9UVENfMQorICAgIH0sCisgICAgeworICAgICAgICAu c3RhcnQgPSBNTV9JT1VfU0xDUiArIFJfSU9VX1NMQ1JfSU9VX1RUQ19BUEJfQ0xLLAorICAgICAg ICAubWFzayA9IDB4MyA8PCA0LCAubm9kZSA9IE5PREVfVFRDXzIKKyAgICB9LAorICAgIHsKKyAg ICAgICAgLnN0YXJ0ID0gTU1fSU9VX1NMQ1IgKyBSX0lPVV9TTENSX0lPVV9UVENfQVBCX0NMSywK KyAgICAgICAgLm1hc2sgPSAweDMgPDwgNiwgLm5vZGUgPSBOT0RFX1RUQ18zCisgICAgfSwKKwor ICAgIHsKKyAgICAgICAgLnN0YXJ0ID0gTU1fSU9VX1NMQ1IgKyBSX0lPVV9TTENSX0lPVV9UQVBE TFlfQllQQVNTLAorICAgICAgICAubWFzayA9IDB4MywgLm5vZGUgPSBOT0RFX05BTkQKKyAgICB9 LAorICAgIHsKKyAgICAgICAgLnN0YXJ0ID0gTU1fSU9VX1NMQ1IgKyBSX0lPVV9TTENSX0lPVV9U QVBETFlfQllQQVNTLAorICAgICAgICAubWFzayA9IDB4MSA8PCAyLCAubm9kZSA9IE5PREVfUVNQ SQorICAgIH0sCisgICAgeworICAgICAgICAuc3RhcnQgPSBNTV9JT1VfU0xDUiArIFJfSU9VX1NM Q1JfSU9VX0NPSEVSRU5UX0NUUkwsCisgICAgICAgIC5tYXNrID0gMHhmIDw8IDAsIC5ub2RlID0g Tk9ERV9FVEhfMAorICAgIH0sCisgICAgeworICAgICAgICAuc3RhcnQgPSBNTV9JT1VfU0xDUiAr IFJfSU9VX1NMQ1JfSU9VX0NPSEVSRU5UX0NUUkwsCisgICAgICAgIC5tYXNrID0gMHhmIDw8IDQs IC5ub2RlID0gTk9ERV9FVEhfMQorICAgIH0sCisgICAgeworICAgICAgICAuc3RhcnQgPSBNTV9J T1VfU0xDUiArIFJfSU9VX1NMQ1JfSU9VX0NPSEVSRU5UX0NUUkwsCisgICAgICAgIC5tYXNrID0g MHhmIDw8IDgsIC5ub2RlID0gTk9ERV9FVEhfMgorICAgIH0sCisgICAgeworICAgICAgICAuc3Rh cnQgPSBNTV9JT1VfU0xDUiArIFJfSU9VX1NMQ1JfSU9VX0NPSEVSRU5UX0NUUkwsCisgICAgICAg IC5tYXNrID0gMHhmIDw8IDEyLCAubm9kZSA9IE5PREVfRVRIXzMKKyAgICB9LAorICAgIHsKKyAg ICAgICAgLnN0YXJ0ID0gTU1fSU9VX1NMQ1IgKyBSX0lPVV9TTENSX0lPVV9DT0hFUkVOVF9DVFJM LAorICAgICAgICAubWFzayA9IDB4ZiA8PCAxNiwgLm5vZGUgPSBOT0RFX1NEXzAKKyAgICB9LAor ICAgIHsKKyAgICAgICAgLnN0YXJ0ID0gTU1fSU9VX1NMQ1IgKyBSX0lPVV9TTENSX0lPVV9DT0hF UkVOVF9DVFJMLAorICAgICAgICAubWFzayA9IDB4ZiA8PCAyMCwgLm5vZGUgPSBOT0RFX1NEXzEK KyAgICB9LAorICAgIHsKKyAgICAgICAgLnN0YXJ0ID0gTU1fSU9VX1NMQ1IgKyBSX0lPVV9TTENS X0lPVV9DT0hFUkVOVF9DVFJMLAorICAgICAgICAubWFzayA9IDB4ZiA8PCAyNCwgLm5vZGUgPSBO T0RFX05BTkQKKyAgICB9LAorICAgIHsKKyAgICAgICAgLnN0YXJ0ID0gTU1fSU9VX1NMQ1IgKyBS X0lPVV9TTENSX0lPVV9DT0hFUkVOVF9DVFJMLAorICAgICAgICAubWFzayA9IDB4ZiA8PCAyOCwg Lm5vZGUgPSBOT0RFX1FTUEkKKyAgICB9LAorICAgIHsgLnN0YXJ0ID0gTU1fSU9VX1NMQ1IgKyBS X0lPVV9TTENSX1ZJREVPX1BTU19DTEtfU0VMLCAuaHdkb21fYWNjZXNzID0gdHJ1ZSB9LAorICAg IC8qIE5vIGFjY2VzcyB0byBSX0lPVV9TTENSX0lPVV9JTlRFUkNPTk5FQ1RfUk9VVEUgYXQgYWxs LiAgKi8KKyAgICB7IC5zdGFydCA9IE1NX0lPVV9TTENSICsgUl9JT1VfU0xDUl9JT1VfUkFNX0dF TTAsIC5ub2RlID0gTk9ERV9FVEhfMCB9LAorICAgIHsgLnN0YXJ0ID0gTU1fSU9VX1NMQ1IgKyBS X0lPVV9TTENSX0lPVV9SQU1fR0VNMSwgLm5vZGUgPSBOT0RFX0VUSF8xIH0sCisgICAgeyAuc3Rh cnQgPSBNTV9JT1VfU0xDUiArIFJfSU9VX1NMQ1JfSU9VX1JBTV9HRU0yLCAubm9kZSA9IE5PREVf RVRIXzIgfSwKKyAgICB7IC5zdGFydCA9IE1NX0lPVV9TTENSICsgUl9JT1VfU0xDUl9JT1VfUkFN X0dFTTMsIC5ub2RlID0gTk9ERV9FVEhfMyB9LAorICAgIHsgLnN0YXJ0ID0gTU1fSU9VX1NMQ1Ig KyBSX0lPVV9TTENSX0lPVV9SQU1fU0QwLCAubm9kZSA9IE5PREVfU0RfMCB9LAorICAgIHsgLnN0 YXJ0ID0gTU1fSU9VX1NMQ1IgKyBSX0lPVV9TTENSX0lPVV9SQU1fU0QxLCAubm9kZSA9IE5PREVf U0RfMSB9LAorICAgIHsgLnN0YXJ0ID0gTU1fSU9VX1NMQ1IgKyBSX0lPVV9TTENSX0lPVV9SQU1f Q0FOMCwgLm5vZGUgPSBOT0RFX0NBTl8wIH0sCisgICAgeyAuc3RhcnQgPSBNTV9JT1VfU0xDUiAr IFJfSU9VX1NMQ1JfSU9VX1JBTV9DQU4xLCAubm9kZSA9IE5PREVfQ0FOXzEgfSwKKyAgICB7IC5z dGFydCA9IE1NX0lPVV9TTENSICsgUl9JT1VfU0xDUl9JT1VfUkFNX0xRU1BJLCAubm9kZSA9IE5P REVfUVNQSSB9LAorICAgIHsgLnN0YXJ0ID0gTU1fSU9VX1NMQ1IgKyBSX0lPVV9TTENSX0lPVV9S QU1fTkFORCwgLm5vZGUgPSBOT0RFX05BTkQgfSwKKyAgICB7CisgICAgICAgIC5zdGFydCA9IE1N X1BNVV9HTE9CQUwgKyBSX1BNVV9HTE9CQUxfUFdSX1NUQVRFLAorICAgICAgICAucmVhZG9ubHkg PSB0cnVlLAorICAgIH0sCisgICAgeworICAgICAgICAuc3RhcnQgPSBNTV9QTVVfR0xPQkFMICsg Ul9QTVVfR0xPQkFMX0dMT0JBTF9HRU5fU1RPUkFHRTAsCisgICAgICAgIC5lbmQgPSBNTV9QTVVf R0xPQkFMICsgUl9QTVVfR0xPQkFMX1BFUlNfR0xPQl9HRU5fU1RPUkFHRTcsCisgICAgICAgIC5y ZWFkb25seSA9IHRydWUsCisgICAgfSwKKyAgICB7CisgICAgICAgIC8qIFVuaXZlcnNhbCByZWFk LW9ubHkgYWNjZXNzIHRvIENSRi4gTGludXggQ0NGIG5lZWRzIHRoaXMuICAqLworICAgICAgICAu c3RhcnQgPSBNTV9DUkZfQVBCLCAuZW5kID0gTU1fQ1JGX0FQQiArIDB4MTA0LAorICAgICAgICAu cmVhZG9ubHkgPSB0cnVlLAorICAgIH0sCisgICAgeworICAgICAgICAvKiBVbml2ZXJzYWwgcmVh ZC1vbmx5IGFjY2VzcyB0byBDUkwuIExpbnV4IENDRiBuZWVkcyB0aGlzLiAgKi8KKyAgICAgICAg LnN0YXJ0ID0gTU1fQ1JMX0FQQiwgLmVuZCA9IE1NX0NSTF9BUEIgKyAweDI4NCwKKyAgICAgICAg LnJlYWRvbmx5ID0gdHJ1ZSwKKyAgICB9Cit9OworCitzdGF0aWMgYm9vbCBwbV9jaGVja19hY2Nl c3MoY29uc3Qgc3RydWN0IHBtX2FjY2VzcyAqYWNsLCBzdHJ1Y3QgZG9tYWluICpkLCBpbnQgaWR4 KQoreworICAgIHVuc2lnbmVkIGxvbmcgbWZuOworCisgICAgaWYgKCBhY2xbaWR4XS5od2RvbV9h Y2Nlc3MgJiYgaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKKyAgICAgICAgcmV0dXJuIHRydWU7CisK KyAgICBtZm4gPSBwYWRkcl90b19wZm4oYWNsW2lkeF0uYWRkcik7CisgICAgaWYgKCAhbWZuICkK KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGlvbWVtX2FjY2Vzc19wZXJtaXR0 ZWQoZCwgbWZuLCBtZm4pOworfQorCisvKiBDaGVjayBpZiBhIGRvbWFpbiBoYXMgYWNjZXNzIHRv IGEgbm9kZS4gICovCitzdGF0aWMgYm9vbCBkb21haW5faGFzX25vZGVfYWNjZXNzKHN0cnVjdCBk b21haW4gKmQsIGVudW0gcG1fbm9kZV9pZCBub2RlKQoreworICAgIGlmICggbm9kZSA8PSAwIHx8 IG5vZGUgPiBBUlJBWV9TSVpFKHBtX25vZGVfYWNjZXNzKSApCisgICAgICAgIHJldHVybiBmYWxz ZTsKKworICAgIC8qIE5PREVfVU5LTk9XTiBpcyB0cmVhdGVkIGFzIGEgd2lsZGNhcmQuICAqLwor ICAgIGlmICggbm9kZSA9PSBOT0RFX1VOS05PV04gKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwor ICAgIHJldHVybiBwbV9jaGVja19hY2Nlc3MocG1fbm9kZV9hY2Nlc3MsIGQsIG5vZGUpOworfQor CisvKiBDaGVjayBpZiBhIGRvbWFpbiBoYXMgYWNjZXNzIHRvIGEgcmVzZXQgbGluZS4gICovCitz dGF0aWMgYm9vbCBkb21haW5faGFzX3Jlc2V0X2FjY2VzcyhzdHJ1Y3QgZG9tYWluICpkLCBlbnVt IHBtX3Jlc2V0IHJzdCkKK3sKKyAgICBpbnQgcnN0X2lkeCA9IFBNX1JFU0VUX0lEWChyc3QpOwor CisgICAgaWYgKCByc3RfaWR4IDwgMCB8fCByc3RfaWR4ID4gQVJSQVlfU0laRShwbV9yZXNldF9h Y2Nlc3MpICkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHBtX2NoZWNrX2Fj Y2VzcyhwbV9yZXNldF9hY2Nlc3MsIGQsIHJzdF9pZHgpOworfQorCisvKgorICogQ2hlY2sgaWYg YSBnaXZlbiBkb21haW4gaGFzIGFjY2VzcyB0byBwZXJmb3JtIGFuIGluZGlyZWN0CisgKiBNTUlP IGFjY2Vzcy4KKyAqCisgKiBJZiB0aGUgcHJvdmlkZWQgbWFzayBpcyBpbnZhbGlkLCBpdCB3aWxs IGJlIGZpeGVkIHVwLgorICovCitzdGF0aWMgYm9vbCBkb21haW5fbWVkaWF0ZV9tbWlvX2FjY2Vz cyhzdHJ1Y3QgZG9tYWluICpkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYm9vbCB3cml0ZSwgdWludDY0X3QgYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQzMl90ICptYXNrKQoreworICAgIHVuc2lnbmVkIGludCBpOworICAg IGJvb2wgcmV0ID0gZmFsc2U7CisgICAgdWludDMyX3QgcHJvdF9tYXNrID0gMDsKKworICAgIEFT U0VSVChtYXNrKTsKKworICAgIC8qCisgICAgICogVGhlIGhhcmR3YXJlIGRvbWFpbiBnZXRzIHJl YWQgYWNjZXNzIHRvIGV2ZXJ5dGhpbmcuCisgICAgICogTG93ZXIgbGF5ZXJzIHdpbGwgZG8gZnVy dGhlciBmaWx0ZXJpbmcuCisgICAgICovCisgICAgaWYgKCAhd3JpdGUgJiYgaXNfaGFyZHdhcmVf ZG9tYWluKGQpICkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAvKiBTY2FuIHRoZSBBQ0wu ICAqLworICAgIGZvciAoIGkgPSAwOyBpIDwgQVJSQVlfU0laRShwbV9tbWlvX2FjY2Vzcyk7IGkr KyApIHsKKyAgICAgICAgYm9vbCByOworCisgICAgICAgIC8qIENoZWNrIGlmIHRoZSBhZGRyZXNz IGlzIE9LLiAgKi8KKyAgICAgICAgaWYgKCBwbV9tbWlvX2FjY2Vzc1tpXS5lbmQgKSB7CisgICAg ICAgICAgICAvKiBNZW1vcnkgcmFuZ2UuICAqLworICAgICAgICAgICAgaWYgKCBhZGRyIDwgcG1f bW1pb19hY2Nlc3NbaV0uc3RhcnQgKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg ICAgICAgaWYgKCBhZGRyID4gcG1fbW1pb19hY2Nlc3NbaV0uZW5kICkKKyAgICAgICAgICAgICAg ICBjb250aW51ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIFNpbmdsZSByZWdp c3Rlci4gICovCisgICAgICAgICAgICBpZiAoIGFkZHIgIT0gcG1fbW1pb19hY2Nlc3NbaV0uc3Rh cnQgKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYg KCB3cml0ZSAmJiBwbV9tbWlvX2FjY2Vzc1tpXS5yZWFkb25seSApCisgICAgICAgICAgICBjb250 aW51ZTsKKyAgICAgICAgaWYgKCBwbV9tbWlvX2FjY2Vzc1tpXS5od2RvbV9hY2Nlc3MgJiYgIWlz X2hhcmR3YXJlX2RvbWFpbihkKSApCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAv KiBVbmxpbWl0ZWQgYWNjZXNzIGlzIHJlcHJlc2VudGVkIGJ5IGEgemVybyBtYXNrLiAgKi8KKyAg ICAgICAgQVNTRVJUKCBwbV9tbWlvX2FjY2Vzc1tpXS5tYXNrICE9IDB4RkZGRkZGRkYgKTsKKwor ICAgICAgICByID0gZG9tYWluX2hhc19ub2RlX2FjY2VzcyhkLCBwbV9tbWlvX2FjY2Vzc1tpXS5u b2RlKTsKKyAgICAgICAgaWYgKCByICkgeworICAgICAgICAgICAgLyogV2UndmUgZ290IGFjY2Vz cyB0byB0aGlzIHJlZyAob3IgcGFydHMgb2YgaXQpLiAgKi8KKyAgICAgICAgICAgIHJldCA9IHRy dWU7CisgICAgICAgICAgICAvKiBNYXNraW5nIG9ubHkgYXBwbGllcyB0byB3cml0ZXMsIHNvIHJl YWRzIGNhbiBleGl0IGhlcmUuICAqLworICAgICAgICAgICAgaWYgKCAhd3JpdGUgKQorICAgICAg ICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAvKiBQZXJtaXQgd3JpdGUgYWNjZXNzIHRv IHNlbGVjdGVkIGJpdHMuICAqLworICAgICAgICAgICAgcHJvdF9tYXNrIHw9IHBtX21taW9fYWNj ZXNzW2ldLm1hc2sgPyBwbV9tbWlvX2FjY2Vzc1tpXS5tYXNrIDogfjA7CisgICAgICAgICAgICBw cmludGsoIm1hdGNoOiBtYXNrPSV4IHByb3RfbWFzaz0leFxuIiwKKyAgICAgICAgICAgICAgICAg ICBwbV9tbWlvX2FjY2Vzc1tpXS5tYXNrLCBwcm90X21hc2spOworICAgICAgICAgICAgaWYgKCBw cm90X21hc2sgPT0gMHhGRkZGRkZGRiApCisgICAgICAgICAgICAgICAgYnJlYWs7IC8qIEZ1bGwg YWNjZXNzLCB3ZSdyZSBkb25lLiAgKi8KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlm ICggIXBtX21taW9fYWNjZXNzW2ldLm1hc2sgKSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAg ICAgICAgICAgICAgKiBUaGUgZW50aXJlIHJlZyBpcyB0aWVkIHRvIGEgZGV2aWNlIHRoYXQgd2Ug ZG9uJ3QgaGF2ZQorICAgICAgICAgICAgICAgICAqIGFjY2VzcyB0by4gTm8gcG9pbnQgaW4gY29u dGludWluZy4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gZmFs c2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBNYXNraW5nIG9u bHkgYXBwbGllcyB0byB3cml0ZXMuICAqLworICAgIGlmICggd3JpdGUgKQorICAgICAgICAqbWFz ayAmPSBwcm90X21hc2s7CisgICAgcmV0dXJuIHJldDsKK30KKworYm9vbCB6eW5xbXBfZWVtaV9t ZWRpYXRlKHJlZ2lzdGVyX3QgZmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVy X3QgYTAsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfdCBhMSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICByZWdpc3Rlcl90IGEyLAorICAgICAgICAgICAgICAgICAgICAgICAg IHJlZ2lzdGVyX3QgYTMsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfdCBhNCwK KyAgICAgICAgICAgICAgICAgICAgICAgICByZWdpc3Rlcl90IGE1LAorICAgICAgICAgICAgICAg ICAgICAgICAgIHJlZ2lzdGVyX3QgKnJldCkKK3sKKyAgICBib29sIGlzX21taW9fd3JpdGUgPSBm YWxzZTsKKyAgICB1bnNpZ25lZCBpbnQgcG1fZm4gPSBmaWQgJiAweEZGRkY7CisgICAgdWludDMy X3QgcG1fYXJnWzRdOworCisgICAgLyogRGVjb2RlIHBtIGFyZ3MuICAqLworICAgIHBtX2FyZ1sw XSA9IGEwOworICAgIHBtX2FyZ1sxXSA9IGEwID4+IDMyOworICAgIHBtX2FyZ1syXSA9IGExOwor ICAgIHBtX2FyZ1szXSA9IGExID4+IDMyOworCisgICAgQVNTRVJUKHJldCk7CisKKyAgICBzd2l0 Y2ggKHBtX2ZuKQorICAgIHsKKyAgICAvKgorICAgICAqIFdlIGNhbid0IGFsbG93IENQVXMgdG8g c3VzcGVuZCB3aXRob3V0IFhlbiBrbm93aW5nIGFib3V0IGl0LgorICAgICAqIFdlIGFjY2VwdCBi dXQgaWdub3JlIHRoZSByZXF1ZXN0IGFuZCB3YWl0IGZvciB0aGUgZ3Vlc3QgdG8gaXNzdWUKKyAg ICAgKiBhIFdGSSB3aGljaCBYZW4gd2lsbCB0cmFwIGFuZCBhY3QgYWNjb3JkaW5nbHkgdXBvbi4K KyAgICAgKi8KKyAgICBjYXNlIFBNX1NFTEZfU1VTUEVORDoKKyAgICAgICAgcmV0WzBdID0gUE1f UkVUX1NVQ0NFU1M7CisgICAgICAgIGdvdG8gZG9uZTsKKworICAgIGNhc2UgUE1fR0VUX05PREVf U1RBVFVTOgorICAgIC8qIEFQSSBmb3IgUFVzLiAgKi8KKyAgICBjYXNlIFBNX1JFUV9TVVNQRU5E OgorICAgIGNhc2UgUE1fRk9SQ0VfUE9XRVJET1dOOgorICAgIGNhc2UgUE1fQUJPUlRfU1VTUEVO RDoKKyAgICBjYXNlIFBNX1JFUV9XQUtFVVA6CisgICAgY2FzZSBQTV9TRVRfV0FLRVVQX1NPVVJD RToKKyAgICAvKiBBUEkgZm9yIHNsYXZlcy4gICovCisgICAgY2FzZSBQTV9SRVFfTk9ERToKKyAg ICBjYXNlIFBNX1JFTEVBU0VfTk9ERToKKyAgICBjYXNlIFBNX1NFVF9SRVFVSVJFTUVOVDoKKyAg ICBjYXNlIFBNX1NFVF9NQVhfTEFURU5DWToKKyAgICAgICAgaWYgKCAhZG9tYWluX2hhc19ub2Rl X2FjY2VzcyhjdXJyZW50LT5kb21haW4sIHBtX2FyZ1swXSkgKSB7CisgICAgICAgICAgICBwcmlu dGsoInp5bnFtcC1wbTogZm49JWQgTm8gYWNjZXNzIHRvIG5vZGUgJWRcbiIsIHBtX2ZuLCBwbV9h cmdbMF0pOworICAgICAgICAgICAgcmV0WzBdID0gUE1fUkVUX0VSUk9SX0FDQ0VTUzsKKyAgICAg ICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgfQorICAgICAgICBnb3RvIGZvcndhcmRfdG9fZnc7 CisKKyAgICBjYXNlIFBNX1JFU0VUX0FTU0VSVDoKKyAgICBjYXNlIFBNX1JFU0VUX0dFVF9TVEFU VVM6CisgICAgICAgIGlmICggIWRvbWFpbl9oYXNfcmVzZXRfYWNjZXNzKGN1cnJlbnQtPmRvbWFp biwgcG1fYXJnWzBdKSApIHsKKyAgICAgICAgICAgIHByaW50aygienlucW1wLXBtOiBmbj0lZCBO byBhY2Nlc3MgdG8gcmVzZXQgJWRcbiIsIHBtX2ZuLCBwbV9hcmdbMF0pOworICAgICAgICAgICAg cmV0WzBdID0gUE1fUkVUX0VSUk9SX0FDQ0VTUzsKKyAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAg ICAgICAgfQorICAgICAgICBnb3RvIGZvcndhcmRfdG9fZnc7CisKKyAgICAvKiBUaGVzZSBjYWxs cyBhcmUgc2FmZSBhbmQgYWx3YXlzIGFsbG93ZWQuICAqLworICAgIGNhc2UgWllOUU1QX1NJUF9T VkNfQ0FMTF9DT1VOVDoKKyAgICBjYXNlIFpZTlFNUF9TSVBfU1ZDX1VJRDoKKyAgICBjYXNlIFpZ TlFNUF9TSVBfU1ZDX1ZFUlNJT046CisgICAgY2FzZSBQTV9HRVRfQVBJX1ZFUlNJT046CisgICAg Y2FzZSBQTV9HRVRfQ0hJUElEOgorICAgICAgICBnb3RvIGZvcndhcmRfdG9fZnc7CisKKyAgICAv KiBNZWRpYXRlZCBNTUlPIGFjY2Vzcy4gICovCisgICAgY2FzZSBQTV9NTUlPX1dSSVRFOgorICAg ICAgICBpc19tbWlvX3dyaXRlID0gdHJ1ZTsKKyAgICAvKiBGYWxsdGhyb3VnaC4gICovCisgICAg Y2FzZSBQTV9NTUlPX1JFQUQ6CisgICAgICAgIGlmICggIWRvbWFpbl9tZWRpYXRlX21taW9fYWNj ZXNzKGN1cnJlbnQtPmRvbWFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaXNfbW1pb193cml0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcG1fYXJnWzBdLCAmcG1fYXJnWzFdKSApIHsKKyAgICAgICAgICAgIHByaW50aygiZWVt aTogZm49JWQgTm8gYWNjZXNzIHRvIE1NSU8gJXMgJXhcbiIsCisgICAgICAgICAgICAgICAgICAg cG1fZm4sIGlzX21taW9fd3JpdGUgPyAid3JpdGUiIDogInJlYWQiLCBwbV9hcmdbMF0pOworICAg ICAgICAgICAgcmV0WzBdID0gUE1fUkVUX0VSUk9SX0FDQ0VTUzsKKyAgICAgICAgICAgIGdvdG8g ZG9uZTsKKyAgICAgICAgfQorICAgICAgICBnb3RvIGZvcndhcmRfdG9fZnc7CisKKyAgICAvKiBF eGNsdXNpdmUgdG8gRG9tMC4gICovCisgICAgY2FzZSBQTV9JTklUOgorICAgIGNhc2UgUE1fU0VU X0NPTkZJR1VSQVRJT046CisgICAgY2FzZSBQTV9GUEdBX0xPQUQ6CisgICAgY2FzZSBQTV9GUEdB X0dFVF9TVEFUVVM6CisgICAgICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihjdXJyZW50LT5k b21haW4pICkgeworICAgICAgICAgICAgcHJpbnRrKCJlZW1pOiBmbj0lZCBObyBhY2Nlc3MiLCBw bV9mbik7CisgICAgICAgICAgICByZXRbMF0gPSBQTV9SRVRfRVJST1JfQUNDRVNTOworICAgICAg ICAgICAgZ290byBkb25lOworICAgICAgICB9CisgICAgICAgIGdvdG8gZm9yd2FyZF90b19mdzsK KworICAgIC8qIFRoZXNlIGNhbGxzIGFyZSBuZXZlciBhbGxvd2VkLiAgKi8KKyAgICBjYXNlIFBN X1NZU1RFTV9TSFVURE9XTjoKKyAgICAgICAgcmV0WzBdID0gUE1fUkVUX0VSUk9SX0FDQ0VTUzsK KyAgICAgICAgZ290byBkb25lOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgcHJpbnRrKCJ6eW5x bXAtcG06IFVuaGFuZGxlZCBQTSBDYWxsOiAlZFxuIiwgKHUzMilmaWQpOworICAgICAgICByZXR1 cm4gZmFsc2U7CisgICAgfQorCitmb3J3YXJkX3RvX2Z3OgorICAgIC8qIFJlLWVuY29kZSBwbSBh cmdzLiAgKi8KKyAgICBhMCA9ICgodWludDY0X3QpcG1fYXJnWzFdIDw8IDMyKSB8IHBtX2FyZ1sw XTsKKyAgICBhMSA9ICgodWludDY0X3QpcG1fYXJnWzNdIDw8IDMyKSB8IHBtX2FyZ1syXTsKKyAg ICBjYWxsX3NtY2M2NChmaWQsIGEwLCBhMSwgYTIsIGEzLCBhNCwgYTUsIHJldCk7Citkb25lOgor ICAgIHJldHVybiB0cnVlOworfQorCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTog QworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIGluZGVu dC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0v cGxhdGZvcm1zL3hpbGlueC16eW5xbXAuYyBiL3hlbi9hcmNoL2FybS9wbGF0Zm9ybXMveGlsaW54 LXp5bnFtcC5jCmluZGV4IDJhZGVlOTEuLmQ4MjYyODIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2Fy bS9wbGF0Zm9ybXMveGlsaW54LXp5bnFtcC5jCisrKyBiL3hlbi9hcmNoL2FybS9wbGF0Zm9ybXMv eGlsaW54LXp5bnFtcC5jCkBAIC0xOCw2ICsxOCw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGFzbS9w bGF0Zm9ybS5oPgorI2luY2x1ZGUgPGFzbS9wbGF0Zm9ybXMveGlsaW54LXp5bnFtcC1lZW1pLmg+ CiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgenlucW1wX2R0X2NvbXBhdFtdIF9faW5pdGNv bnN0ID0KIHsKQEAgLTMyLDggKzMzLDI1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHRfZGV2aWNl X21hdGNoIHp5bnFtcF9ibGFja2xpc3RfZGV2W10gX19pbml0Y29uc3QgPQogICAgIHsgLyogc2Vu dGluZWwgKi8gfSwKIH07CiAKK2Jvb2wgenlucW1wX2h2YyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq cmVncykKK3sKKyAgICByZWdpc3Rlcl90IHJldFs0XSA9IHsgMCB9OworCisgICAgaWYgKCAhenlu cW1wX2VlbWlfbWVkaWF0ZShyZWdzLT54MCwgcmVncy0+eDEsIHJlZ3MtPngyLCByZWdzLT54MywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ3MtPng0LCByZWdzLT54NSwgcmVncy0+ eDYsIHJldCkgKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvKiBUcmFuc2ZlciByZXR1 cm4gdmFsdWVzIGludG8gZ3Vlc3QgcmVnaXN0ZXJzLiAgKi8KKyAgICByZWdzLT54MCA9IHJldFsw XTsKKyAgICByZWdzLT54MSA9IHJldFsxXTsKKyAgICByZWdzLT54MiA9IHJldFsyXTsKKyAgICBy ZWdzLT54MyA9IHJldFszXTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogUExBVEZPUk1fU1RBUlQo eGdlbmVfc3Rvcm0sICJYaWxpbnggWnlucU1QIikKICAgICAuY29tcGF0aWJsZSA9IHp5bnFtcF9k dF9jb21wYXQsCisgICAgLmh2YyA9IHp5bnFtcF9odmMsCiAgICAgLmJsYWNrbGlzdF9kZXYgPSB6 eW5xbXBfYmxhY2tsaXN0X2RldiwKIFBMQVRGT1JNX0VORAogCmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20tYXJtL3BsYXRmb3Jtcy94aWxpbngtenlucW1wLWVlbWkuaCBiL3hlbi9pbmNsdWRl L2FzbS1hcm0vcGxhdGZvcm1zL3hpbGlueC16eW5xbXAtZWVtaS5oCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjc3NDU5M2MKLS0tIC9kZXYvbnVsbAorKysgYi94ZW4vaW5jbHVk ZS9hc20tYXJtL3BsYXRmb3Jtcy94aWxpbngtenlucW1wLWVlbWkuaApAQCAtMCwwICsxLDMzNyBA QAorLyogWGVuIHNwZWNpZmljczogICovCisvKiBNYWluIFBNIE1lZGlhdG9yIGVudHJ5LiAgKi8K K2Jvb2wgenlucW1wX2VlbWlfbWVkaWF0ZShyZWdpc3Rlcl90IGZpZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICByZWdpc3Rlcl90IGEwLAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lz dGVyX3QgYTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfdCBhMiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICByZWdpc3Rlcl90IGEzLAorICAgICAgICAgICAgICAgICAgICAg ICAgIHJlZ2lzdGVyX3QgYTQsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfdCBh NSwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZWdpc3Rlcl90ICpyZXQpOworCisvKiBTZXJ2 aWNlIGNhbGxzLiAgKi8KKyNkZWZpbmUgU1ZDX01BU0sgICAgICAgICAgICAgMHgzRjAwMDAwMAor I2RlZmluZSBTVkNfU0lQICAgICAgICAgICAgICAweDAyMDAwMDAwICAgIC8qIFNvQyBJbXBsZW1l bnRhdGlvbiBTcGVjaWZpYy4gICovCisjZGVmaW5lIFBNX1NJUF9TVkMgICAgICAgICAgIDB4QzIw MDAwMDAKKworLyogU01DIGZ1bmN0aW9uIElEcyBmb3IgU2lQIFNlcnZpY2UgcXVlcmllcyAqLwor I2RlZmluZSBaWU5RTVBfU0lQX1NWQ19DQUxMX0NPVU5UICAgICAgIDB4ZmYwMAorI2RlZmluZSBa WU5RTVBfU0lQX1NWQ19VSUQgICAgICAgICAgICAgIDB4ZmYwMQorI2RlZmluZSBaWU5RTVBfU0lQ X1NWQ19WRVJTSU9OICAgICAgICAgIDB4ZmYwMworCisvKiBHZW5lcmljIFBNIGRlZnM6ICAqLwor LyoKKyAqIFZlcnNpb24gbnVtYmVyIGlzIGEgMzJiaXQgdmFsdWUsIGxpa2U6CisgKiAoUE1fVkVS U0lPTl9NQUpPUiA8PCAxNikgfCBQTV9WRVJTSU9OX01JTk9SCisgKi8KKyNkZWZpbmUgUE1fVkVS U0lPTl9NQUpPUgkwCisjZGVmaW5lIFBNX1ZFUlNJT05fTUlOT1IJMgorCisjZGVmaW5lIFBNX1ZF UlNJT04JKChQTV9WRVJTSU9OX01BSk9SIDw8IDE2KSB8IFBNX1ZFUlNJT05fTUlOT1IpCisKKy8q IENhcGFiaWxpdGllcyBmb3IgUkFNICovCisjZGVmaW5lIFBNX0NBUF9BQ0NFU1MJMHgxVQorI2Rl ZmluZSBQTV9DQVBfQ09OVEVYVAkweDJVCisKKyNkZWZpbmUgTUFYX0xBVEVOQ1kJKH4wVSkKKyNk ZWZpbmUgTUFYX1FPUwkJMTAwVQorCisvKiBTdGF0ZSBhcmd1bWVudHMgb2YgdGhlIHNlbGYgc3Vz cGVuZCAqLworI2RlZmluZSBQTV9TVEFURV9DUFVfSURMRQkJMHgwVQorI2RlZmluZSBQTV9TVEFU RV9TVVNQRU5EX1RPX1JBTQkJMHhGVQorCitlbnVtIHBtX2FwaV9pZCB7CisJLyogTWlzY2VsbGFu ZW91cyBBUEkgZnVuY3Rpb25zOiAqLworCVBNX0dFVF9BUElfVkVSU0lPTiA9IDEsIC8qIERvIG5v dCBjaGFuZ2Ugb3IgbW92ZSAqLworCVBNX1NFVF9DT05GSUdVUkFUSU9OLAorCVBNX0dFVF9OT0RF X1NUQVRVUywKKwlQTV9HRVRfT1BfQ0hBUkFDVEVSSVNUSUMsCisJUE1fUkVHSVNURVJfTk9USUZJ RVIsCisJLyogQVBJIGZvciBzdXNwZW5kaW5nIG9mIFBVczogKi8KKwlQTV9SRVFfU1VTUEVORCwK KwlQTV9TRUxGX1NVU1BFTkQsCisJUE1fRk9SQ0VfUE9XRVJET1dOLAorCVBNX0FCT1JUX1NVU1BF TkQsCisJUE1fUkVRX1dBS0VVUCwKKwlQTV9TRVRfV0FLRVVQX1NPVVJDRSwKKwlQTV9TWVNURU1f U0hVVERPV04sCisJLyogQVBJIGZvciBtYW5hZ2luZyBQTSBzbGF2ZXM6ICovCisJUE1fUkVRX05P REUsCisJUE1fUkVMRUFTRV9OT0RFLAorCVBNX1NFVF9SRVFVSVJFTUVOVCwKKwlQTV9TRVRfTUFY X0xBVEVOQ1ksCisJLyogRGlyZWN0IGNvbnRyb2wgQVBJIGZ1bmN0aW9uczogKi8KKwlQTV9SRVNF VF9BU1NFUlQsCisJUE1fUkVTRVRfR0VUX1NUQVRVUywKKwlQTV9NTUlPX1dSSVRFLAorCVBNX01N SU9fUkVBRCwKKwlQTV9JTklULAorCVBNX0ZQR0FfTE9BRCwKKwlQTV9GUEdBX0dFVF9TVEFUVVMs CisJUE1fR0VUX0NISVBJRCwKKwlQTV9BUElfTUFYCit9OworCitlbnVtIHBtX25vZGVfaWQgewor CU5PREVfVU5LTk9XTiA9IDAsCisJTk9ERV9BUFUsCisJTk9ERV9BUFVfMCwKKwlOT0RFX0FQVV8x LAorCU5PREVfQVBVXzIsCisJTk9ERV9BUFVfMywKKwlOT0RFX1JQVSwKKwlOT0RFX1JQVV8wLAor CU5PREVfUlBVXzEsCisJTk9ERV9QTCwKKwlOT0RFX0ZQRCwKKwlOT0RFX09DTV9CQU5LXzAsCisJ Tk9ERV9PQ01fQkFOS18xLAorCU5PREVfT0NNX0JBTktfMiwKKwlOT0RFX09DTV9CQU5LXzMsCisJ Tk9ERV9UQ01fMF9BLAorCU5PREVfVENNXzBfQiwKKwlOT0RFX1RDTV8xX0EsCisJTk9ERV9UQ01f MV9CLAorCU5PREVfTDIsCisJTk9ERV9HUFVfUFBfMCwKKwlOT0RFX0dQVV9QUF8xLAorCU5PREVf VVNCXzAsCisJTk9ERV9VU0JfMSwKKwlOT0RFX1RUQ18wLAorCU5PREVfVFRDXzEsCisJTk9ERV9U VENfMiwKKwlOT0RFX1RUQ18zLAorCU5PREVfU0FUQSwKKwlOT0RFX0VUSF8wLAorCU5PREVfRVRI XzEsCisJTk9ERV9FVEhfMiwKKwlOT0RFX0VUSF8zLAorCU5PREVfVUFSVF8wLAorCU5PREVfVUFS VF8xLAorCU5PREVfU1BJXzAsCisJTk9ERV9TUElfMSwKKwlOT0RFX0kyQ18wLAorCU5PREVfSTJD XzEsCisJTk9ERV9TRF8wLAorCU5PREVfU0RfMSwKKwlOT0RFX0RQLAorCU5PREVfR0RNQSwKKwlO T0RFX0FETUEsCisJTk9ERV9OQU5ELAorCU5PREVfUVNQSSwKKwlOT0RFX0dQSU8sCisJTk9ERV9D QU5fMCwKKwlOT0RFX0NBTl8xLAorCU5PREVfQUZJLAorCU5PREVfQVBMTCwKKwlOT0RFX1ZQTEws CisJTk9ERV9EUExMLAorCU5PREVfUlBMTCwKKwlOT0RFX0lPUExMLAorCU5PREVfRERSLAorCU5P REVfSVBJX0FQVSwKKwlOT0RFX0lQSV9SUFVfMCwKKwlOT0RFX0dQVSwKKwlOT0RFX1BDSUUsCisJ Tk9ERV9QQ0FQLAorCU5PREVfUlRDLAorCU5PREVfTUFYCit9OworCitlbnVtIHBtX3JlcXVlc3Rf YWNrIHsKKwlSRVFfQUNLX05PID0gMSwKKwlSRVFfQUNLX0JMT0NLSU5HLAorCVJFUV9BQ0tfTk9O X0JMT0NLSU5HLAorfTsKKworZW51bSBwbV9hYm9ydF9yZWFzb24geworCUFCT1JUX1JFQVNPTl9X S1VQX0VWRU5UID0gMTAwLAorCUFCT1JUX1JFQVNPTl9QVV9CVVNZLAorCUFCT1JUX1JFQVNPTl9O T19QV1JETiwKKwlBQk9SVF9SRUFTT05fVU5LTk9XTiwKK307CisKK2VudW0gcG1fc3VzcGVuZF9y ZWFzb24geworCVNVU1BFTkRfUkVBU09OX1BVX1JFUSA9IDIwMSwKKwlTVVNQRU5EX1JFQVNPTl9B TEVSVCwKKwlTVVNQRU5EX1JFQVNPTl9TWVNfU0hVVERPV04sCit9OworCitlbnVtIHBtX3JhbV9z dGF0ZSB7CisJUE1fUkFNX1NUQVRFX09GRiA9IDEsCisJUE1fUkFNX1NUQVRFX1JFVEVOVElPTiwK KwlQTV9SQU1fU1RBVEVfT04sCit9OworCitlbnVtIHBtX29wY2hhcl90eXBlIHsKKwlQTV9PUENI QVJfVFlQRV9QT1dFUiA9IDEsCisJUE1fT1BDSEFSX1RZUEVfVEVNUCwKKwlQTV9PUENIQVJfVFlQ RV9MQVRFTkNZLAorfTsKKworLyoqCisgKiBAUE1fUkVUX1NVQ0NFU1M6CQlzdWNjZXNzCisgKiBA UE1fUkVUX0VSUk9SX0FSR1M6CQlpbGxlZ2FsIGFyZ3VtZW50cyBwcm92aWRlZAorICogQFBNX1JF VF9FUlJPUl9BQ0NFU1M6CWFjY2VzcyByaWdodHMgdmlvbGF0aW9uCisgKiBAUE1fUkVUX0VSUk9S X1RJTUVPVVQ6CXRpbWVvdXQgaW4gY29tbXVuaWNhdGlvbiB3aXRoIFBNVQorICogQFBNX1JFVF9F UlJPUl9OT1RTVVBQT1JURUQ6CWZlYXR1cmUgbm90IHN1cHBvcnRlZAorICogQFBNX1JFVF9FUlJP Ul9QUk9DOgkJbm9kZSBpcyBub3QgYSBwcm9jZXNzb3Igbm9kZQorICogQFBNX1JFVF9FUlJPUl9B UElfSUQ6CWlsbGVnYWwgQVBJIElECisgKiBAUE1fUkVUX0VSUk9SX09USEVSOgkJb3RoZXIgZXJy b3IKKyAqLworZW51bSBwbV9yZXRfc3RhdHVzIHsKKwlQTV9SRVRfU1VDQ0VTUywKKwlQTV9SRVRf RVJST1JfQVJHUywKKwlQTV9SRVRfRVJST1JfQUNDRVNTLAorCVBNX1JFVF9FUlJPUl9USU1FT1VU LAorCVBNX1JFVF9FUlJPUl9OT1RTVVBQT1JURUQsCisJUE1fUkVUX0VSUk9SX1BST0MsCisJUE1f UkVUX0VSUk9SX0FQSV9JRCwKKwlQTV9SRVRfRVJST1JfRkFJTFVSRSwKKwlQTV9SRVRfRVJST1Jf Q09NTVVOSUMsCisJUE1fUkVUX0VSUk9SX0RPVUJMRVJFUSwKKwlQTV9SRVRfRVJST1JfT1RIRVIs Cit9OworCisvKioKKyAqIEBQTV9JTklUSUFMX0JPT1Q6CWJvb3QgaXMgYSBmcmVzaCBzeXN0ZW0g c3RhcnR1cAorICogQFBNX1JFU1VNRToJCWJvb3QgaXMgYSByZXN1bWUKKyAqIEBQTV9CT09UX0VS Uk9SOgllcnJvciwgYm9vdCBjYXVzZSBjYW5ub3QgYmUgaWRlbnRpZmllZAorICovCitlbnVtIHBt X2Jvb3Rfc3RhdHVzIHsKKwlQTV9JTklUSUFMX0JPT1QsCisJUE1fUkVTVU1FLAorCVBNX0JPT1Rf RVJST1IsCit9OworCitlbnVtIHBtX3NodXRkb3duX3R5cGUgeworCVBNRl9TSFVURE9XTl9UWVBF X1NIVVRET1dOLAorCVBNRl9TSFVURE9XTl9UWVBFX1JFU0VULAorfTsKKworZW51bSBwbV9zaHV0 ZG93bl9zdWJ0eXBlIHsKKwlQTUZfU0hVVERPV05fU1VCVFlQRV9TVUJTWVNURU0sCisJUE1GX1NI VVRET1dOX1NVQlRZUEVfUFNfT05MWSwKKwlQTUZfU0hVVERPV05fU1VCVFlQRV9TWVNURU0sCit9 OworCitlbnVtIHBtX3Jlc2V0IHsKKwlQTV9SRVNFVF9TVEFSVCA9IDk5OSwKKwlQTV9SRVNFVF9Q Q0lFX0NGRywKKwlQTV9SRVNFVF9QQ0lFX0JSSURHRSwKKwlQTV9SRVNFVF9QQ0lFX0NUUkwsCisJ UE1fUkVTRVRfRFAsCisJUE1fUkVTRVRfU1dEVF9DUkYsCisJUE1fUkVTRVRfQUZJX0ZNNSwKKwlQ TV9SRVNFVF9BRklfRk00LAorCVBNX1JFU0VUX0FGSV9GTTMsCisJUE1fUkVTRVRfQUZJX0ZNMiwK KwlQTV9SRVNFVF9BRklfRk0xLAorCVBNX1JFU0VUX0FGSV9GTTAsCisJUE1fUkVTRVRfR0RNQSwK KwlQTV9SRVNFVF9HUFVfUFAxLAorCVBNX1JFU0VUX0dQVV9QUDAsCisJUE1fUkVTRVRfR1BVLAor CVBNX1JFU0VUX0dULAorCVBNX1JFU0VUX1NBVEEsCisJUE1fUkVTRVRfQUNQVTNfUFdST04sCisJ UE1fUkVTRVRfQUNQVTJfUFdST04sCisJUE1fUkVTRVRfQUNQVTFfUFdST04sCisJUE1fUkVTRVRf QUNQVTBfUFdST04sCisJUE1fUkVTRVRfQVBVX0wyLAorCVBNX1JFU0VUX0FDUFUzLAorCVBNX1JF U0VUX0FDUFUyLAorCVBNX1JFU0VUX0FDUFUxLAorCVBNX1JFU0VUX0FDUFUwLAorCVBNX1JFU0VU X0REUiwKKwlQTV9SRVNFVF9BUE1fRlBELAorCVBNX1JFU0VUX1NPRlQsCisJUE1fUkVTRVRfR0VN MCwKKwlQTV9SRVNFVF9HRU0xLAorCVBNX1JFU0VUX0dFTTIsCisJUE1fUkVTRVRfR0VNMywKKwlQ TV9SRVNFVF9RU1BJLAorCVBNX1JFU0VUX1VBUlQwLAorCVBNX1JFU0VUX1VBUlQxLAorCVBNX1JF U0VUX1NQSTAsCisJUE1fUkVTRVRfU1BJMSwKKwlQTV9SRVNFVF9TRElPMCwKKwlQTV9SRVNFVF9T RElPMSwKKwlQTV9SRVNFVF9DQU4wLAorCVBNX1JFU0VUX0NBTjEsCisJUE1fUkVTRVRfSTJDMCwK KwlQTV9SRVNFVF9JMkMxLAorCVBNX1JFU0VUX1RUQzAsCisJUE1fUkVTRVRfVFRDMSwKKwlQTV9S RVNFVF9UVEMyLAorCVBNX1JFU0VUX1RUQzMsCisJUE1fUkVTRVRfU1dEVF9DUkwsCisJUE1fUkVT RVRfTkFORCwKKwlQTV9SRVNFVF9BRE1BLAorCVBNX1JFU0VUX0dQSU8sCisJUE1fUkVTRVRfSU9V X0NDLAorCVBNX1JFU0VUX1RJTUVTVEFNUCwKKwlQTV9SRVNFVF9SUFVfUjUwLAorCVBNX1JFU0VU X1JQVV9SNTEsCisJUE1fUkVTRVRfUlBVX0FNQkEsCisJUE1fUkVTRVRfT0NNLAorCVBNX1JFU0VU X1JQVV9QR0UsCisJUE1fUkVTRVRfVVNCMF9DT1JFUkVTRVQsCisJUE1fUkVTRVRfVVNCMV9DT1JF UkVTRVQsCisJUE1fUkVTRVRfVVNCMF9ISUJFUlJFU0VULAorCVBNX1JFU0VUX1VTQjFfSElCRVJS RVNFVCwKKwlQTV9SRVNFVF9VU0IwX0FQQiwKKwlQTV9SRVNFVF9VU0IxX0FQQiwKKwlQTV9SRVNF VF9JUEksCisJUE1fUkVTRVRfQVBNX0xQRCwKKwlQTV9SRVNFVF9SVEMsCisJUE1fUkVTRVRfU1lT TU9OLAorCVBNX1JFU0VUX0FGSV9GTTYsCisJUE1fUkVTRVRfTFBEX1NXRFQsCisJUE1fUkVTRVRf RlBELAorCVBNX1JFU0VUX1JQVV9EQkcxLAorCVBNX1JFU0VUX1JQVV9EQkcwLAorCVBNX1JFU0VU X0RCR19MUEQsCisJUE1fUkVTRVRfREJHX0ZQRCwKKwlQTV9SRVNFVF9BUExMLAorCVBNX1JFU0VU X0RQTEwsCisJUE1fUkVTRVRfVlBMTCwKKwlQTV9SRVNFVF9JT1BMTCwKKwlQTV9SRVNFVF9SUExM LAorCVBNX1JFU0VUX0dQTzNfUExfMCwKKwlQTV9SRVNFVF9HUE8zX1BMXzEsCisJUE1fUkVTRVRf R1BPM19QTF8yLAorCVBNX1JFU0VUX0dQTzNfUExfMywKKwlQTV9SRVNFVF9HUE8zX1BMXzQsCisJ UE1fUkVTRVRfR1BPM19QTF81LAorCVBNX1JFU0VUX0dQTzNfUExfNiwKKwlQTV9SRVNFVF9HUE8z X1BMXzcsCisJUE1fUkVTRVRfR1BPM19QTF84LAorCVBNX1JFU0VUX0dQTzNfUExfOSwKKwlQTV9S RVNFVF9HUE8zX1BMXzEwLAorCVBNX1JFU0VUX0dQTzNfUExfMTEsCisJUE1fUkVTRVRfR1BPM19Q TF8xMiwKKwlQTV9SRVNFVF9HUE8zX1BMXzEzLAorCVBNX1JFU0VUX0dQTzNfUExfMTQsCisJUE1f UkVTRVRfR1BPM19QTF8xNSwKKwlQTV9SRVNFVF9HUE8zX1BMXzE2LAorCVBNX1JFU0VUX0dQTzNf UExfMTcsCisJUE1fUkVTRVRfR1BPM19QTF8xOCwKKwlQTV9SRVNFVF9HUE8zX1BMXzE5LAorCVBN X1JFU0VUX0dQTzNfUExfMjAsCisJUE1fUkVTRVRfR1BPM19QTF8yMSwKKwlQTV9SRVNFVF9HUE8z X1BMXzIyLAorCVBNX1JFU0VUX0dQTzNfUExfMjMsCisJUE1fUkVTRVRfR1BPM19QTF8yNCwKKwlQ TV9SRVNFVF9HUE8zX1BMXzI1LAorCVBNX1JFU0VUX0dQTzNfUExfMjYsCisJUE1fUkVTRVRfR1BP M19QTF8yNywKKwlQTV9SRVNFVF9HUE8zX1BMXzI4LAorCVBNX1JFU0VUX0dQTzNfUExfMjksCisJ UE1fUkVTRVRfR1BPM19QTF8zMCwKKwlQTV9SRVNFVF9HUE8zX1BMXzMxLAorCVBNX1JFU0VUX1JQ VV9MUywKKwlQTV9SRVNFVF9QU19PTkxZLAorCVBNX1JFU0VUX1BMLAorCVBNX1JFU0VUX0VORAor fTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vcGxhdGZvcm1zL3hpbGlueC16eW5x bXAtbW0uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vcGxhdGZvcm1zL3hpbGlueC16eW5xbXAtbW0u aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZmIxNjk1Ci0tLSAvZGV2L251 bGwKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9wbGF0Zm9ybXMveGlsaW54LXp5bnFtcC1tbS5o CkBAIC0wLDAgKzEsMjg0IEBACisvKgorICogTWVyZ2Ugb2YgdmFyaW91cyBhdXRvLWdlbmVyYXRl ZCBtZW1vcnkgbWFwIGFuZCByZWdpc3RlcgorICogZGVmaW5pdGlvbiBmaWxlcy4KKyAqLworCisv KiBTZWxlY3RlZCBzZXQgb2YgbWVtb3J5LW1hcCBkZWZpbml0aW9uczogICovCisjZGVmaW5lIE1N X0lPVV9TCTB4ZmYwMDAwMDAKKyNkZWZpbmUgTU1fSVBJCTB4ZmYzMDAwMDAKKyNkZWZpbmUgTU1f TFBEX1NMQ1IJMHhmZjQxMDAwMAorI2RlZmluZSBNTV9MUERfU0xDUl9TRUNVUkUJMHhmZjRiMDAw MAorI2RlZmluZSBNTV9DUkxfQVBCCTB4ZmY1ZTAwMDAKKyNkZWZpbmUgTU1fT0NNCTB4ZmY5NjAw MDAKKyNkZWZpbmUgTU1fTFBEX1hQUFUJMHhmZjk4MDAwMAorI2RlZmluZSBNTV9SUFUJMHhmZjlh MDAwMAorI2RlZmluZSBNTV9BRklGTTYJMHhmZjliMDAwMAorI2RlZmluZSBNTV9MUERfWFBQVV9T SU5LCTB4ZmY5YzAwMDAKKyNkZWZpbmUgTU1fVVNCM18wCTB4ZmY5ZDAwMDAKKyNkZWZpbmUgTU1f VVNCM18xCTB4ZmY5ZTAwMDAKKyNkZWZpbmUgTU1fQVBNX0lOVENfT0NNCTB4ZmZhMDAwMDAKKyNk ZWZpbmUgTU1fQVBNX0xQRF9GUEQJMHhmZmExMDAwMAorI2RlZmluZSBNTV9BTVNfQ1RSTAkweGZm YTUwMDAwCisjZGVmaW5lIE1NX0FNU19QU19TWVNNT04JMHhmZmE1MDgwMAorI2RlZmluZSBNTV9B TVNfUExfU1lTTU9OCTB4ZmZhNTBjMDAKKyNkZWZpbmUgTU1fUlRDCTB4ZmZhNjAwMDAKKyNkZWZp bmUgTU1fT0NNX1hNUFVfQ0ZHCTB4ZmZhNzAwMDAKKyNkZWZpbmUgTU1fQURNQV9DSDAJMHhmZmE4 MDAwMAorI2RlZmluZSBNTV9BRE1BX0NIMQkweGZmYTkwMDAwCisjZGVmaW5lIE1NX0FETUFfQ0gy CTB4ZmZhYTAwMDAKKyNkZWZpbmUgTU1fQURNQV9DSDMJMHhmZmFiMDAwMAorI2RlZmluZSBNTV9B RE1BX0NINAkweGZmYWMwMDAwCisjZGVmaW5lIE1NX0FETUFfQ0g1CTB4ZmZhZDAwMDAKKyNkZWZp bmUgTU1fQURNQV9DSDYJMHhmZmFlMDAwMAorCisjZGVmaW5lIE1NX0lPVV9HUFYJMHhmZTBmZmZm ZgorI2RlZmluZSBNTV9MUERfR1BWCTB4ZmUxZmZmZmYKKyNkZWZpbmUgTU1fVVNCM18wX1hIQ0kJ MHhmZTJmZmZmZgorI2RlZmluZSBNTV9VU0IzXzFfWEhDSQkweGZlM2ZmZmZmCisjZGVmaW5lIE1N X0NPUkVTSUdIVF9TT0NfUk9NCTB4ZmU4MGZmZmYKKyNkZWZpbmUgTU1fQ09SRVNJR0hUX1NPQ19U U0dFTgkweGZlOTBmZmZmCisjZGVmaW5lIE1NX0NPUkVTSUdIVF9TT0NfRlVOTl8wCTB4ZmU5MWZm ZmYKKyNkZWZpbmUgTU1fQ09SRVNJR0hUX1NPQ19GVU5OXzEJMHhmZTkyZmZmZgorI2RlZmluZSBN TV9DT1JFU0lHSFRfU09DX0ZVTk5fMgkweGZlOTNmZmZmCisjZGVmaW5lIE1NX0NPUkVTSUdIVF9T T0NfRVRGXzEJMHhmZTk0ZmZmZgorI2RlZmluZSBNTV9DT1JFU0lHSFRfU09DX0VURl8yCTB4ZmU5 NWZmZmYKKyNkZWZpbmUgTU1fQ09SRVNJR0hUX1NPQ19SRVBMSUMJMHhmZTk2ZmZmZgorI2RlZmlu ZSBNTV9DT1JFU0lHSFRfU09DX0VUUgkweGZlOTdmZmZmCisjZGVmaW5lIE1NX0NPUkVTSUdIVF9T T0NfVFBJVQkweGZlOThmZmZmCisjZGVmaW5lIE1NX0NPUkVTSUdIVF9TT0NfQ1RJXzAJMHhmZTk5 ZmZmZgorI2RlZmluZSBNTV9DT1JFU0lHSFRfU09DX0NUSV8xCTB4ZmU5YWZmZmYKKyNkZWZpbmUg TU1fQ09SRVNJR0hUX1NPQ19DVElfMgkweGZlOWJmZmZmCisjZGVmaW5lIE1NX0NPUkVTSUdIVF9T T0NfU1RNCTB4ZmU5Y2ZmZmYKKyNkZWZpbmUgTU1fQ09SRVNJR0hUX1NPQ19GVE0JMHhmZTlkZmZm ZgorI2RlZmluZSBNTV9DT1JFU0lHSFRfU09DX0FUTV8wCTB4ZmU5ZWZmZmYKKyNkZWZpbmUgTU1f Q09SRVNJR0hUX1NPQ19BVE1fMQkweGZlOWZmZmZmCisjZGVmaW5lIE1NX0NPUkVTSUdIVF9SNV9S T00JMHhmZWJlMGZmZgorI2RlZmluZSBNTV9DT1JFU0lHSFRfUjVfREJHXzAJMHhmZWJmMGZmZgor I2RlZmluZSBNTV9DT1JFU0lHSFRfUjVfUE1VXzAJMHhmZWJmMWZmZgorI2RlZmluZSBNTV9DT1JF U0lHSFRfUjVfREJHXzEJMHhmZWJmMmZmZgorI2RlZmluZSBNTV9DT1JFU0lHSFRfUjVfUE1VXzEJ MHhmZWJmM2ZmZgorI2RlZmluZSBNTV9DT1JFU0lHSFRfUjVfQ1RJXzAJMHhmZWJmOGZmZgorI2Rl ZmluZSBNTV9DT1JFU0lHSFRfUjVfQ1RJXzEJMHhmZWJmOWZmZgorI2RlZmluZSBNTV9DT1JFU0lH SFRfUjVfRVRNXzAJMHhmZWJmY2ZmZgorI2RlZmluZSBNTV9DT1JFU0lHSFRfUjVfRVRNXzEJMHhm ZWJmZGZmZgorI2RlZmluZSBNTV9DT1JFU0lHSFRfQTUzX1JPTQkweGZlYzBmZmZmCisjZGVmaW5l IE1NX0NPUkVTSUdIVF9BNTNfREJHXzAJMHhmZWMxZmZmZgorI2RlZmluZSBNTV9DT1JFU0lHSFRf QTUzX0NUSV8wCTB4ZmVjMmZmZmYKKyNkZWZpbmUgTU1fQ09SRVNJR0hUX0E1M19QTVVfMAkweGZl YzNmZmZmCisjZGVmaW5lIE1NX0NPUkVTSUdIVF9BNTNfRVRNXzAJMHhmZWM0ZmZmZgorI2RlZmlu ZSBNTV9DT1JFU0lHSFRfQTUzX0RCR18xCTB4ZmVkMWZmZmYKKyNkZWZpbmUgTU1fQ09SRVNJR0hU X0E1M19DVElfMQkweGZlZDJmZmZmCisjZGVmaW5lIE1NX0NPUkVTSUdIVF9BNTNfUE1VXzEJMHhm ZWQzZmZmZgorI2RlZmluZSBNTV9DT1JFU0lHSFRfQTUzX0VUTV8xCTB4ZmVkNGZmZmYKKyNkZWZp bmUgTU1fQ09SRVNJR0hUX0E1M19EQkdfMgkweGZlZTFmZmZmCisjZGVmaW5lIE1NX0NPUkVTSUdI VF9BNTNfQ1RJXzIJMHhmZWUyZmZmZgorI2RlZmluZSBNTV9DT1JFU0lHSFRfQTUzX1BNVV8yCTB4 ZmVlM2ZmZmYKKyNkZWZpbmUgTU1fQ09SRVNJR0hUX0E1M19FVE1fMgkweGZlZTRmZmZmCisjZGVm aW5lIE1NX0NPUkVTSUdIVF9BNTNfREJHXzMJMHhmZWYxZmZmZgorI2RlZmluZSBNTV9DT1JFU0lH SFRfQTUzX0NUSV8zCTB4ZmVmMmZmZmYKKyNkZWZpbmUgTU1fQ09SRVNJR0hUX0E1M19QTVVfMwkw eGZlZjNmZmZmCisKKyNkZWZpbmUgTU1fRERSU1MJMHhmZDAwMDAwMAorI2RlZmluZSBNTV9TQVRB X0FIQ0lfSEJBCTB4ZmQwYzAwMDAKKyNkZWZpbmUgTU1fU0FUQV9BSENJX1ZFTkRPUgkweGZkMGMw MGEwCisjZGVmaW5lIE1NX1NBVEFfQUhDSV9QT1JUMF9DTlRSTAkweGZkMGMwMTAwCisjZGVmaW5l IE1NX1NBVEFfQUhDSV9QT1JUMV9DTlRSTAkweGZkMGMwMTgwCisjZGVmaW5lIE1NX0FYSVBDSUVf TUFJTgkweGZkMGUwMDAwCisjZGVmaW5lIE1NX0FYSVBDSUVfSU5HUkVTUzAJMHhmZDBlMDgwMAor I2RlZmluZSBNTV9BWElQQ0lFX0lOR1JFU1MxCTB4ZmQwZTA4MjAKKyNkZWZpbmUgTU1fQVhJUENJ RV9JTkdSRVNTMgkweGZkMGUwODQwCisjZGVmaW5lIE1NX0FYSVBDSUVfSU5HUkVTUzMJMHhmZDBl MDg2MAorI2RlZmluZSBNTV9BWElQQ0lFX0lOR1JFU1M0CTB4ZmQwZTA4ODAKKyNkZWZpbmUgTU1f QVhJUENJRV9JTkdSRVNTNQkweGZkMGUwOGEwCisjZGVmaW5lIE1NX0FYSVBDSUVfSU5HUkVTUzYJ MHhmZDBlMDhjMAorI2RlZmluZSBNTV9BWElQQ0lFX0lOR1JFU1M3CTB4ZmQwZTA4ZTAKKyNkZWZp bmUgTU1fQVhJUENJRV9FR1JFU1MwCTB4ZmQwZTBjMDAKKyNkZWZpbmUgTU1fQVhJUENJRV9FR1JF U1MxCTB4ZmQwZTBjMjAKKyNkZWZpbmUgTU1fQVhJUENJRV9FR1JFU1MyCTB4ZmQwZTBjNDAKKyNk ZWZpbmUgTU1fQVhJUENJRV9FR1JFU1MzCTB4ZmQwZTBjNjAKKyNkZWZpbmUgTU1fQVhJUENJRV9F R1JFU1M0CTB4ZmQwZTBjODAKKyNkZWZpbmUgTU1fQVhJUENJRV9FR1JFU1M1CTB4ZmQwZTBjYTAK KyNkZWZpbmUgTU1fQVhJUENJRV9FR1JFU1M2CTB4ZmQwZTBjYzAKKyNkZWZpbmUgTU1fQVhJUENJ RV9FR1JFU1M3CTB4ZmQwZTBjZTAKKyNkZWZpbmUgTU1fQVhJUENJRV9ETUEwCTB4ZmQwZjAwMDAK KyNkZWZpbmUgTU1fQVhJUENJRV9ETUExCTB4ZmQwZjAwODAKKyNkZWZpbmUgTU1fQVhJUENJRV9E TUEyCTB4ZmQwZjAxMDAKKyNkZWZpbmUgTU1fQVhJUENJRV9ETUEzCTB4ZmQwZjAxODAKKyNkZWZp bmUgTU1fQVhJUENJRV9NU0lYX1RBQkxFCTB4ZmQwZjEwMDAKKyNkZWZpbmUgTU1fQVhJUENJRV9N U0lYX1BCQQkweGZkMGYyMDAwCisjZGVmaW5lIE1NX0NSRl9BUEIJMHhmZDFhMDAwMAorI2RlZmlu ZSBNTV9BRklGTTAJMHhmZDM2MDAwMAorI2RlZmluZSBNTV9BRklGTTEJMHhmZDM3MDAwMAorI2Rl ZmluZSBNTV9BRklGTTIJMHhmZDM4MDAwMAorI2RlZmluZSBNTV9BRklGTTMJMHhmZDM5MDAwMAor I2RlZmluZSBNTV9BRklGTTQJMHhmZDNhMDAwMAorI2RlZmluZSBNTV9BRklGTTUJMHhmZDNiMDAw MAorI2RlZmluZSBNTV9TSU9VCTB4ZmQzZDAwMDAKKyNkZWZpbmUgTU1fU0VSREVTCTB4ZmQ0MDAw MDAKKyNkZWZpbmUgTU1fUENJRV9BVFRSSUIJMHhmZDQ4MDAwMAorI2RlZmluZSBNTV9BUE1fQ0NJ X0lOVEMJMHhmZDQ5MDAwMAorI2RlZmluZSBNTV9EUAkweGZkNGEwMDAwCisjZGVmaW5lIE1NX0dQ VQkweGZkNGIwMDAwCisjZGVmaW5lIE1NX0RQRE1BCTB4ZmQ0YzAwMDAKKyNkZWZpbmUgTU1fV0RU CTB4ZmQ0ZDAwMDAKKyNkZWZpbmUgTU1fRlBEX1hNUFVfU0lOSwkweGZkNGYwMDAwCisjZGVmaW5l IE1NX0dETUFfQ0gwCTB4ZmQ1MDAwMDAKKyNkZWZpbmUgTU1fR0RNQV9DSDEJMHhmZDUxMDAwMAor I2RlZmluZSBNTV9HRE1BX0NIMgkweGZkNTIwMDAwCisjZGVmaW5lIE1NX0dETUFfQ0gzCTB4ZmQ1 MzAwMDAKKyNkZWZpbmUgTU1fR0RNQV9DSDQJMHhmZDU0MDAwMAorI2RlZmluZSBNTV9HRE1BX0NI NQkweGZkNTUwMDAwCisjZGVmaW5lIE1NX0dETUFfQ0g2CTB4ZmQ1NjAwMDAKKyNkZWZpbmUgTU1f R0RNQV9DSDcJMHhmZDU3MDAwMAorI2RlZmluZSBNTV9BUFUJMHhmZDVjMDAwMAorI2RlZmluZSBN TV9GUERfWE1QVV9DRkcJMHhmZDVkMDAwMAorI2RlZmluZSBNTV9DQ0lfUkVHCTB4ZmQ1ZTAwMDAK KyNkZWZpbmUgTU1fU01NVV9SRUcJMHhmZDVmMDAwMAorI2RlZmluZSBNTV9GUERfU0xDUgkweGZk NjEwMDAwCisjZGVmaW5lIE1NX0ZQRF9TTENSX1NFQ1VSRQkweGZkNjkwMDAwCisjZGVmaW5lIE1N X0NDSV9HUFYJMHhmZDZlMDAwMAorI2RlZmluZSBNTV9GUERfR1BWCTB4ZmQ3MDAwMDAKKworI2Rl ZmluZSBNTV9RU1BJX0xpbmVhcl9BZGRyZXNzCTB4YzAwMDAwMDAKKyNkZWZpbmUgTU1fVUFSVDAJ MHhmZjAwMDAwMAorI2RlZmluZSBNTV9VQVJUMQkweGZmMDEwMDAwCisjZGVmaW5lIE1NX0kyQzAJ MHhmZjAyMDAwMAorI2RlZmluZSBNTV9JMkMxCTB4ZmYwMzAwMDAKKyNkZWZpbmUgTU1fU1BJMAkw eGZmMDQwMDAwCisjZGVmaW5lIE1NX1NQSTEJMHhmZjA1MDAwMAorI2RlZmluZSBNTV9DQU4wCTB4 ZmYwNjAwMDAKKyNkZWZpbmUgTU1fQ0FOMQkweGZmMDcwMDAwCisjZGVmaW5lIE1NX0dQSU8JMHhm ZjBhMDAwMAorI2RlZmluZSBNTV9HRU0wCTB4ZmYwYjAwMDAKKyNkZWZpbmUgTU1fR0VNMQkweGZm MGMwMDAwCisjZGVmaW5lIE1NX0dFTTIJMHhmZjBkMDAwMAorI2RlZmluZSBNTV9HRU0zCTB4ZmYw ZTAwMDAKKyNkZWZpbmUgTU1fUVNQSQkweGZmMGYwMDAwCisjZGVmaW5lIE1NX05BTkQJMHhmZjEw MDAwMAorI2RlZmluZSBNTV9UVEMwCTB4ZmYxMTAwMDAKKyNkZWZpbmUgTU1fVFRDMQkweGZmMTIw MDAwCisjZGVmaW5lIE1NX1RUQzIJMHhmZjEzMDAwMAorI2RlZmluZSBNTV9UVEMzCTB4ZmYxNDAw MDAKKyNkZWZpbmUgTU1fU1dEVAkweGZmMTUwMDAwCisjZGVmaW5lIE1NX1NEMAkweGZmMTYwMDAw CisjZGVmaW5lIE1NX1NEMQkweGZmMTcwMDAwCisjZGVmaW5lIE1NX0lPVV9TTENSCTB4ZmYxODAw MDAKKyNkZWZpbmUgTU1fSU9VX1NFQ1VSRV9TTENSCTB4ZmYyNDAwMDAKKyNkZWZpbmUgTU1fSU9V X1NDTlRSCTB4ZmYyNTAwMDAKKworI2RlZmluZSBNTV9hbGdfdmN1X2VuY190b3AJMHhhMDAwMDAw MAorI2RlZmluZSBNTV9hbGdfdmN1X2RlY190b3AJMHhhMDAyMDAwMAorCisjZGVmaW5lIE1NX1BN VV9HTE9CQUwgICAgICAgICAgIDB4ZmZkODAwMDAKKyNkZWZpbmUgTU1fQ1NVICAgICAgICAgICAg ICAgICAgMHhmZmNhMDAwMAorCisvKiBTZWxlY3RlZCBzZXQgb2YgcmVnaXN0ZXIgZGVmaW5pdGlv bnM6ICAqLworI2RlZmluZSBSX0NSRl9BUExMX0NUUkwgICAgICAgICAgIDB4MjAKKyNkZWZpbmUg Ul9DUkZfQUNQVV9DVFJMICAgICAgICAgICAweDYwCisjZGVmaW5lIFJfQ1JGX0RQX1ZJREVPX1JF Rl9DVFJMICAgMHg3MAorI2RlZmluZSBSX0NSRl9EUF9TVENfUkVGX0NUUkwgICAgIDB4N2MKKyNk ZWZpbmUgUl9DUkZfR1BVX1JFRl9DVFJMICAgICAgICAweDg0CisjZGVmaW5lIFJfQ1JGX1NBVEFf UkVGX0NUUkwgICAgICAgMHhhMAorI2RlZmluZSBSX0NSRl9QQ0lFX1JFRl9DVFJMICAgICAgIDB4 YjQKKyNkZWZpbmUgUl9DUkZfR0RNQV9SRUZfQ1RSTCAgICAgICAweGI4CisjZGVmaW5lIFJfQ1JG X0RQRE1BX1JFRl9DVFJMICAgICAgMHhiYworCisjZGVmaW5lIFJfQ1JMX0lPUExMX0NUUkwgICAg ICAgICAgMHgyMAorI2RlZmluZSBSX0NSTF9JT1BMTF9DRkcgICAgICAgICAgIDB4MjQKKyNkZWZp bmUgUl9DUkxfSU9QTExfRlJBQ19DRkcgICAgICAweDI4CisjZGVmaW5lIFJfQ1JMX1JQTExfQ1RS TCAgICAgICAgICAgMHgzMAorI2RlZmluZSBSX0NSTF9SUExMX0NGRyAgICAgICAgICAgIDB4MzQK KyNkZWZpbmUgUl9DUkxfUlBMTF9GUkFDX0NGRyAgICAgICAweDM4CisjZGVmaW5lIFJfQ1JMX1BM TF9TVEFUVVMgICAgICAgICAgMHg0MAorI2RlZmluZSBSX0NSTF9JT1BMTF9UT19GUERfQ1RSTCAg IDB4NDQKKyNkZWZpbmUgUl9DUkxfUlBMTF9UT19GUERfQ1RSTCAgICAweDQ4CisjZGVmaW5lIFJf Q1JMX1VTQjNfRFVBTF9SRUZfQ1RSTCAgMHg0YworI2RlZmluZSBSX0NSTF9HRU0wX1JFRl9DVFJM ICAgICAgIDB4NTAKKyNkZWZpbmUgUl9DUkxfR0VNMV9SRUZfQ1RSTCAgICAgICAweDU0CisjZGVm aW5lIFJfQ1JMX0dFTTJfUkVGX0NUUkwgICAgICAgMHg1OAorI2RlZmluZSBSX0NSTF9HRU0zX1JF Rl9DVFJMICAgICAgIDB4NWMKKyNkZWZpbmUgUl9DUkxfVVNCMF9CVVNfUkVGX0NUUkwgICAweDYw CisjZGVmaW5lIFJfQ1JMX1VTQjFfQlVTX1JFRl9DVFJMICAgMHg2NAorI2RlZmluZSBSX0NSTF9R U1BJX1JFRl9DVFJMICAgICAgIDB4NjgKKyNkZWZpbmUgUl9DUkxfU0RJTzBfUkVGX0NUUkwgICAg ICAweDZjCisjZGVmaW5lIFJfQ1JMX1NESU8xX1JFRl9DVFJMICAgICAgMHg3MAorI2RlZmluZSBS X0NSTF9VQVJUMF9SRUZfQ1RSTCAgICAgIDB4NzQKKyNkZWZpbmUgUl9DUkxfVUFSVDFfUkVGX0NU UkwgICAgICAweDc4CisjZGVmaW5lIFJfQ1JMX1NQSTBfUkVGX0NUUkwgICAgICAgMHg3YworI2Rl ZmluZSBSX0NSTF9TUEkxX1JFRl9DVFJMICAgICAgIDB4ODAKKyNkZWZpbmUgUl9DUkxfQ0FOMF9S RUZfQ1RSTCAgICAgICAweDg0CisjZGVmaW5lIFJfQ1JMX0NBTjFfUkVGX0NUUkwgICAgICAgMHg4 OAorI2RlZmluZSBSX0NSTF9DUFVfUjVfQ1RSTCAgICAgICAgIDB4OTAKKyNkZWZpbmUgUl9DUkxf SU9VX1NXSVRDSF9DVFJMICAgICAweDljCisjZGVmaW5lIFJfQ1JMX0NTVV9QTExfQ1RSTCAgICAg ICAgMHhhMAorI2RlZmluZSBSX0NSTF9QQ0FQX0NUUkwgICAgICAgICAgIDB4YTQKKyNkZWZpbmUg Ul9DUkxfTFBEX1NXSVRDSF9DVFJMICAgICAweGE4CisjZGVmaW5lIFJfQ1JMX0xQRF9MU0JVU19D VFJMICAgICAgMHhhYworI2RlZmluZSBSX0NSTF9EQkdfTFBEX0NUUkwgICAgICAgIDB4YjAKKyNk ZWZpbmUgUl9DUkxfTkFORF9SRUZfQ1RSTCAgICAgICAweGI0CisjZGVmaW5lIFJfQ1JMX0FETUFf UkVGX0NUUkwgICAgICAgMHhiOAorI2RlZmluZSBSX0NSTF9QTDBfUkVGX0NUUkwgICAgICAgIDB4 YzAKKyNkZWZpbmUgUl9DUkxfUEwxX1JFRl9DVFJMICAgICAgICAweGM0CisjZGVmaW5lIFJfQ1JM X1BMMl9SRUZfQ1RSTCAgICAgICAgMHhjOAorI2RlZmluZSBSX0NSTF9QTDNfUkVGX0NUUkwgICAg ICAgIDB4Y2MKKyNkZWZpbmUgUl9DUkxfUEwwX1RIUl9DVFJMICAgICAgICAweGQwCisjZGVmaW5l IFJfQ1JMX1BMMF9USFJfQ05UICAgICAgICAgMHhkNAorI2RlZmluZSBSX0NSTF9QTDFfVEhSX0NU UkwgICAgICAgIDB4ZDgKKyNkZWZpbmUgUl9DUkxfUEwxX1RIUl9DTlQgICAgICAgICAweGRjCisj ZGVmaW5lIFJfQ1JMX1BMMl9USFJfQ1RSTCAgICAgICAgMHhlMAorI2RlZmluZSBSX0NSTF9QTDJf VEhSX0NOVCAgICAgICAgIDB4ZTQKKyNkZWZpbmUgUl9DUkxfUEwzX1RIUl9DVFJMICAgICAgICAw eGU4CisjZGVmaW5lIFJfQ1JMX1BMM19USFJfQ05UICAgICAgICAgMHhmYworI2RlZmluZSBSX0NS TF9HRU1fVFNVX1JFRl9DVFJMICAgIDB4MTAwCisjZGVmaW5lIFJfQ1JMX0RMTF9SRUZfQ1RSTCAg ICAgICAgMHgxMDQKKyNkZWZpbmUgUl9DUkxfQU1TX1JFRl9DVFJMICAgICAgICAweDEwOAorI2Rl ZmluZSBSX0NSTF9JMkMwX1JFRl9DVFJMICAgICAgIDB4MTIwCisjZGVmaW5lIFJfQ1JMX0kyQzFf UkVGX0NUUkwgICAgICAgMHgxMjQKKyNkZWZpbmUgUl9DUkxfVElNRVNUQU1QX1JFRl9DVFJMICAw eDEyOAorCisjZGVmaW5lIFJfUE1VX0dMT0JBTF9HTE9CQUxfR0VOX1NUT1JBR0UwICAgIDB4MzAK KyNkZWZpbmUgUl9QTVVfR0xPQkFMX1BFUlNfR0xPQl9HRU5fU1RPUkFHRTcgMHg2YworCisjZGVm aW5lIFJfUE1VX0dMT0JBTF9QV1JfU1RBVEUgICAgICAgICAgICAgIDB4MTAwCisKKyNkZWZpbmUg Ul9DU1VfSURDT0RFICAgICAgICAgICAgICAgICAgICAgICAgMHg0MAorCisjZGVmaW5lIFJfSU9V X1NMQ1JfV0RUX0NMS19TRUwgICAgICAgICAgICAweDMwMAorI2RlZmluZSBSX0lPVV9TTENSX0NB Tl9NSU9fQ1RSTCAgICAgICAgICAgMHgzMDQKKyNkZWZpbmUgUl9JT1VfU0xDUl9HRU1fQ0xLX0NU UkwgICAgICAgICAgIDB4MzA4CisjZGVmaW5lIFJfSU9VX1NMQ1JfU0RJT19DTEtfQ1RSTCAgICAg ICAgICAweDMwYworI2RlZmluZSBSX0lPVV9TTENSX0NUUkxfUkVHX1NECSAgICAgICAgICAweDMx MAorI2RlZmluZSBSX0lPVV9TTENSX1NEX0lUQVBETFkJICAgICAgICAgIDB4MzE0CisjZGVmaW5l IFJfSU9VX1NMQ1JfU0RfT1RBUERMWVNFTCAgICAgICAgICAweDMxOAorI2RlZmluZSBSX0lPVV9T TENSX1NEX0NPTkZJR19SRUcxICAgICAgICAgMHgzMWMKKyNkZWZpbmUgUl9JT1VfU0xDUl9TRF9D T05GSUdfUkVHMiAgICAgICAgIDB4MzIwCisjZGVmaW5lIFJfSU9VX1NMQ1JfU0RfQ09ORklHX1JF RzMgICAgICAgICAweDMyNAorI2RlZmluZSBSX0lPVV9TTENSX1NEX0lOSVRQUkVTRVQgICAgICAg ICAgMHgzMjgKKyNkZWZpbmUgUl9JT1VfU0xDUl9TRF9EU1BQUkVTRVQJICAgICAgICAgIDB4MzJj CisjZGVmaW5lIFJfSU9VX1NMQ1JfU0RfSFNQRFBSRVNFVCAgICAgICAgICAweDMzMAorI2RlZmlu ZSBSX0lPVV9TTENSX1NEX1NEUjEyUFJFU0VUICAgICAgICAgMHgzMzQKKyNkZWZpbmUgUl9JT1Vf U0xDUl9TRF9TRFIyNVBSRVNFVCAgICAgICAgIDB4MzM4CisjZGVmaW5lIFJfSU9VX1NMQ1JfU0Rf U0RSNTBQUlNFVCAgICAgICAgICAweDMzYworI2RlZmluZSBSX0lPVV9TTENSX1NEX1NEUjEwNFBS U1QgICAgICAgICAgMHgzNDAKKyNkZWZpbmUgUl9JT1VfU0xDUl9TRF9ERFI1MFBSRVNFVCAgICAg ICAgIDB4MzQ0CisjZGVmaW5lIFJfSU9VX1NMQ1JfU0RfTUFYQ1VSMVA4ICAgICAgICAgICAweDM0 YworI2RlZmluZSBSX0lPVV9TTENSX1NEX01BWENVUjNQMCAgICAgICAgICAgMHgzNTAKKyNkZWZp bmUgUl9JT1VfU0xDUl9TRF9NQVhDVVIzUDMgICAgICAgICAgIDB4MzU0CisjZGVmaW5lIFJfSU9V X1NMQ1JfU0RfRExMX0NUUkwgICAgICAgICAgICAweDM1OAorI2RlZmluZSBSX0lPVV9TTENSX1NE X0NETl9DVFJMICAgICAgICAgICAgMHgzNWMKKyNkZWZpbmUgUl9JT1VfU0xDUl9HRU1fQ1RSTCAg ICAgICAgICAgICAgIDB4MzYwCisjZGVmaW5lIFJfSU9VX1NMQ1JfSU9VX1RUQ19BUEJfQ0xLICAg ICAgICAweDM4MAorI2RlZmluZSBSX0lPVV9TTENSX0lPVV9UQVBETFlfQllQQVNTICAgICAgMHgz OTAKKyNkZWZpbmUgUl9JT1VfU0xDUl9JT1VfQ09IRVJFTlRfQ1RSTCAgICAgIDB4NDAwCisjZGVm aW5lIFJfSU9VX1NMQ1JfVklERU9fUFNTX0NMS19TRUwgICAgICAweDQwNAorI2RlZmluZSBSX0lP VV9TTENSX0lPVV9JTlRFUkNPTk5FQ1RfUk9VVEUgMHg0MDgKKyNkZWZpbmUgUl9JT1VfU0xDUl9J T1VfUkFNX0dFTTAgICAgICAgICAgIDB4NTAwCisjZGVmaW5lIFJfSU9VX1NMQ1JfSU9VX1JBTV9H RU0xICAgICAgICAgICAweDUwNAorI2RlZmluZSBSX0lPVV9TTENSX0lPVV9SQU1fR0VNMiAgICAg ICAgICAgMHg1MDgKKyNkZWZpbmUgUl9JT1VfU0xDUl9JT1VfUkFNX0dFTTMgICAgICAgICAgIDB4 NTBjCisjZGVmaW5lIFJfSU9VX1NMQ1JfSU9VX1JBTV9TRDAgICAgICAgICAgICAweDUxMAorI2Rl ZmluZSBSX0lPVV9TTENSX0lPVV9SQU1fU0QxICAgICAgICAgICAgMHg1MTQKKyNkZWZpbmUgUl9J T1VfU0xDUl9JT1VfUkFNX0NBTjAgICAgICAgICAgIDB4NTE4CisjZGVmaW5lIFJfSU9VX1NMQ1Jf SU9VX1JBTV9DQU4xICAgICAgICAgICAweDUxYworI2RlZmluZSBSX0lPVV9TTENSX0lPVV9SQU1f TFFTUEkgICAgICAgICAgMHg1MjAKKyNkZWZpbmUgUl9JT1VfU0xDUl9JT1VfUkFNX05BTkQgICAg ICAgICAgIDB4NTI0Ci0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=