<?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>93193</bug_id>
          
          <creation_ts>2012-08-04 20:02:24 -0700</creation_ts>
          <short_desc>Use the initialization from literal for JSC&apos;s Identifiers</short_desc>
          <delta_ts>2012-08-07 15:21: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>JavaScriptCore</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>687548</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-08-04 20:02:24 -0700</bug_when>
    <thetext>That should save some initialization time and some memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687555</commentid>
    <comment_count>1</comment_count>
      <attachid>156550</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-08-04 20:31:31 -0700</bug_when>
    <thetext>Created attachment 156550
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687559</commentid>
    <comment_count>2</comment_count>
      <attachid>156550</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-04 20:56:31 -0700</bug_when>
    <thetext>Comment on attachment 156550
Patch

Attachment 156550 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13436356</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687623</commentid>
    <comment_count>3</comment_count>
      <attachid>156550</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-08-05 11:50:07 -0700</bug_when>
    <thetext>Comment on attachment 156550
Patch

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

r- for build failure. Needs an export, I think:

4&gt;JavaScriptCore.exp : error LNK2001: unresolved external symbol &quot;public: static class WTF::PassRefPtr&lt;class WTF::StringImpl&gt; __cdecl JSC::Identifier::add(class JSC::ExecState *,char const *)&quot; (?add@Identifier@JSC@@SA?AV?$PassRefPtr@VStringImpl@WTF@@@WTF@@PAVExecState@2@PBD@Z)

Is this measurably faster on some benchmark?

&gt; Source/JavaScriptCore/runtime/Identifier.cpp:153
&gt; +    const LiteralIdentifierTable::iterator&amp; iter = literalIdentifierTable.find(c);
&gt; +    if (iter != literalIdentifierTable.end())
&gt; +        return iter-&gt;second;
&gt; +
&gt; +    CharBuffer&lt;LChar&gt; charBuffer = { reinterpret_cast&lt;const LChar*&gt;(c), length };
&gt; +    HashSet&lt;StringImpl*&gt;::AddResult addResult = identifierTable.add&lt;CharBuffer&lt;LChar&gt;, IdentifierASCIICharBufferTranslator&gt;(charBuffer);

I wonder if there&apos;s a way to avoid computing the string hash twice here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687631</commentid>
    <comment_count>4</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-08-05 12:47:19 -0700</bug_when>
    <thetext>&gt; r- for build failure. Needs an export, I think:

