<?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>152760</bug_id>
          
          <creation_ts>2016-01-05 15:02:12 -0800</creation_ts>
          <short_desc>Progress towards implementing downloads with NetworkSession</short_desc>
          <delta_ts>2016-01-07 13:29:14 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>beidson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1152905</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-05 15:02:12 -0800</bug_when>
    <thetext>Progress towards implementing downloads with NetworkSession</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152907</commentid>
    <comment_count>1</comment_count>
      <attachid>268329</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-05 15:02:34 -0800</bug_when>
    <thetext>Created attachment 268329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152909</commentid>
    <comment_count>2</comment_count>
      <attachid>268329</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-05 15:03:10 -0800</bug_when>
    <thetext>Comment on attachment 268329
Patch

This first patch doesn&apos;t do anything yet.  I&apos;ll upload another one soon that is similar to this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153206</commentid>
    <comment_count>3</comment_count>
      <attachid>268402</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-06 13:59:38 -0800</bug_when>
    <thetext>Created attachment 268402
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153235</commentid>
    <comment_count>4</comment_count>
      <attachid>268411</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-06 14:41:26 -0800</bug_when>
    <thetext>Created attachment 268411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153282</commentid>
    <comment_count>5</comment_count>
      <attachid>268423</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-06 17:02:37 -0800</bug_when>
    <thetext>Created attachment 268423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153537</commentid>
    <comment_count>6</comment_count>
      <attachid>268423</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-01-07 13:24:58 -0800</bug_when>
    <thetext>Comment on attachment 268423
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=268423&amp;action=review

&gt; Source/WebKit2/NetworkProcess/NetworkLoad.cpp:97
&gt;  #if USE(NETWORK_SESSION)
&gt; -    m_task-&gt;cancel();
&gt; +    if (m_task)
&gt; +        m_task-&gt;cancel();
&gt;  #else
&gt;      if (m_handle)
&gt;          m_handle-&gt;cancel();

Seems like this was pre-existing, but it seems weird to cancel a load that doesn&apos;t have a task.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153544</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-07 13:29:14 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/194718</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268329</attachid>
            <date>2016-01-05 15:02:34 -0800</date>
            <delta_ts>2016-01-06 13:59:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152760-20160105150201.patch</filename>
            <type>text/plain</type>
            <size>19758</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NDYxMikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE2LTAxLTA1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mg
dG93YXJkcyBpbXBsZW1lbnRpbmcgZG93bmxvYWRzIHdpdGggTmV0d29ya1Nlc3Npb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjc2MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OkRv
d25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OmRpZFN0YXJ0KToKKyAgICAgICAg
KFdlYktpdDo6RG93bmxvYWQ6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6Cisg
ICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpE
b3dubG9hZE1hbmFnZXI6OnN0YXJ0RG93bmxvYWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpOZXR3b3JrTG9h
ZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpjYW5jZWwpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrTG9hZDo6Y29udmVydFRhc2tUb0Rvd25sb2FkKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0xvYWQ6OnNldFBlbmRpbmdEb3dubG9hZElEKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0xvYWQ6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0xvYWQ6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWQuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OmNsaWVudCk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFzazo6cGVuZGluZ0Rvd25sb2FkSUQpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OnNldFBlbmRpbmdEb3dubG9hZElEKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpkb3dubG9hZElEKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpzZXREb3dubG9hZElEKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAg
ICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgVVJMU2Vzc2lvbjpkYXRhVGFzazpkaWRC
ZWNvbWVEb3dubG9hZFRhc2s6XSk6CisgICAgICAgICogUGVuZGluZ0Rvd25sb2FkLmg6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpQZW5kaW5nRG93bmxvYWQ6OlBlbmRpbmdEb3dubG9hZCk6Cisg
ICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNv
bmZpZy5oOgorCiAyMDE2LTAxLTA1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgog
CiAgICAgICAgIFtNYWNdIEV4aXRpbmcgZnVsbHNjcmVlbiB2aWEgTWlzc2lvbiBDb250cm9sIGxl
YXZlcyBmdWxsY3JlZW4gd2luZG93IGZyb250bW9zdCBvbiBkZXNrdG9wCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9QZW5kaW5nRG93bmxvYWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Q
ZW5kaW5nRG93bmxvYWQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BlbmRpbmdE
b3dubG9hZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFBlbmRpbmdEb3dubG9hZF9oCisjZGVmaW5lIFBlbmRpbmdEb3dubG9hZF9oCisKKyNp
ZiBVU0UoTkVUV09SS19TRVNTSU9OKQorCisjaW5jbHVkZSAiTmV0d29ya0xvYWQuaCIKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFBlbmRpbmdEb3dubG9hZCA6IHB1YmxpYyBOZXR3b3Jr
TG9hZENsaWVudCB7CitwdWJsaWM6CisgICAgUGVuZGluZ0Rvd25sb2FkKGNvbnN0IE5ldHdvcmtM
b2FkUGFyYW1ldGVycyYgcGFyYW1ldGVycywgRG93bmxvYWRJRCBkb3dubG9hZElEKQorICAgICAg
ICA6IG1fbmV0d29ya0xvYWQoc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrTG9hZD4oKnRoaXMsIHBh
cmFtZXRlcnMpKQorICAgIHsKKyAgICAgICAgbV9uZXR3b3JrTG9hZC0+c2V0UGVuZGluZ0Rvd25s
b2FkSUQoZG93bmxvYWRJRCk7CisgICAgfQorCitwcml2YXRlOiAgICAKKyAgICAvLyBOZXR3b3Jr
TG9hZENsaWVudC4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBs
b25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkgb3Zl
cnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0
aW9uU3BhY2VBc3luYyhjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmKSBvdmVycmlkZSB7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTeW5jaHJvbm91cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3Qo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
IHJlZGlyZWN0UmVzcG9uc2UpIG92ZXJyaWRlIHsgfTsKKyAgICB2aXJ0dWFsIFNob3VsZENvbnRp
bnVlRGlkUmVjZWl2ZVJlc3BvbnNlIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGUgeyByZXR1cm4gU2hvdWxkQ29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2U6Ok5vOyB9OworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFJl
ZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIGludCByZXBvcnRlZEVuY29kZWREYXRhTGVu
Z3RoKSBvdmVycmlkZSB7IH07CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoZG91
YmxlIGZpbmlzaFRpbWUpIG92ZXJyaWRlIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbExv
YWRpbmcoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlIHsgfTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkQ29udmVydFRvRG93bmxvYWQoKSBvdmVycmlkZSB7IH0KKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbENhY2hlUmVzcG9uc2VBc3luYyhDRkNh
Y2hlZFVSTFJlc3BvbnNlUmVmKSBvdmVycmlkZSB7IH0KKyNlbmRpZgorcHJpdmF0ZToKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0xvYWQ+IG1fbmV0d29ya0xvYWQ7Cit9OworCit9CisKKyNl
bmRpZgorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL2NvbmZpZy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL2NvbmZpZy5oCShyZXZpc2lvbiAxOTQ1MzUpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNzQsNyArNzQsNyBAQAogI2RlZmlu
ZSBIQVZFX1dJTkRPV19TRVJWRVJfT0NDTFVTSU9OX05PVElGSUNBVElPTlMgMQogI2VuZGlmCiAj
aWZuZGVmIFVTRV9ORVRXT1JLX1NFU1NJT04KLSNkZWZpbmUgVVNFX05FVFdPUktfU0VTU0lPTiAw
CisjZGVmaW5lIFVTRV9ORVRXT1JLX1NFU1NJT04gMQogI2VuZGlmCiAjZW5kaWYKIApJbmRleDog
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAkocmV2aXNp
b24gMTk0NTcwKQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NywxMyArNDcsMTQgQEAgTmV0d29ya0xvYWQ6Ok5ldHdv
cmtMb2FkKE5ldHdvcmtMb2FkQ2xpZQogICAgIDogbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9w
YXJhbWV0ZXJzKHBhcmFtZXRlcnMpCiAgICAgLCBtX25ldHdvcmtpbmdDb250ZXh0KFJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0OjpjcmVhdGUocGFyYW1ldGVycy5zZXNzaW9uSUQsIHBhcmFtZXRlcnMu
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpCi0jaWYgVVNFKE5FVFdP
UktfU0VTU0lPTikKLSAgICAsIG1fdGFzayhTZXNzaW9uVHJhY2tlcjo6bmV0d29ya1Nlc3Npb24o
cGFyYW1ldGVycy5zZXNzaW9uSUQpLT5jcmVhdGVEYXRhVGFza1dpdGhSZXF1ZXN0KHBhcmFtZXRl
cnMucmVxdWVzdCwgKnRoaXMpKQotI2VuZGlmCiAgICAgLCBtX2N1cnJlbnRSZXF1ZXN0KHBhcmFt
ZXRlcnMucmVxdWVzdCkKIHsKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQotICAgIG1fdGFzay0+
cmVzdW1lKCk7CisgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gU2Vzc2lvblRyYWNrZXI6
Om5ldHdvcmtTZXNzaW9uKHBhcmFtZXRlcnMuc2Vzc2lvbklEKSkgeworICAgICAgICBtX3Rhc2sg
PSBuZXR3b3JrU2Vzc2lvbi0+Y3JlYXRlRGF0YVRhc2tXaXRoUmVxdWVzdChwYXJhbWV0ZXJzLnJl
cXVlc3QsICp0aGlzKTsKKyAgICAgICAgbV90YXNrLT5yZXN1bWUoKTsKKyAgICB9IGVsc2UKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZWxzZQogICAgIG1faGFuZGxlID0gUmVzb3Vy
Y2VIYW5kbGU6OmNyZWF0ZShtX25ldHdvcmtpbmdDb250ZXh0LmdldCgpLCBwYXJhbWV0ZXJzLnJl
cXVlc3QsIHRoaXMsIHBhcmFtZXRlcnMuZGVmZXJzTG9hZGluZywgcGFyYW1ldGVycy5jb250ZW50
U25pZmZpbmdQb2xpY3kgPT0gU25pZmZDb250ZW50KTsKICNlbmRpZgpAQCAtODUsNyArODYsOCBA
QCB2b2lkIE5ldHdvcmtMb2FkOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgCiB2b2lkIE5ldHdvcmtM
b2FkOjpjYW5jZWwoKQogewogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCi0gICAgbV90YXNrLT5j
YW5jZWwoKTsKKyAgICBpZiAobV90YXNrKQorICAgICAgICBtX3Rhc2stPmNhbmNlbCgpOwogI2Vs
c2UKICAgICBpZiAobV9oYW5kbGUpCiAgICAgICAgIG1faGFuZGxlLT5jYW5jZWwoKTsKQEAgLTE1
NywxMyArMTU5LDE4IEBAIHZvaWQgTmV0d29ya0xvYWQ6OnNoYXJlZFdpbGxTZW5kUmVkaXJlY3QK
IAogdm9pZCBOZXR3b3JrTG9hZDo6Y29udmVydFRhc2tUb0Rvd25sb2FkKERvd25sb2FkSUQgZG93
bmxvYWRJRCkKIHsKLSAgICBtX3Rhc2stPnNldERvd25sb2FkSUQoZG93bmxvYWRJRCk7CisgICAg
bV90YXNrLT5zZXRQZW5kaW5nRG93bmxvYWRJRChkb3dubG9hZElEKTsKICAgICAKICAgICBBU1NF
UlQobV9yZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyKTsKICAgICBtX3Jlc3BvbnNlQ29tcGxldGlv
bkhhbmRsZXIoUG9saWN5RG93bmxvYWQpOwogICAgIG1fcmVzcG9uc2VDb21wbGV0aW9uSGFuZGxl
ciA9IG51bGxwdHI7CiB9CiAKK3ZvaWQgTmV0d29ya0xvYWQ6OnNldFBlbmRpbmdEb3dubG9hZElE
KERvd25sb2FkSUQgZG93bmxvYWRJRCkKK3sKKyAgICBtX3Rhc2stPnNldFBlbmRpbmdEb3dubG9h
ZElEKGRvd25sb2FkSUQpOworfQorCiB2b2lkIE5ldHdvcmtMb2FkOjp3aWxsUGVyZm9ybUhUVFBS
ZWRpcmVjdGlvbihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBSZWRpcmVjdENvbXBsZXRpb25IYW5kbGVyIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIEFTU0VSVCghbV9yZWRpcmVjdENvbXBsZXRpb25IYW5kbGVyKTsKQEAg
LTIwMSw2ICsyMDgsOCBAQCB2b2lkIE5ldHdvcmtMb2FkOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29u
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBpZiAoc2hhcmVkRGlkUmVjZWl2ZVJl
c3BvbnNlKHJlc3BvbnNlKSA9PSBOZXR3b3JrTG9hZENsaWVudDo6U2hvdWxkQ29udGludWVEaWRS
ZWNlaXZlUmVzcG9uc2U6OlllcykKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5VXNl
KTsKKyAgICBlbHNlIGlmIChtX3Rhc2sgJiYgbV90YXNrLT5wZW5kaW5nRG93bmxvYWRJRCgpLmRv
d25sb2FkSUQoKSkKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5RG93bmxvYWQpOwog
ICAgIGVsc2UKICAgICAgICAgbV9yZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlv
bkhhbmRsZXI7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkLmgJKHJldmlzaW9uIDE5NDU3MCkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDYgKzYyLDcgQEAgcHVibGlj
OgogCiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKICAgICB2b2lkIGNvbnZlcnRUYXNrVG9Eb3du
bG9hZChEb3dubG9hZElEKTsKKyAgICB2b2lkIHNldFBlbmRpbmdEb3dubG9hZElEKERvd25sb2Fk
SUQpOwogICAgIAogICAgIC8vIE5ldHdvcmtTZXNzaW9uVGFza0NsaWVudC4KICAgICB2aXJ0dWFs
IHZvaWQgd2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIHN0ZDo6ZnVuY3Rpb248
dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKT4pIGZpbmFsIG92ZXJyaWRlOwpA
QCAtMTI1LDcgKzEyNiw2IEBAIHByaXZhdGU6CiAgICAgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRs
ZXIgbV9jaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlcjsKICAgICBSZXNwb25zZUNvbXBsZXRpb25I
YW5kbGVyIG1fcmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlcjsKICAgICBSZWRpcmVjdENvbXBsZXRp
b25IYW5kbGVyIG1fcmVkaXJlY3RDb21wbGV0aW9uSGFuZGxlcjsKLSAgICBEb3dubG9hZElEIG1f
ZG93bmxvYWRJRDsKICNlbHNlCiAgICAgUmVmUHRyPFdlYkNvcmU6OlJlc291cmNlSGFuZGxlPiBt
X2hhbmRsZTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5oCShyZXZpc2lvbiAxOTQ1OTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC05NiwxOCAr
OTYsMTggQEAgcHVibGljOgogCiAgICAgTmV0d29ya1Nlc3Npb25UYXNrQ2xpZW50JiBjbGllbnQo
KSB7IHJldHVybiBtX2NsaWVudDsgfQogCi0gICAgRG93bmxvYWRJRCBkb3dubG9hZElEKCkgeyBy
ZXR1cm4gbV9kb3dubG9hZElEOyB9Ci0gICAgdm9pZCBzZXREb3dubG9hZElEKERvd25sb2FkSUQg
ZG93bmxvYWRJRCkKKyAgICBEb3dubG9hZElEIHBlbmRpbmdEb3dubG9hZElEKCkgeyByZXR1cm4g
bV9wZW5kaW5nRG93bmxvYWRJRDsgfQorICAgIHZvaWQgc2V0UGVuZGluZ0Rvd25sb2FkSUQoRG93
bmxvYWRJRCBkb3dubG9hZElEKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX2Rvd25sb2FkSUQu
ZG93bmxvYWRJRCgpKTsKKyAgICAgICAgQVNTRVJUKCFtX3BlbmRpbmdEb3dubG9hZElELmRvd25s
b2FkSUQoKSk7CiAgICAgICAgIEFTU0VSVChkb3dubG9hZElELmRvd25sb2FkSUQoKSk7Ci0gICAg
ICAgIG1fZG93bmxvYWRJRCA9IGRvd25sb2FkSUQ7CisgICAgICAgIG1fcGVuZGluZ0Rvd25sb2Fk
SUQgPSBkb3dubG9hZElEOwogICAgIH0KICAgICAKIHByaXZhdGU6CiAgICAgTmV0d29ya1Nlc3Np
b24mIG1fc2Vzc2lvbjsKICAgICBOZXR3b3JrU2Vzc2lvblRhc2tDbGllbnQmIG1fY2xpZW50Owot
ICAgIERvd25sb2FkSUQgbV9kb3dubG9hZElEOworICAgIERvd25sb2FkSUQgbV9wZW5kaW5nRG93
bmxvYWRJRDsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8TlNVUkxTZXNzaW9u
RGF0YVRhc2s+IG1fdGFzazsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCShyZXZpc2lvbiAxOTQ1MzYp
CisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NCwxNSArNDQsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCi1Eb3du
bG9hZDo6RG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiBkb3dubG9hZE1hbmFnZXIsIGNvbnN0IE5l
dHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBEb3dubG9hZElEIGRvd25sb2FkSUQpCitEb3dubG9hZDo6
RG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiBkb3dubG9hZE1hbmFnZXIsIERvd25sb2FkSUQgZG93
bmxvYWRJRCkKICNlbHNlCiBEb3dubG9hZDo6RG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiBkb3du
bG9hZE1hbmFnZXIsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQogI2VuZGlmCiAgICAgOiBtX2Rvd25sb2FkTWFuYWdlcihkb3dubG9hZE1hbmFn
ZXIpCiAgICAgLCBtX2Rvd25sb2FkSUQoZG93bmxvYWRJRCkKLSNpZiBVU0UoTkVUV09SS19TRVNT
SU9OKQotICAgICwgbV9zZXNzaW9uKHNlc3Npb24pCi0jZWxzZQorI2lmICFVU0UoTkVUV09SS19T
RVNTSU9OKQogICAgICwgbV9yZXF1ZXN0KHJlcXVlc3QpCiAjZW5kaWYKIHsKQEAgLTgwLDE0ICs3
OCwxMiBAQCB2b2lkIERvd25sb2FkOjpkaWRTdGFydCgpCiB9CiAjZW5kaWYKIAorI2lmICFVU0Uo
TkVUV09SS19TRVNTSU9OKQogdm9pZCBEb3dubG9hZDo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSkKIHsKLSNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0jZWxzZQogICAgIG1fZG93bmxvYWRNYW5hZ2VyLmRvd25sb2Fkc0F1dGhlbnRpY2F0aW9u
TWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgqdGhpcywgYXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpOwotI2VuZGlmCiB9CisjZW5kaWYKIAogdm9pZCBEb3dubG9hZDo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewpJ
bmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkLmgJKHJldmlzaW9uIDE5NDU3MCkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw3IEBA
IGNsYXNzIERvd25sb2FkIDogcHVibGljIElQQzo6TWVzc2FnZVNlbmQKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShEb3dubG9hZCk7CiBwdWJsaWM6CiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikK
LSAgICBEb3dubG9hZChEb3dubG9hZE1hbmFnZXImLCBjb25zdCBOZXR3b3JrU2Vzc2lvbiYsIERv
d25sb2FkSUQpOworICAgIERvd25sb2FkKERvd25sb2FkTWFuYWdlciYsIERvd25sb2FkSUQpOwog
I2Vsc2UKICAgICBEb3dubG9hZChEb3dubG9hZE1hbmFnZXImLCBEb3dubG9hZElELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICNlbmRpZgpAQCAtOTcsOCArOTcsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBkaWRTdGFydChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsK
ICNlbHNlCiAgICAgdm9pZCBkaWRTdGFydCgpOwotI2VuZGlmCiAgICAgdm9pZCBkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKTsKKyNlbmRpZgogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKHVpbnQ2NF90
IGxlbmd0aCk7CiAgICAgYm9vbCBzaG91bGREZWNvZGVTb3VyY2VEYXRhT2ZNSU1FVHlwZShjb25z
dCBTdHJpbmcmIG1pbWVUeXBlKTsKQEAgLTE0MSw3ICsxNDEsNiBAQCBwcml2YXRlOgogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKLSAgICBjb25zdCBOZXR3
b3JrU2Vzc2lvbiYgbV9zZXNzaW9uOwogICAgIFJldGFpblB0cjxOU1VSTFNlc3Npb25Eb3dubG9h
ZFRhc2s+IG1fZG93bmxvYWQ7CiAjZWxzZQogICAgIFJldGFpblB0cjxOU1VSTERvd25sb2FkPiBt
X25zVVJMRG93bmxvYWQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcAkocmV2aXNpb24gMTk0
NTkyKQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
TWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDggQEAKICNpbmNsdWRlICJE
b3dubG9hZE1hbmFnZXIuaCIKIAogI2luY2x1ZGUgIkRvd25sb2FkLmgiCisjaW5jbHVkZSAiTmV0
d29ya1Nlc3Npb24uaCIKKyNpbmNsdWRlICJQZW5kaW5nRG93bmxvYWQuaCIKICNpbmNsdWRlICJT
ZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgpAQCAtNDcsMTUgKzQ5LDE3IEBAIHZvaWQgRG93
bmxvYWRNYW5hZ2VyOjpzdGFydERvd25sb2FkKFNlc3MKICAgICBhdXRvKiBuZXR3b3JrU2Vzc2lv
biA9IFNlc3Npb25UcmFja2VyOjpuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpOwogICAgIGlmICgh
bmV0d29ya1Nlc3Npb24pCiAgICAgICAgIHJldHVybjsKLSAgICBhdXRvIGRvd25sb2FkID0gc3Rk
OjptYWtlX3VuaXF1ZTxEb3dubG9hZD4oKnRoaXMsICpuZXR3b3JrU2Vzc2lvbiwgZG93bmxvYWRJ
RCk7Ci0gICAgZG93bmxvYWQtPmRpZFN0YXJ0KHJlcXVlc3QpOworICAgIE5ldHdvcmtMb2FkUGFy
YW1ldGVycyBwYXJhbWV0ZXJzOworICAgIHBhcmFtZXRlcnMuc2Vzc2lvbklEID0gc2Vzc2lvbklE
OworICAgIHBhcmFtZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgbV9wZW5kaW5nRG93bmxv
YWRzLmFkZChkb3dubG9hZElELCBzdGQ6Om1ha2VfdW5pcXVlPFBlbmRpbmdEb3dubG9hZD4ocGFy
YW1ldGVycywgZG93bmxvYWRJRCkpOwogI2Vsc2UKICAgICBhdXRvIGRvd25sb2FkID0gc3RkOjpt
YWtlX3VuaXF1ZTxEb3dubG9hZD4oKnRoaXMsIGRvd25sb2FkSUQsIHJlcXVlc3QpOwogICAgIGRv
d25sb2FkLT5zdGFydCgpOwotI2VuZGlmCiAKICAgICBBU1NFUlQoIW1fZG93bmxvYWRzLmNvbnRh
aW5zKGRvd25sb2FkSUQpKTsKICAgICBtX2Rvd25sb2Fkcy5hZGQoZG93bmxvYWRJRCwgV1RGTW92
ZShkb3dubG9hZCkpOworI2VuZGlmCiB9CiAKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQpJbmRl
eDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZE1hbmFnZXIuaAkocmV2aXNpb24gMTk0NTkyKQorKysgU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIERvd25sb2FkTWFuYWdlcl9oCiAKICNpbmNsdWRl
ICJEb3dubG9hZElELmgiCisjaW5jbHVkZSAiUGVuZGluZ0Rvd25sb2FkLmgiCiAjaW5jbHVkZSAi
U2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtOTMsNiArOTQsOSBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6CiAgICAgQ2xpZW50JiBtX2NsaWVudDsKKyNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQor
ICAgIEhhc2hNYXA8RG93bmxvYWRJRCwgc3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdEb3dubG9hZD4+
IG1fcGVuZGluZ0Rvd25sb2FkczsKKyNlbmRpZgogICAgIEhhc2hNYXA8RG93bmxvYWRJRCwgc3Rk
Ojp1bmlxdWVfcHRyPERvd25sb2FkPj4gbV9kb3dubG9hZHM7CiB9OwogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW0JKHJldmlzaW9uIDE5NDU5MikKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTE2
Niw5ICsxNjYsOSBAQCAtICh2b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3NpCiAt
ICh2b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3Npb24gZGF0YVRhc2s6KE5TVVJM
U2Vzc2lvbkRhdGFUYXNrICopZGF0YVRhc2sgZGlkQmVjb21lRG93bmxvYWRUYXNrOihOU1VSTFNl
c3Npb25Eb3dubG9hZFRhc2sgKilkb3dubG9hZFRhc2sKIHsKICAgICBpZiAoYXV0byogbmV0d29y
a0RhdGFUYXNrID0gX3Nlc3Npb24tPmRhdGFUYXNrRm9ySWRlbnRpZmllcihbZGF0YVRhc2sgdGFz
a0lkZW50aWZpZXJdKSkgewotICAgICAgICBhdXRvIGRvd25sb2FkSUQgPSBuZXR3b3JrRGF0YVRh
c2stPmRvd25sb2FkSUQoKTsKKyAgICAgICAgYXV0byBkb3dubG9hZElEID0gbmV0d29ya0RhdGFU
YXNrLT5wZW5kaW5nRG93bmxvYWRJRCgpOwogICAgICAgICBhdXRvJiBkb3dubG9hZE1hbmFnZXIg
PSBXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5kb3dubG9hZE1hbmFnZXIoKTsK
LSAgICAgICAgYXV0byBkb3dubG9hZCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViS2l0OjpEb3dubG9h
ZD4oZG93bmxvYWRNYW5hZ2VyLCAqX3Nlc3Npb24sIGRvd25sb2FkSUQpOworICAgICAgICBhdXRv
IGRvd25sb2FkID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJLaXQ6OkRvd25sb2FkPihkb3dubG9hZE1h
bmFnZXIsIGRvd25sb2FkSUQpOwogICAgICAgICBkb3dubG9hZC0+ZGlkU3RhcnQoW2Rvd25sb2Fk
VGFzayBjdXJyZW50UmVxdWVzdF0pOwogICAgICAgICBkb3dubG9hZC0+ZGlkUmVjZWl2ZVJlc3Bv
bnNlKFtkb3dubG9hZFRhc2sgcmVzcG9uc2VdKTsKICAgICAgICAgZG93bmxvYWRNYW5hZ2VyLmRh
dGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKGRvd25sb2FkSUQsIFdURk1vdmUoZG93bmxvYWQpKTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDE5NDUzNSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTA2OCw2ICsxMDY4LDcgQEAK
IAkJNUMxNDI3MUQxQzIzRjhDRjAwRDQxMTgzIC8qIEN1c3RvbVByb3RvY29sTWFuYWdlckNvY29h
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMxNDI3
MUIxQzIzRjhDQzAwRDQxMTgzIC8qIEN1c3RvbVByb3RvY29sTWFuYWdlckNvY29hLm1tICovOyB9
OwogCQk1QzIwQ0I5RDFCQjBEQ0ZBMDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMjBDQjlCMUJC
MERDRDIwMDg5NUJCMSAvKiBOZXR3b3JrU2Vzc2lvbkNvY29hLm1tICovOyB9OwogCQk1QzIwQ0JB
MDFCQjFFQ0Q4MDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMjBDQjlFMUJCMEREMTgwMDg5NUJCMSAvKiBO
ZXR3b3JrU2Vzc2lvbi5oICovOyB9OworCQk1QzI5OEQ5QzFDM0M3Mjc2MDA0NzBBRkUgLyogUGVu
ZGluZ0Rvd25sb2FkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1QzI5OEQ5QjFDM0M3MjZGMDA0NzBBRkUgLyogUGVuZGluZ0Rvd25sb2FkLmggKi87IH07
CiAJCTVEQTZFRDBBMTQ5MDYwNjkwMEI0MUQxMiAvKiBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRF
eHRyYWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVEQTZFRDA4MTQ5MDYwNjkwMEI0MUQxMiAvKiBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRy
YWN0b3IuaCAqLzsgfTsKIAkJNURBNkVEMEIxNDkwNjA2OTAwQjQxRDEyIC8qIER5bmFtaWNMaW5r
ZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDVEQTZFRDA5MTQ5MDYwNjkwMEI0MUQxMiAvKiBEeW5hbWljTGlua2Vy
RW52aXJvbm1lbnRFeHRyYWN0b3IubW0gKi87IH07CiAJCTY1MDFCRDFBMTJGMTI0MzQwMEU5RjI0
OCAvKiBXS0J1bmRsZUluc3BlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2NUI4NkYxNzEyRjExRDdCMDBCN0REOEEgLyogV0tCdW5kbGVJbnNw
ZWN0b3IuY3BwICovOyB9OwpAQCAtMzI0OCw2ICszMjQ5LDcgQEAKIAkJNUMxNDI3MUIxQzIzRjhD
QzAwRDQxMTgzIC8qIEN1c3RvbVByb3RvY29sTWFuYWdlckNvY29hLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW07
IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9j
b2xNYW5hZ2VyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMjBDQjlC
MUJCMERDRDIwMDg5NUJCMSAvKiBOZXR3b3JrU2Vzc2lvbkNvY29hLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gTmV0d29ya1Nlc3Npb25Db2NvYS5tbTsgcGF0aCA9
IE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTVDMjBDQjlFMUJCMEREMTgwMDg5NUJCMSAvKiBOZXR3b3JrU2Vz
c2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrU2Vzc2lvbi5o
OyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNUMyOThEOUIxQzNDNzI2RjAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9h
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQZW5kaW5nRG93bmxvYWQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNUQ0NDJBNTUxNkQ1ODU2NzAwQUMzMzMxIC8qIFBsdWdpblNlcnZpY2UuZW50
aXRsZW1lbnRzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC54bWw7IHBhdGggPSBQbHVnaW5TZXJ2aWNlLmVudGl0bGVtZW50czsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNURBNkVEMDgxNDkwNjA2OTAwQjQxRDEyIC8qIER5bmFtaWNM
aW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNURBNkVEMDkxNDkwNjA2OTAwQjQxRDEyIC8qIER5bmFtaWNMaW5rZXJF
bnZpcm9ubWVudEV4dHJhY3Rvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTU4MjUsNiArNTgyNyw3IEBACiAJCQkJNUMxNDI2RjcxQzIzRjg0
MzAwRDQxMTgzIC8qIERvd25sb2FkSUQuaCAqLywKIAkJCQk1QzE0MjZGODFDMjNGODQzMDBENDEx
ODMgLyogRG93bmxvYWRNYW5hZ2VyLmNwcCAqLywKIAkJCQk1QzE0MjZGOTFDMjNGODQzMDBENDEx
ODMgLyogRG93bmxvYWRNYW5hZ2VyLmggKi8sCisJCQkJNUMyOThEOUIxQzNDNzI2RjAwNDcwQUZF
IC8qIFBlbmRpbmdEb3dubG9hZC5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBEb3dubG9hZHM7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNzk1NSw2ICs3OTU4LDcgQEAKIAkJCQkyRDZD
RDExOTE4OTA1OEE1MDBFNUE0QTAgLyogVmlld1NuYXBzaG90U3RvcmUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTI2ODQwNTUzMThCODZFRDYwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlck1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNjg0MDU0NDE4Qjg1QTYzMDAyMkMzOEIgLyog
VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJNUMyOThE
OUMxQzNDNzI3NjAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUEwRjI5RTQxMjBCNDQ0MjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rU3RvcmUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBNjAyMjREMThDMTZCOUYwMEMzRThDOSAvKiBWaXNpdGVkTGlua1N0b3Jl
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMEYyOUNDMTIwQjM3MTYwMDUzRDFCOSAv
KiBWaXNpdGVkTGlua1RhYmxlLmggaW4gSGVhZGVycyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268402</attachid>
            <date>2016-01-06 13:59:38 -0800</date>
            <delta_ts>2016-01-06 14:41:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152760-20160106135905.patch</filename>
            <type>text/plain</type>
            <size>23419</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NDY2MikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBACisyMDE2LTAxLTA2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mg
