<?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>88979</bug_id>
          
          <creation_ts>2012-06-13 03:06:21 -0700</creation_ts>
          <short_desc>[Forms] Make RenderTextSingleLine usable from any element</short_desc>
          <delta_ts>2012-06-26 22:00:21 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>
          <dependson>88980</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter>yosin</reporter>
          <assigned_to>yosin</assigned_to>
          <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>philn</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>647847</commentid>
    <comment_count>0</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-06-13 03:06:21 -0700</bug_when>
    <thetext>This is part of implementing single line text edit control in shadow DOM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651283</commentid>
    <comment_count>1</comment_count>
      <attachid>148079</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-18 03:11:21 -0700</bug_when>
    <thetext>Created attachment 148079
Patch 1 - WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651284</commentid>
    <comment_count>2</comment_count>
      <attachid>148079</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-18 03:14:05 -0700</bug_when>
    <thetext>Comment on attachment 148079
Patch 1 - WIP

Could you review this patch as architecture review?

Possible options are:
1. Proceed as is
2. Making SingleLineTextEditField in this patch
3. Or, another

Thanks in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651296</commentid>
    <comment_count>3</comment_count>
      <attachid>148079</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-06-18 03:33:31 -0700</bug_when>
    <thetext>Comment on attachment 148079
Patch 1 - WIP

Attachment 148079 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12821025</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651297</commentid>
    <comment_count>4</comment_count>
      <attachid>148079</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-18 03:34:16 -0700</bug_when>
    <thetext>Comment on attachment 148079
Patch 1 - WIP

Attachment 148079 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12982039</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651298</commentid>
    <comment_count>5</comment_count>
      <attachid>148079</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-06-18 03:35:00 -0700</bug_when>
    <thetext>Comment on attachment 148079
Patch 1 - WIP

Attachment 148079 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12985019</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651329</commentid>
    <comment_count>6</comment_count>
      <attachid>148079</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-18 05:11:24 -0700</bug_when>
    <thetext>Comment on attachment 148079
Patch 1 - WIP

It seems making TextControlSingleLine shadow element derived from HTMLTextFormControlElement is better than set RenderTextControl free from HTMLTextFormControlElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658328</commentid>
    <comment_count>7</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-06-26 22:00:21 -0700</bug_when>
    <thetext>Postpone until we improve test coverage.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>148079</attachid>
            <date>2012-06-18 03:11:21 -0700</date>
            <delta_ts>2012-06-18 05:11:24 -0700</delta_ts>
            <desc>Patch 1 - WIP</desc>
            <filename>bug-88979-20120618191120.patch</filename>
            <type>text/plain</type>
            <size>38176</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTllYjJkZWYyODUxMzNm
OTlmNTUwYjE1NDFjNDg4YWE4OTgyZThjOS4uZmMwZmJlZTA4YmU0ZmZiYzZjZDdjNjc4ZmY3YzNk
MTUxNzVmZDJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNCBAQAorMjAxMi0wNi0xOCAgWW9z
aGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtGb3Jtc10gTWFr
ZSBSZW5kZXJUZXh0U2luZ2xlTGluZSB1c2FibGUgZnJvbSBhbnkgZWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg5NzkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXSVA6IFRoaXMgcGF0Y2ggaXMg
YSBwYXJ0IG9mIGNoYW5naW5nIGJhc2UgY2xhc3Mgb2YgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
CisgICAgICAgIHRvIElucHV0VHlwZSBmcm9tIFRleHRGaWVsZElucHV0VHlwZS4KKworICAgICAg
ICBOZXh0IHBhdGNoIHdpbGwgbW92ZSBhbGwgbWV0aG9kcyBpbiBUZXh0RmllbGRJbnB1dFR5cGUg
dG8gbmV3IGZpbGUKKyAgICAgICAgc2hhZG93L1NpbmdsZUxpbmVUZXh0RmllbGRFbGVtZW50LmNw
cCBhbmQgcmVtb3ZlIFRleHRGaWVsZElucHV0VHlwZS4KKworICAgICAgICBObyBuZXcgdGVzdHMu
IFRoaXMgcGF0Y2ggZG9lc24ndCBjaGFuZ2UgYmVoYXZpb3IuCisKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aW5kZXhGb3JW
aXNpYmxlUG9zaXRpb24pOgorICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRJdGVyYXRvcjo6aGFuZGxlUmVwbGFjZWRFbGVtZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTElu
cHV0RWxlbWVudC5oOgorICAgICAgICAoSFRNTElucHV0RWxlbWVudCk6CisgICAgICAgICogaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJl
YUVsZW1lbnQ6OmlubmVySW5kZXhGb3JWaXNpYmxlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojppbm5lclNlbGVjdGVk
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojppbm5lclNlbGVj
dGlvbkVuZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojppbm5lclNl
bGVjdGlvblN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNl
dElubmVyU2VsZWN0aW9uUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxl
bWVudDo6aW5uZXJVcGRhdGVQbGFjZWhvbGRlclZpc2liaWxpdHkpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6aW5uZXJWYWx1ZSk6CisgICAgICAgICogaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50Lmg6CisgICAgICAgIChIVE1MVGV4dEFyZWFFbGVtZW50KToKKyAgICAg
ICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDoKKyAg
ICAgICAgKElucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TnVtYmVySW5wdXRUeXBlOjpzaXplU2hvdWxkSW5jbHVkZURlY29y
YXRpb24pOgorICAgICAgICAqIGh0bWwvTnVtYmVySW5wdXRUeXBlLmg6CisgICAgICAgIChOdW1i
ZXJJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaDoKKyAgICAg
ICAgKiBodG1sL1NlYXJjaElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hJ
bnB1dFR5cGU6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVJl
bmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6aW5uZXJJbmRl
eEZvclZpc2libGVQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRGaWVsZElucHV0VHlwZTo6aW5uZXJTZWxlY3RlZFRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjppbm5lclNlbGVjdGlvbkVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmlubmVyU2VsZWN0aW9uU3RhcnQpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpzZXRJbm5lclNlbGVjdGlvblJhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6aW5uZXJVcGRhdGVQbGFjZWhv
bGRlclZpc2liaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpp
bm5lclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6c2l6ZVNo
b3VsZEluY2x1ZGVEZWNvcmF0aW9uKToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlw
ZS5oOgorICAgICAgICAoVGV4dEZpZWxkSW5wdXRUeXBlKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyU2VhcmNoRmllbGQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2VhcmNoRmll
bGQ6OlJlbmRlclNlYXJjaEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNlYXJjaEZp
ZWxkOjppbnB1dEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclNlYXJjaEZpZWxkLmg6CisgICAgICAgIChSZW5kZXJTZWFyY2hGaWVsZCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRleHRDb250cm9sOjpSZW5kZXJUZXh0Q29udHJvbCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6aW5uZXJUZXh0RWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6c3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGV4dENvbnRyb2w6OkNhbGxiYWNrOjppbm5lclNoYWRvd1Jvb3QpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRleHRDb250cm9sOjpDYWxsYmFjazo6aW5uZXJVcGRhdGVQbGFjZWhvbGRlclZpc2li
aWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6OkNhbGxiYWNrOjpw
bGFjZWhvbGRlckVsZW1lbnQpOgorICAgICAgICAoUmVuZGVyVGV4dENvbnRyb2wpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6OmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpzZWxlY3RlZFRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6OnNlbGVjdGlvbkVuZCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6c2VsZWN0aW9uU3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6OnNldFNlbGVjdGlvblJhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpzaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRleHRDb250cm9sOjp2YWx1ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sTXVsdGlMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRD
b250cm9sTXVsdGlMaW5lOjpSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZSk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6Omlu
bmVyU3BpbkJ1dHRvbkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lOjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lOjpzdHlsZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OmNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnByZWZlcnJlZENvbnRl
bnRXaWR0aCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZS5oOgorICAgICAgICAoQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lOjpDYWxsYmFjazo6c2hvdWxkRHJhd0NhcHNMb2NrSW5kaWNhdG9yKToK
KyAgICAgICAgKFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmNvbnRhaW5lckVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjppbm5lckJsb2NrRWxlbWVu
dCk6CisKIDIwMTItMDYtMTcgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbRm9ybXNdIE1vdmUgc2VhcmNoIGZpZWxkIHJlbGF0ZWQgY29kZSB0byBSZW5k
ZXJTZWFyY2hGaWVsZCBmcm9tIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAKaW5kZXggZmQ4YTY0NDU3MWVkNjc5ZmMxN2U4MTdiYzI1YjllZWZlOGFhOGZmNi4u
YWM5OGIwYzcwNDBiMTdhOWE4ZTNhZTY1NTg2OTM1NjQyY2UyNDQzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwCkBAIC03MSw3ICs3MSw2IEBACiAjaW5jbHVkZSAiUmVuZGVyTWVudUxpc3QuaCIKICNp
bmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2wuaCIKLSNp
bmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJU
ZXh0RnJhZ21lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJlbmRl
clZpZXcuaCIKQEAgLTIwMDcsNyArMjAwNiw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojp0ZXh0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCiAgICAgaWYg
KGlzTmF0aXZlVGV4dENvbnRyb2woKSkKLSAgICAgICAgcmV0dXJuIHRvUmVuZGVyVGV4dENvbnRy
b2wobV9yZW5kZXJlciktPnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKS0+dmFsdWUoKTsKKyAgICAg
ICAgcmV0dXJuIHRvUmVuZGVyVGV4dENvbnRyb2wobV9yZW5kZXJlciktPnZhbHVlKCk7CiAKICAg
ICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwpA
QCAtMjA1MCwxMCArMjA0OSw4IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpz
ZWxlY3RlZFRleHQoKSBjb25zdAogICAgIGlmIChpc1Bhc3N3b3JkRmllbGQoKSkKICAgICAgICAg
cmV0dXJuIFN0cmluZygpOyAvLyBuZWVkIHRvIHJldHVybiBzb21ldGhpbmcgZGlzdGluY3QgZnJv
bSBlbXB0eSBzdHJpbmcKICAgICAKLSAgICBpZiAoaXNOYXRpdmVUZXh0Q29udHJvbCgpKSB7Ci0g
ICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KiB0ZXh0Q29udHJvbCA9IHRvUmVuZGVy
VGV4dENvbnRyb2wobV9yZW5kZXJlciktPnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKTsKLSAgICAg
ICAgcmV0dXJuIHRleHRDb250cm9sLT5zZWxlY3RlZFRleHQoKTsKLSAgICB9CisgICAgaWYgKGlz
TmF0aXZlVGV4dENvbnRyb2woKSkKKyAgICAgICAgcmV0dXJuIHRvUmVuZGVyVGV4dENvbnRyb2wo
bV9yZW5kZXJlciktPnNlbGVjdGVkVGV4dCgpOwogICAgIAogICAgIGlmIChhcmlhUm9sZUF0dHJp
YnV0ZSgpID09IFVua25vd25Sb2xlKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CkBAIC0yMDg1
LDcgKzIwODIsNyBAQCBQbGFpblRleHRSYW5nZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpz
ZWxlY3RlZFRleHRSYW5nZSgpIGNvbnN0CiAgICAgCiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgYXJp
YVJvbGUgPSBhcmlhUm9sZUF0dHJpYnV0ZSgpOwogICAgIGlmIChpc05hdGl2ZVRleHRDb250cm9s
KCkgJiYgYXJpYVJvbGUgPT0gVW5rbm93blJvbGUpIHsKLSAgICAgICAgSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQqIHRleHRDb250cm9sID0gdG9SZW5kZXJUZXh0Q29udHJvbChtX3JlbmRlcmVy
KS0+dGV4dEZvcm1Db250cm9sRWxlbWVudCgpOworICAgICAgICBSZW5kZXJUZXh0Q29udHJvbCog
dGV4dENvbnRyb2wgPSB0b1JlbmRlclRleHRDb250cm9sKG1fcmVuZGVyZXIpOwogICAgICAgICBy
ZXR1cm4gUGxhaW5UZXh0UmFuZ2UodGV4dENvbnRyb2wtPnNlbGVjdGlvblN0YXJ0KCksIHRleHRD
b250cm9sLT5zZWxlY3Rpb25FbmQoKSAtIHRleHRDb250cm9sLT5zZWxlY3Rpb25TdGFydCgpKTsK
ICAgICB9CiAgICAgCkBAIC0yMDk4LDggKzIwOTUsNyBAQCBQbGFpblRleHRSYW5nZSBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHRSYW5nZSgpIGNvbnN0CiB2b2lkIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKGNvbnN0IFBsYWluVGV4
dFJhbmdlJiByYW5nZSkKIHsKICAgICBpZiAoaXNOYXRpdmVUZXh0Q29udHJvbCgpKSB7Ci0gICAg
ICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KiB0ZXh0Q29udHJvbCA9IHRvUmVuZGVyVGV4
dENvbnRyb2wobV9yZW5kZXJlciktPnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKTsKLSAgICAgICAg
dGV4dENvbnRyb2wtPnNldFNlbGVjdGlvblJhbmdlKHJhbmdlLnN0YXJ0LCByYW5nZS5zdGFydCAr
IHJhbmdlLmxlbmd0aCk7CisgICAgICAgIHRvUmVuZGVyVGV4dENvbnRyb2wobV9yZW5kZXJlcikt
PnNldFNlbGVjdGlvblJhbmdlKHJhbmdlLnN0YXJ0LCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0
aCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTI1NTYsMTAgKzI1NTIsOCBAQCBWaXNp
YmxlUG9zaXRpb24gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dmlzaWJsZVBvc2l0aW9uRm9y
SW5kZXgoaW50IGluZGV4KSBjbwogICAgIAogaW50IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zKSBjb25z
dAogewotICAgIGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkpIHsKLSAgICAgICAgSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQqIHRleHRDb250cm9sID0gdG9SZW5kZXJUZXh0Q29udHJvbChtX3Jl
bmRlcmVyKS0+dGV4dEZvcm1Db250cm9sRWxlbWVudCgpOwotICAgICAgICByZXR1cm4gdGV4dENv
bnRyb2wtPmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKHBvcyk7Ci0gICAgfQorICAgIGlmIChpc05h
dGl2ZVRleHRDb250cm9sKCkpCisgICAgICAgIHJldHVybiB0b1JlbmRlclRleHRDb250cm9sKG1f
cmVuZGVyZXIpLT5pbmRleEZvclZpc2libGVQb3NpdGlvbihwb3MpOwogCiAgICAgaWYgKCFpc1Rl
eHRDb250cm9sKCkpCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0
SXRlcmF0b3IuY3BwCmluZGV4IGIxN2FlNmI2MWE5ZjRlYmJkMDI2YThiYjYzNjJiNGViNTEwMDUy
M2MuLjI4MGEyOGQzMjhmOWRhNzczZTFiN2M2YjA5OTc2NTdhMmE2OWFjNzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKQEAgLTY2Myw4ICs2NjMsOCBAQCBib29sIFRl
eHRJdGVyYXRvcjo6aGFuZGxlUmVwbGFjZWRFbGVtZW50KCkKICAgICB9CiAKICAgICBpZiAobV9l
bnRlcnNUZXh0Q29udHJvbHMgJiYgcmVuZGVyZXItPmlzVGV4dENvbnRyb2woKSkgewotICAgICAg
ICBpZiAoSFRNTEVsZW1lbnQqIGlubmVyVGV4dEVsZW1lbnQgPSB0b1JlbmRlclRleHRDb250cm9s
KHJlbmRlcmVyKS0+dGV4dEZvcm1Db250cm9sRWxlbWVudCgpLT5pbm5lclRleHRFbGVtZW50KCkp
IHsKLSAgICAgICAgICAgIG1fbm9kZSA9IGlubmVyVGV4dEVsZW1lbnQtPnNoYWRvd1Jvb3QoKTsK
KyAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSB0b1JlbmRlclRleHRDb250cm9s
KHJlbmRlcmVyKS0+c2hhZG93Um9vdCgpKSB7CisgICAgICAgICAgICBtX25vZGUgPSBzaGFkb3dS
b290OwogICAgICAgICAgICAgcHVzaEZ1bGx5Q2xpcHBlZFN0YXRlKG1fZnVsbHlDbGlwcGVkU3Rh
Y2ssIG1fbm9kZSk7CiAgICAgICAgICAgICBtX29mZnNldCA9IDA7CiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCA4
ZDE1Y2EyOGRhYjI4NGEwZTdjMDFiNWZlZjgyYWZjOTAxMzQ4OWExLi45MDM5YzZhYjJmODAzOTk0
YWFiMWFjNTRmZGJhOWYzYjBhOWQ0NTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKQEAgLTEzNiwyMSArMTM2LDExIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSFRN
TElucHV0RWxlbWVudDo6bmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fbmFtZS5pc051bGwoKSA/
IGVtcHR5QXRvbSA6IG1fbmFtZTsKIH0KIAotSFRNTEVsZW1lbnQqIEhUTUxJbnB1dEVsZW1lbnQ6
OmNvbnRhaW5lckVsZW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiBtX2lucHV0VHlwZS0+Y29u
dGFpbmVyRWxlbWVudCgpOwotfQotCiBIVE1MRWxlbWVudCogSFRNTElucHV0RWxlbWVudDo6aW5u
ZXJUZXh0RWxlbWVudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5pbm5lclRl
eHRFbGVtZW50KCk7CiB9CiAKLUhUTUxFbGVtZW50KiBIVE1MSW5wdXRFbGVtZW50Ojppbm5lckJs
b2NrRWxlbWVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faW5wdXRUeXBlLT5pbm5lckJsb2Nr
RWxlbWVudCgpOwotfQotCiBIVE1MRWxlbWVudCogSFRNTElucHV0RWxlbWVudDo6aW5uZXJTcGlu
QnV0dG9uRWxlbWVudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5pbm5lclNw
aW5CdXR0b25FbGVtZW50KCk7CkBAIC04MjAsMTEgKzgxMCw2IEBAIGludCBIVE1MSW5wdXRFbGVt
ZW50OjpzaXplKCkgY29uc3QKICAgICByZXR1cm4gbV9zaXplOwogfQogCi1ib29sIEhUTUxJbnB1
dEVsZW1lbnQ6OnNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihpbnQmIHByZWZlcnJlZFNpemUp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faW5wdXRUeXBlLT5zaXplU2hvdWxkSW5jbHVkZURlY29y
YXRpb24oZGVmYXVsdFNpemUsIHByZWZlcnJlZFNpemUpOwotfQotCiB2b2lkIEhUTUxJbnB1dEVs
ZW1lbnQ6OmNvcHlOb25BdHRyaWJ1dGVQcm9wZXJ0aWVzRnJvbUVsZW1lbnQoY29uc3QgRWxlbWVu
dCYgc291cmNlKQogewogICAgIGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQmIHNvdXJjZUVsZW1lbnQg
PSBzdGF0aWNfY2FzdDxjb25zdCBIVE1MSW5wdXRFbGVtZW50Jj4oc291cmNlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggY2I1MjMxZjI3ZDA5ZTE0YjhjNTI3MmZk
ZDFkYjFiY2I2M2VjNGJlNi4uZjExMzBjOWRhMGIxMmU4OWM0YThiMWNlZGZlMDY5MGI0OTU2Y2E0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTExMyw5ICsxMTMs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1NwZWVjaEVuYWJsZWQoKSBjb25zdDsKICNlbmRpZgog
Ci0gICAgSFRNTEVsZW1lbnQqIGNvbnRhaW5lckVsZW1lbnQoKSBjb25zdDsKICAgICB2aXJ0dWFs
IEhUTUxFbGVtZW50KiBpbm5lclRleHRFbGVtZW50KCkgY29uc3Q7Ci0gICAgSFRNTEVsZW1lbnQq
IGlubmVyQmxvY2tFbGVtZW50KCkgY29uc3Q7CiAgICAgSFRNTEVsZW1lbnQqIGlubmVyU3BpbkJ1
dHRvbkVsZW1lbnQoKSBjb25zdDsKICAgICBIVE1MRWxlbWVudCogcmVzdWx0c0J1dHRvbkVsZW1l
bnQoKSBjb25zdDsKICAgICBIVE1MRWxlbWVudCogY2FuY2VsQnV0dG9uRWxlbWVudCgpIGNvbnN0
OwpAQCAtMTM1LDcgKzEzMyw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNJbmRldGVy
bWluYXRlKCkgY29uc3Q7CiAKICAgICBpbnQgc2l6ZSgpIGNvbnN0OwotICAgIGJvb2wgc2l6ZVNo
b3VsZEluY2x1ZGVEZWNvcmF0aW9uKGludCYgcHJlZmVycmVkU2l6ZSkgY29uc3Q7CiAKICAgICB2
b2lkIHNldFR5cGUoY29uc3QgU3RyaW5nJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IDY0MzcyNTcwODhmYTMwZDJjMmZlYzk2ZmQ1NWYyNTU4
ZTA3MmVkZWQuLjY0ZTJkMzYyNWU0OTQ4Y2E1MTAzZjMxNzk0ZjA2NDJiZGJlODM1NTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAtNTI1LDQgKzUy
NSwzOSBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgp
CiAgICAgZml4UGxhY2Vob2xkZXJSZW5kZXJlcihtX3BsYWNlaG9sZGVyLmdldCgpLCBpbm5lclRl
eHRFbGVtZW50KCkpOwogfQogCitpbnQgSFRNTFRleHRBcmVhRWxlbWVudDo6aW5uZXJJbmRleEZv
clZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKSBjb25zdAor
eworICAgIHJldHVybiBpbmRleEZvclZpc2libGVQb3NpdGlvbihwb3NpdGlvbik7Cit9CisKK1N0
cmluZyBIVE1MVGV4dEFyZWFFbGVtZW50Ojppbm5lclNlbGVjdGVkVGV4dCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHNlbGVjdGVkVGV4dCgpOworfQorCitpbnQgSFRNTFRleHRBcmVhRWxlbWVudDo6
aW5uZXJTZWxlY3Rpb25FbmQoKSBjb25zdAoreworICAgIHJldHVybiBzZWxlY3Rpb25FbmQoKTsK
K30KKworaW50IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmlubmVyU2VsZWN0aW9uU3RhcnQoKSBjb25z
dAoreworICAgIHJldHVybiBzZWxlY3Rpb25TdGFydCgpOworfQorCit2b2lkIEhUTUxUZXh0QXJl
YUVsZW1lbnQ6OnNldElubmVyU2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBUZXh0
RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIHJldHVybiBzZXRTZWxl
Y3Rpb25SYW5nZShzdGFydCwgZW5kLCBkaXJlY3Rpb24pOworfQorCit2b2lkIEhUTUxUZXh0QXJl
YUVsZW1lbnQ6OmlubmVyVXBkYXRlUGxhY2Vob2xkZXJWaXNpYmlsaXR5KGJvb2wgcGxhY2Vob2xk
ZXJWYWx1ZUNoYW5nZWQpCit7CisgICAgcmV0dXJuIHVwZGF0ZVBsYWNlaG9sZGVyVmlzaWJpbGl0
eShwbGFjZWhvbGRlclZhbHVlQ2hhbmdlZCk7Cit9CisKK1N0cmluZyBIVE1MVGV4dEFyZWFFbGVt
ZW50Ojppbm5lclZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdmFsdWUoKTsKK30KKwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAppbmRleCA2M2NlOWVhNzc3
YzY3NzkwNWQ0ODU3NjMwNmZkMTY1ZDBjNTRkMjViLi5iOGVkOGM0ZGIwMmE1MDc3Y2E0YTJlY2Rk
MzhlN2IzYWNlMjMyZGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1l
bnQuaApAQCAtMjUsMTMgKzI1LDE0IEBACiAjZGVmaW5lIEhUTUxUZXh0QXJlYUVsZW1lbnRfaAog
CiAjaW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJSZW5k
ZXJUZXh0Q29udHJvbC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEJlZm9yZVRl
eHRJbnNlcnRlZEV2ZW50OwogY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIAotY2xhc3MgSFRNTFRl
eHRBcmVhRWxlbWVudCA6IHB1YmxpYyBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCB7CitjbGFz
cyBIVE1MVGV4dEFyZWFFbGVtZW50IDogcHVibGljIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LCBwdWJsaWMgUmVuZGVyVGV4dENvbnRyb2w6OkNhbGxiYWNrIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxIVE1MVGV4dEFyZWFFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKQEAgLTUzLDggKzU0LDYgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCB0b29Mb25nKCkgY29uc3QgT1ZFUlJJREU7CiAgICAg
Ym9vbCBpc1ZhbGlkVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgCi0gICAgdmlydHVh
bCBIVE1MRWxlbWVudCogaW5uZXJUZXh0RWxlbWVudCgpIGNvbnN0OwotCiAgICAgdm9pZCByZW5k
ZXJlcldpbGxCZURlc3Ryb3llZCgpOwogCiAgICAgdm9pZCBzZXRDb2xzKGludCk7CkBAIC03NCw3
ICs3Myw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRWYWx1ZUNvbW1vbihjb25zdCBTdHJpbmcm
KTsKIAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1BsYWNlaG9sZGVyKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgSFRNTEVsZW1lbnQqIHBsYWNlaG9sZGVyRWxlbWVudCgp
IGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQbGFjZWhvbGRlclRleHQoKTsKICAgICB2
aXJ0dWFsIGJvb2wgaXNFbXB0eVZhbHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWUoKS5pc0VtcHR5
KCk7IH0KIApAQCAtMTExLDYgKzEwOSwxNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRVc2VJbnB1dE1ldGhvZCgpOwogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklE
RTsKIAorICAgIC8vIFJlbmRlclRleHRDb250cm9sOjpDYWxsYmFjayBtZXRob2RzCisgICAgdmly
dHVhbCBpbnQgaW5uZXJJbmRleEZvclZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRp
b24mKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBpbm5lclNlbGVjdGVkVGV4
dCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgaW50IGlubmVyU2VsZWN0aW9uRW5kKCkg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBpbnQgaW5uZXJTZWxlY3Rpb25TdGFydCgpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgSFRNTEVsZW1lbnQqIGlubmVyVGV4dEVsZW1lbnQo
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5uZXJVcGRhdGVQbGFjZWhvbGRl
clZpc2liaWxpdHkoYm9vbCk7CisgICAgdmlydHVhbCBTdHJpbmcgaW5uZXJWYWx1ZSgpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgSFRNTEVsZW1lbnQqIHBsYWNlaG9sZGVyRWxlbWVudCgp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRJbm5lclNlbGVjdGlvblJhbmdl
KGludCBzdGFydCwgaW50IGVuZCwgVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uID0gU2VsZWN0
aW9uSGFzTm9EaXJlY3Rpb24pIE9WRVJSSURFOworCiAgICAgYm9vbCB2YWx1ZU1pc3NpbmcoY29u
c3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QgeyByZXR1cm4gaXNSZXF1aXJlZEZvcm1Db250cm9sKCkg
JiYgIWRpc2FibGVkKCkgJiYgIXJlYWRPbmx5KCkgJiYgdmFsdWUuaXNFbXB0eSgpOyB9CiAgICAg
Ym9vbCB0b29Mb25nKGNvbnN0IFN0cmluZyYsIE5lZWRzVG9DaGVja0RpcnR5RmxhZykgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCBkYWUwM2YzY2MyNmQxYWEyMDNmMWJl
NmQ1ZTc0NWM5YTFkNGU4ZGE1Li44NWEyYzllOGVlZjhmNTY1ZTMxNzMxODI4OTNhOWQ2ZGE3MjQ3
MDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC0yOTAsMTIgKzI5MCw2IEBAIGRv
dWJsZSBJbnB1dFR5cGU6Om1heGltdW0oKSBjb25zdAogICAgIHJldHVybiBjcmVhdGVTdGVwUmFu
Z2UoUmVqZWN0QW55KS5tYXhpbXVtKCkudG9Eb3VibGUoKTsKIH0KIAotYm9vbCBJbnB1dFR5cGU6
OnNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihpbnQsIGludCYgcHJlZmVycmVkU2l6ZSkgY29u
c3QKLXsKLSAgICBwcmVmZXJyZWRTaXplID0gZWxlbWVudCgpLT5zaXplKCk7Ci0gICAgcmV0dXJu
IGZhbHNlOwotfQotCiBib29sIElucHV0VHlwZTo6aXNJblJhbmdlKGNvbnN0IFN0cmluZyYgdmFs
dWUpIGNvbnN0CiB7CiAgICAgaWYgKCFpc1N0ZXBwYWJsZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmgKaW5kZXggYjY4ZDk3ZjVkNjQ1MzU1YjcxMDVjOWY0ODE2NjgyNzNmNDhhNDNmNy4uMWVkNmUy
MDEzMjQ3ZTY4Yzk5NWUzNGQ1YTQxYmY1OTkxNWMxOGUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlw
ZS5oCkBAIC0xNjAsNyArMTYwLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgRGVjaW1hbCBkZWZh
dWx0VmFsdWVGb3JTdGVwVXAoKSBjb25zdDsKICAgICBkb3VibGUgbWluaW11bSgpIGNvbnN0Owog
ICAgIGRvdWJsZSBtYXhpbXVtKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIHNpemVTaG91bGRJ
bmNsdWRlRGVjb3JhdGlvbihpbnQgZGVmYXVsdFNpemUsIGludCYgcHJlZmVycmVkU2l6ZSkgY29u
c3Q7CiAgICAgYm9vbCBzdGVwTWlzbWF0Y2goY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmly
dHVhbCBib29sIGdldEFsbG93ZWRWYWx1ZVN0ZXAoRGVjaW1hbCopIGNvbnN0OwogICAgIHZpcnR1
YWwgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcpIGNvbnN0OwpAQCAt
MjA3LDggKzIwNiw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlU2hhZG93U3Vi
dHJlZSgpOwogICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95U2hhZG93U3VidHJlZSgpOwogCi0gICAg
dmlydHVhbCBIVE1MRWxlbWVudCogY29udGFpbmVyRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KLSAgICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBpbm5lckJsb2NrRWxlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBpbm5lclRleHRFbGVtZW50KCkg
Y29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgSFRNTEVsZW1lbnQqIGlubmVyU3BpbkJ1
dHRvbkVsZW1lbnQoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBIVE1MRWxlbWVu
dCogcmVzdWx0c0J1dHRvbkVsZW1lbnQoKSBjb25zdCB7IHJldHVybiAwOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKaW5kZXggZWIxNTdmMTBjMmQ3ZmM1NWU3NTczMDRk
Mzk2YmI3YWQ4OGVjZjQ0OC4uMWMzMjViNWIyN2RlMThhM2Q0NzljYzI1OGZiOTA3NjAzYWVkZTJk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcApAQCAtMTYyLDggKzE2
MiwxMCBAQCBTdGVwUmFuZ2UgTnVtYmVySW5wdXRUeXBlOjpjcmVhdGVTdGVwUmFuZ2UoQW55U3Rl
cEhhbmRsaW5nIGFueVN0ZXBIYW5kbGluZykgY29ucwogICAgIHJldHVybiBTdGVwUmFuZ2Uoc3Rl
cEJhc2UsIG1pbmltdW0sIG1heGltdW0sIHN0ZXAsIHN0ZXBEZXNjcmlwdGlvbik7CiB9CiAKLWJv
b2wgTnVtYmVySW5wdXRUeXBlOjpzaXplU2hvdWxkSW5jbHVkZURlY29yYXRpb24oaW50IGRlZmF1
bHRTaXplLCBpbnQmIHByZWZlcnJlZFNpemUpIGNvbnN0Citib29sIE51bWJlcklucHV0VHlwZTo6
c2l6ZVNob3VsZEluY2x1ZGVEZWNvcmF0aW9uKGludCYgcHJlZmVycmVkU2l6ZSkgY29uc3QKIHsK
KyAgICAvLyBGSVhNRTogSG93IGRvIHdlIHNoYXJlIGRlZmF1bHRTaXplIGlzIGRlZmluZWQgaW4g
SFRNTElucHV0RWxlbWVudD8KKyAgICBjb25zdCBpbnQgZGVmYXVsdFNpemUgPSAyMDsKICAgICBw
cmVmZXJyZWRTaXplID0gZGVmYXVsdFNpemU7CiAKICAgICBjb25zdCBTdHJpbmcgc3RlcFN0cmlu
ZyA9IGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShzdGVwQXR0cik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9OdW1iZXJJbnB1dFR5cGUuaAppbmRleCBmZTE2ZTVmYTA5NDYwYzM2YjI4YTc2MWQwZWM5Yjgy
NWZkYTJhZjIxLi41MGJjNjNjOGQ1ZmM4YTgyZTQxNWE5YTI4NjNhYWMzYjY2OTgwZjM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0RlY2ltYWwoY29uc3QgRGVjaW1hbCYsIFRl
eHRGaWVsZEV2ZW50QmVoYXZpb3IsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgYm9vbCB0eXBlTWlzbWF0Y2goKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgc2l6ZVNob3VsZEluY2x1ZGVEZWNvcmF0aW9uKGludCBkZWZhdWx0U2l6
ZSwgaW50JiBwcmVmZXJyZWRTaXplKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wg
c2l6ZVNob3VsZEluY2x1ZGVEZWNvcmF0aW9uKGludCYgcHJlZmVycmVkU2l6ZSkgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzU3RlcHBhYmxlKCkgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBTdGVwUmFuZ2UgY3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZykgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWRvd25FdmVudChLZXlib2Fy
ZEV2ZW50KikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3
b3JkSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmgK
aW5kZXggNTI2N2RkZTYzNjNiZThmMTM4MjRiMGVhOGVlNGY0OWQ2ZTAxOWU3NC4uMDNlYjRhODY1
MjljNTkyNmE3ODNlMTNjMTJhYjU2N2IyMGUxYTkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFz
c3dvcmRJbnB1dFR5cGUuaApAQCAtNDQsNiArNDQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgc2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJikgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmlu
ZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGREcmF3Q2Fwc0xvY2tJbmRpY2F0
b3IoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHNo
b3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNo
b3VsZFJlc2V0T25Eb2N1bWVudEFjdGl2YXRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAppbmRleCA5NTg4NzhjZWQyNzA0OTgxNzI3Y2E1MDFjYTc0
OTJhNzlhM2ExODA4Li40ZGMzNzdhMThkNDI4ZjMyZjJkY2U0ZjZiMTgwNGJiOWJlNjcxZmI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCkBAIC02Miw3ICs2Miw3IEBA
IHZvaWQgU2VhcmNoSW5wdXRUeXBlOjphZGRTZWFyY2hSZXN1bHQoKQogCiBSZW5kZXJPYmplY3Qq
IFNlYXJjaElucHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5k
ZXJTdHlsZSopIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclNlYXJjaEZp
ZWxkKGVsZW1lbnQoKSk7CisgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclNlYXJjaEZpZWxk
KGVsZW1lbnQoKSwgKmNvbnN0X2Nhc3Q8U2VhcmNoSW5wdXRUeXBlKj4odGhpcykpOwogfQogCiBj
b25zdCBBdG9taWNTdHJpbmcmIFNlYXJjaElucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCA4MTg5
MTQ0YTk5MzgwYTU4ZDBjOGE1YTc3YWNmMGI2OGMwZTBmNDhlLi4wODRmMjQwYjYxYzA5ODc0NzVh
MGY4ZDhkYTRhODA2ZWE4OWQzYzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rl
eHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJ
bnB1dFR5cGUuY3BwCkBAIC0yMDAsNyArMjAwLDcgQEAgYm9vbCBUZXh0RmllbGRJbnB1dFR5cGU6
OnNob3VsZFN1Ym1pdEltcGxpY2l0bHkoRXZlbnQqIGV2ZW50KQogCiBSZW5kZXJPYmplY3QqIFRl
eHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5k
ZXJTdHlsZSopIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZShlbGVtZW50KCkpOworICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUoZWxlbWVudCgpLCAqY29uc3RfY2FzdDxUZXh0RmllbGRJbnB1
dFR5cGUqPih0aGlzKSk7CiB9CiAKIGJvb2wgVGV4dEZpZWxkSW5wdXRUeXBlOjpuZWVkc0NvbnRh
aW5lcigpIGNvbnN0CkBAIC00MjgsNCArNDI4LDQ1IEBAIGJvb2wgVGV4dEZpZWxkSW5wdXRUeXBl
OjphcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmIGxpc3QsIGJvb2wgbXVsdGlwYXJ0KSBjb25z
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2ludCBUZXh0RmllbGRJbnB1dFR5cGU6OmlubmVySW5k
ZXhGb3JWaXNpYmxlUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikgY29u
c3QKK3sKKyAgICByZXR1cm4gZWxlbWVudCgpLT50b0lucHV0RWxlbWVudCgpLT5pbmRleEZvclZp
c2libGVQb3NpdGlvbihwb3NpdGlvbik7Cit9CisKK1N0cmluZyBUZXh0RmllbGRJbnB1dFR5cGU6
OmlubmVyU2VsZWN0ZWRUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZWxlbWVudCgpLT50b0lu
cHV0RWxlbWVudCgpLT5zZWxlY3RlZFRleHQoKTsKK30KKworaW50IFRleHRGaWVsZElucHV0VHlw
ZTo6aW5uZXJTZWxlY3Rpb25FbmQoKSBjb25zdAoreworICAgIHJldHVybiBlbGVtZW50KCktPnRv
SW5wdXRFbGVtZW50KCktPnNlbGVjdGlvbkVuZCgpOworfQorCitpbnQgVGV4dEZpZWxkSW5wdXRU
eXBlOjppbm5lclNlbGVjdGlvblN0YXJ0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZWxlbWVudCgp
LT50b0lucHV0RWxlbWVudCgpLT5zZWxlY3Rpb25TdGFydCgpOworfQorCit2b2lkIFRleHRGaWVs
ZElucHV0VHlwZTo6c2V0SW5uZXJTZWxlY3Rpb25SYW5nZShpbnQgc3RhcnQsIGludCBlbmQsIFRl
eHRGaWVsZFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgcmV0dXJuIGVsZW1l
bnQoKS0+dG9JbnB1dEVsZW1lbnQoKS0+c2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCwgZGly
ZWN0aW9uKTsKK30KKwordm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmlubmVyVXBkYXRlUGxhY2Vo
b2xkZXJWaXNpYmlsaXR5KGJvb2wgcGxhY2Vob2xkZXJWYWx1ZUNoYW5nZWQpCit7CisgICAgcmV0
dXJuIGVsZW1lbnQoKS0+dG9JbnB1dEVsZW1lbnQoKS0+dXBkYXRlUGxhY2Vob2xkZXJWaXNpYmls
aXR5KHBsYWNlaG9sZGVyVmFsdWVDaGFuZ2VkKTsKK30KKworU3RyaW5nIFRleHRGaWVsZElucHV0
VHlwZTo6aW5uZXJWYWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGVsZW1lbnQoKS0+dG9JbnB1
dEVsZW1lbnQoKS0+dmFsdWUoKTsKK30KKworYm9vbCBUZXh0RmllbGRJbnB1dFR5cGU6OnNpemVT
aG91bGRJbmNsdWRlRGVjb3JhdGlvbihpbnQmIHByZWZlcnJlZFNpemUpIGNvbnN0Cit7CisgICAg
cHJlZmVycmVkU2l6ZSA9IGVsZW1lbnQoKS0+c2l6ZSgpOworICAgIHJldHVybiBmYWxzZTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9UZXh0RmllbGRJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5w
dXRUeXBlLmgKaW5kZXggNTU5YmUyNWU3NTE5OTI2YzhjOWRhOWI1YWViZGY2MjRhODljMmEyMC4u
N2E0NTQxMzEyYjZiNjNmOWQ2MmFmMTliNzE2M2Y2NDkxMzU2ZTNkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFRl
eHRGaWVsZElucHV0VHlwZV9oCiAKICNpbmNsdWRlICJJbnB1dFR5cGUuaCIKKyNpbmNsdWRlICJS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC00MCw3ICs0MSw3IEBAIGNsYXNzIFNwaW5CdXR0b25FbGVtZW50OwogCiAvLyBUaGUgY2xhc3Mg
cmVwcmVzZW50cyB0eXBlcyBvZiB3aGljaCBVSSBjb250YWluIHRleHQgZmllbGRzLgogLy8gSXQg
c3VwcG9ydHMgbm90IG9ubHkgdGhlIHR5cGVzIGZvciBCYXNlVGV4dElucHV0VHlwZSBidXQgYWxz
byB0eXBlPW51bWJlci4KLWNsYXNzIFRleHRGaWVsZElucHV0VHlwZSA6IHB1YmxpYyBJbnB1dFR5
cGUgeworY2xhc3MgVGV4dEZpZWxkSW5wdXRUeXBlIDogcHVibGljIElucHV0VHlwZSwgcHJvdGVj
dGVkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Q2FsbGJhY2sgewogcHJvdGVjdGVkOgog
ICAgIFRleHRGaWVsZElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Kik7CiAgICAgdmlydHVhbCB+
VGV4dEZpZWxkSW5wdXRUeXBlKCk7CkBAIC00OSwxMCArNTAsNiBAQCBwcm90ZWN0ZWQ6CiAgICAg
dm9pZCBoYW5kbGVLZXlkb3duRXZlbnRGb3JTcGluQnV0dG9uKEtleWJvYXJkRXZlbnQqKTsKICAg
ICB2b2lkIGhhbmRsZVdoZWVsRXZlbnRGb3JTcGluQnV0dG9uKFdoZWVsRXZlbnQqKTsKIAotICAg
IHZpcnR1YWwgSFRNTEVsZW1lbnQqIGNvbnRhaW5lckVsZW1lbnQoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBpbm5lckJsb2NrRWxlbWVudCgpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgSFRNTEVsZW1lbnQqIGlubmVyVGV4dEVsZW1lbnQoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBpbm5lclNwaW5CdXR0b25FbGVtZW50
KCkgY29uc3QgT1ZFUlJJREU7CiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICB2aXJ0dWFs
IEhUTUxFbGVtZW50KiBzcGVlY2hCdXR0b25FbGVtZW50KCkgY29uc3QgT1ZFUlJJREU7CiAjZW5k
aWYKQEAgLTY2LDYgKzYzLDEwIEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgcmVhZG9u
bHlBdHRyaWJ1dGVDaGFuZ2VkKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUJs
dXJFdmVudCgpIE9WRVJSSURFOwogCisgICAgLy8gUmVuZGVyVGV4dENvbnRyb2w6OkNhbGxiYWNr
IG1ldGhvZHMKKyAgICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBjb250YWluZXJFbGVtZW50KCkgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBIVE1MRWxlbWVudCogaW5uZXJCbG9ja0VsZW1lbnQo
KSBjb25zdCBPVkVSUklERTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0Rmll
bGQoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0
IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwpAQCAtNzcsMTEgKzc4LDI1IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2Vk
LCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyBz
YW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
SFRNTEVsZW1lbnQqIHBsYWNlaG9sZGVyRWxlbWVudCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVQbGFjZWhvbGRlclRleHQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCBtdWx0aXBhcnQpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKIAorICAgIC8v
IFJlbmRlclRleHRDb250cm9sOjpDYWxsYmFjayBtZXRob2RzCisgICAgdmlydHVhbCBpbnQgaW5u
ZXJJbmRleEZvclZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBpbm5lclNlbGVjdGVkVGV4dCgpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgaW50IGlubmVyU2VsZWN0aW9uRW5kKCkgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBpbnQgaW5uZXJTZWxlY3Rpb25TdGFydCgpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgSFRNTEVsZW1lbnQqIGlubmVyU3BpbkJ1dHRvbkVsZW1lbnQoKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBpbm5lclRleHRFbGVtZW50KCkg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGlubmVyVXBkYXRlUGxhY2Vob2xkZXJW
aXNpYmlsaXR5KGJvb2wpOworICAgIHZpcnR1YWwgU3RyaW5nIGlubmVyVmFsdWUoKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBwbGFjZWhvbGRlckVsZW1lbnQoKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SW5uZXJTZWxlY3Rpb25SYW5nZShp
bnQgc3RhcnQsIGludCBlbmQsIFRleHRGaWVsZFNlbGVjdGlvbkRpcmVjdGlvbiA9IFNlbGVjdGlv
bkhhc05vRGlyZWN0aW9uKSBPVkVSUklERTsKKworICAgIC8vIFJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZTo6Q2FsbGJhY2sgbWV0aG9kcworICAgIHZpcnR1YWwgYm9vbCBzaXplU2hvdWxkSW5j
bHVkZURlY29yYXRpb24oaW50JiBwcmVmZXJyZWRTaXplKSBjb25zdCBPVkVSUklERTsKKwogICAg
IFJlZlB0cjxIVE1MRWxlbWVudD4gbV9jb250YWluZXI7CiAgICAgUmVmUHRyPEhUTUxFbGVtZW50
PiBtX2lubmVyQmxvY2s7CiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBtX2lubmVyVGV4dDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCmluZGV4IDI3
MDRjZGMwMzhmZGUyOGVkMmM5NDNmOWYzZjM0NzIzNmFkNGRjNTMuLmFhNTMwOTE1MzFlMTM4Mjcz
NDU5NGFmNWI3MTQyYTQ0NjY3OTY2YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNlYXJjaEZpZWxkLmNwcApAQCAtNTMsOCArNTMsOCBAQCB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVJlbmRlclNl
YXJjaEZpZWxkOjpSZW5kZXJTZWFyY2hGaWVsZChOb2RlKiBub2RlKQotICAgIDogUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lKG5vZGUpCitSZW5kZXJTZWFyY2hGaWVsZDo6UmVuZGVyU2VhcmNo
RmllbGQoTm9kZSogbm9kZSwgQ2FsbGJhY2smIGNhbGxiYWNrKQorICAgIDogUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lKG5vZGUsIGNhbGxiYWNrKQogICAgICwgbV9zZWFyY2hQb3B1cElzVmlz
aWJsZShmYWxzZSkKICAgICAsIG1fc2VhcmNoUG9wdXAoMCkKIHsKQEAgLTM4Miw0ICszODIsOSBA
QCB2b2lkIFJlbmRlclNlYXJjaEZpZWxkOjpjZW50ZXJDb250YWluZXJJZk5lZWRlZChSZW5kZXJC
b3gqIGNvbnRhaW5lclJlbmRlcmVyKSBjbwogICAgIGNvbnRhaW5lclJlbmRlcmVyLT5zZXRZKGNv
bnRhaW5lclJlbmRlcmVyLT55KCkgLSAoaGVpZ2h0RGlmZiAvIDIgKyBsYXlvdXRNb2QoaGVpZ2h0
RGlmZiwgMikpKTsKIH0KIAorSFRNTElucHV0RWxlbWVudCogUmVuZGVyU2VhcmNoRmllbGQ6Omlu
cHV0RWxlbWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG5vZGUoKS0+dG9JbnB1dEVsZW1lbnQo
KTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNl
YXJjaEZpZWxkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQu
aAppbmRleCA5NjczMzVkMzQ1NTYzOTNhNTQzMzBlZDQ4ZTM2MzU2N2RmYTJkYzg4Li5iODk4YzRm
Yzc0ZGUwNzFjMTAyY2E3MDYxY2E3NGM0YzkzMzU3NmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuaApAQCAtMzMsNyArMzMsNyBAQCBjbGFzcyBTZWFy
Y2hQb3B1cE1lbnU7CiAKIGNsYXNzIFJlbmRlclNlYXJjaEZpZWxkIDogcHVibGljIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZSwgcHJpdmF0ZSBQb3B1cE1lbnVDbGllbnQgewogcHVibGljOgot
ICAgIFJlbmRlclNlYXJjaEZpZWxkKE5vZGUqKTsKKyAgICBSZW5kZXJTZWFyY2hGaWVsZChOb2Rl
KiwgQ2FsbGJhY2smKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJTZWFyY2hGaWVsZCgpOwogCiAgICAg
dm9pZCB1cGRhdGVDYW5jZWxCdXR0b25WaXNpYmlsaXR5KCkgY29uc3Q7CkBAIC00OSw2ICs0OSw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNlbnRlckNvbnRhaW5lcklmTmVlZGVkKFJl
bmRlckJveCopIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb21wdXRl
Q29udHJvbEhlaWdodChMYXlvdXRVbml0IGxpbmVIZWlnaHQsIExheW91dFVuaXQgbm9uQ29udGVu
dEhlaWdodCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVI
ZWlnaHRMaW1pdCgpIGNvbnN0IE9WRVJSSURFOworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0
RWxlbWVudCgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIE9W
RVJSSURFOwogICAgIEVWaXNpYmlsaXR5IHZpc2liaWxpdHlGb3JDYW5jZWxCdXR0b24oKSBjb25z
dDsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGF1dG9zYXZlTmFtZSgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKaW5kZXggOGIxMzgz
NTJlNDY4MmI0NWZiY2VlMjRkZTY3YjdjYWY3MWI1NWU5NC4uNjhkOGExMjdjMzY5Y2Y2OGMyMGU1
MTZmNWM1N2FiNDM2ZDg4OTdjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2wuY3BwCkBAIC0zNSwyNCArMzUsMTkgQEAgdXNpbmcgbmFtZXNwYWNlIHN0
ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZW5kZXJUZXh0Q29udHJvbDo6UmVuZGVyVGV4
dENvbnRyb2woTm9kZSogbm9kZSkKK1JlbmRlclRleHRDb250cm9sOjpSZW5kZXJUZXh0Q29udHJv
bChOb2RlKiBub2RlLCBDYWxsYmFjayYgY2FsbGJhY2spCiAgICAgOiBSZW5kZXJCbG9jayhub2Rl
KQorICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykKIHsKLSAgICBBU1NFUlQodG9UZXh0Rm9ybUNv
bnRyb2wobm9kZSkpOwogfQogCiBSZW5kZXJUZXh0Q29udHJvbDo6flJlbmRlclRleHRDb250cm9s
KCkKIHsKIH0KIAotSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQqIFJlbmRlclRleHRDb250cm9s
Ojp0ZXh0Rm9ybUNvbnRyb2xFbGVtZW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQqPihub2RlKCkpOwotfQotCiBIVE1MRWxlbWVu
dCogUmVuZGVyVGV4dENvbnRyb2w6OmlubmVyVGV4dEVsZW1lbnQoKSBjb25zdAogewotICAgIHJl
dHVybiB0ZXh0Rm9ybUNvbnRyb2xFbGVtZW50KCktPmlubmVyVGV4dEVsZW1lbnQoKTsKKyAgICBy
ZXR1cm4gbV9jYWxsYmFjay5pbm5lclRleHRFbGVtZW50KCk7CiB9CiAKIHZvaWQgUmVuZGVyVGV4
dENvbnRyb2w6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5k
ZXJTdHlsZSogb2xkU3R5bGUpCkBAIC03MCw3ICs2NSw4IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRy
b2w6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHls
ZSoKICAgICAgICAgaW5uZXJUZXh0UmVuZGVyZXItPnNldFN0eWxlKGNyZWF0ZUlubmVyVGV4dFN0
eWxlKHN0eWxlKCkpKTsKICAgICAgICAgaW5uZXJUZXh0LT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7
CiAgICAgfQotICAgIHRleHRGb3JtQ29udHJvbEVsZW1lbnQoKS0+dXBkYXRlUGxhY2Vob2xkZXJW
aXNpYmlsaXR5KGZhbHNlKTsKKworICAgIG1fY2FsbGJhY2suaW5uZXJVcGRhdGVQbGFjZWhvbGRl
clZpc2liaWxpdHkoZmFsc2UpOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgdXBkYXRlVXNlck1v
ZGlmeVByb3BlcnR5KE5vZGUqIG5vZGUsIFJlbmRlclN0eWxlKiBzdHlsZSkKQEAgLTI5OSw0ICsy
OTUsMTAgQEAgUmVuZGVyT2JqZWN0KiBSZW5kZXJUZXh0Q29udHJvbDo6bGF5b3V0U3BlY2lhbEV4
Y2x1ZGVkQ2hpbGQoYm9vbCByZWxheW91dENoaWxkcmUKICAgICByZXR1cm4gcGxhY2Vob2xkZXJS
ZW5kZXJlcjsKIH0KIAorU2hhZG93Um9vdCogUmVuZGVyVGV4dENvbnRyb2w6OkNhbGxiYWNrOjpp
bm5lclNoYWRvd1Jvb3QoKSBjb25zdAoreworICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gaW5u
ZXJUZXh0RWxlbWVudCgpOworICAgIHJldHVybiBlbGVtZW50ID8gZWxlbWVudC0+c2hhZG93Um9v
dCgpIDogMDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAppbmRleCAxYTQ4ZjVkYmU2OTYwZjVhM2E0YjIx
MWQ1MDc0MDcyZWYyZmFhZmE3Li5kNzhmZDFiMjQ3ODQ3Mjk3MjA4Mjc0N2ExZDQzM2UzYjhlNDU3
ZjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaApA
QCAtMjIsMjMgKzIyLDQ2IEBACiAjaWZuZGVmIFJlbmRlclRleHRDb250cm9sX2gKICNkZWZpbmUg
UmVuZGVyVGV4dENvbnRyb2xfaAogCisjaW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQuaCIgLy8gZm9yIFRleHRGaWVsZFNlbGVjdGlvbkRpcmVjdGlvbgogI2luY2x1ZGUgIlJlbmRl
ckJsb2NrLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQ7CitjbGFzcyBTaGFkb3dSb290OworY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwog
CiBjbGFzcyBSZW5kZXJUZXh0Q29udHJvbCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CiBwdWJsaWM6
CisgICAgY2xhc3MgQ2FsbGJhY2sgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCBpbnQg
aW5uZXJJbmRleEZvclZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25z
dCA9IDA7CisgICAgICAgIHZpcnR1YWwgU3RyaW5nIGlubmVyU2VsZWN0ZWRUZXh0KCkgY29uc3Qg
PSAwOworICAgICAgICB2aXJ0dWFsIGludCBpbm5lclNlbGVjdGlvbkVuZCgpIGNvbnN0ID0gMDsK
KyAgICAgICAgdmlydHVhbCBpbnQgaW5uZXJTZWxlY3Rpb25TdGFydCgpIGNvbnN0ID0gMDsKKyAg
ICAgICAgdmlydHVhbCBTaGFkb3dSb290KiBpbm5lclNoYWRvd1Jvb3QoKSBjb25zdDsKKyAgICAg
ICAgdmlydHVhbCBIVE1MRWxlbWVudCogaW5uZXJUZXh0RWxlbWVudCgpIGNvbnN0ID0gMDsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGlubmVyVXBkYXRlUGxhY2Vob2xkZXJWaXNpYmlsaXR5KGJvb2wp
IHsgfQorICAgICAgICB2aXJ0dWFsIFN0cmluZyBpbm5lclZhbHVlKCkgY29uc3QgPSAwOworICAg
ICAgICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBwbGFjZWhvbGRlckVsZW1lbnQoKSBjb25zdCB7IHJl
dHVybiAwOyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRJbm5lclNlbGVjdGlvblJhbmdlKGlu
dCBzdGFydCwgaW50IGVuZCwgVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uKSA9IDA7CisgICAg
fTsKKwogICAgIHZpcnR1YWwgflJlbmRlclRleHRDb250cm9sKCk7CiAKLSAgICBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudCogdGV4dEZvcm1Db250cm9sRWxlbWVudCgpIGNvbnN0OwogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY3JlYXRlSW5uZXJUZXh0U3R5bGUoY29uc3Qg
UmVuZGVyU3R5bGUqIHN0YXJ0U3R5bGUpIGNvbnN0ID0gMDsKIAogICAgIFZpc2libGVQb3NpdGlv
biB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChpbnQgaW5kZXgpIGNvbnN0OwogCisgICAgaW50IGlu
ZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pIHsg
cmV0dXJuIG1fY2FsbGJhY2suaW5uZXJJbmRleEZvclZpc2libGVQb3NpdGlvbihwb3NpdGlvbik7
IH0KKyAgICBTdHJpbmcgc2VsZWN0ZWRUZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFjay5p
bm5lclNlbGVjdGVkVGV4dCgpOyB9CisgICAgaW50IHNlbGVjdGlvbkVuZCgpIGNvbnN0IHsgcmV0
dXJuIG1fY2FsbGJhY2suaW5uZXJTZWxlY3Rpb25FbmQoKTsgfQorICAgIGludCBzZWxlY3Rpb25T
dGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGJhY2suaW5uZXJTZWxlY3Rpb25TdGFydCgpOyB9
CisgICAgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShpbnQgc3RhcnQsIGludCBlbmQsIFRleHRGaWVs
ZFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbikg
eyBtX2NhbGxiYWNrLnNldElubmVyU2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCwgZGlyZWN0aW9u
KTsgfQorICAgIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QoKSBjb25zdCB7IHJldHVybiBtX2NhbGxi
YWNrLmlubmVyU2hhZG93Um9vdCgpOyB9CisgICAgU3RyaW5nIHZhbHVlKCkgY29uc3QgeyByZXR1
cm4gbV9jYWxsYmFjay5pbm5lclZhbHVlKCk7IH0KKwogcHJvdGVjdGVkOgotICAgIFJlbmRlclRl
eHRDb250cm9sKE5vZGUqKTsKKyAgICBSZW5kZXJUZXh0Q29udHJvbChOb2RlKiwgQ2FsbGJhY2sm
KTsKIAogICAgIC8vIFRoaXMgY29udmVuaWVuY2UgZnVuY3Rpb24gc2hvdWxkIG5vdCBiZSBtYWRl
IHB1YmxpYyBiZWNhdXNlIGlubmVyVGV4dEVsZW1lbnQgbWF5IG91dGxpdmUgdGhlIHJlbmRlciB0
cmVlLgogICAgIEhUTUxFbGVtZW50KiBpbm5lclRleHRFbGVtZW50KCkgY29uc3Q7CkBAIC04MCw2
ICsxMDMsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0ZvcmNlZFN0eWxl
UmVjYWxjUHJvcGFnYXRpb24oKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBzdGF0aWMg
Ym9vbCBpc1NlbGVjdGFibGVFbGVtZW50KEhUTUxFbGVtZW50KiwgTm9kZSopOworCisgICAgQ2Fs
bGJhY2smIG1fY2FsbGJhY2s7CiB9OwogCiBpbmxpbmUgUmVuZGVyVGV4dENvbnRyb2wqIHRvUmVu
ZGVyVGV4dENvbnRyb2woUmVuZGVyT2JqZWN0KiBvYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcAppbmRleCA5
YjRmZmU1Y2ZjOTlkNWYyMDdjNWRkZWQ4MDk0NzE5NTJjZmVkYmYzLi5hNWVjMzBkN2UwYWMwMDg5
OGJjMWZmZWUxYTRiNDhkYjk0ZWI3YmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAKQEAgLTMyLDcgKzMyLDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OlJl
bmRlclRleHRDb250cm9sTXVsdGlMaW5lKE5vZGUqIG5vZGUpCi0gICAgOiBSZW5kZXJUZXh0Q29u
dHJvbChub2RlKQorICAgIDogUmVuZGVyVGV4dENvbnRyb2wobm9kZSwgKnN0YXRpY19jYXN0PEhU
TUxUZXh0QXJlYUVsZW1lbnQqPihub2RlKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAppbmRleCAz
MWYxZjI4MzdkYmE0YWQ2OTVhYjg5MDAxNTc5ZjM3N2YwM2NlNThiLi5lMDYzYjVmNjA0N2U1NjQx
ZWZkNDY5NzczNzZlNDhkZWY4ZmQ0Y2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcApAQCAtNjYsMTMgKzY2
LDEzIEBAIFZpc2libGVQb3NpdGlvbiBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2s6OnBvc2l0
aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KIAotUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpSZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUoTm9kZSogbm9kZSkKLSAgICA6IFJlbmRlclRleHRDb250cm9sKG5vZGUpCitS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZShO
b2RlKiBub2RlLCBDYWxsYmFjayYgY2FsbGJhY2spCisgICAgOiBSZW5kZXJUZXh0Q29udHJvbChu
b2RlLCBjYWxsYmFjaykKKyAgICAsIG1fY2FsbGJhY2soY2FsbGJhY2spCiAgICAgLCBtX3Nob3Vs
ZERyYXdDYXBzTG9ja0luZGljYXRvcihmYWxzZSkKICAgICAsIG1fZGVzaXJlZElubmVyVGV4dEhl
aWdodCgtMSkKIHsKICAgICBBU1NFUlQobm9kZS0+aXNIVE1MRWxlbWVudCgpKTsKLSAgICBBU1NF
UlQobm9kZS0+dG9JbnB1dEVsZW1lbnQoKSk7CiB9CiAKIFJlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZTo6flJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSgpCkBAIC04MSw3ICs4MSw3IEBAIFJl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6flJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSgp
CiAKIGlubGluZSBIVE1MRWxlbWVudCogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjppbm5l
clNwaW5CdXR0b25FbGVtZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gaW5wdXRFbGVtZW50KCkt
PmlubmVyU3BpbkJ1dHRvbkVsZW1lbnQoKTsKKyAgICByZXR1cm4gbV9jYWxsYmFjay5pbm5lclNw
aW5CdXR0b25FbGVtZW50KCk7CiB9CiAKIFJlbmRlclN0eWxlKiBSZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmU6OnRleHRCYXNlU3R5bGUoKSBjb25zdApAQCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQg
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpsYXlvdXQoKQogICAgICAgICBpbm5lclNwaW5C
b3gtPnNldEhlaWdodChoZWlnaHQoKSAtIGJvcmRlclRvcCgpIC0gYm9yZGVyQm90dG9tKCkpOwog
ICAgIH0KIAotICAgIEhUTUxFbGVtZW50KiBwbGFjZWhvbGRlckVsZW1lbnQgPSBpbnB1dEVsZW1l
bnQoKS0+cGxhY2Vob2xkZXJFbGVtZW50KCk7CisgICAgSFRNTEVsZW1lbnQqIHBsYWNlaG9sZGVy
RWxlbWVudCA9IG1fY2FsbGJhY2sucGxhY2Vob2xkZXJFbGVtZW50KCk7CiAgICAgaWYgKFJlbmRl
ckJveCogcGxhY2Vob2xkZXJCb3ggPSBwbGFjZWhvbGRlckVsZW1lbnQgPyBwbGFjZWhvbGRlckVs
ZW1lbnQtPnJlbmRlckJveCgpIDogMCkgewogICAgICAgICBwbGFjZWhvbGRlckJveC0+c3R5bGUo
KS0+c2V0V2lkdGgoTGVuZ3RoKGlubmVyVGV4dFJlbmRlcmVyLT53aWR0aCgpIC0gcGxhY2Vob2xk
ZXJCb3gtPmJvcmRlckFuZFBhZGRpbmdXaWR0aCgpLCBGaXhlZCkpOwogICAgICAgICBwbGFjZWhv
bGRlckJveC0+c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0aChpbm5lclRleHRSZW5kZXJlci0+aGVp
Z2h0KCkgLSBwbGFjZWhvbGRlckJveC0+Ym9yZGVyQW5kUGFkZGluZ0hlaWdodCgpLCBGaXhlZCkp
OwpAQCAtMjQzLDcgKzI0Myw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpz
dHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuCiAgICAgICAgIGNv
bnRhaW5lclJlbmRlcmVyLT5zdHlsZSgpLT5zZXRIZWlnaHQoTGVuZ3RoKCkpOwogICAgICAgICBj
b250YWluZXJSZW5kZXJlci0+c3R5bGUoKS0+c2V0V2lkdGgoTGVuZ3RoKCkpOwogICAgIH0KLSAg
ICBpZiAoSFRNTEVsZW1lbnQqIHBsYWNlaG9sZGVyID0gaW5wdXRFbGVtZW50KCktPnBsYWNlaG9s
ZGVyRWxlbWVudCgpKQorICAgIGlmIChIVE1MRWxlbWVudCogcGxhY2Vob2xkZXIgPSBtX2NhbGxi
YWNrLnBsYWNlaG9sZGVyRWxlbWVudCgpKQogICAgICAgICBwbGFjZWhvbGRlci0+c2V0SW5saW5l
U3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVRleHRPdmVyZmxvdywgdGV4dFNob3VsZEJlVHJ1bmNh
dGVkKCkgPyBDU1NWYWx1ZUVsbGlwc2lzIDogQ1NTVmFsdWVDbGlwKTsKICAgICBzZXRIYXNPdmVy
Zmxvd0NsaXAoZmFsc2UpOwogfQpAQCAtMjYxLDcgKzI2MSw3IEBAIHZvaWQgUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lOjpjYXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWQoKQogICAgIGJvb2wg
c2hvdWxkRHJhd0NhcHNMb2NrSW5kaWNhdG9yID0gZmFsc2U7CiAKICAgICBpZiAoRnJhbWUqIGZy
YW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkKLSAgICAgICAgc2hvdWxkRHJhd0NhcHNMb2NrSW5k
aWNhdG9yID0gaW5wdXRFbGVtZW50KCktPmlzUGFzc3dvcmRGaWVsZCgpCisgICAgICAgIHNob3Vs
ZERyYXdDYXBzTG9ja0luZGljYXRvciA9IG1fY2FsbGJhY2suc2hvdWxkRHJhd0NhcHNMb2NrSW5k
aWNhdG9yKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgZnJhbWUt
PnNlbGVjdGlvbigpLT5pc0ZvY3VzZWRBbmRBY3RpdmUoKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmJiBkb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpID09IG5vZGUoKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBQbGF0Zm9ybUtleWJvYXJk
RXZlbnQ6OmN1cnJlbnRDYXBzTG9ja1N0YXRlKCk7CkBAIC0zMDEsNyArMzAxLDcgQEAgZmxvYXQg
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpnZXRBdmdDaGFyV2lkdGgoQXRvbWljU3RyaW5n
IGZhbWlseSkKIExheW91dFVuaXQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpwcmVmZXJy
ZWRDb250ZW50V2lkdGgoZmxvYXQgY2hhcldpZHRoKSBjb25zdAogewogICAgIGludCBmYWN0b3I7
Ci0gICAgYm9vbCBpbmNsdWRlc0RlY29yYXRpb24gPSBpbnB1dEVsZW1lbnQoKS0+c2l6ZVNob3Vs
ZEluY2x1ZGVEZWNvcmF0aW9uKGZhY3Rvcik7CisgICAgYm9vbCBpbmNsdWRlc0RlY29yYXRpb24g
PSBtX2NhbGxiYWNrLnNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihmYWN0b3IpOwogICAgIGlm
IChmYWN0b3IgPD0gMCkKICAgICAgICAgZmFjdG9yID0gMjA7CiAKQEAgLTQ1Myw5ICs0NTMsNCBA
QCBib29sIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6bG9naWNhbFNjcm9sbChTY3JvbGxM
b2dpY2FsRGlyZWN0aW9uIGRpcmVjdGlvbgogICAgIHJldHVybiBSZW5kZXJCbG9jazo6bG9naWNh
bFNjcm9sbChkaXJlY3Rpb24sIGdyYW51bGFyaXR5LCBtdWx0aXBsaWVyLCBzdG9wTm9kZSk7CiB9
CiAKLUhUTUxJbnB1dEVsZW1lbnQqIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6aW5wdXRF
bGVtZW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbm9kZSgpLT50b0lucHV0RWxlbWVudCgpOwot
fQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmgKaW5kZXggZmZjNTBhMzNkYzRhNWQ1N2Y5OWU5ZTUwMzdjYTZmZjlh
MWEyZmFkMS4uMjljMjJhMzU2NjRlYjhhOGVjN2M0YmMzZmFjN2I1MjdkYTUwOTNmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUuaApAQCAtMzIsNyArMzIsMTYgQEAgY2xhc3MgSFRNTElucHV0RWxlbWVudDsKIAogY2xh
c3MgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lIDogcHVibGljIFJlbmRlclRleHRDb250cm9s
IHsKIHB1YmxpYzoKLSAgICBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUoTm9kZSopOworICAg
IGNsYXNzIENhbGxiYWNrIDogcHVibGljIFJlbmRlclRleHRDb250cm9sOjpDYWxsYmFjayB7Cisg
ICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBjb250YWluZXJFbGVtZW50
KCkgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBpbm5lckJsb2NrRWxl
bWVudCgpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBIVE1MRWxlbWVudCogaW5uZXJTcGlu
QnV0dG9uRWxlbWVudCgpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBib29sIHNob3VsZERy
YXdDYXBzTG9ja0luZGljYXRvcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIHZp
cnR1YWwgYm9vbCBzaXplU2hvdWxkSW5jbHVkZURlY29yYXRpb24oaW50JiBwcmVmZXJyZWRTaXpl
KSBjb25zdCA9IDA7CisgICAgfTsKKworICAgIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZShO
b2RlKiwgQ2FsbGJhY2smKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUoKTsKICAgICAvLyBGSVhNRTogTW92ZSBjcmVhdGUqU3R5bGUoKSB0byB0aGVpciBjbGFzc2Vz
LgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY3JlYXRlSW5uZXJUZXh0U3R5
bGUoY29uc3QgUmVuZGVyU3R5bGUqIHN0YXJ0U3R5bGUpIGNvbnN0OwpAQCAtNDUsNyArNTQsNiBA
QCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVIZWlnaHRMaW1pdCgp
IGNvbnN0OwogICAgIEhUTUxFbGVtZW50KiBjb250YWluZXJFbGVtZW50KCkgY29uc3Q7CiAgICAg
SFRNTEVsZW1lbnQqIGlubmVyQmxvY2tFbGVtZW50KCkgY29uc3Q7Ci0gICAgSFRNTElucHV0RWxl
bWVudCogaW5wdXRFbGVtZW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21F
bGVtZW50KCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6CkBAIC04MywxOCArOTEsMTkgQEAgcHJpdmF0
ZToKIAogICAgIEhUTUxFbGVtZW50KiBpbm5lclNwaW5CdXR0b25FbGVtZW50KCkgY29uc3Q7CiAK
KyAgICBDYWxsYmFjayYgbV9jYWxsYmFjazsKICAgICBib29sIG1fc2hvdWxkRHJhd0NhcHNMb2Nr
SW5kaWNhdG9yOwogICAgIExheW91dFVuaXQgbV9kZXNpcmVkSW5uZXJUZXh0SGVpZ2h0OwogfTsK
IAogaW5saW5lIEhUTUxFbGVtZW50KiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmNvbnRh
aW5lckVsZW1lbnQoKSBjb25zdAogewotICAgIHJldHVybiBpbnB1dEVsZW1lbnQoKS0+Y29udGFp
bmVyRWxlbWVudCgpOworICAgIHJldHVybiBtX2NhbGxiYWNrLmNvbnRhaW5lckVsZW1lbnQoKTsK
IH0KIAogaW5saW5lIEhUTUxFbGVtZW50KiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6Omlu
bmVyQmxvY2tFbGVtZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gaW5wdXRFbGVtZW50KCktPmlu
bmVyQmxvY2tFbGVtZW50KCk7CisgICAgcmV0dXJuIG1fY2FsbGJhY2suaW5uZXJCbG9ja0VsZW1l
bnQoKTsKIH0KIAogaW5saW5lIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSogdG9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUoUmVuZGVyT2JqZWN0KiBvYmplY3QpCg==
</data>
<flag name="commit-queue"
          id="155705"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>