<?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>122687</bug_id>
          
          <creation_ts>2013-10-11 20:01:13 -0700</creation_ts>
          <short_desc>Extract an iterator/resolver class from calculateAdjustedNodes</short_desc>
          <delta_ts>2013-10-11 21:51:16 -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>UI Events</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>939041</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-11 20:01:13 -0700</bug_when>
    <thetext>Right now, we traverse through the DOM tree three times to figure a mouse event.

1. To create EventContexts for each node
2. To set relatedTarget on each context we&apos;ve created
3. Actually firing events through

We reduce this to at most two traversals.  In this bug, I&apos;m going to extract EventRelatedNodeResolver class, a stageful iterator class, that lets us update the relatedTarget as we walk up the tree.
Using this class, the current calculateAdjustedNodes can be reimplemented as:

static size_t calculateAdjustedNodes(Node* relatedNode, const EventPath&amp; eventPath, Vector&lt;RefPtr&lt;Node&gt;&gt;&amp; adjustedNodes)
{
    EventRelatedNodeResolver it(*relatedNode);

    size_t eventPathSize = eventPath.size();
    for (size_t i = 0; i &lt; eventPathSize; i++)
        adjustedNodes.append(it.moveToParentOrShadowHost(*eventPath.contextAt(i).node()));

    return eventPathSize;
}

This allows us to compute the related targets of event contexts as we create them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939043</commentid>
    <comment_count>1</comment_count>
      <attachid>214046</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-11 20:07:52 -0700</bug_when>
    <thetext>Created attachment 214046
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939044</commentid>
    <comment_count>2</comment_count>
      <attachid>214046</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-11 20:12:02 -0700</bug_when>
    <thetext>Comment on attachment 214046
Cleanup

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

Surprised that so much if this in terms of nodes rather than elements.

&gt; Source/WebCore/dom/EventContext.h:98
&gt; +    enum TouchListType {
&gt; +        Touches,
&gt; +        TargetTouches,
&gt; +        ChangedTouches,
&gt; +    };

I think this would read nicely on one line.

&gt; Source/WebCore/dom/EventContext.h:100
&gt; +    TouchList* touchList(TouchListType type)

Why a pointer instead of a reference for the return value?

&gt; Source/WebCore/dom/EventContext.h:111
&gt; +        return 0;

nullptr

&gt; Source/WebCore/dom/EventDispatcher.cpp:114
&gt; +        , m_relatedNodeInCurrentTreeScope(0)
&gt; +        , m_currentTreeScope(0)

nullptr

&gt; Source/WebCore/dom/EventDispatcher.cpp:115
&gt; +    { }

When the rest of the definition is vertical, I prefer that this be vertical too:

    {
    }

&gt; Source/WebCore/dom/EventDispatcher.cpp:117
&gt; +    Node* moveToParentOrShadowHost(Node&amp; newTarget)

Does the return value really need to be a pointer?

&gt; Source/WebCore/dom/EventDispatcher.cpp:413
&gt; +        EventRelatedNodeResolver it(*touch.target()-&gt;toNode());

I suggest the name resolver rather than it.

&gt; Source/WebCore/dom/EventDispatcher.cpp:436
&gt; +    EventRelatedNodeResolver it(*relatedNode);

I suggest calling this resolver rather than it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939045</commentid>
    <comment_count>3</comment_count>
      <attachid>214046</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-11 20:12:15 -0700</bug_when>
    <thetext>Comment on attachment 214046
Cleanup

Attachment 214046 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/3953292</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939046</commentid>
    <comment_count>4</comment_count>
      <attachid>214047</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-11 20:24:07 -0700</bug_when>
    <thetext>Created attachment 214047
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939047</commentid>
    <comment_count>5</comment_count>
      <attachid>214047</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-11 20:29:18 -0700</bug_when>
    <thetext>Comment on attachment 214047
Patch for landing

Attachment 214047 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/3951268</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939048</commentid>
    <comment_count>6</comment_count>
      <attachid>214047</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-11 20:30:53 -0700</bug_when>
    <thetext>Comment on attachment 214047
Patch for landing

Attachment 214047 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/3766348</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939049</commentid>
    <comment_count>7</comment_count>
      <attachid>214048</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-11 20:33:32 -0700</bug_when>
    <thetext>Created attachment 214048
Fixed EFL build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939056</commentid>
    <comment_count>8</comment_count>
      <attachid>214048</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-11 21:51:13 -0700</bug_when>
    <thetext>Comment on attachment 214048
Fixed EFL build

Clearing flags on attachment: 214048

Committed r157331: &lt;http://trac.webkit.org/changeset/157331&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939057</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-11 21:51:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214046</attachid>
            <date>2013-10-11 20:07:52 -0700</date>
            <delta_ts>2013-10-11 20:24:04 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-122687-20131011200752.patch</filename>
            <type>text/plain</type>
            <size>9515</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzMyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDEzLTEwLTExICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEV4dHJhY3QgYW4gaXRlcmF0b3Iv
