<?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>100582</bug_id>
          
          <creation_ts>2012-10-26 17:06:30 -0700</creation_ts>
          <short_desc>Get rid of StyleResolver state related to unknown pseudo-elements.</short_desc>
          <delta_ts>2012-10-28 15:35:55 -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>89879</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>752595</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-10-26 17:06:30 -0700</bug_when>
    <thetext>Get rid of StyleResolver state related to unknown pseudo-elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752601</commentid>
    <comment_count>1</comment_count>
      <attachid>171056</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-10-26 17:13:43 -0700</bug_when>
    <thetext>Created attachment 171056
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752625</commentid>
    <comment_count>2</comment_count>
      <attachid>171056</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-26 17:59:06 -0700</bug_when>
    <thetext>Comment on attachment 171056
Patch

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

&gt; Source/WebCore/css/StyleResolver.h:364
&gt; +    bool checkSelector(const RuleData&amp;, const ContainerNode* scope, RuleApplicability);

Should this default to CanBeAnything? (Which is a confusing name, btw.)

Maybe these should be RestrictToUnknownPseudoElements, NoRestrictions?

I&quot;m not fully sure what this does to provide better naming help...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752644</commentid>
    <comment_count>3</comment_count>
      <attachid>171056</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-10-26 18:49:00 -0700</bug_when>
    <thetext>Comment on attachment 171056
Patch

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

&gt;&gt; Source/WebCore/css/StyleResolver.h:364
&gt;&gt; +    bool checkSelector(const RuleData&amp;, const ContainerNode* scope, RuleApplicability);
&gt; 
&gt; Should this default to CanBeAnything? (Which is a confusing name, btw.)
&gt; 
&gt; Maybe these should be RestrictToUnknownPseudoElements, NoRestrictions?
&gt; 
&gt; I&quot;m not fully sure what this does to provide better naming help...

Sure, I&apos;d love naming help:

CanBeAnything --&gt; there are no restrictions in this TreeScope (which is like a little document-type subtree -- think Shadow DOM subtree), the rule can just do normal matching
NeedsUnknownPseudoElement --&gt; this rule is very likely _not_ to match, because it&apos;s probably in a different TreeScope, but just in case it contains an unknown pseudo-element, it _could_ match, so we have to check the full selector.

Does this make a bit more sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752672</commentid>
    <comment_count>4</comment_count>
      <attachid>171056</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-26 20:41:18 -0700</bug_when>
    <thetext>Comment on attachment 171056
Patch

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

&gt;&gt;&gt; Source/WebCore/css/StyleResolver.h:364
&gt;&gt;&gt; +    bool checkSelector(const RuleData&amp;, const ContainerNode* scope, RuleApplicability);
&gt;&gt; 
&gt;&gt; Should this default to CanBeAnything? (Which is a confusing name, btw.)
&gt;&gt; 
&gt;&gt; Maybe these should be RestrictToUnknownPseudoElements, NoRestrictions?
&gt;&gt; 
&gt;&gt; I&quot;m not fully sure what this does to provide better naming help...
&gt; 
&gt; Sure, I&apos;d love naming help:
&gt; 
&gt; CanBeAnything --&gt; there are no restrictions in this TreeScope (which is like a little document-type subtree -- think Shadow DOM subtree), the rule can just do normal matching
&gt; NeedsUnknownPseudoElement --&gt; this rule is very likely _not_ to match, because it&apos;s probably in a different TreeScope, but just in case it contains an unknown pseudo-element, it _could_ match, so we have to check the full selector.
&gt; 
&gt; Does this make a bit more sense?

What&apos;s an unknown pseudo element? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752674</commentid>
    <comment_count>5</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-10-26 20:50:30 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; What&apos;s an unknown pseudo element? :)

It&apos;s a pseudo-element that&apos;s known neither to standard CSS3/4 pseudo-elements nor WebKit&apos;s internal plumbing (like scrollbars pseudo-elements). An unknown pseudo-element in a selector means one of two things:

