<?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>137295</bug_id>
          
          <creation_ts>2014-10-01 01:14:14 -0700</creation_ts>
          <short_desc>Web Inspector: Move the computation that results in UI strings from JSC to the Web Inspector</short_desc>
          <delta_ts>2014-10-03 14:35:34 -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>Web Inspector</component>
          <version>528+ (Nightly build)</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1038501</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2014-10-01 01:14:14 -0700</bug_when>
    <thetext>Currently, there is some implied UI that says that Number == Double, but make it more clear that Number can be Int || Double.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038502</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-10-01 01:14:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/18511800&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039098</commentid>
    <comment_count>2</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2014-10-02 18:56:09 -0700</bug_when>
    <thetext>
This patch will now also include a computed property now being computed in the WebInspector instead of in JSC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039161</commentid>
    <comment_count>3</comment_count>
      <attachid>239191</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2014-10-03 01:31:54 -0700</bug_when>
    <thetext>Created attachment 239191
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039254</commentid>
    <comment_count>4</comment_count>
      <attachid>239191</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-10-03 10:38:42 -0700</bug_when>
    <thetext>Comment on attachment 239191
patch

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

r=me

&gt; Source/WebInspectorUI/UserInterface/Models/TypeSet.js:122
&gt; +        // It&apos;s implied that type Integer is contained in type Number. Don&apos;t put 
&gt; +        // both &apos;Integer&apos; and &apos;Number&apos; into the set because this could imply that 
&gt; +        // Number means to Double instead of Double|Integer.
&gt; +        if (typeSet.isNumber)
&gt; +            this._primitiveTypeNames.push(&quot;Number&quot;);
&gt; +        else if (typeSet.isInteger)
&gt; +            this._primitiveTypeNames.push(&quot;Integer&quot;);

I wonder if this could be a feature of typeSet. It&apos;s a bit weird that typeSet responds &quot;true&quot; to &quot;isInteger&quot; for something that is, in fact, number. Or perhaps &quot;is&quot; should be renamed to &quot;contains&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039308</commentid>
    <comment_count>5</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2014-10-03 13:18:04 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 239191 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=239191&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Models/TypeSet.js:122
&gt; &gt; +        // It&apos;s implied that type Integer is contained in type Number. Don&apos;t put 
&gt; &gt; +        // both &apos;Integer&apos; and &apos;Number&apos; into the set because this could imply that 
&gt; &gt; +        // Number means to Double instead of Double|Integer.
&gt; &gt; +        if (typeSet.isNumber)
&gt; &gt; +            this._primitiveTypeNames.push(&quot;Number&quot;);
&gt; &gt; +        else if (typeSet.isInteger)
&gt; &gt; +            this._primitiveTypeNames.push(&quot;Integer&quot;);
&gt; 
&gt; I wonder if this could be a feature of typeSet. It&apos;s a bit weird that typeSet responds &quot;true&quot; to &quot;isInteger&quot; for something that is, in fact, number. Or perhaps &quot;is&quot; should be renamed to &quot;contains&quot;?

Yeah, I like renaming these fields to containsX. I&apos;ll open a  new bug to do this.

There is indeed some weirdness here.
Currently, TypeSet wont respond to isNumber as true when it&apos;s only an Integer, but even though it&apos;s weird, I think it should be changed to that.

Here are all the possible states now and how typeset responds, and how I think typeset should respond:

1. isInteger=false, isNumber=false:
  Everything here works fine.
2. isInteger=true, isNumber=false:
  Everything also works fine here, we&apos;ve only ever seen an integer for this typeset.
3. isInteger=false, isNumber=true:
  This gets slightly weird. isNumber implies Int | Double, but isInteger is false. This doesn&apos;t really make sense conceptually,
  and I propose that we should never allow the TypeSet to get into this state.
4. isInteger=true, isNumber=true:
  This is also fine, and for this state, I propose that, when hovering over a type token, we don&apos;t show both Int and Number, but simply
  just show Number. This is what this patch implements.

My vote is to never allow state 3 to happen, even though this may be slightly weird.

All this weirdness derives from not being able to reliably distinguish between Double and Integer inside the DFG. Because the DFG may
coerce an Integer into a Double, if a value is profiled after this coercion, there is no reliable way to determine that this thing I&apos;m profiling that is a Double used to be an Integer. So it&apos;s better to just say that a profiled Double is Double | Integer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039317</commentid>
    <comment_count>6</comment_count>
      <attachid>239225</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2014-10-03 13:27:02 -0700</bug_when>
    <thetext>Created attachment 239225
patch

Previous patch had a bug, isFunction shouldn&apos;t be considered for primitiveTypeNames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039352</commentid>
    <comment_count>7</comment_count>
      <attachid>239225</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-03 14:35:32 -0700</bug_when>
    <thetext>Comment on attachment 239225
patch

Clearing flags on attachment: 239225

Committed r174292: &lt;http://trac.webkit.org/changeset/174292&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039353</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-03 14:35:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239191</attachid>
            <date>2014-10-03 01:31:54 -0700</date>
            <delta_ts>2014-10-03 13:27:02 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>12342</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc0MjYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDE0LTEwLTAzICBTYWFtIEJhcmF0aSAgPHNhYW1iYXJhdGkxQGdtYWlsLmNvbT4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBNb3ZlIHRoZSBjb21wdXRhdGlvbiB0aGF0IHJlc3VsdHMgaW4g