cmVzb2x2ZXIgY2xhc3MgZnJvbSBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjI2ODcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHRyYWN0ZWQgRXZlbnRSZWxhdGVk
Tm9kZVJlc29sdmVyIG91dCBvZiBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzIGFuZCByZXBsYWNlZCBj
YWxscyB0byBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzCisgICAgICAgIGluIHVwZGF0ZVRvdWNoTGlz
dHNJbkV2ZW50UGF0aCBhbmQgc2V0UmVsYXRlZFRhcmdldCBieSB0aGUgdXNlIG9mIHRoaXMgbmV3
bHkgYWRkZWQgY2xhc3MuCisKKyAgICAgICAgKiBkb20vRXZlbnRDb250ZXh0Lmg6IEFkZGVkIHNv
bWUgaGVscGVyIGZ1bmN0aW9ucyB0byBUb3VjaEV2ZW50Q29udGV4dCBzbyB0aGF0IHVwZGF0ZVRv
dWNoTGlzdHNJbkV2ZW50UGF0aAorICAgICAgICBjb3VsZCBvYnRhaW4gcmVzcGVjdGl2ZSBUb3Vj
aExpc3QqIHdpdGhvdXQgaGF2aW5nIHRvIGhhcmQtY29kZSB0aGUgbmFtZS4KKyAgICAgICAgKiBk
b20vRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVsYXRlZE5v
ZGVSZXNvbHZlcjo6RXZlbnRSZWxhdGVkTm9kZVJlc29sdmVyKTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpFdmVudFJlbGF0ZWROb2RlUmVzb2x2ZXI6Om1vdmVUb1BhcmVudE9yU2hhZG93SG9z
dCk6IEV4dHJhY3RlZCBmcm9tIGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMuCisgICAgICAgIChXZWJD
b3JlOjp1cGRhdGVUb3VjaExpc3RzSW5FdmVudFBhdGgpOiBVcGRhdGVkIHRvIHVzZSBFdmVudFJl
bGF0ZWROb2RlUmVzb2x2ZXIuCisgICAgICAgIChXZWJDb3JlOjpFdmVudFBhdGg6OnVwZGF0ZVRv
dWNoTGlzdHMpOiBSZW1vdmVkIGxvY2FsIFZlY3RvcnMgdG8gVG91Y2hMaXN0IG5vdyB0aGF0IHVw
ZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aAorICAgICAgICBjYW4gb2J0YWluIFRvdWNoTGlzdCog
b24gZGVtYW5kLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRQYXRoOjpzZXRSZWxhdGVkVGFyZ2V0
KTogVXBzZWQgdG8gdXNlIEV2ZW50UmVsYXRlZE5vZGVSZXNvbHZlci4KKwogMjAxMy0xMC0xMSAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBEcmFtYXRpY2FsbHkg
c2ltcGxpZnkgY2FsY3VsYXRlQWRqdXN0ZWROb2RlcwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50Q29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudENv
bnRleHQuaAkocmV2aXNpb24gMTU3MzIwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50Q29u
dGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC05MSw2ICs5MSwyNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGhhbmRsZUxvY2FsRXZlbnRzKEV2ZW50JikgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIGlzVG91Y2hFdmVudENvbnRleHQoKSBjb25zdCBPVkVSUklERTsKIAorICAg
IGVudW0gVG91Y2hMaXN0VHlwZSB7CisgICAgICAgIFRvdWNoZXMsCisgICAgICAgIFRhcmdldFRv
dWNoZXMsCisgICAgICAgIENoYW5nZWRUb3VjaGVzLAorICAgIH07CisKKyAgICBUb3VjaExpc3Qq
IHRvdWNoTGlzdChUb3VjaExpc3RUeXBlIHR5cGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHR5
cGUpIHsKKyAgICAgICAgY2FzZSBUb3VjaGVzOgorICAgICAgICAgICAgcmV0dXJuIG1fdG91Y2hl
cy5nZXQoKTsKKyAgICAgICAgY2FzZSBUYXJnZXRUb3VjaGVzOgorICAgICAgICAgICAgcmV0dXJu
IG1fdGFyZ2V0VG91Y2hlcy5nZXQoKTsKKyAgICAgICAgY2FzZSBDaGFuZ2VkVG91Y2hlczoKKyAg
ICAgICAgICAgIHJldHVybiBtX2NoYW5nZWRUb3VjaGVzLmdldCgpOworICAgICAgICB9CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKICAg
ICBUb3VjaExpc3QqIHRvdWNoZXMoKSB7IHJldHVybiBtX3RvdWNoZXMuZ2V0KCk7IH0KICAgICBU
b3VjaExpc3QqIHRhcmdldFRvdWNoZXMoKSB7IHJldHVybiBtX3RhcmdldFRvdWNoZXMuZ2V0KCk7
IH0KICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzKCkgeyByZXR1cm4gbV9jaGFuZ2VkVG91
Y2hlcy5nZXQoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAJ
KHJldmlzaW9uIDE1NzMyOCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1LDQ2IEBAIHByaXZhdGU6CiAgICAgVmVj
dG9yPHN0ZDo6dW5pcXVlX3B0cjxFdmVudENvbnRleHQ+LCAzMj4gbV9wYXRoOwogfTsKIAorY2xh
c3MgRXZlbnRSZWxhdGVkTm9kZVJlc29sdmVyIHsKK3B1YmxpYzoKKyAgICBFdmVudFJlbGF0ZWRO
b2RlUmVzb2x2ZXIoTm9kZSYgcmVsYXRlZE5vZGUpCisgICAgICAgIDogbV9yZWxhdGVkTm9kZShy
ZWxhdGVkTm9kZSkKKyAgICAgICAgLCBtX3JlbGF0ZWROb2RlVHJlZVNjb3BlKHJlbGF0ZWROb2Rl
LnRyZWVTY29wZSgpKQorICAgICAgICAsIG1fcmVsYXRlZE5vZGVJbkN1cnJlbnRUcmVlU2NvcGUo
MCkKKyAgICAgICAgLCBtX2N1cnJlbnRUcmVlU2NvcGUoMCkKKyAgICB7IH0KKworICAgIE5vZGUq
IG1vdmVUb1BhcmVudE9yU2hhZG93SG9zdChOb2RlJiBuZXdUYXJnZXQpCisgICAgeworICAgICAg
ICBUcmVlU2NvcGUmIG5ld1RyZWVTY29wZSA9IG5ld1RhcmdldC50cmVlU2NvcGUoKTsKKyAgICAg
ICAgaWYgKCZuZXdUcmVlU2NvcGUgPT0gbV9jdXJyZW50VHJlZVNjb3BlKQorICAgICAgICAgICAg
cmV0dXJuIG1fcmVsYXRlZE5vZGVJbkN1cnJlbnRUcmVlU2NvcGU7CisKKyAgICAgICAgaWYgKG1f
Y3VycmVudFRyZWVTY29wZSkgeworICAgICAgICAgICAgQVNTRVJUKG1fY3VycmVudFRyZWVTY29w
ZS0+cm9vdE5vZGUoKS0+aXNTaGFkb3dSb290KCkpOworICAgICAgICAgICAgQVNTRVJUKCZuZXdU
YXJnZXQgPT0gdG9TaGFkb3dSb290KG1fY3VycmVudFRyZWVTY29wZS0+cm9vdE5vZGUoKSktPmhv
c3RFbGVtZW50KCkpOworICAgICAgICAgICAgQVNTRVJUKG1fY3VycmVudFRyZWVTY29wZS0+cGFy
ZW50VHJlZVNjb3BlKCkgPT0gJm5ld1RyZWVTY29wZSk7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAobV9yZWxhdGVkTm9kZUluQ3VycmVudFRyZWVTY29wZSkgeyAvLyByZWxhdGVkTm9kZSBpcyB1
bmRlciB0aGUgY3VycmVudCB0cmVlIHNjb3BlCisgICAgICAgICAgICBBU1NFUlQobV9jdXJyZW50
VHJlZVNjb3BlKTsKKyAgICAgICAgICAgIG1fcmVsYXRlZE5vZGVJbkN1cnJlbnRUcmVlU2NvcGUg
PSAmbmV3VGFyZ2V0OworICAgICAgICB9IGVsc2UgaWYgKCZuZXdUcmVlU2NvcGUgPT0gJm1fcmVs
YXRlZE5vZGVUcmVlU2NvcGUpIC8vIHJlbGF0ZWROb2RlIGlzIGluIHRoZSBjdXJyZW50IHRyZWUg
c2NvcGU7CisgICAgICAgICAgICBtX3JlbGF0ZWROb2RlSW5DdXJyZW50VHJlZVNjb3BlID0gJm1f
cmVsYXRlZE5vZGU7CisgICAgICAgIC8vIE90aGVyd2lzZSwgd2UgaGF2ZW4ndCByZWFjaGVkIHRo
ZSB0cmVlIHNjb3BlIHRoYXQgY29udGFpbnMgcmVsYXRlZE5vZGUgeWV0LgorCisgICAgICAgIG1f
Y3VycmVudFRyZWVTY29wZSA9ICZuZXdUcmVlU2NvcGU7CisKKyAgICAgICAgcmV0dXJuIG1fcmVs
YXRlZE5vZGVJbkN1cnJlbnRUcmVlU2NvcGU7CisgICAgfQorCitwcml2YXRlOgorICAgIE5vZGUm
IG1fcmVsYXRlZE5vZGU7CisgICAgY29uc3QgVHJlZVNjb3BlJiBtX3JlbGF0ZWROb2RlVHJlZVNj
b3BlOworICAgIE5vZGUqIG1fcmVsYXRlZE5vZGVJbkN1cnJlbnRUcmVlU2NvcGU7CisgICAgVHJl
ZVNjb3BlKiBtX2N1cnJlbnRUcmVlU2NvcGU7Cit9OworCiBpbmxpbmUgRXZlbnRUYXJnZXQmIGV2
ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKE5vZGUmIHJlZmVyZW5jZU5vZGUpCiB7CiAg
ICAgaWYgKHJlZmVyZW5jZU5vZGUuaXNQc2V1ZG9FbGVtZW50KCkpIHsKQEAgLTM1OSw0MSArMzk5
LDggQEAgRXZlbnRQYXRoOjpFdmVudFBhdGgoTm9kZSYgdGFyZ2V0Tm9kZSwgRQogICAgIH0KIH0K
IAotc3RhdGljIHNpemVfdCBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzKE5vZGUqIHJlbGF0ZWROb2Rl
LCBjb25zdCBFdmVudFBhdGgmIGV2ZW50UGF0aCwgVmVjdG9yPFJlZlB0cjxOb2RlPj4mIGFkanVz
dGVkTm9kZXMpCi17Ci0gICAgVHJlZVNjb3BlJiByZWxhdGVkTm9kZVRyZWVTY29wZSA9IHJlbGF0
ZWROb2RlLT50cmVlU2NvcGUoKTsKLQotICAgIFRyZWVTY29wZSogbGFzdFRyZWVTY29wZSA9IDA7
Ci0gICAgTm9kZSogcmVsYXRlZE5vZGVJbkN1cnJlbnRUcmVlU2NvcGUgPSAwOwotICAgIHNpemVf
dCBldmVudFBhdGhTaXplID0gZXZlbnRQYXRoLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGV2ZW50UGF0aFNpemU7IGkrKykgewotICAgICAgICBOb2RlKiBjdXJyZW50VGFyZ2V0
ID0gZXZlbnRQYXRoLmNvbnRleHRBdChpKS5ub2RlKCk7Ci0gICAgICAgIFRyZWVTY29wZSogY3Vy
cmVudFRyZWVTY29wZSA9ICZjdXJyZW50VGFyZ2V0LT50cmVlU2NvcGUoKTsKLQotICAgICAgICAv
LyBSZS11c2UgdGhlIHByZXZpb3VzIGFkanVzdGVkUmVsYXRlZFRhcmdldCBpZiB0cmVlU2NvcGUg
ZG9lcyBub3QgY2hhbmdlLiBKdXN0IGZvciB0aGUgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uLgot
ICAgICAgICBpZiAoY3VycmVudFRyZWVTY29wZSAhPSBsYXN0VHJlZVNjb3BlKSB7Ci0gICAgICAg
ICAgICBpZiAobGFzdFRyZWVTY29wZSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChsYXN0VHJl
ZVNjb3BlLT5yb290Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSk7Ci0gICAgICAgICAgICAgICAgQVNT
RVJUKGN1cnJlbnRUYXJnZXQgPT0gdG9TaGFkb3dSb290KGxhc3RUcmVlU2NvcGUtPnJvb3ROb2Rl
KCkpLT5ob3N0RWxlbWVudCgpKTsKLSAgICAgICAgICAgICAgICBBU1NFUlQobGFzdFRyZWVTY29w
ZS0+cGFyZW50VHJlZVNjb3BlKCkgPT0gY3VycmVudFRyZWVTY29wZSk7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIGlmIChyZWxhdGVkTm9kZUluQ3VycmVudFRyZWVTY29wZSkgeyAvLyBy
ZWxhdGVkTm9kZSBpcyB1bmRlciB0aGUgbGFzdCB0cmVlIHNjb3BlCi0gICAgICAgICAgICAgICAg
QVNTRVJUKGxhc3RUcmVlU2NvcGUpOwotICAgICAgICAgICAgICAgIHJlbGF0ZWROb2RlSW5DdXJy
ZW50VHJlZVNjb3BlID0gY3VycmVudFRhcmdldDsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoY3Vy
cmVudFRyZWVTY29wZSA9PSAmcmVsYXRlZE5vZGVUcmVlU2NvcGUpIC8vIHJlbGF0ZWROb2RlIGlz
IGluIHRoZSBjdXJyZW50IHRyZWUgc2NvcGU7Ci0gICAgICAgICAgICAgICAgcmVsYXRlZE5vZGVJ
bkN1cnJlbnRUcmVlU2NvcGUgPSByZWxhdGVkTm9kZTsKLSAgICAgICAgICAgIC8vIE90aGVyd2lz
ZSwgd2UgaGF2ZW4ndCByZWFjaGVkIHRoZSB0cmVlIHNjb3BlIHRoYXQgY29udGFpbnMgcmVsYXRl
ZE5vZGUgeWV0LgotCi0gICAgICAgICAgICBsYXN0VHJlZVNjb3BlID0gY3VycmVudFRyZWVTY29w
ZTsKLSAgICAgICAgfQotICAgICAgICBhZGp1c3RlZE5vZGVzLmFwcGVuZChyZWxhdGVkTm9kZUlu
Q3VycmVudFRyZWVTY29wZSk7Ci0gICAgfQotICAgIHJldHVybiBldmVudFBhdGhTaXplOwotfQot
CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLXN0YXRpYyB2b2lkIHVwZGF0ZVRvdWNoTGlzdHNJ
bkV2ZW50UGF0aChWZWN0b3I8UmVmUHRyPFRvdWNoTGlzdD4+JiB0b3VjaExpc3RzSW5FdmVudFBh
dGgsIGNvbnN0IFRvdWNoTGlzdCogdG91Y2hMaXN0LCBjb25zdCBFdmVudFBhdGgmIGV2ZW50UGF0
aCkKK3N0YXRpYyB2b2lkIHVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aChjb25zdCBUb3VjaExp
c3QqIHRvdWNoTGlzdCwgVG91Y2hFdmVudENvbnRleHQ6OlRvdWNoTGlzdFR5cGUgdG91Y2hMaXN0
VHlwZSwgY29uc3QgRXZlbnRQYXRoJiBldmVudFBhdGgpCiB7CiAgICAgaWYgKCF0b3VjaExpc3Qp
CiAgICAgICAgIHJldHVybjsKQEAgLTQwMiwzMyArNDA5LDIxIEBAIHN0YXRpYyB2b2lkIHVwZGF0
ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aCgKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRvdWNo
TGlzdC0+bGVuZ3RoKCk7ICsraSkgewogICAgICAgICBjb25zdCBUb3VjaCYgdG91Y2ggPSAqdG91
Y2hMaXN0LT5pdGVtKGkpOwogCi0gICAgICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4+IGFkanVzdGVk
Tm9kZXM7Ci0gICAgICAgIGNhbGN1bGF0ZUFkanVzdGVkTm9kZXModG91Y2gudGFyZ2V0KCktPnRv
Tm9kZSgpLCBldmVudFBhdGgsIGFkanVzdGVkTm9kZXMpOwotCi0gICAgICAgIEFTU0VSVChhZGp1
c3RlZE5vZGVzLnNpemUoKSA9PSBldmVudFBhdGhTaXplKTsKLSAgICAgICAgZm9yIChzaXplX3Qg
aiA9IDA7IGogPCBldmVudFBhdGhTaXplOyArK2opCi0gICAgICAgICAgICB0b3VjaExpc3RzSW5F
dmVudFBhdGhbal0tPmFwcGVuZCh0b3VjaC5jbG9uZVdpdGhOZXdUYXJnZXQoYWRqdXN0ZWROb2Rl
c1tqXS5nZXQoKSkpOworICAgICAgICBBU1NFUlQodG91Y2gudGFyZ2V0KCktPnRvTm9kZSgpKTsK
KyAgICAgICAgRXZlbnRSZWxhdGVkTm9kZVJlc29sdmVyIGl0KCp0b3VjaC50YXJnZXQoKS0+dG9O
b2RlKCkpOworICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGV2ZW50UGF0aFNpemU7ICsr
aikgeworICAgICAgICAgICAgRXZlbnRDb250ZXh0JiBjb250ZXh0ID0gZXZlbnRQYXRoLmNvbnRl
eHRBdChpKTsKKyAgICAgICAgICAgIE5vZGUqIG5vZGVJbkN1cnJlbnRUcmVlU2NvcGUgPSBpdC5t
b3ZlVG9QYXJlbnRPclNoYWRvd0hvc3QoKmNvbnRleHQubm9kZSgpKTsKKyAgICAgICAgICAgIHRv
VG91Y2hFdmVudENvbnRleHQoY29udGV4dCkudG91Y2hMaXN0KHRvdWNoTGlzdFR5cGUpLT5hcHBl
bmQodG91Y2guY2xvbmVXaXRoTmV3VGFyZ2V0KG5vZGVJbkN1cnJlbnRUcmVlU2NvcGUpKTsKKyAg
ICAgICAgfQogICAgIH0KIH0KIAogdm9pZCBFdmVudFBhdGg6OnVwZGF0ZVRvdWNoTGlzdHMoY29u
c3QgVG91Y2hFdmVudCYgdG91Y2hFdmVudCkKIHsKLSAgICBzaXplX3QgZXZlbnRQYXRoU2l6ZSA9
IG1fcGF0aC5zaXplKCk7Ci0KLSAgICBWZWN0b3I8UmVmUHRyPFRvdWNoTGlzdD4+IHRvdWNoZXNJ
bkV2ZW50UGF0aChldmVudFBhdGhTaXplKTsKLSAgICBWZWN0b3I8UmVmUHRyPFRvdWNoTGlzdD4+
IHRhcmdldFRvdWNoZXNJbkV2ZW50UGF0aChldmVudFBhdGhTaXplKTsKLSAgICBWZWN0b3I8UmVm
UHRyPFRvdWNoTGlzdD4+IGNoYW5nZWRUb3VjaGVzSW5FdmVudFBhdGgoZXZlbnRQYXRoU2l6ZSk7
Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGV2ZW50UGF0aFNpemU7ICsraSkgewotICAg
ICAgICBUb3VjaEV2ZW50Q29udGV4dCYgY29udGV4dCA9ICp0b1RvdWNoRXZlbnRDb250ZXh0KG1f
cGF0aFtpXS5nZXQoKSk7Ci0gICAgICAgIHRvdWNoZXNJbkV2ZW50UGF0aFtpXSA9IGNvbnRleHQu
dG91Y2hlcygpOwotICAgICAgICB0YXJnZXRUb3VjaGVzSW5FdmVudFBhdGhbaV0gPSBjb250ZXh0
LnRhcmdldFRvdWNoZXMoKTsKLSAgICAgICAgY2hhbmdlZFRvdWNoZXNJbkV2ZW50UGF0aFtpXSA9
IGNvbnRleHQuY2hhbmdlZFRvdWNoZXMoKTsKLSAgICB9Ci0KLSAgICB1cGRhdGVUb3VjaExpc3Rz
SW5FdmVudFBhdGgodG91Y2hlc0luRXZlbnRQYXRoLCB0b3VjaEV2ZW50LnRvdWNoZXMoKSwgKnRo
aXMpOwotICAgIHVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aCh0YXJnZXRUb3VjaGVzSW5FdmVu
dFBhdGgsIHRvdWNoRXZlbnQudGFyZ2V0VG91Y2hlcygpLCAqdGhpcyk7Ci0gICAgdXBkYXRlVG91
Y2hMaXN0c0luRXZlbnRQYXRoKGNoYW5nZWRUb3VjaGVzSW5FdmVudFBhdGgsIHRvdWNoRXZlbnQu
Y2hhbmdlZFRvdWNoZXMoKSwgKnRoaXMpOworICAgIHVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0
aCh0b3VjaEV2ZW50LnRvdWNoZXMoKSwgVG91Y2hFdmVudENvbnRleHQ6OlRvdWNoZXMsICp0aGlz
KTsKKyAgICB1cGRhdGVUb3VjaExpc3RzSW5FdmVudFBhdGgodG91Y2hFdmVudC50YXJnZXRUb3Vj
aGVzKCksIFRvdWNoRXZlbnRDb250ZXh0OjpUYXJnZXRUb3VjaGVzLCAqdGhpcyk7CisgICAgdXBk
YXRlVG91Y2hMaXN0c0luRXZlbnRQYXRoKHRvdWNoRXZlbnQuY2hhbmdlZFRvdWNoZXMoKSwgVG91
Y2hFdmVudENvbnRleHQ6OkNoYW5nZWRUb3VjaGVzLCAqdGhpcyk7CiB9CiAjZW5kaWYKIApAQCAt
NDM3LDExICs0MzIsMTIgQEAgdm9pZCBFdmVudFBhdGg6OnNldFJlbGF0ZWRUYXJnZXQoRXZlbnRU
YQogICAgIE5vZGUqIHJlbGF0ZWROb2RlID0gcmVsYXRlZFRhcmdldC50b05vZGUoKTsKICAgICBp
ZiAoIXJlbGF0ZWROb2RlKQogICAgICAgICByZXR1cm47Ci0gICAgVmVjdG9yPFJlZlB0cjxOb2Rl
Pj4gYWRqdXN0ZWROb2RlczsKLSAgICBtX3BhdGguc2hyaW5rKGNhbGN1bGF0ZUFkanVzdGVkTm9k
ZXMocmVsYXRlZE5vZGUsICp0aGlzLCBhZGp1c3RlZE5vZGVzKSk7Ci0gICAgQVNTRVJUKGFkanVz
dGVkTm9kZXMuc2l6ZSgpIDw9IG1fcGF0aC5zaXplKCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgYWRqdXN0ZWROb2Rlcy5zaXplKCk7ICsraSkKLSAgICAgICAgdG9Nb3VzZU9yRm9jdXNF
dmVudENvbnRleHQoKm1fcGF0aFtpXSkuc2V0UmVsYXRlZFRhcmdldChhZGp1c3RlZE5vZGVzW2ld
KTsKKworICAgIEV2ZW50UmVsYXRlZE5vZGVSZXNvbHZlciBpdCgqcmVsYXRlZE5vZGUpOworCisg
ICAgc2l6ZV90IGV2ZW50UGF0aFNpemUgPSBtX3BhdGguc2l6ZSgpOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgZXZlbnRQYXRoU2l6ZTsgaSsrKQorICAgICAgICB0b01vdXNlT3JGb2N1c0V2
ZW50Q29udGV4dCgqbV9wYXRoW2ldKS5zZXRSZWxhdGVkVGFyZ2V0KGl0Lm1vdmVUb1BhcmVudE9y
U2hhZG93SG9zdCgqbV9wYXRoW2ldLT5ub2RlKCkpKTsKIH0KIAogYm9vbCBFdmVudFBhdGg6Omhh
c0V2ZW50TGlzdGVuZXJzKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214047</attachid>
            <date>2013-10-11 20:24:07 -0700</date>
            <delta_ts>2013-10-11 20:33:30 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-122687-20131011202407.patch</filename>
            <type>text/plain</type>
            <size>9859</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzMyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDEzLTEwLTExICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEV4dHJhY3QgYW4gaXRlcmF0b3Iv