dG93YXJkcyBpbXBsZW1lbnRpbmcgZG93bmxvYWRzIHdpdGggTmV0d29ya1Nlc3Npb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjc2MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OkRv
d25sb2FkKToKKyAgICAgICAgVGhlcmUncyBubyBuZWVkIHRvIHN0b3JlIHRoZSB1bnVzZWQgTmV0
d29ya1Nlc3Npb24mLgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkU3RhcnQpOgorICAg
ICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KToKKyAgICAgICAgRG93bmxvYWRzIHdpdGggTmV0d29ya1Nlc3Npb24gYXJlIE5ldHdvcmtMb2Fk
cyB1bnRpbCB0aGUgcmVzcG9uc2UgaXMgcmVjZWl2ZWQsIHdoaWNoIGlzIGFmdGVyIGF1dGhlbnRp
Y2F0aW9uCisgICAgICAgIGNoYWxsZW5nZXMgYXJlIGhhbmRsZWQgYnkgTmV0d29ya0xvYWQncyBj
b2RlLgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6RG93bmxvYWRNYW5hZ2VyOjpzdGFydERvd25sb2FkKToKKyAgICAgICAgQ3JlYXRlIGEg
UGVuZGluZ0Rvd25sb2FkLCB3aGljaCBpcyBiYXNpY2FsbHkgYSBOZXR3b3JrTG9hZCB0aGF0IGtu
b3dzIHRoYXQgaXQgd2lsbCBiZWNvbWUgYSBEb3dubG9hZCAKKyAgICAgICAgd2hlbiB0aGUgcmVz
cG9uc2UgaXMgcmVjZWl2ZWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvciBub3QgdGhlcmUgaXMg
YSBDb250ZW50LURpc3Bvc2l0aW9uIGhlYWRlci4KKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRN
YW5hZ2VyOjpkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6Ok5ldHdv
cmtMb2FkKToKKyAgICAgICAgQXZvaWQgZGVyZWZlcmVuY2luZyBhIHBvaW50ZXIgaWYgdGhlIE5l
dHdvcmtTZXNzaW9uIGhhZG4ndCBiZWVuIGNyZWF0ZWQgd2hlbiBhIE5ldHdvcmtMb2FkIHN0YXJ0
cy4KKyAgICAgICAgVGhpcyBzaG91bGRuJ3QgYmUgcG9zc2libGUsIGJ1dCBpdCdzIGdvb2QgdG8g
bm90IGFzc3VtZSB0aGF0IGFsbCBwb2ludGVycyBhcmUgbm9uLW51bGwuCisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtMb2FkOjpjYW5jZWwpOgorICAgICAgICBBZGQgYSBudWxsIGNoZWNrIGluIGNh
c2UgdGhlIGNvbnN0cnVjdG9yIGRvZXNuJ3QgbWFrZSBtX3Rhc2suCisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtMb2FkOjpjb252ZXJ0VGFza1RvRG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrTG9hZDo6c2V0UGVuZGluZ0Rvd25sb2FkSUQpOgorICAgICAgICBBZGRlZCBmb3IgZG93
bmxvYWRzIHRoYXQgc3RhcnQgd2l0aCBzdGFydERvd25sb2FkLiAgVGhlIHBlbmRpbmcgRG93bmxv
YWRJRCBpcyB1c2VkIHRvIGluZGljYXRlIHRoYXQKKyAgICAgICAgdGhpcyByZXF1ZXN0IHNob3Vs
ZCBhbHdheXMgYmVjb21lIGEgZG93bmxvYWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvciBub3Qg
dGhlIHJlc3BvbnNlIGhhcyBhIAorICAgICAgICBDb250ZW50LURpc3Bvc2l0aW9uIGhlYWRlci4K
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9u
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6OmRpZFJlY2VpdmVSZXNwb25zZSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaDoKKyAgICAgICAgVGhlcmUncyBu
byBuZWVkIHRvIHN0b3JlIGEgRG93bmxvYWRJRCBoZXJlLiAgSXQncyBzdG9yZWQgaW4gdGhlIE5l
dHdvcmtEYXRhVGFzayAobV90YXNrKS4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OmNsaWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFzazo6cGVuZGluZ0Rvd25sb2FkSUQpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OnNldFBlbmRpbmdEb3dubG9hZElEKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpkb3dubG9hZElEKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpzZXREb3dubG9hZElEKTogRGVsZXRlZC4K
KyAgICAgICAgUmVuYW1lZCBkb3dubG9hZElEIGFuZCBzZXREb3dubG9hZElEIHRvIHBlbmRpbmdE
b3dubG9hZElEIGFuZCBzZXRQZW5kaW5nRG93bmxvYWRJRCwgcmVzcGVjdGl2ZWx5LAorICAgICAg
ICB0byBpbmRpY2F0ZSB0aGVpciB1c2UuICBUaGV5IGFyZSBub3QgdGhlIGN1cnJlbnQgZG93bmxv
YWRJRCwgYnV0IHRoZXkgYXJlIHRoZSBkb3dubG9hZElEIG9mIHRoZSBkb3dubG9hZAorICAgICAg
ICB0aGF0IHdpbGwgaGFwcGVuIG9uY2UgdGhlIHJlc3BvbnNlIGlzIHJlY2VpdmVkIGFuZCBQb2xp
Y3lEb3dubG9hZCB3aWxsIGJlIHJldHVybmVkIGluIHRoZSBjb21wbGV0aW9uIGhhbmRsZXIuCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAg
ICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIFVSTFNlc3Npb246ZGF0YVRhc2s6ZGlk
QmVjb21lRG93bmxvYWRUYXNrOl0pOgorICAgICAgICBDYWxsIGRhdGFUYXNrQmVjYW1lRG93bmxv
YWRUYXNrIGFmdGVyIGRpZEJlY29tZURvd25sb2FkIGJlY2F1c2UgdGhlIG5ldHdvcmtEYXRhVGFz
ayBpcyBkZWxldGVkIGJ5IHJlbW92aW5nIGl0IAorICAgICAgICBmcm9tIG1fcGVuZGluZ0Rvd25s
b2FkcyBpbiBkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzay4KKyAgICAgICAgKiBQZW5kaW5nRG93
bmxvYWQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBlbmRpbmdEb3dubG9hZDo6UGVuZGlu
Z0Rvd25sb2FkKToKKyAgICAgICAgQWRkZWQgYSBuZXcgTmV0d29ya0xvYWRDbGllbnQgZm9yIHJl
cXVlc3RzIHRoYXQgd2lsbCBiZWNvbWUgZG93bmxvYWRzLgorICAgICAgICBBIFBlbmRpbmdEb3du
bG9hZCBjb250YWlucyBhIE5ldHdvcmtMb2FkIHNvIHdlIGNhbiBhbHdheXMga2VlcCB0aGVtIHRv
Z2V0aGVyCisgICAgICAgIGFuZCBzbyBpdCBjYW4gaGFuZGxlIHNldHRpbmcgaXRzIHBlbmRpbmcg
ZG93bmxvYWQgaWQuCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorCiAyMDE2LTAxLTA2ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVc2UgY29kZSBzaWduZWQgaWRlbnRpZmllciBhcyBwYXJ0IG9mIHVzZXIgZGlyZWN0b3J5
IHN1ZmZpeApJbmRleDogU291cmNlL1dlYktpdDIvUGVuZGluZ0Rvd25sb2FkLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvUGVuZGluZ0Rvd25sb2FkLmgJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvV2ViS2l0Mi9QZW5kaW5nRG93bmxvYWQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQZW5kaW5nRG93bmxvYWRfaAorI2RlZmluZSBQ
ZW5kaW5nRG93bmxvYWRfaAorCisjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKKworI2luY2x1ZGUg
Ik5ldHdvcmtMb2FkLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQZW5kaW5nRG93
bmxvYWQgOiBwdWJsaWMgTmV0d29ya0xvYWRDbGllbnQgeworcHVibGljOgorICAgIFBlbmRpbmdE
b3dubG9hZChjb25zdCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIERvd25sb2Fk
SUQgZG93bmxvYWRJRCkKKyAgICAgICAgOiBtX25ldHdvcmtMb2FkKHN0ZDo6bWFrZV91bmlxdWU8
TmV0d29ya0xvYWQ+KCp0aGlzLCBwYXJhbWV0ZXJzKSkKKyAgICB7CisgICAgICAgIG1fbmV0d29y
a0xvYWQtPnNldFBlbmRpbmdEb3dubG9hZElEKGRvd25sb2FkSUQpOworICAgIH0KKworcHJpdmF0
ZTogICAgCisgICAgLy8gTmV0d29ya0xvYWRDbGllbnQuCisgICAgdmlydHVhbCB2b2lkIGRpZFNl
bmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0
b3RhbEJ5dGVzVG9CZVNlbnQpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjYW5BdXRo
ZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlQXN5bmMoY29uc3QgV2ViQ29yZTo6UHJvdGVj
dGlvblNwYWNlJikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCBib29sIGlzU3luY2hyb25vdXMo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxs
U2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0LCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSBvdmVycmlkZQorICAgIHsK
KyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc2sgdGhlIFVJIHByb2Nlc3MgZGlyZWN0bHkg
aWYgd2UgYWN0dWFsbHkgd2FudCB0byBjb250aW51ZSB0aGlzIHJlcXVlc3QuCisgICAgICAgIG1f
bmV0d29ya0xvYWQtPmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KHJlZGlyZWN0UmVxdWVzdCk7Cisg
ICAgfTsKKyAgICB2aXJ0dWFsIFNob3VsZENvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlIGRpZFJl
Y2VpdmVSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGUg
eyByZXR1cm4gU2hvdWxkQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2U6Ok5vOyB9OworICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+
JiYsIGludCByZXBvcnRlZEVuY29kZWREYXRhTGVuZ3RoKSBvdmVycmlkZSB7IH07CisgICAgdmly
dHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpIG92ZXJyaWRlIHsg
fTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbExvYWRpbmcoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYpIG92ZXJyaWRlIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29udmVydFRvRG93
bmxvYWQoKSBvdmVycmlkZSB7IG1fbmV0d29ya0xvYWQgPSBudWxscHRyOyB9CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgdmlydHVhbCB2b2lkIHdpbGxDYWNoZVJlc3BvbnNlQXN5bmMoQ0ZDYWNo
ZWRVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGUgeyB9CisjZW5kaWYKK3ByaXZhdGU6CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPE5ldHdvcmtMb2FkPiBtX25ldHdvcmtMb2FkOworfTsKKworfQorCisjZW5k
aWYKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWQuY3BwCShyZXZpc2lvbiAxOTQ2MjYpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDE0ICs0NywxNiBA
QCBOZXR3b3JrTG9hZDo6TmV0d29ya0xvYWQoTmV0d29ya0xvYWRDbGllCiAgICAgOiBtX2NsaWVu
dChjbGllbnQpCiAgICAgLCBtX3BhcmFtZXRlcnMocGFyYW1ldGVycykKICAgICAsIG1fbmV0d29y
a2luZ0NvbnRleHQoUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShwYXJhbWV0ZXJzLnNl
c3Npb25JRCwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0KSkKLSNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQotICAgICwgbV90YXNrKFNlc3Npb25UcmFj
a2VyOjpuZXR3b3JrU2Vzc2lvbihwYXJhbWV0ZXJzLnNlc3Npb25JRCktPmNyZWF0ZURhdGFUYXNr
V2l0aFJlcXVlc3QocGFyYW1ldGVycy5yZXF1ZXN0LCAqdGhpcykpCi0jZW5kaWYKICAgICAsIG1f
Y3VycmVudFJlcXVlc3QocGFyYW1ldGVycy5yZXF1ZXN0KQogewogI2lmIFVTRShORVRXT1JLX1NF
U1NJT04pCi0gICAgaWYgKCFwYXJhbWV0ZXJzLmRlZmVyc0xvYWRpbmcpCi0gICAgICAgIG1fdGFz
ay0+cmVzdW1lKCk7CisgICAgaWYgKCFwYXJhbWV0ZXJzLmRlZmVyc0xvYWRpbmcpIHsKKyAgICAg
ICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gU2Vzc2lvblRyYWNrZXI6Om5ldHdvcmtTZXNz
aW9uKHBhcmFtZXRlcnMuc2Vzc2lvbklEKSkgeworICAgICAgICAgICAgbV90YXNrID0gbmV0d29y
a1Nlc3Npb24tPmNyZWF0ZURhdGFUYXNrV2l0aFJlcXVlc3QocGFyYW1ldGVycy5yZXF1ZXN0LCAq
dGhpcyk7CisgICAgICAgICAgICBtX3Rhc2stPnJlc3VtZSgpOworICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KICNlbHNlCiAgICAgbV9oYW5k
bGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fbmV0d29ya2luZ0NvbnRleHQuZ2V0KCksIHBh
cmFtZXRlcnMucmVxdWVzdCwgdGhpcywgcGFyYW1ldGVycy5kZWZlcnNMb2FkaW5nLCBwYXJhbWV0
ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9PSBTbmlmZkNvbnRlbnQpOwogI2VuZGlmCkBAIC04
OCw3ICs5MCw4IEBAIHZvaWQgTmV0d29ya0xvYWQ6OnNldERlZmVyc0xvYWRpbmcoYm9vbCAKIHZv
aWQgTmV0d29ya0xvYWQ6OmNhbmNlbCgpCiB7CiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKLSAg
ICBtX3Rhc2stPmNhbmNlbCgpOworICAgIGlmIChtX3Rhc2spCisgICAgICAgIG1fdGFzay0+Y2Fu
Y2VsKCk7CiAjZWxzZQogICAgIGlmIChtX2hhbmRsZSkKICAgICAgICAgbV9oYW5kbGUtPmNhbmNl
bCgpOwpAQCAtMTYwLDEzICsxNjMsMTggQEAgdm9pZCBOZXR3b3JrTG9hZDo6c2hhcmVkV2lsbFNl
bmRSZWRpcmVjdAogCiB2b2lkIE5ldHdvcmtMb2FkOjpjb252ZXJ0VGFza1RvRG93bmxvYWQoRG93
bmxvYWRJRCBkb3dubG9hZElEKQogewotICAgIG1fdGFzay0+c2V0RG93bmxvYWRJRChkb3dubG9h
ZElEKTsKKyAgICBtX3Rhc2stPnNldFBlbmRpbmdEb3dubG9hZElEKGRvd25sb2FkSUQpOwogICAg
IAogICAgIEFTU0VSVChtX3Jlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXIpOwogICAgIG1fcmVzcG9u
c2VDb21wbGV0aW9uSGFuZGxlcihQb2xpY3lEb3dubG9hZCk7CiAgICAgbV9yZXNwb25zZUNvbXBs
ZXRpb25IYW5kbGVyID0gbnVsbHB0cjsKIH0KIAordm9pZCBOZXR3b3JrTG9hZDo6c2V0UGVuZGlu
Z0Rvd25sb2FkSUQoRG93bmxvYWRJRCBkb3dubG9hZElEKQoreworICAgIG1fdGFzay0+c2V0UGVu
ZGluZ0Rvd25sb2FkSUQoZG93bmxvYWRJRCk7Cit9CisKIHZvaWQgTmV0d29ya0xvYWQ6OndpbGxQ
ZXJmb3JtSFRUUFJlZGlyZWN0aW9uKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlZGlyZWN0Q29tcGxldGlvbkhhbmRsZXIg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFtX3JlZGlyZWN0Q29tcGxldGlvbkhh
bmRsZXIpOwpAQCAtMjAyLDcgKzIxMCw5IEBAIHZvaWQgTmV0d29ya0xvYWQ6OmRpZFJlY2VpdmVD
aGFsbGVuZ2UoY28KIHZvaWQgTmV0d29ya0xvYWQ6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIGlmIChz
aGFyZWREaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpID09IE5ldHdvcmtMb2FkQ2xpZW50OjpT
aG91bGRDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZTo6WWVzKQorICAgIGlmIChtX3Rhc2sgJiYg
bV90YXNrLT5wZW5kaW5nRG93bmxvYWRJRCgpLmRvd25sb2FkSUQoKSkKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoUG9saWN5RG93bmxvYWQpOworICAgIGVsc2UgaWYgKHNoYXJlZERpZFJlY2Vp
dmVSZXNwb25zZShyZXNwb25zZSkgPT0gTmV0d29ya0xvYWRDbGllbnQ6OlNob3VsZENvbnRpbnVl
RGlkUmVjZWl2ZVJlc3BvbnNlOjpZZXMpCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGlj
eVVzZSk7CiAgICAgZWxzZQogICAgICAgICBtX3Jlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXIgPSBj
b21wbGV0aW9uSGFuZGxlcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWQuaAkocmV2aXNpb24gMTk0NTcwKQorKysgU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWQuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsNyBAQCBw
dWJsaWM6CiAKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQogICAgIHZvaWQgY29udmVydFRhc2tU
b0Rvd25sb2FkKERvd25sb2FkSUQpOworICAgIHZvaWQgc2V0UGVuZGluZ0Rvd25sb2FkSUQoRG93
bmxvYWRJRCk7CiAgICAgCiAgICAgLy8gTmV0d29ya1Nlc3Npb25UYXNrQ2xpZW50LgogICAgIHZp
cnR1YWwgdm9pZCB3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwgc3RkOjpmdW5j
dGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpPikgZmluYWwgb3ZlcnJp
ZGU7CkBAIC0xMjUsNyArMTI2LDYgQEAgcHJpdmF0ZToKICAgICBDaGFsbGVuZ2VDb21wbGV0aW9u
SGFuZGxlciBtX2NoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyOwogICAgIFJlc3BvbnNlQ29tcGxl
dGlvbkhhbmRsZXIgbV9yZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyOwogICAgIFJlZGlyZWN0Q29t
cGxldGlvbkhhbmRsZXIgbV9yZWRpcmVjdENvbXBsZXRpb25IYW5kbGVyOwotICAgIERvd25sb2Fk
SUQgbV9kb3dubG9hZElEOwogI2Vsc2UKICAgICBSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU+IG1faGFuZGxlOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmgJKHJldmlzaW9uIDE5NDYyNikKKysrIFNvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTk3
LDE4ICs5NywxOCBAQCBwdWJsaWM6CiAKICAgICBOZXR3b3JrU2Vzc2lvblRhc2tDbGllbnQmIGNs
aWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKLSAgICBEb3dubG9hZElEIGRvd25sb2FkSUQo
KSB7IHJldHVybiBtX2Rvd25sb2FkSUQ7IH0KLSAgICB2b2lkIHNldERvd25sb2FkSUQoRG93bmxv
YWRJRCBkb3dubG9hZElEKQorICAgIERvd25sb2FkSUQgcGVuZGluZ0Rvd25sb2FkSUQoKSB7IHJl
dHVybiBtX3BlbmRpbmdEb3dubG9hZElEOyB9CisgICAgdm9pZCBzZXRQZW5kaW5nRG93bmxvYWRJ
RChEb3dubG9hZElEIGRvd25sb2FkSUQpCiAgICAgewotICAgICAgICBBU1NFUlQoIW1fZG93bmxv
YWRJRC5kb3dubG9hZElEKCkpOworICAgICAgICBBU1NFUlQoIW1fcGVuZGluZ0Rvd25sb2FkSUQu
ZG93bmxvYWRJRCgpKTsKICAgICAgICAgQVNTRVJUKGRvd25sb2FkSUQuZG93bmxvYWRJRCgpKTsK
LSAgICAgICAgbV9kb3dubG9hZElEID0gZG93bmxvYWRJRDsKKyAgICAgICAgbV9wZW5kaW5nRG93
bmxvYWRJRCA9IGRvd25sb2FkSUQ7CiAgICAgfQogICAgIAogcHJpdmF0ZToKICAgICBOZXR3b3Jr
U2Vzc2lvbiYgbV9zZXNzaW9uOwogICAgIE5ldHdvcmtTZXNzaW9uVGFza0NsaWVudCYgbV9jbGll
bnQ7Ci0gICAgRG93bmxvYWRJRCBtX2Rvd25sb2FkSUQ7CisgICAgRG93bmxvYWRJRCBtX3BlbmRp
bmdEb3dubG9hZElEOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxOU1VSTFNl
c3Npb25EYXRhVGFzaz4gbV90YXNrOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAJKHJldmlzaW9uIDE5
NDUzNikKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDE1ICs0NCwxMyBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikK
LURvd25sb2FkOjpEb3dubG9hZChEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlciwgY29u
c3QgTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIERvd25sb2FkSUQgZG93bmxvYWRJRCkKK0Rvd25s
b2FkOjpEb3dubG9hZChEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlciwgRG93bmxvYWRJ
RCBkb3dubG9hZElEKQogI2Vsc2UKIERvd25sb2FkOjpEb3dubG9hZChEb3dubG9hZE1hbmFnZXIm
IGRvd25sb2FkTWFuYWdlciwgRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCiAjZW5kaWYKICAgICA6IG1fZG93bmxvYWRNYW5hZ2VyKGRvd25sb2Fk
TWFuYWdlcikKICAgICAsIG1fZG93bmxvYWRJRChkb3dubG9hZElEKQotI2lmIFVTRShORVRXT1JL
X1NFU1NJT04pCi0gICAgLCBtX3Nlc3Npb24oc2Vzc2lvbikKLSNlbHNlCisjaWYgIVVTRShORVRX
T1JLX1NFU1NJT04pCiAgICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKICNlbmRpZgogewpAQCAtODAs
MTQgKzc4LDEyIEBAIHZvaWQgRG93bmxvYWQ6OmRpZFN0YXJ0KCkKIH0KICNlbmRpZgogCisjaWYg
IVVTRShORVRXT1JLX1NFU1NJT04pCiB2b2lkIERvd25sb2FkOjpkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKQogewotI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCi0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSNlbHNlCiAgICAgbV9kb3dubG9hZE1hbmFnZXIuZG93bmxvYWRzQXV0aGVudGlj
YXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCp0aGlzLCBh
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSk7Ci0jZW5kaWYKIH0KKyNlbmRpZgogCiB2b2lkIERvd25s
b2FkOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
CiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxv
YWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWQuaAkocmV2aXNpb24gMTk0NTcwKQorKysgU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgJKHdvcmtpbmcgY29weSkKQEAgLTc2LDcgKzc2
LDcgQEAgY2xhc3MgRG93bmxvYWQgOiBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZAogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKERvd25sb2FkKTsKIHB1YmxpYzoKICNpZiBVU0UoTkVUV09SS19TRVNT
SU9OKQotICAgIERvd25sb2FkKERvd25sb2FkTWFuYWdlciYsIGNvbnN0IE5ldHdvcmtTZXNzaW9u
JiwgRG93bmxvYWRJRCk7CisgICAgRG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiwgRG93bmxvYWRJ
RCk7CiAjZWxzZQogICAgIERvd25sb2FkKERvd25sb2FkTWFuYWdlciYsIERvd25sb2FkSUQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogI2VuZGlmCkBAIC05Nyw4ICs5Nyw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpZFN0YXJ0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYpOwogI2Vsc2UKICAgICB2b2lkIGRpZFN0YXJ0KCk7Ci0jZW5kaWYKICAgICB2b2lkIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYpOworI2VuZGlmCiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEodWlu
dDY0X3QgbGVuZ3RoKTsKICAgICBib29sIHNob3VsZERlY29kZVNvdXJjZURhdGFPZk1JTUVUeXBl
KGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwpAQCAtMTQxLDcgKzE0MSw2IEBAIHByaXZhdGU6CiAK
ICNpZiBQTEFURk9STShDT0NPQSkKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQotICAgIGNvbnN0
IE5ldHdvcmtTZXNzaW9uJiBtX3Nlc3Npb247CiAgICAgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbkRv
d25sb2FkVGFzaz4gbV9kb3dubG9hZDsKICNlbHNlCiAgICAgUmV0YWluUHRyPE5TVVJMRG93bmxv
YWQ+IG1fbnNVUkxEb3dubG9hZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCShyZXZpc2lv
biAxOTQ1OTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBAQAogI2luY2x1
ZGUgIkRvd25sb2FkTWFuYWdlci5oIgogCiAjaW5jbHVkZSAiRG93bmxvYWQuaCIKKyNpbmNsdWRl
ICJOZXR3b3JrU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlBlbmRpbmdEb3dubG9hZC5oIgogI2luY2x1
ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CkBAIC00NywyMSArNDksMjYgQEAgdm9p
ZCBEb3dubG9hZE1hbmFnZXI6OnN0YXJ0RG93bmxvYWQoU2VzcwogICAgIGF1dG8qIG5ldHdvcmtT
ZXNzaW9uID0gU2Vzc2lvblRyYWNrZXI6Om5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCk7CiAgICAg
aWYgKCFuZXR3b3JrU2Vzc2lvbikKICAgICAgICAgcmV0dXJuOwotICAgIGF1dG8gZG93bmxvYWQg
PSBzdGQ6Om1ha2VfdW5pcXVlPERvd25sb2FkPigqdGhpcywgKm5ldHdvcmtTZXNzaW9uLCBkb3du
bG9hZElEKTsKLSAgICBkb3dubG9hZC0+ZGlkU3RhcnQocmVxdWVzdCk7CisgICAgTmV0d29ya0xv
YWRQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisgICAgcGFyYW1ldGVycy5zZXNzaW9uSUQgPSBzZXNz
aW9uSUQ7CisgICAgcGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICBtX3BlbmRpbmdE
b3dubG9hZHMuYWRkKGRvd25sb2FkSUQsIHN0ZDo6bWFrZV91bmlxdWU8UGVuZGluZ0Rvd25sb2Fk
PihwYXJhbWV0ZXJzLCBkb3dubG9hZElEKSk7CiAjZWxzZQogICAgIGF1dG8gZG93bmxvYWQgPSBz
dGQ6Om1ha2VfdW5pcXVlPERvd25sb2FkPigqdGhpcywgZG93bmxvYWRJRCwgcmVxdWVzdCk7CiAg
ICAgZG93bmxvYWQtPnN0YXJ0KCk7Ci0jZW5kaWYKIAogICAgIEFTU0VSVCghbV9kb3dubG9hZHMu
Y29udGFpbnMoZG93bmxvYWRJRCkpOwogICAgIG1fZG93bmxvYWRzLmFkZChkb3dubG9hZElELCBX
VEZNb3ZlKGRvd25sb2FkKSk7CisjZW5kaWYKIH0KIAogI2lmIFVTRShORVRXT1JLX1NFU1NJT04p
Ci12b2lkIERvd25sb2FkTWFuYWdlcjo6ZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2soRG93bmxv
YWRJRCBkb3dubG9hZElELCBzdGQ6OnVuaXF1ZV9wdHI8RG93bmxvYWQ+JiYgZG93bmxvYWQpCitz
dGQ6OnVuaXF1ZV9wdHI8UGVuZGluZ0Rvd25sb2FkPiBEb3dubG9hZE1hbmFnZXI6OmRhdGFUYXNr
QmVjYW1lRG93bmxvYWRUYXNrKERvd25sb2FkSUQgZG93bmxvYWRJRCwgc3RkOjp1bmlxdWVfcHRy
PERvd25sb2FkPiYmIGRvd25sb2FkKQogeworICAgIC8vIFRoaXMgaXMgbmVlZGVkIGZvciBkb3du
bG9hZHMgc3RhcnRlZCB3aXRoIHN0YXJ0RG93bmxvYWQsIG90aGVyd2lzZSBpdCB3aWxsIHJldHVy
biBudWxscHRyLgorICAgIGF1dG8gcGVuZGluZ0Rvd25sb2FkID0gbV9wZW5kaW5nRG93bmxvYWRz
LnRha2UoZG93bmxvYWRJRCk7CiAgICAgbV9kb3dubG9hZHMuYWRkKGRvd25sb2FkSUQsIFdURk1v
dmUoZG93bmxvYWQpKTsKKyAgICByZXR1cm4gcGVuZGluZ0Rvd25sb2FkOwogfQogI2Vsc2UKIHZv
aWQgRG93bmxvYWRNYW5hZ2VyOjpjb252ZXJ0SGFuZGxlVG9Eb3dubG9hZChEb3dubG9hZElEIGRv
d25sb2FkSUQsIFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
TWFuYWdlci5oCShyZXZpc2lvbiAxOTQ1OTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYg
KzI3LDcgQEAKICNkZWZpbmUgRG93bmxvYWRNYW5hZ2VyX2gKIAogI2luY2x1ZGUgIkRvd25sb2Fk
SUQuaCIKKyNpbmNsdWRlICJQZW5kaW5nRG93bmxvYWQuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0
ZW5zaW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CkBAIC01MSw2ICs1Miw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBBdXRoZW50aWNhdGlvbk1hbmFnZXI7CiBjbGFzcyBEb3dubG9hZDsKK2NsYXNzIFBlbmRp
bmdEb3dubG9hZDsKIAogY2xhc3MgRG93bmxvYWRNYW5hZ2VyIHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShEb3dubG9hZE1hbmFnZXIpOwpAQCAtNzAsNyArNzIsNyBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHN0YXJ0RG93bmxvYWQoV2ViQ29yZTo6U2Vzc2lvbklELCBEb3dubG9hZElELCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQot
ICAgIHZvaWQgZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2soRG93bmxvYWRJRCwgc3RkOjp1bmlx
dWVfcHRyPERvd25sb2FkPiYmKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGVuZGluZ0Rvd25sb2Fk
PiBkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayhEb3dubG9hZElELCBzdGQ6OnVuaXF1ZV9wdHI8
RG93bmxvYWQ+JiYpOwogI2Vsc2UKICAgICB2b2lkIGNvbnZlcnRIYW5kbGVUb0Rvd25sb2FkKERv
d25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogI2VuZGlmCkBA
IC05Myw2ICs5NSw5IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBDbGllbnQmIG1fY2xpZW50
OworI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCisgICAgSGFzaE1hcDxEb3dubG9hZElELCBzdGQ6
OnVuaXF1ZV9wdHI8UGVuZGluZ0Rvd25sb2FkPj4gbV9wZW5kaW5nRG93bmxvYWRzOworI2VuZGlm
CiAgICAgSGFzaE1hcDxEb3dubG9hZElELCBzdGQ6OnVuaXF1ZV9wdHI8RG93bmxvYWQ+PiBtX2Rv
d25sb2FkczsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQkocmV2aXNpb24gMTk0NjI2
KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTY2LDE0ICsxNjYsMTQgQEAgLSAodm9pZClVUkxT
ZXNzaW9uOihOU1VSTFNlc3Npb24gKilzZXNzaQogLSAodm9pZClVUkxTZXNzaW9uOihOU1VSTFNl
c3Npb24gKilzZXNzaW9uIGRhdGFUYXNrOihOU1VSTFNlc3Npb25EYXRhVGFzayAqKWRhdGFUYXNr
IGRpZEJlY29tZURvd25sb2FkVGFzazooTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrICopZG93bmxv
YWRUYXNrCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtEYXRhVGFzayA9IF9zZXNzaW9uLT5kYXRh
VGFza0ZvcklkZW50aWZpZXIoW2RhdGFUYXNrIHRhc2tJZGVudGlmaWVyXSkpIHsKLSAgICAgICAg
YXV0byBkb3dubG9hZElEID0gbmV0d29ya0RhdGFUYXNrLT5kb3dubG9hZElEKCk7CisgICAgICAg
IGF1dG8gZG93bmxvYWRJRCA9IG5ldHdvcmtEYXRhVGFzay0+cGVuZGluZ0Rvd25sb2FkSUQoKTsK
ICAgICAgICAgYXV0byYgZG93bmxvYWRNYW5hZ2VyID0gV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
c2luZ2xldG9uKCkuZG93bmxvYWRNYW5hZ2VyKCk7Ci0gICAgICAgIGF1dG8gZG93bmxvYWQgPSBz
dGQ6Om1ha2VfdW5pcXVlPFdlYktpdDo6RG93bmxvYWQ+KGRvd25sb2FkTWFuYWdlciwgKl9zZXNz
aW9uLCBkb3dubG9hZElEKTsKKyAgICAgICAgYXV0byBkb3dubG9hZCA9IHN0ZDo6bWFrZV91bmlx
dWU8V2ViS2l0OjpEb3dubG9hZD4oZG93bmxvYWRNYW5hZ2VyLCBkb3dubG9hZElEKTsKICAgICAg
ICAgZG93bmxvYWQtPmRpZFN0YXJ0KFtkb3dubG9hZFRhc2sgY3VycmVudFJlcXVlc3RdKTsKICAg
ICAgICAgZG93bmxvYWQtPmRpZFJlY2VpdmVSZXNwb25zZShbZG93bmxvYWRUYXNrIHJlc3BvbnNl
XSk7Ci0gICAgICAgIGRvd25sb2FkTWFuYWdlci5kYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayhk
b3dubG9hZElELCBXVEZNb3ZlKGRvd25sb2FkKSk7Ci0KICAgICAgICAgbmV0d29ya0RhdGFUYXNr
LT5jbGllbnQoKS5kaWRCZWNvbWVEb3dubG9hZCgpOworICAgICAgICBhdXRvIHBlbmRpbmdEb3du
bG9hZCA9IGRvd25sb2FkTWFuYWdlci5kYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayhkb3dubG9h
ZElELCBXVEZNb3ZlKGRvd25sb2FkKSk7CisgICAgICAgIEFTU0VSVCghcGVuZGluZ0Rvd25sb2Fk
IHx8IHBlbmRpbmdEb3dubG9hZCA9PSBuZXR3b3JrRGF0YVRhc2spOwogCiAgICAgICAgIF9zZXNz
aW9uLT5hZGREb3dubG9hZElEKFtkb3dubG9hZFRhc2sgdGFza0lkZW50aWZpZXJdLCBkb3dubG9h
ZElEKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxOTQ1MzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEwNjgs
NiArMTA2OCw3IEBACiAJCTVDMTQyNzFEMUMyM0Y4Q0YwMEQ0MTE4MyAvKiBDdXN0b21Qcm90b2Nv
bE1hbmFnZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDVDMTQyNzFCMUMyM0Y4Q0MwMEQ0MTE4MyAvKiBDdXN0b21Qcm90b2NvbE1hbmFnZXJD
b2NvYS5tbSAqLzsgfTsKIAkJNUMyMENCOUQxQkIwRENGQTAwODk1QkIxIC8qIE5ldHdvcmtTZXNz
aW9uQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QzIwQ0I5QjFCQjBEQ0QyMDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb25Db2NvYS5tbSAqLzsg
fTsKIAkJNUMyMENCQTAxQkIxRUNEODAwODk1QkIxIC8qIE5ldHdvcmtTZXNzaW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzIwQ0I5RTFCQjBERDE4
MDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb24uaCAqLzsgfTsKKwkJNUMyOThEOUMxQzNDNzI3NjAw
NDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNUMyOThEOUIxQzNDNzI2RjAwNDcwQUZFIC8qIFBlbmRpbmdEb3du
bG9hZC5oICovOyB9OwogCQk1REE2RUQwQTE0OTA2MDY5MDBCNDFEMTIgLyogRHluYW1pY0xpbmtl
ckVudmlyb25tZW50RXh0cmFjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1REE2RUQwODE0OTA2MDY5MDBCNDFEMTIgLyogRHluYW1pY0xpbmtlckVu
dmlyb25tZW50RXh0cmFjdG9yLmggKi87IH07CiAJCTVEQTZFRDBCMTQ5MDYwNjkwMEI0MUQxMiAv
KiBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1REE2RUQwOTE0OTA2MDY5MDBCNDFEMTIgLyog
RHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLm1tICovOyB9OwogCQk2NTAxQkQxQTEy
RjEyNDM0MDBFOUYyNDggLyogV0tCdW5kbGVJbnNwZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVCODZGMTcxMkYxMUQ3QjAwQjdERDhBIC8q
IFdLQnVuZGxlSW5zcGVjdG9yLmNwcCAqLzsgfTsKQEAgLTMyNDgsNiArMzI0OSw3IEBACiAJCTVD
MTQyNzFCMUMyM0Y4Q0MwMEQ0MTE4MyAvKiBDdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEN1c3RvbVByb3RvY29sTWFu
YWdlckNvY29hLm1tOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL0NvY29h
L0N1c3RvbVByb3RvY29sTWFuYWdlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1QzIwQ0I5QjFCQjBEQ0QyMDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb25Db2NvYS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IE5ldHdvcmtTZXNzaW9uQ29j
b2EubW07IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzIwQ0I5RTFCQjBERDE4MDA4OTVCQjEg
LyogTmV0d29ya1Nlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0
d29ya1Nlc3Npb24uaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDMjk4RDlCMUMzQzcyNkYwMDQ3MEFGRSAvKiBQ
ZW5kaW5nRG93bmxvYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVuZGluZ0Rvd25sb2FkLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVENDQyQTU1MTZENTg1NjcwMEFDMzMzMSAvKiBQbHVn
aW5TZXJ2aWNlLmVudGl0bGVtZW50cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQueG1sOyBwYXRoID0gUGx1Z2luU2VydmljZS5lbnRpdGxlbWVu
dHM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEQTZFRDA4MTQ5MDYwNjkwMEI0MUQx
MiAvKiBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEQTZFRDA5MTQ5MDYwNjkwMEI0MUQxMiAvKiBE
eW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01ODI1LDYgKzU4MjcsNyBAQAogCQkJCTVD
MTQyNkY3MUMyM0Y4NDMwMEQ0MTE4MyAvKiBEb3dubG9hZElELmggKi8sCiAJCQkJNUMxNDI2Rjgx
QzIzRjg0MzAwRDQxMTgzIC8qIERvd25sb2FkTWFuYWdlci5jcHAgKi8sCiAJCQkJNUMxNDI2Rjkx
QzIzRjg0MzAwRDQxMTgzIC8qIERvd25sb2FkTWFuYWdlci5oICovLAorCQkJCTVDMjk4RDlCMUMz
QzcyNkYwMDQ3MEFGRSAvKiBQZW5kaW5nRG93bmxvYWQuaCAqLywKIAkJCSk7CiAJCQluYW1lID0g
RG93bmxvYWRzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTc5NTUsNiArNzk1OCw3
IEBACiAJCQkJMkQ2Q0QxMTkxODkwNThBNTAwRTVBNEEwIC8qIFZpZXdTbmFwc2hvdFN0b3JlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyNjg0MDU1MzE4Qjg2RUQ2MDAyMkMzOEIgLyogVmlld1VwZGF0
ZURpc3BhdGNoZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjY4NDA1NDQxOEI4NUE2
MzAwMjJDMzhCIC8qIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaCBpbiBIZWFkZXJzICov
LAorCQkJCTVDMjk4RDlDMUMzQzcyNzYwMDQ3MEFGRSAvKiBQZW5kaW5nRG93bmxvYWQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBMEYyOUU0MTIwQjQ0NDIwMDUzRDFCOSAvKiBWaXNpdGVkTGlua1N0
b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTYwMjI0RDE4QzE2QjlGMDBDM0U4QzkgLyogVmlz
aXRlZExpbmtTdG9yZU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTBGMjlDQzEyMEIz
NzE2MDA1M0QxQjkgLyogVmlzaXRlZExpbmtUYWJsZS5oIGluIEhlYWRlcnMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268411</attachid>
            <date>2016-01-06 14:41:26 -0800</date>
            <delta_ts>2016-01-06 17:02:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152760-20160106144053.patch</filename>
            <type>text/plain</type>
            <size>23264</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NDY2MikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBACisyMDE2LTAxLTA2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mg