VUkgc3RyaW5ncyBmcm9tIEpTQyB0byB0aGUgV2ViIEluc3BlY3RvcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3Mjk1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGZ1bmN0
aW9ucyBhbmQgcHJvcGVydGllcyBmcm9tIEpTQyB0aGF0IGFyZQorICAgICAgICBub3cgYmVpbmcg
Y29tcHV0ZWQgaW5zaWRlIHRoZSBXZWIgSW5zcGVjdG9yLiAKKworICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6
SW5zcGVjdG9yUnVudGltZUFnZW50OjpnZXRSdW50aW1lVHlwZXNGb3JWYXJpYWJsZXNBdE9mZnNl
dHMpOgorICAgICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9SdW50aW1lLmpzb246CisgICAgICAg
ICogcnVudGltZS9UeXBlU2V0LmNwcDoKKyAgICAgICAgKEpTQzo6VHlwZVNldDo6YWxsUHJpbWl0
aXZlVHlwZU5hbWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1R5cGVTZXQuaDoKKwog
MjAxNC0xMC0wMyAgU2FhbSBCYXJhdGkgIDxzYWFtYmFyYXRpMUBnbWFpbC5jb20+CiAKICAgICAg
ICAgQ2hhbmdlIGhvdyAzMi1iaXQgSlNWYWx1ZXMgY2hlY2sgaWYgdGhleSBhcmUgYSBCb29sZWFu
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JS
dW50aW1lQWdlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAJKHJldmlzaW9uIDE3NDI1OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRp
bWVBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0Miw3ICsyNDIsNiBAQCB2b2lkIEluc3Bl
Y3RvclJ1bnRpbWVBZ2VudDo6Z2V0UnVudGltZVR5CiAKICAgICAgICAgaWYgKGlzVmFsaWQpIHsK
ICAgICAgICAgICAgIGRlc2NyaXB0aW9uLT5zZXRMZWFzdENvbW1vbkFuY2VzdG9yKHR5cGVTZXQt
PmxlYXN0Q29tbW9uQW5jZXN0b3IoKSk7Ci0gICAgICAgICAgICBkZXNjcmlwdGlvbi0+c2V0UHJp
bWl0aXZlVHlwZU5hbWVzKHR5cGVTZXQtPmFsbFByaW1pdGl2ZVR5cGVOYW1lcygpKTsKICAgICAg
ICAgICAgIGRlc2NyaXB0aW9uLT5zZXRTdHJ1Y3R1cmVzKHR5cGVTZXQtPmFsbFN0cnVjdHVyZVJl
cHJlc2VudGF0aW9ucygpKTsKICAgICAgICAgICAgIGRlc2NyaXB0aW9uLT5zZXRUeXBlU2V0KHR5
cGVTZXQtPmluc3BlY3RvclR5cGVTZXQoKSk7CiAgICAgICAgICAgICBkZXNjcmlwdGlvbi0+c2V0
SXNUcnVuY2F0ZWQodHlwZVNldC0+aXNPdmVyZmxvd24oKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1J1bnRpbWUuanNvbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1J1bnRpbWUuanNvbgkocmV2
aXNpb24gMTc0MjU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2Nv
bC9SdW50aW1lLmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTE0NSw3ICsxNDUsNiBAQAogICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiaXNWYWxpZCIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3Jp
cHRpb24iOiAiSWYgdHJ1ZSwgd2Ugd2VyZSBhYmxlIHRvIGNvcnJlbGF0ZSB0aGUgb2Zmc2V0IHN1
Y2Nlc3NmdWx5IHdpdGggYSBwcm9ncmFtIGxvY2F0aW9uLiBJZiBmYWxzZSwgdGhlIG9mZnNldCBt
YXkgYmUgYm9ndXMgb3IgdGhlIG9mZnNldCBtYXkgYmUgZnJvbSBhIENvZGVCbG9jayB0aGF0IGhh
c24ndCBleGVjdXRlZC4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsZWFzdENvbW1v
bkFuY2VzdG9yIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0
aW9uIjogIkxlYXN0IGNvbW1vbiBhbmNlc3RvciBvZiBhbGwgQ29uc3RydWN0b3JzIGlmIHRoZSBU
eXBlRGVzY3JpcHRpb24gaGFzIHNlZW4gYW55IHN0cnVjdHVyZXMuIFRoaXMgc3RyaW5nIGlzIHRo
ZSBkaXNwbGF5IG5hbWUgb2YgdGhlIHNoYXJlZCBjb25zdHJ1Y3RvciBmdW5jdGlvbi4iIH0sCiAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlU2V0IiwgIiRyZWYiOiAiVHlwZVNldCIsICJv
cHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJTZXQgb2YgYm9vbGVhbnMgZm9yIGRldGVy
bWluaW5nIHRoZSBhZ2dyZWdhdGUgdHlwZSBvZiB0aGlzIHR5cGUgZGVzY3JpcHRpb24uIiB9LAot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJpbWl0aXZlVHlwZU5hbWVzIiwgInR5cGUiOiAi
YXJyYXkiLCAiaXRlbXMiOiB7ICJ0eXBlIjogInN0cmluZyIgfSwgIm9wdGlvbmFsIjogdHJ1ZSwg
ImRlc2NyaXB0aW9uIjogIkFycmF5IG9mIHR5cGUgbmFtZXMgZm9yIHByaW1pdGl2ZSB0eXBlcyAo
aW50LCBzdHJpbmcsIGV0Yykgc2VlbiBhdCBhbiBpbnN0cnVjdGlvbi4iIH0sCiAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJzdHJ1Y3R1cmVzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7
ICIkcmVmIjogIlN0cnVjdHVyZURlc2NyaXB0aW9uIiB9LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVz
Y3JpcHRpb24iOiAiQXJyYXkgb2YgZGVzY3JpcHRpb25zIGZvciBhbGwgc3RydWN0dXJlcyBzZWVu
IGZvciB0aGlzIHZhcmlhYmxlLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlzVHJ1
bmNhdGVkIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlv
biI6ICJJZiB0cnVlLCB0aGlzIGluZGljYXRlcyB0aGF0IG5vIG1vcmUgc3RydWN0dXJlcyBhcmUg
YmVpbmcgcHJvZmlsZWQgYmVjYXVzZSBzb21lIG1heGltdW0gdGhyZXNob2xkIGhhcyBiZWVuIHJl
YWNoZWQgYW5kIHByb2ZpbGluZyBoYXMgc3RvcHBlZCBiZWNhdXNlIG9mIG1lbW9yeSBwcmVzc3Vy
ZS4iIH0KICAgICAgICAgICAgIF0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1R5cGVTZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1R5cGVTZXQuY3BwCShyZXZpc2lvbiAxNzQyNTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9UeXBlU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM3LDI1ICsyMzcsNiBAQCBT
dHJpbmcgVHlwZVNldDo6bGVhc3RDb21tb25BbmNlc3RvcigpIGNvCiB9CiAKICNpZiBFTkFCTEUo
SU5TUEVDVE9SKQotUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxTdHJpbmc+
PiBUeXBlU2V0OjphbGxQcmltaXRpdmVUeXBlTmFtZXMoKSBjb25zdAotewotICAgIFJlZlB0cjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxTdHJpbmc+PiBzZWVuID0gSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXJyYXk8U3RyaW5nPjo6Y3JlYXRlKCk7Ci0gICAgaWYgKG1fc2VlblR5cGVzICYgVHlw
ZVVuZGVmaW5lZCkKLSAgICAgICAgc2Vlbi0+YWRkSXRlbShBU0NJSUxpdGVyYWwoIlVuZGVmaW5l
ZCIpKTsKLSAgICBpZiAobV9zZWVuVHlwZXMgJiBUeXBlTnVsbCkKLSAgICAgICAgc2Vlbi0+YWRk
SXRlbShBU0NJSUxpdGVyYWwoIk51bGwiKSk7Ci0gICAgaWYgKG1fc2VlblR5cGVzICYgVHlwZUJv
b2xlYW4pCi0gICAgICAgIHNlZW4tPmFkZEl0ZW0oQVNDSUlMaXRlcmFsKCJCb29sZWFuIikpOwot
ICAgIGlmIChtX3NlZW5UeXBlcyAmIFR5cGVNYWNoaW5lSW50KQotICAgICAgICBzZWVuLT5hZGRJ
dGVtKEFTQ0lJTGl0ZXJhbCgiSW50ZWdlciIpKTsKLSAgICBpZiAobV9zZWVuVHlwZXMgJiBUeXBl
TnVtYmVyKQotICAgICAgICBzZWVuLT5hZGRJdGVtKEFTQ0lJTGl0ZXJhbCgiTnVtYmVyIikpOwot
ICAgIGlmIChtX3NlZW5UeXBlcyAmIFR5cGVTdHJpbmcpCi0gICAgICAgIHNlZW4tPmFkZEl0ZW0o
QVNDSUlMaXRlcmFsKCJTdHJpbmciKSk7Ci0KLSAgICByZXR1cm4gc2Vlbi5yZWxlYXNlKCk7Ci19
Ci0KIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90
b2NvbDo6UnVudGltZTo6U3RydWN0dXJlRGVzY3JpcHRpb24+PiBUeXBlU2V0OjphbGxTdHJ1Y3R1
cmVSZXByZXNlbnRhdGlvbnMoKSBjb25zdAogewogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpTdHJ1Y3R1cmVEZXNjcmlw
dGlvbj4+IGRlc2NyaXB0aW9uID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9y
OjpQcm90b2NvbDo6UnVudGltZTo6U3RydWN0dXJlRGVzY3JpcHRpb24+OjpjcmVhdGUoKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlU2V0LmgJKHJldmlzaW9uIDE3NDI1
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuaAkod29ya2luZyBj
b3B5KQpAQCAtMTAyLDcgKzEwMiw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGVDYWNo
ZSgpOwogICAgIFN0cmluZyBkdW1wVHlwZXMoKSBjb25zdDsKICAgICBTdHJpbmcgZGlzcGxheU5h
bWUoKSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PFN0
cmluZz4+IGFsbFByaW1pdGl2ZVR5cGVOYW1lcygpIGNvbnN0OwogICAgIFBhc3NSZWZQdHI8SW5z
cGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6U3Ry
dWN0dXJlRGVzY3JpcHRpb24+PiBhbGxTdHJ1Y3R1cmVSZXByZXNlbnRhdGlvbnMoKSBjb25zdDsK
ICAgICBTdHJpbmcgdG9KU09OU3RyaW5nKCkgY29uc3Q7CiAgICAgYm9vbCBpc092ZXJmbG93bigp
IGNvbnN0IHsgcmV0dXJuIG1faXNPdmVyZmxvd247IH0KSW5kZXg6IFNvdXJjZS9XZWJJbnNwZWN0
b3JVSS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTc0MjYxKQorKysgU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE0LTEwLTAzICBTYWFtIEJhcmF0
aSAgPHNhYW1iYXJhdGkxQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBNb3Zl
IHRoZSBjb21wdXRhdGlvbiB0aGF0IHJlc3VsdHMgaW4gVUkgc3RyaW5ncyBmcm9tIEpTQyB0byB0
aGUgV2ViIEluc3BlY3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM3Mjk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhlIGluc3BlY3RvciBub3cgY29tcHV0ZXMgYSBzZXQgb2YgcHJvcGVydGllcyB0
aGF0IHdhcyBwcmV2aW91c2x5IAorICAgICAgICBjb21wdXRlZCBpbnNpZGUgSlNDLiAKKworICAg
ICAgICBUaGlzIHBhdGNoIGFsc28gYWRkcmVzc2VzIHRoZSB3ZWlyZCBleHBlcmllbmNlIG9mIHRo
ZSAKKyAgICAgICAgdHlwZSBvZiBhbiBleHByZXNzaW9uIGNsYWltaW5nIHRvIGJlIGJvdGggYSBO
dW1iZXIgYW5kIAorICAgICAgICBhbiBJbnRlZ2VyLiBUaGlzIGNvdWxkIGJlIGEgYml0IGNvbmZ1
c2luZyBiZWNhdXNlIE51bWJlciAKKyAgICAgICAgaXMgc3VwcG9zZWQgdG8gcmVwcmVzZW50IERv
dWJsZXxJbnRlZ2VyIGFuZCB0aGUgcHJldmlvdXMKKyAgICAgICAgVUkgaW1wbGllZCB0aGF0IE51
bWJlciB3YXMgZXF1aXZhbGVudCB0byBEb3VibGUuIFRoZSBuZXcgVUkgb25seSAKKyAgICAgICAg
ZXZlciBzaG93cyBlaXRoZXIgdGhlIHR5cGUgb2YgTnVtYmVyIG9yIEludGVnZXIgd2hlbiBzaG93
aW5nCisgICAgICAgIHRoZSB0eXBlIGluZm9ybWF0aW9uIG9mIGFuIGV4cHJlc3Npb24uIEl0IG5l
dmVyIHNob3dzIGJvdGggTnVtYmVyCisgICAgICAgIGFuZCBJbnRlZ2VyIHNpbXVsdGFuZW91c2x5
IHRvIGRlc2NyaWJlIGEgc2luZ2xlIGV4cHJlc3Npb24uCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL01vZGVscy9UeXBlU2V0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlR5cGVTZXQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlR5cGVTZXQucHJvdG90eXBlLmlzQ29udGFpbmVkSW4pOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlR5cGVTZXQucHJvdG90eXBlLmdldCBwcmltaXRpdmVUeXBl
TmFtZXMpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVHlwZVByb3BlcnRpZXNTZWN0
aW9uLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlR5cGVQcm9wZXJ0aWVzU2VjdGlvbik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVHlwZVByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZS5vbnBv
cHVsYXRlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1R5cGVUb2tlblZpZXcuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVHlwZVRva2VuVmlldyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVHlwZVRva2VuVmlldy5wcm90b3R5cGUudXBkYXRlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UeXBlVG9rZW5WaWV3LnByb3RvdHlwZS5fc2hvdWxkU2hvd1BvcG92ZXIpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlR5cGVUb2tlblZpZXcucHJvdG90eXBlLl9kaXNwbGF5VHlwZU5hbWUp
OgorCiAyMDE0LTEwLTAyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogQ2Fubm90IGFkZCBhIG5ldyBDU1MgUnVsZSB0byBlbGVt
ZW50cyB3aXRoIDMgb3IgbW9yZSBjbGFzcyBuYW1lcwpJbmRleDogU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1R5cGVTZXQuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1R5cGVTZXQuanMJKHJldmlzaW9u
IDE3NDI1OSkKKysrIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9U
eXBlU2V0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw4IEBAIFdlYkluc3BlY3Rvci5U
eXBlU2V0ID0gZnVuY3Rpb24ocnVudGltZVQKIAogICAgIGNvbnNvbGUuYXNzZXJ0KGJpdFN0cmlu
Zyk7CiAgICAgdGhpcy5fYml0U3RyaW5nID0gYml0U3RyaW5nOworCisgICAgdGhpcy5fcHJpbWl0
aXZlVHlwZU5hbWVzID0gbnVsbDsKIH07CiAKIFdlYkluc3BlY3Rvci5UeXBlU2V0LmZyb21QYXls
b2FkID0gZnVuY3Rpb24ocGF5bG9hZCkKQEAgLTkxLDUgKzkzLDM0IEBAIFdlYkluc3BlY3Rvci5U
eXBlU2V0LnByb3RvdHlwZSA9IHsKICAgICAgICAgLy8gMGIwMDEwICE9IGJpdFN0cmluZwogCiAg
ICAgICAgIHJldHVybiB0aGlzLl9iaXRTdHJpbmcgJiYgKHRoaXMuX2JpdFN0cmluZyAmIHRlc3Qp
ID09PSB0aGlzLl9iaXRTdHJpbmc7CisgICAgfSwKKworICAgIGdldCBwcmltaXRpdmVUeXBlTmFt
ZXMoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3ByaW1pdGl2ZVR5cGVOYW1lcykKKyAgICAg
ICAgICAgIHJldHVybiB0aGlzLl9wcmltaXRpdmVUeXBlTmFtZXM7CisKKyAgICAgICAgdGhpcy5f
cHJpbWl0aXZlVHlwZU5hbWVzID0gW107CisgICAgICAgIHZhciB0eXBlU2V0ID0gdGhpcy5fdHlw
ZXMudHlwZVNldDsKKyAgICAgICAgaWYgKHR5cGVTZXQuaXNGdW5jdGlvbikKKyAgICAgICAgICAg
IHRoaXMuX3ByaW1pdGl2ZVR5cGVOYW1lcy5wdXNoKCJGdW5jdGlvbiIpOworICAgICAgICBpZiAo
dHlwZVNldC5pc1VuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuX3ByaW1pdGl2ZVR5cGVOYW1l
cy5wdXNoKCJVbmRlZmluZWQiKTsKKyAgICAgICAgaWYgKHR5cGVTZXQuaXNOdWxsKQorICAgICAg
ICAgICAgdGhpcy5fcHJpbWl0aXZlVHlwZU5hbWVzLnB1c2goIk51bGwiKTsKKyAgICAgICAgaWYg
KHR5cGVTZXQuaXNCb29sZWFuKQorICAgICAgICAgICAgdGhpcy5fcHJpbWl0aXZlVHlwZU5hbWVz
LnB1c2goIkJvb2xlYW4iKTsKKyAgICAgICAgaWYgKHR5cGVTZXQuaXNTdHJpbmcpCisgICAgICAg
ICAgICB0aGlzLl9wcmltaXRpdmVUeXBlTmFtZXMucHVzaCgiU3RyaW5nIik7CisKKyAgICAgICAg
Ly8gSXQncyBpbXBsaWVkIHRoYXQgdHlwZSBJbnRlZ2VyIGlzIGNvbnRhaW5lZCBpbiB0eXBlIE51
bWJlci4gRG9uJ3QgcHV0IAorICAgICAgICAvLyBib3RoICdJbnRlZ2VyJyBhbmQgJ051bWJlcicg
aW50byB0aGUgc2V0IGJlY2F1c2UgdGhpcyBjb3VsZCBpbXBseSB0aGF0IAorICAgICAgICAvLyBO
dW1iZXIgbWVhbnMgdG8gRG91YmxlIGluc3RlYWQgb2YgRG91YmxlfEludGVnZXIuCisgICAgICAg
IGlmICh0eXBlU2V0LmlzTnVtYmVyKQorICAgICAgICAgICAgdGhpcy5fcHJpbWl0aXZlVHlwZU5h
bWVzLnB1c2goIk51bWJlciIpOworICAgICAgICBlbHNlIGlmICh0eXBlU2V0LmlzSW50ZWdlcikK
KyAgICAgICAgICAgIHRoaXMuX3ByaW1pdGl2ZVR5cGVOYW1lcy5wdXNoKCJJbnRlZ2VyIik7CisK
KyAgICAgICAgcmV0dXJuIHRoaXMuX3ByaW1pdGl2ZVR5cGVOYW1lczsKICAgICB9CiB9OwpJbmRl
eDogU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHlwZVByb3BlcnRp
ZXNTZWN0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1R5cGVQcm9wZXJ0aWVzU2VjdGlvbi5qcwkocmV2aXNpb24gMTc0MjU5KQor
KysgU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHlwZVByb3BlcnRp
ZXNTZWN0aW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBAIFdlYkluc3BlY3Rv
ci5UeXBlUHJvcGVydGllc1NlY3Rpb24gPSBmdW4KIHsKICAgICB0aGlzLmVtcHR5UGxhY2Vob2xk
ZXIgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5vIFByb3BlcnRpZXMiKTsKICAgICB0aGlzLnR5
cGVzID0gdHlwZXM7CisgICAgdGhpcy5fdHlwZVNldCA9IFdlYkluc3BlY3Rvci5UeXBlU2V0LmZy
b21QYXlsb2FkKHRoaXMudHlwZXMpOwogCiAgICAgV2ViSW5zcGVjdG9yLlByb3BlcnRpZXNTZWN0
aW9uLmNhbGwodGhpcywgdGl0bGUsIHN1YnRpdGxlKTsKIH07CkBAIC0zOSw3ICs0MCw3IEBAIFdl
Ykluc3BlY3Rvci5UeXBlUHJvcGVydGllc1NlY3Rpb24ucHJvdG8KICAgICB7CiAgICAgICAgIHRo
aXMucHJvcGVydGllc1RyZWVPdXRsaW5lLnJlbW92ZUNoaWxkcmVuKCk7CiAKLSAgICAgICAgdmFy
IHByaW1pdGl2ZVR5cGVOYW1lcyA9IHRoaXMudHlwZXMucHJpbWl0aXZlVHlwZU5hbWVzOworICAg
ICAgICB2YXIgcHJpbWl0aXZlVHlwZU5hbWVzID0gdGhpcy5fdHlwZVNldC5wcmltaXRpdmVUeXBl
TmFtZXM7CiAgICAgICAgIHZhciBzdHJ1Y3R1cmVzID0gdGhpcy50eXBlcy5zdHJ1Y3R1cmVzOwog
ICAgICAgICB2YXIgcHJvcGVydGllcyA9IFtdOwogICAgICAgICBmb3IgKHZhciBzdHJ1Y3Qgb2Yg
c3RydWN0dXJlcykgewpJbmRleDogU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVHlwZVRva2VuVmlldy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9UeXBlVG9rZW5WaWV3LmpzCShyZXZpc2lvbiAxNzQyNTkp
CisrKyBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UeXBlVG9rZW5W
aWV3LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBAIFdlYkluc3BlY3Rvci5UeXBl
VG9rZW5WaWV3ID0gZnVuY3Rpb24odG8KICAgICB0aGlzLmVsZW1lbnQgPSBzcGFuOwogICAgIHRo
aXMuX3Rva2VuQW5ub3RhdG9yID0gdG9rZW5Bbm5vdGF0b3I7CiAgICAgdGhpcy5fdHlwZXMgPSBu
dWxsOworICAgIHRoaXMuX3R5cGVTZXQgPSBudWxsOwogICAgIHRoaXMuX2NvbG9yQ2xhc3MgPSBu
dWxsOwogCiAgICAgdGhpcy5fcG9wb3ZlclRpdGxlID0gV2ViSW5zcGVjdG9yLlR5cGVUb2tlblZp
ZXcudGl0bGVGb3JQb3BvdmVyKHRpdGxlVHlwZSwgZnVuY3Rpb25PclZhcmlhYmxlTmFtZSk7CkBA
IC04OSw2ICs5MCw3IEBAIFdlYkluc3BlY3Rvci5UeXBlVG9rZW5WaWV3LnByb3RvdHlwZSA9IHsK
ICAgICB1cGRhdGU6IGZ1bmN0aW9uKHR5cGVzKQogICAgIHsKICAgICAgICAgdGhpcy5fdHlwZXMg
PSB0eXBlczsKKyAgICAgICAgdGhpcy5fdHlwZVNldCA9IFdlYkluc3BlY3Rvci5UeXBlU2V0LmZy
b21QYXlsb2FkKHRoaXMuX3R5cGVzKTsKIAogICAgICAgICB2YXIgdGl0bGUgPSB0aGlzLl9kaXNw
bGF5VHlwZU5hbWUoKTsKICAgICAgICAgdGhpcy5lbGVtZW50LnRleHRDb250ZW50ID0gdGl0bGU7
CkBAIC0xMjksNyArMTMxLDEwIEBAIFdlYkluc3BlY3Rvci5UeXBlVG9rZW5WaWV3LnByb3RvdHlw
ZSA9IHsKIAogICAgIF9zaG91bGRTaG93UG9wb3ZlcjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAg
ICAgaWYgKHRoaXMuX3R5cGVzLnByaW1pdGl2ZVR5cGVOYW1lcyAmJiB0aGlzLl90eXBlcy5wcmlt
aXRpdmVUeXBlTmFtZXMubGVuZ3RoID4gMSkKKyAgICAgICAgaWYgKCF0aGlzLl90eXBlcy5pc1Zh
bGlkKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmICh0aGlzLl90eXBl
U2V0LnByaW1pdGl2ZVR5cGVOYW1lcy5sZW5ndGggPiAxKQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKICAgICAgICAgaWYgKHRoaXMuX3R5cGVzLnN0cnVjdHVyZXMgJiYgdGhpcy5fdHlwZXMu
c3RydWN0dXJlcy5sZW5ndGgpCkBAIC0xNDAsOSArMTQ1LDEyIEBAIFdlYkluc3BlY3Rvci5UeXBl
VG9rZW5WaWV3LnByb3RvdHlwZSA9IHsKIAogICAgIF9kaXNwbGF5VHlwZU5hbWU6IGZ1bmN0aW9u
KCkKICAgICB7Ci0gICAgICAgIHZhciB0eXBlU2V0ID0gV2ViSW5zcGVjdG9yLlR5cGVTZXQuZnJv
bVBheWxvYWQodGhpcy5fdHlwZXMpOworICAgICAgICBpZiAoIXRoaXMuX3R5cGVzLmlzVmFsaWQp
CisgICAgICAgICAgICByZXR1cm4gIiI7CisKKyAgICAgICAgdmFyIHR5cGVTZXQgPSB0aGlzLl90
eXBlU2V0OwogCi0gICAgICAgIGlmICh0aGlzLl90eXBlcy5sZWFzdENvbW1vbkFuY2VzdG9yICYm
ICEodGhpcy5fdHlwZXMucHJpbWl0aXZlVHlwZU5hbWVzICYmIHRoaXMuX3R5cGVzLnByaW1pdGl2
ZVR5cGVOYW1lcy5sZW5ndGgpKSB7CisgICAgICAgIGlmICh0aGlzLl90eXBlcy5sZWFzdENvbW1v
bkFuY2VzdG9yICYmICF0aGlzLl90eXBlU2V0LnByaW1pdGl2ZVR5cGVOYW1lcy5sZW5ndGgpIHsK
ICAgICAgICAgICAgIGlmICh0eXBlU2V0LmlzQ29udGFpbmVkSW4oV2ViSW5zcGVjdG9yLlR5cGVT
ZXQuVHlwZUJpdC5PYmplY3QpKQogICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl90eXBlcy5s
ZWFzdENvbW1vbkFuY2VzdG9yOwogICAgICAgICAgICAgaWYgKHR5cGVTZXQuaXNDb250YWluZWRJ
bihXZWJJbnNwZWN0b3IuVHlwZVNldC5UeXBlQml0Lk9iamVjdCB8IFdlYkluc3BlY3Rvci5UeXBl
U2V0Lk51bGxPclVuZGVmaW5lZFR5cGVCaXRzKSkK
</data>
<flag name="review"
          id="263896"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239225</attachid>
            <date>2014-10-03 13:27:02 -0700</date>
            <delta_ts>2014-10-03 14:35:31 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>12253</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc0MjYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDE0LTEwLTAzICBTYWFtIEJhcmF0aSAgPHNhYW1iYXJhdGkxQGdtYWlsLmNvbT4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBNb3ZlIHRoZSBjb21wdXRhdGlvbiB0aGF0IHJlc3VsdHMgaW4g
