<?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>45365</bug_id>
          
          <creation_ts>2010-09-07 22:40:09 -0700</creation_ts>
          <short_desc>Remove support for non-lazy attach and fix frames to load from insertedIntoDocument instead of attach</short_desc>
          <delta_ts>2011-06-30 16:25:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>45737</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>ayao</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jamesr</cc>
    
    <cc>jeffcz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>275608</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-07 22:40:09 -0700</bug_when>
    <thetext>Remove support for non-lazy attach and fix frames to load from insertedIntoDocument instead of attach</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275610</commentid>
    <comment_count>1</comment_count>
      <attachid>66842</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-07 22:43:54 -0700</bug_when>
    <thetext>Created attachment 66842
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275611</commentid>
    <comment_count>2</comment_count>
      <attachid>66842</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-07 22:45:33 -0700</bug_when>
    <thetext>Comment on attachment 66842
Patch

This is not actually ready for review yet.  fast/frames/frame-limit.html still hits an ASSERT, but every other test passes.  fast/frames/frame-limit.html hits an ASSERT:

void Page::checkFrameCountConsistency() const
{
    ASSERT(m_frameCount &gt;= 0);

    int frameCount = 0;
    for (Frame* frame = mainFrame(); frame; frame = frame-&gt;tree()-&gt;traverseNext())
        ++frameCount;

    ASSERT(m_frameCount + 1 == frameCount);
}

The frame count is off (too high) by one.  Not sure what is causing this yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275621</commentid>
    <comment_count>3</comment_count>
      <attachid>66842</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-09-07 23:05:51 -0700</bug_when>
    <thetext>Comment on attachment 66842
Patch

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

&gt; WebCore/dom/Node.cpp:752
&gt; +    for (Node* p = parentNode(); p &amp;&amp; !p-&gt;childNeedsStyleRecalc(); p = p-&gt;parentNode())
&gt; +        p-&gt;setChildNeedsStyleRecalc();
&gt; +    if (document()-&gt;childNeedsStyleRecalc())
&gt; +        document()-&gt;scheduleStyleRecalc();
Why&apos;s this distinct from setNeedsStyleRecalc() now?

&gt; WebCore/html/HTMLFrameElementBase.cpp:199
&gt; +    // Loads may cause synchronous javascript execution (e.g. beforeload or
&gt; +    // src=javascript), which could try to access the renderer before the normal
&gt; +    // parser machinery would call lazyAttach() and set us as needing style
&gt; +    // resolve.  Calling lazyAttach() here marks this for a style resolve.
&gt; +    setNeedsStyleRecalc(FullStyleChange);
Comment seems a little out of sync with what the code is doing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275713</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-08 03:27:36 -0700</bug_when>
    <thetext>Reduction of last test causing me trouble:
&lt;body&gt;
&lt;script&gt;
var parent = document.createElement(&apos;iframe&apos;);
document.body.appendChild(parent);
var frame = document.createElement(&quot;iframe&quot;);
frame.setAttribute(&quot;src&quot;, &quot;data:text/plain,1&quot;);
parent.contentDocument.body.appendChild(frame);
parent.parentNode.removeChild(parent);
&lt;/script&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276346</commentid>
    <comment_count>5</comment_count>
      <attachid>67004</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-09 00:36:01 -0700</bug_when>
    <thetext>Created attachment 67004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276519</commentid>
    <comment_count>6</comment_count>
      <attachid>67004</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-09-09 09:42:52 -0700</bug_when>
    <thetext>Comment on attachment 67004
Patch

Ancessors should be Ancestors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276536</commentid>
    <comment_count>7</comment_count>
      <attachid>67004</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-09-09 09:56:17 -0700</bug_when>
    <thetext>Comment on attachment 67004
Patch

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

&gt; WebCore/dom/Node.h:-314
&gt; -    virtual bool canLazyAttach() { return true; }
What about HTMLPluginImageElement? It still returns false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276537</commentid>
    <comment_count>8</comment_count>
      <attachid>67004</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-09-09 09:56:43 -0700</bug_when>
    <thetext>Comment on attachment 67004
Patch

Oops. sorry, transferring over dhyatt&apos;s rs and cqs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276558</commentid>
    <comment_count>9</comment_count>
      <attachid>67054</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-09 10:32:22 -0700</bug_when>
    <thetext>Created attachment 67054
Updated with Dave and Dimitri&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276629</commentid>
    <comment_count>10</comment_count>
      <attachid>67054</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-09-09 11:39:19 -0700</bug_when>
    <thetext>Comment on attachment 67054
Updated with Dave and Dimitri&apos;s comments

I am pretty sure you&apos;re doing everything right, but somehow I am certain this will not be the end of it :)  Godspeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277084</commentid>
    <comment_count>11</comment_count>
      <attachid>67054</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-10 02:12:38 -0700</bug_when>
    <thetext>Comment on attachment 67054
Updated with Dave and Dimitri&apos;s comments

Clearing flags on attachment: 67054

Committed r67182: &lt;http://trac.webkit.org/changeset/67182&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277085</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-10 02:12:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376828</commentid>
    <comment_count>13</comment_count>
    <who name="Drew Yao">ayao</who>
    <bug_when>2011-03-30 17:57:01 -0700</bug_when>
    <thetext>*** Bug 57512 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430803</commentid>
    <comment_count>14</comment_count>
    <who name="Drew Yao">ayao</who>
    <bug_when>2011-06-30 16:25:11 -0700</bug_when>
    <thetext>*** Bug 62104 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66842</attachid>
            <date>2010-09-07 22:43:54 -0700</date>
            <delta_ts>2010-09-09 00:35:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45365-20100907224353.patch</filename>
            <type>text/plain</type>
            <size>12906</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyZDZjNDE1MzNkYzlhOTViZWFhZWJhYWQyOWYwNDAxZWZkNjE2NDgwLi5hZGQ3NjY3
MTkwODk3NTgwOTUzN2RkMjgxMDlkNDYwNjQwOTZjYTBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTAtMDktMDcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciBu
b24tbGF6eSBhdHRhY2ggYW5kIGZpeCBmcmFtZXMgdG8gbG9hZCBmcm9tIGluc2VydGVkSW50b0Rv
Y3VtZW50IGluc3RlYWQgb2YgYXR0YWNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NTM2NQorCisgICAgICAgICogZmFzdC9mcmFtZXMvaWZyYW1lLWRp
c3BsYXktbm9uZS1zY3JpcHQtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9iZWZvcmVsb2FkL2ltYWdlLW9iamVjdC1iZWZvcmUtbG9hZC1leHBlY3RlZC50eHQu
CisgICAgICAgICogZmFzdC9mcmFtZXMvaWZyYW1lLWRpc3BsYXktbm9uZS1zY3JpcHQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9mcmFtZXMvcmVzb3VyY2VzL2lmcmFtZS1kaXNwbGF5LW5v
bmUtc3ViZnJhbWUuaHRtbDogQWRkZWQuCisKIDIwMTAtMDktMDcgIFpoZW55YW8gTW8gIDx6bW9A
Z29vZ2xlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mcmFtZXMvaWZyYW1lLWRpc3BsYXktbm9uZS1zY3JpcHQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLWRpc3BsYXktbm9uZS1zY3JpcHQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY5Y2ZjNWE5OGRiNzRmYmUzMmFjOWI2NzhhNjEzNGFmOTczNmRk
NTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZGlz
cGxheS1ub25lLXNjcmlwdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1kaXNwbGF5LW5vbmUtc2Ny
aXB0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZGlzcGxheS1ub25lLXNj
cmlwdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllNjMwYzRiMTQ3Yzg5ZDZmMTAwOGU1MWYxNGQ2NGU3Njgw
MWIwMjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUt
ZGlzcGxheS1ub25lLXNjcmlwdC5odG1sCkBAIC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzdHlsZT5pZnJhbWUgeyBkaXNwbGF5OiBub25lOyB9PC9zdHlsZT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8aWZyYW1lIHNy
Yz0icmVzb3VyY2VzL2lmcmFtZS1kaXNwbGF5LW5vbmUtc3ViZnJhbWUuaHRtbCI+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvaWZyYW1lLWRpc3BsYXktbm9u
ZS1zdWJmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvcmVzb3VyY2VzL2lmcmFt
ZS1kaXNwbGF5LW5vbmUtc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTYzMTc4MTAyNGQzOTcw
MGIwOWM2ZjY3NjY4OTBhMDYyZDE0Y2EwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mcmFtZXMvcmVzb3VyY2VzL2lmcmFtZS1kaXNwbGF5LW5vbmUtc3ViZnJhbWUuaHRtbApA
QCAtMCwwICsxLDMgQEAKKzxzY3JpcHQ+Cit3aW5kb3cucGFyZW50LmRlYnVnKCJQQVNTIik7Cis8
L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDc1ZDBjMGIzOTY4Yzg0YjlmOTA3
YmNmODJkYWM5OTM3NmQwMDdjYzkuLjI5YzM0ODcyNDNkNTIxYWIyMjk0ZjQxYjU0MGVlZmViNWUw
NDEyMjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTAtMDktMDcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbW92ZSBzdXBwb3J0IGZvciBub24tbGF6eSBhdHRhY2ggYW5kIGZpeCBmcmFtZXMgdG8gbG9h
ZCBmcm9tIGluc2VydGVkSW50b0RvY3VtZW50IGluc3RlYWQgb2YgYXR0YWNoCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTM2NQorCisgICAgICAgIFRo
aXMgaXMgY292ZXJlZCBieSBudW1lcm91cyBsYXlvdXQgdGVzdHMuIEkgYWxzbyBhZGRlZAorICAg
ICAgICBmYXN0L2ZyYW1lcy9pZnJhbWUtZGlzcGxheS1ub25lLXNjcmlwdC5odG1sLgorCisgICAg
ICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bGF6eUF0dGFjaCk6
CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnRC
YXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1lbnRCYXNlOjpIVE1MRnJh
bWVFbGVtZW50QmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50QmFzZTo6
aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVu
dEJhc2U6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50QmFzZTo6
d2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U6OmhlaWdodCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50QmFzZTo6c2V0UmVtYWluc0FsaXZl
T25SZW1vdmFsRnJvbVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJh
c2U6OmNoZWNrSW5Eb2N1bWVudFRpbWVyRmlyZWQpOgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1l
RWxlbWVudEJhc2UuaDoKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6YXR0YWNoQXRT
aXRlKToKKwogMjAxMC0wOS0wNyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZG9tL05vZGUuY3BwIGIvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggZjY1NTRkZTYwNzgy
NjY4MTkzNjFjN2M4ODVjYmJhNmFlOGQwMmI2ZS4uNDA2NjUwNjMwMGNhMWY2MDdmZTU2NmViZWYy
YTA5YzA0NDg2MzM1MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvV2Vi
Q29yZS9kb20vTm9kZS5jcHAKQEAgLTczNyw0MCArNzM3LDE5IEBAIHZvaWQgTm9kZTo6c2V0TmVl
ZHNTdHlsZVJlY2FsYyhTdHlsZUNoYW5nZVR5cGUgY2hhbmdlVHlwZSkKICAgICB9CiB9CiAKLXN0
YXRpYyBOb2RlKiBvdXRlcm1vc3RMYXp5QXR0YWNoZWRBbmNlc3RvcihOb2RlKiBzdGFydCkKLXsK
LSAgICBOb2RlKiBwID0gc3RhcnQ7Ci0gICAgZm9yIChOb2RlKiBuZXh0ID0gcC0+cGFyZW50Tm9k
ZSgpOyAhbmV4dC0+cmVuZGVyZXIoKTsgcCA9IG5leHQsIG5leHQgPSBuZXh0LT5wYXJlbnROb2Rl
KCkpIHt9Ci0gICAgcmV0dXJuIHA7Ci19Ci0KIHZvaWQgTm9kZTo6bGF6eUF0dGFjaCgpCiB7Ci0g
ICAgYm9vbCBtdXN0RG9GdWxsQXR0YWNoID0gZmFsc2U7Ci0KICAgICBmb3IgKE5vZGUqIG4gPSB0
aGlzOyBuOyBuID0gbi0+dHJhdmVyc2VOZXh0Tm9kZSh0aGlzKSkgewotICAgICAgICBpZiAoIW4t
PmNhbkxhenlBdHRhY2goKSkgewotICAgICAgICAgICAgbXVzdERvRnVsbEF0dGFjaCA9IHRydWU7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCiAgICAgICAgIGlmIChuLT5maXJzdENo
aWxkKCkpCiAgICAgICAgICAgICBuLT5zZXRDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsKICAgICAg
ICAgbi0+c2V0U3R5bGVDaGFuZ2UoRnVsbFN0eWxlQ2hhbmdlKTsKICAgICAgICAgbi0+c2V0QXR0
YWNoZWQoKTsKICAgICB9CiAKLSAgICBpZiAobXVzdERvRnVsbEF0dGFjaCkgewotICAgICAgICBO
b2RlKiBsYXp5QXR0YWNoZWRBbmNlc3RvciA9IG91dGVybW9zdExhenlBdHRhY2hlZEFuY2VzdG9y
KHRoaXMpOwotICAgICAgICBpZiAobGF6eUF0dGFjaGVkQW5jZXN0b3ItPmF0dGFjaGVkKCkpCi0g
ICAgICAgICAgICBsYXp5QXR0YWNoZWRBbmNlc3Rvci0+ZGV0YWNoKCk7Ci0gICAgICAgIGxhenlB
dHRhY2hlZEFuY2VzdG9yLT5hdHRhY2goKTsKLSAgICB9IGVsc2UgewotICAgICAgICBmb3IgKE5v
ZGUqIHAgPSBwYXJlbnROb2RlKCk7IHAgJiYgIXAtPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpOyBw
ID0gcC0+cGFyZW50Tm9kZSgpKQotICAgICAgICAgICAgcC0+c2V0Q2hpbGROZWVkc1N0eWxlUmVj
YWxjKCk7Ci0gICAgICAgIGlmIChkb2N1bWVudCgpLT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSkK
LSAgICAgICAgICAgIGRvY3VtZW50KCktPnNjaGVkdWxlU3R5bGVSZWNhbGMoKTsKLSAgICB9Cisg
ICAgZm9yIChOb2RlKiBwID0gcGFyZW50Tm9kZSgpOyBwICYmICFwLT5jaGlsZE5lZWRzU3R5bGVS
ZWNhbGMoKTsgcCA9IHAtPnBhcmVudE5vZGUoKSkKKyAgICAgICAgcC0+c2V0Q2hpbGROZWVkc1N0
eWxlUmVjYWxjKCk7CisgICAgaWYgKGRvY3VtZW50KCktPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygp
KQorICAgICAgICBkb2N1bWVudCgpLT5zY2hlZHVsZVN0eWxlUmVjYWxjKCk7CiB9CiAKIHZvaWQg
Tm9kZTo6c2V0Rm9jdXMoYm9vbCBiKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vTm9kZS5oIGIv
V2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDI1OGM4ZmQxZTZiMzcwNWVjNzFiYmVjOTE5YWE3MmRj
ZTBlNzBkZjAuLjcyMmVhOGQ3NjdhOWM0NmE2YTI3MjBlNjBlYTVhNjY5N2ZhNWQ3YTAgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTMx
MSw3ICszMTEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhcklzTGluaygpIHsgY2xlYXJGbGFn
KElzTGlua0ZsYWcpOyB9CiAKICAgICB2b2lkIGxhenlBdHRhY2goKTsKLSAgICB2aXJ0dWFsIGJv
b2wgY2FuTGF6eUF0dGFjaCgpIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBz
ZXRGb2N1cyhib29sIGIgPSB0cnVlKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wg
ZiA9IHRydWUsIGJvb2wgLypwYXVzZSovID0gZmFsc2UpIHsgc2V0RmxhZyhmLCBJc0FjdGl2ZUZs
YWcpOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3Bw
IGIvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcAppbmRleCBiOTY3OTI2MDli
NTMwMjc5MGE1ZTBmODFkZWNkNTE3MTBkMGQxMzYyLi5jOTVmMTQzODZkNjRhNGM5YzNkYjM5MjM5
N2MwNDUyNjI5YTI3ODcxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVu
dEJhc2UuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAKQEAg
LTUyLDkgKzUyLDggQEAgSFRNTEZyYW1lRWxlbWVudEJhc2U6OkhUTUxGcmFtZUVsZW1lbnRCYXNl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW4KICAgICAsIG1fc2Nyb2xsaW5n
KFNjcm9sbGJhckF1dG8pCiAgICAgLCBtX21hcmdpbldpZHRoKC0xKQogICAgICwgbV9tYXJnaW5I
ZWlnaHQoLTEpCi0gICAgLCBtX2NoZWNrQXR0YWNoZWRUaW1lcih0aGlzLCAmSFRNTEZyYW1lRWxl
bWVudEJhc2U6OmNoZWNrQXR0YWNoZWRUaW1lckZpcmVkKQorICAgICwgbV9jaGVja0luRG9jdW1l
bnRUaW1lcih0aGlzLCAmSFRNTEZyYW1lRWxlbWVudEJhc2U6OmNoZWNrSW5Eb2N1bWVudFRpbWVy
RmlyZWQpCiAgICAgLCBtX3ZpZXdTb3VyY2UoZmFsc2UpCi0gICAgLCBtX3Nob3VsZE9wZW5VUkxB
ZnRlckF0dGFjaChmYWxzZSkKICAgICAsIG1fcmVtYWluc0FsaXZlT25SZW1vdmFsRnJvbVRyZWUo
ZmFsc2UpCiB7CiB9CkBAIC0xODMsMzMgKzE4MiwyNiBAQCB2b2lkIEhUTUxGcmFtZUVsZW1lbnRC
YXNlOjp1cGRhdGVPblJlcGFyZW50aW5nKCkKIHZvaWQgSFRNTEZyYW1lRWxlbWVudEJhc2U6Omlu
c2VydGVkSW50b0RvY3VtZW50KCkKIHsKICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQ6Omluc2Vy
dGVkSW50b0RvY3VtZW50KCk7Ci0gICAgCi0gICAgLy8gV2UgZGVsYXkgZnJhbWUgbG9hZGluZyB1
bnRpbCBhZnRlciB0aGUgcmVuZGVyIHRyZWUgaXMgZnVsbHkgY29uc3RydWN0ZWQuCi0gICAgLy8g
T3RoZXdpc2UsIGEgc3luY2hyb25vdXMgbG9hZCB0aGF0IGV4ZWN1dGVkIEphdmFTY3JpcHQgd291
bGQgc2VlIGluY29ycmVjdCAKLSAgICAvLyAoMCkgdmFsdWVzIGZvciB0aGUgZnJhbWUncyByZW5k
ZXJlci1kZXBlbmRlbnQgcHJvcGVydGllcywgbGlrZSB3aWR0aC4KLSAgICBtX3Nob3VsZE9wZW5V
UkxBZnRlckF0dGFjaCA9IHRydWU7CiAKLSAgICBpZiAobV9yZW1haW5zQWxpdmVPblJlbW92YWxG
cm9tVHJlZSkKKyAgICBpZiAobV9yZW1haW5zQWxpdmVPblJlbW92YWxGcm9tVHJlZSkgewogICAg
ICAgICB1cGRhdGVPblJlcGFyZW50aW5nKCk7Ci19Ci0KLXZvaWQgSFRNTEZyYW1lRWxlbWVudEJh
c2U6OnJlbW92ZWRGcm9tRG9jdW1lbnQoKQotewotICAgIG1fc2hvdWxkT3BlblVSTEFmdGVyQXR0
YWNoID0gZmFsc2U7CisgICAgICAgIHNldFJlbWFpbnNBbGl2ZU9uUmVtb3ZhbEZyb21UcmVlKGZh
bHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBEb2N1bWVudEZyYWdtZW50cyBk
b24ndCBraWNrIG9mIGFueSBsb2Fkcy4KKyAgICBpZiAoIWRvY3VtZW50KCktPmZyYW1lKCkpCisg
ICAgICAgIHJldHVybjsKIAotICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6cmVtb3ZlZEZyb21E
b2N1bWVudCgpOworICAgIC8vIExvYWRzIG1heSBjYXVzZSBzeW5jaHJvbm91cyBqYXZhc2NyaXB0
IGV4ZWN1dGlvbiAoZS5nLiBiZWZvcmVsb2FkIG9yCisgICAgLy8gc3JjPWphdmFzY3JpcHQpLCB3
aGljaCBjb3VsZCB0cnkgdG8gYWNjZXNzIHRoZSByZW5kZXJlciBiZWZvcmUgdGhlIG5vcm1hbAor
ICAgIC8vIHBhcnNlciBtYWNoaW5lcnkgd291bGQgY2FsbCBsYXp5QXR0YWNoKCkgYW5kIHNldCB1
cyBhcyBuZWVkaW5nIHN0eWxlCisgICAgLy8gcmVzb2x2ZS4gIENhbGxpbmcgbGF6eUF0dGFjaCgp
IGhlcmUgbWFya3MgdGhpcyBmb3IgYSBzdHlsZSByZXNvbHZlLgorICAgIHNldE5lZWRzU3R5bGVS
ZWNhbGMoRnVsbFN0eWxlQ2hhbmdlKTsKKyAgICBzZXROYW1lQW5kT3BlblVSTCgpOwogfQogCiB2
b2lkIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjphdHRhY2goKQogewotICAgIGlmIChtX3Nob3VsZE9w
ZW5VUkxBZnRlckF0dGFjaCkgewotICAgICAgICBtX3Nob3VsZE9wZW5VUkxBZnRlckF0dGFjaCA9
IGZhbHNlOwotICAgICAgICBpZiAoIW1fcmVtYWluc0FsaXZlT25SZW1vdmFsRnJvbVRyZWUpCi0g
ICAgICAgICAgICBxdWV1ZVBvc3RBdHRhY2hDYWxsYmFjaygmSFRNTEZyYW1lRWxlbWVudEJhc2U6
OnNldE5hbWVBbmRPcGVuVVJMQ2FsbGJhY2ssIHRoaXMpOwotICAgIH0KLQotICAgIHNldFJlbWFp
bnNBbGl2ZU9uUmVtb3ZhbEZyb21UcmVlKGZhbHNlKTsKLQogICAgIEhUTUxGcmFtZU93bmVyRWxl
bWVudDo6YXR0YWNoKCk7CiAKICAgICBpZiAoUmVuZGVyUGFydCogcGFydCA9IHJlbmRlclBhcnQo
KSkgewpAQCAtMjU4LDE5ICsyNTAsMTcgQEAgYm9vbCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6aXNV
UkxBdHRyaWJ1dGUoQXR0cmlidXRlICphdHRyKSBjb25zdAogCiBpbnQgSFRNTEZyYW1lRWxlbWVu
dEJhc2U6OndpZHRoKCkgY29uc3QKIHsKKyAgICBkb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBpZiAoIXJlbmRlckJveCgpKQogICAgICAgICBy
ZXR1cm4gMDsKLQotICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHls
ZXNoZWV0cygpOwogICAgIHJldHVybiByZW5kZXJCb3goKS0+d2lkdGgoKTsKIH0KIAogaW50IEhU
TUxGcmFtZUVsZW1lbnRCYXNlOjpoZWlnaHQoKSBjb25zdAogeworICAgIGRvY3VtZW50KCktPnVw
ZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgIGlmICghcmVuZGVyQm94
KCkpCiAgICAgICAgIHJldHVybiAwOwotCi0gICAgZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdu
b3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgcmV0dXJuIHJlbmRlckJveCgpLT5oZWlnaHQo
KTsKIH0KIApAQCAtMjgxLDEyICsyNzEsMTIgQEAgdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6
c2V0UmVtYWluc0FsaXZlT25SZW1vdmFsRnJvbVRyZWUoYm9vbCB2YWx1ZSkKICAgICAvLyBUaGVy
ZSBpcyBhIHBvc3NpYmlsaXR5IHRoYXQgSlMgd2lsbCBkbyBkb2N1bWVudC5hZG9wdE5vZGUoKSBv
biB0aGlzIGVsZW1lbnQgYnV0IHdpbGwgbm90IGluc2VydCBpdCBpbnRvIHRoZSB0cmVlLgogICAg
IC8vIFN0YXJ0IHRoZSBhc3luYyB0aW1lciB0aGF0IGlzIG5vcm1hbGx5IHN0b3BwZWQgYnkgYXR0
YWNoKCkuIElmIGl0J3Mgbm90IHN0b3BwZWQgYW5kIGZpcmVzLCBpdCdsbCB1bmxvYWQgdGhlIGZy
YW1lLgogICAgIGlmICh2YWx1ZSkKLSAgICAgICAgbV9jaGVja0F0dGFjaGVkVGltZXIuc3RhcnRP
bmVTaG90KDApOworICAgICAgICBtX2NoZWNrSW5Eb2N1bWVudFRpbWVyLnN0YXJ0T25lU2hvdCgw
KTsKICAgICBlbHNlCi0gICAgICAgIG1fY2hlY2tBdHRhY2hlZFRpbWVyLnN0b3AoKTsKKyAgICAg
ICAgbV9jaGVja0luRG9jdW1lbnRUaW1lci5zdG9wKCk7CiB9CiAKLXZvaWQgSFRNTEZyYW1lRWxl
bWVudEJhc2U6OmNoZWNrQXR0YWNoZWRUaW1lckZpcmVkKFRpbWVyPEhUTUxGcmFtZUVsZW1lbnRC
YXNlPiopCit2b2lkIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpjaGVja0luRG9jdW1lbnRUaW1lckZp
cmVkKFRpbWVyPEhUTUxGcmFtZUVsZW1lbnRCYXNlPiopCiB7CiAgICAgQVNTRVJUKCFhdHRhY2hl
ZCgpKTsKICAgICBBU1NFUlQobV9yZW1haW5zQWxpdmVPblJlbW92YWxGcm9tVHJlZSk7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaCBiL1dlYkNvcmUvaHRt
bC9IVE1MRnJhbWVFbGVtZW50QmFzZS5oCmluZGV4IDFiNmUyYTM1YWIwYzkxMDQ1ZWZlZmU1MjBi
ZTMxMDZlZDE3YmZkODguLmU5NTY1MTg0OGMwZGQ4ZjU4ZTAxYThmNDMyOTQ5NjNkY2UwZTU2OTAg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5oCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5oCkBAIC01MCwxNSArNTAsMTAgQEAgcHJv
dGVjdGVkOgogICAgIGJvb2wgaXNVUkxBbGxvd2VkKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZv
aWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7Ci0KICAgICB2aXJ0dWFsIHZvaWQg
aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21Eb2N1
bWVudCgpOwotCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpOwogCiBwcml2YXRlOgotICAgIHZp
cnR1YWwgYm9vbCBjYW5MYXp5QXR0YWNoKCkgeyByZXR1cm4gZmFsc2U7IH0KLQogICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3Vz
KGJvb2wpOwogICAgIApAQCAtNjcsNyArNjIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXROYW1lKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZSgpOwotICAgIHZvaWQg
Y2hlY2tBdHRhY2hlZFRpbWVyRmlyZWQoVGltZXI8SFRNTEZyYW1lRWxlbWVudEJhc2U+Kik7Cisg
ICAgdm9pZCBjaGVja0luRG9jdW1lbnRUaW1lckZpcmVkKFRpbWVyPEhUTUxGcmFtZUVsZW1lbnRC
YXNlPiopOwogICAgIHZvaWQgdXBkYXRlT25SZXBhcmVudGluZygpOwogCiAgICAgYm9vbCB2aWV3
U291cmNlTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld1NvdXJjZTsgfQpAQCAtODUsMTIgKzgw
LDE0IEBAIHByaXZhdGU6CiAgICAgaW50IG1fbWFyZ2luV2lkdGg7CiAgICAgaW50IG1fbWFyZ2lu
SGVpZ2h0OwogCi0gICAgVGltZXI8SFRNTEZyYW1lRWxlbWVudEJhc2U+IG1fY2hlY2tBdHRhY2hl
ZFRpbWVyOworICAgIC8vIFRoaXMgaXMgYSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gY2FsbGVk
ICJtYWdpYyBpZnJhbWUiIHdoaWNoIGF2b2lkcworICAgIC8vIHRlYXJpbmcgZG93biB0aGUgZnJh
bWUgaGllcmFyY2h5IHdoZW4gYSB3ZWIgcGFnZSBjYWxscyBhZG9wdE5vZGUgb24gYQorICAgIC8v
IGZyYW1lIG93bmluZyBlbGVtZW50IGJ1dCBkb2VzIG5vdCBpbW1lZGlhdGVseSBpbnNlcnQgaXQg
aW50byB0aGUgbmV3CisgICAgLy8gZG9jdW1lbnQgYmVmb3JlIEphdmFTY3JpcHQgeWllbGRzIHRv
IFdlYkNvcmUuICBJZiB0aGUgZWxlbWVudCBpcyBub3QgeWV0CisgICAgLy8gaW4gYSBkb2N1bWVu
dCBieSB0aGUgdGltZSB0aGlzIHRpbWVyIGZpcmVzLCB0aGUgZnJhbWUgaGllcmFyY2h5IHRlYXJk
b3duIHdpbGwgY29udGludWUuCisgICAgVGltZXI8SFRNTEZyYW1lRWxlbWVudEJhc2U+IG1fY2hl
Y2tJbkRvY3VtZW50VGltZXI7CiAKICAgICBib29sIG1fdmlld1NvdXJjZTsKLQotICAgIGJvb2wg
bV9zaG91bGRPcGVuVVJMQWZ0ZXJBdHRhY2g7Ci0KICAgICBib29sIG1fcmVtYWluc0FsaXZlT25S
ZW1vdmFsRnJvbVRyZWU7CiB9OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVj
dGlvblNpdGUuY3BwCmluZGV4IDk3NWIxYWZkZjgyZDBjMWQyOWVlMTllOTIzMTcyMGNkMTE3ODE0
YzQuLjcwY2RkMGJjNDllNDAxN2I1ZTMxOGZlYmZlNDg2YzgyYzMxNDViZTAgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCisrKyBiL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCkBAIC0xMTQsMTkgKzExNCwx
OSBAQCBQYXNzUmVmUHRyPENoaWxkVHlwZT4gSFRNTENvbnN0cnVjdGlvblNpdGU6OmF0dGFjaChD
b250YWluZXJOb2RlKiBwYXJlbnQsIFBhc3NSZQogCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRl
OjphdHRhY2hBdFNpdGUoY29uc3QgQXR0YWNobWVudFNpdGUmIHNpdGUsIFBhc3NSZWZQdHI8Tm9k
ZT4gcHJwQ2hpbGQpCiB7CisgICAgLy8gRklYTUU6IEl0J3MgdW5mb3J0dW5hdGUgdGhhdCB3ZSBu
ZWVkIHRvIGhvbGQgYSByZWZlcmVuY2UgdG8gY2hpbGQKKyAgICAvLyBoZXJlIHRvIGNhbGwgYXR0
YWNoKCkuICBXZSBzaG91bGQgaW52ZXN0aWdhdGUgd2hldGhlciB3ZSBjYW4gcmVseSBvbgorICAg
IC8vIHxzaXRlLnBhcmVudHwgdG8gaG9sZCBhIHJlZiBhdCB0aGlzIHBvaW50LgogICAgIFJlZlB0
cjxOb2RlPiBjaGlsZCA9IHBycENoaWxkOwogCi0gICAgaWYgKHNpdGUubmV4dENoaWxkKSB7Cisg
ICAgaWYgKHNpdGUubmV4dENoaWxkKQogICAgICAgICBzaXRlLnBhcmVudC0+cGFyc2VySW5zZXJ0
QmVmb3JlKGNoaWxkLCBzaXRlLm5leHRDaGlsZCk7Ci0gICAgICAgIGlmIChzaXRlLnBhcmVudC0+
YXR0YWNoZWQoKSAmJiAhY2hpbGQtPmF0dGFjaGVkKCkpCi0gICAgICAgICAgICBjaGlsZC0+YXR0
YWNoKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgc2l0ZS5wYXJlbnQtPnBhcnNlckFk
ZENoaWxkKGNoaWxkKTsKLSAgICAvLyBJdCdzIHNsaWdodGx5IHVuZm9ydHVuYXRlIHRoYXQgd2Ug
bmVlZCB0byBob2xkIGEgcmVmZXJlbmNlIHRvIGNoaWxkCi0gICAgLy8gaGVyZSB0byBjYWxsIGF0
dGFjaCgpLiAgV2Ugc2hvdWxkIGludmVzdGlnYXRlIHdoZXRoZXIgd2UgY2FuIHJlbHkgb24KLSAg
ICAvLyB8c2l0ZS5wYXJlbnR8IHRvIGhvbGQgYSByZWYgYXQgdGhpcyBwb2ludC4KLSAgICBpZiAo
c2l0ZS5wYXJlbnQtPmF0dGFjaGVkKCkgJiYgIWNoaWxkLT5hdHRhY2hlZCgpKQorICAgIGVsc2UK
KyAgICAgICAgc2l0ZS5wYXJlbnQtPnBhcnNlckFkZENoaWxkKGNoaWxkKTsKKworICAgIC8vIEph
dmFTY3JpcHQgcnVuIGZyb20gYmVmb3JlbG9hZCAob3IgRE9NIE11dGF0aW9uIG9yIGV2ZW50IGhh
bmRsZXJzKQorICAgIC8vIG1pZ2h0IGhhdmUgcmVtb3ZlZCB0aGUgY2hpbGQsIGluIHdoaWNoIGNh
c2Ugd2Ugc2hvdWxkIG5vdCBhdHRhY2ggaXQuCisgICAgaWYgKGNoaWxkLT5wYXJlbnROb2RlKCkg
JiYgc2l0ZS5wYXJlbnQtPmF0dGFjaGVkKCkgJiYgIWNoaWxkLT5hdHRhY2hlZCgpKQogICAgICAg
ICBjaGlsZC0+YXR0YWNoKCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67004</attachid>
            <date>2010-09-09 00:36:01 -0700</date>
            <delta_ts>2010-09-09 10:32:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45365-20100909003600.patch</filename>
            <type>text/plain</type>
            <size>22384</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxZDk3YjFkOTQ1MzEzYTM3NWJjNGUzOWVkNWQ3NWRmMzhjZjcyNTc5Li5mNWE5NTMw
