From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Quan, Evan" Subject: RE: [PATCH 2/2] drm/amd/pp: Use dynamic gfx_clk rather than hardcoded values Date: Fri, 20 Apr 2018 09:36:18 +0000 Message-ID: References: <1524205786-17106-1-git-send-email-Rex.Zhu@amd.com> <1524205786-17106-2-git-send-email-Rex.Zhu@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1524205786-17106-2-git-send-email-Rex.Zhu-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Zhu, Rex" U2VyaWVzIGlzIFJldmlld2VkLWJ5OiBFdmFuIFF1YW4gPGV2YW4ucXVhbkBhbWQuY29tPg0KDQo+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGFtZC1nZnggW21haWx0bzphbWQt Z2Z4LWJvdW5jZXNAbGlzdHMuZnJlZWRlc2t0b3Aub3JnXSBPbiBCZWhhbGYNCj4gT2YgUmV4IFpo dQ0KPiBTZW50OiBGcmlkYXksIEFwcmlsIDIwLCAyMDE4IDI6MzAgUE0NCj4gVG86IGFtZC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+IENjOiBaaHUsIFJleCA8UmV4LlpodUBhbWQuY29tPg0K PiBTdWJqZWN0OiBbUEFUQ0ggMi8yXSBkcm0vYW1kL3BwOiBVc2UgZHluYW1pYyBnZnhfY2xrIHJh dGhlciB0aGFuDQo+IGhhcmRjb2RlZCB2YWx1ZXMNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFJleCBa aHUgPFJleC5aaHVAYW1kLmNvbT4NCj4gLS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2Vy cGxheS9od21nci9zbXUxMF9od21nci5jIHwgNDcNCj4gKysrKysrKysrKysrKystLS0tLS0tLS0N Cj4gZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Ivc211MTBfaHdtZ3IuaCB8ICAy IC0NCj4gIDIgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0p DQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Iv c211MTBfaHdtZ3IuYw0KPiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3Nt dTEwX2h3bWdyLmMNCj4gaW5kZXggNTYzZGNkYi4uNTc1YjA0NCAxMDA2NDQNCj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Ivc211MTBfaHdtZ3IuYw0KPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9zbXUxMF9od21nci5jDQo+IEBAIC0z NDAsNyArMzQwLDcgQEAgc3RhdGljIGludA0KPiBzbXUxMF9nZXRfY2xvY2tfdm9sdGFnZV9kZXBl bmRlbmN5X3RhYmxlKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsDQo+IA0KPiAgc3RhdGljIGludCBz bXUxMF9wb3B1bGF0ZV9jbG9ja190YWJsZShzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKSAgew0KPiAt CWludCByZXN1bHQ7DQo+ICsJdWludDMyX3QgcmVzdWx0Ow0KPiANCj4gIAlzdHJ1Y3Qgc211MTBf aHdtZ3IgKnNtdTEwX2RhdGEgPSAoc3RydWN0IHNtdTEwX2h3bWdyDQo+ICopKGh3bWdyLT5iYWNr ZW5kKTsNCj4gIAlEcG1DbG9ja3NfdCAgKnRhYmxlID0gJihzbXUxMF9kYXRhLT5jbG9ja190YWJs ZSk7IEBAIC0zODYsMTENCj4gKzM4NiwxMSBAQCBzdGF0aWMgaW50IHNtdTEwX3BvcHVsYXRlX2Ns b2NrX3RhYmxlKHN0cnVjdCBwcF9od21ncg0KPiAqaHdtZ3IpDQo+IA0KPiAgCXNtdW1fc2VuZF9t c2dfdG9fc21jKGh3bWdyLA0KPiBQUFNNQ19NU0dfR2V0TWluR2Z4Y2xrRnJlcXVlbmN5KTsNCj4g IAlyZXN1bHQgPSBzbXVtX2dldF9hcmd1bWVudChod21ncik7DQo+IC0Jc211MTBfZGF0YS0+Z2Z4 X21pbl9mcmVxX2xpbWl0ID0gcmVzdWx0ICogMTAwOw0KPiArCXNtdTEwX2RhdGEtPmdmeF9taW5f ZnJlcV9saW1pdCA9IHJlc3VsdCAvIDEwICogMTAwMDsNCj4gDQo+ICAJc211bV9zZW5kX21zZ190 b19zbWMoaHdtZ3IsDQo+IFBQU01DX01TR19HZXRNYXhHZnhjbGtGcmVxdWVuY3kpOw0KPiAgCXJl c3VsdCA9IHNtdW1fZ2V0X2FyZ3VtZW50KGh3bWdyKTsNCj4gLQlzbXUxMF9kYXRhLT5nZnhfbWF4 X2ZyZXFfbGltaXQgPSByZXN1bHQgKiAxMDA7DQo+ICsJc211MTBfZGF0YS0+Z2Z4X21heF9mcmVx X2xpbWl0ID0gcmVzdWx0IC8gMTAgKiAxMDAwOw0KPiANCj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4g QEAgLTQ3Miw2ICs0NzIsOCBAQCBzdGF0aWMgaW50IHNtdTEwX2h3bWdyX2JhY2tlbmRfZmluaShz dHJ1Y3QNCj4gcHBfaHdtZ3IgKmh3bWdyKSAgc3RhdGljIGludCBzbXUxMF9kcG1fZm9yY2VfZHBt X2xldmVsKHN0cnVjdA0KPiBwcF9od21nciAqaHdtZ3IsDQo+ICAJCQkJZW51bSBhbWRfZHBtX2Zv cmNlZF9sZXZlbCBsZXZlbCkNCj4gIHsNCj4gKwlzdHJ1Y3Qgc211MTBfaHdtZ3IgKmRhdGEgPSBo d21nci0+YmFja2VuZDsNCj4gKw0KPiAgCWlmIChod21nci0+c211X3ZlcnNpb24gPCAweDFFMzcw MCkgew0KPiAgCQlwcl9pbmZvKCJzbXUgZmlybXdhcmUgdmVyc2lvbiB0b28gb2xkLCBjYW4gbm90 IHNldCBkcG0NCj4gbGV2ZWxcbiIpOw0KPiAgCQlyZXR1cm4gMDsNCj4gQEAgLTQ4Miw3ICs0ODQs NyBAQCBzdGF0aWMgaW50IHNtdTEwX2RwbV9mb3JjZV9kcG1fbGV2ZWwoc3RydWN0DQo+IHBwX2h3 bWdyICpod21nciwNCj4gIAljYXNlIEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfUEVBSzoN Cj4gIAkJc211bV9zZW5kX21zZ190b19zbWNfd2l0aF9wYXJhbWV0ZXIoaHdtZ3IsDQo+IA0KPiAJ UFBTTUNfTVNHX1NldEhhcmRNaW5HZnhDbGssDQo+IC0NCj4gCVNNVTEwX1VNRF9QU1RBVEVfUEVB S19HRlhDTEspOw0KPiArCQkJCQkJZGF0YS0NCj4gPmdmeF9tYXhfZnJlcV9saW1pdC8xMDApOw0K PiAgCQlzbXVtX3NlbmRfbXNnX3RvX3NtY193aXRoX3BhcmFtZXRlcihod21nciwNCj4gDQo+IAlQ UFNNQ19NU0dfU2V0SGFyZE1pbkZjbGtCeUZyZXEsDQo+IA0KPiAJU01VMTBfVU1EX1BTVEFURV9Q RUFLX0ZDTEspOw0KPiBAQCAtNDk1LDcgKzQ5Nyw3IEBAIHN0YXRpYyBpbnQgc211MTBfZHBtX2Zv cmNlX2RwbV9sZXZlbChzdHJ1Y3QNCj4gcHBfaHdtZ3IgKmh3bWdyLA0KPiANCj4gIAkJc211bV9z ZW5kX21zZ190b19zbWNfd2l0aF9wYXJhbWV0ZXIoaHdtZ3IsDQo+IA0KPiAJUFBTTUNfTVNHX1Nl dFNvZnRNYXhHZnhDbGssDQo+IC0NCj4gCVNNVTEwX1VNRF9QU1RBVEVfUEVBS19HRlhDTEspOw0K PiArCQkJCQkJZGF0YS0NCj4gPmdmeF9tYXhfZnJlcV9saW1pdC8xMDApOw0KPiAgCQlzbXVtX3Nl bmRfbXNnX3RvX3NtY193aXRoX3BhcmFtZXRlcihod21nciwNCj4gDQo+IAlQUFNNQ19NU0dfU2V0 U29mdE1heEZjbGtCeUZyZXEsDQo+IA0KPiAJU01VMTBfVU1EX1BTVEFURV9QRUFLX0ZDTEspOw0K PiBAQCAtNTA5LDEwICs1MTEsMTAgQEAgc3RhdGljIGludCBzbXUxMF9kcG1fZm9yY2VfZHBtX2xl dmVsKHN0cnVjdA0KPiBwcF9od21nciAqaHdtZ3IsDQo+ICAJY2FzZSBBTURfRFBNX0ZPUkNFRF9M RVZFTF9QUk9GSUxFX01JTl9TQ0xLOg0KPiAgCQlzbXVtX3NlbmRfbXNnX3RvX3NtY193aXRoX3Bh cmFtZXRlcihod21nciwNCj4gDQo+IAlQUFNNQ19NU0dfU2V0SGFyZE1pbkdmeENsaywNCj4gLQ0K PiAJU01VMTBfVU1EX1BTVEFURV9NSU5fR0ZYQ0xLKTsNCj4gKwkJCQkJCWRhdGEtDQo+ID5nZnhf bWluX2ZyZXFfbGltaXQvMTAwKTsNCj4gIAkJc211bV9zZW5kX21zZ190b19zbWNfd2l0aF9wYXJh bWV0ZXIoaHdtZ3IsDQo+IA0KPiAJUFBTTUNfTVNHX1NldFNvZnRNYXhHZnhDbGssDQo+IC0NCj4g CVNNVTEwX1VNRF9QU1RBVEVfTUlOX0dGWENMSyk7DQo+ICsJCQkJCQlkYXRhLQ0KPiA+Z2Z4X21p bl9mcmVxX2xpbWl0LzEwMCk7DQo+ICAJCWJyZWFrOw0KPiAgCWNhc2UgQU1EX0RQTV9GT1JDRURf TEVWRUxfUFJPRklMRV9NSU5fTUNMSzoNCj4gIAkJc211bV9zZW5kX21zZ190b19zbWNfd2l0aF9w YXJhbWV0ZXIoaHdtZ3IsDQo+IEBAIC01NTIsNyArNTU0LDcgQEAgc3RhdGljIGludCBzbXUxMF9k cG1fZm9yY2VfZHBtX2xldmVsKHN0cnVjdA0KPiBwcF9od21nciAqaHdtZ3IsDQo+ICAJY2FzZSBB TURfRFBNX0ZPUkNFRF9MRVZFTF9BVVRPOg0KPiAgCQlzbXVtX3NlbmRfbXNnX3RvX3NtY193aXRo X3BhcmFtZXRlcihod21nciwNCj4gDQo+IAlQUFNNQ19NU0dfU2V0SGFyZE1pbkdmeENsaywNCj4g LQ0KPiAJU01VMTBfVU1EX1BTVEFURV9NSU5fR0ZYQ0xLKTsNCj4gKwkJCQkJCWRhdGEtDQo+ID5n ZnhfbWluX2ZyZXFfbGltaXQvMTAwKTsNCj4gIAkJc211bV9zZW5kX21zZ190b19zbWNfd2l0aF9w YXJhbWV0ZXIoaHdtZ3IsDQo+IA0KPiAJUFBTTUNfTVNHX1NldEhhcmRNaW5GY2xrQnlGcmVxLA0K PiANCj4gCVNNVTEwX1VNRF9QU1RBVEVfTUlOX0ZDTEspOw0KPiBAQCAtNTY1LDcgKzU2Nyw3IEBA IHN0YXRpYyBpbnQgc211MTBfZHBtX2ZvcmNlX2RwbV9sZXZlbChzdHJ1Y3QNCj4gcHBfaHdtZ3Ig Kmh3bWdyLA0KPiANCj4gIAkJc211bV9zZW5kX21zZ190b19zbWNfd2l0aF9wYXJhbWV0ZXIoaHdt Z3IsDQo+IA0KPiAJUFBTTUNfTVNHX1NldFNvZnRNYXhHZnhDbGssDQo+IC0NCj4gCVNNVTEwX1VN RF9QU1RBVEVfUEVBS19HRlhDTEspOw0KPiArCQkJCQkJZGF0YS0NCj4gPmdmeF9tYXhfZnJlcV9s aW1pdC8xMDApOw0KPiAgCQlzbXVtX3NlbmRfbXNnX3RvX3NtY193aXRoX3BhcmFtZXRlcihod21n ciwNCj4gDQo+IAlQUFNNQ19NU0dfU2V0U29mdE1heEZjbGtCeUZyZXEsDQo+IA0KPiAJU01VMTBf VU1EX1BTVEFURV9QRUFLX0ZDTEspOw0KPiBAQCAtNTc5LDEwICs1ODEsMTAgQEAgc3RhdGljIGlu dCBzbXUxMF9kcG1fZm9yY2VfZHBtX2xldmVsKHN0cnVjdA0KPiBwcF9od21nciAqaHdtZ3IsDQo+ ICAJY2FzZSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9MT1c6DQo+ICAJCXNtdW1fc2VuZF9tc2dfdG9f c21jX3dpdGhfcGFyYW1ldGVyKGh3bWdyLA0KPiANCj4gCVBQU01DX01TR19TZXRIYXJkTWluR2Z4 Q2xrLA0KPiAtDQo+IAlTTVUxMF9VTURfUFNUQVRFX01JTl9HRlhDTEspOw0KPiArCQkJCQkJZGF0 YS0NCj4gPmdmeF9taW5fZnJlcV9saW1pdC8xMDApOw0KPiAgCQlzbXVtX3NlbmRfbXNnX3RvX3Nt Y193aXRoX3BhcmFtZXRlcihod21nciwNCj4gDQo+IAlQUFNNQ19NU0dfU2V0U29mdE1heEdmeENs aywNCj4gLQ0KPiAJU01VMTBfVU1EX1BTVEFURV9NSU5fR0ZYQ0xLKTsNCj4gKwkJCQkJCWRhdGEt DQo+ID5nZnhfbWluX2ZyZXFfbGltaXQvMTAwKTsNCj4gIAkJc211bV9zZW5kX21zZ190b19zbWNf d2l0aF9wYXJhbWV0ZXIoaHdtZ3IsDQo+IA0KPiAJUFBTTUNfTVNHX1NldEhhcmRNaW5GY2xrQnlG cmVxLA0KPiANCj4gCVNNVTEwX1VNRF9QU1RBVEVfTUlOX0ZDTEspOw0KPiBAQCAtNzMwLDIxICs3 MzIsMzAgQEAgc3RhdGljIGludCBzbXUxMF9wcmludF9jbG9ja19sZXZlbHMoc3RydWN0DQo+IHBw X2h3bWdyICpod21nciwNCj4gIAlzdHJ1Y3Qgc211MTBfaHdtZ3IgKmRhdGEgPSAoc3RydWN0IHNt dTEwX2h3bWdyICopKGh3bWdyLQ0KPiA+YmFja2VuZCk7DQo+ICAJc3RydWN0IHNtdTEwX3ZvbHRh Z2VfZGVwZW5kZW5jeV90YWJsZSAqbWNsa190YWJsZSA9DQo+ICAJCQlkYXRhLT5jbG9ja192b2xf aW5mby52ZGRfZGVwX29uX2ZjbGs7DQo+IC0JaW50IGksIG5vdywgc2l6ZSA9IDA7DQo+ICsJdWlu dDMyX3QgaSwgbm93LCBzaXplID0gMDsNCj4gDQo+ICAJc3dpdGNoICh0eXBlKSB7DQo+ICAJY2Fz ZSBQUF9TQ0xLOg0KPiAgCQlzbXVtX3NlbmRfbXNnX3RvX3NtYyhod21nciwNCj4gUFBTTUNfTVNH X0dldEdmeGNsa0ZyZXF1ZW5jeSk7DQo+ICAJCW5vdyA9IHNtdW1fZ2V0X2FyZ3VtZW50KGh3bWdy KTsNCj4gDQo+ICsJLyogZHJpdmVyIG9ubHkga25vdyBtaW4vbWF4IGdmeF9jbGssIEFkZCBsZXZl bCAxIGZvciBhbGwgb3RoZXIgZ2Z4IGNsa3MNCj4gKi8NCj4gKwkJaWYgKG5vdyA9PSBkYXRhLT5n ZnhfbWF4X2ZyZXFfbGltaXQvMTAwKQ0KPiArCQkJaSA9IDI7DQo+ICsJCWVsc2UgaWYgKG5vdyA9 PSBkYXRhLT5nZnhfbWluX2ZyZXFfbGltaXQvMTAwKQ0KPiArCQkJaSA9IDA7DQo+ICsJCWVsc2UN Cj4gKwkJCWkgPSAxOw0KPiArDQo+ICAJCXNpemUgKz0gc3ByaW50ZihidWYgKyBzaXplLCAiMDog JXVNaHogJXNcbiIsDQo+IC0JCQkJZGF0YS0+Z2Z4X21pbl9mcmVxX2xpbWl0IC8gMTAwLA0KPiAt CQkJCSgoZGF0YS0+Z2Z4X21pbl9mcmVxX2xpbWl0IC8gMTAwKQ0KPiAtCQkJCSA9PSBub3cpID8g IioiIDogIiIpOw0KPiArCQkJCQlkYXRhLT5nZnhfbWluX2ZyZXFfbGltaXQvMTAwLA0KPiArCQkJ CQlpID09IDAgPyAiKiIgOiAiIik7DQo+ICAJCXNpemUgKz0gc3ByaW50ZihidWYgKyBzaXplLCAi MTogJXVNaHogJXNcbiIsDQo+IC0JCQkJZGF0YS0+Z2Z4X21heF9mcmVxX2xpbWl0IC8gMTAwLA0K PiAtCQkJCSgoZGF0YS0+Z2Z4X21heF9mcmVxX2xpbWl0IC8gMTAwKQ0KPiAtCQkJCSA9PSBub3cp ID8gIioiIDogIiIpOw0KPiArCQkJCQlpID09IDEgPyBub3cgOg0KPiBTTVUxMF9VTURfUFNUQVRF X0dGWENMSywNCj4gKwkJCQkJaSA9PSAxID8gIioiIDogIiIpOw0KPiArCQlzaXplICs9IHNwcmlu dGYoYnVmICsgc2l6ZSwgIjI6ICV1TWh6ICVzXG4iLA0KPiArCQkJCQlkYXRhLT5nZnhfbWF4X2Zy ZXFfbGltaXQvMTAwLA0KPiArCQkJCQlpID09IDIgPyAiKiIgOiAiIik7DQo+ICAJCWJyZWFrOw0K PiAgCWNhc2UgUFBfTUNMSzoNCj4gIAkJc211bV9zZW5kX21zZ190b19zbWMoaHdtZ3IsDQo+IFBQ U01DX01TR19HZXRGY2xrRnJlcXVlbmN5KTsgZGlmZiAtLWdpdA0KPiBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG93ZXJwbGF5L2h3bWdyL3NtdTEwX2h3bWdyLmgNCj4gYi9kcml2ZXJzL2dwdS9kcm0v YW1kL3Bvd2VycGxheS9od21nci9zbXUxMF9od21nci5oDQo+IGluZGV4IGY2OGIyMTguLjFmYjI5 NmEgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3Nt dTEwX2h3bWdyLmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Iv c211MTBfaHdtZ3IuaA0KPiBAQCAtMzExLDExICszMTEsOSBAQCBzdHJ1Y3Qgc211MTBfaHdtZ3Ig ew0KPiAgI2RlZmluZSBTTVUxMF9VTURfUFNUQVRFX0ZDTEsgICAgICAgICAgICAgICAgICAgOTMz DQo+ICAjZGVmaW5lIFNNVTEwX1VNRF9QU1RBVEVfVkNFICAgICAgICAgICAgICAgICAgICAweDAz QzAwMzIwDQo+IA0KPiAtI2RlZmluZSBTTVUxMF9VTURfUFNUQVRFX1BFQUtfR0ZYQ0xLICAgICAg ICAgICAgMTEwMA0KPiAgI2RlZmluZSBTTVUxMF9VTURfUFNUQVRFX1BFQUtfU09DQ0xLICAgICAg ICAgICAgNzU3DQo+ICAjZGVmaW5lIFNNVTEwX1VNRF9QU1RBVEVfUEVBS19GQ0xLICAgICAgICAg ICAgICAxMjAwDQo+IA0KPiAtI2RlZmluZSBTTVUxMF9VTURfUFNUQVRFX01JTl9HRlhDTEsgICAg ICAgICAgICAgMjAwDQo+ICAjZGVmaW5lIFNNVTEwX1VNRF9QU1RBVEVfTUlOX0ZDTEsgICAgICAg ICAgICAgICA0MDANCj4gICNkZWZpbmUgU01VMTBfVU1EX1BTVEFURV9NSU5fU09DQ0xLICAgICAg ICAgICAgIDIwMA0KPiAgI2RlZmluZSBTTVUxMF9VTURfUFNUQVRFX01JTl9WQ0UgICAgICAgICAg ICAgICAgMHgwMTkwMDEyQw0KPiAtLQ0KPiAxLjkuMQ0KPiANCj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gYW1kLWdmeCBtYWlsaW5nIGxpc3QNCj4g YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4DQpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2FtZC1nZngK