From mboxrd@z Thu Jan 1 00:00:00 1970 From: Robert Bragg Subject: [RFC v2] drm: Enable dynamic debug for DRM_[DEV]_DEBUG* Date: Wed, 7 Dec 2016 18:35:29 +0000 Message-ID: <20161207183529.11256-1-robert@sixbynine.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org Cc: Daniel Vetter , Tvrtko Ursulin , dri-devel@lists.freedesktop.org, Robert Bragg List-Id: dri-devel@lists.freedesktop.org VGhpcyBpcyBzdGlsbCBtaXNzaW5nIGNvcnJlc3BvbmRpbmcgZG9jdW1lbnRhdGlvbiBjaGFuZ2Vz LCBhbmQgSSBoYXZlbid0Cm1vdmVkIGFueXRoaW5nIHRvIGRybV9wcmludC5oIHlldCwgYXMgc3Vn Z2VzdGVkLgoKU2VuZGluZyBvdXQgd2l0aCBhIGZldyBmdW5jdGlvbmFsIGltcHJvdmVtZW50cyBm aXJzdCB0byBnZXQgYWdyZWVtZW50CmJlZm9yZSBkb2N1bWVudGluZyBhbnl0aGluZyAoY2hhbmdl cyBzdW1tYXJpc2VkIGluIHYyOiBzZWN0aW9uIGJlbG93KQoKSW4gcGFydGljdWxhciwgYWZmZWN0 aW5nIHRoZSBvdXRwdXQgZm9ybWF0LCBJIHN0b2xlIGFuIGlkZWEgZnJvbSBUdnJ0a28KVXJzdWxp biB0byBoYXZlIHRoZSBwcmVmaXggZm9yIG1lc3NhZ2VzIGJlIGJhc2VkIG9uIHRoZSBkcml2ZXIg bmFtZSwKc3VjaCBhcyAiW2k5MTVdIiBpbnN0ZWFkIG9mIGFsd2F5cyBiZWluZyAiW2RybV0iLgoK RGVwZW5kaW5nIG9uIHBlb3BsZXMgdGhvdWdodHMgb24gY29tcGF0aWJpbGl0eSwgd2UgY291bGQg Y29uc2lkZXIKcmVtb3ZpbmcgdGhlIHByZWZpeCBnaXZlbiB0aGF0IHRoZSBkeW5hbWljIGRlYnVn IGNvbnRyb2wgaW50ZXJmYWNlIGhhcyBhCndheSBvZiBzcGVjaWZ5aW5nIHRoYXQgbWVzc2FnZXMg c2hvdWxkIGluY2x1ZGUgYSBtb2R1bGUgbmFtZSwgZnVuY3Rpb24Kb3IgbGluZSBpbmZvIGxpa2U6 CgplY2hvICJtb2R1bGUgaTkxNSArbWZwIiA+IGR5bmFtaWNfZGVidWcvY29udHJvbAoKVGhhdCB3 b3VsZCBlbmFibGUgYWxsIGk5MTUgZGVidWcgbWVzc2FnZXMgd2l0aCBhIG1vZHVsZSBhbmQgZnVu Y3Rpb24KcHJlZml4LgoKQSB0cmFkZS1vZmYgd291bGQgYmUgdGhhdCBhbnlvbmUgb25seSB1c2lu ZyB0aGUgZHJtLmRybV9kZWJ1ZyBpbnRlcmZhY2UKdG8gY29udHJvbCBtZXNzYWdlcyB3b3VsZCBs b29zZSBzb21lIGluZm9ybWF0aW9uLiBJZiB3ZSByZWFsbHkgd2FudGVkIHdlCmNvdWxkIGhhdmUg dGhlIGJlc3Qgb2YgYm90aCBieSBhZGRpbmcgYSB1dGlsaXR5IHByaW50aW5nIGFwaSB0aGF0IGNh bgpyZWNvZ25pc2Ugd2hlbiBwcmludGluZyBkdWUgdG8gYSBkeW5hbWljIGRlYnVnIGNvbnRyb2wg cXVlcnkgdnMKZHJtLmRybV9kZWJ1ZyB0byBjb25kaXRpb25hbGx5IGFkZCB0aGUgcHJlZml4LgoK LS0tID44IC0tLSAoZ2l0IGFtIC0tc2Npc3NvcnMpCgpEeW5hbWljIGRlYnVnIG1lc3NhZ2VzIChy ZWY6IERvY3VtZW50YXRpb24vZHluYW1pYy1kZWJ1Zy1ob3d0by50eHQpCmFsbG93IGZpbmUgZ3Jh aW5lZCBjb250cm9sIG92ZXIgd2hpY2ggZGVidWcgbWVzc2FnZXMgYXJlIGVuYWJsZWQgd2l0aApy dW50aW1lIGNvbnRyb2wgdGhyb3VnaCAvc3lzZnMva2VybmVsL2RlYnVnL2R5bmFtaWNfZGVidWcv Y29udHJvbAoKVGhpcyBwcm92aWRlcyBtb3JlIGNvbnRyb2wgdGhhbiB0aGUgY3VycmVudCBkcm0u ZHJtX2RlYnVnIHBhcmFtZXRlcgp3aGljaCBmb3Igc29tZSB1c2UgY2FzZXMgaXMgaW1wcmFjdGlj YWwgdG8gdXNlIGdpdmVuIGhvdyBjaGF0dHkKc29tZSBkcm0gZGVidWcgY2F0ZWdvcmllcyBhcmUu CgpGb3IgZXhhbXBsZSBhbGwgZGVidWcgbWVzc2FnZXMgaW4gaTkxNV9kcm0uYyBjYW4gYmUgZW5h YmxlZCB3aXRoOgplY2hvICJmaWxlIGk5MTVfcGVyZi5jICtwIiA+IGR5bmFtaWNfZGVidWcvY29u dHJvbAoKVGhpcyBkb2Vzbid0IHN0cmljdGx5IG1haW50YWluIGZvcm1hdCBjb21wYXRpYmlsaXR5 IHdpdGggdGhlIHByZXZpb3VzCmRlYnVnIG1lc3NhZ2VzIHNpbmNlIHRoZSBjYXRlZ29yeSBpcyBu b3cgYWRkZWQgYXMgcGFydCBvZiB0aGUgcHJlZml4Cmxpa2UgIltkcm1dW2ttc10gTm8gRkIgZm91 bmQiLiBBZGRpbmcgdGhlIGNhdGVnb3JpZXMgd2l0aCBhIGNvbnNpc3RlbnQKZm9ybWF0IG1ha2Vz IGl0IHBvc3NpYmxlIHRvIGVuYWJsZSBjYXRlZ29yaWVzIHdpdGggYSBkeW5hbWljIGRlYnVnCnF1 ZXJ5IGxpa2U6IGVjaG8gImZvcm1hdCBba21zXSArcCIgPiBkeW5hbWljX2RlYnVnL2NvbnRyb2wK ClRoaXMgbWFpbnRhaW5zIHN1cHBvcnQgZm9yIGVuYWJsaW5nIGRlYnVnIG1lc3NhZ2VzIHVzaW5n IHRoZSBkcm1fZGVidWcKcGFyYW1ldGVyLiBJZiBkeW5hbWljIGRlYnVnIGlzIG5vdCBlbmFibGVk IHZpYSBDT05GSUdfRFlOQU1JQ19ERUJVRyB0aGUKZGVidWcgbWVzc2FnZXMgZXNzZW50aWFsbHkg d29yayBhcyBiZWZvcmUsIGV4Y2VwdCB3aXRoIHRoZSBpbmNsdXNpb24gb2YKY2F0ZWdvcmllcyBp biB0aGUgZm9ybWF0IHN0cmluZ3MgYXMgZGVzY3JpYmVkIGFib3ZlLgoKVGhpcyByZW1vdmVzIHRo ZSBkcm1fW2Rldl9dcHJpbnRrIHdyYXBwZXJzIGNvbnNpZGVyaW5nIHRoYXQgdGhlIGR5bmFtaWMK ZGVidWcgbWFjcm9zIGFyZSBvbmx5IHVzZWZ1bCBpZiB0aGV5IGNhbiB0cmFjayB0aGUgX19GSUxF X18sIF9fZnVuY19fCmFuZCBfX0xJTkVfXyB3aGVyZSB0aGV5IGFyZSBjYWxsZWQuIFRoZSB3cmFw cGVyIGRpZG4ndCBzZWVtIG5lY2Vzc2FyeSBpbgp0aGUgRFJNX1VUX05PTkUgY2FzZSB3aXRoIG5v IGNhdGVnb3J5IGZsYWcuCgpUaGUgbm9uIF9ERVYgbWFjcm9zIGFyZSBubyBsb25nZXIgZGVmaW5l ZCBpbiB0ZXJtcyBvZiBwYXNzaW5nIE5VTEwgdG8gYQpfREVWIHZhcmlhbnQgdG8gYXZvaWQgaGF2 ZSB0aGUgY29yZS5jIGRldl9wcmludGsgaW1wbGVtZW50YXRpb24gYWRkaW5nCiIoTlVMTCBkZXZp Y2UgKikiLiBUaGUgcHJldmlvdXMgZHJtX1tkZXZfXXByaW5rIGZ1bmN0aW9uIHVzZWQgdG8gaGFu ZGxlCnRoaXMgYXMgYSBzcGVjaWFsIGNhc2UuCgpJbnN0ZWFkIG9mIHVzaW5nIERSTV9OQU1FIHRv IGFkZCBbZHJtXSB0byB0aGUgc3RhcnQgb2YgZXZlcnkgbWVzc2FnZSwKdGhlIHByZWZpeCBpcyBu b3cgYmFzZWQgb24gbW9kdWxlX25hbWUoVEhJU19NT0RVTEUpIHNvIGl0IHdpbGwgYmUgW2RybV0K b3IgZS5nLiBbaTkxNV0gZm9yIHRoZSBJbnRlbCBkcml2ZXIuIExhdGVyIHdlIG1pZ2h0IGNvbnNp ZGVyIHJlbW92aW5nCnRoZSBwcmVmaXggYWx0b2dldGhlciBjb25zaWRlcmluZyB0aGF0IHRoZSBk eW5hbWljIGRlYnVnIGNvbnRyb2wKaW50ZXJmYWNlIGhhcyBhIHdheSBvZiBvcHRpb25hbGx5IGFk ZGluZyB0aGUgbW9kdWxlLCBmdW5jdGlvbiBvciBsaW5lIHRvCnRoZSBmb3JtYXR0aW5nIG9mIG1l c3NhZ2VzLgoKdjI6CiAgICBBZGQgY2F0ZWdvcmllcyB0byBmb3JtYXQgbGlrZSAiW2RybV1ba21z XSBObyBGQiBmb3VuZCIKICAgIE9ubHkgc2luZ2xlIGNvbmRpdGlvbmFsIGNhbGwgcGVyIG1lc3Nh Z2UgKG1hY3JvcyBleHBhbmQgdG8gbGVzcyBjb2RlKQogICAgVXNlcyBfX2R5bmFtaWNfcHJfZGVi dWcvZGV2X2RiZyBmb3IgZHluYW1pYyBmb3JtYXR0aW5nIGZlYXR1cmVzCiAgICBVc2UgbW9kdWxl IG5hbWUgZm9yIG1zZyBwcmVmaXggbGlrZSBbZHJtXSBvciBbaTkxNV0KClNpZ25lZC1vZmYtYnk6 IFJvYmVydCBCcmFnZyA8cm9iZXJ0QHNpeGJ5bmluZS5vcmc+CkNjOiBkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNo PgpDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vZHJtX2Rydi5jIHwgIDQ3IC0tLS0tLS0tLS0tCiBpbmNsdWRlL2RybS9kcm1Q LmggICAgICAgIHwgMjAyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTI3IGluc2VydGlvbnMoKyksIDEyMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9kcnYuYwppbmRleCBmNzRiN2QwLi4yNWQwMGFhIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMKQEAgLTY1 LDUzICs2NSw2IEBAIHN0YXRpYyBzdHJ1Y3QgaWRyIGRybV9taW5vcnNfaWRyOwogCiBzdGF0aWMg c3RydWN0IGRlbnRyeSAqZHJtX2RlYnVnZnNfcm9vdDsKIAotI2RlZmluZSBEUk1fUFJJTlRLX0ZN VCAiWyIgRFJNX05BTUUgIjolc10lcyAlcFYiCi0KLXZvaWQgZHJtX2Rldl9wcmludGsoY29uc3Qg c3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpsZXZlbCwKLQkJICAgIHVuc2lnbmVkIGlu dCBjYXRlZ29yeSwgY29uc3QgY2hhciAqZnVuY3Rpb25fbmFtZSwKLQkJICAgIGNvbnN0IGNoYXIg KnByZWZpeCwgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCi17Ci0Jc3RydWN0IHZhX2Zvcm1hdCB2 YWY7Ci0JdmFfbGlzdCBhcmdzOwotCi0JaWYgKGNhdGVnb3J5ICE9IERSTV9VVF9OT05FICYmICEo ZHJtX2RlYnVnICYgY2F0ZWdvcnkpKQotCQlyZXR1cm47Ci0KLQl2YV9zdGFydChhcmdzLCBmb3Jt YXQpOwotCXZhZi5mbXQgPSBmb3JtYXQ7Ci0JdmFmLnZhID0gJmFyZ3M7Ci0KLQlpZiAoZGV2KQot CQlkZXZfcHJpbnRrKGxldmVsLCBkZXYsIERSTV9QUklOVEtfRk1ULCBmdW5jdGlvbl9uYW1lLCBw cmVmaXgsCi0JCQkgICAmdmFmKTsKLQllbHNlCi0JCXByaW50aygiJXMiIERSTV9QUklOVEtfRk1U LCBsZXZlbCwgZnVuY3Rpb25fbmFtZSwgcHJlZml4LCAmdmFmKTsKLQotCXZhX2VuZChhcmdzKTsK LX0KLUVYUE9SVF9TWU1CT0woZHJtX2Rldl9wcmludGspOwotCi12b2lkIGRybV9wcmludGsoY29u c3QgY2hhciAqbGV2ZWwsIHVuc2lnbmVkIGludCBjYXRlZ29yeSwKLQkJY29uc3QgY2hhciAqZm9y bWF0LCAuLi4pCi17Ci0Jc3RydWN0IHZhX2Zvcm1hdCB2YWY7Ci0JdmFfbGlzdCBhcmdzOwotCi0J aWYgKGNhdGVnb3J5ICE9IERSTV9VVF9OT05FICYmICEoZHJtX2RlYnVnICYgY2F0ZWdvcnkpKQot CQlyZXR1cm47Ci0KLQl2YV9zdGFydChhcmdzLCBmb3JtYXQpOwotCXZhZi5mbXQgPSBmb3JtYXQ7 Ci0JdmFmLnZhID0gJmFyZ3M7Ci0KLQlwcmludGsoIiVzIiAiWyIgRFJNX05BTUUgIjolcHNdJXMg JXBWIiwKLQkgICAgICAgbGV2ZWwsIF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSwKLQkgICAg ICAgc3RyY21wKGxldmVsLCBLRVJOX0VSUikgPT0gMCA/ICIgKkVSUk9SKiIgOiAiIiwgJnZhZik7 Ci0KLQl2YV9lbmQoYXJncyk7Ci19Ci1FWFBPUlRfU1lNQk9MKGRybV9wcmludGspOwotCiAvKgog ICogRFJNIE1pbm9ycwogICogQSBEUk0gZGV2aWNlIGNhbiBwcm92aWRlIHNldmVyYWwgY2hhci1k ZXYgaW50ZXJmYWNlcyBvbiB0aGUgRFJNLU1ham9yLiBFYWNoCmRpZmYgLS1naXQgYS9pbmNsdWRl L2RybS9kcm1QLmggYi9pbmNsdWRlL2RybS9kcm1QLmgKaW5kZXggYTljZmQzMy4uMDQxNjExNCAx MDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtUC5oCisrKyBiL2luY2x1ZGUvZHJtL2RybVAuaApA QCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KICNpbmNsdWRlIDxs aW51eC93b3JrcXVldWUuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KKyNpbmNsdWRl IDxsaW51eC9keW5hbWljX2RlYnVnLmg+CiAKICNpbmNsdWRlIDxhc20vbW1hbi5oPgogI2luY2x1 ZGUgPGFzbS9wZ2FsbG9jLmg+CkBAIC0xMjksMTUgKzEzMCwyMiBAQCBzdHJ1Y3QgZG1hX2J1Zl9h dHRhY2htZW50OwogICogcnVuLXRpbWUgYnkgZWNob2luZyB0aGUgZGVidWcgdmFsdWUgaW4gaXRz IHN5c2ZzIG5vZGU6CiAgKiAgICMgZWNobyAweGYgPiAvc3lzL21vZHVsZS9kcm0vcGFyYW1ldGVy cy9kZWJ1ZwogICovCi0jZGVmaW5lIERSTV9VVF9OT05FCQkweDAwCiAjZGVmaW5lIERSTV9VVF9D T1JFIAkJMHgwMQorI2RlZmluZSBfRFJNX1VUX2NvcmUJCTB4MDEKICNkZWZpbmUgRFJNX1VUX0RS SVZFUgkJMHgwMgorI2RlZmluZSBfRFJNX1VUX2RydgkJMHgwMgogI2RlZmluZSBEUk1fVVRfS01T CQkweDA0CisjZGVmaW5lIF9EUk1fVVRfa21zCQkweDA0CiAjZGVmaW5lIERSTV9VVF9QUklNRQkJ MHgwOAorI2RlZmluZSBfRFJNX1VUX3ByaW1lCQkweDA4CiAjZGVmaW5lIERSTV9VVF9BVE9NSUMJ CTB4MTAKKyNkZWZpbmUgX0RSTV9VVF9hdG9taWMJCTB4MTAKICNkZWZpbmUgRFJNX1VUX1ZCTAkJ MHgyMAorI2RlZmluZSBfRFJNX1VUX3ZibAkJMHgyMAogI2RlZmluZSBEUk1fVVRfU1RBVEUJCTB4 NDAKIAorI2RlZmluZSBfRFJNX1BSRUZJWCBtb2R1bGVfbmFtZShUSElTX01PRFVMRSkKKwogLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLwogLyoqIFxuYW1lIERSTSB0ZW1wbGF0ZSBjdXN0b21pemF0aW9uIGRlZmF1 bHRzICovCiAvKkB7Ki8KQEAgLTE0NiwyNSArMTU0LDE5IEBAIHN0cnVjdCBkbWFfYnVmX2F0dGFj aG1lbnQ7CiAvKiogXG5hbWUgTWFjcm9zIHRvIG1ha2UgcHJpbnRrIGVhc2llciAqLwogLypAeyov CiAKLSNkZWZpbmUgX0RSTV9QUklOVEsob25jZSwgbGV2ZWwsIGZtdCwgLi4uKQkJCQlcCi0JZG8g ewkJCQkJCQkJXAotCQlwcmludGsjI29uY2UoS0VSTl8jI2xldmVsICJbIiBEUk1fTkFNRSAiXSAi IGZtdCwJXAotCQkJICAgICAjI19fVkFfQVJHU19fKTsJCQkJXAotCX0gd2hpbGUgKDApCi0KLSNk ZWZpbmUgRFJNX0lORk8oZm10LCAuLi4pCQkJCQkJXAotCV9EUk1fUFJJTlRLKCwgSU5GTywgZm10 LCAjI19fVkFfQVJHU19fKQotI2RlZmluZSBEUk1fTk9URShmbXQsIC4uLikJCQkJCQlcCi0JX0RS TV9QUklOVEsoLCBOT1RJQ0UsIGZtdCwgIyNfX1ZBX0FSR1NfXykKLSNkZWZpbmUgRFJNX1dBUk4o Zm10LCAuLi4pCQkJCQkJXAotCV9EUk1fUFJJTlRLKCwgV0FSTklORywgZm10LCAjI19fVkFfQVJH U19fKQotCi0jZGVmaW5lIERSTV9JTkZPX09OQ0UoZm10LCAuLi4pCQkJCQkJXAotCV9EUk1fUFJJ TlRLKF9vbmNlLCBJTkZPLCBmbXQsICMjX19WQV9BUkdTX18pCi0jZGVmaW5lIERSTV9OT1RFX09O Q0UoZm10LCAuLi4pCQkJCQkJXAotCV9EUk1fUFJJTlRLKF9vbmNlLCBOT1RJQ0UsIGZtdCwgIyNf X1ZBX0FSR1NfXykKLSNkZWZpbmUgRFJNX1dBUk5fT05DRShmbXQsIC4uLikJCQkJCQlcCi0JX0RS TV9QUklOVEsoX29uY2UsIFdBUk5JTkcsIGZtdCwgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgRFJN X0lORk8oZm10LCBhcmdzLi4uKQkJCQkJCVwKKwlwcl9pbmZvKCJbJXNdICIgZm10LCBfRFJNX1BS RUZJWCwgIyNhcmdzKQorI2RlZmluZSBEUk1fTk9URShmbXQsIGFyZ3MuLi4pCQkJCQkJXAorCXBy X25vdGljZSgiWyVzXSAiIGZtdCwgX0RSTV9QUkVGSVgsICMjYXJncykKKyNkZWZpbmUgRFJNX1dB Uk4oZm10LCBhcmdzLi4uKQkJCQkJCVwKKwlwcl93YXJuKCJbJXNdICIgZm10LCBfRFJNX1BSRUZJ WCwgIyNhcmdzKQorCisjZGVmaW5lIERSTV9JTkZPX09OQ0UoZm10LCBhcmdzLi4uKQkJCQkJXAor CXByX2luZm9fb25jZSgiWyVzXSAiIGZtdCwgX0RSTV9QUkVGSVgsICMjYXJncykKKyNkZWZpbmUg RFJNX05PVEVfT05DRShmbXQsIGFyZ3MuLi4pCQkJCQlcCisJcHJfbm90aWNlX29uY2UoIlslc10g IiBmbXQsIF9EUk1fUFJFRklYLCAjI2FyZ3MpCisjZGVmaW5lIERSTV9XQVJOX09OQ0UoZm10LCBh cmdzLi4uKQkJCQkJXAorCXByX3dhcm5fb25jZSgiWyVzXSAiIGZtdCwgX0RSTV9QUkVGSVgsICMj YXJncykKIAogLyoqCiAgKiBFcnJvciBvdXRwdXQuCkBAIC0xNzIsMTEgKzE3NCwxMCBAQCBzdHJ1 Y3QgZG1hX2J1Zl9hdHRhY2htZW50OwogICogXHBhcmFtIGZtdCBwcmludGYoKSBsaWtlIGZvcm1h dCBzdHJpbmcuCiAgKiBccGFyYW0gYXJnIGFyZ3VtZW50cwogICovCi0jZGVmaW5lIERSTV9ERVZf RVJST1IoZGV2LCBmbXQsIC4uLikJCQkJCVwKLQlkcm1fZGV2X3ByaW50ayhkZXYsIEtFUk5fRVJS LCBEUk1fVVRfTk9ORSwgX19mdW5jX18sICIgKkVSUk9SKiIsXAotCQkgICAgICAgZm10LCAjI19f VkFfQVJHU19fKQotI2RlZmluZSBEUk1fRVJST1IoZm10LCAuLi4pCQkJCQkJXAotCWRybV9wcmlu dGsoS0VSTl9FUlIsIERSTV9VVF9OT05FLCBmbXQsCSMjX19WQV9BUkdTX18pCisjZGVmaW5lIERS TV9ERVZfRVJST1IoZGV2LCBmbXQsIGFyZ3MuLi4pCQkJCVwKKwlkZXZfZXJyKGRldiwgIlslczol c10qRVJST1IqIiBmbXQsIF9EUk1fUFJFRklYLCBfX2Z1bmNfXywgIyNhcmdzKQorI2RlZmluZSBE Uk1fRVJST1IoZm10LCBhcmdzLi4uKQkJCQkJCVwKKwlwcl9lcnIoIlslczolc10qRVJST1IqIiBm bXQsIF9EUk1fUFJFRklYLCBfX2Z1bmNfXywgIyNhcmdzKQogCiAvKioKICAqIFJhdGUgbGltaXRl ZCBlcnJvciBvdXRwdXQuICBMaWtlIERSTV9FUlJPUigpIGJ1dCB3b24ndCBmbG9vZCB0aGUgbG9n LgpAQCAtMTg0LDgxICsxODUsMTI5IEBAIHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQ7CiAgKiBc cGFyYW0gZm10IHByaW50ZigpIGxpa2UgZm9ybWF0IHN0cmluZy4KICAqIFxwYXJhbSBhcmcgYXJn dW1lbnRzCiAgKi8KLSNkZWZpbmUgRFJNX0RFVl9FUlJPUl9SQVRFTElNSVRFRChkZXYsIGZtdCwg Li4uKQkJCVwKKyNkZWZpbmUgRFJNX0RFVl9FUlJPUl9SQVRFTElNSVRFRChkZXYsIGZtdCwgYXJn cy4uLikJCQlcCiAoewkJCQkJCQkJCVwKIAlzdGF0aWMgREVGSU5FX1JBVEVMSU1JVF9TVEFURShf cnMsCQkJCVwKIAkJCQkgICAgICBERUZBVUxUX1JBVEVMSU1JVF9JTlRFUlZBTCwJXAogCQkJCSAg ICAgIERFRkFVTFRfUkFURUxJTUlUX0JVUlNUKTsJCVwKIAkJCQkJCQkJCVwKIAlpZiAoX19yYXRl bGltaXQoJl9ycykpCQkJCQkJXAotCQlEUk1fREVWX0VSUk9SKGRldiwgZm10LCAjI19fVkFfQVJH U19fKTsJCQlcCisJCURSTV9ERVZfRVJST1IoZGV2LCBmbXQsICMjYXJncyk7CQkJXAogfSkKLSNk ZWZpbmUgRFJNX0VSUk9SX1JBVEVMSU1JVEVEKGZtdCwgLi4uKQkJCQkJXAotCURSTV9ERVZfRVJS T1JfUkFURUxJTUlURUQoTlVMTCwgZm10LCAjI19fVkFfQVJHU19fKQotCi0jZGVmaW5lIERSTV9E RVZfSU5GTyhkZXYsIGZtdCwgLi4uKQkJCQkJXAotCWRybV9kZXZfcHJpbnRrKGRldiwgS0VSTl9J TkZPLCBEUk1fVVRfTk9ORSwgX19mdW5jX18sICIiLCBmbXQsCVwKLQkJICAgICAgICMjX19WQV9B UkdTX18pCi0KLSNkZWZpbmUgRFJNX0RFVl9JTkZPX09OQ0UoZGV2LCBmbXQsIC4uLikJCQkJXAor I2RlZmluZSBEUk1fRVJST1JfUkFURUxJTUlURUQoZm10LCBhcmdzLi4uKQkJCQlcCiAoewkJCQkJ CQkJCVwKLQlzdGF0aWMgYm9vbCBfX3ByaW50X29uY2UgX19yZWFkX21vc3RseTsJCQkJXAotCWlm ICghX19wcmludF9vbmNlKSB7CQkJCQkJXAotCQlfX3ByaW50X29uY2UgPSB0cnVlOwkJCQkJXAot CQlEUk1fREVWX0lORk8oZGV2LCBmbXQsICMjX19WQV9BUkdTX18pOwkJCVwKLQl9CQkJCQkJCQlc CisJc3RhdGljIERFRklORV9SQVRFTElNSVRfU1RBVEUoX3JzLAkJCQlcCisJCQkJICAgICAgREVG QVVMVF9SQVRFTElNSVRfSU5URVJWQUwsCVwKKwkJCQkgICAgICBERUZBVUxUX1JBVEVMSU1JVF9C VVJTVCk7CQlcCisJCQkJCQkJCQlcCisJaWYgKF9fcmF0ZWxpbWl0KCZfcnMpKQkJCQkJCVwKKwkJ RFJNX0VSUk9SKGZtdCwgIyNhcmdzKTsJCQkJCVwKIH0pCiAKKyNkZWZpbmUgRFJNX0RFVl9JTkZP KGRldiwgZm10LCBhcmdzLi4uKQkJCQkJXAorCWRldl9pbmZvKGRldiwgIlslczolc10gIiBmbXQs IF9EUk1fUFJFRklYLCBfX2Z1bmNfXywgIyNhcmdzKQorCisjZGVmaW5lIERSTV9ERVZfSU5GT19P TkNFKGRldiwgZm10LCBhcmdzLi4uKQkJCQlcCisJZGV2X2luZm9fb25jZShkZXYsICJbJXM6JXNd ICIgZm10LCBfRFJNX1BSRUZJWCwgX19mdW5jX18sICMjYXJncykKKwogLyoqCiAgKiBEZWJ1ZyBv dXRwdXQuCiAgKgogICogXHBhcmFtIGZtdCBwcmludGYoKSBsaWtlIGZvcm1hdCBzdHJpbmcuCiAg KiBccGFyYW0gYXJnIGFyZ3VtZW50cwogICovCisKKyNpZiBkZWZpbmVkKENPTkZJR19EWU5BTUlD X0RFQlVHKQorI2RlZmluZSBEUk1fREVGX0RZTl9ERUJVR19EQVRBKG5hbWUsIGZtdCkJCQkJXAor CURFRklORV9EWU5BTUlDX0RFQlVHX01FVEFEQVRBKG5hbWUsIGZtdCk7CisjZGVmaW5lIERSTV9E WU5fREVCVUdfQlJBTkNIKGRlc2NyaXB0b3IpCQkJCVwKKwlEWU5BTUlDX0RFQlVHX0JSQU5DSChk ZXNjcmlwdG9yKQorCisjZGVmaW5lIF9fZHJtX2R5bl9kZXZfZGJnKGRlc2NyaXB0b3IsIGRldiwg Zm10LCBhcmdzLi4uKQkJXAorCV9fZHluYW1pY19kZXZfZGJnKGRlc2NyaXB0b3IsIGRldiwgZm10 LCAjI2FyZ3MpCisjZGVmaW5lIF9fZHJtX2R5bl9wcl9kZWJ1ZyhkZXNjcmlwdG9yLCBmbXQsIGFy Z3MuLi4pCQkJXAorCV9fZHluYW1pY19wcl9kZWJ1ZyhkZXNjcmlwdG9yLCBmbXQsICMjYXJncykK KyNlbHNlCisjZGVmaW5lIERSTV9ERUZfRFlOX0RFQlVHX0RBVEEobmFtZSwgZm10KQlkbyB7fSB3 aGlsZSgwKQorI2RlZmluZSBEUk1fRFlOX0RFQlVHX0JSQU5DSChkZXNjcmlwdG9yKQkwCisKKyNk ZWZpbmUgX19kcm1fZHluX2Rldl9kYmcoZGVzY3JpcHRvciwgZGV2LCBmbXQsIGFyZ3MuLi4pCQlc CisJZGV2X2RiZyhkZXYsIGZtdCwgIyNhcmdzKQorI2RlZmluZSBfX2RybV9keW5fcHJfZGVidWco ZGVzY3JpcHRvciwgZm10LCBhcmdzLi4uKQkJCVwKKwlwcl9kZWJ1ZyhmbXQsICMjYXJncykKKyNl bmRpZgorCisvKiBJZiBtb2RpZnlpbmcsIG5vdGUgdGhlIGR1cGxpY2F0aW9uIG9mIHRoZSBmb3Jt YXQgc3RyaW5ncyBmb3IgdGhlCisgKiBkeW5hbWljIGRlYnVnIG1ldGEgZGF0YSBhbmQgZm9yIHBh c3NpbmcgdG8gcHJpbnRrLiBXZSBkb24ndAorICogZGVyZWYgZGVzY3JpcHRvci0+Zm9ybWF0IHRv IGhhbmRsZSBidWlsZGluZyB3aXRob3V0CisgKiBDT05GSUdfRFlOQU1JQ19ERUJVRworICovCisj ZGVmaW5lIF9EUk1fREVWX0RFQlVHKGRldiwgY2F0LCBmbXQsIGFyZ3MuLi4pCQkJCVwKKyh7CQkJ CQkJCQkJXAorCURSTV9ERUZfRFlOX0RFQlVHX0RBVEEoZGVzY3JpcHRvciwgIlslczolc11bIiNj YXQiXSAiIGZtdCk7CVwKKwlpZiAoRFJNX0RZTl9ERUJVR19CUkFOQ0goZGVzY3JpcHRvcikgfHwJ CQkJXAorCSAgICB1bmxpa2VseShkcm1fZGVidWcgJiBfRFJNX1VUXyMjY2F0KSkgewkJCVwKKwkJ X19kcm1fZHluX2Rldl9kYmcoJmRlc2NyaXB0b3IsIGRldiwJCQlcCisJCQkJICAiWyVzOiVzXVsi I2NhdCJdICIgZm10LAkJXAorCQkJCSAgX0RSTV9QUkVGSVgsIF9fZnVuY19fLCAjI2FyZ3MpOwlc CisJfQkJCQkJCQkJXAorfSkKKyNkZWZpbmUgX0RSTV9ERUJVRyhjYXQsIGZtdCwgYXJncy4uLikJ CQkJCVwKKyh7CQkJCQkJCQkJXAorCURSTV9ERUZfRFlOX0RFQlVHX0RBVEEoZGVzY3JpcHRvciwg Ilslczolc11bIiNjYXQiXSAiIGZtdCk7CVwKKwlpZiAoRFJNX0RZTl9ERUJVR19CUkFOQ0goZGVz Y3JpcHRvcikgfHwJCQkJXAorCSAgICB1bmxpa2VseShkcm1fZGVidWcgJiBfRFJNX1VUXyMjY2F0 KSkgewkJCVwKKwkJX19kcm1fZHluX3ByX2RlYnVnKCZkZXNjcmlwdG9yLAkJCQlcCisJCQkJICAg Ilslczolc11bIiNjYXQiXSAiIGZtdCwJCVwKKwkJCQkgICBfRFJNX1BSRUZJWCwgX19mdW5jX18s ICMjYXJncyk7CVwKKwl9CQkJCQkJCQlcCit9KQorCiAjZGVmaW5lIERSTV9ERVZfREVCVUcoZGV2 LCBmbXQsIGFyZ3MuLi4pCQkJCVwKLQlkcm1fZGV2X3ByaW50ayhkZXYsIEtFUk5fREVCVUcsIERS TV9VVF9DT1JFLCBfX2Z1bmNfXywgIiIsIGZtdCwJXAotCQkgICAgICAgIyNhcmdzKQotI2RlZmlu ZSBEUk1fREVCVUcoZm10LCAuLi4pCQkJCQkJXAotCWRybV9wcmludGsoS0VSTl9ERUJVRywgRFJN X1VUX0NPUkUsIGZtdCwgIyNfX1ZBX0FSR1NfXykKKwlfRFJNX0RFVl9ERUJVRyhkZXYsIGNvcmUs IGZtdCwgIyNhcmdzKQorI2RlZmluZSBEUk1fREVCVUcoZm10LCBhcmdzLi4uKQkJCQkJCVwKKwlf RFJNX0RFQlVHKGNvcmUsIGZtdCwgIyNhcmdzKQogCiAjZGVmaW5lIERSTV9ERVZfREVCVUdfRFJJ VkVSKGRldiwgZm10LCBhcmdzLi4uKQkJCQlcCi0JZHJtX2Rldl9wcmludGsoZGV2LCBLRVJOX0RF QlVHLCBEUk1fVVRfRFJJVkVSLCBfX2Z1bmNfXywgIiIsCVwKLQkJICAgICAgIGZtdCwgIyNhcmdz KQotI2RlZmluZSBEUk1fREVCVUdfRFJJVkVSKGZtdCwgLi4uKQkJCQkJXAotCWRybV9wcmludGso S0VSTl9ERUJVRywgRFJNX1VUX0RSSVZFUiwgZm10LCAjI19fVkFfQVJHU19fKQorCV9EUk1fREVW X0RFQlVHKGRldiwgZHJ2LCBmbXQsICMjYXJncykKKyNkZWZpbmUgRFJNX0RFQlVHX0RSSVZFUihm bXQsIGFyZ3MuLi4pCQkJCQlcCisJX0RSTV9ERUJVRyhkcnYsIGZtdCwgIyNhcmdzKQogCiAjZGVm aW5lIERSTV9ERVZfREVCVUdfS01TKGRldiwgZm10LCBhcmdzLi4uKQkJCQlcCi0JZHJtX2Rldl9w cmludGsoZGV2LCBLRVJOX0RFQlVHLCBEUk1fVVRfS01TLCBfX2Z1bmNfXywgIiIsIGZtdCwJXAot CQkgICAgICAgIyNhcmdzKQotI2RlZmluZSBEUk1fREVCVUdfS01TKGZtdCwgLi4uKQkJCQkJXAot CWRybV9wcmludGsoS0VSTl9ERUJVRywgRFJNX1VUX0tNUywgZm10LCAjI19fVkFfQVJHU19fKQor CV9EUk1fREVWX0RFQlVHKGRldiwga21zLCBmbXQsICMjYXJncykKKyNkZWZpbmUgRFJNX0RFQlVH X0tNUyhmbXQsIGFyZ3MuLi4pCQkJCQlcCisJX0RSTV9ERUJVRyhrbXMsIGZtdCwgIyNhcmdzKQog CiAjZGVmaW5lIERSTV9ERVZfREVCVUdfUFJJTUUoZGV2LCBmbXQsIGFyZ3MuLi4pCQkJCVwKLQlk cm1fZGV2X3ByaW50ayhkZXYsIEtFUk5fREVCVUcsIERSTV9VVF9QUklNRSwgX19mdW5jX18sICIi LAlcCi0JCSAgICAgICBmbXQsICMjYXJncykKLSNkZWZpbmUgRFJNX0RFQlVHX1BSSU1FKGZtdCwg Li4uKQkJCQkJXAotCWRybV9wcmludGsoS0VSTl9ERUJVRywgRFJNX1VUX1BSSU1FLCBmbXQsICMj X19WQV9BUkdTX18pCisJX0RSTV9ERVZfREVCVUcoZGV2LCBwcmltZSwgZm10LCAjI2FyZ3MpCisj ZGVmaW5lIERSTV9ERUJVR19QUklNRShmbXQsIGFyZ3MuLi4pCQkJCQlcCisJX0RSTV9ERUJVRyhw cmltZSwgZm10LCAjI2FyZ3MpCiAKICNkZWZpbmUgRFJNX0RFVl9ERUJVR19BVE9NSUMoZGV2LCBm bXQsIGFyZ3MuLi4pCQkJCVwKLQlkcm1fZGV2X3ByaW50ayhkZXYsIEtFUk5fREVCVUcsIERSTV9V VF9BVE9NSUMsIF9fZnVuY19fLCAiIiwJXAotCQkgICAgICAgZm10LCAjI2FyZ3MpCi0jZGVmaW5l IERSTV9ERUJVR19BVE9NSUMoZm10LCAuLi4pCQkJCQlcCi0JZHJtX3ByaW50ayhLRVJOX0RFQlVH LCBEUk1fVVRfQVRPTUlDLCBmbXQsICMjX19WQV9BUkdTX18pCisJX0RSTV9ERVZfREVCVUcoZGV2 LCBhdG9taWMsIGZtdCwgIyNhcmdzKQorI2RlZmluZSBEUk1fREVCVUdfQVRPTUlDKGZtdCwgYXJn cy4uLikJCQkJCVwKKwlfRFJNX0RFQlVHKGF0b21pYywgZm10LCAjI2FyZ3MpCiAKICNkZWZpbmUg RFJNX0RFVl9ERUJVR19WQkwoZGV2LCBmbXQsIGFyZ3MuLi4pCQkJCVwKLQlkcm1fZGV2X3ByaW50 ayhkZXYsIEtFUk5fREVCVUcsIERSTV9VVF9WQkwsIF9fZnVuY19fLCAiIiwgZm10LAlcCi0JCSAg ICAgICAjI2FyZ3MpCi0jZGVmaW5lIERSTV9ERUJVR19WQkwoZm10LCAuLi4pCQkJCQlcCi0JZHJt X3ByaW50ayhLRVJOX0RFQlVHLCBEUk1fVVRfVkJMLCBmbXQsICMjX19WQV9BUkdTX18pCisJX0RS TV9ERVZfREVCVUcoZGV2LCB2YmwsIGZtdCwgIyNhcmdzKQorI2RlZmluZSBEUk1fREVCVUdfVkJM KGZtdCwgYXJncy4uLikJCQkJCVwKKwlfRFJNX0RFQlVHKHZibCwgZm10LCAjI2FyZ3MpCiAKLSNk ZWZpbmUgX0RSTV9ERVZfREVGSU5FX0RFQlVHX1JBVEVMSU1JVEVEKGRldiwgbGV2ZWwsIGZtdCwg YXJncy4uLikJXAorI2RlZmluZSBfRFJNX0RFVl9ERUZJTkVfREVCVUdfUkFURUxJTUlURUQoZGV2 LCBjYXRlZ29yeSwgZm10LCBhcmdzLi4uKQlcCiAoewkJCQkJCQkJCVwKIAlzdGF0aWMgREVGSU5F X1JBVEVMSU1JVF9TVEFURShfcnMsCQkJCVwKIAkJCQkgICAgICBERUZBVUxUX1JBVEVMSU1JVF9J TlRFUlZBTCwJXAogCQkJCSAgICAgIERFRkFVTFRfUkFURUxJTUlUX0JVUlNUKTsJCVwKIAlpZiAo X19yYXRlbGltaXQoJl9ycykpCQkJCQkJXAotCQlkcm1fZGV2X3ByaW50ayhkZXYsIEtFUk5fREVC VUcsIERSTV9VVF8gIyMgbGV2ZWwsCVwKLQkJCSAgICAgICBfX2Z1bmNfXywgIiIsIGZtdCwgIyNh cmdzKTsJCVwKKwkJX0RSTV9ERVZfREVCVUcoZGV2LCBjYXRlZ29yeSwgZm10LCAjI2FyZ3MpOwkJ XAorfSkKKyNkZWZpbmUgX0RSTV9ERUZJTkVfREVCVUdfUkFURUxJTUlURUQoY2F0ZWdvcnksIGZt dCwgYXJncy4uLikJXAorKHsJCQkJCQkJCQlcCisJc3RhdGljIERFRklORV9SQVRFTElNSVRfU1RB VEUoX3JzLAkJCQlcCisJCQkJICAgICAgREVGQVVMVF9SQVRFTElNSVRfSU5URVJWQUwsCVwKKwkJ CQkgICAgICBERUZBVUxUX1JBVEVMSU1JVF9CVVJTVCk7CQlcCisJaWYgKF9fcmF0ZWxpbWl0KCZf cnMpKQkJCQkJCVwKKwkJX0RSTV9ERUJVRyhjYXRlZ29yeSwgZm10LCAjI2FyZ3MpOwkJCVwKIH0p CiAKIC8qKgpAQCAtMjY4LDIxICszMTcsMjQgQEAgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudDsK ICAqIFxwYXJhbSBhcmcgYXJndW1lbnRzCiAgKi8KICNkZWZpbmUgRFJNX0RFVl9ERUJVR19SQVRF TElNSVRFRChkZXYsIGZtdCwgYXJncy4uLikJCQlcCi0JREVWX19EUk1fREVGSU5FX0RFQlVHX1JB VEVMSU1JVEVEKGRldiwgQ09SRSwgZm10LCAjI2FyZ3MpCisJX0RSTV9ERUZJTkVfREVCVUdfUkFU RUxJTUlURUQoZGV2LCBjb3JlLCBmbXQsICMjYXJncykKICNkZWZpbmUgRFJNX0RFQlVHX1JBVEVM SU1JVEVEKGZtdCwgYXJncy4uLikJCQkJXAotCURSTV9ERVZfREVCVUdfUkFURUxJTUlURUQoTlVM TCwgZm10LCAjI2FyZ3MpCisJX0RSTV9ERUZJTkVfREVCVUdfUkFURUxJTUlURUQoY29yZSwgZm10 LCAjI2FyZ3MpCisKICNkZWZpbmUgRFJNX0RFVl9ERUJVR19EUklWRVJfUkFURUxJTUlURUQoZGV2 LCBmbXQsIGFyZ3MuLi4pCQlcCi0JX0RSTV9ERVZfREVGSU5FX0RFQlVHX1JBVEVMSU1JVEVEKGRl diwgRFJJVkVSLCBmbXQsICMjYXJncykKKwlfRFJNX0RFVl9ERUZJTkVfREVCVUdfUkFURUxJTUlU RUQoZGV2LCBkcnYsIGZtdCwgIyNhcmdzKQogI2RlZmluZSBEUk1fREVCVUdfRFJJVkVSX1JBVEVM SU1JVEVEKGZtdCwgYXJncy4uLikJCQlcCi0JRFJNX0RFVl9ERUJVR19EUklWRVJfUkFURUxJTUlU RUQoTlVMTCwgZm10LCAjI2FyZ3MpCisJX0RSTV9ERVZfREVGSU5FX0RFQlVHX1JBVEVMSU1JVEVE KGRydiwgZm10LCAjI2FyZ3MpCisKICNkZWZpbmUgRFJNX0RFVl9ERUJVR19LTVNfUkFURUxJTUlU RUQoZGV2LCBmbXQsIGFyZ3MuLi4pCQlcCi0JX0RSTV9ERVZfREVGSU5FX0RFQlVHX1JBVEVMSU1J VEVEKGRldiwgS01TLCBmbXQsICMjYXJncykKKwlfRFJNX0RFVl9ERUZJTkVfREVCVUdfUkFURUxJ TUlURUQoZGV2LCBrbXMsIGZtdCwgIyNhcmdzKQogI2RlZmluZSBEUk1fREVCVUdfS01TX1JBVEVM SU1JVEVEKGZtdCwgYXJncy4uLikJCQkJXAotCURSTV9ERVZfREVCVUdfS01TX1JBVEVMSU1JVEVE KE5VTEwsIGZtdCwgIyNhcmdzKQorCV9EUk1fREVGSU5FX0RFQlVHX1JBVEVMSU1JVEVEKGttcywg Zm10LCAjI2FyZ3MpCisKICNkZWZpbmUgRFJNX0RFVl9ERUJVR19QUklNRV9SQVRFTElNSVRFRChk ZXYsIGZtdCwgYXJncy4uLikJCVwKLQlfRFJNX0RFVl9ERUZJTkVfREVCVUdfUkFURUxJTUlURUQo ZGV2LCBQUklNRSwgZm10LCAjI2FyZ3MpCisJX0RSTV9ERVZfREVGSU5FX0RFQlVHX1JBVEVMSU1J VEVEKGRldiwgcHJpbWUsIGZtdCwgIyNhcmdzKQogI2RlZmluZSBEUk1fREVCVUdfUFJJTUVfUkFU RUxJTUlURUQoZm10LCBhcmdzLi4uKQkJCVwKLQlEUk1fREVWX0RFQlVHX1BSSU1FX1JBVEVMSU1J VEVEKE5VTEwsIGZtdCwgIyNhcmdzKQorCV9EUk1fREVGSU5FX0RFQlVHX1JBVEVMSU1JVEVEKHBy aW1lLCBmbXQsICMjYXJncykKIAogLyogRm9ybWF0IHN0cmluZ3MgYW5kIGFyZ3VtZW50IHNwbGl0 dGVycyB0byBzaW1wbGlmeSBwcmludGluZwogICogdmFyaW91cyAiY29tcGxleCIgb2JqZWN0cwot LSAKMi4xMC4yCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK