<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>133853</bug_id>
          
          <creation_ts>2014-06-13 06:56:10 -0700</creation_ts>
          <short_desc>[EFL] Gamepads provider implementation</short_desc>
          <delta_ts>2017-03-11 10:34:39 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>133850</dependson>
          <blocked>133847</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michal Debski">m.debski</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1015408</commentid>
    <comment_count>0</comment_count>
    <who name="Michal Debski">m.debski</who>
    <bug_when>2014-06-13 06:56:10 -0700</bug_when>
    <thetext>This adds gamepad provider implementation for EFL port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017519</commentid>
    <comment_count>1</comment_count>
      <attachid>233593</attachid>
    <who name="Michal Debski">m.debski</who>
    <bug_when>2014-06-23 03:21:43 -0700</bug_when>
    <thetext>Created attachment 233593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017982</commentid>
    <comment_count>2</comment_count>
      <attachid>233712</attachid>
    <who name="Michal Debski">m.debski</who>
    <bug_when>2014-06-24 09:55:06 -0700</bug_when>
    <thetext>Created attachment 233712
Patch

Properly turn on EFL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1286250</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-03-11 10:34:39 -0800</bug_when>
    <thetext>Closing this bug because the EFL port has been removed from trunk.

If you feel this bug applies to a different upstream WebKit port and was closed in error, please either update the title and reopen the bug, or leave a comment to request this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233593</attachid>
            <date>2014-06-23 03:21:43 -0700</date>
            <delta_ts>2014-06-24 09:55:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>23547</size>
            <attacher name="Michal Debski">m.debski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBjMmQxZTA2Li5iMmE2Mjdk
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTQtMDYtMjMgIE1pY2hhbCBEZWJza2kgIDxtLmRlYnNraUBzYW1zdW5nLmNvbT4KKworICAg
ICAgICBbRUZMXSBHYW1lcGFkZCBwcm92aWRlciBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzODUzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRUZMIGdhbWVwYWQgd29ya3MuCisK
KyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZToKKwogMjAxNC0wNi0yMyAg
UGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgR1RLIGJ1aWxkIGZpeCBhZnRlciByMTcwMjY2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM3OWFhNjku
LjlkMzc5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxNC0wNi0yMyAgTWljaGFs
IERlYnNraSAgPG0uZGVic2tpQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIEdhbWVwYWRz
IHByb3ZpZGVyIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzM4NTMKKworICAgICAgICBUaGlzIGFkZHMgZ2FtZXBhZCBwcm92
aWRlciBpbXBsZW1lbnRhdGlvbiBmb3IgRUZMIHBvcnQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBUaGlzIHdvdWxkIHJlcXVp
cmUgcGh5c2ljYWwgZGV2aWNlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9HYW1lcGFkc1By
b3ZpZGVyRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWREZXZpY2VFZmw6OkdhbWVw
YWREZXZpY2VFZmwpOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZERldmljZUVmbDo6b3BlcmF0
b3IgPSk6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkRGV2aWNlRWZsOjpzdGFydFdhdGNoaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWREZXZpY2VFZmw6OnJlYWRDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpHYW1lcGFkRGV2aWNlRWZsOjppZCk6CisgICAgICAgIChXZWJDb3Jl
OjpHYW1lcGFkRGV2aWNlRWZsOjpheGVzQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBh
ZERldmljZUVmbDo6YXhlc0FycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWREZXZpY2VF
Zmw6OmJ1dHRvbnNDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkRGV2aWNlRWZsOjpi
dXR0b25zQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZHNFZmw6OkdhbWVwYWRzRWZs
KToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRzRWZsOjpyZWdpc3RlckRldmljZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHYW1lcGFkc0VmbDo6dW5yZWdpc3RlckRldmljZSk6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVHYW1lcGFkc1Byb3ZpZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
R2FtZXBhZHNQcm92aWRlckVmbC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRE
ZXZpY2VFZmw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkRGV2aWNlRWZsOjpy
ZXNldEZkSGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkRGV2aWNlRWZsOjpkZXZp
Y2VGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWREZXZpY2VFZmw6OmdldElkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdhbWVwYWREZXZpY2VFZmw6OnNldElkKToKKyAgICAgICAgKFdlYkNv
cmU6OkdhbWVwYWREZXZpY2VFZmw6OmdhbWVwYWRNYW5hZ2VyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9saW51eC9HYW1lcGFkRGV2aWNlTGludXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBh
ZERldmljZUxpbnV4OjpHYW1lcGFkRGV2aWNlTGludXgpOgorICAgICAgICAoV2ViQ29yZTo6R2Ft
ZXBhZERldmljZUxpbnV4OjpvcGVyYXRvciA9KToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRE
ZXZpY2VMaW51eDo6dXBkYXRlRm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZERl
dmljZUxpbnV4Ojpub3JtYWxpemVBeGlzVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBh
ZERldmljZUxpbnV4Ojpub3JtYWxpemVCdXR0b25WYWx1ZSk6CisgICAgICAgICogcGxhdGZvcm0v
bGludXgvR2FtZXBhZERldmljZUxpbnV4Lmg6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkRGV2
aWNlTGludXg6OmlkKToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWREZXZpY2VMaW51eDo6dGlt
ZXN0YW1wKToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWREZXZpY2VMaW51eDo6YXhlc0NvdW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWREZXZpY2VMaW51eDo6YXhlc0RhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6R2FtZXBhZERldmljZUxpbnV4OjpidXR0b25zQ291bnQpOgorICAgICAg
ICAoV2ViQ29yZTo6R2FtZXBhZERldmljZUxpbnV4OjpidXR0b25zRGF0YSk6CisKIDIwMTQtMDYt
MTMgIE1pY2hhbCBEZWJza2kgIDxtLmRlYnNraUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBMYXlv
dXRUZXN0cyBmb3IgR2FtZXBhZCBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9HYW1lcGFkc1Byb3ZpZGVyRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9HYW1lcGFkc1Byb3ZpZGVyRWZsLmNwcAppbmRleCBmMmQ3MWYxLi4yNmQ5ZjE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvR2FtZXBhZHNQcm92aWRlckVmbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0dhbWVwYWRzUHJvdmlkZXJFZmwu
Y3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jw
b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBTYW1z
dW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yNSw1NiArMjYsMjcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgog
Ci0jaWYgRU5BQkxFKEdBTUVQQURfREVQUkVDQVRFRCkKKyNpZiBFTkFCTEUoR0FNRVBBRCkKIAot
I2luY2x1ZGUgIkdhbWVwYWREZXZpY2VMaW51eC5oIgotI2luY2x1ZGUgIkdhbWVwYWRMaXN0Lmgi
Ci0jaW5jbHVkZSAiR2FtZXBhZHNQcm92aWRlci5oIgorI2luY2x1ZGUgIkdhbWVwYWRzUHJvdmlk
ZXJFZmwuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKICNpbmNsdWRlIDxFY29yZS5oPgogI2luY2x1ZGUgPEVlemUuaD4KICNpbmNsdWRlIDxFaW5h
Lmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgot
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdI
YXNoLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSB7Citjb25zdCBjaGFyIGpv
eXN0aWNrUHJlZml4W10gPSAiL2Rldi9pbnB1dC9qcyI7Cit9CiAKLXN0YXRpYyBjb25zdCBjaGFy
IGpveXN0aWNrUHJlZml4W10gPSAiL2Rldi9pbnB1dC9qcyI7CituYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIEdhbWVwYWREZXZpY2VFZmwgOiBwdWJsaWMgR2FtZXBhZERldmljZUxpbnV4IHsK
LXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxHYW1lcGFkRGV2aWNlRWZsPiBjcmVhdGUo
Y29uc3QgU3RyaW5nJiBkZXZpY2VGaWxlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBHYW1lcGFkRGV2aWNlRWZsKGRldmljZUZpbGUpKTsKLSAgICB9Ci0gICAgfkdhbWVwYWRE
ZXZpY2VFZmwoKTsKLSAgICB2b2lkIHJlc2V0RmRIYW5kbGVyKCkgeyBtX2ZkSGFuZGxlciA9IDA7
IH0KLSAgICBjb25zdCBTdHJpbmcmIGRldmljZUZpbGUoKSBjb25zdCB7IHJldHVybiBtX2Rldmlj
ZUZpbGU7IH0KLQotcHJpdmF0ZToKLSAgICBHYW1lcGFkRGV2aWNlRWZsKGNvbnN0IFN0cmluZyYg
ZGV2aWNlRmlsZSk7Ci0gICAgc3RhdGljIEVpbmFfQm9vbCByZWFkQ2FsbGJhY2sodm9pZCogdXNl
ckRhdGEsIEVjb3JlX0ZkX0hhbmRsZXIqKTsKLQotICAgIEVjb3JlX0ZkX0hhbmRsZXIqIG1fZmRI
YW5kbGVyOwotICAgIFN0cmluZyBtX2RldmljZUZpbGU7Ci19OwotCi1HYW1lcGFkRGV2aWNlRWZs
OjpHYW1lcGFkRGV2aWNlRWZsKGNvbnN0IFN0cmluZyYgZGV2aWNlRmlsZSkKLSAgICA6IEdhbWVw
YWREZXZpY2VMaW51eChkZXZpY2VGaWxlKQotICAgICwgbV9mZEhhbmRsZXIoMCkKLSAgICAsIG1f
ZGV2aWNlRmlsZShkZXZpY2VGaWxlKQorR2FtZXBhZERldmljZUVmbDo6R2FtZXBhZERldmljZUVm
bChHYW1lcGFkc01hbmFnZXIqIG1hbmFnZXIsIGNvbnN0IFN0cmluZyYgZGV2aWNlRmlsZSkKKyAg
ICA6IEdhbWVwYWREZXZpY2VMaW51eHtkZXZpY2VGaWxlfQorICAgICwgbV9tYW5hZ2Vye21hbmFn
ZXJ9CisgICAgLCBtX2ZkSGFuZGxlcnswfQorICAgICwgbV9kZXZpY2VGaWxle2RldmljZUZpbGV9
CiB7Ci0gICAgaWYgKG1fZmlsZURlc2NyaXB0b3IgPCAwKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBtX2ZkSGFuZGxlciA9IGVjb3JlX21haW5fZmRfaGFuZGxlcl9hZGQobV9maWxlRGVzY3JpcHRv
ciwgRUNPUkVfRkRfUkVBRCwgcmVhZENhbGxiYWNrLCB0aGlzLCAwLCAwKTsKLSAgICBpZiAoIW1f
ZmRIYW5kbGVyKQotICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgdGhlIEVjb3Jl
X0ZkX0hhbmRsZXIuIik7CiB9CiAKIEdhbWVwYWREZXZpY2VFZmw6On5HYW1lcGFkRGV2aWNlRWZs
KCkKQEAgLTgzLDYgKzU1LDQ2IEBAIEdhbWVwYWREZXZpY2VFZmw6On5HYW1lcGFkRGV2aWNlRWZs
KCkKICAgICAgICAgZWNvcmVfbWFpbl9mZF9oYW5kbGVyX2RlbChtX2ZkSGFuZGxlcik7CiB9CiAK
K0dhbWVwYWREZXZpY2VFZmw6OkdhbWVwYWREZXZpY2VFZmwoR2FtZXBhZERldmljZUVmbCYmIG90
aGVyKQorICAgIDogR2FtZXBhZERldmljZUxpbnV4e3N0ZDo6bW92ZShvdGhlcil9CisgICAgLCBt
X21hbmFnZXJ7b3RoZXIubV9tYW5hZ2VyfQorICAgICwgbV9mZEhhbmRsZXJ7MH0KKyAgICAsIG1f
ZGV2aWNlRmlsZXtzdGQ6Om1vdmUob3RoZXIubV9kZXZpY2VGaWxlKX0KKyAgICAsIG1faWR7b3Ro
ZXIubV9pZH0KK3sKKyAgICBpZiAob3RoZXIubV9mZEhhbmRsZXIpIHsKKyAgICAgICAgZWNvcmVf
bWFpbl9mZF9oYW5kbGVyX2RlbChvdGhlci5tX2ZkSGFuZGxlcik7CisgICAgICAgIG90aGVyLm1f
ZmRIYW5kbGVyID0gMDsKKyAgICAgICAgc3RhcnRXYXRjaGluZygpOworICAgIH0KK30KKworR2Ft
ZXBhZERldmljZUVmbCYgR2FtZXBhZERldmljZUVmbDo6b3BlcmF0b3IgPShHYW1lcGFkRGV2aWNl
RWZsJiYgb3RoZXIpCit7CisgICAgR2FtZXBhZERldmljZUxpbnV4OjpvcGVyYXRvcj0oc3RkOjpt
b3ZlKG90aGVyKSk7CisgICAgbV9tYW5hZ2VyID0gb3RoZXIubV9tYW5hZ2VyOworICAgIG1fZmRI
YW5kbGVyID0gMDsKKyAgICBtX2RldmljZUZpbGUgPSBzdGQ6Om1vdmUob3RoZXIubV9kZXZpY2VG
aWxlKTsKKyAgICBtX2lkID0gb3RoZXIubV9pZDsKKworICAgIGlmIChvdGhlci5tX2ZkSGFuZGxl
cikgeworICAgICAgICBlY29yZV9tYWluX2ZkX2hhbmRsZXJfZGVsKG90aGVyLm1fZmRIYW5kbGVy
KTsKKyAgICAgICAgb3RoZXIubV9mZEhhbmRsZXIgPSAwOworICAgICAgICBzdGFydFdhdGNoaW5n
KCk7CisgICAgfQorICAgIHJldHVybiAqdGhpczsKK30KKworYm9vbCBHYW1lcGFkRGV2aWNlRWZs
OjpzdGFydFdhdGNoaW5nKCkKK3sKKyAgICBpZiAobV9maWxlRGVzY3JpcHRvciA8IDAgfHwgbV9m
ZEhhbmRsZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBtX2ZkSGFuZGxlciA9IGVjb3Jl
X21haW5fZmRfaGFuZGxlcl9hZGQobV9maWxlRGVzY3JpcHRvciwgRUNPUkVfRkRfUkVBRCwgcmVh
ZENhbGxiYWNrLCB0aGlzLCAwLCAwKTsKKyAgICBpZiAoIW1fZmRIYW5kbGVyKQorICAgICAgICBM
T0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgdGhlIEVjb3JlX0ZkX0hhbmRsZXIuIik7CisgICAg
cmV0dXJuIG1fZmRIYW5kbGVyOworfQorCiBFaW5hX0Jvb2wgR2FtZXBhZERldmljZUVmbDo6cmVh
ZENhbGxiYWNrKHZvaWQqIHVzZXJEYXRhLCBFY29yZV9GZF9IYW5kbGVyKiBmZEhhbmRsZXIpCiB7
CiAgICAgR2FtZXBhZERldmljZUVmbCogZ2FtZXBhZERldmljZSA9IHN0YXRpY19jYXN0PEdhbWVw
YWREZXZpY2VFZmwqPih1c2VyRGF0YSk7CkBAIC0xMDgsMjggKzEyMCwzOSBAQCBFaW5hX0Jvb2wg
R2FtZXBhZERldmljZUVmbDo6cmVhZENhbGxiYWNrKHZvaWQqIHVzZXJEYXRhLCBFY29yZV9GZF9I
YW5kbGVyKiBmZEhhbgogICAgIH0KIAogICAgIGdhbWVwYWREZXZpY2UtPnVwZGF0ZUZvckV2ZW50
KGV2ZW50KTsKKyAgICBpZiAoZ2FtZXBhZERldmljZS0+Y29ubmVjdGVkKCkpIHsKKyAgICAgICAg
aWYgKGV2ZW50LnR5cGUgJiBKU19FVkVOVF9BWElTKQorICAgICAgICAgICAgZ2FtZXBhZERldmlj
ZS0+Z2FtZXBhZE1hbmFnZXIoKS0+Z2FtZXBhZEF4aXNDaGFuZ2VkKGdhbWVwYWREZXZpY2UtPmdl
dElkKCksIGV2ZW50Lm51bWJlciwgZ2FtZXBhZERldmljZS0+YXhlc0RhdGEoKVtldmVudC5udW1i
ZXJdKTsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQudHlwZSAmIEpTX0VWRU5UX0JVVFRPTikKKyAg
ICAgICAgICAgIGdhbWVwYWREZXZpY2UtPmdhbWVwYWRNYW5hZ2VyKCktPmdhbWVwYWRCdXR0b25D
aGFuZ2VkKGdhbWVwYWREZXZpY2UtPmdldElkKCksIGV2ZW50Lm51bWJlciwgZ2FtZXBhZERldmlj
ZS0+YnV0dG9uc0RhdGEoKVtldmVudC5udW1iZXJdKTsKKyAgICB9CiAgICAgcmV0dXJuIEVDT1JF
X0NBTExCQUNLX1JFTkVXOwogfQogCi1jbGFzcyBHYW1lcGFkc0VmbCB7Ci0gICAgZnJpZW5kIGNs
YXNzIE5ldmVyRGVzdHJveWVkPEdhbWVwYWRzRWZsPjsKLXB1YmxpYzoKLSAgICBHYW1lcGFkc0Vm
bChzaXplX3QgbGVuZ3RoKTsKLQotICAgIHZvaWQgcmVnaXN0ZXJEZXZpY2UoY29uc3QgU3RyaW5n
JiBzeXNwYXRoKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJEZXZpY2UoY29uc3QgU3RyaW5nJiBzeXNw
YXRoKTsKK2NvbnN0IFN0cmluZyYgR2FtZXBhZERldmljZUVmbDo6aWQoKSBjb25zdAoreworICAg
IHJldHVybiBHYW1lcGFkRGV2aWNlTGludXg6OmlkKCk7Cit9CiAKLSAgICB2b2lkIHVwZGF0ZUdh
bWVwYWRMaXN0KEdhbWVwYWRMaXN0Kik7Cit1bnNpZ25lZCBHYW1lcGFkRGV2aWNlRWZsOjpheGVz
Q291bnQoKSBjb25zdAoreworICAgIHJldHVybiBHYW1lcGFkRGV2aWNlTGludXg6OmF4ZXNDb3Vu
dCgpOworfQogCi1wcml2YXRlOgotICAgIH5HYW1lcGFkc0VmbCgpOwotICAgIHN0YXRpYyB2b2lk
IG9uR2FtZVBhZENoYW5nZShjb25zdCBjaGFyKiBzeXNwYXRoLCBFZXplX1VkZXZfRXZlbnQsIHZv
aWQqIHVzZXJEYXRhLCBFZXplX1VkZXZfV2F0Y2gqIHdhdGNoZXIpOworY29uc3QgZG91YmxlKiBH
YW1lcGFkRGV2aWNlRWZsOjpheGVzQXJyYXkoKSBjb25zdAoreworICAgIHJldHVybiBHYW1lcGFk
RGV2aWNlTGludXg6OmF4ZXNEYXRhKCk7Cit9CiAKLSAgICBWZWN0b3I8T3duUHRyPEdhbWVwYWRE
ZXZpY2VFZmw+ID4gbV9zbG90czsKLSAgICBIYXNoTWFwPFN0cmluZywgR2FtZXBhZERldmljZUVm
bCo+IG1fZGV2aWNlTWFwOwordW5zaWduZWQgR2FtZXBhZERldmljZUVmbDo6YnV0dG9uc0NvdW50
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gR2FtZXBhZERldmljZUxpbnV4OjpidXR0b25zQ291bnQo
KTsKK30KIAotICAgIEVlemVfVWRldl9XYXRjaCogbV9nYW1lcGFkc1dhdGNoZXI7Ci19OworY29u
c3QgR2FtZXBhZEJ1dHRvbjo6QnV0dG9uU3RydWN0KiBHYW1lcGFkRGV2aWNlRWZsOjpidXR0b25z
QXJyYXkoKSBjb25zdAoreworICAgIHJldHVybiBHYW1lcGFkRGV2aWNlTGludXg6OmJ1dHRvbnNE
YXRhKCk7Cit9CiAKIHZvaWQgR2FtZXBhZHNFZmw6Om9uR2FtZVBhZENoYW5nZShjb25zdCBjaGFy
KiBzeXNwYXRoLCBFZXplX1VkZXZfRXZlbnQgZXZlbnQsIHZvaWQqIHVzZXJEYXRhLCBFZXplX1Vk
ZXZfV2F0Y2gqKQogewpAQCAtMTQ3LDggKzE3MCw4IEBAIHZvaWQgR2FtZXBhZHNFZmw6Om9uR2Ft
ZVBhZENoYW5nZShjb25zdCBjaGFyKiBzeXNwYXRoLCBFZXplX1VkZXZfRXZlbnQgZXZlbnQsIHZv
CiAgICAgfQogfQogCi1HYW1lcGFkc0VmbDo6R2FtZXBhZHNFZmwoc2l6ZV90IGxlbmd0aCkKLSAg
ICA6IG1fc2xvdHMobGVuZ3RoKQorR2FtZXBhZHNFZmw6OkdhbWVwYWRzRWZsKEdhbWVwYWRzTWFu
YWdlciogbWFuYWdlcikKKyAgICA6IEdhbWVwYWRzUHJvdmlkZXIobWFuYWdlcikKICAgICAsIG1f
Z2FtZXBhZHNXYXRjaGVyKDApCiB7CiAgICAgaWYgKGVlemVfaW5pdCgpIDwgMCkgewpAQCAtMTgy
LDc2ICsyMDUsNDEgQEAgdm9pZCBHYW1lcGFkc0VmbDo6cmVnaXN0ZXJEZXZpY2UoY29uc3QgU3Ry
aW5nJiBzeXNwYXRoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBNYWtlIHN1cmUgaXQgaXMg
YSB2YWxpZCBqb3lzdGljay4KLSAgICBjb25zdCBjaGFyKiBkZXZpY2VGaWxlID0gZWV6ZV91ZGV2
X3N5c3BhdGhfZ2V0X2RldnBhdGgoc3lzcGF0aC51dGY4KCkuZGF0YSgpKTsKKyAgICBhdXRvIGRl
dmljZUZpbGUgPSBlZXplX3VkZXZfc3lzcGF0aF9nZXRfZGV2cGF0aChzeXNwYXRoLnV0ZjgoKS5k
YXRhKCkpOwogICAgIGlmICghZGV2aWNlRmlsZSB8fCAhZWluYV9zdHJfaGFzX3ByZWZpeChkZXZp
Y2VGaWxlLCBqb3lzdGlja1ByZWZpeCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIExPRyhHYW1l
cGFkLCAiUmVnaXN0ZXJpbmcgZ2FtZXBhZCBhdCAlcyIsIGRldmljZUZpbGUpOwogCi0gICAgY29u
c3Qgc2l6ZV90IHNsb3RDb3VudCA9IG1fc2xvdHMuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGlu
ZGV4ID0gMDsgaW5kZXggPCBzbG90Q291bnQ7ICsraW5kZXgpIHsKLSAgICAgICAgaWYgKCFtX3Ns
b3RzW2luZGV4XSkgewotICAgICAgICAgICAgbV9zbG90c1tpbmRleF0gPSBHYW1lcGFkRGV2aWNl
RWZsOjpjcmVhdGUoU3RyaW5nOjpmcm9tVVRGOChkZXZpY2VGaWxlKSk7Ci0gICAgICAgICAgICBM
T0coR2FtZXBhZCwgIkdhbWVwYWQgZGV2aWNlIG5hbWUgaXMgJXMiLCBtX3Nsb3RzW2luZGV4XS0+
aWQoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIG1fZGV2aWNlTWFwLmFkZChzeXNwYXRo
LCBtX3Nsb3RzW2luZGV4XS5nZXQoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQor
CisgICAgYXV0byBpdCA9IG1fZGV2aWNlTWFwLmZhc3RBZGQoc3lzcGF0aCwgR2FtZXBhZERldmlj
ZUVmbDo6Y3JlYXRlKGdhbWVwYWRNYW5hZ2VyKCksIFN0cmluZzo6ZnJvbVVURjgoZGV2aWNlRmls
ZSkpKS5pdGVyYXRvcjsKKyAgICBhdXRvJiBnYW1lcGFkID0gKml0LT52YWx1ZTsKKyAgICBMT0co
R2FtZXBhZCwgIkdhbWVwYWQgZGV2aWNlIG5hbWUgaXMgJXMiLCBnYW1lcGFkLmlkKCkudXRmOCgp
LmRhdGEoKSk7CisgICAgZ2FtZXBhZC5zZXRJZChnYW1lcGFkTWFuYWdlcigpLT5nYW1lcGFkQ29u
bmVjdGVkKGdhbWVwYWQpKTsKKyAgICBpZiAoIWdhbWVwYWQuc3RhcnRXYXRjaGluZygpKSB7Cisg
ICAgICAgIGdhbWVwYWRNYW5hZ2VyKCktPmdhbWVwYWREaXNjb25uZWN0ZWQoZ2FtZXBhZC5nZXRJ
ZCgpLCBnYW1lcGFkKTsKKyAgICAgICAgbV9kZXZpY2VNYXAucmVtb3ZlKGl0KTsKKyAgICAgICAg
cmV0dXJuOwogICAgIH0KKyAgICByZXR1cm47CiB9CiAKIHZvaWQgR2FtZXBhZHNFZmw6OnVucmVn
aXN0ZXJEZXZpY2UoY29uc3QgU3RyaW5nJiBzeXNwYXRoKQogewotICAgIGlmICghbV9kZXZpY2VN
YXAuY29udGFpbnMoc3lzcGF0aCkpCisgICAgYXV0byBpdCA9IG1fZGV2aWNlTWFwLmZpbmQoc3lz
cGF0aCk7CisgICAgaWYgKGl0ID09IG1fZGV2aWNlTWFwLmVuZCgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBHYW1lcGFkRGV2aWNlRWZsKiBnYW1lcGFkRGV2aWNlID0gbV9kZXZpY2VNYXAudGFr
ZShzeXNwYXRoKTsKLSAgICBMT0coR2FtZXBhZCwgIlVucmVnaXN0ZXJpbmcgZ2FtZXBhZCBhdCAl
cyIsIGdhbWVwYWREZXZpY2UtPmRldmljZUZpbGUoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBjb25z
dCBzaXplX3QgaW5kZXggPSBtX3Nsb3RzLmZpbmQoZ2FtZXBhZERldmljZSk7Ci0gICAgQVNTRVJU
KGluZGV4ICE9IG5vdEZvdW5kKTsKLQotICAgIG1fc2xvdHNbaW5kZXhdLmNsZWFyKCk7Ci19Ci0K
LXZvaWQgR2FtZXBhZHNFZmw6OnVwZGF0ZUdhbWVwYWRMaXN0KEdhbWVwYWRMaXN0KiAvKmludG8q
LykKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotCi0vLyAqKioqKiBHYW1lcGFkIGludGVyZmFj
ZSBjaGFuZ2VkLiAqKioqKgotLy8KLS8vICAgIEFTU0VSVChtX3Nsb3RzLnNpemUoKSA9PSBpbnRv
LT5sZW5ndGgoKSk7Ci0vLwotLy8gICAgY29uc3Qgc2l6ZV90IHNsb3RDb3VudCA9IG1fc2xvdHMu
c2l6ZSgpOwotLy8gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzbG90Q291bnQ7ICsraSkgewot
Ly8gICAgICAgIGlmIChtX3Nsb3RzW2ldLmdldCgpICYmIG1fc2xvdHNbaV0tPmNvbm5lY3RlZCgp
KSB7Ci0vLyAgICAgICAgICAgIEdhbWVwYWREZXZpY2VFZmwqIGdhbWVwYWREZXZpY2UgPSBtX3Ns
b3RzW2ldLmdldCgpOwotLy8gICAgICAgICAgICBSZWZQdHI8R2FtZXBhZD4gZ2FtZXBhZCA9IGlu
dG8tPml0ZW0oaSk7Ci0vLyAgICAgICAgICAgIGlmICghZ2FtZXBhZCkKLS8vICAgICAgICAgICAg
ICAgIGdhbWVwYWQgPSBHYW1lcGFkOjpjcmVhdGUoKTsKLS8vCi0vLyAgICAgICAgICAgIGdhbWVw
YWQtPmluZGV4KGkpOwotLy8gICAgICAgICAgICBnYW1lcGFkLT5pZChnYW1lcGFkRGV2aWNlLT5p
ZCgpKTsKLS8vICAgICAgICAgICAgZ2FtZXBhZC0+dGltZXN0YW1wKGdhbWVwYWREZXZpY2UtPnRp
bWVzdGFtcCgpKTsKLS8vICAgICAgICAgICAgZ2FtZXBhZC0+YXhlcyhnYW1lcGFkRGV2aWNlLT5h
eGVzQ291bnQoKSwgZ2FtZXBhZERldmljZS0+YXhlc0RhdGEoKSk7Ci0vLyAgICAgICAgICAgIGdh
bWVwYWQtPmJ1dHRvbnMoZ2FtZXBhZERldmljZS0+YnV0dG9uc0NvdW50KCksIGdhbWVwYWREZXZp
Y2UtPmJ1dHRvbnNEYXRhKCkpOwotLy8KLS8vICAgICAgICAgICAgaW50by0+c2V0KGksIGdhbWVw
YWQpOwotLy8gICAgICAgIH0gZWxzZQotLy8gICAgICAgICAgICBpbnRvLT5zZXQoaSwgMCk7Ci0v
LyAgICB9Ci19Ci0KLXZvaWQgc2FtcGxlR2FtZXBhZHMoR2FtZXBhZExpc3QqIGludG8pCi17Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEdhbWVwYWRzRWZsPiBnYW1lcGFkc0VmbChpbnRvLT5s
ZW5ndGgoKSk7Ci0gICAgZ2FtZXBhZHNFZmwuZ2V0KCkudXBkYXRlR2FtZXBhZExpc3QoaW50byk7
CisgICAgTE9HKEdhbWVwYWQsICJVbnJlZ2lzdGVyaW5nIGdhbWVwYWQgYXQgJXMiLCBpdC0+dmFs
dWUtPmRldmljZUZpbGUoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBnYW1lcGFkTWFuYWdlcigpLT5n
YW1lcGFkRGlzY29ubmVjdGVkKGl0LT52YWx1ZS0+Z2V0SWQoKSwgKml0LT52YWx1ZSk7CisgICAg
bV9kZXZpY2VNYXAucmVtb3ZlKGl0KTsKIH0KIAotUGFzc093blB0cjxHYW1lcGFkc1Byb3ZpZGVy
PiBjcmVhdGVHYW1lcGFkc1Byb3ZpZGVyKEdhbWVwYWRzTWFuYWdlciogLyptYW5hZ2VyKi8pCitQ
YXNzT3duUHRyPEdhbWVwYWRzUHJvdmlkZXI+IGNyZWF0ZUdhbWVwYWRzUHJvdmlkZXIoR2FtZXBh
ZHNNYW5hZ2VyKiBtYW5hZ2VyKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJu
IG51bGxwdHI7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHYW1lcGFkc0VmbChtYW5hZ2VyKSk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShHQU1FUEFE
X0RFUFJFQ0FURUQpCisjZW5kaWYgLy8gRU5BQkxFKEdBTUVQQUQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvR2FtZXBhZHNQcm92aWRlckVmbC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL0dhbWVwYWRzUHJvdmlkZXJFZmwuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4wY2ZmYzdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL0dhbWVwYWRzUHJvdmlkZXJFZmwuaApAQCAtMCwwICsxLDEwMSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEdhbWVwYWRzUHJvdmlkZXJF
ZmxfaAorI2RlZmluZSBHYW1lcGFkc1Byb3ZpZGVyRWZsX2gKKworI2lmIEVOQUJMRShHQU1FUEFE
KQorCisjaW5jbHVkZSAiR2FtZXBhZERldmljZUxpbnV4LmgiCisjaW5jbHVkZSAiR2FtZXBhZHNQ
cm92aWRlci5oIgorI2luY2x1ZGUgIkdhbWVwYWRzTWFuYWdlci5oIgorI2luY2x1ZGUgPEVjb3Jl
Lmg+CisjaW5jbHVkZSA8RWV6ZS5oPgorI2luY2x1ZGUgPEVpbmEuaD4KKyNpbmNsdWRlIDxtZW1v
cnk+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEdhbWVwYWREZXZpY2VFZmwgOiBwdWJsaWMgR2FtZXBhZERldmljZUxpbnV4
LCBwdWJsaWMgR2FtZXBhZERldmljZSB7CitwdWJsaWM6CisgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxHYW1lcGFkRGV2aWNlRWZsPiBjcmVhdGUoR2FtZXBhZHNNYW5hZ2VyKiBtYW5hZ2VyLCBj
b25zdCBTdHJpbmcmIGRldmljZUZpbGUpCisgICAgeworICAgICAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxHYW1lcGFkRGV2aWNlRWZsPihtYW5hZ2VyLCBkZXZpY2VGaWxlKTsKKyAgICB9Cisg
ICAgR2FtZXBhZERldmljZUVmbChHYW1lcGFkc01hbmFnZXIqLCBjb25zdCBTdHJpbmcmIGRldmlj
ZUZpbGUpOworICAgIEdhbWVwYWREZXZpY2VFZmwoY29uc3QgR2FtZXBhZERldmljZUVmbCYpID0g
ZGVsZXRlOworICAgIEdhbWVwYWREZXZpY2VFZmwoR2FtZXBhZERldmljZUVmbCYmKTsKKyAgICB+
R2FtZXBhZERldmljZUVmbCgpOworCisgICAgR2FtZXBhZERldmljZUVmbCYgb3BlcmF0b3IgPShj
b25zdCBHYW1lcGFkRGV2aWNlRWZsJikgPSBkZWxldGU7CisgICAgR2FtZXBhZERldmljZUVmbCYg
b3BlcmF0b3IgPShHYW1lcGFkRGV2aWNlRWZsJiYpOworCisgICAgdm9pZCByZXNldEZkSGFuZGxl
cigpIHsgbV9mZEhhbmRsZXIgPSAwOyB9CisgICAgY29uc3QgU3RyaW5nJiBkZXZpY2VGaWxlKCkg
Y29uc3QgeyByZXR1cm4gbV9kZXZpY2VGaWxlOyB9CisgICAgdW5zaWduZWQgZ2V0SWQoKSBjb25z
dCB7IHJldHVybiBtX2lkOyB9CisgICAgdm9pZCBzZXRJZCh1bnNpZ25lZCBpZCkgeyBtX2lkID0g
aWQ7IH0KKyAgICBHYW1lcGFkc01hbmFnZXIqIGdhbWVwYWRNYW5hZ2VyKCkgY29uc3QgeyByZXR1
cm4gbV9tYW5hZ2VyOyB9CisgICAgYm9vbCBzdGFydFdhdGNoaW5nKCk7CisKKyAgICBjb25zdCBT
dHJpbmcmIGlkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdW5zaWduZWQgYXhlc0NvdW50KCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgY29uc3QgZG91YmxlKiBheGVzQXJyYXkoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB1bnNpZ25lZCBidXR0b25zQ291bnQoKSBjb25zdCBvdmVycmlkZTsKKyAgICBjb25z
dCBHYW1lcGFkQnV0dG9uOjpCdXR0b25TdHJ1Y3QqIGJ1dHRvbnNBcnJheSgpIGNvbnN0IG92ZXJy
aWRlOworCitwcml2YXRlOgorICAgIHN0YXRpYyBFaW5hX0Jvb2wgcmVhZENhbGxiYWNrKHZvaWQq
IHVzZXJEYXRhLCBFY29yZV9GZF9IYW5kbGVyKik7CisKKyAgICBHYW1lcGFkc01hbmFnZXIqIG1f
bWFuYWdlcjsKKyAgICBFY29yZV9GZF9IYW5kbGVyKiBtX2ZkSGFuZGxlcjsKKyAgICBTdHJpbmcg
bV9kZXZpY2VGaWxlOworICAgIHVuc2lnbmVkIG1faWQ7Cit9OworCitjbGFzcyBHYW1lcGFkc0Vm
bCA6IHB1YmxpYyBHYW1lcGFkc1Byb3ZpZGVyIHsKK3B1YmxpYzoKKyAgICBHYW1lcGFkc0VmbChH
YW1lcGFkc01hbmFnZXIqIG1hbmFnZXIpOworICAgIH5HYW1lcGFkc0VmbCgpOworCisgICAgdm9p
ZCByZWdpc3RlckRldmljZShjb25zdCBTdHJpbmcgJnN5c3BhdGgpOworICAgIHZvaWQgdW5yZWdp
c3RlckRldmljZShjb25zdCBTdHJpbmcgJnN5c3BhdGgpOworCitwcml2YXRlOgorCisgICAgc3Rh
dGljIHZvaWQgb25HYW1lUGFkQ2hhbmdlKGNvbnN0IGNoYXIqIHN5c3BhdGgsIEVlemVfVWRldl9F
dmVudCwgdm9pZCogdXNlckRhdGEsIEVlemVfVWRldl9XYXRjaCogd2F0Y2hlcik7CisKKyAgICBI
YXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEdhbWVwYWREZXZpY2VFZmw+ID4gbV9kZXZp
Y2VNYXA7CisgICAgRWV6ZV9VZGV2X1dhdGNoKiBtX2dhbWVwYWRzV2F0Y2hlcjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShHQU1FUEFEKQorCisjZW5k
aWYgLy8gR2FtZXBhZHNQcm92aWRlckVmbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9saW51eC9HYW1lcGFkRGV2aWNlTGludXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbGludXgvR2FtZXBhZERldmljZUxpbnV4LmNwcAppbmRleCBiNmNiNTFlLi41OGFhOTky
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9HYW1lcGFkRGV2aWNl
TGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpbnV4L0dhbWVwYWREZXZp
Y2VMaW51eC5jcHAKQEAgLTI0LDExICsyNCwxMiBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJHYW1lcGFkRGV2aWNlTGludXguaCIKIAogI2lmIEVOQUJMRShHQU1FUEFE
X0RFUFJFQ0FURUQpIHx8IEVOQUJMRShHQU1FUEFEKQogCisjaW5jbHVkZSAiR2FtZXBhZERldmlj
ZUxpbnV4LmgiCiAjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVk
ZSA8c3lzL2lvY3RsLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgpAQCAtNDAsMjIgKzQxLDI3IEBAIEdhbWVwYWREZXZpY2VMaW51eDo6R2FtZXBh
ZERldmljZUxpbnV4KFN0cmluZyBkZXZpY2VGaWxlKQogICAgICwgbV9jb25uZWN0ZWQoZmFsc2Up
CiAgICAgLCBtX2xhc3RUaW1lc3RhbXAoMCkKIHsKLSAgICAvLyBGSVhNRTogTG9nIGVycm9ycyB3
aGVuIHJldHVybmluZyBlYXJseS4KICAgICBtX2ZpbGVEZXNjcmlwdG9yID0gb3BlbihkZXZpY2VG
aWxlLnV0ZjgoKS5kYXRhKCksIE9fUkRPTkxZIHwgT19OT05CTE9DSyk7Ci0gICAgaWYgKG1fZmls
ZURlc2NyaXB0b3IgPT0gLTEpCisgICAgaWYgKG1fZmlsZURlc2NyaXB0b3IgPT0gLTEpIHsKKyAg
ICAgICAgTE9HX0VSUk9SKCJFcnJvciBvcGVuaW5nIGdhbWVwYWQgZmlsZSBkZXNjcmlwdG9yICVz
LiIsIGRldmljZUZpbGUudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAK
ICAgICBjaGFyIGRldmljZU5hbWVbMTAyNF07Ci0gICAgaWYgKGlvY3RsKG1fZmlsZURlc2NyaXB0
b3IsIEpTSU9DR05BTUUoc2l6ZW9mKGRldmljZU5hbWUpKSwgZGV2aWNlTmFtZSkgPCAwKQorICAg
IGlmIChpb2N0bChtX2ZpbGVEZXNjcmlwdG9yLCBKU0lPQ0dOQU1FKHNpemVvZihkZXZpY2VOYW1l
KSksIGRldmljZU5hbWUpIDwgMCkgeworICAgICAgICBMT0dfRVJST1IoIkVycm9yIHJldHJpZXZp
bmcgZ2FtZXBhZCBuYW1lLiIpOwogICAgICAgICByZXR1cm47CisgICAgfQogICAgIG1fZGV2aWNl
TmFtZSA9IFN0cmluZyhkZXZpY2VOYW1lKS5zaW1wbGlmeVdoaXRlU3BhY2UoKTsKIAogICAgIHVp
bnQ4X3QgbnVtYmVyT2ZBeGVzOwogICAgIHVpbnQ4X3QgbnVtYmVyT2ZCdXR0b25zOwotICAgIGlm
IChpb2N0bChtX2ZpbGVEZXNjcmlwdG9yLCBKU0lPQ0dBWEVTLCAmbnVtYmVyT2ZBeGVzKSA8IDAg
fHwgaW9jdGwobV9maWxlRGVzY3JpcHRvciwgSlNJT0NHQlVUVE9OUywgJm51bWJlck9mQnV0dG9u
cykgPCAwKQorICAgIGlmIChpb2N0bChtX2ZpbGVEZXNjcmlwdG9yLCBKU0lPQ0dBWEVTLCAmbnVt
YmVyT2ZBeGVzKSA8IDAgfHwgaW9jdGwobV9maWxlRGVzY3JpcHRvciwgSlNJT0NHQlVUVE9OUywg
Jm51bWJlck9mQnV0dG9ucykgPCAwKSB7CisgICAgICAgIExPR19FUlJPUigiRXJyb3IgcmV0cmll
dmluZyBnYW1lcGFkIGlucHV0IGluZm9ybWF0aW9ucy4iKTsKICAgICAgICAgcmV0dXJuOworICAg
IH0KICAgICBtX2F4ZXMuZmlsbCgwLjAsIG51bWJlck9mQXhlcyk7Ci0gICAgbV9idXR0b25zLmZp
bGwoMC4wLCBudW1iZXJPZkJ1dHRvbnMpOworICAgIG1fYnV0dG9ucy5maWxsKHtmYWxzZSwgMC4w
fSwgbnVtYmVyT2ZCdXR0b25zKTsKIH0KIAogR2FtZXBhZERldmljZUxpbnV4Ojp+R2FtZXBhZERl
dmljZUxpbnV4KCkKQEAgLTY0LDYgKzcwLDMyIEBAIEdhbWVwYWREZXZpY2VMaW51eDo6fkdhbWVw
YWREZXZpY2VMaW51eCgpCiAgICAgICAgIGNsb3NlKG1fZmlsZURlc2NyaXB0b3IpOwogfQogCitH
YW1lcGFkRGV2aWNlTGludXg6OkdhbWVwYWREZXZpY2VMaW51eChHYW1lcGFkRGV2aWNlTGludXgm
JiBvdGhlcikKKyAgICA6IG1fZmlsZURlc2NyaXB0b3J7b3RoZXIubV9maWxlRGVzY3JpcHRvcn0K
KyAgICAsIG1fY29ubmVjdGVke290aGVyLm1fY29ubmVjdGVkfQorICAgICwgbV9kZXZpY2VOYW1l
e3N0ZDo6bW92ZShvdGhlci5tX2RldmljZU5hbWUpfQorICAgICwgbV9sYXN0VGltZXN0YW1we290
aGVyLm1fbGFzdFRpbWVzdGFtcH0KKyAgICAsIG1fYXhlc3tzdGQ6Om1vdmUob3RoZXIubV9heGVz
KX0KKyAgICAsIG1fYnV0dG9uc3tzdGQ6Om1vdmUob3RoZXIubV9idXR0b25zKX0KK3sKKyAgICBv
dGhlci5tX2ZpbGVEZXNjcmlwdG9yID0gLTE7CisgICAgb3RoZXIubV9jb25uZWN0ZWQgPSBmYWxz
ZTsKK30KKworR2FtZXBhZERldmljZUxpbnV4JiBHYW1lcGFkRGV2aWNlTGludXg6Om9wZXJhdG9y
ID0oR2FtZXBhZERldmljZUxpbnV4JiYgb3RoZXIpCit7CisgICAgbV9maWxlRGVzY3JpcHRvciA9
IG90aGVyLm1fZmlsZURlc2NyaXB0b3I7CisgICAgbV9jb25uZWN0ZWQgPSBvdGhlci5tX2Nvbm5l
Y3RlZDsKKyAgICBtX2RldmljZU5hbWUgPSBzdGQ6Om1vdmUob3RoZXIubV9kZXZpY2VOYW1lKTsK
KyAgICBtX2xhc3RUaW1lc3RhbXAgPSBvdGhlci5tX2xhc3RUaW1lc3RhbXA7CisgICAgbV9heGVz
ID0gc3RkOjptb3ZlKG90aGVyLm1fYXhlcyk7CisgICAgbV9idXR0b25zID0gc3RkOjptb3ZlKG90
aGVyLm1fYnV0dG9ucyk7CisKKyAgICBvdGhlci5tX2ZpbGVEZXNjcmlwdG9yID0gLTE7CisgICAg
b3RoZXIubV9jb25uZWN0ZWQgPSBmYWxzZTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKIHZvaWQg
R2FtZXBhZERldmljZUxpbnV4Ojp1cGRhdGVGb3JFdmVudChzdHJ1Y3QganNfZXZlbnQgZXZlbnQp
CiB7CiAgICAgaWYgKCEoZXZlbnQudHlwZSAmIEpTX0VWRU5UX0FYSVMgfHwgZXZlbnQudHlwZSAm
IEpTX0VWRU5UX0JVVFRPTikpCkBAIC03NiwyMiArMTA4LDI3IEBAIHZvaWQgR2FtZXBhZERldmlj
ZUxpbnV4Ojp1cGRhdGVGb3JFdmVudChzdHJ1Y3QganNfZXZlbnQgZXZlbnQpCiAKICAgICBpZiAo
ZXZlbnQudHlwZSAmIEpTX0VWRU5UX0FYSVMpCiAgICAgICAgIG1fYXhlc1tldmVudC5udW1iZXJd
ID0gbm9ybWFsaXplQXhpc1ZhbHVlKGV2ZW50LnZhbHVlKTsKLSAgICBlbHNlIGlmIChldmVudC50
eXBlICYgSlNfRVZFTlRfQlVUVE9OKQotICAgICAgICBtX2J1dHRvbnNbZXZlbnQubnVtYmVyXSA9
IG5vcm1hbGl6ZUJ1dHRvblZhbHVlKGV2ZW50LnZhbHVlKTsKKyAgICBlbHNlIGlmIChldmVudC50
eXBlICYgSlNfRVZFTlRfQlVUVE9OKSB7CisgICAgICAgIG1fYnV0dG9uc1tldmVudC5udW1iZXJd
LnNlY29uZCA9IG5vcm1hbGl6ZUJ1dHRvblZhbHVlKGV2ZW50LnZhbHVlKTsKKyAgICAgICAgaWYg
KG1fYnV0dG9uc1tldmVudC5udW1iZXJdLnNlY29uZCA+IEdhbWVwYWRCdXR0b246OkRFRkFVTFRf
UFJFU1NfVEhSRVNIT0xEKQorICAgICAgICAgICAgbV9idXR0b25zW2V2ZW50Lm51bWJlcl0uZmly
c3QgPSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2J1dHRvbnNbZXZlbnQubnVt
YmVyXS5maXJzdCA9IGZhbHNlOworICAgIH0KIAogICAgIG1fbGFzdFRpbWVzdGFtcCA9IGV2ZW50
LnRpbWU7CiB9CiAKLWZsb2F0IEdhbWVwYWREZXZpY2VMaW51eDo6bm9ybWFsaXplQXhpc1ZhbHVl
KHNob3J0IHZhbHVlKQorY29uc3RleHByIGRvdWJsZSBHYW1lcGFkRGV2aWNlTGludXg6Om5vcm1h
bGl6ZUF4aXNWYWx1ZShzaG9ydCB2YWx1ZSkKIHsKICAgICAvLyBOb3JtYWxpemUgZnJvbSByYW5n
ZSBbLTMyNzY3LCAzMjc2N10gaW50byByYW5nZSBbLTEuMCwgMS4wXQotICAgIHJldHVybiB2YWx1
ZSAvIDMyNzY3LjBmOworICAgIHJldHVybiB2YWx1ZSAvIHN0YXRpY19jYXN0PGRvdWJsZT4oc3Rk
OjpudW1lcmljX2xpbWl0czxzaG9ydD46Om1heCgpKTsKIH0KIAotZmxvYXQgR2FtZXBhZERldmlj
ZUxpbnV4Ojpub3JtYWxpemVCdXR0b25WYWx1ZShzaG9ydCB2YWx1ZSkKK2NvbnN0ZXhwciBkb3Vi
bGUgR2FtZXBhZERldmljZUxpbnV4Ojpub3JtYWxpemVCdXR0b25WYWx1ZShzaG9ydCB2YWx1ZSkK
IHsKICAgICAvLyBOb3JtYWxpemUgZnJvbSByYW5nZSBbMCwgMV0gaW50byByYW5nZSBbMC4wLCAx
LjBdCi0gICAgcmV0dXJuIHZhbHVlIC8gMS4wZjsKKyAgICByZXR1cm4gdmFsdWUgLyAxLjsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbGludXgvR2FtZXBhZERldmljZUxpbnV4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9saW51eC9HYW1lcGFkRGV2aWNlTGludXguaAppbmRleCAxM2ZmNDI0Li5lNGU4ZDFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9HYW1lcGFkRGV2aWNlTGludXgu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9HYW1lcGFkRGV2aWNlTGludXgu
aApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEdBTUVQQURfREVQUkVDQVRFRCkgfHwg
RU5BQkxFKEdBTUVQQUQpCiAKKyNpbmNsdWRlICJHYW1lcGFkQnV0dG9uLmgiCiAjaW5jbHVkZSA8
bGludXgvam95c3RpY2suaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CkBAIC0zOCwzMiArMzksMzcgQEAgY2xhc3MgR2FtZXBhZERldmlj
ZUxpbnV4IHsKIHB1YmxpYzoKICAgICBib29sIGNvbm5lY3RlZCgpIHsgcmV0dXJuIG1fY29ubmVj
dGVkOyB9OwogCi0gICAgU3RyaW5nIGlkKCkgeyByZXR1cm4gbV9kZXZpY2VOYW1lOyB9Ci0gICAg
dW5zaWduZWQgbG9uZyBsb25nIHRpbWVzdGFtcCgpIHsgcmV0dXJuIG1fbGFzdFRpbWVzdGFtcDsg
fQorICAgIGNvbnN0IFN0cmluZyYgaWQoKSBjb25zdCB7IHJldHVybiBtX2RldmljZU5hbWU7IH0K
KyAgICB1bnNpZ25lZCBsb25nIGxvbmcgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0
VGltZXN0YW1wOyB9CiAKLSAgICB1bnNpZ25lZCBheGVzQ291bnQoKSB7IHJldHVybiBtX2F4ZXMu
c2l6ZSgpOyB9Ci0gICAgZmxvYXQqIGF4ZXNEYXRhKCkgeyByZXR1cm4gbV9heGVzLmRhdGEoKTsg
fQorICAgIHVuc2lnbmVkIGF4ZXNDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fYXhlcy5zaXplKCk7
IH0KKyAgICBjb25zdCBkb3VibGUqIGF4ZXNEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9heGVzLmRh
dGEoKTsgfQogCi0gICAgdW5zaWduZWQgYnV0dG9uc0NvdW50KCkgeyByZXR1cm4gbV9idXR0b25z
LnNpemUoKTsgfQotICAgIGZsb2F0KiBidXR0b25zRGF0YSgpIHsgcmV0dXJuIG1fYnV0dG9ucy5k
YXRhKCk7IH0KKyAgICB1bnNpZ25lZCBidXR0b25zQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2J1
dHRvbnMuc2l6ZSgpOyB9CisgICAgY29uc3QgR2FtZXBhZEJ1dHRvbjo6QnV0dG9uU3RydWN0KiBi
dXR0b25zRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fYnV0dG9ucy5kYXRhKCk7IH0KIAogcHJvdGVj
dGVkOgogICAgIEdhbWVwYWREZXZpY2VMaW51eChTdHJpbmcgZGV2aWNlRmlsZSk7Ci0gICAgfkdh
bWVwYWREZXZpY2VMaW51eCgpOworICAgIEdhbWVwYWREZXZpY2VMaW51eChjb25zdCBHYW1lcGFk
RGV2aWNlTGludXgmKSA9IGRlbGV0ZTsKKyAgICBHYW1lcGFkRGV2aWNlTGludXgoR2FtZXBhZERl
dmljZUxpbnV4JiYpOworICAgIHZpcnR1YWwgfkdhbWVwYWREZXZpY2VMaW51eCgpOworCisgICAg
R2FtZXBhZERldmljZUxpbnV4JiBvcGVyYXRvciA9KGNvbnN0IEdhbWVwYWREZXZpY2VMaW51eCYp
ID0gZGVsZXRlOworICAgIEdhbWVwYWREZXZpY2VMaW51eCYgb3BlcmF0b3IgPShHYW1lcGFkRGV2
aWNlTGludXgmJik7CiAKICAgICB2b2lkIHVwZGF0ZUZvckV2ZW50KHN0cnVjdCBqc19ldmVudCk7
CiAgICAgaW50IG1fZmlsZURlc2NyaXB0b3I7CiAKIHByaXZhdGU6Ci0gICAgZmxvYXQgbm9ybWFs
aXplQXhpc1ZhbHVlKHNob3J0IHZhbHVlKTsKLSAgICBmbG9hdCBub3JtYWxpemVCdXR0b25WYWx1
ZShzaG9ydCB2YWx1ZSk7CisgICAgc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgbm9ybWFsaXplQXhp
c1ZhbHVlKHNob3J0IHZhbHVlKTsKKyAgICBzdGF0aWMgY29uc3RleHByIGRvdWJsZSBub3JtYWxp
emVCdXR0b25WYWx1ZShzaG9ydCB2YWx1ZSk7CiAKICAgICBib29sIG1fY29ubmVjdGVkOwogICAg
IFN0cmluZyBtX2RldmljZU5hbWU7CiAgICAgdW5zaWduZWQgbG9uZyBsb25nIG1fbGFzdFRpbWVz
dGFtcDsKIAotICAgIFZlY3RvcjxmbG9hdD4gbV9heGVzOwotICAgIFZlY3RvcjxmbG9hdD4gbV9i
dXR0b25zOworICAgIFZlY3Rvcjxkb3VibGU+IG1fYXhlczsKKyAgICBWZWN0b3I8R2FtZXBhZEJ1
dHRvbjo6QnV0dG9uU3RydWN0PiBtX2J1dHRvbnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9j
bWFrZS9PcHRpb25zRWZsLmNtYWtlCmluZGV4IGNjYWQ5MzEuLjhlOTVmNzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25z
RWZsLmNtYWtlCkBAIC02NSw3ICs2NSw3IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZB
TFVFKEVOQUJMRV9FTkNSWVBURURfTUVESUEgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMiBPRkYpCiBXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfRklMVEVSUyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSBPTikKLVdFQktJVF9PUFRJT05fREVG
QVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9HQU1FUEFEIE9GRikKK1dFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9HQU1FUEFEIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCBPRkYpCiBXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSBPRkYpCiBXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJT
IE9GRikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233712</attachid>
            <date>2014-06-24 09:55:06 -0700</date>
            <delta_ts>2014-06-24 09:55:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>efl.patch</filename>
            <type>text/plain</type>
            <size>24854</size>
            <attacher name="Michal Debski">m.debski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA4MGNmM2YwLi4wMzIxYzRk
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTQtMDYtMjQgIE1pY2hhbCBEZWJza2kgIDxtLmRlYnNraUBzYW1zdW5nLmNvbT4KKworICAg
ICAgICBbRUZMXSBHYW1lcGFkZCBwcm92aWRlciBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzODUzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRUZMIGdhbWVwYWQgd29ya3MuCisK
KyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZToKKwogMjAxNC0wNi0yMyAg
S3J6eXN6dG9mIEN6ZWNoICA8ay5jemVjaEBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBQ
bGF0Zm9ybSBzdXBwb3J0IGZvciBXZWJTcGVlY2ggZmVhdHVyZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNzA5
ZDY3Li43NWE2NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTQtMDYtMjQgIE1p
Y2hhbCBEZWJza2kgIDxtLmRlYnNraUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBHYW1l
cGFkcyBwcm92aWRlciBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzODUzCisKKyAgICAgICAgVGhpcyBhZGRzIGdhbWVwYWQg
cHJvdmlkZXIgaW1wbGVtZW50YXRpb24gZm9yIEVGTCBwb3J0LgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGhpcyB3b3VsZCBy
ZXF1aXJlIHBoeXNpY2FsIGRldmljZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvR2FtZXBh
ZHNQcm92aWRlckVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkRGV2aWNlRWZsOjpH
YW1lcGFkRGV2aWNlRWZsKToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWREZXZpY2VFZmw6Om9w
ZXJhdG9yID0pOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZERldmljZUVmbDo6c3RhcnRXYXRj
aGluZyk6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkRGV2aWNlRWZsOjpyZWFkQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZERldmljZUVmbDo6aWQpOgorICAgICAgICAoV2Vi
Q29yZTo6R2FtZXBhZERldmljZUVmbDo6YXhlc0NvdW50KToKKyAgICAgICAgKFdlYkNvcmU6Okdh
bWVwYWREZXZpY2VFZmw6OmF4ZXNBcnJheSk6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkRGV2
aWNlRWZsOjpidXR0b25zQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZERldmljZUVm
bDo6YnV0dG9uc0FycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRzRWZsOjpHYW1lcGFk
c0VmbCk6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkc0VmbDo6cmVnaXN0ZXJEZXZpY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZHNFZmw6OnVucmVnaXN0ZXJEZXZpY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlR2FtZXBhZHNQcm92aWRlcik6CisgICAgICAgICogcGxhdGZvcm0v
ZWZsL0dhbWVwYWRzUHJvdmlkZXJFZmwuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpHYW1l
cGFkRGV2aWNlRWZsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZERldmljZUVm
bDo6cmVzZXRGZEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZERldmljZUVmbDo6
ZGV2aWNlRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkRGV2aWNlRWZsOjpnZXRJZCk6
CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkRGV2aWNlRWZsOjpzZXRJZCk6CisgICAgICAgIChX
ZWJDb3JlOjpHYW1lcGFkRGV2aWNlRWZsOjpnYW1lcGFkTWFuYWdlcik6CisgICAgICAgICogcGxh
dGZvcm0vbGludXgvR2FtZXBhZERldmljZUxpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdh
bWVwYWREZXZpY2VMaW51eDo6R2FtZXBhZERldmljZUxpbnV4KToKKyAgICAgICAgKFdlYkNvcmU6
OkdhbWVwYWREZXZpY2VMaW51eDo6b3BlcmF0b3IgPSk6CisgICAgICAgIChXZWJDb3JlOjpHYW1l
cGFkRGV2aWNlTGludXg6OnVwZGF0ZUZvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVw
YWREZXZpY2VMaW51eDo6bm9ybWFsaXplQXhpc1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okdh
bWVwYWREZXZpY2VMaW51eDo6bm9ybWFsaXplQnV0dG9uVmFsdWUpOgorICAgICAgICAqIHBsYXRm
b3JtL2xpbnV4L0dhbWVwYWREZXZpY2VMaW51eC5oOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBh
ZERldmljZUxpbnV4OjppZCk6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkRGV2aWNlTGludXg6
OnRpbWVzdGFtcCk6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkRGV2aWNlTGludXg6OmF4ZXND
b3VudCk6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkRGV2aWNlTGludXg6OmF4ZXNEYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWREZXZpY2VMaW51eDo6YnV0dG9uc0NvdW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkdhbWVwYWREZXZpY2VMaW51eDo6YnV0dG9uc0RhdGEpOgorCiAyMDE0
LTA2LTEzICBNaWNoYWwgRGVic2tpICA8bS5kZWJza2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAg
TGF5b3V0VGVzdHMgZm9yIEdhbWVwYWQgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvR2FtZXBhZHNQcm92aWRlckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvR2FtZXBhZHNQcm92aWRlckVmbC5jcHAKaW5kZXggZTY5YTU4Ni4uYTlmMDAxYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0dhbWVwYWRzUHJvdmlkZXJF
ZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9HYW1lcGFkc1Byb3ZpZGVy
RWZsLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwg
Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
U2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsNTYgKzI1LDI5IEBACiAgKi8KIAogI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkdhbWVwYWRzUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJHYW1lcGFk
c1Byb3ZpZGVyRWZsLmgiCiAKLSNpZiBFTkFCTEUoR0FNRVBBRF9ERVBSRUNBVEVEKQorI2lmIEVO
QUJMRShHQU1FUEFEKQogCiAjaW5jbHVkZSAiR2FtZXBhZERldmljZUxpbnV4LmgiCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSA8RWNv
cmUuaD4KICNpbmNsdWRlIDxFZXplLmg+CiAjaW5jbHVkZSA8RWluYS5oPgogI2luY2x1ZGUgPHVu
aXN0ZC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7CituYW1lc3BhY2UgeworY29uc3QgY2hhciBqb3lzdGlja1ByZWZpeFtdID0g
Ii9kZXYvaW5wdXQvanMiOworfQogCi1zdGF0aWMgY29uc3QgY2hhciBqb3lzdGlja1ByZWZpeFtd
ID0gIi9kZXYvaW5wdXQvanMiOworbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBHYW1lcGFk
RGV2aWNlRWZsIDogcHVibGljIEdhbWVwYWREZXZpY2VMaW51eCB7Ci1wdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NPd25QdHI8R2FtZXBhZERldmljZUVmbD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2
aWNlRmlsZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgR2FtZXBhZERldmlj
ZUVmbChkZXZpY2VGaWxlKSk7Ci0gICAgfQotICAgIH5HYW1lcGFkRGV2aWNlRWZsKCk7Ci0gICAg
dm9pZCByZXNldEZkSGFuZGxlcigpIHsgbV9mZEhhbmRsZXIgPSAwOyB9Ci0gICAgY29uc3QgU3Ry
aW5nJiBkZXZpY2VGaWxlKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VGaWxlOyB9Ci0KLXByaXZh
dGU6Ci0gICAgR2FtZXBhZERldmljZUVmbChjb25zdCBTdHJpbmcmIGRldmljZUZpbGUpOwotICAg
IHN0YXRpYyBFaW5hX0Jvb2wgcmVhZENhbGxiYWNrKHZvaWQqIHVzZXJEYXRhLCBFY29yZV9GZF9I
YW5kbGVyKik7Ci0KLSAgICBFY29yZV9GZF9IYW5kbGVyKiBtX2ZkSGFuZGxlcjsKLSAgICBTdHJp
bmcgbV9kZXZpY2VGaWxlOwotfTsKLQotR2FtZXBhZERldmljZUVmbDo6R2FtZXBhZERldmljZUVm
bChjb25zdCBTdHJpbmcmIGRldmljZUZpbGUpCi0gICAgOiBHYW1lcGFkRGV2aWNlTGludXgoZGV2
aWNlRmlsZSkKLSAgICAsIG1fZmRIYW5kbGVyKDApCi0gICAgLCBtX2RldmljZUZpbGUoZGV2aWNl
RmlsZSkKK0dhbWVwYWREZXZpY2VFZmw6OkdhbWVwYWREZXZpY2VFZmwoR2FtZXBhZHNNYW5hZ2Vy
KiBtYW5hZ2VyLCBjb25zdCBTdHJpbmcmIGRldmljZUZpbGUpCisgICAgOiBHYW1lcGFkRGV2aWNl
TGludXh7ZGV2aWNlRmlsZX0KKyAgICAsIG1fbWFuYWdlcnttYW5hZ2VyfQorICAgICwgbV9mZEhh
bmRsZXJ7MH0KKyAgICAsIG1fZGV2aWNlRmlsZXtkZXZpY2VGaWxlfQogewotICAgIGlmIChtX2Zp
bGVEZXNjcmlwdG9yIDwgMCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9mZEhhbmRsZXIgPSBl
Y29yZV9tYWluX2ZkX2hhbmRsZXJfYWRkKG1fZmlsZURlc2NyaXB0b3IsIEVDT1JFX0ZEX1JFQUQs
IHJlYWRDYWxsYmFjaywgdGhpcywgMCwgMCk7Ci0gICAgaWYgKCFtX2ZkSGFuZGxlcikKLSAgICAg
ICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHRoZSBFY29yZV9GZF9IYW5kbGVyLiIpOwog
fQogCiBHYW1lcGFkRGV2aWNlRWZsOjp+R2FtZXBhZERldmljZUVmbCgpCkBAIC04Miw2ICs1Niw0
NiBAQCBHYW1lcGFkRGV2aWNlRWZsOjp+R2FtZXBhZERldmljZUVmbCgpCiAgICAgICAgIGVjb3Jl
X21haW5fZmRfaGFuZGxlcl9kZWwobV9mZEhhbmRsZXIpOwogfQogCitHYW1lcGFkRGV2aWNlRWZs
OjpHYW1lcGFkRGV2aWNlRWZsKEdhbWVwYWREZXZpY2VFZmwmJiBvdGhlcikKKyAgICA6IEdhbWVw
YWREZXZpY2VMaW51eHtzdGQ6Om1vdmUob3RoZXIpfQorICAgICwgbV9tYW5hZ2Vye290aGVyLm1f
bWFuYWdlcn0KKyAgICAsIG1fZmRIYW5kbGVyezB9CisgICAgLCBtX2RldmljZUZpbGV7c3RkOjpt
b3ZlKG90aGVyLm1fZGV2aWNlRmlsZSl9CisgICAgLCBtX2lke290aGVyLm1faWR9Cit7CisgICAg
aWYgKG90aGVyLm1fZmRIYW5kbGVyKSB7CisgICAgICAgIGVjb3JlX21haW5fZmRfaGFuZGxlcl9k
ZWwob3RoZXIubV9mZEhhbmRsZXIpOworICAgICAgICBvdGhlci5tX2ZkSGFuZGxlciA9IDA7Cisg
ICAgICAgIHN0YXJ0V2F0Y2hpbmcoKTsKKyAgICB9Cit9CisKK0dhbWVwYWREZXZpY2VFZmwmIEdh
bWVwYWREZXZpY2VFZmw6Om9wZXJhdG9yID0oR2FtZXBhZERldmljZUVmbCYmIG90aGVyKQorewor
ICAgIEdhbWVwYWREZXZpY2VMaW51eDo6b3BlcmF0b3I9KHN0ZDo6bW92ZShvdGhlcikpOworICAg
IG1fbWFuYWdlciA9IG90aGVyLm1fbWFuYWdlcjsKKyAgICBtX2ZkSGFuZGxlciA9IDA7CisgICAg
bV9kZXZpY2VGaWxlID0gc3RkOjptb3ZlKG90aGVyLm1fZGV2aWNlRmlsZSk7CisgICAgbV9pZCA9
IG90aGVyLm1faWQ7CisKKyAgICBpZiAob3RoZXIubV9mZEhhbmRsZXIpIHsKKyAgICAgICAgZWNv
cmVfbWFpbl9mZF9oYW5kbGVyX2RlbChvdGhlci5tX2ZkSGFuZGxlcik7CisgICAgICAgIG90aGVy
Lm1fZmRIYW5kbGVyID0gMDsKKyAgICAgICAgc3RhcnRXYXRjaGluZygpOworICAgIH0KKyAgICBy
ZXR1cm4gKnRoaXM7Cit9CisKK2Jvb2wgR2FtZXBhZERldmljZUVmbDo6c3RhcnRXYXRjaGluZygp
Cit7CisgICAgaWYgKG1fZmlsZURlc2NyaXB0b3IgPCAwIHx8IG1fZmRIYW5kbGVyKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgbV9mZEhhbmRsZXIgPSBlY29yZV9tYWluX2ZkX2hhbmRsZXJf
YWRkKG1fZmlsZURlc2NyaXB0b3IsIEVDT1JFX0ZEX1JFQUQsIHJlYWRDYWxsYmFjaywgdGhpcywg
MCwgMCk7CisgICAgaWYgKCFtX2ZkSGFuZGxlcikKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQg
dG8gY3JlYXRlIHRoZSBFY29yZV9GZF9IYW5kbGVyLiIpOworICAgIHJldHVybiBtX2ZkSGFuZGxl
cjsKK30KKwogRWluYV9Cb29sIEdhbWVwYWREZXZpY2VFZmw6OnJlYWRDYWxsYmFjayh2b2lkKiB1
c2VyRGF0YSwgRWNvcmVfRmRfSGFuZGxlciogZmRIYW5kbGVyKQogewogICAgIEdhbWVwYWREZXZp
Y2VFZmwqIGdhbWVwYWREZXZpY2UgPSBzdGF0aWNfY2FzdDxHYW1lcGFkRGV2aWNlRWZsKj4odXNl
ckRhdGEpOwpAQCAtMTA3LDI4ICsxMjEsMzkgQEAgRWluYV9Cb29sIEdhbWVwYWREZXZpY2VFZmw6
OnJlYWRDYWxsYmFjayh2b2lkKiB1c2VyRGF0YSwgRWNvcmVfRmRfSGFuZGxlciogZmRIYW4KICAg
ICB9CiAKICAgICBnYW1lcGFkRGV2aWNlLT51cGRhdGVGb3JFdmVudChldmVudCk7CisgICAgaWYg
KGdhbWVwYWREZXZpY2UtPmNvbm5lY3RlZCgpKSB7CisgICAgICAgIGlmIChldmVudC50eXBlICYg
SlNfRVZFTlRfQVhJUykKKyAgICAgICAgICAgIGdhbWVwYWREZXZpY2UtPmdhbWVwYWRNYW5hZ2Vy
KCktPmdhbWVwYWRBeGlzQ2hhbmdlZChnYW1lcGFkRGV2aWNlLT5nZXRJZCgpLCBldmVudC5udW1i
ZXIsIGdhbWVwYWREZXZpY2UtPmF4ZXNEYXRhKClbZXZlbnQubnVtYmVyXSk7CisgICAgICAgIGVs
c2UgaWYgKGV2ZW50LnR5cGUgJiBKU19FVkVOVF9CVVRUT04pCisgICAgICAgICAgICBnYW1lcGFk
RGV2aWNlLT5nYW1lcGFkTWFuYWdlcigpLT5nYW1lcGFkQnV0dG9uQ2hhbmdlZChnYW1lcGFkRGV2
aWNlLT5nZXRJZCgpLCBldmVudC5udW1iZXIsIGdhbWVwYWREZXZpY2UtPmJ1dHRvbnNEYXRhKClb
ZXZlbnQubnVtYmVyXSk7CisgICAgfQogICAgIHJldHVybiBFQ09SRV9DQUxMQkFDS19SRU5FVzsK
IH0KIAotY2xhc3MgR2FtZXBhZHNFZmwgewotICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3ll
ZDxHYW1lcGFkc0VmbD47Ci1wdWJsaWM6Ci0gICAgR2FtZXBhZHNFZmwoc2l6ZV90IGxlbmd0aCk7
Ci0KLSAgICB2b2lkIHJlZ2lzdGVyRGV2aWNlKGNvbnN0IFN0cmluZyYgc3lzcGF0aCk7Ci0gICAg
dm9pZCB1bnJlZ2lzdGVyRGV2aWNlKGNvbnN0IFN0cmluZyYgc3lzcGF0aCk7Citjb25zdCBTdHJp
bmcmIEdhbWVwYWREZXZpY2VFZmw6OmlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gR2FtZXBhZERl
dmljZUxpbnV4OjppZCgpOworfQogCi0gICAgdm9pZCB1cGRhdGVHYW1lcGFkTGlzdChHYW1lcGFk
TGlzdCopOwordW5zaWduZWQgR2FtZXBhZERldmljZUVmbDo6YXhlc0NvdW50KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gR2FtZXBhZERldmljZUxpbnV4OjpheGVzQ291bnQoKTsKK30KIAotcHJpdmF0
ZToKLSAgICB+R2FtZXBhZHNFZmwoKTsKLSAgICBzdGF0aWMgdm9pZCBvbkdhbWVQYWRDaGFuZ2Uo
Y29uc3QgY2hhciogc3lzcGF0aCwgRWV6ZV9VZGV2X0V2ZW50LCB2b2lkKiB1c2VyRGF0YSwgRWV6
ZV9VZGV2X1dhdGNoKiB3YXRjaGVyKTsKK2NvbnN0IGRvdWJsZSogR2FtZXBhZERldmljZUVmbDo6
YXhlc0FycmF5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gR2FtZXBhZERldmljZUxpbnV4OjpheGVz
RGF0YSgpOworfQogCi0gICAgVmVjdG9yPE93blB0cjxHYW1lcGFkRGV2aWNlRWZsPiA+IG1fc2xv
dHM7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIEdhbWVwYWREZXZpY2VFZmwqPiBtX2RldmljZU1hcDsK
K3Vuc2lnbmVkIEdhbWVwYWREZXZpY2VFZmw6OmJ1dHRvbnNDb3VudCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIEdhbWVwYWREZXZpY2VMaW51eDo6YnV0dG9uc0NvdW50KCk7Cit9CiAKLSAgICBFZXpl
X1VkZXZfV2F0Y2gqIG1fZ2FtZXBhZHNXYXRjaGVyOwotfTsKK2NvbnN0IEdhbWVwYWRCdXR0b246
OkJ1dHRvblN0cnVjdCogR2FtZXBhZERldmljZUVmbDo6YnV0dG9uc0FycmF5KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gR2FtZXBhZERldmljZUxpbnV4OjpidXR0b25zRGF0YSgpOworfQogCiB2b2lk
IEdhbWVwYWRzRWZsOjpvbkdhbWVQYWRDaGFuZ2UoY29uc3QgY2hhciogc3lzcGF0aCwgRWV6ZV9V
ZGV2X0V2ZW50IGV2ZW50LCB2b2lkKiB1c2VyRGF0YSwgRWV6ZV9VZGV2X1dhdGNoKikKIHsKQEAg
LTE0Niw4ICsxNzEsOCBAQCB2b2lkIEdhbWVwYWRzRWZsOjpvbkdhbWVQYWRDaGFuZ2UoY29uc3Qg
Y2hhciogc3lzcGF0aCwgRWV6ZV9VZGV2X0V2ZW50IGV2ZW50LCB2bwogICAgIH0KIH0KIAotR2Ft
ZXBhZHNFZmw6OkdhbWVwYWRzRWZsKHNpemVfdCBsZW5ndGgpCi0gICAgOiBtX3Nsb3RzKGxlbmd0
aCkKK0dhbWVwYWRzRWZsOjpHYW1lcGFkc0VmbChHYW1lcGFkc01hbmFnZXIqIG1hbmFnZXIpCisg
ICAgOiBHYW1lcGFkc1Byb3ZpZGVyKG1hbmFnZXIpCiAgICAgLCBtX2dhbWVwYWRzV2F0Y2hlcigw
KQogewogICAgIGlmIChlZXplX2luaXQoKSA8IDApIHsKQEAgLTE4MSw3NiArMjA2LDQxIEBAIHZv
aWQgR2FtZXBhZHNFZmw6OnJlZ2lzdGVyRGV2aWNlKGNvbnN0IFN0cmluZyYgc3lzcGF0aCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgLy8gTWFrZSBzdXJlIGl0IGlzIGEgdmFsaWQgam95c3RpY2su
Ci0gICAgY29uc3QgY2hhciogZGV2aWNlRmlsZSA9IGVlemVfdWRldl9zeXNwYXRoX2dldF9kZXZw
YXRoKHN5c3BhdGgudXRmOCgpLmRhdGEoKSk7CisgICAgYXV0byBkZXZpY2VGaWxlID0gZWV6ZV91
ZGV2X3N5c3BhdGhfZ2V0X2RldnBhdGgoc3lzcGF0aC51dGY4KCkuZGF0YSgpKTsKICAgICBpZiAo
IWRldmljZUZpbGUgfHwgIWVpbmFfc3RyX2hhc19wcmVmaXgoZGV2aWNlRmlsZSwgam95c3RpY2tQ
cmVmaXgpKQogICAgICAgICByZXR1cm47CiAKICAgICBMT0coR2FtZXBhZCwgIlJlZ2lzdGVyaW5n
IGdhbWVwYWQgYXQgJXMiLCBkZXZpY2VGaWxlKTsKIAotICAgIGNvbnN0IHNpemVfdCBzbG90Q291
bnQgPSBtX3Nsb3RzLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwg
c2xvdENvdW50OyArK2luZGV4KSB7Ci0gICAgICAgIGlmICghbV9zbG90c1tpbmRleF0pIHsKLSAg
ICAgICAgICAgIG1fc2xvdHNbaW5kZXhdID0gR2FtZXBhZERldmljZUVmbDo6Y3JlYXRlKFN0cmlu
Zzo6ZnJvbVVURjgoZGV2aWNlRmlsZSkpOwotICAgICAgICAgICAgTE9HKEdhbWVwYWQsICJHYW1l
cGFkIGRldmljZSBuYW1lIGlzICVzIiwgbV9zbG90c1tpbmRleF0tPmlkKCkudXRmOCgpLmRhdGEo
KSk7Ci0gICAgICAgICAgICBtX2RldmljZU1hcC5hZGQoc3lzcGF0aCwgbV9zbG90c1tpbmRleF0u
Z2V0KCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KKworICAgIGF1dG8gaXQgPSBt
X2RldmljZU1hcC5mYXN0QWRkKHN5c3BhdGgsIEdhbWVwYWREZXZpY2VFZmw6OmNyZWF0ZShnYW1l
cGFkTWFuYWdlcigpLCBTdHJpbmc6OmZyb21VVEY4KGRldmljZUZpbGUpKSkuaXRlcmF0b3I7Cisg
ICAgYXV0byYgZ2FtZXBhZCA9ICppdC0+dmFsdWU7CisgICAgTE9HKEdhbWVwYWQsICJHYW1lcGFk
IGRldmljZSBuYW1lIGlzICVzIiwgZ2FtZXBhZC5pZCgpLnV0ZjgoKS5kYXRhKCkpOworICAgIGdh
bWVwYWQuc2V0SWQoZ2FtZXBhZE1hbmFnZXIoKS0+Z2FtZXBhZENvbm5lY3RlZChnYW1lcGFkKSk7
CisgICAgaWYgKCFnYW1lcGFkLnN0YXJ0V2F0Y2hpbmcoKSkgeworICAgICAgICBnYW1lcGFkTWFu
YWdlcigpLT5nYW1lcGFkRGlzY29ubmVjdGVkKGdhbWVwYWQuZ2V0SWQoKSwgZ2FtZXBhZCk7Cisg
ICAgICAgIG1fZGV2aWNlTWFwLnJlbW92ZShpdCk7CisgICAgICAgIHJldHVybjsKICAgICB9Cisg
ICAgcmV0dXJuOwogfQogCiB2b2lkIEdhbWVwYWRzRWZsOjp1bnJlZ2lzdGVyRGV2aWNlKGNvbnN0
IFN0cmluZyYgc3lzcGF0aCkKIHsKLSAgICBpZiAoIW1fZGV2aWNlTWFwLmNvbnRhaW5zKHN5c3Bh
dGgpKQorICAgIGF1dG8gaXQgPSBtX2RldmljZU1hcC5maW5kKHN5c3BhdGgpOworICAgIGlmIChp
dCA9PSBtX2RldmljZU1hcC5lbmQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgR2FtZXBhZERl
dmljZUVmbCogZ2FtZXBhZERldmljZSA9IG1fZGV2aWNlTWFwLnRha2Uoc3lzcGF0aCk7Ci0gICAg
TE9HKEdhbWVwYWQsICJVbnJlZ2lzdGVyaW5nIGdhbWVwYWQgYXQgJXMiLCBnYW1lcGFkRGV2aWNl
LT5kZXZpY2VGaWxlKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgY29uc3Qgc2l6ZV90IGluZGV4ID0g
bV9zbG90cy5maW5kKGdhbWVwYWREZXZpY2UpOwotICAgIEFTU0VSVChpbmRleCAhPSBub3RGb3Vu
ZCk7Ci0KLSAgICBtX3Nsb3RzW2luZGV4XS5jbGVhcigpOwotfQotCi12b2lkIEdhbWVwYWRzRWZs
Ojp1cGRhdGVHYW1lcGFkTGlzdChHYW1lcGFkTGlzdCogLyppbnRvKi8pCi17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLQotLy8gKioqKiogR2FtZXBhZCBpbnRlcmZhY2UgY2hhbmdlZC4gKioqKioK
LS8vCi0vLyAgICBBU1NFUlQobV9zbG90cy5zaXplKCkgPT0gaW50by0+bGVuZ3RoKCkpOwotLy8K
LS8vICAgIGNvbnN0IHNpemVfdCBzbG90Q291bnQgPSBtX3Nsb3RzLnNpemUoKTsKLS8vICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgc2xvdENvdW50OyArK2kpIHsKLS8vICAgICAgICBpZiAobV9z
bG90c1tpXS5nZXQoKSAmJiBtX3Nsb3RzW2ldLT5jb25uZWN0ZWQoKSkgewotLy8gICAgICAgICAg
ICBHYW1lcGFkRGV2aWNlRWZsKiBnYW1lcGFkRGV2aWNlID0gbV9zbG90c1tpXS5nZXQoKTsKLS8v
ICAgICAgICAgICAgUmVmUHRyPEdhbWVwYWQ+IGdhbWVwYWQgPSBpbnRvLT5pdGVtKGkpOwotLy8g
ICAgICAgICAgICBpZiAoIWdhbWVwYWQpCi0vLyAgICAgICAgICAgICAgICBnYW1lcGFkID0gR2Ft
ZXBhZDo6Y3JlYXRlKCk7Ci0vLwotLy8gICAgICAgICAgICBnYW1lcGFkLT5pbmRleChpKTsKLS8v
ICAgICAgICAgICAgZ2FtZXBhZC0+aWQoZ2FtZXBhZERldmljZS0+aWQoKSk7Ci0vLyAgICAgICAg
ICAgIGdhbWVwYWQtPnRpbWVzdGFtcChnYW1lcGFkRGV2aWNlLT50aW1lc3RhbXAoKSk7Ci0vLyAg
ICAgICAgICAgIGdhbWVwYWQtPmF4ZXMoZ2FtZXBhZERldmljZS0+YXhlc0NvdW50KCksIGdhbWVw
YWREZXZpY2UtPmF4ZXNEYXRhKCkpOwotLy8gICAgICAgICAgICBnYW1lcGFkLT5idXR0b25zKGdh
bWVwYWREZXZpY2UtPmJ1dHRvbnNDb3VudCgpLCBnYW1lcGFkRGV2aWNlLT5idXR0b25zRGF0YSgp
KTsKLS8vCi0vLyAgICAgICAgICAgIGludG8tPnNldChpLCBnYW1lcGFkKTsKLS8vICAgICAgICB9
IGVsc2UKLS8vICAgICAgICAgICAgaW50by0+c2V0KGksIDApOwotLy8gICAgfQotfQotCi12b2lk
IHNhbXBsZUdhbWVwYWRzKEdhbWVwYWRMaXN0KiBpbnRvKQotewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxHYW1lcGFkc0VmbD4gZ2FtZXBhZHNFZmwoaW50by0+bGVuZ3RoKCkpOwotICAgIGdh
bWVwYWRzRWZsLmdldCgpLnVwZGF0ZUdhbWVwYWRMaXN0KGludG8pOworICAgIExPRyhHYW1lcGFk
LCAiVW5yZWdpc3RlcmluZyBnYW1lcGFkIGF0ICVzIiwgaXQtPnZhbHVlLT5kZXZpY2VGaWxlKCku
dXRmOCgpLmRhdGEoKSk7CisgICAgZ2FtZXBhZE1hbmFnZXIoKS0+Z2FtZXBhZERpc2Nvbm5lY3Rl
ZChpdC0+dmFsdWUtPmdldElkKCksICppdC0+dmFsdWUpOworICAgIG1fZGV2aWNlTWFwLnJlbW92
ZShpdCk7CiB9CiAKLVBhc3NPd25QdHI8R2FtZXBhZHNQcm92aWRlcj4gY3JlYXRlR2FtZXBhZHNQ
cm92aWRlcihHYW1lcGFkc01hbmFnZXIqIC8qbWFuYWdlciovKQorUGFzc093blB0cjxHYW1lcGFk
c1Byb3ZpZGVyPiBjcmVhdGVHYW1lcGFkc1Byb3ZpZGVyKEdhbWVwYWRzTWFuYWdlciogbWFuYWdl
cikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgR2FtZXBhZHNFZmwobWFuYWdlcikpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoR0FNRVBBRF9ERVBSRUNBVEVEKQorI2Vu
ZGlmIC8vIEVOQUJMRShHQU1FUEFEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL0dhbWVwYWRzUHJvdmlkZXJFZmwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9HYW1lcGFkc1Byb3ZpZGVyRWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMGNmZmM3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9HYW1lcGFkc1Byb3ZpZGVyRWZsLmgKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBHYW1lcGFkc1Byb3ZpZGVyRWZsX2gKKyNkZWZpbmUgR2Ft
ZXBhZHNQcm92aWRlckVmbF9oCisKKyNpZiBFTkFCTEUoR0FNRVBBRCkKKworI2luY2x1ZGUgIkdh
bWVwYWREZXZpY2VMaW51eC5oIgorI2luY2x1ZGUgIkdhbWVwYWRzUHJvdmlkZXIuaCIKKyNpbmNs
dWRlICJHYW1lcGFkc01hbmFnZXIuaCIKKyNpbmNsdWRlIDxFY29yZS5oPgorI2luY2x1ZGUgPEVl
emUuaD4KKyNpbmNsdWRlIDxFaW5hLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHYW1l
cGFkRGV2aWNlRWZsIDogcHVibGljIEdhbWVwYWREZXZpY2VMaW51eCwgcHVibGljIEdhbWVwYWRE
ZXZpY2UgeworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R2FtZXBhZERldmlj
ZUVmbD4gY3JlYXRlKEdhbWVwYWRzTWFuYWdlciogbWFuYWdlciwgY29uc3QgU3RyaW5nJiBkZXZp
Y2VGaWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R2FtZXBhZERl
dmljZUVmbD4obWFuYWdlciwgZGV2aWNlRmlsZSk7CisgICAgfQorICAgIEdhbWVwYWREZXZpY2VF
ZmwoR2FtZXBhZHNNYW5hZ2VyKiwgY29uc3QgU3RyaW5nJiBkZXZpY2VGaWxlKTsKKyAgICBHYW1l
cGFkRGV2aWNlRWZsKGNvbnN0IEdhbWVwYWREZXZpY2VFZmwmKSA9IGRlbGV0ZTsKKyAgICBHYW1l
cGFkRGV2aWNlRWZsKEdhbWVwYWREZXZpY2VFZmwmJik7CisgICAgfkdhbWVwYWREZXZpY2VFZmwo
KTsKKworICAgIEdhbWVwYWREZXZpY2VFZmwmIG9wZXJhdG9yID0oY29uc3QgR2FtZXBhZERldmlj
ZUVmbCYpID0gZGVsZXRlOworICAgIEdhbWVwYWREZXZpY2VFZmwmIG9wZXJhdG9yID0oR2FtZXBh
ZERldmljZUVmbCYmKTsKKworICAgIHZvaWQgcmVzZXRGZEhhbmRsZXIoKSB7IG1fZmRIYW5kbGVy
ID0gMDsgfQorICAgIGNvbnN0IFN0cmluZyYgZGV2aWNlRmlsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGV2aWNlRmlsZTsgfQorICAgIHVuc2lnbmVkIGdldElkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsg
fQorICAgIHZvaWQgc2V0SWQodW5zaWduZWQgaWQpIHsgbV9pZCA9IGlkOyB9CisgICAgR2FtZXBh
ZHNNYW5hZ2VyKiBnYW1lcGFkTWFuYWdlcigpIGNvbnN0IHsgcmV0dXJuIG1fbWFuYWdlcjsgfQor
ICAgIGJvb2wgc3RhcnRXYXRjaGluZygpOworCisgICAgY29uc3QgU3RyaW5nJiBpZCgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHVuc2lnbmVkIGF4ZXNDb3VudCgpIGNvbnN0IG92ZXJyaWRlOworICAg
IGNvbnN0IGRvdWJsZSogYXhlc0FycmF5KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdW5zaWduZWQg
YnV0dG9uc0NvdW50KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgY29uc3QgR2FtZXBhZEJ1dHRvbjo6
QnV0dG9uU3RydWN0KiBidXR0b25zQXJyYXkoKSBjb25zdCBvdmVycmlkZTsKKworcHJpdmF0ZToK
KyAgICBzdGF0aWMgRWluYV9Cb29sIHJlYWRDYWxsYmFjayh2b2lkKiB1c2VyRGF0YSwgRWNvcmVf
RmRfSGFuZGxlciopOworCisgICAgR2FtZXBhZHNNYW5hZ2VyKiBtX21hbmFnZXI7CisgICAgRWNv
cmVfRmRfSGFuZGxlciogbV9mZEhhbmRsZXI7CisgICAgU3RyaW5nIG1fZGV2aWNlRmlsZTsKKyAg
ICB1bnNpZ25lZCBtX2lkOworfTsKKworY2xhc3MgR2FtZXBhZHNFZmwgOiBwdWJsaWMgR2FtZXBh
ZHNQcm92aWRlciB7CitwdWJsaWM6CisgICAgR2FtZXBhZHNFZmwoR2FtZXBhZHNNYW5hZ2VyKiBt
YW5hZ2VyKTsKKyAgICB+R2FtZXBhZHNFZmwoKTsKKworICAgIHZvaWQgcmVnaXN0ZXJEZXZpY2Uo
Y29uc3QgU3RyaW5nICZzeXNwYXRoKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJEZXZpY2UoY29uc3Qg
U3RyaW5nICZzeXNwYXRoKTsKKworcHJpdmF0ZToKKworICAgIHN0YXRpYyB2b2lkIG9uR2FtZVBh
ZENoYW5nZShjb25zdCBjaGFyKiBzeXNwYXRoLCBFZXplX1VkZXZfRXZlbnQsIHZvaWQqIHVzZXJE
YXRhLCBFZXplX1VkZXZfV2F0Y2gqIHdhdGNoZXIpOworCisgICAgSGFzaE1hcDxTdHJpbmcsIHN0
ZDo6dW5pcXVlX3B0cjxHYW1lcGFkRGV2aWNlRWZsPiA+IG1fZGV2aWNlTWFwOworICAgIEVlemVf
VWRldl9XYXRjaCogbV9nYW1lcGFkc1dhdGNoZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoR0FNRVBBRCkKKworI2VuZGlmIC8vIEdhbWVwYWRzUHJv
dmlkZXJFZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvR2Ft
ZXBhZERldmljZUxpbnV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpbnV4L0dhbWVw
YWREZXZpY2VMaW51eC5jcHAKaW5kZXggYjZjYjUxZS4uNThhYTk5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvR2FtZXBhZERldmljZUxpbnV4LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9HYW1lcGFkRGV2aWNlTGludXguY3BwCkBAIC0y
NCwxMSArMjQsMTIgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiR2Ft
ZXBhZERldmljZUxpbnV4LmgiCiAKICNpZiBFTkFCTEUoR0FNRVBBRF9ERVBSRUNBVEVEKSB8fCBF
TkFCTEUoR0FNRVBBRCkKIAorI2luY2x1ZGUgIkdhbWVwYWREZXZpY2VMaW51eC5oIgogI2luY2x1
ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgog
I2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTQw
LDIyICs0MSwyNyBAQCBHYW1lcGFkRGV2aWNlTGludXg6OkdhbWVwYWREZXZpY2VMaW51eChTdHJp
bmcgZGV2aWNlRmlsZSkKICAgICAsIG1fY29ubmVjdGVkKGZhbHNlKQogICAgICwgbV9sYXN0VGlt
ZXN0YW1wKDApCiB7Ci0gICAgLy8gRklYTUU6IExvZyBlcnJvcnMgd2hlbiByZXR1cm5pbmcgZWFy
bHkuCiAgICAgbV9maWxlRGVzY3JpcHRvciA9IG9wZW4oZGV2aWNlRmlsZS51dGY4KCkuZGF0YSgp
LCBPX1JET05MWSB8IE9fTk9OQkxPQ0spOwotICAgIGlmIChtX2ZpbGVEZXNjcmlwdG9yID09IC0x
KQorICAgIGlmIChtX2ZpbGVEZXNjcmlwdG9yID09IC0xKSB7CisgICAgICAgIExPR19FUlJPUigi
RXJyb3Igb3BlbmluZyBnYW1lcGFkIGZpbGUgZGVzY3JpcHRvciAlcy4iLCBkZXZpY2VGaWxlLnV0
ZjgoKS5kYXRhKCkpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgY2hhciBkZXZpY2VO
YW1lWzEwMjRdOwotICAgIGlmIChpb2N0bChtX2ZpbGVEZXNjcmlwdG9yLCBKU0lPQ0dOQU1FKHNp
emVvZihkZXZpY2VOYW1lKSksIGRldmljZU5hbWUpIDwgMCkKKyAgICBpZiAoaW9jdGwobV9maWxl
RGVzY3JpcHRvciwgSlNJT0NHTkFNRShzaXplb2YoZGV2aWNlTmFtZSkpLCBkZXZpY2VOYW1lKSA8
IDApIHsKKyAgICAgICAgTE9HX0VSUk9SKCJFcnJvciByZXRyaWV2aW5nIGdhbWVwYWQgbmFtZS4i
KTsKICAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBtX2RldmljZU5hbWUgPSBTdHJpbmcoZGV2
aWNlTmFtZSkuc2ltcGxpZnlXaGl0ZVNwYWNlKCk7CiAKICAgICB1aW50OF90IG51bWJlck9mQXhl
czsKICAgICB1aW50OF90IG51bWJlck9mQnV0dG9uczsKLSAgICBpZiAoaW9jdGwobV9maWxlRGVz
Y3JpcHRvciwgSlNJT0NHQVhFUywgJm51bWJlck9mQXhlcykgPCAwIHx8IGlvY3RsKG1fZmlsZURl
c2NyaXB0b3IsIEpTSU9DR0JVVFRPTlMsICZudW1iZXJPZkJ1dHRvbnMpIDwgMCkKKyAgICBpZiAo
aW9jdGwobV9maWxlRGVzY3JpcHRvciwgSlNJT0NHQVhFUywgJm51bWJlck9mQXhlcykgPCAwIHx8
IGlvY3RsKG1fZmlsZURlc2NyaXB0b3IsIEpTSU9DR0JVVFRPTlMsICZudW1iZXJPZkJ1dHRvbnMp
IDwgMCkgeworICAgICAgICBMT0dfRVJST1IoIkVycm9yIHJldHJpZXZpbmcgZ2FtZXBhZCBpbnB1
dCBpbmZvcm1hdGlvbnMuIik7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgbV9heGVzLmZp
bGwoMC4wLCBudW1iZXJPZkF4ZXMpOwotICAgIG1fYnV0dG9ucy5maWxsKDAuMCwgbnVtYmVyT2ZC
dXR0b25zKTsKKyAgICBtX2J1dHRvbnMuZmlsbCh7ZmFsc2UsIDAuMH0sIG51bWJlck9mQnV0dG9u
cyk7CiB9CiAKIEdhbWVwYWREZXZpY2VMaW51eDo6fkdhbWVwYWREZXZpY2VMaW51eCgpCkBAIC02
NCw2ICs3MCwzMiBAQCBHYW1lcGFkRGV2aWNlTGludXg6On5HYW1lcGFkRGV2aWNlTGludXgoKQog
ICAgICAgICBjbG9zZShtX2ZpbGVEZXNjcmlwdG9yKTsKIH0KIAorR2FtZXBhZERldmljZUxpbnV4
OjpHYW1lcGFkRGV2aWNlTGludXgoR2FtZXBhZERldmljZUxpbnV4JiYgb3RoZXIpCisgICAgOiBt
X2ZpbGVEZXNjcmlwdG9ye290aGVyLm1fZmlsZURlc2NyaXB0b3J9CisgICAgLCBtX2Nvbm5lY3Rl
ZHtvdGhlci5tX2Nvbm5lY3RlZH0KKyAgICAsIG1fZGV2aWNlTmFtZXtzdGQ6Om1vdmUob3RoZXIu
bV9kZXZpY2VOYW1lKX0KKyAgICAsIG1fbGFzdFRpbWVzdGFtcHtvdGhlci5tX2xhc3RUaW1lc3Rh
bXB9CisgICAgLCBtX2F4ZXN7c3RkOjptb3ZlKG90aGVyLm1fYXhlcyl9CisgICAgLCBtX2J1dHRv
bnN7c3RkOjptb3ZlKG90aGVyLm1fYnV0dG9ucyl9Cit7CisgICAgb3RoZXIubV9maWxlRGVzY3Jp
cHRvciA9IC0xOworICAgIG90aGVyLm1fY29ubmVjdGVkID0gZmFsc2U7Cit9CisKK0dhbWVwYWRE
ZXZpY2VMaW51eCYgR2FtZXBhZERldmljZUxpbnV4OjpvcGVyYXRvciA9KEdhbWVwYWREZXZpY2VM
aW51eCYmIG90aGVyKQoreworICAgIG1fZmlsZURlc2NyaXB0b3IgPSBvdGhlci5tX2ZpbGVEZXNj
cmlwdG9yOworICAgIG1fY29ubmVjdGVkID0gb3RoZXIubV9jb25uZWN0ZWQ7CisgICAgbV9kZXZp
Y2VOYW1lID0gc3RkOjptb3ZlKG90aGVyLm1fZGV2aWNlTmFtZSk7CisgICAgbV9sYXN0VGltZXN0
YW1wID0gb3RoZXIubV9sYXN0VGltZXN0YW1wOworICAgIG1fYXhlcyA9IHN0ZDo6bW92ZShvdGhl
ci5tX2F4ZXMpOworICAgIG1fYnV0dG9ucyA9IHN0ZDo6bW92ZShvdGhlci5tX2J1dHRvbnMpOwor
CisgICAgb3RoZXIubV9maWxlRGVzY3JpcHRvciA9IC0xOworICAgIG90aGVyLm1fY29ubmVjdGVk
ID0gZmFsc2U7CisgICAgcmV0dXJuICp0aGlzOworfQorCiB2b2lkIEdhbWVwYWREZXZpY2VMaW51
eDo6dXBkYXRlRm9yRXZlbnQoc3RydWN0IGpzX2V2ZW50IGV2ZW50KQogewogICAgIGlmICghKGV2
ZW50LnR5cGUgJiBKU19FVkVOVF9BWElTIHx8IGV2ZW50LnR5cGUgJiBKU19FVkVOVF9CVVRUT04p
KQpAQCAtNzYsMjIgKzEwOCwyNyBAQCB2b2lkIEdhbWVwYWREZXZpY2VMaW51eDo6dXBkYXRlRm9y
RXZlbnQoc3RydWN0IGpzX2V2ZW50IGV2ZW50KQogCiAgICAgaWYgKGV2ZW50LnR5cGUgJiBKU19F
VkVOVF9BWElTKQogICAgICAgICBtX2F4ZXNbZXZlbnQubnVtYmVyXSA9IG5vcm1hbGl6ZUF4aXNW
YWx1ZShldmVudC52YWx1ZSk7Ci0gICAgZWxzZSBpZiAoZXZlbnQudHlwZSAmIEpTX0VWRU5UX0JV
VFRPTikKLSAgICAgICAgbV9idXR0b25zW2V2ZW50Lm51bWJlcl0gPSBub3JtYWxpemVCdXR0b25W
YWx1ZShldmVudC52YWx1ZSk7CisgICAgZWxzZSBpZiAoZXZlbnQudHlwZSAmIEpTX0VWRU5UX0JV
VFRPTikgeworICAgICAgICBtX2J1dHRvbnNbZXZlbnQubnVtYmVyXS5zZWNvbmQgPSBub3JtYWxp
emVCdXR0b25WYWx1ZShldmVudC52YWx1ZSk7CisgICAgICAgIGlmIChtX2J1dHRvbnNbZXZlbnQu
bnVtYmVyXS5zZWNvbmQgPiBHYW1lcGFkQnV0dG9uOjpERUZBVUxUX1BSRVNTX1RIUkVTSE9MRCkK
KyAgICAgICAgICAgIG1fYnV0dG9uc1tldmVudC5udW1iZXJdLmZpcnN0ID0gdHJ1ZTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgbV9idXR0b25zW2V2ZW50Lm51bWJlcl0uZmlyc3QgPSBmYWxz
ZTsKKyAgICB9CiAKICAgICBtX2xhc3RUaW1lc3RhbXAgPSBldmVudC50aW1lOwogfQogCi1mbG9h
dCBHYW1lcGFkRGV2aWNlTGludXg6Om5vcm1hbGl6ZUF4aXNWYWx1ZShzaG9ydCB2YWx1ZSkKK2Nv
bnN0ZXhwciBkb3VibGUgR2FtZXBhZERldmljZUxpbnV4Ojpub3JtYWxpemVBeGlzVmFsdWUoc2hv
cnQgdmFsdWUpCiB7CiAgICAgLy8gTm9ybWFsaXplIGZyb20gcmFuZ2UgWy0zMjc2NywgMzI3Njdd
IGludG8gcmFuZ2UgWy0xLjAsIDEuMF0KLSAgICByZXR1cm4gdmFsdWUgLyAzMjc2Ny4wZjsKKyAg
ICByZXR1cm4gdmFsdWUgLyBzdGF0aWNfY2FzdDxkb3VibGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8
c2hvcnQ+OjptYXgoKSk7CiB9CiAKLWZsb2F0IEdhbWVwYWREZXZpY2VMaW51eDo6bm9ybWFsaXpl
QnV0dG9uVmFsdWUoc2hvcnQgdmFsdWUpCitjb25zdGV4cHIgZG91YmxlIEdhbWVwYWREZXZpY2VM
aW51eDo6bm9ybWFsaXplQnV0dG9uVmFsdWUoc2hvcnQgdmFsdWUpCiB7CiAgICAgLy8gTm9ybWFs
aXplIGZyb20gcmFuZ2UgWzAsIDFdIGludG8gcmFuZ2UgWzAuMCwgMS4wXQotICAgIHJldHVybiB2
YWx1ZSAvIDEuMGY7CisgICAgcmV0dXJuIHZhbHVlIC8gMS47CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpbnV4L0dhbWVw
YWREZXZpY2VMaW51eC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvR2FtZXBhZERl
dmljZUxpbnV4LmgKaW5kZXggMTNmZjQyNC4uZTRlOGQxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbGludXgvR2FtZXBhZERldmljZUxpbnV4LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbGludXgvR2FtZXBhZERldmljZUxpbnV4LmgKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2lmIEVOQUJMRShHQU1FUEFEX0RFUFJFQ0FURUQpIHx8IEVOQUJMRShHQU1FUEFEKQog
CisjaW5jbHVkZSAiR2FtZXBhZEJ1dHRvbi5oIgogI2luY2x1ZGUgPGxpbnV4L2pveXN0aWNrLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgpAQCAtMzgsMzIgKzM5LDM3IEBAIGNsYXNzIEdhbWVwYWREZXZpY2VMaW51eCB7CiBwdWJsaWM6
CiAgICAgYm9vbCBjb25uZWN0ZWQoKSB7IHJldHVybiBtX2Nvbm5lY3RlZDsgfTsKIAotICAgIFN0
cmluZyBpZCgpIHsgcmV0dXJuIG1fZGV2aWNlTmFtZTsgfQotICAgIHVuc2lnbmVkIGxvbmcgbG9u
ZyB0aW1lc3RhbXAoKSB7IHJldHVybiBtX2xhc3RUaW1lc3RhbXA7IH0KKyAgICBjb25zdCBTdHJp
bmcmIGlkKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VOYW1lOyB9CisgICAgdW5zaWduZWQgbG9u
ZyBsb25nIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFRpbWVzdGFtcDsgfQogCi0g
ICAgdW5zaWduZWQgYXhlc0NvdW50KCkgeyByZXR1cm4gbV9heGVzLnNpemUoKTsgfQotICAgIGZs
b2F0KiBheGVzRGF0YSgpIHsgcmV0dXJuIG1fYXhlcy5kYXRhKCk7IH0KKyAgICB1bnNpZ25lZCBh
eGVzQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2F4ZXMuc2l6ZSgpOyB9CisgICAgY29uc3QgZG91
YmxlKiBheGVzRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fYXhlcy5kYXRhKCk7IH0KIAotICAgIHVu
c2lnbmVkIGJ1dHRvbnNDb3VudCgpIHsgcmV0dXJuIG1fYnV0dG9ucy5zaXplKCk7IH0KLSAgICBm
bG9hdCogYnV0dG9uc0RhdGEoKSB7IHJldHVybiBtX2J1dHRvbnMuZGF0YSgpOyB9CisgICAgdW5z
aWduZWQgYnV0dG9uc0NvdW50KCkgY29uc3QgeyByZXR1cm4gbV9idXR0b25zLnNpemUoKTsgfQor
ICAgIGNvbnN0IEdhbWVwYWRCdXR0b246OkJ1dHRvblN0cnVjdCogYnV0dG9uc0RhdGEoKSBjb25z
dCB7IHJldHVybiBtX2J1dHRvbnMuZGF0YSgpOyB9CiAKIHByb3RlY3RlZDoKICAgICBHYW1lcGFk
RGV2aWNlTGludXgoU3RyaW5nIGRldmljZUZpbGUpOwotICAgIH5HYW1lcGFkRGV2aWNlTGludXgo
KTsKKyAgICBHYW1lcGFkRGV2aWNlTGludXgoY29uc3QgR2FtZXBhZERldmljZUxpbnV4JikgPSBk
ZWxldGU7CisgICAgR2FtZXBhZERldmljZUxpbnV4KEdhbWVwYWREZXZpY2VMaW51eCYmKTsKKyAg
ICB2aXJ0dWFsIH5HYW1lcGFkRGV2aWNlTGludXgoKTsKKworICAgIEdhbWVwYWREZXZpY2VMaW51
eCYgb3BlcmF0b3IgPShjb25zdCBHYW1lcGFkRGV2aWNlTGludXgmKSA9IGRlbGV0ZTsKKyAgICBH
YW1lcGFkRGV2aWNlTGludXgmIG9wZXJhdG9yID0oR2FtZXBhZERldmljZUxpbnV4JiYpOwogCiAg
ICAgdm9pZCB1cGRhdGVGb3JFdmVudChzdHJ1Y3QganNfZXZlbnQpOwogICAgIGludCBtX2ZpbGVE
ZXNjcmlwdG9yOwogCiBwcml2YXRlOgotICAgIGZsb2F0IG5vcm1hbGl6ZUF4aXNWYWx1ZShzaG9y
dCB2YWx1ZSk7Ci0gICAgZmxvYXQgbm9ybWFsaXplQnV0dG9uVmFsdWUoc2hvcnQgdmFsdWUpOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIG5vcm1hbGl6ZUF4aXNWYWx1ZShzaG9ydCB2YWx1
ZSk7CisgICAgc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgbm9ybWFsaXplQnV0dG9uVmFsdWUoc2hv
cnQgdmFsdWUpOwogCiAgICAgYm9vbCBtX2Nvbm5lY3RlZDsKICAgICBTdHJpbmcgbV9kZXZpY2VO
YW1lOwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtX2xhc3RUaW1lc3RhbXA7CiAKLSAgICBWZWN0
b3I8ZmxvYXQ+IG1fYXhlczsKLSAgICBWZWN0b3I8ZmxvYXQ+IG1fYnV0dG9uczsKKyAgICBWZWN0
b3I8ZG91YmxlPiBtX2F4ZXM7CisgICAgVmVjdG9yPEdhbWVwYWRCdXR0b246OkJ1dHRvblN0cnVj
dD4gbV9idXR0b25zOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5j
bWFrZQppbmRleCBhYTcyMjI2Li5mMTQ1ZmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0
aW9uc0VmbC5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQpAQCAtNjUs
NyArNjUsNyBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfRU5DUllQ
VEVEX01FRElBIE9GRikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9F
TkNSWVBURURfTUVESUFfVjIgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUo
RU5BQkxFX0ZJTFRFUlMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfRlVMTFNDUkVFTl9BUEkgT04pCi1XRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfR0FNRVBBRCBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfR0FNRVBBRCBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9H
QU1FUEFEX0RFUFJFQ0FURUQgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUo
RU5BQkxFX0lOREVYRURfREFUQUJBU0UgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyBPRkYpCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZGM0NGFmZC4uMDc2ZDJk
NyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDE0LTA2LTI0ICBNaWNoYWwgRGVic2tpICA8bS5kZWJza2lAc2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgW0VGTF0gR2FtZXBhZHMgcHJvdmlkZXIgaW1wbGVtZW50YXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzg1Mwor
CisgICAgICAgIEdhbWVwYWQgd29ya3MuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG06CisK
IDIwMTQtMDYtMjQgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1dpbl0gQ2xlYW4gdXAgYW5kIHJlZmFjdG9yIFdpbkxhdW5jaGVyCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0gYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KaW5kZXggN2ZiMmUwYS4uNjNiZWNiYyAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtMjQ4LDcgKzI0OCw3IEBAIG15IEBm
ZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0ZVTExTQ1JFRU5fQVBJIiwgZGVm
YXVsdCA9PiAoaXNBcHBsZU1hY1dlYktpdCgpIHx8IGlzRWZsKCkgfHwgaXNHdGsoKSksIHZhbHVl
ID0+IFwkZnVsbHNjcmVlbkFQSVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJnYW1lcGFk
IiwgZGVzYyA9PiAiVG9nZ2xlIEdhbWVwYWQgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVO
QUJMRV9HQU1FUEFEIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGdhbWVwYWRTdXBwb3J0IH0s
CisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9HQU1FUEFEIiwgZGVmYXVsdCA9PiBpc0VmbCgpLCB2
YWx1ZSA9PiBcJGdhbWVwYWRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZ2VvbG9jYXRp
b24iLCBkZXNjID0+ICJUb2dnbGUgR2VvbG9jYXRpb24gc3VwcG9ydCIsCiAgICAgICBkZWZpbmUg
PT4gIkVOQUJMRV9HRU9MT0NBVElPTiIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBp
c0lPU1dlYktpdCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJGdlb2xvY2F0aW9uU3VwcG9ydCB9
LAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>