<?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>66347</bug_id>
          
          <creation_ts>2011-08-16 16:15:03 -0700</creation_ts>
          <short_desc>Switch html/* to to new layout types</short_desc>
          <delta_ts>2011-08-17 20:38: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>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>
          
          <blocked>63567</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Emil A Eklund">eae</reporter>
          <assigned_to name="Emil A Eklund">eae</assigned_to>
          <cc>eric</cc>
    
    <cc>leviw</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>451954</commentid>
    <comment_count>0</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-08-16 16:15:03 -0700</bug_when>
    <thetext>Convert HTML* and shadow element to new layout abstraction as a part of the ongoing conversion work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451995</commentid>
    <comment_count>1</comment_count>
      <attachid>104121</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-08-16 17:03:29 -0700</bug_when>
    <thetext>Created attachment 104121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452380</commentid>
    <comment_count>2</comment_count>
      <attachid>104121</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-08-17 11:10:10 -0700</bug_when>
    <thetext>Comment on attachment 104121
Patch

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

&gt; Source/WebCore/html/HTMLAreaElement.cpp:78
&gt; -    m_lastSize = IntSize(-1, -1);
&gt; +    m_lastSize = LayoutSize(-1, -1);

I wonder if this -1 -1 size needs to be a constant in this file.

&gt; Source/WebCore/rendering/RenderImage.cpp:443
&gt; +            if (scaleFactor != 1.0f)
&gt; +                mapLocation.scale(scaleFactor, scaleFactor);

The if isn&apos;t really necessary. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452455</commentid>
    <comment_count>3</comment_count>
      <attachid>104208</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-08-17 12:04:58 -0700</bug_when>
    <thetext>Created attachment 104208
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452833</commentid>
    <comment_count>4</comment_count>
      <attachid>104208</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-17 20:38:20 -0700</bug_when>
    <thetext>Comment on attachment 104208
Patch for landing

Clearing flags on attachment: 104208

Committed r93279: &lt;http://trac.webkit.org/changeset/93279&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452834</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-17 20:38:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104121</attachid>
            <date>2011-08-16 17:03:29 -0700</date>
            <delta_ts>2011-08-17 12:04:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66347-20110816170328.patch</filename>
            <type>text/plain</type>
            <size>19609</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzMTc4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTEtMDgtMTYgIEVtaWwgQSBF
a2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFN3aXRjaCBodG1sLyogdG8gdG8g
bmV3IGxheW91dCB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjYzNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDb252ZXJ0IEhUTUwqIGFuZCBzaGFkb3cgZWxlbWVudCB0byBuZXcgbGF5b3V0IGFi
c3RyYWN0aW9uIGFzIGEgcGFydCBvZgorICAgICAgICB0aGUgb25nb2luZyBjb252ZXJzaW9uIHdv
cmsuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAg
ICAgICAqIGh0bWwvSFRNTEFyZWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxB
cmVhRWxlbWVudDo6aW52YWxpZGF0ZUNhY2hlZFJlZ2lvbik6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MQXJlYUVsZW1lbnQ6Om1hcE1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFy
ZWFFbGVtZW50Ojpjb21wdXRlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQXJlYUVsZW1l
bnQ6OmNvbXB1dGVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBcmVhRWxlbWVudDo6Z2V0
UmVnaW9uKToKKyAgICAgICAgKiBodG1sL0hUTUxBcmVhRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0Vs
ZW1lbnQ6OnBhaW50KToKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MTWFwRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWFw
RWxlbWVudDo6bWFwTW91c2VFdmVudCk6CisgICAgICAgICogaHRtbC9IVE1MTWFwRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSW1hZ2VEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bWFnZURvY3VtZW50UGFyc2VyOjpmaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEb2N1
bWVudDo6c2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEb2N1bWVudDo6cmVzaXplSW1h
Z2VUb0ZpdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURvY3VtZW50OjppbWFnZUZpdHNJbldp
bmRvdyk6CisgICAgICAgICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjphZGp1c3RCdWJibGVQb3NpdGlvbik6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3SW1hZ2UpOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6c3RhcnREcmFnKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y29udGludWVEcmFnKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6c2V0UG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVy
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTbGlkZXJUaHVtYkVsZW1lbnQ6OmRyYWdGcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRl
clRodW1iRWxlbWVudDo6c2V0UG9zaXRpb25Gcm9tUG9pbnQpOgorICAgICAgICAqIGh0bWwvc2hh
ZG93L1NsaWRlclRodW1iRWxlbWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6bm9kZUF0UG9pbnQpOgorCiAy
MDExLTA4LTE2ICBTY290dCBCeWVyICA8c2NvdHRieWVyQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBGaXggc3BlbGxpbmcgZXJyb3IuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVh
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVs
ZW1lbnQuY3BwCShyZXZpc2lvbiA5MzE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFy
ZWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUsMTcgKzc1LDE3IEBAIHZvaWQgSFRN
TEFyZWFFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnUKIAogdm9pZCBIVE1MQXJlYUVsZW1lbnQ6
OmludmFsaWRhdGVDYWNoZWRSZWdpb24oKQogewotICAgIG1fbGFzdFNpemUgPSBJbnRTaXplKC0x
LCAtMSk7CisgICAgbV9sYXN0U2l6ZSA9IExheW91dFNpemUoLTEsIC0xKTsKIH0KIAotYm9vbCBI
VE1MQXJlYUVsZW1lbnQ6Om1hcE1vdXNlRXZlbnQoaW50IHgsIGludCB5LCBjb25zdCBJbnRTaXpl
JiBzaXplLCBIaXRUZXN0UmVzdWx0JiByZXN1bHQpCitib29sIEhUTUxBcmVhRWxlbWVudDo6bWFw
TW91c2VFdmVudChMYXlvdXRQb2ludCBsb2NhdGlvbiwgY29uc3QgTGF5b3V0U2l6ZSYgc2l6ZSwg
SGl0VGVzdFJlc3VsdCYgcmVzdWx0KQogewogICAgIGlmIChtX2xhc3RTaXplICE9IHNpemUpIHsK
ICAgICAgICAgbV9yZWdpb24gPSBhZG9wdFB0cihuZXcgUGF0aChnZXRSZWdpb24oc2l6ZSkpKTsK
ICAgICAgICAgbV9sYXN0U2l6ZSA9IHNpemU7CiAgICAgfQogCi0gICAgaWYgKCFtX3JlZ2lvbi0+
Y29udGFpbnMoSW50UG9pbnQoeCwgeSkpKQorICAgIGlmICghbV9yZWdpb24tPmNvbnRhaW5zKGxv
Y2F0aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIHJlc3VsdC5zZXRJbm5l
ck5vZGUodGhpcyk7CkBAIC0xMDIsNyArMTAyLDcgQEAgUGF0aCBIVE1MQXJlYUVsZW1lbnQ6OmNv
bXB1dGVQYXRoKFJlbmRlcgogICAgIEZsb2F0UG9pbnQgYWJzUG9zID0gb2JqLT5sb2NhbFRvQWJz
b2x1dGUoKTsKIAogICAgIC8vIERlZmF1bHQgc2hvdWxkIGRlZmF1bHQgdG8gdGhlIHNpemUgb2Yg
dGhlIGNvbnRhaW5pbmcgb2JqZWN0LgotICAgIEludFNpemUgc2l6ZSA9IG1fbGFzdFNpemU7Cisg
ICAgTGF5b3V0U2l6ZSBzaXplID0gbV9sYXN0U2l6ZTsKICAgICBpZiAobV9zaGFwZSA9PSBEZWZh
dWx0KQogICAgICAgICBzaXplID0gb2JqLT5hYnNvbHV0ZU91dGxpbmVCb3VuZHMoKS5zaXplKCk7
CiAgICAgCkBAIC0xMTgsMTggKzExOCwxOCBAQCBQYXRoIEhUTUxBcmVhRWxlbWVudDo6Y29tcHV0
ZVBhdGgoUmVuZGVyCiAgICAgcmV0dXJuIHA7CiB9CiAgICAgCi1JbnRSZWN0IEhUTUxBcmVhRWxl
bWVudDo6Y29tcHV0ZVJlY3QoUmVuZGVyT2JqZWN0KiBvYmopIGNvbnN0CitMYXlvdXRSZWN0IEhU
TUxBcmVhRWxlbWVudDo6Y29tcHV0ZVJlY3QoUmVuZGVyT2JqZWN0KiBvYmopIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QoY29tcHV0ZVBhdGgob2JqKS5ib3VuZGluZ1JlY3Qo
KSk7CisgICAgcmV0dXJuIGVuY2xvc2luZ0xheW91dFJlY3QoY29tcHV0ZVBhdGgob2JqKS5ib3Vu
ZGluZ1JlY3QoKSk7CiB9CiAKLVBhdGggSFRNTEFyZWFFbGVtZW50OjpnZXRSZWdpb24oY29uc3Qg
SW50U2l6ZSYgc2l6ZSkgY29uc3QKK1BhdGggSFRNTEFyZWFFbGVtZW50OjpnZXRSZWdpb24oY29u
c3QgTGF5b3V0U2l6ZSYgc2l6ZSkgY29uc3QKIHsKICAgICBpZiAoIW1fY29vcmRzICYmIG1fc2hh
cGUgIT0gRGVmYXVsdCkKICAgICAgICAgcmV0dXJuIFBhdGgoKTsKIAotICAgIGludCB3aWR0aCA9
IHNpemUud2lkdGgoKTsKLSAgICBpbnQgaGVpZ2h0ID0gc2l6ZS5oZWlnaHQoKTsKKyAgICBMYXlv
dXRVbml0IHdpZHRoID0gc2l6ZS53aWR0aCgpOworICAgIExheW91dFVuaXQgaGVpZ2h0ID0gc2l6
ZS5oZWlnaHQoKTsKIAogICAgIC8vIElmIGVsZW1lbnQgb21pdHMgdGhlIHNoYXBlIGF0dHJpYnV0
ZSwgc2VsZWN0IHNoYXBlIGJhc2VkIG9uIG51bWJlciBvZiBjb29yZGluYXRlcy4KICAgICBTaGFw
ZSBzaGFwZSA9IG1fc2hhcGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50
LmgJKHJldmlzaW9uIDkzMTYxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogI2RlZmluZSBIVE1MQXJlYUVs
ZW1lbnRfaAogCiAjaW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQuaCIKLSNpbmNsdWRlICJJbnRT
aXplLmgiCisjaW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIKICNpbmNsdWRlIDx3dGYvT3duQXJyYXlQ
dHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksOSArMzksOSBAQCBwdWJsaWM6CiAK
ICAgICBib29sIGlzRGVmYXVsdCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcGUgPT0gRGVmYXVsdDsg
fQogCi0gICAgYm9vbCBtYXBNb3VzZUV2ZW50KGludCB4LCBpbnQgeSwgY29uc3QgSW50U2l6ZSYs
IEhpdFRlc3RSZXN1bHQmKTsKKyAgICBib29sIG1hcE1vdXNlRXZlbnQoTGF5b3V0UG9pbnQgbG9j
YXRpb24sIGNvbnN0IExheW91dFNpemUmLCBIaXRUZXN0UmVzdWx0Jik7CiAKLSAgICBJbnRSZWN0
IGNvbXB1dGVSZWN0KFJlbmRlck9iamVjdCopIGNvbnN0OworICAgIExheW91dFJlY3QgY29tcHV0
ZVJlY3QoUmVuZGVyT2JqZWN0KikgY29uc3Q7CiAgICAgUGF0aCBjb21wdXRlUGF0aChSZW5kZXJP
YmplY3QqKSBjb25zdDsKIAogICAgIC8vIFRoZSBwYXJlbnQgbWFwJ3MgaW1hZ2UuCkBAIC02MCwx
MyArNjAsMTMgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMoYm9vbCk7CiAg
ICAgCiAgICAgZW51bSBTaGFwZSB7IERlZmF1bHQsIFBvbHksIFJlY3QsIENpcmNsZSwgVW5rbm93
biB9OwotICAgIFBhdGggZ2V0UmVnaW9uKGNvbnN0IEludFNpemUmKSBjb25zdDsKKyAgICBQYXRo
IGdldFJlZ2lvbihjb25zdCBMYXlvdXRTaXplJikgY29uc3Q7CiAgICAgdm9pZCBpbnZhbGlkYXRl
Q2FjaGVkUmVnaW9uKCk7CiAKICAgICBPd25QdHI8UGF0aD4gbV9yZWdpb247CiAgICAgT3duQXJy
YXlQdHI8TGVuZ3RoPiBtX2Nvb3JkczsKICAgICBpbnQgbV9jb29yZHNMZW47Ci0gICAgSW50U2l6
ZSBtX2xhc3RTaXplOworICAgIExheW91dFNpemUgbV9sYXN0U2l6ZTsKICAgICBTaGFwZSBtX3No
YXBlOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAJKHJldmlzaW9uIDkzMTYxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2NCw3ICsyNjQsNyBAQCB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjpyZXNldCgpCiAgICAgICAgICgqaXQpLT5jYW52YXNSZXNpemVkKHRoaXMpOwog
fQogCi12b2lkIEhUTUxDYW52YXNFbGVtZW50OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IEludFJlY3QmIHIsIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQordm9pZCBIVE1M
Q2FudmFzRWxlbWVudDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlv
dXRSZWN0JiByLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKIHsKICAgICAvLyBDbGVhciB0aGUg
ZGlydHkgcmVjdAogICAgIG1fZGlydHlSZWN0ID0gRmxvYXRSZWN0KCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCShyZXZpc2lvbiA5MzE2MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtOTcs
NyArOTcsNyBAQCBwdWJsaWM6CiAgICAgLy8gVXNlZCBmb3IgcmVuZGVyaW5nCiAgICAgdm9pZCBk
aWREcmF3KGNvbnN0IEZsb2F0UmVjdCYpOwogCi0gICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRl
eHQqLCBjb25zdCBJbnRSZWN0JiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7Cisg
ICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXlvdXRSZWN0JiwgYm9vbCB1
c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CiAKICAgICBHcmFwaGljc0NvbnRleHQqIGRyYXdp
bmdDb250ZXh0KCkgY29uc3Q7CiAgICAgR3JhcGhpY3NDb250ZXh0KiBleGlzdGluZ0RyYXdpbmdD
b250ZXh0KCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmNw
cAkocmV2aXNpb24gOTMxNjEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQCBIVE1MTWFwRWxlbWVudDo6fkhU
TUxNYXBFbGVtZW50KCkKIHsKIH0KIAotYm9vbCBIVE1MTWFwRWxlbWVudDo6bWFwTW91c2VFdmVu
dChpbnQgeCwgaW50IHksIGNvbnN0IEludFNpemUmIHNpemUsIEhpdFRlc3RSZXN1bHQmIHJlc3Vs
dCkKK2Jvb2wgSFRNTE1hcEVsZW1lbnQ6Om1hcE1vdXNlRXZlbnQoTGF5b3V0UG9pbnQgbG9jYXRp
b24sIGNvbnN0IExheW91dFNpemUmIHNpemUsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCkKIHsKICAg
ICBIVE1MQXJlYUVsZW1lbnQqIGRlZmF1bHRBcmVhID0gMDsKICAgICBOb2RlICpub2RlID0gdGhp
czsKQEAgLTY4LDcgKzY4LDcgQEAgYm9vbCBIVE1MTWFwRWxlbWVudDo6bWFwTW91c2VFdmVudChp
bnQgeAogICAgICAgICAgICAgaWYgKGFyZWFFbHQtPmlzRGVmYXVsdCgpKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKCFkZWZhdWx0QXJlYSkKICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEFyZWEg
PSBhcmVhRWx0OwotICAgICAgICAgICAgfSBlbHNlIGlmIChhcmVhRWx0LT5tYXBNb3VzZUV2ZW50
KHgsIHksIHNpemUsIHJlc3VsdCkpCisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZWFFbHQtPm1h
cE1vdXNlRXZlbnQobG9jYXRpb24sIHNpemUsIHJlc3VsdCkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNYXBFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFw
RWxlbWVudC5oCShyZXZpc2lvbiA5MzE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1h
cEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIEludFNpemU7CiBjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xhc3Mg
SFRNTEltYWdlRWxlbWVudDsKICAgICAKQEAgLTM5LDcgKzM4LDcgQEAgcHVibGljOgogCiAgICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBnZXROYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAK
LSAgICBib29sIG1hcE1vdXNlRXZlbnQoaW50IHgsIGludCB5LCBjb25zdCBJbnRTaXplJiwgSGl0
VGVzdFJlc3VsdCYpOworICAgIGJvb2wgbWFwTW91c2VFdmVudChMYXlvdXRQb2ludCBsb2NhdGlv
biwgY29uc3QgTGF5b3V0U2l6ZSYsIEhpdFRlc3RSZXN1bHQmKTsKICAgICAKICAgICBIVE1MSW1h
Z2VFbGVtZW50KiBpbWFnZUVsZW1lbnQoKTsKICAgICBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9u
PiBhcmVhcygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwCShyZXZp
c2lvbiA5MzE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lkIEltYWdlRG9jdW1lbnRQYXJzZXI6
OmZpbmlzaCgpCiAKICAgICAgICAgLy8gUmVwb3J0IHRoZSBuYXR1cmFsIGltYWdlIHNpemUgaW4g
dGhlIHBhZ2UgdGl0bGUsIHJlZ2FyZGxlc3Mgb2Ygem9vbQogICAgICAgICAvLyBsZXZlbC4KLSAg
ICAgICAgSW50U2l6ZSBzaXplID0gY2FjaGVkSW1hZ2UtPmltYWdlU2l6ZSgxLjBmKTsKKyAgICAg
ICAgTGF5b3V0U2l6ZSBzaXplID0gY2FjaGVkSW1hZ2UtPmltYWdlU2l6ZSgxLjBmKTsKICAgICAg
ICAgaWYgKHNpemUud2lkdGgoKSkgewogICAgICAgICAgICAgLy8gQ29tcHV0ZSB0aGUgdGl0bGUs
IHdlIHVzZSB0aGUgZGVjb2RlZCBmaWxlbmFtZSBvZiB0aGUgcmVzb3VyY2UsIGZhbGxpbmcKICAg
ICAgICAgICAgIC8vIGJhY2sgb24gdGhlIChkZWNvZGVkKSBob3N0bmFtZSBpZiB0aGVyZSBpcyBu
byBwYXRoLgpAQCAtMjM1LDggKzIzNSw4IEBAIGZsb2F0IEltYWdlRG9jdW1lbnQ6OnNjYWxlKCkg
Y29uc3QKICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVybiAxOwogCi0gICAgSW50U2l6ZSBp
bWFnZVNpemUgPSBtX2ltYWdlRWxlbWVudC0+Y2FjaGVkSW1hZ2UoKS0+aW1hZ2VTaXplKHBhZ2Va
b29tRmFjdG9yKHRoaXMpKTsKLSAgICBJbnRTaXplIHdpbmRvd1NpemUgPSBJbnRTaXplKHZpZXct
PndpZHRoKCksIHZpZXctPmhlaWdodCgpKTsKKyAgICBMYXlvdXRTaXplIGltYWdlU2l6ZSA9IG1f
aW1hZ2VFbGVtZW50LT5jYWNoZWRJbWFnZSgpLT5pbWFnZVNpemUocGFnZVpvb21GYWN0b3IodGhp
cykpOworICAgIExheW91dFNpemUgd2luZG93U2l6ZSA9IEludFNpemUodmlldy0+d2lkdGgoKSwg
dmlldy0+aGVpZ2h0KCkpOwogICAgIAogICAgIGZsb2F0IHdpZHRoU2NhbGUgPSAoZmxvYXQpd2lu
ZG93U2l6ZS53aWR0aCgpIC8gaW1hZ2VTaXplLndpZHRoKCk7CiAgICAgZmxvYXQgaGVpZ2h0U2Nh
bGUgPSAoZmxvYXQpd2luZG93U2l6ZS5oZWlnaHQoKSAvIGltYWdlU2l6ZS5oZWlnaHQoKTsKQEAg
LTI0OSw3ICsyNDksNyBAQCB2b2lkIEltYWdlRG9jdW1lbnQ6OnJlc2l6ZUltYWdlVG9GaXQoKQog
ICAgIGlmICghbV9pbWFnZUVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIEludFNpemUg
aW1hZ2VTaXplID0gbV9pbWFnZUVsZW1lbnQtPmNhY2hlZEltYWdlKCktPmltYWdlU2l6ZShwYWdl
Wm9vbUZhY3Rvcih0aGlzKSk7CisgICAgTGF5b3V0U2l6ZSBpbWFnZVNpemUgPSBtX2ltYWdlRWxl
bWVudC0+Y2FjaGVkSW1hZ2UoKS0+aW1hZ2VTaXplKHBhZ2Vab29tRmFjdG9yKHRoaXMpKTsKIAog
ICAgIGZsb2F0IHNjYWxlID0gdGhpcy0+c2NhbGUoKTsKICAgICBtX2ltYWdlRWxlbWVudC0+c2V0
V2lkdGgoc3RhdGljX2Nhc3Q8aW50PihpbWFnZVNpemUud2lkdGgoKSAqIHNjYWxlKSk7CkBAIC0z
MjYsOCArMzI2LDggQEAgYm9vbCBJbWFnZURvY3VtZW50OjppbWFnZUZpdHNJbldpbmRvdygpIAog
ICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBJbnRTaXplIGltYWdl
U2l6ZSA9IG1faW1hZ2VFbGVtZW50LT5jYWNoZWRJbWFnZSgpLT5pbWFnZVNpemUocGFnZVpvb21G
YWN0b3IodGhpcykpOwotICAgIEludFNpemUgd2luZG93U2l6ZSA9IEludFNpemUodmlldy0+d2lk
dGgoKSwgdmlldy0+aGVpZ2h0KCkpOworICAgIExheW91dFNpemUgaW1hZ2VTaXplID0gbV9pbWFn
ZUVsZW1lbnQtPmNhY2hlZEltYWdlKCktPmltYWdlU2l6ZShwYWdlWm9vbUZhY3Rvcih0aGlzKSk7
CisgICAgTGF5b3V0U2l6ZSB3aW5kb3dTaXplID0gTGF5b3V0U2l6ZSh2aWV3LT53aWR0aCgpLCB2
aWV3LT5oZWlnaHQoKSk7CiAgICAgCiAgICAgcmV0dXJuIGltYWdlU2l6ZS53aWR0aCgpIDw9IHdp
bmRvd1NpemUud2lkdGgoKSAmJiBpbWFnZVNpemUuaGVpZ2h0KCkgPD0gd2luZG93U2l6ZS5oZWln
aHQoKTsgICAgCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdl
LmNwcAkocmV2aXNpb24gOTMxNjEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25N
ZXNzYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgVmFsaWRh
dGlvbk1lc3NhZ2U6OnNldE1lc3NhZ2VET01BbmQKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIGFk
anVzdEJ1YmJsZVBvc2l0aW9uKGNvbnN0IEludFJlY3QmIGhvc3RSZWN0LCBIVE1MRWxlbWVudCog
YnViYmxlKQorc3RhdGljIHZvaWQgYWRqdXN0QnViYmxlUG9zaXRpb24oY29uc3QgTGF5b3V0UmVj
dCYgaG9zdFJlY3QsIEhUTUxFbGVtZW50KiBidWJibGUpCiB7CiAgICAgQVNTRVJUKGJ1YmJsZSk7
CiAgICAgaWYgKGhvc3RSZWN0LmlzRW1wdHkoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAkocmV2aXNp
b24gOTMxNjEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTc5LDcgKzExNzksNyBAQCB2b2lkIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YXBwbHlTaGFkCiAgICAgYy0+c2V0TGVnYWN5U2hhZG93
KEZsb2F0U2l6ZSh3aWR0aCwgLWhlaWdodCksIHN0YXRlKCkubV9zaGFkb3dCbHVyLCBzdGF0ZSgp
Lm1fc2hhZG93Q29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOwogfQogCi1zdGF0aWMgSW50U2l6
ZSBzaXplKEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlKQorc3RhdGljIExheW91dFNpemUgc2l6ZShI
VE1MSW1hZ2VFbGVtZW50KiBpbWFnZSkKIHsKICAgICBpZiAoQ2FjaGVkSW1hZ2UqIGNhY2hlZElt
YWdlID0gaW1hZ2UtPmNhY2hlZEltYWdlKCkpCiAgICAgICAgIHJldHVybiBjYWNoZWRJbWFnZS0+
aW1hZ2VTaXplKDEuMGYpOyAvLyBGSVhNRTogTm90IHN1cmUgYWJvdXQgdGhpcy4KQEAgLTEyMDks
NyArMTIwOSw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3SW1hZ2UKICAg
ICAgICAgZWMgPSBUWVBFX01JU01BVENIX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAg
ICBJbnRTaXplIHMgPSBzaXplKGltYWdlKTsKKyAgICBMYXlvdXRTaXplIHMgPSBzaXplKGltYWdl
KTsKICAgICBkcmF3SW1hZ2UoaW1hZ2UsIHgsIHksIHMud2lkdGgoKSwgcy5oZWlnaHQoKSwgZWMp
OwogfQogCkBAIC0xMjIwLDcgKzEyMjAsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDo6ZHJhd0ltYWdlCiAgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgSW50U2l6ZSBzID0gc2l6ZShpbWFnZSk7CisgICAgTGF5b3V0U2l6
ZSBzID0gc2l6ZShpbWFnZSk7CiAgICAgZHJhd0ltYWdlKGltYWdlLCBGbG9hdFJlY3QoMCwgMCwg
cy53aWR0aCgpLCBzLmhlaWdodCgpKSwgRmxvYXRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpLCBl
Yyk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVs
ZW1lbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAJKHJldmlzaW9uIDkzMTYxKQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjIsNyArMTIyLDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xQYW5lbEVsZQog
ICAgIHJldHVybiBpZDsKIH0KIAotdm9pZCBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OnN0YXJ0
RHJhZyhjb25zdCBJbnRQb2ludCYgZXZlbnRMb2NhdGlvbikKK3ZvaWQgTWVkaWFDb250cm9sUGFu
ZWxFbGVtZW50OjpzdGFydERyYWcoY29uc3QgTGF5b3V0UG9pbnQmIGV2ZW50TG9jYXRpb24pCiB7
CiAgICAgaWYgKCFtX2NhbkJlRHJhZ2dlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtMTQ2LDEyICsx
NDYsMTIgQEAgdm9pZCBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OnN0YXJ0RHJhZwogICAgIG1f
aXNCZWluZ0RyYWdnZWQgPSB0cnVlOwogfQogCi12b2lkIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVu
dDo6Y29udGludWVEcmFnKGNvbnN0IEludFBvaW50JiBldmVudExvY2F0aW9uKQordm9pZCBNZWRp
YUNvbnRyb2xQYW5lbEVsZW1lbnQ6OmNvbnRpbnVlRHJhZyhjb25zdCBMYXlvdXRQb2ludCYgZXZl
bnRMb2NhdGlvbikKIHsKICAgICBpZiAoIW1faXNCZWluZ0RyYWdnZWQpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIEludFNpemUgZGlzdGFuY2VEcmFnZ2VkID0gZXZlbnRMb2NhdGlvbiAtIG1fZHJh
Z1N0YXJ0RXZlbnRMb2NhdGlvbjsKKyAgICBMYXlvdXRTaXplIGRpc3RhbmNlRHJhZ2dlZCA9IGV2
ZW50TG9jYXRpb24gLSBtX2RyYWdTdGFydEV2ZW50TG9jYXRpb247CiAgICAgc2V0UG9zaXRpb24o
bV9kcmFnU3RhcnRQb3NpdGlvbiArIGRpc3RhbmNlRHJhZ2dlZCk7CiB9CiAKQEAgLTE2OSw3ICsx
NjksNyBAQCB2b2lkIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6ZW5kRHJhZygpCiAgICAgZnJh
bWUtPmV2ZW50SGFuZGxlcigpLT5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50c05vZGUoMCk7CiB9CiAK
LXZvaWQgTWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpzZXRQb3NpdGlvbihjb25zdCBJbnRQb2lu
dCYgcG9zaXRpb24pCit2b2lkIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6c2V0UG9zaXRpb24o
Y29uc3QgTGF5b3V0UG9pbnQmIHBvc2l0aW9uKQogewogICAgIENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uKiBzdHlsZSA9IGdldElubGluZVN0eWxlRGVjbCgpOwogCkBAIC0xOTksNyArMTk5LDcg
QEAgdm9pZCBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OmRlZmF1bHRFdgogICAgIE1lZGlhQ29u
dHJvbEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwogCiAgICAgaWYgKGV2ZW50
LT5pc01vdXNlRXZlbnQoKSkgewotICAgICAgICBJbnRQb2ludCBsb2NhdGlvbiA9IHN0YXRpY19j
YXN0PE1vdXNlRXZlbnQqPihldmVudCktPmFic29sdXRlTG9jYXRpb24oKTsKKyAgICAgICAgTGF5
b3V0UG9pbnQgbG9jYXRpb24gPSBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpLT5hYnNv
bHV0ZUxvY2F0aW9uKCk7CiAgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMo
KS5tb3VzZWRvd25FdmVudCkgewogICAgICAgICAgICAgc3RhcnREcmFnKGxvY2F0aW9uKTsKICAg
ICAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCShyZXZpc2lvbiA5
MzE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwOCwxNiArMTA4LDE2IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CiAgICAgdmly
dHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKIAotICAgIHZvaWQgc3RhcnRE
cmFnKGNvbnN0IEludFBvaW50JiBldmVudExvY2F0aW9uKTsKLSAgICB2b2lkIGNvbnRpbnVlRHJh
Zyhjb25zdCBJbnRQb2ludCYgZXZlbnRMb2NhdGlvbik7CisgICAgdm9pZCBzdGFydERyYWcoY29u
c3QgTGF5b3V0UG9pbnQmIGV2ZW50TG9jYXRpb24pOworICAgIHZvaWQgY29udGludWVEcmFnKGNv
bnN0IExheW91dFBvaW50JiBldmVudExvY2F0aW9uKTsKICAgICB2b2lkIGVuZERyYWcoKTsKIAot
ICAgIHZvaWQgc2V0UG9zaXRpb24oY29uc3QgSW50UG9pbnQmKTsKKyAgICB2b2lkIHNldFBvc2l0
aW9uKGNvbnN0IExheW91dFBvaW50Jik7CiAKICAgICBib29sIG1fY2FuQmVEcmFnZ2VkOwogICAg
IGJvb2wgbV9pc0JlaW5nRHJhZ2dlZDsKLSAgICBJbnRQb2ludCBtX2RyYWdTdGFydFBvc2l0aW9u
OwotICAgIEludFBvaW50IG1fZHJhZ1N0YXJ0RXZlbnRMb2NhdGlvbjsKKyAgICBMYXlvdXRQb2lu
dCBtX2RyYWdTdGFydFBvc2l0aW9uOworICAgIExheW91dFBvaW50IG1fZHJhZ1N0YXJ0RXZlbnRM
b2NhdGlvbjsKIH07CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAko
cmV2aXNpb24gOTMxNjEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVt
YkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTUsMjkgKzE5NSwyOSBAQCBOb2RlKiBT
bGlkZXJUaHVtYkVsZW1lbnQ6OmZvY3VzRGVsZWdhdGUoCiAgICAgcmV0dXJuIGhvc3RJbnB1dCgp
OwogfQogCi12b2lkIFNsaWRlclRodW1iRWxlbWVudDo6ZHJhZ0Zyb20oY29uc3QgSW50UG9pbnQm
IHBvaW50KQordm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6OmRyYWdGcm9tKGNvbnN0IExheW91dFBv
aW50JiBwb2ludCkKIHsKICAgICBzZXRQb3NpdGlvbkZyb21Qb2ludChwb2ludCk7CiAgICAgc3Rh
cnREcmFnZ2luZygpOwogfQogCi12b2lkIFNsaWRlclRodW1iRWxlbWVudDo6c2V0UG9zaXRpb25G
cm9tUG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50KQordm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6
OnNldFBvc2l0aW9uRnJvbVBvaW50KGNvbnN0IExheW91dFBvaW50JiBwb2ludCkKIHsKICAgICBI
VE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IGhvc3RJbnB1dCgpOwogCiAgICAgaWYgKCFpbnB1dC0+
cmVuZGVyZXIoKSB8fCAhcmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSW50UG9p
bnQgb2Zmc2V0ID0gcm91bmRlZEludFBvaW50KGlucHV0LT5yZW5kZXJlcigpLT5hYnNvbHV0ZVRv
TG9jYWwocG9pbnQsIGZhbHNlLCB0cnVlKSk7CisgICAgTGF5b3V0UG9pbnQgb2Zmc2V0ID0gcm91
bmRlZExheW91dFBvaW50KGlucHV0LT5yZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwocG9pbnQs
IGZhbHNlLCB0cnVlKSk7CiAgICAgYm9vbCBpc1ZlcnRpY2FsID0gaGFzVmVydGljYWxBcHBlYXJh
bmNlKGlucHV0KTsKLSAgICBpbnQgdHJhY2tTaXplOwotICAgIGludCBwb3NpdGlvbjsKLSAgICBp
bnQgY3VycmVudFBvc2l0aW9uOworICAgIExheW91dFVuaXQgdHJhY2tTaXplOworICAgIExheW91
dFVuaXQgcG9zaXRpb247CisgICAgTGF5b3V0VW5pdCBjdXJyZW50UG9zaXRpb247CiAgICAgLy8g
V2UgbmVlZCB0byBjYWxjdWxhdGUgY3VycmVudFBvc2l0aW9uIGZyb20gYWJzb2x1dGUgcG9pbnRz
IGJlY2F1ZSB0aGUKICAgICAvLyByZW5kZXJlciBmb3IgdGhpcyBub2RlIGlzIHVzdWFsbHkgb24g
YSBsYXllciBhbmQgcmVuZGVyQm94KCktPngoKSBhbmQKICAgICAvLyB5KCkgYXJlIHVudXNhYmxl
LgotICAgIEludFBvaW50IGFic29sdXRlVGh1bWJPcmlnaW4gPSByZW5kZXJCb3goKS0+YWJzb2x1
dGVCb3VuZGluZ0JveFJlY3QoKS5sb2NhdGlvbigpOwotICAgIEludFBvaW50IGFic29sdXRlU2xp
ZGVyQ29udGVudE9yaWdpbiA9IHJvdW5kZWRJbnRQb2ludChpbnB1dC0+cmVuZGVyZXIoKS0+bG9j
YWxUb0Fic29sdXRlKCkpOworICAgIExheW91dFBvaW50IGFic29sdXRlVGh1bWJPcmlnaW4gPSBy
ZW5kZXJCb3goKS0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoKS5sb2NhdGlvbigpOworICAgIExh
eW91dFBvaW50IGFic29sdXRlU2xpZGVyQ29udGVudE9yaWdpbiA9IHJvdW5kZWRMYXlvdXRQb2lu
dChpbnB1dC0+cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlKCkpOwogICAgIGlmIChpc1ZlcnRp
Y2FsKSB7CiAgICAgICAgIHRyYWNrU2l6ZSA9IGlucHV0LT5yZW5kZXJCb3goKS0+Y29udGVudEhl
aWdodCgpIC0gcmVuZGVyQm94KCktPmhlaWdodCgpOwogICAgICAgICBwb3NpdGlvbiA9IG9mZnNl
dC55KCkgLSByZW5kZXJCb3goKS0+aGVpZ2h0KCkgLyAyOwpAQCAtMjI3LDcgKzIyNyw3IEBAIHZv
aWQgU2xpZGVyVGh1bWJFbGVtZW50OjpzZXRQb3NpdGlvbkZyb20KICAgICAgICAgcG9zaXRpb24g
PSBvZmZzZXQueCgpIC0gcmVuZGVyQm94KCktPndpZHRoKCkgLyAyOwogICAgICAgICBjdXJyZW50
UG9zaXRpb24gPSBhYnNvbHV0ZVRodW1iT3JpZ2luLngoKSAtIGFic29sdXRlU2xpZGVyQ29udGVu
dE9yaWdpbi54KCk7CiAgICAgfQotICAgIHBvc2l0aW9uID0gbWF4KDAsIG1pbihwb3NpdGlvbiwg
dHJhY2tTaXplKSk7CisgICAgcG9zaXRpb24gPSBtYXg8TGF5b3V0VW5pdD4oMCwgbWluKHBvc2l0
aW9uLCB0cmFja1NpemUpKTsKICAgICBpZiAocG9zaXRpb24gPT0gY3VycmVudFBvc2l0aW9uKQog
ICAgICAgICByZXR1cm47CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1NsaWRlclRodW1iRWxlbWVudC5oCShyZXZpc2lvbiA5MzE2MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3
ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0UG9zaXRpb25Gcm9tVmFsdWUoKTsKIAot
ICAgIHZvaWQgZHJhZ0Zyb20oY29uc3QgSW50UG9pbnQmKTsKKyAgICB2b2lkIGRyYWdGcm9tKGNv
bnN0IExheW91dFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIo
RXZlbnQqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7CiAgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CkBAIC02Nyw3ICs2Nyw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBOb2RlKiBmb2N1c0RlbGVnYXRlKCk7CiAgICAgdm9pZCBzdGFy
dERyYWdnaW5nKCk7CiAgICAgdm9pZCBzdG9wRHJhZ2dpbmcoKTsKLSAgICB2b2lkIHNldFBvc2l0
aW9uRnJvbVBvaW50KGNvbnN0IEludFBvaW50Jik7CisgICAgdm9pZCBzZXRQb3NpdGlvbkZyb21Q
b2ludChjb25zdCBMYXlvdXRQb2ludCYpOwogCiAgICAgYm9vbCBtX2luRHJhZ01vZGU7CiB9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCShyZXZpc2lvbiA5
MzE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQzNywxMCArNDM3LDEyIEBAIGJvb2wgUmVuZGVySW1hZ2U6Om5vZGVBdFBv
aW50KGNvbnN0IEhpdFQKICAgICBpZiAodGVtcFJlc3VsdC5pbm5lck5vZGUoKSAmJiBub2RlKCkp
IHsKICAgICAgICAgaWYgKEhUTUxNYXBFbGVtZW50KiBtYXAgPSBpbWFnZU1hcCgpKSB7CiAgICAg
ICAgICAgICBJbnRSZWN0IGNvbnRlbnRCb3ggPSBjb250ZW50Qm94UmVjdCgpOwotICAgICAgICAg
ICAgZmxvYXQgem9vbSA9IHN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKTsKLSAgICAgICAgICAgIExh
eW91dFVuaXQgbWFwWCA9IHJvdW5kZWRMYXlvdXRVbml0KChwb2ludEluQ29udGFpbmVyLngoKSAt
IGFjY3VtdWxhdGVkT2Zmc2V0LngoKSAtIHRoaXMtPngoKSAtIGNvbnRlbnRCb3gueCgpKSAvIHpv
b20pOwotICAgICAgICAgICAgTGF5b3V0VW5pdCBtYXBZID0gcm91bmRlZExheW91dFVuaXQoKHBv
aW50SW5Db250YWluZXIueSgpIC0gYWNjdW11bGF0ZWRPZmZzZXQueSgpIC0gdGhpcy0+eSgpIC0g
Y29udGVudEJveC55KCkpIC8gem9vbSk7Ci0gICAgICAgICAgICBpZiAobWFwLT5tYXBNb3VzZUV2
ZW50KG1hcFgsIG1hcFksIGNvbnRlbnRCb3guc2l6ZSgpLCB0ZW1wUmVzdWx0KSkKKyAgICAgICAg
ICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gMSAvIHN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKTsKKyAg
ICAgICAgICAgIExheW91dFBvaW50IG1hcExvY2F0aW9uKHBvaW50SW5Db250YWluZXIueCgpIC0g
YWNjdW11bGF0ZWRPZmZzZXQueCgpIC0gdGhpcy0+eCgpIC0gY29udGVudEJveC54KCksIHBvaW50
SW5Db250YWluZXIueSgpIC0gYWNjdW11bGF0ZWRPZmZzZXQueSgpIC0gdGhpcy0+eSgpIC0gY29u
dGVudEJveC55KCkpOworICAgICAgICAgICAgaWYgKHNjYWxlRmFjdG9yICE9IDEuMGYpCisgICAg
ICAgICAgICAgICAgbWFwTG9jYXRpb24uc2NhbGUoc2NhbGVGYWN0b3IsIHNjYWxlRmFjdG9yKTsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG1hcC0+bWFwTW91c2VFdmVudChtYXBMb2Nh
dGlvbiwgY29udGVudEJveC5zaXplKCksIHRlbXBSZXN1bHQpKQogICAgICAgICAgICAgICAgIHRl
bXBSZXN1bHQuc2V0SW5uZXJOb25TaGFyZWROb2RlKG5vZGUoKSk7CiAgICAgICAgIH0KICAgICB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104208</attachid>
            <date>2011-08-17 12:04:58 -0700</date>
            <delta_ts>2011-08-17 20:38:20 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-66347-20110817120457.patch</filename>
            <type>text/plain</type>
            <size>19584</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzMjI4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTEtMDgtMTcgIEVtaWwgQSBF
a2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFN3aXRjaCBodG1sLyogdG8gdG8g
bmV3IGxheW91dCB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjYzNDcKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KKworICAg
ICAgICBDb252ZXJ0IEhUTUwqIGFuZCBzaGFkb3cgZWxlbWVudCB0byBuZXcgbGF5b3V0IGFic3Ry
YWN0aW9uIGFzIGEgcGFydCBvZgorICAgICAgICB0aGUgb25nb2luZyBjb252ZXJzaW9uIHdvcmsu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAg
ICAqIGh0bWwvSFRNTEFyZWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBcmVh
RWxlbWVudDo6aW52YWxpZGF0ZUNhY2hlZFJlZ2lvbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
QXJlYUVsZW1lbnQ6Om1hcE1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFyZWFF
bGVtZW50Ojpjb21wdXRlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQXJlYUVsZW1lbnQ6
OmNvbXB1dGVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBcmVhRWxlbWVudDo6Z2V0UmVn
aW9uKToKKyAgICAgICAgKiBodG1sL0hUTUxBcmVhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OnBhaW50KToKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50Lmg6CisgICAgICAg
ICogaHRtbC9IVE1MTWFwRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWFwRWxl
bWVudDo6bWFwTW91c2VFdmVudCk6CisgICAgICAgICogaHRtbC9IVE1MTWFwRWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvSW1hZ2VEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZURvY3VtZW50UGFyc2VyOjpmaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEb2N1bWVu
dDo6c2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEb2N1bWVudDo6cmVzaXplSW1hZ2VU
b0ZpdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURvY3VtZW50OjppbWFnZUZpdHNJbldpbmRv
dyk6CisgICAgICAgICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjphZGp1c3RCdWJibGVQb3NpdGlvbik6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3SW1hZ2UpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6c3RhcnREcmFnKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y29udGludWVEcmFnKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6c2V0UG9zaXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oOgorICAgICAgICAq
IGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
bGlkZXJUaHVtYkVsZW1lbnQ6OmRyYWdGcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRo
dW1iRWxlbWVudDo6c2V0UG9zaXRpb25Gcm9tUG9pbnQpOgorICAgICAgICAqIGh0bWwvc2hhZG93
L1NsaWRlclRodW1iRWxlbWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6bm9kZUF0UG9pbnQpOgorCiAyMDEx
LTA4LTE3ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
Q3Jhc2ggaW4gRG9jdW1lbnQ6OnJlY2FsY1N0eWxlU2VsZWN0b3IKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxBcmVhRWxlbWVudC5jcHAJKHJldmlzaW9uIDkzMjI4KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NSwxNyAr
NzUsMTcgQEAgdm9pZCBIVE1MQXJlYUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidQogCiB2b2lk
IEhUTUxBcmVhRWxlbWVudDo6aW52YWxpZGF0ZUNhY2hlZFJlZ2lvbigpCiB7Ci0gICAgbV9sYXN0
U2l6ZSA9IEludFNpemUoLTEsIC0xKTsKKyAgICBtX2xhc3RTaXplID0gTGF5b3V0U2l6ZSgtMSwg
LTEpOwogfQogCi1ib29sIEhUTUxBcmVhRWxlbWVudDo6bWFwTW91c2VFdmVudChpbnQgeCwgaW50
IHksIGNvbnN0IEludFNpemUmIHNpemUsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCkKK2Jvb2wgSFRN
TEFyZWFFbGVtZW50OjptYXBNb3VzZUV2ZW50KExheW91dFBvaW50IGxvY2F0aW9uLCBjb25zdCBM
YXlvdXRTaXplJiBzaXplLCBIaXRUZXN0UmVzdWx0JiByZXN1bHQpCiB7CiAgICAgaWYgKG1fbGFz
dFNpemUgIT0gc2l6ZSkgewogICAgICAgICBtX3JlZ2lvbiA9IGFkb3B0UHRyKG5ldyBQYXRoKGdl
dFJlZ2lvbihzaXplKSkpOwogICAgICAgICBtX2xhc3RTaXplID0gc2l6ZTsKICAgICB9CiAKLSAg
ICBpZiAoIW1fcmVnaW9uLT5jb250YWlucyhJbnRQb2ludCh4LCB5KSkpCisgICAgaWYgKCFtX3Jl
Z2lvbi0+Y29udGFpbnMobG9jYXRpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAg
ICAgcmVzdWx0LnNldElubmVyTm9kZSh0aGlzKTsKQEAgLTEwMiw3ICsxMDIsNyBAQCBQYXRoIEhU
TUxBcmVhRWxlbWVudDo6Y29tcHV0ZVBhdGgoUmVuZGVyCiAgICAgRmxvYXRQb2ludCBhYnNQb3Mg
PSBvYmotPmxvY2FsVG9BYnNvbHV0ZSgpOwogCiAgICAgLy8gRGVmYXVsdCBzaG91bGQgZGVmYXVs
dCB0byB0aGUgc2l6ZSBvZiB0aGUgY29udGFpbmluZyBvYmplY3QuCi0gICAgSW50U2l6ZSBzaXpl
ID0gbV9sYXN0U2l6ZTsKKyAgICBMYXlvdXRTaXplIHNpemUgPSBtX2xhc3RTaXplOwogICAgIGlm
IChtX3NoYXBlID09IERlZmF1bHQpCiAgICAgICAgIHNpemUgPSBvYmotPmFic29sdXRlT3V0bGlu
ZUJvdW5kcygpLnNpemUoKTsKICAgICAKQEAgLTExOCwxOCArMTE4LDE4IEBAIFBhdGggSFRNTEFy
ZWFFbGVtZW50Ojpjb21wdXRlUGF0aChSZW5kZXIKICAgICByZXR1cm4gcDsKIH0KICAgICAKLUlu
dFJlY3QgSFRNTEFyZWFFbGVtZW50Ojpjb21wdXRlUmVjdChSZW5kZXJPYmplY3QqIG9iaikgY29u
c3QKK0xheW91dFJlY3QgSFRNTEFyZWFFbGVtZW50Ojpjb21wdXRlUmVjdChSZW5kZXJPYmplY3Qq
IG9iaikgY29uc3QKIHsKLSAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdChjb21wdXRlUGF0aChv
YmopLmJvdW5kaW5nUmVjdCgpKTsKKyAgICByZXR1cm4gZW5jbG9zaW5nTGF5b3V0UmVjdChjb21w
dXRlUGF0aChvYmopLmJvdW5kaW5nUmVjdCgpKTsKIH0KIAotUGF0aCBIVE1MQXJlYUVsZW1lbnQ6
OmdldFJlZ2lvbihjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAorUGF0aCBIVE1MQXJlYUVsZW1l
bnQ6OmdldFJlZ2lvbihjb25zdCBMYXlvdXRTaXplJiBzaXplKSBjb25zdAogewogICAgIGlmICgh
bV9jb29yZHMgJiYgbV9zaGFwZSAhPSBEZWZhdWx0KQogICAgICAgICByZXR1cm4gUGF0aCgpOwog
Ci0gICAgaW50IHdpZHRoID0gc2l6ZS53aWR0aCgpOwotICAgIGludCBoZWlnaHQgPSBzaXplLmhl
aWdodCgpOworICAgIExheW91dFVuaXQgd2lkdGggPSBzaXplLndpZHRoKCk7CisgICAgTGF5b3V0
VW5pdCBoZWlnaHQgPSBzaXplLmhlaWdodCgpOwogCiAgICAgLy8gSWYgZWxlbWVudCBvbWl0cyB0
aGUgc2hhcGUgYXR0cmlidXRlLCBzZWxlY3Qgc2hhcGUgYmFzZWQgb24gbnVtYmVyIG9mIGNvb3Jk
aW5hdGVzLgogICAgIFNoYXBlIHNoYXBlID0gbV9zaGFwZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXJlYUVsZW1lbnQuaAkocmV2aXNpb24gOTMyMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxBcmVhRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiAj
ZGVmaW5lIEhUTUxBcmVhRWxlbWVudF9oCiAKICNpbmNsdWRlICJIVE1MQW5jaG9yRWxlbWVudC5o
IgotI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgogI2luY2x1
ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw5ICsz
OSw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNEZWZhdWx0KCkgY29uc3QgeyByZXR1cm4gbV9z
aGFwZSA9PSBEZWZhdWx0OyB9CiAKLSAgICBib29sIG1hcE1vdXNlRXZlbnQoaW50IHgsIGludCB5
LCBjb25zdCBJbnRTaXplJiwgSGl0VGVzdFJlc3VsdCYpOworICAgIGJvb2wgbWFwTW91c2VFdmVu
dChMYXlvdXRQb2ludCBsb2NhdGlvbiwgY29uc3QgTGF5b3V0U2l6ZSYsIEhpdFRlc3RSZXN1bHQm
KTsKIAotICAgIEludFJlY3QgY29tcHV0ZVJlY3QoUmVuZGVyT2JqZWN0KikgY29uc3Q7CisgICAg
TGF5b3V0UmVjdCBjb21wdXRlUmVjdChSZW5kZXJPYmplY3QqKSBjb25zdDsKICAgICBQYXRoIGNv
bXB1dGVQYXRoKFJlbmRlck9iamVjdCopIGNvbnN0OwogCiAgICAgLy8gVGhlIHBhcmVudCBtYXAn
cyBpbWFnZS4KQEAgLTYwLDEzICs2MCwxMyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBz
ZXRGb2N1cyhib29sKTsKICAgICAKICAgICBlbnVtIFNoYXBlIHsgRGVmYXVsdCwgUG9seSwgUmVj
dCwgQ2lyY2xlLCBVbmtub3duIH07Ci0gICAgUGF0aCBnZXRSZWdpb24oY29uc3QgSW50U2l6ZSYp
IGNvbnN0OworICAgIFBhdGggZ2V0UmVnaW9uKGNvbnN0IExheW91dFNpemUmKSBjb25zdDsKICAg
ICB2b2lkIGludmFsaWRhdGVDYWNoZWRSZWdpb24oKTsKIAogICAgIE93blB0cjxQYXRoPiBtX3Jl
Z2lvbjsKICAgICBPd25BcnJheVB0cjxMZW5ndGg+IG1fY29vcmRzOwogICAgIGludCBtX2Nvb3Jk
c0xlbjsKLSAgICBJbnRTaXplIG1fbGFzdFNpemU7CisgICAgTGF5b3V0U2l6ZSBtX2xhc3RTaXpl
OwogICAgIFNoYXBlIG1fc2hhcGU7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcAkocmV2aXNpb24gOTMyMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY0LDcgKzI2NCw3
IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0KCkKICAgICAgICAgKCppdCktPmNhbnZh
c1Jlc2l6ZWQodGhpcyk7CiB9CiAKLXZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhaW50KEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgciwgYm9vbCB1c2VMb3dRdWFsaXR5
U2NhbGUpCit2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IExheW91dFJlY3QmIHIsIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQogewog
ICAgIC8vIENsZWFyIHRoZSBkaXJ0eSByZWN0CiAgICAgbV9kaXJ0eVJlY3QgPSBGbG9hdFJlY3Qo
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgJKHJldmlzaW9u
IDkzMjI4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKICAgICAvLyBVc2VkIGZvciByZW5k
ZXJpbmcKICAgICB2b2lkIGRpZERyYXcoY29uc3QgRmxvYXRSZWN0Jik7CiAKLSAgICB2b2lkIHBh
aW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmLCBib29sIHVzZUxvd1F1YWxpdHlT
Y2FsZSA9IGZhbHNlKTsKKyAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExh
eW91dFJlY3QmLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKIAogICAgIEdyYXBo
aWNzQ29udGV4dCogZHJhd2luZ0NvbnRleHQoKSBjb25zdDsKICAgICBHcmFwaGljc0NvbnRleHQq
IGV4aXN0aW5nRHJhd2luZ0NvbnRleHQoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1hcEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1hcEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5MzIyOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1hcEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIEhU
TUxNYXBFbGVtZW50Ojp+SFRNTE1hcEVsZW1lbnQoKQogewogfQogCi1ib29sIEhUTUxNYXBFbGVt
ZW50OjptYXBNb3VzZUV2ZW50KGludCB4LCBpbnQgeSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgSGl0
VGVzdFJlc3VsdCYgcmVzdWx0KQorYm9vbCBIVE1MTWFwRWxlbWVudDo6bWFwTW91c2VFdmVudChM
YXlvdXRQb2ludCBsb2NhdGlvbiwgY29uc3QgTGF5b3V0U2l6ZSYgc2l6ZSwgSGl0VGVzdFJlc3Vs
dCYgcmVzdWx0KQogewogICAgIEhUTUxBcmVhRWxlbWVudCogZGVmYXVsdEFyZWEgPSAwOwogICAg
IE5vZGUgKm5vZGUgPSB0aGlzOwpAQCAtNjgsNyArNjgsNyBAQCBib29sIEhUTUxNYXBFbGVtZW50
OjptYXBNb3VzZUV2ZW50KGludCB4CiAgICAgICAgICAgICBpZiAoYXJlYUVsdC0+aXNEZWZhdWx0
KCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIWRlZmF1bHRBcmVhKQogICAgICAgICAgICAgICAg
ICAgICBkZWZhdWx0QXJlYSA9IGFyZWFFbHQ7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGFyZWFF
bHQtPm1hcE1vdXNlRXZlbnQoeCwgeSwgc2l6ZSwgcmVzdWx0KSkKKyAgICAgICAgICAgIH0gZWxz
ZSBpZiAoYXJlYUVsdC0+bWFwTW91c2VFdmVudChsb2NhdGlvbiwgc2l6ZSwgcmVzdWx0KSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgJKHJldmlzaW9uIDkzMjI4KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw2
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEhpdFRl
c3RSZXN1bHQ7CiBjbGFzcyBIVE1MSW1hZ2VFbGVtZW50OwogICAgIApAQCAtMzksNyArMzgsNyBA
QCBwdWJsaWM6CiAKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGdldE5hbWUoKSBjb25zdCB7IHJl
dHVybiBtX25hbWU7IH0KIAotICAgIGJvb2wgbWFwTW91c2VFdmVudChpbnQgeCwgaW50IHksIGNv
bnN0IEludFNpemUmLCBIaXRUZXN0UmVzdWx0Jik7CisgICAgYm9vbCBtYXBNb3VzZUV2ZW50KExh
eW91dFBvaW50IGxvY2F0aW9uLCBjb25zdCBMYXlvdXRTaXplJiwgSGl0VGVzdFJlc3VsdCYpOwog
ICAgIAogICAgIEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlRWxlbWVudCgpOwogICAgIFBhc3NSZWZQ
dHI8SFRNTENvbGxlY3Rpb24+IGFyZWFzKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0lt
YWdlRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VE
b2N1bWVudC5jcHAJKHJldmlzaW9uIDkzMjI4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZURvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgSW1h
Z2VEb2N1bWVudFBhcnNlcjo6ZmluaXNoKCkKIAogICAgICAgICAvLyBSZXBvcnQgdGhlIG5hdHVy
YWwgaW1hZ2Ugc2l6ZSBpbiB0aGUgcGFnZSB0aXRsZSwgcmVnYXJkbGVzcyBvZiB6b29tCiAgICAg
ICAgIC8vIGxldmVsLgotICAgICAgICBJbnRTaXplIHNpemUgPSBjYWNoZWRJbWFnZS0+aW1hZ2VT
aXplKDEuMGYpOworICAgICAgICBMYXlvdXRTaXplIHNpemUgPSBjYWNoZWRJbWFnZS0+aW1hZ2VT
aXplKDEuMGYpOwogICAgICAgICBpZiAoc2l6ZS53aWR0aCgpKSB7CiAgICAgICAgICAgICAvLyBD
b21wdXRlIHRoZSB0aXRsZSwgd2UgdXNlIHRoZSBkZWNvZGVkIGZpbGVuYW1lIG9mIHRoZSByZXNv
dXJjZSwgZmFsbGluZwogICAgICAgICAgICAgLy8gYmFjayBvbiB0aGUgKGRlY29kZWQpIGhvc3Ru
YW1lIGlmIHRoZXJlIGlzIG5vIHBhdGguCkBAIC0yMzUsOCArMjM1LDggQEAgZmxvYXQgSW1hZ2VE
b2N1bWVudDo6c2NhbGUoKSBjb25zdAogICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJuIDE7
CiAKLSAgICBJbnRTaXplIGltYWdlU2l6ZSA9IG1faW1hZ2VFbGVtZW50LT5jYWNoZWRJbWFnZSgp
LT5pbWFnZVNpemUocGFnZVpvb21GYWN0b3IodGhpcykpOwotICAgIEludFNpemUgd2luZG93U2l6
ZSA9IEludFNpemUodmlldy0+d2lkdGgoKSwgdmlldy0+aGVpZ2h0KCkpOworICAgIExheW91dFNp
emUgaW1hZ2VTaXplID0gbV9pbWFnZUVsZW1lbnQtPmNhY2hlZEltYWdlKCktPmltYWdlU2l6ZShw
YWdlWm9vbUZhY3Rvcih0aGlzKSk7CisgICAgTGF5b3V0U2l6ZSB3aW5kb3dTaXplID0gSW50U2l6
ZSh2aWV3LT53aWR0aCgpLCB2aWV3LT5oZWlnaHQoKSk7CiAgICAgCiAgICAgZmxvYXQgd2lkdGhT
Y2FsZSA9IChmbG9hdCl3aW5kb3dTaXplLndpZHRoKCkgLyBpbWFnZVNpemUud2lkdGgoKTsKICAg
ICBmbG9hdCBoZWlnaHRTY2FsZSA9IChmbG9hdCl3aW5kb3dTaXplLmhlaWdodCgpIC8gaW1hZ2VT
aXplLmhlaWdodCgpOwpAQCAtMjQ5LDcgKzI0OSw3IEBAIHZvaWQgSW1hZ2VEb2N1bWVudDo6cmVz
aXplSW1hZ2VUb0ZpdCgpCiAgICAgaWYgKCFtX2ltYWdlRWxlbWVudCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgSW50U2l6ZSBpbWFnZVNpemUgPSBtX2ltYWdlRWxlbWVudC0+Y2FjaGVkSW1hZ2Uo
KS0+aW1hZ2VTaXplKHBhZ2Vab29tRmFjdG9yKHRoaXMpKTsKKyAgICBMYXlvdXRTaXplIGltYWdl
U2l6ZSA9IG1faW1hZ2VFbGVtZW50LT5jYWNoZWRJbWFnZSgpLT5pbWFnZVNpemUocGFnZVpvb21G
YWN0b3IodGhpcykpOwogCiAgICAgZmxvYXQgc2NhbGUgPSB0aGlzLT5zY2FsZSgpOwogICAgIG1f
aW1hZ2VFbGVtZW50LT5zZXRXaWR0aChzdGF0aWNfY2FzdDxpbnQ+KGltYWdlU2l6ZS53aWR0aCgp
ICogc2NhbGUpKTsKQEAgLTMyNiw4ICszMjYsOCBAQCBib29sIEltYWdlRG9jdW1lbnQ6OmltYWdl
Rml0c0luV2luZG93KCkgCiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAot
ICAgIEludFNpemUgaW1hZ2VTaXplID0gbV9pbWFnZUVsZW1lbnQtPmNhY2hlZEltYWdlKCktPmlt
YWdlU2l6ZShwYWdlWm9vbUZhY3Rvcih0aGlzKSk7Ci0gICAgSW50U2l6ZSB3aW5kb3dTaXplID0g
SW50U2l6ZSh2aWV3LT53aWR0aCgpLCB2aWV3LT5oZWlnaHQoKSk7CisgICAgTGF5b3V0U2l6ZSBp
bWFnZVNpemUgPSBtX2ltYWdlRWxlbWVudC0+Y2FjaGVkSW1hZ2UoKS0+aW1hZ2VTaXplKHBhZ2Va
b29tRmFjdG9yKHRoaXMpKTsKKyAgICBMYXlvdXRTaXplIHdpbmRvd1NpemUgPSBMYXlvdXRTaXpl
KHZpZXctPndpZHRoKCksIHZpZXctPmhlaWdodCgpKTsKICAgICAKICAgICByZXR1cm4gaW1hZ2VT
aXplLndpZHRoKCkgPD0gd2luZG93U2l6ZS53aWR0aCgpICYmIGltYWdlU2l6ZS5oZWlnaHQoKSA8
PSB3aW5kb3dTaXplLmhlaWdodCgpOyAgICAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwCShyZXZpc2lvbiA5MzIyOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNyArMTA2
LDcgQEAgdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6c2V0TWVzc2FnZURPTUFuZAogICAgIH0KIH0K
IAotc3RhdGljIHZvaWQgYWRqdXN0QnViYmxlUG9zaXRpb24oY29uc3QgSW50UmVjdCYgaG9zdFJl
Y3QsIEhUTUxFbGVtZW50KiBidWJibGUpCitzdGF0aWMgdm9pZCBhZGp1c3RCdWJibGVQb3NpdGlv
bihjb25zdCBMYXlvdXRSZWN0JiBob3N0UmVjdCwgSFRNTEVsZW1lbnQqIGJ1YmJsZSkKIHsKICAg
ICBBU1NFUlQoYnViYmxlKTsKICAgICBpZiAoaG9zdFJlY3QuaXNFbXB0eSgpKQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY3BwCShyZXZpc2lvbiA5MzIyOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNzksNyAr
MTE3OSw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjphcHBseVNoYWQKICAgICBj
LT5zZXRMZWdhY3lTaGFkb3coRmxvYXRTaXplKHdpZHRoLCAtaGVpZ2h0KSwgc3RhdGUoKS5tX3No
YWRvd0JsdXIsIHN0YXRlKCkubV9zaGFkb3dDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7CiB9
CiAKLXN0YXRpYyBJbnRTaXplIHNpemUoSFRNTEltYWdlRWxlbWVudCogaW1hZ2UpCitzdGF0aWMg
TGF5b3V0U2l6ZSBzaXplKEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlKQogewogICAgIGlmIChDYWNo
ZWRJbWFnZSogY2FjaGVkSW1hZ2UgPSBpbWFnZS0+Y2FjaGVkSW1hZ2UoKSkKICAgICAgICAgcmV0
dXJuIGNhY2hlZEltYWdlLT5pbWFnZVNpemUoMS4wZik7IC8vIEZJWE1FOiBOb3Qgc3VyZSBhYm91
dCB0aGlzLgpAQCAtMTIwOSw3ICsxMjA5LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ6OmRyYXdJbWFnZQogICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQotICAgIEludFNpemUgcyA9IHNpemUoaW1hZ2UpOworICAgIExheW91dFNp
emUgcyA9IHNpemUoaW1hZ2UpOwogICAgIGRyYXdJbWFnZShpbWFnZSwgeCwgeSwgcy53aWR0aCgp
LCBzLmhlaWdodCgpLCBlYyk7CiB9CiAKQEAgLTEyMjAsNyArMTIyMCw3IEBAIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3SW1hZ2UKICAgICAgICAgZWMgPSBUWVBFX01JU01BVENI
X0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBJbnRTaXplIHMgPSBzaXplKGltYWdl
KTsKKyAgICBMYXlvdXRTaXplIHMgPSBzaXplKGltYWdlKTsKICAgICBkcmF3SW1hZ2UoaW1hZ2Us
IEZsb2F0UmVjdCgwLCAwLCBzLndpZHRoKCksIHMuaGVpZ2h0KCkpLCBGbG9hdFJlY3QoeCwgeSwg
d2lkdGgsIGhlaWdodCksIGVjKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAkocmV2aXNpb24gOTMyMjgpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEyMiw3ICsxMjIsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlh
Q29udHJvbFBhbmVsRWxlCiAgICAgcmV0dXJuIGlkOwogfQogCi12b2lkIE1lZGlhQ29udHJvbFBh
bmVsRWxlbWVudDo6c3RhcnREcmFnKGNvbnN0IEludFBvaW50JiBldmVudExvY2F0aW9uKQordm9p
ZCBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OnN0YXJ0RHJhZyhjb25zdCBMYXlvdXRQb2ludCYg
ZXZlbnRMb2NhdGlvbikKIHsKICAgICBpZiAoIW1fY2FuQmVEcmFnZ2VkKQogICAgICAgICByZXR1
cm47CkBAIC0xNDYsMTIgKzE0NiwxMiBAQCB2b2lkIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6
c3RhcnREcmFnCiAgICAgbV9pc0JlaW5nRHJhZ2dlZCA9IHRydWU7CiB9CiAKLXZvaWQgTWVkaWFD
b250cm9sUGFuZWxFbGVtZW50Ojpjb250aW51ZURyYWcoY29uc3QgSW50UG9pbnQmIGV2ZW50TG9j
YXRpb24pCit2b2lkIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y29udGludWVEcmFnKGNvbnN0
IExheW91dFBvaW50JiBldmVudExvY2F0aW9uKQogewogICAgIGlmICghbV9pc0JlaW5nRHJhZ2dl
ZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSW50U2l6ZSBkaXN0YW5jZURyYWdnZWQgPSBldmVu
dExvY2F0aW9uIC0gbV9kcmFnU3RhcnRFdmVudExvY2F0aW9uOworICAgIExheW91dFNpemUgZGlz
dGFuY2VEcmFnZ2VkID0gZXZlbnRMb2NhdGlvbiAtIG1fZHJhZ1N0YXJ0RXZlbnRMb2NhdGlvbjsK
ICAgICBzZXRQb3NpdGlvbihtX2RyYWdTdGFydFBvc2l0aW9uICsgZGlzdGFuY2VEcmFnZ2VkKTsK
IH0KIApAQCAtMTY5LDcgKzE2OSw3IEBAIHZvaWQgTWVkaWFDb250cm9sUGFuZWxFbGVtZW50Ojpl
bmREcmFnKCkKICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNldENhcHR1cmluZ01vdXNlRXZl
bnRzTm9kZSgwKTsKIH0KIAotdm9pZCBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OnNldFBvc2l0
aW9uKGNvbnN0IEludFBvaW50JiBwb3NpdGlvbikKK3ZvaWQgTWVkaWFDb250cm9sUGFuZWxFbGVt
ZW50OjpzZXRQb3NpdGlvbihjb25zdCBMYXlvdXRQb2ludCYgcG9zaXRpb24pCiB7CiAgICAgQ1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIHN0eWxlID0gZ2V0SW5saW5lU3R5bGVEZWNsKCk7CiAK
QEAgLTE5OSw3ICsxOTksNyBAQCB2b2lkIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6ZGVmYXVs
dEV2CiAgICAgTWVkaWFDb250cm9sRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7
CiAKICAgICBpZiAoZXZlbnQtPmlzTW91c2VFdmVudCgpKSB7Ci0gICAgICAgIEludFBvaW50IGxv
Y2F0aW9uID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KS0+YWJzb2x1dGVMb2NhdGlv
bigpOworICAgICAgICBMYXlvdXRQb2ludCBsb2NhdGlvbiA9IHN0YXRpY19jYXN0PE1vdXNlRXZl
bnQqPihldmVudCktPmFic29sdXRlTG9jYXRpb24oKTsKICAgICAgICAgaWYgKGV2ZW50LT50eXBl
KCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50KSB7CiAgICAgICAgICAgICBzdGFydERy
YWcobG9jYXRpb24pOwogICAgICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1l
bnRzLmgJKHJldmlzaW9uIDkzMjI4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sRWxlbWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtMTA4LDE2ICsxMDgsMTYgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQo
KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwog
Ci0gICAgdm9pZCBzdGFydERyYWcoY29uc3QgSW50UG9pbnQmIGV2ZW50TG9jYXRpb24pOwotICAg
IHZvaWQgY29udGludWVEcmFnKGNvbnN0IEludFBvaW50JiBldmVudExvY2F0aW9uKTsKKyAgICB2
b2lkIHN0YXJ0RHJhZyhjb25zdCBMYXlvdXRQb2ludCYgZXZlbnRMb2NhdGlvbik7CisgICAgdm9p
ZCBjb250aW51ZURyYWcoY29uc3QgTGF5b3V0UG9pbnQmIGV2ZW50TG9jYXRpb24pOwogICAgIHZv
aWQgZW5kRHJhZygpOwogCi0gICAgdm9pZCBzZXRQb3NpdGlvbihjb25zdCBJbnRQb2ludCYpOwor
ICAgIHZvaWQgc2V0UG9zaXRpb24oY29uc3QgTGF5b3V0UG9pbnQmKTsKIAogICAgIGJvb2wgbV9j
YW5CZURyYWdnZWQ7CiAgICAgYm9vbCBtX2lzQmVpbmdEcmFnZ2VkOwotICAgIEludFBvaW50IG1f
ZHJhZ1N0YXJ0UG9zaXRpb247Ci0gICAgSW50UG9pbnQgbV9kcmFnU3RhcnRFdmVudExvY2F0aW9u
OworICAgIExheW91dFBvaW50IG1fZHJhZ1N0YXJ0UG9zaXRpb247CisgICAgTGF5b3V0UG9pbnQg
bV9kcmFnU3RhcnRFdmVudExvY2F0aW9uOwogfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJU
aHVtYkVsZW1lbnQuY3BwCShyZXZpc2lvbiA5MzIyOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5NSwyOSAr
MTk1LDI5IEBAIE5vZGUqIFNsaWRlclRodW1iRWxlbWVudDo6Zm9jdXNEZWxlZ2F0ZSgKICAgICBy
ZXR1cm4gaG9zdElucHV0KCk7CiB9CiAKLXZvaWQgU2xpZGVyVGh1bWJFbGVtZW50OjpkcmFnRnJv
bShjb25zdCBJbnRQb2ludCYgcG9pbnQpCit2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6ZHJhZ0Zy
b20oY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50KQogewogICAgIHNldFBvc2l0aW9uRnJvbVBvaW50
KHBvaW50KTsKICAgICBzdGFydERyYWdnaW5nKCk7CiB9CiAKLXZvaWQgU2xpZGVyVGh1bWJFbGVt
ZW50OjpzZXRQb3NpdGlvbkZyb21Qb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQpCit2b2lkIFNs
aWRlclRodW1iRWxlbWVudDo6c2V0UG9zaXRpb25Gcm9tUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQm
IHBvaW50KQogewogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gaG9zdElucHV0KCk7CiAK
ICAgICBpZiAoIWlucHV0LT5yZW5kZXJlcigpIHx8ICFyZW5kZXJlcigpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBJbnRQb2ludCBvZmZzZXQgPSByb3VuZGVkSW50UG9pbnQoaW5wdXQtPnJlbmRl
cmVyKCktPmFic29sdXRlVG9Mb2NhbChwb2ludCwgZmFsc2UsIHRydWUpKTsKKyAgICBMYXlvdXRQ
b2ludCBvZmZzZXQgPSByb3VuZGVkTGF5b3V0UG9pbnQoaW5wdXQtPnJlbmRlcmVyKCktPmFic29s
dXRlVG9Mb2NhbChwb2ludCwgZmFsc2UsIHRydWUpKTsKICAgICBib29sIGlzVmVydGljYWwgPSBo
YXNWZXJ0aWNhbEFwcGVhcmFuY2UoaW5wdXQpOwotICAgIGludCB0cmFja1NpemU7Ci0gICAgaW50
IHBvc2l0aW9uOwotICAgIGludCBjdXJyZW50UG9zaXRpb247CisgICAgTGF5b3V0VW5pdCB0cmFj
a1NpemU7CisgICAgTGF5b3V0VW5pdCBwb3NpdGlvbjsKKyAgICBMYXlvdXRVbml0IGN1cnJlbnRQ
b3NpdGlvbjsKICAgICAvLyBXZSBuZWVkIHRvIGNhbGN1bGF0ZSBjdXJyZW50UG9zaXRpb24gZnJv
bSBhYnNvbHV0ZSBwb2ludHMgYmVjYXVlIHRoZQogICAgIC8vIHJlbmRlcmVyIGZvciB0aGlzIG5v
ZGUgaXMgdXN1YWxseSBvbiBhIGxheWVyIGFuZCByZW5kZXJCb3goKS0+eCgpIGFuZAogICAgIC8v
IHkoKSBhcmUgdW51c2FibGUuCi0gICAgSW50UG9pbnQgYWJzb2x1dGVUaHVtYk9yaWdpbiA9IHJl
bmRlckJveCgpLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpLmxvY2F0aW9uKCk7Ci0gICAgSW50
UG9pbnQgYWJzb2x1dGVTbGlkZXJDb250ZW50T3JpZ2luID0gcm91bmRlZEludFBvaW50KGlucHV0
LT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGUoKSk7CisgICAgTGF5b3V0UG9pbnQgYWJzb2x1
dGVUaHVtYk9yaWdpbiA9IHJlbmRlckJveCgpLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpLmxv
Y2F0aW9uKCk7CisgICAgTGF5b3V0UG9pbnQgYWJzb2x1dGVTbGlkZXJDb250ZW50T3JpZ2luID0g
cm91bmRlZExheW91dFBvaW50KGlucHV0LT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGUoKSk7
CiAgICAgaWYgKGlzVmVydGljYWwpIHsKICAgICAgICAgdHJhY2tTaXplID0gaW5wdXQtPnJlbmRl
ckJveCgpLT5jb250ZW50SGVpZ2h0KCkgLSByZW5kZXJCb3goKS0+aGVpZ2h0KCk7CiAgICAgICAg
IHBvc2l0aW9uID0gb2Zmc2V0LnkoKSAtIHJlbmRlckJveCgpLT5oZWlnaHQoKSAvIDI7CkBAIC0y
MjcsNyArMjI3LDcgQEAgdm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6OnNldFBvc2l0aW9uRnJvbQog
ICAgICAgICBwb3NpdGlvbiA9IG9mZnNldC54KCkgLSByZW5kZXJCb3goKS0+d2lkdGgoKSAvIDI7
CiAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA9IGFic29sdXRlVGh1bWJPcmlnaW4ueCgpIC0gYWJz
b2x1dGVTbGlkZXJDb250ZW50T3JpZ2luLngoKTsKICAgICB9Ci0gICAgcG9zaXRpb24gPSBtYXgo
MCwgbWluKHBvc2l0aW9uLCB0cmFja1NpemUpKTsKKyAgICBwb3NpdGlvbiA9IG1heDxMYXlvdXRV
bml0PigwLCBtaW4ocG9zaXRpb24sIHRyYWNrU2l6ZSkpOwogICAgIGlmIChwb3NpdGlvbiA9PSBj
dXJyZW50UG9zaXRpb24pCiAgICAgICAgIHJldHVybjsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgJKHJldmlzaW9uIDkzMjI4KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRQb3NpdGlv
bkZyb21WYWx1ZSgpOwogCi0gICAgdm9pZCBkcmFnRnJvbShjb25zdCBJbnRQb2ludCYpOworICAg
IHZvaWQgZHJhZ0Zyb20oY29uc3QgTGF5b3V0UG9pbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKICAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKQEAg
LTY3LDcgKzY3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIE5vZGUqIGZvY3VzRGVsZWdhdGUo
KTsKICAgICB2b2lkIHN0YXJ0RHJhZ2dpbmcoKTsKICAgICB2b2lkIHN0b3BEcmFnZ2luZygpOwot
ICAgIHZvaWQgc2V0UG9zaXRpb25Gcm9tUG9pbnQoY29uc3QgSW50UG9pbnQmKTsKKyAgICB2b2lk
IHNldFBvc2l0aW9uRnJvbVBvaW50KGNvbnN0IExheW91dFBvaW50Jik7CiAKICAgICBib29sIG1f
aW5EcmFnTW9kZTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1h
Z2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFn
ZS5jcHAJKHJldmlzaW9uIDkzMjI4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDM3LDEwICs0MzcsMTEgQEAgYm9vbCBSZW5k
ZXJJbWFnZTo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VAogICAgIGlmICh0ZW1wUmVzdWx0LmlubmVy
Tm9kZSgpICYmIG5vZGUoKSkgewogICAgICAgICBpZiAoSFRNTE1hcEVsZW1lbnQqIG1hcCA9IGlt
YWdlTWFwKCkpIHsKICAgICAgICAgICAgIEludFJlY3QgY29udGVudEJveCA9IGNvbnRlbnRCb3hS
ZWN0KCk7Ci0gICAgICAgICAgICBmbG9hdCB6b29tID0gc3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgp
OwotICAgICAgICAgICAgTGF5b3V0VW5pdCBtYXBYID0gcm91bmRlZExheW91dFVuaXQoKHBvaW50
SW5Db250YWluZXIueCgpIC0gYWNjdW11bGF0ZWRPZmZzZXQueCgpIC0gdGhpcy0+eCgpIC0gY29u
dGVudEJveC54KCkpIC8gem9vbSk7Ci0gICAgICAgICAgICBMYXlvdXRVbml0IG1hcFkgPSByb3Vu
ZGVkTGF5b3V0VW5pdCgocG9pbnRJbkNvbnRhaW5lci55KCkgLSBhY2N1bXVsYXRlZE9mZnNldC55
KCkgLSB0aGlzLT55KCkgLSBjb250ZW50Qm94LnkoKSkgLyB6b29tKTsKLSAgICAgICAgICAgIGlm
IChtYXAtPm1hcE1vdXNlRXZlbnQobWFwWCwgbWFwWSwgY29udGVudEJveC5zaXplKCksIHRlbXBS
ZXN1bHQpKQorICAgICAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSAxIC8gc3R5bGUoKS0+ZWZm
ZWN0aXZlWm9vbSgpOworICAgICAgICAgICAgTGF5b3V0UG9pbnQgbWFwTG9jYXRpb24ocG9pbnRJ
bkNvbnRhaW5lci54KCkgLSBhY2N1bXVsYXRlZE9mZnNldC54KCkgLSB0aGlzLT54KCkgLSBjb250
ZW50Qm94LngoKSwgcG9pbnRJbkNvbnRhaW5lci55KCkgLSBhY2N1bXVsYXRlZE9mZnNldC55KCkg
LSB0aGlzLT55KCkgLSBjb250ZW50Qm94LnkoKSk7CisgICAgICAgICAgICBtYXBMb2NhdGlvbi5z
Y2FsZShzY2FsZUZhY3Rvciwgc2NhbGVGYWN0b3IpOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBpZiAobWFwLT5tYXBNb3VzZUV2ZW50KG1hcExvY2F0aW9uLCBjb250ZW50Qm94LnNpemUoKSwg
dGVtcFJlc3VsdCkpCiAgICAgICAgICAgICAgICAgdGVtcFJlc3VsdC5zZXRJbm5lck5vblNoYXJl
ZE5vZGUobm9kZSgpKTsKICAgICAgICAgfQogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>