<?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>110276</bug_id>
          
          <creation_ts>2013-02-19 16:02:10 -0800</creation_ts>
          <short_desc>Fix crash in preloading scanning base tags with no href attribute for background parser</short_desc>
          <delta_ts>2013-02-19 17:22:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>106127</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Gentilcore">tonyg</reporter>
          <assigned_to name="Tony Gentilcore">tonyg</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>836904</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-19 16:02:10 -0800</bug_when>
    <thetext>Fix crash in preloading scanning base tags with no href attribute for background parser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836908</commentid>
    <comment_count>1</comment_count>
      <attachid>189193</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-19 16:06:42 -0800</bug_when>
    <thetext>Created attachment 189193
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836919</commentid>
    <comment_count>2</comment_count>
      <attachid>189193</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-19 16:12:01 -0800</bug_when>
    <thetext>Comment on attachment 189193
Patch

I was afraid of this.  I think this is a good change, but I don&apos;t really like how we&apos;re tying HTMLToken and CompactToken to the same API via the PreloadScanner template. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836921</commentid>
    <comment_count>3</comment_count>
      <attachid>189193</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-19 16:12:39 -0800</bug_when>
    <thetext>Comment on attachment 189193
Patch

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

&gt; Source/WebCore/html/parser/CompactHTMLToken.h:86
&gt; +    Vector&lt;Attribute&gt; m_attributes;

Attribute contains AtomicString and QualifiedName, which means it&apos;s not save to move between threads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836923</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-19 16:13:02 -0800</bug_when>
    <thetext>s/save/safe/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836930</commentid>
    <comment_count>5</comment_count>
      <attachid>189193</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-19 16:16:58 -0800</bug_when>
    <thetext>Comment on attachment 189193
Patch

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

&gt;&gt; Source/WebCore/html/parser/CompactHTMLToken.h:86
&gt;&gt; +    Vector&lt;Attribute&gt; m_attributes;
&gt; 
&gt; Attribute contains AtomicString and QualifiedName, which means it&apos;s not save to move between threads.

This is CompactHTMLToken::Attribute which contains only Strings. I can change all occurrences of Attribute to CompactHTMLToken::Attribute to be more explicit to make it more readable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836934</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-19 16:18:40 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 189193 [details])
&gt; I was afraid of this.  I think this is a good change, but I don&apos;t really like how we&apos;re tying HTMLToken and CompactToken to the same API via the PreloadScanner template. :(

Would you prefer I undo it? I thought it was worth having the same API in order to avoid the code duplication. It&apos;s also possible a more similar API enhances readability.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836948</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-19 16:29:11 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 189193 [details] [details])
&gt; &gt; I was afraid of this.  I think this is a good change, but I don&apos;t really like how we&apos;re tying HTMLToken and CompactToken to the same API via the PreloadScanner template. :(
&gt; 
&gt; Would you prefer I undo it? I thought it was worth having the same API in order to avoid the code duplication. It&apos;s also possible a more similar API enhances readability.

No, this is the right change.  I just don&apos;t like the idea that we&apos;re limited to HTMLToken&apos;s API in CompactToken::Attribute.  But when we run up against those limits, then we can re-visit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836954</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-19 16:35:34 -0800</bug_when>
    <thetext>Ah!  Ignore me.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836960</commentid>
    <comment_count>9</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-19 16:37:39 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Ah!  Ignore me.  :)

Do you want to review now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836967</commentid>
    <comment_count>10</comment_count>
      <attachid>189193</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-19 16:42:02 -0800</bug_when>
    <thetext>Comment on attachment 189193
Patch

By the power of justice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837006</commentid>
    <comment_count>11</comment_count>
      <attachid>189193</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 17:22:30 -0800</bug_when>
    <thetext>Comment on attachment 189193
Patch

Clearing flags on attachment: 189193

Committed r143415: &lt;http://trac.webkit.org/changeset/143415&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837007</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 17:22:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189193</attachid>
            <date>2013-02-19 16:06:42 -0800</date>
            <delta_ts>2013-02-19 17:22:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110276-20130219160304.patch</filename>
            <type>text/plain</type>
            <size>14262</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMzgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU2NjU2NjJkMGY2NTc5
