<?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>129259</bug_id>
          
          <creation_ts>2014-02-24 09:55:16 -0800</creation_ts>
          <short_desc>Subpixel rendering: Ensure consistent border painting width.</short_desc>
          <delta_ts>2014-02-25 22:18:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>983935</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-02-24 09:55:16 -0800</bug_when>
    <thetext>class BorderEdge should return width in device pixels so that when the border rect for painting is calculated, the position does not impact border width, in other words, border widths are consistent across edges.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983982</commentid>
    <comment_count>1</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-02-24 11:38:24 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; class BorderEdge should return width in device pixels so that when the border rect for painting is calculated, the position does not impact border width, in other words, border widths are consistent across edges.

position + fractional border width.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984034</commentid>
    <comment_count>2</comment_count>
      <attachid>225089</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-24 13:25:06 -0800</bug_when>
    <thetext>Created attachment 225089
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984547</commentid>
    <comment_count>3</comment_count>
      <attachid>225089</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-25 16:57:07 -0800</bug_when>
    <thetext>Comment on attachment 225089
Patch

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

&gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:1452
&gt; +    float widthForPainting() const { return isPresent ?  flooredToDevicePixelWidth : 0.f; }

Is the .f required?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984567</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-02-25 17:37:24 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 225089 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=225089&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:1452
&gt; &gt; +    float widthForPainting() const { return isPresent ?  flooredToDevicePixelWidth : 0.f; }
&gt; 
&gt; Is the .f required?

Probably just a leftover from my previous attempts. Will remove it before committing. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984608</commentid>
    <comment_count>5</comment_count>
      <attachid>225215</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-25 20:21:51 -0800</bug_when>
    <thetext>Created attachment 225215
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984609</commentid>
    <comment_count>6</comment_count>
      <attachid>225215</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-25 20:22:46 -0800</bug_when>
    <thetext>Comment on attachment 225215
Patch

EWS testing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984630</commentid>
    <comment_count>7</comment_count>
      <attachid>225215</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-25 22:18:56 -0800</bug_when>
    <thetext>Comment on attachment 225215
Patch

Clearing flags on attachment: 225215

Committed r164698: &lt;http://trac.webkit.org/changeset/164698&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984631</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-25 22:18:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225089</attachid>
            <date>2014-02-24 13:25:06 -0800</date>
            <delta_ts>2014-02-25 20:21:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129259-20140224132510.patch</filename>
            <type>text/plain</type>
            <size>12244</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTU3YTA3YWZlYTQ1YjI5
