<?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>182320</bug_id>
          
          <creation_ts>2018-01-30 21:23:36 -0800</creation_ts>
          <short_desc>Canonicalize aquiring the JSCell lock.</short_desc>
          <delta_ts>2018-01-31 12:06:13 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1394903</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-01-30 21:23:36 -0800</bug_when>
    <thetext>Canonicalize aquiring the JSCell lock.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394905</commentid>
    <comment_count>1</comment_count>
      <attachid>332741</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-01-30 21:26:55 -0800</bug_when>
    <thetext>Created attachment 332741
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394993</commentid>
    <comment_count>2</comment_count>
      <attachid>332762</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-01-31 08:15:46 -0800</bug_when>
    <thetext>Created attachment 332762
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394994</commentid>
    <comment_count>3</comment_count>
      <attachid>332763</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-01-31 08:16:36 -0800</bug_when>
    <thetext>Created attachment 332763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395010</commentid>
    <comment_count>4</comment_count>
      <attachid>332763</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-01-31 09:15:50 -0800</bug_when>
    <thetext>Comment on attachment 332763
Patch

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

&gt; Source/JavaScriptCore/runtime/JSCell.h:124
&gt; +    // It&apos;s also recommended that cells are locked with the holdJSCellLock() method to help keep

Why not make those private and friend lockholder then? Or you could do what I suggest below and make these private and people can call lock/unlock on the wrapper type

&gt; Source/JavaScriptCore/runtime/JSCell.h:126
&gt; +    Locker&lt;JSCell&gt; holdJSCellLock() { return holdLock(*this); }

Not in love with the name here. What if you had some method named “cellLock” and it returned to you some wrapper that exposes lock/unlock methods. You could do:
auto locker = holdLock(cell-&gt;cellLock())
But I’m not sure if that’s much better</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395013</commentid>
    <comment_count>5</comment_count>
      <attachid>332763</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-01-31 09:19:31 -0800</bug_when>
    <thetext>Comment on attachment 332763
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/JSCell.h:124
&gt;&gt; +    // It&apos;s also recommended that cells are locked with the holdJSCellLock() method to help keep
&gt; 
&gt; Why not make those private and friend lockholder then? Or you could do what I suggest below and make these private and people can call lock/unlock on the wrapper type

You can&apos;t really do that. If you friend Locker then anyone can make a Locker that can lock a JSCell so we&apos;re in the same boat. You also can&apos;t make a subclass of Locker that you friend because the base class needs access to lock/unlock.

&gt;&gt; Source/JavaScriptCore/runtime/JSCell.h:126
&gt;&gt; +    Locker&lt;JSCell&gt; holdJSCellLock() { return holdLock(*this); }
&gt; 
&gt; Not in love with the name here. What if you had some method named “cellLock” and it returned to you some wrapper that exposes lock/unlock methods. You could do:
&gt; auto locker = holdLock(cell-&gt;cellLock())
&gt; But I’m not sure if that’s much better

Yeah, I guess that&apos;s a bit better in that you can&apos;t just holdLock(cell).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395041</commentid>
    <comment_count>6</comment_count>
      <attachid>332773</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-01-31 10:06:20 -0800</bug_when>
    <thetext>Created attachment 332773
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395047</commentid>
    <comment_count>7</comment_count>
      <attachid>332775</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-01-31 10:15:37 -0800</bug_when>
    <thetext>Created attachment 332775
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395055</commentid>
    <comment_count>8</comment_count>
      <attachid>332775</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2018-01-31 10:31:38 -0800</bug_when>
    <thetext>Comment on attachment 332775
Patch