Yep, damn Windows :(


&gt; Is this measurably faster on some benchmark?

The change is mostly for memory usage, I have only measured it does not regress.

If the QualifiedName change is any indication, this is also likely faster at initialization. I doubt that shows up in any benchmark, this likely only affects startup time.

I&apos;ll see if I can DTrace on ARM to get some numbers for CPU time.


&gt; I wonder if there&apos;s a way to avoid computing the string hash twice here.

Actually, they are not the same hash. The literalIdentifierTable hashes the pointer to the string, the identifierTable hashes the string itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688726</commentid>
    <comment_count>5</comment_count>
      <attachid>156844</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-08-06 19:59:28 -0700</bug_when>
    <thetext>Created attachment 156844
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688732</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-08-06 20:05:29 -0700</bug_when>
    <thetext>&gt; Is this measurably faster on some benchmark?

It is actually also measurable in time. On http://pmav.eu/stuff/javascript-webworkers/ , if you put enough workers, you get a small improvement (~0.9% on the smallest workset).

I gave up on the version that hardcodes the string length. The problem is that was growing the binary since the size is hardcoded in the text segment. Growing the binary size to improve launch time is about as bad as it can get, so I settled for this simpler version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688799</commentid>
    <comment_count>7</comment_count>
      <attachid>156844</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-08-06 21:52:00 -0700</bug_when>
    <thetext>Comment on attachment 156844
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689417</commentid>
    <comment_count>8</comment_count>
      <attachid>156844</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-08-07 14:46:12 -0700</bug_when>
    <thetext>Comment on attachment 156844
Patch

Clearing flags on attachment: 156844

Committed r124922: &lt;http://trac.webkit.org/changeset/124922&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689418</commentid>
    <comment_count>9</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-08-07 14:46:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689473</commentid>
    <comment_count>10</comment_count>
      <attachid>156844</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-08-07 15:21:55 -0700</bug_when>
    <thetext>Comment on attachment 156844
Patch

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

&gt; Source/JavaScriptCore/runtime/CommonIdentifiers.cpp:30
&gt; +    : nullIdentifier()

Maybe we can remove this initializer too.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156550</attachid>
            <date>2012-08-04 20:31:31 -0700</date>
            <delta_ts>2012-08-06 19:59:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93193-20120804203110.patch</filename>
            <type>text/plain</type>
            <size>12795</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
Mzc1YWI0M2UyZWZlYWNlODNlNjFiZDVhMWZmODJiMTEyM2RmYjI5Li5jNGRjNDExMGE3OTQzYzc4
NzNkNTExZTEzMTBmN2QyNTg0YzJmZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAxMi0wOC0wNCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVXNlIHRoZSBpbml0aWFsaXphdGlvbiBmcm9tIGxpdGVyYWwgZm9y
IEpTQydzIElkZW50aWZpZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05MzE5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2hlcyBtb2RpZnkgSWRlbnRpZmllciBvdCB0YWtlIGFkdmFudGFn
ZSBvZiB0aGUgbmV3IGluaXRpYWxpemF0aW9uIGZyb20gbGl0ZXJhbC4KKworICAgICAgICAqIHJ1
bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuY3BwOgorICAgICAgICAoSlNDOjpDb21tb25JZGVudGlm
aWVyczo6Q29tbW9uSWRlbnRpZmllcnMpOgorICAgICAgICBOdWxsIGFuZCBlbXB0eSBzdHJpbmdz
IGFyZSBmb3JiaWRkZW4gZm9yIGxpdGVyYWwgaW5pdGlhbGl6YXRpb24uIFVzZSB0aGUgbW9zdCBl
ZmZpY2llbnQgY29uc3RydWN0b3JzCisgICAgICAgIGluc3RlYWQgb2YgYSBsaXRlcmFsLgorCisg
ICAgICAgICogcnVudGltZS9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKElkZW50aWZpZXJBU0NJ
SVN0cmluZ1RyYW5zbGF0b3IpOgorICAgICAgICBSZW5hbWUgSWRlbnRpZmllckNTdHJpbmdUcmFu
c2xhdG9yIHRvIElkZW50aWZpZXJBU0NJSVN0cmluZ1RyYW5zbGF0b3IgdG8gbWFrZSB0aGUgdGV4
dCBlbmNvZGluZworICAgICAgICBleHBsaWNpdC4KKyAgICAgICAgKEpTQzo6SWRlbnRpZmllckFT
Q0lJU3RyaW5nVHJhbnNsYXRvcjo6aGFzaCk6CisgICAgICAgIChKU0M6OklkZW50aWZpZXJBU0NJ
SVN0cmluZ1RyYW5zbGF0b3I6OmVxdWFsKToKKyAgICAgICAgKEpTQzo6SWRlbnRpZmllckFTQ0lJ
U3RyaW5nVHJhbnNsYXRvcjo6dHJhbnNsYXRlKTogVXNlIHRoZSBmYXN0IGluaXRpYWxpemF0aW9u
IGZyb20gbGl0ZXJhbC4KKworICAgICAgICAoSlNDOjpJZGVudGlmaWVyOjphZGQpOgorICAgICAg
ICAoSlNDOjpJZGVudGlmaWVyQVNDSUlDaGFyQnVmZmVyVHJhbnNsYXRvcjo6aGFzaCk6IE5ldyBI
YXNoVHJhbnNsYXRvciB0YWtpbmcgYWR2YW50YWdlIG9mIGtub3dpbmcKKyAgICAgICAgdGhlIHN0
cmluZyBsZW5naHQgYmVmb3JlaGFuZC4KKyAgICAgICAgKElkZW50aWZpZXJBU0NJSUNoYXJCdWZm
ZXJUcmFuc2xhdG9yKToKKyAgICAgICAgKEpTQzo6SWRlbnRpZmllckFTQ0lJQ2hhckJ1ZmZlclRy
YW5zbGF0b3I6OmVxdWFsKToKKyAgICAgICAgKEpTQzo6SWRlbnRpZmllckFTQ0lJQ2hhckJ1ZmZl
clRyYW5zbGF0b3I6OnRyYW5zbGF0ZSk6CisgICAgICAgICogcnVudGltZS9JZGVudGlmaWVyLmg6
CisgICAgICAgIChKU0M6OklkZW50aWZpZXI6OklkZW50aWZpZXIpOgorCiAyMDEyLTA4LTAzICBG
aWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2hlcyBpbiBkZmdC
dWlsZFB1dEJ5SWRMaXN0IHdoZW4gY2xpY2tpbmcgb24ganVzdCBhYm91dCBhbnl0aGluZyBvbiBH
b29nbGUgTWFwcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RG
L0NoYW5nZUxvZwppbmRleCBkMWIyMmU0Zjc5ZWMzZWQ3YzE5MDhiM2Y5OTY4MTVhY2EzMzcyZTg0
Li40OGVlYTQxNmM5NDE2ZDEyMWVmMzBmMTNmZDEwZWNiYzZhODMwNmY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEyIEBACisyMDEyLTA4LTA0ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBVc2UgdGhlIGluaXRpYWxpemF0aW9uIGZyb20gbGl0ZXJhbCBmb3IgSlND
J3MgSWRlbnRpZmllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTkzMTkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6IFVwZGF0ZSB0aGUgbmFtZXMgZm9yIHRoZSBI
YXNoVHJhbnNsYXRvciB1c2VkIGJ5IElkZW50aWZpZXIuCisKIDIwMTItMDgtMDQgIE5vJ2FtIFJv
c2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFVJX1NJ
REVfQ09NUE9TSVRJTkcgY29kZSBoYXMgY29uZnVzaW5nIG5hbWVzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5jcHAKaW5kZXggODJiZWRh
MzM2Mjk2ZWU1NTkxM2JiYWYzNmNkMzJkMDBmNzcyYWI5ZC4uNjQ2ODVlOGI5ZTM1Y2E1NGViMjMw
OTBiMjVlZWYwN2Y4YmUyMzNmOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29w
eXJpZ2h0IChDKSAyMDAzLCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDcsIDIwMDksIDIwMTIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIzLDE0ICsyMywx
MiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IG51bGxD
U3RyaW5nID0gMDsKLQogI2RlZmluZSBJTklUSUFMSVpFX1BST1BFUlRZX05BTUUobmFtZSkgLCBu
YW1lKGdsb2JhbERhdGEsICNuYW1lKQogI2RlZmluZSBJTklUSUFMSVpFX0tFWVdPUkQobmFtZSkg
LCBuYW1lIyNLZXl3b3JkKGdsb2JhbERhdGEsICNuYW1lKQogCiBDb21tb25JZGVudGlmaWVyczo6
Q29tbW9uSWRlbnRpZmllcnMoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQotICAgIDogbnVsbElk
ZW50aWZpZXIoZ2xvYmFsRGF0YSwgbnVsbENTdHJpbmcpCi0gICAgLCBlbXB0eUlkZW50aWZpZXIo
Z2xvYmFsRGF0YSwgIiIpCisgICAgOiBudWxsSWRlbnRpZmllcigpCisgICAgLCBlbXB0eUlkZW50
aWZpZXIoZ2xvYmFsRGF0YSwgU3RyaW5nSW1wbDo6ZW1wdHkoKSkKICAgICAsIHVuZGVyc2NvcmVQ
cm90byhnbG9iYWxEYXRhLCAiX19wcm90b19fIikKICAgICAsIHRoaXNJZGVudGlmaWVyKGdsb2Jh
bERhdGEsICJ0aGlzIikKICAgICAsIHVzZVN0cmljdElkZW50aWZpZXIoZ2xvYmFsRGF0YSwgInVz
ZSBzdHJpY3QiKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRl
bnRpZmllci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmNw
cAppbmRleCA5YzNkOWNmMTg4NzVjODY3ZjVkNWE4YTM5YTI5N2Q5ZTJiOWI2MTk1Li44NzcwY2Fk
ODhjNWFlZDA5NDM2OGFmYzMyZjZiMmJkNjM0MjAwNzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JZGVudGlmaWVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29w
eXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUs
IDIwMDYsIDIwMDcsIDIwMDgsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQ2LDI5ICs0Niw2IEBAIHZvaWQgZGVsZXRlSWRlbnRp
ZmllclRhYmxlKElkZW50aWZpZXJUYWJsZSogdGFibGUpCiAgICAgZGVsZXRlIHRhYmxlOwogfQog
Ci1zdHJ1Y3QgSWRlbnRpZmllckNTdHJpbmdUcmFuc2xhdG9yIHsKLSAgICBzdGF0aWMgdW5zaWdu
ZWQgaGFzaChjb25zdCBMQ2hhciogYykKLSAgICB7Ci0gICAgICAgIHJldHVybiBTdHJpbmdIYXNo
ZXI6OmNvbXB1dGVIYXNoQW5kTWFza1RvcDhCaXRzPExDaGFyPihjKTsKLSAgICB9Ci0KLSAgICBz
dGF0aWMgYm9vbCBlcXVhbChTdHJpbmdJbXBsKiByLCBjb25zdCBMQ2hhciogcykKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBJZGVudGlmaWVyOjplcXVhbChyLCBzKTsKLSAgICB9Ci0KLSAgICBzdGF0
aWMgdm9pZCB0cmFuc2xhdGUoU3RyaW5nSW1wbComIGxvY2F0aW9uLCBjb25zdCBMQ2hhciogYywg
dW5zaWduZWQgaGFzaCkKLSAgICB7Ci0gICAgICAgIHNpemVfdCBsZW5ndGggPSBzdHJsZW4ocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oYykpOwotICAgICAgICBMQ2hhciogZDsKLSAgICAg
ICAgU3RyaW5nSW1wbCogciA9IFN0cmluZ0ltcGw6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQobGVuZ3Ro
LCBkKS5sZWFrUmVmKCk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpICE9IGxlbmd0aDsg
aSsrKQotICAgICAgICAgICAgZFtpXSA9IGNbaV07Ci0gICAgICAgIHItPnNldEhhc2goaGFzaCk7
Ci0gICAgICAgIGxvY2F0aW9uID0gcjsKLSAgICB9Ci19OwotCiBzdHJ1Y3QgSWRlbnRpZmllckxD
aGFyRnJvbVVDaGFyVHJhbnNsYXRvciB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3Qg
Q2hhckJ1ZmZlcjxVQ2hhcj4mIGJ1ZikKICAgICB7CkBAIC05NCw2ICs3MSwyNSBAQCBzdHJ1Y3Qg
SWRlbnRpZmllckxDaGFyRnJvbVVDaGFyVHJhbnNsYXRvciB7CiAgICAgfQogfTsKIAorc3RydWN0
IElkZW50aWZpZXJBU0NJSVN0cmluZ1RyYW5zbGF0b3IgeworICAgIHN0YXRpYyB1bnNpZ25lZCBo
YXNoKGNvbnN0IExDaGFyKiBjKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFN0cmluZ0hhc2hlcjo6
Y29tcHV0ZUhhc2hBbmRNYXNrVG9wOEJpdHM8TENoYXI+KGMpOworICAgIH0KKworICAgIHN0YXRp
YyBib29sIGVxdWFsKFN0cmluZ0ltcGwqIHIsIGNvbnN0IExDaGFyKiBzKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIElkZW50aWZpZXI6OmVxdWFsKHIsIHMpOworICAgIH0KKworICAgIHN0YXRpYyB2
b2lkIHRyYW5zbGF0ZShTdHJpbmdJbXBsKiYgbG9jYXRpb24sIGNvbnN0IExDaGFyKiBjLCB1bnNp
Z25lZCBoYXNoKQorICAgIHsKKyAgICAgICAgc2l6ZV90IGxlbmd0aCA9IHN0cmxlbihyZWludGVy
cHJldF9jYXN0PGNvbnN0IGNoYXIqPihjKSk7CisgICAgICAgIGxvY2F0aW9uID0gU3RyaW5nSW1w
bDo6Y3JlYXRlRnJvbUxpdGVyYWwoYywgbGVuZ3RoKS5sZWFrUmVmKCk7CisgICAgICAgIGxvY2F0
aW9uLT5zZXRIYXNoKGhhc2gpOworICAgIH0KK307CisKIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4g
SWRlbnRpZmllcjo6YWRkKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgY29uc3QgY2hhciogYykK
IHsKICAgICBpZiAoIWMpCkBAIC0xMTAsNyArMTA2LDUxIEBAIFBhc3NSZWZQdHI8U3RyaW5nSW1w
bD4gSWRlbnRpZmllcjo6YWRkKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgY29uc3QgY2hhciog
YykKICAgICBpZiAoaXRlciAhPSBsaXRlcmFsSWRlbnRpZmllclRhYmxlLmVuZCgpKQogICAgICAg
ICByZXR1cm4gaXRlci0+c2Vjb25kOwogCi0gICAgSGFzaFNldDxTdHJpbmdJbXBsKj46OkFkZFJl
c3VsdCBhZGRSZXN1bHQgPSBpZGVudGlmaWVyVGFibGUuYWRkPGNvbnN0IExDaGFyKiwgSWRlbnRp
ZmllckNTdHJpbmdUcmFuc2xhdG9yPihyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oYykp
OworICAgIEhhc2hTZXQ8U3RyaW5nSW1wbCo+OjpBZGRSZXN1bHQgYWRkUmVzdWx0ID0gaWRlbnRp
ZmllclRhYmxlLmFkZDxjb25zdCBMQ2hhciosIElkZW50aWZpZXJBU0NJSVN0cmluZ1RyYW5zbGF0
b3I+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihjKSk7CisKKyAgICAvLyBJZiB0aGUg
c3RyaW5nIGlzIG5ld2x5LXRyYW5zbGF0ZWQsIHRoZW4gd2UgbmVlZCB0byBhZG9wdCBpdC4KKyAg
ICAvLyBUaGUgYm9vbGVhbiBpbiB0aGUgcGFpciB0ZWxscyB1cyBpZiB0aGF0IGlzIHNvLgorICAg
IFJlZlB0cjxTdHJpbmdJbXBsPiBhZGRlZFN0cmluZyA9IGFkZFJlc3VsdC5pc05ld0VudHJ5ID8g
YWRvcHRSZWYoKmFkZFJlc3VsdC5pdGVyYXRvcikgOiAqYWRkUmVzdWx0Lml0ZXJhdG9yOworCisg
ICAgbGl0ZXJhbElkZW50aWZpZXJUYWJsZS5hZGQoYywgYWRkZWRTdHJpbmcuZ2V0KCkpOworCisg
ICAgcmV0dXJuIGFkZGVkU3RyaW5nLnJlbGVhc2UoKTsKK30KKworc3RydWN0IElkZW50aWZpZXJB
U0NJSUNoYXJCdWZmZXJUcmFuc2xhdG9yIHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25z
dCBDaGFyQnVmZmVyPExDaGFyPiYgYnVmKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFN0cmluZ0hh
c2hlcjo6Y29tcHV0ZUhhc2hBbmRNYXNrVG9wOEJpdHMoYnVmLnMsIGJ1Zi5sZW5ndGgpOworICAg
IH0KKworICAgIHN0YXRpYyBib29sIGVxdWFsKFN0cmluZ0ltcGwqIGNvbnN0JiBzdHIsIGNvbnN0
IENoYXJCdWZmZXI8TENoYXI+JiBidWYpCisgICAgeworICAgICAgICByZXR1cm4gSWRlbnRpZmll
cjo6ZXF1YWwoc3RyLCBidWYucywgYnVmLmxlbmd0aCk7CisgICAgfQorCisgICAgc3RhdGljIHZv
aWQgdHJhbnNsYXRlKFN0cmluZ0ltcGwqJiBsb2NhdGlvbiwgY29uc3QgQ2hhckJ1ZmZlcjxMQ2hh
cj4mIGJ1ZiwgdW5zaWduZWQgaGFzaCkKKyAgICB7CisgICAgICAgIGxvY2F0aW9uID0gU3RyaW5n
SW1wbDo6Y3JlYXRlKGJ1Zi5zLCBidWYubGVuZ3RoKS5sZWFrUmVmKCk7CisgICAgICAgIGxvY2F0
aW9uLT5zZXRIYXNoKGhhc2gpOworICAgIH0KK307CisKK1Bhc3NSZWZQdHI8U3RyaW5nSW1wbD4g
SWRlbnRpZmllcjo6YWRkKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgY29uc3QgY2hhciogYywg
dW5zaWduZWQgbGVuZ3RoKQoreworICAgIEFTU0VSVChjKTsKKyAgICBBU1NFUlQoY1swXSk7Cisg
ICAgaWYgKGxlbmd0aCA9PSAxKQorICAgICAgICByZXR1cm4gYWRkKGdsb2JhbERhdGEsIGdsb2Jh
bERhdGEtPnNtYWxsU3RyaW5ncy5zaW5nbGVDaGFyYWN0ZXJTdHJpbmdSZXAoY1swXSkpOworCisg
ICAgSWRlbnRpZmllclRhYmxlJiBpZGVudGlmaWVyVGFibGUgPSAqZ2xvYmFsRGF0YS0+aWRlbnRp
ZmllclRhYmxlOworICAgIExpdGVyYWxJZGVudGlmaWVyVGFibGUmIGxpdGVyYWxJZGVudGlmaWVy
VGFibGUgPSBpZGVudGlmaWVyVGFibGUubGl0ZXJhbFRhYmxlKCk7CisKKyAgICBjb25zdCBMaXRl
cmFsSWRlbnRpZmllclRhYmxlOjppdGVyYXRvciYgaXRlciA9IGxpdGVyYWxJZGVudGlmaWVyVGFi
bGUuZmluZChjKTsKKyAgICBpZiAoaXRlciAhPSBsaXRlcmFsSWRlbnRpZmllclRhYmxlLmVuZCgp
KQorICAgICAgICByZXR1cm4gaXRlci0+c2Vjb25kOworCisgICAgQ2hhckJ1ZmZlcjxMQ2hhcj4g
Y2hhckJ1ZmZlciA9IHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGMpLCBsZW5ndGgg
fTsKKyAgICBIYXNoU2V0PFN0cmluZ0ltcGwqPjo6QWRkUmVzdWx0IGFkZFJlc3VsdCA9IGlkZW50
aWZpZXJUYWJsZS5hZGQ8Q2hhckJ1ZmZlcjxMQ2hhcj4sIElkZW50aWZpZXJBU0NJSUNoYXJCdWZm
ZXJUcmFuc2xhdG9yPihjaGFyQnVmZmVyKTsKIAogICAgIC8vIElmIHRoZSBzdHJpbmcgaXMgbmV3
bHktdHJhbnNsYXRlZCwgdGhlbiB3ZSBuZWVkIHRvIGFkb3B0IGl0LgogICAgIC8vIFRoZSBib29s
ZWFuIGluIHRoZSBwYWlyIHRlbGxzIHVzIGlmIHRoYXQgaXMgc28uCkBAIC0xMjEsOSArMTYxLDkg
QEAgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBJZGVudGlmaWVyOjphZGQoSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhLCBjb25zdCBjaGFyKiBjKQogICAgIHJldHVybiBhZGRlZFN0cmluZy5yZWxlYXNl
KCk7CiB9CiAKLVBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gSWRlbnRpZmllcjo6YWRkKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgY2hhciogYykKK1Bhc3NSZWZQdHI8U3RyaW5nSW1wbD4gSWRlbnRpZmll
cjo6YWRkKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgY2hhciogYywgdW5zaWduZWQgbGVuZ3RoKQog
ewotICAgIHJldHVybiBhZGQoJmV4ZWMtPmdsb2JhbERhdGEoKSwgYyk7CisgICAgcmV0dXJuIGFk
ZCgmZXhlYy0+Z2xvYmFsRGF0YSgpLCBjLCBsZW5ndGgpOwogfQogCiBQYXNzUmVmUHRyPFN0cmlu
Z0ltcGw+IElkZW50aWZpZXI6OmFkZDgoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBjb25zdCBV
Q2hhciogcywgaW50IGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0lkZW50aWZpZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50
aWZpZXIuaAppbmRleCBjM2Q0ZDQyZTgzYWI1ZDI0M2U3N2U0YWIxNWVlZWFlN2VlZDMwYjc2Li5h
MTY4YWU2Y2QyMDQ0NDM5Njc1ZjA5YTVhMmRmZWM2MzI1Mzk1OGFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBD
b3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAw
OCwgMjAwOSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtMzYsMTEgKzM2LDE1IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHB1Ymxp
YzoKICAgICAgICAgSWRlbnRpZmllcigpIHsgfQogCi0gICAgICAgIElkZW50aWZpZXIoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBjaGFyKiBzKSA6IG1fc3RyaW5nKGFkZChleGVjLCBzKSkgeyB9IC8v
IE9ubHkgdG8gYmUgdXNlZCB3aXRoIHN0cmluZyBsaXRlcmFscy4KLSAgICAgICAgSWRlbnRpZmll
cihFeGVjU3RhdGUqIGV4ZWMsIFN0cmluZ0ltcGwqIHJlcCkgOiBtX3N0cmluZyhhZGQoZXhlYywg
cmVwKSkgeyB9IAorICAgICAgICAvLyBPbmx5IHRvIGJlIHVzZWQgd2l0aCBzdHJpbmcgbGl0ZXJh
bHMuCisgICAgICAgIHRlbXBsYXRlPHVuc2lnbmVkIGNoYXJhY3RlcnNDb3VudD4KKyAgICAgICAg
SWRlbnRpZmllcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IGNoYXIgKCZjaGFyYWN0ZXJzKVtjaGFy
YWN0ZXJzQ291bnRdKSA6IG1fc3RyaW5nKGFkZChleGVjLCBjaGFyYWN0ZXJzLCBjaGFyYWN0ZXJz
Q291bnQgLSAxKSkgeyB9CisgICAgICAgIHRlbXBsYXRlPHVuc2lnbmVkIGNoYXJhY3RlcnNDb3Vu
dD4KKyAgICAgICAgSWRlbnRpZmllcihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGNvbnN0IGNo
YXIgKCZjaGFyYWN0ZXJzKVtjaGFyYWN0ZXJzQ291bnRdKSA6IG1fc3RyaW5nKGFkZChnbG9iYWxE
YXRhLCBjaGFyYWN0ZXJzLCBjaGFyYWN0ZXJzQ291bnQgLSAxKSkgeyB9CisKKyAgICAgICAgSWRl
bnRpZmllcihFeGVjU3RhdGUqIGV4ZWMsIFN0cmluZ0ltcGwqIHJlcCkgOiBtX3N0cmluZyhhZGQo
ZXhlYywgcmVwKSkgeyB9CiAgICAgICAgIElkZW50aWZpZXIoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBVU3RyaW5nJiBzKSA6IG1fc3RyaW5nKGFkZChleGVjLCBzLmltcGwoKSkpIHsgfQogCi0gICAg
ICAgIElkZW50aWZpZXIoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBjb25zdCBjaGFyKiBzKSA6
IG1fc3RyaW5nKGFkZChnbG9iYWxEYXRhLCBzKSkgeyB9IC8vIE9ubHkgdG8gYmUgdXNlZCB3aXRo
IHN0cmluZyBsaXRlcmFscy4KICAgICAgICAgSWRlbnRpZmllcihKU0dsb2JhbERhdGEqIGdsb2Jh
bERhdGEsIGNvbnN0IExDaGFyKiBzLCBpbnQgbGVuZ3RoKSA6IG1fc3RyaW5nKGFkZChnbG9iYWxE
YXRhLCBzLCBsZW5ndGgpKSB7IH0KICAgICAgICAgSWRlbnRpZmllcihKU0dsb2JhbERhdGEqIGds
b2JhbERhdGEsIGNvbnN0IFVDaGFyKiBzLCBpbnQgbGVuZ3RoKSA6IG1fc3RyaW5nKGFkZChnbG9i
YWxEYXRhLCBzLCBsZW5ndGgpKSB7IH0KICAgICAgICAgSWRlbnRpZmllcihKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGEsIFN0cmluZ0ltcGwqIHJlcCkgOiBtX3N0cmluZyhhZGQoZ2xvYmFsRGF0YSwg
cmVwKSkgeyB9IApAQCAtODAsOCArODQsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0
YXRpYyBib29sIGVxdWFsKGNvbnN0IFN0cmluZ0ltcGwqLCBjb25zdCBVQ2hhciosIHVuc2lnbmVk
IGxlbmd0aCk7CiAgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFN0cmluZ0ltcGwqIGEs
IGNvbnN0IFN0cmluZ0ltcGwqIGIpIHsgcmV0dXJuIDo6ZXF1YWwoYSwgYik7IH0KIAotICAgICAg
ICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBhZGQoRXhl
Y1N0YXRlKiwgY29uc3QgY2hhciopOyAvLyBPbmx5IHRvIGJlIHVzZWQgd2l0aCBzdHJpbmcgbGl0
ZXJhbHMuCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IGFkZChKU0dsb2Jh
bERhdGEqLCBjb25zdCBjaGFyKik7IC8vIE9ubHkgdG8gYmUgdXNlZCB3aXRoIHN0cmluZyBsaXRl
cmFscy4KKyAgICAgICAgLy8gT25seSB0byBiZSB1c2VkIHdpdGggc3RyaW5nIGxpdGVyYWxzLgor
ICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBh
ZGQoRXhlY1N0YXRlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkKTsKKyAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RyaW5nSW1wbD4gYWRkKEpTR2xvYmFsRGF0YSosIGNvbnN0IGNoYXIqKTsKKyAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gYWRkKEpTR2xvYmFsRGF0YSosIGNv
bnN0IGNoYXIqLCB1bnNpZ25lZCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBVU3RyaW5nIG1f
c3RyaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmggYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAppbmRleCBlNzA5ODY5ODYwZTQ3YjVhYjQy
NjVkOWQ2YzFjMzEzYWU2OTE5NDAyLi45N2UzZGFiYWNmNjJhM2U2NDY0NmJiMTc5ODVhZjE1MTZh
NWZkYWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaApAQCAtNDYsNyArNDYsOCBAQCB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBfX0NGU3RyaW5nICogQ0ZTdHJpbmdSZWY7CiAvLyBGSVhNRTogVGhp
cyBpcyBhIHRlbXBvcmFyeSBsYXllcmluZyB2aW9sYXRpb24gd2hpbGUgd2UgbW92ZSBzdHJpbmcg
Y29kZSB0byBXVEYuCiAvLyBMYW5kaW5nIHRoZSBmaWxlIG1vdmVzIGluIG9uZSBwYXRjaCwgd2ls
bCBmb2xsb3cgb24gd2l0aCBwYXRjaGVzIHRvIGNoYW5nZSB0aGUgbmFtZXNwYWNlcy4KIG5hbWVz
cGFjZSBKU0Mgewotc3RydWN0IElkZW50aWZpZXJDU3RyaW5nVHJhbnNsYXRvcjsKK3N0cnVjdCBJ
ZGVudGlmaWVyQVNDSUlTdHJpbmdUcmFuc2xhdG9yOworc3RydWN0IElkZW50aWZpZXJBU0NJSUNo
YXJCdWZmZXJUcmFuc2xhdG9yOwogbmFtZXNwYWNlIExMSW50IHsgY2xhc3MgRGF0YTsgfQogY2xh
c3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBJ
ZGVudGlmaWVyQ2hhckJ1ZmZlclRyYW5zbGF0b3I7CkBAIC02OSw3ICs3MCw4IEBAIHR5cGVkZWYg
Ym9vbCAoKklzV2hpdGVTcGFjZUZ1bmN0aW9uUHRyKShVQ2hhcik7CiAKIGNsYXNzIFN0cmluZ0lt
cGwgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFN0cmluZ0ltcGwpOyBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKLSAgICBmcmllbmQgc3RydWN0IEpTQzo6SWRlbnRpZmllckNTdHJpbmdUcmFu
c2xhdG9yOworICAgIGZyaWVuZCBzdHJ1Y3QgSlNDOjpJZGVudGlmaWVyQVNDSUlTdHJpbmdUcmFu
c2xhdG9yOworICAgIGZyaWVuZCBzdHJ1Y3QgSlNDOjpJZGVudGlmaWVyQVNDSUlDaGFyQnVmZmVy
VHJhbnNsYXRvcjsKICAgICBmcmllbmQgc3RydWN0IEpTQzo6SWRlbnRpZmllckNoYXJCdWZmZXJU
cmFuc2xhdG9yPExDaGFyPjsKICAgICBmcmllbmQgc3RydWN0IEpTQzo6SWRlbnRpZmllckNoYXJC
dWZmZXJUcmFuc2xhdG9yPFVDaGFyPjsKICAgICBmcmllbmQgc3RydWN0IEpTQzo6SWRlbnRpZmll
ckxDaGFyRnJvbVVDaGFyVHJhbnNsYXRvcjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156844</attachid>
            <date>2012-08-06 19:59:28 -0700</date>
            <delta_ts>2012-08-07 15:21:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93193-20120806195904.patch</filename>
            <type>text/plain</type>
            <size>9940</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0ODAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NjE5YmViZGViNWYyZGIxYjdlZGM2NDBmZWNlNzg3ZTQ2NDJiZTZkLi40YTllOWM1YmJhMjRhODJh
MWM1YzhiMWQwNTlkOTk4Yzk5ODYwZTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxMi0wOC0wNiAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVXNlIHRoZSBpbml0aWFsaXphdGlvbiBmcm9tIGxpdGVyYWwgZm9y
IEpTQydzIElkZW50aWZpZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05MzE5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2hlcyBtb2RpZnkgSWRlbnRpZmllciBvdCB0YWtlIGFkdmFudGFn
ZSBvZiB0aGUgbmV3IGluaXRpYWxpemF0aW9uIGZyb20gbGl0ZXJhbC4KKworICAgICAgICBJbiBh
ZGRpdGlvbiB0byB0aGUgbWVtb3J5IHNhdmluZ3MgKH42MDBieXRlcyBwZXIgaW5zdGFuY2UpLCB0
aGlzIGdpdmVzIHVzIGEgMiUgc3BlZWQKKyAgICAgICAgaW1wcm92ZW1lbnQgb24gQ29tbW9uSWRl
bnRpZmllcnMgb24gYXZlcmFnZS4KKworICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmll
cnMuY3BwOgorICAgICAgICAoSlNDOjpDb21tb25JZGVudGlmaWVyczo6Q29tbW9uSWRlbnRpZmll
cnMpOgorICAgICAgICBOdWxsIGFuZCBlbXB0eSBzdHJpbmdzIGFyZSBmb3JiaWRkZW4gZm9yIGxp
dGVyYWwgaW5pdGlhbGl6YXRpb24uIFVzZSB0aGUgbW9zdCBlZmZpY2llbnQgY29uc3RydWN0b3Jz
CisgICAgICAgIGluc3RlYWQgb2YgYSBsaXRlcmFsLgorCisgICAgICAgICogcnVudGltZS9JZGVu
dGlmaWVyLmNwcDoKKyAgICAgICAgKElkZW50aWZpZXJBU0NJSVN0cmluZ1RyYW5zbGF0b3IpOgor
ICAgICAgICBSZW5hbWUgSWRlbnRpZmllckNTdHJpbmdUcmFuc2xhdG9yIHRvIElkZW50aWZpZXJB
U0NJSVN0cmluZ1RyYW5zbGF0b3IgdG8gbWFrZSB0aGUgdGV4dCBlbmNvZGluZworICAgICAgICBl
eHBsaWNpdC4KKyAgICAgICAgKEpTQzo6SWRlbnRpZmllckFTQ0lJU3RyaW5nVHJhbnNsYXRvcjo6
aGFzaCk6CisgICAgICAgIChKU0M6OklkZW50aWZpZXJBU0NJSVN0cmluZ1RyYW5zbGF0b3I6OmVx
dWFsKToKKyAgICAgICAgKEpTQzo6SWRlbnRpZmllckFTQ0lJU3RyaW5nVHJhbnNsYXRvcjo6dHJh
bnNsYXRlKTogVXNlIHRoZSBmYXN0IGluaXRpYWxpemF0aW9uIGZyb20gbGl0ZXJhbC4KKyAgICAg
ICAgKEpTQzo6SWRlbnRpZmllcjo6YWRkKToKKyAgICAgICAgKiBydW50aW1lL0lkZW50aWZpZXIu
aDoKKyAgICAgICAgKEpTQzo6SWRlbnRpZmllcjo6SWRlbnRpZmllcik6CisKIDIwMTItMDgtMDYg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQuIEZpeCBtYWtlIGRpc3RjaGVjay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggZDFiMjJlNGY3OWVjM2VkN2MxOTA4
YjNmOTk2ODE1YWNhMzM3MmU4NC4uNTdmMTBmZjFhZDc4ZTgxMWY3YTJjOWMwZjEzNzQ1MWE5NzBk
MmEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMi0wOC0wNiAgQmVuamFtaW4gUG91bGFpbiAg
PGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIHRoZSBpbml0aWFsaXphdGlvbiBm
cm9tIGxpdGVyYWwgZm9yIEpTQydzIElkZW50aWZpZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzE5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOiBVcGRhdGUg
dGhlIG5hbWVzIGZvciB0aGUgSGFzaFRyYW5zbGF0b3IgdXNlZCBieSBJZGVudGlmaWVyLgorCiAy
MDEyLTA4LTA0ICBObydhbSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CiAK
ICAgICAgICAgW1F0XSBVSV9TSURFX0NPTVBPU0lUSU5HIGNvZGUgaGFzIGNvbmZ1c2luZyBuYW1l
cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRp
ZmllcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmll
cnMuY3BwCmluZGV4IDgyYmVkYTMzNjI5NmVlNTU5MTNiYmFmMzZjZDMyZDAwZjc3MmFiOWQuLmU5
MjlkN2E0OTJhZWY4M2Q1Y2E0ODZkMTAyMjBhODdmMzJkZDQzNDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNywgMjAwOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA3LCAyMDA5
LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC0yMywxNCArMjMsMTIgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBjb25z
dCBjaGFyKiBjb25zdCBudWxsQ1N0cmluZyA9IDA7Ci0KICNkZWZpbmUgSU5JVElBTElaRV9QUk9Q
RVJUWV9OQU1FKG5hbWUpICwgbmFtZShnbG9iYWxEYXRhLCAjbmFtZSkKICNkZWZpbmUgSU5JVElB
TElaRV9LRVlXT1JEKG5hbWUpICwgbmFtZSMjS2V5d29yZChnbG9iYWxEYXRhLCAjbmFtZSkKIAog
Q29tbW9uSWRlbnRpZmllcnM6OkNvbW1vbklkZW50aWZpZXJzKEpTR2xvYmFsRGF0YSogZ2xvYmFs
RGF0YSkKLSAgICA6IG51bGxJZGVudGlmaWVyKGdsb2JhbERhdGEsIG51bGxDU3RyaW5nKQotICAg
ICwgZW1wdHlJZGVudGlmaWVyKGdsb2JhbERhdGEsICIiKQorICAgIDogbnVsbElkZW50aWZpZXIo
KQorICAgICwgZW1wdHlJZGVudGlmaWVyKElkZW50aWZpZXI6OkVtcHR5SWRlbnRpZmllcikKICAg
ICAsIHVuZGVyc2NvcmVQcm90byhnbG9iYWxEYXRhLCAiX19wcm90b19fIikKICAgICAsIHRoaXNJ
ZGVudGlmaWVyKGdsb2JhbERhdGEsICJ0aGlzIikKICAgICAsIHVzZVN0cmljdElkZW50aWZpZXIo
Z2xvYmFsRGF0YSwgInVzZSBzdHJpY3QiKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JZGVudGlmaWVyLmNwcAppbmRleCA5YzNkOWNmMTg4NzVjODY3ZjVkNWE4YTM5YTI5N2Q5ZTJi
OWI2MTk1Li4yYmZlODJhNjk0NzA2MTE0MWQzZmI3M2RiY2EwM2Y5NDYyMWRhY2ZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIw
MDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQ2LDcgKzQ2LDcgQEAgdm9p
ZCBkZWxldGVJZGVudGlmaWVyVGFibGUoSWRlbnRpZmllclRhYmxlKiB0YWJsZSkKICAgICBkZWxl
dGUgdGFibGU7CiB9CiAKLXN0cnVjdCBJZGVudGlmaWVyQ1N0cmluZ1RyYW5zbGF0b3Igeworc3Ry
dWN0IElkZW50aWZpZXJBU0NJSVN0cmluZ1RyYW5zbGF0b3IgewogICAgIHN0YXRpYyB1bnNpZ25l
ZCBoYXNoKGNvbnN0IExDaGFyKiBjKQogICAgIHsKICAgICAgICAgcmV0dXJuIFN0cmluZ0hhc2hl
cjo6Y29tcHV0ZUhhc2hBbmRNYXNrVG9wOEJpdHM8TENoYXI+KGMpOwpAQCAtNjAsMTIgKzYwLDgg
QEAgc3RydWN0IElkZW50aWZpZXJDU3RyaW5nVHJhbnNsYXRvciB7CiAgICAgc3RhdGljIHZvaWQg
dHJhbnNsYXRlKFN0cmluZ0ltcGwqJiBsb2NhdGlvbiwgY29uc3QgTENoYXIqIGMsIHVuc2lnbmVk
IGhhc2gpCiAgICAgewogICAgICAgICBzaXplX3QgbGVuZ3RoID0gc3RybGVuKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgY2hhcio+KGMpKTsKLSAgICAgICAgTENoYXIqIGQ7Ci0gICAgICAgIFN0cmlu
Z0ltcGwqIHIgPSBTdHJpbmdJbXBsOjpjcmVhdGVVbmluaXRpYWxpemVkKGxlbmd0aCwgZCkubGVh
a1JlZigpOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSAhPSBsZW5ndGg7IGkrKykKLSAg
ICAgICAgICAgIGRbaV0gPSBjW2ldOwotICAgICAgICByLT5zZXRIYXNoKGhhc2gpOwotICAgICAg
ICBsb2NhdGlvbiA9IHI7CisgICAgICAgIGxvY2F0aW9uID0gU3RyaW5nSW1wbDo6Y3JlYXRlRnJv
bUxpdGVyYWwoYywgbGVuZ3RoKS5sZWFrUmVmKCk7CisgICAgICAgIGxvY2F0aW9uLT5zZXRIYXNo
KGhhc2gpOwogICAgIH0KIH07CiAKQEAgLTk2LDEwICs5Miw4IEBAIHN0cnVjdCBJZGVudGlmaWVy
TENoYXJGcm9tVUNoYXJUcmFuc2xhdG9yIHsKIAogUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBJZGVu
dGlmaWVyOjphZGQoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBjb25zdCBjaGFyKiBjKQogewot
ICAgIGlmICghYykKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYgKCFjWzBdKQotICAgICAgICBy
ZXR1cm4gU3RyaW5nSW1wbDo6ZW1wdHkoKTsKKyAgICBBU1NFUlQoYyk7CisgICAgQVNTRVJUKGNb
MF0pOwogICAgIGlmICghY1sxXSkKICAgICAgICAgcmV0dXJuIGFkZChnbG9iYWxEYXRhLCBnbG9i
YWxEYXRhLT5zbWFsbFN0cmluZ3Muc2luZ2xlQ2hhcmFjdGVyU3RyaW5nUmVwKGNbMF0pKTsKIApA
QCAtMTEwLDcgKzEwNCw3IEBAIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gSWRlbnRpZmllcjo6YWRk
KEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgY29uc3QgY2hhciogYykKICAgICBpZiAoaXRlciAh
PSBsaXRlcmFsSWRlbnRpZmllclRhYmxlLmVuZCgpKQogICAgICAgICByZXR1cm4gaXRlci0+c2Vj
b25kOwogCi0gICAgSGFzaFNldDxTdHJpbmdJbXBsKj46OkFkZFJlc3VsdCBhZGRSZXN1bHQgPSBp
ZGVudGlmaWVyVGFibGUuYWRkPGNvbnN0IExDaGFyKiwgSWRlbnRpZmllckNTdHJpbmdUcmFuc2xh
dG9yPihyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oYykpOworICAgIEhhc2hTZXQ8U3Ry
aW5nSW1wbCo+OjpBZGRSZXN1bHQgYWRkUmVzdWx0ID0gaWRlbnRpZmllclRhYmxlLmFkZDxjb25z
dCBMQ2hhciosIElkZW50aWZpZXJBU0NJSVN0cmluZ1RyYW5zbGF0b3I+KHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgTENoYXIqPihjKSk7CiAKICAgICAvLyBJZiB0aGUgc3RyaW5nIGlzIG5ld2x5LXRy
YW5zbGF0ZWQsIHRoZW4gd2UgbmVlZCB0byBhZG9wdCBpdC4KICAgICAvLyBUaGUgYm9vbGVhbiBp
biB0aGUgcGFpciB0ZWxscyB1cyBpZiB0aGF0IGlzIHNvLgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRlbnRpZmllci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSWRlbnRpZmllci5oCmluZGV4IGMzZDRkNDJlODNhYjVkMjQzZTc3ZTRhYjE1ZWVl
YWU3ZWVkMzBiNzYuLjE5NmZkY2EyM2Y1OWI4YmIzOWFkY2IzNzFhNTAwYjdmNDRhNzAwMTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmgKQEAgLTEsNSArMSw1
IEBACiAvKgotICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAy
MDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zNSwxMiArMzUsMTggQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBTdHJ1Y3R1cmU7CiAgICAgcHVibGljOgogICAgICAg
ICBJZGVudGlmaWVyKCkgeyB9CisgICAgICAgIGVudW0gRW1wdHlJZGVudGlmaWVyRmxhZyB7IEVt
cHR5SWRlbnRpZmllciB9OworICAgICAgICBJZGVudGlmaWVyKEVtcHR5SWRlbnRpZmllckZsYWcp
IDogbV9zdHJpbmcoU3RyaW5nSW1wbDo6ZW1wdHkoKSkgeyB9CiAKLSAgICAgICAgSWRlbnRpZmll
cihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IGNoYXIqIHMpIDogbV9zdHJpbmcoYWRkKGV4ZWMsIHMp
KSB7IH0gLy8gT25seSB0byBiZSB1c2VkIHdpdGggc3RyaW5nIGxpdGVyYWxzLgotICAgICAgICBJ
ZGVudGlmaWVyKEV4ZWNTdGF0ZSogZXhlYywgU3RyaW5nSW1wbCogcmVwKSA6IG1fc3RyaW5nKGFk
ZChleGVjLCByZXApKSB7IH0gCisgICAgICAgIC8vIE9ubHkgdG8gYmUgdXNlZCB3aXRoIHN0cmlu
ZyBsaXRlcmFscy4KKyAgICAgICAgdGVtcGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyc0NvdW50Pgor
ICAgICAgICBJZGVudGlmaWVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgY2hhciAoJmNoYXJhY3Rl
cnMpW2NoYXJhY3RlcnNDb3VudF0pIDogbV9zdHJpbmcoYWRkKGV4ZWMsIGNoYXJhY3RlcnMpKSB7
IH0KKyAgICAgICAgdGVtcGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyc0NvdW50PgorICAgICAgICBJ
ZGVudGlmaWVyKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgY29uc3QgY2hhciAoJmNoYXJhY3Rl
cnMpW2NoYXJhY3RlcnNDb3VudF0pIDogbV9zdHJpbmcoYWRkKGdsb2JhbERhdGEsIGNoYXJhY3Rl
cnMpKSB7IH0KKworICAgICAgICBJZGVudGlmaWVyKEV4ZWNTdGF0ZSogZXhlYywgU3RyaW5nSW1w
bCogcmVwKSA6IG1fc3RyaW5nKGFkZChleGVjLCByZXApKSB7IH0KICAgICAgICAgSWRlbnRpZmll
cihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFVTdHJpbmcmIHMpIDogbV9zdHJpbmcoYWRkKGV4ZWMs
IHMuaW1wbCgpKSkgeyB9CiAKLSAgICAgICAgSWRlbnRpZmllcihKU0dsb2JhbERhdGEqIGdsb2Jh
bERhdGEsIGNvbnN0IGNoYXIqIHMpIDogbV9zdHJpbmcoYWRkKGdsb2JhbERhdGEsIHMpKSB7IH0g
Ly8gT25seSB0byBiZSB1c2VkIHdpdGggc3RyaW5nIGxpdGVyYWxzLgogICAgICAgICBJZGVudGlm
aWVyKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgY29uc3QgTENoYXIqIHMsIGludCBsZW5ndGgp
IDogbV9zdHJpbmcoYWRkKGdsb2JhbERhdGEsIHMsIGxlbmd0aCkpIHsgfQogICAgICAgICBJZGVu
dGlmaWVyKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgY29uc3QgVUNoYXIqIHMsIGludCBsZW5n
dGgpIDogbV9zdHJpbmcoYWRkKGdsb2JhbERhdGEsIHMsIGxlbmd0aCkpIHsgfQogICAgICAgICBJ
ZGVudGlmaWVyKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgU3RyaW5nSW1wbCogcmVwKSA6IG1f
c3RyaW5nKGFkZChnbG9iYWxEYXRhLCByZXApKSB7IH0gCkBAIC04MCw4ICs4Niw5IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBTdHJpbmdJbXBsKiwg
Y29uc3QgVUNoYXIqLCB1bnNpZ25lZCBsZW5ndGgpOwogICAgICAgICBzdGF0aWMgYm9vbCBlcXVh
bChjb25zdCBTdHJpbmdJbXBsKiBhLCBjb25zdCBTdHJpbmdJbXBsKiBiKSB7IHJldHVybiA6OmVx
dWFsKGEsIGIpOyB9CiAKLSAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFBhc3NSZWZQ
dHI8U3RyaW5nSW1wbD4gYWRkKEV4ZWNTdGF0ZSosIGNvbnN0IGNoYXIqKTsgLy8gT25seSB0byBi
ZSB1c2VkIHdpdGggc3RyaW5nIGxpdGVyYWxzLgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJpbmdJbXBsPiBhZGQoSlNHbG9iYWxEYXRhKiwgY29uc3QgY2hhciopOyAvLyBPbmx5IHRvIGJl
IHVzZWQgd2l0aCBzdHJpbmcgbGl0ZXJhbHMuCisgICAgICAgIC8vIE9ubHkgdG8gYmUgdXNlZCB3
aXRoIHN0cmluZyBsaXRlcmFscy4KKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RyaW5nSW1w
bD4gYWRkKEpTR2xvYmFsRGF0YSosIGNvbnN0IGNoYXIqKTsKKyAgICAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgc3RhdGljIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gYWRkKEV4ZWNTdGF0ZSosIGNvbnN0
IGNoYXIqKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFVTdHJpbmcgbV9zdHJpbmc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IGU3MDk4Njk4NjBlNDdiNWFiNDI2NWQ5ZDZjMWMzMTNh
ZTY5MTk0MDIuLmRiMzE3NzMyMGIxMTY3ODc4NmY5YTNmNDI1Mzk5ZDA0ZDU0ZTVkNzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nSW1wbC5oCkBAIC00Niw3ICs0Niw3IEBAIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IF9fQ0ZTdHJpbmcgKiBDRlN0cmluZ1JlZjsKIC8vIEZJWE1FOiBUaGlzIGlzIGEgdGVtcG9y
YXJ5IGxheWVyaW5nIHZpb2xhdGlvbiB3aGlsZSB3ZSBtb3ZlIHN0cmluZyBjb2RlIHRvIFdURi4K
IC8vIExhbmRpbmcgdGhlIGZpbGUgbW92ZXMgaW4gb25lIHBhdGNoLCB3aWxsIGZvbGxvdyBvbiB3
aXRoIHBhdGNoZXMgdG8gY2hhbmdlIHRoZSBuYW1lc3BhY2VzLgogbmFtZXNwYWNlIEpTQyB7Ci1z
dHJ1Y3QgSWRlbnRpZmllckNTdHJpbmdUcmFuc2xhdG9yOworc3RydWN0IElkZW50aWZpZXJBU0NJ
SVN0cmluZ1RyYW5zbGF0b3I7CiBuYW1lc3BhY2UgTExJbnQgeyBjbGFzcyBEYXRhOyB9CiBjbGFz
cyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IElk
ZW50aWZpZXJDaGFyQnVmZmVyVHJhbnNsYXRvcjsKQEAgLTY5LDcgKzY5LDcgQEAgdHlwZWRlZiBi
b29sICgqSXNXaGl0ZVNwYWNlRnVuY3Rpb25QdHIpKFVDaGFyKTsKIAogY2xhc3MgU3RyaW5nSW1w
bCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU3RyaW5nSW1wbCk7IFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwotICAgIGZyaWVuZCBzdHJ1Y3QgSlNDOjpJZGVudGlmaWVyQ1N0cmluZ1RyYW5z
bGF0b3I7CisgICAgZnJpZW5kIHN0cnVjdCBKU0M6OklkZW50aWZpZXJBU0NJSVN0cmluZ1RyYW5z
bGF0b3I7CiAgICAgZnJpZW5kIHN0cnVjdCBKU0M6OklkZW50aWZpZXJDaGFyQnVmZmVyVHJhbnNs
YXRvcjxMQ2hhcj47CiAgICAgZnJpZW5kIHN0cnVjdCBKU0M6OklkZW50aWZpZXJDaGFyQnVmZmVy
VHJhbnNsYXRvcjxVQ2hhcj47CiAgICAgZnJpZW5kIHN0cnVjdCBKU0M6OklkZW50aWZpZXJMQ2hh
ckZyb21VQ2hhclRyYW5zbGF0b3I7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>