From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0DB8DC4363C for ; Sun, 4 Oct 2020 23:55:03 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5E97B206A1 for ; Sun, 4 Oct 2020 23:55:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=wdc.com header.i=@wdc.com header.b="WQY+tHZ7"; dkim=pass (1024-bit key) header.d=sharedspace.onmicrosoft.com header.i=@sharedspace.onmicrosoft.com header.b="HSuBQzB0" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5E97B206A1 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:48402 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kPDqH-0001CX-8y for qemu-devel@archiver.kernel.org; Sun, 04 Oct 2020 19:55:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38264) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kPDpc-0000hb-Pp; Sun, 04 Oct 2020 19:54:20 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:59952) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kPDpZ-00045N-Vi; Sun, 04 Oct 2020 19:54:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1601855657; x=1633391657; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=EXrLNGJIlYnKDHIHwW2R6Ktuar/cqYSf5oTqo441TPc=; b=WQY+tHZ7wMw45F8WrYC28QCDCSoz/RLvyEf7GgVK5hirXhOyNrD27RTn HEnsyrqTN6jmW64qK1X7Sjlaow0oEKzJqzYWp5oZyrAISyq4IjyVeXmij 1oSkjzGZxHHQzRU1YgmRBFPnySnTO17+a2OXWemefkWMu8/+KqTW563d0 yOcPmM9bFexREJG9o0uXm6/F2Jb1tBTrS4jRsD0JsxRTpoiug1TDfrdPL cJwvLaMS246COLW9HTLJoZBvPluPMUvve/Hv/dMQxTafzJYu3Mq/3SNQE u0n4GDa/eDu07RgXaFgTZ3df4VM2V8L5ySmz+n/xln0frSiCQIXXVj3HE g==; IronPort-SDR: 4xJBRxPJfgcVgiq5pOydo0df6U9qi3jdixJySqee475BUCB1VETIYqmYEEsrMi98HT+2vPffcA g3EIlAq89/77f5usAgzAFwHqXLzLcIbQc/ydR9YCbulS374fYbthUoaSMXyRpoq/P0MHyvUqIq yWZLH92cZQX/BtCfQqYE0hwTKRRWu85BaM/88IG7aSZX9VrZ2Ou576TpS7jMKv97GME0a7qno9 /n6xLgnp7C7F67kQ9Q7/m+vWha7FlR3CoqwZK5tomIcOz+Kab1BWNg/mmpzOLj/WkCQ2Brujmo +aE= X-IronPort-AV: E=Sophos;i="5.77,337,1596470400"; d="scan'208";a="258821532" Received: from mail-sn1nam02lp2056.outbound.protection.outlook.com (HELO NAM02-SN1-obe.outbound.protection.outlook.com) ([104.47.36.56]) by ob1.hgst.iphmx.com with ESMTP; 05 Oct 2020 07:54:14 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bbDULyn6+inaePgIx27s2a4Rw0DfYUCaSqu2P85X1MYnNl7fXOzYlv0WK3BhV12lQioBATSe+qeRR96RfIByxKymnESa4c3ejqDeId6qrBWigc+QFkKURESWh3tU3mi/YAJ5YICotzqr9bRR8SRoQWmw/6VFEPw9lOpJyvstnofuj4ZX3uUXc1JdSZ+RRN4GUjjGeh4ANn+2yf7sTn98AASI9wxoK8QXTudyma69d5n0kYPD+12uRwZFxvzOy/OgAPFq8q/dq3ScY7Ws7VTlhAHD1x3CyhrvrM0c05wrKuGVgM8jk/1q1tuwhcA0t/GMLgtF//o5hoXXrfkZZK1OrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EXrLNGJIlYnKDHIHwW2R6Ktuar/cqYSf5oTqo441TPc=; b=oO/2zk9spyRjrZxiMr1/gF7RbI83YxO6qBsaE0tQ5vCaJ8dc9euBLTAFw0aYIwqkHx/Y8lZY1EVjwGkWbvF7OltHf3fqO/KrL7IQqY9P5YWF4voaIvgbwKo+a49mPVcVRUKdwFfcyeWE+g3Un/WqabAsQ0MJIxvR8fnhlDk415D8Inza1+4qw2GBe2+IlIxRcMOje3E0qUEGyV5ouv9ffxlRI8U3sEJEhNTsjo5ZryK5XXBXX70f46lP4pLuNB9+BHELjUmmxWRWknIPoe3mbKlDnKsiaYq7CFpmxqS28mhsKb5AaQ2cCMg0E8UPW6RNekx7L1dB4jHvLppTRfbHTw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EXrLNGJIlYnKDHIHwW2R6Ktuar/cqYSf5oTqo441TPc=; b=HSuBQzB0nWXOse9+Kmbx7vKd1zqccEjBK5dA+bJvdUKYCVU1NPjgMM+JkOjERFinfraM7PuE38xfJ346oCO34qNhsO7gO9QNZK6JwGPxUvbUnntguj5xfSQkVRQwNA672LzBbPWySbAz0jp1/LQOY+yN0+qjsOZYgMkW4SixkE0= Received: from MN2PR04MB5951.namprd04.prod.outlook.com (2603:10b6:208:3f::13) by MN2PR04MB5710.namprd04.prod.outlook.com (2603:10b6:208:a2::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3433.39; Sun, 4 Oct 2020 23:54:13 +0000 Received: from MN2PR04MB5951.namprd04.prod.outlook.com ([fe80::44d8:522e:db29:bb94]) by MN2PR04MB5951.namprd04.prod.outlook.com ([fe80::44d8:522e:db29:bb94%6]) with mapi id 15.20.3433.044; Sun, 4 Oct 2020 23:54:13 +0000 From: Dmitry Fomichev To: Niklas Cassel Subject: Re: [PATCH v5 06/14] hw/block/nvme: Add support for active/inactive namespaces Thread-Topic: [PATCH v5 06/14] hw/block/nvme: Add support for active/inactive namespaces Thread-Index: AQHWlUAXXxRdVYCVJ0WJaDEs3uSVyKmBNr4AgAbyEgA= Date: Sun, 4 Oct 2020 23:54:13 +0000 Message-ID: <7a552eaa0aee5542d271589ee0279992bc0760d0.camel@wdc.com> References: <20200928023528.15260-1-dmitry.fomichev@wdc.com> <20200928023528.15260-7-dmitry.fomichev@wdc.com> <20200930135012.GA204568@localhost.localdomain> In-Reply-To: <20200930135012.GA204568@localhost.localdomain> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.36.5 (3.36.5-1.fc32) authentication-results: wdc.com; dkim=none (message not signed) header.d=none;wdc.com; dmarc=none action=none header.from=wdc.com; x-originating-ip: [173.70.90.35] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 18e97b53-bc15-4b01-cc8c-08d868c0cbdc x-ms-traffictypediagnostic: MN2PR04MB5710: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: wdcipoutbound: EOP-TRUE x-ms-oob-tlc-oobclassifiers: OLM:6108; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 7E2k8XdRzbFFli2tLcbLv5I/oapyLKmQXnVjno5ZUGePx20etXS7ysN5/PIjArY/VHYY4jO05je7yIXuZIdJlqQcKfcsOJpXA0hMn7mSmHYdfuAM/SaITUAjMywoY7ua6cVQhf0W8aCcgDwHxRTZH1q6Vkgxie2hBGHZhQVxuTDvLG+3E6Rce+2wGtM6RjR0gqLySU7DvrrMo+hCPfUzBvERLslTzzaytnjLy/DDDL5VP3TdZ78wSBjYmCtn6wWAV4A3aOb1q8IXjMrbN6ww2uqCvMyzFoNn9BqIrw64QBgCk8p/8ogha6ERNaVNMlAxEBzOCJmsiQ1o8NzA08r+eg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR04MB5951.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(39850400004)(396003)(366004)(376002)(346002)(37006003)(6506007)(83380400001)(316002)(54906003)(6862004)(4326008)(186003)(26005)(2616005)(8676002)(5660300002)(86362001)(76116006)(8936002)(30864003)(66556008)(66476007)(64756008)(66446008)(478600001)(6512007)(6636002)(6486002)(2906002)(36756003)(71200400001)(66946007); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: JEA3SgQV0Tmgkf9FypMZAeEoj7cZmWWMy/gkLX1e5ixy2Ot5Wuz8ne/VAPGD3OgFLxeQQMbDkMdcUsUFNaDkfIFI3QFSdeDdocWTythh47W0O03L+n5MW6OxlfJSjoGssFYmduPHJbktqLIjFvhiP4I4Fdw4/qcUzOsP2px7k0VaQSDVHljTmz1mURlMuzqeU32IOOPe4H7l+ikMSLnlJxaMKe1QhJQJzzOAfeBJZnL7aWfIQYOpgPVmSZUbdPHxMSgCIOIekXyf4quc3wVtyp7ZdnlkoQnuz4jvRXwVcfWSk13qGzWlyziiwbNTeHAdOhUD35z+DS9sZJzSzYSjJ6BBY8PMPR8J4SWY4kV7uhJvP5FXaOzZrfwim9z5su3e++05La7oGqIxYXDSq2i1pKJHJUDkXMYeMciowhD21Gm2axOZUPZKRIDPmw3ZH8pl66+HNhWceUTlIoTOdU1CKy5haJOhw6mFRQyAlxtbJCqE7jkMZAatovUlqsiNo7JAX3VuORmJfRuOM5Q13shOACd7XHxP/mevqtuMvxt5geBJ1LGLYs5RIlymyn796XCjq9/FtphYFuVHeGhNe2PedGto/VpKHuVoxa4TntNRnUYZUfSPkn1t4wRKCsCB8SJQ6cSUQHq1y/FEEFDeOa0/aQ== Content-Type: text/plain; charset="utf-8" Content-ID: <7A4865F3F3B29F4F8575EECBF86C8EB9@namprd04.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR04MB5951.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 18e97b53-bc15-4b01-cc8c-08d868c0cbdc X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Oct 2020 23:54:13.5240 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: aoMgypCCvGb2ua1kRaL80Xj49FIZOnBJMcBpboeBY0tknYC5A9R8NGjiJM4RGiCadvLEL9exj9R5L4msTB7BVQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR04MB5710 Received-SPF: pass client-ip=68.232.141.245; envelope-from=prvs=539968827=Dmitry.Fomichev@wdc.com; helo=esa1.hgst.iphmx.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/04 19:48:07 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "fam@euphon.net" , "kwolf@redhat.com" , Damien Le Moal , "qemu-block@nongnu.org" , "k.jensen@samsung.com" , "qemu-devel@nongnu.org" , "mlevitsk@redhat.com" , Alistair Francis , "kbusch@kernel.org" , "philmd@redhat.com" , Matias Bjorling Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" T24gV2VkLCAyMDIwLTA5LTMwIGF0IDEzOjUwICswMDAwLCBOaWtsYXMgQ2Fzc2VsIHdyb3RlOg0K PiBPbiBNb24sIFNlcCAyOCwgMjAyMCBhdCAxMTozNToyMEFNICswOTAwLCBEbWl0cnkgRm9taWNo ZXYgd3JvdGU6DQo+ID4gRnJvbTogTmlrbGFzIENhc3NlbCA8bmlrbGFzLmNhc3NlbEB3ZGMuY29t Pg0KPiA+IA0KPiA+IEluIE5WTWUsIGEgbmFtZXNwYWNlIGlzIGFjdGl2ZSBpZiBpdCBleGlzdHMg YW5kIGlzIGF0dGFjaGVkIHRvIHRoZQ0KPiA+IGNvbnRyb2xsZXIuDQo+ID4gDQo+ID4gQ0FQLkNT UyAodG9nZXRoZXIgd2l0aCB0aGUgSS9PIENvbW1hbmQgU2V0IGRhdGEgc3RydWN0dXJlKSBkZWZp bmVzIHdoYXQNCj4gPiBjb21tYW5kIHNldHMgYXJlIHN1cHBvcnRlZCBieSB0aGUgY29udHJvbGxl ci4NCj4gPiANCj4gPiBDQy5DU1MgKHRvZ2V0aGVyIHdpdGggU2V0IFByb2ZpbGUpIGNhbiBiZSBz ZXQgdG8gZW5hYmxlIGEgc3Vic2V0IG9mIHRoZQ0KPiA+IGF2YWlsYWJsZSBjb21tYW5kIHNldHMu IFRoZSBuYW1lc3BhY2VzIGJlbG9uZ2luZyB0byBhIGRpc2FibGVkIGNvbW1hbmQgc2V0DQo+ID4g d2lsbCBub3QgYmUgYWJsZSB0byBhdHRhY2ggdG8gdGhlIGNvbnRyb2xsZXIsIGFuZCB3aWxsIHRo dXMgYmUgaW5hY3RpdmUuDQo+ID4gDQo+ID4gRS5nLiwgaWYgdGhlIHVzZXIgc2V0cyBDQy5DU1Mg dG8gQWRtaW4gT25seSwgTlZNIG5hbWVzcGFjZXMgc2hvdWxkIGJlDQo+ID4gbWFya2VkIGFzIGlu YWN0aXZlLg0KPiA+IA0KPiA+IFRoZSBpZGVudGlmeSBuYW1lc3BhY2UsIHRoZSBpZGVudGlmeSBu YW1lc3BhY2UgQ1NJIHNwZWNpZmljLCBhbmQgdGhlIG5hbWVzcGFjZQ0KPiA+IGxpc3QgY29tbWFu ZHMgaGF2ZSB0d28gZGlmZmVyZW50IHZlcnNpb25zLCBvbmUgdGhhdCBvbmx5IHNob3dzIGFjdGl2 ZQ0KPiA+IG5hbWVzcGFjZXMsIGFuZCB0aGUgb3RoZXIgdmVyc2lvbiB0aGF0IHNob3dzIGV4aXN0 aW5nIG5hbWVzcGFjZXMsIHJlZ2FyZGxlc3MNCj4gPiBvZiB3aGV0aGVyIHRoZSBuYW1lc3BhY2Ug aXMgYXR0YWNoZWQgb3Igbm90Lg0KPiA+IA0KPiA+IEFkZCBhbiBhdHRhY2hlZCBtZW1iZXIgdG8g c3RydWN0IE52bWVOYW1lc3BhY2UsIGFuZCBpbXBsZW1lbnQgdGhlIG1pc3NpbmcgQ05TDQo+ID4g Y29tbWFuZHMuDQo+ID4gDQo+ID4gVGhlIGFkZGVkIGZ1bmN0aW9uYWxpdHkgd2lsbCBhbHNvIHNp bXBsaWZ5IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBuYW1lc3BhY2UNCj4gPiBtYW5hZ2VtZW50IGlu IHRoZSBmdXR1cmUsIHNpbmNlIG5hbWVzcGFjZSBtYW5hZ2VtZW50IGNhbiBhbHNvIGF0dGFjaCBh bmQNCj4gPiBkZXRhY2ggbmFtZXNwYWNlcy4NCj4gDQo+IEZvbGxvd2luZyBteSBwcmV2aW91cyBk aXNjdXNzaW9uIHdpdGggS2xhdXMsDQo+IEkgdGhpbmsgd2UgbmVlZCB0byByZXdyaXRlIHRoaXMg Y29tbWl0IG1lc3NhZ2UgY29tcGxldGVseToNCj4gDQo+IFN1YmplY3Q6IGh3L2Jsb2NrL252bWU6 IEFkZCBzdXBwb3J0IGZvciBhbGxvY2F0ZWQgQ05TIGNvbW1hbmQgdmFyaWFudHMNCj4gDQo+IE1h bnkgQ05TIGNvbW1hbmRzIGhhdmUgImFsbG9jYXRlZCIgY29tbWFuZCB2YXJpYW50cy4NCj4gVGhl c2UgaW5jbHVkZXMgYSBuYW1lc3BhY2UgYXMgbG9uZyBhcyBpdCBpcyBhbGxvY2F0ZWQNCj4gKGku ZS4gYSBuYW1lc3BhY2UgaXMgaW5jbHVkZWQgcmVnYXJkbGVzcyBpZiBpdCBpcyBhY3RpdmUgKGF0 dGFjaGVkKQ0KPiBvciBub3QuKQ0KPiANCj4gV2hpbGUgdGhlc2UgY29tbWFuZHMgYXJlIG9wdGlv bmFsICh0aGV5IGFyZSBtYW5kYXRvcnkgZm9yIGNvbnRyb2xsZXJzDQo+IHN1cHBvcnRpbmcgdGhl IG5hbWVzcGFjZSBhdHRhY2htZW50IGNvbW1hbmQpLCBvdXIgUUVNVSBpbXBsZW1lbnRhdGlvbg0K PiBpcyBtb3JlIGNvbXBsZXRlIGJ5IGFjdHVhbGx5IHByb3ZpZGluZyBzdXBwb3J0IGZvciB0aGVz ZSBDTlMgdmFsdWVzLg0KPiANCj4gSG93ZXZlciwgc2luY2Ugb3VyIFFFTVUgbW9kZWwgY3VycmVu dGx5IGRvZXMgbm90IHN1cHBvcnQgdGhlIG5hbWVzcGFjZQ0KPiBhdHRhY2htZW50IGNvbW1hbmQs IHRoZXNlIG5ldyBhbGxvY2F0ZWQgQ05TIGNvbW1hbmRzIHdpbGwgcmV0dXJuIHRoZSBzYW1lDQo+ IHJlc3VsdCBhcyB0aGUgYWN0aXZlIENOUyBjb21tYW5kIHZhcmlhbnRzLg0KPiANCj4gSW4gTlZN ZSwgYSBuYW1lc3BhY2UgaXMgYWN0aXZlIGlmIGl0IGV4aXN0cyBhbmQgaXMgYXR0YWNoZWQgdG8g dGhlDQo+IGNvbnRyb2xsZXIuDQo+IA0KPiBDQVAuQ1NTICh0b2dldGhlciB3aXRoIHRoZSBJL08g Q29tbWFuZCBTZXQgZGF0YSBzdHJ1Y3R1cmUpIGRlZmluZXMgd2hhdA0KPiBjb21tYW5kIHNldHMg YXJlIHN1cHBvcnRlZCBieSB0aGUgY29udHJvbGxlci4NCj4gDQo+IENDLkNTUyAodG9nZXRoZXIg d2l0aCBTZXQgUHJvZmlsZSkgY2FuIGJlIHNldCB0byBlbmFibGUgYSBzdWJzZXQgb2YgdGhlDQo+ IGF2YWlsYWJsZSBjb21tYW5kIHNldHMuDQo+IA0KPiBFdmVuIGlmIGEgdXNlciBjb25maWd1cmVz IENDLkNTUyB0byBlLmcuIEFkbWluIG9ubHksIE5WTSBuYW1lc3BhY2VzDQo+IHdpbGwgc3RpbGwg YmUgYXR0YWNoZWQgKGFuZCB0aHVzIG1hcmtlZCBhcyBhY3RpdmUpLg0KPiBTaW1pbGFybHksIGlm IGEgdXNlciBjb25maWd1cmVzIENDLkNTUyB0byBlLmcuIE5WTSwgWk5TIG5hbWVzcGFjZXMNCj4g d2lsbCBzdGlsbCBiZSBhdHRhY2hlZCAoYW5kIHRodXMgbWFya2VkIGFzIGFjdGl2ZSkuDQo+IA0K PiBIb3dldmVyLCBhbnkgb3BlcmF0aW9uIGZyb20gYSBkaXNhYmxlZCBjb21tYW5kIHNldCB3aWxs IHJlc3VsdCBpbiBhDQo+IEludmFsaWQgQ29tbWFuZCBPcGNvZGUuDQo+IA0KPiBBZGQgYW4gYXR0 YWNoZWQgc3RydWN0IG1lbWJlciBmb3Igc3RydWN0IE52bWVOYW1lc3BhY2UsDQo+IHNvIHRoYXQg d2UgbGF5IHRoZSBmb3VuZGF0aW9uIGZvciBuYW1lc3BhY2UgYXR0YWNobWVudA0KPiBzdXBwb3J0 LiBBbHNvIGltcGxlbWVudCBsb2dpYyBpbiB0aGUgbmV3IENOUyB2YWx1ZXMgdG8NCj4gaW5jbHVk ZS9leGNsdWRlIG5hbWVzcGFjZXMgYmFzZWQgb24gdGhpcyBuZXcgc3RydWN0IG1lbWJlci4NCj4g VGhlIG9ubHkgdGhpbmcgbWlzc2luZyBob29raW5nIHVwIHRoZSBhY3R1YWwgTmFtZXNwYWNlIEF0 dGFjaG1lbnQNCj4gY29tbWFuZCBvcGNvZGUsIHdoaWNoIGFsbG93cyBhIHVzZXIgdG8gdG9nZ2xl IHRoZSBhdHRhY2hlZA0KPiB2YXJpYWJsZSBwZXIgbmFtZXNwYWNlLiBUaGUgcmVhc29uIGZvciBu b3QgaG9va2luZyB1cCB0aGlzDQo+IGNvbW1hbmQgY29tcGxldGVseSBpcyBiZWNhdXNlIHRoZSBO Vk1lIHNwZWNpZmljYXRpb24NCj4gcmVxdWlyZXMgdGhhdCB0aGUgbmFtZXNwYWNlIG1hbmFnbWVu dCBjb21tYW5kIGlzIHN1cHBvcnRlZA0KPiBpZiB0aGUgbmFtZXNwYWNlbWVudCBhdHRhY2htZW50 IGNvbW1hbmQgaXMgc3VwcG9ydGVkLg0KPiANCg0KT0ssIHB1dHRpbmcgdGhpcyBpbi4NCg0KPiAN Cj4gPiBTaWduZWQtb2ZmLWJ5OiBOaWtsYXMgQ2Fzc2VsIDxuaWtsYXMuY2Fzc2VsQHdkYy5jb20+ DQo+ID4gU2lnbmVkLW9mZi1ieTogRG1pdHJ5IEZvbWljaGV2IDxkbWl0cnkuZm9taWNoZXZAd2Rj LmNvbT4NCj4gPiAtLS0NCj4gPiAgaHcvYmxvY2svbnZtZS1ucy5oICAgfCAgMSArDQo+ID4gIGh3 L2Jsb2NrL252bWUuYyAgICAgIHwgNjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0NCj4gPiAgaW5jbHVkZS9ibG9jay9udm1lLmggfCAyMCArKysrKysrKystLS0t LS0NCj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCA2NSBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMo LSkNCj4gPiANCj4gPiBkaWZmIC0tZ2l0IGEvaHcvYmxvY2svbnZtZS1ucy5oIGIvaHcvYmxvY2sv bnZtZS1ucy5oDQo+ID4gaW5kZXggY2NhMjNiYzBiMy4uYWNkYjc2ZjA1OCAxMDA2NDQNCj4gPiAt LS0gYS9ody9ibG9jay9udm1lLW5zLmgNCj4gPiArKysgYi9ody9ibG9jay9udm1lLW5zLmgNCj4g PiBAQCAtMjIsNiArMjIsNyBAQA0KPiA+ICB0eXBlZGVmIHN0cnVjdCBOdm1lTmFtZXNwYWNlUGFy YW1zIHsNCj4gPiAgICAgIHVpbnQzMl90IG5zaWQ7DQo+ID4gICAgICB1aW50OF90ICBjc2k7DQo+ ID4gKyAgICBib29sICAgICBhdHRhY2hlZDsNCj4gPiAgICAgIFFlbXVVVUlEIHV1aWQ7DQo+ID4g IH0gTnZtZU5hbWVzcGFjZVBhcmFtczsNCj4gPiAgDQo+ID4gZGlmZiAtLWdpdCBhL2h3L2Jsb2Nr L252bWUuYyBiL2h3L2Jsb2NrL252bWUuYw0KPiA+IGluZGV4IDRlYzFkZGM5MGEuLjYzYWQwM2Q2 ZDYgMTAwNjQ0DQo+ID4gLS0tIGEvaHcvYmxvY2svbnZtZS5jDQo+ID4gKysrIGIvaHcvYmxvY2sv bnZtZS5jDQo+IA0KPiBXZSBuZWVkIHRvIGFkZCBhbiBhZGRpdGlvbmFsIGNoZWNrIGluIG52bWVf aW9fY21kKCkNCj4gdGhhdCByZXR1cm5zIEludmFsaWQgQ29tbWFuZCBPcGNvZGUgd2hlbiBDQy5D U1MgPT0gQWRtaW4gb25seS4NCj4gDQoNCkkgdGhpbmsgS2VpdGggaGFzIHRoaXMgYWRkaXRpb24g YWxyZWFkeSBxdWV1ZWQuIA0KDQo+ID4gQEAgLTE1MjMsNyArMTUyMyw4IEBAIHN0YXRpYyB1aW50 MTZfdCBudm1lX2lkZW50aWZ5X2N0cmxfY3NpKE52bWVDdHJsICpuLCBOdm1lUmVxdWVzdCAqcmVx KQ0KPiA+ICAgICAgcmV0dXJuIE5WTUVfSU5WQUxJRF9GSUVMRCB8IE5WTUVfRE5SOw0KPiA+ICB9 DQo+ID4gIA0KPiA+IC1zdGF0aWMgdWludDE2X3QgbnZtZV9pZGVudGlmeV9ucyhOdm1lQ3RybCAq biwgTnZtZVJlcXVlc3QgKnJlcSkNCj4gPiArc3RhdGljIHVpbnQxNl90IG52bWVfaWRlbnRpZnlf bnMoTnZtZUN0cmwgKm4sIE52bWVSZXF1ZXN0ICpyZXEsDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJvb2wgb25seV9hY3RpdmUpDQo+ID4gIHsNCj4gPiAgICAgIE52bWVO YW1lc3BhY2UgKm5zOw0KPiA+ICAgICAgTnZtZUlkZW50aWZ5ICpjID0gKE52bWVJZGVudGlmeSAq KSZyZXEtPmNtZDsNCj4gPiBAQCAtMTU0MCwxMSArMTU0MSwxNiBAQCBzdGF0aWMgdWludDE2X3Qg bnZtZV9pZGVudGlmeV9ucyhOdm1lQ3RybCAqbiwgTnZtZVJlcXVlc3QgKnJlcSkNCj4gPiAgICAg ICAgICByZXR1cm4gbnZtZV9ycHRfZW1wdHlfaWRfc3RydWN0KG4sIHJlcSk7DQo+ID4gICAgICB9 DQo+ID4gIA0KPiA+ICsgICAgaWYgKG9ubHlfYWN0aXZlICYmICFucy0+cGFyYW1zLmF0dGFjaGVk KSB7DQo+ID4gKyAgICAgICAgcmV0dXJuIG52bWVfcnB0X2VtcHR5X2lkX3N0cnVjdChuLCByZXEp Ow0KPiA+ICsgICAgfQ0KPiA+ICsNCj4gPiAgICAgIHJldHVybiBudm1lX2RtYShuLCAodWludDhf dCAqKSZucy0+aWRfbnMsIHNpemVvZihOdm1lSWROcyksDQo+ID4gICAgICAgICAgICAgICAgICAg ICAgRE1BX0RJUkVDVElPTl9GUk9NX0RFVklDRSwgcmVxKTsNCj4gPiAgfQ0KPiA+ICANCj4gPiAt c3RhdGljIHVpbnQxNl90IG52bWVfaWRlbnRpZnlfbnNfY3NpKE52bWVDdHJsICpuLCBOdm1lUmVx dWVzdCAqcmVxKQ0KPiA+ICtzdGF0aWMgdWludDE2X3QgbnZtZV9pZGVudGlmeV9uc19jc2koTnZt ZUN0cmwgKm4sIE52bWVSZXF1ZXN0ICpyZXEsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBib29sIG9ubHlfYWN0aXZlKQ0KPiA+ICB7DQo+ID4gICAgICBOdm1lTmFt ZXNwYWNlICpuczsNCj4gPiAgICAgIE52bWVJZGVudGlmeSAqYyA9IChOdm1lSWRlbnRpZnkgKikm cmVxLT5jbWQ7DQo+ID4gQEAgLTE1NjEsNiArMTU2NywxMCBAQCBzdGF0aWMgdWludDE2X3QgbnZt ZV9pZGVudGlmeV9uc19jc2koTnZtZUN0cmwgKm4sIE52bWVSZXF1ZXN0ICpyZXEpDQo+ID4gICAg ICAgICAgcmV0dXJuIG52bWVfcnB0X2VtcHR5X2lkX3N0cnVjdChuLCByZXEpOw0KPiA+ICAgICAg fQ0KPiA+ICANCj4gPiArICAgIGlmIChvbmx5X2FjdGl2ZSAmJiAhbnMtPnBhcmFtcy5hdHRhY2hl ZCkgew0KPiA+ICsgICAgICAgIHJldHVybiBudm1lX3JwdF9lbXB0eV9pZF9zdHJ1Y3QobiwgcmVx KTsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gICAgICBpZiAoYy0+Y3NpID09IE5WTUVfQ1NJX05W TSkgew0KPiA+ICAgICAgICAgIHJldHVybiBudm1lX3JwdF9lbXB0eV9pZF9zdHJ1Y3QobiwgcmVx KTsNCj4gPiAgICAgIH0NCj4gPiBAQCAtMTU2OCw3ICsxNTc4LDggQEAgc3RhdGljIHVpbnQxNl90 IG52bWVfaWRlbnRpZnlfbnNfY3NpKE52bWVDdHJsICpuLCBOdm1lUmVxdWVzdCAqcmVxKQ0KPiA+ ICAgICAgcmV0dXJuIE5WTUVfSU5WQUxJRF9GSUVMRCB8IE5WTUVfRE5SOw0KPiA+ICB9DQo+ID4g IA0KPiA+IC1zdGF0aWMgdWludDE2X3QgbnZtZV9pZGVudGlmeV9uc2xpc3QoTnZtZUN0cmwgKm4s IE52bWVSZXF1ZXN0ICpyZXEpDQo+ID4gK3N0YXRpYyB1aW50MTZfdCBudm1lX2lkZW50aWZ5X25z bGlzdChOdm1lQ3RybCAqbiwgTnZtZVJlcXVlc3QgKnJlcSwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgb25seV9hY3RpdmUpDQo+ID4gIHsNCj4gPiAgICAg IE52bWVOYW1lc3BhY2UgKm5zOw0KPiA+ICAgICAgTnZtZUlkZW50aWZ5ICpjID0gKE52bWVJZGVu dGlmeSAqKSZyZXEtPmNtZDsNCj4gPiBAQCAtMTU5OCw2ICsxNjA5LDkgQEAgc3RhdGljIHVpbnQx Nl90IG52bWVfaWRlbnRpZnlfbnNsaXN0KE52bWVDdHJsICpuLCBOdm1lUmVxdWVzdCAqcmVxKQ0K PiA+ICAgICAgICAgIGlmIChucy0+cGFyYW1zLm5zaWQgPCBtaW5fbnNpZCkgew0KPiA+ICAgICAg ICAgICAgICBjb250aW51ZTsNCj4gPiAgICAgICAgICB9DQo+ID4gKyAgICAgICAgaWYgKG9ubHlf YWN0aXZlICYmICFucy0+cGFyYW1zLmF0dGFjaGVkKSB7DQo+ID4gKyAgICAgICAgICAgIGNvbnRp bnVlOw0KPiA+ICsgICAgICAgIH0NCj4gPiAgICAgICAgICBsaXN0X3B0cltqKytdID0gY3B1X3Rv X2xlMzIobnMtPnBhcmFtcy5uc2lkKTsNCj4gPiAgICAgICAgICBpZiAoaiA9PSBkYXRhX2xlbiAv IHNpemVvZih1aW50MzJfdCkpIHsNCj4gPiAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gQEAgLTE2 MDcsNyArMTYyMSw4IEBAIHN0YXRpYyB1aW50MTZfdCBudm1lX2lkZW50aWZ5X25zbGlzdChOdm1l Q3RybCAqbiwgTnZtZVJlcXVlc3QgKnJlcSkNCj4gPiAgICAgIHJldHVybiBudm1lX2RtYShuLCBs aXN0LCBkYXRhX2xlbiwgRE1BX0RJUkVDVElPTl9GUk9NX0RFVklDRSwgcmVxKTsNCj4gPiAgfQ0K PiA+ICANCj4gPiAtc3RhdGljIHVpbnQxNl90IG52bWVfaWRlbnRpZnlfbnNsaXN0X2NzaShOdm1l Q3RybCAqbiwgTnZtZVJlcXVlc3QgKnJlcSkNCj4gPiArc3RhdGljIHVpbnQxNl90IG52bWVfaWRl bnRpZnlfbnNsaXN0X2NzaShOdm1lQ3RybCAqbiwgTnZtZVJlcXVlc3QgKnJlcSwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIG9ubHlfYWN0aXZlKQ0K PiA+ICB7DQo+ID4gICAgICBOdm1lTmFtZXNwYWNlICpuczsNCj4gPiAgICAgIE52bWVJZGVudGlm eSAqYyA9IChOdm1lSWRlbnRpZnkgKikmcmVxLT5jbWQ7DQo+ID4gQEAgLTE2MzEsNiArMTY0Niw5 IEBAIHN0YXRpYyB1aW50MTZfdCBudm1lX2lkZW50aWZ5X25zbGlzdF9jc2koTnZtZUN0cmwgKm4s IE52bWVSZXF1ZXN0ICpyZXEpDQo+ID4gICAgICAgICAgaWYgKG5zLT5wYXJhbXMubnNpZCA8IG1p bl9uc2lkKSB7DQo+ID4gICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ICAgICAgICAgIH0NCj4g PiArICAgICAgICBpZiAob25seV9hY3RpdmUgJiYgIW5zLT5wYXJhbXMuYXR0YWNoZWQpIHsNCj4g PiArICAgICAgICAgICAgY29udGludWU7DQo+ID4gKyAgICAgICAgfQ0KPiA+ICAgICAgICAgIGxp c3RfcHRyW2orK10gPSBjcHVfdG9fbGUzMihucy0+cGFyYW1zLm5zaWQpOw0KPiA+ICAgICAgICAg IGlmIChqID09IGRhdGFfbGVuIC8gc2l6ZW9mKHVpbnQzMl90KSkgew0KPiA+ICAgICAgICAgICAg ICBicmVhazsNCj4gPiBAQCAtMTcwMCwxNyArMTcxOCwyNSBAQCBzdGF0aWMgdWludDE2X3QgbnZt ZV9pZGVudGlmeShOdm1lQ3RybCAqbiwgTnZtZVJlcXVlc3QgKnJlcSkNCj4gPiAgDQo+ID4gICAg ICBzd2l0Y2ggKGxlMzJfdG9fY3B1KGMtPmNucykpIHsNCj4gPiAgICAgIGNhc2UgTlZNRV9JRF9D TlNfTlM6DQo+ID4gLSAgICAgICAgcmV0dXJuIG52bWVfaWRlbnRpZnlfbnMobiwgcmVxKTsNCj4g PiArICAgICAgICByZXR1cm4gbnZtZV9pZGVudGlmeV9ucyhuLCByZXEsIHRydWUpOw0KPiA+ICAg ICAgY2FzZSBOVk1FX0lEX0NOU19DU19OUzoNCj4gPiAtICAgICAgICByZXR1cm4gbnZtZV9pZGVu dGlmeV9uc19jc2kobiwgcmVxKTsNCj4gPiArICAgICAgICByZXR1cm4gbnZtZV9pZGVudGlmeV9u c19jc2kobiwgcmVxLCB0cnVlKTsNCj4gPiArICAgIGNhc2UgTlZNRV9JRF9DTlNfTlNfUFJFU0VO VDoNCj4gPiArICAgICAgICByZXR1cm4gbnZtZV9pZGVudGlmeV9ucyhuLCByZXEsIGZhbHNlKTsN Cj4gPiArICAgIGNhc2UgTlZNRV9JRF9DTlNfQ1NfTlNfUFJFU0VOVDoNCj4gPiArICAgICAgICBy ZXR1cm4gbnZtZV9pZGVudGlmeV9uc19jc2kobiwgcmVxLCBmYWxzZSk7DQo+ID4gICAgICBjYXNl IE5WTUVfSURfQ05TX0NUUkw6DQo+ID4gICAgICAgICAgcmV0dXJuIG52bWVfaWRlbnRpZnlfY3Ry bChuLCByZXEpOw0KPiA+ICAgICAgY2FzZSBOVk1FX0lEX0NOU19DU19DVFJMOg0KPiA+ICAgICAg ICAgIHJldHVybiBudm1lX2lkZW50aWZ5X2N0cmxfY3NpKG4sIHJlcSk7DQo+ID4gICAgICBjYXNl IE5WTUVfSURfQ05TX05TX0FDVElWRV9MSVNUOg0KPiA+IC0gICAgICAgIHJldHVybiBudm1lX2lk ZW50aWZ5X25zbGlzdChuLCByZXEpOw0KPiA+ICsgICAgICAgIHJldHVybiBudm1lX2lkZW50aWZ5 X25zbGlzdChuLCByZXEsIHRydWUpOw0KPiA+ICAgICAgY2FzZSBOVk1FX0lEX0NOU19DU19OU19B Q1RJVkVfTElTVDoNCj4gPiAtICAgICAgICByZXR1cm4gbnZtZV9pZGVudGlmeV9uc2xpc3RfY3Np KG4sIHJlcSk7DQo+ID4gKyAgICAgICAgcmV0dXJuIG52bWVfaWRlbnRpZnlfbnNsaXN0X2NzaShu LCByZXEsIHRydWUpOw0KPiA+ICsgICAgY2FzZSBOVk1FX0lEX0NOU19OU19QUkVTRU5UX0xJU1Q6 DQo+ID4gKyAgICAgICAgcmV0dXJuIG52bWVfaWRlbnRpZnlfbnNsaXN0KG4sIHJlcSwgZmFsc2Up Ow0KPiA+ICsgICAgY2FzZSBOVk1FX0lEX0NOU19DU19OU19QUkVTRU5UX0xJU1Q6DQo+ID4gKyAg ICAgICAgcmV0dXJuIG52bWVfaWRlbnRpZnlfbnNsaXN0X2NzaShuLCByZXEsIGZhbHNlKTsNCj4g PiAgICAgIGNhc2UgTlZNRV9JRF9DTlNfTlNfREVTQ1JfTElTVDoNCj4gPiAgICAgICAgICByZXR1 cm4gbnZtZV9pZGVudGlmeV9uc19kZXNjcl9saXN0KG4sIHJlcSk7DQo+ID4gICAgICBjYXNlIE5W TUVfSURfQ05TX0lPX0NPTU1BTkRfU0VUOg0KPiA+IEBAIC0yMTg4LDggKzIyMTQsMTAgQEAgc3Rh dGljIHZvaWQgbnZtZV9jbGVhcl9jdHJsKE52bWVDdHJsICpuKQ0KPiA+ICANCj4gPiAgc3RhdGlj IGludCBudm1lX3N0YXJ0X2N0cmwoTnZtZUN0cmwgKm4pDQo+ID4gIHsNCj4gPiArICAgIE52bWVO YW1lc3BhY2UgKm5zOw0KPiA+ICAgICAgdWludDMyX3QgcGFnZV9iaXRzID0gTlZNRV9DQ19NUFMo bi0+YmFyLmNjKSArIDEyOw0KPiA+ICAgICAgdWludDMyX3QgcGFnZV9zaXplID0gMSA8PCBwYWdl X2JpdHM7DQo+ID4gKyAgICBpbnQgaTsNCj4gPiAgDQo+ID4gICAgICBpZiAodW5saWtlbHkobi0+ Y3FbMF0pKSB7DQo+ID4gICAgICAgICAgdHJhY2VfcGNpX252bWVfZXJyX3N0YXJ0ZmFpbF9jcSgp Ow0KPiA+IEBAIC0yMjc2LDYgKzIzMDQsMjIgQEAgc3RhdGljIGludCBudm1lX3N0YXJ0X2N0cmwo TnZtZUN0cmwgKm4pDQo+ID4gICAgICBudm1lX2luaXRfc3EoJm4tPmFkbWluX3NxLCBuLCBuLT5i YXIuYXNxLCAwLCAwLA0KPiA+ICAgICAgICAgICAgICAgICAgIE5WTUVfQVFBX0FTUVMobi0+YmFy LmFxYSkgKyAxKTsNCj4gPiAgDQo+ID4gKyAgICBmb3IgKGkgPSAxOyBpIDw9IG4tPm51bV9uYW1l c3BhY2VzOyBpKyspIHsNCj4gPiArICAgICAgICBucyA9IG52bWVfbnMobiwgaSk7DQo+ID4gKyAg ICAgICAgaWYgKCFucykgew0KPiA+ICsgICAgICAgICAgICBjb250aW51ZTsNCj4gPiArICAgICAg ICB9DQo+ID4gKyAgICAgICAgbnMtPnBhcmFtcy5hdHRhY2hlZCA9IGZhbHNlOw0KPiA+ICsgICAg ICAgIHN3aXRjaCAobnMtPnBhcmFtcy5jc2kpIHsNCj4gPiArICAgICAgICBjYXNlIE5WTUVfQ1NJ X05WTToNCj4gPiArICAgICAgICAgICAgaWYgKE5WTUVfQ0NfQ1NTKG4tPmJhci5jYykgPT0gQ1NT X05WTV9PTkxZIHx8DQo+ID4gKyAgICAgICAgICAgICAgICBOVk1FX0NDX0NTUyhuLT5iYXIuY2Mp ID09IENTU19DU0kpIHsNCj4gPiArICAgICAgICAgICAgICAgIG5zLT5wYXJhbXMuYXR0YWNoZWQg PSB0cnVlOw0KPiA+ICsgICAgICAgICAgICB9DQo+ID4gKyAgICAgICAgICAgIGJyZWFrOw0KPiA+ ICsgICAgICAgIH0NCj4gPiArICAgIH0NCj4gPiArDQo+IA0KPiBDb25zaWRlcmluZyB0aGF0IHRo ZSBjb250cm9sbGVyIGRvZXNuJ3QgYXR0YWNoL2RldGFjaA0KPiBuYW1lc3BhY2VzIGJlbG9uZ2lu ZyB0byBjb21tYW5kIHNldHMgdGhhdCBpdCBkb2Vzbid0DQo+IHN1cHBvcnQsIEkgdGhpbmsgYSBu aWNlciB3YXkgaXMgdG8gcmVtb3ZlIHRoaXMgZm9yLWxvb3AsDQo+IGFuZCBpbnN0ZWFkLCBpbiBu dm1lX25zX3NldHVwKCkgb3IgbnZtZV9uc19pbml0KCksDQo+IGFsd2F5cyBzZXQgYXR0YWNoZWQg PSB0cnVlLiAoU2luY2Ugd2UgY3VycmVudGx5IGRvbid0DQo+IHN1cHBvcnQgbmFtZXNwYWNlIGF0 dGFjaG1lbnQgY29tbWFuZCkuDQo+IA0KPiBUaGUgcGVyc29uIHRoYXQgaW1wbGVtZW50cyB0aGUg bGFzdCBwaWVjZSBvZiBuYW1lc3BhY2UNCj4gbWFuYWdlbWVudCBhbmQgbmFtZXNwYWNlIGF0dGFj aG1lbnQgd2lsbCBoYXZlIHRvIGRlYWwNCj4gd2l0aCByZWFkaW5nICJhdHRhY2hlZCIgZnJvbSBz b21lIGtpbmQgb2YgcGVyc2lzdGVudCBzdGF0ZQ0KDQoNCkkgZGlkIHNvbWUgc3BlYyByZWFkaW5n IG9uIHRoaXMgdG9waWMgYW5kIGl0IHNlZW1zIHRoYXQNCnRoaXMgbG9naWMgaXMgbmVjZXNzYXJ5 IHByZWNpc2VseSBiZWNhdXNlIHRoZXJlIGlzIG5vDQphdHRhY2gvZGV0YWNoIGNvbW1hbmQgYXZh aWxhYmxlLiBTdWNoIGEgY29tbWFuZCB3b3VsZA0KcHJldmVudCBhdHRhY2htZW50IG9mIGEgem9u ZWQgbmFtZXNwYWNlIGlmIENDLkNTUyBpcw0KTlZNX09OTFksIHJpZ2h0PyBCdXQgc2luY2Ugd2Ug aGF2ZSBhIHN0YXRpYyBjb25maWcsIHdlDQpuZWVkIHRvIGRvIHRoaXMgSU1PLg0KDQpBbHNvLCA2 LjEuNSBvZiB0aGUgc3BlYyBzYXlzIHRoYXQgYW55IG9wZXJhdGlvbiB0aGF0IHVzZXMNCmFuIGlu YWN0aXZlIE5TSUQgc2hhbGwgZmFpbCB3aXRoIEludmFsaWQgRmllbGQuIEkgYW0NCmFkZGluZyBh IGZldyBiaXRzIHRvIGZhaWwgYWxsIGkvbyBjb21tYW5kcyBhbmQgc2V0L2dldA0KZmVhdHVyZXMg YXR0ZW1wdGVkIG9uIGluYWN0aXZlIG5hbWVzcGFjZXMuDQoNCj4gYW5kIHNldHRpbmcgaXQgYWNj b3JkaW5nbHkuDQo+IA0KPiA+ICAgICAgbnZtZV9zZXRfdGltZXN0YW1wKG4sIDBVTEwpOw0KPiA+ ICANCj4gPiAgICAgIFFUQUlMUV9JTklUKCZuLT5hZXJfcXVldWUpOw0KPiA+IGRpZmYgLS1naXQg YS9pbmNsdWRlL2Jsb2NrL252bWUuaCBiL2luY2x1ZGUvYmxvY2svbnZtZS5oDQo+ID4gaW5kZXgg NDU4NzMxMTc4My4uYjE4MmZlNDBiMiAxMDA2NDQNCj4gPiAtLS0gYS9pbmNsdWRlL2Jsb2NrL252 bWUuaA0KPiA+ICsrKyBiL2luY2x1ZGUvYmxvY2svbnZtZS5oDQo+ID4gQEAgLTgwNCwxNCArODA0 LDE4IEBAIHR5cGVkZWYgc3RydWN0IFFFTVVfUEFDS0VEIE52bWVQU0Qgew0KPiA+ICAjZGVmaW5l IE5WTUVfSURFTlRJRllfREFUQV9TSVpFIDQwOTYNCj4gPiAgDQo+ID4gIGVudW0gTnZtZUlkQ25z IHsNCj4gPiAtICAgIE5WTUVfSURfQ05TX05TICAgICAgICAgICAgICAgID0gMHgwMCwNCj4gPiAt ICAgIE5WTUVfSURfQ05TX0NUUkwgICAgICAgICAgICAgID0gMHgwMSwNCj4gPiAtICAgIE5WTUVf SURfQ05TX05TX0FDVElWRV9MSVNUICAgID0gMHgwMiwNCj4gPiAtICAgIE5WTUVfSURfQ05TX05T X0RFU0NSX0xJU1QgICAgID0gMHgwMywNCj4gPiAtICAgIE5WTUVfSURfQ05TX0NTX05TICAgICAg ICAgICAgID0gMHgwNSwNCj4gPiAtICAgIE5WTUVfSURfQ05TX0NTX0NUUkwgICAgICAgICAgID0g MHgwNiwNCj4gPiAtICAgIE5WTUVfSURfQ05TX0NTX05TX0FDVElWRV9MSVNUID0gMHgwNywNCj4g PiAtICAgIE5WTUVfSURfQ05TX0lPX0NPTU1BTkRfU0VUICAgID0gMHgxYywNCj4gPiArICAgIE5W TUVfSURfQ05TX05TICAgICAgICAgICAgICAgICAgICA9IDB4MDAsDQo+ID4gKyAgICBOVk1FX0lE X0NOU19DVFJMICAgICAgICAgICAgICAgICAgPSAweDAxLA0KPiA+ICsgICAgTlZNRV9JRF9DTlNf TlNfQUNUSVZFX0xJU1QgICAgICAgID0gMHgwMiwNCj4gPiArICAgIE5WTUVfSURfQ05TX05TX0RF U0NSX0xJU1QgICAgICAgICA9IDB4MDMsDQo+ID4gKyAgICBOVk1FX0lEX0NOU19DU19OUyAgICAg ICAgICAgICAgICAgPSAweDA1LA0KPiA+ICsgICAgTlZNRV9JRF9DTlNfQ1NfQ1RSTCAgICAgICAg ICAgICAgID0gMHgwNiwNCj4gPiArICAgIE5WTUVfSURfQ05TX0NTX05TX0FDVElWRV9MSVNUICAg ICA9IDB4MDcsDQo+ID4gKyAgICBOVk1FX0lEX0NOU19OU19QUkVTRU5UX0xJU1QgICAgICAgPSAw eDEwLA0KPiA+ICsgICAgTlZNRV9JRF9DTlNfTlNfUFJFU0VOVCAgICAgICAgICAgID0gMHgxMSwN Cj4gPiArICAgIE5WTUVfSURfQ05TX0NTX05TX1BSRVNFTlRfTElTVCAgICA9IDB4MWEsDQo+ID4g KyAgICBOVk1FX0lEX0NOU19DU19OU19QUkVTRU5UICAgICAgICAgPSAweDFiLA0KPiA+ICsgICAg TlZNRV9JRF9DTlNfSU9fQ09NTUFORF9TRVQgICAgICAgID0gMHgxYywNCj4gPiAgfTsNCj4gPiAg DQo+ID4gIHR5cGVkZWYgc3RydWN0IFFFTVVfUEFDS0VEIE52bWVJZEN0cmwgew0KPiA+IC0tIA0K PiA+IDIuMjEuMA0K