NGIzZGE5NGUwZWI0ZWQ5NjFjYzBiNWExNC4uY2VjYjNkZWZiOTRhYWFhYWYzYTU0NjgxMTJjOTE0
NGViOTYxMzg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE0LTAyLTI0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBFbnN1cmUgY29uc2lzdGVudCBib3JkZXIgcGFpbnRpbmcgd2lkdGguCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkyNTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCb3JkZXIgZWRnZXMgYXJlIHBhaW50
ZWQgYXMgKHNlbWkpaW5kZXBlbmRlbnQgcmVjdGFuZ2xlcy4gV2hlbiBzbmFwcGluZyBhbiBlZGdl
IHJlY3RhbmdsZSAKKyAgICAgICAgdG8gZGV2aWNlIHBpeGVscywgaXRzIHBhaW50ZWQgZGltZW5z
aW9ucyBkZXBlbmQgb24gaXRzIHNpemUgYW5kIGl0cyBmcmFjdGlvbmFsIHBvc2l0aW9uLiAKKyAg
ICAgICAgU3BlY2lmaWMgY29tYmluYXRpb24gb2YgcG9zaXRpb24gYW5kIGJvcmRlciB3aWR0aCBj
YW4gcmVzdWx0IGluIHBhaW50aW5nIGVkZ2VzIHNpemVkIGRpZmZlcmVudGx5LgorICAgICAgICBV
c2luZyBkZXZpY2Ugc25hcHBlZCBib3JkZXIgd2lkdGggdG8gY2FsY3VsYXRlIGlubmVyL291dGVy
IHJlY3RhbmdsZXMgaGVscHMgdG8gbWFpbnRhaW4KKyAgICAgICAgdW5pZm9ybSBib3JkZXIgd2lk
dGguIAorCisgICAgICAgIEN1cnJlbnRseSBub3QgdGVzdGFibGUuCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qm9yZGVy
RWRnZTo6Qm9yZGVyRWRnZSk6CisgICAgICAgIChXZWJDb3JlOjpCb3JkZXJFZGdlOjpzaG91bGRS
ZW5kZXIpOgorICAgICAgICAoV2ViQ29yZTo6Qm9yZGVyRWRnZTo6cHJlc2VudEJ1dEludmlzaWJs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpCb3JkZXJFZGdlOjp3aWR0aEZvclBhaW50aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkJvcmRlckVkZ2U6OmdldERvdWJsZUJvcmRlclN0cmlwZVdpZHRocyk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRPbmVCb3JkZXJT
aWRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0ZVNpZGVSZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlclNpZGVzKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6ZHJhd0JveFNpZGVGcm9tUGF0aCk6CisgICAg
ICAgIChXZWJDb3JlOjpjYWxjdWxhdGVTaWRlUmVjdEluY2x1ZGluZ0lubmVyKToKKwogMjAxNC0w
Mi0yMyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFN1YnBpeGVs
IHJlbmRlcmluZzogRml4IGJsZWVkIGF2b2lkYW5jZSBzdWJwaXhlbCBjYWxjdWxhdGlvbi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmlu
ZGV4IDE2MzAyYmEzYTg5MTZiNTAzY2M0ZjYxYWUxNTk2ZWE2ZTgzNTBhYTAuLjkwNTA0NWYwZTJl
MmRkMDkyOWFjZjRhMjJlZGU3MDQ1ZGI5M2FlZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtMTQwOSw2ICsxNDA5LDcgQEAg
cHVibGljOgogICAgIHsKICAgICAgICAgaWYgKHN0eWxlID09IERPVUJMRSAmJiB3aWR0aCAgPCBi
b3JkZXJXaWR0aEluRGV2aWNlUGl4ZWwoMykpCiAgICAgICAgICAgICBzdHlsZSA9IFNPTElEOwor
ICAgICAgICBmbG9vcmVkVG9EZXZpY2VQaXhlbFdpZHRoID0gZmxvb3JUb0RldmljZVBpeGVsKHdp
ZHRoLCBkZXZpY2VQaXhlbFJhdGlvKTsKICAgICB9CiAgICAgCiAgICAgQm9yZGVyRWRnZSgpCkBA
IC0xNDE2LDEzICsxNDE3LDE0IEBAIHB1YmxpYzoKICAgICAgICAgLCBzdHlsZShCSElEREVOKQog
ICAgICAgICAsIGlzVHJhbnNwYXJlbnQoZmFsc2UpCiAgICAgICAgICwgaXNQcmVzZW50KGZhbHNl
KQorICAgICAgICAsIGZsb29yZWRUb0RldmljZVBpeGVsV2lkdGgoMCkKICAgICAgICAgLCBkZXZp
Y2VQaXhlbFJhdGlvKDEpCiAgICAgewogICAgIH0KICAgICAKICAgICBib29sIGhhc1Zpc2libGVD
b2xvckFuZFN0eWxlKCkgY29uc3QgeyByZXR1cm4gc3R5bGUgPiBCSElEREVOICYmICFpc1RyYW5z
cGFyZW50OyB9Ci0gICAgYm9vbCBzaG91bGRSZW5kZXIoKSBjb25zdCB7IHJldHVybiBpc1ByZXNl
bnQgJiYgd2lkdGggJiYgaGFzVmlzaWJsZUNvbG9yQW5kU3R5bGUoKTsgfQotICAgIGJvb2wgcHJl
c2VudEJ1dEludmlzaWJsZSgpIGNvbnN0IHsgcmV0dXJuIHVzZWRXaWR0aCgpICYmICFoYXNWaXNp
YmxlQ29sb3JBbmRTdHlsZSgpOyB9CisgICAgYm9vbCBzaG91bGRSZW5kZXIoKSBjb25zdCB7IHJl
dHVybiBpc1ByZXNlbnQgJiYgd2lkdGhGb3JQYWludGluZygpICYmIGhhc1Zpc2libGVDb2xvckFu
ZFN0eWxlKCk7IH0KKyAgICBib29sIHByZXNlbnRCdXRJbnZpc2libGUoKSBjb25zdCB7IHJldHVy
biB3aWR0aEZvclBhaW50aW5nKCkgJiYgIWhhc1Zpc2libGVDb2xvckFuZFN0eWxlKCk7IH0KICAg
ICBib29sIG9ic2N1cmVzQmFja2dyb3VuZEVkZ2UoZmxvYXQgc2NhbGUpIGNvbnN0CiAgICAgewog
ICAgICAgICBpZiAoIWlzUHJlc2VudCB8fCBpc1RyYW5zcGFyZW50IHx8ICh3aWR0aCAqIHNjYWxl
KSA8IGJvcmRlcldpZHRoSW5EZXZpY2VQaXhlbCgyKSB8fCBjb2xvci5oYXNBbHBoYSgpIHx8IHN0
eWxlID09IEJISURERU4pCkBAIC0xNDQ3LDExICsxNDQ5LDExIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgTGF5b3V0VW5pdCB1c2VkV2lkdGgoKSBjb25zdCB7
IHJldHVybiBpc1ByZXNlbnQgPyB3aWR0aCA6IExheW91dFVuaXQ6OmZyb21QaXhlbCgwKTsgfQor
ICAgIGZsb2F0IHdpZHRoRm9yUGFpbnRpbmcoKSBjb25zdCB7IHJldHVybiBpc1ByZXNlbnQgPyAg
Zmxvb3JlZFRvRGV2aWNlUGl4ZWxXaWR0aCA6IDAuZjsgfQogICAgIAogICAgIHZvaWQgZ2V0RG91
YmxlQm9yZGVyU3RyaXBlV2lkdGhzKExheW91dFVuaXQmIG91dGVyV2lkdGgsIExheW91dFVuaXQm
IGlubmVyV2lkdGgpIGNvbnN0CiAgICAgewotICAgICAgICBMYXlvdXRVbml0IGZ1bGxXaWR0aCA9
IHVzZWRXaWR0aCgpOworICAgICAgICBMYXlvdXRVbml0IGZ1bGxXaWR0aCA9IHdpZHRoRm9yUGFp
bnRpbmcoKTsKICAgICAgICAgaW5uZXJXaWR0aCA9IGNlaWxUb0RldmljZVBpeGVsKGZ1bGxXaWR0
aCAqIDIgLyAzLCBkZXZpY2VQaXhlbFJhdGlvKTsKICAgICAgICAgb3V0ZXJXaWR0aCA9IGZsb29y
VG9EZXZpY2VQaXhlbChmdWxsV2lkdGggLyAzLCBkZXZpY2VQaXhlbFJhdGlvKTsKICAgICB9CkBA
IC0xNDYxLDEwICsxNDYzLDEyIEBAIHB1YmxpYzoKICAgICBFQm9yZGVyU3R5bGUgc3R5bGU7CiAg
ICAgYm9vbCBpc1RyYW5zcGFyZW50OwogICAgIGJvb2wgaXNQcmVzZW50OwotICAgIGZsb2F0IGRl
dmljZVBpeGVsUmF0aW87CiAKIHByaXZhdGU6CiAgICAgZmxvYXQgYm9yZGVyV2lkdGhJbkRldmlj
ZVBpeGVsKGludCBsb2dpY2FsUGl4ZWxzKSBjb25zdCB7IHJldHVybiBMYXlvdXRVbml0KGxvZ2lj
YWxQaXhlbHMgLyBkZXZpY2VQaXhlbFJhdGlvKS50b0Zsb2F0KCk7IH0KKworICAgIGZsb2F0IGZs
b29yZWRUb0RldmljZVBpeGVsV2lkdGg7CisgICAgZmxvYXQgZGV2aWNlUGl4ZWxSYXRpbzsKIH07
CiAKIHN0YXRpYyBib29sIGFsbENvcm5lcnNDbGlwcGVkT3V0KGNvbnN0IFJvdW5kZWRSZWN0JiBi
b3JkZXIsIGNvbnN0IExheW91dFJlY3QmIGNsaXBSZWN0KQpAQCAtMTY1Niw3ICsxNjYwLDcgQEAg
dm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRPbmVCb3JkZXJTaWRlKEdyYXBoaWNzQ29u
dGV4dCogZ3JhcGhpY3NDb250ZXh0LAogICAgIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBibGVl
ZEF2b2lkYW5jZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dp
Y2FsUmlnaHRFZGdlLCBib29sIGFudGlhbGlhcywgY29uc3QgQ29sb3IqIG92ZXJyaWRlQ29sb3Ip
CiB7CiAgICAgY29uc3QgQm9yZGVyRWRnZSYgZWRnZVRvUmVuZGVyID0gZWRnZXNbc2lkZV07Ci0g
ICAgQVNTRVJUKGVkZ2VUb1JlbmRlci53aWR0aCk7CisgICAgQVNTRVJUKGVkZ2VUb1JlbmRlci53
aWR0aEZvclBhaW50aW5nKCkpOwogICAgIGNvbnN0IEJvcmRlckVkZ2UmIGFkamFjZW50RWRnZTEg
PSBlZGdlc1thZGphY2VudFNpZGUxXTsKICAgICBjb25zdCBCb3JkZXJFZGdlJiBhZGphY2VudEVk
Z2UyID0gZWRnZXNbYWRqYWNlbnRTaWRlMl07CiAKQEAgLTE2NzQsOCArMTY3OCw4IEBAIHZvaWQg
UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50T25lQm9yZGVyU2lkZShHcmFwaGljc0NvbnRleHQq
IGdyYXBoaWNzQ29udGV4dCwKICAgICAgICAgICAgIGNsaXBCb3JkZXJTaWRlUG9seWdvbihncmFw
aGljc0NvbnRleHQsIG91dGVyQm9yZGVyLCBpbm5lckJvcmRlciwgc2lkZSwgYWRqYWNlbnRTaWRl
MVN0eWxlc01hdGNoLCBhZGphY2VudFNpZGUyU3R5bGVzTWF0Y2gpOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBjbGlwQm9yZGVyU2lkZUZvckNvbXBsZXhJbm5lclBhdGgoZ3JhcGhpY3NDb250
ZXh0LCBvdXRlckJvcmRlciwgaW5uZXJCb3JkZXIsIHNpZGUsIGVkZ2VzKTsKLSAgICAgICAgZmxv
YXQgdGhpY2tuZXNzID0gc3RkOjptYXgoc3RkOjptYXgoZWRnZVRvUmVuZGVyLndpZHRoLCBhZGph
Y2VudEVkZ2UxLndpZHRoKSwgYWRqYWNlbnRFZGdlMi53aWR0aCk7Ci0gICAgICAgIGRyYXdCb3hT
aWRlRnJvbVBhdGgoZ3JhcGhpY3NDb250ZXh0LCBvdXRlckJvcmRlci5yZWN0KCksICpwYXRoLCBl
ZGdlcywgZWRnZVRvUmVuZGVyLndpZHRoLCB0aGlja25lc3MsIHNpZGUsIHN0eWxlLAorICAgICAg
ICBmbG9hdCB0aGlja25lc3MgPSBzdGQ6Om1heChzdGQ6Om1heChlZGdlVG9SZW5kZXIud2lkdGhG
b3JQYWludGluZygpLCBhZGphY2VudEVkZ2UxLndpZHRoRm9yUGFpbnRpbmcoKSksIGFkamFjZW50
RWRnZTIud2lkdGhGb3JQYWludGluZygpKTsKKyAgICAgICAgZHJhd0JveFNpZGVGcm9tUGF0aChn
cmFwaGljc0NvbnRleHQsIG91dGVyQm9yZGVyLnJlY3QoKSwgKnBhdGgsIGVkZ2VzLCBlZGdlVG9S
ZW5kZXIud2lkdGhGb3JQYWludGluZygpLCB0aGlja25lc3MsIHNpZGUsIHN0eWxlLAogICAgICAg
ICAgICAgY29sb3JUb1BhaW50LCBlZGdlVG9SZW5kZXIuc3R5bGUsIGJsZWVkQXZvaWRhbmNlLCBp
bmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CiAgICAgfSBl
bHNlIHsKICAgICAgICAgYm9vbCBjbGlwRm9yU3R5bGUgPSBzdHlsZVJlcXVpcmVzQ2xpcFBvbHln
b24oZWRnZVRvUmVuZGVyLnN0eWxlKSAmJiAobWl0cmVBZGphY2VudFNpZGUxIHx8IG1pdHJlQWRq
YWNlbnRTaWRlMik7CkBAIC0xNjk0LDE0ICsxNjk4LDE0IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxP
YmplY3Q6OnBhaW50T25lQm9yZGVyU2lkZShHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4
dCwKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBo
aWNzQ29udGV4dCwgc2lkZVJlY3QueCgpLCBzaWRlUmVjdC55KCksIHNpZGVSZWN0Lm1heFgoKSwg
c2lkZVJlY3QubWF4WSgpLCBzaWRlLCBjb2xvclRvUGFpbnQsIGVkZ2VUb1JlbmRlci5zdHlsZSwK
LSAgICAgICAgICAgIG1pdHJlQWRqYWNlbnRTaWRlMSA/IGFkamFjZW50RWRnZTEud2lkdGggOiBM
YXlvdXRVbml0Ojpmcm9tUGl4ZWwoMCksIG1pdHJlQWRqYWNlbnRTaWRlMiA/IGFkamFjZW50RWRn
ZTIud2lkdGggOiBMYXlvdXRVbml0Ojpmcm9tUGl4ZWwoMCksIGFudGlhbGlhcyk7CisgICAgICAg
ICAgICBtaXRyZUFkamFjZW50U2lkZTEgPyBhZGphY2VudEVkZ2UxLndpZHRoRm9yUGFpbnRpbmco
KSA6IDAsIG1pdHJlQWRqYWNlbnRTaWRlMiA/IGFkamFjZW50RWRnZTIud2lkdGhGb3JQYWludGlu
ZygpIDogMCwgYW50aWFsaWFzKTsKICAgICB9CiB9CiAKIHN0YXRpYyBMYXlvdXRSZWN0IGNhbGN1
bGF0ZVNpZGVSZWN0KGNvbnN0IFJvdW5kZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgQm9yZGVy
RWRnZSBlZGdlc1tdLCBpbnQgc2lkZSkKIHsKICAgICBMYXlvdXRSZWN0IHNpZGVSZWN0ID0gb3V0
ZXJCb3JkZXIucmVjdCgpOwotICAgIGludCB3aWR0aCA9IGVkZ2VzW3NpZGVdLndpZHRoOworICAg
IGZsb2F0IHdpZHRoID0gZWRnZXNbc2lkZV0ud2lkdGhGb3JQYWludGluZygpOwogCiAgICAgaWYg
KHNpZGUgPT0gQlNUb3ApCiAgICAgICAgIHNpZGVSZWN0LnNldEhlaWdodCh3aWR0aCk7CkBAIC0x
NzMyLDcgKzE3MzYsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlclNp
ZGVzKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBjbwogCiAgICAgaWYgKGVkZ2Vz
W0JTVG9wXS5zaG91bGRSZW5kZXIoKSAmJiBpbmNsdWRlc0VkZ2UoZWRnZVNldCwgQlNUb3ApKSB7
CiAgICAgICAgIExheW91dFJlY3Qgc2lkZVJlY3QgPSBvdXRlckJvcmRlci5yZWN0KCk7Ci0gICAg
ICAgIHNpZGVSZWN0LnNldEhlaWdodChlZGdlc1tCU1RvcF0ud2lkdGggKyBpbm5lckJvcmRlckFk
anVzdG1lbnQueSgpKTsKKyAgICAgICAgc2lkZVJlY3Quc2V0SGVpZ2h0KGVkZ2VzW0JTVG9wXS53
aWR0aEZvclBhaW50aW5nKCkgKyBpbm5lckJvcmRlckFkanVzdG1lbnQueSgpKTsKIAogICAgICAg
ICBib29sIHVzZVBhdGggPSByZW5kZXJSYWRpaSAmJiAoYm9yZGVyU3R5bGVIYXNJbm5lckRldGFp
bChlZGdlc1tCU1RvcF0uc3R5bGUpIHx8IGJvcmRlcldpbGxBcmNJbm5lckVkZ2UoaW5uZXJCb3Jk
ZXIucmFkaWkoKS50b3BMZWZ0KCksIGlubmVyQm9yZGVyLnJhZGlpKCkudG9wUmlnaHQoKSkpOwog
ICAgICAgICBwYWludE9uZUJvcmRlclNpZGUoZ3JhcGhpY3NDb250ZXh0LCBzdHlsZSwgb3V0ZXJC
b3JkZXIsIGlubmVyQm9yZGVyLCBzaWRlUmVjdCwgQlNUb3AsIEJTTGVmdCwgQlNSaWdodCwgZWRn
ZXMsIHVzZVBhdGggPyAmcm91bmRlZFBhdGggOiAwLCBibGVlZEF2b2lkYW5jZSwgaW5jbHVkZUxv
Z2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFudGlhbGlhcywgb3ZlcnJp
ZGVDb2xvcik7CkBAIC0xNzQwLDcgKzE3NDQsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0
OjpwYWludEJvcmRlclNpZGVzKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBjbwog
CiAgICAgaWYgKGVkZ2VzW0JTQm90dG9tXS5zaG91bGRSZW5kZXIoKSAmJiBpbmNsdWRlc0VkZ2Uo
ZWRnZVNldCwgQlNCb3R0b20pKSB7CiAgICAgICAgIExheW91dFJlY3Qgc2lkZVJlY3QgPSBvdXRl
ckJvcmRlci5yZWN0KCk7Ci0gICAgICAgIHNpZGVSZWN0LnNoaWZ0WUVkZ2VUbyhzaWRlUmVjdC5t
YXhZKCkgLSBlZGdlc1tCU0JvdHRvbV0ud2lkdGggLSBpbm5lckJvcmRlckFkanVzdG1lbnQueSgp
KTsKKyAgICAgICAgc2lkZVJlY3Quc2hpZnRZRWRnZVRvKHNpZGVSZWN0Lm1heFkoKSAtIGVkZ2Vz
W0JTQm90dG9tXS53aWR0aEZvclBhaW50aW5nKCkgLSBpbm5lckJvcmRlckFkanVzdG1lbnQueSgp
KTsKIAogICAgICAgICBib29sIHVzZVBhdGggPSByZW5kZXJSYWRpaSAmJiAoYm9yZGVyU3R5bGVI
YXNJbm5lckRldGFpbChlZGdlc1tCU0JvdHRvbV0uc3R5bGUpIHx8IGJvcmRlcldpbGxBcmNJbm5l
ckVkZ2UoaW5uZXJCb3JkZXIucmFkaWkoKS5ib3R0b21MZWZ0KCksIGlubmVyQm9yZGVyLnJhZGlp
KCkuYm90dG9tUmlnaHQoKSkpOwogICAgICAgICBwYWludE9uZUJvcmRlclNpZGUoZ3JhcGhpY3ND
b250ZXh0LCBzdHlsZSwgb3V0ZXJCb3JkZXIsIGlubmVyQm9yZGVyLCBzaWRlUmVjdCwgQlNCb3R0
b20sIEJTTGVmdCwgQlNSaWdodCwgZWRnZXMsIHVzZVBhdGggPyAmcm91bmRlZFBhdGggOiAwLCBi
bGVlZEF2b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdo
dEVkZ2UsIGFudGlhbGlhcywgb3ZlcnJpZGVDb2xvcik7CkBAIC0xNzQ4LDcgKzE3NTIsNyBAQCB2
b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlclNpZGVzKEdyYXBoaWNzQ29udGV4
dCogZ3JhcGhpY3NDb250ZXh0LCBjbwogCiAgICAgaWYgKGVkZ2VzW0JTTGVmdF0uc2hvdWxkUmVu
ZGVyKCkgJiYgaW5jbHVkZXNFZGdlKGVkZ2VTZXQsIEJTTGVmdCkpIHsKICAgICAgICAgTGF5b3V0
UmVjdCBzaWRlUmVjdCA9IG91dGVyQm9yZGVyLnJlY3QoKTsKLSAgICAgICAgc2lkZVJlY3Quc2V0
V2lkdGgoZWRnZXNbQlNMZWZ0XS53aWR0aCArIGlubmVyQm9yZGVyQWRqdXN0bWVudC54KCkpOwor
ICAgICAgICBzaWRlUmVjdC5zZXRXaWR0aChlZGdlc1tCU0xlZnRdLndpZHRoRm9yUGFpbnRpbmco
KSArIGlubmVyQm9yZGVyQWRqdXN0bWVudC54KCkpOwogCiAgICAgICAgIGJvb2wgdXNlUGF0aCA9
IHJlbmRlclJhZGlpICYmIChib3JkZXJTdHlsZUhhc0lubmVyRGV0YWlsKGVkZ2VzW0JTTGVmdF0u
c3R5bGUpIHx8IGJvcmRlcldpbGxBcmNJbm5lckVkZ2UoaW5uZXJCb3JkZXIucmFkaWkoKS5ib3R0
b21MZWZ0KCksIGlubmVyQm9yZGVyLnJhZGlpKCkudG9wTGVmdCgpKSk7CiAgICAgICAgIHBhaW50
T25lQm9yZGVyU2lkZShncmFwaGljc0NvbnRleHQsIHN0eWxlLCBvdXRlckJvcmRlciwgaW5uZXJC
b3JkZXIsIHNpZGVSZWN0LCBCU0xlZnQsIEJTVG9wLCBCU0JvdHRvbSwgZWRnZXMsIHVzZVBhdGgg
PyAmcm91bmRlZFBhdGggOiAwLCBibGVlZEF2b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRn
ZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFudGlhbGlhcywgb3ZlcnJpZGVDb2xvcik7CkBA
IC0xNzU2LDcgKzE3NjAsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRl
clNpZGVzKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBjbwogCiAgICAgaWYgKGVk
Z2VzW0JTUmlnaHRdLnNob3VsZFJlbmRlcigpICYmIGluY2x1ZGVzRWRnZShlZGdlU2V0LCBCU1Jp
Z2h0KSkgewogICAgICAgICBMYXlvdXRSZWN0IHNpZGVSZWN0ID0gb3V0ZXJCb3JkZXIucmVjdCgp
OwotICAgICAgICBzaWRlUmVjdC5zaGlmdFhFZGdlVG8oc2lkZVJlY3QubWF4WCgpIC0gZWRnZXNb
QlNSaWdodF0ud2lkdGggLSBpbm5lckJvcmRlckFkanVzdG1lbnQueCgpKTsKKyAgICAgICAgc2lk
ZVJlY3Quc2hpZnRYRWRnZVRvKHNpZGVSZWN0Lm1heFgoKSAtIGVkZ2VzW0JTUmlnaHRdLndpZHRo
Rm9yUGFpbnRpbmcoKSAtIGlubmVyQm9yZGVyQWRqdXN0bWVudC54KCkpOwogCiAgICAgICAgIGJv
b2wgdXNlUGF0aCA9IHJlbmRlclJhZGlpICYmIChib3JkZXJTdHlsZUhhc0lubmVyRGV0YWlsKGVk
Z2VzW0JTUmlnaHRdLnN0eWxlKSB8fCBib3JkZXJXaWxsQXJjSW5uZXJFZGdlKGlubmVyQm9yZGVy
LnJhZGlpKCkuYm90dG9tUmlnaHQoKSwgaW5uZXJCb3JkZXIucmFkaWkoKS50b3BSaWdodCgpKSk7
CiAgICAgICAgIHBhaW50T25lQm9yZGVyU2lkZShncmFwaGljc0NvbnRleHQsIHN0eWxlLCBvdXRl
ckJvcmRlciwgaW5uZXJCb3JkZXIsIHNpZGVSZWN0LCBCU1JpZ2h0LCBCU1RvcCwgQlNCb3R0b20s
IGVkZ2VzLCB1c2VQYXRoID8gJnJvdW5kZWRQYXRoIDogMCwgYmxlZWRBdm9pZGFuY2UsIGluY2x1
ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLCBhbnRpYWxpYXMsIG92
ZXJyaWRlQ29sb3IpOwpAQCAtMTg0Miw3ICsxODQ2LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9i
amVjdDo6cGFpbnRCb3JkZXIoY29uc3QgUGFpbnRJbmZvJiBpbmZvLCBjb25zdCBMYXlvdXRSZWN0
JgogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGlm
ICghY3VyckVkZ2Uud2lkdGgpIHsKKyAgICAgICAgaWYgKCFjdXJyRWRnZS53aWR0aEZvclBhaW50
aW5nKCkpIHsKICAgICAgICAgICAgIC0tbnVtRWRnZXNWaXNpYmxlOwogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIH0KQEAgLTIwOTEsMTAgKzIwOTUsMTAgQEAgdm9pZCBSZW5kZXJCb3hN
b2RlbE9iamVjdDo6ZHJhd0JveFNpZGVGcm9tUGF0aChHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNz
Q29udGV4dCwKIAogICAgICAgICAvLyBQYWludCBpbm5lciBvbmx5CiAgICAgICAgIEdyYXBoaWNz
Q29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqZ3JhcGhpY3NDb250ZXh0KTsKLSAgICAgICAg
TGF5b3V0VW5pdCB0b3BXaWR0aCA9IGVkZ2VzW0JTVG9wXS51c2VkV2lkdGgoKSAvIDI7Ci0gICAg
ICAgIExheW91dFVuaXQgYm90dG9tV2lkdGggPSBlZGdlc1tCU0JvdHRvbV0udXNlZFdpZHRoKCkg
LyAyOwotICAgICAgICBMYXlvdXRVbml0IGxlZnRXaWR0aCA9IGVkZ2VzW0JTTGVmdF0udXNlZFdp
ZHRoKCkgLyAyOwotICAgICAgICBMYXlvdXRVbml0IHJpZ2h0V2lkdGggPSBlZGdlc1tCU1JpZ2h0
XS51c2VkV2lkdGgoKSAvIDI7CisgICAgICAgIExheW91dFVuaXQgdG9wV2lkdGggPSBlZGdlc1tC
U1RvcF0ud2lkdGhGb3JQYWludGluZygpIC8gMjsKKyAgICAgICAgTGF5b3V0VW5pdCBib3R0b21X
aWR0aCA9IGVkZ2VzW0JTQm90dG9tXS53aWR0aEZvclBhaW50aW5nKCkgLyAyOworICAgICAgICBM
YXlvdXRVbml0IGxlZnRXaWR0aCA9IGVkZ2VzW0JTTGVmdF0ud2lkdGhGb3JQYWludGluZygpIC8g
MjsKKyAgICAgICAgTGF5b3V0VW5pdCByaWdodFdpZHRoID0gZWRnZXNbQlNSaWdodF0ud2lkdGhG
b3JQYWludGluZygpIC8gMjsKIAogICAgICAgICBSb3VuZGVkUmVjdCBjbGlwUmVjdCA9IHN0eWxl
LT5nZXRSb3VuZGVkSW5uZXJCb3JkZXJGb3IoYm9yZGVyUmVjdCwKICAgICAgICAgICAgIHRvcFdp
ZHRoLCBib3R0b21XaWR0aCwgbGVmdFdpZHRoLCByaWdodFdpZHRoLApAQCAtMjI0NSwxOSArMjI0
OSwxOSBAQCBzdGF0aWMgTGF5b3V0UmVjdCBjYWxjdWxhdGVTaWRlUmVjdEluY2x1ZGluZ0lubmVy
KGNvbnN0IFJvdW5kZWRSZWN0JiBvdXRlckJvcmRlcgogCiAgICAgc3dpdGNoIChzaWRlKSB7CiAg
ICAgY2FzZSBCU1RvcDoKLSAgICAgICAgd2lkdGggPSBzaWRlUmVjdC5oZWlnaHQoKSAtIGVkZ2Vz
W0JTQm90dG9tXS53aWR0aDsKKyAgICAgICAgd2lkdGggPSBzaWRlUmVjdC5oZWlnaHQoKSAtIGVk
Z2VzW0JTQm90dG9tXS53aWR0aEZvclBhaW50aW5nKCk7CiAgICAgICAgIHNpZGVSZWN0LnNldEhl
aWdodCh3aWR0aCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQlNCb3R0b206Ci0gICAgICAg
IHdpZHRoID0gc2lkZVJlY3QuaGVpZ2h0KCkgLSBlZGdlc1tCU1RvcF0ud2lkdGg7CisgICAgICAg
IHdpZHRoID0gc2lkZVJlY3QuaGVpZ2h0KCkgLSBlZGdlc1tCU1RvcF0ud2lkdGhGb3JQYWludGlu
ZygpOwogICAgICAgICBzaWRlUmVjdC5zaGlmdFlFZGdlVG8oc2lkZVJlY3QubWF4WSgpIC0gd2lk
dGgpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJTTGVmdDoKLSAgICAgICAgd2lkdGggPSBz
aWRlUmVjdC53aWR0aCgpIC0gZWRnZXNbQlNSaWdodF0ud2lkdGg7CisgICAgICAgIHdpZHRoID0g
c2lkZVJlY3Qud2lkdGgoKSAtIGVkZ2VzW0JTUmlnaHRdLndpZHRoRm9yUGFpbnRpbmcoKTsKICAg
ICAgICAgc2lkZVJlY3Quc2V0V2lkdGgod2lkdGgpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEJTUmlnaHQ6Ci0gICAgICAgIHdpZHRoID0gc2lkZVJlY3Qud2lkdGgoKSAtIGVkZ2VzW0JTTGVm
dF0ud2lkdGg7CisgICAgICAgIHdpZHRoID0gc2lkZVJlY3Qud2lkdGgoKSAtIGVkZ2VzW0JTTGVm
dF0ud2lkdGhGb3JQYWludGluZygpOwogICAgICAgICBzaWRlUmVjdC5zaGlmdFhFZGdlVG8oc2lk
ZVJlY3QubWF4WCgpIC0gd2lkdGgpOwogICAgICAgICBicmVhazsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225215</attachid>
            <date>2014-02-25 20:21:51 -0800</date>
            <delta_ts>2014-02-25 22:18:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129259-20140225202153.patch</filename>
            <type>text/plain</type>
            <size>12222</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0Njc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmY5NGVhY2RlODJlMTAy
NGYwYWNiYjgwZTQ5ZjhhN2FmODA2ZDgwYy4uMWVmOGI5MGUzZWIzNTUyMDdjMmRmNmJlMjE5OTI5
MzQzMjMxYTRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE0LTAyLTI1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBFbnN1cmUgY29uc2lzdGVudCBib3JkZXIgcGFpbnRpbmcgd2lkdGguCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkyNTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQm9yZGVyIGVkZ2VzIGFyZSBwYWludGVk
IGFzIChzZW1pKWluZGVwZW5kZW50IHJlY3RhbmdsZXMuIFdoZW4gc25hcHBpbmcgYW4gZWRnZSBy
ZWN0YW5nbGUKKyAgICAgICAgdG8gZGV2aWNlIHBpeGVscywgaXRzIHBhaW50ZWQgZGltZW5zaW9u
cyBkZXBlbmQgb24gaXRzIHNpemUgYW5kIGl0cyBmcmFjdGlvbmFsIHBvc2l0aW9uLgorICAgICAg
ICBTcGVjaWZpYyBjb21iaW5hdGlvbiBvZiBwb3NpdGlvbiBhbmQgYm9yZGVyIHdpZHRoIGNhbiBy
ZXN1bHQgaW4gcGFpbnRpbmcgZWRnZXMgc2l6ZWQgZGlmZmVyZW50bHkuCisgICAgICAgIFVzaW5n
IGRldmljZSBzbmFwcGVkIGJvcmRlciB3aWR0aCB0byBjYWxjdWxhdGUgaW5uZXIvb3V0ZXIgcmVj
dGFuZ2xlcyBoZWxwcyB0byBtYWludGFpbgorICAgICAgICB1bmlmb3JtIGJvcmRlciB3aWR0aC4K
KworICAgICAgICBDdXJyZW50bHkgbm90IHRlc3RhYmxlLgorCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJvcmRlckVkZ2U6
OkJvcmRlckVkZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Qm9yZGVyRWRnZTo6c2hvdWxkUmVuZGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkJvcmRlckVkZ2U6OnByZXNlbnRCdXRJbnZpc2libGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Qm9yZGVyRWRnZTo6d2lkdGhGb3JQYWludGluZyk6CisgICAgICAg
IChXZWJDb3JlOjpCb3JkZXJFZGdlOjpnZXREb3VibGVCb3JkZXJTdHJpcGVXaWR0aHMpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50T25lQm9yZGVyU2lkZSk6
CisgICAgICAgIChXZWJDb3JlOjpjYWxjdWxhdGVTaWRlUmVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXJTaWRlcyk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmRyYXdCb3hTaWRlRnJvbVBhdGgpOgorICAgICAgICAo
V2ViQ29yZTo6Y2FsY3VsYXRlU2lkZVJlY3RJbmNsdWRpbmdJbm5lcik6CisKIDIwMTQtMDItMjUg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlm
eSB2aXNpdGVkIGxpbmsgc3R5bGUgaW52YWxpZGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCAxNjMwMmJhM2E4OTE2YjUw
M2NjNGY2MWFlMTU5NmVhNmU4MzUwYWEwLi41YTBjMmRjOTFlYWRkYjY4ZTAyZTI2MzJhNjUzNzU5
MDU4YzY3Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5jcHAKQEAgLTE0MDksNiArMTQwOSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIGlmIChzdHlsZSA9PSBET1VCTEUgJiYgd2lkdGggIDwgYm9yZGVyV2lkdGhJbkRldmljZVBp
eGVsKDMpKQogICAgICAgICAgICAgc3R5bGUgPSBTT0xJRDsKKyAgICAgICAgZmxvb3JlZFRvRGV2
aWNlUGl4ZWxXaWR0aCA9IGZsb29yVG9EZXZpY2VQaXhlbCh3aWR0aCwgZGV2aWNlUGl4ZWxSYXRp
byk7CiAgICAgfQogICAgIAogICAgIEJvcmRlckVkZ2UoKQpAQCAtMTQxNiwxMyArMTQxNywxNCBA
QCBwdWJsaWM6CiAgICAgICAgICwgc3R5bGUoQkhJRERFTikKICAgICAgICAgLCBpc1RyYW5zcGFy
ZW50KGZhbHNlKQogICAgICAgICAsIGlzUHJlc2VudChmYWxzZSkKKyAgICAgICAgLCBmbG9vcmVk
VG9EZXZpY2VQaXhlbFdpZHRoKDApCiAgICAgICAgICwgZGV2aWNlUGl4ZWxSYXRpbygxKQogICAg
IHsKICAgICB9CiAgICAgCiAgICAgYm9vbCBoYXNWaXNpYmxlQ29sb3JBbmRTdHlsZSgpIGNvbnN0
IHsgcmV0dXJuIHN0eWxlID4gQkhJRERFTiAmJiAhaXNUcmFuc3BhcmVudDsgfQotICAgIGJvb2wg
c2hvdWxkUmVuZGVyKCkgY29uc3QgeyByZXR1cm4gaXNQcmVzZW50ICYmIHdpZHRoICYmIGhhc1Zp
c2libGVDb2xvckFuZFN0eWxlKCk7IH0KLSAgICBib29sIHByZXNlbnRCdXRJbnZpc2libGUoKSBj
b25zdCB7IHJldHVybiB1c2VkV2lkdGgoKSAmJiAhaGFzVmlzaWJsZUNvbG9yQW5kU3R5bGUoKTsg
fQorICAgIGJvb2wgc2hvdWxkUmVuZGVyKCkgY29uc3QgeyByZXR1cm4gaXNQcmVzZW50ICYmIHdp
ZHRoRm9yUGFpbnRpbmcoKSAmJiBoYXNWaXNpYmxlQ29sb3JBbmRTdHlsZSgpOyB9CisgICAgYm9v
bCBwcmVzZW50QnV0SW52aXNpYmxlKCkgY29uc3QgeyByZXR1cm4gd2lkdGhGb3JQYWludGluZygp
ICYmICFoYXNWaXNpYmxlQ29sb3JBbmRTdHlsZSgpOyB9CiAgICAgYm9vbCBvYnNjdXJlc0JhY2tn
cm91bmRFZGdlKGZsb2F0IHNjYWxlKSBjb25zdAogICAgIHsKICAgICAgICAgaWYgKCFpc1ByZXNl
bnQgfHwgaXNUcmFuc3BhcmVudCB8fCAod2lkdGggKiBzY2FsZSkgPCBib3JkZXJXaWR0aEluRGV2
aWNlUGl4ZWwoMikgfHwgY29sb3IuaGFzQWxwaGEoKSB8fCBzdHlsZSA9PSBCSElEREVOKQpAQCAt
MTQ0NywxMSArMTQ0OSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IAotICAgIExheW91dFVuaXQgdXNlZFdpZHRoKCkgY29uc3QgeyByZXR1cm4gaXNQcmVzZW50ID8g
d2lkdGggOiBMYXlvdXRVbml0Ojpmcm9tUGl4ZWwoMCk7IH0KKyAgICBmbG9hdCB3aWR0aEZvclBh
aW50aW5nKCkgY29uc3QgeyByZXR1cm4gaXNQcmVzZW50ID8gIGZsb29yZWRUb0RldmljZVBpeGVs
V2lkdGggOiAwOyB9CiAgICAgCiAgICAgdm9pZCBnZXREb3VibGVCb3JkZXJTdHJpcGVXaWR0aHMo
TGF5b3V0VW5pdCYgb3V0ZXJXaWR0aCwgTGF5b3V0VW5pdCYgaW5uZXJXaWR0aCkgY29uc3QKICAg
ICB7Ci0gICAgICAgIExheW91dFVuaXQgZnVsbFdpZHRoID0gdXNlZFdpZHRoKCk7CisgICAgICAg
IExheW91dFVuaXQgZnVsbFdpZHRoID0gd2lkdGhGb3JQYWludGluZygpOwogICAgICAgICBpbm5l
cldpZHRoID0gY2VpbFRvRGV2aWNlUGl4ZWwoZnVsbFdpZHRoICogMiAvIDMsIGRldmljZVBpeGVs
UmF0aW8pOwogICAgICAgICBvdXRlcldpZHRoID0gZmxvb3JUb0RldmljZVBpeGVsKGZ1bGxXaWR0
aCAvIDMsIGRldmljZVBpeGVsUmF0aW8pOwogICAgIH0KQEAgLTE0NjEsMTAgKzE0NjMsMTIgQEAg
cHVibGljOgogICAgIEVCb3JkZXJTdHlsZSBzdHlsZTsKICAgICBib29sIGlzVHJhbnNwYXJlbnQ7
CiAgICAgYm9vbCBpc1ByZXNlbnQ7Ci0gICAgZmxvYXQgZGV2aWNlUGl4ZWxSYXRpbzsKIAogcHJp
dmF0ZToKICAgICBmbG9hdCBib3JkZXJXaWR0aEluRGV2aWNlUGl4ZWwoaW50IGxvZ2ljYWxQaXhl
bHMpIGNvbnN0IHsgcmV0dXJuIExheW91dFVuaXQobG9naWNhbFBpeGVscyAvIGRldmljZVBpeGVs
UmF0aW8pLnRvRmxvYXQoKTsgfQorCisgICAgZmxvYXQgZmxvb3JlZFRvRGV2aWNlUGl4ZWxXaWR0
aDsKKyAgICBmbG9hdCBkZXZpY2VQaXhlbFJhdGlvOwogfTsKIAogc3RhdGljIGJvb2wgYWxsQ29y
bmVyc0NsaXBwZWRPdXQoY29uc3QgUm91bmRlZFJlY3QmIGJvcmRlciwgY29uc3QgTGF5b3V0UmVj
dCYgY2xpcFJlY3QpCkBAIC0xNjU2LDcgKzE2NjAsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpwYWludE9uZUJvcmRlclNpZGUoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQs
CiAgICAgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlLCBib29sIGluY2x1
ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGJvb2wgYW50
aWFsaWFzLCBjb25zdCBDb2xvciogb3ZlcnJpZGVDb2xvcikKIHsKICAgICBjb25zdCBCb3JkZXJF
ZGdlJiBlZGdlVG9SZW5kZXIgPSBlZGdlc1tzaWRlXTsKLSAgICBBU1NFUlQoZWRnZVRvUmVuZGVy
LndpZHRoKTsKKyAgICBBU1NFUlQoZWRnZVRvUmVuZGVyLndpZHRoRm9yUGFpbnRpbmcoKSk7CiAg
ICAgY29uc3QgQm9yZGVyRWRnZSYgYWRqYWNlbnRFZGdlMSA9IGVkZ2VzW2FkamFjZW50U2lkZTFd
OwogICAgIGNvbnN0IEJvcmRlckVkZ2UmIGFkamFjZW50RWRnZTIgPSBlZGdlc1thZGphY2VudFNp
ZGUyXTsKIApAQCAtMTY3NCw4ICsxNjc4LDggQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6
cGFpbnRPbmVCb3JkZXJTaWRlKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LAogICAg
ICAgICAgICAgY2xpcEJvcmRlclNpZGVQb2x5Z29uKGdyYXBoaWNzQ29udGV4dCwgb3V0ZXJCb3Jk
ZXIsIGlubmVyQm9yZGVyLCBzaWRlLCBhZGphY2VudFNpZGUxU3R5bGVzTWF0Y2gsIGFkamFjZW50
U2lkZTJTdHlsZXNNYXRjaCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGNsaXBCb3JkZXJT
aWRlRm9yQ29tcGxleElubmVyUGF0aChncmFwaGljc0NvbnRleHQsIG91dGVyQm9yZGVyLCBpbm5l
ckJvcmRlciwgc2lkZSwgZWRnZXMpOwotICAgICAgICBmbG9hdCB0aGlja25lc3MgPSBzdGQ6Om1h
eChzdGQ6Om1heChlZGdlVG9SZW5kZXIud2lkdGgsIGFkamFjZW50RWRnZTEud2lkdGgpLCBhZGph
Y2VudEVkZ2UyLndpZHRoKTsKLSAgICAgICAgZHJhd0JveFNpZGVGcm9tUGF0aChncmFwaGljc0Nv
bnRleHQsIG91dGVyQm9yZGVyLnJlY3QoKSwgKnBhdGgsIGVkZ2VzLCBlZGdlVG9SZW5kZXIud2lk
dGgsIHRoaWNrbmVzcywgc2lkZSwgc3R5bGUsCisgICAgICAgIGZsb2F0IHRoaWNrbmVzcyA9IHN0
ZDo6bWF4KHN0ZDo6bWF4KGVkZ2VUb1JlbmRlci53aWR0aEZvclBhaW50aW5nKCksIGFkamFjZW50
RWRnZTEud2lkdGhGb3JQYWludGluZygpKSwgYWRqYWNlbnRFZGdlMi53aWR0aEZvclBhaW50aW5n
KCkpOworICAgICAgICBkcmF3Qm94U2lkZUZyb21QYXRoKGdyYXBoaWNzQ29udGV4dCwgb3V0ZXJC
b3JkZXIucmVjdCgpLCAqcGF0aCwgZWRnZXMsIGVkZ2VUb1JlbmRlci53aWR0aEZvclBhaW50aW5n
KCksIHRoaWNrbmVzcywgc2lkZSwgc3R5bGUsCiAgICAgICAgICAgICBjb2xvclRvUGFpbnQsIGVk
Z2VUb1JlbmRlci5zdHlsZSwgYmxlZWRBdm9pZGFuY2UsIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2Us
IGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKICAgICB9IGVsc2UgewogICAgICAgICBib29sIGNs
aXBGb3JTdHlsZSA9IHN0eWxlUmVxdWlyZXNDbGlwUG9seWdvbihlZGdlVG9SZW5kZXIuc3R5bGUp
ICYmIChtaXRyZUFkamFjZW50U2lkZTEgfHwgbWl0cmVBZGphY2VudFNpZGUyKTsKQEAgLTE2OTQs
MTQgKzE2OTgsMTQgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRPbmVCb3JkZXJT
aWRlKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LAogICAgICAgICB9CiAgICAgICAg
IAogICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LCBzaWRlUmVjdC54
KCksIHNpZGVSZWN0LnkoKSwgc2lkZVJlY3QubWF4WCgpLCBzaWRlUmVjdC5tYXhZKCksIHNpZGUs
IGNvbG9yVG9QYWludCwgZWRnZVRvUmVuZGVyLnN0eWxlLAotICAgICAgICAgICAgbWl0cmVBZGph
Y2VudFNpZGUxID8gYWRqYWNlbnRFZGdlMS53aWR0aCA6IExheW91dFVuaXQ6OmZyb21QaXhlbCgw
KSwgbWl0cmVBZGphY2VudFNpZGUyID8gYWRqYWNlbnRFZGdlMi53aWR0aCA6IExheW91dFVuaXQ6
OmZyb21QaXhlbCgwKSwgYW50aWFsaWFzKTsKKyAgICAgICAgICAgIG1pdHJlQWRqYWNlbnRTaWRl
MSA/IGFkamFjZW50RWRnZTEud2lkdGhGb3JQYWludGluZygpIDogMCwgbWl0cmVBZGphY2VudFNp
ZGUyID8gYWRqYWNlbnRFZGdlMi53aWR0aEZvclBhaW50aW5nKCkgOiAwLCBhbnRpYWxpYXMpOwog
ICAgIH0KIH0KIAogc3RhdGljIExheW91dFJlY3QgY2FsY3VsYXRlU2lkZVJlY3QoY29uc3QgUm91
bmRlZFJlY3QmIG91dGVyQm9yZGVyLCBjb25zdCBCb3JkZXJFZGdlIGVkZ2VzW10sIGludCBzaWRl
KQogewogICAgIExheW91dFJlY3Qgc2lkZVJlY3QgPSBvdXRlckJvcmRlci5yZWN0KCk7Ci0gICAg
aW50IHdpZHRoID0gZWRnZXNbc2lkZV0ud2lkdGg7CisgICAgZmxvYXQgd2lkdGggPSBlZGdlc1tz
aWRlXS53aWR0aEZvclBhaW50aW5nKCk7CiAKICAgICBpZiAoc2lkZSA9PSBCU1RvcCkKICAgICAg
ICAgc2lkZVJlY3Quc2V0SGVpZ2h0KHdpZHRoKTsKQEAgLTE3MzIsNyArMTczNiw3IEBAIHZvaWQg
UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyU2lkZXMoR3JhcGhpY3NDb250ZXh0KiBn
cmFwaGljc0NvbnRleHQsIGNvCiAKICAgICBpZiAoZWRnZXNbQlNUb3BdLnNob3VsZFJlbmRlcigp
ICYmIGluY2x1ZGVzRWRnZShlZGdlU2V0LCBCU1RvcCkpIHsKICAgICAgICAgTGF5b3V0UmVjdCBz
aWRlUmVjdCA9IG91dGVyQm9yZGVyLnJlY3QoKTsKLSAgICAgICAgc2lkZVJlY3Quc2V0SGVpZ2h0
KGVkZ2VzW0JTVG9wXS53aWR0aCArIGlubmVyQm9yZGVyQWRqdXN0bWVudC55KCkpOworICAgICAg
ICBzaWRlUmVjdC5zZXRIZWlnaHQoZWRnZXNbQlNUb3BdLndpZHRoRm9yUGFpbnRpbmcoKSArIGlu
bmVyQm9yZGVyQWRqdXN0bWVudC55KCkpOwogCiAgICAgICAgIGJvb2wgdXNlUGF0aCA9IHJlbmRl
clJhZGlpICYmIChib3JkZXJTdHlsZUhhc0lubmVyRGV0YWlsKGVkZ2VzW0JTVG9wXS5zdHlsZSkg
fHwgYm9yZGVyV2lsbEFyY0lubmVyRWRnZShpbm5lckJvcmRlci5yYWRpaSgpLnRvcExlZnQoKSwg
aW5uZXJCb3JkZXIucmFkaWkoKS50b3BSaWdodCgpKSk7CiAgICAgICAgIHBhaW50T25lQm9yZGVy
U2lkZShncmFwaGljc0NvbnRleHQsIHN0eWxlLCBvdXRlckJvcmRlciwgaW5uZXJCb3JkZXIsIHNp
ZGVSZWN0LCBCU1RvcCwgQlNMZWZ0LCBCU1JpZ2h0LCBlZGdlcywgdXNlUGF0aCA/ICZyb3VuZGVk
UGF0aCA6IDAsIGJsZWVkQXZvaWRhbmNlLCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRl
TG9naWNhbFJpZ2h0RWRnZSwgYW50aWFsaWFzLCBvdmVycmlkZUNvbG9yKTsKQEAgLTE3NDAsNyAr
MTc0NCw3IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyU2lkZXMoR3Jh
cGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsIGNvCiAKICAgICBpZiAoZWRnZXNbQlNCb3R0
b21dLnNob3VsZFJlbmRlcigpICYmIGluY2x1ZGVzRWRnZShlZGdlU2V0LCBCU0JvdHRvbSkpIHsK
ICAgICAgICAgTGF5b3V0UmVjdCBzaWRlUmVjdCA9IG91dGVyQm9yZGVyLnJlY3QoKTsKLSAgICAg
ICAgc2lkZVJlY3Quc2hpZnRZRWRnZVRvKHNpZGVSZWN0Lm1heFkoKSAtIGVkZ2VzW0JTQm90dG9t
XS53aWR0aCAtIGlubmVyQm9yZGVyQWRqdXN0bWVudC55KCkpOworICAgICAgICBzaWRlUmVjdC5z
aGlmdFlFZGdlVG8oc2lkZVJlY3QubWF4WSgpIC0gZWRnZXNbQlNCb3R0b21dLndpZHRoRm9yUGFp
bnRpbmcoKSAtIGlubmVyQm9yZGVyQWRqdXN0bWVudC55KCkpOwogCiAgICAgICAgIGJvb2wgdXNl
UGF0aCA9IHJlbmRlclJhZGlpICYmIChib3JkZXJTdHlsZUhhc0lubmVyRGV0YWlsKGVkZ2VzW0JT
Qm90dG9tXS5zdHlsZSkgfHwgYm9yZGVyV2lsbEFyY0lubmVyRWRnZShpbm5lckJvcmRlci5yYWRp
aSgpLmJvdHRvbUxlZnQoKSwgaW5uZXJCb3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgpKSk7CiAg
ICAgICAgIHBhaW50T25lQm9yZGVyU2lkZShncmFwaGljc0NvbnRleHQsIHN0eWxlLCBvdXRlckJv
cmRlciwgaW5uZXJCb3JkZXIsIHNpZGVSZWN0LCBCU0JvdHRvbSwgQlNMZWZ0LCBCU1JpZ2h0LCBl
ZGdlcywgdXNlUGF0aCA/ICZyb3VuZGVkUGF0aCA6IDAsIGJsZWVkQXZvaWRhbmNlLCBpbmNsdWRl
TG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYW50aWFsaWFzLCBvdmVy
cmlkZUNvbG9yKTsKQEAgLTE3NDgsNyArMTc1Miw3IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmpl
Y3Q6OnBhaW50Qm9yZGVyU2lkZXMoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsIGNv
CiAKICAgICBpZiAoZWRnZXNbQlNMZWZ0XS5zaG91bGRSZW5kZXIoKSAmJiBpbmNsdWRlc0VkZ2Uo
ZWRnZVNldCwgQlNMZWZ0KSkgewogICAgICAgICBMYXlvdXRSZWN0IHNpZGVSZWN0ID0gb3V0ZXJC
b3JkZXIucmVjdCgpOwotICAgICAgICBzaWRlUmVjdC5zZXRXaWR0aChlZGdlc1tCU0xlZnRdLndp
ZHRoICsgaW5uZXJCb3JkZXJBZGp1c3RtZW50LngoKSk7CisgICAgICAgIHNpZGVSZWN0LnNldFdp
ZHRoKGVkZ2VzW0JTTGVmdF0ud2lkdGhGb3JQYWludGluZygpICsgaW5uZXJCb3JkZXJBZGp1c3Rt
ZW50LngoKSk7CiAKICAgICAgICAgYm9vbCB1c2VQYXRoID0gcmVuZGVyUmFkaWkgJiYgKGJvcmRl
clN0eWxlSGFzSW5uZXJEZXRhaWwoZWRnZXNbQlNMZWZ0XS5zdHlsZSkgfHwgYm9yZGVyV2lsbEFy
Y0lubmVyRWRnZShpbm5lckJvcmRlci5yYWRpaSgpLmJvdHRvbUxlZnQoKSwgaW5uZXJCb3JkZXIu
cmFkaWkoKS50b3BMZWZ0KCkpKTsKICAgICAgICAgcGFpbnRPbmVCb3JkZXJTaWRlKGdyYXBoaWNz
Q29udGV4dCwgc3R5bGUsIG91dGVyQm9yZGVyLCBpbm5lckJvcmRlciwgc2lkZVJlY3QsIEJTTGVm
dCwgQlNUb3AsIEJTQm90dG9tLCBlZGdlcywgdXNlUGF0aCA/ICZyb3VuZGVkUGF0aCA6IDAsIGJs
ZWVkQXZvaWRhbmNlLCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0
RWRnZSwgYW50aWFsaWFzLCBvdmVycmlkZUNvbG9yKTsKQEAgLTE3NTYsNyArMTc2MCw3IEBAIHZv
aWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyU2lkZXMoR3JhcGhpY3NDb250ZXh0
KiBncmFwaGljc0NvbnRleHQsIGNvCiAKICAgICBpZiAoZWRnZXNbQlNSaWdodF0uc2hvdWxkUmVu
ZGVyKCkgJiYgaW5jbHVkZXNFZGdlKGVkZ2VTZXQsIEJTUmlnaHQpKSB7CiAgICAgICAgIExheW91
dFJlY3Qgc2lkZVJlY3QgPSBvdXRlckJvcmRlci5yZWN0KCk7Ci0gICAgICAgIHNpZGVSZWN0LnNo
aWZ0WEVkZ2VUbyhzaWRlUmVjdC5tYXhYKCkgLSBlZGdlc1tCU1JpZ2h0XS53aWR0aCAtIGlubmVy
Qm9yZGVyQWRqdXN0bWVudC54KCkpOworICAgICAgICBzaWRlUmVjdC5zaGlmdFhFZGdlVG8oc2lk
ZVJlY3QubWF4WCgpIC0gZWRnZXNbQlNSaWdodF0ud2lkdGhGb3JQYWludGluZygpIC0gaW5uZXJC
b3JkZXJBZGp1c3RtZW50LngoKSk7CiAKICAgICAgICAgYm9vbCB1c2VQYXRoID0gcmVuZGVyUmFk
aWkgJiYgKGJvcmRlclN0eWxlSGFzSW5uZXJEZXRhaWwoZWRnZXNbQlNSaWdodF0uc3R5bGUpIHx8
IGJvcmRlcldpbGxBcmNJbm5lckVkZ2UoaW5uZXJCb3JkZXIucmFkaWkoKS5ib3R0b21SaWdodCgp
LCBpbm5lckJvcmRlci5yYWRpaSgpLnRvcFJpZ2h0KCkpKTsKICAgICAgICAgcGFpbnRPbmVCb3Jk
ZXJTaWRlKGdyYXBoaWNzQ29udGV4dCwgc3R5bGUsIG91dGVyQm9yZGVyLCBpbm5lckJvcmRlciwg
c2lkZVJlY3QsIEJTUmlnaHQsIEJTVG9wLCBCU0JvdHRvbSwgZWRnZXMsIHVzZVBhdGggPyAmcm91
bmRlZFBhdGggOiAwLCBibGVlZEF2b2lkYW5jZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5j
bHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGFudGlhbGlhcywgb3ZlcnJpZGVDb2xvcik7CkBAIC0xODQy
LDcgKzE4NDYsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlcihjb25z
dCBQYWludEluZm8mIGluZm8sIGNvbnN0IExheW91dFJlY3QmCiAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKCFjdXJyRWRnZS53aWR0aCkgewor
ICAgICAgICBpZiAoIWN1cnJFZGdlLndpZHRoRm9yUGFpbnRpbmcoKSkgewogICAgICAgICAgICAg
LS1udW1FZGdlc1Zpc2libGU7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAt
MjA5MSwxMCArMjA5NSwxMCBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpkcmF3Qm94U2lk
ZUZyb21QYXRoKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LAogCiAgICAgICAgIC8v
IFBhaW50IGlubmVyIG9ubHkKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0
ZVNhdmVyKCpncmFwaGljc0NvbnRleHQpOwotICAgICAgICBMYXlvdXRVbml0IHRvcFdpZHRoID0g
ZWRnZXNbQlNUb3BdLnVzZWRXaWR0aCgpIC8gMjsKLSAgICAgICAgTGF5b3V0VW5pdCBib3R0b21X
aWR0aCA9IGVkZ2VzW0JTQm90dG9tXS51c2VkV2lkdGgoKSAvIDI7Ci0gICAgICAgIExheW91dFVu
aXQgbGVmdFdpZHRoID0gZWRnZXNbQlNMZWZ0XS51c2VkV2lkdGgoKSAvIDI7Ci0gICAgICAgIExh
eW91dFVuaXQgcmlnaHRXaWR0aCA9IGVkZ2VzW0JTUmlnaHRdLnVzZWRXaWR0aCgpIC8gMjsKKyAg
ICAgICAgTGF5b3V0VW5pdCB0b3BXaWR0aCA9IGVkZ2VzW0JTVG9wXS53aWR0aEZvclBhaW50aW5n
KCkgLyAyOworICAgICAgICBMYXlvdXRVbml0IGJvdHRvbVdpZHRoID0gZWRnZXNbQlNCb3R0b21d
LndpZHRoRm9yUGFpbnRpbmcoKSAvIDI7CisgICAgICAgIExheW91dFVuaXQgbGVmdFdpZHRoID0g
ZWRnZXNbQlNMZWZ0XS53aWR0aEZvclBhaW50aW5nKCkgLyAyOworICAgICAgICBMYXlvdXRVbml0
IHJpZ2h0V2lkdGggPSBlZGdlc1tCU1JpZ2h0XS53aWR0aEZvclBhaW50aW5nKCkgLyAyOwogCiAg
ICAgICAgIFJvdW5kZWRSZWN0IGNsaXBSZWN0ID0gc3R5bGUtPmdldFJvdW5kZWRJbm5lckJvcmRl
ckZvcihib3JkZXJSZWN0LAogICAgICAgICAgICAgdG9wV2lkdGgsIGJvdHRvbVdpZHRoLCBsZWZ0
V2lkdGgsIHJpZ2h0V2lkdGgsCkBAIC0yMjQ1LDE5ICsyMjQ5LDE5IEBAIHN0YXRpYyBMYXlvdXRS
ZWN0IGNhbGN1bGF0ZVNpZGVSZWN0SW5jbHVkaW5nSW5uZXIoY29uc3QgUm91bmRlZFJlY3QmIG91
dGVyQm9yZGVyCiAKICAgICBzd2l0Y2ggKHNpZGUpIHsKICAgICBjYXNlIEJTVG9wOgotICAgICAg
ICB3aWR0aCA9IHNpZGVSZWN0LmhlaWdodCgpIC0gZWRnZXNbQlNCb3R0b21dLndpZHRoOworICAg
ICAgICB3aWR0aCA9IHNpZGVSZWN0LmhlaWdodCgpIC0gZWRnZXNbQlNCb3R0b21dLndpZHRoRm9y
UGFpbnRpbmcoKTsKICAgICAgICAgc2lkZVJlY3Quc2V0SGVpZ2h0KHdpZHRoKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBCU0JvdHRvbToKLSAgICAgICAgd2lkdGggPSBzaWRlUmVjdC5oZWln
aHQoKSAtIGVkZ2VzW0JTVG9wXS53aWR0aDsKKyAgICAgICAgd2lkdGggPSBzaWRlUmVjdC5oZWln
aHQoKSAtIGVkZ2VzW0JTVG9wXS53aWR0aEZvclBhaW50aW5nKCk7CiAgICAgICAgIHNpZGVSZWN0
LnNoaWZ0WUVkZ2VUbyhzaWRlUmVjdC5tYXhZKCkgLSB3aWR0aCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQlNMZWZ0OgotICAgICAgICB3aWR0aCA9IHNpZGVSZWN0LndpZHRoKCkgLSBlZGdl
c1tCU1JpZ2h0XS53aWR0aDsKKyAgICAgICAgd2lkdGggPSBzaWRlUmVjdC53aWR0aCgpIC0gZWRn
ZXNbQlNSaWdodF0ud2lkdGhGb3JQYWludGluZygpOwogICAgICAgICBzaWRlUmVjdC5zZXRXaWR0
aCh3aWR0aCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQlNSaWdodDoKLSAgICAgICAgd2lk
dGggPSBzaWRlUmVjdC53aWR0aCgpIC0gZWRnZXNbQlNMZWZ0XS53aWR0aDsKKyAgICAgICAgd2lk
dGggPSBzaWRlUmVjdC53aWR0aCgpIC0gZWRnZXNbQlNMZWZ0XS53aWR0aEZvclBhaW50aW5nKCk7
CiAgICAgICAgIHNpZGVSZWN0LnNoaWZ0WEVkZ2VUbyhzaWRlUmVjdC5tYXhYKCkgLSB3aWR0aCk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>