dG93YXJkcyBpbXBsZW1lbnRpbmcgZG93bmxvYWRzIHdpdGggTmV0d29ya1Nlc3Npb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjc2MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OkRv
d25sb2FkKToKKyAgICAgICAgVGhlcmUncyBubyBuZWVkIHRvIHN0b3JlIHRoZSB1bnVzZWQgTmV0
d29ya1Nlc3Npb24mLgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkU3RhcnQpOgorICAg
ICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KToKKyAgICAgICAgRG93bmxvYWRzIHdpdGggTmV0d29ya1Nlc3Npb24gYXJlIE5ldHdvcmtMb2Fk
cyB1bnRpbCB0aGUgcmVzcG9uc2UgaXMgcmVjZWl2ZWQsIHdoaWNoIGlzIGFmdGVyIGF1dGhlbnRp
Y2F0aW9uCisgICAgICAgIGNoYWxsZW5nZXMgYXJlIGhhbmRsZWQgYnkgTmV0d29ya0xvYWQncyBj
b2RlLgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6RG93bmxvYWRNYW5hZ2VyOjpzdGFydERvd25sb2FkKToKKyAgICAgICAgQ3JlYXRlIGEg
UGVuZGluZ0Rvd25sb2FkLCB3aGljaCBpcyBiYXNpY2FsbHkgYSBOZXR3b3JrTG9hZCB0aGF0IGtu
b3dzIHRoYXQgaXQgd2lsbCBiZWNvbWUgYSBEb3dubG9hZCAKKyAgICAgICAgd2hlbiB0aGUgcmVz
cG9uc2UgaXMgcmVjZWl2ZWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvciBub3QgdGhlcmUgaXMg
YSBDb250ZW50LURpc3Bvc2l0aW9uIGhlYWRlci4KKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRN
YW5hZ2VyOjpkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6Ok5ldHdv
cmtMb2FkKToKKyAgICAgICAgQXZvaWQgZGVyZWZlcmVuY2luZyBhIHBvaW50ZXIgaWYgdGhlIE5l
dHdvcmtTZXNzaW9uIGhhZG4ndCBiZWVuIGNyZWF0ZWQgd2hlbiBhIE5ldHdvcmtMb2FkIHN0YXJ0
cy4KKyAgICAgICAgVGhpcyBzaG91bGRuJ3QgYmUgcG9zc2libGUsIGJ1dCBpdCdzIGdvb2QgdG8g
bm90IGFzc3VtZSB0aGF0IGFsbCBwb2ludGVycyBhcmUgbm9uLW51bGwuCisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtMb2FkOjpjYW5jZWwpOgorICAgICAgICBBZGQgYSBudWxsIGNoZWNrIGluIGNh
c2UgdGhlIGNvbnN0cnVjdG9yIGRvZXNuJ3QgbWFrZSBtX3Rhc2suCisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtMb2FkOjpjb252ZXJ0VGFza1RvRG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrTG9hZDo6c2V0UGVuZGluZ0Rvd25sb2FkSUQpOgorICAgICAgICBBZGRlZCBmb3IgZG93
bmxvYWRzIHRoYXQgc3RhcnQgd2l0aCBzdGFydERvd25sb2FkLiAgVGhlIHBlbmRpbmcgRG93bmxv
YWRJRCBpcyB1c2VkIHRvIGluZGljYXRlIHRoYXQKKyAgICAgICAgdGhpcyByZXF1ZXN0IHNob3Vs
ZCBhbHdheXMgYmVjb21lIGEgZG93bmxvYWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvciBub3Qg
dGhlIHJlc3BvbnNlIGhhcyBhIAorICAgICAgICBDb250ZW50LURpc3Bvc2l0aW9uIGhlYWRlci4K
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9u
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6OmRpZFJlY2VpdmVSZXNwb25zZSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaDoKKyAgICAgICAgVGhlcmUncyBu
byBuZWVkIHRvIHN0b3JlIGEgRG93bmxvYWRJRCBoZXJlLiAgSXQncyBzdG9yZWQgaW4gdGhlIE5l
dHdvcmtEYXRhVGFzayAobV90YXNrKS4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OmNsaWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFzazo6cGVuZGluZ0Rvd25sb2FkSUQpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OnNldFBlbmRpbmdEb3dubG9hZElEKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpkb3dubG9hZElEKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpzZXREb3dubG9hZElEKTogRGVsZXRlZC4K
KyAgICAgICAgUmVuYW1lZCBkb3dubG9hZElEIGFuZCBzZXREb3dubG9hZElEIHRvIHBlbmRpbmdE
b3dubG9hZElEIGFuZCBzZXRQZW5kaW5nRG93bmxvYWRJRCwgcmVzcGVjdGl2ZWx5LAorICAgICAg
ICB0byBpbmRpY2F0ZSB0aGVpciB1c2UuICBUaGV5IGFyZSBub3QgdGhlIGN1cnJlbnQgZG93bmxv
YWRJRCwgYnV0IHRoZXkgYXJlIHRoZSBkb3dubG9hZElEIG9mIHRoZSBkb3dubG9hZAorICAgICAg
ICB0aGF0IHdpbGwgaGFwcGVuIG9uY2UgdGhlIHJlc3BvbnNlIGlzIHJlY2VpdmVkIGFuZCBQb2xp
Y3lEb3dubG9hZCB3aWxsIGJlIHJldHVybmVkIGluIHRoZSBjb21wbGV0aW9uIGhhbmRsZXIuCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAg
ICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIFVSTFNlc3Npb246ZGF0YVRhc2s6ZGlk
QmVjb21lRG93bmxvYWRUYXNrOl0pOgorICAgICAgICBDYWxsIGRhdGFUYXNrQmVjYW1lRG93bmxv
YWRUYXNrIGFmdGVyIGRpZEJlY29tZURvd25sb2FkIGJlY2F1c2UgdGhlIG5ldHdvcmtEYXRhVGFz
ayBpcyBkZWxldGVkIGJ5IHJlbW92aW5nIGl0IAorICAgICAgICBmcm9tIG1fcGVuZGluZ0Rvd25s
b2FkcyBpbiBkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzay4KKyAgICAgICAgKiBQZW5kaW5nRG93
bmxvYWQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBlbmRpbmdEb3dubG9hZDo6UGVuZGlu
Z0Rvd25sb2FkKToKKyAgICAgICAgQWRkZWQgYSBuZXcgTmV0d29ya0xvYWRDbGllbnQgZm9yIHJl
cXVlc3RzIHRoYXQgd2lsbCBiZWNvbWUgZG93bmxvYWRzLgorICAgICAgICBBIFBlbmRpbmdEb3du
bG9hZCBjb250YWlucyBhIE5ldHdvcmtMb2FkIHNvIHdlIGNhbiBhbHdheXMga2VlcCB0aGVtIHRv
Z2V0aGVyCisgICAgICAgIGFuZCBzbyBpdCBjYW4gaGFuZGxlIHNldHRpbmcgaXRzIHBlbmRpbmcg
ZG93bmxvYWQgaWQuCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorCiAyMDE2LTAxLTA2ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVc2UgY29kZSBzaWduZWQgaWRlbnRpZmllciBhcyBwYXJ0IG9mIHVzZXIgZGlyZWN0b3J5
IHN1ZmZpeApJbmRleDogU291cmNlL1dlYktpdDIvUGVuZGluZ0Rvd25sb2FkLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvUGVuZGluZ0Rvd25sb2FkLmgJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvV2ViS2l0Mi9QZW5kaW5nRG93bmxvYWQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQZW5kaW5nRG93bmxvYWRfaAorI2RlZmluZSBQ
ZW5kaW5nRG93bmxvYWRfaAorCisjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKKworI2luY2x1ZGUg
Ik5ldHdvcmtMb2FkLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQZW5kaW5nRG93
bmxvYWQgOiBwdWJsaWMgTmV0d29ya0xvYWRDbGllbnQgeworcHVibGljOgorICAgIFBlbmRpbmdE
b3dubG9hZChjb25zdCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIERvd25sb2Fk
SUQgZG93bmxvYWRJRCkKKyAgICAgICAgOiBtX25ldHdvcmtMb2FkKHN0ZDo6bWFrZV91bmlxdWU8
TmV0d29ya0xvYWQ+KCp0aGlzLCBwYXJhbWV0ZXJzKSkKKyAgICB7CisgICAgICAgIG1fbmV0d29y
a0xvYWQtPnNldFBlbmRpbmdEb3dubG9hZElEKGRvd25sb2FkSUQpOworICAgIH0KKworcHJpdmF0
ZTogICAgCisgICAgLy8gTmV0d29ya0xvYWRDbGllbnQuCisgICAgdmlydHVhbCB2b2lkIGRpZFNl
bmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0
b3RhbEJ5dGVzVG9CZVNlbnQpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjYW5BdXRo
ZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlQXN5bmMoY29uc3QgV2ViQ29yZTo6UHJvdGVj
dGlvblNwYWNlJikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCBib29sIGlzU3luY2hyb25vdXMo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxs
U2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0LCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSBvdmVycmlkZQorICAgIHsK
KyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc2sgdGhlIFVJIHByb2Nlc3MgZGlyZWN0bHkg
aWYgd2UgYWN0dWFsbHkgd2FudCB0byBjb250aW51ZSB0aGlzIHJlcXVlc3QuCisgICAgICAgIG1f
bmV0d29ya0xvYWQtPmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KHJlZGlyZWN0UmVxdWVzdCk7Cisg
ICAgfTsKKyAgICB2aXJ0dWFsIFNob3VsZENvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlIGRpZFJl
Y2VpdmVSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGUg
eyByZXR1cm4gU2hvdWxkQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2U6Ok5vOyB9OworICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+
JiYsIGludCByZXBvcnRlZEVuY29kZWREYXRhTGVuZ3RoKSBvdmVycmlkZSB7IH07CisgICAgdmly
dHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpIG92ZXJyaWRlIHsg
fTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbExvYWRpbmcoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYpIG92ZXJyaWRlIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29udmVydFRvRG93
bmxvYWQoKSBvdmVycmlkZSB7IG1fbmV0d29ya0xvYWQgPSBudWxscHRyOyB9CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgdmlydHVhbCB2b2lkIHdpbGxDYWNoZVJlc3BvbnNlQXN5bmMoQ0ZDYWNo
ZWRVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGUgeyB9CisjZW5kaWYKK3ByaXZhdGU6CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPE5ldHdvcmtMb2FkPiBtX25ldHdvcmtMb2FkOworfTsKKworfQorCisjZW5k
aWYKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWQuY3BwCShyZXZpc2lvbiAxOTQ2MjYpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDE0ICs0NywxNiBA
QCBOZXR3b3JrTG9hZDo6TmV0d29ya0xvYWQoTmV0d29ya0xvYWRDbGllCiAgICAgOiBtX2NsaWVu
dChjbGllbnQpCiAgICAgLCBtX3BhcmFtZXRlcnMocGFyYW1ldGVycykKICAgICAsIG1fbmV0d29y
a2luZ0NvbnRleHQoUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShwYXJhbWV0ZXJzLnNl
c3Npb25JRCwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0KSkKLSNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQotICAgICwgbV90YXNrKFNlc3Npb25UcmFj
a2VyOjpuZXR3b3JrU2Vzc2lvbihwYXJhbWV0ZXJzLnNlc3Npb25JRCktPmNyZWF0ZURhdGFUYXNr
V2l0aFJlcXVlc3QocGFyYW1ldGVycy5yZXF1ZXN0LCAqdGhpcykpCi0jZW5kaWYKICAgICAsIG1f
Y3VycmVudFJlcXVlc3QocGFyYW1ldGVycy5yZXF1ZXN0KQogewogI2lmIFVTRShORVRXT1JLX1NF
U1NJT04pCi0gICAgaWYgKCFwYXJhbWV0ZXJzLmRlZmVyc0xvYWRpbmcpCi0gICAgICAgIG1fdGFz
ay0+cmVzdW1lKCk7CisgICAgaWYgKCFwYXJhbWV0ZXJzLmRlZmVyc0xvYWRpbmcpIHsKKyAgICAg
ICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gU2Vzc2lvblRyYWNrZXI6Om5ldHdvcmtTZXNz
aW9uKHBhcmFtZXRlcnMuc2Vzc2lvbklEKSkgeworICAgICAgICAgICAgbV90YXNrID0gbmV0d29y
a1Nlc3Npb24tPmNyZWF0ZURhdGFUYXNrV2l0aFJlcXVlc3QocGFyYW1ldGVycy5yZXF1ZXN0LCAq
dGhpcyk7CisgICAgICAgICAgICBtX3Rhc2stPnJlc3VtZSgpOworICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KICNlbHNlCiAgICAgbV9oYW5k
bGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fbmV0d29ya2luZ0NvbnRleHQuZ2V0KCksIHBh
cmFtZXRlcnMucmVxdWVzdCwgdGhpcywgcGFyYW1ldGVycy5kZWZlcnNMb2FkaW5nLCBwYXJhbWV0
ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9PSBTbmlmZkNvbnRlbnQpOwogI2VuZGlmCkBAIC04
OCw3ICs5MCw4IEBAIHZvaWQgTmV0d29ya0xvYWQ6OnNldERlZmVyc0xvYWRpbmcoYm9vbCAKIHZv
aWQgTmV0d29ya0xvYWQ6OmNhbmNlbCgpCiB7CiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKLSAg
ICBtX3Rhc2stPmNhbmNlbCgpOworICAgIGlmIChtX3Rhc2spCisgICAgICAgIG1fdGFzay0+Y2Fu
Y2VsKCk7CiAjZWxzZQogICAgIGlmIChtX2hhbmRsZSkKICAgICAgICAgbV9oYW5kbGUtPmNhbmNl
bCgpOwpAQCAtMTYwLDEzICsxNjMsMTggQEAgdm9pZCBOZXR3b3JrTG9hZDo6c2hhcmVkV2lsbFNl
bmRSZWRpcmVjdAogCiB2b2lkIE5ldHdvcmtMb2FkOjpjb252ZXJ0VGFza1RvRG93bmxvYWQoRG93
bmxvYWRJRCBkb3dubG9hZElEKQogewotICAgIG1fdGFzay0+c2V0RG93bmxvYWRJRChkb3dubG9h
ZElEKTsKKyAgICBtX3Rhc2stPnNldFBlbmRpbmdEb3dubG9hZElEKGRvd25sb2FkSUQpOwogICAg
IAogICAgIEFTU0VSVChtX3Jlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXIpOwogICAgIG1fcmVzcG9u
c2VDb21wbGV0aW9uSGFuZGxlcihQb2xpY3lEb3dubG9hZCk7CiAgICAgbV9yZXNwb25zZUNvbXBs
ZXRpb25IYW5kbGVyID0gbnVsbHB0cjsKIH0KIAordm9pZCBOZXR3b3JrTG9hZDo6c2V0UGVuZGlu
Z0Rvd25sb2FkSUQoRG93bmxvYWRJRCBkb3dubG9hZElEKQoreworICAgIG1fdGFzay0+c2V0UGVu
ZGluZ0Rvd25sb2FkSUQoZG93bmxvYWRJRCk7Cit9CisKIHZvaWQgTmV0d29ya0xvYWQ6OndpbGxQ
ZXJmb3JtSFRUUFJlZGlyZWN0aW9uKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlZGlyZWN0Q29tcGxldGlvbkhhbmRsZXIg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFtX3JlZGlyZWN0Q29tcGxldGlvbkhh
bmRsZXIpOwpAQCAtMjAyLDcgKzIxMCw5IEBAIHZvaWQgTmV0d29ya0xvYWQ6OmRpZFJlY2VpdmVD
aGFsbGVuZ2UoY28KIHZvaWQgTmV0d29ya0xvYWQ6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIGlmIChz
aGFyZWREaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpID09IE5ldHdvcmtMb2FkQ2xpZW50OjpT
aG91bGRDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZTo6WWVzKQorICAgIGlmIChtX3Rhc2sgJiYg
bV90YXNrLT5wZW5kaW5nRG93bmxvYWRJRCgpLmRvd25sb2FkSUQoKSkKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoUG9saWN5RG93bmxvYWQpOworICAgIGVsc2UgaWYgKHNoYXJlZERpZFJlY2Vp
dmVSZXNwb25zZShyZXNwb25zZSkgPT0gTmV0d29ya0xvYWRDbGllbnQ6OlNob3VsZENvbnRpbnVl
RGlkUmVjZWl2ZVJlc3BvbnNlOjpZZXMpCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGlj
eVVzZSk7CiAgICAgZWxzZQogICAgICAgICBtX3Jlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXIgPSBj
b21wbGV0aW9uSGFuZGxlcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWQuaAkocmV2aXNpb24gMTk0NTcwKQorKysgU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWQuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsNyBAQCBw
dWJsaWM6CiAKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQogICAgIHZvaWQgY29udmVydFRhc2tU
b0Rvd25sb2FkKERvd25sb2FkSUQpOworICAgIHZvaWQgc2V0UGVuZGluZ0Rvd25sb2FkSUQoRG93
bmxvYWRJRCk7CiAgICAgCiAgICAgLy8gTmV0d29ya1Nlc3Npb25UYXNrQ2xpZW50LgogICAgIHZp
cnR1YWwgdm9pZCB3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwgc3RkOjpmdW5j
dGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpPikgZmluYWwgb3ZlcnJp
ZGU7CkBAIC0xMjUsNyArMTI2LDYgQEAgcHJpdmF0ZToKICAgICBDaGFsbGVuZ2VDb21wbGV0aW9u
SGFuZGxlciBtX2NoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyOwogICAgIFJlc3BvbnNlQ29tcGxl
dGlvbkhhbmRsZXIgbV9yZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyOwogICAgIFJlZGlyZWN0Q29t
cGxldGlvbkhhbmRsZXIgbV9yZWRpcmVjdENvbXBsZXRpb25IYW5kbGVyOwotICAgIERvd25sb2Fk
SUQgbV9kb3dubG9hZElEOwogI2Vsc2UKICAgICBSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU+IG1faGFuZGxlOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmgJKHJldmlzaW9uIDE5NDYyNikKKysrIFNvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTk3
LDE4ICs5NywxOCBAQCBwdWJsaWM6CiAKICAgICBOZXR3b3JrU2Vzc2lvblRhc2tDbGllbnQmIGNs
aWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKLSAgICBEb3dubG9hZElEIGRvd25sb2FkSUQo
KSB7IHJldHVybiBtX2Rvd25sb2FkSUQ7IH0KLSAgICB2b2lkIHNldERvd25sb2FkSUQoRG93bmxv
YWRJRCBkb3dubG9hZElEKQorICAgIERvd25sb2FkSUQgcGVuZGluZ0Rvd25sb2FkSUQoKSB7IHJl
dHVybiBtX3BlbmRpbmdEb3dubG9hZElEOyB9CisgICAgdm9pZCBzZXRQZW5kaW5nRG93bmxvYWRJ
RChEb3dubG9hZElEIGRvd25sb2FkSUQpCiAgICAgewotICAgICAgICBBU1NFUlQoIW1fZG93bmxv
YWRJRC5kb3dubG9hZElEKCkpOworICAgICAgICBBU1NFUlQoIW1fcGVuZGluZ0Rvd25sb2FkSUQu
ZG93bmxvYWRJRCgpKTsKICAgICAgICAgQVNTRVJUKGRvd25sb2FkSUQuZG93bmxvYWRJRCgpKTsK
LSAgICAgICAgbV9kb3dubG9hZElEID0gZG93bmxvYWRJRDsKKyAgICAgICAgbV9wZW5kaW5nRG93
bmxvYWRJRCA9IGRvd25sb2FkSUQ7CiAgICAgfQogICAgIAogcHJpdmF0ZToKICAgICBOZXR3b3Jr
U2Vzc2lvbiYgbV9zZXNzaW9uOwogICAgIE5ldHdvcmtTZXNzaW9uVGFza0NsaWVudCYgbV9jbGll
bnQ7Ci0gICAgRG93bmxvYWRJRCBtX2Rvd25sb2FkSUQ7CisgICAgRG93bmxvYWRJRCBtX3BlbmRp
bmdEb3dubG9hZElEOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxOU1VSTFNl
c3Npb25EYXRhVGFzaz4gbV90YXNrOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAJKHJldmlzaW9uIDE5
NDUzNikKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDE1ICs0NCwxMyBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikK
LURvd25sb2FkOjpEb3dubG9hZChEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlciwgY29u
c3QgTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIERvd25sb2FkSUQgZG93bmxvYWRJRCkKK0Rvd25s
b2FkOjpEb3dubG9hZChEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlciwgRG93bmxvYWRJ
RCBkb3dubG9hZElEKQogI2Vsc2UKIERvd25sb2FkOjpEb3dubG9hZChEb3dubG9hZE1hbmFnZXIm
IGRvd25sb2FkTWFuYWdlciwgRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCiAjZW5kaWYKICAgICA6IG1fZG93bmxvYWRNYW5hZ2VyKGRvd25sb2Fk
TWFuYWdlcikKICAgICAsIG1fZG93bmxvYWRJRChkb3dubG9hZElEKQotI2lmIFVTRShORVRXT1JL
X1NFU1NJT04pCi0gICAgLCBtX3Nlc3Npb24oc2Vzc2lvbikKLSNlbHNlCisjaWYgIVVTRShORVRX
T1JLX1NFU1NJT04pCiAgICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKICNlbmRpZgogewpAQCAtODAs
MTQgKzc4LDEyIEBAIHZvaWQgRG93bmxvYWQ6OmRpZFN0YXJ0KCkKIH0KICNlbmRpZgogCisjaWYg
IVVTRShORVRXT1JLX1NFU1NJT04pCiB2b2lkIERvd25sb2FkOjpkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKQogewotI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCi0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSNlbHNlCiAgICAgbV9kb3dubG9hZE1hbmFnZXIuZG93bmxvYWRzQXV0aGVudGlj
YXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCp0aGlzLCBh
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSk7Ci0jZW5kaWYKIH0KKyNlbmRpZgogCiB2b2lkIERvd25s
b2FkOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
CiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxv
YWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWQuaAkocmV2aXNpb24gMTk0NTcwKQorKysgU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgJKHdvcmtpbmcgY29weSkKQEAgLTc2LDcgKzc2
LDcgQEAgY2xhc3MgRG93bmxvYWQgOiBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZAogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKERvd25sb2FkKTsKIHB1YmxpYzoKICNpZiBVU0UoTkVUV09SS19TRVNT
SU9OKQotICAgIERvd25sb2FkKERvd25sb2FkTWFuYWdlciYsIGNvbnN0IE5ldHdvcmtTZXNzaW9u
JiwgRG93bmxvYWRJRCk7CisgICAgRG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiwgRG93bmxvYWRJ
RCk7CiAjZWxzZQogICAgIERvd25sb2FkKERvd25sb2FkTWFuYWdlciYsIERvd25sb2FkSUQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogI2VuZGlmCkBAIC05Nyw4ICs5Nyw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpZFN0YXJ0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYpOwogI2Vsc2UKICAgICB2b2lkIGRpZFN0YXJ0KCk7Ci0jZW5kaWYKICAgICB2b2lkIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYpOworI2VuZGlmCiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEodWlu
dDY0X3QgbGVuZ3RoKTsKICAgICBib29sIHNob3VsZERlY29kZVNvdXJjZURhdGFPZk1JTUVUeXBl
KGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwpAQCAtMTQxLDcgKzE0MSw2IEBAIHByaXZhdGU6CiAK
ICNpZiBQTEFURk9STShDT0NPQSkKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQotICAgIGNvbnN0
IE5ldHdvcmtTZXNzaW9uJiBtX3Nlc3Npb247CiAgICAgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbkRv
d25sb2FkVGFzaz4gbV9kb3dubG9hZDsKICNlbHNlCiAgICAgUmV0YWluUHRyPE5TVVJMRG93bmxv
YWQ+IG1fbnNVUkxEb3dubG9hZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCShyZXZpc2lv
biAxOTQ1OTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBAQAogI2luY2x1
ZGUgIkRvd25sb2FkTWFuYWdlci5oIgogCiAjaW5jbHVkZSAiRG93bmxvYWQuaCIKKyNpbmNsdWRl
ICJOZXR3b3JrU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlBlbmRpbmdEb3dubG9hZC5oIgogI2luY2x1
ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CkBAIC00NywyMSArNDksMjcgQEAgdm9p
ZCBEb3dubG9hZE1hbmFnZXI6OnN0YXJ0RG93bmxvYWQoU2VzcwogICAgIGF1dG8qIG5ldHdvcmtT
ZXNzaW9uID0gU2Vzc2lvblRyYWNrZXI6Om5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCk7CiAgICAg
aWYgKCFuZXR3b3JrU2Vzc2lvbikKICAgICAgICAgcmV0dXJuOwotICAgIGF1dG8gZG93bmxvYWQg
PSBzdGQ6Om1ha2VfdW5pcXVlPERvd25sb2FkPigqdGhpcywgKm5ldHdvcmtTZXNzaW9uLCBkb3du
bG9hZElEKTsKLSAgICBkb3dubG9hZC0+ZGlkU3RhcnQocmVxdWVzdCk7CisgICAgTmV0d29ya0xv
YWRQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisgICAgcGFyYW1ldGVycy5zZXNzaW9uSUQgPSBzZXNz
aW9uSUQ7CisgICAgcGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICBtX3BlbmRpbmdE
b3dubG9hZHMuYWRkKGRvd25sb2FkSUQsIHN0ZDo6bWFrZV91bmlxdWU8UGVuZGluZ0Rvd25sb2Fk
PihwYXJhbWV0ZXJzLCBkb3dubG9hZElEKSk7CiAjZWxzZQogICAgIGF1dG8gZG93bmxvYWQgPSBz
dGQ6Om1ha2VfdW5pcXVlPERvd25sb2FkPigqdGhpcywgZG93bmxvYWRJRCwgcmVxdWVzdCk7CiAg
ICAgZG93bmxvYWQtPnN0YXJ0KCk7Ci0jZW5kaWYKIAogICAgIEFTU0VSVCghbV9kb3dubG9hZHMu
Y29udGFpbnMoZG93bmxvYWRJRCkpOwogICAgIG1fZG93bmxvYWRzLmFkZChkb3dubG9hZElELCBX
VEZNb3ZlKGRvd25sb2FkKSk7CisjZW5kaWYKIH0KIAogI2lmIFVTRShORVRXT1JLX1NFU1NJT04p
Ci12b2lkIERvd25sb2FkTWFuYWdlcjo6ZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2soRG93bmxv
YWRJRCBkb3dubG9hZElELCBzdGQ6OnVuaXF1ZV9wdHI8RG93bmxvYWQ+JiYgZG93bmxvYWQpCitz
dGQ6OnVuaXF1ZV9wdHI8UGVuZGluZ0Rvd25sb2FkPiBEb3dubG9hZE1hbmFnZXI6OmRhdGFUYXNr
QmVjYW1lRG93bmxvYWRUYXNrKERvd25sb2FkSUQgZG93bmxvYWRJRCwgc3RkOjp1bmlxdWVfcHRy
PERvd25sb2FkPiYmIGRvd25sb2FkKQogeworICAgIC8vIFRoaXMgaXMgbmVlZGVkIGZvciBkb3du
bG9hZHMgc3RhcnRlZCB3aXRoIHN0YXJ0RG93bmxvYWQsIG90aGVyd2lzZSBpdCB3aWxsIHJldHVy
biBudWxscHRyLgorICAgIGF1dG8gcGVuZGluZ0Rvd25sb2FkID0gbV9wZW5kaW5nRG93bmxvYWRz
LnRha2UoZG93bmxvYWRJRCk7CisKICAgICBtX2Rvd25sb2Fkcy5hZGQoZG93bmxvYWRJRCwgV1RG
TW92ZShkb3dubG9hZCkpOworICAgIHJldHVybiBwZW5kaW5nRG93bmxvYWQ7CiB9CiAjZWxzZQog
dm9pZCBEb3dubG9hZE1hbmFnZXI6OmNvbnZlcnRIYW5kbGVUb0Rvd25sb2FkKERvd25sb2FkSUQg
ZG93bmxvYWRJRCwgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxv
YWRNYW5hZ2VyLmgJKHJldmlzaW9uIDE5NDU5MikKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjcs
NiArMjcsNyBAQAogI2RlZmluZSBEb3dubG9hZE1hbmFnZXJfaAogCiAjaW5jbHVkZSAiRG93bmxv
YWRJRC5oIgorI2luY2x1ZGUgIlBlbmRpbmdEb3dubG9hZC5oIgogI2luY2x1ZGUgIlNhbmRib3hF
eHRlbnNpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTUxLDYgKzUyLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAK
IGNsYXNzIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjsKIGNsYXNzIERvd25sb2FkOworY2xhc3MgUGVu
ZGluZ0Rvd25sb2FkOwogCiBjbGFzcyBEb3dubG9hZE1hbmFnZXIgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKERvd25sb2FkTWFuYWdlcik7CkBAIC03MCw3ICs3Miw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgc3RhcnREb3dubG9hZChXZWJDb3JlOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogI2lmIFVTRShORVRXT1JLX1NFU1NJT04p
Ci0gICAgdm9pZCBkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayhEb3dubG9hZElELCBzdGQ6OnVu
aXF1ZV9wdHI8RG93bmxvYWQ+JiYpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxQZW5kaW5nRG93bmxv
YWQ+IGRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKERvd25sb2FkSUQsIHN0ZDo6dW5pcXVlX3B0
cjxEb3dubG9hZD4mJik7CiAjZWxzZQogICAgIHZvaWQgY29udmVydEhhbmRsZVRvRG93bmxvYWQo
RG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAjZW5kaWYK
QEAgLTkzLDYgKzk1LDkgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIENsaWVudCYgbV9jbGll
bnQ7CisjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKKyAgICBIYXNoTWFwPERvd25sb2FkSUQsIHN0
ZDo6dW5pcXVlX3B0cjxQZW5kaW5nRG93bmxvYWQ+PiBtX3BlbmRpbmdEb3dubG9hZHM7CisjZW5k
aWYKICAgICBIYXNoTWFwPERvd25sb2FkSUQsIHN0ZDo6dW5pcXVlX3B0cjxEb3dubG9hZD4+IG1f
ZG93bmxvYWRzOwogfTsKIApJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCShyZXZpc2lvbiAxOTQ2
MjYpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lv
bkNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNjYsMTIgKzE2NiwxMiBAQCAtICh2b2lkKVVS
TFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3NpCiAtICh2b2lkKVVSTFNlc3Npb246KE5TVVJM
U2Vzc2lvbiAqKXNlc3Npb24gZGF0YVRhc2s6KE5TVVJMU2Vzc2lvbkRhdGFUYXNrICopZGF0YVRh
c2sgZGlkQmVjb21lRG93bmxvYWRUYXNrOihOU1VSTFNlc3Npb25Eb3dubG9hZFRhc2sgKilkb3du
bG9hZFRhc2sKIHsKICAgICBpZiAoYXV0byogbmV0d29ya0RhdGFUYXNrID0gX3Nlc3Npb24tPmRh
dGFUYXNrRm9ySWRlbnRpZmllcihbZGF0YVRhc2sgdGFza0lkZW50aWZpZXJdKSkgewotICAgICAg
ICBhdXRvIGRvd25sb2FkSUQgPSBuZXR3b3JrRGF0YVRhc2stPmRvd25sb2FkSUQoKTsKKyAgICAg
ICAgYXV0byBkb3dubG9hZElEID0gbmV0d29ya0RhdGFUYXNrLT5wZW5kaW5nRG93bmxvYWRJRCgp
OwogICAgICAgICBhdXRvJiBkb3dubG9hZE1hbmFnZXIgPSBXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpzaW5nbGV0b24oKS5kb3dubG9hZE1hbmFnZXIoKTsKLSAgICAgICAgYXV0byBkb3dubG9hZCA9
IHN0ZDo6bWFrZV91bmlxdWU8V2ViS2l0OjpEb3dubG9hZD4oZG93bmxvYWRNYW5hZ2VyLCAqX3Nl
c3Npb24sIGRvd25sb2FkSUQpOworICAgICAgICBhdXRvIGRvd25sb2FkID0gc3RkOjptYWtlX3Vu
aXF1ZTxXZWJLaXQ6OkRvd25sb2FkPihkb3dubG9hZE1hbmFnZXIsIGRvd25sb2FkSUQpOwogICAg
ICAgICBkb3dubG9hZC0+ZGlkU3RhcnQoW2Rvd25sb2FkVGFzayBjdXJyZW50UmVxdWVzdF0pOwog
ICAgICAgICBkb3dubG9hZC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKFtkb3dubG9hZFRhc2sgcmVzcG9u
c2VdKTsKLSAgICAgICAgZG93bmxvYWRNYW5hZ2VyLmRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNr
KGRvd25sb2FkSUQsIFdURk1vdmUoZG93bmxvYWQpKTsKKyAgICAgICAgYXV0byBwZW5kaW5nRG93
bmxvYWQgPSBkb3dubG9hZE1hbmFnZXIuZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2soZG93bmxv
YWRJRCwgV1RGTW92ZShkb3dubG9hZCkpOwogCiAgICAgICAgIG5ldHdvcmtEYXRhVGFzay0+Y2xp
ZW50KCkuZGlkQmVjb21lRG93bmxvYWQoKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTk0NTM1KQorKysg
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDY4LDYgKzEwNjgsNyBAQAogCQk1QzE0MjcxRDFDMjNGOENGMDBENDExODMg
LyogQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzE0MjcxQjFDMjNGOENDMDBENDExODMgLyogQ3VzdG9t
UHJvdG9jb2xNYW5hZ2VyQ29jb2EubW0gKi87IH07CiAJCTVDMjBDQjlEMUJCMERDRkEwMDg5NUJC
MSAvKiBOZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNUMyMENCOUIxQkIwRENEMjAwODk1QkIxIC8qIE5ldHdvcmtTZXNz
aW9uQ29jb2EubW0gKi87IH07CiAJCTVDMjBDQkEwMUJCMUVDRDgwMDg5NUJCMSAvKiBOZXR3b3Jr
U2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUMyMENCOUUxQkIwREQxODAwODk1QkIxIC8qIE5ldHdvcmtTZXNzaW9uLmggKi87IH07CisJCTVD
Mjk4RDlDMUMzQzcyNzYwMDQ3MEFGRSAvKiBQZW5kaW5nRG93bmxvYWQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMjk4RDlCMUMzQzcyNkYwMDQ3MEFG
RSAvKiBQZW5kaW5nRG93bmxvYWQuaCAqLzsgfTsKIAkJNURBNkVEMEExNDkwNjA2OTAwQjQxRDEy
IC8qIER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNURBNkVEMDgxNDkwNjA2OTAwQjQxRDEyIC8q
IER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oICovOyB9OwogCQk1REE2RUQwQjE0
OTA2MDY5MDBCNDFEMTIgLyogRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNURBNkVEMDkxNDkw
NjA2OTAwQjQxRDEyIC8qIER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5tbSAqLzsg
fTsKIAkJNjUwMUJEMUExMkYxMjQzNDAwRTlGMjQ4IC8qIFdLQnVuZGxlSW5zcGVjdG9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1Qjg2RjE3MTJG
MTFEN0IwMEI3REQ4QSAvKiBXS0J1bmRsZUluc3BlY3Rvci5jcHAgKi87IH07CkBAIC0zMjQ4LDYg
KzMyNDksNyBAQAogCQk1QzE0MjcxQjFDMjNGOENDMDBENDExODMgLyogQ3VzdG9tUHJvdG9jb2xN
YW5hZ2VyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBD
dXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbTsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL0N1c3Rv
bVByb3RvY29scy9Db2NvYS9DdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMyMENCOUIxQkIwRENEMjAwODk1QkIxIC8qIE5ldHdvcmtT
ZXNzaW9uQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBO
ZXR3b3JrU2Vzc2lvbkNvY29hLm1tOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a1Nlc3Npb25Db2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMyMENCOUUx
QkIwREQxODAwODk1QkIxIC8qIE5ldHdvcmtTZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IE5ldHdvcmtTZXNzaW9uLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzI5OEQ5QjFDM0M3
MjZGMDA0NzBBRkUgLyogUGVuZGluZ0Rvd25sb2FkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlbmRpbmdE
b3dubG9hZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDQ0MkE1NTE2RDU4NTY3
MDBBQzMzMzEgLyogUGx1Z2luU2VydmljZS5lbnRpdGxlbWVudHMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhtbDsgcGF0aCA9IFBsdWdpblNl
cnZpY2UuZW50aXRsZW1lbnRzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1REE2RUQw
ODE0OTA2MDY5MDBCNDFEMTIgLyogRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IER5bmFtaWNMaW5rZXJFbnZpcm9ubWVu
dEV4dHJhY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1REE2RUQwOTE0OTA2
MDY5MDBCNDFEMTIgLyogRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHluYW1pY0xpbmtlckVudmlyb25t
ZW50RXh0cmFjdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTgyNSw2ICs1
ODI3LDcgQEAKIAkJCQk1QzE0MjZGNzFDMjNGODQzMDBENDExODMgLyogRG93bmxvYWRJRC5oICov
LAogCQkJCTVDMTQyNkY4MUMyM0Y4NDMwMEQ0MTE4MyAvKiBEb3dubG9hZE1hbmFnZXIuY3BwICov
LAogCQkJCTVDMTQyNkY5MUMyM0Y4NDMwMEQ0MTE4MyAvKiBEb3dubG9hZE1hbmFnZXIuaCAqLywK
KwkJCQk1QzI5OEQ5QjFDM0M3MjZGMDA0NzBBRkUgLyogUGVuZGluZ0Rvd25sb2FkLmggKi8sCiAJ
CQkpOwogCQkJbmFtZSA9IERvd25sb2FkczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC03OTU1LDYgKzc5NTgsNyBAQAogCQkJCTJENkNEMTE5MTg5MDU4QTUwMEU1QTRBMCAvKiBWaWV3
U25hcHNob3RTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjY4NDA1NTMxOEI4NkVENjAwMjJD
MzhCIC8qIFZpZXdVcGRhdGVEaXNwYXRjaGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTI2ODQwNTQ0MThCODVBNjMwMDIyQzM4QiAvKiBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZv
LmggaW4gSGVhZGVycyAqLywKKwkJCQk1QzI5OEQ5QzFDM0M3Mjc2MDA0NzBBRkUgLyogUGVuZGlu
Z0Rvd25sb2FkLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTBGMjlFNDEyMEI0NDQyMDA1M0QxQjkg
LyogVmlzaXRlZExpbmtTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2MDIyNEQxOEMxNkI5
RjAwQzNFOEM5IC8qIFZpc2l0ZWRMaW5rU3RvcmVNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUEwRjI5Q0MxMjBCMzcxNjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rVGFibGUuaCBpbiBIZWFk
ZXJzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268423</attachid>
            <date>2016-01-06 17:02:37 -0800</date>
            <delta_ts>2016-01-07 13:24:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152760-20160106170204.patch</filename>
            <type>text/plain</type>
            <size>23416</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NDY2MikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBACisyMDE2LTAxLTA2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mg
dG93YXJkcyBpbXBsZW1lbnRpbmcgZG93bmxvYWRzIHdpdGggTmV0d29ya1Nlc3Npb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjc2MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OkRv
d25sb2FkKToKKyAgICAgICAgVGhlcmUncyBubyBuZWVkIHRvIHN0b3JlIHRoZSB1bnVzZWQgTmV0
d29ya1Nlc3Npb24mLgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkU3RhcnQpOgorICAg
ICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KToKKyAgICAgICAgRG93bmxvYWRzIHdpdGggTmV0d29ya1Nlc3Npb24gYXJlIE5ldHdvcmtMb2Fk
cyB1bnRpbCB0aGUgcmVzcG9uc2UgaXMgcmVjZWl2ZWQsIHdoaWNoIGlzIGFmdGVyIGF1dGhlbnRp
Y2F0aW9uCisgICAgICAgIGNoYWxsZW5nZXMgYXJlIGhhbmRsZWQgYnkgTmV0d29ya0xvYWQncyBj
b2RlLgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6RG93bmxvYWRNYW5hZ2VyOjpzdGFydERvd25sb2FkKToKKyAgICAgICAgQ3JlYXRlIGEg
UGVuZGluZ0Rvd25sb2FkLCB3aGljaCBpcyBiYXNpY2FsbHkgYSBOZXR3b3JrTG9hZCB0aGF0IGtu
b3dzIHRoYXQgaXQgd2lsbCBiZWNvbWUgYSBEb3dubG9hZCAKKyAgICAgICAgd2hlbiB0aGUgcmVz
cG9uc2UgaXMgcmVjZWl2ZWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvciBub3QgdGhlcmUgaXMg
YSBDb250ZW50LURpc3Bvc2l0aW9uIGhlYWRlci4KKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRN
YW5hZ2VyOjpkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxvYWQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlBlbmRpbmdEb3dubG9hZDo6UGVuZGluZ0Rvd25sb2FkKToKKyAgICAgICAgQWRkZWQgYSBuZXcg
TmV0d29ya0xvYWRDbGllbnQgZm9yIHJlcXVlc3RzIHRoYXQgd2lsbCBiZWNvbWUgZG93bmxvYWRz
LgorICAgICAgICBBIFBlbmRpbmdEb3dubG9hZCBjb250YWlucyBhIE5ldHdvcmtMb2FkIHNvIHdl
IGNhbiBhbHdheXMga2VlcCB0aGVtIHRvZ2V0aGVyCisgICAgICAgIGFuZCBzbyBpdCBjYW4gaGFu
ZGxlIHNldHRpbmcgaXRzIHBlbmRpbmcgZG93bmxvYWQgaWQuCisgICAgICAgICogV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6Ok5ldHdvcmtMb2FkKToK
KyAgICAgICAgQXZvaWQgZGVyZWZlcmVuY2luZyBhIHBvaW50ZXIgaWYgdGhlIE5ldHdvcmtTZXNz
aW9uIGhhZG4ndCBiZWVuIGNyZWF0ZWQgd2hlbiBhIE5ldHdvcmtMb2FkIHN0YXJ0cy4KKyAgICAg
ICAgVGhpcyBzaG91bGRuJ3QgYmUgcG9zc2libGUsIGJ1dCBpdCdzIGdvb2QgdG8gbm90IGFzc3Vt
ZSB0aGF0IGFsbCBwb2ludGVycyBhcmUgbm9uLW51bGwuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtMb2FkOjpjYW5jZWwpOgorICAgICAgICBBZGQgYSBudWxsIGNoZWNrIGluIGNhc2UgdGhlIGNv
bnN0cnVjdG9yIGRvZXNuJ3QgbWFrZSBtX3Rhc2suCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtM
b2FkOjpjb252ZXJ0VGFza1RvRG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9h
ZDo6c2V0UGVuZGluZ0Rvd25sb2FkSUQpOgorICAgICAgICBBZGRlZCBmb3IgZG93bmxvYWRzIHRo
YXQgc3RhcnQgd2l0aCBzdGFydERvd25sb2FkLiAgVGhlIHBlbmRpbmcgRG93bmxvYWRJRCBpcyB1
c2VkIHRvIGluZGljYXRlIHRoYXQKKyAgICAgICAgdGhpcyByZXF1ZXN0IHNob3VsZCBhbHdheXMg
YmVjb21lIGEgZG93bmxvYWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvciBub3QgdGhlIHJlc3Bv
bnNlIGhhcyBhIAorICAgICAgICBDb250ZW50LURpc3Bvc2l0aW9uIGhlYWRlci4KKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0xvYWQ6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaDoKKyAgICAgICAgVGhlcmUncyBubyBuZWVkIHRv
IHN0b3JlIGEgRG93bmxvYWRJRCBoZXJlLiAgSXQncyBzdG9yZWQgaW4gdGhlIE5ldHdvcmtEYXRh
VGFzayAobV90YXNrKS4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5o
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OmNsaWVudCk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtEYXRhVGFzazo6cGVuZGluZ0Rvd25sb2FkSUQpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrRGF0YVRhc2s6OnNldFBlbmRpbmdEb3dubG9hZElEKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0RhdGFUYXNrOjpkb3dubG9hZElEKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0RhdGFUYXNrOjpzZXREb3dubG9hZElEKTogRGVsZXRlZC4KKyAgICAgICAg
UmVuYW1lZCBkb3dubG9hZElEIGFuZCBzZXREb3dubG9hZElEIHRvIHBlbmRpbmdEb3dubG9hZElE
IGFuZCBzZXRQZW5kaW5nRG93bmxvYWRJRCwgcmVzcGVjdGl2ZWx5LAorICAgICAgICB0byBpbmRp
Y2F0ZSB0aGVpciB1c2UuICBUaGV5IGFyZSBub3QgdGhlIGN1cnJlbnQgZG93bmxvYWRJRCwgYnV0
IHRoZXkgYXJlIHRoZSBkb3dubG9hZElEIG9mIHRoZSBkb3dubG9hZAorICAgICAgICB0aGF0IHdp
bGwgaGFwcGVuIG9uY2UgdGhlIHJlc3BvbnNlIGlzIHJlY2VpdmVkIGFuZCBQb2xpY3lEb3dubG9h
ZCB3aWxsIGJlIHJldHVybmVkIGluIHRoZSBjb21wbGV0aW9uIGhhbmRsZXIuCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKC1b
V0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIFVSTFNlc3Npb246ZGF0YVRhc2s6ZGlkQmVjb21lRG93
bmxvYWRUYXNrOl0pOgorICAgICAgICBDYWxsIGRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrIGFm
dGVyIGRpZEJlY29tZURvd25sb2FkIGJlY2F1c2UgdGhlIG5ldHdvcmtEYXRhVGFzayBpcyBkZWxl
dGVkIGJ5IHJlbW92aW5nIGl0IAorICAgICAgICBmcm9tIG1fcGVuZGluZ0Rvd25sb2FkcyBpbiBk
YXRhVGFza0JlY2FtZURvd25sb2FkVGFzay4KKwogMjAxNi0wMS0wNiAgRGFuaWVsIEJhdGVzICA8
ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIGNvZGUgc2lnbmVkIGlkZW50aWZpZXIg
YXMgcGFydCBvZiB1c2VyIGRpcmVjdG9yeSBzdWZmaXgKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAJKHJldmlzaW9uIDE5NDYyNikKKysrIFNv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDcsMTQgKzQ3LDE2IEBAIE5ldHdvcmtMb2FkOjpOZXR3b3JrTG9hZChOZXR3b3JrTG9h
ZENsaWUKICAgICA6IG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fcGFyYW1ldGVycyhwYXJhbWV0
ZXJzKQogICAgICwgbV9uZXR3b3JraW5nQ29udGV4dChSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6
Y3JlYXRlKHBhcmFtZXRlcnMuc2Vzc2lvbklELCBwYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpKQotI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCi0gICAg
LCBtX3Rhc2soU2Vzc2lvblRyYWNrZXI6Om5ldHdvcmtTZXNzaW9uKHBhcmFtZXRlcnMuc2Vzc2lv
bklEKS0+Y3JlYXRlRGF0YVRhc2tXaXRoUmVxdWVzdChwYXJhbWV0ZXJzLnJlcXVlc3QsICp0aGlz
KSkKLSNlbmRpZgogICAgICwgbV9jdXJyZW50UmVxdWVzdChwYXJhbWV0ZXJzLnJlcXVlc3QpCiB7
CiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKLSAgICBpZiAoIXBhcmFtZXRlcnMuZGVmZXJzTG9h
ZGluZykKLSAgICAgICAgbV90YXNrLT5yZXN1bWUoKTsKKyAgICBpZiAoIXBhcmFtZXRlcnMuZGVm
ZXJzTG9hZGluZykgeworICAgICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBTZXNzaW9u
VHJhY2tlcjo6bmV0d29ya1Nlc3Npb24ocGFyYW1ldGVycy5zZXNzaW9uSUQpKSB7CisgICAgICAg
ICAgICBtX3Rhc2sgPSBuZXR3b3JrU2Vzc2lvbi0+Y3JlYXRlRGF0YVRhc2tXaXRoUmVxdWVzdChw
YXJhbWV0ZXJzLnJlcXVlc3QsICp0aGlzKTsKKyAgICAgICAgICAgIG1fdGFzay0+cmVzdW1lKCk7
CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
fQogI2Vsc2UKICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9uZXR3b3Jr
aW5nQ29udGV4dC5nZXQoKSwgcGFyYW1ldGVycy5yZXF1ZXN0LCB0aGlzLCBwYXJhbWV0ZXJzLmRl
ZmVyc0xvYWRpbmcsIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5ID09IFNuaWZmQ29u
dGVudCk7CiAjZW5kaWYKQEAgLTg4LDcgKzkwLDggQEAgdm9pZCBOZXR3b3JrTG9hZDo6c2V0RGVm
ZXJzTG9hZGluZyhib29sIAogdm9pZCBOZXR3b3JrTG9hZDo6Y2FuY2VsKCkKIHsKICNpZiBVU0Uo
TkVUV09SS19TRVNTSU9OKQotICAgIG1fdGFzay0+Y2FuY2VsKCk7CisgICAgaWYgKG1fdGFzaykK
KyAgICAgICAgbV90YXNrLT5jYW5jZWwoKTsKICNlbHNlCiAgICAgaWYgKG1faGFuZGxlKQogICAg
ICAgICBtX2hhbmRsZS0+Y2FuY2VsKCk7CkBAIC0xNjAsMTMgKzE2MywxOCBAQCB2b2lkIE5ldHdv
cmtMb2FkOjpzaGFyZWRXaWxsU2VuZFJlZGlyZWN0CiAKIHZvaWQgTmV0d29ya0xvYWQ6OmNvbnZl
cnRUYXNrVG9Eb3dubG9hZChEb3dubG9hZElEIGRvd25sb2FkSUQpCiB7Ci0gICAgbV90YXNrLT5z
ZXREb3dubG9hZElEKGRvd25sb2FkSUQpOworICAgIG1fdGFzay0+c2V0UGVuZGluZ0Rvd25sb2Fk
SUQoZG93bmxvYWRJRCk7CiAgICAgCiAgICAgQVNTRVJUKG1fcmVzcG9uc2VDb21wbGV0aW9uSGFu
ZGxlcik7CiAgICAgbV9yZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyKFBvbGljeURvd25sb2FkKTsK
ICAgICBtX3Jlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXIgPSBudWxscHRyOwogfQogCit2b2lkIE5l
dHdvcmtMb2FkOjpzZXRQZW5kaW5nRG93bmxvYWRJRChEb3dubG9hZElEIGRvd25sb2FkSUQpCit7
CisgICAgbV90YXNrLT5zZXRQZW5kaW5nRG93bmxvYWRJRChkb3dubG9hZElEKTsKK30KKwogdm9p
ZCBOZXR3b3JrTG9hZDo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVkaXJl
Y3RDb21wbGV0aW9uSGFuZGxlciBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIW1f
cmVkaXJlY3RDb21wbGV0aW9uSGFuZGxlcik7CkBAIC0yMDIsNyArMjEwLDkgQEAgdm9pZCBOZXR3
b3JrTG9hZDo6ZGlkUmVjZWl2ZUNoYWxsZW5nZShjbwogdm9pZCBOZXR3b3JrTG9hZDo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBSZXNwb25zZUNv
bXBsZXRpb25IYW5kbGVyIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7Ci0gICAgaWYgKHNoYXJlZERpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSkgPT0g
TmV0d29ya0xvYWRDbGllbnQ6OlNob3VsZENvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlOjpZZXMp
CisgICAgaWYgKG1fdGFzayAmJiBtX3Rhc2stPnBlbmRpbmdEb3dubG9hZElEKCkuZG93bmxvYWRJ
RCgpKQorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lEb3dubG9hZCk7CisgICAgZWxz
ZSBpZiAoc2hhcmVkRGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKSA9PSBOZXR3b3JrTG9hZENs
aWVudDo6U2hvdWxkQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2U6OlllcykKICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoUG9saWN5VXNlKTsKICAgICBlbHNlCiAgICAgICAgIG1fcmVzcG9uc2VD
b21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5kbGVyOwpJbmRleDogU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCShyZXZpc2lvbiAxOTQ1NzApCisrKyBT
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oCSh3b3JraW5nIGNvcHkp
CkBAIC02Miw2ICs2Miw3IEBAIHB1YmxpYzoKIAogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAg
ICAgdm9pZCBjb252ZXJ0VGFza1RvRG93bmxvYWQoRG93bmxvYWRJRCk7CisgICAgdm9pZCBzZXRQ
ZW5kaW5nRG93bmxvYWRJRChEb3dubG9hZElEKTsKICAgICAKICAgICAvLyBOZXR3b3JrU2Vzc2lv
blRhc2tDbGllbnQuCiAgICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9u
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0Jik+KSBmaW5hbCBvdmVycmlkZTsKQEAgLTEyNSw3ICsxMjYsNiBAQCBwcml2YXRlOgogICAg
IENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyIG1fY2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXI7
CiAgICAgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciBtX3Jlc3BvbnNlQ29tcGxldGlvbkhhbmRs
ZXI7CiAgICAgUmVkaXJlY3RDb21wbGV0aW9uSGFuZGxlciBtX3JlZGlyZWN0Q29tcGxldGlvbkhh
bmRsZXI7Ci0gICAgRG93bmxvYWRJRCBtX2Rvd25sb2FkSUQ7CiAjZWxzZQogICAgIFJlZlB0cjxX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZT4gbV9oYW5kbGU7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAkocmV2aXNpb24gMTk0
NjI2KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAko
d29ya2luZyBjb3B5KQpAQCAtOTcsMTggKzk3LDE4IEBAIHB1YmxpYzoKIAogICAgIE5ldHdvcmtT
ZXNzaW9uVGFza0NsaWVudCYgY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAotICAgIERv
d25sb2FkSUQgZG93bmxvYWRJRCgpIHsgcmV0dXJuIG1fZG93bmxvYWRJRDsgfQotICAgIHZvaWQg
c2V0RG93bmxvYWRJRChEb3dubG9hZElEIGRvd25sb2FkSUQpCisgICAgRG93bmxvYWRJRCBwZW5k
aW5nRG93bmxvYWRJRCgpIHsgcmV0dXJuIG1fcGVuZGluZ0Rvd25sb2FkSUQ7IH0KKyAgICB2b2lk
IHNldFBlbmRpbmdEb3dubG9hZElEKERvd25sb2FkSUQgZG93bmxvYWRJRCkKICAgICB7Ci0gICAg
ICAgIEFTU0VSVCghbV9kb3dubG9hZElELmRvd25sb2FkSUQoKSk7CisgICAgICAgIEFTU0VSVCgh
bV9wZW5kaW5nRG93bmxvYWRJRC5kb3dubG9hZElEKCkpOwogICAgICAgICBBU1NFUlQoZG93bmxv
YWRJRC5kb3dubG9hZElEKCkpOwotICAgICAgICBtX2Rvd25sb2FkSUQgPSBkb3dubG9hZElEOwor
ICAgICAgICBtX3BlbmRpbmdEb3dubG9hZElEID0gZG93bmxvYWRJRDsKICAgICB9CiAgICAgCiBw
cml2YXRlOgogICAgIE5ldHdvcmtTZXNzaW9uJiBtX3Nlc3Npb247CiAgICAgTmV0d29ya1Nlc3Np
b25UYXNrQ2xpZW50JiBtX2NsaWVudDsKLSAgICBEb3dubG9hZElEIG1fZG93bmxvYWRJRDsKKyAg
ICBEb3dubG9hZElEIG1fcGVuZGluZ0Rvd25sb2FkSUQ7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbkRhdGFUYXNrPiBtX3Rhc2s7CiAjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkLmNwcAkocmV2aXNpb24gMTk0NTM2KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsMTUgKzQ0LDEz
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKICNpZiBV
U0UoTkVUV09SS19TRVNTSU9OKQotRG93bmxvYWQ6OkRvd25sb2FkKERvd25sb2FkTWFuYWdlciYg
ZG93bmxvYWRNYW5hZ2VyLCBjb25zdCBOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgRG93bmxvYWRJ
RCBkb3dubG9hZElEKQorRG93bmxvYWQ6OkRvd25sb2FkKERvd25sb2FkTWFuYWdlciYgZG93bmxv
YWRNYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2FkSUQpCiAjZWxzZQogRG93bmxvYWQ6OkRvd25s
b2FkKERvd25sb2FkTWFuYWdlciYgZG93bmxvYWRNYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2Fk
SUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICNlbmRpZgogICAgIDogbV9kb3du
bG9hZE1hbmFnZXIoZG93bmxvYWRNYW5hZ2VyKQogICAgICwgbV9kb3dubG9hZElEKGRvd25sb2Fk
SUQpCi0jaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKLSAgICAsIG1fc2Vzc2lvbihzZXNzaW9uKQot
I2Vsc2UKKyNpZiAhVVNFKE5FVFdPUktfU0VTU0lPTikKICAgICAsIG1fcmVxdWVzdChyZXF1ZXN0
KQogI2VuZGlmCiB7CkBAIC04MCwxNCArNzgsMTIgQEAgdm9pZCBEb3dubG9hZDo6ZGlkU3RhcnQo
KQogfQogI2VuZGlmCiAKKyNpZiAhVVNFKE5FVFdPUktfU0VTU0lPTikKIHZvaWQgRG93bmxvYWQ6
OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCiB7Ci0jaWYgVVNFKE5FVFdPUktfU0VT
U0lPTikKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotI2Vsc2UKICAgICBtX2Rvd25sb2FkTWFuYWdl
ci5kb3dubG9hZHNBdXRoZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoKnRoaXMsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKTsKLSNlbmRpZgogfQor
I2VuZGlmCiAKIHZvaWQgRG93bmxvYWQ6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCShyZXZpc2lvbiAxOTQ1NzApCisrKyBT
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNzYsNyArNzYsNyBAQCBjbGFzcyBEb3dubG9hZCA6IHB1YmxpYyBJUEM6Ok1l
c3NhZ2VTZW5kCiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRG93bmxvYWQpOwogcHVibGljOgog
I2lmIFVTRShORVRXT1JLX1NFU1NJT04pCi0gICAgRG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiwg
Y29uc3QgTmV0d29ya1Nlc3Npb24mLCBEb3dubG9hZElEKTsKKyAgICBEb3dubG9hZChEb3dubG9h
ZE1hbmFnZXImLCBEb3dubG9hZElEKTsKICNlbHNlCiAgICAgRG93bmxvYWQoRG93bmxvYWRNYW5h
Z2VyJiwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAjZW5k
aWYKQEAgLTk3LDggKzk3LDggQEAgcHVibGljOgogICAgIHZvaWQgZGlkU3RhcnQoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAjZWxzZQogICAgIHZvaWQgZGlkU3RhcnQoKTsKLSNl
bmRpZgogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IFdl
YkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CisjZW5kaWYKICAgICB2b2lkIGRpZFJl
Y2VpdmVSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdm9p
ZCBkaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBsZW5ndGgpOwogICAgIGJvb2wgc2hvdWxkRGVjb2Rl
U291cmNlRGF0YU9mTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CkBAIC0xNDEsNyAr
MTQxLDYgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2lmIFVTRShORVRXT1JL
X1NFU1NJT04pCi0gICAgY29uc3QgTmV0d29ya1Nlc3Npb24mIG1fc2Vzc2lvbjsKICAgICBSZXRh
aW5QdHI8TlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrPiBtX2Rvd25sb2FkOwogI2Vsc2UKICAgICBS
ZXRhaW5QdHI8TlNVUkxEb3dubG9hZD4gbV9uc1VSTERvd25sb2FkOwpJbmRleDogU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
TWFuYWdlci5jcHAJKHJldmlzaW9uIDE5NDU5MikKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Nyw2ICsyNyw4IEBACiAjaW5jbHVkZSAiRG93bmxvYWRNYW5hZ2VyLmgiCiAKICNpbmNsdWRlICJE
b3dubG9hZC5oIgorI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCisjaW5jbHVkZSAiUGVuZGlu
Z0Rvd25sb2FkLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KQEAg
LTQ3LDIxICs0OSwyNyBAQCB2b2lkIERvd25sb2FkTWFuYWdlcjo6c3RhcnREb3dubG9hZChTZXNz
CiAgICAgYXV0byogbmV0d29ya1Nlc3Npb24gPSBTZXNzaW9uVHJhY2tlcjo6bmV0d29ya1Nlc3Np
b24oc2Vzc2lvbklEKTsKICAgICBpZiAoIW5ldHdvcmtTZXNzaW9uKQogICAgICAgICByZXR1cm47
Ci0gICAgYXV0byBkb3dubG9hZCA9IHN0ZDo6bWFrZV91bmlxdWU8RG93bmxvYWQ+KCp0aGlzLCAq
bmV0d29ya1Nlc3Npb24sIGRvd25sb2FkSUQpOwotICAgIGRvd25sb2FkLT5kaWRTdGFydChyZXF1
ZXN0KTsKKyAgICBOZXR3b3JrTG9hZFBhcmFtZXRlcnMgcGFyYW1ldGVyczsKKyAgICBwYXJhbWV0
ZXJzLnNlc3Npb25JRCA9IHNlc3Npb25JRDsKKyAgICBwYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1
ZXN0OworICAgIG1fcGVuZGluZ0Rvd25sb2Fkcy5hZGQoZG93bmxvYWRJRCwgc3RkOjptYWtlX3Vu
aXF1ZTxQZW5kaW5nRG93bmxvYWQ+KHBhcmFtZXRlcnMsIGRvd25sb2FkSUQpKTsKICNlbHNlCiAg
ICAgYXV0byBkb3dubG9hZCA9IHN0ZDo6bWFrZV91bmlxdWU8RG93bmxvYWQ+KCp0aGlzLCBkb3du
bG9hZElELCByZXF1ZXN0KTsKICAgICBkb3dubG9hZC0+c3RhcnQoKTsKLSNlbmRpZgogCiAgICAg
QVNTRVJUKCFtX2Rvd25sb2Fkcy5jb250YWlucyhkb3dubG9hZElEKSk7CiAgICAgbV9kb3dubG9h
ZHMuYWRkKGRvd25sb2FkSUQsIFdURk1vdmUoZG93bmxvYWQpKTsKKyNlbmRpZgogfQogCiAjaWYg
VVNFKE5FVFdPUktfU0VTU0lPTikKLXZvaWQgRG93bmxvYWRNYW5hZ2VyOjpkYXRhVGFza0JlY2Ft
ZURvd25sb2FkVGFzayhEb3dubG9hZElEIGRvd25sb2FkSUQsIHN0ZDo6dW5pcXVlX3B0cjxEb3du
bG9hZD4mJiBkb3dubG9hZCkKK3N0ZDo6dW5pcXVlX3B0cjxQZW5kaW5nRG93bmxvYWQ+IERvd25s
b2FkTWFuYWdlcjo6ZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2soRG93bmxvYWRJRCBkb3dubG9h
ZElELCBzdGQ6OnVuaXF1ZV9wdHI8RG93bmxvYWQ+JiYgZG93bmxvYWQpCiB7CisgICAgLy8gVGhp
cyBpcyBuZWVkZWQgZm9yIGRvd25sb2FkcyBzdGFydGVkIHdpdGggc3RhcnREb3dubG9hZCwgb3Ro
ZXJ3aXNlIGl0IHdpbGwgcmV0dXJuIG51bGxwdHIuCisgICAgYXV0byBwZW5kaW5nRG93bmxvYWQg
PSBtX3BlbmRpbmdEb3dubG9hZHMudGFrZShkb3dubG9hZElEKTsKKwogICAgIG1fZG93bmxvYWRz
LmFkZChkb3dubG9hZElELCBXVEZNb3ZlKGRvd25sb2FkKSk7CisgICAgcmV0dXJuIHBlbmRpbmdE
b3dubG9hZDsKIH0KICNlbHNlCiB2b2lkIERvd25sb2FkTWFuYWdlcjo6Y29udmVydEhhbmRsZVRv
RG93bmxvYWQoRG93bmxvYWRJRCBkb3dubG9hZElELCBSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaAkocmV2aXNpb24gMTk0NTkyKQorKysgU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIERvd25sb2FkTWFuYWdlcl9o
CiAKICNpbmNsdWRlICJEb3dubG9hZElELmgiCisjaW5jbHVkZSAiUGVuZGluZ0Rvd25sb2FkLmgi
CiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1w
bGVtZW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNTEsNiArNTIsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQXV0aGVudGljYXRpb25NYW5hZ2VyOwogY2xhc3Mg
RG93bmxvYWQ7CitjbGFzcyBQZW5kaW5nRG93bmxvYWQ7CiAKIGNsYXNzIERvd25sb2FkTWFuYWdl
ciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRG93bmxvYWRNYW5hZ2VyKTsKQEAgLTcwLDcg
KzcyLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzdGFydERvd25sb2FkKFdlYkNvcmU6OlNlc3Np
b25JRCwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAjaWYg
VVNFKE5FVFdPUktfU0VTU0lPTikKLSAgICB2b2lkIGRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNr
KERvd25sb2FkSUQsIHN0ZDo6dW5pcXVlX3B0cjxEb3dubG9hZD4mJik7CisgICAgc3RkOjp1bmlx
dWVfcHRyPFBlbmRpbmdEb3dubG9hZD4gZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2soRG93bmxv
YWRJRCwgc3RkOjp1bmlxdWVfcHRyPERvd25sb2FkPiYmKTsKICNlbHNlCiAgICAgdm9pZCBjb252
ZXJ0SGFuZGxlVG9Eb3dubG9hZChEb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSos
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmKTsKICNlbmRpZgpAQCAtOTMsNiArOTUsOSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6
CiAgICAgQ2xpZW50JiBtX2NsaWVudDsKKyNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQorICAgIEhh
c2hNYXA8RG93bmxvYWRJRCwgc3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdEb3dubG9hZD4+IG1fcGVu
ZGluZ0Rvd25sb2FkczsKKyNlbmRpZgogICAgIEhhc2hNYXA8RG93bmxvYWRJRCwgc3RkOjp1bmlx
dWVfcHRyPERvd25sb2FkPj4gbV9kb3dubG9hZHM7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvUGVuZGluZ0Rvd25sb2FkLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL1BlbmRpbmdEb3dubG9h
ZC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL1BlbmRpbmdEb3dubG9hZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFBlbmRpbmdEb3dubG9hZF9oCisjZGVmaW5lIFBlbmRpbmdEb3du
bG9hZF9oCisKKyNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQorCisjaW5jbHVkZSAiTmV0d29ya0xv
YWQuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFBlbmRpbmdEb3dubG9hZCA6IHB1
YmxpYyBOZXR3b3JrTG9hZENsaWVudCB7CitwdWJsaWM6CisgICAgUGVuZGluZ0Rvd25sb2FkKGNv
bnN0IE5ldHdvcmtMb2FkUGFyYW1ldGVycyYgcGFyYW1ldGVycywgRG93bmxvYWRJRCBkb3dubG9h
ZElEKQorICAgICAgICA6IG1fbmV0d29ya0xvYWQoc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrTG9h
ZD4oKnRoaXMsIHBhcmFtZXRlcnMpKQorICAgIHsKKyAgICAgICAgbV9uZXR3b3JrTG9hZC0+c2V0
UGVuZGluZ0Rvd25sb2FkSUQoZG93bmxvYWRJRCk7CisgICAgfQorCitwcml2YXRlOiAgICAKKyAg
ICAvLyBOZXR3b3JrTG9hZENsaWVudC4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkU2VuZERhdGEodW5z
aWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNU
b0JlU2VudCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGNhbkF1dGhlbnRpY2F0ZUFn
YWluc3RQcm90ZWN0aW9uU3BhY2VBc3luYyhjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2Um
KSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTeW5jaHJvbm91cygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVkaXJl
Y3RlZFJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiByZWRpcmVjdFJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpIG92ZXJyaWRlCisgICAgeworICAgICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIGFzayB0aGUgVUkgcHJvY2VzcyBkaXJlY3RseSBpZiB3ZSBhY3R1
YWxseSB3YW50IHRvIGNvbnRpbnVlIHRoaXMgcmVxdWVzdC4KKyAgICAgICAgbV9uZXR3b3JrTG9h
ZC0+Y29udGludWVXaWxsU2VuZFJlcXVlc3QocmVkaXJlY3RSZXF1ZXN0KTsKKyAgICB9OworICAg
IHZpcnR1YWwgU2hvdWxkQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UgZGlkUmVjZWl2ZVJlc3Bv
bnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZSB7IHJldHVybiBT
aG91bGRDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZTo6Tm87IH07CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVCdWZmZXIoUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwgaW50IHJl
cG9ydGVkRW5jb2RlZERhdGFMZW5ndGgpIG92ZXJyaWRlIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmluaXNoTG9hZGluZyhkb3VibGUgZmluaXNoVGltZSkgb3ZlcnJpZGUgeyB9OworICAgIHZp
cnR1YWwgdm9pZCBkaWRGYWlsTG9hZGluZyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikg
b3ZlcnJpZGUgeyB9OworICAgIHZpcnR1YWwgdm9pZCBkaWRDb252ZXJ0VG9Eb3dubG9hZCgpIG92
ZXJyaWRlIHsgbV9uZXR3b3JrTG9hZCA9IG51bGxwdHI7IH0KKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbENhY2hlUmVzcG9uc2VBc3luYyhDRkNhY2hlZFVSTFJlc3Bv
bnNlUmVmKSBvdmVycmlkZSB7IH0KKyNlbmRpZgorcHJpdmF0ZToKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8TmV0d29ya0xvYWQ+IG1fbmV0d29ya0xvYWQ7Cit9OworCit9CisKKyNlbmRpZgorCisjZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQkocmV2aXNpb24gMTk0NjI2KQorKysgU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQkod29y
a2luZyBjb3B5KQpAQCAtMTY2LDEyICsxNjYsMTIgQEAgLSAodm9pZClVUkxTZXNzaW9uOihOU1VS
TFNlc3Npb24gKilzZXNzaQogLSAodm9pZClVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilzZXNz
aW9uIGRhdGFUYXNrOihOU1VSTFNlc3Npb25EYXRhVGFzayAqKWRhdGFUYXNrIGRpZEJlY29tZURv
d25sb2FkVGFzazooTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrICopZG93bmxvYWRUYXNrCiB7CiAg
ICAgaWYgKGF1dG8qIG5ldHdvcmtEYXRhVGFzayA9IF9zZXNzaW9uLT5kYXRhVGFza0ZvcklkZW50
aWZpZXIoW2RhdGFUYXNrIHRhc2tJZGVudGlmaWVyXSkpIHsKLSAgICAgICAgYXV0byBkb3dubG9h
ZElEID0gbmV0d29ya0RhdGFUYXNrLT5kb3dubG9hZElEKCk7CisgICAgICAgIGF1dG8gZG93bmxv
YWRJRCA9IG5ldHdvcmtEYXRhVGFzay0+cGVuZGluZ0Rvd25sb2FkSUQoKTsKICAgICAgICAgYXV0
byYgZG93bmxvYWRNYW5hZ2VyID0gV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCku
ZG93bmxvYWRNYW5hZ2VyKCk7Ci0gICAgICAgIGF1dG8gZG93bmxvYWQgPSBzdGQ6Om1ha2VfdW5p
cXVlPFdlYktpdDo6RG93bmxvYWQ+KGRvd25sb2FkTWFuYWdlciwgKl9zZXNzaW9uLCBkb3dubG9h
ZElEKTsKKyAgICAgICAgYXV0byBkb3dubG9hZCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViS2l0OjpE
b3dubG9hZD4oZG93bmxvYWRNYW5hZ2VyLCBkb3dubG9hZElEKTsKICAgICAgICAgZG93bmxvYWQt
PmRpZFN0YXJ0KFtkb3dubG9hZFRhc2sgY3VycmVudFJlcXVlc3RdKTsKICAgICAgICAgZG93bmxv
YWQtPmRpZFJlY2VpdmVSZXNwb25zZShbZG93bmxvYWRUYXNrIHJlc3BvbnNlXSk7Ci0gICAgICAg
IGRvd25sb2FkTWFuYWdlci5kYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayhkb3dubG9hZElELCBX
VEZNb3ZlKGRvd25sb2FkKSk7CisgICAgICAgIGF1dG8gcGVuZGluZ0Rvd25sb2FkID0gZG93bmxv
YWRNYW5hZ2VyLmRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKGRvd25sb2FkSUQsIFdURk1vdmUo
ZG93bmxvYWQpKTsKIAogICAgICAgICBuZXR3b3JrRGF0YVRhc2stPmNsaWVudCgpLmRpZEJlY29t
ZURvd25sb2FkKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE5NDUzNSkKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTA2
OCw2ICsxMDY4LDcgQEAKIAkJNUMxNDI3MUQxQzIzRjhDRjAwRDQxMTgzIC8qIEN1c3RvbVByb3Rv
Y29sTWFuYWdlckNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUMxNDI3MUIxQzIzRjhDQzAwRDQxMTgzIC8qIEN1c3RvbVByb3RvY29sTWFuYWdl
ckNvY29hLm1tICovOyB9OwogCQk1QzIwQ0I5RDFCQjBEQ0ZBMDA4OTVCQjEgLyogTmV0d29ya1Nl
c3Npb25Db2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDVDMjBDQjlCMUJCMERDRDIwMDg5NUJCMSAvKiBOZXR3b3JrU2Vzc2lvbkNvY29hLm1tICov
OyB9OwogCQk1QzIwQ0JBMDFCQjFFQ0Q4MDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMjBDQjlFMUJCMERE
MTgwMDg5NUJCMSAvKiBOZXR3b3JrU2Vzc2lvbi5oICovOyB9OworCQk1QzI5OERBMDFDM0RGMDIx
MDA0NzBBRkUgLyogUGVuZGluZ0Rvd25sb2FkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1QzI5OEQ5RTFDM0RFRjI5MDA0NzBBRkUgLyogUGVuZGluZ0Rv
d25sb2FkLmggKi87IH07CiAJCTVEQTZFRDBBMTQ5MDYwNjkwMEI0MUQxMiAvKiBEeW5hbWljTGlu
a2VyRW52aXJvbm1lbnRFeHRyYWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDVEQTZFRDA4MTQ5MDYwNjkwMEI0MUQxMiAvKiBEeW5hbWljTGlua2Vy
RW52aXJvbm1lbnRFeHRyYWN0b3IuaCAqLzsgfTsKIAkJNURBNkVEMEIxNDkwNjA2OTAwQjQxRDEy
IC8qIER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEQTZFRDA5MTQ5MDYwNjkwMEI0MUQxMiAv
KiBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IubW0gKi87IH07CiAJCTY1MDFCRDFB
MTJGMTI0MzQwMEU5RjI0OCAvKiBXS0J1bmRsZUluc3BlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUI4NkYxNzEyRjExRDdCMDBCN0REOEEg
LyogV0tCdW5kbGVJbnNwZWN0b3IuY3BwICovOyB9OwpAQCAtMzI0OCw2ICszMjQ5LDcgQEAKIAkJ
NUMxNDI3MUIxQzIzRjhDQzAwRDQxMTgzIC8qIEN1c3RvbVByb3RvY29sTWFuYWdlckNvY29hLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQ3VzdG9tUHJvdG9jb2xN
YW5hZ2VyQ29jb2EubW07IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvQ29j
b2EvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTVDMjBDQjlCMUJCMERDRDIwMDg5NUJCMSAvKiBOZXR3b3JrU2Vzc2lvbkNvY29hLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gTmV0d29ya1Nlc3Npb25D
b2NvYS5tbTsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMjBDQjlFMUJCMEREMTgwMDg5NUJC
MSAvKiBOZXR3b3JrU2Vzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBO
ZXR3b3JrU2Vzc2lvbi5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUMyOThEOUUxQzNERUYyOTAwNDcwQUZFIC8q
IFBlbmRpbmdEb3dubG9hZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQZW5k
aW5nRG93bmxvYWQuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93
bmxvYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQ0NDJBNTUxNkQ1ODU2NzAw
QUMzMzMxIC8qIFBsdWdpblNlcnZpY2UuZW50aXRsZW1lbnRzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IHBhdGggPSBQbHVnaW5TZXJ2
aWNlLmVudGl0bGVtZW50czsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNURBNkVEMDgx
NDkwNjA2OTAwQjQxRDEyIC8qIER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRF
eHRyYWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNURBNkVEMDkxNDkwNjA2
OTAwQjQxRDEyIC8qIER5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IER5bmFtaWNMaW5rZXJFbnZpcm9ubWVu
dEV4dHJhY3Rvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU4MTUsNiArNTgx
Nyw3IEBACiAJCTVDMTQyNkYxMUMyM0Y4MTcwMEQ0MTE4MyAvKiBEb3dubG9hZHMgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTVDMjk4RDlFMUMzREVGMjkw
MDQ3MEFGRSAvKiBQZW5kaW5nRG93bmxvYWQuaCAqLywKIAkJCQk1QzE0MjcwQzFDMjNGODc3MDBE
NDExODMgLyogaW9zICovLAogCQkJCTVDMTQyNzBCMUMyM0Y4NzEwMEQ0MTE4MyAvKiBtYWMgKi8s
CiAJCQkJNUMxNDI3MDgxQzIzRjg1MjAwRDQxMTgzIC8qIGNvY29hICovLApAQCAtODI5MSw2ICs4
Mjk0LDcgQEAKIAkJCQkxQUJDM0RGQzE4OTlGNTFDMDA0RjA2MjYgLyogV0tOYXZpZ2F0aW9uRGVs
ZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTIwRDUxMThBRDUwRTAwMDVEMUVENCAvKiBX
S05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQkMzREYx
MTg5OUM2QjYwMDRGMDYyNiAvKiBXS05hdmlnYXRpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNUMyOThEQTAxQzNERjAyMTAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFDQzg3QkExOTgxQzM0MTAwM0QxQUY0IC8qIFdLTmF2aWdhdGlvblBy
aXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEM0E2NUUzMUE3QzNBOTMwMENBQzYzNyAvKiBX
S05hdmlnYXRpb25SZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMUIwRUI2MThBNDI0OTUwMDM4
NDgxQSAvKiBXS05hdmlnYXRpb25SZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCg==
</data>
<flag name="review"
          id="293371"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>