<?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>148367</bug_id>
          
          <creation_ts>2015-08-22 19:40:44 -0700</creation_ts>
          <short_desc>DFG::InsertionSet should be tolerant of occasional out-of-order insertions</short_desc>
          <delta_ts>2015-08-24 14:11:48 -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>JavaScriptCore</component>
          <version>Other</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>145204</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>basile_clement</cc>
    
    <cc>benjamin</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1120149</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-22 19:40:44 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120150</commentid>
    <comment_count>1</comment_count>
      <attachid>259730</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-22 19:45:47 -0700</bug_when>
    <thetext>Created attachment 259730
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120298</commentid>
    <comment_count>2</comment_count>
      <attachid>259730</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-08-24 10:45:03 -0700</bug_when>
    <thetext>Comment on attachment 259730
the patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:19
&gt; +        It seems like it would be best to just lift this restrictions.

restriction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120299</commentid>
    <comment_count>3</comment_count>
      <attachid>259730</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-08-24 10:46:03 -0700</bug_when>
    <thetext>Comment on attachment 259730
the patch

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

r=me

&gt; Source/JavaScriptCore/dfg/DFGInsertionSet.cpp:35
&gt; +    for (size_t index = m_insertions.size() - 1; index--;) {

Even though this is checked at the call site for this function, it might be nice for documentation&apos;s sake to assert that the last element&apos;s index is larger than what we&apos;re inserting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120362</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-24 13:59:29 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 259730 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=259730&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:19
&gt; &gt; +        It seems like it would be best to just lift this restrictions.
&gt; 
&gt; restriction

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120363</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-24 13:59:37 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 259730 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=259730&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGInsertionSet.cpp:35
&gt; &gt; +    for (size_t index = m_insertions.size() - 1; index--;) {
&gt; 
&gt; Even though this is checked at the call site for this function, it might be
&gt; nice for documentation&apos;s sake to assert that the last element&apos;s index is
&gt; larger than what we&apos;re inserting.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120368</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-24 14:11:48 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/188879</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259730</attachid>
            <date>2015-08-22 19:45:47 -0700</date>
            <delta_ts>2015-08-24 10:45:03 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>17055</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4ODMyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBA
CisyMDE1LTA4LTIyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHOjpJbnNlcnRpb25TZXQgc2hvdWxkIGJlIHRvbGVyYW50IG9mIG9jY2FzaW9uYWwgb3V0LW9m
LW9yZGVyIGluc2VydGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0ODM2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFNpbmNlIGZvcmV2ZXIsIHRoZSBERkc6Okluc2VydGlvblNldCBoYXMgYmVlbiB0
aGUgd2F5IHdlIGluc2VydCBub2RlcyBpbnRvIERGRyBJUiwgYW5kIGl0CisgICAgICAgIHJlcXVp
cmVzIHRoYXQgeW91IHdhbGsgYSBibG9jayBpbiBvcmRlciBhbmQgcGVyZm9ybSBpbnNlcnRpb25z
IGluIG9yZGVyOiB5b3UgY2FuJ3QgaW5zZXJ0CisgICAgICAgIHNvbWV0aGluZyBhdCBpbmRleCBK
LCB0aGVuIGF0IGluZGV4IEkgd2hlcmUgSSA8IEosIGV4Y2VwdCBpZiB5b3UgZG8gYSBzZWNvbmQg
cGFzcy4KKworICAgICAgICBUaGlzIHJlc3RyaWN0aW9uIG1ha2VzIHNlbnNlLCBiZWNhdXNlIGl0
IGVuYWJsZXMgYSB2ZXJ5IGZhc3QgYWxnb3JpdGhtLiBBbmQgaXQncyB2ZXJ5CisgICAgICAgIHJh
cmUgdGhhdCBhIHBoYXNlIHdvdWxkIG5lZWQgdG8gaW5zZXJ0IHRoaW5ncyBvdXQgb2Ygb3JkZXIu
CisKKyAgICAgICAgQnV0IHNvbWV0aW1lcyAtIHJhcmVseSAtIHdlIG5lZWQgdG8gaW5zZXJ0IHRo
aW5ncyBzbGlnaHRseSBvdXQtb2Ytb3JkZXIuIEZvciBleGFtcGxlIHdlCisgICAgICAgIG1heSB3
YW50IHRvIGluc2VydCBhIG5vZGUgYXQgaW5kZXggSiwgYnV0IHRvIGluc2VydCBhIGNoZWNrIGFz
c29jaWF0ZWQgd2l0aCB0aGF0IG5vZGUsIHdlCisgICAgICAgIG1heSBuZWVkIHRvIHVzZSBpbmRl
eCBJIHdoZXJlIEkgPCBKLiBUaGlzIHdpbGwgY29tZSB1cCBmcm9tIHRoZSB3b3JrIG9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUyMDQuIEFuZCBp
dCBoYXMgYWxyZWFkeSBjb21lIHVwIGluIHRoZSBwYXN0LgorICAgICAgICBJdCBzZWVtcyBsaWtl
IGl0IHdvdWxkIGJlIGJlc3QgdG8ganVzdCBsaWZ0IHRoaXMgcmVzdHJpY3Rpb25zLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZGZnL0RGR0luc2VydGlvblNldC5jcHA6IEFk
ZGVkLgorICAgICAgICAoSlNDOjpERkc6Okluc2VydGlvblNldDo6aW5zZXJ0U2xvdyk6CisgICAg
ICAgICogZGZnL0RGR0luc2VydGlvblNldC5oOgorICAgICAgICAoSlNDOjpERkc6Okluc2VydGlv
blNldDo6SW5zZXJ0aW9uU2V0KToKKyAgICAgICAgKEpTQzo6REZHOjpJbnNlcnRpb25TZXQ6Omdy
YXBoKToKKyAgICAgICAgKEpTQzo6REZHOjpJbnNlcnRpb25TZXQ6Omluc2VydCk6CisgICAgICAg
IChKU0M6OkRGRzo6SW5zZXJ0aW9uU2V0OjpleGVjdXRlKToKKwogMjAxNS0wOC0yMiAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIERGRyBzdHJpbmcgY29uY2F0ZW5h
dGlvbiBzaG91bGRuJ3QgYmUgcGxheWluZyBmYXN0IGFuZCBsb29zZSB3aXRoIGVmZmVjdHMgYW5k
IE9TUiBleGl0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lv
biAxODg4MjQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTE4Nyw2ICsxODcsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwog
ICAgIGRmZy9ERkdHcmFwaFNhZmVwb2ludC5jcHAKICAgICBkZmcvREZHSGVhcExvY2F0aW9uLmNw
cAogICAgIGRmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAKKyAgICBkZmcvREZHSW5zZXJ0
aW9uU2V0LmNwcAogICAgIGRmZy9ERkdJbnRlZ2VyQ2hlY2tDb21iaW5pbmdQaGFzZS5jcHAKICAg
ICBkZmcvREZHSW50ZWdlclJhbmdlT3B0aW1pemF0aW9uUGhhc2UuY3BwCiAgICAgZGZnL0RGR0lu
dmFsaWRhdGlvblBvaW50SW5qZWN0aW9uUGhhc2UuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE4ODgyNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi3vu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k
aW5nPSJ1dGYtOCI/PgorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KIDxQ
cm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSIxNC4wIiB4bWxucz0i
aHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KICAg
PEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KICAgICA8UHJvamVjdENv
bmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWdTdWZmaXh8V2luMzIiPgpAQCAtNDIzLDYgKzQyMyw3
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHR3JhcGhTYWZlcG9pbnQuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR0hlYXBMb2NhdGlvbi5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHSW5QbGFjZUFic3RyYWN0U3Rh
dGUuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR0luc2VydGlvblNl
dC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHSW50ZWdlckNoZWNr
Q29tYmluaW5nUGhhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERG
R0ludGVnZXJSYW5nZU9wdGltaXphdGlvblBoYXNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGRmZ1xERkdJbnZhbGlkYXRpb25Qb2ludEluamVjdGlvblBoYXNlLmNwcCIgLz4K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxODg4MjQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjk1LDYgKzI5NSw3IEBACiAJCTBGM0IzQTJDMTU0NzUw
MDIwMDNFRDBGRiAvKiBERkdWYWxpZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEYzQjNBMkExNTQ3NEZGNDAwM0VEMEZGIC8qIERGR1ZhbGlkYXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYz
QjdFMkExOUExMUI4MDAwRDlCQzU2IC8qIENhbGxWYXJpYW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGM0I3RTI0MTlBMTFCODAwMEQ5QkM1NiAv
KiBDYWxsVmFyaWFudC5jcHAgKi87IH07CiAJCTBGM0I3RTJCMTlBMTFCODAwMEQ5QkM1NiAvKiBD
YWxsVmFyaWFudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEYzQjdFMjUxOUExMUI4MDAwRDlCQzU2IC8qIENhbGxWYXJpYW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEYzQkQxQjcxQjg5NkEwNzAw
NTk4QUE2IC8qIERGR0luc2VydGlvblNldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNCRDFCNjFCODk2QTA3MDA1OThBQTYgLyogREZHSW5zZXJ0
aW9uU2V0LmNwcCAqLzsgfTsKIAkJMEYzRTAxQUExOUQzNTNBNTAwRjYxQjdGIC8qIERGR1ByZVBv
c3ROdW1iZXJpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYzRTAxQTgxOUQzNTNBNTAwRjYxQjdGIC8qIERGR1ByZVBvc3ROdW1iZXJpbmcuY3Bw
ICovOyB9OwogCQkwRjNFMDFBQjE5RDM1M0E1MDBGNjFCN0YgLyogREZHUHJlUG9zdE51bWJlcmlu
Zy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzRTAx
QTkxOUQzNTNBNTAwRjYxQjdGIC8qIERGR1ByZVBvc3ROdW1iZXJpbmcuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjQyNkE0ODE0NjBDQkIzMDAx
MzFGOEYgLyogVmFsdWVSZWNvdmVyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY0MjZBNDUxNDYwQ0JBQjAwMTMxRjhGIC8qIFZhbHVlUmVjb3Zlcnku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTcw
OSwxMCArMTcxMCwxMCBAQAogCQlFMzNGNTA4NTFCODQzN0EwMDA0MTM4NTYgLyogSlNJbnRlcm5h
bFByb21pc2VEZWZlcnJlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTMzRjUwODMxQjg0MzdBMDAwNDEzODU2IC8qIEpTSW50ZXJuYWxQcm9taXNlRGVm
ZXJyZWQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlFMzNGNTA4NzFCODQ0OUVGMDA0MTM4NTYgLyogSlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rv
ci5sdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
M0Y1MDg2MUI4NDQ5RUYwMDQxMzg1NiAvKiBKU0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLmx1
dC5oICovOyB9OwogCQlFMzU0NjIyQjFCNjA2NUQxMDA1NDUzODYgLyogQ29uc3RydWN0QWJpbGl0
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1NDYy
MkExQjYwNjVEMTAwNTQ1Mzg2IC8qIENvbnN0cnVjdEFiaWxpdHkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlFMzVFMDM1RjFCN0FCNDNFMDA3M0FE
MkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNUUwMzVEMUI3QUI0M0UwMDczQUQyQSAv
KiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuY3BwICovOyB9OwotCQlFMzVFMDM2MDFC
N0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzVFMDM1RTFCN0FCNDNF
MDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM1NUYzNTIxQjdEQzg1MzAw
QzUwREM1IC8qIE1vZHVsZUxvYWRlck9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU1RjM1MDFCN0RDODUzMDBDNTBEQzUgLyogTW9kdWxl
TG9hZGVyT2JqZWN0LmNwcCAqLzsgfTsKIAkJRTM1NUYzNTMxQjdEQzg1MzAwQzUwREM1IC8qIE1v
ZHVsZUxvYWRlck9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTM1NUYzNTExQjdEQzg1MzAwQzUwREM1IC8qIE1vZHVsZUxvYWRlck9iamVjdC5o
ICovOyB9OworCQlFMzVFMDM1RjFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzNUUwMzVEMUI3QUI0M0UwMDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25PYmplY3QuY3BwICovOyB9OworCQlFMzVFMDM2MDFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMzVFMDM1RTFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uT2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJRTM3OTRFNzUxQjc3RUI5NzAwNTU0M0FFIC8qIE1vZHVsZUFuYWx5emVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNzk0
RTczMUI3N0VCOTcwMDU1NDNBRSAvKiBNb2R1bGVBbmFseXplci5jcHAgKi87IH07CiAJCUUzNzk0
RTc2MUI3N0VCOTcwMDU1NDNBRSAvKiBNb2R1bGVBbmFseXplci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM3OTRFNzQxQjc3RUI5NzAwNTU0M0FFIC8q
IE1vZHVsZUFuYWx5emVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTM5NjNDRUUxQjczRjc1MDAwRUI0Q0U1IC8qIE5vZGVzQW5hbHl6ZU1vZHVs
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2
M0NFQzFCNzNGNzUwMDBFQjRDRTUgLyogTm9kZXNBbmFseXplTW9kdWxlLmNwcCAqLzsgfTsKQEAg
LTIxMDYsNiArMjEwNyw3IEBACiAJCTBGM0IzQTJBMTU0NzRGRjQwMDNFRDBGRiAvKiBERkdWYWxp
ZGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdWYWxpZGF0ZS5oOyBw
YXRoID0gZGZnL0RGR1ZhbGlkYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
M0I3RTI0MTlBMTFCODAwMEQ5QkM1NiAvKiBDYWxsVmFyaWFudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWxsVmFyaWFudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGM0I3RTI1MTlBMTFCODAwMEQ5QkM1NiAvKiBDYWxsVmFyaWFudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWxsVmFyaWFudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjNCRDFCNjFCODk2QTA3MDA1OThBQTYgLyogREZHSW5zZXJ0
aW9uU2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0luc2Vy
dGlvblNldC5jcHA7IHBhdGggPSBkZmcvREZHSW5zZXJ0aW9uU2V0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEYzRTAxQTgxOUQzNTNBNTAwRjYxQjdGIC8qIERGR1ByZVBvc3RO
dW1iZXJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHUHJl
UG9zdE51bWJlcmluZy5jcHA7IHBhdGggPSBkZmcvREZHUHJlUG9zdE51bWJlcmluZy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGM0UwMUE5MTlEMzUzQTUwMEY2MUI3RiAvKiBE
RkdQcmVQb3N0TnVtYmVyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERG
R1ByZVBvc3ROdW1iZXJpbmcuaDsgcGF0aCA9IGRmZy9ERkdQcmVQb3N0TnVtYmVyaW5nLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDI2QTQ1MTQ2MENCQUIwMDEzMUY4RiAvKiBW
YWx1ZVJlY292ZXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbHVlUmVj
b3ZlcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM1NTYsMTQgKzM1NTgsMTQg
QEAKIAkJRTMzRjUwN0YxQjg0MjlBNDAwNDEzODU2IC8qIEpTSW50ZXJuYWxQcm9taXNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW50ZXJuYWxQcm9taXNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzM0Y1MDgyMUI4NDM3QTAwMDQxMzg1NiAvKiBKU0lu
dGVybmFsUHJvbWlzZURlZmVycmVkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMzNGNTA4MzFCODQzN0EwMDA0MTM4NTYgLyogSlNJbnRlcm5hbFByb21pc2VE
ZWZlcnJlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ludGVybmFsUHJv
bWlzZURlZmVycmVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUzM0Y1MDg2MUI4
NDQ5RUYwMDQxMzg1NiAvKiBKU0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLmx1dC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9y
Lmx1dC5oOyBwYXRoID0gSlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rvci5sdXQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMzRjUwODYxQjg0NDlFRjAwNDEzODU2IC8qIEpTSW50
ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IubHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IubHV0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzM0Y1MDg4MUI4NDRBMUEwMDQxMzg1NiAvKiBJbnRlcm5hbFByb21p
c2VDb25zdHJ1Y3Rvci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9
IEludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMzU0NjIyQTFCNjA2NUQxMDA1NDUzODYgLyogQ29uc3RydWN0QWJpbGl0eS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25zdHJ1Y3RBYmlsaXR5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNTVGMzUwMUI3REM4NTMwMEM1MERDNSAvKiBNb2R1bGVM
b2FkZXJPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9k
dWxlTG9hZGVyT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM1NUYz
NTExQjdEQzg1MzAwQzUwREM1IC8qIE1vZHVsZUxvYWRlck9iamVjdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVMb2FkZXJPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTM1RTAzNUQxQjdBQjQzRTAwNzNBRDJBIC8qIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbk9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMzVFMDM1RTFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbk9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MzVFMDM2MTFCN0FCNDg1MDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uT2JqZWN0LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMzU1
RjM1MDFCN0RDODUzMDBDNTBEQzUgLyogTW9kdWxlTG9hZGVyT2JqZWN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUxvYWRlck9iamVjdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUzNTVGMzUxMUI3REM4NTMwMEM1MERDNSAvKiBNb2R1
bGVMb2FkZXJPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxl
TG9hZGVyT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNzk0RTczMUI3
N0VCOTcwMDU1NDNBRSAvKiBNb2R1bGVBbmFseXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBNb2R1bGVBbmFseXplci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUzNzk0RTc0MUI3N0VCOTcwMDU1NDNBRSAvKiBNb2R1bGVBbmFseXplci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVBbmFseXplci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzk2M0NFQzFCNzNGNzUwMDBFQjRDRTUgLyogTm9kZXNB
bmFseXplTW9kdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5v
ZGVzQW5hbHl6ZU1vZHVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MTg5
LDYgKzUxOTEsNyBAQAogCQkJCTBGQjE0RTIyMTgxMzA5NTUwMDlCNkI0RCAvKiBERkdJbmxpbmVD
YWNoZVdyYXBwZXJJbmxpbmVzLmggKi8sCiAJCQkJQTcwNEQ5MDAxN0EwQkFBODAwNkJBNTU0IC8q
IERGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCAqLywKIAkJCQlBNzA0RDkwMTE3QTBCQUE4MDA2
QkE1NTQgLyogREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuaCAqLywKKwkJCQkwRjNCRDFCNjFCODk2
QTA3MDA1OThBQTYgLyogREZHSW5zZXJ0aW9uU2V0LmNwcCAqLywKIAkJCQkwRjJCREMxRjE1MUU4
MDM4MDBDRDg5MTAgLyogREZHSW5zZXJ0aW9uU2V0LmggKi8sCiAJCQkJMEYzMDBCNzkxOEFCMUIx
NDAwQTZENzJFIC8qIERGR0ludGVnZXJDaGVja0NvbWJpbmluZ1BoYXNlLmNwcCAqLywKIAkJCQkw
RjMwMEI3QTE4QUIxQjE0MDBBNkQ3MkUgLyogREZHSW50ZWdlckNoZWNrQ29tYmluaW5nUGhhc2Uu
aCAqLywKQEAgLTc0MzAsNiArNzQzMyw3IEBACiAJCQkJRTMzRjUwODQxQjg0MzdBMDAwNDEzODU2
IC8qIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5
RDM2OTQxQUU5Q0MzMzAwMEQ0REZCIC8qIERGR0NsZWFuVXBQaGFzZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBN0Q4OUNGNzE3QTBCOENDMDA3NzNBRDggLyogREZHRmx1c2hGb3JtYXQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEYzQkQxQjcxQjg5NkEwNzAwNTk4QUE2IC8qIERGR0luc2VydGlv
blNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QjM5Rjc2RDFCNjJERTJFMDAzNjBGQjQgLyog
V0FTTU1vZHVsZVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjNBMUJGOTFBOUVDQjdE
MDAwREUwMUEgLyogREZHUHV0U3RhY2tTaW5raW5nUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODZFQzlEQzcxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0dyYXBoLmNwcCBpbiBTb3VyY2VzICov
LApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJbnNlcnRpb25TZXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5zZXJ0aW9uU2V0LmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5zZXJ0aW9u
U2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJERkdJbnNlcnRpb25TZXQuaCIKKworI2lmIEVOQUJMRShERkdfSklUKQorCituYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK3ZvaWQgSW5zZXJ0aW9uU2V0OjppbnNlcnRTbG93
KGNvbnN0IEluc2VydGlvbiYgaW5zZXJ0aW9uKQoreworICAgIGZvciAoc2l6ZV90IGluZGV4ID0g
bV9pbnNlcnRpb25zLnNpemUoKSAtIDE7IGluZGV4LS07KSB7CisgICAgICAgIGlmIChtX2luc2Vy
dGlvbnNbaW5kZXhdLmluZGV4KCkgPD0gaW5zZXJ0aW9uLmluZGV4KCkpIHsKKyAgICAgICAgICAg
IG1faW5zZXJ0aW9ucy5pbnNlcnQoaW5kZXggKyAxLCBpbnNlcnRpb24pOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8gRU5BQkxF
KERGR19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5zZXJ0aW9u
U2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJbnNlcnRp
b25TZXQuaAkocmV2aXNpb24gMTg4ODI0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdJbnNlcnRpb25TZXQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NCwxMSArNDQsMTcg
QEAgcHVibGljOgogICAgIH0KICAgICAKICAgICBHcmFwaCYgZ3JhcGgoKSB7IHJldHVybiBtX2dy
YXBoOyB9Ci0gICAgCisKKyAgICAvLyBBZGRzIGFub3RoZXIgY29kZSBpbnNlcnRpb24uIEl0J3Mg
ZXhwZWN0ZWQgdGhhdCB5b3UnbGwgdXN1YWxseSBpbnNlcnQgdGhpbmdzIGluIG9yZGVyLiBJZgor
ICAgIC8vIHlvdSBkb24ndCwgdGhpcyBmdW5jdGlvbiB3aWxsIHBlcmZvcm0gYSBsaW5lYXIgc2Vh
cmNoIHRvIGZpbmQgdGhlIGxhcmdlc3QgaW5zZXJ0aW9uIHBvaW50CisgICAgLy8gYXQgd2hpY2gg
aW5zZXJ0aW9uIG9yZGVyIHdvdWxkIGJlIHByZXNlcnZlZC4gVGhpcyBpcyBlc3NlbnRpYWxseSBl
cXVpdmFsZW50IHRvIGlmIHlvdSBkaWQKKyAgICAvLyBhIHN0YWJsZSBzb3J0IG9uIHRoZSBpbnNl
cnRpb25zLgogICAgIE5vZGUqIGluc2VydChjb25zdCBJbnNlcnRpb24mIGluc2VydGlvbikKICAg
ICB7Ci0gICAgICAgIEFTU0VSVCghbV9pbnNlcnRpb25zLnNpemUoKSB8fCBtX2luc2VydGlvbnMu
bGFzdCgpLmluZGV4KCkgPD0gaW5zZXJ0aW9uLmluZGV4KCkpOwotICAgICAgICBtX2luc2VydGlv
bnMuYXBwZW5kKGluc2VydGlvbik7CisgICAgICAgIGlmIChMSUtFTFkoIW1faW5zZXJ0aW9ucy5z
aXplKCkgfHwgbV9pbnNlcnRpb25zLmxhc3QoKS5pbmRleCgpIDw9IGluc2VydGlvbi5pbmRleCgp
KSkKKyAgICAgICAgICAgIG1faW5zZXJ0aW9ucy5hcHBlbmQoaW5zZXJ0aW9uKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgaW5zZXJ0U2xvdyhpbnNlcnRpb24pOwogICAgICAgICByZXR1cm4g
aW5zZXJ0aW9uLmVsZW1lbnQoKTsKICAgICB9CiAgICAgCkBAIC0xMjgsNiArMTM0LDggQEAgcHVi
bGljOgogICAgICAgICBleGVjdXRlSW5zZXJ0aW9ucygqYmxvY2ssIG1faW5zZXJ0aW9ucyk7CiAg
ICAgfQogcHJpdmF0ZToKKyAgICB2b2lkIGluc2VydFNsb3coY29uc3QgSW5zZXJ0aW9uJik7Cisg
ICAgCiAgICAgR3JhcGgmIG1fZ3JhcGg7CiAgICAgVmVjdG9yPEluc2VydGlvbiwgOD4gbV9pbnNl
cnRpb25zOwogfTsK
</data>
<flag name="review"
          id="284921"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>