From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH i-g-t 17/17] lib/igt_gt: Document and consolidate Date: Tue, 10 Feb 2015 19:06:00 +0100 Message-ID: <1423591560-9471-17-git-send-email-daniel.vetter@ffwll.ch> References: <1423591560-9471-1-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f41.google.com (mail-wg0-f41.google.com [74.125.82.41]) by gabe.freedesktop.org (Postfix) with ESMTP id 32E946E6B4 for ; Tue, 10 Feb 2015 10:05:02 -0800 (PST) Received: by mail-wg0-f41.google.com with SMTP id b13so15204367wgh.0 for ; Tue, 10 Feb 2015 10:05:01 -0800 (PST) In-Reply-To: <1423591560-9471-1-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel Graphics Development Cc: Daniel Vetter , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org QWxzbyBtb3ZlIGZvcmNld2FrZSBhbmQgc3RvcF9yaW5ncyBjb2RlIGZyb20gaWd0X2RlYnVnZnMg dG8gaWd0X2d0CnNpbmNlIGl0IGZpdHMgYmV0dGVyLiBBbmQgbW92ZSB0aGUgaGFuZyBpbmplY3Rp b24gZm9yayBoZWxwZXJzIGZyb20KaWd0X2F1eCB0byBpZ3RfZ3QsIHRvby4KCkFsc28gcHVzaCB0 aGUgaW50ZWxfZ2VuIGNhbGwgaW50byBpZ3RfaGFuZ19yaW5nIHdoaWxlIGF0IGl0LgoKU2lnbmVk LW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Ci0tLQogLi4u L2ludGVsLWdwdS10b29scy9pbnRlbC1ncHUtdG9vbHMtZG9jcy54bWwgICAgICAgfCAgIDEgKwog bGliL2RybXRlc3QuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEg KwogbGliL2lndF9hdXguYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg NjggLS0tLS0tCiBsaWIvaWd0X2F1eC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMyAtCiBsaWIvaWd0X2RlYnVnZnMuYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDEyMiAtLS0tLS0tLS0tLQogbGliL2lndF9kZWJ1Z2ZzLmggICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgMzUgLS0tCiBsaWIvaWd0X2d0LmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI0MCArKysrKysrKysrKysrKysrKysrKy0KIGxp Yi9pZ3RfZ3QuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ2ICsr Ky0KIGxpYi9pbnRlbF9tbWlvLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAyICstCiB0ZXN0cy9kcnZfaGFuZ21hbi5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMiArLQogdGVzdHMvZHJ2X3N1c3BlbmQuYyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIHRlc3RzL2dlbV9jb25jdXJyZW50X2JsaXQuYyAgICAgICAgICAgICAg ICAgICAgICAgIHwgICA0ICstCiB0ZXN0cy9nZW1fY3R4X2V4ZWMuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMiArLQogdGVzdHMvZ2VtX2V2aWN0X2FsaWdubWVudC5jICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDEgKwogdGVzdHMvZ2VtX2V2aWN0X2V2ZXJ5dGhpbmcuYyAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogdGVzdHMvZ2VtX3ByZWFkX2FmdGVyX2JsaXQu YyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHRlc3RzL2dlbV9yZWxvY192c19ncHUu YyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiB0ZXN0cy9nZW1fcmVzZXRfc3Rh dHMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogdGVzdHMvZ2VtX3dvcmth cm91bmRzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHRlc3RzL2ttc19m bGlwLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiB0ZXN0cy9r bXNfcGlwZV9jcmNfYmFzaWMuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogdGVz dHMvcG1fcnBtLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IHRlc3RzL3BtX3Jwcy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy ICstCiAyMyBmaWxlcyBjaGFuZ2VkLCAzMDAgaW5zZXJ0aW9ucygrKSwgMjQ2IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RvY3MvcmVmZXJlbmNlL2ludGVsLWdwdS10b29scy9pbnRlbC1ncHUt dG9vbHMtZG9jcy54bWwgYi9kb2NzL3JlZmVyZW5jZS9pbnRlbC1ncHUtdG9vbHMvaW50ZWwtZ3B1 LXRvb2xzLWRvY3MueG1sCmluZGV4IDljZmI4MzZiYjhiZC4uNmM5NTNmZDY4NDFmIDEwMDY0NAot LS0gYS9kb2NzL3JlZmVyZW5jZS9pbnRlbC1ncHUtdG9vbHMvaW50ZWwtZ3B1LXRvb2xzLWRvY3Mu eG1sCisrKyBiL2RvY3MvcmVmZXJlbmNlL2ludGVsLWdwdS10b29scy9pbnRlbC1ncHUtdG9vbHMt ZG9jcy54bWwKQEAgLTIxLDYgKzIxLDcgQEAKICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvaWd0 X2ttcy54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvaWd0X2ZiLnhtbCIvPgogICAg IDx4aTppbmNsdWRlIGhyZWY9InhtbC9pZ3RfYXV4LnhtbCIvPgorICAgIDx4aTppbmNsdWRlIGhy ZWY9InhtbC9pZ3RfZ3QueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2lvY3RsX3dy YXBwZXJzLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9pbnRlbF9iYXRjaGJ1ZmZl ci54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvaW50ZWxfY2hpcHNldC54bWwiLz4K ZGlmZiAtLWdpdCBhL2xpYi9kcm10ZXN0LmMgYi9saWIvZHJtdGVzdC5jCmluZGV4IDdjZGVmMzY2 NTVkMC4uMWQ2ZTg4MmMwZmVhIDEwMDY0NAotLS0gYS9saWIvZHJtdGVzdC5jCisrKyBiL2xpYi9k cm10ZXN0LmMKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlICJpOTE1X2RybS5oIgogI2luY2x1 ZGUgImludGVsX2NoaXBzZXQuaCIKICNpbmNsdWRlICJpbnRlbF9pby5oIgorI2luY2x1ZGUgImln dF9ndC5oIgogI2luY2x1ZGUgImlndF9kZWJ1Z2ZzLmgiCiAjaW5jbHVkZSAidmVyc2lvbi5oIgog I2luY2x1ZGUgImNvbmZpZy5oIgpkaWZmIC0tZ2l0IGEvbGliL2lndF9hdXguYyBiL2xpYi9pZ3Rf YXV4LmMKaW5kZXggYWVmYTA4NjNlOWU5Li5iMzFmMGNkYjcxZmMgMTAwNjQ0Ci0tLSBhL2xpYi9p Z3RfYXV4LmMKKysrIGIvbGliL2lndF9hdXguYwpAQCAtMTMyLDc0ICsxMzIsNiBAQCB2b2lkIGln dF9zdG9wX3NpZ25hbF9oZWxwZXIodm9pZCkKIAlzaWdfc3RhdCA9IDA7CiB9CiAKLS8qIEdQVSBh YnVzZXJzICovCi1zdGF0aWMgc3RydWN0IGlndF9oZWxwZXJfcHJvY2VzcyBoYW5nX2hlbHBlcjsK LXN0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18oKG5vcmV0dXJuKSkKLWhhbmdfaGVscGVyX3Byb2Nl c3MocGlkX3QgcGlkLCBpbnQgZmQsIGludCBnZW4pCi17Ci0Jd2hpbGUgKDEpIHsKLQkJaWYgKGtp bGwocGlkLCAwKSkgLyogUGFyZW50IGhhcyBkaWVkLCBzbyBtdXN0IHdlLiAqLwotCQkJZXhpdCgw KTsKLQotCQlpZ3RfcG9zdF9oYW5nX3JpbmcoZmQsCi0JCQkJICAgaWd0X2hhbmdfcmluZyhmZCwg Z2VuLCBJOTE1X0VYRUNfREVGQVVMVCkpOwotCi0JCXNsZWVwKDEpOwotCX0KLX0KLQotLyoqCi0g KiBpZ3RfZm9ya19oYW5nX2hlbHBlcjoKLSAqCi0gKiBGb3JrIGEgY2hpbGQgcHJvY2VzcyB1c2lu ZyAjaWd0X2ZvcmtfaGVscGVyIHRvIGhhbmcgdGhlIGRlZmF1bHQgZW5naW5lCi0gKiBvZiB0aGUg R1BVIGF0IHJlZ3VsYXIgaW50ZXJ2YWxzLgotICoKLSAqIFRoaXMgaXMgdXNlZnVsIHRvIGV4ZXJj aXNlIHNsb3cgcnVubmluZyBjb2RlIChzdWNoIGFzIGFwZXJ0dXJlIHBsYWNlbWVudCkKLSAqIHdo aWNoIG5lZWRzIHRvIGJlIHJvYnVzdCBhZ2FpbnN0IGEgR1BVIHJlc2V0LgotICoKLSAqIEluIHRl c3RzIHdpdGggc3VidGVzdHMgdGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIG91dHNpZGUgb2Yg ZmFpbHVyZQotICogY2F0Y2hpbmcgY29kZSBibG9ja3MgbGlrZSAjaWd0X2ZpeHR1cmUgb3IgI2ln dF9zdWJ0ZXN0LgotICovCi1pbnQgaWd0X2ZvcmtfaGFuZ19oZWxwZXIodm9pZCkKLXsKLQlpbnQg ZmQsIGdlbjsKLQotCWlmIChpZ3Rfb25seV9saXN0X3N1YnRlc3RzKCkpCi0JCXJldHVybiAxOwot Ci0JZmQgPSBkcm1fb3Blbl9hbnkoKTsKLQlpZiAoZmQgPT0gLTEpCi0JCXJldHVybiAwOwotCi0J Z2VuID0gaW50ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoZmQpKTsKLQlpZiAoZ2VuIDwgNSkg ewotCQljbG9zZShmZCk7Ci0JCXJldHVybiAwOwotCX0KLQotCWlndF9mb3JrX2hlbHBlcigmaGFu Z19oZWxwZXIpCi0JCWhhbmdfaGVscGVyX3Byb2Nlc3MoZ2V0cHBpZCgpLCBmZCwgZ2VuKTsKLQot CWNsb3NlKGZkKTsKLQlyZXR1cm4gMTsKLX0KLQotLyoqCi0gKiBpZ3Rfc3RvcF9oYW5nX2hlbHBl cjoKLSAqCi0gKiBTdG9wcyB0aGUgY2hpbGQgcHJvY2VzcyBzcGF3bmVkIHdpdGggaWd0X2Zvcmtf aGFuZ19oZWxwZXIoKS4KLSAqCi0gKiBJbiB0ZXN0cyB3aXRoIHN1YnRlc3RzIHRoaXMgZnVuY3Rp b24gY2FuIGJlIGNhbGxlZCBvdXRzaWRlIG9mIGZhaWx1cmUKLSAqIGNhdGNoaW5nIGNvZGUgYmxv Y2tzIGxpa2UgI2lndF9maXh0dXJlIG9yICNpZ3Rfc3VidGVzdC4KLSAqLwotdm9pZCBpZ3Rfc3Rv cF9oYW5nX2hlbHBlcih2b2lkKQotewotCWlmIChpZ3Rfb25seV9saXN0X3N1YnRlc3RzKCkpCi0J CXJldHVybjsKLQotCWlndF9zdG9wX2hlbHBlcigmaGFuZ19oZWxwZXIpOwotfQotCiAvKioKICAq IGlndF9jaGVja19ib29sZWFuX2Vudl92YXI6CiAgKiBAZW52X3ZhcjogZW52aXJvbm1lbnQgdmFy aWFibGUgbmFtZQpkaWZmIC0tZ2l0IGEvbGliL2lndF9hdXguaCBiL2xpYi9pZ3RfYXV4LmgKaW5k ZXggZWRjMzZhMjIxOTIyLi43ZjQyYjMzN2YyZWMgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfYXV4LmgK KysrIGIvbGliL2lndF9hdXguaApAQCAtMzksOSArMzksNiBAQCBleHRlcm4gaW50IG51bV90cmFz aF9ib3M7CiB2b2lkIGlndF9mb3JrX3NpZ25hbF9oZWxwZXIodm9pZCk7CiB2b2lkIGlndF9zdG9w X3NpZ25hbF9oZWxwZXIodm9pZCk7CiAKLWludCBpZ3RfZm9ya19oYW5nX2hlbHBlcih2b2lkKTsK LXZvaWQgaWd0X3N0b3BfaGFuZ19oZWxwZXIodm9pZCk7Ci0KIHZvaWQgaWd0X2V4Y2hhbmdlX2lu dCh2b2lkICphcnJheSwgdW5zaWduZWQgaSwgdW5zaWduZWQgaik7CiB2b2lkIGlndF9wZXJtdXRl X2FycmF5KHZvaWQgKmFycmF5LCB1bnNpZ25lZCBzaXplLAogCQkJICAgdm9pZCAoKmV4Y2hhbmdl X2Z1bmMpKHZvaWQgKmFycmF5LApkaWZmIC0tZ2l0IGEvbGliL2lndF9kZWJ1Z2ZzLmMgYi9saWIv aWd0X2RlYnVnZnMuYwppbmRleCBiNDQzMzNlODQwZGEuLmEyY2VjNDVhMTQ2MCAxMDA2NDQKLS0t IGEvbGliL2lndF9kZWJ1Z2ZzLmMKKysrIGIvbGliL2lndF9kZWJ1Z2ZzLmMKQEAgLTYxMywxMjUg KzYxMywzIEBAIHZvaWQgaWd0X2VuYWJsZV9wcmVmYXVsdCh2b2lkKQogewogCWlndF9wcmVmYXVs dF9jb250cm9sKHRydWUpOwogfQotCi0vKioKLSAqIGlndF9vcGVuX2ZvcmNld2FrZV9oYW5kbGU6 Ci0gKgotICogVGhpcyBmdW5jdGlvbnMgb3BlbnMgdGhlIGRlYnVnZnMgZm9yY2V3YWtlIGZpbGUg YW5kIHNvIHByZXZlbnRzIHRoZSBHVCBmcm9tCi0gKiBzdXNwZW5kaW5nLiBUaGUgcmVmZXJlbmNl IGlzIGF1dG9tYXRpY2FsbHkgZHJvcHBlZCB3aGVuIHRoZSBpcyBjbG9zZWQuCi0gKgotICogUmV0 dXJuczoKLSAqIFRoZSBmaWxlIGRlc2NyaXB0b3Igb2YgdGhlIGZvcmNld2FrZSBoYW5kbGUgb3Ig LTEgaWYgdGhhdCBkaWRuJ3Qgd29yayBvdXQuCi0gKi8KLWludCBpZ3Rfb3Blbl9mb3JjZXdha2Vf aGFuZGxlKHZvaWQpCi17Ci0JaWYgKGdldGVudigiSUdUX05PX0ZPUkNFV0FLRSIpKQotCQlyZXR1 cm4gLTE7Ci0JcmV0dXJuIGlndF9kZWJ1Z2ZzX29wZW4oImk5MTVfZm9yY2V3YWtlX3VzZXIiLCBP X1dST05MWSk7Ci19Ci0KLS8qKgotICogaWd0X3RvX3N0b3BfcmluZ19mbGFnOgotICogQHJpbmc6 IHRoZSBzcGVjaWZpZWQgcmluZyBmbGFnIGZyb20gZXhlY2J1ZiBpb2N0bCAoSTkxNV9FWEVDXyop Ci0gKgotICogVGhpcyBjb252ZXJ0cyB0aGUgc3BlY2lmaWVkIHJpbmcgdG8gYSByaW5nIGZsYWcg dG8gYmUgdXNlZAotICogd2l0aCBpZ3RfZ2V0X3N0b3BfcmluZ3MoKSBhbmQgaWd0X3NldF9zdG9w X3JpbmdzKCkuCi0gKgotICogUmV0dXJuczoKLSAqIFJpbmcgZmxhZyBmb3IgdGhlIGdpdmVuIHJp bmcuCi0gKi8KLWVudW0gc3RvcF9yaW5nX2ZsYWdzIGlndF90b19zdG9wX3JpbmdfZmxhZyhpbnQg cmluZykgewotCWlmIChyaW5nID09IEk5MTVfRVhFQ19ERUZBVUxUKQotCQlyZXR1cm4gU1RPUF9S SU5HX1JFTkRFUjsKLQotCWlndF9hc3NlcnQocmluZyAmJiAoKHJpbmcgJiB+STkxNV9FWEVDX1JJ TkdfTUFTSykgPT0gMCkpOwotCXJldHVybiAxIDw8IChyaW5nIC0gMSk7Ci19Ci0KLXN0YXRpYyB2 b2lkIHN0b3BfcmluZ3Nfd3JpdGUodWludDMyX3QgbWFzaykKLXsKLQlpbnQgZmQ7Ci0JY2hhciBi dWZbODBdOwotCi0JaWd0X2Fzc2VydChzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiMHglMDh4 IiwgbWFzaykgPT0gMTApOwotCWZkID0gaWd0X2RlYnVnZnNfb3BlbigiaTkxNV9yaW5nX3N0b3Ai LCBPX1dST05MWSk7Ci0JaWd0X2Fzc2VydChmZCA+PSAwKTsKLQotCWlndF9hc3NlcnQod3JpdGUo ZmQsIGJ1Ziwgc3RybGVuKGJ1ZikpID09IHN0cmxlbihidWYpKTsKLQljbG9zZShmZCk7Ci19Ci0K LS8qKgotICogaWd0X2dldF9zdG9wX3JpbmdzOgotICoKLSAqIFJlYWQgY3VycmVudCByaW5nIGZs YWdzIGZyb20gJ2k5MTVfcmluZ19zdG9wJyBkZWJ1Z2ZzIGVudHJ5LgotICoKLSAqIFJldHVybnM6 Ci0gKiBDdXJyZW50IHJpbmcgZmxhZ3MuCi0gKi8KLWVudW0gc3RvcF9yaW5nX2ZsYWdzIGlndF9n ZXRfc3RvcF9yaW5ncyh2b2lkKQotewotCWludCBmZDsKLQljaGFyIGJ1Zls4MF07Ci0JaW50IGw7 Ci0JdW5zaWduZWQgbG9uZyBsb25nIHJpbmdfbWFzazsKLQotCWZkID0gaWd0X2RlYnVnZnNfb3Bl bigiaTkxNV9yaW5nX3N0b3AiLCBPX1JET05MWSk7Ci0JaWd0X2Fzc2VydChmZCA+PSAwKTsKLQls ID0gcmVhZChmZCwgYnVmLCBzaXplb2YoYnVmKS0xKTsKLQlpZ3RfYXNzZXJ0KGwgPiAwKTsKLQlp Z3RfYXNzZXJ0KGwgPCBzaXplb2YoYnVmKSk7Ci0KLQlidWZbbF0gPSAnXDAnOwotCi0JY2xvc2Uo ZmQpOwotCi0JZXJybm8gPSAwOwotCXJpbmdfbWFzayA9IHN0cnRvdWxsKGJ1ZiwgTlVMTCwgMCk7 Ci0JaWd0X2Fzc2VydChlcnJubyA9PSAwKTsKLQlyZXR1cm4gcmluZ19tYXNrOwotfQotCi0vKioK LSAqIGlndF9zZXRfc3RvcF9yaW5nczoKLSAqIEBmbGFnczogUmluZyBmbGFncyB0byB3cml0ZQot ICoKLSAqIFRoaXMgd3JpdGVzIEBmbGFncyB0byAnaTkxNV9yaW5nX3N0b3AnIGRlYnVnZnMgZW50 cnkuIERyaXZlciB3aWxsCi0gKiBwcmV2ZW50IHRoZSBDUFUgZnJvbSB3cml0aW5nIHRhaWwgcG9p bnRlciBmb3IgdGhlIHJpbmcgdGhhdCBAZmxhZ3MKLSAqIHNwZWNpZnkuIE5vdGUgdGhhdCB0aGUg cmluZyBpcyBub3Qgc3RvcHBlZCByaWdodCBhd2F5LiBJbnN0ZWFkIGFueQotICogZnVydGhlciBj b21tYW5kIGVtaXNzaW9ucyB3b24ndCBiZSBleGVjdXRlZCBhZnRlciB0aGUgZmxhZyBpcyBzZXQu Ci0gKgotICogVGhpcyBpcyB0aGUgbGVhc3QgaW52YXNpdmUgd2F5IHRvIG1ha2UgdGhlIEdQVSBz dHVjay4gSGVuY2UgeW91IG11c3QKLSAqIHNldCB0aGlzIGFmdGVyIGEgYmF0Y2ggc3VibWlzc2lv biB3aXRoIGl0J3Mgb3duIGludmFsaWQgb3IgZW5kbGVzcwotICogbG9vcGluZyBpbnN0cnVjdGlv bnMuIEluIHRoaXMgY2FzZSBpdCBpcyBtZXJlbHkgZm9yIGdpdmluZyBub3RpZmljYXRpb24KLSAq IGZvciB0aGUgZHJpdmVyIHRoYXQgdGhpcyB3YXMgc2ltdWxhdGVkIGhhbmcsIGFzIHRoZSBiYXRj aCB3b3VsZCBoYXZlCi0gKiBjYXVzZWQgaGFuZyBpbiBhbnkgY2FzZS4gT24gdGhlIG90aGVyIGhh bmQgaWYgeW91IHVzZSBhIHZhbGlkIG9yIG5vb3AKLSAqIGJhdGNoIGFuZCB3YW50IHRvIGhhbmcg dGhlIHJpbmcgKEdQVSksIHlvdSBtdXN0IHNldCBjb3JyZXNwb25kaW5nIGZsYWcKLSAqIGJlZm9y ZSBzdWJtaXR0aW5nIHRoZSBiYXRjaC4KLSAqCi0gKiBEcml2ZXIgY2hlY2tzIHBlcmlvZGljYWxs eSBpZiBhIHJpbmcgaXMgbWFraW5nIGFueSBwcm9ncmVzcywgYW5kIGlmCi0gKiBpdCBpcyBub3Qs IGl0IHdpbGwgZGVjbGFyZSB0aGUgcmluZyB0byBiZSBodW5nIGFuZCB3aWxsIHJlc2V0IHRoZSBH UFUuCi0gKiBBZnRlciByZXNldCwgdGhlIGRyaXZlciB3aWxsIGNsZWFyIGZsYWdzIGluICdpOTE1 X3Jpbmdfc3RvcCcKLSAqCi0gKiBOb3RlOiBBbHdheXMgd2hlbiBoYW5naW5nIHRoZSBHUFUsIHVz ZSBpZ3Rfc2V0X3N0b3BfcmluZ3MoKSB0bwotICogbm90aWZ5IHRoZSBkcml2ZXIuIERyaXZlciBj b250cm9scyBoYW5nIGxvZyBtZXNzYWdpbmcgYmFzZWQgb24KLSAqIHRoZXNlIGZsYWdzIGFuZCB0 aHVzIHByZXZlbnRzIGZhbHNlIHBvc2l0aXZlcyBvbiBsb2dzLgotICovCi12b2lkIGlndF9zZXRf c3RvcF9yaW5ncyhlbnVtIHN0b3BfcmluZ19mbGFncyBmbGFncykKLXsKLQllbnVtIHN0b3Bfcmlu Z19mbGFncyBjdXJyZW50OwotCi0JaWd0X2Fzc2VydCgoZmxhZ3MgJiB+KFNUT1BfUklOR19BTEwg fAotCQkJICAgICAgU1RPUF9SSU5HX0FMTE9XX0JBTiB8Ci0JCQkgICAgICBTVE9QX1JJTkdfQUxM T1dfRVJST1JTKSkgPT0gMCk7Ci0KLQljdXJyZW50ID0gaWd0X2dldF9zdG9wX3JpbmdzKCk7Ci0J aWd0X2Fzc2VydF9mKGZsYWdzID09IDAgfHwgY3VycmVudCA9PSAwLAotCQkgICAgICJwcmV2aW91 cyBpOTE1X3Jpbmdfc3RvcCBpcyBzdGlsbCAweCV4XG4iLCBjdXJyZW50KTsKLQotCXN0b3Bfcmlu Z3Nfd3JpdGUoZmxhZ3MpOwotCWN1cnJlbnQgPSBpZ3RfZ2V0X3N0b3BfcmluZ3MoKTsKLQlpZ3Rf d2Fybl9vbl9mKGN1cnJlbnQgIT0gZmxhZ3MsCi0JCSAgICAgICJpOTE1X3Jpbmdfc3RvcCByZWFk YmFjayBtaXNtYXRjaCAweCV4IHZzIDB4JXhcbiIsCi0JCSAgICAgIGZsYWdzLCBjdXJyZW50KTsK LX0KZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZGVidWdmcy5oIGIvbGliL2lndF9kZWJ1Z2ZzLmgKaW5k ZXggOGFjMTUzOTY2YmMxLi44Mjg1MDI5NTdhOTggMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfZGVidWdm cy5oCisrKyBiL2xpYi9pZ3RfZGVidWdmcy5oCkBAIC0xNDIsMzkgKzE0Miw0IEBAIHZvaWQgaWd0 X2Ryb3BfY2FjaGVzX3NldCh1aW50NjRfdCB2YWwpOwogdm9pZCBpZ3RfZGlzYWJsZV9wcmVmYXVs dCh2b2lkKTsKIHZvaWQgaWd0X2VuYWJsZV9wcmVmYXVsdCh2b2lkKTsKIAotaW50IGlndF9vcGVu X2ZvcmNld2FrZV9oYW5kbGUodm9pZCk7Ci0KLS8qKgotICogc3RvcF9yaW5nX2ZsYWdzOgotICog QFNUT1BfUklOR19OT05FOiBDYW4gYmUgdXNlZCB0byBjbGVhciB0aGUgcGVuZGluZyBzdG9wICh3 YXJuaW5nOiBoYW5nIG1pZ2h0Ci0gKiBiZSBkZWNsYXJlZCBhbHJlYWR5KS4gUmV0dXJuZWQgYnkg aWd0X2dldF9zdG9wX3JpbmdzKCkgaWYgdGhlcmUgaXMKLSAqIG5vIGN1cnJlbnRseSBzdG9wcGVk IHJpbmdzLgotICogQFNUT1BfUklOR19SRU5ERVI6IFJlbmRlciByaW5nCi0gKiBAU1RPUF9SSU5H X0JTRDogVmlkZW8gZW5jb2RpbmcvZGVjb2RpbmcgcmluZwotICogQFNUT1BfUklOR19CTFQ6IEJs aXR0ZXIgcmluZwotICogQFNUT1BfUklOR19WRUJPWDogVmlkZW8gZW5oYW5jZW1lbnQgcmluZwot ICogQFNUT1BfUklOR19BTEw6IEFsbCByaW5ncwotICogQFNUT1BfUklOR19BTExPV19FUlJPUlM6 IERyaXZlciB3aWxsIG5vdCBvbWl0IGV4cGVjdGVkIERSTV9FUlJPUlMKLSAqIEBTVE9QX1JJTkdf QUxMT1dfQkFOOiBEcml2ZXIgd2lsbCB1c2UgY29udGV4dCBiYW4gcG9saWN5Ci0gKiBAU1RPUF9S SU5HX0RFRkFVTFRTOiBTVE9QX1JJTkdfQUxMIHwgU1RPUF9SSU5HX0FMTE9XX0VSUk9SUwotICoK LSAqIEVudW1lcmF0aW9uIG9mIGFsbCBzdXBwb3J0ZWQgZmxhZ3MgZm9yIGlndF9zZXRfc3RvcF9y aW5ncygpLgotICoKLSAqLwotZW51bSBzdG9wX3JpbmdfZmxhZ3MgewotCVNUT1BfUklOR19OT05F ID0gMHgwMCwKLQlTVE9QX1JJTkdfUkVOREVSID0gKDEgPDwgMCksCi0JU1RPUF9SSU5HX0JTRCA9 ICgxIDw8IDEpLAotCVNUT1BfUklOR19CTFQgPSAoMSA8PCAyKSwKLQlTVE9QX1JJTkdfVkVCT1gg PSAoMSA8PCAzKSwKLQlTVE9QX1JJTkdfQUxMID0gMHhmZiwKLQlTVE9QX1JJTkdfQUxMT1dfRVJS T1JTID0gKDEgPDwgMzApLAotCVNUT1BfUklOR19BTExPV19CQU4gPSAoMSA8PCAzMSksCi0JU1RP UF9SSU5HX0RFRkFVTFRTID0gU1RPUF9SSU5HX0FMTCB8IFNUT1BfUklOR19BTExPV19FUlJPUlMs Ci19OwotCi1lbnVtIHN0b3BfcmluZ19mbGFncyBpZ3RfdG9fc3RvcF9yaW5nX2ZsYWcoaW50IHJp bmcpOwotdm9pZCBpZ3Rfc2V0X3N0b3BfcmluZ3MoZW51bSBzdG9wX3JpbmdfZmxhZ3MgZmxhZ3Mp OwotZW51bSBzdG9wX3JpbmdfZmxhZ3MgaWd0X2dldF9zdG9wX3JpbmdzKHZvaWQpOwotCiAjZW5k aWYgLyogX19JR1RfREVCVUdGU19IX18gKi8KZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZ3QuYyBiL2xp Yi9pZ3RfZ3QuYwppbmRleCBlMDIyMTlhY2M2ZmQuLjI2YzM0N2I0NmU4ZiAxMDA2NDQKLS0tIGEv bGliL2lndF9ndC5jCisrKyBiL2xpYi9pZ3RfZ3QuYwpAQCAtMjIsOCArMjIsMTMgQEAKICAqLwog CiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CiAjaW5jbHVkZSA8ZXJy bm8uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2lu Y2x1ZGUgPGZjbnRsLmg+CiAKKyNpbmNsdWRlICJkcm10ZXN0LmgiCiAjaW5jbHVkZSAiaWd0X2Nv cmUuaCIKICNpbmNsdWRlICJpZ3RfZ3QuaCIKICNpbmNsdWRlICJpZ3RfZGVidWdmcy5oIgpAQCAt MzEsMTMgKzM2LDQ2IEBACiAjaW5jbHVkZSAiaW50ZWxfcmVnLmgiCiAjaW5jbHVkZSAiaW50ZWxf Y2hpcHNldC5oIgogCisvKioKKyAqIFNFQ1RJT046aWd0X2d0CisgKiBAc2hvcnRfZGVzY3JpcHRp b246IEdUIHN1cHBvcnQgbGlicmFyeQorICogQHRpdGxlOiBpLWctdCBndAorICogQGluY2x1ZGU6 IGlndF9ndC5oCisgKgorICogVGhpcyBsaWJyYXJ5IHByb3ZpZGVzIHZhcmlvdXMgYXV4aWxpYXJ5 IGhlbHBlciBmdW5jdGlvbnMgdG8gaGFuZGxlIGdlbmVyYWwKKyAqIGludGVyYWN0aW9ucyB3aXRo IHRoZSBHVCBsaWtlIGZvcmNld2FrZSBoYW5kbGluZywgaW5qZWN0aW5nIGhhbmdzIG9yIHN0b3Bw aW5nCisgKiBlbmdpbmVzLgorICovCisKKworLyoqCisgKiBpZ3RfcmVxdWlyZV9oYW5nX3Jpbmc6 CisgKiBAZmQ6IG9wZW4gaTkxNSBkcm0gZmlsZSBkZXNjcmlwdG9yCisgKiBAcmluZzogZXhlY2J1 ZiByaW5nIGZsYWcKKyAqCisgKiBDb252ZW5pZW5jZSBoZWxwZXIgdG8gY2hlY2sgd2hldGhlciBh ZHZhbmNlZCBoYW5nIGluamVjdGlvbiBpcyBzdXBwb3J0ZWQgYnkKKyAqIHRoZSBrZXJuZWwuIFVz ZXMgaWd0X3NraXAgdG8gYXV0b21hdGljYWxseSBza2lwIHRoZSB0ZXN0L3N1YnRlc3QgaWYgdGhp cworICogaXNuJ3QgdGhlIGNhc2UuCisgKi8KIHZvaWQgaWd0X3JlcXVpcmVfaGFuZ19yaW5nKGlu dCBmZCwgaW50IHJpbmcpCiB7CiAJZ2VtX2NvbnRleHRfcmVxdWlyZV9wYXJhbShmZCwgTE9DQUxf Q09OVEVYVF9QQVJBTV9CQU5fUEVSSU9EKTsKIAlpZ3RfcmVxdWlyZShpbnRlbF9nZW4oaW50ZWxf Z2V0X2RybV9kZXZpZChmZCkpID49IDUpOwogfQogCi1zdHJ1Y3QgaWd0X2hhbmdfcmluZyBpZ3Rf aGFuZ19yaW5nKGludCBmZCwgaW50IGdlbiwgaW50IHJpbmcpCisvKioKKyAqIGlndF9oYW5nX3Jp bmc6CisgKiBAZmQ6IG9wZW4gaTkxNSBkcm0gZmlsZSBkZXNjcmlwdG9yCisgKiBAcmluZzogZXhl Y2J1ZiByaW5nIGZsYWcKKyAqCisgKiBUaGlzIGhlbHBlciBmdW5jdGlvbiBpbmplY3RzIGEgaGFu Z2luZyBiYXRjaCBpbnRvIEByaW5nLiBJdCByZXR1cm5zIGEKKyAqICNpZ3RfaGFuZ19yaW5nX3Qg c3RydWN0dXJlIHdoaWNoIG11c3QgYmUgcGFzc2VkIHRvIGlndF9wb3N0X2hhbmdfcmluZygpIGZv cgorICogaGFuZyBwb3N0LXByb2Nlc3NpbmcgKGFmdGVyIHRoZSBncHUgaGFuZyBpbnRlcmFjdGlv biBoYXMgYmVlbiB0ZXN0ZWQuCisgKgorICogUmV0dXJuczoKKyAqIFN0cnVjdHVyZSB3aXRoIGhl bHBlciBpbnRlcm5hbCBzdGF0ZSBmb3IgaWd0X3Bvc3RfaGFuZ19yaW5nKCkuCisgKi8KK2lndF9o YW5nX3JpbmdfdCBpZ3RfaGFuZ19yaW5nKGludCBmZCwgaW50IHJpbmcpCiB7CiAJc3RydWN0IGRy bV9pOTE1X2dlbV9yZWxvY2F0aW9uX2VudHJ5IHJlbG9jOwogCXN0cnVjdCBkcm1faTkxNV9nZW1f ZXhlY2J1ZmZlcjIgZXhlY2J1ZjsKQEAgLTY2LDcgKzEwNCw3IEBAIHN0cnVjdCBpZ3RfaGFuZ19y aW5nIGlndF9oYW5nX3JpbmcoaW50IGZkLCBpbnQgZ2VuLCBpbnQgcmluZykKIAlleGVjLnJlbG9j c19wdHIgPSAodWludHB0cl90KSZyZWxvYzsKIAogCWxlbiA9IDI7Ci0JaWYgKGdlbiA+PSA4KQor CWlmIChpbnRlbF9nZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChmZCkpID49IDgpCiAJCWxlbisrOwog CWJbMF0gPSBNSV9CQVRDSF9CVUZGRVJfU1RBUlQgfCAobGVuIC0gMik7CiAJYltsZW5dID0gTUlf QkFUQ0hfQlVGRkVSX0VORDsKQEAgLTg2LDYgKzEyNCwxNCBAQCBzdHJ1Y3QgaWd0X2hhbmdfcmlu ZyBpZ3RfaGFuZ19yaW5nKGludCBmZCwgaW50IGdlbiwgaW50IHJpbmcpCiAJcmV0dXJuIChzdHJ1 Y3QgaWd0X2hhbmdfcmluZyl7IGV4ZWMuaGFuZGxlLCBiYW4gfTsKIH0KIAorLyoqCisgKiBpZ3Rf aGFuZ19yaW5nOgorICogQGZkOiBvcGVuIGk5MTUgZHJtIGZpbGUgZGVzY3JpcHRvcgorICogQGFy ZzogaGFuZyBzdGF0ZSBmcm9tIGlndF9oYW5nX3JpbmcoKQorICoKKyAqIFRoaXMgZnVuY3Rpb24g ZG9lcyB0aGUgbmVjZXNzYXJ5IHBvc3QtcHJvY2Vzc2luZyBhZnRlciBhIGdwdSBoYW5nIGluamVj dGVkCisgKiB3aXRoIGlndF9oYW5nX3JpbmcoKS4KKyAqLwogdm9pZCBpZ3RfcG9zdF9oYW5nX3Jp bmcoaW50IGZkLCBzdHJ1Y3QgaWd0X2hhbmdfcmluZyBhcmcpCiB7CiAJc3RydWN0IGxvY2FsX2k5 MTVfZ2VtX2NvbnRleHRfcGFyYW0gcGFyYW07CkBAIC0xMDMsMyArMTQ5LDE5MyBAQCB2b2lkIGln dF9wb3N0X2hhbmdfcmluZyhpbnQgZmQsIHN0cnVjdCBpZ3RfaGFuZ19yaW5nIGFyZykKIAlwYXJh bS52YWx1ZSA9IGFyZy5iYW47CiAJZ2VtX2NvbnRleHRfc2V0X3BhcmFtKGZkLCAmcGFyYW0pOwog fQorCisvKiBHUFUgYWJ1c2VycyAqLworc3RhdGljIHN0cnVjdCBpZ3RfaGVscGVyX3Byb2Nlc3Mg aGFuZ19oZWxwZXI7CitzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChub3JldHVybikpCitoYW5n X2hlbHBlcl9wcm9jZXNzKHBpZF90IHBpZCwgaW50IGZkKQoreworCXdoaWxlICgxKSB7CisJCWlm IChraWxsKHBpZCwgMCkpIC8qIFBhcmVudCBoYXMgZGllZCwgc28gbXVzdCB3ZS4gKi8KKwkJCWV4 aXQoMCk7CisKKwkJaWd0X3Bvc3RfaGFuZ19yaW5nKGZkLAorCQkJCSAgIGlndF9oYW5nX3Jpbmco ZmQsIEk5MTVfRVhFQ19ERUZBVUxUKSk7CisKKwkJc2xlZXAoMSk7CisJfQorfQorCisvKioKKyAq IGlndF9mb3JrX2hhbmdfaGVscGVyOgorICoKKyAqIEZvcmsgYSBjaGlsZCBwcm9jZXNzIHVzaW5n ICNpZ3RfZm9ya19oZWxwZXIgdG8gaGFuZyB0aGUgZGVmYXVsdCBlbmdpbmUKKyAqIG9mIHRoZSBH UFUgYXQgcmVndWxhciBpbnRlcnZhbHMuCisgKgorICogVGhpcyBpcyB1c2VmdWwgdG8gZXhlcmNp c2Ugc2xvdyBydW5uaW5nIGNvZGUgKHN1Y2ggYXMgYXBlcnR1cmUgcGxhY2VtZW50KQorICogd2hp Y2ggbmVlZHMgdG8gYmUgcm9idXN0IGFnYWluc3QgYSBHUFUgcmVzZXQuCisgKgorICogSW4gdGVz dHMgd2l0aCBzdWJ0ZXN0cyB0aGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgb3V0c2lkZSBvZiBm YWlsdXJlCisgKiBjYXRjaGluZyBjb2RlIGJsb2NrcyBsaWtlICNpZ3RfZml4dHVyZSBvciAjaWd0 X3N1YnRlc3QuCisgKi8KK2ludCBpZ3RfZm9ya19oYW5nX2hlbHBlcih2b2lkKQoreworCWludCBm ZCwgZ2VuOworCisJaWYgKGlndF9vbmx5X2xpc3Rfc3VidGVzdHMoKSkKKwkJcmV0dXJuIDE7CisK KwlmZCA9IGRybV9vcGVuX2FueSgpOworCWlmIChmZCA9PSAtMSkKKwkJcmV0dXJuIDA7CisKKwln ZW4gPSBpbnRlbF9nZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChmZCkpOworCWlmIChnZW4gPCA1KSB7 CisJCWNsb3NlKGZkKTsKKwkJcmV0dXJuIDA7CisJfQorCisJaWd0X2ZvcmtfaGVscGVyKCZoYW5n X2hlbHBlcikKKwkJaGFuZ19oZWxwZXJfcHJvY2VzcyhnZXRwcGlkKCksIGZkKTsKKworCWNsb3Nl KGZkKTsKKwlyZXR1cm4gMTsKK30KKworLyoqCisgKiBpZ3Rfc3RvcF9oYW5nX2hlbHBlcjoKKyAq CisgKiBTdG9wcyB0aGUgY2hpbGQgcHJvY2VzcyBzcGF3bmVkIHdpdGggaWd0X2ZvcmtfaGFuZ19o ZWxwZXIoKS4KKyAqCisgKiBJbiB0ZXN0cyB3aXRoIHN1YnRlc3RzIHRoaXMgZnVuY3Rpb24gY2Fu IGJlIGNhbGxlZCBvdXRzaWRlIG9mIGZhaWx1cmUKKyAqIGNhdGNoaW5nIGNvZGUgYmxvY2tzIGxp a2UgI2lndF9maXh0dXJlIG9yICNpZ3Rfc3VidGVzdC4KKyAqLwordm9pZCBpZ3Rfc3RvcF9oYW5n X2hlbHBlcih2b2lkKQoreworCWlmIChpZ3Rfb25seV9saXN0X3N1YnRlc3RzKCkpCisJCXJldHVy bjsKKworCWlndF9zdG9wX2hlbHBlcigmaGFuZ19oZWxwZXIpOworfQorCisvKioKKyAqIGlndF9v cGVuX2ZvcmNld2FrZV9oYW5kbGU6CisgKgorICogVGhpcyBmdW5jdGlvbnMgb3BlbnMgdGhlIGRl YnVnZnMgZm9yY2V3YWtlIGZpbGUgYW5kIHNvIHByZXZlbnRzIHRoZSBHVCBmcm9tCisgKiBzdXNw ZW5kaW5nLiBUaGUgcmVmZXJlbmNlIGlzIGF1dG9tYXRpY2FsbHkgZHJvcHBlZCB3aGVuIHRoZSBp cyBjbG9zZWQuCisgKgorICogUmV0dXJuczoKKyAqIFRoZSBmaWxlIGRlc2NyaXB0b3Igb2YgdGhl IGZvcmNld2FrZSBoYW5kbGUgb3IgLTEgaWYgdGhhdCBkaWRuJ3Qgd29yayBvdXQuCisgKi8KK2lu dCBpZ3Rfb3Blbl9mb3JjZXdha2VfaGFuZGxlKHZvaWQpCit7CisJaWYgKGdldGVudigiSUdUX05P X0ZPUkNFV0FLRSIpKQorCQlyZXR1cm4gLTE7CisJcmV0dXJuIGlndF9kZWJ1Z2ZzX29wZW4oImk5 MTVfZm9yY2V3YWtlX3VzZXIiLCBPX1dST05MWSk7Cit9CisKKy8qKgorICogaWd0X3RvX3N0b3Bf cmluZ19mbGFnOgorICogQHJpbmc6IHRoZSBzcGVjaWZpZWQgcmluZyBmbGFnIGZyb20gZXhlY2J1 ZiBpb2N0bCAoSTkxNV9FWEVDXyopCisgKgorICogVGhpcyBjb252ZXJ0cyB0aGUgc3BlY2lmaWVk IHJpbmcgdG8gYSByaW5nIGZsYWcgdG8gYmUgdXNlZAorICogd2l0aCBpZ3RfZ2V0X3N0b3Bfcmlu Z3MoKSBhbmQgaWd0X3NldF9zdG9wX3JpbmdzKCkuCisgKgorICogUmV0dXJuczoKKyAqIFJpbmcg ZmxhZyBmb3IgdGhlIGdpdmVuIHJpbmcuCisgKi8KK2VudW0gc3RvcF9yaW5nX2ZsYWdzIGlndF90 b19zdG9wX3JpbmdfZmxhZyhpbnQgcmluZykgeworCWlmIChyaW5nID09IEk5MTVfRVhFQ19ERUZB VUxUKQorCQlyZXR1cm4gU1RPUF9SSU5HX1JFTkRFUjsKKworCWlndF9hc3NlcnQocmluZyAmJiAo KHJpbmcgJiB+STkxNV9FWEVDX1JJTkdfTUFTSykgPT0gMCkpOworCXJldHVybiAxIDw8IChyaW5n IC0gMSk7Cit9CisKK3N0YXRpYyB2b2lkIHN0b3BfcmluZ3Nfd3JpdGUodWludDMyX3QgbWFzaykK K3sKKwlpbnQgZmQ7CisJY2hhciBidWZbODBdOworCisJaWd0X2Fzc2VydChzbnByaW50ZihidWYs IHNpemVvZihidWYpLCAiMHglMDh4IiwgbWFzaykgPT0gMTApOworCWZkID0gaWd0X2RlYnVnZnNf b3BlbigiaTkxNV9yaW5nX3N0b3AiLCBPX1dST05MWSk7CisJaWd0X2Fzc2VydChmZCA+PSAwKTsK KworCWlndF9hc3NlcnQod3JpdGUoZmQsIGJ1Ziwgc3RybGVuKGJ1ZikpID09IHN0cmxlbihidWYp KTsKKwljbG9zZShmZCk7Cit9CisKKy8qKgorICogaWd0X2dldF9zdG9wX3JpbmdzOgorICoKKyAq IFJlYWQgY3VycmVudCByaW5nIGZsYWdzIGZyb20gJ2k5MTVfcmluZ19zdG9wJyBkZWJ1Z2ZzIGVu dHJ5LgorICoKKyAqIFJldHVybnM6CisgKiBDdXJyZW50IHJpbmcgZmxhZ3MuCisgKi8KK2VudW0g c3RvcF9yaW5nX2ZsYWdzIGlndF9nZXRfc3RvcF9yaW5ncyh2b2lkKQoreworCWludCBmZDsKKwlj aGFyIGJ1Zls4MF07CisJaW50IGw7CisJdW5zaWduZWQgbG9uZyBsb25nIHJpbmdfbWFzazsKKwor CWZkID0gaWd0X2RlYnVnZnNfb3BlbigiaTkxNV9yaW5nX3N0b3AiLCBPX1JET05MWSk7CisJaWd0 X2Fzc2VydChmZCA+PSAwKTsKKwlsID0gcmVhZChmZCwgYnVmLCBzaXplb2YoYnVmKS0xKTsKKwlp Z3RfYXNzZXJ0KGwgPiAwKTsKKwlpZ3RfYXNzZXJ0KGwgPCBzaXplb2YoYnVmKSk7CisKKwlidWZb bF0gPSAnXDAnOworCisJY2xvc2UoZmQpOworCisJZXJybm8gPSAwOworCXJpbmdfbWFzayA9IHN0 cnRvdWxsKGJ1ZiwgTlVMTCwgMCk7CisJaWd0X2Fzc2VydChlcnJubyA9PSAwKTsKKwlyZXR1cm4g cmluZ19tYXNrOworfQorCisvKioKKyAqIGlndF9zZXRfc3RvcF9yaW5nczoKKyAqIEBmbGFnczog UmluZyBmbGFncyB0byB3cml0ZQorICoKKyAqIFRoaXMgd3JpdGVzIEBmbGFncyB0byAnaTkxNV9y aW5nX3N0b3AnIGRlYnVnZnMgZW50cnkuIERyaXZlciB3aWxsCisgKiBwcmV2ZW50IHRoZSBDUFUg ZnJvbSB3cml0aW5nIHRhaWwgcG9pbnRlciBmb3IgdGhlIHJpbmcgdGhhdCBAZmxhZ3MKKyAqIHNw ZWNpZnkuIE5vdGUgdGhhdCB0aGUgcmluZyBpcyBub3Qgc3RvcHBlZCByaWdodCBhd2F5LiBJbnN0 ZWFkIGFueQorICogZnVydGhlciBjb21tYW5kIGVtaXNzaW9ucyB3b24ndCBiZSBleGVjdXRlZCBh ZnRlciB0aGUgZmxhZyBpcyBzZXQuCisgKgorICogVGhpcyBpcyB0aGUgbGVhc3QgaW52YXNpdmUg d2F5IHRvIG1ha2UgdGhlIEdQVSBzdHVjay4gSGVuY2UgeW91IG11c3QKKyAqIHNldCB0aGlzIGFm dGVyIGEgYmF0Y2ggc3VibWlzc2lvbiB3aXRoIGl0J3Mgb3duIGludmFsaWQgb3IgZW5kbGVzcwor ICogbG9vcGluZyBpbnN0cnVjdGlvbnMuIEluIHRoaXMgY2FzZSBpdCBpcyBtZXJlbHkgZm9yIGdp dmluZyBub3RpZmljYXRpb24KKyAqIGZvciB0aGUgZHJpdmVyIHRoYXQgdGhpcyB3YXMgc2ltdWxh dGVkIGhhbmcsIGFzIHRoZSBiYXRjaCB3b3VsZCBoYXZlCisgKiBjYXVzZWQgaGFuZyBpbiBhbnkg Y2FzZS4gT24gdGhlIG90aGVyIGhhbmQgaWYgeW91IHVzZSBhIHZhbGlkIG9yIG5vb3AKKyAqIGJh dGNoIGFuZCB3YW50IHRvIGhhbmcgdGhlIHJpbmcgKEdQVSksIHlvdSBtdXN0IHNldCBjb3JyZXNw b25kaW5nIGZsYWcKKyAqIGJlZm9yZSBzdWJtaXR0aW5nIHRoZSBiYXRjaC4KKyAqCisgKiBEcml2 ZXIgY2hlY2tzIHBlcmlvZGljYWxseSBpZiBhIHJpbmcgaXMgbWFraW5nIGFueSBwcm9ncmVzcywg YW5kIGlmCisgKiBpdCBpcyBub3QsIGl0IHdpbGwgZGVjbGFyZSB0aGUgcmluZyB0byBiZSBodW5n IGFuZCB3aWxsIHJlc2V0IHRoZSBHUFUuCisgKiBBZnRlciByZXNldCwgdGhlIGRyaXZlciB3aWxs IGNsZWFyIGZsYWdzIGluICdpOTE1X3Jpbmdfc3RvcCcKKyAqCisgKiBOb3RlOiBBbHdheXMgd2hl biBoYW5naW5nIHRoZSBHUFUsIHVzZSBpZ3Rfc2V0X3N0b3BfcmluZ3MoKSB0bworICogbm90aWZ5 IHRoZSBkcml2ZXIuIERyaXZlciBjb250cm9scyBoYW5nIGxvZyBtZXNzYWdpbmcgYmFzZWQgb24K KyAqIHRoZXNlIGZsYWdzIGFuZCB0aHVzIHByZXZlbnRzIGZhbHNlIHBvc2l0aXZlcyBvbiBsb2dz LgorICovCit2b2lkIGlndF9zZXRfc3RvcF9yaW5ncyhlbnVtIHN0b3BfcmluZ19mbGFncyBmbGFn cykKK3sKKwllbnVtIHN0b3BfcmluZ19mbGFncyBjdXJyZW50OworCisJaWd0X2Fzc2VydCgoZmxh Z3MgJiB+KFNUT1BfUklOR19BTEwgfAorCQkJICAgICAgU1RPUF9SSU5HX0FMTE9XX0JBTiB8CisJ CQkgICAgICBTVE9QX1JJTkdfQUxMT1dfRVJST1JTKSkgPT0gMCk7CisKKwljdXJyZW50ID0gaWd0 X2dldF9zdG9wX3JpbmdzKCk7CisJaWd0X2Fzc2VydF9mKGZsYWdzID09IDAgfHwgY3VycmVudCA9 PSAwLAorCQkgICAgICJwcmV2aW91cyBpOTE1X3Jpbmdfc3RvcCBpcyBzdGlsbCAweCV4XG4iLCBj dXJyZW50KTsKKworCXN0b3BfcmluZ3Nfd3JpdGUoZmxhZ3MpOworCWN1cnJlbnQgPSBpZ3RfZ2V0 X3N0b3BfcmluZ3MoKTsKKwlpZ3Rfd2Fybl9vbl9mKGN1cnJlbnQgIT0gZmxhZ3MsCisJCSAgICAg ICJpOTE1X3Jpbmdfc3RvcCByZWFkYmFjayBtaXNtYXRjaCAweCV4IHZzIDB4JXhcbiIsCisJCSAg ICAgIGZsYWdzLCBjdXJyZW50KTsKK30KZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZ3QuaCBiL2xpYi9p Z3RfZ3QuaAppbmRleCAxZWQ3ODgzN2NmNWIuLmYxZTA4MGQzNTBkNyAxMDA2NDQKLS0tIGEvbGli L2lndF9ndC5oCisrKyBiL2xpYi9pZ3RfZ3QuaApAQCAtMjQsMTIgKzI0LDU0IEBACiAjaWZuZGVm IElHVF9HVF9ICiAjZGVmaW5lIElHVF9HVF9ICiAKKyNpbmNsdWRlICJpZ3RfZGVidWdmcy5oIgor CiB2b2lkIGlndF9yZXF1aXJlX2hhbmdfcmluZyhpbnQgZmQsIGludCByaW5nKTsKIAotc3RydWN0 IGlndF9oYW5nX3JpbmcgewordHlwZWRlZiBzdHJ1Y3QgaWd0X2hhbmdfcmluZyB7CiAJdW5zaWdu ZWQgaGFuZGxlOwogCXVuc2lnbmVkIGJhbjsKLX0gaWd0X2hhbmdfcmluZyhpbnQgZmQsIGludCBn ZW4sIGludCByaW5nKTsKK30gaWd0X2hhbmdfcmluZ190OworCitzdHJ1Y3QgaWd0X2hhbmdfcmlu ZyBpZ3RfaGFuZ19yaW5nKGludCBmZCwgaW50IHJpbmcpOwogdm9pZCBpZ3RfcG9zdF9oYW5nX3Jp bmcoaW50IGZkLCBzdHJ1Y3QgaWd0X2hhbmdfcmluZyBkYXRhKTsKIAoraW50IGlndF9mb3JrX2hh bmdfaGVscGVyKHZvaWQpOwordm9pZCBpZ3Rfc3RvcF9oYW5nX2hlbHBlcih2b2lkKTsKKworaW50 IGlndF9vcGVuX2ZvcmNld2FrZV9oYW5kbGUodm9pZCk7CisKKy8qKgorICogc3RvcF9yaW5nX2Zs YWdzOgorICogQFNUT1BfUklOR19OT05FOiBDYW4gYmUgdXNlZCB0byBjbGVhciB0aGUgcGVuZGlu ZyBzdG9wICh3YXJuaW5nOiBoYW5nIG1pZ2h0CisgKiBiZSBkZWNsYXJlZCBhbHJlYWR5KS4gUmV0 dXJuZWQgYnkgaWd0X2dldF9zdG9wX3JpbmdzKCkgaWYgdGhlcmUgaXMKKyAqIG5vIGN1cnJlbnRs eSBzdG9wcGVkIHJpbmdzLgorICogQFNUT1BfUklOR19SRU5ERVI6IFJlbmRlciByaW5nCisgKiBA U1RPUF9SSU5HX0JTRDogVmlkZW8gZW5jb2RpbmcvZGVjb2RpbmcgcmluZworICogQFNUT1BfUklO R19CTFQ6IEJsaXR0ZXIgcmluZworICogQFNUT1BfUklOR19WRUJPWDogVmlkZW8gZW5oYW5jZW1l bnQgcmluZworICogQFNUT1BfUklOR19BTEw6IEFsbCByaW5ncworICogQFNUT1BfUklOR19BTExP V19FUlJPUlM6IERyaXZlciB3aWxsIG5vdCBvbWl0IGV4cGVjdGVkIERSTV9FUlJPUlMKKyAqIEBT VE9QX1JJTkdfQUxMT1dfQkFOOiBEcml2ZXIgd2lsbCB1c2UgY29udGV4dCBiYW4gcG9saWN5Cisg KiBAU1RPUF9SSU5HX0RFRkFVTFRTOiBTVE9QX1JJTkdfQUxMIHwgU1RPUF9SSU5HX0FMTE9XX0VS Uk9SUworICoKKyAqIEVudW1lcmF0aW9uIG9mIGFsbCBzdXBwb3J0ZWQgZmxhZ3MgZm9yIGlndF9z ZXRfc3RvcF9yaW5ncygpLgorICoKKyAqLworZW51bSBzdG9wX3JpbmdfZmxhZ3MgeworCVNUT1Bf UklOR19OT05FID0gMHgwMCwKKwlTVE9QX1JJTkdfUkVOREVSID0gKDEgPDwgMCksCisJU1RPUF9S SU5HX0JTRCA9ICgxIDw8IDEpLAorCVNUT1BfUklOR19CTFQgPSAoMSA8PCAyKSwKKwlTVE9QX1JJ TkdfVkVCT1ggPSAoMSA8PCAzKSwKKwlTVE9QX1JJTkdfQUxMID0gMHhmZiwKKwlTVE9QX1JJTkdf QUxMT1dfRVJST1JTID0gKDEgPDwgMzApLAorCVNUT1BfUklOR19BTExPV19CQU4gPSAoMSA8PCAz MSksCisJU1RPUF9SSU5HX0RFRkFVTFRTID0gU1RPUF9SSU5HX0FMTCB8IFNUT1BfUklOR19BTExP V19FUlJPUlMsCit9OworCitlbnVtIHN0b3BfcmluZ19mbGFncyBpZ3RfdG9fc3RvcF9yaW5nX2Zs YWcoaW50IHJpbmcpOwordm9pZCBpZ3Rfc2V0X3N0b3BfcmluZ3MoZW51bSBzdG9wX3JpbmdfZmxh Z3MgZmxhZ3MpOworZW51bSBzdG9wX3JpbmdfZmxhZ3MgaWd0X2dldF9zdG9wX3JpbmdzKHZvaWQp OworCiAjZW5kaWYgLyogSUdUX0dUX0ggKi8KZGlmZiAtLWdpdCBhL2xpYi9pbnRlbF9tbWlvLmMg Yi9saWIvaW50ZWxfbW1pby5jCmluZGV4IDVmZjFlYzFlNmJlNy4uOWEyZWUyN2JkNWU1IDEwMDY0 NAotLS0gYS9saWIvaW50ZWxfbW1pby5jCisrKyBiL2xpYi9pbnRlbF9tbWlvLmMKQEAgLTQzLDcg KzQzLDcgQEAKIAogI2luY2x1ZGUgImludGVsX2lvLmgiCiAjaW5jbHVkZSAiaWd0X2NvcmUuaCIK LSNpbmNsdWRlICJpZ3RfZGVidWdmcy5oIgorI2luY2x1ZGUgImlndF9ndC5oIgogI2luY2x1ZGUg ImludGVsX2NoaXBzZXQuaCIKIAogLyoqCmRpZmYgLS1naXQgYS90ZXN0cy9kcnZfaGFuZ21hbi5j IGIvdGVzdHMvZHJ2X2hhbmdtYW4uYwppbmRleCAxNTkxOGJhNjNiYTUuLmE4ODI4MjJiMjZiNSAx MDA2NDQKLS0tIGEvdGVzdHMvZHJ2X2hhbmdtYW4uYworKysgYi90ZXN0cy9kcnZfaGFuZ21hbi5j CkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiaW50ZWxfY2hpcHNldC5oIgogI2luY2x1ZGUg ImRybXRlc3QuaCIKICNpbmNsdWRlICJpZ3RfYXV4LmgiCi0jaW5jbHVkZSAiaWd0X2RlYnVnZnMu aCIKKyNpbmNsdWRlICJpZ3RfZ3QuaCIKICNpbmNsdWRlICJpb2N0bF93cmFwcGVycy5oIgogCiAj aWZuZGVmIEk5MTVfUEFSQU1fQ01EX1BBUlNFUl9WRVJTSU9OCmRpZmYgLS1naXQgYS90ZXN0cy9k cnZfc3VzcGVuZC5jIGIvdGVzdHMvZHJ2X3N1c3BlbmQuYwppbmRleCA4MGY2YTIyNTRiNzUuLmQ5 NmYzMTZhOGVhYiAxMDA2NDQKLS0tIGEvdGVzdHMvZHJ2X3N1c3BlbmQuYworKysgYi90ZXN0cy9k cnZfc3VzcGVuZC5jCkBAIC0zOSw3ICszOSw3IEBACiAKICNpbmNsdWRlICJpb2N0bF93cmFwcGVy cy5oIgogI2luY2x1ZGUgImRybXRlc3QuaCIKLSNpbmNsdWRlICJpZ3RfZGVidWdmcy5oIgorI2lu Y2x1ZGUgImlndF9ndC5oIgogI2luY2x1ZGUgImlndF9hdXguaCIKIAogI2RlZmluZSBPQkpFQ1Rf U0laRSAoMTYqMTAyNCoxMDI0KQpkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX2NvbmN1cnJlbnRfYmxp dC5jIGIvdGVzdHMvZ2VtX2NvbmN1cnJlbnRfYmxpdC5jCmluZGV4IDBiMGFkY2U3ODkyYy4uZTE2 OTNiYTc2Mjc5IDEwMDY0NAotLS0gYS90ZXN0cy9nZW1fY29uY3VycmVudF9ibGl0LmMKKysrIGIv dGVzdHMvZ2VtX2NvbmN1cnJlbnRfYmxpdC5jCkBAIC00NjQsMTIgKzQ2NCwxMiBAQCBzdGF0aWMg c3RydWN0IGlndF9oYW5nX3Jpbmcgbm9faGFuZyh2b2lkKQogCiBzdGF0aWMgc3RydWN0IGlndF9o YW5nX3JpbmcgYmNzX2hhbmcodm9pZCkKIHsKLQlyZXR1cm4gaWd0X2hhbmdfcmluZyhmZCwgZ2Vu LCBJOTE1X0VYRUNfQkxUKTsKKwlyZXR1cm4gaWd0X2hhbmdfcmluZyhmZCwgSTkxNV9FWEVDX0JM VCk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgaWd0X2hhbmdfcmluZyByY3NfaGFuZyh2b2lkKQogewot CXJldHVybiBpZ3RfaGFuZ19yaW5nKGZkLCBnZW4sIEk5MTVfRVhFQ19SRU5ERVIpOworCXJldHVy biBpZ3RfaGFuZ19yaW5nKGZkLCBJOTE1X0VYRUNfUkVOREVSKTsKIH0KIAogc3RhdGljIHZvaWQg aGFuZ19yZXF1aXJlKHZvaWQpCmRpZmYgLS1naXQgYS90ZXN0cy9nZW1fY3R4X2V4ZWMuYyBiL3Rl c3RzL2dlbV9jdHhfZXhlYy5jCmluZGV4IGVhZDNkNDYzMDAzYS4uNDNiMzhhMmY1NjczIDEwMDY0 NAotLS0gYS90ZXN0cy9nZW1fY3R4X2V4ZWMuYworKysgYi90ZXN0cy9nZW1fY3R4X2V4ZWMuYwpA QCAtNDYsNyArNDYsNyBAQAogI2luY2x1ZGUgImlvY3RsX3dyYXBwZXJzLmgiCiAjaW5jbHVkZSAi ZHJtdGVzdC5oIgogI2luY2x1ZGUgImlndF9hdXguaCIKLSNpbmNsdWRlICJpZ3RfZGVidWdmcy5o IgorI2luY2x1ZGUgImlndF9ndC5oIgogCiBJR1RfVEVTVF9ERVNDUklQVElPTigiVGVzdCBiYXNp YyBjb250ZXh0IHN3aXRjaCBmdW5jdGlvbmFsaXR5LiIpOwogCmRpZmYgLS1naXQgYS90ZXN0cy9n ZW1fZXZpY3RfYWxpZ25tZW50LmMgYi90ZXN0cy9nZW1fZXZpY3RfYWxpZ25tZW50LmMKaW5kZXgg MGVjNTgwOTljYWQ2Li5jMDc1NzcwNTMyOGQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2dlbV9ldmljdF9h bGlnbm1lbnQuYworKysgYi90ZXN0cy9nZW1fZXZpY3RfYWxpZ25tZW50LmMKQEAgLTQ4LDYgKzQ4 LDcgQEAKICNpbmNsdWRlICJkcm10ZXN0LmgiCiAjaW5jbHVkZSAiaW50ZWxfY2hpcHNldC5oIgog I2luY2x1ZGUgImlndF9hdXguaCIKKyNpbmNsdWRlICJpZ3RfZ3QuaCIKIAogSUdUX1RFU1RfREVT Q1JJUFRJT04oIlJ1biBhIGNvdXBsZSBvZiBiaWcgYmF0Y2hlcyB0byBmb3JjZSB0aGUgdW5iaW5k IG9uIgogCQkgICAgICIgbWlzYWxpZ25tZW50IGNvZGUuIik7CmRpZmYgLS1naXQgYS90ZXN0cy9n ZW1fZXZpY3RfZXZlcnl0aGluZy5jIGIvdGVzdHMvZ2VtX2V2aWN0X2V2ZXJ5dGhpbmcuYwppbmRl eCBhZDE5OGYwMjNhZTUuLjE1YWIzODJhMzQyNyAxMDA2NDQKLS0tIGEvdGVzdHMvZ2VtX2V2aWN0 X2V2ZXJ5dGhpbmcuYworKysgYi90ZXN0cy9nZW1fZXZpY3RfZXZlcnl0aGluZy5jCkBAIC00NSw2 ICs0NSw3IEBACiAjaW5jbHVkZSAiaW9jdGxfd3JhcHBlcnMuaCIKICNpbmNsdWRlICJkcm10ZXN0 LmgiCiAjaW5jbHVkZSAiaW50ZWxfY2hpcHNldC5oIgorI2luY2x1ZGUgImlndF9ndC5oIgogCiAj aW5jbHVkZSAiZXZpY3Rpb25fY29tbW9uLmMiCiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9wcmVh ZF9hZnRlcl9ibGl0LmMgYi90ZXN0cy9nZW1fcHJlYWRfYWZ0ZXJfYmxpdC5jCmluZGV4IDZlNGJk NjI1N2ZlYi4uOGVkNDMxMDAyMTcyIDEwMDY0NAotLS0gYS90ZXN0cy9nZW1fcHJlYWRfYWZ0ZXJf YmxpdC5jCisrKyBiL3Rlc3RzL2dlbV9wcmVhZF9hZnRlcl9ibGl0LmMKQEAgLTEzMiw3ICsxMzIs NyBAQCBzdGF0aWMgc3RydWN0IGlndF9oYW5nX3Jpbmcgbm9faGFuZyhpbnQgZmQpCiAKIHN0YXRp YyBzdHJ1Y3QgaWd0X2hhbmdfcmluZyBiY3NfaGFuZyhpbnQgZmQpCiB7Ci0JcmV0dXJuIGlndF9o YW5nX3JpbmcoZmQsIGJhdGNoLT5nZW4sIGJhdGNoLT5nZW4gPj0gNiA/IEk5MTVfRVhFQ19CTFQg OiBJOTE1X0VYRUNfREVGQVVMVCk7CisJcmV0dXJuIGlndF9oYW5nX3JpbmcoZmQsIGJhdGNoLT5n ZW4gPj0gNiA/IEk5MTVfRVhFQ19CTFQgOiBJOTE1X0VYRUNfREVGQVVMVCk7CiB9CiAKIHN0YXRp YyB2b2lkIGRvX3Rlc3QoaW50IGZkLCBpbnQgY2FjaGVfbGV2ZWwsCmRpZmYgLS1naXQgYS90ZXN0 cy9nZW1fcmVsb2NfdnNfZ3B1LmMgYi90ZXN0cy9nZW1fcmVsb2NfdnNfZ3B1LmMKaW5kZXggNjhi ZDE3ZDNhZTViLi43OWYxODJiNDc3YjYgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2dlbV9yZWxvY192c19n cHUuYworKysgYi90ZXN0cy9nZW1fcmVsb2NfdnNfZ3B1LmMKQEAgLTE5OCw3ICsxOTgsNyBAQCBz dGF0aWMgc3RydWN0IGlndF9oYW5nX3Jpbmcgbm9faGFuZyhpbnQgZmQpCiAKIHN0YXRpYyBzdHJ1 Y3QgaWd0X2hhbmdfcmluZyBiY3NfaGFuZyhpbnQgZmQpCiB7Ci0JcmV0dXJuIGlndF9oYW5nX3Jp bmcoZmQsIGJhdGNoLT5nZW4sIEk5MTVfRVhFQ19CTFQpOworCXJldHVybiBpZ3RfaGFuZ19yaW5n KGZkLCBJOTE1X0VYRUNfQkxUKTsKIH0KIAogc3RhdGljIHZvaWQgZG9fdGVzdChpbnQgZmQsIGJv b2wgZmF1bHRpbmdfcmVsb2MsCmRpZmYgLS1naXQgYS90ZXN0cy9nZW1fcmVzZXRfc3RhdHMuYyBi L3Rlc3RzL2dlbV9yZXNldF9zdGF0cy5jCmluZGV4IGZhYTIwOWMxZDI4YS4uZDNjZmU4YjEzOTYw IDEwMDY0NAotLS0gYS90ZXN0cy9nZW1fcmVzZXRfc3RhdHMuYworKysgYi90ZXN0cy9nZW1fcmVz ZXRfc3RhdHMuYwpAQCAtNDIsNyArNDIsNyBAQAogCiAjaW5jbHVkZSAiaW9jdGxfd3JhcHBlcnMu aCIKICNpbmNsdWRlICJkcm10ZXN0LmgiCi0jaW5jbHVkZSAiaWd0X2RlYnVnZnMuaCIKKyNpbmNs dWRlICJpZ3RfZ3QuaCIKICNpbmNsdWRlICJpbnRlbF9jaGlwc2V0LmgiCiAjaW5jbHVkZSAiaW50 ZWxfaW8uaCIKICNpbmNsdWRlICJpZ3RfYXV4LmgiCmRpZmYgLS1naXQgYS90ZXN0cy9nZW1fd29y a2Fyb3VuZHMuYyBiL3Rlc3RzL2dlbV93b3JrYXJvdW5kcy5jCmluZGV4IDc1MTFhNDMwNjU5NS4u MGUzNjEzZjM0YjY0IDEwMDY0NAotLS0gYS90ZXN0cy9nZW1fd29ya2Fyb3VuZHMuYworKysgYi90 ZXN0cy9nZW1fd29ya2Fyb3VuZHMuYwpAQCAtNDIsNyArNDIsNyBAQAogCiAjaW5jbHVkZSAiaW9j dGxfd3JhcHBlcnMuaCIKICNpbmNsdWRlICJkcm10ZXN0LmgiCi0jaW5jbHVkZSAiaWd0X2RlYnVn ZnMuaCIKKyNpbmNsdWRlICJpZ3RfZ3QuaCIKICNpbmNsdWRlICJpZ3RfYXV4LmgiCiAjaW5jbHVk ZSAiaW50ZWxfY2hpcHNldC5oIgogI2luY2x1ZGUgImludGVsX2lvLmgiCmRpZmYgLS1naXQgYS90 ZXN0cy9rbXNfZmxpcC5jIGIvdGVzdHMva21zX2ZsaXAuYwppbmRleCAwOWRjM2M3OTRmZGYuLmI4 NDM0NzgxNDNhMiAxMDA2NDQKLS0tIGEvdGVzdHMva21zX2ZsaXAuYworKysgYi90ZXN0cy9rbXNf ZmxpcC5jCkBAIC00OCw3ICs0OCw3IEBACiAjaW5jbHVkZSAiaW50ZWxfYmF0Y2hidWZmZXIuaCIK ICNpbmNsdWRlICJpZ3Rfa21zLmgiCiAjaW5jbHVkZSAiaWd0X2F1eC5oIgotI2luY2x1ZGUgImln dF9kZWJ1Z2ZzLmgiCisjaW5jbHVkZSAiaWd0X2d0LmgiCiAKICNkZWZpbmUgVEVTVF9EUE1TCQko MSA8PCAwKQogI2RlZmluZSBURVNUX1dJVEhfRFVNTVlfQkNTCSgxIDw8IDEpCmRpZmYgLS1naXQg YS90ZXN0cy9rbXNfcGlwZV9jcmNfYmFzaWMuYyBiL3Rlc3RzL2ttc19waXBlX2NyY19iYXNpYy5j CmluZGV4IDczODBjOGExZWEzMS4uYTY1OGIzOWRmMDE5IDEwMDY0NAotLS0gYS90ZXN0cy9rbXNf cGlwZV9jcmNfYmFzaWMuYworKysgYi90ZXN0cy9rbXNfcGlwZV9jcmNfYmFzaWMuYwpAQCAtMjgs NyArMjgsNyBAQAogI2luY2x1ZGUgPHN0cmluZy5oPgogCiAjaW5jbHVkZSAiZHJtdGVzdC5oIgot I2luY2x1ZGUgImlndF9kZWJ1Z2ZzLmgiCisjaW5jbHVkZSAiaWd0X2d0LmgiCiAjaW5jbHVkZSAi aWd0X2ttcy5oIgogI2luY2x1ZGUgImlndF9hdXguaCIKICNpbmNsdWRlICJpb2N0bF93cmFwcGVy cy5oIgpkaWZmIC0tZ2l0IGEvdGVzdHMvcG1fcnBtLmMgYi90ZXN0cy9wbV9ycG0uYwppbmRleCBj MTIwZDc1ZTRiYjMuLjg0MjU0Yjc5ZGY1MyAxMDA2NDQKLS0tIGEvdGVzdHMvcG1fcnBtLmMKKysr IGIvdGVzdHMvcG1fcnBtLmMKQEAgLTQ5LDcgKzQ5LDcgQEAKICNpbmNsdWRlICJpb2N0bF93cmFw cGVycy5oIgogI2luY2x1ZGUgImlndF9hdXguaCIKICNpbmNsdWRlICJpZ3Rfa21zLmgiCi0jaW5j bHVkZSAiaWd0X2RlYnVnZnMuaCIKKyNpbmNsdWRlICJpZ3RfZ3QuaCIKIAogLyogT25lIGRheSwg dGhpcyB3aWxsIGJlIG9uIHlvdXIgbGliZHJtLiAqLwogI2RlZmluZSBEUk1fQ0xJRU5UX0NBUF9V TklWRVJTQUxfUExBTkVTIDIKZGlmZiAtLWdpdCBhL3Rlc3RzL3BtX3Jwcy5jIGIvdGVzdHMvcG1f cnBzLmMKaW5kZXggZjIyMmMwOWRhYWY1Li5kNjg5Nzg4MWQyYzYgMTAwNjQ0Ci0tLSBhL3Rlc3Rz L3BtX3Jwcy5jCisrKyBiL3Rlc3RzL3BtX3Jwcy5jCkBAIC00Miw3ICs0Miw3IEBACiAjaW5jbHVk ZSAiaW50ZWxfYnVmbWdyLmgiCiAjaW5jbHVkZSAiaW50ZWxfYmF0Y2hidWZmZXIuaCIKICNpbmNs dWRlICJpbnRlbF9jaGlwc2V0LmgiCi0jaW5jbHVkZSAiaWd0X2RlYnVnZnMuaCIKKyNpbmNsdWRl ICJpZ3RfZ3QuaCIKICNpbmNsdWRlICJpb2N0bF93cmFwcGVycy5oIgogCiBzdGF0aWMgaW50IGRy bV9mZDsKLS0gCjIuMS40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=