<?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>130288</bug_id>
          
          <creation_ts>2014-03-14 22:53:51 -0700</creation_ts>
          <short_desc>It should be possible to adjust DFG and FTL compiler thread priorities</short_desc>
          <delta_ts>2014-06-27 14:59:20 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>990825</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-03-14 22:53:51 -0700</bug_when>
    <thetext>On systems with 1 or 2 cores, the DFG and FTL compiler threads might compete with each other or the main thread.  By lowering the thread priorities of the compilation threads, the main thread would get higher priority.  Given the nature of the DFG and FTL, it makes sense to elevate the DFG compiler threads above the FTL compiler threads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990831</commentid>
    <comment_count>1</comment_count>
      <attachid>226811</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-03-14 23:24:21 -0700</bug_when>
    <thetext>Created attachment 226811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990848</commentid>
    <comment_count>2</comment_count>
      <attachid>226811</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-03-15 00:47:03 -0700</bug_when>
    <thetext>Comment on attachment 226811
Patch

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

&gt; Source/WTF/ChangeLog:10
&gt; +        pools.  For two core systems, there might be thread runnable threads, the main thread,

I think you meant &quot;three&quot; and not &quot;thread&quot;.

&gt; Source/WTF/ChangeLog:14
&gt; +        compilation threads, the main thread can run.  Further tests may suggest better values
&gt; +        for the new options, priorityDeltaOfDFGCompilerThreads and priorityDeltaOfFTLCompilerThreads.

What are the consequences of the values in this patch? We don&apos;t usually make performance changes without comment on benchmark effects.

&gt; Source/WTF/wtf/ThreadingPthreads.cpp:207
&gt; +void changedThreadPriority(ThreadIdentifier threadID, int delta)

I think you meant &quot;changeThreadPriority&quot;.

&gt; Source/WTF/wtf/ThreadingWin.cpp:249
&gt; +void changedThreadPriority(ThreadIdentifier threadID, int delta)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990855</commentid>
    <comment_count>3</comment_count>
      <attachid>226811</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-03-15 07:24:31 -0700</bug_when>
    <thetext>Comment on attachment 226811
Patch

R=me, but what Geoff said.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990869</commentid>
    <comment_count>4</comment_count>
      <attachid>226823</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-03-15 09:13:37 -0700</bug_when>
    <thetext>Created attachment 226823
Updated patch for landing

Made suggested changes.  Fixed windows build.  Added performance benefit of the change to the ChangeLogs.

This changes gives a net performance improvement between 1-3% on a 2 core device across SunSpider, Octane, Kraken and AsmBench.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992136</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-03-19 09:41:46 -0700</bug_when>
    <thetext>This patch was wrong because it set the priority of pthread_self() instead of the passed-in thread. It was fixed in &lt;http://trac.webkit.org/changeset/165691&gt;, netting a much bigger speedup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013290</commentid>
    <comment_count>6</comment_count>
      <attachid>226811</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-06-04 03:30:21 -0700</bug_when>
    <thetext>Comment on attachment 226811
Patch

Cleared Filip Pizlo&apos;s review+ from obsolete attachment 226811 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226811</attachid>
            <date>2014-03-14 23:24:21 -0700</date>
            <delta_ts>2014-06-04 03:30:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>130288.patch</filename>
            <type>text/plain</type>
            <size>9955</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY1Njc4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBA
CisyMDE0LTAzLTE0ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBhZGp1c3QgREZHIGFuZCBGVEwgY29tcGlsZXIg
dGhyZWFkIHByaW9yaXRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzMDI4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZGVkIGFiaWxpdHkgdG8gY2hhbmdlIHRocmVhZCBwcmlvcml0aWVzIHJlbGF0
aXZlIHRvIGl0cyBjdXJyZW50IHByaW9yaXR5LgorICAgICAgICBDcmVhdGVkIG9wdGlvbnMgdG8g
YWRqdXN0IHRoZSBwcmlvcml0eSBvZiB0aGUgREZHIGFuZCBGVEwgY29tcGlsYXRpb24gd29yayB0
aHJlYWQKKyAgICAgICAgcG9vbHMuICBGb3IgdHdvIGNvcmUgc3lzdGVtcywgdGhlcmUgbWlnaHQg
YmUgdGhyZWFkIHJ1bm5hYmxlIHRocmVhZHMsIHRoZSBtYWluIHRocmVhZCwKKyAgICAgICAgdGhl
IERGRyBjb21waWxhdGlvbiB0aHJlYWQgYW5kIHRoZSBGVEwgY29tcGlsYXRpb24gdGhyZWFkLiAg
V2l0aCB0aGUgc2FtZSBwcmlvcml0eSwKKyAgICAgICAgdGhlIHNjaGVkdWxlciBpcyBmcmVlIHRv
IHNjaGVkdWxlIHdoYXRldmVyIHRocmVhZCBpdCB3YW50cy4gIEJ5IGxvd2VyaW5nIHRoZQorICAg
ICAgICBjb21waWxhdGlvbiB0aHJlYWRzLCB0aGUgbWFpbiB0aHJlYWQgY2FuIHJ1bi4gIEZ1cnRo
ZXIgdGVzdHMgbWF5IHN1Z2dlc3QgYmV0dGVyIHZhbHVlcworICAgICAgICBmb3IgdGhlIG5ldyBv
cHRpb25zLCBwcmlvcml0eURlbHRhT2ZERkdDb21waWxlclRocmVhZHMgYW5kIHByaW9yaXR5RGVs
dGFPZkZUTENvbXBpbGVyVGhyZWFkcy4KKworICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAg
KEpTQzo6REZHOjpXb3JrbGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6REZHOjplbnN1cmVH
bG9iYWxERkdXb3JrbGlzdCk6CisgICAgICAgIChKU0M6OkRGRzo6ZW5zdXJlR2xvYmFsRlRMV29y
a2xpc3QpOgorICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5oOgorICAgICAgICAqIHJ1bnRpbWUv
T3B0aW9ucy5jcHA6CisgICAgICAgIChKU0M6OmNvbXB1dGVQcmlvcml0eURlbHRhT2ZXb3JrZXJU
aHJlYWRzKToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKwogMjAxNC0wMy0xNCAgTWFy
ayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUgcHJvZHVjdGlvbiBi
dWlsZC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCShy
ZXZpc2lvbiAxNjU2MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsMjAgKzU1LDIyIEBAIFdvcmtsaXN0Ojp+V29ya2xp
c3QoKQogICAgIEFTU0VSVCghbV9udW1iZXJPZkFjdGl2ZVRocmVhZHMpOwogfQogCi12b2lkIFdv
cmtsaXN0OjpmaW5pc2hDcmVhdGlvbih1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMpCit2b2lkIFdv
cmtsaXN0OjpmaW5pc2hDcmVhdGlvbih1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCByZWxh
dGl2ZVByaW9yaXR5KQogewogICAgIFJFTEVBU0VfQVNTRVJUKG51bWJlck9mVGhyZWFkcyk7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gbnVtYmVyT2ZUaHJlYWRzOyBpLS07KSB7CiAgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxUaHJlYWREYXRhPiBkYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxUaHJlYWRE
YXRhPih0aGlzKTsKICAgICAgICAgZGF0YS0+bV9pZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKHRo
cmVhZEZ1bmN0aW9uLCBkYXRhLmdldCgpLCAiSlNDIENvbXBpbGF0aW9uIFRocmVhZCIpOworICAg
ICAgICBpZiAocmVsYXRpdmVQcmlvcml0eSkKKyAgICAgICAgICAgIGNoYW5nZWRUaHJlYWRQcmlv
cml0eShkYXRhLT5tX2lkZW50aWZpZXIsIHJlbGF0aXZlUHJpb3JpdHkpOwogICAgICAgICBtX3Ro
cmVhZHMuYXBwZW5kKHN0ZDo6bW92ZShkYXRhKSk7CiAgICAgfQogfQogCi1QYXNzUmVmUHRyPFdv
cmtsaXN0PiBXb3JrbGlzdDo6Y3JlYXRlKHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcykKK1Bhc3NS
ZWZQdHI8V29ya2xpc3Q+IFdvcmtsaXN0OjpjcmVhdGUodW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRz
LCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKIHsKICAgICBSZWZQdHI8V29ya2xpc3Q+IHJlc3VsdCA9
IGFkb3B0UmVmKG5ldyBXb3JrbGlzdCgpKTsKLSAgICByZXN1bHQtPmZpbmlzaENyZWF0aW9uKG51
bWJlck9mVGhyZWFkcyk7CisgICAgcmVzdWx0LT5maW5pc2hDcmVhdGlvbihudW1iZXJPZlRocmVh
ZHMsIHJlbGF0aXZlUHJpb3JpdHkpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTMyMSw3
ICszMjMsNyBAQCBXb3JrbGlzdCogZW5zdXJlR2xvYmFsREZHV29ya2xpc3QoKQogewogICAgIHN0
YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZzsKICAg
ICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZywgW10gewot
ICAgICAgICB0aGVHbG9iYWxERkdXb3JrbGlzdCA9IFdvcmtsaXN0OjpjcmVhdGUoT3B0aW9uczo6
bnVtYmVyT2ZERkdDb21waWxlclRocmVhZHMoKSkubGVha1JlZigpOworICAgICAgICB0aGVHbG9i
YWxERkdXb3JrbGlzdCA9IFdvcmtsaXN0OjpjcmVhdGUoT3B0aW9uczo6bnVtYmVyT2ZERkdDb21w
aWxlclRocmVhZHMoKSwgT3B0aW9uczo6cHJpb3JpdHlEZWx0YU9mREZHQ29tcGlsZXJUaHJlYWRz
KCkpLmxlYWtSZWYoKTsKICAgICB9KTsKICAgICByZXR1cm4gdGhlR2xvYmFsREZHV29ya2xpc3Q7
CiB9CkBAIC0zMzcsNyArMzM5LDcgQEAgV29ya2xpc3QqIGVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0
KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0
T25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25j
ZUZsYWcsIFtdIHsKLSAgICAgICAgdGhlR2xvYmFsRlRMV29ya2xpc3QgPSBXb3JrbGlzdDo6Y3Jl
YXRlKE9wdGlvbnM6Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKKyAg
ICAgICAgdGhlR2xvYmFsRlRMV29ya2xpc3QgPSBXb3JrbGlzdDo6Y3JlYXRlKE9wdGlvbnM6Om51
bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9yaXR5RGVsdGFPZkZUTENv
bXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHRoZUdsb2Jh
bEZUTFdvcmtsaXN0OwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3Jr
bGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xp
c3QuaAkocmV2aXNpb24gMTY1NjI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdX
b3JrbGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogICAg
IH5Xb3JrbGlzdCgpOwogICAgIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdvcmtsaXN0PiBjcmVh
dGUodW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXb3Jr
bGlzdD4gY3JlYXRlKHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3Jp
dHkgPSAwKTsKICAgICAKICAgICB2b2lkIGVucXVldWUoUGFzc1JlZlB0cjxQbGFuPik7CiAgICAg
CkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICAKIHByaXZhdGU6CiAgICAgV29ya2xpc3Qo
KTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcyk7Cisg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbih1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCk7CiAg
ICAgCiAgICAgdm9pZCBydW5UaHJlYWQoVGhyZWFkRGF0YSopOwogICAgIHN0YXRpYyB2b2lkIHRo
cmVhZEZ1bmN0aW9uKHZvaWQqIGFyZ3VtZW50KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuY3BwCShyZXZpc2lvbiAxNjU2MjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDYgKzEw
MSwxNCBAQCBzdGF0aWMgdW5zaWduZWQgY29tcHV0ZU51bWJlck9mV29ya2VyVGhyCiAgICAgcmV0
dXJuIHN0ZDo6bWF4KGNwdXNUb1VzZSwgbWluaW11bSk7CiB9CiAKK3N0YXRpYyBpbnQzMl90IGNv
bXB1dGVQcmlvcml0eURlbHRhT2ZXb3JrZXJUaHJlYWRzKGludDMyX3QgdHdvQ29yZVByaW9yaXR5
RGVsdGEsIGludDMyX3QgbXVsdGlDb3JlUHJpb3JpdHlEZWx0YSkKK3sKKyAgICBpZiAoV1RGOjpu
dW1iZXJPZlByb2Nlc3NvckNvcmVzKCkgPD0gMikKKyAgICAgICAgcmV0dXJuIHR3b0NvcmVQcmlv
cml0eURlbHRhOworCisgICAgcmV0dXJuIG11bHRpQ29yZVByaW9yaXR5RGVsdGE7Cit9CisKIHN0
YXRpYyB1bnNpZ25lZCBjb21wdXRlTnVtYmVyT2ZHQ01hcmtlcnModW5zaWduZWQgbWF4TnVtYmVy
T2ZHQ01hcmtlcnMpCiB7CiAjaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkocmV2aXNpb24gMTY1NjI5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjAs
NiArMTYwLDggQEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25SYW5nZTsKICAgICB2KGJvb2ws
IGVuYWJsZUNvbmN1cnJlbnRKSVQsIHRydWUpIFwKICAgICB2KHVuc2lnbmVkLCBudW1iZXJPZkRG
R0NvbXBpbGVyVGhyZWFkcywgY29tcHV0ZU51bWJlck9mV29ya2VyVGhyZWFkcygyLCAyKSAtIDEp
IFwKICAgICB2KHVuc2lnbmVkLCBudW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkcywgY29tcHV0ZU51
bWJlck9mV29ya2VyVGhyZWFkcyg4LCAyKSAtIDEpIFwKKyAgICB2KGludDMyLCBwcmlvcml0eURl
bHRhT2ZERkdDb21waWxlclRocmVhZHMsIGNvbXB1dGVQcmlvcml0eURlbHRhT2ZXb3JrZXJUaHJl
YWRzKC0xLCAwKSkgXAorICAgIHYoaW50MzIsIHByaW9yaXR5RGVsdGFPZkZUTENvbXBpbGVyVGhy
ZWFkcywgY29tcHV0ZVByaW9yaXR5RGVsdGFPZldvcmtlclRocmVhZHMoLTIsIDApKSBcCiAgICAg
XAogICAgIHYoYm9vbCwgZW5hYmxlUHJvZmlsZXIsIGZhbHNlKSBcCiAgICAgXApJbmRleDogU291
cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE2NTY3OCkKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTQtMDMtMTQgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBs
ZS5jb20+CisKKyAgICAgICAgSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGFkanVzdCBERkcgYW5k
IEZUTCBjb21waWxlciB0aHJlYWQgcHJpb3JpdGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMjg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYWJpbGl0eSB0byBjaGFuZ2UgdGhyZWFkIHBy
aW9yaXRpZXMgcmVsYXRpdmUgdG8gaXRzIGN1cnJlbnQgcHJpb3JpdHkuCisgICAgICAgIENyZWF0
ZWQgb3B0aW9ucyB0byBhZGp1c3QgdGhlIHByaW9yaXR5IG9mIHRoZSBERkcgYW5kIEZUTCBjb21w
aWxhdGlvbiB3b3JrIHRocmVhZAorICAgICAgICBwb29scy4gIEZvciB0d28gY29yZSBzeXN0ZW1z
LCB0aGVyZSBtaWdodCBiZSB0aHJlYWQgcnVubmFibGUgdGhyZWFkcywgdGhlIG1haW4gdGhyZWFk
LAorICAgICAgICB0aGUgREZHIGNvbXBpbGF0aW9uIHRocmVhZCBhbmQgdGhlIEZUTCBjb21waWxh
dGlvbiB0aHJlYWQuICBXaXRoIHRoZSBzYW1lIHByaW9yaXR5LAorICAgICAgICB0aGUgc2NoZWR1
bGVyIGlzIGZyZWUgdG8gc2NoZWR1bGUgd2hhdGV2ZXIgdGhyZWFkIGl0IHdhbnRzLiAgQnkgbG93
ZXJpbmcgdGhlCisgICAgICAgIGNvbXBpbGF0aW9uIHRocmVhZHMsIHRoZSBtYWluIHRocmVhZCBj
YW4gcnVuLiAgRnVydGhlciB0ZXN0cyBtYXkgc3VnZ2VzdCBiZXR0ZXIgdmFsdWVzCisgICAgICAg
IGZvciB0aGUgbmV3IG9wdGlvbnMsIHByaW9yaXR5RGVsdGFPZkRGR0NvbXBpbGVyVGhyZWFkcyBh
bmQgcHJpb3JpdHlEZWx0YU9mRlRMQ29tcGlsZXJUaHJlYWRzLgorCisgICAgICAgICogd3RmL1Ro
cmVhZGluZy5oOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHA6CisgICAgICAg
IChXVEY6OmNoYW5nZWRUaHJlYWRQcmlvcml0eSk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1dp
bi5jcHA6CisgICAgICAgIChXVEY6OmNoYW5nZWRUaHJlYWRQcmlvcml0eSk6CisKIDIwMTQtMDMt
MTQgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhlIHByb2R1
Y3Rpb24gYnVpbGQuCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAkocmV2aXNpb24gMTY1NjI5KQorKysgU291
cmNlL1dURi93dGYvVGhyZWFkaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTg5LDYgKzg5LDcgQEAg
VGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWRJbnRlcm5hbChUaAogdm9pZCBpbml0aWFsaXpl
Q3VycmVudFRocmVhZEludGVybmFsKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpOwogCiBXVEZfRVhQ
T1JUX1BSSVZBVEUgVGhyZWFkSWRlbnRpZmllciBjdXJyZW50VGhyZWFkKCk7CitXVEZfRVhQT1JU
X1BSSVZBVEUgdm9pZCBjaGFuZ2VkVGhyZWFkUHJpb3JpdHkoVGhyZWFkSWRlbnRpZmllciwgaW50
KTsKIFdURl9FWFBPUlRfUFJJVkFURSBpbnQgd2FpdEZvclRocmVhZENvbXBsZXRpb24oVGhyZWFk
SWRlbnRpZmllcik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZXRhY2hUaHJlYWQoVGhyZWFk
SWRlbnRpZmllcik7CiAKQEAgLTk3LDYgKzk4LDcgQEAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
ZGV0YWNoVGhyZWFkKFRocgogdXNpbmcgV1RGOjpUaHJlYWRJZGVudGlmaWVyOwogdXNpbmcgV1RG
OjpjcmVhdGVUaHJlYWQ7CiB1c2luZyBXVEY6OmN1cnJlbnRUaHJlYWQ7Cit1c2luZyBXVEY6OmNo
YW5nZWRUaHJlYWRQcmlvcml0eTsKIHVzaW5nIFdURjo6ZGV0YWNoVGhyZWFkOwogdXNpbmcgV1RG
Ojp3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbjsKIApJbmRleDogU291cmNlL1dURi93dGYvVGhyZWFk
aW5nUHRocmVhZHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0
aHJlYWRzLmNwcAkocmV2aXNpb24gMTY1NjI5KQorKysgU291cmNlL1dURi93dGYvVGhyZWFkaW5n
UHRocmVhZHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDMsNyArMjAzLDMwIEBAIHZvaWQgaW5p
dGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbChjb24KICAgICBBU1NFUlQoaWQpOwogICAgIFRo
cmVhZElkZW50aWZpZXJEYXRhOjppbml0aWFsaXplKGlkKTsKIH0KKyAgICAKK3ZvaWQgY2hhbmdl
ZFRocmVhZFByaW9yaXR5KFRocmVhZElkZW50aWZpZXIgdGhyZWFkSUQsIGludCBkZWx0YSkKK3sK
KyAgICBwdGhyZWFkX3QgcHRocmVhZEhhbmRsZTsKKyAgICBBU1NFUlQodGhyZWFkSUQpOworCisg
ICAgeworICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIGxvY2sgYWNyb3NzIHRoZSBjYWxsIHRv
IGpvaW4sIHNpbmNlIHRoYXQgY2FuIGJsb2NrIG91ciB0aHJlYWQgYW5kIGNhdXNlIGRlYWRsb2Nr
LgorICAgICAgICBNdXRleExvY2tlciBsb2NrZXIodGhyZWFkTWFwTXV0ZXgoKSk7CisgICAgICAg
IHB0aHJlYWRIYW5kbGUgPSBwdGhyZWFkSGFuZGxlRm9ySWRlbnRpZmllcldpdGhMb2NrQWxyZWFk
eUhlbGQodGhyZWFkSUQpOworICAgICAgICBBU1NFUlQocHRocmVhZEhhbmRsZSk7CisgICAgfQor
CisgICAgaW50IHBvbGljeTsKKyAgICBzdHJ1Y3Qgc2NoZWRfcGFyYW0gcGFyYW07CiAKKyAgICBp
ZiAocHRocmVhZF9nZXRzY2hlZHBhcmFtKHB0aHJlYWRfc2VsZigpLCAmcG9saWN5LCAmcGFyYW0p
KQorICAgICAgICByZXR1cm47CisKKyAgICBwYXJhbS5zY2hlZF9wcmlvcml0eSArPSBkZWx0YTsK
KworICAgIHB0aHJlYWRfc2V0c2NoZWRwYXJhbShwdGhyZWFkX3NlbGYoKSwgcG9saWN5LCAmcGFy
YW0pOworfQorICAgIAogaW50IHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKFRocmVhZElkZW50aWZp
ZXIgdGhyZWFkSUQpCiB7CiAgICAgcHRocmVhZF90IHB0aHJlYWRIYW5kbGU7CkluZGV4OiBTb3Vy
Y2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3Rm
L1RocmVhZGluZ1dpbi5jcHAJKHJldmlzaW9uIDE2NTYyOSkKKysrIFNvdXJjZS9XVEYvd3RmL1Ro
cmVhZGluZ1dpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0Niw2ICsyNDYsMjAgQEAgVGhyZWFk
SWRlbnRpZmllciBjcmVhdGVUaHJlYWRJbnRlcm5hbChUaAogICAgIHJldHVybiB0aHJlYWRJRDsK
IH0KIAordm9pZCBjaGFuZ2VkVGhyZWFkUHJpb3JpdHkoVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJ
RCwgaW50IGRlbHRhKQoreworICAgIEFTU0VSVCh0aHJlYWRJRCk7CisKKyAgICBIQU5ETEUgdGhy
ZWFkSGFuZGxlID0gdGhyZWFkSGFuZGxlRm9ySWRlbnRpZmllcih0aHJlYWRJRCk7CisgICAgaWYg
KCF0aHJlYWRIYW5kbGUpCisgICAgICAgIExPR19FUlJPUigiVGhyZWFkSWRlbnRpZmllciAldSBk
aWQgbm90IGNvcnJlc3BvbmQgdG8gYW4gYWN0aXZlIHRocmVhZCIsIHRocmVhZElEKTsKKworICAg
IHB0aHJlYWRfdCBwdGhyZWFkSGFuZGxlOworICAgIEFTU0VSVCh0aHJlYWRJRCk7CisKKyAgICBT
ZXRUaHJlYWRQcmlvcml0eSh0aHJlYWRIYW5kbGUsIFRIUkVBRF9QUklPUklUWV9OT1JNQUwgKyBk
ZWx0YSk7Cit9CisKIGludCB3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbihUaHJlYWRJZGVudGlmaWVy
IHRocmVhZElEKQogewogICAgIEFTU0VSVCh0aHJlYWRJRCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226823</attachid>
            <date>2014-03-15 09:13:37 -0700</date>
            <delta_ts>2014-03-15 17:22:56 -0700</delta_ts>
            <desc>Updated patch for landing</desc>
            <filename>130288-2.patch</filename>
            <type>text/plain</type>
            <size>10174</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY1Njc4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDE0LTAzLTE0ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBhZGp1c3QgREZHIGFuZCBGVEwgY29tcGlsZXIg