1) the author made a typo
2) the author is using custom pseudo-elements in shadow DOM (http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#custom-pseudo-elements).

We use these in pretty much all of the built-in HTML controls (like &quot;-webkit-slider-thumb&quot; is used to style the little knob on the range slider). Did I succeed in explaining? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752879</commentid>
    <comment_count>6</comment_count>
      <attachid>171056</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-10-27 21:12:03 -0700</bug_when>
    <thetext>Comment on attachment 171056
Patch

I have a much better patch. Please hold.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752946</commentid>
    <comment_count>7</comment_count>
      <attachid>171130</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-10-28 09:09:24 -0700</bug_when>
    <thetext>Created attachment 171130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752975</commentid>
    <comment_count>8</comment_count>
      <attachid>171130</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-28 12:50:25 -0700</bug_when>
    <thetext>Comment on attachment 171130
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752998</commentid>
    <comment_count>9</comment_count>
      <attachid>171130</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-28 15:35:51 -0700</bug_when>
    <thetext>Comment on attachment 171130
Patch

Clearing flags on attachment: 171130

Committed r132754: &lt;http://trac.webkit.org/changeset/132754&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752999</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-28 15:35:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171056</attachid>
            <date>2012-10-26 17:13:43 -0700</date>
            <delta_ts>2012-10-28 09:09:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100582-20121026171214.patch</filename>
            <type>text/plain</type>
            <size>8196</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNjg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFlYjVkNDg5OGVlNmE1
MGQ2OWY0ZDU4Yzk4YjFiM2JlMTYyMWExYy4uNWE1YzEyMjM4NjhhY2UyMTNjNWMxYWZjNDJlN2Yy
YTdjMmE5MDc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEwLTI2ICBEaW1p
dHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiBTdHlsZVJlc29sdmVyIHN0YXRlIHJlbGF0ZWQgdG8gdW5rbm93biBwc2V1ZG8tZWxlbWVudHMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA1ODIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgd2hv
bGUgdW5rbm93biBwc2V1ZG8tZWxlbWVudCBsb2dpYyBtYWtlcyBsaXR0bGUgc2Vuc2Ugb3V0c2lk
ZSBvZiBjaGVja2luZyBhIHJ1bGUgKHNlbGVjdG9yKS4gTGV0J3MgbW92ZSBpdCBpbiBhbmQKKyAg
ICAgICAgcmVtb3ZlIG1faGFzVW5rbm93blBzZXVkb0VsZW1lbnQuCisKKyAgICAgICAgTm8gY2hh
bmdlIGluIGZ1bmN0aW9uYWxpdHksIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAg
ICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29s
dmVyOjpTdHlsZVJlc29sdmVyKTogUmVtb3ZlZCBpbml0aWFsaXplci4KKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdCk6IE1vdmVkIG1v
c3Qgb2YgYXBwbGljYWJpbGl0eSBjaGVjayBvdXQgb2YgdGhlIGxvb3AsCisgICAgICAgICAgICB0
aWdodGVuZWQgZmFzdCByZWplY3Rpb24gY2hlY2ssCisgICAgICAgICAgICBtb3ZlZCBjaGVja2lu
ZyBmb3IgdW5rbm93biBwc2V1ZG8tZWxlbWVudHMgdG8gY2hlY2tTZWxlY3Rvci4KKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNoZWNrU2VsZWN0b3IpOiBBZGRlZCBhcHBsaWNhYmls
aXR5IHBhcmFtIGFsb25nIHdpdGggdGhlIGxvZ2ljIHRvIGNoZWNrIGZvciB1bmtub3duIHBzZXVk
by1lbGVtZW50cy4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNoZWNrUmVnaW9u
U2VsZWN0b3IpOiBSZW1vdmVkIHVubmVjZXNzYXJ5IHZhci4KKyAgICAgICAgKiBjc3MvU3R5bGVS
ZXNvbHZlci5oOiBSZW1vdmVkIG1lbWJlciwgYWRqdXN0ZWQgY2hlY2tTZWxlY3RvciBzaWduYXR1
cmUuCisKIDIwMTItMTAtMjYgIEVsbGlvdHQgU3ByZWhuICA8ZXNwcmVobkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmVtb3ZlIHNldFJlbmRlclN0eWxlIGluIGZhdm9yIG9mIGNhbGxiYWNrcyBv
biBIVE1MT3B0aW9uRWxlbWVudCBhbmQgSFRNTE9wdEdyb3VwRWxlbWVudApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IGI4Y2RlNWQyMjE1MjdkZjMwOGQzOWZmMDQyYTM5Mjgy
OGIyM2MzNzMuLjg0NTNkZDQ4Y2JlNDk0NTY1ZDE3M2Y3NDE3YzAzYmM5ZTE4ZGRmOGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTI3Myw3ICsyNzMsNiBAQCBTdHlsZVJl
c29sdmVyOjpTdHlsZVJlc29sdmVyKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBtYXRjaEF1dGhv
ckFuZFVzZXJTdHlsZXMpCiAgICAgLCBtX21hdGNoQXV0aG9yQW5kVXNlclN0eWxlcyhtYXRjaEF1
dGhvckFuZFVzZXJTdHlsZXMpCiAgICAgLCBtX3NhbWVPcmlnaW5Pbmx5KGZhbHNlKQogICAgICwg
bV9kaXN0cmlidXRlZFRvSW5zZXJ0aW9uUG9pbnQoZmFsc2UpCi0gICAgLCBtX2hhc1Vua25vd25Q
c2V1ZG9FbGVtZW50cyhmYWxzZSkKICAgICAsIG1fZm9udFNlbGVjdG9yKENTU0ZvbnRTZWxlY3Rv
cjo6Y3JlYXRlKGRvY3VtZW50KSkKICAgICAsIG1fYXBwbHlQcm9wZXJ0eVRvUmVndWxhclN0eWxl
KHRydWUpCiAgICAgLCBtX2FwcGx5UHJvcGVydHlUb1Zpc2l0ZWRMaW5rU3R5bGUoZmFsc2UpCkBA
IC04NTIsMTEgKzg1MSwxOSBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1
bGVzRm9yTGlzdChjb25zdCBWZWN0b3I8UnVsZURhdGE+KiBydWxlcywgaQogICAgIGlmICghcnVs
ZXMpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIENoZWNrIHdoZXRoZXIgdGhlIHJ1bGUgaXMg
YXBwbGljYWJsZSBpbiB0aGUgY3VycmVudCB0cmVlIHNjb3BlLiBDcml0ZXJpYSBmb3IgdGhpczoK
KyAgICAvLyBhKSBpdCdzIGEgVUEgcnVsZQorICAgIC8vIGIpIHRoZSB0cmVlIHNjb3BlIGFsbG93
cyBhdXRob3IgcnVsZXMKKyAgICAvLyBjKSB0aGUgcnVsZXMgY29tZXMgZnJvbSBhIHNjb3BlZCBz
dHlsZSBzaGVldCB3aXRoaW4gdGhlIHNhbWUgdHJlZSBzY29wZQorICAgIC8vIGQpIHRoZSBydWxl
IGNvbnRhaW5zIHNoYWRvdy1JRCBwc2V1ZG8gZWxlbWVudHMKICAgICBUcmVlU2NvcGUqIHRyZWVT
Y29wZSA9IG1fZWxlbWVudC0+dHJlZVNjb3BlKCk7CisgICAgUnVsZUFwcGxpY2FiaWxpdHkgcnVs
ZUFwcGxpY2FiaWxpdHkgPSAhTWF0Y2hpbmdVQVJ1bGVzU2NvcGU6OmlzTWF0Y2hpbmdVQVJ1bGVz
KCkKKyAgICAgICAgJiYgIXRyZWVTY29wZS0+YXBwbHlBdXRob3JTdHlsZXMoKQorICAgICAgICAm
JiAoIW9wdGlvbnMuc2NvcGUgfHwgb3B0aW9ucy5zY29wZS0+dHJlZVNjb3BlKCkgIT0gdHJlZVNj
b3BlKSA/IE5lZWRzVW5rbm93blBzZXVkb0VsZW1lbnQgOiBDYW5CZUFueXRoaW5nOwogCiAgICAg
Ly8gSW4gc29tZSBjYXNlcyB3ZSBtYXkgZW5kIHVwIGxvb2tpbmcgdXAgc3R5bGUgZm9yIHJhbmRv
bSBlbGVtZW50cyBpbiB0aGUgbWlkZGxlIG9mIGEgcmVjdXJzaXZlIHRyZWUgcmVzb2x2ZS4KICAg
ICAvLyBBbmNlc3RvciBpZGVudGlmaWVyIGZpbHRlciB3b24ndCBiZSB1cC10by1kYXRlIGluIHRo
YXQgY2FzZSBhbmQgd2UgY2FuJ3QgdXNlIHRoZSBmYXN0IHBhdGguCi0gICAgYm9vbCBjYW5Vc2VG
YXN0UmVqZWN0ID0gbV9jaGVja2VyLnBhcmVudFN0YWNrSXNDb25zaXN0ZW50KG1fcGFyZW50Tm9k
ZSk7CisgICAgYm9vbCBjYW5Vc2VGYXN0UmVqZWN0ID0gcnVsZUFwcGxpY2FiaWxpdHkgPT0gQ2Fu
QmVBbnl0aGluZyAmJiBtX2NoZWNrZXIucGFyZW50U3RhY2tJc0NvbnNpc3RlbnQobV9wYXJlbnRO
b2RlKTsKIAogICAgIHVuc2lnbmVkIHNpemUgPSBydWxlcy0+c2l6ZSgpOwogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKQEAgLTg2NiwyMCArODczLDcgQEAgdm9pZCBT
dHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QoY29uc3QgVmVjdG9yPFJ1
bGVEYXRhPiogcnVsZXMsIGkKIAogICAgICAgICBTdHlsZVJ1bGUqIHJ1bGUgPSBydWxlRGF0YS5y
dWxlKCk7CiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxNYXRjaFJ1bGUoZG9jdW1lbnQoKSwgcnVsZSk7
Ci0gICAgICAgIGlmIChjaGVja1NlbGVjdG9yKHJ1bGVEYXRhLCBvcHRpb25zLnNjb3BlKSkgewot
ICAgICAgICAgICAgLy8gQ2hlY2sgd2hldGhlciB0aGUgcnVsZSBpcyBhcHBsaWNhYmxlIGluIHRo
ZSBjdXJyZW50IHRyZWUgc2NvcGUuIENyaXRlcmlhIGZvciB0aGlzOgotICAgICAgICAgICAgLy8g
YSkgaXQncyBhIFVBIHJ1bGUKLSAgICAgICAgICAgIC8vIGIpIHRoZSB0cmVlIHNjb3BlIGFsbG93
cyBhdXRob3IgcnVsZXMKLSAgICAgICAgICAgIC8vIGMpIHRoZSBydWxlcyBjb21lcyBmcm9tIGEg
c2NvcGVkIHN0eWxlIHNoZWV0IHdpdGhpbiB0aGUgc2FtZSB0cmVlIHNjb3BlCi0gICAgICAgICAg
ICAvLyBkKSB0aGUgcnVsZSBjb250YWlucyBzaGFkb3ctSUQgcHNldWRvIGVsZW1lbnRzCi0gICAg
ICAgICAgICBpZiAoIU1hdGNoaW5nVUFSdWxlc1Njb3BlOjppc01hdGNoaW5nVUFSdWxlcygpCi0g
ICAgICAgICAgICAgICAgJiYgIXRyZWVTY29wZS0+YXBwbHlBdXRob3JTdHlsZXMoKQotICAgICAg
ICAgICAgICAgICYmICghb3B0aW9ucy5zY29wZSB8fCBvcHRpb25zLnNjb3BlLT50cmVlU2NvcGUo
KSAhPSB0cmVlU2NvcGUpCi0gICAgICAgICAgICAgICAgJiYgIW1faGFzVW5rbm93blBzZXVkb0Vs
ZW1lbnRzKSB7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZE1hdGNoUnVsZShjb29raWUsIGZhbHNlKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgICAgIH0KKyAgICAgICAgaWYgKGNoZWNrU2VsZWN0b3IocnVsZURhdGEsIG9wdGlvbnMu
c2NvcGUsIHJ1bGVBcHBsaWNhYmlsaXR5KSkgewogICAgICAgICAgICAgLy8gSWYgdGhlIHJ1bGUg
aGFzIG5vIHByb3BlcnRpZXMgdG8gYXBwbHksIHRoZW4gaWdub3JlIGl0IGluIHRoZSBub24tZGVi
dWcgbW9kZS4KICAgICAgICAgICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnRpZXMg
PSBydWxlLT5wcm9wZXJ0aWVzKCk7CiAgICAgICAgICAgICBpZiAoIXByb3BlcnRpZXMgfHwgKHBy
b3BlcnRpZXMtPmlzRW1wdHkoKSAmJiAhb3B0aW9ucy5pbmNsdWRlRW1wdHlSdWxlcykpIHsKQEAg
LTIxOTMsMTQgKzIxODcsMTMgQEAgUGFzc1JlZlB0cjxDU1NSdWxlTGlzdD4gU3R5bGVSZXNvbHZl
cjo6cHNldWRvU3R5bGVSdWxlc0ZvckVsZW1lbnQoRWxlbWVudCogZSwgUHMKICAgICByZXR1cm4g
bV9ydWxlTGlzdC5yZWxlYXNlKCk7CiB9CiAKLWlubGluZSBib29sIFN0eWxlUmVzb2x2ZXI6OmNo
ZWNrU2VsZWN0b3IoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhLCBjb25zdCBDb250YWluZXJOb2Rl
KiBzY29wZSkKK2lubGluZSBib29sIFN0eWxlUmVzb2x2ZXI6OmNoZWNrU2VsZWN0b3IoY29uc3Qg
UnVsZURhdGEmIHJ1bGVEYXRhLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSwgUnVsZUFwcGxp
Y2FiaWxpdHkgcnVsZUFwcGxpY2FiaWxpdHkpCiB7CiAgICAgbV9keW5hbWljUHNldWRvID0gTk9Q
U0VVRE87Ci0gICAgbV9oYXNVbmtub3duUHNldWRvRWxlbWVudHMgPSBmYWxzZTsKIAogICAgIGlm
IChydWxlRGF0YS5oYXNGYXN0Q2hlY2thYmxlU2VsZWN0b3IoKSkgewogICAgICAgICAvLyBXZSBr
bm93IHRoaXMgc2VsZWN0b3IgZG9lcyBub3QgaW5jbHVkZSBhbnkgcHNldWRvIGVsZW1lbnRzLgot
ICAgICAgICBpZiAobV9wc2V1ZG9TdHlsZSAhPSBOT1BTRVVETykKKyAgICAgICAgaWYgKG1fcHNl
dWRvU3R5bGUgIT0gTk9QU0VVRE8gfHwgcnVsZUFwcGxpY2FiaWxpdHkgPT0gTmVlZHNVbmtub3du
UHNldWRvRWxlbWVudCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgLy8gV2Ug
a25vdyBhIHN1ZmZpY2llbnRseSBzaW1wbGUgc2luZ2xlIHBhcnQgc2VsZWN0b3IgbWF0Y2hlcyBz
aW1wbHkgYmVjYXVzZSB3ZSBmb3VuZCBpdCBmcm9tIHRoZSBydWxlIGhhc2guCiAgICAgICAgIC8v
IFRoaXMgaXMgbGltaXRlZCB0byBIVE1MIG9ubHkgc28gd2UgZG9uJ3QgbmVlZCB0byBjaGVjayB0
aGUgbmFtZXNwYWNlLgpAQCAtMjIxNSwxNiArMjIwOCwxOSBAQCBpbmxpbmUgYm9vbCBTdHlsZVJl
c29sdmVyOjpjaGVja1NlbGVjdG9yKGNvbnN0IFJ1bGVEYXRhJiBydWxlRGF0YSwgY29uc3QgQ29u
dGFpbgogICAgIH0KIAogICAgIC8vIFNsb3cgcGF0aC4KKyAgICBib29sIGhhc1Vua25vd25Qc2V1
ZG9FbGVtZW50cyA9IGZhbHNlOwogICAgIFNlbGVjdG9yQ2hlY2tlcjo6U2VsZWN0b3JDaGVja2lu
Z0NvbnRleHQgY29udGV4dChydWxlRGF0YS5zZWxlY3RvcigpLCBtX2VsZW1lbnQsIFNlbGVjdG9y
Q2hlY2tlcjo6VmlzaXRlZE1hdGNoRW5hYmxlZCk7CiAgICAgY29udGV4dC5lbGVtZW50U3R5bGUg
PSBzdHlsZSgpOwogICAgIGNvbnRleHQuZWxlbWVudFBhcmVudFN0eWxlID0gbV9wYXJlbnROb2Rl
ID8gbV9wYXJlbnROb2RlLT5yZW5kZXJTdHlsZSgpIDogMDsKICAgICBjb250ZXh0LnNjb3BlID0g
c2NvcGU7CiAgICAgY29udGV4dC5wc2V1ZG9TdHlsZSA9IG1fcHNldWRvU3R5bGU7Ci0gICAgU2Vs
ZWN0b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNoIG1hdGNoID0gbV9jaGVja2VyLmNoZWNrU2VsZWN0
b3IoY29udGV4dCwgbV9keW5hbWljUHNldWRvLCBtX2hhc1Vua25vd25Qc2V1ZG9FbGVtZW50cyk7
CisgICAgU2VsZWN0b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNoIG1hdGNoID0gbV9jaGVja2VyLmNo
ZWNrU2VsZWN0b3IoY29udGV4dCwgbV9keW5hbWljUHNldWRvLCBoYXNVbmtub3duUHNldWRvRWxl
bWVudHMpOwogICAgIGlmIChtYXRjaCAhPSBTZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2hl
cykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChtX3BzZXVkb1N0eWxlICE9IE5PUFNF
VURPICYmIG1fcHNldWRvU3R5bGUgIT0gbV9keW5hbWljUHNldWRvKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgaWYgKHJ1bGVBcHBsaWNhYmlsaXR5ID09IE5lZWRzVW5rbm93blBzZXVkb0Vs
ZW1lbnQgJiYgIWhhc1Vua25vd25Qc2V1ZG9FbGVtZW50cykKKyAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0yMjMzLDcgKzIyMjksNiBAQCBib29sIFN0eWxl
UmVzb2x2ZXI6OmNoZWNrUmVnaW9uU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHJlZ2lvblNlbGVjdG9y
LCBFbGVtZW50KiByZQogICAgIGlmICghcmVnaW9uU2VsZWN0b3IgfHwgIXJlZ2lvbkVsZW1lbnQp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1faGFzVW5rbm93blBzZXVkb0VsZW1lbnRz
ID0gZmFsc2U7CiAgICAgbV9wc2V1ZG9TdHlsZSA9IE5PUFNFVURPOwogCiAgICAgZm9yIChDU1NT
ZWxlY3RvciogcyA9IHJlZ2lvblNlbGVjdG9yOyBzOyBzID0gQ1NTU2VsZWN0b3JMaXN0OjpuZXh0
KHMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5kZXggMDBmMGFkZGU2ZTE2NmI1ZTIw
Yjg4N2IzZjhkN2MwZDUyMGE3Mjc2Ny4uMTljMDU5YWI5Y2I2NmMxMjNlMDZjYmM0NDEyOTZjODcy
MTFmNWRhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC0zNTcsNyArMzU3LDEx
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzb3J0TWF0Y2hlZFJ1bGVzKCk7CiAgICAgdm9pZCBzb3J0
QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMoTWF0Y2hSZXN1bHQmKTsKIAotICAgIGJvb2wgY2hlY2tT
ZWxlY3Rvcihjb25zdCBSdWxlRGF0YSYsIGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlID0gMCk7
CisgICAgZW51bSBSdWxlQXBwbGljYWJpbGl0eSB7CisgICAgICAgIE5lZWRzVW5rbm93blBzZXVk
b0VsZW1lbnQsCisgICAgICAgIENhbkJlQW55dGhpbmcKKyAgICB9OworICAgIGJvb2wgY2hlY2tT
ZWxlY3Rvcihjb25zdCBSdWxlRGF0YSYsIGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlLCBSdWxl
QXBwbGljYWJpbGl0eSk7CiAgICAgYm9vbCBjaGVja1JlZ2lvblNlbGVjdG9yKENTU1NlbGVjdG9y
KiByZWdpb25TZWxlY3RvciwgRWxlbWVudCogcmVnaW9uRWxlbWVudCk7CiAgICAgdm9pZCBhcHBs
eU1hdGNoZWRQcm9wZXJ0aWVzKGNvbnN0IE1hdGNoUmVzdWx0JiwgY29uc3QgRWxlbWVudCopOwog
ICAgIGVudW0gU3R5bGVBcHBsaWNhdGlvblBhc3MgewpAQCAtNDkyLDcgKzQ5Niw2IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX21hdGNoQXV0aG9yQW5kVXNlclN0eWxlczsKICAgICBib29sIG1fc2Ft
ZU9yaWdpbk9ubHk7CiAgICAgYm9vbCBtX2Rpc3RyaWJ1dGVkVG9JbnNlcnRpb25Qb2ludDsKLSAg
ICBib29sIG1faGFzVW5rbm93blBzZXVkb0VsZW1lbnRzOwogCiAgICAgUmVmUHRyPENTU0ZvbnRT
ZWxlY3Rvcj4gbV9mb250U2VsZWN0b3I7CiAgICAgVmVjdG9yPE93blB0cjxNZWRpYVF1ZXJ5UmVz
dWx0PiA+IG1fdmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0czsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171130</attachid>
            <date>2012-10-28 09:09:24 -0700</date>
            <delta_ts>2012-10-28 15:35:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100582-20121028090752.patch</filename>
            <type>text/plain</type>
            <size>16925</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNjg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFlYjVkNDg5OGVlNmE1
MGQ2OWY0ZDU4Yzk4YjFiM2JlMTYyMWExYy4uYjM2NGE2YTllMmUwYTExM2NjYTZjNWY3ZDhmMjg2
ZDc5NTBhZDBhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTEwLTI4ICBEaW1p
dHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiBTdHlsZVJlc29sdmVyIHN0YXRlIHJlbGF0ZWQgdG8gdW5rbm93biBwc2V1ZG8tZWxlbWVudHMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA1ODIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGwgb2Yg
dGhlIHN0YXRlLCByZWxhdGVkIHRvIHVua25vd24gcHNldWRvLWVsZW1lbnRzIGlzIGFscmVhZHkg
dW5kZXJzdG9vZCBhdCB0aGUgdGltZSBvZiBjb2xsZWN0aW5nIHJ1bGVzLgorICAgICAgICBXZSBj
YW4ganVzdCBnZXQgcmlkIG9mIG1vc3Qgb2YgdGhpcyBjb2RlIGluIFN0eWxlUmVzb2x2ZXIuCisK
KyAgICAgICAgQXQgdGhlIHRpbWUgb2YgbWF0Y2hpbmcgcnVsZXMsIHdlIGtub3cgZm9yIGNlcnRh
aW4gdGhhdCBvbmx5IHJ1bGVzIHRoYXQgY29udGFpbiB1bmtub3duIHBzZXVkby1lbGVtZW50cywK
KyAgICAgICAgb3IgYXJlIFVBIHJ1bGVzLCBvciBhcmUgZXhwbGljaXRseSBpbnZpdGVkIGJ5IGEg
VHJlZVNjb3BlIHdpbGwgbWF0Y2guIFNvIHdlIGNhbiBqdXN0IHJldHVybiBlYXJseSBpbiBtYW55
IGNhc2VzLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvciwgY292ZXJlZCBieSBleGlz
dGluZyB0ZXN0cy4KKworICAgICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9yKTogUmVtb3ZlZCBub3ct
dW5uZWNlc3NhcnkgcGFyYW0uCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6OmNo
ZWNrT25lU2VsZWN0b3IpOiBEaXR0by4KKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmg6
CisgICAgICAgIChTZWxlY3RvckNoZWNrZXIpOiBEaXR0by4KKyAgICAgICAgKiBjc3MvU3R5bGVS
ZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpTdHlsZVJlc29s
dmVyKTogRGl0dG8uCisgICAgICAgIChNYXRjaGluZ1VBUnVsZXNTY29wZSk6IE1vdmVkIGNsYXNz
IGRlZmluaXRpb24gaGVyZSwgc2luY2Ugd2Ugbm93IHVzZSBpdCBpbiBhIGRpZmZlcmVudCBwbGFj
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVz
KTogQ2hhbmdlZCB0aGUgbG9naWMgdG8gc3RvcCBtYXRjaGluZyBydWxlcyB0aGF0IGRlZmluaXRl
bHkgd29uJ3QgbWF0Y2ggaW4gYSBkaWZmZXJlbnQgc2NvcGUuCisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QpOiBSZW1vdmVkIGNvZGUg
dGhhdCdzIG5vdyB1bm5lY2Vzc3NhcnkuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVy
OjpjaGVja1NlbGVjdG9yKTogUmVtb3ZlZCBub3ctdW5uZWNlc3NhcnkgcGFyYW0uCisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjaGVja1JlZ2lvblNlbGVjdG9yKTogUmVtb3ZlZCB3
ZWlyZCBkZWFkIGNvZGUuCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAg
KFN0eWxlUmVzb2x2ZXIpOiBSZW1vdmVkIG5vdy11bm5lY2Vzc2FyeSBtZW1iZXIuCisKIDIwMTIt
MTAtMjYgIEVsbGlvdHQgU3ByZWhuICA8ZXNwcmVobkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmVtb3ZlIHNldFJlbmRlclN0eWxlIGluIGZhdm9yIG9mIGNhbGxiYWNrcyBvbiBIVE1MT3B0aW9u
RWxlbWVudCBhbmQgSFRNTE9wdEdyb3VwRWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JD
aGVja2VyLmNwcAppbmRleCBlYjViOWYzODdiZTlhYmU1Y2VmMjM0MjY1MWQwNDIwZTAwZDdiZTMz
Li5iNjYwNTBmZTQ3NTA3MjNkNzE0YWM1OTYwZDg4MzJmZGQ4YjUzMDZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcApAQCAtMjY4LDggKzI2OCw3IEBAIGJvb2wgU2VsZWN0
b3JDaGVja2VyOjpjaGVja1NlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWwsIEVsZW1lbnQqIGVsZW1l
bnQsIGJvb2wgaXNGCiAgICAgfQogCiAgICAgUHNldWRvSWQgaWdub3JlRHluYW1pY1BzZXVkbyA9
IE5PUFNFVURPOwotICAgIGJvb2wgaGFzVW5rbm93blBzZXVkb0VsZW1lbnRzID0gZmFsc2U7Ci0g
ICAgcmV0dXJuIGNoZWNrU2VsZWN0b3IoU2VsZWN0b3JDaGVja2luZ0NvbnRleHQoc2VsLCBlbGVt
ZW50LCBTZWxlY3RvckNoZWNrZXI6OlZpc2l0ZWRNYXRjaERpc2FibGVkKSwgaWdub3JlRHluYW1p
Y1BzZXVkbywgaGFzVW5rbm93blBzZXVkb0VsZW1lbnRzKSA9PSBTZWxlY3Rvck1hdGNoZXM7Cisg
ICAgcmV0dXJuIGNoZWNrU2VsZWN0b3IoU2VsZWN0b3JDaGVja2luZ0NvbnRleHQoc2VsLCBlbGVt
ZW50LCBTZWxlY3RvckNoZWNrZXI6OlZpc2l0ZWRNYXRjaERpc2FibGVkKSwgaWdub3JlRHluYW1p
Y1BzZXVkbykgPT0gU2VsZWN0b3JNYXRjaGVzOwogfQogCiBuYW1lc3BhY2UgewpAQCAtNDQwLDcg
KzQzOSw3IEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjppc0Zhc3RDaGVja2FibGVTZWxlY3Rvcihj
b25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IpCiAvLyAqIFNlbGVjdG9yRmFpbHNMb2NhbGx5ICAg
ICAtIHRoZSBzZWxlY3RvciBmYWlscyBmb3IgdGhlIGVsZW1lbnQgZQogLy8gKiBTZWxlY3RvckZh
aWxzQWxsU2libGluZ3MgLSB0aGUgc2VsZWN0b3IgZmFpbHMgZm9yIGUgYW5kIGFueSBzaWJsaW5n
IG9mIGUKIC8vICogU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHkgIC0gdGhlIHNlbGVjdG9yIGZhaWxz
IGZvciBlIGFuZCBhbnkgc2libGluZyBvciBhbmNlc3RvciBvZiBlCi1TZWxlY3RvckNoZWNrZXI6
OlNlbGVjdG9yTWF0Y2ggU2VsZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9yKGNvbnN0IFNlbGVj
dG9yQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0LCBQc2V1ZG9JZCYgZHluYW1pY1BzZXVkbywgYm9v
bCYgaGFzVW5rbm93blBzZXVkb0VsZW1lbnRzKSBjb25zdAorU2VsZWN0b3JDaGVja2VyOjpTZWxl
Y3Rvck1hdGNoIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tTZWxlY3Rvcihjb25zdCBTZWxlY3RvckNo
ZWNraW5nQ29udGV4dCYgY29udGV4dCwgUHNldWRvSWQmIGR5bmFtaWNQc2V1ZG8pIGNvbnN0CiB7
CiAgICAgLy8gZmlyc3Qgc2VsZWN0b3IgaGFzIHRvIG1hdGNoCiAgICAgaWYgKCFjaGVja09uZVNl
bGVjdG9yKGNvbnRleHQsIERPTVNpYmxpbmdUcmF2ZXJzYWxTdHJhdGVneSgpKSkKQEAgLTQ0OCw3
ICs0NDcsNiBAQCBTZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2ggU2VsZWN0b3JDaGVja2Vy
OjpjaGVja1NlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlYwogCiAgICAgaWYgKGNvbnRleHQuc2Vs
ZWN0b3ItPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQpIHsKICAgICAgICAg
aWYgKGNvbnRleHQuc2VsZWN0b3ItPmlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSkgewotICAgICAg
ICAgICAgaGFzVW5rbm93blBzZXVkb0VsZW1lbnRzID0gdHJ1ZTsKICAgICAgICAgICAgIGlmIChj
b250ZXh0LmVsZW1lbnQtPnNoYWRvd1BzZXVkb0lkKCkgIT0gY29udGV4dC5zZWxlY3Rvci0+dmFs
dWUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0xvY2FsbHk7CiAgICAg
ICAgIH0gZWxzZSB7CkBAIC01MDAsNyArNDk4LDcgQEAgU2VsZWN0b3JDaGVja2VyOjpTZWxlY3Rv
ck1hdGNoIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tTZWxlY3Rvcihjb25zdCBTZWxlY3RvckNoZWMK
ICAgICAgICAgbmV4dENvbnRleHQuZWxlbWVudFN0eWxlID0gMDsKICAgICAgICAgbmV4dENvbnRl
eHQuZWxlbWVudFBhcmVudFN0eWxlID0gMDsKICAgICAgICAgZm9yICg7IG5leHRDb250ZXh0LmVs
ZW1lbnQ7IG5leHRDb250ZXh0LmVsZW1lbnQgPSBuZXh0Q29udGV4dC5lbGVtZW50LT5wYXJlbnRF
bGVtZW50KCkpIHsKLSAgICAgICAgICAgIFNlbGVjdG9yTWF0Y2ggbWF0Y2ggPSBjaGVja1NlbGVj
dG9yKG5leHRDb250ZXh0LCBpZ25vcmVEeW5hbWljUHNldWRvLCBoYXNVbmtub3duUHNldWRvRWxl
bWVudHMpOworICAgICAgICAgICAgU2VsZWN0b3JNYXRjaCBtYXRjaCA9IGNoZWNrU2VsZWN0b3Io
bmV4dENvbnRleHQsIGlnbm9yZUR5bmFtaWNQc2V1ZG8pOwogICAgICAgICAgICAgaWYgKG1hdGNo
ID09IFNlbGVjdG9yTWF0Y2hlcyB8fCBtYXRjaCA9PSBTZWxlY3RvckZhaWxzQ29tcGxldGVseSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2g7CiAgICAgICAgICAgICBpZiAobmV4dENvbnRl
eHQuZWxlbWVudCA9PSBuZXh0Q29udGV4dC5zY29wZSkKQEAgLTUxNSw3ICs1MTMsNyBAQCBTZWxl
Y3RvckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2ggU2VsZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9y
KGNvbnN0IFNlbGVjdG9yQ2hlYwogICAgICAgICBuZXh0Q29udGV4dC5pc1N1YlNlbGVjdG9yID0g
ZmFsc2U7CiAgICAgICAgIG5leHRDb250ZXh0LmVsZW1lbnRTdHlsZSA9IDA7CiAgICAgICAgIG5l
eHRDb250ZXh0LmVsZW1lbnRQYXJlbnRTdHlsZSA9IDA7Ci0gICAgICAgIHJldHVybiBjaGVja1Nl
bGVjdG9yKG5leHRDb250ZXh0LCBpZ25vcmVEeW5hbWljUHNldWRvLCBoYXNVbmtub3duUHNldWRv
RWxlbWVudHMpOworICAgICAgICByZXR1cm4gY2hlY2tTZWxlY3RvcihuZXh0Q29udGV4dCwgaWdu
b3JlRHluYW1pY1BzZXVkbyk7CiAKICAgICBjYXNlIENTU1NlbGVjdG9yOjpEaXJlY3RBZGphY2Vu
dDoKICAgICAgICAgaWYgKG1fbW9kZSA9PSBSZXNvbHZpbmdTdHlsZSAmJiBjb250ZXh0LmVsZW1l
bnQtPnBhcmVudEVsZW1lbnQoKSkgewpAQCAtNTI5LDcgKzUyNyw3IEBAIFNlbGVjdG9yQ2hlY2tl
cjo6U2VsZWN0b3JNYXRjaCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2VsZWN0b3IoY29uc3QgU2Vs
ZWN0b3JDaGVjCiAgICAgICAgIG5leHRDb250ZXh0LmlzU3ViU2VsZWN0b3IgPSBmYWxzZTsKICAg
ICAgICAgbmV4dENvbnRleHQuZWxlbWVudFN0eWxlID0gMDsKICAgICAgICAgbmV4dENvbnRleHQu
ZWxlbWVudFBhcmVudFN0eWxlID0gMDsKLSAgICAgICAgcmV0dXJuIGNoZWNrU2VsZWN0b3IobmV4
dENvbnRleHQsIGlnbm9yZUR5bmFtaWNQc2V1ZG8sIGhhc1Vua25vd25Qc2V1ZG9FbGVtZW50cyk7
CisgICAgICAgIHJldHVybiBjaGVja1NlbGVjdG9yKG5leHRDb250ZXh0LCBpZ25vcmVEeW5hbWlj
UHNldWRvKTsKIAogICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkluZGlyZWN0QWRqYWNlbnQ6CiAgICAg
ICAgIGlmIChtX21vZGUgPT0gUmVzb2x2aW5nU3R5bGUgJiYgY29udGV4dC5lbGVtZW50LT5wYXJl
bnRFbGVtZW50KCkpIHsKQEAgLTU0Miw3ICs1NDAsNyBAQCBTZWxlY3RvckNoZWNrZXI6OlNlbGVj
dG9yTWF0Y2ggU2VsZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hl
YwogICAgICAgICBuZXh0Q29udGV4dC5lbGVtZW50U3R5bGUgPSAwOwogICAgICAgICBuZXh0Q29u
dGV4dC5lbGVtZW50UGFyZW50U3R5bGUgPSAwOwogICAgICAgICBmb3IgKDsgbmV4dENvbnRleHQu
ZWxlbWVudDsgbmV4dENvbnRleHQuZWxlbWVudCA9IG5leHRDb250ZXh0LmVsZW1lbnQtPnByZXZp
b3VzRWxlbWVudFNpYmxpbmcoKSkgewotICAgICAgICAgICAgU2VsZWN0b3JNYXRjaCBtYXRjaCA9
IGNoZWNrU2VsZWN0b3IobmV4dENvbnRleHQsIGlnbm9yZUR5bmFtaWNQc2V1ZG8sIGhhc1Vua25v
d25Qc2V1ZG9FbGVtZW50cyk7CisgICAgICAgICAgICBTZWxlY3Rvck1hdGNoIG1hdGNoID0gY2hl
Y2tTZWxlY3RvcihuZXh0Q29udGV4dCwgaWdub3JlRHluYW1pY1BzZXVkbyk7CiAgICAgICAgICAg
ICBpZiAobWF0Y2ggPT0gU2VsZWN0b3JNYXRjaGVzIHx8IG1hdGNoID09IFNlbGVjdG9yRmFpbHNB
bGxTaWJsaW5ncyB8fCBtYXRjaCA9PSBTZWxlY3RvckZhaWxzQ29tcGxldGVseSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gbWF0Y2g7CiAgICAgICAgIH07CkBAIC01NTksNyArNTU3LDcgQEAgU2Vs
ZWN0b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNoIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tTZWxlY3Rv
cihjb25zdCBTZWxlY3RvckNoZWMKICAgICAgICAgICAgICYmICEobmV4dENvbnRleHQuaGFzU2Ny
b2xsYmFyUHNldWRvICYmIG5leHRDb250ZXh0LnNlbGVjdG9yLT5tX21hdGNoID09IENTU1NlbGVj
dG9yOjpQc2V1ZG9DbGFzcykpCiAgICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0NvbXBs
ZXRlbHk7CiAgICAgICAgIG5leHRDb250ZXh0LmlzU3ViU2VsZWN0b3IgPSB0cnVlOwotICAgICAg
ICByZXR1cm4gY2hlY2tTZWxlY3RvcihuZXh0Q29udGV4dCwgZHluYW1pY1BzZXVkbywgaGFzVW5r
bm93blBzZXVkb0VsZW1lbnRzKTsKKyAgICAgICAgcmV0dXJuIGNoZWNrU2VsZWN0b3IobmV4dENv
bnRleHQsIGR5bmFtaWNQc2V1ZG8pOwogCiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2hhZG93RGVz
Y2VuZGFudDoKICAgICAgICAgewpAQCAtNTczLDcgKzU3MSw3IEBAIFNlbGVjdG9yQ2hlY2tlcjo6
U2VsZWN0b3JNYXRjaCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2VsZWN0b3IoY29uc3QgU2VsZWN0
b3JDaGVjCiAgICAgICAgICAgICBuZXh0Q29udGV4dC5pc1N1YlNlbGVjdG9yID0gZmFsc2U7CiAg
ICAgICAgICAgICBuZXh0Q29udGV4dC5lbGVtZW50U3R5bGUgPSAwOwogICAgICAgICAgICAgbmV4
dENvbnRleHQuZWxlbWVudFBhcmVudFN0eWxlID0gMDsKLSAgICAgICAgICAgIHJldHVybiBjaGVj
a1NlbGVjdG9yKG5leHRDb250ZXh0LCBpZ25vcmVEeW5hbWljUHNldWRvLCBoYXNVbmtub3duUHNl
dWRvRWxlbWVudHMpOworICAgICAgICAgICAgcmV0dXJuIGNoZWNrU2VsZWN0b3IobmV4dENvbnRl
eHQsIGlnbm9yZUR5bmFtaWNQc2V1ZG8pOwogICAgICAgICB9CiAgICAgfQogCkBAIC05NzksMTAg
Kzk3Nyw5IEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKGNvbnN0IFNl
bGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0LCBjCiAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQgc3ViQ29udGV4dChjb250ZXh0KTsKICAg
ICAgICAgICAgICAgICBzdWJDb250ZXh0LmlzU3ViU2VsZWN0b3IgPSB0cnVlOwotICAgICAgICAg
ICAgICAgIGJvb2wgaGFzVW5rbm93blBzZXVkb0VsZW1lbnRzID0gZmFsc2U7CiAgICAgICAgICAg
ICAgICAgUHNldWRvSWQgaWdub3JlRHluYW1pY1BzZXVkbyA9IE5PUFNFVURPOwogICAgICAgICAg
ICAgICAgIGZvciAoc3ViQ29udGV4dC5zZWxlY3RvciA9IHNlbGVjdG9yLT5zZWxlY3Rvckxpc3Qo
KS0+Zmlyc3QoKTsgc3ViQ29udGV4dC5zZWxlY3Rvcjsgc3ViQ29udGV4dC5zZWxlY3RvciA9IENT
U1NlbGVjdG9yTGlzdDo6bmV4dChzdWJDb250ZXh0LnNlbGVjdG9yKSkgewotICAgICAgICAgICAg
ICAgICAgICBpZiAoY2hlY2tTZWxlY3RvcihzdWJDb250ZXh0LCBpZ25vcmVEeW5hbWljUHNldWRv
LCBoYXNVbmtub3duUHNldWRvRWxlbWVudHMpID09IFNlbGVjdG9yTWF0Y2hlcykKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGNoZWNrU2VsZWN0b3Ioc3ViQ29udGV4dCwgaWdub3JlRHluYW1pY1Bz
ZXVkbykgPT0gU2VsZWN0b3JNYXRjaGVzKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1Nl
bGVjdG9yQ2hlY2tlci5oCmluZGV4IDllYWRhZGE1OWYwNmVkZGZhYzg2NjFjOWI1NjNhMTA5OWE3
MjhiOTguLjliZGI2NjliMjQ2ZWU2NDNkNWUyZWUyMmI1YTFhMjRlZTA5MThlNmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAg
IH07CiAKICAgICBib29sIGNoZWNrU2VsZWN0b3IoQ1NTU2VsZWN0b3IqLCBFbGVtZW50KiwgYm9v
bCBpc0Zhc3RDaGVja2FibGVTZWxlY3RvciA9IGZhbHNlKSBjb25zdDsKLSAgICBTZWxlY3Rvck1h
dGNoIGNoZWNrU2VsZWN0b3IoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmLCBQc2V1ZG9J
ZCYsIGJvb2wmIGhhc1Vua25vd25Qc2V1ZG9FbGVtZW50cykgY29uc3Q7CisgICAgU2VsZWN0b3JN
YXRjaCBjaGVja1NlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiwgUHNldWRv
SWQmKSBjb25zdDsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBTaWJsaW5nVHJhdmVyc2FsU3RyYXRl
Z3k+CiAgICAgYm9vbCBjaGVja09uZVNlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250
ZXh0JiwgY29uc3QgU2libGluZ1RyYXZlcnNhbFN0cmF0ZWd5JikgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCBiOGNkZTVkMjIxNTI3ZGYzMDhkMzlmZjA0MmEz
OTI4MjhiMjNjMzczLi42YTk4ZmVjMTEwNDA4NDU1M2E4OWIwNTkzMzc3N2Y0MDI5NzJmN2Y1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0yNzMsNyArMjczLDYgQEAgU3R5
bGVSZXNvbHZlcjo6U3R5bGVSZXNvbHZlcihEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgbWF0Y2hB
dXRob3JBbmRVc2VyU3R5bGVzKQogICAgICwgbV9tYXRjaEF1dGhvckFuZFVzZXJTdHlsZXMobWF0
Y2hBdXRob3JBbmRVc2VyU3R5bGVzKQogICAgICwgbV9zYW1lT3JpZ2luT25seShmYWxzZSkKICAg
ICAsIG1fZGlzdHJpYnV0ZWRUb0luc2VydGlvblBvaW50KGZhbHNlKQotICAgICwgbV9oYXNVbmtu
b3duUHNldWRvRWxlbWVudHMoZmFsc2UpCiAgICAgLCBtX2ZvbnRTZWxlY3RvcihDU1NGb250U2Vs
ZWN0b3I6OmNyZWF0ZShkb2N1bWVudCkpCiAgICAgLCBtX2FwcGx5UHJvcGVydHlUb1JlZ3VsYXJT
dHlsZSh0cnVlKQogICAgICwgbV9hcHBseVByb3BlcnR5VG9WaXNpdGVkTGlua1N0eWxlKGZhbHNl
KQpAQCAtNjM3LDExICs2MzYsNTYgQEAgaW5saW5lIHZvaWQgU3R5bGVSZXNvbHZlcjo6YWRkRWxl
bWVudFN0eWxlUHJvcGVydGllcyhNYXRjaFJlc3VsdCYgcmVzdWx0LCBjb25zdAogICAgICAgICBy
ZXN1bHQuaXNDYWNoZWFibGUgPSBmYWxzZTsKIH0KIAorY2xhc3MgTWF0Y2hpbmdVQVJ1bGVzU2Nv
cGUgeworcHVibGljOgorICAgIE1hdGNoaW5nVUFSdWxlc1Njb3BlKCk7CisgICAgfk1hdGNoaW5n
VUFSdWxlc1Njb3BlKCk7CisKKyAgICBzdGF0aWMgYm9vbCBpc01hdGNoaW5nVUFSdWxlcygpOwor
Citwcml2YXRlOgorICAgIHN0YXRpYyBib29sIG1fbWF0Y2hpbmdVQVJ1bGVzOworfTsKKworTWF0
Y2hpbmdVQVJ1bGVzU2NvcGU6Ok1hdGNoaW5nVUFSdWxlc1Njb3BlKCkKK3sKKyAgICBBU1NFUlQo
IW1fbWF0Y2hpbmdVQVJ1bGVzKTsKKyAgICBtX21hdGNoaW5nVUFSdWxlcyA9IHRydWU7Cit9CisK
K01hdGNoaW5nVUFSdWxlc1Njb3BlOjp+TWF0Y2hpbmdVQVJ1bGVzU2NvcGUoKQoreworICAgIG1f
bWF0Y2hpbmdVQVJ1bGVzID0gZmFsc2U7Cit9CisKK2lubGluZSBib29sIE1hdGNoaW5nVUFSdWxl
c1Njb3BlOjppc01hdGNoaW5nVUFSdWxlcygpCit7CisgICAgcmV0dXJuIG1fbWF0Y2hpbmdVQVJ1
bGVzOworfQorCitib29sIE1hdGNoaW5nVUFSdWxlc1Njb3BlOjptX21hdGNoaW5nVUFSdWxlcyA9
IGZhbHNlOworCiB2b2lkIFN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVzKFJ1bGVT
ZXQqIHJ1bGVzLCBpbnQmIGZpcnN0UnVsZUluZGV4LCBpbnQmIGxhc3RSdWxlSW5kZXgsIGNvbnN0
IE1hdGNoT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBBU1NFUlQocnVsZXMpOwogICAgIEFTU0VS
VChtX2VsZW1lbnQpOwogCisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBwc2V1ZG9JZCA9IG1fZWxl
bWVudC0+c2hhZG93UHNldWRvSWQoKTsKKyAgICBpZiAoIXBzZXVkb0lkLmlzRW1wdHkoKSkgewor
ICAgICAgICBBU1NFUlQobV9zdHlsZWRFbGVtZW50KTsKKyAgICAgICAgY29sbGVjdE1hdGNoaW5n
UnVsZXNGb3JMaXN0KHJ1bGVzLT5zaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMocHNldWRvSWQuaW1w
bCgpKSwgZmlyc3RSdWxlSW5kZXgsIGxhc3RSdWxlSW5kZXgsIG9wdGlvbnMpOworICAgIH0KKwor
ICAgIC8vIENoZWNrIHdoZXRoZXIgb3RoZXIgdHlwZXMgb2YgcnVsZXMgYXJlIGFwcGxpY2FibGUg
aW4gdGhlIGN1cnJlbnQgdHJlZSBzY29wZS4gQ3JpdGVyaWEgZm9yIHRoaXM6CisgICAgLy8gYSkg
aXQncyBhIFVBIHJ1bGUKKyAgICAvLyBiKSB0aGUgdHJlZSBzY29wZSBhbGxvd3MgYXV0aG9yIHJ1
bGVzCisgICAgLy8gYykgdGhlIHJ1bGVzIGNvbWVzIGZyb20gYSBzY29wZWQgc3R5bGUgc2hlZXQg
d2l0aGluIHRoZSBzYW1lIHRyZWUgc2NvcGUKKyAgICBUcmVlU2NvcGUqIHRyZWVTY29wZSA9IG1f
ZWxlbWVudC0+dHJlZVNjb3BlKCk7CisgICAgaWYgKCFNYXRjaGluZ1VBUnVsZXNTY29wZTo6aXNN
YXRjaGluZ1VBUnVsZXMoKQorICAgICAgICAmJiAhdHJlZVNjb3BlLT5hcHBseUF1dGhvclN0eWxl
cygpCisgICAgICAgICYmICghb3B0aW9ucy5zY29wZSB8fCBvcHRpb25zLnNjb3BlLT50cmVlU2Nv
cGUoKSAhPSB0cmVlU2NvcGUpKQorICAgICAgICByZXR1cm47CisKICAgICAvLyBXZSBuZWVkIHRv
IGNvbGxlY3QgdGhlIHJ1bGVzIGZvciBpZCwgY2xhc3MsIHRhZywgYW5kIGV2ZXJ5dGhpbmcgZWxz
ZSBpbnRvIGEgYnVmZmVyIGFuZAogICAgIC8vIHRoZW4gc29ydCB0aGUgYnVmZmVyLgogICAgIGlm
IChtX2VsZW1lbnQtPmhhc0lEKCkpCkBAIC02NTAsMTEgKzY5NCw3IEBAIHZvaWQgU3R5bGVSZXNv
bHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXMoUnVsZVNldCogcnVsZXMsIGludCYgZmlyc3RSdWxl
SW5kZXgsIGluCiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9zdHlsZWRFbGVtZW50
LT5jbGFzc05hbWVzKCkuc2l6ZSgpOyArK2kpCiAgICAgICAgICAgICBjb2xsZWN0TWF0Y2hpbmdS
dWxlc0Zvckxpc3QocnVsZXMtPmNsYXNzUnVsZXMobV9zdHlsZWRFbGVtZW50LT5jbGFzc05hbWVz
KClbaV0uaW1wbCgpKSwgZmlyc3RSdWxlSW5kZXgsIGxhc3RSdWxlSW5kZXgsIG9wdGlvbnMpOwog
ICAgIH0KLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIHBzZXVkb0lkID0gbV9lbGVtZW50LT5zaGFk
b3dQc2V1ZG9JZCgpOwotICAgIGlmICghcHNldWRvSWQuaXNFbXB0eSgpKSB7Ci0gICAgICAgIEFT
U0VSVChtX3N0eWxlZEVsZW1lbnQpOwotICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxp
c3QocnVsZXMtPnNoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcyhwc2V1ZG9JZC5pbXBsKCkpLCBmaXJz
dFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCwgb3B0aW9ucyk7Ci0gICAgfQorCiAgICAgaWYgKG1f
ZWxlbWVudC0+aXNMaW5rKCkpCiAgICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChy
dWxlcy0+bGlua1BzZXVkb0NsYXNzUnVsZXMoKSwgZmlyc3RSdWxlSW5kZXgsIGxhc3RSdWxlSW5k
ZXgsIG9wdGlvbnMpOwogICAgIGlmIChtX2NoZWNrZXIubWF0Y2hlc0ZvY3VzUHNldWRvQ2xhc3Mo
bV9lbGVtZW50KSkKQEAgLTgxOCw0MiArODU4LDExIEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6bWF0
Y2hVQVJ1bGVzKE1hdGNoUmVzdWx0JiByZXN1bHQsIFJ1bGVTZXQqIHJ1bGVzKQogICAgIHNvcnRB
bmRUcmFuc2Zlck1hdGNoZWRSdWxlcyhyZXN1bHQpOwogfQogCi1jbGFzcyBNYXRjaGluZ1VBUnVs
ZXNTY29wZSB7Ci1wdWJsaWM6Ci0gICAgTWF0Y2hpbmdVQVJ1bGVzU2NvcGUoKTsKLSAgICB+TWF0
Y2hpbmdVQVJ1bGVzU2NvcGUoKTsKLQotICAgIHN0YXRpYyBib29sIGlzTWF0Y2hpbmdVQVJ1bGVz
KCk7Ci0KLXByaXZhdGU6Ci0gICAgc3RhdGljIGJvb2wgbV9tYXRjaGluZ1VBUnVsZXM7Ci19Owot
Ci1NYXRjaGluZ1VBUnVsZXNTY29wZTo6TWF0Y2hpbmdVQVJ1bGVzU2NvcGUoKQotewotICAgIEFT
U0VSVCghbV9tYXRjaGluZ1VBUnVsZXMpOwotICAgIG1fbWF0Y2hpbmdVQVJ1bGVzID0gdHJ1ZTsK
LX0KLQotTWF0Y2hpbmdVQVJ1bGVzU2NvcGU6On5NYXRjaGluZ1VBUnVsZXNTY29wZSgpCi17Ci0g
ICAgbV9tYXRjaGluZ1VBUnVsZXMgPSBmYWxzZTsKLX0KLQotaW5saW5lIGJvb2wgTWF0Y2hpbmdV
QVJ1bGVzU2NvcGU6OmlzTWF0Y2hpbmdVQVJ1bGVzKCkKLXsKLSAgICByZXR1cm4gbV9tYXRjaGlu
Z1VBUnVsZXM7Ci19Ci0KLWJvb2wgTWF0Y2hpbmdVQVJ1bGVzU2NvcGU6Om1fbWF0Y2hpbmdVQVJ1
bGVzID0gZmFsc2U7Ci0KIHZvaWQgU3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNG
b3JMaXN0KGNvbnN0IFZlY3RvcjxSdWxlRGF0YT4qIHJ1bGVzLCBpbnQmIGZpcnN0UnVsZUluZGV4
LCBpbnQmIGxhc3RSdWxlSW5kZXgsIGNvbnN0IE1hdGNoT3B0aW9ucyYgb3B0aW9ucykKIHsKICAg
ICBpZiAoIXJ1bGVzKQogICAgICAgICByZXR1cm47CiAKLSAgICBUcmVlU2NvcGUqIHRyZWVTY29w
ZSA9IG1fZWxlbWVudC0+dHJlZVNjb3BlKCk7Ci0KICAgICAvLyBJbiBzb21lIGNhc2VzIHdlIG1h
eSBlbmQgdXAgbG9va2luZyB1cCBzdHlsZSBmb3IgcmFuZG9tIGVsZW1lbnRzIGluIHRoZSBtaWRk
bGUgb2YgYSByZWN1cnNpdmUgdHJlZSByZXNvbHZlLgogICAgIC8vIEFuY2VzdG9yIGlkZW50aWZp
ZXIgZmlsdGVyIHdvbid0IGJlIHVwLXRvLWRhdGUgaW4gdGhhdCBjYXNlIGFuZCB3ZSBjYW4ndCB1
c2UgdGhlIGZhc3QgcGF0aC4KICAgICBib29sIGNhblVzZUZhc3RSZWplY3QgPSBtX2NoZWNrZXIu
cGFyZW50U3RhY2tJc0NvbnNpc3RlbnQobV9wYXJlbnROb2RlKTsKQEAgLTg2NywxOSArODc2LDYg
QEAgdm9pZCBTdHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QoY29uc3Qg
VmVjdG9yPFJ1bGVEYXRhPiogcnVsZXMsIGkKICAgICAgICAgU3R5bGVSdWxlKiBydWxlID0gcnVs
ZURhdGEucnVsZSgpOwogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29v
a2llID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsTWF0Y2hSdWxlKGRvY3VtZW50KCks
IHJ1bGUpOwogICAgICAgICBpZiAoY2hlY2tTZWxlY3RvcihydWxlRGF0YSwgb3B0aW9ucy5zY29w
ZSkpIHsKLSAgICAgICAgICAgIC8vIENoZWNrIHdoZXRoZXIgdGhlIHJ1bGUgaXMgYXBwbGljYWJs
ZSBpbiB0aGUgY3VycmVudCB0cmVlIHNjb3BlLiBDcml0ZXJpYSBmb3IgdGhpczoKLSAgICAgICAg
ICAgIC8vIGEpIGl0J3MgYSBVQSBydWxlCi0gICAgICAgICAgICAvLyBiKSB0aGUgdHJlZSBzY29w
ZSBhbGxvd3MgYXV0aG9yIHJ1bGVzCi0gICAgICAgICAgICAvLyBjKSB0aGUgcnVsZXMgY29tZXMg
ZnJvbSBhIHNjb3BlZCBzdHlsZSBzaGVldCB3aXRoaW4gdGhlIHNhbWUgdHJlZSBzY29wZQotICAg
ICAgICAgICAgLy8gZCkgdGhlIHJ1bGUgY29udGFpbnMgc2hhZG93LUlEIHBzZXVkbyBlbGVtZW50
cwotICAgICAgICAgICAgaWYgKCFNYXRjaGluZ1VBUnVsZXNTY29wZTo6aXNNYXRjaGluZ1VBUnVs
ZXMoKQotICAgICAgICAgICAgICAgICYmICF0cmVlU2NvcGUtPmFwcGx5QXV0aG9yU3R5bGVzKCkK
LSAgICAgICAgICAgICAgICAmJiAoIW9wdGlvbnMuc2NvcGUgfHwgb3B0aW9ucy5zY29wZS0+dHJl
ZVNjb3BlKCkgIT0gdHJlZVNjb3BlKQotICAgICAgICAgICAgICAgICYmICFtX2hhc1Vua25vd25Q
c2V1ZG9FbGVtZW50cykgewotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRNYXRjaFJ1bGUoY29va2llLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBJZiB0aGUgcnVsZSBoYXMgbm8gcHJv
cGVydGllcyB0byBhcHBseSwgdGhlbiBpZ25vcmUgaXQgaW4gdGhlIG5vbi1kZWJ1ZyBtb2RlLgog
ICAgICAgICAgICAgY29uc3QgU3R5bGVQcm9wZXJ0eVNldCogcHJvcGVydGllcyA9IHJ1bGUtPnBy
b3BlcnRpZXMoKTsKICAgICAgICAgICAgIGlmICghcHJvcGVydGllcyB8fCAocHJvcGVydGllcy0+
aXNFbXB0eSgpICYmICFvcHRpb25zLmluY2x1ZGVFbXB0eVJ1bGVzKSkgewpAQCAtMjE5Niw3ICsy
MTkyLDYgQEAgUGFzc1JlZlB0cjxDU1NSdWxlTGlzdD4gU3R5bGVSZXNvbHZlcjo6cHNldWRvU3R5
bGVSdWxlc0ZvckVsZW1lbnQoRWxlbWVudCogZSwgUHMKIGlubGluZSBib29sIFN0eWxlUmVzb2x2
ZXI6OmNoZWNrU2VsZWN0b3IoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhLCBjb25zdCBDb250YWlu
ZXJOb2RlKiBzY29wZSkKIHsKICAgICBtX2R5bmFtaWNQc2V1ZG8gPSBOT1BTRVVETzsKLSAgICBt
X2hhc1Vua25vd25Qc2V1ZG9FbGVtZW50cyA9IGZhbHNlOwogCiAgICAgaWYgKHJ1bGVEYXRhLmhh
c0Zhc3RDaGVja2FibGVTZWxlY3RvcigpKSB7CiAgICAgICAgIC8vIFdlIGtub3cgdGhpcyBzZWxl
Y3RvciBkb2VzIG5vdCBpbmNsdWRlIGFueSBwc2V1ZG8gZWxlbWVudHMuCkBAIC0yMjIwLDcgKzIy
MTUsNyBAQCBpbmxpbmUgYm9vbCBTdHlsZVJlc29sdmVyOjpjaGVja1NlbGVjdG9yKGNvbnN0IFJ1
bGVEYXRhJiBydWxlRGF0YSwgY29uc3QgQ29udGFpbgogICAgIGNvbnRleHQuZWxlbWVudFBhcmVu
dFN0eWxlID0gbV9wYXJlbnROb2RlID8gbV9wYXJlbnROb2RlLT5yZW5kZXJTdHlsZSgpIDogMDsK
ICAgICBjb250ZXh0LnNjb3BlID0gc2NvcGU7CiAgICAgY29udGV4dC5wc2V1ZG9TdHlsZSA9IG1f
cHNldWRvU3R5bGU7Ci0gICAgU2VsZWN0b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNoIG1hdGNoID0g
bV9jaGVja2VyLmNoZWNrU2VsZWN0b3IoY29udGV4dCwgbV9keW5hbWljUHNldWRvLCBtX2hhc1Vu
a25vd25Qc2V1ZG9FbGVtZW50cyk7CisgICAgU2VsZWN0b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNo
IG1hdGNoID0gbV9jaGVja2VyLmNoZWNrU2VsZWN0b3IoY29udGV4dCwgbV9keW5hbWljUHNldWRv
KTsKICAgICBpZiAobWF0Y2ggIT0gU2VsZWN0b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNoZXMpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAobV9wc2V1ZG9TdHlsZSAhPSBOT1BTRVVETyAm
JiBtX3BzZXVkb1N0eWxlICE9IG1fZHluYW1pY1BzZXVkbykKQEAgLTIyMzMsNyArMjIyOCw2IEBA
IGJvb2wgU3R5bGVSZXNvbHZlcjo6Y2hlY2tSZWdpb25TZWxlY3RvcihDU1NTZWxlY3RvciogcmVn
aW9uU2VsZWN0b3IsIEVsZW1lbnQqIHJlCiAgICAgaWYgKCFyZWdpb25TZWxlY3RvciB8fCAhcmVn
aW9uRWxlbWVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9oYXNVbmtub3duUHNl
dWRvRWxlbWVudHMgPSBmYWxzZTsKICAgICBtX3BzZXVkb1N0eWxlID0gTk9QU0VVRE87CiAKICAg
ICBmb3IgKENTU1NlbGVjdG9yKiBzID0gcmVnaW9uU2VsZWN0b3I7IHM7IHMgPSBDU1NTZWxlY3Rv
ckxpc3Q6Om5leHQocykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCAwMGYwYWRk
ZTZlMTY2YjVlMjBiODg3YjNmOGQ3YzBkNTIwYTcyNzY3Li4xY2I5MDk2YzhmNGMyZDlmYWUzMTFk
ZWFkZGRhNDQxY2E1YTVlYjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTM1
Nyw3ICszNTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc29ydE1hdGNoZWRSdWxlcygpOwogICAg
IHZvaWQgc29ydEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKE1hdGNoUmVzdWx0Jik7CiAKLSAgICBi
b29sIGNoZWNrU2VsZWN0b3IoY29uc3QgUnVsZURhdGEmLCBjb25zdCBDb250YWluZXJOb2RlKiBz
Y29wZSA9IDApOworICAgIGJvb2wgY2hlY2tTZWxlY3Rvcihjb25zdCBSdWxlRGF0YSYsIGNvbnN0
IENvbnRhaW5lck5vZGUqIHNjb3BlKTsKICAgICBib29sIGNoZWNrUmVnaW9uU2VsZWN0b3IoQ1NT
U2VsZWN0b3IqIHJlZ2lvblNlbGVjdG9yLCBFbGVtZW50KiByZWdpb25FbGVtZW50KTsKICAgICB2
b2lkIGFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoY29uc3QgTWF0Y2hSZXN1bHQmLCBjb25zdCBFbGVt
ZW50Kik7CiAgICAgZW51bSBTdHlsZUFwcGxpY2F0aW9uUGFzcyB7CkBAIC00OTIsNyArNDkyLDYg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fbWF0Y2hBdXRob3JBbmRVc2VyU3R5bGVzOwogICAgIGJv
b2wgbV9zYW1lT3JpZ2luT25seTsKICAgICBib29sIG1fZGlzdHJpYnV0ZWRUb0luc2VydGlvblBv
aW50OwotICAgIGJvb2wgbV9oYXNVbmtub3duUHNldWRvRWxlbWVudHM7CiAKICAgICBSZWZQdHI8
Q1NTRm9udFNlbGVjdG9yPiBtX2ZvbnRTZWxlY3RvcjsKICAgICBWZWN0b3I8T3duUHRyPE1lZGlh
UXVlcnlSZXN1bHQ+ID4gbV92aWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHRzOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>