From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail.phycard.co.uk ([217.6.246.34] helo=root.phytec.de) by merlin.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1VClMW-0002Vp-Mw for barebox@lists.infradead.org; Fri, 23 Aug 2013 07:00:53 +0000 Received: from idefix.phytec.de (idefix.phytec.de [172.16.0.10]) by root.phytec.de (Postfix) with ESMTP id 8EA0DBF0EC for ; Fri, 23 Aug 2013 08:52:01 +0200 (CEST) From: =?UTF-8?q?Teresa=20G=C3=A1mez?= Date: Fri, 23 Aug 2013 09:00:20 +0200 Message-Id: <1377241222-6908-1-git-send-email-t.gamez@phytec.de> 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 1/3 for next] AM33xx: Cleanup of lowlevel code To: barebox@lists.infradead.org VGhlcmUgaXMgYSBsb3Qgb2YgZHVwbGljYXRlIGxvd2xldmVsIGNvZGUgYmV0d2VlbiB0aGUKYW0z M3h4IGJvYXJkcy4gTW92ZSB0aGlzIGNvZGUgdG8gYW0zM3h4X2dlbmVyaWMgYW5kCmNyZWF0ZSBz dHJ1Y3RzIGZvciBzZHJhbSBzZXR0aW5ncy4KClNpZ25lZC1vZmYtYnk6IFRlcmVzYSBHw6FtZXog PHQuZ2FtZXpAcGh5dGVjLmRlPgotLS0KIGFyY2gvYXJtL21hY2gtb21hcC9hbTMzeHhfZ2VuZXJp Yy5jICAgICAgICAgICAgICB8ICAxNjYgKysrKysrKysrKysrKysrKysrKysrKwogYXJjaC9hcm0v bWFjaC1vbWFwL2luY2x1ZGUvbWFjaC9hbTMzeHgtc2lsaWNvbi5oIHwgICA0NSArKysrKysKIDIg ZmlsZXMgY2hhbmdlZCwgMjExIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwL2FtMzN4eF9nZW5lcmljLmMgYi9hcmNoL2FybS9tYWNo LW9tYXAvYW0zM3h4X2dlbmVyaWMuYwppbmRleCBhNjUzZWY3Li4xYjQzNzQ5IDEwMDY0NAotLS0g YS9hcmNoL2FybS9tYWNoLW9tYXAvYW0zM3h4X2dlbmVyaWMuYworKysgYi9hcmNoL2FybS9tYWNo LW9tYXAvYW0zM3h4X2dlbmVyaWMuYwpAQCAtMTcxLDMgKzE3MSwxNjkgQEAgc3RhdGljIGludCBh bTMzeHhfZ3Bpb19pbml0KHZvaWQpCiAJcmV0dXJuIDA7CiB9CiBjb3JlZGV2aWNlX2luaXRjYWxs KGFtMzN4eF9ncGlvX2luaXQpOworCisvKiBVQVJUIERlZmluZXMgKi8KKyNkZWZpbmUgVUFSVF9T WVNDRkdfT0ZGU0VUCTB4NTQKKyNkZWZpbmUgVUFSVF9TWVNTVFNfT0ZGU0VUCTB4NTgKKworI2Rl ZmluZSBVQVJUX0NMS19SVU5OSU5HX01BU0sJMHgxCisjZGVmaW5lIFVBUlRfUkVTRVQJCSgweDEg PDwgMSkKKyNkZWZpbmUgVUFSVF9TTUFSVF9JRExFX0VOCSgweDEgPDwgMHgzKQorCit2b2lkIGFt MzN4eF91YXJ0MF9zb2Z0X3Jlc2V0KHZvaWQpCit7CisJaW50IHJlZzsKKworCXJlZyAgPSByZWFk bChBTTMzWFhfVUFSVDBfQkFTRSArIFVBUlRfU1lTQ0ZHX09GRlNFVCk7CisJcmVnIHw9IFVBUlRf UkVTRVQ7CisJd3JpdGVsKHJlZywgKEFNMzNYWF9VQVJUMF9CQVNFICsgVUFSVF9TWVNDRkdfT0ZG U0VUKSk7CisJd2hpbGUgKChyZWFkbChBTTMzWFhfVUFSVDBfQkFTRSArIFVBUlRfU1lTU1RTX09G RlNFVCkgJgorCQlVQVJUX0NMS19SVU5OSU5HX01BU0spICE9IFVBUlRfQ0xLX1JVTk5JTkdfTUFT SykKKwkJOworCisJLyogRGlzYWJsZSBzbWFydCBpZGxlICovCisJcmVnID0gcmVhZGwoKEFNMzNY WF9VQVJUMF9CQVNFICsgVUFSVF9TWVNDRkdfT0ZGU0VUKSk7CisJcmVnIHw9IFVBUlRfU01BUlRf SURMRV9FTjsKKwl3cml0ZWwocmVnLCAoQU0zM1hYX1VBUlQwX0JBU0UgKyBVQVJUX1NZU0NGR19P RkZTRVQpKQorCQk7Cit9CisKKworI2RlZmluZSBWVFBfQ1RSTF9SRUFEWQkJKDB4MSA8PCA1KQor I2RlZmluZSBWVFBfQ1RSTF9FTkFCTEUJCSgweDEgPDwgNikKKyNkZWZpbmUgVlRQX0NUUkxfU1RB UlRfRU4JKDB4MSkKKwordm9pZCBhbTMzeHhfY29uZmlnX3Z0cCh2b2lkKQoreworCXdyaXRlbChy ZWFkbChBTTMzWFhfVlRQMF9DVFJMX1JFRykgfCBWVFBfQ1RSTF9FTkFCTEUsCisJCQlBTTMzWFhf VlRQMF9DVFJMX1JFRyk7CisJd3JpdGVsKHJlYWRsKEFNMzNYWF9WVFAwX0NUUkxfUkVHKSAmICh+ VlRQX0NUUkxfU1RBUlRfRU4pLAorCQkJQU0zM1hYX1ZUUDBfQ1RSTF9SRUcpOworCXdyaXRlbChy ZWFkbChBTTMzWFhfVlRQMF9DVFJMX1JFRykgfCBWVFBfQ1RSTF9TVEFSVF9FTiwKKwkJCUFNMzNY WF9WVFAwX0NUUkxfUkVHKTsKKworCS8qIFBvbGwgZm9yIFJFQURZICovCisJd2hpbGUgKChyZWFk bChBTTMzWFhfVlRQMF9DVFJMX1JFRykgJgorCQkJCVZUUF9DVFJMX1JFQURZKSAhPSBWVFBfQ1RS TF9SRUFEWSkKKwkJOworfQorCit2b2lkIGFtMzN4eF9kZHJfcGh5ZGF0YV9jbWRfbWFjcm8oY29u c3Qgc3RydWN0IGFtMzN4eF9jbWRfY29udHJvbCAqY21kX2N0cmwpCit7CisJd3JpdGVsKGNtZF9j dHJsLT5zbGF2ZV9yYXRpbzAsIEFNMzNYWF9DTUQwX0NUUkxfU0xBVkVfUkFUSU9fMCk7CisJd3Jp dGVsKGNtZF9jdHJsLT5kbGxfbG9ja19kaWZmMCwgQU0zM1hYX0NNRDBfRExMX0xPQ0tfRElGRl8w KTsKKwl3cml0ZWwoY21kX2N0cmwtPmludmVydF9jbGtvdXQwLCBBTTMzWFhfQ01EMF9JTlZFUlRf Q0xLT1VUXzApOworCisJd3JpdGVsKGNtZF9jdHJsLT5zbGF2ZV9yYXRpbzEsIEFNMzNYWF9DTUQx X0NUUkxfU0xBVkVfUkFUSU9fMCk7CisJd3JpdGVsKGNtZF9jdHJsLT5kbGxfbG9ja19kaWZmMSwg QU0zM1hYX0NNRDFfRExMX0xPQ0tfRElGRl8wKTsKKwl3cml0ZWwoY21kX2N0cmwtPmludmVydF9j bGtvdXQxLCBBTTMzWFhfQ01EMV9JTlZFUlRfQ0xLT1VUXzApOworCisJd3JpdGVsKGNtZF9jdHJs LT5zbGF2ZV9yYXRpbzIsIEFNMzNYWF9DTUQyX0NUUkxfU0xBVkVfUkFUSU9fMCk7CisJd3JpdGVs KGNtZF9jdHJsLT5kbGxfbG9ja19kaWZmMiwgQU0zM1hYX0NNRDJfRExMX0xPQ0tfRElGRl8wKTsK Kwl3cml0ZWwoY21kX2N0cmwtPmludmVydF9jbGtvdXQyLCBBTTMzWFhfQ01EMl9JTlZFUlRfQ0xL T1VUXzApOworfQorCisjZGVmaW5lIENNX0VNSUZfU0RSQU1fQ09ORklHCShBTTMzWFhfQ1RSTF9C QVNFICsgMHgxMTApCisKK3ZvaWQgYW0zM3h4X2NvbmZpZ19zZHJhbShjb25zdCBzdHJ1Y3QgYW0z M3h4X2VtaWZfcmVncyAqcmVncykKK3sKKwl3cml0ZWwocmVncy0+ZW1pZl9yZWFkX2xhdGVuY3ks IEFNMzNYWF9FTUlGNF8wX1JFRyhERFJfUEhZX0NUUkxfMSkpOworCXdyaXRlbChyZWdzLT5lbWlm X3JlYWRfbGF0ZW5jeSwKKwkJQU0zM1hYX0VNSUY0XzBfUkVHKEREUl9QSFlfQ1RSTF8xX1NIQURP VykpOworCXdyaXRlbChyZWdzLT5lbWlmX3JlYWRfbGF0ZW5jeSwgQU0zM1hYX0VNSUY0XzBfUkVH KEREUl9QSFlfQ1RSTF8yKSk7CisJd3JpdGVsKHJlZ3MtPmVtaWZfdGltMSwgQU0zM1hYX0VNSUY0 XzBfUkVHKFNEUkFNX1RJTV8xKSk7CisJd3JpdGVsKHJlZ3MtPmVtaWZfdGltMSwgQU0zM1hYX0VN SUY0XzBfUkVHKFNEUkFNX1RJTV8xX1NIQURPVykpOworCXdyaXRlbChyZWdzLT5lbWlmX3RpbTIs IEFNMzNYWF9FTUlGNF8wX1JFRyhTRFJBTV9USU1fMikpOworCXdyaXRlbChyZWdzLT5lbWlmX3Rp bTIsIEFNMzNYWF9FTUlGNF8wX1JFRyhTRFJBTV9USU1fMl9TSEFET1cpKTsKKwl3cml0ZWwocmVn cy0+ZW1pZl90aW0zLCBBTTMzWFhfRU1JRjRfMF9SRUcoU0RSQU1fVElNXzMpKTsKKwl3cml0ZWwo cmVncy0+ZW1pZl90aW0zLCBBTTMzWFhfRU1JRjRfMF9SRUcoU0RSQU1fVElNXzNfU0hBRE9XKSk7 CisKKwlpZiAocmVncy0+enFfY29uZmlnKSB7CisJCS8qCisJCSAqIEEgdmFsdWUgb2YgMHgyODAw IGZvciB0aGUgUkVGIENUUkwgd2lsbCBnaXZlIHVzCisJCSAqIGFib3V0IDU3MHVzIGZvciBhIGRl bGF5LCB3aGljaCB3aWxsIGJlIGxvbmcgZW5vdWdoCisJCSAqIHRvIGNvbmZpZ3VyZSB0aGluZ3Mu CisJCSAqLworCQl3cml0ZWwoMHgyODAwLCBBTTMzWFhfRU1JRjRfMF9SRUcoU0RSQU1fUkVGX0NU UkwpKTsKKwkJd3JpdGVsKHJlZ3MtPnpxX2NvbmZpZywgQU0zM1hYX0VNSUY0XzBfUkVHKFpRX0NP TkZJRykpOworCQl3cml0ZWwocmVncy0+c2RyYW1fY29uZmlnLCBDTV9FTUlGX1NEUkFNX0NPTkZJ Ryk7CisJCXdyaXRlbChyZWdzLT5zZHJhbV9jb25maWcsIEFNMzNYWF9FTUlGNF8wX1JFRyhTRFJB TV9DT05GSUcpKTsKKwkJd3JpdGVsKHJlZ3MtPnNkcmFtX3JlZl9jdHJsLAorCQkJCUFNMzNYWF9F TUlGNF8wX1JFRyhTRFJBTV9SRUZfQ1RSTCkpOworCQl3cml0ZWwocmVncy0+c2RyYW1fcmVmX2N0 cmwsCisJCQlBTTMzWFhfRU1JRjRfMF9SRUcoU0RSQU1fUkVGX0NUUkxfU0hBRE9XKSk7CisKKwl9 CisKKwl3cml0ZWwocmVncy0+c2RyYW1fcmVmX2N0cmwsCisJCQlBTTMzWFhfRU1JRjRfMF9SRUco U0RSQU1fUkVGX0NUUkwpKTsKKwl3cml0ZWwocmVncy0+c2RyYW1fcmVmX2N0cmwsCisJCQlBTTMz WFhfRU1JRjRfMF9SRUcoU0RSQU1fUkVGX0NUUkxfU0hBRE9XKSk7CisJd3JpdGVsKHJlZ3MtPnNk cmFtX2NvbmZpZywgQ01fRU1JRl9TRFJBTV9DT05GSUcpOworfQorCit2b2lkIGFtMzN4eF9jb25m aWdfaW9fY3RybChpbnQgaW9jdHJsKQoreworCXdyaXRlbChpb2N0cmwsIEFNMzNYWF9ERFJfQ01E MF9JT0NUUkwpOworCXdyaXRlbChpb2N0cmwsIEFNMzNYWF9ERFJfQ01EMV9JT0NUUkwpOworCXdy aXRlbChpb2N0cmwsIEFNMzNYWF9ERFJfQ01EMl9JT0NUUkwpOworCXdyaXRlbChpb2N0cmwsIEFN MzNYWF9ERFJfREFUQTBfSU9DVFJMKTsKKwl3cml0ZWwoaW9jdHJsLCBBTTMzWFhfRERSX0RBVEEx X0lPQ1RSTCk7Cit9CisKK3ZvaWQgYW0zM3h4X2NvbmZpZ19kZHJfZGF0YShjb25zdCBzdHJ1Y3Qg YW0zM3h4X2Rkcl9kYXRhICpkYXRhLCBpbnQgbWFjcm9ucikKK3sKKwl1MzIgYmFzZSA9IDB4MDsK KworCWlmIChtYWNyb25yKQorCQliYXNlID0gMHhBNDsKKworCXdyaXRlbChkYXRhLT5yZF9zbGF2 ZV9yYXRpbzAsCisJCQkJKEFNMzNYWF9EQVRBMF9SRF9EUVNfU0xBVkVfUkFUSU9fMCArIGJhc2Up KTsKKwl3cml0ZWwoZGF0YS0+d3JfZHFzX3NsYXZlX3JhdGlvMCwKKwkJCQkoQU0zM1hYX0RBVEEw X1dSX0RRU19TTEFWRV9SQVRJT18wICsgYmFzZSkpOworCXdyaXRlbChkYXRhLT53cmx2bF9pbml0 X3JhdGlvMCwKKwkJCQkoQU0zM1hYX0RBVEEwX1dSTFZMX0lOSVRfUkFUSU9fMCArIGJhc2UpKTsK Kwl3cml0ZWwoZGF0YS0+Z2F0ZWx2bF9pbml0X3JhdGlvMCwKKwkJCQkoQU0zM1hYX0RBVEEwX0dB VEVMVkxfSU5JVF9SQVRJT18wICsgYmFzZSkpOworCXdyaXRlbChkYXRhLT5maWZvX3dlX3NsYXZl X3JhdGlvMCwKKwkJCQkoQU0zM1hYX0RBVEEwX0ZJRk9fV0VfU0xBVkVfUkFUSU9fMCArIGJhc2Up KTsKKwl3cml0ZWwoZGF0YS0+d3Jfc2xhdmVfcmF0aW8wLAorCQkJCShBTTMzWFhfREFUQTBfV1Jf REFUQV9TTEFWRV9SQVRJT18wICsgYmFzZSkpOworCXdyaXRlbChkYXRhLT51c2VfcmFuazBfZGVs YXksCisJCQkJKEFNMzNYWF9EQVRBMF9SQU5LMF9ERUxBWVNfMCArIGJhc2UpKTsKKwl3cml0ZWwo ZGF0YS0+ZGxsX2xvY2tfZGlmZjAsCisJCQkJKEFNMzNYWF9EQVRBMF9ETExfTE9DS19ESUZGXzAg KyBiYXNlKSk7Cit9CisKK3ZvaWQgYW0zMzV4X3NkcmFtX2luaXQoaW50IG1wdXBsbF9NLCBpbnQg b3NjLCBpbnQgaW9jdHJsLAorCQkJY29uc3Qgc3RydWN0IGFtMzN4eF9jbWRfY29udHJvbCAqY21k X2N0cmwsCisJCQljb25zdCBzdHJ1Y3QgYW0zM3h4X2VtaWZfcmVncyAqZW1pZl9yZWdzLAorCQkJ Y29uc3Qgc3RydWN0IGFtMzN4eF9kZHJfZGF0YSAqZGRyX2RhdGEpCit7CisJLyogRG9udCByZWNv bmZpZ3VyZSBTRFJBTSB3aGlsZSBydW5uaW5nIGluIFNEUkFNISAqLworCWlmIChydW5uaW5nX2lu X3NkcmFtKCkpCisJCXJldHVybjsKKworCS8qIFNldHVwIHRoZSBQTExzIGFuZCB0aGUgY2xvY2tz IGZvciB0aGUgcGVyaXBoZXJhbHMgKi8KKwlwbGxfaW5pdChtcHVwbGxfTSwgb3NjKTsKKworCWVu YWJsZV9kZHJfY2xvY2tzKCk7CisKKwlhbTMzeHhfY29uZmlnX3Z0cCgpOworCisJYW0zM3h4X2Rk cl9waHlkYXRhX2NtZF9tYWNybyhjbWRfY3RybCk7CisJYW0zM3h4X2NvbmZpZ19kZHJfZGF0YShk ZHJfZGF0YSwgMCk7CisJYW0zM3h4X2NvbmZpZ19kZHJfZGF0YShkZHJfZGF0YSwgMSk7CisKKwlh bTMzeHhfY29uZmlnX2lvX2N0cmwoaW9jdHJsKTsKKworCXdyaXRlbChyZWFkbChBTTMzWFhfRERS X0lPX0NUUkwpICYKKwkJCQkweGVmZmZmZmZmLCBBTTMzWFhfRERSX0lPX0NUUkwpOworCXdyaXRl bChyZWFkbChBTTMzWFhfRERSX0NLRV9DVFJMKSB8CisJCQkJMHgwMDAwMDAwMSwgQU0zM1hYX0RE Ul9DS0VfQ1RSTCk7CisKKwlhbTMzeHhfY29uZmlnX3NkcmFtKGVtaWZfcmVncyk7CisKKwlhbTMz eHhfdWFydDBfc29mdF9yZXNldCgpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFw L2luY2x1ZGUvbWFjaC9hbTMzeHgtc2lsaWNvbi5oIGIvYXJjaC9hcm0vbWFjaC1vbWFwL2luY2x1 ZGUvbWFjaC9hbTMzeHgtc2lsaWNvbi5oCmluZGV4IGJkNTVkYTQuLmM2ZDcxNzggMTAwNjQ0Ci0t LSBhL2FyY2gvYXJtL21hY2gtb21hcC9pbmNsdWRlL21hY2gvYW0zM3h4LXNpbGljb24uaAorKysg Yi9hcmNoL2FybS9tYWNoLW9tYXAvaW5jbHVkZS9tYWNoL2FtMzN4eC1zaWxpY29uLmgKQEAgLTE5 MSw0ICsxOTEsNDkgQEAKICNkZWZpbmUgQU0zM1hYX01BQ19JRDFfSEkJKEFNMzNYWF9DVFJMX0JB U0UgKyAweDYzYykKICNkZWZpbmUgQU0zM1hYX01BQ19NSUlfU0VMCShBTTMzWFhfQ1RSTF9CQVNF ICsgMHg2NTApCiAKK3N0cnVjdCBhbTMzeHhfY21kX2NvbnRyb2wgeworCXUzMiBzbGF2ZV9yYXRp bzA7CisJdTMyIGRsbF9sb2NrX2RpZmYwOworCXUzMiBpbnZlcnRfY2xrb3V0MDsKKwl1MzIgc2xh dmVfcmF0aW8xOworCXUzMiBkbGxfbG9ja19kaWZmMTsKKwl1MzIgaW52ZXJ0X2Nsa291dDE7CisJ dTMyIHNsYXZlX3JhdGlvMjsKKwl1MzIgZGxsX2xvY2tfZGlmZjI7CisJdTMyIGludmVydF9jbGtv dXQyOworfTsKKworc3RydWN0IGFtMzN4eF9lbWlmX3JlZ3MgeworCXUzMiBlbWlmX3JlYWRfbGF0 ZW5jeTsKKwl1MzIgZW1pZl90aW0xOworCXUzMiBlbWlmX3RpbTI7CisJdTMyIGVtaWZfdGltMzsK Kwl1MzIgc2RyYW1fY29uZmlnOworCXUzMiBzZHJhbV9jb25maWcyOworCXUzMiB6cV9jb25maWc7 CisJdTMyIHNkcmFtX3JlZl9jdHJsOworfTsKKworc3RydWN0IGFtMzN4eF9kZHJfZGF0YSB7CisJ dTMyIHJkX3NsYXZlX3JhdGlvMDsKKwl1MzIgd3JfZHFzX3NsYXZlX3JhdGlvMDsKKwl1MzIgd3Js dmxfaW5pdF9yYXRpbzA7CisJdTMyIGdhdGVsdmxfaW5pdF9yYXRpbzA7CisJdTMyIGZpZm9fd2Vf c2xhdmVfcmF0aW8wOworCXUzMiB3cl9zbGF2ZV9yYXRpbzA7CisJdTMyIHVzZV9yYW5rMF9kZWxh eTsKKwl1MzIgZGxsX2xvY2tfZGlmZjA7Cit9OworCit2b2lkIGFtMzN4eF91YXJ0MF9zb2Z0X3Jl c2V0KHZvaWQpOwordm9pZCBhbTMzeHhfY29uZmlnX3Z0cCh2b2lkKTsKK3ZvaWQgYW0zM3h4X2Rk cl9waHlkYXRhX2NtZF9tYWNybyhjb25zdCBzdHJ1Y3QgYW0zM3h4X2NtZF9jb250cm9sICpjbWRf Y3RybCk7Cit2b2lkIGFtMzN4eF9jb25maWdfaW9fY3RybChpbnQgaW9jdHJsKTsKK3ZvaWQgYW0z M3h4X2NvbmZpZ19zZHJhbShjb25zdCBzdHJ1Y3QgYW0zM3h4X2VtaWZfcmVncyAqcmVncyk7Cit2 b2lkIGFtMzN4eF9jb25maWdfZGRyX2RhdGEoY29uc3Qgc3RydWN0IGFtMzN4eF9kZHJfZGF0YSAq ZGF0YSwgaW50IG1hY3JvbnIpOwordm9pZCBhbTMzNXhfc2RyYW1faW5pdChpbnQgbXB1cGxsX00s IGludCBvc2MsIGludCBpb2N0cmwsCisJCQljb25zdCBzdHJ1Y3QgYW0zM3h4X2NtZF9jb250cm9s ICpjbWRfY3RybCwKKwkJCWNvbnN0IHN0cnVjdCBhbTMzeHhfZW1pZl9yZWdzICplbWlmX3JlZ3Ms CisJCQljb25zdCBzdHJ1Y3QgYW0zM3h4X2Rkcl9kYXRhICpkZHJfZGF0YSk7CisKICNlbmRpZgot LSAKMS43LjAuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmJhcmVib3ggbWFpbGluZyBsaXN0CmJhcmVib3hAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2JhcmVib3gK