MDVmY2E2MWU5OGEzMTk0NjZmODRjZDkzYi4uZjA1MjFhYTllNGVhOGVlZjQzYTkzMTI4ODk5YzU2
NDk4NmY5MThkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEzLTAyLTE5ICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRml4IGNyYXNoIGlu
IHByZWxvYWRpbmcgc2Nhbm5pbmcgYmFzZSB0YWdzIHdpdGggbm8gaHJlZiBhdHRyaWJ1dGUgZm9y
IGJhY2tncm91bmQgcGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTAyNzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQcmV2aW91c2x5IGEgPGJhc2U+IHRhZyB3aXRob3V0IGFuIGhyZWYgYXR0cmli
dXRlIChsaWtlIHRoZSBvbmUgaW4gZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvc2V0LWhyZWYt
YXR0cmlidXRlLXJlYmFzZS5odG1sKQorICAgICAgICB3b3VsZCBjcmFzaCB0aGUgYmFja2dyb3Vu
ZCBwYXJzZXIncyBwcmVsb2FkIHNjYW5uZXIuCisKKyAgICAgICAgVG8gZml4IHRoYXQsIHdlIG9u
bHkgY2FsbCBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoKSBpZiB0aGUgaHJlZiBh
dHRyaWJ1dGUgaXMgbm9uLW51bGwuIFRoaXMgbWF0Y2hlcyB0aGUgbWFpbiB0aHJlYWQgcGFyc2Vy
LgorCisgICAgICAgIEFsb25nIHdpdGggdGhpcywgSSBkZWNpZGVkIHRvIHRlbXBsYXRpemUgdXBk
YXRlUHJlZGljdGVkQmFzZVVSTCgpIHNvIHRoYXQgdGhlIG1haW4gYW5kIGJhY2tncm91bmQgcGFy
c2VyIGNhbiBzaGFyZSB0aGUgc2FtZSBpbXBsLgorCisgICAgICAgIFRoaXMgcmVxdWlyZWQgbWFr
aW5nIENvbXBhY3RIVE1MVG9rZW4gYW5kIEhUTUxUb2tlbiBhIGxpdHRsZSBtb3JlIHNpbWlsYXI6
CisgICAgICAgIDEuIEdpdmUgSFRNTFRva2VuIGEgZ2V0QXR0cmlidXRlSXRlbSgpIG1ldGhvZC4K
KyAgICAgICAgMi4gTW92ZSBDb21wYWN0QXR0cmlidXRlIHRvIENvbXBhY3RIVE1MVG9rZW46OkF0
dHJpYnV0ZSBhbmQgbWFrZSBpdCBhIHN0cnVjdC4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVj
YXVzZSBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogaHRtbC9wYXJzZXIv
QXRvbWljSFRNTFRva2VuLmg6CisgICAgICAgIChXZWJDb3JlOjpBdG9taWNIVE1MVG9rZW46OkF0
b21pY0hUTUxUb2tlbik6CisgICAgICAgICogaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5j
cHA6CisgICAgICAgIChTYW1lU2l6ZUFzQ29tcGFjdEhUTUxUb2tlbik6CisgICAgICAgIChXZWJD
b3JlOjpDb21wYWN0SFRNTFRva2VuOjpDb21wYWN0SFRNTFRva2VuKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbXBhY3RIVE1MVG9rZW46OmdldEF0dHJpYnV0ZUl0ZW0pOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcGFjdEhUTUxUb2tlbjo6aXNTYWZlVG9TZW5kVG9Bbm90aGVyVGhyZWFkKToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2VuLmg6CisgICAgICAgIChXZWJDb3JlOjpD
b21wYWN0SFRNTFRva2VuOjpBdHRyaWJ1dGU6OkF0dHJpYnV0ZSk6CisgICAgICAgIChBdHRyaWJ1
dGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGFjdEhUTUxUb2tlbjo6YXR0cmlidXRlcyk6Cisg
ICAgICAgIChDb21wYWN0SFRNTFRva2VuKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBhY3RIVE1M
VG9rZW46OnB1YmxpY0lkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGFjdEhUTUxU
b2tlbjo6c3lzdGVtSWRlbnRpZmllcik6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFBhcnNl
cklkaW9tcy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpzdHJpcExl
YWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxQ
cmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUb2tlblByZWxvYWRTY2FubmVy
OjpTdGFydFRhZ1NjYW5uZXI6OnByb2Nlc3NBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6VG9rZW5QcmVsb2FkU2Nhbm5lcjo6dXBkYXRlUHJlZGljdGVk
QmFzZVVSTCk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmg6Cisg
ICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRva2VuLmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VG9rZW46OmdldEF0dHJpYnV0ZUl0ZW0pOgorICAgICAgICAoSFRNTFRva2VuKToKKwogMjAxMy0w
Mi0xOSAgRWxsaW90dCBTcHJlaG4gIDxlc3ByZWhuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZW1vdmUgUmVuZGVyVGV4dDo6dXBkYXRlVGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvQXRvbWljSFRNTFRva2VuLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9BdG9taWNIVE1MVG9rZW4uaAppbmRleCAwODQ5MWUzNWFhYjEzMWNlNTc3YjdmYzI1MGNkNGI0
YzgwNjA4NTcwLi4zYjRiMTUxNWRjN2QxZWZjNjA1ODgyNGU5ZDAxMWRiNTdkOTQ0YzI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9BdG9taWNIVE1MVG9rZW4uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9BdG9taWNIVE1MVG9rZW4uaApAQCAtMjAxLDgg
KzIwMSw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBIVE1M
VG9rZW46OlN0YXJ0VGFnOgogICAgICAgICAgICAgbV9hdHRyaWJ1dGVzLnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkodG9rZW4uYXR0cmlidXRlcygpLnNpemUoKSk7Ci0gICAgICAgICAgICBmb3IgKFZl
Y3RvcjxDb21wYWN0QXR0cmlidXRlPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSB0b2tlbi5hdHRyaWJ1
dGVzKCkuYmVnaW4oKTsgaXQgIT0gdG9rZW4uYXR0cmlidXRlcygpLmVuZCgpOyArK2l0KQotICAg
ICAgICAgICAgICAgIG1fYXR0cmlidXRlcy5hcHBlbmQoQXR0cmlidXRlKFF1YWxpZmllZE5hbWUo
bnVsbEF0b20sIGl0LT5uYW1lKCksIG51bGxBdG9tKSwgaXQtPnZhbHVlKCkpKTsKKyAgICAgICAg
ICAgIGZvciAoVmVjdG9yPENvbXBhY3RIVE1MVG9rZW46OkF0dHJpYnV0ZT46OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gdG9rZW4uYXR0cmlidXRlcygpLmJlZ2luKCk7IGl0ICE9IHRva2VuLmF0dHJpYnV0
ZXMoKS5lbmQoKTsgKytpdCkKKyAgICAgICAgICAgICAgICBtX2F0dHJpYnV0ZXMuYXBwZW5kKEF0
dHJpYnV0ZShRdWFsaWZpZWROYW1lKG51bGxBdG9tLCBpdC0+bmFtZSwgbnVsbEF0b20pLCBpdC0+
dmFsdWUpKTsKICAgICAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCEKICAgICAgICAgY2FzZSBIVE1M
VG9rZW46OkVuZFRhZzoKICAgICAgICAgICAgIG1fc2VsZkNsb3NpbmcgPSB0b2tlbi5zZWxmQ2xv
c2luZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhU
TUxUb2tlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2Vu
LmNwcAppbmRleCAzMTMyZDI1NjhmZWRlYmNiMWFkYWZhNjYxMjg2MTIzM2MzOWYyZjc5Li41NGJj
ZDc4Y2YwMTAxOTE1NGZhY2U5MDZiNGEzOGYxZGVhMTBkMmVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2VuLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2VuLmNwcApAQCAtMzksNyArMzksNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgU2FtZVNpemVBc0NvbXBhY3RIVE1MVG9rZW4gIHsK
ICAgICB1bnNpZ25lZCBiaXRmaWVsZHM7CiAgICAgU3RyaW5nIG5hbWU7Ci0gICAgVmVjdG9yPENv
bXBhY3RBdHRyaWJ1dGU+IHZlY3RvcjsKKyAgICBWZWN0b3I8QXR0cmlidXRlPiB2ZWN0b3I7CiAg
ICAgVGV4dFBvc2l0aW9uIHRleHRQb3NpdGlvbjsKICAgICBPd25QdHI8WFNTSW5mbz4geHNzSW5m
bzsKIH07CkBAIC02MCw3ICs2MCw3IEBAIENvbXBhY3RIVE1MVG9rZW46OkNvbXBhY3RIVE1MVG9r
ZW4oY29uc3QgSFRNTFRva2VuKiB0b2tlbiwgY29uc3QgVGV4dFBvc2l0aW9uJiB0CiAgICAgICAg
IG1fZGF0YSA9IFN0cmluZyh0b2tlbi0+bmFtZSgpKTsKICAgICAgICAgLy8gVGhlcmUgaXMgb25s
eSAxIERPQ1RZUEUgdG9rZW4gcGVyIGRvY3VtZW50LCBzbyB0byBhdm9pZCBpbmNyZWFzaW5nIHRo
ZQogICAgICAgICAvLyBzaXplIG9mIENvbXBhY3RIVE1MVG9rZW4sIHdlIGp1c3QgdXNlIHRoZSBt
X2F0dHJpYnV0ZXMgdmVjdG9yLgotICAgICAgICBtX2F0dHJpYnV0ZXMuYXBwZW5kKENvbXBhY3RB
dHRyaWJ1dGUoU3RyaW5nKHRva2VuLT5wdWJsaWNJZGVudGlmaWVyKCkpLCBTdHJpbmcodG9rZW4t
PnN5c3RlbUlkZW50aWZpZXIoKSkpKTsKKyAgICAgICAgbV9hdHRyaWJ1dGVzLmFwcGVuZChBdHRy
aWJ1dGUoU3RyaW5nKHRva2VuLT5wdWJsaWNJZGVudGlmaWVyKCkpLCBTdHJpbmcodG9rZW4tPnN5
c3RlbUlkZW50aWZpZXIoKSkpKTsKICAgICAgICAgbV9kb2N0eXBlRm9yY2VzUXVpcmtzID0gdG9r
ZW4tPmZvcmNlUXVpcmtzKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTcwLDcgKzcwLDcg
QEAgQ29tcGFjdEhUTUxUb2tlbjo6Q29tcGFjdEhUTUxUb2tlbihjb25zdCBIVE1MVG9rZW4qIHRv
a2VuLCBjb25zdCBUZXh0UG9zaXRpb24mIHQKICAgICAgICAgbV9hdHRyaWJ1dGVzLnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkodG9rZW4tPmF0dHJpYnV0ZXMoKS5zaXplKCkpOwogICAgICAgICAvLyBG
SVhNRTogQXR0cmlidXRlIG5hbWVzIGFuZCB2YWx1ZXMgc2hvdWxkIGJlIDhiaXQgd2hlbiBwb3Nz
aWJsZS4KICAgICAgICAgZm9yIChWZWN0b3I8SFRNTFRva2VuOjpBdHRyaWJ1dGU+Ojpjb25zdF9p
dGVyYXRvciBpdCA9IHRva2VuLT5hdHRyaWJ1dGVzKCkuYmVnaW4oKTsgaXQgIT0gdG9rZW4tPmF0
dHJpYnV0ZXMoKS5lbmQoKTsgKytpdCkKLSAgICAgICAgICAgIG1fYXR0cmlidXRlcy5hcHBlbmQo
Q29tcGFjdEF0dHJpYnV0ZShTdHJpbmcoaXQtPm5hbWUpLCBTdHJpbmcoaXQtPnZhbHVlKSkpOwor
ICAgICAgICAgICAgbV9hdHRyaWJ1dGVzLmFwcGVuZChBdHRyaWJ1dGUoU3RyaW5nKGl0LT5uYW1l
KSwgU3RyaW5nKGl0LT52YWx1ZSkpKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIQogICAgIGNh
c2UgSFRNTFRva2VuOjpFbmRUYWc6CiAgICAgICAgIG1fc2VsZkNsb3NpbmcgPSB0b2tlbi0+c2Vs
ZkNsb3NpbmcoKTsKQEAgLTEwMiwxMCArMTAyLDEwIEBAIENvbXBhY3RIVE1MVG9rZW46OkNvbXBh
Y3RIVE1MVG9rZW4oY29uc3QgQ29tcGFjdEhUTUxUb2tlbiYgb3RoZXIpCiAgICAgICAgIG1feHNz
SW5mbyA9IGFkb3B0UHRyKG5ldyBYU1NJbmZvKCpvdGhlci5tX3hzc0luZm8pKTsKIH0KIAotY29u
c3QgQ29tcGFjdEF0dHJpYnV0ZSogQ29tcGFjdEhUTUxUb2tlbjo6Z2V0QXR0cmlidXRlSXRlbShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAorY29uc3QgQ29tcGFjdEhUTUxUb2tlbjo6
QXR0cmlidXRlKiBDb21wYWN0SFRNTFRva2VuOjpnZXRBdHRyaWJ1dGVJdGVtKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUpIGNvbnN0CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1f
YXR0cmlidXRlcy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAodGhyZWFkU2FmZU1hdGNoKG1f
YXR0cmlidXRlcy5hdChpKS5uYW1lKCksIG5hbWUpKQorICAgICAgICBpZiAodGhyZWFkU2FmZU1h
dGNoKG1fYXR0cmlidXRlcy5hdChpKS5uYW1lLCBuYW1lKSkKICAgICAgICAgICAgIHJldHVybiAm
bV9hdHRyaWJ1dGVzLmF0KGkpOwogICAgIH0KICAgICByZXR1cm4gMDsKQEAgLTExMywxMCArMTEz
LDEwIEBAIGNvbnN0IENvbXBhY3RBdHRyaWJ1dGUqIENvbXBhY3RIVE1MVG9rZW46OmdldEF0dHJp
YnV0ZUl0ZW0oY29uc3QgUXVhbGlmaWVkTmFtZSYKIAogYm9vbCBDb21wYWN0SFRNTFRva2VuOjpp
c1NhZmVUb1NlbmRUb0Fub3RoZXJUaHJlYWQoKSBjb25zdAogewotICAgIGZvciAoVmVjdG9yPENv
bXBhY3RBdHRyaWJ1dGU+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fYXR0cmlidXRlcy5iZWdpbigp
OyBpdCAhPSBtX2F0dHJpYnV0ZXMuZW5kKCk7ICsraXQpIHsKLSAgICAgICAgaWYgKCFpdC0+bmFt
ZSgpLmlzU2FmZVRvU2VuZFRvQW5vdGhlclRocmVhZCgpKQorICAgIGZvciAoVmVjdG9yPEF0dHJp
YnV0ZT46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9hdHRyaWJ1dGVzLmJlZ2luKCk7IGl0ICE9IG1f
YXR0cmlidXRlcy5lbmQoKTsgKytpdCkgeworICAgICAgICBpZiAoIWl0LT5uYW1lLmlzU2FmZVRv
U2VuZFRvQW5vdGhlclRocmVhZCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICBpZiAoIWl0LT52YWx1ZSgpLmlzU2FmZVRvU2VuZFRvQW5vdGhlclRocmVhZCgpKQorICAgICAg
ICBpZiAoIWl0LT52YWx1ZS5pc1NhZmVUb1NlbmRUb0Fub3RoZXJUaHJlYWQoKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgaWYgKG1feHNzSW5mbyAmJiAhbV94c3NJbmZv
LT5pc1NhZmVUb1NlbmRUb0Fub3RoZXJUaHJlYWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0NvbXBhY3RIVE1MVG9rZW4uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0NvbXBhY3RIVE1MVG9rZW4uaAppbmRleCA1NjIxMDQyZTgwZjVkYmI0NjZkZTE0MDMw
ODg2MzFmOWVkNjJiZTA4Li5lNmU3Y2NhZmExOTM0N2JjNzUxODZlMTRjMjVlYjk4OGExZjkyM2Vl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2Vu
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5oCkBA
IC00MiwyNCArNDIsMTkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUXVhbGlmaWVkTmFt
ZTsKIGNsYXNzIFhTU0luZm87CiAKLWNsYXNzIENvbXBhY3RBdHRyaWJ1dGUgeworY2xhc3MgQ29t
cGFjdEhUTUxUb2tlbiB7CiBwdWJsaWM6Ci0gICAgQ29tcGFjdEF0dHJpYnV0ZShjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCi0gICAgICAgIDogbV9uYW1lKG5hbWUpCi0g
ICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKLSAgICB7Ci0gICAgfQotCi0gICAgY29uc3QgU3RyaW5n
JiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9Ci0gICAgY29uc3QgU3RyaW5nJiB2YWx1
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KKyAgICBzdHJ1Y3QgQXR0cmlidXRlIHsKKyAg
ICAgICAgQXR0cmlidXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkK
KyAgICAgICAgICAgIDogbmFtZShuYW1lKQorICAgICAgICAgICAgLCB2YWx1ZSh2YWx1ZSkKKyAg
ICAgICAgeworICAgICAgICB9CiAKLXByaXZhdGU6Ci0gICAgU3RyaW5nIG1fbmFtZTsKLSAgICBT
dHJpbmcgbV92YWx1ZTsKLX07CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICBTdHJpbmcg
dmFsdWU7CisgICAgfTsKIAotY2xhc3MgQ29tcGFjdEhUTUxUb2tlbiB7Ci1wdWJsaWM6CiAgICAg
Q29tcGFjdEhUTUxUb2tlbihjb25zdCBIVE1MVG9rZW4qLCBjb25zdCBUZXh0UG9zaXRpb24mKTsK
ICAgICBDb21wYWN0SFRNTFRva2VuKGNvbnN0IENvbXBhY3RIVE1MVG9rZW4mKTsKIApAQCAtNjks
MTQgKzY0LDE0IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIGRhdGEoKSBjb25zdCB7IHJl
dHVybiBtX2RhdGE7IH0KICAgICBib29sIHNlbGZDbG9zaW5nKCkgY29uc3QgeyByZXR1cm4gbV9z
ZWxmQ2xvc2luZzsgfQogICAgIGJvb2wgaXNBbGw4Qml0RGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNBbGw4Qml0RGF0YTsgfQotICAgIGNvbnN0IFZlY3RvcjxDb21wYWN0QXR0cmlidXRlPiYgYXR0
cmlidXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlczsgfQotICAgIGNvbnN0IENvbXBh
Y3RBdHRyaWJ1dGUqIGdldEF0dHJpYnV0ZUl0ZW0oY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0
OworICAgIGNvbnN0IFZlY3RvcjxBdHRyaWJ1dGU+JiBhdHRyaWJ1dGVzKCkgY29uc3QgeyByZXR1
cm4gbV9hdHRyaWJ1dGVzOyB9CisgICAgY29uc3QgQXR0cmlidXRlKiBnZXRBdHRyaWJ1dGVJdGVt
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdDsKICAgICBjb25zdCBUZXh0UG9zaXRpb24mIHRl
eHRQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dFBvc2l0aW9uOyB9CiAKICAgICAvLyBU
aGVyZSBpcyBvbmx5IDEgRE9DVFlQRSB0b2tlbiBwZXIgZG9jdW1lbnQsIHNvIHRvIGF2b2lkIGlu
Y3JlYXNpbmcgdGhlCiAgICAgLy8gc2l6ZSBvZiBDb21wYWN0SFRNTFRva2VuLCB3ZSBqdXN0IHVz
ZSB0aGUgbV9hdHRyaWJ1dGVzIHZlY3Rvci4KLSAgICBjb25zdCBTdHJpbmcmIHB1YmxpY0lkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2F0dHJpYnV0ZXNbMF0ubmFtZSgpOyB9Ci0gICAgY29u
c3QgU3RyaW5nJiBzeXN0ZW1JZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGVz
WzBdLnZhbHVlKCk7IH0KKyAgICBjb25zdCBTdHJpbmcmIHB1YmxpY0lkZW50aWZpZXIoKSBjb25z
dCB7IHJldHVybiBtX2F0dHJpYnV0ZXNbMF0ubmFtZTsgfQorICAgIGNvbnN0IFN0cmluZyYgc3lz
dGVtSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlc1swXS52YWx1ZTsgfQog
ICAgIGJvb2wgZG9jdHlwZUZvcmNlc1F1aXJrcygpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdHlwZUZv
cmNlc1F1aXJrczsgfQogICAgIFhTU0luZm8qIHhzc0luZm8oKSBjb25zdDsKICAgICB2b2lkIHNl
dFhTU0luZm8oUGFzc093blB0cjxYU1NJbmZvPik7CkBAIC04OCw3ICs4Myw3IEBAIHByaXZhdGU6
CiAgICAgdW5zaWduZWQgbV9kb2N0eXBlRm9yY2VzUXVpcmtzOiAxOwogCiAgICAgU3RyaW5nIG1f
ZGF0YTsgLy8gIm5hbWUiLCAiY2hhcmFjdGVycyIsIG9yICJkYXRhIiBkZXBlbmRpbmcgb24gbV90
eXBlCi0gICAgVmVjdG9yPENvbXBhY3RBdHRyaWJ1dGU+IG1fYXR0cmlidXRlczsKKyAgICBWZWN0
b3I8QXR0cmlidXRlPiBtX2F0dHJpYnV0ZXM7CiAgICAgVGV4dFBvc2l0aW9uIG1fdGV4dFBvc2l0
aW9uOwogICAgIE93blB0cjxYU1NJbmZvPiBtX3hzc0luZm87CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlcklkaW9tcy5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlcklkaW9tcy5oCmluZGV4IDUzZDBmZjc5MzVmMjA1MjAz
YWY0MGFlMjA1YzBkNzM0YTZkMzk5YjAuLmEwMzFlNDVjZmYzMjM1M2YxNDBhMGEyMDE5NWI5Zjlm
MzYzMjdiM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJz
ZXJJZGlvbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VySWRp
b21zLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNkZWZpbmUgSFRNTFBhcnNlcklkaW9tc19oCiAKICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
I2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNDAsNiArNDEsMTEgQEAgYm9vbCBpc05vdEhUTUxTcGFjZShVQ2hhcik7CiAKIC8vIFN0cmlw
IGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UgYXMgZGVmaW5lZCBieSB0aGUgSFRNTCBz
cGVjaWZpY2F0aW9uLiAKIFN0cmluZyBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMo
Y29uc3QgU3RyaW5nJik7Cit0ZW1wbGF0ZTxzaXplX3QgaW5saW5lQ2FwYWNpdHk+CitTdHJpbmcg
c3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGNvbnN0IFZlY3RvcjxVQ2hhciwgaW5s
aW5lQ2FwYWNpdHk+JiB2ZWN0b3IpCit7CisgICAgcmV0dXJuIHN0cmlwTGVhZGluZ0FuZFRyYWls
aW5nSFRNTFNwYWNlcyhTdHJpbmdJbXBsOjpjcmVhdGU4Qml0SWZQb3NzaWJsZSh2ZWN0b3IpKTsK
K30KIAogLy8gQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIEhUTUwgc3BlY2lmaWNhdGlvbidzIGFs
Z29yaXRobSB0byBjb252ZXJ0IGEgbnVtYmVyIHRvIGEgc3RyaW5nIGZvciBudW1iZXIgYW5kIHJh
bmdlIHR5cGVzLgogU3RyaW5nIHNlcmlhbGl6ZUZvck51bWJlclR5cGUoY29uc3QgRGVjaW1hbCYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2Fu
bmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5j
cHAKaW5kZXggODNkMDM3ZGMyZDAxMTU5OTc5NmZhYjBkYjE1MjBlZGRiNDUzM2E1YS4uMzFlMDVm
NWFjNjQzZWI3ZDE3YmE4ZjVlZDQ1Y2VjOGMyOWU5NWNiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCkBAIC0xMjcsMTIgKzEyNywx
MiBAQCBwdWJsaWM6CiAgICAgfQogCiAjaWYgRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VSKQot
ICAgIHZvaWQgcHJvY2Vzc0F0dHJpYnV0ZXMoY29uc3QgVmVjdG9yPENvbXBhY3RBdHRyaWJ1dGU+
JiBhdHRyaWJ1dGVzKQorICAgIHZvaWQgcHJvY2Vzc0F0dHJpYnV0ZXMoY29uc3QgVmVjdG9yPENv
bXBhY3RIVE1MVG9rZW46OkF0dHJpYnV0ZT4mIGF0dHJpYnV0ZXMpCiAgICAgewogICAgICAgICBp
ZiAobV90YWdJZCA+PSBVbmtub3duVGFnSWQpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IGZvciAoVmVjdG9yPENvbXBhY3RBdHRyaWJ1dGU+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gYXR0
cmlidXRlcy5iZWdpbigpOyBpdGVyICE9IGF0dHJpYnV0ZXMuZW5kKCk7ICsraXRlcikKLSAgICAg
ICAgICAgIHByb2Nlc3NBdHRyaWJ1dGUoaXRlci0+bmFtZSgpLCBpdGVyLT52YWx1ZSgpKTsKKyAg
ICAgICAgZm9yIChWZWN0b3I8Q29tcGFjdEhUTUxUb2tlbjo6QXR0cmlidXRlPjo6Y29uc3RfaXRl
cmF0b3IgaXRlciA9IGF0dHJpYnV0ZXMuYmVnaW4oKTsgaXRlciAhPSBhdHRyaWJ1dGVzLmVuZCgp
OyArK2l0ZXIpCisgICAgICAgICAgICBwcm9jZXNzQXR0cmlidXRlKGl0ZXItPm5hbWUsIGl0ZXIt
PnZhbHVlKTsKICAgICB9CiAjZW5kaWYKIApAQCAtMzM3LDI2ICszMzcsMTMgQEAgdm9pZCBUb2tl
blByZWxvYWRTY2FubmVyOjpzY2FuQ29tbW9uKGNvbnN0IFRva2VuJiB0b2tlbiwgVmVjdG9yPE93
blB0cjxQcmVsb2FkUmUKICAgICB9CiB9CiAKLXZvaWQgVG9rZW5QcmVsb2FkU2Nhbm5lcjo6dXBk
YXRlUHJlZGljdGVkQmFzZVVSTChjb25zdCBIVE1MVG9rZW4mIHRva2VuKQotewotICAgIEFTU0VS
VChtX3ByZWRpY3RlZEJhc2VFbGVtZW50VVJMLmlzRW1wdHkoKSk7Ci0gICAgZm9yIChIVE1MVG9r
ZW46OkF0dHJpYnV0ZUxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSB0b2tlbi5hdHRyaWJ1dGVz
KCkuYmVnaW4oKTsgaXRlciAhPSB0b2tlbi5hdHRyaWJ1dGVzKCkuZW5kKCk7ICsraXRlcikgewot
ICAgICAgICBBdG9taWNTdHJpbmcgYXR0cmlidXRlTmFtZShpdGVyLT5uYW1lKTsKLSAgICAgICAg
aWYgKGF0dHJpYnV0ZU5hbWUgPT0gaHJlZkF0dHIpIHsKLSAgICAgICAgICAgIFN0cmluZyBocmVm
VmFsdWUgPSBTdHJpbmdJbXBsOjpjcmVhdGU4Qml0SWZQb3NzaWJsZShpdGVyLT52YWx1ZSk7Ci0g
ICAgICAgICAgICBtX3ByZWRpY3RlZEJhc2VFbGVtZW50VVJMID0gS1VSTChtX2RvY3VtZW50VVJM
LCBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoaHJlZlZhbHVlKSk7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLX0KLQotI2lmIEVOQUJMRShUSFJFQURFRF9I
VE1MX1BBUlNFUikKLXZvaWQgVG9rZW5QcmVsb2FkU2Nhbm5lcjo6dXBkYXRlUHJlZGljdGVkQmFz
ZVVSTChjb25zdCBDb21wYWN0SFRNTFRva2VuJiB0b2tlbikKK3RlbXBsYXRlPHR5cGVuYW1lIFRv
a2VuPgordm9pZCBUb2tlblByZWxvYWRTY2FubmVyOjp1cGRhdGVQcmVkaWN0ZWRCYXNlVVJMKGNv
bnN0IFRva2VuJiB0b2tlbikKIHsKICAgICBBU1NFUlQobV9wcmVkaWN0ZWRCYXNlRWxlbWVudFVS
TC5pc0VtcHR5KCkpOwotICAgIG1fcHJlZGljdGVkQmFzZUVsZW1lbnRVUkwgPSBLVVJMKG1fZG9j
dW1lbnRVUkwsIHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyh0b2tlbi5nZXRBdHRy
aWJ1dGVJdGVtKGhyZWZBdHRyKS0+dmFsdWUoKSkpLmNvcHkoKTsKKyAgICBpZiAoY29uc3QgdHlw
ZW5hbWUgVG9rZW46OkF0dHJpYnV0ZSogaHJlZkF0dHJpYnV0ZSA9IHRva2VuLmdldEF0dHJpYnV0
ZUl0ZW0oaHJlZkF0dHIpKQorICAgICAgICBtX3ByZWRpY3RlZEJhc2VFbGVtZW50VVJMID0gS1VS
TChtX2RvY3VtZW50VVJMLCBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoaHJlZkF0
dHJpYnV0ZS0+dmFsdWUpKS5jb3B5KCk7CiB9Ci0jZW5kaWYKIAogSFRNTFByZWxvYWRTY2FubmVy
OjpIVE1MUHJlbG9hZFNjYW5uZXIoY29uc3QgSFRNTFBhcnNlck9wdGlvbnMmIG9wdGlvbnMsIGNv
bnN0IEtVUkwmIGRvY3VtZW50VVJMKQogICAgIDogbV9zY2FubmVyKGRvY3VtZW50VVJMKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuaAppbmRleCAz
ZDhlZWU1MWE5OTkxOTMyNDUxNzM5ZmE5MmZkMTQwNmNiYzMzZDc3Li40MDdmZTc4Y2RjMDRjYWM1
YmVkMzY5NWUyZTY0MTI0MTRiNzQ3YjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuaApAQCAtODIsMTAgKzgyLDggQEAgcHJpdmF0ZToKIAog
ICAgIHN0YXRpYyBTdHJpbmcgaW5pdGl0YXRvckZvcihUYWdJZCk7CiAKLSAgICB2b2lkIHVwZGF0
ZVByZWRpY3RlZEJhc2VVUkwoY29uc3QgSFRNTFRva2VuJik7Ci0jaWYgRU5BQkxFKFRIUkVBREVE
X0hUTUxfUEFSU0VSKQotICAgIHZvaWQgdXBkYXRlUHJlZGljdGVkQmFzZVVSTChjb25zdCBDb21w
YWN0SFRNTFRva2VuJik7Ci0jZW5kaWYKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUb2tlbj4KKyAg
ICB2b2lkIHVwZGF0ZVByZWRpY3RlZEJhc2VVUkwoY29uc3QgVG9rZW4mKTsKIAogICAgIENTU1By
ZWxvYWRTY2FubmVyIG1fY3NzU2Nhbm5lcjsKICAgICBLVVJMIG1fZG9jdW1lbnRVUkw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW4uaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbi5oCmluZGV4IDY0MGI1YzQ5Y2IzOGY4OGE0M2Jl
MzIzYTA5ZDkyY2RhNmJjOGVhMjQuLjkyODM4MmI3MzNkZjdiZWE1MTUwYWJlNTEzMDUyNzYzZTFl
YThhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbi5oCkBAIC0zNTgsNiAr
MzU4LDE1IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fYXR0cmlidXRlczsKICAgICB9CiAK
KyAgICBjb25zdCBBdHRyaWJ1dGUqIGdldEF0dHJpYnV0ZUl0ZW0oY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSkgY29uc3QKKyAgICB7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBt
X2F0dHJpYnV0ZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChBdG9taWNTdHJpbmco
bV9hdHRyaWJ1dGVzLmF0KGkpLm5hbWUpID09IG5hbWUubG9jYWxOYW1lKCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuICZtX2F0dHJpYnV0ZXMuYXQoaSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIDA7CisgICAgfQorCiAgICAgLy8gVXNlZCBieSB0aGUgWFNTQXVkaXRvciB0byBudWtlIFhT
Uy1sYWRlbiBhdHRyaWJ1dGVzLgogICAgIHZvaWQgZXJhc2VWYWx1ZU9mQXR0cmlidXRlKHNpemVf
dCBpKQogICAgIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>