<?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>119277</bug_id>
          
          <creation_ts>2013-07-30 14:40:11 -0700</creation_ts>
          <short_desc>Reduce JSC API static value setter/getter overhead</short_desc>
          <delta_ts>2013-07-31 16:59:36 -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>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="Yi Shen">max.hong.shen</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>913027</commentid>
    <comment_count>0</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2013-07-30 14:40:11 -0700</bug_when>
    <thetext>To set/get the static value, JSC APIs always call OpaqueJSString::create() to make a thread-safe string copy and pass it to the setXXX/getXXX function which is implemented by the API client. However, the client&apos;s setXXX/getXXX doesn&apos;t need to know the property name in most case (because they already know the property name). To reduce the overhead, it would be nice to introduce a new JSPropertyAttribute to allow the client decide whether a property name string copy should be created and passed as a parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913036</commentid>
    <comment_count>1</comment_count>
      <attachid>207769</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2013-07-30 14:56:58 -0700</bug_when>
    <thetext>Created attachment 207769
Test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913037</commentid>
    <comment_count>2</comment_count>
      <attachid>207770</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2013-07-30 14:59:18 -0700</bug_when>
    <thetext>Created attachment 207770
proposal patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913039</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-30 15:00:53 -0700</bug_when>
    <thetext>Attachment 207770 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSCallbackObjectFunctions.h&apos;, u&apos;Source/JavaScriptCore/API/JSObjectRef.h&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;]&quot; exit_code: 1
Source/JavaScriptCore/API/JSObjectRef.h:55:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/JavaScriptCore/API/JSObjectRef.h:56:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913045</commentid>
    <comment_count>4</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2013-07-30 15:16:31 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Attachment 207770 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSCallbackObjectFunctions.h&apos;, u&apos;Source/JavaScriptCore/API/JSObjectRef.h&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;]&quot; exit_code: 1
&gt; Source/JavaScriptCore/API/JSObjectRef.h:55:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
&gt; Source/JavaScriptCore/API/JSObjectRef.h:56:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
&gt; Total errors found: 2 in 3 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

The existing &amp; new added JSPropertyAttribute are not using InterCaps with and initial capital letter, which makes the style checker unhappy. But I think we should keep that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913046</commentid>
    <comment_count>5</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2013-07-30 15:16:46 -0700</bug_when>
    <thetext>result(ms) 
                  Pass name          Don&apos;t pass name
                 getter/setter          getter/setter
1.                 344/321               193/159
2.                 375/341               196/159
3.                 337/322               193/160
4.                 339/317               193/158
5.                 342/323               195/159
6.                 338/320               194/159
7.                 338/322               195/160
8.                 341/333               193/159
9.                 355/323               195/161
10.               354/337               195/157
----------------------------------------------------
avg               346/326               194/159</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913112</commentid>
    <comment_count>6</comment_count>
      <attachid>207770</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-07-30 17:18:42 -0700</bug_when>
    <thetext>Comment on attachment 207770
proposal patch

I don&apos;t think we should fix this with a special attribute. What about all our existing clients that don&apos;t use the attribute?

Let&apos;s optimize this path not to call OpaqueJSString::create() every time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913434</commentid>
    <comment_count>7</comment_count>
      <attachid>207866</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2013-07-31 11:28:41 -0700</bug_when>
    <thetext>Created attachment 207866
avoid to create OpaqueJSString every time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913435</commentid>
    <comment_count>8</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2013-07-31 11:30:10 -0700</bug_when>
    <thetext>Thanks for reviewing. I added a new patch based on your comments.
(In reply to comment #6)
&gt; (From update of attachment 207770 [details])
&gt; I don&apos;t think we should fix this with a special attribute. What about all our existing clients that don&apos;t use the attribute?
&gt; 
&gt; Let&apos;s optimize this path not to call OpaqueJSString::create() every time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913465</commentid>
    <comment_count>9</comment_count>
      <attachid>207866</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-07-31 12:50:54 -0700</bug_when>
    <thetext>Comment on attachment 207866
avoid to create OpaqueJSString every time

Attachment 207866 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/1288847</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913473</commentid>
    <comment_count>10</comment_count>
      <attachid>207866</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-07-31 13:19:04 -0700</bug_when>
    <thetext>Comment on attachment 207866
avoid to create OpaqueJSString every time

This looks good, but it leaves the code in a bit of a confused state, because now getters build in a propertyNameRef, but setters still call &quot;propertyNameRef = OpaqueJSString::create(name);&quot;, and it&apos;s not clear why. Can you update setters to match getters as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913493</commentid>
    <comment_count>11</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2013-07-31 14:40:43 -0700</bug_when>
    <thetext>Thanks for reviewing :)

The setters call &quot;OpaqueJSString::create()&quot; only if there is a setProperty function defined in the callee JSClass (OpaqueJSClass::setProperty). In this case, the property name is undetermined until the setters was invoked (Actually, user can pass any value as a property name and client&apos;s code will determine whether it is valid). One solution to avoid to create OpaqueJSString every time in this case is to use a Map structure, but it will cause memory overhead.

For JSClass that doesn&apos;t have a setProperty function, the setters search the static values table by property name and call the set function only if it can find. My patch only focus on this case, and has updated setters to match the static value getters. Please check the changes for JSCallbackObject&lt;Parent&gt;::put() and JSCallbackObject&lt;Parent&gt;::putByIndex. 

