<?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>88110</bug_id>
          
          <creation_ts>2012-06-01 11:00:57 -0700</creation_ts>
          <short_desc>Prepare table collapsed border computation to support mixed directionality on row group</short_desc>
          <delta_ts>2012-06-01 13:15:24 -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>Tables</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>87900</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>mitz</cc>
    
    <cc>ojan</cc>
    
    <cc>robert</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>639525</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-06-01 11:00:57 -0700</bug_when>
    <thetext>The code doesn&apos;t handle mixed directionality inside a table and will fail pretty badly if it is involved. CSS 2.1 and CSS 3 writing-modes however allow the use of mixed directionality.

The difficulty with mixed directionality is that the start / end borders don&apos;t map strictly anymore: the table start border will be the section&apos;s end border if the table and section have mixed directionality.

To account for that, we need new methods to properly get the adjoining borders regardless of the directions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639534</commentid>
    <comment_count>1</comment_count>
      <attachid>145340</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-06-01 11:19:37 -0700</bug_when>
    <thetext>Created attachment 145340
Proposed preparation. Comments on naming more than welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639542</commentid>
    <comment_count>2</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-06-01 11:28:17 -0700</bug_when>
    <thetext>CC&apos;ing some people who could comment on the naming used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639587</commentid>
    <comment_count>3</comment_count>
      <attachid>145340</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-06-01 12:06:51 -0700</bug_when>
    <thetext>Comment on attachment 145340
Proposed preparation. Comments on naming more than welcome.

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        This change add the concept of adjoining borders in the table direction so that we can safely

s/add/adds

&gt; Source/WebCore/rendering/RenderTableSection.h:127
&gt; +    // These methods handle mixed directions between table and sections.

Meh. This is a what comment. That will be clear once you do your followup patch. No need to add a comment saying it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639621</commentid>
    <comment_count>4</comment_count>
      <attachid>145356</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-06-01 12:30:13 -0700</bug_when>
    <thetext>Created attachment 145356
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639659</commentid>
    <comment_count>5</comment_count>
      <attachid>145356</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-01 13:15:19 -0700</bug_when>
    <thetext>Comment on attachment 145356
Patch for landing

Clearing flags on attachment: 145356

Committed r119272: &lt;http://trac.webkit.org/changeset/119272&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>639660</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-01 13:15:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145340</attachid>
            <date>2012-06-01 11:19:37 -0700</date>
            <delta_ts>2012-06-01 12:30:09 -0700</delta_ts>
            <desc>Proposed preparation. Comments on naming more than welcome.</desc>
            <filename>bug-88110-20120601111936.patch</filename>
            <type>text/plain</type>
            <size>15396</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBlOTVmZDRiN2ZjZGVi