cmVzb2x2ZXIgY2xhc3MgZnJvbSBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjI2ODcKKworICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBFeHRyYWN0ZWQgRXZlbnRSZWxhdGVkTm9k
ZVJlc29sdmVyIG91dCBvZiBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzIGFuZCByZXBsYWNlZCBjYWxs
cyB0byBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzCisgICAgICAgIGluIHVwZGF0ZVRvdWNoTGlzdHNJ
bkV2ZW50UGF0aCBhbmQgc2V0UmVsYXRlZFRhcmdldCBieSB0aGUgdXNlIG9mIHRoaXMgbmV3bHkg
YWRkZWQgY2xhc3MuCisKKyAgICAgICAgKiBkb20vRXZlbnRDb250ZXh0Lmg6IEFkZGVkIHNvbWUg
aGVscGVyIGZ1bmN0aW9ucyB0byBUb3VjaEV2ZW50Q29udGV4dCBzbyB0aGF0IHVwZGF0ZVRvdWNo
TGlzdHNJbkV2ZW50UGF0aAorICAgICAgICBjb3VsZCBvYnRhaW4gcmVzcGVjdGl2ZSBUb3VjaExp
c3QqIHdpdGhvdXQgaGF2aW5nIHRvIGhhcmQtY29kZSB0aGUgbmFtZS4KKyAgICAgICAgKiBkb20v
RXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVsYXRlZE5vZGVS
ZXNvbHZlcjo6RXZlbnRSZWxhdGVkTm9kZVJlc29sdmVyKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpFdmVudFJlbGF0ZWROb2RlUmVzb2x2ZXI6Om1vdmVUb1BhcmVudE9yU2hhZG93SG9zdCk6
IEV4dHJhY3RlZCBmcm9tIGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMuCisgICAgICAgIChXZWJDb3Jl
OjpFdmVudFBhdGg6OnVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aCk6IFVwZGF0ZWQgdG8gdXNl
IEV2ZW50UmVsYXRlZE5vZGVSZXNvbHZlci4gQWxzbyBtYWRlIHRoaXMKKyAgICAgICAgYSBtZW1i
ZXIgZnVuY3Rpb24gb2YgRXZlbnRQYXRoLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRQYXRoOjp1
cGRhdGVUb3VjaExpc3RzKTogUmVtb3ZlZCBsb2NhbCBWZWN0b3JzIHRvIFRvdWNoTGlzdCBub3cg
dGhhdCB1cGRhdGVUb3VjaExpc3RzSW5FdmVudFBhdGgKKyAgICAgICAgY2FuIG9idGFpbiBUb3Vj
aExpc3QqIG9uIGRlbWFuZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UGF0aDo6c2V0UmVsYXRl
ZFRhcmdldCk6IFVwc2VkIHRvIHVzZSBFdmVudFJlbGF0ZWROb2RlUmVzb2x2ZXIuCisKIDIwMTMt
MTAtMTEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRHJhbWF0
aWNhbGx5IHNpbXBsaWZ5IGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudENvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRDb250ZXh0LmgJKHJldmlzaW9uIDE1NzMyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudENvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtOTEsNiArOTEsMjEgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVMb2NhbEV2ZW50cyhFdmVudCYpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBpc1RvdWNoRXZlbnRDb250ZXh0KCkgY29uc3QgT1ZFUlJJREU7
CiAKKyAgICBlbnVtIFRvdWNoTGlzdFR5cGUgeyBUb3VjaGVzLCBUYXJnZXRUb3VjaGVzLCBDaGFu
Z2VkVG91Y2hlcywgfTsKKyAgICBUb3VjaExpc3QqIHRvdWNoTGlzdChUb3VjaExpc3RUeXBlIHR5
cGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSBUb3VjaGVz
OgorICAgICAgICAgICAgcmV0dXJuIG1fdG91Y2hlcy5nZXQoKTsKKyAgICAgICAgY2FzZSBUYXJn
ZXRUb3VjaGVzOgorICAgICAgICAgICAgcmV0dXJuIG1fdGFyZ2V0VG91Y2hlcy5nZXQoKTsKKyAg
ICAgICAgY2FzZSBDaGFuZ2VkVG91Y2hlczoKKyAgICAgICAgICAgIHJldHVybiBtX2NoYW5nZWRU
b3VjaGVzLmdldCgpOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICAgICBUb3VjaExpc3QqIHRvdWNoZXMo
KSB7IHJldHVybiBtX3RvdWNoZXMuZ2V0KCk7IH0KICAgICBUb3VjaExpc3QqIHRhcmdldFRvdWNo
ZXMoKSB7IHJldHVybiBtX3RhcmdldFRvdWNoZXMuZ2V0KCk7IH0KICAgICBUb3VjaExpc3QqIGNo
YW5nZWRUb3VjaGVzKCkgeyByZXR1cm4gbV9jaGFuZ2VkVG91Y2hlcy5nZXQoKTsgfQpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAJKHJldmlzaW9uIDE1NzMyOCkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDIsOSArMTAyLDU0IEBAIHB1YmxpYzoKICAgICBFdmVudENvbnRleHQqIGxhc3RDb250ZXh0
SWZFeGlzdHMoKSB7IHJldHVybiBtX3BhdGguaXNFbXB0eSgpID8gMCA6IG1fcGF0aC5sYXN0KCku
Z2V0KCk7IH0KIAogcHJpdmF0ZToKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIHZvaWQg
dXBkYXRlVG91Y2hMaXN0c0luRXZlbnRQYXRoKGNvbnN0IFRvdWNoTGlzdCosIFRvdWNoRXZlbnRD
b250ZXh0OjpUb3VjaExpc3RUeXBlKTsKKyNlbmRpZgorCiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVl
X3B0cjxFdmVudENvbnRleHQ+LCAzMj4gbV9wYXRoOwogfTsKIAorY2xhc3MgRXZlbnRSZWxhdGVk
Tm9kZVJlc29sdmVyIHsKK3B1YmxpYzoKKyAgICBFdmVudFJlbGF0ZWROb2RlUmVzb2x2ZXIoTm9k
ZSYgcmVsYXRlZE5vZGUpCisgICAgICAgIDogbV9yZWxhdGVkTm9kZShyZWxhdGVkTm9kZSkKKyAg
ICAgICAgLCBtX3JlbGF0ZWROb2RlVHJlZVNjb3BlKHJlbGF0ZWROb2RlLnRyZWVTY29wZSgpKQor
ICAgICAgICAsIG1fcmVsYXRlZE5vZGVJbkN1cnJlbnRUcmVlU2NvcGUobnVsbHB0cikKKyAgICAg
ICAgLCBtX2N1cnJlbnRUcmVlU2NvcGUobnVsbHB0cikKKyAgICB7CisgICAgfQorCisgICAgTm9k
ZSogbW92ZVRvUGFyZW50T3JTaGFkb3dIb3N0KE5vZGUmIG5ld1RhcmdldCkKKyAgICB7CisgICAg
ICAgIFRyZWVTY29wZSYgbmV3VHJlZVNjb3BlID0gbmV3VGFyZ2V0LnRyZWVTY29wZSgpOworICAg
ICAgICBpZiAoJm5ld1RyZWVTY29wZSA9PSBtX2N1cnJlbnRUcmVlU2NvcGUpCisgICAgICAgICAg
ICByZXR1cm4gbV9yZWxhdGVkTm9kZUluQ3VycmVudFRyZWVTY29wZTsKKworICAgICAgICBpZiAo
bV9jdXJyZW50VHJlZVNjb3BlKSB7CisgICAgICAgICAgICBBU1NFUlQobV9jdXJyZW50VHJlZVNj
b3BlLT5yb290Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSk7CisgICAgICAgICAgICBBU1NFUlQoJm5l
d1RhcmdldCA9PSB0b1NoYWRvd1Jvb3QobV9jdXJyZW50VHJlZVNjb3BlLT5yb290Tm9kZSgpKS0+
aG9zdEVsZW1lbnQoKSk7CisgICAgICAgICAgICBBU1NFUlQobV9jdXJyZW50VHJlZVNjb3BlLT5w
YXJlbnRUcmVlU2NvcGUoKSA9PSAmbmV3VHJlZVNjb3BlKTsKKyAgICAgICAgfQorCisgICAgICAg
IGlmIChtX3JlbGF0ZWROb2RlSW5DdXJyZW50VHJlZVNjb3BlKSB7IC8vIHJlbGF0ZWROb2RlIGlz
IHVuZGVyIHRoZSBjdXJyZW50IHRyZWUgc2NvcGUKKyAgICAgICAgICAgIEFTU0VSVChtX2N1cnJl
bnRUcmVlU2NvcGUpOworICAgICAgICAgICAgbV9yZWxhdGVkTm9kZUluQ3VycmVudFRyZWVTY29w
ZSA9ICZuZXdUYXJnZXQ7CisgICAgICAgIH0gZWxzZSBpZiAoJm5ld1RyZWVTY29wZSA9PSAmbV9y
ZWxhdGVkTm9kZVRyZWVTY29wZSkgLy8gcmVsYXRlZE5vZGUgaXMgaW4gdGhlIGN1cnJlbnQgdHJl
ZSBzY29wZTsKKyAgICAgICAgICAgIG1fcmVsYXRlZE5vZGVJbkN1cnJlbnRUcmVlU2NvcGUgPSAm
bV9yZWxhdGVkTm9kZTsKKyAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBoYXZlbid0IHJlYWNoZWQg
dGhlIHRyZWUgc2NvcGUgdGhhdCBjb250YWlucyByZWxhdGVkTm9kZSB5ZXQuCisKKyAgICAgICAg
bV9jdXJyZW50VHJlZVNjb3BlID0gJm5ld1RyZWVTY29wZTsKKworICAgICAgICByZXR1cm4gbV9y
ZWxhdGVkTm9kZUluQ3VycmVudFRyZWVTY29wZTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgTm9k
ZSYgbV9yZWxhdGVkTm9kZTsKKyAgICBjb25zdCBUcmVlU2NvcGUmIG1fcmVsYXRlZE5vZGVUcmVl
U2NvcGU7CisgICAgTm9kZSogbV9yZWxhdGVkTm9kZUluQ3VycmVudFRyZWVTY29wZTsKKyAgICBU
cmVlU2NvcGUqIG1fY3VycmVudFRyZWVTY29wZTsKK307CisKIGlubGluZSBFdmVudFRhcmdldCYg
ZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMoTm9kZSYgcmVmZXJlbmNlTm9kZSkKIHsK
ICAgICBpZiAocmVmZXJlbmNlTm9kZS5pc1BzZXVkb0VsZW1lbnQoKSkgewpAQCAtMzU5LDc2ICs0
MDQsMzAgQEAgRXZlbnRQYXRoOjpFdmVudFBhdGgoTm9kZSYgdGFyZ2V0Tm9kZSwgRQogICAgIH0K
IH0KIAotc3RhdGljIHNpemVfdCBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzKE5vZGUqIHJlbGF0ZWRO
b2RlLCBjb25zdCBFdmVudFBhdGgmIGV2ZW50UGF0aCwgVmVjdG9yPFJlZlB0cjxOb2RlPj4mIGFk
anVzdGVkTm9kZXMpCi17Ci0gICAgVHJlZVNjb3BlJiByZWxhdGVkTm9kZVRyZWVTY29wZSA9IHJl
bGF0ZWROb2RlLT50cmVlU2NvcGUoKTsKLQotICAgIFRyZWVTY29wZSogbGFzdFRyZWVTY29wZSA9
IDA7Ci0gICAgTm9kZSogcmVsYXRlZE5vZGVJbkN1cnJlbnRUcmVlU2NvcGUgPSAwOwotICAgIHNp
emVfdCBldmVudFBhdGhTaXplID0gZXZlbnRQYXRoLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGV2ZW50UGF0aFNpemU7IGkrKykgewotICAgICAgICBOb2RlKiBjdXJyZW50VGFy
Z2V0ID0gZXZlbnRQYXRoLmNvbnRleHRBdChpKS5ub2RlKCk7Ci0gICAgICAgIFRyZWVTY29wZSog
Y3VycmVudFRyZWVTY29wZSA9ICZjdXJyZW50VGFyZ2V0LT50cmVlU2NvcGUoKTsKLQotICAgICAg
ICAvLyBSZS11c2UgdGhlIHByZXZpb3VzIGFkanVzdGVkUmVsYXRlZFRhcmdldCBpZiB0cmVlU2Nv
cGUgZG9lcyBub3QgY2hhbmdlLiBKdXN0IGZvciB0aGUgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9u
LgotICAgICAgICBpZiAoY3VycmVudFRyZWVTY29wZSAhPSBsYXN0VHJlZVNjb3BlKSB7Ci0gICAg
ICAgICAgICBpZiAobGFzdFRyZWVTY29wZSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChsYXN0
VHJlZVNjb3BlLT5yb290Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSk7Ci0gICAgICAgICAgICAgICAg
QVNTRVJUKGN1cnJlbnRUYXJnZXQgPT0gdG9TaGFkb3dSb290KGxhc3RUcmVlU2NvcGUtPnJvb3RO
b2RlKCkpLT5ob3N0RWxlbWVudCgpKTsKLSAgICAgICAgICAgICAgICBBU1NFUlQobGFzdFRyZWVT
Y29wZS0+cGFyZW50VHJlZVNjb3BlKCkgPT0gY3VycmVudFRyZWVTY29wZSk7Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIGlmIChyZWxhdGVkTm9kZUluQ3VycmVudFRyZWVTY29wZSkgeyAv
LyByZWxhdGVkTm9kZSBpcyB1bmRlciB0aGUgbGFzdCB0cmVlIHNjb3BlCi0gICAgICAgICAgICAg
ICAgQVNTRVJUKGxhc3RUcmVlU2NvcGUpOwotICAgICAgICAgICAgICAgIHJlbGF0ZWROb2RlSW5D
dXJyZW50VHJlZVNjb3BlID0gY3VycmVudFRhcmdldDsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAo
Y3VycmVudFRyZWVTY29wZSA9PSAmcmVsYXRlZE5vZGVUcmVlU2NvcGUpIC8vIHJlbGF0ZWROb2Rl
IGlzIGluIHRoZSBjdXJyZW50IHRyZWUgc2NvcGU7Ci0gICAgICAgICAgICAgICAgcmVsYXRlZE5v
ZGVJbkN1cnJlbnRUcmVlU2NvcGUgPSByZWxhdGVkTm9kZTsKLSAgICAgICAgICAgIC8vIE90aGVy
d2lzZSwgd2UgaGF2ZW4ndCByZWFjaGVkIHRoZSB0cmVlIHNjb3BlIHRoYXQgY29udGFpbnMgcmVs
YXRlZE5vZGUgeWV0LgotCi0gICAgICAgICAgICBsYXN0VHJlZVNjb3BlID0gY3VycmVudFRyZWVT
Y29wZTsKLSAgICAgICAgfQotICAgICAgICBhZGp1c3RlZE5vZGVzLmFwcGVuZChyZWxhdGVkTm9k
ZUluQ3VycmVudFRyZWVTY29wZSk7Ci0gICAgfQotICAgIHJldHVybiBldmVudFBhdGhTaXplOwot
fQotCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLXN0YXRpYyB2b2lkIHVwZGF0ZVRvdWNoTGlz
dHNJbkV2ZW50UGF0aChWZWN0b3I8UmVmUHRyPFRvdWNoTGlzdD4+JiB0b3VjaExpc3RzSW5FdmVu
dFBhdGgsIGNvbnN0IFRvdWNoTGlzdCogdG91Y2hMaXN0LCBjb25zdCBFdmVudFBhdGgmIGV2ZW50
UGF0aCkKK3ZvaWQgRXZlbnRQYXRoOjp1cGRhdGVUb3VjaExpc3RzSW5FdmVudFBhdGgoY29uc3Qg
VG91Y2hMaXN0KiB0b3VjaExpc3QsIFRvdWNoRXZlbnRDb250ZXh0OjpUb3VjaExpc3RUeXBlIHRv
dWNoTGlzdFR5cGUpCiB7CiAgICAgaWYgKCF0b3VjaExpc3QpCiAgICAgICAgIHJldHVybjsKLSAg
ICBzaXplX3QgZXZlbnRQYXRoU2l6ZSA9IGV2ZW50UGF0aC5zaXplKCk7Ci0gICAgQVNTRVJUKHRv
dWNoTGlzdHNJbkV2ZW50UGF0aC5zaXplKCkgPT0gZXZlbnRQYXRoU2l6ZSk7CiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCB0b3VjaExpc3QtPmxlbmd0aCgpOyArK2kpIHsKICAgICAgICAgY29u
c3QgVG91Y2gmIHRvdWNoID0gKnRvdWNoTGlzdC0+aXRlbShpKTsKIAotICAgICAgICBWZWN0b3I8
UmVmUHRyPE5vZGU+PiBhZGp1c3RlZE5vZGVzOwotICAgICAgICBjYWxjdWxhdGVBZGp1c3RlZE5v
ZGVzKHRvdWNoLnRhcmdldCgpLT50b05vZGUoKSwgZXZlbnRQYXRoLCBhZGp1c3RlZE5vZGVzKTsK
LQotICAgICAgICBBU1NFUlQoYWRqdXN0ZWROb2Rlcy5zaXplKCkgPT0gZXZlbnRQYXRoU2l6ZSk7
Ci0gICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgZXZlbnRQYXRoU2l6ZTsgKytqKQotICAg
ICAgICAgICAgdG91Y2hMaXN0c0luRXZlbnRQYXRoW2pdLT5hcHBlbmQodG91Y2guY2xvbmVXaXRo
TmV3VGFyZ2V0KGFkanVzdGVkTm9kZXNbal0uZ2V0KCkpKTsKKyAgICAgICAgQVNTRVJUKHRvdWNo
LnRhcmdldCgpLT50b05vZGUoKSk7CisgICAgICAgIEV2ZW50UmVsYXRlZE5vZGVSZXNvbHZlciBy
ZXNvbHZlcigqdG91Y2gudGFyZ2V0KCktPnRvTm9kZSgpKTsKKyAgICAgICAgc2l6ZV90IGV2ZW50
UGF0aFNpemUgPSBtX3BhdGguc2l6ZSgpOworICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8
IGV2ZW50UGF0aFNpemU7ICsraikgeworICAgICAgICAgICAgRXZlbnRDb250ZXh0JiBjb250ZXh0
ID0gbV9wYXRoW2ldOworICAgICAgICAgICAgTm9kZSogbm9kZUluQ3VycmVudFRyZWVTY29wZSA9
IHJlc29sdmVyLm1vdmVUb1BhcmVudE9yU2hhZG93SG9zdCgqY29udGV4dC5ub2RlKCkpOworICAg
ICAgICAgICAgdG9Ub3VjaEV2ZW50Q29udGV4dChjb250ZXh0KS50b3VjaExpc3QodG91Y2hMaXN0
VHlwZSktPmFwcGVuZCh0b3VjaC5jbG9uZVdpdGhOZXdUYXJnZXQobm9kZUluQ3VycmVudFRyZWVT
Y29wZSkpOworICAgICAgICB9CiAgICAgfQogfQogCiB2b2lkIEV2ZW50UGF0aDo6dXBkYXRlVG91
Y2hMaXN0cyhjb25zdCBUb3VjaEV2ZW50JiB0b3VjaEV2ZW50KQogewotICAgIHNpemVfdCBldmVu
dFBhdGhTaXplID0gbV9wYXRoLnNpemUoKTsKLQotICAgIFZlY3RvcjxSZWZQdHI8VG91Y2hMaXN0
Pj4gdG91Y2hlc0luRXZlbnRQYXRoKGV2ZW50UGF0aFNpemUpOwotICAgIFZlY3RvcjxSZWZQdHI8
VG91Y2hMaXN0Pj4gdGFyZ2V0VG91Y2hlc0luRXZlbnRQYXRoKGV2ZW50UGF0aFNpemUpOwotICAg
IFZlY3RvcjxSZWZQdHI8VG91Y2hMaXN0Pj4gY2hhbmdlZFRvdWNoZXNJbkV2ZW50UGF0aChldmVu
dFBhdGhTaXplKTsKLQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZXZlbnRQYXRoU2l6ZTsg
KytpKSB7Ci0gICAgICAgIFRvdWNoRXZlbnRDb250ZXh0JiBjb250ZXh0ID0gKnRvVG91Y2hFdmVu
dENvbnRleHQobV9wYXRoW2ldLmdldCgpKTsKLSAgICAgICAgdG91Y2hlc0luRXZlbnRQYXRoW2ld
ID0gY29udGV4dC50b3VjaGVzKCk7Ci0gICAgICAgIHRhcmdldFRvdWNoZXNJbkV2ZW50UGF0aFtp
XSA9IGNvbnRleHQudGFyZ2V0VG91Y2hlcygpOwotICAgICAgICBjaGFuZ2VkVG91Y2hlc0luRXZl
bnRQYXRoW2ldID0gY29udGV4dC5jaGFuZ2VkVG91Y2hlcygpOwotICAgIH0KLQotICAgIHVwZGF0
ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aCh0b3VjaGVzSW5FdmVudFBhdGgsIHRvdWNoRXZlbnQudG91
Y2hlcygpLCAqdGhpcyk7Ci0gICAgdXBkYXRlVG91Y2hMaXN0c0luRXZlbnRQYXRoKHRhcmdldFRv
dWNoZXNJbkV2ZW50UGF0aCwgdG91Y2hFdmVudC50YXJnZXRUb3VjaGVzKCksICp0aGlzKTsKLSAg
ICB1cGRhdGVUb3VjaExpc3RzSW5FdmVudFBhdGgoY2hhbmdlZFRvdWNoZXNJbkV2ZW50UGF0aCwg
dG91Y2hFdmVudC5jaGFuZ2VkVG91Y2hlcygpLCAqdGhpcyk7CisgICAgdXBkYXRlVG91Y2hMaXN0
c0luRXZlbnRQYXRoKHRvdWNoRXZlbnQudG91Y2hlcygpLCBUb3VjaEV2ZW50Q29udGV4dDo6VG91
Y2hlcyk7CisgICAgdXBkYXRlVG91Y2hMaXN0c0luRXZlbnRQYXRoKHRvdWNoRXZlbnQudGFyZ2V0
VG91Y2hlcygpLCBUb3VjaEV2ZW50Q29udGV4dDo6VGFyZ2V0VG91Y2hlcyk7CisgICAgdXBkYXRl
VG91Y2hMaXN0c0luRXZlbnRQYXRoKHRvdWNoRXZlbnQuY2hhbmdlZFRvdWNoZXMoKSwgVG91Y2hF
dmVudENvbnRleHQ6OkNoYW5nZWRUb3VjaGVzKTsKIH0KICNlbmRpZgogCkBAIC00MzcsMTEgKzQz
NiwxMiBAQCB2b2lkIEV2ZW50UGF0aDo6c2V0UmVsYXRlZFRhcmdldChFdmVudFRhCiAgICAgTm9k
ZSogcmVsYXRlZE5vZGUgPSByZWxhdGVkVGFyZ2V0LnRvTm9kZSgpOwogICAgIGlmICghcmVsYXRl
ZE5vZGUpCiAgICAgICAgIHJldHVybjsKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBhZGp1c3Rl
ZE5vZGVzOwotICAgIG1fcGF0aC5zaHJpbmsoY2FsY3VsYXRlQWRqdXN0ZWROb2RlcyhyZWxhdGVk
Tm9kZSwgKnRoaXMsIGFkanVzdGVkTm9kZXMpKTsKLSAgICBBU1NFUlQoYWRqdXN0ZWROb2Rlcy5z
aXplKCkgPD0gbV9wYXRoLnNpemUoKSk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhZGp1
c3RlZE5vZGVzLnNpemUoKTsgKytpKQotICAgICAgICB0b01vdXNlT3JGb2N1c0V2ZW50Q29udGV4
dCgqbV9wYXRoW2ldKS5zZXRSZWxhdGVkVGFyZ2V0KGFkanVzdGVkTm9kZXNbaV0pOworCisgICAg
RXZlbnRSZWxhdGVkTm9kZVJlc29sdmVyIHJlc29sdmVyKCpyZWxhdGVkTm9kZSk7CisKKyAgICBz
aXplX3QgZXZlbnRQYXRoU2l6ZSA9IG1fcGF0aC5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBldmVudFBhdGhTaXplOyBpKyspCisgICAgICAgIHRvTW91c2VPckZvY3VzRXZlbnRD
b250ZXh0KCptX3BhdGhbaV0pLnNldFJlbGF0ZWRUYXJnZXQocmVzb2x2ZXIubW92ZVRvUGFyZW50
T3JTaGFkb3dIb3N0KCptX3BhdGhbaV0tPm5vZGUoKSkpOwogfQogCiBib29sIEV2ZW50UGF0aDo6
aGFzRXZlbnRMaXN0ZW5lcnMoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214048</attachid>
            <date>2013-10-11 20:33:32 -0700</date>
            <delta_ts>2013-10-11 21:51:13 -0700</delta_ts>
            <desc>Fixed EFL build</desc>
            <filename>bug-122687-20131011203332.patch</filename>
            <type>text/plain</type>
            <size>9860</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzMyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDEzLTEwLTExICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEV4dHJhY3QgYW4gaXRlcmF0b3Iv
