From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Miao Subject: Re: [PATCH 3/4] ASoC: support pxa168 ssp in ASoC Date: Tue, 13 Apr 2010 01:32:24 +0800 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qy0-f191.google.com (mail-qy0-f191.google.com [209.85.221.191]) by alsa0.perex.cz (Postfix) with ESMTP id B75B8246AD for ; Mon, 12 Apr 2010 19:32:45 +0200 (CEST) Received: by qyk29 with SMTP id 29so6052905qyk.2 for ; Mon, 12 Apr 2010 10:32:44 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: alsa-devel-bounces@alsa-project.org Errors-To: alsa-devel-bounces@alsa-project.org To: Haojian Zhuang Cc: alsa-devel@alsa-project.org, Mark Brown , linux-arm-kernel , Liam Girdwood List-Id: alsa-devel@alsa-project.org T24gV2VkLCBNYXIgMzEsIDIwMTAgYXQgODo0OCBQTSwgSGFvamlhbiBaaHVhbmcKPGhhb2ppYW4u emh1YW5nQGdtYWlsLmNvbT4gd3JvdGU6Cj4gRnJvbSA3NmRjYmYxNjVmNzJhNjIwZDg0NjBmYzQz MzUxMTc5Mzg4ZmNiNDQwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQo+IEZyb206IEhhb2ppYW4g Wmh1YW5nIDxoYW9qaWFuLnpodWFuZ0BtYXJ2ZWxsLmNvbT4KPiBEYXRlOiBXZWQsIDE3IE1hciAy MDEwIDE3OjMxOjA0IC0wNDAwCj4gU3ViamVjdDogW1BBVENIXSBBU29DOiBzdXBwb3J0IHB4YTE2 OCBzc3AgaW4gQVNvQwo+Cj4gU3VwcG9ydCBweGExNjggc3NwIGluIEFTb0MuIFRoZSBTU1AgYml0 IGNsb2NrIG1lY2hhbmlzbSBpcyB0b3RhbGx5IGRpZmZlcmVudAo+IGZyb20gcHhhMnh4IHNlcmll cy4KPgo+IFNpZ25lZC1vZmYtYnk6IEhhb2ppYW4gWmh1YW5nIDxoYW9qaWFuLnpodWFuZ0BtYXJ2 ZWxsLmNvbT4KPiAtLS0KPiDCoGFyY2gvYXJtL21hY2gtbW1wL2luY2x1ZGUvbWFjaC9yZWdzLW1w bXUuaCB8IMKgIDQ4ICsrKysrKysrCj4gwqBzb3VuZC9zb2MvcHhhL0tjb25maWcgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8IMKgIMKgNiArLQo+IMKgc291bmQvc29jL3B4YS9NYWtl ZmlsZSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgMiArCj4gwqBzb3VuZC9z b2MvcHhhL3B4YTE2OC1zc3AuYyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgMTY2ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysKPiDCoHNvdW5kL3NvYy9weGEvcHhhMTY4LXNzcC5oIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgNjQgKysrKysrKysrKysKPiDCoDUgZmlsZXMgY2hh bmdlZCwgMjg1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0pCj4gwqBjcmVhdGUgbW9kZSAx MDA2NDQgYXJjaC9hcm0vbWFjaC1tbXAvaW5jbHVkZS9tYWNoL3JlZ3MtbXBtdS5oCj4gwqBjcmVh dGUgbW9kZSAxMDA2NDQgc291bmQvc29jL3B4YS9weGExNjgtc3NwLmMKPiDCoGNyZWF0ZSBtb2Rl IDEwMDY0NCBzb3VuZC9zb2MvcHhhL3B4YTE2OC1zc3AuaAo+Cj4gZGlmZiAtLWdpdCBhL2FyY2gv YXJtL21hY2gtbW1wL2luY2x1ZGUvbWFjaC9yZWdzLW1wbXUuaAo+IGIvYXJjaC9hcm0vbWFjaC1t bXAvaW5jbHVkZS9tYWNoL3JlZ3MtbXBtdS5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRl eCAwMDAwMDAwLi4wZDU3MjM2Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2FyY2gvYXJtL21hY2gt bW1wL2luY2x1ZGUvbWFjaC9yZWdzLW1wbXUuaAo+IEBAIC0wLDAgKzEsNDggQEAKPiArLyoKPiAr ICogbGludXgvYXJjaC9hcm0vbWFjaC1tbXAvaW5jbHVkZS9tYWNoL3JlZ3MtbXBtdS5oCj4gKyAq Cj4gKyAqIMKgIE1haW4gUG93ZXIgTWFuYWdlbWVudCBVbml0Cj4gKyAqCj4gKyAqIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5Cj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgdmVyc2lvbiAyIGFzCj4gKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgX19BU01fTUFDSF9SRUdTX01QTVVfSAo+ ICsjZGVmaW5lIF9fQVNNX01BQ0hfUkVHU19NUE1VX0gKPiArCj4gKyNpbmNsdWRlIDxtYWNoL2Fk ZHItbWFwLmg+Cj4gKwo+ICsjZGVmaW5lIE1QTVVfVklSVF9CQVNFIChBUEJfVklSVF9CQVNFICsg MHg1MDAwMCkKPiArI2RlZmluZSBNUE1VX1JFRyhvZmYpIMKgKE1QTVVfVklSVF9CQVNFICsgKG9m ZikpCj4gKwo+ICsjZGVmaW5lIE1QTVVfQ1BDUiDCoCDCoCDCoE1QTVVfUkVHKDB4MDAwMCkKPiAr I2RlZmluZSBNUE1VX0ZDQ1IgwqAgwqAgwqBNUE1VX1JFRygweDAwMDgpCj4gKyNkZWZpbmUgTVBN VV9QT0NSIMKgIMKgIMKgTVBNVV9SRUcoMHgwMDBjKQo+ICsjZGVmaW5lIE1QTVVfUE9TUiDCoCDC oCDCoE1QTVVfUkVHKDB4MDAxMCkKPiArI2RlZmluZSBNUE1VX1NVQ0NSIMKgIMKgIE1QTVVfUkVH KDB4MDAxNCkKPiArI2RlZmluZSBNUE1VX1ZSQ1IgwqAgwqAgwqBNUE1VX1JFRygweDAwMTgpCj4g KyNkZWZpbmUgTVBNVV9PSENSIMKgIMKgIMKgTVBNVV9SRUcoMHgwMDFjKQo+ICsjZGVmaW5lIE1Q TVVfR1BDUiDCoCDCoCDCoE1QTVVfUkVHKDB4MDAzMCkKPiArI2RlZmluZSBNUE1VX1BMTDJDUiDC oCDCoE1QTVVfUkVHKDB4MDAzNCkKPiArI2RlZmluZSBNUE1VX1NDQ1IgwqAgwqAgwqBNUE1VX1JF RygweDAwMzgpCj4gKyNkZWZpbmUgTVBNVV9DV1VDUk0gwqAgwqBNUE1VX1JFRygweDAwNGMpCj4g KyNkZWZpbmUgTVBNVV9QTEwxX1JFRzEgTVBNVV9SRUcoMHgwMDUwKQo+ICsjZGVmaW5lIE1QTVVf UExMMV9SRUcyIE1QTVVfUkVHKDB4MDA1NCkKPiArI2RlZmluZSBNUE1VX1BMTDFfU1NDIMKgTVBN VV9SRUcoMHgwMDU4KQo+ICsjZGVmaW5lIE1QTVVfUExMMl9SRUcxIE1QTVVfUkVHKDB4MDA2MCkK PiArI2RlZmluZSBNUE1VX1BMTDJfUkVHMiBNUE1VX1JFRygweDAwNjQpCj4gKyNkZWZpbmUgTVBN VV9QTEwyX1NTQyDCoE1QTVVfUkVHKDB4MDA2OCkKPiArI2RlZmluZSBNUE1VX1RTIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgTVBNVV9SRUcoMHgwMDgwKQo+ICsjZGVmaW5lIE1QTVVfV0RUUENSIMKg IMKgTVBNVV9SRUcoMHgwMjAwKQo+ICsjZGVmaW5lIE1QTVVfQVBDUiDCoCDCoCDCoE1QTVVfUkVH KDB4MTAwMCkKPiArI2RlZmluZSBNUE1VX0FQU1IgwqAgwqAgwqBNUE1VX1JFRygweDEwMDQpCj4g KyNkZWZpbmUgTVBNVV9BUFJSIMKgIMKgIMKgTVBNVV9SRUcoMHgxMDIwKQo+ICsjZGVmaW5lIE1Q TVVfQUNHUiDCoCDCoCDCoE1QTVVfUkVHKDB4MTAyNCkKPiArI2RlZmluZSBNUE1VX0FSU1IgwqAg wqAgwqBNUE1VX1JFRygweDEwMjgpCj4gKyNkZWZpbmUgTVBNVV9BV1VDUlMgwqAgwqBNUE1VX1JF RygweDEwNDgpCj4gKyNkZWZpbmUgTVBNVV9BV1VDUk0gwqAgwqBNUE1VX1JFRygweDEwNGMpCj4g KyNkZWZpbmUgTVBNVV9BU1lTRFIgwqAgwqBNUE1VX1JFRygweDEwNTApCj4gKyNkZWZpbmUgTVBN VV9BU1NQRFIgwqAgwqBNUE1VX1JFRygweDEwNTQpCj4gKwo+ICsjZW5kaWYgLyogX19BU01fTUFD SF9SRUdTX0FQTVVfSCAqLwo+IGRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL0tjb25maWcgYi9z b3VuZC9zb2MvcHhhL0tjb25maWcKPiBpbmRleCA3YmUxZDVmLi4yODZkNTJhIDEwMDY0NAo+IC0t LSBhL3NvdW5kL3NvYy9weGEvS2NvbmZpZwo+ICsrKyBiL3NvdW5kL3NvYy9weGEvS2NvbmZpZwo+ IEBAIC0xLDYgKzEsNiBAQAo+IMKgY29uZmlnIFNORF9QWEEyWFhfU09DCj4gwqAgwqAgwqAgwqB0 cmlzdGF0ZSAiU29DIEF1ZGlvIGZvciB0aGUgSW50ZWwgUFhBMnh4IGNoaXAiCj4gLSDCoCDCoCDC oCBkZXBlbmRzIG9uIEFSQ0hfUFhBCj4gKyDCoCDCoCDCoCBkZXBlbmRzIG9uIEFSQ0hfUFhBIHx8 IEFSQ0hfTU1QCj4gwqAgwqAgwqAgwqBzZWxlY3QgU05EX1BYQTJYWF9MSUIKPiDCoCDCoCDCoCDC oGhlbHAKPiDCoCDCoCDCoCDCoCDCoFNheSBZIG9yIE0gaWYgeW91IHdhbnQgdG8gYWRkIHN1cHBv cnQgZm9yIGNvZGVjcyBhdHRhY2hlZCB0bwo+IEBAIC0yNSw2ICsyNSwxMCBAQCBjb25maWcgU05E X1BYQTJYWF9TT0NfU1NQCj4gwqAgwqAgwqAgwqB0cmlzdGF0ZQo+IMKgIMKgIMKgIMKgc2VsZWN0 IFBYQV9TU1AKPgo+ICtjb25maWcgU05EX1BYQTE2OF9TT0NfU1NQCj4gKyDCoCDCoCDCoCB0cmlz dGF0ZQo+ICsgwqAgwqAgwqAgc2VsZWN0IFBYQV9TU1AKPiArCj4gwqBjb25maWcgU05EX1BYQTJY WF9TT0NfQ09SR0kKPiDCoCDCoCDCoCDCoHRyaXN0YXRlICJTb0MgQXVkaW8gc3VwcG9ydCBmb3Ig U2hhcnAgWmF1cnVzIFNMLUM3eDAiCj4gwqAgwqAgwqAgwqBkZXBlbmRzIG9uIFNORF9QWEEyWFhf U09DICYmIFBYQV9TSEFSUF9DN3h4Cj4gZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9weGEvTWFrZWZp bGUgYi9zb3VuZC9zb2MvcHhhL01ha2VmaWxlCj4gaW5kZXggMzNjMTU3OS4uYTc0ZTZjOSAxMDA2 NDQKPiAtLS0gYS9zb3VuZC9zb2MvcHhhL01ha2VmaWxlCj4gKysrIGIvc291bmQvc29jL3B4YS9N YWtlZmlsZQo+IEBAIC0zLDExICszLDEzIEBAIHNuZC1zb2MtcHhhMnh4LW9ianMgOj0gcHhhMnh4 LXBjbS5vCj4gwqBzbmQtc29jLXB4YTJ4eC1hYzk3LW9ianMgOj0gcHhhMnh4LWFjOTcubwo+IMKg c25kLXNvYy1weGEyeHgtaTJzLW9ianMgOj0gcHhhMnh4LWkycy5vCj4gwqBzbmQtc29jLXB4YTJ4 eC1zc3Atb2JqcyA6PSBweGEtc3NwLm8gcHhhMnh4LXNzcC5vCj4gK3NuZC1zb2MtcHhhMTY4LXNz cC1vYmpzIDo9IHB4YS1zc3AubyBweGExNjgtc3NwLm8KPgo+IMKgb2JqLSQoQ09ORklHX1NORF9Q WEEyWFhfU09DKSArPSBzbmQtc29jLXB4YTJ4eC5vCj4gwqBvYmotJChDT05GSUdfU05EX1BYQTJY WF9TT0NfQUM5NykgKz0gc25kLXNvYy1weGEyeHgtYWM5Ny5vCj4gwqBvYmotJChDT05GSUdfU05E X1BYQTJYWF9TT0NfSTJTKSArPSBzbmQtc29jLXB4YTJ4eC1pMnMubwo+IMKgb2JqLSQoQ09ORklH X1NORF9QWEEyWFhfU09DX1NTUCkgKz0gc25kLXNvYy1weGEyeHgtc3NwLm8KPiArb2JqLSQoQ09O RklHX1NORF9QWEExNjhfU09DX1NTUCkgKz0gc25kLXNvYy1weGExNjgtc3NwLm8KPgo+IMKgIyBQ WEEgTWFjaGluZSBTdXBwb3J0Cj4gwqBzbmQtc29jLWNvcmdpLW9ianMgOj0gY29yZ2kubwo+IGRp ZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL3B4YTE2OC1zc3AuYyBiL3NvdW5kL3NvYy9weGEvcHhh MTY4LXNzcC5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5kMjhkMThh Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3NvdW5kL3NvYy9weGEvcHhhMTY4LXNzcC5jCj4gQEAg LTAsMCArMSwxNjYgQEAKPiArLyoKPiArICogcHhhMTY4LXNzcC5jIMKgLS0gwqBBTFNBIFNvYyBB dWRpbyBMYXllcgo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgMjAwOS0yMDEwIE1hcnZlbGwgSW50ZXJu YXRpb25hbCBMdGQuCj4gKyAqIMKgIMKgIEhhb2ppYW4gWmh1YW5nIDxoYW9qaWFuLnpodWFuZ0Bt YXJ2ZWxsLmNvbT4KPiArICoKPiArICogwqBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgwqBpdCBhbmQvb3IgbW9kaWZ5IGl0Cj4gKyAqIMKgdW5kZXIg wqB0aGUgdGVybXMgb2YgwqB0aGUgR05VIEdlbmVyYWwgwqBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkgdGhlCj4gKyAqIMKgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyDCoGVpdGhlciB2 ZXJzaW9uIDIgb2YgdGhlIMKgTGljZW5zZSwgb3IgKGF0IHlvdXIKPiArICogwqBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgo+ICsgKgo+ICsgKiBUT0RPOgo+ICsgKiDCoG8gVGVzdCBuZXR3b3Jr IG1vZGUKPiArICovCj4gKwo+ICsjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Cj4gKyNpbmNsdWRl IDxsaW51eC9tb2R1bGUuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgo+ ICsjaW5jbHVkZSA8bGludXgvY2xrLmg+Cj4gKwo+ICsjaW5jbHVkZSA8c291bmQvY29yZS5oPgo+ ICsjaW5jbHVkZSA8c291bmQvc29jLmg+Cj4gKyNpbmNsdWRlIDxzb3VuZC9wY20uaD4KPiArI2lu Y2x1ZGUgPHNvdW5kL3BjbV9wYXJhbXMuaD4KPiArI2luY2x1ZGUgPHNvdW5kL3B4YTJ4eC1saWIu aD4KPiArCj4gKyNpbmNsdWRlIDxtYWNoL2hhcmR3YXJlLmg+Cj4gKyNpbmNsdWRlIDxtYWNoL2Rt YS5oPgo+ICsjaW5jbHVkZSA8bWFjaC9yZWdzLWFwYmMuaD4KPiArI2luY2x1ZGUgPG1hY2gvcmVn cy1hcG11Lmg+Cj4gKyNpbmNsdWRlIDxtYWNoL3JlZ3MtbXBtdS5oPgo+ICsjaW5jbHVkZSA8cGxh dC9zc3AuaD4KPiArCj4gKyNpbmNsdWRlICJweGEyeHgtcGNtLmgiCj4gKyNpbmNsdWRlICJweGEx Njgtc3NwLmgiCj4gKyNpbmNsdWRlICJweGEtc3NwLmgiCj4gKwo+ICsvKgo+ICsgKiBTZXQgdGhl IFNTUCBwb3J0cyBTWVNDTEsgb25seSBmcm9tIEF1ZGlvIFNZU0NMSy4KPiArICovCj4gK3N0YXRp YyBpbnQgcHhhMTY4X3NzcF9zZXRfZGFpX3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9k YWksIGludCBjbGtfaWQsCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoHVuc2lnbmVkIGludCBmcmVxLCBpbnQgZGlyKQo+ICt7Cj4gKyDCoCDC oCDCoCBzdHJ1Y3Qgc3NwX3ByaXYgKnByaXYgPSBjcHVfZGFpLT5wcml2YXRlX2RhdGE7Cj4gKyDC oCDCoCDCoCBzdHJ1Y3Qgc3NwX2RldmljZSAqc3NwID0gcHJpdi0+c3NwOwo+ICsgwqAgwqAgwqAg dW5zaWduZWQgaW50IHNzY3IwLCBkYXRhLCBhc3lzZHIsIGFzc3BkcjsKPiArCj4gKyDCoCDCoCDC oCBkZXZfZGJnKCZzc3AtPnBkZXYtPmRldiwgIiVzIGlkOiAlZCwgY2xrX2lkICVkLCBmcmVxICV1 XG4iLAo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgX19mdW5jX18sIGNwdV9kYWktPmlkLCBjbGtf aWQsIGZyZXEpOwo+ICsKPiArIMKgIMKgIMKgIC8qIGZyZXEgaXMgdGhlIGluZGV4IG9mIG1jbGtf Y29uZiB0YWJsZSAqLwo+ICsgwqAgwqAgwqAgaWYgKChmcmVxIDwgMCkgfHwgKGZyZXEgPj0gQVJS QVlfU0laRShtY2xrX2NvbmYpKSkgewo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgZGV2X3dhcm4o JnNzcC0+cGRldi0+ZGV2LCAiV3JvbmcgZnJlcXVlbmN5IGluZGV4OiVkXG4iLCBmcmVxKTsKPiAr IMKgIMKgIMKgIMKgIMKgIMKgIMKgIHJldHVybiAtRUlOVkFMOwo+ICsgwqAgwqAgwqAgfQo+ICsg wqAgwqAgwqAgYXN5c2RyID0gKG1jbGtfY29uZltmcmVxXS5tY2xrX251bSA8PCAxNikKPiArIMKg IMKgIMKgIMKgIMKgIMKgIMKgIHwgbWNsa19jb25mW2ZyZXFdLm1jbGtfZGVub207Cj4gKyDCoCDC oCDCoCBhc3NwZHIgPSAwOwo+ICsgwqAgwqAgwqAgLyogSWYgQVNZU0NMSyBpcyBzdXBwbGllZCBi eSBweGExNjgsIEFTU1BEUiBzaG91bGQgYmUgY29uZmlndXJlZC4gKi8KPiArIMKgIMKgIMKgIGlm IChkaXIgPT0gU05EX1NPQ19DTE9DS19PVVQpCj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCBhc3Nw ZHIgPSAobWNsa19jb25mW2ZyZXFdLmJjbGtfbnVtIDw8IDE2KQo+ICsgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgfCBtY2xrX2NvbmZbZnJlcV0uYmNsa19kZW5vbTsKPiArCj4gKyDC oCDCoCDCoCBweGFfc3NwX2Rpc2FibGUoc3NwKTsKPiArIMKgIMKgIMKgIGNsa19kaXNhYmxlKHNz cC0+Y2xrKTsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAvKiBTU1AgcG9ydCBpbnRlcm5hbCBj bG9jayAqLwo+ICsKPiArIMKgIMKgIMKgIC8qIGNsZWFyIEVDUywgTkNTLCBNT0QsIEFDUyAqLwo+ ICsgwqAgwqAgwqAgc3NjcjAgPSBweGFfc3NwX3JlYWRfcmVnKHNzcCwgU1NDUjApOwo+ICsgwqAg wqAgwqAgZGF0YSA9IHNzY3IwICYgfihTU0NSMF9FQ1MgfCBTU0NSMF9OQ1MgfCBTU0NSMF9NT0Qg fCBTU0NSMF9BQ1MpOwo+ICsgwqAgwqAgwqAgaWYgKHNzY3IwICE9IGRhdGEpCj4gKyDCoCDCoCDC oCDCoCDCoCDCoCDCoCBweGFfc3NwX3dyaXRlX3JlZyhzc3AsIFNTQ1IwLCBkYXRhKTsKPiArCj4g KyDCoCDCoCDCoCAvKiB1cGRhdGUgZGl2aWRlciByZWdpc3RlciBpbiBNUE1VICovCj4gKyDCoCDC oCDCoCBfX3Jhd193cml0ZWwoYXN5c2RyLCBNUE1VX0FTWVNEUik7Cj4gKyDCoCDCoCDCoCBfX3Jh d193cml0ZWwoYXNzcGRyLCBNUE1VX0FTU1BEUik7Cj4gKwo+ICsgwqAgwqAgwqAgY2xrX2VuYWJs ZShzc3AtPmNsayk7IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIFNTUCBwb3J0IGludGVy bmFsIGNsb2NrICovCj4gKyDCoCDCoCDCoCBweGFfc3NwX2VuYWJsZShzc3ApOwo+ICsgwqAgwqAg wqAgcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgcHhhMTY4X3NzcF9od19mcmVlKHN0 cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAo+ICsgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCj4gK3sKPiAr IMKgIMKgIMKgIHN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnBy aXZhdGVfZGF0YTsKPiArIMKgIMKgIMKgIHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0 ZC0+ZGFpLT5jcHVfZGFpOwo+ICsgwqAgwqAgwqAgc3RydWN0IHNzcF9wcml2ICpwcml2ID0gY3B1 X2RhaS0+cHJpdmF0ZV9kYXRhOwo+ICsgwqAgwqAgwqAgc3RydWN0IHNzcF9kZXZpY2UgKnNzcCA9 IHByaXYtPnNzcDsKPiArCj4gKyDCoCDCoCDCoCBweGFfc3NwX2Rpc2FibGUoc3NwKTsKPiArIMKg IMKgIMKgIC8qIHVwZGF0ZSBkaXZpZGVyIHJlZ2lzdGVyIGluIE1QTVUgKi8KPiArIMKgIMKgIMKg IF9fcmF3X3dyaXRlbCgwLCBNUE1VX0FTWVNEUik7Cj4gKyDCoCDCoCDCoCBfX3Jhd193cml0ZWwo MCwgTVBNVV9BU1NQRFIpOwo+ICsgwqAgwqAgwqAgcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRp YyBzdHJ1Y3Qgc25kX3NvY19kYWlfb3BzIHB4YTE2OF9zc3BfZGFpX29wcyA9IHsKPiArIMKgIMKg IMKgIC5od19mcmVlIMKgIMKgIMKgIMKgPSBweGExNjhfc3NwX2h3X2ZyZWUsCj4gKyDCoCDCoCDC oCAuc2V0X3N5c2NsayDCoCDCoCA9IHB4YTE2OF9zc3Bfc2V0X2RhaV9zeXNjbGssCj4gK307Cj4g Kwo+ICsjZGVmaW5lIFBYQTE2OF9TU1BfUkFURVMgwqAgwqAgwqAgU05EUlZfUENNX1JBVEVfODAw MF85NjAwMAo+ICsjZGVmaW5lIFBYQTE2OF9TU1BfRk9STUFUUyDCoCDCoCAoU05EUlZfUENNX0ZN VEJJVF9TMTZfTEUgfCDCoCDCoCDCoFwKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIFNORFJWX1BDTV9GTVRCSVRfUzI0X0xFIHwgwqAgwqAgwqAgXAo+ICsg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgU05EUlZfUENNX0ZN VEJJVF9TMzJfTEUpCj4gKwo+ICsjZGVmaW5lIFBYQTE2OF9TU1BfREFJKF9pZCkgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBcCj4gK3sgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBcCj4gKyDCoCDCoCDCoCAubmFtZSDCoCA9ICJw eGExNjgtc3NwIiwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgXAo+ICsgwqAgwqAgwqAgLmlkIMKgIMKgID0gX2lkLCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFwKPiArIMKgIMKgIMKgIC5w bGF5YmFjayA9IHsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgXAo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLmNoYW5uZWxzX21p biA9IDEsIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgXAo+ICsg wqAgwqAgwqAgwqAgwqAgwqAgwqAgLmNoYW5uZWxzX21heCA9IDIsIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgXAo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLnJh dGVzID0gUFhBMTY4X1NTUF9SQVRFUywgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBc Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCAuZm9ybWF0cyA9IFBYQTE2OF9TU1BfRk9STUFUUywg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBcCj4gKyDCoCDCoCDCoCB9LCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoFwKPiArIMKgIMKgIMKgIC5jYXB0dXJlID0geyDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFwKPiArIMKgIMKg IMKgIMKgIMKgIMKgIMKgIC5jaGFubmVsc19taW4gPSAxLCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoFwKPiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC5jaGFubmVs c19tYXggPSAyLCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFwK PiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC5yYXRlcyA9IFBYQTE2OF9TU1BfUkFURVMsIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgXAo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLmZv cm1hdHMgPSBQWEExNjhfU1NQX0ZPUk1BVFMsIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgXAo+ ICsgwqAgwqAgwqAgfSwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBcCj4gKyDCoCDCoCDCoCAub3Bz ID0gJnB4YTE2OF9zc3BfZGFpX29wcywgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgXAo+ICt9Cj4gKwo+ICtzdHJ1Y3Qgc25kX3NvY19kYWkgcHhhMTY4X3NzcF9kYWlb XSA9IHsKPiArIMKgIMKgIMKgIFBYQTE2OF9TU1BfREFJKFBYQTE2OF9EQUlfU1NQMSksCj4gKyDC oCDCoCDCoCBQWEExNjhfU1NQX0RBSShQWEExNjhfREFJX1NTUDIpLAo+ICsgwqAgwqAgwqAgUFhB MTY4X1NTUF9EQUkoUFhBMTY4X0RBSV9TU1AzKSwKPiArIMKgIMKgIMKgIFBYQTE2OF9TU1BfREFJ KFBYQTE2OF9EQUlfU1NQNCksCj4gKyDCoCDCoCDCoCBQWEExNjhfU1NQX0RBSShQWEExNjhfREFJ X1NTUDUpLAo+ICt9Owo+ICtFWFBPUlRfU1lNQk9MX0dQTChweGExNjhfc3NwX2RhaSk7Cj4gKwo+ ICtzdGF0aWMgaW50IF9faW5pdCBweGExNjhfc3NwX2luaXQodm9pZCkKPiArewo+ICsgwqAgwqAg wqAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWk7Cj4gKyDCoCDCoCDCoCBpbnQgaSwgcmV0Owo+ICsK PiArIMKgIMKgIMKgIGZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHB4YTE2OF9zc3BfZGFpKTsg aSsrKSB7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCBkYWkgPSAmcHhhMTY4X3NzcF9kYWlbaV07 Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCByZXQgPSBweGFfc3NwX3JlZ2lzdGVyX2RhaShkYWkp Owo+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgaWYgKHJldCkKPiArIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIHJldHVybiByZXQ7Cj4gKyDCoCDCoCDCoCB9Cj4gKyDCoCDCoCDCoCBy ZXR1cm4gcmV0Owo+ICt9Cj4gK21vZHVsZV9pbml0KHB4YTE2OF9zc3BfaW5pdCk7Cj4gKwo+ICtz dGF0aWMgdm9pZCBfX2V4aXQgcHhhMTY4X3NzcF9leGl0KHZvaWQpCj4gK3sKPiArIMKgIMKgIMKg IHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpID0gTlVMTDsKPiArIMKgIMKgIMKgIGludCBpOwo+ICsK PiArIMKgIMKgIMKgIGZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHB4YTE2OF9zc3BfZGFpKTsg aSsrKSB7Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCBkYWkgPSAmcHhhMTY4X3NzcF9kYWlbaV07 Cj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCBzbmRfc29jX3VucmVnaXN0ZXJfZGFpKGRhaSk7Cj4g KyDCoCDCoCDCoCB9Cj4gK30KPiArbW9kdWxlX2V4aXQocHhhMTY4X3NzcF9leGl0KTsKPiArCj4g Ky8qIE1vZHVsZSBpbmZvcm1hdGlvbiAqLwo+ICtNT0RVTEVfQVVUSE9SKCJIYW9qaWFuIFpodWFu ZyA8aGFvamlhbi56aHVhbmdAbWFydmVsbC5jb20+Iik7Cj4gK01PRFVMRV9ERVNDUklQVElPTigi UFhBMTY4IFNTUCBTb0MgSW50ZXJmYWNlIik7Cj4gK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKPiAr Cj4gZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9weGEvcHhhMTY4LXNzcC5oIGIvc291bmQvc29jL3B4 YS9weGExNjgtc3NwLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLmJm NzMxMzcKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvc291bmQvc29jL3B4YS9weGExNjgtc3NwLmgK PiBAQCAtMCwwICsxLDY0IEBACj4gKy8qCj4gKyAqIEFTb0MgUFhBMTY4IFNTUCBwb3J0IHN1cHBv cnQKPiArICoKPiArICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKPiArICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKPiArICogcHVibGlzaGVk IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCj4gKyAqLwo+ICsKPiArI2lmbmRlZiBf UFhBMTY4X1NTUF9ICj4gKyNkZWZpbmUgX1BYQTE2OF9TU1BfSAo+ICsKPiArLyogcHhhIERBSSBT U1AgSURzICovCj4gKyNkZWZpbmUgUFhBMTY4X0RBSV9TU1AxIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgMAo+ICsjZGVmaW5lIFBYQTE2OF9EQUlfU1NQMiDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoDEKPiArI2RlZmluZSBQWEExNjhfREFJX1NTUDMgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAyCj4gKyNkZWZpbmUgUFhBMTY4X0RBSV9TU1A0 IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgMwo+ICsjZGVmaW5lIFBYQTE2OF9E QUlfU1NQNSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDQKPiArCj4gKy8qIFBY QTE2OCBTU1AgU1lTQ0xLIHNvdXJjZSAqLwo+ICsjZGVmaW5lIFBYQTE2OF9BU1lTQ0xLX01BU1RF UiDCoCDCoCDCoCDCoCDCoDAgwqAgwqAgwqAgLyogQVNZU0NMSyBtYXN0ZXIgLS0gcHhhMTY4ICov Cj4gKyNkZWZpbmUgUFhBMTY4X0FTWVNDTEtfU0xBVkUgwqAgwqAgwqAgwqAgwqAgMSDCoCDCoCDC oCAvKiBBU1lTQ0xLIHNsYXZlIC0tIHB4YTE2OCAqLwo+ICsKPiArc3RydWN0IHB4YTE2OF9zc3Bf bWNsayB7Cj4gKyDCoCDCoCDCoCB1bnNpZ25lZCBpbnQgwqAgwqByYXRlOwo+ICsgwqAgwqAgwqAg dW5zaWduZWQgaW50IMKgIMKgZm9ybWF0Owo+ICsgwqAgwqAgwqAgdW5zaWduZWQgaW50IMKgIMKg Y2hhbm5lbDsKPiArIMKgIMKgIMKgIHVuc2lnbmVkIGludCDCoCDCoG1jbGs7Cj4gKyDCoCDCoCDC oCB1bnNpZ25lZCBpbnQgwqAgwqBtY2xrX2Rlbm9tOwo+ICsgwqAgwqAgwqAgdW5zaWduZWQgaW50 IMKgIMKgbWNsa19udW07Cj4gKyDCoCDCoCDCoCB1bnNpZ25lZCBpbnQgwqAgwqBiY2xrOwo+ICsg wqAgwqAgwqAgdW5zaWduZWQgaW50IMKgIMKgYmNsa19kZW5vbTsKPiArIMKgIMKgIMKgIHVuc2ln bmVkIGludCDCoCDCoGJjbGtfbnVtOwo+ICt9Owo+ICsKPiArLyoKPiArICogVGhpcyB0YWJsZSBp cyB1c2VkIHdoaWxlIENQVSBpcyBjbG9jayBtYXN0ZXIuCj4gKyAqIE1DTEsgPSAzMTJNSHogKiBB U1lTQ0xLX0RFTk9NIC8gQVNZU0NMS19OVU0KPiArICogQkNMSyA9IE1DTEsgKiBTU1BTQ0xLX0RF Tk9NIC8gU1NQU0NMS19OVU0KPiArICovCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHhhMTY4X3Nz cF9tY2xrIG1jbGtfY29uZltdID0gewo+ICsgwqAgwqAgwqAgLyogcmF0ZSwgZm10LCBjaG4sIG1j bGssIMKgIGRlbiwgbnVtLCBiY2xrLCBkZW4sIG51bSAqLwo+ICsgwqAgwqAgwqAgezk2MDAwLCAx NiwgMiwgMTIyODgwMDAsIMKgNjQsIDE2MjUsIDYxNDQwMDAsIMKgMSwgwqAyfSwKPiArIMKgIMKg IMKgIHs5NjAwMCwgMTYsIDEsIDEyMjg4MDAwLCDCoDY0LCAxNjI1LCAxNTM2MDAwLCDCoDEsIMKg OH0sCj4gKyDCoCDCoCDCoCB7ODgyMDAsIDE2LCAyLCAxMTI4OTYwMCwgMjk0LCA4MTI1LCA1NjQ0 ODAwLCDCoDEsIMKgMn0sCj4gKyDCoCDCoCDCoCB7ODgyMDAsIDE2LCAxLCAxMTI4OTYwMCwgMjk0 LCA4MTI1LCAxNDExMjAwLCDCoDEsIMKgOH0sCj4gKyDCoCDCoCDCoCB7NDgwMDAsIDE2LCAyLCAx MjI4ODAwMCwgwqA2NCwgMTYyNSwgMzA3MjAwMCwgwqAxLCDCoDR9LAo+ICsgwqAgwqAgwqAgezQ4 MDAwLCAxNiwgMSwgMTIyODgwMDAsIMKgNjQsIDE2MjUsIMKgNzY4MDAwLCDCoDEsIDE2fSwKPiAr IMKgIMKgIMKgIHs0NDEwMCwgMTYsIDIsIDExMjg5NjAwLCAyOTQsIDgxMjUsIDI4MjI0MDAsIMKg MSwgwqA0fSwKPiArIMKgIMKgIMKgIHs0NDEwMCwgMTYsIDEsIDExMjg5NjAwLCAyOTQsIDgxMjUs IMKgNzA1NjAwLCDCoDEsIDE2fSwKPiArIMKgIMKgIMKgIHszMjAwMCwgMTYsIDIsIDEyMjg4MDAw LCDCoDY0LCAxNjI1LCAyMDQ4MDAwLCDCoDEsIMKgNn0sCj4gKyDCoCDCoCDCoCB7MzIwMDAsIDE2 LCAxLCAxMjI4ODAwMCwgwqA2NCwgMTYyNSwgwqA1MTIwMDAsIMKgMSwgMjR9LAo+ICsgwqAgwqAg wqAgezIyMDUwLCAxNiwgMiwgMTEyODk2MDAsIDI5NCwgODEyNSwgMTQxMTIwMCwgwqAxLCDCoDh9 LAo+ICsgwqAgwqAgwqAgezIyMDUwLCAxNiwgMSwgMTEyODk2MDAsIDI5NCwgODEyNSwgwqAzNTI4 MDAsIMKgMSwgMzJ9LAo+ICsgwqAgwqAgwqAgezE2MDAwLCAxNiwgMiwgMTIyODgwMDAsIMKgNjQs IDE2MjUsIDEwMjQwMDAsIMKgMSwgMTJ9LAo+ICsgwqAgwqAgwqAgezE2MDAwLCAxNiwgMSwgMTIy ODgwMDAsIMKgNjQsIDE2MjUsIMKgMjU2MDAwLCDCoDEsIDQ4fSwKPiArIMKgIMKgIMKgIHsxMTAy NSwgMTYsIDIsIDExMjg5NjAwLCAyOTQsIDgxMjUsIMKgNzA1NjAwLCDCoDEsIDE2fSwKPiArIMKg IMKgIMKgIHsxMTAyNSwgMTYsIDEsIDExMjg5NjAwLCAyOTQsIDgxMjUsIMKgMTc2NDAwLCDCoDEs IDY0fSwKPiArIMKgIMKgIMKgIHsgODAwMCwgMTYsIDIsIDEyMjg4MDAwLCDCoDY0LCAxNjI1LCDC oDUxMjAwMCwgwqAxLCAyNH0sCj4gKyDCoCDCoCDCoCB7IDgwMDAsIDE2LCAxLCAxMjI4ODAwMCwg wqA2NCwgMTYyNSwgwqAxMjgwMDAsIMKgMSwgOTZ9LAo+ICt9Owo+ICsKCkl0J3Mgbm90IGEgZ29v ZCBpZGVhIHRvIGhhdmUgYSBzdGF0aWMgYXJyYXkgaW4gdGhlIGhlYWRlciBmaWxlLiBBbmQgYXMK TWFyayBwb2ludGVkIG91dCBpbiB0aGUgY29tbWVudCB0byB0aGUgbGF0ZXIgcGF0Y2gsIHRoaXMg YXJyYXkgYW5kCnRoZSByZWxhdGVkIGZ1bmN0aW9ucyBjb3VsZCBiZSB3ZWxsIHBsYWNlZCBpbnRv IHNvbWUgY29tbW9uIHBsYWNlcy4KQW5kIEknbSBub3Qgc3VyZSBpZiB0aGlzIGFwcGxpZXMgdG8g cHhhOTEwIGFzIHdlbGwsIHdoaWNoIGNvdWxkIGJlCndlbGwgZW5kZWQgdXAgaW4gY29tbW9uLmMg b3IgcHhhezE2OCw5MTB9LmMuCgo+ICtleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIHB4YTE2OF9z c3BfZGFpW107Cj4gKwo+ICsjZW5kaWYKPiAtLQo+IDEuNS42LjUKPgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBbHNhLWRldmVsIG1haWxpbmcgbGlzdApB bHNhLWRldmVsQGFsc2EtcHJvamVjdC5vcmcKaHR0cDovL21haWxtYW4uYWxzYS1wcm9qZWN0Lm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2Fsc2EtZGV2ZWwK