<?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>132698</bug_id>
          
          <creation_ts>2014-05-08 12:17:14 -0700</creation_ts>
          <short_desc>[MSE][Mac] Move AVStreamDataParser off-main-thread.</short_desc>
          <delta_ts>2014-05-08 17:22:02 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>132710</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>agomez</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1007714</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-05-08 12:17:14 -0700</bug_when>
    <thetext>[MSE][Mac] Move AVStreamDataParser off-main-thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007718</commentid>
    <comment_count>1</comment_count>
      <attachid>231089</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-05-08 12:25:07 -0700</bug_when>
    <thetext>Created attachment 231089
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007725</commentid>
    <comment_count>2</comment_count>
      <attachid>231089</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-05-08 12:38:46 -0700</bug_when>
    <thetext>Comment on attachment 231089
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:496
&gt; +    RefPtr&lt;SourceBufferPrivateAVFObjC&gt; strongThis(this);

Nit: why do you initialize this RefPtr with constructor syntax and the previous ones with assignment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007785</commentid>
    <comment_count>3</comment_count>
      <attachid>231103</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-05-08 15:15:38 -0700</bug_when>
    <thetext>Created attachment 231103
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007788</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-05-08 15:30:01 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 231089 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=231089&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:496
&gt; &gt; +    RefPtr&lt;SourceBufferPrivateAVFObjC&gt; strongThis(this);
&gt; 
&gt; Nit: why do you initialize this RefPtr with constructor syntax and the previous ones with assignment?

No good reason.  Fixed that, and updated the patch so as to not break GTK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007828</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-05-08 17:22:02 -0700</bug_when>
    <thetext>Committed r168508: &lt;http://trac.webkit.org/changeset/168508&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231089</attachid>
            <date>2014-05-08 12:25:07 -0700</date>
            <delta_ts>2014-05-08 12:38:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132698-20140508122445.patch</filename>
            <type>text/plain</type>
            <size>18547</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4MzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmY5ZTk4YzhkNmYwZDYy
OWIxYjU0YWIzMmZmYmVmYTQ1Y2ZhNTJlNy4uOTU1YTM1ZDU3Njg3ZjRmYmJiOTliZWIxMzBjMmE4
NGIyZmI4Y2I0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTA1LTA4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNU0VdW01hY10gTW92ZSBB
VlN0cmVhbURhdGFQYXJzZXIgb2ZmLW1haW4tdGhyZWFkLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLVtBVlN0cmVhbURhdGFQYXJzZXIgYXBwZW5kU3Ry
ZWFtRGF0YTpdIGNhbiBjYXN1ZSB0aGUgbWFpbiB0aHJlYWQgdG8gaGFuZyB3aGVuIGEKKyAgICAg
ICAgbGFyZ2UgYW1vdW50IG9mIG1lZGlhIGRhdGEgaXMgYXBwZW5kZWQgYXQgb25jZS4gTW92ZSB0
aGUgYWN0dWFsIHBhcnNpbmcgb2YgZGF0YQorICAgICAgICB0byBhIGJhY2tncm91bmQgKHN5bmNo
cm9ub3VzKSBkaXNwYXRjaCBxdWV1ZSwgYW5kIHNwbGl0IFNvdXJjZUJ1ZmZlcjo6YXBwZW5kQnVm
ZmVyVGltZXJGaXJlZAorICAgICAgICBpbnRvIHR3byBmdW5jdGlvbnMsIHRoZSBsYXR0ZXIgb2Yg
d2hpY2ggd2lsbCBiZSBjYWxsZWQgYWZ0ZXIgdGhlIGJhY2tncm91bmQgcXVldWUKKyAgICAgICAg
Y29tcGxldGVzLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXJUaW1lckZp
cmVkKTogU3BsaXQgaW50byBzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUuCisgICAg
ICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21w
bGV0ZSk6IFNwbGl0IGZyb20gYXBwZW5kQnVmZmVyVGltZXJGaXJlZC4KKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9T
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQy5tbToKKyAgICAgICAgKC1bV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3Ry
ZWFtRGF0YVBhcnNlcjpkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0Ol0pOiBSZS1kaXNwYXRjaCB0
byB0aGUKKyAgICAgICAgICAgICAgICB3ZWIgdGhyZWFkLgorICAgICAgICAoLVtXZWJBVlN0cmVh
bURhdGFQYXJzZXJMaXN0ZW5lciBzdHJlYW1EYXRhUGFyc2VyOmRpZFBhcnNlU3RyZWFtRGF0YUFz
QXNzZXQ6d2l0aERpc2NvbnRpbnVpdHk6XSk6IERpdHRvLgorICAgICAgICAoLVtXZWJBVlN0cmVh
bURhdGFQYXJzZXJMaXN0ZW5lciBzdHJlYW1EYXRhUGFyc2VyOmRpZEZhaWxUb1BhcnNlU3RyZWFt
RGF0YVdpdGhFcnJvcjpdKTogRGl0dG8uCisgICAgICAgICgtW1dlYkFWU3RyZWFtRGF0YVBhcnNl
ckxpc3RlbmVyIHN0cmVhbURhdGFQYXJzZXI6ZGlkUHJvdmlkZU1lZGlhRGF0YTpmb3JUcmFja0lE
Om1lZGlhVHlwZTpmbGFnczpdKTogRGl0dG8uCisgICAgICAgICgtW1dlYkFWU3RyZWFtRGF0YVBh
cnNlckxpc3RlbmVyIHN0cmVhbURhdGFQYXJzZXI6ZGlkUmVhY2hFbmRPZlRyYWNrV2l0aFRyYWNr
SUQ6bWVkaWFUeXBlOl0pOiBEaXR0by4KKyAgICAgICAgKC1bV2ViQVZTdHJlYW1EYXRhUGFyc2Vy
TGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0
aWFsaXphdGlvbkRhdGE6Zm9yVHJhY2tJRDpdKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpn
bG9iYWxEYXRhUGFyc2VyUXVldWUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjphcHBlbmQpOiBEaXNwYXRjaCB0byB0aGUgZ2xvYmFsRGF0YVBh
cnNlclF1ZXVlLgorICAgICAgICAqIHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJj
ZUJ1ZmZlclByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1NvdXJjZUJ1ZmZlclBy
aXZhdGU6OmFwcGVuZCk6IEFkb3B0IHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZS4K
KyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2
YXRlLmg6CisKIDIwMTQtMDUtMDYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW01hYywgaU9TXSBBZGQgc291cmNlIGFwcGxpY2F0aW9uIGFjY291bnRpbmcgdG8g
QVZVUkxBc3NldC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
U291cmNlQnVmZmVyLmNwcAppbmRleCA2NTBiMzgxZjQ0MjU2ZGFkMjMzZDA3OTUzZDkzMzcyODhj
NTAzOTQwLi5hMmE3N2I1NzIxM2ZlZDNlYmZlYWNjN2NmNWIwZmRhMmRlMjM3ZDc2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3Bw
CkBAIC00NzIsMzEgKzQ3MiwzNiBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6YXBwZW5kQnVmZmVyVGlt
ZXJGaXJlZChUaW1lcjxTb3VyY2VCdWZmZXI+JikKICAgICAvLyBodHRwczovL2R2Y3MudzMub3Jn
L2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvdGlwL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRt
bCNzb3VyY2VidWZmZXItc2VnbWVudC1wYXJzZXItbG9vcAogICAgIC8vIFdoZW4gdGhlIHNlZ21l
bnQgcGFyc2VyIGxvb3AgYWxnb3JpdGhtIGlzIGludm9rZWQsIHJ1biB0aGUgZm9sbG93aW5nIHN0
ZXBzOgogCi0gICAgU291cmNlQnVmZmVyUHJpdmF0ZTo6QXBwZW5kUmVzdWx0IHJlc3VsdCA9IFNv
dXJjZUJ1ZmZlclByaXZhdGU6OkFwcGVuZFN1Y2NlZWRlZDsKLSAgICBkbyB7Ci0gICAgICAgIC8v
IDEuIExvb3AgVG9wOiBJZiB0aGUgaW5wdXQgYnVmZmVyIGlzIGVtcHR5LCB0aGVuIGp1bXAgdG8g
dGhlIG5lZWQgbW9yZSBkYXRhIHN0ZXAgYmVsb3cuCi0gICAgICAgIGlmICghbV9wZW5kaW5nQXBw
ZW5kRGF0YS5zaXplKCkpCi0gICAgICAgICAgICBicmVhazsKKyAgICAvLyAxLiBMb29wIFRvcDog
SWYgdGhlIGlucHV0IGJ1ZmZlciBpcyBlbXB0eSwgdGhlbiBqdW1wIHRvIHRoZSBuZWVkIG1vcmUg
ZGF0YSBzdGVwIGJlbG93LgorICAgIGlmICghbV9wZW5kaW5nQXBwZW5kRGF0YS5zaXplKCkpIHsK
KyAgICAgICAgc291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKG1fcHJpdmF0ZS5nZXQo
KSwgQXBwZW5kU3VjY2VlZGVkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgICAgICBy
ZXN1bHQgPSBtX3ByaXZhdGUtPmFwcGVuZChtX3BlbmRpbmdBcHBlbmREYXRhLmRhdGEoKSwgYXBw
ZW5kU2l6ZSk7Ci0gICAgICAgIG1fcGVuZGluZ0FwcGVuZERhdGEuY2xlYXIoKTsKKyAgICBtX3By
aXZhdGUtPmFwcGVuZChtX3BlbmRpbmdBcHBlbmREYXRhLmRhdGEoKSwgYXBwZW5kU2l6ZSk7Cisg
ICAgbV9wZW5kaW5nQXBwZW5kRGF0YS5jbGVhcigpOworfQogCi0gICAgICAgIC8vIDIuIElmIHRo
ZSBpbnB1dCBidWZmZXIgY29udGFpbnMgYnl0ZXMgdGhhdCB2aW9sYXRlIHRoZSBTb3VyY2VCdWZm
ZXIgYnl0ZSBzdHJlYW0gZm9ybWF0IHNwZWNpZmljYXRpb24sCi0gICAgICAgIC8vIHRoZW4gcnVu
IHRoZSBlbmQgb2Ygc3RyZWFtIGFsZ29yaXRobSB3aXRoIHRoZSBlcnJvciBwYXJhbWV0ZXIgc2V0
IHRvICJkZWNvZGUiIGFuZCBhYm9ydCB0aGlzIGFsZ29yaXRobS4KLSAgICAgICAgaWYgKHJlc3Vs
dCA9PSBTb3VyY2VCdWZmZXJQcml2YXRlOjpQYXJzaW5nRmFpbGVkKSB7Ci0gICAgICAgICAgICBt
X3NvdXJjZS0+c3RyZWFtRW5kZWRXaXRoRXJyb3IoZGVjb2RlRXJyb3IoKSwgSWdub3JhYmxlRXhj
ZXB0aW9uQ29kZSgpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Cit2b2lkIFNvdXJj
ZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKFNvdXJjZUJ1ZmZlclBy
aXZhdGUqLCBBcHBlbmRSZXN1bHQgcmVzdWx0KQoreworICAgIC8vIFNlY3Rpb24gMy41LjUgQnVm
ZmVyIEFwcGVuZCBBbGdvcml0aG0sIGN0ZC4KKyAgICAvLyBodHRwczovL2R2Y3MudzMub3JnL2hn
L2h0bWwtbWVkaWEvcmF3LWZpbGUvZGVmYXVsdC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0
bWwjc291cmNlYnVmZmVyLWJ1ZmZlci1hcHBlbmQKKworICAgIC8vIDIuIElmIHRoZSBpbnB1dCBi
dWZmZXIgY29udGFpbnMgYnl0ZXMgdGhhdCB2aW9sYXRlIHRoZSBTb3VyY2VCdWZmZXIgYnl0ZSBz
dHJlYW0gZm9ybWF0IHNwZWNpZmljYXRpb24sCisgICAgLy8gdGhlbiBydW4gdGhlIGVuZCBvZiBz
dHJlYW0gYWxnb3JpdGhtIHdpdGggdGhlIGVycm9yIHBhcmFtZXRlciBzZXQgdG8gImRlY29kZSIg
YW5kIGFib3J0IHRoaXMgYWxnb3JpdGhtLgorICAgIGlmIChyZXN1bHQgPT0gUGFyc2luZ0ZhaWxl
ZCkgeworICAgICAgICBtX3NvdXJjZS0+c3RyZWFtRW5kZWRXaXRoRXJyb3IoZGVjb2RlRXJyb3Io
KSwgSWdub3JhYmxlRXhjZXB0aW9uQ29kZSgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAot
ICAgICAgICAvLyBOT1RFOiBTdGVwcyAzIC0gNiBlbmZvcmNlZCBieSBzb3VyY2VCdWZmZXJQcml2
YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudCgpIGFuZAotICAgICAgICAvLyBzb3Vy
Y2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZSBiZWxvdy4KKyAgICAvLyBOT1RFOiBTdGVw
cyAzIC0gNiBlbmZvcmNlZCBieSBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxp
emF0aW9uU2VnbWVudCgpIGFuZAorICAgIC8vIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZl
U2FtcGxlIGJlbG93LgogCi0gICAgICAgIC8vIDcuIE5lZWQgbW9yZSBkYXRhOiBSZXR1cm4gY29u
dHJvbCB0byB0aGUgY2FsbGluZyBhbGdvcml0aG0uCi0gICAgfSB3aGlsZSAoMCk7CisgICAgLy8g
Ny4gTmVlZCBtb3JlIGRhdGE6IFJldHVybiBjb250cm9sIHRvIHRoZSBjYWxsaW5nIGFsZ29yaXRo
bS4KIAogICAgIC8vIE5PVEU6IHJldHVybiB0byBTZWN0aW9uIDMuNS41CiAgICAgLy8gMi5JZiB0
aGUgc2VnbWVudCBwYXJzZXIgbG9vcCBhbGdvcml0aG0gaW4gdGhlIHByZXZpb3VzIHN0ZXAgd2Fz
IGFib3J0ZWQsIHRoZW4gYWJvcnQgdGhpcyBhbGdvcml0aG0uCi0gICAgaWYgKHJlc3VsdCAhPSBT
b3VyY2VCdWZmZXJQcml2YXRlOjpBcHBlbmRTdWNjZWVkZWQpCisgICAgaWYgKHJlc3VsdCAhPSBB
cHBlbmRTdWNjZWVkZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIDMuIFNldCB0aGUgdXBk
YXRpbmcgYXR0cmlidXRlIHRvIGZhbHNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKaW5kZXggNTdiMTNlZWNhYjhiOWYxNGI4Y2E3Y2Uz
MmVjODBmNGZlM2ZkNjMyOC4uOTlmMmQzMTZmNTIzY2VkMmYwMGUzNzE4ZTVhNWZiNTYxN2Q0ZjM1
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VC
dWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1
ZmZlci5oCkBAIC0xMTgsNyArMTE4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc291
cmNlQnVmZmVyUHJpdmF0ZURpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoU291cmNlQnVmZmVy
UHJpdmF0ZSosIEF0b21pY1N0cmluZyB0cmFja0lEKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgc291cmNlQnVmZmVyUHJpdmF0ZVNlZWtUb1RpbWUoU291cmNlQnVmZmVyUHJpdmF0ZSosIGNv
bnN0IE1lZGlhVGltZSYpOwogICAgIHZpcnR1YWwgTWVkaWFUaW1lIHNvdXJjZUJ1ZmZlclByaXZh
dGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoU291cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IE1l
ZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYgbmVnYXRpdmVUaHJlc2hvbGQsIGNvbnN0IE1lZGlh
VGltZSYgcG9zaXRpdmVUaHJlc2hvbGQpOwotCisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZl
clByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgQXBwZW5kUmVzdWx0
KSBvdmVycmlkZTsKIAogICAgIC8vIEF1ZGlvVHJhY2tDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQg
YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2sqKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUu
aAppbmRleCBjNDA1Yjk2NDVmOWQ0YzM3ZDA3ZmVjZGZiMGU5MWFiOTk1ODQ1ODM5Li5kZGNmNjA1
OWU3YmNlZjcxYTk0ZjI4YzhmZTJjYjhkNzYxMTFjZDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oCkBAIC00OSwx
MiArNDksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1
ZmZlclByaXZhdGVDbGllbnQqKSA9IDA7CiAKLSAgICBlbnVtIEFwcGVuZFJlc3VsdCB7Ci0gICAg
ICAgIEFwcGVuZFN1Y2NlZWRlZCwKLSAgICAgICAgUmVhZFN0cmVhbUZhaWxlZCwKLSAgICAgICAg
UGFyc2luZ0ZhaWxlZCwKLSAgICB9OwotICAgIHZpcnR1YWwgQXBwZW5kUmVzdWx0IGFwcGVuZChj
b25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgYXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0
aCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhYm9ydCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oCmlu
ZGV4IGQ4M2M2MGEwNTNiZmFjZjI4ODIyYTM4ZTI0Y2MyOWI1OWJiYzI2YTguLjg3YWIwZjAzMjQw
MDRjOTAwYTc2NTcxYTFmNzI5ZTMyNzhmNjYxNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmgK
QEAgLTc3LDYgKzc3LDEzIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgTWVkaWFUaW1lIHNvdXJj
ZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoU291cmNlQnVmZmVyUHJpdmF0
ZSosIGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFU
aW1lJikgeyByZXR1cm4gdGltZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2
YXRlU2Vla1RvVGltZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJikgeyB9
OworCisgICAgZW51bSBBcHBlbmRSZXN1bHQgeworICAgICAgICBBcHBlbmRTdWNjZWVkZWQsCisg
ICAgICAgIFJlYWRTdHJlYW1GYWlsZWQsCisgICAgICAgIFBhcnNpbmdGYWlsZWQsCisgICAgfTsK
KyAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKFNvdXJj
ZUJ1ZmZlclByaXZhdGUqLCBBcHBlbmRSZXN1bHQpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCmluZGV4IDYx
ZTBmYmMxNThiNGMyNzQ4NmUwODhkODMxNGVkYzRjMDRmMzYxZDMuLjAyZDQ2YjE1YjhjMzE0Zjcy
N2Q2MDQ0NmNiOGU1ZjFjMjc5M2M4ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaApAQCAtOTEsNyArOTEsNyBAQCBwcml2YXRl
OgogCiAgICAgLy8gU291cmNlQnVmZmVyUHJpdmF0ZSBvdmVycmlkZXMKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQqKSBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIEFwcGVuZFJlc3VsdCBhcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5z
aWduZWQgbGVuZ3RoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kKGNvbnN0IHVu
c2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIGFib3J0KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tTWVk
aWFTb3VyY2UoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRl
IHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KaW5kZXggOTY2Y2JjZTNjOWM5MjQ1
NDU4YWVmMjQzYzVlMjI1NGNmZDFiNzM4Mi4uNmRiNzRkZDIyODhmY2ZjYTAwOWMzZWUzMmM3NDQ1
MjBmYzczMDdlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTE4NSw3ICsxODUsMTEgQEAgU09GVF9MSU5LKENvcmVN
ZWRpYSwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucywg
Q0dTaXplLAogICAgIFVOVVNFRF9QQVJBTShzdHJlYW1EYXRhUGFyc2VyKTsKICNlbmRpZgogICAg
IEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwotICAgIF9wYXJlbnQtPmRpZFBh
cnNlU3RyZWFtRGF0YUFzQXNzZXQoYXNzZXQpOworICAgIFJlZlB0cjxXZWJDb3JlOjpTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQz4gc3Ryb25nUGFyZW50ID0gX3BhcmVudDsKKyAgICBSZXRhaW5Q
dHI8QVZBc3NldCo+IHN0cm9uZ0Fzc2V0ID0gYXNzZXQ7CisgICAgY2FsbE9uTWFpblRocmVhZChb
c3Ryb25nUGFyZW50LCBzdHJvbmdBc3NldF0geworICAgICAgICBzdHJvbmdQYXJlbnQtPmRpZFBh
cnNlU3RyZWFtRGF0YUFzQXNzZXQoc3Ryb25nQXNzZXQuZ2V0KCkpOworICAgIH0pOwogfQogCiAt
ICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQ
YXJzZXIgZGlkUGFyc2VTdHJlYW1EYXRhQXNBc3NldDooQVZBc3NldCAqKWFzc2V0IHdpdGhEaXNj
b250aW51aXR5OihCT09MKWRpc2NvbnRpbnVpdHkKQEAgLTE5NSw3ICsxOTksMTEgQEAgU09GVF9M
SU5LKENvcmVNZWRpYSwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGlt
ZW5zaW9ucywgQ0dTaXplLAogICAgIFVOVVNFRF9QQVJBTShzdHJlYW1EYXRhUGFyc2VyKTsKICNl
bmRpZgogICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwotICAgIF9wYXJl
bnQtPmRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQoYXNzZXQpOworICAgIFJlZlB0cjxXZWJDb3Jl
OjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4gc3Ryb25nUGFyZW50ID0gX3BhcmVudDsKKyAg
ICBSZXRhaW5QdHI8QVZBc3NldCo+IHN0cm9uZ0Fzc2V0ID0gYXNzZXQ7CisgICAgY2FsbE9uTWFp
blRocmVhZChbc3Ryb25nUGFyZW50LCBzdHJvbmdBc3NldF0geworICAgICAgICBzdHJvbmdQYXJl
bnQtPmRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQoc3Ryb25nQXNzZXQuZ2V0KCkpOworICAgIH0p
OwogfQogCiAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0
cmVhbURhdGFQYXJzZXIgZGlkRmFpbFRvUGFyc2VTdHJlYW1EYXRhV2l0aEVycm9yOihOU0Vycm9y
ICopZXJyb3IKQEAgLTIwNCwyNSArMjEyLDM4IEBAIFNPRlRfTElOSyhDb3JlTWVkaWEsIENNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMsIENHU2l6ZSwKICAg
ICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7CiAjZW5kaWYKICAgICBBU1NFUlQoc3Ry
ZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKLSAgICBfcGFyZW50LT5kaWRGYWlsVG9QYXJzZVN0
cmVhbURhdGFXaXRoRXJyb3IoZXJyb3IpOworICAgIFJlZlB0cjxXZWJDb3JlOjpTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQz4gc3Ryb25nUGFyZW50ID0gX3BhcmVudDsKKyAgICBSZXRhaW5QdHI8
TlNFcnJvcj4gc3Ryb25nRXJyb3IgPSBlcnJvcjsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtzdHJv
bmdQYXJlbnQsIHN0cm9uZ0Vycm9yXSB7CisgICAgICAgIHN0cm9uZ1BhcmVudC0+ZGlkRmFpbFRv
UGFyc2VTdHJlYW1EYXRhV2l0aEVycm9yKHN0cm9uZ0Vycm9yLmdldCgpKTsKKyAgICB9KTsKIH0K
IAotLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1E
YXRhUGFyc2VyIGRpZFByb3ZpZGVNZWRpYURhdGE6KENNU2FtcGxlQnVmZmVyUmVmKW1lZGlhRGF0
YSBmb3JUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQgbWVkaWFUeXBlOihOU1N0
cmluZyAqKW1lZGlhVHlwZSBmbGFnczooTlNVSW50ZWdlcilmbGFncworLSAodm9pZClzdHJlYW1E
YXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZFByb3Zp
ZGVNZWRpYURhdGE6KENNU2FtcGxlQnVmZmVyUmVmKXNhbXBsZSBmb3JUcmFja0lEOihDTVBlcnNp
c3RlbnRUcmFja0lEKXRyYWNrSUQgbWVkaWFUeXBlOihOU1N0cmluZyAqKW5zTWVkaWFUeXBlIGZs
YWdzOihOU1VJbnRlZ2VyKWZsYWdzCiB7CiAjaWYgQVNTRVJUX0RJU0FCTEVECiAgICAgVU5VU0VE
X1BBUkFNKHN0cmVhbURhdGFQYXJzZXIpOwogI2VuZGlmCiAgICAgQVNTRVJUKHN0cmVhbURhdGFQ
YXJzZXIgPT0gX3BhcnNlcik7Ci0gICAgX3BhcmVudC0+ZGlkUHJvdmlkZU1lZGlhRGF0YUZvclRy
YWNrSUQodHJhY2tJRCwgbWVkaWFEYXRhLCBtZWRpYVR5cGUsIGZsYWdzKTsKKyAgICBSZWZQdHI8
V2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IHN0cm9uZ1BhcmVudCA9IF9wYXJl
bnQ7CisgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBzdHJvbmdTYW1wbGUgPSBzYW1w
bGU7CisgICAgU3RyaW5nIG1lZGlhVHlwZSA9IG5zTWVkaWFUeXBlOworICAgIGNhbGxPbk1haW5U
aHJlYWQoW3N0cm9uZ1BhcmVudCwgc3Ryb25nU2FtcGxlLCB0cmFja0lELCBtZWRpYVR5cGUsIGZs
YWdzXSB7CisgICAgICAgIHN0cm9uZ1BhcmVudC0+ZGlkUHJvdmlkZU1lZGlhRGF0YUZvclRyYWNr
SUQodHJhY2tJRCwgc3Ryb25nU2FtcGxlLmdldCgpLCBtZWRpYVR5cGUsIGZsYWdzKTsKKyAgICB9
KTsKIH0KIAotLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilz
dHJlYW1EYXRhUGFyc2VyIGRpZFJlYWNoRW5kT2ZUcmFja1dpdGhUcmFja0lEOihDTVBlcnNpc3Rl
bnRUcmFja0lEKXRyYWNrSUQgbWVkaWFUeXBlOihOU1N0cmluZyAqKW1lZGlhVHlwZQorLSAodm9p
ZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2Vy
IGRpZFJlYWNoRW5kT2ZUcmFja1dpdGhUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNr
SUQgbWVkaWFUeXBlOihOU1N0cmluZyAqKW5zTWVkaWFUeXBlCiB7CiAjaWYgQVNTRVJUX0RJU0FC
TEVECiAgICAgVU5VU0VEX1BBUkFNKHN0cmVhbURhdGFQYXJzZXIpOwogI2VuZGlmCiAgICAgQVNT
RVJUKHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7Ci0gICAgX3BhcmVudC0+ZGlkUmVhY2hF
bmRPZlRyYWNrV2l0aFRyYWNrSUQodHJhY2tJRCwgbWVkaWFUeXBlKTsKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IHN0cm9uZ1BhcmVudCA9IF9wYXJlbnQ7
CisgICAgU3RyaW5nIG1lZGlhVHlwZSA9IG5zTWVkaWFUeXBlOworICAgIGNhbGxPbk1haW5UaHJl
YWQoW3N0cm9uZ1BhcmVudCwgdHJhY2tJRCwgbWVkaWFUeXBlXSB7CisgICAgICAgIHN0cm9uZ1Bh
cmVudC0+ZGlkUmVhY2hFbmRPZlRyYWNrV2l0aFRyYWNrSUQodHJhY2tJRCwgbWVkaWFUeXBlKTsK
KyAgICB9KTsKIH0KIAogLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJz
ZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxp
emF0aW9uRGF0YTooTlNEYXRhICopaW5pdERhdGEgZm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJh
Y2tJRCl0cmFja0lECkBAIC0yMzEsNyArMjUyLDExIEBAIFNPRlRfTElOSyhDb3JlTWVkaWEsIENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMsIENHU2l6ZSwK
ICAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7CiAjZW5kaWYKICAgICBBU1NFUlQo
c3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKLSAgICBfcGFyZW50LT5kaWRQcm92aWRlQ29u
dGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKGluaXREYXRhLCB0cmFj
a0lEKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IHN0
cm9uZ1BhcmVudCA9IF9wYXJlbnQ7CisgICAgUmV0YWluUHRyPE5TRGF0YT4gc3Ryb25nRGF0YSA9
IGluaXREYXRhOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3N0cm9uZ1BhcmVudCwgc3Ryb25nRGF0
YSwgdHJhY2tJRF0geworICAgICAgICBzdHJvbmdQYXJlbnQtPmRpZFByb3ZpZGVDb250ZW50S2V5
UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQoc3Ryb25nRGF0YS5nZXQoKSwgdHJh
Y2tJRCk7CisgICAgfSk7CiB9CiBAZW5kCiAKQEAgLTQ1MywxNyArNDc4LDM3IEBAIHZvaWQgU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNldENsaWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xp
ZW50KiBjbGllbnQpCiAgICAgbV9jbGllbnQgPSBjbGllbnQ7CiB9CiAKLVNvdXJjZUJ1ZmZlclBy
aXZhdGU6OkFwcGVuZFJlc3VsdCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YXBwZW5kKGNv
bnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKK3N0YXRpYyBkaXNwYXRj
aF9xdWV1ZV90IGdsb2JhbERhdGFQYXJzZXJRdWV1ZSgpCiB7Ci0gICAgbV9wYXJzaW5nU3VjY2Vl
ZGVkID0gdHJ1ZTsKKyAgICBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBnbG9iYWxRdWV1ZTsKKyAg
ICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAgICBkaXNwYXRjaF9vbmNlKCZv
bmNlVG9rZW4sIF57CisgICAgICAgIGdsb2JhbFF1ZXVlID0gZGlzcGF0Y2hfcXVldWVfY3JlYXRl
KCJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyBkYXRhIHBhcnNlciBxdWV1ZSIsIERJU1BBVENI
X1FVRVVFX1NFUklBTCk7CisgICAgfSk7CisgICAgcmV0dXJuIGdsb2JhbFF1ZXVlOworfQogCit2
b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphcHBlbmQoY29uc3QgdW5zaWduZWQgY2hh
ciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQorewogICAgIExPRyhNZWRpYSwgIlNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjphcHBlbmQoJXApIC0gZGF0YTolcCwgbGVuZ3RoOiVkIiwgdGhpcywg
ZGF0YSwgbGVuZ3RoKTsKLSAgICBbbV9wYXJzZXIgYXBwZW5kU3RyZWFtRGF0YTpbTlNEYXRhIGRh
dGFXaXRoQnl0ZXM6ZGF0YSBsZW5ndGg6bGVuZ3RoXV07CiAKLSAgICBpZiAobV9wYXJzaW5nU3Vj
Y2VlZGVkICYmIG1fbWVkaWFTb3VyY2UpCi0gICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigp
LT5zZXRMb2FkaW5nUHJvZ3Jlc3NzZWQodHJ1ZSk7CisgICAgUmV0YWluUHRyPE5TRGF0YT4gbnNE
YXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczpkYXRhIGxlbmd0aDps
ZW5ndGhdKTsKKyAgICBSZWZQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IHN0cm9uZ1Ro
aXModGhpcyk7CisKKyAgICBkaXNwYXRjaF9hc3luYyhnbG9iYWxEYXRhUGFyc2VyUXVldWUoKSwg
W25zRGF0YSwgc3Ryb25nVGhpc10geworICAgICAgICBzdHJvbmdUaGlzLT5tX3BhcnNpbmdTdWNj
ZWVkZWQgPSB0cnVlOworCisgICAgICAgIFtzdHJvbmdUaGlzLT5tX3BhcnNlciBhcHBlbmRTdHJl
YW1EYXRhOm5zRGF0YS5nZXQoKV07CisKKyAgICAgICAgaWYgKHN0cm9uZ1RoaXMtPm1fcGFyc2lu
Z1N1Y2NlZWRlZCAmJiBzdHJvbmdUaGlzLT5tX21lZGlhU291cmNlKQorICAgICAgICAgICAgc3Ry
b25nVGhpcy0+bV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldExvYWRpbmdQcm9ncmVzc3NlZCh0
cnVlKTsKKworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtzdHJvbmdUaGlzXSB7CisgICAgICAg
ICAgICBpZiAoc3Ryb25nVGhpcy0+bV9jbGllbnQpCisgICAgICAgICAgICAgICAgc3Ryb25nVGhp
cy0+bV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShzdHJvbmdUaGlz
LmdldCgpLCBzdHJvbmdUaGlzLT5tX3BhcnNpbmdTdWNjZWVkZWQgPyBTb3VyY2VCdWZmZXJQcml2
YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQgOiBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpQ
YXJzaW5nRmFpbGVkKTsKKyAgICAgICAgfSk7CiAKLSAgICByZXR1cm4gbV9wYXJzaW5nU3VjY2Vl
ZGVkID8gQXBwZW5kU3VjY2VlZGVkIDogUGFyc2luZ0ZhaWxlZDsKKyAgICB9KTsKIH0KIAogdm9p
ZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YWJvcnQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3Vy
Y2VCdWZmZXJQcml2YXRlLmNwcAppbmRleCA5ZjkyYWNjMzQwYzU3OGZlYzQwOGM2ZWZhYzcyOWU1
MjUxMTA2ZjE5Li4zMTcwMmFmNDJiMTAzZWQzYzcxZDllZDZhZDBkNzhkY2MzMDBhYjNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3Vy
Y2VCdWZmZXJQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21l
ZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcApAQCAtMTE0LDEyICsxMTQsMTIg
QEAgdm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6c2V0Q2xpZW50KFNvdXJjZUJ1ZmZlclBy
aXZhdGVDbGllbnQqIGNsaWVudCkKICAgICBtX2NsaWVudCA9IGNsaWVudDsKIH0KIAotU291cmNl
QnVmZmVyUHJpdmF0ZTo6QXBwZW5kUmVzdWx0IE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjphcHBl
bmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQordm9pZCBNb2Nr
U291cmNlQnVmZmVyUHJpdmF0ZTo6YXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVu
c2lnbmVkIGxlbmd0aCkKIHsKICAgICBtX2lucHV0QnVmZmVyLmFwcGVuZChkYXRhLCBsZW5ndGgp
OwotICAgIEFwcGVuZFJlc3VsdCByZXN1bHQgPSBBcHBlbmRTdWNjZWVkZWQ7CisgICAgU291cmNl
QnVmZmVyUHJpdmF0ZUNsaWVudDo6QXBwZW5kUmVzdWx0IHJlc3VsdCA9IFNvdXJjZUJ1ZmZlclBy
aXZhdGVDbGllbnQ6OkFwcGVuZFN1Y2NlZWRlZDsKIAotICAgIHdoaWxlIChtX2lucHV0QnVmZmVy
LnNpemUoKSAmJiByZXN1bHQgPT0gQXBwZW5kU3VjY2VlZGVkKSB7CisgICAgd2hpbGUgKG1faW5w
dXRCdWZmZXIuc2l6ZSgpICYmIHJlc3VsdCA9PSBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpB
cHBlbmRTdWNjZWVkZWQpIHsKICAgICAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIgPSBB
cnJheUJ1ZmZlcjo6Y3JlYXRlKG1faW5wdXRCdWZmZXIuZGF0YSgpLCBtX2lucHV0QnVmZmVyLnNp
emUoKSk7CiAgICAgICAgIHNpemVfdCBib3hMZW5ndGggPSBNb2NrQm94OjpwZWVrTGVuZ3RoKGJ1
ZmZlci5nZXQoKSk7CiAgICAgICAgIGlmIChib3hMZW5ndGggPiBidWZmZXItPmJ5dGVMZW5ndGgo
KSkKQEAgLTEzMywxMiArMTMzLDEzIEBAIFNvdXJjZUJ1ZmZlclByaXZhdGU6OkFwcGVuZFJlc3Vs
dCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6YXBwZW5kKGNvbnN0IHVuc2lnbmVkCiAgICAgICAg
ICAgICBNb2NrU2FtcGxlQm94IHNhbXBsZUJveCA9IE1vY2tTYW1wbGVCb3goYnVmZmVyLmdldCgp
KTsKICAgICAgICAgICAgIGRpZFJlY2VpdmVTYW1wbGUoc2FtcGxlQm94KTsKICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICByZXN1bHQgPSBQYXJzaW5nRmFpbGVkOworICAgICAgICAgICAgcmVz
dWx0ID0gU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6UGFyc2luZ0ZhaWxlZDsKIAogICAgICAg
ICBtX2lucHV0QnVmZmVyLnJlbW92ZSgwLCBib3hMZW5ndGgpOwogICAgIH0KIAotICAgIHJldHVy
biByZXN1bHQ7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+c291cmNlQnVm
ZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKHRoaXMsIHJlc3VsdCk7CiB9CiAKIHZvaWQgTW9ja1Nv
dXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3Qg
TW9ja0luaXRpYWxpemF0aW9uQm94JiBpbml0Qm94KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVy
UHJpdmF0ZS5oCmluZGV4IGMyZTFiZWMyYzg4OWY1YjMxN2RmMzgxNDcxNTFmOTNjZmY0Yjk2YTQu
LjBiYTg0ZmM3OTljMmI4M2ZkYzAxMTRlMmJkZTRlZjk5MzIxOWU0ZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tTb3VyY2VCdWZmZXJQcml2YXRlLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHJpdmF0ZToKIAogICAg
IC8vIFNvdXJjZUJ1ZmZlclByaXZhdGUgb3ZlcnJpZGVzCiAgICAgdmlydHVhbCB2b2lkIHNldENs
aWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Kikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBB
cHBlbmRSZXN1bHQgYXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxl
bmd0aCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFwcGVuZChjb25zdCB1bnNpZ25lZCBj
aGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBh
Ym9ydCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291cmNl
KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0
YXRlKCkgY29uc3Qgb3ZlcnJpZGU7Cg==
</data>
<flag name="review"
          id="255510"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231103</attachid>
            <date>2014-05-08 15:15:38 -0700</date>
            <delta_ts>2014-05-08 15:15:38 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-132698-20140508151515.patch</filename>
            <type>text/plain</type>
            <size>20957</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4MzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmY5ZTk4YzhkNmYwZDYy
OWIxYjU0YWIzMmZmYmVmYTQ1Y2ZhNTJlNy4uNDc2NTIxYzk3OWQ0NjA4ZGFlZTUyODExMjE3ZmI5
YWE0ZDI4ZmVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE0LTA1LTA4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNU0VdW01hY10gTW92ZSBB
VlN0cmVhbURhdGFQYXJzZXIgb2ZmLW1haW4tdGhyZWFkLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLVtBVlN0cmVhbURhdGFQYXJzZXIgYXBwZW5kU3Ry
ZWFtRGF0YTpdIGNhbiBjYXN1ZSB0aGUgbWFpbiB0aHJlYWQgdG8gaGFuZyB3aGVuIGEKKyAgICAg
ICAgbGFyZ2UgYW1vdW50IG9mIG1lZGlhIGRhdGEgaXMgYXBwZW5kZWQgYXQgb25jZS4gTW92ZSB0
aGUgYWN0dWFsIHBhcnNpbmcgb2YgZGF0YQorICAgICAgICB0byBhIGJhY2tncm91bmQgKHN5bmNo
cm9ub3VzKSBkaXNwYXRjaCBxdWV1ZSwgYW5kIHNwbGl0IFNvdXJjZUJ1ZmZlcjo6YXBwZW5kQnVm
ZmVyVGltZXJGaXJlZAorICAgICAgICBpbnRvIHR3byBmdW5jdGlvbnMsIHRoZSBsYXR0ZXIgb2Yg
d2hpY2ggd2lsbCBiZSBjYWxsZWQgYWZ0ZXIgdGhlIGJhY2tncm91bmQgcXVldWUKKyAgICAgICAg
Y29tcGxldGVzLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXJUaW1lckZp
cmVkKTogU3BsaXQgaW50byBzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUuCisgICAg
ICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21w
bGV0ZSk6IFNwbGl0IGZyb20gYXBwZW5kQnVmZmVyVGltZXJGaXJlZC4KKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9T
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQy5tbToKKyAgICAgICAgKC1bV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3Ry
ZWFtRGF0YVBhcnNlcjpkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0Ol0pOiBSZS1kaXNwYXRjaCB0
byB0aGUKKyAgICAgICAgICAgICAgICB3ZWIgdGhyZWFkLgorICAgICAgICAoLVtXZWJBVlN0cmVh
bURhdGFQYXJzZXJMaXN0ZW5lciBzdHJlYW1EYXRhUGFyc2VyOmRpZFBhcnNlU3RyZWFtRGF0YUFz
QXNzZXQ6d2l0aERpc2NvbnRpbnVpdHk6XSk6IERpdHRvLgorICAgICAgICAoLVtXZWJBVlN0cmVh
bURhdGFQYXJzZXJMaXN0ZW5lciBzdHJlYW1EYXRhUGFyc2VyOmRpZEZhaWxUb1BhcnNlU3RyZWFt
RGF0YVdpdGhFcnJvcjpdKTogRGl0dG8uCisgICAgICAgICgtW1dlYkFWU3RyZWFtRGF0YVBhcnNl
ckxpc3RlbmVyIHN0cmVhbURhdGFQYXJzZXI6ZGlkUHJvdmlkZU1lZGlhRGF0YTpmb3JUcmFja0lE
Om1lZGlhVHlwZTpmbGFnczpdKTogRGl0dG8uCisgICAgICAgICgtW1dlYkFWU3RyZWFtRGF0YVBh
cnNlckxpc3RlbmVyIHN0cmVhbURhdGFQYXJzZXI6ZGlkUmVhY2hFbmRPZlRyYWNrV2l0aFRyYWNr
SUQ6bWVkaWFUeXBlOl0pOiBEaXR0by4KKyAgICAgICAgKC1bV2ViQVZTdHJlYW1EYXRhUGFyc2Vy
TGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0
aWFsaXphdGlvbkRhdGE6Zm9yVHJhY2tJRDpdKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpn
bG9iYWxEYXRhUGFyc2VyUXVldWUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjphcHBlbmQpOiBEaXNwYXRjaCB0byB0aGUgZ2xvYmFsRGF0YVBh
cnNlclF1ZXVlLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
OmFwcGVuZENvbXBsZXRlZCk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21vY2svbWVkaWFz
b3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9j
a1NvdXJjZUJ1ZmZlclByaXZhdGU6OmFwcGVuZCk6IEFkb3B0IHNvdXJjZUJ1ZmZlclByaXZhdGVB
cHBlbmRDb21wbGV0ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tT
b3VyY2VCdWZmZXJQcml2YXRlLmg6CisKKyAgICAgICAgVXBkYXRlIFNvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXIgdG8gbWF0Y2ggdGhlIG5ldyBhcHBlbmQgcmV0dXJuIHZhbHVlOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVh
bWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6
OmFwcGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1NvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXIuaDoKKwogMjAxNC0wNS0wNiAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjLCBpT1NdIEFkZCBzb3VyY2UgYXBwbGljYXRp
b24gYWNjb3VudGluZyB0byBBVlVSTEFzc2V0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IDY1MGIzODFmNDQyNTZkYWQy
MzNkMDc5NTNkOTMzNzI4OGM1MDM5NDAuLmEyYTc3YjU3MjEzZmVkM2ViZmVhY2M3Y2Y1YjBmZGEy
ZGUyMzdkNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
U291cmNlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L1NvdXJjZUJ1ZmZlci5jcHAKQEAgLTQ3MiwzMSArNDcyLDM2IEBAIHZvaWQgU291cmNlQnVmZmVy
OjphcHBlbmRCdWZmZXJUaW1lckZpcmVkKFRpbWVyPFNvdXJjZUJ1ZmZlcj4mKQogICAgIC8vIGh0
dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS90aXAvbWVkaWEtc291cmNl
L21lZGlhLXNvdXJjZS5odG1sI3NvdXJjZWJ1ZmZlci1zZWdtZW50LXBhcnNlci1sb29wCiAgICAg
Ly8gV2hlbiB0aGUgc2VnbWVudCBwYXJzZXIgbG9vcCBhbGdvcml0aG0gaXMgaW52b2tlZCwgcnVu
IHRoZSBmb2xsb3dpbmcgc3RlcHM6CiAKLSAgICBTb3VyY2VCdWZmZXJQcml2YXRlOjpBcHBlbmRS
ZXN1bHQgcmVzdWx0ID0gU291cmNlQnVmZmVyUHJpdmF0ZTo6QXBwZW5kU3VjY2VlZGVkOwotICAg
IGRvIHsKLSAgICAgICAgLy8gMS4gTG9vcCBUb3A6IElmIHRoZSBpbnB1dCBidWZmZXIgaXMgZW1w
dHksIHRoZW4ganVtcCB0byB0aGUgbmVlZCBtb3JlIGRhdGEgc3RlcCBiZWxvdy4KLSAgICAgICAg
aWYgKCFtX3BlbmRpbmdBcHBlbmREYXRhLnNpemUoKSkKLSAgICAgICAgICAgIGJyZWFrOworICAg
IC8vIDEuIExvb3AgVG9wOiBJZiB0aGUgaW5wdXQgYnVmZmVyIGlzIGVtcHR5LCB0aGVuIGp1bXAg
dG8gdGhlIG5lZWQgbW9yZSBkYXRhIHN0ZXAgYmVsb3cuCisgICAgaWYgKCFtX3BlbmRpbmdBcHBl
bmREYXRhLnNpemUoKSkgeworICAgICAgICBzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxl
dGUobV9wcml2YXRlLmdldCgpLCBBcHBlbmRTdWNjZWVkZWQpOworICAgICAgICByZXR1cm47Cisg
ICAgfQogCi0gICAgICAgIHJlc3VsdCA9IG1fcHJpdmF0ZS0+YXBwZW5kKG1fcGVuZGluZ0FwcGVu
ZERhdGEuZGF0YSgpLCBhcHBlbmRTaXplKTsKLSAgICAgICAgbV9wZW5kaW5nQXBwZW5kRGF0YS5j
bGVhcigpOworICAgIG1fcHJpdmF0ZS0+YXBwZW5kKG1fcGVuZGluZ0FwcGVuZERhdGEuZGF0YSgp
LCBhcHBlbmRTaXplKTsKKyAgICBtX3BlbmRpbmdBcHBlbmREYXRhLmNsZWFyKCk7Cit9CiAKLSAg
ICAgICAgLy8gMi4gSWYgdGhlIGlucHV0IGJ1ZmZlciBjb250YWlucyBieXRlcyB0aGF0IHZpb2xh
dGUgdGhlIFNvdXJjZUJ1ZmZlciBieXRlIHN0cmVhbSBmb3JtYXQgc3BlY2lmaWNhdGlvbiwKLSAg
ICAgICAgLy8gdGhlbiBydW4gdGhlIGVuZCBvZiBzdHJlYW0gYWxnb3JpdGhtIHdpdGggdGhlIGVy
cm9yIHBhcmFtZXRlciBzZXQgdG8gImRlY29kZSIgYW5kIGFib3J0IHRoaXMgYWxnb3JpdGhtLgot
ICAgICAgICBpZiAocmVzdWx0ID09IFNvdXJjZUJ1ZmZlclByaXZhdGU6OlBhcnNpbmdGYWlsZWQp
IHsKLSAgICAgICAgICAgIG1fc291cmNlLT5zdHJlYW1FbmRlZFdpdGhFcnJvcihkZWNvZGVFcnJv
cigpLCBJZ25vcmFibGVFeGNlcHRpb25Db2RlKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0KK3ZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxl
dGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIEFwcGVuZFJlc3VsdCByZXN1bHQpCit7CisgICAgLy8g
U2VjdGlvbiAzLjUuNSBCdWZmZXIgQXBwZW5kIEFsZ29yaXRobSwgY3RkLgorICAgIC8vIGh0dHBz
Oi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS9kZWZhdWx0L21lZGlhLXNvdXJj
ZS9tZWRpYS1zb3VyY2UuaHRtbCNzb3VyY2VidWZmZXItYnVmZmVyLWFwcGVuZAorCisgICAgLy8g
Mi4gSWYgdGhlIGlucHV0IGJ1ZmZlciBjb250YWlucyBieXRlcyB0aGF0IHZpb2xhdGUgdGhlIFNv
dXJjZUJ1ZmZlciBieXRlIHN0cmVhbSBmb3JtYXQgc3BlY2lmaWNhdGlvbiwKKyAgICAvLyB0aGVu
IHJ1biB0aGUgZW5kIG9mIHN0cmVhbSBhbGdvcml0aG0gd2l0aCB0aGUgZXJyb3IgcGFyYW1ldGVy
IHNldCB0byAiZGVjb2RlIiBhbmQgYWJvcnQgdGhpcyBhbGdvcml0aG0uCisgICAgaWYgKHJlc3Vs
dCA9PSBQYXJzaW5nRmFpbGVkKSB7CisgICAgICAgIG1fc291cmNlLT5zdHJlYW1FbmRlZFdpdGhF
cnJvcihkZWNvZGVFcnJvcigpLCBJZ25vcmFibGVFeGNlcHRpb25Db2RlKCkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQogCi0gICAgICAgIC8vIE5PVEU6IFN0ZXBzIDMgLSA2IGVuZm9yY2VkIGJ5
IHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KCkgYW5k
Ci0gICAgICAgIC8vIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlIGJlbG93Lgor
ICAgIC8vIE5PVEU6IFN0ZXBzIDMgLSA2IGVuZm9yY2VkIGJ5IHNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KCkgYW5kCisgICAgLy8gc291cmNlQnVmZmVy
UHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUgYmVsb3cuCiAKLSAgICAgICAgLy8gNy4gTmVlZCBtb3Jl
IGRhdGE6IFJldHVybiBjb250cm9sIHRvIHRoZSBjYWxsaW5nIGFsZ29yaXRobS4KLSAgICB9IHdo
aWxlICgwKTsKKyAgICAvLyA3LiBOZWVkIG1vcmUgZGF0YTogUmV0dXJuIGNvbnRyb2wgdG8gdGhl
IGNhbGxpbmcgYWxnb3JpdGhtLgogCiAgICAgLy8gTk9URTogcmV0dXJuIHRvIFNlY3Rpb24gMy41
LjUKICAgICAvLyAyLklmIHRoZSBzZWdtZW50IHBhcnNlciBsb29wIGFsZ29yaXRobSBpbiB0aGUg
cHJldmlvdXMgc3RlcCB3YXMgYWJvcnRlZCwgdGhlbiBhYm9ydCB0aGlzIGFsZ29yaXRobS4KLSAg
ICBpZiAocmVzdWx0ICE9IFNvdXJjZUJ1ZmZlclByaXZhdGU6OkFwcGVuZFN1Y2NlZWRlZCkKKyAg
ICBpZiAocmVzdWx0ICE9IEFwcGVuZFN1Y2NlZWRlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
Ly8gMy4gU2V0IHRoZSB1cGRhdGluZyBhdHRyaWJ1dGUgdG8gZmFsc2UuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaAppbmRleCA1N2IxM2Vl
Y2FiOGI5ZjE0YjhjYTdjZTMyZWM4MGY0ZmUzZmQ2MzI4Li45OWYyZDMxNmY1MjNjZWQyZjAwZTM3
MThlNWE1ZmI1NjE3ZDRmMzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvU291cmNlQnVmZmVyLmgKQEAgLTExOCw3ICsxMTgsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2Ft
cGxlcyhTb3VyY2VCdWZmZXJQcml2YXRlKiwgQXRvbWljU3RyaW5nIHRyYWNrSUQpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlU2Vla1RvVGltZShTb3VyY2VC
dWZmZXJQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJik7CiAgICAgdmlydHVhbCBNZWRpYVRpbWUg
c291cmNlQnVmZmVyUHJpdmF0ZUZhc3RTZWVrVGltZUZvck1lZGlhVGltZShTb3VyY2VCdWZmZXJQ
cml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiBuZWdhdGl2ZVRocmVz
aG9sZCwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRocmVzaG9sZCk7Ci0KKyAgICB2aXJ0dWFs
IHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZh
dGUqLCBBcHBlbmRSZXN1bHQpIG92ZXJyaWRlOwogCiAgICAgLy8gQXVkaW9UcmFja0NsaWVudAog
ICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayopIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291
cmNlQnVmZmVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291
cmNlQnVmZmVyUHJpdmF0ZS5oCmluZGV4IGM0MDViOTY0NWY5ZDRjMzdkMDdmZWNkZmIwZTkxYWI5
OTU4NDU4MzkuLmRkY2Y2MDU5ZTdiY2VmNzFhOTRmMjhjOGZlMmNiOGQ3NjExMWNkM2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQ
cml2YXRlLmgKQEAgLTQ5LDEyICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDbGllbnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCopID0gMDsKIAotICAgIGVudW0gQXBw
ZW5kUmVzdWx0IHsKLSAgICAgICAgQXBwZW5kU3VjY2VlZGVkLAotICAgICAgICBSZWFkU3RyZWFt
RmFpbGVkLAotICAgICAgICBQYXJzaW5nRmFpbGVkLAotICAgIH07Ci0gICAgdmlydHVhbCBBcHBl
bmRSZXN1bHQgYXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0
aCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0
YSwgdW5zaWduZWQgbGVuZ3RoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFib3J0KCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291cmNlKCkgPSAwOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRl
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQ
cml2YXRlQ2xpZW50LmgKaW5kZXggZDgzYzYwYTA1M2JmYWNmMjg4MjJhMzhlMjRjYzI5YjU5YmJj
MjZhOC4uODdhYjBmMDMyNDAwNGM5MDBhNzY1NzFhMWY3MjllMzI3OGY2NjE1YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZl
clByaXZhdGVDbGllbnQuaApAQCAtNzcsNiArNzcsMTMgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCBNZWRpYVRpbWUgc291cmNlQnVmZmVyUHJpdmF0ZUZhc3RTZWVrVGltZUZvck1lZGlhVGltZShT
b3VyY2VCdWZmZXJQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBNZWRpYVRp
bWUmLCBjb25zdCBNZWRpYVRpbWUmKSB7IHJldHVybiB0aW1lOyB9CiAgICAgdmlydHVhbCB2b2lk
IHNvdXJjZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBjb25z
dCBNZWRpYVRpbWUmKSB7IH07CisKKyAgICBlbnVtIEFwcGVuZFJlc3VsdCB7CisgICAgICAgIEFw
cGVuZFN1Y2NlZWRlZCwKKyAgICAgICAgUmVhZFN0cmVhbUZhaWxlZCwKKyAgICAgICAgUGFyc2lu
Z0ZhaWxlZCwKKyAgICB9OworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlQXBw
ZW5kQ29tcGxldGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIEFwcGVuZFJlc3VsdCkgPSAwOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDLmgKaW5kZXggNjFlMGZiYzE1OGI0YzI3NDg2ZTA4OGQ4MzE0ZWRjNGMwNGYzNjFkMy4u
OWQ2MjQ3MGY1YTAyZjc1NGMzYjZjZDU5NmQ4NzMxN2UyYzFjZTdkZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCkBAIC05MSw3
ICs5MSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBTb3VyY2VCdWZmZXJQcml2YXRlIG92ZXJyaWRl
cwogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCop
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgQXBwZW5kUmVzdWx0IGFwcGVuZChjb25zdCB1bnNpZ25l
ZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBhcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgYWJvcnQoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgcmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTWVkaWFQ
bGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtMTA4LDYg
KzEwOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmbHVzaEFuZEVucXVldWVOb25EaXNwbGF5aW5n
U2FtcGxlcyhWZWN0b3I8UmVmUHRyPE1lZGlhU2FtcGxlPj4sIEFWU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyKik7CiAKICAgICB2b2lkIGRpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoaW50IHRy
YWNrSUQpOworICAgIHZvaWQgYXBwZW5kQ29tcGxldGVkKCk7CiAgICAgdm9pZCBkZXN0cm95UmVu
ZGVyZXJzKCk7CiAKICAgICBWZWN0b3I8UmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDPj4gbV92aWRlb1RyYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KaW5kZXggOTY2Y2JjZTNjOWM5MjQ1NDU4
YWVmMjQzYzVlMjI1NGNmZDFiNzM4Mi4uOGVjZGU5NDQ2ZjBhYTZiZjM2NWNhY2ZjYWI4YTYwNGEz
OTNmZTA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMubW0KQEAgLTE4NSw3ICsxODUsMTEgQEAgU09GVF9MSU5LKENvcmVNZWRp
YSwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5zaW9ucywgQ0dT
aXplLAogICAgIFVOVVNFRF9QQVJBTShzdHJlYW1EYXRhUGFyc2VyKTsKICNlbmRpZgogICAgIEFT
U0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwotICAgIF9wYXJlbnQtPmRpZFBhcnNl
U3RyZWFtRGF0YUFzQXNzZXQoYXNzZXQpOworICAgIFJlZlB0cjxXZWJDb3JlOjpTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQz4gc3Ryb25nUGFyZW50ID0gX3BhcmVudDsKKyAgICBSZXRhaW5QdHI8
QVZBc3NldCo+IHN0cm9uZ0Fzc2V0ID0gYXNzZXQ7CisgICAgY2FsbE9uTWFpblRocmVhZChbc3Ry
b25nUGFyZW50LCBzdHJvbmdBc3NldF0geworICAgICAgICBzdHJvbmdQYXJlbnQtPmRpZFBhcnNl
U3RyZWFtRGF0YUFzQXNzZXQoc3Ryb25nQXNzZXQuZ2V0KCkpOworICAgIH0pOwogfQogCiAtICh2
b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJz
ZXIgZGlkUGFyc2VTdHJlYW1EYXRhQXNBc3NldDooQVZBc3NldCAqKWFzc2V0IHdpdGhEaXNjb250
aW51aXR5OihCT09MKWRpc2NvbnRpbnVpdHkKQEAgLTE5NSw3ICsxOTksMTEgQEAgU09GVF9MSU5L
KENvcmVNZWRpYSwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0UHJlc2VudGF0aW9uRGltZW5z
aW9ucywgQ0dTaXplLAogICAgIFVOVVNFRF9QQVJBTShzdHJlYW1EYXRhUGFyc2VyKTsKICNlbmRp
ZgogICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwotICAgIF9wYXJlbnQt
PmRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQoYXNzZXQpOworICAgIFJlZlB0cjxXZWJDb3JlOjpT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4gc3Ryb25nUGFyZW50ID0gX3BhcmVudDsKKyAgICBS
ZXRhaW5QdHI8QVZBc3NldCo+IHN0cm9uZ0Fzc2V0ID0gYXNzZXQ7CisgICAgY2FsbE9uTWFpblRo
cmVhZChbc3Ryb25nUGFyZW50LCBzdHJvbmdBc3NldF0geworICAgICAgICBzdHJvbmdQYXJlbnQt
PmRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQoc3Ryb25nQXNzZXQuZ2V0KCkpOworICAgIH0pOwog
fQogCiAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVh
bURhdGFQYXJzZXIgZGlkRmFpbFRvUGFyc2VTdHJlYW1EYXRhV2l0aEVycm9yOihOU0Vycm9yICop
ZXJyb3IKQEAgLTIwNCwyNSArMjEyLDM4IEBAIFNPRlRfTElOSyhDb3JlTWVkaWEsIENNVmlkZW9G
b3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMsIENHU2l6ZSwKICAgICBV
TlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7CiAjZW5kaWYKICAgICBBU1NFUlQoc3RyZWFt
RGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKLSAgICBfcGFyZW50LT5kaWRGYWlsVG9QYXJzZVN0cmVh
bURhdGFXaXRoRXJyb3IoZXJyb3IpOworICAgIFJlZlB0cjxXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQz4gc3Ryb25nUGFyZW50ID0gX3BhcmVudDsKKyAgICBSZXRhaW5QdHI8TlNF
cnJvcj4gc3Ryb25nRXJyb3IgPSBlcnJvcjsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtzdHJvbmdQ
YXJlbnQsIHN0cm9uZ0Vycm9yXSB7CisgICAgICAgIHN0cm9uZ1BhcmVudC0+ZGlkRmFpbFRvUGFy
c2VTdHJlYW1EYXRhV2l0aEVycm9yKHN0cm9uZ0Vycm9yLmdldCgpKTsKKyAgICB9KTsKIH0KIAot
LSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRh
UGFyc2VyIGRpZFByb3ZpZGVNZWRpYURhdGE6KENNU2FtcGxlQnVmZmVyUmVmKW1lZGlhRGF0YSBm
b3JUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQgbWVkaWFUeXBlOihOU1N0cmlu
ZyAqKW1lZGlhVHlwZSBmbGFnczooTlNVSW50ZWdlcilmbGFncworLSAodm9pZClzdHJlYW1EYXRh
UGFyc2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZFByb3ZpZGVN
ZWRpYURhdGE6KENNU2FtcGxlQnVmZmVyUmVmKXNhbXBsZSBmb3JUcmFja0lEOihDTVBlcnNpc3Rl
bnRUcmFja0lEKXRyYWNrSUQgbWVkaWFUeXBlOihOU1N0cmluZyAqKW5zTWVkaWFUeXBlIGZsYWdz
OihOU1VJbnRlZ2VyKWZsYWdzCiB7CiAjaWYgQVNTRVJUX0RJU0FCTEVECiAgICAgVU5VU0VEX1BB
UkFNKHN0cmVhbURhdGFQYXJzZXIpOwogI2VuZGlmCiAgICAgQVNTRVJUKHN0cmVhbURhdGFQYXJz
ZXIgPT0gX3BhcnNlcik7Ci0gICAgX3BhcmVudC0+ZGlkUHJvdmlkZU1lZGlhRGF0YUZvclRyYWNr
SUQodHJhY2tJRCwgbWVkaWFEYXRhLCBtZWRpYVR5cGUsIGZsYWdzKTsKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IHN0cm9uZ1BhcmVudCA9IF9wYXJlbnQ7
CisgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBzdHJvbmdTYW1wbGUgPSBzYW1wbGU7
CisgICAgU3RyaW5nIG1lZGlhVHlwZSA9IG5zTWVkaWFUeXBlOworICAgIGNhbGxPbk1haW5UaHJl
YWQoW3N0cm9uZ1BhcmVudCwgc3Ryb25nU2FtcGxlLCB0cmFja0lELCBtZWRpYVR5cGUsIGZsYWdz
XSB7CisgICAgICAgIHN0cm9uZ1BhcmVudC0+ZGlkUHJvdmlkZU1lZGlhRGF0YUZvclRyYWNrSUQo
dHJhY2tJRCwgc3Ryb25nU2FtcGxlLmdldCgpLCBtZWRpYVR5cGUsIGZsYWdzKTsKKyAgICB9KTsK
IH0KIAotLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilzdHJl
YW1EYXRhUGFyc2VyIGRpZFJlYWNoRW5kT2ZUcmFja1dpdGhUcmFja0lEOihDTVBlcnNpc3RlbnRU
cmFja0lEKXRyYWNrSUQgbWVkaWFUeXBlOihOU1N0cmluZyAqKW1lZGlhVHlwZQorLSAodm9pZClz
dHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRp
ZFJlYWNoRW5kT2ZUcmFja1dpdGhUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQg
bWVkaWFUeXBlOihOU1N0cmluZyAqKW5zTWVkaWFUeXBlCiB7CiAjaWYgQVNTRVJUX0RJU0FCTEVE
CiAgICAgVU5VU0VEX1BBUkFNKHN0cmVhbURhdGFQYXJzZXIpOwogI2VuZGlmCiAgICAgQVNTRVJU
KHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7Ci0gICAgX3BhcmVudC0+ZGlkUmVhY2hFbmRP
ZlRyYWNrV2l0aFRyYWNrSUQodHJhY2tJRCwgbWVkaWFUeXBlKTsKKyAgICBSZWZQdHI8V2ViQ29y
ZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IHN0cm9uZ1BhcmVudCA9IF9wYXJlbnQ7Cisg
ICAgU3RyaW5nIG1lZGlhVHlwZSA9IG5zTWVkaWFUeXBlOworICAgIGNhbGxPbk1haW5UaHJlYWQo
W3N0cm9uZ1BhcmVudCwgdHJhY2tJRCwgbWVkaWFUeXBlXSB7CisgICAgICAgIHN0cm9uZ1BhcmVu
dC0+ZGlkUmVhY2hFbmRPZlRyYWNrV2l0aFRyYWNrSUQodHJhY2tJRCwgbWVkaWFUeXBlKTsKKyAg
ICB9KTsKIH0KIAogLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJzZXIg
KilzdHJlYW1EYXRhUGFyc2VyIGRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0
aW9uRGF0YTooTlNEYXRhICopaW5pdERhdGEgZm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJ
RCl0cmFja0lECkBAIC0yMzEsNyArMjUyLDExIEBAIFNPRlRfTElOSyhDb3JlTWVkaWEsIENNVmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMsIENHU2l6ZSwKICAg
ICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7CiAjZW5kaWYKICAgICBBU1NFUlQoc3Ry
ZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKLSAgICBfcGFyZW50LT5kaWRQcm92aWRlQ29udGVu
dEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKGluaXREYXRhLCB0cmFja0lE
KTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IHN0cm9u
Z1BhcmVudCA9IF9wYXJlbnQ7CisgICAgUmV0YWluUHRyPE5TRGF0YT4gc3Ryb25nRGF0YSA9IGlu
aXREYXRhOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3N0cm9uZ1BhcmVudCwgc3Ryb25nRGF0YSwg
dHJhY2tJRF0geworICAgICAgICBzdHJvbmdQYXJlbnQtPmRpZFByb3ZpZGVDb250ZW50S2V5UmVx
dWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQoc3Ryb25nRGF0YS5nZXQoKSwgdHJhY2tJ
RCk7CisgICAgfSk7CiB9CiBAZW5kCiAKQEAgLTQ1MywxNyArNDc4LDQxIEBAIHZvaWQgU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNldENsaWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50
KiBjbGllbnQpCiAgICAgbV9jbGllbnQgPSBjbGllbnQ7CiB9CiAKLVNvdXJjZUJ1ZmZlclByaXZh
dGU6OkFwcGVuZFJlc3VsdCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YXBwZW5kKGNvbnN0
IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKK3N0YXRpYyBkaXNwYXRjaF9x
dWV1ZV90IGdsb2JhbERhdGFQYXJzZXJRdWV1ZSgpCiB7Ci0gICAgbV9wYXJzaW5nU3VjY2VlZGVk
ID0gdHJ1ZTsKKyAgICBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBnbG9iYWxRdWV1ZTsKKyAgICBz
dGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAgICBkaXNwYXRjaF9vbmNlKCZvbmNl
VG9rZW4sIF57CisgICAgICAgIGdsb2JhbFF1ZXVlID0gZGlzcGF0Y2hfcXVldWVfY3JlYXRlKCJT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyBkYXRhIHBhcnNlciBxdWV1ZSIsIERJU1BBVENIX1FV
RVVFX1NFUklBTCk7CisgICAgfSk7CisgICAgcmV0dXJuIGdsb2JhbFF1ZXVlOworfQogCit2b2lk
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciog
ZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQorewogICAgIExPRyhNZWRpYSwgIlNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjphcHBlbmQoJXApIC0gZGF0YTolcCwgbGVuZ3RoOiVkIiwgdGhpcywgZGF0
YSwgbGVuZ3RoKTsKLSAgICBbbV9wYXJzZXIgYXBwZW5kU3RyZWFtRGF0YTpbTlNEYXRhIGRhdGFX
aXRoQnl0ZXM6ZGF0YSBsZW5ndGg6bGVuZ3RoXV07CiAKKyAgICBSZXRhaW5QdHI8TlNEYXRhPiBu
c0RhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOmRhdGEgbGVuZ3Ro
Omxlbmd0aF0pOworICAgIFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4gc3Ryb25n
VGhpcyA9IHRoaXM7CisKKyAgICBtX3BhcnNpbmdTdWNjZWVkZWQgPSB0cnVlOworCisgICAgZGlz
cGF0Y2hfYXN5bmMoZ2xvYmFsRGF0YVBhcnNlclF1ZXVlKCksIFtuc0RhdGEsIHN0cm9uZ1RoaXNd
IHsKKyAgICAgICAgW3N0cm9uZ1RoaXMtPm1fcGFyc2VyIGFwcGVuZFN0cmVhbURhdGE6bnNEYXRh
LmdldCgpXTsKKworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtzdHJvbmdUaGlzXSB7CisgICAg
ICAgICAgICBzdHJvbmdUaGlzLT5hcHBlbmRDb21wbGV0ZWQoKTsKKyAgICAgICAgfSk7CisgICAg
fSk7Cit9CisKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFwcGVuZENvbXBsZXRl
ZCgpCit7CiAgICAgaWYgKG1fcGFyc2luZ1N1Y2NlZWRlZCAmJiBtX21lZGlhU291cmNlKQogICAg
ICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2V0TG9hZGluZ1Byb2dyZXNzc2VkKHRydWUp
OwogCi0gICAgcmV0dXJuIG1fcGFyc2luZ1N1Y2NlZWRlZCA/IEFwcGVuZFN1Y2NlZWRlZCA6IFBh
cnNpbmdGYWlsZWQ7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+c291cmNl
QnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKHRoaXMsIG1fcGFyc2luZ1N1Y2NlZWRlZCA/IFNv
dXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkFwcGVuZFN1Y2NlZWRlZCA6IFNvdXJjZUJ1ZmZlclBy
aXZhdGVDbGllbnQ6OlBhcnNpbmdGYWlsZWQpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjphYm9ydCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKaW5kZXggNzA2OGE1NThjZTk4YzUwZDMwOTMyYTI5NTZjMDRlYTQ1ZTI0
ZWIzOC4uNDVjNWU5MTBlMGY0ZjZlMjU1NzlhMTZmNDBjNTQ4MDlkZWY0NTU2NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1NvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtNDYsMTIg
KzQ2LDEyIEBAIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OlNvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXIoUGFzc1JlZlB0cjxNZWRpYVNvdXJjCiAgICAgbV90eXBlID0gY29udGVudFR5
cGUudHlwZSgpOwogfQogCi1Tb3VyY2VCdWZmZXJQcml2YXRlOjpBcHBlbmRSZXN1bHQgU291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6YXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEs
IHVuc2lnbmVkIGxlbmd0aCkKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6YXBw
ZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKLSAgICBB
cHBlbmRSZXN1bHQgcmVzdWx0ID0gQXBwZW5kU3VjY2VlZGVkOwogICAgIEFTU0VSVChtX2NsaWVu
dCk7CiAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVEYXRhKHJlaW50ZXJwcmV0X2Nhc3RfcHRyPGNv
bnN0IGNoYXIqPihkYXRhKSwgbGVuZ3RoLCBtX3R5cGUpOwotICAgIHJldHVybiByZXN1bHQ7CisK
KyAgICAvLyBGSVhNRTogY2FsbCBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Ojpzb3VyY2VCdWZm
ZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoKS4KIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyOjphYm9ydCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuaAppbmRleCA0YTllYjRhYmQyMDQ2YzBlMzlhODE1YjFiZTJiMWRmNGRlMTlmMGYw
Li41NzRlMjFhMDkxMmMzZDNkMWEzMmY3M2E4MzJhMTFkYWVlY2NhY2U2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvU291cmNlQnVmZmVyUHJp
dmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTQ1LDcgKzQ1LDcgQEAg
cHVibGljOgogICAgIH5Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyKCkgeyB9CiAKICAgICB2
b2lkIHNldENsaWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KikgeyB9Ci0gICAgQXBwZW5k
UmVzdWx0IGFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiwgdW5zaWduZWQpOworICAgIHZvaWQg
YXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqLCB1bnNpZ25lZCk7CiAgICAgdm9pZCBhYm9ydCgp
OwogICAgIHZvaWQgcmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpOwogICAgIE1lZGlhUGxheWVyOjpS
ZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5U3RhdGU7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1Nv
dXJjZUJ1ZmZlclByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRp
YXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKaW5kZXggOWY5MmFjYzM0MGM1Nzhm
ZWM0MDhjNmVmYWM3MjllNTI1MTEwNmYxOS4uMzE3MDJhZjQyYjEwM2VkM2M3MWQ5ZWQ2YWQwZDc4
ZGNjMzAwYWIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRp
YXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKQEAg
LTExNCwxMiArMTE0LDEyIEBAIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OnNldENsaWVu
dChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KiBjbGllbnQpCiAgICAgbV9jbGllbnQgPSBjbGll
bnQ7CiB9CiAKLVNvdXJjZUJ1ZmZlclByaXZhdGU6OkFwcGVuZFJlc3VsdCBNb2NrU291cmNlQnVm
ZmVyUHJpdmF0ZTo6YXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxl
bmd0aCkKK3ZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmFwcGVuZChjb25zdCB1bnNpZ25l
ZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgbV9pbnB1dEJ1ZmZlci5hcHBl
bmQoZGF0YSwgbGVuZ3RoKTsKLSAgICBBcHBlbmRSZXN1bHQgcmVzdWx0ID0gQXBwZW5kU3VjY2Vl
ZGVkOworICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkFwcGVuZFJlc3VsdCByZXN1bHQg
PSBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQ7CiAKLSAgICB3aGls
ZSAobV9pbnB1dEJ1ZmZlci5zaXplKCkgJiYgcmVzdWx0ID09IEFwcGVuZFN1Y2NlZWRlZCkgewor
ICAgIHdoaWxlIChtX2lucHV0QnVmZmVyLnNpemUoKSAmJiByZXN1bHQgPT0gU291cmNlQnVmZmVy
UHJpdmF0ZUNsaWVudDo6QXBwZW5kU3VjY2VlZGVkKSB7CiAgICAgICAgIFJlZlB0cjxBcnJheUJ1
ZmZlcj4gYnVmZmVyID0gQXJyYXlCdWZmZXI6OmNyZWF0ZShtX2lucHV0QnVmZmVyLmRhdGEoKSwg
bV9pbnB1dEJ1ZmZlci5zaXplKCkpOwogICAgICAgICBzaXplX3QgYm94TGVuZ3RoID0gTW9ja0Jv
eDo6cGVla0xlbmd0aChidWZmZXIuZ2V0KCkpOwogICAgICAgICBpZiAoYm94TGVuZ3RoID4gYnVm
ZmVyLT5ieXRlTGVuZ3RoKCkpCkBAIC0xMzMsMTIgKzEzMywxMyBAQCBTb3VyY2VCdWZmZXJQcml2
YXRlOjpBcHBlbmRSZXN1bHQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmFwcGVuZChjb25zdCB1
bnNpZ25lZAogICAgICAgICAgICAgTW9ja1NhbXBsZUJveCBzYW1wbGVCb3ggPSBNb2NrU2FtcGxl
Qm94KGJ1ZmZlci5nZXQoKSk7CiAgICAgICAgICAgICBkaWRSZWNlaXZlU2FtcGxlKHNhbXBsZUJv
eCk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgcmVzdWx0ID0gUGFyc2luZ0ZhaWxlZDsK
KyAgICAgICAgICAgIHJlc3VsdCA9IFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OlBhcnNpbmdG
YWlsZWQ7CiAKICAgICAgICAgbV9pbnB1dEJ1ZmZlci5yZW1vdmUoMCwgYm94TGVuZ3RoKTsKICAg
ICB9CiAKLSAgICByZXR1cm4gcmVzdWx0OworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9j
bGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlzLCByZXN1bHQpOwog
fQogCiB2b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZlSW5pdGlhbGl6YXRp
b25TZWdtZW50KGNvbnN0IE1vY2tJbml0aWFsaXphdGlvbkJveCYgaW5pdEJveCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1
ZmZlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2Uv
TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuaAppbmRleCBjMmUxYmVjMmM4ODlmNWIzMTdkZjM4MTQ3
MTUxZjkzY2ZmNGI5NmE0Li4wYmE4NGZjNzk5YzJiODNmZGMwMTE0ZTJiZGU0ZWY5OTMyMTllNGUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tTb3VyY2VCdWZmZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oCkBAIC02Myw3ICs2Myw3IEBA
IHByaXZhdGU6CiAKICAgICAvLyBTb3VyY2VCdWZmZXJQcml2YXRlIG92ZXJyaWRlcwogICAgIHZp
cnR1YWwgdm9pZCBzZXRDbGllbnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRl
OwotICAgIHZpcnR1YWwgQXBwZW5kUmVzdWx0IGFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBk
YXRhLCB1bnNpZ25lZCBsZW5ndGgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhcHBlbmQo
Y29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgYWJvcnQoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
ZEZyb21NZWRpYVNvdXJjZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXI6OlJl
YWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>