<?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>61804</bug_id>
          
          <creation_ts>2011-05-31 13:30:57 -0700</creation_ts>
          <short_desc>Change InlineBox::paint and its overloaded variants to use IntPoint</short_desc>
          <delta_ts>2011-05-31 19:30:35 -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>60318</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Levi Weintraub">leviw</reporter>
          <assigned_to name="Levi Weintraub">leviw</assigned_to>
          <cc>darin</cc>
    
    <cc>eae</cc>
    
    <cc>eric</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>412826</commentid>
    <comment_count>0</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-31 13:30:57 -0700</bug_when>
    <thetext>InlineBox::paint has 7 overloaded versions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412859</commentid>
    <comment_count>1</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-31 14:22:53 -0700</bug_when>
    <thetext>Also changing RootInlineBox::paintEllipsisBox since it&apos;s basically just a shell around this same paint function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412871</commentid>
    <comment_count>2</comment_count>
      <attachid>95484</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-31 14:37:26 -0700</bug_when>
    <thetext>Created attachment 95484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412887</commentid>
    <comment_count>3</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-31 14:54:30 -0700</bug_when>
    <thetext>Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412889</commentid>
    <comment_count>4</comment_count>
      <attachid>95484</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-31 14:55:45 -0700</bug_when>
    <thetext>Comment on attachment 95484
Patch

Clearing flags on attachment: 95484

Committed r87753: &lt;http://trac.webkit.org/changeset/87753&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412890</commentid>
    <comment_count>5</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-31 14:55:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413085</commentid>
    <comment_count>6</comment_count>
      <attachid>95484</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-31 19:30:35 -0700</bug_when>
    <thetext>Comment on attachment 95484
Patch

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

Looks OK besides that one line.

&gt; Source/WebCore/rendering/EllipsisBox.cpp:71
&gt; +        adjustedPaintOffset.move(m_x + m_logicalWidth - m_markupBox-&gt;x(),
&gt; +            m_y + style-&gt;fontMetrics().ascent() - (m_markupBox-&gt;y() + m_markupBox-&gt;renderer()-&gt;style(m_firstLine)-&gt;fontMetrics().ascent()));

Wow, this is hard to read.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95484</attachid>
            <date>2011-05-31 14:37:26 -0700</date>
            <delta_ts>2011-05-31 19:30:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61804-20110531143725.patch</filename>
            <type>text/plain</type>
            <size>24008</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3NzUxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDUtMzEgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBJbmxpbmVCb3g6OnBhaW50IGFuZCBpdHMgb3Zl