cmVzb2x2ZXIgY2xhc3MgZnJvbSBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjI2ODcKKworICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBFeHRyYWN0ZWQgRXZlbnRSZWxhdGVkTm9k
ZVJlc29sdmVyIG91dCBvZiBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzIGFuZCByZXBsYWNlZCBjYWxs
cyB0byBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzCisgICAgICAgIGluIHVwZGF0ZVRvdWNoTGlzdHNJ
bkV2ZW50UGF0aCBhbmQgc2V0UmVsYXRlZFRhcmdldCBieSB0aGUgdXNlIG9mIHRoaXMgbmV3bHkg
YWRkZWQgY2xhc3MuCisKKyAgICAgICAgKiBkb20vRXZlbnRDb250ZXh0Lmg6IEFkZGVkIHNvbWUg
aGVscGVyIGZ1bmN0aW9ucyB0byBUb3VjaEV2ZW50Q29udGV4dCBzbyB0aGF0IHVwZGF0ZVRvdWNo
TGlzdHNJbkV2ZW50UGF0aAorICAgICAgICBjb3VsZCBvYnRhaW4gcmVzcGVjdGl2ZSBUb3VjaExp
c3QqIHdpdGhvdXQgaGF2aW5nIHRvIGhhcmQtY29kZSB0aGUgbmFtZS4KKyAgICAgICAgKiBkb20v
RXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVsYXRlZE5vZGVS
ZXNvbHZlcjo6RXZlbnRSZWxhdGVkTm9kZVJlc29sdmVyKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpFdmVudFJlbGF0ZWROb2RlUmVzb2x2ZXI6Om1vdmVUb1BhcmVudE9yU2hhZG93SG9zdCk6
IEV4dHJhY3RlZCBmcm9tIGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMuCisgICAgICAgIChXZWJDb3Jl
OjpFdmVudFBhdGg6OnVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aCk6IFVwZGF0ZWQgdG8gdXNl
IEV2ZW50UmVsYXRlZE5vZGVSZXNvbHZlci4gQWxzbyBtYWRlIHRoaXMKKyAgICAgICAgYSBtZW1i
ZXIgZnVuY3Rpb24gb2YgRXZlbnRQYXRoLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRQYXRoOjp1
cGRhdGVUb3VjaExpc3RzKTogUmVtb3ZlZCBsb2NhbCBWZWN0b3JzIHRvIFRvdWNoTGlzdCBub3cg
dGhhdCB1cGRhdGVUb3VjaExpc3RzSW5FdmVudFBhdGgKKyAgICAgICAgY2FuIG9idGFpbiBUb3Vj
aExpc3QqIG9uIGRlbWFuZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UGF0aDo6c2V0UmVsYXRl
ZFRhcmdldCk6IFVwc2VkIHRvIHVzZSBFdmVudFJlbGF0ZWROb2RlUmVzb2x2ZXIuCisKIDIwMTMt
MTAtMTEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRHJhbWF0
aWNhbGx5IHNpbXBsaWZ5IGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudENvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRDb250ZXh0LmgJKHJldmlzaW9uIDE1NzMyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudENvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtOTEsNiArOTEsMjEgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVMb2NhbEV2ZW50cyhFdmVudCYpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBpc1RvdWNoRXZlbnRDb250ZXh0KCkgY29uc3QgT1ZFUlJJREU7
CiAKKyAgICBlbnVtIFRvdWNoTGlzdFR5cGUgeyBUb3VjaGVzLCBUYXJnZXRUb3VjaGVzLCBDaGFu
Z2VkVG91Y2hlcywgfTsKKyAgICBUb3VjaExpc3QqIHRvdWNoTGlzdChUb3VjaExpc3RUeXBlIHR5
cGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSBUb3VjaGVz
OgorICAgICAgICAgICAgcmV0dXJuIG1fdG91Y2hlcy5nZXQoKTsKKyAgICAgICAgY2FzZSBUYXJn
ZXRUb3VjaGVzOgorICAgICAgICAgICAgcmV0dXJuIG1fdGFyZ2V0VG91Y2hlcy5nZXQoKTsKKyAg
ICAgICAgY2FzZSBDaGFuZ2VkVG91Y2hlczoKKyAgICAgICAgICAgIHJldHVybiBtX2NoYW5nZWRU
b3VjaGVzLmdldCgpOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICAgICBUb3VjaExpc3QqIHRvdWNoZXMo
KSB7IHJldHVybiBtX3RvdWNoZXMuZ2V0KCk7IH0KICAgICBUb3VjaExpc3QqIHRhcmdldFRvdWNo
ZXMoKSB7IHJldHVybiBtX3RhcmdldFRvdWNoZXMuZ2V0KCk7IH0KICAgICBUb3VjaExpc3QqIGNo
YW5nZWRUb3VjaGVzKCkgeyByZXR1cm4gbV9jaGFuZ2VkVG91Y2hlcy5nZXQoKTsgfQpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAJKHJldmlzaW9uIDE1NzMyOCkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDIsOSArMTAyLDU0IEBAIHB1YmxpYzoKICAgICBFdmVudENvbnRleHQqIGxhc3RDb250ZXh0
SWZFeGlzdHMoKSB7IHJldHVybiBtX3BhdGguaXNFbXB0eSgpID8gMCA6IG1fcGF0aC5sYXN0KCku
Z2V0KCk7IH0KIAogcHJpdmF0ZToKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIHZvaWQg
dXBkYXRlVG91Y2hMaXN0c0luRXZlbnRQYXRoKGNvbnN0IFRvdWNoTGlzdCosIFRvdWNoRXZlbnRD
b250ZXh0OjpUb3VjaExpc3RUeXBlKTsKKyNlbmRpZgorCiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVl
X3B0cjxFdmVudENvbnRleHQ+LCAzMj4gbV9wYXRoOwogfTsKIAorY2xhc3MgRXZlbnRSZWxhdGVk
Tm9kZVJlc29sdmVyIHsKK3B1YmxpYzoKKyAgICBFdmVudFJlbGF0ZWROb2RlUmVzb2x2ZXIoTm9k
ZSYgcmVsYXRlZE5vZGUpCisgICAgICAgIDogbV9yZWxhdGVkTm9kZShyZWxhdGVkTm9kZSkKKyAg
ICAgICAgLCBtX3JlbGF0ZWROb2RlVHJlZVNjb3BlKHJlbGF0ZWROb2RlLnRyZWVTY29wZSgpKQor
ICAgICAgICAsIG1fcmVsYXRlZE5vZGVJbkN1cnJlbnRUcmVlU2NvcGUobnVsbHB0cikKKyAgICAg
ICAgLCBtX2N1cnJlbnRUcmVlU2NvcGUobnVsbHB0cikKKyAgICB7CisgICAgfQorCisgICAgTm9k
ZSogbW92ZVRvUGFyZW50T3JTaGFkb3dIb3N0KE5vZGUmIG5ld1RhcmdldCkKKyAgICB7CisgICAg
ICAgIFRyZWVTY29wZSYgbmV3VHJlZVNjb3BlID0gbmV3VGFyZ2V0LnRyZWVTY29wZSgpOworICAg
ICAgICBpZiAoJm5ld1RyZWVTY29wZSA9PSBtX2N1cnJlbnRUcmVlU2NvcGUpCisgICAgICAgICAg
ICByZXR1cm4gbV9yZWxhdGVkTm9kZUluQ3VycmVudFRyZWVTY29wZTsKKworICAgICAgICBpZiAo
bV9jdXJyZW50VHJlZVNjb3BlKSB7CisgICAgICAgICAgICBBU1NFUlQobV9jdXJyZW50VHJlZVNj
b3BlLT5yb290Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSk7CisgICAgICAgICAgICBBU1NFUlQoJm5l
d1RhcmdldCA9PSB0b1NoYWRvd1Jvb3QobV9jdXJyZW50VHJlZVNjb3BlLT5yb290Tm9kZSgpKS0+
aG9zdEVsZW1lbnQoKSk7CisgICAgICAgICAgICBBU1NFUlQobV9jdXJyZW50VHJlZVNjb3BlLT5w
YXJlbnRUcmVlU2NvcGUoKSA9PSAmbmV3VHJlZVNjb3BlKTsKKyAgICAgICAgfQorCisgICAgICAg
IGlmIChtX3JlbGF0ZWROb2RlSW5DdXJyZW50VHJlZVNjb3BlKSB7IC8vIHJlbGF0ZWROb2RlIGlz
IHVuZGVyIHRoZSBjdXJyZW50IHRyZWUgc2NvcGUKKyAgICAgICAgICAgIEFTU0VSVChtX2N1cnJl
bnRUcmVlU2NvcGUpOworICAgICAgICAgICAgbV9yZWxhdGVkTm9kZUluQ3VycmVudFRyZWVTY29w
ZSA9ICZuZXdUYXJnZXQ7CisgICAgICAgIH0gZWxzZSBpZiAoJm5ld1RyZWVTY29wZSA9PSAmbV9y
ZWxhdGVkTm9kZVRyZWVTY29wZSkgLy8gcmVsYXRlZE5vZGUgaXMgaW4gdGhlIGN1cnJlbnQgdHJl
ZSBzY29wZTsKKyAgICAgICAgICAgIG1fcmVsYXRlZE5vZGVJbkN1cnJlbnRUcmVlU2NvcGUgPSAm
bV9yZWxhdGVkTm9kZTsKKyAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBoYXZlbid0IHJlYWNoZWQg
dGhlIHRyZWUgc2NvcGUgdGhhdCBjb250YWlucyByZWxhdGVkTm9kZSB5ZXQuCisKKyAgICAgICAg
bV9jdXJyZW50VHJlZVNjb3BlID0gJm5ld1RyZWVTY29wZTsKKworICAgICAgICByZXR1cm4gbV9y
ZWxhdGVkTm9kZUluQ3VycmVudFRyZWVTY29wZTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgTm9k
ZSYgbV9yZWxhdGVkTm9kZTsKKyAgICBjb25zdCBUcmVlU2NvcGUmIG1fcmVsYXRlZE5vZGVUcmVl
U2NvcGU7CisgICAgTm9kZSogbV9yZWxhdGVkTm9kZUluQ3VycmVudFRyZWVTY29wZTsKKyAgICBU
cmVlU2NvcGUqIG1fY3VycmVudFRyZWVTY29wZTsKK307CisKIGlubGluZSBFdmVudFRhcmdldCYg
ZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMoTm9kZSYgcmVmZXJlbmNlTm9kZSkKIHsK
ICAgICBpZiAocmVmZXJlbmNlTm9kZS5pc1BzZXVkb0VsZW1lbnQoKSkgewpAQCAtMzU5LDc2ICs0
MDQsMzAgQEAgRXZlbnRQYXRoOjpFdmVudFBhdGgoTm9kZSYgdGFyZ2V0Tm9kZSwgRQogICAgIH0K
IH0KIAotc3RhdGljIHNpemVfdCBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzKE5vZGUqIHJlbGF0ZWRO
b2RlLCBjb25zdCBFdmVudFBhdGgmIGV2ZW50UGF0aCwgVmVjdG9yPFJlZlB0cjxOb2RlPj4mIGFk
anVzdGVkTm9kZXMpCi17Ci0gICAgVHJlZVNjb3BlJiByZWxhdGVkTm9kZVRyZWVTY29wZSA9IHJl
bGF0ZWROb2RlLT50cmVlU2NvcGUoKTsKLQotICAgIFRyZWVTY29wZSogbGFzdFRyZWVTY29wZSA9
IDA7Ci0gICAgTm9kZSogcmVsYXRlZE5vZGVJbkN1cnJlbnRUcmVlU2NvcGUgPSAwOwotICAgIHNp
emVfdCBldmVudFBhdGhTaXplID0gZXZlbnRQYXRoLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGV2ZW50UGF0aFNpemU7IGkrKykgewotICAgICAgICBOb2RlKiBjdXJyZW50VGFy
Z2V0ID0gZXZlbnRQYXRoLmNvbnRleHRBdChpKS5ub2RlKCk7Ci0gICAgICAgIFRyZWVTY29wZSog
Y3VycmVudFRyZWVTY29wZSA9ICZjdXJyZW50VGFyZ2V0LT50cmVlU2NvcGUoKTsKLQotICAgICAg
ICAvLyBSZS11c2UgdGhlIHByZXZpb3VzIGFkanVzdGVkUmVsYXRlZFRhcmdldCBpZiB0cmVlU2Nv
cGUgZG9lcyBub3QgY2hhbmdlLiBKdXN0IGZvciB0aGUgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9u
LgotICAgICAgICBpZiAoY3VycmVudFRyZWVTY29wZSAhPSBsYXN0VHJlZVNjb3BlKSB7Ci0gICAg
ICAgICAgICBpZiAobGFzdFRyZWVTY29wZSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChsYXN0
VHJlZVNjb3BlLT5yb290Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSk7Ci0gICAgICAgICAgICAgICAg
QVNTRVJUKGN1cnJlbnRUYXJnZXQgPT0gdG9TaGFkb3dSb290KGxhc3RUcmVlU2NvcGUtPnJvb3RO
b2RlKCkpLT5ob3N0RWxlbWVudCgpKTsKLSAgICAgICAgICAgICAgICBBU1NFUlQobGFzdFRyZWVT
Y29wZS0+cGFyZW50VHJlZVNjb3BlKCkgPT0gY3VycmVudFRyZWVTY29wZSk7Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIGlmIChyZWxhdGVkTm9kZUluQ3VycmVudFRyZWVTY29wZSkgeyAv
LyByZWxhdGVkTm9kZSBpcyB1bmRlciB0aGUgbGFzdCB0cmVlIHNjb3BlCi0gICAgICAgICAgICAg
ICAgQVNTRVJUKGxhc3RUcmVlU2NvcGUpOwotICAgICAgICAgICAgICAgIHJlbGF0ZWROb2RlSW5D
dXJyZW50VHJlZVNjb3BlID0gY3VycmVudFRhcmdldDsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAo
Y3VycmVudFRyZWVTY29wZSA9PSAmcmVsYXRlZE5vZGVUcmVlU2NvcGUpIC8vIHJlbGF0ZWROb2Rl
IGlzIGluIHRoZSBjdXJyZW50IHRyZWUgc2NvcGU7Ci0gICAgICAgICAgICAgICAgcmVsYXRlZE5v
ZGVJbkN1cnJlbnRUcmVlU2NvcGUgPSByZWxhdGVkTm9kZTsKLSAgICAgICAgICAgIC8vIE90aGVy
d2lzZSwgd2UgaGF2ZW4ndCByZWFjaGVkIHRoZSB0cmVlIHNjb3BlIHRoYXQgY29udGFpbnMgcmVs
YXRlZE5vZGUgeWV0LgotCi0gICAgICAgICAgICBsYXN0VHJlZVNjb3BlID0gY3VycmVudFRyZWVT
Y29wZTsKLSAgICAgICAgfQotICAgICAgICBhZGp1c3RlZE5vZGVzLmFwcGVuZChyZWxhdGVkTm9k
ZUluQ3VycmVudFRyZWVTY29wZSk7Ci0gICAgfQotICAgIHJldHVybiBldmVudFBhdGhTaXplOwot
fQotCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLXN0YXRpYyB2b2lkIHVwZGF0ZVRvdWNoTGlz
dHNJbkV2ZW50UGF0aChWZWN0b3I8UmVmUHRyPFRvdWNoTGlzdD4+JiB0b3VjaExpc3RzSW5FdmVu
dFBhdGgsIGNvbnN0IFRvdWNoTGlzdCogdG91Y2hMaXN0LCBjb25zdCBFdmVudFBhdGgmIGV2ZW50
UGF0aCkKK3ZvaWQgRXZlbnRQYXRoOjp1cGRhdGVUb3VjaExpc3RzSW5FdmVudFBhdGgoY29uc3Qg
VG91Y2hMaXN0KiB0b3VjaExpc3QsIFRvdWNoRXZlbnRDb250ZXh0OjpUb3VjaExpc3RUeXBlIHRv
dWNoTGlzdFR5cGUpCiB7CiAgICAgaWYgKCF0b3VjaExpc3QpCiAgICAgICAgIHJldHVybjsKLSAg
ICBzaXplX3QgZXZlbnRQYXRoU2l6ZSA9IGV2ZW50UGF0aC5zaXplKCk7Ci0gICAgQVNTRVJUKHRv
dWNoTGlzdHNJbkV2ZW50UGF0aC5zaXplKCkgPT0gZXZlbnRQYXRoU2l6ZSk7CiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCB0b3VjaExpc3QtPmxlbmd0aCgpOyArK2kpIHsKICAgICAgICAgY29u
c3QgVG91Y2gmIHRvdWNoID0gKnRvdWNoTGlzdC0+aXRlbShpKTsKIAotICAgICAgICBWZWN0b3I8
UmVmUHRyPE5vZGU+PiBhZGp1c3RlZE5vZGVzOwotICAgICAgICBjYWxjdWxhdGVBZGp1c3RlZE5v
ZGVzKHRvdWNoLnRhcmdldCgpLT50b05vZGUoKSwgZXZlbnRQYXRoLCBhZGp1c3RlZE5vZGVzKTsK
LQotICAgICAgICBBU1NFUlQoYWRqdXN0ZWROb2Rlcy5zaXplKCkgPT0gZXZlbnRQYXRoU2l6ZSk7
Ci0gICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgZXZlbnRQYXRoU2l6ZTsgKytqKQotICAg
ICAgICAgICAgdG91Y2hMaXN0c0luRXZlbnRQYXRoW2pdLT5hcHBlbmQodG91Y2guY2xvbmVXaXRo
TmV3VGFyZ2V0KGFkanVzdGVkTm9kZXNbal0uZ2V0KCkpKTsKKyAgICAgICAgQVNTRVJUKHRvdWNo
LnRhcmdldCgpLT50b05vZGUoKSk7CisgICAgICAgIEV2ZW50UmVsYXRlZE5vZGVSZXNvbHZlciBy
ZXNvbHZlcigqdG91Y2gudGFyZ2V0KCktPnRvTm9kZSgpKTsKKyAgICAgICAgc2l6ZV90IGV2ZW50
UGF0aFNpemUgPSBtX3BhdGguc2l6ZSgpOworICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8
IGV2ZW50UGF0aFNpemU7ICsraikgeworICAgICAgICAgICAgRXZlbnRDb250ZXh0JiBjb250ZXh0
ID0gKm1fcGF0aFtpXTsKKyAgICAgICAgICAgIE5vZGUqIG5vZGVJbkN1cnJlbnRUcmVlU2NvcGUg
PSByZXNvbHZlci5tb3ZlVG9QYXJlbnRPclNoYWRvd0hvc3QoKmNvbnRleHQubm9kZSgpKTsKKyAg
ICAgICAgICAgIHRvVG91Y2hFdmVudENvbnRleHQoY29udGV4dCkudG91Y2hMaXN0KHRvdWNoTGlz
dFR5cGUpLT5hcHBlbmQodG91Y2guY2xvbmVXaXRoTmV3VGFyZ2V0KG5vZGVJbkN1cnJlbnRUcmVl
U2NvcGUpKTsKKyAgICAgICAgfQogICAgIH0KIH0KIAogdm9pZCBFdmVudFBhdGg6OnVwZGF0ZVRv
dWNoTGlzdHMoY29uc3QgVG91Y2hFdmVudCYgdG91Y2hFdmVudCkKIHsKLSAgICBzaXplX3QgZXZl
bnRQYXRoU2l6ZSA9IG1fcGF0aC5zaXplKCk7Ci0KLSAgICBWZWN0b3I8UmVmUHRyPFRvdWNoTGlz
dD4+IHRvdWNoZXNJbkV2ZW50UGF0aChldmVudFBhdGhTaXplKTsKLSAgICBWZWN0b3I8UmVmUHRy
PFRvdWNoTGlzdD4+IHRhcmdldFRvdWNoZXNJbkV2ZW50UGF0aChldmVudFBhdGhTaXplKTsKLSAg
ICBWZWN0b3I8UmVmUHRyPFRvdWNoTGlzdD4+IGNoYW5nZWRUb3VjaGVzSW5FdmVudFBhdGgoZXZl
bnRQYXRoU2l6ZSk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGV2ZW50UGF0aFNpemU7
ICsraSkgewotICAgICAgICBUb3VjaEV2ZW50Q29udGV4dCYgY29udGV4dCA9ICp0b1RvdWNoRXZl
bnRDb250ZXh0KG1fcGF0aFtpXS5nZXQoKSk7Ci0gICAgICAgIHRvdWNoZXNJbkV2ZW50UGF0aFtp
XSA9IGNvbnRleHQudG91Y2hlcygpOwotICAgICAgICB0YXJnZXRUb3VjaGVzSW5FdmVudFBhdGhb
aV0gPSBjb250ZXh0LnRhcmdldFRvdWNoZXMoKTsKLSAgICAgICAgY2hhbmdlZFRvdWNoZXNJbkV2
ZW50UGF0aFtpXSA9IGNvbnRleHQuY2hhbmdlZFRvdWNoZXMoKTsKLSAgICB9Ci0KLSAgICB1cGRh
dGVUb3VjaExpc3RzSW5FdmVudFBhdGgodG91Y2hlc0luRXZlbnRQYXRoLCB0b3VjaEV2ZW50LnRv
dWNoZXMoKSwgKnRoaXMpOwotICAgIHVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aCh0YXJnZXRU
b3VjaGVzSW5FdmVudFBhdGgsIHRvdWNoRXZlbnQudGFyZ2V0VG91Y2hlcygpLCAqdGhpcyk7Ci0g
ICAgdXBkYXRlVG91Y2hMaXN0c0luRXZlbnRQYXRoKGNoYW5nZWRUb3VjaGVzSW5FdmVudFBhdGgs
IHRvdWNoRXZlbnQuY2hhbmdlZFRvdWNoZXMoKSwgKnRoaXMpOworICAgIHVwZGF0ZVRvdWNoTGlz
dHNJbkV2ZW50UGF0aCh0b3VjaEV2ZW50LnRvdWNoZXMoKSwgVG91Y2hFdmVudENvbnRleHQ6OlRv
dWNoZXMpOworICAgIHVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aCh0b3VjaEV2ZW50LnRhcmdl
dFRvdWNoZXMoKSwgVG91Y2hFdmVudENvbnRleHQ6OlRhcmdldFRvdWNoZXMpOworICAgIHVwZGF0
ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aCh0b3VjaEV2ZW50LmNoYW5nZWRUb3VjaGVzKCksIFRvdWNo
RXZlbnRDb250ZXh0OjpDaGFuZ2VkVG91Y2hlcyk7CiB9CiAjZW5kaWYKIApAQCAtNDM3LDExICs0
MzYsMTIgQEAgdm9pZCBFdmVudFBhdGg6OnNldFJlbGF0ZWRUYXJnZXQoRXZlbnRUYQogICAgIE5v
ZGUqIHJlbGF0ZWROb2RlID0gcmVsYXRlZFRhcmdldC50b05vZGUoKTsKICAgICBpZiAoIXJlbGF0
ZWROb2RlKQogICAgICAgICByZXR1cm47Ci0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gYWRqdXN0
ZWROb2RlczsKLSAgICBtX3BhdGguc2hyaW5rKGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMocmVsYXRl
ZE5vZGUsICp0aGlzLCBhZGp1c3RlZE5vZGVzKSk7Ci0gICAgQVNTRVJUKGFkanVzdGVkTm9kZXMu
c2l6ZSgpIDw9IG1fcGF0aC5zaXplKCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYWRq
dXN0ZWROb2Rlcy5zaXplKCk7ICsraSkKLSAgICAgICAgdG9Nb3VzZU9yRm9jdXNFdmVudENvbnRl
eHQoKm1fcGF0aFtpXSkuc2V0UmVsYXRlZFRhcmdldChhZGp1c3RlZE5vZGVzW2ldKTsKKworICAg
IEV2ZW50UmVsYXRlZE5vZGVSZXNvbHZlciByZXNvbHZlcigqcmVsYXRlZE5vZGUpOworCisgICAg
c2l6ZV90IGV2ZW50UGF0aFNpemUgPSBtX3BhdGguc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgZXZlbnRQYXRoU2l6ZTsgaSsrKQorICAgICAgICB0b01vdXNlT3JGb2N1c0V2ZW50
Q29udGV4dCgqbV9wYXRoW2ldKS5zZXRSZWxhdGVkVGFyZ2V0KHJlc29sdmVyLm1vdmVUb1BhcmVu
dE9yU2hhZG93SG9zdCgqbV9wYXRoW2ldLT5ub2RlKCkpKTsKIH0KIAogYm9vbCBFdmVudFBhdGg6
Omhhc0V2ZW50TGlzdGVuZXJzKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKSBjb25zdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>