<?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>61390</bug_id>
          
          <creation_ts>2011-05-24 13:32:18 -0700</creation_ts>
          <short_desc>Add IntPoint versions of IntRect::move and IntPoint::move</short_desc>
          <delta_ts>2011-05-25 10:06:41 -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>60806</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Emil A Eklund">eae</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>409163</commentid>
    <comment_count>0</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-05-24 13:32:18 -0700</bug_when>
    <thetext>From bug 60806
&gt; It&apos;s a bit strange, but perhaps we should consider a flavor of IntRect::move that takes a point?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409170</commentid>
    <comment_count>1</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-24 13:35:59 -0700</bug_when>
    <thetext>Thanks! I was in the middle of filing this. I&apos;m partly through implementing it and changing a bunch of existing call sites :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409206</commentid>
    <comment_count>2</comment_count>
      <attachid>94688</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-24 14:30:38 -0700</bug_when>
    <thetext>Created attachment 94688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409356</commentid>
    <comment_count>3</comment_count>
      <attachid>94688</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-24 19:10:00 -0700</bug_when>
    <thetext>Comment on attachment 94688
Patch

Seems OK to me, but others may have concerns about the IntSize vs. IntPoint purity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409720</commentid>
    <comment_count>4</comment_count>
      <attachid>94688</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-25 10:06:36 -0700</bug_when>
    <thetext>Comment on attachment 94688
Patch

Clearing flags on attachment: 94688

Committed r87303: &lt;http://trac.webkit.org/changeset/87303&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409721</commentid>
    <comment_count>5</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-25 10:06:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94688</attachid>
            <date>2011-05-24 14:30:38 -0700</date>
            <delta_ts>2011-05-25 10:06:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61390-20110524143037.patch</filename>
            <type>text/plain</type>
            <size>24861</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3MjA0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjggQEAKKzIwMTEtMDUtMjQgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBJbnRQb2ludCB2ZXJzaW9ucyBvZiBJbnRSZWN0Ojpt
