From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from smtp47.i.mail.ru ([94.100.177.107]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gXjl1-0000Jv-Ts for barebox@lists.infradead.org; Fri, 14 Dec 2018 09:27:48 +0000 From: Alexander Shiyan Date: Fri, 14 Dec 2018 12:27:16 +0300 Message-Id: <20181214092716.8150-2-shc_work@mail.ru> In-Reply-To: <20181214092716.8150-1-shc_work@mail.ru> References: <20181214092716.8150-1-shc_work@mail.ru> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "barebox" Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: [PATCH 2/2] ARM: CCMX51: Switch to multiimage support To: barebox@lists.infradead.org VGhpcyBpcyBhIGN1bXVsYXRpdmUgcGF0Y2ggZm9yIHRoZSBEaWdpIENvbm5lY3RDb3JlIENDTVg1 MSBTT00uCkl0IGluY2x1ZGVzOgotIFN3aXRjaCBib2FyZCB0byBkZXZpY2V0cmVlIHByb2JlLgot IEFkZCBNTUMgdXBkYXRlIGhhbmRsZXIuCi0gU3dpdGNoIHRvIG11bHRpaW1hZ2Ugc3VwcG9ydC4K LSBDbGVhbnVwIGFuZCBvcHRpbWl6ZSBib2FyZCBjb2RlLgoKU2lnbmVkLW9mZi1ieTogQWxleGFu ZGVyIFNoaXlhbiA8c2hjX3dvcmtAbWFpbC5ydT4KLS0tCiBhcmNoL2FybS9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBhcmNoL2FybS9ib2FyZHMvY2N4 bXg1MS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogYXJjaC9hcm0vYm9hcmRz L2NjeG14NTEvY2N4bXg1MS5jICAgICAgICAgICAgICAgICAgfCA2MjEgKysrKysrKy0tLS0tLS0t LS0tLS0tCiBhcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxLmggICAgICAgICAgICAgICAg ICB8ICAzNSAtLQogYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1MWpzLmMgICAgICAgICAg ICAgICAgfCAxMDMgLS0tLQogLi4uL2JvYXJkcy9jY3hteDUxL2RlZmF1bHRlbnYtY2N4bXg1MS9i b290L25hbmQgICAgfCAgIDQgKwogLi4uL3tlbnYgPT4gZGVmYXVsdGVudi1jY3hteDUxfS9pbml0 L210ZHBhcnRzLW5hbmQgfCAgIDAKIC4uLi9udi9hdXRvYm9vdF90aW1lb3V0ICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAwCiAuLi4ve2VudiA9PiBkZWZhdWx0ZW52LWNjeG14NTF9L252 L2Jvb3QuZGVmYXVsdCAgICB8ICAgMAogYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvZW52L2Jvb3Qv bmFuZCAgICAgICAgICAgICAgfCAgIDQgLQogYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvbG93bGV2 ZWwuYyAgICAgICAgICAgICAgICAgfCAgMTIgKy0KIGFyY2gvYXJtL2NvbmZpZ3MvY2NteDUxX2Rl ZmNvbmZpZyAgICAgICAgICAgICAgICAgIHwgIDYwIC0tCiBhcmNoL2FybS9jb25maWdzL2lteF92 N19kZWZjb25maWcgICAgICAgICAgICAgICAgICB8ICAgMiArLQogYXJjaC9hcm0vZHRzL01ha2Vm aWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogYXJjaC9hcm0vZHRzL2lt eDUxLWNjeG14NTEuZHRzICAgICAgICAgICAgICAgICAgICAgfCAgMjggKwogYXJjaC9hcm0vbWFj aC1pbXgvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzEgKy0KIGltYWdlcy9N YWtlZmlsZS5pbXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsKIDE3IGZp bGVzIGNoYW5nZWQsIDI3NyBpbnNlcnRpb25zKCspLCA2MzQgZGVsZXRpb25zKC0pCiBkZWxldGUg bW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1MS5oCiBkZWxldGUgbW9k ZSAxMDA2NDQgYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1MWpzLmMKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBhcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9kZWZhdWx0ZW52LWNjeG14NTEvYm9vdC9u YW5kCiByZW5hbWUgYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEve2VudiA9PiBkZWZhdWx0ZW52LWNj eG14NTF9L2luaXQvbXRkcGFydHMtbmFuZCAoMTAwJSkKIHJlbmFtZSBhcmNoL2FybS9ib2FyZHMv Y2N4bXg1MS97ZW52ID0+IGRlZmF1bHRlbnYtY2N4bXg1MX0vbnYvYXV0b2Jvb3RfdGltZW91dCAo MTAwJSkKIHJlbmFtZSBhcmNoL2FybS9ib2FyZHMvY2N4bXg1MS97ZW52ID0+IGRlZmF1bHRlbnYt Y2N4bXg1MX0vbnYvYm9vdC5kZWZhdWx0ICgxMDAlKQogZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gv YXJtL2JvYXJkcy9jY3hteDUxL2Vudi9ib290L25hbmQKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNo L2FybS9jb25maWdzL2NjbXg1MV9kZWZjb25maWcKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2Fy bS9kdHMvaW14NTEtY2N4bXg1MS5kdHMKCmRpZmYgLS1naXQgYS9hcmNoL2FybS9NYWtlZmlsZSBi L2FyY2gvYXJtL01ha2VmaWxlCmluZGV4IDVkYjY3YjlkYi4uMmQ1NWJjNjlhIDEwMDY0NAotLS0g YS9hcmNoL2FybS9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9NYWtlZmlsZQpAQCAtMjQ2LDcgKzI0 Niw2IEBAIGJhcmVib3guaW14aW1nOiAkKEtCVUlMRF9CSU5BUlkpIEZPUkNFCiAKIGJvYXJkZGly ID0gJChzcmN0cmVlKS9hcmNoL2FybS9ib2FyZHMKIGlteGNmZy0kKENPTkZJR19NQUNIX0ZSRUVT Q0FMRV9NWDUzX1NNRCkgKz0gJChib2FyZGRpcikvZnJlZXNjYWxlLW14NTMtc21kL2ZsYXNoLWhl YWRlci5pbXhjZmcKLWlteGNmZy0kKENPTkZJR19NQUNIX0NDTVg1MSkgKz0gJChib2FyZGRpcikv Y2N4bXg1MS9mbGFzaC1oZWFkZXIuaW14Y2ZnCiBpbXhjZmctJChDT05GSUdfTUFDSF9UWDUxKSAr PSAkKGJvYXJkZGlyKS9rYXJvLXR4NTEvZmxhc2gtaGVhZGVyLWthcm8tdHg1MS5pbXhjZmcKIGlt eGNmZy0kKENPTkZJR19NQUNIX0dVRl9WSU5DRUxMKSArPSAkKGJvYXJkZGlyKS9ndWYtdmluY2Vs bC9mbGFzaC1oZWFkZXIuaW14Y2ZnCiBpbXhjZmctJChDT05GSUdfTUFDSF9FVUtSRUFfQ1BVSU1Y NTFTRCkgKz0gJChib2FyZGRpcikvZXVrcmVhX2NwdWlteDUxL2ZsYXNoLWhlYWRlci5pbXhjZmcK ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL01ha2VmaWxlIGIvYXJjaC9hcm0v Ym9hcmRzL2NjeG14NTEvTWFrZWZpbGUKaW5kZXggNmJhOThiMTJkLi41MGNmOTI5YzUgMTAwNjQ0 Ci0tLSBhL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL2Jv YXJkcy9jY3hteDUxL01ha2VmaWxlCkBAIC0xLDMgKzEsMyBAQAogb2JqLXkJCQkJCSs9IGNjeG14 NTEubwotbHdsLXkJCQkJKz0gbG93bGV2ZWwubwotb2JqLSQoQ09ORklHX01BQ0hfQ0NNWDUxX0JB U0VCT0FSRCkJKz0gY2N4bXg1MWpzLm8KK2x3bC15CQkJCQkrPSBsb3dsZXZlbC5vCitiYmVudi0k KENPTkZJR19ERUZBVUxUX0VOVklST05NRU5UKQkrPSBkZWZhdWx0ZW52LWNjeG14NTEKZGlmZiAt LWdpdCBhL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2NjeG14NTEuYyBiL2FyY2gvYXJtL2JvYXJk cy9jY3hteDUxL2NjeG14NTEuYwppbmRleCA3MWE1MWUxOTIuLjMwOGVkZTJiZiAxMDA2NDQKLS0t IGEvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1MS5jCisrKyBiL2FyY2gvYXJtL2JvYXJk cy9jY3hteDUxL2NjeG14NTEuYwpAQCAtMiw0NzYgKzIsMjg1IEBACiAgKiAoQykgQ29weXJpZ2h0 IDIwMDktMjAxMCBEaWdpIEludGVybmF0aW9uYWwsIEluYy4KICAqIENvcHlyaWdodCAoQykgMjAw NyBTYXNjaGEgSGF1ZXIsIFBlbmd1dHJvbml4CiAgKiAoYykgMjAxMSBFdWtyZWEgRWxlY3Ryb21h dGlxdWUsIEVyaWMgQsOpbmFyZCA8ZXJpY0BldWtyZWEuY29tPgorICogTW9kaWZpZWQgZm9yIGJh cmVib3ggYnkgQWxleGFuZGVyIFNoaXlhbiA8c2hjX3dvcmtAbWFpbC5ydT4KICAqCiAgKiBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y CiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcwogICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDIgb2YKICAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAq IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgogICovCiAK ICNpbmNsdWRlIDxjb21tb24uaD4KLSNpbmNsdWRlIDxuZXQuaD4KKyNpbmNsdWRlIDxlbnZmcy5o PgogI2luY2x1ZGUgPGluaXQuaD4KLSNpbmNsdWRlIDxlbnZpcm9ubWVudC5oPgotI2luY2x1ZGUg PG1hY2gvaW14NTEtcmVncy5oPgotI2luY2x1ZGUgPHBsYXRmb3JtX2RhdGEvZXRoLWZlYy5oPgor I2luY2x1ZGUgPG5ldC5oPgorI2luY2x1ZGUgPG5vdGlmaWVyLmg+CiAjaW5jbHVkZSA8YXNtL2Fy bWxpbnV4Lmg+Ci0jaW5jbHVkZSA8Z2VuZXJhdGVkL21hY2gtdHlwZXMuaD4KLSNpbmNsdWRlIDxw YXJ0aXRpb24uaD4KLSNpbmNsdWRlIDxmcy5oPgotI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVk ZSA8bGludXgvc2l6ZXMuaD4KLSNpbmNsdWRlIDxuYW5kLmg+Ci0jaW5jbHVkZSA8bm90aWZpZXIu aD4KLSNpbmNsdWRlIDxzcGkvc3BpLmg+CiAjaW5jbHVkZSA8bWZkL21jMTN4eHguaD4KLSNpbmNs dWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxtYWNoL2lteC1uYW5kLmg+Ci0jaW5jbHVkZSA8bWFj aC9zcGkuaD4KLSNpbmNsdWRlIDxtYWNoL2dlbmVyaWMuaD4KLSNpbmNsdWRlIDxtYWNoL2lvbXV4 LW14NTEuaD4KLSNpbmNsdWRlIDxtYWNoL2RldmljZXMtaW14NTEuaD4KKyNpbmNsdWRlIDxtZmQv bWMxMzg5Mi5oPgorCisjaW5jbHVkZSA8bWFjaC9iYnUuaD4KKyNpbmNsdWRlIDxtYWNoL2VzZGN0 bC5oPgogI2luY2x1ZGUgPG1hY2gvaWltLmg+Ci0jaW5jbHVkZSA8bWFjaC9jbG9jay1pbXg1MV81 My5oPgogI2luY2x1ZGUgPG1hY2gvaW14NS5oPgorI2luY2x1ZGUgPG1hY2gvaW14NTEtcmVncy5o PgogI2luY2x1ZGUgPG1hY2gvcmV2aXNpb24uaD4KLSNpbmNsdWRlIDxtYWNoL2VzZGN0bC5oPgot Ci0jaW5jbHVkZSAiY2N4bXg1MS5oIgotCi1zdGF0aWMgc3RydWN0IGNjeG14NTFfaWRlbnQgY2N4 bXg1MV9pZHNbXSA9IHsKLS8qIDB4MDAgKi8JeyAiVW5rbm93biIsCQkJCQkJMCwgICAgICAgMCwg MCwgMCwgMCB9LAotLyogMHgwMSAqLwl7ICJOb3Qgc3VwcG9ydGVkIiwJCQkJCTAsICAgICAgIDAs IDAsIDAsIDAgfSwKLS8qIDB4MDIgKi8JeyAiaS5NWDUxNUA4MDBNSHosIFdpcmVsZXNzLCBQSFks IEV4dC4gRXRoLCBBY2NlbCIsCVNaXzUxMk0sIDAsIDEsIDEsIDEgfSwKLS8qIDB4MDMgKi8JeyAi aS5NWDUxNUA4MDBNSHosIFBIWSwgRXh0LiBFdGgsIEFjY2VsIiwJCVNaXzUxMk0sIDAsIDEsIDEs IDAgfSwKLS8qIDB4MDQgKi8JeyAiaS5NWDUxNUA2MDBNSHosIFdpcmVsZXNzLCBQSFksIEV4dC4g RXRoLCBBY2NlbCIsCVNaXzUxMk0sIDEsIDEsIDEsIDEgfSwKLS8qIDB4MDUgKi8JeyAiaS5NWDUx NUA2MDBNSHosIFBIWSwgRXh0LiBFdGgsIEFjY2VsIiwJCVNaXzUxMk0sIDEsIDEsIDEsIDAgfSwK LS8qIDB4MDYgKi8JeyAiaS5NWDUxNUA4MDBNSHosIFdpcmVsZXNzLCBQSFksIEFjY2VsIiwJCVNa XzUxMk0sIDAsIDEsIDAsIDEgfSwKLS8qIDB4MDcgKi8JeyAiaS5NWDUxNUA4MDBNSHosIFBIWSwg QWNjZWwiLAkJCQlTWl81MTJNLCAwLCAxLCAwLCAwIH0sCi0vKiAweDA4ICovCXsgImkuTVg1MTVA ODAwTUh6LCBXaXJlbGVzcywgUEhZLCBBY2NlbCIsCQlTWl8yNTZNLCAwLCAxLCAwLCAxIH0sCi0v KiAweDA5ICovCXsgImkuTVg1MTVAODAwTUh6LCBQSFksIEFjY2VsIiwJCQkJU1pfMjU2TSwgMCwg MSwgMCwgMCB9LAotLyogMHgwYSAqLwl7ICJpLk1YNTE1QDYwME1IeiwgV2lyZWxlc3MsIFBIWSwg QWNjZWwiLAkJU1pfMjU2TSwgMSwgMSwgMCwgMSB9LAotLyogMHgwYiAqLwl7ICJpLk1YNTE1QDYw ME1IeiwgUEhZLCBBY2NlbCIsCQkJCVNaXzI1Nk0sIDEsIDEsIDAsIDAgfSwKLS8qIDB4MGMgKi8J eyAiaS5NWDUxNUA4MDBNSHosIFdpcmVsZXNzLCBQSFksIEFjY2VsIiwJCVNaXzEyOE0sIDAsIDEs IDAsIDEgfSwKLS8qIDB4MGQgKi8JeyAiaS5NWDUxMkA4MDBNSHoiLAkJCQkJU1pfMTI4TSwgMCwg MCwgMCwgMCB9LAotLyogMHgwZSAqLwl7ICJpLk1YNTE1QDgwME1IeiwgV2lyZWxlc3MsIFBIWSwg QWNjZWwiLAkJU1pfNTEyTSwgMCwgMSwgMCwgMSB9LAotLyogMHgwZiAqLwl7ICJpLk1YNTE1QDYw ME1IeiwgUEhZLCBBY2NlbCIsCQkJCVNaXzEyOE0sIDEsIDEsIDAsIDAgfSwKLS8qIDB4MTAgKi8J eyAiaS5NWDUxNUA2MDBNSHosIFdpcmVsZXNzLCBQSFksIEFjY2VsIiwJCVNaXzEyOE0sIDEsIDEs IDAsIDEgfSwKLS8qIDB4MTEgKi8JeyAiaS5NWDUxNUA4MDBNSHosIFBIWSwgQWNjZWwiLAkJCQlT Wl8xMjhNLCAwLCAxLCAwLCAwIH0sCi0vKiAweDEyICovCXsgImkuTVg1MTVANjAwTUh6LCBXaXJl bGVzcywgUEhZLCBBY2NlbCIsCQlTWl81MTJNLCAxLCAxLCAwLCAxIH0sCi0vKiAweDEzICovCXsg ImkuTVg1MTVAODAwTUh6LCBQSFksIEFjY2VsIiwJCQkJU1pfNTEyTSwgMCwgMSwgMCwgMCB9LAot fTsKLQotc3RydWN0IGNjeG14NTFfaWRlbnQgKmNjeG14NTFfaWQ7Ci0KLXN0cnVjdCBpbXhfbmFu ZF9wbGF0Zm9ybV9kYXRhIG5hbmRfaW5mbyA9IHsKLQkud2lkdGgJCT0gMSwKLQkuaHdfZWNjCQk9 IDEsCi0JLmZsYXNoX2JidAk9IDEsCi19OwotCi1zdGF0aWMgc3RydWN0IGZlY19wbGF0Zm9ybV9k YXRhIGZlY19pbmZvID0gewotCS54Y3ZfdHlwZQk9IFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUksCi0J LnBoeV9hZGRyCT0gNywKLX07CiAKLXN0YXRpYyBpb211eF92M19jZmdfdCBjY3hteDUxX3BhZHNb XSA9IHsKLQkvKiBVQVJUMSAqLwotCU1YNTFfUEFEX1VBUlQxX1JYRF9fVUFSVDFfUlhELAotCU1Y NTFfUEFEX1VBUlQxX1RYRF9fVUFSVDFfVFhELAotCS8qIFVBUlQyICovCi0JTVg1MV9QQURfVUFS VDJfUlhEX19VQVJUMl9SWEQsCi0JTVg1MV9QQURfVUFSVDJfVFhEX19VQVJUMl9UWEQsCi0JLyog VUFSVDMgKi8KLQlNWDUxX1BBRF9VQVJUM19SWERfX1VBUlQzX1JYRCwKLQlNWDUxX1BBRF9VQVJU M19UWERfX1VBUlQzX1RYRCwKLQkvKiBJMkMyICovCi0JTVg1MV9QQURfR1BJTzFfMl9fSTJDMl9T Q0wsCi0JTVg1MV9QQURfR1BJTzFfM19fSTJDMl9TREEsCi0JLyogZUNTUEkxICovCi0JTVg1MV9Q QURfQ1NQSTFfTU9TSV9fRUNTUEkxX01PU0ksCi0JTVg1MV9QQURfQ1NQSTFfTUlTT19fRUNTUEkx X01JU08sCi0JTVg1MV9QQURfQ1NQSTFfU0NMS19fRUNTUEkxX1NDTEssCi0JTVg1MV9QQURfQ1NQ STFfUkRZX19FQ1NQSTFfUkRZLAotCU1YNTFfUEFEX0NTUEkxX1NTMF9fRUNTUEkxX1NTMCwKLQlN WDUxX1BBRF9DU1BJMV9TUzFfX0VDU1BJMV9TUzEsCi0JLyogRkVDICovCi0JTVg1MV9QQURfRElT UDJfREFUMTRfX0ZFQ19SREFUQTAsCi0JTVg1MV9QQURfREkyX0RJU1BfQ0xLX19GRUNfUkRBVEEx LAotCU1YNTFfUEFEX0RJX0dQNF9fRkVDX1JEQVRBMiwKLQlNWDUxX1BBRF9ESVNQMl9EQVQwX19G RUNfUkRBVEEzLAotCU1YNTFfUEFEX0RJU1AyX0RBVDE1X19GRUNfVERBVEEwLAotCU1YNTFfUEFE X0RJU1AyX0RBVDZfX0ZFQ19UREFUQTEsCi0JTVg1MV9QQURfRElTUDJfREFUN19fRkVDX1REQVRB MiwKLQlNWDUxX1BBRF9ESVNQMl9EQVQ4X19GRUNfVERBVEEzLAotCU1YNTFfUEFEX0RJU1AyX0RB VDlfX0ZFQ19UWF9FTiwKLQlNWDUxX1BBRF9ESVNQMl9EQVQxMF9fRkVDX0NPTCwKLQlNWDUxX1BB RF9ESVNQMl9EQVQxMV9fRkVDX1JYX0NMSywKLQlNWDUxX1BBRF9ESVNQMl9EQVQxMl9fRkVDX1JY X0RWLAotCU1YNTFfUEFEX0RJU1AyX0RBVDEzX19GRUNfVFhfQ0xLLAotCU1YNTFfUEFEX0RJMl9Q SU4yX19GRUNfTURDLAotCU1YNTFfUEFEX0RJMl9QSU40X19GRUNfQ1JTLAotCU1YNTFfUEFEX0RJ Ml9QSU4zX19GRUNfTURJTywKLQlNWDUxX1BBRF9ESV9HUDNfX0ZFQ19UWF9FUiwKLQlNWDUxX1BB RF9ESVNQMl9EQVQxX19GRUNfUlhfRVIsCi0JLyogV0VJTSAqLwotCU1YNTFfUEFEX0VJTV9EQTBf X0VJTV9EQTAsCi0JTVg1MV9QQURfRUlNX0RBMV9fRUlNX0RBMSwKLQlNWDUxX1BBRF9FSU1fREEy X19FSU1fREEyLAotCU1YNTFfUEFEX0VJTV9EQTNfX0VJTV9EQTMsCi0JTVg1MV9QQURfRUlNX0RB NF9fRUlNX0RBNCwKLQlNWDUxX1BBRF9FSU1fREE1X19FSU1fREE1LAotCU1YNTFfUEFEX0VJTV9E QTZfX0VJTV9EQTYsCi0JTVg1MV9QQURfRUlNX0RBN19fRUlNX0RBNywKLQlNWDUxX1BBRF9FSU1f RDE2X19FSU1fRDE2LAotCU1YNTFfUEFEX0VJTV9EMTdfX0VJTV9EMTcsCi0JTVg1MV9QQURfRUlN X0QxOF9fRUlNX0QxOCwKLQlNWDUxX1BBRF9FSU1fRDE5X19FSU1fRDE5LAotCU1YNTFfUEFEX0VJ TV9EMjBfX0VJTV9EMjAsCi0JTVg1MV9QQURfRUlNX0QyMV9fRUlNX0QyMSwKLQlNWDUxX1BBRF9F SU1fRDIyX19FSU1fRDIyLAotCU1YNTFfUEFEX0VJTV9EMjNfX0VJTV9EMjMsCi0JTVg1MV9QQURf RUlNX0QyNF9fRUlNX0QyNCwKLQlNWDUxX1BBRF9FSU1fRDI1X19FSU1fRDI1LAotCU1YNTFfUEFE X0VJTV9EMjZfX0VJTV9EMjYsCi0JTVg1MV9QQURfRUlNX0QyN19fRUlNX0QyNywKLQlNWDUxX1BB RF9FSU1fRDI4X19FSU1fRDI4LAotCU1YNTFfUEFEX0VJTV9EMjlfX0VJTV9EMjksCi0JTVg1MV9Q QURfRUlNX0QzMF9fRUlNX0QzMCwKLQlNWDUxX1BBRF9FSU1fRDMxX19FSU1fRDMxLAotCU1YNTFf UEFEX0VJTV9PRV9fRUlNX09FLAotCU1YNTFfUEFEX0VJTV9DUzVfX0VJTV9DUzUsCi0JLyogTkFO RCAqLwotCU1YNTFfUEFEX05BTkRGX0QwX19OQU5ERl9EMCwKLQlNWDUxX1BBRF9OQU5ERl9EMV9f TkFOREZfRDEsCi0JTVg1MV9QQURfTkFOREZfRDJfX05BTkRGX0QyLAotCU1YNTFfUEFEX05BTkRG X0QzX19OQU5ERl9EMywKLQlNWDUxX1BBRF9OQU5ERl9ENF9fTkFOREZfRDQsCi0JTVg1MV9QQURf TkFOREZfRDVfX05BTkRGX0Q1LAotCU1YNTFfUEFEX05BTkRGX0Q2X19OQU5ERl9ENiwKLQlNWDUx X1BBRF9OQU5ERl9EN19fTkFOREZfRDcsCi0JTVg1MV9QQURfTkFOREZfQUxFX19OQU5ERl9BTEUs Ci0JTVg1MV9QQURfTkFOREZfQ0xFX19OQU5ERl9DTEUsCi0JTVg1MV9QQURfTkFOREZfUkVfQl9f TkFOREZfUkVfQiwKLQlNWDUxX1BBRF9OQU5ERl9XRV9CX19OQU5ERl9XRV9CLAotCU1YNTFfUEFE X05BTkRGX1dQX0JfX05BTkRGX1dQX0IsCi0JTVg1MV9QQURfTkFOREZfQ1MwX19OQU5ERl9DUzAs Ci0JTVg1MV9QQURfTkFOREZfUkIwX19OQU5ERl9SQjAsCi0JLyogTEFOOTIyMSBJUlEgKEdQSU8x LjkpICovCi0JTVg1MV9QQURfR1BJTzFfOV9fR1BJTzFfOSwKLQkvKiBNQzEzODkyIElSUSAoR1BJ TzEuNSkgKi8KLQlNWDUxX1BBRF9HUElPMV81X19HUElPMV81LAotCS8qIE1NQTc0NTVMUiBJUlEx IChHUElPMS43KSAqLwotCU1YNTFfUEFEX0dQSU8xXzdfX0dQSU8xXzcsCi0JLyogTU1BNzQ1NUxS IElSUTIgKEdQSU8xLjYpICovCi0JTVg1MV9QQURfR1BJTzFfNl9fR1BJTzFfNiwKLQkvKiBVc2Vy IEdQSU9zICovCi0JTVg1MV9QQURfR1BJTzFfMF9fR1BJTzFfMCwKLQlNWDUxX1BBRF9HUElPMV8x X19HUElPMV8xLAotCU1YNTFfUEFEX0dQSU8xXzhfX0dQSU8xXzgsCi0JTVg1MV9QQURfREkxX1BJ TjExX19HUElPM18wLAotCU1YNTFfUEFEX0RJMV9QSU4xMl9fR1BJTzNfMSwKLQlNWDUxX1BBRF9E STFfUElOMTNfX0dQSU8zXzIsCi0JTVg1MV9QQURfREkxX0QwX0NTX19HUElPM18zLAotCU1YNTFf UEFEX0RJMV9EMV9DU19fR1BJTzNfNCwKLQlNWDUxX1BBRF9ESVNQQjJfU0VSX0RJTl9fR1BJTzNf NSwKLQlNWDUxX1BBRF9ESVNQQjJfU0VSX0RJT19fR1BJTzNfNiwKLQlNWDUxX1BBRF9ESVNQQjJf U0VSX0NMS19fR1BJTzNfNywKLQlNWDUxX1BBRF9ESVNQQjJfU0VSX1JTX19HUElPM184LAotCU1Y NTFfUEFEX05BTkRGX1JCMV9fR1BJTzNfOSwKLQlNWDUxX1BBRF9OQU5ERl9SQjJfX0dQSU8zXzEw LAotCU1YNTFfUEFEX05BTkRGX1JCM19fR1BJTzNfMTEsCi0JTVg1MV9QQURfQ1NJMV9EOF9fR1BJ TzNfMTIsCi0JTVg1MV9QQURfQ1NJMV9EOV9fR1BJTzNfMTMsCi0JTVg1MV9QQURfTkFOREZfQ1Mx X19HUElPM18xNywKLQlNWDUxX1BBRF9OQU5ERl9DUzJfX0dQSU8zXzE4LAotCU1YNTFfUEFEX05B TkRGX0NTM19fR1BJTzNfMTksCi0JTVg1MV9QQURfTkFOREZfQ1M0X19HUElPM18yMCwKLQlNWDUx X1BBRF9OQU5ERl9DUzVfX0dQSU8zXzIxLAotCU1YNTFfUEFEX05BTkRGX0NTNl9fR1BJTzNfMjIs CitzdGF0aWMgY29uc3Qgc3RydWN0IGNjeG14X2lkZW50IHsKKwljaGFyCQkqaWRfc3RyaW5nOwor CXVuc2lnbmVkIGludAltZW1fc3o7CisJdW5zaWduZWQgaW50CWNwdV9taHo7CisJdW5zaWduZWQg Y2hhcglldGgwOjE7CisJdW5zaWduZWQgY2hhcglldGgxOjE7CisJdW5zaWduZWQgY2hhcgl3bGVz czoxOworCXVuc2lnbmVkIGNoYXIJYWNjZWw6MTsKK30gKmNjeG14X2lkLCBjY3hteDUxX2lkc1td ID0geworCVsweDAwXSA9IHsgTlVMTCAvKiBVbmtub3duICovLAkJCQkJMCwgICAgICAgMCwgICAw LCAwLCAwLCAwIH0sCisJWzB4MDFdID0geyBOVUxMIC8qIE5vdCBzdXBwb3J0ZWQgKi8sCQkJCTAs ICAgICAgIDAsICAgMCwgMCwgMCwgMCB9LAorCVsweDAyXSA9IHsgImkuTVg1MTVAODAwTUh6LCBX aXJlbGVzcywgUEhZLCBFeHQuIEV0aCwgQWNjZWwiLAlTWl81MTJNLCA4MDAsIDEsIDEsIDEsIDEg fSwKKwlbMHgwM10gPSB7ICJpLk1YNTE1QDgwME1IeiwgUEhZLCBFeHQuIEV0aCwgQWNjZWwiLAkJ U1pfNTEyTSwgODAwLCAxLCAxLCAwLCAxIH0sCisJWzB4MDRdID0geyAiaS5NWDUxNUA2MDBNSHos IFdpcmVsZXNzLCBQSFksIEV4dC4gRXRoLCBBY2NlbCIsCVNaXzUxMk0sIDYwMCwgMSwgMSwgMSwg MSB9LAorCVsweDA1XSA9IHsgImkuTVg1MTVANjAwTUh6LCBQSFksIEV4dC4gRXRoLCBBY2NlbCIs CQlTWl81MTJNLCA2MDAsIDEsIDEsIDAsIDEgfSwKKwlbMHgwNl0gPSB7ICJpLk1YNTE1QDgwME1I eiwgV2lyZWxlc3MsIFBIWSwgQWNjZWwiLAkJU1pfNTEyTSwgODAwLCAxLCAwLCAxLCAxIH0sCisJ WzB4MDddID0geyAiaS5NWDUxNUA4MDBNSHosIFBIWSwgQWNjZWwiLAkJCVNaXzUxMk0sIDgwMCwg MSwgMCwgMCwgMSB9LAorCVsweDA4XSA9IHsgImkuTVg1MTVAODAwTUh6LCBXaXJlbGVzcywgUEhZ LCBBY2NlbCIsCQlTWl8yNTZNLCA4MDAsIDEsIDAsIDEsIDEgfSwKKwlbMHgwOV0gPSB7ICJpLk1Y NTE1QDgwME1IeiwgUEhZLCBBY2NlbCIsCQkJU1pfMjU2TSwgODAwLCAxLCAwLCAwLCAxIH0sCisJ WzB4MGFdID0geyAiaS5NWDUxNUA2MDBNSHosIFdpcmVsZXNzLCBQSFksIEFjY2VsIiwJCVNaXzI1 Nk0sIDYwMCwgMSwgMCwgMSwgMSB9LAorCVsweDBiXSA9IHsgImkuTVg1MTVANjAwTUh6LCBQSFks IEFjY2VsIiwJCQlTWl8yNTZNLCA2MDAsIDEsIDAsIDAsIDEgfSwKKwlbMHgwY10gPSB7ICJpLk1Y NTE1QDgwME1IeiwgV2lyZWxlc3MsIFBIWSwgQWNjZWwiLAkJU1pfMTI4TSwgODAwLCAxLCAwLCAx LCAxIH0sCisJWzB4MGRdID0geyAiaS5NWDUxMkA4MDBNSHoiLAkJCQkJU1pfMTI4TSwgODAwLCAw LCAwLCAwLCAwIH0sCisJWzB4MGVdID0geyAiaS5NWDUxNUA4MDBNSHosIFdpcmVsZXNzLCBQSFks IEFjY2VsIiwJCVNaXzUxMk0sIDgwMCwgMSwgMCwgMSwgMSB9LAorCVsweDBmXSA9IHsgImkuTVg1 MTVANjAwTUh6LCBQSFksIEFjY2VsIiwJCQlTWl8xMjhNLCA2MDAsIDEsIDAsIDAsIDEgfSwKKwlb MHgxMF0gPSB7ICJpLk1YNTE1QDYwME1IeiwgV2lyZWxlc3MsIFBIWSwgQWNjZWwiLAkJU1pfMTI4 TSwgNjAwLCAxLCAwLCAxLCAxIH0sCisJWzB4MTFdID0geyAiaS5NWDUxNUA4MDBNSHosIFBIWSwg QWNjZWwiLAkJCVNaXzEyOE0sIDgwMCwgMSwgMCwgMCwgMSB9LAorCVsweDEyXSA9IHsgImkuTVg1 MTVANjAwTUh6LCBXaXJlbGVzcywgUEhZLCBBY2NlbCIsCQlTWl81MTJNLCA2MDAsIDEsIDAsIDEs IDEgfSwKKwlbMHgxM10gPSB7ICJpLk1YNTE1QDgwME1IeiwgUEhZLCBBY2NlbCIsCQkJU1pfNTEy TSwgODAwLCAxLCAwLCAwLCAxIH0sCiB9OwogCi0jZGVmaW5lIENDWE1YNTFfRUNTUEkxX0NTMAlJ TVhfR1BJT19OUig0LCAyNCkKLSNkZWZpbmUgQ0NYTVg1MV9FQ1NQSTFfQ1MxCUlNWF9HUElPX05S KDQsIDI1KQotCi1zdGF0aWMgaW50IGVjc3BpXzBfY3NbXSA9IHsgQ0NYTVg1MV9FQ1NQSTFfQ1Mw LCBDQ1hNWDUxX0VDU1BJMV9DUzEsIH07CitzdGF0aWMgdTMyIGJvYXJkc2VyaWFsOwogCi1zdGF0 aWMgc3RydWN0IHNwaV9pbXhfbWFzdGVyIGVjc3BpXzBfZGF0YSA9IHsKLQkuY2hpcHNlbGVjdAk9 IGVjc3BpXzBfY3MsCi0JLm51bV9jaGlwc2VsZWN0CT0gQVJSQVlfU0laRShlY3NwaV8wX2NzKSwK LX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX2JvYXJkX2luZm8gY2N4bXg1MV9zcGlfYm9h cmRfaW5mb1tdID0gewotCXsKLQkJLm5hbWUJCT0gIm1jMTM4OTIiLAotCQkuYnVzX251bQk9IDAs Ci0JCS5jaGlwX3NlbGVjdAk9IDAsCi0JfSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgaW14dXNiX3Bs YXRmb3JtZGF0YSBjY3hteDUxX290Z19wZGF0YSA9IHsKLQkuZmxhZ3MJPSBNWENfRUhDSV9NT0RF X1VUTUlfMTZfQklUIHwgTVhDX0VIQ0lfUE9XRVJfUElOU19FTkFCTEVELAotCS5tb2RlCT0gSU1Y X1VTQl9NT0RFX0hPU1QsCi19OwotCi1zdGF0aWMgaW50IGNjeG14NTFfcG93ZXJfaW5pdCh2b2lk KQorc3RhdGljIHZvaWQgY2N4bXg1MV9wb3dlcl9pbml0KHN0cnVjdCBtYzEzeHh4ICptYzEzeHh4 KQogewotCXN0cnVjdCBtYzEzeHh4ICptYzEzeHh4X2RldjsKIAl1MzIgdmFsOwogCi0JbWMxM3h4 eF9kZXYgPSBtYzEzeHh4X2dldCgpOwotCWlmICghbWMxM3h4eF9kZXYpCi0JCXJldHVybiAtRU5P REVWOwotCi0JbWMxM3h4eF9yZWdfcmVhZChtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfUE9XRVJf TUlTQywgJnZhbCk7Ci0JLyogUmVzZXQgZGV2aWNlcyBieSBjbGVhcmluZyBHUDAxLUdQTzQgKi8K LQl2YWwgJj0gfigoMSA8PCAyMSkgfCAoMyA8PCAxMikgfCAoMyA8PCAxMCkgfCAoMyA8PCA4KSB8 ICgzIDw8IDYpKTsKLQkvKiBTd2l0Y2hpbmcgb2ZmIHRoZSBQV0dUMVNQSUVOICovCi0JdmFsIHw9 ICgxIDw8IDE1KTsKLQkvKiBTd2l0Y2hpbmcgb24gdGhlIFBXR1QyU1BJRU4gKi8KLQl2YWwgJj0g figxIDw8IDE2KTsKLQkvKiBFbmFibGUgc2hvcnQgY2lyY3VpdCBwcm90ZWN0aW9uICovCi0JdmFs IHw9ICgxIDw8IDApOwotCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JF R19QT1dFUl9NSVNDLCB2YWwpOwotCi0JLyogQWxsb3cgY2hhcmdlciB0byBjaGFyZ2UgKDQuMlYg YW5kIDU2MG1BKSAqLwotCXZhbCA9IDB4MjM4MDMzOwotCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4 eHhfZGV2LCBNQzEzODkyX1JFR19DSEFSR0UsIHZhbCk7Ci0KLQlpZiAoaW14X3NpbGljb25fcmV2 aXNpb24oKSA8IElNWF9DSElQX1JFVl8zXzApIHsKLQkJLyogU2V0IGNvcmUgdm9sdGFnZSAoU1cx KSB0byAxLjFWICovCi0JCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVH X1NXXzAsICZ2YWwpOwotCQl2YWwgJj0gfjB4MDAwMDFmOwotCQl2YWwgfD0gIDB4MDAwMDE0Owot CQltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfU1dfMCwgdmFsKTsK LQotCQkvKiBTZXR1cCBWQ0MgKFNXMikgdG8gMS4yNSAqLwotCQltYzEzeHh4X3JlZ19yZWFkKG1j MTN4eHhfZGV2LCBNQzEzODkyX1JFR19TV18xLCAmdmFsKTsKLQkJdmFsICY9IH4weDAwMDAxZjsK LQkJdmFsIHw9ICAweDAwMDAxYTsKLQkJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eF9kZXYsIE1D MTM4OTJfUkVHX1NXXzEsIHZhbCk7Ci0KLQkJLyogU2V0dXAgMVYyX0RJRzEgKFNXMykgdG8gMS4y NSAqLwotCQltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19TV18yLCAm dmFsKTsKLQkJdmFsICY9IH4weDAwMDAxZjsKLQkJdmFsIHw9ICAweDAwMDAxYTsKLQkJbWMxM3h4 eF9yZWdfd3JpdGUobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1NXXzIsIHZhbCk7Ci0JfSBlbHNl IHsKLQkJLyogU2V0dXAgVkNDIChTVzIpIHRvIDEuMjI1ICovCi0JCW1jMTN4eHhfcmVnX3JlYWQo bWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1NXXzEsICZ2YWwpOwotCQl2YWwgJj0gfjB4MDAwMDFm OwotCQl2YWwgfD0gIDB4MDAwMDE5OwotCQltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2Rldiwg TUMxMzg5Ml9SRUdfU1dfMSwgdmFsKTsKLQotCQkvKiBTZXR1cCAxVjJfRElHMSAoU1czKSB0byAx LjIgKi8KLQkJbWMxM3h4eF9yZWdfcmVhZChtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfU1dfMiwg JnZhbCk7Ci0JCXZhbCAmPSB+MHgwMDAwMWY7Ci0JCXZhbCB8PSAgMHgwMDAwMTg7Ci0JCW1jMTN4 eHhfcmVnX3dyaXRlKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19TV18yLCB2YWwpOwotCX0KLQot CWlmIChtYzEzeHh4X3JldmlzaW9uKG1jMTN4eHhfZGV2KSA8PSBNQzEzODkyX1JFVklTSU9OXzJf MCkgewotCQkvKiBTZXQgc3dpdGNoZXJzIGluIFBXTSBtb2RlIGZvciBBdGxhcyAyLjAgYW5kIGxv d2VyICovCi0JCS8qIFNldHVwIHRoZSBzd2l0Y2hlciBtb2RlIGZvciBTVzEgJiBTVzIqLwotCQlt YzEzeHh4X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19TV180LCAmdmFsKTsKLQkJ dmFsICY9IH4weDAwM2MwZjsKLQkJdmFsIHw9ICAweDAwMTQwNTsKLQkJbWMxM3h4eF9yZWdfd3Jp dGUobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1NXXzQsIHZhbCk7Ci0KLQkJLyogU2V0dXAgdGhl IHN3aXRjaGVyIG1vZGUgZm9yIFNXMyAmIFNXNCAqLwotCQltYzEzeHh4X3JlZ19yZWFkKG1jMTN4 eHhfZGV2LCBNQzEzODkyX1JFR19TV181LCAmdmFsKTsKLQkJdmFsICY9IH4weDAwMGYwZjsKLQkJ dmFsIHw9ICAweDAwMDUwNTsKLQkJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eF9kZXYsIE1DMTM4 OTJfUkVHX1NXXzUsIHZhbCk7Ci0JfSBlbHNlIHsKLQkJLyogU2V0IHN3aXRjaGVycyBpbiBBdXRv IGluIE5PUk1BTCBtb2RlICYgU1RBTkRCWSBtb2RlIGZvciBBdGxhcyAyLjBhICovCi0JCS8qIFNl dHVwIHRoZSBzd2l0Y2hlciBtb2RlIGZvciBTVzEgJiBTVzIqLwotCQltYzEzeHh4X3JlZ19yZWFk KG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19TV180LCAmdmFsKTsKLQkJdmFsICY9IH4weDAwM2Mw ZjsKLQkJdmFsIHw9ICAweDAwMjAwODsKLQkJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eF9kZXYs IE1DMTM4OTJfUkVHX1NXXzQsIHZhbCk7Ci0KLQkJLyogU2V0dXAgdGhlIHN3aXRjaGVyIG1vZGUg Zm9yIFNXMyAmIFNXNCAqLwotCQltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCBNQzEzODky X1JFR19TV181LCAmdmFsKTsKLQkJdmFsICY9IH4weDAwMGYwZjsKLQkJdmFsIHw9ICAweDAwMDgw ODsKLQkJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1NXXzUsIHZh bCk7Ci0JfQotCi0JLyogU2V0IFZWSURFTyB0byAyLjc3NVYsIFZBVURJTyB0byAzViwgVlNEIHRv IDMuMTVWICovCi0JbWMxM3h4eF9yZWdfcmVhZChtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfU0VU VElOR18xLCAmdmFsKTsKLQl2YWwgJj0gfjB4MDAwMWZjOwotCXZhbCB8PSAgMHgwMDAxZjQ7Ci0J bWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1NFVFRJTkdfMSwgdmFs KTsKKwkvKiBDbGVhciBHUDAxLUdQTzQsIGVuYWJsZSBzaG9ydCBjaXJjdWl0IHByb3RlY3Rpb24s ICBQV0dUMVNQSUVOIG9mZiAqLworCXZhbCA9IE1DMTM4OTJfUE9XRVJfTUlTQ19SRUdTQ1BFTiB8 IE1DMTM4OTJfUE9XRVJfTUlTQ19QV0dUMVNQSUVOOworCXZhbCB8PSBNQzEzODkyX1BPV0VSX01J U0NfR1BPNEFESU47CisJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eCwgTUMxMzg5Ml9SRUdfUE9X RVJfTUlTQywgdmFsKTsKKworCS8qIFNldCBJQ0hSRyBpbiBleHRlcm5hbGx5IHBvd2VyZWQgbW9k ZSwgNC4yViwgRGlzYWJsZSB0aGVybWlzdG9yICovCisJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4 eCwgTUMxMzg5Ml9SRUdfQ0hBUkdFLCAweGEzODI3Yik7CisKKwkvKiBTZXQgY29yZSB2b2x0YWdl IChTVzEpIHRvIDEuMVYgTk9STUFMLCAxLjA1ViBTVEFOREJZICovCisJbWMxM3h4eF9yZWdfcmVh ZChtYzEzeHh4LCBNQzEzODkyX1JFR19TV18wLCAmdmFsKTsKKwl2YWwgJj0gfihNQzEzODkyX1NX eF9TV3hfVk9MVF9NQVNLIDw8IE1DMTM4OTJfU1dNT0RFMV9TSElGVCk7CisJdmFsIHw9IE1DMTM4 OTJfU1d4X1NXeF8xXzEwMFYgPDwgTUMxMzg5Ml9TV01PREUxX1NISUZUOworCXZhbCAmPSB+KE1D MTM4OTJfU1d4X1NXeF9WT0xUX01BU0sgPDwgTUMxMzg5Ml9TV01PREUyX1NISUZUKTsKKwl2YWwg fD0gTUMxMzg5Ml9TV3hfU1d4XzFfMDUwViA8PCBNQzEzODkyX1NXTU9ERTJfU0hJRlQ7CisJbWMx M3h4eF9yZWdfd3JpdGUobWMxM3h4eCwgTUMxMzg5Ml9SRUdfU1dfMCwgdmFsKTsKKworCS8qIFNl dHVwIFZDQyAoU1cyKSB0byAxLjIyNSBOT1JNQUwsIDEuMTc1ViBTVEFOREJZICovCisJbWMxM3h4 eF9yZWdfcmVhZChtYzEzeHh4LCBNQzEzODkyX1JFR19TV18xLCAmdmFsKTsKKwl2YWwgJj0gfihN QzEzODkyX1NXeF9TV3hfVk9MVF9NQVNLIDw8IE1DMTM4OTJfU1dNT0RFMV9TSElGVCk7CisJdmFs IHw9IE1DMTM4OTJfU1d4X1NXeF8xXzIyNVYgPDwgTUMxMzg5Ml9TV01PREUxX1NISUZUOworCXZh bCAmPSB+KE1DMTM4OTJfU1d4X1NXeF9WT0xUX01BU0sgPDwgTUMxMzg5Ml9TV01PREUyX1NISUZU KTsKKwl2YWwgfD0gTUMxMzg5Ml9TV3hfU1d4XzFfMTc1ViA8PCBNQzEzODkyX1NXTU9ERTJfU0hJ RlQ7CisJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eCwgTUMxMzg5Ml9SRUdfU1dfMSwgdmFsKTsK KworCS8qIFNldHVwIDFWMl9ESUcxIChTVzMpIHRvIDEuMiBOT1JNQUwsIDEuMTVWIFNUQU5EQlkg Ki8KKwltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHgsIE1DMTM4OTJfUkVHX1NXXzIsICZ2YWwpOwor CXZhbCAmPSB+KE1DMTM4OTJfU1d4X1NXeF9WT0xUX01BU0sgPDwgTUMxMzg5Ml9TV01PREUxX1NI SUZUKTsKKwl2YWwgfD0gTUMxMzg5Ml9TV3hfU1d4XzFfMjAwViA8PCBNQzEzODkyX1NXTU9ERTFf U0hJRlQ7CisJdmFsICY9IH4oTUMxMzg5Ml9TV3hfU1d4X1ZPTFRfTUFTSyA8PCBNQzEzODkyX1NX TU9ERTJfU0hJRlQpOworCXZhbCB8PSBNQzEzODkyX1NXeF9TV3hfMV8xNTBWIDw8IE1DMTM4OTJf U1dNT0RFMl9TSElGVDsKKwltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4LCBNQzEzODkyX1JFR19T V18yLCB2YWwpOworCisJLyogU2V0IFNXMS1TVzQgc3dpdGNoZXIgaW4gQXV0byBpbiBOT1JNQUwg JiBTVEFOREJZIG1vZGUgKi8KKwltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHgsIE1DMTM4OTJfUkVH X1NXXzQsICZ2YWwpOworCXZhbCAmPSB+KE1DMTM4OTJfU1dNT0RFX01BU0sgPDwgTUMxMzg5Ml9T V01PREUxX1NISUZUKTsKKwl2YWwgfD0gTUMxMzg5Ml9TV01PREVfQVVUT19BVVRPIDw8IE1DMTM4 OTJfU1dNT0RFMV9TSElGVDsKKwl2YWwgJj0gfihNQzEzODkyX1NXTU9ERV9NQVNLIDw8IE1DMTM4 OTJfU1dNT0RFMl9TSElGVCk7CisJdmFsIHw9IE1DMTM4OTJfU1dNT0RFX0FVVE9fQVVUTyA8PCBN QzEzODkyX1NXTU9ERTJfU0hJRlQ7CisJLyogRGlzYWJsZSBjdXJyZW50IGxpbWl0ICovCisJdmFs IHw9IDEgPDwgMjI7CisJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eCwgTUMxMzg5Ml9SRUdfU1df NCwgdmFsKTsKKworCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eCwgTUMxMzg5Ml9SRUdfU1dfNSwg JnZhbCk7CisJdmFsICY9IH4oTUMxMzg5Ml9TV01PREVfTUFTSyA8PCBNQzEzODkyX1NXTU9ERTNf U0hJRlQpOworCXZhbCB8PSBNQzEzODkyX1NXTU9ERV9BVVRPX0FVVE8gPDwgTUMxMzg5Ml9TV01P REUzX1NISUZUOworCXZhbCAmPSB+KE1DMTM4OTJfU1dNT0RFX01BU0sgPDwgTUMxMzg5Ml9TV01P REU0X1NISUZUKTsKKwl2YWwgfD0gTUMxMzg5Ml9TV01PREVfQVVUT19BVVRPIDw8IE1DMTM4OTJf U1dNT0RFNF9TSElGVDsKKwkvKiBFbmFibGUgU1dCU1QgKi8KKwl2YWwgfD0gMSA8PCAyMDsKKwlt YzEzeHh4X3JlZ193cml0ZShtYzEzeHh4LCBNQzEzODkyX1JFR19TV181LCB2YWwpOworCisJLyog U2V0IFZWSURFTz0yLjc3NVYsIFZBVURJTz0zViwgVlNEPTMuMTVWICovCisJdmFsID0gTUMxMzg5 Ml9TRVRUSU5HXzFfVlZJREVPXzJfNzc1IHwgTUMxMzg5Ml9TRVRUSU5HXzFfVkFVRElPXzNfMDsK Kwl2YWwgfD0gTUMxMzg5Ml9TRVRUSU5HXzFfVlNEXzNfMTU7CisJbWMxM3h4eF9yZWdfd3JpdGUo bWMxM3h4eCwgTUMxMzg5Ml9SRUdfU0VUVElOR18xLCB2YWwpOwogCiAJLyogQ29uZmlndXJlIFZH RU4zIGFuZCBWQ0FNIHJlZ3VsYXRvcnMgdG8gdXNlIGV4dGVybmFsIFBOUCAqLwotCXZhbCA9IDB4 MDAwMjA4OwotCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19NT0RF XzEsIHZhbCk7CisJdmFsID0gTUMxMzg5Ml9NT0RFXzFfVkdFTjNDT05GSUcgfCBNQzEzODkyX01P REVfMV9WQ0FNQ09ORklHOworCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHgsIE1DMTM4OTJfUkVH X01PREVfMSwgdmFsKTsKIAl1ZGVsYXkoMjAwKTsKIAotCS8qIFNldCBWR0VOMyB0byAxLjhWICov Ci0JbWMxM3h4eF9yZWdfcmVhZChtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfU0VUVElOR18wLCAm dmFsKTsKLQl2YWwgJj0gfigxIDw8IDE0KTsKLQltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2Rl diwgTUMxMzg5Ml9SRUdfU0VUVElOR18wLCB2YWwpOwotCi0JLyogRW5hYmxlIFZHRU4zLCBWQ0FN LCBWQVVESU8sIFZWSURFTywgVlNEIHJlZ3VsYXRvcnMgKi8KLQl2YWwgPSAweDA0OTI0OTsKLQlt YzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfTU9ERV8xLCB2YWwpOwor CS8qIFNldCBWR0VOMj0zLjE1ViwgVkdFTjM9MS44ViwgVkRJRz0xLjI1ViwgVkNBTT0yLjc1ViAq LworCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eCwgTUMxMzg5Ml9SRUdfU0VUVElOR18wLCAmdmFs KTsKKwl2YWwgJj0gfihNQzEzODkyX1NFVFRJTkdfMF9WR0VOMl9NQVNLIHwgTUMxMzg5Ml9TRVRU SU5HXzBfVkdFTjNfTUFTSyk7CisJdmFsIHw9IE1DMTM4OTJfU0VUVElOR18wX1ZHRU4yXzNfMTUg fCBNQzEzODkyX1NFVFRJTkdfMF9WR0VOM18xXzg7CisJdmFsICY9IH4oTUMxMzg5Ml9TRVRUSU5H XzBfVkRJR19NQVNLIHwgTUMxMzg5Ml9TRVRUSU5HXzBfVkNBTV9NQVNLKTsKKwl2YWwgfD0gTUMx Mzg5Ml9TRVRUSU5HXzBfVkRJR18xXzI1IHwgTUMxMzg5Ml9TRVRUSU5HXzBfVkNBTV8yXzc1Owor CW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHgsIE1DMTM4OTJfUkVHX1NFVFRJTkdfMCwgdmFsKTsK IAotCS8qIEVuYWJsZSBVU0IxIGNoYXJnZXIgKi8KLQl2YWwgPSAweDAwMDQwOTsKLQltYzEzeHh4 X3JlZ193cml0ZShtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfVVNCMSwgdmFsKTsKKwkvKiBFbmFi bGUgT1RHIGZ1bmN0aW9uICovCisJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eCwgTUMxMzg5Ml9S RUdfVVNCMSwgMHg0MDkpOwogCi0JLyogU2V0IFZDT0lOIHRvIDMuMFYgYW5kIEVuYWJsZSBJdCAq LwotCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1BPV0VSX0NUTDAs ICZ2YWwpOworCS8qIEVuYWJsZSBWR0VOMywgVkNBTSwgVkFVRElPLCBWVklERU8sIFZTRCByZWd1 bGF0b3JzICovCisJdmFsID0gTUMxMzg5Ml9NT0RFXzFfVkdFTjNFTiB8IE1DMTM4OTJfTU9ERV8x X1ZHRU4zQ09ORklHOworCXZhbCB8PSBNQzEzODkyX01PREVfMV9WQ0FNRU4gfCBNQzEzODkyX01P REVfMV9WQ0FNQ09ORklHOworCXZhbCB8PSBNQzEzODkyX01PREVfMV9WVklERU9FTiB8IE1DMTM4 OTJfTU9ERV8xX1ZBVURJT0VOOworCXZhbCB8PSBNQzEzODkyX01PREVfMV9WU0RFTjsKKwltYzEz eHh4X3JlZ193cml0ZShtYzEzeHh4LCBNQzEzODkyX1JFR19NT0RFXzEsIHZhbCk7CisKKwkvKiBT ZXQgVkNPSU49My4wViwgS2VlcHMgVlNSVEMgYW5kIENMSzMyS01DVSAqLworCW1jMTN4eHhfcmVn X3JlYWQobWMxM3h4eCwgTUMxMzg5Ml9SRUdfUE9XRVJfQ1RMMCwgJnZhbCk7CiAJdmFsICY9IH4o NyA8PCAyMCk7Ci0JdmFsIHw9ICg0IDw8IDIwKSB8ICgxIDw8IDIzKTsKLQltYzEzeHh4X3JlZ193 cml0ZShtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfUE9XRVJfQ1RMMCwgdmFsKTsKLQkvKiBLZWVw cyBWU1JUQyBhbmQgQ0xLMzJLTUNVICovCi0JdmFsIHw9ICgxIDw8IDQpOwotCW1jMTN4eHhfcmVn X3dyaXRlKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19QT1dFUl9DVEwwLCB2YWwpOwotCi0JLyog RGUtYXNzZXJ0IHJlc2V0IG9mIGV4dGVybmFsIGRldmljZXMgb24gR1AwMSwgR1BPMiwgR1BPMyBh bmQgR1BPNCAqLwotCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1BP V0VSX01JU0MsICZ2YWwpOworCXZhbCB8PSAoMSA8PCA0KSB8ICg0IDw8IDIwKSB8ICgxIDw8IDIz KTsKKwltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4LCBNQzEzODkyX1JFR19QT1dFUl9DVEwwLCB2 YWwpOworCisJLyogRGUtYXNzZXJ0IHJlc2V0IG9mIGV4dGVybmFsIGRldmljZXMgb24gR1AwMS1H UE80ICovCisJbWMxM3h4eF9yZWdfcmVhZChtYzEzeHh4LCBNQzEzODkyX1JFR19QT1dFUl9NSVND LCAmdmFsKTsKIAkvKiBHUE8xIC0gRXh0ZXJuYWwgKi8KIAkvKiBHUDAyIC0gTEFOOTIyMSBQb3dl ciAqLwogCS8qIEdQMDMgLSBGRUMgUmVzZXQgKi8KIAkvKiBHUDA0IC0gV2lyZWxlc3MgUG93ZXIg Ki8KLQlpZiAoSVNfRU5BQkxFRChDT05GSUdfRFJJVkVSX05FVF9TTUM5MTFYKSAmJiBjY3hteDUx X2lkLT5ldGgxKSB7Ci0JCXZhbCB8PSAoMSA8PCA4KTsKLQkJbWRlbGF5KDUwKTsKKwlpZiAoY2N4 bXhfaWQtPmV0aDEpIHsKKwkJdmFsIHw9IE1DMTM4OTJfUE9XRVJfTUlTQ19HUE8yRU47CisJCW1k ZWxheSgxMDApOwogCX0KLQlpZiAoSVNfRU5BQkxFRChDT05GSUdfRFJJVkVSX05FVF9GRUNfSU1Y KSAmJiBjY3hteDUxX2lkLT5ldGgwKQotCQl2YWwgfD0gKDEgPDwgMTApOwotCWlmIChjY3hteDUx X2lkLT53bGVzcykKLQkJdmFsIHw9ICgxIDw8IDEyKTsKLQltYzEzeHh4X3JlZ193cml0ZShtYzEz eHh4X2RldiwgTUMxMzg5Ml9SRUdfUE9XRVJfTUlTQywgdmFsKTsKKwlpZiAoY2N4bXhfaWQtPmV0 aDApCisJCXZhbCB8PSBNQzEzODkyX1BPV0VSX01JU0NfR1BPM0VOOworCWlmIChjY3hteF9pZC0+ d2xlc3MpCisJCXZhbCB8PSBNQzEzODkyX1BPV0VSX01JU0NfR1BPNEVOOworCW1jMTN4eHhfcmVn X3dyaXRlKG1jMTN4eHgsIE1DMTM4OTJfUkVHX1BPV0VSX01JU0MsIHZhbCk7CiAKIAl1ZGVsYXko MTAwKTsKIAotCXJldHVybiAwOworCWNvbnNvbGVfZmx1c2goKTsKKwlpbXg1MV9pbml0X2xvd2xl dmVsKGNjeG14X2lkLT5jcHVfbWh6KTsKKwljbG9ja19ub3RpZmllcl9jYWxsX2NoYWluKCk7CisK KwlwcmludGYoIk1DMTM4OTIgUE1JQyBpbml0aWFsaXplZC5cbiIpOwogfQogCi0vKgotICogT24g dGhpcyBib2FyZCB0aGUgU0RSQU0gaXMgYWx3YXlzIGNvbmZpZ3VyZWQgZm9yIDUxMk1pYi4gVGhl IHJlYWwKLSAqIHNpemUgaXMgZGV0ZXJtaW5lZCBieSB0aGUgYm9hcmQgaWQgcmVhZCBmcm9tIHRo ZSBJSU0gbW9kdWxlLgotICovCi1zdGF0aWMgaW50IGNjeG14NTFfc2RyYW1fZml4dXAodm9pZCkK K3N0YXRpYyBpbnQgY2N4bXg1MV9pc19jb21wYXRpYmxlKHZvaWQpCiB7Ci0JaW14X2VzZGN0bF9k aXNhYmxlKCk7CisJcmV0dXJuIG9mX21hY2hpbmVfaXNfY29tcGF0aWJsZSgiZGlnaSxjb25uZWN0 Y29yZS1jY3hteDUxLXNvbSIpOworfQorCitzdGF0aWMgdm9pZCBjY3hteDUxX2Rpc2FibGVfZGV2 aWNlKHN0cnVjdCBkZXZpY2Vfbm9kZSAqcm9vdCwgY29uc3QgY2hhciAqbGFiZWwpCit7CisJc3Ry dWN0IGRldmljZV9ub2RlICpucCA9IG9mX2ZpbmRfbm9kZV9ieV9uYW1lKHJvb3QsIGxhYmVsKTsK KwlpZiAobnApCisJCW9mX2RldmljZV9kaXNhYmxlKG5wKTsKK30KKworc3RhdGljIGludCBjY3ht eDUxX2JvYXJkX2ZpeHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqcm9vdCwgdm9pZCAqdW51c2VkKQor eworCWNoYXIgKnNlcmlhbDsKKworCWlmICghY2N4bXhfaWQtPmFjY2VsKQorCQljY3hteDUxX2Rp c2FibGVfZGV2aWNlKHJvb3QsICJtbWE3NDU1bEAxZCIpOworCisJaWYgKCFjY3hteF9pZC0+ZXRo MCkKKwkJY2N4bXg1MV9kaXNhYmxlX2RldmljZShyb290LCAiZXRoZXJuZXRAODNmZWMwMDAiKTsK KworCWlmICghY2N4bXhfaWQtPmV0aDEpCisJCWNjeG14NTFfZGlzYWJsZV9kZXZpY2Uocm9vdCwg ImxhbjkyMjFANSwwIik7CisKKwlpZiAoIWNjeG14X2lkLT53bGVzcykKKwkJY2N4bXg1MV9kaXNh YmxlX2RldmljZShyb290LCAiZXNkaGNANzAwMDgwMDAiKTsKKworCXNlcmlhbCA9IGJhc3ByaW50 ZigiJTA4eCUwOHgiLCAwLCBib2FyZHNlcmlhbCk7CisJb2Zfc2V0X3Byb3BlcnR5KHJvb3QsICJz ZXJpYWwtbnVtYmVyIiwgc2VyaWFsLCBzdHJsZW4oc2VyaWFsKSArIDEsIDEpOworCWZyZWUoc2Vy aWFsKTsKIAogCXJldHVybiAwOwogfQotcG9zdGNvcmVfaW5pdGNhbGwoY2N4bXg1MV9zZHJhbV9m aXh1cCk7CiAKLXN0YXRpYyBpbnQgY2N4bXg1MV9tZW1vcnlfaW5pdCh2b2lkKQorc3RhdGljIGlu dCBjY3hteDUxX3NkcmFtX2ZpeHVwKHZvaWQpCiB7CisJaWYgKCFjY3hteDUxX2lzX2NvbXBhdGli bGUoKSkKKwkJcmV0dXJuIDA7CisKIAlhcm1fYWRkX21lbV9kZXZpY2UoInJhbTAiLCBNWDUxX0NT RDBfQkFTRV9BRERSLCBTWl8xMjhNKTsKIAorCS8qCisJICogT24gdGhpcyBib2FyZCB0aGUgU0RS QU0gaXMgYWx3YXlzIGNvbmZpZ3VyZWQgZm9yIDUxMk1pYi4gVGhlIHJlYWwKKwkgKiBzaXplIGlz IGRldGVybWluZWQgYnkgdGhlIGJvYXJkIGlkIHJlYWQgZnJvbSB0aGUgSUlNIG1vZHVsZS4KKwkg Ki8KKwlpbXhfZXNkY3RsX2Rpc2FibGUoKTsKKworCW9mX3JlZ2lzdGVyX2ZpeHVwKGNjeG14NTFf Ym9hcmRfZml4dXAsIE5VTEwpOworCiAJcmV0dXJuIDA7CiB9Ci1tZW1faW5pdGNhbGwoY2N4bXg1 MV9tZW1vcnlfaW5pdCk7Citwb3N0Y29yZV9pbml0Y2FsbChjY3hteDUxX3NkcmFtX2ZpeHVwKTsK IAotc3RhdGljIGludCBjY3hteDUxX2RldmljZXNfaW5pdCh2b2lkKQorc3RhdGljIGludCBjY3ht eDUxX2luaXQodm9pZCkKIHsKKwljaGFyIG1hbmxvYyA9ICdOJzsKIAl1OCBod2lkWzZdOwotCWlu dCBwd3I7Ci0JY2hhciBtYW5sb2M7Ci0KLQlpZiAoKGlteF9paW1fcmVhZCgxLCA5LCBod2lkLCBz aXplb2YoaHdpZCkpICE9IHNpemVvZihod2lkKSkgfHwgKGh3aWRbMF0gPCAweDAyKSB8fCAoaHdp ZFswXSA+PSBBUlJBWV9TSVpFKGNjeG14NTFfaWRzKSkpCi0JCW1lbXNldChod2lkLCAweDAwLCBz aXplb2YoaHdpZCkpOwotCi0JY2N4bXg1MV9pZCA9ICZjY3hteDUxX2lkc1tod2lkWzBdXTsKLQlw cmludGYoIk1vZHVsZSBWYXJpYW50OiAlcyAoMHglMDJ4KVxuIiwgY2N4bXg1MV9pZC0+aWRfc3Ry aW5nLCBod2lkWzBdKTsKLQotCWlmIChod2lkWzBdKSB7Ci0JCXByaW50ZigiTW9kdWxlIEhXIFJl diA6ICUwMnhcbiIsIGh3aWRbMV0gKyAxKTsKLQkJc3dpdGNoIChod2lkWzJdICYgMHhjMCkgewot CQljYXNlIDB4MDA6Ci0JCQltYW5sb2MgPSAnQic7Ci0JCQlicmVhazsKLQkJY2FzZSAweDQwOgot CQkJbWFubG9jID0gJ1cnOwotCQkJYnJlYWs7Ci0JCWNhc2UgMHg4MDoKLQkJCW1hbmxvYyA9ICdT JzsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJbWFubG9jID0gJ04nOwotCQkJYnJlYWs7Ci0J CX0KLQkJcHJpbnRmKCJNb2R1bGUgU2VyaWFsIDogJWMlZFxuIiwgbWFubG9jLCAoKGh3aWRbMl0g JiAweDNmKSA8PCAyNCkgfCAoaHdpZFszXSA8PCAxNikgfCAoaHdpZFs0XSA8PCA4KSB8IGh3aWRb NV0pOwotCQlpZiAoKGNjeG14NTFfaWQtPm1lbV9zeiAtIFNaXzEyOE0pID4gMCkKLQkJCWFybV9h ZGRfbWVtX2RldmljZSgicmFtMSIsIE1YNTFfQ1NEMF9CQVNFX0FERFIgKyBTWl8xMjhNLCBjY3ht eDUxX2lkLT5tZW1fc3ogLSBTWl8xMjhNKTsKLQl9IGVsc2UKLQkJcmV0dXJuIC1FTk9TWVM7Ci0K LQlpbXg1MV9hZGRfdWFydDEoKTsKLQlpbXg1MV9hZGRfdWFydDIoKTsKLQotCXNwaV9yZWdpc3Rl cl9ib2FyZF9pbmZvKGNjeG14NTFfc3BpX2JvYXJkX2luZm8sIEFSUkFZX1NJWkUoY2N4bXg1MV9z cGlfYm9hcmRfaW5mbykpOwotCWlteDUxX2FkZF9zcGkwKCZlY3NwaV8wX2RhdGEpOwotCi0JcHdy ID0gY2N4bXg1MV9wb3dlcl9pbml0KCk7Ci0JY29uc29sZV9mbHVzaCgpOwotCWlteDUxX2luaXRf bG93bGV2ZWwoKGNjeG14NTFfaWQtPmluZHVzdHJpYWwgfHwgcHdyKSA/IDYwMCA6IDgwMCk7Ci0J Y2xvY2tfbm90aWZpZXJfY2FsbF9jaGFpbigpOwotCWlmIChwd3IpCi0JCXByaW50ZigiQ291bGQg bm90IHNldHVwIFBNSUMuIENsb2NrcyBub3QgYWRqdXN0ZWQuXG4iKTsKIAotCWlteDUxX2FkZF9p MmMxKE5VTEwpOworCWlmICghY2N4bXg1MV9pc19jb21wYXRpYmxlKCkpCisJCXJldHVybiAwOwog Ci0JaW14NTFfYWRkX25hbmQoJm5hbmRfaW5mbyk7Ci0JZGV2ZnNfYWRkX3BhcnRpdGlvbigibmFu ZDAiLCAweDAwMDAwLCAweDgwMDAwLCBERVZGU19QQVJUSVRJT05fRklYRUQsICJzZWxmX3JhdyIp OwotCWRldl9hZGRfYmJfZGV2KCJzZWxmX3JhdyIsICJzZWxmMCIpOwotCWRldmZzX2FkZF9wYXJ0 aXRpb24oIm5hbmQwIiwgMHg4MDAwMCwgMHg0MDAwMCwgREVWRlNfUEFSVElUSU9OX0ZJWEVELCAi ZW52X3JhdyIpOwotCWRldl9hZGRfYmJfZGV2KCJlbnZfcmF3IiwgImVudjAiKTsKLQotCWlmIChJ U19FTkFCTEVEKENPTkZJR19EUklWRVJfTkVUX0ZFQ19JTVgpICYmIGNjeG14NTFfaWQtPmV0aDAg JiYgIXB3cikgewotCQlldGhfcmVnaXN0ZXJfZXRoYWRkcigwLCBod2lkKTsKLQkJaW14NTFfYWRk X2ZlYygmZmVjX2luZm8pOworCWlmICgoaW14X2lpbV9yZWFkKDEsIDksIGh3aWQsIHNpemVvZiho d2lkKSkgIT0gc2l6ZW9mKGh3aWQpKSB8fAorCSAgICAoaHdpZFswXSA8IDB4MDIpIHx8IChod2lk WzBdID49IEFSUkFZX1NJWkUoY2N4bXg1MV9pZHMpKSkgeworCQlwcmludGYoIlVua25vd24gYm9h cmQgdmFyaWFudCAoMHglMDJ4KS4gU3lzdGVtIGhhbHRlZC5cbiIsIGh3aWRbMF0pOworCQloYW5n KCk7CiAJfQogCi0JaWYgKElTX0VOQUJMRUQoQ09ORklHX0RSSVZFUl9ORVRfU01DOTExWCkgJiYg Y2N4bXg1MV9pZC0+ZXRoMSAmJiAhcHdyKSB7Ci0JCS8qIENvbmZpZ3VyZSB0aGUgV0VJTSBDUzUg dGltbWluZywgYnVzIHdpZHRoLCBldGMgKi8KLQkJLyogMTYgYml0IG9uIERBVEFbMzEuLjE2XSwg bm90IG11bHRpcGxleGVkLCBhc3luYyAqLwotCQl3cml0ZWwoMHgwMDQyMDA4MSwgTVg1MV9XRUlN X0JBU0VfQUREUiArIFdFSU1fQ1N4R0NSMSg1KSk7Ci0JCS8qIEFESCBoYXMgbm90IGVmZmVjdCBv biBub24gbXV4ZWQgYnVzICovCi0JCXdyaXRlbCgwLCBNWDUxX1dFSU1fQkFTRV9BRERSICsgV0VJ TV9DU3hHQ1IyKDUpKTsKLQkJLyogUldTQz01MCwgUkFEVkE9MiwgUkFEVk49NiwgT0VBPTAsIE9F Tj0wLCBSQ1NBPTAsIFJDU049MCAqLwotCQl3cml0ZWwoMHgzMjI2MDAwMCwgTVg1MV9XRUlNX0JB U0VfQUREUiArIFdFSU1fQ1N4UkNSMSg1KSk7Ci0JCS8qIEFQUj0wICovCi0JCXdyaXRlbCgwLCBN WDUxX1dFSU1fQkFTRV9BRERSICsgV0VJTV9DU3hSQ1IyKDUpKTsKLQkJLyogV0FMPTAsIFdCRUQ9 MSwgV1dTQz01MCwgV0FEVkE9MiwgV0FEVk49NiwgV0VBPTAsIFdFTj0wLCBXQ1NBPTAgKi8KLQkJ d3JpdGVsKDB4NzIwODBmMDAsIE1YNTFfV0VJTV9CQVNFX0FERFIgKyBXRUlNX0NTeFdDUjEoNSkp OwotCi0JCS8qIExBTjkyMjEgbmV0d29yayBjb250cm9sbGVyICovCi0JCWFkZF9nZW5lcmljX2Rl dmljZSgic21jOTExeCIsIDEsIE5VTEwsIE1YNTFfQ1M1X0JBU0VfQUREUiwgU1pfNEssIElPUkVT T1VSQ0VfTUVNLCBOVUxMKTsKKwljY3hteF9pZCA9ICZjY3hteDUxX2lkc1tod2lkWzBdXTsKKwor CXN3aXRjaCAoaHdpZFsyXSAmIDB4YzApIHsKKwljYXNlIDB4MDA6CisJCW1hbmxvYyA9ICdCJzsK KwkJYnJlYWs7CisJY2FzZSAweDQwOgorCQltYW5sb2MgPSAnVyc7CisJCWJyZWFrOworCWNhc2Ug MHg4MDoKKwkJbWFubG9jID0gJ1MnOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlicmVhazsKIAl9 CiAKLQlpbXg1MV9hZGRfdXNib3RnKCZjY3hteDUxX290Z19wZGF0YSk7CisJZXRoX3JlZ2lzdGVy X2V0aGFkZHIoMCwgaHdpZCk7CiAKLQlhcm1saW51eF9zZXRfYXJjaGl0ZWN0dXJlKGNjeG14NTFf aWQtPndsZXNzID8gTUFDSF9UWVBFX0NDV01YNTEgOiBNQUNIX1RZUEVfQ0NNWDUxKTsKKwlib2Fy ZHNlcmlhbCA9ICgoaHdpZFsyXSAmIDB4M2YpIDw8IDI0KSB8IChod2lkWzNdIDw8IDE2KSB8ICho d2lkWzRdIDw8IDgpIHwgaHdpZFs1XTsKIAotCXJldHVybiAwOwotfQotZGV2aWNlX2luaXRjYWxs KGNjeG14NTFfZGV2aWNlc19pbml0KTsKKwlwcmludGYoIk1vZHVsZSBWYXJpYW50OiAlcyAoMHgl MDJ4KVxuIiwgY2N4bXhfaWQtPmlkX3N0cmluZywgaHdpZFswXSk7CisJcHJpbnRmKCJNb2R1bGUg SFcgUmV2IDogJTAyeFxuIiwgaHdpZFsxXSArIDEpOworCXByaW50ZigiTW9kdWxlIFNlcmlhbCA6 ICVjJWRcbiIsIG1hbmxvYywgYm9hcmRzZXJpYWwpOwogCi1zdGF0aWMgaW50IGNjeG14NTFfY29u c29sZV9pbml0KHZvaWQpCi17Ci0JbXhjX2lvbXV4X3YzX3NldHVwX211bHRpcGxlX3BhZHMoY2N4 bXg1MV9wYWRzLCBBUlJBWV9TSVpFKGNjeG14NTFfcGFkcykpOworCWlmICgoY2N4bXhfaWQtPm1l bV9zeiAtIFNaXzEyOE0pID4gMCkKKwkJYXJtX2FkZF9tZW1fZGV2aWNlKCJyYW0xIiwgTVg1MV9D U0QwX0JBU0VfQUREUiArIFNaXzEyOE0sCisJCQkJICAgY2N4bXhfaWQtPm1lbV9zeiAtIFNaXzEy OE0pOworCisJbWMxM3h4eF9yZWdpc3Rlcl9pbml0X2NhbGxiYWNrKGNjeG14NTFfcG93ZXJfaW5p dCk7CiAKIAliYXJlYm94X3NldF9tb2RlbCgiRGlnaSBDb25uZWN0Q29yZSBpLk1YNTEiKTsKLQli YXJlYm94X3NldF9ob3N0bmFtZSgiY2NteDUxIik7CisJYmFyZWJveF9zZXRfaG9zdG5hbWUoImNj eG14NTEiKTsKKworCWlteDUxX2JidV9pbnRlcm5hbF9tbWNfcmVnaXN0ZXJfaGFuZGxlcigibW1j IiwgIi9kZXYvbW1jMCIsCisJCQkJCQlCQlVfSEFORExFUl9GTEFHX0RFRkFVTFQpOwogCi0JaW14 NTFfYWRkX3VhcnQwKCk7CisJaWYgKElTX0VOQUJMRUQoQ09ORklHX0RFRkFVTFRfRU5WSVJPTk1F TlQpKQorCQlkZWZhdWx0ZW52X2FwcGVuZF9kaXJlY3RvcnkoZGVmYXVsdGVudl9jY3hteDUxKTsK IAogCXJldHVybiAwOwogfQotY29uc29sZV9pbml0Y2FsbChjY3hteDUxX2NvbnNvbGVfaW5pdCk7 Citmc19pbml0Y2FsbChjY3hteDUxX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRz L2NjeG14NTEvY2N4bXg1MS5oIGIvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1MS5oCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZmVhY2FjMDMuLjAwMDAwMDAwMAotLS0gYS9h cmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzNSAr MCwwIEBACi0vKgotICogQ29weXJpZ2h0IDIwMTAgRGlnaSBJbnRlcm5hdGlvbmFsIEluYy4gQWxs IFJpZ2h0cyBSZXNlcnZlZC4KLSAqLwotCi0vKgotICogVGhlIGNvZGUgY29udGFpbmVkIGhlcmVp biBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlLiBZ b3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0g KiBWZXJzaW9uIDIgb3IgbGF0ZXIgYXQgdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6Ci0gKgotICog aHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtbGljZW5zZS5odG1sCi0gKiBo dHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwKLSAqLwotCi0jaWZuZGVmIF9DQ1hN WDUxX0hfCi0jZGVmaW5lIF9DQ1hNWDUxX0hfCi0KLXN0cnVjdCBjY3hteDUxX2h3aWQgewotCXU4 CQl2YXJpYW50OwotCXU4CQl2ZXJzaW9uOwotCXUzMgkJc247Ci0JY2hhcgkJbWxvYzsKLX07Ci0K LXN0cnVjdCBjY3hteDUxX2lkZW50IHsKLQljb25zdCBjaGFyCSppZF9zdHJpbmc7Ci0JY29uc3Qg aW50CW1lbV9zejsKLQljb25zdCBjaGFyCWluZHVzdHJpYWw7Ci0JY29uc3QgY2hhcglldGgwOwot CWNvbnN0IGNoYXIJZXRoMTsKLQljb25zdCBjaGFyCXdsZXNzOwotfTsKLQotZXh0ZXJuIHN0cnVj dCBjY3hteDUxX2lkZW50ICpjY3hteDUxX2lkOwotCi0jZW5kaWYJLyogX0NDWE1YNTFfSF8gKi8K ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2NjeG14NTFqcy5jIGIvYXJjaC9h cm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1MWpzLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDdmMDY4ZTIzOS4uMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2Nj eG14NTFqcy5jCisrKyAvZGV2L251bGwKQEAgLTEsMTAzICswLDAgQEAKLS8qCi0gKiBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcwotICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDIgb2YKLSAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAqIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICovCi0KLSNp bmNsdWRlIDxjb21tb24uaD4KLSNpbmNsdWRlIDxpby5oPgotI2luY2x1ZGUgPGluaXQuaD4KLSNp bmNsdWRlIDxncGlvLmg+Ci0jaW5jbHVkZSA8bWNpLmg+Ci0jaW5jbHVkZSA8YXNtL2FybWxpbnV4 Lmg+Ci0jaW5jbHVkZSA8bWFjaC9nZW5lcmljLmg+Ci0jaW5jbHVkZSA8bWFjaC9pbXg1MS1yZWdz Lmg+Ci0jaW5jbHVkZSA8bWFjaC9pb211eC1teDUxLmg+Ci0jaW5jbHVkZSA8bWFjaC9kZXZpY2Vz LWlteDUxLmg+Ci0jaW5jbHVkZSA8Z2VuZXJhdGVkL21hY2gtdHlwZXMuaD4KLQotI2luY2x1ZGUg ImNjeG14NTEuaCIKLQotI2RlZmluZSBDQ1hNWDUxSlNfVVNCSDFfUkVTRVQJSU1YX0dQSU9fTlIo MywgOCkKLSNkZWZpbmUgQ0NYTVg1MUpTX1NEM19XUAlJTVhfR1BJT19OUigzLCAxNykKLQotc3Rh dGljIGlvbXV4X3YzX2NmZ190IGNjeG14NTFqc19wYWRzW10gPSB7Ci0JLyogU0QxICovCi0JTVg1 MV9QQURfU0QxX0NMS19fU0QxX0NMSywKLQlNWDUxX1BBRF9TRDFfQ01EX19TRDFfQ01ELAotCU1Y NTFfUEFEX1NEMV9EQVRBMF9fU0QxX0RBVEEwLAotCU1YNTFfUEFEX1NEMV9EQVRBMV9fU0QxX0RB VEExLAotCU1YNTFfUEFEX1NEMV9EQVRBMl9fU0QxX0RBVEEyLAotCU1YNTFfUEFEX1NEMV9EQVRB M19fU0QxX0RBVEEzLAotCS8qIFNEMyAqLwotCU1YNTFfUEFEX05BTkRGX0NTN19fU0QzX0NMSywK LQlNWDUxX1BBRF9OQU5ERl9SRFlfSU5UX19TRDNfQ01ELAotCU1YNTFfUEFEX05BTkRGX0Q4X19T RDNfREFUQTAsCi0JTVg1MV9QQURfTkFOREZfRDlfX1NEM19EQVRBMSwKLQlNWDUxX1BBRF9OQU5E Rl9EMTBfX1NEM19EQVRBMiwKLQlNWDUxX1BBRF9OQU5ERl9EMTFfX1NEM19EQVRBMywKLQlNWDUx X1BBRF9OQU5ERl9EMTJfX1NEM19EQVQ0LAotCU1YNTFfUEFEX05BTkRGX0QxM19fU0QzX0RBVDUs Ci0JTVg1MV9QQURfTkFOREZfRDE0X19TRDNfREFUNiwKLQlNWDUxX1BBRF9OQU5ERl9EMTVfX1NE M19EQVQ3LAotCS8qIFVTQiBIT1NUMSAqLwotCU1YNTFfUEFEX1VTQkgxX0NMS19fVVNCSDFfQ0xL LAotCU1YNTFfUEFEX1VTQkgxX0RJUl9fVVNCSDFfRElSLAotCU1YNTFfUEFEX1VTQkgxX05YVF9f VVNCSDFfTlhULAotCU1YNTFfUEFEX1VTQkgxX1NUUF9fVVNCSDFfU1RQLAotCU1YNTFfUEFEX1VT QkgxX0RBVEEwX19VU0JIMV9EQVRBMCwKLQlNWDUxX1BBRF9VU0JIMV9EQVRBMV9fVVNCSDFfREFU QTEsCi0JTVg1MV9QQURfVVNCSDFfREFUQTJfX1VTQkgxX0RBVEEyLAotCU1YNTFfUEFEX1VTQkgx X0RBVEEzX19VU0JIMV9EQVRBMywKLQlNWDUxX1BBRF9VU0JIMV9EQVRBNF9fVVNCSDFfREFUQTQs Ci0JTVg1MV9QQURfVVNCSDFfREFUQTVfX1VTQkgxX0RBVEE1LAotCU1YNTFfUEFEX1VTQkgxX0RB VEE2X19VU0JIMV9EQVRBNiwKLQlNWDUxX1BBRF9VU0JIMV9EQVRBN19fVVNCSDFfREFUQTcsCi19 OwotCi1zdGF0aWMgc3RydWN0IGVzZGhjX3BsYXRmb3JtX2RhdGEgc2RoYzFfcGRhdGEgPSB7Ci0J LmNkX3R5cGUJPSBFU0RIQ19DRF9OT05FLAotCS53cF90eXBlCT0gRVNESENfV1BfTk9ORSwKLQku Y2FwcwkJPSBNTUNfQ0FQXzRfQklUX0RBVEEsCi19OwotCi1zdGF0aWMgc3RydWN0IGVzZGhjX3Bs YXRmb3JtX2RhdGEgc2RoYzNfcGRhdGEgPSB7Ci0JLmNkX3R5cGUJPSBFU0RIQ19DRF9OT05FLAot CS53cF90eXBlCT0gRVNESENfV1BfR1BJTywKLQkud3BfZ3Bpbwk9IENDWE1YNTFKU19TRDNfV1As Ci0JLmNhcHMJCT0gTU1DX0NBUF80X0JJVF9EQVRBIHwgTU1DX0NBUF84X0JJVF9EQVRBLAotfTsK LQotc3RhdGljIHN0cnVjdCBpbXh1c2JfcGxhdGZvcm1kYXRhIGNjeG14NTFqc191c2Job3N0MV9w ZGF0YSA9IHsKLQkuZmxhZ3MJPSBNWENfRUhDSV9NT0RFX1VMUEkgfCBNWENfRUhDSV9JVENfTk9f VEhSRVNIT0xELAotCS5tb2RlCT0gSU1YX1VTQl9NT0RFX0hPU1QsCi19OwotCi1zdGF0aWMgaW50 IGNjeG14NTFqc19pbml0KHZvaWQpCi17Ci0JbXhjX2lvbXV4X3YzX3NldHVwX211bHRpcGxlX3Bh ZHMoY2N4bXg1MWpzX3BhZHMsIEFSUkFZX1NJWkUoY2N4bXg1MWpzX3BhZHMpKTsKLQotCWlmIChJ U19FTkFCTEVEKENPTkZJR19NQ0lfSU1YX0VTREhDKSkgewotCQlpbXg1MV9hZGRfbW1jMCgmc2Ro YzFfcGRhdGEpOwotCQlpbXg1MV9hZGRfbW1jMigmc2RoYzNfcGRhdGEpOwotCX0KLQotCWdwaW9f ZGlyZWN0aW9uX291dHB1dChDQ1hNWDUxSlNfVVNCSDFfUkVTRVQsIDApOwotCW1kZWxheSgxMCk7 Ci0JZ3Bpb19zZXRfdmFsdWUoQ0NYTVg1MUpTX1VTQkgxX1JFU0VULCAxKTsKLQltZGVsYXkoMTAp OwotCWlteDUxX2FkZF91c2JoMSgmY2N4bXg1MWpzX3VzYmhvc3QxX3BkYXRhKTsKLQotCWFybWxp bnV4X3NldF9hcmNoaXRlY3R1cmUoY2N4bXg1MV9pZC0+d2xlc3MgPyBNQUNIX1RZUEVfQ0NXTVg1 MUpTIDogTUFDSF9UWVBFX0NDTVg1MUpTKTsKLQotCXJldHVybiAwOwotfQotCi1sYXRlX2luaXRj YWxsKGNjeG14NTFqc19pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUx L2RlZmF1bHRlbnYtY2N4bXg1MS9ib290L25hbmQgYi9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9k ZWZhdWx0ZW52LWNjeG14NTEvYm9vdC9uYW5kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMC4uNTEwMTdkYWJhCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vYm9hcmRzL2Nj eG14NTEvZGVmYXVsdGVudi1jY3hteDUxL2Jvb3QvbmFuZApAQCAtMCwwICsxLDQgQEAKKyMhL2Jp bi9zaAorCitnbG9iYWwuYm9vdG0uaW1hZ2U9Ii9kZXYvbmFuZDAua2VybmVsIgorZ2xvYmFsLmxp bnV4LmJvb3RhcmdzLmR5bi5yb290PSJyb290PXViaTA6bGludXhfcm9vdCB1YmkubXRkPW5hbmQu cm9vdCByb290ZnN0eXBlPXViaWZzIgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL2NjeG14 NTEvZW52L2luaXQvbXRkcGFydHMtbmFuZCBiL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2RlZmF1 bHRlbnYtY2N4bXg1MS9pbml0L210ZHBhcnRzLW5hbmQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJl bmFtZSBmcm9tIGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2Vudi9pbml0L210ZHBhcnRzLW5hbmQK cmVuYW1lIHRvIGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2RlZmF1bHRlbnYtY2N4bXg1MS9pbml0 L210ZHBhcnRzLW5hbmQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2Vudi9u di9hdXRvYm9vdF90aW1lb3V0IGIvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvZGVmYXVsdGVudi1j Y3hteDUxL252L2F1dG9ib290X3RpbWVvdXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBm cm9tIGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2Vudi9udi9hdXRvYm9vdF90aW1lb3V0CnJlbmFt ZSB0byBhcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9kZWZhdWx0ZW52LWNjeG14NTEvbnYvYXV0b2Jv b3RfdGltZW91dApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvZW52L252L2Jv b3QuZGVmYXVsdCBiL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2RlZmF1bHRlbnYtY2N4bXg1MS9u di9ib290LmRlZmF1bHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGFyY2gvYXJt L2JvYXJkcy9jY3hteDUxL2Vudi9udi9ib290LmRlZmF1bHQKcmVuYW1lIHRvIGFyY2gvYXJtL2Jv YXJkcy9jY3hteDUxL2RlZmF1bHRlbnYtY2N4bXg1MS9udi9ib290LmRlZmF1bHQKZGlmZiAtLWdp dCBhL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2Vudi9ib290L25hbmQgYi9hcmNoL2FybS9ib2Fy ZHMvY2N4bXg1MS9lbnYvYm9vdC9uYW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk NTNmMDdlYzUuLjAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9lbnYvYm9v dC9uYW5kCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0jIS9iaW4vc2gKLQotZ2xvYmFs LmJvb3RtLmltYWdlPSIvZGV2L2tlcm5lbCIKLWdsb2JhbC5saW51eC5ib290YXJncy5keW4ucm9v dD0icm9vdD0vZGV2L210ZGJsb2NrMyBybyIKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2JvYXJkcy9j Y3hteDUxL2xvd2xldmVsLmMgYi9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9sb3dsZXZlbC5jCmlu ZGV4IDJiM2RjNDJlOC4uMjA3ZDY4ZGNkIDEwMDY0NAotLS0gYS9hcmNoL2FybS9ib2FyZHMvY2N4 bXg1MS9sb3dsZXZlbC5jCisrKyBiL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2xvd2xldmVsLmMK QEAgLTUsOCArNSwxNiBAQAogI2luY2x1ZGUgPGFzbS9iYXJlYm94LWFybS1oZWFkLmg+CiAjaW5j bHVkZSA8bWFjaC9pbXg1MS1yZWdzLmg+CiAKLXZvaWQgX19uYWtlZCBiYXJlYm94X2FybV9yZXNl dF92ZWN0b3Iodm9pZCkKK0VOVFJZX0ZVTkNUSU9OKHN0YXJ0X2NjeG14NTEsIHIwLCByMSwgcjIp CiB7CisJZXh0ZXJuIGNoYXIgX19kdGJfaW14NTFfY2N4bXg1MV9zdGFydFtdOworCXZvaWQgKmZk dDsKKwogCWlteDVfY3B1X2xvd2xldmVsX2luaXQoKTsKLQliYXJlYm94X2FybV9lbnRyeShNWDUx X0NTRDBfQkFTRV9BRERSLCBTWl8xMjhNLCBOVUxMKTsKKworCWFybV9zZXR1cF9zdGFjaygweDIw MDAwMDAwIC0gMTYpOworCisJZmR0ID0gX19kdGJfaW14NTFfY2N4bXg1MV9zdGFydCArIGdldF9y dW50aW1lX29mZnNldCgpOworCisJYmFyZWJveF9hcm1fZW50cnkoTVg1MV9DU0QwX0JBU0VfQURE UiwgU1pfMTI4TSwgZmR0KTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvY2NteDUx X2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvY2NteDUxX2RlZmNvbmZpZwpkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggYzE2ZjczZjdiLi4wMDAwMDAwMDAKLS0tIGEvYXJjaC9hcm0v Y29uZmlncy9jY214NTFfZGVmY29uZmlnCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAot Q09ORklHX0FSQ0hfSU1YPXkKLUNPTkZJR19NQUNIX0NDTVg1MT15Ci1DT05GSUdfQUVBQkk9eQot Q09ORklHX0FSTV9PUFRJTVpFRF9TVFJJTkdfRlVOQ1RJT05TPXkKLUNPTkZJR19NTVU9eQotQ09O RklHX01BTExPQ19TSVpFPTB4MjAwMDAwMAotQ09ORklHX0hVU0hfRkFOQ1lfUFJPTVBUPXkKLUNP TkZJR19DTURMSU5FX0VESVRJTkc9eQotQ09ORklHX0FVVE9fQ09NUExFVEU9eQotQ09ORklHX0JP T1RNX1NIT1dfVFlQRT15Ci1DT05GSUdfREVGQVVMVF9FTlZJUk9OTUVOVF9HRU5FUklDX05FVz15 Ci1DT05GSUdfREVGQVVMVF9FTlZJUk9OTUVOVF9QQVRIPSJhcmNoL2FybS9ib2FyZHMvY2N4bXg1 MS9lbnYiCi1DT05GSUdfTE9OR0hFTFA9eQotQ09ORklHX0NNRF9NRU1JTkZPPXkKLUNPTkZJR19D TURfQVJNX01NVUlORk89eQotQ09ORklHX0NNRF9CT09UWj15Ci1DT05GSUdfQ01EX0dPPXkKLUNP TkZJR19DTURfUkVTRVQ9eQotQ09ORklHX0NNRF9QQVJUSVRJT049eQotQ09ORklHX0NNRF9FWFBP UlQ9eQotQ09ORklHX0NNRF9QUklOVEVOVj15Ci1DT05GSUdfQ01EX01BR0lDVkFSPXkKLUNPTkZJ R19DTURfTUFHSUNWQVJfSEVMUD15Ci1DT05GSUdfQ01EX1NBVkVFTlY9eQotQ09ORklHX0NNRF9T TEVFUD15Ci1DT05GSUdfQ01EX0RIQ1A9eQotQ09ORklHX0NNRF9QSU5HPXkKLUNPTkZJR19DTURf RUNIT19FPXkKLUNPTkZJR19DTURfRURJVD15Ci1DT05GSUdfQ01EX1JFQURMSU5FPXkKLUNPTkZJ R19DTURfVElNRU9VVD15Ci1DT05GSUdfQ01EX0NSQz15Ci1DT05GSUdfQ01EX0NSQ19DTVA9eQot Q09ORklHX0NNRF9DTEs9eQotQ09ORklHX0NNRF9GTEFTSD15Ci1DT05GSUdfQ01EX0dQSU89eQot Q09ORklHX0NNRF9JMkM9eQotQ09ORklHX0NNRF9OQU5EVEVTVD15Ci1DT05GSUdfQ01EX1NQST15 Ci1DT05GSUdfQ01EX09GVFJFRT15Ci1DT05GSUdfTkVUPXkKLUNPTkZJR19EUklWRVJfTkVUX0ZF Q19JTVg9eQotQ09ORklHX0RSSVZFUl9ORVRfU01DOTExWD15Ci1DT05GSUdfSTJDPXkKLUNPTkZJ R19JMkNfSU1YPXkKLUNPTkZJR19NVEQ9eQotQ09ORklHX05BTkQ9eQotQ09ORklHX05BTkRfSU1Y PXkKLUNPTkZJR19VU0JfSE9TVD15Ci1DT05GSUdfVVNCX0lNWF9DSElQSURFQT15Ci1DT05GSUdf VVNCX0VIQ0k9eQotQ09ORklHX1VTQl9VTFBJPXkKLUNPTkZJR19VU0JfU1RPUkFHRT15Ci1DT05G SUdfTUNJPXkKLUNPTkZJR19NQ0lfSU1YX0VTREhDPXkKLUNPTkZJR19GU19DUkFNRlM9eQotQ09O RklHX0ZTX0ZBVD15Ci1DT05GSUdfRlNfRkFUX1dSSVRFPXkKLUNPTkZJR19GU19GQVRfTEZOPXkK LUNPTkZJR19MWk9fREVDT01QUkVTUz15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2lt eF92N19kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2lteF92N19kZWZjb25maWcKaW5kZXgg NjRiMjAyYjlkLi4yMDY4YTZjZWUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvaW14X3Y3 X2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2lteF92N19kZWZjb25maWcKQEAgLTEs NiArMSw3IEBACiBDT05GSUdfQVJDSF9JTVg9eQogQ09ORklHX0lNWF9NVUxUSV9CT0FSRFM9eQog Q09ORklHX01BQ0hfS0lORExFX01YNTA9eQorQ09ORklHX01BQ0hfQ0NNWDUxPXkKIENPTkZJR19N QUNIX0VGSUtBX01YX1NNQVJUQk9PSz15CiBDT05GSUdfTUFDSF9FTUJFRFNLWV9FOT15CiBDT05G SUdfTUFDSF9GUkVFU0NBTEVfTVg1MV9QREs9eQpAQCAtNDEsNyArNDIsNiBAQCBDT05GSUdfTUFD SF9QSFlURUNfUEhZQ09SRV9JTVg3PXkKIENPTkZJR19NQUNIX0ZSRUVTQ0FMRV9NWDdfU0FCUkVT RD15CiBDT05GSUdfTUFDSF9OWFBfSU1YNlVMTF9FVks9eQogQ09ORklHX01BQ0hfR1JJTk5fTElU RUJPQVJEPXkKLUNPTkZJR19JTVhfSUlNPXkKIENPTkZJR19JTVhfSUlNX0ZVU0VfQkxPVz15CiBD T05GSUdfVEhVTUIyX0JBUkVCT1g9eQogQ09ORklHX0FSTV9PUFRJTVpFRF9TVFJJTkdfRlVOQ1RJ T05TPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2R0cy9NYWtlZmlsZSBiL2FyY2gvYXJtL2R0cy9N YWtlZmlsZQppbmRleCBjMDhiMzVhMTAuLjRhZjI4NmExMSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0v ZHRzL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL2R0cy9NYWtlZmlsZQpAQCAtMjEsNiArMjEsNyBA QCBwYmwtZHRiLSQoQ09ORklHX01BQ0hfRU1CRURTS1lfRTkpICs9IGlteDZxLWVtYmVkc2t5LWU5 LmR0Yi5vCiBwYmwtZHRiLSQoQ09ORklHX01BQ0hfRlJFRVNDQUxFX01YNTFfUERLKSArPSBpbXg1 MS1iYWJiYWdlLmR0Yi5vCiBwYmwtZHRiLSQoQ09ORklHX01BQ0hfRlJFRVNDQUxFX01YNTNfTE9D TykgKz0gaW14NTMtcXNiLmR0Yi5vIGlteDUzLXFzcmIuZHRiLm8KIHBibC1kdGItJChDT05GSUdf TUFDSF9UWDUzKSArPSBpbXg1My10eDUzLXh4MzAuZHRiLm8gaW14NTMtdHg1My0xMDExLmR0Yi5v CitwYmwtZHRiLSQoQ09ORklHX01BQ0hfQ0NNWDUxKSArPSBpbXg1MS1jY3hteDUxLmR0Yi5vCiBw YmwtZHRiLSQoQ09ORklHX01BQ0hfQ0NNWDUzKSArPSBpbXg1My1jY3hteDUzLmR0Yi5vCiBwYmwt ZHRiLSQoQ09ORklHX01BQ0hfRlJFRVNDQUxFX01YNTNfVk1YNTMpICs9IGlteDUzLXZvaXBhYy1i c2IuZHRiLm8KIHBibC1kdGItJChDT05GSUdfTUFDSF9GUkVFU0NBTEVfTVg3X1NBQlJFU0QpICs9 IGlteDdkLXNkYi5kdGIubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vZHRzL2lteDUxLWNjeG14NTEu ZHRzIGIvYXJjaC9hcm0vZHRzL2lteDUxLWNjeG14NTEuZHRzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMC4uYjMxYjQ0ZWQxCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0v ZHRzL2lteDUxLWNjeG14NTEuZHRzCkBAIC0wLDAgKzEsMjggQEAKKyNpbmNsdWRlIDxhcm0vaW14 NTEtZGlnaS1jb25uZWN0Y29yZS1qc2suZHRzPgorCisvIHsKKwljaG9zZW4geworCQlzdGRvdXQt cGF0aCA9ICZ1YXJ0MTsKKworCWVudmlyb25tZW50QDAgeworCQljb21wYXRpYmxlID0gImJhcmVi b3gsZW52aXJvbm1lbnQiOworCQlkZXZpY2UtcGF0aCA9ICZuZmMsICJwYXJ0bmFtZTplbnYiOwor CQl9OworCX07Cit9OworCismaWltIHsKKwliYXJlYm94LHByb3ZpZGUtbWFjLWFkZHJlc3MgPSA8 JmZlYyAxIDk+OworfTsKKworJm5mYyB7CisJcGFydGl0aW9uQDAgeworCQlsYWJlbCA9ICJib290 IjsKKwkJcmVnID0gPDB4MDAwMDAgMHg4MDAwMD47CisJfTsKKworCXBhcnRpdGlvbkAxIHsKKwkJ bGFiZWwgPSAiZW52IjsKKwkJcmVnID0gPDB4ODAwMDAgMHg0MDAwMD47CisJfTsKK307CmRpZmYg LS1naXQgYS9hcmNoL2FybS9tYWNoLWlteC9LY29uZmlnIGIvYXJjaC9hcm0vbWFjaC1pbXgvS2Nv bmZpZwppbmRleCBkOWI2MDA1M2QuLjJlZWZmNWI2YiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFj aC1pbXgvS2NvbmZpZworKysgYi9hcmNoL2FybS9tYWNoLWlteC9LY29uZmlnCkBAIC0yNiw3ICsy Niw2IEBAIGNvbmZpZyBBUkNIX1RFWFRfQkFTRQogCWRlZmF1bHQgMHg5M2QwMDAwMCBpZiBNQUNI X1RYMjUKIAlkZWZhdWx0IDB4N2ZmMDAwMDAgaWYgTUFDSF9UUU1BNTMKIAlkZWZhdWx0IDB4OTdm MDAwMDAgaWYgTUFDSF9UWDUxCi0JZGVmYXVsdCAweDk3ZjAwMDAwIGlmIE1BQ0hfQ0NNWDUxCiAJ ZGVmYXVsdCAweDRmYzAwMDAwIGlmIE1BQ0hfU0FCUkVMSVRFCiAJZGVmYXVsdCAweDhmZTAwMDAw IGlmIE1BQ0hfVFg1MwogCWRlZmF1bHQgMHg5N2YwMDAwMCBpZiBNQUNIX0VGSUtBX01YX1NNQVJU Qk9PSwpAQCAtMjQ2LDYgKzI0NSwxNyBAQCBjb25maWcgTUFDSF9LSU5ETEVfTVg1MAogCSAgS2lu ZGxlIE1vZGVsIE5vLiBEMDExMDAgKEtpbmRsZSBXaS1GaSksIEQwMTIwMCAoS2luZGxlIFRvdWNo KSBvcgogCSAgRVkyMSAoS2luZGxlIFBhcGVyd2hpdGUpLgogCitjb25maWcgTUFDSF9DQ01YNTEK Kwlib29sICJDb25uZWN0Q29yZSBpLk1YNTEiCisJc2VsZWN0IEFSQ0hfSU1YNTEKKwlzZWxlY3Qg SU1YX0lJTQorCXNlbGVjdCBTUEkKKwlzZWxlY3QgRFJJVkVSX1NQSV9JTVgKKwlzZWxlY3QgTUZE X01DMTNYWFgKKwloZWxwCisJICBTYXkgWSBoZXJlIGlmIHlvdSBhcmUgdXNpbmcgRGlnaSBDb25u ZWN0Q29yZSAoVylpLWkuTVg1MQorCSAgZXF1aXBwZWQgd2l0aCBhIEZyZWVzY2FsZSBpLk1YNTEg UHJvY2Vzc29yCisKIGNvbmZpZyBNQUNIX0VGSUtBX01YX1NNQVJUQk9PSwogCWJvb2wgIkVmaWth IE1YIHNtYXJ0Ym9vayIKIAlzZWxlY3QgQVJDSF9JTVg1MQpAQCAtNjIyLDI1ICs2MzIsNiBAQCBj b25maWcgTUFDSF9UWDUxCiAJaGVscAogCSAgU2F5IFkgaGVyZSBpZiB5b3UgYXJlIHVzaW5nIHRo ZSBLYS1SbyB0eDUxIGJvYXJkCiAKLWNvbmZpZyBNQUNIX0NDTVg1MQotCWJvb2wgIkNvbm5lY3RD b3JlIGkuTVg1MSIKLQlzZWxlY3QgQVJDSF9JTVg1MQotCXNlbGVjdCBJTVhfSUlNCi0Jc2VsZWN0 IFNQSQotCXNlbGVjdCBEUklWRVJfU1BJX0lNWAotCXNlbGVjdCBNRkRfTUMxM1hYWAotCWhlbHAK LQkgIFNheSBZIGhlcmUgaWYgeW91IGFyZSB1c2luZyBEaWdpIENvbm5lY3RDb3JlIChXKWktaS5N WDUxCi0JICBlcXVpcHBlZCB3aXRoIGEgRnJlZXNjYWxlIGkuTVg1MSBQcm9jZXNzb3IKLQotY29u ZmlnIE1BQ0hfQ0NNWDUxX0JBU0VCT0FSRAotCWJvb2wgIkRpZ2kgZGV2ZWxvcG1lbnQgYm9hcmQg Zm9yIENDTVg1MSBtb2R1bGUiCi0JZGVwZW5kcyBvbiBNQUNIX0NDTVg1MQotCWRlZmF1bHQgeQot CWhlbHAKLQkgIFRoaXMgYWRkcyBib2FyZCBzcGVjaWZpYyBkZXZpY2VzIHRoYXQgY2FuIGJlIGZv dW5kIG9uIERpZ2kKLQkgIGV2YWx1YXRpb24gYm9hcmQgZm9yIENDTVg1MSBtb2R1bGUuCi0KICMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogCiBjb21tZW50ICJpLk1YNTMgQm9hcmRzIgpkaWZmIC0tZ2l0IGEvaW1hZ2VzL01ha2VmaWxl LmlteCBiL2ltYWdlcy9NYWtlZmlsZS5pbXgKaW5kZXggOGI4YTU0NTJiLi42YWE0NmI4MzUgMTAw NjQ0Ci0tLSBhL2ltYWdlcy9NYWtlZmlsZS5pbXgKKysrIGIvaW1hZ2VzL01ha2VmaWxlLmlteApA QCAtNTcsNiArNTcsMTEgQEAgRklMRV9iYXJlYm94LWtpbmRsZS1leTIxLmltZyA9IHN0YXJ0X2lt eDUwX2tpbmRsZV9leTIxLnBibGIuaW14aW1nCiBpbWFnZS0kKENPTkZJR19NQUNIX0tJTkRMRV9N WDUwKSArPSBiYXJlYm94LWtpbmRsZS1leTIxLmltZwogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tIGkuTVg1MSBiYXNlZCBib2FyZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitwYmxi LSQoQ09ORklHX01BQ0hfQ0NNWDUxKSArPSBzdGFydF9jY3hteDUxCitDRkdfc3RhcnRfY2N4bXg1 MS5wYmxiLmlteGltZyA9ICQoYm9hcmQpL2NjeG14NTEvZmxhc2gtaGVhZGVyLmlteGNmZworRklM RV9iYXJlYm94LWlteDUxLWNjeG14NTEuaW1nID0gc3RhcnRfY2N4bXg1MS5wYmxiLmlteGltZwor aW1hZ2UtJChDT05GSUdfTUFDSF9DQ01YNTEpICs9IGJhcmVib3gtaW14NTEtY2N4bXg1MS5pbWcK KwogcGJsYi0kKENPTkZJR19NQUNIX0ZSRUVTQ0FMRV9NWDUxX1BESykgKz0gc3RhcnRfaW14NTFf YmFiYmFnZQogQ0ZHX3N0YXJ0X2lteDUxX2JhYmJhZ2UucGJsYi5pbXhpbWcgPSAkKGJvYXJkKS9m cmVlc2NhbGUtbXg1MS1iYWJiYWdlL2ZsYXNoLWhlYWRlci1pbXg1MS1iYWJiYWdlLmlteGNmZwog RklMRV9iYXJlYm94LWZyZWVzY2FsZS1pbXg1MS1iYWJiYWdlLmltZyA9IHN0YXJ0X2lteDUxX2Jh YmJhZ2UucGJsYi5pbXhpbWcKLS0gCjIuMTMuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmJhcmVib3ggbWFpbGluZyBsaXN0CmJhcmVib3hAbGlzdHMu aW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2JhcmVib3gK