VUkgc3RyaW5ncyBmcm9tIEpTQyB0byB0aGUgV2ViIEluc3BlY3RvcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3Mjk1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGZ1bmN0
aW9ucyBhbmQgcHJvcGVydGllcyBmcm9tIEpTQyB0aGF0IGFyZQorICAgICAgICBub3cgYmVpbmcg
Y29tcHV0ZWQgaW5zaWRlIHRoZSBXZWIgSW5zcGVjdG9yLiAKKworICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6
SW5zcGVjdG9yUnVudGltZUFnZW50OjpnZXRSdW50aW1lVHlwZXNGb3JWYXJpYWJsZXNBdE9mZnNl
dHMpOgorICAgICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9SdW50aW1lLmpzb246CisgICAgICAg
ICogcnVudGltZS9UeXBlU2V0LmNwcDoKKyAgICAgICAgKEpTQzo6VHlwZVNldDo6YWxsUHJpbWl0
aXZlVHlwZU5hbWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1R5cGVTZXQuaDoKKwog
MjAxNC0xMC0wMyAgU2FhbSBCYXJhdGkgIDxzYWFtYmFyYXRpMUBnbWFpbC5jb20+CiAKICAgICAg
ICAgQ2hhbmdlIGhvdyAzMi1iaXQgSlNWYWx1ZXMgY2hlY2sgaWYgdGhleSBhcmUgYSBCb29sZWFu
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JS
dW50aW1lQWdlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAJKHJldmlzaW9uIDE3NDI1OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRp
bWVBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0Miw3ICsyNDIsNiBAQCB2b2lkIEluc3Bl
Y3RvclJ1bnRpbWVBZ2VudDo6Z2V0UnVudGltZVR5CiAKICAgICAgICAgaWYgKGlzVmFsaWQpIHsK
ICAgICAgICAgICAgIGRlc2NyaXB0aW9uLT5zZXRMZWFzdENvbW1vbkFuY2VzdG9yKHR5cGVTZXQt
PmxlYXN0Q29tbW9uQW5jZXN0b3IoKSk7Ci0gICAgICAgICAgICBkZXNjcmlwdGlvbi0+c2V0UHJp
bWl0aXZlVHlwZU5hbWVzKHR5cGVTZXQtPmFsbFByaW1pdGl2ZVR5cGVOYW1lcygpKTsKICAgICAg
ICAgICAgIGRlc2NyaXB0aW9uLT5zZXRTdHJ1Y3R1cmVzKHR5cGVTZXQtPmFsbFN0cnVjdHVyZVJl
cHJlc2VudGF0aW9ucygpKTsKICAgICAgICAgICAgIGRlc2NyaXB0aW9uLT5zZXRUeXBlU2V0KHR5
cGVTZXQtPmluc3BlY3RvclR5cGVTZXQoKSk7CiAgICAgICAgICAgICBkZXNjcmlwdGlvbi0+c2V0
SXNUcnVuY2F0ZWQodHlwZVNldC0+aXNPdmVyZmxvd24oKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1J1bnRpbWUuanNvbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1J1bnRpbWUuanNvbgkocmV2
aXNpb24gMTc0MjU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2Nv
bC9SdW50aW1lLmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTE0NSw3ICsxNDUsNiBAQAogICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiaXNWYWxpZCIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3Jp
cHRpb24iOiAiSWYgdHJ1ZSwgd2Ugd2VyZSBhYmxlIHRvIGNvcnJlbGF0ZSB0aGUgb2Zmc2V0IHN1
Y2Nlc3NmdWx5IHdpdGggYSBwcm9ncmFtIGxvY2F0aW9uLiBJZiBmYWxzZSwgdGhlIG9mZnNldCBt
YXkgYmUgYm9ndXMgb3IgdGhlIG9mZnNldCBtYXkgYmUgZnJvbSBhIENvZGVCbG9jayB0aGF0IGhh
c24ndCBleGVjdXRlZC4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsZWFzdENvbW1v
bkFuY2VzdG9yIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0
aW9uIjogIkxlYXN0IGNvbW1vbiBhbmNlc3RvciBvZiBhbGwgQ29uc3RydWN0b3JzIGlmIHRoZSBU
eXBlRGVzY3JpcHRpb24gaGFzIHNlZW4gYW55IHN0cnVjdHVyZXMuIFRoaXMgc3RyaW5nIGlzIHRo
ZSBkaXNwbGF5IG5hbWUgb2YgdGhlIHNoYXJlZCBjb25zdHJ1Y3RvciBmdW5jdGlvbi4iIH0sCiAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlU2V0IiwgIiRyZWYiOiAiVHlwZVNldCIsICJv
cHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJTZXQgb2YgYm9vbGVhbnMgZm9yIGRldGVy
bWluaW5nIHRoZSBhZ2dyZWdhdGUgdHlwZSBvZiB0aGlzIHR5cGUgZGVzY3JpcHRpb24uIiB9LAot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJpbWl0aXZlVHlwZU5hbWVzIiwgInR5cGUiOiAi
YXJyYXkiLCAiaXRlbXMiOiB7ICJ0eXBlIjogInN0cmluZyIgfSwgIm9wdGlvbmFsIjogdHJ1ZSwg
ImRlc2NyaXB0aW9uIjogIkFycmF5IG9mIHR5cGUgbmFtZXMgZm9yIHByaW1pdGl2ZSB0eXBlcyAo
aW50LCBzdHJpbmcsIGV0Yykgc2VlbiBhdCBhbiBpbnN0cnVjdGlvbi4iIH0sCiAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJzdHJ1Y3R1cmVzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7
ICIkcmVmIjogIlN0cnVjdHVyZURlc2NyaXB0aW9uIiB9LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVz
Y3JpcHRpb24iOiAiQXJyYXkgb2YgZGVzY3JpcHRpb25zIGZvciBhbGwgc3RydWN0dXJlcyBzZWVu
IGZvciB0aGlzIHZhcmlhYmxlLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlzVHJ1
bmNhdGVkIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlv
biI6ICJJZiB0cnVlLCB0aGlzIGluZGljYXRlcyB0aGF0IG5vIG1vcmUgc3RydWN0dXJlcyBhcmUg
YmVpbmcgcHJvZmlsZWQgYmVjYXVzZSBzb21lIG1heGltdW0gdGhyZXNob2xkIGhhcyBiZWVuIHJl
YWNoZWQgYW5kIHByb2ZpbGluZyBoYXMgc3RvcHBlZCBiZWNhdXNlIG9mIG1lbW9yeSBwcmVzc3Vy
ZS4iIH0KICAgICAgICAgICAgIF0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1R5cGVTZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1R5cGVTZXQuY3BwCShyZXZpc2lvbiAxNzQyNTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9UeXBlU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM3LDI1ICsyMzcsNiBAQCBT
dHJpbmcgVHlwZVNldDo6bGVhc3RDb21tb25BbmNlc3RvcigpIGNvCiB9CiAKICNpZiBFTkFCTEUo
SU5TUEVDVE9SKQotUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxTdHJpbmc+
PiBUeXBlU2V0OjphbGxQcmltaXRpdmVUeXBlTmFtZXMoKSBjb25zdAotewotICAgIFJlZlB0cjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxTdHJpbmc+PiBzZWVuID0gSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXJyYXk8U3RyaW5nPjo6Y3JlYXRlKCk7Ci0gICAgaWYgKG1fc2VlblR5cGVzICYgVHlw
ZVVuZGVmaW5lZCkKLSAgICAgICAgc2Vlbi0+YWRkSXRlbShBU0NJSUxpdGVyYWwoIlVuZGVmaW5l
ZCIpKTsKLSAgICBpZiAobV9zZWVuVHlwZXMgJiBUeXBlTnVsbCkKLSAgICAgICAgc2Vlbi0+YWRk
SXRlbShBU0NJSUxpdGVyYWwoIk51bGwiKSk7Ci0gICAgaWYgKG1fc2VlblR5cGVzICYgVHlwZUJv
b2xlYW4pCi0gICAgICAgIHNlZW4tPmFkZEl0ZW0oQVNDSUlMaXRlcmFsKCJCb29sZWFuIikpOwot
ICAgIGlmIChtX3NlZW5UeXBlcyAmIFR5cGVNYWNoaW5lSW50KQotICAgICAgICBzZWVuLT5hZGRJ
dGVtKEFTQ0lJTGl0ZXJhbCgiSW50ZWdlciIpKTsKLSAgICBpZiAobV9zZWVuVHlwZXMgJiBUeXBl
TnVtYmVyKQotICAgICAgICBzZWVuLT5hZGRJdGVtKEFTQ0lJTGl0ZXJhbCgiTnVtYmVyIikpOwot
ICAgIGlmIChtX3NlZW5UeXBlcyAmIFR5cGVTdHJpbmcpCi0gICAgICAgIHNlZW4tPmFkZEl0ZW0o
QVNDSUlMaXRlcmFsKCJTdHJpbmciKSk7Ci0KLSAgICByZXR1cm4gc2Vlbi5yZWxlYXNlKCk7Ci19
Ci0KIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90
b2NvbDo6UnVudGltZTo6U3RydWN0dXJlRGVzY3JpcHRpb24+PiBUeXBlU2V0OjphbGxTdHJ1Y3R1
cmVSZXByZXNlbnRhdGlvbnMoKSBjb25zdAogewogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpTdHJ1Y3R1cmVEZXNjcmlw
dGlvbj4+IGRlc2NyaXB0aW9uID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9y
OjpQcm90b2NvbDo6UnVudGltZTo6U3RydWN0dXJlRGVzY3JpcHRpb24+OjpjcmVhdGUoKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlU2V0LmgJKHJldmlzaW9uIDE3NDI1
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuaAkod29ya2luZyBj
b3B5KQpAQCAtMTAyLDcgKzEwMiw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGVDYWNo
ZSgpOwogICAgIFN0cmluZyBkdW1wVHlwZXMoKSBjb25zdDsKICAgICBTdHJpbmcgZGlzcGxheU5h
bWUoKSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PFN0
cmluZz4+IGFsbFByaW1pdGl2ZVR5cGVOYW1lcygpIGNvbnN0OwogICAgIFBhc3NSZWZQdHI8SW5z
cGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6UnVudGltZTo6U3Ry
dWN0dXJlRGVzY3JpcHRpb24+PiBhbGxTdHJ1Y3R1cmVSZXByZXNlbnRhdGlvbnMoKSBjb25zdDsK
ICAgICBTdHJpbmcgdG9KU09OU3RyaW5nKCkgY29uc3Q7CiAgICAgYm9vbCBpc092ZXJmbG93bigp
IGNvbnN0IHsgcmV0dXJuIG1faXNPdmVyZmxvd247IH0KSW5kZXg6IFNvdXJjZS9XZWJJbnNwZWN0
b3JVSS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTc0MjYxKQorKysgU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE0LTEwLTAzICBTYWFtIEJhcmF0
aSAgPHNhYW1iYXJhdGkxQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBNb3Zl
IHRoZSBjb21wdXRhdGlvbiB0aGF0IHJlc3VsdHMgaW4gVUkgc3RyaW5ncyBmcm9tIEpTQyB0byB0
aGUgV2ViIEluc3BlY3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM3Mjk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhlIGluc3BlY3RvciBub3cgY29tcHV0ZXMgYSBzZXQgb2YgcHJvcGVydGllcyB0
aGF0IHdhcyBwcmV2aW91c2x5IAorICAgICAgICBjb21wdXRlZCBpbnNpZGUgSlNDLiAKKworICAg
ICAgICBUaGlzIHBhdGNoIGFsc28gYWRkcmVzc2VzIHRoZSB3ZWlyZCBleHBlcmllbmNlIG9mIHRo
ZSAKKyAgICAgICAgdHlwZSBvZiBhbiBleHByZXNzaW9uIGNsYWltaW5nIHRvIGJlIGJvdGggYSBO
dW1iZXIgYW5kIAorICAgICAgICBhbiBJbnRlZ2VyLiBUaGlzIGNvdWxkIGJlIGEgYml0IGNvbmZ1
c2luZyBiZWNhdXNlIE51bWJlciAKKyAgICAgICAgaXMgc3VwcG9zZWQgdG8gcmVwcmVzZW50IERv
dWJsZXxJbnRlZ2VyIGFuZCB0aGUgcHJldmlvdXMKKyAgICAgICAgVUkgaW1wbGllZCB0aGF0IE51
bWJlciB3YXMgZXF1aXZhbGVudCB0byBEb3VibGUuIFRoZSBuZXcgVUkgb25seSAKKyAgICAgICAg
ZXZlciBzaG93cyBlaXRoZXIgdGhlIHR5cGUgb2YgTnVtYmVyIG9yIEludGVnZXIgd2hlbiBzaG93
aW5nCisgICAgICAgIHRoZSB0eXBlIGluZm9ybWF0aW9uIG9mIGFuIGV4cHJlc3Npb24uIEl0IG5l
dmVyIHNob3dzIGJvdGggTnVtYmVyCisgICAgICAgIGFuZCBJbnRlZ2VyIHNpbXVsdGFuZW91c2x5
IHRvIGRlc2NyaWJlIGEgc2luZ2xlIGV4cHJlc3Npb24uCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL01vZGVscy9UeXBlU2V0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlR5cGVTZXQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlR5cGVTZXQucHJvdG90eXBlLmlzQ29udGFpbmVkSW4pOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlR5cGVTZXQucHJvdG90eXBlLmdldCBwcmltaXRpdmVUeXBl
TmFtZXMpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVHlwZVByb3BlcnRpZXNTZWN0
aW9uLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlR5cGVQcm9wZXJ0aWVzU2VjdGlvbik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVHlwZVByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZS5vbnBv
cHVsYXRlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1R5cGVUb2tlblZpZXcuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVHlwZVRva2VuVmlldyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVHlwZVRva2VuVmlldy5wcm90b3R5cGUudXBkYXRlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UeXBlVG9rZW5WaWV3LnByb3RvdHlwZS5fc2hvdWxkU2hvd1BvcG92ZXIpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlR5cGVUb2tlblZpZXcucHJvdG90eXBlLl9kaXNwbGF5VHlwZU5hbWUp
OgorCiAyMDE0LTEwLTAyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogQ2Fubm90IGFkZCBhIG5ldyBDU1MgUnVsZSB0byBlbGVt
ZW50cyB3aXRoIDMgb3IgbW9yZSBjbGFzcyBuYW1lcwpJbmRleDogU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1R5cGVTZXQuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1R5cGVTZXQuanMJKHJldmlzaW9u
IDE3NDI1OSkKKysrIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9U
eXBlU2V0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw4IEBAIFdlYkluc3BlY3Rvci5U
eXBlU2V0ID0gZnVuY3Rpb24ocnVudGltZVQKIAogICAgIGNvbnNvbGUuYXNzZXJ0KGJpdFN0cmlu
Zyk7CiAgICAgdGhpcy5fYml0U3RyaW5nID0gYml0U3RyaW5nOworCisgICAgdGhpcy5fcHJpbWl0
aXZlVHlwZU5hbWVzID0gbnVsbDsKIH07CiAKIFdlYkluc3BlY3Rvci5UeXBlU2V0LmZyb21QYXls
b2FkID0gZnVuY3Rpb24ocGF5bG9hZCkKQEAgLTkxLDUgKzkzLDMyIEBAIFdlYkluc3BlY3Rvci5U
eXBlU2V0LnByb3RvdHlwZSA9IHsKICAgICAgICAgLy8gMGIwMDEwICE9IGJpdFN0cmluZwogCiAg
ICAgICAgIHJldHVybiB0aGlzLl9iaXRTdHJpbmcgJiYgKHRoaXMuX2JpdFN0cmluZyAmIHRlc3Qp
ID09PSB0aGlzLl9iaXRTdHJpbmc7CisgICAgfSwKKworICAgIGdldCBwcmltaXRpdmVUeXBlTmFt
ZXMoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3ByaW1pdGl2ZVR5cGVOYW1lcykKKyAgICAg
ICAgICAgIHJldHVybiB0aGlzLl9wcmltaXRpdmVUeXBlTmFtZXM7CisKKyAgICAgICAgdGhpcy5f
cHJpbWl0aXZlVHlwZU5hbWVzID0gW107CisgICAgICAgIHZhciB0eXBlU2V0ID0gdGhpcy5fdHlw
ZXMudHlwZVNldDsKKyAgICAgICAgaWYgKHR5cGVTZXQuaXNVbmRlZmluZWQpCisgICAgICAgICAg
ICB0aGlzLl9wcmltaXRpdmVUeXBlTmFtZXMucHVzaCgiVW5kZWZpbmVkIik7CisgICAgICAgIGlm
ICh0eXBlU2V0LmlzTnVsbCkKKyAgICAgICAgICAgIHRoaXMuX3ByaW1pdGl2ZVR5cGVOYW1lcy5w
dXNoKCJOdWxsIik7CisgICAgICAgIGlmICh0eXBlU2V0LmlzQm9vbGVhbikKKyAgICAgICAgICAg
IHRoaXMuX3ByaW1pdGl2ZVR5cGVOYW1lcy5wdXNoKCJCb29sZWFuIik7CisgICAgICAgIGlmICh0
eXBlU2V0LmlzU3RyaW5nKQorICAgICAgICAgICAgdGhpcy5fcHJpbWl0aXZlVHlwZU5hbWVzLnB1
c2goIlN0cmluZyIpOworCisgICAgICAgIC8vIEl0J3MgaW1wbGllZCB0aGF0IHR5cGUgSW50ZWdl
ciBpcyBjb250YWluZWQgaW4gdHlwZSBOdW1iZXIuIERvbid0IHB1dCAKKyAgICAgICAgLy8gYm90
aCAnSW50ZWdlcicgYW5kICdOdW1iZXInIGludG8gdGhlIHNldCBiZWNhdXNlIHRoaXMgY291bGQg
aW1wbHkgdGhhdCAKKyAgICAgICAgLy8gTnVtYmVyIG1lYW5zIHRvIERvdWJsZSBpbnN0ZWFkIG9m
IERvdWJsZXxJbnRlZ2VyLgorICAgICAgICBpZiAodHlwZVNldC5pc051bWJlcikKKyAgICAgICAg
ICAgIHRoaXMuX3ByaW1pdGl2ZVR5cGVOYW1lcy5wdXNoKCJOdW1iZXIiKTsKKyAgICAgICAgZWxz
ZSBpZiAodHlwZVNldC5pc0ludGVnZXIpCisgICAgICAgICAgICB0aGlzLl9wcmltaXRpdmVUeXBl
TmFtZXMucHVzaCgiSW50ZWdlciIpOworCisgICAgICAgIHJldHVybiB0aGlzLl9wcmltaXRpdmVU
eXBlTmFtZXM7CiAgICAgfQogfTsKSW5kZXg6IFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1R5cGVQcm9wZXJ0aWVzU2VjdGlvbi5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UeXBlUHJvcGVydGllc1NlY3Rp
b24uanMJKHJldmlzaW9uIDE3NDI1OSkKKysrIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1R5cGVQcm9wZXJ0aWVzU2VjdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAt
MjcsNiArMjcsNyBAQCBXZWJJbnNwZWN0b3IuVHlwZVByb3BlcnRpZXNTZWN0aW9uID0gZnVuCiB7
CiAgICAgdGhpcy5lbXB0eVBsYWNlaG9sZGVyID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJObyBQ
cm9wZXJ0aWVzIik7CiAgICAgdGhpcy50eXBlcyA9IHR5cGVzOworICAgIHRoaXMuX3R5cGVTZXQg
PSBXZWJJbnNwZWN0b3IuVHlwZVNldC5mcm9tUGF5bG9hZCh0aGlzLnR5cGVzKTsKIAogICAgIFdl
Ykluc3BlY3Rvci5Qcm9wZXJ0aWVzU2VjdGlvbi5jYWxsKHRoaXMsIHRpdGxlLCBzdWJ0aXRsZSk7
CiB9OwpAQCAtMzksNyArNDAsNyBAQCBXZWJJbnNwZWN0b3IuVHlwZVByb3BlcnRpZXNTZWN0aW9u
LnByb3RvCiAgICAgewogICAgICAgICB0aGlzLnByb3BlcnRpZXNUcmVlT3V0bGluZS5yZW1vdmVD
aGlsZHJlbigpOwogCi0gICAgICAgIHZhciBwcmltaXRpdmVUeXBlTmFtZXMgPSB0aGlzLnR5cGVz
LnByaW1pdGl2ZVR5cGVOYW1lczsKKyAgICAgICAgdmFyIHByaW1pdGl2ZVR5cGVOYW1lcyA9IHRo
aXMuX3R5cGVTZXQucHJpbWl0aXZlVHlwZU5hbWVzOwogICAgICAgICB2YXIgc3RydWN0dXJlcyA9
IHRoaXMudHlwZXMuc3RydWN0dXJlczsKICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSBbXTsKICAg
ICAgICAgZm9yICh2YXIgc3RydWN0IG9mIHN0cnVjdHVyZXMpIHsKSW5kZXg6IFNvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1R5cGVUb2tlblZpZXcuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVHlwZVRva2Vu
Vmlldy5qcwkocmV2aXNpb24gMTc0MjU5KQorKysgU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVHlwZVRva2VuVmlldy5qcwkod29ya2luZyBjb3B5KQpAQCAtMzksNiAr
MzksNyBAQCBXZWJJbnNwZWN0b3IuVHlwZVRva2VuVmlldyA9IGZ1bmN0aW9uKHRvCiAgICAgdGhp
cy5lbGVtZW50ID0gc3BhbjsKICAgICB0aGlzLl90b2tlbkFubm90YXRvciA9IHRva2VuQW5ub3Rh
dG9yOwogICAgIHRoaXMuX3R5cGVzID0gbnVsbDsKKyAgICB0aGlzLl90eXBlU2V0ID0gbnVsbDsK
ICAgICB0aGlzLl9jb2xvckNsYXNzID0gbnVsbDsKIAogICAgIHRoaXMuX3BvcG92ZXJUaXRsZSA9
IFdlYkluc3BlY3Rvci5UeXBlVG9rZW5WaWV3LnRpdGxlRm9yUG9wb3Zlcih0aXRsZVR5cGUsIGZ1
bmN0aW9uT3JWYXJpYWJsZU5hbWUpOwpAQCAtODksNiArOTAsNyBAQCBXZWJJbnNwZWN0b3IuVHlw
ZVRva2VuVmlldy5wcm90b3R5cGUgPSB7CiAgICAgdXBkYXRlOiBmdW5jdGlvbih0eXBlcykKICAg
ICB7CiAgICAgICAgIHRoaXMuX3R5cGVzID0gdHlwZXM7CisgICAgICAgIHRoaXMuX3R5cGVTZXQg
PSBXZWJJbnNwZWN0b3IuVHlwZVNldC5mcm9tUGF5bG9hZCh0aGlzLl90eXBlcyk7CiAKICAgICAg
ICAgdmFyIHRpdGxlID0gdGhpcy5fZGlzcGxheVR5cGVOYW1lKCk7CiAgICAgICAgIHRoaXMuZWxl
bWVudC50ZXh0Q29udGVudCA9IHRpdGxlOwpAQCAtMTI5LDcgKzEzMSwxMCBAQCBXZWJJbnNwZWN0
b3IuVHlwZVRva2VuVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICBfc2hvdWxkU2hvd1BvcG92ZXI6
IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl90eXBlcy5wcmltaXRpdmVUeXBl
TmFtZXMgJiYgdGhpcy5fdHlwZXMucHJpbWl0aXZlVHlwZU5hbWVzLmxlbmd0aCA+IDEpCisgICAg
ICAgIGlmICghdGhpcy5fdHlwZXMuaXNWYWxpZCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgICAgICBpZiAodGhpcy5fdHlwZVNldC5wcmltaXRpdmVUeXBlTmFtZXMubGVuZ3RoID4g
MSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgICAgIGlmICh0aGlzLl90eXBlcy5z
dHJ1Y3R1cmVzICYmIHRoaXMuX3R5cGVzLnN0cnVjdHVyZXMubGVuZ3RoKQpAQCAtMTQwLDkgKzE0
NSwxMiBAQCBXZWJJbnNwZWN0b3IuVHlwZVRva2VuVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICBf
ZGlzcGxheVR5cGVOYW1lOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB2YXIgdHlwZVNldCA9
IFdlYkluc3BlY3Rvci5UeXBlU2V0LmZyb21QYXlsb2FkKHRoaXMuX3R5cGVzKTsKKyAgICAgICAg
aWYgKCF0aGlzLl90eXBlcy5pc1ZhbGlkKQorICAgICAgICAgICAgcmV0dXJuICIiOworCisgICAg
ICAgIHZhciB0eXBlU2V0ID0gdGhpcy5fdHlwZVNldDsKIAotICAgICAgICBpZiAodGhpcy5fdHlw
ZXMubGVhc3RDb21tb25BbmNlc3RvciAmJiAhKHRoaXMuX3R5cGVzLnByaW1pdGl2ZVR5cGVOYW1l
cyAmJiB0aGlzLl90eXBlcy5wcmltaXRpdmVUeXBlTmFtZXMubGVuZ3RoKSkgeworICAgICAgICBp
ZiAodGhpcy5fdHlwZXMubGVhc3RDb21tb25BbmNlc3RvciAmJiAhdGhpcy5fdHlwZVNldC5wcmlt
aXRpdmVUeXBlTmFtZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICBpZiAodHlwZVNldC5pc0NvbnRh
aW5lZEluKFdlYkluc3BlY3Rvci5UeXBlU2V0LlR5cGVCaXQuT2JqZWN0KSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gdGhpcy5fdHlwZXMubGVhc3RDb21tb25BbmNlc3RvcjsKICAgICAgICAgICAg
IGlmICh0eXBlU2V0LmlzQ29udGFpbmVkSW4oV2ViSW5zcGVjdG9yLlR5cGVTZXQuVHlwZUJpdC5P
YmplY3QgfCBXZWJJbnNwZWN0b3IuVHlwZVNldC5OdWxsT3JVbmRlZmluZWRUeXBlQml0cykpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>