NjBlMWZkNjJlOGIyZGFiYzM5ZTI2ZmFiOC4uNjNiMTJkOTQ0YzFlODgyZTFjMDM3YTBhNjBhM2Ex
ZWE4YTA0MWYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTA2LTAxICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFByZXBhcmUg
dGFibGUgY29sbGFwc2VkIGJvcmRlciBjb21wdXRhdGlvbiB0byBzdXBwb3J0IG1peGVkIGRpcmVj
dGlvbmFsaXR5IG9uIHJvdyBncm91cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODgxMTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBObyBleHBlY3RlZCBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAg
T25lIGJpZyBpc3N1ZSB3aXRoIHN1cHBvcnRpbmcgbWl4ZWQgZGlyZWN0aW9uYWxpdHkgaW5zaWRl
IGEgdGFibGUgaXMgdGhhdCB0aGUgc3RhcnQgLyBlbmQKKyAgICAgICAgYm9yZGVycyBkb24ndCBh
bGlnbiBiZXR3ZWVuIHRhYmxlIHBhcnRzIGFueW1vcmU6IHRoZSBzdGFydCBib3JkZXIgb2YgYSBs
dHIgdGFibGUgd2lsbCBoYXZlCisgICAgICAgIHRvIG1hdGNoIHRoZSBlbmQgYm9yZGVyIG9mIGEg
cnRsIHJvdyBncm91cCBmb3IgdGhlIHB1cnBvc2Ugb2YgY29sbGFwc2VkIGJvcmRlciBjb21wdXRh
dGlvbi4KKworICAgICAgICBUaGlzIGNoYW5nZSBhZGQgdGhlIGNvbmNlcHQgb2YgYWRqb2luaW5n
IGJvcmRlcnMgaW4gdGhlIHRhYmxlIGRpcmVjdGlvbiBzbyB0aGF0IHdlIGNhbiBzYWZlbHkKKyAg
ICAgICAgaGlkZSB3aGljaCBleGFjdCBib3JkZXJzIHdlIHBpY2sgdXAgZm9yIHRoZSBjb2xsYXBz
ZWQgYm9yZGVyIGNvbXB1dGF0aW9uLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpjYWxjQm9yZGVyU3RhcnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OmNhbGNCb3JkZXJFbmQpOgorICAgICAgICBS
ZWZhY3RvcmVkIHRob3NlIGZ1bmN0aW9ucyB0byB1c2UgcHJvcGVyIG5hbWluZyBhbG9uZyB3aXRo
IHRoZSBuZXcgQVBJcy4gVGhlIG5hbWUgJ2Fkam9pbmluZycgaXMKKyAgICAgICAgdXNlZCBleHRl
bnNpdmVseSBhcyB3ZSBjYW5ub3QgbWFrZSBhbnkgYXNzdW1wdGlvbnMgb24gd2hpY2ggYm9yZGVy
cyB3ZSB3aWxsIGdldC4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OnJlY2FsY0Jv
cmRlcnNJblJvd0RpcmVjdGlvbik6CisgICAgICAgIEFkZGVkIGEgRklYTUUgZm91bmQgZHVyaW5n
IHRlc3RpbmcuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmg6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OmJvcmRlckFkam9pbmluZ1RhYmxlU3RhcnQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpib3JkZXJBZGpvaW5pbmdUYWJs
ZUVuZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUYWJsZVJvdzo6Ym9yZGVyQWRqb2luaW5nVGFibGVTdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVJvdzo6Ym9yZGVyQWRqb2luaW5nVGFibGVFbmQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6Ym9yZGVyQWRqb2luaW5nVGFibGVTdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmJvcmRlckFkam9pbmluZ1RhYmxlRW5k
KToKKyAgICAgICAgVGhvc2UgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhdCB0aGUgbW9tZW50IHRv
IG1hdGNoIHRoZSBleGlzdGluZyBjb2RlLiBUaGV5CisgICAgICAgIHdpbGwgYmUgY2hhbmdlZCB0
byB1c2UgdGhlIHByb3BlciBkaXJlY3Rpb25hbGl0eSBpbiBhIGZvbGxvdyB1cCBwYXRjaC4KKwor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGFibGVTZWN0aW9uOjpmaXJzdFJvd0NlbGxBZGpvaW5pbmdUYWJsZVN0YXJ0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6Zmlyc3RSb3dDZWxsQWRq
b2luaW5nVGFibGVFbmQpOgorICAgICAgICBUaG9zZSBmdW5jdGlvbnMgcmV0dXJuIHRoZSBjZWxs
cyB0aGF0IGlzIGFkam9pbmluZyBhIHRhYmxlIGVkZ2UuIER1ZSB0byB1cyBmbGlwcGluZworICAg
ICAgICB0aGUgY2VsbHMgYXQgbGF5b3V0IHRvIG1hdGNoIHRoZSBzZWN0aW9uJ3MgZGlyZWN0aW9u
LCB0aG9zZSBmdW5jdGlvbnMgd2lsbCBuZWVkIHRvCisgICAgICAgIGFjY291bnQgZm9yIG1peGVk
IGRpcmVjdGlvbiBpbiBkZXRlcm1pbmluZyB0aGUgcmlnaHQgY2VsbCB0byBjb25zaWRlci4KKwog
MjAxMi0wNi0wMSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29t
PgogCiAgICAgICAgIFtFRkxdIEVGTCBwb3J0IGRvZXMgbm90IGVuYWJsZSBXRUJfSU5URU5UU19U
QUcgZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKaW5kZXggNTQx
ZWYzN2I1NDZiMmQ0Y2FmOGU4MGYxOGRkNTUwNmM1MmFjZmNkOS4uOWU0MzQ2NzMzY2E1NjA1OWEz
ZTQyZDU2N2M1ZTc2OGZhOWVjNzc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGUuY3BwCkBAIC04NDIsMTEzICs4NDIsMTE2IEBAIHZvaWQgUmVuZGVyVGFibGU6OnJlY2Fs
Y1NlY3Rpb25zKCkgY29uc3QKIAogaW50IFJlbmRlclRhYmxlOjpjYWxjQm9yZGVyU3RhcnQoKSBj
b25zdAogewotICAgIGlmIChjb2xsYXBzZUJvcmRlcnMoKSkgewotICAgICAgICAvLyBEZXRlcm1p
bmVkIGJ5IHRoZSBmaXJzdCBjZWxsIG9mIHRoZSBmaXJzdCByb3cuIFNlZSB0aGUgQ1NTIDIuMSBz
cGVjLCBzZWN0aW9uIDE3LjYuMi4KLSAgICAgICAgaWYgKCFudW1FZmZDb2xzKCkpCi0gICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICBpZiAoIWNvbGxhcHNlQm9yZGVycygpKQorICAgICAgICByZXR1
cm4gUmVuZGVyQmxvY2s6OmJvcmRlclN0YXJ0KCk7CisKKyAgICAvLyBEZXRlcm1pbmVkIGJ5IHRo
ZSBmaXJzdCBjZWxsIG9mIHRoZSBmaXJzdCByb3cuIFNlZSB0aGUgQ1NTIDIuMSBzcGVjLCBzZWN0
aW9uIDE3LjYuMi4KKyAgICBpZiAoIW51bUVmZkNvbHMoKSkKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICB1bnNpZ25lZCBib3JkZXJXaWR0aCA9IDA7CiAKLSAgICAgICAgdW5zaWduZWQgYm9yZGVy
V2lkdGggPSAwOworICAgIGNvbnN0IEJvcmRlclZhbHVlJiB0YWJsZVN0YXJ0Qm9yZGVyID0gc3R5
bGUoKS0+Ym9yZGVyU3RhcnQoKTsKKyAgICBpZiAodGFibGVTdGFydEJvcmRlci5zdHlsZSgpID09
IEJISURERU4pCisgICAgICAgIHJldHVybiAwOworICAgIGlmICh0YWJsZVN0YXJ0Qm9yZGVyLnN0
eWxlKCkgPiBCSElEREVOKQorICAgICAgICBib3JkZXJXaWR0aCA9IHRhYmxlU3RhcnRCb3JkZXIu
d2lkdGgoKTsKIAotICAgICAgICBjb25zdCBCb3JkZXJWYWx1ZSYgdGIgPSBzdHlsZSgpLT5ib3Jk
ZXJTdGFydCgpOwotICAgICAgICBpZiAodGIuc3R5bGUoKSA9PSBCSElEREVOKQorICAgIGlmIChS
ZW5kZXJUYWJsZUNvbCogY29sdW1uID0gY29sRWxlbWVudCgwKSkgeworICAgICAgICAvLyBGSVhN
RTogV2UgZG9uJ3QgYWNjb3VudCBmb3IgZGlyZWN0aW9uIG9uIGNvbHVtbnMgYW5kIGNvbHVtbiBn
cm91cHMuCisgICAgICAgIGNvbnN0IEJvcmRlclZhbHVlJiBjb2x1bW5BZGpvaW5pbmdCb3JkZXIg
PSBjb2x1bW4tPnN0eWxlKCktPmJvcmRlclN0YXJ0KCk7CisgICAgICAgIGlmIChjb2x1bW5BZGpv
aW5pbmdCb3JkZXIuc3R5bGUoKSA9PSBCSElEREVOKQogICAgICAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgICAgIGlmICh0Yi5zdHlsZSgpID4gQkhJRERFTikKLSAgICAgICAgICAgIGJvcmRlcldpZHRo
ID0gdGIud2lkdGgoKTsKKyAgICAgICAgaWYgKGNvbHVtbkFkam9pbmluZ0JvcmRlci5zdHlsZSgp
ID4gQkhJRERFTikKKyAgICAgICAgICAgIGJvcmRlcldpZHRoID0gbWF4KGJvcmRlcldpZHRoLCBj
b2x1bW5BZGpvaW5pbmdCb3JkZXIud2lkdGgoKSk7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIGxv
Z2ljIGRvZXNuJ3QgcHJvcGVybHkgYWNjb3VudCBmb3IgdGhlIGZpcnN0IGNvbHVtbiBpbiB0aGUg
Zmlyc3QgY29sdW1uLWdyb3VwIGNhc2UuCisgICAgfQogCi0gICAgICAgIGlmIChSZW5kZXJUYWJs
ZUNvbCogY29sR3JvdXAgPSBjb2xFbGVtZW50KDApKSB7Ci0gICAgICAgICAgICBjb25zdCBCb3Jk
ZXJWYWx1ZSYgZ2IgPSBjb2xHcm91cC0+c3R5bGUoKS0+Ym9yZGVyU3RhcnQoKTsKLSAgICAgICAg
ICAgIGlmIChnYi5zdHlsZSgpID09IEJISURERU4pCi0gICAgICAgICAgICAgICAgcmV0dXJuIDA7
Ci0gICAgICAgICAgICBpZiAoZ2Iuc3R5bGUoKSA+IEJISURERU4pCi0gICAgICAgICAgICAgICAg
Ym9yZGVyV2lkdGggPSBtYXgoYm9yZGVyV2lkdGgsIGdiLndpZHRoKCkpOwotICAgICAgICB9Ci0g
ICAgICAgIAotICAgICAgICBpZiAoY29uc3QgUmVuZGVyVGFibGVTZWN0aW9uKiB0b3BOb25FbXB0
eVNlY3Rpb24gPSB0aGlzLT50b3BOb25FbXB0eVNlY3Rpb24oKSkgewotICAgICAgICAgICAgY29u
c3QgQm9yZGVyVmFsdWUmIHNiID0gdG9wTm9uRW1wdHlTZWN0aW9uLT5zdHlsZSgpLT5ib3JkZXJT
dGFydCgpOwotICAgICAgICAgICAgaWYgKHNiLnN0eWxlKCkgPT0gQkhJRERFTikKLSAgICAgICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoY29uc3QgUmVuZGVyVGFibGVTZWN0aW9uKiB0b3BO
b25FbXB0eVNlY3Rpb24gPSB0aGlzLT50b3BOb25FbXB0eVNlY3Rpb24oKSkgeworICAgICAgICBj
b25zdCBCb3JkZXJWYWx1ZSYgc2VjdGlvbkFkam9pbmluZ0JvcmRlciA9IHRvcE5vbkVtcHR5U2Vj
dGlvbi0+Ym9yZGVyQWRqb2luaW5nVGFibGVTdGFydCgpOworICAgICAgICBpZiAoc2VjdGlvbkFk
am9pbmluZ0JvcmRlci5zdHlsZSgpID09IEJISURERU4pCisgICAgICAgICAgICByZXR1cm4gMDsK
IAotICAgICAgICAgICAgaWYgKHNiLnN0eWxlKCkgPiBCSElEREVOKQotICAgICAgICAgICAgICAg
IGJvcmRlcldpZHRoID0gbWF4KGJvcmRlcldpZHRoLCBzYi53aWR0aCgpKTsKKyAgICAgICAgaWYg
KHNlY3Rpb25BZGpvaW5pbmdCb3JkZXIuc3R5bGUoKSA+IEJISURERU4pCisgICAgICAgICAgICBi
b3JkZXJXaWR0aCA9IG1heChib3JkZXJXaWR0aCwgc2VjdGlvbkFkam9pbmluZ0JvcmRlci53aWR0
aCgpKTsKIAotICAgICAgICAgICAgY29uc3QgUmVuZGVyVGFibGVTZWN0aW9uOjpDZWxsU3RydWN0
JiBjcyA9IHRvcE5vbkVtcHR5U2VjdGlvbi0+Y2VsbEF0KDAsIDApOwotICAgICAgICAgICAgCi0g
ICAgICAgICAgICBpZiAoY3MuaGFzQ2VsbHMoKSkgewotICAgICAgICAgICAgICAgIGNvbnN0IEJv
cmRlclZhbHVlJiBjYiA9IGNzLnByaW1hcnlDZWxsKCktPnN0eWxlKCktPmJvcmRlclN0YXJ0KCk7
IC8vIEZJWE1FOiBNYWtlIHRoaXMgd29yayB3aXRoIHBlcnBlbmRpY3VhbHIgYW5kIGZsaXBwZWQg
Y2VsbHMuCi0gICAgICAgICAgICAgICAgaWYgKGNiLnN0eWxlKCkgPT0gQkhJRERFTikKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGlmIChjb25zdCBSZW5kZXJUYWJsZUNl
bGwqIGFkam9pbmluZ1N0YXJ0Q2VsbCA9IHRvcE5vbkVtcHR5U2VjdGlvbi0+Zmlyc3RSb3dDZWxs
QWRqb2luaW5nVGFibGVTdGFydCgpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogTWFrZSB0aGlz
IHdvcmsgd2l0aCBwZXJwZW5kaWN1bGFyIGFuZCBmbGlwcGVkIGNlbGxzLgorICAgICAgICAgICAg
Y29uc3QgQm9yZGVyVmFsdWUmIHN0YXJ0Q2VsbEFkam9pbmluZ0JvcmRlciA9IGFkam9pbmluZ1N0
YXJ0Q2VsbC0+Ym9yZGVyQWRqb2luaW5nVGFibGVTdGFydCgpOworICAgICAgICAgICAgaWYgKHN0
YXJ0Q2VsbEFkam9pbmluZ0JvcmRlci5zdHlsZSgpID09IEJISURERU4pCisgICAgICAgICAgICAg
ICAgcmV0dXJuIDA7CiAKLSAgICAgICAgICAgICAgICBjb25zdCBCb3JkZXJWYWx1ZSYgcmIgPSBj
cy5wcmltYXJ5Q2VsbCgpLT5wYXJlbnQoKS0+c3R5bGUoKS0+Ym9yZGVyU3RhcnQoKTsKLSAgICAg
ICAgICAgICAgICBpZiAocmIuc3R5bGUoKSA9PSBCSElEREVOKQotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgICAgIGNvbnN0IEJvcmRlclZhbHVlJiBmaXJzdFJvd0Fkam9p
bmluZ0JvcmRlciA9IGFkam9pbmluZ1N0YXJ0Q2VsbC0+cm93KCktPmJvcmRlckFkam9pbmluZ1Rh
YmxlU3RhcnQoKTsKKyAgICAgICAgICAgIGlmIChmaXJzdFJvd0Fkam9pbmluZ0JvcmRlci5zdHls
ZSgpID09IEJISURERU4pCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgICAg
ICAgICBpZiAoY2Iuc3R5bGUoKSA+IEJISURERU4pCi0gICAgICAgICAgICAgICAgICAgIGJvcmRl
cldpZHRoID0gbWF4KGJvcmRlcldpZHRoLCBjYi53aWR0aCgpKTsKLSAgICAgICAgICAgICAgICBp
ZiAocmIuc3R5bGUoKSA+IEJISURERU4pCi0gICAgICAgICAgICAgICAgICAgIGJvcmRlcldpZHRo
ID0gbWF4KGJvcmRlcldpZHRoLCByYi53aWR0aCgpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGlmIChzdGFydENlbGxBZGpvaW5pbmdCb3JkZXIuc3R5bGUoKSA+IEJISURERU4pCisgICAg
ICAgICAgICAgICAgYm9yZGVyV2lkdGggPSBtYXgoYm9yZGVyV2lkdGgsIHN0YXJ0Q2VsbEFkam9p
bmluZ0JvcmRlci53aWR0aCgpKTsKKyAgICAgICAgICAgIGlmIChmaXJzdFJvd0Fkam9pbmluZ0Jv
cmRlci5zdHlsZSgpID4gQkhJRERFTikKKyAgICAgICAgICAgICAgICBib3JkZXJXaWR0aCA9IG1h
eChib3JkZXJXaWR0aCwgZmlyc3RSb3dBZGpvaW5pbmdCb3JkZXIud2lkdGgoKSk7CiAgICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIChib3JkZXJXaWR0aCArIChzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0
RGlyZWN0aW9uKCkgPyAwIDogMSkpIC8gMjsKICAgICB9Ci0gICAgcmV0dXJuIFJlbmRlckJsb2Nr
Ojpib3JkZXJTdGFydCgpOworICAgIHJldHVybiAoYm9yZGVyV2lkdGggKyAoc3R5bGUoKS0+aXNM
ZWZ0VG9SaWdodERpcmVjdGlvbigpID8gMCA6IDEpKSAvIDI7CiB9CiAKIGludCBSZW5kZXJUYWJs
ZTo6Y2FsY0JvcmRlckVuZCgpIGNvbnN0CiB7Ci0gICAgaWYgKGNvbGxhcHNlQm9yZGVycygpKSB7
Ci0gICAgICAgIC8vIERldGVybWluZWQgYnkgdGhlIGxhc3QgY2VsbCBvZiB0aGUgZmlyc3Qgcm93
LiBTZWUgdGhlIENTUyAyLjEgc3BlYywgc2VjdGlvbiAxNy42LjIuCi0gICAgICAgIGlmICghbnVt
RWZmQ29scygpKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKCFjb2xsYXBzZUJvcmRl
cnMoKSkKKyAgICAgICAgcmV0dXJuIFJlbmRlckJsb2NrOjpib3JkZXJFbmQoKTsKIAotICAgICAg
ICB1bnNpZ25lZCBib3JkZXJXaWR0aCA9IDA7CisgICAgLy8gRGV0ZXJtaW5lZCBieSB0aGUgbGFz
dCBjZWxsIG9mIHRoZSBmaXJzdCByb3cuIFNlZSB0aGUgQ1NTIDIuMSBzcGVjLCBzZWN0aW9uIDE3
LjYuMi4KKyAgICBpZiAoIW51bUVmZkNvbHMoKSkKKyAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAg
ICAgY29uc3QgQm9yZGVyVmFsdWUmIHRiID0gc3R5bGUoKS0+Ym9yZGVyRW5kKCk7Ci0gICAgICAg
IGlmICh0Yi5zdHlsZSgpID09IEJISURERU4pCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAg
ICAgaWYgKHRiLnN0eWxlKCkgPiBCSElEREVOKQotICAgICAgICAgICAgYm9yZGVyV2lkdGggPSB0
Yi53aWR0aCgpOworICAgIHVuc2lnbmVkIGJvcmRlcldpZHRoID0gMDsKIAotICAgICAgICB1bnNp
Z25lZCBlbmRDb2x1bW4gPSBudW1FZmZDb2xzKCkgLSAxOwotICAgICAgICBpZiAoUmVuZGVyVGFi
bGVDb2wqIGNvbEdyb3VwID0gY29sRWxlbWVudChlbmRDb2x1bW4pKSB7Ci0gICAgICAgICAgICBj
b25zdCBCb3JkZXJWYWx1ZSYgZ2IgPSBjb2xHcm91cC0+c3R5bGUoKS0+Ym9yZGVyRW5kKCk7Ci0g
ICAgICAgICAgICBpZiAoZ2Iuc3R5bGUoKSA9PSBCSElEREVOKQotICAgICAgICAgICAgICAgIHJl
dHVybiAwOwotICAgICAgICAgICAgaWYgKGdiLnN0eWxlKCkgPiBCSElEREVOKQotICAgICAgICAg
ICAgICAgIGJvcmRlcldpZHRoID0gbWF4KGJvcmRlcldpZHRoLCBnYi53aWR0aCgpKTsKLSAgICAg
ICAgfQorICAgIGNvbnN0IEJvcmRlclZhbHVlJiB0YWJsZUVuZEJvcmRlciA9IHN0eWxlKCktPmJv
cmRlckVuZCgpOworICAgIGlmICh0YWJsZUVuZEJvcmRlci5zdHlsZSgpID09IEJISURERU4pCisg
ICAgICAgIHJldHVybiAwOworICAgIGlmICh0YWJsZUVuZEJvcmRlci5zdHlsZSgpID4gQkhJRERF
TikKKyAgICAgICAgYm9yZGVyV2lkdGggPSB0YWJsZUVuZEJvcmRlci53aWR0aCgpOworCisgICAg
dW5zaWduZWQgZW5kQ29sdW1uID0gbnVtRWZmQ29scygpIC0gMTsKKyAgICBpZiAoUmVuZGVyVGFi
bGVDb2wqIGNvbHVtbiA9IGNvbEVsZW1lbnQoZW5kQ29sdW1uKSkgeworICAgICAgICAvLyBGSVhN
RTogV2UgZG9uJ3QgYWNjb3VudCBmb3IgZGlyZWN0aW9uIG9uIGNvbHVtbnMgYW5kIGNvbHVtbiBn
cm91cHMuCisgICAgICAgIGNvbnN0IEJvcmRlclZhbHVlJiBjb2x1bW5BZGpvaW5pbmdCb3JkZXIg
PSBjb2x1bW4tPnN0eWxlKCktPmJvcmRlckVuZCgpOworICAgICAgICBpZiAoY29sdW1uQWRqb2lu
aW5nQm9yZGVyLnN0eWxlKCkgPT0gQkhJRERFTikKKyAgICAgICAgICAgIHJldHVybiAwOworICAg
ICAgICBpZiAoY29sdW1uQWRqb2luaW5nQm9yZGVyLnN0eWxlKCkgPiBCSElEREVOKQorICAgICAg
ICAgICAgYm9yZGVyV2lkdGggPSBtYXgoYm9yZGVyV2lkdGgsIGNvbHVtbkFkam9pbmluZ0JvcmRl
ci53aWR0aCgpKTsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgbG9naWMgZG9lc24ndCBwcm9wZXJs
eSBhY2NvdW50IGZvciB0aGUgbGFzdCBjb2x1bW4gaW4gdGhlIGxhc3QgY29sdW1uLWdyb3VwIGNh
c2UuCisgICAgfQogCi0gICAgICAgIGlmIChjb25zdCBSZW5kZXJUYWJsZVNlY3Rpb24qIHRvcE5v
bkVtcHR5U2VjdGlvbiA9IHRoaXMtPnRvcE5vbkVtcHR5U2VjdGlvbigpKSB7Ci0gICAgICAgICAg
ICBjb25zdCBCb3JkZXJWYWx1ZSYgc2IgPSB0b3BOb25FbXB0eVNlY3Rpb24tPnN0eWxlKCktPmJv
cmRlckVuZCgpOwotICAgICAgICAgICAgaWYgKHNiLnN0eWxlKCkgPT0gQkhJRERFTikKLSAgICAg
ICAgICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoY29uc3QgUmVuZGVyVGFibGVTZWN0aW9uKiB0
b3BOb25FbXB0eVNlY3Rpb24gPSB0aGlzLT50b3BOb25FbXB0eVNlY3Rpb24oKSkgeworICAgICAg
ICBjb25zdCBCb3JkZXJWYWx1ZSYgc2VjdGlvbkFkam9pbmluZ0JvcmRlciA9IHRvcE5vbkVtcHR5
U2VjdGlvbi0+Ym9yZGVyQWRqb2luaW5nVGFibGVFbmQoKTsKKyAgICAgICAgaWYgKHNlY3Rpb25B
ZGpvaW5pbmdCb3JkZXIuc3R5bGUoKSA9PSBCSElEREVOKQorICAgICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICAgICAgICAgIGlmIChzYi5zdHlsZSgpID4gQkhJRERFTikKLSAgICAgICAgICAgICAg
ICBib3JkZXJXaWR0aCA9IG1heChib3JkZXJXaWR0aCwgc2Iud2lkdGgoKSk7CisgICAgICAgIGlm
IChzZWN0aW9uQWRqb2luaW5nQm9yZGVyLnN0eWxlKCkgPiBCSElEREVOKQorICAgICAgICAgICAg
Ym9yZGVyV2lkdGggPSBtYXgoYm9yZGVyV2lkdGgsIHNlY3Rpb25BZGpvaW5pbmdCb3JkZXIud2lk
dGgoKSk7CiAKLSAgICAgICAgICAgIGNvbnN0IFJlbmRlclRhYmxlU2VjdGlvbjo6Q2VsbFN0cnVj
dCYgY3MgPSB0b3BOb25FbXB0eVNlY3Rpb24tPmNlbGxBdCgwLCBlbmRDb2x1bW4pOwotICAgICAg
ICAgICAgCi0gICAgICAgICAgICBpZiAoY3MuaGFzQ2VsbHMoKSkgewotICAgICAgICAgICAgICAg
IGNvbnN0IEJvcmRlclZhbHVlJiBjYiA9IGNzLnByaW1hcnlDZWxsKCktPnN0eWxlKCktPmJvcmRl
ckVuZCgpOyAvLyBGSVhNRTogTWFrZSB0aGlzIHdvcmsgd2l0aCBwZXJwZW5kaWN1bGFyIGFuZCBm
bGlwcGVkIGNlbGxzLgotICAgICAgICAgICAgICAgIGlmIChjYi5zdHlsZSgpID09IEJISURERU4p
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBpZiAoY29uc3QgUmVuZGVy
VGFibGVDZWxsKiBhZGpvaW5pbmdFbmRDZWxsID0gdG9wTm9uRW1wdHlTZWN0aW9uLT5maXJzdFJv
d0NlbGxBZGpvaW5pbmdUYWJsZUVuZCgpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogTWFrZSB0
aGlzIHdvcmsgd2l0aCBwZXJwZW5kaWN1bGFyIGFuZCBmbGlwcGVkIGNlbGxzLgorICAgICAgICAg
ICAgY29uc3QgQm9yZGVyVmFsdWUmIGVuZENlbGxBZGpvaW5pbmdCb3JkZXIgPSBhZGpvaW5pbmdF
bmRDZWxsLT5ib3JkZXJBZGpvaW5pbmdUYWJsZUVuZCgpOworICAgICAgICAgICAgaWYgKGVuZENl
bGxBZGpvaW5pbmdCb3JkZXIuc3R5bGUoKSA9PSBCSElEREVOKQorICAgICAgICAgICAgICAgIHJl
dHVybiAwOwogCi0gICAgICAgICAgICAgICAgY29uc3QgQm9yZGVyVmFsdWUmIHJiID0gY3MucHJp
bWFyeUNlbGwoKS0+cGFyZW50KCktPnN0eWxlKCktPmJvcmRlckVuZCgpOwotICAgICAgICAgICAg
ICAgIGlmIChyYi5zdHlsZSgpID09IEJISURERU4pCi0gICAgICAgICAgICAgICAgICAgIHJldHVy
biAwOworICAgICAgICAgICAgY29uc3QgQm9yZGVyVmFsdWUmIGZpcnN0Um93QWRqb2luaW5nQm9y
ZGVyID0gYWRqb2luaW5nRW5kQ2VsbC0+cm93KCktPmJvcmRlckFkam9pbmluZ1RhYmxlRW5kKCk7
CisgICAgICAgICAgICBpZiAoZmlyc3RSb3dBZGpvaW5pbmdCb3JkZXIuc3R5bGUoKSA9PSBCSElE
REVOKQorICAgICAgICAgICAgICAgIHJldHVybiAwOwogCi0gICAgICAgICAgICAgICAgaWYgKGNi
LnN0eWxlKCkgPiBCSElEREVOKQotICAgICAgICAgICAgICAgICAgICBib3JkZXJXaWR0aCA9IG1h
eChib3JkZXJXaWR0aCwgY2Iud2lkdGgoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKHJiLnN0eWxl
KCkgPiBCSElEREVOKQotICAgICAgICAgICAgICAgICAgICBib3JkZXJXaWR0aCA9IG1heChib3Jk
ZXJXaWR0aCwgcmIud2lkdGgoKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZW5k
Q2VsbEFkam9pbmluZ0JvcmRlci5zdHlsZSgpID4gQkhJRERFTikKKyAgICAgICAgICAgICAgICBi
b3JkZXJXaWR0aCA9IG1heChib3JkZXJXaWR0aCwgZW5kQ2VsbEFkam9pbmluZ0JvcmRlci53aWR0
aCgpKTsKKyAgICAgICAgICAgIGlmIChmaXJzdFJvd0Fkam9pbmluZ0JvcmRlci5zdHlsZSgpID4g
QkhJRERFTikKKyAgICAgICAgICAgICAgICBib3JkZXJXaWR0aCA9IG1heChib3JkZXJXaWR0aCwg
Zmlyc3RSb3dBZGpvaW5pbmdCb3JkZXIud2lkdGgoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIChib3JkZXJXaWR0aCArIChzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyAx
IDogMCkpIC8gMjsKICAgICB9Ci0gICAgcmV0dXJuIFJlbmRlckJsb2NrOjpib3JkZXJFbmQoKTsK
KyAgICByZXR1cm4gKGJvcmRlcldpZHRoICsgKHN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rp
b24oKSA/IDEgOiAwKSkgLyAyOwogfQogCiB2b2lkIFJlbmRlclRhYmxlOjpyZWNhbGNCb3JkZXJz
SW5Sb3dEaXJlY3Rpb24oKQogeworICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGNvbXB1dGUgdGhl
IGNvbGxhcHNlZCBiZWZvcmUgLyBhZnRlciBib3JkZXJzIGluIHRoZSBzYW1lIGZhc2hpb24uCiAg
ICAgbV9ib3JkZXJTdGFydCA9IGNhbGNCb3JkZXJTdGFydCgpOwogICAgIG1fYm9yZGVyRW5kID0g
Y2FsY0JvcmRlckVuZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlQ2VsbC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
Q2VsbC5oCmluZGV4IGQxYjBhMjhhM2EwZDA1M2VlYjQ0ZDRkODU5NTc5NzhmNWE3OTkwYmMuLjM2
ZmMzNmVkZTQ4ZWQ4N2E1MTdmNTY5NjMzN2M5YTlmMzUzM2FmMzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKQEAgLTE0NSw2ICsxNDUsMTYgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gdGFibGUoKS0+c3R5bGUoKTsKICAgICB9CiAKKyAgICBjb25zdCBC
b3JkZXJWYWx1ZSYgYm9yZGVyQWRqb2luaW5nVGFibGVTdGFydCgpIGNvbnN0CisgICAgeworICAg
ICAgICByZXR1cm4gc3R5bGUoKS0+Ym9yZGVyU3RhcnQoKTsKKyAgICB9CisKKyAgICBjb25zdCBC
b3JkZXJWYWx1ZSYgYm9yZGVyQWRqb2luaW5nVGFibGVFbmQoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHN0eWxlKCktPmJvcmRlckVuZCgpOworICAgIH0KKwogcHJvdGVjdGVkOgogICAg
IHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZVJvdy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
Um93LmgKaW5kZXggMDQ2OTY2MDdkNjkyNzVjYTFmNTg4ZWQxYjI1NjI2YmQ5MzYxYjFiOC4uZDE1
YWUxMmY5ZjIzZjMwMjMyZDE5NThjNWM2NDRkYTRkYjBiYWQwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKQEAgLTY2LDYgKzY2LDE2IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIG1fcm93SW5kZXg7CiAgICAgfQogCisgICAgY29uc3QgQm9yZGVyVmFsdWUm
IGJvcmRlckFkam9pbmluZ1RhYmxlU3RhcnQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IHN0eWxlKCktPmJvcmRlclN0YXJ0KCk7CisgICAgfQorCisgICAgY29uc3QgQm9yZGVyVmFsdWUm
IGJvcmRlckFkam9pbmluZ1RhYmxlRW5kKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBz
dHlsZSgpLT5ib3JkZXJFbmQoKTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBSZW5k
ZXJPYmplY3RDaGlsZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIHsgcmV0dXJuIGNoaWxkcmVuKCk7
IH0KICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdENoaWxkTGlzdCogdmlydHVhbENoaWxk
cmVuKCkgY29uc3QgeyByZXR1cm4gY2hpbGRyZW4oKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAppbmRleCAxNzMwODVjMjU2YmEyNWNiYjJk
NGI4MzFlOTRlYjM0OGI1ZDllNThjLi5lMjBmMDZlNGJkNjNjZDU1MDQ4M2M1N2NmZjQ0M2I0ZDcx
ZDYxNmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVT
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0
aW9uLmNwcApAQCAtMTI3Niw2ICsxMjc2LDE3IEBAIHVuc2lnbmVkIFJlbmRlclRhYmxlU2VjdGlv
bjo6bnVtQ29sdW1ucygpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdCArIDE7CiB9CiAKK2NvbnN0
IFJlbmRlclRhYmxlQ2VsbCogUmVuZGVyVGFibGVTZWN0aW9uOjpmaXJzdFJvd0NlbGxBZGpvaW5p
bmdUYWJsZVN0YXJ0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gY2VsbEF0KDAsIDApLnByaW1hcnlD
ZWxsKCk7Cit9CisKK2NvbnN0IFJlbmRlclRhYmxlQ2VsbCogUmVuZGVyVGFibGVTZWN0aW9uOjpm
aXJzdFJvd0NlbGxBZGpvaW5pbmdUYWJsZUVuZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNlbGxB
dCgwLCB0YWJsZSgpLT5udW1FZmZDb2xzKCkgLSAxKS5wcmltYXJ5Q2VsbCgpOworfQorCisKIHZv
aWQgUmVuZGVyVGFibGVTZWN0aW9uOjphcHBlbmRDb2x1bW4odW5zaWduZWQgcG9zKQogewogICAg
IEFTU0VSVCghbV9uZWVkc0NlbGxSZWNhbGMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlU2VjdGlvbi5oCmluZGV4IGRjZGMxMzQ5MDMyMWI2NjBhNzJmM2I0ZjFiYTY4
MmM3YmU0MWUxZjIuLjcwNmRkN2NiMjBlOTlmZDhjNjRjYTE2ZTIyZTI0NGJhZjRkZjg0M2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmgKQEAgLTEx
NCw2ICsxMTQsMjAgQEAgcHVibGljOgogICAgICAgICBMZW5ndGggbG9naWNhbEhlaWdodDsKICAg
ICB9OwogCisgICAgY29uc3QgQm9yZGVyVmFsdWUmIGJvcmRlckFkam9pbmluZ1RhYmxlU3RhcnQo
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0eWxlKCktPmJvcmRlclN0YXJ0KCk7Cisg
ICAgfQorCisgICAgY29uc3QgQm9yZGVyVmFsdWUmIGJvcmRlckFkam9pbmluZ1RhYmxlRW5kKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBzdHlsZSgpLT5ib3JkZXJFbmQoKTsKKyAgICB9
CisKKyAgICAvLyBUaGVzZSBtZXRob2RzIGhhbmRsZSBtaXhlZCBkaXJlY3Rpb25zIGJldHdlZW4g
dGFibGUgYW5kIHNlY3Rpb25zLgorICAgIGNvbnN0IFJlbmRlclRhYmxlQ2VsbCogZmlyc3RSb3dD
ZWxsQWRqb2luaW5nVGFibGVTdGFydCgpIGNvbnN0OworICAgIGNvbnN0IFJlbmRlclRhYmxlQ2Vs
bCogZmlyc3RSb3dDZWxsQWRqb2luaW5nVGFibGVFbmQoKSBjb25zdDsKKwogICAgIENlbGxTdHJ1
Y3QmIGNlbGxBdCh1bnNpZ25lZCByb3csICB1bnNpZ25lZCBjb2wpIHsgcmV0dXJuIG1fZ3JpZFty
b3ddLnJvd1tjb2xdOyB9CiAgICAgY29uc3QgQ2VsbFN0cnVjdCYgY2VsbEF0KHVuc2lnbmVkIHJv
dywgdW5zaWduZWQgY29sKSBjb25zdCB7IHJldHVybiBtX2dyaWRbcm93XS5yb3dbY29sXTsgfQog
ICAgIFJlbmRlclRhYmxlQ2VsbCogcHJpbWFyeUNlbGxBdCh1bnNpZ25lZCByb3csIHVuc2lnbmVk
IGNvbCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145356</attachid>
            <date>2012-06-01 12:30:13 -0700</date>
            <delta_ts>2012-06-01 13:15:19 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-88110-20120601123012.patch</filename>
            <type>text/plain</type>
            <size>15363</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZlNTBlMDFhMzBjZDI0
ZTI2MDVmN2VhYTk2MTMyNDIwYWY1MGIxNS4uZWUyMTM2ZGRmYmM3MDRiZDgwNWQxMGUzMDkzNDBh
MzgyNDg0NjJkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTA2LTAxICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFByZXBhcmUg
dGFibGUgY29sbGFwc2VkIGJvcmRlciBjb21wdXRhdGlvbiB0byBzdXBwb3J0IG1peGVkIGRpcmVj
dGlvbmFsaXR5IG9uIHJvdyBncm91cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODgxMTAKKworICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLgor
CisgICAgICAgIE5vIGV4cGVjdGVkIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICBPbmUg
YmlnIGlzc3VlIHdpdGggc3VwcG9ydGluZyBtaXhlZCBkaXJlY3Rpb25hbGl0eSBpbnNpZGUgYSB0
YWJsZSBpcyB0aGF0IHRoZSBzdGFydCAvIGVuZAorICAgICAgICBib3JkZXJzIGRvbid0IGFsaWdu
IGJldHdlZW4gdGFibGUgcGFydHMgYW55bW9yZTogdGhlIHN0YXJ0IGJvcmRlciBvZiBhIGx0ciB0
YWJsZSB3aWxsIGhhdmUKKyAgICAgICAgdG8gbWF0Y2ggdGhlIGVuZCBib3JkZXIgb2YgYSBydGwg
cm93IGdyb3VwIGZvciB0aGUgcHVycG9zZSBvZiBjb2xsYXBzZWQgYm9yZGVyIGNvbXB1dGF0aW9u
LgorCisgICAgICAgIFRoaXMgY2hhbmdlIGFkZHMgdGhlIGNvbmNlcHQgb2YgYWRqb2luaW5nIGJv
cmRlcnMgaW4gdGhlIHRhYmxlIGRpcmVjdGlvbiBzbyB0aGF0IHdlIGNhbiBzYWZlbHkKKyAgICAg
ICAgaGlkZSB3aGljaCBleGFjdCBib3JkZXJzIHdlIHBpY2sgdXAgZm9yIHRoZSBjb2xsYXBzZWQg
Ym9yZGVyIGNvbXB1dGF0aW9uLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpjYWxjQm9yZGVyU3RhcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OmNhbGNCb3JkZXJFbmQpOgorICAgICAgICBSZWZh
Y3RvcmVkIHRob3NlIGZ1bmN0aW9ucyB0byB1c2UgcHJvcGVyIG5hbWluZyBhbG9uZyB3aXRoIHRo
ZSBuZXcgQVBJcy4gVGhlIG5hbWUgJ2Fkam9pbmluZycgaXMKKyAgICAgICAgdXNlZCBleHRlbnNp
dmVseSBhcyB3ZSBjYW5ub3QgbWFrZSBhbnkgYXNzdW1wdGlvbnMgb24gd2hpY2ggYm9yZGVycyB3
ZSB3aWxsIGdldC4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OnJlY2FsY0JvcmRl
cnNJblJvd0RpcmVjdGlvbik6CisgICAgICAgIEFkZGVkIGEgRklYTUUgZm91bmQgZHVyaW5nIHRl
c3RpbmcuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmg6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OmJvcmRlckFkam9pbmluZ1RhYmxlU3RhcnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpib3JkZXJBZGpvaW5pbmdUYWJsZUVu
ZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93Lmg6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUYWJsZVJvdzo6Ym9yZGVyQWRqb2luaW5nVGFibGVTdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUYWJsZVJvdzo6Ym9yZGVyQWRqb2luaW5nVGFibGVFbmQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRhYmxlU2VjdGlvbjo6Ym9yZGVyQWRqb2luaW5nVGFibGVTdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmJvcmRlckFkam9pbmluZ1RhYmxlRW5kKToK
KyAgICAgICAgVGhvc2UgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhdCB0aGUgbW9tZW50IHRvIG1h
dGNoIHRoZSBleGlzdGluZyBjb2RlLiBUaGV5CisgICAgICAgIHdpbGwgYmUgY2hhbmdlZCB0byB1
c2UgdGhlIHByb3BlciBkaXJlY3Rpb25hbGl0eSBpbiBhIGZvbGxvdyB1cCBwYXRjaC4KKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGFibGVTZWN0aW9uOjpmaXJzdFJvd0NlbGxBZGpvaW5pbmdUYWJsZVN0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6Zmlyc3RSb3dDZWxsQWRqb2lu
aW5nVGFibGVFbmQpOgorICAgICAgICBUaG9zZSBmdW5jdGlvbnMgcmV0dXJuIHRoZSBjZWxscyB0
aGF0IGlzIGFkam9pbmluZyBhIHRhYmxlIGVkZ2UuIER1ZSB0byB1cyBmbGlwcGluZworICAgICAg
ICB0aGUgY2VsbHMgYXQgbGF5b3V0IHRvIG1hdGNoIHRoZSBzZWN0aW9uJ3MgZGlyZWN0aW9uLCB0
aG9zZSBmdW5jdGlvbnMgd2lsbCBuZWVkIHRvCisgICAgICAgIGFjY291bnQgZm9yIG1peGVkIGRp
cmVjdGlvbiBpbiBkZXRlcm1pbmluZyB0aGUgcmlnaHQgY2VsbCB0byBjb25zaWRlci4KKwogMjAx
Mi0wNi0wMSAgSm9lIFRob21hcyAgPGpvZXRob21hc0Btb3Rvcm9sYS5jb20+CiAKICAgICAgICAg
Z2V0Q29tcHV0ZWRTdHlsZSBmb3IgYmFja2dyb3VuZCBzaG9ydGhhbmQgcHJvcGVydHkgZG9lcyBu
b3QgcmV0dXJuIGJhY2tncm91bmQtb3JpZ2luIGFuZCBiYWNrZ3JvdW5kLWNsaXAuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAppbmRleCA1NDFlZjM3YjU0NmIyZDRjYWY4
ZTgwZjE4ZGQ1NTA2YzUyYWNmY2Q5Li45ZTQzNDY3MzNjYTU2MDU5YTNlNDJkNTY3YzVlNzY4ZmE5
ZWM3NzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKQEAgLTg0
MiwxMTMgKzg0MiwxMTYgQEAgdm9pZCBSZW5kZXJUYWJsZTo6cmVjYWxjU2VjdGlvbnMoKSBjb25z
dAogCiBpbnQgUmVuZGVyVGFibGU6OmNhbGNCb3JkZXJTdGFydCgpIGNvbnN0CiB7Ci0gICAgaWYg
KGNvbGxhcHNlQm9yZGVycygpKSB7Ci0gICAgICAgIC8vIERldGVybWluZWQgYnkgdGhlIGZpcnN0
IGNlbGwgb2YgdGhlIGZpcnN0IHJvdy4gU2VlIHRoZSBDU1MgMi4xIHNwZWMsIHNlY3Rpb24gMTcu
Ni4yLgotICAgICAgICBpZiAoIW51bUVmZkNvbHMoKSkKLSAgICAgICAgICAgIHJldHVybiAwOwor
ICAgIGlmICghY29sbGFwc2VCb3JkZXJzKCkpCisgICAgICAgIHJldHVybiBSZW5kZXJCbG9jazo6
Ym9yZGVyU3RhcnQoKTsKKworICAgIC8vIERldGVybWluZWQgYnkgdGhlIGZpcnN0IGNlbGwgb2Yg
dGhlIGZpcnN0IHJvdy4gU2VlIHRoZSBDU1MgMi4xIHNwZWMsIHNlY3Rpb24gMTcuNi4yLgorICAg
IGlmICghbnVtRWZmQ29scygpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHVuc2lnbmVkIGJv
cmRlcldpZHRoID0gMDsKIAotICAgICAgICB1bnNpZ25lZCBib3JkZXJXaWR0aCA9IDA7CisgICAg
Y29uc3QgQm9yZGVyVmFsdWUmIHRhYmxlU3RhcnRCb3JkZXIgPSBzdHlsZSgpLT5ib3JkZXJTdGFy
dCgpOworICAgIGlmICh0YWJsZVN0YXJ0Qm9yZGVyLnN0eWxlKCkgPT0gQkhJRERFTikKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgaWYgKHRhYmxlU3RhcnRCb3JkZXIuc3R5bGUoKSA+IEJISURERU4p
CisgICAgICAgIGJvcmRlcldpZHRoID0gdGFibGVTdGFydEJvcmRlci53aWR0aCgpOwogCi0gICAg
ICAgIGNvbnN0IEJvcmRlclZhbHVlJiB0YiA9IHN0eWxlKCktPmJvcmRlclN0YXJ0KCk7Ci0gICAg
ICAgIGlmICh0Yi5zdHlsZSgpID09IEJISURERU4pCisgICAgaWYgKFJlbmRlclRhYmxlQ29sKiBj
b2x1bW4gPSBjb2xFbGVtZW50KDApKSB7CisgICAgICAgIC8vIEZJWE1FOiBXZSBkb24ndCBhY2Nv
dW50IGZvciBkaXJlY3Rpb24gb24gY29sdW1ucyBhbmQgY29sdW1uIGdyb3Vwcy4KKyAgICAgICAg
Y29uc3QgQm9yZGVyVmFsdWUmIGNvbHVtbkFkam9pbmluZ0JvcmRlciA9IGNvbHVtbi0+c3R5bGUo
KS0+Ym9yZGVyU3RhcnQoKTsKKyAgICAgICAgaWYgKGNvbHVtbkFkam9pbmluZ0JvcmRlci5zdHls
ZSgpID09IEJISURERU4pCiAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgaWYgKHRiLnN0
eWxlKCkgPiBCSElEREVOKQotICAgICAgICAgICAgYm9yZGVyV2lkdGggPSB0Yi53aWR0aCgpOwor
ICAgICAgICBpZiAoY29sdW1uQWRqb2luaW5nQm9yZGVyLnN0eWxlKCkgPiBCSElEREVOKQorICAg
ICAgICAgICAgYm9yZGVyV2lkdGggPSBtYXgoYm9yZGVyV2lkdGgsIGNvbHVtbkFkam9pbmluZ0Jv
cmRlci53aWR0aCgpKTsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgbG9naWMgZG9lc24ndCBwcm9w
ZXJseSBhY2NvdW50IGZvciB0aGUgZmlyc3QgY29sdW1uIGluIHRoZSBmaXJzdCBjb2x1bW4tZ3Jv
dXAgY2FzZS4KKyAgICB9CiAKLSAgICAgICAgaWYgKFJlbmRlclRhYmxlQ29sKiBjb2xHcm91cCA9
IGNvbEVsZW1lbnQoMCkpIHsKLSAgICAgICAgICAgIGNvbnN0IEJvcmRlclZhbHVlJiBnYiA9IGNv
bEdyb3VwLT5zdHlsZSgpLT5ib3JkZXJTdGFydCgpOwotICAgICAgICAgICAgaWYgKGdiLnN0eWxl
KCkgPT0gQkhJRERFTikKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIGlm
IChnYi5zdHlsZSgpID4gQkhJRERFTikKLSAgICAgICAgICAgICAgICBib3JkZXJXaWR0aCA9IG1h
eChib3JkZXJXaWR0aCwgZ2Iud2lkdGgoKSk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAg
IGlmIChjb25zdCBSZW5kZXJUYWJsZVNlY3Rpb24qIHRvcE5vbkVtcHR5U2VjdGlvbiA9IHRoaXMt
PnRvcE5vbkVtcHR5U2VjdGlvbigpKSB7Ci0gICAgICAgICAgICBjb25zdCBCb3JkZXJWYWx1ZSYg
c2IgPSB0b3BOb25FbXB0eVNlY3Rpb24tPnN0eWxlKCktPmJvcmRlclN0YXJ0KCk7Ci0gICAgICAg
ICAgICBpZiAoc2Iuc3R5bGUoKSA9PSBCSElEREVOKQotICAgICAgICAgICAgICAgIHJldHVybiAw
OworICAgIGlmIChjb25zdCBSZW5kZXJUYWJsZVNlY3Rpb24qIHRvcE5vbkVtcHR5U2VjdGlvbiA9
IHRoaXMtPnRvcE5vbkVtcHR5U2VjdGlvbigpKSB7CisgICAgICAgIGNvbnN0IEJvcmRlclZhbHVl
JiBzZWN0aW9uQWRqb2luaW5nQm9yZGVyID0gdG9wTm9uRW1wdHlTZWN0aW9uLT5ib3JkZXJBZGpv
aW5pbmdUYWJsZVN0YXJ0KCk7CisgICAgICAgIGlmIChzZWN0aW9uQWRqb2luaW5nQm9yZGVyLnN0
eWxlKCkgPT0gQkhJRERFTikKKyAgICAgICAgICAgIHJldHVybiAwOwogCi0gICAgICAgICAgICBp
ZiAoc2Iuc3R5bGUoKSA+IEJISURERU4pCi0gICAgICAgICAgICAgICAgYm9yZGVyV2lkdGggPSBt
YXgoYm9yZGVyV2lkdGgsIHNiLndpZHRoKCkpOworICAgICAgICBpZiAoc2VjdGlvbkFkam9pbmlu
Z0JvcmRlci5zdHlsZSgpID4gQkhJRERFTikKKyAgICAgICAgICAgIGJvcmRlcldpZHRoID0gbWF4
KGJvcmRlcldpZHRoLCBzZWN0aW9uQWRqb2luaW5nQm9yZGVyLndpZHRoKCkpOwogCi0gICAgICAg
ICAgICBjb25zdCBSZW5kZXJUYWJsZVNlY3Rpb246OkNlbGxTdHJ1Y3QmIGNzID0gdG9wTm9uRW1w
dHlTZWN0aW9uLT5jZWxsQXQoMCwgMCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChj
cy5oYXNDZWxscygpKSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgQm9yZGVyVmFsdWUmIGNiID0g
Y3MucHJpbWFyeUNlbGwoKS0+c3R5bGUoKS0+Ym9yZGVyU3RhcnQoKTsgLy8gRklYTUU6IE1ha2Ug
dGhpcyB3b3JrIHdpdGggcGVycGVuZGljdWFsciBhbmQgZmxpcHBlZCBjZWxscy4KLSAgICAgICAg
ICAgICAgICBpZiAoY2Iuc3R5bGUoKSA9PSBCSElEREVOKQotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgaWYgKGNvbnN0IFJlbmRlclRhYmxlQ2VsbCogYWRqb2luaW5nU3Rh
cnRDZWxsID0gdG9wTm9uRW1wdHlTZWN0aW9uLT5maXJzdFJvd0NlbGxBZGpvaW5pbmdUYWJsZVN0
YXJ0KCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgd29yayB3aXRoIHBlcnBl
bmRpY3VsYXIgYW5kIGZsaXBwZWQgY2VsbHMuCisgICAgICAgICAgICBjb25zdCBCb3JkZXJWYWx1
ZSYgc3RhcnRDZWxsQWRqb2luaW5nQm9yZGVyID0gYWRqb2luaW5nU3RhcnRDZWxsLT5ib3JkZXJB
ZGpvaW5pbmdUYWJsZVN0YXJ0KCk7CisgICAgICAgICAgICBpZiAoc3RhcnRDZWxsQWRqb2luaW5n
Qm9yZGVyLnN0eWxlKCkgPT0gQkhJRERFTikKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKIAot
ICAgICAgICAgICAgICAgIGNvbnN0IEJvcmRlclZhbHVlJiByYiA9IGNzLnByaW1hcnlDZWxsKCkt
PnBhcmVudCgpLT5zdHlsZSgpLT5ib3JkZXJTdGFydCgpOwotICAgICAgICAgICAgICAgIGlmIChy
Yi5zdHlsZSgpID09IEJISURERU4pCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAg
ICAgICAgICAgY29uc3QgQm9yZGVyVmFsdWUmIGZpcnN0Um93QWRqb2luaW5nQm9yZGVyID0gYWRq
b2luaW5nU3RhcnRDZWxsLT5yb3coKS0+Ym9yZGVyQWRqb2luaW5nVGFibGVTdGFydCgpOworICAg
ICAgICAgICAgaWYgKGZpcnN0Um93QWRqb2luaW5nQm9yZGVyLnN0eWxlKCkgPT0gQkhJRERFTikK
KyAgICAgICAgICAgICAgICByZXR1cm4gMDsKIAotICAgICAgICAgICAgICAgIGlmIChjYi5zdHls
ZSgpID4gQkhJRERFTikKLSAgICAgICAgICAgICAgICAgICAgYm9yZGVyV2lkdGggPSBtYXgoYm9y
ZGVyV2lkdGgsIGNiLndpZHRoKCkpOwotICAgICAgICAgICAgICAgIGlmIChyYi5zdHlsZSgpID4g
QkhJRERFTikKLSAgICAgICAgICAgICAgICAgICAgYm9yZGVyV2lkdGggPSBtYXgoYm9yZGVyV2lk
dGgsIHJiLndpZHRoKCkpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN0YXJ0Q2Vs
bEFkam9pbmluZ0JvcmRlci5zdHlsZSgpID4gQkhJRERFTikKKyAgICAgICAgICAgICAgICBib3Jk
ZXJXaWR0aCA9IG1heChib3JkZXJXaWR0aCwgc3RhcnRDZWxsQWRqb2luaW5nQm9yZGVyLndpZHRo
KCkpOworICAgICAgICAgICAgaWYgKGZpcnN0Um93QWRqb2luaW5nQm9yZGVyLnN0eWxlKCkgPiBC
SElEREVOKQorICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoID0gbWF4KGJvcmRlcldpZHRoLCBm
aXJzdFJvd0Fkam9pbmluZ0JvcmRlci53aWR0aCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1
cm4gKGJvcmRlcldpZHRoICsgKHN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IDAg
OiAxKSkgLyAyOwogICAgIH0KLSAgICByZXR1cm4gUmVuZGVyQmxvY2s6OmJvcmRlclN0YXJ0KCk7
CisgICAgcmV0dXJuIChib3JkZXJXaWR0aCArIChzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0
aW9uKCkgPyAwIDogMSkpIC8gMjsKIH0KIAogaW50IFJlbmRlclRhYmxlOjpjYWxjQm9yZGVyRW5k
KCkgY29uc3QKIHsKLSAgICBpZiAoY29sbGFwc2VCb3JkZXJzKCkpIHsKLSAgICAgICAgLy8gRGV0
ZXJtaW5lZCBieSB0aGUgbGFzdCBjZWxsIG9mIHRoZSBmaXJzdCByb3cuIFNlZSB0aGUgQ1NTIDIu
MSBzcGVjLCBzZWN0aW9uIDE3LjYuMi4KLSAgICAgICAgaWYgKCFudW1FZmZDb2xzKCkpCi0gICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoIWNvbGxhcHNlQm9yZGVycygpKQorICAgICAgICBy
ZXR1cm4gUmVuZGVyQmxvY2s6OmJvcmRlckVuZCgpOwogCi0gICAgICAgIHVuc2lnbmVkIGJvcmRl
cldpZHRoID0gMDsKKyAgICAvLyBEZXRlcm1pbmVkIGJ5IHRoZSBsYXN0IGNlbGwgb2YgdGhlIGZp
cnN0IHJvdy4gU2VlIHRoZSBDU1MgMi4xIHNwZWMsIHNlY3Rpb24gMTcuNi4yLgorICAgIGlmICgh
bnVtRWZmQ29scygpKQorICAgICAgICByZXR1cm4gMDsKIAotICAgICAgICBjb25zdCBCb3JkZXJW
YWx1ZSYgdGIgPSBzdHlsZSgpLT5ib3JkZXJFbmQoKTsKLSAgICAgICAgaWYgKHRiLnN0eWxlKCkg
PT0gQkhJRERFTikKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBpZiAodGIuc3R5bGUo
KSA+IEJISURERU4pCi0gICAgICAgICAgICBib3JkZXJXaWR0aCA9IHRiLndpZHRoKCk7CisgICAg
dW5zaWduZWQgYm9yZGVyV2lkdGggPSAwOwogCi0gICAgICAgIHVuc2lnbmVkIGVuZENvbHVtbiA9
IG51bUVmZkNvbHMoKSAtIDE7Ci0gICAgICAgIGlmIChSZW5kZXJUYWJsZUNvbCogY29sR3JvdXAg
PSBjb2xFbGVtZW50KGVuZENvbHVtbikpIHsKLSAgICAgICAgICAgIGNvbnN0IEJvcmRlclZhbHVl
JiBnYiA9IGNvbEdyb3VwLT5zdHlsZSgpLT5ib3JkZXJFbmQoKTsKLSAgICAgICAgICAgIGlmIChn
Yi5zdHlsZSgpID09IEJISURERU4pCi0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAg
ICAgICBpZiAoZ2Iuc3R5bGUoKSA+IEJISURERU4pCi0gICAgICAgICAgICAgICAgYm9yZGVyV2lk
dGggPSBtYXgoYm9yZGVyV2lkdGgsIGdiLndpZHRoKCkpOwotICAgICAgICB9CisgICAgY29uc3Qg
Qm9yZGVyVmFsdWUmIHRhYmxlRW5kQm9yZGVyID0gc3R5bGUoKS0+Ym9yZGVyRW5kKCk7CisgICAg
aWYgKHRhYmxlRW5kQm9yZGVyLnN0eWxlKCkgPT0gQkhJRERFTikKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgaWYgKHRhYmxlRW5kQm9yZGVyLnN0eWxlKCkgPiBCSElEREVOKQorICAgICAgICBib3Jk
ZXJXaWR0aCA9IHRhYmxlRW5kQm9yZGVyLndpZHRoKCk7CisKKyAgICB1bnNpZ25lZCBlbmRDb2x1
bW4gPSBudW1FZmZDb2xzKCkgLSAxOworICAgIGlmIChSZW5kZXJUYWJsZUNvbCogY29sdW1uID0g
Y29sRWxlbWVudChlbmRDb2x1bW4pKSB7CisgICAgICAgIC8vIEZJWE1FOiBXZSBkb24ndCBhY2Nv
dW50IGZvciBkaXJlY3Rpb24gb24gY29sdW1ucyBhbmQgY29sdW1uIGdyb3Vwcy4KKyAgICAgICAg
Y29uc3QgQm9yZGVyVmFsdWUmIGNvbHVtbkFkam9pbmluZ0JvcmRlciA9IGNvbHVtbi0+c3R5bGUo
KS0+Ym9yZGVyRW5kKCk7CisgICAgICAgIGlmIChjb2x1bW5BZGpvaW5pbmdCb3JkZXIuc3R5bGUo
KSA9PSBCSElEREVOKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGlmIChjb2x1bW5B
ZGpvaW5pbmdCb3JkZXIuc3R5bGUoKSA+IEJISURERU4pCisgICAgICAgICAgICBib3JkZXJXaWR0
aCA9IG1heChib3JkZXJXaWR0aCwgY29sdW1uQWRqb2luaW5nQm9yZGVyLndpZHRoKCkpOworICAg
ICAgICAvLyBGSVhNRTogVGhpcyBsb2dpYyBkb2Vzbid0IHByb3Blcmx5IGFjY291bnQgZm9yIHRo
ZSBsYXN0IGNvbHVtbiBpbiB0aGUgbGFzdCBjb2x1bW4tZ3JvdXAgY2FzZS4KKyAgICB9CiAKLSAg
ICAgICAgaWYgKGNvbnN0IFJlbmRlclRhYmxlU2VjdGlvbiogdG9wTm9uRW1wdHlTZWN0aW9uID0g
dGhpcy0+dG9wTm9uRW1wdHlTZWN0aW9uKCkpIHsKLSAgICAgICAgICAgIGNvbnN0IEJvcmRlclZh
bHVlJiBzYiA9IHRvcE5vbkVtcHR5U2VjdGlvbi0+c3R5bGUoKS0+Ym9yZGVyRW5kKCk7Ci0gICAg
ICAgICAgICBpZiAoc2Iuc3R5bGUoKSA9PSBCSElEREVOKQotICAgICAgICAgICAgICAgIHJldHVy
biAwOworICAgIGlmIChjb25zdCBSZW5kZXJUYWJsZVNlY3Rpb24qIHRvcE5vbkVtcHR5U2VjdGlv
biA9IHRoaXMtPnRvcE5vbkVtcHR5U2VjdGlvbigpKSB7CisgICAgICAgIGNvbnN0IEJvcmRlclZh
bHVlJiBzZWN0aW9uQWRqb2luaW5nQm9yZGVyID0gdG9wTm9uRW1wdHlTZWN0aW9uLT5ib3JkZXJB
ZGpvaW5pbmdUYWJsZUVuZCgpOworICAgICAgICBpZiAoc2VjdGlvbkFkam9pbmluZ0JvcmRlci5z
dHlsZSgpID09IEJISURERU4pCisgICAgICAgICAgICByZXR1cm4gMDsKIAotICAgICAgICAgICAg
aWYgKHNiLnN0eWxlKCkgPiBCSElEREVOKQotICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoID0g
bWF4KGJvcmRlcldpZHRoLCBzYi53aWR0aCgpKTsKKyAgICAgICAgaWYgKHNlY3Rpb25BZGpvaW5p
bmdCb3JkZXIuc3R5bGUoKSA+IEJISURERU4pCisgICAgICAgICAgICBib3JkZXJXaWR0aCA9IG1h
eChib3JkZXJXaWR0aCwgc2VjdGlvbkFkam9pbmluZ0JvcmRlci53aWR0aCgpKTsKIAotICAgICAg
ICAgICAgY29uc3QgUmVuZGVyVGFibGVTZWN0aW9uOjpDZWxsU3RydWN0JiBjcyA9IHRvcE5vbkVt
cHR5U2VjdGlvbi0+Y2VsbEF0KDAsIGVuZENvbHVtbik7Ci0gICAgICAgICAgICAKLSAgICAgICAg
ICAgIGlmIChjcy5oYXNDZWxscygpKSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgQm9yZGVyVmFs
dWUmIGNiID0gY3MucHJpbWFyeUNlbGwoKS0+c3R5bGUoKS0+Ym9yZGVyRW5kKCk7IC8vIEZJWE1F
OiBNYWtlIHRoaXMgd29yayB3aXRoIHBlcnBlbmRpY3VsYXIgYW5kIGZsaXBwZWQgY2VsbHMuCi0g
ICAgICAgICAgICAgICAgaWYgKGNiLnN0eWxlKCkgPT0gQkhJRERFTikKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIGlmIChjb25zdCBSZW5kZXJUYWJsZUNlbGwqIGFkam9p
bmluZ0VuZENlbGwgPSB0b3BOb25FbXB0eVNlY3Rpb24tPmZpcnN0Um93Q2VsbEFkam9pbmluZ1Rh
YmxlRW5kKCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgd29yayB3aXRoIHBl
cnBlbmRpY3VsYXIgYW5kIGZsaXBwZWQgY2VsbHMuCisgICAgICAgICAgICBjb25zdCBCb3JkZXJW
YWx1ZSYgZW5kQ2VsbEFkam9pbmluZ0JvcmRlciA9IGFkam9pbmluZ0VuZENlbGwtPmJvcmRlckFk
am9pbmluZ1RhYmxlRW5kKCk7CisgICAgICAgICAgICBpZiAoZW5kQ2VsbEFkam9pbmluZ0JvcmRl
ci5zdHlsZSgpID09IEJISURERU4pCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAg
ICAgICAgICAgICBjb25zdCBCb3JkZXJWYWx1ZSYgcmIgPSBjcy5wcmltYXJ5Q2VsbCgpLT5wYXJl
bnQoKS0+c3R5bGUoKS0+Ym9yZGVyRW5kKCk7Ci0gICAgICAgICAgICAgICAgaWYgKHJiLnN0eWxl
KCkgPT0gQkhJRERFTikKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAg
ICBjb25zdCBCb3JkZXJWYWx1ZSYgZmlyc3RSb3dBZGpvaW5pbmdCb3JkZXIgPSBhZGpvaW5pbmdF
bmRDZWxsLT5yb3coKS0+Ym9yZGVyQWRqb2luaW5nVGFibGVFbmQoKTsKKyAgICAgICAgICAgIGlm
IChmaXJzdFJvd0Fkam9pbmluZ0JvcmRlci5zdHlsZSgpID09IEJISURERU4pCisgICAgICAgICAg
ICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgICAgICAgICBpZiAoY2Iuc3R5bGUoKSA+IEJISURE
RU4pCi0gICAgICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoID0gbWF4KGJvcmRlcldpZHRoLCBj
Yi53aWR0aCgpKTsKLSAgICAgICAgICAgICAgICBpZiAocmIuc3R5bGUoKSA+IEJISURERU4pCi0g
ICAgICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoID0gbWF4KGJvcmRlcldpZHRoLCByYi53aWR0
aCgpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChlbmRDZWxsQWRqb2luaW5nQm9y
ZGVyLnN0eWxlKCkgPiBCSElEREVOKQorICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoID0gbWF4
KGJvcmRlcldpZHRoLCBlbmRDZWxsQWRqb2luaW5nQm9yZGVyLndpZHRoKCkpOworICAgICAgICAg
ICAgaWYgKGZpcnN0Um93QWRqb2luaW5nQm9yZGVyLnN0eWxlKCkgPiBCSElEREVOKQorICAgICAg
ICAgICAgICAgIGJvcmRlcldpZHRoID0gbWF4KGJvcmRlcldpZHRoLCBmaXJzdFJvd0Fkam9pbmlu
Z0JvcmRlci53aWR0aCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gKGJvcmRlcldpZHRo
ICsgKHN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IDEgOiAwKSkgLyAyOwogICAg
IH0KLSAgICByZXR1cm4gUmVuZGVyQmxvY2s6OmJvcmRlckVuZCgpOworICAgIHJldHVybiAoYm9y
ZGVyV2lkdGggKyAoc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gMSA6IDApKSAv
IDI7CiB9CiAKIHZvaWQgUmVuZGVyVGFibGU6OnJlY2FsY0JvcmRlcnNJblJvd0RpcmVjdGlvbigp
CiB7CisgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gY29tcHV0ZSB0aGUgY29sbGFwc2VkIGJlZm9y
ZSAvIGFmdGVyIGJvcmRlcnMgaW4gdGhlIHNhbWUgZmFzaGlvbi4KICAgICBtX2JvcmRlclN0YXJ0
ID0gY2FsY0JvcmRlclN0YXJ0KCk7CiAgICAgbV9ib3JkZXJFbmQgPSBjYWxjQm9yZGVyRW5kKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxs
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKaW5kZXggZDFi
MGEyOGEzYTBkMDUzZWViNDRkNGQ4NTk1Nzk3OGY1YTc5OTBiYy4uMzZmYzM2ZWRlNDhlZDg3YTUx
N2Y1Njk2MzM3YzlhOWYzNTMzYWYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlQ2VsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZUNlbGwuaApAQCAtMTQ1LDYgKzE0NSwxNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biB0YWJsZSgpLT5zdHlsZSgpOwogICAgIH0KIAorICAgIGNvbnN0IEJvcmRlclZhbHVlJiBib3Jk
ZXJBZGpvaW5pbmdUYWJsZVN0YXJ0KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBzdHls
ZSgpLT5ib3JkZXJTdGFydCgpOworICAgIH0KKworICAgIGNvbnN0IEJvcmRlclZhbHVlJiBib3Jk
ZXJBZGpvaW5pbmdUYWJsZUVuZCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gc3R5bGUo
KS0+Ym9yZGVyRW5kKCk7CisgICAgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHN0
eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxl
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuaAppbmRleCAwNDY5
NjYwN2Q2OTI3NWNhMWY1ODhlZDFiMjU2MjZiZDkzNjFiMWI4Li5kMTVhZTEyZjlmMjNmMzAyMzJk
MTk1OGM1YzY0NGRhNGRiMGJhZDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGVSb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVSb3cuaApAQCAtNjYsNiArNjYsMTYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9y
b3dJbmRleDsKICAgICB9CiAKKyAgICBjb25zdCBCb3JkZXJWYWx1ZSYgYm9yZGVyQWRqb2luaW5n
VGFibGVTdGFydCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gc3R5bGUoKS0+Ym9yZGVy
U3RhcnQoKTsKKyAgICB9CisKKyAgICBjb25zdCBCb3JkZXJWYWx1ZSYgYm9yZGVyQWRqb2luaW5n
VGFibGVFbmQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0eWxlKCktPmJvcmRlckVu
ZCgpOworICAgIH0KKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdENoaWxkTGlz
dCogdmlydHVhbENoaWxkcmVuKCkgeyByZXR1cm4gY2hpbGRyZW4oKTsgfQogICAgIHZpcnR1YWwg
Y29uc3QgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRyZW4oKSBjb25zdCB7IHJl
dHVybiBjaGlsZHJlbigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVTZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZVNlY3Rpb24uY3BwCmluZGV4IDE3MzA4NWMyNTZiYTI1Y2JiMmQ0YjgzMWU5NGViMzQ4YjVk
OWU1OGMuLmUyMGYwNmU0YmQ2M2NkNTUwNDgzYzU3Y2ZmNDQzYjRkNzFkNjE2ZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCkBAIC0xMjc2
LDYgKzEyNzYsMTcgQEAgdW5zaWduZWQgUmVuZGVyVGFibGVTZWN0aW9uOjpudW1Db2x1bW5zKCkg
Y29uc3QKICAgICByZXR1cm4gcmVzdWx0ICsgMTsKIH0KIAorY29uc3QgUmVuZGVyVGFibGVDZWxs
KiBSZW5kZXJUYWJsZVNlY3Rpb246OmZpcnN0Um93Q2VsbEFkam9pbmluZ1RhYmxlU3RhcnQoKSBj
b25zdAoreworICAgIHJldHVybiBjZWxsQXQoMCwgMCkucHJpbWFyeUNlbGwoKTsKK30KKworY29u
c3QgUmVuZGVyVGFibGVDZWxsKiBSZW5kZXJUYWJsZVNlY3Rpb246OmZpcnN0Um93Q2VsbEFkam9p
bmluZ1RhYmxlRW5kKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY2VsbEF0KDAsIHRhYmxlKCktPm51
bUVmZkNvbHMoKSAtIDEpLnByaW1hcnlDZWxsKCk7Cit9CisKKwogdm9pZCBSZW5kZXJUYWJsZVNl
Y3Rpb246OmFwcGVuZENvbHVtbih1bnNpZ25lZCBwb3MpCiB7CiAgICAgQVNTRVJUKCFtX25lZWRz
Q2VsbFJlY2FsYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0
aW9uLmgKaW5kZXggZGNkYzEzNDkwMzIxYjY2MGE3MmYzYjRmMWJhNjgyYzdiZTQxZTFmMi4uY2Nk
NWI5NmViYzA0NjUxZDcwOWZhMjY2YzlhN2M1NDhhY2E3MjZlOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaApAQCAtMTE0LDYgKzExNCwxOSBAQCBw
dWJsaWM6CiAgICAgICAgIExlbmd0aCBsb2dpY2FsSGVpZ2h0OwogICAgIH07CiAKKyAgICBjb25z
dCBCb3JkZXJWYWx1ZSYgYm9yZGVyQWRqb2luaW5nVGFibGVTdGFydCgpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4gc3R5bGUoKS0+Ym9yZGVyU3RhcnQoKTsKKyAgICB9CisKKyAgICBjb25z
dCBCb3JkZXJWYWx1ZSYgYm9yZGVyQWRqb2luaW5nVGFibGVFbmQoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHN0eWxlKCktPmJvcmRlckVuZCgpOworICAgIH0KKworICAgIGNvbnN0IFJl
bmRlclRhYmxlQ2VsbCogZmlyc3RSb3dDZWxsQWRqb2luaW5nVGFibGVTdGFydCgpIGNvbnN0Owor
ICAgIGNvbnN0IFJlbmRlclRhYmxlQ2VsbCogZmlyc3RSb3dDZWxsQWRqb2luaW5nVGFibGVFbmQo
KSBjb25zdDsKKwogICAgIENlbGxTdHJ1Y3QmIGNlbGxBdCh1bnNpZ25lZCByb3csICB1bnNpZ25l
ZCBjb2wpIHsgcmV0dXJuIG1fZ3JpZFtyb3ddLnJvd1tjb2xdOyB9CiAgICAgY29uc3QgQ2VsbFN0
cnVjdCYgY2VsbEF0KHVuc2lnbmVkIHJvdywgdW5zaWduZWQgY29sKSBjb25zdCB7IHJldHVybiBt
X2dyaWRbcm93XS5yb3dbY29sXTsgfQogICAgIFJlbmRlclRhYmxlQ2VsbCogcHJpbWFyeUNlbGxB
dCh1bnNpZ25lZCByb3csIHVuc2lnbmVkIGNvbCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>