From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chandra Konduru Subject: =?utf-8?q?=5BPATCH_v2=5D_i-g-t=3A_Adding_test_case_to?= =?utf-8?q?_test_background_color=2E?= Date: Fri, 27 Feb 2015 17:25:52 -0800 Message-ID: <1425086752-5558-1-git-send-email-chandra.konduru@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 506F86E9BA for ; Fri, 27 Feb 2015 17:26:23 -0800 (PST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogY2hhbmRyYSBrb25kdXJ1IDxjaGFuZHJhLmtvbmR1cnVAaW50ZWwuY29tPgoKQWRkaW5n IGktZy10IHRlc3QgY2FzZSB0byB0ZXN0IGRpc3BsYXkgY3J0YyBiYWNrZ3JvdW5kIGNvbG9yLgoK djI6Ci0gQWRkZWQgSUdUX1RFU1RfREVTQ1JJUFRJT04oKSAoVGhvbWFzIFdvb2QpCi0gQWRkZWQg dG8gLmdpdGlnbm9yZSAoVGhvbWFzIFdvb2QpCi0gQWRkZWQgYWRkaXRpb25hbCBkZXRhaWxzIHRv IGZ1bmN0aW9uIGhlYWRlciAoVGhvbWFzIFdvb2QpCi0gU2ltcGxpZmllZCBpZ3RfbWFpbiAoVGhv bWFzIFdvb2QpCgpTaWduZWQtb2ZmLWJ5OiBjaGFuZHJhIGtvbmR1cnUgPGNoYW5kcmEua29uZHVy dUBpbnRlbC5jb20+Ci0tLQogbGliL2lndF9rbXMuYyAgICAgICAgICAgICAgICAgICAgIHwgIDYx ICsrKysrKysrKysrKwogbGliL2lndF9rbXMuaCAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsK IHRlc3RzLy5naXRpZ25vcmUgICAgICAgICAgICAgICAgICB8ICAgMSArCiB0ZXN0cy9BbmRyb2lk Lm1rICAgICAgICAgICAgICAgICAgfCAgIDEgKwogdGVzdHMvTWFrZWZpbGUuc291cmNlcyAgICAg ICAgICAgIHwgICAxICsKIHRlc3RzL2ttc19jcnRjX2JhY2tncm91bmRfY29sb3IuYyB8IDIwMSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCAy NjkgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ttc19jcnRjX2JhY2tn cm91bmRfY29sb3IuYwoKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21zLmMgYi9saWIvaWd0X2ttcy5j CmluZGV4IGQwYzM2OTAuLjcyODQxZWYgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3Rfa21zLmMKKysrIGIv bGliL2lndF9rbXMuYwpAQCAtOTI2LDYgKzkyNiwyMiBAQCBpZ3RfcGxhbmVfc2V0X3Byb3BlcnR5 KGlndF9wbGFuZV90ICpwbGFuZSwgdWludDMyX3QgcHJvcF9pZCwgdWludDY0X3QgdmFsdWUpCiAJ CQkJIERSTV9NT0RFX09CSkVDVF9QTEFORSwgcHJvcF9pZCwgdmFsdWUpOwogfQogCitzdGF0aWMg Ym9vbAorZ2V0X2NydGNfcHJvcGVydHkoaW50IGRybV9mZCwgdWludDMyX3QgY3J0Y19pZCwgY29u c3QgY2hhciAqbmFtZSwKKwkJICAgdWludDMyX3QgKnByb3BfaWQgLyogb3V0ICovLCB1aW50NjRf dCAqdmFsdWUgLyogb3V0ICovLAorCQkgICBkcm1Nb2RlUHJvcGVydHlQdHIgKnByb3AgLyogb3V0 ICovKQoreworCXJldHVybiBrbXN0ZXN0X2dldF9wcm9wZXJ0eShkcm1fZmQsIGNydGNfaWQsIERS TV9NT0RFX09CSkVDVF9DUlRDLAorCQkJCSAgICBuYW1lLCBwcm9wX2lkLCB2YWx1ZSwgcHJvcCk7 Cit9CisKK3N0YXRpYyB2b2lkCitpZ3RfY3J0Y19zZXRfcHJvcGVydHkoaWd0X291dHB1dF90ICpv dXRwdXQsIHVpbnQzMl90IHByb3BfaWQsIHVpbnQ2NF90IHZhbHVlKQoreworCWRybU1vZGVPYmpl Y3RTZXRQcm9wZXJ0eShvdXRwdXQtPmRpc3BsYXktPmRybV9mZCwKKwkJb3V0cHV0LT5jb25maWcu Y3J0Yy0+Y3J0Y19pZCwgRFJNX01PREVfT0JKRUNUX0NSVEMsIHByb3BfaWQsIHZhbHVlKTsKK30K KwogLyoKICAqIFdhbGsgYSBwbGFuZSdzIHByb3BlcnR5IGxpc3QgdG8gZGV0ZXJtaW5lIGl0cyB0 eXBlLiAgSWYgd2UgZG9uJ3QKICAqIGZpbmQgYSB0eXBlIHByb3BlcnR5LCB0aGVuIHRoZSBrZXJu ZWwgZG9lc24ndCBzdXBwb3J0IHVuaXZlcnNhbApAQCAtMTA4Myw2ICsxMDk5LDcgQEAgdm9pZCBp Z3RfZGlzcGxheV9pbml0KGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGludCBkcm1fZmQpCiAJaWd0 X2Fzc2VydChkaXNwbGF5LT5vdXRwdXRzKTsKIAogCWZvciAoaSA9IDA7IGkgPCBkaXNwbGF5LT5u X291dHB1dHM7IGkrKykgeworCQlpbnQgajsKIAkJaWd0X291dHB1dF90ICpvdXRwdXQgPSAmZGlz cGxheS0+b3V0cHV0c1tpXTsKIAogCQkvKgpAQCAtMTA5NCw2ICsxMTExLDE5IEBAIHZvaWQgaWd0 X2Rpc3BsYXlfaW5pdChpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBpbnQgZHJtX2ZkKQogCQlvdXRw dXQtPmRpc3BsYXkgPSBkaXNwbGF5OwogCiAJCWlndF9vdXRwdXRfcmVmcmVzaChvdXRwdXQpOwor CisJCWZvciAoaiA9IDA7IGogPCBkaXNwbGF5LT5uX3BpcGVzOyBqKyspIHsKKwkJCXVpbnQ2NF90 IHByb3BfdmFsdWU7CisJCQlpZ3RfcGlwZV90ICpwaXBlID0gJmRpc3BsYXktPnBpcGVzW2pdOwor CQkJaWYgKG91dHB1dC0+Y29uZmlnLmNydGMpIHsKKwkJCQlnZXRfY3J0Y19wcm9wZXJ0eShkaXNw bGF5LT5kcm1fZmQsIG91dHB1dC0+Y29uZmlnLmNydGMtPmNydGNfaWQsCisJCQkJCQkgICAiYmFj a2dyb3VuZF9jb2xvciIsCisJCQkJCQkgICAmcGlwZS0+YmFja2dyb3VuZF9wcm9wZXJ0eSwKKwkJ CQkJCSAgICZwcm9wX3ZhbHVlLAorCQkJCQkJICAgTlVMTCk7CisJCQkJcGlwZS0+YmFja2dyb3Vu ZCA9ICh1aW50MzJfdClwcm9wX3ZhbHVlOworCQkJfQorCQl9CiAJfQogCiAJZHJtTW9kZUZyZWVQ bGFuZVJlc291cmNlcyhwbGFuZV9yZXNvdXJjZXMpOwpAQCAtMTUxMyw2ICsxNTQzLDEzIEBAIHN0 YXRpYyBpbnQgaWd0X291dHB1dF9jb21taXQoaWd0X291dHB1dF90ICpvdXRwdXQsCiAKIAlwaXBl ID0gaWd0X291dHB1dF9nZXRfZHJpdmluZ19waXBlKG91dHB1dCk7CiAKKwlpZiAocGlwZS0+YmFj a2dyb3VuZF9jaGFuZ2VkKSB7CisJCWlndF9jcnRjX3NldF9wcm9wZXJ0eShvdXRwdXQsIHBpcGUt PmJhY2tncm91bmRfcHJvcGVydHksCisJCQlwaXBlLT5iYWNrZ3JvdW5kKTsKKworCQlwaXBlLT5i YWNrZ3JvdW5kX2NoYW5nZWQgPSBmYWxzZTsKKwl9CisKIAlmb3IgKGkgPSAwOyBpIDwgcGlwZS0+ bl9wbGFuZXM7IGkrKykgewogCQlpZ3RfcGxhbmVfdCAqcGxhbmUgPSAmcGlwZS0+cGxhbmVzW2ld OwogCkBAIC0xNzY1LDYgKzE4MDIsMzAgQEAgdm9pZCBpZ3RfcGxhbmVfc2V0X3JvdGF0aW9uKGln dF9wbGFuZV90ICpwbGFuZSwgaWd0X3JvdGF0aW9uX3Qgcm90YXRpb24pCiAJcGxhbmUtPnJvdGF0 aW9uX2NoYW5nZWQgPSB0cnVlOwogfQogCisvKioKKyAqIGlndF9jcnRjX3NldF9iYWNrZ3JvdW5k OgorICogQHBpcGU6IHBpcGUgcG9pbnRlciB0byB3aGljaCBiYWNrZ3JvdW5kIGNvbG9yIHRvIGJl IHNldAorICogQGJhY2tncm91bmQ6IGJhY2tncm91bmQgY29sb3IgdmFsdWUgaW4gQkdSIDE2YnBj CisgKgorICogU2V0cyBiYWNrZ3JvdW5kIGNvbG9yIGZvciByZXF1ZXN0ZWQgcGlwZS4gQ29sb3Ig dmFsdWUgcHJvdmlkZWQgaGVyZQorICogd2lsbCBiZSBhY3R1YWxseSBzdWJtaXR0ZWQgYXQgb3V0 cHV0IGNvbW1pdCB0aW1lIHZpYSAiYmFja2dyb3VuZF9jb2xvciIKKyAqIHByb3BlcnR5LgorICog Rm9yIGV4YW1wbGUgdG8gZ2V0IHJlZCBhcyBiYWNrZ3JvdW5kLCBzZXQgYmFja2dyb3VuZCA9IDB4 MDAwMDAwMDBGRkZGLgorICovCit2b2lkIGlndF9jcnRjX3NldF9iYWNrZ3JvdW5kKGlndF9waXBl X3QgKnBpcGUsIHVpbnQ2NF90IGJhY2tncm91bmQpCit7CisJaWd0X2Rpc3BsYXlfdCAqZGlzcGxh eSA9IHBpcGUtPmRpc3BsYXk7CisKKwlMT0coZGlzcGxheSwgIiVzLiVkOiBjcnRjX3NldF9iYWNr Z3JvdW5kKCVsdSlcbiIsCisJICAgIGttc3Rlc3RfcGlwZV9uYW1lKHBpcGUtPnBpcGUpLAorCSAg ICBwaXBlLT5waXBlLCBiYWNrZ3JvdW5kKTsKKworCXBpcGUtPmJhY2tncm91bmQgPSBiYWNrZ3Jv dW5kOworCisJcGlwZS0+YmFja2dyb3VuZF9jaGFuZ2VkID0gdHJ1ZTsKK30KKworCiB2b2lkIGln dF93YWl0X2Zvcl92YmxhbmsoaW50IGRybV9mZCwgZW51bSBwaXBlIHBpcGUpCiB7CiAJZHJtVkJs YW5rIHdhaXRfdmJsOwpkaWZmIC0tZ2l0IGEvbGliL2lndF9rbXMuaCBiL2xpYi9pZ3Rfa21zLmgK aW5kZXggYTE0ODNhNC4uNGZhZGExYiAxMDA2NDQKLS0tIGEvbGliL2lndF9rbXMuaAorKysgYi9s aWIvaWd0X2ttcy5oCkBAIC0yMDYsNiArMjA2LDkgQEAgc3RydWN0IGlndF9waXBlIHsKICNkZWZp bmUgSUdUX01BWF9QTEFORVMJNAogCWludCBuX3BsYW5lczsKIAlpZ3RfcGxhbmVfdCBwbGFuZXNb SUdUX01BWF9QTEFORVNdOworCXVpbnQ2NF90IGJhY2tncm91bmQ7IC8qIEJhY2tncm91bmQgY29s b3IgTVNCIEJHUiAxNmJwYyBMU0IgKi8KKwl1aW50MzJfdCBiYWNrZ3JvdW5kX2NoYW5nZWQgOiAx OworCXVpbnQzMl90IGJhY2tncm91bmRfcHJvcGVydHk7CiB9OwogCiB0eXBlZGVmIHN0cnVjdCB7 CkBAIC0yNTEsNiArMjU0LDcgQEAgdm9pZCBpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9uKGlndF9wbGFu ZV90ICpwbGFuZSwgaW50IHgsIGludCB5KTsKIHZvaWQgaWd0X3BsYW5lX3NldF9zaXplKGlndF9w bGFuZV90ICpwbGFuZSwgaW50IHcsIGludCBoKTsKIHZvaWQgaWd0X3BsYW5lX3NldF9wYW5uaW5n KGlndF9wbGFuZV90ICpwbGFuZSwgaW50IHgsIGludCB5KTsKIHZvaWQgaWd0X3BsYW5lX3NldF9y b3RhdGlvbihpZ3RfcGxhbmVfdCAqcGxhbmUsIGlndF9yb3RhdGlvbl90IHJvdGF0aW9uKTsKK3Zv aWQgaWd0X2NydGNfc2V0X2JhY2tncm91bmQoaWd0X3BpcGVfdCAqcGlwZSwgdWludDY0X3QgYmFj a2dyb3VuZCk7CiAKIHZvaWQgaWd0X3dhaXRfZm9yX3ZibGFuayhpbnQgZHJtX2ZkLCBlbnVtIHBp cGUgcGlwZSk7CiAKZGlmZiAtLWdpdCBhL3Rlc3RzLy5naXRpZ25vcmUgYi90ZXN0cy8uZ2l0aWdu b3JlCmluZGV4IDg4YTY0MDUuLjY5ZDJiYTAgMTAwNjQ0Ci0tLSBhL3Rlc3RzLy5naXRpZ25vcmUK KysrIGIvdGVzdHMvLmdpdGlnbm9yZQpAQCAtMTM3LDYgKzEzNyw3IEBAIGttc19yb3RhdGlvbl9j cmMKIGttc19zZXRtb2RlCiBrbXNfc2lua19jcmNfYmFzaWMKIGttc191bml2ZXJzYWxfcGxhbmUK K2ttc19jcnRjX2JhY2tncm91bmRfY29sb3IKIG11bHRpLXRlc3RzLnR4dAogcG1fbHBzcAogcG1f cHNyCmRpZmYgLS1naXQgYS90ZXN0cy9BbmRyb2lkLm1rIGIvdGVzdHMvQW5kcm9pZC5tawppbmRl eCA4MTRiODQ2Li45NmEzMmI5IDEwMDY0NAotLS0gYS90ZXN0cy9BbmRyb2lkLm1rCisrKyBiL3Rl c3RzL0FuZHJvaWQubWsKQEAgLTc1LDYgKzc1LDcgQEAgZWxzZQogICAgIGttc19yb3RhdGlvbl9j cmMgXAogICAgIGttc19mb3JjZV9jb25uZWN0b3IgXAogICAgIGttc19mbGlwX2V2ZW50X2xlYWsg XAorICAgIGttc19jcnRjX2JhY2tncm91bmRfY29sb3IgXAogICAgIGttc19wd3JpdGVfY3JjCiAg ICAgSUdUX0xPQ0FMX0NGTEFHUyArPSAtREFORFJPSURfSEFTX0NBSVJPPTAKIGVuZGlmCmRpZmYg LS1naXQgYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwpp bmRleCA3NGRlZWMzLi40ZjYxMmU2IDEwMDY0NAotLS0gYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2Vz CisrKyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKQEAgLTc3LDYgKzc3LDcgQEAgVEVTVFNfcHJv Z3NfTSA9IFwKIAlrbXNfcm90YXRpb25fY3JjIFwKIAlrbXNfc2V0bW9kZSBcCiAJa21zX3VuaXZl cnNhbF9wbGFuZSBcCisJa21zX2NydGNfYmFja2dyb3VuZF9jb2xvciBcCiAJcG1fbHBzcCBcCiAJ cG1fcnBtIFwKIAlwbV9ycHMgXApkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2NydGNfYmFja2dyb3Vu ZF9jb2xvci5jIGIvdGVzdHMva21zX2NydGNfYmFja2dyb3VuZF9jb2xvci5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiNjA2NTQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0 cy9rbXNfY3J0Y19iYWNrZ3JvdW5kX2NvbG9yLmMKQEAgLTAsMCArMSwyMDEgQEAKKy8qCisgKiBD b3B5cmlnaHQgwqkgMjAxMywyMDE0IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lv biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu aW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0 aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3 aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUg cmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwg c3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0 byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRv IGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUg YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVk aW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3Bp ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBU SEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg S0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU TyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwK KyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENM QUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9O IE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9G IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBE RUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworCisjaW5jbHVkZSA8bWF0aC5o PgorCisjaW5jbHVkZSAiZHJtdGVzdC5oIgorI2luY2x1ZGUgImlndF9kZWJ1Z2ZzLmgiCisjaW5j bHVkZSAiaWd0X2ttcy5oIgorI2luY2x1ZGUgImlndF9jb3JlLmgiCisKK0lHVF9URVNUX0RFU0NS SVBUSU9OKCJUZXN0IGNydGMgYmFja2dyb3VuZCBjb2xvciBmZWF0dXJlIik7CisKK3R5cGVkZWYg c3RydWN0IHsKKwlpbnQgZ2Z4X2ZkOworCWlndF9kaXNwbGF5X3QgZGlzcGxheTsKKwlzdHJ1Y3Qg aWd0X2ZiIGZiOworCWlndF9jcmNfdCByZWZfY3JjOworCWlndF9waXBlX2NyY190ICpwaXBlX2Ny YzsKK30gZGF0YV90OworCisjZGVmaW5lIEJMQUNLICAgICAgMHgwMDAwMDAgICAgICAgICAgIC8q IEJHUiA4YnBjICovCisjZGVmaW5lIENZQU4gICAgICAgMHhGRkZGMDAgICAgICAgICAgIC8qIEJH UiA4YnBjICovCisjZGVmaW5lIFBVUlBMRSAgICAgMHhGRjAwRkYgICAgICAgICAgIC8qIEJHUiA4 YnBjICovCisjZGVmaW5lIFdISVRFICAgICAgMHhGRkZGRkYgICAgICAgICAgIC8qIEJHUiA4YnBj ICovCisKKyNkZWZpbmUgQkxBQ0s2NCAgICAweDAwMDAwMDAwMDAwMCAgICAgLyogQkdSIDE2YnBj ICovCisjZGVmaW5lIENZQU42NCAgICAgMHhGRkZGRkZGRjAwMDAgICAgIC8qIEJHUiAxNmJwYyAq LworI2RlZmluZSBQVVJQTEU2NCAgIDB4RkZGRjAwMDBGRkZGICAgICAvKiBCR1IgMTZicGMgKi8K KyNkZWZpbmUgWUVMTE9XNjQgICAweDAwMDBGRkZGRkZGRiAgICAgLyogQkdSIDE2YnBjICovCisj ZGVmaW5lIFdISVRFNjQgICAgMHhGRkZGRkZGRkZGRkYgICAgIC8qIEJHUiAxNmJwYyAqLworI2Rl ZmluZSBSRUQ2NCAgICAgIDB4MDAwMDAwMDBGRkZGICAgICAvKiBCR1IgMTZicGMgKi8KKyNkZWZp bmUgR1JFRU42NCAgICAweDAwMDBGRkZGMDAwMCAgICAgLyogQkdSIDE2YnBjICovCisjZGVmaW5l IEJMVUU2NCAgICAgMHhGRkZGMDAwMDAwMDAgICAgIC8qIEJHUiAxNmJwYyAqLworCitzdGF0aWMg dm9pZAorcGFpbnRfYmFja2dyb3VuZChkYXRhX3QgKmRhdGEsIHN0cnVjdCBpZ3RfZmIgKmZiLCBk cm1Nb2RlTW9kZUluZm8gKm1vZGUsCisJCXVpbnQzMl90IGJhY2tncm91bmQsIGRvdWJsZSBhbHBo YSkKK3sKKwljYWlyb190ICpjcjsKKwlpbnQgdywgaDsKKwlkb3VibGUgciwgZywgYjsKKworCXcg PSBtb2RlLT5oZGlzcGxheTsKKwloID0gbW9kZS0+dmRpc3BsYXk7CisKKwljciA9IGlndF9nZXRf Y2Fpcm9fY3R4KGRhdGEtPmdmeF9mZCwgJmRhdGEtPmZiKTsKKworCS8qIFBhaW50IHdpdGggYmFj a2dyb3VuZCBjb2xvciAqLworCXIgPSAoZG91YmxlKSAoYmFja2dyb3VuZCAmIDB4RkYpIC8gMjU1 LjA7CisJZyA9IChkb3VibGUpICgoYmFja2dyb3VuZCAmIDB4RkYwMCkgPj4gOCkgLyAyNTUuMDsK KwliID0gKGRvdWJsZSkgKChiYWNrZ3JvdW5kICYgMHhGRjAwMDApID4+IDE2KSAvIDI1NS4wOwor CWlndF9wYWludF9jb2xvcl9hbHBoYShjciwgMCwgMCwgdywgaCwgciwgZywgYiwgYWxwaGEpOwor CisJY2Fpcm9fZGVzdHJveShjcik7Cit9CisKK3N0YXRpYyB2b2lkIHByZXBhcmVfY3J0YyhkYXRh X3QgKmRhdGEsIGlndF9vdXRwdXRfdCAqb3V0cHV0LCBlbnVtIHBpcGUgcGlwZSwKKwkJCWlndF9w bGFuZV90ICpwbGFuZSwgaW50IG9wYXF1ZV9idWZmZXIsIGludCBwbGFuZV9jb2xvciwKKwkJCXVp bnQ2NF90IHBpcGVfYmFja2dyb3VuZF9jb2xvcikKK3sKKwlkcm1Nb2RlTW9kZUluZm8gKm1vZGU7 CisJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRhLT5kaXNwbGF5OworCWludCBmYl9pZDsK Kwlkb3VibGUgYWxwaGE7CisKKwlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7CisK KwkvKiBjcmVhdGUgdGhlIHBpcGVfY3JjIG9iamVjdCBmb3IgdGhpcyBwaXBlICovCisJaWd0X3Bp cGVfY3JjX2ZyZWUoZGF0YS0+cGlwZV9jcmMpOworCWRhdGEtPnBpcGVfY3JjID0gaWd0X3BpcGVf Y3JjX25ldyhwaXBlLCBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfQVVUTyk7CisKKwltb2RlID0gaWd0 X291dHB1dF9nZXRfbW9kZShvdXRwdXQpOworCisJZmJfaWQgPSBpZ3RfY3JlYXRlX2ZiKGRhdGEt PmdmeF9mZCwKKwkJCW1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSwKKwkJCURSTV9GT1JN QVRfWFJHQjg4ODgsCisJCQlmYWxzZSwgLyogdGlsZWQgKi8KKwkJCSZkYXRhLT5mYik7CisJaWd0 X2Fzc2VydChmYl9pZCk7CisKKwkvKiBUbyBtYWtlIEZCIHBpeGVsIHdpbiB3aXRoIGJhY2tncm91 bmQgY29sb3IsIHNldCBhbHBoYSBhcyBmdWxsIG9wYXF1ZSAqLworCWlndF9jcnRjX3NldF9iYWNr Z3JvdW5kKHBsYW5lLT5waXBlLCBwaXBlX2JhY2tncm91bmRfY29sb3IpOworCWlmIChvcGFxdWVf YnVmZmVyKQorCQlhbHBoYSA9IDEuMDsgICAgLyogYWxwaGEgMSBpcyBmdWxseSBvcHF1ZSAqLwor CWVsc2UKKwkJYWxwaGEgPSAwLjA7ICAgIC8qIGFscGhhIDAgaXMgZnVsbHkgdHJhbnNwYXJlbnQg Ki8KKwlwYWludF9iYWNrZ3JvdW5kKGRhdGEsICZkYXRhLT5mYiwgbW9kZSwgcGxhbmVfY29sb3Is IGFscGhhKTsKKworCWlndF9wbGFuZV9zZXRfZmIocGxhbmUsICZkYXRhLT5mYik7CisJaWd0X2Rp c3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKK30KKworc3RhdGljIHZv aWQgY2xlYW51cF9jcnRjKGRhdGFfdCAqZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQsIGlndF9w bGFuZV90ICpwbGFuZSkKK3sKKwlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0gJmRhdGEtPmRpc3Bs YXk7CisKKwlpZ3RfcGlwZV9jcmNfZnJlZShkYXRhLT5waXBlX2NyYyk7CisJZGF0YS0+cGlwZV9j cmMgPSBOVUxMOworCisJaWd0X3JlbW92ZV9mYihkYXRhLT5nZnhfZmQsICZkYXRhLT5mYik7CisK KwlpZ3RfY3J0Y19zZXRfYmFja2dyb3VuZChwbGFuZS0+cGlwZSwgQkxBQ0s2NCk7CisJaWd0X3Bs YW5lX3NldF9mYihwbGFuZSwgTlVMTCk7CisJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIFBJ UEVfQU5ZKTsKKworCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNB TCk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RfY3J0Y19iYWNrZ3JvdW5kKGRhdGFfdCAqZGF0YSkK K3sKKwlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0gJmRhdGEtPmRpc3BsYXk7CisJaWd0X291dHB1 dF90ICpvdXRwdXQ7CisJZW51bSBwaXBlIHBpcGU7CisJaW50IHZhbGlkX3Rlc3RzID0gMDsKKwor CWlndF9yZXF1aXJlKGRhdGEtPmRpc3BsYXkuaGFzX3VuaXZlcnNhbF9wbGFuZXMpOworCisJZm9y X2VhY2hfY29ubmVjdGVkX291dHB1dChkaXNwbGF5LCBvdXRwdXQpIHsKKwkJaWd0X3BsYW5lX3Qg KnBsYW5lOworCisJCXBpcGUgPSBvdXRwdXQtPmNvbmZpZy5waXBlOworCQlpZ3Rfb3V0cHV0X3Nl dF9waXBlKG91dHB1dCwgcGlwZSk7CisKKwkJcGxhbmUgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZShv dXRwdXQsIElHVF9QTEFORV9QUklNQVJZKTsKKwkJaWd0X3JlcXVpcmUocGxhbmUtPnBpcGUtPmJh Y2tncm91bmRfcHJvcGVydHkpOworCisJCXByZXBhcmVfY3J0YyhkYXRhLCBvdXRwdXQsIHBpcGUs IHBsYW5lLCAxLCBQVVJQTEUsIEJMQUNLNjQpOworCisJCS8qIE5vdyBzZXQgYmFja2dyb3VuZCB3 aXRob3V0IHVzaW5nIGEgcGxhbmUsIGkuZS4sCisJCSAqIERpc2FibGUgdGhlIHBsYW5lIHRvIGxl dCBodyBiYWNrZ3JvdW5kIGNvbG9yIHdpbiBibGVuZC4gKi8KKwkJaWd0X3BsYW5lX3NldF9mYihw bGFuZSwgTlVMTCk7CisJCWlndF9jcnRjX3NldF9iYWNrZ3JvdW5kKHBsYW5lLT5waXBlLCBQVVJQ TEU2NCk7CisJCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7 CisKKwkJLyogVHJ5IGZldyBvdGhlciBiYWNrZ3JvdW5kIGNvbG9ycyAqLworCQlzbGVlcCgxKTsK KwkJaWd0X2NydGNfc2V0X2JhY2tncm91bmQocGxhbmUtPnBpcGUsIENZQU42NCk7CisJCWlndF9k aXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CisKKwkJc2xlZXAoMSk7 CisJCWlndF9jcnRjX3NldF9iYWNrZ3JvdW5kKHBsYW5lLT5waXBlLCBZRUxMT1c2NCk7CisJCWln dF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CisKKwkJc2xlZXAo MSk7CisJCWlndF9jcnRjX3NldF9iYWNrZ3JvdW5kKHBsYW5lLT5waXBlLCBSRUQ2NCk7CisJCWln dF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CisKKwkJc2xlZXAo MSk7CisJCWlndF9jcnRjX3NldF9iYWNrZ3JvdW5kKHBsYW5lLT5waXBlLCBHUkVFTjY0KTsKKwkJ aWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKKworCQlzbGVl cCgxKTsKKwkJaWd0X2NydGNfc2V0X2JhY2tncm91bmQocGxhbmUtPnBpcGUsIEJMVUU2NCk7CisJ CWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CisKKwkJc2xl ZXAoMSk7CisJCWlndF9jcnRjX3NldF9iYWNrZ3JvdW5kKHBsYW5lLT5waXBlLCBXSElURTY0KTsK KwkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKKworCQl2 YWxpZF90ZXN0cysrOworCQljbGVhbnVwX2NydGMoZGF0YSwgb3V0cHV0LCBwbGFuZSk7CisJfQor CWlndF9yZXF1aXJlX2YodmFsaWRfdGVzdHMsICJubyB2YWxpZCBjcnRjL2Nvbm5lY3RvciBjb21i aW5hdGlvbnMgZm91bmRcbiIpOworfQorCitpZ3RfbWFpbgoreworCWRhdGFfdCBkYXRhID0ge307 CisKKwlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7CisKKwlkYXRhLmdmeF9mZCA9IGRybV9vcGVu X2FueSgpOworCWlndF9yZXF1aXJlX3BpcGVfY3JjKCk7CisJaWd0X2Rpc3BsYXlfaW5pdCgmZGF0 YS5kaXNwbGF5LCBkYXRhLmdmeF9mZCk7CisKKwlpZ3Rfc3VidGVzdCgicGlwZS1iYWNrZ3JvdW5k IikKKwkJdGVzdF9jcnRjX2JhY2tncm91bmQoJmRhdGEpOworCisJaWd0X2Rpc3BsYXlfZmluaSgm ZGF0YS5kaXNwbGF5KTsKK30KLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=