From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH] drm: kselftest for drm_mm_insert_node_in_range() Date: Sat, 17 Dec 2016 10:16:40 +0000 Message-ID: <20161217101640.17163-1-chris@chris-wilson.co.uk> References: <20161216192550.8352-13-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20161216192550.8352-13-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RXhlcmNpc2UgZHJtX21tX2luc2VydF9ub2RlX2luX3JhbmdlKCksIGNoZWNrIHRoYXQgd2Ugb25s eSBhbGxvY2F0ZSBmcm9tCnRoZSBzcGVjaWZpZWQgcmFuZ2UuCgp2MjogVXNlIGFsbCBhbGxvY2F0 aW9uIGZsYWdzCnYzOiBEb24ndCBwYXNzIGluIGludmFsaWQgcmFuZ2VzIC0gdGhlc2Ugd2lsbCBi ZSBhc3NlcnRlZCBsYXRlci4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hy aXMtd2lsc29uLmNvLnVrPgpSZXZpZXdlZC1ieTogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFo dGluZW5AbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvZHJt X21tX3NlbGZ0ZXN0cy5oIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvdGVzdC1k cm1fbW0uYyAgICAgIHwgMjY5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBj aGFuZ2VkLCAyNzAgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9z ZWxmdGVzdHMvZHJtX21tX3NlbGZ0ZXN0cy5oIGIvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy9k cm1fbW1fc2VsZnRlc3RzLmgKaW5kZXggZGNhNzI2YmFhNjVkLi45MmIyYzFjYjEwZmEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvZHJtX21tX3NlbGZ0ZXN0cy5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvZHJtX21tX3NlbGZ0ZXN0cy5oCkBAIC0xMSwzICsx MSw0IEBAIHNlbGZ0ZXN0KGRlYnVnLCBpZ3RfZGVidWcpCiBzZWxmdGVzdChyZXNlcnZlLCBpZ3Rf cmVzZXJ2ZSkKIHNlbGZ0ZXN0KGluc2VydCwgaWd0X2luc2VydCkKIHNlbGZ0ZXN0KHJlcGxhY2Us IGlndF9yZXBsYWNlKQorc2VsZnRlc3QoaW5zZXJ0X3JhbmdlLCBpZ3RfaW5zZXJ0X3JhbmdlKQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybV9tbS5jIGIvZHJp dmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybV9tbS5jCmluZGV4IGZhNWIxMmM1NzE2MS4u Y2ZiYzNmNTM3OThlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3Qt ZHJtX21tLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybV9tbS5jCkBA IC03MzgsNiArNzM4LDI3NSBAQCBzdGF0aWMgaW50IGlndF9yZXBsYWNlKHZvaWQgKmlnbm9yZWQp CiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBib29sIGV4cGVjdF9pbnNlcnRfaW5fcmFuZ2Uoc3Ry dWN0IGRybV9tbSAqbW0sIHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwKKwkJCQkgICB1NjQgc2l6 ZSwgdTY0IGFsaWdubWVudCwgdW5zaWduZWQgbG9uZyBjb2xvciwKKwkJCQkgICB1NjQgcmFuZ2Vf c3RhcnQsIHU2NCByYW5nZV9lbmQsCisJCQkJICAgY29uc3Qgc3RydWN0IGluc2VydF9tb2RlICpt b2RlKQoreworCWludCBlcnI7CisKKwllcnIgPSBkcm1fbW1faW5zZXJ0X25vZGVfaW5fcmFuZ2Vf Z2VuZXJpYyhtbSwgbm9kZSwKKwkJCQkJCSAgc2l6ZSwgYWxpZ25tZW50LCBjb2xvciwKKwkJCQkJ CSAgcmFuZ2Vfc3RhcnQsIHJhbmdlX2VuZCwKKwkJCQkJCSAgbW9kZS0+c2VhcmNoX2ZsYWdzLAor CQkJCQkJICBtb2RlLT5jcmVhdGVfZmxhZ3MpOworCWlmIChlcnIpIHsKKwkJcHJfZXJyKCJpbnNl cnQgKHNpemU9JWxsdSwgYWxpZ25tZW50PSVsbHUsIGNvbG9yPSVsdSwgbW9kZT0lcykgbnRvIHJh bmdlIFslbGx4LCAlbGx4XSBmYWlsZWQgd2l0aCBlcnI9JWRcbiIsCisJCSAgICAgICBzaXplLCBh bGlnbm1lbnQsIGNvbG9yLCBtb2RlLT5uYW1lLAorCQkgICAgICAgcmFuZ2Vfc3RhcnQsIHJhbmdl X2VuZCwgZXJyKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCWlmICghYXNzZXJ0X25vZGUobm9k ZSwgbW0sIHNpemUsIGFsaWdubWVudCwgY29sb3IpKSB7CisJCWRybV9tbV9yZW1vdmVfbm9kZShu b2RlKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMg Ym9vbCBleHBlY3RfaW5zZXJ0X2luX3JhbmdlX2ZhaWwoc3RydWN0IGRybV9tbSAqbW0sCisJCQkJ CXU2NCBzaXplLAorCQkJCQl1NjQgcmFuZ2Vfc3RhcnQsCisJCQkJCXU2NCByYW5nZV9lbmQpCit7 CisJc3RydWN0IGRybV9tbV9ub2RlIHRtcCA9IHt9OworCWludCBlcnI7CisKKwllcnIgPSBkcm1f bW1faW5zZXJ0X25vZGVfaW5fcmFuZ2VfZ2VuZXJpYyhtbSwgJnRtcCwKKwkJCQkJCSAgc2l6ZSwg MCwgMCwKKwkJCQkJCSAgcmFuZ2Vfc3RhcnQsIHJhbmdlX2VuZCwKKwkJCQkJCSAgRFJNX01NX1NF QVJDSF9ERUZBVUxULAorCQkJCQkJICBEUk1fTU1fQ1JFQVRFX0RFRkFVTFQpOworCWlmIChsaWtl bHkoZXJyID09IC1FTk9TUEMpKQorCQlyZXR1cm4gdHJ1ZTsKKworCWlmICghZXJyKSB7CisJCXBy X2VycigiaW1wb3NzaWJsZSBpbnNlcnQgc3VjY2VlZGVkLCBub2RlICVsbHggKyAlbGx1LCByYW5n ZSBbJWxseCwgJWxseF1cbiIsCisJCSAgICAgICB0bXAuc3RhcnQsIHRtcC5zaXplLCByYW5nZV9z dGFydCwgcmFuZ2VfZW5kKTsKKwkJZHJtX21tX3JlbW92ZV9ub2RlKCZ0bXApOworCX0gZWxzZSB7 CisJCXByX2VycigiaW1wb3NzaWJsZSBpbnNlcnQgZmFpbGVkIHdpdGggd3JvbmcgZXJyb3IgJWQg W2V4cGVjdGVkICVkXSwgc2l6ZSAlbGx1LCByYW5nZSBbJWxseCwgJWxseF1cbiIsCisJCSAgICAg ICBlcnIsIC1FTk9TUEMsIHNpemUsIHJhbmdlX3N0YXJ0LCByYW5nZV9lbmQpOworCX0KKworCXJl dHVybiBmYWxzZTsKK30KKworc3RhdGljIGJvb2wgYXNzZXJ0X2NvbnRpZ3VvdXNfaW5fcmFuZ2Uo c3RydWN0IGRybV9tbSAqbW0sCisJCQkJICAgICAgIHU2NCBzaXplLAorCQkJCSAgICAgICB1NjQg c3RhcnQsCisJCQkJICAgICAgIHU2NCBlbmQpCit7CisJc3RydWN0IGRybV9tbV9ub2RlICpub2Rl OworCXVuc2lnbmVkIGludCBuOworCisJaWYgKCFleHBlY3RfaW5zZXJ0X2luX3JhbmdlX2ZhaWwo bW0sIHNpemUsIHN0YXJ0LCBlbmQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwluID0gZGl2NjRfdTY0 KHN0YXJ0ICsgc2l6ZSAtIDEsIHNpemUpOworCWRybV9tbV9mb3JfZWFjaF9ub2RlKG5vZGUsIG1t KSB7CisJCWlmIChub2RlLT5zdGFydCA8IHN0YXJ0IHx8IG5vZGUtPnN0YXJ0ICsgbm9kZS0+c2l6 ZSA+IGVuZCkgeworCQkJcHJfZXJyKCJub2RlICVkIG91dCBvZiByYW5nZSwgYWRkcmVzcyBbJWxs eCArICVsbHVdLCByYW5nZSBbJWxseCwgJWxseF1cbiIsCisJCQkgICAgICAgbiwgbm9kZS0+c3Rh cnQsIG5vZGUtPnN0YXJ0ICsgbm9kZS0+c2l6ZSwgc3RhcnQsIGVuZCk7CisJCQlyZXR1cm4gZmFs c2U7CisJCX0KKworCQlpZiAobm9kZS0+c3RhcnQgIT0gbiAqIHNpemUpIHsKKwkJCXByX2Vycigi bm9kZSAlZCBvdXQgb2Ygb3JkZXIsIGV4cGVjdGVkIHN0YXJ0ICVsbHgsIGZvdW5kICVsbHhcbiIs CisJCQkgICAgICAgbiwgbiAqIHNpemUsIG5vZGUtPnN0YXJ0KTsKKwkJCXJldHVybiBmYWxzZTsK KwkJfQorCisJCWlmIChub2RlLT5zaXplICE9IHNpemUpIHsKKwkJCXByX2Vycigibm9kZSAlZCBo YXMgd3Jvbmcgc2l6ZSwgZXhwZWN0ZWQgc2l6ZSAlbGx4LCBmb3VuZCAlbGx4XG4iLAorCQkJICAg ICAgIG4sIHNpemUsIG5vZGUtPnNpemUpOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisKKwkJaWYg KG5vZGUtPmhvbGVfZm9sbG93cyAmJiBkcm1fbW1faG9sZV9ub2RlX2VuZChub2RlKSA8IGVuZCkg eworCQkJcHJfZXJyKCJub2RlICVkIGlzIGZvbGxvd2VkIGJ5IGEgaG9sZSFcbiIsIG4pOworCQkJ cmV0dXJuIGZhbHNlOworCQl9CisKKwkJbisrOworCX0KKworCWRybV9tbV9mb3JfZWFjaF9ub2Rl X2luX3JhbmdlKG5vZGUsIG1tLCAwLCBzdGFydCkgeworCQlpZiAobm9kZSkgeworCQkJcHJfZXJy KCJub2RlIGJlZm9yZSBzdGFydDogbm9kZT0lbGx4KyVsbHUsIHN0YXJ0PSVsbHhcbiIsCisJCQkg ICAgICAgbm9kZS0+c3RhcnQsIG5vZGUtPnNpemUsIHN0YXJ0KTsKKwkJCXJldHVybiBmYWxzZTsK KwkJfQorCX0KKworCWRybV9tbV9mb3JfZWFjaF9ub2RlX2luX3JhbmdlKG5vZGUsIG1tLCBlbmQs IFU2NF9NQVgpIHsKKwkJaWYgKG5vZGUpIHsKKwkJCXByX2Vycigibm9kZSBhZnRlciBlbmQ6IG5v ZGU9JWxseCslbGx1LCBlbmQ9JWxseFxuIiwKKwkJCSAgICAgICBub2RlLT5zdGFydCwgbm9kZS0+ c2l6ZSwgZW5kKTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCX0KKworCXJldHVybiB0cnVlOwor fQorCitzdGF0aWMgaW50IF9faWd0X2luc2VydF9yYW5nZSh1bnNpZ25lZCBpbnQgY291bnQsIHU2 NCBzaXplLCB1NjQgc3RhcnQsIHU2NCBlbmQpCit7CisJY29uc3Qgc3RydWN0IGluc2VydF9tb2Rl ICptb2RlOworCXN0cnVjdCBkcm1fbW0gbW07CisJc3RydWN0IGRybV9tbV9ub2RlICpub2Rlcywg Km5vZGUsICpuZXh0OworCXVuc2lnbmVkIGludCBuLCBzdGFydF9uLCBlbmRfbjsKKwlpbnQgcmV0 OworCisJRFJNX01NX0JVR19PTighY291bnQpOworCURSTV9NTV9CVUdfT04oIXNpemUpOworCURS TV9NTV9CVUdfT04oZW5kIDw9IHN0YXJ0KTsKKworCS8qIFZlcnkgc2ltaWxhciB0byBfX2lndF9p bnNlcnQoKSwgYnV0IG5vdyBpbnN0ZWFkIG9mIHBvcHVsYXRpbmcgdGhlCisJICogZnVsbCByYW5n ZSBvZiB0aGUgZHJtX21tLCB3ZSB0cnkgdG8gZmlsbCBhIHNtYWxsIHBvcnRpb24gb2YgaXQuCisJ ICovCisKKwlyZXQgPSAtRU5PTUVNOworCW5vZGVzID0gdnphbGxvYyhjb3VudCAqIHNpemVvZigq bm9kZXMpKTsKKwlpZiAoIW5vZGVzKQorCQlnb3RvIGVycjsKKworCXJldCA9IC1FSU5WQUw7CisJ ZHJtX21tX2luaXQoJm1tLCAwLCBjb3VudCAqIHNpemUpOworCisJc3RhcnRfbiA9IGRpdjY0X3U2 NChzdGFydCArIHNpemUgLSAxLCBzaXplKTsKKwllbmRfbiA9IGRpdjY0X3U2NChlbmQgLSBzaXpl LCBzaXplKTsKKworCWZvciAobW9kZSA9IGluc2VydF9tb2RlczsgbW9kZS0+bmFtZTsgbW9kZSsr KSB7CisJCWZvciAobiA9IHN0YXJ0X247IG4gPD0gZW5kX247IG4rKykgeworCQkJaWYgKCFleHBl Y3RfaW5zZXJ0X2luX3JhbmdlKCZtbSwgJm5vZGVzW25dLAorCQkJCQkJICAgIHNpemUsIHNpemUs IG4sCisJCQkJCQkgICAgc3RhcnQsIGVuZCwgbW9kZSkpIHsKKwkJCQlwcl9lcnIoIiVzIGluc2Vy dCBmYWlsZWQsIHNpemUgJWxsdSwgc3RlcCAlZCBbJWQsICVkXSwgcmFuZ2UgWyVsbHgsICVsbHhd XG4iLAorCQkJCSAgICAgICBtb2RlLT5uYW1lLCBzaXplLCBuLAorCQkJCSAgICAgICBzdGFydF9u LCBlbmRfbiwKKwkJCQkgICAgICAgc3RhcnQsIGVuZCk7CisJCQkJZ290byBvdXQ7CisJCQl9CisJ CX0KKworCQlpZiAoIWFzc2VydF9jb250aWd1b3VzX2luX3JhbmdlKCZtbSwgc2l6ZSwgc3RhcnQs IGVuZCkpIHsKKwkJCXByX2VycigiJXM6IHJhbmdlIFslbGx4LCAlbGx4XSBub3QgZnVsbCBhZnRl ciBpbml0aWFsaXNhdGlvbiwgc2l6ZT0lbGx1XG4iLAorCQkJICAgICAgIG1vZGUtPm5hbWUsIHN0 YXJ0LCBlbmQsIHNpemUpOworCQkJZ290byBvdXQ7CisJCX0KKworCQkvKiBSZW1vdmUgb25lIGFu ZCByZWluc2VydCwgaXQgc2hvdWxkIHJlZmlsbCBpdHNlbGYgKi8KKwkJZm9yIChuID0gc3RhcnRf bjsgbiA8PSBlbmRfbjsgbisrKSB7CisJCQl1NjQgYWRkciA9IG5vZGVzW25dLnN0YXJ0OworCisJ CQlkcm1fbW1fcmVtb3ZlX25vZGUoJm5vZGVzW25dKTsKKwkJCWlmICghZXhwZWN0X2luc2VydF9p bl9yYW5nZSgmbW0sICZub2Rlc1tuXSwKKwkJCQkJCSAgICBzaXplLCBzaXplLCBuLAorCQkJCQkJ ICAgIHN0YXJ0LCBlbmQsIG1vZGUpKSB7CisJCQkJcHJfZXJyKCIlcyByZWluc2VydCBmYWlsZWQs IHN0ZXAgJWRcbiIsIG1vZGUtPm5hbWUsIG4pOworCQkJCWdvdG8gb3V0OworCQkJfQorCisJCQlp ZiAobm9kZXNbbl0uc3RhcnQgIT0gYWRkcikgeworCQkJCXByX2VycigiJXMgcmVpbnNlcnQgbm9k ZSBtb3ZlZCwgc3RlcCAlZCwgZXhwZWN0ZWQgJWxseCwgZm91bmQgJWxseFxuIiwKKwkJCQkgICAg ICAgbW9kZS0+bmFtZSwgbiwgYWRkciwgbm9kZXNbbl0uc3RhcnQpOworCQkJCWdvdG8gb3V0Owor CQkJfQorCQl9CisKKwkJaWYgKCFhc3NlcnRfY29udGlndW91c19pbl9yYW5nZSgmbW0sIHNpemUs IHN0YXJ0LCBlbmQpKSB7CisJCQlwcl9lcnIoIiVzOiByYW5nZSBbJWxseCwgJWxseF0gbm90IGZ1 bGwgYWZ0ZXIgcmVpbnNlcnRpb24sIHNpemU9JWxsdVxuIiwKKwkJCSAgICAgICBtb2RlLT5uYW1l LCBzdGFydCwgZW5kLCBzaXplKTsKKwkJCWdvdG8gb3V0OworCQl9CisKKwkJZHJtX21tX2Zvcl9l YWNoX25vZGVfc2FmZShub2RlLCBuZXh0LCAmbW0pCisJCQlkcm1fbW1fcmVtb3ZlX25vZGUobm9k ZSk7CisJCURSTV9NTV9CVUdfT04oIWRybV9tbV9jbGVhbigmbW0pKTsKKwl9CisKKwlyZXQgPSAw Oworb3V0OgorCWRybV9tbV9mb3JfZWFjaF9ub2RlX3NhZmUobm9kZSwgbmV4dCwgJm1tKQorCQlk cm1fbW1fcmVtb3ZlX25vZGUobm9kZSk7CisJZHJtX21tX3Rha2Vkb3duKCZtbSk7CisJdmZyZWUo bm9kZXMpOworZXJyOgorCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgaW5zZXJ0X291dHNp ZGVfcmFuZ2Uodm9pZCkKK3sKKwlzdHJ1Y3QgZHJtX21tIG1tOworCWNvbnN0IHVuc2lnbmVkIGlu dCBzdGFydCA9IDEwMjQ7CisJY29uc3QgdW5zaWduZWQgaW50IGVuZCA9IDIwNDg7CisJY29uc3Qg dW5zaWduZWQgaW50IHNpemUgPSBlbmQgLSBzdGFydDsKKworCWRybV9tbV9pbml0KCZtbSwgc3Rh cnQsIHNpemUpOworCisJaWYgKCFleHBlY3RfaW5zZXJ0X2luX3JhbmdlX2ZhaWwoJm1tLCAxLCAw LCBzdGFydCkpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKCFleHBlY3RfaW5zZXJ0X2luX3Jh bmdlX2ZhaWwoJm1tLCBzaXplLAorCQkJCQkgc3RhcnQgLSBzaXplLzIsIHN0YXJ0ICsgKHNpemUr MSkvMikpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKCFleHBlY3RfaW5zZXJ0X2luX3Jhbmdl X2ZhaWwoJm1tLCBzaXplLAorCQkJCQkgZW5kIC0gKHNpemUrMSkvMiwgZW5kICsgc2l6ZS8yKSkK KwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoIWV4cGVjdF9pbnNlcnRfaW5fcmFuZ2VfZmFpbCgm bW0sIDEsIGVuZCwgZW5kICsgc2l6ZSkpCisJCXJldHVybiAtRUlOVkFMOworCisJZHJtX21tX3Rh a2Vkb3duKCZtbSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaWd0X2luc2VydF9yYW5n ZSh2b2lkICppZ25vcmVkKQoreworCWNvbnN0IHVuc2lnbmVkIGludCBjb3VudCA9IG1pbl90KHVu c2lnbmVkIGludCwgQklUKDEzKSwgbWF4X2l0ZXJhdGlvbnMpOworCXVuc2lnbmVkIGludCBuOwor CWludCByZXQ7CisKKwkvKiBDaGVjayB0aGF0IHJlcXVlc3RzIG91dHNpZGUgdGhlIGJvdW5kcyBv ZiBkcm1fbW0gYXJlIHJlamVjdGVkLiAqLworCXJldCA9IGluc2VydF9vdXRzaWRlX3JhbmdlKCk7 CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWZvcl9lYWNoX3ByaW1lX251bWJlcihuLCA1 MCkgeworCQljb25zdCB1NjQgc2l6ZSA9IEJJVF9VTEwobik7CisJCWNvbnN0IHU2NCBtYXggPSBj b3VudCAqIHNpemU7CisKKwkJcmV0ID0gX19pZ3RfaW5zZXJ0X3JhbmdlKGNvdW50LCBzaXplLCAw LCBtYXgpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKworCQlyZXQgPSBfX2lndF9pbnNl cnRfcmFuZ2UoY291bnQsIHNpemUsIDEsIG1heCk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0 OworCisJCXJldCA9IF9faWd0X2luc2VydF9yYW5nZShjb3VudCwgc2l6ZSwgMCwgbWF4IC0gMSk7 CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCisJCXJldCA9IF9faWd0X2luc2VydF9yYW5n ZShjb3VudCwgc2l6ZSwgMCwgbWF4LzIpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwor CQlyZXQgPSBfX2lndF9pbnNlcnRfcmFuZ2UoY291bnQsIHNpemUsIG1heC8yLCBtYXgpOworCQlp ZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKworCQlyZXQgPSBfX2lndF9pbnNlcnRfcmFuZ2UoY291 bnQsIHNpemUsIG1heC80KzEsIDMqbWF4LzQtMSk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0 OworCX0KKworCXJldHVybiAwOworfQorCiAjaW5jbHVkZSAiZHJtX3NlbGZ0ZXN0LmMiCiAKIHN0 YXRpYyBpbnQgX19pbml0IHRlc3RfZHJtX21tX2luaXQodm9pZCkKLS0gCjIuMTEuMAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==