From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Matt Roper Date: Mon, 30 Sep 2019 16:13:05 -0700 Message-Id: <20190930231305.16488-1-matthew.d.roper@intel.com> In-Reply-To: <20190930224707.14904-1-matthew.d.roper@intel.com> References: <20190930224707.14904-1-matthew.d.roper@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t] tests/kms_crtc_background_color: overhaul to match upstream ABI (v5.1) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, igt-dev@lists.freedesktop.org Cc: Heiko Stuebner , Daniel Vetter List-ID: Q1JUQyBiYWNrZ3JvdW5kIGNvbG9yIGtlcm5lbCBwYXRjaGVzIHdlcmUgd3JpdHRlbiBhYm91dCAy LjUgeWVhcnMgYWdvCmFuZCBmbG9hdGVkIG9uIHRoZSB1cHN0cmVhbSBtYWlsaW5nIGxpc3QsIGJ1 dCBzaW5jZSBubyBvcGVuc291cmNlCnVzZXJzcGFjZSBtYXRlcmlhbGl6ZWQsIHdlIG5ldmVyIGFj dHVhbGx5IG1lcmdlZCB0aGVtLiAgSG93ZXZlciB0aGUKY29ycmVzcG9uZGluZyBJR1QgdGVzdCBk aWQgZ2V0IG1lcmdlZCBhbmQgaGFzIGJhc2ljYWxseSBiZWVuIGRlYWQgY29kZQpldmVyIHNpbmNl LgoKQSBjb3VwbGUgeWVhcnMgbGF0ZXIgd2UgZmluYWxseSBoYXZlIGFuIG9wZW4gc291cmNlIHVz ZXJzcGFjZQooQ2hyb21lT1MpLCBzbyBsZXRzIHVwZGF0ZSB0aGUgSUdUIHRlc3QgdG8gbWF0Y2gg dGhlIEFCSSB0aGF0J3MgYWN0dWFsbHkKZ29pbmcgdXBzdHJlYW0gYW5kIHRvIHJlbW92ZSBzb21l IG9mIHRoZSBjcnVmdCBmcm9tIHRoZSBvcmlnaW5hbCB0ZXN0CnRoYXQgd291bGRuJ3QgYWN0dWFs bHkgd29yay4KCkl0J3Mgd29ydGggbm90aW5nIHRoYXQgQ1JDJ3MgZG9uJ3Qgc2VlbSB0byB3b3Jr IHByb3Blcmx5IG9uIEludGVsIGdlbjkuClRoZSBic3BlYyBkb2VzIHRlbGwgdXMgdGhhdCB3ZSBt dXN0IGhhdmUgb25lIHBsYW5lIGVuYWJsZWQgYmVmb3JlIHRha2luZwphIHBpcGUtbGV2ZWwgKCJk bXV4IikgQ1JDLCBzbyB0aGlzIHRlc3QgaXMgdmlvbGF0aW5nIHRoYXQgYnkgZGlzYWJsaW5nCmFs bCBwbGFuZXM7IGl0J3MgcXVpdGUgcG9zc2libGUgdGhhdCB0aGlzIGlzIHRoZSBzb3VyY2Ugb2Yg dGhlIENSQwptaXNtYXRjaC4gIElmIHJ1bm5pbmcgb24gYW4gSW50ZWwgcGxhdGZvcm0sIHlvdSBt YXkgd2FudCB0byBydW4gaW4KaW50ZXJhY3RpdmUgbW9kZSAoIi0taW50ZXJhY3RpdmUtZGVidWc9 Ymdjb2xvciAtLXNraXAtY3JjLWNvbXBhcmUiKSB0bwplbnN1cmUgdGhhdCB0aGUgY29sb3JzIGJl aW5nIGdlbmVyYXRlZCBhY3R1YWxseSBkbyBtYXRjaCB2aXN1YWxseSBzaW5jZQp0aGUgQ1JDJ3Mg Y2FuJ3QgYmUgdHJ1c3RlZC4KCnYyOgogLSBTd2FwIHJlZCBhbmQgYmx1ZSBvcmRlcmluZyBpbiBw cm9wZXJ0eSB2YWx1ZSB0byByZWZsZWN0IGNoYW5nZQogICBpbiB2MiBvZiBrZXJuZWwgc2VyaWVz LgoKdjM6CiAtIE1pbm9yIHVwZGF0ZXMgdG8gcHJvcG9zZWQgdWFwaSBoZWxwZXJzIChzL3JnYmEv YXJnYi8pLgoKdjQ6CiAtIEdlbmVyYWwgcmVzdHJ1Y3R1cmluZyBpbnRvIHBpcGUvY29sb3Igc3Vi dGVzdHMuCiAtIFVzZSBSR0IyMTAxMDEwIGZyYW1lYnVmZmVycyBmb3IgY29tcGFyaXNvbiBzbyB0 aGF0IHdlIG1hdGNoIHRoZSBiaXRzCiAgIG9mIHByZWNpc2lvbiB0aGF0IEludGVsIGhhcmR3YXJl IGJhY2tncm91bmQgY29sb3IgYWNjZXB0cwoKdjU6CiAtIFJlLWVuYWJsZSBDUkMgY29tcGFyaXNv bnM7IGp1c3QgYmVjYXVzZSB0aGVzZSBkb24ndCB3b3JrIG9uIEludGVsCiAgIGRvZXNuJ3QgbWVh biB3ZSBzaG91bGRuJ3QgdXNlIHRoZW0gb24gb3RoZXIgdmVuZG9ycycgcGxhdGZvcm1zCiAgIChE YW5pZWwpLgogLSBVc2UgRFJJVkVSX0FOWSByYXRoZXIgdGhhbiBEUklWRVJfSU5URUwuIChIZWlr byBTdHVlYm5lcikKCnY1LjE6CiAtIFVwZGF0ZSBjb21taXQgbWVzc2FnZSBib2R5IGRpc2N1c3Np b24gb2YgQ1JDIGlzc3Vlcy4KCkNjOiBpZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpDYzog RGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPgpDYzogSGVpa28gU3R1ZWJuZXIgPGhlaWtv QHNudGVjaC5kZT4KU2lnbmVkLW9mZi1ieTogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGlu dGVsLmNvbT4KLS0tCiBsaWIvaWd0X2ttcy5jICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IHRlc3RzL2ttc19jcnRjX2JhY2tncm91bmRfY29sb3IuYyB8IDI2MyArKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTI3IGluc2VydGlvbnMoKyksIDEzOCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIvaWd0X2ttcy5jIGIvbGliL2lndF9rbXMuYwpp bmRleCBlOWI4MGI5Yi4uOWE3ZjBlMjMgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3Rfa21zLmMKKysrIGIv bGliL2lndF9rbXMuYwpAQCAtMzkxLDcgKzM5MSw3IEBAIGNvbnN0IGNoYXIgKiBjb25zdCBpZ3Rf cGxhbmVfcHJvcF9uYW1lc1tJR1RfTlVNX1BMQU5FX1BST1BTXSA9IHsKIH07CiAKIGNvbnN0IGNo YXIgKiBjb25zdCBpZ3RfY3J0Y19wcm9wX25hbWVzW0lHVF9OVU1fQ1JUQ19QUk9QU10gPSB7Ci0J W0lHVF9DUlRDX0JBQ0tHUk9VTkRdID0gImJhY2tncm91bmRfY29sb3IiLAorCVtJR1RfQ1JUQ19C QUNLR1JPVU5EXSA9ICJCQUNLR1JPVU5EX0NPTE9SIiwKIAlbSUdUX0NSVENfQ1RNXSA9ICJDVE0i LAogCVtJR1RfQ1JUQ19HQU1NQV9MVVRdID0gIkdBTU1BX0xVVCIsCiAJW0lHVF9DUlRDX0dBTU1B X0xVVF9TSVpFXSA9ICJHQU1NQV9MVVRfU0laRSIsCmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfY3J0 Y19iYWNrZ3JvdW5kX2NvbG9yLmMgYi90ZXN0cy9rbXNfY3J0Y19iYWNrZ3JvdW5kX2NvbG9yLmMK aW5kZXggM2RmMzQwMWYuLjU4Y2RkN2E5IDEwMDY0NAotLS0gYS90ZXN0cy9rbXNfY3J0Y19iYWNr Z3JvdW5kX2NvbG9yLmMKKysrIGIvdGVzdHMva21zX2NydGNfYmFja2dyb3VuZF9jb2xvci5jCkBA IC0yNSwxNjQgKzI1LDE1MyBAQAogI2luY2x1ZGUgImlndC5oIgogI2luY2x1ZGUgPG1hdGguaD4K IAotCiBJR1RfVEVTVF9ERVNDUklQVElPTigiVGVzdCBjcnRjIGJhY2tncm91bmQgY29sb3IgZmVh dHVyZSIpOwogCisvKgorICogUGFpbnRzIGEgZGVzaXJlZCBjb2xvciBpbnRvIGEgZnVsbC1zY3Jl ZW4gcHJpbWFyeSBwbGFuZSBhbmQgdGhlbiBjb21wYXJlcworICogdGhhdCBDUkMgd2l0aCB0dXJu aW5nIG9mZiBhbGwgcGxhbmVzIGFuZCBzZXR0aW5nIHRoZSBDUlRDIGJhY2tncm91bmQgdG8gdGhl CisgKiBzYW1lIGNvbG9yLgorICoKKyAqIEF0IGxlYXN0IG9uIGN1cnJlbnQgSW50ZWwgcGxhdGZv cm1zLCB0aGUgQ1JDIHRlc3RzIGFwcGVhciB0byBhbHdheXMgZmFpbCwKKyAqIGV2ZW4gdGhvdWdo IHRoZSByZXN1bHRpbmcgcGlwZSBvdXRwdXQgc2VlbXMgdG8gYmUgdGhlIHNhbWUuICBUaGUgYnNw ZWMgdGVsbHMKKyAqIHVzIHRoYXQgd2UgbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBwbGFuZSB0dXJu ZWQgb24gd2hlbiB0YWtpbmcgYSBwaXBlLWxldmVsCisgKiBDUkMsIHNvIHRoZSBmYWN0IHRoYXQg d2UncmUgdmlvbGF0aW5nIHRoYXQgbWF5IGV4cGxhaW4gdGhlIGZhaWx1cmVzLiAgSWYKKyAqIHlv dXIgcGxhdGZvcm0gZ2l2ZXMgZmFpbHVyZXMgZm9yIGFsbCB0ZXN0cywgeW91IG1heSB3YW50IHRv IHJ1biB3aXRoCisgKiAtLWludGVyYWN0aXZlLWRlYnVnPWJnY29sb3IgLS1za2lwLWNyYy1jb21w YXJlIHRvIHZpc3VhbGx5IGluc3BlY3QgdGhhdCB0aGUKKyAqIGJhY2tncm91bmQgY29sb3IgbWF0 Y2hlcyB0aGUgZXF1aXZhbGVudCBzb2xpZCBwbGFuZS4KKyAqLworCiB0eXBlZGVmIHN0cnVjdCB7 Ci0JaW50IGdmeF9mZDsKIAlpZ3RfZGlzcGxheV90IGRpc3BsYXk7Ci0Jc3RydWN0IGlndF9mYiBm YjsKLQlpZ3RfY3JjX3QgcmVmX2NyYzsKKwlpbnQgZ2Z4X2ZkOworCWlndF9vdXRwdXRfdCAqb3V0 cHV0OwogCWlndF9waXBlX2NyY190ICpwaXBlX2NyYzsKKwlkcm1Nb2RlTW9kZUluZm8gKm1vZGU7 CiB9IGRhdGFfdDsKIAotI2RlZmluZSBCTEFDSyAgICAgIDB4MDAwMDAwICAgICAgICAgICAvKiBC R1IgOGJwYyAqLwotI2RlZmluZSBDWUFOICAgICAgIDB4RkZGRjAwICAgICAgICAgICAvKiBCR1Ig OGJwYyAqLwotI2RlZmluZSBQVVJQTEUgICAgIDB4RkYwMEZGICAgICAgICAgICAvKiBCR1IgOGJw YyAqLwotI2RlZmluZSBXSElURSAgICAgIDB4RkZGRkZGICAgICAgICAgICAvKiBCR1IgOGJwYyAq LwotCi0jZGVmaW5lIEJMQUNLNjQgICAgMHgwMDAwMDAwMDAwMDAgICAgIC8qIEJHUiAxNmJwYyAq LwotI2RlZmluZSBDWUFONjQgICAgIDB4RkZGRkZGRkYwMDAwICAgICAvKiBCR1IgMTZicGMgKi8K LSNkZWZpbmUgUFVSUExFNjQgICAweEZGRkYwMDAwRkZGRiAgICAgLyogQkdSIDE2YnBjICovCi0j ZGVmaW5lIFlFTExPVzY0ICAgMHgwMDAwRkZGRkZGRkYgICAgIC8qIEJHUiAxNmJwYyAqLwotI2Rl ZmluZSBXSElURTY0ICAgIDB4RkZGRkZGRkZGRkZGICAgICAvKiBCR1IgMTZicGMgKi8KLSNkZWZp bmUgUkVENjQgICAgICAweDAwMDAwMDAwRkZGRiAgICAgLyogQkdSIDE2YnBjICovCi0jZGVmaW5l IEdSRUVONjQgICAgMHgwMDAwRkZGRjAwMDAgICAgIC8qIEJHUiAxNmJwYyAqLwotI2RlZmluZSBC TFVFNjQgICAgIDB4RkZGRjAwMDAwMDAwICAgICAvKiBCR1IgMTZicGMgKi8KLQotc3RhdGljIHZv aWQKLXBhaW50X2JhY2tncm91bmQoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgaWd0X2ZiICpmYiwgZHJt TW9kZU1vZGVJbmZvICptb2RlLAotCQl1aW50MzJfdCBiYWNrZ3JvdW5kLCBkb3VibGUgYWxwaGEp CisvKgorICogTG9jYWwgY29weSBvZiBrZXJuZWwgdWFwaQorICovCitzdGF0aWMgaW5saW5lIF9f dTY0Citsb2NhbF9hcmdiKF9fdTggYnBjLCBfX3UxNiBhbHBoYSwgX191MTYgcmVkLCBfX3UxNiBn cmVlbiwgX191MTYgYmx1ZSkKIHsKLQljYWlyb190ICpjcjsKLQlpbnQgdywgaDsKLQlkb3VibGUg ciwgZywgYjsKLQotCXcgPSBtb2RlLT5oZGlzcGxheTsKLQloID0gbW9kZS0+dmRpc3BsYXk7Ci0K LQljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmdmeF9mZCwgJmRhdGEtPmZiKTsKKyAgICAg ICBpbnQgbXNiX3NoaWZ0ID0gMTYgLSBicGM7CiAKLQkvKiBQYWludCB3aXRoIGJhY2tncm91bmQg Y29sb3IgKi8KLQlyID0gKGRvdWJsZSkgKGJhY2tncm91bmQgJiAweEZGKSAvIDI1NS4wOwotCWcg PSAoZG91YmxlKSAoKGJhY2tncm91bmQgJiAweEZGMDApID4+IDgpIC8gMjU1LjA7Ci0JYiA9IChk b3VibGUpICgoYmFja2dyb3VuZCAmIDB4RkYwMDAwKSA+PiAxNikgLyAyNTUuMDsKLQlpZ3RfcGFp bnRfY29sb3JfYWxwaGEoY3IsIDAsIDAsIHcsIGgsIHIsIGcsIGIsIGFscGhhKTsKLQotCWlndF9w dXRfY2Fpcm9fY3R4KGRhdGEtPmdmeF9mZCwgJmRhdGEtPmZiLCBjcik7CisgICAgICAgcmV0dXJu IChfX3U2NClhbHBoYSA8PCBtc2Jfc2hpZnQgPDwgNDggfAorICAgICAgICAgICAgICAoX191NjQp cmVkICAgPDwgbXNiX3NoaWZ0IDw8IDMyIHwKKyAgICAgICAgICAgICAgKF9fdTY0KWdyZWVuIDw8 IG1zYl9zaGlmdCA8PCAxNiB8CisgICAgICAgICAgICAgIChfX3U2NClibHVlICA8PCBtc2Jfc2hp ZnQ7CiB9CiAKLXN0YXRpYyB2b2lkIHByZXBhcmVfY3J0YyhkYXRhX3QgKmRhdGEsIGlndF9vdXRw dXRfdCAqb3V0cHV0LCBlbnVtIHBpcGUgcGlwZSwKLQkJCWlndF9wbGFuZV90ICpwbGFuZSwgaW50 IG9wYXF1ZV9idWZmZXIsIGludCBwbGFuZV9jb2xvciwKLQkJCXVpbnQ2NF90IHBpcGVfYmFja2dy b3VuZF9jb2xvcikKK3N0YXRpYyB2b2lkIHRlc3RfYmFja2dyb3VuZChkYXRhX3QgKmRhdGEsIGVu dW0gcGlwZSBwaXBlLCBpbnQgdywgaW50IGgsCisJCQkgICAgX191NjQgciwgX191NjQgZywgX191 NjQgYikKIHsKLQlkcm1Nb2RlTW9kZUluZm8gKm1vZGU7Ci0JaWd0X2Rpc3BsYXlfdCAqZGlzcGxh eSA9ICZkYXRhLT5kaXNwbGF5OwotCWludCBmYl9pZDsKLQlkb3VibGUgYWxwaGE7Ci0KLQlpZ3Rf b3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7Ci0KLQkvKiBjcmVhdGUgdGhlIHBpcGVfY3Jj IG9iamVjdCBmb3IgdGhpcyBwaXBlICovCi0JaWd0X3BpcGVfY3JjX2ZyZWUoZGF0YS0+cGlwZV9j cmMpOwotCWRhdGEtPnBpcGVfY3JjID0gaWd0X3BpcGVfY3JjX25ldyhkYXRhLT5nZnhfZmQsIHBp cGUsIElOVEVMX1BJUEVfQ1JDX1NPVVJDRV9BVVRPKTsKLQotCW1vZGUgPSBpZ3Rfb3V0cHV0X2dl dF9tb2RlKG91dHB1dCk7Ci0KLQlmYl9pZCA9IGlndF9jcmVhdGVfZmIoZGF0YS0+Z2Z4X2ZkLAot CQkJbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5LAotCQkJRFJNX0ZPUk1BVF9YUkdCODg4 OCwKLQkJCUxPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsIC8qIHRpbGVkICovCi0JCQkmZGF0YS0+ ZmIpOwotCWlndF9hc3NlcnQoZmJfaWQpOwotCi0JLyogVG8gbWFrZSBGQiBwaXhlbCB3aW4gd2l0 aCBiYWNrZ3JvdW5kIGNvbG9yLCBzZXQgYWxwaGEgYXMgZnVsbCBvcGFxdWUgKi8KLQlpZ3RfcGlw ZV9zZXRfcHJvcF92YWx1ZShkaXNwbGF5LCBwaXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5ELCBwaXBl X2JhY2tncm91bmRfY29sb3IpOwotCWlmIChvcGFxdWVfYnVmZmVyKQotCQlhbHBoYSA9IDEuMDsg ICAgLyogYWxwaGEgMSBpcyBmdWxseSBvcHF1ZSAqLwotCWVsc2UKLQkJYWxwaGEgPSAwLjA7ICAg IC8qIGFscGhhIDAgaXMgZnVsbHkgdHJhbnNwYXJlbnQgKi8KLQlwYWludF9iYWNrZ3JvdW5kKGRh dGEsICZkYXRhLT5mYiwgbW9kZSwgcGxhbmVfY29sb3IsIGFscGhhKTsKLQotCWlndF9wbGFuZV9z ZXRfZmIocGxhbmUsICZkYXRhLT5mYik7Ci0JaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBD T01NSVRfVU5JVkVSU0FMKTsKLX0KLQotc3RhdGljIHZvaWQgY2xlYW51cF9jcnRjKGRhdGFfdCAq ZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQsIGlndF9wbGFuZV90ICpwbGFuZSkKLXsKLQlpZ3Rf ZGlzcGxheV90ICpkaXNwbGF5ID0gJmRhdGEtPmRpc3BsYXk7Ci0KLQlpZ3RfcGlwZV9jcmNfZnJl ZShkYXRhLT5waXBlX2NyYyk7Ci0JZGF0YS0+cGlwZV9jcmMgPSBOVUxMOwotCi0JaWd0X3JlbW92 ZV9mYihkYXRhLT5nZnhfZmQsICZkYXRhLT5mYik7Ci0KLQlpZ3RfcGlwZV9vYmpfc2V0X3Byb3Bf dmFsdWUocGxhbmUtPnBpcGUsIElHVF9DUlRDX0JBQ0tHUk9VTkQsIEJMQUNLNjQpOworCWlndF9j cmNfdCBwbGFuZV9jcmMsIGJnX2NyYzsKKwlzdHJ1Y3QgaWd0X2ZiIGNvbG9yZmI7CisJaWd0X3Bs YW5lX3QgKnBsYW5lID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShkYXRhLT5vdXRwdXQsCisJ CQkJCQkgICAgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7CisKKworCS8qIEZpbGwgdGhlIHBy aW1hcnkgcGxhbmUgYW5kIHNldCB0aGUgYmFja2dyb3VuZCB0byB0aGUgc2FtZSBjb2xvciAqLwor CWlndF9jcmVhdGVfY29sb3JfZmIoZGF0YS0+Z2Z4X2ZkLCB3LCBoLCBEUk1fRk9STUFUX1hSR0Iy MTAxMDEwLAorCQkJICAgIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsCisJCQkgICAgKGRvdWJs ZSlyIC8gMHhGRkZGLAorCQkJICAgIChkb3VibGUpZyAvIDB4RkZGRiwKKwkJCSAgICAoZG91Ymxl KWIgLyAweEZGRkYsCisJCQkgICAgJmNvbG9yZmIpOworCWlndF9wbGFuZV9zZXRfZmIocGxhbmUs ICZjb2xvcmZiKTsKKwlpZ3RfcGlwZV9zZXRfcHJvcF92YWx1ZSgmZGF0YS0+ZGlzcGxheSwgcGlw ZSwgSUdUX0NSVENfQkFDS0dST1VORCwKKwkJCQlsb2NhbF9hcmdiKDE2LCAweGZmZmYsIHIsIGcs IGIpKTsKKwlpZ3RfZGlzcGxheV9jb21taXQyKCZkYXRhLT5kaXNwbGF5LCBDT01NSVRfQVRPTUlD KTsKKwlpZ3RfcGlwZV9jcmNfY29sbGVjdF9jcmMoZGF0YS0+cGlwZV9jcmMsICZwbGFuZV9jcmMp OworCWlndF9kZWJ1Z193YWl0X2Zvcl9rZXlwcmVzcygiYmdjb2xvciIpOworCisJLyogVHVybiBv ZmYgdGhlIHByaW1hcnkgcGxhbmUgc28gb25seSBiZyBzaG93cyAqLwogCWlndF9wbGFuZV9zZXRf ZmIocGxhbmUsIE5VTEwpOwotCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX0FOWSk7 Ci0KLQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOworCWln dF9kaXNwbGF5X2NvbW1pdDIoJmRhdGEtPmRpc3BsYXksIENPTU1JVF9BVE9NSUMpOworCWlndF9w aXBlX2NyY19jb2xsZWN0X2NyYyhkYXRhLT5waXBlX2NyYywgJmJnX2NyYyk7CisJaWd0X2RlYnVn X3dhaXRfZm9yX2tleXByZXNzKCJiZ2NvbG9yIik7CisKKwkvKgorCSAqIFRoZSBmb2xsb3dpbmcg dGVzdCByZWxpZXMgb24gaGFyZHdhcmUgdGhhdCBnZW5lcmF0ZXMgdmFsaWQgQ1JDcworCSAqIGV2 ZW4gd2hlbiBubyBwbGFuZXMgYXJlIG9uLiAgU2FkbHksIHRoaXMgZG9lc24ndCBhcHBlYXIgdG8g YmUgdGhlCisJICogY2FzZSBmb3IgY3VycmVudCBJbnRlbCBwbGF0Zm9ybXM7IHBpcGUgQ1JDJ3Mg bmV2ZXIgbWF0Y2ggYmdjb2xvcgorCSAqIENSQydzLCBsaWtlbHkgYmVjYXVzZSB3ZSdyZSB2aW9s YXRpbmcgdGhlIGJzcGVjJ3MgZ3VpZGFuY2UgdGhhdCB0aGVyZQorCSAqIG11c3QgYWx3YXlzIGJl IGF0IGxlYXN0IG9uZSByZWFsIHBsYW5lIHR1cm5lZCBvbiB3aGVuIHRha2luZyB0aGUKKwkgKiBw aXBlLWxldmVsICgiZG11eCIpIENSQy4KKwkgKi8KKwlpZ3RfYXNzZXJ0X2NyY19lcXVhbCgmcGxh bmVfY3JjLCAmYmdfY3JjKTsKIH0KIAotc3RhdGljIHZvaWQgdGVzdF9jcnRjX2JhY2tncm91bmQo ZGF0YV90ICpkYXRhKQoraWd0X21haW4KIHsKLQlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0gJmRh dGEtPmRpc3BsYXk7CisJZGF0YV90IGRhdGEgPSB7fTsKIAlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsK Kwlkcm1Nb2RlTW9kZUluZm8gKm1vZGU7CisJaW50IHcsIGg7CiAJZW51bSBwaXBlIHBpcGU7Ci0J aW50IHZhbGlkX3Rlc3RzID0gMDsKLQotCWZvcl9lYWNoX3BpcGVfd2l0aF92YWxpZF9vdXRwdXQo ZGlzcGxheSwgcGlwZSwgb3V0cHV0KSB7Ci0JCWlndF9wbGFuZV90ICpwbGFuZTsKLQotCQlpZ3Rf b3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7Ci0KLQkJcGxhbmUgPSBpZ3Rfb3V0cHV0X2dl dF9wbGFuZV90eXBlKG91dHB1dCwgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7Ci0JCWlndF9yZXF1 aXJlKGlndF9waXBlX2hhc19wcm9wKGRpc3BsYXksIHBpcGUsIElHVF9DUlRDX0JBQ0tHUk9VTkQp KTsKLQotCQlwcmVwYXJlX2NydGMoZGF0YSwgb3V0cHV0LCBwaXBlLCBwbGFuZSwgMSwgUFVSUExF LCBCTEFDSzY0KTsKLQotCQkvKiBOb3cgc2V0IGJhY2tncm91bmQgd2l0aG91dCB1c2luZyBhIHBs YW5lLCBpLmUuLAotCQkgKiBEaXNhYmxlIHRoZSBwbGFuZSB0byBsZXQgaHcgYmFja2dyb3VuZCBj b2xvciB3aW4gYmxlbmQuICovCi0JCWlndF9wbGFuZV9zZXRfZmIocGxhbmUsIE5VTEwpOwotCQlp Z3RfcGlwZV9zZXRfcHJvcF92YWx1ZShkaXNwbGF5LCBwaXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5E LCBQVVJQTEU2NCk7Ci0JCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZF UlNBTCk7Ci0KLQkJLyogVHJ5IGZldyBvdGhlciBiYWNrZ3JvdW5kIGNvbG9ycyAqLwotCQlpZ3Rf cGlwZV9zZXRfcHJvcF92YWx1ZShkaXNwbGF5LCBwaXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5ELCBD WUFONjQpOwotCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwp OwotCi0JCWlndF9waXBlX3NldF9wcm9wX3ZhbHVlKGRpc3BsYXksIHBpcGUsIElHVF9DUlRDX0JB Q0tHUk9VTkQsIFlFTExPVzY0KTsKLQkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01N SVRfVU5JVkVSU0FMKTsKIAotCQlpZ3RfcGlwZV9zZXRfcHJvcF92YWx1ZShkaXNwbGF5LCBwaXBl LCBJR1RfQ1JUQ19CQUNLR1JPVU5ELCBSRUQ2NCk7Ci0JCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlz cGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CisJaWd0X2ZpeHR1cmUgeworCQlkYXRhLmdmeF9mZCA9 IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoRFJJVkVSX0FOWSk7CisJCWttc3Rlc3Rfc2V0X3Z0X2dy YXBoaWNzX21vZGUoKTsKIAotCQlpZ3RfcGlwZV9zZXRfcHJvcF92YWx1ZShkaXNwbGF5LCBwaXBl LCBJR1RfQ1JUQ19CQUNLR1JPVU5ELCBHUkVFTjY0KTsKLQkJaWd0X2Rpc3BsYXlfY29tbWl0Mihk aXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKLQotCQlpZ3RfcGlwZV9zZXRfcHJvcF92YWx1ZShk aXNwbGF5LCBwaXBlLCBJR1RfQ1JUQ19CQUNLR1JPVU5ELCBCTFVFNjQpOwotCQlpZ3RfZGlzcGxh eV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOwotCi0JCWlndF9waXBlX3NldF9w cm9wX3ZhbHVlKGRpc3BsYXksIHBpcGUsIElHVF9DUlRDX0JBQ0tHUk9VTkQsIFdISVRFNjQpOwot CQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOwotCi0JCXZh bGlkX3Rlc3RzKys7Ci0JCWNsZWFudXBfY3J0YyhkYXRhLCBvdXRwdXQsIHBsYW5lKTsKKwkJaWd0 X3JlcXVpcmVfcGlwZV9jcmMoZGF0YS5nZnhfZmQpOworCQlpZ3RfZGlzcGxheV9yZXF1aXJlKCZk YXRhLmRpc3BsYXksIGRhdGEuZ2Z4X2ZkKTsKIAl9Ci0JaWd0X3JlcXVpcmVfZih2YWxpZF90ZXN0 cywgIm5vIHZhbGlkIGNydGMvY29ubmVjdG9yIGNvbWJpbmF0aW9ucyBmb3VuZFxuIik7Ci19CiAK LWlndF9zaW1wbGVfbWFpbgotewotCWRhdGFfdCBkYXRhID0ge307Ci0KLQlpZ3Rfc2tpcF9vbl9z aW11bGF0aW9uKCk7Ci0KLQlkYXRhLmdmeF9mZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfSU5U RUwpOwotCWlndF9yZXF1aXJlX3BpcGVfY3JjKGRhdGEuZ2Z4X2ZkKTsKLQlpZ3RfZGlzcGxheV9y ZXF1aXJlKCZkYXRhLmRpc3BsYXksIGRhdGEuZ2Z4X2ZkKTsKLQotCXRlc3RfY3J0Y19iYWNrZ3Jv dW5kKCZkYXRhKTsKKwlmb3JfZWFjaF9waXBlX3N0YXRpYyhwaXBlKSBpZ3Rfc3VidGVzdF9ncm91 cCB7CisJCWlndF9maXh0dXJlIHsKKwkJCWlndF9kaXNwbGF5X3JlcXVpcmVfb3V0cHV0X29uX3Bp cGUoJmRhdGEuZGlzcGxheSwgcGlwZSk7CisJCQlpZ3RfcmVxdWlyZShpZ3RfcGlwZV9oYXNfcHJv cCgmZGF0YS5kaXNwbGF5LCBwaXBlLAorCQkJCQkJICAgICAgSUdUX0NSVENfQkFDS0dST1VORCkp OworCisJCQlvdXRwdXQgPSBpZ3RfZ2V0X3NpbmdsZV9vdXRwdXRfZm9yX3BpcGUoJmRhdGEuZGlz cGxheSwKKwkJCQkJCQkJcGlwZSk7CisJCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlw ZSk7CisJCQlkYXRhLm91dHB1dCA9IG91dHB1dDsKKworCQkJbW9kZSA9IGlndF9vdXRwdXRfZ2V0 X21vZGUob3V0cHV0KTsKKwkJCXcgPSBtb2RlLT5oZGlzcGxheTsKKwkJCWggPSBtb2RlLT52ZGlz cGxheTsKKworCQkJZGF0YS5waXBlX2NyYyA9IGlndF9waXBlX2NyY19uZXcoZGF0YS5nZnhfZmQs IHBpcGUsCisJCQkJCQkJICBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfQVVUTyk7CisJCX0KKworCQlp Z3Rfc3VidGVzdF9mKCJiYWNrZ3JvdW5kLWNvbG9yLXBpcGUtJXMtYmxhY2siLAorCQkJICAgICAg a21zdGVzdF9waXBlX25hbWUocGlwZSkpCisJCQl0ZXN0X2JhY2tncm91bmQoJmRhdGEsIHBpcGUs IHcsIGgsCisJCQkJCTAsIDAsIDApOworCisJCWlndF9zdWJ0ZXN0X2YoImJhY2tncm91bmQtY29s b3ItcGlwZS0lcy13aGl0ZSIsCisJCQkgICAgICBrbXN0ZXN0X3BpcGVfbmFtZShwaXBlKSkKKwkJ CXRlc3RfYmFja2dyb3VuZCgmZGF0YSwgcGlwZSwgdywgaCwKKwkJCQkJMHhGRkZGLCAweEZGRkYs IDB4RkZGRik7CisKKwkJaWd0X3N1YnRlc3RfZigiYmFja2dyb3VuZC1jb2xvci1waXBlLSVzLXJl ZCIsCisJCQkgICAgICBrbXN0ZXN0X3BpcGVfbmFtZShwaXBlKSkKKwkJCXRlc3RfYmFja2dyb3Vu ZCgmZGF0YSwgcGlwZSwgdywgaCwKKwkJCQkJMHhGRkZGLCAwLCAwKTsKKworCQlpZ3Rfc3VidGVz dF9mKCJiYWNrZ3JvdW5kLWNvbG9yLXBpcGUtJXMtZ3JlZW4iLAorCQkJICAgICAga21zdGVzdF9w aXBlX25hbWUocGlwZSkpCisKKwkJCXRlc3RfYmFja2dyb3VuZCgmZGF0YSwgcGlwZSwgdywgaCwK KwkJCQkJMCwgMHhGRkZGLCAwKTsKKworCQlpZ3Rfc3VidGVzdF9mKCJiYWNrZ3JvdW5kLWNvbG9y LXBpcGUtJXMtYmx1ZSIsCisJCQkgICAgICBrbXN0ZXN0X3BpcGVfbmFtZShwaXBlKSkKKwkJCXRl c3RfYmFja2dyb3VuZCgmZGF0YSwgcGlwZSwgdywgaCwKKwkJCQkJMCwgMCwgMHhGRkZGKTsKKwor CQlpZ3RfZml4dHVyZSB7CisJCQlpZ3RfZGlzcGxheV9yZXNldCgmZGF0YS5kaXNwbGF5KTsKKwkJ CWlndF9waXBlX2NyY19mcmVlKGRhdGEucGlwZV9jcmMpOworCQkJZGF0YS5waXBlX2NyYyA9IE5V TEw7CisJCX0KKwl9CiAKLQlpZ3RfZGlzcGxheV9maW5pKCZkYXRhLmRpc3BsYXkpOworCWlndF9m aXh0dXJlIHsKKwkJaWd0X2Rpc3BsYXlfZmluaSgmZGF0YS5kaXNwbGF5KTsKKwl9CiB9Ci0tIAoy LjIxLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmln dC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==