From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (unknown [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id 8632D8017D for ; Tue, 6 Oct 2026 15:08:28 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 696F7AiY025647; Tue, 6 Oct 2026 18:07:10 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 696F7AiY025647 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=sashiko.virtuozzo.com header.i=@sashiko.virtuozzo.com header.b="Nzfnj8yU"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amazonses.com header.i=@amazonses.com header.b="FZqYPUl3" Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 696F78k1025643 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Tue, 6 Oct 2026 18:07:08 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 696F78k1025643 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-48b00febba3so2068547f8f.1 for ; Tue, 06 Oct 2026 08:07:08 -0700 (PDT) X-Gm-Message-State: AFq9FYKSPM9KhrvBcMvvg4stHII/DO80ZD4kdVWZ+oS42/Sk0vSxFpii aahrC6l8aMwA4H/DVNa5PN+3DsoFvYXt0/ZxHO0hs7ZIC5F55nX/lwjOk/Kq93Nsa+NrmfsbBDY DbA4LT8DpIuAMm4uARgyQrvA75OyyTVjxBIsAedP4ItP5mQbdH0JsHw== X-Gm-Gg: AYBFou3rB5gHedynSDOQOt9+rnzgMt0Kc4ZrWfdZA4gP4xGtOy2NQPGWFnexBZM7dro 6vbsYsDtnq79EFnRslvJglo4jpAN1gsIdy4Acbf13DKLtk3KJPDdQnfLiiZb72zLPQxZvq+kpbK vCg+N4FSfIOM/FsT8u7G3FyiHXeb/HpDP255M4NG6Ee6JQU4wGZYkhHh6xunJnEaZJLZoCtxGN5 M5NGrgoqE/K294wapONUH1ryn3ga9ZN7WuD+b5hquYSqJOr7N8owKE8HKb5q6L7zPrz13svWQG1 HJIwXfmtNYCrwrnAgxVAR6DAbyyA6Fgue3j7BFDIk6DQB8dJj0C5/6s9AG5WNe66xwuGGpgMwKe XJMIXNi8jPtDYoqJMieBYSgcmcZ66zwrmLS43X+09yDp+mhh6FadafhWX39/qIfrja86Zhrxl7O 5vbgE4tEgR+U1IWednABEAwVmXmOoX2Fd1Wy1p2E6tarOzZeKroZkTykdd0XYXc070AiYd3gC+J 84PHGDMLE8p8JLQS0d8 X-Received: by 2002:a05:6000:288a:b0:48b:10c8:2180 with SMTP id ffacd0b85a97d-48c6d18b13emr3539120f8f.33.1791299228382; Tue, 06 Oct 2026 08:07:08 -0700 (PDT) X-Received: by 2002:a05:6000:288a:b0:48b:10c8:2180 with SMTP id ffacd0b85a97d-48c6d18b13emr3539034f8f.33.1791299227607; Tue, 06 Oct 2026 08:07:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1791299227; cv=none; d=google.com; s=arc-20260327; b=T/tX7feqQyDL59gcDCY6WbSfbIMQkk7TlRGIuF+2mSGxdWN9k8xyOGE7zFhJkfjPR9 6j/+XZPfoALYu+k7Dc0TUwIjZuUpwAOHoLoKnMsRWAFhDiHY2OchMuKi8LeLG/NMghaU M5ssaQ/3BKCREy2HeglL/gWFWldPp4OxXDAJf+vPlwj2pYTT5zO5kFGi56DjMjCKKTfD GupRx0qNzSQoGYyYDl0Np4p5Tv+2cmFeuxtCrAgE4Cy52erDjc7Zoq+awLgKsCGjeaZF WDmtHaWdtyyj5dppKPAEHFXUwuo1PnV+hbYi9Vo5T5XmRFqwgQlhOVE61D1NeKS2FCMQ C1MA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=feedback-id:message-id:date:content-transfer-encoding:references :in-reply-to:cc:to:subject:from:dkim-signature:dkim-signature; bh=QqlopT5iUGhoRcZoW8Gg9L5+Vy5A5ZpoLVngroEw4Fk=; fh=7CNMr+YhgGBZPMqPR+zhEDn96lpQtpwSEacEA6iVTyo=; b=g35G4QuyALlSwzNhKqRjz757FxPSBcfhzWBKaumYXCqp2dmsz9uc9OHYrPC9jSU4/F kY46Hdqs/IA1t0SLvEucjdFSnbgt2HPnp2lNMJWg0XrncxjlA+rT++2ER0jXqieFz0J/ /fh3ocUGyTvE1pTXnurA3IWiPOYUGWOc8UKVS+/+cG4Qu1PtiRvGw0/n2lRCMz6yZh7U bPBSAQ4vsEyZO5siradzrm7ZvlojUS+sKPAo3qlrGqtnfazIUKuKLzyu37wagtvbeNo9 K7/q7TA1YafZ7fLcJKPIFdioz4oE4WXyPfCoy1OntXmY7ayW71h6xbhmBdawvlMKQ2Jq fB/A==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sashiko.virtuozzo.com header.s=23yjbh4k34hwzfubhuiim7m4inbd3ick header.b=Nzfnj8yU; dkim=pass header.i=@amazonses.com header.s=sokbgaaqhfgd6qjht2wmdajpuuanpimv header.b=FZqYPUl3; spf=pass (google.com: domain of 010701a111c10d9a-57dffab2-cf97-4516-8f54-fdf5b40087b9-000000@eu-central-1.amazonses.com designates 69.169.224.2 as permitted sender) smtp.mailfrom=010701a111c10d9a-57dffab2-cf97-4516-8f54-fdf5b40087b9-000000@eu-central-1.amazonses.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from b224-2.smtp-out.eu-central-1.amazonses.com (b224-2.smtp-out.eu-central-1.amazonses.com. [69.169.224.2]) by mx.google.com with ESMTPS id ffacd0b85a97d-48b5b442c7fsi24732525f8f.430.2026.10.06.08.07.07 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 06 Oct 2026 08:07:07 -0700 (PDT) Received-SPF: pass (google.com: domain of 010701a111c10d9a-57dffab2-cf97-4516-8f54-fdf5b40087b9-000000@eu-central-1.amazonses.com designates 69.169.224.2 as permitted sender) client-ip=69.169.224.2; Authentication-Results: mx.google.com; dkim=pass header.i=@sashiko.virtuozzo.com header.s=23yjbh4k34hwzfubhuiim7m4inbd3ick header.b=Nzfnj8yU; dkim=pass header.i=@amazonses.com header.s=sokbgaaqhfgd6qjht2wmdajpuuanpimv header.b=FZqYPUl3; spf=pass (google.com: domain of 010701a111c10d9a-57dffab2-cf97-4516-8f54-fdf5b40087b9-000000@eu-central-1.amazonses.com designates 69.169.224.2 as permitted sender) smtp.mailfrom=010701a111c10d9a-57dffab2-cf97-4516-8f54-fdf5b40087b9-000000@eu-central-1.amazonses.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=23yjbh4k34hwzfubhuiim7m4inbd3ick; d=sashiko.virtuozzo.com; t=1791299227; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date:Message-ID; bh=JYL0kqKoLMghX8NPO7I6OANkruwzTRUQkVu4QIOq7Tw=; b=Nzfnj8yUVaqZ2WyaDAFFleSnPdg8Zy/h/SBSOMnom03dY29TCC1/9NsQ+Fxlb374 ZXurw/4r+Jlgd9PqJ3+EoqHRltaY9VQiBsQRBd+1Tk4csPNDSHNA3AWE01iqD8MNqhR PA5laGY6lpcXYzIuPFFf0GWShjkyW2JmdEPfrIg+IXFCQ00kPNGVYjtscbNrbcAicBs YHe4XM0ml7aYlUlJiNfsWfzbxpAcwipspq9CT8lWh0Cxq0SaEgO2WYfCes/chU+ggCZ 7FJriNxtIIz7QsvoeQJz/4YXuq9hW4oNla92ktqgmBIusiwYm45og8LYEISuvNu8mY0 66vLyXE0NA== DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=sokbgaaqhfgd6qjht2wmdajpuuanpimv; d=amazonses.com; t=1791299227; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date:Message-ID:Feedback-ID; bh=JYL0kqKoLMghX8NPO7I6OANkruwzTRUQkVu4QIOq7Tw=; b=FZqYPUl32n5+uW/j2ZLtJpI/1LY5lXWR3NQXBeZX5hf6/q72do0i4Jw111bicMTy urDy5MLzkLqBenBu3EypqzRiKNuvDUlFZunGi3nazSdd+UK/e5kP/0Ab6NdMr360nP0 faHNtfNFD/741GJDEUc4/MRwQ3sHmRV2DrykuUNg= From: no-reply@sashiko.virtuozzo.com To: Pavel Tikhomirov , Vasileios Almpanis , Konstantin Khorenko In-Reply-To: <20261006-b4-prep-khorenko-vstor-148656-cpuid-v1-1-741609f4f03a@virtuozzo.com> References: <20261006-b4-prep-khorenko-vstor-148656-cpuid-v1-0-741609f4f03a@virtuozzo.com> <20261006-b4-prep-khorenko-vstor-148656-cpuid-v1-1-741609f4f03a@virtuozzo.com> Date: Tue, 6 Oct 2026 15:07:07 +0000 Message-ID: <010701a111c10d9a-57dffab2-cf97-4516-8f54-fdf5b40087b9-000000@eu-central-1.amazonses.com> Feedback-ID: ::1.eu-central-1.2wRQJBpg9g1fGRYexx3dUuYGS25Bux+2TEOx72/m6U4=:AmazonSES X-SES-Outgoing: 2026.10.06-69.169.224.2 X-OZ-Fwd: true X-MIME-Autoconverted: from quoted-printable to 8bit by mail.openvz.org id 696F78k1025643 Cc: devel@openvz.org Subject: Re: [Devel] [PATCH hci-8.1 1/5] selftests/ve: check CPUID override emulation for VE tasks X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg NiBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW01lZGl1bV0gc2VsZnRlc3RzL3Zl OiBjaGlsZCBtYXkgcnVuIENQVUlEIGJlZm9yZSBmYXVsdGluZyBpcyBhcm1lZCwgc28gdGVzdHMg YXJlIHJhY3kKLSBbTG93XSBzZWxmdGVzdHMvdmU6IHZlX2NwdWlkX292ZXJyaWRlX3Rlc3QgYmlu YXJ5IG1pc3NpbmcgZnJvbSAuZ2l0aWdub3JlCi0gW0xvd10gc2VsZnRlc3RzL3ZlOiB4ODYtb25s eSBjcHVpZCBhc20gYnVpbHQgdW5jb25kaXRpb25hbGx5IGZvciBhbGwgQVJDSAotIFtMb3ddIHNl bGZ0ZXN0cy92ZTogNDA5Ni1ieXRlIHNuYXBzaG90IG9mIGNwdWlkX292ZXJyaWRlIGNhbiB0cnVu Y2F0ZSB0aGUgdGFibGUsIHNvIHJlc3RvcmUgZmFpbHMKLSBbTG93XSBzZWxmdGVzdHMvdmU6IFZF IGNncm91cCBsZWFrcyB3aGVuIGFuIEFTU0VSVCBmYWlscyBpbiBGSVhUVVJFX1NFVFVQIGFmdGVy IG1ha2VfdmUoKQotIFtMb3ddIHNlbGZ0ZXN0cy92ZTogbGVhZiAxIEVBWCBjb21wYXJlZCBhZ2Fp bnN0IHNpbmdsZS1DUFUgc2FtcGxlIHdoaWxlIGNoaWxkIGlzIHVucGlubmVkCi0tCgpjb21taXQg OTMxODc4YTVjYjg2M2FkYTAzN2Q5NzhlYWU1ZDE3ZTU3ZjU0Y2JhMwpBdXRob3I6IEtvbnN0YW50 aW4gS2hvcmVua28gPGtob3JlbmtvQHZpcnR1b3p6by5jb20+CgpzZWxmdGVzdHMvdmU6IGNoZWNr IENQVUlEIG92ZXJyaWRlIGVtdWxhdGlvbiBmb3IgVkUgdGFza3MKClRoaXMgY29tbWl0IGFkZHMg YSBzZWxmdGVzdCB0aGF0IHdyaXRlcyBhIG9uZS1lbnRyeSAvcHJvYy92ei9jcHVpZF9vdmVycmlk ZQp0YWJsZSBhbmQgY2hlY2tzIHRoYXQgYSB0YXNrIGluIGEgZnJlc2ggVkUgc2VlcyB0aGUgdGFi bGUgdmFsdWVzIHdoaWxlIHRoZQpob3N0IHNlZXMgdGhlIGhhcmR3YXJlIHZhbHVlcy4gQSBzZWNv bmQgdGVzdCBmbHVzaGVzIHRoZSB0YWJsZSBhZnRlciB0aGUKdGFzayB3YXMgYXJtZWQgYW5kIGV4 cGVjdHMgdGhlIGhhcmR3YXJlIHZhbHVlcyBhZ2Fpbi4KCkxpbms6IGh0dHBzOi8vdmlydHVvenpv LmF0bGFzc2lhbi5uZXQvYnJvd3NlL1ZTVE9SLTE0ODg0MwoKPiBkaWZmIC0tZ2l0IGEvdG9vbHMv dGVzdGluZy9zZWxmdGVzdHMvdmUvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy92 ZS9NYWtlZmlsZQo+IC0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3ZlL01ha2VmaWxlCj4g KysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvdmUvTWFrZWZpbGUKPiBAQCAtNSw1ICs1LDYg QEAgQ0ZMQUdTICs9IC1nIC1XYWxsIC1PMgo+ICBURVNUX0dFTl9QUk9HUyArPSB2ZV9uc19vd25l cl90ZXN0Cj4gIFRFU1RfR0VOX1BST0dTICs9IHZlX3Blcm1zX3Rlc3QKPiAgVEVTVF9HRU5fUFJP R1MgKz0gdmVfbW91bnRfYWNjb3VudGluZ190ZXN0Cj4gK1RFU1RfR0VOX1BST0dTICs9IHZlX2Nw dWlkX292ZXJyaWRlX3Rlc3QKCltTZXZlcml0eTogTG93XQpUaGlzIGlzbid0IGEgYnVnIGluIGZ1 bmN0aW9uYWxpdHksIGJ1dCB0aGUgbmV3IGJpbmFyeSB2ZV9jcHVpZF9vdmVycmlkZV90ZXN0Cmlz IG5vdCBhZGRlZCB0byB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy92ZS8uZ2l0aWdub3JlLCB3aGlj aCBsaXN0cyBvbmx5CnZlX25zX293bmVyX3Rlc3QsIHZlX3Blcm1zX3Rlc3QgYW5kIHZlX21vdW50 X2FjY291bnRpbmdfdGVzdC4KClJ1bm5pbmcgbWFrZSBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0 cy92ZSB3aWxsIGxlYXZlIHRoaXMgYmluYXJ5IHVudHJhY2tlZAppbiBnaXQgc3RhdHVzLiBTaG91 bGQgaXQgZ2V0IGFuIGVudHJ5IHRoZXJlPwoKW1NldmVyaXR5OiBMb3ddClRoZSB0ZXN0IGlzIGFk ZGVkIHVuY29uZGl0aW9uYWxseSBmb3IgZXZlcnkgYXJjaGl0ZWN0dXJlLCBhbmQgZG9fY3B1aWQo KQpiZWxvdyB1c2VzIHg4Ni1vbmx5IGlubGluZSBhc20uCgpTaW5jZSB0b29scy90ZXN0aW5nL3Nl bGZ0ZXN0cy9NYWtlZmlsZSBoYXMgYW4gdW5jb25kaXRpb25hbCAiVEFSR0VUUyArPSB2ZSIsCmNh biB0aGlzIGJyZWFrIHRoZSBidWlsZCBvZiB0aGUgd2hvbGUgdmUgc2VsZnRlc3QgZGlyZWN0b3J5 IG9uIG5vbi14ODYgQVJDSCwKYW5kIG9uIDMyLWJpdCBQSUMgeDg2IGJlY2F1c2Ugb2YgdGhlICI9 YiIgY29uc3RyYWludD8gV291bGQgYW4gYXJjaCBjaGVjayBpbgp0aGlzIE1ha2VmaWxlIGJlIGFw cHJvcHJpYXRlPwoKWyAuLi4gXQoKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVz dHMvdmUvdmVfY3B1aWRfb3ZlcnJpZGVfdGVzdC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMv dmUvdmVfY3B1aWRfb3ZlcnJpZGVfdGVzdC5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiAtLS0g L2Rldi9udWxsCj4gKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvdmUvdmVfY3B1aWRfb3Zl cnJpZGVfdGVzdC5jCgpbIC4uLiBdCgo+ICtzdGF0aWMgaW50IGNwdWlkX2NoaWxkKHN0cnVjdCBj aGlsZF9jdHggKmN0eCkKPiArewo+ICsJc3RydWN0IGNwdWlkX3JlZ3MgcjsKPiArCWNoYXIgZ287 Cj4gKwo+ICsJY2xvc2UoY3R4LT5yZXN1bHRfcGlwZVswXSk7Cj4gKwljbG9zZShjdHgtPmdvX3Bp cGVbMV0pOwo+ICsKPiArCWlmICh1bnNoYXJlKENMT05FX05FV1ZFKSA8IDApCj4gKwkJcmV0dXJu IDIxOwo+ICsJaWYgKHdyaXRlKGN0eC0+cmVzdWx0X3BpcGVbMV0sICJSIiwgMSkgIT0gMSkKPiAr CQlyZXR1cm4gMjI7Cj4gKwlpZiAocmVhZChjdHgtPmdvX3BpcGVbMF0sICZnbywgMSkgIT0gMSkK PiArCQlyZXR1cm4gMjM7Cj4gKwo+ICsJZG9fY3B1aWQoQ1BVSURfTEVBRiwgJnIpOwoKW1NldmVy aXR5OiBNZWRpdW1dCklzIHRoZSBjaGlsZCBndWFyYW50ZWVkIHRvIGJlIGFybWVkIGJlZm9yZSBp dCBleGVjdXRlcyBDUFVJRCBoZXJlPwoKQ1BVSUQgZmF1bHRpbmcgaXMgb25seSBzd2l0Y2hlZCBv biBpbiBfX3N3aXRjaF90b194dHJhKCkgYXQgdGhlIG5leHQKY29udGV4dCBzd2l0Y2gsIHdoZW4g cHJldl9jcHVpZCAhPSBuZXh0X2NwdWlkOgoKYXJjaC94ODYva2VybmVsL3Byb2Nlc3MuYzpfX3N3 aXRjaF90b194dHJhKCkgewogICAgLi4uCglwcmV2X2NwdWlkID0gKHRpZnAgJiBfVElGX05PQ1BV SUQpIHx8ICh0aWZwICYgX1RJRl9DUFVJRF9PVkVSUklERSk7CgluZXh0X2NwdWlkID0gKHRpZm4g JiBfVElGX05PQ1BVSUQpIHx8ICh0aWZuICYgX1RJRl9DUFVJRF9PVkVSUklERSk7CglpZiAocHJl dl9jcHVpZCAhPSBuZXh0X2NwdWlkKQoJCXNldF9jcHVpZF9mYXVsdGluZyhuZXh0X2NwdWlkKTsK ICAgIC4uLgp9CgpUaGUgb25seSBibG9ja2luZyBwb2ludCBvZiB0aGUgY2hpbGQgaXMgcmVhZChj dHgtPmdvX3BpcGVbMF0pLiBJbgp2ZV9zZWVzX3RhYmxlX2hvc3Rfc2Vlc19oYXJkd2FyZSgpIHRo ZSBwYXJlbnQgd3JpdGVzICJHIiByaWdodCBhZnRlcgpzcGF3bl9jcHVpZF9jaGlsZCgpIGhhcyBy ZWFkICJSIi4KCk9uIFNNUCB0aGUgYnl0ZSBjYW4gYWxyZWFkeSBiZSBpbiB0aGUgcGlwZSB3aGVu IHRoZSBjaGlsZCBjYWxscyByZWFkKCkuIFRoZQpyZWFkIHRoZW4gcmV0dXJucyB3aXRob3V0IHNs ZWVwaW5nLCBubyBjb250ZXh0IHN3aXRjaCBvY2N1cnMsIGFuZCB0aGUgY2hpbGQKZXhlY3V0ZXMg Q1BVSUQgbmF0aXZlbHkuIEl0IHdvdWxkIHRoZW4gcmVwb3J0IHRoZSBoYXJkd2FyZSBFRFggYW5k IGZhaWwKRVhQRUNUX0VRKHIuZWR4LCBzZWxmLT5ob3N0LmVkeCAmIH5zZWxmLT5iaXQpLgoKSW4g Zmx1c2hlZF90YWJsZV9mYWxsc19iYWNrX3RvX2hhcmR3YXJlKCkgdGhlIHBhcmVudCBjYWxscwp3 cml0ZV9jcHVpZF9vdmVycmlkZSgiXG4iKSByaWdodCBhZnRlciByZWFkaW5nICJSIiwgYW5kIG5v dGhpbmcgd2FpdHMgZm9yCnRoZSBjaGlsZCB0byBzbGVlcC4gQ2FuIHRoZSBjaGlsZCBlbmQgdXAg bmV2ZXIgYmVpbmcgYXJtZWQsIHNvIHRoYXQgdGhlIHRlc3QKcGFzc2VzIHdpdGhvdXQgZXhlcmNp c2luZyB0aGUgYXJtZWQtdGhlbi1mbHVzaGVkIHBhdGg/CgpMYXRlciBwYXRjaGVzIGluIHRoZSBz ZXJpZXMgKGluY2x1ZGluZyAic2VsZnRlc3RzL3ZlOiBjaGVjayBDUFVJRCBvdmVycmlkZQpyaWdo dCBhZnRlciBlbnRlcmluZyBhIFZFIikga2VlcCB0aGlzIGhhbmRzaGFrZSwgYW5kIHRoZSBmaW5h bCBzZXJpZXMgc3RhdGUKc3RpbGwgaGFzIHRoZSAiUiIgdGhlbiBpbW1lZGlhdGUgIkciIHBhdHRl cm4gd2l0aCBubyB3YWl0IGZvciB0aGUgY2hpbGQgdG8Kc2xlZXAsIHNvIHRoZSByYWNlIGlzIG5v dCBmaXhlZCB0aGVyZSBlaXRoZXIuCgo+ICsJaWYgKHdyaXRlKGN0eC0+cmVzdWx0X3BpcGVbMV0s ICZyLCBzaXplb2YocikpICE9IHNpemVvZihyKSkKPiArCQlyZXR1cm4gMjQ7Cj4gKwlyZXR1cm4g MDsKPiArfQoKWyAuLi4gXQoKPiArRklYVFVSRV9TRVRVUCh2ZV9jcHVpZF9vdmVycmlkZSkKPiAr ewo+ICsJaW50IGZkOwo+ICsKPiArCWZkID0gb3BlbihDUFVJRF9PVkVSUklERV9QQVRILCBPX1JE T05MWSk7Cj4gKwlpZiAoZmQgPCAwKQo+ICsJCVNLSVAocmV0dXJuLCAiJXM6ICVzIiwgQ1BVSURf T1ZFUlJJREVfUEFUSCwgc3RyZXJyb3IoZXJybm8pKTsKPiArCWNsb3NlKGZkKTsKPiArCj4gKwlB U1NFUlRfR0UocmVhZF9maWxlX2F0KEFUX0ZEQ1dELCBDUFVJRF9PVkVSUklERV9QQVRILCBzZWxm LT5zYXZlZCwKPiArCQkJICAgICAgIHNpemVvZihzZWxmLT5zYXZlZCkpLCAwKTsKCltTZXZlcml0 eTogTG93XQpDYW4gdGhpcyBzbmFwc2hvdCBiZSB0cnVuY2F0ZWQ/IHNlbGYtPnNhdmVkIGlzIENQ VUlEX1RBQkxFX01BWCAoNDA5NikgYnl0ZXMsCmFuZCByZWFkX2ZpbGVfYXQoKSBmaWxscyBhdCBt b3N0IGJ1Zmxlbi0xIGJ5dGVzIHdpdGhvdXQgcmVwb3J0aW5nIGFuIGVycm9yLgoKV2l0aCB1cCB0 byAxMjggZW50cmllcyBvZiByb3VnaGx5IDQ1IHRvIDY0IGJ5dGVzIGVhY2gsIGEgbGFyZ2UgcHJl LWV4aXN0aW5nCnRhYmxlIGNhbiBleGNlZWQgNDA5NSBieXRlcy4gSWYgdGhlIGN1dCBmYWxscyBt aWQtZW50cnksIHRoZSByZXN0b3JlIHdyaXRlIGluCkZJWFRVUkVfVEVBUkRPV05fUEFSRU5UKCkg ZmFpbHMgd2l0aCAtRUlOVkFMLiBJZiBpdCBmYWxscyBvbiBhbiBlbnRyeQpib3VuZGFyeSwgYSBz aG9ydGVyIHRhYmxlIGlzIGluc3RhbGxlZC4KCj4gKwo+ICsJc2VsZi0+Y2d2Ml9mZCA9IG1vdW50 X2NnMl9mZCgpOwo+ICsJQVNTRVJUX0dFKHNlbGYtPmNndjJfZmQsIDApOwo+ICsJQVNTRVJUX0VR KHdyaXRlX2ZpbGVfYXQoc2VsZi0+Y2d2Ml9mZCwgImNncm91cC5zdWJ0cmVlX2NvbnRyb2wiLAo+ ICsJCQkJVkVfQ09OVFJPTExFUlMpLCAwKTsKPiArCXNlbGYtPmN0aWQgPSBtYWtlX3ZlKHNlbGYt PmNndjJfZmQsIENUSURfTUlOKTsKPiArCUFTU0VSVF9HRShzZWxmLT5jdGlkLCAwKTsKPiArCj4g KwkvKiBNYXNrIG9uZSBmZWF0dXJlIGJpdCB0aGUgaG9zdCBoYXM7IFNTRTIgd2hlbiBwcmVzZW50 LiAqLwo+ICsJZG9fY3B1aWQoQ1BVSURfTEVBRiwgJnNlbGYtPmhvc3QpOwo+ICsJc2VsZi0+Yml0 ID0gMXUgPDwgMjY7Cj4gKwlpZiAoIShzZWxmLT5ob3N0LmVkeCAmIHNlbGYtPmJpdCkpCj4gKwkJ c2VsZi0+Yml0ID0gc2VsZi0+aG9zdC5lZHggJiAtc2VsZi0+aG9zdC5lZHg7Cj4gKwlBU1NFUlRf TkUoc2VsZi0+Yml0LCAwKTsKCltTZXZlcml0eTogTG93XQpJZiBhbiBBU1NFUlQgZmFpbHMgaW4g RklYVFVSRV9TRVRVUCBhZnRlciBtYWtlX3ZlKCkgKGZvciBleGFtcGxlCkFTU0VSVF9ORShzZWxm LT5iaXQsIDApKSwgd2lsbCB0aGUgVkUgY2dyb3VwIGJlIGxlYWtlZD8KClRoZSBoYXJuZXNzIHJ1 bnMgdGVhcmRvd24gb25seSB3aGVuIHNldHVwIGhhcyBjb21wbGV0ZWQsIHNvIHRoZSBzdGF0ZW1l bnQgaW4KdGhlIGNvbW1pdCBtZXNzYWdlIHRoYXQgIlRoZSB0ZWFyZG93biBydW5zIGluIHRoZSBw YXJlbnQgYmVjYXVzZSB0aGUgaGFybmVzcwpza2lwcyBhIGNoaWxkLXNpZGUgdGVhcmRvd24gb25j ZSBhbiBBU1NFUlQgaGFzIGZpcmVkIiBvbmx5IGNvdmVycyB0aGUgdGVzdApib2R5LCBub3QgYSBm YWlsdXJlIGluIHNldHVwLiBUaGUgQVNTRVJUX05FIHBhdGggaXMgdmVyeSB1bmxpa2VseSBvbiB4 ODYsIHNvCnRoZSBpbXBhY3QgbG9va3Mgc21hbGwuCgpbIC4uLiBdCgo+ICtGSVhUVVJFX1RFQVJE T1dOX1BBUkVOVCh2ZV9jcHVpZF9vdmVycmlkZSkKPiArewo+ICsJaW50IGNndjJfZmQ7Cj4gKwo+ ICsJd3JpdGVfY3B1aWRfb3ZlcnJpZGUoc2VsZi0+c2F2ZWRbMF0gPyBzZWxmLT5zYXZlZCA6ICJc biIpOwoKW1NldmVyaXR5OiBMb3ddClNob3VsZCB0aGUgcmV0dXJuIHZhbHVlIG9mIHdyaXRlX2Nw dWlkX292ZXJyaWRlKCkgYmUgY2hlY2tlZCBoZXJlPyBUaGlzIGlzCnRoZSBvbmx5IHJlc3RvcmUg b2YgaG9zdCBzdGF0ZSwgYW5kIGlmIGl0IGZhaWxzLCB0aGUgdGVzdCdzIG9uZS1lbnRyeSB0YWJs ZQpzdGF5cyBpbnN0YWxsZWQgd2l0aCBubyBkaWFnbm9zdGljLgoKWyAuLi4gXQoKPiArVEVTVF9G KHZlX2NwdWlkX292ZXJyaWRlLCBmbHVzaGVkX3RhYmxlX2ZhbGxzX2JhY2tfdG9faGFyZHdhcmUp Cj4gK3sKPiArCXN0cnVjdCBjaGlsZF9jdHggY3R4Owo+ICsJc3RydWN0IGNwdWlkX3JlZ3MgcjsK PiArCXBpZF90IHBpZDsKPiArCj4gKwlBU1NFUlRfRVEod3JpdGVfY3B1aWRfb3ZlcnJpZGUoc2Vs Zi0+dGFibGUpLCAwKTsKPiArCj4gKwlwaWQgPSBzcGF3bl9jcHVpZF9jaGlsZChfbWV0YWRhdGEs IHNlbGYtPmNndjJfZmQsIHNlbGYtPmN0aWQsICZjdHgpOwo+ICsKPiArCUFTU0VSVF9FUSh3cml0 ZV9jcHVpZF9vdmVycmlkZSgiXG4iKSwgMCk7Cj4gKwlBU1NFUlRfRVEod3JpdGUoY3R4LmdvX3Bp cGVbMV0sICJHIiwgMSksIDEpOwo+ICsJY29sbGVjdF9jcHVpZF9jaGlsZChfbWV0YWRhdGEsIHBp ZCwgJmN0eCwgJnIpOwo+ICsKPiArCUVYUEVDVF9FUShyLmVheCwgc2VsZi0+aG9zdC5lYXgpOwo+ ICsJRVhQRUNUX05FKHIuZWR4ICYgc2VsZi0+Yml0LCAwKTsKCltTZXZlcml0eTogTG93XQpDYW4g RVhQRUNUX0VRKHIuZWF4LCBzZWxmLT5ob3N0LmVheCkgZmFpbCBzcHVyaW91c2x5IG9uIGh5YnJp ZCBDUFVzPwoKSW4gdGhpcyB0ZXN0IHRoZSBjaGlsZCdzIENQVUlEIGZhbGxzIHRocm91Z2ggdG8g dGhlIHJlYWwgaGFyZHdhcmUsIGJ1dApzZWxmLT5ob3N0IHdhcyBzYW1wbGVkIGJ5IHRoZSBwYXJl bnQgaW4gRklYVFVSRV9TRVRVUCgpLCBhbmQgbmVpdGhlciBwcm9jZXNzCmlzIHBpbm5lZCB3aXRo IHNjaGVkX3NldGFmZmluaXR5KCkuIElmIGxlYWYgMSBFQVggKGZhbWlseS9tb2RlbC9zdGVwcGlu ZykKZGlmZmVycyBiZXR3ZWVuIGNvcmUgdHlwZXMgYW5kIHRoZSBjaGlsZCBydW5zIG9uIGEgZGlm ZmVyZW50IGNvcmUgdHlwZSwgdGhlCmNvbXBhcmlzb24gY2FuIGZhaWwgd2l0aG91dCBhbnkga2Vy bmVsIGJ1Zy4KCj4gK30KPiArCj4gK1RFU1RfSEFSTkVTU19NQUlOCgotLSAKU2FzaGlrbyBBSSBy ZXZpZXcgwrcgaHR0cHM6Ly9zYXNoaWtvLnZ6aW50LmRldi8jL3BhdGNoc2V0LzIwMjYxMDA2LWI0 LXByZXAta2hvcmVua28tdnN0b3ItMTQ4NjU2LWNwdWlkLXYxLTAtNzQxNjA5ZjRmMDNhQHZpcnR1 b3p6by5jb20/cGFydD0xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpEZXZlbCBtYWlsaW5nIGxpc3QKRGV2ZWxAb3BlbnZ6Lm9yZwpodHRwczovL2xpc3Rz Lm9wZW52ei5vcmcvbWFpbG1hbi9saXN0aW5mby9kZXZlbAo=