NDMyMjMwMzMxZjU1Y2U3MTMyYTE1NTY1ZDM1NzNkYmNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMDktMDkgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciBu
b24tbGF6eSBhdHRhY2ggYW5kIGZpeCBmcmFtZXMgdG8gbG9hZCBmcm9tIGluc2VydGVkSW50b0Rv
Y3VtZW50IGluc3RlYWQgb2YgYXR0YWNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NTM2NQorCisgICAgICAgICogZmFzdC9kb20vYmVmb3JlbG9hZC9y
ZW1vdmUtZnJhbWUtaW4tYmVmb3JlbG9hZC1saXN0ZW5lci5odG1sOgorICAgICAgICAgIC0gQWRk
IGEgY29tbWVudCB0byBtYWtlIGNsZWFyIHRoYXQgdGhpcyB0ZXN0IGludGVudGlvbmFsbHkKKyAg
ICAgICAgICAgIGRvZXMgbm90IGNhbmNlbCB0aGUgbG9hZCBpbiB0aGUgYmVmb3JlbG9hZCBldmVu
dCwgYnV0IHJhdGhlcgorICAgICAgICAgICAgcmVsaWVzIG9uIFdlYkNvcmUncyBvd24gTm9kZTo6
d2lsbFJlbW92ZSgpIGltcGxlbWVudGF0aW9uIHRvCisgICAgICAgICAgICBjYW5jZWwgdGhlIGxv
YWQgd2hlbiB0aGUgZnJhbWUgaXMgcmVtb3ZlZC4KKyAgICAgICAgICAgIChUaGUgbG9hZCBpcyBu
b3QgYWN0dWFsbHkgZGlyZWN0bHkgY2FuY2VsZWQgcGVyIHNheSwgYnV0IHRoZQorICAgICAgICAg
ICAgbG9hZGluZyBsb2dpYyBjaGVja3MgdG8gc2VlIGlmIHRoZSBmcmFtZSBpcyBzdGlsbCBpbiB0
aGUgZnJhbWUKKyAgICAgICAgICAgIHRyZWUgcmlnaHQgYWZ0ZXIgY3JlYXRpbmcgdGhlIGZyYW1l
IGFuZCBhYm9ydHMgaWYgaXRzIG5vdC4KKyAgICAgICAgICAgIEhUTUxGcmFtZU93bmVyRWxlbWVu
dDo6d2lsbFJlbW92ZSBjbGVhcnMgdGhlIGZyYW1lIG93bmVyIHBvaW50ZXIKKyAgICAgICAgICAg
IGNhdXNpbmcgdGhlIGZyYW1lIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgdHJlZS4pCisKIDIwMTAt
MDktMDggIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2JlZm9yZWxvYWQvcmVt
b3ZlLWZyYW1lLWluLWJlZm9yZWxvYWQtbGlzdGVuZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL2JlZm9yZWxvYWQvcmVtb3ZlLWZyYW1lLWluLWJlZm9yZWxvYWQtbGlzdGVuZXIuaHRtbApp
bmRleCBmZTQ1MTk1OGQ0OGYyYjg0ZWY2ZDcwNDliMjY0YWY3MDM3NDc0NDE0Li44ZDBmNTE0OGI3
ZTM5ZThjNmRiMGRkNjgzNGRmNzQzMjllOTUwZDFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9iZWZvcmVsb2FkL3JlbW92ZS1mcmFtZS1pbi1iZWZvcmVsb2FkLWxpc3RlbmVyLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vYmVmb3JlbG9hZC9yZW1vdmUtZnJhbWUtaW4t
YmVmb3JlbG9hZC1saXN0ZW5lci5odG1sCkBAIC04LDYgKzgsMTAgQEAKICAgICAgICAgZG9jdW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JlbG9hZCIsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAg
ICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICYmIGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50KQog
ICAgICAgICAgICAgICAgIGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGV2
ZW50LnRhcmdldCk7CisgICAgICAgICAgICAgICAgLy8gTm90ZSwgd2UgaW50ZW50aW9uYWxseSBk
byBub3QgY2FuY2VsIHRoZSBsb2FkIGhlcmUsCisgICAgICAgICAgICAgICAgLy8gV2ViQ29yZSBz
aG91bGQgYXV0b21hdGljYWxseSBjYW5jZWwgaXQuCisgICAgICAgICAgICAgICAgLy8gT3RoZXJ3
aXNlIERSVCB3aWxsIHByaW50OgorICAgICAgICAgICAgICAgIC8vIEJsb2NrZWQgYWNjZXNzIHRv
IGV4dGVybmFsIFVSTCBodHRwOi8vd2Via2l0Lm9yZy8KICAgICAgICAgfSwgdHJ1ZSk7CiAgICAg
PC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDZmYTM2MzJmZGEwNWUwMDE5NGVjZmI3YzJhODE4NTI1Mjg5NGU0
NmQuLjI0YzYzZDcxYjVkN2Y0NzgwY2VjYjFiZGY0NmJjZjdkYTMwOWM0NzUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTA5
IEBACisyMDEwLTA5LTA5ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgc3VwcG9ydCBm
b3Igbm9uLWxhenkgYXR0YWNoIGFuZCBmaXggZnJhbWVzIHRvIGxvYWQgZnJvbSBpbnNlcnRlZElu
dG9Eb2N1bWVudCBpbnN0ZWFkIG9mIGF0dGFjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUzNjUKKworICAgICAgICBUaGlzIGNoYW5nZSBpcyB0aGUg
bGFzdCBwaWVjZSBvZiB0aGUgcHV6emxlIHdoaWNoIHdhcyBwcmV2ZW50aW5nIHVzIGZyb20KKyAg
ICAgICAgcmVtb3ZpbmcgYWxsIGVhZ2VyLWF0dGFjaCBsb2dpYyBhbmQgbW92aW5nIFdlYkNvcmUg
dG8gdXNpbmcgYW4gZW50aXJlbHkKKyAgICAgICAgcmVjYWxjU3R5bGUtZHJpdmVuLCBvbi1kZW1h
bmQgcmVuZGVyZXIgY3JlYXRpb24gc3lzdGVtLCBpbnN0ZWFkIG9mIGV2ZXJ5CisgICAgICAgIGVs
ZW1lbnQgYmVpbmcgc3luY2hyb25vdXNseSBhdHRhY2hlZCBkdXJpbmcgcGFyc2luZywgcmVnYXJk
bGVzcyBvZiB3aGV0aGVyCisgICAgICAgIGl0IHdhcyBldmVyIGdvaW5nIHRvIGJlIGRpc3BsYXll
ZCBvciBub3QuCisKKyAgICAgICAgVGhpcyBpcyBhIHZlcnkgdHJpY2t5IGNoYW5nZSwgcGxlYXNl
IHJldmlldyBjYXJlZnVsbHkuCisKKyAgICAgICAgTW9zdGx5IEknbSBtb3ZpbmcgbG9naWMgd2hp
Y2ggdXNlZCB0byBiZSBpbiBhdHRhY2goKSBpbnRvCisgICAgICAgIGluc2VydGVkSW50b0RvY3Vt
ZW50LiAgT25jZSBpdCB3YXMgdGhlcmUsIHRoZXJlIHdhcyBubyBsb25nZXIgYW55IHJlYXNvbgor
ICAgICAgICB3aHkgZnJhbWUgZWxlbWVudHMgY291bGRuJ3QgbGF6eUF0dGFjaCwgdGh1cyByZW1v
dmluZyB0aGUgbmVlZAorICAgICAgICBmb3IgdGhlIG5vbi1sYXp5IGF0dGFjaCBjb2RlIHBhdGgg
ZW50aXJlbHkuCisgICAgICAgIFdlJ3ZlIG5vdCB5ZXQgY29udmVydGVkIGFsbCBjYWxsc2l0ZXMg
b3ZlciB0byB1c2luZyBsYXp5QXR0YWNoKCkgaW5zdGVhZAorICAgICAgICBvZiBhdHRhY2goKSBo
b3dldmVyLgorCisgICAgICAgIEluIG9yZGVyIHRvIG1vdmUgZnJhbWUgbG9hZGluZyBsb2dpYyBp
bnRvIGluc2VydGVkSW50b0RvY3VtZW50CisgICAgICAgIGluc3RlYWQgb2YgYXR0YWNoLCBJIG5l
ZWRlZCB0byBtYWtlIHN1cmUgdGhhdCBhbnkgamF2YXNjcmlwdCBjYWxscworICAgICAgICBkdXJp
bmcgdGhlIGxvYWQgd291bGQgc2VlIGFuIGF0dGFjaGVkIGVsZW1lbnQuICBUaHVzIEkgbmVlZGVk
IHRvIG1hcmsKKyAgICAgICAgdGhlIGVsZW1lbnQgYXMgbmVlZGluZyBzdHlsZSByZXNvbHZlIHNv
IHRoYXQgaXQgd291bGQgYXR0YWNoIGl0c2VsZgorICAgICAgICBpZiBuZWVkZWQuCisKKyAgICAg
ICAgSSB3YXMgbm90IGFibGUgdG8ganVzdCBjYWxsIGxhenlBdHRhY2goKSBmcm9tIGluc2VydGVk
SW50b0RvY3VtZW50IGRpcmVjdGx5CisgICAgICAgIGR1ZSB0byB0d28gY29uZmxpY3RpbmcgYXNz
dW1wdGlvbnMgaW4gdGhlIHJlbmRlcmluZyB0cmVlOgorICAgICAgICAgMS4gQ29udGFpbmVyTm9k
ZTo6YXR0YWNoKCkgYXNzdW1lcyBpdHMgInNhZmUiIHRvIGNhbGwgYXR0YWNoIG9uIGFsbCBjaGls
ZHJlbgorICAgICAgICAgICAgd2l0aG91dCBjaGVja2luZyBmaXJzdCBpZiB0aGUgY2hpbGQgaXMg
YWxyZWFkeSBhdHRhY2hlZC4gIFRoaXMgc2VlbXMgc2FuZQorICAgICAgICAgICAgc2luY2UgaXRz
IHN0cmFuZ2UgdG8gdGhpbmsgb2YgYSBzdWJ0cmVlIGFzIGJlaW5nIGF0dGFjaGVkIHcvbyBhbmNl
c3RvcnMKKyAgICAgICAgICAgIGFscmVhZHkgYmVpbmcgYXR0YWNoZWQuICBBbHRob3VnaCBpdCBp
cyBhIGhhcmQgcnVsZSB0aGF0IHN1YnRyZWVzIG1heSBub3QKKyAgICAgICAgICAgIGhhdmUgcmVu
ZGVyZXJzIHcvbyBhbmNlc3RvcnMgYWxzbyBoYXZpbmcgcmVuZGVyZXJzLCBJIGRvIG5vdCBiZWxp
ZXZlIGl0J3MKKyAgICAgICAgICAgIGEgaGFyZCBydWxlIHRoYXQgc3VidHJlZXMgbWF5IG5vdCBi
ZSBhdHRhY2hlZC4gIFJlbWVtYmVyLCBhdHRhY2hlZCgpIGRvZXMKKyAgICAgICAgICAgIG5vdCBp
bXBseSByZW5kZXJlcigpISAgSXQncyBwb3NzaWJsZSBDb250YWluZXJOb2RlOjphdHRhY2goKSdz
IGFzc3VtcHRpb24gaXMgd3JvbmcgaGVyZS4KKyAgICAgICAgIDIuIE5vZGU6OmF0dGFjaCgpIGFz
c2VydHMgIWF0dGFjaGVkKCkuICBUaGlzIG1ha2VzIHNlbnNlIGFuZCBJIHdvdWxkIG5vdAorICAg
ICAgICAgICAgd2FudCB0byByZW1vdmUgdGhpcyBhc3NlcnQsIGhvd2V2ZXIgaXQgbWVhbnMgdGhh
dCBpZiBpbnNlcnRlZEludG9Eb2N1bWVudAorICAgICAgICAgICAgd2VyZSB0byBjYWxsIGxhenlB
dHRhY2goKSAodGh1cyBtYXJraW5nIHRoZSBlbGVtZW50IGFzIGF0dGFjaGVkKCkpIHRoZW4KKyAg
ICAgICAgICAgIGFsbCBjYWxsZXJzIHdvdWxkIG5lZWQgdG8gY2hlY2sgaWYgdGhlIGVsZW1lbnQg
d2FzIGFscmVhZHkgYXR0YWNoZWQgYWZ0ZXIKKyAgICAgICAgICAgIGluc2VydGVkSW50b0RvY3Vt
ZW50IChjYWxsZWQgYnkgYXBwZW5kQ2hpbGQsIHBhcnNlckFwcGVuZENoaWxkLCBldGMuKQorICAg
ICAgICAgICAgYmVmb3JlIGNhbGxpbmcgYXR0YWNoIG9yIGxhenlBdHRhY2goKS4gIFRoZSBmb2xs
b3dpbmcgZXhhbXBsZToKKyAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gIjxzcGFuPjxp
ZnJhbWU+PC9zcGFuPiIgaXMgb25lIGNhc2Ugd2hlcmUgdGhpcworICAgICAgICAgICAgQVNTRVJU
IHdvdWxkIGJlIGhpdCBpZiBpbnNlcnRlZEludG9Eb2N1bWVudCBjYWxsZWQgbGF6eUF0dGFjaCwg
c2luY2UKKyAgICAgICAgICAgIENvbnRhaW5lck5vZGU6OmF0dGFjaCgpIChjYWxsZWQgb24gdGhl
IHNwYW4gYnkgaW4gYXBwZW5kQ2hpbGQoRG9jdW1lbnRGcmFnbWVudCkgY29kZSkKKyAgICAgICAg
ICAgIGRvZXMgbm90IGNoZWNrIGlmIGlmcmFtZSBpcyBhbHJlYWR5IGF0dGFjaGVkLgorCisgICAg
ICAgIE5vdGU6IE9uZSBzdWJ0bGUgY2hhbmdlIGhlcmUgaXMgdGhhdCBzeW5jaHJvbm91cyBqYXZh
c2NyaXB0IHdoaWNoIHJlc3VsdHMKKyAgICAgICAgZnJvbSBqYXZhc2NyaXB0OiBvciBiZWZvcmVs
b2FkIGlzIG5vdyBydW4gYXMgcGFydCBvZiBpbnNlcnRlZEludG9Eb2N1bWVudAorICAgICAgICAo
dGh1cyBhbnkgaW5zZXJ0L2FwcGVuZCBjYWxsICpldmVuKiBwYXJzZXJBZGRDaGlsZCkgaW5zdGVh
ZCBvZiBiZWluZworICAgICAgICBydW4gZHVyaW5nIGF0dGFjaCAodGVjaG5pY2FsbHkgaW4gdGhl
IHBvc3QtYXR0YWNoIGNhbGxiYWNrcykuCisKKyAgICAgICAgVGhpcyBpcyBjb3ZlcmVkIGJ5IG51
bWVyb3VzIGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OndpbGxSZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjp3
aWxsUmVtb3ZlQ2hpbGRyZW4pOgorICAgICAgICAgLSBTaW5jZSBpbnNlcnRlZEludG9Eb2N1bWVu
dCBzdGFydHMgYSBsb2FkIGFuZCB5ZXQgZG9lcyBub3QgbWFyayB0aGUKKyAgICAgICAgICAgZWxl
bWVudCBhcyBhdHRhY2hlZCwgd2UgbmVlZCB0byBhbHdheXMgY2FsbCB3aWxsUmVtb3ZlKCkuCisg
ICAgICAgICAgIFNlZSBub3RlIGFib3ZlIGFzIHRvIHdoeSB3ZSBkb24ndCBqdXN0IG1hcmsgYXR0
YWNoZWQoKSBpbiBpbnNlcnRlZEludG9Eb2N1bWVudC4KKyAgICAgICAgKiBkb20vTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjptYXJrQW5jZXNzb3JzV2l0aENoaWxkTmVlZHNTdHls
ZVJlY2FsYyk6CisgICAgICAgICAtIFNoYXJlIHNvbWUgY29kZSBiZXR3ZWVuIGxhenlBdHRhY2gg
YW5kIHNldE5lZWRzU3R5bGVSZWNhbGMuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzZXROZWVk
c1N0eWxlUmVjYWxjKToKKyAgICAgICAgIC0gVXNlIHRoZSBuZXcgbWFya0FuY2Vzc29yc1dpdGhD
aGlsZE5lZWRzU3R5bGVSZWNhbGMKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmxhenlBdHRhY2gp
OgorICAgICAgICAgLSBSZW1vdmUgdGhlIG5vbi1sYXp5IGNvZGUgcGF0aCwgYW5kIHVzZSBtYXJr
QW5jZXNzb3JzV2l0aENoaWxkTmVlZHNTdHlsZVJlY2FsYy4KKyAgICAgICAgIC0gQWRkIGFuIG9w
dGlvbiB0byBsYXp5QXR0YWNoIHdpdGhvdXQgbWFya2luZyBhdHRhY2hlZCgpLCB1c2VkIGJ5IEhU
TUxGcmFtZUVsZW1lbnRCYXNlOjppbnNlcnRlZEludG9Eb2N1bWVudC4KKyAgICAgICAgKiBkb20v
Tm9kZS5oOgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwOgorICAgICAg
ICAgLSBtX3Nob3VsZE9wZW5VUkxBZnRlckF0dGFjaCBpcyBubyBsb25nZXIgbmVlZGVkLCB5YXkh
CisgICAgICAgICAtIG1fY2hlY2tBdHRhY2hlZFRpbWVyIG5vIGxvbmdlciBoYXMgYW55dGhpbmcg
dG8gZG8gd2l0aCBhdHRhY2hlZCgpLCBzbyByZW5hbWVkIGl0LgorICAgICAgICAgICBJIGFsc28g
ZG9jdW1lbnRlZCB0aGF0IHRoZSBuZXdseSBuYW1lZCBtX2NoZWNrSW5Eb2N1bWVudFRpbWVyIGlz
IGFsbCBhYm91dCB0aGUKKyAgICAgICAgICAgIm1hZ2ljIGlmcmFtZSIgcGVyZm9ybWFuY2UgcXVp
cmsuICAoV2hpY2ggaXMgYWN0dWFsbHkgc3BlY2VkIGluIEhUTUw1KS4KKyAgICAgICAgICAgSSB3
YXMgaW5pdGlhbGx5IGJhZmZsZWQgYnkgdGhpcyBjb2RlLCBzbyBJIGRvY3VtZW50ZWQgaXQuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50QmFzZTo6SFRNTEZyYW1lRWxlbWVudEJh
c2UpCisgICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50QmFzZTo6aW5zZXJ0ZWRJbnRv
RG9jdW1lbnQpOgorICAgICAgICAgLSBUaGlzIGlzIHRoZSBtZWF0IG9mIHRoaXMgY2hhbmdlLCBz
ZWUgZGlzY3Vzc2lvbiBhYm92ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1lbnRC
YXNlOjphdHRhY2gpOgorICAgICAgICAgLSBDb2RlIGRlbGV0ZWQgb3IgbW92ZWQgdG8gaW5zZXJ0
ZWRJbnRvRG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50QmFzZTo6
d2lkdGgpOgorICAgICAgICAgLSBGaXhlZCBhIGJ1ZyBpbiBoZWlnaHQoKS93aWR0aCgpIHdoaWNo
IHdhcyBwcm9iYWJseSBjYXVzaW5nIGNyYXNoZXMKKyAgICAgICAgICAgYW5kIHdhcyBjYXVzaW5n
IGluY29ycmVjdCBiZWhhdmlvciBhZnRlciB0aGlzIGNoYW5nZS4KKyAgICAgICAgICAgcmVuZGVy
Qm94KCkgaXMgbm90IG5lY2Vzc2FyaWx5IHZhbGlkIHVubGVzcyBsYXlvdXQgaXMgdXAgdG8gZGF0
ZS4KKyAgICAgICAgICAgVXBkYXRpbmcgbGF5b3V0LCBjYW4gY2F1c2UgcmVuZGVyQm94KCkgdG8g
Z28gaW52YWxpZCwgdGh1cyB0aGlzCisgICAgICAgICAgIGNvdWxkIGhhdmUgYmVlbiBhIG51bGwt
cG9pbnRlciBjcmFzaC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1lbnRCYXNlOjpo
ZWlnaHQpOiBzZWUgd2lkdGgoKQorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJh
c2U6OnNldFJlbWFpbnNBbGl2ZU9uUmVtb3ZhbEZyb21UcmVlKTogVGltZXIgcmVuYW1lLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U6OmNoZWNrSW5Eb2N1bWVudFRpbWVy
RmlyZWQpOiBUaW1lciByZW5hbWUuCisgICAgICAgICogaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFz
ZS5oOgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudDo6d2lsbFJlbW92ZSk6CisgICAgICAgICAt
IERpc2Nvbm5lY3RpbmcgdGhlIG93bmVyIGVsZW1lbnQgcmVtb3ZlcyB0aGUgZnJhbWUgZnJvbSB0
aGUgZnJhbWUgdHJlZS4KKyAgICAgICAgICAgZnJhbWVEZXRhY2hlZCgpIGNhbGxzIFBhZ2U6OmZy
YW1lQ291bnQgd2hpY2ggZXhwZWN0cyB0aGF0IHRoZSBmcmFtZSBpcworICAgICAgICAgICBhbHJl
YWR5IGdvbmUgYXQgdGhpcyBwb2ludCBhbmQgYXNzZXJ0cyB3aGVuIGl0J3Mgbm90LiAgSXQncyB1
bmNsZWFyIGhvdworICAgICAgICAgICB0aGlzIHdvcmtlZCBiZWZvcmUsIGV4Y2VwdCB0aGF0IHRo
ZSBmcmFtZSByZW1vdmFsIHdhcyBsaWtlbHkgZG9uZSBpbiB0aGUKKyAgICAgICAgICAgcG9zdC1h
dHRhY2ggY2FsbGJhY2ssIHNvIHRoZSBmcmFtZUNvdW50IHdhcyB3cm9uZyAodG9vIGhpZ2gpIGR1
cmluZworICAgICAgICAgICBmcmFtZURldGFjaGVkKCksIGJ1dCB3YXMgZml4ZWQgdXAgaW4gdGhl
IHBvc3QtZGV0YWNoIGNhbGxiYWNrLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1
Y3Rpb25TaXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjph
dHRhY2hBdFNpdGUpOgorICAgICAgICAgIC0gU2ltcGxpZmllZCB0aGlzIGNvZGUsIGFuZCBhZGRl
ZCBhIGNoZWNrIGZvciB0aGUgY2FzZSB3aGVuIHRoZSBub2RlIHdhcyBhbHJlYWR5IHJlbW92ZWQu
CisgICAgICAgICAgICBTaW5jZSB0aGUgbG9hZCBsb2dpYyBpcyBub3cgcnVuIGR1cmluZyBpbnNl
cnRlZEludG9Eb2N1bWVudCBpbnN0ZWFkIG9mIGF0dGFjaCgpLAorICAgICAgICAgICAgc3luY2hy
b25vdXMgamF2YXNjcmlwdCBpcyBub3cgcnVubmluZyBkdXJpbmcgaW5zZXJ0ZWRJbnRvRG9jdW1l
bnQgYW5kIHdlIG5lZWQgdG8KKyAgICAgICAgICAgIG1ha2Ugc3VyZSB0aGF0IHRoZSBjaGlsZCBp
cyBzdGlsbCBpbiB0aGUgdHJlZS4KKwogMjAxMC0wOS0wOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9XZWJDb3JlL2RvbS9Db250YWluZXJO
b2RlLmNwcAppbmRleCA0NmRlNzQ5MWE1MzQyODgxYjNhODljZmJkMjY4Yjc4OTcxY2RkOWU4Li4x
ZTMzN2IwN2FlNmE2NjEwY2I4MWJkMjllZjg0MTYxOGQ2ZDQxYmRmIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9XZWJDb3JlL2RvbS9Db250YWluZXJOb2Rl
LmNwcApAQCAtMzU5LDkgKzM1OSw3IEBAIHN0YXRpYyB2b2lkIHdpbGxSZW1vdmVDaGlsZChOb2Rl
KiBjaGlsZCkKIAogICAgIC8vIGZpcmUgcmVtb3ZlZCBmcm9tIGRvY3VtZW50IG11dGF0aW9uIGV2
ZW50cy4KICAgICBkaXNwYXRjaENoaWxkUmVtb3ZhbEV2ZW50cyhjaGlsZCk7Ci0KLSAgICBpZiAo
Y2hpbGQtPmF0dGFjaGVkKCkpCi0gICAgICAgIGNoaWxkLT53aWxsUmVtb3ZlKCk7CisgICAgY2hp
bGQtPndpbGxSZW1vdmUoKTsKIH0KIAogc3RhdGljIHZvaWQgd2lsbFJlbW92ZUNoaWxkcmVuKENv
bnRhaW5lck5vZGUqIGNvbnRhaW5lcikKQEAgLTM3Myw5ICszNzEsNyBAQCBzdGF0aWMgdm9pZCB3
aWxsUmVtb3ZlQ2hpbGRyZW4oQ29udGFpbmVyTm9kZSogY29udGFpbmVyKQogICAgIGZvciAoUmVm
UHRyPE5vZGU+IGNoaWxkID0gY29udGFpbmVyLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9
IGNoaWxkLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIC8vIGZpcmUgcmVtb3ZlZCBmcm9tIGRv
Y3VtZW50IG11dGF0aW9uIGV2ZW50cy4KICAgICAgICAgZGlzcGF0Y2hDaGlsZFJlbW92YWxFdmVu
dHMoY2hpbGQuZ2V0KCkpOwotCi0gICAgICAgIGlmIChjaGlsZC0+YXR0YWNoZWQoKSkKLSAgICAg
ICAgICAgIGNoaWxkLT53aWxsUmVtb3ZlKCk7CisgICAgICAgIGNoaWxkLT53aWxsUmVtb3ZlKCk7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCmluZGV4IGY2NTU0ZGU2MDc4MjY2ODE5MzYxYzdjODg1Y2JiYTZhZThkMDJi
NmUuLjYzMDQyYzIwNGE0NDkwODg3NmYxMWQ4YmQ4OGQ0Njc4YmU3M2RjNWEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC03MTgs
NiArNzE4LDE1IEBAIGlubGluZSB2b2lkIE5vZGU6OnNldFN0eWxlQ2hhbmdlKFN0eWxlQ2hhbmdl
VHlwZSBjaGFuZ2VUeXBlKQogICAgIG1fbm9kZUZsYWdzID0gKG1fbm9kZUZsYWdzICYgflN0eWxl
Q2hhbmdlTWFzaykgfCBjaGFuZ2VUeXBlOwogfQogCitpbmxpbmUgdm9pZCBOb2RlOjptYXJrQW5j
ZXNzb3JzV2l0aENoaWxkTmVlZHNTdHlsZVJlY2FsYygpCit7CisgICAgZm9yIChOb2RlKiBwID0g
cGFyZW50Tm9kZSgpOyBwICYmICFwLT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsgcCA9IHAtPnBh
cmVudE5vZGUoKSkKKyAgICAgICAgcC0+c2V0Q2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7CisgICAg
CisgICAgaWYgKGRvY3VtZW50KCktPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpKQorICAgICAgICBk
b2N1bWVudCgpLT5zY2hlZHVsZVN0eWxlUmVjYWxjKCk7Cit9CisKIHZvaWQgTm9kZTo6c2V0TmVl
ZHNTdHlsZVJlY2FsYyhTdHlsZUNoYW5nZVR5cGUgY2hhbmdlVHlwZSkKIHsKICAgICBBU1NFUlQo
Y2hhbmdlVHlwZSAhPSBOb1N0eWxlQ2hhbmdlKTsKQEAgLTcyOCw0OSArNzM3LDIwIEBAIHZvaWQg
Tm9kZTo6c2V0TmVlZHNTdHlsZVJlY2FsYyhTdHlsZUNoYW5nZVR5cGUgY2hhbmdlVHlwZSkKICAg
ICBpZiAoY2hhbmdlVHlwZSA+IGV4aXN0aW5nQ2hhbmdlVHlwZSkKICAgICAgICAgc2V0U3R5bGVD
aGFuZ2UoY2hhbmdlVHlwZSk7CiAKLSAgICBpZiAoZXhpc3RpbmdDaGFuZ2VUeXBlID09IE5vU3R5
bGVDaGFuZ2UpIHsKLSAgICAgICAgZm9yIChOb2RlKiBwID0gcGFyZW50Tm9kZSgpOyBwICYmICFw
LT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsgcCA9IHAtPnBhcmVudE5vZGUoKSkKLSAgICAgICAg
ICAgIHAtPnNldENoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwotCi0gICAgICAgIGlmIChkb2N1bWVu
dCgpLT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSkKLSAgICAgICAgICAgIGRvY3VtZW50KCktPnNj
aGVkdWxlU3R5bGVSZWNhbGMoKTsKLSAgICB9CisgICAgaWYgKGV4aXN0aW5nQ2hhbmdlVHlwZSA9
PSBOb1N0eWxlQ2hhbmdlKQorICAgICAgICBtYXJrQW5jZXNzb3JzV2l0aENoaWxkTmVlZHNTdHls
ZVJlY2FsYygpOwogfQogCi1zdGF0aWMgTm9kZSogb3V0ZXJtb3N0TGF6eUF0dGFjaGVkQW5jZXN0
b3IoTm9kZSogc3RhcnQpCit2b2lkIE5vZGU6OmxhenlBdHRhY2goU2hvdWxkU2V0QXR0YWNoZWQg
c2hvdWxkU2V0QXR0YWNoZWQpCiB7Ci0gICAgTm9kZSogcCA9IHN0YXJ0OwotICAgIGZvciAoTm9k
ZSogbmV4dCA9IHAtPnBhcmVudE5vZGUoKTsgIW5leHQtPnJlbmRlcmVyKCk7IHAgPSBuZXh0LCBu
ZXh0ID0gbmV4dC0+cGFyZW50Tm9kZSgpKSB7fQotICAgIHJldHVybiBwOwotfQotCi12b2lkIE5v
ZGU6OmxhenlBdHRhY2goKQotewotICAgIGJvb2wgbXVzdERvRnVsbEF0dGFjaCA9IGZhbHNlOwot
CiAgICAgZm9yIChOb2RlKiBuID0gdGhpczsgbjsgbiA9IG4tPnRyYXZlcnNlTmV4dE5vZGUodGhp
cykpIHsKLSAgICAgICAgaWYgKCFuLT5jYW5MYXp5QXR0YWNoKCkpIHsKLSAgICAgICAgICAgIG11
c3REb0Z1bGxBdHRhY2ggPSB0cnVlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQog
ICAgICAgICBpZiAobi0+Zmlyc3RDaGlsZCgpKQogICAgICAgICAgICAgbi0+c2V0Q2hpbGROZWVk
c1N0eWxlUmVjYWxjKCk7CiAgICAgICAgIG4tPnNldFN0eWxlQ2hhbmdlKEZ1bGxTdHlsZUNoYW5n
ZSk7Ci0gICAgICAgIG4tPnNldEF0dGFjaGVkKCk7Ci0gICAgfQotCi0gICAgaWYgKG11c3REb0Z1
bGxBdHRhY2gpIHsKLSAgICAgICAgTm9kZSogbGF6eUF0dGFjaGVkQW5jZXN0b3IgPSBvdXRlcm1v
c3RMYXp5QXR0YWNoZWRBbmNlc3Rvcih0aGlzKTsKLSAgICAgICAgaWYgKGxhenlBdHRhY2hlZEFu
Y2VzdG9yLT5hdHRhY2hlZCgpKQotICAgICAgICAgICAgbGF6eUF0dGFjaGVkQW5jZXN0b3ItPmRl
dGFjaCgpOwotICAgICAgICBsYXp5QXR0YWNoZWRBbmNlc3Rvci0+YXR0YWNoKCk7Ci0gICAgfSBl
bHNlIHsKLSAgICAgICAgZm9yIChOb2RlKiBwID0gcGFyZW50Tm9kZSgpOyBwICYmICFwLT5jaGls
ZE5lZWRzU3R5bGVSZWNhbGMoKTsgcCA9IHAtPnBhcmVudE5vZGUoKSkKLSAgICAgICAgICAgIHAt
PnNldENoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwotICAgICAgICBpZiAoZG9jdW1lbnQoKS0+Y2hp
bGROZWVkc1N0eWxlUmVjYWxjKCkpCi0gICAgICAgICAgICBkb2N1bWVudCgpLT5zY2hlZHVsZVN0
eWxlUmVjYWxjKCk7CisgICAgICAgIGlmIChzaG91bGRTZXRBdHRhY2hlZCA9PSBTZXRBdHRhY2hl
ZCkKKyAgICAgICAgICAgIG4tPnNldEF0dGFjaGVkKCk7CiAgICAgfQorICAgIG1hcmtBbmNlc3Nv
cnNXaXRoQ2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKIHZvaWQgTm9kZTo6c2V0Rm9jdXMo
Ym9vbCBiKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vTm9kZS5oIGIvV2ViQ29yZS9kb20vTm9k
ZS5oCmluZGV4IDI1OGM4ZmQxZTZiMzcwNWVjNzFiYmVjOTE5YWE3MmRjZTBlNzBkZjAuLmNjNjE2
NTUyZDg2OWQ4OThmMTk2NzQxZWRiZjk3NmY0ZWQxYzdmYzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
ZG9tL05vZGUuaAorKysgYi9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTMxMCw4ICszMTAsMTEgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0SXNMaW5rKCkgeyBzZXRGbGFnKElzTGlua0ZsYWcpOyB9CiAg
ICAgdm9pZCBjbGVhcklzTGluaygpIHsgY2xlYXJGbGFnKElzTGlua0ZsYWcpOyB9CiAKLSAgICB2
b2lkIGxhenlBdHRhY2goKTsKLSAgICB2aXJ0dWFsIGJvb2wgY2FuTGF6eUF0dGFjaCgpIHsgcmV0
dXJuIHRydWU7IH0KKyAgICBlbnVtIFNob3VsZFNldEF0dGFjaGVkIHsKKyAgICAgICAgU2V0QXR0
YWNoZWQsCisgICAgICAgIERvTm90U2V0QXR0YWNoZWQKKyAgICB9OworICAgIHZvaWQgbGF6eUF0
dGFjaChTaG91bGRTZXRBdHRhY2hlZCA9IFNldEF0dGFjaGVkKTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBzZXRGb2N1cyhib29sIGIgPSB0cnVlKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJv
b2wgZiA9IHRydWUsIGJvb2wgLypwYXVzZSovID0gZmFsc2UpIHsgc2V0RmxhZyhmLCBJc0FjdGl2
ZUZsYWcpOyB9CkBAIC02ODEsNiArNjg0LDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0U3R5
bGVDaGFuZ2UoU3R5bGVDaGFuZ2VUeXBlKTsKIAorICAgIC8vIFVzZWQgdG8gc2hhcmUgY29kZSBi
ZXR3ZWVuIGxhenlBdHRhY2ggYW5kIHNldE5lZWRzU3R5bGVSZWNhbGMuCisgICAgdm9pZCBtYXJr
QW5jZXNzb3JzV2l0aENoaWxkTmVlZHNTdHlsZVJlY2FsYygpOworCiAgICAgdmlydHVhbCB2b2lk
IHJlZkV2ZW50VGFyZ2V0KCkgeyByZWYoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50
VGFyZ2V0KCkgeyBkZXJlZigpOyB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVFbGVtZW50QmFzZS5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3Bw
CmluZGV4IGI5Njc5MjYwOWI1MzAyNzkwYTVlMGY4MWRlY2Q1MTcxMGQwZDEzNjIuLjhjY2E0NjU2
MjZmN2JkMDVjNjZkNzRkZTk4NWRkMmE0OGQzNzJiMDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVs
ZW1lbnRCYXNlLmNwcApAQCAtNTIsOSArNTIsOCBAQCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6SFRN
TEZyYW1lRWxlbWVudEJhc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbgog
ICAgICwgbV9zY3JvbGxpbmcoU2Nyb2xsYmFyQXV0bykKICAgICAsIG1fbWFyZ2luV2lkdGgoLTEp
CiAgICAgLCBtX21hcmdpbkhlaWdodCgtMSkKLSAgICAsIG1fY2hlY2tBdHRhY2hlZFRpbWVyKHRo
aXMsICZIVE1MRnJhbWVFbGVtZW50QmFzZTo6Y2hlY2tBdHRhY2hlZFRpbWVyRmlyZWQpCisgICAg
LCBtX2NoZWNrSW5Eb2N1bWVudFRpbWVyKHRoaXMsICZIVE1MRnJhbWVFbGVtZW50QmFzZTo6Y2hl
Y2tJbkRvY3VtZW50VGltZXJGaXJlZCkKICAgICAsIG1fdmlld1NvdXJjZShmYWxzZSkKLSAgICAs
IG1fc2hvdWxkT3BlblVSTEFmdGVyQXR0YWNoKGZhbHNlKQogICAgICwgbV9yZW1haW5zQWxpdmVP
blJlbW92YWxGcm9tVHJlZShmYWxzZSkKIHsKIH0KQEAgLTE4MywzMyArMTgyLDMxIEBAIHZvaWQg
SFRNTEZyYW1lRWxlbWVudEJhc2U6OnVwZGF0ZU9uUmVwYXJlbnRpbmcoKQogdm9pZCBIVE1MRnJh
bWVFbGVtZW50QmFzZTo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQogewogICAgIEhUTUxGcmFtZU93
bmVyRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKLSAgICAKLSAgICAvLyBXZSBkZWxh
eSBmcmFtZSBsb2FkaW5nIHVudGlsIGFmdGVyIHRoZSByZW5kZXIgdHJlZSBpcyBmdWxseSBjb25z
dHJ1Y3RlZC4KLSAgICAvLyBPdGhld2lzZSwgYSBzeW5jaHJvbm91cyBsb2FkIHRoYXQgZXhlY3V0
ZWQgSmF2YVNjcmlwdCB3b3VsZCBzZWUgaW5jb3JyZWN0IAotICAgIC8vICgwKSB2YWx1ZXMgZm9y
IHRoZSBmcmFtZSdzIHJlbmRlcmVyLWRlcGVuZGVudCBwcm9wZXJ0aWVzLCBsaWtlIHdpZHRoLgot
ICAgIG1fc2hvdWxkT3BlblVSTEFmdGVyQXR0YWNoID0gdHJ1ZTsKIAotICAgIGlmIChtX3JlbWFp
bnNBbGl2ZU9uUmVtb3ZhbEZyb21UcmVlKQorICAgIGlmIChtX3JlbWFpbnNBbGl2ZU9uUmVtb3Zh
bEZyb21UcmVlKSB7CiAgICAgICAgIHVwZGF0ZU9uUmVwYXJlbnRpbmcoKTsKLX0KLQotdm9pZCBI
VE1MRnJhbWVFbGVtZW50QmFzZTo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCi17Ci0gICAgbV9zaG91
bGRPcGVuVVJMQWZ0ZXJBdHRhY2ggPSBmYWxzZTsKKyAgICAgICAgc2V0UmVtYWluc0FsaXZlT25S
ZW1vdmFsRnJvbVRyZWUoZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIC8vIERv
Y3VtZW50RnJhZ21lbnRzIGRvbid0IGtpY2sgb2YgYW55IGxvYWRzLgorICAgIGlmICghZG9jdW1l
bnQoKS0+ZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgSFRNTEZyYW1lT3duZXJFbGVt
ZW50OjpyZW1vdmVkRnJvbURvY3VtZW50KCk7CisgICAgLy8gTG9hZHMgbWF5IGNhdXNlIHN5bmNo
cm9ub3VzIGphdmFzY3JpcHQgZXhlY3V0aW9uIChlLmcuIGJlZm9yZWxvYWQgb3IKKyAgICAvLyBz
cmM9amF2YXNjcmlwdCksIHdoaWNoIGNvdWxkIHRyeSB0byBhY2Nlc3MgdGhlIHJlbmRlcmVyIGJl
Zm9yZSB0aGUgbm9ybWFsCisgICAgLy8gcGFyc2VyIG1hY2hpbmVyeSB3b3VsZCBjYWxsIGxhenlB
dHRhY2goKSBhbmQgc2V0IHVzIGFzIG5lZWRpbmcgc3R5bGUKKyAgICAvLyByZXNvbHZlLiAgQW55
IGNvZGUgd2hpY2ggZXhwZWN0cyB0aGlzIHRvIGJlIGF0dGFjaGVkIHdpbGwgcmVzb2x2ZSBzdHls
ZQorICAgIC8vIGJlZm9yZSB1c2luZyByZW5kZXJlcigpLCBzbyB0aGlzIHdpbGwgbWFrZSBzdXJl
IHdlIGF0dGFjaCBpbiB0aW1lLgorICAgIC8vIEZJWE1FOiBOb3JtYWxseSBsYXp5QXR0YWNoIG1h
cmtzIHRoZSByZW5kZXJlciBhcyBhdHRhY2hlZCgpLCBidXQgd2UgZG9uJ3QKKyAgICAvLyB3YW50
IHRvIGRvIHRoYXQgaGVyZSwgYXMgYXMgY2FsbGVycyBleHBlY3QgdG8gY2FsbCBhdHRhY2goKSBy
aWdodCBhZnRlcgorICAgIC8vIHRoaXMgYW5kIGF0dGFjaCgpIHdpbGwgQVNTRVJUKCFhdHRhY2hl
ZCgpKQorICAgIEFTU0VSVCghcmVuZGVyZXIoKSk7IC8vIFRoaXMgcmVjYWxjIGlzIHVuZWNlc3Nh
cnkgaWYgd2UgYWxyZWFkeSBoYXZlIGEgcmVuZGVyZXIuCisgICAgbGF6eUF0dGFjaChEb05vdFNl
dEF0dGFjaGVkKTsKKyAgICBzZXROYW1lQW5kT3BlblVSTCgpOwogfQogCiB2b2lkIEhUTUxGcmFt
ZUVsZW1lbnRCYXNlOjphdHRhY2goKQogewotICAgIGlmIChtX3Nob3VsZE9wZW5VUkxBZnRlckF0
dGFjaCkgewotICAgICAgICBtX3Nob3VsZE9wZW5VUkxBZnRlckF0dGFjaCA9IGZhbHNlOwotICAg
ICAgICBpZiAoIW1fcmVtYWluc0FsaXZlT25SZW1vdmFsRnJvbVRyZWUpCi0gICAgICAgICAgICBx
dWV1ZVBvc3RBdHRhY2hDYWxsYmFjaygmSFRNTEZyYW1lRWxlbWVudEJhc2U6OnNldE5hbWVBbmRP
cGVuVVJMQ2FsbGJhY2ssIHRoaXMpOwotICAgIH0KLQotICAgIHNldFJlbWFpbnNBbGl2ZU9uUmVt
b3ZhbEZyb21UcmVlKGZhbHNlKTsKLQogICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6YXR0YWNo
KCk7CiAKICAgICBpZiAoUmVuZGVyUGFydCogcGFydCA9IHJlbmRlclBhcnQoKSkgewpAQCAtMjU4
LDE5ICsyNTUsMTcgQEAgYm9vbCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6aXNVUkxBdHRyaWJ1dGUo
QXR0cmlidXRlICphdHRyKSBjb25zdAogCiBpbnQgSFRNTEZyYW1lRWxlbWVudEJhc2U6OndpZHRo
KCkgY29uc3QKIHsKKyAgICBkb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHMoKTsKICAgICBpZiAoIXJlbmRlckJveCgpKQogICAgICAgICByZXR1cm4gMDsKLQot
ICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwog
ICAgIHJldHVybiByZW5kZXJCb3goKS0+d2lkdGgoKTsKIH0KIAogaW50IEhUTUxGcmFtZUVsZW1l
bnRCYXNlOjpoZWlnaHQoKSBjb25zdAogeworICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgIGlmICghcmVuZGVyQm94KCkpCiAgICAgICAg
IHJldHVybiAwOwotCi0gICAgZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKCk7CiAgICAgcmV0dXJuIHJlbmRlckJveCgpLT5oZWlnaHQoKTsKIH0KIApAQCAt
MjgxLDEyICsyNzYsMTIgQEAgdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6c2V0UmVtYWluc0Fs
aXZlT25SZW1vdmFsRnJvbVRyZWUoYm9vbCB2YWx1ZSkKICAgICAvLyBUaGVyZSBpcyBhIHBvc3Np
YmlsaXR5IHRoYXQgSlMgd2lsbCBkbyBkb2N1bWVudC5hZG9wdE5vZGUoKSBvbiB0aGlzIGVsZW1l
bnQgYnV0IHdpbGwgbm90IGluc2VydCBpdCBpbnRvIHRoZSB0cmVlLgogICAgIC8vIFN0YXJ0IHRo
ZSBhc3luYyB0aW1lciB0aGF0IGlzIG5vcm1hbGx5IHN0b3BwZWQgYnkgYXR0YWNoKCkuIElmIGl0
J3Mgbm90IHN0b3BwZWQgYW5kIGZpcmVzLCBpdCdsbCB1bmxvYWQgdGhlIGZyYW1lLgogICAgIGlm
ICh2YWx1ZSkKLSAgICAgICAgbV9jaGVja0F0dGFjaGVkVGltZXIuc3RhcnRPbmVTaG90KDApOwor
ICAgICAgICBtX2NoZWNrSW5Eb2N1bWVudFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKICAgICBlbHNl
Ci0gICAgICAgIG1fY2hlY2tBdHRhY2hlZFRpbWVyLnN0b3AoKTsKKyAgICAgICAgbV9jaGVja0lu
RG9jdW1lbnRUaW1lci5zdG9wKCk7CiB9CiAKLXZvaWQgSFRNTEZyYW1lRWxlbWVudEJhc2U6OmNo
ZWNrQXR0YWNoZWRUaW1lckZpcmVkKFRpbWVyPEhUTUxGcmFtZUVsZW1lbnRCYXNlPiopCit2b2lk
IEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpjaGVja0luRG9jdW1lbnRUaW1lckZpcmVkKFRpbWVyPEhU
TUxGcmFtZUVsZW1lbnRCYXNlPiopCiB7CiAgICAgQVNTRVJUKCFhdHRhY2hlZCgpKTsKICAgICBB
U1NFUlQobV9yZW1haW5zQWxpdmVPblJlbW92YWxGcm9tVHJlZSk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVF
bGVtZW50QmFzZS5oCmluZGV4IDFiNmUyYTM1YWIwYzkxMDQ1ZWZlZmU1MjBiZTMxMDZlZDE3YmZk
ODguLmFlNDFlNzVjMGJmY2IwYTdhZjMwYmJiYjg1NDkzNzJiYmM3OTJkMGUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5oCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MRnJhbWVFbGVtZW50QmFzZS5oCkBAIC01MCwxNSArNTAsMTAgQEAgcHJvdGVjdGVkOgogICAg
IGJvb2wgaXNVUkxBbGxvd2VkKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBw
ZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7Ci0KICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRv
RG9jdW1lbnQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVudCgpOwotCiAg
ICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBj
YW5MYXp5QXR0YWNoKCkgeyByZXR1cm4gZmFsc2U7IH0KLQogICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0c0ZvY3VzKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wpOwogICAg
IApAQCAtNjcsNyArNjIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzZXROYW1lKCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZSgpOwotICAgIHZvaWQgY2hlY2tBdHRhY2hl
ZFRpbWVyRmlyZWQoVGltZXI8SFRNTEZyYW1lRWxlbWVudEJhc2U+Kik7CisgICAgdm9pZCBjaGVj
a0luRG9jdW1lbnRUaW1lckZpcmVkKFRpbWVyPEhUTUxGcmFtZUVsZW1lbnRCYXNlPiopOwogICAg
IHZvaWQgdXBkYXRlT25SZXBhcmVudGluZygpOwogCiAgICAgYm9vbCB2aWV3U291cmNlTW9kZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdmlld1NvdXJjZTsgfQpAQCAtODUsMTIgKzgwLDE5IEBAIHByaXZh
dGU6CiAgICAgaW50IG1fbWFyZ2luV2lkdGg7CiAgICAgaW50IG1fbWFyZ2luSGVpZ2h0OwogCi0g
ICAgVGltZXI8SFRNTEZyYW1lRWxlbWVudEJhc2U+IG1fY2hlY2tBdHRhY2hlZFRpbWVyOworICAg
IC8vIFRoaXMgaXMgYSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gc29tZSBjYWxsICJtYWdpYyBp
ZnJhbWUiIHdoaWNoIGF2b2lkcworICAgIC8vIHRlYXJpbmcgZG93biB0aGUgZnJhbWUgaGllcmFy
Y2h5IHdoZW4gYSB3ZWIgcGFnZSBjYWxscyBhZG9wdE5vZGUgb24gYQorICAgIC8vIGZyYW1lIG93
bmluZyBlbGVtZW50IGJ1dCBkb2VzIG5vdCBpbW1lZGlhdGVseSBpbnNlcnQgaXQgaW50byB0aGUg
bmV3CisgICAgLy8gZG9jdW1lbnQgYmVmb3JlIEphdmFTY3JpcHQgeWllbGRzIHRvIFdlYkNvcmUu
ICBJZiB0aGUgZWxlbWVudCBpcyBub3QgeWV0CisgICAgLy8gaW4gYSBkb2N1bWVudCBieSB0aGUg
dGltZSB0aGlzIHRpbWVyIGZpcmVzLCB0aGUgZnJhbWUgaGllcmFyY2h5IHRlYXJkb3duCisgICAg
Ly8gd2lsbCBjb250aW51ZS4gIFRoaXMgY2FuIGFsc28gYmUgc2VlbiBhcyBpbXBsZW1lbnRhdGlv
biBvZjoKKyAgICAvLyAiUmVtb3ZpbmcgYW4gaWZyYW1lIGZyb20gYSBEb2N1bWVudCBkb2VzIG5v
dCBjYXVzZSBpdHMgYnJvd3NpbmcgY29udGV4dAorICAgIC8vIHRvIGJlIGRpc2NhcmRlZC4gSW5k
ZWVkLCBhbiBpZnJhbWUncyBicm93c2luZyBjb250ZXh0IGNhbiBzdXJ2aXZlIGl0cworICAgIC8v
IG9yaWdpbmFsIHBhcmVudCBEb2N1bWVudCBpZiBpdHMgaWZyYW1lIGlzIG1vdmVkIHRvIGFub3Ro
ZXIgRG9jdW1lbnQuIgorICAgIC8vIEZyb20gSFRNTDU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9z
cGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3RoZS1pZnJhbWUtZWxlbWVudC5o
dG1sI3RoZS1pZnJhbWUtZWxlbWVudAorICAgIFRpbWVyPEhUTUxGcmFtZUVsZW1lbnRCYXNlPiBt
X2NoZWNrSW5Eb2N1bWVudFRpbWVyOwogCiAgICAgYm9vbCBtX3ZpZXdTb3VyY2U7Ci0KLSAgICBi
b29sIG1fc2hvdWxkT3BlblVSTEFmdGVyQXR0YWNoOwotCiAgICAgYm9vbCBtX3JlbWFpbnNBbGl2
ZU9uUmVtb3ZhbEZyb21UcmVlOwogfTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxG
cmFtZU93bmVyRWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50
LmNwcAppbmRleCAzZjk0NmYwZDNlNDUwOTM1MGM0NTIwMTIyODlmMGU0ODBjYzQ0NDc2Li5iNDA5
YmNjOThjZjcxMTBjNGQyNmU4ZjllNmYxZDY2YWEwOWY3YmQyIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZy
YW1lT3duZXJFbGVtZW50LmNwcApAQCAtNTEsOSArNTEsMTEgQEAgUmVuZGVyUGFydCogSFRNTEZy
YW1lT3duZXJFbGVtZW50OjpyZW5kZXJQYXJ0KCkgY29uc3QKIAogdm9pZCBIVE1MRnJhbWVPd25l
ckVsZW1lbnQ6OndpbGxSZW1vdmUoKQogeworICAgIC8vIEZJWE1FOiBJdCBpcyB1bmNsZWFyIHdo
eSB0aGlzIGNhbid0IGJlIG1vdmVkIHRvIHJlbW92ZWRGcm9tRG9jdW1lbnQoKQorICAgIC8vIHRo
aXMgaXMgdGhlIG9ubHkgaW1wbGVtZW50YXRpb24gb2Ygd2lsbFJlbW92ZSBpbiBXZWJDb3JlIQog
ICAgIGlmIChGcmFtZSogZnJhbWUgPSBjb250ZW50RnJhbWUoKSkgewotICAgICAgICBmcmFtZS0+
ZGlzY29ubmVjdE93bmVyRWxlbWVudCgpOwogICAgICAgICBmcmFtZS0+bG9hZGVyKCktPmZyYW1l
RGV0YWNoZWQoKTsKKyAgICAgICAgZnJhbWUtPmRpc2Nvbm5lY3RPd25lckVsZW1lbnQoKTsKICAg
ICB9CiAKICAgICBIVE1MRWxlbWVudDo6d2lsbFJlbW92ZSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAgYi9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAppbmRleCAwMTcyYjNkMThiZDAwMjY5YzI3OTgz
NzJkYzE1MzU1ZTBhMGMxOWE1Li42MjE1YmJhY2RmYzM3YTdkYTg1YWJhYWE2YzFjZjZmMjUxOTEw
YjZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRl
LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcApA
QCAtMTE0LDE5ICsxMTQsMTkgQEAgUGFzc1JlZlB0cjxDaGlsZFR5cGU+IEhUTUxDb25zdHJ1Y3Rp
b25TaXRlOjphdHRhY2goQ29udGFpbmVyTm9kZSogcGFyZW50LCBQYXNzUmUKIAogdm9pZCBIVE1M
Q29uc3RydWN0aW9uU2l0ZTo6YXR0YWNoQXRTaXRlKGNvbnN0IEF0dGFjaG1lbnRTaXRlJiBzaXRl
LCBQYXNzUmVmUHRyPE5vZGU+IHBycENoaWxkKQogeworICAgIC8vIEZJWE1FOiBJdCdzIHVuZm9y
dHVuYXRlIHRoYXQgd2UgbmVlZCB0byBob2xkIGEgcmVmZXJlbmNlIHRvIGNoaWxkCisgICAgLy8g
aGVyZSB0byBjYWxsIGF0dGFjaCgpLiAgV2Ugc2hvdWxkIGludmVzdGlnYXRlIHdoZXRoZXIgd2Ug
Y2FuIHJlbHkgb24KKyAgICAvLyB8c2l0ZS5wYXJlbnR8IHRvIGhvbGQgYSByZWYgYXQgdGhpcyBw
b2ludC4KICAgICBSZWZQdHI8Tm9kZT4gY2hpbGQgPSBwcnBDaGlsZDsKIAotICAgIGlmIChzaXRl
Lm5leHRDaGlsZCkgeworICAgIGlmIChzaXRlLm5leHRDaGlsZCkKICAgICAgICAgc2l0ZS5wYXJl
bnQtPnBhcnNlckluc2VydEJlZm9yZShjaGlsZCwgc2l0ZS5uZXh0Q2hpbGQpOwotICAgICAgICBp
ZiAoc2l0ZS5wYXJlbnQtPmF0dGFjaGVkKCkgJiYgIWNoaWxkLT5hdHRhY2hlZCgpKQotICAgICAg
ICAgICAgY2hpbGQtPmF0dGFjaCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIHNpdGUu
cGFyZW50LT5wYXJzZXJBZGRDaGlsZChjaGlsZCk7Ci0gICAgLy8gSXQncyBzbGlnaHRseSB1bmZv
cnR1bmF0ZSB0aGF0IHdlIG5lZWQgdG8gaG9sZCBhIHJlZmVyZW5jZSB0byBjaGlsZAotICAgIC8v
IGhlcmUgdG8gY2FsbCBhdHRhY2goKS4gIFdlIHNob3VsZCBpbnZlc3RpZ2F0ZSB3aGV0aGVyIHdl
IGNhbiByZWx5IG9uCi0gICAgLy8gfHNpdGUucGFyZW50fCB0byBob2xkIGEgcmVmIGF0IHRoaXMg
cG9pbnQuCi0gICAgaWYgKHNpdGUucGFyZW50LT5hdHRhY2hlZCgpICYmICFjaGlsZC0+YXR0YWNo
ZWQoKSkKKyAgICBlbHNlCisgICAgICAgIHNpdGUucGFyZW50LT5wYXJzZXJBZGRDaGlsZChjaGls
ZCk7CisKKyAgICAvLyBKYXZhU2NyaXB0IHJ1biBmcm9tIGJlZm9yZWxvYWQgKG9yIERPTSBNdXRh
dGlvbiBvciBldmVudCBoYW5kbGVycykKKyAgICAvLyBtaWdodCBoYXZlIHJlbW92ZWQgdGhlIGNo
aWxkLCBpbiB3aGljaCBjYXNlIHdlIHNob3VsZCBub3QgYXR0YWNoIGl0LgorICAgIGlmIChjaGls
ZC0+cGFyZW50Tm9kZSgpICYmIHNpdGUucGFyZW50LT5hdHRhY2hlZCgpICYmICFjaGlsZC0+YXR0
YWNoZWQoKSkKICAgICAgICAgY2hpbGQtPmF0dGFjaCgpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67054</attachid>
            <date>2010-09-09 10:32:22 -0700</date>
            <delta_ts>2010-09-10 02:12:38 -0700</delta_ts>
            <desc>Updated with Dave and Dimitri&apos;s comments</desc>
            <filename>bug-45365-20100909103220.patch</filename>
            <type>text/plain</type>
            <size>23282</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxZDk3YjFkOTQ1MzEzYTM3NWJjNGUzOWVkNWQ3NWRmMzhjZjcyNTc5Li5mNWE5NTMw
