From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH 19/21] drm/i915: Make bxt_set_cdclk() operate in terms of the current vs target DE PLL vco Date: Thu, 19 May 2016 22:40:08 +0300 Message-ID: <1463686808.31690.23.camel@intel.com> References: <1463172100-24715-1-git-send-email-ville.syrjala@linux.intel.com> <1463172100-24715-20-git-send-email-ville.syrjala@linux.intel.com> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 532356E2D6 for ; Thu, 19 May 2016 19:40:16 +0000 (UTC) In-Reply-To: <1463172100-24715-20-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMDE2LTA1LTEzIGF0IDIzOjQxICswMzAwLCB2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbSB3cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGlu dXguaW50ZWwuY29tPgo+IAo+IE1ha2UgYnh0X3NldF9jZGNsaygpIG1vcmUgcmVhZGFibGUgYnkg bG9va2luZyBhdCBjdXJyZW50IHZzLiB0YXJnZXQKPiBERSBQTEwgdmNvIHRvIGRldGVybWluZSBp ZiB0aGUgREUgUExMIG5lZWRzIGRpc2FibGluZyBhbmQvb3IgZW5hYmxpbmcuCj4gV2UgY2FuIGFs c28gY2FsY3VsYXRlIHRoZSBDRDJYIGRpdmlkZXIgc2ltcGx5IGFzICh2Y28vY2RjbGspIGluc3Rl YWQgb2YKPiBkZXBlbmRpbmcgb24gbWFnaWMgbnVtYmVycy4KPiAKPiBUaGUgbWFnaWMgbnVtYmVy cyBhcmUgc3RpbGwgbmVlZGVkIHRob3VnaCwgYnV0IG9ubHkgdG8gbWFwIHRoZSBzdXBwb3J0ZWQK PiBjZGNsayBmcmVxdWVuY2llcyB0byBjb3JyZXNwb25kaW5nIERFIFBMTCBmcmVxdWVuY2llcy4K PiAKPiBOb3RlIHRoYXQgdydsbCBub3cgcHJvZ3JhbSBDRENMS19DVEwgY29ycmVjdGx5IGV2ZW4g Zm9yIHRoZSBieXBhc3MgY2FzZS4KPiBBY3R1YWxseSB0aGUgQ0QyWCBkaXZpZGVyIHNob3VsZCBu b3QgbWF0dGVyIGluIHRoYXQgY2FzZSBzaW5jZSB0aGUKPiBoYXJkd2FyZSB3aWxsIGJ5cGFzcyBp dCB0b28sIGJ1dCB0aGUgImRlY2ltYWwiIHBhcnQgc2hvdWxkIG1hdHRlciAoaWYgd2UKPiB3YW50 IHRvIGRvIGdtYnVzL2F1eCB3aXRoIHRoZSBieXBhc3MgZW5hYmxlZCkuCgpXZWxsLCB3aGF0IHRo ZSBieXBhc3MgY2FuIGJlIHVzZWQgZm9yIGlzIG5vdCBkZWZpbmVkIGJ5IHRoZSBzcGVjCihuZWl0 aGVyIGlzIHRoZSBkZWNpbWFsIHZhbHVlIGZvciB0aGUgYnlwYXNzIGZyZXEpLgoKPiBTaWduZWQt b2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ IC0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTI4ICsrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCj4gwqAxIGZpbGUgY2hhbmdlZCwgNjMgaW5z ZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+IGluZGV4IDQ1NDJjMWY1MDEyZi4uMTRiYzE0Yzc4MjdiIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC01MzU4LDYgKzUzNTgsMzAgQEAgc3RhdGlj IGludCBza2xfY2RjbGtfZGVjaW1hbChpbnQgY2RjbGspCj4gwqAJcmV0dXJuIERJVl9ST1VORF9D TE9TRVNUKGNkY2xrIC0gMTAwMCwgNTAwKTsKPiDCoH0KPiDCoAo+ICtzdGF0aWMgaW50IGJ4dF9k ZV9wbGxfdmNvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IGNkY2xrKQo+ ICt7Cj4gKwlpbnQgcmF0aW87Cj4gKwo+ICsJaWYgKGNkY2xrID09IGRldl9wcml2LT5jZGNsa19w bGwucmVmKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCXN3aXRjaCAoY2RjbGspIHsKPiArCWRlZmF1 bHQ6Cj4gKwkJTUlTU0lOR19DQVNFKGNkY2xrKTsKPiArCWNhc2UgMTQ0MDAwOgo+ICsJY2FzZSAy ODgwMDA6Cj4gKwljYXNlIDM4NDAwMDoKPiArCWNhc2UgNTc2MDAwOgo+ICsJCXJhdGlvID0gNjA7 Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIDYyNDAwMDoKPiArCQlyYXRpbyA9IDY1Owo+ICsJCWJyZWFr Owo+ICsJfQo+ICsKPiArCXJldHVybiBkZXZfcHJpdi0+Y2RjbGtfcGxsLnJlZiAqIHJhdGlvOwo+ ICt9CgpXZSBjb3VsZCBhbHNvIGNoZWNrIGluIGJ4dF9kZV9wbGxfdXBkYXRlKCkgdGhhdCB0aGUg VkNPIGlzIGFsd2F5cwplaXRoZXIgMTE1MiBvciAxMjQ4TUh6LgoKVGhlIHBhdGNoIG1ha2VzIHRo aW5ncyBlYXNpZXIgdG8gZm9sbG93IGFuZCBjbG9zZXIgdG8gU0tMOgpSZXZpZXdlZC1ieTogSW1y ZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgoKPiArCj4gwqBzdGF0aWMgdm9pZCBieHRfZGVf cGxsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKgewo+IMKg CUk5MTVfV1JJVEUoQlhUX0RFX1BMTF9FTkFCTEUsIDApOwo+IEBAIC01MzY5LDEzICs1MzkzLDE0 IEBAIHN0YXRpYyB2b2lkIGJ4dF9kZV9wbGxfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gwqAJZGV2X3ByaXYtPmNkY2xrX3BsbC52Y28gPSAwOwo+IMKgfQo+IMKg Cj4gLXN0YXRpYyB2b2lkIGJ4dF9kZV9wbGxfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwgdTMyIHJhdGlvKQo+ICtzdGF0aWMgdm9pZCBieHRfZGVfcGxsX2VuYWJsZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2Y28pCj4gwqB7Cj4gKwlpbnQg cmF0aW8gPSBESVZfUk9VTkRfQ0xPU0VTVCh2Y28sIGRldl9wcml2LT5jZGNsa19wbGwucmVmKTsK PiDCoAl1MzIgdmFsOwo+IMKgCj4gwqAJdmFsID0gSTkxNV9SRUFEKEJYVF9ERV9QTExfQ1RMKTsK PiDCoAl2YWwgJj0gfkJYVF9ERV9QTExfUkFUSU9fTUFTSzsKPiAtCXZhbCB8PSByYXRpbzsKPiAr CXZhbCB8PSBCWFRfREVfUExMX1JBVElPKHJhdGlvKTsKPiDCoAlJOTE1X1dSSVRFKEJYVF9ERV9Q TExfQ1RMLCB2YWwpOwo+IMKgCj4gwqAJSTkxNV9XUklURShCWFRfREVfUExMX0VOQUJMRSwgQlhU X0RFX1BMTF9QTExfRU5BQkxFKTsKPiBAQCAtNTM4NCw1NCArNTQwOSw0MiBAQCBzdGF0aWMgdm9p ZCBieHRfZGVfcGxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUz MiByYXRpbykKPiDCoAlpZiAod2FpdF9mb3IoKEk5MTVfUkVBRChCWFRfREVfUExMX0VOQUJMRSkg JiBCWFRfREVfUExMX0xPQ0spICE9IDAsIDEpKQo+IMKgCQlEUk1fRVJST1IoInRpbWVvdXQgd2Fp dGluZyBmb3IgREUgUExMIGxvY2tcbiIpOwo+IMKgCj4gLQlkZXZfcHJpdi0+Y2RjbGtfcGxsLnZj byA9IHJhdGlvICogZGV2X3ByaXYtPmNkY2xrX3BsbC5yZWY7Cj4gKwlkZXZfcHJpdi0+Y2RjbGtf cGxsLnZjbyA9IHZjbzsKPiDCoH0KPiDCoAo+IMKgc3RhdGljIHZvaWQgYnJveHRvbl9zZXRfY2Rj bGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgY2RjbGspCj4gwqB7Cj4g LQl1aW50MzJfdCBkaXZpZGVyOwo+IC0JdWludDMyX3QgcmF0aW87Cj4gLQl1aW50MzJfdCBjdXJy ZW50X2NkY2xrOwo+IC0JaW50IHJldDsKPiArCXUzMiB2YWwsIGRpdmlkZXI7Cj4gKwlpbnQgdmNv LCByZXQ7Cj4gwqAKPiAtCS8qIGZyZXF1ZW5jeSA9IDE5LjJNSHogKiByYXRpbyAvIDIgLyBkaXZ7 MSwxLjUsMiw0fSAqLwo+IC0Jc3dpdGNoIChjZGNsaykgewo+IC0JY2FzZSAxNDQwMDA6Cj4gKwl2 Y28gPSBieHRfZGVfcGxsX3ZjbyhkZXZfcHJpdiwgY2RjbGspOwo+ICsKPiArCURSTV9ERUJVR19E UklWRVIoIkNoYW5naW5nIENEQ0xLIHRvICVkIGtIeiAoVkNPICVkIGtIeilcbiIsIGNkY2xrLCB2 Y28pOwo+ICsKPiArCS8qIGNkY2xrID0gdmNvIC8gMiAvIGRpdnsxLDEuNSwyLDR9ICovCj4gKwlz d2l0Y2ggKERJVl9ST1VORF9DTE9TRVNUKHZjbywgY2RjbGspKSB7Cj4gKwljYXNlIDg6Cj4gwqAJ CWRpdmlkZXIgPSBCWFRfQ0RDTEtfQ0QyWF9ESVZfU0VMXzQ7Cj4gLQkJcmF0aW8gPSBCWFRfREVf UExMX1JBVElPKDYwKTsKPiDCoAkJYnJlYWs7Cj4gLQljYXNlIDI4ODAwMDoKPiArCWNhc2UgNDoK PiDCoAkJZGl2aWRlciA9IEJYVF9DRENMS19DRDJYX0RJVl9TRUxfMjsKPiAtCQlyYXRpbyA9IEJY VF9ERV9QTExfUkFUSU8oNjApOwo+IMKgCQlicmVhazsKPiAtCWNhc2UgMzg0MDAwOgo+ICsJY2Fz ZSAzOgo+IMKgCQlkaXZpZGVyID0gQlhUX0NEQ0xLX0NEMlhfRElWX1NFTF8xXzU7Cj4gLQkJcmF0 aW8gPSBCWFRfREVfUExMX1JBVElPKDYwKTsKPiAtCQlicmVhazsKPiAtCWNhc2UgNTc2MDAwOgo+ IC0JCWRpdmlkZXIgPSBCWFRfQ0RDTEtfQ0QyWF9ESVZfU0VMXzE7Cj4gLQkJcmF0aW8gPSBCWFRf REVfUExMX1JBVElPKDYwKTsKPiDCoAkJYnJlYWs7Cj4gLQljYXNlIDYyNDAwMDoKPiArCWNhc2Ug MjoKPiDCoAkJZGl2aWRlciA9IEJYVF9DRENMS19DRDJYX0RJVl9TRUxfMTsKPiAtCQlyYXRpbyA9 IEJYVF9ERV9QTExfUkFUSU8oNjUpOwo+IC0JCWJyZWFrOwo+IC0JY2FzZSAxOTIwMDoKPiAtCQkv Kgo+IC0JCcKgKiBCeXBhc3MgZnJlcXVlbmN5IHdpdGggREUgUExMIGRpc2FibGVkLiBJbml0IHJh dGlvLCBkaXZpZGVyCj4gLQkJwqAqIHRvIHN1cHByZXNzIEdDQyB3YXJuaW5nLgo+IC0JCcKgKi8K PiAtCQlyYXRpbyA9IDA7Cj4gLQkJZGl2aWRlciA9IDA7Cj4gwqAJCWJyZWFrOwo+IMKgCWRlZmF1 bHQ6Cj4gLQkJRFJNX0VSUk9SKCJ1bnN1cHBvcnRlZCBDRENMSyBmcmVxICVkIiwgY2RjbGspOwo+ ICsJCVdBUk5fT04oY2RjbGsgIT0gZGV2X3ByaXYtPmNkY2xrX3BsbC5yZWYpOwo+ICsJCVdBUk5f T04odmNvICE9IDApOwo+IMKgCj4gLQkJcmV0dXJuOwo+ICsJCWRpdmlkZXIgPSBCWFRfQ0RDTEtf Q0QyWF9ESVZfU0VMXzE7Cj4gKwkJYnJlYWs7Cj4gwqAJfQo+IMKgCj4gLQltdXRleF9sb2NrKCZk ZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+IMKgCS8qIEluZm9ybSBwb3dlciBjb250cm9sbGVyIG9m IHVwY29taW5nIGZyZXF1ZW5jeSBjaGFuZ2UgKi8KPiArCW11dGV4X2xvY2soJmRldl9wcml2LT5y cHMuaHdfbG9jayk7Cj4gwqAJcmV0ID0gc2FuZHlicmlkZ2VfcGNvZGVfd3JpdGUoZGV2X3ByaXYs IEhTV19QQ09ERV9ERV9XUklURV9GUkVRX1JFUSwKPiDCoAkJCQnCoMKgwqDCoMKgwqAweDgwMDAw MDAwKTsKPiDCoAltdXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4gQEAgLTU0 NDIsNDAgKzU0NTUsMjYgQEAgc3RhdGljIHZvaWQgYnJveHRvbl9zZXRfY2RjbGsoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgY2RjbGspCj4gwqAJCXJldHVybjsKPiDCoAl9 Cj4gwqAKPiAtCWN1cnJlbnRfY2RjbGsgPSBJOTE1X1JFQUQoQ0RDTEtfQ1RMKSAmIENEQ0xLX0ZS RVFfREVDSU1BTF9NQVNLOwo+IC0JLyogY29udmVydCBmcm9tIC4xIGZpeHBvaW50IE1IeiB3aXRo IC0xTUh6IG9mZnNldCB0byBrSHogKi8KPiAtCWN1cnJlbnRfY2RjbGsgPSBjdXJyZW50X2NkY2xr ICogNTAwICsgMTAwMDsKPiAtCj4gLQkvKgo+IC0JwqAqIERFIFBMTCBoYXMgdG8gYmUgZGlzYWJs ZWQgd2hlbgo+IC0JwqAqIC0gc2V0dGluZyB0byAxOS4yTUh6IChieXBhc3MsIFBMTCBpc24ndCB1 c2VkKQo+IC0JwqAqIC0gYmVmb3JlIHNldHRpbmcgdG8gNjI0TUh6IChQTEwgbmVlZHMgdG9nZ2xp bmcpCj4gLQnCoCogLSBiZWZvcmUgc2V0dGluZyB0byBhbnkgZnJlcXVlbmN5IGZyb20gNjI0TUh6 IChQTEwgbmVlZHMgdG9nZ2xpbmcpCj4gLQnCoCovCj4gLQlpZiAoY2RjbGsgPT0gMTkyMDAgfHwg Y2RjbGsgPT0gNjI0MDAwIHx8Cj4gLQnCoMKgwqDCoGN1cnJlbnRfY2RjbGsgPT0gNjI0MDAwKSB7 Cj4gKwlpZiAoZGV2X3ByaXYtPmNkY2xrX3BsbC52Y28gIT0gMCAmJgo+ICsJwqDCoMKgwqBkZXZf cHJpdi0+Y2RjbGtfcGxsLnZjbyAhPSB2Y28pCj4gwqAJCWJ4dF9kZV9wbGxfZGlzYWJsZShkZXZf cHJpdik7Cj4gLQl9Cj4gLQo+IC0JaWYgKGNkY2xrICE9IDE5MjAwKSB7Cj4gLQkJdWludDMyX3Qg dmFsOwo+IMKgCj4gLQkJYnh0X2RlX3BsbF9lbmFibGUoZGV2X3ByaXYsIHJhdGlvKTsKPiArCWlm IChkZXZfcHJpdi0+Y2RjbGtfcGxsLnZjbyAhPSB2Y28pCj4gKwkJYnh0X2RlX3BsbF9lbmFibGUo ZGV2X3ByaXYsIHZjbyk7Cj4gwqAKPiAtCQl2YWwgPSBkaXZpZGVyIHwgc2tsX2NkY2xrX2RlY2lt YWwoY2RjbGspOwo+IC0JCS8qCj4gLQkJwqAqIEZJWE1FIGlmIG9ubHkgdGhlIGNkMnggZGl2aWRl ciBuZWVkcyBjaGFuZ2luZywgaXQgY291bGQgYmUgZG9uZQo+IC0JCcKgKiB3aXRob3V0IHNodXR0 aW5nIG9mZiB0aGUgcGlwZSAoaWYgb25seSBvbmUgcGlwZSBpcyBhY3RpdmUpLgo+IC0JCcKgKi8K PiAtCQl2YWwgfD0gQlhUX0NEQ0xLX0NEMlhfUElQRV9OT05FOwo+IC0JCS8qCj4gLQkJwqAqIERp c2FibGUgU1NBIFByZWNoYXJnZSB3aGVuIENEIGNsb2NrIGZyZXF1ZW5jeSA8IDUwMCBNSHosCj4g LQkJwqAqIGVuYWJsZSBvdGhlcndpc2UuCj4gLQkJwqAqLwo+IC0JCWlmIChjZGNsayA+PSA1MDAw MDApCj4gLQkJCXZhbCB8PSBCWFRfQ0RDTEtfU1NBX1BSRUNIQVJHRV9FTkFCTEU7Cj4gLQkJSTkx NV9XUklURShDRENMS19DVEwsIHZhbCk7Cj4gLQl9Cj4gKwl2YWwgPSBkaXZpZGVyIHwgc2tsX2Nk Y2xrX2RlY2ltYWwoY2RjbGspOwo+ICsJLyoKPiArCcKgKiBGSVhNRSBpZiBvbmx5IHRoZSBjZDJ4 IGRpdmlkZXIgbmVlZHMgY2hhbmdpbmcsIGl0IGNvdWxkIGJlIGRvbmUKPiArCcKgKiB3aXRob3V0 IHNodXR0aW5nIG9mZiB0aGUgcGlwZSAoaWYgb25seSBvbmUgcGlwZSBpcyBhY3RpdmUpLgo+ICsJ wqAqLwo+ICsJdmFsIHw9IEJYVF9DRENMS19DRDJYX1BJUEVfTk9ORTsKPiArCS8qCj4gKwnCoCog RGlzYWJsZSBTU0EgUHJlY2hhcmdlIHdoZW4gQ0QgY2xvY2sgZnJlcXVlbmN5IDwgNTAwIE1IeiwK PiArCcKgKiBlbmFibGUgb3RoZXJ3aXNlLgo+ICsJwqAqLwo+ICsJaWYgKGNkY2xrID49IDUwMDAw MCkKPiArCQl2YWwgfD0gQlhUX0NEQ0xLX1NTQV9QUkVDSEFSR0VfRU5BQkxFOwo+ICsJSTkxNV9X UklURShDRENMS19DVEwsIHZhbCk7Cj4gwqAKPiDCoAltdXRleF9sb2NrKCZkZXZfcHJpdi0+cnBz Lmh3X2xvY2spOwo+IMKgCXJldCA9IHNhbmR5YnJpZGdlX3Bjb2RlX3dyaXRlKGRldl9wcml2LCBI U1dfUENPREVfREVfV1JJVEVfRlJFUV9SRVEsCj4gQEAgLTU1MjUsOCArNTUyNCw3IEBAIHZvaWQg YnJveHRvbl9pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDC oAo+IMKgdm9pZCBicm94dG9uX3VuaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gwqB7Cj4gLQkvKiBTZXQgbWluaW11bSAoYnlwYXNzKSBmcmVxdWVuY3ksIGlu IGVmZmVjdCB0dXJuaW5nIG9mZiB0aGUgREUgUExMICovCj4gLQlicm94dG9uX3NldF9jZGNsayhk ZXZfcHJpdiwgMTkyMDApOwo+ICsJYnJveHRvbl9zZXRfY2RjbGsoZGV2X3ByaXYsIGRldl9wcml2 LT5jZGNsa19wbGwucmVmKTsKPiDCoH0KPiDCoAo+IMKgc3RhdGljIGludCBza2xfY2FsY19jZGNs ayhpbnQgbWF4X3BpeGNsaywgaW50IHZjbykKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==