<?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>56715</bug_id>
          
          <creation_ts>2011-03-19 13:46:07 -0700</creation_ts>
          <short_desc>[Qt] Refactor handling of deferred loads</short_desc>
          <delta_ts>2011-03-19 15:15: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>Page Loading</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>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>kenneth</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>370162</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-03-19 13:46:07 -0700</bug_when>
    <thetext>QNetworkReplyHandler is delicious spaghetti.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370163</commentid>
    <comment_count>1</comment_count>
      <attachid>86271</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-03-19 13:46:42 -0700</bug_when>
    <thetext>Created attachment 86271
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370164</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-19 13:50:10 -0700</bug_when>
    <thetext>Attachment 86271 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/platform/network/qt/QNetworkReplyHandler.h:47:  The parameter name &quot;handle&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 4 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>370165</commentid>
    <comment_count>3</comment_count>
      <attachid>86271</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-03-19 13:55:53 -0700</bug_when>
    <thetext>Comment on attachment 86271
Proposed patch

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

Generally looks good. All tests are passing I suppose :-) ?

&gt; Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:182
&gt; +    , m_deferStart(true)

Shouldn&apos;t it be defers?

&gt; Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:184
&gt; +    , m_deferSendResponseIfNeeded(false)

So what is ifNeeded? the defer or the send? tricky how to name these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370166</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-03-19 13:59:11 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 86271 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=86271&amp;action=review
&gt; 
&gt; Generally looks good. All tests are passing I suppose :-) ?
&gt; 
&gt; &gt; Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:182
&gt; &gt; +    , m_deferStart(true)
&gt; 
&gt; Shouldn&apos;t it be defers?
&gt; 
&gt; &gt; Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:184
&gt; &gt; +    , m_deferSendResponseIfNeeded(false)
&gt; 
&gt; So what is ifNeeded? the defer or the send? tricky how to name these.

Btw, I dislike the names loadSynchro.. Also it is not really a kind/mode anymore and it is either sync or async.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370167</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-03-19 14:19:40 -0700</bug_when>
    <thetext>DataType { AsynchronousData, SynchronousData } ? just thinking here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370172</commentid>
    <comment_count>6</comment_count>
      <attachid>86272</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-03-19 14:58:03 -0700</bug_when>
    <thetext>Created attachment 86272
Proposed patch v2

Updated patch with improved names.
Also sprinkled some assertions over the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370173</commentid>
    <comment_count>7</comment_count>
      <attachid>86272</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-03-19 15:08:33 -0700</bug_when>
    <thetext>Comment on attachment 86272
Proposed patch v2

That looks good to me.

I you have the courage to continue cleaning, it would be nice to make redirection a bit easier to understand. :)
Maybe the constructor should be just calling init() so that the same init() could be called from the redirection called. This recycling of the current QNetworkReplyHandler is confusing :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370174</commentid>
    <comment_count>8</comment_count>
      <attachid>86272</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-03-19 15:15:27 -0700</bug_when>
    <thetext>Comment on attachment 86272
Proposed patch v2

Clearing flags on attachment: 86272

Committed r81560: &lt;http://trac.webkit.org/changeset/81560&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370175</commentid>
    <comment_count>9</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-03-19 15:15:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86271</attachid>
            <date>2011-03-19 13:46:42 -0700</date>
            <delta_ts>2011-03-19 14:58:03 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-56715.diff</filename>
            <type>text/plain</type>
            <size>9705</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzN2FkMDY1Li4yNmRiMzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzMg
QEAKIDIwMTEtMDMtMTkgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgogCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gUmVmYWN0b3Ig
aGFuZGxpbmcgb2YgZGVmZXJyZWQgbG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU2NzE1CisKKyAgICAgICAgU3BsaXQgUU5ldHdvcmtSZXBseUhh
bmRsZXIncyAibG9hZCBtb2RlIiBpbnRvIHR3byBwYXJhbWV0ZXJzCisgICAgICAgIGluc3RlYWQg
b2YgdHJ5aW5nIHRvIGZpdCB0aGUgZGVmZXJyYWwgbWVjaGFuaXNtIGludG8gaXQuCisKKyAgICAg
ICAgTG9hZCBtb2RlIGlzIG5vdyBMb2FkQXN5bmNocm9ub3VzbHkgKGRlZmF1bHQpIG9yIExvYWRT
eW5jaHJvbm91c2x5IChmb3Igc3luYyBYSFIuKQorCisgICAgICAgIFNvbWUgdmFyaWFibGVzIGFu
ZCBmdW5jdGlvbnMgd2VyZSByZW5hbWVkIHRvIG1ha2UgdGhlIGNvZGUgZWFzaWVyIHRvIHVuZGVy
c3RhbmQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5k
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpRTmV0d29y
a1JlcGx5SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlcjo6
c2V0RGVmZXJzTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxl
cjo6ZmluaXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzZW5k
UmVzcG9uc2VJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxl
cjo6Zm9yd2FyZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6
OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpyZXNldFN0
YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1TZXREZWZlcnNMb2FkaW5nKToKKwor
MjAxMS0wMy0xOSAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5vcmc+CisKICAgICAgICAg
UmV2aWV3ZWQgYnkgQmVuamFtaW4gUG91bGFpbi4KIAogICAgICAgICBbUXRdIFJlbW92ZSBzdXBw
b3J0IGZvciBRdCA0LjYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKaW5kZXggZGQ3MzY0My4uZDRkMjk2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29y
a1JlcGx5SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9x
dC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKQEAgLTE3MCw3ICsxNzAsNyBAQCBTdHJpbmcgUU5l
dHdvcmtSZXBseUhhbmRsZXI6Omh0dHBNZXRob2QoKSBjb25zdAogICAgIH0KIH0KIAotUU5ldHdv
cmtSZXBseUhhbmRsZXI6OlFOZXR3b3JrUmVwbHlIYW5kbGVyKFJlc291cmNlSGFuZGxlKiBoYW5k
bGUsIExvYWRNb2RlIGxvYWRNb2RlKQorUU5ldHdvcmtSZXBseUhhbmRsZXI6OlFOZXR3b3JrUmVw
bHlIYW5kbGVyKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIExvYWRNb2RlIGxvYWRNb2RlLCBib29s
IGRlZmVycmVkKQogICAgIDogUU9iamVjdCgwKQogICAgICwgbV9yZXBseSgwKQogICAgICwgbV9y
ZXNvdXJjZUhhbmRsZShoYW5kbGUpCkBAIC0xNzgsMTAgKzE3OCwxMSBAQCBRTmV0d29ya1JlcGx5
SGFuZGxlcjo6UU5ldHdvcmtSZXBseUhhbmRsZXIoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgTG9h
ZE1vZGUgbG9hZAogICAgICwgbV9yZXNwb25zZVNlbnQoZmFsc2UpCiAgICAgLCBtX3Jlc3BvbnNl
Q29udGFpbnNEYXRhKGZhbHNlKQogICAgICwgbV9sb2FkTW9kZShsb2FkTW9kZSkKLSAgICAsIG1f
c2hvdWxkU3RhcnQodHJ1ZSkKLSAgICAsIG1fc2hvdWxkRmluaXNoKGZhbHNlKQotICAgICwgbV9z
aG91bGRTZW5kUmVzcG9uc2UoZmFsc2UpCi0gICAgLCBtX3Nob3VsZEZvcndhcmREYXRhKGZhbHNl
KQorICAgICwgbV9kZWZlcnJlZChkZWZlcnJlZCkKKyAgICAsIG1fZGVmZXJTdGFydCh0cnVlKQor
ICAgICwgbV9kZWZlckZpbmlzaChmYWxzZSkKKyAgICAsIG1fZGVmZXJTZW5kUmVzcG9uc2VJZk5l
ZWRlZChmYWxzZSkKKyAgICAsIG1fZGVmZXJGb3J3YXJkRGF0YShmYWxzZSkKICAgICAsIG1fcmVk
aXJlY3Rpb25UcmllcyhnTWF4UmVjdXJzaW9uTGltaXQpCiB7CiAgICAgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0ICZyID0gbV9yZXNvdXJjZUhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCk7CkBAIC0yMDgsMzAg
KzIwOSwzMCBAQCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6UU5ldHdvcmtSZXBseUhhbmRsZXIoUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSwgTG9hZE1vZGUgbG9hZAogICAgIGlmIChtX2xvYWRNb2RlID09
IExvYWRTeW5jaHJvbm91c2x5KQogICAgICAgICBtX3JlcXVlc3Quc2V0QXR0cmlidXRlKGdTeW5j
aHJvbm91c05ldHdvcmtSZXF1ZXN0QXR0cmlidXRlLCB0cnVlKTsKIAotICAgIGlmIChtX2xvYWRN
b2RlID09IExvYWROb3JtYWwgfHwgbV9sb2FkTW9kZSA9PSBMb2FkU3luY2hyb25vdXNseSkKKyAg
ICBpZiAoIW1fZGVmZXJyZWQpCiAgICAgICAgIHN0YXJ0KCk7Ci0KLSAgICBpZiAobV9sb2FkTW9k
ZSA9PSBMb2FkU3luY2hyb25vdXNseSkKLSAgICAgICAgbV9sb2FkTW9kZSA9IExvYWROb3JtYWw7
CiB9CiAKLXZvaWQgUU5ldHdvcmtSZXBseUhhbmRsZXI6OnNldExvYWRNb2RlKExvYWRNb2RlIG1v
ZGUpCit2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVm
ZXJzKQogewotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
NjU1NgotICAgIC8vIFdlIGNhbm5vdCBjYWxsIHNlbmRRdWV1ZWRJdGVtcygpIGZyb20gaGVyZSwg
YmVjYXVzZSB0aGUgc2lnbmFsIHRoYXQgCi0gICAgLy8gY2F1c2VkIHVzIHRvIGdldCBpbnRvIGRl
ZmVycmVkIG1vZGUsIG1pZ2h0IG5vdCBiZSBwcm9jZXNzZWQgeWV0LgotICAgIHN3aXRjaCAobW9k
ZSkgewotICAgIGNhc2UgTG9hZE5vcm1hbDoKLSAgICAgICAgbV9sb2FkTW9kZSA9IExvYWRSZXN1
bWluZzsKLSAgICAgICAgZW1pdCBwcm9jZXNzUXVldWVkSXRlbXMoKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBMb2FkRGVmZXJyZWQ6Ci0gICAgICAgIG1fbG9hZE1vZGUgPSBMb2FkRGVmZXJy
ZWQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTG9hZFJlc3VtaW5nOgotICAgICAgICBRX0FT
U0VSVCgwKTsgLy8gc2hvdWxkIG5ldmVyIGhhcHBlbgotICAgICAgICBicmVhazsKLSAgICB9Owor
ICAgIG1fZGVmZXJyZWQgPSBkZWZlcnM7CisKKyAgICBpZiAoZGVmZXJzKQorICAgICAgICByZXR1
cm47CisKKyAgICAvLyBJZiBzb21ldGhpbmcgaGFzIGJlZW4gcXVldWVkIHVwIHdoaWxlIGxvYWRp
bmcgd2FzIGRlZmVycmVkLCBkbyBpdCBub3cuCisKKyAgICBpZiAobV9kZWZlclN0YXJ0KQorICAg
ICAgICBzdGFydCgpOworCisgICAgaWYgKG1fZGVmZXJTZW5kUmVzcG9uc2VJZk5lZWRlZCkKKyAg
ICAgICAgc2VuZFJlc3BvbnNlSWZOZWVkZWQoKTsKKworICAgIGlmIChtX2RlZmVyRm9yd2FyZERh
dGEpCisgICAgICAgIGZvcndhcmREYXRhKCk7CisKKyAgICBpZiAobV9kZWZlckZpbmlzaCkKKyAg
ICAgICAgZmluaXNoKCk7CiB9CiAKIHZvaWQgUU5ldHdvcmtSZXBseUhhbmRsZXI6OmFib3J0KCkK
QEAgLTI3NSw4ICsyNzYsOCBAQCBzdGF0aWMgYm9vbCBpZ25vcmVIdHRwRXJyb3IoUU5ldHdvcmtS
ZXBseSogcmVwbHksIGJvb2wgcmVjZWl2ZWREYXRhKQogCiB2b2lkIFFOZXR3b3JrUmVwbHlIYW5k
bGVyOjpmaW5pc2goKQogewotICAgIG1fc2hvdWxkRmluaXNoID0gKG1fbG9hZE1vZGUgIT0gTG9h
ZE5vcm1hbCk7Ci0gICAgaWYgKG1fc2hvdWxkRmluaXNoKQorICAgIG1fZGVmZXJGaW5pc2ggPSBt
X2RlZmVycmVkOworICAgIGlmIChtX2RlZmVycmVkKQogICAgICAgICByZXR1cm47CiAKICAgICBp
ZiAoIW1fcmVwbHkpCkBAIC0zMjQsOCArMzI1LDggQEAgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxl
cjo6ZmluaXNoKCkKIAogdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6c2VuZFJlc3BvbnNlSWZO
ZWVkZWQoKQogewotICAgIG1fc2hvdWxkU2VuZFJlc3BvbnNlID0gKG1fbG9hZE1vZGUgIT0gTG9h
ZE5vcm1hbCk7Ci0gICAgaWYgKG1fc2hvdWxkU2VuZFJlc3BvbnNlKQorICAgIG1fZGVmZXJTZW5k
UmVzcG9uc2VJZk5lZWRlZCA9IG1fZGVmZXJyZWQ7CisgICAgaWYgKG1fZGVmZXJyZWQpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmICghbV9yZXBseSkKQEAgLTQyNyw4ICs0MjgsOCBAQCB2b2lk
IFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzZW5kUmVzcG9uc2VJZk5lZWRlZCgpCiAKIHZvaWQgUU5l
dHdvcmtSZXBseUhhbmRsZXI6OmZvcndhcmREYXRhKCkKIHsKLSAgICBtX3Nob3VsZEZvcndhcmRE
YXRhID0gKG1fbG9hZE1vZGUgIT0gTG9hZE5vcm1hbCk7Ci0gICAgaWYgKG1fc2hvdWxkRm9yd2Fy
ZERhdGEpCisgICAgbV9kZWZlckZvcndhcmREYXRhID0gbV9kZWZlcnJlZDsKKyAgICBpZiAobV9k
ZWZlcnJlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fcmVwbHktPmJ5dGVzQXZhaWxh
YmxlKCkpCkBAIC00NjcsNyArNDY4LDcgQEAgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6dXBs
b2FkUHJvZ3Jlc3MocWludDY0IGJ5dGVzU2VudCwgcWludDY0IGJ5dGVzVG90YWwpCiAKIHZvaWQg
UU5ldHdvcmtSZXBseUhhbmRsZXI6OnN0YXJ0KCkKIHsKLSAgICBtX3Nob3VsZFN0YXJ0ID0gZmFs
c2U7CisgICAgbV9kZWZlclN0YXJ0ID0gZmFsc2U7CiAKICAgICBSZXNvdXJjZUhhbmRsZUludGVy
bmFsKiBkID0gbV9yZXNvdXJjZUhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKIApAQCAtNTUwLDkgKzU1
MSw2IEBAIHZvaWQgUU5ldHdvcmtSZXBseUhhbmRsZXI6OnN0YXJ0KCkKIAogICAgIGlmIChtX3Jl
c291cmNlSGFuZGxlLT5maXJzdFJlcXVlc3QoKS5yZXBvcnRVcGxvYWRQcm9ncmVzcygpKQogICAg
ICAgICBjb25uZWN0KG1fcmVwbHksIFNJR05BTCh1cGxvYWRQcm9ncmVzcyhxaW50NjQsIHFpbnQ2
NCkpLCB0aGlzLCBTTE9UKHVwbG9hZFByb2dyZXNzKHFpbnQ2NCwgcWludDY0KSkpOwotCi0gICAg
Ly8gTWFrZSB0aGlzIGEgZGlyZWN0IGZ1bmN0aW9uIGNhbGwgb25jZSB3ZSByZXF1aXJlIDQuNi4x
Ky4KLSAgICBjb25uZWN0KHRoaXMsIFNJR05BTChwcm9jZXNzUXVldWVkSXRlbXMoKSksIHRoaXMs
IFNMT1Qoc2VuZFF1ZXVlZEl0ZW1zKCkpKTsKIH0KIAogdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxl
cjo6cmVzZXRTdGF0ZSgpCkBAIC01NjAsMjkgKzU1OCwxMCBAQCB2b2lkIFFOZXR3b3JrUmVwbHlI
YW5kbGVyOjpyZXNldFN0YXRlKCkKICAgICBtX3JlZGlyZWN0ZWQgPSBmYWxzZTsKICAgICBtX3Jl
c3BvbnNlU2VudCA9IGZhbHNlOwogICAgIG1fcmVzcG9uc2VDb250YWluc0RhdGEgPSBmYWxzZTsK
LSAgICBtX3Nob3VsZFN0YXJ0ID0gdHJ1ZTsKLSAgICBtX3Nob3VsZEZpbmlzaCA9IGZhbHNlOwot
ICAgIG1fc2hvdWxkU2VuZFJlc3BvbnNlID0gZmFsc2U7Ci0gICAgbV9zaG91bGRGb3J3YXJkRGF0
YSA9IGZhbHNlOwotfQotCi12b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzZW5kUXVldWVkSXRl
bXMoKQotewotICAgIGlmIChtX2xvYWRNb2RlICE9IExvYWRSZXN1bWluZykKLSAgICAgICAgcmV0
dXJuOwotICAgIG1fbG9hZE1vZGUgPSBMb2FkTm9ybWFsOwotCi0gICAgaWYgKG1fc2hvdWxkU3Rh
cnQpCi0gICAgICAgIHN0YXJ0KCk7Ci0KLSAgICBpZiAobV9zaG91bGRTZW5kUmVzcG9uc2UpCi0g
ICAgICAgIHNlbmRSZXNwb25zZUlmTmVlZGVkKCk7Ci0KLSAgICBpZiAobV9zaG91bGRGb3J3YXJk
RGF0YSkKLSAgICAgICAgZm9yd2FyZERhdGEoKTsKLQotICAgIGlmIChtX3Nob3VsZEZpbmlzaCkK
LSAgICAgICAgZmluaXNoKCk7IAorICAgIG1fZGVmZXJTdGFydCA9IHRydWU7CisgICAgbV9kZWZl
ckZpbmlzaCA9IGZhbHNlOworICAgIG1fZGVmZXJTZW5kUmVzcG9uc2VJZk5lZWRlZCA9IGZhbHNl
OworICAgIG1fZGVmZXJGb3J3YXJkRGF0YSA9IGZhbHNlOwogfQogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVy
LmgKaW5kZXggOGM5YmQwOC4uODBmYjFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuaApAQCAtNDAsMTQg
KzQwLDEyIEBAIGNsYXNzIFFOZXR3b3JrUmVwbHlIYW5kbGVyIDogcHVibGljIFFPYmplY3QKICAg
ICBRX09CSkVDVAogcHVibGljOgogICAgIGVudW0gTG9hZE1vZGUgewotICAgICAgICBMb2FkTm9y
bWFsLAotICAgICAgICBMb2FkRGVmZXJyZWQsCi0gICAgICAgIExvYWRSZXN1bWluZywKKyAgICAg
ICAgTG9hZEFzeW5jaHJvbm91c2x5LAogICAgICAgICBMb2FkU3luY2hyb25vdXNseQogICAgIH07
CiAKLSAgICBRTmV0d29ya1JlcGx5SGFuZGxlcihSZXNvdXJjZUhhbmRsZSAqaGFuZGxlLCBMb2Fk
TW9kZSk7Ci0gICAgdm9pZCBzZXRMb2FkTW9kZShMb2FkTW9kZSk7CisgICAgUU5ldHdvcmtSZXBs
eUhhbmRsZXIoUmVzb3VyY2VIYW5kbGUgKmhhbmRsZSwgTG9hZE1vZGUsIGJvb2wgZGVmZXJyZWQp
OworICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKTsKIAogICAgIFFOZXR3b3JrUmVwbHkq
IHJlcGx5KCkgY29uc3QgeyByZXR1cm4gbV9yZXBseTsgfQogCkBAIC01NSwxNCArNTMsMTAgQEAg
cHVibGljOgogCiAgICAgUU5ldHdvcmtSZXBseSogcmVsZWFzZSgpOwogCi1zaWduYWxzOgotICAg
IHZvaWQgcHJvY2Vzc1F1ZXVlZEl0ZW1zKCk7Ci0KIHB1YmxpYyBzbG90czoKICAgICB2b2lkIGZp
bmlzaCgpOwogICAgIHZvaWQgc2VuZFJlc3BvbnNlSWZOZWVkZWQoKTsKICAgICB2b2lkIGZvcndh
cmREYXRhKCk7Ci0gICAgdm9pZCBzZW5kUXVldWVkSXRlbXMoKTsKICAgICB2b2lkIHVwbG9hZFBy
b2dyZXNzKHFpbnQ2NCBieXRlc1NlbnQsIHFpbnQ2NCBieXRlc1RvdGFsKTsKIAogcHJpdmF0ZToK
QEAgLTc5LDExICs3MywxMyBAQCBwcml2YXRlOgogICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlcjo6
T3BlcmF0aW9uIG1fbWV0aG9kOwogICAgIFFOZXR3b3JrUmVxdWVzdCBtX3JlcXVlc3Q7CiAKKyAg
ICBib29sIG1fZGVmZXJyZWQ7CisKICAgICAvLyBkZWZlciBzdGF0ZSBob2xkaW5nCi0gICAgYm9v
bCBtX3Nob3VsZFN0YXJ0OwotICAgIGJvb2wgbV9zaG91bGRGaW5pc2g7Ci0gICAgYm9vbCBtX3No
b3VsZFNlbmRSZXNwb25zZTsKLSAgICBib29sIG1fc2hvdWxkRm9yd2FyZERhdGE7CisgICAgYm9v
bCBtX2RlZmVyU3RhcnQ7CisgICAgYm9vbCBtX2RlZmVyRmluaXNoOworICAgIGJvb2wgbV9kZWZl
clNlbmRSZXNwb25zZUlmTmVlZGVkOworICAgIGJvb2wgbV9kZWZlckZvcndhcmREYXRhOwogICAg
IGludCBtX3JlZGlyZWN0aW9uVHJpZXM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcAppbmRleCBjZDE3NjYw
Li5jYjAyZmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0
L1Jlc291cmNlSGFuZGxlUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCBib29sIFJlc291
cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIAogICAgIGdldElu
dGVybmFsKCktPm1fY29udGV4dCA9IGNvbnRleHQ7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5h
bCAqZCA9IGdldEludGVybmFsKCk7Ci0gICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhh
bmRsZXIodGhpcywgUU5ldHdvcmtSZXBseUhhbmRsZXI6OkxvYWRNb2RlKGQtPm1fZGVmZXJzTG9h
ZGluZykpOworICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5kbGVyKHRoaXMsIFFO
ZXR3b3JrUmVwbHlIYW5kbGVyOjpMb2FkQXN5bmNocm9ub3VzbHksIGQtPm1fZGVmZXJzTG9hZGlu
Zyk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTIwNyw3ICsyMDcsNyBAQCB2b2lkIFJlc291
cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXh0LCBjb25zdAogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0aENy
ZWRlbnRpYWxzKTsKICAgICB9CiAgICAgZC0+bV9jb250ZXh0ID0gY29udGV4dDsKLSAgICBkLT5t
X2pvYiA9IG5ldyBRTmV0d29ya1JlcGx5SGFuZGxlcihoYW5kbGUuZ2V0KCksIFFOZXR3b3JrUmVw
bHlIYW5kbGVyOjpMb2FkU3luY2hyb25vdXNseSk7CisgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdv
cmtSZXBseUhhbmRsZXIoaGFuZGxlLmdldCgpLCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6TG9hZFN5
bmNocm9ub3VzbHksIC8qZGVmZXJyZWQgPSovZmFsc2UpOwogCiAgICAgUU5ldHdvcmtSZXBseSog
cmVwbHkgPSBkLT5tX2pvYi0+cmVwbHkoKTsKICAgICAvLyBXaGVuIHVzaW5nIHN5bmNocm9ub3Vz
IGNhbGxzLCB3ZSBhcmUgZmluaXNoZWQgd2hlbiByZWFjaGluZyB0aGlzIHBvaW50LgpAQCAtMjI1
LDggKzIyNSw5IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0CiAKIHZvaWQgUmVzb3VyY2VIYW5k
bGU6OnBsYXRmb3JtU2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKIHsKLSAgICBpZiAoZC0+
bV9qb2IpCi0gICAgICAgIGQtPm1fam9iLT5zZXRMb2FkTW9kZShRTmV0d29ya1JlcGx5SGFuZGxl
cjo6TG9hZE1vZGUoZGVmZXJzKSk7CisgICAgaWYgKCFkLT5tX2pvYikKKyAgICAgICAgcmV0dXJu
OworICAgIGQtPm1fam9iLT5zZXREZWZlcnNMb2FkaW5nKGRlZmVycyk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="78507"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86272</attachid>
            <date>2011-03-19 14:58:03 -0700</date>
            <delta_ts>2011-03-19 15:15:27 -0700</delta_ts>
            <desc>Proposed patch v2</desc>
            <filename>bug-56715-v2.diff</filename>
            <type>text/plain</type>
            <size>10861</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzN2FkMDY1Li45M2E0MTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzIg
QEAKIDIwMTEtMDMtMTkgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgogCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gUmVmYWN0b3Ig
aGFuZGxpbmcgb2YgZGVmZXJyZWQgbG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU2NzE1CisKKyAgICAgICAgU3BsaXQgUU5ldHdvcmtSZXBseUhh
bmRsZXIncyAibG9hZCBtb2RlIiBpbnRvIHR3byBwYXJhbWV0ZXJzCisgICAgICAgIGluc3RlYWQg
b2YgdHJ5aW5nIHRvIGZpdCB0aGUgZGVmZXJyYWwgbWVjaGFuaXNtIGludG8gaXQuCisKKyAgICAg
ICAgTG9hZHMgYXJlIG5vdyBBc3luY2hyb25vdXNMb2FkIChkZWZhdWx0KSBvciBTeW5jaHJvbm91
c0xvYWQgKGZvciBzeW5jIFhIUi4pCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1FO
ZXR3b3JrUmVwbHlIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlI
YW5kbGVyOjpRTmV0d29ya1JlcGx5SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29y
a1JlcGx5SGFuZGxlcjo6c2V0TG9hZGluZ0RlZmVycmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlFO
ZXR3b3JrUmVwbHlIYW5kbGVyOjpyZXN1bWVEZWZlcnJlZExvYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6OmZpbmlzaCk6CisgICAgICAgIChXZWJDb3JlOjpRTmV0
d29ya1JlcGx5SGFuZGxlcjo6c2VuZFJlc3BvbnNlSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6OmZvcndhcmREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29y
a1JlcGx5SGFuZGxlcjo6cmVzZXRTdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9x
dC9RTmV0d29ya1JlcGx5SGFuZGxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQv
UmVzb3VyY2VIYW5kbGVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6
c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnBsYXRmb3Jt
U2V0RGVmZXJzTG9hZGluZyk6CisKKzIwMTEtMDMtMTkgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3
ZWJraXQub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEJlbmphbWluIFBvdWxhaW4uCiAKICAg
ICAgICAgW1F0XSBSZW1vdmUgc3VwcG9ydCBmb3IgUXQgNC42CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3Bw
CmluZGV4IGRkNzM2NDMuLmY3ZjRmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCkBAIC0xNzAs
MTggKzE3MCwxOSBAQCBTdHJpbmcgUU5ldHdvcmtSZXBseUhhbmRsZXI6Omh0dHBNZXRob2QoKSBj
b25zdAogICAgIH0KIH0KIAotUU5ldHdvcmtSZXBseUhhbmRsZXI6OlFOZXR3b3JrUmVwbHlIYW5k
bGVyKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIExvYWRNb2RlIGxvYWRNb2RlKQorUU5ldHdvcmtS
ZXBseUhhbmRsZXI6OlFOZXR3b3JrUmVwbHlIYW5kbGVyKFJlc291cmNlSGFuZGxlKiBoYW5kbGUs
IExvYWRUeXBlIGxvYWRUeXBlLCBib29sIGRlZmVycmVkKQogICAgIDogUU9iamVjdCgwKQogICAg
ICwgbV9yZXBseSgwKQogICAgICwgbV9yZXNvdXJjZUhhbmRsZShoYW5kbGUpCiAgICAgLCBtX3Jl
ZGlyZWN0ZWQoZmFsc2UpCiAgICAgLCBtX3Jlc3BvbnNlU2VudChmYWxzZSkKICAgICAsIG1fcmVz
cG9uc2VDb250YWluc0RhdGEoZmFsc2UpCi0gICAgLCBtX2xvYWRNb2RlKGxvYWRNb2RlKQotICAg
ICwgbV9zaG91bGRTdGFydCh0cnVlKQotICAgICwgbV9zaG91bGRGaW5pc2goZmFsc2UpCi0gICAg
LCBtX3Nob3VsZFNlbmRSZXNwb25zZShmYWxzZSkKLSAgICAsIG1fc2hvdWxkRm9yd2FyZERhdGEo
ZmFsc2UpCisgICAgLCBtX2xvYWRUeXBlKGxvYWRUeXBlKQorICAgICwgbV9kZWZlcnJlZChkZWZl
cnJlZCkKKyAgICAsIG1faGFzU3RhcnRlZChmYWxzZSkKKyAgICAsIG1fY2FsbEZpbmlzaE9uUmVz
dW1lKGZhbHNlKQorICAgICwgbV9jYWxsU2VuZFJlc3BvbnNlSWZOZWVkZWRPblJlc3VtZShmYWxz
ZSkKKyAgICAsIG1fY2FsbEZvcndhcmREYXRhT25SZXN1bWUoZmFsc2UpCiAgICAgLCBtX3JlZGly
ZWN0aW9uVHJpZXMoZ01heFJlY3Vyc2lvbkxpbWl0KQogewogICAgIGNvbnN0IFJlc291cmNlUmVx
dWVzdCAmciA9IG1fcmVzb3VyY2VIYW5kbGUtPmZpcnN0UmVxdWVzdCgpOwpAQCAtMjA1LDMzICsy
MDYsMzYgQEAgUU5ldHdvcmtSZXBseUhhbmRsZXI6OlFOZXR3b3JrUmVwbHlIYW5kbGVyKFJlc291
cmNlSGFuZGxlKiBoYW5kbGUsIExvYWRNb2RlIGxvYWQKIAogICAgIG1fcmVxdWVzdCA9IHIudG9O
ZXR3b3JrUmVxdWVzdChvcmlnaW5hdGluZ09iamVjdCk7CiAKLSAgICBpZiAobV9sb2FkTW9kZSA9
PSBMb2FkU3luY2hyb25vdXNseSkKLSAgICAgICAgbV9yZXF1ZXN0LnNldEF0dHJpYnV0ZShnU3lu
Y2hyb25vdXNOZXR3b3JrUmVxdWVzdEF0dHJpYnV0ZSwgdHJ1ZSk7Ci0KLSAgICBpZiAobV9sb2Fk
TW9kZSA9PSBMb2FkTm9ybWFsIHx8IG1fbG9hZE1vZGUgPT0gTG9hZFN5bmNocm9ub3VzbHkpCisg
ICAgaWYgKCFtX2RlZmVycmVkKQogICAgICAgICBzdGFydCgpOworfQorCit2b2lkIFFOZXR3b3Jr
UmVwbHlIYW5kbGVyOjpzZXRMb2FkaW5nRGVmZXJyZWQoYm9vbCBkZWZlcnJlZCkKK3sKKyAgICBt
X2RlZmVycmVkID0gZGVmZXJyZWQ7CiAKLSAgICBpZiAobV9sb2FkTW9kZSA9PSBMb2FkU3luY2hy
b25vdXNseSkKLSAgICAgICAgbV9sb2FkTW9kZSA9IExvYWROb3JtYWw7CisgICAgaWYgKCFkZWZl
cnJlZCkKKyAgICAgICAgcmVzdW1lRGVmZXJyZWRMb2FkKCk7CiB9CiAKLXZvaWQgUU5ldHdvcmtS
ZXBseUhhbmRsZXI6OnNldExvYWRNb2RlKExvYWRNb2RlIG1vZGUpCit2b2lkIFFOZXR3b3JrUmVw
bHlIYW5kbGVyOjpyZXN1bWVEZWZlcnJlZExvYWQoKQogewotICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjU1NgotICAgIC8vIFdlIGNhbm5vdCBjYWxsIHNl
bmRRdWV1ZWRJdGVtcygpIGZyb20gaGVyZSwgYmVjYXVzZSB0aGUgc2lnbmFsIHRoYXQgCi0gICAg
Ly8gY2F1c2VkIHVzIHRvIGdldCBpbnRvIGRlZmVycmVkIG1vZGUsIG1pZ2h0IG5vdCBiZSBwcm9j
ZXNzZWQgeWV0LgotICAgIHN3aXRjaCAobW9kZSkgewotICAgIGNhc2UgTG9hZE5vcm1hbDoKLSAg
ICAgICAgbV9sb2FkTW9kZSA9IExvYWRSZXN1bWluZzsKLSAgICAgICAgZW1pdCBwcm9jZXNzUXVl
dWVkSXRlbXMoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBMb2FkRGVmZXJyZWQ6Ci0gICAg
ICAgIG1fbG9hZE1vZGUgPSBMb2FkRGVmZXJyZWQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
TG9hZFJlc3VtaW5nOgotICAgICAgICBRX0FTU0VSVCgwKTsgLy8gc2hvdWxkIG5ldmVyIGhhcHBl
bgotICAgICAgICBicmVhazsKLSAgICB9OworICAgIGlmICghbV9oYXNTdGFydGVkKSB7CisgICAg
ICAgIEFTU0VSVCghbV9jYWxsU2VuZFJlc3BvbnNlSWZOZWVkZWRPblJlc3VtZSk7CisgICAgICAg
IEFTU0VSVCghbV9jYWxsRm9yd2FyZERhdGFPblJlc3VtZSk7CisgICAgICAgIEFTU0VSVCghbV9j
YWxsRmluaXNoT25SZXN1bWUpOworICAgICAgICBzdGFydCgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKG1fY2FsbFNlbmRSZXNwb25zZUlmTmVlZGVkT25SZXN1bWUpCisgICAg
ICAgIHNlbmRSZXNwb25zZUlmTmVlZGVkKCk7CisKKyAgICBpZiAobV9jYWxsRm9yd2FyZERhdGFP
blJlc3VtZSkKKyAgICAgICAgZm9yd2FyZERhdGEoKTsKKworICAgIGlmIChtX2NhbGxGaW5pc2hP
blJlc3VtZSkKKyAgICAgICAgZmluaXNoKCk7CiB9CiAKIHZvaWQgUU5ldHdvcmtSZXBseUhhbmRs
ZXI6OmFib3J0KCkKQEAgLTI3NSw4ICsyNzksMTAgQEAgc3RhdGljIGJvb2wgaWdub3JlSHR0cEVy
cm9yKFFOZXR3b3JrUmVwbHkqIHJlcGx5LCBib29sIHJlY2VpdmVkRGF0YSkKIAogdm9pZCBRTmV0
d29ya1JlcGx5SGFuZGxlcjo6ZmluaXNoKCkKIHsKLSAgICBtX3Nob3VsZEZpbmlzaCA9IChtX2xv
YWRNb2RlICE9IExvYWROb3JtYWwpOwotICAgIGlmIChtX3Nob3VsZEZpbmlzaCkKKyAgICBBU1NF
UlQobV9oYXNTdGFydGVkKTsKKworICAgIG1fY2FsbEZpbmlzaE9uUmVzdW1lID0gbV9kZWZlcnJl
ZDsKKyAgICBpZiAobV9kZWZlcnJlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFtX3Jl
cGx5KQpAQCAtMzI0LDggKzMzMCwxMCBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpmaW5p
c2goKQogCiB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzZW5kUmVzcG9uc2VJZk5lZWRlZCgp
CiB7Ci0gICAgbV9zaG91bGRTZW5kUmVzcG9uc2UgPSAobV9sb2FkTW9kZSAhPSBMb2FkTm9ybWFs
KTsKLSAgICBpZiAobV9zaG91bGRTZW5kUmVzcG9uc2UpCisgICAgQVNTRVJUKG1faGFzU3RhcnRl
ZCk7CisKKyAgICBtX2NhbGxTZW5kUmVzcG9uc2VJZk5lZWRlZE9uUmVzdW1lID0gbV9kZWZlcnJl
ZDsKKyAgICBpZiAobV9kZWZlcnJlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFtX3Jl
cGx5KQpAQCAtNDI3LDggKzQzNSwxMCBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzZW5k
UmVzcG9uc2VJZk5lZWRlZCgpCiAKIHZvaWQgUU5ldHdvcmtSZXBseUhhbmRsZXI6OmZvcndhcmRE
YXRhKCkKIHsKLSAgICBtX3Nob3VsZEZvcndhcmREYXRhID0gKG1fbG9hZE1vZGUgIT0gTG9hZE5v
cm1hbCk7Ci0gICAgaWYgKG1fc2hvdWxkRm9yd2FyZERhdGEpCisgICAgQVNTRVJUKG1faGFzU3Rh
cnRlZCk7CisKKyAgICBtX2NhbGxGb3J3YXJkRGF0YU9uUmVzdW1lID0gbV9kZWZlcnJlZDsKKyAg
ICBpZiAobV9kZWZlcnJlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fcmVwbHktPmJ5
dGVzQXZhaWxhYmxlKCkpCkBAIC00NjcsNyArNDc3LDExIEBAIHZvaWQgUU5ldHdvcmtSZXBseUhh
bmRsZXI6OnVwbG9hZFByb2dyZXNzKHFpbnQ2NCBieXRlc1NlbnQsIHFpbnQ2NCBieXRlc1RvdGFs
KQogCiB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzdGFydCgpCiB7Ci0gICAgbV9zaG91bGRT
dGFydCA9IGZhbHNlOworICAgIEFTU0VSVCghbV9oYXNTdGFydGVkKTsKKyAgICBtX2hhc1N0YXJ0
ZWQgPSB0cnVlOworCisgICAgaWYgKG1fbG9hZFR5cGUgPT0gU3luY2hyb25vdXNMb2FkKQorICAg
ICAgICBtX3JlcXVlc3Quc2V0QXR0cmlidXRlKGdTeW5jaHJvbm91c05ldHdvcmtSZXF1ZXN0QXR0
cmlidXRlLCB0cnVlKTsKIAogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBtX3Jlc291
cmNlSGFuZGxlLT5nZXRJbnRlcm5hbCgpOwogCkBAIC01MzQsNyArNTQ4LDcgQEAgdm9pZCBRTmV0
d29ya1JlcGx5SGFuZGxlcjo6c3RhcnQoKQogCiAgICAgbV9yZXBseS0+c2V0UGFyZW50KHRoaXMp
OwogCi0gICAgaWYgKG1fbG9hZE1vZGUgPT0gTG9hZFN5bmNocm9ub3VzbHkgJiYgbV9yZXBseS0+
aXNGaW5pc2hlZCgpKSB7CisgICAgaWYgKG1fbG9hZFR5cGUgPT0gU3luY2hyb25vdXNMb2FkICYm
IG1fcmVwbHktPmlzRmluaXNoZWQoKSkgewogICAgICAgICAvLyBJZiBzdXBwb3J0ZWQsIGEgc3lu
Y2hyb25vdXMgcmVxdWVzdCB3aWxsIGJlIGZpbmlzaGVkIGF0IHRoaXMgcG9pbnQsIG5vIG5lZWQg
dG8gaG9vayB1cCB0aGUgc2lnbmFscy4KICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTU1MCw5
ICs1NjQsNiBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzdGFydCgpCiAKICAgICBpZiAo
bV9yZXNvdXJjZUhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkucmVwb3J0VXBsb2FkUHJvZ3Jlc3MoKSkK
ICAgICAgICAgY29ubmVjdChtX3JlcGx5LCBTSUdOQUwodXBsb2FkUHJvZ3Jlc3MocWludDY0LCBx
aW50NjQpKSwgdGhpcywgU0xPVCh1cGxvYWRQcm9ncmVzcyhxaW50NjQsIHFpbnQ2NCkpKTsKLQot
ICAgIC8vIE1ha2UgdGhpcyBhIGRpcmVjdCBmdW5jdGlvbiBjYWxsIG9uY2Ugd2UgcmVxdWlyZSA0
LjYuMSsuCi0gICAgY29ubmVjdCh0aGlzLCBTSUdOQUwocHJvY2Vzc1F1ZXVlZEl0ZW1zKCkpLCB0
aGlzLCBTTE9UKHNlbmRRdWV1ZWRJdGVtcygpKSk7CiB9CiAKIHZvaWQgUU5ldHdvcmtSZXBseUhh
bmRsZXI6OnJlc2V0U3RhdGUoKQpAQCAtNTYwLDI5ICs1NzEsMTAgQEAgdm9pZCBRTmV0d29ya1Jl
cGx5SGFuZGxlcjo6cmVzZXRTdGF0ZSgpCiAgICAgbV9yZWRpcmVjdGVkID0gZmFsc2U7CiAgICAg
bV9yZXNwb25zZVNlbnQgPSBmYWxzZTsKICAgICBtX3Jlc3BvbnNlQ29udGFpbnNEYXRhID0gZmFs
c2U7Ci0gICAgbV9zaG91bGRTdGFydCA9IHRydWU7Ci0gICAgbV9zaG91bGRGaW5pc2ggPSBmYWxz
ZTsKLSAgICBtX3Nob3VsZFNlbmRSZXNwb25zZSA9IGZhbHNlOwotICAgIG1fc2hvdWxkRm9yd2Fy
ZERhdGEgPSBmYWxzZTsKLX0KLQotdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6c2VuZFF1ZXVl
ZEl0ZW1zKCkKLXsKLSAgICBpZiAobV9sb2FkTW9kZSAhPSBMb2FkUmVzdW1pbmcpCi0gICAgICAg
IHJldHVybjsKLSAgICBtX2xvYWRNb2RlID0gTG9hZE5vcm1hbDsKLQotICAgIGlmIChtX3Nob3Vs
ZFN0YXJ0KQotICAgICAgICBzdGFydCgpOwotCi0gICAgaWYgKG1fc2hvdWxkU2VuZFJlc3BvbnNl
KQotICAgICAgICBzZW5kUmVzcG9uc2VJZk5lZWRlZCgpOwotCi0gICAgaWYgKG1fc2hvdWxkRm9y
d2FyZERhdGEpCi0gICAgICAgIGZvcndhcmREYXRhKCk7Ci0KLSAgICBpZiAobV9zaG91bGRGaW5p
c2gpCi0gICAgICAgIGZpbmlzaCgpOyAKKyAgICBtX2hhc1N0YXJ0ZWQgPSBmYWxzZTsKKyAgICBt
X2NhbGxGaW5pc2hPblJlc3VtZSA9IGZhbHNlOworICAgIG1fY2FsbFNlbmRSZXNwb25zZUlmTmVl
ZGVkT25SZXN1bWUgPSBmYWxzZTsKKyAgICBtX2NhbGxGb3J3YXJkRGF0YU9uUmVzdW1lID0gZmFs
c2U7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
cXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuaAppbmRleCA4YzliZDA4Li44MzI2YmMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlI
YW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29y
a1JlcGx5SGFuZGxlci5oCkBAIC0zOSwxNSArMzksMTMgQEAgY2xhc3MgUU5ldHdvcmtSZXBseUhh
bmRsZXIgOiBwdWJsaWMgUU9iamVjdAogewogICAgIFFfT0JKRUNUCiBwdWJsaWM6Ci0gICAgZW51
bSBMb2FkTW9kZSB7Ci0gICAgICAgIExvYWROb3JtYWwsCi0gICAgICAgIExvYWREZWZlcnJlZCwK
LSAgICAgICAgTG9hZFJlc3VtaW5nLAotICAgICAgICBMb2FkU3luY2hyb25vdXNseQorICAgIGVu
dW0gTG9hZFR5cGUgeworICAgICAgICBBc3luY2hyb25vdXNMb2FkLAorICAgICAgICBTeW5jaHJv
bm91c0xvYWQKICAgICB9OwogCi0gICAgUU5ldHdvcmtSZXBseUhhbmRsZXIoUmVzb3VyY2VIYW5k
bGUgKmhhbmRsZSwgTG9hZE1vZGUpOwotICAgIHZvaWQgc2V0TG9hZE1vZGUoTG9hZE1vZGUpOwor
ICAgIFFOZXR3b3JrUmVwbHlIYW5kbGVyKFJlc291cmNlSGFuZGxlKiwgTG9hZFR5cGUsIGJvb2wg
ZGVmZXJyZWQgPSBmYWxzZSk7CisgICAgdm9pZCBzZXRMb2FkaW5nRGVmZXJyZWQoYm9vbCk7CiAK
ICAgICBRTmV0d29ya1JlcGx5KiByZXBseSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwbHk7IH0KIApA
QCAtNTUsMzUgKzUzLDM0IEBAIHB1YmxpYzoKIAogICAgIFFOZXR3b3JrUmVwbHkqIHJlbGVhc2Uo
KTsKIAotc2lnbmFsczoKLSAgICB2b2lkIHByb2Nlc3NRdWV1ZWRJdGVtcygpOwotCiBwdWJsaWMg
c2xvdHM6CiAgICAgdm9pZCBmaW5pc2goKTsKICAgICB2b2lkIHNlbmRSZXNwb25zZUlmTmVlZGVk
KCk7CiAgICAgdm9pZCBmb3J3YXJkRGF0YSgpOwotICAgIHZvaWQgc2VuZFF1ZXVlZEl0ZW1zKCk7
CiAgICAgdm9pZCB1cGxvYWRQcm9ncmVzcyhxaW50NjQgYnl0ZXNTZW50LCBxaW50NjQgYnl0ZXNU
b3RhbCk7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydCgpOwogICAgIHZvaWQgcmVzZXRTdGF0
ZSgpOwogICAgIFN0cmluZyBodHRwTWV0aG9kKCkgY29uc3Q7CisgICAgdm9pZCByZXN1bWVEZWZl
cnJlZExvYWQoKTsKIAogICAgIFFOZXR3b3JrUmVwbHkqIG1fcmVwbHk7CiAgICAgUmVzb3VyY2VI
YW5kbGUqIG1fcmVzb3VyY2VIYW5kbGU7CiAgICAgYm9vbCBtX3JlZGlyZWN0ZWQ7CiAgICAgYm9v
bCBtX3Jlc3BvbnNlU2VudDsKICAgICBib29sIG1fcmVzcG9uc2VDb250YWluc0RhdGE7Ci0gICAg
TG9hZE1vZGUgbV9sb2FkTW9kZTsKKyAgICBMb2FkVHlwZSBtX2xvYWRUeXBlOwogICAgIFFOZXR3
b3JrQWNjZXNzTWFuYWdlcjo6T3BlcmF0aW9uIG1fbWV0aG9kOwogICAgIFFOZXR3b3JrUmVxdWVz
dCBtX3JlcXVlc3Q7CiAKKyAgICBib29sIG1fZGVmZXJyZWQ7CisKICAgICAvLyBkZWZlciBzdGF0
ZSBob2xkaW5nCi0gICAgYm9vbCBtX3Nob3VsZFN0YXJ0OwotICAgIGJvb2wgbV9zaG91bGRGaW5p
c2g7Ci0gICAgYm9vbCBtX3Nob3VsZFNlbmRSZXNwb25zZTsKLSAgICBib29sIG1fc2hvdWxkRm9y
d2FyZERhdGE7CisgICAgYm9vbCBtX2hhc1N0YXJ0ZWQ7CisgICAgYm9vbCBtX2NhbGxGaW5pc2hP
blJlc3VtZTsKKyAgICBib29sIG1fY2FsbFNlbmRSZXNwb25zZUlmTmVlZGVkT25SZXN1bWU7Cisg
ICAgYm9vbCBtX2NhbGxGb3J3YXJkRGF0YU9uUmVzdW1lOwogICAgIGludCBtX3JlZGlyZWN0aW9u
VHJpZXM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcAppbmRleCBjZDE3NjYwLi4zNjgyZWVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5k
bGVRdC5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKIAogICAgIGdldEludGVybmFsKCktPm1fY29udGV4
dCA9IGNvbnRleHQ7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCAqZCA9IGdldEludGVybmFs
KCk7Ci0gICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRsZXIodGhpcywgUU5ldHdv
cmtSZXBseUhhbmRsZXI6OkxvYWRNb2RlKGQtPm1fZGVmZXJzTG9hZGluZykpOworICAgIGQtPm1f
am9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5kbGVyKHRoaXMsIFFOZXR3b3JrUmVwbHlIYW5kbGVy
OjpBc3luY2hyb25vdXNMb2FkLCBkLT5tX2RlZmVyc0xvYWRpbmcpOwogICAgIHJldHVybiB0cnVl
OwogfQogCkBAIC0yMDcsNyArMjA3LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QKICAgICAg
ICAgZC0+bV9maXJzdFJlcXVlc3Quc2V0VVJMKHVybFdpdGhDcmVkZW50aWFscyk7CiAgICAgfQog
ICAgIGQtPm1fY29udGV4dCA9IGNvbnRleHQ7Ci0gICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtS
ZXBseUhhbmRsZXIoaGFuZGxlLmdldCgpLCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6TG9hZFN5bmNo
cm9ub3VzbHkpOworICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5kbGVyKGhhbmRs
ZS5nZXQoKSwgUU5ldHdvcmtSZXBseUhhbmRsZXI6OlN5bmNocm9ub3VzTG9hZCk7CiAKICAgICBR
TmV0d29ya1JlcGx5KiByZXBseSA9IGQtPm1fam9iLT5yZXBseSgpOwogICAgIC8vIFdoZW4gdXNp
bmcgc3luY2hyb25vdXMgY2FsbHMsIHdlIGFyZSBmaW5pc2hlZCB3aGVuIHJlYWNoaW5nIHRoaXMg
cG9pbnQuCkBAIC0yMjUsOCArMjI1LDkgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QKIAogdm9p
ZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1TZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzKQog
ewotICAgIGlmIChkLT5tX2pvYikKLSAgICAgICAgZC0+bV9qb2ItPnNldExvYWRNb2RlKFFOZXR3
b3JrUmVwbHlIYW5kbGVyOjpMb2FkTW9kZShkZWZlcnMpKTsKKyAgICBpZiAoIWQtPm1fam9iKQor
ICAgICAgICByZXR1cm47CisgICAgZC0+bV9qb2ItPnNldExvYWRpbmdEZWZlcnJlZChkZWZlcnMp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>