NDMyMjMwMzMxZjU1Y2U3MTMyYTE1NTY1ZDM1NzNkYmNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMDktMDkgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciBu
b24tbGF6eSBhdHRhY2ggYW5kIGZpeCBmcmFtZXMgdG8gbG9hZCBmcm9tIGluc2VydGVkSW50b0Rv
Y3VtZW50IGluc3RlYWQgb2YgYXR0YWNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NTM2NQorCisgICAgICAgICogZmFzdC9kb20vYmVmb3JlbG9hZC9y
ZW1vdmUtZnJhbWUtaW4tYmVmb3JlbG9hZC1saXN0ZW5lci5odG1sOgorICAgICAgICAgIC0gQWRk
IGEgY29tbWVudCB0byBtYWtlIGNsZWFyIHRoYXQgdGhpcyB0ZXN0IGludGVudGlvbmFsbHkKKyAg
ICAgICAgICAgIGRvZXMgbm90IGNhbmNlbCB0aGUgbG9hZCBpbiB0aGUgYmVmb3JlbG9hZCBldmVu
dCwgYnV0IHJhdGhlcgorICAgICAgICAgICAgcmVsaWVzIG9uIFdlYkNvcmUncyBvd24gTm9kZTo6
d2lsbFJlbW92ZSgpIGltcGxlbWVudGF0aW9uIHRvCisgICAgICAgICAgICBjYW5jZWwgdGhlIGxv
YWQgd2hlbiB0aGUgZnJhbWUgaXMgcmVtb3ZlZC4KKyAgICAgICAgICAgIChUaGUgbG9hZCBpcyBu
b3QgYWN0dWFsbHkgZGlyZWN0bHkgY2FuY2VsZWQgcGVyIHNheSwgYnV0IHRoZQorICAgICAgICAg
ICAgbG9hZGluZyBsb2dpYyBjaGVja3MgdG8gc2VlIGlmIHRoZSBmcmFtZSBpcyBzdGlsbCBpbiB0
aGUgZnJhbWUKKyAgICAgICAgICAgIHRyZWUgcmlnaHQgYWZ0ZXIgY3JlYXRpbmcgdGhlIGZyYW1l
IGFuZCBhYm9ydHMgaWYgaXRzIG5vdC4KKyAgICAgICAgICAgIEhUTUxGcmFtZU93bmVyRWxlbWVu
dDo6d2lsbFJlbW92ZSBjbGVhcnMgdGhlIGZyYW1lIG93bmVyIHBvaW50ZXIKKyAgICAgICAgICAg
IGNhdXNpbmcgdGhlIGZyYW1lIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgdHJlZS4pCisKIDIwMTAt
MDktMDggIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2JlZm9yZWxvYWQvcmVt
b3ZlLWZyYW1lLWluLWJlZm9yZWxvYWQtbGlzdGVuZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL2JlZm9yZWxvYWQvcmVtb3ZlLWZyYW1lLWluLWJlZm9yZWxvYWQtbGlzdGVuZXIuaHRtbApp
bmRleCBmZTQ1MTk1OGQ0OGYyYjg0ZWY2ZDcwNDliMjY0YWY3MDM3NDc0NDE0Li44ZDBmNTE0OGI3
ZTM5ZThjNmRiMGRkNjgzNGRmNzQzMjllOTUwZDFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9iZWZvcmVsb2FkL3JlbW92ZS1mcmFtZS1pbi1iZWZvcmVsb2FkLWxpc3RlbmVyLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vYmVmb3JlbG9hZC9yZW1vdmUtZnJhbWUtaW4t
YmVmb3JlbG9hZC1saXN0ZW5lci5odG1sCkBAIC04LDYgKzgsMTAgQEAKICAgICAgICAgZG9jdW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JlbG9hZCIsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAg
ICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICYmIGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50KQog
ICAgICAgICAgICAgICAgIGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGV2
ZW50LnRhcmdldCk7CisgICAgICAgICAgICAgICAgLy8gTm90ZSwgd2UgaW50ZW50aW9uYWxseSBk
byBub3QgY2FuY2VsIHRoZSBsb2FkIGhlcmUsCisgICAgICAgICAgICAgICAgLy8gV2ViQ29yZSBz
aG91bGQgYXV0b21hdGljYWxseSBjYW5jZWwgaXQuCisgICAgICAgICAgICAgICAgLy8gT3RoZXJ3
aXNlIERSVCB3aWxsIHByaW50OgorICAgICAgICAgICAgICAgIC8vIEJsb2NrZWQgYWNjZXNzIHRv
IGV4dGVybmFsIFVSTCBodHRwOi8vd2Via2l0Lm9yZy8KICAgICAgICAgfSwgdHJ1ZSk7CiAgICAg
PC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDZmYTM2MzJmZGEwNWUwMDE5NGVjZmI3YzJhODE4NTI1Mjg5NGU0
NmQuLmJhYjAwN2JhZDVhMTdkZTEwNTQ3ZTMyMDg3MDVmNjY2MjE5MThhZmEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE0
IEBACisyMDEwLTA5LTA5ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgc3VwcG9ydCBm
b3Igbm9uLWxhenkgYXR0YWNoIGFuZCBmaXggZnJhbWVzIHRvIGxvYWQgZnJvbSBpbnNlcnRlZElu
dG9Eb2N1bWVudCBpbnN0ZWFkIG9mIGF0dGFjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUzNjUKKworICAgICAgICBUaGlzIGNoYW5nZSBpcyB0aGUg
bGFzdCBwaWVjZSBvZiB0aGUgcHV6emxlIHdoaWNoIHdhcyBwcmV2ZW50aW5nIHVzIGZyb20KKyAg
ICAgICAgcmVtb3ZpbmcgYWxsIGVhZ2VyLWF0dGFjaCBsb2dpYyBhbmQgbW92aW5nIFdlYkNvcmUg
dG8gdXNpbmcgYW4gZW50aXJlbHkKKyAgICAgICAgcmVjYWxjU3R5bGUtZHJpdmVuLCBvbi1kZW1h
bmQgcmVuZGVyZXIgY3JlYXRpb24gc3lzdGVtLCBpbnN0ZWFkIG9mIGV2ZXJ5CisgICAgICAgIGVs
ZW1lbnQgYmVpbmcgc3luY2hyb25vdXNseSBhdHRhY2hlZCBkdXJpbmcgcGFyc2luZywgcmVnYXJk
bGVzcyBvZiB3aGV0aGVyCisgICAgICAgIGl0IHdhcyBldmVyIGdvaW5nIHRvIGJlIGRpc3BsYXll
ZCBvciBub3QuCisKKyAgICAgICAgVGhpcyBkb2VzIG5vdCBjaGFuZ2UgdGhlIHBsYWNlcyB3ZSBj
YWxsIGxhenlBdHRhY2ggdnMuIGF0dGFjaC4gIFRoaXMgb25seQorICAgICAgICBjaGFuZ2VzIHRo
ZSBiZWhhdmlvciBvZiBmcmFtZS9wbHVnaW4gZWxlbWVudHMgd2hlbiBsYXp5QXR0YWNoIGlzIGNh
bGxlZC4KKyAgICAgICAgUHJldmlvdXNseSBsYXp5QXR0YWNoIHdvdWxkIGVhZ2VyLWF0dGFjaCB0
aG9zZSBlbGVtZW50cyAoYW5kIHRoZWlyIGFuY2VzdG9ycykKKyAgICAgICAgYmVjYXVzZSB0aGV5
IHdlcmUgbWFya2VkIGFzIGNhbkxhenlBdHRhY2goKSB7IHJldHVybiBmYWxzZTsgfS4KKworICAg
ICAgICBUaGlzIGlzIGEgdmVyeSB0cmlja3kgY2hhbmdlLCBwbGVhc2UgcmV2aWV3IGNhcmVmdWxs
eS4KKworICAgICAgICBNb3N0bHkgSSdtIG1vdmluZyBsb2dpYyB3aGljaCB1c2VkIHRvIGJlIGlu
IGF0dGFjaCgpIGludG8KKyAgICAgICAgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQuICBPbmNlIGl0IHdh
cyB0aGVyZSwgdGhlcmUgd2FzIG5vIGxvbmdlciBhbnkgcmVhc29uCisgICAgICAgIHdoeSBmcmFt
ZSBlbGVtZW50cyBjb3VsZG4ndCBsYXp5QXR0YWNoLCB0aHVzIHJlbW92aW5nIHRoZSBuZWVkCisg
ICAgICAgIGZvciB0aGUgbm9uLWxhenkgYXR0YWNoIGNvZGUgcGF0aCBlbnRpcmVseS4KKyAgICAg
ICAgV2UndmUgbm90IHlldCBjb252ZXJ0ZWQgYWxsIGNhbGxzaXRlcyBvdmVyIHRvIHVzaW5nIGxh
enlBdHRhY2goKSBpbnN0ZWFkCisgICAgICAgIG9mIGF0dGFjaCgpIGhvd2V2ZXIuCisKKyAgICAg
ICAgSW4gb3JkZXIgdG8gbW92ZSBmcmFtZSBsb2FkaW5nIGxvZ2ljIGludG8gaW5zZXJ0ZWRJbnRv
RG9jdW1lbnQKKyAgICAgICAgaW5zdGVhZCBvZiBhdHRhY2gsIEkgbmVlZGVkIHRvIG1ha2Ugc3Vy
ZSB0aGF0IGFueSBqYXZhc2NyaXB0IGNhbGxzCisgICAgICAgIGR1cmluZyB0aGUgbG9hZCB3b3Vs
ZCBzZWUgYW4gYXR0YWNoZWQgZWxlbWVudC4gIFRodXMgSSBuZWVkZWQgdG8gbWFyaworICAgICAg
ICB0aGUgZWxlbWVudCBhcyBuZWVkaW5nIHN0eWxlIHJlc29sdmUgc28gdGhhdCBpdCB3b3VsZCBh
dHRhY2ggaXRzZWxmCisgICAgICAgIGlmIG5lZWRlZC4KKworICAgICAgICBJIHdhcyBub3QgYWJs
ZSB0byBqdXN0IGNhbGwgbGF6eUF0dGFjaCgpIGZyb20gaW5zZXJ0ZWRJbnRvRG9jdW1lbnQgZGly
ZWN0bHkKKyAgICAgICAgZHVlIHRvIHR3byBjb25mbGljdGluZyBhc3N1bXB0aW9ucyBpbiB0aGUg
cmVuZGVyaW5nIHRyZWU6CisgICAgICAgICAxLiBDb250YWluZXJOb2RlOjphdHRhY2goKSBhc3N1
bWVzIGl0cyAic2FmZSIgdG8gY2FsbCBhdHRhY2ggb24gYWxsIGNoaWxkcmVuCisgICAgICAgICAg
ICB3aXRob3V0IGNoZWNraW5nIGZpcnN0IGlmIHRoZSBjaGlsZCBpcyBhbHJlYWR5IGF0dGFjaGVk
LiAgVGhpcyBzZWVtcyBzYW5lCisgICAgICAgICAgICBzaW5jZSBpdHMgc3RyYW5nZSB0byB0aGlu
ayBvZiBhIHN1YnRyZWUgYXMgYmVpbmcgYXR0YWNoZWQgdy9vIGFuY2VzdG9ycworICAgICAgICAg
ICAgYWxyZWFkeSBiZWluZyBhdHRhY2hlZC4gIEFsdGhvdWdoIGl0IGlzIGEgaGFyZCBydWxlIHRo
YXQgc3VidHJlZXMgbWF5IG5vdAorICAgICAgICAgICAgaGF2ZSByZW5kZXJlcnMgdy9vIGFuY2Vz
dG9ycyBhbHNvIGhhdmluZyByZW5kZXJlcnMsIEkgZG8gbm90IGJlbGlldmUgaXQncworICAgICAg
ICAgICAgYSBoYXJkIHJ1bGUgdGhhdCBzdWJ0cmVlcyBtYXkgbm90IGJlIGF0dGFjaGVkLiAgUmVt
ZW1iZXIsIGF0dGFjaGVkKCkgZG9lcworICAgICAgICAgICAgbm90IGltcGx5IHJlbmRlcmVyKCkh
ICBJdCdzIHBvc3NpYmxlIENvbnRhaW5lck5vZGU6OmF0dGFjaCgpJ3MgYXNzdW1wdGlvbiBpcyB3
cm9uZyBoZXJlLgorICAgICAgICAgMi4gTm9kZTo6YXR0YWNoKCkgYXNzZXJ0cyAhYXR0YWNoZWQo
KS4gIFRoaXMgbWFrZXMgc2Vuc2UgYW5kIEkgd291bGQgbm90CisgICAgICAgICAgICB3YW50IHRv
IHJlbW92ZSB0aGlzIGFzc2VydCwgaG93ZXZlciBpdCBtZWFucyB0aGF0IGlmIGluc2VydGVkSW50
b0RvY3VtZW50CisgICAgICAgICAgICB3ZXJlIHRvIGNhbGwgbGF6eUF0dGFjaCgpICh0aHVzIG1h
cmtpbmcgdGhlIGVsZW1lbnQgYXMgYXR0YWNoZWQoKSkgdGhlbgorICAgICAgICAgICAgYWxsIGNh
bGxlcnMgd291bGQgbmVlZCB0byBjaGVjayBpZiB0aGUgZWxlbWVudCB3YXMgYWxyZWFkeSBhdHRh
Y2hlZCBhZnRlcgorICAgICAgICAgICAgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQgKGNhbGxlZCBieSBh
cHBlbmRDaGlsZCwgcGFyc2VyQXBwZW5kQ2hpbGQsIGV0Yy4pCisgICAgICAgICAgICBiZWZvcmUg
Y2FsbGluZyBhdHRhY2ggb3IgbGF6eUF0dGFjaCgpLiAgVGhlIGZvbGxvd2luZyBleGFtcGxlOgor
ICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSAiPHNwYW4+PGlmcmFtZT48L3NwYW4+IiBp
cyBvbmUgY2FzZSB3aGVyZSB0aGlzCisgICAgICAgICAgICBBU1NFUlQgd291bGQgYmUgaGl0IGlm
IGluc2VydGVkSW50b0RvY3VtZW50IGNhbGxlZCBsYXp5QXR0YWNoLCBzaW5jZQorICAgICAgICAg
ICAgQ29udGFpbmVyTm9kZTo6YXR0YWNoKCkgKGNhbGxlZCBvbiB0aGUgc3BhbiBieSBpbiBhcHBl
bmRDaGlsZChEb2N1bWVudEZyYWdtZW50KSBjb2RlKQorICAgICAgICAgICAgZG9lcyBub3QgY2hl
Y2sgaWYgaWZyYW1lIGlzIGFscmVhZHkgYXR0YWNoZWQuCisKKyAgICAgICAgTm90ZTogT25lIHN1
YnRsZSBjaGFuZ2UgaGVyZSBpcyB0aGF0IHN5bmNocm9ub3VzIGphdmFzY3JpcHQgd2hpY2ggcmVz
dWx0cworICAgICAgICBmcm9tIGphdmFzY3JpcHQ6IG9yIGJlZm9yZWxvYWQgaXMgbm93IHJ1biBh
cyBwYXJ0IG9mIGluc2VydGVkSW50b0RvY3VtZW50CisgICAgICAgICh0aHVzIGFueSBpbnNlcnQv
YXBwZW5kIGNhbGwgKmV2ZW4qIHBhcnNlckFkZENoaWxkKSBpbnN0ZWFkIG9mIGJlaW5nCisgICAg
ICAgIHJ1biBkdXJpbmcgYXR0YWNoICh0ZWNobmljYWxseSBpbiB0aGUgcG9zdC1hdHRhY2ggY2Fs
bGJhY2tzKS4KKworICAgICAgICBUaGlzIGlzIGNvdmVyZWQgYnkgbnVtZXJvdXMgbGF5b3V0IHRl
c3RzLgorCisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6d2lsbFJlbW92ZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OndpbGxSZW1vdmVDaGlsZHJl
bik6CisgICAgICAgICAtIFNpbmNlIGluc2VydGVkSW50b0RvY3VtZW50IHN0YXJ0cyBhIGxvYWQg
YW5kIHlldCBkb2VzIG5vdCBtYXJrIHRoZQorICAgICAgICAgICBlbGVtZW50IGFzIGF0dGFjaGVk
LCB3ZSBuZWVkIHRvIGFsd2F5cyBjYWxsIHdpbGxSZW1vdmUoKS4KKyAgICAgICAgICAgU2VlIG5v
dGUgYWJvdmUgYXMgdG8gd2h5IHdlIGRvbid0IGp1c3QgbWFyayBhdHRhY2hlZCgpIGluIGluc2Vy
dGVkSW50b0RvY3VtZW50LgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6Om1hcmtBbmNlc3RvcnNXaXRoQ2hpbGROZWVkc1N0eWxlUmVjYWxjKToKKyAgICAg
ICAgIC0gU2hhcmUgc29tZSBjb2RlIGJldHdlZW4gbGF6eUF0dGFjaCBhbmQgc2V0TmVlZHNTdHls
ZVJlY2FsYy4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNldE5lZWRzU3R5bGVSZWNhbGMpOgor
ICAgICAgICAgLSBVc2UgdGhlIG5ldyBtYXJrQW5jZXN0b3JzV2l0aENoaWxkTmVlZHNTdHlsZVJl
Y2FsYworICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bGF6eUF0dGFjaCk6CisgICAgICAgICAtIFJl
bW92ZSB0aGUgbm9uLWxhenkgY29kZSBwYXRoLCBhbmQgdXNlIG1hcmtBbmNlc3RvcnNXaXRoQ2hp
bGROZWVkc1N0eWxlUmVjYWxjLgorICAgICAgICAgLSBBZGQgYW4gb3B0aW9uIHRvIGxhenlBdHRh
Y2ggd2l0aG91dCBtYXJraW5nIGF0dGFjaGVkKCksIHVzZWQgYnkgSFRNTEZyYW1lRWxlbWVudEJh
c2U6Omluc2VydGVkSW50b0RvY3VtZW50LgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAg
ICogaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHA6CisgICAgICAgICAtIG1fc2hvdWxkT3Bl
blVSTEFmdGVyQXR0YWNoIGlzIG5vIGxvbmdlciBuZWVkZWQsIHlheSEKKyAgICAgICAgIC0gbV9j
aGVja0F0dGFjaGVkVGltZXIgbm8gbG9uZ2VyIGhhcyBhbnl0aGluZyB0byBkbyB3aXRoIGF0dGFj
aGVkKCksIHNvIHJlbmFtZWQgaXQuCisgICAgICAgICAgIEkgYWxzbyBkb2N1bWVudGVkIHRoYXQg
dGhlIG5ld2x5IG5hbWVkIG1fY2hlY2tJbkRvY3VtZW50VGltZXIgaXMgYWxsIGFib3V0IHRoZQor
ICAgICAgICAgICAibWFnaWMgaWZyYW1lIiBwZXJmb3JtYW5jZSBxdWlyay4gIChXaGljaCBpcyBh
Y3R1YWxseSBzcGVjZWQgaW4gSFRNTDUpLgorICAgICAgICAgICBJIHdhcyBpbml0aWFsbHkgYmFm
ZmxlZCBieSB0aGlzIGNvZGUsIHNvIEkgZG9jdW1lbnRlZCBpdC4KKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxGcmFtZUVsZW1lbnRCYXNlOjpIVE1MRnJhbWVFbGVtZW50QmFzZSkKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxGcmFtZUVsZW1lbnRCYXNlOjppbnNlcnRlZEludG9Eb2N1bWVudCk6CisgICAg
ICAgICAtIFRoaXMgaXMgdGhlIG1lYXQgb2YgdGhpcyBjaGFuZ2UsIHNlZSBkaXNjdXNzaW9uIGFi
b3ZlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U6OmF0dGFjaCk6Cisg
ICAgICAgICAtIENvZGUgZGVsZXRlZCBvciBtb3ZlZCB0byBpbnNlcnRlZEludG9Eb2N1bWVudC4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1lbnRCYXNlOjp3aWR0aCk6CisgICAgICAg
ICAtIEZpeGVkIGEgYnVnIGluIGhlaWdodCgpL3dpZHRoKCkgd2hpY2ggd2FzIHByb2JhYmx5IGNh
dXNpbmcgY3Jhc2hlcworICAgICAgICAgICBhbmQgd2FzIGNhdXNpbmcgaW5jb3JyZWN0IGJlaGF2
aW9yIGFmdGVyIHRoaXMgY2hhbmdlLgorICAgICAgICAgICByZW5kZXJCb3goKSBpcyBub3QgbmVj
ZXNzYXJpbHkgdmFsaWQgdW5sZXNzIGxheW91dCBpcyB1cCB0byBkYXRlLgorICAgICAgICAgICBV
cGRhdGluZyBsYXlvdXQsIGNhbiBjYXVzZSByZW5kZXJCb3goKSB0byBnbyBpbnZhbGlkLCB0aHVz
IHRoaXMKKyAgICAgICAgICAgY291bGQgaGF2ZSBiZWVuIGEgbnVsbC1wb2ludGVyIGNyYXNoLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U6OmhlaWdodCk6IHNlZSB3aWR0
aCgpCisgICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50QmFzZTo6c2V0UmVtYWluc0Fs
aXZlT25SZW1vdmFsRnJvbVRyZWUpOiBUaW1lciByZW5hbWUuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MRnJhbWVFbGVtZW50QmFzZTo6Y2hlY2tJbkRvY3VtZW50VGltZXJGaXJlZCk6IFRpbWVyIHJl
bmFtZS4KKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmg6CisgICAgICAgICog
aHRtbC9IVE1MRnJhbWVPd25lckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZy
YW1lT3duZXJFbGVtZW50Ojp3aWxsUmVtb3ZlKToKKyAgICAgICAgIC0gRGlzY29ubmVjdGluZyB0
aGUgb3duZXIgZWxlbWVudCByZW1vdmVzIHRoZSBmcmFtZSBmcm9tIHRoZSBmcmFtZSB0cmVlLgor
ICAgICAgICAgICBmcmFtZURldGFjaGVkKCkgY2FsbHMgUGFnZTo6ZnJhbWVDb3VudCB3aGljaCBl
eHBlY3RzIHRoYXQgdGhlIGZyYW1lIGlzCisgICAgICAgICAgIGFscmVhZHkgZ29uZSBhdCB0aGlz
IHBvaW50IGFuZCBhc3NlcnRzIHdoZW4gaXQncyBub3QuICBJdCdzIHVuY2xlYXIgaG93CisgICAg
ICAgICAgIHRoaXMgd29ya2VkIGJlZm9yZSwgZXhjZXB0IHRoYXQgdGhlIGZyYW1lIHJlbW92YWwg
d2FzIGxpa2VseSBkb25lIGluIHRoZQorICAgICAgICAgICBwb3N0LWF0dGFjaCBjYWxsYmFjaywg
c28gdGhlIGZyYW1lQ291bnQgd2FzIHdyb25nICh0b28gaGlnaCkgZHVyaW5nCisgICAgICAgICAg
IGZyYW1lRGV0YWNoZWQoKSwgYnV0IHdhcyBmaXhlZCB1cCBpbiB0aGUgcG9zdC1kZXRhY2ggY2Fs
bGJhY2suCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6OmF0dGFjaEF0U2l0ZSk6Cisg
ICAgICAgICAgLSBTaW1wbGlmaWVkIHRoaXMgY29kZSwgYW5kIGFkZGVkIGEgY2hlY2sgZm9yIHRo
ZSBjYXNlIHdoZW4gdGhlIG5vZGUgd2FzIGFscmVhZHkgcmVtb3ZlZC4KKyAgICAgICAgICAgIFNp
bmNlIHRoZSBsb2FkIGxvZ2ljIGlzIG5vdyBydW4gZHVyaW5nIGluc2VydGVkSW50b0RvY3VtZW50
IGluc3RlYWQgb2YgYXR0YWNoKCksCisgICAgICAgICAgICBzeW5jaHJvbm91cyBqYXZhc2NyaXB0
IGlzIG5vdyBydW5uaW5nIGR1cmluZyBpbnNlcnRlZEludG9Eb2N1bWVudCBhbmQgd2UgbmVlZCB0
bworICAgICAgICAgICAgbWFrZSBzdXJlIHRoYXQgdGhlIGNoaWxkIGlzIHN0aWxsIGluIHRoZSB0
cmVlLgorCiAyMDEwLTA5LTA4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9D
b250YWluZXJOb2RlLmNwcCBiL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IDQ2
ZGU3NDkxYTUzNDI4ODFiM2E4OWNmYmQyNjhiNzg5NzFjZGQ5ZTguLjFlMzM3YjA3YWU2YTY2MTBj
YjgxYmQyOWVmODQxNjE4ZDZkNDFiZGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGUuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC0zNTksOSAr
MzU5LDcgQEAgc3RhdGljIHZvaWQgd2lsbFJlbW92ZUNoaWxkKE5vZGUqIGNoaWxkKQogCiAgICAg
Ly8gZmlyZSByZW1vdmVkIGZyb20gZG9jdW1lbnQgbXV0YXRpb24gZXZlbnRzLgogICAgIGRpc3Bh
dGNoQ2hpbGRSZW1vdmFsRXZlbnRzKGNoaWxkKTsKLQotICAgIGlmIChjaGlsZC0+YXR0YWNoZWQo
KSkKLSAgICAgICAgY2hpbGQtPndpbGxSZW1vdmUoKTsKKyAgICBjaGlsZC0+d2lsbFJlbW92ZSgp
OwogfQogCiBzdGF0aWMgdm9pZCB3aWxsUmVtb3ZlQ2hpbGRyZW4oQ29udGFpbmVyTm9kZSogY29u
dGFpbmVyKQpAQCAtMzczLDkgKzM3MSw3IEBAIHN0YXRpYyB2b2lkIHdpbGxSZW1vdmVDaGlsZHJl
bihDb250YWluZXJOb2RlKiBjb250YWluZXIpCiAgICAgZm9yIChSZWZQdHI8Tm9kZT4gY2hpbGQg
PSBjb250YWluZXItPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJs
aW5nKCkpIHsKICAgICAgICAgLy8gZmlyZSByZW1vdmVkIGZyb20gZG9jdW1lbnQgbXV0YXRpb24g
ZXZlbnRzLgogICAgICAgICBkaXNwYXRjaENoaWxkUmVtb3ZhbEV2ZW50cyhjaGlsZC5nZXQoKSk7
Ci0KLSAgICAgICAgaWYgKGNoaWxkLT5hdHRhY2hlZCgpKQotICAgICAgICAgICAgY2hpbGQtPndp
bGxSZW1vdmUoKTsKKyAgICAgICAgY2hpbGQtPndpbGxSZW1vdmUoKTsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5k
ZXggZjY1NTRkZTYwNzgyNjY4MTkzNjFjN2M4ODVjYmJhNmFlOGQwMmI2ZS4uOGZmODIyYTRjNDE0
NjRhMWMzNzA0MDgyNTU5MzhhOWE1MGZhZTMyMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vTm9k
ZS5jcHAKKysrIGIvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTcxOCw2ICs3MTgsMTUgQEAgaW5s
aW5lIHZvaWQgTm9kZTo6c2V0U3R5bGVDaGFuZ2UoU3R5bGVDaGFuZ2VUeXBlIGNoYW5nZVR5cGUp
CiAgICAgbV9ub2RlRmxhZ3MgPSAobV9ub2RlRmxhZ3MgJiB+U3R5bGVDaGFuZ2VNYXNrKSB8IGNo
YW5nZVR5cGU7CiB9CiAKK2lubGluZSB2b2lkIE5vZGU6Om1hcmtBbmNlc3RvcnNXaXRoQ2hpbGRO
ZWVkc1N0eWxlUmVjYWxjKCkKK3sKKyAgICBmb3IgKE5vZGUqIHAgPSBwYXJlbnROb2RlKCk7IHAg
JiYgIXAtPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpOyBwID0gcC0+cGFyZW50Tm9kZSgpKQorICAg
ICAgICBwLT5zZXRDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICAKKyAgICBpZiAoZG9jdW1l
bnQoKS0+Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCkpCisgICAgICAgIGRvY3VtZW50KCktPnNjaGVk
dWxlU3R5bGVSZWNhbGMoKTsKK30KKwogdm9pZCBOb2RlOjpzZXROZWVkc1N0eWxlUmVjYWxjKFN0
eWxlQ2hhbmdlVHlwZSBjaGFuZ2VUeXBlKQogewogICAgIEFTU0VSVChjaGFuZ2VUeXBlICE9IE5v
U3R5bGVDaGFuZ2UpOwpAQCAtNzI4LDQ5ICs3MzcsMjAgQEAgdm9pZCBOb2RlOjpzZXROZWVkc1N0
eWxlUmVjYWxjKFN0eWxlQ2hhbmdlVHlwZSBjaGFuZ2VUeXBlKQogICAgIGlmIChjaGFuZ2VUeXBl
ID4gZXhpc3RpbmdDaGFuZ2VUeXBlKQogICAgICAgICBzZXRTdHlsZUNoYW5nZShjaGFuZ2VUeXBl
KTsKIAotICAgIGlmIChleGlzdGluZ0NoYW5nZVR5cGUgPT0gTm9TdHlsZUNoYW5nZSkgewotICAg
ICAgICBmb3IgKE5vZGUqIHAgPSBwYXJlbnROb2RlKCk7IHAgJiYgIXAtPmNoaWxkTmVlZHNTdHls
ZVJlY2FsYygpOyBwID0gcC0+cGFyZW50Tm9kZSgpKQotICAgICAgICAgICAgcC0+c2V0Q2hpbGRO
ZWVkc1N0eWxlUmVjYWxjKCk7Ci0KLSAgICAgICAgaWYgKGRvY3VtZW50KCktPmNoaWxkTmVlZHNT
dHlsZVJlY2FsYygpKQotICAgICAgICAgICAgZG9jdW1lbnQoKS0+c2NoZWR1bGVTdHlsZVJlY2Fs
YygpOwotICAgIH0KKyAgICBpZiAoZXhpc3RpbmdDaGFuZ2VUeXBlID09IE5vU3R5bGVDaGFuZ2Up
CisgICAgICAgIG1hcmtBbmNlc3RvcnNXaXRoQ2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAK
LXN0YXRpYyBOb2RlKiBvdXRlcm1vc3RMYXp5QXR0YWNoZWRBbmNlc3RvcihOb2RlKiBzdGFydCkK
K3ZvaWQgTm9kZTo6bGF6eUF0dGFjaChTaG91bGRTZXRBdHRhY2hlZCBzaG91bGRTZXRBdHRhY2hl
ZCkKIHsKLSAgICBOb2RlKiBwID0gc3RhcnQ7Ci0gICAgZm9yIChOb2RlKiBuZXh0ID0gcC0+cGFy
ZW50Tm9kZSgpOyAhbmV4dC0+cmVuZGVyZXIoKTsgcCA9IG5leHQsIG5leHQgPSBuZXh0LT5wYXJl
bnROb2RlKCkpIHt9Ci0gICAgcmV0dXJuIHA7Ci19Ci0KLXZvaWQgTm9kZTo6bGF6eUF0dGFjaCgp
Ci17Ci0gICAgYm9vbCBtdXN0RG9GdWxsQXR0YWNoID0gZmFsc2U7Ci0KICAgICBmb3IgKE5vZGUq
IG4gPSB0aGlzOyBuOyBuID0gbi0+dHJhdmVyc2VOZXh0Tm9kZSh0aGlzKSkgewotICAgICAgICBp
ZiAoIW4tPmNhbkxhenlBdHRhY2goKSkgewotICAgICAgICAgICAgbXVzdERvRnVsbEF0dGFjaCA9
IHRydWU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCiAgICAgICAgIGlmIChuLT5m
aXJzdENoaWxkKCkpCiAgICAgICAgICAgICBuLT5zZXRDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsK
ICAgICAgICAgbi0+c2V0U3R5bGVDaGFuZ2UoRnVsbFN0eWxlQ2hhbmdlKTsKLSAgICAgICAgbi0+
c2V0QXR0YWNoZWQoKTsKLSAgICB9Ci0KLSAgICBpZiAobXVzdERvRnVsbEF0dGFjaCkgewotICAg
ICAgICBOb2RlKiBsYXp5QXR0YWNoZWRBbmNlc3RvciA9IG91dGVybW9zdExhenlBdHRhY2hlZEFu
Y2VzdG9yKHRoaXMpOwotICAgICAgICBpZiAobGF6eUF0dGFjaGVkQW5jZXN0b3ItPmF0dGFjaGVk
KCkpCi0gICAgICAgICAgICBsYXp5QXR0YWNoZWRBbmNlc3Rvci0+ZGV0YWNoKCk7Ci0gICAgICAg
IGxhenlBdHRhY2hlZEFuY2VzdG9yLT5hdHRhY2goKTsKLSAgICB9IGVsc2UgewotICAgICAgICBm
b3IgKE5vZGUqIHAgPSBwYXJlbnROb2RlKCk7IHAgJiYgIXAtPmNoaWxkTmVlZHNTdHlsZVJlY2Fs
YygpOyBwID0gcC0+cGFyZW50Tm9kZSgpKQotICAgICAgICAgICAgcC0+c2V0Q2hpbGROZWVkc1N0
eWxlUmVjYWxjKCk7Ci0gICAgICAgIGlmIChkb2N1bWVudCgpLT5jaGlsZE5lZWRzU3R5bGVSZWNh
bGMoKSkKLSAgICAgICAgICAgIGRvY3VtZW50KCktPnNjaGVkdWxlU3R5bGVSZWNhbGMoKTsKKyAg
ICAgICAgaWYgKHNob3VsZFNldEF0dGFjaGVkID09IFNldEF0dGFjaGVkKQorICAgICAgICAgICAg
bi0+c2V0QXR0YWNoZWQoKTsKICAgICB9CisgICAgbWFya0FuY2VzdG9yc1dpdGhDaGlsZE5lZWRz
U3R5bGVSZWNhbGMoKTsKIH0KIAogdm9pZCBOb2RlOjpzZXRGb2N1cyhib29sIGIpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggMjU4Yzhm
ZDFlNmIzNzA1ZWM3MWJiZWM5MTlhYTcyZGNlMGU3MGRmMC4uNTg3ZWZmZDBmZTgyMjc0NzY5NTUw
NjQ0ZTkyZGVmNWE4MzkyOTQwYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBi
L1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMzEwLDggKzMxMCwxMSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRJc0xpbmsoKSB7IHNldEZsYWcoSXNMaW5rRmxhZyk7IH0KICAgICB2b2lkIGNsZWFySXNM
aW5rKCkgeyBjbGVhckZsYWcoSXNMaW5rRmxhZyk7IH0KIAotICAgIHZvaWQgbGF6eUF0dGFjaCgp
OwotICAgIHZpcnR1YWwgYm9vbCBjYW5MYXp5QXR0YWNoKCkgeyByZXR1cm4gdHJ1ZTsgfQorICAg
IGVudW0gU2hvdWxkU2V0QXR0YWNoZWQgeworICAgICAgICBTZXRBdHRhY2hlZCwKKyAgICAgICAg
RG9Ob3RTZXRBdHRhY2hlZAorICAgIH07CisgICAgdm9pZCBsYXp5QXR0YWNoKFNob3VsZFNldEF0
dGFjaGVkID0gU2V0QXR0YWNoZWQpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wg
YiA9IHRydWUpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCBmID0gdHJ1ZSwgYm9v
bCAvKnBhdXNlKi8gPSBmYWxzZSkgeyBzZXRGbGFnKGYsIElzQWN0aXZlRmxhZyk7IH0KQEAgLTY4
MSw2ICs2ODQsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRTdHlsZUNoYW5nZShTdHlsZUNo
YW5nZVR5cGUpOwogCisgICAgLy8gVXNlZCB0byBzaGFyZSBjb2RlIGJldHdlZW4gbGF6eUF0dGFj
aCBhbmQgc2V0TmVlZHNTdHlsZVJlY2FsYy4KKyAgICB2b2lkIG1hcmtBbmNlc3RvcnNXaXRoQ2hp
bGROZWVkc1N0eWxlUmVjYWxjKCk7CisKICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQo
KSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSB7IGRlcmVm
KCk7IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNw
cCBiL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAKaW5kZXggYjk2NzkyNjA5
YjUzMDI3OTBhNWUwZjgxZGVjZDUxNzEwZDBkMTM2Mi4uOGNjYTQ2NTYyNmY3YmQwNWM2NmQ3NGRl
OTg1ZGQyYTQ4ZDM3MmIwNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1l
bnRCYXNlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwCkBA
IC01Miw5ICs1Miw4IEBAIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpIVE1MRnJhbWVFbGVtZW50QmFz
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVuCiAgICAgLCBtX3Njcm9sbGlu
ZyhTY3JvbGxiYXJBdXRvKQogICAgICwgbV9tYXJnaW5XaWR0aCgtMSkKICAgICAsIG1fbWFyZ2lu
SGVpZ2h0KC0xKQotICAgICwgbV9jaGVja0F0dGFjaGVkVGltZXIodGhpcywgJkhUTUxGcmFtZUVs
ZW1lbnRCYXNlOjpjaGVja0F0dGFjaGVkVGltZXJGaXJlZCkKKyAgICAsIG1fY2hlY2tJbkRvY3Vt
ZW50VGltZXIodGhpcywgJkhUTUxGcmFtZUVsZW1lbnRCYXNlOjpjaGVja0luRG9jdW1lbnRUaW1l
ckZpcmVkKQogICAgICwgbV92aWV3U291cmNlKGZhbHNlKQotICAgICwgbV9zaG91bGRPcGVuVVJM
QWZ0ZXJBdHRhY2goZmFsc2UpCiAgICAgLCBtX3JlbWFpbnNBbGl2ZU9uUmVtb3ZhbEZyb21UcmVl
KGZhbHNlKQogewogfQpAQCAtMTgzLDMzICsxODIsMzEgQEAgdm9pZCBIVE1MRnJhbWVFbGVtZW50
QmFzZTo6dXBkYXRlT25SZXBhcmVudGluZygpCiB2b2lkIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpp
bnNlcnRlZEludG9Eb2N1bWVudCgpCiB7CiAgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50OjppbnNl
cnRlZEludG9Eb2N1bWVudCgpOwotICAgIAotICAgIC8vIFdlIGRlbGF5IGZyYW1lIGxvYWRpbmcg
dW50aWwgYWZ0ZXIgdGhlIHJlbmRlciB0cmVlIGlzIGZ1bGx5IGNvbnN0cnVjdGVkLgotICAgIC8v
IE90aGV3aXNlLCBhIHN5bmNocm9ub3VzIGxvYWQgdGhhdCBleGVjdXRlZCBKYXZhU2NyaXB0IHdv
dWxkIHNlZSBpbmNvcnJlY3QgCi0gICAgLy8gKDApIHZhbHVlcyBmb3IgdGhlIGZyYW1lJ3MgcmVu
ZGVyZXItZGVwZW5kZW50IHByb3BlcnRpZXMsIGxpa2Ugd2lkdGguCi0gICAgbV9zaG91bGRPcGVu
VVJMQWZ0ZXJBdHRhY2ggPSB0cnVlOwogCi0gICAgaWYgKG1fcmVtYWluc0FsaXZlT25SZW1vdmFs
RnJvbVRyZWUpCisgICAgaWYgKG1fcmVtYWluc0FsaXZlT25SZW1vdmFsRnJvbVRyZWUpIHsKICAg
ICAgICAgdXBkYXRlT25SZXBhcmVudGluZygpOwotfQotCi12b2lkIEhUTUxGcmFtZUVsZW1lbnRC
YXNlOjpyZW1vdmVkRnJvbURvY3VtZW50KCkKLXsKLSAgICBtX3Nob3VsZE9wZW5VUkxBZnRlckF0
dGFjaCA9IGZhbHNlOworICAgICAgICBzZXRSZW1haW5zQWxpdmVPblJlbW92YWxGcm9tVHJlZShm
YWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLy8gRG9jdW1lbnRGcmFnbWVudHMg
ZG9uJ3Qga2ljayBvZiBhbnkgbG9hZHMuCisgICAgaWYgKCFkb2N1bWVudCgpLT5mcmFtZSgpKQor
ICAgICAgICByZXR1cm47CiAKLSAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQ6OnJlbW92ZWRGcm9t
RG9jdW1lbnQoKTsKKyAgICAvLyBMb2FkcyBtYXkgY2F1c2Ugc3luY2hyb25vdXMgamF2YXNjcmlw
dCBleGVjdXRpb24gKGUuZy4gYmVmb3JlbG9hZCBvcgorICAgIC8vIHNyYz1qYXZhc2NyaXB0KSwg
d2hpY2ggY291bGQgdHJ5IHRvIGFjY2VzcyB0aGUgcmVuZGVyZXIgYmVmb3JlIHRoZSBub3JtYWwK
KyAgICAvLyBwYXJzZXIgbWFjaGluZXJ5IHdvdWxkIGNhbGwgbGF6eUF0dGFjaCgpIGFuZCBzZXQg
dXMgYXMgbmVlZGluZyBzdHlsZQorICAgIC8vIHJlc29sdmUuICBBbnkgY29kZSB3aGljaCBleHBl
Y3RzIHRoaXMgdG8gYmUgYXR0YWNoZWQgd2lsbCByZXNvbHZlIHN0eWxlCisgICAgLy8gYmVmb3Jl
IHVzaW5nIHJlbmRlcmVyKCksIHNvIHRoaXMgd2lsbCBtYWtlIHN1cmUgd2UgYXR0YWNoIGluIHRp
bWUuCisgICAgLy8gRklYTUU6IE5vcm1hbGx5IGxhenlBdHRhY2ggbWFya3MgdGhlIHJlbmRlcmVy
IGFzIGF0dGFjaGVkKCksIGJ1dCB3ZSBkb24ndAorICAgIC8vIHdhbnQgdG8gZG8gdGhhdCBoZXJl
LCBhcyBhcyBjYWxsZXJzIGV4cGVjdCB0byBjYWxsIGF0dGFjaCgpIHJpZ2h0IGFmdGVyCisgICAg
Ly8gdGhpcyBhbmQgYXR0YWNoKCkgd2lsbCBBU1NFUlQoIWF0dGFjaGVkKCkpCisgICAgQVNTRVJU
KCFyZW5kZXJlcigpKTsgLy8gVGhpcyByZWNhbGMgaXMgdW5lY2Vzc2FyeSBpZiB3ZSBhbHJlYWR5
IGhhdmUgYSByZW5kZXJlci4KKyAgICBsYXp5QXR0YWNoKERvTm90U2V0QXR0YWNoZWQpOworICAg
IHNldE5hbWVBbmRPcGVuVVJMKCk7CiB9CiAKIHZvaWQgSFRNTEZyYW1lRWxlbWVudEJhc2U6OmF0
dGFjaCgpCiB7Ci0gICAgaWYgKG1fc2hvdWxkT3BlblVSTEFmdGVyQXR0YWNoKSB7Ci0gICAgICAg
IG1fc2hvdWxkT3BlblVSTEFmdGVyQXR0YWNoID0gZmFsc2U7Ci0gICAgICAgIGlmICghbV9yZW1h
aW5zQWxpdmVPblJlbW92YWxGcm9tVHJlZSkKLSAgICAgICAgICAgIHF1ZXVlUG9zdEF0dGFjaENh
bGxiYWNrKCZIVE1MRnJhbWVFbGVtZW50QmFzZTo6c2V0TmFtZUFuZE9wZW5VUkxDYWxsYmFjaywg
dGhpcyk7Ci0gICAgfQotCi0gICAgc2V0UmVtYWluc0FsaXZlT25SZW1vdmFsRnJvbVRyZWUoZmFs
c2UpOwotCiAgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50OjphdHRhY2goKTsKIAogICAgIGlmIChS
ZW5kZXJQYXJ0KiBwYXJ0ID0gcmVuZGVyUGFydCgpKSB7CkBAIC0yNTgsMTkgKzI1NSwxNyBAQCBi
b29sIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjppc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUgKmF0dHIp
IGNvbnN0CiAKIGludCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6d2lkdGgoKSBjb25zdAogeworICAg
IGRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAg
IGlmICghcmVuZGVyQm94KCkpCiAgICAgICAgIHJldHVybiAwOwotCi0gICAgZG9jdW1lbnQoKS0+
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgcmV0dXJuIHJlbmRl
ckJveCgpLT53aWR0aCgpOwogfQogCiBpbnQgSFRNTEZyYW1lRWxlbWVudEJhc2U6OmhlaWdodCgp
IGNvbnN0CiB7CisgICAgZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxl
c2hlZXRzKCk7CiAgICAgaWYgKCFyZW5kZXJCb3goKSkKICAgICAgICAgcmV0dXJuIDA7Ci0KLSAg
ICBkb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAg
ICByZXR1cm4gcmVuZGVyQm94KCktPmhlaWdodCgpOwogfQogCkBAIC0yODEsMTIgKzI3NiwxMiBA
QCB2b2lkIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpzZXRSZW1haW5zQWxpdmVPblJlbW92YWxGcm9t
VHJlZShib29sIHZhbHVlKQogICAgIC8vIFRoZXJlIGlzIGEgcG9zc2liaWxpdHkgdGhhdCBKUyB3
aWxsIGRvIGRvY3VtZW50LmFkb3B0Tm9kZSgpIG9uIHRoaXMgZWxlbWVudCBidXQgd2lsbCBub3Qg
aW5zZXJ0IGl0IGludG8gdGhlIHRyZWUuCiAgICAgLy8gU3RhcnQgdGhlIGFzeW5jIHRpbWVyIHRo
YXQgaXMgbm9ybWFsbHkgc3RvcHBlZCBieSBhdHRhY2goKS4gSWYgaXQncyBub3Qgc3RvcHBlZCBh
bmQgZmlyZXMsIGl0J2xsIHVubG9hZCB0aGUgZnJhbWUuCiAgICAgaWYgKHZhbHVlKQotICAgICAg
ICBtX2NoZWNrQXR0YWNoZWRUaW1lci5zdGFydE9uZVNob3QoMCk7CisgICAgICAgIG1fY2hlY2tJ
bkRvY3VtZW50VGltZXIuc3RhcnRPbmVTaG90KDApOwogICAgIGVsc2UKLSAgICAgICAgbV9jaGVj
a0F0dGFjaGVkVGltZXIuc3RvcCgpOworICAgICAgICBtX2NoZWNrSW5Eb2N1bWVudFRpbWVyLnN0
b3AoKTsKIH0KIAotdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6Y2hlY2tBdHRhY2hlZFRpbWVy
RmlyZWQoVGltZXI8SFRNTEZyYW1lRWxlbWVudEJhc2U+KikKK3ZvaWQgSFRNTEZyYW1lRWxlbWVu
dEJhc2U6OmNoZWNrSW5Eb2N1bWVudFRpbWVyRmlyZWQoVGltZXI8SFRNTEZyYW1lRWxlbWVudEJh
c2U+KikKIHsKICAgICBBU1NFUlQoIWF0dGFjaGVkKCkpOwogICAgIEFTU0VSVChtX3JlbWFpbnNB
bGl2ZU9uUmVtb3ZhbEZyb21UcmVlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVFbGVtZW50QmFzZS5oIGIvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgKaW5k
ZXggMWI2ZTJhMzVhYjBjOTEwNDVlZmVmZTUyMGJlMzEwNmVkMTdiZmQ4OC4uYWU0MWU3NWMwYmZj
YjBhN2FmMzBiYmJiODU0OTM3MmJiYzc5MmQwZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hU
TUxGcmFtZUVsZW1lbnRCYXNlLmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRC
YXNlLmgKQEAgLTUwLDE1ICs1MCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBpc1VSTEFsbG93
ZWQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRy
aWJ1dGUqKTsKLQogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwotICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50KCk7Ci0KICAgICB2aXJ0dWFsIHZvaWQg
YXR0YWNoKCk7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGNhbkxhenlBdHRhY2goKSB7
IHJldHVybiBmYWxzZTsgfQotCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25z
dDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMoYm9vbCk7CiAgICAgCkBAIC02Nyw3ICs2Miw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldE5hbWUoKTsKIAogICAgIHZpcnR1YWwg
dm9pZCB3aWxsUmVtb3ZlKCk7Ci0gICAgdm9pZCBjaGVja0F0dGFjaGVkVGltZXJGaXJlZChUaW1l
cjxIVE1MRnJhbWVFbGVtZW50QmFzZT4qKTsKKyAgICB2b2lkIGNoZWNrSW5Eb2N1bWVudFRpbWVy
RmlyZWQoVGltZXI8SFRNTEZyYW1lRWxlbWVudEJhc2U+Kik7CiAgICAgdm9pZCB1cGRhdGVPblJl
cGFyZW50aW5nKCk7CiAKICAgICBib29sIHZpZXdTb3VyY2VNb2RlKCkgY29uc3QgeyByZXR1cm4g
bV92aWV3U291cmNlOyB9CkBAIC04NSwxMiArODAsMTkgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9t
YXJnaW5XaWR0aDsKICAgICBpbnQgbV9tYXJnaW5IZWlnaHQ7CiAKLSAgICBUaW1lcjxIVE1MRnJh
bWVFbGVtZW50QmFzZT4gbV9jaGVja0F0dGFjaGVkVGltZXI7CisgICAgLy8gVGhpcyBpcyBhIHBl
cmZvcm1hbmNlIG9wdGltaXphdGlvbiBzb21lIGNhbGwgIm1hZ2ljIGlmcmFtZSIgd2hpY2ggYXZv
aWRzCisgICAgLy8gdGVhcmluZyBkb3duIHRoZSBmcmFtZSBoaWVyYXJjaHkgd2hlbiBhIHdlYiBw
YWdlIGNhbGxzIGFkb3B0Tm9kZSBvbiBhCisgICAgLy8gZnJhbWUgb3duaW5nIGVsZW1lbnQgYnV0
IGRvZXMgbm90IGltbWVkaWF0ZWx5IGluc2VydCBpdCBpbnRvIHRoZSBuZXcKKyAgICAvLyBkb2N1
bWVudCBiZWZvcmUgSmF2YVNjcmlwdCB5aWVsZHMgdG8gV2ViQ29yZS4gIElmIHRoZSBlbGVtZW50
IGlzIG5vdCB5ZXQKKyAgICAvLyBpbiBhIGRvY3VtZW50IGJ5IHRoZSB0aW1lIHRoaXMgdGltZXIg
ZmlyZXMsIHRoZSBmcmFtZSBoaWVyYXJjaHkgdGVhcmRvd24KKyAgICAvLyB3aWxsIGNvbnRpbnVl
LiAgVGhpcyBjYW4gYWxzbyBiZSBzZWVuIGFzIGltcGxlbWVudGF0aW9uIG9mOgorICAgIC8vICJS
ZW1vdmluZyBhbiBpZnJhbWUgZnJvbSBhIERvY3VtZW50IGRvZXMgbm90IGNhdXNlIGl0cyBicm93
c2luZyBjb250ZXh0CisgICAgLy8gdG8gYmUgZGlzY2FyZGVkLiBJbmRlZWQsIGFuIGlmcmFtZSdz
IGJyb3dzaW5nIGNvbnRleHQgY2FuIHN1cnZpdmUgaXRzCisgICAgLy8gb3JpZ2luYWwgcGFyZW50
IERvY3VtZW50IGlmIGl0cyBpZnJhbWUgaXMgbW92ZWQgdG8gYW5vdGhlciBEb2N1bWVudC4iCisg
ICAgLy8gRnJvbSBIVE1MNTogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1
cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhlLWlmcmFtZS1lbGVtZW50Lmh0bWwjdGhlLWlmcmFtZS1l
bGVtZW50CisgICAgVGltZXI8SFRNTEZyYW1lRWxlbWVudEJhc2U+IG1fY2hlY2tJbkRvY3VtZW50
VGltZXI7CiAKICAgICBib29sIG1fdmlld1NvdXJjZTsKLQotICAgIGJvb2wgbV9zaG91bGRPcGVu
VVJMQWZ0ZXJBdHRhY2g7Ci0KICAgICBib29sIG1fcmVtYWluc0FsaXZlT25SZW1vdmFsRnJvbVRy
ZWU7CiB9OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50
LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVPd25lckVsZW1lbnQuY3BwCmluZGV4IDNmOTQ2
ZjBkM2U0NTA5MzUwYzQ1MjAxMjI4OWYwZTQ4MGNjNDQ0NzYuLmI0MDliY2M5OGNmNzExMGM0ZDI2
ZThmOWU2ZjFkNjZhYTA5ZjdiZDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVP
d25lckVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVPd25lckVsZW1lbnQu
Y3BwCkBAIC01MSw5ICs1MSwxMSBAQCBSZW5kZXJQYXJ0KiBIVE1MRnJhbWVPd25lckVsZW1lbnQ6
OnJlbmRlclBhcnQoKSBjb25zdAogCiB2b2lkIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6d2lsbFJl
bW92ZSgpCiB7CisgICAgLy8gRklYTUU6IEl0IGlzIHVuY2xlYXIgd2h5IHRoaXMgY2FuJ3QgYmUg
bW92ZWQgdG8gcmVtb3ZlZEZyb21Eb2N1bWVudCgpCisgICAgLy8gdGhpcyBpcyB0aGUgb25seSBp
bXBsZW1lbnRhdGlvbiBvZiB3aWxsUmVtb3ZlIGluIFdlYkNvcmUhCiAgICAgaWYgKEZyYW1lKiBm
cmFtZSA9IGNvbnRlbnRGcmFtZSgpKSB7Ci0gICAgICAgIGZyYW1lLT5kaXNjb25uZWN0T3duZXJF
bGVtZW50KCk7CiAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+ZnJhbWVEZXRhY2hlZCgpOworICAg
ICAgICBmcmFtZS0+ZGlzY29ubmVjdE93bmVyRWxlbWVudCgpOwogICAgIH0KIAogICAgIEhUTUxF
bGVtZW50Ojp3aWxsUmVtb3ZlKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkltYWdlRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaApp
bmRleCA2MGFkMGU2N2ZhZGNmMzYxNTMzNzA4NjFhY2NmNjc2ZjBhYjk2YWZlLi45NjE2ZmU4NTJh
YzAzMGJmNzFjYWY1NDliZmQ0YTRjZWU5ZWU4ZDFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1h
Z2VFbGVtZW50LmgKQEAgLTU5LDcgKzU5LDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgd291bGRM
b2FkQXNOZXRzY2FwZVBsdWdpbihjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZXJ2
aWNlVHlwZSk7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGNhbkxhenlBdHRhY2goKSB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CiAgICAgdmlydHVhbCB2b2lkIHJlY2FsY1N0
eWxlKFN0eWxlQ2hhbmdlKTsKICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTENvbnN0cnVjdGlvblNpdGUuY3BwIGIvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3Ry
dWN0aW9uU2l0ZS5jcHAKaW5kZXggMDE3MmIzZDE4YmQwMDI2OWMyNzk4MzcyZGMxNTM1NWUwYTBj
MTlhNS4uNjIxNWJiYWNkZmMzN2E3ZGE4NWFiYWFhNmMxY2Y2ZjI1MTkxMGI2ZiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKKysrIGIvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKQEAgLTExNCwxOSArMTE0
LDE5IEBAIFBhc3NSZWZQdHI8Q2hpbGRUeXBlPiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6YXR0YWNo
KENvbnRhaW5lck5vZGUqIHBhcmVudCwgUGFzc1JlCiAKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNp
dGU6OmF0dGFjaEF0U2l0ZShjb25zdCBBdHRhY2htZW50U2l0ZSYgc2l0ZSwgUGFzc1JlZlB0cjxO
b2RlPiBwcnBDaGlsZCkKIHsKKyAgICAvLyBGSVhNRTogSXQncyB1bmZvcnR1bmF0ZSB0aGF0IHdl
IG5lZWQgdG8gaG9sZCBhIHJlZmVyZW5jZSB0byBjaGlsZAorICAgIC8vIGhlcmUgdG8gY2FsbCBh
dHRhY2goKS4gIFdlIHNob3VsZCBpbnZlc3RpZ2F0ZSB3aGV0aGVyIHdlIGNhbiByZWx5IG9uCisg
ICAgLy8gfHNpdGUucGFyZW50fCB0byBob2xkIGEgcmVmIGF0IHRoaXMgcG9pbnQuCiAgICAgUmVm
UHRyPE5vZGU+IGNoaWxkID0gcHJwQ2hpbGQ7CiAKLSAgICBpZiAoc2l0ZS5uZXh0Q2hpbGQpIHsK
KyAgICBpZiAoc2l0ZS5uZXh0Q2hpbGQpCiAgICAgICAgIHNpdGUucGFyZW50LT5wYXJzZXJJbnNl
cnRCZWZvcmUoY2hpbGQsIHNpdGUubmV4dENoaWxkKTsKLSAgICAgICAgaWYgKHNpdGUucGFyZW50
LT5hdHRhY2hlZCgpICYmICFjaGlsZC0+YXR0YWNoZWQoKSkKLSAgICAgICAgICAgIGNoaWxkLT5h
dHRhY2goKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBzaXRlLnBhcmVudC0+cGFyc2Vy
QWRkQ2hpbGQoY2hpbGQpOwotICAgIC8vIEl0J3Mgc2xpZ2h0bHkgdW5mb3J0dW5hdGUgdGhhdCB3
ZSBuZWVkIHRvIGhvbGQgYSByZWZlcmVuY2UgdG8gY2hpbGQKLSAgICAvLyBoZXJlIHRvIGNhbGwg
YXR0YWNoKCkuICBXZSBzaG91bGQgaW52ZXN0aWdhdGUgd2hldGhlciB3ZSBjYW4gcmVseSBvbgot
ICAgIC8vIHxzaXRlLnBhcmVudHwgdG8gaG9sZCBhIHJlZiBhdCB0aGlzIHBvaW50LgotICAgIGlm
IChzaXRlLnBhcmVudC0+YXR0YWNoZWQoKSAmJiAhY2hpbGQtPmF0dGFjaGVkKCkpCisgICAgZWxz
ZQorICAgICAgICBzaXRlLnBhcmVudC0+cGFyc2VyQWRkQ2hpbGQoY2hpbGQpOworCisgICAgLy8g
SmF2YVNjcmlwdCBydW4gZnJvbSBiZWZvcmVsb2FkIChvciBET00gTXV0YXRpb24gb3IgZXZlbnQg
aGFuZGxlcnMpCisgICAgLy8gbWlnaHQgaGF2ZSByZW1vdmVkIHRoZSBjaGlsZCwgaW4gd2hpY2gg
Y2FzZSB3ZSBzaG91bGQgbm90IGF0dGFjaCBpdC4KKyAgICBpZiAoY2hpbGQtPnBhcmVudE5vZGUo
KSAmJiBzaXRlLnBhcmVudC0+YXR0YWNoZWQoKSAmJiAhY2hpbGQtPmF0dGFjaGVkKCkpCiAgICAg
ICAgIGNoaWxkLT5hdHRhY2goKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>