<?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>129867</bug_id>
          
          <creation_ts>2014-03-07 00:40:29 -0800</creation_ts>
          <short_desc>Cut and copy functions should be refactored as suggested in FIXME line</short_desc>
          <delta_ts>2014-03-28 19:27:21 -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>WebCore Misc.</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Lukasz Bialek">l.bialek</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>988061</commentid>
    <comment_count>0</comment_count>
    <who name="Lukasz Bialek">l.bialek</who>
    <bug_when>2014-03-07 00:40:29 -0800</bug_when>
    <thetext>Most of code in Cut and Copy functions in Editor.cpp is identical (or analogical). There is a FIXME line suggesting to refactor this part of the code to start sharing code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988063</commentid>
    <comment_count>1</comment_count>
      <attachid>226093</attachid>
    <who name="Lukasz Bialek">l.bialek</who>
    <bug_when>2014-03-07 00:47:20 -0800</bug_when>
    <thetext>Created attachment 226093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988081</commentid>
    <comment_count>2</comment_count>
      <attachid>226100</attachid>
    <who name="Lukasz Bialek">l.bialek</who>
    <bug_when>2014-03-07 02:11:18 -0800</bug_when>
    <thetext>Created attachment 226100
There was small error in first version. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988102</commentid>
    <comment_count>3</comment_count>
      <attachid>226109</attachid>
    <who name="Lukasz Bialek">l.bialek</who>
    <bug_when>2014-03-07 03:28:56 -0800</bug_when>
    <thetext>Created attachment 226109
Patch