dGhyZWFkIHByaW9yaXRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzMDI4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZGVkIGFiaWxpdHkgdG8gY2hhbmdlIHRocmVhZCBwcmlvcml0aWVzIHJlbGF0
aXZlIHRvIGl0cyBjdXJyZW50IHByaW9yaXR5LgorICAgICAgICBDcmVhdGVkIG9wdGlvbnMgdG8g
YWRqdXN0IHRoZSBwcmlvcml0eSBvZiB0aGUgREZHIGFuZCBGVEwgY29tcGlsYXRpb24gd29yayB0
aHJlYWQKKyAgICAgICAgcG9vbHMuICBGb3IgdHdvIGNvcmUgc3lzdGVtcywgdGhlcmUgbWlnaHQg
YmUgdGhyZWUgcnVubmFibGUgdGhyZWFkcywgdGhlIG1haW4gdGhyZWFkLAorICAgICAgICB0aGUg
REZHIGNvbXBpbGF0aW9uIHRocmVhZCBhbmQgdGhlIEZUTCBjb21waWxhdGlvbiB0aHJlYWQuICBX
aXRoIHRoZSBzYW1lIHByaW9yaXR5LAorICAgICAgICB0aGUgc2NoZWR1bGVyIGlzIGZyZWUgdG8g
c2NoZWR1bGUgd2hhdGV2ZXIgdGhyZWFkIGl0IHdhbnRzLiAgQnkgbG93ZXJpbmcgdGhlCisgICAg
ICAgIGNvbXBpbGF0aW9uIHRocmVhZHMsIHRoZSBtYWluIHRocmVhZCBjYW4gcnVuLiAgRnVydGhl
ciB0ZXN0cyBtYXkgc3VnZ2VzdCBiZXR0ZXIgdmFsdWVzCisgICAgICAgIGZvciB0aGUgbmV3IG9w
dGlvbnMsIHByaW9yaXR5RGVsdGFPZkRGR0NvbXBpbGVyVGhyZWFkcyBhbmQgcHJpb3JpdHlEZWx0
YU9mRlRMQ29tcGlsZXJUaHJlYWRzLgorCisgICAgICAgIEZvciBhIHR3by1jb3JlIGRldmljZSwg
dGhpcyBjaGFuZ2UgaGFzIGEgbmV0IHBvc2l0aXZlIGltcHJvdmVtZW50IG9mIDEtMyUgYWNyb3Nz
CisgICAgICAgIFN1blNwaWRlciwgT2N0YW5lLCBLcmFrZW4gYW5kIEFzbUJlbmNoLgorCisgICAg
ICAgICogZGZnL0RGR1dvcmtsaXN0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpXb3JrbGlzdDo6
ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0OjpjcmVhdGUpOgor
ICAgICAgICAoSlNDOjpERkc6OmVuc3VyZUdsb2JhbERGR1dvcmtsaXN0KToKKyAgICAgICAgKEpT
Qzo6REZHOjplbnN1cmVHbG9iYWxGVExXb3JrbGlzdCk6CisgICAgICAgICogZGZnL0RGR1dvcmts
aXN0Lmg6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6Y29t
cHV0ZVByaW9yaXR5RGVsdGFPZldvcmtlclRocmVhZHMpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0
aW9ucy5oOgorCiAyMDE0LTAzLTE0ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgRml4IHRoZSBwcm9kdWN0aW9uIGJ1aWxkLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAJKHJldmlzaW9uIDE2NTYyOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSwyMCAr
NTUsMjIgQEAgV29ya2xpc3Q6On5Xb3JrbGlzdCgpCiAgICAgQVNTRVJUKCFtX251bWJlck9mQWN0
aXZlVGhyZWFkcyk7CiB9CiAKLXZvaWQgV29ya2xpc3Q6OmZpbmlzaENyZWF0aW9uKHVuc2lnbmVk
IG51bWJlck9mVGhyZWFkcykKK3ZvaWQgV29ya2xpc3Q6OmZpbmlzaENyZWF0aW9uKHVuc2lnbmVk
IG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkpCiB7CiAgICAgUkVMRUFTRV9B
U1NFUlQobnVtYmVyT2ZUaHJlYWRzKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1iZXJPZlRo
cmVhZHM7IGktLTspIHsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFRocmVhZERhdGE+IGRhdGEg
PSBzdGQ6Om1ha2VfdW5pcXVlPFRocmVhZERhdGE+KHRoaXMpOwogICAgICAgICBkYXRhLT5tX2lk
ZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQodGhyZWFkRnVuY3Rpb24sIGRhdGEuZ2V0KCksICJKU0Mg
Q29tcGlsYXRpb24gVGhyZWFkIik7CisgICAgICAgIGlmIChyZWxhdGl2ZVByaW9yaXR5KQorICAg
ICAgICAgICAgY2hhbmdlVGhyZWFkUHJpb3JpdHkoZGF0YS0+bV9pZGVudGlmaWVyLCByZWxhdGl2
ZVByaW9yaXR5KTsKICAgICAgICAgbV90aHJlYWRzLmFwcGVuZChzdGQ6Om1vdmUoZGF0YSkpOwog
ICAgIH0KIH0KIAotUGFzc1JlZlB0cjxXb3JrbGlzdD4gV29ya2xpc3Q6OmNyZWF0ZSh1bnNpZ25l
ZCBudW1iZXJPZlRocmVhZHMpCitQYXNzUmVmUHRyPFdvcmtsaXN0PiBXb3JrbGlzdDo6Y3JlYXRl
KHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkpCiB7CiAgICAg
UmVmUHRyPFdvcmtsaXN0PiByZXN1bHQgPSBhZG9wdFJlZihuZXcgV29ya2xpc3QoKSk7Ci0gICAg
cmVzdWx0LT5maW5pc2hDcmVhdGlvbihudW1iZXJPZlRocmVhZHMpOworICAgIHJlc3VsdC0+Zmlu
aXNoQ3JlYXRpb24obnVtYmVyT2ZUaHJlYWRzLCByZWxhdGl2ZVByaW9yaXR5KTsKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCkBAIC0zMjEsNyArMzIzLDcgQEAgV29ya2xpc3QqIGVuc3VyZUdsb2Jh
bERGR1dvcmtsaXN0KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZUds
b2JhbFdvcmtsaXN0T25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZUdsb2Jh
bFdvcmtsaXN0T25jZUZsYWcsIFtdIHsKLSAgICAgICAgdGhlR2xvYmFsREZHV29ya2xpc3QgPSBX
b3JrbGlzdDo6Y3JlYXRlKE9wdGlvbnM6Om51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzKCkpLmxl
YWtSZWYoKTsKKyAgICAgICAgdGhlR2xvYmFsREZHV29ya2xpc3QgPSBXb3JrbGlzdDo6Y3JlYXRl
KE9wdGlvbnM6Om51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9yaXR5
RGVsdGFPZkRGR0NvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CiAgICAgfSk7CiAgICAgcmV0
dXJuIHRoZUdsb2JhbERGR1dvcmtsaXN0OwogfQpAQCAtMzM3LDcgKzMzOSw3IEBAIFdvcmtsaXN0
KiBlbnN1cmVHbG9iYWxGVExXb3JrbGlzdCgpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFn
IGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKGlu
aXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIHRoZUdsb2JhbEZU
TFdvcmtsaXN0ID0gV29ya2xpc3Q6OmNyZWF0ZShPcHRpb25zOjpudW1iZXJPZkZUTENvbXBpbGVy
VGhyZWFkcygpKS5sZWFrUmVmKCk7CisgICAgICAgIHRoZUdsb2JhbEZUTFdvcmtsaXN0ID0gV29y
a2xpc3Q6OmNyZWF0ZShPcHRpb25zOjpudW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkcygpLCBPcHRp
b25zOjpwcmlvcml0eURlbHRhT2ZGVExDb21waWxlclRocmVhZHMoKSkubGVha1JlZigpOwogICAg
IH0pOwogICAgIHJldHVybiB0aGVHbG9iYWxGVExXb3JrbGlzdDsKIH0KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgJKHJldmlzaW9uIDE2NTYyOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDks
NyArNDksNyBAQCBwdWJsaWM6CiAKICAgICB+V29ya2xpc3QoKTsKICAgICAKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXb3JrbGlzdD4gY3JlYXRlKHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcyk7Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8V29ya2xpc3Q+IGNyZWF0ZSh1bnNpZ25lZCBudW1iZXJPZlRo
cmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5ID0gMCk7CiAgICAgCiAgICAgdm9pZCBlbnF1ZXVl
KFBhc3NSZWZQdHI8UGxhbj4pOwogICAgIApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAg
CiBwcml2YXRlOgogICAgIFdvcmtsaXN0KCk7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbih1bnNp
Z25lZCBudW1iZXJPZlRocmVhZHMpOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24odW5zaWduZWQg
bnVtYmVyT2ZUaHJlYWRzLCBpbnQpOwogICAgIAogICAgIHZvaWQgcnVuVGhyZWFkKFRocmVhZERh
dGEqKTsKICAgICBzdGF0aWMgdm9pZCB0aHJlYWRGdW5jdGlvbih2b2lkKiBhcmd1bWVudCk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAkocmV2aXNpb24g
MTY1NjI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEwMSw2ICsxMDEsMTQgQEAgc3RhdGljIHVuc2lnbmVkIGNvbXB1dGVO
dW1iZXJPZldvcmtlclRocgogICAgIHJldHVybiBzdGQ6Om1heChjcHVzVG9Vc2UsIG1pbmltdW0p
OwogfQogCitzdGF0aWMgaW50MzJfdCBjb21wdXRlUHJpb3JpdHlEZWx0YU9mV29ya2VyVGhyZWFk
cyhpbnQzMl90IHR3b0NvcmVQcmlvcml0eURlbHRhLCBpbnQzMl90IG11bHRpQ29yZVByaW9yaXR5
RGVsdGEpCit7CisgICAgaWYgKFdURjo6bnVtYmVyT2ZQcm9jZXNzb3JDb3JlcygpIDw9IDIpCisg
ICAgICAgIHJldHVybiB0d29Db3JlUHJpb3JpdHlEZWx0YTsKKworICAgIHJldHVybiBtdWx0aUNv
cmVQcmlvcml0eURlbHRhOworfQorCiBzdGF0aWMgdW5zaWduZWQgY29tcHV0ZU51bWJlck9mR0NN
YXJrZXJzKHVuc2lnbmVkIG1heE51bWJlck9mR0NNYXJrZXJzKQogewogI2lmIEVOQUJMRShQQVJB
TExFTF9HQykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgJKHJl
dmlzaW9uIDE2NTYyOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMu
aAkod29ya2luZyBjb3B5KQpAQCAtMTYwLDYgKzE2MCw4IEBAIHR5cGVkZWYgT3B0aW9uUmFuZ2Ug
b3B0aW9uUmFuZ2U7CiAgICAgdihib29sLCBlbmFibGVDb25jdXJyZW50SklULCB0cnVlKSBcCiAg
ICAgdih1bnNpZ25lZCwgbnVtYmVyT2ZERkdDb21waWxlclRocmVhZHMsIGNvbXB1dGVOdW1iZXJP
ZldvcmtlclRocmVhZHMoMiwgMikgLSAxKSBcCiAgICAgdih1bnNpZ25lZCwgbnVtYmVyT2ZGVExD
b21waWxlclRocmVhZHMsIGNvbXB1dGVOdW1iZXJPZldvcmtlclRocmVhZHMoOCwgMikgLSAxKSBc
CisgICAgdihpbnQzMiwgcHJpb3JpdHlEZWx0YU9mREZHQ29tcGlsZXJUaHJlYWRzLCBjb21wdXRl
UHJpb3JpdHlEZWx0YU9mV29ya2VyVGhyZWFkcygtMSwgMCkpIFwKKyAgICB2KGludDMyLCBwcmlv
cml0eURlbHRhT2ZGVExDb21waWxlclRocmVhZHMsIGNvbXB1dGVQcmlvcml0eURlbHRhT2ZXb3Jr
ZXJUaHJlYWRzKC0yLCAwKSkgXAogICAgIFwKICAgICB2KGJvb2wsIGVuYWJsZVByb2ZpbGVyLCBm
YWxzZSkgXAogICAgIFwKSW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjU2NzgpCisrKyBTb3VyY2UvV1RGL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE0LTAzLTE0ICBNaWNo
YWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAgICAgIEl0IHNob3VsZCBiZSBw
b3NzaWJsZSB0byBhZGp1c3QgREZHIGFuZCBGVEwgY29tcGlsZXIgdGhyZWFkIHByaW9yaXRpZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDI4OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGFi
aWxpdHkgdG8gY2hhbmdlIHRocmVhZCBwcmlvcml0aWVzIHJlbGF0aXZlIHRvIGl0cyBjdXJyZW50
IHByaW9yaXR5LgorICAgICAgICBDcmVhdGVkIG9wdGlvbnMgdG8gYWRqdXN0IHRoZSBwcmlvcml0
eSBvZiB0aGUgREZHIGFuZCBGVEwgY29tcGlsYXRpb24gd29yayB0aHJlYWQKKyAgICAgICAgcG9v
bHMuICBGb3IgdHdvIGNvcmUgc3lzdGVtcywgdGhlcmUgbWlnaHQgYmUgdGhyZWUgcnVubmFibGUg
dGhyZWFkcywgdGhlIG1haW4gdGhyZWFkLAorICAgICAgICB0aGUgREZHIGNvbXBpbGF0aW9uIHRo
cmVhZCBhbmQgdGhlIEZUTCBjb21waWxhdGlvbiB0aHJlYWQuICBXaXRoIHRoZSBzYW1lIHByaW9y
aXR5LAorICAgICAgICB0aGUgc2NoZWR1bGVyIGlzIGZyZWUgdG8gc2NoZWR1bGUgd2hhdGV2ZXIg
dGhyZWFkIGl0IHdhbnRzLiAgQnkgbG93ZXJpbmcgdGhlCisgICAgICAgIGNvbXBpbGF0aW9uIHRo
cmVhZHMsIHRoZSBtYWluIHRocmVhZCBjYW4gcnVuLiAgRnVydGhlciB0ZXN0cyBtYXkgc3VnZ2Vz
dCBiZXR0ZXIgdmFsdWVzCisgICAgICAgIGZvciB0aGUgbmV3IG9wdGlvbnMsIHByaW9yaXR5RGVs
dGFPZkRGR0NvbXBpbGVyVGhyZWFkcyBhbmQgcHJpb3JpdHlEZWx0YU9mRlRMQ29tcGlsZXJUaHJl
YWRzLgorCisgICAgICAgIEZvciBhIHR3by1jb3JlIGRldmljZSwgdGhpcyBjaGFuZ2UgaGFzIGEg
bmV0IHBvc2l0aXZlIGltcHJvdmVtZW50IG9mIDEtMyUgYWNyb3NzCisgICAgICAgIFN1blNwaWRl
ciwgT2N0YW5lLCBLcmFrZW4gYW5kIEFzbUJlbmNoLgorCisgICAgICAgICogd3RmL1RocmVhZGlu
Zy5oOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHA6CisgICAgICAgIChXVEY6
OmNoYW5nZVRocmVhZFByaW9yaXR5KToKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nV2luLmNwcDoK
KyAgICAgICAgKFdURjo6Y2hhbmdlVGhyZWFkUHJpb3JpdHkpOgorCiAyMDE0LTAzLTE0ICBNYXJr
IFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHRoZSBwcm9kdWN0aW9uIGJ1
aWxkLgpJbmRleDogU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dURi93dGYvVGhyZWFkaW5nLmgJKHJldmlzaW9uIDE2NTYyOSkKKysrIFNvdXJjZS9XVEYv
d3RmL1RocmVhZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC04OSw2ICs4OSw3IEBAIFRocmVhZElk
ZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50ZXJuYWwoVGgKIHZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRU
aHJlYWRJbnRlcm5hbChjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsKIAogV1RGX0VYUE9SVF9QUklW
QVRFIFRocmVhZElkZW50aWZpZXIgY3VycmVudFRocmVhZCgpOworV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgY2hhbmdlVGhyZWFkUHJpb3JpdHkoVGhyZWFkSWRlbnRpZmllciwgaW50KTsKIFdURl9F
WFBPUlRfUFJJVkFURSBpbnQgd2FpdEZvclRocmVhZENvbXBsZXRpb24oVGhyZWFkSWRlbnRpZmll
cik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZXRhY2hUaHJlYWQoVGhyZWFkSWRlbnRpZmll
cik7CiAKQEAgLTk3LDYgKzk4LDcgQEAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGV0YWNoVGhy
ZWFkKFRocgogdXNpbmcgV1RGOjpUaHJlYWRJZGVudGlmaWVyOwogdXNpbmcgV1RGOjpjcmVhdGVU
aHJlYWQ7CiB1c2luZyBXVEY6OmN1cnJlbnRUaHJlYWQ7Cit1c2luZyBXVEY6OmNoYW5nZVRocmVh
ZFByaW9yaXR5OwogdXNpbmcgV1RGOjpkZXRhY2hUaHJlYWQ7CiB1c2luZyBXVEY6OndhaXRGb3JU
aHJlYWRDb21wbGV0aW9uOwogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFk
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3Bw
CShyZXZpc2lvbiAxNjU2MjkpCisrKyBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMyw3ICsyMDMsMzAgQEAgdm9pZCBpbml0aWFsaXplQ3Vy
cmVudFRocmVhZEludGVybmFsKGNvbgogICAgIEFTU0VSVChpZCk7CiAgICAgVGhyZWFkSWRlbnRp
ZmllckRhdGE6OmluaXRpYWxpemUoaWQpOwogfQorICAgIAordm9pZCBjaGFuZ2VUaHJlYWRQcmlv
cml0eShUaHJlYWRJZGVudGlmaWVyIHRocmVhZElELCBpbnQgZGVsdGEpCit7CisgICAgcHRocmVh
ZF90IHB0aHJlYWRIYW5kbGU7CisgICAgQVNTRVJUKHRocmVhZElEKTsKKworICAgIHsKKyAgICAg
ICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBsb2NrIGFjcm9zcyB0aGUgY2FsbCB0byBqb2luLCBzaW5j
ZSB0aGF0IGNhbiBibG9jayBvdXIgdGhyZWFkIGFuZCBjYXVzZSBkZWFkbG9jay4KKyAgICAgICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKHRocmVhZE1hcE11dGV4KCkpOworICAgICAgICBwdGhyZWFkSGFu
ZGxlID0gcHRocmVhZEhhbmRsZUZvcklkZW50aWZpZXJXaXRoTG9ja0FscmVhZHlIZWxkKHRocmVh
ZElEKTsKKyAgICAgICAgQVNTRVJUKHB0aHJlYWRIYW5kbGUpOworICAgIH0KKworICAgIGludCBw
b2xpY3k7CisgICAgc3RydWN0IHNjaGVkX3BhcmFtIHBhcmFtOwogCisgICAgaWYgKHB0aHJlYWRf
Z2V0c2NoZWRwYXJhbShwdGhyZWFkX3NlbGYoKSwgJnBvbGljeSwgJnBhcmFtKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgcGFyYW0uc2NoZWRfcHJpb3JpdHkgKz0gZGVsdGE7CisKKyAgICBwdGhy
ZWFkX3NldHNjaGVkcGFyYW0ocHRocmVhZF9zZWxmKCksIHBvbGljeSwgJnBhcmFtKTsKK30KKyAg
ICAKIGludCB3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbihUaHJlYWRJZGVudGlmaWVyIHRocmVhZElE
KQogewogICAgIHB0aHJlYWRfdCBwdGhyZWFkSGFuZGxlOwpJbmRleDogU291cmNlL1dURi93dGYv
VGhyZWFkaW5nV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdX
aW4uY3BwCShyZXZpc2lvbiAxNjU2MjkpCisrKyBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDYsNiArMjQ2LDE3IEBAIFRocmVhZElkZW50aWZpZXIg
Y3JlYXRlVGhyZWFkSW50ZXJuYWwoVGgKICAgICByZXR1cm4gdGhyZWFkSUQ7CiB9CiAKK3ZvaWQg
Y2hhbmdlVGhyZWFkUHJpb3JpdHkoVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJRCwgaW50IGRlbHRh
KQoreworICAgIEFTU0VSVCh0aHJlYWRJRCk7CisKKyAgICBIQU5ETEUgdGhyZWFkSGFuZGxlID0g
dGhyZWFkSGFuZGxlRm9ySWRlbnRpZmllcih0aHJlYWRJRCk7CisgICAgaWYgKCF0aHJlYWRIYW5k
bGUpCisgICAgICAgIExPR19FUlJPUigiVGhyZWFkSWRlbnRpZmllciAldSBkb2VzIG5vdCBjb3Jy
ZXNwb25kIHRvIGFuIGFjdGl2ZSB0aHJlYWQiLCB0aHJlYWRJRCk7CisKKyAgICBTZXRUaHJlYWRQ
cmlvcml0eSh0aHJlYWRIYW5kbGUsIFRIUkVBRF9QUklPUklUWV9OT1JNQUwgKyBkZWx0YSk7Cit9
CisKIGludCB3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbihUaHJlYWRJZGVudGlmaWVyIHRocmVhZElE
KQogewogICAgIEFTU0VSVCh0aHJlYWRJRCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>