r=me after build failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395056</commentid>
    <comment_count>9</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-01-31 10:32:36 -0800</bug_when>
    <thetext>(In reply to Michael Saboff from comment #8)
&gt; Comment on attachment 332775 [details]
&gt; Patch
&gt; 
&gt; r=me after build failures.

Looks like ToT is broken...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395063</commentid>
    <comment_count>10</comment_count>
      <attachid>332775</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-31 10:57:18 -0800</bug_when>
    <thetext>Comment on attachment 332775
Patch

Clearing flags on attachment: 332775

Committed r227906: &lt;https://trac.webkit.org/changeset/227906&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395064</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-31 10:57:20 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395065</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-31 11:00:32 -0800</bug_when>
    <thetext>&lt;rdar://problem/37077485&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395106</commentid>
    <comment_count>13</comment_count>
      <attachid>332775</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-01-31 12:06:13 -0800</bug_when>
    <thetext>Comment on attachment 332775
Patch

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

&gt; Source/JavaScriptCore/runtime/JSCell.h:288
&gt; +class JSCellLock : public JSCell {

nice. This patch LGTM too. I think this API works out nicely.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332741</attachid>
            <date>2018-01-30 21:26:55 -0800</date>
            <delta_ts>2018-01-31 08:15:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182320-20180130212654.patch</filename>
            <type>text/plain</type>
            <size>15160</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3NjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MmJhMjk4MjI2N2Q5ZDNkMmVkYjE1MzBmZWI4NjJhZTNjM2ZlZjg0Li44M2ZjODE4ODRiNzRjMWYw
ZTI1YmEwNTI2NjQ2ODk0NzRmZDA1NGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAxOC0wMS0zMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBDYW5vbmljYWxpemUgYXF1aXJpbmcgdGhlIEpTQ2VsbCBsb2NrLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyMzIwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQncyBjdXJy
ZW50bHkga2luZGEgYW5ub3lpbmcgdG8gZmlndXJlIG91dCB3aGVyZQorICAgICAgICB3ZSBhcXVp
cmUgdGhlIGEgSlNDZWxsJ3MgbG9jay4gVGhpcyBwYXRjaCBhZGRzIGEKKyAgICAgICAgaGVscGVy
IHRvIG1ha2UgaXQgZWFzaWVyIHRvIGdyZXAuLi4KKworICAgICAgICAqIGJ5dGVjb2RlL1VubGlu
a2VkQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2RlQmxvY2s6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpVbmxpbmtlZENvZGVCbG9jazo6c2V0SW5zdHJ1Y3Rp
b25zKToKKyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2RlQmxvY2s6OnNocmlua1RvRml0KToKKyAg
ICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9CMzo6Y29tcGlsZUdldEJ5VmFsKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9CMzo6cHJlY2lzZUluZGV4TWFzazY0KToKKyAgICAgICAgKiBydW50aW1lL0Vy
cm9ySW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpmaW5pc2hDcmVh
dGlvbik6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6Om1hdGVyaWFsaXplRXJyb3JJbmZv
SWZOZWVkZWQpOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjp2aXNpdENoaWxkcmVuKToK
KyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0FycmF5Ojpz
aGlmdENvdW50V2l0aEFycmF5U3RvcmFnZSk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnVuc2hp
ZnRDb3VudFdpdGhBcnJheVN0b3JhZ2UpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6Cisg
ICAgICAgIChKU0M6OkpTQ2VsbDo6aG9sZEpTQ2VsbExvY2spOgorICAgICAgICAqIHJ1bnRpbWUv
SlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6dmlzaXRCdXR0ZXJmbHlJbXBs
KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmNvbnZlcnRDb250aWd1b3VzVG9BcnJheVN0b3Jh
Z2UpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjp2aXNpdENoaWxkcmVuKToKKyAg
ICAgICAgKiBydW50aW1lL1NwYXJzZUFycmF5VmFsdWVNYXAuY3BwOgorICAgICAgICAoSlNDOjpT
cGFyc2VBcnJheVZhbHVlTWFwOjphZGQpOgorICAgICAgICAoSlNDOjpTcGFyc2VBcnJheVZhbHVl
TWFwOjpyZW1vdmUpOgorICAgICAgICAoSlNDOjpTcGFyc2VBcnJheVZhbHVlTWFwOjp2aXNpdENo
aWxkcmVuKToKKwogMjAxOC0wMS0yNSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgR2FyZGVuaW5nOiBmaXggMzItYml0IGJ1aWxkIGFmdGVyIHIyMjc2NDMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2su
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNw
cAppbmRleCA3MWYxY2E1NzY4NzhjMWVlZTlmM2E3ZjJhNTIxMGUzNjc0MTA4OTQ2Li4xZjg3YTZj
ZTBkMTBlY2ZhYjYzMDc5OGUyNjIyZTdiMjk5M2ZjZTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAKQEAgLTk0LDcgKzk0
LDcgQEAgdm9pZCBVbmxpbmtlZENvZGVCbG9jazo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGws
IFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIFVubGlua2VkQ29kZUJsb2NrKiB0aGlzT2JqZWN0
ID0ganNDYXN0PFVubGlua2VkQ29kZUJsb2NrKj4oY2VsbCk7CiAgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4o
dGhpc09iamVjdCwgdmlzaXRvcik7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqdGhpc09i
amVjdCk7CisgICAgYXV0byBsb2NrZXIgPSB0aGlzT2JqZWN0LT5ob2xkSlNDZWxsTG9jaygpOwog
ICAgIGZvciAoRnVuY3Rpb25FeHByZXNzaW9uVmVjdG9yOjppdGVyYXRvciBwdHIgPSB0aGlzT2Jq
ZWN0LT5tX2Z1bmN0aW9uRGVjbHMuYmVnaW4oKSwgZW5kID0gdGhpc09iamVjdC0+bV9mdW5jdGlv
bkRlY2xzLmVuZCgpOyBwdHIgIT0gZW5kOyArK3B0cikKICAgICAgICAgdmlzaXRvci5hcHBlbmQo
KnB0cik7CiAgICAgZm9yIChGdW5jdGlvbkV4cHJlc3Npb25WZWN0b3I6Oml0ZXJhdG9yIHB0ciA9
IHRoaXNPYmplY3QtPm1fZnVuY3Rpb25FeHBycy5iZWdpbigpLCBlbmQgPSB0aGlzT2JqZWN0LT5t
X2Z1bmN0aW9uRXhwcnMuZW5kKCk7IHB0ciAhPSBlbmQ7ICsrcHRyKQpAQCAtMzE3LDcgKzMxNyw3
IEBAIHZvaWQgVW5saW5rZWRDb2RlQmxvY2s6OnNldEluc3RydWN0aW9ucyhzdGQ6OnVuaXF1ZV9w
dHI8VW5saW5rZWRJbnN0cnVjdGlvblN0cmVhCiB7CiAgICAgQVNTRVJUKGluc3RydWN0aW9ucyk7
CiAgICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKCp0aGlzKTsKKyAgICAgICAg
YXV0byBsb2NrZXIgPSBob2xkSlNDZWxsTG9jaygpOwogICAgICAgICBtX3VubGlua2VkSW5zdHJ1
Y3Rpb25zID0gV1RGTW92ZShpbnN0cnVjdGlvbnMpOwogICAgIH0KICAgICBIZWFwOjpoZWFwKHRo
aXMpLT5yZXBvcnRFeHRyYU1lbW9yeUFsbG9jYXRlZChtX3VubGlua2VkSW5zdHJ1Y3Rpb25zLT5z
aXplSW5CeXRlcygpKTsKQEAgLTM5Miw3ICszOTIsNyBAQCB2b2lkIFVubGlua2VkQ29kZUJsb2Nr
OjphcHBseU1vZGlmaWNhdGlvbihCeXRlY29kZVJld3JpdGVyJiByZXdyaXRlciwgVW5wYWNrZWRJ
bgogCiB2b2lkIFVubGlua2VkQ29kZUJsb2NrOjpzaHJpbmtUb0ZpdCgpCiB7Ci0gICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jaygqdGhpcyk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkSlNDZWxsTG9j
aygpOwogICAgIAogICAgIG1fanVtcFRhcmdldHMuc2hyaW5rVG9GaXQoKTsKICAgICBtX2lkZW50
aWZpZXJzLnNocmlua1RvRml0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAKaW5kZXggZDdmNGI4NzBkZmFjNWYxOGRlNWI2OWNkZWJiNDA3Y2FlYWM0
ZDAxMy4uZmRkNGRlZTNjOGMzOGEzODQ2MzUyYTc2MWYzZjY3YmFiMmIzOWVkOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMzY3MCwxMSAr
MzY3MCwxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAgSW5kZXhlZEFic3RyYWN0SGVhcCYgaGVh
cCA9IG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpID09IEFycmF5OjpJbnQzMiA/CiAgICAgICAg
ICAgICAgICAgbV9oZWFwcy5pbmRleGVkSW50MzJQcm9wZXJ0aWVzIDogbV9oZWFwcy5pbmRleGVk
Q29udGlndW91c1Byb3BlcnRpZXM7CiAKLSAgICAgICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2Vs
bChtX25vZGUtPmNoaWxkMSgpKTsKLQogICAgICAgICAgICAgaWYgKG1fbm9kZS0+YXJyYXlNb2Rl
KCkuaXNJbkJvdW5kcygpKSB7Ci0gICAgICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0
LmxvYWQ2NChtYXNrZWRJbmRleChoZWFwLCBzdG9yYWdlLCBpbmRleCwgYmFzZSwgbV9ub2RlLT5j
aGlsZDIoKSkpOworICAgICAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBtX291dC5sb2FkNjQo
YmFzZUluZGV4KGhlYXAsIHN0b3JhZ2UsIGluZGV4LCBtX25vZGUtPmNoaWxkMigpKSk7CiAgICAg
ICAgICAgICAgICAgTFZhbHVlIGlzSG9sZSA9IG1fb3V0LmlzWmVybzY0KHJlc3VsdCk7CisgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gcHJlY2lzZUluZGV4TWFzazMyKHJlc3VsdCwgaW5kZXgsIG1f
b3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xl
bmd0aCkpOwogICAgICAgICAgICAgICAgIGlmIChtX25vZGUtPmFycmF5TW9kZSgpLmlzU2FuZUNo
YWluKCkpIHsKICAgICAgICAgICAgICAgICAgICAgREZHX0FTU0VSVCgKICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fZ3JhcGgsIG1fbm9kZSwgbV9ub2RlLT5hcnJheU1vZGUoKS50eXBlKCkgPT0g
QXJyYXk6OkNvbnRpZ3VvdXMpOwpAQCAtMzY4NSw2ICszNjg0LDggQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICBzZXRKU1ZhbHVlKHJlc3VsdCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ub2Rl
LT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGZhc3RD
YXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dDYXNl
ID0gbV9vdXQubmV3QmxvY2soKTsKQEAgLTM2OTcsOCArMzY5OCwxMCBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVu
ZFRvKGZhc3RDYXNlLCBzbG93Q2FzZSk7CiAKLSAgICAgICAgICAgIExWYWx1ZSBmYXN0UmVzdWx0
VmFsdWUgPSBtX291dC5sb2FkNjQobWFza2VkSW5kZXgoaGVhcCwgc3RvcmFnZSwgaW5kZXgsIGJh
c2UsIG1fbm9kZS0+Y2hpbGQyKCkpKTsKKyAgICAgICAgICAgIExWYWx1ZSBmYXN0UmVzdWx0VmFs
dWUgPSBtX291dC5sb2FkNjQoYmFzZUluZGV4KGhlYXAsIHN0b3JhZ2UsIGluZGV4LCBtX25vZGUt
PmNoaWxkMigpKSk7CisgICAgICAgICAgICBmYXN0UmVzdWx0VmFsdWUgPSBwcmVjaXNlSW5kZXhN
YXNrMzIoZmFzdFJlc3VsdFZhbHVlLCBpbmRleCwgbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoc3Rv
cmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKSk7CiAgICAgICAgICAgICBWYWx1
ZUZyb21CbG9jayBmYXN0UmVzdWx0ID0gbV9vdXQuYW5jaG9yKGZhc3RSZXN1bHRWYWx1ZSk7CisK
ICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICBtX291dC5pc1plcm82
NChmYXN0UmVzdWx0VmFsdWUpLCByYXJlbHkoc2xvd0Nhc2UpLCB1c3VhbGx5KGNvbnRpbnVhdGlv
bikpOwogICAgICAgICAgICAgCkBAIC0zNzEzLDE2ICszNzE2LDE0IEBAIHByaXZhdGU6CiAgICAg
ICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEFycmF5OjpEb3VibGU6IHsKLSAgICAg
ICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAg
ICAgIExWYWx1ZSBpbmRleCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAg
ICAgTFZhbHVlIHN0b3JhZ2UgPSBsb3dTdG9yYWdlKG1fbm9kZS0+Y2hpbGQzKCkpOwogICAgICAg
ICAgICAgCiAgICAgICAgICAgICBJbmRleGVkQWJzdHJhY3RIZWFwJiBoZWFwID0gbV9oZWFwcy5p
bmRleGVkRG91YmxlUHJvcGVydGllczsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKG1f
bm9kZS0+YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygpKSB7Ci0gICAgICAgICAgICAgICAgTFZhbHVl
IHJlc3VsdCA9IG1fb3V0LmxvYWREb3VibGUoCi0gICAgICAgICAgICAgICAgICAgIG1hc2tlZElu
ZGV4KGhlYXAsIHN0b3JhZ2UsIGluZGV4LCBiYXNlLCBtX25vZGUtPmNoaWxkMigpKSk7Ci0gICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaW5kZXggPSBwcmVjaXNlSW5kZXhNYXNrMzIo
aW5kZXgsIGluZGV4LCBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShzdG9yYWdlLCBtX2hlYXBzLkJ1
dHRlcmZseV9wdWJsaWNMZW5ndGgpKTsKKyAgICAgICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0g
bV9vdXQubG9hZERvdWJsZShiYXNlSW5kZXgoaGVhcCwgc3RvcmFnZSwgaW5kZXgsIG1fbm9kZS0+
Y2hpbGQyKCkpKTsKICAgICAgICAgICAgICAgICBpZiAoIW1fbm9kZS0+YXJyYXlNb2RlKCkuaXNT
YW5lQ2hhaW4oKSkgewogICAgICAgICAgICAgICAgICAgICBzcGVjdWxhdGUoCiAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2FkRnJvbUhvbGUsIG5vVmFsdWUoKSwgMCwKQEAgLTM3MzEsNiArMzcz
Miw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgc2V0RG91YmxlKHJlc3VsdCk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBMVmFsdWUgYmFz
ZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CiAKICAgICAgICAgICAgIExCYXNpY0Jsb2Nr
IGluQm91bmRzID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGJv
eFBhdGggPSBtX291dC5uZXdCbG9jaygpOwpAQCAtMzc0MSwxMCArMzc0MywxMSBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbCgKICAgICAgICAgICAgICAgICAg
ICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVy
Zmx5X3B1YmxpY0xlbmd0aCkpLAogICAgICAgICAgICAgICAgIHJhcmVseShzbG93Q2FzZSksIHVz
dWFsbHkoaW5Cb3VuZHMpKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBMQmFzaWNCbG9j
ayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGluQm91bmRzLCBib3hQYXRoKTsKKyAgICAgICAg
ICAgIExWYWx1ZSBtYXNrZWRJbmRleCA9IHByZWNpc2VJbmRleE1hc2szMihpbmRleCwgaW5kZXgs
IG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3B1Ymxp
Y0xlbmd0aCkpOwogICAgICAgICAgICAgTFZhbHVlIGRvdWJsZVZhbHVlID0gbV9vdXQubG9hZERv
dWJsZSgKLSAgICAgICAgICAgICAgICBtYXNrZWRJbmRleChoZWFwLCBzdG9yYWdlLCBpbmRleCwg
YmFzZSwgbV9ub2RlLT5jaGlsZDIoKSkpOworICAgICAgICAgICAgICAgIGJhc2VJbmRleChoZWFw
LCBzdG9yYWdlLCBtYXNrZWRJbmRleCwgbV9ub2RlLT5jaGlsZDIoKSkpOwogICAgICAgICAgICAg
bV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgIG1fb3V0LmRvdWJsZU5vdEVxdWFsT3JVbm9y
ZGVyZWQoZG91YmxlVmFsdWUsIGRvdWJsZVZhbHVlKSwKICAgICAgICAgICAgICAgICByYXJlbHko
c2xvd0Nhc2UpLCB1c3VhbGx5KGJveFBhdGgpKTsKQEAgLTE1MTEyLDEzICsxNTExNSwxNCBAQCBw
cml2YXRlOgogICAgIAogICAgIExWYWx1ZSBwcmVjaXNlSW5kZXhNYXNrNjQoTFZhbHVlIHZhbHVl
LCBMVmFsdWUgaW5kZXgsIExWYWx1ZSBsaW1pdCkKICAgICB7CisgICAgICAgIExWYWx1ZSBtYXNr
ID0gbV9vdXQuYVNocigKKyAgICAgICAgICAgIG1fb3V0LnN1YigKKyAgICAgICAgICAgICAgICBp
bmRleCwKKyAgICAgICAgICAgICAgICBtX291dC5vcGFxdWUobGltaXQpKSwKKyAgICAgICAgICAg
IG1fb3V0LmNvbnN0SW50MzIoNjMpKTsKICAgICAgICAgcmV0dXJuIG1fb3V0LmJpdEFuZCgKICAg
ICAgICAgICAgIHZhbHVlLAotICAgICAgICAgICAgbV9vdXQuYVNocigKLSAgICAgICAgICAgICAg
ICBtX291dC5zdWIoCi0gICAgICAgICAgICAgICAgICAgIGluZGV4LAotICAgICAgICAgICAgICAg
ICAgICBtX291dC5vcGFxdWUobGltaXQpKSwKLSAgICAgICAgICAgICAgICBtX291dC5jb25zdElu
dDMyKDYzKSkpOworICAgICAgICAgICAgdmFsdWUtPnR5cGUoKSA9PSBJbnQzMiA/IG1fb3V0LmNh
c3RUb0ludDMyKG1hc2spIDogbWFzayk7CiAgICAgfQogICAgIAogICAgIExWYWx1ZSBwcmVjaXNl
SW5kZXhNYXNrMzIoTFZhbHVlIHZhbHVlLCBMVmFsdWUgaW5kZXgsIExWYWx1ZSBsaW1pdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKaW5kZXgg
NDBjNjI1OGU0NGFlYmRjNDFjMzc5OWUyNzY2NWU5ZmEyZmI4NTM5Yi4uMWE4YjlhNjAyMmQ1NDI1
NGM4YTA1OTJhMzVlYTk4MmI0YjI2ZDc5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCB2b2lkIEVycm9y
SW5zdGFuY2U6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgVk0mIHZtLCBjb25zdCBT
dHJpbmcmIG1lc3NhZwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxTdGFja0ZyYW1lPj4g
c3RhY2tUcmFjZSA9IGdldFN0YWNrVHJhY2UoZXhlYywgdm0sIHRoaXMsIHVzZUN1cnJlbnRGcmFt
ZSk7CiAgICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKCp0aGlzKTsKKyAgICAg
ICAgYXV0byBsb2NrZXIgPSBob2xkSlNDZWxsTG9jaygpOwogICAgICAgICBtX3N0YWNrVHJhY2Ug
PSBXVEZNb3ZlKHN0YWNrVHJhY2UpOwogICAgIH0KICAgICB2bS5oZWFwLndyaXRlQmFycmllcih0
aGlzKTsKQEAgLTIwOSw3ICsyMDksNyBAQCBib29sIEVycm9ySW5zdGFuY2U6Om1hdGVyaWFsaXpl
RXJyb3JJbmZvSWZOZWVkZWQoVk0mIHZtKQogICAgIAogICAgIGFkZEVycm9ySW5mbyh2bSwgbV9z
dGFja1RyYWNlLmdldCgpLCB0aGlzKTsKICAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2soKnRoaXMpOworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRKU0NlbGxMb2NrKCk7CiAg
ICAgICAgIG1fc3RhY2tUcmFjZSA9IG51bGxwdHI7CiAgICAgfQogICAgIApAQCAtMjM0LDcgKzIz
NCw3IEBAIHZvaWQgRXJyb3JJbnN0YW5jZTo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwg
dmlzaXRvcik7CiAKICAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soKnRoaXNP
YmplY3QpOworICAgICAgICBhdXRvIGxvY2tlciA9IHRoaXNPYmplY3QtPmhvbGRKU0NlbGxMb2Nr
KCk7CiAgICAgICAgIGlmICh0aGlzT2JqZWN0LT5tX3N0YWNrVHJhY2UpIHsKICAgICAgICAgICAg
IGZvciAoU3RhY2tGcmFtZSYgZnJhbWUgOiAqdGhpc09iamVjdC0+bV9zdGFja1RyYWNlKQogICAg
ICAgICAgICAgICAgIGZyYW1lLnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCmluZGV4IDg4NGIwYTJjMTQ5NmE4Y2ZhMjVhY2Y1
ZTBhMzBhOWY4OGNkYWQxMTEuLmE4ZmZjZDg1ZGRlNmRiZDRmNTI2ZjY2NjU0MmU0MjNkMzk5NDc4
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCkBAIC04MDIs
NyArODAyLDcgQEAgYm9vbCBKU0FycmF5OjpzaGlmdENvdW50V2l0aEFycmF5U3RvcmFnZShWTSYg
dm0sIHVuc2lnbmVkIHN0YXJ0SW5kZXgsIHVuc2lnbmVkIGMKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgCiAgICAgRGlzYWxsb3dHQyBkaXNhbGxvd0dDOwotICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2soKnRoaXMpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZEpTQ2VsbExvY2soKTsKICAgICAK
ICAgICBpZiAoc3RhcnRJbmRleCArIGNvdW50ID4gdmVjdG9yTGVuZ3RoKQogICAgICAgICBjb3Vu
dCA9IHZlY3Rvckxlbmd0aCAtIHN0YXJ0SW5kZXg7CkBAIC0xMDA1LDcgKzEwMDUsNyBAQCBib29s
IEpTQXJyYXk6OnVuc2hpZnRDb3VudFdpdGhBcnJheVN0b3JhZ2UoRXhlY1N0YXRlKiBleGVjLCB1
bnNpZ25lZCBzdGFydEluZGV4LAogICAgIC8vIE5lZWQgdG8gaGF2ZSBHQyBkZWZlcnJlZCBhcm91
bmQgdGhlIHVuc2hpZnRDb3VudFNsb3dDYXNlKCksIHNpbmNlIHRoYXQgbGVhdmVzIHRoZSBidXR0
ZXJmbHkgaW4KICAgICAvLyBhIHdlaXJkIHN0YXRlOiBzb21lIHBhcnRzIG9mIGl0IHdpbGwgYmUg
bGVmdCB1bmluaXRpYWxpemVkLCB3aGljaCB3ZSB3aWxsIGZpbGwgaW4gaGVyZS4KICAgICBEZWZl
ckdDIGRlZmVyR0Modm0uaGVhcCk7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqdGhpcyk7
CisgICAgYXV0byBsb2NrZXIgPSBob2xkSlNDZWxsTG9jaygpOwogICAgIAogICAgIGlmIChtb3Zl
RnJvbnQgJiYgc3RvcmFnZS0+bV9pbmRleEJpYXMgPj0gY291bnQpIHsKICAgICAgICAgQnV0dGVy
Zmx5KiBuZXdCdXR0ZXJmbHkgPSBzdG9yYWdlLT5idXR0ZXJmbHkoKS0+dW5zaGlmdChzdHJ1Y3R1
cmUoKSwgY291bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRleCA0
ZGE3N2FiZGI0OTUwNjUyZmQ1MzQ5NDJhMmJiNjUxMDJkYTAwYzE0Li41NzAwOTAyMmM3NDgwZTUx
NjZlMzgwNzczNmY3NGFhNDE2MmNkOTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NlbGwuaApAQCAtMjcwLDYgKzI3MCw4IEBAIHByb3RlY3RlZDoKICAgICBKU19FWFBPUlRfUFJJ
VkFURSBzdGF0aWMgQXJyYXlCdWZmZXIqIHNsb3dEb3duQW5kV2FzdGVNZW1vcnkoSlNBcnJheUJ1
ZmZlclZpZXcqKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmUHRyPEFycmF5QnVm
ZmVyVmlldz4gZ2V0VHlwZWRBcnJheUltcGwoSlNBcnJheUJ1ZmZlclZpZXcqKTsKIAorICAgIExv
Y2tlcjxKU0NlbGw+IGhvbGRKU0NlbGxMb2NrKCkgeyByZXR1cm4gaG9sZExvY2soKnRoaXMpOyB9
CisKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IDVhNGU3Zjkz
ZjZjN2U4YzNjOWJiZjFiZjk2ZjcxNzQ5ZGQzZjY2NTcuLjdlZDg1NTIxM2FmMjM1YWMzNjBhYWIz
N2Q5OTJjNzBmYTAzYTViNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5jcHAKQEAgLTM5MSw3ICszOTEsNyBAQCBBTFdBWVNfSU5MSU5FIFN0cnVjdHVyZSogSlNP
YmplY3Q6OnZpc2l0QnV0dGVyZmx5SW1wbChTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICAgICAg
Ly8gdGhhdCBjYW4gaGFwcGVuIHdoZW4gdGhlIGJ1dHRlcmZseSBpcyB1c2VkIGZvciBhcnJheSBz
dG9yYWdlLiBXZSBjb25zZXJ2YXRpdmVseQogICAgICAgICAvLyBhc3N1bWUgdGhhdCBhIGNvbnRp
Z3VvdXMgYnV0dGVyZmx5IG1heSB0cmFuc2Zvcm0gaW50byBhbiBhcnJheSBzdG9yYWdlIG9uZSwg
dGhvdWdoCiAgICAgICAgIC8vIHRoaXMgaXMgcHJvYmFibHkgbW9yZSBjb25zZXJ2YXRpdmUgdGhh
biBuZWNlc3NhcnkuCi0gICAgICAgIGxvY2tlciA9IExvY2tlcjxKU0NlbGw+KCp0aGlzKTsKKyAg
ICAgICAgbG9ja2VyID0gaG9sZEpTQ2VsbExvY2soKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgYnJlYWs7CkBAIC0xMzU4LDcgKzEzNTgsNyBAQCBBcnJheVN0b3JhZ2Uq
IEpTT2JqZWN0Ojpjb252ZXJ0Q29udGlndW91c1RvQXJyYXlTdG9yYWdlKFZNJiB2bSwgTm9uUHJv
cGVydHlUcmFucwogICAgIC8vIEZvcnR1bmF0ZWx5LCB3ZSBoYXZlIHRoZSBKU0NlbGwgbG9jayBm
b3IgdGhpcyBwdXJwb3NlIQogICAgIAogICAgIGlmICh2bS5oZWFwLm11dGF0b3JTaG91bGRCZUZl
bmNlZCgpKSB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soKnRoaXMpOworICAgICAg
ICBhdXRvIGxvY2tlciA9IGhvbGRKU0NlbGxMb2NrKCk7CiAgICAgICAgIG1fYnV0dGVyZmx5SW5k
ZXhpbmdNYXNrID0gbmV3U3RvcmFnZS0+YnV0dGVyZmx5KCktPmNvbXB1dGVJbmRleGluZ01hc2so
KTsKICAgICAgICAgc2V0U3RydWN0dXJlSUREaXJlY3RseShudWtlKHN0cnVjdHVyZUlEKCkpKTsK
ICAgICAgICAgV1RGOjpzdG9yZVN0b3JlRmVuY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwCmluZGV4
IDgyYmIwZGMzM2Q4YTc1MTAyNjM2NDIwYmNjOTEyNDA1ZjNhMWIwZGIuLjBlMWIwM2MzZDExNDhk
ZWVlODAyMmE2M2NlMGM0N2EwZmEwNzQ5ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcApAQCAtODks
NyArODksNyBAQCB2b2lkIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6dmlzaXRDaGlsZHJlbihK
U0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEJhc2U6OnZpc2l0Q2hp
bGRyZW4oY2VsbCwgdmlzaXRvcik7CiAgICAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiB0aGlz
T2JqZWN0ID0ganNDYXN0PEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcio+KGNlbGwpOwotICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2soKnRoaXNPYmplY3QpOworICAgIGF1dG8gbG9ja2VyID0gdGhp
c09iamVjdC0+aG9sZEpTQ2VsbExvY2soKTsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6
IHRoaXNPYmplY3QtPm1fcHJvcGVydHlOYW1lcykKICAgICAgICAgdmlzaXRvci5hcHBlbmQocHJv
cGVydHlOYW1lKTsKICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX3Byb3RvdHlwZUNo
YWluKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NwYXJzZUFy
cmF5VmFsdWVNYXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3BhcnNlQXJy
YXlWYWx1ZU1hcC5jcHAKaW5kZXggMjQ3YzA3YzJiMDc0MzUzODVjMzU5MTMwZDAyMGY3NWRmZWE2
NmYyZi4uMDhkZTQwODNhMGNhNzEzMDE2OTk4MjI2NDBlYjIyNDFmOThmZWZlZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5j
cHAKQEAgLTc3LDcgKzc3LDcgQEAgU3BhcnNlQXJyYXlWYWx1ZU1hcDo6QWRkUmVzdWx0IFNwYXJz
ZUFycmF5VmFsdWVNYXA6OmFkZChKU09iamVjdCogYXJyYXksIHVuc2lnbmUKICAgICBBZGRSZXN1
bHQgcmVzdWx0OwogICAgIHNpemVfdCBjYXBhY2l0eTsKICAgICB7Ci0gICAgICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2soKnRoaXMpOworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRKU0NlbGxM
b2NrKCk7CiAgICAgICAgIFNwYXJzZUFycmF5RW50cnkgZW50cnk7CiAgICAgICAgIGVudHJ5LnNl
dFdpdGhvdXRXcml0ZUJhcnJpZXIoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIApAQCAtOTUsMTMg
Kzk1LDEzIEBAIFNwYXJzZUFycmF5VmFsdWVNYXA6OkFkZFJlc3VsdCBTcGFyc2VBcnJheVZhbHVl
TWFwOjphZGQoSlNPYmplY3QqIGFycmF5LCB1bnNpZ25lCiAKIHZvaWQgU3BhcnNlQXJyYXlWYWx1
ZU1hcDo6cmVtb3ZlKGl0ZXJhdG9yIGl0KQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
KnRoaXMpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZEpTQ2VsbExvY2soKTsKICAgICBtX21hcC5y
ZW1vdmUoaXQpOwogfQogCiB2b2lkIFNwYXJzZUFycmF5VmFsdWVNYXA6OnJlbW92ZSh1bnNpZ25l
ZCBpKQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soKnRoaXMpOworICAgIGF1dG8gbG9j
a2VyID0gaG9sZEpTQ2VsbExvY2soKTsKICAgICBtX21hcC5yZW1vdmUoaSk7CiB9CiAKQEAgLTE5
OSw3ICsxOTksNyBAQCB2b2lkIFNwYXJzZUFycmF5VmFsdWVNYXA6OnZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiB0aGlzT2JqZWN0LCBTbG90VmlzaXRvciYgdmlzaXRvcgogICAgIEJhc2U6OnZpc2l0Q2hp
bGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7CiAgICAgCiAgICAgU3BhcnNlQXJyYXlWYWx1ZU1h
cCogdGhpc01hcCA9IGpzQ2FzdDxTcGFyc2VBcnJheVZhbHVlTWFwKj4odGhpc09iamVjdCk7Ci0g
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqdGhpc01hcCk7CisgICAgYXV0byBsb2NrZXIgPSB0
aGlzTWFwLT5ob2xkSlNDZWxsTG9jaygpOwogICAgIGl0ZXJhdG9yIGVuZCA9IHRoaXNNYXAtPm1f
bWFwLmVuZCgpOwogICAgIGZvciAoaXRlcmF0b3IgaXQgPSB0aGlzTWFwLT5tX21hcC5iZWdpbigp
OyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgIHZpc2l0b3IuYXBwZW5kKGl0LT52YWx1ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332762</attachid>
            <date>2018-01-31 08:15:46 -0800</date>
            <delta_ts>2018-01-31 08:16:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182320-20180131081545.patch</filename>
            <type>text/plain</type>
            <size>15424</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3NjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MmJhMjk4MjI2N2Q5ZDNkMmVkYjE1MzBmZWI4NjJhZTNjM2ZlZjg0Li44M2ZjODE4ODRiNzRjMWYw
ZTI1YmEwNTI2NjQ2ODk0NzRmZDA1NGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAxOC0wMS0zMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBDYW5vbmljYWxpemUgYXF1aXJpbmcgdGhlIEpTQ2VsbCBsb2NrLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyMzIwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQncyBjdXJy
ZW50bHkga2luZGEgYW5ub3lpbmcgdG8gZmlndXJlIG91dCB3aGVyZQorICAgICAgICB3ZSBhcXVp
cmUgdGhlIGEgSlNDZWxsJ3MgbG9jay4gVGhpcyBwYXRjaCBhZGRzIGEKKyAgICAgICAgaGVscGVy
IHRvIG1ha2UgaXQgZWFzaWVyIHRvIGdyZXAuLi4KKworICAgICAgICAqIGJ5dGVjb2RlL1VubGlu
a2VkQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2RlQmxvY2s6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpVbmxpbmtlZENvZGVCbG9jazo6c2V0SW5zdHJ1Y3Rp
b25zKToKKyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2RlQmxvY2s6OnNocmlua1RvRml0KToKKyAg
ICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9CMzo6Y29tcGlsZUdldEJ5VmFsKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9CMzo6cHJlY2lzZUluZGV4TWFzazY0KToKKyAgICAgICAgKiBydW50aW1lL0Vy
cm9ySW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpmaW5pc2hDcmVh
dGlvbik6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6Om1hdGVyaWFsaXplRXJyb3JJbmZv
SWZOZWVkZWQpOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjp2aXNpdENoaWxkcmVuKToK
KyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0FycmF5Ojpz
aGlmdENvdW50V2l0aEFycmF5U3RvcmFnZSk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnVuc2hp
ZnRDb3VudFdpdGhBcnJheVN0b3JhZ2UpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6Cisg
ICAgICAgIChKU0M6OkpTQ2VsbDo6aG9sZEpTQ2VsbExvY2spOgorICAgICAgICAqIHJ1bnRpbWUv
SlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6dmlzaXRCdXR0ZXJmbHlJbXBs
KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmNvbnZlcnRDb250aWd1b3VzVG9BcnJheVN0b3Jh
Z2UpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjp2aXNpdENoaWxkcmVuKToKKyAg
ICAgICAgKiBydW50aW1lL1NwYXJzZUFycmF5VmFsdWVNYXAuY3BwOgorICAgICAgICAoSlNDOjpT
cGFyc2VBcnJheVZhbHVlTWFwOjphZGQpOgorICAgICAgICAoSlNDOjpTcGFyc2VBcnJheVZhbHVl
TWFwOjpyZW1vdmUpOgorICAgICAgICAoSlNDOjpTcGFyc2VBcnJheVZhbHVlTWFwOjp2aXNpdENo
aWxkcmVuKToKKwogMjAxOC0wMS0yNSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgR2FyZGVuaW5nOiBmaXggMzItYml0IGJ1aWxkIGFmdGVyIHIyMjc2NDMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2su
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNw
cAppbmRleCA3MWYxY2E1NzY4NzhjMWVlZTlmM2E3ZjJhNTIxMGUzNjc0MTA4OTQ2Li4xZjg3YTZj
ZTBkMTBlY2ZhYjYzMDc5OGUyNjIyZTdiMjk5M2ZjZTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAKQEAgLTk0LDcgKzk0
LDcgQEAgdm9pZCBVbmxpbmtlZENvZGVCbG9jazo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGws
IFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIFVubGlua2VkQ29kZUJsb2NrKiB0aGlzT2JqZWN0
ID0ganNDYXN0PFVubGlua2VkQ29kZUJsb2NrKj4oY2VsbCk7CiAgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4o
dGhpc09iamVjdCwgdmlzaXRvcik7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqdGhpc09i
amVjdCk7CisgICAgYXV0byBsb2NrZXIgPSB0aGlzT2JqZWN0LT5ob2xkSlNDZWxsTG9jaygpOwog
ICAgIGZvciAoRnVuY3Rpb25FeHByZXNzaW9uVmVjdG9yOjppdGVyYXRvciBwdHIgPSB0aGlzT2Jq
ZWN0LT5tX2Z1bmN0aW9uRGVjbHMuYmVnaW4oKSwgZW5kID0gdGhpc09iamVjdC0+bV9mdW5jdGlv
bkRlY2xzLmVuZCgpOyBwdHIgIT0gZW5kOyArK3B0cikKICAgICAgICAgdmlzaXRvci5hcHBlbmQo
KnB0cik7CiAgICAgZm9yIChGdW5jdGlvbkV4cHJlc3Npb25WZWN0b3I6Oml0ZXJhdG9yIHB0ciA9
IHRoaXNPYmplY3QtPm1fZnVuY3Rpb25FeHBycy5iZWdpbigpLCBlbmQgPSB0aGlzT2JqZWN0LT5t
X2Z1bmN0aW9uRXhwcnMuZW5kKCk7IHB0ciAhPSBlbmQ7ICsrcHRyKQpAQCAtMzE3LDcgKzMxNyw3
IEBAIHZvaWQgVW5saW5rZWRDb2RlQmxvY2s6OnNldEluc3RydWN0aW9ucyhzdGQ6OnVuaXF1ZV9w
dHI8VW5saW5rZWRJbnN0cnVjdGlvblN0cmVhCiB7CiAgICAgQVNTRVJUKGluc3RydWN0aW9ucyk7
CiAgICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKCp0aGlzKTsKKyAgICAgICAg
YXV0byBsb2NrZXIgPSBob2xkSlNDZWxsTG9jaygpOwogICAgICAgICBtX3VubGlua2VkSW5zdHJ1
Y3Rpb25zID0gV1RGTW92ZShpbnN0cnVjdGlvbnMpOwogICAgIH0KICAgICBIZWFwOjpoZWFwKHRo
aXMpLT5yZXBvcnRFeHRyYU1lbW9yeUFsbG9jYXRlZChtX3VubGlua2VkSW5zdHJ1Y3Rpb25zLT5z
aXplSW5CeXRlcygpKTsKQEAgLTM5Miw3ICszOTIsNyBAQCB2b2lkIFVubGlua2VkQ29kZUJsb2Nr
OjphcHBseU1vZGlmaWNhdGlvbihCeXRlY29kZVJld3JpdGVyJiByZXdyaXRlciwgVW5wYWNrZWRJ
bgogCiB2b2lkIFVubGlua2VkQ29kZUJsb2NrOjpzaHJpbmtUb0ZpdCgpCiB7Ci0gICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jaygqdGhpcyk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkSlNDZWxsTG9j
aygpOwogICAgIAogICAgIG1fanVtcFRhcmdldHMuc2hyaW5rVG9GaXQoKTsKICAgICBtX2lkZW50
aWZpZXJzLnNocmlua1RvRml0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAKaW5kZXggZDdmNGI4NzBkZmFjNWYxOGRlNWI2OWNkZWJiNDA3Y2FlYWM0
ZDAxMy4uZmRkNGRlZTNjOGMzOGEzODQ2MzUyYTc2MWYzZjY3YmFiMmIzOWVkOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMzY3MCwxMSAr
MzY3MCwxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAgSW5kZXhlZEFic3RyYWN0SGVhcCYgaGVh
cCA9IG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpID09IEFycmF5OjpJbnQzMiA/CiAgICAgICAg
ICAgICAgICAgbV9oZWFwcy5pbmRleGVkSW50MzJQcm9wZXJ0aWVzIDogbV9oZWFwcy5pbmRleGVk
Q29udGlndW91c1Byb3BlcnRpZXM7CiAKLSAgICAgICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2Vs
bChtX25vZGUtPmNoaWxkMSgpKTsKLQogICAgICAgICAgICAgaWYgKG1fbm9kZS0+YXJyYXlNb2Rl
KCkuaXNJbkJvdW5kcygpKSB7Ci0gICAgICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0
LmxvYWQ2NChtYXNrZWRJbmRleChoZWFwLCBzdG9yYWdlLCBpbmRleCwgYmFzZSwgbV9ub2RlLT5j
aGlsZDIoKSkpOworICAgICAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBtX291dC5sb2FkNjQo
YmFzZUluZGV4KGhlYXAsIHN0b3JhZ2UsIGluZGV4LCBtX25vZGUtPmNoaWxkMigpKSk7CiAgICAg
ICAgICAgICAgICAgTFZhbHVlIGlzSG9sZSA9IG1fb3V0LmlzWmVybzY0KHJlc3VsdCk7CisgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gcHJlY2lzZUluZGV4TWFzazMyKHJlc3VsdCwgaW5kZXgsIG1f
b3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xl
bmd0aCkpOwogICAgICAgICAgICAgICAgIGlmIChtX25vZGUtPmFycmF5TW9kZSgpLmlzU2FuZUNo
YWluKCkpIHsKICAgICAgICAgICAgICAgICAgICAgREZHX0FTU0VSVCgKICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fZ3JhcGgsIG1fbm9kZSwgbV9ub2RlLT5hcnJheU1vZGUoKS50eXBlKCkgPT0g
QXJyYXk6OkNvbnRpZ3VvdXMpOwpAQCAtMzY4NSw2ICszNjg0LDggQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICBzZXRKU1ZhbHVlKHJlc3VsdCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ub2Rl
LT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGZhc3RD
YXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dDYXNl
ID0gbV9vdXQubmV3QmxvY2soKTsKQEAgLTM2OTcsOCArMzY5OCwxMCBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVu
ZFRvKGZhc3RDYXNlLCBzbG93Q2FzZSk7CiAKLSAgICAgICAgICAgIExWYWx1ZSBmYXN0UmVzdWx0
VmFsdWUgPSBtX291dC5sb2FkNjQobWFza2VkSW5kZXgoaGVhcCwgc3RvcmFnZSwgaW5kZXgsIGJh
c2UsIG1fbm9kZS0+Y2hpbGQyKCkpKTsKKyAgICAgICAgICAgIExWYWx1ZSBmYXN0UmVzdWx0VmFs
dWUgPSBtX291dC5sb2FkNjQoYmFzZUluZGV4KGhlYXAsIHN0b3JhZ2UsIGluZGV4LCBtX25vZGUt
PmNoaWxkMigpKSk7CisgICAgICAgICAgICBmYXN0UmVzdWx0VmFsdWUgPSBwcmVjaXNlSW5kZXhN
YXNrMzIoZmFzdFJlc3VsdFZhbHVlLCBpbmRleCwgbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoc3Rv
cmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKSk7CiAgICAgICAgICAgICBWYWx1
ZUZyb21CbG9jayBmYXN0UmVzdWx0ID0gbV9vdXQuYW5jaG9yKGZhc3RSZXN1bHRWYWx1ZSk7CisK
ICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICBtX291dC5pc1plcm82
NChmYXN0UmVzdWx0VmFsdWUpLCByYXJlbHkoc2xvd0Nhc2UpLCB1c3VhbGx5KGNvbnRpbnVhdGlv
bikpOwogICAgICAgICAgICAgCkBAIC0zNzEzLDE2ICszNzE2LDE0IEBAIHByaXZhdGU6CiAgICAg
ICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEFycmF5OjpEb3VibGU6IHsKLSAgICAg
ICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAg
ICAgIExWYWx1ZSBpbmRleCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAg
ICAgTFZhbHVlIHN0b3JhZ2UgPSBsb3dTdG9yYWdlKG1fbm9kZS0+Y2hpbGQzKCkpOwogICAgICAg
ICAgICAgCiAgICAgICAgICAgICBJbmRleGVkQWJzdHJhY3RIZWFwJiBoZWFwID0gbV9oZWFwcy5p
bmRleGVkRG91YmxlUHJvcGVydGllczsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKG1f
bm9kZS0+YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygpKSB7Ci0gICAgICAgICAgICAgICAgTFZhbHVl
IHJlc3VsdCA9IG1fb3V0LmxvYWREb3VibGUoCi0gICAgICAgICAgICAgICAgICAgIG1hc2tlZElu
ZGV4KGhlYXAsIHN0b3JhZ2UsIGluZGV4LCBiYXNlLCBtX25vZGUtPmNoaWxkMigpKSk7Ci0gICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaW5kZXggPSBwcmVjaXNlSW5kZXhNYXNrMzIo
aW5kZXgsIGluZGV4LCBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShzdG9yYWdlLCBtX2hlYXBzLkJ1
dHRlcmZseV9wdWJsaWNMZW5ndGgpKTsKKyAgICAgICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0g
bV9vdXQubG9hZERvdWJsZShiYXNlSW5kZXgoaGVhcCwgc3RvcmFnZSwgaW5kZXgsIG1fbm9kZS0+
Y2hpbGQyKCkpKTsKICAgICAgICAgICAgICAgICBpZiAoIW1fbm9kZS0+YXJyYXlNb2RlKCkuaXNT
YW5lQ2hhaW4oKSkgewogICAgICAgICAgICAgICAgICAgICBzcGVjdWxhdGUoCiAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2FkRnJvbUhvbGUsIG5vVmFsdWUoKSwgMCwKQEAgLTM3MzEsNiArMzcz
Miw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgc2V0RG91YmxlKHJlc3VsdCk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBMVmFsdWUgYmFz
ZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CiAKICAgICAgICAgICAgIExCYXNpY0Jsb2Nr
IGluQm91bmRzID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGJv
eFBhdGggPSBtX291dC5uZXdCbG9jaygpOwpAQCAtMzc0MSwxMCArMzc0MywxMSBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbCgKICAgICAgICAgICAgICAgICAg
ICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVy
Zmx5X3B1YmxpY0xlbmd0aCkpLAogICAgICAgICAgICAgICAgIHJhcmVseShzbG93Q2FzZSksIHVz
dWFsbHkoaW5Cb3VuZHMpKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBMQmFzaWNCbG9j
ayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGluQm91bmRzLCBib3hQYXRoKTsKKyAgICAgICAg
ICAgIExWYWx1ZSBtYXNrZWRJbmRleCA9IHByZWNpc2VJbmRleE1hc2szMihpbmRleCwgaW5kZXgs
IG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3B1Ymxp
Y0xlbmd0aCkpOwogICAgICAgICAgICAgTFZhbHVlIGRvdWJsZVZhbHVlID0gbV9vdXQubG9hZERv
dWJsZSgKLSAgICAgICAgICAgICAgICBtYXNrZWRJbmRleChoZWFwLCBzdG9yYWdlLCBpbmRleCwg
YmFzZSwgbV9ub2RlLT5jaGlsZDIoKSkpOworICAgICAgICAgICAgICAgIGJhc2VJbmRleChoZWFw
LCBzdG9yYWdlLCBtYXNrZWRJbmRleCwgbV9ub2RlLT5jaGlsZDIoKSkpOwogICAgICAgICAgICAg
bV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgIG1fb3V0LmRvdWJsZU5vdEVxdWFsT3JVbm9y
ZGVyZWQoZG91YmxlVmFsdWUsIGRvdWJsZVZhbHVlKSwKICAgICAgICAgICAgICAgICByYXJlbHko
c2xvd0Nhc2UpLCB1c3VhbGx5KGJveFBhdGgpKTsKQEAgLTE1MTEyLDEzICsxNTExNSwxNCBAQCBw
cml2YXRlOgogICAgIAogICAgIExWYWx1ZSBwcmVjaXNlSW5kZXhNYXNrNjQoTFZhbHVlIHZhbHVl
LCBMVmFsdWUgaW5kZXgsIExWYWx1ZSBsaW1pdCkKICAgICB7CisgICAgICAgIExWYWx1ZSBtYXNr
ID0gbV9vdXQuYVNocigKKyAgICAgICAgICAgIG1fb3V0LnN1YigKKyAgICAgICAgICAgICAgICBp
bmRleCwKKyAgICAgICAgICAgICAgICBtX291dC5vcGFxdWUobGltaXQpKSwKKyAgICAgICAgICAg
IG1fb3V0LmNvbnN0SW50MzIoNjMpKTsKICAgICAgICAgcmV0dXJuIG1fb3V0LmJpdEFuZCgKICAg
ICAgICAgICAgIHZhbHVlLAotICAgICAgICAgICAgbV9vdXQuYVNocigKLSAgICAgICAgICAgICAg
ICBtX291dC5zdWIoCi0gICAgICAgICAgICAgICAgICAgIGluZGV4LAotICAgICAgICAgICAgICAg
ICAgICBtX291dC5vcGFxdWUobGltaXQpKSwKLSAgICAgICAgICAgICAgICBtX291dC5jb25zdElu
dDMyKDYzKSkpOworICAgICAgICAgICAgdmFsdWUtPnR5cGUoKSA9PSBJbnQzMiA/IG1fb3V0LmNh
c3RUb0ludDMyKG1hc2spIDogbWFzayk7CiAgICAgfQogICAgIAogICAgIExWYWx1ZSBwcmVjaXNl
SW5kZXhNYXNrMzIoTFZhbHVlIHZhbHVlLCBMVmFsdWUgaW5kZXgsIExWYWx1ZSBsaW1pdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKaW5kZXgg
NDBjNjI1OGU0NGFlYmRjNDFjMzc5OWUyNzY2NWU5ZmEyZmI4NTM5Yi4uMWE4YjlhNjAyMmQ1NDI1
NGM4YTA1OTJhMzVlYTk4MmI0YjI2ZDc5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCB2b2lkIEVycm9y
SW5zdGFuY2U6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgVk0mIHZtLCBjb25zdCBT
dHJpbmcmIG1lc3NhZwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxTdGFja0ZyYW1lPj4g
c3RhY2tUcmFjZSA9IGdldFN0YWNrVHJhY2UoZXhlYywgdm0sIHRoaXMsIHVzZUN1cnJlbnRGcmFt
ZSk7CiAgICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKCp0aGlzKTsKKyAgICAg
ICAgYXV0byBsb2NrZXIgPSBob2xkSlNDZWxsTG9jaygpOwogICAgICAgICBtX3N0YWNrVHJhY2Ug
PSBXVEZNb3ZlKHN0YWNrVHJhY2UpOwogICAgIH0KICAgICB2bS5oZWFwLndyaXRlQmFycmllcih0
aGlzKTsKQEAgLTIwOSw3ICsyMDksNyBAQCBib29sIEVycm9ySW5zdGFuY2U6Om1hdGVyaWFsaXpl
RXJyb3JJbmZvSWZOZWVkZWQoVk0mIHZtKQogICAgIAogICAgIGFkZEVycm9ySW5mbyh2bSwgbV9z
dGFja1RyYWNlLmdldCgpLCB0aGlzKTsKICAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2soKnRoaXMpOworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRKU0NlbGxMb2NrKCk7CiAg
ICAgICAgIG1fc3RhY2tUcmFjZSA9IG51bGxwdHI7CiAgICAgfQogICAgIApAQCAtMjM0LDcgKzIz
NCw3IEBAIHZvaWQgRXJyb3JJbnN0YW5jZTo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwg
dmlzaXRvcik7CiAKICAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soKnRoaXNP
YmplY3QpOworICAgICAgICBhdXRvIGxvY2tlciA9IHRoaXNPYmplY3QtPmhvbGRKU0NlbGxMb2Nr
KCk7CiAgICAgICAgIGlmICh0aGlzT2JqZWN0LT5tX3N0YWNrVHJhY2UpIHsKICAgICAgICAgICAg
IGZvciAoU3RhY2tGcmFtZSYgZnJhbWUgOiAqdGhpc09iamVjdC0+bV9zdGFja1RyYWNlKQogICAg
ICAgICAgICAgICAgIGZyYW1lLnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCmluZGV4IDg4NGIwYTJjMTQ5NmE4Y2ZhMjVhY2Y1
ZTBhMzBhOWY4OGNkYWQxMTEuLmE4ZmZjZDg1ZGRlNmRiZDRmNTI2ZjY2NjU0MmU0MjNkMzk5NDc4
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCkBAIC04MDIs
NyArODAyLDcgQEAgYm9vbCBKU0FycmF5OjpzaGlmdENvdW50V2l0aEFycmF5U3RvcmFnZShWTSYg
dm0sIHVuc2lnbmVkIHN0YXJ0SW5kZXgsIHVuc2lnbmVkIGMKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgCiAgICAgRGlzYWxsb3dHQyBkaXNhbGxvd0dDOwotICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2soKnRoaXMpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZEpTQ2VsbExvY2soKTsKICAgICAK
ICAgICBpZiAoc3RhcnRJbmRleCArIGNvdW50ID4gdmVjdG9yTGVuZ3RoKQogICAgICAgICBjb3Vu
dCA9IHZlY3Rvckxlbmd0aCAtIHN0YXJ0SW5kZXg7CkBAIC0xMDA1LDcgKzEwMDUsNyBAQCBib29s
IEpTQXJyYXk6OnVuc2hpZnRDb3VudFdpdGhBcnJheVN0b3JhZ2UoRXhlY1N0YXRlKiBleGVjLCB1
bnNpZ25lZCBzdGFydEluZGV4LAogICAgIC8vIE5lZWQgdG8gaGF2ZSBHQyBkZWZlcnJlZCBhcm91
bmQgdGhlIHVuc2hpZnRDb3VudFNsb3dDYXNlKCksIHNpbmNlIHRoYXQgbGVhdmVzIHRoZSBidXR0
ZXJmbHkgaW4KICAgICAvLyBhIHdlaXJkIHN0YXRlOiBzb21lIHBhcnRzIG9mIGl0IHdpbGwgYmUg
bGVmdCB1bmluaXRpYWxpemVkLCB3aGljaCB3ZSB3aWxsIGZpbGwgaW4gaGVyZS4KICAgICBEZWZl
ckdDIGRlZmVyR0Modm0uaGVhcCk7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqdGhpcyk7
CisgICAgYXV0byBsb2NrZXIgPSBob2xkSlNDZWxsTG9jaygpOwogICAgIAogICAgIGlmIChtb3Zl
RnJvbnQgJiYgc3RvcmFnZS0+bV9pbmRleEJpYXMgPj0gY291bnQpIHsKICAgICAgICAgQnV0dGVy
Zmx5KiBuZXdCdXR0ZXJmbHkgPSBzdG9yYWdlLT5idXR0ZXJmbHkoKS0+dW5zaGlmdChzdHJ1Y3R1
cmUoKSwgY291bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRleCA0
ZGE3N2FiZGI0OTUwNjUyZmQ1MzQ5NDJhMmJiNjUxMDJkYTAwYzE0Li43ODkzOWNiNTNkYjAyYjlm
MjgxOTI0ZDhjMjhhNDJhM2JmNjJiMzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NlbGwuaApAQCAtMTIwLDYgKzEyMCwxMSBAQCBwdWJsaWM6CiAgICAgLy8gRWFjaCBjZWxsIGhh
cyBhIGJ1aWx0LWluIGxvY2suIEN1cnJlbnRseSBpdCdzIHNpbXBseSBhdmFpbGFibGUgZm9yIHVz
ZSBpZiB5b3UgbmVlZCBpdC4gSXQncwogICAgIC8vIGEgZnVsbC1ibG93biBXVEY6OkxvY2suIE5v
dGUgdGhhdCB0aGlzIGxvY2sgaXMgY3VycmVudGx5IHVzZWQgaW4gSlNBcnJheSBhbmQgdGhhdCBs
b2NrJ3MKICAgICAvLyBvcmRlcmluZyB3aXRoIHRoZSBTdHJ1Y3R1cmUgbG9jayBpcyB0aGF0IHRo
ZSBTdHJ1Y3R1cmUgbG9jayBtdXN0IGJlIGFjcXVpcmVkIGZpcnN0LgorCisgICAgLy8gSXQncyBh
bHNvIHJlY29tbWVuZGVkIHRoYXQgY2VsbHMgYXJlIGxvY2tlZCB3aXRoIHRoZSBob2xkSlNDZWxs
TG9jaygpIG1ldGhvZCB0byBoZWxwIGtlZXAKKyAgICAvLyB0cmFjayBvZiBhbGwgdGhlIHBsYWNl
cyB3aGVyZSB3ZSBsb2NrIGNlbGxzLgorICAgIExvY2tlcjxKU0NlbGw+IGhvbGRKU0NlbGxMb2Nr
KCkgeyByZXR1cm4gaG9sZExvY2soKnRoaXMpOyB9CisKICAgICB2b2lkIGxvY2soKTsKICAgICBi
b29sIHRyeUxvY2soKTsKICAgICB2b2lkIHVubG9jaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IDVhNGU3ZjkzZjZjN2U4YzNjOWJiZjFiZjk2Zjcx
NzQ5ZGQzZjY2NTcuLjdlZDg1NTIxM2FmMjM1YWMzNjBhYWIzN2Q5OTJjNzBmYTAzYTViNzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTM5MSw3ICsz
OTEsNyBAQCBBTFdBWVNfSU5MSU5FIFN0cnVjdHVyZSogSlNPYmplY3Q6OnZpc2l0QnV0dGVyZmx5
SW1wbChTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICAgICAgLy8gdGhhdCBjYW4gaGFwcGVuIHdo
ZW4gdGhlIGJ1dHRlcmZseSBpcyB1c2VkIGZvciBhcnJheSBzdG9yYWdlLiBXZSBjb25zZXJ2YXRp
dmVseQogICAgICAgICAvLyBhc3N1bWUgdGhhdCBhIGNvbnRpZ3VvdXMgYnV0dGVyZmx5IG1heSB0
cmFuc2Zvcm0gaW50byBhbiBhcnJheSBzdG9yYWdlIG9uZSwgdGhvdWdoCiAgICAgICAgIC8vIHRo
aXMgaXMgcHJvYmFibHkgbW9yZSBjb25zZXJ2YXRpdmUgdGhhbiBuZWNlc3NhcnkuCi0gICAgICAg
IGxvY2tlciA9IExvY2tlcjxKU0NlbGw+KCp0aGlzKTsKKyAgICAgICAgbG9ja2VyID0gaG9sZEpT
Q2VsbExvY2soKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7
CkBAIC0xMzU4LDcgKzEzNTgsNyBAQCBBcnJheVN0b3JhZ2UqIEpTT2JqZWN0Ojpjb252ZXJ0Q29u
dGlndW91c1RvQXJyYXlTdG9yYWdlKFZNJiB2bSwgTm9uUHJvcGVydHlUcmFucwogICAgIC8vIEZv
cnR1bmF0ZWx5LCB3ZSBoYXZlIHRoZSBKU0NlbGwgbG9jayBmb3IgdGhpcyBwdXJwb3NlIQogICAg
IAogICAgIGlmICh2bS5oZWFwLm11dGF0b3JTaG91bGRCZUZlbmNlZCgpKSB7Ci0gICAgICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2soKnRoaXMpOworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRK
U0NlbGxMb2NrKCk7CiAgICAgICAgIG1fYnV0dGVyZmx5SW5kZXhpbmdNYXNrID0gbmV3U3RvcmFn
ZS0+YnV0dGVyZmx5KCktPmNvbXB1dGVJbmRleGluZ01hc2soKTsKICAgICAgICAgc2V0U3RydWN0
dXJlSUREaXJlY3RseShudWtlKHN0cnVjdHVyZUlEKCkpKTsKICAgICAgICAgV1RGOjpzdG9yZVN0
b3JlRmVuY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
UHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwCmluZGV4IDgyYmIwZGMzM2Q4YTc1MTAyNjM2
NDIwYmNjOTEyNDA1ZjNhMWIwZGIuLjBlMWIwM2MzZDExNDhkZWVlODAyMmE2M2NlMGM0N2EwZmEw
NzQ5ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVy
dHlOYW1lRW51bWVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcApAQCAtODksNyArODksNyBAQCB2b2lkIEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvcjo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNp
dG9yJiB2aXNpdG9yKQogewogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4oY2VsbCwgdmlzaXRvcik7
CiAgICAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvcio+KGNlbGwpOwotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
KnRoaXNPYmplY3QpOworICAgIGF1dG8gbG9ja2VyID0gdGhpc09iamVjdC0+aG9sZEpTQ2VsbExv
Y2soKTsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6IHRoaXNPYmplY3QtPm1fcHJvcGVy
dHlOYW1lcykKICAgICAgICAgdmlzaXRvci5hcHBlbmQocHJvcGVydHlOYW1lKTsKICAgICB2aXNp
dG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX3Byb3RvdHlwZUNoYWluKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NwYXJzZUFycmF5VmFsdWVNYXAuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAKaW5kZXgg
MjQ3YzA3YzJiMDc0MzUzODVjMzU5MTMwZDAyMGY3NWRmZWE2NmYyZi4uMDhkZTQwODNhMGNhNzEz
MDE2OTk4MjI2NDBlYjIyNDFmOThmZWZlZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAKQEAgLTc3LDcgKzc3LDcgQEAg
U3BhcnNlQXJyYXlWYWx1ZU1hcDo6QWRkUmVzdWx0IFNwYXJzZUFycmF5VmFsdWVNYXA6OmFkZChK
U09iamVjdCogYXJyYXksIHVuc2lnbmUKICAgICBBZGRSZXN1bHQgcmVzdWx0OwogICAgIHNpemVf
dCBjYXBhY2l0eTsKICAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soKnRoaXMp
OworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRKU0NlbGxMb2NrKCk7CiAgICAgICAgIFNwYXJz
ZUFycmF5RW50cnkgZW50cnk7CiAgICAgICAgIGVudHJ5LnNldFdpdGhvdXRXcml0ZUJhcnJpZXIo
anNVbmRlZmluZWQoKSk7CiAgICAgICAgIApAQCAtOTUsMTMgKzk1LDEzIEBAIFNwYXJzZUFycmF5
VmFsdWVNYXA6OkFkZFJlc3VsdCBTcGFyc2VBcnJheVZhbHVlTWFwOjphZGQoSlNPYmplY3QqIGFy
cmF5LCB1bnNpZ25lCiAKIHZvaWQgU3BhcnNlQXJyYXlWYWx1ZU1hcDo6cmVtb3ZlKGl0ZXJhdG9y
IGl0KQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soKnRoaXMpOworICAgIGF1dG8gbG9j
a2VyID0gaG9sZEpTQ2VsbExvY2soKTsKICAgICBtX21hcC5yZW1vdmUoaXQpOwogfQogCiB2b2lk
IFNwYXJzZUFycmF5VmFsdWVNYXA6OnJlbW92ZSh1bnNpZ25lZCBpKQogewotICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2soKnRoaXMpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZEpTQ2VsbExvY2so
KTsKICAgICBtX21hcC5yZW1vdmUoaSk7CiB9CiAKQEAgLTE5OSw3ICsxOTksNyBAQCB2b2lkIFNw
YXJzZUFycmF5VmFsdWVNYXA6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiB0aGlzT2JqZWN0LCBTbG90
VmlzaXRvciYgdmlzaXRvcgogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlz
aXRvcik7CiAgICAgCiAgICAgU3BhcnNlQXJyYXlWYWx1ZU1hcCogdGhpc01hcCA9IGpzQ2FzdDxT
cGFyc2VBcnJheVZhbHVlTWFwKj4odGhpc09iamVjdCk7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jaygqdGhpc01hcCk7CisgICAgYXV0byBsb2NrZXIgPSB0aGlzTWFwLT5ob2xkSlNDZWxsTG9j
aygpOwogICAgIGl0ZXJhdG9yIGVuZCA9IHRoaXNNYXAtPm1fbWFwLmVuZCgpOwogICAgIGZvciAo
aXRlcmF0b3IgaXQgPSB0aGlzTWFwLT5tX21hcC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCiAg
ICAgICAgIHZpc2l0b3IuYXBwZW5kKGl0LT52YWx1ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332763</attachid>
            <date>2018-01-31 08:16:36 -0800</date>
            <delta_ts>2018-01-31 10:06:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182320-20180131081635.patch</filename>
            <type>text/plain</type>
            <size>10451</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3NjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MmJhMjk4MjI2N2Q5ZDNkMmVkYjE1MzBmZWI4NjJhZTNjM2ZlZjg0Li4xZDYyYjQ5MGI3NzNiMDA1
NGY3NGUzNmQ2NTVjNjg1NzUzMjM2MDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAxOC0wMS0zMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBDYW5vbmljYWxpemUgYXF1aXJpbmcgdGhlIEpTQ2VsbCBsb2NrLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyMzIwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQncyBjdXJy
ZW50bHkga2luZGEgYW5ub3lpbmcgdG8gZmlndXJlIG91dCB3aGVyZQorICAgICAgICB3ZSBhcXVp
cmUgdGhlIGEgSlNDZWxsJ3MgbG9jay4gVGhpcyBwYXRjaCBhZGRzIGEKKyAgICAgICAgaGVscGVy
IHRvIG1ha2UgaXQgZWFzaWVyIHRvIGdyZXAuLi4KKworICAgICAgICAqIGJ5dGVjb2RlL1VubGlu
a2VkQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2RlQmxvY2s6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpVbmxpbmtlZENvZGVCbG9jazo6c2V0SW5zdHJ1Y3Rp
b25zKToKKyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2RlQmxvY2s6OnNocmlua1RvRml0KToKKyAg
ICAgICAgKiBydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpFcnJvcklu
c3RhbmNlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6Om1h
dGVyaWFsaXplRXJyb3JJbmZvSWZOZWVkZWQpOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNl
Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuY3BwOgorICAgICAg
ICAoSlNDOjpKU0FycmF5OjpzaGlmdENvdW50V2l0aEFycmF5U3RvcmFnZSk6CisgICAgICAgIChK
U0M6OkpTQXJyYXk6OnVuc2hpZnRDb3VudFdpdGhBcnJheVN0b3JhZ2UpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNDZWxsLmg6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6aG9sZEpTQ2VsbExvY2spOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6
dmlzaXRCdXR0ZXJmbHlJbXBsKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmNvbnZlcnRDb250
aWd1b3VzVG9BcnJheVN0b3JhZ2UpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjp2
aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBydW50aW1lL1NwYXJzZUFycmF5VmFsdWVNYXAuY3Bw
OgorICAgICAgICAoSlNDOjpTcGFyc2VBcnJheVZhbHVlTWFwOjphZGQpOgorICAgICAgICAoSlND
OjpTcGFyc2VBcnJheVZhbHVlTWFwOjpyZW1vdmUpOgorICAgICAgICAoSlNDOjpTcGFyc2VBcnJh
eVZhbHVlTWFwOjp2aXNpdENoaWxkcmVuKToKKwogMjAxOC0wMS0yNSAgTWFyayBMYW0gIDxtYXJr
LmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgR2FyZGVuaW5nOiBmaXggMzItYml0IGJ1aWxkIGFm
dGVyIHIyMjc2NDMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VW5saW5rZWRDb2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Vu
bGlua2VkQ29kZUJsb2NrLmNwcAppbmRleCA3MWYxY2E1NzY4NzhjMWVlZTlmM2E3ZjJhNTIxMGUz
Njc0MTA4OTQ2Li4xZjg3YTZjZTBkMTBlY2ZhYjYzMDc5OGUyNjIyZTdiMjk5M2ZjZTAzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2su
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9j
ay5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBVbmxpbmtlZENvZGVCbG9jazo6dmlzaXRDaGls
ZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIFVubGlua2VkQ29k
ZUJsb2NrKiB0aGlzT2JqZWN0ID0ganNDYXN0PFVubGlua2VkQ29kZUJsb2NrKj4oY2VsbCk7CiAg
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwogICAgIEJh
c2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7Ci0gICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jaygqdGhpc09iamVjdCk7CisgICAgYXV0byBsb2NrZXIgPSB0aGlzT2JqZWN0LT5o
b2xkSlNDZWxsTG9jaygpOwogICAgIGZvciAoRnVuY3Rpb25FeHByZXNzaW9uVmVjdG9yOjppdGVy
YXRvciBwdHIgPSB0aGlzT2JqZWN0LT5tX2Z1bmN0aW9uRGVjbHMuYmVnaW4oKSwgZW5kID0gdGhp
c09iamVjdC0+bV9mdW5jdGlvbkRlY2xzLmVuZCgpOyBwdHIgIT0gZW5kOyArK3B0cikKICAgICAg
ICAgdmlzaXRvci5hcHBlbmQoKnB0cik7CiAgICAgZm9yIChGdW5jdGlvbkV4cHJlc3Npb25WZWN0
b3I6Oml0ZXJhdG9yIHB0ciA9IHRoaXNPYmplY3QtPm1fZnVuY3Rpb25FeHBycy5iZWdpbigpLCBl
bmQgPSB0aGlzT2JqZWN0LT5tX2Z1bmN0aW9uRXhwcnMuZW5kKCk7IHB0ciAhPSBlbmQ7ICsrcHRy
KQpAQCAtMzE3LDcgKzMxNyw3IEBAIHZvaWQgVW5saW5rZWRDb2RlQmxvY2s6OnNldEluc3RydWN0
aW9ucyhzdGQ6OnVuaXF1ZV9wdHI8VW5saW5rZWRJbnN0cnVjdGlvblN0cmVhCiB7CiAgICAgQVNT
RVJUKGluc3RydWN0aW9ucyk7CiAgICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2Nr
KCp0aGlzKTsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkSlNDZWxsTG9jaygpOwogICAgICAg
ICBtX3VubGlua2VkSW5zdHJ1Y3Rpb25zID0gV1RGTW92ZShpbnN0cnVjdGlvbnMpOwogICAgIH0K
ICAgICBIZWFwOjpoZWFwKHRoaXMpLT5yZXBvcnRFeHRyYU1lbW9yeUFsbG9jYXRlZChtX3VubGlu
a2VkSW5zdHJ1Y3Rpb25zLT5zaXplSW5CeXRlcygpKTsKQEAgLTM5Miw3ICszOTIsNyBAQCB2b2lk
IFVubGlua2VkQ29kZUJsb2NrOjphcHBseU1vZGlmaWNhdGlvbihCeXRlY29kZVJld3JpdGVyJiBy
ZXdyaXRlciwgVW5wYWNrZWRJbgogCiB2b2lkIFVubGlua2VkQ29kZUJsb2NrOjpzaHJpbmtUb0Zp
dCgpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqdGhpcyk7CisgICAgYXV0byBsb2Nr
ZXIgPSBob2xkSlNDZWxsTG9jaygpOwogICAgIAogICAgIG1fanVtcFRhcmdldHMuc2hyaW5rVG9G
aXQoKTsKICAgICBtX2lkZW50aWZpZXJzLnNocmlua1RvRml0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCmluZGV4IDQwYzYyNThlNDRhZWJk
YzQxYzM3OTllMjc2NjVlOWZhMmZiODUzOWIuLjFhOGI5YTYwMjJkNTQyNTRjOGEwNTkyYTM1ZWE5
ODJiNGIyNmQ3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9ySW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9y
SW5zdGFuY2UuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgdm9pZCBFcnJvckluc3RhbmNlOjpmaW5p
c2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIFZNJiB2bSwgY29uc3QgU3RyaW5nJiBtZXNzYWcK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8U3RhY2tGcmFtZT4+IHN0YWNrVHJhY2UgPSBn
ZXRTdGFja1RyYWNlKGV4ZWMsIHZtLCB0aGlzLCB1c2VDdXJyZW50RnJhbWUpOwogICAgIHsKLSAg
ICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqdGhpcyk7CisgICAgICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZEpTQ2VsbExvY2soKTsKICAgICAgICAgbV9zdGFja1RyYWNlID0gV1RGTW92ZShzdGFj
a1RyYWNlKTsKICAgICB9CiAgICAgdm0uaGVhcC53cml0ZUJhcnJpZXIodGhpcyk7CkBAIC0yMDks
NyArMjA5LDcgQEAgYm9vbCBFcnJvckluc3RhbmNlOjptYXRlcmlhbGl6ZUVycm9ySW5mb0lmTmVl
ZGVkKFZNJiB2bSkKICAgICAKICAgICBhZGRFcnJvckluZm8odm0sIG1fc3RhY2tUcmFjZS5nZXQo
KSwgdGhpcyk7CiAgICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKCp0aGlzKTsK
KyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkSlNDZWxsTG9jaygpOwogICAgICAgICBtX3N0YWNr
VHJhY2UgPSBudWxscHRyOwogICAgIH0KICAgICAKQEAgLTIzNCw3ICsyMzQsNyBAQCB2b2lkIEVy
cm9ySW5zdGFuY2U6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlz
aXRvcikKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOwogCiAg
ICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKCp0aGlzT2JqZWN0KTsKKyAgICAg
ICAgYXV0byBsb2NrZXIgPSB0aGlzT2JqZWN0LT5ob2xkSlNDZWxsTG9jaygpOwogICAgICAgICBp
ZiAodGhpc09iamVjdC0+bV9zdGFja1RyYWNlKSB7CiAgICAgICAgICAgICBmb3IgKFN0YWNrRnJh
bWUmIGZyYW1lIDogKnRoaXNPYmplY3QtPm1fc3RhY2tUcmFjZSkKICAgICAgICAgICAgICAgICBm
cmFtZS52aXNpdENoaWxkcmVuKHZpc2l0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5LmNwcAppbmRleCA4ODRiMGEyYzE0OTZhOGNmYTI1YWNmNWUwYTMwYTlmODhjZGFk
MTExLi5hOGZmY2Q4NWRkZTZkYmQ0ZjUyNmY2NjY1NDJlNDIzZDM5OTQ3OGEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcApAQCAtODAyLDcgKzgwMiw3IEBAIGJv
b2wgSlNBcnJheTo6c2hpZnRDb3VudFdpdGhBcnJheVN0b3JhZ2UoVk0mIHZtLCB1bnNpZ25lZCBz
dGFydEluZGV4LCB1bnNpZ25lZCBjCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIERp
c2FsbG93R0MgZGlzYWxsb3dHQzsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKCp0aGlzKTsK
KyAgICBhdXRvIGxvY2tlciA9IGhvbGRKU0NlbGxMb2NrKCk7CiAgICAgCiAgICAgaWYgKHN0YXJ0
SW5kZXggKyBjb3VudCA+IHZlY3Rvckxlbmd0aCkKICAgICAgICAgY291bnQgPSB2ZWN0b3JMZW5n
dGggLSBzdGFydEluZGV4OwpAQCAtMTAwNSw3ICsxMDA1LDcgQEAgYm9vbCBKU0FycmF5Ojp1bnNo
aWZ0Q291bnRXaXRoQXJyYXlTdG9yYWdlKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgc3RhcnRJ
bmRleCwKICAgICAvLyBOZWVkIHRvIGhhdmUgR0MgZGVmZXJyZWQgYXJvdW5kIHRoZSB1bnNoaWZ0
Q291bnRTbG93Q2FzZSgpLCBzaW5jZSB0aGF0IGxlYXZlcyB0aGUgYnV0dGVyZmx5IGluCiAgICAg
Ly8gYSB3ZWlyZCBzdGF0ZTogc29tZSBwYXJ0cyBvZiBpdCB3aWxsIGJlIGxlZnQgdW5pbml0aWFs
aXplZCwgd2hpY2ggd2Ugd2lsbCBmaWxsIGluIGhlcmUuCiAgICAgRGVmZXJHQyBkZWZlckdDKHZt
LmhlYXApOwotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soKnRoaXMpOworICAgIGF1dG8gbG9j
a2VyID0gaG9sZEpTQ2VsbExvY2soKTsKICAgICAKICAgICBpZiAobW92ZUZyb250ICYmIHN0b3Jh
Z2UtPm1faW5kZXhCaWFzID49IGNvdW50KSB7CiAgICAgICAgIEJ1dHRlcmZseSogbmV3QnV0dGVy
Zmx5ID0gc3RvcmFnZS0+YnV0dGVyZmx5KCktPnVuc2hpZnQoc3RydWN0dXJlKCksIGNvdW50KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKaW5kZXggNGRhNzdhYmRiNDk1MDY1
MmZkNTM0OTQyYTJiYjY1MTAyZGEwMGMxNC4uNzg5MzljYjUzZGIwMmI5ZjI4MTkyNGQ4YzI4YTQy
YTNiZjYyYjM4NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
ZWxsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKQEAgLTEy
MCw2ICsxMjAsMTEgQEAgcHVibGljOgogICAgIC8vIEVhY2ggY2VsbCBoYXMgYSBidWlsdC1pbiBs
b2NrLiBDdXJyZW50bHkgaXQncyBzaW1wbHkgYXZhaWxhYmxlIGZvciB1c2UgaWYgeW91IG5lZWQg
aXQuIEl0J3MKICAgICAvLyBhIGZ1bGwtYmxvd24gV1RGOjpMb2NrLiBOb3RlIHRoYXQgdGhpcyBs
b2NrIGlzIGN1cnJlbnRseSB1c2VkIGluIEpTQXJyYXkgYW5kIHRoYXQgbG9jaydzCiAgICAgLy8g
b3JkZXJpbmcgd2l0aCB0aGUgU3RydWN0dXJlIGxvY2sgaXMgdGhhdCB0aGUgU3RydWN0dXJlIGxv
Y2sgbXVzdCBiZSBhY3F1aXJlZCBmaXJzdC4KKworICAgIC8vIEl0J3MgYWxzbyByZWNvbW1lbmRl
ZCB0aGF0IGNlbGxzIGFyZSBsb2NrZWQgd2l0aCB0aGUgaG9sZEpTQ2VsbExvY2soKSBtZXRob2Qg
dG8gaGVscCBrZWVwCisgICAgLy8gdHJhY2sgb2YgYWxsIHRoZSBwbGFjZXMgd2hlcmUgd2UgbG9j
ayBjZWxscy4KKyAgICBMb2NrZXI8SlNDZWxsPiBob2xkSlNDZWxsTG9jaygpIHsgcmV0dXJuIGhv
bGRMb2NrKCp0aGlzKTsgfQorCiAgICAgdm9pZCBsb2NrKCk7CiAgICAgYm9vbCB0cnlMb2NrKCk7
CiAgICAgdm9pZCB1bmxvY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmNwcAppbmRleCA1YTRlN2Y5M2Y2YzdlOGMzYzliYmYxYmY5NmY3MTc0OWRkM2Y2NjU3Li43
ZWQ4NTUyMTNhZjIzNWFjMzYwYWFiMzdkOTkyYzcwZmEwM2E1Yjc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0zOTEsNyArMzkxLDcgQEAgQUxXQVlT
X0lOTElORSBTdHJ1Y3R1cmUqIEpTT2JqZWN0Ojp2aXNpdEJ1dHRlcmZseUltcGwoU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCiAgICAgICAgIC8vIHRoYXQgY2FuIGhhcHBlbiB3aGVuIHRoZSBidXR0ZXJm
bHkgaXMgdXNlZCBmb3IgYXJyYXkgc3RvcmFnZS4gV2UgY29uc2VydmF0aXZlbHkKICAgICAgICAg
Ly8gYXNzdW1lIHRoYXQgYSBjb250aWd1b3VzIGJ1dHRlcmZseSBtYXkgdHJhbnNmb3JtIGludG8g
YW4gYXJyYXkgc3RvcmFnZSBvbmUsIHRob3VnaAogICAgICAgICAvLyB0aGlzIGlzIHByb2JhYmx5
IG1vcmUgY29uc2VydmF0aXZlIHRoYW4gbmVjZXNzYXJ5LgotICAgICAgICBsb2NrZXIgPSBMb2Nr
ZXI8SlNDZWxsPigqdGhpcyk7CisgICAgICAgIGxvY2tlciA9IGhvbGRKU0NlbGxMb2NrKCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwpAQCAtMTM1OCw3ICsx
MzU4LDcgQEAgQXJyYXlTdG9yYWdlKiBKU09iamVjdDo6Y29udmVydENvbnRpZ3VvdXNUb0FycmF5
U3RvcmFnZShWTSYgdm0sIE5vblByb3BlcnR5VHJhbnMKICAgICAvLyBGb3J0dW5hdGVseSwgd2Ug
aGF2ZSB0aGUgSlNDZWxsIGxvY2sgZm9yIHRoaXMgcHVycG9zZSEKICAgICAKICAgICBpZiAodm0u
aGVhcC5tdXRhdG9yU2hvdWxkQmVGZW5jZWQoKSkgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKCp0aGlzKTsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkSlNDZWxsTG9jaygpOwog
ICAgICAgICBtX2J1dHRlcmZseUluZGV4aW5nTWFzayA9IG5ld1N0b3JhZ2UtPmJ1dHRlcmZseSgp
LT5jb21wdXRlSW5kZXhpbmdNYXNrKCk7CiAgICAgICAgIHNldFN0cnVjdHVyZUlERGlyZWN0bHko
bnVrZShzdHJ1Y3R1cmVJRCgpKSk7CiAgICAgICAgIFdURjo6c3RvcmVTdG9yZUZlbmNlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVu
dW1lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yLmNwcAppbmRleCA4MmJiMGRjMzNkOGE3NTEwMjYzNjQyMGJjYzkxMjQwNWYz
YTFiMGRiLi4wZTFiMDNjM2QxMTQ4ZGVlZTgwMjJhNjNjZTBjNDdhMGZhMDc0OWY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1l
RW51bWVyYXRvci5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBKU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3I6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikK
IHsKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKGNlbGwsIHZpc2l0b3IpOwogICAgIEpTUHJvcGVy
dHlOYW1lRW51bWVyYXRvciogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3IqPihjZWxsKTsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKCp0aGlzT2JqZWN0KTsK
KyAgICBhdXRvIGxvY2tlciA9IHRoaXNPYmplY3QtPmhvbGRKU0NlbGxMb2NrKCk7CiAgICAgZm9y
IChhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0aGlzT2JqZWN0LT5tX3Byb3BlcnR5TmFtZXMpCiAgICAg
ICAgIHZpc2l0b3IuYXBwZW5kKHByb3BlcnR5TmFtZSk7CiAgICAgdmlzaXRvci5hcHBlbmQodGhp
c09iamVjdC0+bV9wcm90b3R5cGVDaGFpbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NwYXJzZUFycmF5VmFsdWVNYXAuY3BwCmluZGV4IDI0N2MwN2MyYjA3NDM1
Mzg1YzM1OTEzMGQwMjBmNzVkZmVhNjZmMmYuLjA4ZGU0MDgzYTBjYTcxMzAxNjk5ODIyNjQwZWIy
MjQxZjk4ZmVmZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nw
YXJzZUFycmF5VmFsdWVNYXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NwYXJzZUFycmF5VmFsdWVNYXAuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIFNwYXJzZUFycmF5VmFs
dWVNYXA6OkFkZFJlc3VsdCBTcGFyc2VBcnJheVZhbHVlTWFwOjphZGQoSlNPYmplY3QqIGFycmF5
LCB1bnNpZ25lCiAgICAgQWRkUmVzdWx0IHJlc3VsdDsKICAgICBzaXplX3QgY2FwYWNpdHk7CiAg
ICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKCp0aGlzKTsKKyAgICAgICAgYXV0
byBsb2NrZXIgPSBob2xkSlNDZWxsTG9jaygpOwogICAgICAgICBTcGFyc2VBcnJheUVudHJ5IGVu
dHJ5OwogICAgICAgICBlbnRyeS5zZXRXaXRob3V0V3JpdGVCYXJyaWVyKGpzVW5kZWZpbmVkKCkp
OwogICAgICAgICAKQEAgLTk1LDEzICs5NSwxMyBAQCBTcGFyc2VBcnJheVZhbHVlTWFwOjpBZGRS
ZXN1bHQgU3BhcnNlQXJyYXlWYWx1ZU1hcDo6YWRkKEpTT2JqZWN0KiBhcnJheSwgdW5zaWduZQog
CiB2b2lkIFNwYXJzZUFycmF5VmFsdWVNYXA6OnJlbW92ZShpdGVyYXRvciBpdCkKIHsKLSAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKCp0aGlzKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRKU0Nl
bGxMb2NrKCk7CiAgICAgbV9tYXAucmVtb3ZlKGl0KTsKIH0KIAogdm9pZCBTcGFyc2VBcnJheVZh
bHVlTWFwOjpyZW1vdmUodW5zaWduZWQgaSkKIHsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2Nr
KCp0aGlzKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRKU0NlbGxMb2NrKCk7CiAgICAgbV9tYXAu
cmVtb3ZlKGkpOwogfQogCkBAIC0xOTksNyArMTk5LDcgQEAgdm9pZCBTcGFyc2VBcnJheVZhbHVl
TWFwOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogdGhpc09iamVjdCwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOwogICAgIAog
ICAgIFNwYXJzZUFycmF5VmFsdWVNYXAqIHRoaXNNYXAgPSBqc0Nhc3Q8U3BhcnNlQXJyYXlWYWx1
ZU1hcCo+KHRoaXNPYmplY3QpOwotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soKnRoaXNNYXAp
OworICAgIGF1dG8gbG9ja2VyID0gdGhpc01hcC0+aG9sZEpTQ2VsbExvY2soKTsKICAgICBpdGVy
YXRvciBlbmQgPSB0aGlzTWFwLT5tX21hcC5lbmQoKTsKICAgICBmb3IgKGl0ZXJhdG9yIGl0ID0g
dGhpc01hcC0+bV9tYXAuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQogICAgICAgICB2aXNpdG9y
LmFwcGVuZChpdC0+dmFsdWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332773</attachid>
            <date>2018-01-31 10:06:20 -0800</date>
            <delta_ts>2018-01-31 10:15:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182320-20180131100620.patch</filename>
            <type>text/plain</type>
            <size>17848</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3NjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MmJhMjk4MjI2N2Q5ZDNkMmVkYjE1MzBmZWI4NjJhZTNjM2ZlZjg0Li4zMzlmMTU3YmI2MWUxMjRi
NDAxY2Y5NTBkN2NiZTVlMWI0ZjgzMmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAxOC0wMS0zMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBDYW5vbmljYWxpemUgYXF1aXJpbmcgdGhlIEpTQ2VsbCBsb2NrLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyMzIwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQncyBjdXJy
ZW50bHkga2luZGEgYW5ub3lpbmcgdG8gZmlndXJlIG91dCB3aGVyZQorICAgICAgICB3ZSBhcXVp
cmUgdGhlIGEgSlNDZWxsJ3MgbG9jay4gVGhpcyBwYXRjaCBhZGRzIGEKKyAgICAgICAgaGVscGVy
IHRvIG1ha2UgaXQgZWFzaWVyIHRvIGdyZXAuLi4KKworICAgICAgICAqIGJ5dGVjb2RlL1VubGlu
a2VkQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2RlQmxvY2s6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpVbmxpbmtlZENvZGVCbG9jazo6c2V0SW5zdHJ1Y3Rp
b25zKToKKyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2RlQmxvY2s6OnNocmlua1RvRml0KToKKyAg
ICAgICAgKiBydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpFcnJvcklu
c3RhbmNlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6Om1h
dGVyaWFsaXplRXJyb3JJbmZvSWZOZWVkZWQpOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNl
Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuY3BwOgorICAgICAg
ICAoSlNDOjpKU0FycmF5OjpzaGlmdENvdW50V2l0aEFycmF5U3RvcmFnZSk6CisgICAgICAgIChK
U0M6OkpTQXJyYXk6OnVuc2hpZnRDb3VudFdpdGhBcnJheVN0b3JhZ2UpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNDZWxsLmg6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6Y2VsbExvY2spOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6dmlzaXRC
dXR0ZXJmbHlJbXBsKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmNvbnZlcnRDb250aWd1b3Vz
VG9BcnJheVN0b3JhZ2UpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjp2aXNpdENo
aWxkcmVuKToKKyAgICAgICAgKiBydW50aW1lL1NwYXJzZUFycmF5VmFsdWVNYXAuY3BwOgorICAg
ICAgICAoSlNDOjpTcGFyc2VBcnJheVZhbHVlTWFwOjphZGQpOgorICAgICAgICAoSlNDOjpTcGFy
c2VBcnJheVZhbHVlTWFwOjpyZW1vdmUpOgorICAgICAgICAoSlNDOjpTcGFyc2VBcnJheVZhbHVl
TWFwOjp2aXNpdENoaWxkcmVuKToKKwogMjAxOC0wMS0yNSAgTWFyayBMYW0gIDxtYXJrLmxhbUBh
cHBsZS5jb20+CiAKICAgICAgICAgR2FyZGVuaW5nOiBmaXggMzItYml0IGJ1aWxkIGFmdGVyIHIy
Mjc2NDMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5r
ZWRDb2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2Vk
Q29kZUJsb2NrLmNwcAppbmRleCA3MWYxY2E1NzY4NzhjMWVlZTlmM2E3ZjJhNTIxMGUzNjc0MTA4
OTQ2Li5jZWZlM2NlNDE4OGYxODQ5ZTVhZDI1YjZlMTFmMWE1ZjkzNjdkZDVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAK
QEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBVbmxpbmtlZENvZGVCbG9jazo6dmlzaXRDaGlsZHJlbihK
U0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIFVubGlua2VkQ29kZUJsb2Nr
KiB0aGlzT2JqZWN0ID0ganNDYXN0PFVubGlua2VkQ29kZUJsb2NrKj4oY2VsbCk7CiAgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwogICAgIEJhc2U6OnZp
c2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jaygqdGhpc09iamVjdCk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayh0aGlzT2JqZWN0
LT5jZWxsTG9jaygpKTsKICAgICBmb3IgKEZ1bmN0aW9uRXhwcmVzc2lvblZlY3Rvcjo6aXRlcmF0
b3IgcHRyID0gdGhpc09iamVjdC0+bV9mdW5jdGlvbkRlY2xzLmJlZ2luKCksIGVuZCA9IHRoaXNP
YmplY3QtPm1fZnVuY3Rpb25EZWNscy5lbmQoKTsgcHRyICE9IGVuZDsgKytwdHIpCiAgICAgICAg
IHZpc2l0b3IuYXBwZW5kKCpwdHIpOwogICAgIGZvciAoRnVuY3Rpb25FeHByZXNzaW9uVmVjdG9y
OjppdGVyYXRvciBwdHIgPSB0aGlzT2JqZWN0LT5tX2Z1bmN0aW9uRXhwcnMuYmVnaW4oKSwgZW5k
ID0gdGhpc09iamVjdC0+bV9mdW5jdGlvbkV4cHJzLmVuZCgpOyBwdHIgIT0gZW5kOyArK3B0cikK
QEAgLTMxNyw3ICszMTcsNyBAQCB2b2lkIFVubGlua2VkQ29kZUJsb2NrOjpzZXRJbnN0cnVjdGlv
bnMoc3RkOjp1bmlxdWVfcHRyPFVubGlua2VkSW5zdHJ1Y3Rpb25TdHJlYQogewogICAgIEFTU0VS
VChpbnN0cnVjdGlvbnMpOwogICAgIHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygq
dGhpcyk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soY2VsbExvY2soKSk7CiAgICAg
ICAgIG1fdW5saW5rZWRJbnN0cnVjdGlvbnMgPSBXVEZNb3ZlKGluc3RydWN0aW9ucyk7CiAgICAg
fQogICAgIEhlYXA6OmhlYXAodGhpcyktPnJlcG9ydEV4dHJhTWVtb3J5QWxsb2NhdGVkKG1fdW5s
aW5rZWRJbnN0cnVjdGlvbnMtPnNpemVJbkJ5dGVzKCkpOwpAQCAtMzkyLDcgKzM5Miw3IEBAIHZv
aWQgVW5saW5rZWRDb2RlQmxvY2s6OmFwcGx5TW9kaWZpY2F0aW9uKEJ5dGVjb2RlUmV3cml0ZXIm
IHJld3JpdGVyLCBVbnBhY2tlZEluCiAKIHZvaWQgVW5saW5rZWRDb2RlQmxvY2s6OnNocmlua1Rv
Rml0KCkKIHsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKCp0aGlzKTsKKyAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKGNlbGxMb2NrKCkpOwogICAgIAogICAgIG1fanVtcFRhcmdldHMuc2hy
aW5rVG9GaXQoKTsKICAgICBtX2lkZW50aWZpZXJzLnNocmlua1RvRml0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oCmluZGV4IGIy
NGRmZGM1ZjVjYjY3YTUzMTczYWUwYTc4NTEwMjEyMTZmZjdkYjEuLmM3NTkxZTFiM2Y1M2EyMzE2
ODNlYjliYWI3OTU4NDhmYjczZWEyNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oCkBAIC0xNjAsNyArMTYwLDcgQEAgcHVibGlj
OgogICAgIHsKICAgICAgICAgY3JlYXRlUmFyZURhdGFJZk5lY2Vzc2FyeSgpOwogICAgICAgICBW
TSYgdm0gPSAqdGhpcy0+dm0oKTsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBsb2NrRHVyaW5nTWFy
a2luZyh2bS5oZWFwLCAqdGhpcyk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gbG9ja0R1cmluZ01h
cmtpbmcodm0uaGVhcCwgY2VsbExvY2soKSk7CiAgICAgICAgIHVuc2lnbmVkIHNpemUgPSBtX3Jh
cmVEYXRhLT5tX3JlZ2V4cHMuc2l6ZSgpOwogICAgICAgICBtX3JhcmVEYXRhLT5tX3JlZ2V4cHMu
YXBwZW5kKFdyaXRlQmFycmllcjxSZWdFeHA+KHZtLCB0aGlzLCByKSk7CiAgICAgICAgIHJldHVy
biBzaXplOwpAQCAtMTkxLDcgKzE5MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFNldENvbnN0
YW50KElkZW50aWZpZXJTZXQmIHNldCkKICAgICB7CiAgICAgICAgIFZNJiB2bSA9ICp0aGlzLT52
bSgpOwotICAgICAgICBhdXRvIGxvY2tlciA9IGxvY2tEdXJpbmdNYXJraW5nKHZtLmhlYXAsICp0
aGlzKTsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBsb2NrRHVyaW5nTWFya2luZyh2bS5oZWFwLCBj
ZWxsTG9jaygpKTsKICAgICAgICAgdW5zaWduZWQgcmVzdWx0ID0gbV9jb25zdGFudFJlZ2lzdGVy
cy5zaXplKCk7CiAgICAgICAgIG1fY29uc3RhbnRSZWdpc3RlcnMuYXBwZW5kKFdyaXRlQmFycmll
cjxVbmtub3duPigpKTsKICAgICAgICAgbV9jb25zdGFudHNTb3VyY2VDb2RlUmVwcmVzZW50YXRp
b24uYXBwZW5kKFNvdXJjZUNvZGVSZXByZXNlbnRhdGlvbjo6T3RoZXIpOwpAQCAtMjAxLDcgKzIw
MSw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBhZGRDb25zdGFudChKU1ZhbHVlIHYsIFNvdXJj
ZUNvZGVSZXByZXNlbnRhdGlvbiBzb3VyY2VDb2RlUmVwcmVzZW50YXRpb24gPSBTb3VyY2VDb2Rl
UmVwcmVzZW50YXRpb246Ok90aGVyKQogICAgIHsKICAgICAgICAgVk0mIHZtID0gKnRoaXMtPnZt
KCk7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gbG9ja0R1cmluZ01hcmtpbmcodm0uaGVhcCwgKnRo
aXMpOworICAgICAgICBhdXRvIGxvY2tlciA9IGxvY2tEdXJpbmdNYXJraW5nKHZtLmhlYXAsIGNl
bGxMb2NrKCkpOwogICAgICAgICB1bnNpZ25lZCByZXN1bHQgPSBtX2NvbnN0YW50UmVnaXN0ZXJz
LnNpemUoKTsKICAgICAgICAgbV9jb25zdGFudFJlZ2lzdGVycy5hcHBlbmQoV3JpdGVCYXJyaWVy
PFVua25vd24+KCkpOwogICAgICAgICBtX2NvbnN0YW50UmVnaXN0ZXJzLmxhc3QoKS5zZXQodm0s
IHRoaXMsIHYpOwpAQCAtMjExLDcgKzIxMSw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBhZGRD
b25zdGFudChMaW5rVGltZUNvbnN0YW50IHR5cGUpCiAgICAgewogICAgICAgICBWTSYgdm0gPSAq
dGhpcy0+dm0oKTsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBsb2NrRHVyaW5nTWFya2luZyh2bS5o
ZWFwLCAqdGhpcyk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gbG9ja0R1cmluZ01hcmtpbmcodm0u
aGVhcCwgY2VsbExvY2soKSk7CiAgICAgICAgIHVuc2lnbmVkIHJlc3VsdCA9IG1fY29uc3RhbnRS
ZWdpc3RlcnMuc2l6ZSgpOwogICAgICAgICBBU1NFUlQocmVzdWx0KTsKICAgICAgICAgdW5zaWdu
ZWQgaW5kZXggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odHlwZSk7CkBAIC0yNzQsNyArMjc0LDcg
QEAgcHVibGljOgogICAgIHVuc2lnbmVkIGFkZEZ1bmN0aW9uRGVjbChVbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZSogbikKICAgICB7CiAgICAgICAgIFZNJiB2bSA9ICp0aGlzLT52bSgpOwotICAg
ICAgICBhdXRvIGxvY2tlciA9IGxvY2tEdXJpbmdNYXJraW5nKHZtLmhlYXAsICp0aGlzKTsKKyAg
ICAgICAgYXV0byBsb2NrZXIgPSBsb2NrRHVyaW5nTWFya2luZyh2bS5oZWFwLCBjZWxsTG9jaygp
KTsKICAgICAgICAgdW5zaWduZWQgc2l6ZSA9IG1fZnVuY3Rpb25EZWNscy5zaXplKCk7CiAgICAg
ICAgIG1fZnVuY3Rpb25EZWNscy5hcHBlbmQoV3JpdGVCYXJyaWVyPFVubGlua2VkRnVuY3Rpb25F
eGVjdXRhYmxlPigpKTsKICAgICAgICAgbV9mdW5jdGlvbkRlY2xzLmxhc3QoKS5zZXQodm0sIHRo
aXMsIG4pOwpAQCAtMjg1LDcgKzI4NSw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBhZGRGdW5j
dGlvbkV4cHIoVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIG4pCiAgICAgewogICAgICAgICBW
TSYgdm0gPSAqdGhpcy0+dm0oKTsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBsb2NrRHVyaW5nTWFy
a2luZyh2bS5oZWFwLCAqdGhpcyk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gbG9ja0R1cmluZ01h
cmtpbmcodm0uaGVhcCwgY2VsbExvY2soKSk7CiAgICAgICAgIHVuc2lnbmVkIHNpemUgPSBtX2Z1
bmN0aW9uRXhwcnMuc2l6ZSgpOwogICAgICAgICBtX2Z1bmN0aW9uRXhwcnMuYXBwZW5kKFdyaXRl
QmFycmllcjxVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZT4oKSk7CiAgICAgICAgIG1fZnVuY3Rp
b25FeHBycy5sYXN0KCkuc2V0KHZtLCB0aGlzLCBuKTsKQEAgLTQxNSw3ICs0MTUsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgY3JlYXRlUmFyZURhdGFJZk5lY2Vzc2FyeSgpCiAgICAgewogICAgICAg
ICBpZiAoIW1fcmFyZURhdGEpIHsKLSAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gbG9ja0R1cmlu
Z01hcmtpbmcoKmhlYXAoKSwgKnRoaXMpOworICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBsb2Nr
RHVyaW5nTWFya2luZygqaGVhcCgpLCBjZWxsTG9jaygpKTsKICAgICAgICAgICAgIG1fcmFyZURh
dGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFJhcmVEYXRhPigpOwogICAgICAgICB9CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAppbmRleCA0
MGM2MjU4ZTQ0YWViZGM0MWMzNzk5ZTI3NjY1ZTlmYTJmYjg1MzliLi5jMTcyNDI4OTE0NWM5Y2Rl
NDQyOTUyNTg1NjBhMDM0MzU3ZDkyNzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvckluc3RhbmNlLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgRXJyb3JJ
bnN0YW5jZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBWTSYgdm0sIGNvbnN0IFN0
cmluZyYgbWVzc2FnCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPFN0YWNrRnJhbWU+PiBz
dGFja1RyYWNlID0gZ2V0U3RhY2tUcmFjZShleGVjLCB2bSwgdGhpcywgdXNlQ3VycmVudEZyYW1l
KTsKICAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soKnRoaXMpOworICAgICAg
ICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGNlbGxMb2NrKCkpOwogICAgICAgICBtX3N0YWNrVHJh
Y2UgPSBXVEZNb3ZlKHN0YWNrVHJhY2UpOwogICAgIH0KICAgICB2bS5oZWFwLndyaXRlQmFycmll
cih0aGlzKTsKQEAgLTIwOSw3ICsyMDksNyBAQCBib29sIEVycm9ySW5zdGFuY2U6Om1hdGVyaWFs
aXplRXJyb3JJbmZvSWZOZWVkZWQoVk0mIHZtKQogICAgIAogICAgIGFkZEVycm9ySW5mbyh2bSwg
bV9zdGFja1RyYWNlLmdldCgpLCB0aGlzKTsKICAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2soKnRoaXMpOworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGNlbGxMb2Nr
KCkpOwogICAgICAgICBtX3N0YWNrVHJhY2UgPSBudWxscHRyOwogICAgIH0KICAgICAKQEAgLTIz
NCw3ICsyMzQsNyBAQCB2b2lkIEVycm9ySW5zdGFuY2U6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBj
ZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNP
YmplY3QsIHZpc2l0b3IpOwogCiAgICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2Nr
KCp0aGlzT2JqZWN0KTsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayh0aGlzT2JqZWN0
LT5jZWxsTG9jaygpKTsKICAgICAgICAgaWYgKHRoaXNPYmplY3QtPm1fc3RhY2tUcmFjZSkgewog
ICAgICAgICAgICAgZm9yIChTdGFja0ZyYW1lJiBmcmFtZSA6ICp0aGlzT2JqZWN0LT5tX3N0YWNr
VHJhY2UpCiAgICAgICAgICAgICAgICAgZnJhbWUudmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5kZXggODg0YjBhMmMxNDk2
YThjZmEyNWFjZjVlMGEzMGE5Zjg4Y2RhZDExMS4uZmQ2NzcwZGQ5ZTM3MmFjZDY5MzI1N2JhMmUz
YmU2NzM1MDA1NzZlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5j
cHAKQEAgLTgwMiw3ICs4MDIsNyBAQCBib29sIEpTQXJyYXk6OnNoaWZ0Q291bnRXaXRoQXJyYXlT
dG9yYWdlKFZNJiB2bSwgdW5zaWduZWQgc3RhcnRJbmRleCwgdW5zaWduZWQgYwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAKICAgICBEaXNhbGxvd0dDIGRpc2FsbG93R0M7Ci0gICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jaygqdGhpcyk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhjZWxs
TG9jaygpKTsKICAgICAKICAgICBpZiAoc3RhcnRJbmRleCArIGNvdW50ID4gdmVjdG9yTGVuZ3Ro
KQogICAgICAgICBjb3VudCA9IHZlY3Rvckxlbmd0aCAtIHN0YXJ0SW5kZXg7CkBAIC0xMDA1LDcg
KzEwMDUsNyBAQCBib29sIEpTQXJyYXk6OnVuc2hpZnRDb3VudFdpdGhBcnJheVN0b3JhZ2UoRXhl
Y1N0YXRlKiBleGVjLCB1bnNpZ25lZCBzdGFydEluZGV4LAogICAgIC8vIE5lZWQgdG8gaGF2ZSBH
QyBkZWZlcnJlZCBhcm91bmQgdGhlIHVuc2hpZnRDb3VudFNsb3dDYXNlKCksIHNpbmNlIHRoYXQg
bGVhdmVzIHRoZSBidXR0ZXJmbHkgaW4KICAgICAvLyBhIHdlaXJkIHN0YXRlOiBzb21lIHBhcnRz
IG9mIGl0IHdpbGwgYmUgbGVmdCB1bmluaXRpYWxpemVkLCB3aGljaCB3ZSB3aWxsIGZpbGwgaW4g
aGVyZS4KICAgICBEZWZlckdDIGRlZmVyR0Modm0uaGVhcCk7Ci0gICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jaygqdGhpcyk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhjZWxsTG9jaygpKTsK
ICAgICAKICAgICBpZiAobW92ZUZyb250ICYmIHN0b3JhZ2UtPm1faW5kZXhCaWFzID49IGNvdW50
KSB7CiAgICAgICAgIEJ1dHRlcmZseSogbmV3QnV0dGVyZmx5ID0gc3RvcmFnZS0+YnV0dGVyZmx5
KCktPnVuc2hpZnQoc3RydWN0dXJlKCksIGNvdW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGwuY3BwCmluZGV4IDI0YTc0YmUxZTI4MTFjNTVkMjFmZjFjYmIxMGQ0YTA0YjYy
NmZjNDkuLjIzYzZkNDFhNzMzZDI2NmVhNjkwOWE5NDU3ODcxZTRhMGNmNjA2ODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcApAQCAtMzA4LDEzICszMDgsMTMgQEAg
SlNWYWx1ZSBKU0NlbGw6OmdldFByb3RvdHlwZShKU09iamVjdCosIEV4ZWNTdGF0ZSopCiAgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBKU0NlbGw6OmxvY2tTbG93
KCkKK3ZvaWQgSlNDZWxsTG9jazo6bG9ja1Nsb3coKQogewogICAgIEF0b21pYzxJbmRleGluZ1R5
cGU+KiBsb2NrID0gYml0d2lzZV9jYXN0PEF0b21pYzxJbmRleGluZ1R5cGU+Kj4oJm1faW5kZXhp
bmdUeXBlQW5kTWlzYyk7CiAgICAgSW5kZXhpbmdUeXBlTG9ja0FsZ29yaXRobTo6bG9ja1Nsb3co
KmxvY2spOwogfQogCi12b2lkIEpTQ2VsbDo6dW5sb2NrU2xvdygpCit2b2lkIEpTQ2VsbExvY2s6
OnVubG9ja1Nsb3coKQogewogICAgIEF0b21pYzxJbmRleGluZ1R5cGU+KiBsb2NrID0gYml0d2lz
ZV9jYXN0PEF0b21pYzxJbmRleGluZ1R5cGU+Kj4oJm1faW5kZXhpbmdUeXBlQW5kTWlzYyk7CiAg
ICAgSW5kZXhpbmdUeXBlTG9ja0FsZ29yaXRobTo6dW5sb2NrU2xvdygqbG9jayk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCmluZGV4IDRkYTc3YWJkYjQ5NTA2NTJmZDUzNDk0
MmEyYmI2NTEwMmRhMDBjMTQuLjY0Yzg0YWQ1NGU2YzI3ODJhZGZkMDNhZTZiYzEwOTY0NjJhYjZh
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBAIC01MCw2ICs1MCw3
IEBAIGNsYXNzIFByb3BlcnR5RGVzY3JpcHRvcjsKIGNsYXNzIFByb3BlcnR5TmFtZTsKIGNsYXNz
IFByb3BlcnR5TmFtZUFycmF5OwogY2xhc3MgU3RydWN0dXJlOworY2xhc3MgSlNDZWxsTG9jazsK
IAogZW51bSBjbGFzcyBHQ0RlZmVycmFsQ29udGV4dEFyZ1ByZXNlbnNlIHsKICAgICBIYXNBcmcs
CkBAIC0xMjAsMTAgKzEyMSwxMSBAQCBwdWJsaWM6CiAgICAgLy8gRWFjaCBjZWxsIGhhcyBhIGJ1
aWx0LWluIGxvY2suIEN1cnJlbnRseSBpdCdzIHNpbXBseSBhdmFpbGFibGUgZm9yIHVzZSBpZiB5
b3UgbmVlZCBpdC4gSXQncwogICAgIC8vIGEgZnVsbC1ibG93biBXVEY6OkxvY2suIE5vdGUgdGhh
dCB0aGlzIGxvY2sgaXMgY3VycmVudGx5IHVzZWQgaW4gSlNBcnJheSBhbmQgdGhhdCBsb2NrJ3MK
ICAgICAvLyBvcmRlcmluZyB3aXRoIHRoZSBTdHJ1Y3R1cmUgbG9jayBpcyB0aGF0IHRoZSBTdHJ1
Y3R1cmUgbG9jayBtdXN0IGJlIGFjcXVpcmVkIGZpcnN0LgotICAgIHZvaWQgbG9jaygpOwotICAg
IGJvb2wgdHJ5TG9jaygpOwotICAgIHZvaWQgdW5sb2NrKCk7Ci0gICAgYm9vbCBpc0xvY2tlZCgp
IGNvbnN0OworCisgICAgLy8gV2UgdXNlIHRoaXMgYWJzdHJhY3Rpb24gdG8gbWFrZSBpdCBlYXNp
ZXIgdG8gZ3JlcCBmb3IgcGxhY2VzIHdoZXJlIHdlIGxvY2sgY2VsbHMuCisgICAgLy8gdG8gbG9j
ayBhIGNlbGwgeW91IGNhbiBqdXN0IGRvOgorICAgIC8vIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
Y2VsbC0+Y2VsbExvY2tlcigpKTsKKyAgICBKU0NlbGxMb2NrJiBjZWxsTG9jaygpIHsgcmV0dXJu
ICpyZWludGVycHJldF9jYXN0PEpTQ2VsbExvY2sqPih0aGlzKTsgfQogICAgIAogICAgIEpTVHlw
ZSB0eXBlKCkgY29uc3Q7CiAgICAgSW5kZXhpbmdUeXBlIGluZGV4aW5nVHlwZUFuZE1pc2MoKSBj
b25zdDsKQEAgLTI3MiwxMCArMjc0LDkgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIGZy
aWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CisgICAgZnJpZW5kIGNsYXNzIEpTQ2Vs
bExvY2s7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogdG9PYmplY3RTbG93KEV4
ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUg
dm9pZCBsb2NrU2xvdygpOwotICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgdW5sb2NrU2xvdygp
OwogCiAgICAgU3RydWN0dXJlSUQgbV9zdHJ1Y3R1cmVJRDsKICAgICBJbmRleGluZ1R5cGUgbV9p
bmRleGluZ1R5cGVBbmRNaXNjOyAvLyBETyBOT1Qgc3RvcmUgdG8gdGhpcyBmaWVsZC4gQWx3YXlz
IENBUy4KQEAgLTI4NCw2ICsyODUsMTcgQEAgcHJpdmF0ZToKICAgICBDZWxsU3RhdGUgbV9jZWxs
U3RhdGU7CiB9OwogCitjbGFzcyBKU0NlbGxMb2NrIDogcHVibGljIEpTQ2VsbCB7CitwdWJsaWM6
CisgICAgdm9pZCBsb2NrKCk7CisgICAgYm9vbCB0cnlMb2NrKCk7CisgICAgdm9pZCB1bmxvY2so
KTsKKyAgICBib29sIGlzTG9ja2VkKCkgY29uc3Q7Citwcml2YXRlOgorICAgIEpTX0VYUE9SVF9Q
UklWQVRFIHZvaWQgbG9ja1Nsb3coKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHVubG9j
a1Nsb3coKTsKK307CisKIHRlbXBsYXRlPHR5cGVuYW1lIFRvLCB0eXBlbmFtZSBGcm9tPgogaW5s
aW5lIFRvIGpzQ2FzdChGcm9tKiBmcm9tKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDZWxsSW5saW5lcy5oCmluZGV4IDAwYjM5NDA1NDczNzI3YzdiYzJjNWJmYjM0Yzdk
MjUyYWJjZDRjNDQuLjgzNmQ4NTEwYTc1Zjc5NzVlMjQ5ZjA2YTU2Yjc4M2M2YTlkMTBlM2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgKQEAgLTMy
MywyNyArMzIzLDI3IEBAIGlubGluZSB2b2lkIEpTQ2VsbDo6Y2FsbERlc3RydWN0b3IoVk0mIHZt
KQogICAgIHphcCgpOwogfQogCi1pbmxpbmUgdm9pZCBKU0NlbGw6OmxvY2soKQoraW5saW5lIHZv
aWQgSlNDZWxsTG9jazo6bG9jaygpCiB7CiAgICAgQXRvbWljPEluZGV4aW5nVHlwZT4qIGxvY2sg
PSBiaXR3aXNlX2Nhc3Q8QXRvbWljPEluZGV4aW5nVHlwZT4qPigmbV9pbmRleGluZ1R5cGVBbmRN
aXNjKTsKICAgICBpZiAoVU5MSUtFTFkoIUluZGV4aW5nVHlwZUxvY2tBbGdvcml0aG06OmxvY2tG
YXN0KCpsb2NrKSkpCiAgICAgICAgIGxvY2tTbG93KCk7CiB9CiAKLWlubGluZSBib29sIEpTQ2Vs
bDo6dHJ5TG9jaygpCitpbmxpbmUgYm9vbCBKU0NlbGxMb2NrOjp0cnlMb2NrKCkKIHsKICAgICBB
dG9taWM8SW5kZXhpbmdUeXBlPiogbG9jayA9IGJpdHdpc2VfY2FzdDxBdG9taWM8SW5kZXhpbmdU
eXBlPio+KCZtX2luZGV4aW5nVHlwZUFuZE1pc2MpOwogICAgIHJldHVybiBJbmRleGluZ1R5cGVM
b2NrQWxnb3JpdGhtOjp0cnlMb2NrKCpsb2NrKTsKIH0KIAotaW5saW5lIHZvaWQgSlNDZWxsOjp1
bmxvY2soKQoraW5saW5lIHZvaWQgSlNDZWxsTG9jazo6dW5sb2NrKCkKIHsKICAgICBBdG9taWM8
SW5kZXhpbmdUeXBlPiogbG9jayA9IGJpdHdpc2VfY2FzdDxBdG9taWM8SW5kZXhpbmdUeXBlPio+
KCZtX2luZGV4aW5nVHlwZUFuZE1pc2MpOwogICAgIGlmIChVTkxJS0VMWSghSW5kZXhpbmdUeXBl
TG9ja0FsZ29yaXRobTo6dW5sb2NrRmFzdCgqbG9jaykpKQogICAgICAgICB1bmxvY2tTbG93KCk7
CiB9CiAKLWlubGluZSBib29sIEpTQ2VsbDo6aXNMb2NrZWQoKSBjb25zdAoraW5saW5lIGJvb2wg
SlNDZWxsTG9jazo6aXNMb2NrZWQoKSBjb25zdAogewogICAgIEF0b21pYzxJbmRleGluZ1R5cGU+
KiBsb2NrID0gYml0d2lzZV9jYXN0PEF0b21pYzxJbmRleGluZ1R5cGU+Kj4oJm1faW5kZXhpbmdU
eXBlQW5kTWlzYyk7CiAgICAgcmV0dXJuIEluZGV4aW5nVHlwZUxvY2tBbGdvcml0aG06OmlzTG9j
a2VkKCpsb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcApp
bmRleCA1YTRlN2Y5M2Y2YzdlOGMzYzliYmYxYmY5NmY3MTc0OWRkM2Y2NjU3Li4wNzhmNTBmZDVj
NTRjNjA2YWZkNTM1NjY1ODdjZjgxZDFlY2I4NzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0zODMsNyArMzgzLDcgQEAgQUxXQVlTX0lOTElORSBT
dHJ1Y3R1cmUqIEpTT2JqZWN0Ojp2aXNpdEJ1dHRlcmZseUltcGwoU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCiAgICAgbGFzdE9mZnNldCA9IHN0cnVjdHVyZS0+bGFzdE9mZnNldCgpOwogICAgIEluZGV4
aW5nVHlwZSBpbmRleGluZ1R5cGUgPSBzdHJ1Y3R1cmUtPmluZGV4aW5nVHlwZSgpOwogICAgIERl
cGVuZGVuY3kgaW5kZXhpbmdUeXBlRGVwZW5kZW5jeSA9IERlcGVuZGVuY3k6OmZlbmNlKGluZGV4
aW5nVHlwZSk7Ci0gICAgTG9ja2VyPEpTQ2VsbD4gbG9ja2VyKE5vTG9ja2luZ05lY2Vzc2FyeSk7
CisgICAgTG9ja2VyPEpTQ2VsbExvY2s+IGxvY2tlcihOb0xvY2tpbmdOZWNlc3NhcnkpOwogICAg
IHN3aXRjaCAoaW5kZXhpbmdUeXBlKSB7CiAgICAgY2FzZSBBTExfQ09OVElHVU9VU19JTkRFWElO
R19UWVBFUzoKICAgICBjYXNlIEFMTF9BUlJBWV9TVE9SQUdFX0lOREVYSU5HX1RZUEVTOgpAQCAt
MzkxLDcgKzM5MSw3IEBAIEFMV0FZU19JTkxJTkUgU3RydWN0dXJlKiBKU09iamVjdDo6dmlzaXRC
dXR0ZXJmbHlJbXBsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgICAgICAvLyB0aGF0IGNhbiBo
YXBwZW4gd2hlbiB0aGUgYnV0dGVyZmx5IGlzIHVzZWQgZm9yIGFycmF5IHN0b3JhZ2UuIFdlIGNv
bnNlcnZhdGl2ZWx5CiAgICAgICAgIC8vIGFzc3VtZSB0aGF0IGEgY29udGlndW91cyBidXR0ZXJm
bHkgbWF5IHRyYW5zZm9ybSBpbnRvIGFuIGFycmF5IHN0b3JhZ2Ugb25lLCB0aG91Z2gKICAgICAg
ICAgLy8gdGhpcyBpcyBwcm9iYWJseSBtb3JlIGNvbnNlcnZhdGl2ZSB0aGFuIG5lY2Vzc2FyeS4K
LSAgICAgICAgbG9ja2VyID0gTG9ja2VyPEpTQ2VsbD4oKnRoaXMpOworICAgICAgICBsb2NrZXIg
PSBob2xkTG9jayhjZWxsTG9jaygpKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgYnJlYWs7CkBAIC0xMzU4LDcgKzEzNTgsNyBAQCBBcnJheVN0b3JhZ2UqIEpTT2JqZWN0
Ojpjb252ZXJ0Q29udGlndW91c1RvQXJyYXlTdG9yYWdlKFZNJiB2bSwgTm9uUHJvcGVydHlUcmFu
cwogICAgIC8vIEZvcnR1bmF0ZWx5LCB3ZSBoYXZlIHRoZSBKU0NlbGwgbG9jayBmb3IgdGhpcyBw
dXJwb3NlIQogICAgIAogICAgIGlmICh2bS5oZWFwLm11dGF0b3JTaG91bGRCZUZlbmNlZCgpKSB7
Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soKnRoaXMpOworICAgICAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKGNlbGxMb2NrKCkpOwogICAgICAgICBtX2J1dHRlcmZseUluZGV4aW5n
TWFzayA9IG5ld1N0b3JhZ2UtPmJ1dHRlcmZseSgpLT5jb21wdXRlSW5kZXhpbmdNYXNrKCk7CiAg
ICAgICAgIHNldFN0cnVjdHVyZUlERGlyZWN0bHkobnVrZShzdHJ1Y3R1cmVJRCgpKSk7CiAgICAg
ICAgIFdURjo6c3RvcmVTdG9yZUZlbmNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcAppbmRleCA4MmJi
MGRjMzNkOGE3NTEwMjYzNjQyMGJjYzkxMjQwNWYzYTFiMGRiLi5jMzY2NDcwYWY2NTZjMDVjZmNi
MzM5ZTY0MjJhNjllNjQyYzg1NmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAKQEAgLTcxLDcgKzcx
LDcgQEAgdm9pZCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgdWludDMyX3QgaW5kZXhlZExlbmd0aCwgdWkKICAgICBtX2VuZEdlbmVyaWNQcm9wZXJ0eUlu
ZGV4ID0gdmVjdG9yLnNpemUoKTsKIAogICAgIHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBsb2Nr
RHVyaW5nTWFya2luZyh2bS5oZWFwLCAqdGhpcyk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gbG9j
a0R1cmluZ01hcmtpbmcodm0uaGVhcCwgY2VsbExvY2soKSk7CiAgICAgICAgIG1fcHJvcGVydHlO
YW1lcy5yZXNpemVUb0ZpdCh2ZWN0b3Iuc2l6ZSgpKTsKICAgICB9CiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IHZlY3Rvci5zaXplKCk7ICsraSkgewpAQCAtODksNyArODksNyBAQCB2b2lk
IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4oY2VsbCwgdmlz
aXRvcik7CiAgICAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiB0aGlzT2JqZWN0ID0ganNDYXN0
PEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcio+KGNlbGwpOwotICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2soKnRoaXNPYmplY3QpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sodGhpc09iamVj
dC0+Y2VsbExvY2soKSk7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0aGlzT2JqZWN0
LT5tX3Byb3BlcnR5TmFtZXMpCiAgICAgICAgIHZpc2l0b3IuYXBwZW5kKHByb3BlcnR5TmFtZSk7
CiAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9wcm90b3R5cGVDaGFpbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TcGFyc2VBcnJheVZhbHVlTWFw
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NwYXJzZUFycmF5VmFsdWVNYXAu
Y3BwCmluZGV4IDI0N2MwN2MyYjA3NDM1Mzg1YzM1OTEzMGQwMjBmNzVkZmVhNjZmMmYuLmU5OTI5
ODhlNGNiODM2ZDM2YWQxZTZiZGRlMjU1YzFjYzY1N2EwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1NwYXJzZUFycmF5VmFsdWVNYXAuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NwYXJzZUFycmF5VmFsdWVNYXAuY3BwCkBAIC03Nyw3
ICs3Nyw3IEBAIFNwYXJzZUFycmF5VmFsdWVNYXA6OkFkZFJlc3VsdCBTcGFyc2VBcnJheVZhbHVl
TWFwOjphZGQoSlNPYmplY3QqIGFycmF5LCB1bnNpZ25lCiAgICAgQWRkUmVzdWx0IHJlc3VsdDsK
ICAgICBzaXplX3QgY2FwYWNpdHk7CiAgICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRM
b2NrKCp0aGlzKTsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhjZWxsTG9jaygpKTsK
ICAgICAgICAgU3BhcnNlQXJyYXlFbnRyeSBlbnRyeTsKICAgICAgICAgZW50cnkuc2V0V2l0aG91
dFdyaXRlQmFycmllcihqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgCkBAIC05NSwxMyArOTUsMTMg
QEAgU3BhcnNlQXJyYXlWYWx1ZU1hcDo6QWRkUmVzdWx0IFNwYXJzZUFycmF5VmFsdWVNYXA6OmFk
ZChKU09iamVjdCogYXJyYXksIHVuc2lnbmUKIAogdm9pZCBTcGFyc2VBcnJheVZhbHVlTWFwOjpy
ZW1vdmUoaXRlcmF0b3IgaXQpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqdGhpcyk7
CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhjZWxsTG9jaygpKTsKICAgICBtX21hcC5yZW1v
dmUoaXQpOwogfQogCiB2b2lkIFNwYXJzZUFycmF5VmFsdWVNYXA6OnJlbW92ZSh1bnNpZ25lZCBp
KQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soKnRoaXMpOworICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2soY2VsbExvY2soKSk7CiAgICAgbV9tYXAucmVtb3ZlKGkpOwogfQogCkBAIC0x
OTcsOSArMTk3LDkgQEAgSlNWYWx1ZSBTcGFyc2VBcnJheUVudHJ5OjpnZXROb25TcGFyc2VNb2Rl
KCkgY29uc3QKIHZvaWQgU3BhcnNlQXJyYXlWYWx1ZU1hcDo6dmlzaXRDaGlsZHJlbihKU0NlbGwq
IHRoaXNPYmplY3QsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEJhc2U6OnZpc2l0Q2hp
bGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7Ci0gICAgCisKKyAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKHRoaXNPYmplY3QtPmNlbGxMb2NrKCkpOwogICAgIFNwYXJzZUFycmF5VmFsdWVNYXAq
IHRoaXNNYXAgPSBqc0Nhc3Q8U3BhcnNlQXJyYXlWYWx1ZU1hcCo+KHRoaXNPYmplY3QpOwotICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2soKnRoaXNNYXApOwogICAgIGl0ZXJhdG9yIGVuZCA9IHRo
aXNNYXAtPm1fbWFwLmVuZCgpOwogICAgIGZvciAoaXRlcmF0b3IgaXQgPSB0aGlzTWFwLT5tX21h
cC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgIHZpc2l0b3IuYXBwZW5kKGl0LT52
YWx1ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332775</attachid>
            <date>2018-01-31 10:15:37 -0800</date>
            <delta_ts>2018-01-31 10:57:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182320-20180131101536.patch</filename>
            <type>text/plain</type>
            <size>17929</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3OTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
OGMxNzQzZTkzN2M1MzgxZTMzOGRmNWQ1NjJkOTRiNzVmNDI5OGUyLi5mM2EwZGVjMjBjOWRlNDQ5
MzcwN2U4NjlmMTUyZTllNzcwMjNiOGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAxOC0wMS0zMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBDYW5vbmljYWxpemUgYXF1aXJpbmcgdGhlIEpTQ2VsbCBsb2NrLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyMzIwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQncyBjdXJy
ZW50bHkga2luZGEgYW5ub3lpbmcgdG8gZmlndXJlIG91dCB3aGVyZQorICAgICAgICB3ZSBhcXVp
cmUgdGhlIGEgSlNDZWxsJ3MgbG9jay4gVGhpcyBwYXRjaCBhZGRzIGEKKyAgICAgICAgaGVscGVy
IHRvIG1ha2UgaXQgZWFzaWVyIHRvIGdyZXAuLi4KKworICAgICAgICAqIGJ5dGVjb2RlL1VubGlu
a2VkQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2RlQmxvY2s6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpVbmxpbmtlZENvZGVCbG9jazo6c2V0SW5zdHJ1Y3Rp
b25zKToKKyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2RlQmxvY2s6OnNocmlua1RvRml0KToKKyAg
ICAgICAgKiBydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpFcnJvcklu
c3RhbmNlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6Om1h
dGVyaWFsaXplRXJyb3JJbmZvSWZOZWVkZWQpOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNl
Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuY3BwOgorICAgICAg
ICAoSlNDOjpKU0FycmF5OjpzaGlmdENvdW50V2l0aEFycmF5U3RvcmFnZSk6CisgICAgICAgIChK
U0M6OkpTQXJyYXk6OnVuc2hpZnRDb3VudFdpdGhBcnJheVN0b3JhZ2UpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNDZWxsLmg6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6Y2VsbExvY2spOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6dmlzaXRC
dXR0ZXJmbHlJbXBsKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmNvbnZlcnRDb250aWd1b3Vz
VG9BcnJheVN0b3JhZ2UpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjp2aXNpdENo
aWxkcmVuKToKKyAgICAgICAgKiBydW50aW1lL1NwYXJzZUFycmF5VmFsdWVNYXAuY3BwOgorICAg
ICAgICAoSlNDOjpTcGFyc2VBcnJheVZhbHVlTWFwOjphZGQpOgorICAgICAgICAoSlNDOjpTcGFy
c2VBcnJheVZhbHVlTWFwOjpyZW1vdmUpOgorICAgICAgICAoSlNDOjpTcGFyc2VBcnJheVZhbHVl
TWFwOjp2aXNpdENoaWxkcmVuKToKKwogMjAxOC0wMS0zMSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBKU0MgaW5jb3JyZWN0bHkgaW50ZXJwcmV0aW5nIHNjcmlw
dCwgc2V0cyBHbG9iYWwgUHJvcGVydHkgaW5zdGVhZCBvZiBHbG9iYWwgTGV4aWNhbCB2YXJpYWJs
ZSAoTGl0ZXJhbFBhcnNlciAvIEpTT05QIHBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcAppbmRleCA3MWYxY2E1NzY4Nzhj
MWVlZTlmM2E3ZjJhNTIxMGUzNjc0MTA4OTQ2Li5jZWZlM2NlNDE4OGYxODQ5ZTVhZDI1YjZlMTFm
MWE1ZjkzNjdkZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VW5saW5rZWRDb2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9VbmxpbmtlZENvZGVCbG9jay5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBVbmxpbmtlZENv
ZGVCbG9jazo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9y
KQogICAgIFVubGlua2VkQ29kZUJsb2NrKiB0aGlzT2JqZWN0ID0ganNDYXN0PFVubGlua2VkQ29k
ZUJsb2NrKj4oY2VsbCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0
LCBpbmZvKCkpOwogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7
Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqdGhpc09iamVjdCk7CisgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayh0aGlzT2JqZWN0LT5jZWxsTG9jaygpKTsKICAgICBmb3IgKEZ1bmN0aW9u
RXhwcmVzc2lvblZlY3Rvcjo6aXRlcmF0b3IgcHRyID0gdGhpc09iamVjdC0+bV9mdW5jdGlvbkRl
Y2xzLmJlZ2luKCksIGVuZCA9IHRoaXNPYmplY3QtPm1fZnVuY3Rpb25EZWNscy5lbmQoKTsgcHRy
ICE9IGVuZDsgKytwdHIpCiAgICAgICAgIHZpc2l0b3IuYXBwZW5kKCpwdHIpOwogICAgIGZvciAo
RnVuY3Rpb25FeHByZXNzaW9uVmVjdG9yOjppdGVyYXRvciBwdHIgPSB0aGlzT2JqZWN0LT5tX2Z1
bmN0aW9uRXhwcnMuYmVnaW4oKSwgZW5kID0gdGhpc09iamVjdC0+bV9mdW5jdGlvbkV4cHJzLmVu
ZCgpOyBwdHIgIT0gZW5kOyArK3B0cikKQEAgLTMxNyw3ICszMTcsNyBAQCB2b2lkIFVubGlua2Vk
Q29kZUJsb2NrOjpzZXRJbnN0cnVjdGlvbnMoc3RkOjp1bmlxdWVfcHRyPFVubGlua2VkSW5zdHJ1
Y3Rpb25TdHJlYQogewogICAgIEFTU0VSVChpbnN0cnVjdGlvbnMpOwogICAgIHsKLSAgICAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jaygqdGhpcyk7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2soY2VsbExvY2soKSk7CiAgICAgICAgIG1fdW5saW5rZWRJbnN0cnVjdGlvbnMgPSBXVEZN
b3ZlKGluc3RydWN0aW9ucyk7CiAgICAgfQogICAgIEhlYXA6OmhlYXAodGhpcyktPnJlcG9ydEV4
dHJhTWVtb3J5QWxsb2NhdGVkKG1fdW5saW5rZWRJbnN0cnVjdGlvbnMtPnNpemVJbkJ5dGVzKCkp
OwpAQCAtMzkyLDcgKzM5Miw3IEBAIHZvaWQgVW5saW5rZWRDb2RlQmxvY2s6OmFwcGx5TW9kaWZp
Y2F0aW9uKEJ5dGVjb2RlUmV3cml0ZXImIHJld3JpdGVyLCBVbnBhY2tlZEluCiAKIHZvaWQgVW5s
aW5rZWRDb2RlQmxvY2s6OnNocmlua1RvRml0KCkKIHsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRM
b2NrKCp0aGlzKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGNlbGxMb2NrKCkpOwogICAg
IAogICAgIG1fanVtcFRhcmdldHMuc2hyaW5rVG9GaXQoKTsKICAgICBtX2lkZW50aWZpZXJzLnNo
cmlua1RvRml0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VW5saW5rZWRDb2RlQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Vbmxp
bmtlZENvZGVCbG9jay5oCmluZGV4IGIyNGRmZGM1ZjVjYjY3YTUzMTczYWUwYTc4NTEwMjEyMTZm
ZjdkYjEuLmM3NTkxZTFiM2Y1M2EyMzE2ODNlYjliYWI3OTU4NDhmYjczZWEyNTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oCkBA
IC0xNjAsNyArMTYwLDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgY3JlYXRlUmFyZURhdGFJ
Zk5lY2Vzc2FyeSgpOwogICAgICAgICBWTSYgdm0gPSAqdGhpcy0+dm0oKTsKLSAgICAgICAgYXV0
byBsb2NrZXIgPSBsb2NrRHVyaW5nTWFya2luZyh2bS5oZWFwLCAqdGhpcyk7CisgICAgICAgIGF1
dG8gbG9ja2VyID0gbG9ja0R1cmluZ01hcmtpbmcodm0uaGVhcCwgY2VsbExvY2soKSk7CiAgICAg
ICAgIHVuc2lnbmVkIHNpemUgPSBtX3JhcmVEYXRhLT5tX3JlZ2V4cHMuc2l6ZSgpOwogICAgICAg
ICBtX3JhcmVEYXRhLT5tX3JlZ2V4cHMuYXBwZW5kKFdyaXRlQmFycmllcjxSZWdFeHA+KHZtLCB0
aGlzLCByKSk7CiAgICAgICAgIHJldHVybiBzaXplOwpAQCAtMTkxLDcgKzE5MSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGFkZFNldENvbnN0YW50KElkZW50aWZpZXJTZXQmIHNldCkKICAgICB7CiAg
ICAgICAgIFZNJiB2bSA9ICp0aGlzLT52bSgpOwotICAgICAgICBhdXRvIGxvY2tlciA9IGxvY2tE
dXJpbmdNYXJraW5nKHZtLmhlYXAsICp0aGlzKTsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBsb2Nr
RHVyaW5nTWFya2luZyh2bS5oZWFwLCBjZWxsTG9jaygpKTsKICAgICAgICAgdW5zaWduZWQgcmVz
dWx0ID0gbV9jb25zdGFudFJlZ2lzdGVycy5zaXplKCk7CiAgICAgICAgIG1fY29uc3RhbnRSZWdp
c3RlcnMuYXBwZW5kKFdyaXRlQmFycmllcjxVbmtub3duPigpKTsKICAgICAgICAgbV9jb25zdGFu
dHNTb3VyY2VDb2RlUmVwcmVzZW50YXRpb24uYXBwZW5kKFNvdXJjZUNvZGVSZXByZXNlbnRhdGlv
bjo6T3RoZXIpOwpAQCAtMjAxLDcgKzIwMSw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBhZGRD
b25zdGFudChKU1ZhbHVlIHYsIFNvdXJjZUNvZGVSZXByZXNlbnRhdGlvbiBzb3VyY2VDb2RlUmVw
cmVzZW50YXRpb24gPSBTb3VyY2VDb2RlUmVwcmVzZW50YXRpb246Ok90aGVyKQogICAgIHsKICAg
ICAgICAgVk0mIHZtID0gKnRoaXMtPnZtKCk7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gbG9ja0R1
cmluZ01hcmtpbmcodm0uaGVhcCwgKnRoaXMpOworICAgICAgICBhdXRvIGxvY2tlciA9IGxvY2tE
dXJpbmdNYXJraW5nKHZtLmhlYXAsIGNlbGxMb2NrKCkpOwogICAgICAgICB1bnNpZ25lZCByZXN1
bHQgPSBtX2NvbnN0YW50UmVnaXN0ZXJzLnNpemUoKTsKICAgICAgICAgbV9jb25zdGFudFJlZ2lz
dGVycy5hcHBlbmQoV3JpdGVCYXJyaWVyPFVua25vd24+KCkpOwogICAgICAgICBtX2NvbnN0YW50
UmVnaXN0ZXJzLmxhc3QoKS5zZXQodm0sIHRoaXMsIHYpOwpAQCAtMjExLDcgKzIxMSw3IEBAIHB1
YmxpYzoKICAgICB1bnNpZ25lZCBhZGRDb25zdGFudChMaW5rVGltZUNvbnN0YW50IHR5cGUpCiAg
ICAgewogICAgICAgICBWTSYgdm0gPSAqdGhpcy0+dm0oKTsKLSAgICAgICAgYXV0byBsb2NrZXIg
PSBsb2NrRHVyaW5nTWFya2luZyh2bS5oZWFwLCAqdGhpcyk7CisgICAgICAgIGF1dG8gbG9ja2Vy
ID0gbG9ja0R1cmluZ01hcmtpbmcodm0uaGVhcCwgY2VsbExvY2soKSk7CiAgICAgICAgIHVuc2ln
bmVkIHJlc3VsdCA9IG1fY29uc3RhbnRSZWdpc3RlcnMuc2l6ZSgpOwogICAgICAgICBBU1NFUlQo
cmVzdWx0KTsKICAgICAgICAgdW5zaWduZWQgaW5kZXggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
dHlwZSk7CkBAIC0yNzQsNyArMjc0LDcgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGFkZEZ1bmN0
aW9uRGVjbChVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogbikKICAgICB7CiAgICAgICAgIFZN
JiB2bSA9ICp0aGlzLT52bSgpOwotICAgICAgICBhdXRvIGxvY2tlciA9IGxvY2tEdXJpbmdNYXJr
aW5nKHZtLmhlYXAsICp0aGlzKTsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBsb2NrRHVyaW5nTWFy
a2luZyh2bS5oZWFwLCBjZWxsTG9jaygpKTsKICAgICAgICAgdW5zaWduZWQgc2l6ZSA9IG1fZnVu
Y3Rpb25EZWNscy5zaXplKCk7CiAgICAgICAgIG1fZnVuY3Rpb25EZWNscy5hcHBlbmQoV3JpdGVC
YXJyaWVyPFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlPigpKTsKICAgICAgICAgbV9mdW5jdGlv
bkRlY2xzLmxhc3QoKS5zZXQodm0sIHRoaXMsIG4pOwpAQCAtMjg1LDcgKzI4NSw3IEBAIHB1Ymxp
YzoKICAgICB1bnNpZ25lZCBhZGRGdW5jdGlvbkV4cHIoVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGUqIG4pCiAgICAgewogICAgICAgICBWTSYgdm0gPSAqdGhpcy0+dm0oKTsKLSAgICAgICAgYXV0
byBsb2NrZXIgPSBsb2NrRHVyaW5nTWFya2luZyh2bS5oZWFwLCAqdGhpcyk7CisgICAgICAgIGF1
dG8gbG9ja2VyID0gbG9ja0R1cmluZ01hcmtpbmcodm0uaGVhcCwgY2VsbExvY2soKSk7CiAgICAg
ICAgIHVuc2lnbmVkIHNpemUgPSBtX2Z1bmN0aW9uRXhwcnMuc2l6ZSgpOwogICAgICAgICBtX2Z1
bmN0aW9uRXhwcnMuYXBwZW5kKFdyaXRlQmFycmllcjxVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJs
ZT4oKSk7CiAgICAgICAgIG1fZnVuY3Rpb25FeHBycy5sYXN0KCkuc2V0KHZtLCB0aGlzLCBuKTsK
QEAgLTQxNSw3ICs0MTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlUmFyZURhdGFJZk5l
Y2Vzc2FyeSgpCiAgICAgewogICAgICAgICBpZiAoIW1fcmFyZURhdGEpIHsKLSAgICAgICAgICAg
IGF1dG8gbG9ja2VyID0gbG9ja0R1cmluZ01hcmtpbmcoKmhlYXAoKSwgKnRoaXMpOworICAgICAg
ICAgICAgYXV0byBsb2NrZXIgPSBsb2NrRHVyaW5nTWFya2luZygqaGVhcCgpLCBjZWxsTG9jaygp
KTsKICAgICAgICAgICAgIG1fcmFyZURhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFJhcmVEYXRhPigp
OwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
cnJvckluc3RhbmNlLmNwcAppbmRleCA0MGM2MjU4ZTQ0YWViZGM0MWMzNzk5ZTI3NjY1ZTlmYTJm
Yjg1MzliLi5jMTcyNDI4OTE0NWM5Y2RlNDQyOTUyNTg1NjBhMDM0MzU3ZDkyNzJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcApAQCAtMTE3
LDcgKzExNyw3IEBAIHZvaWQgRXJyb3JJbnN0YW5jZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRl
KiBleGVjLCBWTSYgdm0sIGNvbnN0IFN0cmluZyYgbWVzc2FnCiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8VmVjdG9yPFN0YWNrRnJhbWU+PiBzdGFja1RyYWNlID0gZ2V0U3RhY2tUcmFjZShleGVjLCB2
bSwgdGhpcywgdXNlQ3VycmVudEZyYW1lKTsKICAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2soKnRoaXMpOworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGNlbGxMb2Nr
KCkpOwogICAgICAgICBtX3N0YWNrVHJhY2UgPSBXVEZNb3ZlKHN0YWNrVHJhY2UpOwogICAgIH0K
ICAgICB2bS5oZWFwLndyaXRlQmFycmllcih0aGlzKTsKQEAgLTIwOSw3ICsyMDksNyBAQCBib29s
IEVycm9ySW5zdGFuY2U6Om1hdGVyaWFsaXplRXJyb3JJbmZvSWZOZWVkZWQoVk0mIHZtKQogICAg
IAogICAgIGFkZEVycm9ySW5mbyh2bSwgbV9zdGFja1RyYWNlLmdldCgpLCB0aGlzKTsKICAgICB7
Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soKnRoaXMpOworICAgICAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKGNlbGxMb2NrKCkpOwogICAgICAgICBtX3N0YWNrVHJhY2UgPSBudWxs
cHRyOwogICAgIH0KICAgICAKQEAgLTIzNCw3ICsyMzQsNyBAQCB2b2lkIEVycm9ySW5zdGFuY2U6
OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICBC
YXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOwogCiAgICAgewotICAgICAg
ICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKCp0aGlzT2JqZWN0KTsKKyAgICAgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayh0aGlzT2JqZWN0LT5jZWxsTG9jaygpKTsKICAgICAgICAgaWYgKHRoaXNP
YmplY3QtPm1fc3RhY2tUcmFjZSkgewogICAgICAgICAgICAgZm9yIChTdGFja0ZyYW1lJiBmcmFt
ZSA6ICp0aGlzT2JqZWN0LT5tX3N0YWNrVHJhY2UpCiAgICAgICAgICAgICAgICAgZnJhbWUudmlz
aXRDaGlsZHJlbih2aXNpdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eS5jcHAKaW5kZXggODg0YjBhMmMxNDk2YThjZmEyNWFjZjVlMGEzMGE5Zjg4Y2RhZDExMS4uZmQ2
NzcwZGQ5ZTM3MmFjZDY5MzI1N2JhMmUzYmU2NzM1MDA1NzZlNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKQEAgLTgwMiw3ICs4MDIsNyBAQCBib29sIEpTQXJy
YXk6OnNoaWZ0Q291bnRXaXRoQXJyYXlTdG9yYWdlKFZNJiB2bSwgdW5zaWduZWQgc3RhcnRJbmRl
eCwgdW5zaWduZWQgYwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKICAgICBEaXNhbGxvd0dD
IGRpc2FsbG93R0M7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqdGhpcyk7CisgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhjZWxsTG9jaygpKTsKICAgICAKICAgICBpZiAoc3RhcnRJbmRl
eCArIGNvdW50ID4gdmVjdG9yTGVuZ3RoKQogICAgICAgICBjb3VudCA9IHZlY3Rvckxlbmd0aCAt
IHN0YXJ0SW5kZXg7CkBAIC0xMDA1LDcgKzEwMDUsNyBAQCBib29sIEpTQXJyYXk6OnVuc2hpZnRD
b3VudFdpdGhBcnJheVN0b3JhZ2UoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBzdGFydEluZGV4
LAogICAgIC8vIE5lZWQgdG8gaGF2ZSBHQyBkZWZlcnJlZCBhcm91bmQgdGhlIHVuc2hpZnRDb3Vu
dFNsb3dDYXNlKCksIHNpbmNlIHRoYXQgbGVhdmVzIHRoZSBidXR0ZXJmbHkgaW4KICAgICAvLyBh
IHdlaXJkIHN0YXRlOiBzb21lIHBhcnRzIG9mIGl0IHdpbGwgYmUgbGVmdCB1bmluaXRpYWxpemVk
LCB3aGljaCB3ZSB3aWxsIGZpbGwgaW4gaGVyZS4KICAgICBEZWZlckdDIGRlZmVyR0Modm0uaGVh
cCk7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jaygqdGhpcyk7CisgICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhjZWxsTG9jaygpKTsKICAgICAKICAgICBpZiAobW92ZUZyb250ICYmIHN0b3Jh
Z2UtPm1faW5kZXhCaWFzID49IGNvdW50KSB7CiAgICAgICAgIEJ1dHRlcmZseSogbmV3QnV0dGVy
Zmx5ID0gc3RvcmFnZS0+YnV0dGVyZmx5KCktPnVuc2hpZnQoc3RydWN0dXJlKCksIGNvdW50KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCmluZGV4IDI0YTc0YmUxZTI4
MTFjNTVkMjFmZjFjYmIxMGQ0YTA0YjYyNmZjNDkuLjIzYzZkNDFhNzMzZDI2NmVhNjkwOWE5NDU3
ODcxZTRhMGNmNjA2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNw
cApAQCAtMzA4LDEzICszMDgsMTMgQEAgSlNWYWx1ZSBKU0NlbGw6OmdldFByb3RvdHlwZShKU09i
amVjdCosIEV4ZWNTdGF0ZSopCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0K
IAotdm9pZCBKU0NlbGw6OmxvY2tTbG93KCkKK3ZvaWQgSlNDZWxsTG9jazo6bG9ja1Nsb3coKQog
ewogICAgIEF0b21pYzxJbmRleGluZ1R5cGU+KiBsb2NrID0gYml0d2lzZV9jYXN0PEF0b21pYzxJ
bmRleGluZ1R5cGU+Kj4oJm1faW5kZXhpbmdUeXBlQW5kTWlzYyk7CiAgICAgSW5kZXhpbmdUeXBl
TG9ja0FsZ29yaXRobTo6bG9ja1Nsb3coKmxvY2spOwogfQogCi12b2lkIEpTQ2VsbDo6dW5sb2Nr
U2xvdygpCit2b2lkIEpTQ2VsbExvY2s6OnVubG9ja1Nsb3coKQogewogICAgIEF0b21pYzxJbmRl
eGluZ1R5cGU+KiBsb2NrID0gYml0d2lzZV9jYXN0PEF0b21pYzxJbmRleGluZ1R5cGU+Kj4oJm1f
aW5kZXhpbmdUeXBlQW5kTWlzYyk7CiAgICAgSW5kZXhpbmdUeXBlTG9ja0FsZ29yaXRobTo6dW5s
b2NrU2xvdygqbG9jayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCmluZGV4
IDRkYTc3YWJkYjQ5NTA2NTJmZDUzNDk0MmEyYmI2NTEwMmRhMDBjMTQuLjY0Yzg0YWQ1NGU2YzI3
ODJhZGZkMDNhZTZiYzEwOTY0NjJhYjZhNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5oCkBAIC01MCw2ICs1MCw3IEBAIGNsYXNzIFByb3BlcnR5RGVzY3JpcHRvcjsKIGNs
YXNzIFByb3BlcnR5TmFtZTsKIGNsYXNzIFByb3BlcnR5TmFtZUFycmF5OwogY2xhc3MgU3RydWN0
dXJlOworY2xhc3MgSlNDZWxsTG9jazsKIAogZW51bSBjbGFzcyBHQ0RlZmVycmFsQ29udGV4dEFy
Z1ByZXNlbnNlIHsKICAgICBIYXNBcmcsCkBAIC0xMjAsMTAgKzEyMSwxMSBAQCBwdWJsaWM6CiAg
ICAgLy8gRWFjaCBjZWxsIGhhcyBhIGJ1aWx0LWluIGxvY2suIEN1cnJlbnRseSBpdCdzIHNpbXBs
eSBhdmFpbGFibGUgZm9yIHVzZSBpZiB5b3UgbmVlZCBpdC4gSXQncwogICAgIC8vIGEgZnVsbC1i
bG93biBXVEY6OkxvY2suIE5vdGUgdGhhdCB0aGlzIGxvY2sgaXMgY3VycmVudGx5IHVzZWQgaW4g
SlNBcnJheSBhbmQgdGhhdCBsb2NrJ3MKICAgICAvLyBvcmRlcmluZyB3aXRoIHRoZSBTdHJ1Y3R1
cmUgbG9jayBpcyB0aGF0IHRoZSBTdHJ1Y3R1cmUgbG9jayBtdXN0IGJlIGFjcXVpcmVkIGZpcnN0
LgotICAgIHZvaWQgbG9jaygpOwotICAgIGJvb2wgdHJ5TG9jaygpOwotICAgIHZvaWQgdW5sb2Nr
KCk7Ci0gICAgYm9vbCBpc0xvY2tlZCgpIGNvbnN0OworCisgICAgLy8gV2UgdXNlIHRoaXMgYWJz
dHJhY3Rpb24gdG8gbWFrZSBpdCBlYXNpZXIgdG8gZ3JlcCBmb3IgcGxhY2VzIHdoZXJlIHdlIGxv
Y2sgY2VsbHMuCisgICAgLy8gdG8gbG9jayBhIGNlbGwgeW91IGNhbiBqdXN0IGRvOgorICAgIC8v
IGF1dG8gbG9ja2VyID0gaG9sZExvY2soY2VsbC0+Y2VsbExvY2tlcigpKTsKKyAgICBKU0NlbGxM
b2NrJiBjZWxsTG9jaygpIHsgcmV0dXJuICpyZWludGVycHJldF9jYXN0PEpTQ2VsbExvY2sqPih0
aGlzKTsgfQogICAgIAogICAgIEpTVHlwZSB0eXBlKCkgY29uc3Q7CiAgICAgSW5kZXhpbmdUeXBl
IGluZGV4aW5nVHlwZUFuZE1pc2MoKSBjb25zdDsKQEAgLTI3MiwxMCArMjc0LDkgQEAgcHJvdGVj
dGVkOgogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7
CisgICAgZnJpZW5kIGNsYXNzIEpTQ2VsbExvY2s7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBK
U09iamVjdCogdG9PYmplY3RTbG93KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7
Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBsb2NrU2xvdygpOwotICAgIEpTX0VYUE9SVF9Q
UklWQVRFIHZvaWQgdW5sb2NrU2xvdygpOwogCiAgICAgU3RydWN0dXJlSUQgbV9zdHJ1Y3R1cmVJ
RDsKICAgICBJbmRleGluZ1R5cGUgbV9pbmRleGluZ1R5cGVBbmRNaXNjOyAvLyBETyBOT1Qgc3Rv
cmUgdG8gdGhpcyBmaWVsZC4gQWx3YXlzIENBUy4KQEAgLTI4NCw2ICsyODUsMTcgQEAgcHJpdmF0
ZToKICAgICBDZWxsU3RhdGUgbV9jZWxsU3RhdGU7CiB9OwogCitjbGFzcyBKU0NlbGxMb2NrIDog
cHVibGljIEpTQ2VsbCB7CitwdWJsaWM6CisgICAgdm9pZCBsb2NrKCk7CisgICAgYm9vbCB0cnlM
b2NrKCk7CisgICAgdm9pZCB1bmxvY2soKTsKKyAgICBib29sIGlzTG9ja2VkKCkgY29uc3Q7Citw
cml2YXRlOgorICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgbG9ja1Nsb3coKTsKKyAgICBKU19F
WFBPUlRfUFJJVkFURSB2b2lkIHVubG9ja1Nsb3coKTsKK307CisKIHRlbXBsYXRlPHR5cGVuYW1l
IFRvLCB0eXBlbmFtZSBGcm9tPgogaW5saW5lIFRvIGpzQ2FzdChGcm9tKiBmcm9tKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCmluZGV4IDAwYjM5
NDA1NDczNzI3YzdiYzJjNWJmYjM0YzdkMjUyYWJjZDRjNDQuLjgzNmQ4NTEwYTc1Zjc5NzVlMjQ5
ZjA2YTU2Yjc4M2M2YTlkMTBlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ2VsbElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGxJbmxpbmVzLmgKQEAgLTMyMywyNyArMzIzLDI3IEBAIGlubGluZSB2b2lkIEpTQ2Vs
bDo6Y2FsbERlc3RydWN0b3IoVk0mIHZtKQogICAgIHphcCgpOwogfQogCi1pbmxpbmUgdm9pZCBK
U0NlbGw6OmxvY2soKQoraW5saW5lIHZvaWQgSlNDZWxsTG9jazo6bG9jaygpCiB7CiAgICAgQXRv
bWljPEluZGV4aW5nVHlwZT4qIGxvY2sgPSBiaXR3aXNlX2Nhc3Q8QXRvbWljPEluZGV4aW5nVHlw
ZT4qPigmbV9pbmRleGluZ1R5cGVBbmRNaXNjKTsKICAgICBpZiAoVU5MSUtFTFkoIUluZGV4aW5n
VHlwZUxvY2tBbGdvcml0aG06OmxvY2tGYXN0KCpsb2NrKSkpCiAgICAgICAgIGxvY2tTbG93KCk7
CiB9CiAKLWlubGluZSBib29sIEpTQ2VsbDo6dHJ5TG9jaygpCitpbmxpbmUgYm9vbCBKU0NlbGxM
b2NrOjp0cnlMb2NrKCkKIHsKICAgICBBdG9taWM8SW5kZXhpbmdUeXBlPiogbG9jayA9IGJpdHdp
c2VfY2FzdDxBdG9taWM8SW5kZXhpbmdUeXBlPio+KCZtX2luZGV4aW5nVHlwZUFuZE1pc2MpOwog
ICAgIHJldHVybiBJbmRleGluZ1R5cGVMb2NrQWxnb3JpdGhtOjp0cnlMb2NrKCpsb2NrKTsKIH0K
IAotaW5saW5lIHZvaWQgSlNDZWxsOjp1bmxvY2soKQoraW5saW5lIHZvaWQgSlNDZWxsTG9jazo6
dW5sb2NrKCkKIHsKICAgICBBdG9taWM8SW5kZXhpbmdUeXBlPiogbG9jayA9IGJpdHdpc2VfY2Fz
dDxBdG9taWM8SW5kZXhpbmdUeXBlPio+KCZtX2luZGV4aW5nVHlwZUFuZE1pc2MpOwogICAgIGlm
IChVTkxJS0VMWSghSW5kZXhpbmdUeXBlTG9ja0FsZ29yaXRobTo6dW5sb2NrRmFzdCgqbG9jaykp
KQogICAgICAgICB1bmxvY2tTbG93KCk7CiB9CiAKLWlubGluZSBib29sIEpTQ2VsbDo6aXNMb2Nr
ZWQoKSBjb25zdAoraW5saW5lIGJvb2wgSlNDZWxsTG9jazo6aXNMb2NrZWQoKSBjb25zdAogewog
ICAgIEF0b21pYzxJbmRleGluZ1R5cGU+KiBsb2NrID0gYml0d2lzZV9jYXN0PEF0b21pYzxJbmRl
eGluZ1R5cGU+Kj4oJm1faW5kZXhpbmdUeXBlQW5kTWlzYyk7CiAgICAgcmV0dXJuIEluZGV4aW5n
VHlwZUxvY2tBbGdvcml0aG06OmlzTG9ja2VkKCpsb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCA1YTRlN2Y5M2Y2YzdlOGMzYzliYmYxYmY5NmY3
MTc0OWRkM2Y2NjU3Li4wNzhmNTBmZDVjNTRjNjA2YWZkNTM1NjY1ODdjZjgxZDFlY2I4NzBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0zODMsNyAr
MzgzLDcgQEAgQUxXQVlTX0lOTElORSBTdHJ1Y3R1cmUqIEpTT2JqZWN0Ojp2aXNpdEJ1dHRlcmZs
eUltcGwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgbGFzdE9mZnNldCA9IHN0cnVjdHVyZS0+
bGFzdE9mZnNldCgpOwogICAgIEluZGV4aW5nVHlwZSBpbmRleGluZ1R5cGUgPSBzdHJ1Y3R1cmUt
PmluZGV4aW5nVHlwZSgpOwogICAgIERlcGVuZGVuY3kgaW5kZXhpbmdUeXBlRGVwZW5kZW5jeSA9
IERlcGVuZGVuY3k6OmZlbmNlKGluZGV4aW5nVHlwZSk7Ci0gICAgTG9ja2VyPEpTQ2VsbD4gbG9j
a2VyKE5vTG9ja2luZ05lY2Vzc2FyeSk7CisgICAgTG9ja2VyPEpTQ2VsbExvY2s+IGxvY2tlcihO
b0xvY2tpbmdOZWNlc3NhcnkpOwogICAgIHN3aXRjaCAoaW5kZXhpbmdUeXBlKSB7CiAgICAgY2Fz
ZSBBTExfQ09OVElHVU9VU19JTkRFWElOR19UWVBFUzoKICAgICBjYXNlIEFMTF9BUlJBWV9TVE9S
QUdFX0lOREVYSU5HX1RZUEVTOgpAQCAtMzkxLDcgKzM5MSw3IEBAIEFMV0FZU19JTkxJTkUgU3Ry
dWN0dXJlKiBKU09iamVjdDo6dmlzaXRCdXR0ZXJmbHlJbXBsKFNsb3RWaXNpdG9yJiB2aXNpdG9y
KQogICAgICAgICAvLyB0aGF0IGNhbiBoYXBwZW4gd2hlbiB0aGUgYnV0dGVyZmx5IGlzIHVzZWQg
Zm9yIGFycmF5IHN0b3JhZ2UuIFdlIGNvbnNlcnZhdGl2ZWx5CiAgICAgICAgIC8vIGFzc3VtZSB0
aGF0IGEgY29udGlndW91cyBidXR0ZXJmbHkgbWF5IHRyYW5zZm9ybSBpbnRvIGFuIGFycmF5IHN0
b3JhZ2Ugb25lLCB0aG91Z2gKICAgICAgICAgLy8gdGhpcyBpcyBwcm9iYWJseSBtb3JlIGNvbnNl
cnZhdGl2ZSB0aGFuIG5lY2Vzc2FyeS4KLSAgICAgICAgbG9ja2VyID0gTG9ja2VyPEpTQ2VsbD4o
KnRoaXMpOworICAgICAgICBsb2NrZXIgPSBob2xkTG9jayhjZWxsTG9jaygpKTsKICAgICAgICAg
YnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CkBAIC0xMzU4LDcgKzEzNTgsNyBA
QCBBcnJheVN0b3JhZ2UqIEpTT2JqZWN0Ojpjb252ZXJ0Q29udGlndW91c1RvQXJyYXlTdG9yYWdl
KFZNJiB2bSwgTm9uUHJvcGVydHlUcmFucwogICAgIC8vIEZvcnR1bmF0ZWx5LCB3ZSBoYXZlIHRo
ZSBKU0NlbGwgbG9jayBmb3IgdGhpcyBwdXJwb3NlIQogICAgIAogICAgIGlmICh2bS5oZWFwLm11
dGF0b3JTaG91bGRCZUZlbmNlZCgpKSB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
KnRoaXMpOworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGNlbGxMb2NrKCkpOwogICAg
ICAgICBtX2J1dHRlcmZseUluZGV4aW5nTWFzayA9IG5ld1N0b3JhZ2UtPmJ1dHRlcmZseSgpLT5j
b21wdXRlSW5kZXhpbmdNYXNrKCk7CiAgICAgICAgIHNldFN0cnVjdHVyZUlERGlyZWN0bHkobnVr
ZShzdHJ1Y3R1cmVJRCgpKSk7CiAgICAgICAgIFdURjo6c3RvcmVTdG9yZUZlbmNlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yLmNwcAppbmRleCA4MmJiMGRjMzNkOGE3NTEwMjYzNjQyMGJjYzkxMjQwNWYzYTFi
MGRiLi5jMzY2NDcwYWY2NTZjMDVjZmNiMzM5ZTY0MjJhNjllNjQyYzg1NmY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51
bWVyYXRvci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0
b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgdWludDMyX3QgaW5kZXhlZExlbmd0aCwgdWkKICAg
ICBtX2VuZEdlbmVyaWNQcm9wZXJ0eUluZGV4ID0gdmVjdG9yLnNpemUoKTsKIAogICAgIHsKLSAg
ICAgICAgYXV0byBsb2NrZXIgPSBsb2NrRHVyaW5nTWFya2luZyh2bS5oZWFwLCAqdGhpcyk7Cisg
ICAgICAgIGF1dG8gbG9ja2VyID0gbG9ja0R1cmluZ01hcmtpbmcodm0uaGVhcCwgY2VsbExvY2so
KSk7CiAgICAgICAgIG1fcHJvcGVydHlOYW1lcy5yZXNpemVUb0ZpdCh2ZWN0b3Iuc2l6ZSgpKTsK
ICAgICB9CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHZlY3Rvci5zaXplKCk7ICsraSkg
ewpAQCAtODksNyArODksNyBAQCB2b2lkIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6dmlzaXRD
aGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEJhc2U6
OnZpc2l0Q2hpbGRyZW4oY2VsbCwgdmlzaXRvcik7CiAgICAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcio+KGNlbGwp
OwotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soKnRoaXNPYmplY3QpOworICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2sodGhpc09iamVjdC0+Y2VsbExvY2soKSk7CiAgICAgZm9yIChhdXRvJiBw
cm9wZXJ0eU5hbWUgOiB0aGlzT2JqZWN0LT5tX3Byb3BlcnR5TmFtZXMpCiAgICAgICAgIHZpc2l0
b3IuYXBwZW5kKHByb3BlcnR5TmFtZSk7CiAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+
bV9wcm90b3R5cGVDaGFpbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TcGFyc2VBcnJheVZhbHVlTWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1NwYXJzZUFycmF5VmFsdWVNYXAuY3BwCmluZGV4IDI0N2MwN2MyYjA3NDM1Mzg1YzM1OTEz
MGQwMjBmNzVkZmVhNjZmMmYuLmU5OTI5ODhlNGNiODM2ZDM2YWQxZTZiZGRlMjU1YzFjYzY1N2Ew
YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NwYXJzZUFycmF5
VmFsdWVNYXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NwYXJzZUFy
cmF5VmFsdWVNYXAuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIFNwYXJzZUFycmF5VmFsdWVNYXA6OkFk
ZFJlc3VsdCBTcGFyc2VBcnJheVZhbHVlTWFwOjphZGQoSlNPYmplY3QqIGFycmF5LCB1bnNpZ25l
CiAgICAgQWRkUmVzdWx0IHJlc3VsdDsKICAgICBzaXplX3QgY2FwYWNpdHk7CiAgICAgewotICAg
ICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKCp0aGlzKTsKKyAgICAgICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhjZWxsTG9jaygpKTsKICAgICAgICAgU3BhcnNlQXJyYXlFbnRyeSBlbnRyeTsK
ICAgICAgICAgZW50cnkuc2V0V2l0aG91dFdyaXRlQmFycmllcihqc1VuZGVmaW5lZCgpKTsKICAg
ICAgICAgCkBAIC05NSwxMyArOTUsMTMgQEAgU3BhcnNlQXJyYXlWYWx1ZU1hcDo6QWRkUmVzdWx0
IFNwYXJzZUFycmF5VmFsdWVNYXA6OmFkZChKU09iamVjdCogYXJyYXksIHVuc2lnbmUKIAogdm9p
ZCBTcGFyc2VBcnJheVZhbHVlTWFwOjpyZW1vdmUoaXRlcmF0b3IgaXQpCiB7Ci0gICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jaygqdGhpcyk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhjZWxs
TG9jaygpKTsKICAgICBtX21hcC5yZW1vdmUoaXQpOwogfQogCiB2b2lkIFNwYXJzZUFycmF5VmFs
dWVNYXA6OnJlbW92ZSh1bnNpZ25lZCBpKQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
KnRoaXMpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soY2VsbExvY2soKSk7CiAgICAgbV9t
YXAucmVtb3ZlKGkpOwogfQogCkBAIC0xOTcsOSArMTk3LDkgQEAgSlNWYWx1ZSBTcGFyc2VBcnJh
eUVudHJ5OjpnZXROb25TcGFyc2VNb2RlKCkgY29uc3QKIHZvaWQgU3BhcnNlQXJyYXlWYWx1ZU1h
cDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIHRoaXNPYmplY3QsIFNsb3RWaXNpdG9yJiB2aXNpdG9y
KQogewogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7Ci0gICAg
CisKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKHRoaXNPYmplY3QtPmNlbGxMb2NrKCkpOwog
ICAgIFNwYXJzZUFycmF5VmFsdWVNYXAqIHRoaXNNYXAgPSBqc0Nhc3Q8U3BhcnNlQXJyYXlWYWx1
ZU1hcCo+KHRoaXNPYmplY3QpOwotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soKnRoaXNNYXAp
OwogICAgIGl0ZXJhdG9yIGVuZCA9IHRoaXNNYXAtPm1fbWFwLmVuZCgpOwogICAgIGZvciAoaXRl
cmF0b3IgaXQgPSB0aGlzTWFwLT5tX21hcC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAg
ICAgIHZpc2l0b3IuYXBwZW5kKGl0LT52YWx1ZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>