Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fW4d5-0000V1-Gw for pgsql-hackers@arkaria.postgresql.org; Thu, 21 Jun 2018 18:48:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fW4d4-0002X4-4S for pgsql-hackers@arkaria.postgresql.org; Thu, 21 Jun 2018 18:48:22 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fW4d3-0002Wx-PN for pgsql-hackers@lists.postgresql.org; Thu, 21 Jun 2018 18:48:21 +0000 Received: from forward5j.cmail.yandex.net ([2a02:6b8:0:1630::18]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fW4cr-0000Hq-Rx for pgsql-hackers@postgresql.org; Thu, 21 Jun 2018 18:48:21 +0000 Received: from mxback8g.mail.yandex.net (mxback8g.mail.yandex.net [IPv6:2a02:6b8:0:1472:2741:0:8b7:169]) by forward5j.cmail.yandex.net (Yandex) with ESMTP id 2837820D1E for ; Thu, 21 Jun 2018 21:48:08 +0300 (MSK) Received: from localhost (localhost [::1]) by mxback8g.mail.yandex.net (nwsmtp/Yandex) with ESMTP id 3qKwT6GZmd-m76aGwYM; Thu, 21 Jun 2018 21:48:07 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zsrv.org; s=mail; t=1529606887; bh=ene7XxhTXP0Iw+Z83SpYSQt0u2N8MPil0nRk8T4KzbA=; h=From:To:In-Reply-To:References:Subject:Date:Message-Id; b=hMJ+0Dheui7XWR9DFsWSjB+1JbJa4gdVepTBSCpm4kT5KjdGfJIEfNHDh8CtOD+C4 8HgPxHKp80DwoBk+WgXPyoT2OZoH0LFntvSu+D/NxnNMkteBJsoQpctnKrSWEa/gZZ 15lmXesgC0diFjcRri7s57fabeL9FhGeifWzzQ/8= Authentication-Results: mxback8g.mail.yandex.net; dkim=pass header.i=@zsrv.org Received: by web2j.yandex.ru with HTTP; Thu, 21 Jun 2018 21:48:07 +0300 From: Sergei Kornilov To: PostgreSQL mailing lists In-Reply-To: <607741529606767@web3g.yandex.ru> References: <607741529606767@web3g.yandex.ru> Subject: Re: Continue work on changes to recovery.conf API MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Thu, 21 Jun 2018 21:48:07 +0300 Message-Id: <594281529606887@web2j.yandex.ru> Content-Type: multipart/mixed; boundary="----==--bound.59429.web2j.yandex.ru" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk ------==--bound.59429.web2j.yandex.ru Content-Transfer-Encoding: 7bit Content-Type: text/plain I completely forgot attach patch, sorry. Attached now ------==--bound.59429.web2j.yandex.ru Content-Disposition: attachment; filename="new_recovery_api_v1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name="new_recovery_api_v1.patch" ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhbmRieS9wZ19zdGFuZGJ5LmMgYi9jb250cmliL3Bn X3N0YW5kYnkvcGdfc3RhbmRieS5jCmluZGV4IGNiNzg1OTcuLjMzMzAxNjIgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvcGdfc3RhbmRieS9wZ19zdGFuZGJ5LmMKKysrIGIvY29udHJpYi9wZ19zdGFuZGJ5 L3BnX3N0YW5kYnkuYwpAQCAtNjIyLDcgKzYyMiw3IEBAIHVzYWdlKHZvaWQpCiAJcHJpbnRmKCIg IC13IE1BWFdBSVRUSU1FICAgICBtYXggc2Vjb25kcyB0byB3YWl0IGZvciBhIGZpbGUgKDA9bm8g bGltaXQpIChkZWZhdWx0PTApXG4iKTsKIAlwcmludGYoIiAgLT8sIC0taGVscCAgICAgICAgIHNo b3cgdGhpcyBoZWxwLCB0aGVuIGV4aXRcbiIpOwogCXByaW50ZigiXG4iCi0JCSAgICJNYWluIGlu dGVuZGVkIHVzZSBhcyByZXN0b3JlX2NvbW1hbmQgaW4gcmVjb3ZlcnkuY29uZjpcbiIKKwkJICAg Ik1haW4gaW50ZW5kZWQgdXNlIGFzIHJlc3RvcmVfY29tbWFuZCBpbiBwb3N0Z3Jlc3FsLmNvbmY6 XG4iCiAJCSAgICIgIHJlc3RvcmVfY29tbWFuZCA9ICdwZ19zdGFuZGJ5IFtPUFRJT05dLi4uIEFS Q0hJVkVMT0NBVElPTiAlJWYgJSVwICUlcidcbiIKIAkJICAgImUuZy5cbiIKIAkJICAgIiAgcmVz dG9yZV9jb21tYW5kID0gJ3BnX3N0YW5kYnkgL21udC9zZXJ2ZXIvYXJjaGl2ZXJkaXIgJSVmICUl cCAlJXInXG4iKTsKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9iYWNrdXAuc2dtbCBiL2RvYy9z cmMvc2dtbC9iYWNrdXAuc2dtbAppbmRleCA5ODI3NzZjLi4xMTlmMjRmIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvYmFja3VwLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2JhY2t1cC5zZ21sCkBA IC0xMjIwLDcgKzEyMjAsNyBAQCBTRUxFQ1QgcGdfc3RvcF9iYWNrdXAoKTsKICAgIDwvbGlzdGl0 ZW0+CiAgICA8bGlzdGl0ZW0+CiAgICAgPHBhcmE+Ci0gICAgIENyZWF0ZSBhIHJlY292ZXJ5IGNv bW1hbmQgZmlsZSA8ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+IGluIHRoZSBjbHVz dGVyCisgICAgIENyZWF0ZSBhIGZpbGUgPGZpbGVuYW1lPnJlY292ZXJ5LnNpZ25hbDwvZmlsZW5h bWU+IGluIHRoZSBjbHVzdGVyCiAgICAgIGRhdGEgZGlyZWN0b3J5IChzZWUgPHhyZWYgbGlua2Vu ZD0icmVjb3ZlcnktY29uZmlnIi8+KS4gWW91IG1pZ2h0CiAgICAgIGFsc28gd2FudCB0byB0ZW1w b3JhcmlseSBtb2RpZnkgPGZpbGVuYW1lPnBnX2hiYS5jb25mPC9maWxlbmFtZT4gdG8gcHJldmVu dAogICAgICBvcmRpbmFyeSB1c2VycyBmcm9tIGNvbm5lY3RpbmcgdW50aWwgeW91IGFyZSBzdXJl IHRoZSByZWNvdmVyeSB3YXMgc3VjY2Vzc2Z1bC4KQEAgLTEyMzIsMTAgKzEyMzIsOSBAQCBTRUxF Q1QgcGdfc3RvcF9iYWNrdXAoKTsKICAgICAgcHJvY2VlZCB0byByZWFkIHRocm91Z2ggdGhlIGFy Y2hpdmVkIFdBTCBmaWxlcyBpdCBuZWVkcy4gIFNob3VsZCB0aGUKICAgICAgcmVjb3ZlcnkgYmUg dGVybWluYXRlZCBiZWNhdXNlIG9mIGFuIGV4dGVybmFsIGVycm9yLCB0aGUgc2VydmVyIGNhbgog ICAgICBzaW1wbHkgYmUgcmVzdGFydGVkIGFuZCBpdCB3aWxsIGNvbnRpbnVlIHJlY292ZXJ5LiAg VXBvbiBjb21wbGV0aW9uCi0gICAgIG9mIHRoZSByZWNvdmVyeSBwcm9jZXNzLCB0aGUgc2VydmVy IHdpbGwgcmVuYW1lCi0gICAgIDxmaWxlbmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFtZT4gdG8g PGZpbGVuYW1lPnJlY292ZXJ5LmRvbmU8L2ZpbGVuYW1lPiAodG8gcHJldmVudAotICAgICBhY2Np ZGVudGFsbHkgcmUtZW50ZXJpbmcgcmVjb3ZlcnkgbW9kZSBsYXRlcikgYW5kIHRoZW4KLSAgICAg Y29tbWVuY2Ugbm9ybWFsIGRhdGFiYXNlIG9wZXJhdGlvbnMuCisgICAgIG9mIHRoZSByZWNvdmVy eSBwcm9jZXNzLCB0aGUgc2VydmVyIHdpbGwgcmVtb3ZlCisgICAgIDxmaWxlbmFtZT5yZWNvdmVy eS5zaWduYWw8L2ZpbGVuYW1lPiAodG8gcHJldmVudCBhY2NpZGVudGFsbHkgcmUtZW50ZXJpbmcK KyAgICAgcmVjb3ZlcnkgbW9kZSBsYXRlcikgYW5kIHRoZW4gY29tbWVuY2Ugbm9ybWFsIGRhdGFi YXNlIG9wZXJhdGlvbnMuCiAgICAgPC9wYXJhPgogICAgPC9saXN0aXRlbT4KICAgIDxsaXN0aXRl bT4KQEAgLTEyNDksMTIgKzEyNDgsOCBAQCBTRUxFQ1QgcGdfc3RvcF9iYWNrdXAoKTsKICAgIDwv cGFyYT4KIAogICAgPHBhcmE+Ci0gICAgVGhlIGtleSBwYXJ0IG9mIGFsbCB0aGlzIGlzIHRvIHNl dCB1cCBhIHJlY292ZXJ5IGNvbmZpZ3VyYXRpb24gZmlsZSB0aGF0Ci0gICAgZGVzY3JpYmVzIGhv dyB5b3Ugd2FudCB0byByZWNvdmVyIGFuZCBob3cgZmFyIHRoZSByZWNvdmVyeSBzaG91bGQKLSAg ICBydW4uICBZb3UgY2FuIHVzZSA8ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZi5zYW1wbGU8L2ZpbGVu YW1lPiAobm9ybWFsbHkKLSAgICBsb2NhdGVkIGluIHRoZSBpbnN0YWxsYXRpb24ncyA8ZmlsZW5h bWU+c2hhcmUvPC9maWxlbmFtZT4gZGlyZWN0b3J5KSBhcyBhCi0gICAgcHJvdG90eXBlLiAgVGhl IG9uZSB0aGluZyB0aGF0IHlvdSBhYnNvbHV0ZWx5IG11c3Qgc3BlY2lmeSBpbgotICAgIDxmaWxl bmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFtZT4gaXMgdGhlIDx2YXJuYW1lPnJlc3RvcmVfY29t bWFuZDwvdmFybmFtZT4sCisgICAgVGhlIGtleSBwYXJ0IG9mIGFsbCB0aGlzIGlzIHRvIHNldCB1 cCBhIHJlY292ZXJ5IGNvbmZpZ3VyYXRpb24uCisgICAgVGhlIG9uZSB0aGluZyB0aGF0IHlvdSBh YnNvbHV0ZWx5IG11c3Qgc3BlY2lmeSBpcyB0aGUgPHZhcm5hbWU+cmVzdG9yZV9jb21tYW5kPC92 YXJuYW1lPiwKICAgICB3aGljaCB0ZWxscyA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVj dG5hbWU+IGhvdyB0byByZXRyaWV2ZSBhcmNoaXZlZAogICAgIFdBTCBmaWxlIHNlZ21lbnRzLiAg TGlrZSB0aGUgPHZhcm5hbWU+YXJjaGl2ZV9jb21tYW5kPC92YXJuYW1lPiwgdGhpcyBpcwogICAg IGEgc2hlbGwgY29tbWFuZCBzdHJpbmcuICBJdCBjYW4gY29udGFpbiA8bGl0ZXJhbD4lZjwvbGl0 ZXJhbD4sIHdoaWNoIGlzCkBAIC0xMzE2LDcgKzEzMTEsNyBAQCByZXN0b3JlX2NvbW1hbmQgPSAn Y3AgL21udC9zZXJ2ZXIvYXJjaGl2ZWRpci8lZiAlcCcKICAgIDxwYXJhPgogICAgIElmIHlvdSB3 YW50IHRvIHJlY292ZXIgdG8gc29tZSBwcmV2aW91cyBwb2ludCBpbiB0aW1lIChzYXksIHJpZ2h0 IGJlZm9yZQogICAgIHRoZSBqdW5pb3IgREJBIGRyb3BwZWQgeW91ciBtYWluIHRyYW5zYWN0aW9u IHRhYmxlKSwganVzdCBzcGVjaWZ5IHRoZQotICAgIHJlcXVpcmVkIDxsaW5rIGxpbmtlbmQ9InJl Y292ZXJ5LXRhcmdldC1zZXR0aW5ncyI+c3RvcHBpbmcgcG9pbnQ8L2xpbms+IGluIDxmaWxlbmFt ZT5yZWNvdmVyeS5jb25mPC9maWxlbmFtZT4uICBZb3UgY2FuIHNwZWNpZnkKKyAgICByZXF1aXJl ZCA8bGluayBsaW5rZW5kPSJyZWNvdmVyeS10YXJnZXQtc2V0dGluZ3MiPnN0b3BwaW5nIHBvaW50 PC9saW5rPi4gIFlvdSBjYW4gc3BlY2lmeQogICAgIHRoZSBzdG9wIHBvaW50LCBrbm93biBhcyB0 aGUgPHF1b3RlPnJlY292ZXJ5IHRhcmdldDwvcXVvdGU+LCBlaXRoZXIgYnkKICAgICBkYXRlL3Rp bWUsIG5hbWVkIHJlc3RvcmUgcG9pbnQgb3IgYnkgY29tcGxldGlvbiBvZiBhIHNwZWNpZmljIHRy YW5zYWN0aW9uCiAgICAgSUQuICBBcyBvZiB0aGlzIHdyaXRpbmcgb25seSB0aGUgZGF0ZS90aW1l IGFuZCBuYW1lZCByZXN0b3JlIHBvaW50IG9wdGlvbnMKQEAgLTE0MTQsOCArMTQwOSw4IEBAIHJl c3RvcmVfY29tbWFuZCA9ICdjcCAvbW50L3NlcnZlci9hcmNoaXZlZGlyLyVmICVwJwogICAgIHRo YXQgd2FzIGN1cnJlbnQgd2hlbiB0aGUgYmFzZSBiYWNrdXAgd2FzIHRha2VuLiAgSWYgeW91IHdp c2ggdG8gcmVjb3ZlcgogICAgIGludG8gc29tZSBjaGlsZCB0aW1lbGluZSAodGhhdCBpcywgeW91 IHdhbnQgdG8gcmV0dXJuIHRvIHNvbWUgc3RhdGUgdGhhdAogICAgIHdhcyBpdHNlbGYgZ2VuZXJh dGVkIGFmdGVyIGEgcmVjb3ZlcnkgYXR0ZW1wdCksIHlvdSBuZWVkIHRvIHNwZWNpZnkgdGhlCi0g ICAgdGFyZ2V0IHRpbWVsaW5lIElEIGluIDxmaWxlbmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFt ZT4uICBZb3UgY2Fubm90IHJlY292ZXIgaW50bwotICAgIHRpbWVsaW5lcyB0aGF0IGJyYW5jaGVk IG9mZiBlYXJsaWVyIHRoYW4gdGhlIGJhc2UgYmFja3VwLgorICAgIHRhcmdldCB0aW1lbGluZSBJ RCBpbiA8eHJlZiBsaW5rZW5kPSJyZWNvdmVyeS10YXJnZXQtdGltZWxpbmUiLz4uIFlvdQorICAg IGNhbm5vdCByZWNvdmVyIGludG8gdGltZWxpbmVzIHRoYXQgYnJhbmNoZWQgb2ZmIGVhcmxpZXIg dGhhbiB0aGUgYmFzZSBiYWNrdXAuCiAgICA8L3BhcmE+CiAgIDwvc2VjdDI+CiAKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApp bmRleCBiNjAyNDBlLi5iMTRkM2JjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC0zMjQyLDExICszMjQyLDExIEBA IGluY2x1ZGVfZGlyICdjb25mLmQnCiAgICAgICAgIDx2YXJuYW1lPmFwcGxpY2F0aW9uX25hbWU8 L3Zhcm5hbWU+IHNldHRpbmcgb2YgdGhlIHN0YW5kYnksIGFzIHNldCBpbiB0aGUKICAgICAgICAg c3RhbmRieSdzIGNvbm5lY3Rpb24gaW5mb3JtYXRpb24uICBJbiBjYXNlIG9mIGEgcGh5c2ljYWwg cmVwbGljYXRpb24KICAgICAgICAgc3RhbmRieSwgdGhpcyBzaG91bGQgYmUgc2V0IGluIHRoZSA8 dmFybmFtZT5wcmltYXJ5X2Nvbm5pbmZvPC92YXJuYW1lPgotICAgICAgICBzZXR0aW5nIGluIDxm aWxlbmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFtZT47IHRoZSBkZWZhdWx0Ci0gICAgICAgIGlz IDxsaXRlcmFsPndhbHJlY2VpdmVyPC9saXRlcmFsPi4gIEZvciBsb2dpY2FsIHJlcGxpY2F0aW9u LCB0aGlzIGNhbgotICAgICAgICBiZSBzZXQgaW4gdGhlIGNvbm5lY3Rpb24gaW5mb3JtYXRpb24g b2YgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGl0Ci0gICAgICAgIGRlZmF1bHRzIHRvIHRoZSBzdWJz Y3JpcHRpb24gbmFtZS4gIEZvciBvdGhlciByZXBsaWNhdGlvbiBzdHJlYW0KLSAgICAgICAgY29u c3VtZXJzLCBjb25zdWx0IHRoZWlyIGRvY3VtZW50YXRpb24uCisgICAgICAgIHNldHRpbmc7IHRo ZSBkZWZhdWx0IGlzIDxsaXRlcmFsPndhbHJlY2VpdmVyPC9saXRlcmFsPi4KKyAgICAgICAgRm9y IGxvZ2ljYWwgcmVwbGljYXRpb24sIHRoaXMgY2FuIGJlIHNldCBpbiB0aGUgY29ubmVjdGlvbgor ICAgICAgICBpbmZvcm1hdGlvbiBvZiB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgaXQgZGVmYXVsdHMg dG8gdGhlCisgICAgICAgIHN1YnNjcmlwdGlvbiBuYW1lLiAgRm9yIG90aGVyIHJlcGxpY2F0aW9u IHN0cmVhbSBjb25zdW1lcnMsCisgICAgICAgIGNvbnN1bHQgdGhlaXIgZG9jdW1lbnRhdGlvbi4K ICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgIFRoaXMgcGFyYW1ldGVyIHNw ZWNpZmllcyBhIGxpc3Qgb2Ygc3RhbmRieSBzZXJ2ZXJzIHVzaW5nCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvZnVuYy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAppbmRleCBkNzNmZGY2 Li5hNDNkZTY5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9mdW5jLnNnbWwKQEAgLTE4ODU1LDcgKzE4ODU1LDcgQEAgcG9zdGdyZXM9IyBzZWxl Y3QgcGdfc3RhcnRfYmFja3VwKCdsYWJlbF9nb2VzX2hlcmUnKTsKICAgICA8ZnVuY3Rpb24+cGdf Y3JlYXRlX3Jlc3RvcmVfcG9pbnQ8L2Z1bmN0aW9uPiBjcmVhdGVzIGEgbmFtZWQgd3JpdGUtYWhl YWQgbG9nCiAgICAgcmVjb3JkIHRoYXQgY2FuIGJlIHVzZWQgYXMgcmVjb3ZlcnkgdGFyZ2V0LCBh bmQgcmV0dXJucyB0aGUgY29ycmVzcG9uZGluZwogICAgIHdyaXRlLWFoZWFkIGxvZyBsb2NhdGlv bi4gIFRoZSBnaXZlbiBuYW1lIGNhbiB0aGVuIGJlIHVzZWQgd2l0aAotICAgIDx4cmVmIGxpbmtl bmQ9InJlY292ZXJ5LXRhcmdldC1uYW1lIi8+IHRvIHNwZWNpZnkgdGhlIHBvaW50IHVwIHRvIHdo aWNoCisgICAgPHhyZWYgbGlua2VuZD0icmVjb3ZlcnktdGFyZ2V0LXZhbHVlIi8+IHRvIHNwZWNp ZnkgdGhlIHBvaW50IHVwIHRvIHdoaWNoCiAgICAgcmVjb3Zlcnkgd2lsbCBwcm9jZWVkLiAgQXZv aWQgY3JlYXRpbmcgbXVsdGlwbGUgcmVzdG9yZSBwb2ludHMgd2l0aCB0aGUKICAgICBzYW1lIG5h bWUsIHNpbmNlIHJlY292ZXJ5IHdpbGwgc3RvcCBhdCB0aGUgZmlyc3Qgb25lIHdob3NlIG5hbWUg bWF0Y2hlcwogICAgIHRoZSByZWNvdmVyeSB0YXJnZXQuCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvaGlnaC1hdmFpbGFiaWxpdHkuc2dtbCBiL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0 eS5zZ21sCmluZGV4IDQ2YmYxOTguLmU5ZThmMjQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9o aWdoLWF2YWlsYWJpbGl0eS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0 eS5zZ21sCkBAIC02ODYsMTAgKzY4Niw5IEBAIHByb3RvY29sIHRvIG1ha2Ugbm9kZXMgYWdyZWUg b24gYSBzZXJpYWxpemFibGUgdHJhbnNhY3Rpb25hbCBvcmRlci4KIAogICAgPHBhcmE+CiAgICAg VG8gc2V0IHVwIHRoZSBzdGFuZGJ5IHNlcnZlciwgcmVzdG9yZSB0aGUgYmFzZSBiYWNrdXAgdGFr ZW4gZnJvbSBwcmltYXJ5Ci0gICAgc2VydmVyIChzZWUgPHhyZWYgbGlua2VuZD0iYmFja3VwLXBp dHItcmVjb3ZlcnkiLz4pLiBDcmVhdGUgYSByZWNvdmVyeQotICAgIGNvbW1hbmQgZmlsZSA8Zmls ZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+IGluIHRoZSBzdGFuZGJ5J3MgY2x1c3RlciBk YXRhCi0gICAgZGlyZWN0b3J5LCBhbmQgdHVybiBvbiA8dmFybmFtZT5zdGFuZGJ5X21vZGU8L3Zh cm5hbWU+LiBTZXQKLSAgICA8dmFybmFtZT5yZXN0b3JlX2NvbW1hbmQ8L3Zhcm5hbWU+IHRvIGEg c2ltcGxlIGNvbW1hbmQgdG8gY29weSBmaWxlcyBmcm9tCisgICAgc2VydmVyIChzZWUgPHhyZWYg bGlua2VuZD0iYmFja3VwLXBpdHItcmVjb3ZlcnkiLz4pLiBDcmVhdGUgYSBmaWxlCisgICAgPGZp bGVuYW1lPnN0YW5kYnkuc2lnbmFsPC9maWxlbmFtZT4gaW4gdGhlIHN0YW5kYnkncyBjbHVzdGVy IGRhdGEKKyAgICBkaXJlY3RvcnkuIFNldCA8eHJlZiBsaW5rZW5kPSJyZXN0b3JlLWNvbW1hbmQi Lz4gdG8gYSBzaW1wbGUgY29tbWFuZCB0byBjb3B5IGZpbGVzIGZyb20KICAgICB0aGUgV0FMIGFy Y2hpdmUuIElmIHlvdSBwbGFuIHRvIGhhdmUgbXVsdGlwbGUgc3RhbmRieSBzZXJ2ZXJzIGZvciBo aWdoCiAgICAgYXZhaWxhYmlsaXR5IHB1cnBvc2VzLCBzZXQgPHZhcm5hbWU+cmVjb3ZlcnlfdGFy Z2V0X3RpbWVsaW5lPC92YXJuYW1lPiB0bwogICAgIDxsaXRlcmFsPmxhdGVzdDwvbGl0ZXJhbD4s IHRvIG1ha2UgdGhlIHN0YW5kYnkgc2VydmVyIGZvbGxvdyB0aGUgdGltZWxpbmUgY2hhbmdlCkBA IC02OTksNyArNjk4LDcgQEAgcHJvdG9jb2wgdG8gbWFrZSBub2RlcyBhZ3JlZSBvbiBhIHNlcmlh bGl6YWJsZSB0cmFuc2FjdGlvbmFsIG9yZGVyLgogICAgPG5vdGU+CiAgICAgIDxwYXJhPgogICAg ICBEbyBub3QgdXNlIHBnX3N0YW5kYnkgb3Igc2ltaWxhciB0b29scyB3aXRoIHRoZSBidWlsdC1p biBzdGFuZGJ5IG1vZGUKLSAgICAgZGVzY3JpYmVkIGhlcmUuIDx2YXJuYW1lPnJlc3RvcmVfY29t bWFuZDwvdmFybmFtZT4gc2hvdWxkIHJldHVybiBpbW1lZGlhdGVseQorICAgICBkZXNjcmliZWQg aGVyZS4gPHhyZWYgbGlua2VuZD0icmVzdG9yZS1jb21tYW5kIi8+IHNob3VsZCByZXR1cm4gaW1t ZWRpYXRlbHkKICAgICAgaWYgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3Q7IHRoZSBzZXJ2ZXIgd2ls bCByZXRyeSB0aGUgY29tbWFuZCBhZ2FpbiBpZgogICAgICBuZWNlc3NhcnkuIFNlZSA8eHJlZiBs aW5rZW5kPSJsb2ctc2hpcHBpbmctYWx0ZXJuYXRpdmUiLz4KICAgICAgZm9yIHVzaW5nIHRvb2xz IGxpa2UgcGdfc3RhbmRieS4KQEAgLTcwOCwxMSArNzA3LDExIEBAIHByb3RvY29sIHRvIG1ha2Ug bm9kZXMgYWdyZWUgb24gYSBzZXJpYWxpemFibGUgdHJhbnNhY3Rpb25hbCBvcmRlci4KIAogICAg PHBhcmE+CiAgICAgIElmIHlvdSB3YW50IHRvIHVzZSBzdHJlYW1pbmcgcmVwbGljYXRpb24sIGZp bGwgaW4KLSAgICAgPHZhcm5hbWU+cHJpbWFyeV9jb25uaW5mbzwvdmFybmFtZT4gd2l0aCBhIGxp YnBxIGNvbm5lY3Rpb24gc3RyaW5nLCBpbmNsdWRpbmcKKyAgICAgPHhyZWYgbGlua2VuZD0icHJp bWFyeS1jb25uaW5mbyIvPiB3aXRoIGEgbGlicHEgY29ubmVjdGlvbiBzdHJpbmcsIGluY2x1ZGlu ZwogICAgICB0aGUgaG9zdCBuYW1lIChvciBJUCBhZGRyZXNzKSBhbmQgYW55IGFkZGl0aW9uYWwg ZGV0YWlscyBuZWVkZWQgdG8KICAgICAgY29ubmVjdCB0byB0aGUgcHJpbWFyeSBzZXJ2ZXIuIElm IHRoZSBwcmltYXJ5IG5lZWRzIGEgcGFzc3dvcmQgZm9yCiAgICAgIGF1dGhlbnRpY2F0aW9uLCB0 aGUgcGFzc3dvcmQgbmVlZHMgdG8gYmUgc3BlY2lmaWVkIGluCi0gICAgIDx2YXJuYW1lPnByaW1h cnlfY29ubmluZm88L3Zhcm5hbWU+IGFzIHdlbGwuCisgICAgIDx4cmVmIGxpbmtlbmQ9InByaW1h cnktY29ubmluZm8iLz4gYXMgd2VsbC4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+CkBAIC03MzUs OSArNzM0LDggQEAgcHJvdG9jb2wgdG8gbWFrZSBub2RlcyBhZ3JlZSBvbiBhIHNlcmlhbGl6YWJs ZSB0cmFuc2FjdGlvbmFsIG9yZGVyLgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLSAgICBBIHNp bXBsZSBleGFtcGxlIG9mIGEgPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8L2ZpbGVuYW1lPiBpczoK KyAgICBBIHNpbXBsZSBleGFtcGxlIG9mIGNvbmZpZ3VyYXRpb24gaXM6CiA8cHJvZ3JhbWxpc3Rp bmc+Ci1zdGFuZGJ5X21vZGUgPSAnb24nCiBwcmltYXJ5X2Nvbm5pbmZvID0gJ2hvc3Q9MTkyLjE2 OC4xLjUwIHBvcnQ9NTQzMiB1c2VyPWZvbyBwYXNzd29yZD1mb29wYXNzJwogcmVzdG9yZV9jb21t YW5kID0gJ2NwIC9wYXRoL3RvL2FyY2hpdmUvJWYgJXAnCiBhcmNoaXZlX2NsZWFudXBfY29tbWFu ZCA9ICdwZ19hcmNoaXZlY2xlYW51cCAvcGF0aC90by9hcmNoaXZlICVyJwpAQCAtNzkzLDggKzc5 MSw4IEBAIGFyY2hpdmVfY2xlYW51cF9jb21tYW5kID0gJ3BnX2FyY2hpdmVjbGVhbnVwIC9wYXRo L3RvL2FyY2hpdmUgJXInCiAgICAgVG8gdXNlIHN0cmVhbWluZyByZXBsaWNhdGlvbiwgc2V0IHVw IGEgZmlsZS1iYXNlZCBsb2ctc2hpcHBpbmcgc3RhbmRieQogICAgIHNlcnZlciBhcyBkZXNjcmli ZWQgaW4gPHhyZWYgbGlua2VuZD0id2FybS1zdGFuZGJ5Ii8+LiBUaGUgc3RlcCB0aGF0CiAgICAg dHVybnMgYSBmaWxlLWJhc2VkIGxvZy1zaGlwcGluZyBzdGFuZGJ5IGludG8gc3RyZWFtaW5nIHJl cGxpY2F0aW9uCi0gICAgc3RhbmRieSBpcyBzZXR0aW5nIDx2YXJuYW1lPnByaW1hcnlfY29ubmlu Zm88L3Zhcm5hbWU+IHNldHRpbmcgaW4gdGhlCi0gICAgPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8 L2ZpbGVuYW1lPiBmaWxlIHRvIHBvaW50IHRvIHRoZSBwcmltYXJ5IHNlcnZlci4gU2V0CisgICAg c3RhbmRieSBpcyBzZXR0aW5nIDx2YXJuYW1lPnByaW1hcnlfY29ubmluZm88L3Zhcm5hbWU+IHNl dHRpbmcKKyAgICB0byBwb2ludCB0byB0aGUgcHJpbWFyeSBzZXJ2ZXIuIFNldAogICAgIDx4cmVm IGxpbmtlbmQ9Imd1Yy1saXN0ZW4tYWRkcmVzc2VzIi8+IGFuZCBhdXRoZW50aWNhdGlvbiBvcHRp b25zCiAgICAgKHNlZSA8ZmlsZW5hbWU+cGdfaGJhLmNvbmY8L2ZpbGVuYW1lPikgb24gdGhlIHBy aW1hcnkgc28gdGhhdCB0aGUgc3RhbmRieSBzZXJ2ZXIKICAgICBjYW4gY29ubmVjdCB0byB0aGUg PGxpdGVyYWw+cmVwbGljYXRpb248L2xpdGVyYWw+IHBzZXVkby1kYXRhYmFzZSBvbiB0aGUgcHJp bWFyeQpAQCAtODU0LDE0ICs4NTIsMTQgQEAgaG9zdCAgICByZXBsaWNhdGlvbiAgICAgZm9vICAg ICAgICAgICAgIDE5Mi4xNjguMS4xMDAvMzIgICAgICAgIG1kNQogICAgIDwvcGFyYT4KICAgICA8 cGFyYT4KICAgICAgVGhlIGhvc3QgbmFtZSBhbmQgcG9ydCBudW1iZXIgb2YgdGhlIHByaW1hcnks IGNvbm5lY3Rpb24gdXNlciBuYW1lLAotICAgICBhbmQgcGFzc3dvcmQgYXJlIHNwZWNpZmllZCBp biB0aGUgPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8L2ZpbGVuYW1lPiBmaWxlLgorICAgICBhbmQg cGFzc3dvcmQgYXJlIHNwZWNpZmllZCBpbiB0aGUgPHhyZWYgbGlua2VuZD0icHJpbWFyeS1jb25u aW5mbyIvPi4KICAgICAgVGhlIHBhc3N3b3JkIGNhbiBhbHNvIGJlIHNldCBpbiB0aGUgPGZpbGVu YW1lPn4vLnBncGFzczwvZmlsZW5hbWU+IGZpbGUgb24gdGhlCiAgICAgIHN0YW5kYnkgKHNwZWNp ZnkgPGxpdGVyYWw+cmVwbGljYXRpb248L2xpdGVyYWw+IGluIHRoZSA8cmVwbGFjZWFibGU+ZGF0 YWJhc2U8L3JlcGxhY2VhYmxlPgogICAgICBmaWVsZCkuCiAgICAgIEZvciBleGFtcGxlLCBpZiB0 aGUgcHJpbWFyeSBpcyBydW5uaW5nIG9uIGhvc3QgSVAgPGxpdGVyYWw+MTkyLjE2OC4xLjUwPC9s aXRlcmFsPiwKICAgICAgcG9ydCA8bGl0ZXJhbD41NDMyPC9saXRlcmFsPiwgdGhlIGFjY291bnQg bmFtZSBmb3IgcmVwbGljYXRpb24gaXMKICAgICAgPGxpdGVyYWw+Zm9vPC9saXRlcmFsPiwgYW5k IHRoZSBwYXNzd29yZCBpcyA8bGl0ZXJhbD5mb29wYXNzPC9saXRlcmFsPiwgdGhlIGFkbWluaXN0 cmF0b3IKLSAgICAgY2FuIGFkZCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gdGhlIDxmaWxlbmFtZT5y ZWNvdmVyeS5jb25mPC9maWxlbmFtZT4gZmlsZSBvbiB0aGUKKyAgICAgY2FuIGFkZCB0aGUgZm9s bG93aW5nIGxpbmUgdG8gdGhlIDxmaWxlbmFtZT5wb3N0Z3Jlc3FsLmNvbmY8L2ZpbGVuYW1lPiBm aWxlIG9uIHRoZQogICAgICBzdGFuZGJ5OgogCiA8cHJvZ3JhbWxpc3Rpbmc+CkBAIC05NzMsMTAg Kzk3MSw4IEBAIHBvc3RncmVzPSMgU0VMRUNUICogRlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90czsK ICgxIHJvdykKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgICAgIFRvIGNvbmZpZ3VyZSB0aGUgc3RhbmRi eSB0byB1c2UgdGhpcyBzbG90LCA8dmFybmFtZT5wcmltYXJ5X3Nsb3RfbmFtZTwvdmFybmFtZT4K LSAgICAgc2hvdWxkIGJlIGNvbmZpZ3VyZWQgaW4gdGhlIHN0YW5kYnkncyA8ZmlsZW5hbWU+cmVj b3ZlcnkuY29uZjwvZmlsZW5hbWU+LgotICAgICBIZXJlIGlzIGEgc2ltcGxlIGV4YW1wbGU6Cisg ICAgIHNob3VsZCBiZSBjb25maWd1cmVkIG9uIHRoZSBzdGFuZGJ5LiBIZXJlIGlzIGEgc2ltcGxl IGV4YW1wbGU6CiA8cHJvZ3JhbWxpc3Rpbmc+Ci1zdGFuZGJ5X21vZGUgPSAnb24nCiBwcmltYXJ5 X2Nvbm5pbmZvID0gJ2hvc3Q9MTkyLjE2OC4xLjUwIHBvcnQ9NTQzMiB1c2VyPWZvbyBwYXNzd29y ZD1mb29wYXNzJwogcHJpbWFyeV9zbG90X25hbWUgPSAnbm9kZV9hX3Nsb3QnCiA8L3Byb2dyYW1s aXN0aW5nPgpAQCAtMTQ3Myw5ICsxNDY5LDkgQEAgc3luY2hyb25vdXNfc3RhbmRieV9uYW1lcyA9 ICdBTlkgMiAoczEsIHMyLCBzMyknCiAgICA8cGFyYT4KICAgICBUbyB0cmlnZ2VyIGZhaWxvdmVy IG9mIGEgbG9nLXNoaXBwaW5nIHN0YW5kYnkgc2VydmVyLAogICAgIHJ1biA8Y29tbWFuZD5wZ19j dGwgcHJvbW90ZTwvY29tbWFuZD4gb3IgY3JlYXRlIGEgdHJpZ2dlcgotICAgIGZpbGUgd2l0aCB0 aGUgZmlsZSBuYW1lIGFuZCBwYXRoIHNwZWNpZmllZCBieSB0aGUgPHZhcm5hbWU+dHJpZ2dlcl9m aWxlPC92YXJuYW1lPgotICAgIHNldHRpbmcgaW4gPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8L2Zp bGVuYW1lPi4gSWYgeW91J3JlIHBsYW5uaW5nIHRvIHVzZQotICAgIDxjb21tYW5kPnBnX2N0bCBw cm9tb3RlPC9jb21tYW5kPiB0byBmYWlsIG92ZXIsIDx2YXJuYW1lPnRyaWdnZXJfZmlsZTwvdmFy bmFtZT4gaXMKKyAgICBmaWxlIHdpdGggdGhlIGZpbGUgbmFtZSBhbmQgcGF0aCBzcGVjaWZpZWQg YnkgdGhlIDx2YXJuYW1lPnByb21vdGVfc2lnbmFsX2ZpbGU8L3Zhcm5hbWU+CisgICAgc2V0dGlu Zy4gSWYgeW91J3JlIHBsYW5uaW5nIHRvIHVzZQorICAgIDxjb21tYW5kPnBnX2N0bCBwcm9tb3Rl PC9jb21tYW5kPiB0byBmYWlsIG92ZXIsIDx2YXJuYW1lPnByb21vdGVfc2lnbmFsX2ZpbGU8L3Zh cm5hbWU+IGlzCiAgICAgbm90IHJlcXVpcmVkLiBJZiB5b3UncmUgc2V0dGluZyB1cCB0aGUgcmVw b3J0aW5nIHNlcnZlcnMgdGhhdCBhcmUKICAgICBvbmx5IHVzZWQgdG8gb2ZmbG9hZCByZWFkLW9u bHkgcXVlcmllcyBmcm9tIHRoZSBwcmltYXJ5LCBub3QgZm9yIGhpZ2gKICAgICBhdmFpbGFiaWxp dHkgcHVycG9zZXMsIHlvdSBkb24ndCBuZWVkIHRvIHByb21vdGUgaXQuCkBAIC0xNDg4LDExICsx NDg0LDggQEAgc3luY2hyb25vdXNfc3RhbmRieV9uYW1lcyA9ICdBTlkgMiAoczEsIHMyLCBzMykn CiAgICA8cGFyYT4KICAgICBBbiBhbHRlcm5hdGl2ZSB0byB0aGUgYnVpbHQtaW4gc3RhbmRieSBt b2RlIGRlc2NyaWJlZCBpbiB0aGUgcHJldmlvdXMKICAgICBzZWN0aW9ucyBpcyB0byB1c2UgYSA8 dmFybmFtZT5yZXN0b3JlX2NvbW1hbmQ8L3Zhcm5hbWU+IHRoYXQgcG9sbHMgdGhlIGFyY2hpdmUg bG9jYXRpb24uCi0gICAgVGhpcyB3YXMgdGhlIG9ubHkgb3B0aW9uIGF2YWlsYWJsZSBpbiB2ZXJz aW9ucyA4LjQgYW5kIGJlbG93LiBJbiB0aGlzCi0gICAgc2V0dXAsIHNldCA8dmFybmFtZT5zdGFu ZGJ5X21vZGU8L3Zhcm5hbWU+IG9mZiwgYmVjYXVzZSB5b3UgYXJlIGltcGxlbWVudGluZwotICAg IHRoZSBwb2xsaW5nIHJlcXVpcmVkIGZvciBzdGFuZGJ5IG9wZXJhdGlvbiB5b3Vyc2VsZi4gU2Vl IHRoZQotICAgIDx4cmVmIGxpbmtlbmQ9InBnc3RhbmRieSIvPiBtb2R1bGUgZm9yIGEgcmVmZXJl bmNlCi0gICAgaW1wbGVtZW50YXRpb24gb2YgdGhpcy4KKyAgICBUaGlzIHdhcyB0aGUgb25seSBv cHRpb24gYXZhaWxhYmxlIGluIHZlcnNpb25zIDguNCBhbmQgYmVsb3cuIFNlZSB0aGUKKyAgICA8 eHJlZiBsaW5rZW5kPSJwZ3N0YW5kYnkiLz4gbW9kdWxlIGZvciBhIHJlZmVyZW5jZSBpbXBsZW1l bnRhdGlvbiBvZiB0aGlzLgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KQEAgLTE1MTksMTQgKzE1 MTIsMTMgQEAgc3luY2hyb25vdXNfc3RhbmRieV9uYW1lcyA9ICdBTlkgMiAoczEsIHMyLCBzMykn CiAgICAgVGhlIG1hZ2ljIHRoYXQgbWFrZXMgdGhlIHR3byBsb29zZWx5IGNvdXBsZWQgc2VydmVy cyB3b3JrIHRvZ2V0aGVyIGlzCiAgICAgc2ltcGx5IGEgPHZhcm5hbWU+cmVzdG9yZV9jb21tYW5k PC92YXJuYW1lPiB1c2VkIG9uIHRoZSBzdGFuZGJ5IHRoYXQsCiAgICAgd2hlbiBhc2tlZCBmb3Ig dGhlIG5leHQgV0FMIGZpbGUsIHdhaXRzIGZvciBpdCB0byBiZWNvbWUgYXZhaWxhYmxlIGZyb20K LSAgICB0aGUgcHJpbWFyeS4gVGhlIDx2YXJuYW1lPnJlc3RvcmVfY29tbWFuZDwvdmFybmFtZT4g aXMgc3BlY2lmaWVkIGluIHRoZQotICAgIDxmaWxlbmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFt ZT4gZmlsZSBvbiB0aGUgc3RhbmRieSBzZXJ2ZXIuIE5vcm1hbCByZWNvdmVyeQotICAgIHByb2Nl c3Npbmcgd291bGQgcmVxdWVzdCBhIGZpbGUgZnJvbSB0aGUgV0FMIGFyY2hpdmUsIHJlcG9ydGlu ZyBmYWlsdXJlCi0gICAgaWYgdGhlIGZpbGUgd2FzIHVuYXZhaWxhYmxlLiAgRm9yIHN0YW5kYnkg cHJvY2Vzc2luZyBpdCBpcyBub3JtYWwgZm9yCi0gICAgdGhlIG5leHQgV0FMIGZpbGUgdG8gYmUg dW5hdmFpbGFibGUsIHNvIHRoZSBzdGFuZGJ5IG11c3Qgd2FpdCBmb3IKLSAgICBpdCB0byBhcHBl YXIuIEZvciBmaWxlcyBlbmRpbmcgaW4gPGxpdGVyYWw+LmJhY2t1cDwvbGl0ZXJhbD4gb3IKLSAg ICA8bGl0ZXJhbD4uaGlzdG9yeTwvbGl0ZXJhbD4gdGhlcmUgaXMgbm8gbmVlZCB0byB3YWl0LCBh bmQgYSBub24temVybyByZXR1cm4KLSAgICBjb2RlIG11c3QgYmUgcmV0dXJuZWQuIEEgd2FpdGlu ZyA8dmFybmFtZT5yZXN0b3JlX2NvbW1hbmQ8L3Zhcm5hbWU+IGNhbiBiZQorICAgIHRoZSBwcmlt YXJ5LiBOb3JtYWwgcmVjb3ZlcnkgcHJvY2Vzc2luZyB3b3VsZCByZXF1ZXN0IGEgZmlsZSBmcm9t IHRoZSBXQUwKKyAgICBhcmNoaXZlLCByZXBvcnRpbmcgZmFpbHVyZSBpZiB0aGUgZmlsZSB3YXMg dW5hdmFpbGFibGUuICBGb3Igc3RhbmRieQorICAgIHByb2Nlc3NpbmcgaXQgaXMgbm9ybWFsIGZv ciB0aGUgbmV4dCBXQUwgZmlsZSB0byBiZSB1bmF2YWlsYWJsZSwKKyAgICBzbyB0aGUgc3RhbmRi eSBtdXN0IHdhaXQgZm9yIGl0IHRvIGFwcGVhci4gRm9yIGZpbGVzIGVuZGluZyBpbgorICAgIDxs aXRlcmFsPi5iYWNrdXA8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPi5oaXN0b3J5PC9saXRlcmFsPgor ICAgIHRoZXJlIGlzIG5vIG5lZWQgdG8gd2FpdCwgYW5kIGEgbm9uLXplcm8gcmV0dXJuIGNvZGUg bXVzdCBiZSByZXR1cm5lZC4KKyAgICBBIHdhaXRpbmcgPHZhcm5hbWU+cmVzdG9yZV9jb21tYW5k PC92YXJuYW1lPiBjYW4gYmUKICAgICB3cml0dGVuIGFzIGEgY3VzdG9tIHNjcmlwdCB0aGF0IGxv b3BzIGFmdGVyIHBvbGxpbmcgZm9yIHRoZSBleGlzdGVuY2Ugb2YKICAgICB0aGUgbmV4dCBXQUwg ZmlsZS4gVGhlcmUgbXVzdCBhbHNvIGJlIHNvbWUgd2F5IHRvIHRyaWdnZXIgZmFpbG92ZXIsIHdo aWNoCiAgICAgc2hvdWxkIGludGVycnVwdCB0aGUgPHZhcm5hbWU+cmVzdG9yZV9jb21tYW5kPC92 YXJuYW1lPiwgYnJlYWsgdGhlIGxvb3AgYW5kCkBAIC0xNjA4LDkgKzE2MDAsOCBAQCBpZiAoIXRy aWdnZXJlZCkKICAgICAgPGxpc3RpdGVtPgogICAgICAgPHBhcmE+CiAgICAgICAgQmVnaW4gcmVj b3Zlcnkgb24gdGhlIHN0YW5kYnkgc2VydmVyIGZyb20gdGhlIGxvY2FsIFdBTAotICAgICAgIGFy Y2hpdmUsIHVzaW5nIGEgPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8L2ZpbGVuYW1lPiB0aGF0IHNw ZWNpZmllcyBhCi0gICAgICAgPHZhcm5hbWU+cmVzdG9yZV9jb21tYW5kPC92YXJuYW1lPiB0aGF0 IHdhaXRzIGFzIGRlc2NyaWJlZAotICAgICAgIHByZXZpb3VzbHkgKHNlZSA8eHJlZiBsaW5rZW5k PSJiYWNrdXAtcGl0ci1yZWNvdmVyeSIvPikuCisgICAgICAgYXJjaGl2ZSwgdXNpbmcgPHZhcm5h bWU+cmVzdG9yZV9jb21tYW5kPC92YXJuYW1lPiB0aGF0IHdhaXRzCisgICAgICAgYXMgZGVzY3Jp YmVkIHByZXZpb3VzbHkgKHNlZSA8eHJlZiBsaW5rZW5kPSJiYWNrdXAtcGl0ci1yZWNvdmVyeSIv PikuCiAgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC9vcmRlcmVkbGlzdD4K QEAgLTIxMDUsNyArMjA5Niw3IEBAIGlmICghdHJpZ2dlcmVkKQogCiAgICA8cGFyYT4KICAgICBJ ZiA8dmFybmFtZT5ob3Rfc3RhbmRieTwvdmFybmFtZT4gaXMgPGxpdGVyYWw+b248L2xpdGVyYWw+ IGluIDxmaWxlbmFtZT5wb3N0Z3Jlc3FsLmNvbmY8L2ZpbGVuYW1lPgotICAgICh0aGUgZGVmYXVs dCB2YWx1ZSkgYW5kIHRoZXJlIGlzIGEgPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8L2ZpbGVuYW1l PgorICAgICh0aGUgZGVmYXVsdCB2YWx1ZSkgYW5kIHRoZXJlIGlzIGEgPGZpbGVuYW1lPnN0YW5k Ynkuc2lnbmFsPC9maWxlbmFtZT4KICAgICBmaWxlIHByZXNlbnQsIHRoZSBzZXJ2ZXIgd2lsbCBy dW4gaW4gSG90IFN0YW5kYnkgbW9kZS4KICAgICBIb3dldmVyLCBpdCBtYXkgdGFrZSBzb21lIHRp bWUgZm9yIEhvdCBTdGFuZGJ5IGNvbm5lY3Rpb25zIHRvIGJlIGFsbG93ZWQsCiAgICAgYmVjYXVz ZSB0aGUgc2VydmVyIHdpbGwgbm90IGFjY2VwdCBjb25uZWN0aW9ucyB1bnRpbCBpdCBoYXMgY29t cGxldGVkCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGdzdGFuZGJ5LnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcGdzdGFuZGJ5LnNnbWwKaW5kZXggMmNjNThmZS4uZDhhZGVkNCAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3Bnc3RhbmRieS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wZ3N0YW5kYnku c2dtbApAQCAtNDcsNyArNDcsNyBAQAogICA8cGFyYT4KICAgIFRvIGNvbmZpZ3VyZSBhIHN0YW5k YnkKICAgIHNlcnZlciB0byB1c2UgPGFwcGxpY2F0aW9uPnBnX3N0YW5kYnk8L2FwcGxpY2F0aW9u PiwgcHV0IHRoaXMgaW50byBpdHMKLSAgIDxmaWxlbmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFt ZT4gY29uZmlndXJhdGlvbiBmaWxlOgorICAgPGZpbGVuYW1lPnBvc3RncmVzcWwuY29uZjwvZmls ZW5hbWU+IGNvbmZpZ3VyYXRpb24gZmlsZToKIDxwcm9ncmFtbGlzdGluZz4KIHJlc3RvcmVfY29t bWFuZCA9ICdwZ19zdGFuZGJ5IDxyZXBsYWNlYWJsZT5hcmNoaXZlRGlyPC9yZXBsYWNlYWJsZT4g JWYgJXAgJXInCiA8L3Byb2dyYW1saXN0aW5nPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Y292ZXJ5LWNvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlY292ZXJ5LWNvbmZpZy5zZ21sCmlu ZGV4IDkyODI1ZmQuLjVjZGNhNjEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWNvdmVyeS1j b25maWcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVjb3ZlcnktY29uZmlnLnNnbWwKQEAgLTEx LDIzICsxMSw0NCBAQAogCiAgICA8cGFyYT4KICAgICBUaGlzIGNoYXB0ZXIgZGVzY3JpYmVzIHRo ZSBzZXR0aW5ncyBhdmFpbGFibGUgaW4gdGhlCi0gICAgPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8 L2ZpbGVuYW1lPjxpbmRleHRlcm0+PHByaW1hcnk+cmVjb3ZlcnkuY29uZjwvcHJpbWFyeT48L2lu ZGV4dGVybT4KLSAgICBmaWxlLiBUaGV5IGFwcGx5IG9ubHkgZm9yIHRoZSBkdXJhdGlvbiBvZiB0 aGUKKyAgICA8ZmlsZW5hbWU+cG9zdGdyZXNxbC5jb25mPC9maWxlbmFtZT4KKyAgICBmaWxlIHRo YXQgYXBwbHkgb25seSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZQogICAgIHJlY292ZXJ5LiAgVGhl eSBtdXN0IGJlIHJlc2V0IGZvciBhbnkgc3Vic2VxdWVudCByZWNvdmVyeSB5b3Ugd2lzaCB0bwog ICAgIHBlcmZvcm0uICBUaGV5IGNhbm5vdCBiZSBjaGFuZ2VkIG9uY2UgcmVjb3ZlcnkgaGFzIGJl Z3VuLgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLSAgICAgU2V0dGluZ3MgaW4gPGZpbGVuYW1l PnJlY292ZXJ5LmNvbmY8L2ZpbGVuYW1lPiBhcmUgc3BlY2lmaWVkIGluIHRoZSBmb3JtYXQKLSAg ICAgPGxpdGVyYWw+bmFtZSA9ICd2YWx1ZSc8L2xpdGVyYWw+LiBPbmUgcGFyYW1ldGVyIGlzIHNw ZWNpZmllZCBwZXIgbGluZS4KLSAgICAgSGFzaCBtYXJrcyAoPGxpdGVyYWw+IzwvbGl0ZXJhbD4p IGRlc2lnbmF0ZSB0aGUgcmVzdCBvZiB0aGUKLSAgICAgbGluZSBhcyBhIGNvbW1lbnQuICBUbyBl bWJlZCBhIHNpbmdsZSBxdW90ZSBpbiBhIHBhcmFtZXRlcgotICAgICB2YWx1ZSwgd3JpdGUgdHdv IHF1b3RlcyAoPGxpdGVyYWw+Jyc8L2xpdGVyYWw+KS4KKyAgICBUaGUgZGF0YWJhc2Ugc2VydmVy IGNhbiBhbHNvIGJlIHN0YXJ0ZWQgPGxpdGVyYWw+aW4gcmVjb3Zlcnk8L2xpdGVyYWw+LCBhIHRl cm0gdGhhdCBjb3ZlcnMKKyAgICB1c2luZyB0aGUgc2VydmVyIGFzIGEgc3RhbmRieSBvciBmb3Ig ZXhlY3V0aW5nIGEgdGFyZ2V0ZWQgcmVjb3ZlcnkuIFR5cGljYWxseQorICAgIHN0YW5kYnkgbW9k ZSB3b3VsZCBiZSB1c2VkIHRvIHByb3ZpZGUgaGlnaCBhdmFpbGFiaWxpdHkgYW5kL29yIHJlYWQK KyAgICBzY2FsYWJpbGl0eSwgd2hlcmVhcyBhIHRhcmdldGVkIHJlY292ZXJ5IGlzIHVzZWQgdG8g cmVjb3ZlciBmcm9tIGRhdGEgbG9zcy4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+Ci0gICAgQSBz YW1wbGUgZmlsZSwgPGZpbGVuYW1lPnNoYXJlL3JlY292ZXJ5LmNvbmYuc2FtcGxlPC9maWxlbmFt ZT4sCi0gICAgaXMgcHJvdmlkZWQgaW4gdGhlIGluc3RhbGxhdGlvbidzIDxmaWxlbmFtZT5zaGFy ZS88L2ZpbGVuYW1lPiBkaXJlY3RvcnkuCisgICAgIFRvIHN0YXJ0IHRoZSBzZXJ2ZXIgaW4gc3Rh bmRieSBtb2RlIGNyZWF0ZSBmaWxlCisgICAgY2FsbGVkIDxmaWxlbmFtZT5zdGFuZGJ5LnNpZ25h bDwvZmlsZW5hbWU+PGluZGV4dGVybT48cHJpbWFyeT5zdGFuZGJ5LnNpZ25hbDwvcHJpbWFyeT48 L2luZGV4dGVybT4KKyAgICBpbiB0aGUgZGF0YSBkaXJlY3RvcnkuIFRoZSBzZXJ2ZXIgd2lsbCBl bnRlciByZWNvdmVyeSBhbmQKKyAgICB3aWxsIG5vdCBzdG9wIHJlY292ZXJ5IHdoZW4gdGhlIGVu ZCBvZiBhcmNoaXZlZCBXQUwgaXMgcmVhY2hlZCwgYnV0CisgICAgd2lsbCBrZWVwIHRyeWluZyB0 byBjb250aW51ZSByZWNvdmVyeSBieSBjb25uZWN0aW5nIHRvIHRoZSBzZW5kaW5nIHNlcnZlciBh cworICAgIHNwZWNpZmllZCBieSB0aGUgPHZhcm5hbWU+cHJpbWFyeV9jb25uaW5mbzwvdmFybmFt ZT4gc2V0dGluZyBhbmQvb3IgYnkKKyAgICBmZXRjaGluZyBuZXcgV0FMIHNlZ21lbnRzIHVzaW5n IDx2YXJuYW1lPnJlc3RvcmVfY29tbWFuZDwvdmFybmFtZT4KKyAgICBJbiB0aGlzIG1vZGUgeW91 IG1heSB1c2UgcGFyYW1ldGVycworICAgIGluIGJvdGggPHhyZWYgbGlua2VuZD0iYXJjaGl2ZS1y ZWNvdmVyeS1zZXR0aW5ncyIgLz4gYW5kCisgICAgPHhyZWYgbGlua2VuZD0ic3RhbmRieS1zZXR0 aW5ncyIvPiBzZWN0aW9ucy4gUGFyYW1ldGVycyBmcm9tCisgICAgPHhyZWYgbGlua2VuZD0icmVj b3ZlcnktdGFyZ2V0LXNldHRpbmdzIi8+IHdpbGwgbm90IGJlIHVzZWQuCisgICA8L3BhcmE+CisK KyAgIDxwYXJhPgorICAgIFRvIHN0YXJ0IHRoZSBzZXJ2ZXIgaW4gdGFyZ2V0ZWQgcmVjb3Zlcnkg Y3JlYXRlIGEgZmlsZSBjYWxsZWQKKyAgICA8ZmlsZW5hbWU+cmVjb3Zlcnkuc2lnbmFsPC9maWxl bmFtZT48aW5kZXh0ZXJtPjxwcmltYXJ5PnJlY292ZXJ5LnNpZ25hbDwvcHJpbWFyeT48L2luZGV4 dGVybT4KKyAgICBpbiB0aGUgZGF0YSBkaXJlY3RvcnkuCisgICAgSWYgYm90aCA8ZmlsZW5hbWU+ c3RhbmRieS5zaWduYWw8L2ZpbGVuYW1lPiBhbmQgPGZpbGVuYW1lPnJlY292ZXJ5LnNpZ25hbDwv ZmlsZW5hbWU+IGZpbGVzIGFyZQorICAgIGNyZWF0ZWQsIHN0YW5kYnkgbW9kZSB0YWtlcyBwcmVj ZWRlbmNlLiBUYXJnZXRlZCByZWNvdmVyeSBtb2RlIHdpbGwgZW5kIHdoZW4KKyAgICBlbmQgb2Yg YXJjaGl2ZWQgV0FMIGlzIHJlYWNoZWQsIG9yIHdoZW4gPHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0 PC92YXJuYW1lPiBpcyByZWFjaGVkLgorICAgIEluIHRoaXMgbW9kZSB5b3UgbWF5IHVzZSBwYXJh bWV0ZXJzIGZyb20gYm90aAorICAgIDx4cmVmIGxpbmtlbmQ9ImFyY2hpdmUtcmVjb3Zlcnktc2V0 dGluZ3MiLz4gYW5kCisgICAgPHhyZWYgbGlua2VuZD0icmVjb3ZlcnktdGFyZ2V0LXNldHRpbmdz Ii8+IHNlY3Rpb25zLiBQYXJhbWV0ZXJzIGZyb20KKyAgICA8eHJlZiBsaW5rZW5kPSJzdGFuZGJ5 LXNldHRpbmdzIi8+IHdpbGwgbm90IGJlIHVzZWQuCiAgICA8L3BhcmE+CiAKICAgPHNlY3QxIGlk PSJhcmNoaXZlLXJlY292ZXJ5LXNldHRpbmdzIj4KQEAgLTQ1LDcgKzY2LDcgQEAKICAgICAgICA8 cGFyYT4KICAgICAgICAgVGhlIGxvY2FsIHNoZWxsIGNvbW1hbmQgdG8gZXhlY3V0ZSB0byByZXRy aWV2ZSBhbiBhcmNoaXZlZCBzZWdtZW50IG9mCiAgICAgICAgIHRoZSBXQUwgZmlsZSBzZXJpZXMu IFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIGZvciBhcmNoaXZlIHJlY292ZXJ5LAotICAgICAg ICBidXQgb3B0aW9uYWwgZm9yIHN0cmVhbWluZyByZXBsaWNhdGlvbi4KKyAgICAgICAgYnV0IG9w dGlvbmFsIGZvciBzdGFuZGJ5IG1vZGUuCiAgICAgICAgIEFueSA8bGl0ZXJhbD4lZjwvbGl0ZXJh bD4gaW4gdGhlIHN0cmluZyBpcwogICAgICAgICByZXBsYWNlZCBieSB0aGUgbmFtZSBvZiB0aGUg ZmlsZSB0byByZXRyaWV2ZSBmcm9tIHRoZSBhcmNoaXZlLAogICAgICAgICBhbmQgYW55IDxsaXRl cmFsPiVwPC9saXRlcmFsPiBpcyByZXBsYWNlZCBieSB0aGUgY29weSBkZXN0aW5hdGlvbiBwYXRo IG5hbWUKQEAgLTE1NCw5OSArMTc1LDEwMSBAQCByZXN0b3JlX2NvbW1hbmQgPSAnY29weSAiQzpc XHNlcnZlclxcYXJjaGl2ZWRpclxcJWYiICIlcCInICAjIFdpbmRvd3MKICAgICA8dGl0bGU+UmVj b3ZlcnkgVGFyZ2V0IFNldHRpbmdzPC90aXRsZT4KIAogICAgICA8cGFyYT4KLSAgICAgIEJ5IGRl ZmF1bHQsIHJlY292ZXJ5IHdpbGwgcmVjb3ZlciB0byB0aGUgZW5kIG9mIHRoZSBXQUwgbG9nLiBU aGUKLSAgICAgIGZvbGxvd2luZyBwYXJhbWV0ZXJzIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYW4g ZWFybGllciBzdG9wcGluZyBwb2ludC4KLSAgICAgIEF0IG1vc3Qgb25lIG9mIDx2YXJuYW1lPnJl Y292ZXJ5X3RhcmdldDwvdmFybmFtZT4sCi0gICAgICA8dmFybmFtZT5yZWNvdmVyeV90YXJnZXRf bHNuPC92YXJuYW1lPiwgPHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X25hbWU8L3Zhcm5hbWU+LAot ICAgICAgPHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X3RpbWU8L3Zhcm5hbWU+LCBvciA8dmFybmFt ZT5yZWNvdmVyeV90YXJnZXRfeGlkPC92YXJuYW1lPgotICAgICAgY2FuIGJlIHVzZWQ7IGlmIG1v cmUgdGhhbiBvbmUgb2YgdGhlc2UgaXMgc3BlY2lmaWVkIGluIHRoZSBjb25maWd1cmF0aW9uCi0g ICAgICBmaWxlLCB0aGUgbGFzdCBlbnRyeSB3aWxsIGJlIHVzZWQuCisgICAgICBCeSBkZWZhdWx0 LCByZWNvdmVyeSB3aWxsIHByb2Nlc3MgdG8gdGhlIGVuZCBvZiB0aGUgV0FMIGxvZy4gQW4gZWFy bGllcgorICAgICAgc3RvcHBpbmcgcG9pbnQgbWF5IGJlIHNwZWNpZmllZCB1c2luZyA8dmFybmFt ZT5yZWNvdmVyeV90YXJnZXRfdHlwZTwvdmFybmFtZT4KKyAgICAgIGFuZCBpbiBtb3N0IGNhc2Vz IGFsc28gPHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X3ZhbHVlPC92YXJuYW1lPiwgcGx1cyB0aGUg b3B0aW9uYWwKKyAgICAgIHBhcmFtZXRlcnMgPHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X2luY2x1 c2l2ZTwvdmFybmFtZT4sCisgICAgICA8dmFybmFtZT5yZWNvdmVyeV90YXJnZXRfdGltZWxpbmU8 L3Zhcm5hbWU+IGFuZCA8dmFybmFtZT5yZWNvdmVyeV90YXJnZXRfYWN0aW9uPC92YXJuYW1lPi4K ICAgICAgPC9wYXJhPgogCiAgICAgIDx2YXJpYWJsZWxpc3Q+Ci0gICAgIDx2YXJsaXN0ZW50cnkg aWQ9InJlY292ZXJ5LXRhcmdldCIgeHJlZmxhYmVsPSJyZWNvdmVyeV90YXJnZXQiPgotICAgICAg PHRlcm0+PHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0PC92YXJuYW1lPjxsaXRlcmFsPiA9ICdpbW1l ZGlhdGUnPC9saXRlcmFsPgorICAgICAgPHZhcmxpc3RlbnRyeSBpZD0icmVjb3ZlcnktdGFyZ2V0 LXR5cGUiIHhyZWZsYWJlbD0icmVjb3ZlcnlfdGFyZ2V0X3R5cGUiPgorICAgICAgIDx0ZXJtPjx2 YXJuYW1lPnJlY292ZXJ5X3RhcmdldF90eXBlPC92YXJuYW1lPiAoPHR5cGU+ZW51bTwvdHlwZT4p CiAgICAgICA8aW5kZXh0ZXJtPgotICAgICAgICA8cHJpbWFyeT48dmFybmFtZT5yZWNvdmVyeV90 YXJnZXQ8L3Zhcm5hbWU+IHJlY292ZXJ5IHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgICAgPHBy aW1hcnk+PHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X3R5cGU8L3Zhcm5hbWU+IHRhcmdldGVkIHJl Y292ZXJ5IHBhcmFtZXRlcjwvcHJpbWFyeT4KICAgICAgIDwvaW5kZXh0ZXJtPgogICAgICAgPC90 ZXJtPgogICAgICAgPGxpc3RpdGVtPgogICAgICAgIDxwYXJhPgotICAgICAgICBUaGlzIHBhcmFt ZXRlciBzcGVjaWZpZXMgdGhhdCByZWNvdmVyeSBzaG91bGQgZW5kIGFzIHNvb24gYXMgYQotICAg ICAgICBjb25zaXN0ZW50IHN0YXRlIGlzIHJlYWNoZWQsIGkuZS4gYXMgZWFybHkgYXMgcG9zc2li bGUuIFdoZW4gcmVzdG9yaW5nCi0gICAgICAgIGZyb20gYW4gb25saW5lIGJhY2t1cCwgdGhpcyBt ZWFucyB0aGUgcG9pbnQgd2hlcmUgdGFraW5nIHRoZSBiYWNrdXAKLSAgICAgICAgZW5kZWQuCisg ICAgICAgIDx2YXJuYW1lPnJlY292ZXJ5X3RhcmdldF90eXBlPC92YXJuYW1lPiBzcGVjaWZpZXMg dGhlIHNlYXJjaCBjcml0ZXJpYSB1c2VkIGZvciBhCisgICAgICAgIGEgdGFyZ2V0ZWQgcmVjb3Zl cnkuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDxsaXRlcmFsPm5vbmU8L2xpdGVyYWw+LiBWYWxpZAor ICAgICAgICB2YWx1ZXMgYXJlIDxsaXRlcmFsPm5vbmU8L2xpdGVyYWw+LCA8bGl0ZXJhbD5pbW1l ZGlhdGU8L2xpdGVyYWw+LAorICAgICAgICA8bGl0ZXJhbD5uYW1lPC9saXRlcmFsPiwgPGxpdGVy YWw+dGltZXN0YW1wPC9saXRlcmFsPiwKKyAgICAgICAgPGxpdGVyYWw+eGlkPC9saXRlcmFsPiBh bmQgPGxpdGVyYWw+bHNuPC9saXRlcmFsPi4KICAgICAgICA8L3BhcmE+CisKICAgICAgICA8cGFy YT4KLSAgICAgICAgVGVjaG5pY2FsbHksIHRoaXMgaXMgYSBzdHJpbmcgcGFyYW1ldGVyLCBidXQg PGxpdGVyYWw+J2ltbWVkaWF0ZSc8L2xpdGVyYWw+Ci0gICAgICAgIGlzIGN1cnJlbnRseSB0aGUg b25seSBhbGxvd2VkIHZhbHVlLgorICAgICAgICBUYXJnZXQtdHlwZSA8bGl0ZXJhbD5ub25lPC9s aXRlcmFsPiBzcGVjaWZpZXMgdGhhdCByZWNvdmVyeSB3aWxsIG5vdCBzdG9wCisgICAgICAgIHVu dGlsIGl0IHJ1bnMgb3V0IG9mIFdBTCwgd2hpY2ggaXMgdGhlIGRlZmF1bHQgc2V0dGluZy4gV2hl biBub3QgaW4gdGFyZ2V0ZWQKKyAgICAgICAgcmVjb3ZlcnkgdGhpcyBpcyB0aGUgb25seSBtZWFu aW5nZnVsIHNldHRpbmcuCiAgICAgICAgPC9wYXJhPgotICAgICAgPC9saXN0aXRlbT4KLSAgICAg PC92YXJsaXN0ZW50cnk+CiAKLSAgICAgPHZhcmxpc3RlbnRyeSBpZD0icmVjb3ZlcnktdGFyZ2V0 LW5hbWUiIHhyZWZsYWJlbD0icmVjb3ZlcnlfdGFyZ2V0X25hbWUiPgotICAgICAgPHRlcm0+PHZh cm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X25hbWU8L3Zhcm5hbWU+ICg8dHlwZT5zdHJpbmc8L3R5cGU+ KQotICAgICAgPGluZGV4dGVybT4KLSAgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+cmVjb3Zlcnlf dGFyZ2V0X25hbWU8L3Zhcm5hbWU+IHJlY292ZXJ5IHBhcmFtZXRlcjwvcHJpbWFyeT4KLSAgICAg IDwvaW5kZXh0ZXJtPgotICAgICAgPC90ZXJtPgotICAgICAgPGxpc3RpdGVtPgogICAgICAgIDxw YXJhPgotICAgICAgICBUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIG5hbWVkIHJlc3RvcmUg cG9pbnQgKGNyZWF0ZWQgd2l0aAotICAgICAgICA8ZnVuY3Rpb24+cGdfY3JlYXRlX3Jlc3RvcmVf cG9pbnQoKTwvZnVuY3Rpb24+KSB0byB3aGljaCByZWNvdmVyeSB3aWxsIHByb2NlZWQuCisgICAg ICAgIFRhcmdldC10eXBlIDxsaXRlcmFsPmltbWVkaWF0ZTwvbGl0ZXJhbD4gc3BlY2lmaWVzIHRo YXQgcmVjb3Zlcnkgc2hvdWxkIGVuZCBhcworICAgICAgICBzb29uIGFzIGEgY29uc2lzdGVudCBz dGF0ZSBpcyByZWFjaGVkLCBpLmUuIGFzIGVhcmx5IGFzIHBvc3NpYmxlLiBXaGVuIHJlc3Rvcmlu ZworICAgICAgICBmcm9tIGFuIG9ubGluZSBiYWNrdXAsIHRoaXMgbWVhbnMgdGhlIHBvaW50IHdo ZXJlIHRha2luZyB0aGUgYmFja3VwIGVuZGVkLgorICAgICAgICBGb3IgdGhpcyB0YXJnZXQtdHlw ZSwgbm8gYWRkaXRpb25hbCB0YXJnZXQtc3BlY2lmaWVycyBpbmZsdWVuY2UgdGhlIHN0b3BwaW5n CisgICAgICAgIHBvaW50LgogICAgICAgIDwvcGFyYT4KLSAgICAgIDwvbGlzdGl0ZW0+Ci0gICAg IDwvdmFybGlzdGVudHJ5PgogCi0gICAgIDx2YXJsaXN0ZW50cnkgaWQ9InJlY292ZXJ5LXRhcmdl dC10aW1lIiB4cmVmbGFiZWw9InJlY292ZXJ5X3RhcmdldF90aW1lIj4KLSAgICAgIDx0ZXJtPjx2 YXJuYW1lPnJlY292ZXJ5X3RhcmdldF90aW1lPC92YXJuYW1lPiAoPHR5cGU+dGltZXN0YW1wPC90 eXBlPikKLSAgICAgIDxpbmRleHRlcm0+Ci0gICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnJlY292 ZXJ5X3RhcmdldF90aW1lPC92YXJuYW1lPiByZWNvdmVyeSBwYXJhbWV0ZXI8L3ByaW1hcnk+Ci0g ICAgICA8L2luZGV4dGVybT4KLSAgICAgIDwvdGVybT4KLSAgICAgIDxsaXN0aXRlbT4KICAgICAg ICA8cGFyYT4KLSAgICAgICAgVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0aW1lIHN0YW1w IHVwIHRvIHdoaWNoIHJlY292ZXJ5Ci0gICAgICAgIHdpbGwgcHJvY2VlZC4KKyAgICAgICAgVGFy Z2V0LXR5cGUgPGxpdGVyYWw+bmFtZTwvbGl0ZXJhbD4gc3BlY2lmaWVzIHRoYXQgcmVjb3Zlcnkg d2lsbAorICAgICAgICBwcm9jZWVkIHRvIHRoZSBwb2ludCBzcGVjaWZpZWQgYnkgPHZhcm5hbWU+ cmVjb3ZlcnlfdGFyZ2V0X3ZhbHVlPC92YXJuYW1lPgorICAgICAgICB3aGVuIGludGVycHJldGVk IGFzIHRoZSBuYW1lIG9mIGEgcmVzdG9yZSBwb2ludCBjcmVhdGVkIHdpdGgKKyAgICAgICAgPGZ1 bmN0aW9uPnBnX2NyZWF0ZV9yZXN0b3JlX3BvaW50KCk8L2Z1bmN0aW9uPi4KKyAgICAgICAgIFRo ZSBwcmVjaXNlIHN0b3BwaW5nIHBvaW50IGlzIGFsc28gaW5mbHVlbmNlZCBieQorICAgICAgICA8 eHJlZiBsaW5rZW5kPSJyZWNvdmVyeS10YXJnZXQtaW5jbHVzaXZlIi8+IGFuZAorICAgICAgICA8 eHJlZiBsaW5rZW5kPSJyZWNvdmVyeS10YXJnZXQtdGltZWxpbmUiLz4uCisgICAgICAgPC9wYXJh PgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRhcmdldC10eXBlIDxsaXRlcmFsPnRpbWVzdGFt cDwvbGl0ZXJhbD4gc3BlY2lmaWVzIHRoYXQgcmVjb3Zlcnkgd2lsbAorICAgICAgICBwcm9jZWVk IHRvIHRoZSBwb2ludCBzcGVjaWZpZWQgYnkgPHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X3ZhbHVl PC92YXJuYW1lPgorICAgICAgICB3aGVuIGludGVycHJldGVkIGFzIHRoZSB0aW1lc3RhbXAgb2Yg YSB0cmFuc2FjdGlvbiBjb21taXQgb3IgYWJvcnQuCiAgICAgICAgIFRoZSBwcmVjaXNlIHN0b3Bw aW5nIHBvaW50IGlzIGFsc28gaW5mbHVlbmNlZCBieQotICAgICAgICA8eHJlZiBsaW5rZW5kPSJy ZWNvdmVyeS10YXJnZXQtaW5jbHVzaXZlIi8+LgorICAgICAgICA8eHJlZiBsaW5rZW5kPSJyZWNv dmVyeS10YXJnZXQtaW5jbHVzaXZlIi8+IGFuZAorICAgICAgICA8eHJlZiBsaW5rZW5kPSJyZWNv dmVyeS10YXJnZXQtdGltZWxpbmUiLz4uCiAgICAgICAgPC9wYXJhPgotICAgICAgPC9saXN0aXRl bT4KLSAgICAgPC92YXJsaXN0ZW50cnk+CiAKLSAgICAgPHZhcmxpc3RlbnRyeSBpZD0icmVjb3Zl cnktdGFyZ2V0LXhpZCIgeHJlZmxhYmVsPSJyZWNvdmVyeV90YXJnZXRfeGlkIj4KLSAgICAgIDx0 ZXJtPjx2YXJuYW1lPnJlY292ZXJ5X3RhcmdldF94aWQ8L3Zhcm5hbWU+ICg8dHlwZT5zdHJpbmc8 L3R5cGU+KQotICAgICAgPGluZGV4dGVybT4KLSAgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+cmVj b3ZlcnlfdGFyZ2V0X3hpZDwvdmFybmFtZT4gcmVjb3ZlcnkgcGFyYW1ldGVyPC9wcmltYXJ5Pgot ICAgICAgPC9pbmRleHRlcm0+Ci0gICAgICA8L3Rlcm0+Ci0gICAgICA8bGlzdGl0ZW0+CiAgICAg ICAgPHBhcmE+Ci0gICAgICAgIFRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdHJhbnNhY3Rp b24gSUQgdXAgdG8gd2hpY2ggcmVjb3ZlcnkKLSAgICAgICAgd2lsbCBwcm9jZWVkLiBLZWVwIGlu IG1pbmQKKyAgICAgICAgVGFyZ2V0LXR5cGUgPGxpdGVyYWw+eGlkPC9saXRlcmFsPiBzcGVjaWZp ZXMgdGhhdCByZWNvdmVyeSB3aWxsCisgICAgICAgIHByb2NlZWQgdG8gdGhlIHBvaW50IHNwZWNp ZmllZCBieSA8dmFybmFtZT5yZWNvdmVyeV90YXJnZXRfdmFsdWU8L3Zhcm5hbWU+CisgICAgICAg IHdoZW4gaW50ZXJwcmV0ZWQgYXMgdGhlIHRyYW5zYWN0aW9uIElEIG9mIGEgdHJhbnNhY3Rpb24g Y29tbWl0IG9yIGFib3J0LgorICAgICAgICBLZWVwIGluIG1pbmQKICAgICAgICAgdGhhdCB3aGls ZSB0cmFuc2FjdGlvbiBJRHMgYXJlIGFzc2lnbmVkIHNlcXVlbnRpYWxseSBhdCB0cmFuc2FjdGlv bgogICAgICAgICBzdGFydCwgdHJhbnNhY3Rpb25zIGNhbiBjb21wbGV0ZSBpbiBhIGRpZmZlcmVu dCBudW1lcmljIG9yZGVyLgogICAgICAgICBUaGUgdHJhbnNhY3Rpb25zIHRoYXQgd2lsbCBiZSBy ZWNvdmVyZWQgYXJlIHRob3NlIHRoYXQgY29tbWl0dGVkCiAgICAgICAgIGJlZm9yZSAoYW5kIG9w dGlvbmFsbHkgaW5jbHVkaW5nKSB0aGUgc3BlY2lmaWVkIG9uZS4KICAgICAgICAgVGhlIHByZWNp c2Ugc3RvcHBpbmcgcG9pbnQgaXMgYWxzbyBpbmZsdWVuY2VkIGJ5Ci0gICAgICAgIDx4cmVmIGxp bmtlbmQ9InJlY292ZXJ5LXRhcmdldC1pbmNsdXNpdmUiLz4uCisgICAgICAgIDx4cmVmIGxpbmtl bmQ9InJlY292ZXJ5LXRhcmdldC1pbmNsdXNpdmUiLz4gYW5kCisgICAgICAgIDx4cmVmIGxpbmtl bmQ9InJlY292ZXJ5LXRhcmdldC10aW1lbGluZSIvPi4KKyAgICAgICA8L3BhcmE+CisKKyAgICAg ICA8cGFyYT4KKyAgICAgICAgVGFyZ2V0LXR5cGUgPGxpdGVyYWw+bHNuPC9saXRlcmFsPiBzcGVj aWZpZXMgdGhhdCByZWNvdmVyeSB3aWxsCisgICAgICAgIHByb2NlZWQgdG8gdGhlIHBvaW50IHNw ZWNpZmllZCBieSA8dmFybmFtZT5yZWNvdmVyeV90YXJnZXRfdmFsdWU8L3Zhcm5hbWU+CisgICAg ICAgIHdoZW4gaW50ZXJwcmV0ZWQgYXMgdGhlIExTTiBvZiBhbnkgV0FMIHJlY29yZCwgcGFyc2Vk IHVzaW5nIHRoZSBzeXN0ZW0KKyAgICAgICAgZGF0YSB0eXBlIDxsaW5rIGxpbmtlbmQ9ImRhdGF0 eXBlLXBnLWxzbiI+PHR5cGU+cGdfbHNuPC90eXBlPjwvbGluaz4uCisgICAgICAgIFRoZSBwcmVj aXNlIHN0b3BwaW5nIHBvaW50IGlzIGFsc28gaW5mbHVlbmNlZCBieQorICAgICAgICA8eHJlZiBs aW5rZW5kPSJyZWNvdmVyeS10YXJnZXQtaW5jbHVzaXZlIi8+IGFuZAorICAgICAgICA8eHJlZiBs aW5rZW5kPSJyZWNvdmVyeS10YXJnZXQtdGltZWxpbmUiLz4uCiAgICAgICAgPC9wYXJhPgogICAg ICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKLSAgICAgPHZhcmxpc3RlbnRy eSBpZD0icmVjb3ZlcnktdGFyZ2V0LWxzbiIgeHJlZmxhYmVsPSJyZWNvdmVyeV90YXJnZXRfbHNu Ij4KLSAgICAgIDx0ZXJtPjx2YXJuYW1lPnJlY292ZXJ5X3RhcmdldF9sc248L3Zhcm5hbWU+ICg8 dHlwZT5wZ19sc248L3R5cGU+KQorICAgICA8dmFybGlzdGVudHJ5IGlkPSJyZWNvdmVyeS10YXJn ZXQtdmFsdWUiCisgICAgICAgICAgICAgICAgICAgeHJlZmxhYmVsPSJyZWNvdmVyeV90YXJnZXRf dmFsdWUiPgorICAgICAgPHRlcm0+PHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X3ZhbHVlPC92YXJu YW1lPiAoPHR5cGU+c3RyaW5nPC90eXBlPikKICAgICAgIDxpbmRleHRlcm0+Ci0gICAgICAgIDxw cmltYXJ5Pjx2YXJuYW1lPnJlY292ZXJ5X3RhcmdldF9sc248L3Zhcm5hbWU+IHJlY292ZXJ5IHBh cmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+cmVjb3ZlcnlfdGFy Z2V0X3ZhbHVlPC92YXJuYW1lPiB0YXJnZXRlZCByZWNvdmVyeSBzZWFyY2ggcGFyYW1ldGVyPC9w cmltYXJ5PgogICAgICAgPC9pbmRleHRlcm0+CiAgICAgICA8L3Rlcm0+CiAgICAgICA8bGlzdGl0 ZW0+CiAgICAgICAgPHBhcmE+Ci0gICAgICAgIFRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUg TFNOIG9mIHRoZSB3cml0ZS1haGVhZCBsb2cgbG9jYXRpb24gdXAKLSAgICAgICAgdG8gd2hpY2gg cmVjb3Zlcnkgd2lsbCBwcm9jZWVkLiBUaGUgcHJlY2lzZSBzdG9wcGluZyBwb2ludCBpcyBhbHNv Ci0gICAgICAgIGluZmx1ZW5jZWQgYnkgPHhyZWYgbGlua2VuZD0icmVjb3ZlcnktdGFyZ2V0LWlu Y2x1c2l2ZSIvPi4gVGhpcwotICAgICAgICBwYXJhbWV0ZXIgaXMgcGFyc2VkIHVzaW5nIHRoZSBz eXN0ZW0gZGF0YSB0eXBlCi0gICAgICAgIDxsaW5rIGxpbmtlbmQ9ImRhdGF0eXBlLXBnLWxzbiI+ PHR5cGU+cGdfbHNuPC90eXBlPjwvbGluaz4uCisgICAgICAgIFNwZWNpZmllcyB0aGUgc3RvcHBp bmcgcG9pbnQgZm9yIHRhcmdldGVkIHJlY292ZXJ5LiBUaGUgc3RyaW5nIHZhbHVlCisgICAgICAg IGlzIGludGVycHJldGVkIGFjY29yZGluZyB0byBzdHJpY3QgcnVsZXMgYWNjb3JkaW5nIHRvIHRo ZSB2YWx1ZSBvZgorICAgICAgICA8dmFybmFtZT5yZWNvdmVyeV90YXJnZXRfdHlwZTwvdmFybmFt ZT4uIEFuIGVtcHR5IHN0cmluZyBtYXkgYmUgYW4KKyAgICAgICAgaW52YWxpZCB2YWx1ZSBpbiBz b21lIGNhc2VzLgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFy bGlzdGVudHJ5PgpAQCAtMjcwLDkgKzI5Myw5IEBAIHJlc3RvcmVfY29tbWFuZCA9ICdjb3B5ICJD Olxcc2VydmVyXFxhcmNoaXZlZGlyXFwlZiIgIiVwIicgICMgV2luZG93cwogICAgICAgICBTcGVj aWZpZXMgd2hldGhlciB0byBzdG9wIGp1c3QgYWZ0ZXIgdGhlIHNwZWNpZmllZCByZWNvdmVyeSB0 YXJnZXQKICAgICAgICAgKDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+KSwgb3IganVzdCBiZWZvcmUg dGhlIHJlY292ZXJ5IHRhcmdldAogICAgICAgICAoPGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+KS4K LSAgICAgICAgQXBwbGllcyB3aGVuIDx4cmVmIGxpbmtlbmQ9InJlY292ZXJ5LXRhcmdldC1sc24i Lz4sCi0gICAgICAgIDx4cmVmIGxpbmtlbmQ9InJlY292ZXJ5LXRhcmdldC10aW1lIi8+LCBvcgot ICAgICAgICA8eHJlZiBsaW5rZW5kPSJyZWNvdmVyeS10YXJnZXQteGlkIi8+IGlzIHNwZWNpZmll ZC4KKyAgICAgICAgQXBwbGllcyB3aGVuIDx4cmVmIGxpbmtlbmQ9InJlY292ZXJ5LXRhcmdldC10 eXBlIi8+IGlzIHNwZWNpZmllZAorICAgICAgICB0byA8bGl0ZXJhbD5sc248L2xpdGVyYWw+LCA8 bGl0ZXJhbD50aW1lc3RhbXA8L2xpdGVyYWw+IG9yCisgICAgICAgIDxsaXRlcmFsPnhpZDwvbGl0 ZXJhbD4uCiAgICAgICAgIFRoaXMgc2V0dGluZyBjb250cm9scyB3aGV0aGVyIHRyYW5zYWN0aW9u cwogICAgICAgICBoYXZpbmcgZXhhY3RseSB0aGUgdGFyZ2V0IFdBTCBsb2NhdGlvbiAoTFNOKSwg Y29tbWl0IHRpbWUsIG9yIHRyYW5zYWN0aW9uIElELCByZXNwZWN0aXZlbHksIHdpbGwKICAgICAg ICAgYmUgaW5jbHVkZWQgaW4gdGhlIHJlY292ZXJ5LiAgRGVmYXVsdCBpcyA8bGl0ZXJhbD50cnVl PC9saXRlcmFsPi4KQEAgLTMzNiwxMSArMzU5LDExIEBAIHJlc3RvcmVfY29tbWFuZCA9ICdjb3B5 ICJDOlxcc2VydmVyXFxhcmNoaXZlZGlyXFwlZiIgIiVwIicgICMgV2luZG93cwogICAgICAgICBz aW5jZSB0aGUgbGFzdCBjaGVja3BvaW50IG5leHQgdGltZSBpdCBpcyBzdGFydGVkKS4KICAgICAg ICA8L3BhcmE+CiAgICAgICAgPHBhcmE+Ci0gICAgICAgIE5vdGUgdGhhdCBiZWNhdXNlIDxmaWxl bmFtZT5yZWNvdmVyeS5jb25mPC9maWxlbmFtZT4gd2lsbCBub3QgYmUgcmVuYW1lZCB3aGVuCi0g ICAgICAgIDx2YXJuYW1lPnJlY292ZXJ5X3RhcmdldF9hY3Rpb248L3Zhcm5hbWU+IGlzIHNldCB0 byA8bGl0ZXJhbD5zaHV0ZG93bjwvbGl0ZXJhbD4sCisgICAgICAgIE5vdGUgdGhhdCBiZWNhdXNl IDxmaWxlbmFtZT5yZWNvdmVyeS5zaWduYWw8L2ZpbGVuYW1lPiB3aWxsIG5vdCBiZQorICAgICAg ICByZW1vdmVkIHdoZW4gPHZhcm5hbWU+cmVjb3ZlcnlfdGFyZ2V0X2FjdGlvbjwvdmFybmFtZT4g aXMgc2V0IHRvIDxsaXRlcmFsPnNodXRkb3duPC9saXRlcmFsPiwKICAgICAgICAgYW55IHN1YnNl cXVlbnQgc3RhcnQgd2lsbCBlbmQgd2l0aCBpbW1lZGlhdGUgc2h1dGRvd24gdW5sZXNzIHRoZQot ICAgICAgICBjb25maWd1cmF0aW9uIGlzIGNoYW5nZWQgb3IgdGhlIDxmaWxlbmFtZT5yZWNvdmVy eS5jb25mPC9maWxlbmFtZT4gZmlsZSBpcwotICAgICAgICByZW1vdmVkIG1hbnVhbGx5LgorICAg ICAgICBjb25maWd1cmF0aW9uIGlzIGNoYW5nZWQgb3IgdGhlIDxmaWxlbmFtZT5yZWNvdmVyeS5z aWduYWw8L2ZpbGVuYW1lPgorICAgICAgICBmaWxlIGlzIHJlbW92ZWQgbWFudWFsbHkuCiAgICAg ICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICBUaGlzIHNldHRpbmcgaGFzIG5vIGVm ZmVjdCBpZiBubyByZWNvdmVyeSB0YXJnZXQgaXMgc2V0LgpAQCAtMzU4LDI0ICszODEsOSBAQCBy ZXN0b3JlX2NvbW1hbmQgPSAnY29weSAiQzpcXHNlcnZlclxcYXJjaGl2ZWRpclxcJWYiICIlcCIn ICAjIFdpbmRvd3MKICAgICA8dGl0bGU+U3RhbmRieSBTZXJ2ZXIgU2V0dGluZ3M8L3RpdGxlPgog ICAgICA8dmFyaWFibGVsaXN0PgogCi0gICAgICAgPHZhcmxpc3RlbnRyeSBpZD0ic3RhbmRieS1t b2RlIiB4cmVmbGFiZWw9InN0YW5kYnlfbW9kZSI+Ci0gICAgICAgIDx0ZXJtPjx2YXJuYW1lPnN0 YW5kYnlfbW9kZTwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQotICAgICAgICA8aW5k ZXh0ZXJtPgotICAgICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnN0YW5kYnlfbW9kZTwvdmFybmFt ZT4gcmVjb3ZlcnkgcGFyYW1ldGVyPC9wcmltYXJ5PgotICAgICAgICA8L2luZGV4dGVybT4KLSAg ICAgICAgPC90ZXJtPgotICAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgICA8cGFyYT4KLSAgICAg ICAgICBTcGVjaWZpZXMgd2hldGhlciB0byBzdGFydCB0aGUgPHByb2R1Y3RuYW1lPlBvc3RncmVT UUw8L3Byb2R1Y3RuYW1lPiBzZXJ2ZXIgYXMKLSAgICAgICAgICBhIHN0YW5kYnkuIElmIHRoaXMg cGFyYW1ldGVyIGlzIDxsaXRlcmFsPm9uPC9saXRlcmFsPiwgdGhlIHNlcnZlciB3aWxsCi0gICAg ICAgICAgbm90IHN0b3AgcmVjb3Zlcnkgd2hlbiB0aGUgZW5kIG9mIGFyY2hpdmVkIFdBTCBpcyBy ZWFjaGVkLCBidXQKLSAgICAgICAgICB3aWxsIGtlZXAgdHJ5aW5nIHRvIGNvbnRpbnVlIHJlY292 ZXJ5IGJ5IGZldGNoaW5nIG5ldyBXQUwgc2VnbWVudHMKLSAgICAgICAgICB1c2luZyA8dmFybmFt ZT5yZXN0b3JlX2NvbW1hbmQ8L3Zhcm5hbWU+Ci0gICAgICAgICAgYW5kL29yIGJ5IGNvbm5lY3Rp bmcgdG8gdGhlIHByaW1hcnkgc2VydmVyIGFzIHNwZWNpZmllZCBieSB0aGUKLSAgICAgICAgICA8 dmFybmFtZT5wcmltYXJ5X2Nvbm5pbmZvPC92YXJuYW1lPiBzZXR0aW5nLgotICAgICAgICAgPC9w YXJhPgotICAgICAgICA8L2xpc3RpdGVtPgotICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAg IDxwYXJhPgorICAgICAgICBOZXcgdmFsdWVzIGZvciB0aG9zZSBwYXJhbWV0ZXJzIGFyZSBjb25z aWRlcmVkIG9ubHkgYXQgcmVzdGFydCBvZiB0aGUgc2VydmVyCisgICAgICAgPC9wYXJhPgogICAg ICAgIDx2YXJsaXN0ZW50cnkgaWQ9InByaW1hcnktY29ubmluZm8iIHhyZWZsYWJlbD0icHJpbWFy eV9jb25uaW5mbyI+CiAgICAgICAgIDx0ZXJtPjx2YXJuYW1lPnByaW1hcnlfY29ubmluZm88L3Zh cm5hbWU+ICg8dHlwZT5zdHJpbmc8L3R5cGU+KQogICAgICAgICA8aW5kZXh0ZXJtPgpAQCAtMzg1 LDcgKzM5Myw3IEBAIHJlc3RvcmVfY29tbWFuZCA9ICdjb3B5ICJDOlxcc2VydmVyXFxhcmNoaXZl ZGlyXFwlZiIgIiVwIicgICMgV2luZG93cwogICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICA8 cGFyYT4KICAgICAgICAgICBTcGVjaWZpZXMgYSBjb25uZWN0aW9uIHN0cmluZyB0byBiZSB1c2Vk IGZvciB0aGUgc3RhbmRieSBzZXJ2ZXIKLSAgICAgICAgICB0byBjb25uZWN0IHdpdGggdGhlIHBy aW1hcnkuIFRoaXMgc3RyaW5nIGlzIGluIHRoZSBmb3JtYXQKKyAgICAgICAgICB0byBjb25uZWN0 IHdpdGggYSBzZW5kaW5nIHNlcnZlci4gVGhpcyBzdHJpbmcgaXMgaW4gdGhlIGZvcm1hdAogICAg ICAgICAgIGRlc2NyaWJlZCBpbiA8eHJlZiBsaW5rZW5kPSJsaWJwcS1jb25uc3RyaW5nIi8+LiBJ ZiBhbnkgb3B0aW9uIGlzCiAgICAgICAgICAgdW5zcGVjaWZpZWQgaW4gdGhpcyBzdHJpbmcsIHRo ZW4gdGhlIGNvcnJlc3BvbmRpbmcgZW52aXJvbm1lbnQKICAgICAgICAgICB2YXJpYWJsZSAoc2Vl IDx4cmVmIGxpbmtlbmQ9ImxpYnBxLWVudmFycyIvPikgaXMgY2hlY2tlZC4gSWYgdGhlCkBAIC0z OTQsMTIgKzQwMiwxMiBAQCByZXN0b3JlX2NvbW1hbmQgPSAnY29weSAiQzpcXHNlcnZlclxcYXJj aGl2ZWRpclxcJWYiICIlcCInICAjIFdpbmRvd3MKICAgICAgICAgIDwvcGFyYT4KICAgICAgICAg IDxwYXJhPgogICAgICAgICAgIFRoZSBjb25uZWN0aW9uIHN0cmluZyBzaG91bGQgc3BlY2lmeSB0 aGUgaG9zdCBuYW1lIChvciBhZGRyZXNzKQotICAgICAgICAgIG9mIHRoZSBwcmltYXJ5IHNlcnZl ciwgYXMgd2VsbCBhcyB0aGUgcG9ydCBudW1iZXIgaWYgaXQgaXMgbm90CisgICAgICAgICAgb2Yg dGhlIHNlbmRpbmcgc2VydmVyLCBhcyB3ZWxsIGFzIHRoZSBwb3J0IG51bWJlciBpZiBpdCBpcyBu b3QKICAgICAgICAgICB0aGUgc2FtZSBhcyB0aGUgc3RhbmRieSBzZXJ2ZXIncyBkZWZhdWx0Lgog ICAgICAgICAgIEFsc28gc3BlY2lmeSBhIHVzZXIgbmFtZSBjb3JyZXNwb25kaW5nIHRvIGEgc3Vp dGFibHktcHJpdmlsZWdlZCByb2xlCi0gICAgICAgICAgb24gdGhlIHByaW1hcnkgKHNlZQorICAg ICAgICAgIG9uIHRoZSBzZW5kaW5nIHNlcnZlciAoc2VlCiAgICAgICAgICAgPHhyZWYgbGlua2Vu ZD0ic3RyZWFtaW5nLXJlcGxpY2F0aW9uLWF1dGhlbnRpY2F0aW9uIi8+KS4KLSAgICAgICAgICBB IHBhc3N3b3JkIG5lZWRzIHRvIGJlIHByb3ZpZGVkIHRvbywgaWYgdGhlIHByaW1hcnkgZGVtYW5k cyBwYXNzd29yZAorICAgICAgICAgIEEgcGFzc3dvcmQgbmVlZHMgdG8gYmUgcHJvdmlkZWQgdG9v LCBpZiB0aGUgc2VuZGVyIGRlbWFuZHMgcGFzc3dvcmQKICAgICAgICAgICBhdXRoZW50aWNhdGlv bi4gIEl0IGNhbiBiZSBwcm92aWRlZCBpbiB0aGUKICAgICAgICAgICA8dmFybmFtZT5wcmltYXJ5 X2Nvbm5pbmZvPC92YXJuYW1lPiBzdHJpbmcsIG9yIGluIGEgc2VwYXJhdGUKICAgICAgICAgICA8 ZmlsZW5hbWU+fi8ucGdwYXNzPC9maWxlbmFtZT4gZmlsZSBvbiB0aGUgc3RhbmRieSBzZXJ2ZXIg KHVzZQpAQCAtNDEyLDYgKzQyMCw3IEBAIHJlc3RvcmVfY29tbWFuZCA9ICdjb3B5ICJDOlxcc2Vy dmVyXFxhcmNoaXZlZGlyXFwlZiIgIiVwIicgICMgV2luZG93cwogICAgICAgICAgPC9wYXJhPgog ICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgICAgPHZh cmxpc3RlbnRyeSBpZD0icHJpbWFyeS1zbG90LW5hbWUiIHhyZWZsYWJlbD0icHJpbWFyeV9zbG90 X25hbWUiPgogICAgICAgICA8dGVybT48dmFybmFtZT5wcmltYXJ5X3Nsb3RfbmFtZTwvdmFybmFt ZT4gKDx0eXBlPnN0cmluZzwvdHlwZT4pCiAgICAgICAgIDxpbmRleHRlcm0+CkBAIC00MjEsNyAr NDMwLDcgQEAgcmVzdG9yZV9jb21tYW5kID0gJ2NvcHkgIkM6XFxzZXJ2ZXJcXGFyY2hpdmVkaXJc XCVmIiAiJXAiJyAgIyBXaW5kb3dzCiAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgIDxwYXJh PgogICAgICAgICAgIE9wdGlvbmFsbHkgc3BlY2lmaWVzIGFuIGV4aXN0aW5nIHJlcGxpY2F0aW9u IHNsb3QgdG8gYmUgdXNlZCB3aGVuCi0gICAgICAgICAgY29ubmVjdGluZyB0byB0aGUgcHJpbWFy eSB2aWEgc3RyZWFtaW5nIHJlcGxpY2F0aW9uIHRvIGNvbnRyb2wKKyAgICAgICAgICBjb25uZWN0 aW5nIHRvIHRoZSBzZW5kaW5nIHNlcnZlciB2aWEgc3RyZWFtaW5nIHJlcGxpY2F0aW9uIHRvIGNv bnRyb2wKICAgICAgICAgICByZXNvdXJjZSByZW1vdmFsIG9uIHRoZSB1cHN0cmVhbSBub2RlCiAg ICAgICAgICAgKHNlZSA8eHJlZiBsaW5rZW5kPSJzdHJlYW1pbmctcmVwbGljYXRpb24tc2xvdHMi Lz4pLgogICAgICAgICAgIFRoaXMgc2V0dGluZyBoYXMgbm8gZWZmZWN0IGlmIDx2YXJuYW1lPnBy aW1hcnlfY29ubmluZm88L3Zhcm5hbWU+IGlzIG5vdApAQCAtNDI5LDEwICs0MzgsMTEgQEAgcmVz dG9yZV9jb21tYW5kID0gJ2NvcHkgIkM6XFxzZXJ2ZXJcXGFyY2hpdmVkaXJcXCVmIiAiJXAiJyAg IyBXaW5kb3dzCiAgICAgICAgICA8L3BhcmE+CiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAg PC92YXJsaXN0ZW50cnk+Ci0gICAgICAgPHZhcmxpc3RlbnRyeSBpZD0idHJpZ2dlci1maWxlIiB4 cmVmbGFiZWw9InRyaWdnZXJfZmlsZSI+Ci0gICAgICAgIDx0ZXJtPjx2YXJuYW1lPnRyaWdnZXJf ZmlsZTwvdmFybmFtZT4gKDx0eXBlPnN0cmluZzwvdHlwZT4pCisKKyAgICAgICA8dmFybGlzdGVu dHJ5IGlkPSJwcm9tb3RlLXNpZ25hbC1maWxlIiB4cmVmbGFiZWw9InByb21vdGVfc2lnbmFsX2Zp bGUiPgorICAgICAgICA8dGVybT48dmFybmFtZT5wcm9tb3RlX3NpZ25hbF9maWxlPC92YXJuYW1l PiAoPHR5cGU+c3RyaW5nPC90eXBlPikKICAgICAgICAgPGluZGV4dGVybT4KLSAgICAgICAgICA8 cHJpbWFyeT48dmFybmFtZT50cmlnZ2VyX2ZpbGU8L3Zhcm5hbWU+IHJlY292ZXJ5IHBhcmFtZXRl cjwvcHJpbWFyeT4KKyAgICAgICAgICA8cHJpbWFyeT48dmFybmFtZT5wcm9tb3RlX3NpZ25hbF9m aWxlPC92YXJuYW1lPiByZWNvdmVyeSBwYXJhbWV0ZXI8L3ByaW1hcnk+CiAgICAgICAgIDwvaW5k ZXh0ZXJtPgogICAgICAgICA8L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRlbT4KQEAgLTQ0MCw3ICs0 NTAsNiBAQCByZXN0b3JlX2NvbW1hbmQgPSAnY29weSAiQzpcXHNlcnZlclxcYXJjaGl2ZWRpclxc JWYiICIlcCInICAjIFdpbmRvd3MKICAgICAgICAgICBTcGVjaWZpZXMgYSB0cmlnZ2VyIGZpbGUg d2hvc2UgcHJlc2VuY2UgZW5kcyByZWNvdmVyeSBpbiB0aGUKICAgICAgICAgICBzdGFuZGJ5LiAg RXZlbiBpZiB0aGlzIHZhbHVlIGlzIG5vdCBzZXQsIHlvdSBjYW4gc3RpbGwgcHJvbW90ZQogICAg ICAgICAgIHRoZSBzdGFuZGJ5IHVzaW5nIDxjb21tYW5kPnBnX2N0bCBwcm9tb3RlPC9jb21tYW5k Pi4KLSAgICAgICAgICBUaGlzIHNldHRpbmcgaGFzIG5vIGVmZmVjdCBpZiA8dmFybmFtZT5zdGFu ZGJ5X21vZGU8L3Zhcm5hbWU+IGlzIDxsaXRlcmFsPm9mZjwvbGl0ZXJhbD4uCiAgICAgICAgICA8 L3BhcmE+CiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CkBAIC00 NTQsNyArNDYzLDcgQEAgcmVzdG9yZV9jb21tYW5kID0gJ2NvcHkgIkM6XFxzZXJ2ZXJcXGFyY2hp dmVkaXJcXCVmIiAiJXAiJyAgIyBXaW5kb3dzCiAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgPHBh cmE+CiAgICAgICAgIEJ5IGRlZmF1bHQsIGEgc3RhbmRieSBzZXJ2ZXIgcmVzdG9yZXMgV0FMIHJl Y29yZHMgZnJvbSB0aGUKLSAgICAgICAgcHJpbWFyeSBhcyBzb29uIGFzIHBvc3NpYmxlLiBJdCBt YXkgYmUgdXNlZnVsIHRvIGhhdmUgYSB0aW1lLWRlbGF5ZWQKKyAgICAgICAgc2VuZGluZyBzZXJ2 ZXIgYXMgc29vbiBhcyBwb3NzaWJsZS4gSXQgbWF5IGJlIHVzZWZ1bCB0byBoYXZlIGEgdGltZS1k ZWxheWVkCiAgICAgICAgIGNvcHkgb2YgdGhlIGRhdGEsIG9mZmVyaW5nIG9wcG9ydHVuaXRpZXMg dG8gY29ycmVjdCBkYXRhIGxvc3MgZXJyb3JzLgogICAgICAgICBUaGlzIHBhcmFtZXRlciBhbGxv d3MgeW91IHRvIGRlbGF5IHJlY292ZXJ5IGJ5IGEgZml4ZWQgcGVyaW9kIG9mIHRpbWUsCiAgICAg ICAgIG1lYXN1cmVkIGluIG1pbGxpc2Vjb25kcyBpZiBubyB1bml0IGlzIHNwZWNpZmllZC4gIEZv ciBleGFtcGxlLCBpZgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19iYXNlYmFja3Vw LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2Jhc2ViYWNrdXAuc2dtbAppbmRleCAwNWNhYjg2 Li5lYjQ0NDk2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2Jhc2ViYWNrdXAuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2Jhc2ViYWNrdXAuc2dtbApAQCAtMjE0LDEwICsy MTQsMTEgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICAgICA8bGlzdGl0ZW0+CiAKICAg ICAgICA8cGFyYT4KLSAgICAgICAgV3JpdGUgYSBtaW5pbWFsIDxmaWxlbmFtZT5yZWNvdmVyeS5j b25mPC9maWxlbmFtZT4gaW4gdGhlIG91dHB1dAorICAgICAgICBDcmVhdGUgPGZpbGVuYW1lPnN0 YW5kYnkuc2lnbmFsPC9maWxlbmFtZT4gYW5kIGFwcGVuZCBjb25uZWN0aW9uIHNldHRpbmdzCisg ICAgICAgIHRvIDxmaWxlbmFtZT5wb3N0Z3Jlc3FsLmF1dG8uY29uZjwvZmlsZW5hbWU+IGluIHRo ZSBvdXRwdXQKICAgICAgICAgZGlyZWN0b3J5IChvciBpbnRvIHRoZSBiYXNlIGFyY2hpdmUgZmls ZSB3aGVuIHVzaW5nIHRhciBmb3JtYXQpIHRvCiAgICAgICAgIGVhc2Ugc2V0dGluZyB1cCBhIHN0 YW5kYnkgc2VydmVyLgotICAgICAgICBUaGUgPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8L2ZpbGVu YW1lPiBmaWxlIHdpbGwgcmVjb3JkIHRoZSBjb25uZWN0aW9uCisgICAgICAgIFRoZSA8ZmlsZW5h bWU+cG9zdGdyZXNxbC5hdXRvLmNvbmY8L2ZpbGVuYW1lPiBmaWxlIHdpbGwgcmVjb3JkIHRoZSBj b25uZWN0aW9uCiAgICAgICAgIHNldHRpbmdzIGFuZCwgaWYgc3BlY2lmaWVkLCB0aGUgcmVwbGlj YXRpb24gc2xvdAogICAgICAgICB0aGF0IDxhcHBsaWNhdGlvbj5wZ19iYXNlYmFja3VwPC9hcHBs aWNhdGlvbj4gaXMgdXNpbmcsIHNvIHRoYXQgdGhlCiAgICAgICAgIHN0cmVhbWluZyByZXBsaWNh dGlvbiB3aWxsIHVzZSB0aGUgc2FtZSBzZXR0aW5ncyBsYXRlciBvbi4KQEAgLTQ3MCw3ICs0NzEs NyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgICAgcmVwbGljYXRpb24gc2xvdC4g IElmIHRoZSBiYXNlIGJhY2t1cCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGFzIGEKICAgICAgICAg c3RyZWFtaW5nIHJlcGxpY2F0aW9uIHN0YW5kYnkgdXNpbmcgcmVwbGljYXRpb24gc2xvdHMsIGl0 IHNob3VsZCB0aGVuCiAgICAgICAgIHVzZSB0aGUgc2FtZSByZXBsaWNhdGlvbiBzbG90IG5hbWUK LSAgICAgICAgaW4gPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8L2ZpbGVuYW1lPi4gIFRoYXQgd2F5 LCBpdCBpcyBlbnN1cmVkIHRoYXQKKyAgICAgICAgaW4gPHhyZWYgbGlua2VuZD0icHJpbWFyeS1z bG90LW5hbWUiLz4uICBUaGF0IHdheSwgaXQgaXMgZW5zdXJlZCB0aGF0CiAgICAgICAgIHRoZSBz ZXJ2ZXIgZG9lcyBub3QgcmVtb3ZlIGFueSBuZWNlc3NhcnkgV0FMIGRhdGEgaW4gdGhlIHRpbWUg YmV0d2VlbgogICAgICAgICB0aGUgZW5kIG9mIHRoZSBiYXNlIGJhY2t1cCBhbmQgdGhlIHN0YXJ0 IG9mIHN0cmVhbWluZyByZXBsaWNhdGlvbi4KICAgICAgICA8L3BhcmE+CmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL3BnX3Jld2luZC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXdp bmQuc2dtbAppbmRleCA1MjBkODQzLi5kMTY0YjhhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv cmVmL3BnX3Jld2luZC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfcmV3aW5kLnNnbWwK QEAgLTY5LDcgKzY5LDggQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICB0YXJnZXQgY2x1 c3RlciByYW4gZm9yIGEgbG9uZyB0aW1lIGFmdGVyIHRoZSBkaXZlcmdlbmNlLCB0aGUgb2xkIFdB TAogICAgZmlsZXMgbWlnaHQgbm8gbG9uZ2VyIGJlIHByZXNlbnQuIEluIHRoYXQgY2FzZSwgdGhl eSBjYW4gYmUgbWFudWFsbHkKICAgIGNvcGllZCBmcm9tIHRoZSBXQUwgYXJjaGl2ZSB0byB0aGUg PGZpbGVuYW1lPnBnX3dhbDwvZmlsZW5hbWU+IGRpcmVjdG9yeSwgb3IKLSAgIGZldGNoZWQgb24g c3RhcnR1cCBieSBjb25maWd1cmluZyA8ZmlsZW5hbWU+cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+ LiAgVGhlIHVzZSBvZgorICAgZmV0Y2hlZCBvbiBzdGFydHVwIGJ5IGNvbmZpZ3VyaW5nIDx4cmVm IGxpbmtlbmQ9InByaW1hcnktY29ubmluZm8iLz4gb3IKKyAgIDx4cmVmIGxpbmtlbmQ9InJlc3Rv cmUtY29tbWFuZCIvPi4gIFRoZSB1c2Ugb2YKICAgIDxhcHBsaWNhdGlvbj5wZ19yZXdpbmQ8L2Fw cGxpY2F0aW9uPiBpcyBub3QgbGltaXRlZCB0byBmYWlsb3ZlciwgZS5nLiAgYSBzdGFuZGJ5CiAg ICBzZXJ2ZXIgY2FuIGJlIHByb21vdGVkLCBydW4gc29tZSB3cml0ZSB0cmFuc2FjdGlvbnMsIGFu ZCB0aGVuIHJld2luZGVkCiAgICB0byBiZWNvbWUgYSBzdGFuZGJ5IGFnYWluLgpAQCAtODMsOCAr ODQsOSBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgIDxhcHBsaWNhdGlvbj5wZ19yZXdp bmQ8L2FwcGxpY2F0aW9uPiB3YXMgcnVuLCBhbmQgdGhlcmVmb3JlIGNvdWxkIG5vdCBiZSBjb3Bp ZWQgYnkgdGhlCiAgICA8YXBwbGljYXRpb24+cGdfcmV3aW5kPC9hcHBsaWNhdGlvbj4gc2Vzc2lv biwgaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB3aGVuIHRoZQogICAgdGFyZ2V0IHNlcnZlciBp cyBzdGFydGVkLiBUaGlzIGNhbiBiZSBkb25lIGJ5IGNyZWF0aW5nIGEKLSAgIDxmaWxlbmFtZT5y ZWNvdmVyeS5jb25mPC9maWxlbmFtZT4gZmlsZSBpbiB0aGUgdGFyZ2V0IGRhdGEgZGlyZWN0b3J5 IHdpdGggYQotICAgc3VpdGFibGUgPHZhcm5hbWU+cmVzdG9yZV9jb21tYW5kPC92YXJuYW1lPi4K KyAgIDxmaWxlbmFtZT5yZWNvdmVyeS5zaWduYWw8L2ZpbGVuYW1lPiBmaWxlIGluIHRoZSB0YXJn ZXQgZGF0YSBkaXJlY3RvcnkKKyAgIGFuZCBjb25maWd1cmluZyBzdWl0YWJsZSA8eHJlZiBsaW5r ZW5kPSJyZXN0b3JlLWNvbW1hbmQiLz4KKyAgIGluIDxmaWxlbmFtZT5wb3N0Z3Jlc3FsLmNvbmY8 L2ZpbGVuYW1lPi4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9wZ2FyY2hpdmVjbGVhbnVwLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnYXJjaGl2 ZWNsZWFudXAuc2dtbAppbmRleCA0MTE3YTQzLi41MjY3NGRmIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvcmVmL3BnYXJjaGl2ZWNsZWFudXAuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3Bn YXJjaGl2ZWNsZWFudXAuc2dtbApAQCAtMzksNyArMzksNyBAQAogICA8cGFyYT4KICAgIFRvIGNv bmZpZ3VyZSBhIHN0YW5kYnkKICAgIHNlcnZlciB0byB1c2UgPGFwcGxpY2F0aW9uPnBnX2FyY2hp dmVjbGVhbnVwPC9hcHBsaWNhdGlvbj4sIHB1dCB0aGlzIGludG8gaXRzCi0gICA8ZmlsZW5hbWU+ cmVjb3ZlcnkuY29uZjwvZmlsZW5hbWU+IGNvbmZpZ3VyYXRpb24gZmlsZToKKyAgIDxmaWxlbmFt ZT5wb3N0Z3Jlc3FsLmNvbmY8L2ZpbGVuYW1lPiBjb25maWd1cmF0aW9uIGZpbGU6CiA8cHJvZ3Jh bWxpc3Rpbmc+CiBhcmNoaXZlX2NsZWFudXBfY29tbWFuZCA9ICdwZ19hcmNoaXZlY2xlYW51cCA8 cmVwbGFjZWFibGU+YXJjaGl2ZWxvY2F0aW9uPC9yZXBsYWNlYWJsZT4gJXInCiA8L3Byb2dyYW1s aXN0aW5nPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ3VwZ3JhZGUuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvcGd1cGdyYWRlLnNnbWwKaW5kZXggNmRhZmI0MC4uNjQzMWIwOCAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wZ3VwZ3JhZGUuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL3BndXBncmFkZS5zZ21sCkBAIC00NzgsNyArNDc4LDcgQEAgcGdfdXBncmFkZS5leGUK ICAgICAgIDxwYXJhPgogICAgICAgIFNhdmUgYW55IGNvbmZpZ3VyYXRpb24gZmlsZXMgZnJvbSB0 aGUgb2xkIHN0YW5kYnlzJyBjb25maWd1cmF0aW9uCiAgICAgICAgZGlyZWN0b3JpZXMgeW91IG5l ZWQgdG8ga2VlcCwgZS5nLiAgPGZpbGVuYW1lPnBvc3RncmVzcWwuY29uZjwvZmlsZW5hbWU+LAot ICAgICAgIDxsaXRlcmFsPnJlY292ZXJ5LmNvbmY8L2xpdGVyYWw+LCBiZWNhdXNlIHRoZXNlIHdp bGwgYmUgb3ZlcndyaXR0ZW4gb3IKKyAgICAgICA8bGl0ZXJhbD5wZ19oYmEuY29uZjwvbGl0ZXJh bD4sIGJlY2F1c2UgdGhlc2Ugd2lsbCBiZSBvdmVyd3JpdHRlbiBvcgogICAgICAgIHJlbW92ZWQg aW4gdGhlIG5leHQgc3RlcC4KICAgICAgIDwvcGFyYT4KICAgICAgPC9zdGVwPgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlbGVhc2UtOS4xLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVsZWFzZS05 LjEuc2dtbAppbmRleCBlNmNlODAwLi5jZjQxYzc1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv cmVsZWFzZS05LjEuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVsZWFzZS05LjEuc2dtbApAQCAt OTgxMSw3ICs5ODExLDcgQEAgQnJhbmNoOiBSRUw5XzBfU1RBQkxFIFs5ZDZhZjczNjddIDIwMTUt MDgtMTUgMTE6MDI6MzQgLTA0MDAKICAgICAgICA8cGFyYT4KICAgICAgICAgVGhlc2UgbmFtZWQg cmVzdG9yZSBwb2ludHMgY2FuIGJlIHNwZWNpZmllZCBhcyByZWNvdmVyeQogICAgICAgICB0YXJn ZXRzIHVzaW5nIHRoZSBuZXcgPGZpbGVuYW1lPnJlY292ZXJ5LmNvbmY8L2ZpbGVuYW1lPiBzZXR0 aW5nCi0gICAgICAgIDxsaW5rIGxpbmtlbmQ9InJlY292ZXJ5LXRhcmdldC1uYW1lIj48dmFybmFt ZT5yZWNvdmVyeV90YXJnZXRfbmFtZTwvdmFybmFtZT48L2xpbms+LgorICAgICAgICA8dmFybmFt ZT5yZWNvdmVyeV90YXJnZXRfbmFtZTwvdmFybmFtZT4uCiAgICAgICAgPC9wYXJhPgogICAgICAg PC9saXN0aXRlbT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlbGVhc2UtOS40LnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVsZWFzZS05LjQuc2dtbAppbmRleCA1YzkzZjAwLi43ZTIyY2UxIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVsZWFzZS05LjQuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVsZWFzZS05LjQuc2dtbApAQCAtMTA2MzksNyArMTA2MzksNyBAQCBCcmFuY2g6IFJFTDlf NF9TVEFCTEUgW2MyYjA2YWIxN10gMjAxNS0wMS0zMCAyMjo0NTo1OCAtMDUwMAogCiAgICAgICA8 bGlzdGl0ZW0+CiAgICAgICAgPHBhcmE+Ci0gICAgICAgIEFkZCA8eHJlZiBsaW5rZW5kPSJyZWNv dmVyeS10YXJnZXQiLz4KKyAgICAgICAgQWRkIDx2YXJuYW1lPnJlY292ZXJ5X3RhcmdldDwvdmFy bmFtZT4KICAgICAgICAgb3B0aW9uIDxvcHRpb24+aW1tZWRpYXRlPC9vcHRpb24+IHRvIHN0b3Ag PGxpbmsKICAgICAgICAgbGlua2VuZD0id2FsIj48YWNyb255bT5XQUw8L2Fjcm9ueW0+PC9saW5r PiByZWNvdmVyeSBhcyBzb29uIGFzIGEKICAgICAgICAgY29uc2lzdGVudCBzdGF0ZSBpcyByZWFj aGVkIChNYXVNYXUsIEhlaWtraSBMaW5uYWthbmdhcykKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWxlYXNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVsZWFzZS5zZ21sCmluZGV4IDExYTdmMTcu LjAxMzNkODQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWxlYXNlLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3JlbGVhc2Uuc2dtbApAQCAtNSw4ICs1LDcgQEAgVHlwaWNhbCBtYXJrdXA6CiAK ICY8PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlICYgZXNjYXBlcwogUG9zdGdyZVNR TCAgICAgICAgICAgICAgICAgICAgICA8cHJvZHVjdG5hbWU+Ci1wb3N0Z3Jlc3FsLmNvbmYsIHBn X2hiYS5jb25mLAotICAgICAgICByZWNvdmVyeS5jb25mICAgICAgICAgICA8ZmlsZW5hbWU+Citw b3N0Z3Jlc3FsLmNvbmYsIHBnX2hiYS5jb25mICAgIDxmaWxlbmFtZT4KIFtBLVpdW0EtWl8gXStb QS1aX10gICAgICAgICAgICAgPGNvbW1hbmQ+LCA8bGl0ZXJhbD4sIDxlbnZhcj4sIDxhY3Jvbnlt PgogW0EtWmEtel9dW0EtWmEtejAtOV9dKygpICAgICAgICA8ZnVuY3Rpb24+CiBcLVwtP1tBLVph LXpfXStbLUEtWmEtel9dKiAgICAgIDxvcHRpb24+ICh1c2UgYmFja3NsYXNoZXMgdG8gYXZvaWQg U0dNTCBtYXJrdXApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9n LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKaW5kZXggYWRiZDZhMi4uOGYz Y2FhOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAtODEsOCArODEsMTAgQEAgZXh0 ZXJuIHVpbnQzMiBib290c3RyYXBfZGF0YV9jaGVja3N1bV92ZXJzaW9uOwogLyogRmlsZSBwYXRo IG5hbWVzIChhbGwgcmVsYXRpdmUgdG8gJFBHREFUQSkgKi8KICNkZWZpbmUgUkVDT1ZFUllfQ09N TUFORF9GSUxFCSJyZWNvdmVyeS5jb25mIgogI2RlZmluZSBSRUNPVkVSWV9DT01NQU5EX0RPTkUJ InJlY292ZXJ5LmRvbmUiCi0jZGVmaW5lIFBST01PVEVfU0lHTkFMX0ZJTEUJCSJwcm9tb3RlIgot I2RlZmluZSBGQUxMQkFDS19QUk9NT1RFX1NJR05BTF9GSUxFICJmYWxsYmFja19wcm9tb3RlIgor I2RlZmluZSBQUk9NT1RFX1NJR05BTF9GSUxFCQkicHJvbW90ZS5zaWduYWwiCisjZGVmaW5lIEZB TExCQUNLX1BST01PVEVfU0lHTkFMX0ZJTEUgImZhbGxiYWNrX3Byb21vdGUuc2lnbmFsIgorI2Rl ZmluZSBSRUNPVkVSWV9TSUdOQUxfRklMRQkicmVjb3Zlcnkuc2lnbmFsIgorI2RlZmluZSBTVEFO REJZX1NJR05BTF9GSUxFCQkic3RhbmRieS5zaWduYWwiCiAKIAogLyogVXNlci1zZXR0YWJsZSBw YXJhbWV0ZXJzICovCkBAIC0yMzYsNyArMjM4LDcgQEAgc3RhdGljIGludAlMb2NhbFhMb2dJbnNl cnRBbGxvd2VkID0gLTE7CiAKIC8qCiAgKiBXaGVuIEFyY2hpdmVSZWNvdmVyeVJlcXVlc3RlZCBp cyBzZXQsIGFyY2hpdmUgcmVjb3Zlcnkgd2FzIHJlcXVlc3RlZCwKLSAqIGllLiByZWNvdmVyeS5j b25mIGZpbGUgd2FzIHByZXNlbnQuIFdoZW4gSW5BcmNoaXZlUmVjb3ZlcnkgaXMgc2V0LCB3ZSBh cmUKKyAqIGllLiBzaWduYWwgZmlsZXMgd2VyZSBwcmVzZW50LiBXaGVuIEluQXJjaGl2ZVJlY292 ZXJ5IGlzIHNldCwgd2UgYXJlCiAgKiBjdXJyZW50bHkgcmVjb3ZlcmluZyB1c2luZyBvZmZsaW5l IFhMT0cgYXJjaGl2ZXMuIFRoZXNlIHZhcmlhYmxlcyBhcmUgb25seQogICogdmFsaWQgaW4gdGhl IHN0YXJ0dXAgcHJvY2Vzcy4KICAqCkBAIC0yNDgsNiArMjUwLDkgQEAgc3RhdGljIGludAlMb2Nh bFhMb2dJbnNlcnRBbGxvd2VkID0gLTE7CiBib29sCQlBcmNoaXZlUmVjb3ZlcnlSZXF1ZXN0ZWQg PSBmYWxzZTsKIGJvb2wJCUluQXJjaGl2ZVJlY292ZXJ5ID0gZmFsc2U7CiAKK3N0YXRpYyBib29s IHN0YW5kYnlfc2lnbmFsX2ZpbGVfZm91bmQgPSBmYWxzZTsKK3N0YXRpYyBib29sIHJlY292ZXJ5 X3NpZ25hbF9maWxlX2ZvdW5kID0gZmFsc2U7CisKIC8qIFdhcyB0aGUgbGFzdCB4bG9nIGZpbGUg cmVzdG9yZWQgZnJvbSBhcmNoaXZlLCBvciBsb2NhbD8gKi8KIHN0YXRpYyBib29sIHJlc3RvcmVk RnJvbUFyY2hpdmUgPSBmYWxzZTsKIApAQCAtMjU1LDI5ICsyNjAsMzQgQEAgc3RhdGljIGJvb2wg cmVzdG9yZWRGcm9tQXJjaGl2ZSA9IGZhbHNlOwogc3RhdGljIGNoYXIgKnJlcGxheV9pbWFnZV9t YXNrZWQgPSBOVUxMOwogc3RhdGljIGNoYXIgKm1hc3Rlcl9pbWFnZV9tYXNrZWQgPSBOVUxMOwog Ci0vKiBvcHRpb25zIHRha2VuIGZyb20gcmVjb3ZlcnkuY29uZiBmb3IgYXJjaGl2ZSByZWNvdmVy eSAqLworLyogb3B0aW9ucyBmb3JtZXJseSB0YWtlbiBmcm9tIHJlY292ZXJ5LmNvbmYgZm9yIGFy Y2hpdmUgcmVjb3ZlcnkgKi8KIGNoYXIJICAgKnJlY292ZXJ5UmVzdG9yZUNvbW1hbmQgPSBOVUxM Owotc3RhdGljIGNoYXIgKnJlY292ZXJ5RW5kQ29tbWFuZCA9IE5VTEw7Ci1zdGF0aWMgY2hhciAq YXJjaGl2ZUNsZWFudXBDb21tYW5kID0gTlVMTDsKLXN0YXRpYyBSZWNvdmVyeVRhcmdldFR5cGUg cmVjb3ZlcnlUYXJnZXQgPSBSRUNPVkVSWV9UQVJHRVRfVU5TRVQ7Ci1zdGF0aWMgYm9vbCByZWNv dmVyeVRhcmdldEluY2x1c2l2ZSA9IHRydWU7Ci1zdGF0aWMgUmVjb3ZlcnlUYXJnZXRBY3Rpb24g cmVjb3ZlcnlUYXJnZXRBY3Rpb24gPSBSRUNPVkVSWV9UQVJHRVRfQUNUSU9OX1BBVVNFOwotc3Rh dGljIFRyYW5zYWN0aW9uSWQgcmVjb3ZlcnlUYXJnZXRYaWQ7Ci1zdGF0aWMgVGltZXN0YW1wVHog cmVjb3ZlcnlUYXJnZXRUaW1lOwotc3RhdGljIGNoYXIgKnJlY292ZXJ5VGFyZ2V0TmFtZTsKLXN0 YXRpYyBYTG9nUmVjUHRyIHJlY292ZXJ5VGFyZ2V0TFNOOwotc3RhdGljIGludAlyZWNvdmVyeV9t aW5fYXBwbHlfZGVsYXkgPSAwOwotc3RhdGljIFRpbWVzdGFtcFR6IHJlY292ZXJ5RGVsYXlVbnRp bFRpbWU7Ci0KLS8qIG9wdGlvbnMgdGFrZW4gZnJvbSByZWNvdmVyeS5jb25mIGZvciBYTE9HIHN0 cmVhbWluZyAqLwotc3RhdGljIGJvb2wgU3RhbmRieU1vZGVSZXF1ZXN0ZWQgPSBmYWxzZTsKLXN0 YXRpYyBjaGFyICpQcmltYXJ5Q29ubkluZm8gPSBOVUxMOwotc3RhdGljIGNoYXIgKlByaW1hcnlT bG90TmFtZSA9IE5VTEw7Ci1zdGF0aWMgY2hhciAqVHJpZ2dlckZpbGUgPSBOVUxMOworY2hhcgkg ICAqcmVjb3ZlcnlFbmRDb21tYW5kID0gTlVMTDsKK2NoYXIJICAgKmFyY2hpdmVDbGVhbnVwQ29t bWFuZCA9IE5VTEw7CitSZWNvdmVyeVRhcmdldFR5cGUgcmVjb3ZlcnlUYXJnZXQgPSBSRUNPVkVS WV9UQVJHRVRfVU5TRVQ7CitjaGFyCSAgICpyZWNvdmVyeVRhcmdldFR5cGVTdHJpbmc7CitjaGFy CSAgICpyZWNvdmVyeVRhcmdldFZhbHVlID0gTlVMTDsKK2Jvb2wJCXJlY292ZXJ5VGFyZ2V0SW5j bHVzaXZlID0gdHJ1ZTsKK1JlY292ZXJ5VGFyZ2V0QWN0aW9uIHJlY292ZXJ5VGFyZ2V0QWN0aW9u ID0gUkVDT1ZFUllfVEFSR0VUX0FDVElPTl9QQVVTRTsKK1RyYW5zYWN0aW9uSWQgcmVjb3ZlcnlU YXJnZXRYaWQ7CitUaW1lc3RhbXBUeiByZWNvdmVyeVRhcmdldFRpbWU7CitjaGFyCSAgICpyZWNv dmVyeVRhcmdldE5hbWU7CitYTG9nUmVjUHRyCXJlY292ZXJ5VGFyZ2V0TFNOOworaW50CQkJcmVj b3ZlcnlfbWluX2FwcGx5X2RlbGF5ID0gMDsKK1RpbWVzdGFtcFR6IHJlY292ZXJ5RGVsYXlVbnRp bFRpbWU7CisKKy8qIG9wdGlvbnMgZm9ybWVybHkgdGFrZW4gZnJvbSByZWNvdmVyeS5jb25mIGZv ciBYTE9HIHN0cmVhbWluZyAqLworYm9vbAkJU3RhbmRieU1vZGVSZXF1ZXN0ZWQgPSBmYWxzZTsK K2NoYXIJICAgKlByaW1hcnlDb25uSW5mbyA9IE5VTEw7CitjaGFyCSAgICpQcmltYXJ5U2xvdE5h bWUgPSBOVUxMOwogCiAvKiBhcmUgd2UgY3VycmVudGx5IGluIHN0YW5kYnkgbW9kZT8gKi8KIGJv b2wJCVN0YW5kYnlNb2RlID0gZmFsc2U7CiAKK2NoYXIJICAgKlByb21vdGVTaWduYWxGaWxlID0g TlVMTDsKK2NoYXIJCVJlY292ZXJ5U2lnbmFsRmlsZVtNQVhQR1BBVEhdOworY2hhcgkJU3RhbmRi eVNpZ25hbEZpbGVbTUFYUEdQQVRIXTsKKwogLyogd2hldGhlciByZXF1ZXN0IGZvciBmYXN0IHBy b21vdGlvbiBoYXMgYmVlbiBtYWRlIHlldCAqLwogc3RhdGljIGJvb2wgZmFzdF9wcm9tb3RlID0g ZmFsc2U7CiAKQEAgLTI5OSw3ICszMDksMTEgQEAgc3RhdGljIGJvb2wgcmVjb3ZlcnlTdG9wQWZ0 ZXI7CiAgKiB0aGUgY3VycmVudGx5LXNjYW5uZWQgV0FMIHJlY29yZCB3YXMgZ2VuZXJhdGVkKS4g IFdlIGFsc28gbmVlZCB0aGVzZQogICogdGltZWxpbmUgdmFsdWVzOgogICoKLSAqIHJlY292ZXJ5 VGFyZ2V0VExJOiB0aGUgZGVzaXJlZCB0aW1lbGluZSB0aGF0IHdlIHdhbnQgdG8gZW5kIGluLgor ICogcmVjb3ZlcnlUYXJnZXRUaW1lTGluZUdvYWw6IHdoYXQgdGhlIHVzZXIgcmVxdWVzdGVkLCBp ZiBhbnkKKyAqCisgKiByZWNvdmVyeVRhcmdldFRMSVJlcXVlc3RlZDogbnVtZXJpYyB2YWx1ZSBv ZiByZXF1ZXN0ZWQgdGltZWxpbmUsIGlmIGNvbnN0YW50CisgKgorICogcmVjb3ZlcnlUYXJnZXRU TEk6IHRoZSBjdXJyZW50bHkgdW5kZXJzdG9vZCB0YXJnZXQgdGltZWxpbmU7IGNoYW5nZXMKICAq CiAgKiByZWNvdmVyeVRhcmdldElzTGF0ZXN0OiB3YXMgdGhlIHJlcXVlc3RlZCB0YXJnZXQgdGlt ZWxpbmUgJ2xhdGVzdCc/CiAgKgpAQCAtMzE1LDcgKzMyOSwxMCBAQCBzdGF0aWMgYm9vbCByZWNv dmVyeVN0b3BBZnRlcjsKICAqIGZpbGUgd2FzIGNyZWF0ZWQuKSAgRHVyaW5nIGEgc2VxdWVudGlh bCBzY2FuIHdlIGRvIG5vdCBhbGxvdyB0aGlzIHZhbHVlCiAgKiB0byBkZWNyZWFzZS4KICAqLwot c3RhdGljIFRpbWVMaW5lSUQgcmVjb3ZlcnlUYXJnZXRUTEk7CitjaGFyCSAgICpyZWNvdmVyeVRh cmdldFRMSVN0cmluZyA9IE5VTEw7CitSZWNvdmVyeVRhcmdldFRpbWVMaW5lR29hbCByZWNvdmVy eVRhcmdldFRpbWVMaW5lR29hbCA9IFJFQ09WRVJZX1RBUkdFVF9USU1FTElORV9DT05UUk9MRklM RTsKK1RpbWVMaW5lSUQJcmVjb3ZlcnlUYXJnZXRUTElSZXF1ZXN0ZWQgPSAwOworVGltZUxpbmVJ RAlyZWNvdmVyeVRhcmdldFRMSSA9IDA7CiBzdGF0aWMgYm9vbCByZWNvdmVyeVRhcmdldElzTGF0 ZXN0ID0gZmFsc2U7CiBzdGF0aWMgTGlzdCAqZXhwZWN0ZWRUTEVzOwogc3RhdGljIFRpbWVMaW5l SUQgY3VyRmlsZVRMSTsKQEAgLTYzMSwxMiArNjQ4LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgWExvZ0N0 bERhdGEKIAlUaW1lTGluZUlECVByZXZUaW1lTGluZUlEOwogCiAJLyoKLQkgKiBhcmNoaXZlQ2xl YW51cENvbW1hbmQgaXMgcmVhZCBmcm9tIHJlY292ZXJ5LmNvbmYgYnV0IG5lZWRzIHRvIGJlIGlu Ci0JICogc2hhcmVkIG1lbW9yeSBzbyB0aGF0IHRoZSBjaGVja3BvaW50ZXIgcHJvY2VzcyBjYW4g YWNjZXNzIGl0LgotCSAqLwotCWNoYXIJCWFyY2hpdmVDbGVhbnVwQ29tbWFuZFtNQVhQR1BBVEhd OwotCi0JLyoKIAkgKiBTaGFyZWRSZWNvdmVyeUluUHJvZ3Jlc3MgaW5kaWNhdGVzIGlmIHdlJ3Jl IHN0aWxsIGluIGNyYXNoIG9yIGFyY2hpdmUKIAkgKiByZWNvdmVyeS4gIFByb3RlY3RlZCBieSBp bmZvX2xjay4KIAkgKi8KQEAgLTg0Niw3ICs4NTcsNyBAQCBzdGF0aWMgYm9vbCBob2xkaW5nQWxs TG9ja3MgPSBmYWxzZTsKIHN0YXRpYyBNZW1vcnlDb250ZXh0IHdhbERlYnVnQ3h0ID0gTlVMTDsK ICNlbmRpZgogCi1zdGF0aWMgdm9pZCByZWFkUmVjb3ZlcnlDb21tYW5kRmlsZSh2b2lkKTsKK3N0 YXRpYyB2b2lkIHJlYWRSZWNvdmVyeVNpZ25hbEZpbGUodm9pZCk7CiBzdGF0aWMgdm9pZCBleGl0 QXJjaGl2ZVJlY292ZXJ5KFRpbWVMaW5lSUQgZW5kVExJLCBYTG9nUmVjUHRyIGVuZE9mTG9nKTsK IHN0YXRpYyBib29sIHJlY292ZXJ5U3RvcHNCZWZvcmUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQp Owogc3RhdGljIGJvb2wgcmVjb3ZlcnlTdG9wc0FmdGVyKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3Jk KTsKQEAgLTQ1MDksNyArNDUyMCw3IEBAIFJlYWRDb250cm9sRmlsZSh2b2lkKQogCQkJCQkgZXJy bXNnKCJjb3VsZCBub3QgcmVhZCBmcm9tIGNvbnRyb2wgZmlsZTogJW0iKSkpOwogCQllbHNlCiAJ CQllcmVwb3J0KFBBTklDLAotCQkJCQkgKGVycm1zZygiY291bGQgbm90IHJlYWQgZnJvbSBjb250 cm9sIGZpbGU6IHJlYWQgJWQgYnl0ZXMsIGV4cGVjdGVkICVkIiwgciwgKGludCkgc2l6ZW9mKENv bnRyb2xGaWxlRGF0YSkpKSk7CisJCQkJCShlcnJtc2coImNvdWxkIG5vdCByZWFkIGZyb20gY29u dHJvbCBmaWxlOiByZWFkICVkIGJ5dGVzLCBleHBlY3RlZCAlZCIsIHIsIChpbnQpIHNpemVvZihD b250cm9sRmlsZURhdGEpKSkpOwogCX0KIAlwZ3N0YXRfcmVwb3J0X3dhaXRfZW5kKCk7CiAKQEAg LTUyMjYsMjY0ICs1MjM3LDE3NSBAQCBzdHJfdGltZShwZ190aW1lX3QgdG5vdykKIAogLyoKICAq IFNlZSBpZiB0aGVyZSBpcyBhIHJlY292ZXJ5IGNvbW1hbmQgZmlsZSAocmVjb3ZlcnkuY29uZiks IGFuZCBpZiBzbwotICogcmVhZCBpbiBwYXJhbWV0ZXJzIGZvciBhcmNoaXZlIHJlY292ZXJ5IGFu ZCBYTE9HIHN0cmVhbWluZy4KKyAqIHRocm93IGFuIEVSUk9SIHNpbmNlIGFzIG9mIFBHMTIuMCB3 ZSBubyBsb25nZXIgcmVjb2duaXplIHRoYXQuCiAgKgotICogVGhlIGZpbGUgaXMgcGFyc2VkIHVz aW5nIHRoZSBtYWluIGNvbmZpZ3VyYXRpb24gcGFyc2VyLgorICogU2VlIGlmIHRoZXJlIGFyZSBh bnkgcmVjb3Zlcnkgc2lnbmFsIGZpbGVzIGFuZCBpZiBzbywgc2V0IHN0YXRlIGZvcgorICogcmVj b3ZlcnkuCiAgKi8KIHN0YXRpYyB2b2lkCi1yZWFkUmVjb3ZlcnlDb21tYW5kRmlsZSh2b2lkKQor cmVhZFJlY292ZXJ5U2lnbmFsRmlsZSh2b2lkKQogewotCUZJTEUJICAgKmZkOwotCVRpbWVMaW5l SUQJcnRsaSA9IDA7Ci0JYm9vbAkJcnRsaUdpdmVuID0gZmFsc2U7Ci0JQ29uZmlnVmFyaWFibGUg Kml0ZW0sCi0JCQkgICAqaGVhZCA9IE5VTEwsCi0JCQkgICAqdGFpbCA9IE5VTEw7Ci0JYm9vbAkJ cmVjb3ZlcnlUYXJnZXRBY3Rpb25TZXQgPSBmYWxzZTsKKwlzdHJ1Y3Qgc3RhdCBzdGF0X2J1ZjsK IAorCWlmIChJc0Jvb3RzdHJhcFByb2Nlc3NpbmdNb2RlKCkpCisJCXJldHVybjsKIAotCWZkID0g QWxsb2NhdGVGaWxlKFJFQ09WRVJZX0NPTU1BTkRfRklMRSwgInIiKTsKLQlpZiAoZmQgPT0gTlVM TCkKLQl7Ci0JCWlmIChlcnJubyA9PSBFTk9FTlQpCi0JCQlyZXR1cm47CQkJCS8qIG5vdCB0aGVy ZSwgc28gbm8gYXJjaGl2ZSByZWNvdmVyeSAqLworCS8qCisJICogU2V0IHBhdGhzIGZvciBuYW1l ZCBzaWduYWwgZmlsZXMKKwkgKi8KKwlzbnByaW50ZihTdGFuZGJ5U2lnbmFsRmlsZSwgTUFYUEdQ QVRILCAiJXMiLCBTVEFOREJZX1NJR05BTF9GSUxFKTsKKwlzbnByaW50ZihSZWNvdmVyeVNpZ25h bEZpbGUsIE1BWFBHUEFUSCwgIiVzIiwgUkVDT1ZFUllfU0lHTkFMX0ZJTEUpOworCisJLyoKKwkg KiBDaGVjayBmb3Igb2xkIHJlY292ZXJ5IEFQSSBmaWxlOiByZWNvdmVyeS5jb25mCisJICovCisJ aWYgKHN0YXQoUkVDT1ZFUllfQ09NTUFORF9GSUxFLCAmc3RhdF9idWYpID09IDApCiAJCWVyZXBv cnQoRkFUQUwsCiAJCQkJKGVycmNvZGVfZm9yX2ZpbGVfYWNjZXNzKCksCi0JCQkJIGVycm1zZygi Y291bGQgbm90IG9wZW4gcmVjb3ZlcnkgY29tbWFuZCBmaWxlIFwiJXNcIjogJW0iLAorCQkJCSBl cnJtc2coImRlcHJlY2F0ZWQgQVBJIHVzaW5nIHJlY292ZXJ5IGNvbW1hbmQgZmlsZSBcIiVzXCIi LAogCQkJCQkJUkVDT1ZFUllfQ09NTUFORF9GSUxFKSkpOwotCX0KIAogCS8qCi0JICogU2luY2Ug d2UncmUgYXNraW5nIFBhcnNlQ29uZmlnRnAoKSB0byByZXBvcnQgZXJyb3JzIGFzIEZBVEFMLCB0 aGVyZSdzCi0JICogbm8gbmVlZCB0byBjaGVjayB0aGUgcmV0dXJuIHZhbHVlLgorCSAqIFJlbW92 ZSB1bnVzZWQgLmRvbmUgZmlsZSwgaWYgcHJlc2VudC4gSWdub3JlIGlmIGFic2VudC4KIAkgKi8K LQkodm9pZCkgUGFyc2VDb25maWdGcChmZCwgUkVDT1ZFUllfQ09NTUFORF9GSUxFLCAwLCBGQVRB TCwgJmhlYWQsICZ0YWlsKTsKKwl1bmxpbmsoUkVDT1ZFUllfQ09NTUFORF9ET05FKTsKIAotCUZy ZWVGaWxlKGZkKTsKKwkvKgorCSAqIENoZWNrIGZvciByZWNvdmVyeSBzaWduYWwgZmlsZXMgYW5k IGlmIGZvdW5kLCBmc3luYyB0aGVtIHNpbmNlIHRoZXkKKwkgKiByZXByZXNlbnQgc2VydmVyIHN0 YXRlIGluZm9ybWF0aW9uLgorCSAqCisJICogSWYgcHJlc2VudCwgc3RhbmRieSBzaWduYWwgZmls ZSB0YWtlcyBwcmVjZWRlbmNlLiBJZiBuZWl0aGVyIGlzIHByZXNlbnQKKwkgKiB0aGVuIHdlIHdv bid0IGVudGVyIGFyY2hpdmUgcmVjb3ZlcnkuCisJICovCisJaWYgKHN0YXQoU3RhbmRieVNpZ25h bEZpbGUsICZzdGF0X2J1ZikgPT0gMCkKKwl7CisJCWludAkJCWZkOwogCi0JZm9yIChpdGVtID0g aGVhZDsgaXRlbTsgaXRlbSA9IGl0ZW0tPm5leHQpCisJCWZkID0gQmFzaWNPcGVuRmlsZVBlcm0o U3RhbmRieVNpZ25hbEZpbGUsIE9fUkRXUiB8IFBHX0JJTkFSWSB8IGdldF9zeW5jX2JpdChzeW5j X21ldGhvZCksCisJCQkJCQkJICAgU19JUlVTUiB8IFNfSVdVU1IpOworCQlwZ19mc3luYyhmZCk7 CisJCWNsb3NlKGZkKTsKKwkJc3RhbmRieV9zaWduYWxfZmlsZV9mb3VuZCA9IHRydWU7CisJfQor CWVsc2UgaWYgKHN0YXQoUmVjb3ZlcnlTaWduYWxGaWxlLCAmc3RhdF9idWYpID09IDApCiAJewot CQlpZiAoc3RyY21wKGl0ZW0tPm5hbWUsICJyZXN0b3JlX2NvbW1hbmQiKSA9PSAwKQotCQl7Ci0J CQlyZWNvdmVyeVJlc3RvcmVDb21tYW5kID0gcHN0cmR1cChpdGVtLT52YWx1ZSk7Ci0JCQllcmVw b3J0KERFQlVHMiwKLQkJCQkJKGVycm1zZ19pbnRlcm5hbCgicmVzdG9yZV9jb21tYW5kID0gJyVz JyIsCi0JCQkJCQkJCQkgcmVjb3ZlcnlSZXN0b3JlQ29tbWFuZCkpKTsKLQkJfQotCQllbHNlIGlm IChzdHJjbXAoaXRlbS0+bmFtZSwgInJlY292ZXJ5X2VuZF9jb21tYW5kIikgPT0gMCkKLQkJewot CQkJcmVjb3ZlcnlFbmRDb21tYW5kID0gcHN0cmR1cChpdGVtLT52YWx1ZSk7Ci0JCQllcmVwb3J0 KERFQlVHMiwKLQkJCQkJKGVycm1zZ19pbnRlcm5hbCgicmVjb3ZlcnlfZW5kX2NvbW1hbmQgPSAn JXMnIiwKLQkJCQkJCQkJCSByZWNvdmVyeUVuZENvbW1hbmQpKSk7Ci0JCX0KLQkJZWxzZSBpZiAo c3RyY21wKGl0ZW0tPm5hbWUsICJhcmNoaXZlX2NsZWFudXBfY29tbWFuZCIpID09IDApCi0JCXsK LQkJCWFyY2hpdmVDbGVhbnVwQ29tbWFuZCA9IHBzdHJkdXAoaXRlbS0+dmFsdWUpOwotCQkJZXJl cG9ydChERUJVRzIsCi0JCQkJCShlcnJtc2dfaW50ZXJuYWwoImFyY2hpdmVfY2xlYW51cF9jb21t YW5kID0gJyVzJyIsCi0JCQkJCQkJCQkgYXJjaGl2ZUNsZWFudXBDb21tYW5kKSkpOwotCQl9Ci0J CWVsc2UgaWYgKHN0cmNtcChpdGVtLT5uYW1lLCAicmVjb3ZlcnlfdGFyZ2V0X2FjdGlvbiIpID09 IDApCi0JCXsKLQkJCWlmIChzdHJjbXAoaXRlbS0+dmFsdWUsICJwYXVzZSIpID09IDApCi0JCQkJ cmVjb3ZlcnlUYXJnZXRBY3Rpb24gPSBSRUNPVkVSWV9UQVJHRVRfQUNUSU9OX1BBVVNFOwotCQkJ ZWxzZSBpZiAoc3RyY21wKGl0ZW0tPnZhbHVlLCAicHJvbW90ZSIpID09IDApCi0JCQkJcmVjb3Zl cnlUYXJnZXRBY3Rpb24gPSBSRUNPVkVSWV9UQVJHRVRfQUNUSU9OX1BST01PVEU7Ci0JCQllbHNl IGlmIChzdHJjbXAoaXRlbS0+dmFsdWUsICJzaHV0ZG93biIpID09IDApCi0JCQkJcmVjb3ZlcnlU YXJnZXRBY3Rpb24gPSBSRUNPVkVSWV9UQVJHRVRfQUNUSU9OX1NIVVRET1dOOwotCQkJZWxzZQot CQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1F VEVSX1ZBTFVFKSwKLQkJCQkJCSBlcnJtc2coImludmFsaWQgdmFsdWUgZm9yIHJlY292ZXJ5IHBh cmFtZXRlciBcIiVzXCI6IFwiJXNcIiIsCi0JCQkJCQkJCSJyZWNvdmVyeV90YXJnZXRfYWN0aW9u IiwKLQkJCQkJCQkJaXRlbS0+dmFsdWUpLAotCQkJCQkJIGVycmhpbnQoIlZhbGlkIHZhbHVlcyBh cmUgXCJwYXVzZVwiLCBcInByb21vdGVcIiwgYW5kIFwic2h1dGRvd25cIi4iKSkpOworCQlpbnQJ CQlmZDsKIAotCQkJZXJlcG9ydChERUJVRzIsCi0JCQkJCShlcnJtc2dfaW50ZXJuYWwoInJlY292 ZXJ5X3RhcmdldF9hY3Rpb24gPSAnJXMnIiwKLQkJCQkJCQkJCSBpdGVtLT52YWx1ZSkpKTsKKwkJ ZmQgPSBCYXNpY09wZW5GaWxlUGVybShSZWNvdmVyeVNpZ25hbEZpbGUsIE9fUkRXUiB8IFBHX0JJ TkFSWSB8IGdldF9zeW5jX2JpdChzeW5jX21ldGhvZCksCisJCQkJCQkJICAgU19JUlVTUiB8IFNf SVdVU1IpOworCQlwZ19mc3luYyhmZCk7CisJCWNsb3NlKGZkKTsKKwkJcmVjb3Zlcnlfc2lnbmFs X2ZpbGVfZm91bmQgPSB0cnVlOworCX0KIAotCQkJcmVjb3ZlcnlUYXJnZXRBY3Rpb25TZXQgPSB0 cnVlOwotCQl9Ci0JCWVsc2UgaWYgKHN0cmNtcChpdGVtLT5uYW1lLCAicmVjb3ZlcnlfdGFyZ2V0 X3RpbWVsaW5lIikgPT0gMCkKLQkJewotCQkJcnRsaUdpdmVuID0gdHJ1ZTsKLQkJCWlmIChzdHJj bXAoaXRlbS0+dmFsdWUsICJsYXRlc3QiKSA9PSAwKQotCQkJCXJ0bGkgPSAwOwotCQkJZWxzZQot CQkJewotCQkJCWVycm5vID0gMDsKLQkJCQlydGxpID0gKFRpbWVMaW5lSUQpIHN0cnRvdWwoaXRl bS0+dmFsdWUsIE5VTEwsIDApOwotCQkJCWlmIChlcnJubyA9PSBFSU5WQUwgfHwgZXJybm8gPT0g RVJBTkdFKQotCQkJCQllcmVwb3J0KEZBVEFMLAotCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5W QUxJRF9QQVJBTUVURVJfVkFMVUUpLAotCQkJCQkJCSBlcnJtc2coInJlY292ZXJ5X3RhcmdldF90 aW1lbGluZSBpcyBub3QgYSB2YWxpZCBudW1iZXI6IFwiJXNcIiIsCi0JCQkJCQkJCQlpdGVtLT52 YWx1ZSkpKTsKLQkJCX0KLQkJCWlmIChydGxpKQotCQkJCWVyZXBvcnQoREVCVUcyLAotCQkJCQkJ KGVycm1zZ19pbnRlcm5hbCgicmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lID0gJXUiLCBydGxpKSkp OwotCQkJZWxzZQotCQkJCWVyZXBvcnQoREVCVUcyLAotCQkJCQkJKGVycm1zZ19pbnRlcm5hbCgi cmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lID0gbGF0ZXN0IikpKTsKLQkJfQotCQllbHNlIGlmIChz dHJjbXAoaXRlbS0+bmFtZSwgInJlY292ZXJ5X3RhcmdldF94aWQiKSA9PSAwKQotCQl7Ci0JCQll cnJubyA9IDA7Ci0JCQlyZWNvdmVyeVRhcmdldFhpZCA9IChUcmFuc2FjdGlvbklkKSBzdHJ0b3Vs KGl0ZW0tPnZhbHVlLCBOVUxMLCAwKTsKLQkJCWlmIChlcnJubyA9PSBFSU5WQUwgfHwgZXJybm8g PT0gRVJBTkdFKQotCQkJCWVyZXBvcnQoRkFUQUwsCi0JCQkJCQkoZXJyY29kZShFUlJDT0RFX0lO VkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKLQkJCQkJCSBlcnJtc2coInJlY292ZXJ5X3RhcmdldF94 aWQgaXMgbm90IGEgdmFsaWQgbnVtYmVyOiBcIiVzXCIiLAotCQkJCQkJCQlpdGVtLT52YWx1ZSkp KTsKLQkJCWVyZXBvcnQoREVCVUcyLAotCQkJCQkoZXJybXNnX2ludGVybmFsKCJyZWNvdmVyeV90 YXJnZXRfeGlkID0gJXUiLAotCQkJCQkJCQkJIHJlY292ZXJ5VGFyZ2V0WGlkKSkpOwotCQkJcmVj b3ZlcnlUYXJnZXQgPSBSRUNPVkVSWV9UQVJHRVRfWElEOwotCQl9Ci0JCWVsc2UgaWYgKHN0cmNt cChpdGVtLT5uYW1lLCAicmVjb3ZlcnlfdGFyZ2V0X3RpbWUiKSA9PSAwKQotCQl7Ci0JCQlyZWNv dmVyeVRhcmdldCA9IFJFQ09WRVJZX1RBUkdFVF9USU1FOwotCi0JCQlpZiAoc3RyY21wKGl0ZW0t PnZhbHVlLCAiZXBvY2giKSA9PSAwIHx8Ci0JCQkJc3RyY21wKGl0ZW0tPnZhbHVlLCAiaW5maW5p dHkiKSA9PSAwIHx8Ci0JCQkJc3RyY21wKGl0ZW0tPnZhbHVlLCAiLWluZmluaXR5IikgPT0gMCB8 fAotCQkJCXN0cmNtcChpdGVtLT52YWx1ZSwgIm5vdyIpID09IDAgfHwKLQkJCQlzdHJjbXAoaXRl bS0+dmFsdWUsICJ0b2RheSIpID09IDAgfHwKLQkJCQlzdHJjbXAoaXRlbS0+dmFsdWUsICJ0b21v cnJvdyIpID09IDAgfHwKLQkJCQlzdHJjbXAoaXRlbS0+dmFsdWUsICJ5ZXN0ZXJkYXkiKSA9PSAw KQotCQkJCWVyZXBvcnQoRkFUQUwsCi0JCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFS QU1FVEVSX1ZBTFVFKSwKLQkJCQkJCSBlcnJtc2coInJlY292ZXJ5X3RhcmdldF90aW1lIGlzIG5v dCBhIHZhbGlkIHRpbWVzdGFtcDogXCIlc1wiIiwKLQkJCQkJCQkJaXRlbS0+dmFsdWUpKSk7CisJ U3RhbmRieU1vZGVSZXF1ZXN0ZWQgPSBmYWxzZTsKKwlBcmNoaXZlUmVjb3ZlcnlSZXF1ZXN0ZWQg PSBmYWxzZTsKKwlpZiAoc3RhbmRieV9zaWduYWxfZmlsZV9mb3VuZCkKKwl7CisJCVN0YW5kYnlN b2RlUmVxdWVzdGVkID0gdHJ1ZTsKKwkJQXJjaGl2ZVJlY292ZXJ5UmVxdWVzdGVkID0gdHJ1ZTsK Kwl9CisJZWxzZSBpZiAocmVjb3Zlcnlfc2lnbmFsX2ZpbGVfZm91bmQpCisJeworCQlTdGFuZGJ5 TW9kZVJlcXVlc3RlZCA9IGZhbHNlOworCQlBcmNoaXZlUmVjb3ZlcnlSZXF1ZXN0ZWQgPSB0cnVl OworCX0KKwllbHNlCisJCXJldHVybjsKIAotCQkJLyoKLQkJCSAqIENvbnZlcnQgdGhlIHRpbWUg c3RyaW5nIGdpdmVuIGJ5IHRoZSB1c2VyIHRvIFRpbWVzdGFtcFR6IGZvcm0uCi0JCQkgKi8KLQkJ CXJlY292ZXJ5VGFyZ2V0VGltZSA9Ci0JCQkJRGF0dW1HZXRUaW1lc3RhbXBUeihEaXJlY3RGdW5j dGlvbkNhbGwzKHRpbWVzdGFtcHR6X2luLAotCQkJCQkJCQkJCQkJCQlDU3RyaW5nR2V0RGF0dW0o aXRlbS0+dmFsdWUpLAotCQkJCQkJCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKEludmFsaWRPaWQp LAotCQkJCQkJCQkJCQkJCQlJbnQzMkdldERhdHVtKC0xKSkpOwotCQkJZXJlcG9ydChERUJVRzIs Ci0JCQkJCShlcnJtc2dfaW50ZXJuYWwoInJlY292ZXJ5X3RhcmdldF90aW1lID0gJyVzJyIsCi0J CQkJCQkJCQkgdGltZXN0YW1wdHpfdG9fc3RyKHJlY292ZXJ5VGFyZ2V0VGltZSkpKSk7Ci0JCX0K LQkJZWxzZSBpZiAoc3RyY21wKGl0ZW0tPm5hbWUsICJyZWNvdmVyeV90YXJnZXRfbmFtZSIpID09 IDApCi0JCXsKLQkJCXJlY292ZXJ5VGFyZ2V0ID0gUkVDT1ZFUllfVEFSR0VUX05BTUU7CisJLyoK KwkgKiBXZSBkb24ndCBzdXBwb3J0IHN0YW5kYnlfbW9kZSBpbiBzdGFuZGFsb25lIGJhY2tlbmRz OyB0aGF0IHJlcXVpcmVzCisJICogb3RoZXIgcHJvY2Vzc2VzIHN1Y2ggYXMgdGhlIFdBTCByZWNl aXZlciB0byBiZSBhbGl2ZS4KKwkgKi8KKwlpZiAoU3RhbmRieU1vZGVSZXF1ZXN0ZWQgJiYgIUlz VW5kZXJQb3N0bWFzdGVyKQorCQllcmVwb3J0KEZBVEFMLAorCQkJCShlcnJjb2RlKEVSUkNPREVf RkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJzdGFuZGJ5IG1vZGUgaXMgbm90 IHN1cHBvcnRlZCBieSBzaW5nbGUtdXNlciBzZXJ2ZXJzIikpKTsKIAotCQkJcmVjb3ZlcnlUYXJn ZXROYW1lID0gcHN0cmR1cChpdGVtLT52YWx1ZSk7Ci0JCQlpZiAoc3RybGVuKHJlY292ZXJ5VGFy Z2V0TmFtZSkgPj0gTUFYRk5BTUVMRU4pCi0JCQkJZXJlcG9ydChGQVRBTCwKLQkJCQkJCShlcnJj b2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAotCQkJCQkJIGVycm1zZygicmVj b3ZlcnlfdGFyZ2V0X25hbWUgaXMgdG9vIGxvbmcgKG1heGltdW0gJWQgY2hhcmFjdGVycykiLAot CQkJCQkJCQlNQVhGTkFNRUxFTiAtIDEpKSk7CisJbG9nUmVjb3ZlcnlQYXJhbWV0ZXJzKCk7CisJ dmFsaWRhdGVSZWNvdmVyeVBhcmFtZXRlcnMoKTsKK30KIAotCQkJZXJlcG9ydChERUJVRzIsCi0J CQkJCShlcnJtc2dfaW50ZXJuYWwoInJlY292ZXJ5X3RhcmdldF9uYW1lID0gJyVzJyIsCi0JCQkJ CQkJCQkgcmVjb3ZlcnlUYXJnZXROYW1lKSkpOwotCQl9Ci0JCWVsc2UgaWYgKHN0cmNtcChpdGVt LT5uYW1lLCAicmVjb3ZlcnlfdGFyZ2V0X2xzbiIpID09IDApCi0JCXsKLQkJCXJlY292ZXJ5VGFy Z2V0ID0gUkVDT1ZFUllfVEFSR0VUX0xTTjsKK3ZvaWQKK2xvZ1JlY292ZXJ5UGFyYW1ldGVycyh2 b2lkKQoreworCWludAkJCW5vcm1hbF9sb2dfbGV2ZWwgPSBERUJVRzI7CiAKLQkJCS8qCi0JCQkg KiBDb252ZXJ0IHRoZSBMU04gc3RyaW5nIGdpdmVuIGJ5IHRoZSB1c2VyIHRvIFhMb2dSZWNQdHIg Zm9ybS4KLQkJCSAqLwotCQkJcmVjb3ZlcnlUYXJnZXRMU04gPQotCQkJCURhdHVtR2V0TFNOKERp cmVjdEZ1bmN0aW9uQ2FsbDMocGdfbHNuX2luLAotCQkJCQkJCQkJCQkJQ1N0cmluZ0dldERhdHVt KGl0ZW0tPnZhbHVlKSwKLQkJCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0oSW52YWxpZE9pZCks Ci0JCQkJCQkJCQkJCQlJbnQzMkdldERhdHVtKC0xKSkpOwotCQkJZXJlcG9ydChERUJVRzIsCi0J CQkJCShlcnJtc2dfaW50ZXJuYWwoInJlY292ZXJ5X3RhcmdldF9sc24gPSAnJVgvJVgnIiwKLQkJ CQkJCQkJCSAodWludDMyKSAocmVjb3ZlcnlUYXJnZXRMU04gPj4gMzIpLAotCQkJCQkJCQkJICh1 aW50MzIpIHJlY292ZXJ5VGFyZ2V0TFNOKSkpOwotCQl9Ci0JCWVsc2UgaWYgKHN0cmNtcChpdGVt LT5uYW1lLCAicmVjb3ZlcnlfdGFyZ2V0IikgPT0gMCkKLQkJewotCQkJaWYgKHN0cmNtcChpdGVt LT52YWx1ZSwgImltbWVkaWF0ZSIpID09IDApCi0JCQkJcmVjb3ZlcnlUYXJnZXQgPSBSRUNPVkVS WV9UQVJHRVRfSU1NRURJQVRFOwotCQkJZWxzZQotCQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQko ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKLQkJCQkJCSBlcnJtc2co ImludmFsaWQgdmFsdWUgZm9yIHJlY292ZXJ5IHBhcmFtZXRlciBcIiVzXCI6IFwiJXNcIiIsCi0J CQkJCQkJCSJyZWNvdmVyeV90YXJnZXQiLAotCQkJCQkJCQlpdGVtLT52YWx1ZSksCi0JCQkJCQkg ZXJyaGludCgiVGhlIG9ubHkgYWxsb3dlZCB2YWx1ZSBpcyBcImltbWVkaWF0ZVwiLiIpKSk7Ci0J CQllcmVwb3J0KERFQlVHMiwKLQkJCQkJKGVycm1zZ19pbnRlcm5hbCgicmVjb3ZlcnlfdGFyZ2V0 ID0gJyVzJyIsCi0JCQkJCQkJCQkgaXRlbS0+dmFsdWUpKSk7Ci0JCX0KLQkJZWxzZSBpZiAoc3Ry Y21wKGl0ZW0tPm5hbWUsICJyZWNvdmVyeV90YXJnZXRfaW5jbHVzaXZlIikgPT0gMCkKLQkJewot CQkJLyoKLQkJCSAqIGRvZXMgbm90aGluZyBpZiBhIHJlY292ZXJ5X3RhcmdldCBpcyBub3QgYWxz byBzZXQKLQkJCSAqLwotCQkJaWYgKCFwYXJzZV9ib29sKGl0ZW0tPnZhbHVlLCAmcmVjb3ZlcnlU YXJnZXRJbmNsdXNpdmUpKQotCQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQkoZXJyY29kZShFUlJD T0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKLQkJCQkJCSBlcnJtc2coInBhcmFtZXRlciBc IiVzXCIgcmVxdWlyZXMgYSBCb29sZWFuIHZhbHVlIiwKLQkJCQkJCQkJInJlY292ZXJ5X3Rhcmdl dF9pbmNsdXNpdmUiKSkpOwotCQkJZXJlcG9ydChERUJVRzIsCi0JCQkJCShlcnJtc2dfaW50ZXJu YWwoInJlY292ZXJ5X3RhcmdldF9pbmNsdXNpdmUgPSAlcyIsCi0JCQkJCQkJCQkgaXRlbS0+dmFs dWUpKSk7Ci0JCX0KLQkJZWxzZSBpZiAoc3RyY21wKGl0ZW0tPm5hbWUsICJzdGFuZGJ5X21vZGUi KSA9PSAwKQotCQl7Ci0JCQlpZiAoIXBhcnNlX2Jvb2woaXRlbS0+dmFsdWUsICZTdGFuZGJ5TW9k ZVJlcXVlc3RlZCkpCi0JCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJCShlcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAotCQkJCQkJIGVycm1zZygicGFyYW1ldGVyIFwiJXNc IiByZXF1aXJlcyBhIEJvb2xlYW4gdmFsdWUiLAotCQkJCQkJCQkic3RhbmRieV9tb2RlIikpKTsK LQkJCWVyZXBvcnQoREVCVUcyLAotCQkJCQkoZXJybXNnX2ludGVybmFsKCJzdGFuZGJ5X21vZGUg PSAnJXMnIiwgaXRlbS0+dmFsdWUpKSk7Ci0JCX0KLQkJZWxzZSBpZiAoc3RyY21wKGl0ZW0tPm5h bWUsICJwcmltYXJ5X2Nvbm5pbmZvIikgPT0gMCkKLQkJewotCQkJUHJpbWFyeUNvbm5JbmZvID0g cHN0cmR1cChpdGVtLT52YWx1ZSk7Ci0JCQllcmVwb3J0KERFQlVHMiwKLQkJCQkJKGVycm1zZ19p bnRlcm5hbCgicHJpbWFyeV9jb25uaW5mbyA9ICclcyciLAotCQkJCQkJCQkJIFByaW1hcnlDb25u SW5mbykpKTsKLQkJfQotCQllbHNlIGlmIChzdHJjbXAoaXRlbS0+bmFtZSwgInByaW1hcnlfc2xv dF9uYW1lIikgPT0gMCkKLQkJewotCQkJUmVwbGljYXRpb25TbG90VmFsaWRhdGVOYW1lKGl0ZW0t PnZhbHVlLCBFUlJPUik7Ci0JCQlQcmltYXJ5U2xvdE5hbWUgPSBwc3RyZHVwKGl0ZW0tPnZhbHVl KTsKLQkJCWVyZXBvcnQoREVCVUcyLAotCQkJCQkoZXJybXNnX2ludGVybmFsKCJwcmltYXJ5X3Ns b3RfbmFtZSA9ICclcyciLAotCQkJCQkJCQkJIFByaW1hcnlTbG90TmFtZSkpKTsKLQkJfQotCQll bHNlIGlmIChzdHJjbXAoaXRlbS0+bmFtZSwgInRyaWdnZXJfZmlsZSIpID09IDApCi0JCXsKLQkJ CVRyaWdnZXJGaWxlID0gcHN0cmR1cChpdGVtLT52YWx1ZSk7Ci0JCQllcmVwb3J0KERFQlVHMiwK LQkJCQkJKGVycm1zZ19pbnRlcm5hbCgidHJpZ2dlcl9maWxlID0gJyVzJyIsCi0JCQkJCQkJCQkg VHJpZ2dlckZpbGUpKSk7Ci0JCX0KLQkJZWxzZSBpZiAoc3RyY21wKGl0ZW0tPm5hbWUsICJyZWNv dmVyeV9taW5fYXBwbHlfZGVsYXkiKSA9PSAwKQotCQl7Ci0JCQljb25zdCBjaGFyICpoaW50bXNn OworCS8qCisJICogTG9nIG1lc3NhZ2VzIGZvciByZWNvdmVyeSBwYXJhbWV0ZXJzIGF0IHNlcnZl ciBzdGFydAorCSAqLworCWVyZXBvcnQobm9ybWFsX2xvZ19sZXZlbCwKKwkJCShlcnJtc2dfaW50 ZXJuYWwoInN0YW5kYnlfbW9kZSA9ICclcyciLCAoU3RhbmRieU1vZGVSZXF1ZXN0ZWQgPyAib24i IDogIm9mZiIpKSkpOwogCi0JCQlpZiAoIXBhcnNlX2ludChpdGVtLT52YWx1ZSwgJnJlY292ZXJ5 X21pbl9hcHBseV9kZWxheSwgR1VDX1VOSVRfTVMsCi0JCQkJCQkgICAmaGludG1zZykpCi0JCQkJ ZXJlcG9ydChFUlJPUiwKLQkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJf VkFMVUUpLAotCQkJCQkJIGVycm1zZygicGFyYW1ldGVyIFwiJXNcIiByZXF1aXJlcyBhIHRlbXBv cmFsIHZhbHVlIiwKLQkJCQkJCQkJInJlY292ZXJ5X21pbl9hcHBseV9kZWxheSIpLAotCQkJCQkJ IGhpbnRtc2cgPyBlcnJoaW50KCIlcyIsIF8oaGludG1zZykpIDogMCkpOwotCQkJZXJlcG9ydChE RUJVRzIsCi0JCQkJCShlcnJtc2dfaW50ZXJuYWwoInJlY292ZXJ5X21pbl9hcHBseV9kZWxheSA9 ICclcyciLCBpdGVtLT52YWx1ZSkpKTsKLQkJfQorCWlmIChyZWNvdmVyeVJlc3RvcmVDb21tYW5k ICE9IE5VTEwpCisJCWVyZXBvcnQobm9ybWFsX2xvZ19sZXZlbCwKKwkJCQkoZXJybXNnX2ludGVy bmFsKCJyZXN0b3JlX2NvbW1hbmQgPSAnJXMnIiwgcmVjb3ZlcnlSZXN0b3JlQ29tbWFuZCkpKTsK KworCWlmIChyZWNvdmVyeUVuZENvbW1hbmQgIT0gTlVMTCkKKwkJZXJlcG9ydChub3JtYWxfbG9n X2xldmVsLAorCQkJCShlcnJtc2dfaW50ZXJuYWwoInJlY292ZXJ5X2VuZF9jb21tYW5kID0gJyVz JyIsIHJlY292ZXJ5RW5kQ29tbWFuZCkpKTsKKworCWlmIChhcmNoaXZlQ2xlYW51cENvbW1hbmQg IT0gTlVMTCkKKwkJZXJlcG9ydChub3JtYWxfbG9nX2xldmVsLAorCQkJCShlcnJtc2dfaW50ZXJu YWwoImFyY2hpdmVfY2xlYW51cF9jb21tYW5kID0gJyVzJyIsIGFyY2hpdmVDbGVhbnVwQ29tbWFu ZCkpKTsKKworCWlmIChQcmltYXJ5Q29ubkluZm8gIT0gTlVMTCkKKwkJZXJlcG9ydChub3JtYWxf bG9nX2xldmVsLAorCQkJCShlcnJtc2dfaW50ZXJuYWwoInByaW1hcnlfY29ubmluZm8gPSAnJXMn IiwgUHJpbWFyeUNvbm5JbmZvKSkpOworCisJaWYgKFByaW1hcnlTbG90TmFtZSAhPSBOVUxMKQor CQllcmVwb3J0KG5vcm1hbF9sb2dfbGV2ZWwsCisJCQkJKGVycm1zZ19pbnRlcm5hbCgicHJpbWFy eV9zbG90X25hbWUgPSAnJXMnIiwgUHJpbWFyeVNsb3ROYW1lKSkpOworCisJaWYgKHJlY292ZXJ5 X21pbl9hcHBseV9kZWxheSA+IDApCisJCWVyZXBvcnQobm9ybWFsX2xvZ19sZXZlbCwKKwkJCQko ZXJybXNnX2ludGVybmFsKCJyZWNvdmVyeV9taW5fYXBwbHlfZGVsYXkgPSAnJXUnIiwgcmVjb3Zl cnlfbWluX2FwcGx5X2RlbGF5KSkpOworCisJLyoKKwkgKiBDaGVjayBkZXRhaWxzIGZvciByZWNv dmVyeSB0YXJnZXQsIGlmIGFueQorCSAqLworCWlmIChyZWNvdmVyeVRhcmdldCA+IFJFQ09WRVJZ X1RBUkdFVF9VTlNFVCkKKwl7CisJCWVyZXBvcnQobm9ybWFsX2xvZ19sZXZlbCwKKwkJCQkoZXJy bXNnX2ludGVybmFsKCJyZWNvdmVyeV90YXJnZXRfdHlwZSA9ICclcyciLCBSZWNvdmVyeVRhcmdl dFRleHQocmVjb3ZlcnlUYXJnZXQpKSkpOworCQlpZiAocmVjb3ZlcnlUYXJnZXRWYWx1ZSAhPSBO VUxMKQorCQkJZXJlcG9ydChub3JtYWxfbG9nX2xldmVsLAorCQkJCQkoZXJybXNnX2ludGVybmFs KCJyZWNvdmVyeV90YXJnZXRfdmFsdWUgPSAnJXMnIiwgcmVjb3ZlcnlUYXJnZXRWYWx1ZSkpKTsK KwkJZXJlcG9ydChub3JtYWxfbG9nX2xldmVsLAorCQkJCShlcnJtc2dfaW50ZXJuYWwoInJlY292 ZXJ5X3RhcmdldF9pbmNsdXNpdmUgPSAnJXMnIiwgKHJlY292ZXJ5VGFyZ2V0SW5jbHVzaXZlID8g Im9uICIgOiAib2ZmIikpKSk7CisKKwkJaWYgKHJlY292ZXJ5VGFyZ2V0VGltZUxpbmVHb2FsID09 IFJFQ09WRVJZX1RBUkdFVF9USU1FTElORV9DT05UUk9MRklMRSkKKwkJCWVyZXBvcnQobm9ybWFs X2xvZ19sZXZlbCwKKwkJCQkJKGVycm1zZ19pbnRlcm5hbCgicmVjb3ZlcnlfdGFyZ2V0X3RpbWVs aW5lID0gJyV1JyAoZnJvbSBjb250cm9sZmlsZSkiLAorCQkJCQkJCQkJIHJlY292ZXJ5VGFyZ2V0 VExJKSkpOworCQllbHNlIGlmIChyZWNvdmVyeVRhcmdldFRpbWVMaW5lR29hbCA9PSBSRUNPVkVS WV9UQVJHRVRfVElNRUxJTkVfTEFURVNUKQorCQkJZXJlcG9ydChub3JtYWxfbG9nX2xldmVsLAor CQkJCQkoZXJybXNnX2ludGVybmFsKCJyZWNvdmVyeV90YXJnZXRfdGltZWxpbmUgPSAnbGF0ZXN0 JyIpKSk7CiAJCWVsc2UKLQkJCWVyZXBvcnQoRkFUQUwsCi0JCQkJCShlcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAotCQkJCQkgZXJybXNnKCJ1bnJlY29nbml6ZWQgcmVj b3ZlcnkgcGFyYW1ldGVyIFwiJXNcIiIsCi0JCQkJCQkJaXRlbS0+bmFtZSkpKTsKKwkJeworCQkJ QXNzZXJ0KHJlY292ZXJ5VGFyZ2V0VGltZUxpbmVHb2FsID09IFJFQ09WRVJZX1RBUkdFVF9USU1F TElORV9OVU1FUklDKTsKKwkJCWVyZXBvcnQobm9ybWFsX2xvZ19sZXZlbCwKKwkJCQkJKGVycm1z Z19pbnRlcm5hbCgicmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lID0gJyV1JyIsCisJCQkJCQkJCQkg cmVjb3ZlcnlUYXJnZXRUTElSZXF1ZXN0ZWQpKSk7CisJCX0KIAl9CiAKKwllcmVwb3J0KG5vcm1h bF9sb2dfbGV2ZWwsCisJCQkoZXJybXNnX2ludGVybmFsKCJyZWNvdmVyeV90YXJnZXRfYWN0aW9u ID0gJyVzJyIsIFJlY292ZXJ5VGFyZ2V0QWN0aW9uVGV4dChyZWNvdmVyeVRhcmdldEFjdGlvbikp KSk7Cit9CisKK3ZvaWQKK3ZhbGlkYXRlUmVjb3ZlcnlQYXJhbWV0ZXJzKHZvaWQpCit7CisJaWYg KCFBcmNoaXZlUmVjb3ZlcnlSZXF1ZXN0ZWQpCisJCXJldHVybjsKKworCWlmIChyZWNvdmVyeVRh cmdldCA+IFJFQ09WRVJZX1RBUkdFVF9VTlNFVCAmJgorCQlyZWNvdmVyeVRhcmdldFZhbHVlID09 IE5VTEwpCisJCWVyZXBvcnQoRkFUQUwsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BB UkFNRVRFUl9WQUxVRSksCisJCQkJIGVycm1zZygibXVzdCBzcGVjaWZ5IHJlY292ZXJ5X3Rhcmdl dF92YWx1ZSB3aGVuIHJlY292ZXJ5X3RhcmdldF90eXBlIGlzIHNldCIpKSk7CisKIAkvKgogCSAq IENoZWNrIGZvciBjb21wdWxzb3J5IHBhcmFtZXRlcnMKIAkgKi8KQEAgLTU0OTEsOCArNTQxMyw3 IEBAIHJlYWRSZWNvdmVyeUNvbW1hbmRGaWxlKHZvaWQpCiAJewogCQlpZiAoUHJpbWFyeUNvbm5J bmZvID09IE5VTEwgJiYgcmVjb3ZlcnlSZXN0b3JlQ29tbWFuZCA9PSBOVUxMKQogCQkJZXJlcG9y dChXQVJOSU5HLAotCQkJCQkoZXJybXNnKCJyZWNvdmVyeSBjb21tYW5kIGZpbGUgXCIlc1wiIHNw ZWNpZmllZCBuZWl0aGVyIHByaW1hcnlfY29ubmluZm8gbm9yIHJlc3RvcmVfY29tbWFuZCIsCi0J CQkJCQkJUkVDT1ZFUllfQ09NTUFORF9GSUxFKSwKKwkJCQkJKGVycm1zZygic3BlY2lmaWVkIG5l aXRoZXIgcHJpbWFyeV9jb25uaW5mbyBub3IgcmVzdG9yZV9jb21tYW5kIiksCiAJCQkJCSBlcnJo aW50KCJUaGUgZGF0YWJhc2Ugc2VydmVyIHdpbGwgcmVndWxhcmx5IHBvbGwgdGhlIHBnX3dhbCBz dWJkaXJlY3RvcnkgdG8gY2hlY2sgZm9yIGZpbGVzIHBsYWNlZCB0aGVyZS4iKSkpOwogCX0KIAll bHNlCkBAIC01NTAwLDggKzU0MjEsNyBAQCByZWFkUmVjb3ZlcnlDb21tYW5kRmlsZSh2b2lkKQog CQlpZiAocmVjb3ZlcnlSZXN0b3JlQ29tbWFuZCA9PSBOVUxMKQogCQkJZXJlcG9ydChGQVRBTCwK IAkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCi0JCQkJCSBl cnJtc2coInJlY292ZXJ5IGNvbW1hbmQgZmlsZSBcIiVzXCIgbXVzdCBzcGVjaWZ5IHJlc3RvcmVf Y29tbWFuZCB3aGVuIHN0YW5kYnkgbW9kZSBpcyBub3QgZW5hYmxlZCIsCi0JCQkJCQkJUkVDT1ZF UllfQ09NTUFORF9GSUxFKSkpOworCQkJCQkgZXJybXNnKCJtdXN0IHNwZWNpZnkgcmVzdG9yZV9j b21tYW5kIHdoZW4gc3RhbmRieSBtb2RlIGlzIG5vdCBlbmFibGVkIikpKTsKIAl9CiAKIAkvKgpA QCAtNTUxMCw1MCArNTQzMCw0OSBAQCByZWFkUmVjb3ZlcnlDb21tYW5kRmlsZSh2b2lkKQogCSAq IGhvdF9zdGFuZGJ5ID0gb2ZmLCB3aGljaCB3YXMgc3VycHJpc2luZyBiZWhhdmlvdXIuCiAJICov CiAJaWYgKHJlY292ZXJ5VGFyZ2V0QWN0aW9uID09IFJFQ09WRVJZX1RBUkdFVF9BQ1RJT05fUEFV U0UgJiYKLQkJcmVjb3ZlcnlUYXJnZXRBY3Rpb25TZXQgJiYKIAkJIUVuYWJsZUhvdFN0YW5kYnkp CiAJCXJlY292ZXJ5VGFyZ2V0QWN0aW9uID0gUkVDT1ZFUllfVEFSR0VUX0FDVElPTl9TSFVURE9X TjsKIAogCS8qCi0JICogV2UgZG9uJ3Qgc3VwcG9ydCBzdGFuZGJ5X21vZGUgaW4gc3RhbmRhbG9u ZSBiYWNrZW5kczsgdGhhdCByZXF1aXJlcwotCSAqIG90aGVyIHByb2Nlc3NlcyBzdWNoIGFzIHRo ZSBXQUwgcmVjZWl2ZXIgdG8gYmUgYWxpdmUuCi0JICovCi0JaWYgKFN0YW5kYnlNb2RlUmVxdWVz dGVkICYmICFJc1VuZGVyUG9zdG1hc3RlcikKLQkJZXJlcG9ydChGQVRBTCwKLQkJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJIGVycm1zZygic3RhbmRieSBt b2RlIGlzIG5vdCBzdXBwb3J0ZWQgYnkgc2luZ2xlLXVzZXIgc2VydmVycyIpKSk7Ci0KLQkvKiBF bmFibGUgZmV0Y2hpbmcgZnJvbSBhcmNoaXZlIHJlY292ZXJ5IGFyZWEgKi8KLQlBcmNoaXZlUmVj b3ZlcnlSZXF1ZXN0ZWQgPSB0cnVlOwotCi0JLyoKIAkgKiBJZiB1c2VyIHNwZWNpZmllZCByZWNv dmVyeV90YXJnZXRfdGltZWxpbmUsIHZhbGlkYXRlIGl0IG9yIGNvbXB1dGUgdGhlCiAJICogImxh dGVzdCIgdmFsdWUuICBXZSBjYW4ndCBkbyB0aGlzIHVudGlsIGFmdGVyIHdlJ3ZlIGdvdHRlbiB0 aGUgcmVzdG9yZQogCSAqIGNvbW1hbmQgYW5kIHNldCBJbkFyY2hpdmVSZWNvdmVyeSwgYmVjYXVz ZSB3ZSBuZWVkIHRvIGZldGNoIHRpbWVsaW5lCiAJICogaGlzdG9yeSBmaWxlcyBmcm9tIHRoZSBh cmNoaXZlLgogCSAqLwotCWlmIChydGxpR2l2ZW4pCisJaWYgKHJlY292ZXJ5VGFyZ2V0VGltZUxp bmVHb2FsID09IFJFQ09WRVJZX1RBUkdFVF9USU1FTElORV9OVU1FUklDKQogCXsKLQkJaWYgKHJ0 bGkpCi0JCXsKLQkJCS8qIFRpbWVsaW5lIDEgZG9lcyBub3QgaGF2ZSBhIGhpc3RvcnkgZmlsZSwg YWxsIGVsc2Ugc2hvdWxkICovCi0JCQlpZiAocnRsaSAhPSAxICYmICFleGlzdHNUaW1lTGluZUhp c3RvcnkocnRsaSkpCi0JCQkJZXJlcG9ydChGQVRBTCwKLQkJCQkJCShlcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAotCQkJCQkJIGVycm1zZygicmVjb3ZlcnkgdGFyZ2V0 IHRpbWVsaW5lICV1IGRvZXMgbm90IGV4aXN0IiwKLQkJCQkJCQkJcnRsaSkpKTsKLQkJCXJlY292 ZXJ5VGFyZ2V0VExJID0gcnRsaTsKLQkJCXJlY292ZXJ5VGFyZ2V0SXNMYXRlc3QgPSBmYWxzZTsK LQkJfQotCQllbHNlCi0JCXsKLQkJCS8qIFdlIHN0YXJ0IHRoZSAibGF0ZXN0IiBzZWFyY2ggZnJv bSBwZ19jb250cm9sJ3MgdGltZWxpbmUgKi8KLQkJCXJlY292ZXJ5VGFyZ2V0VExJID0gZmluZE5l d2VzdFRpbWVMaW5lKHJlY292ZXJ5VGFyZ2V0VExJKTsKLQkJCXJlY292ZXJ5VGFyZ2V0SXNMYXRl c3QgPSB0cnVlOwotCQl9Ci0JfQorCQlUaW1lTGluZUlECXJ0bGkgPSByZWNvdmVyeVRhcmdldFRM SVJlcXVlc3RlZDsKKworCQkvKiBUaW1lbGluZSAxIGRvZXMgbm90IGhhdmUgYSBoaXN0b3J5IGZp bGUsIGFsbCBlbHNlIHNob3VsZCAqLworCQlpZiAocnRsaSAhPSAxICYmICFleGlzdHNUaW1lTGlu ZUhpc3RvcnkocnRsaSkpCisJCQllcmVwb3J0KEZBVEFMLAorCQkJCQkoZXJyY29kZShFUlJDT0RF X0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJIGVycm1zZygicmVjb3ZlcnkgdGFyZ2V0 IHRpbWVsaW5lICV1IGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCQlydGxpKSkpOworCQlyZWNvdmVy eVRhcmdldFRMSSA9IHJ0bGk7CiAKLQlGcmVlQ29uZmlnVmFyaWFibGVzKGhlYWQpOworCQkvKgor CQkgKiBUaGUgdXNlciBoYXMgcmVxdWVzdGVkIGEgc3BlY2lmaWMgdGxpLiBUaGlzIG1pZ2h0IGJl IHRoZSBsYXRlc3QKKwkJICogdGltZWxpbmUgYnV0IHdlIGRvbid0IGtub3cgdGhhdDsgdGhlIHBv aW50IGhlcmUgaXMgdGhhdCB3ZSBkbyBub3QKKwkJICogYWxsb3cgdGhlIHJlY292ZXJ5VGFyZ2V0 VExJIHRvIGZvbGxvdyBhbnkgY2hhbmdlcy4KKwkJICovCisJCXJlY292ZXJ5VGFyZ2V0SXNMYXRl c3QgPSBmYWxzZTsKKwl9CisJZWxzZSBpZiAocmVjb3ZlcnlUYXJnZXRUaW1lTGluZUdvYWwgPT0g UkVDT1ZFUllfVEFSR0VUX1RJTUVMSU5FX0xBVEVTVCkKKwl7CisJCS8qIFdlIHN0YXJ0IHRoZSAi bGF0ZXN0IiBzZWFyY2ggZnJvbSBwZ19jb250cm9sJ3MgdGltZWxpbmUgKi8KKwkJcmVjb3ZlcnlU YXJnZXRUTEkgPSBmaW5kTmV3ZXN0VGltZUxpbmUocmVjb3ZlcnlUYXJnZXRUTEkpOworCQlyZWNv dmVyeVRhcmdldElzTGF0ZXN0ID0gdHJ1ZTsKKwl9CisJZWxzZQorCXsKKwkJLyoKKwkJICogZWxz ZSB3ZSBqdXN0IHVzZSB0aGUgcmVjb3ZlcnlUYXJnZXRUTEkgYXMgYWxyZWFkeSByZWFkIGZyb20K KwkJICogQ29udHJvbEZpbGUKKwkJICovCisJCUFzc2VydChyZWNvdmVyeVRhcmdldFRpbWVMaW5l R29hbCA9PSBSRUNPVkVSWV9UQVJHRVRfVElNRUxJTkVfQ09OVFJPTEZJTEUpOworCQlyZWNvdmVy eVRhcmdldElzTGF0ZXN0ID0gZmFsc2U7CisJfQogfQogCiAvKgpAQCAtNTY1NCwxMSArNTU3Mywy MiBAQCBleGl0QXJjaGl2ZVJlY292ZXJ5KFRpbWVMaW5lSUQgZW5kVExJLCBYTG9nUmVjUHRyIGVu ZE9mTG9nKQogCXVubGluayhyZWNvdmVyeVBhdGgpOwkJLyogaWdub3JlIGFueSBlcnJvciAqLwog CiAJLyoKLQkgKiBSZW5hbWUgdGhlIGNvbmZpZyBmaWxlIG91dCBvZiB0aGUgd2F5LCBzbyB0aGF0 IHdlIGRvbid0IGFjY2lkZW50YWxseQorCSAqIFJlbW92ZSB0aGUgc2lnbmFsIGZpbGVzIG91dCBv ZiB0aGUgd2F5LCBzbyB0aGF0IHdlIGRvbid0IGFjY2lkZW50YWxseQogCSAqIHJlLWVudGVyIGFy Y2hpdmUgcmVjb3ZlcnkgbW9kZSBpbiBhIHN1YnNlcXVlbnQgY3Jhc2guCiAJICovCi0JdW5saW5r KFJFQ09WRVJZX0NPTU1BTkRfRE9ORSk7Ci0JZHVyYWJsZV9yZW5hbWUoUkVDT1ZFUllfQ09NTUFO RF9GSUxFLCBSRUNPVkVSWV9DT01NQU5EX0RPTkUsIEZBVEFMKTsKKwlpZiAoc3RhbmRieV9zaWdu YWxfZmlsZV9mb3VuZCAmJgorCQlkdXJhYmxlX3VubGluayhTdGFuZGJ5U2lnbmFsRmlsZSwgRkFU QUwpICE9IDApCisJCWVyZXBvcnQoRkFUQUwsCisJCQkJKGVycmNvZGVfZm9yX2ZpbGVfYWNjZXNz KCksCisJCQkJIGVycm1zZygiY291bGQgbm90IHJlbW92ZSBmaWxlIFwiJXNcIjogJW0iLAorCQkJ CQkJU3RhbmRieVNpZ25hbEZpbGUpKSk7CisKKwlpZiAocmVjb3Zlcnlfc2lnbmFsX2ZpbGVfZm91 bmQgJiYKKwkJZHVyYWJsZV91bmxpbmsoUmVjb3ZlcnlTaWduYWxGaWxlLCBGQVRBTCkgIT0gMCkK KwkJZXJlcG9ydChGQVRBTCwKKwkJCQkoZXJyY29kZV9mb3JfZmlsZV9hY2Nlc3MoKSwKKwkJCQkg ZXJybXNnKCJjb3VsZCBub3QgcmVtb3ZlIGZpbGUgXCIlc1wiOiAlbSIsCisJCQkJCQlSZWNvdmVy eVNpZ25hbEZpbGUpKSk7CiAKIAllcmVwb3J0KExPRywKIAkJCShlcnJtc2coImFyY2hpdmUgcmVj b3ZlcnkgY29tcGxldGUiKSkpOwpAQCAtNjM4NCwxOCArNjMxNCw5IEBAIFN0YXJ0dXBYTE9HKHZv aWQpCiAJCXJlY292ZXJ5VGFyZ2V0VExJID0gQ29udHJvbEZpbGUtPmNoZWNrUG9pbnRDb3B5LlRo aXNUaW1lTGluZUlEOwogCiAJLyoKLQkgKiBDaGVjayBmb3IgcmVjb3ZlcnkgY29udHJvbCBmaWxl LCBhbmQgaWYgc28gc2V0IHVwIHN0YXRlIGZvciBvZmZsaW5lCi0JICogcmVjb3ZlcnkKKwkgKiBD aGVjayBmb3Igc2lnbmFsIGZpbGVzLCBhbmQgaWYgc28gc2V0IHVwIHN0YXRlIGZvciBvZmZsaW5l IHJlY292ZXJ5CiAJICovCi0JcmVhZFJlY292ZXJ5Q29tbWFuZEZpbGUoKTsKLQotCS8qCi0JICog U2F2ZSBhcmNoaXZlX2NsZWFudXBfY29tbWFuZCBpbiBzaGFyZWQgbWVtb3J5IHNvIHRoYXQgb3Ro ZXIgcHJvY2Vzc2VzCi0JICogY2FuIHNlZSBpdC4KLQkgKi8KLQlzdHJsY3B5KFhMb2dDdGwtPmFy Y2hpdmVDbGVhbnVwQ29tbWFuZCwKLQkJCWFyY2hpdmVDbGVhbnVwQ29tbWFuZCA/IGFyY2hpdmVD bGVhbnVwQ29tbWFuZCA6ICIiLAotCQkJc2l6ZW9mKFhMb2dDdGwtPmFyY2hpdmVDbGVhbnVwQ29t bWFuZCkpOworCXJlYWRSZWNvdmVyeVNpZ25hbEZpbGUoKTsKIAogCWlmIChBcmNoaXZlUmVjb3Zl cnlSZXF1ZXN0ZWQpCiAJewpAQCAtNjU3Miw3ICs2NDkzLDggQEAgU3RhcnR1cFhMT0codm9pZCkK IAkJICogVGhpcyBjYW4gaGFwcGVuIGZvciBleGFtcGxlIGlmIGEgYmFzZSBiYWNrdXAgaXMgdGFr ZW4gZnJvbSBhCiAJCSAqIHJ1bm5pbmcgc2VydmVyIHVzaW5nIGFuIGF0b21pYyBmaWxlc3lzdGVt IHNuYXBzaG90LCB3aXRob3V0IGNhbGxpbmcKIAkJICogcGdfc3RhcnQvc3RvcF9iYWNrdXAuIE9y IGlmIHlvdSBqdXN0IGtpbGwgYSBydW5uaW5nIG1hc3RlciBzZXJ2ZXIKLQkJICogYW5kIHB1dCBp dCBpbnRvIGFyY2hpdmUgcmVjb3ZlcnkgYnkgY3JlYXRpbmcgYSByZWNvdmVyeS5jb25mIGZpbGUu CisJCSAqIGFuZCBwdXQgaXQgaW50byBhcmNoaXZlIHJlY292ZXJ5IGJ5IGNyZWF0aW5nIGEgcmVj b3Zlcnkgc2lnbmFsCisJCSAqIGZpbGUuCiAJCSAqCiAJCSAqIE91ciBzdHJhdGVneSBpbiB0aGF0 IGNhc2UgaXMgdG8gcGVyZm9ybSBjcmFzaCByZWNvdmVyeSBmaXJzdCwKIAkJICogcmVwbGF5aW5n IGFsbCB0aGUgV0FMIHByZXNlbnQgaW4gcGdfd2FsLCBhbmQgb25seSBlbnRlciBhcmNoaXZlCkBA IC02Nzk3LDcgKzY3MTksNyBAQCBTdGFydHVwWExPRyh2b2lkKQogCiAJLyoKIAkgKiBDaGVjayB3 aGV0aGVyIHdlIG5lZWQgdG8gZm9yY2UgcmVjb3ZlcnkgZnJvbSBXQUwuICBJZiBpdCBhcHBlYXJz IHRvCi0JICogaGF2ZSBiZWVuIGEgY2xlYW4gc2h1dGRvd24gYW5kIHdlIGRpZCBub3QgaGF2ZSBh IHJlY292ZXJ5LmNvbmYgZmlsZSwKKwkgKiBoYXZlIGJlZW4gYSBjbGVhbiBzaHV0ZG93biBhbmQg d2UgZGlkIG5vdCBoYXZlIGEgcmVjb3Zlcnkgc2lnbmFsIGZpbGUsCiAJICogdGhlbiBhc3N1bWUg bm8gcmVjb3ZlcnkgbmVlZGVkLgogCSAqLwogCWlmIChjaGVja1BvaW50LnJlZG8gPCBSZWNQdHIp CkBAIC02ODExLDcgKzY3MzMsNyBAQCBTdGFydHVwWExPRyh2b2lkKQogCQlJblJlY292ZXJ5ID0g dHJ1ZTsKIAllbHNlIGlmIChBcmNoaXZlUmVjb3ZlcnlSZXF1ZXN0ZWQpCiAJewotCQkvKiBmb3Jj ZSByZWNvdmVyeSBkdWUgdG8gcHJlc2VuY2Ugb2YgcmVjb3ZlcnkuY29uZiAqLworCQkvKiBmb3Jj ZSByZWNvdmVyeSBkdWUgdG8gcHJlc2VuY2Ugb2YgcmVjb3Zlcnkgc2lnbmFsIGZpbGUgKi8KIAkJ SW5SZWNvdmVyeSA9IHRydWU7CiAJfQogCkBAIC03MzE1LDcgKzcyMzcsNiBAQCBTdGFydHVwWExP Ryh2b2lkKQogCQkJLyoKIAkJCSAqIGVuZCBvZiBtYWluIHJlZG8gYXBwbHkgbG9vcAogCQkJICov Ci0KIAkJCWlmIChyZWFjaGVkU3RvcFBvaW50KQogCQkJewogCQkJCWlmICghcmVhY2hlZENvbnNp c3RlbmN5KQpAQCAtOTM2Niw4ICs5Mjg3LDggQEAgQ3JlYXRlUmVzdGFydFBvaW50KGludCBmbGFn cykKIAkvKgogCSAqIEZpbmFsbHksIGV4ZWN1dGUgYXJjaGl2ZV9jbGVhbnVwX2NvbW1hbmQsIGlm IGFueS4KIAkgKi8KLQlpZiAoWExvZ0N0bC0+YXJjaGl2ZUNsZWFudXBDb21tYW5kWzBdKQotCQlF eGVjdXRlUmVjb3ZlcnlDb21tYW5kKFhMb2dDdGwtPmFyY2hpdmVDbGVhbnVwQ29tbWFuZCwKKwlp ZiAoYXJjaGl2ZUNsZWFudXBDb21tYW5kKQorCQlFeGVjdXRlUmVjb3ZlcnlDb21tYW5kKGFyY2hp dmVDbGVhbnVwQ29tbWFuZCwKIAkJCQkJCQkgICAiYXJjaGl2ZV9jbGVhbnVwX2NvbW1hbmQiLAog CQkJCQkJCSAgIGZhbHNlKTsKIApAQCAtMTE4NjAsNyArMTE3ODEsNyBAQCBXYWl0Rm9yV0FMVG9C ZWNvbWVBdmFpbGFibGUoWExvZ1JlY1B0ciBSZWNQdHIsIGJvb2wgcmFuZEFjY2VzcywKIAkJCQkJ ICogdGhhdCB3aGVuIHdlIGxhdGVyIGp1bXAgYmFja3dhcmRzIHRvIHN0YXJ0IHJlZG8gYXQKIAkJ CQkJICogUmVkb1N0YXJ0TFNOLCB3ZSB3aWxsIGhhdmUgdGhlIGxvZ3Mgc3RyZWFtZWQgYWxyZWFk eS4KIAkJCQkJICovCi0JCQkJCWlmIChQcmltYXJ5Q29ubkluZm8pCisJCQkJCWlmIChQcmltYXJ5 Q29ubkluZm8gJiYgc3RyY21wKFByaW1hcnlDb25uSW5mbywgIiIpICE9IDApCiAJCQkJCXsKIAkJ CQkJCVhMb2dSZWNQdHIJcHRyOwogCQkJCQkJVGltZUxpbmVJRAl0bGk7CkBAIC0xMjIyOSwxNCAr MTIxNTAsMTQgQEAgQ2hlY2tGb3JTdGFuZGJ5VHJpZ2dlcih2b2lkKQogCQlyZXR1cm4gdHJ1ZTsK IAl9CiAKLQlpZiAoVHJpZ2dlckZpbGUgPT0gTlVMTCkKKwlpZiAoUHJvbW90ZVNpZ25hbEZpbGUg PT0gTlVMTCkKIAkJcmV0dXJuIGZhbHNlOwogCi0JaWYgKHN0YXQoVHJpZ2dlckZpbGUsICZzdGF0 X2J1ZikgPT0gMCkKKwlpZiAoc3RhdChQcm9tb3RlU2lnbmFsRmlsZSwgJnN0YXRfYnVmKSA9PSAw KQogCXsKIAkJZXJlcG9ydChMT0csCi0JCQkJKGVycm1zZygidHJpZ2dlciBmaWxlIGZvdW5kOiAl cyIsIFRyaWdnZXJGaWxlKSkpOwotCQl1bmxpbmsoVHJpZ2dlckZpbGUpOworCQkJCShlcnJtc2co InByb21vdGUgc2lnbmFsIGZpbGUgZm91bmQ6ICVzIiwgUHJvbW90ZVNpZ25hbEZpbGUpKSk7CisJ CXVubGluayhQcm9tb3RlU2lnbmFsRmlsZSk7CiAJCXRyaWdnZXJlZCA9IHRydWU7CiAJCWZhc3Rf cHJvbW90ZSA9IHRydWU7CiAJCXJldHVybiB0cnVlOwpAQCAtMTIyNDQsOCArMTIxNjUsOCBAQCBD aGVja0ZvclN0YW5kYnlUcmlnZ2VyKHZvaWQpCiAJZWxzZSBpZiAoZXJybm8gIT0gRU5PRU5UKQog CQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlX2Zvcl9maWxlX2FjY2VzcygpLAotCQkJCSBl cnJtc2coImNvdWxkIG5vdCBzdGF0IHRyaWdnZXIgZmlsZSBcIiVzXCI6ICVtIiwKLQkJCQkJCVRy aWdnZXJGaWxlKSkpOworCQkJCSBlcnJtc2coImNvdWxkIG5vdCBzdGF0IHByb21vdGUgc2lnbmFs IGZpbGUgXCIlc1wiOiAlbSIsCisJCQkJCQlQcm9tb3RlU2lnbmFsRmlsZSkpKTsKIAogCXJldHVy biBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dh cmNoaXZlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nYXJjaGl2ZS5jCmluZGV4 IDVjNmRlNDkuLmQ5MzQwYmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L3hsb2dhcmNoaXZlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2FyY2hp dmUuYwpAQCAtNDEwLDcgKzQxMCw3IEBAIEV4ZWN1dGVSZWNvdmVyeUNvbW1hbmQoY29uc3QgY2hh ciAqY29tbWFuZCwgY29uc3QgY2hhciAqY29tbWFuZE5hbWUsIGJvb2wgZmFpbE9uCiAKIAkJZXJl cG9ydCgoc2lnbmFsZWQgJiYgZmFpbE9uU2lnbmFsKSA/IEZBVEFMIDogV0FSTklORywKIAkJLyot LS0tLS0KLQkJICAgdHJhbnNsYXRvcjogRmlyc3QgJXMgcmVwcmVzZW50cyBhIHJlY292ZXJ5LmNv bmYgcGFyYW1ldGVyIG5hbWUgbGlrZQorCQkgICB0cmFuc2xhdG9yOiBGaXJzdCAlcyByZXByZXNl bnRzIGEgcG9zdGdyZXNxbC5jb25mIHBhcmFtZXRlciBuYW1lIGxpa2UKIAkJICAicmVjb3Zlcnlf ZW5kX2NvbW1hbmQiLCB0aGUgMm5kIGlzIHRoZSB2YWx1ZSBvZiB0aGF0IHBhcmFtZXRlciwgdGhl CiAJCSAgdGhpcmQgYW4gYWxyZWFkeSB0cmFuc2xhdGVkIGVycm9yIG1lc3NhZ2UuICovCiAJCQkJ KGVycm1zZygiJXMgXCIlc1wiOiAlcyIsIGNvbW1hbmROYW1lLApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2Z1bmNzLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS94bG9nZnVuY3MuYwppbmRleCA5NzMxNzQyLi5hZmRkNjhkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nl c3MvdHJhbnNhbS94bG9nZnVuY3MuYwpAQCAtMzIxLDEwICszMjEsMTEgQEAgcGdfY3JlYXRlX3Jl c3RvcmVfcG9pbnQoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3RvcmVfbmFtZV9zdHIgPSB0ZXh0 X3RvX2NzdHJpbmcocmVzdG9yZV9uYW1lKTsKIAotCWlmIChzdHJsZW4ocmVzdG9yZV9uYW1lX3N0 cikgPj0gTUFYRk5BTUVMRU4pCisJaWYgKHN0cmxlbihyZXN0b3JlX25hbWVfc3RyKSA+PSBNQVhS RVNUT1JFUE9JTlROQU1FTEVOKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAotCQkJCSBlcnJtc2coInZhbHVlIHRvbyBsb25n IGZvciByZXN0b3JlIHBvaW50IChtYXhpbXVtICVkIGNoYXJhY3RlcnMpIiwgTUFYRk5BTUVMRU4g LSAxKSkpOworCQkJCSBlcnJtc2coInZhbHVlIHRvbyBsb25nIGZvciByZXN0b3JlIHBvaW50ICht YXhpbXVtICVkIGNoYXJhY3RlcnMpIiwKKwkJCQkJCU1BWFJFU1RPUkVQT0lOVE5BTUVMRU4gLSAx KSkpOwogCiAJcmVzdG9yZXBvaW50ID0gWExvZ1Jlc3RvcmVQb2ludChyZXN0b3JlX25hbWVfc3Ry KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXh0ZW5zaW9uLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9leHRlbnNpb24uYwppbmRleCAyZTQ1MzgxLi40Y2YzMTk2IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHRlbnNpb24uYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9leHRlbnNpb24uYwpAQCAtOSw4ICs5LDggQEAKICAqIGRlcGVuZGVudCBvYmpl Y3RzIGNhbiBiZSBhc3NvY2lhdGVkIHdpdGggaXQuICBBbiBleHRlbnNpb24gaXMgY3JlYXRlZCBi eQogICogcG9wdWxhdGluZyB0aGUgcGdfZXh0ZW5zaW9uIGNhdGFsb2cgZnJvbSBhICJjb250cm9s IiBmaWxlLgogICogVGhlIGV4dGVuc2lvbiBjb250cm9sIGZpbGUgaXMgcGFyc2VkIHdpdGggdGhl IHNhbWUgcGFyc2VyIHdlIHVzZSBmb3IKLSAqIHBvc3RncmVzcWwuY29uZiBhbmQgcmVjb3Zlcnku Y29uZi4gIEFuIGV4dGVuc2lvbiBhbHNvIGhhcyBhbiBpbnN0YWxsYXRpb24KLSAqIHNjcmlwdCBm aWxlLCBjb250YWluaW5nIFNRTCBjb21tYW5kcyB0byBjcmVhdGUgdGhlIGV4dGVuc2lvbidzIG9i amVjdHMuCisgKiBwb3N0Z3Jlc3FsLmNvbmYuICBBbiBleHRlbnNpb24gYWxzbyBoYXMgYW4gaW5z dGFsbGF0aW9uIHNjcmlwdCBmaWxlLAorICogY29udGFpbmluZyBTUUwgY29tbWFuZHMgdG8gY3Jl YXRlIHRoZSBleHRlbnNpb24ncyBvYmplY3RzLgogICoKICAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5Ni0yMDE4LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENh bGlmb3JuaWEKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvc3RhcnR1cC5jIGIv c3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9zdGFydHVwLmMKaW5kZXggMzgzMDA1Mi4uZmVjOGI0MCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9zdGFydHVwLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcG9zdG1hc3Rlci9zdGFydHVwLmMKQEAgLTE1NCw2ICsxNTQsNyBAQCBIYW5kbGVTdGFy dHVwUHJvY0ludGVycnVwdHModm9pZCkKIAl7CiAJCWdvdF9TSUdIVVAgPSBmYWxzZTsKIAkJUHJv Y2Vzc0NvbmZpZ0ZpbGUoUEdDX1NJR0hVUCk7CisJCXZhbGlkYXRlUmVjb3ZlcnlQYXJhbWV0ZXJz KCk7CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMg Yi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5jCmluZGV4IGZhM2M4YTcuLmExNzdmOWMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWMuYwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy90cmFu c2FtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3R3b3BoYXNlLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hh Y3QuaCIKKyNpbmNsdWRlICJhY2Nlc3MveGxvZy5oIgogI2luY2x1ZGUgImFjY2Vzcy94bG9nX2lu dGVybmFsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX2F1dGhpZC5oIgpAQCAtODIsNiArODMsNyBAQAogI2luY2x1ZGUgInV0aWxzL2d1Y190 YWJsZXMuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL3Bn X2xvY2FsZS5oIgorI2luY2x1ZGUgInV0aWxzL3BnX2xzbi5oIgogI2luY2x1ZGUgInV0aWxzL3Bs YW5jYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3BvcnRhbC5oIgogI2luY2x1ZGUgInV0aWxzL3Bz X3N0YXR1cy5oIgpAQCAtMTkzLDYgKzE5NSwxNSBAQCBzdGF0aWMgYm9vbCBjaGVja19jbHVzdGVy X25hbWUoY2hhciAqKm5ld3ZhbCwgdm9pZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291cmNlKTsKIHN0 YXRpYyBjb25zdCBjaGFyICpzaG93X3VuaXhfc29ja2V0X3Blcm1pc3Npb25zKHZvaWQpOwogc3Rh dGljIGNvbnN0IGNoYXIgKnNob3dfbG9nX2ZpbGVfbW9kZSh2b2lkKTsKIHN0YXRpYyBjb25zdCBj aGFyICpzaG93X2RhdGFfZGlyZWN0b3J5X21vZGUodm9pZCk7CitzdGF0aWMgYm9vbCBjaGVja19y ZWNvdmVyeV90YXJnZXRfdHlwZShjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJj ZSBzb3VyY2UpOworc3RhdGljIHZvaWQgYXNzaWduX3JlY292ZXJ5X3RhcmdldF90eXBlKGNvbnN0 IGNoYXIgKm5ld3ZhbCwgdm9pZCAqZXh0cmEpOworc3RhdGljIGJvb2wgY2hlY2tfcmVjb3Zlcnlf dGFyZ2V0X3ZhbHVlKGNoYXIgKipuZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJj ZSk7CitzdGF0aWMgdm9pZCBhc3NpZ25fcmVjb3ZlcnlfdGFyZ2V0X3ZhbHVlKGNvbnN0IGNoYXIg Km5ld3ZhbCwgdm9pZCAqZXh0cmEpOworc3RhdGljIGJvb2wgY2hlY2tfcmVjb3ZlcnlfdGFyZ2V0 X3RpbWVsaW5lKGNoYXIgKipuZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSk7 CitzdGF0aWMgdm9pZCBhc3NpZ25fcmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lKGNvbnN0IGNoYXIg Km5ld3ZhbCwgdm9pZCAqZXh0cmEpOworc3RhdGljIGJvb2wgY2hlY2tfcmVjb3ZlcnlfdGFyZ2V0 X2FjdGlvbihjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpOwor c3RhdGljIHZvaWQgYXNzaWduX3JlY292ZXJ5X3RhcmdldF9hY3Rpb24oY29uc3QgY2hhciAqbmV3 dmFsLCB2b2lkICpleHRyYSk7CitzdGF0aWMgYm9vbCBjaGVja19wcmltYXJ5X3Nsb3RfbmFtZShj aGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpOwogCiAvKiBQcml2 YXRlIGZ1bmN0aW9ucyBpbiBndWMtZmlsZS5sIHRoYXQgbmVlZCB0byBiZSBjYWxsZWQgZnJvbSBn dWMuYyAqLwogc3RhdGljIENvbmZpZ1ZhcmlhYmxlICpQcm9jZXNzQ29uZmlnRmlsZUludGVybmFs KEd1Y0NvbnRleHQgY29udGV4dCwKQEAgLTQ2OCw2ICs0NzksOCBAQCBjaGFyCSAgICpJZGVudEZp bGVOYW1lOwogY2hhcgkgICAqZXh0ZXJuYWxfcGlkX2ZpbGU7CiAKIGNoYXIJICAgKnBnc3RhdF90 ZW1wX2RpcmVjdG9yeTsKK2NoYXIJICAgKnJlY292ZXJ5X3RhcmdldF90aW1lbGluZV9zdHJpbmc7 CitjaGFyCSAgICpyZWNvdmVyeV90YXJnZXRfYWN0aW9uX3N0cmluZzsKIAogY2hhcgkgICAqYXBw bGljYXRpb25fbmFtZTsKIApAQCAtNjAxLDYgKzYxNCwxMCBAQCBjb25zdCBjaGFyICpjb25zdCBj b25maWdfZ3JvdXBfbmFtZXNbXSA9CiAJZ2V0dGV4dF9ub29wKCJXcml0ZS1BaGVhZCBMb2cgLyBD aGVja3BvaW50cyIpLAogCS8qIFdBTF9BUkNISVZJTkcgKi8KIAlnZXR0ZXh0X25vb3AoIldyaXRl LUFoZWFkIExvZyAvIEFyY2hpdmluZyIpLAorCS8qIFdBTF9BUkNISVZFX1JFQ09WRVJZICovCisJ Z2V0dGV4dF9ub29wKCJXcml0ZS1BaGVhZCBMb2cgLyBBcmNoaXZlIFJlY292ZXJ5IiksCisJLyog V0FMX1JFQ09WRVJZX1RBUkdFVCAqLworCWdldHRleHRfbm9vcCgiV3JpdGUtQWhlYWQgTG9nIC8g UmVjb3ZlcnkgVGFyZ2V0IiksCiAJLyogUkVQTElDQVRJT04gKi8KIAlnZXR0ZXh0X25vb3AoIlJl cGxpY2F0aW9uIiksCiAJLyogUkVQTElDQVRJT05fU0VORElORyAqLwpAQCAtMTYzMiw2ICsxNjQ5 LDE2IEBAIHN0YXRpYyBzdHJ1Y3QgY29uZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQog CX0sCiAKIAl7CisJCXsicmVjb3ZlcnlfdGFyZ2V0X2luY2x1c2l2ZSIsIFBHQ19QT1NUTUFTVEVS LCBXQUxfUkVDT1ZFUllfVEFSR0VULAorCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHdoZXRoZXIgdG8g aW5jbHVkZSBvciBleGNsdWRlIHRyYW5zYWN0aW9uIHdpdGggcmVjb3ZlcnkgdGFyZ2V0LiIpLAor CQkJTlVMTAorCQl9LAorCQkmcmVjb3ZlcnlUYXJnZXRJbmNsdXNpdmUsCisJCXRydWUsCisJCU5V TEwsIE5VTEwsIE5VTEwKKwl9LAorCisJewogCQl7ImhvdF9zdGFuZGJ5IiwgUEdDX1BPU1RNQVNU RVIsIFJFUExJQ0FUSU9OX1NUQU5EQlksCiAJCQlnZXR0ZXh0X25vb3AoIkFsbG93cyBjb25uZWN0 aW9ucyBhbmQgcXVlcmllcyBkdXJpbmcgcmVjb3ZlcnkuIiksCiAJCQlOVUxMCkBAIC0xOTU5LDgg KzE5ODYsMTkgQEAgc3RhdGljIHN0cnVjdCBjb25maWdfaW50IENvbmZpZ3VyZU5hbWVzSW50W10g PQogCX0sCiAKIAl7CisJCXsicmVjb3ZlcnlfbWluX2FwcGx5X2RlbGF5IiwgUEdDX1BPU1RNQVNU RVIsIFJFUExJQ0FUSU9OX1NUQU5EQlksCisJCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhlIG1pbmlt dW0gZGVsYXkgdG8gYXBwbHkgY2hhbmdlcyBkdXJpbmcgcmVjb3ZlcnkuIiksCisJCQlOVUxMLAor CQkJR1VDX1VOSVRfTVMKKwkJfSwKKwkJJnJlY292ZXJ5X21pbl9hcHBseV9kZWxheSwKKwkJMCwg MCwgSU5UX01BWCwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCisKKwl7CiAJCXsid2FsX3JlY2Vp dmVyX3N0YXR1c19pbnRlcnZhbCIsIFBHQ19TSUdIVVAsIFJFUExJQ0FUSU9OX1NUQU5EQlksCi0J CQlnZXR0ZXh0X25vb3AoIlNldHMgdGhlIG1heGltdW0gaW50ZXJ2YWwgYmV0d2VlbiBXQUwgcmVj ZWl2ZXIgc3RhdHVzIHJlcG9ydHMgdG8gdGhlIHByaW1hcnkuIiksCisJCQlnZXR0ZXh0X25vb3Ao IlNldHMgdGhlIG1heGltdW0gaW50ZXJ2YWwgYmV0d2VlbiBXQUwgcmVjZWl2ZXIgc3RhdHVzIHJl cG9ydHMgdG8gdGhlIHNlbmRpbmcgc2VydmVyLiIpLAogCQkJTlVMTCwKIAkJCUdVQ19VTklUX1MK IAkJfSwKQEAgLTE5NzEsNyArMjAwOSw3IEBAIHN0YXRpYyBzdHJ1Y3QgY29uZmlnX2ludCBDb25m aWd1cmVOYW1lc0ludFtdID0KIAogCXsKIAkJeyJ3YWxfcmVjZWl2ZXJfdGltZW91dCIsIFBHQ19T SUdIVVAsIFJFUExJQ0FUSU9OX1NUQU5EQlksCi0JCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhlIG1h eGltdW0gd2FpdCB0aW1lIHRvIHJlY2VpdmUgZGF0YSBmcm9tIHRoZSBwcmltYXJ5LiIpLAorCQkJ Z2V0dGV4dF9ub29wKCJTZXRzIHRoZSBtYXhpbXVtIHdhaXQgdGltZSB0byByZWNlaXZlIGRhdGEg ZnJvbSB0aGUgc2VuZGluZyBzZXJ2ZXIuIiksCiAJCQlOVUxMLAogCQkJR1VDX1VOSVRfTVMKIAkJ fSwKQEAgLTMyNzcsNiArMzMxNSwxMDcgQEAgc3RhdGljIHN0cnVjdCBjb25maWdfc3RyaW5nIENv bmZpZ3VyZU5hbWVzU3RyaW5nW10gPQogCX0sCiAKIAl7CisJCXsicmVzdG9yZV9jb21tYW5kIiwg UEdDX1BPU1RNQVNURVIsIFdBTF9BUkNISVZFX1JFQ09WRVJZLAorCQkJZ2V0dGV4dF9ub29wKCJT ZXRzIHRoZSBzaGVsbCBjb21tYW5kIHRoYXQgd2lsbCByZXRyaWV2ZSBhbiBhcmNoaXZlZCBXQUwg ZmlsZS4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnJlY292ZXJ5UmVzdG9yZUNvbW1hbmQsCisJCSIi LAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwKKworCXsKKwkJeyJhcmNoaXZlX2NsZWFudXBfY29t bWFuZCIsIFBHQ19QT1NUTUFTVEVSLCBXQUxfQVJDSElWRV9SRUNPVkVSWSwKKwkJCWdldHRleHRf bm9vcCgiU2V0cyB0aGUgc2hlbGwgY29tbWFuZCB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgYXQgZXZl cnkgcmVzdGFydHBvaW50LiIpLAorCQkJTlVMTAorCQl9LAorCQkmYXJjaGl2ZUNsZWFudXBDb21t YW5kLAorCQkiIiwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCisKKwl7CisJCXsicmVjb3Zlcnlf ZW5kX2NvbW1hbmQiLCBQR0NfUE9TVE1BU1RFUiwgV0FMX0FSQ0hJVkVfUkVDT1ZFUlksCisJCQln ZXR0ZXh0X25vb3AoIlNldHMgdGhlIHNoZWxsIGNvbW1hbmQgdGhhdCB3aWxsIGJlIGV4ZWN1dGVk IG9uY2Ugb25seSBhdCB0aGUgZW5kIG9mIHJlY292ZXJ5LiIpLAorCQkJTlVMTAorCQl9LAorCQkm cmVjb3ZlcnlFbmRDb21tYW5kLAorCQkiIiwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCisKKwl7 CisJCXsicmVjb3ZlcnlfdGFyZ2V0X3R5cGUiLCBQR0NfUE9TVE1BU1RFUiwgV0FMX1JFQ09WRVJZ X1RBUkdFVCwKKwkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgdHlwZSBvZiBkZXNpcmVkIHJlY292 ZXJ5IHRhcmdldC4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnJlY292ZXJ5VGFyZ2V0VHlwZVN0cmlu ZywKKwkJIiIsCisJCWNoZWNrX3JlY292ZXJ5X3RhcmdldF90eXBlLCBhc3NpZ25fcmVjb3Zlcnlf dGFyZ2V0X3R5cGUsIE5VTEwKKwl9LAorCisJeworCQl7InJlY292ZXJ5X3RhcmdldF92YWx1ZSIs IFBHQ19QT1NUTUFTVEVSLCBXQUxfUkVDT1ZFUllfVEFSR0VULAorCQkJZ2V0dGV4dF9ub29wKCJT ZXRzIHRoZSB2YWx1ZSBvZiB0aGUgcmVjb3ZlcnkgdGFyZWd0IHVwIHRvIHdoaWNoIHJlY292ZXJ5 IHdpbGwgcHJvY2VlZC4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnJlY292ZXJ5VGFyZ2V0VmFsdWUs CisJCSIiLAorCQljaGVja19yZWNvdmVyeV90YXJnZXRfdmFsdWUsIGFzc2lnbl9yZWNvdmVyeV90 YXJnZXRfdmFsdWUsIE5VTEwKKwl9LAorCisJeworCQl7InJlY292ZXJ5X3RhcmdldF90aW1lbGlu ZSIsIFBHQ19QT1NUTUFTVEVSLCBXQUxfUkVDT1ZFUllfVEFSR0VULAorCQkJZ2V0dGV4dF9ub29w KCJTZXRzIHJlY292ZXJpbmcgaW50byBhIHBhcnRpY3VsYXIgdGltZWxpbmUuIiksCisJCQlOVUxM CisJCX0sCisJCSZyZWNvdmVyeV90YXJnZXRfdGltZWxpbmVfc3RyaW5nLAorCQkiIiwKKwkJY2hl Y2tfcmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lLCBhc3NpZ25fcmVjb3ZlcnlfdGFyZ2V0X3RpbWVs aW5lLCBOVUxMCisJfSwKKworCXsKKwkJeyJyZWNvdmVyeV90YXJnZXRfYWN0aW9uIiwgUEdDX1BP U1RNQVNURVIsIFdBTF9SRUNPVkVSWV9UQVJHRVQsCisJCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhl IGFjdGlvbiB0byBwZXJmb3JtIHVwb24gcmVhY2hpbmcgdGhlIHJlY292ZXJ5IHRhcmdldC4iKSwK KwkJCU5VTEwKKwkJfSwKKwkJJnJlY292ZXJ5X3RhcmdldF9hY3Rpb25fc3RyaW5nLAorCQkiIiwK KwkJY2hlY2tfcmVjb3ZlcnlfdGFyZ2V0X2FjdGlvbiwgYXNzaWduX3JlY292ZXJ5X3RhcmdldF9h Y3Rpb24sIE5VTEwKKwl9LAorCisJeworCQl7InByb21vdGVfc2lnbmFsX2ZpbGUiLCBQR0NfUE9T VE1BU1RFUiwgUkVQTElDQVRJT05fU1RBTkRCWSwKKwkJCWdldHRleHRfbm9vcCgiU3BlY2lmaWVz IGEgZmlsZW5hbWUgd2hvc2UgcHJlc2VuY2UgZW5kcyByZWNvdmVyeSBpbiB0aGUgc3RhbmRieSIp LAorCQkJTlVMTAorCQl9LAorCQkmUHJvbW90ZVNpZ25hbEZpbGUsCisJCU5VTEwsCisJCU5VTEws IE5VTEwsIE5VTEwKKwl9LAorCisJeworCQl7InByaW1hcnlfY29ubmluZm8iLCBQR0NfUE9TVE1B U1RFUiwgUkVQTElDQVRJT05fU1RBTkRCWSwKKwkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgY29u bmVjdGlvbiBzdHJpbmcgdG8gYmUgdXNlZCB0byBjb25uZWN0IHdpdGggdGhlIHNlbmRpbmcgc2Vy dmVyLiIpLAorCQkJTlVMTCwKKwkJCUdVQ19TVVBFUlVTRVJfT05MWQorCQl9LAorCQkmUHJpbWFy eUNvbm5JbmZvLAorCQlOVUxMLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwKKworCXsKKwkJeyJw cmltYXJ5X3Nsb3RfbmFtZSIsIFBHQ19QT1NUTUFTVEVSLCBSRVBMSUNBVElPTl9TVEFOREJZLAor CQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBuYW1lIG9mIHRoZSByZXBsaWNhdGlvbiBzbG90IHRv IHVzZSBvbiB0aGUgc2VuZGluZyBzZXJ2ZXIuIiksCisJCQlOVUxMCisJCX0sCisJCSZQcmltYXJ5 U2xvdE5hbWUsCisJCSIiLAorCQljaGVja19wcmltYXJ5X3Nsb3RfbmFtZSwgTlVMTCwgTlVMTAor CX0sCisKKwl7CiAJCXsiY2xpZW50X2VuY29kaW5nIiwgUEdDX1VTRVJTRVQsIENMSUVOVF9DT05O X0xPQ0FMRSwKIAkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgY2xpZW50J3MgY2hhcmFjdGVyIHNl dCBlbmNvZGluZy4iKSwKIAkJCU5VTEwsCkBAIC0xMDc4NCw0ICsxMDkyMywzMDEgQEAgc2hvd19k YXRhX2RpcmVjdG9yeV9tb2RlKHZvaWQpCiAJcmV0dXJuIGJ1ZjsKIH0KIAorc3RhdGljIGJvb2wK K2NoZWNrX3JlY292ZXJ5X3RhcmdldF90eXBlKGNoYXIgKipuZXd2YWwsIHZvaWQgKipleHRyYSwg R3VjU291cmNlIHNvdXJjZSkKK3sKKwlSZWNvdmVyeVRhcmdldFR5cGUgKm15ZXh0cmE7CisJUmVj b3ZlcnlUYXJnZXRUeXBlIHJ0ID0gUkVDT1ZFUllfVEFSR0VUX1VOU0VUOworCisJaWYgKHN0cmNt cCgqbmV3dmFsLCAieGlkIikgPT0gMCkKKwkJcnQgPSBSRUNPVkVSWV9UQVJHRVRfWElEOworCWVs c2UgaWYgKHN0cmNtcCgqbmV3dmFsLCAidGltZXN0YW1wIikgPT0gMCkKKwkJcnQgPSBSRUNPVkVS WV9UQVJHRVRfVElNRTsKKwllbHNlIGlmIChzdHJjbXAoKm5ld3ZhbCwgIm5hbWUiKSA9PSAwKQor CQlydCA9IFJFQ09WRVJZX1RBUkdFVF9OQU1FOworCWVsc2UgaWYgKHN0cmNtcCgqbmV3dmFsLCAi bHNuIikgPT0gMCkKKwkJcnQgPSBSRUNPVkVSWV9UQVJHRVRfTFNOOworCWVsc2UgaWYgKHN0cmNt cCgqbmV3dmFsLCAiaW1tZWRpYXRlIikgPT0gMCkKKwkJcnQgPSBSRUNPVkVSWV9UQVJHRVRfSU1N RURJQVRFOworCWVsc2UgaWYgKHN0cmNtcCgqbmV3dmFsLCAiIikgIT0gMCkKKwl7CisJCUdVQ19j aGVja19lcnJkZXRhaWwoInJlY292ZXJ5X3RhcmdldF90eXBlIGlzIG5vdCB2YWxpZDogXCIlc1wi IiwgKm5ld3ZhbCk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlteWV4dHJhID0gKFJlY292ZXJ5 VGFyZ2V0VHlwZSAqKSBndWNfbWFsbG9jKEVSUk9SLCBzaXplb2YoUmVjb3ZlcnlUYXJnZXRUeXBl KSk7CisJKm15ZXh0cmEgPSBydDsKKwkqZXh0cmEgPSAodm9pZCAqKSBteWV4dHJhOworCisJcmV0 dXJuIHRydWU7Cit9CisKK3N0YXRpYyB2b2lkCithc3NpZ25fcmVjb3ZlcnlfdGFyZ2V0X3R5cGUo Y29uc3QgY2hhciAqbmV3dmFsLCB2b2lkICpleHRyYSkKK3sKKwlyZWNvdmVyeVRhcmdldCA9ICoo KFJlY292ZXJ5VGFyZ2V0VHlwZSAqKSBleHRyYSk7Cit9CisKK3N0YXRpYyBib29sCitjaGVja19y ZWNvdmVyeV90YXJnZXRfdmFsdWUoY2hhciAqKm5ld3ZhbCwgdm9pZCAqKmV4dHJhLCBHdWNTb3Vy Y2Ugc291cmNlKQoreworCWJvb2wJCXZhbGlkID0gZmFsc2U7CisKKwkvKgorCSAqIFZhbHVlIG11 c3QgYmUgcHJlc2VudCBpbiBzb21lIGNhc2VzLCBtdXN0IG5vdCBiZSBwcmVzZW50IGluIG90aGVy cworCSAqLworCWlmIChzdHJjbXAoKm5ld3ZhbCwgIiIpID09IDApCisJeworCQlpZiAocmVjb3Zl cnlUYXJnZXQgPT0gUkVDT1ZFUllfVEFSR0VUX1VOU0VUIHx8CisJCQlyZWNvdmVyeVRhcmdldCA9 PSBSRUNPVkVSWV9UQVJHRVRfSU1NRURJQVRFKQorCQkJdmFsaWQgPSB0cnVlOworCX0KKwllbHNl CisJeworCQlpZiAocmVjb3ZlcnlUYXJnZXQgPT0gUkVDT1ZFUllfVEFSR0VUX1VOU0VUIHx8CisJ CQlyZWNvdmVyeVRhcmdldCA9PSBSRUNPVkVSWV9UQVJHRVRfSU1NRURJQVRFKQorCQkJdmFsaWQg PSBmYWxzZTsKKwkJZWxzZQorCQkJdmFsaWQgPSB0cnVlOworCX0KKworCWlmICghdmFsaWQpCisJ eworCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJyZWNvdmVyeV90YXJnZXRfdmFsdWUgaXMgbm90IHZh bGlkOiBcIiVzXCIiLCAqbmV3dmFsKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCS8qCisJICog V2UgYXNzdW1lIHRoYXQgcmVjb3ZlcnlfdGFyZ2V0X3R5cGUgaGFzIGFscmVhZHkgYmVlbiBwYXJz ZWQgc2luY2UgaXQKKwkgKiBzb3J0cyBhbHBoYWJldGljYWxseSBiZWZvcmUgcmVjb3ZlcnlfdGFy Z2V0X3ZhbHVlLgorCSAqLworCXN3aXRjaCAocmVjb3ZlcnlUYXJnZXQpCisJeworCQljYXNlIFJF Q09WRVJZX1RBUkdFVF9VTlNFVDoKKwkJY2FzZSBSRUNPVkVSWV9UQVJHRVRfSU1NRURJQVRFOgor CQkJLyogTm8gdmFsdWUsIHNvIGRvIG5vdGhpbmcgKi8KKwkJCWJyZWFrOworCisJCWNhc2UgUkVD T1ZFUllfVEFSR0VUX1hJRDoKKwkJCXsKKwkJCQlUcmFuc2FjdGlvbklkIHhpZDsKKwkJCQlUcmFu c2FjdGlvbklkICpteWV4dHJhOworCisJCQkJZXJybm8gPSAwOworCQkJCXhpZCA9IChUcmFuc2Fj dGlvbklkKSBzdHJ0b3VsKCpuZXd2YWwsIE5VTEwsIDApOworCQkJCWlmIChlcnJubyA9PSBFSU5W QUwgfHwgZXJybm8gPT0gRVJBTkdFKQorCQkJCXsKKwkJCQkJR1VDX2NoZWNrX2VycmRldGFpbCgi cmVjb3ZlcnlfdGFyZ2V0X3ZhbHVlIGlzIG5vdCBhIHZhbGlkIG51bWJlcjogXCIlc1wiIiwKKwkJ CQkJCQkJCQkqbmV3dmFsKTsKKwkJCQkJcmV0dXJuIGZhbHNlOworCQkJCX0KKworCQkJCW15ZXh0 cmEgPSAoVHJhbnNhY3Rpb25JZCAqKSBndWNfbWFsbG9jKEVSUk9SLCBzaXplb2YoVHJhbnNhY3Rp b25JZCkpOworCQkJCSpteWV4dHJhID0geGlkOworCQkJCSpleHRyYSA9ICh2b2lkICopIG15ZXh0 cmE7CisJCQl9CisJCQlicmVhazsKKworCQljYXNlIFJFQ09WRVJZX1RBUkdFVF9USU1FOgorCQkJ eworCQkJCVRpbWVzdGFtcFR6IHRpbWU7CisJCQkJVGltZXN0YW1wVHogKm15ZXh0cmE7CisJCQkJ TWVtb3J5Q29udGV4dCBvbGRjb250ZXh0ID0gQ3VycmVudE1lbW9yeUNvbnRleHQ7CisKKwkJCQlQ R19UUlkoKTsKKwkJCQl7CisJCQkJCXRpbWUgPSBEYXR1bUdldFRpbWVzdGFtcFR6KERpcmVjdEZ1 bmN0aW9uQ2FsbDModGltZXN0YW1wdHpfaW4sCisJCQkJCQkJCQkJCQkJCQkJICAgQ1N0cmluZ0dl dERhdHVtKCpuZXd2YWwpLAorCQkJCQkJCQkJCQkJCQkJCSAgIE9iamVjdElkR2V0RGF0dW0oSW52 YWxpZE9pZCksCisJCQkJCQkJCQkJCQkJCQkJICAgSW50MzJHZXREYXR1bSgtMSkpKTsKKwkJCQl9 CisJCQkJUEdfQ0FUQ0goKTsKKwkJCQl7CisJCQkJCUVycm9yRGF0YSAgKmVkYXRhOworCisJCQkJ CS8qIFNhdmUgZXJyb3IgaW5mbyAqLworCQkJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29u dGV4dCk7CisJCQkJCWVkYXRhID0gQ29weUVycm9yRGF0YSgpOworCQkJCQlGbHVzaEVycm9yU3Rh dGUoKTsKKworCQkJCQkvKiBQYXNzIHRoZSBlcnJvciBtZXNzYWdlICovCisJCQkJCUdVQ19jaGVj a19lcnJkZXRhaWwoIiVzIiwgZWRhdGEtPm1lc3NhZ2UpOworCQkJCQlGcmVlRXJyb3JEYXRhKGVk YXRhKTsKKwkJCQkJcmV0dXJuIGZhbHNlOworCQkJCX0KKwkJCQlQR19FTkRfVFJZKCk7CisKKwkJ CQlteWV4dHJhID0gKFRpbWVzdGFtcFR6ICopIGd1Y19tYWxsb2MoRVJST1IsIHNpemVvZihUaW1l c3RhbXBUeikpOworCQkJCSpteWV4dHJhID0gdGltZTsKKwkJCQkqZXh0cmEgPSAodm9pZCAqKSBt eWV4dHJhOworCQkJfQorCQkJYnJlYWs7CisKKwkJY2FzZSBSRUNPVkVSWV9UQVJHRVRfTkFNRToK KwkJCS8qIFVzZSB0aGUgdmFsdWUgb2YgbmV3dmFsIGRpcmVjdGx5ICovCisJCQlpZiAoc3RybGVu KCpuZXd2YWwpID4gTUFYUkVTVE9SRVBPSU5UTkFNRUxFTikKKwkJCXsKKwkJCQlHVUNfY2hlY2tf ZXJyZGV0YWlsKCJyZWNvdmVyeV90YXJnZXRfdmFsdWUgaXMgdG9vIGxvbmcgKG1heGltdW0gJWQg Y2hhcmFjdGVycykiLAorCQkJCQkJCQkJTUFYUkVTVE9SRVBPSU5UTkFNRUxFTik7CisJCQkJcmV0 dXJuIGZhbHNlOworCQkJfQorCQkJYnJlYWs7CisKKwkJY2FzZSBSRUNPVkVSWV9UQVJHRVRfTFNO OgorCQkJeworCQkJCVhMb2dSZWNQdHIJbHNuOworCQkJCVhMb2dSZWNQdHIgKm15ZXh0cmE7CisJ CQkJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0ID0gQ3VycmVudE1lbW9yeUNvbnRleHQ7CisKKwkJ CQkvKgorCQkJCSAqIENvbnZlcnQgdGhlIExTTiBzdHJpbmcgZ2l2ZW4gYnkgdGhlIHVzZXIgdG8g WExvZ1JlY1B0cgorCQkJCSAqIGZvcm0uCisJCQkJICovCisJCQkJUEdfVFJZKCk7CisJCQkJewor CQkJCQlsc24gPQorCQkJCQkJRGF0dW1HZXRMU04oRGlyZWN0RnVuY3Rpb25DYWxsMyhwZ19sc25f aW4sCisJCQkJCQkJCQkJCQkJCUNTdHJpbmdHZXREYXR1bSgqbmV3dmFsKSwKKwkJCQkJCQkJCQkJ CQkJT2JqZWN0SWRHZXREYXR1bShJbnZhbGlkT2lkKSwKKwkJCQkJCQkJCQkJCQkJSW50MzJHZXRE YXR1bSgtMSkpKTsKKwkJCQl9CisJCQkJUEdfQ0FUQ0goKTsKKwkJCQl7CisJCQkJCUVycm9yRGF0 YSAgKmVkYXRhOworCisJCQkJCS8qIFNhdmUgZXJyb3IgaW5mbyAqLworCQkJCQlNZW1vcnlDb250 ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CisJCQkJCWVkYXRhID0gQ29weUVycm9yRGF0YSgpOwor CQkJCQlGbHVzaEVycm9yU3RhdGUoKTsKKworCQkJCQkvKiBQYXNzIHRoZSBlcnJvciBtZXNzYWdl ICovCisJCQkJCUdVQ19jaGVja19lcnJkZXRhaWwoIiVzIiwgZWRhdGEtPm1lc3NhZ2UpOworCQkJ CQlGcmVlRXJyb3JEYXRhKGVkYXRhKTsKKwkJCQkJcmV0dXJuIGZhbHNlOworCQkJCX0KKwkJCQlQ R19FTkRfVFJZKCk7CisKKwkJCQlteWV4dHJhID0gKFhMb2dSZWNQdHIgKikgZ3VjX21hbGxvYyhF UlJPUiwgc2l6ZW9mKFhMb2dSZWNQdHIpKTsKKwkJCQkqbXlleHRyYSA9IGxzbjsKKwkJCQkqZXh0 cmEgPSAodm9pZCAqKSBteWV4dHJhOworCQkJfQorCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHRy dWU7Cit9CisKK3N0YXRpYyB2b2lkCithc3NpZ25fcmVjb3ZlcnlfdGFyZ2V0X3ZhbHVlKGNvbnN0 IGNoYXIgKm5ld3ZhbCwgdm9pZCAqZXh0cmEpCit7CisJc3dpdGNoIChyZWNvdmVyeVRhcmdldCkK Kwl7CisJCWNhc2UgUkVDT1ZFUllfVEFSR0VUX1VOU0VUOgorCQljYXNlIFJFQ09WRVJZX1RBUkdF VF9JTU1FRElBVEU6CisJCQlicmVhazsKKworCQljYXNlIFJFQ09WRVJZX1RBUkdFVF9YSUQ6CisJ CQlyZWNvdmVyeVRhcmdldFhpZCA9ICooKFRyYW5zYWN0aW9uSWQgKikgZXh0cmEpOworCQkJYnJl YWs7CisKKwkJY2FzZSBSRUNPVkVSWV9UQVJHRVRfVElNRToKKwkJCXJlY292ZXJ5VGFyZ2V0VGlt ZSA9ICooKFRpbWVzdGFtcFR6ICopIGV4dHJhKTsKKwkJCWJyZWFrOworCisJCWNhc2UgUkVDT1ZF UllfVEFSR0VUX05BTUU6CisJCQlpZiAobmV3dmFsICYmICpuZXd2YWwpCisJCQkJcmVjb3ZlcnlU YXJnZXROYW1lID0gKGNoYXIgKikgbmV3dmFsOworCQkJYnJlYWs7CisKKwkJY2FzZSBSRUNPVkVS WV9UQVJHRVRfTFNOOgorCQkJcmVjb3ZlcnlUYXJnZXRMU04gPSAqKChYTG9nUmVjUHRyICopIGV4 dHJhKTsKKwkJCWJyZWFrOworCX0KK30KKworc3RhdGljIGJvb2wKK2NoZWNrX3JlY292ZXJ5X3Rh cmdldF90aW1lbGluZShjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3Vy Y2UpCit7CisJUmVjb3ZlcnlUYXJnZXRUaW1lTGluZUdvYWwgcnR0ZyA9IFJFQ09WRVJZX1RBUkdF VF9USU1FTElORV9DT05UUk9MRklMRTsKKwlSZWNvdmVyeVRhcmdldFRpbWVMaW5lR29hbCAqbXll eHRyYTsKKworCWlmIChzdHJjbXAoKm5ld3ZhbCwgImxhdGVzdCIpID09IDApCisJCXJ0dGcgPSBS RUNPVkVSWV9UQVJHRVRfVElNRUxJTkVfTEFURVNUOworCWVsc2UgaWYgKHN0cmNtcCgqbmV3dmFs LCAiY29udHJvbGZpbGUiKSA9PSAwIHx8IHN0cmNtcCgqbmV3dmFsLCAiIikgPT0gMCkKKwkJcnR0 ZyA9IFJFQ09WRVJZX1RBUkdFVF9USU1FTElORV9DT05UUk9MRklMRTsKKwllbHNlCisJeworCQll cnJubyA9IDA7CisJCS8qIG9ubHkgdmFsaWRhdGUgbnVtYmVyIGhlcmUgKi8KKwkJKHZvaWQpIHN0 cnRvdWwoKm5ld3ZhbCwgTlVMTCwgMCk7CisJCWlmIChlcnJubyA9PSBFSU5WQUwgfHwgZXJybm8g PT0gRVJBTkdFKQorCQl7CisJCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJyZWNvdmVyeV90YXJnZXRf dGltZWxpbmUgaXMgbm90IGEgdmFsaWQgbnVtYmVyOiBcIiVzXCIiLAorCQkJCQkJCQkqbmV3dmFs KTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCQlydHRnID0gUkVDT1ZFUllfVEFSR0VUX1RJTUVM SU5FX05VTUVSSUM7CisJfQorCisJbXlleHRyYSA9IChUaW1lTGluZUlEICopIGd1Y19tYWxsb2Mo RVJST1IsIHNpemVvZihUaW1lTGluZUlEKSk7CisJKm15ZXh0cmEgPSBydHRnOworCSpleHRyYSA9 ICh2b2lkICopIG15ZXh0cmE7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQKK2Fz c2lnbl9yZWNvdmVyeV90YXJnZXRfdGltZWxpbmUoY29uc3QgY2hhciAqbmV3dmFsLCB2b2lkICpl eHRyYSkKK3sKKwlyZWNvdmVyeVRhcmdldFRpbWVMaW5lR29hbCA9ICooKFRpbWVMaW5lSUQgKikg ZXh0cmEpOworCWlmIChyZWNvdmVyeVRhcmdldFRpbWVMaW5lR29hbCA9PSBSRUNPVkVSWV9UQVJH RVRfVElNRUxJTkVfTlVNRVJJQykKKwkJcmVjb3ZlcnlUYXJnZXRUTElSZXF1ZXN0ZWQgPSAoVGlt ZUxpbmVJRCkgc3RydG91bChuZXd2YWwsIE5VTEwsIDApOworCWVsc2UKKwkJcmVjb3ZlcnlUYXJn ZXRUTElSZXF1ZXN0ZWQgPSAwOworfQorCitzdGF0aWMgYm9vbAorY2hlY2tfcmVjb3ZlcnlfdGFy Z2V0X2FjdGlvbihjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2Up Cit7CisJUmVjb3ZlcnlUYXJnZXRBY3Rpb24gcnRhID0gUkVDT1ZFUllfVEFSR0VUX0FDVElPTl9Q QVVTRTsKKwlSZWNvdmVyeVRhcmdldEFjdGlvbiAqbXlleHRyYTsKKworCWlmIChzdHJjbXAoKm5l d3ZhbCwgInBhdXNlIikgPT0gMCkKKwkJcnRhID0gUkVDT1ZFUllfVEFSR0VUX0FDVElPTl9QQVVT RTsKKwllbHNlIGlmIChzdHJjbXAoKm5ld3ZhbCwgInByb21vdGUiKSA9PSAwKQorCQlydGEgPSBS RUNPVkVSWV9UQVJHRVRfQUNUSU9OX1BST01PVEU7CisJZWxzZSBpZiAoc3RyY21wKCpuZXd2YWws ICJzaHV0ZG93biIpID09IDApCisJCXJ0YSA9IFJFQ09WRVJZX1RBUkdFVF9BQ1RJT05fU0hVVERP V047CisJZWxzZSBpZiAoc3RyY21wKCpuZXd2YWwsICIiKSAhPSAwKQorCXsKKwkJR1VDX2NoZWNr X2VycmRldGFpbCgicmVjb3ZlcnlfdGFyZ2V0X2FjdGlvbiBpcyBub3QgdmFsaWQ6IFwiJXNcIiIs ICpuZXd2YWwpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJbXlleHRyYSA9IChSZWNvdmVyeVRh cmdldEFjdGlvbiAqKSBndWNfbWFsbG9jKEVSUk9SLCBzaXplb2YoUmVjb3ZlcnlUYXJnZXRBY3Rp b24pKTsKKwkqbXlleHRyYSA9IHJ0YTsKKwkqZXh0cmEgPSAodm9pZCAqKSBteWV4dHJhOworCisJ cmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyB2b2lkCithc3NpZ25fcmVjb3ZlcnlfdGFyZ2V0X2Fj dGlvbihjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4dHJhKQoreworCXJlY292ZXJ5VGFyZ2V0 QWN0aW9uID0gKigoUmVjb3ZlcnlUYXJnZXRBY3Rpb24gKikgZXh0cmEpOworfQorCitzdGF0aWMg Ym9vbAorY2hlY2tfcHJpbWFyeV9zbG90X25hbWUoY2hhciAqKm5ld3ZhbCwgdm9pZCAqKmV4dHJh LCBHdWNTb3VyY2Ugc291cmNlKQoreworCWlmIChzdHJjbXAoKm5ld3ZhbCwgIiIpICE9IDAgJiYK KwkJIVJlcGxpY2F0aW9uU2xvdFZhbGlkYXRlTmFtZSgqbmV3dmFsLCBXQVJOSU5HKSkKKwl7CisJ CUdVQ19jaGVja19lcnJkZXRhaWwoInByaW1hcnlfc2xvdF9uYW1lIGlzIG5vdCB2YWxpZDogXCIl c1wiIiwgKm5ld3ZhbCk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlyZXR1cm4gdHJ1ZTsKK30K KwogI2luY2x1ZGUgImd1Yy1maWxlLmMiCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9t aXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUKaW5kZXggZjQzMDg2Zi4uZjU5ODZkOCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQpAQCAtMjI3LDYgKzIyNywyOCBA QAogI2FyY2hpdmVfdGltZW91dCA9IDAJCSMgZm9yY2UgYSBsb2dmaWxlIHNlZ21lbnQgc3dpdGNo IGFmdGVyIHRoaXMKIAkJCQkjIG51bWJlciBvZiBzZWNvbmRzOyAwIGRpc2FibGVzCiAKKyMgLSBB cmNoaXZlIFJlY292ZXJ5IC0KKyMgVGhlc2UgYXJlIG9ubHkgdXNlZCBpbiByZWNvdmVyeSBtb2Rl CisKKyNyZXN0b3JlX2NvbW1hbmQgPSAnJwkJIyBjb21tYW5kIHRvIHVzZSB0byByZXN0b3JlIGFu IGFyY2hpdmVkIGxvZ2ZpbGUgc2VnbWVudAorCQkJCSMgcGxhY2Vob2xkZXJzOiAlcCA9IHBhdGgg b2YgZmlsZSB0byByZXN0b3JlCisJCQkJIyAgICAgICAgICAgICAgICVmID0gZmlsZSBuYW1lIG9u bHkKKwkJCQkjIGUuZy4gJ2NwIC9tbnQvc2VydmVyL2FyY2hpdmVkaXIvJWYgJXAnCisjYXJjaGl2 ZV9jbGVhbnVwX2NvbW1hbmQgPSAnJwkjIGNvbW1hbmQgdG8gZXhlY3V0ZSBhdCBldmVyeSByZXN0 YXJ0cG9pbnQKKyNyZWNvdmVyeV9lbmRfY29tbWFuZCA9ICcnCSMgY29tbWFuZCB0byBleGVjdXRl IGF0IGNvbXBsZXRpb24gb2YgcmVjb3ZlcnkKKworIyAtIFJlY292ZXJ5IFRhcmdldCAtCisKKyMg U2V0IHRoZXNlIG9ubHkgd2hlbiBwZXJmb3JtaW5nIGEgdGFyZ2V0ZWQgcmVjb3ZlcnkKKworI3Jl Y292ZXJ5X3RhcmdldF90eXBlPScnCSMgJ3hpZCcsICd0aW1lJywgJ25hbWUnLCAnbHNuJywKKwkJ CQkjIG9yICdpbW1lZGlhdGUnCisjcmVjb3ZlcnlfdGFyZ2V0X3ZhbHVlPScnCSMgdmFsdWUgaW50 ZXJwcmV0ZWQgYWNjb3JkaW5nIHRvIHR5cGUKKyNyZWNvdmVyeV90YXJnZXRfaW5jbHVzaXZlID0g b24KKyNyZWNvdmVyeV90YXJnZXRfdGltZWxpbmUgPSAnJwkjIHVuc2V0IG1lYW5zIHJlYWQgZnJv bSBjb250cm9sZmlsZSAoZGVmYXVsdCksCisJCQkJIyBvciBzZXQgdG8gJ2xhdGVzdCcgb3IgdGlt ZWxpbmUgSUQKKyNyZWNvdmVyeV90YXJnZXRfYWN0aW9uID0gJycgCSMgJ3BhdXNlJywgJ3Byb21v dGUnLCAnc2h1dGRvd24nCisKIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBSRVBMSUNBVElP TgpAQCAtMjYwLDYgKzI4Miw5IEBACiAKICMgVGhlc2Ugc2V0dGluZ3MgYXJlIGlnbm9yZWQgb24g YSBtYXN0ZXIgc2VydmVyLgogCisjcHJpbWFyeV9jb25uaW5mbyA9ICcnCQkJIyBjb25uZWN0aW9u IHN0cmluZyBvbiBzZW5kaW5nIHNlcnZlcgorI3ByaW1hcnlfc2xvdF9uYW1lID0gJycJCQkjIGNv bm5lY3Rpb24gc2xvdCBvbiBzZW5kaW5nIHNlcnZlcgorI3Byb21vdGVfc2lnbmFsX2ZpbGUgPSAn JwkJIyBmaWxlbmFtZSB3aG9zZSBwcmVzZW5jZSBlbmRzIHJlY292ZXJ5CiAjaG90X3N0YW5kYnkg PSBvbgkJCSMgIm9mZiIgZGlzYWxsb3dzIHF1ZXJpZXMgZHVyaW5nIHJlY292ZXJ5CiAJCQkJCSMg KGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQogI21heF9zdGFuZGJ5X2FyY2hpdmVfZGVsYXkgPSAz MHMJIyBtYXggZGVsYXkgYmVmb3JlIGNhbmNlbGluZyBxdWVyaWVzCmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX2FyY2hpdmVjbGVhbnVwL3BnX2FyY2hpdmVjbGVhbnVwLmMgYi9zcmMvYmluL3BnX2Fy Y2hpdmVjbGVhbnVwL3BnX2FyY2hpdmVjbGVhbnVwLmMKaW5kZXggZDAxN2Y1Ny4uODY0ODEzNyAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19hcmNoaXZlY2xlYW51cC9wZ19hcmNoaXZlY2xlYW51cC5j CisrKyBiL3NyYy9iaW4vcGdfYXJjaGl2ZWNsZWFudXAvcGdfYXJjaGl2ZWNsZWFudXAuYwpAQCAt MjY5LDcgKzI2OSw3IEBAIHVzYWdlKHZvaWQpCiAJcHJpbnRmKF8oIiAgLXggRVhUICAgICAgICAg Y2xlYW4gdXAgZmlsZXMgaWYgdGhleSBoYXZlIHRoaXMgZXh0ZW5zaW9uXG4iKSk7CiAJcHJpbnRm KF8oIiAgLT8sIC0taGVscCAgICAgc2hvdyB0aGlzIGhlbHAsIHRoZW4gZXhpdFxuIikpOwogCXBy aW50ZihfKCJcbiIKLQkJCSAiRm9yIHVzZSBhcyBhcmNoaXZlX2NsZWFudXBfY29tbWFuZCBpbiBy ZWNvdmVyeS5jb25mIHdoZW4gc3RhbmRieV9tb2RlID0gb246XG4iCisJCQkgIkZvciB1c2UgYXMg YXJjaGl2ZV9jbGVhbnVwX2NvbW1hbmQgaW4gcmVjb3Zlcnk6XG4iCiAJCQkgIiAgYXJjaGl2ZV9j bGVhbnVwX2NvbW1hbmQgPSAncGdfYXJjaGl2ZWNsZWFudXAgW09QVElPTl0uLi4gQVJDSElWRUxP Q0FUSU9OICUlcidcbiIKIAkJCSAiZS5nLlxuIgogCQkJICIgIGFyY2hpdmVfY2xlYW51cF9jb21t YW5kID0gJ3BnX2FyY2hpdmVjbGVhbnVwIC9tbnQvc2VydmVyL2FyY2hpdmVyZGlyICUlcidcbiIp KTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19iYXNlYmFja3VwLmMgYi9z cmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfYmFzZWJhY2t1cC5jCmluZGV4IGVmNGNmYzQuLjU4ZDQx MzQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19iYXNlYmFja3VwLmMKKysr IGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2Jhc2ViYWNrdXAuYwpAQCAtMTMxLDkgKzEzMSwx MiBAQCBzdGF0aWMgaW50CWhhc194bG9nZW5kcHRyID0gMDsKIHN0YXRpYyB2b2xhdGlsZSBMT05H IGhhc194bG9nZW5kcHRyID0gMDsKICNlbmRpZgogCi0vKiBDb250ZW50cyBvZiByZWNvdmVyeS5j b25mIHRvIGJlIGdlbmVyYXRlZCAqLworLyogQ29udGVudHMgb2YgY29uZmlndXJhdGlvbiBmaWxl IHRvIGJlIGdlbmVyYXRlZCAqLwogc3RhdGljIFBRRXhwQnVmZmVyIHJlY292ZXJ5Y29uZmNvbnRl bnRzID0gTlVMTDsKIAorI2RlZmluZSBQR19BVVRPQ09ORl9GSUxFTkFNRQkJInBvc3RncmVzcWwu YXV0by5jb25mIgorI2RlZmluZSBTVEFOREJZX1NJR05BTF9GSUxFIAkJInN0YW5kYnkuc2lnbmFs IgorCiAvKiBGdW5jdGlvbiBoZWFkZXJzICovCiBzdGF0aWMgdm9pZCB1c2FnZSh2b2lkKTsKIHN0 YXRpYyB2b2lkIGRpc2Nvbm5lY3RfYW5kX2V4aXQoaW50IGNvZGUpIHBnX2F0dHJpYnV0ZV9ub3Jl dHVybigpOwpAQCAtMzQ2LDcgKzM0OSw4IEBAIHVzYWdlKHZvaWQpCiAJcHJpbnRmKF8oIiAgLXIs IC0tbWF4LXJhdGU9UkFURSAgICBtYXhpbXVtIHRyYW5zZmVyIHJhdGUgdG8gdHJhbnNmZXIgZGF0 YSBkaXJlY3RvcnlcbiIKIAkJCSAiICAgICAgICAgICAgICAgICAgICAgICAgIChpbiBrQi9zLCBv ciB1c2Ugc3VmZml4IFwia1wiIG9yIFwiTVwiKVxuIikpOwogCXByaW50ZihfKCIgIC1SLCAtLXdy aXRlLXJlY292ZXJ5LWNvbmZcbiIKLQkJCSAiICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRl IHJlY292ZXJ5LmNvbmYgZm9yIHJlcGxpY2F0aW9uXG4iKSk7CisJCQkgIiAgICAgICAgICAgICAg ICAgICAgICAgICBhcHBlbmQgcmVwbGljYXRpb24gY29uZmlnIHRvICIgUEdfQVVUT0NPTkZfRklM RU5BTUUgIlxuIgorCQkJICIgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHBsYWNlICIgU1RB TkRCWV9TSUdOQUxfRklMRSAiIGZpbGVcbiIpKTsKIAlwcmludGYoXygiICAtVCwgLS10YWJsZXNw YWNlLW1hcHBpbmc9T0xERElSPU5FV0RJUlxuIgogCQkJICIgICAgICAgICAgICAgICAgICAgICAg ICAgcmVsb2NhdGUgdGFibGVzcGFjZSBpbiBPTERESVIgdG8gTkVXRElSXG4iKSk7CiAJcHJpbnRm KF8oIiAgICAgIC0td2FsZGlyPVdBTERJUiAgICBsb2NhdGlvbiBmb3IgdGhlIHdyaXRlLWFoZWFk IGxvZyBkaXJlY3RvcnlcbiIpKTsKQEAgLTk3NCw2ICs5NzgsOSBAQCBSZWNlaXZlVGFyRmlsZShQ R2Nvbm4gKmNvbm4sIFBHcmVzdWx0ICpyZXMsIGludCByb3dudW0pCiAJYm9vbAkJYmFzZXRhYmxl c3BhY2UgPSBQUWdldGlzbnVsbChyZXMsIHJvd251bSwgMCk7CiAJYm9vbAkJaW5fdGFyaGRyID0g dHJ1ZTsKIAlib29sCQlza2lwX2ZpbGUgPSBmYWxzZTsKKwlib29sCQlpc19wb3N0Z3Jlc3FsX2F1 dG9fY29uZiA9IGZhbHNlOworCWJvb2wJCWZvdW5kX3Bvc3RncmVzcWxfYXV0b19jb25mID0gZmFs c2U7CisJaW50CQkJZmlsZV9wYWRkaW5nX2xlbiA9IDA7CiAJc2l6ZV90CQl0YXJoZHJzeiA9IDA7 CiAJcGdvZmZfdAkJZmlsZXN6ID0gMDsKIApAQCAtMTExMyw4ICsxMTIwLDggQEAgUmVjZWl2ZVRh ckZpbGUoUEdjb25uICpjb25uLCBQR3Jlc3VsdCAqcmVzLCBpbnQgcm93bnVtKQogCQl7CiAJCQkv KgogCQkJICogRW5kIG9mIGNodW5rLiBJZiByZXF1ZXN0ZWQsIGFuZCB0aGlzIGlzIHRoZSBiYXNl IHRhYmxlc3BhY2UsCi0JCQkgKiB3cml0ZSByZWNvdmVyeS5jb25mIGludG8gdGhlIHRhcmZpbGUu IFdoZW4gZG9uZSwgY2xvc2UgdGhlIGZpbGUKLQkJCSAqIChidXQgbm90IHN0ZG91dCkuCisJCQkg KiB3cml0ZSBjb25maWd1cmF0aW9uIGZpbGUgaW50byB0aGUgdGFyZmlsZS4gV2hlbiBkb25lLCBj bG9zZSB0aGUKKwkJCSAqIGZpbGUgKGJ1dCBub3Qgc3Rkb3V0KS4KIAkJCSAqCiAJCQkgKiBBbHNv LCB3cml0ZSB0d28gY29tcGxldGVseSBlbXB0eSBibG9ja3MgYXQgdGhlIGVuZCBvZiB0aGUgdGFy CiAJCQkgKiBmaWxlLCBhcyByZXF1aXJlZCBieSBzb21lIHRhciBwcm9ncmFtcy4KQEAgLTExMjYs MTkgKzExMzMsMzEgQEAgUmVjZWl2ZVRhckZpbGUoUEdjb25uICpjb25uLCBQR3Jlc3VsdCAqcmVz LCBpbnQgcm93bnVtKQogCQkJaWYgKGJhc2V0YWJsZXNwYWNlICYmIHdyaXRlcmVjb3Zlcnljb25m KQogCQkJewogCQkJCWNoYXIJCWhlYWRlcls1MTJdOwotCQkJCWludAkJCXBhZGRpbmc7CiAKLQkJ CQl0YXJDcmVhdGVIZWFkZXIoaGVhZGVyLCAicmVjb3ZlcnkuY29uZiIsIE5VTEwsCi0JCQkJCQkJ CXJlY292ZXJ5Y29uZmNvbnRlbnRzLT5sZW4sCi0JCQkJCQkJCXBnX2ZpbGVfY3JlYXRlX21vZGUs IDA0MDAwLCAwMjAwMCwKLQkJCQkJCQkJdGltZShOVUxMKSk7CisJCQkJaWYgKCFmb3VuZF9wb3N0 Z3Jlc3FsX2F1dG9fY29uZikKKwkJCQl7CisJCQkJCWludAkJCXBhZGRpbmc7CiAKLQkJCQlwYWRk aW5nID0gKChyZWNvdmVyeWNvbmZjb250ZW50cy0+bGVuICsgNTExKSAmIH41MTEpIC0gcmVjb3Zl cnljb25mY29udGVudHMtPmxlbjsKKwkJCQkJdGFyQ3JlYXRlSGVhZGVyKGhlYWRlciwgUEdfQVVU T0NPTkZfRklMRU5BTUUsIE5VTEwsCisJCQkJCQkJCQlyZWNvdmVyeWNvbmZjb250ZW50cy0+bGVu LAorCQkJCQkJCQkJcGdfZmlsZV9jcmVhdGVfbW9kZSwgMDQwMDAsIDAyMDAwLAorCQkJCQkJCQkJ dGltZShOVUxMKSk7CisKKwkJCQkJcGFkZGluZyA9ICgocmVjb3Zlcnljb25mY29udGVudHMtPmxl biArIDUxMSkgJiB+NTExKSAtIHJlY292ZXJ5Y29uZmNvbnRlbnRzLT5sZW47CisKKwkJCQkJV1JJ VEVfVEFSX0RBVEEoaGVhZGVyLCBzaXplb2YoaGVhZGVyKSk7CisJCQkJCVdSSVRFX1RBUl9EQVRB KHJlY292ZXJ5Y29uZmNvbnRlbnRzLT5kYXRhLCByZWNvdmVyeWNvbmZjb250ZW50cy0+bGVuKTsK KwkJCQkJaWYgKHBhZGRpbmcpCisJCQkJCQlXUklURV9UQVJfREFUQSh6ZXJvYnVmLCBwYWRkaW5n KTsKKwkJCQl9CisKKwkJCQl0YXJDcmVhdGVIZWFkZXIoaGVhZGVyLCBTVEFOREJZX1NJR05BTF9G SUxFLCBOVUxMLAorCQkJCQkJCQkwLAkvKiB6ZXJvLWxlbmd0aCBmaWxlICovCisJCQkJCQkJCTA2 MDAsIDA0MDAwLCAwMjAwMCwKKwkJCQkJCQkJdGltZShOVUxMKSk7CiAKIAkJCQlXUklURV9UQVJf REFUQShoZWFkZXIsIHNpemVvZihoZWFkZXIpKTsKLQkJCQlXUklURV9UQVJfREFUQShyZWNvdmVy eWNvbmZjb250ZW50cy0+ZGF0YSwgcmVjb3Zlcnljb25mY29udGVudHMtPmxlbik7Ci0JCQkJaWYg KHBhZGRpbmcpCi0JCQkJCVdSSVRFX1RBUl9EQVRBKHplcm9idWYsIHBhZGRpbmcpOworCQkJCVdS SVRFX1RBUl9EQVRBKHplcm9idWYsIDUxMSk7CiAJCQl9CiAKIAkJCS8qIDIgKiA1MTIgYnl0ZXMg ZW1wdHkgZGF0YSBhdCBlbmQgb2YgZmlsZSAqLwpAQCAtMTE4Miw4ICsxMjAxLDggQEAgUmVjZWl2 ZVRhckZpbGUoUEdjb25uICpjb25uLCBQR3Jlc3VsdCAqcmVzLCBpbnQgcm93bnVtKQogCQlpZiAo IXdyaXRlcmVjb3Zlcnljb25mIHx8ICFiYXNldGFibGVzcGFjZSkKIAkJewogCQkJLyoKLQkJCSAq IFdoZW4gbm90IHdyaXRpbmcgcmVjb3ZlcnkuY29uZiwgb3Igd2hlbiBub3Qgd29ya2luZyBvbiB0 aGUgYmFzZQotCQkJICogdGFibGVzcGFjZSwgd2UgbmV2ZXIgaGF2ZSB0byBsb29rIGZvciBhbiBl eGlzdGluZyByZWNvdmVyeS5jb25mCisJCQkgKiBXaGVuIG5vdCB3cml0aW5nIGNvbmZpZyBmaWxl LCBvciB3aGVuIG5vdCB3b3JraW5nIG9uIHRoZSBiYXNlCisJCQkgKiB0YWJsZXNwYWNlLCB3ZSBu ZXZlciBoYXZlIHRvIGxvb2sgZm9yIGFuIGV4aXN0aW5nIGNvbmZpZ3VyYXRpb24KIAkJCSAqIGZp bGUgaW4gdGhlIHN0cmVhbS4KIAkJCSAqLwogCQkJV1JJVEVfVEFSX0RBVEEoY29weWJ1Ziwgcik7 CkBAIC0xMTkxLDcgKzEyMTAsNyBAQCBSZWNlaXZlVGFyRmlsZShQR2Nvbm4gKmNvbm4sIFBHcmVz dWx0ICpyZXMsIGludCByb3dudW0pCiAJCWVsc2UKIAkJewogCQkJLyoKLQkJCSAqIExvb2sgZm9y IGEgcmVjb3ZlcnkuY29uZiBpbiB0aGUgZXhpc3RpbmcgdGFyIHN0cmVhbS4gSWYgaXQncworCQkJ ICogTG9vayBmb3IgYSBjb25maWcgZmlsZSBpbiB0aGUgZXhpc3RpbmcgdGFyIHN0cmVhbS4gSWYg aXQncwogCQkJICogdGhlcmUsIHdlIG11c3Qgc2tpcCBpdCBzbyB3ZSBjYW4gbGF0ZXIgb3Zlcndy aXRlIGl0IHdpdGggb3VyCiAJCQkgKiBvd24gdmVyc2lvbiBvZiB0aGUgZmlsZS4KIAkJCSAqCkBA IC0xMjM1LDI5ICsxMjU0LDQ2IEBAIFJlY2VpdmVUYXJGaWxlKFBHY29ubiAqY29ubiwgUEdyZXN1 bHQgKnJlcywgaW50IHJvd251bSkKIAkJCQkJewogCQkJCQkJLyoKIAkJCQkJCSAqIFdlIGhhdmUg dGhlIGNvbXBsZXRlIGhlYWRlciBzdHJ1Y3R1cmUgaW4gdGFyaGRyLAotCQkJCQkJICogbG9vayBh dCB0aGUgZmlsZSBtZXRhZGF0YTogLSB0aGUgc3Vic2VxdWVudCBmaWxlCi0JCQkJCQkgKiBjb250 ZW50cyBoYXZlIHRvIGJlIHNraXBwZWQgaWYgdGhlIGZpbGVuYW1lIGlzCi0JCQkJCQkgKiByZWNv dmVyeS5jb25mIC0gZmluZCBvdXQgdGhlIHNpemUgb2YgdGhlIGZpbGUKLQkJCQkJCSAqIHBhZGRl ZCB0byB0aGUgbmV4dCBtdWx0aXBsZSBvZiA1MTIKKwkJCQkJCSAqIGxvb2sgYXQgdGhlIGZpbGUg bWV0YWRhdGE6IHdlIG1heSB3YW50IGFwcGVuZAorCQkJCQkJICogcmVjb3ZlcnkgaW5mbyBpbnRv IFBHX0FVVE9DT05GX0ZJTEVOQU1FIGFuZCBza2lwCisJCQkJCQkgKiBzdGFuZGJ5IHNpZ25hbCBm aWxlIEluIGJvdGggY2FzZXMgd2UgbXVzdCBjYWxjdWxhdGUKKwkJCQkJCSAqIHRhciBwYWRkaW5n CiAJCQkJCQkgKi8KLQkJCQkJCWludAkJCXBhZGRpbmc7Ci0KLQkJCQkJCXNraXBfZmlsZSA9IChz dHJjbXAoJnRhcmhkclswXSwgInJlY292ZXJ5LmNvbmYiKSA9PSAwKTsKKwkJCQkJCXNraXBfZmls ZSA9IChzdHJjbXAoJnRhcmhkclswXSwgU1RBTkRCWV9TSUdOQUxfRklMRSkgPT0gMCk7CisJCQkJ CQlpc19wb3N0Z3Jlc3FsX2F1dG9fY29uZiA9IChzdHJjbXAoJnRhcmhkclswXSwgUEdfQVVUT0NP TkZfRklMRU5BTUUpID09IDApOwogCiAJCQkJCQlmaWxlc3ogPSByZWFkX3Rhcl9udW1iZXIoJnRh cmhkclsxMjRdLCAxMik7CisJCQkJCQlmaWxlX3BhZGRpbmdfbGVuID0gKChmaWxlc3ogKyA1MTEp ICYgfjUxMSkgLSBmaWxlc3o7CiAKLQkJCQkJCXBhZGRpbmcgPSAoKGZpbGVzeiArIDUxMSkgJiB+ NTExKSAtIGZpbGVzejsKLQkJCQkJCWZpbGVzeiArPSBwYWRkaW5nOworCQkJCQkJaWYgKGlzX3Bv c3RncmVzcWxfYXV0b19jb25mICYmIHdyaXRlcmVjb3Zlcnljb25mKQorCQkJCQkJeworCQkJCQkJ CS8qIHJlcGxhY2UgdGFyIGhlYWRlciAqLworCQkJCQkJCWNoYXIJCWhlYWRlcls1MTJdOworCisJ CQkJCQkJdGFyQ3JlYXRlSGVhZGVyKGhlYWRlciwgUEdfQVVUT0NPTkZfRklMRU5BTUUsIE5VTEws CisJCQkJCQkJCQkJCWZpbGVzeiArIHJlY292ZXJ5Y29uZmNvbnRlbnRzLT5sZW4sCisJCQkJCQkJ CQkJCXBnX2ZpbGVfY3JlYXRlX21vZGUsIDA0MDAwLCAwMjAwMCwKKwkJCQkJCQkJCQkJdGltZShO VUxMKSk7CisKKwkJCQkJCQlXUklURV9UQVJfREFUQShoZWFkZXIsIHNpemVvZihoZWFkZXIpKTsK KwkJCQkJCX0KKwkJCQkJCWVsc2UKKwkJCQkJCXsKKwkJCQkJCQkvKiBjb3B5IHN0cmVhbSB3aXRo IHBhZGRpbmcgKi8KKwkJCQkJCQlmaWxlc3ogKz0gZmlsZV9wYWRkaW5nX2xlbjsKKworCQkJCQkJ CWlmICghc2tpcF9maWxlKQorCQkJCQkJCXsKKwkJCQkJCQkJLyoKKwkJCQkJCQkJICogSWYgd2Un cmUgbm90IHNraXBwaW5nIHRoZSBmaWxlLCB3cml0ZSB0aGUKKwkJCQkJCQkJICogdGFyIGhlYWRl ciB1bm1vZGlmaWVkLgorCQkJCQkJCQkgKi8KKwkJCQkJCQkJV1JJVEVfVEFSX0RBVEEodGFyaGRy LCA1MTIpOworCQkJCQkJCX0KKwkJCQkJCX0KIAogCQkJCQkJLyogTmV4dCBwYXJ0IGlzIHRoZSBm aWxlLCBub3QgdGhlIGhlYWRlciAqLwogCQkJCQkJaW5fdGFyaGRyID0gZmFsc2U7Ci0KLQkJCQkJ CS8qCi0JCQkJCQkgKiBJZiB3ZSdyZSBub3Qgc2tpcHBpbmcgdGhlIGZpbGUsIHdyaXRlIHRoZSB0 YXIKLQkJCQkJCSAqIGhlYWRlciB1bm1vZGlmaWVkLgotCQkJCQkJICovCi0JCQkJCQlpZiAoIXNr aXBfZmlsZSkKLQkJCQkJCQlXUklURV9UQVJfREFUQSh0YXJoZHIsIDUxMik7CiAJCQkJCX0KIAkJ CQl9CiAJCQkJZWxzZQpAQCAtMTI4MSw2ICsxMzE3LDMyIEBAIFJlY2VpdmVUYXJGaWxlKFBHY29u biAqY29ubiwgUEdyZXN1bHQgKnJlcywgaW50IHJvd251bSkKIAkJCQkJCXBvcyArPSBieXRlczJ3 cml0ZTsKIAkJCQkJCWZpbGVzeiAtPSBieXRlczJ3cml0ZTsKIAkJCQkJfQorCQkJCQllbHNlIGlm IChpc19wb3N0Z3Jlc3FsX2F1dG9fY29uZiAmJiB3cml0ZXJlY292ZXJ5Y29uZikKKwkJCQkJewor CQkJCQkJLyogYXBwZW5kIHJlY292ZXJ5IGNvbmYgdG8gUEdfQVVUT0NPTkZfRklMRU5BTUUgKi8K KwkJCQkJCWludAkJCXBhZGRpbmc7CisJCQkJCQlpbnQJCQl0YWlsc2l6ZTsKKworCQkJCQkJdGFp bHNpemUgPSAoNTEyIC0gZmlsZV9wYWRkaW5nX2xlbikgKyByZWNvdmVyeWNvbmZjb250ZW50cy0+ bGVuOworCQkJCQkJcGFkZGluZyA9ICgodGFpbHNpemUgKyA1MTEpICYgfjUxMSkgLSB0YWlsc2l6 ZTsKKworCQkJCQkJV1JJVEVfVEFSX0RBVEEocmVjb3Zlcnljb25mY29udGVudHMtPmRhdGEsIHJl Y292ZXJ5Y29uZmNvbnRlbnRzLT5sZW4pOworCisJCQkJCQlpZiAocGFkZGluZykKKwkJCQkJCXsK KwkJCQkJCQljaGFyCQl6ZXJvYnVmWzUxMl07CisKKwkJCQkJCQlNZW1TZXQoemVyb2J1ZiwgMCwg c2l6ZW9mKHplcm9idWYpKTsKKwkJCQkJCQlXUklURV9UQVJfREFUQSh6ZXJvYnVmLCBwYWRkaW5n KTsKKwkJCQkJCX0KKworCQkJCQkJLyogc2tpcCBvcmlnaW5hbCBmaWxlIHBhZGRpbmcgKi8KKwkJ CQkJCWlzX3Bvc3RncmVzcWxfYXV0b19jb25mID0gZmFsc2U7CisJCQkJCQlza2lwX2ZpbGUgPSB0 cnVlOworCQkJCQkJZmlsZXN6ICs9IGZpbGVfcGFkZGluZ19sZW47CisKKwkJCQkJCWZvdW5kX3Bv c3RncmVzcWxfYXV0b19jb25mID0gdHJ1ZTsKKwkJCQkJfQogCQkJCQllbHNlCiAJCQkJCXsKIAkJ CQkJCS8qCkBAIC0xMjg5LDYgKzEzNTEsNyBAQCBSZWNlaXZlVGFyRmlsZShQR2Nvbm4gKmNvbm4s IFBHcmVzdWx0ICpyZXMsIGludCByb3dudW0pCiAJCQkJCQkgKi8KIAkJCQkJCWluX3RhcmhkciA9 IHRydWU7CiAJCQkJCQlza2lwX2ZpbGUgPSBmYWxzZTsKKwkJCQkJCWlzX3Bvc3RncmVzcWxfYXV0 b19jb25mID0gZmFsc2U7CiAJCQkJCQl0YXJoZHJzeiA9IDA7CiAJCQkJCQlmaWxlc3ogPSAwOwog CQkJCQl9CkBAIC0xNjE0LDcgKzE2NzcsNyBAQCBlc2NhcGVfcXVvdGVzKGNvbnN0IGNoYXIgKnNy YykKIH0KIAogLyoKLSAqIENyZWF0ZSBhIHJlY292ZXJ5LmNvbmYgZmlsZSBpbiBtZW1vcnkgdXNp bmcgYSBQUUV4cEJ1ZmZlcgorICogQ3JlYXRlIGEgY29uZmlndXJhdGlvbiBmaWxlIGluIG1lbW9y eSB1c2luZyBhIFBRRXhwQnVmZmVyCiAgKi8KIHN0YXRpYyB2b2lkCiBHZW5lcmF0ZVJlY292ZXJ5 Q29uZihQR2Nvbm4gKmNvbm4pCkBAIC0xNjM4LDggKzE3MDEsNiBAQCBHZW5lcmF0ZVJlY292ZXJ5 Q29uZihQR2Nvbm4gKmNvbm4pCiAJCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CiAJfQogCi0JYXBw ZW5kUFFFeHBCdWZmZXJTdHIocmVjb3Zlcnljb25mY29udGVudHMsICJzdGFuZGJ5X21vZGUgPSAn b24nXG4iKTsKLQogCWluaXRQUUV4cEJ1ZmZlcigmY29ubmluZm9fYnVmKTsKIAlmb3IgKG9wdGlv biA9IGNvbm5PcHRpb25zOyBvcHRpb24gJiYgb3B0aW9uLT5rZXl3b3JkOyBvcHRpb24rKykKIAl7 CkBAIC0xNjk4LDggKzE3NTksOSBAQCBHZW5lcmF0ZVJlY292ZXJ5Q29uZihQR2Nvbm4gKmNvbm4p CiAKIAogLyoKLSAqIFdyaXRlIGEgcmVjb3ZlcnkuY29uZiBmaWxlIGludG8gdGhlIGRpcmVjdG9y eSBzcGVjaWZpZWQgaW4gYmFzZWRpciwKKyAqIFdyaXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUg aW50byB0aGUgZGlyZWN0b3J5IHNwZWNpZmllZCBpbiBiYXNlZGlyLAogICogd2l0aCB0aGUgY29u dGVudHMgYWxyZWFkeSBjb2xsZWN0ZWQgaW4gbWVtb3J5LgorICogVGhlbiB3cml0ZSB0aGUgc2ln bmFsIGZpbGUgaW50byB0aGUgYmFzZWRpciBhbHNvLgogICovCiBzdGF0aWMgdm9pZAogV3JpdGVS ZWNvdmVyeUNvbmYodm9pZCkKQEAgLTE3MDcsOSArMTc2OSw5IEBAIFdyaXRlUmVjb3ZlcnlDb25m KHZvaWQpCiAJY2hhcgkJZmlsZW5hbWVbTUFYUEdQQVRIXTsKIAlGSUxFCSAgICpjZjsKIAotCXNw cmludGYoZmlsZW5hbWUsICIlcy9yZWNvdmVyeS5jb25mIiwgYmFzZWRpcik7CisJc25wcmludGYo ZmlsZW5hbWUsIE1BWFBHUEFUSCwgIiVzLyVzIiwgYmFzZWRpciwgUEdfQVVUT0NPTkZfRklMRU5B TUUpOwogCi0JY2YgPSBmb3BlbihmaWxlbmFtZSwgInciKTsKKwljZiA9IGZvcGVuKGZpbGVuYW1l LCAiYSIpOwogCWlmIChjZiA9PSBOVUxMKQogCXsKIAkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBj b3VsZCBub3QgY3JlYXRlIGZpbGUgXCIlc1wiOiAlc1xuIiksIHByb2duYW1lLCBmaWxlbmFtZSwg c3RyZXJyb3IoZXJybm8pKTsKQEAgLTE3MjUsNiArMTc4NywxNiBAQCBXcml0ZVJlY292ZXJ5Q29u Zih2b2lkKQogCX0KIAogCWZjbG9zZShjZik7CisKKwlzbnByaW50ZihmaWxlbmFtZSwgTUFYUEdQ QVRILCAiJXMvJXMiLCBiYXNlZGlyLCBTVEFOREJZX1NJR05BTF9GSUxFKTsKKwljZiA9IGZvcGVu KGZpbGVuYW1lLCAidyIpOworCWlmIChjZiA9PSBOVUxMKQorCXsKKwkJZnByaW50ZihzdGRlcnIs IF8oIiVzOiBjb3VsZCBub3QgY3JlYXRlIGZpbGUgXCIlc1wiOiAlc1xuIiksIHByb2duYW1lLCBm aWxlbmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKKwkJZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKKwl9 CisKKwlmY2xvc2UoY2YpOwogfQogCiAKQEAgLTE3ODAsNyArMTg1Miw3IEBAIEJhc2VCYWNrdXAo dm9pZCkKIAl9CiAKIAkvKgotCSAqIEJ1aWxkIGNvbnRlbnRzIG9mIHJlY292ZXJ5LmNvbmYgaWYg cmVxdWVzdGVkCisJICogQnVpbGQgY29udGVudHMgb2YgY29uZmlndXJhdGlvbiBmaWxlIGlmIHJl cXVlc3RlZAogCSAqLwogCWlmICh3cml0ZXJlY292ZXJ5Y29uZikKIAkJR2VuZXJhdGVSZWNvdmVy eUNvbmYoY29ubik7CkBAIC0yMDk0LDcgKzIxNjYsNyBAQCBCYXNlQmFja3VwKHZvaWQpCiAjZW5k aWYKIAl9CiAKLQkvKiBGcmVlIHRoZSByZWNvdmVyeS5jb25mIGNvbnRlbnRzICovCisJLyogRnJl ZSB0aGUgY29uZmlndXJhdGlvbiBmaWxlIGNvbnRlbnRzICovCiAJZGVzdHJveVBRRXhwQnVmZmVy KHJlY292ZXJ5Y29uZmNvbnRlbnRzKTsKIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jh c2ViYWNrdXAvdC8wMTBfcGdfYmFzZWJhY2t1cC5wbCBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC90 LzAxMF9wZ19iYXNlYmFja3VwLnBsCmluZGV4IGFhYjJlMWUuLjVmODUxMDkgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfYmFzZWJhY2t1cC90LzAxMF9wZ19iYXNlYmFja3VwLnBsCisrKyBiL3NyYy9i aW4vcGdfYmFzZWJhY2t1cC90LzAxMF9wZ19iYXNlYmFja3VwLnBsCkBAIC0zNTgsMTkgKzM1OCwx NiBAQCBTS0lQOgogCiAkbm9kZS0+Y29tbWFuZF9vayhbICdwZ19iYXNlYmFja3VwJywgJy1EJywg IiR0ZW1wZGlyL2JhY2t1cFIiLCAnLVInIF0sCiAJJ3BnX2Jhc2ViYWNrdXAgLVIgcnVucycpOwot b2soLWYgIiR0ZW1wZGlyL2JhY2t1cFIvcmVjb3ZlcnkuY29uZiIsICdyZWNvdmVyeS5jb25mIHdh cyBjcmVhdGVkJyk7Ci1teSAkcmVjb3ZlcnlfY29uZiA9IHNsdXJwX2ZpbGUgIiR0ZW1wZGlyL2Jh Y2t1cFIvcmVjb3ZlcnkuY29uZiI7CitvaygtZiAiJHRlbXBkaXIvYmFja3VwUi9wb3N0Z3Jlc3Fs LmF1dG8uY29uZiIsICdwb3N0Z3Jlc3FsLmF1dG8uY29uZiBwcmVzZW50Jyk7CitvaygtZiAiJHRl bXBkaXIvYmFja3VwUi9zdGFuZGJ5LnNpZ25hbCIsICdzdGFuZGJ5IG1vZGUgaXMgY29uZmlndXJl ZCcpOworbXkgJHJlY292ZXJ5X2NvbmYgPSBzbHVycF9maWxlICIkdGVtcGRpci9iYWNrdXBSL3Bv c3RncmVzcWwuYXV0by5jb25mIjsKIHJtdHJlZSgiJHRlbXBkaXIvYmFja3VwUiIpOwogCiBteSAk cG9ydCA9ICRub2RlLT5wb3J0OwogbGlrZSgKIAkkcmVjb3ZlcnlfY29uZiwKLQlxci9ec3RhbmRi eV9tb2RlID0gJ29uJ1xuL20sCi0JJ3JlY292ZXJ5LmNvbmYgc2V0cyBzdGFuZGJ5X21vZGUnKTsK LWxpa2UoCi0JJHJlY292ZXJ5X2NvbmYsCiAJcXIvXnByaW1hcnlfY29ubmluZm8gPSAnLipwb3J0 PSRwb3J0LionXG4vbSwKLQkncmVjb3ZlcnkuY29uZiBzZXRzIHByaW1hcnlfY29ubmluZm8nKTsK KwkncG9zdGdyZXNxbC5hdXRvLmNvbmYgc2V0cyBwcmltYXJ5X2Nvbm5pbmZvJyk7CiAKICRub2Rl LT5jb21tYW5kX29rKAogCVsgJ3BnX2Jhc2ViYWNrdXAnLCAnLUQnLCAiJHRlbXBkaXIvYmFja3Vw eGQiIF0sCkBAIC00NzgsOSArNDc1LDkgQEAgJG5vZGUtPmNvbW1hbmRfb2soCiAJXSwKIAkncGdf YmFzZWJhY2t1cCB3aXRoIHJlcGxpY2F0aW9uIHNsb3QgYW5kIC1SIHJ1bnMnKTsKIGxpa2UoCi0J c2x1cnBfZmlsZSgiJHRlbXBkaXIvYmFja3VweHNfc2xfUi9yZWNvdmVyeS5jb25mIiksCisJc2x1 cnBfZmlsZSgiJHRlbXBkaXIvYmFja3VweHNfc2xfUi9wb3N0Z3Jlc3FsLmF1dG8uY29uZiIpLAog CXFyL15wcmltYXJ5X3Nsb3RfbmFtZSA9ICdzbG90MSdcbi9tLAotCSdyZWNvdmVyeS5jb25mIHNl dHMgcHJpbWFyeV9zbG90X25hbWUnKTsKKwkncmVjb3ZlcnkgY29uZiBmaWxlIHNldHMgcHJpbWFy eV9zbG90X25hbWUnKTsKIAogbXkgJGNoZWNrc3VtID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAnU0hPVyBkYXRhX2NoZWNrc3VtczsnKTsKIGlzKCRjaGVja3N1bSwgJ29uJywgJ2NoZWNr c3VtcyBhcmUgZW5hYmxlZCcpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19jdGwvcGdfY3RsLmMg Yi9zcmMvYmluL3BnX2N0bC9wZ19jdGwuYwppbmRleCBlZDIzOTZhLi4yZmViYmQyIDEwMDY0NAot LS0gYS9zcmMvYmluL3BnX2N0bC9wZ19jdGwuYworKysgYi9zcmMvYmluL3BnX2N0bC9wZ19jdGwu YwpAQCAtMTExMiw3ICsxMTEyLDcgQEAgZG9fcHJvbW90ZSh2b2lkKQogCSAqIGNoZWNrcG9pbnQg aXMgc3RpbGwgcG9zc2libGUgYnkgd3JpdGluZyBhIGZpbGUgY2FsbGVkCiAJICogImZhbGxiYWNr X3Byb21vdGUiIGluc3RlYWQgb2YgInByb21vdGUiCiAJICovCi0Jc25wcmludGYocHJvbW90ZV9m aWxlLCBNQVhQR1BBVEgsICIlcy9wcm9tb3RlIiwgcGdfZGF0YSk7CisJc25wcmludGYocHJvbW90 ZV9maWxlLCBNQVhQR1BBVEgsICIlcy9wcm9tb3RlLnNpZ25hbCIsIHBnX2RhdGEpOwogCiAJaWYg KChwcm1maWxlID0gZm9wZW4ocHJvbW90ZV9maWxlLCAidyIpKSA9PSBOVUxMKQogCXsKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfcmV3aW5kL1Jld2luZFRlc3QucG0gYi9zcmMvYmluL3BnX3Jld2lu ZC9SZXdpbmRUZXN0LnBtCmluZGV4IDYwYjU0MTEuLjhmMDE0ZTUgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfcmV3aW5kL1Jld2luZFRlc3QucG0KKysrIGIvc3JjL2Jpbi9wZ19yZXdpbmQvUmV3aW5k VGVzdC5wbQpAQCAtMTU3LDEyICsxNTcsMTMgQEAgc3ViIGNyZWF0ZV9zdGFuZGJ5CiAJbXkgJGNv bm5zdHJfbWFzdGVyID0gJG5vZGVfbWFzdGVyLT5jb25uc3RyKCk7CiAKIAkkbm9kZV9zdGFuZGJ5 LT5hcHBlbmRfY29uZigKLQkJInJlY292ZXJ5LmNvbmYiLCBxcSgKKwkJInBvc3RncmVzcWwuY29u ZiIsIHFxKAogcHJpbWFyeV9jb25uaW5mbz0nJGNvbm5zdHJfbWFzdGVyIGFwcGxpY2F0aW9uX25h bWU9cmV3aW5kX3N0YW5kYnknCi1zdGFuZGJ5X21vZGU9b24KIHJlY292ZXJ5X3RhcmdldF90aW1l bGluZT0nbGF0ZXN0JwogKSk7CiAKKwkkbm9kZV9zdGFuZGJ5LT5yZXF1ZXN0X3N0YW5kYnlfbW9k ZSgpOworCiAJIyBTdGFydCBzdGFuZGJ5CiAJJG5vZGVfc3RhbmRieS0+c3RhcnQ7CiAKQEAgLTI2 NiwxMiArMjY3LDEzIEBAIHN1YiBydW5fcGdfcmV3aW5kCiAJIyBQbHVnLWluIHJld291bmQgbm9k ZSB0byB0aGUgbm93LXByb21vdGVkIHN0YW5kYnkgbm9kZQogCW15ICRwb3J0X3N0YW5kYnkgPSAk bm9kZV9zdGFuZGJ5LT5wb3J0OwogCSRub2RlX21hc3Rlci0+YXBwZW5kX2NvbmYoCi0JCSdyZWNv dmVyeS5jb25mJywgcXEoCisJCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcSgKIHByaW1hcnlfY29ubmlu Zm89J3BvcnQ9JHBvcnRfc3RhbmRieScKLXN0YW5kYnlfbW9kZT1vbgogcmVjb3ZlcnlfdGFyZ2V0 X3RpbWVsaW5lPSdsYXRlc3QnCiApKTsKIAorCSRub2RlX21hc3Rlci0+cmVxdWVzdF9zdGFuZGJ5 X21vZGUoKTsKKwogCSMgUmVzdGFydCB0aGUgbWFzdGVyIHRvIGNoZWNrIHRoYXQgcmV3aW5kIHdl bnQgY29ycmVjdGx5CiAJJG5vZGVfbWFzdGVyLT5zdGFydDsKIApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL3hsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgKaW5kZXggNDIx YmE2ZC4uZTVjNWU4MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaAorKysg Yi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCkBAIC04Nyw2ICs4Nyw0MiBAQCB0eXBlZGVmIGVu dW0KIAlSRUNPVkVSWV9UQVJHRVRfSU1NRURJQVRFCiB9IFJlY292ZXJ5VGFyZ2V0VHlwZTsKIAor I2RlZmluZSBSZWNvdmVyeVRhcmdldFRleHQodCkgKCBcCisJdCA9PSBSRUNPVkVSWV9UQVJHRVRf VU5TRVQgPyAidW5zZXQiIDogKCBcCisJdCA9PSBSRUNPVkVSWV9UQVJHRVRfWElEICAgPyAieGlk IiA6ICggXAorCXQgPT0gUkVDT1ZFUllfVEFSR0VUX1RJTUUgID8gInRpbWVzdGFtcCIgOiAoIFwK Kwl0ID09IFJFQ09WRVJZX1RBUkdFVF9OQU1FICA/ICJuYW1lIiA6ICggXAorCXQgPT0gUkVDT1ZF UllfVEFSR0VUX0xTTiAgID8gImxzbiIgOiAoIFwKKwl0ID09IFJFQ09WRVJZX1RBUkdFVF9JTU1F RElBVEUgPyAiaW1tZWRpYXRlIiA6IFwKKwkJCQkJIm5vbmUiICkpKSkpKQorCisvKgorICogUmVj b3ZlcnkgdGFyZ2V0IGFjdGlvbi4KKyAqLwordHlwZWRlZiBlbnVtCit7CisJUkVDT1ZFUllfVEFS R0VUX0FDVElPTl9QQVVTRSwKKwlSRUNPVkVSWV9UQVJHRVRfQUNUSU9OX1BST01PVEUsCisJUkVD T1ZFUllfVEFSR0VUX0FDVElPTl9TSFVURE9XTgorfSBSZWNvdmVyeVRhcmdldEFjdGlvbjsKKwor I2RlZmluZSBSZWNvdmVyeVRhcmdldEFjdGlvblRleHQodCkgKCBcCisJdCA9PSBSRUNPVkVSWV9U QVJHRVRfQUNUSU9OX1BBVVNFICAgPyAicGF1c2UiIDogKCBcCisJdCA9PSBSRUNPVkVSWV9UQVJH RVRfQUNUSU9OX1BST01PVEUgPyAicHJvbW90ZSIgOiAoIFwKKwkJCQkJCSJzaHV0ZG93biIgKSkp CisvKgorICogUmVjb3ZlcnkgdGFyZ2V0IFRpbWVMaW5lIGdvYWwKKyAqLwordHlwZWRlZiBlbnVt Cit7CisJUkVDT1ZFUllfVEFSR0VUX1RJTUVMSU5FX0NPTlRST0xGSUxFLAorCVJFQ09WRVJZX1RB UkdFVF9USU1FTElORV9MQVRFU1QsCisJUkVDT1ZFUllfVEFSR0VUX1RJTUVMSU5FX05VTUVSSUMK K30JCQlSZWNvdmVyeVRhcmdldFRpbWVMaW5lR29hbDsKKworLyogTWF4IGxlbmd0aCBvZiBuYW1l ZCByZXN0b3JlIHBvaW50cyAqLworI2RlZmluZSBNQVhSRVNUT1JFUE9JTlROQU1FTEVOIDY0CisK IGV4dGVybiBYTG9nUmVjUHRyIFByb2NMYXN0UmVjUHRyOwogZXh0ZXJuIFhMb2dSZWNQdHIgWGFj dExhc3RSZWNFbmQ7CiBleHRlcm4gUEdETExJTVBPUlQgWExvZ1JlY1B0ciBYYWN0TGFzdENvbW1p dEVuZDsKQEAgLTExMiw2ICsxNDgsMzYgQEAgZXh0ZXJuIGJvb2wgbG9nX2NoZWNrcG9pbnRzOwog CiBleHRlcm4gaW50CUNoZWNrUG9pbnRTZWdtZW50czsKIAorLyogb3B0aW9ucyBwcmV2aW91c2x5 IHRha2VuIGZyb20gcmVjb3ZlcnkuY29uZiBmb3IgYXJjaGl2ZSByZWNvdmVyeSAqLworZXh0ZXJu IGNoYXIgKnJlY292ZXJ5UmVzdG9yZUNvbW1hbmQ7CitleHRlcm4gY2hhciAqcmVjb3ZlcnlFbmRD b21tYW5kOworZXh0ZXJuIGNoYXIgKmFyY2hpdmVDbGVhbnVwQ29tbWFuZDsKK2V4dGVybiBjaGFy ICpyZWNvdmVyeVRhcmdldFR5cGVTdHJpbmc7CitleHRlcm4gUmVjb3ZlcnlUYXJnZXRUeXBlIHJl Y292ZXJ5VGFyZ2V0OworZXh0ZXJuIGNoYXIgKnJlY292ZXJ5VGFyZ2V0VmFsdWU7CitleHRlcm4g Ym9vbCByZWNvdmVyeVRhcmdldEluY2x1c2l2ZTsKK2V4dGVybiBSZWNvdmVyeVRhcmdldEFjdGlv biByZWNvdmVyeVRhcmdldEFjdGlvbjsKK2V4dGVybiBUcmFuc2FjdGlvbklkIHJlY292ZXJ5VGFy Z2V0WGlkOworZXh0ZXJuIFRpbWVzdGFtcFR6IHJlY292ZXJ5VGFyZ2V0VGltZTsKK2V4dGVybiBj aGFyICpyZWNvdmVyeVRhcmdldE5hbWU7CitleHRlcm4gWExvZ1JlY1B0ciByZWNvdmVyeVRhcmdl dExTTjsKK2V4dGVybiBpbnQJcmVjb3ZlcnlfbWluX2FwcGx5X2RlbGF5OworCisvKiBvcHRpb24g c2V0IGxvY2FsbHkgaW4gU3RhcnR1cCBwcm9jZXNzIG9ubHkgd2hlbiBzaWduYWwgZmlsZXMgZXhp c3QgKi8KK2V4dGVybiBib29sIFN0YW5kYnlNb2RlUmVxdWVzdGVkOworZXh0ZXJuIGJvb2wgU3Rh bmRieU1vZGU7CisKKy8qIG9wdGlvbnMgZm9yIFdBTHJlY2VpdmVyLmMgKi8KK2V4dGVybiBjaGFy ICpQcmltYXJ5Q29ubkluZm87CitleHRlcm4gY2hhciAqUHJpbWFyeVNsb3ROYW1lOworCitleHRl cm4gY2hhciAqUHJvbW90ZVNpZ25hbEZpbGU7CisKK2V4dGVybiBjaGFyICpyZWNvdmVyeVRhcmdl dFRMSVN0cmluZzsKK2V4dGVybiBSZWNvdmVyeVRhcmdldFRpbWVMaW5lR29hbCByZWNvdmVyeVRh cmdldFRpbWVMaW5lR29hbDsKK2V4dGVybiBUaW1lTGluZUlEIHJlY292ZXJ5VGFyZ2V0VExJUmVx dWVzdGVkOworZXh0ZXJuIFRpbWVMaW5lSUQgcmVjb3ZlcnlUYXJnZXRUTEk7CisKIC8qIEFyY2hp dmUgbW9kZXMgKi8KIHR5cGVkZWYgZW51bSBBcmNoaXZlTW9kZQogewpAQCAtMjQwLDYgKzMwNiw4 IEBAIGV4dGVybiBjb25zdCBjaGFyICp4bG9nX2lkZW50aWZ5KHVpbnQ4IGluZm8pOwogCiBleHRl cm4gdm9pZCBpc3N1ZV94bG9nX2ZzeW5jKGludCBmZCwgWExvZ1NlZ05vIHNlZ25vKTsKIAorZXh0 ZXJuIHZvaWQgbG9nUmVjb3ZlcnlQYXJhbWV0ZXJzKHZvaWQpOworZXh0ZXJuIHZvaWQgdmFsaWRh dGVSZWNvdmVyeVBhcmFtZXRlcnModm9pZCk7CiBleHRlcm4gYm9vbCBSZWNvdmVyeUluUHJvZ3Jl c3Modm9pZCk7CiBleHRlcm4gYm9vbCBIb3RTdGFuZGJ5QWN0aXZlKHZvaWQpOwogZXh0ZXJuIGJv b2wgSG90U3RhbmRieUFjdGl2ZUluUmVwbGF5KHZvaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvYWNjZXNzL3hsb2dfaW50ZXJuYWwuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nX2ludGVy bmFsLmgKaW5kZXggN2M3NjY4My4uMDA5ZjZjZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNj ZXNzL3hsb2dfaW50ZXJuYWwuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ19pbnRlcm5h bC5oCkBAIC0yNjAsMTYgKzI2MCw2IEBAIHR5cGVkZWYgc3RydWN0IFhMb2dSZWNEYXRhCiB9IFhM b2dSZWNEYXRhOwogCiAvKgotICogUmVjb3ZlcnkgdGFyZ2V0IGFjdGlvbi4KLSAqLwotdHlwZWRl ZiBlbnVtCi17Ci0JUkVDT1ZFUllfVEFSR0VUX0FDVElPTl9QQVVTRSwKLQlSRUNPVkVSWV9UQVJH RVRfQUNUSU9OX1BST01PVEUsCi0JUkVDT1ZFUllfVEFSR0VUX0FDVElPTl9TSFVURE9XTgotfSBS ZWNvdmVyeVRhcmdldEFjdGlvbjsKLQotLyoKICAqIE1ldGhvZCB0YWJsZSBmb3IgcmVzb3VyY2Ug bWFuYWdlcnMuCiAgKgogICogVGhpcyBzdHJ1Y3QgbXVzdCBiZSBrZXB0IGluIHN5bmMgd2l0aCB0 aGUgUEdfUk1HUiBkZWZpbml0aW9uIGluCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9n dWNfdGFibGVzLmggYi9zcmMvaW5jbHVkZS91dGlscy9ndWNfdGFibGVzLmgKaW5kZXggNjY4ZDll Zi4uNmY5ZmRiNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvZ3VjX3RhYmxlcy5oCisr KyBiL3NyYy9pbmNsdWRlL3V0aWxzL2d1Y190YWJsZXMuaApAQCAtNjksNiArNjksOCBAQCBlbnVt IGNvbmZpZ19ncm91cAogCVdBTF9TRVRUSU5HUywKIAlXQUxfQ0hFQ0tQT0lOVFMsCiAJV0FMX0FS Q0hJVklORywKKwlXQUxfQVJDSElWRV9SRUNPVkVSWSwKKwlXQUxfUkVDT1ZFUllfVEFSR0VULAog CVJFUExJQ0FUSU9OLAogCVJFUExJQ0FUSU9OX1NFTkRJTkcsCiAJUkVQTElDQVRJT05fTUFTVEVS LApkaWZmIC0tZ2l0IGEvc3JjL3BvcnQvcXVvdGVzLmMgYi9zcmMvcG9ydC9xdW90ZXMuYwppbmRl eCAyOTc3MGM3Li4wZjlhYjY4IDEwMDY0NAotLS0gYS9zcmMvcG9ydC9xdW90ZXMuYworKysgYi9z cmMvcG9ydC9xdW90ZXMuYwpAQCAtMTksNyArMTksNyBAQAogICogRXNjYXBlIChieSBkb3VibGlu ZykgYW55IHNpbmdsZSBxdW90ZXMgb3IgYmFja3NsYXNoZXMgaW4gZ2l2ZW4gc3RyaW5nCiAgKgog ICogTm90ZTogdGhpcyBpcyB1c2VkIHRvIHByb2Nlc3MgcG9zdGdyZXNxbC5jb25mIGVudHJpZXMg YW5kIHRvIHF1b3RlCi0gKiBzdHJpbmcgbGl0ZXJhbHMgaW4gcGdfYmFzZWJhY2t1cCBmb3IgY3Jl YXRpbmcgcmVjb3ZlcnkuY29uZi4KKyAqIHN0cmluZyBsaXRlcmFscyBpbiBwZ19iYXNlYmFja3Vw IGZvciBjcmVhdGluZyByZWNvdmVyeSBjb25maWcuCiAgKiBTaW5jZSBwb3N0Z3Jlc3FsLmNvbmYg c3RyaW5ncyBhcmUgZGVmaW5lZCB0byB0cmVhdCBiYWNrc2xhc2hlcyBhcyBlc2NhcGVzLAogICog d2UgaGF2ZSB0byBkb3VibGUgYmFja3NsYXNoZXMgaGVyZS4KICAqCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9wZXJsL1Bvc3RncmVzTm9kZS5wbSBiL3NyYy90ZXN0L3BlcmwvUG9zdGdyZXNOb2RlLnBt CmluZGV4IGQxMmRkNjAuLjY1NjVkMGUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3BlcmwvUG9zdGdy ZXNOb2RlLnBtCisrKyBiL3NyYy90ZXN0L3BlcmwvUG9zdGdyZXNOb2RlLnBtCkBAIC02MzUsOCAr NjM1LDYgQEAgb2YgYSBiYWNrdXAgcHJldmlvdXNseSBjcmVhdGVkIG9uIHRoYXQgbm9kZSB3aXRo ICRub2RlLT5iYWNrdXAuCiAKIERvZXMgbm90IHN0YXJ0IHRoZSBub2RlIGFmdGVyIGluaXRpYWxp emluZyBpdC4KIAotQSByZWNvdmVyeS5jb25mIGlzIG5vdCBjcmVhdGVkLgotCiBTdHJlYW1pbmcg cmVwbGljYXRpb24gY2FuIGJlIGVuYWJsZWQgb24gdGhpcyBub2RlIGJ5IHBhc3NpbmcgdGhlIGtl eXdvcmQKIHBhcmFtZXRlciBoYXNfc3RyZWFtaW5nID0+IDEuIFRoaXMgaXMgZGlzYWJsZWQgYnkg ZGVmYXVsdC4KIApAQCAtODEwLDEzICs4MDgsMTQgQEAgc3ViIGVuYWJsZV9zdHJlYW1pbmcKIAlt eSAoJHNlbGYsICRyb290X25vZGUpID0gQF87CiAJbXkgJHJvb3RfY29ubnN0ciA9ICRyb290X25v ZGUtPmNvbm5zdHI7CiAJbXkgJG5hbWUgICAgICAgICA9ICRzZWxmLT5uYW1lOworCW15ICRwZ2Rh dGEgIAkgPSAkc2VsZi0+ZGF0YV9kaXI7CiAKIAlwcmludCAiIyMjIEVuYWJsaW5nIHN0cmVhbWlu ZyByZXBsaWNhdGlvbiBmb3Igbm9kZSBcIiRuYW1lXCJcbiI7CiAJJHNlbGYtPmFwcGVuZF9jb25m KAotCQkncmVjb3ZlcnkuY29uZicsIHFxKAorCQkncG9zdGdyZXNxbC5jb25mJywgcXEoCiBwcmlt YXJ5X2Nvbm5pbmZvPSckcm9vdF9jb25uc3RyIGFwcGxpY2F0aW9uX25hbWU9JG5hbWUnCi1zdGFu ZGJ5X21vZGU9b24KICkpOworCSRzZWxmLT5yZXF1ZXN0X3N0YW5kYnlfbW9kZSgpOwogCXJldHVy bjsKIH0KIApAQCAtODQyLDEwICs4NDEsMjUgQEAgc3ViIGVuYWJsZV9yZXN0b3JpbmcKIAkgIDog cXF7Y3AgIiRwYXRoLyVmIiAiJXAifTsKIAogCSRzZWxmLT5hcHBlbmRfY29uZigKLQkJJ3JlY292 ZXJ5LmNvbmYnLCBxcSgKKwkJJ3Bvc3RncmVzcWwuY29uZicsIHFxKAogcmVzdG9yZV9jb21tYW5k ID0gJyRjb3B5X2NvbW1hbmQnCi1zdGFuZGJ5X21vZGUgPSBvbgogKSk7CisJJHNlbGYtPnJlcXVl c3Rfc3RhbmRieV9tb2RlKCk7CisJcmV0dXJuOworfQorCisjIHJvdXRpbmUgdG8gcGxhY2Ugc3Rh bmRieS5zaWduYWwgZmlsZQorc3ViIHJlcXVlc3Rfc3RhbmRieV9tb2RlCit7CisJbXkgKCRzZWxm KSA9IEBfOworCW15ICRzaWduYWxmaWxlID0gJHNlbGYtPmRhdGFfZGlyIC4gIi9zdGFuZGJ5LnNp Z25hbCI7CisKKwlvcGVuIG15ICRzdGFuZGJ5c2lnbmFsLCAiPj4kc2lnbmFsZmlsZSI7CisJcHJp bnQgJHN0YW5kYnlzaWduYWwgIlxuIyBBbGxvdyByZXBsaWNhdGlvbiAoc2V0IHVwIGJ5IFBvc3Rn cmVzTm9kZS5wbSlcbiI7CisJY2xvc2UgJHN0YW5kYnlzaWduYWw7CisKKwljaG1vZCgkc2VsZi0+ Z3JvdXBfYWNjZXNzKCkgPyAwNjQwIDogMDYwMCwgJHNpZ25hbGZpbGUpCisJICBvciBkaWUoInVu YWJsZSB0byBzZXQgcGVybWlzc2lvbnMgZm9yICRzaWduYWxmaWxlIik7CiAJcmV0dXJuOwogfQog CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAwMV9zdHJlYW1fcmVwLnBsIGIvc3Jj L3Rlc3QvcmVjb3ZlcnkvdC8wMDFfc3RyZWFtX3JlcC5wbAppbmRleCBhMGQzZThmLi41ZWYxN2I0 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAwMV9zdHJlYW1fcmVwLnBsCisrKyBi L3NyYy90ZXN0L3JlY292ZXJ5L3QvMDAxX3N0cmVhbV9yZXAucGwKQEAgLTEzMSw3ICsxMzEsNyBA QCBpcyggJG5vZGVfbWFzdGVyLT5wc3FsKAogCQlxcVtTRUxFQ1QgcGdfY3JlYXRlX3BoeXNpY2Fs X3JlcGxpY2F0aW9uX3Nsb3QoJyRzbG90bmFtZV8xJyk7XSksCiAJMCwKIAkncGh5c2ljYWwgc2xv dCBjcmVhdGVkIG9uIG1hc3RlcicpOwotJG5vZGVfc3RhbmRieV8xLT5hcHBlbmRfY29uZigncmVj b3ZlcnkuY29uZicsCiskbm9kZV9zdGFuZGJ5XzEtPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNv bmYnLAogCSJwcmltYXJ5X3Nsb3RfbmFtZSA9ICRzbG90bmFtZV8xIik7CiAkbm9kZV9zdGFuZGJ5 XzEtPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLAogCSJ3YWxfcmVjZWl2ZXJfc3RhdHVz X2ludGVydmFsID0gMSIpOwpAQCAtMTQyLDcgKzE0Miw3IEBAIGlzKCAkbm9kZV9zdGFuZGJ5XzEt PnBzcWwoCiAJCXFxW1NFTEVDVCBwZ19jcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdCgn JHNsb3RuYW1lXzInKTtdKSwKIAkwLAogCSdwaHlzaWNhbCBzbG90IGNyZWF0ZWQgb24gaW50ZXJt ZWRpYXRlIHJlcGxpY2EnKTsKLSRub2RlX3N0YW5kYnlfMi0+YXBwZW5kX2NvbmYoJ3JlY292ZXJ5 LmNvbmYnLAorJG5vZGVfc3RhbmRieV8yLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywK IAkicHJpbWFyeV9zbG90X25hbWUgPSAkc2xvdG5hbWVfMiIpOwogJG5vZGVfc3RhbmRieV8yLT5h cHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywKIAkid2FsX3JlY2VpdmVyX3N0YXR1c19pbnRl cnZhbCA9IDEiKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDAzX3JlY292ZXJ5 X3RhcmdldHMucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAwM19yZWNvdmVyeV90YXJnZXRzLnBs CmluZGV4IGU4Njc0NzkuLmQyYzUzZjUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlY292ZXJ5L3Qv MDAzX3JlY292ZXJ5X3RhcmdldHMucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDNfcmVj b3ZlcnlfdGFyZ2V0cy5wbApAQCAtMyw3ICszLDcgQEAgdXNlIHN0cmljdDsKIHVzZSB3YXJuaW5n czsKIHVzZSBQb3N0Z3Jlc05vZGU7CiB1c2UgVGVzdExpYjsKLXVzZSBUZXN0OjpNb3JlIHRlc3Rz ID0+IDk7Cit1c2UgVGVzdDo6TW9yZSB0ZXN0cyA9PiA1OwogCiAjIENyZWF0ZSBhbmQgdGVzdCBh IHN0YW5kYnkgZnJvbSBnaXZlbiBiYWNrdXAsIHdpdGggYSBjZXJ0YWluIHJlY292ZXJ5IHRhcmdl dC4KICMgQ2hvb3NlICR1bnRpbF9sc24gbGF0ZXIgdGhhbiB0aGUgdHJhbnNhY3Rpb24gY29tbWl0 IHRoYXQgY2F1c2VzIHRoZSByb3cKQEAgLTIzLDcgKzIzLDcgQEAgc3ViIHRlc3RfcmVjb3Zlcnlf c3RhbmRieQogCiAJZm9yZWFjaCBteSAkcGFyYW1faXRlbSAoQCRyZWNvdmVyeV9wYXJhbXMpCiAJ ewotCQkkbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncmVjb3ZlcnkuY29uZicsIHFxKCRwYXJh bV9pdGVtKSk7CisJCSRub2RlX3N0YW5kYnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYn LCBxcSgkcGFyYW1faXRlbSkpOwogCX0KIAogCSRub2RlX3N0YW5kYnktPnN0YXJ0OwpAQCAtOTks NDcgKzk5LDE4IEBAICRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAkbm9kZV9t YXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIHBnX3N3aXRjaF93YWwoKSIpOwog CiAjIFRlc3QgcmVjb3ZlcnkgdGFyZ2V0cwotbXkgQHJlY292ZXJ5X3BhcmFtcyA9ICgicmVjb3Zl cnlfdGFyZ2V0ID0gJ2ltbWVkaWF0ZSciKTsKK215IEByZWNvdmVyeV9wYXJhbXMgPSAoInJlY292 ZXJ5X3RhcmdldF90eXBlID0gJ2ltbWVkaWF0ZSciKTsKIHRlc3RfcmVjb3Zlcnlfc3RhbmRieSgn aW1tZWRpYXRlIHRhcmdldCcsCiAJJ3N0YW5kYnlfMScsICRub2RlX21hc3RlciwgXEByZWNvdmVy eV9wYXJhbXMsICIxMDAwIiwgJGxzbjEpOwotQHJlY292ZXJ5X3BhcmFtcyA9ICgicmVjb3Zlcnlf dGFyZ2V0X3hpZCA9ICckcmVjb3ZlcnlfdHhpZCciKTsKK0ByZWNvdmVyeV9wYXJhbXMgPSAoInJl Y292ZXJ5X3RhcmdldF90eXBlID0gJ3hpZCciLCAicmVjb3ZlcnlfdGFyZ2V0X3ZhbHVlID0gJyRy ZWNvdmVyeV90eGlkJyIpOwogdGVzdF9yZWNvdmVyeV9zdGFuZGJ5KCdYSUQnLCAnc3RhbmRieV8y JywgJG5vZGVfbWFzdGVyLCBcQHJlY292ZXJ5X3BhcmFtcywKIAkiMjAwMCIsICRsc24yKTsKLUBy ZWNvdmVyeV9wYXJhbXMgPSAoInJlY292ZXJ5X3RhcmdldF90aW1lID0gJyRyZWNvdmVyeV90aW1l JyIpOworQHJlY292ZXJ5X3BhcmFtcyA9ICgicmVjb3ZlcnlfdGFyZ2V0X3R5cGUgPSAndGltZXN0 YW1wJyIsICJyZWNvdmVyeV90YXJnZXRfdmFsdWUgPSAnJHJlY292ZXJ5X3RpbWUnIik7CiB0ZXN0 X3JlY292ZXJ5X3N0YW5kYnkoJ3RpbWUnLCAnc3RhbmRieV8zJywgJG5vZGVfbWFzdGVyLCBcQHJl Y292ZXJ5X3BhcmFtcywKIAkiMzAwMCIsICRsc24zKTsKLUByZWNvdmVyeV9wYXJhbXMgPSAoInJl Y292ZXJ5X3RhcmdldF9uYW1lID0gJyRyZWNvdmVyeV9uYW1lJyIpOworQHJlY292ZXJ5X3BhcmFt cyA9ICgicmVjb3ZlcnlfdGFyZ2V0X3R5cGUgPSAnbmFtZSciLCAicmVjb3ZlcnlfdGFyZ2V0X3Zh bHVlID0gJyRyZWNvdmVyeV9uYW1lJyIpOwogdGVzdF9yZWNvdmVyeV9zdGFuZGJ5KCduYW1lJywg J3N0YW5kYnlfNCcsICRub2RlX21hc3RlciwgXEByZWNvdmVyeV9wYXJhbXMsCiAJIjQwMDAiLCAk bHNuNCk7Ci1AcmVjb3ZlcnlfcGFyYW1zID0gKCJyZWNvdmVyeV90YXJnZXRfbHNuID0gJyRyZWNv dmVyeV9sc24nIik7CitAcmVjb3ZlcnlfcGFyYW1zID0gKCJyZWNvdmVyeV90YXJnZXRfdHlwZSA9 ICdsc24nIiwgInJlY292ZXJ5X3RhcmdldF92YWx1ZSA9ICckcmVjb3ZlcnlfbHNuJyIpOwogdGVz dF9yZWNvdmVyeV9zdGFuZGJ5KCdMU04nLCAnc3RhbmRieV81JywgJG5vZGVfbWFzdGVyLCBcQHJl Y292ZXJ5X3BhcmFtcywKIAkiNTAwMCIsICRsc241KTsKLQotIyBNdWx0aXBsZSB0YXJnZXRzCi0j IExhc3QgZW50cnkgaGFzIHByaW9yaXR5IChub3RlIHRoYXQgYW4gYXJyYXkgcmVzcGVjdHMgdGhl IG9yZGVyIG9mIGl0ZW1zCi0jIG5vdCBoYXNoZXMpLgotQHJlY292ZXJ5X3BhcmFtcyA9ICgKLQki cmVjb3ZlcnlfdGFyZ2V0X25hbWUgPSAnJHJlY292ZXJ5X25hbWUnIiwKLQkicmVjb3ZlcnlfdGFy Z2V0X3hpZCAgPSAnJHJlY292ZXJ5X3R4aWQnIiwKLQkicmVjb3ZlcnlfdGFyZ2V0X3RpbWUgPSAn JHJlY292ZXJ5X3RpbWUnIik7Ci10ZXN0X3JlY292ZXJ5X3N0YW5kYnkoJ25hbWUgKyBYSUQgKyB0 aW1lJywKLQknc3RhbmRieV82JywgJG5vZGVfbWFzdGVyLCBcQHJlY292ZXJ5X3BhcmFtcywgIjMw MDAiLCAkbHNuMyk7Ci1AcmVjb3ZlcnlfcGFyYW1zID0gKAotCSJyZWNvdmVyeV90YXJnZXRfdGlt ZSA9ICckcmVjb3ZlcnlfdGltZSciLAotCSJyZWNvdmVyeV90YXJnZXRfbmFtZSA9ICckcmVjb3Zl cnlfbmFtZSciLAotCSJyZWNvdmVyeV90YXJnZXRfeGlkICA9ICckcmVjb3ZlcnlfdHhpZCciKTsK LXRlc3RfcmVjb3Zlcnlfc3RhbmRieSgndGltZSArIG5hbWUgKyBYSUQnLAotCSdzdGFuZGJ5Xzcn LCAkbm9kZV9tYXN0ZXIsIFxAcmVjb3ZlcnlfcGFyYW1zLCAiMjAwMCIsICRsc24yKTsKLUByZWNv dmVyeV9wYXJhbXMgPSAoCi0JInJlY292ZXJ5X3RhcmdldF94aWQgID0gJyRyZWNvdmVyeV90eGlk JyIsCi0JInJlY292ZXJ5X3RhcmdldF90aW1lID0gJyRyZWNvdmVyeV90aW1lJyIsCi0JInJlY292 ZXJ5X3RhcmdldF9uYW1lID0gJyRyZWNvdmVyeV9uYW1lJyIpOwotdGVzdF9yZWNvdmVyeV9zdGFu ZGJ5KCdYSUQgKyB0aW1lICsgbmFtZScsCi0JJ3N0YW5kYnlfOCcsICRub2RlX21hc3RlciwgXEBy ZWNvdmVyeV9wYXJhbXMsICI0MDAwIiwgJGxzbjQpOwotQHJlY292ZXJ5X3BhcmFtcyA9ICgKLQki cmVjb3ZlcnlfdGFyZ2V0X3hpZCAgPSAnJHJlY292ZXJ5X3R4aWQnIiwKLQkicmVjb3ZlcnlfdGFy Z2V0X3RpbWUgPSAnJHJlY292ZXJ5X3RpbWUnIiwKLQkicmVjb3ZlcnlfdGFyZ2V0X25hbWUgPSAn JHJlY292ZXJ5X25hbWUnIiwKLQkicmVjb3ZlcnlfdGFyZ2V0X2xzbiA9ICckcmVjb3ZlcnlfbHNu JyIsKTsKLXRlc3RfcmVjb3Zlcnlfc3RhbmRieSgnWElEICsgdGltZSArIG5hbWUgKyBMU04nLAot CSdzdGFuZGJ5XzknLCAkbm9kZV9tYXN0ZXIsIFxAcmVjb3ZlcnlfcGFyYW1zLCAiNTAwMCIsICRs c241KTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDA0X3RpbWVsaW5lX3N3aXRj aC5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDA0X3RpbWVsaW5lX3N3aXRjaC5wbAppbmRleCAz NGVlMzM1Li4yMzQ0NTY4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAwNF90aW1l bGluZV9zd2l0Y2gucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDRfdGltZWxpbmVfc3dp dGNoLnBsCkBAIC00MiwxMiArNDIsMTAgQEAgJG5vZGVfbWFzdGVyLT50ZWFyZG93bl9ub2RlOwog JG5vZGVfc3RhbmRieV8xLT5wcm9tb3RlOwogCiAjIFN3aXRjaCBzdGFuZGJ5IDIgdG8gcmVwbGF5 IGZyb20gc3RhbmRieSAxCi1ybXRyZWUoJG5vZGVfc3RhbmRieV8yLT5kYXRhX2RpciAuICcvcmVj b3ZlcnkuY29uZicpOwogbXkgJGNvbm5zdHJfMSA9ICRub2RlX3N0YW5kYnlfMS0+Y29ubnN0cjsK ICRub2RlX3N0YW5kYnlfMi0+YXBwZW5kX2NvbmYoCi0JJ3JlY292ZXJ5LmNvbmYnLCBxcSgKKwkn cG9zdGdyZXNxbC5jb25mJywgcXEoCiBwcmltYXJ5X2Nvbm5pbmZvPSckY29ubnN0cl8xIGFwcGxp Y2F0aW9uX25hbWU9QHtbJG5vZGVfc3RhbmRieV8yLT5uYW1lXX0nCi1zdGFuZGJ5X21vZGU9b24K IHJlY292ZXJ5X3RhcmdldF90aW1lbGluZT0nbGF0ZXN0JwogKSk7CiAkbm9kZV9zdGFuZGJ5XzIt PnJlc3RhcnQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAwNV9yZXBsYXlfZGVs YXkucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAwNV9yZXBsYXlfZGVsYXkucGwKaW5kZXggODkw OWM0NS4uNmM4NWM5MiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDVfcmVwbGF5 X2RlbGF5LnBsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDA1X3JlcGxheV9kZWxheS5wbApA QCAtMjUsNyArMjUsNyBAQCBteSAkZGVsYXkgICAgICAgID0gMzsKICRub2RlX3N0YW5kYnktPmlu aXRfZnJvbV9iYWNrdXAoJG5vZGVfbWFzdGVyLCAkYmFja3VwX25hbWUsCiAJaGFzX3N0cmVhbWlu ZyA9PiAxKTsKICRub2RlX3N0YW5kYnktPmFwcGVuZF9jb25mKAotCSdyZWNvdmVyeS5jb25mJywg cXEoCisJJ3Bvc3RncmVzcWwuY29uZicsIHFxKAogcmVjb3ZlcnlfbWluX2FwcGx5X2RlbGF5ID0g JyR7ZGVsYXl9cycKICkpOwogJG5vZGVfc3RhbmRieS0+c3RhcnQ7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWNvdmVyeS90LzAwOV90d29waGFzZS5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDA5 X3R3b3BoYXNlLnBsCmluZGV4IDllYTNiZDYuLmRhYzJkNGUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlY292ZXJ5L3QvMDA5X3R3b3BoYXNlLnBsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDA5 X3R3b3BoYXNlLnBsCkBAIC0yMzAsNyArMjMwLDcgQEAgaXMoJHBzcWxfcmMsICcwJywgIlJlc3Rv cmUgb2YgcHJlcGFyZWQgdHJhbnNhY3Rpb24gb24gcHJvbW90ZWQgc3RhbmRieSIpOwogIyByZXN0 YXJ0IG9sZCBtYXN0ZXIgYXMgbmV3IHN0YW5kYnkKICRjdXJfc3RhbmRieS0+ZW5hYmxlX3N0cmVh bWluZygkY3VyX21hc3Rlcik7CiAkY3VyX3N0YW5kYnktPmFwcGVuZF9jb25mKAotCSdyZWNvdmVy eS5jb25mJywgcXEoCisJJ3Bvc3RncmVzcWwuY29uZicsIHFxKAogcmVjb3ZlcnlfdGFyZ2V0X3Rp bWVsaW5lPSdsYXRlc3QnCiApKTsKICRjdXJfc3RhbmRieS0+c3RhcnQ7CkBAIC0yNjgsNyArMjY4 LDcgQEAgaXMoJHBzcWxfb3V0LCAnMScsCiAjIHJlc3RhcnQgb2xkIG1hc3RlciBhcyBuZXcgc3Rh bmRieQogJGN1cl9zdGFuZGJ5LT5lbmFibGVfc3RyZWFtaW5nKCRjdXJfbWFzdGVyKTsKICRjdXJf c3RhbmRieS0+YXBwZW5kX2NvbmYoCi0JJ3JlY292ZXJ5LmNvbmYnLCBxcSgKKwkncG9zdGdyZXNx bC5jb25mJywgcXEoCiByZWNvdmVyeV90YXJnZXRfdGltZWxpbmU9J2xhdGVzdCcKICkpOwogJGN1 cl9zdGFuZGJ5LT5zdGFydDsKQEAgLTMwOCw3ICszMDgsNyBAQCBpcygkcHNxbF9vdXQsICcxJywK ICMgcmVzdGFydCBvbGQgbWFzdGVyIGFzIG5ldyBzdGFuZGJ5CiAkY3VyX3N0YW5kYnktPmVuYWJs ZV9zdHJlYW1pbmcoJGN1cl9tYXN0ZXIpOwogJGN1cl9zdGFuZGJ5LT5hcHBlbmRfY29uZigKLQkn cmVjb3ZlcnkuY29uZicsIHFxKAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcSgKIHJlY292ZXJ5X3Rh cmdldF90aW1lbGluZT0nbGF0ZXN0JwogKSk7CiAkY3VyX3N0YW5kYnktPnN0YXJ0OwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMTBfbG9naWNhbF9kZWNvZGluZ190aW1lbGluZXMu cGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAxMF9sb2dpY2FsX2RlY29kaW5nX3RpbWVsaW5lcy5w bAppbmRleCBhNzZlZWE4Li40ZmJkMzg2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWNvdmVyeS90 LzAxMF9sb2dpY2FsX2RlY29kaW5nX3RpbWVsaW5lcy5wbAorKysgYi9zcmMvdGVzdC9yZWNvdmVy eS90LzAxMF9sb2dpY2FsX2RlY29kaW5nX3RpbWVsaW5lcy5wbApAQCAtNzYsNyArNzYsNyBAQCAk bm9kZV9yZXBsaWNhLT5pbml0X2Zyb21fYmFja3VwKAogCSRub2RlX21hc3RlciwgJGJhY2t1cF9u YW1lLAogCWhhc19zdHJlYW1pbmcgPT4gMSwKIAloYXNfcmVzdG9yaW5nID0+IDEpOwotJG5vZGVf cmVwbGljYS0+YXBwZW5kX2NvbmYoJ3JlY292ZXJ5LmNvbmYnLAorJG5vZGVfcmVwbGljYS0+YXBw ZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCiAJcVtwcmltYXJ5X3Nsb3RfbmFtZSA9ICdwaHlz X3Nsb3QnXSk7CiAKICRub2RlX3JlcGxpY2EtPnN0YXJ0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVjb3ZlcnkvdC8wMTJfc3VidHJhbnNhY3Rpb25zLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8w MTJfc3VidHJhbnNhY3Rpb25zLnBsCmluZGV4IGVmYzIzZDAuLmUyNmNjOWMgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlY292ZXJ5L3QvMDEyX3N1YnRyYW5zYWN0aW9ucy5wbAorKysgYi9zcmMvdGVz dC9yZWNvdmVyeS90LzAxMl9zdWJ0cmFuc2FjdGlvbnMucGwKQEAgLTEyMCw3ICsxMjAsNyBAQCBp cygkcHNxbF9vdXQsICc4MTI4JywgIlZpc2libGUiKTsKICgkbm9kZV9tYXN0ZXIsICRub2RlX3N0 YW5kYnkpID0gKCRub2RlX3N0YW5kYnksICRub2RlX21hc3Rlcik7CiAkbm9kZV9zdGFuZGJ5LT5l bmFibGVfc3RyZWFtaW5nKCRub2RlX21hc3Rlcik7CiAkbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29u ZigKLQkncmVjb3ZlcnkuY29uZicsIHFxKAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcSgKIHJlY292 ZXJ5X3RhcmdldF90aW1lbGluZT0nbGF0ZXN0JwogKSk7CiAkbm9kZV9zdGFuZGJ5LT5zdGFydDsK QEAgLTE3MSw3ICsxNzEsNyBAQCBpcygkcHNxbF9vdXQsICctMScsICJOb3QgdmlzaWJsZSIpOwog KCRub2RlX21hc3RlciwgJG5vZGVfc3RhbmRieSkgPSAoJG5vZGVfc3RhbmRieSwgJG5vZGVfbWFz dGVyKTsKICRub2RlX3N0YW5kYnktPmVuYWJsZV9zdHJlYW1pbmcoJG5vZGVfbWFzdGVyKTsKICRu b2RlX3N0YW5kYnktPmFwcGVuZF9jb25mKAotCSdyZWNvdmVyeS5jb25mJywgcXEoCisJJ3Bvc3Rn cmVzcWwuY29uZicsIHFxKAogcmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lPSdsYXRlc3QnCiApKTsK ICRub2RlX3N0YW5kYnktPnN0YXJ0OwpAQCAtMjEyLDcgKzIxMiw3IEBAIGlzKCRwc3FsX291dCwg Jy0xJywgIk5vdCB2aXNpYmxlIik7CiAoJG5vZGVfbWFzdGVyLCAkbm9kZV9zdGFuZGJ5KSA9ICgk bm9kZV9zdGFuZGJ5LCAkbm9kZV9tYXN0ZXIpOwogJG5vZGVfc3RhbmRieS0+ZW5hYmxlX3N0cmVh bWluZygkbm9kZV9tYXN0ZXIpOwogJG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoCi0JJ3JlY292 ZXJ5LmNvbmYnLCBxcSgKKwkncG9zdGdyZXNxbC5jb25mJywgcXEoCiByZWNvdmVyeV90YXJnZXRf dGltZWxpbmU9J2xhdGVzdCcKICkpOwogJG5vZGVfc3RhbmRieS0+c3RhcnQ7Cg== ------==--bound.59429.web2j.yandex.ru--