copy() and cut() functions have to be kept (calling newly refactored function) to avoid changing function names in all ports (which is not a good idea...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990907</commentid>
    <comment_count>4</comment_count>
      <attachid>226109</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-15 17:38:14 -0700</bug_when>
    <thetext>Comment on attachment 226109
Patch

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

This patch looks OK, but I don’t want to say review+ because I don’t want to add a new enum and a new public function to Editor just to restructure the code internals. I’m going to say review-, but please don’t let that discourage you!

&gt; Source/WebCore/editing/Editor.cpp:1298
&gt; +    bool isDoneByDHTML = (action == CutAction) ? tryDHTMLCut() : tryDHTMLCopy();
&gt; +    if (isDoneByDHTML)
&gt;          return; // DHTML did the whole operation
&gt; -    if (!canCut()) {
&gt; +
&gt; +    bool canPerformAction = (action == CutAction) ? canCut() : canCopy();
&gt; +    if (!canPerformAction) {
&gt;          systemBeep();
&gt;          return;
&gt;      }

Not sure that putting this part of the function into shared code is worthwhile. I think cut and copy should just do these and then they could share a helper that does the rest.

&gt; Source/WebCore/editing/Editor.h:90
&gt; +enum EditorActionSpecifier { CutAction, CopyAction };

This enum should be private to the Editor class rather than at the top level. The other enums are at the namespace level for convenient use outside the class, but this one does not need to be used outside the class.

&gt; Source/WebCore/editing/Editor.h:130
&gt; +    void performCutOrCopy(EditorActionSpecifier);

This function should be private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995280</commentid>
    <comment_count>5</comment_count>
      <attachid>228033</attachid>
    <who name="Lukasz Bialek">l.bialek</who>
    <bug_when>2014-03-28 02:57:48 -0700</bug_when>
    <thetext>Created attachment 228033
Patch

All comments were very accurate and has been addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995284</commentid>
    <comment_count>6</comment_count>
    <who name="Lukasz Bialek">l.bialek</who>
    <bug_when>2014-03-28 03:15:14 -0700</bug_when>
    <thetext>&gt; I’m going to say review-, but please don’t let that discourage you!

It&apos;s not so easy to discourage me :) Especially when comments are good and accurate. Fixed and ready for next review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995541</commentid>
    <comment_count>7</comment_count>
      <attachid>228033</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-28 19:27:19 -0700</bug_when>
    <thetext>Comment on attachment 228033
Patch

Clearing flags on attachment: 228033

Committed r166445: &lt;http://trac.webkit.org/changeset/166445&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995542</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-28 19:27:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226093</attachid>
            <date>2014-03-07 00:47:20 -0800</date>
            <delta_ts>2014-03-07 02:11:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>readyEditPatch.patch</filename>
            <type>text/plain</type>
            <size>7307</size>
            <attacher name="Lukasz Bialek">l.bialek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5OTE5M2Q0Li5iYTE1ODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTQtMDMtMDcgIEx1a2FzeiBCaWFsZWsgIDxsLmJpYWxla0BzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBSZWZhY3RvciBjdXQgYW5kIGNvcHkgZnVuY3Rpb25zIGFzIHN1Z2dlc3RlZCBpbiBG
SVhNRSBsaW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjk4NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDdXQgYW5kIENvcHkgZnVuY3Rpb25zIGluIEVkaXRvci5jcHAgdXNlIGxvdHMgb2YgY29tbW9u
IGNvZGUuCisgICAgICAgIFRob3NlIGZ1bmN0aW9ucyBhcmUgbWVyZ2VkIGludG8gb25lIHRvIHNo
YXJlIGNvZGUsIHNldmVyYWwKKyAgICAgICAgYWRkaXRpb25hbCBjb25kaXRpb25zIGFyZSBhZGRl
ZCB0byBwcmVzZXJ2ZSBDdXQgYW5kIENvcHkKKyAgICAgICAgZnVuY3Rpb25hbGl0eS4KKworICAg
ICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGVy
Zm9ybUN1dE9yQ29weSk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBl
ZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUNvcHkp
OgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUN1dCk6CisgICAgICAgICogcGFnZS9Db250ZXh0
TWVudUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9s
bGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisKIDIwMTQtMDMtMDYgIEFuZHJlYXMgS2xp
bmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFz
T3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBvdmVyLXJldGFpbnMgTlNVUkxSZXF1ZXN0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGRiNjk3MWMuLjM3NzAwMjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKQEAgLTEyNzUsNTAgKzEyNzUsMzUgQEAgYm9vbCBFZGl0b3I6Omluc2Vy
dFBhcmFncmFwaFNlcGFyYXRvcigpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRWRpdG9y
OjpjdXQoKQordm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lm
aWVyIGFjdGlvbikKIHsKLSAgICBpZiAodHJ5REhUTUxDdXQoKSkKKyAgICBib29sIGlzRG9uZUJ5
REhUTUwgPSAoYWN0aW9uID09IEN1dEFjdGlvbikgPyB0cnlESFRNTEN1dCgpIDogdHJ5REhUTUxD
b3B5KCk7CisgICAgaWYgKGlzRG9uZUJ5REhUTUwpCiAgICAgICAgIHJldHVybjsgLy8gREhUTUwg
ZGlkIHRoZSB3aG9sZSBvcGVyYXRpb24KLSAgICBpZiAoIWNhbkN1dCgpKSB7CisKKyAgICBib29s
IGNhblBlcmZvcm1BY3Rpb24gPSAoYWN0aW9uID09IEN1dEFjdGlvbikgPyBjYW5DdXQoKSA6IGNh
bkNvcHkoKTsKKyAgICBpZiAoIWNhblBlcmZvcm1BY3Rpb24pIHsKICAgICAgICAgc3lzdGVtQmVl
cCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gRklYTUU6IFRoaXMgc2hvdWxk
IHNoYXJlIG1vcmUgY29kZSB3aXRoIHRoZSBjb3B5IGZ1bmN0aW9uOyB0aGVyZSBpcyBhIGxvdCBv
ZiBvdmVybGFwLgogICAgIFJlZlB0cjxSYW5nZT4gc2VsZWN0aW9uID0gc2VsZWN0ZWRSYW5nZSgp
OwogICAgIHdpbGxXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChzZWxlY3Rpb24pOwotICAgIGlm
IChzaG91bGREZWxldGVSYW5nZShzZWxlY3Rpb24uZ2V0KCkpKSB7CisgICAgaWYgKGFjdGlvbiA9
PSBDdXRBY3Rpb24pIHsKKyAgICAgICAgaWYgKCFzaG91bGREZWxldGVSYW5nZShzZWxlY3Rpb24u
Z2V0KCkpKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIHVwZGF0ZU1hcmtlcnNGb3JX
b3Jkc0FmZmVjdGVkQnlFZGl0aW5nKHRydWUpOwotICAgICAgICBpZiAoZW5jbG9zaW5nVGV4dEZv
cm1Db250cm9sKG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3RhcnQoKSkpCi0gICAg
ICAgICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVQbGFpblRl
eHQoc2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkKCksIGNhblNtYXJ0Q29weU9yRGVsZXRlKCkgPyBQ
YXN0ZWJvYXJkOjpDYW5TbWFydFJlcGxhY2UgOiBQYXN0ZWJvYXJkOjpDYW5ub3RTbWFydFJlcGxh
Y2UpOwotICAgICAgICBlbHNlIHsKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oRUZM
KQotICAgICAgICAgICAgd3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKlBhc3RlYm9hcmQ6OmNy
ZWF0ZUZvckNvcHlBbmRQYXN0ZSgpKTsKLSNlbHNlCi0gICAgICAgICAgICAvLyBGSVhNRTogQ29u
dmVydCBhbGwgb3RoZXIgcGxhdGZvcm1zIHRvIG1hdGNoIE1hYyBhbmQgZGVsZXRlIHRoaXMuCi0g
ICAgICAgICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVTZWxl
Y3Rpb24oKnNlbGVjdGlvbiwgY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgbV9mcmFtZSwgSW5jbHVk
ZUltYWdlQWx0VGV4dEZvckNsaXBib2FyZCk7Ci0jZW5kaWYKLSAgICAgICAgfQotICAgICAgICBk
aWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpOwotICAgICAgICBkZWxldGVTZWxlY3Rpb25X
aXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSk7CiAgICAgfQotfQogCi12b2lk
IEVkaXRvcjo6Y29weSgpCi17Ci0gICAgaWYgKHRyeURIVE1MQ29weSgpKQotICAgICAgICByZXR1
cm47IC8vIERIVE1MIGRpZCB0aGUgd2hvbGUgb3BlcmF0aW9uCi0gICAgaWYgKCFjYW5Db3B5KCkp
IHsKLSAgICAgICAgc3lzdGVtQmVlcCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGlm
IChlbmNsb3NpbmdUZXh0Rm9ybUNvbnRyb2wobV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24o
KS5zdGFydCgpKSkKKyAgICAgICAgUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkt
PndyaXRlUGxhaW5UZXh0KHNlbGVjdGVkVGV4dEZvckNsaXBib2FyZCgpLCBjYW5TbWFydENvcHlP
ckRlbGV0ZSgpID8gUGFzdGVib2FyZDo6Q2FuU21hcnRSZXBsYWNlIDogUGFzdGVib2FyZDo6Q2Fu
bm90U21hcnRSZXBsYWNlKTsKKyAgICBlbHNlIHsKKyAgICAgICAgSFRNTEltYWdlRWxlbWVudCog
aW1hZ2VFbGVtZW50ID0gbnVsbHB0cjsKKyAgICAgICAgaWYgKGFjdGlvbiA9PSBDb3B5QWN0aW9u
KQorICAgICAgICAgICAgaW1hZ2VFbGVtZW50ID0gaW1hZ2VFbGVtZW50RnJvbUltYWdlRG9jdW1l
bnQoZG9jdW1lbnQoKSk7CiAKLSAgICB3aWxsV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoc2Vs
ZWN0ZWRSYW5nZSgpKTsKLSAgICBpZiAoZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKG1fZnJhbWUu
c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3RhcnQoKSkpIHsKLSAgICAgICAgUGFzdGVib2FyZDo6
Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCktPndyaXRlUGxhaW5UZXh0KHNlbGVjdGVkVGV4dEZvckNs
aXBib2FyZCgpLAotICAgICAgICAgICAgY2FuU21hcnRDb3B5T3JEZWxldGUoKSA/IFBhc3RlYm9h
cmQ6OkNhblNtYXJ0UmVwbGFjZSA6IFBhc3RlYm9hcmQ6OkNhbm5vdFNtYXJ0UmVwbGFjZSk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlRWxlbWVudCA9
IGltYWdlRWxlbWVudEZyb21JbWFnZURvY3VtZW50KGRvY3VtZW50KCkpKSB7CisgICAgICAgIGlm
IChpbWFnZUVsZW1lbnQpIHsKICNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oRUZMKQog
ICAgICAgICAgICAgd3JpdGVJbWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9y
Q29weUFuZFBhc3RlKCksICppbWFnZUVsZW1lbnQsIGRvY3VtZW50KCkudXJsKCksIGRvY3VtZW50
KCkudGl0bGUoKSk7CiAjZWxzZQpAQCAtMTMyOSwxMiArMTMxNCwxNCBAQCB2b2lkIEVkaXRvcjo6
Y29weSgpCiAgICAgICAgICAgICB3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgqUGFzdGVib2Fy
ZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkpOwogI2Vsc2UKICAgICAgICAgICAgIC8vIEZJWE1F
OiBDb252ZXJ0IGFsbCBvdGhlciBwbGF0Zm9ybXMgdG8gbWF0Y2ggTWFjIGFuZCBkZWxldGUgdGhp
cy4KLSAgICAgICAgICAgIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpLT53cml0
ZVNlbGVjdGlvbigqc2VsZWN0ZWRSYW5nZSgpLCBjYW5TbWFydENvcHlPckRlbGV0ZSgpLCBtX2Zy
YW1lLCBJbmNsdWRlSW1hZ2VBbHRUZXh0Rm9yQ2xpcGJvYXJkKTsKKyAgICAgICAgICAgIFBhc3Rl
Ym9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpLT53cml0ZVNlbGVjdGlvbigqc2VsZWN0aW9u
KCksIGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIG1fZnJhbWUsIEluY2x1ZGVJbWFnZUFsdFRleHRG
b3JDbGlwYm9hcmQpOwogI2VuZGlmCiAgICAgICAgIH0KICAgICB9CiAKICAgICBkaWRXcml0ZVNl
bGVjdGlvblRvUGFzdGVib2FyZCgpOworICAgIGlmIChhY3Rpb24gPT0gQ3V0QWN0aW9uKQorICAg
ICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUo
KSk7CiB9CiAKIHZvaWQgRWRpdG9yOjpwYXN0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRl
eCBlNjQxN2E0Li4xMDZjMTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTg3LDYgKzg3
LDcgQEAgc3RydWN0IENvbXBvc2l0aW9uVW5kZXJsaW5lIHsKICAgICBib29sIHRoaWNrOwogfTsK
IAorZW51bSBFZGl0b3JBY3Rpb25TcGVjaWZpZXIgeyBDdXRBY3Rpb24sIENvcHlBY3Rpb24gfTsK
IGVudW0gRWRpdG9yQ29tbWFuZFNvdXJjZSB7IENvbW1hbmRGcm9tTWVudU9yS2V5QmluZGluZywg
Q29tbWFuZEZyb21ET00sIENvbW1hbmRGcm9tRE9NV2l0aFVzZXJJbnRlcmZhY2UgfTsKIGVudW0g
RWRpdG9yUGFyYWdyYXBoU2VwYXJhdG9yIHsgRWRpdG9yUGFyYWdyYXBoU2VwYXJhdG9ySXNEaXYs
IEVkaXRvclBhcmFncmFwaFNlcGFyYXRvcklzUCB9OwogCkBAIC0xMjAsMTIgKzEyMSwxMSBAQCBw
dWJsaWM6CiAgICAgYm9vbCBjYW5EZWxldGUoKSBjb25zdDsKICAgICBib29sIGNhblNtYXJ0Q29w
eU9yRGVsZXRlKCk7CiAKLSAgICB2b2lkIGN1dCgpOwotICAgIHZvaWQgY29weSgpOwogICAgIHZv
aWQgcGFzdGUoKTsKICAgICB2b2lkIHBhc3RlKFBhc3RlYm9hcmQmKTsKICAgICB2b2lkIHBhc3Rl
QXNQbGFpblRleHQoKTsKICAgICB2b2lkIHBlcmZvcm1EZWxldGUoKTsKKyAgICB2b2lkIHBlcmZv
cm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyKTsKIAogICAgIHZvaWQgY29weVVSTChj
b25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKICAgICB2b2lkIGNvcHlVUkwoY29uc3Qg
VVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgUGFzdGVib2FyZCYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggZGMxNDczNC4uYzFhZmQ3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC0yNzgsNyArMjc4LDcgQEAgc3Rh
dGljIGJvb2wgZXhlY3V0ZUJhY2tDb2xvcihGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29t
bWFuZFNvdXJjZSBzb3VyY2UsIGMKIAogc3RhdGljIGJvb2wgZXhlY3V0ZUNvcHkoRnJhbWUmIGZy
YW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAg
ZnJhbWUuZWRpdG9yKCkuY29weSgpOworICAgIGZyYW1lLmVkaXRvcigpLnBlcmZvcm1DdXRPckNv
cHkoQ29weUFjdGlvbik7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTI5Niw5ICsyOTYsOSBA
QCBzdGF0aWMgYm9vbCBleGVjdXRlQ3V0KEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21t
YW5kU291cmNlIHNvdXJjZSwgY29uc3QgUwogewogICAgIGlmIChzb3VyY2UgPT0gQ29tbWFuZEZy
b21NZW51T3JLZXlCaW5kaW5nKSB7CiAgICAgICAgIFVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9y
IHR5cGluZ0dlc3R1cmVJbmRpY2F0b3IoZnJhbWUpOwotICAgICAgICBmcmFtZS5lZGl0b3IoKS5j
dXQoKTsKKyAgICAgICAgZnJhbWUuZWRpdG9yKCkucGVyZm9ybUN1dE9yQ29weShDdXRBY3Rpb24p
OwogICAgIH0gZWxzZQotICAgICAgICBmcmFtZS5lZGl0b3IoKS5jdXQoKTsKKyAgICAgICAgZnJh
bWUuZWRpdG9yKCkucGVyZm9ybUN1dE9yQ29weShDdXRBY3Rpb24pOwogICAgIHJldHVybiB0cnVl
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAK
aW5kZXggNzAzNzNhYS4uZTgxNjcxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
b250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4
dE1lbnVDb250cm9sbGVyLmNwcApAQCAtMjgyLDcgKzI4Miw3IEBAIHZvaWQgQ29udGV4dE1lbnVD
b250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUl0ZW0qIGl0ZW0p
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHk6
Ci0gICAgICAgIGZyYW1lLT5lZGl0b3IoKS5jb3B5KCk7CisgICAgICAgIGZyYW1lLT5lZGl0b3Io
KS5wZXJmb3JtQ3V0T3JDb3B5KENvcHlBY3Rpb24pOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ0dvQmFjazoKICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBmcmFt
ZS0+cGFnZSgpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226100</attachid>
            <date>2014-03-07 02:11:18 -0800</date>
            <delta_ts>2014-03-07 03:28:56 -0800</delta_ts>
            <desc>There was small error in first version. Fixed.</desc>
            <filename>readyEditPatch.patch</filename>
            <type>text/plain</type>
            <size>7305</size>
            <attacher name="Lukasz Bialek">l.bialek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5OTE5M2Q0Li5iYTE1ODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTQtMDMtMDcgIEx1a2FzeiBCaWFsZWsgIDxsLmJpYWxla0BzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBSZWZhY3RvciBjdXQgYW5kIGNvcHkgZnVuY3Rpb25zIGFzIHN1Z2dlc3RlZCBpbiBG
SVhNRSBsaW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjk4NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDdXQgYW5kIENvcHkgZnVuY3Rpb25zIGluIEVkaXRvci5jcHAgdXNlIGxvdHMgb2YgY29tbW9u
IGNvZGUuCisgICAgICAgIFRob3NlIGZ1bmN0aW9ucyBhcmUgbWVyZ2VkIGludG8gb25lIHRvIHNo
YXJlIGNvZGUsIHNldmVyYWwKKyAgICAgICAgYWRkaXRpb25hbCBjb25kaXRpb25zIGFyZSBhZGRl
ZCB0byBwcmVzZXJ2ZSBDdXQgYW5kIENvcHkKKyAgICAgICAgZnVuY3Rpb25hbGl0eS4KKworICAg
ICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGVy
Zm9ybUN1dE9yQ29weSk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBl
ZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUNvcHkp
OgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUN1dCk6CisgICAgICAgICogcGFnZS9Db250ZXh0
TWVudUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9s
bGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisKIDIwMTQtMDMtMDYgIEFuZHJlYXMgS2xp
bmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYkNvcmVSZXNvdXJjZUhhbmRsZUFz
T3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBvdmVyLXJldGFpbnMgTlNVUkxSZXF1ZXN0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGRiNjk3MWMuLjdhNzdhNzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKQEAgLTEyNzUsNTAgKzEyNzUsMzUgQEAgYm9vbCBFZGl0b3I6Omluc2Vy
dFBhcmFncmFwaFNlcGFyYXRvcigpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRWRpdG9y
OjpjdXQoKQordm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lm
aWVyIGFjdGlvbikKIHsKLSAgICBpZiAodHJ5REhUTUxDdXQoKSkKKyAgICBib29sIGlzRG9uZUJ5
REhUTUwgPSAoYWN0aW9uID09IEN1dEFjdGlvbikgPyB0cnlESFRNTEN1dCgpIDogdHJ5REhUTUxD
b3B5KCk7CisgICAgaWYgKGlzRG9uZUJ5REhUTUwpCiAgICAgICAgIHJldHVybjsgLy8gREhUTUwg
ZGlkIHRoZSB3aG9sZSBvcGVyYXRpb24KLSAgICBpZiAoIWNhbkN1dCgpKSB7CisKKyAgICBib29s
IGNhblBlcmZvcm1BY3Rpb24gPSAoYWN0aW9uID09IEN1dEFjdGlvbikgPyBjYW5DdXQoKSA6IGNh
bkNvcHkoKTsKKyAgICBpZiAoIWNhblBlcmZvcm1BY3Rpb24pIHsKICAgICAgICAgc3lzdGVtQmVl
cCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gRklYTUU6IFRoaXMgc2hvdWxk
IHNoYXJlIG1vcmUgY29kZSB3aXRoIHRoZSBjb3B5IGZ1bmN0aW9uOyB0aGVyZSBpcyBhIGxvdCBv
ZiBvdmVybGFwLgogICAgIFJlZlB0cjxSYW5nZT4gc2VsZWN0aW9uID0gc2VsZWN0ZWRSYW5nZSgp
OwogICAgIHdpbGxXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChzZWxlY3Rpb24pOwotICAgIGlm
IChzaG91bGREZWxldGVSYW5nZShzZWxlY3Rpb24uZ2V0KCkpKSB7CisgICAgaWYgKGFjdGlvbiA9
PSBDdXRBY3Rpb24pIHsKKyAgICAgICAgaWYgKCFzaG91bGREZWxldGVSYW5nZShzZWxlY3Rpb24u
Z2V0KCkpKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIHVwZGF0ZU1hcmtlcnNGb3JX
b3Jkc0FmZmVjdGVkQnlFZGl0aW5nKHRydWUpOwotICAgICAgICBpZiAoZW5jbG9zaW5nVGV4dEZv
cm1Db250cm9sKG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3RhcnQoKSkpCi0gICAg
ICAgICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVQbGFpblRl
eHQoc2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkKCksIGNhblNtYXJ0Q29weU9yRGVsZXRlKCkgPyBQ
YXN0ZWJvYXJkOjpDYW5TbWFydFJlcGxhY2UgOiBQYXN0ZWJvYXJkOjpDYW5ub3RTbWFydFJlcGxh
Y2UpOwotICAgICAgICBlbHNlIHsKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oRUZM
KQotICAgICAgICAgICAgd3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKlBhc3RlYm9hcmQ6OmNy
ZWF0ZUZvckNvcHlBbmRQYXN0ZSgpKTsKLSNlbHNlCi0gICAgICAgICAgICAvLyBGSVhNRTogQ29u
dmVydCBhbGwgb3RoZXIgcGxhdGZvcm1zIHRvIG1hdGNoIE1hYyBhbmQgZGVsZXRlIHRoaXMuCi0g
ICAgICAgICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVTZWxl
Y3Rpb24oKnNlbGVjdGlvbiwgY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgbV9mcmFtZSwgSW5jbHVk
ZUltYWdlQWx0VGV4dEZvckNsaXBib2FyZCk7Ci0jZW5kaWYKLSAgICAgICAgfQotICAgICAgICBk
aWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpOwotICAgICAgICBkZWxldGVTZWxlY3Rpb25X
aXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSk7CiAgICAgfQotfQogCi12b2lk
IEVkaXRvcjo6Y29weSgpCi17Ci0gICAgaWYgKHRyeURIVE1MQ29weSgpKQotICAgICAgICByZXR1
cm47IC8vIERIVE1MIGRpZCB0aGUgd2hvbGUgb3BlcmF0aW9uCi0gICAgaWYgKCFjYW5Db3B5KCkp
IHsKLSAgICAgICAgc3lzdGVtQmVlcCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGlm
IChlbmNsb3NpbmdUZXh0Rm9ybUNvbnRyb2wobV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24o
KS5zdGFydCgpKSkKKyAgICAgICAgUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkt
PndyaXRlUGxhaW5UZXh0KHNlbGVjdGVkVGV4dEZvckNsaXBib2FyZCgpLCBjYW5TbWFydENvcHlP
ckRlbGV0ZSgpID8gUGFzdGVib2FyZDo6Q2FuU21hcnRSZXBsYWNlIDogUGFzdGVib2FyZDo6Q2Fu
bm90U21hcnRSZXBsYWNlKTsKKyAgICBlbHNlIHsKKyAgICAgICAgSFRNTEltYWdlRWxlbWVudCog
aW1hZ2VFbGVtZW50ID0gbnVsbHB0cjsKKyAgICAgICAgaWYgKGFjdGlvbiA9PSBDb3B5QWN0aW9u
KQorICAgICAgICAgICAgaW1hZ2VFbGVtZW50ID0gaW1hZ2VFbGVtZW50RnJvbUltYWdlRG9jdW1l
bnQoZG9jdW1lbnQoKSk7CiAKLSAgICB3aWxsV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoc2Vs
ZWN0ZWRSYW5nZSgpKTsKLSAgICBpZiAoZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKG1fZnJhbWUu
c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3RhcnQoKSkpIHsKLSAgICAgICAgUGFzdGVib2FyZDo6
Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCktPndyaXRlUGxhaW5UZXh0KHNlbGVjdGVkVGV4dEZvckNs
aXBib2FyZCgpLAotICAgICAgICAgICAgY2FuU21hcnRDb3B5T3JEZWxldGUoKSA/IFBhc3RlYm9h
cmQ6OkNhblNtYXJ0UmVwbGFjZSA6IFBhc3RlYm9hcmQ6OkNhbm5vdFNtYXJ0UmVwbGFjZSk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlRWxlbWVudCA9
IGltYWdlRWxlbWVudEZyb21JbWFnZURvY3VtZW50KGRvY3VtZW50KCkpKSB7CisgICAgICAgIGlm
IChpbWFnZUVsZW1lbnQpIHsKICNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oRUZMKQog
ICAgICAgICAgICAgd3JpdGVJbWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9y
Q29weUFuZFBhc3RlKCksICppbWFnZUVsZW1lbnQsIGRvY3VtZW50KCkudXJsKCksIGRvY3VtZW50
KCkudGl0bGUoKSk7CiAjZWxzZQpAQCAtMTMyOSwxMiArMTMxNCwxNCBAQCB2b2lkIEVkaXRvcjo6
Y29weSgpCiAgICAgICAgICAgICB3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgqUGFzdGVib2Fy
ZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkpOwogI2Vsc2UKICAgICAgICAgICAgIC8vIEZJWE1F
OiBDb252ZXJ0IGFsbCBvdGhlciBwbGF0Zm9ybXMgdG8gbWF0Y2ggTWFjIGFuZCBkZWxldGUgdGhp
cy4KLSAgICAgICAgICAgIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpLT53cml0
ZVNlbGVjdGlvbigqc2VsZWN0ZWRSYW5nZSgpLCBjYW5TbWFydENvcHlPckRlbGV0ZSgpLCBtX2Zy
YW1lLCBJbmNsdWRlSW1hZ2VBbHRUZXh0Rm9yQ2xpcGJvYXJkKTsKKyAgICAgICAgICAgIFBhc3Rl
Ym9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpLT53cml0ZVNlbGVjdGlvbigqc2VsZWN0aW9u
LCBjYW5TbWFydENvcHlPckRlbGV0ZSgpLCBtX2ZyYW1lLCBJbmNsdWRlSW1hZ2VBbHRUZXh0Rm9y
Q2xpcGJvYXJkKTsKICNlbmRpZgogICAgICAgICB9CiAgICAgfQogCiAgICAgZGlkV3JpdGVTZWxl
Y3Rpb25Ub1Bhc3RlYm9hcmQoKTsKKyAgICBpZiAoYWN0aW9uID09IEN1dEFjdGlvbikKKyAgICAg
ICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCkp
OwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXgg
ZTY0MTdhNC4uMTA2YzE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC04Nyw2ICs4Nyw3
IEBAIHN0cnVjdCBDb21wb3NpdGlvblVuZGVybGluZSB7CiAgICAgYm9vbCB0aGljazsKIH07CiAK
K2VudW0gRWRpdG9yQWN0aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiBl
bnVtIEVkaXRvckNvbW1hbmRTb3VyY2UgeyBDb21tYW5kRnJvbU1lbnVPcktleUJpbmRpbmcsIENv
bW1hbmRGcm9tRE9NLCBDb21tYW5kRnJvbURPTVdpdGhVc2VySW50ZXJmYWNlIH07CiBlbnVtIEVk
aXRvclBhcmFncmFwaFNlcGFyYXRvciB7IEVkaXRvclBhcmFncmFwaFNlcGFyYXRvcklzRGl2LCBF
ZGl0b3JQYXJhZ3JhcGhTZXBhcmF0b3JJc1AgfTsKIApAQCAtMTIwLDEyICsxMjEsMTEgQEAgcHVi
bGljOgogICAgIGJvb2wgY2FuRGVsZXRlKCkgY29uc3Q7CiAgICAgYm9vbCBjYW5TbWFydENvcHlP
ckRlbGV0ZSgpOwogCi0gICAgdm9pZCBjdXQoKTsKLSAgICB2b2lkIGNvcHkoKTsKICAgICB2b2lk
IHBhc3RlKCk7CiAgICAgdm9pZCBwYXN0ZShQYXN0ZWJvYXJkJik7CiAgICAgdm9pZCBwYXN0ZUFz
UGxhaW5UZXh0KCk7CiAgICAgdm9pZCBwZXJmb3JtRGVsZXRlKCk7CisgICAgdm9pZCBwZXJmb3Jt
Q3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7CiAKICAgICB2b2lkIGNvcHlVUkwoY29u
c3QgVVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgdm9pZCBjb3B5VVJMKGNvbnN0IFVS
TCYsIGNvbnN0IFN0cmluZyYgdGl0bGUsIFBhc3RlYm9hcmQmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvckNvbW1hbmQuY3BwCmluZGV4IGRjMTQ3MzQuLmMxYWZkNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcApAQCAtMjc4LDcgKzI3OCw3IEBAIHN0YXRp
YyBib29sIGV4ZWN1dGVCYWNrQ29sb3IoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1h
bmRTb3VyY2Ugc291cmNlLCBjCiAKIHN0YXRpYyBib29sIGV4ZWN1dGVDb3B5KEZyYW1lJiBmcmFt
ZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIGZy
YW1lLmVkaXRvcigpLmNvcHkoKTsKKyAgICBmcmFtZS5lZGl0b3IoKS5wZXJmb3JtQ3V0T3JDb3B5
KENvcHlBY3Rpb24pOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0yOTYsOSArMjk2LDkgQEAg
c3RhdGljIGJvb2wgZXhlY3V0ZUN1dChGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFu
ZFNvdXJjZSBzb3VyY2UsIGNvbnN0IFMKIHsKICAgICBpZiAoc291cmNlID09IENvbW1hbmRGcm9t
TWVudU9yS2V5QmluZGluZykgewogICAgICAgICBVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvciB0
eXBpbmdHZXN0dXJlSW5kaWNhdG9yKGZyYW1lKTsKLSAgICAgICAgZnJhbWUuZWRpdG9yKCkuY3V0
KCk7CisgICAgICAgIGZyYW1lLmVkaXRvcigpLnBlcmZvcm1DdXRPckNvcHkoQ3V0QWN0aW9uKTsK
ICAgICB9IGVsc2UKLSAgICAgICAgZnJhbWUuZWRpdG9yKCkuY3V0KCk7CisgICAgICAgIGZyYW1l
LmVkaXRvcigpLnBlcmZvcm1DdXRPckNvcHkoQ3V0QWN0aW9uKTsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmlu
ZGV4IDcwMzczYWEuLmU4MTY3MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRN
ZW51Q29udHJvbGxlci5jcHAKQEAgLTI4Miw3ICsyODIsNyBAQCB2b2lkIENvbnRleHRNZW51Q29u
dHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVtKiBpdGVtKQog
ICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5Ogot
ICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuY29weSgpOworICAgICAgICBmcmFtZS0+ZWRpdG9yKCku
cGVyZm9ybUN1dE9yQ29weShDb3B5QWN0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
b250ZXh0TWVudUl0ZW1UYWdHb0JhY2s6CiAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUt
PnBhZ2UoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226109</attachid>
            <date>2014-03-07 03:28:56 -0800</date>
            <delta_ts>2014-03-28 02:57:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>readyEditPatch.patch</filename>
            <type>text/plain</type>
            <size>5621</size>
            <attacher name="Lukasz Bialek">l.bialek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmYmRkZmJiLi42ZmVjZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTQtMDMtMDcgIEx1a2FzeiBCaWFsZWsgIDxsLmJpYWxla0BzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBSZWZhY3RvciBjdXQgYW5kIGNvcHkgZnVuY3Rpb25zIGFzIHN1Z2dlc3RlZCBpbiBG
SVhNRSBsaW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjk4NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDdXQgYW5kIENvcHkgZnVuY3Rpb25zIGluIEVkaXRvci5jcHAgdXNlIGxvdHMgb2YgY29tbW9u
IGNvZGUuCisgICAgICAgIFRob3NlIGZ1bmN0aW9ucyBhcmUgbWVyZ2VkIGludG8gb25lIHRvIHNo
YXJlIGNvZGUsIHNldmVyYWwKKyAgICAgICAgYWRkaXRpb25hbCBjb25kaXRpb25zIGFyZSBhZGRl
ZCB0byBwcmVzZXJ2ZSBDdXQgYW5kIENvcHkKKyAgICAgICAgZnVuY3Rpb25hbGl0eS4KKworICAg
ICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y3V0
KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y29weSk6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisK
IDIwMTQtMDMtMDcgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNhbXN1bmcuY29tPgogCiAg
ICAgICAgIE9wdGltaXplIGNvbGxlY3Rpb25MYXN0KCkgYW5kIGNvbGxlY3Rpb25UcmF2ZXJzZUJh
Y2t3YXJkKCkgaW4gTGl2ZU5vZGVMaXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXgg
ZGI2OTcxYy4uNTNiOTI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTI3Nyw0
OCArMTI3Nyw0MyBAQCBib29sIEVkaXRvcjo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKCkKIAog
dm9pZCBFZGl0b3I6OmN1dCgpCiB7Ci0gICAgaWYgKHRyeURIVE1MQ3V0KCkpCisgICAgcGVyZm9y
bUN1dE9yQ29weShDdXRBY3Rpb24pOworfQorCit2b2lkIEVkaXRvcjo6Y29weSgpCit7CisgICAg
cGVyZm9ybUN1dE9yQ29weShDb3B5QWN0aW9uKTsKK30KKwordm9pZCBFZGl0b3I6OnBlcmZvcm1D
dXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKK3sKKyAgICBib29sIGlzRG9u
ZUJ5REhUTUwgPSAoYWN0aW9uID09IEN1dEFjdGlvbikgPyB0cnlESFRNTEN1dCgpIDogdHJ5REhU
TUxDb3B5KCk7CisgICAgaWYgKGlzRG9uZUJ5REhUTUwpCiAgICAgICAgIHJldHVybjsgLy8gREhU
TUwgZGlkIHRoZSB3aG9sZSBvcGVyYXRpb24KLSAgICBpZiAoIWNhbkN1dCgpKSB7CisKKyAgICBi
b29sIGNhblBlcmZvcm1BY3Rpb24gPSAoYWN0aW9uID09IEN1dEFjdGlvbikgPyBjYW5DdXQoKSA6
IGNhbkNvcHkoKTsKKyAgICBpZiAoIWNhblBlcmZvcm1BY3Rpb24pIHsKICAgICAgICAgc3lzdGVt
QmVlcCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIHNoYXJlIG1vcmUgY29kZSB3aXRoIHRoZSBjb3B5IGZ1bmN0aW9uOyB0aGVyZSBpcyBhIGxv
dCBvZiBvdmVybGFwLgogICAgIFJlZlB0cjxSYW5nZT4gc2VsZWN0aW9uID0gc2VsZWN0ZWRSYW5n
ZSgpOwogICAgIHdpbGxXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChzZWxlY3Rpb24pOwotICAg
IGlmIChzaG91bGREZWxldGVSYW5nZShzZWxlY3Rpb24uZ2V0KCkpKSB7CisgICAgaWYgKGFjdGlv
biA9PSBDdXRBY3Rpb24pIHsKKyAgICAgICAgaWYgKCFzaG91bGREZWxldGVSYW5nZShzZWxlY3Rp
b24uZ2V0KCkpKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIHVwZGF0ZU1hcmtlcnNG
b3JXb3Jkc0FmZmVjdGVkQnlFZGl0aW5nKHRydWUpOwotICAgICAgICBpZiAoZW5jbG9zaW5nVGV4
dEZvcm1Db250cm9sKG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3RhcnQoKSkpCi0g
ICAgICAgICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVQbGFp
blRleHQoc2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkKCksIGNhblNtYXJ0Q29weU9yRGVsZXRlKCkg
PyBQYXN0ZWJvYXJkOjpDYW5TbWFydFJlcGxhY2UgOiBQYXN0ZWJvYXJkOjpDYW5ub3RTbWFydFJl
cGxhY2UpOwotICAgICAgICBlbHNlIHsKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0o
RUZMKQotICAgICAgICAgICAgd3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKlBhc3RlYm9hcmQ6
OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpKTsKLSNlbHNlCi0gICAgICAgICAgICAvLyBGSVhNRTog
Q29udmVydCBhbGwgb3RoZXIgcGxhdGZvcm1zIHRvIG1hdGNoIE1hYyBhbmQgZGVsZXRlIHRoaXMu
Ci0gICAgICAgICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVT
ZWxlY3Rpb24oKnNlbGVjdGlvbiwgY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgbV9mcmFtZSwgSW5j
bHVkZUltYWdlQWx0VGV4dEZvckNsaXBib2FyZCk7Ci0jZW5kaWYKLSAgICAgICAgfQotICAgICAg
ICBkaWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpOwotICAgICAgICBkZWxldGVTZWxlY3Rp
b25XaXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSk7CiAgICAgfQotfQogCi12
b2lkIEVkaXRvcjo6Y29weSgpCi17Ci0gICAgaWYgKHRyeURIVE1MQ29weSgpKQotICAgICAgICBy
ZXR1cm47IC8vIERIVE1MIGRpZCB0aGUgd2hvbGUgb3BlcmF0aW9uCi0gICAgaWYgKCFjYW5Db3B5
KCkpIHsKLSAgICAgICAgc3lzdGVtQmVlcCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAg
IGlmIChlbmNsb3NpbmdUZXh0Rm9ybUNvbnRyb2wobV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rp
b24oKS5zdGFydCgpKSkKKyAgICAgICAgUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3Rl
KCktPndyaXRlUGxhaW5UZXh0KHNlbGVjdGVkVGV4dEZvckNsaXBib2FyZCgpLCBjYW5TbWFydENv
cHlPckRlbGV0ZSgpID8gUGFzdGVib2FyZDo6Q2FuU21hcnRSZXBsYWNlIDogUGFzdGVib2FyZDo6
Q2Fubm90U21hcnRSZXBsYWNlKTsKKyAgICBlbHNlIHsKKyAgICAgICAgSFRNTEltYWdlRWxlbWVu
dCogaW1hZ2VFbGVtZW50ID0gbnVsbHB0cjsKKyAgICAgICAgaWYgKGFjdGlvbiA9PSBDb3B5QWN0
aW9uKQorICAgICAgICAgICAgaW1hZ2VFbGVtZW50ID0gaW1hZ2VFbGVtZW50RnJvbUltYWdlRG9j
dW1lbnQoZG9jdW1lbnQoKSk7CiAKLSAgICB3aWxsV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQo
c2VsZWN0ZWRSYW5nZSgpKTsKLSAgICBpZiAoZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKG1fZnJh
bWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3RhcnQoKSkpIHsKLSAgICAgICAgUGFzdGVib2Fy
ZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCktPndyaXRlUGxhaW5UZXh0KHNlbGVjdGVkVGV4dEZv
ckNsaXBib2FyZCgpLAotICAgICAgICAgICAgY2FuU21hcnRDb3B5T3JEZWxldGUoKSA/IFBhc3Rl
Ym9hcmQ6OkNhblNtYXJ0UmVwbGFjZSA6IFBhc3RlYm9hcmQ6OkNhbm5vdFNtYXJ0UmVwbGFjZSk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlRWxlbWVu
dCA9IGltYWdlRWxlbWVudEZyb21JbWFnZURvY3VtZW50KGRvY3VtZW50KCkpKSB7CisgICAgICAg
IGlmIChpbWFnZUVsZW1lbnQpIHsKICNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oRUZM
KQogICAgICAgICAgICAgd3JpdGVJbWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRl
Rm9yQ29weUFuZFBhc3RlKCksICppbWFnZUVsZW1lbnQsIGRvY3VtZW50KCkudXJsKCksIGRvY3Vt
ZW50KCkudGl0bGUoKSk7CiAjZWxzZQpAQCAtMTMyOSwxMiArMTMyNCwxNCBAQCB2b2lkIEVkaXRv
cjo6Y29weSgpCiAgICAgICAgICAgICB3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgqUGFzdGVi
b2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkpOwogI2Vsc2UKICAgICAgICAgICAgIC8vIEZJ
WE1FOiBDb252ZXJ0IGFsbCBvdGhlciBwbGF0Zm9ybXMgdG8gbWF0Y2ggTWFjIGFuZCBkZWxldGUg
dGhpcy4KLSAgICAgICAgICAgIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpLT53
cml0ZVNlbGVjdGlvbigqc2VsZWN0ZWRSYW5nZSgpLCBjYW5TbWFydENvcHlPckRlbGV0ZSgpLCBt
X2ZyYW1lLCBJbmNsdWRlSW1hZ2VBbHRUZXh0Rm9yQ2xpcGJvYXJkKTsKKyAgICAgICAgICAgIFBh
c3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpLT53cml0ZVNlbGVjdGlvbigqc2VsZWN0
aW9uLCBjYW5TbWFydENvcHlPckRlbGV0ZSgpLCBtX2ZyYW1lLCBJbmNsdWRlSW1hZ2VBbHRUZXh0
Rm9yQ2xpcGJvYXJkKTsKICNlbmRpZgogICAgICAgICB9CiAgICAgfQogCiAgICAgZGlkV3JpdGVT
ZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKTsKKyAgICBpZiAoYWN0aW9uID09IEN1dEFjdGlvbikKKyAg
ICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRl
KCkpOwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5k
ZXggZTY0MTdhNC4uMDNkN2VhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC04Nyw2ICs4
Nyw3IEBAIHN0cnVjdCBDb21wb3NpdGlvblVuZGVybGluZSB7CiAgICAgYm9vbCB0aGljazsKIH07
CiAKK2VudW0gRWRpdG9yQWN0aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07
CiBlbnVtIEVkaXRvckNvbW1hbmRTb3VyY2UgeyBDb21tYW5kRnJvbU1lbnVPcktleUJpbmRpbmcs
IENvbW1hbmRGcm9tRE9NLCBDb21tYW5kRnJvbURPTVdpdGhVc2VySW50ZXJmYWNlIH07CiBlbnVt
IEVkaXRvclBhcmFncmFwaFNlcGFyYXRvciB7IEVkaXRvclBhcmFncmFwaFNlcGFyYXRvcklzRGl2
LCBFZGl0b3JQYXJhZ3JhcGhTZXBhcmF0b3JJc1AgfTsKIApAQCAtMTI2LDYgKzEyNyw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHBhc3RlKFBhc3RlYm9hcmQmKTsKICAgICB2b2lkIHBhc3RlQXNQbGFp
blRleHQoKTsKICAgICB2b2lkIHBlcmZvcm1EZWxldGUoKTsKKyAgICB2b2lkIHBlcmZvcm1DdXRP
ckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyKTsKIAogICAgIHZvaWQgY29weVVSTChjb25zdCBV
UkwmLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKICAgICB2b2lkIGNvcHlVUkwoY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSwgUGFzdGVib2FyZCYpOwo=
</data>
<flag name="review"
          id="250303"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228033</attachid>
            <date>2014-03-28 02:57:48 -0700</date>
            <delta_ts>2014-03-28 19:27:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patchCutCopy.patch</filename>
            <type>text/plain</type>
            <size>5077</size>
            <attacher name="Lukasz Bialek">l.bialek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiMmQxZGYzLi43ODM1NGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTQtMDMtMjggIEx1a2FzeiBCaWFsZWsgIDxsLmJpYWxla0BzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBSZWZhY3RvciBjdXQgYW5kIGNvcHkgZnVuY3Rpb25zIGFzIHN1Z2dlc3RlZCBpbiBG
SVhNRSBsaW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjk4NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDdXQgYW5kIENvcHkgZnVuY3Rpb25zIGluIEVkaXRvci5jcHAgdXNlIGxvdHMgb2YgY29tbW9u
IGNvZGUuCisgICAgICAgIFRob3NlIGZ1bmN0aW9ucyBhcmUgbWVyZ2VkIGludG8gb25lIHRvIHNo
YXJlIGNvZGUsIHNldmVyYWwKKyAgICAgICAgYWRkaXRpb25hbCBjb25kaXRpb25zIGFyZSBhZGRl
ZCB0byBwcmVzZXJ2ZSBDdXQgYW5kIENvcHkKKyAgICAgICAgZnVuY3Rpb25hbGl0eS4KKworICAg
ICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y3V0
KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y29weSk6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisK
IDIwMTQtMDMtMjcgIEphbWVzIENyYWlnICA8amNyYWlnQGFwcGxlLmNvbT4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBBWEk6IGV4cG9zZSBzZWxlY3RlZENoaWxkTm9kZUlkcyBvZiBsaXN0IGJv
eGVzLCB0cmVlIGNvbnRyb2xzLCBldGMuLCBhbmQgcmVjb25jaWxlIFVJIHdpdGggY2hpbGROb2Rl
SWRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggYTA1ZTRhMC4uODM0NGEwMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTI4NCwyNCArMTI4NCw3IEBAIHZvaWQgRWRp
dG9yOjpjdXQoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gRklYTUU6IFRoaXMg
c2hvdWxkIHNoYXJlIG1vcmUgY29kZSB3aXRoIHRoZSBjb3B5IGZ1bmN0aW9uOyB0aGVyZSBpcyBh
IGxvdCBvZiBvdmVybGFwLgotICAgIFJlZlB0cjxSYW5nZT4gc2VsZWN0aW9uID0gc2VsZWN0ZWRS
YW5nZSgpOwotICAgIHdpbGxXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChzZWxlY3Rpb24pOwot
ICAgIGlmIChzaG91bGREZWxldGVSYW5nZShzZWxlY3Rpb24uZ2V0KCkpKSB7Ci0gICAgICAgIHVw
ZGF0ZU1hcmtlcnNGb3JXb3Jkc0FmZmVjdGVkQnlFZGl0aW5nKHRydWUpOwotICAgICAgICBpZiAo
ZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCku
c3RhcnQoKSkpCi0gICAgICAgICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUo
KS0+d3JpdGVQbGFpblRleHQoc2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkKCksIGNhblNtYXJ0Q29w
eU9yRGVsZXRlKCkgPyBQYXN0ZWJvYXJkOjpDYW5TbWFydFJlcGxhY2UgOiBQYXN0ZWJvYXJkOjpD
YW5ub3RTbWFydFJlcGxhY2UpOwotICAgICAgICBlbHNlIHsKLSNpZiBQTEFURk9STShDT0NPQSkg
fHwgUExBVEZPUk0oRUZMKQotICAgICAgICAgICAgd3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQo
KlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpKTsKLSNlbHNlCi0gICAgICAgICAg
ICAvLyBGSVhNRTogQ29udmVydCBhbGwgb3RoZXIgcGxhdGZvcm1zIHRvIG1hdGNoIE1hYyBhbmQg
ZGVsZXRlIHRoaXMuCi0gICAgICAgICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFz
dGUoKS0+d3JpdGVTZWxlY3Rpb24oKnNlbGVjdGlvbiwgY2FuU21hcnRDb3B5T3JEZWxldGUoKSwg
bV9mcmFtZSwgSW5jbHVkZUltYWdlQWx0VGV4dEZvckNsaXBib2FyZCk7Ci0jZW5kaWYKLSAgICAg
ICAgfQotICAgICAgICBkaWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpOwotICAgICAgICBk
ZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSk7Ci0g
ICAgfQorICAgIHBlcmZvcm1DdXRPckNvcHkoQ3V0QWN0aW9uKTsKIH0KIAogdm9pZCBFZGl0b3I6
OmNvcHkoKQpAQCAtMTMxMywxMiArMTI5NiwyOCBAQCB2b2lkIEVkaXRvcjo6Y29weSgpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICB3aWxsV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQo
c2VsZWN0ZWRSYW5nZSgpKTsKLSAgICBpZiAoZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKG1fZnJh
bWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3RhcnQoKSkpIHsKLSAgICAgICAgUGFzdGVib2Fy
ZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCktPndyaXRlUGxhaW5UZXh0KHNlbGVjdGVkVGV4dEZv
ckNsaXBib2FyZCgpLAotICAgICAgICAgICAgY2FuU21hcnRDb3B5T3JEZWxldGUoKSA/IFBhc3Rl
Ym9hcmQ6OkNhblNtYXJ0UmVwbGFjZSA6IFBhc3RlYm9hcmQ6OkNhbm5vdFNtYXJ0UmVwbGFjZSk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlRWxlbWVu
dCA9IGltYWdlRWxlbWVudEZyb21JbWFnZURvY3VtZW50KGRvY3VtZW50KCkpKSB7CisgICAgcGVy
Zm9ybUN1dE9yQ29weShDb3B5QWN0aW9uKTsKK30KKwordm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRP
ckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKK3sKKyAgICBSZWZQdHI8UmFuZ2U+
IHNlbGVjdGlvbiA9IHNlbGVjdGVkUmFuZ2UoKTsKKyAgICB3aWxsV3JpdGVTZWxlY3Rpb25Ub1Bh
c3RlYm9hcmQoc2VsZWN0aW9uKTsKKyAgICBpZiAoYWN0aW9uID09IEN1dEFjdGlvbikgeworICAg
ICAgICBpZiAoIXNob3VsZERlbGV0ZVJhbmdlKHNlbGVjdGlvbi5nZXQoKSkpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgdXBkYXRlTWFya2Vyc0ZvcldvcmRzQWZmZWN0ZWRCeUVkaXRp
bmcodHJ1ZSk7CisgICAgfQorCisgICAgaWYgKGVuY2xvc2luZ1RleHRGb3JtQ29udHJvbChtX2Zy
YW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLnN0YXJ0KCkpKQorICAgICAgICBQYXN0ZWJvYXJk
OjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVQbGFpblRleHQoc2VsZWN0ZWRUZXh0Rm9y
Q2xpcGJvYXJkKCksIGNhblNtYXJ0Q29weU9yRGVsZXRlKCkgPyBQYXN0ZWJvYXJkOjpDYW5TbWFy
dFJlcGxhY2UgOiBQYXN0ZWJvYXJkOjpDYW5ub3RTbWFydFJlcGxhY2UpOworICAgIGVsc2Ugewor
ICAgICAgICBIVE1MSW1hZ2VFbGVtZW50KiBpbWFnZUVsZW1lbnQgPSBudWxscHRyOworICAgICAg
ICBpZiAoYWN0aW9uID09IENvcHlBY3Rpb24pCisgICAgICAgICAgICBpbWFnZUVsZW1lbnQgPSBp
bWFnZUVsZW1lbnRGcm9tSW1hZ2VEb2N1bWVudChkb2N1bWVudCgpKTsKKworICAgICAgICBpZiAo
aW1hZ2VFbGVtZW50KSB7CiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEVGTCkKICAg
ICAgICAgICAgIHdyaXRlSW1hZ2VUb1Bhc3RlYm9hcmQoKlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNv
cHlBbmRQYXN0ZSgpLCAqaW1hZ2VFbGVtZW50LCBkb2N1bWVudCgpLnVybCgpLCBkb2N1bWVudCgp
LnRpdGxlKCkpOwogI2Vsc2UKQEAgLTEzMjksMTIgKzEzMjgsMTQgQEAgdm9pZCBFZGl0b3I6OmNv
cHkoKQogICAgICAgICAgICAgd3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKlBhc3RlYm9hcmQ6
OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpKTsKICNlbHNlCiAgICAgICAgICAgICAvLyBGSVhNRTog
Q29udmVydCBhbGwgb3RoZXIgcGxhdGZvcm1zIHRvIG1hdGNoIE1hYyBhbmQgZGVsZXRlIHRoaXMu
Ci0gICAgICAgICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVT
ZWxlY3Rpb24oKnNlbGVjdGVkUmFuZ2UoKSwgY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgbV9mcmFt
ZSwgSW5jbHVkZUltYWdlQWx0VGV4dEZvckNsaXBib2FyZCk7CisgICAgICAgICAgICBQYXN0ZWJv
YXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVTZWxlY3Rpb24oKnNlbGVjdGlvbiwg
Y2FuU21hcnRDb3B5T3JEZWxldGUoKSwgbV9mcmFtZSwgSW5jbHVkZUltYWdlQWx0VGV4dEZvckNs
aXBib2FyZCk7CiAjZW5kaWYKICAgICAgICAgfQogICAgIH0KIAogICAgIGRpZFdyaXRlU2VsZWN0
aW9uVG9QYXN0ZWJvYXJkKCk7CisgICAgaWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24pCisgICAgICAg
IGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsK
IH0KIAogdm9pZCBFZGl0b3I6OnBhc3RlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IGRh
NDNhYmIuLjRjOWVlMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNDY0LDYgKzQ2NCw5
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxl
Y3Rpb25PcHRpb25zKTsKIAorICAgIGVudW0gRWRpdG9yQWN0aW9uU3BlY2lmaWVyIHsgQ3V0QWN0
aW9uLCBDb3B5QWN0aW9uIH07CisgICAgdm9pZCBwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlv
blNwZWNpZmllcik7CisKICAgICB2b2lkIGVkaXRvclVJVXBkYXRlVGltZXJGaXJlZChUaW1lcjxF
ZGl0b3I+Jik7CiAKICAgICBOb2RlKiBmaW5kRXZlbnRUYXJnZXRGcm9tU2VsZWN0aW9uKCkgY29u
c3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>