(In reply to comment #10)
&gt; (From update of attachment 207866 [details])
&gt; This looks good, but it leaves the code in a bit of a confused state, because now getters build in a propertyNameRef, but setters still call &quot;propertyNameRef = OpaqueJSString::create(name);&quot;, and it&apos;s not clear why. Can you update setters to match getters as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913494</commentid>
    <comment_count>12</comment_count>
      <attachid>207878</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2013-07-31 14:48:35 -0700</bug_when>
    <thetext>Created attachment 207878
add comments to eliminate confusion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913511</commentid>
    <comment_count>13</comment_count>
      <attachid>207878</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-07-31 15:50:51 -0700</bug_when>
    <thetext>Comment on attachment 207878
add comments to eliminate confusion

Attachment 207878 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/1300718</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913528</commentid>
    <comment_count>14</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-07-31 16:28:46 -0700</bug_when>
    <thetext>Sorry, you were right the first time -- I just misread the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913529</commentid>
    <comment_count>15</comment_count>
      <attachid>207866</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-07-31 16:31:01 -0700</bug_when>
    <thetext>Comment on attachment 207866
avoid to create OpaqueJSString every time

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913530</commentid>
    <comment_count>16</comment_count>
      <attachid>207878</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-07-31 16:31:21 -0700</bug_when>
    <thetext>Comment on attachment 207878
add comments to eliminate confusion

This version isn&apos;t necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913544</commentid>
    <comment_count>17</comment_count>
      <attachid>207866</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-31 16:56:12 -0700</bug_when>
    <thetext>Comment on attachment 207866
avoid to create OpaqueJSString every time

Clearing flags on attachment: 207866

Committed r153547: &lt;http://trac.webkit.org/changeset/153547&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913545</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-31 16:56:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913548</commentid>
    <comment_count>19</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2013-07-31 16:59:36 -0700</bug_when>
    <thetext>Thank you, Geoffrey :]