cmxvYWRlZCB2YXJpYW50cyB0byB1c2UgSW50UG9pbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxODA0CisKKyAgICAgICAgQ2hhbmdpbmcgSW5saW5l
Qm94OjpwYWludCwgaXRzIDcgb3ZlcmxvYWRlZCB2YXJpYW50cywgYW5kIFJvb3RJbmxpbmVCb3g6
OnBhaW50RWxsaXBzaXNCb3gKKyAgICAgICAgdG8gdXNlIEludFBvaW50IGZvciB0aGVpciBwYWlu
dCBvZmZzZXQgaW5zdGVhZCBvZiBhIHBhaXIgb2YgaW50cy4KKworICAgICAgICBObyBuZXcgdGVz
dHMgc2luY2UgdGhpcyBpcyBqdXN0IGEgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiByZW5kZXJp
bmcvRWxsaXBzaXNCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxsaXBzaXNCb3g6OnBhaW50
KToKKyAgICAgICAgKiByZW5kZXJpbmcvRWxsaXBzaXNCb3guaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvSW5saW5lQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUJveDo6cGFpbnQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvSW5s
aW5lRmxvd0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94OjpwYWludCk6
CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvSW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94Ojpw
YWludCk6CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZVRleHRCb3guaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OnBhaW50RWxsaXBzaXNCb3hlcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWlu
dEZpbGxMYXllckV4dGVuZGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGluZUJveExp
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGluZUJveExpc3Q6OnBhaW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
b290SW5saW5lQm94OjpwYWludEVsbGlwc2lzQm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJ
bmxpbmVCb3g6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUm9vdElubGluZUJveC5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHSW5saW5lRmxvd0JveC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdJbmxpbmVGbG93Qm94OjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9TVkdJbmxpbmVGbG93Qm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVU
ZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0lubGluZVRleHRCb3g6OnBhaW50KToK
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
Um9vdElubGluZUJveDo6cGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUm9vdElu
bGluZUJveC5oOgorCiAyMDExLTA1LTMxICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQ7IGJ1aWxkIGZpeC4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9FbGxpcHNpc0JveC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0VsbGlwc2lzQm94LmNwcAkocmV2aXNpb24gODc3MzcpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRWxsaXBzaXNCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBFbGxpcHNpc0Jv
eDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGludCB0eCwgaW50IHR5LCBpbnQgbGluZVRv
cCwgaW50IGxpbmVCb3R0b20pCit2b2lkIEVsbGlwc2lzQm94OjpwYWludChQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgSW50UG9pbnQmIHBhaW50T2Zmc2V0LCBpbnQgbGluZVRvcCwgaW50IGxp
bmVCb3R0b20pCiB7CiAgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gcGFpbnRJbmZvLmNv
bnRleHQ7CiAgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gbV9yZW5kZXJlci0+c3R5bGUobV9maXJz
dExpbmUpOwpAQCAtNDYsNyArNDYsNyBAQCB2b2lkIEVsbGlwc2lzQm94OjpwYWludChQYWludElu
Zm8mIHBhaW50CiAKICAgICBjb25zdCBGb250JiBmb250ID0gc3R5bGUtPmZvbnQoKTsKICAgICBp
ZiAoc2VsZWN0aW9uU3RhdGUoKSAhPSBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvbk5vbmUpIHsKLSAg
ICAgICAgcGFpbnRTZWxlY3Rpb24oY29udGV4dCwgdHgsIHR5LCBzdHlsZSwgZm9udCk7CisgICAg
ICAgIHBhaW50U2VsZWN0aW9uKGNvbnRleHQsIHBhaW50T2Zmc2V0LngoKSwgcGFpbnRPZmZzZXQu
eSgpLCBzdHlsZSwgZm9udCk7CiAKICAgICAgICAgLy8gU2VsZWN0IHRoZSBjb3JyZWN0IGNvbG9y
IGZvciBwYWludGluZyB0aGUgdGV4dC4KICAgICAgICAgQ29sb3IgZm9yZWdyb3VuZCA9IHBhaW50
SW5mby5mb3JjZUJsYWNrVGV4dCA/IENvbG9yOjpibGFjayA6IHJlbmRlcmVyKCktPnNlbGVjdGlv
bkZvcmVncm91bmRDb2xvcigpOwpAQCAtNTUsNyArNTUsNyBAQCB2b2lkIEVsbGlwc2lzQm94Ojpw
YWludChQYWludEluZm8mIHBhaW50CiAgICAgfQogCiAgICAgLy8gRklYTUU6IFdoeSBpcyB0aGlz
IGFsd2F5cyBMVFI/IEZpeCBieSBwYXNzaW5nIGNvcnJlY3QgdGV4dCBydW4gZmxhZ3MgYmVsb3cu
Ci0gICAgY29udGV4dC0+ZHJhd1RleHQoZm9udCwgUmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRS
dW4ocmVuZGVyZXIoKSwgZm9udCwgbV9zdHIsIHN0eWxlLCBUZXh0UnVuOjpBbGxvd1RyYWlsaW5n
RXhwYW5zaW9uKSwgSW50UG9pbnQobV94ICsgdHgsIG1feSArIHR5ICsgc3R5bGUtPmZvbnRNZXRy
aWNzKCkuYXNjZW50KCkpKTsKKyAgICBjb250ZXh0LT5kcmF3VGV4dChmb250LCBSZW5kZXJCbG9j
azo6Y29uc3RydWN0VGV4dFJ1bihyZW5kZXJlcigpLCBmb250LCBtX3N0ciwgc3R5bGUsIFRleHRS
dW46OkFsbG93VHJhaWxpbmdFeHBhbnNpb24pLCBJbnRQb2ludChtX3ggKyBwYWludE9mZnNldC54
KCksIG1feSArIHBhaW50T2Zmc2V0LnkoKSArIHN0eWxlLT5mb250TWV0cmljcygpLmFzY2VudCgp
KSk7CiAKICAgICAvLyBSZXN0b3JlIHRoZSByZWd1bGFyIGZpbGwgY29sb3IuCiAgICAgaWYgKHRl
eHRDb2xvciAhPSBjb250ZXh0LT5maWxsQ29sb3IoKSkKQEAgLTY2LDkgKzY2LDEwIEBAIHZvaWQg
RWxsaXBzaXNCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpbnQKIAogICAgIGlmIChtX21hcmt1cEJv
eCkgewogICAgICAgICAvLyBQYWludCB0aGUgbWFya3VwIGJveAotICAgICAgICB0eCArPSBtX3gg
KyBtX2xvZ2ljYWxXaWR0aCAtIG1fbWFya3VwQm94LT54KCk7Ci0gICAgICAgIHR5ICs9IG1feSAr
IHN0eWxlLT5mb250TWV0cmljcygpLmFzY2VudCgpIC0gKG1fbWFya3VwQm94LT55KCkgKyBtX21h
cmt1cEJveC0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5mb250TWV0cmljcygpLmFz
Y2VudCgpKTsKLSAgICAgICAgbV9tYXJrdXBCb3gtPnBhaW50KHBhaW50SW5mbywgdHgsIHR5LCBs
aW5lVG9wLCBsaW5lQm90dG9tKTsKKyAgICAgICAgSW50UG9pbnQgYWRqdXN0ZWRQYWludE9mZnNl
dCA9IHBhaW50T2Zmc2V0OworICAgICAgICBhZGp1c3RlZFBhaW50T2Zmc2V0Lm1vdmUobV94ICsg
bV9sb2dpY2FsV2lkdGggLSBtX21hcmt1cEJveC0+eCgpLAorICAgICAgICAgICAgbV95ICsgc3R5
bGUtPmZvbnRNZXRyaWNzKCkuYXNjZW50KCkgLSAobV9tYXJrdXBCb3gtPnkoKSArIG1fbWFya3Vw
Qm94LT5yZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSktPmZvbnRNZXRyaWNzKCkuYXNjZW50
KCkpKTsKKyAgICAgICAgbV9tYXJrdXBCb3gtPnBhaW50KHBhaW50SW5mbywgYWRqdXN0ZWRQYWlu
dE9mZnNldCwgbGluZVRvcCwgbGluZUJvdHRvbSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvRWxsaXBzaXNCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRWxsaXBzaXNCb3guaAkocmV2aXNpb24gODc3MzcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvRWxsaXBzaXNCb3guaAkod29ya2luZyBjb3B5KQpAQCAtMzksNyAr
MzksNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBwYWludChQ
YWludEluZm8mLCBpbnQgdHgsIGludCB0eSwgaW50IGxpbmVUb3AsIGludCBsaW5lQm90dG9tKTsK
KyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgSW50UG9pbnQmLCBpbnQg
bGluZVRvcCwgaW50IGxpbmVCb3R0b20pOwogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChj
b25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBJbnRQb2ludCYgcG9p
bnRJbkNvbnRhaW5lciwgaW50IHR4LCBpbnQgdHksIGludCBsaW5lVG9wLCBpbnQgbGluZUJvdHRv
bSk7CiAgICAgdm9pZCBzZXRTZWxlY3Rpb25TdGF0ZShSZW5kZXJPYmplY3Q6OlNlbGVjdGlvblN0
YXRlIHMpIHsgbV9zZWxlY3Rpb25TdGF0ZSA9IHM7IH0KICAgICBJbnRSZWN0IHNlbGVjdGlvblJl
Y3QoaW50IHR4LCBpbnQgdHkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGlu
ZUJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUJv
eC5jcHAJKHJldmlzaW9uIDg3NzM3KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGlu
ZUJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5MywxMiArMTkzLDEyIEBAIHZvaWQgSW5saW5l
Qm94OjphZGp1c3RQb3NpdGlvbihmbG9hdCBkeCwKICAgICAgICAgdG9SZW5kZXJCb3gobV9yZW5k
ZXJlciktPm1vdmUoZHgsIGR5KTsgCiB9CiAKLXZvaWQgSW5saW5lQm94OjpwYWludChQYWludElu
Zm8mIHBhaW50SW5mbywgaW50IHR4LCBpbnQgdHksIGludCAvKiBsaW5lVG9wICovLCBpbnQgLyps
aW5lQm90dG9tKi8pCit2b2lkIElubGluZUJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8s
IGNvbnN0IEludFBvaW50JiBwYWludE9mZnNldCwgaW50IC8qIGxpbmVUb3AgKi8sIGludCAvKmxp
bmVCb3R0b20qLykKIHsKICAgICBpZiAoIXBhaW50SW5mby5zaG91bGRQYWludFdpdGhpblJvb3Qo
cmVuZGVyZXIoKSkgfHwgKHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlRm9yZWdyb3VuZCAm
JiBwYWludEluZm8ucGhhc2UgIT0gUGFpbnRQaGFzZVNlbGVjdGlvbikpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIEludFBvaW50IGNoaWxkUG9pbnQgPSBJbnRQb2ludCh0eCwgdHkpOworICAgIElu
dFBvaW50IGNoaWxkUG9pbnQgPSBwYWludE9mZnNldDsKICAgICBpZiAocGFyZW50KCktPnJlbmRl
cmVyKCktPnN0eWxlKCktPmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpIC8vIEZhc3RlciB0
aGFuIGNhbGxpbmcgY29udGFpbmluZ0Jsb2NrKCkuCiAgICAgICAgIGNoaWxkUG9pbnQgPSByZW5k
ZXJlcigpLT5jb250YWluaW5nQmxvY2soKS0+ZmxpcEZvcldyaXRpbmdNb2RlKHRvUmVuZGVyQm94
KHJlbmRlcmVyKCkpLCBjaGlsZFBvaW50LCBSZW5kZXJCb3g6OlBhcmVudFRvQ2hpbGRGbGlwcGlu
Z0FkanVzdG1lbnQpOwogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGlu
ZUJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVCb3gu
aAkocmV2aXNpb24gODc3MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lQm94
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyOSw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICBhZGp1c3RQb3NpdGlvbihkZWx0YSwgMCk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIHBh
aW50KFBhaW50SW5mbyYsIGludCB0eCwgaW50IHR5LCBpbnQgbGluZVRvcCwgaW50IGxpbmVCb3R0
b20pOworICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBJbnRQb2ludCYs
IGludCBsaW5lVG9wLCBpbnQgbGluZUJvdHRvbSk7CiAgICAgdmlydHVhbCBib29sIG5vZGVBdFBv
aW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEludFBvaW50
JiBwb2ludEluQ29udGFpbmVyLCBpbnQgdHgsIGludCB0eSwgaW50IGxpbmVUb3AsIGludCBsaW5l
Qm90dG9tKTsKIAogICAgIElubGluZUJveCogbmV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dDsg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkocmV2
aXNpb24gODc3MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTk0NiwxMiArOTQ2LDEyIEBAIGJvb2wgSW5saW5lRmxvd0Jv
eDo6bm9kZUF0UG9pbnQoY29uc3QgSGkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgSW5s
aW5lRmxvd0JveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGludCB0eCwgaW50IHR5LCBp
bnQgbGluZVRvcCwgaW50IGxpbmVCb3R0b20pCit2b2lkIElubGluZUZsb3dCb3g6OnBhaW50KFBh
aW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRQb2ludCYgcGFpbnRPZmZzZXQsIGludCBsaW5l
VG9wLCBpbnQgbGluZUJvdHRvbSkKIHsKICAgICBJbnRSZWN0IG92ZXJmbG93UmVjdCh2aXN1YWxP
dmVyZmxvd1JlY3QobGluZVRvcCwgbGluZUJvdHRvbSkpOwogICAgIG92ZXJmbG93UmVjdC5pbmZs
YXRlKHJlbmRlcmVyKCktPm1heGltYWxPdXRsaW5lU2l6ZShwYWludEluZm8ucGhhc2UpKTsKICAg
ICBmbGlwRm9yV3JpdGluZ01vZGUob3ZlcmZsb3dSZWN0KTsKLSAgICBvdmVyZmxvd1JlY3QubW92
ZSh0eCwgdHkpOworICAgIG92ZXJmbG93UmVjdC5tb3ZlKHBhaW50T2Zmc2V0KTsKICAgICAKICAg
ICBpZiAoIXBhaW50SW5mby5yZWN0LmludGVyc2VjdHMob3ZlcmZsb3dSZWN0KSkKICAgICAgICAg
cmV0dXJuOwpAQCAtOTkxLDExICs5OTEsMTEgQEAgdm9pZCBJbmxpbmVGbG93Qm94OjpwYWludChQ
YWludEluZm8mIHBhaQogICAgICAgICAgICAgICAgICAgICBwYWludEluZm8ub3V0bGluZU9iamVj
dHMtPmFkZChpbmxpbmVGbG93KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmIChw
YWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZU1hc2spIHsKLSAgICAgICAgICAgIHBhaW50TWFz
ayhwYWludEluZm8sIHR4LCB0eSk7CisgICAgICAgICAgICBwYWludE1hc2socGFpbnRJbmZvLCBw
YWludE9mZnNldC54KCksIHBhaW50T2Zmc2V0LnkoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBQYWludCBvdXIgYmFja2dyb3VuZCwgYm9y
ZGVyIGFuZCBib3gtc2hhZG93LgotICAgICAgICAgICAgcGFpbnRCb3hEZWNvcmF0aW9ucyhwYWlu
dEluZm8sIHR4LCB0eSk7CisgICAgICAgICAgICBwYWludEJveERlY29yYXRpb25zKHBhaW50SW5m
bywgcGFpbnRPZmZzZXQueCgpLCBwYWludE9mZnNldC55KCkpOwogICAgICAgICB9CiAgICAgfQog
CkBAIC0xMDExLDcgKzEwMTEsNyBAQCB2b2lkIElubGluZUZsb3dCb3g6OnBhaW50KFBhaW50SW5m
byYgcGFpCiAgICAgaWYgKHBhaW50UGhhc2UgIT0gUGFpbnRQaGFzZVNlbGZPdXRsaW5lKSB7CiAg
ICAgICAgIGZvciAoSW5saW5lQm94KiBjdXJyID0gZmlyc3RDaGlsZCgpOyBjdXJyOyBjdXJyID0g
Y3Vyci0+bmV4dE9uTGluZSgpKSB7CiAgICAgICAgICAgICBpZiAoY3Vyci0+cmVuZGVyZXIoKS0+
aXNUZXh0KCkgfHwgIWN1cnItPmJveE1vZGVsT2JqZWN0KCktPmhhc1NlbGZQYWludGluZ0xheWVy
KCkpCi0gICAgICAgICAgICAgICAgY3Vyci0+cGFpbnQoY2hpbGRJbmZvLCB0eCwgdHksIGxpbmVU
b3AsIGxpbmVCb3R0b20pOworICAgICAgICAgICAgICAgIGN1cnItPnBhaW50KGNoaWxkSW5mbywg
cGFpbnRPZmZzZXQsIGxpbmVUb3AsIGxpbmVCb3R0b20pOwogICAgICAgICB9CiAgICAgfQogfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5oCShyZXZpc2lvbiA4
NzczNykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmgJKHdvcmtp
bmcgY29weSkKQEAgLTEwOCw3ICsxMDgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYWludEZpbGxM
YXllcnMoY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgQ29sb3ImLCBjb25zdCBGaWxsTGF5ZXIqLCBj
b25zdCBJbnRSZWN0JiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyKTsK
ICAgICB2b2lkIHBhaW50RmlsbExheWVyKGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IENvbG9yJiwg
Y29uc3QgRmlsbExheWVyKiwgY29uc3QgSW50UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29t
cG9zaXRlU291cmNlT3Zlcik7CiAgICAgdm9pZCBwYWludEJveFNoYWRvdyhHcmFwaGljc0NvbnRl
eHQqLCBSZW5kZXJTdHlsZSosIFNoYWRvd1N0eWxlLCBjb25zdCBJbnRSZWN0Jik7Ci0gICAgdmly
dHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGludCB0eCwgaW50IHR5LCBpbnQgbGluZVRvcCwg
aW50IGxpbmVCb3R0b20pOworICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25z
dCBJbnRQb2ludCYsIGludCBsaW5lVG9wLCBpbnQgbGluZUJvdHRvbSk7CiAgICAgdmlydHVhbCBi
b29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNv
bnN0IEludFBvaW50JiBwb2ludEluQ29udGFpbmVyLCBpbnQgdHgsIGludCB0eSwgaW50IGxpbmVU
b3AsIGludCBsaW5lQm90dG9tKTsKIAogICAgIHZpcnR1YWwgUmVuZGVyTGluZUJveExpc3QqIHJl
bmRlcmVyTGluZUJveGVzKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lVGV4dEJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0lubGluZVRleHRCb3guY3BwCShyZXZpc2lvbiA4NzczNykKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYzLDcgKzQ2Myw3
IEBAIHN0YXRpYyBpbmxpbmUgQWZmaW5lVHJhbnNmb3JtIHJvdGF0aW9uKGMKICAgICAgICAgOiBB
ZmZpbmVUcmFuc2Zvcm0oMCwgLTEsIDEsIDAsIGJveFJlY3QueCgpIC0gYm94UmVjdC5tYXhZKCks
IGJveFJlY3QueCgpICsgYm94UmVjdC5tYXhZKCkpOwogfQogCi12b2lkIElubGluZVRleHRCb3g6
OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBpbnQgdHgsIGludCB0eSwgaW50IC8qbGluZVRv
cCovLCBpbnQgLypsaW5lQm90dG9tKi8pCit2b2lkIElubGluZVRleHRCb3g6OnBhaW50KFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRQb2ludCYgcGFpbnRPZmZzZXQsIGludCAvKmxpbmVU
b3AqLywgaW50IC8qbGluZUJvdHRvbSovKQogewogICAgIGlmIChpc0xpbmVCcmVhaygpIHx8ICFw
YWludEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290KHJlbmRlcmVyKCkpIHx8IHJlbmRlcmVyKCkt
PnN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFIHx8CiAgICAgICAgIG1fdHJ1bmNhdGlv
biA9PSBjRnVsbFRydW5jYXRpb24gfHwgcGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VPdXRs
aW5lIHx8ICFtX2xlbikKQEAgLTQ3MywxMiArNDczLDE0IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6
cGFpbnQoUGFpbnRJbmZvJiBwYWkKIAogICAgIGludCBsb2dpY2FsTGVmdFNpZGUgPSBsb2dpY2Fs
TGVmdFZpc3VhbE92ZXJmbG93KCk7CiAgICAgaW50IGxvZ2ljYWxSaWdodFNpZGUgPSBsb2dpY2Fs
UmlnaHRWaXN1YWxPdmVyZmxvdygpOwotICAgIGludCBsb2dpY2FsU3RhcnQgPSBsb2dpY2FsTGVm
dFNpZGUgKyAoaXNIb3Jpem9udGFsKCkgPyB0eCA6IHR5KTsKKyAgICBpbnQgbG9naWNhbFN0YXJ0
ID0gbG9naWNhbExlZnRTaWRlICsgKGlzSG9yaXpvbnRhbCgpID8gcGFpbnRPZmZzZXQueCgpIDog
cGFpbnRPZmZzZXQueSgpKTsKICAgICBpbnQgbG9naWNhbEV4dGVudCA9IGxvZ2ljYWxSaWdodFNp
ZGUgLSBsb2dpY2FsTGVmdFNpZGU7CiAgICAgCiAgICAgaW50IHBhaW50RW5kID0gaXNIb3Jpem9u
dGFsKCkgPyBwYWludEluZm8ucmVjdC5tYXhYKCkgOiBwYWludEluZm8ucmVjdC5tYXhZKCk7CiAg
ICAgaW50IHBhaW50U3RhcnQgPSBpc0hvcml6b250YWwoKSA/IHBhaW50SW5mby5yZWN0LngoKSA6
IHBhaW50SW5mby5yZWN0LnkoKTsKICAgICAKKyAgICBJbnRQb2ludCBhZGp1c3RlZFBhaW50T2Zm
c2V0ID0gcGFpbnRPZmZzZXQ7CisgICAgCiAgICAgaWYgKGxvZ2ljYWxTdGFydCA+PSBwYWludEVu
ZCB8fCBsb2dpY2FsU3RhcnQgKyBsb2dpY2FsRXh0ZW50IDw9IHBhaW50U3RhcnQpCiAgICAgICAg
IHJldHVybjsKIApAQCAtNTAzLDEwICs1MDUsOCBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50
KFBhaW50SW5mbyYgcGFpCiAgICAgICAgICAgICBpbnQgd2lkdGhPZlZpc2libGVUZXh0ID0gdG9S
ZW5kZXJUZXh0KHJlbmRlcmVyKCkpLT53aWR0aChtX3N0YXJ0LCBtX3RydW5jYXRpb24sIHRleHRQ
b3MoKSwgbV9maXJzdExpbmUpOwogICAgICAgICAgICAgaW50IHdpZHRoT2ZIaWRkZW5UZXh0ID0g
bV9sb2dpY2FsV2lkdGggLSB3aWR0aE9mVmlzaWJsZVRleHQ7CiAgICAgICAgICAgICAvLyBGSVhN
RTogVGhlIGhpdCB0ZXN0aW5nIGxvZ2ljIGFsc28gbmVlZHMgdG8gdGFrZSB0aGlzIHRyYW5zbGF0
aW9uIGludCBhY2NvdW50LgotICAgICAgICAgICAgaWYgKGlzSG9yaXpvbnRhbCgpKQotICAgICAg
ICAgICAgICAgIHR4ICs9IGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IHdpZHRoT2ZIaWRkZW5U
ZXh0IDogLXdpZHRoT2ZIaWRkZW5UZXh0OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIHR5ICs9IGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IHdpZHRoT2ZIaWRkZW5UZXh0IDog
LXdpZHRoT2ZIaWRkZW5UZXh0OworICAgICAgICAgICAgSW50U2l6ZSB0cnVuY2F0aW9uT2Zmc2V0
KGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IHdpZHRoT2ZIaWRkZW5UZXh0IDogLXdpZHRoT2ZI
aWRkZW5UZXh0LCAwKTsKKyAgICAgICAgICAgIGFkanVzdGVkUGFpbnRPZmZzZXQubW92ZShpc0hv
cml6b250YWwoKSA/IHRydW5jYXRpb25PZmZzZXQgOiB0cnVuY2F0aW9uT2Zmc2V0LnRyYW5zcG9z
ZWRTaXplKCkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC01MTQsMTAgKzUxNCwxMCBAQCB2b2lk
IElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpCiAKICAgICBSZW5kZXJTdHlsZSog
c3R5bGVUb1VzZSA9IHJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKTsKICAgICAKLSAgICB0
eSAtPSBzdHlsZVRvVXNlLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gMCA6IGxvZ2ljYWxI
ZWlnaHQoKTsKKyAgICBhZGp1c3RlZFBhaW50T2Zmc2V0Lm1vdmUoMCwgc3R5bGVUb1VzZS0+aXNI
b3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IDAgOiAtbG9naWNhbEhlaWdodCgpKTsKIAogICAgIEZs
b2F0UG9pbnQgYm94T3JpZ2luID0gbG9jYXRpb25JbmNsdWRpbmdGbGlwcGluZygpOwotICAgIGJv
eE9yaWdpbi5tb3ZlKHR4LCB0eSk7ICAgIAorICAgIGJveE9yaWdpbi5tb3ZlKGFkanVzdGVkUGFp
bnRPZmZzZXQueCgpLCBhZGp1c3RlZFBhaW50T2Zmc2V0LnkoKSk7CiAgICAgRmxvYXRSZWN0IGJv
eFJlY3QoYm94T3JpZ2luLCBJbnRTaXplKGxvZ2ljYWxXaWR0aCgpLCBsb2dpY2FsSGVpZ2h0KCkp
KTsKIAogICAgIFJlbmRlckNvbWJpbmVUZXh0KiBjb21iaW5lZFRleHQgPSBzdHlsZVRvVXNlLT5o
YXNUZXh0Q29tYmluZSgpICYmIHRleHRSZW5kZXJlcigpLT5pc0NvbWJpbmVUZXh0KCkgJiYgdG9S
ZW5kZXJDb21iaW5lVGV4dCh0ZXh0UmVuZGVyZXIoKSktPmlzQ29tYmluZWQoKSA/IHRvUmVuZGVy
Q29tYmluZVRleHQodGV4dFJlbmRlcmVyKCkpIDogMDsKQEAgLTU0NCw3ICs1NDQsNyBAQCB2b2lk
IElubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpCiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgICAgICAvLyBDdXN0b20gaGlnaGxpZ2h0ZXJzIGdvIGJlaGluZCBldmVyeXRoaW5nIGVsc2Uu
CiAgICAgICAgIGlmIChzdHlsZVRvVXNlLT5oaWdobGlnaHQoKSAhPSBudWxsQXRvbSAmJiAhY29u
dGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpKQotICAgICAgICAgICAgcGFpbnRDdXN0b21IaWdobGln
aHQodHgsIHR5LCBzdHlsZVRvVXNlLT5oaWdobGlnaHQoKSk7CisgICAgICAgICAgICBwYWludEN1
c3RvbUhpZ2hsaWdodChhZGp1c3RlZFBhaW50T2Zmc2V0LngoKSwgYWRqdXN0ZWRQYWludE9mZnNl
dC55KCksIHN0eWxlVG9Vc2UtPmhpZ2hsaWdodCgpKTsKICNlbmRpZgogCiAgICAgICAgIGlmIChj
b250YWluc0NvbXBvc2l0aW9uICYmICF1c2VDdXN0b21VbmRlcmxpbmVzKQpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCShyZXZpc2lvbiA4NzczNykKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgJKHdvcmtpbmcgY29weSkKQEAg
LTExMCw3ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZWxlY3Rpb25TdGFydEVuZChpbnQm
IHNQb3MsIGludCYgZVBvcyk7CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnQo
UGFpbnRJbmZvJiwgaW50IHR4LCBpbnQgdHksIGludCBsaW5lVG9wLCBpbnQgbGluZUJvdHRvbSk7
CisgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IEludFBvaW50JiwgaW50
IGxpbmVUb3AsIGludCBsaW5lQm90dG9tKTsKICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQo
Y29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSW50UG9pbnQmIHBv
aW50SW5Db250YWluZXIsIGludCB0eCwgaW50IHR5LCBpbnQgbGluZVRvcCwgaW50IGxpbmVCb3R0
b20pOwogCiBwdWJsaWM6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAJKHJldmlzaW9uIDg3NzM3KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYwOCw3ICsyNjA4LDcgQEAgdm9pZCBSZW5k
ZXJCbG9jazo6cGFpbnRFbGxpcHNpc0JveGVzKFBhaQogICAgICAgICAgICAgeVBvcyA9IHR5ICsg
Y3Vyci0+eSgpOwogICAgICAgICAgICAgaCA9IGN1cnItPmxvZ2ljYWxIZWlnaHQoKTsKICAgICAg
ICAgICAgIGlmIChjdXJyLT5lbGxpcHNpc0JveCgpICYmIHlQb3MgPCBwYWludEluZm8ucmVjdC5t
YXhZKCkgJiYgeVBvcyArIGggPiBwYWludEluZm8ucmVjdC55KCkpCi0gICAgICAgICAgICAgICAg
Y3Vyci0+cGFpbnRFbGxpcHNpc0JveChwYWludEluZm8sIHR4LCB0eSwgY3Vyci0+bGluZVRvcCgp
LCBjdXJyLT5saW5lQm90dG9tKCkpOworICAgICAgICAgICAgICAgIGN1cnItPnBhaW50RWxsaXBz
aXNCb3gocGFpbnRJbmZvLCBJbnRQb2ludCh0eCwgdHkpLCBjdXJyLT5saW5lVG9wKCksIGN1cnIt
PmxpbmVCb3R0b20oKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDg3
NzM3KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjk0LDcgKzY5NCw3IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxP
YmplY3Q6OnBhaW50RmlsbExheWUKICAgICAgICAgUGFpbnRJbmZvIGluZm8obWFza0ltYWdlQ29u
dGV4dCwgbWFza1JlY3QsIFBhaW50UGhhc2VUZXh0Q2xpcCwgdHJ1ZSwgMCwgMCk7CiAgICAgICAg
IGlmIChib3gpIHsKICAgICAgICAgICAgIFJvb3RJbmxpbmVCb3gqIHJvb3QgPSBib3gtPnJvb3Qo
KTsKLSAgICAgICAgICAgIGJveC0+cGFpbnQoaW5mbywgc2Nyb2xsZWRQYWludFJlY3QueCgpIC0g
Ym94LT54KCksIHNjcm9sbGVkUGFpbnRSZWN0LnkoKSAtIGJveC0+eSgpLCByb290LT5saW5lVG9w
KCksIHJvb3QtPmxpbmVCb3R0b20oKSk7CisgICAgICAgICAgICBib3gtPnBhaW50KGluZm8sIElu
dFBvaW50KHNjcm9sbGVkUGFpbnRSZWN0LngoKSAtIGJveC0+eCgpLCBzY3JvbGxlZFBhaW50UmVj
dC55KCkgLSBib3gtPnkoKSksIHJvb3QtPmxpbmVUb3AoKSwgcm9vdC0+bGluZUJvdHRvbSgpKTsK
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGludCB4ID0gaXNCb3goKSA/IHRvUmVuZGVy
Qm94KHRoaXMpLT54KCkgOiAwOwogICAgICAgICAgICAgaW50IHkgPSBpc0JveCgpID8gdG9SZW5k
ZXJCb3godGhpcyktPnkoKSA6IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGluZUJveExpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaW5lQm94TGlzdC5jcHAJKHJldmlzaW9uIDg3NzM3KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCb3hMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU5
LDcgKzI1OSw3IEBAIHZvaWQgUmVuZGVyTGluZUJveExpc3Q6OnBhaW50KFJlbmRlckJveE0KIAog
ICAgICAgICBpZiAobGluZUludGVyc2VjdHNEaXJ0eVJlY3QocmVuZGVyZXIsIGN1cnIsIGluZm8s
IHR4LCB0eSkpIHsKICAgICAgICAgICAgIFJvb3RJbmxpbmVCb3gqIHJvb3QgPSBjdXJyLT5yb290
KCk7Ci0gICAgICAgICAgICBjdXJyLT5wYWludChpbmZvLCB0eCwgdHksIHJvb3QtPmxpbmVUb3Ao
KSwgcm9vdC0+bGluZUJvdHRvbSgpKTsKKyAgICAgICAgICAgIGN1cnItPnBhaW50KGluZm8sIElu
dFBvaW50KHR4LCB0eSksIHJvb3QtPmxpbmVUb3AoKSwgcm9vdC0+bGluZUJvdHRvbSgpKTsKICAg
ICAgICAgfQogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxp
bmVCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5s
aW5lQm94LmNwcAkocmV2aXNpb24gODc3MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
Um9vdElubGluZUJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMywxMSArMTMzLDExIEBAIGZs
b2F0IFJvb3RJbmxpbmVCb3g6OnBsYWNlRWxsaXBzaXNCb3goYm8KICAgICByZXR1cm4gcmVzdWx0
OwogfQogCi12b2lkIFJvb3RJbmxpbmVCb3g6OnBhaW50RWxsaXBzaXNCb3goUGFpbnRJbmZvJiBw
YWludEluZm8sIGludCB0eCwgaW50IHR5LCBpbnQgbGluZVRvcCwgaW50IGxpbmVCb3R0b20pIGNv
bnN0Cit2b2lkIFJvb3RJbmxpbmVCb3g6OnBhaW50RWxsaXBzaXNCb3goUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IEludFBvaW50JiBwYWludE9mZnNldCwgaW50IGxpbmVUb3AsIGludCBsaW5l
Qm90dG9tKSBjb25zdAogewogICAgIGlmIChoYXNFbGxpcHNpc0JveCgpICYmIHBhaW50SW5mby5z
aG91bGRQYWludFdpdGhpblJvb3QocmVuZGVyZXIoKSkgJiYgcmVuZGVyZXIoKS0+c3R5bGUoKS0+
dmlzaWJpbGl0eSgpID09IFZJU0lCTEUKICAgICAgICAgICAgICYmIHBhaW50SW5mby5waGFzZSA9
PSBQYWludFBoYXNlRm9yZWdyb3VuZCkKLSAgICAgICAgZWxsaXBzaXNCb3goKS0+cGFpbnQocGFp
bnRJbmZvLCB0eCwgdHksIGxpbmVUb3AsIGxpbmVCb3R0b20pOworICAgICAgICBlbGxpcHNpc0Jv
eCgpLT5wYWludChwYWludEluZm8sIHBhaW50T2Zmc2V0LCBsaW5lVG9wLCBsaW5lQm90dG9tKTsK
IH0KIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTE3OCwxNCArMTc4LDE0IEBAIHZvaWQgUm9vdElu
bGluZUJveDo6cGFpbnRDdXN0b21IaWdobGlnaHQKIAogI2VuZGlmCiAKLXZvaWQgUm9vdElubGlu
ZUJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGludCB0eCwgaW50IHR5LCBpbnQgbGlu
ZVRvcCwgaW50IGxpbmVCb3R0b20pCit2b2lkIFJvb3RJbmxpbmVCb3g6OnBhaW50KFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBJbnRQb2ludCYgcGFpbnRPZmZzZXQsIGludCBsaW5lVG9wLCBp
bnQgbGluZUJvdHRvbSkKIHsKLSAgICBJbmxpbmVGbG93Qm94OjpwYWludChwYWludEluZm8sIHR4
LCB0eSwgbGluZVRvcCwgbGluZUJvdHRvbSk7Ci0gICAgcGFpbnRFbGxpcHNpc0JveChwYWludElu
Zm8sIHR4LCB0eSwgbGluZVRvcCwgbGluZUJvdHRvbSk7CisgICAgSW5saW5lRmxvd0JveDo6cGFp
bnQocGFpbnRJbmZvLCBwYWludE9mZnNldCwgbGluZVRvcCwgbGluZUJvdHRvbSk7CisgICAgcGFp
bnRFbGxpcHNpc0JveChwYWludEluZm8sIHBhaW50T2Zmc2V0LCBsaW5lVG9wLCBsaW5lQm90dG9t
KTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgUmVuZGVyU3R5bGUqIHN0eWxlVG9Vc2UgPSByZW5k
ZXJlcigpLT5zdHlsZShtX2ZpcnN0TGluZSk7CiAgICAgaWYgKHN0eWxlVG9Vc2UtPmhpZ2hsaWdo
dCgpICE9IG51bGxBdG9tICYmICFwYWludEluZm8uY29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgp
KQotICAgICAgICBwYWludEN1c3RvbUhpZ2hsaWdodChwYWludEluZm8sIHR4LCB0eSwgc3R5bGVU
b1VzZS0+aGlnaGxpZ2h0KCkpOworICAgICAgICBwYWludEN1c3RvbUhpZ2hsaWdodChwYWludElu
Zm8sIHBhaW50T2Zmc2V0LngoKSwgcGFpbnRPZmZzZXQueSgpLCBzdHlsZVRvVXNlLT5oaWdobGln
aHQoKSk7CiAjZW5kaWYKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJ
bmxpbmVCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElu
bGluZUJveC5oCShyZXZpc2lvbiA4NzczNykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
b290SW5saW5lQm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTgzLDcgKzgzLDcgQEAgcHVibGljOgog
CiAgICAgRWxsaXBzaXNCb3gqIGVsbGlwc2lzQm94KCkgY29uc3Q7CiAKLSAgICB2b2lkIHBhaW50
RWxsaXBzaXNCb3goUGFpbnRJbmZvJiwgaW50IHR4LCBpbnQgdHksIGludCBsaW5lVG9wLCBpbnQg
bGluZUJvdHRvbSkgY29uc3Q7CisgICAgdm9pZCBwYWludEVsbGlwc2lzQm94KFBhaW50SW5mbyYs
IGNvbnN0IEludFBvaW50JiwgaW50IGxpbmVUb3AsIGludCBsaW5lQm90dG9tKSBjb25zdDsKIAog
ICAgIHZpcnR1YWwgdm9pZCBjbGVhclRydW5jYXRpb24oKTsKIApAQCAtOTUsNyArOTUsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBwYWludEN1c3RvbUhpZ2hsaWdodChQYWludEluZm8mLCBpbnQgdHgs
IGludCB0eSwgY29uc3QgQXRvbWljU3RyaW5nJiBoaWdobGlnaHRUeXBlKTsKICNlbmRpZgogCi0g
ICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGludCB0eCwgaW50IHR5LCBpbnQgbGlu
ZVRvcCwgaW50IGxpbmVCb3R0b20pOworICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8m
LCBjb25zdCBJbnRQb2ludCYsIGludCBsaW5lVG9wLCBpbnQgbGluZUJvdHRvbSk7CiAgICAgdmly
dHVhbCBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3Vs
dCYsIGNvbnN0IEludFBvaW50JiBwb2ludEluQ29udGFpbmVyLCBpbnQgdHgsIGludCB0eSwgaW50
IGxpbmVUb3AsIGludCBsaW5lQm90dG9tKTsKIAogICAgIGJvb2wgaGFzU2VsZWN0ZWRDaGlsZHJl
bigpIGNvbnN0IHsgcmV0dXJuIG1faGFzU2VsZWN0ZWRDaGlsZHJlbk9yQ2FuSGF2ZUxlYWRpbmdF
eHBhbnNpb247IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5l
Rmxvd0JveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdJbmxpbmVGbG93Qm94LmNwcAkocmV2aXNpb24gODc3MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR0lubGluZUZsb3dCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3
ICs0OSw3IEBAIHZvaWQgU1ZHSW5saW5lRmxvd0JveDo6cGFpbnRTZWxlY3Rpb25CYWMKICAgICB9
CiB9CiAKLXZvaWQgU1ZHSW5saW5lRmxvd0JveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8s
IGludCwgaW50LCBpbnQsIGludCkKK3ZvaWQgU1ZHSW5saW5lRmxvd0JveDo6cGFpbnQoUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IEludFBvaW50JiwgaW50LCBpbnQpCiB7CiAgICAgQVNTRVJU
KHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlRm9yZWdyb3VuZCB8fCBwYWludEluZm8ucGhh
c2UgPT0gUGFpbnRQaGFzZVNlbGVjdGlvbik7CiAgICAgQVNTRVJUKCFwYWludEluZm8uY29udGV4
dC0+cGFpbnRpbmdEaXNhYmxlZCgpKTsKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBTVkdJbmxpbmVG
bG93Qm94OjpwYWludChQYWludEluZm8mIAogICAgICAgICAgICAgaWYgKGNoaWxkLT5pc1NWR0lu
bGluZVRleHRCb3goKSkKICAgICAgICAgICAgICAgICBjb21wdXRlVGV4dE1hdGNoTWFya2VyUmVj
dEZvclJlbmRlcmVyKHRvUmVuZGVyU1ZHSW5saW5lVGV4dChzdGF0aWNfY2FzdDxTVkdJbmxpbmVU
ZXh0Qm94Kj4oY2hpbGQpLT50ZXh0UmVuZGVyZXIoKSkpOwogCi0gICAgICAgICAgICBjaGlsZC0+
cGFpbnQoY2hpbGRQYWludEluZm8sIDAsIDAsIDAsIDApOworICAgICAgICAgICAgY2hpbGQtPnBh
aW50KGNoaWxkUGFpbnRJbmZvLCBJbnRQb2ludCgpLCAwLCAwKTsKICAgICAgICAgfQogICAgIH0K
IApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVGbG93Qm94LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVGbG93
Qm94LmgJKHJldmlzaW9uIDg3NzM3KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdJbmxpbmVGbG93Qm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0TG9naWNhbEhlaWdodChpbnQgaCkgeyBtX2xvZ2ljYWxIZWlnaHQgPSBo
OyB9CiAKICAgICB2b2lkIHBhaW50U2VsZWN0aW9uQmFja2dyb3VuZChQYWludEluZm8mKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgaW50IHR4LCBpbnQgdHksIGludCBsaW5l
VG9wLCBpbnQgbGluZUJvdHRvbSk7CisgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYs
IGNvbnN0IEludFBvaW50JiwgaW50IGxpbmVUb3AsIGludCBsaW5lQm90dG9tKTsKIAogICAgIHZp
cnR1YWwgSW50UmVjdCBjYWxjdWxhdGVCb3VuZGFyaWVzKCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcAkocmV2
aXNpb24gODc3MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRl
eHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBTVkdJbmxp
bmVUZXh0Qm94OjpwYWludFNlbGVjdGlvbkJhYwogICAgIEFTU0VSVCghbV9wYWludGluZ1Jlc291
cmNlKTsKIH0KIAotdm9pZCBTVkdJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaW50
SW5mbywgaW50LCBpbnQsIGludCwgaW50KQordm9pZCBTVkdJbmxpbmVUZXh0Qm94OjpwYWludChQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UG9pbnQmLCBpbnQsIGludCkKIHsKICAgICBB
U1NFUlQocGFpbnRJbmZvLnNob3VsZFBhaW50V2l0aGluUm9vdChyZW5kZXJlcigpKSk7CiAgICAg
QVNTRVJUKHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlRm9yZWdyb3VuZCB8fCBwYWludElu
Zm8ucGhhc2UgPT0gUGFpbnRQaGFzZVNlbGVjdGlvbik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guaAkocmV2aXNpb24gODc3MzcpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBmbG9hdCBwb3Np
dGlvbkZvck9mZnNldChpbnQgb2Zmc2V0KSBjb25zdDsKIAogICAgIHZvaWQgcGFpbnRTZWxlY3Rp
b25CYWNrZ3JvdW5kKFBhaW50SW5mbyYpOwotICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludElu
Zm8mLCBpbnQgdHgsIGludCB0eSwgaW50IGxpbmVUb3AsIGludCBsaW5lQm90dG9tKTsKKyAgICB2
aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgSW50UG9pbnQmLCBpbnQgbGluZVRv
cCwgaW50IGxpbmVCb3R0b20pOwogICAgIHZpcnR1YWwgSW50UmVjdCBzZWxlY3Rpb25SZWN0KGlu
dCBhYnN4LCBpbnQgYWJzeSwgaW50IHN0YXJ0UG9zaXRpb24sIGludCBlbmRQb3NpdGlvbik7CiAK
ICAgICBib29sIG1hcFN0YXJ0RW5kUG9zaXRpb25zSW50b0ZyYWdtZW50Q29vcmRpbmF0ZXMoY29u
c3QgU1ZHVGV4dEZyYWdtZW50JiwgaW50JiBzdGFydFBvc2l0aW9uLCBpbnQmIGVuZFBvc2l0aW9u
KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGlu
ZUJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdS
b290SW5saW5lQm94LmNwcAkocmV2aXNpb24gODc3MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICsz
Niw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBTVkdSb290SW5saW5lQm94Ojpw
YWludChQYWludEluZm8mIHBhaW50SW5mbywgaW50LCBpbnQsIGludCwgaW50KQordm9pZCBTVkdS
b290SW5saW5lQm94OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UG9pbnQm
LCBpbnQsIGludCkKIHsKICAgICBBU1NFUlQocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VG
b3JlZ3JvdW5kIHx8IHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlU2VsZWN0aW9uKTsKICAg
ICBBU1NFUlQoIXBhaW50SW5mby5jb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpOwpAQCAtNjQs
NyArNjQsNyBAQCB2b2lkIFNWR1Jvb3RJbmxpbmVCb3g6OnBhaW50KFBhaW50SW5mbyYgCiAgICAg
ICAgICAgICBpZiAoY2hpbGQtPmlzU1ZHSW5saW5lVGV4dEJveCgpKQogICAgICAgICAgICAgICAg
IFNWR0lubGluZUZsb3dCb3g6OmNvbXB1dGVUZXh0TWF0Y2hNYXJrZXJSZWN0Rm9yUmVuZGVyZXIo
dG9SZW5kZXJTVkdJbmxpbmVUZXh0KHN0YXRpY19jYXN0PFNWR0lubGluZVRleHRCb3gqPihjaGls
ZCktPnRleHRSZW5kZXJlcigpKSk7CiAKLSAgICAgICAgICAgIGNoaWxkLT5wYWludChjaGlsZFBh
aW50SW5mbywgMCwgMCwgMCwgMCk7CisgICAgICAgICAgICBjaGlsZC0+cGFpbnQoY2hpbGRQYWlu
dEluZm8sIEludFBvaW50KCksIDAsIDApOwogICAgICAgICB9CiAgICAgfQogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guaAkocmV2aXNp
b24gODc3MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVC
b3guaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBpbnQgdmlydHVhbExvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxIZWln
aHQ7IH0KICAgICB2b2lkIHNldExvZ2ljYWxIZWlnaHQoaW50IGhlaWdodCkgeyBtX2xvZ2ljYWxI
ZWlnaHQgPSBoZWlnaHQ7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBp
bnQgdHgsIGludCB0eSwgaW50IGxpbmVUb3AsIGludCBsaW5lQm90dG9tKTsKKyAgICB2aXJ0dWFs
IHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgSW50UG9pbnQmLCBpbnQgbGluZVRvcCwgaW50
IGxpbmVCb3R0b20pOwogCiAgICAgdm9pZCBjb21wdXRlUGVyQ2hhcmFjdGVyTGF5b3V0SW5mb3Jt
YXRpb24oKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>