From nobody Wed Jun 21 21:48:04 2023 X-Original-To: freebsd-arm@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QmcYw6XY0z4g04M for ; Wed, 21 Jun 2023 21:48:04 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QmcYw63RVz3G5X; Wed, 21 Jun 2023 21:48:04 +0000 (UTC) (envelope-from daemon-user@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1687384084; h=from:from:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references; bh=liOXiG7FaKHLGvcXmkx9kHXPd7NGCFBW7bty31K9JHc=; b=Xo7DrAyidqUkcz4eWDrl7NCvSaHiKeV1PI0RH7KRwRgl51hKs7KNH5l5IMu4Nhiu7zknMY o3B60idLnrRNJ3fgg7t/NoHPjU3E/BynZsof7Hs6X9PChlt+nzPEETTbi/ngYDk+NoXOj9 D8ILl2thwxHn8LgYnl/upAFhrBRU2I1JuLOXtTtcX0SElbEjGO9fdhDXHf+EUN64utIA1d /FfrWwoPQ2Ybw7fBySYmMnsBtj8CekCXf2+QxORN0883X2ffXNc7fILzuS7yRPXfu/noxb z/3kj5tydAT+bz7pBReC/bOvo3ArXWI8p0TGysUX+LfBSQHM0tJdjawukUgT+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1687384084; h=from:from:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references; bh=liOXiG7FaKHLGvcXmkx9kHXPd7NGCFBW7bty31K9JHc=; b=VDD4NvJRY2wszkW8FGdo/A3FEySkO8pCzWACnbaCngVxJVxOuZiGzrtVbWF7B11IHIRKKV YjiWumlQEVn7gqHxww0jBH3UGrN1/zRYRLl3OLAnVtRpntY9Ru08jL0Q8jhai2AtqtHQVF c3c9rSHJAS5Wh7prbVFwb0IaSXnyUMHVejKczoPGAWd8zL+msFglAH/iUL0hQ8JvABp9Ep pKpSvMr9/HgWO5fs5k8pqq4v/Ti+UGoadv/dDcEFkAGLrZ3RgQL7N2JFaRYmQqgXNmID51 GAPTSjAO3vPWr+LbWEdktoV+YWWtjl/uJtdOQnWWeLgNnb1SaUEkeykx9EhueQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1687384084; a=rsa-sha256; cv=none; b=B1RWsx4DomAwxWcp2aupnrzqf77kyBBWmKvN59VRdEj71rsYXTltFIyzH3LKf8Xxiz5BCD z1FLfc7PPq2PCAgjPPwe7MT42qFAc1TiUlTuedpEr6QJaEDXSqoTcklHxSGfMtk8fJwwJq yZLsDsXtRvFBYKnABcwKgRDa8ttxZOgbHkZifJNma7pm4XPwXMcWmDz7ok208iyCUmVDgZ XBa9bVo6knV15cfk3sAm0oSLJBIdMGtK70OsBqHwI0F0IK8nZtu31hLb0aUWsv3t35qc8n nsoq87CWcAVPALhY9BeAHELUfLwwYjMyxGeWmb3XdvS6dJ+Mi0V6x1Yl3iP3qw== Received: from reviews.nyi.freebsd.org (reviews.nyi.freebsd.org [IPv6:2610:1c1:1:606c::16:b]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4QmcYw51bNzxts; Wed, 21 Jun 2023 21:48:04 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: by reviews.nyi.freebsd.org (Postfix, from userid 1346) id A6C3D4DDD3; Wed, 21 Jun 2023 21:48:04 +0000 (UTC) Date: Wed, 21 Jun 2023 21:48:04 +0000 To: Phabricator From: "titus_edc.ro (Titus Manea)" Cc: freebsd-arm@freebsd.org Reply-to: "titus_edc.ro (Titus Manea)" Subject: [Differential] D40712: support for rockchip rk3308 Message-ID: <2bc950834f67f1a6052aa5beb181610b@localhost.localdomain> X-Priority: 3 X-Phabricator-Sent-This-Message: Yes X-Mail-Transport-Agent: MetaMTA X-Auto-Response-Suppress: All X-Phabricator-Mail-Tags: , , , X-Herald-Rules: <31>, <32>, <34>, <101>, <135>, <177> X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: Precedence: bulk Thread-Topic: PHID-DREV-g5cpfnen4oxe6xbvnfzk X-Phabricator-Mail-ID: 3925626 X-Phabricator-Send-Attempt: 2rizij7kdhuaupf5 In-Reply-To: References: Thread-Index: MDU4M2UyYzdkODk1NTA5N2VmYWE2OGMxOTI5IGSTcBQ= X-Phabricator-Stamps: actor(@titus_edc.ro) application(Differential) author(@titus_edc.ro) herald(H31) herald(H32) herald(H34) herald(H101) herald(H135) herald(H177) monogram(D40712) object-type(DREV) phid(PHID-DREV-g5cpfnen4oxe6xbvnfzk) reviewer(#arm64) reviewer(@andrew) reviewer(@manu) revision-status(needs-review) subscriber(@andrew) subscriber(@emaste) subscriber(@freebsd-arm-list) via(web) List-Id: Porting FreeBSD to ARM processors List-Archive: https://lists.freebsd.org/archives/freebsd-arm List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-arm@freebsd.org MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_2bc950834f67f1a6052aa5beb181610b" X-ThisMailContainsUnwantedMimeParts: N --b1_2bc950834f67f1a6052aa5beb181610b Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: base64 dGl0dXNfZWRjLnJvIGNyZWF0ZWQgdGhpcyByZXZpc2lvbi4KdGl0dXNfZWRjLnJvIGFkZGVkIGEg cmV2aWV3ZXI6IGFybTY0LgpIZXJhbGQgYWRkZWQgYSByZXZpZXdlcjogYW5kcmV3LgpIZXJhbGQg YWRkZWQgYSByZXZpZXdlcjogYW5kcmV3LgpIZXJhbGQgYWRkZWQgc3Vic2NyaWJlcnM6IGFuZHJl dywgZW1hc3RlLgpIZXJhbGQgYWRkZWQgYSByZXZpZXdlcjogbWFudS4KSGVyYWxkIGFkZGVkIGEg cmV2aWV3ZXI6IG1hbnUuCnRpdHVzX2VkYy5ybyByZXF1ZXN0ZWQgcmV2aWV3IG9mIHRoaXMgcmV2 aXNpb24uCgpSRVZJU0lPTiBTVU1NQVJZCiAgcm9ja2NoaXAtcyBpcyBwcm9iYWJseSB0aGUgY2hl YXBlc3QgYXJtNjQgYm9hcmQKICB1c2IsIHNkY2FyZCwgZXRoZXJuZXQsIHVhcnQgd29yawogIG1v c3Qgb2YgdGhlIGNoYW5nZXMgYXJlIHBvcnRlZCBmcm9tIGxpbnV4IGFuZCBvcGVuYnNkCiAgdGhl IHJrMzMwOF9jcnUuYyBmaWxlIGlzIGJhc2ljYWxseSBnZW5lcmF0ZWQgd2l0aCBhIHNldCBvZiBj b252ZXJzaW9uIGNwcCBtYWNyb3MgKGNvbnZlcnQgbGludXggbWFjcm9zIHRvIGZyZWVic2QgbWFj cm9zKQogIHRoZSByZWd1bGF0b3ItcHdtIGlzIGNydWRlIGFuZCBvbmx5IHN1cHBvcnRzIGNvbnRp bnVvdXMgbW9kZQogIHNldHRpbmcgY3B1IGZyZXF1ZW5jeSB3b3JrcwogIHRlbXBlcmF0dXJlIHJl YWRpbmcgd29ya3MKICBldGhlcm5ldCBtZWRpYSBhdXRvc2VsZWN0IGRvZXMgbm90IHdvcmsKICB3 aXRoIG9sZGVyIHUtYm9vdCAyMDE3IGV0aGVybmV0IGRvZXMgbm90IHdvcmsgKHBoeSByZWd1bGF0 b3Igc2VlbXMgZG93bikKClRFU1QgUExBTgogIHlvdSBuZWVkIHRvIGJ1aWxkIHUtYm9vdCBmcm9t IGdpdCB3aXRoIHJvY2stcGktcy1yazMzMDhfZGVmY29uZmlnICsgRUZJIHN1cHBvcnQKICBwcmVs b2FkZXIgYW5kIHRydXN0LmltZyBhcmUgZnJvbSByb2NrY2hpcCAodGhlcmUgaXMgbm8gcHVibGlj IHNvdXJjZSBjb2RlIGZvciBibDMxKSwgdGhlbiB1c2UgcmstbG9hZGVyaW1hZ2UgKHBvcnRzKSB0 byBjb252ZXJ0IHUtYm9vdC1kdGIuYmluIGludG8gdS1ib290LmltZwogIGkgYnVpbHQgYSAxMy54 IGtlcm5lbCBhbmQgaXQgd29ya3MgKGFsbCB0aGUgZmlsZXMgaW4gdGhlIGRpZmYgYXJlIGZyb20g LUNVUlJFTlQgYnV0IHRoZXkgYXJlIG1vc3RseSB0aGUgc2FtZSBhcyAxMy4yICkKICB1LWJvb3Qg YmluYXJpZXMgYXZhaWxhYmxlIGhlcmUgbGluayA8aHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2Zp bGUvZC8xNmp3WHRSbzdibUhleGgtVlR6Nk9kalYyZmtINElIZ1gvdmlldz4KICBkaXNrIGxheW91 dCBpcyBzaW1pbGFyIHRvIG90aGVyIHJvY2tjaGlwIHNiY3MsIHlvdSBuZWVkICAxNk1CIG9mIGVt cHR5IHNwYWNlIGJlZm9yZSB0aGUgZmlyc3QvZWZpIHBhcnRpdGlvbgoKUkVWSVNJT04gREVUQUlM CiAgaHR0cHM6Ly9yZXZpZXdzLmZyZWVic2Qub3JnL0Q0MDcxMgoKQUZGRUNURUQgRklMRVMKICBz eXMvYXJtNjQvY29uZi9zdGQucm9ja2NoaXAKICBzeXMvYXJtNjQvcm9ja2NoaXAvY2xrL3JrMzMw OF9jcnUuYwogIHN5cy9hcm02NC9yb2NrY2hpcC9pZl9kd2NfcmsuYwogIHN5cy9hcm02NC9yb2Nr Y2hpcC9ya19ncmYuYwogIHN5cy9hcm02NC9yb2NrY2hpcC9ya19waW5jdHJsLmMKICBzeXMvYXJt NjQvcm9ja2NoaXAvcmtfcHdtLmMKICBzeXMvYXJtNjQvcm9ja2NoaXAvcmtfc3BpLmMKICBzeXMv YXJtNjQvcm9ja2NoaXAvcmtfdHNhZGMuYwogIHN5cy9hcm02NC9yb2NrY2hpcC9ya191c2IycGh5 LmMKICBzeXMvY29uZi9maWxlcwogIHN5cy9jb25mL2ZpbGVzLmFybTY0CiAgc3lzL2Rldi9leHRy ZXMvcmVndWxhdG9yL3JlZ3VsYXRvcl9wd20uYwogIHN5cy9kZXYvZXh0cmVzL3JlZ3VsYXRvci9y ZWd1bGF0b3JfcHdtLmgKCkVNQUlMIFBSRUZFUkVOQ0VTCiAgaHR0cHM6Ly9yZXZpZXdzLmZyZWVi c2Qub3JnL3NldHRpbmdzL3BhbmVsL2VtYWlscHJlZmVyZW5jZXMvCgpUbzogdGl0dXNfZWRjLnJv LCAjYXJtNjQsIGFuZHJldywgbWFudQpDYzogZW1hc3RlLCBmcmVlYnNkLWFybS1saXN0LCBhbmRy ZXcK --b1_2bc950834f67f1a6052aa5beb181610b Content-Type: text/x-patch; charset=utf-8; name="D40712.123644.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D40712.123644.patch" ZGlmZiAtLWdpdCBhL3N5cy9kZXYvZXh0cmVzL3JlZ3VsYXRvci9yZWd1bGF0b3JfcHdtLmggYi9z eXMvZGV2L2V4dHJlcy9yZWd1bGF0b3IvcmVndWxhdG9yX3B3bS5oCm5ldyBmaWxlIG1vZGUgMTAw NjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL2Rldi9leHRyZXMvcmVndWxhdG9yL3JlZ3VsYXRv cl9wd20uaApAQCAtMCwwICsxLDE2IEBACisjaWZuZGVmIF9ERVZfRVhUUkVTX1JFR1VMQVRPUl9Q V01fSF8KKyNkZWZpbmUgX0RFVl9FWFRSRVNfUkVHVUxBVE9SX1BXTV9IXworCisjaW5jbHVkZSA8 ZGV2L2dwaW8vZ3Bpb2J1c3Zhci5oPgorI2luY2x1ZGUgPGRldi9leHRyZXMvcmVndWxhdG9yL3Jl Z3VsYXRvci5oPgorCitzdHJ1Y3QgcmVnbm9kZV9wd21faW5pdF9kZWYgeworCXN0cnVjdCByZWdu b2RlX2luaXRfZGVmCXJlZ19pbml0X2RlZjsKKwlib29sCQkJZ3Bpb19vcGVuX2RyYWluOworCXN0 cnVjdCBncGlvYnVzX3BpbgkqZ3Bpb19waW47Cit9OworCitpbnQgcmVnbm9kZV9wd21fcmVnaXN0 ZXIoZGV2aWNlX3QgZGV2LAorICAgIHN0cnVjdCByZWdub2RlX3B3bV9pbml0X2RlZiAqaW5pdF9k ZWYpOworCisjZW5kaWYgLypfREVWX0VYVFJFU19SRUdVTEFUT1JfUFdNX0hfKi8KZGlmZiAtLWdp dCBhL3N5cy9kZXYvZXh0cmVzL3JlZ3VsYXRvci9yZWd1bGF0b3JfcHdtLmMgYi9zeXMvZGV2L2V4 dHJlcy9yZWd1bGF0b3IvcmVndWxhdG9yX3B3bS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci0tLSAv ZGV2L251bGwKKysrIGIvc3lzL2Rldi9leHRyZXMvcmVndWxhdG9yL3JlZ3VsYXRvcl9wd20uYwpA QCAtMCwwICsxLDU2MCBAQAorI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgorX19GQlNESUQoIiRGcmVl QlNEJCIpOworCisjaW5jbHVkZSAib3B0X3BsYXRmb3JtLmgiCisjaW5jbHVkZSA8c3lzL3BhcmFt Lmg+CisjaW5jbHVkZSA8c3lzL2NvbmYuaD4KKyNpbmNsdWRlIDxzeXMvZ3Bpby5oPgorI2luY2x1 ZGUgPHN5cy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMva29iai5oPgorI2luY2x1ZGUgPHN5cy9z eXN0bS5oPgorI2luY2x1ZGUgPHN5cy9tb2R1bGUuaD4KKyNpbmNsdWRlIDxzeXMvbXV0ZXguaD4K KworI2lmZGVmIEZEVAorI2luY2x1ZGUgPGRldi9mZHQvZmR0X2NvbW1vbi5oPgorI2luY2x1ZGUg PGRldi9vZncvb2Z3X2J1cy5oPgorI2luY2x1ZGUgPGRldi9vZncvb2Z3X2J1c19zdWJyLmg+Cisj aW5jbHVkZSAicHdtYnVzX2lmLmgiCisjZW5kaWYKKyNpbmNsdWRlIDxkZXYvZ3Bpby9ncGlvYnVz dmFyLmg+CisjaW5jbHVkZSA8ZGV2L3B3bS9wd21idXMuaD4KKyNpbmNsdWRlIDxkZXYvZXh0cmVz L3JlZ3VsYXRvci9yZWd1bGF0b3JfcHdtLmg+CisKKyNpbmNsdWRlICJyZWdkZXZfaWYuaCIKKwor TUFMTE9DX0RFRklORShNX1BXTVJFR1VMQVRPUiwgInB3bXJlZ3VsYXRvciIsICJQV00gcmVndWxh dG9yIik7CisKKy8qIEdQSU8gbGlzdCBmb3Igc2hhcmVkIHBpbnMuICovCit0eXBlZGVmIFRBSUxR X0hFQUQoZ3Bpb19saXN0LCBncGlvX2VudHJ5KSBncGlvX2xpc3RfdDsKK3N0cnVjdCBncGlvX2Vu dHJ5IHsKKwlUQUlMUV9FTlRSWShncGlvX2VudHJ5KQlsaW5rOworCXN0cnVjdCBncGlvYnVzX3Bp bglncGlvX3BpbjsKKwlpbnQgCQkJdXNlX2NudDsKKwlpbnQgCQkJZW5hYmxlX2NudDsKKwlib29s CQkJYWx3YXlzX29uOworfTsKK3N0YXRpYyBncGlvX2xpc3RfdCBncGlvX2xpc3QgPSBUQUlMUV9I RUFEX0lOSVRJQUxJWkVSKGdwaW9fbGlzdCk7CitzdGF0aWMgc3RydWN0IG10eCBncGlvX2xpc3Rf bXR4OworTVRYX1NZU0lOSVQoZ3Bpb19saXN0X2xvY2ssICZncGlvX2xpc3RfbXR4LCAiUmVndWxh dG9yIEdQSU8gbG9jayIsIE1UWF9ERUYpOworCitzdHJ1Y3QgcmVnbm9kZV9wd21fc2MgeworCXN0 cnVjdCByZWdub2RlX3N0ZF9wYXJhbSAqcGFyYW07CisJYm9vbAkJCWdwaW9fb3Blbl9kcmFpbjsK KwlzdHJ1Y3QgZ3Bpb19lbnRyeQkqZ3Bpb19lbnRyeTsKK307CisKK3N0YXRpYyBpbnQgcmVnbm9k ZV9wd21faW5pdChzdHJ1Y3QgcmVnbm9kZSAqcmVnbm9kZSk7CitzdGF0aWMgaW50IHJlZ25vZGVf cHdtX2VuYWJsZShzdHJ1Y3QgcmVnbm9kZSAqcmVnbm9kZSwgYm9vbCBlbmFibGUsCisgICAgaW50 ICp1ZGVsYXkpOworc3RhdGljIGludCByZWdub2RlX3B3bV9zdGF0dXMoc3RydWN0IHJlZ25vZGUg KnJlZ25vZGUsIGludCAqc3RhdHVzKTsKK3N0YXRpYyBpbnQgcmVnbm9kZV9wd21fc3RvcChzdHJ1 Y3QgcmVnbm9kZSAqcmVnbm9kZSwgaW50ICp1ZGVsYXkpOworc3RhdGljIGludCByZWdub2RlX3B3 bV9nZXRfdm9sdGFnZShzdHJ1Y3QgcmVnbm9kZSAqcmVnbm9kZSwgaW50ICp1dm9sdCk7CitzdGF0 aWMgaW50IHJlZ25vZGVfcHdtX3NldF92b2x0YWdlKHN0cnVjdCByZWdub2RlICpyZWdub2RlLCBp bnQgbWluX3V2b2x0LCBpbnQgbWF4X3V2b2x0LGludCAqdWRlbGF5KTsKKworc3RhdGljIHJlZ25v ZGVfbWV0aG9kX3QgcmVnbm9kZV9wd21fbWV0aG9kc1tdID0geworCS8qIFJlZ3VsYXRvciBpbnRl cmZhY2UgKi8KKwlSRUdOT0RFTUVUSE9EKHJlZ25vZGVfaW5pdCwJCXJlZ25vZGVfcHdtX2luaXQp LAorCVJFR05PREVNRVRIT0QocmVnbm9kZV9lbmFibGUsCQlyZWdub2RlX3B3bV9lbmFibGUpLAor CVJFR05PREVNRVRIT0QocmVnbm9kZV9zdGF0dXMsCQlyZWdub2RlX3B3bV9zdGF0dXMpLAorCVJF R05PREVNRVRIT0QocmVnbm9kZV9zdG9wLAkJcmVnbm9kZV9wd21fc3RvcCksCisJUkVHTk9ERU1F VEhPRChyZWdub2RlX2dldF92b2x0YWdlLAlyZWdub2RlX3B3bV9nZXRfdm9sdGFnZSksCisJUkVH Tk9ERU1FVEhPRChyZWdub2RlX3NldF92b2x0YWdlLAlyZWdub2RlX3B3bV9zZXRfdm9sdGFnZSks CQorCVJFR05PREVNRVRIT0QocmVnbm9kZV9jaGVja192b2x0YWdlLAlyZWdub2RlX21ldGhvZF9j aGVja192b2x0YWdlKSwKKwlSRUdOT0RFTUVUSE9EX0VORAorfTsKK0RFRklORV9DTEFTU18xKHJl Z25vZGVfcHdtLCByZWdub2RlX3B3bV9jbGFzcywgcmVnbm9kZV9wd21fbWV0aG9kcywKKyAgIHNp emVvZihzdHJ1Y3QgcmVnbm9kZV9wd21fc2MpLCByZWdub2RlX2NsYXNzKTsKKworLyoKKyAqIEdQ SU8gbGlzdCBmdW5jdGlvbnMuCisgKiBUd28gb3IgbW9yZSByZWd1bGF0b3JzIGNhbiBzaGFyZSBz aW5nbGUgR1BJTyBwaW5zLCBzbyB3ZSBtdXN0IHRyYWNrIGFsbAorICogR1BJT3MgaW4gZ3Bpb19s aXN0LgorICogVGhlIEdQSU8gcGluIGlzIHJlZ2lzdGVyZCBhbmQgcmVzZXZlZCBmb3IgZmlyc3Qg Y29uc3VtZXIsIGFsbCBvdGhlcnMgc2hhcmUKKyAqIGdwaW9fZW50cnkgd2l0aCBpdC4KKyAqLwor c3RhdGljIHN0cnVjdCBncGlvX2VudHJ5ICoKK3JlZ25vZGVfZ2V0X2dwaW9fZW50cnkoc3RydWN0 IGdwaW9idXNfcGluICpncGlvX3BpbikKK3sKKwlzdHJ1Y3QgZ3Bpb19lbnRyeSAqZW50cnksICp0 bXA7CisJZGV2aWNlX3QgYnVzZGV2OworCWludCBydjsKKworCWJ1c2RldiA9IEdQSU9fR0VUX0JV UyhncGlvX3Bpbi0+ZGV2KTsKKwlpZiAoYnVzZGV2ID09IE5VTEwpCisJCXJldHVybiAoTlVMTCk7 CisJZW50cnkgPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCBncGlvX2VudHJ5KSwgTV9QV01SRUdVTEFU T1IsCisJICAgIE1fV0FJVE9LIHwgTV9aRVJPKTsKKworCW10eF9sb2NrKCZncGlvX2xpc3RfbXR4 KTsKKworCVRBSUxRX0ZPUkVBQ0godG1wLCAmZ3Bpb19saXN0LCBsaW5rKSB7CisJCWlmICh0bXAt PmdwaW9fcGluLmRldiA9PSBncGlvX3Bpbi0+ZGV2ICYmCisJCSAgICB0bXAtPmdwaW9fcGluLnBp biA9PSBncGlvX3Bpbi0+cGluKSB7CisJCQl0bXAtPnVzZV9jbnQrKzsKKwkJCW10eF91bmxvY2so JmdwaW9fbGlzdF9tdHgpOworCQkJZnJlZShlbnRyeSwgTV9QV01SRUdVTEFUT1IpOworCQkJcmV0 dXJuICh0bXApOworCQl9CisJfQorCisJLyogUmVzZXJ2ZSBwaW4uICovCisJLyogWFhYIENhbiB3 ZSBjYWxsIGdwaW9idXNfYWNxdWlyZV9waW4oKSB3aXRoIGdwaW9fbGlzdF9tdHggaGVsZD8gKi8K KwlydiA9IGdwaW9idXNfYWNxdWlyZV9waW4oYnVzZGV2LCBncGlvX3Bpbi0+cGluKTsKKwlpZiAo cnYgIT0gMCkgeworCQltdHhfdW5sb2NrKCZncGlvX2xpc3RfbXR4KTsKKwkJZnJlZShlbnRyeSwg TV9QV01SRUdVTEFUT1IpOworCQlyZXR1cm4gKE5VTEwpOworCX0KKwkvKiBFdmVyeXRoaW5nIGlz IE9LLCBidWlsZCBuZXcgZW50cnkgYW5kIGluc2VydCBpdCB0byBsaXN0LiAqLworCWVudHJ5LT5n cGlvX3BpbiA9ICpncGlvX3BpbjsKKwllbnRyeS0+dXNlX2NudCA9IDE7CisJVEFJTFFfSU5TRVJU X1RBSUwoJmdwaW9fbGlzdCwgZW50cnksIGxpbmspOworCisJbXR4X3VubG9jaygmZ3Bpb19saXN0 X210eCk7CisJcmV0dXJuIChlbnRyeSk7Cit9CisKKyNpZmRlZiBGRFQKKyNpbmNsdWRlIDxkZXYv cHdtL29md19wd20uaD4KK3N0cnVjdCAgcmVncHdtX3NvZnRjCit7CisJZGV2aWNlX3QJCQlkZXY7 CisJYm9vbAkJCQlhdHRhY2hfZG9uZTsKKwlzdHJ1Y3QgcmVnbm9kZV9wd21faW5pdF9kZWYJaW5p dF9kZWY7CisJcGhhbmRsZV90CQkJZ3Bpb19wcm9keHJlZjsKKwlwY2VsbF90CQkJCSpncGlvX2Nl bGxzOworCWludAkJCQlncGlvX25jZWxsczsKKwlzdHJ1Y3QgZ3Bpb2J1c19waW4JCWdwaW9fcGlu OworCXB3bV9jaGFubmVsX3QgICAJCWNoYW5uZWw7CisJdWludDMyX3QJCQlzY19kdXR5Y3ljbGVf dW5pdDsKKwl1aW50MzJfdAkJCXNjX2R1dHljeWNsZV9yYW5nZVsyXTsKK307CisjZW5kaWYKKy8q CisgKiBSZWd1bGF0b3IgY2xhc3MgaW1wbGVtZW50YXRpb24uCisgKi8KK3N0YXRpYyBpbnQKK3Jl Z25vZGVfcHdtX2luaXQoc3RydWN0IHJlZ25vZGUgKnJlZ25vZGUpCit7CisJZGV2aWNlX3QgZGV2 OworCXN0cnVjdCByZWdub2RlX3B3bV9zYyAqc2M7CisJc3RydWN0IGdwaW9idXNfcGluICpwaW47 CisJdWludDMyX3QgZmxhZ3M7CisJaW50IHJ2OworCisJc2MgPSByZWdub2RlX2dldF9zb2Z0Yyhy ZWdub2RlKTsKKwlkZXYgPSByZWdub2RlX2dldF9kZXZpY2UocmVnbm9kZSk7CisJc2MtPnBhcmFt ID0gcmVnbm9kZV9nZXRfc3RkcGFyYW0ocmVnbm9kZSk7CisJaWYgKHNjLT5ncGlvX2VudHJ5ID09 IE5VTEwpCisJCXJldHVybiAoMCk7CisJcGluID0gJnNjLT5ncGlvX2VudHJ5LT5ncGlvX3BpbjsK KworCWZsYWdzID0gR1BJT19QSU5fT1VUUFVUOworCWlmIChzYy0+Z3Bpb19vcGVuX2RyYWluKQor CQlmbGFncyB8PSBHUElPX1BJTl9PUEVORFJBSU47CisJaWYgKHNjLT5wYXJhbS0+Ym9vdF9vbiB8 fCBzYy0+cGFyYW0tPmFsd2F5c19vbikgeworCQlydiA9IEdQSU9fUElOX1NFVChwaW4tPmRldiwg cGluLT5waW4sIHNjLT5wYXJhbS0+ZW5hYmxlX2FjdGl2ZV9oaWdoKTsKKwkJaWYgKHJ2ICE9IDAp IHsKKwkJCWRldmljZV9wcmludGYoZGV2LCAiQ2Fubm90IHNldCBHUElPIHBpbjogJWRcbiIsCisJ CQkgICAgcGluLT5waW4pOworCQkJcmV0dXJuIChydik7CisJCX0KKwl9CisKKwlydiA9IEdQSU9f UElOX1NFVEZMQUdTKHBpbi0+ZGV2LCBwaW4tPnBpbiwgZmxhZ3MpOworCWlmIChydiAhPSAwKSB7 CisJCWRldmljZV9wcmludGYoZGV2LCAiQ2Fubm90IGNvbmZpZ3VyZSBHUElPIHBpbjogJWRcbiIs IHBpbi0+cGluKTsKKwkJcmV0dXJuIChydik7CisJfQorCisJcmV0dXJuICgwKTsKK30KKworLyoK KyAqIEVuYWJsZS9kaXNhYmxlIHJlZ3VsYXRvci4KKyAqIFRha2Ugc2hhcmVkIEdQSU8gcGlucyBp biBhY2NvdW50CisgKi8KK3N0YXRpYyBpbnQKK3JlZ25vZGVfcHdtX2VuYWJsZShzdHJ1Y3QgcmVn bm9kZSAqcmVnbm9kZSwgYm9vbCBlbmFibGUsIGludCAqdWRlbGF5KQoreworCWRldmljZV90IGRl djsKKwlzdHJ1Y3QgcmVnbm9kZV9wd21fc2MgKnNjOworCXN0cnVjdCBncGlvYnVzX3BpbiAqcGlu OworCWludCBydjsKKworCXNjID0gcmVnbm9kZV9nZXRfc29mdGMocmVnbm9kZSk7CisJZGV2ID0g cmVnbm9kZV9nZXRfZGV2aWNlKHJlZ25vZGUpOworCisJKnVkZWxheSA9IDA7CisJaWYgKHNjLT5n cGlvX2VudHJ5ID09IE5VTEwpCisJCXJldHVybiAoMCk7CisJcGluID0gJnNjLT5ncGlvX2VudHJ5 LT5ncGlvX3BpbjsKKwlpZiAoZW5hYmxlKSB7CisJCXNjLT5ncGlvX2VudHJ5LT5lbmFibGVfY250 Kys7CisJCWlmIChzYy0+Z3Bpb19lbnRyeS0+ZW5hYmxlX2NudCA+IDEpCisJCQlyZXR1cm4gKDAp OworCX0gZWxzZSB7CisJCUtBU1NFUlQoc2MtPmdwaW9fZW50cnktPmVuYWJsZV9jbnQgPiAwLAor CQkgICAgKCJJbnZhbGlkIGVuYWJsZSBjb3VudCIpKTsKKwkJc2MtPmdwaW9fZW50cnktPmVuYWJs ZV9jbnQtLTsKKwkJaWYgKHNjLT5ncGlvX2VudHJ5LT5lbmFibGVfY250ID49IDEpCisJCQlyZXR1 cm4gKDApOworCX0KKwlpZiAoc2MtPmdwaW9fZW50cnktPmFsd2F5c19vbiAmJiAhZW5hYmxlKQor CQlyZXR1cm4gKDApOworCWlmICghc2MtPnBhcmFtLT5lbmFibGVfYWN0aXZlX2hpZ2gpCisJCWVu YWJsZSA9ICFlbmFibGU7CisJcnYgPSBHUElPX1BJTl9TRVQocGluLT5kZXYsIHBpbi0+cGluLCBl bmFibGUpOworCWlmIChydiAhPSAwKSB7CisJCWRldmljZV9wcmludGYoZGV2LCAiQ2Fubm90IHNl dCBHUElPIHBpbjogJWRcbiIsIHBpbi0+cGluKTsKKwkJcmV0dXJuIChydik7CisJfQorCSp1ZGVs YXkgPSBzYy0+cGFyYW0tPmVuYWJsZV9kZWxheTsKKwlyZXR1cm4gKDApOworfQorCisvKgorICog U3RvcCAocGh5c2ljYWx5IHNodXRkb3duKSByZWd1bGF0b3IuCisgKiBUYWtlIHNoYXJlZCBHUElP IHBpbnMgaW4gYWNjb3VudAorICovCitzdGF0aWMgaW50CityZWdub2RlX3B3bV9zdG9wKHN0cnVj dCByZWdub2RlICpyZWdub2RlLCBpbnQgKnVkZWxheSkKK3sKKwlkZXZpY2VfdCBkZXY7CisJc3Ry dWN0IHJlZ25vZGVfcHdtX3NjICpzYzsKKwlzdHJ1Y3QgZ3Bpb2J1c19waW4gKnBpbjsKKwlpbnQg cnY7CisKKwlzYyA9IHJlZ25vZGVfZ2V0X3NvZnRjKHJlZ25vZGUpOworCWRldiA9IHJlZ25vZGVf Z2V0X2RldmljZShyZWdub2RlKTsKKworCSp1ZGVsYXkgPSAwOworCWlmIChzYy0+Z3Bpb19lbnRy eSA9PSBOVUxMKQorCQlyZXR1cm4gKDApOworCWlmIChzYy0+Z3Bpb19lbnRyeS0+YWx3YXlzX29u KQorCQlyZXR1cm4gKDApOworCXBpbiA9ICZzYy0+Z3Bpb19lbnRyeS0+Z3Bpb19waW47CisJaWYg KHNjLT5ncGlvX2VudHJ5LT5lbmFibGVfY250ID4gMCkgeworCQkvKiBPdGhlciByZWd1bGF0b3Io cykgYXJlIGVuYWJsZWQuICovCisJCS8qIFhYWFggQW55IGRpYWdub3N0aWMgbWVzc2FnZT8gT3Ig ZXJyb3I/ICovCisJCXJldHVybiAoMCk7CisJfQorCXJ2ID0gR1BJT19QSU5fU0VUKHBpbi0+ZGV2 LCBwaW4tPnBpbiwKKwkgICAgc2MtPnBhcmFtLT5lbmFibGVfYWN0aXZlX2hpZ2ggPyBmYWxzZTog dHJ1ZSk7CisJaWYgKHJ2ICE9IDApIHsKKwkJZGV2aWNlX3ByaW50ZihkZXYsICJDYW5ub3Qgc2V0 IEdQSU8gcGluOiAlZFxuIiwgcGluLT5waW4pOworCQlyZXR1cm4gKHJ2KTsKKwl9CisJKnVkZWxh eSA9IHNjLT5wYXJhbS0+ZW5hYmxlX2RlbGF5OworCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBp bnQKK3JlZ25vZGVfcHdtX3N0YXR1cyhzdHJ1Y3QgcmVnbm9kZSAqcmVnbm9kZSwgaW50ICpzdGF0 dXMpCit7CisJc3RydWN0IHJlZ25vZGVfcHdtX3NjICpzYzsKKwlzdHJ1Y3QgZ3Bpb2J1c19waW4g KnBpbjsKKwl1aW50MzJfdCB2YWw7CisJaW50IHJ2OworCisJc2MgPSByZWdub2RlX2dldF9zb2Z0 YyhyZWdub2RlKTsKKworCSpzdGF0dXMgPSAwOworCWlmIChzYy0+Z3Bpb19lbnRyeSA9PSBOVUxM KSB7CisJCSpzdGF0dXMgPSBSRUdVTEFUT1JfU1RBVFVTX0VOQUJMRUQ7CisJCXJldHVybiAoMCk7 CisJfQorCXBpbiA9ICZzYy0+Z3Bpb19lbnRyeS0+Z3Bpb19waW47CisKKwlydiA9IEdQSU9fUElO X0dFVChwaW4tPmRldiwgcGluLT5waW4sICZ2YWwpOworCWlmIChydiA9PSAwKSB7CisJCWlmICgh c2MtPnBhcmFtLT5lbmFibGVfYWN0aXZlX2hpZ2ggXiAodmFsICE9IDApKQorCQkJKnN0YXR1cyA9 IFJFR1VMQVRPUl9TVEFUVVNfRU5BQkxFRDsKKwl9CisJcmV0dXJuIChydik7Cit9CitzdGF0aWMg aW50IAorcmVnbm9kZV9wd21fc2V0X3ZvbHRhZ2Uoc3RydWN0IHJlZ25vZGUgKnJlZ25vZGUsIGlu dCBtaW5fdXZvbHQsIGludCBtYXhfdXZvbHQsIGludCAqIHVkZWxheSkgCit7CisgICAgICAgIHN0 cnVjdCByZWdub2RlX3B3bV9zYyAqc2M7CisgICAgICAgIHN0cnVjdCByZWdwd21fc29mdGMgKmRz YzsKKyAgICAgICAgaW50MzJfdCB4MCwgeDEsIHkwLCB5MTsKKyAgICAgICAgaW50MzJfdCB4LCB5 OworICAgICAgICBib29sICBlbmFibGVkOworCisgICAgICAgIHNjID0gcmVnbm9kZV9nZXRfc29m dGMocmVnbm9kZSk7CisgICAgICAgIGRzYyA9IGRldmljZV9nZXRfc29mdGMocmVnbm9kZV9nZXRf ZGV2aWNlKHJlZ25vZGUpKTsKKyAgICAgICAgUFdNQlVTX0NIQU5ORUxfSVNfRU5BQkxFRChkc2Mt PmNoYW5uZWwtPmRldixkc2MtPmNoYW5uZWwtPmNoYW5uZWwsICZlbmFibGVkKTsKKyAgCWlmKCFl bmFibGVkKSAKKyAgCSAgcmV0dXJuIDA7CisgIAkgIAorICAJeDAgPSBzYy0+cGFyYW0tPm1pbl91 dm9sdDsKKyAgCXgxID0gc2MtPnBhcmFtLT5tYXhfdXZvbHQ7CisJeTAgPSBkc2MtPnNjX2R1dHlj eWNsZV9yYW5nZVswXTsKKwl5MSA9IGRzYy0+c2NfZHV0eWN5Y2xlX3JhbmdlWzFdOworCXggPSBt aW5fdXZvbHQ7CisJeSA9IHkwICsgKHggLSB4MCkgKiAoeTEgLSB5MCkgLyAoeDEgLSB4MCk7CisJ ZHNjLT5jaGFubmVsLT5kdXR5ID0gKHkgKiBkc2MtPmNoYW5uZWwtPnBlcmlvZCkgLyBkc2MtPnNj X2R1dHljeWNsZV91bml0OworCVBXTUJVU19DSEFOTkVMX0NPTkZJRyhkc2MtPmNoYW5uZWwtPmRl dixkc2MtPmNoYW5uZWwtPmNoYW5uZWwsCisgICAgICAgICBkc2MtPmNoYW5uZWwtPnBlcmlvZCwg ZHNjLT5jaGFubmVsLT5kdXR5KTsKKyAgICAgICAgcmV0dXJuIDA7CQorfQorCitzdGF0aWMgaW50 CityZWdub2RlX3B3bV9nZXRfdm9sdGFnZShzdHJ1Y3QgcmVnbm9kZSAqcmVnbm9kZSwgaW50ICp1 dm9sdCkKK3sKKwlzdHJ1Y3QgcmVnbm9kZV9wd21fc2MgKnNjOworCXN0cnVjdCByZWdwd21fc29m dGMgKmRzYzsKKwlpbnQzMl90IHgwLCB4MSwgeTAsIHkxOworCWludDMyX3QgeCwgeTsKKwlib29s ICBlbmFibGVkOworCQorCXNjID0gcmVnbm9kZV9nZXRfc29mdGMocmVnbm9kZSk7CisJZHNjID0g ZGV2aWNlX2dldF9zb2Z0YyhyZWdub2RlX2dldF9kZXZpY2UocmVnbm9kZSkpOwkKKyAgICAgICAg UFdNQlVTX0NIQU5ORUxfSVNfRU5BQkxFRChkc2MtPmNoYW5uZWwtPmRldixkc2MtPmNoYW5uZWwt PmNoYW5uZWwsICZlbmFibGVkKTsKKyAgCWlmKCFlbmFibGVkKSAKKyAgCSAgcmV0dXJuIDA7Cisg IAkJIAorCVBXTUJVU19DSEFOTkVMX0dFVF9DT05GSUcoZHNjLT5jaGFubmVsLT5kZXYsZHNjLT5j aGFubmVsLT5jaGFubmVsLAorCSh1X2ludCAqKSAmZHNjLT5jaGFubmVsLT5wZXJpb2QsICh1X2lu dCAqKSZkc2MtPmNoYW5uZWwtPmR1dHkpOworCisJeDAgPSBkc2MtPnNjX2R1dHljeWNsZV9yYW5n ZVswXTsKKwl4MSA9IGRzYy0+c2NfZHV0eWN5Y2xlX3JhbmdlWzFdOworCXkwID0gc2MtPnBhcmFt LT5taW5fdXZvbHQ7CisJeTEgPSBzYy0+cGFyYW0tPm1heF91dm9sdDsKKwl4ID0gKGRzYy0+Y2hh bm5lbC0+ZHV0eSAqIGRzYy0+c2NfZHV0eWN5Y2xlX3VuaXQpIC8gZHNjLT5jaGFubmVsLT5wZXJp b2Q7CisJeSA9IHkwICsgKHggLSB4MCkgKiAoeTEgLSB5MCkgLyAoeDEgLSB4MCk7CisJCisJKnV2 b2x0ID0geTsKKwlyZXR1cm4gKDApOworfQorCitpbnQKK3JlZ25vZGVfcHdtX3JlZ2lzdGVyKGRl dmljZV90IGRldiwgc3RydWN0IHJlZ25vZGVfcHdtX2luaXRfZGVmICppbml0X2RlZikKK3sKKwlz dHJ1Y3QgcmVnbm9kZSAqcmVnbm9kZTsKKwlzdHJ1Y3QgcmVnbm9kZV9wd21fc2MgKnNjOworCisJ cmVnbm9kZSA9IHJlZ25vZGVfY3JlYXRlKGRldiwgJnJlZ25vZGVfcHdtX2NsYXNzLAorCSAgICAm aW5pdF9kZWYtPnJlZ19pbml0X2RlZik7CisJaWYgKHJlZ25vZGUgPT0gTlVMTCkgeworCQlkZXZp Y2VfcHJpbnRmKGRldiwgIkNhbm5vdCBjcmVhdGUgcmVndWxhdG9yLlxuIik7CisJCXJldHVybihF TlhJTyk7CisJfQorCXNjID0gcmVnbm9kZV9nZXRfc29mdGMocmVnbm9kZSk7CisJc2MtPmdwaW9f b3Blbl9kcmFpbiA9IGluaXRfZGVmLT5ncGlvX29wZW5fZHJhaW47CisJaWYgKGluaXRfZGVmLT5n cGlvX3BpbiAhPSBOVUxMKSB7CisJCXNjLT5ncGlvX2VudHJ5ID0gcmVnbm9kZV9nZXRfZ3Bpb19l bnRyeShpbml0X2RlZi0+Z3Bpb19waW4pOworCQlpZiAoc2MtPmdwaW9fZW50cnkgPT0gTlVMTCkK KwkJCXJldHVybihFTlhJTyk7CisJfQorCXJlZ25vZGUgPSByZWdub2RlX3JlZ2lzdGVyKHJlZ25v ZGUpOworCWlmIChyZWdub2RlID09IE5VTEwpIHsKKwkJZGV2aWNlX3ByaW50ZihkZXYsICJDYW5u b3QgcmVnaXN0ZXIgcmVndWxhdG9yLlxuIik7CisJCXJldHVybihFTlhJTyk7CisJfQorCisJaWYg KHNjLT5ncGlvX2VudHJ5ICE9IE5VTEwpCisJCXNjLT5ncGlvX2VudHJ5LT5hbHdheXNfb24gfD0g c2MtPnBhcmFtLT5hbHdheXNfb247CisKKwlyZXR1cm4gKDApOworfQorCisvKgorICogT0ZXIERy aXZlciBpbXBsZW1lbnRhdGlvbi4KKyAqLworI2lmZGVmIEZEVAorc3RhdGljIHN0cnVjdCBvZndf Y29tcGF0X2RhdGEgY29tcGF0X2RhdGFbXSA9IHsKKwl7InB3bS1yZWd1bGF0b3IiLAkJMX0sCisJ e05VTEwsCQkJCTB9LAorfTsKKworc3RhdGljIGludAorcmVncHdtX2dldF9ncGlvKHN0cnVjdCBy ZWdwd21fc29mdGMgKiBzYykKK3sKKwlkZXZpY2VfdCBidXNkZXY7CisJcGhhbmRsZV90IG5vZGU7 CisKKwlpbnQgcnY7CisKKwlpZiAoc2MtPmdwaW9fcHJvZHhyZWYgPT0gMCkKKwkJcmV0dXJuICgw KTsKKworCW5vZGUgPSBvZndfYnVzX2dldF9ub2RlKHNjLT5kZXYpOworCisJLyogVGVzdCBpZiBj b250cm9sbGVyIGV4aXN0LiAqLworCXNjLT5ncGlvX3Bpbi5kZXYgPSBPRl9kZXZpY2VfZnJvbV94 cmVmKHNjLT5ncGlvX3Byb2R4cmVmKTsKKwlpZiAoc2MtPmdwaW9fcGluLmRldiA9PSBOVUxMKQor CQlyZXR1cm4gKEVOT0RFVik7CisKKwkvKiBUZXN0IGlmIEdQSU8gYnVzIGFscmVhZHkgZXhpc3Qu ICovCisJYnVzZGV2ID0gR1BJT19HRVRfQlVTKHNjLT5ncGlvX3Bpbi5kZXYpOworCWlmIChidXNk ZXYgPT0gTlVMTCkKKwkJcmV0dXJuIChFTk9ERVYpOworCisJcnYgPSBncGlvX21hcF9ncGlvcyhz Yy0+Z3Bpb19waW4uZGV2LCBub2RlLAorCSAgICBPRl9ub2RlX2Zyb21feHJlZihzYy0+Z3Bpb19w cm9keHJlZiksIHNjLT5ncGlvX25jZWxscywKKwkgICAgc2MtPmdwaW9fY2VsbHMsICYoc2MtPmdw aW9fcGluLnBpbiksICYoc2MtPmdwaW9fcGluLmZsYWdzKSk7CisJaWYgKHJ2ICE9IDApIHsKKwkJ ZGV2aWNlX3ByaW50ZihzYy0+ZGV2LCAiQ2Fubm90IG1hcCB0aGUgZ3BpbyBwcm9wZXJ0eS5cbiIp OworCQlyZXR1cm4gKEVOWElPKTsKKwl9CisJc2MtPmluaXRfZGVmLmdwaW9fcGluID0gJnNjLT5n cGlvX3BpbjsKKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMgaW50CityZWdwd21fcGFyc2VfZmR0 KHN0cnVjdCByZWdwd21fc29mdGMgKiBzYykKK3sKKwlwaGFuZGxlX3Qgbm9kZTsKKwlpbnQgcnY7 CisJaW50IGxlbjsKKwlzdHJ1Y3QgcmVnbm9kZV9pbml0X2RlZiAqaW5pdF9kZWY7CisKKwlub2Rl ID0gb2Z3X2J1c19nZXRfbm9kZShzYy0+ZGV2KTsKKwlpbml0X2RlZiA9ICZzYy0+aW5pdF9kZWYu cmVnX2luaXRfZGVmOworCisJcnYgPSByZWd1bGF0b3JfcGFyc2Vfb2Z3X3N0ZHBhcmFtKHNjLT5k ZXYsIG5vZGUsIGluaXRfZGVmKTsKKwlpZiAocnYgIT0gMCkgeworCQlkZXZpY2VfcHJpbnRmKHNj LT5kZXYsICJDYW5ub3QgcGFyc2Ugc3RhbmRhcmQgcGFyYW1ldGVycy5cbiIpOworCQlyZXR1cm4o cnYpOworCX0KKwlsZW4gPSBPRl9nZXRwcm9wbGVuKG5vZGUsICJwd21zIik7CisJaWYgKGxlbiA8 PSA0KSB7CisJCWRldmljZV9wcmludGYoc2MtPmRldiwgIjogbm8gcHdtcyBwcm9wZXJ0eVxuIik7 CisJCXJldHVybiBFTlhJTzsKKwl9CisKKwlpZiAoT0ZfZ2V0cHJvcGxlbihub2RlLCAidm9sdGFn ZS10YWJsZXMiKSA+IDApIHsKKwkJZGV2aWNlX3ByaW50ZihzYy0+ZGV2LCAiOiB2b2x0YWdlIHRh YmxlIG1vZGUgdW5zdXBwb3J0ZWRcbiIpOworCQlyZXR1cm4gRU5YSU87CisJfQorCisJaWYgKGlu aXRfZGVmLT5zdGRfcGFyYW0ubWluX3V2b2x0ID4gaW5pdF9kZWYtPnN0ZF9wYXJhbS5tYXhfdXZv bHQpIHsKKwkJZGV2aWNlX3ByaW50ZihzYy0+ZGV2LCAibWluX3V2b2x0ID4gbWF4X3V2b2x0XG4i KTsKKwkJcmV0dXJuIChFTlhJTyk7CisJfQorCXJ2ID0gcHdtX2dldF9ieV9vZndfcHJvcGlkeChz Yy0+ZGV2LCBub2RlLCAicHdtcyIsIDAsICZzYy0+Y2hhbm5lbCk7CisgICAgICAgIGlmIChydiAh PSAwKSB7CisgICAgICAgICAgICAgICAgZGV2aWNlX3ByaW50ZihzYy0+ZGV2LCAiQ2Fubm90IG1h cCBwd20gY2hhbm5lbCAlZFxuIiwgcnYpOworICAgICAgICAgICAgICAgIHJldHVybiAoRU5YSU8p OworICAgICAgICB9CisKKwlydiA9IE9GX2dldGVuY3Byb3Aobm9kZSwgInB3bS1kdXR5Y3ljbGUt dW5pdCIsICZzYy0+c2NfZHV0eWN5Y2xlX3VuaXQsCisJIHNpemVvZihzYy0+c2NfZHV0eWN5Y2xl X3VuaXQpKTsKKwlpZihydiA8PSAwKSBzYy0+c2NfZHV0eWN5Y2xlX3VuaXQgPSAxMDA7IAorCXNj LT5zY19kdXR5Y3ljbGVfcmFuZ2VbMF0gPSAwOworCXNjLT5zY19kdXR5Y3ljbGVfcmFuZ2VbMV0g PSAxMDA7CisJcnYgPSBPRl9nZXRlbmNwcm9wKG5vZGUsICJwd20tZHV0eWN5Y2xlLXJhbmdlIiwK KwkgICAgc2MtPnNjX2R1dHljeWNsZV9yYW5nZSwgc2l6ZW9mKHNjLT5zY19kdXR5Y3ljbGVfcmFu Z2UpKTsKKy8vCWRldmljZV9wcmludGYoc2MtPmRldiwiJXggJXhcbiIsc2MtPnNjX2R1dHljeWNs ZV9yYW5nZVswXSxzYy0+c2NfZHV0eWN5Y2xlX3JhbmdlWzFdKTsKKwkvKiBQV00gcmVndWxhdG9y IHVzZXMgJ3N0YXJ0dXAtZGVsYXktdXMnIHByb3BlcnR5IGZvciBlbmFibGVfZGVsYXkgKi8KKy8q CisJaWYgKCFPRl9oYXNwcm9wKG5vZGUsICJncGlvIikpCisJCXJldHVybiAoMCk7CisJcnYgPSBv ZndfYnVzX3BhcnNlX3hyZWZfbGlzdF9hbGxvYyhub2RlLCAiZ3BpbyIsICIjZ3Bpby1jZWxscyIs IDAsCisJICAgICZzYy0+Z3Bpb19wcm9keHJlZiwgJnNjLT5ncGlvX25jZWxscywgJnNjLT5ncGlv X2NlbGxzKTsKKwlpZiAocnYgIT0gMCkgeworCQlzYy0+Z3Bpb19wcm9keHJlZiA9IDA7CisJCWRl dmljZV9wcmludGYoc2MtPmRldiwgIk1hbGZvcm1lZCBncGlvIHByb3BlcnR5XG4iKTsKKwkJcmV0 dXJuIChFTlhJTyk7CisJfQorKi8JCisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIHZvaWQKK3Jl Z3B3bV9uZXdfcGFzcyhkZXZpY2VfdCBkZXYpCit7CisJc3RydWN0IHJlZ3B3bV9zb2Z0YyAqIHNj OworCWludCBydjsKKworCXNjID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYpOworCWJ1c19nZW5lcmlj X25ld19wYXNzKGRldik7CisKKwlpZiAoc2MtPmF0dGFjaF9kb25lKQorCQlyZXR1cm47CisKKwkv KiBUcnkgdG8gZ2V0IGFuZCBjb25maWd1cmUgR1BJTy4gKi8KKwlydiA9IHJlZ3B3bV9nZXRfZ3Bp byhzYyk7CisJaWYgKHJ2ICE9IDApCisJCXJldHVybjsKKworCS8qIFJlZ2lzdGVyIHJlZ3VsYXRv ci4gKi8KKwlyZWdub2RlX3B3bV9yZWdpc3RlcihzYy0+ZGV2LCAmc2MtPmluaXRfZGVmKTsKKwlz Yy0+YXR0YWNoX2RvbmUgPSB0cnVlOworfQorCitzdGF0aWMgaW50CityZWdwd21fcHJvYmUoZGV2 aWNlX3QgZGV2KQoreworCisJaWYgKCFvZndfYnVzX3N0YXR1c19va2F5KGRldikpCisJCXJldHVy biAoRU5YSU8pOworCisJaWYgKCFvZndfYnVzX3NlYXJjaF9jb21wYXRpYmxlKGRldiwgY29tcGF0 X2RhdGEpLT5vY2RfZGF0YSkKKwkJcmV0dXJuIChFTlhJTyk7CisKKwlkZXZpY2Vfc2V0X2Rlc2Mo ZGV2LCAiUFdNIFJlZ3VsYXRvciIpOworCXJldHVybiAoQlVTX1BST0JFX0RFRkFVTFQpOworfQor CitzdGF0aWMgaW50CityZWdwd21fZGV0YWNoKGRldmljZV90IGRldikKK3sKKworCS8qIFRoaXMg ZGV2aWNlIGlzIGFsd2F5cyBwcmVzZW50LiAqLworCXJldHVybiAoRUJVU1kpOworfQorCitzdGF0 aWMgaW50CityZWdwd21fYXR0YWNoKGRldmljZV90IGRldikKK3sKKwlzdHJ1Y3QgcmVncHdtX3Nv ZnRjICogc2M7CisJaW50IHJ2OworCisJc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7CisJc2Mt PmRldiA9IGRldjsKKworCS8qIFBhcnNlIEZEVCBkYXRhLiAqLworCXJ2ID0gcmVncHdtX3BhcnNl X2ZkdChzYyk7CisJaWYgKHJ2ICE9IDApCisJCXJldHVybihFTlhJTyk7CisKKwkvKiBGaWxsIHJl c2V0IG9mIGluaXQuICovCisJc2MtPmluaXRfZGVmLnJlZ19pbml0X2RlZi5pZCA9IDE7CisJc2Mt PmluaXRfZGVmLnJlZ19pbml0X2RlZi5mbGFncyA9IFJFR1VMQVRPUl9GTEFHU19TVEFUSUM7CisK KwkvKiBUcnkgdG8gZ2V0IGFuZCBjb25maWd1cmUgR1BJTy4gKi8KKwlydiA9IHJlZ3B3bV9nZXRf Z3BpbyhzYyk7CisJaWYgKHJ2ICE9IDApCisJCXJldHVybiAoYnVzX2dlbmVyaWNfYXR0YWNoKGRl dikpOworCisJLyogUmVnaXN0ZXIgcmVndWxhdG9yLiAqLworCXJlZ25vZGVfcHdtX3JlZ2lzdGVy KHNjLT5kZXYsICZzYy0+aW5pdF9kZWYpOworCXNjLT5hdHRhY2hfZG9uZSA9IHRydWU7CisKKwly ZXR1cm4gKGJ1c19nZW5lcmljX2F0dGFjaChkZXYpKTsKK30KKworc3RhdGljIGRldmljZV9tZXRo b2RfdCByZWdwd21fbWV0aG9kc1tdID0geworCS8qIERldmljZSBpbnRlcmZhY2UgKi8KKwlERVZN RVRIT0QoZGV2aWNlX3Byb2JlLAkJcmVncHdtX3Byb2JlKSwKKwlERVZNRVRIT0QoZGV2aWNlX2F0 dGFjaCwJcmVncHdtX2F0dGFjaCksCisJREVWTUVUSE9EKGRldmljZV9kZXRhY2gsCXJlZ3B3bV9k ZXRhY2gpLAorCS8qIEJ1cyBpbnRlcmZhY2UgKi8KKwlERVZNRVRIT0QoYnVzX25ld19wYXNzLAkJ cmVncHdtX25ld19wYXNzKSwKKwkvKiBSZWdkZXYgaW50ZXJmYWNlICovCisJREVWTUVUSE9EKHJl Z2Rldl9tYXAsCQlyZWdkZXZfZGVmYXVsdF9vZndfbWFwKSwKKworCURFVk1FVEhPRF9FTkQKK307 CisKK3N0YXRpYyBkZXZjbGFzc190IHJlZ3B3bV9kZXZjbGFzczsKK0RFRklORV9DTEFTU18wKHJl Z3B3bSwgcmVncHdtX2RyaXZlciwgcmVncHdtX21ldGhvZHMsCisgICAgc2l6ZW9mKHN0cnVjdCBy ZWdwd21fc29mdGMpKTsKK0VBUkxZX0RSSVZFUl9NT0RVTEUocmVncHdtLCBzaW1wbGVidXMsIHJl Z3B3bV9kcml2ZXIsCisgICByZWdwd21fZGV2Y2xhc3MsIDAsIDAsIEJVU19QQVNTX0JVUyk7CisK KyNlbmRpZiAvKiBGRFQgKi8KZGlmZiAtLWdpdCBhL3N5cy9jb25mL2ZpbGVzLmFybTY0IGIvc3lz L2NvbmYvZmlsZXMuYXJtNjQKLS0tIGEvc3lzL2NvbmYvZmlsZXMuYXJtNjQKKysrIGIvc3lzL2Nv bmYvZmlsZXMuYXJtNjQKQEAgLTY5MCw2ICs2OTAsNyBAQAogYXJtNjQvcm9ja2NoaXAvY2xrL3Jr MzM5OV9wbXVjcnUuYwkJb3B0aW9uYWwgZmR0IHNvY19yb2NrY2hpcF9yazMzOTkKIGFybTY0L3Jv Y2tjaGlwL2Nsay9yazM1NjhfY3J1LmMJCQlvcHRpb25hbCBmZHQgc29jX3JvY2tjaGlwX3JrMzU2 OAogYXJtNjQvcm9ja2NoaXAvY2xrL3JrMzU2OF9wbXVjcnUuYwkJb3B0aW9uYWwgZmR0IHNvY19y b2NrY2hpcF9yazM1NjgKK2FybTY0L3JvY2tjaGlwL2Nsay9yazMzMDhfY3J1LmMgICAgICAgICAg ICAgICAgIG9wdGlvbmFsIGZkdCBzb2Nfcm9ja2NoaXBfcmszMzA4CiAKICMgWGlsaW54CiBhcm0v eGlsaW54L3VhcnRfZGV2X2NkbmMuYwkJCW9wdGlvbmFsIHVhcnQgc29jX3hpbGlueF96eW5xIGZk dApkaWZmIC0tZ2l0IGEvc3lzL2NvbmYvZmlsZXMgYi9zeXMvY29uZi9maWxlcwotLS0gYS9zeXMv Y29uZi9maWxlcworKysgYi9zeXMvY29uZi9maWxlcwpAQCAtMTcwOSw2ICsxNzA5LDcgQEAKIGRl di9leHRyZXMvcmVndWxhdG9yL3JlZ3VsYXRvci5jCW9wdGlvbmFsIHJlZ3VsYXRvcgogZGV2L2V4 dHJlcy9yZWd1bGF0b3IvcmVndWxhdG9yX2J1cy5jCW9wdGlvbmFsIHJlZ3VsYXRvciBmZHQKIGRl di9leHRyZXMvcmVndWxhdG9yL3JlZ3VsYXRvcl9maXhlZC5jCW9wdGlvbmFsIHJlZ3VsYXRvcgor ZGV2L2V4dHJlcy9yZWd1bGF0b3IvcmVndWxhdG9yX3B3bS5jCW9wdGlvbmFsIHJlZ3VsYXRvciBm ZHQKIGRldi9leHRyZXMvc3lzY29uL3N5c2Nvbi5jCQlvcHRpb25hbCBzeXNjb24KIGRldi9leHRy ZXMvc3lzY29uL3N5c2Nvbl9nZW5lcmljLmMJb3B0aW9uYWwgc3lzY29uIGZkdAogZGV2L2V4dHJl cy9zeXNjb24vc3lzY29uX2lmLm0JCW9wdGlvbmFsIHN5c2NvbgpkaWZmIC0tZ2l0IGEvc3lzL2Fy bTY0L3JvY2tjaGlwL3JrX3VzYjJwaHkuYyBiL3N5cy9hcm02NC9yb2NrY2hpcC9ya191c2IycGh5 LmMKLS0tIGEvc3lzL2FybTY0L3JvY2tjaGlwL3JrX3VzYjJwaHkuYworKysgYi9zeXMvYXJtNjQv cm9ja2NoaXAvcmtfdXNiMnBoeS5jCkBAIC04MSwxMCArODEsMTkgQEAKIAkJLmRpc2FibGVfbWFz ayA9IDB4MTAwMDEwLAogCX0KIH07CitzdHJ1Y3QgcmtfdXNiMnBoeV9yZWdzIHJrMzMwOF9yZWdz ID0geworCS5jbGtfY3RsID0geworCQkub2Zmc2V0ID0gMHgwMTA4LAorCQkuZW5hYmxlX21hc2sg PSAweDEwMDAwMCwKKwkJLyogYml0IDQgcHV0IHBsbCBpbiBzdXNwZW5kICovCisJCS5kaXNhYmxl X21hc2sgPSAweDEwMDAxMCwKKwl9CQorfTsKIAogc3RhdGljIHN0cnVjdCBvZndfY29tcGF0X2Rh dGEgY29tcGF0X2RhdGFbXSA9IHsKIAl7ICJyb2NrY2hpcCxyazMzOTktdXNiMnBoeSIsCSh1aW50 cHRyX3QpJnJrMzM5OV9yZWdzIH0sCiAJeyAicm9ja2NoaXAscmszNTY4LXVzYjJwaHkiLAkodWlu dHB0cl90KSZyazM1NjhfcmVncyB9LAorCXsgInJvY2tjaGlwLHJrMzMwOC11c2IycGh5IiwJKHVp bnRwdHJfdCkmcmszMzA4X3JlZ3MgfSwJCiAJeyBOVUxMLAkJCQkwIH0KIH07CiAKZGlmZiAtLWdp dCBhL3N5cy9hcm02NC9yb2NrY2hpcC9ya190c2FkYy5jIGIvc3lzL2FybTY0L3JvY2tjaGlwL3Jr X3RzYWRjLmMKLS0tIGEvc3lzL2FybTY0L3JvY2tjaGlwL3JrX3RzYWRjLmMKKysrIGIvc3lzL2Fy bTY0L3JvY2tjaGlwL3JrX3RzYWRjLmMKQEAgLTI2Miw2ICsyNjIsNyBAQAogCX0KIH07CiAKKwog c3RhdGljIHN0cnVjdCBya19jYWxpYl9lbnRyeSByazMzOTlfY2FsaWJfZGF0YVtdID0gewogCXs0 MDIsIC00MDAwMH0sCiAJezQxMCwgLTM1MDAwfSwKQEAgLTM3NSwxMSArMzc2LDMzIEBACiAJfQog fTsKIAorc3RhdGljIHN0cnVjdCB0c2Vuc29yIHJrMzMwOF90c2Vuc29yc1tdID0geworCXsgLmNo YW5uZWwgPSAwLCAuaWQgPSAwLCAubmFtZSA9ICJDUFUifSwKKwl7IC5jaGFubmVsID0gMSwgLmlk ID0gMSwgLm5hbWUgPSAiR1BVIn0sCit9OworCitzdGF0aWMgc3RydWN0IHRzYWRjX2NvbmYgcmsz MzA4X3RzYWRjX2NvbmYgPSB7CisJLnZlcnNpb24gPQkJVFNBRENfVjIsCisJLnFfc2VsX250YyA9 CQkxLAorCS5zaHV0ZG93bl90ZW1wID0JOTUwMDAsCisJLnNodXRkb3duX21vZGUgPQkwLCAvKiBD UlUgKi8KKwkuc2h1dGRvd25fcG9sID0JCTAsIC8qIExvdyAgKi8KKwkudHNlbnNvcnMgPSAJCXJr MzMwOF90c2Vuc29ycywKKwkubnRzZW5zb3JzID0gCQluaXRlbXMocmszMzA4X3RzZW5zb3JzKSwK KwkuY2FsaWJfaW5mbyA9IAl7CisJCQkudGFibGUgPSByazMzMjhfY2FsaWJfZGF0YSwKKwkJCS5u ZW50cmllcyA9IG5pdGVtcyhyazMzMjhfY2FsaWJfZGF0YSksCisJfQorfTsKKworCiBzdGF0aWMg c3RydWN0IG9md19jb21wYXRfZGF0YSBjb21wYXRfZGF0YVtdID0gewogCXsicm9ja2NoaXAscmsz Mjg4LXRzYWRjIiwJKHVpbnRwdHJfdCkmcmszMjg4X3RzYWRjX2NvbmZ9LAogCXsicm9ja2NoaXAs cmszMzI4LXRzYWRjIiwJKHVpbnRwdHJfdCkmcmszMzI4X3RzYWRjX2NvbmZ9LAorCXsicm9ja2No aXAscmszMzA4LXRzYWRjIiwJKHVpbnRwdHJfdCkmcmszMzI4X3RzYWRjX2NvbmZ9LAkKIAl7InJv Y2tjaGlwLHJrMzM5OS10c2FkYyIsCSh1aW50cHRyX3QpJnJrMzM5OV90c2FkY19jb25mfSwKIAl7 InJvY2tjaGlwLHJrMzU2OC10c2FkYyIsCSh1aW50cHRyX3QpJnJrMzU2OF90c2FkY19jb25mfSwK Kwl7InJvY2tjaGlwLHJrMzMwOC10c2FkYyIsICAgICAgICh1aW50cHRyX3QpJnJrMzMwOF90c2Fk Y19jb25mfSwKIAl7TlVMTCwJCTB9CiB9OwogCmRpZmYgLS1naXQgYS9zeXMvYXJtNjQvcm9ja2No aXAvcmtfc3BpLmMgYi9zeXMvYXJtNjQvcm9ja2NoaXAvcmtfc3BpLmMKLS0tIGEvc3lzL2FybTY0 L3JvY2tjaGlwL3JrX3NwaS5jCisrKyBiL3N5cy9hcm02NC9yb2NrY2hpcC9ya19zcGkuYwpAQCAt MSw1ICsxLDUgQEAKIC8qLQotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVz ZQorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1GcmVlQlNECiAgKgog ICogQ29weXJpZ2h0IChjKSAyMDE5IE9sZWtzYW5kciBUeW1vc2hlbmtvIDxnb256b0BGcmVlQlNE Lm9yZz4KICAqCkBAIC05Miw3ICs5Miw3IEBACiBzdGF0aWMgc3RydWN0IG9md19jb21wYXRfZGF0 YSBjb21wYXRfZGF0YVtdID0gewogCXsgInJvY2tjaGlwLHJrMzMyOC1zcGkiLAkJMSB9LAogCXsg InJvY2tjaGlwLHJrMzM5OS1zcGkiLAkJMSB9LAotCXsgInJvY2tjaGlwLHJrMzU2OC1zcGkiLAkJ MSB9LAorCXsgInJvY2tjaGlwLHJrMzMwOC1zcGkiLAkJMSB9LAkKIAl7IE5VTEwsCQkJCQkwIH0K IH07CiAKQEAgLTQ3NSw3ICs0NzUsOSBAQAogCXNpemVvZihzdHJ1Y3Qgcmtfc3BpX3NvZnRjKSwK IH07CiAKLURSSVZFUl9NT0RVTEUocmtfc3BpLCBzaW1wbGVidXMsIHJrX3NwaV9kcml2ZXIsIDAs IDApOwotRFJJVkVSX01PRFVMRShvZndfc3BpYnVzLCBya19zcGksIG9md19zcGlidXNfZHJpdmVy LCAwLCAwKTsKK3N0YXRpYyBkZXZjbGFzc190IHJrX3NwaV9kZXZjbGFzczsKKworRFJJVkVSX01P RFVMRShya19zcGksIHNpbXBsZWJ1cywgcmtfc3BpX2RyaXZlciwgcmtfc3BpX2RldmNsYXNzLCAw LCAwKTsKK0RSSVZFUl9NT0RVTEUob2Z3X3NwaWJ1cywgcmtfc3BpLCBvZndfc3BpYnVzX2RyaXZl ciwgb2Z3X3NwaWJ1c19kZXZjbGFzcywgMCwgMCk7CiBNT0RVTEVfREVQRU5EKHJrX3NwaSwgb2Z3 X3NwaWJ1cywgMSwgMSwgMSk7CiBPRldCVVNfUE5QX0lORk8oY29tcGF0X2RhdGEpOwpkaWZmIC0t Z2l0IGEvc3lzL2FybTY0L3JvY2tjaGlwL3JrX3B3bS5jIGIvc3lzL2FybTY0L3JvY2tjaGlwL3Jr X3B3bS5jCi0tLSBhL3N5cy9hcm02NC9yb2NrY2hpcC9ya19wd20uYworKysgYi9zeXMvYXJtNjQv cm9ja2NoaXAvcmtfcHdtLmMKQEAgLTEsNSArMSw1IEBACiAvKi0KLSAqIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UKKyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt Mi1DbGF1c2UtRnJlZUJTRAogICoKICAqIENvcHlyaWdodCAoYykgMjAxOCBFbW1hbnVlbCBWYWRv dCA8bWFudUBGcmVlQlNELm9yZz4KICAqIENvcHlyaWdodCAoYykgMjAxOSBCcmFuZG9uIEJlcmdy ZW4gPGdpdEBiZHJhZ29uLnJ0azAubmV0PgpAQCAtMTAwLDYgKzEwMCw3IEBACiAKIHN0YXRpYyBz dHJ1Y3Qgb2Z3X2NvbXBhdF9kYXRhIGNvbXBhdF9kYXRhW10gPSB7CiAJeyAicm9ja2NoaXAscmsz Mjg4LXB3bSIsCQkxIH0sCisJeyAicm9ja2NoaXAscmszMzI4LXB3bSIsCQkxIH0sCQogCXsgInJv Y2tjaGlwLHJrMzM5OS1wd20iLAkJMSB9LAogCXsgTlVMTCwJCQkJCTAgfQogfTsKQEAgLTM5OCw1 ICszOTksNyBAQAogCXNpemVvZihzdHJ1Y3QgcmtfcHdtX3NvZnRjKSwKIH07CiAKLURSSVZFUl9N T0RVTEUocmtfcHdtLCBzaW1wbGVidXMsIHJrX3B3bV9kcml2ZXIsIDAsIDApOworc3RhdGljIGRl dmNsYXNzX3QgcmtfcHdtX2RldmNsYXNzOworCitFQVJMWV9EUklWRVJfTU9EVUxFKHJrX3B3bSwg c2ltcGxlYnVzLCBya19wd21fZHJpdmVyLCBya19wd21fZGV2Y2xhc3MsIDAsIDAsQlVTX1BBU1Nf QlVTICsgQlVTX1BBU1NfT1JERVJfTEFURSk7CiBTSU1QTEVCVVNfUE5QX0lORk8oY29tcGF0X2Rh dGEpOwpkaWZmIC0tZ2l0IGEvc3lzL2FybTY0L3JvY2tjaGlwL3JrX3BpbmN0cmwuYyBiL3N5cy9h cm02NC9yb2NrY2hpcC9ya19waW5jdHJsLmMKLS0tIGEvc3lzL2FybTY0L3JvY2tjaGlwL3JrX3Bp bmN0cmwuYworKysgYi9zeXMvYXJtNjQvcm9ja2NoaXAvcmtfcGluY3RybC5jCkBAIC0xMDA0LDEx ICsxMDA0LDE5NSBAQAogCS5nZXRfYmlhc192YWx1ZSA9IHJrMzU2OF9nZXRfYmlhc192YWx1ZSwK IH07CiAKK3N0YXRpYyBzdHJ1Y3QgcmtfcGluY3RybF9ncGlvIHJrMzMwOF9ncGlvX2JhbmtbXSA9 IHsKKyAgICAgICAgUktfR1BJTygwLCAiZ3BpbzAiKSwKKyAgICAgICAgUktfR1BJTygxLCAiZ3Bp bzEiKSwKKyAgICAgICAgUktfR1BJTygyLCAiZ3BpbzIiKSwKKyAgICAgICAgUktfR1BJTygzLCAi Z3BpbzMiKSwKKyAgICAgICAgUktfR1BJTyg0LCAiZ3BpbzQiKSwgICAgICAgIAorCit9OworCitz dGF0aWMgc3RydWN0IHJrX3BpbmN0cmxfYmFuayByazMzMDhfaW9tdXhfYmFua1tdID0geworICAg ICAgICAvKiAgICBiYW5rIHN1YiBvZmZzIG5iaXRzICovCisgICAgICAgIFJLX0lPTVVYKDAsIDAs IDB4MDAwMCwgMiksCisgICAgICAgIFJLX0lPTVVYKDAsIDEsIDB4MDAwNCwgMiksCisgICAgICAg IFJLX0lPTVVYKDAsIDIsIDB4MDAwOCwgMiksCisgICAgICAgIFJLX0lPTVVYKDAsIDMsIDB4MDAw QywgMiksCisgICAgICAgIFJLX0lPTVVYKDEsIDAsIDB4MDAxMCwgMiksCisgICAgICAgIFJLX0lP TVVYKDEsIDEsIDB4MDAxNCwgMiksCisgICAgICAgIFJLX0lPTVVYKDEsIDIsIDB4MDAxOCwgMiks CisgICAgICAgIFJLX0lPTVVYKDEsIDMsIDB4MDAxQywgMiksCisgICAgICAgIFJLX0lPTVVYKDIs IDAsIDB4MDAyMCwgMiksCisgICAgICAgIFJLX0lPTVVYKDIsIDEsIDB4MDAyNCwgMiksCisgICAg ICAgIFJLX0lPTVVYKDIsIDIsIDB4MDAyOCwgMiksCisgICAgICAgIFJLX0lPTVVYKDIsIDMsIDB4 MDAyQywgMiksCisgICAgICAgIFJLX0lPTVVYKDMsIDAsIDB4MDAzMCwgMiksCisgICAgICAgIFJL X0lPTVVYKDMsIDEsIDB4MDAzNCwgMiksCisgICAgICAgIFJLX0lPTVVYKDMsIDIsIDB4MDAzOCwg MiksCisgICAgICAgIFJLX0lPTVVYKDMsIDMsIDB4MDAzQywgMiksCisgICAgICAgIFJLX0lPTVVY KDQsIDAsIDB4MDA0MCwgMiksCisgICAgICAgIFJLX0lPTVVYKDQsIDEsIDB4MDA0NCwgMiksCisg ICAgICAgIFJLX0lPTVVYKDQsIDIsIDB4MDA0OCwgMiksCisgICAgICAgIFJLX0lPTVVYKDQsIDMs IDB4MDA0QywgMiksICAgICAgICAKK307CisjZGVmaW5lIFJLX1BJTkZJWF9NUyhiYW5rLHBpbixy ZWcsYml0LG1hc2spIFJLX1BJTkZJWChiYW5rLHBpbixyZWcsYml0LChtYXNrIDw8IGJpdCkpCitz dGF0aWMgc3RydWN0IHJrX3BpbmN0cmxfcGluX2ZpeHVwIHJrMzMwOF9waW5fZml4dXBbXSA9IHsK KwkvKiAgICAgIGJhbmsgIHBpbiByZWcgIGJpdCAgbWFzayAqLworICAgICAgICAgIFJLX1BJTkZJ WF9NUygxLCAxNCwgMHgyOCwgMTIsIDB4ZiksCisgICAgICAgICAgUktfUElORklYX01TKDEsIDE1 LCAweDJjLCAwLCAweDMpLAorICAgICAgICAgIFJLX1BJTkZJWF9NUygxLCAxOCwgMHgzMCwgNCwg MHhmKSwKKyAgICAgICAgICBSS19QSU5GSVhfTVMoMSwgMTksIDB4MzAsIDgsIDB4ZiksCisgICAg ICAgICAgUktfUElORklYX01TKDEsIDIwLCAweDMwLCAxMiwgMHhmKSwKKyAgICAgICAgICBSS19Q SU5GSVhfTVMoMSwgMjEsIDB4MzQsIDAsIDB4ZiksCisgICAgICAgICAgUktfUElORklYX01TKDEs IDIyLCAweDM0LCA0LCAweGYpLAorICAgICAgICAgIFJLX1BJTkZJWF9NUygxLCAyMywgMHgzNCwg OCwgMHhmKSwKKyAgICAgICAgICBSS19QSU5GSVhfTVMoMiwgMiwgMHg0MCwgNCwgMHgzKSwKKyAg ICAgICAgICBSS19QSU5GSVhfTVMoMiwgMywgMHg0MCwgNiwgMHgzKSwKKyAgICAgICAgICBSS19Q SU5GSVhfTVMoMiwgMTYsIDB4NTAsIDAsIDB4MyksCisgICAgICAgICAgUktfUElORklYX01TKDMs IDEwLCAweDY4LCA0LCAweDMpLAorICAgICAgICAgIFJLX1BJTkZJWF9NUygzLCAxMSwgMHg2OCwg NiwgMHgzKSwKKyAgICAgICAgICBSS19QSU5GSVhfTVMoMywgMTIsIDB4NjgsIDgsIDB4ZiksCisg ICAgICAgICAgUktfUElORklYX01TKDMsIDEzLCAweDY4LCAxMiwgMHhmKSwKK307CitzdGF0aWMg c3RydWN0IHJrX3BpbmN0cmxfcGluX2RyaXZlIHJrMzMwOF9waW5fZHJpdmVbXSA9IHsKKwkvKiAg ICAgICBiYW5rIHN1YiAgb2ZmcyB2YWwgbWEgKi8KKwlSS19QSU5EUklWRSgwLCAwLCAweDEwMCwg MCwgMiksCisJUktfUElORFJJVkUoMCwgMCwgMHgxMDAsIDEsIDQpLAorCVJLX1BJTkRSSVZFKDAs IDAsIDB4MTAwLCAyLCA4KSwKKwlSS19QSU5EUklWRSgwLCAwLCAweDEwMCwgMywgMTIpLAorCisJ UktfUElORFJJVkUoMCwgMSwgMHgxMDQsIDAsIDIpLAorCVJLX1BJTkRSSVZFKDAsIDEsIDB4MTA0 LCAxLCA0KSwKKwlSS19QSU5EUklWRSgwLCAxLCAweDEwNCwgMiwgOCksCisJUktfUElORFJJVkUo MCwgMSwgMHgxMDQsIDMsIDEyKSwKKworCVJLX1BJTkRSSVZFKDAsIDIsIDB4MTA4LCAwLCAyKSwK KwlSS19QSU5EUklWRSgwLCAyLCAweDEwOCwgMSwgNCksCisJUktfUElORFJJVkUoMCwgMiwgMHgx MDgsIDIsIDgpLAorCVJLX1BJTkRSSVZFKDAsIDIsIDB4MTA4LCAzLCAxMiksCisKKwlSS19QSU5E UklWRSgwLCAzLCAweDEwQywgMCwgMiksCisJUktfUElORFJJVkUoMCwgMywgMHgxMEMsIDEsIDQp LAorCVJLX1BJTkRSSVZFKDAsIDMsIDB4MTBDLCAyLCA4KSwKKwlSS19QSU5EUklWRSgwLCAzLCAw eDEwQywgMywgMTIpLAorCisJUktfUElORFJJVkUoMSwgMCwgMHgxMTAsIDAsIDIpLAorCVJLX1BJ TkRSSVZFKDEsIDAsIDB4MTEwLCAxLCA0KSwKKwlSS19QSU5EUklWRSgxLCAwLCAweDExMCwgMiwg OCksCisJUktfUElORFJJVkUoMSwgMCwgMHgxMTAsIDMsIDEyKSwKKworCVJLX1BJTkRSSVZFKDEs IDEsIDB4MTE0LCAwLCAyKSwKKwlSS19QSU5EUklWRSgxLCAxLCAweDExNCwgMSwgNCksCisJUktf UElORFJJVkUoMSwgMSwgMHgxMTQsIDIsIDgpLAorCVJLX1BJTkRSSVZFKDEsIDEsIDB4MTE0LCAz LCAxMiksCisKKwlSS19QSU5EUklWRSgxLCAyLCAweDExOCwgMCwgMiksCisJUktfUElORFJJVkUo MSwgMiwgMHgxMTgsIDEsIDQpLAorCVJLX1BJTkRSSVZFKDEsIDIsIDB4MTE4LCAyLCA4KSwKKwlS S19QSU5EUklWRSgxLCAyLCAweDExOCwgMywgMTIpLAorCisJUktfUElORFJJVkUoMSwgMywgMHgx MUMsIDAsIDIpLAorCVJLX1BJTkRSSVZFKDEsIDMsIDB4MTFDLCAxLCA0KSwKKwlSS19QSU5EUklW RSgxLCAzLCAweDExQywgMiwgOCksCisJUktfUElORFJJVkUoMSwgMywgMHgxMUMsIDMsIDEyKSwK KworCVJLX1BJTkRSSVZFKDIsIDAsIDB4MTIwLCAwLCAyKSwKKwlSS19QSU5EUklWRSgyLCAwLCAw eDEyMCwgMSwgNCksCisJUktfUElORFJJVkUoMiwgMCwgMHgxMjAsIDIsIDgpLAorCVJLX1BJTkRS SVZFKDIsIDAsIDB4MTIwLCAzLCAxMiksCisKKwlSS19QSU5EUklWRSgyLCAxLCAweDEyNCwgMCwg MiksCisJUktfUElORFJJVkUoMiwgMSwgMHgxMjQsIDEsIDQpLAorCVJLX1BJTkRSSVZFKDIsIDEs IDB4MTI0LCAyLCA4KSwKKwlSS19QSU5EUklWRSgyLCAxLCAweDEyNCwgMywgMTIpLAorCisJUktf UElORFJJVkUoMiwgMiwgMHgxMjgsIDAsIDIpLAorCVJLX1BJTkRSSVZFKDIsIDIsIDB4MTI4LCAx LCA0KSwKKwlSS19QSU5EUklWRSgyLCAyLCAweDEyOCwgMiwgOCksCisJUktfUElORFJJVkUoMiwg MiwgMHgxMjgsIDMsIDEyKSwKKworCVJLX1BJTkRSSVZFKDIsIDMsIDB4MTJDLCAwLCAyKSwKKwlS S19QSU5EUklWRSgyLCAzLCAweDEyQywgMSwgNCksCisJUktfUElORFJJVkUoMiwgMywgMHgxMkMs IDIsIDgpLAorCVJLX1BJTkRSSVZFKDIsIDMsIDB4MTJDLCAzLCAxMiksCisKKwlSS19QSU5EUklW RSgzLCAwLCAweDEzMCwgMCwgMiksCisJUktfUElORFJJVkUoMywgMCwgMHgxMzAsIDEsIDQpLAor CVJLX1BJTkRSSVZFKDMsIDAsIDB4MTMwLCAyLCA4KSwKKwlSS19QSU5EUklWRSgzLCAwLCAweDEz MCwgMywgMTIpLAorCisJUktfUElORFJJVkUoMywgMSwgMHgxMzQsIDAsIDIpLAorCVJLX1BJTkRS SVZFKDMsIDEsIDB4MTM0LCAxLCA0KSwKKwlSS19QSU5EUklWRSgzLCAxLCAweDEzNCwgMiwgOCks CisJUktfUElORFJJVkUoMywgMSwgMHgxMzQsIDMsIDEyKSwKKworCVJLX1BJTkRSSVZFKDMsIDIs IDB4MTM4LCAwLCAyKSwKKwlSS19QSU5EUklWRSgzLCAyLCAweDEzOCwgMSwgNCksCisJUktfUElO RFJJVkUoMywgMiwgMHgxMzgsIDIsIDgpLAorCVJLX1BJTkRSSVZFKDMsIDIsIDB4MTM4LCAzLCAx MiksCisKKwlSS19QSU5EUklWRSgzLCAzLCAweDEzQywgMCwgMiksCisJUktfUElORFJJVkUoMywg MywgMHgxM0MsIDEsIDQpLAorCVJLX1BJTkRSSVZFKDMsIDMsIDB4MTNDLCAyLCA4KSwKKwlSS19Q SU5EUklWRSgzLCAzLCAweDEzQywgMywgMTIpLAorCisJUktfUElORFJJVkUoNCwgMCwgMHgxNDAs IDAsIDIpLAorCVJLX1BJTkRSSVZFKDQsIDAsIDB4MTQwLCAxLCA0KSwKKwlSS19QSU5EUklWRSg0 LCAwLCAweDE0MCwgMiwgOCksCisJUktfUElORFJJVkUoNCwgMCwgMHgxNDAsIDQsIDEyKSwKKwor CVJLX1BJTkRSSVZFKDQsIDEsIDB4MTQ0LCAwLCAyKSwKKwlSS19QSU5EUklWRSg0LCAxLCAweDE0 NCwgMSwgNCksCisJUktfUElORFJJVkUoNCwgMSwgMHgxNDQsIDIsIDgpLAorCVJLX1BJTkRSSVZF KDQsIDEsIDB4MTQ0LCA0LCAxMiksCisKKwlSS19QSU5EUklWRSg0LCAyLCAweDE0OCwgMCwgMiks CisJUktfUElORFJJVkUoNCwgMiwgMHgxNDgsIDEsIDQpLAorCVJLX1BJTkRSSVZFKDQsIDIsIDB4 MTQ4LCAyLCA4KSwKKwlSS19QSU5EUklWRSg0LCAyLCAweDE0OCwgNCwgMTIpLAorCisJUktfUElO RFJJVkUoNCwgNCwgMHgxNEMsIDAsIDIpLAorCVJLX1BJTkRSSVZFKDQsIDQsIDB4MTRDLCAxLCA0 KSwKKwlSS19QSU5EUklWRSg0LCA0LCAweDE0QywgMiwgOCksCisJUktfUElORFJJVkUoNCwgNCwg MHgxNEMsIDQsIDEyKSwKKwkKK307CisKK3N0YXRpYyB1aW50MzJfdAorcmszMzA4X2dldF9wZF9v ZmZzZXQoc3RydWN0IHJrX3BpbmN0cmxfc29mdGMgKnNjLCB1aW50MzJfdCBiYW5rKQoreworCXJl dHVybiAoMHhBMCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzY29uICoKK3JrMzMwOF9nZXRfc3lz Y29uKHN0cnVjdCBya19waW5jdHJsX3NvZnRjICpzYywgdWludDMyX3QgYmFuaykKK3sKKwlyZXR1 cm4gKHNjLT5ncmYpOworfQorCitzdHJ1Y3QgcmtfcGluY3RybF9jb25mIHJrMzMwOF9jb25mID0g eworCS5pb211eF9jb25mID0gcmszMzA4X2lvbXV4X2JhbmssCisJLmlvbXV4X25iYW5rcyA9IG5p dGVtcyhyazMzMDhfaW9tdXhfYmFuayksCisJLnBpbl9maXh1cCA9IHJrMzMwOF9waW5fZml4dXAs CisJLm5waW5fZml4dXAgPSBuaXRlbXMocmszMzA4X3Bpbl9maXh1cCksCisJLnBpbl9kcml2ZSA9 IHJrMzMwOF9waW5fZHJpdmUsCisJLm5waW5fZHJpdmUgPSBuaXRlbXMocmszMzA4X3Bpbl9kcml2 ZSksCisJLmdwaW9fYmFuayA9IHJrMzMwOF9ncGlvX2JhbmssCisJLm5ncGlvX2JhbmsgPSBuaXRl bXMocmszMzA4X2dwaW9fYmFuayksCisJLmdldF9wZF9vZmZzZXQgPSByazMzMDhfZ2V0X3BkX29m ZnNldCwKKwkuZ2V0X3N5c2NvbiA9IHJrMzMwOF9nZXRfc3lzY29uLAorCS5wYXJzZV9iaWFzID0g cmszMjg4X3BhcnNlX2JpYXMsCisJLnJlc29sdl9iaWFzX3ZhbHVlID0gcmszMjg4X3Jlc29sdl9i aWFzX3ZhbHVlLAorCS5nZXRfYmlhc192YWx1ZSA9IHJrMzI4OF9nZXRfYmlhc192YWx1ZSwKK307 CisKIHN0YXRpYyBzdHJ1Y3Qgb2Z3X2NvbXBhdF9kYXRhIGNvbXBhdF9kYXRhW10gPSB7CiAJeyJy b2NrY2hpcCxyazMyODgtcGluY3RybCIsICh1aW50cHRyX3QpJnJrMzI4OF9jb25mfSwKIAl7InJv Y2tjaGlwLHJrMzMyOC1waW5jdHJsIiwgKHVpbnRwdHJfdCkmcmszMzI4X2NvbmZ9LAogCXsicm9j a2NoaXAscmszMzk5LXBpbmN0cmwiLCAodWludHB0cl90KSZyazMzOTlfY29uZn0sCiAJeyJyb2Nr Y2hpcCxyazM1NjgtcGluY3RybCIsICh1aW50cHRyX3QpJnJrMzU2OF9jb25mfSwKKwl7InJvY2tj aGlwLHJrMzMwOC1waW5jdHJsIiwgKHVpbnRwdHJfdCkmcmszMzA4X2NvbmZ9LAkKIAl7TlVMTCwg ICAgICAgICAgICAgMH0KIH07CiAKZGlmZiAtLWdpdCBhL3N5cy9hcm02NC9yb2NrY2hpcC9ya19n cmYuYyBiL3N5cy9hcm02NC9yb2NrY2hpcC9ya19ncmYuYwotLS0gYS9zeXMvYXJtNjQvcm9ja2No aXAvcmtfZ3JmLmMKKysrIGIvc3lzL2FybTY0L3JvY2tjaGlwL3JrX2dyZi5jCkBAIC01NSw2ICs1 NSw3IEBACiAJeyJyb2NrY2hpcCxyazM1NjgtcGlwZS1ncmYiLCAxfSwKIAl7InJvY2tjaGlwLHJr MzU2OC1waXBlLXBoeS1ncmYiLCAxfSwKIAl7InJvY2tjaGlwLHJrMzU2OC1wY2llMy1waHktZ3Jm IiwgMX0sCisJeyJyb2NrY2hpcCxyazMzMDgtZ3JmIiwgMX0sCQogCXtOVUxMLCAgICAgICAgICAg ICAwfQogfTsKIApkaWZmIC0tZ2l0IGEvc3lzL2FybTY0L3JvY2tjaGlwL2lmX2R3Y19yay5jIGIv c3lzL2FybTY0L3JvY2tjaGlwL2lmX2R3Y19yay5jCi0tLSBhL3N5cy9hcm02NC9yb2NrY2hpcC9p Zl9kd2NfcmsuYworKysgYi9zeXMvYXJtNjQvcm9ja2NoaXAvaWZfZHdjX3JrLmMKQEAgLTEsNSAr MSw1IEBACiAvKi0KLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UKKyAq IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtRnJlZUJTRAogICoKICAqIENv cHlyaWdodCAoYykgMjAxOCBFbW1hbnVlbCBWYWRvdCA8bWFudUBmcmVlYnNkLm9yZz4KICAqCkBA IC0xMDMsNiArMTAzLDEzIEBACiAjZGVmaW5lCSBTT0NfQ09ONl9HTUFDX1JYQ0xLX0RMWV9FTkEJ CSgxIDw8IDE1KQogI2RlZmluZQkgU09DX0NPTjZfUlhfRExfQ0ZHX1NISUZUCQk4CiAKKy8qIFJL MzMwOCByZWdpc3RlcnMgKi8KKyNkZWZpbmUgUkszMzA4X0dSRl9NQUNfQ09OMAkweDA0YTAKKyNk ZWZpbmUgUkszMzA4X01BQ19TUEVFRF8xMDBNCSgoMHgxIDw8IDApIDw8IDE2IHwgKDB4MSA8PCAw KSkKKyNkZWZpbmUgUkszMzA4X01BQ19TUEVFRF8xME0JKCgweDEgPDwgMCkgPDwgMTYgfCAoMHgw IDw8IDApKQorI2RlZmluZSBSSzMzMDhfSU5URl9TRUxfUk1JSQkoKDB4MSA8PCA0KSA8PCAxNiB8 ICgweDEgPDwgNCkpCisKKwogc3RydWN0IGlmX2R3Y19ya19zb2Z0YzsKIAogdHlwZWRlZiB2b2lk ICgqaWZfZHdjX3JrX3NldF9kZWxheXNmbl90KShzdHJ1Y3QgaWZfZHdjX3JrX3NvZnRjICopOwpA QCAtMTQ3LDkgKzE1NCwxMyBAQAogc3RhdGljIHZvaWQgcmszMzk5X3NldF9kZWxheXMoc3RydWN0 IGlmX2R3Y19ya19zb2Z0YyAqc2MpOwogc3RhdGljIGludCByazMzOTlfc2V0X3NwZWVkKHN0cnVj dCBpZl9kd2Nfcmtfc29mdGMgKnNjLCBpbnQgc3BlZWQpOwogCitzdGF0aWMgaW50IHJrMzMwOF9z ZXRfc3BlZWQoc3RydWN0IGlmX2R3Y19ya19zb2Z0YyAqc2MsIGludCBzcGVlZCk7CitzdGF0aWMg dm9pZCByazMzMDhfc2V0X3BoeV9tb2RlKHN0cnVjdCBpZl9kd2Nfcmtfc29mdGMgKnNjKTsKKwog c3RhdGljIHN0cnVjdCBpZl9kd2Nfcmtfb3BzIHJrMzI4OF9vcHMgPSB7CiB9OwogCisKIHN0YXRp YyBzdHJ1Y3QgaWZfZHdjX3JrX29wcyByazMzMjhfb3BzID0gewogCS5zZXRfZGVsYXlzID0gcmsz MzI4X3NldF9kZWxheXMsCiAJLnNldF9zcGVlZCA9IHJrMzMyOF9zZXRfc3BlZWQsCkBAIC0xNjIs MTAgKzE3MywxNyBAQAogCS5zZXRfc3BlZWQgPSByazMzOTlfc2V0X3NwZWVkLAogfTsKIAorc3Rh dGljIHN0cnVjdCBpZl9kd2Nfcmtfb3BzIHJrMzMwOF9vcHMgPSB7CisJLnNldF9zcGVlZCA9IHJr MzMwOF9zZXRfc3BlZWQsCisJLnNldF9waHlfbW9kZSA9IHJrMzMwOF9zZXRfcGh5X21vZGUsCit9 OworCiBzdGF0aWMgc3RydWN0IG9md19jb21wYXRfZGF0YSBjb21wYXRfZGF0YVtdID0gewogCXsi cm9ja2NoaXAscmszMjg4LWdtYWMiLCAodWludHB0cl90KSZyazMyODhfb3BzfSwKIAl7InJvY2tj aGlwLHJrMzMyOC1nbWFjIiwgKHVpbnRwdHJfdCkmcmszMzI4X29wc30sCiAJeyJyb2NrY2hpcCxy azMzOTktZ21hYyIsICh1aW50cHRyX3QpJnJrMzM5OV9vcHN9LAorCXsicm9ja2NoaXAscmszMzA4 LWdtYWMiLCAodWludHB0cl90KSZyazMzMDhfb3BzfSwJCisJeyJyb2NrY2hpcCxyazMzMDgtbWFj IiwgKHVpbnRwdHJfdCkmcmszMzA4X29wc30sCQkKIAl7TlVMTCwJCQkgMH0KIH07CiAKQEAgLTMz Nyw2ICszNTUsNDYgQEAKIAkgICAgKChTT0NfQ09ONV9HTUFDX0NMS19TRUxfTUFTSyA8PCAxNikg fCByZWcpKTsKIAlyZXR1cm4gKDApOwogfQorc3RhdGljIGludAorcmszMzA4X3NldF9zcGVlZChz dHJ1Y3QgaWZfZHdjX3JrX3NvZnRjICpzYywgaW50IHNwZWVkKQoreworCXVpbnQzMl90IHJlZzsK KworCXN3aXRjaCAoc2MtPmJhc2UucGh5X21vZGUpIHsKKwljYXNlIFBIWV9NT0RFX1JHTUlJOgor CQlicmVhazsKKwljYXNlIFBIWV9NT0RFX1JNSUk6CisJCXN3aXRjaCAoc3BlZWQpIHsKKwkJY2Fz ZSBJRk1fMTAwX1RYOgorCQkJcmVnID0gUkszMzA4X0lOVEZfU0VMX1JNSUkgfCBSSzMzMDhfTUFD X1NQRUVEXzEwME07CisJCQlicmVhazsKKwkJY2FzZSBJRk1fMTBfVDoKKwkJCSByZWcgPSBSSzMz MDhfSU5URl9TRUxfUk1JSSB8IFJLMzMwOF9NQUNfU1BFRURfMTBNOworCQkJYnJlYWs7CisJCWRl ZmF1bHQ6CisJCQlkZXZpY2VfcHJpbnRmKHNjLT5iYXNlLmRldiwgInVuc3VwcG9ydGVkIFJNSUkg bWVkaWEgJXVcbiIsIHNwZWVkKTsKKwkJCXJldHVybiAoLTEpOworCQl9CisKKwkJU1lTQ09OX1dS SVRFXzQoc2MtPmdyZiwgUkszMzA4X0dSRl9NQUNfQ09OMCwgcmVnKTsKKwkJYnJlYWs7CisJfQor CisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIHZvaWQKK3JrMzMwOF9zZXRfcGh5X21vZGUoc3Ry dWN0IGlmX2R3Y19ya19zb2Z0YyAqc2MpCit7CisJc3dpdGNoIChzYy0+YmFzZS5waHlfbW9kZSkg eworCWNhc2UgUEhZX01PREVfUkdNSUk6CisJCWJyZWFrOworCWNhc2UgUEhZX01PREVfUk1JSToK KwkJU1lTQ09OX1dSSVRFXzQoc2MtPmdyZiwgUkszMzA4X0dSRl9NQUNfQ09OMCxSSzMzMDhfSU5U Rl9TRUxfUk1JSSk7CisKKwkJYnJlYWs7CisJfQorfQogCiBzdGF0aWMgaW50CiBpZl9kd2Nfcmtf c3lzY3RsX2RlbGF5cyhTWVNDVExfSEFORExFUl9BUkdTKQpAQCAtNDA3LDYgKzQ2NSw4IEBACiAJ aWYgKGVycm9yICE9IDApIHsKIAkJZGV2aWNlX3ByaW50ZihkZXYsICJjb3VsZCBub3QgZmluZCBj bG9jayBzdG1tYWNldGhcbiIpOwogCQlyZXR1cm4gKGVycm9yKTsKKwl9IGVsc2UgeworLy8JY2xr X3NldF9mcmVxKHNjLT5jbGtfc3RtbWFjZXRoLCA1MDAwMDAwMCwgMCk7CiAJfQogCiAJaWYgKGNs a19nZXRfYnlfb2Z3X25hbWUoZGV2LCAwLCAibWFjX2Nsa19yeCIsICZzYy0+bWFjX2Nsa19yeCkg IT0gMCkgewpAQCAtNDQwLDcgKzUwMCw2IEBACiAJCQkJZGV2aWNlX3ByaW50ZihzYy0+YmFzZS5k ZXYsICJjb3VsZCBub3QgZ2V0IGNsa19tYWNfcmVmb3V0IGNsb2NrXG4iKTsKIAkJCQlzYy0+Y2xr X21hY19yZWZvdXQgPSBOVUxMOwogCQkJfQotCiAJCQljbGtfc2V0X2ZyZXEoc2MtPmNsa19zdG1t YWNldGgsIDUwMDAwMDAwLCAwKTsKIAkJfQogCX0KQEAgLTQ2NCw4ICs1MjMsOSBAQAogCQlpZiAo c2MtPmNsa19tYWNfcmVmb3V0KQogCQkJY2xrX2VuYWJsZShzYy0+Y2xrX21hY19yZWZvdXQpOwog CX0KLQlpZiAoc2MtPmNsa19waHkpCisJaWYgKHNjLT5jbGtfcGh5KSB7CiAJCWNsa19lbmFibGUo c2MtPmNsa19waHkpOworCQl9CiAJaWYgKHNjLT5hY2xrX21hYykKIAkJY2xrX2VuYWJsZShzYy0+ YWNsa19tYWMpOwogCWlmIChzYy0+cGNsa19tYWMpCkBAIC02MTUsOSArNjc1LDExIEBACiAJREVW TUVUSE9EX0VORAogfTsKIAorc3RhdGljIGRldmNsYXNzX3QgZHdjX3JrX2RldmNsYXNzOworCiBl eHRlcm4gZHJpdmVyX3QgZHdjX2RyaXZlcjsKIAogREVGSU5FX0NMQVNTXzEoZHdjLCBkd2Nfcmtf ZHJpdmVyLCBpZl9kd2NfcmtfbWV0aG9kcywKICAgICBzaXplb2Yoc3RydWN0IGlmX2R3Y19ya19z b2Z0YyksIGR3Y19kcml2ZXIpOwotRFJJVkVSX01PRFVMRShkd2NfcmssIHNpbXBsZWJ1cywgZHdj X3JrX2RyaXZlciwgMCwgMCk7CitEUklWRVJfTU9EVUxFKGR3Y19yaywgc2ltcGxlYnVzLCBkd2Nf cmtfZHJpdmVyLCBkd2NfcmtfZGV2Y2xhc3MsIDAsIDApOwogTU9EVUxFX0RFUEVORChkd2Nfcmss IGR3YywgMSwgMSwgMSk7CmRpZmYgLS1naXQgYS9zeXMvYXJtNjQvcm9ja2NoaXAvY2xrL3JrMzMw OF9jcnUuYyBiL3N5cy9hcm02NC9yb2NrY2hpcC9jbGsvcmszMzA4X2NydS5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL2FybTY0L3JvY2tjaGlwL2Nsay9yazMz MDhfY3J1LmMKQEAgLTAsMCArMSw3MjIgQEAKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNs dWRlIDxzeXMvc3lzdG0uaD4KKyNpbmNsdWRlIDxzeXMvYnVzLmg+CisjaW5jbHVkZSA8c3lzL3Jt YW4uaD4KKyNpbmNsdWRlIDxzeXMva2VybmVsLmg+CisjaW5jbHVkZSA8c3lzL21vZHVsZS5oPgor I2luY2x1ZGUgPG1hY2hpbmUvYnVzLmg+CisKKyNpbmNsdWRlIDxkZXYvZmR0L3NpbXBsZWJ1cy5o PgorCisjaW5jbHVkZSA8ZGV2L29mdy9vZndfYnVzLmg+CisjaW5jbHVkZSA8ZGV2L29mdy9vZndf YnVzX3N1YnIuaD4KKworI2luY2x1ZGUgPGRldi9leHRyZXMvY2xrL2Nsa19kaXYuaD4KKyNpbmNs dWRlIDxkZXYvZXh0cmVzL2Nsay9jbGtfZml4ZWQuaD4KKyNpbmNsdWRlIDxkZXYvZXh0cmVzL2Ns ay9jbGtfbXV4Lmg+CisKKyNpbmNsdWRlIDxhcm02NC9yb2NrY2hpcC9jbGsvcmtfY3J1Lmg+Cisj aW5jbHVkZSA8Y29udHJpYi9kZXZpY2UtdHJlZS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3Jr MzMwOC1jcnUuaD4KKworCisjZGVmaW5lIFJLMzMwOF9QTExTRUxfQ09OKHgpIAkJKCh4KSAqIDB4 MjApCisjZGVmaW5lIFJLMzMwOF9DTEtTRUxfQ09OKHgpCQkoKHgpICogMHg0ICsgMHgxMDApCisj ZGVmaW5lIFJLMzMwOF9DTEtHQVRFX0NPTih4KQkJKCh4KSAqIDB4NCArIDB4MzAwKQorI2RlZmlu ZSBSSzMzMDhfR0xCX1NSU1RfRlNUCQkweGI4CisjZGVmaW5lIFJLMzMwOF9TT0ZUUlNUX0NPTih4 KQkJKCh4KSAqIDB4NCArIDB4NDAwKQorI2RlZmluZSBSSzMzMDhfTU9ERV9DT04JCQkweGEwCisj ZGVmaW5lIFJLMzMwOF9TRE1NQ19DT04wCQkweDQ4MAorI2RlZmluZSBSSzMzMDhfU0RNTUNfQ09O MQkJMHg0ODQKKyNkZWZpbmUgUkszMzA4X1NESU9fQ09OMAkJMHg0ODgKKyNkZWZpbmUgUkszMzA4 X1NESU9fQ09OMQkJMHg0OGMKKyNkZWZpbmUgUkszMzA4X0VNTUNfQ09OMAkJMHg0OTAKKyNkZWZp bmUgUkszMzA4X0VNTUNfQ09OMQkJMHg0OTQKKworCisjZGVmaW5lCVBOQU1FKF9uYW1lKSBzdGF0 aWMgY29uc3QgY2hhciAqX25hbWVbXQorCisKKyNkZWZpbmUJUktfUExMUkFURShfaHosIF9yZWYs IF9mYiwgX3Bvc3QxLCBfcG9zdDIsIF9kc3BkKQkJXAorewkJCQkJCQkJCVwKKwkuZnJlcSA9IF9o eiwJCQkJCQkJXAorCS5yZWZkaXYgPSBfcmVmLAkJCQkJCQlcCisJLmZiZGl2ID0gX2ZiLAkJCQkJ CQlcCisJLnBvc3RkaXYxID0gX3Bvc3QxLAkJCQkJCVwKKwkucG9zdGRpdjIgPSBfcG9zdDIsCQkJ CQkJXAorCS5kc21wZCA9IF9kc3BkLAkJCQkJCQlcCit9CisKKy8qIFBMTCBjbG9jayAqLworI2Rl ZmluZQlSS19QTEwoX2lkLCBfbmFtZSwgX3BuYW1lcywgX29mZiwgX3NoaWZ0KQkJCVwKK3sJCQkJ CQkJCQlcCisJLnR5cGUgPSBSSzMzMjhfQ0xLX1BMTCwJCQkJCQlcCisJLmNsay5wbGwgPSAmKHN0 cnVjdCBya19jbGtfcGxsX2RlZikgewkJCQlcCisJCS5jbGtkZWYuaWQgPSBfaWQsCQkJCQlcCisJ CS5jbGtkZWYubmFtZSA9IF9uYW1lLAkJCQkJXAorCQkuY2xrZGVmLnBhcmVudF9uYW1lcyA9IF9w bmFtZXMsCQkJCVwKKwkJLmNsa2RlZi5wYXJlbnRfY250ID0gbml0ZW1zKF9wbmFtZXMpLAkJCVwK KwkJLmNsa2RlZi5mbGFncyA9IENMS19OT0RFX1NUQVRJQ19TVFJJTkdTLAkJXAorCQkuYmFzZV9v ZmZzZXQgPSBSSzMzMDhfUExMU0VMX0NPTihfb2ZmKSwJCQlcCisJCS5tb2RlX3JlZyA9IDB4YzAs CQkJCQlcCisJCS5tb2RlX3NoaWZ0ID0gX3NoaWZ0LAkJCQkJXAorCQkucmF0ZXMgPSByazMzMDhf cGxsX3JhdGVzLAkJCQlcCisJfSwJCQkJCQkJCVwKK30KKworLyogQ2xvY2sgZm9yIEFSTSBjb3Jl KHMpICovCisjZGVmaW5lCVJLX0FSTURJVihfaWQsIF9ubSwgX3BuLCBfciwgX29mZiwgX2RzLCBf ZHcsIF9tcywgX213LCBfbXAsIF9hcClcCit7CQkJCQkJCQkJXAorCS50eXBlID0gUktfQ0xLX0FS TUNMSywJCQkJCQlcCisJLmNsay5hcm1jbGsgPSAmKHN0cnVjdCBya19jbGtfYXJtY2xrX2RlZikg ewkJCVwKKwkJLmNsa2RlZi5pZCA9IF9pZCwJCQkJCVwKKwkJLmNsa2RlZi5uYW1lID0gX25tLAkJ CQkJXAorCQkuY2xrZGVmLnBhcmVudF9uYW1lcyA9IF9wbiwJCQkJXAorCQkuY2xrZGVmLnBhcmVu dF9jbnQgPSBuaXRlbXMoX3BuKSwJCQlcCisJCS5jbGtkZWYuZmxhZ3MgPSBDTEtfTk9ERV9TVEFU SUNfU1RSSU5HUywJCVwKKwkJLm11eGRpdl9vZmZzZXQgPSBSSzMzMDhfQ0xLU0VMX0NPTihfb2Zm KSwJCVwKKwkJLm11eF9zaGlmdCA9IF9tcywJCQkJCVwKKwkJLm11eF93aWR0aCA9IF9tdywJCQkJ CVwKKwkJLmRpdl9zaGlmdCA9IF9kcywJCQkJCVwKKwkJLmRpdl93aWR0aCA9IF9kdywJCQkJCVwK KwkJLm1haW5fcGFyZW50ID0gX21wLAkJCQkJXAorCQkuYWx0X3BhcmVudCA9IF9hcCwJCQkJCVwK KwkJLnJhdGVzID0gX3IsCQkJCQkJXAorCQkubnJhdGVzID0gbml0ZW1zKF9yKSwJCQkJCVwKKwl9 LAkJCQkJCQkJXAorfQorCisvKiBDb21wb3NpdGUgKi8KKyNkZWZpbmUJUktfQ09NUE9TSVRFKF9p ZCwgX25hbWUsIF9wbmFtZXMsIF9vLCBfbXMsIF9tdywgX2RzLCBfZHcsIF9nbywgX2d3LF9mKVwK K3sJCQkJCQkJCQlcCisJLnR5cGUgPSBSS19DTEtfQ09NUE9TSVRFLAkJCQkJXAorCS5jbGsuY29t cG9zaXRlID0gJihzdHJ1Y3QgcmtfY2xrX2NvbXBvc2l0ZV9kZWYpIHsJCVwKKwkJLmNsa2RlZi5p ZCA9IF9pZCwJCQkJCVwKKwkJLmNsa2RlZi5uYW1lID0gX25hbWUsCQkJCQlcCisJCS5jbGtkZWYu cGFyZW50X25hbWVzID0gX3BuYW1lcywJCQkJXAorCQkuY2xrZGVmLnBhcmVudF9jbnQgPSBuaXRl bXMoX3BuYW1lcyksCQkJXAorCQkuY2xrZGVmLmZsYWdzID0gQ0xLX05PREVfU1RBVElDX1NUUklO R1MsCQlcCisJCS5tdXhkaXZfb2Zmc2V0ID0gUkszMzA4X0NMS1NFTF9DT04oX28pLAkJCVwKKwkJ Lm11eF9zaGlmdCA9IF9tcywJCQkJCVwKKwkJLm11eF93aWR0aCA9IF9tdywJCQkJCVwKKwkJLmRp dl9zaGlmdCA9IF9kcywJCQkJCVwKKwkJLmRpdl93aWR0aCA9IF9kdywJCQkJCVwKKwkJLmdhdGVf b2Zmc2V0ID0gUkszMzA4X0NMS0dBVEVfQ09OKF9nbyksCQkJXAorCQkuZ2F0ZV9zaGlmdCA9IF9n dywJCQkJCVwKKwkJLmZsYWdzID0gUktfQ0xLX0NPTVBPU0lURV9IQVZFX01VWCB8CQkJXAorCQkJ IFJLX0NMS19DT01QT1NJVEVfSEFWRV9HQVRFIHwgX2YsCQlcCisJfSwJCQkJCQkJCVwKK30KKwor LyogQ29tcG9zaXRlIG5vIG11eCAqLworI2RlZmluZQlSS19DT01QTk9NVVgoX2lkLCBfbmFtZSwg X3BuYW1lLCBfbywgX2RzLCBfZHcsIF9nbywgX2d3LCBfZikJXAorewkJCQkJCQkJCVwKKwkudHlw ZSA9IFJLX0NMS19DT01QT1NJVEUsCQkJCQlcCisJLmNsay5jb21wb3NpdGUgPSAmKHN0cnVjdCBy a19jbGtfY29tcG9zaXRlX2RlZikgewkJXAorCQkuY2xrZGVmLmlkID0gX2lkLAkJCQkJXAorCQku Y2xrZGVmLm5hbWUgPSBfbmFtZSwJCQkJCVwKKwkJLmNsa2RlZi5wYXJlbnRfbmFtZXMgPSAoY29u c3QgY2hhciAqW10pe19wbmFtZX0sCVwKKwkJLmNsa2RlZi5wYXJlbnRfY250ID0gMSwJCQkJCVwK KwkJLmNsa2RlZi5mbGFncyA9IENMS19OT0RFX1NUQVRJQ19TVFJJTkdTLAkJXAorCQkubXV4ZGl2 X29mZnNldCA9IFJLMzMwOF9DTEtTRUxfQ09OKF9vKSwJCQlcCisJCS5kaXZfc2hpZnQgPSBfZHMs CQkJCQlcCisJCS5kaXZfd2lkdGggPSBfZHcsCQkJCQlcCisJCS5nYXRlX29mZnNldCA9IFJLMzMw OF9DTEtHQVRFX0NPTihfZ28pLAkJCVwKKwkJLmdhdGVfc2hpZnQgPSBfZ3csCQkJCQlcCisJCS5m bGFncyA9IFJLX0NMS19DT01QT1NJVEVfSEFWRV9HQVRFIHwgX2YsCQlcCisJfSwJCQkJCQkJCVwK K30KKworLyogQ29tcG9zaXRlIG5vIGRpdiAqLworI2RlZmluZQlSS19DT01QTk9ESVYoX2lkLCBf bmFtZSwgX3BuYW1lcywgX28sIF9tcywgX213LCBfZ28sIF9ndywgX2YpCVwKK3sJCQkJCQkJCQlc CisJLnR5cGUgPSBSS19DTEtfQ09NUE9TSVRFLAkJCQkJXAorCS5jbGsuY29tcG9zaXRlID0gJihz dHJ1Y3QgcmtfY2xrX2NvbXBvc2l0ZV9kZWYpIHsJCVwKKwkJLmNsa2RlZi5pZCA9IF9pZCwJCQkJ CVwKKwkJLmNsa2RlZi5uYW1lID0gX25hbWUsCQkJCQlcCisJCS5jbGtkZWYucGFyZW50X25hbWVz ID0gX3BuYW1lcywJCQkJXAorCQkuY2xrZGVmLnBhcmVudF9jbnQgPSAgbml0ZW1zKF9wbmFtZXMp LAkJCVwKKwkJLmNsa2RlZi5mbGFncyA9IENMS19OT0RFX1NUQVRJQ19TVFJJTkdTLAkJXAorCQku bXV4ZGl2X29mZnNldCA9IFJLMzMwOF9DTEtTRUxfQ09OKF9vKSwJCQlcCisJCS5tdXhfc2hpZnQg PSBfbXMsCQkJCQlcCisJCS5tdXhfd2lkdGggPSBfbXcsCQkJCQlcCisJCS5nYXRlX29mZnNldCA9 IFJLMzMwOF9DTEtHQVRFX0NPTihfZ28pLAkJCVwKKwkJLmdhdGVfc2hpZnQgPSBfZ3csCQkJCQlc CisJCS5mbGFncyA9IFJLX0NMS19DT01QT1NJVEVfSEFWRV9NVVggfAkJCVwKKwkJCSBSS19DTEtf Q09NUE9TSVRFX0hBVkVfR0FURSB8IF9mLAkJXAorCX0sCQkJCQkJCQlcCit9CisKKy8qIENvbXBv c2l0ZSBkaXYgb25seSAqLworI2RlZmluZQlSS19DT01QRElWKF9pZCwgX25hbWUsIF9wbmFtZSwg X28sIF9kcywgX2R3LCBfZikJCVwKK3sJCQkJCQkJCQlcCisJLnR5cGUgPSBSS19DTEtfQ09NUE9T SVRFLAkJCQkJXAorCS5jbGsuY29tcG9zaXRlID0gJihzdHJ1Y3QgcmtfY2xrX2NvbXBvc2l0ZV9k ZWYpIHsJCVwKKwkJLmNsa2RlZi5pZCA9IF9pZCwJCQkJCVwKKwkJLmNsa2RlZi5uYW1lID0gX25h bWUsCQkJCQlcCisJCS5jbGtkZWYucGFyZW50X25hbWVzID0gKGNvbnN0IGNoYXIgKltdKXtfcG5h bWV9LAlcCisJCS5jbGtkZWYucGFyZW50X2NudCA9IDEsCQkJCQlcCisJCS5jbGtkZWYuZmxhZ3Mg PSBDTEtfTk9ERV9TVEFUSUNfU1RSSU5HUywJCVwKKwkJLm11eGRpdl9vZmZzZXQgPSBSSzMzMDhf Q0xLU0VMX0NPTihfbyksCQkJXAorCQkuZGl2X3NoaWZ0ID0gX2RzLAkJCQkJXAorCQkuZGl2X3dp ZHRoID0gX2R3LAkJCQkJXAorCQkuZmxhZ3MgPSAgX2YsCQkJCQkJXAorCX0sCQkJCQkJCQlcCit9 CisKKworLyogRml4ZWQgZmFjdG9yIG11eC9kaXYgKi8KKyNkZWZpbmUJUktfRkFDVE9SKF9pZCwg X25hbWUsIF9wbmFtZSwgX211bHQsIF9kaXYpCQkJXAorewkJCQkJCQkJCVwKKwkudHlwZSA9IFJL X0NMS19GSVhFRCwJCQkJCQlcCisJLmNsay5maXhlZCA9ICYoc3RydWN0IGNsa19maXhlZF9kZWYp IHsJCQkJXAorCQkuY2xrZGVmLmlkID0gX2lkLAkJCQkJXAorCQkuY2xrZGVmLm5hbWUgPSBfbmFt ZSwJCQkJCVwKKwkJLmNsa2RlZi5wYXJlbnRfbmFtZXMgPSAoY29uc3QgY2hhciAqW10pe19wbmFt ZX0sCVwKKwkJLmNsa2RlZi5wYXJlbnRfY250ID0gMSwJCQkJCVwKKwkJLmNsa2RlZi5mbGFncyA9 IENMS19OT0RFX1NUQVRJQ19TVFJJTkdTLAkJXAorCQkubXVsdCA9IF9tdWx0LAkJCQkJCVwKKwkJ LmRpdiA9IF9kaXYsCQkJCQkJXAorCX0sCQkJCQkJCQlcCit9CisKKworI2RlZmluZSBSS19GQUNU T1JfR0FURShfaWQsIGNuYW1lLCBwbmFtZSxmLCAgZm0sIGZkLCBnbywgZ2IsIGdmKQlcCisJewkJ CQkJCQlcCisJLnR5cGUgPSBSS19DTEtfQ09NUE9TSVRFLAkJCQkJCVwKKwkuY2xrLmNvbXBvc2l0 ZSA9ICYoc3RydWN0IHJrX2Nsa19jb21wb3NpdGVfZGVmKSB7CQkJCVwKKwkJLmNsa2RlZi5pZCA9 IF9pZCwJCQkJCVwKKwkJLmNsa2RlZi5uYW1lID0gY25hbWUsCQkJCQlcCisJCS5jbGtkZWYucGFy ZW50X25hbWVzID0gKGNvbnN0IGNoYXIgKltdKXsgcG5hbWUgfSwJXAorCQkuY2xrZGVmLnBhcmVu dF9jbnQgPSAxLAkJCQkJXAorCQkuY2xrZGVmLmZsYWdzID0gQ0xLX05PREVfU1RBVElDX1NUUklO R1MsCQlcCisJCS5kaXZfc2hpZnQJPSBmbSwJCQkJXAorCQkuZGl2X3dpZHRoCT0gZmQsCQkJCVwK KwkJLmdhdGVfb2Zmc2V0CT0gZ28sCQkJCVwKKwkJLmdhdGVfc2hpZnQJPSBnYiwJCQkJXAorCQku ZmxhZ3MJPSBSS19DTEtfRlJBQ1RfSEFWRV9HQVRFIHwgZ2YsCQkJCVwKKwl9LAlcCit9CisvKiBG cmFjdGlvbmFsICovCisjZGVmaW5lCVJLX0ZSQUNUSU9OKF9pZCwgX25hbWUsIF9wbmFtZSwgX28s IF9nbywgX2d3LCBfZikJCVwKK3sJCQkJCQkJCQlcCisJLnR5cGUgPSBSS19DTEtfRlJBQ1QsCQkJ CQkJXAorCS5jbGsuZnJhY3QgPSAmKHN0cnVjdCBya19jbGtfZnJhY3RfZGVmKSB7CQkJXAorCQku Y2xrZGVmLmlkID0gX2lkLAkJCQkJXAorCQkuY2xrZGVmLm5hbWUgPSBfbmFtZSwJCQkJCVwKKwkJ LmNsa2RlZi5wYXJlbnRfbmFtZXMgPSAoY29uc3QgY2hhciAqW10pe19wbmFtZX0sCVwKKwkJLmNs a2RlZi5wYXJlbnRfY250ID0gMSwJCQkJCVwKKwkJLmNsa2RlZi5mbGFncyA9IENMS19OT0RFX1NU QVRJQ19TVFJJTkdTLAkJXAorCQkub2Zmc2V0ID0gUkszMzA4X0NMS1NFTF9DT04oX28pLAkJCVwK KwkJLmdhdGVfb2Zmc2V0ID0gUkszMzA4X0NMS0dBVEVfQ09OKF9nbyksCQkJXAorCQkuZ2F0ZV9z aGlmdCA9IF9ndywJCQkJCVwKKwkJLmZsYWdzID0gUktfQ0xLX0ZSQUNUX0hBVkVfR0FURSB8IF9m LAkJCVwKKwl9LAkJCQkJCQkJXAorfQorCisvKiBNdWx0aXBsZXhlciAqLworI2RlZmluZQlSS19N VVgoX2lkLCBfbmFtZSwgX3BuYW1lcywgX28sIF9tcywgX213LCBfZikJCQlcCit7CQkJCQkJCQkJ XAorCS50eXBlID0gUktfQ0xLX01VWCwJCQkJCQlcCisJLmNsay5tdXggPSAmKHN0cnVjdCBya19j bGtfbXV4X2RlZikgewkJCQlcCisJCS5jbGtkZWYuaWQgPSBfaWQsCQkJCQlcCisJCS5jbGtkZWYu bmFtZSA9IF9uYW1lLAkJCQkJXAorCQkuY2xrZGVmLnBhcmVudF9uYW1lcyA9IF9wbmFtZXMsCQkJ CVwKKwkJLmNsa2RlZi5wYXJlbnRfY250ID0gbml0ZW1zKF9wbmFtZXMpLAkJCVwKKwkJLmNsa2Rl Zi5mbGFncyA9IENMS19OT0RFX1NUQVRJQ19TVFJJTkdTLAkJXAorCQkub2Zmc2V0ID0gUkszMzA4 X0NMS1NFTF9DT04oX28pLAkJCVwKKwkJLnNoaWZ0ID0gX21zLAkJCQkJCVwKKwkJLndpZHRoID0g X213LAkJCQkJCVwKKwkJLm11eF9mbGFncyA9IF9mLAkJCQkJXAorCX0sCQkJCQkJCQlcCit9CisK KyNkZWZpbmUJUktfR0FURShfaWQsIF9uYW1lLCBfcG5hbWUsIF9vLCBfcykJCQkJXAorewkJCQkJ CQkJCVwKKwkuaWQgPSBfaWQsCQkJCQkJCVwKKwkubmFtZSA9IF9uYW1lLAkJCQkJCQlcCisJLnBh cmVudF9uYW1lID0gX3BuYW1lLAkJCQkJCVwKKwkub2Zmc2V0ID0gUkszMzA4X0NMS0dBVEVfQ09O KF9vKSwJCQkJXAorCS5zaGlmdCA9IF9zLAkJCQkJCQlcCit9CisjZGVmaW5lCVJLX01NQyhfaWQs IF9uYW1lLCBfcG5hbWUsIF9vLCBfZHMpCQlcCit7CQkJCQkJCQkJXAorCS50eXBlID0gUktfQ0xL X0NPTVBPU0lURSwJCQkJCVwKKwkuY2xrLmNvbXBvc2l0ZSA9ICYoc3RydWN0IHJrX2Nsa19jb21w b3NpdGVfZGVmKSB7CQlcCisJCS5jbGtkZWYuaWQgPSBfaWQsCQkJCQlcCisJCS5jbGtkZWYubmFt ZSA9IF9uYW1lLAkJCQkJXAorCQkuY2xrZGVmLnBhcmVudF9uYW1lcyA9IChjb25zdCBjaGFyICpb XSl7X3BuYW1lfSwJXAorCQkuY2xrZGVmLnBhcmVudF9jbnQgPSAxLAkJCQkJXAorCQkuY2xrZGVm LmZsYWdzID0gQ0xLX05PREVfU1RBVElDX1NUUklOR1MsCQlcCisJCS5tdXhkaXZfb2Zmc2V0ID0g UkszMzA4X0NMS1NFTF9DT04oX28pLAkJCVwKKwkJLmRpdl9zaGlmdCA9IF9kcywJCQkJCVwKKwl9 LAkJCQkJCQkJXAorfQorCitzdHJ1Y3QgcmtfY2xrX3BsbF9yYXRlIHJrMzMwOF9wbGxfcmF0ZXNb XSA9IHsKKwkvKiBfbWh6LCBfcmVmZGl2LCBfZmJkaXYsIF9wb3N0ZGl2MSwgX3Bvc3RkaXYyLCBf ZHNtcGQgKi8KKwlSS19QTExSQVRFKDE2MDgwMDAwMDAsIDEsIDY3LCAxLCAxLCAxKSwKKwlSS19Q TExSQVRFKDE1ODQwMDAwMDAsIDEsIDY2LCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDE1NjAwMDAw MDAsIDEsIDY1LCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDE1MzYwMDAwMDAsIDEsIDY0LCAxLCAx LCAxKSwKKwlSS19QTExSQVRFKDE1MTIwMDAwMDAsIDEsIDYzLCAxLCAxLCAxKSwKKwlSS19QTExS QVRFKDE0ODgwMDAwMDAsIDEsIDYyLCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDE0NjQwMDAwMDAs IDEsIDYxLCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDE0NDAwMDAwMDAsIDEsIDYwLCAxLCAxLCAx KSwKKwlSS19QTExSQVRFKDE0MTYwMDAwMDAsIDEsIDU5LCAxLCAxLCAxKSwKKwlSS19QTExSQVRF KDEzOTIwMDAwMDAsIDEsIDU4LCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDEzNjgwMDAwMDAsIDEs IDU3LCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDEzNDQwMDAwMDAsIDEsIDU2LCAxLCAxLCAxKSwK KwlSS19QTExSQVRFKDEzMjAwMDAwMDAsIDEsIDU1LCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDEy OTYwMDAwMDAsIDEsIDU0LCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDEyNzIwMDAwMDAsIDEsIDUz LCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDEyNDgwMDAwMDAsIDEsIDUyLCAxLCAxLCAxKSwKKwlS S19QTExSQVRFKDEyMDAwMDAwMDAsIDEsIDUwLCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDExODgw MDAwMDAsIDIsIDk5LCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDExMDQwMDAwMDAsIDEsIDQ2LCAx LCAxLCAxKSwKKwlSS19QTExSQVRFKDExMDAwMDAwMDAsIDEyLCA1NTAsIDEsIDEsIDEpLAorCVJL X1BMTFJBVEUoMTAwODAwMDAwMCwgMSwgODQsIDIsIDEsIDEpLAorCVJLX1BMTFJBVEUoMTAwMDAw MDAwMCwgNiwgNTAwLCAyLCAxLCAxKSwKKwlSS19QTExSQVRFKDk4NDAwMDAwMCwgMSwgODIsIDIs IDEsIDEpLAorCVJLX1BMTFJBVEUoOTYwMDAwMDAwLCAxLCA4MCwgMiwgMSwgMSksCisJUktfUExM UkFURSg5MzYwMDAwMDAsIDEsIDc4LCAyLCAxLCAxKSwKKwlSS19QTExSQVRFKDkxMjAwMDAwMCwg MSwgNzYsIDIsIDEsIDEpLAorCVJLX1BMTFJBVEUoOTAwMDAwMDAwLCA0LCAzMDAsIDIsIDEsIDEp LAorCVJLX1BMTFJBVEUoODg4MDAwMDAwLCAxLCA3NCwgMiwgMSwgMSksCisJUktfUExMUkFURSg4 NjQwMDAwMDAsIDEsIDcyLCAyLCAxLCAxKSwKKwlSS19QTExSQVRFKDg0MDAwMDAwMCwgMSwgNzAs IDIsIDEsIDEpLAorCVJLX1BMTFJBVEUoODE2MDAwMDAwLCAxLCA2OCwgMiwgMSwgMSksCisJUktf UExMUkFURSg4MDAwMDAwMDAsIDYsIDQwMCwgMiwgMSwgMSksCisJUktfUExMUkFURSg3MDAwMDAw MDAsIDYsIDM1MCwgMiwgMSwgMSksCisJUktfUExMUkFURSg2OTYwMDAwMDAsIDEsIDU4LCAyLCAx LCAxKSwKKwlSS19QTExSQVRFKDYyNDAwMDAwMCwgMSwgNTIsIDIsIDEsIDEpLAorCVJLX1BMTFJB VEUoNjAwMDAwMDAwLCAxLCA3NSwgMywgMSwgMSksCisJUktfUExMUkFURSg1OTQwMDAwMDAsIDIs IDk5LCAyLCAxLCAxKSwKKwlSS19QTExSQVRFKDUwNDAwMDAwMCwgMSwgNjMsIDMsIDEsIDEpLAor CVJLX1BMTFJBVEUoNTAwMDAwMDAwLCA2LCAyNTAsIDIsIDEsIDEpLAorCVJLX1BMTFJBVEUoNDA4 MDAwMDAwLCAxLCA2OCwgMiwgMiwgMSksCisJUktfUExMUkFURSgzMTIwMDAwMDAsIDEsIDUyLCAy LCAyLCAxKSwKKwlSS19QTExSQVRFKDIxNjAwMDAwMCwgMSwgNzIsIDQsIDIsIDEpLAorCVJLX1BM TFJBVEUoOTYwMDAwMDAsIDEsIDY0LCA0LCA0LCAxKSwKKwl7IC8qIHNlbnRpbmVsICovIH0sCit9 OworCitzdGF0aWMgc3RydWN0IHJrX2Nsa19hcm1jbGtfcmF0ZXMgcmszMzA4X2FybWNsa19yYXRl c1tdID0geworCXsxNjA4MDAwMDAwLCAxfSwKKyAgICAgICAgezE1MTIwMDAwMDAsIDF9LAorICAg ICAgICB7MTQ4ODAwMDAwMCwgMX0sCisgICAgICAgIHsxNDE2MDAwMDAwLCAxfSwKKyAgICAgICAg ezEzOTIwMDAwMDAsIDF9LAorICAgICAgICB7MTI5NjAwMDAwMCwgMX0sCisgICAgICAgIHsxMjAw MDAwMDAwLCAxfSwKKyAgICAgICAgezExMDQwMDAwMDAsIDF9LAorICAgICAgICB7MTAwODAwMDAw MCwgMX0sCisgICAgICAgIHs5MTIwMDAwMDAsIDF9LAorICAgICAgICB7ODE2MDAwMDAwLCAxfSwK KyAgICAgICAgezY5NjAwMDAwMCwgMX0sCisgICAgICAgIHs2MDAwMDAwMDAsIDF9LAorICAgICAg ICB7NDA4MDAwMDAwLCAxfSwKKyAgICAgICAgezMxMjAwMDAwMCwgMX0sCisgICAgICAgIHsyMTYw MDAwMDAsICAxfSwKKyAgICAgICAgezk2MDAwMDAwLCAxfSwKKwl7fSwKK307CisKKy8qIFBhcmVu dCBjbG9jayBkZWZpbmVzICovCitQTkFNRShtdXhfcGxsX3ApCQk9IHsgInhpbjI0bSIgfTsKK1BO QU1FKG11eF91c2I0ODBtX3ApCQk9IHsgInhpbjI0bSIsICJ1c2I0ODBtX3BoeSIsICJjbGtfcnRj MzJrIiB9OworUE5BTUUobXV4X2FybWNsa19wKQkJPSB7ICJhcGxsX2NvcmUiLCAidnBsbDBfY29y ZSIsICJ2cGxsMV9jb3JlIiB9OworUE5BTUUobXV4X2RwbGxfdnBsbDBfcCkJCT0geyAiZHBsbCIs ICJ2cGxsMCIgfTsKK1BOQU1FKG11eF9kcGxsX3ZwbGwwX3hpbjI0bV9wKQk9IHsgImRwbGwiLCAi dnBsbDAiLCAieGluMjRtIiB9OworUE5BTUUobXV4X2RwbGxfdnBsbDBfdnBsbDFfcCkJPSB7ICJk cGxsIiwgInZwbGwwIiwgInZwbGwxIiB9OworUE5BTUUobXV4X2RwbGxfdnBsbDBfdnBsbDFfeGlu MjRtX3ApCT0geyAiZHBsbCIsICJ2cGxsMCIsICJ2cGxsMSIsICJ4aW4yNG0iIH07CitQTkFNRSht dXhfZHBsbF92cGxsMF92cGxsMV91c2I0ODBtX3hpbjI0bV9wKQk9IHsgImRwbGwiLCAidnBsbDAi LCAidnBsbDEiLCAidXNiNDgwbSIsICJ4aW4yNG0iIH07CitQTkFNRShtdXhfdnBsbDBfdnBsbDFf cCkJPSB7ICJ2cGxsMCIsICJ2cGxsMSIgfTsKK1BOQU1FKG11eF92cGxsMF92cGxsMV94aW4yNG1f cCkJPSB7ICJ2cGxsMCIsICJ2cGxsMSIsICJ4aW4yNG0iIH07CitQTkFNRShtdXhfdWFydDBfcCkJ CT0geyAiY2xrX3VhcnQwX3NyYyIsICJkdW1teSIsICJjbGtfdWFydDBfZnJhYyIgfTsKK1BOQU1F KG11eF91YXJ0MV9wKQkJPSB7ICJjbGtfdWFydDFfc3JjIiwgImR1bW15IiwgImNsa191YXJ0MV9m cmFjIiB9OworUE5BTUUobXV4X3VhcnQyX3ApCQk9IHsgImNsa191YXJ0Ml9zcmMiLCAiZHVtbXki LCAiY2xrX3VhcnQyX2ZyYWMiIH07CitQTkFNRShtdXhfdWFydDNfcCkJCT0geyAiY2xrX3VhcnQz X3NyYyIsICJkdW1teSIsICJjbGtfdWFydDNfZnJhYyIgfTsKK1BOQU1FKG11eF91YXJ0NF9wKQkJ PSB7ICJjbGtfdWFydDRfc3JjIiwgImR1bW15IiwgImNsa191YXJ0NF9mcmFjIiB9OworUE5BTUUo bXV4X2RjbGtfdm9wX3ApCQk9IHsgImRjbGtfdm9wX3NyYyIsICJkY2xrX3ZvcF9mcmFjIiwgInhp bjI0bSIgfTsKK1BOQU1FKG11eF9uYW5kY19wKQkJPSB7ICJjbGtfbmFuZGNfZGl2IiwgImNsa19u YW5kY19kaXY1MCIgfTsKK1BOQU1FKG11eF9zZG1tY19wKQkJPSB7ICJjbGtfc2RtbWNfZGl2Iiwg ImNsa19zZG1tY19kaXY1MCIgfTsKK1BOQU1FKG11eF9zZGlvX3ApCQk9IHsgImNsa19zZGlvX2Rp diIsICJjbGtfc2Rpb19kaXY1MCIgfTsKK1BOQU1FKG11eF9lbW1jX3ApCQk9IHsgImNsa19lbW1j X2RpdiIsICJjbGtfZW1tY19kaXY1MCIgfTsKK1BOQU1FKG11eF9tYWNfcCkJCT0geyAiY2xrX21h Y19zcmMiLCAibWFjX2Nsa2luIiB9OworUE5BTUUobXV4X21hY19ybWlpX3NlbF9wKQk9IHsgImNs a19tYWNfcnhfdHhfZGl2MjAiLCAiY2xrX21hY19yeF90eF9kaXYyIiB9OworUE5BTUUobXV4X2Rk cnN0ZGJ5X3ApCQk9IHsgImNsa19kZHJwaHkxeF9vdXQiLCAiY2xrX2Rkcl9zdGRieV9kaXY0IiB9 OworUE5BTUUobXV4X3J0YzMya19wKQkJPSB7ICJ4aW4zMmsiLCAiY2xrX3B2dG1fMzJrIiwgImNs a19ydGMzMmtfZnJhYyIsICJjbGtfcnRjMzJrX2RpdiIgfTsKK1BOQU1FKG11eF91c2JwaHlfcmVm X3ApCQk9IHsgInhpbjI0bSIsICJjbGtfdXNicGh5X3JlZl9zcmMiIH07CitQTkFNRShtdXhfd2lm aV9zcmNfcCkJCT0geyAiY2xrX3dpZmlfZHBsbCIsICJjbGtfd2lmaV92cGxsMCIgfTsKK1BOQU1F KG11eF93aWZpX3ApCQk9IHsgImNsa193aWZpX29zYyIsICJjbGtfd2lmaV9zcmMiIH07CitQTkFN RShtdXhfcGRtX3ApCQk9IHsgImNsa19wZG1fc3JjIiwgImNsa19wZG1fZnJhYyIgfTsKK1BOQU1F KG11eF9pMnMwXzhjaF90eF9wKQk9IHsgImNsa19pMnMwXzhjaF90eF9zcmMiLCAiY2xrX2kyczBf OGNoX3R4X2ZyYWMiLCAibWNsa19pMnMwXzhjaF9pbiIgfTsKK1BOQU1FKG11eF9pMnMwXzhjaF90 eF9yeF9wKQk9IHsgImNsa19pMnMwXzhjaF90eF9tdXgiLCAiY2xrX2kyczBfOGNoX3J4X211eCJ9 OworUE5BTUUobXV4X2kyczBfOGNoX3R4X291dF9wKQk9IHsgImNsa19pMnMwXzhjaF90eCIsICJ4 aW4xMm0iIH07CitQTkFNRShtdXhfaTJzMF84Y2hfcnhfcCkJPSB7ICJjbGtfaTJzMF84Y2hfcnhf c3JjIiwgImNsa19pMnMwXzhjaF9yeF9mcmFjIiwgIm1jbGtfaTJzMF84Y2hfaW4iIH07CitQTkFN RShtdXhfaTJzMF84Y2hfcnhfdHhfcCkJPSB7ICJjbGtfaTJzMF84Y2hfcnhfbXV4IiwgImNsa19p MnMwXzhjaF90eF9tdXgifTsKK1BOQU1FKG11eF9pMnMxXzhjaF90eF9wKQk9IHsgImNsa19pMnMx XzhjaF90eF9zcmMiLCAiY2xrX2kyczFfOGNoX3R4X2ZyYWMiLCAibWNsa19pMnMxXzhjaF9pbiIg fTsKK1BOQU1FKG11eF9pMnMxXzhjaF90eF9yeF9wKQk9IHsgImNsa19pMnMxXzhjaF90eF9tdXgi LCAiY2xrX2kyczFfOGNoX3J4X211eCJ9OworUE5BTUUobXV4X2kyczFfOGNoX3R4X291dF9wKQk9 IHsgImNsa19pMnMxXzhjaF90eCIsICJ4aW4xMm0iIH07CitQTkFNRShtdXhfaTJzMV84Y2hfcnhf cCkJPSB7ICJjbGtfaTJzMV84Y2hfcnhfc3JjIiwgImNsa19pMnMxXzhjaF9yeF9mcmFjIiwgIm1j bGtfaTJzMV84Y2hfaW4iIH07CitQTkFNRShtdXhfaTJzMV84Y2hfcnhfdHhfcCkJPSB7ICJjbGtf aTJzMV84Y2hfcnhfbXV4IiwgImNsa19pMnMxXzhjaF90eF9tdXgifTsKK1BOQU1FKG11eF9pMnMy XzhjaF90eF9wKQk9IHsgImNsa19pMnMyXzhjaF90eF9zcmMiLCAiY2xrX2kyczJfOGNoX3R4X2Zy YWMiLCAibWNsa19pMnMyXzhjaF9pbiIgfTsKK1BOQU1FKG11eF9pMnMyXzhjaF90eF9yeF9wKQk9 IHsgImNsa19pMnMyXzhjaF90eF9tdXgiLCAiY2xrX2kyczJfOGNoX3J4X211eCJ9OworUE5BTUUo bXV4X2kyczJfOGNoX3R4X291dF9wKQk9IHsgImNsa19pMnMyXzhjaF90eCIsICJ4aW4xMm0iIH07 CitQTkFNRShtdXhfaTJzMl84Y2hfcnhfcCkJPSB7ICJjbGtfaTJzMl84Y2hfcnhfc3JjIiwgImNs a19pMnMyXzhjaF9yeF9mcmFjIiwgIm1jbGtfaTJzMl84Y2hfaW4iIH07CitQTkFNRShtdXhfaTJz Ml84Y2hfcnhfdHhfcCkJPSB7ICJjbGtfaTJzMl84Y2hfcnhfbXV4IiwgImNsa19pMnMyXzhjaF90 eF9tdXgifTsKK1BOQU1FKG11eF9pMnMzXzhjaF90eF9wKQk9IHsgImNsa19pMnMzXzhjaF90eF9z cmMiLCAiY2xrX2kyczNfOGNoX3R4X2ZyYWMiLCAibWNsa19pMnMzXzhjaF9pbiIgfTsKK1BOQU1F KG11eF9pMnMzXzhjaF90eF9yeF9wKQk9IHsgImNsa19pMnMzXzhjaF90eF9tdXgiLCAiY2xrX2ky czNfOGNoX3J4X211eCJ9OworUE5BTUUobXV4X2kyczNfOGNoX3R4X291dF9wKQk9IHsgImNsa19p MnMzXzhjaF90eCIsICJ4aW4xMm0iIH07CitQTkFNRShtdXhfaTJzM184Y2hfcnhfcCkJPSB7ICJj bGtfaTJzM184Y2hfcnhfc3JjIiwgImNsa19pMnMzXzhjaF9yeF9mcmFjIiwgIm1jbGtfaTJzM184 Y2hfaW4iIH07CitQTkFNRShtdXhfaTJzM184Y2hfcnhfdHhfcCkJPSB7ICJjbGtfaTJzM184Y2hf cnhfbXV4IiwgImNsa19pMnMzXzhjaF90eF9tdXgifTsKK1BOQU1FKG11eF9pMnMwXzJjaF9wKQkJ PSB7ICJjbGtfaTJzMF8yY2hfc3JjIiwgImNsa19pMnMwXzJjaF9mcmFjIiwgIm1jbGtfaTJzMF8y Y2hfaW4iIH07CitQTkFNRShtdXhfaTJzMF8yY2hfb3V0X3ApCT0geyAiY2xrX2kyczBfMmNoIiwg InhpbjEybSIgfTsKK1BOQU1FKG11eF9pMnMxXzJjaF9wKQkJPSB7ICJjbGtfaTJzMV8yY2hfc3Jj IiwgImNsa19pMnMxXzJjaF9mcmFjIiwgIm1jbGtfaTJzMV8yY2hfaW4ifTsKK1BOQU1FKG11eF9p MnMxXzJjaF9vdXRfcCkJPSB7ICJjbGtfaTJzMV8yY2giLCAieGluMTJtIiB9OworUE5BTUUobXV4 X3NwZGlmX3R4X3NyY19wKQk9IHsgImNsa19zcGRpZl90eF9kaXYiLCAiY2xrX3NwZGlmX3R4X2Rp djUwIiB9OworUE5BTUUobXV4X3NwZGlmX3R4X3ApCQk9IHsgImNsa19zcGRpZl90eF9zcmMiLCAi Y2xrX3NwZGlmX3R4X2ZyYWMiLCAibWNsa19pMnMwXzJjaF9pbiIgfTsKK1BOQU1FKG11eF9zcGRp Zl9yeF9zcmNfcCkJPSB7ICJjbGtfc3BkaWZfcnhfZGl2IiwgImNsa19zcGRpZl9yeF9kaXY1MCIg fTsKK1BOQU1FKG11eF9zcGRpZl9yeF9wKQkJPSB7ICJjbGtfc3BkaWZfcnhfc3JjIiwgImNsa19z cGRpZl9yeF9mcmFjIiB9OworLyogQ0xPQ0tTICovCitzdGF0aWMgc3RydWN0IHJrX2NsayByazMz MDhfY2xrc1tdID0geworCS8qIEV4dGVybmFsIGNsb2NrcyAqLworIAkgTElOSygieGluMjRtIiks CisJIExJTksoImNsa19ydGNfMzJrIiksCisgIAkgTElOSygidXNiNDgwbV9waHkiKSwKKy8vICAJ IExJTksoImp0YWdfY2xraW4iKSwKKyAgCSBMSU5LKCJjbGtfZGRycGh5MXhfb3V0IiksCisgIAkg TElOSygiY2xrX3B2dG1fMzJrIiksCisgIAkgTElOSygieGluMzJrIiksCisJIExJTksoIm1jbGtf aTJzMF84Y2hfaW4iKSwKKwkgTElOSygibWNsa19pMnMxXzhjaF9pbiIpLAkvLyBTT1MgU0NSVQor CSBMSU5LKCJtY2xrX2kyczJfOGNoX2luIiksCisJIExJTksoIm1jbGtfaTJzM184Y2hfaW4iKSwK KwkgTElOSygibWNsa19pMnMwXzJjaF9pbiIpLAorCSBMSU5LKCJtY2xrX2kyczFfMmNoX2luIiks CisJIExJTksoIm1hY19jbGtpbiIpLAorCSBMSU5LKCJkdW1teSIpLAorCS8qIFBMTCdzICovCisg CSBSS19QTEwoUExMX0FQTEwsICJhcGxsIiwgbXV4X3BsbF9wLCAwLCAwKSwKKwkgUktfUExMKFBM TF9EUExMLCAiZHBsbCIsIG11eF9wbGxfcCwgMSwgMiksCisJIFJLX1BMTChQTExfVlBMTDAsICJ2 cGxsMCIsIG11eF9wbGxfcCwgMiwgNCksCisJIFJLX1BMTChQTExfVlBMTDEsICJ2cGxsMSIsIG11 eF9wbGxfcCwgMywgNiksCisJIFJLX0FSTURJVihBUk1DTEssICJhcm1jbGsiLCBtdXhfYXJtY2xr X3AsIHJrMzMwOF9hcm1jbGtfcmF0ZXMsIDAsIDAsIDUsNiwgMSwgMCwgMSksCisJIFJLX01VWChV U0I0ODBNLCAidXNiNDgwbSIsIG11eF91c2I0ODBtX3AsIFJLMzMwOF9NT0RFX0NPTiwgOCwgMiwg MCksCisJIFJLX0ZBQ1RPUigwLCAieGluMTJtIiwgInhpbjI0bSIsIDEsIDIpLAorCSBSS19DT01Q Tk9NVVgoMCwgInBjbGtfY29yZV9kYmciLCAiYXJtY2xrIiwgMCwgOCwgNCwgMCwgMiwgMCksCisJ IFJLX0NPTVBOT01VWCgwLCAiYWNsa19jb3JlIiwgImFybWNsayIsIDAsIDEyLCAzLCAwLCAxLCAw KSwKKwkgUktfQ09NUE5PRElWKEFDTEtfQlVTX1NSQywgImNsa19idXNfc3JjIiwgbXV4X2RwbGxf dnBsbDBfdnBsbDFfcCwgNSwgNiwgMiwgMSwgMCwgMCksCisJIFJLX0NPTVBOT01VWChQQ0xLX0JV UywgInBjbGtfYnVzIiwgImNsa19idXNfc3JjIiwgNiwgOCwgNSwgMSwgMywgMCksCisJIFJLX0NP TVBOT01VWChIQ0xLX0JVUywgImhjbGtfYnVzIiwgImNsa19idXNfc3JjIiwgNiwgMCwgNSwgMSwg MiwgMCksCisJIFJLX0NPTVBOT01VWChBQ0xLX0JVUywgImFjbGtfYnVzIiwgImNsa19idXNfc3Jj IiwgNSwgMCwgNSwgMSwgMSwgMCksCisJIFJLX0NPTVBPU0lURSgwLCAiY2xrX3VhcnQwX3NyYyIs IG11eF9kcGxsX3ZwbGwwX3ZwbGwxX3VzYjQ4MG1feGluMjRtX3AsIDEwLCAxMywgMywgMCwgNSwg MSwgOSwgMCksCisJIFJLX0ZSQUNUSU9OKDAsICJjbGtfdWFydDBfZnJhYyIsICJjbGtfdWFydDBf c3JjIiwgMTIsIDEsIDExLCAwKSwKKwkgUktfTVVYKDAsICJjbGtfdWFydDBfbXV4IiwgbXV4X3Vh cnQwX3AsIDExLCAxNCwgMiwgMCksCisJIFJLX0NPTVBPU0lURSgwLCAiY2xrX3VhcnQxX3NyYyIs IG11eF9kcGxsX3ZwbGwwX3ZwbGwxX3VzYjQ4MG1feGluMjRtX3AsIDEzLCAxMywgMywgMCwgNSwg MSwgMTMsIDApLAorCSBSS19GUkFDVElPTigwLCAiY2xrX3VhcnQxX2ZyYWMiLCAiY2xrX3VhcnQx X3NyYyIsIDE1LCAxLCAxNSwgMCksCisJIFJLX01VWCgwLCAiY2xrX3VhcnQxX211eCIsIG11eF91 YXJ0MV9wLCAxNCwgMTQsIDIsIDApLAorCSBSS19DT01QT1NJVEUoMCwgImNsa191YXJ0Ml9zcmMi LCBtdXhfZHBsbF92cGxsMF92cGxsMV91c2I0ODBtX3hpbjI0bV9wLCAxNiwgMTMsIDMsIDAsIDUs IDIsIDEsIDApLAorCSBSS19GUkFDVElPTigwLCAiY2xrX3VhcnQyX2ZyYWMiLCAiY2xrX3VhcnQy X3NyYyIsIDE4LCAyLCAzLCAwKSwKKwkgUktfTVVYKDAsICJjbGtfdWFydDJfbXV4IiwgbXV4X3Vh cnQyX3AsIDE3LCAxNCwgMiwgMCksCisJIFJLX0NPTVBPU0lURSgwLCAiY2xrX3VhcnQzX3NyYyIs IG11eF9kcGxsX3ZwbGwwX3ZwbGwxX3VzYjQ4MG1feGluMjRtX3AsIDE5LCAxMywgMywgMCwgNSwg MiwgNSwgMCksCisJIFJLX0ZSQUNUSU9OKDAsICJjbGtfdWFydDNfZnJhYyIsICJjbGtfdWFydDNf c3JjIiwgMjEsIDIsIDcsIDApLAorCSBSS19NVVgoMCwgImNsa191YXJ0M19tdXgiLCBtdXhfdWFy dDNfcCwgMjAsIDE0LCAyLCAwKSwKKwkgUktfQ09NUE9TSVRFKDAsICJjbGtfdWFydDRfc3JjIiwg bXV4X2RwbGxfdnBsbDBfdnBsbDFfdXNiNDgwbV94aW4yNG1fcCwgMjIsIDEzLCAzLCAwLCA1LCAy LCA5LCAwKSwKKwkgUktfRlJBQ1RJT04oMCwgImNsa191YXJ0NF9mcmFjIiwgImNsa191YXJ0NF9z cmMiLCAyNCwgMiwgMTEsIDApLAorCSBSS19NVVgoMCwgImNsa191YXJ0NF9tdXgiLCBtdXhfdWFy dDRfcCwgMjMsIDE0LCAyLCAwKSwKKwkgUktfQ09NUE9TSVRFKFNDTEtfSTJDMCwgImNsa19pMmMw IiwgbXV4X2RwbGxfdnBsbDBfeGluMjRtX3AsIDI1LCAxNCwgMiwgMCwgNywgMiwgMTMsIDApLAor CSBSS19DT01QT1NJVEUoU0NMS19JMkMxLCAiY2xrX2kyYzEiLCBtdXhfZHBsbF92cGxsMF94aW4y NG1fcCwgMjYsIDE0LCAyLCAwLCA3LCAyLCAxNCwgMCksCisJIFJLX0NPTVBPU0lURShTQ0xLX0ky QzIsICJjbGtfaTJjMiIsIG11eF9kcGxsX3ZwbGwwX3hpbjI0bV9wLCAyNywgMTQsIDIsIDAsIDcs IDIsIDE1LCAwKSwKKwkgUktfQ09NUE9TSVRFKFNDTEtfSTJDMywgImNsa19pMmMzIiwgbXV4X2Rw bGxfdnBsbDBfeGluMjRtX3AsIDI4LCAxNCwgMiwgMCwgNywgMywgMCwgMCksCisJIFJLX0NPTVBP U0lURShTQ0xLX1BXTTAsICJjbGtfcHdtMCIsIG11eF9kcGxsX3ZwbGwwX3hpbjI0bV9wLCAyOSwg MTQsIDIsIDAsIDcsIDMsIDEsIDApLAorCSBSS19DT01QT1NJVEUoU0NMS19QV00xLCAiY2xrX3B3 bTEiLCBtdXhfZHBsbF92cGxsMF94aW4yNG1fcCwgNzQsIDE0LCAyLCAwLCA3LCAxNSwgMCwgMCks CisJIFJLX0NPTVBPU0lURShTQ0xLX1BXTTIsICJjbGtfcHdtMiIsIG11eF9kcGxsX3ZwbGwwX3hp bjI0bV9wLCA3NSwgMTQsIDIsIDAsIDcsIDE1LCAxLCAwKSwKKwkgUktfQ09NUE9TSVRFKFNDTEtf U1BJMCwgImNsa19zcGkwIiwgbXV4X2RwbGxfdnBsbDBfeGluMjRtX3AsIDMwLCAxNCwgMiwgMCwg NywgMywgMiwgMCksCisJIFJLX0NPTVBPU0lURShTQ0xLX1NQSTEsICJjbGtfc3BpMSIsIG11eF9k cGxsX3ZwbGwwX3hpbjI0bV9wLCAzMSwgMTQsIDIsIDAsIDcsIDMsIDMsIDApLAorCSBSS19DT01Q T1NJVEUoU0NMS19TUEkyLCAiY2xrX3NwaTIiLCBtdXhfZHBsbF92cGxsMF94aW4yNG1fcCwgMzIs IDE0LCAyLCAwLCA3LCAzLCA0LCAwKSwKKwkgUktfQ09NUE5PTVVYKFNDTEtfVFNBREMsICJjbGtf dHNhZGMiLCAieGluMjRtIiwgMzMsIDAsIDExLCAzLCA1LCAwKSwKKwkgUktfQ09NUE5PTVVYKFND TEtfU0FSQURDLCAiY2xrX3NhcmFkYyIsICJ4aW4yNG0iLCAzNCwgMCwgMTEsIDMsIDYsIDApLAor CSBSS19DT01QTk9NVVgoU0NMS19PVFAsICJjbGtfb3RwIiwgInhpbjI0bSIsIDM1LCAwLCA0LCAz LCA3LCAwKSwKKwkgUktfQ09NUE5PTVVYKFNDTEtfT1RQX1VTUiwgImNsa19vdHBfdXNyIiwgImNs a19vdHAiLCAzNSwgNCwgMiwgMywgOCwgMCksCisJIFJLX0NPTVBPU0lURShTQ0xLX0NSWVBUTywg ImNsa19jcnlwdG8iLCBtdXhfZHBsbF92cGxsMF92cGxsMV9wLCA3LCA2LCAyLCAwLCA1LCAxLCA0 LCAwKSwKKwkgUktfQ09NUE9TSVRFKFNDTEtfQ1JZUFRPX0FQSywgImNsa19jcnlwdG9fYXBrIiwg bXV4X2RwbGxfdnBsbDBfdnBsbDFfcCwgNywgMTQsIDIsIDgsIDUsIDEsIDUsIDApLAorCSBSS19D T01QT1NJVEUoMCwgImRjbGtfdm9wX3NyYyIsIG11eF9kcGxsX3ZwbGwwX3ZwbGwxX3AsIDgsIDEw LCAyLCAwLCA4LCAxLCA2LCAwKSwKKwkgUktfRlJBQ1RJT04oMCwgImRjbGtfdm9wX2ZyYWMiLCAi ZGNsa192b3Bfc3JjIiwgOSwgMSwgNywgMCksCisgCSBSS19NVVgoMCwgImRjbGtfdm9wX211eCIs IG11eF9kY2xrX3ZvcF9wLCA4LCAxNCwgMiwgMCksCisJIFJLX0NPTVBOT0RJVihBQ0xLX1BFUklf U1JDLCAiY2xrX3Blcmlfc3JjIiwgbXV4X2RwbGxfdnBsbDBfdnBsbDFfcCwgMzYsIDYsIDIsIDgs IDAsIDApLAorCSBSS19DT01QTk9NVVgoQUNMS19QRVJJLCAiYWNsa19wZXJpIiwgImNsa19wZXJp X3NyYyIsIDM2LCAwLCA1LCA4LCAxLCAwKSwKKwkgUktfQ09NUE5PTVVYKEhDTEtfUEVSSSwgImhj bGtfcGVyaSIsICJjbGtfcGVyaV9zcmMiLCAzNywgMCwgNSwgOCwgMiwgMCksCisJIFJLX0NPTVBO T01VWChQQ0xLX1BFUkksICJwY2xrX3BlcmkiLCAiY2xrX3Blcmlfc3JjIiwgMzcsIDgsIDUsIDgs IDMsIDApLAorCSBSS19DT01QT1NJVEUoU0NMS19OQU5EQ19ESVYsICJjbGtfbmFuZGNfZGl2Iiwg bXV4X2RwbGxfdnBsbDBfdnBsbDFfcCwgMzgsIDYsIDIsIDAsIDUsIDgsIDQsIDApLAorCSBSS19D T01QT1NJVEUoU0NMS19OQU5EQ19ESVY1MCwgImNsa19uYW5kY19kaXY1MCIsIG11eF9kcGxsX3Zw bGwwX3ZwbGwxX3AsIDM4LCA2LCAyLCAwLCA1LCA4LCA0LCAwKSwKKwkgUktfQ09NUE5PRElWKFND TEtfTkFOREMsICJjbGtfbmFuZGMiLCBtdXhfbmFuZGNfcCwgMzgsIDE1LCAxLCA4LCA1LCAwKSwK KwkgUktfQ09NUE9TSVRFKFNDTEtfU0RNTUNfRElWLCAiY2xrX3NkbW1jX2RpdiIsIG11eF9kcGxs X3ZwbGwwX3ZwbGwxX3hpbjI0bV9wLCAzOSwgOCwgMiwgMCwgOCwgOCwgNiwgMCksCisJIFJLX0NP TVBPU0lURShTQ0xLX1NETU1DX0RJVjUwLCAiY2xrX3NkbW1jX2RpdjUwIiwgbXV4X2RwbGxfdnBs bDBfdnBsbDFfeGluMjRtX3AsIDM5LCA4LCAyLCAwLCA4LCA4LCA2LCAwKSwKKwkgUktfQ09NUE5P RElWKFNDTEtfU0RNTUMsICJjbGtfc2RtbWMiLCBtdXhfc2RtbWNfcCwgMzksIDE1LCAxLCA4LCA3 LCAwKSwKKy8vCSBSS19NTUMoU0NMS19TRE1NQ19EUlYsICJzZG1tY19kcnYiLCAiY2xrX3NkbW1j IiwgUkszMzA4X1NETU1DX0NPTjAsIDEpLAorLy8JIFJLX01NQyhTQ0xLX1NETU1DX1NBTVBMRSwg InNkbW1jX3NhbXBsZSIsICJjbGtfc2RtbWMiLCBSSzMzMDhfU0RNTUNfQ09OMSwgMSksCisJIFJL X0NPTVBPU0lURShTQ0xLX1NESU9fRElWLCAiY2xrX3NkaW9fZGl2IiwgbXV4X2RwbGxfdnBsbDBf dnBsbDFfeGluMjRtX3AsIDQwLCA4LCAyLCAwLCA4LCA4LCA4LCAwKSwKKwkgUktfQ09NUE9TSVRF KFNDTEtfU0RJT19ESVY1MCwgImNsa19zZGlvX2RpdjUwIiwgbXV4X2RwbGxfdnBsbDBfdnBsbDFf eGluMjRtX3AsIDQwLCA4LCAyLCAwLCA4LCA4LCA4LCAwKSwKKwkgUktfQ09NUE5PRElWKFNDTEtf U0RJTywgImNsa19zZGlvIiwgbXV4X3NkaW9fcCwgNDAsIDE1LCAxLCA4LCA5LCAwKSwKKy8vCSBS S19NTUMoU0NMS19TRElPX0RSViwgInNkaW9fZHJ2IiwgImNsa19zZGlvIiwgUkszMzA4X1NESU9f Q09OMCwgMSksCisvLwkgUktfTU1DKFNDTEtfU0RJT19TQU1QTEUsICJzZGlvX3NhbXBsZSIsICJj bGtfc2RpbyIsIFJLMzMwOF9TRElPX0NPTjEsIDEpLAorCSBSS19DT01QT1NJVEUoU0NMS19FTU1D X0RJViwgImNsa19lbW1jX2RpdiIsIG11eF9kcGxsX3ZwbGwwX3ZwbGwxX3hpbjI0bV9wLCA0MSwg OCwgMiwgMCwgOCwgOCwgMTAsIDApLAorCSBSS19DT01QT1NJVEUoU0NMS19FTU1DX0RJVjUwLCAi Y2xrX2VtbWNfZGl2NTAiLCBtdXhfZHBsbF92cGxsMF92cGxsMV94aW4yNG1fcCwgNDEsIDgsIDIs IDAsIDgsIDgsIDEwLCAwKSwKKwkgUktfQ09NUE5PRElWKFNDTEtfRU1NQywgImNsa19lbW1jIiwg bXV4X2VtbWNfcCwgNDEsIDE1LCAxLCA4LCAxMSwgMCksCisvLwkgUktfTU1DKFNDTEtfRU1NQ19E UlYsICJlbW1jX2RydiIsICJjbGtfZW1tYyIsIFJLMzMwOF9FTU1DX0NPTjAsIDEpLAorLy8JIFJL X01NQyhTQ0xLX0VNTUNfU0FNUExFLCAiZW1tY19zYW1wbGUiLCAiY2xrX2VtbWMiLCBSSzMzMDhf RU1NQ19DT04xLCAxKSwKKwkgUktfQ09NUE9TSVRFKFNDTEtfU0ZDLCAiY2xrX3NmYyIsIG11eF9k cGxsX3ZwbGwwX3ZwbGwxX3AsIDQyLCAxNCwgMiwgMCwgNywgOCwgMTIsIDApLAorCSBSS19NVVgo U0NMS19SVEMzMkssICJjbGtfcnRjMzJrIiwgbXV4X3J0YzMya19wLCAyLCA4LCAyLCAwKSwKKwkg UktfQ09NUE9TSVRFKFNDTEtfTUFDX1NSQywgImNsa19tYWNfc3JjIiwgbXV4X2RwbGxfdnBsbDBf dnBsbDFfcCwgNDMsIDYsIDIsIDAsIDUsIDgsIDE0LCAwKSwKKwkgUktfTVVYKFNDTEtfTUFDLCAi Y2xrX21hYyIsIG11eF9tYWNfcCwgNDMsIDE0LCAxLCAwKSwKKwkgUktfRkFDVE9SKDAsICJjbGtf bWFjX3J4X3R4X2RpdjIiLCAiY2xrX21hY19yeF90eCIsIDEsIDIpLAorCSBSS19GQUNUT1IoMCwg ImNsa19tYWNfcnhfdHhfZGl2MjAiLCAiY2xrX21hY19yeF90eCIsIDEsIDIwKSwKKwkgUktfTVVY KFNDTEtfTUFDX1JNSUksICJjbGtfbWFjX3JtaWlfc2VsIiwgbXV4X21hY19ybWlpX3NlbF9wLCA0 MywgMTUsIDEsIDApLAorCSBSS19DT01QT1NJVEUoU0NMS19PV0lSRSwgImNsa19vd2lyZSIsIG11 eF9kcGxsX3ZwbGwwX3hpbjI0bV9wLCA0NCwgMTQsIDIsIDgsIDYsIDgsIDE1LCAwKSwKKwkgUktf Q09NUE9TSVRFKFNDTEtfRERSQ0xLLCAiY2xrX2RkcnBoeTR4X3NyYyIsIG11eF9kcGxsX3ZwbGww X3ZwbGwxX3AsIDEsIDYsIDIsIDAsIDMsIDAsIDEwLCAwKSwKKwkgUktfRkFDVE9SX0dBVEUoMCwg ImNsa19kZHJfc3RkYnlfZGl2NCIsICJjbGtfZGRycGh5NHgiLDAsMSwgNCwgMCwgMTMsMCksCisJ IFJLX0NPTVBOT0RJVigwLCAiY2xrX2RkcnN0ZGJ5IiwgbXV4X2RkcnN0ZGJ5X3AsIDEsIDgsIDEs IDQsIDE0LCAwKSwKKwkgUktfRlJBQ1RJT04oMCwgImNsa19ydGMzMmtfZnJhYyIsICJ4aW4yNG0i LCAzLCA0LCAzLCAwKSwKKwkgUktfTVVYKDAsICJjbGtfcnRjMzJrX2Rpdl9zcmMiLCBtdXhfdnBs bDBfdnBsbDFfcCwgMiwgMTAsIDEsIDApLAorCSBSS19DT01QTk9NVVgoMCwgImNsa19ydGMzMmtf ZGl2IiwgImNsa19ydGMzMmtfZGl2X3NyYyIsIDQsIDAsIDE2LCA0LCAyLCAwKSwKKwkgUktfQ09N UE9TSVRFKDAsICJjbGtfdXNicGh5X3JlZl9zcmMiLCBtdXhfZHBsbF92cGxsMF9wLCA3MiwgNiwg MSwgMCwgNiwgNCwgNywgMCksCisJIFJLX0NPTVBOT0RJVihTQ0xLX1VTQlBIWV9SRUYsICJjbGtf dXNicGh5X3JlZiIsIG11eF91c2JwaHlfcmVmX3AsIDcyLCA3LCAxLCA0LCA4LCAwKSwKKwkgUktf Q09NUE9TSVRFKDAsICJjbGtfd2lmaV9zcmMiLCBtdXhfd2lmaV9zcmNfcCwgNDQsIDYsIDEsIDAs IDYsIDQsIDAsIDApLAorCSBSS19DT01QTk9ESVYoU0NMS19XSUZJLCAiY2xrX3dpZmkiLCBtdXhf d2lmaV9wLCA0NCwgNywgMSwgNCwgMSwgMCksCisJIFJLX0NPTVBOT0RJVigwLCAiY2xrX2F1ZGlv X3NyYyIsIG11eF92cGxsMF92cGxsMV94aW4yNG1fcCwgNDUsIDYsIDIsIDEwLCAwLCAwKSwKKwkg UktfQ09NUE5PTVVYKEhDTEtfQVVESU8sICJoY2xrX2F1ZGlvIiwgImNsa19hdWRpb19zcmMiLCA0 NSwgMCwgNSwgMTAsIDEsIDApLAorCSBSS19DT01QTk9NVVgoUENMS19BVURJTywgInBjbGtfYXVk aW8iLCAiY2xrX2F1ZGlvX3NyYyIsIDQ1LCA4LCA1LCAxMCwgMiwgMCksCisJIFJLX0NPTVBPU0lU RSgwLCAiY2xrX3BkbV9zcmMiLCBtdXhfdnBsbDBfdnBsbDFfeGluMjRtX3AsIDQ2LCA4LCAyLCAw LCA3LCAxMCwgMywgMCksCisJIFJLX0ZSQUNUSU9OKDAsICJjbGtfcGRtX2ZyYWMiLCAiY2xrX3Bk bV9zcmMiLCA0NywgMTAsIDQsIDApLAorCSBSS19NVVgoMCwgImNsa19wZG1fbXV4IiwgbXV4X3Bk bV9wLCA0NiwgMTUsIDEsIDApLAorCSBSS19DT01QT1NJVEUoU0NMS19JMlMwXzhDSF9UWF9TUkMs ICJjbGtfaTJzMF84Y2hfdHhfc3JjIiwgbXV4X3ZwbGwwX3ZwbGwxX3hpbjI0bV9wLCA1MiwgOCwg MiwgMCwgNywgMTAsIDEyLCAwKSwKKwkgUktfRlJBQ1RJT04oMCwgImNsa19pMnMwXzhjaF90eF9m cmFjIiwgImNsa19pMnMwXzhjaF90eF9zcmMiLCA1MywgMTAsIDEzLCAwKSwKKwkgUktfQ09NUE5P RElWKFNDTEtfSTJTMF84Q0hfVFgsICJjbGtfaTJzMF84Y2hfdHgiLCBtdXhfaTJzMF84Y2hfdHhf cnhfcCwgNTIsIDEyLCAxLCAxMCwgMTQsIDApLAorCSBSS19DT01QTk9ESVYoU0NMS19JMlMwXzhD SF9UWF9PVVQsICJjbGtfaTJzMF84Y2hfdHhfb3V0IiwgbXV4X2kyczBfOGNoX3R4X291dF9wLCA1 MiwgMTUsIDEsIDEwLCAxNSwgMCksCisJIFJLX0NPTVBPU0lURShTQ0xLX0kyUzBfOENIX1JYX1NS QywgImNsa19pMnMwXzhjaF9yeF9zcmMiLCBtdXhfdnBsbDBfdnBsbDFfeGluMjRtX3AsIDU0LCA4 LCAyLCAwLCA3LCAxMSwgMCwgMCksCisJIFJLX0ZSQUNUSU9OKDAsICJjbGtfaTJzMF84Y2hfcnhf ZnJhYyIsICJjbGtfaTJzMF84Y2hfcnhfc3JjIiwgNTUsIDExLCAxLCAwKSwKKwkgUktfQ09NUE5P RElWKFNDTEtfSTJTMF84Q0hfUlgsICJjbGtfaTJzMF84Y2hfcngiLCBtdXhfaTJzMF84Y2hfcnhf dHhfcCwgNTQsIDEyLCAxLCAxMSwgMiwgMCksCisJIFJLX0NPTVBPU0lURShTQ0xLX0kyUzFfOENI X1RYX1NSQywgImNsa19pMnMxXzhjaF90eF9zcmMiLCBtdXhfdnBsbDBfdnBsbDFfeGluMjRtX3As IDU2LCA4LCAyLCAwLCA3LCAxMSwgNCwgMCksCisJIFJLX0ZSQUNUSU9OKDAsICJjbGtfaTJzMV84 Y2hfdHhfZnJhYyIsICJjbGtfaTJzMV84Y2hfdHhfc3JjIiwgNTcsIDExLCA1LCAwKSwKKwkgUktf Q09NUE5PRElWKFNDTEtfSTJTMV84Q0hfVFgsICJjbGtfaTJzMV84Y2hfdHgiLCBtdXhfaTJzMV84 Y2hfdHhfcnhfcCwgNTYsIDEyLCAxLCAxMSwgNiwgMCksCisJIFJLX0NPTVBOT0RJVihTQ0xLX0ky UzFfOENIX1RYX09VVCwgImNsa19pMnMxXzhjaF90eF9vdXQiLCBtdXhfaTJzMV84Y2hfdHhfb3V0 X3AsIDU2LCAxNSwgMSwgMTEsIDcsIDApLAorCSBSS19DT01QT1NJVEUoU0NMS19JMlMxXzhDSF9S WF9TUkMsICJjbGtfaTJzMV84Y2hfcnhfc3JjIiwgbXV4X3ZwbGwwX3ZwbGwxX3hpbjI0bV9wLCA1 OCwgOCwgMiwgMCwgNywgMTEsIDgsIDApLAorCSBSS19GUkFDVElPTigwLCAiY2xrX2kyczFfOGNo X3J4X2ZyYWMiLCAiY2xrX2kyczFfOGNoX3J4X3NyYyIsIDU5LCAxMSwgOSwgMCksCisJIFJLX0NP TVBOT0RJVihTQ0xLX0kyUzFfOENIX1JYLCAiY2xrX2kyczFfOGNoX3J4IiwgbXV4X2kyczFfOGNo X3J4X3R4X3AsIDU4LCAxMiwgMSwgMTEsIDEwLCAwKSwKKwkgUktfQ09NUE9TSVRFKFNDTEtfSTJT Ml84Q0hfVFhfU1JDLCAiY2xrX2kyczJfOGNoX3R4X3NyYyIsIG11eF92cGxsMF92cGxsMV94aW4y NG1fcCwgNjAsIDgsIDIsIDAsIDcsIDExLCAxMiwgMCksCisJIFJLX0ZSQUNUSU9OKDAsICJjbGtf aTJzMl84Y2hfdHhfZnJhYyIsICJjbGtfaTJzMl84Y2hfdHhfc3JjIiwgNjEsIDExLCAxMywgMCks CisJIFJLX0NPTVBOT0RJVihTQ0xLX0kyUzJfOENIX1RYLCAiY2xrX2kyczJfOGNoX3R4IiwgbXV4 X2kyczJfOGNoX3R4X3J4X3AsIDYwLCAxMiwgMSwgMTEsIDE0LCAwKSwKKwkgUktfQ09NUE5PRElW KFNDTEtfSTJTMl84Q0hfVFhfT1VULCAiY2xrX2kyczJfOGNoX3R4X291dCIsIG11eF9pMnMyXzhj aF90eF9vdXRfcCwgNjAsIDE1LCAxLCAxMSwgMTUsIDApLAorCSBSS19DT01QT1NJVEUoU0NMS19J MlMyXzhDSF9SWF9TUkMsICJjbGtfaTJzMl84Y2hfcnhfc3JjIiwgbXV4X3ZwbGwwX3ZwbGwxX3hp bjI0bV9wLCA2MiwgOCwgMiwgMCwgNywgMTIsIDAsIDApLAorCSBSS19GUkFDVElPTigwLCAiY2xr X2kyczJfOGNoX3J4X2ZyYWMiLCAiY2xrX2kyczJfOGNoX3J4X3NyYyIsIDYzLCAxMiwgMSwgMCks CisJIFJLX0NPTVBOT0RJVihTQ0xLX0kyUzJfOENIX1JYLCAiY2xrX2kyczJfOGNoX3J4IiwgbXV4 X2kyczJfOGNoX3J4X3R4X3AsIDYyLCAxMiwgMSwgMTIsIDIsIDApLAorCSBSS19DT01QT1NJVEUo U0NMS19JMlMzXzhDSF9UWF9TUkMsICJjbGtfaTJzM184Y2hfdHhfc3JjIiwgbXV4X3ZwbGwwX3Zw bGwxX3hpbjI0bV9wLCA2NCwgOCwgMiwgMCwgNywgMTIsIDQsIDApLAorCSBSS19GUkFDVElPTigw LCAiY2xrX2kyczNfOGNoX3R4X2ZyYWMiLCAiY2xrX2kyczNfOGNoX3R4X3NyYyIsIDY1LCAxMiwg NSwgMCksCisJIFJLX0NPTVBOT0RJVihTQ0xLX0kyUzNfOENIX1RYLCAiY2xrX2kyczNfOGNoX3R4 IiwgbXV4X2kyczNfOGNoX3R4X3J4X3AsIDY0LCAxMiwgMSwgMTIsIDYsIDApLAorCSBSS19DT01Q Tk9ESVYoU0NMS19JMlMzXzhDSF9UWF9PVVQsICJjbGtfaTJzM184Y2hfdHhfb3V0IiwgbXV4X2ky czNfOGNoX3R4X291dF9wLCA2NCwgMTUsIDEsIDEyLCA3LCAwKSwKKwkgUktfQ09NUE9TSVRFKFND TEtfSTJTM184Q0hfUlhfU1JDLCAiY2xrX2kyczNfOGNoX3J4X3NyYyIsIG11eF92cGxsMF92cGxs MV94aW4yNG1fcCwgNjYsIDgsIDIsIDAsIDcsIDEyLCA4LCAwKSwKKwkgUktfRlJBQ1RJT04oMCwg ImNsa19pMnMzXzhjaF9yeF9mcmFjIiwgImNsa19pMnMzXzhjaF9yeF9zcmMiLCA2NywgMTIsIDks IDApLAorCSBSS19DT01QTk9ESVYoU0NMS19JMlMzXzhDSF9SWCwgImNsa19pMnMzXzhjaF9yeCIs IG11eF9pMnMzXzhjaF9yeF90eF9wLCA2NiwgMTIsIDEsIDEyLCAxMCwgMCksCisJIFJLX0NPTVBP U0lURShTQ0xLX0kyUzBfMkNIX1NSQywgImNsa19pMnMwXzJjaF9zcmMiLCBtdXhfdnBsbDBfdnBs bDFfeGluMjRtX3AsIDY4LCA4LCAyLCAwLCA3LCAxMiwgMTIsIDApLAorCSBSS19GUkFDVElPTigw LCAiY2xrX2kyczBfMmNoX2ZyYWMiLCAiY2xrX2kyczBfMmNoX3NyYyIsIDY5LCAxMiwgMTMsIDAp LAorCSBSS19DT01QTk9ESVYoU0NMS19JMlMwXzJDSF9PVVQsICJjbGtfaTJzMF8yY2hfb3V0Iiwg bXV4X2kyczBfMmNoX291dF9wLCA2OCwgMTUsIDEsIDEyLCAxNSwgMCksCisJIFJLX0NPTVBPU0lU RShTQ0xLX0kyUzFfMkNIX1NSQywgImNsa19pMnMxXzJjaF9zcmMiLCBtdXhfdnBsbDBfdnBsbDFf eGluMjRtX3AsIDcwLCA4LCAyLCAwLCA3LCAxMywgMCwgMCksCisJIFJLX0ZSQUNUSU9OKDAsICJj bGtfaTJzMV8yY2hfZnJhYyIsICJjbGtfaTJzMV8yY2hfc3JjIiwgNzEsIDEzLCAxLCAwKSwKKwkg UktfQ09NUE5PRElWKFNDTEtfSTJTMV8yQ0hfT1VULCAiY2xrX2kyczFfMmNoX291dCIsIG11eF9p MnMxXzJjaF9vdXRfcCwgNzAsIDE1LCAxLCAxMywgMywgMCksCisJIFJLX0NPTVBPU0lURShTQ0xL X1NQRElGX1RYX0RJViwgImNsa19zcGRpZl90eF9kaXYiLCBtdXhfdnBsbDBfdnBsbDFfeGluMjRt X3AsIDQ4LCA4LCAyLCAwLCA3LCAxMCwgNiwgMCksCisJIFJLX0NPTVBPU0lURShTQ0xLX1NQRElG X1RYX0RJVjUwLCAiY2xrX3NwZGlmX3R4X2RpdjUwIiwgbXV4X3ZwbGwwX3ZwbGwxX3hpbjI0bV9w LCA0OCwgOCwgMiwgMCwgNywgMTAsIDYsIDApLAorCSBSS19NVVgoMCwgImNsa19zcGRpZl90eF9z cmMiLCBtdXhfc3BkaWZfdHhfc3JjX3AsIDQ4LCAxMiwgMSwgMCksCisJIFJLX0ZSQUNUSU9OKDAs ICJjbGtfc3BkaWZfdHhfZnJhYyIsICJjbGtfc3BkaWZfdHhfc3JjIiwgNDksIDEwLCA3LCAwKSwK KwkgUktfQ09NUE9TSVRFKFNDTEtfU1BESUZfUlhfRElWLCAiY2xrX3NwZGlmX3J4X2RpdiIsIG11 eF92cGxsMF92cGxsMV94aW4yNG1fcCwgNTAsIDgsIDIsIDAsIDcsIDEwLCA5LCAwKSwKKwkgUktf Q09NUE9TSVRFKFNDTEtfU1BESUZfUlhfRElWNTAsICJjbGtfc3BkaWZfcnhfZGl2NTAiLCBtdXhf dnBsbDBfdnBsbDFfeGluMjRtX3AsIDUwLCA4LCAyLCAwLCA3LCAxMCwgOSwgMCksCisJIFJLX01V WCgwLCAiY2xrX3NwZGlmX3J4X3NyYyIsIG11eF9zcGRpZl9yeF9zcmNfcCwgNTAsIDE0LCAxLCAw KSwKKwkgUktfRlJBQ1RJT04oMCwgImNsa19zcGRpZl9yeF9mcmFjIiwgImNsa19zcGRpZl9yeF9z cmMiLCA1MSwgMTAsIDEwLCAwKSwKKwkgUktfRkFDVE9SKEFDTEtfRE1BQzAsICJhY2xrX2RtYWMw IiwgImFjbGtfYnVzIiwgMSwgMSksCisJIFJLX0ZBQ1RPUihBQ0xLX0RNQUMxLCAiYWNsa19kbWFj MSIsICJhY2xrX2J1cyIsIDEsIDEpLAorCSBSS19GQUNUT1IoUENMS19XRFQsICJwY2xrX3dkdCIs ICJwY2xrX2J1cyIsIDEsIDEpLAorCSBSS19NVVgoU0NMS19JMlMwXzhDSF9UWF9NVVgsICJjbGtf aTJzMF84Y2hfdHhfbXV4IiwgbXV4X2kyczBfOGNoX3R4X3AsIDUyLCAxMCwgMiwgMCksCisJIFJL X01VWChTQ0xLX0kyUzBfOENIX1JYX01VWCwgImNsa19pMnMwXzhjaF9yeF9tdXgiLCBtdXhfaTJz MF84Y2hfcnhfcCwgNTQsIDEwLCAyLCAwKSwKKwkgUktfTVVYKFNDTEtfSTJTMV84Q0hfVFhfTVVY LCAiY2xrX2kyczFfOGNoX3R4X211eCIsIG11eF9pMnMxXzhjaF90eF9wLCA1NiwgMTAsIDIsIDAp LAorCSBSS19NVVgoU0NMS19JMlMxXzhDSF9SWF9NVVgsICJjbGtfaTJzMV84Y2hfcnhfbXV4Iiwg bXV4X2kyczFfOGNoX3J4X3AsIDU4LCAxMCwgMiwgMCksCisJIFJLX01VWChTQ0xLX0kyUzJfOENI X1RYX01VWCwgImNsa19pMnMyXzhjaF90eF9tdXgiLCBtdXhfaTJzMl84Y2hfdHhfcCwgNjAsIDEw LCAyLCAwKSwKKwkgUktfTVVYKFNDTEtfSTJTMl84Q0hfUlhfTVVYLCAiY2xrX2kyczJfOGNoX3J4 X211eCIsIG11eF9pMnMyXzhjaF9yeF9wLCA2MiwgMTAsIDIsIDApLAorCSBSS19NVVgoU0NMS19J MlMzXzhDSF9UWF9NVVgsICJjbGtfaTJzM184Y2hfdHhfbXV4IiwgbXV4X2kyczNfOGNoX3R4X3As IDY0LCAxMCwgMiwgMCksCisJIFJLX01VWChTQ0xLX0kyUzNfOENIX1JYX01VWCwgImNsa19pMnMz XzhjaF9yeF9tdXgiLCBtdXhfaTJzM184Y2hfcnhfcCwgNjYsIDEwLCAyLCAwKSwKKwkgUktfTVVY KDAsICJjbGtfaTJzMF8yY2hfbXV4IiwgbXV4X2kyczBfMmNoX3AsIDY4LCAxMCwgMiwgMCksCisJ IFJLX01VWCgwLCAiY2xrX2kyczFfMmNoX211eCIsIG11eF9pMnMxXzJjaF9wLCA3MCwgMTAsIDIs IDApLAorCSBSS19NVVgoMCwgImNsa19zcGRpZl90eF9tdXgiLCBtdXhfc3BkaWZfdHhfcCwgNDgs IDE0LCAyLCAwKSwKKwkgUktfTVVYKDAsICJjbGtfc3BkaWZfcnhfbXV4IiwgbXV4X3NwZGlmX3J4 X3AsIDUwLCAxNSwgMSwgMCksCit9OworCisvKiBHQVRFUyAqLworc3RhdGljIHN0cnVjdCBya19j cnVfZ2F0ZSByazMzMDhfZ2F0ZXNbXSA9IHsKKyBSS19HQVRFKDAsICJhcGxsX2NvcmUiLCAiYXBs bCIsIDAsIDApLAorIFJLX0dBVEUoMCwgInZwbGwwX2NvcmUiLCAidnBsbDAiLCAwLCAwKSwKKyBS S19HQVRFKDAsICJ2cGxsMV9jb3JlIiwgInZwbGwxIiwgMCwgMCksCisvLyBSS19HQVRFKDAsICJj bGtfanRhZyIsICJqdGFnX2Nsa2luIiwgMCwgMyksCisgUktfR0FURShTQ0xLX1BWVE1fQ09SRSwg ImNsa19wdnRtX2NvcmUiLCAieGluMjRtIiwgMCwgNCksCisgUktfR0FURShQQ0xLX0REUiwgInBj bGtfZGRyIiwgInBjbGtfYnVzIiwgNCwgMTUpLAorIFJLX0dBVEUoU0NMS19VQVJUMCwgImNsa191 YXJ0MCIsICJjbGtfdWFydDBfbXV4IiwgMSwgMTIpLAorIFJLX0dBVEUoU0NMS19VQVJUMSwgImNs a191YXJ0MSIsICJjbGtfdWFydDFfbXV4IiwgMiwgMCksCisgUktfR0FURShTQ0xLX1VBUlQyLCAi Y2xrX3VhcnQyIiwgImNsa191YXJ0Ml9tdXgiLCAyLCA0KSwKKyBSS19HQVRFKFNDTEtfVUFSVDMs ICJjbGtfdWFydDMiLCAiY2xrX3VhcnQzX211eCIsIDIsIDgpLAorIFJLX0dBVEUoU0NMS19VQVJU NCwgImNsa191YXJ0NCIsICJjbGtfdWFydDRfbXV4IiwgMiwgMTIpLAorIFJLX0dBVEUoU0NMS19U SU1FUjAsICJzY2xrX3RpbWVyMCIsICJ4aW4yNG0iLCAzLCAxMCksCisgUktfR0FURShTQ0xLX1RJ TUVSMSwgInNjbGtfdGltZXIxIiwgInhpbjI0bSIsIDMsIDExKSwKKyBSS19HQVRFKFNDTEtfVElN RVIyLCAic2Nsa190aW1lcjIiLCAieGluMjRtIiwgMywgMTIpLAorIFJLX0dBVEUoU0NMS19USU1F UjMsICJzY2xrX3RpbWVyMyIsICJ4aW4yNG0iLCAzLCAxMyksCisgUktfR0FURShTQ0xLX1RJTUVS NCwgInNjbGtfdGltZXI0IiwgInhpbjI0bSIsIDMsIDE0KSwKKyBSS19HQVRFKFNDTEtfVElNRVI1 LCAic2Nsa190aW1lcjUiLCAieGluMjRtIiwgMywgMTUpLAorIFJLX0dBVEUoU0NMS19DUFVfQk9P U1QsICJjbGtfY3B1X2Jvb3N0IiwgInhpbjI0bSIsIDMsIDkpLAorIFJLX0dBVEUoRENMS19WT1As ICJkY2xrX3ZvcCIsICJkY2xrX3ZvcF9tdXgiLCAxLCA4KSwKKyBSS19HQVRFKFNDTEtfT1RHX0FE UCwgImNsa19vdGdfYWRwIiwgImNsa19ydGMzMmsiLCA4LCAxMyksCisgUktfR0FURShTQ0xLX01B Q19SRUYsICJjbGtfbWFjX3JlZiIsICJjbGtfbWFjIiwgOSwgMSksCisgUktfR0FURShTQ0xLX01B Q19SWF9UWCwgImNsa19tYWNfcnhfdHgiLCAiY2xrX21hYyIsIDksIDApLAorIFJLX0dBVEUoMCwg ImNsa19kZHJfbW9uX3RpbWVyIiwgInhpbjI0bSIsIDAsIDEyKSwKKyBSS19HQVRFKDAsICJjbGtf ZGRyX21vbiIsICJjbGtfZGRycGh5MXhfb3V0IiwgNCwgMTApLAorIFJLX0dBVEUoMCwgImNsa19k ZHJfdXBjdHJsIiwgImNsa19kZHJwaHkxeF9vdXQiLCA0LCAxMSksCisgUktfR0FURSgwLCAiY2xr X2Rkcl9tc2NoIiwgImNsa19kZHJwaHkxeF9vdXQiLCA0LCAxMiksCisgUktfR0FURSgwLCAiY2xr X2Rkcl9tc2NoX3BlcmlidXMiLCAiY2xrX2RkcnBoeTF4X291dCIsIDQsIDEzKSwKKyBSS19HQVRF KDAsICJjbGtfZGRycGh5NHgiLCAiY2xrX2RkcnBoeTR4X3NyYyIsIDAsIDExKSwKKyBSS19HQVRF KFBDTEtfUE1VLCAicGNsa19wbXUiLCAicGNsa19idXMiLCA0LCA1KSwKKyBSS19HQVRFKFNDTEtf UE1VLCAiY2xrX3BtdSIsICJwY2xrX2J1cyIsIDQsIDYpLAorIFJLX0dBVEUoMCwgImNsa193aWZp X2RwbGwiLCAiZHBsbCIsIDE1LCAyKSwKKyBSS19HQVRFKDAsICJjbGtfd2lmaV92cGxsMCIsICJ2 cGxsMCIsIDE1LCAzKSwKKyBSS19HQVRFKDAsICJjbGtfd2lmaV9vc2MiLCAieGluMjRtIiwgMTUs IDQpLAorIFJLX0dBVEUoU0NMS19QVlRNX1BNVSwgImNsa19wdnRtX3BtdSIsICJ4aW4yNG0iLCA0 LCA0KSwKKyBSS19HQVRFKFNDTEtfUERNLCAiY2xrX3BkbSIsICJjbGtfcGRtX211eCIsIDEwLCA1 KSwKKyBSS19HQVRFKFNDTEtfSTJTMF84Q0hfUlhfT1VULCAiY2xrX2kyczBfOGNoX3J4X291dCIs ICJjbGtfaTJzMF84Y2hfcngiLCAxMSwgMyksCisgUktfR0FURShTQ0xLX0kyUzFfOENIX1JYX09V VCwgImNsa19pMnMxXzhjaF9yeF9vdXQiLCAiY2xrX2kyczFfOGNoX3J4IiwgMTEsIDExKSwKKyBS S19HQVRFKFNDTEtfSTJTMl84Q0hfUlhfT1VULCAiY2xrX2kyczJfOGNoX3J4X291dCIsICJjbGtf aTJzMl84Y2hfcngiLCAxMiwgMyksCisgUktfR0FURShTQ0xLX0kyUzNfOENIX1JYX09VVCwgImNs a19pMnMzXzhjaF9yeF9vdXQiLCAiY2xrX2kyczNfOGNoX3J4IiwgMTIsIDExKSwKKyBSS19HQVRF KFNDTEtfSTJTMF8yQ0gsICJjbGtfaTJzMF8yY2giLCAiY2xrX2kyczBfMmNoX211eCIsIDEyLCAx NCksCisgUktfR0FURShTQ0xLX0kyUzFfMkNILCAiY2xrX2kyczFfMmNoIiwgImNsa19pMnMxXzJj aF9tdXgiLCAxMywgMiksCisgUktfR0FURShTQ0xLX1NQRElGX1RYLCAiY2xrX3NwZGlmX3R4Iiwg ImNsa19zcGRpZl90eF9tdXgiLCAxMCwgOCksCisgUktfR0FURShTQ0xLX1NQRElGX1JYLCAiY2xr X3NwZGlmX3J4IiwgImNsa19zcGRpZl9yeF9tdXgiLCAxMCwgMTEpLAorIFJLX0dBVEUoMCwgImFj bGtfY29yZV9uaXUiLCAiYWNsa19jb3JlIiwgMCwgNSksCisgUktfR0FURSgwLCAicGNsa19jb3Jl X2RiZ19uaXUiLCAiYWNsa19jb3JlIiwgMCwgNiksCisgUktfR0FURSgwLCAicGNsa19jb3JlX2Ri Z19kYXBsaXRlIiwgInBjbGtfY29yZV9kYmciLCAwLCA3KSwKKyBSS19HQVRFKDAsICJhY2xrX2Nv cmVfcGVyZiIsICJwY2xrX2NvcmVfZGJnIiwgMCwgOCksCisgUktfR0FURSgwLCAicGNsa19jb3Jl X2dyZiIsICJwY2xrX2NvcmVfZGJnIiwgMCwgOSksCisgUktfR0FURSgwLCAiYWNsa19wZXJpX25p dSIsICJhY2xrX3BlcmkiLCA5LCAyKSwKKyBSS19HQVRFKDAsICJhY2xrX3BlcmlidXNfbml1Iiwg ImFjbGtfcGVyaSIsIDksIDMpLAorIFJLX0dBVEUoQUNMS19NQUMsICJhY2xrX21hYyIsICJhY2xr X3BlcmkiLCA5LCA0KSwKKyBSS19HQVRFKDAsICJoY2xrX3Blcmlfbml1IiwgImhjbGtfcGVyaSIs IDksIDUpLAorIFJLX0dBVEUoSENMS19OQU5EQywgImhjbGtfbmFuZGMiLCAiaGNsa19wZXJpIiwg OSwgNiksCisgUktfR0FURShIQ0xLX1NETU1DLCAiaGNsa19zZG1tYyIsICJoY2xrX3BlcmkiLCA5 LCA3KSwKKyBSS19HQVRFKEhDTEtfU0RJTywgImhjbGtfc2RpbyIsICJoY2xrX3BlcmkiLCA5LCA4 KSwKKyBSS19HQVRFKEhDTEtfRU1NQywgImhjbGtfZW1tYyIsICJoY2xrX3BlcmkiLCA5LCA5KSwK KyBSS19HQVRFKEhDTEtfU0ZDLCAiaGNsa19zZmMiLCAiaGNsa19wZXJpIiwgOSwgMTApLAorIFJL X0dBVEUoSENMS19PVEcsICJoY2xrX290ZyIsICJoY2xrX3BlcmkiLCA5LCAxMSksCisgUktfR0FU RShIQ0xLX0hPU1QsICJoY2xrX2hvc3QiLCAiaGNsa19wZXJpIiwgOSwgMTIpLAorIFJLX0dBVEUo SENMS19IT1NUX0FSQiwgImhjbGtfaG9zdF9hcmIiLCAiaGNsa19wZXJpIiwgOSwgMTMpLAorIFJL X0dBVEUoMCwgInBjbGtfcGVyaV9uaXUiLCAicGNsa19wZXJpIiwgOSwgMTQpLAorIFJLX0dBVEUo UENMS19NQUMsICJwY2xrX21hYyIsICJwY2xrX3BlcmkiLCA5LCAxNSksCisgUktfR0FURSgwLCAi aGNsa19hdWRpb19uaXUiLCAiaGNsa19hdWRpbyIsIDE0LCAwKSwKKyBSS19HQVRFKEhDTEtfUERN LCAiaGNsa19wZG0iLCAiaGNsa19hdWRpbyIsIDE0LCAxKSwKKyBSS19HQVRFKEhDTEtfU1BESUZU WCwgImhjbGtfc3BkaWZ0eCIsICJoY2xrX2F1ZGlvIiwgMTQsIDIpLAorIFJLX0dBVEUoSENMS19T UERJRlJYLCAiaGNsa19zcGRpZnJ4IiwgImhjbGtfYXVkaW8iLCAxNCwgMyksCisgUktfR0FURShI Q0xLX0kyUzBfOENILCAiaGNsa19pMnMwXzhjaCIsICJoY2xrX2F1ZGlvIiwgMTQsIDQpLAorIFJL X0dBVEUoSENMS19JMlMxXzhDSCwgImhjbGtfaTJzMV84Y2giLCAiaGNsa19hdWRpbyIsIDE0LCA1 KSwKKyBSS19HQVRFKEhDTEtfSTJTMl84Q0gsICJoY2xrX2kyczJfOGNoIiwgImhjbGtfYXVkaW8i LCAxNCwgNiksCisgUktfR0FURShIQ0xLX0kyUzNfOENILCAiaGNsa19pMnMzXzhjaCIsICJoY2xr X2F1ZGlvIiwgMTQsIDcpLAorIFJLX0dBVEUoSENMS19JMlMwXzJDSCwgImhjbGtfaTJzMF8yY2gi LCAiaGNsa19hdWRpbyIsIDE0LCA4KSwKKyBSS19HQVRFKEhDTEtfSTJTMV8yQ0gsICJoY2xrX2ky czFfMmNoIiwgImhjbGtfYXVkaW8iLCAxNCwgOSksCisgUktfR0FURShIQ0xLX1ZBRCwgImhjbGtf dmFkIiwgImhjbGtfYXVkaW8iLCAxNCwgMTApLAorIFJLX0dBVEUoMCwgInBjbGtfYXVkaW9fbml1 IiwgInBjbGtfYXVkaW8iLCAxNCwgMTEpLAorIFJLX0dBVEUoUENMS19BQ09ERUMsICJwY2xrX2Fj b2RlYyIsICJwY2xrX2F1ZGlvIiwgMTQsIDEyKSwKKyBSS19HQVRFKDAsICJhY2xrX2J1c19uaXUi LCAiYWNsa19idXMiLCA1LCAwKSwKKyBSS19HQVRFKDAsICJhY2xrX2ludG1lbSIsICJhY2xrX2J1 cyIsIDUsIDEpLAorIFJLX0dBVEUoQUNMS19DUllQVE8sICJhY2xrX2NyeXB0byIsICJhY2xrX2J1 cyIsIDUsIDIpLAorIFJLX0dBVEUoQUNMS19WT1AsICJhY2xrX3ZvcCIsICJhY2xrX2J1cyIsIDUs IDMpLAorIFJLX0dBVEUoMCwgImFjbGtfZ2ljIiwgImFjbGtfYnVzIiwgNSwgNCksCisgUktfR0FU RSgwLCAiaGNsa19idXNfbml1IiwgImhjbGtfYnVzIiwgNSwgNSksCisgUktfR0FURSgwLCAiaGNs a19yb20iLCAiaGNsa19idXMiLCA1LCA2KSwKKyBSS19HQVRFKEhDTEtfQ1JZUFRPLCAiaGNsa19j cnlwdG8iLCAiaGNsa19idXMiLCA1LCA3KSwKKyBSS19HQVRFKEhDTEtfVk9QLCAiaGNsa192b3Ai LCAiaGNsa19idXMiLCA1LCA4KSwKKyBSS19HQVRFKDAsICJwY2xrX2J1c19uaXUiLCAicGNsa19i dXMiLCA1LCA5KSwKKyBSS19HQVRFKFBDTEtfVUFSVDAsICJwY2xrX3VhcnQwIiwgInBjbGtfYnVz IiwgNSwgMTApLAorIFJLX0dBVEUoUENMS19VQVJUMSwgInBjbGtfdWFydDEiLCAicGNsa19idXMi LCA1LCAxMSksCisgUktfR0FURShQQ0xLX1VBUlQyLCAicGNsa191YXJ0MiIsICJwY2xrX2J1cyIs IDUsIDEyKSwKKyBSS19HQVRFKFBDTEtfVUFSVDMsICJwY2xrX3VhcnQzIiwgInBjbGtfYnVzIiwg NSwgMTMpLAorIFJLX0dBVEUoUENMS19VQVJUNCwgInBjbGtfdWFydDQiLCAicGNsa19idXMiLCA1 LCAxNCksCisgUktfR0FURShQQ0xLX0kyQzAsICJwY2xrX2kyYzAiLCAicGNsa19idXMiLCA1LCAx NSksCisgUktfR0FURShQQ0xLX0kyQzEsICJwY2xrX2kyYzEiLCAicGNsa19idXMiLCA2LCAwKSwK KyBSS19HQVRFKFBDTEtfSTJDMiwgInBjbGtfaTJjMiIsICJwY2xrX2J1cyIsIDYsIDEpLAorIFJL X0dBVEUoUENMS19JMkMzLCAicGNsa19pMmMzIiwgInBjbGtfYnVzIiwgNiwgMiksCisgUktfR0FU RShQQ0xLX1BXTTAsICJwY2xrX3B3bTAiLCAicGNsa19idXMiLCA2LCAzKSwKKyBSS19HQVRFKFBD TEtfU1BJMCwgInBjbGtfc3BpMCIsICJwY2xrX2J1cyIsIDYsIDQpLAorIFJLX0dBVEUoUENMS19T UEkxLCAicGNsa19zcGkxIiwgInBjbGtfYnVzIiwgNiwgNSksCisgUktfR0FURShQQ0xLX1NQSTIs ICJwY2xrX3NwaTIiLCAicGNsa19idXMiLCA2LCA2KSwKKyBSS19HQVRFKFBDTEtfU0FSQURDLCAi cGNsa19zYXJhZGMiLCAicGNsa19idXMiLCA2LCA3KSwKKyBSS19HQVRFKFBDTEtfVFNBREMsICJw Y2xrX3RzYWRjIiwgInBjbGtfYnVzIiwgNiwgOCksCisgUktfR0FURShQQ0xLX1RJTUVSLCAicGNs a190aW1lciIsICJwY2xrX2J1cyIsIDYsIDkpLAorIFJLX0dBVEUoUENMS19PVFBfTlMsICJwY2xr X290cF9ucyIsICJwY2xrX2J1cyIsIDYsIDEwKSwKKyBSS19HQVRFKFBDTEtfR1BJTzAsICJwY2xr X2dwaW8wIiwgInBjbGtfYnVzIiwgNiwgMTIpLAorIFJLX0dBVEUoUENMS19HUElPMSwgInBjbGtf Z3BpbzEiLCAicGNsa19idXMiLCA2LCAxMyksCisgUktfR0FURShQQ0xLX0dQSU8yLCAicGNsa19n cGlvMiIsICJwY2xrX2J1cyIsIDYsIDE0KSwKKyBSS19HQVRFKFBDTEtfR1BJTzMsICJwY2xrX2dw aW8zIiwgInBjbGtfYnVzIiwgNiwgMTUpLAorIFJLX0dBVEUoUENMS19HUElPNCwgInBjbGtfZ3Bp bzQiLCAicGNsa19idXMiLCA3LCAwKSwKKyBSS19HQVRFKFBDTEtfU0dSRiwgInBjbGtfc2dyZiIs ICJwY2xrX2J1cyIsIDcsIDEpLAorIFJLX0dBVEUoUENMS19HUkYsICJwY2xrX2dyZiIsICJwY2xr X2J1cyIsIDcsIDIpLAorIFJLX0dBVEUoUENMS19VU0JTRF9ERVQsICJwY2xrX3VzYnNkX2RldCIs ICJwY2xrX2J1cyIsIDcsIDMpLAorIFJLX0dBVEUoUENMS19ERFJfVVBDVEwsICJwY2xrX2Rkcl91 cGN0bCIsICJwY2xrX2J1cyIsIDcsIDQpLAorIFJLX0dBVEUoUENMS19ERFJfTU9OLCAicGNsa19k ZHJfbW9uIiwgInBjbGtfYnVzIiwgNywgNSksCisgUktfR0FURShQQ0xLX0REUlBIWSwgInBjbGtf ZGRycGh5IiwgInBjbGtfYnVzIiwgNywgNiksCisgUktfR0FURShQQ0xLX0REUl9TVERCWSwgInBj bGtfZGRyX3N0ZGJ5IiwgInBjbGtfYnVzIiwgNywgNyksCisgUktfR0FURShQQ0xLX1VTQl9HUkYs ICJwY2xrX3VzYl9ncmYiLCAicGNsa19idXMiLCA3LCA4KSwKKyBSS19HQVRFKFBDTEtfQ1JVLCAi cGNsa19jcnUiLCAicGNsa19idXMiLCA3LCA5KSwKKyBSS19HQVRFKFBDTEtfT1RQX1BIWSwgInBj bGtfb3RwX3BoeSIsICJwY2xrX2J1cyIsIDcsIDEwKSwKKyBSS19HQVRFKFBDTEtfQ1BVX0JPT1NU LCAicGNsa19jcHVfYm9vc3QiLCAicGNsa19idXMiLCA3LCAxMSksCisgUktfR0FURShQQ0xLX1BX TTEsICJwY2xrX3B3bTEiLCAicGNsa19idXMiLCA3LCAxMiksCisgUktfR0FURShQQ0xLX1BXTTIs ICJwY2xrX3B3bTIiLCAicGNsa19idXMiLCA3LCAxMyksCisgUktfR0FURShQQ0xLX0NBTiwgInBj bGtfY2FuIiwgInBjbGtfYnVzIiwgNywgMTQpLAorIFJLX0dBVEUoUENMS19PV0lSRSwgInBjbGtf b3dpcmUiLCAicGNsa19idXMiLCA3LCAxNSksCit9OworCisKK3N0YXRpYyBpbnQKK3JrMzMwOF9j cnVfcHJvYmUoZGV2aWNlX3QgZGV2KQoreworCisJaWYgKCFvZndfYnVzX3N0YXR1c19va2F5KGRl dikpCisJCXJldHVybiAoRU5YSU8pOworCisJaWYgKG9md19idXNfaXNfY29tcGF0aWJsZShkZXYs ICJyb2NrY2hpcCxyazMzMDgtY3J1IikpIHsKKwkJZGV2aWNlX3NldF9kZXNjKGRldiwgIlJvY2tj aGlwIFJLMzMwOCBDbG9jayAmIFJlc2V0IFVuaXQiKTsKKwkJcmV0dXJuIChCVVNfUFJPQkVfREVG QVVMVCk7CisJfQorCXJldHVybiAoRU5YSU8pOworfQorCitzdGF0aWMgaW50CityazMzMDhfY3J1 X2F0dGFjaChkZXZpY2VfdCBkZXYpCit7CisJc3RydWN0IHJrX2NydV9zb2Z0YyAqc2M7CisKKwlz YyA9IGRldmljZV9nZXRfc29mdGMoZGV2KTsKKwlzYy0+ZGV2ID0gZGV2OworCXNjLT5jbGtzID0g cmszMzA4X2Nsa3M7CisJc2MtPm5jbGtzID0gbml0ZW1zKHJrMzMwOF9jbGtzKTsKKwlzYy0+Z2F0 ZXMgPSByazMzMDhfZ2F0ZXM7CisJc2MtPm5nYXRlcyA9IG5pdGVtcyhyazMzMDhfZ2F0ZXMpOwor CXNjLT5yZXNldF9vZmZzZXQgPSAweDQwMDsKKwlzYy0+cmVzZXRfbnVtID0gNDc4OworCisJcmV0 dXJuIChya19jcnVfYXR0YWNoKGRldikpOworfQorCitzdGF0aWMgZGV2aWNlX21ldGhvZF90IG1l dGhvZHNbXSA9IHsKKwkvKiBEZXZpY2UgaW50ZXJmYWNlICovCisJREVWTUVUSE9EKGRldmljZV9w cm9iZSwJCXJrMzMwOF9jcnVfcHJvYmUpLAorCURFVk1FVEhPRChkZXZpY2VfYXR0YWNoLAlyazMz MDhfY3J1X2F0dGFjaCksCisKKwlERVZNRVRIT0RfRU5ECit9OworCitERUZJTkVfQ0xBU1NfMShy azMzMDhfY3J1LCByazMzMDhfY3J1X2RyaXZlciwgbWV0aG9kcywKKyAgICBzaXplb2Yoc3RydWN0 IHJrX2NydV9zb2Z0YyksIHJrX2NydV9kcml2ZXIpOworCitFQVJMWV9EUklWRVJfTU9EVUxFKHJr MzMwOF9jcnUsIHNpbXBsZWJ1cywgcmszMzA4X2NydV9kcml2ZXIsCisgICAgMCwgMCwgQlVTX1BB U1NfQlVTICsgQlVTX1BBU1NfT1JERVJfTUlERExFKTsKZGlmZiAtLWdpdCBhL3N5cy9hcm02NC9j b25mL3N0ZC5yb2NrY2hpcCBiL3N5cy9hcm02NC9jb25mL3N0ZC5yb2NrY2hpcAotLS0gYS9zeXMv YXJtNjQvY29uZi9zdGQucm9ja2NoaXAKKysrIGIvc3lzL2FybTY0L2NvbmYvc3RkLnJvY2tjaGlw CkBAIC02LDYgKzYsOCBAQAogb3B0aW9ucyAJU09DX1JPQ0tDSElQX1JLMzMyOAogb3B0aW9ucyAJ U09DX1JPQ0tDSElQX1JLMzM5OQogb3B0aW9ucyAJU09DX1JPQ0tDSElQX1JLMzU2OAorb3B0aW9u cyAgICAgICAgIFNPQ19ST0NLQ0hJUF9SSzMzMDgKKwogCiAjIEdQSU8gLyBQSU5DVFJMCiBkZXZp Y2UJCWR3Z3BpbwkJCSMgU3lub3BzeXMgRGVzaWduV2FyZSBBUEIgR1BJTyBDb250cm9sbGVyCgo= --b1_2bc950834f67f1a6052aa5beb181610b--