(In reply to comment #15)
&gt; (From update of attachment 207866 [details])
&gt; r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>207769</attachid>
            <date>2013-07-30 14:56:58 -0700</date>
            <delta_ts>2013-07-30 14:56:58 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>JSCAPI-StaticValue.html</filename>
            <type>text/html</type>
            <size>541</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">PGh0bWw+Cgo8aGVhZD4KPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+PC9tZXRhPgoKPHNjcmlwdD4KCmZ1bmN0aW9u
IFJ1blRlc3RzKCkKewogICAgdmFyIG15VGVzdCA9IG5ldyBNeVRlc3RSdW5uZXIoKTsKICAgIHZh
ciBzcyA9IERhdGUubm93KCk7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDA7IGkrKykg
ewogICAgICAgIG15VGVzdC5nbG9iYWxGbGFnOwogICAgfQogICAgdmFyIHJlc3VsdCA9IERhdGUu
bm93KCkgLSBzczsKICAgIHNzID0gRGF0ZS5ub3coKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDAwMDsgaSsrKSB7CiAgICAgICAgbXlUZXN0Lmdsb2JhbEZsYWcgPSA4MDsKICAgIH0KICAg
IAogICAgYWxlcnQoImdldFByb3BlcnR5OiIgKyByZXN1bHQgKyAiICBzZXRQcm9wZXJ0eToiICsg
KERhdGUubm93KCkgLSBzcykpOwp9Cgo8L3NjcmlwdD4KCjwvaGVhZD4KPGJvZHkgb25sb2FkPSJS
dW5UZXN0cygpIj4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207770</attachid>
            <date>2013-07-30 14:59:18 -0700</date>
            <delta_ts>2013-07-31 11:28:41 -0700</delta_ts>
            <desc>proposal patch</desc>
            <filename>119277.patch</filename>
            <type>text/plain</type>
            <size>4089</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVu
Y3Rpb25zLmgKaW5kZXggYzQ2YjMyMy4uZjYxNDI2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTI2Myw3ICsy
NjMsNyBAQCB2b2lkIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6cHV0KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcAogICAgICAgICAgICAgICAgICAgICBpZiAo
ZW50cnktPmF0dHJpYnV0ZXMgJiBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5KQogICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICBpZiAoSlNPYmpl
Y3RTZXRQcm9wZXJ0eUNhbGxiYWNrIHNldFByb3BlcnR5ID0gZW50cnktPnNldFByb3BlcnR5KSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb3BlcnR5TmFtZVJlZikKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICghcHJvcGVydHlOYW1lUmVmICYmICEoZW50cnktPmF0dHJpYnV0
ZXMgJiBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRQYXNzTmFtZSkpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHJvcGVydHlOYW1lUmVmID0gT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShuYW1l
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcmVzdWx0OwpAQCAtMzI0LDcgKzMyNCw3IEBAIHZv
aWQgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpwdXRCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhl
Y1N0YXRlKiBleGVjLCB1bnNpZ25lCiAgICAgICAgICAgICAgICAgaWYgKGVudHJ5LT5hdHRyaWJ1
dGVzICYga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSkKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgICAgIGlmIChKU09iamVjdFNldFByb3BlcnR5Q2FsbGJhY2sg
c2V0UHJvcGVydHkgPSBlbnRyeS0+c2V0UHJvcGVydHkpIHsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKCFwcm9wZXJ0eU5hbWVSZWYpCisgICAgICAgICAgICAgICAgICAgIGlmICghcHJvcGVydHlO
YW1lUmVmICYmICEoZW50cnktPmF0dHJpYnV0ZXMgJiBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRQ
YXNzTmFtZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWVSZWYgPSBPcGFx
dWVKU1N0cmluZzo6Y3JlYXRlKHByb3BlcnR5TmFtZS5pbXBsKCkpOwogICAgICAgICAgICAgICAg
ICAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7CiAgICAgICAgICAgICAgICAgICAgIGJvb2wg
cmVzdWx0OwpAQCAtNTg3LDcgKzU4Nyw3IEBAIEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJl
bnQ+OjpnZXRTdGF0aWNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwCiAgICAg
ICAgICAgICBpZiAoT3BhcXVlSlNDbGFzc1N0YXRpY1ZhbHVlc1RhYmxlKiBzdGF0aWNWYWx1ZXMg
PSBqc0NsYXNzLT5zdGF0aWNWYWx1ZXMoZXhlYykpIHsKICAgICAgICAgICAgICAgICBpZiAoU3Rh
dGljVmFsdWVFbnRyeSogZW50cnkgPSBzdGF0aWNWYWx1ZXMtPmdldChuYW1lKSkgewogICAgICAg
ICAgICAgICAgICAgICBpZiAoSlNPYmplY3RHZXRQcm9wZXJ0eUNhbGxiYWNrIGdldFByb3BlcnR5
ID0gZW50cnktPmdldFByb3BlcnR5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXBy
b3BlcnR5TmFtZVJlZikKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJvcGVydHlOYW1l
UmVmICYmICEoZW50cnktPmF0dHJpYnV0ZXMgJiBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRQYXNz
TmFtZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lUmVmID0gT3Bh
cXVlSlNTdHJpbmc6OmNyZWF0ZShuYW1lKTsKICAgICAgICAgICAgICAgICAgICAgICAgIEpTVmFs
dWVSZWYgZXhjZXB0aW9uID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWYg
dmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVm
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmgKaW5kZXggNTAxNDcy
Ni4uNjAyZjVlODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmpl
Y3RSZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmgKQEAg
LTQ2LDEyICs0NiwxNCBAQCBleHRlcm4gIkMiIHsKIEBjb25zdGFudCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5ICAgICBTcGVjaWZpZXMgdGhhdCBhIHByb3BlcnR5IGlzIHJlYWQtb25seS4K
IEBjb25zdGFudCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRFbnVtICAgICBTcGVjaWZpZXMgdGhh
dCBhIHByb3BlcnR5IHNob3VsZCBub3QgYmUgZW51bWVyYXRlZCBieSBKU1Byb3BlcnR5RW51bWVy
YXRvcnMgYW5kIEphdmFTY3JpcHQgZm9yLi4uaW4gbG9vcHMuCiBAY29uc3RhbnQga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlICAgU3BlY2lmaWVzIHRoYXQgdGhlIGRlbGV0ZSBvcGVyYXRp
b24gc2hvdWxkIGZhaWwgb24gYSBwcm9wZXJ0eS4KK0Bjb25zdGFudCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnRQYXNzTmFtZSBTcGVjaWZpZXMgdGhhdCB0aGUgcHJvcGVydHkgbmFtZSBzaG91bGQg
bm90IGJlIHBhc3NlZCBhcyBhIHBhcmFtZXRlciBmb3Igc3RhdGljIHZhbHVlLgogKi8KIGVudW0g
eyAKICAgICBrSlNQcm9wZXJ0eUF0dHJpYnV0ZU5vbmUgICAgICAgICA9IDAsCiAgICAga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSAgICAgPSAxIDw8IDEsCiAgICAga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RW51bSAgICAgPSAxIDw8IDIsCi0gICAga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlICAgPSAxIDw8IDMKKyAgICBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgICA9
IDEgPDwgMywKKyAgICBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRQYXNzTmFtZSA9IDEgPDwgNAog
fTsKIAogLyohIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggYjRlMGEzOC4uZDI5N2Q3MCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTMtMDctMzAgIFlp
IFNoZW4gIDxtYXguaG9uZy5zaGVuQGdtYWlsLmNvbT4KKworICAgICAgICBSZWR1Y2UgSlNDIEFQ
SSBzdGF0aWMgdmFsdWUgc2V0dGVyL2dldHRlciBvdmVyaGVhZC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTI3NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZWQgYSBuZXcgSlNQcm9wZXJ0
eUF0dHJpYnV0ZSBuYW1lZCAia0pTUHJvcGVydHlBdHRyaWJ1dGVEb250UGFzc05hbWUiIHRvIAor
ICAgICAgICBhbGxvdyB0aGUgY2xpZW50IGRlY2lkZSB3aGV0aGVyIGEgcHJvcGVydHkgbmFtZSBz
dHJpbmcgY29weSBzaG91bGQgYmUgY3JlYXRlZCBhbmQKKyAgICAgICAgcGFzc2VkIHRvIHNldHRl
ci9nZXR0ZXIgb2YgdGhlIHN0YXRpYyB2YWx1ZS4KKworICAgICAgICAqIEFQSS9KU0NhbGxiYWNr
T2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6Ojo6cHV0KToKKyAgICAgICAgKEpTQzo6
OjpnZXRTdGF0aWNWYWx1ZSk6CisgICAgICAgICogQVBJL0pTT2JqZWN0UmVmLmg6CisKIDIwMTMt
MDctMzAgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBwcm9i
bGVtcyB3aXRoIGRpdm90IGFuZCBsaW5lU3RhcnQgbWlzbWF0Y2hlcy4K
</data>
<flag name="review"
          id="229584"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207866</attachid>
            <date>2013-07-31 11:28:41 -0700</date>
            <delta_ts>2013-07-31 16:56:12 -0700</delta_ts>
            <desc>avoid to create OpaqueJSString every time</desc>
            <filename>119277v1.patch</filename>
            <type>text/plain</type>
            <size>7470</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVu
Y3Rpb25zLmgKaW5kZXggYzQ2YjMyMy4uMDNhMWZlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTI2MywxMyAr
MjYzLDExIEBAIHZvaWQgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpwdXQoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwCiAgICAgICAgICAgICAgICAgICAgIGlm
IChlbnRyeS0+YXR0cmlidXRlcyAmIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgIGlmIChKU09i
amVjdFNldFByb3BlcnR5Q2FsbGJhY2sgc2V0UHJvcGVydHkgPSBlbnRyeS0+c2V0UHJvcGVydHkp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJvcGVydHlOYW1lUmVmKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZVJlZiA9IE9wYXF1ZUpTU3RyaW5nOjpj
cmVhdGUobmFtZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlv
biA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHJlc3VsdDsKICAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUElDYWxsYmFja1No
aW0gY2FsbGJhY2tTaGltKGV4ZWMpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dCA9IHNldFByb3BlcnR5KGN0eCwgdGhpc1JlZiwgcHJvcGVydHlOYW1lUmVmLmdldCgpLCB2YWx1
ZVJlZiwgJmV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0g
c2V0UHJvcGVydHkoY3R4LCB0aGlzUmVmLCBlbnRyeS0+cHJvcGVydHlOYW1lUmVmLmdldCgpLCB2
YWx1ZVJlZiwgJmV4Y2VwdGlvbik7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRocm93RXJyb3IoZXhlYywgdG9KUyhleGVjLCBleGNlcHRpb24pKTsKQEAgLTMyNCwxMyAr
MzIyLDExIEBAIHZvaWQgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpwdXRCeUluZGV4KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lCiAgICAgICAgICAgICAgICAgaWYgKGVu
dHJ5LT5hdHRyaWJ1dGVzICYga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSkKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIGlmIChKU09iamVjdFNldFByb3Bl
cnR5Q2FsbGJhY2sgc2V0UHJvcGVydHkgPSBlbnRyeS0+c2V0UHJvcGVydHkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eU5hbWVSZWYpCi0gICAgICAgICAgICAgICAgICAgICAg
ICBwcm9wZXJ0eU5hbWVSZWYgPSBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKHByb3BlcnR5TmFtZS5p
bXBsKCkpOwogICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7CiAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgcmVzdWx0OwogICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBBUElDYWxsYmFja1NoaW0gY2FsbGJhY2tTaGltKGV4ZWMp
OwotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gc2V0UHJvcGVydHkoY3R4LCB0aGlz
UmVmLCBwcm9wZXJ0eU5hbWVSZWYuZ2V0KCksIHZhbHVlUmVmLCAmZXhjZXB0aW9uKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNldFByb3BlcnR5KGN0eCwgdGhpc1JlZiwgZW50
cnktPnByb3BlcnR5TmFtZVJlZi5nZXQoKSwgdmFsdWVSZWYsICZleGNlcHRpb24pOwogICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGlmIChleGNlcHRpb24pCiAgICAg
ICAgICAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIHRvSlMoZXhlYywgZXhjZXB0aW9u
KSk7CkBAIC01ODAsMjAgKzU3NiwxNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgogSlNWYWx1
ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmdldFN0YXRpY1ZhbHVlKEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBKU09iamVjdFJlZiB0aGlzUmVm
ID0gdG9SZWYodGhpcyk7Ci0gICAgUmVmUHRyPE9wYXF1ZUpTU3RyaW5nPiBwcm9wZXJ0eU5hbWVS
ZWY7CiAgICAgCiAgICAgaWYgKFN0cmluZ0ltcGwqIG5hbWUgPSBwcm9wZXJ0eU5hbWUucHVibGlj
TmFtZSgpKSB7CiAgICAgICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0gY2xhc3NSZWYoKTsg
anNDbGFzczsganNDbGFzcyA9IGpzQ2xhc3MtPnBhcmVudENsYXNzKSB7CiAgICAgICAgICAgICBp
ZiAoT3BhcXVlSlNDbGFzc1N0YXRpY1ZhbHVlc1RhYmxlKiBzdGF0aWNWYWx1ZXMgPSBqc0NsYXNz
LT5zdGF0aWNWYWx1ZXMoZXhlYykpIHsKICAgICAgICAgICAgICAgICBpZiAoU3RhdGljVmFsdWVF
bnRyeSogZW50cnkgPSBzdGF0aWNWYWx1ZXMtPmdldChuYW1lKSkgewogICAgICAgICAgICAgICAg
ICAgICBpZiAoSlNPYmplY3RHZXRQcm9wZXJ0eUNhbGxiYWNrIGdldFByb3BlcnR5ID0gZW50cnkt
PmdldFByb3BlcnR5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb3BlcnR5TmFt
ZVJlZikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWVSZWYgPSBPcGFx
dWVKU1N0cmluZzo6Y3JlYXRlKG5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgSlNWYWx1
ZVJlZiBleGNlcHRpb24gPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZiB2
YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBBUElDYWxsYmFja1NoaW0gY2FsbGJhY2tTaGltKGV4ZWMpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHZhbHVlID0gZ2V0UHJvcGVydHkodG9SZWYoZXhlYyksIHRoaXNSZWYsIHBy
b3BlcnR5TmFtZVJlZi5nZXQoKSwgJmV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmFsdWUgPSBnZXRQcm9wZXJ0eSh0b1JlZihleGVjKSwgdGhpc1JlZiwgZW50cnktPnBy
b3BlcnR5TmFtZVJlZi5nZXQoKSwgJmV4Y2VwdGlvbik7CiAgICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhyb3dFcnJvcihleGVjLCB0b0pTKGV4ZWMsIGV4Y2VwdGlvbikp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAKaW5kZXggYzc3ZjYzYy4u
NzZkMGM1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVm
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCkBAIC02
Niw3ICs2Niw3IEBAIE9wYXF1ZUpTQ2xhc3M6Ok9wYXF1ZUpTQ2xhc3MoY29uc3QgSlNDbGFzc0Rl
ZmluaXRpb24qIGRlZmluaXRpb24sIE9wYXF1ZUpTQ2xhc3MqCiAgICAgICAgIHdoaWxlIChzdGF0
aWNWYWx1ZS0+bmFtZSkgewogICAgICAgICAgICAgU3RyaW5nIHZhbHVlTmFtZSA9IFN0cmluZzo6
ZnJvbVVURjgoc3RhdGljVmFsdWUtPm5hbWUpOwogICAgICAgICAgICAgaWYgKCF2YWx1ZU5hbWUu
aXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgbV9zdGF0aWNWYWx1ZXMtPnNldCh2YWx1ZU5hbWUu
aW1wbCgpLCBhZG9wdFB0cihuZXcgU3RhdGljVmFsdWVFbnRyeShzdGF0aWNWYWx1ZS0+Z2V0UHJv
cGVydHksIHN0YXRpY1ZhbHVlLT5zZXRQcm9wZXJ0eSwgc3RhdGljVmFsdWUtPmF0dHJpYnV0ZXMp
KSk7CisgICAgICAgICAgICAgICAgbV9zdGF0aWNWYWx1ZXMtPnNldCh2YWx1ZU5hbWUuaW1wbCgp
LCBhZG9wdFB0cihuZXcgU3RhdGljVmFsdWVFbnRyeShzdGF0aWNWYWx1ZS0+Z2V0UHJvcGVydHks
IHN0YXRpY1ZhbHVlLT5zZXRQcm9wZXJ0eSwgc3RhdGljVmFsdWUtPmF0dHJpYnV0ZXMsIHZhbHVl
TmFtZSkpKTsKICAgICAgICAgICAgICsrc3RhdGljVmFsdWU7CiAgICAgICAgIH0KICAgICB9CkBA
IC0xMzUsNyArMTM1LDggQEAgT3BhcXVlSlNDbGFzc0NvbnRleHREYXRhOjpPcGFxdWVKU0NsYXNz
Q29udGV4dERhdGEoSlNDOjpWTSYsIE9wYXF1ZUpTQ2xhc3MqIGpzQ2wKICAgICAgICAgT3BhcXVl
SlNDbGFzc1N0YXRpY1ZhbHVlc1RhYmxlOjpjb25zdF9pdGVyYXRvciBlbmQgPSBqc0NsYXNzLT5t
X3N0YXRpY1ZhbHVlcy0+ZW5kKCk7CiAgICAgICAgIGZvciAoT3BhcXVlSlNDbGFzc1N0YXRpY1Zh
bHVlc1RhYmxlOjpjb25zdF9pdGVyYXRvciBpdCA9IGpzQ2xhc3MtPm1fc3RhdGljVmFsdWVzLT5i
ZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgICAgIEFTU0VSVCghaXQtPmtleS0+
aXNJZGVudGlmaWVyKCkpOwotICAgICAgICAgICAgc3RhdGljVmFsdWVzLT5hZGQoaXQtPmtleS0+
aXNvbGF0ZWRDb3B5KCksIGFkb3B0UHRyKG5ldyBTdGF0aWNWYWx1ZUVudHJ5KGl0LT52YWx1ZS0+
Z2V0UHJvcGVydHksIGl0LT52YWx1ZS0+c2V0UHJvcGVydHksIGl0LT52YWx1ZS0+YXR0cmlidXRl
cykpKTsKKyAgICAgICAgICAgIFN0cmluZyB2YWx1ZU5hbWUgPSBpdC0+a2V5LT5pc29sYXRlZENv
cHkoKTsKKyAgICAgICAgICAgIHN0YXRpY1ZhbHVlcy0+YWRkKHZhbHVlTmFtZS5pbXBsKCksIGFk
b3B0UHRyKG5ldyBTdGF0aWNWYWx1ZUVudHJ5KGl0LT52YWx1ZS0+Z2V0UHJvcGVydHksIGl0LT52
YWx1ZS0+c2V0UHJvcGVydHksIGl0LT52YWx1ZS0+YXR0cmlidXRlcywgdmFsdWVOYW1lKSkpOwog
ICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ2xhc3NSZWYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5oCmlu
ZGV4IDdiZjE4ZTcuLmQxY2RkZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDbGFzc1JlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1Jl
Zi5oCkBAIC0yNiwyNCArMjYsMjUgQEAKICNpZm5kZWYgSlNDbGFzc1JlZl9oCiAjZGVmaW5lIEpT
Q2xhc3NSZWZfaAogCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmplY3RSZWYuaD4KLQot
I2luY2x1ZGUgIldlYWsuaCIKKyNpbmNsdWRlICJPcGFxdWVKU1N0cmluZy5oIgogI2luY2x1ZGUg
IlByb3RlY3QuaCIKKyNpbmNsdWRlICJXZWFrLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNPYmplY3RSZWYuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiBzdHJ1Y3QgU3RhdGljVmFsdWVFbnRyeSB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgU3RhdGljVmFsdWVFbnRyeShKU09iamVj
dEdldFByb3BlcnR5Q2FsbGJhY2sgX2dldFByb3BlcnR5LCBKU09iamVjdFNldFByb3BlcnR5Q2Fs
bGJhY2sgX3NldFByb3BlcnR5LCBKU1Byb3BlcnR5QXR0cmlidXRlcyBfYXR0cmlidXRlcykKLSAg
ICAgICAgOiBnZXRQcm9wZXJ0eShfZ2V0UHJvcGVydHkpLCBzZXRQcm9wZXJ0eShfc2V0UHJvcGVy
dHkpLCBhdHRyaWJ1dGVzKF9hdHRyaWJ1dGVzKQorICAgIFN0YXRpY1ZhbHVlRW50cnkoSlNPYmpl
Y3RHZXRQcm9wZXJ0eUNhbGxiYWNrIF9nZXRQcm9wZXJ0eSwgSlNPYmplY3RTZXRQcm9wZXJ0eUNh
bGxiYWNrIF9zZXRQcm9wZXJ0eSwgSlNQcm9wZXJ0eUF0dHJpYnV0ZXMgX2F0dHJpYnV0ZXMsIFN0
cmluZyYgcHJvcGVydHlOYW1lKQorICAgIDogZ2V0UHJvcGVydHkoX2dldFByb3BlcnR5KSwgc2V0
UHJvcGVydHkoX3NldFByb3BlcnR5KSwgYXR0cmlidXRlcyhfYXR0cmlidXRlcyksIHByb3BlcnR5
TmFtZVJlZihPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKHByb3BlcnR5TmFtZSkpCiAgICAgewogICAg
IH0KICAgICAKICAgICBKU09iamVjdEdldFByb3BlcnR5Q2FsbGJhY2sgZ2V0UHJvcGVydHk7CiAg
ICAgSlNPYmplY3RTZXRQcm9wZXJ0eUNhbGxiYWNrIHNldFByb3BlcnR5OwogICAgIEpTUHJvcGVy
dHlBdHRyaWJ1dGVzIGF0dHJpYnV0ZXM7CisgICAgUmVmUHRyPE9wYXF1ZUpTU3RyaW5nPiBwcm9w
ZXJ0eU5hbWVSZWY7CiB9OwogCiBzdHJ1Y3QgU3RhdGljRnVuY3Rpb25FbnRyeSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwppbmRleCBiNmFmYTY2Li44MzhlMjU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMy0wNy0zMSAgWWkgU2hlbiAgPG1heC5ob25nLnNo
ZW5AZ21haWwuY29tPgorCisgICAgICAgIFJlZHVjZSBKU0MgQVBJIHN0YXRpYyB2YWx1ZSBzZXR0
ZXIvZ2V0dGVyIG92ZXJoZWFkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTE5Mjc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHByb3BlcnR5IG5hbWUgdG8gdGhlIHN0YXRpYyB2YWx1ZSBlbnRyeSwg
c28gdGhhdCBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKCkgZG9lc24ndAorICAgICAgICBuZWVkIHRv
IGdldCBjYWxsZWQgZXZlcnkgdGltZSB3aGVuIHNldCBvciBnZXQgdGhlIHN0YXRpYyB2YWx1ZS4K
KworICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgIChK
U0M6Ojo6cHV0KToKKyAgICAgICAgKEpTQzo6OjpwdXRCeUluZGV4KToKKyAgICAgICAgKEpTQzo6
OjpnZXRTdGF0aWNWYWx1ZSk6CisgICAgICAgICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAg
ICAoT3BhcXVlSlNDbGFzc0NvbnRleHREYXRhOjpPcGFxdWVKU0NsYXNzQ29udGV4dERhdGEpOgor
ICAgICAgICAqIEFQSS9KU0NsYXNzUmVmLmg6CisgICAgICAgIChTdGF0aWNWYWx1ZUVudHJ5OjpT
dGF0aWNWYWx1ZUVudHJ5KToKKwogMjAxMy0wNy0zMCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5l
bmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIEdldEJ5VmFsIG9uIEFyZ3VtZW50cyBkb2VzIHRo
ZSB3cm9uZyBzaXplIGxvYWQgd2hlbiBjaGVja2luZyB0aGUgQXJndW1lbnRzIG9iamVjdCBsZW5n
dGgK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207878</attachid>
            <date>2013-07-31 14:48:35 -0700</date>
            <delta_ts>2013-07-31 16:31:56 -0700</delta_ts>
            <desc>add comments to eliminate confusion</desc>
            <filename>119277v2.patch</filename>
            <type>text/plain</type>
            <size>8584</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVu
Y3Rpb25zLmgKaW5kZXggYzQ2YjMyMy4uZWM5MGQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTI0NCw2ICsy
NDQsNyBAQCB2b2lkIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6cHV0KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcAogICAgIGlmIChTdHJpbmdJbXBsKiBuYW1l
ID0gcHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKSkgewogICAgICAgICBmb3IgKEpTQ2xhc3NSZWYg
anNDbGFzcyA9IHRoaXNPYmplY3QtPmNsYXNzUmVmKCk7IGpzQ2xhc3M7IGpzQ2xhc3MgPSBqc0Ns
YXNzLT5wYXJlbnRDbGFzcykgewogICAgICAgICAgICAgaWYgKEpTT2JqZWN0U2V0UHJvcGVydHlD
YWxsYmFjayBzZXRQcm9wZXJ0eSA9IGpzQ2xhc3MtPnNldFByb3BlcnR5KSB7CisgICAgICAgICAg
ICAgICAgLy8gY3JlYXRlIE9wYXF1ZUpTU3RyaW5nIGlmIHRoZXJlIGlzIGEgc2V0UHJvcGVydHkg
ZnVuY3Rpb24gZGVmaW5lZCBieSBjbGllbnQKICAgICAgICAgICAgICAgICBpZiAoIXByb3BlcnR5
TmFtZVJlZikKICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lUmVmID0gT3BhcXVlSlNT
dHJpbmc6OmNyZWF0ZShuYW1lKTsKICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlv
biA9IDA7CkBAIC0yNjMsMTMgKzI2NCwxMSBAQCB2b2lkIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50
Pjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcAogICAg
ICAgICAgICAgICAgICAgICBpZiAoZW50cnktPmF0dHJpYnV0ZXMgJiBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5KQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgICAgICAgICBpZiAoSlNPYmplY3RTZXRQcm9wZXJ0eUNhbGxiYWNrIHNldFByb3BlcnR5ID0g
ZW50cnktPnNldFByb3BlcnR5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb3Bl
cnR5TmFtZVJlZikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWVSZWYg
PSBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKG5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAg
SlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBy
ZXN1bHQ7CiAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQVBJQ2FsbGJhY2tTaGltIGNhbGxiYWNrU2hpbShleGVjKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXN1bHQgPSBzZXRQcm9wZXJ0eShjdHgsIHRoaXNSZWYsIHByb3BlcnR5
TmFtZVJlZi5nZXQoKSwgdmFsdWVSZWYsICZleGNlcHRpb24pOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IHNldFByb3BlcnR5KGN0eCwgdGhpc1JlZiwgZW50cnktPnByb3Bl
cnR5TmFtZVJlZi5nZXQoKSwgdmFsdWVSZWYsICZleGNlcHRpb24pOwogICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbikKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIHRvSlMoZXhlYywgZXhjZXB0
aW9uKSk7CkBAIC0zMDUsNiArMzA0LDcgQEAgdm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46
OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmUKIAogICAg
IGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0gdGhpc09iamVjdC0+Y2xhc3NSZWYoKTsganNDbGFz
czsganNDbGFzcyA9IGpzQ2xhc3MtPnBhcmVudENsYXNzKSB7CiAgICAgICAgIGlmIChKU09iamVj
dFNldFByb3BlcnR5Q2FsbGJhY2sgc2V0UHJvcGVydHkgPSBqc0NsYXNzLT5zZXRQcm9wZXJ0eSkg
eworICAgICAgICAgICAgLy8gY3JlYXRlIE9wYXF1ZUpTU3RyaW5nIGlmIHRoZXJlIGlzIGEgc2V0
UHJvcGVydHkgZnVuY3Rpb24gZGVmaW5lZCBieSBjbGllbnQKICAgICAgICAgICAgIGlmICghcHJv
cGVydHlOYW1lUmVmKQogICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZVJlZiA9IE9wYXF1ZUpT
U3RyaW5nOjpjcmVhdGUocHJvcGVydHlOYW1lLmltcGwoKSk7CiAgICAgICAgICAgICBKU1ZhbHVl
UmVmIGV4Y2VwdGlvbiA9IDA7CkBAIC0zMjQsMTMgKzMyNCwxMSBAQCB2b2lkIEpTQ2FsbGJhY2tP
YmplY3Q8UGFyZW50Pjo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
dW5zaWduZQogICAgICAgICAgICAgICAgIGlmIChlbnRyeS0+YXR0cmlidXRlcyAmIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgICAgICBpZiAoSlNPYmplY3RTZXRQcm9wZXJ0eUNhbGxiYWNrIHNldFByb3BlcnR5ID0g
ZW50cnktPnNldFByb3BlcnR5KSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghcHJvcGVydHlO
YW1lUmVmKQotICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lUmVmID0gT3BhcXVl
SlNTdHJpbmc6OmNyZWF0ZShwcm9wZXJ0eU5hbWUuaW1wbCgpKTsKICAgICAgICAgICAgICAgICAg
ICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOwogICAgICAgICAgICAgICAgICAgICBib29sIHJl
c3VsdDsKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgQVBJ
Q2FsbGJhY2tTaGltIGNhbGxiYWNrU2hpbShleGVjKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHJlc3VsdCA9IHNldFByb3BlcnR5KGN0eCwgdGhpc1JlZiwgcHJvcGVydHlOYW1lUmVmLmdldCgp
LCB2YWx1ZVJlZiwgJmV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQg
PSBzZXRQcm9wZXJ0eShjdHgsIHRoaXNSZWYsIGVudHJ5LT5wcm9wZXJ0eU5hbWVSZWYuZ2V0KCks
IHZhbHVlUmVmLCAmZXhjZXB0aW9uKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dF
cnJvcihleGVjLCB0b0pTKGV4ZWMsIGV4Y2VwdGlvbikpOwpAQCAtNTgwLDIwICs1NzgsMTcgQEAg
dGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KIEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+
OjpnZXRTdGF0aWNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUpCiB7CiAgICAgSlNPYmplY3RSZWYgdGhpc1JlZiA9IHRvUmVmKHRoaXMpOwotICAgIFJlZlB0
cjxPcGFxdWVKU1N0cmluZz4gcHJvcGVydHlOYW1lUmVmOwogICAgIAogICAgIGlmIChTdHJpbmdJ
bXBsKiBuYW1lID0gcHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKSkgewogICAgICAgICBmb3IgKEpT
Q2xhc3NSZWYganNDbGFzcyA9IGNsYXNzUmVmKCk7IGpzQ2xhc3M7IGpzQ2xhc3MgPSBqc0NsYXNz
LT5wYXJlbnRDbGFzcykgewogICAgICAgICAgICAgaWYgKE9wYXF1ZUpTQ2xhc3NTdGF0aWNWYWx1
ZXNUYWJsZSogc3RhdGljVmFsdWVzID0ganNDbGFzcy0+c3RhdGljVmFsdWVzKGV4ZWMpKSB7CiAg
ICAgICAgICAgICAgICAgaWYgKFN0YXRpY1ZhbHVlRW50cnkqIGVudHJ5ID0gc3RhdGljVmFsdWVz
LT5nZXQobmFtZSkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKEpTT2JqZWN0R2V0UHJvcGVy
dHlDYWxsYmFjayBnZXRQcm9wZXJ0eSA9IGVudHJ5LT5nZXRQcm9wZXJ0eSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eU5hbWVSZWYpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHJvcGVydHlOYW1lUmVmID0gT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShuYW1lKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKICAgICAg
ICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWYgdmFsdWU7CiAgICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJQ2FsbGJhY2tTaGltIGNhbGxi
YWNrU2hpbShleGVjKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFBy
b3BlcnR5KHRvUmVmKGV4ZWMpLCB0aGlzUmVmLCBwcm9wZXJ0eU5hbWVSZWYuZ2V0KCksICZleGNl
cHRpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0UHJvcGVydHko
dG9SZWYoZXhlYyksIHRoaXNSZWYsIGVudHJ5LT5wcm9wZXJ0eU5hbWVSZWYuZ2V0KCksICZleGNl
cHRpb24pOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGV4Y2VwdGlvbikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93RXJy
b3IoZXhlYywgdG9KUyhleGVjLCBleGNlcHRpb24pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ2xhc3NSZWYuY3BwCmluZGV4IGM3N2Y2M2MuLjc2ZDBjNWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcApAQCAtNjYsNyArNjYsNyBAQCBPcGFxdWVKU0NsYXNz
OjpPcGFxdWVKU0NsYXNzKGNvbnN0IEpTQ2xhc3NEZWZpbml0aW9uKiBkZWZpbml0aW9uLCBPcGFx
dWVKU0NsYXNzKgogICAgICAgICB3aGlsZSAoc3RhdGljVmFsdWUtPm5hbWUpIHsKICAgICAgICAg
ICAgIFN0cmluZyB2YWx1ZU5hbWUgPSBTdHJpbmc6OmZyb21VVEY4KHN0YXRpY1ZhbHVlLT5uYW1l
KTsKICAgICAgICAgICAgIGlmICghdmFsdWVOYW1lLmlzTnVsbCgpKQotICAgICAgICAgICAgICAg
IG1fc3RhdGljVmFsdWVzLT5zZXQodmFsdWVOYW1lLmltcGwoKSwgYWRvcHRQdHIobmV3IFN0YXRp
Y1ZhbHVlRW50cnkoc3RhdGljVmFsdWUtPmdldFByb3BlcnR5LCBzdGF0aWNWYWx1ZS0+c2V0UHJv
cGVydHksIHN0YXRpY1ZhbHVlLT5hdHRyaWJ1dGVzKSkpOworICAgICAgICAgICAgICAgIG1fc3Rh
dGljVmFsdWVzLT5zZXQodmFsdWVOYW1lLmltcGwoKSwgYWRvcHRQdHIobmV3IFN0YXRpY1ZhbHVl
RW50cnkoc3RhdGljVmFsdWUtPmdldFByb3BlcnR5LCBzdGF0aWNWYWx1ZS0+c2V0UHJvcGVydHks
IHN0YXRpY1ZhbHVlLT5hdHRyaWJ1dGVzLCB2YWx1ZU5hbWUpKSk7CiAgICAgICAgICAgICArK3N0
YXRpY1ZhbHVlOwogICAgICAgICB9CiAgICAgfQpAQCAtMTM1LDcgKzEzNSw4IEBAIE9wYXF1ZUpT
Q2xhc3NDb250ZXh0RGF0YTo6T3BhcXVlSlNDbGFzc0NvbnRleHREYXRhKEpTQzo6Vk0mLCBPcGFx
dWVKU0NsYXNzKiBqc0NsCiAgICAgICAgIE9wYXF1ZUpTQ2xhc3NTdGF0aWNWYWx1ZXNUYWJsZTo6
Y29uc3RfaXRlcmF0b3IgZW5kID0ganNDbGFzcy0+bV9zdGF0aWNWYWx1ZXMtPmVuZCgpOwogICAg
ICAgICBmb3IgKE9wYXF1ZUpTQ2xhc3NTdGF0aWNWYWx1ZXNUYWJsZTo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSBqc0NsYXNzLT5tX3N0YXRpY1ZhbHVlcy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7
CiAgICAgICAgICAgICBBU1NFUlQoIWl0LT5rZXktPmlzSWRlbnRpZmllcigpKTsKLSAgICAgICAg
ICAgIHN0YXRpY1ZhbHVlcy0+YWRkKGl0LT5rZXktPmlzb2xhdGVkQ29weSgpLCBhZG9wdFB0cihu
ZXcgU3RhdGljVmFsdWVFbnRyeShpdC0+dmFsdWUtPmdldFByb3BlcnR5LCBpdC0+dmFsdWUtPnNl
dFByb3BlcnR5LCBpdC0+dmFsdWUtPmF0dHJpYnV0ZXMpKSk7CisgICAgICAgICAgICBTdHJpbmcg
dmFsdWVOYW1lID0gaXQtPmtleS0+aXNvbGF0ZWRDb3B5KCk7CisgICAgICAgICAgICBzdGF0aWNW
YWx1ZXMtPmFkZCh2YWx1ZU5hbWUuaW1wbCgpLCBhZG9wdFB0cihuZXcgU3RhdGljVmFsdWVFbnRy
eShpdC0+dmFsdWUtPmdldFByb3BlcnR5LCBpdC0+dmFsdWUtPnNldFByb3BlcnR5LCBpdC0+dmFs
dWUtPmF0dHJpYnV0ZXMsIHZhbHVlTmFtZSkpKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuaAppbmRleCA3YmYxOGU3Li5kMWNkZGZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuaApAQCAtMjYsMjQgKzI2LDI1IEBACiAj
aWZuZGVmIEpTQ2xhc3NSZWZfaAogI2RlZmluZSBKU0NsYXNzUmVmX2gKIAotI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTT2JqZWN0UmVmLmg+Ci0KLSNpbmNsdWRlICJXZWFrLmgiCisjaW5jbHVk
ZSAiT3BhcXVlSlNTdHJpbmcuaCIKICNpbmNsdWRlICJQcm90ZWN0LmgiCisjaW5jbHVkZSAiV2Vh
ay5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTT2JqZWN0UmVmLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogc3RydWN0
IFN0YXRpY1ZhbHVlRW50cnkgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIFN0YXRpY1ZhbHVlRW50cnkoSlNPYmplY3RHZXRQcm9wZXJ0eUNhbGxiYWNrIF9nZXRQ
cm9wZXJ0eSwgSlNPYmplY3RTZXRQcm9wZXJ0eUNhbGxiYWNrIF9zZXRQcm9wZXJ0eSwgSlNQcm9w
ZXJ0eUF0dHJpYnV0ZXMgX2F0dHJpYnV0ZXMpCi0gICAgICAgIDogZ2V0UHJvcGVydHkoX2dldFBy
b3BlcnR5KSwgc2V0UHJvcGVydHkoX3NldFByb3BlcnR5KSwgYXR0cmlidXRlcyhfYXR0cmlidXRl
cykKKyAgICBTdGF0aWNWYWx1ZUVudHJ5KEpTT2JqZWN0R2V0UHJvcGVydHlDYWxsYmFjayBfZ2V0
UHJvcGVydHksIEpTT2JqZWN0U2V0UHJvcGVydHlDYWxsYmFjayBfc2V0UHJvcGVydHksIEpTUHJv
cGVydHlBdHRyaWJ1dGVzIF9hdHRyaWJ1dGVzLCBTdHJpbmcmIHByb3BlcnR5TmFtZSkKKyAgICA6
IGdldFByb3BlcnR5KF9nZXRQcm9wZXJ0eSksIHNldFByb3BlcnR5KF9zZXRQcm9wZXJ0eSksIGF0
dHJpYnV0ZXMoX2F0dHJpYnV0ZXMpLCBwcm9wZXJ0eU5hbWVSZWYoT3BhcXVlSlNTdHJpbmc6OmNy
ZWF0ZShwcm9wZXJ0eU5hbWUpKQogICAgIHsKICAgICB9CiAgICAgCiAgICAgSlNPYmplY3RHZXRQ
cm9wZXJ0eUNhbGxiYWNrIGdldFByb3BlcnR5OwogICAgIEpTT2JqZWN0U2V0UHJvcGVydHlDYWxs
YmFjayBzZXRQcm9wZXJ0eTsKICAgICBKU1Byb3BlcnR5QXR0cmlidXRlcyBhdHRyaWJ1dGVzOwor
ICAgIFJlZlB0cjxPcGFxdWVKU1N0cmluZz4gcHJvcGVydHlOYW1lUmVmOwogfTsKIAogc3RydWN0
IFN0YXRpY0Z1bmN0aW9uRW50cnkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggYjZhZmE2
Ni4uODM4ZTI1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIw
MTMtMDctMzEgIFlpIFNoZW4gIDxtYXguaG9uZy5zaGVuQGdtYWlsLmNvbT4KKworICAgICAgICBS
ZWR1Y2UgSlNDIEFQSSBzdGF0aWMgdmFsdWUgc2V0dGVyL2dldHRlciBvdmVyaGVhZC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTI3NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBwcm9wZXJ0eSBu
YW1lIHRvIHRoZSBzdGF0aWMgdmFsdWUgZW50cnksIHNvIHRoYXQgT3BhcXVlSlNTdHJpbmc6OmNy
ZWF0ZSgpIGRvZXNuJ3QKKyAgICAgICAgbmVlZCB0byBnZXQgY2FsbGVkIGV2ZXJ5IHRpbWUgd2hl
biBzZXQgb3IgZ2V0IHRoZSBzdGF0aWMgdmFsdWUuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFj
a09iamVjdEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlNDOjo6OnB1dCk6CisgICAgICAgIChKU0M6
Ojo6cHV0QnlJbmRleCk6CisgICAgICAgIChKU0M6Ojo6Z2V0U3RhdGljVmFsdWUpOgorICAgICAg
ICAqIEFQSS9KU0NsYXNzUmVmLmNwcDoKKyAgICAgICAgKE9wYXF1ZUpTQ2xhc3NDb250ZXh0RGF0
YTo6T3BhcXVlSlNDbGFzc0NvbnRleHREYXRhKToKKyAgICAgICAgKiBBUEkvSlNDbGFzc1JlZi5o
OgorICAgICAgICAoU3RhdGljVmFsdWVFbnRyeTo6U3RhdGljVmFsdWVFbnRyeSk6CisKIDIwMTMt
MDctMzAgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAg
ICBHZXRCeVZhbCBvbiBBcmd1bWVudHMgZG9lcyB0aGUgd3Jvbmcgc2l6ZSBsb2FkIHdoZW4gY2hl
Y2tpbmcgdGhlIEFyZ3VtZW50cyBvYmplY3QgbGVuZ3RoCg==
</data>
<flag name="review"
          id="229708"
          type_id="1"
          status="-"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="229712"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>