b3ZlIGFuZCBJbnRQb2ludDo6bW92ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjEzOTAKKworICAgICAgICBBZGRpbmcgbW92ZSBtZXRob2RzIHRvIElu
dFJlY3QgYW5kIEludFBvaW50IHRoYXQgdGFrZSBhbiBJbnRQb2ludAorICAgICAgICB0aGF0J3Mg
YWN0aW5nIGFzIGFuIG9mZnNldC4gU2luY2Ugd2UgYWxzbyBhcHBseSBuZWdhdGl2ZSBvZmZzZXRz
LAorICAgICAgICBhbHNvIGFkZGluZyBhIHNpbmdsZSBwYXJhbWV0ZXIgb3BlcmF0b3ItIGZvciBJ
bnRQb2ludC4KKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2UgdGhpcyBpcyByZWZhY3Rvcmlu
Zy4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lVmlldzo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3Ojpjb252ZXJ0RnJvbVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmll
dzo6Y29udmVydFRvUmVuZGVyZXIpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6d2hlZWxFdmVudCk6CisgICAgICAgICog
cGxhdGZvcm0vU2Nyb2xsVmlldy5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6Y29u
dmVydENoaWxkVG9TZWxmKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OmNvbnZlcnRT
ZWxmVG9DaGlsZCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWVDb21wb3NpdGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVDb21wb3NpdGU6OmludmFsaWRh
dGVQYXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRQb2ludC5oOgorICAgICAg
ICAoV2ViQ29yZTo6SW50UG9pbnQ6Om1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3It
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpJbnRSZWN0Ojptb3ZlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlckVmZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OnJlcXVl
c3RlZFJlZ2lvbk9mSW5wdXRJbWFnZURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dwdS9UZXh0dXJlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmU6OnVwZGF0ZVN1YlJl
Y3QpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XaWRnZXRNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpXaWRnZXQ6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxvZ2ljYWxSZWN0VG9QaHlzaWNhbFJl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNlbGVjdGlvbkdhcHMpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94OjpvZmZzZXRGcm9tQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6
Y29tcHV0ZVJlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6bG9j
YWxDYXJldFJlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRldGFpbHNNYXJrZXI6OnBhaW50KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
cklubGluZTo6Y3VsbGVkSW5saW5lVmlzdWFsT3ZlcmZsb3dCb3VuZGluZ0JveCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlcklucHV0U3BlZWNoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlcklucHV0U3BlZWNoOjpwYWludElucHV0RmllbGRTcGVlY2hCdXR0b24pOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFp
bnRTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpwYWlu
dENvbnRlbnRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50U2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxpc3RJdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RJdGVt
Ojpwb3NpdGlvbkxpc3RNYXJrZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0TWFy
a2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6OnBhaW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRhYmxlQ2VsbDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6bm9kZUF0UG9pbnQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnJl
cGFpbnRWaWV3UmVjdGFuZ2xlKToKKwogMjAxMS0wNS0yNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHJldmlzaW9uIDg3MTg1KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTM5LDcgKzIxMzksNyBA
QCB2b2lkIEZyYW1lVmlldzo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoCiB7CiAgICAgLy8gQWRk
IGluIG91ciBvZmZzZXQgd2l0aGluIHRoZSBGcmFtZVZpZXcuCiAgICAgSW50UmVjdCBkaXJ0eVJl
Y3QgPSByZWN0OwotICAgIGRpcnR5UmVjdC5tb3ZlKHNjcm9sbGJhci0+eCgpLCBzY3JvbGxiYXIt
PnkoKSk7CisgICAgZGlydHlSZWN0Lm1vdmUoc2Nyb2xsYmFyLT5sb2NhdGlvbigpKTsKICAgICBp
bnZhbGlkYXRlUmVjdChkaXJ0eVJlY3QpOwogfQogCkBAIC0yNjAzLDcgKzI2MDMsNyBAQCBJbnRS
ZWN0IEZyYW1lVmlldzo6Y29udmVydEZyb21SZW5kZXJlcihjCiAgICAgSW50UmVjdCByZWN0ID0g
cmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KHJlbmRlcmVyUmVjdCkpLmVu
Y2xvc2luZ0JvdW5kaW5nQm94KCk7CiAKICAgICAvLyBDb252ZXJ0IGZyb20gcGFnZSAoImFic29s
dXRlIikgdG8gRnJhbWVWaWV3IGNvb3JkaW5hdGVzLgotICAgIHJlY3QubW92ZSgtc2Nyb2xsWCgp
LCAtc2Nyb2xsWSgpKTsKKyAgICByZWN0Lm1vdmUoLXNjcm9sbFBvc2l0aW9uKCkpOwogCiAgICAg
cmV0dXJuIHJlY3Q7CiB9CkBAIC0yNjEzLDcgKzI2MTMsNyBAQCBJbnRSZWN0IEZyYW1lVmlldzo6
Y29udmVydFRvUmVuZGVyZXIoY29uCiAgICAgSW50UmVjdCByZWN0ID0gdmlld1JlY3Q7CiAgICAg
CiAgICAgLy8gQ29udmVydCBmcm9tIEZyYW1lVmlldyBjb29yZHMgaW50byBwYWdlICgiYWJzb2x1
dGUiKSBjb29yZGluYXRlcy4KLSAgICByZWN0Lm1vdmUoc2Nyb2xsWCgpLCBzY3JvbGxZKCkpOwor
ICAgIHJlY3QubW92ZShzY3JvbGxQb3NpdGlvbigpKTsKIAogICAgIC8vIEZJWE1FOiB3ZSBkb24n
dCBoYXZlIGEgd2F5IHRvIG1hcCBhbiBhYnNvbHV0ZSByZWN0IGRvd24gdG8gYSBsb2NhbCBxdWFk
LCBzbyBqdXN0CiAgICAgLy8gbW92ZSB0aGUgcmVjdCBmb3Igbm93LgpAQCAtMjYyNiw3ICsyNjI2
LDcgQEAgSW50UG9pbnQgRnJhbWVWaWV3Ojpjb252ZXJ0RnJvbVJlbmRlcmVyKAogICAgIEludFBv
aW50IHBvaW50ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGUocmVu
ZGVyZXJQb2ludCwgZmFsc2UsIHRydWUgLyogdXNlIHRyYW5zZm9ybXMgKi8pKTsKIAogICAgIC8v
IENvbnZlcnQgZnJvbSBwYWdlICgiYWJzb2x1dGUiKSB0byBGcmFtZVZpZXcgY29vcmRpbmF0ZXMu
Ci0gICAgcG9pbnQubW92ZSgtc2Nyb2xsWCgpLCAtc2Nyb2xsWSgpKTsKKyAgICBwb2ludC5tb3Zl
KC1zY3JvbGxQb3NpdGlvbigpKTsKICAgICByZXR1cm4gcG9pbnQ7CiB9CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCShyZXZpc2lvbiA4NzE4NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDA4
LDExICsxMDA4LDExIEBAIHZvaWQgU2Nyb2xsVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiAK
ICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsK
IAogICAgICAgICBjb250ZXh0LT50cmFuc2xhdGUoeCgpLCB5KCkpOwotICAgICAgICBkb2N1bWVu
dERpcnR5UmVjdC5tb3ZlKC14KCksIC15KCkpOworICAgICAgICBkb2N1bWVudERpcnR5UmVjdC5t
b3ZlKC1sb2NhdGlvbigpKTsKIAogICAgICAgICBpZiAoIXBhaW50c0VudGlyZUNvbnRlbnRzKCkp
IHsKICAgICAgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0ZSgtc2Nyb2xsWCgpLCAtc2Nyb2xsWSgp
KTsKLSAgICAgICAgICAgIGRvY3VtZW50RGlydHlSZWN0Lm1vdmUoc2Nyb2xsWCgpLCBzY3JvbGxZ
KCkpOworICAgICAgICAgICAgZG9jdW1lbnREaXJ0eVJlY3QubW92ZShzY3JvbGxQb3NpdGlvbigp
KTsKIAogICAgICAgICAgICAgY29udGV4dC0+Y2xpcCh2aXNpYmxlQ29udGVudFJlY3QoKSk7CiAg
ICAgICAgIH0KQEAgLTEwMzMsNyArMTAzMyw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0KiAKICAgICAgICAgSW50UmVjdCBzY3JvbGxWaWV3RGlydHlSZWN0ID0gcmVj
dDsKICAgICAgICAgc2Nyb2xsVmlld0RpcnR5UmVjdC5pbnRlcnNlY3QoZnJhbWVSZWN0KCkpOwog
ICAgICAgICBjb250ZXh0LT50cmFuc2xhdGUoeCgpLCB5KCkpOwotICAgICAgICBzY3JvbGxWaWV3
RGlydHlSZWN0Lm1vdmUoLXgoKSwgLXkoKSk7CisgICAgICAgIHNjcm9sbFZpZXdEaXJ0eVJlY3Qu
bW92ZSgtbG9jYXRpb24oKSk7CiAKICAgICAgICAgcGFpbnRTY3JvbGxiYXJzKGNvbnRleHQsIHNj
cm9sbFZpZXdEaXJ0eVJlY3QpOwogICAgIH0KQEAgLTExMjcsNyArMTEyNyw3IEBAIEludFJlY3Qg
U2Nyb2xsVmlldzo6Y29udmVydEZyb21TY3JvbGxiYXIKIHsKICAgICAvLyBTY3JvbGxiYXJzIHdv
bid0IGJlIHRyYW5zZm9ybWVkIHdpdGhpbiB1cwogICAgIEludFJlY3QgbmV3UmVjdCA9IGxvY2Fs
UmVjdDsKLSAgICBuZXdSZWN0Lm1vdmUoc2Nyb2xsYmFyLT54KCksIHNjcm9sbGJhci0+eSgpKTsK
KyAgICBuZXdSZWN0Lm1vdmUoc2Nyb2xsYmFyLT5sb2NhdGlvbigpKTsKICAgICByZXR1cm4gbmV3
UmVjdDsKIH0KIApAQCAtMTEzNSw3ICsxMTM1LDcgQEAgSW50UmVjdCBTY3JvbGxWaWV3Ojpjb252
ZXJ0RnJvbUNvbnRhaW5pbgogewogICAgIEludFJlY3QgbmV3UmVjdCA9IHBhcmVudFJlY3Q7CiAg
ICAgLy8gU2Nyb2xsYmFycyB3b24ndCBiZSB0cmFuc2Zvcm1lZCB3aXRoaW4gdXMKLSAgICBuZXdS
ZWN0Lm1vdmUoLXNjcm9sbGJhci0+eCgpLCAtc2Nyb2xsYmFyLT55KCkpOworICAgIG5ld1JlY3Qu
bW92ZSgtc2Nyb2xsYmFyLT5sb2NhdGlvbigpKTsKICAgICByZXR1cm4gbmV3UmVjdDsKIH0KIApA
QCAtMTE0NCw3ICsxMTQ0LDcgQEAgSW50UG9pbnQgU2Nyb2xsVmlldzo6Y29udmVydEZyb21TY3Jv
bGxiYQogewogICAgIC8vIFNjcm9sbGJhcnMgd29uJ3QgYmUgdHJhbnNmb3JtZWQgd2l0aGluIHVz
CiAgICAgSW50UG9pbnQgbmV3UG9pbnQgPSBsb2NhbFBvaW50OwotICAgIG5ld1BvaW50Lm1vdmUo
c2Nyb2xsYmFyLT54KCksIHNjcm9sbGJhci0+eSgpKTsKKyAgICBuZXdQb2ludC5tb3ZlKHNjcm9s
bGJhci0+bG9jYXRpb24oKSk7CiAgICAgcmV0dXJuIG5ld1BvaW50OwogfQogCkBAIC0xMTUyLDcg
KzExNTIsNyBAQCBJbnRQb2ludCBTY3JvbGxWaWV3Ojpjb252ZXJ0RnJvbUNvbnRhaW5pCiB7CiAg
ICAgSW50UG9pbnQgbmV3UG9pbnQgPSBwYXJlbnRQb2ludDsKICAgICAvLyBTY3JvbGxiYXJzIHdv
bid0IGJlIHRyYW5zZm9ybWVkIHdpdGhpbiB1cwotICAgIG5ld1BvaW50Lm1vdmUoLXNjcm9sbGJh
ci0+eCgpLCAtc2Nyb2xsYmFyLT55KCkpOworICAgIG5ld1BvaW50Lm1vdmUoLXNjcm9sbGJhci0+
bG9jYXRpb24oKSk7CiAgICAgcmV0dXJuIG5ld1BvaW50OwogfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsVmlldy5oCShyZXZpc2lvbiA4NzE4NSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjQyLDcgKzI0Miw3IEBA
IHB1YmxpYzoKICAgICAgICAgSW50UG9pbnQgbmV3UG9pbnQgPSBwb2ludDsKICAgICAgICAgaWYg
KCFpc1Njcm9sbFZpZXdTY3JvbGxiYXIoY2hpbGQpKQogICAgICAgICAgICAgbmV3UG9pbnQgPSBw
b2ludCAtIHNjcm9sbE9mZnNldCgpOwotICAgICAgICBuZXdQb2ludC5tb3ZlKGNoaWxkLT54KCks
IGNoaWxkLT55KCkpOworICAgICAgICBuZXdQb2ludC5tb3ZlKGNoaWxkLT5sb2NhdGlvbigpKTsK
ICAgICAgICAgcmV0dXJuIG5ld1BvaW50OwogICAgIH0KIApAQCAtMjUxLDcgKzI1MSw3IEBAIHB1
YmxpYzoKICAgICAgICAgSW50UG9pbnQgbmV3UG9pbnQgPSBwb2ludDsKICAgICAgICAgaWYgKCFp
c1Njcm9sbFZpZXdTY3JvbGxiYXIoY2hpbGQpKQogICAgICAgICAgICAgbmV3UG9pbnQgPSBwb2lu
dCArIHNjcm9sbE9mZnNldCgpOwotICAgICAgICBuZXdQb2ludC5tb3ZlKC1jaGlsZC0+eCgpLCAt
Y2hpbGQtPnkoKSk7CisgICAgICAgIG5ld1BvaW50Lm1vdmUoLWNoaWxkLT5sb2NhdGlvbigpKTsK
ICAgICAgICAgcmV0dXJuIG5ld1BvaW50OwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWVDb21wb3NpdGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhclRoZW1lQ29tcG9zaXRlLmNwcAkocmV2aXNpb24g
ODcxODUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZUNvbXBvc2l0
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNCw3ICsyMzQsNyBAQCB2b2lkIFNjcm9sbGJhclRo
ZW1lQ29tcG9zaXRlOjppbnZhbGlkYXRlCiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGh1bWJS
ZWN0OwogICAgICAgICB9CiAgICAgfQotICAgIHJlc3VsdC5tb3ZlKC1zY3JvbGxiYXItPngoKSwg
LXNjcm9sbGJhci0+eSgpKTsKKyAgICByZXN1bHQubW92ZSgtc2Nyb2xsYmFyLT5sb2NhdGlvbigp
KTsKICAgICBzY3JvbGxiYXItPmludmFsaWRhdGVSZWN0KHJlc3VsdCk7CiB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFBvaW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UG9pbnQuaAkocmV2aXNpb24gODcx
ODUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRQb2ludC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC05MCw2ICs5MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFkoaW50IHkp
IHsgbV95ID0geTsgfQogCiAgICAgdm9pZCBtb3ZlKGNvbnN0IEludFNpemUmIHMpIHsgbW92ZShz
LndpZHRoKCksIHMuaGVpZ2h0KCkpOyB9IAorICAgIHZvaWQgbW92ZShjb25zdCBJbnRQb2ludCYg
b2Zmc2V0KSB7IG1vdmUob2Zmc2V0LngoKSwgb2Zmc2V0LnkoKSk7IH0KICAgICB2b2lkIG1vdmUo
aW50IGR4LCBpbnQgZHkpIHsgbV94ICs9IGR4OyBtX3kgKz0gZHk7IH0KICAgICAKICAgICBJbnRQ
b2ludCBleHBhbmRlZFRvKGNvbnN0IEludFBvaW50JiBvdGhlcikgY29uc3QKQEAgLTE5MCw2ICsx
OTEsMTEgQEAgaW5saW5lIEludFBvaW50IG9wZXJhdG9yLShjb25zdCBJbnRQb2ludAogICAgIHJl
dHVybiBJbnRQb2ludChhLngoKSAtIGIud2lkdGgoKSwgYS55KCkgLSBiLmhlaWdodCgpKTsKIH0K
IAoraW5saW5lIEludFBvaW50IG9wZXJhdG9yLShjb25zdCBJbnRQb2ludCYgcG9pbnQpCit7Cisg
ICAgcmV0dXJuIEludFBvaW50KC1wb2ludC54KCksIC1wb2ludC55KCkpOworfQorCiBpbmxpbmUg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IEludFBvaW50JiBhLCBjb25zdCBJbnRQb2ludCYgYikKIHsK
ICAgICByZXR1cm4gYS54KCkgPT0gYi54KCkgJiYgYS55KCkgPT0gYi55KCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCShyZXZpc2lvbiA4NzE4NSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaAkod29ya2luZyBj
b3B5KQpAQCAtMTA4LDYgKzEwOCw3IEBAIHB1YmxpYzoKICAgICBJbnRQb2ludCBjZW50ZXIoKSBj
b25zdCB7IHJldHVybiBJbnRQb2ludCh4KCkgKyB3aWR0aCgpIC8gMiwgeSgpICsgaGVpZ2h0KCkg
LyAyKTsgfQogCiAgICAgdm9pZCBtb3ZlKGNvbnN0IEludFNpemUmIHNpemUpIHsgbV9sb2NhdGlv
biArPSBzaXplOyB9IAorICAgIHZvaWQgbW92ZShjb25zdCBJbnRQb2ludCYgb2Zmc2V0KSB7IG1f
bG9jYXRpb24ubW92ZShvZmZzZXQueCgpLCBvZmZzZXQueSgpKTsgfQogICAgIHZvaWQgbW92ZShp
bnQgZHgsIGludCBkeSkgeyBtX2xvY2F0aW9uLm1vdmUoZHgsIGR5KTsgfSAKIAogICAgIHZvaWQg
ZXhwYW5kKGNvbnN0IEludFNpemUmIHNpemUpIHsgbV9sb2NhdGlvbiArPSBzaXplOyB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GaWx0ZXJFZmZlY3QuY3BwCShyZXZpc2lvbiA4NzE4NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjksNyArNjksNyBAQCBJbnRSZWN0IEZpbHRlckVmZmVjdDo6cmVxdWVzdGVkUmVnaW9uT2ZJ
CiB7CiAgICAgQVNTRVJUKGhhc1Jlc3VsdCgpKTsKICAgICBJbnRQb2ludCBsb2NhdGlvbiA9IG1f
YWJzb2x1dGVQYWludFJlY3QubG9jYXRpb24oKTsKLSAgICBsb2NhdGlvbi5tb3ZlKC1lZmZlY3RS
ZWN0LngoKSwgLWVmZmVjdFJlY3QueSgpKTsKKyAgICBsb2NhdGlvbi5tb3ZlKC1lZmZlY3RSZWN0
LmxvY2F0aW9uKCkpOwogICAgIHJldHVybiBJbnRSZWN0KGxvY2F0aW9uLCBtX2Fic29sdXRlUGFp
bnRSZWN0LnNpemUoKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9UZXh0dXJlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvVGV4dHVyZS5jcHAJKHJldmlzaW9uIDg3MTg1KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RleHR1cmUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzYsNyArMTc2LDcgQEAgdm9pZCBUZXh0dXJlOjp1cGRhdGVTdWJSZWN0KHZvaWQqIHBpeGVs
cwogICAgICAgICB1cGRhdGVSZWN0SW50ZXJzZWN0ZWQuaW50ZXJzZWN0KHRpbGVCb3VuZHNXaXRo
Qm9yZGVyKTsKIAogICAgICAgICBJbnRSZWN0IGRzdFJlY3QgPSB1cGRhdGVSZWN0SW50ZXJzZWN0
ZWQ7Ci0gICAgICAgIGRzdFJlY3QubW92ZSgtdGlsZUJvdW5kc1dpdGhCb3JkZXIueCgpLCAtdGls
ZUJvdW5kc1dpdGhCb3JkZXIueSgpKTsKKyAgICAgICAgZHN0UmVjdC5tb3ZlKC10aWxlQm91bmRz
V2l0aEJvcmRlci5sb2NhdGlvbigpKTsKIAogICAgICAgICBpZiAodXBkYXRlUmVjdEludGVyc2Vj
dGVkLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvV2lkZ2V0TWFjLm1tCShyZXZpc2lvbiA4NzE4NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9XaWRnZXRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI0OCw3
ICsyNDgsNyBAQCB2b2lkIFdpZGdldDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBwLCBjCiAgICAg
ICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShjb250ZXh0LCAtdHJhbnNmb3JtT3JpZ2luLngoKSwg
LXRyYW5zZm9ybU9yaWdpbi55KCkpOwogCiAgICAgICAgIEludFJlY3QgZGlydHlSZWN0ID0gcjsK
LSAgICAgICAgZGlydHlSZWN0Lm1vdmUoLXRyYW5zZm9ybU9yaWdpbi54KCksIC10cmFuc2Zvcm1P
cmlnaW4ueSgpKTsKKyAgICAgICAgZGlydHlSZWN0Lm1vdmUoLXRyYW5zZm9ybU9yaWdpbik7CiAg
ICAgICAgIGlmICghW3ZpZXcgaXNGbGlwcGVkXSkKICAgICAgICAgICAgIGRpcnR5UmVjdC5zZXRZ
KFt2aWV3IGJvdW5kc10uc2l6ZS5oZWlnaHQgLSBkaXJ0eVJlY3QubWF4WSgpKTsKIApAQCAtMjky
LDcgKzI5Miw3IEBAIHZvaWQgV2lkZ2V0OjpwYWludChHcmFwaGljc0NvbnRleHQqIHAsIGMKICAg
ICAgICAgQ0dDb250ZXh0U2NhbGVDVE0oY2dDb250ZXh0LCAxLCAtMSk7CiAKICAgICAgICAgSW50
UmVjdCBkaXJ0eVJlY3QgPSByOwotICAgICAgICBkaXJ0eVJlY3QubW92ZSgtdHJhbnNmb3JtT3Jp
Z2luLngoKSwgLXRyYW5zZm9ybU9yaWdpbi55KCkpOworICAgICAgICBkaXJ0eVJlY3QubW92ZSgt
dHJhbnNmb3JtT3JpZ2luKTsKICAgICAgICAgaWYgKCFbdmlldyBpc0ZsaXBwZWRdKQogICAgICAg
ICAgICAgZGlydHlSZWN0LnNldFkoW3ZpZXcgYm91bmRzXS5zaXplLmhlaWdodCAtIGRpcnR5UmVj
dC5tYXhZKCkpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAJKHJldmlzaW9uIDg3MTg1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjc5Miw3ICsyNzkyLDcgQEAgSW50UmVjdCBSZW5k
ZXJCbG9jazo6bG9naWNhbFJlY3RUb1BoeXNpYwogICAgIGVsc2UKICAgICAgICAgcmVzdWx0ID0g
SW50UmVjdChsb2dpY2FsUmVjdC55KCksIGxvZ2ljYWxSZWN0LngoKSwgbG9naWNhbFJlY3QuaGVp
Z2h0KCksIGxvZ2ljYWxSZWN0LndpZHRoKCkpOwogICAgIGZsaXBGb3JXcml0aW5nTW9kZShyZXN1
bHQpOwotICAgIHJlc3VsdC5tb3ZlKHJvb3RCbG9ja1BoeXNpY2FsUG9zaXRpb24ueCgpLCByb290
QmxvY2tQaHlzaWNhbFBvc2l0aW9uLnkoKSk7CisgICAgcmVzdWx0Lm1vdmUocm9vdEJsb2NrUGh5
c2ljYWxQb3NpdGlvbik7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMjgwNSw3ICsyODA1
LDcgQEAgR2FwUmVjdHMgUmVuZGVyQmxvY2s6OnNlbGVjdGlvbkdhcHMoUmVuZAogICAgICAgICAv
LyBOb3RlIHRoYXQgd2UgZG9uJ3QgY2xpcCBvdXQgb3ZlcmZsb3cgZm9yIHBvc2l0aW9uZWQgb2Jq
ZWN0cy4gIFdlIGp1c3Qgc3RpY2sgdG8gdGhlIGJvcmRlciBib3guCiAgICAgICAgIEludFJlY3Qg
ZmxpcHBlZEJsb2NrUmVjdCA9IEludFJlY3Qob2Zmc2V0RnJvbVJvb3RCbG9jay53aWR0aCgpLCBv
ZmZzZXRGcm9tUm9vdEJsb2NrLmhlaWdodCgpLCB3aWR0aCgpLCBoZWlnaHQoKSk7CiAgICAgICAg
IHJvb3RCbG9jay0+ZmxpcEZvcldyaXRpbmdNb2RlKGZsaXBwZWRCbG9ja1JlY3QpOwotICAgICAg
ICBmbGlwcGVkQmxvY2tSZWN0Lm1vdmUocm9vdEJsb2NrUGh5c2ljYWxQb3NpdGlvbi54KCksIHJv
b3RCbG9ja1BoeXNpY2FsUG9zaXRpb24ueSgpKTsKKyAgICAgICAgZmxpcHBlZEJsb2NrUmVjdC5t
b3ZlKHJvb3RCbG9ja1BoeXNpY2FsUG9zaXRpb24pOwogICAgICAgICBjbGlwT3V0UG9zaXRpb25l
ZE9iamVjdHMocGFpbnRJbmZvLCBmbGlwcGVkQmxvY2tSZWN0LmxvY2F0aW9uKCksIG1fcG9zaXRp
b25lZE9iamVjdHMuZ2V0KCkpOwogICAgICAgICBpZiAoaXNCb2R5KCkgfHwgaXNSb290KCkpIC8v
IFRoZSA8Ym9keT4gbXVzdCBtYWtlIHN1cmUgdG8gZXhhbWluZSBpdHMgY29udGFpbmluZ0Jsb2Nr
J3MgcG9zaXRpb25lZCBvYmplY3RzLgogICAgICAgICAgICAgZm9yIChSZW5kZXJCbG9jayogY2Ig
PSBjb250YWluaW5nQmxvY2soKTsgY2IgJiYgIWNiLT5pc1JlbmRlclZpZXcoKTsgY2IgPSBjYi0+
Y29udGFpbmluZ0Jsb2NrKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcAkocmV2aXNpb24gODcxODUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMxMCw3ICsxMzEwLDcgQEAgSW50U2l6ZSBSZW5k
ZXJCb3g6Om9mZnNldEZyb21Db250YWluZXIoUgogICAgICAgICAgICAgICAgIEludFJlY3QgY29s
dW1uUmVjdChmcmFtZVJlY3QoKSk7CiAgICAgICAgICAgICAgICAgdG9SZW5kZXJCbG9jayhvKS0+
ZmxpcEZvcldyaXRpbmdNb2RlSW5jbHVkaW5nQ29sdW1ucyhjb2x1bW5SZWN0KTsKICAgICAgICAg
ICAgICAgICBvZmZzZXQgKz0gSW50U2l6ZShjb2x1bW5SZWN0LmxvY2F0aW9uKCkueCgpLCBjb2x1
bW5SZWN0LmxvY2F0aW9uKCkueSgpKTsKLSAgICAgICAgICAgICAgICBjb2x1bW5SZWN0Lm1vdmUo
cG9pbnQueCgpLCBwb2ludC55KCkpOworICAgICAgICAgICAgICAgIGNvbHVtblJlY3QubW92ZShw
b2ludCk7CiAgICAgICAgICAgICAgICAgby0+YWRqdXN0Rm9yQ29sdW1ucyhvZmZzZXQsIGNvbHVt
blJlY3QubG9jYXRpb24oKSk7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBv
ZmZzZXQgKz0gbG9jYXRpb25PZmZzZXRJbmNsdWRpbmdGbGlwcGluZygpOwpAQCAtMTQzNiw3ICsx
NDM2LDcgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChSZQogICAgICAg
ICAgICAgaWYgKHN0eWxlKCktPnBvc2l0aW9uKCkgPT0gUmVsYXRpdmVQb3NpdGlvbiAmJiBsYXll
cigpKQogICAgICAgICAgICAgICAgIHJlY3QubW92ZShsYXllcigpLT5yZWxhdGl2ZVBvc2l0aW9u
T2Zmc2V0KCkpOwogCi0gICAgICAgICAgICByZWN0Lm1vdmUoeCgpLCB5KCkpOworICAgICAgICAg
ICAgcmVjdC5tb3ZlKGxvY2F0aW9uKCkpOwogICAgICAgICAgICAgcmVjdC5tb3ZlKGxheW91dFN0
YXRlLT5tX3BhaW50T2Zmc2V0KTsKICAgICAgICAgICAgIGlmIChsYXlvdXRTdGF0ZS0+bV9jbGlw
cGVkKQogICAgICAgICAgICAgICAgIHJlY3QuaW50ZXJzZWN0KGxheW91dFN0YXRlLT5tX2NsaXBS
ZWN0KTsKQEAgLTMwOTUsNyArMzA5NSw3IEBAIEludFJlY3QgUmVuZGVyQm94Ojpsb2NhbENhcmV0
UmVjdChJbmxpbmUKICAgICAgICAgKmV4dHJhV2lkdGhUb0VuZE9mTGluZSA9IHgoKSArIHdpZHRo
KCkgLSByZWN0Lm1heFgoKTsKIAogICAgIC8vIE1vdmUgdG8gbG9jYWwgY29vcmRzCi0gICAgcmVj
dC5tb3ZlKC14KCksIC15KCkpOworICAgIHJlY3QubW92ZSgtbG9jYXRpb24oKSk7CiAgICAgcmV0
dXJuIHJlY3Q7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXRh
aWxzTWFya2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRGV0YWlsc01hcmtlci5jcHAJKHJldmlzaW9uIDg3MTg1KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjks
NyArMTI5LDcgQEAgdm9pZCBSZW5kZXJEZXRhaWxzTWFya2VyOjpwYWludChQYWludEluZgogCiAg
ICAgSW50UG9pbnQgYm94T3JpZ2luKHR4ICsgeCgpLCB0eSArIHkoKSk7CiAgICAgSW50UmVjdCBv
dmVyZmxvd1JlY3QodmlzdWFsT3ZlcmZsb3dSZWN0KCkpOwotICAgIG92ZXJmbG93UmVjdC5tb3Zl
KGJveE9yaWdpbi54KCksIGJveE9yaWdpbi55KCkpOworICAgIG92ZXJmbG93UmVjdC5tb3ZlKGJv
eE9yaWdpbik7CiAgICAgb3ZlcmZsb3dSZWN0LmluZmxhdGUobWF4aW1hbE91dGxpbmVTaXplKHBh
aW50SW5mby5waGFzZSkpOwogCiAgICAgaWYgKCFwYWludEluZm8ucmVjdC5pbnRlcnNlY3RzKG92
ZXJmbG93UmVjdCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5l
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5l
LmNwcAkocmV2aXNpb24gODcxODUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW5saW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODk5LDEwICs4OTksMTAgQEAgSW50UmVjdCBS
ZW5kZXJJbmxpbmU6OmN1bGxlZElubGluZVZpc3VhbAogICAgICAgICAgICAgaWYgKCFjdXJyQm94
LT5oYXNTZWxmUGFpbnRpbmdMYXllcigpICYmIGN1cnJCb3gtPmlubGluZUJveFdyYXBwZXIoKSkg
ewogICAgICAgICAgICAgICAgIEludFJlY3QgbG9naWNhbFJlY3QgPSBjdXJyQm94LT5sb2dpY2Fs
VmlzdWFsT3ZlcmZsb3dSZWN0Rm9yUHJvcGFnYXRpb24oc3R5bGUoKSk7CiAgICAgICAgICAgICAg
ICAgaWYgKGlzSG9yaXpvbnRhbCkgewotICAgICAgICAgICAgICAgICAgICBsb2dpY2FsUmVjdC5t
b3ZlKGN1cnJCb3gtPngoKSwgY3VyckJveC0+eSgpKTsKKyAgICAgICAgICAgICAgICAgICAgbG9n
aWNhbFJlY3QubW92ZShjdXJyQm94LT5sb2NhdGlvbigpKTsKICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0LnVuaXRlSWZOb25aZXJvKGxvZ2ljYWxSZWN0KTsKICAgICAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgICAgICBsb2dpY2FsUmVjdC5tb3ZlKGN1cnJCb3gtPnkoKSwg
Y3VyckJveC0+eCgpKTsKKyAgICAgICAgICAgICAgICAgICAgbG9naWNhbFJlY3QubW92ZShjdXJy
Qm94LT5sb2NhdGlvbigpKTsKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnVuaXRlSWZOb25a
ZXJvKGxvZ2ljYWxSZWN0LnRyYW5zcG9zZWRSZWN0KCkpOwogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbnB1dFNw
ZWVjaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklu
cHV0U3BlZWNoLmNwcAkocmV2aXNpb24gODcxODUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW5wdXRTcGVlY2guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4Miw3IEBA
IGJvb2wgUmVuZGVySW5wdXRTcGVlY2g6OnBhaW50SW5wdXRGaWVsZFMKICAgICAvLyBNb3ZlIHRo
ZSByZWN0IGludG8gcGFydFJlbmRlcmVyJ3MgY29vcmRzLgogICAgIGJ1dHRvblJlY3QubW92ZShv
ZmZzZXRGcm9tSW5wdXRSZW5kZXJlcik7CiAgICAgLy8gQWNjb3VudCBmb3IgdGhlIGxvY2FsIGRy
YXdpbmcgb2Zmc2V0LgotICAgIGJ1dHRvblJlY3QubW92ZShyZWN0LngoKSwgcmVjdC55KCkpOwor
ICAgIGJ1dHRvblJlY3QubW92ZShyZWN0LmxvY2F0aW9uKCkpOwogCiAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChSZWZQdHI8SW1hZ2U+LCBpbWFnZVN0YXRlTm9ybWFsLCAoSW1hZ2U6OmxvYWRQbGF0
Zm9ybVJlc291cmNlKCJpbnB1dFNwZWVjaCIpKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChS
ZWZQdHI8SW1hZ2U+LCBpbWFnZVN0YXRlUmVjb3JkaW5nLCAoSW1hZ2U6OmxvYWRQbGF0Zm9ybVJl
c291cmNlKCJpbnB1dFNwZWVjaFJlY29yZGluZyIpKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAkocmV2aXNpb24gODcxODUpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTIwMSw3ICsxMjAxLDcgQEAgc3RhdGljIHZvaWQgcGFpbnRTY3JvbGxiYXIo
U2Nyb2xsYmFyKiBzYwogICAgIGNvbnN0IEludFJlY3QmIHNjcm9sbGJhclJlY3QgPSBzY3JvbGxi
YXItPmZyYW1lUmVjdCgpOwogICAgIGNvbnRleHQudHJhbnNsYXRlKC1zY3JvbGxiYXJSZWN0Lngo
KSwgLXNjcm9sbGJhclJlY3QueSgpKTsKICAgICBJbnRSZWN0IHRyYW5zZm9ybWVkQ2xpcCA9IGNs
aXA7Ci0gICAgdHJhbnNmb3JtZWRDbGlwLm1vdmUoc2Nyb2xsYmFyUmVjdC54KCksIHNjcm9sbGJh
clJlY3QueSgpKTsKKyAgICB0cmFuc2Zvcm1lZENsaXAubW92ZShzY3JvbGxiYXJSZWN0LmxvY2F0
aW9uKCkpOwogICAgIHNjcm9sbGJhci0+cGFpbnQoJmNvbnRleHQsIHRyYW5zZm9ybWVkQ2xpcCk7
CiAgICAgY29udGV4dC5yZXN0b3JlKCk7CiB9CkBAIC0xMjM1LDcgKzEyMzUsNyBAQCB2b2lkIFJl
bmRlckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyhjCiAgICAgICAgIGNvbnRleHQuc2F2ZSgp
OwogICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSgtc2Nyb2xsQ29ybmVyQW5kUmVzaXplci54KCks
IC1zY3JvbGxDb3JuZXJBbmRSZXNpemVyLnkoKSk7CiAgICAgICAgIEludFJlY3QgdHJhbnNmb3Jt
ZWRDbGlwID0gY2xpcDsKLSAgICAgICAgdHJhbnNmb3JtZWRDbGlwLm1vdmUoc2Nyb2xsQ29ybmVy
QW5kUmVzaXplci54KCksIHNjcm9sbENvcm5lckFuZFJlc2l6ZXIueSgpKTsKKyAgICAgICAgdHJh
bnNmb3JtZWRDbGlwLm1vdmUoc2Nyb2xsQ29ybmVyQW5kUmVzaXplci5sb2NhdGlvbigpKTsKICAg
ICAgICAgbV9vd25pbmdMYXllci0+cGFpbnRTY3JvbGxDb3JuZXIoJmNvbnRleHQsIDAsIDAsIHRy
YW5zZm9ybWVkQ2xpcCk7CiAgICAgICAgIG1fb3duaW5nTGF5ZXItPnBhaW50UmVzaXplcigmY29u
dGV4dCwgMCwgMCwgdHJhbnNmb3JtZWRDbGlwKTsKICAgICAgICAgY29udGV4dC5yZXN0b3JlKCk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcAkocmV2aXNpb24gODcxODUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ0NSw3ICsxNDQ1
LDcgQEAgc3RhdGljIHZvaWQgcGFpbnRTY3JvbGxiYXIoU2Nyb2xsYmFyKiBzYwogICAgIGNvbnN0
IEludFJlY3QmIHNjcm9sbGJhclJlY3QgPSBzY3JvbGxiYXItPmZyYW1lUmVjdCgpOwogICAgIGNv
bnRleHQudHJhbnNsYXRlKC1zY3JvbGxiYXJSZWN0LngoKSwgLXNjcm9sbGJhclJlY3QueSgpKTsK
ICAgICBJbnRSZWN0IHRyYW5zZm9ybWVkQ2xpcCA9IGNsaXA7Ci0gICAgdHJhbnNmb3JtZWRDbGlw
Lm1vdmUoc2Nyb2xsYmFyUmVjdC54KCksIHNjcm9sbGJhclJlY3QueSgpKTsKKyAgICB0cmFuc2Zv
cm1lZENsaXAubW92ZShzY3JvbGxiYXJSZWN0LmxvY2F0aW9uKCkpOwogICAgIHNjcm9sbGJhci0+
cGFpbnQoJmNvbnRleHQsIHRyYW5zZm9ybWVkQ2xpcCk7CiAgICAgY29udGV4dC5yZXN0b3JlKCk7
CiB9CkBAIC0xNDYxLDcgKzE0NjEsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cGFp
bnRDb250ZW50CiAgICAgICAgIGNvbnRleHQuc2F2ZSgpOwogICAgICAgICBjb250ZXh0LnRyYW5z
bGF0ZSgtc2Nyb2xsQ29ybmVyLngoKSwgLXNjcm9sbENvcm5lci55KCkpOwogICAgICAgICBJbnRS
ZWN0IHRyYW5zZm9ybWVkQ2xpcCA9IGNsaXA7Ci0gICAgICAgIHRyYW5zZm9ybWVkQ2xpcC5tb3Zl
KHNjcm9sbENvcm5lci54KCksIHNjcm9sbENvcm5lci55KCkpOworICAgICAgICB0cmFuc2Zvcm1l
ZENsaXAubW92ZShzY3JvbGxDb3JuZXIubG9jYXRpb24oKSk7CiAgICAgICAgIG1fcmVuZGVyVmll
dy0+ZnJhbWVWaWV3KCktPnBhaW50U2Nyb2xsQ29ybmVyKCZjb250ZXh0LCB0cmFuc2Zvcm1lZENs
aXApOwogICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5jcHAJKHJldmlzaW9uIDg3MTg1KQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzM5LDcgKzMzOSw3IEBAIHZvaWQgUmVuZGVyTGlzdEl0ZW06OnBvc2l0aW9uTGlzdE1h
cmtlcigKICAgICAgICAgICAgICAgICAgICAgcHJvcGFnYXRlTGF5b3V0T3ZlcmZsb3cgPSBmYWxz
ZTsKICAgICAgICAgICAgICAgICBpZiAoby0+aGFzU2VsZlBhaW50aW5nTGF5ZXIoKSkKICAgICAg
ICAgICAgICAgICAgICAgcHJvcGFnYXRlVmlzdWFsT3ZlcmZsb3cgPSBmYWxzZTsKLSAgICAgICAg
ICAgICAgICBtYXJrZXJSZWN0Lm1vdmUoLW8tPngoKSwgLW8tPnkoKSk7CisgICAgICAgICAgICAg
ICAgbWFya2VyUmVjdC5tb3ZlKC1vLT5sb2NhdGlvbigpKTsKICAgICAgICAgICAgIH0gd2hpbGUg
KG8gIT0gdGhpcyAmJiBwcm9wYWdhdGVWaXN1YWxPdmVyZmxvdyAmJiBwcm9wYWdhdGVMYXlvdXRP
dmVyZmxvdyk7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCShyZXZpc2lvbiA4NzE4NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTExMSw3ICsxMTExLDcgQEAgdm9pZCBSZW5kZXJMaXN0TWFya2VyOjpwYWludChQYWludEluZm8m
IAogCiAgICAgSW50UG9pbnQgYm94T3JpZ2luKHR4ICsgeCgpLCB0eSArIHkoKSk7CiAgICAgSW50
UmVjdCBvdmVyZmxvd1JlY3QodmlzdWFsT3ZlcmZsb3dSZWN0KCkpOwotICAgIG92ZXJmbG93UmVj
dC5tb3ZlKGJveE9yaWdpbi54KCksIGJveE9yaWdpbi55KCkpOworICAgIG92ZXJmbG93UmVjdC5t
b3ZlKGJveE9yaWdpbik7CiAgICAgb3ZlcmZsb3dSZWN0LmluZmxhdGUobWF4aW1hbE91dGxpbmVT
aXplKHBhaW50SW5mby5waGFzZSkpOwogCiAgICAgaWYgKCFwYWludEluZm8ucmVjdC5pbnRlcnNl
Y3RzKG92ZXJmbG93UmVjdCkpCkBAIC0xMTIwLDcgKzExMjAsNyBAQCB2b2lkIFJlbmRlckxpc3RN
YXJrZXI6OnBhaW50KFBhaW50SW5mbyYgCiAgICAgSW50UmVjdCBib3goYm94T3JpZ2luLCBJbnRT
aXplKHdpZHRoKCksIGhlaWdodCgpKSk7CiAgICAgCiAgICAgSW50UmVjdCBtYXJrZXIgPSBnZXRS
ZWxhdGl2ZU1hcmtlclJlY3QoKTsKLSAgICBtYXJrZXIubW92ZShib3hPcmlnaW4ueCgpLCBib3hP
cmlnaW4ueSgpKTsKKyAgICBtYXJrZXIubW92ZShib3hPcmlnaW4pOwogCiAgICAgR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0ID0gcGFpbnRJbmZvLmNvbnRleHQ7CiAKQEAgLTExMzIsNyArMTEzMiw3
IEBAIHZvaWQgUmVuZGVyTGlzdE1hcmtlcjo6cGFpbnQoUGFpbnRJbmZvJiAKICAgICAgICAgY29u
dGV4dC0+ZHJhd0ltYWdlKG1faW1hZ2UtPmltYWdlKHRoaXMsIG1hcmtlci5zaXplKCkpLmdldCgp
LCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIG1hcmtlcik7CiAgICAgICAgIGlmIChzZWxlY3Rpb25T
dGF0ZSgpICE9IFNlbGVjdGlvbk5vbmUpIHsKICAgICAgICAgICAgIEludFJlY3Qgc2VsUmVjdCA9
IGxvY2FsU2VsZWN0aW9uUmVjdCgpOwotICAgICAgICAgICAgc2VsUmVjdC5tb3ZlKGJveE9yaWdp
bi54KCksIGJveE9yaWdpbi55KCkpOworICAgICAgICAgICAgc2VsUmVjdC5tb3ZlKGJveE9yaWdp
bik7CiAgICAgICAgICAgICBjb250ZXh0LT5maWxsUmVjdChzZWxSZWN0LCBzZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoKSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpKTsKICAgICAgICAgfQogICAgICAg
ICByZXR1cm47CkBAIC0xMTQ2LDcgKzExNDYsNyBAQCB2b2lkIFJlbmRlckxpc3RNYXJrZXI6OnBh
aW50KFBhaW50SW5mbyYgCiAKICAgICBpZiAoc2VsZWN0aW9uU3RhdGUoKSAhPSBTZWxlY3Rpb25O
b25lKSB7CiAgICAgICAgIEludFJlY3Qgc2VsUmVjdCA9IGxvY2FsU2VsZWN0aW9uUmVjdCgpOwot
ICAgICAgICBzZWxSZWN0Lm1vdmUoYm94T3JpZ2luLngoKSwgYm94T3JpZ2luLnkoKSk7CisgICAg
ICAgIHNlbFJlY3QubW92ZShib3hPcmlnaW4pOwogICAgICAgICBjb250ZXh0LT5maWxsUmVjdChz
ZWxSZWN0LCBzZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgp
KTsKICAgICB9CiAKQEAgLTEyNTcsNyArMTI1Nyw3IEBAIHZvaWQgUmVuZGVyTGlzdE1hcmtlcjo6
cGFpbnQoUGFpbnRJbmZvJiAKIAogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVT
YXZlcigqY29udGV4dCwgZmFsc2UpOwogICAgIGlmICghc3R5bGUoKS0+aXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUoKSkgewotICAgICAgICBtYXJrZXIubW92ZSgtYm94T3JpZ2luLngoKSwgLWJveE9y
aWdpbi55KCkpOworICAgICAgICBtYXJrZXIubW92ZSgtYm94T3JpZ2luKTsKICAgICAgICAgbWFy
a2VyID0gbWFya2VyLnRyYW5zcG9zZWRSZWN0KCk7CiAgICAgICAgIG1hcmtlci5tb3ZlKGJveC54
KCksIGJveC55KCkgLSBsb2dpY2FsSGVpZ2h0KCkpOwogICAgICAgICBzdGF0ZVNhdmVyLnNhdmUo
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3Bw
CShyZXZpc2lvbiA4NzE4NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZUNlbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBSZW5kZXJU
YWJsZUNlbGw6OmNvbXB1dGVSZWN0Rm9yUmVwYQogICAgIHIuc2V0WShyLnkoKSk7CiAgICAgUmVu
ZGVyVmlldyogdiA9IHZpZXcoKTsKICAgICBpZiAoKCF2IHx8ICF2LT5sYXlvdXRTdGF0ZUVuYWJs
ZWQoKSB8fCByZXBhaW50Q29udGFpbmVyKSAmJiBwYXJlbnQoKSkKLSAgICAgICAgci5tb3ZlKC1w
YXJlbnRCb3goKS0+eCgpLCAtcGFyZW50Qm94KCktPnkoKSk7IC8vIFJvd3MgYXJlIGluIHRoZSBz
YW1lIGNvb3JkaW5hdGUgc3BhY2UsIHNvIGRvbid0IGFkZCB0aGVpciBvZmZzZXQgaW4uCisgICAg
ICAgIHIubW92ZSgtcGFyZW50Qm94KCktPmxvY2F0aW9uKCkpOyAvLyBSb3dzIGFyZSBpbiB0aGUg
c2FtZSBjb29yZGluYXRlIHNwYWNlLCBzbyBkb24ndCBhZGQgdGhlaXIgb2Zmc2V0IGluLgogICAg
IFJlbmRlckJsb2NrOjpjb21wdXRlUmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5lciwgciwg
Zml4ZWQpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAkocmV2aXNpb24gODcxODUpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDAxLDcgKzQwMSw3IEBAIGJvb2wgUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lOjpub2RlQXQKICAgICBSZW5kZXJCb3gqIGlubmVyVGV4dFJlbmRlcmVyID0gaW5u
ZXJUZXh0RWxlbWVudCgpLT5yZW5kZXJCb3goKTsKIAogICAgIEludFBvaW50IGxvY2FsUG9pbnQg
PSByZXN1bHQubG9jYWxQb2ludCgpOwotICAgIGxvY2FsUG9pbnQubW92ZSgtaW5uZXJCbG9ja1Jl
bmRlcmVyLT54KCksIC1pbm5lckJsb2NrUmVuZGVyZXItPnkoKSk7CisgICAgbG9jYWxQb2ludC5t
b3ZlKC1pbm5lckJsb2NrUmVuZGVyZXItPmxvY2F0aW9uKCkpOwogCiAgICAgaW50IHRleHRMZWZ0
ID0gdHggKyB4KCkgKyBpbm5lckJsb2NrUmVuZGVyZXItPngoKSArIGlubmVyVGV4dFJlbmRlcmVy
LT54KCk7CiAgICAgaWYgKHJlc3VsdHNCdXR0b24gJiYgcmVzdWx0c0J1dHRvbi0+cmVuZGVyZXIo
KSAmJiBwb2ludEluQ29udGFpbmVyLngoKSA8IHRleHRMZWZ0KQpAQCAtNDIzLDcgKzQyMyw3IEBA
IGJvb2wgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpub2RlQXQKIAogICAgIGlmIChpbm5l
ck5vZGUpIHsKICAgICAgICAgcmVzdWx0LnNldElubmVyTm9kZShpbm5lck5vZGUpOwotICAgICAg
ICBsb2NhbFBvaW50Lm1vdmUoLWlubmVyTm9kZS0+cmVuZGVyQm94KCktPngoKSwgLWlubmVyTm9k
ZS0+cmVuZGVyQm94KCktPnkoKSk7CisgICAgICAgIGxvY2FsUG9pbnQubW92ZSgtaW5uZXJOb2Rl
LT5yZW5kZXJCb3goKS0+bG9jYXRpb24oKSk7CiAgICAgfQogCiAgICAgcmVzdWx0LnNldExvY2Fs
UG9pbnQobG9jYWxQb2ludCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwCShyZXZpc2lvbiA4NzE4NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjczLDcgKzI3Myw3IEBAIHZvaWQgUmVuZGVy
Vmlldzo6cmVwYWludFZpZXdSZWN0YW5nbGUoY28KICAgICAgICAgCiAgICAgICAgIC8vIFN1YnRy
YWN0IG91dCB0aGUgY29udGVudHNYIGFuZCBjb250ZW50c1kgb2Zmc2V0cyB0byBnZXQgb3VyIGNv
b3JkcyB3aXRoaW4gdGhlIHZpZXdpbmcKICAgICAgICAgLy8gcmVjdGFuZ2xlLgotICAgICAgICBy
Lm1vdmUoLXZyLngoKSwgLXZyLnkoKSk7CisgICAgICAgIHIubW92ZSgtdnIubG9jYXRpb24oKSk7
CiAgICAgICAgIAogICAgICAgICAvLyBGSVhNRTogSGFyZGNvZGVkIG9mZnNldHMgaGVyZSBhcmUg
bm90IGdvb2QuCiAgICAgICAgIHIubW92ZShvYmotPmJvcmRlckxlZnQoKSArIG9iai0+cGFkZGlu
Z0xlZnQoKSwK
</data>

          </attachment>
      

    </bug>

</bugzilla>